ZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9BbmRyb2lkLmJwIGIvYXVkaW8vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE5M2M4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTA3IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklEZXZpY2UuaGFsIiwKKyAgICAgICAgIklEZXZpY2VzRmFjdG9yeS5oYWwiLAorICAgICAgICAiSVByaW1hcnlEZXZpY2UuaGFsIiwKKyAgICAgICAgIklTdHJlYW0uaGFsIiwKKyAgICAgICAgIklTdHJlYW1Jbi5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dC5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvRGV2aWNlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9EZXZpY2VzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvUHJpbWFyeURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1JbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtT3V0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1PdXRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3UHJpbWFyeURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JuSHdQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JSHdTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbU91dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JzU3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbU91dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9CcEh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbU91dENhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0FuZHJvaWQubWsgYi9hdWRpby8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU4NDBmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpby1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lEZXZpY2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURldmljZXNGYWN0b3J5LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lQcmltYXJ5RGV2aWNlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW0uaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbUluLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW1PdXQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbU91dENhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYzIwODEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSURldmljZS5oYWwKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW1JbjsKK2ltcG9ydCBJU3RyZWFtT3V0OworCitpbnRlcmZhY2UgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYXVkaW8gaGFyZHdhcmUgaW50ZXJmYWNlIGhhcyBiZWVuIGluaXRpYWxpemVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgb24gc3VjY2VzcywgTk9UX0lOSVRJQUxJWkVEIG9uIGZhaWx1cmUuCisgICAgICovCisgICAgaW5pdENoZWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBmb3IgYWxsIGF1ZGlvIGFjdGl2aXRpZXMgb3RoZXIgdGhhbiB2b2ljZSBjYWxsLiBJZgorICAgICAqIE5PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQsIHRoZSBzb2Z0d2FyZSBtaXhlciB3aWxsIGVtdWxhdGUgdGhpcworICAgICAqIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgdm9sdW1lIHZhbHVlIGZvciB0aGUgSEFMLCBpZiB0aGUgSEFMIHN1cHBvcnRzCisgICAgICogbWFzdGVyIHZvbHVtZSBjb250cm9sLiBGb3IgZXhhbXBsZSwgQXVkaW9GbGluZ2VyIHdpbGwgcXVlcnkgdGhpcyB2YWx1ZQorICAgICAqIGZyb20gdGhlIHByaW1hcnkgYXVkaW8gSEFMIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzIGFuZCB1c2UgdGhlIHZhbHVlIGZvcgorICAgICAqIHNldHRpbmcgdGhlIGluaXRpYWwgbWFzdGVyIHZvbHVtZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTHMgd2hpY2ggZG8gbm90CisgICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVEIGluICdyZXR2YWwnLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJWb2x1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGZsb2F0IHZvbHVtZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1pY3JvcGhvbmUgbXV0aW5nIHN0YXRlLgorICAgICAqCisgICAgICogQHBhcmFtIG11dGUgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gbXV0ZSB3aGV0aGVyIG1pY3JvcGhvbmUgaXMgbXV0ZWQuCisgICAgICovCisgICAgZ2V0TWljTXV0ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBtdXRlKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXVkaW8gbXV0ZSBzdGF0dXMgZm9yIGFsbCBhdWRpbyBhY3Rpdml0aWVzLiBJZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogaXMgTk9UX1NVUFBPUlRFRCwgdGhlIHNvZnR3YXJlIG1peGVyIHdpbGwgZW11bGF0ZSB0aGlzIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXV0ZSB3aGV0aGVyIGF1ZGlvIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgbXV0ZSBzdGF0dXMgZm9yIHRoZSBIQUwsIGlmIHRoZSBIQUwgc3VwcG9ydHMKKyAgICAgKiBtYXN0ZXIgbXV0ZSBjb250cm9sLiBBdWRpb0ZsaW5nZXIgd2lsbCBxdWVyeSB0aGlzIHZhbHVlIGZyb20gdGhlIHByaW1hcnkKKyAgICAgKiBhdWRpbyBIQUwgd2hlbiB0aGUgc2VydmljZSBzdGFydHMgYW5kIHVzZSB0aGUgdmFsdWUgZm9yIHNldHRpbmcgdGhlCisgICAgICogaW5pdGlhbCBtYXN0ZXIgbXV0ZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTCBtdXN0IGluZGljYXRlIHRoYXQgdGhlIGZlYXR1cmUKKyAgICAgKiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHJldHVybmluZyBOT1RfU1VQUE9SVEVEIHN0YXR1cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG11dGUgd2hldGhlciBhdWRpbyBpcyBtdXRlZC4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJNdXRlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIG11dGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhdWRpbyBpbnB1dCBidWZmZXIgc2l6ZSBhY2NvcmRpbmcgdG8gcGFyYW1ldGVycyBwYXNzZWQgb3IKKyAgICAgKiBJTlZBTElEX0FSR1VNRU5UUyBpZiBvbmUgb2YgdGhlIHBhcmFtZXRlcnMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25maWcgYXVkaW8gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBidWZmZXJTaXplIGlucHV0IGJ1ZmZlciBzaXplIGluIGJ5dGVzLgorICAgICAqLworICAgIGdldElucHV0QnVmZmVyU2l6ZShBdWRpb0NvbmZpZyBjb25maWcpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGJ1ZmZlclNpemUpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgY3JlYXRlcyBhbmQgb3BlbnMgdGhlIGF1ZGlvIGhhcmR3YXJlIG91dHB1dCBzdHJlYW0uCisgICAgICogSWYgdGhlIHN0cmVhbSBjYW4gbm90IGJlIG9wZW5lZCB3aXRoIHRoZSBwcm9wb3NlZCBhdWRpbyBjb25maWcsCisgICAgICogSEFMIG11c3QgcHJvdmlkZSBzdWdnZXN0ZWQgdmFsdWVzIGZvciB0aGUgYXVkaW8gY29uZmlnLgorICAgICAqCisgICAgICogQHBhcmFtIGlvSGFuZGxlIGhhbmRsZSBhc3NpZ25lZCBieSBBdWRpb0ZsaW5nZXIuCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZSBhbmQgKGlmIG5lZWRlZCkgYWRkcmVzcy4KKyAgICAgKiBAcGFyYW0gY29uZmlnIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgICAqIEBwYXJhbSBmbGFncyBhZGRpdGlvbmFsIGZsYWdzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG91dFN0cmVhbSBjcmVhdGVkIG91dHB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3Blbk91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGUsCisgICAgICAgICAgICBEZXZpY2VBZGRyZXNzIGRldmljZSwKKyAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncykgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgICAgICAgICAgSVN0cmVhbU91dCBvdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuZCBvcGVucyB0aGUgYXVkaW8gaGFyZHdhcmUgaW5wdXQgc3RyZWFtLgorICAgICAqIElmIHRoZSBzdHJlYW0gY2FuIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGUgcHJvcG9zZWQgYXVkaW8gY29uZmlnLAorICAgICAqIEhBTCBtdXN0IHByb3ZpZGUgc3VnZ2VzdGVkIHZhbHVlcyBmb3IgdGhlIGF1ZGlvIGNvbmZpZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpb0hhbmRsZSBoYW5kbGUgYXNzaWduZWQgYnkgQXVkaW9GbGluZ2VyLgorICAgICAqIEBwYXJhbSBkZXZpY2UgZGV2aWNlIHR5cGUgYW5kIChpZiBuZWVkZWQpIGFkZHJlc3MuCisgICAgICogQHBhcmFtIGNvbmZpZyBzdHJlYW0gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gZmxhZ3MgYWRkaXRpb25hbCBmbGFncy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHNvdXJjZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGluU3RyZWFtIGluIGNhc2Ugb2Ygc3VjY2VzcywgY3JlYXRlZCBpbnB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSwKKyAgICAgICAgICAgIERldmljZUFkZHJlc3MgZGV2aWNlLAorICAgICAgICAgICAgQXVkaW9Db25maWcgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIElTdHJlYW1JbiBpblN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgYXVkaW8gcGF0Y2hlcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHMgdHJ1ZSBpZiBhdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSBnZW5lcmF0ZXMgKGJvb2wgc3VwcG9ydHMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBhdWRpbyBwYXRjaCBiZXR3ZWVuIHNldmVyYWwgc291cmNlIGFuZCBzaW5rIHBvcnRzLiAgVGhlIGhhbmRsZQorICAgICAqIGlzIGFsbG9jYXRlZCBieSB0aGUgSEFMIGFuZCBtdXN0IGJlIHVuaXF1ZSBmb3IgdGhpcyBhdWRpbyBIQUwgbW9kdWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZXMgcGF0Y2ggc291cmNlcy4KKyAgICAgKiBAcGFyYW0gc2lua3MgcGF0Y2ggc2lua3MuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGF0Y2ggY3JlYXRlZCBwYXRjaCBoYW5kbGUuCisgICAgICovCisgICAgY3JlYXRlQXVkaW9QYXRjaCh2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzb3VyY2VzLCB2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzaW5rcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGFuIGF1ZGlvIHBhdGNoLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGNoIHBhdGNoIGhhbmRsZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVsZWFzZUF1ZGlvUGF0Y2goQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGF0dHJpYnV0ZXMgZm9yIGEgZ2l2ZW4gYXVkaW8gcG9ydC4KKyAgICAgKgorICAgICAqIEFzIGlucHV0LCAncG9ydCcgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uICh0eXBlLCByb2xlLCBhZGRyZXNzIGV0Yy4uLikKKyAgICAgKiBuZWVkZWQgYnkgdGhlIEhBTCB0byBpZGVudGlmeSB0aGUgcG9ydC4KKyAgICAgKgorICAgICAqIEFzIG91dHB1dCwgJ3Jlc3VsdFBvcnQnIGNvbnRhaW5zIHBvc3NpYmxlIGF0dHJpYnV0ZXMgKHNhbXBsaW5nIHJhdGVzLAorICAgICAqIGZvcm1hdHMsIGNoYW5uZWwgbWFza3MsIGdhaW4gY29udHJvbGxlcnMuLi4pIGZvciB0aGlzIHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydCBwb3J0IGlkZW50aWZpZXIuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0UG9ydCBwb3J0IGRlc2NyaXB0b3Igd2l0aCBhbGwgcGFyYW1ldGVycyBmaWxsZWQgdXAuCisgICAgICovCisgICAgZ2V0QXVkaW9Qb3J0KEF1ZGlvUG9ydCBwb3J0KQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1BvcnQgcmVzdWx0UG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbmZpZyBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEF1ZGlvUG9ydENvbmZpZyhBdWRpb1BvcnRDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgSFcgc3luY2hyb25pemF0aW9uIHNvdXJjZSBvZiB0aGUgZGV2aWNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9IV19BVl9TWU5DIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICovCisgICAgZ2V0SHdBdlN5bmMoKSBnZW5lcmF0ZXMgKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgc2NyZWVuIGlzIG9uLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfU0NSRUVOX1NUQVRFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHR1cm5lZE9uIHdoZXRoZXIgdGhlIHNjcmVlbiBpcyB0dXJuZWQgb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIG1ldGhvZCBmb3IgcmV0cmlldmluZyB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlcy4KKyAgICAgKiBUaGUgZnJhbWV3b3JrIGRvZXMgbm90IGludGVycHJldCB0aGUgcGFyYW1ldGVycywgdGhleSBhcmUgcGFzc2VkCisgICAgICogaW4gYW4gb3BhcXVlIG1hbm5lciBiZXR3ZWVuIGEgdmVuZG9yIGFwcGxpY2F0aW9uIGFuZCBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5cyBwYXJhbWV0ZXIga2V5cy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVycyh2ZWM8c3RyaW5nPiBrZXlzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHNldHRpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHBhcmFtZXRlcnMgcGFyYW1ldGVyIGtleSB2YWx1ZSBwYWlycy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0UGFyYW1ldGVycyh2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEdW1wcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIGludG8gdGhlIHByb3ZpZGVkIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHRoZSBkdW1wc3lzIGZhY2lsaXR5LgorICAgICAqCisgICAgICogQHBhcmFtIGZkIGR1bXAgZmlsZSBkZXNjcmlwdG9yLgorICAgICAqLworICAgIGRlYnVnRHVtcChoYW5kbGUgZmQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiZTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElEZXZpY2U7CisKK2ludGVyZmFjZSBJRGV2aWNlc0ZhY3RvcnkgeworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICBlbnVtIERldmljZSA6IGludDMyX3QgeworICAgICAgICBQUklNQVJZLAorICAgICAgICBBMkRQLAorICAgICAgICBVU0IsCisgICAgICAgIFJfU1VCTUlYLAorICAgICAgICBTVFVCCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGFuIGF1ZGlvIGRldmljZS4gVG8gY2xvc2UgdGhlIGRldmljZSwgaXQgaXMgbmVjZXNzYXJ5IHRvIHJlbGVhc2UKKyAgICAgKiByZWZlcmVuY2VzIHRvIHRoZSByZXR1cm5lZCBkZXZpY2Ugb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuIFJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgbW9kdWxlIGZvdW5kLAorICAgICAqICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgb3BlbmluZyB0aGUgaGFyZHdhcmUKKyAgICAgKiAgICAgICAgIG1vZHVsZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY3JlYXRlZCBkZXZpY2UuCisgICAgICovCisgICAgb3BlbkRldmljZShEZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIElEZXZpY2UgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSURldmljZTsKKworaW50ZXJmYWNlIElQcmltYXJ5RGV2aWNlIGV4dGVuZHMgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBvZiBhIHZvaWNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBub3RpZnkgdGhlIEhBTCBhYm91dCBhdWRpbyBtb2RlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSBuZXcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBCVCBTQ08gTm9pc2UgUmVkdWN0aW9uIGFuZCBFY2hvIENhbmNlbGxhdGlvbiBhcmUgZW5hYmxlZC4KKyAgICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX05SRUMKKyAgICAgKiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBnZXRCdFNjb05yZWNFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBOb2lzZSBSZWR1Y3Rpb24gYW5kIEVjaG8gQ2FuY2VsbGF0aW9uIGFyZSBlbmFibGVkLgorICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfTlJFQworICAgICAqIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0QnRTY29OcmVjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgQlQgU0NPIFdpZGViYW5kIG1vZGUgaXMgZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBXaWRlYmFuZCBpcyBlbmFibGVkLgorICAgICAqLworICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBXaWRlYmFuZCBtb2RlIGlzIGVuYWJsZWQuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9CVF9TQ09fV0Igb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZW5hYmxlZCB3aGV0aGVyIEJUIFdpZGViYW5kIGlzIGVuYWJsZWQuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIGVudW0gVHR5TW9kZSA6IGludDMyX3QgeworICAgICAgICBPRkYsCisgICAgICAgIFZDTywKKyAgICAgICAgSENPLAorICAgICAgICBGVUxMCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdldHMgY3VycmVudCBUVFkgbW9kZSBzZWxlY3Rpb24uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9UVFlfTU9ERSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG1vZGUgVFRZIG1vZGUuCisgICAgICovCisgICAgZ2V0VHR5TW9kZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHR5TW9kZSBtb2RlKTsKKworICAgIC8qKgorICAgICAqIFNldHMgY3VycmVudCBUVFkgbW9kZS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgVFRZIG1vZGUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFR0eU1vZGUoVHR5TW9kZSBtb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB3aGV0aGVyIEhlYXJpbmcgQWlkIENvbXBhdGliaWxpdHkgLSBUZWxlY29pbCAoSEFDLVQpIG1vZGUgaXMKKyAgICAgKiBlbmFibGVkLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZworICAgICAqIEFVRElPX1BBUkFNRVRFUl9LRVlfSEFDIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZW5hYmxlZCB3aGV0aGVyIEhBQyBtb2RlIGlzIGVuYWJsZWQuCisgICAgICovCisgICAgZ2V0SGFjRW5hYmxlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBIZWFyaW5nIEFpZCBDb21wYXRpYmlsaXR5IC0gVGVsZWNvaWwgKEhBQy1UKSBtb2RlIGlzCisgICAgICogZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX0hBQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIHdoZXRoZXIgSEFDIG1vZGUgaXMgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW0uaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW0uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOWNjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbS5oYWwKQEAgLTAsMCArMSwyOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVmZmVjdDsKKworaW50ZXJmYWNlIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZyYW1lIHNpemUgKG51bWJlciBvZiBieXRlcyBwZXIgc2FtcGxlKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVTaXplIGZyYW1lIHNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgZ2V0RnJhbWVTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBmcmFtZVNpemUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmcmFtZSBjb3VudCBvZiB0aGUgYnVmZmVyLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fRlJBTUVfQ09VTlQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNvdW50IGZyYW1lIGNvdW50LgorICAgICAqLworICAgIGdldEZyYW1lQ291bnQoKSBnZW5lcmF0ZXMgKHVpbnQ2NF90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2l6ZSBvZiBpbnB1dC9vdXRwdXQgYnVmZmVyIGluIGJ5dGVzIGZvciB0aGlzIHN0cmVhbS4KKyAgICAgKiBJdCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGZyYW1lIHNpemUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBidWZmZXIgc2l6ZSBpbiBieXRlcy4KKyAgICAgKi8KKyAgICBnZXRCdWZmZXJTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBidWZmZXJTaXplKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2FtcGxpbmcgcmF0ZSBpbiBIei4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqLworICAgIGdldFNhbXBsZVJhdGUoKSBnZW5lcmF0ZXMgKHVpbnQzMl90IHNhbXBsZVJhdGVIeik7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIHNhbXBsaW5nIHJhdGVzIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9TVVBfU0FNUExJTkdfUkFURVMgb24gdGhlCisgICAgICogbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoKSBnZW5lcmF0ZXMgKHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgc2FtcGxpbmcgcmF0ZSBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU0FNUExJTkdfUkFURSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFubmVsIG1hc2sgb2YgdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbWFzayBjaGFubmVsIG1hc2suCisgICAgICovCisgICAgZ2V0Q2hhbm5lbE1hc2soKSBnZW5lcmF0ZXMgKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIGNoYW5uZWwgbWFza3Mgb2YgdGhlIHN0cmVhbS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfU1RSRUFNX1NVUF9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5CisgICAgICogSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBtYXNrcyBzdXBwb3J0ZWQgYXVkaW8gbWFza3MuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9DaGFubmVsTWFzaz4gbWFza3MpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2hhbm5lbCBtYXNrIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGZvcm1hdCBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqLworICAgIGdldEZvcm1hdCgpIGdlbmVyYXRlcyAoQXVkaW9Gb3JtYXQgZm9ybWF0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cyBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU1VQX0ZPUk1BVFMgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZm9ybWF0cyBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cy4KKyAgICAgKi8KKyAgICBnZXRTdXBwb3J0ZWRGb3JtYXRzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYXVkaW8gZm9ybWF0IG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybWF0IGF1ZGlvIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgcmV0cmlldmluZyBzZXZlcmFsIHN0cmVhbSBwYXJhbWV0ZXJzIGluCisgICAgICogb25lIHRyYW5zYWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiBtYXNrIGNoYW5uZWwgbWFzay4KKyAgICAgKiBAcmV0dXJuIGZvcm1hdCBhdWRpbyBmb3JtYXQuCisgICAgICovCisgICAgZ2V0QXVkaW9Qcm9wZXJ0aWVzKCkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIeiwgQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0Zvcm1hdCBmb3JtYXQpOworCisgICAgLyoqCisgICAgICogQXBwbGllcyBhdWRpbyBlZmZlY3QgdG8gdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlZmZlY3RJZCBlZmZlY3QgSUQgKG9idGFpbmVkIGZyb20gSUVmZmVjdHNGYWN0b3J5LmNyZWF0ZUVmZmVjdCkgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdCB0byBhcHBseS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RvcHMgYXBwbGljYXRpb24gb2YgdGhlIGVmZmVjdCB0byB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHBhcmFtIGVmZmVjdElkIGVmZmVjdCBJRCAob2J0YWluZWQgZnJvbSBJRWZmZWN0c0ZhY3RvcnkuY3JlYXRlRWZmZWN0KSBvZgorICAgICAqICAgICAgICAgICAgICAgICB0aGUgZWZmZWN0IHRvIHJlbW92ZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUHV0IHRoZSBhdWRpbyBoYXJkd2FyZSBpbnB1dC9vdXRwdXQgaW50byBzdGFuZGJ5IG1vZGUuCisgICAgICogRHJpdmVyIG11c3QgZXhpdCBmcm9tIHN0YW5kYnkgbW9kZSBhdCB0aGUgbmV4dCBJL08gb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHN0YW5kYnkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgZGV2aWNlKHMpIHdoaWNoIHRoaXMgc3RyZWFtIGlzIGNvbm5lY3RlZCB0by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZGV2aWNlIHNldCBvZiBkZXZpY2Uocykgd2hpY2ggdGhpcyBzdHJlYW0gaXMgY29ubmVjdGVkIHRvLgorICAgICAqLworICAgIGdldERldmljZSgpIGdlbmVyYXRlcyAoQXVkaW9EZXZpY2UgZGV2aWNlKTsKKworICAgIC8qKgorICAgICAqIENvbm5lY3RzIHRoZSBzdHJlYW0gdG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3Qgb25seSBiZSB1c2VkIGZvciBIQUxzIHRoYXQgZG8gbm90IHN1cHBvcnQKKyAgICAgKiAnSURldmljZS5jcmVhdGVBdWRpb1BhdGNoJyBtZXRob2QuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9ST1VUSU5HIGluIHRoZSBsZWdhY3kgSEFMCisgICAgICogaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGFkZHJlc3MgZGV2aWNlIHRvIGNvbm5lY3QgdGhlIHN0cmVhbSB0by4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0RGV2aWNlKERldmljZUFkZHJlc3MgYWRkcmVzcykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBzdHJlYW0gYWJvdXQgZGV2aWNlIGNvbm5lY3Rpb24gc3RhdGUuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0RFVklDRV9bRElTXUNPTk5FQ1Qgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZGRyZXNzIGF1ZGlvIGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNvbm5lY3RlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Q29ubmVjdGVkU3RhdGUoRGV2aWNlQWRkcmVzcyBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSFdfQVZfU1lOQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEh3QXZTeW5jKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHJldHJpZXZpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXMgcGFyYW1ldGVyIGtleXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGFyYW1ldGVycyBwYXJhbWV0ZXIga2V5IHZhbHVlIHBhaXJzLgorICAgICAqLworICAgIGdldFBhcmFtZXRlcnModmVjPHN0cmluZz4ga2V5cykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKTsKKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWV0aG9kIGZvciBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXIgdmFsdWVzLgorICAgICAqIFRoZSBmcmFtZXdvcmsgZG9lcyBub3QgaW50ZXJwcmV0IHRoZSBwYXJhbWV0ZXJzLCB0aGV5IGFyZSBwYXNzZWQKKyAgICAgKiBpbiBhbiBvcGFxdWUgbWFubmVyIGJldHdlZW4gYSB2ZW5kb3IgYXBwbGljYXRpb24gYW5kIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcnModmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0cmVhbSBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKKworICAgIC8qKgorICAgICAqIENhbGxlZCBieSB0aGUgZnJhbWV3b3JrIHRvIHN0YXJ0IGEgc3RyZWFtIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICogY3JlYXRlTW1hcEJ1ZmZlcigpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIHN0YXJ0KCkuCisgICAgICogRnVuY3Rpb24gb25seSBpbXBsZW1lbnRlZCBieSBzdHJlYW1zIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RhcnQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gc3RvcCBhIHN0cmVhbSBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqIEZ1bmN0aW9uIG9ubHkgaW1wbGVtZW50ZWQgYnkgc3RyZWFtcyBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaW4gY2FzZSB0aGUgc3VjY2VzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RvcCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCkgOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gb24gdGhlIG1tYXAgYnVmZmVyIHVzZWQgZm9yIGF1ZGlvCisgICAgICogc2FtcGxlcyB0cmFuc2Zlci4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW5TaXplRnJhbWVzIG1pbmltdW0gYnVmZmVyIHNpemUgcmVxdWVzdGVkLiBUaGUgYWN0dWFsIGJ1ZmZlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSByZXR1cm5lZCBpbiBzdHJ1Y3QgTW1hcEJ1ZmZlckluZm8gY2FuIGJlIGxhcmdlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGUgcmVxdWVzdGVkIGJ1ZmZlciBzaXplIGlzIHRvbyBsYXJnZQorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqIEByZXR1cm4gaW5mbyAgICBhIE1tYXBCdWZmZXJJbmZvIHN0cnVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRoZSBNTU1BUCBidWZmZXIgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgTW1hcEJ1ZmZlckluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byByZWFkIGN1cnJlbnQgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiB0aGUgbW1hcCBidWZmZXIKKyAgICAgKiB3aXRoIGFzc29jaWF0ZWQgdGltZSBzdGFtcC4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBvbiBub24gbW1hcCBtb2RlIHN0cmVhbXMKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiBAcmV0dXJuIHBvc2l0aW9uIGEgTW1hcFBvc2l0aW9uIHN0cnVjdCBjb250YWluaW5nIGN1cnJlbnQgSFcgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiBmcmFtZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHdpdGggYXNzb2NpYXRlZCB0aW1lIHN0YW1wLgorICAgICAqLworICAgIGdldE1tYXBQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIE1tYXBQb3NpdGlvbiBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byBkZWluaXRpYWxpemUgdGhlIHN0cmVhbSBhbmQgZnJlZSB1cAorICAgICAqIGFsbCB0aGUgY3VycmVudGx5IGFsbG9jYXRlZCByZXNvdXJjZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNsb3NlCisgICAgICogdGhlIHN0cmVhbSBvbiB0aGUgY2xpZW50IHNpZGUgYXMgc29vbiBhcyBpdCBpcyBiZWNvbWVzIHVudXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBpZiBjYWxsZWQgb24gSVN0cmVhbSBpbnN0ZWFkIG9mIGlucHV0IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgc3RyZWFtIGludGVyZmFjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBzdHJlYW0gd2FzIGFscmVhZHkgY2xvc2VkLgorICAgICAqLworICAgIGNsb3NlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVN0cmVhbUluLmhhbCBiL2F1ZGlvLzIuMC9JU3RyZWFtSW4uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzlmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbUluLmhhbApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSVN0cmVhbTsKKworaW50ZXJmYWNlIElTdHJlYW1JbiBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzb3VyY2UgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSU5QVVRfU09VUkNFIG9uIHRoZSBsZWdhY3kKKyAgICAgKiBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBzb3VyY2UgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIGdldEF1ZGlvU291cmNlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1NvdXJjZSBzb3VyY2UpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCBnYWluIGZvciB0aGUgYXVkaW8gZHJpdmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGdhaW4gMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXN1bHQgcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRHYWluKGZsb2F0IGdhaW4pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHJlYWRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBSZWFkQ29tbWFuZCA6IGludDMyX3QgeworICAgICAgICBSRUFELAorICAgICAgICBHRVRfQ0FQVFVSRV9QT1NJVElPTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzCisgICAgICogb24gdGhlIGRyaXZlciByZWFkZXIgdGhyZWFkLgorICAgICAqLworICAgIHN0cnVjdCBSZWFkUGFyYW1ldGVycyB7CisgICAgICAgIFJlYWRDb21tYW5kIGNvbW1hbmQ7ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFBhcmFtcyB7CisgICAgICAgICAgICB1aW50NjRfdCByZWFkOyAgICAvLyBSRUFEIGNvbW1hbmQsIGFtb3VudCBvZiBieXRlcyB0byByZWFkLCA+PSAwLgorICAgICAgICAgICAgLy8gTm8gcGFyYW1ldGVycyBmb3IgR0VUX0NBUFRVUkVfUE9TSVRJT04uCisgICAgICAgIH0gcGFyYW1zOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgYmFjayB0byB0aGUgY2xpZW50IHZpYSBzdGF0dXMgbWVzc2FnZSBxdWV1ZQorICAgICAqIG9mICdyZWFkJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHJlYWQgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsOworICAgICAqICAtIElOVkFMSURfQVJHVU1FTlRTLCBzdHJlYW0gd2FzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5OworICAgICAqICAtIElOVkFMSURfU1RBVEUsIHN0cmVhbSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lc24ndCBhbGxvdyByZWFkcy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVhZFN0YXR1cyB7CisgICAgICAgIFJlc3VsdCByZXR2YWw7CisgICAgICAgIFJlYWRDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJlYWQ7ICAgIC8vIFJFQUQgY29tbWFuZCwgYW1vdW50IG9mIGJ5dGVzIHJlYWQsID49IDAuCisgICAgICAgICAgICBzdHJ1Y3QgQ2FwdHVyZVBvc2l0aW9uIHsgLy8gc2FtZSBhcyBnZW5lcmF0ZWQgYnkgZ2V0Q2FwdHVyZVBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lOworICAgICAgICAgICAgfSBjYXB0dXJlUG9zaXRpb247CisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciByZWNlaXZpbmcgYXVkaW8gYnVmZmVycyBmcm9tIHRoZSBkcml2ZXIuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHRocmVlIG1lc3NhZ2UgcXVldWVzOgorICAgICAqICAtLSBjb21tYW5kIHF1ZXVlIGlzIHVzZWQgdG8gaW5zdHJ1Y3QgdGhlIHJlYWRlciB0aHJlYWQgd2hhdCBvcGVyYXRpb24KKyAgICAgKiAgICAgdG8gcGVyZm9ybTsKKyAgICAgKiAgLS0gZGF0YSBxdWV1ZSBpcyB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgIHRvIHRoZSBjbGllbnQ7CisgICAgICogIC0tIHN0YXR1cyBxdWV1ZSBpcyB1c2VkIGZvciByZXBvcnRpbmcgb3BlcmF0aW9uIHN0YXR1cworICAgICAqICAgICAoZS5nLiBhbW91bnQgb2YgYnl0ZXMgYWN0dWFsbHkgcmVhZCBvciBlcnJvciBjb2RlKS4KKyAgICAgKgorICAgICAqIFRoZSBkcml2ZXIgb3BlcmF0ZXMgb24gYSBkZWRpY2F0ZWQgdGhyZWFkLiBUaGUgY2xpZW50IG11c3QgZW5zdXJlIHRoYXQKKyAgICAgKiB0aGUgdGhyZWFkIGlzIGdpdmVuIGFuIGFwcHJvcHJpYXRlIHByaW9yaXR5IGFuZCBhc3NpZ25lZCB0byBjb3JyZWN0CisgICAgICogc2NoZWR1bGVyIGFuZCBjZ3JvdXAuIEZvciB0aGlzIHB1cnBvc2UsIHRoZSBtZXRob2QgcmV0dXJucyBpZGVudGlmaWVycworICAgICAqIG9mIHRoZSBkcml2ZXIgdGhyZWFkLgorICAgICAqCisgICAgICogQHBhcmFtIGZyYW1lU2l6ZSB0aGUgc2l6ZSBvZiBhIHNpbmdsZSBmcmFtZSwgaW4gYnl0ZXMuCisgICAgICogQHBhcmFtIGZyYW1lc0NvdW50IHRoZSBudW1iZXIgb2YgZnJhbWVzIGluIGEgYnVmZmVyLgorICAgICAqIEBwYXJhbSB0aHJlYWRQcmlvcml0eSBwcmlvcml0eSBvZiB0aGUgZHJpdmVyIHRocmVhZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIG1lc3NhZ2UgcXVldWVzIHdlcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgbWV0aG9kIHdhcyBhbHJlYWR5IGNhbGxlZC4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGVyZSB3YXMgYSBwcm9ibGVtIHNldHRpbmcgdXAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcXVldWVzLgorICAgICAqIEByZXR1cm4gY29tbWFuZE1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZGF0YU1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgaW4gdGhlIGZvcm1hdAorICAgICAqICAgICAgICAgICAgICAgIHNwZWNpZmllZCBhdCB0aGUgc3RyZWFtIG9wZW5pbmcuCisgICAgICogQHJldHVybiBzdGF0dXNNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBzdGF0dXMgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgICAgICAgICAgICAgICB1c2luZyBSZWFkU3RhdHVzIHN0cnVjdHVyZXMuCisgICAgICogQHJldHVybiB0aHJlYWRJbmZvIGlkZW50aWZpZXJzIG9mIHRoZSBkcml2ZXIncyBkZWRpY2F0ZWQgdGhyZWFkLgorICAgICAqLworICAgIHByZXBhcmVGb3JSZWFkaW5nKHVpbnQzMl90IGZyYW1lU2l6ZSwgdWludDMyX3QgZnJhbWVzQ291bnQpCisgICAgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICBmbXFfc3luYzxSZWFkUGFyYW1ldGVycz4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8UmVhZFN0YXR1cz4gc3RhdHVzTVEsCisgICAgICAgICAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhbW91bnQgb2YgaW5wdXQgZnJhbWVzIGxvc3QgaW4gdGhlIGF1ZGlvIGRyaXZlciBzaW5jZSB0aGUgbGFzdAorICAgICAqIGNhbGwgb2YgdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEF1ZGlvIGRyaXZlciBpcyBleHBlY3RlZCB0byByZXNldCB0aGUgdmFsdWUgdG8gMCBhbmQgcmVzdGFydCBjb3VudGluZworICAgICAqIHVwb24gcmV0dXJuaW5nIHRoZSBjdXJyZW50IHZhbHVlIGJ5IHRoaXMgZnVuY3Rpb24gY2FsbC4gU3VjaCBsb3NzCisgICAgICogdHlwaWNhbGx5IG9jY3VycyB3aGVuIHRoZSB1c2VyIHNwYWNlIHByb2Nlc3MgaXMgYmxvY2tlZCBsb25nZXIgdGhhbiB0aGUKKyAgICAgKiBjYXBhY2l0eSBvZiBhdWRpbyBkcml2ZXIgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVzTG9zdCB0aGUgbnVtYmVyIG9mIGlucHV0IGF1ZGlvIGZyYW1lcyBsb3N0LgorICAgICAqLworICAgIGdldElucHV0RnJhbWVzTG9zdCgpIGdlbmVyYXRlcyAodWludDMyX3QgZnJhbWVzTG9zdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByZWNlbnQgY291bnQgb2YgdGhlIG51bWJlciBvZiBhdWRpbyBmcmFtZXMgcmVjZWl2ZWQgYW5kIHRoZQorICAgICAqIGNsb2NrIHRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoYXQgZnJhbWUgY291bnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBJTlZBTElEX1NUQVRFIGlmIHRoZSBkZXZpY2UgaXMgbm90IHJlYWR5L2F2YWlsYWJsZSwKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfU1VQUE9SVEVEIGlmIHRoZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQsCisgICAgICogICAgICAgICAgICAgICAgT0sgb3RoZXJ3aXNlLgorICAgICAqIEByZXR1cm4gZnJhbWVzIHRoZSB0b3RhbCBmcmFtZSBjb3VudCByZWNlaXZlZC4gVGhpcyBtdXN0IGJlIGFzIGVhcmx5IGluCisgICAgICogICAgICAgICAgICAgICAgdGhlIGNhcHR1cmUgcGlwZWxpbmUgYXMgcG9zc2libGUuIEluIGdlbmVyYWwsIGZyYW1lcworICAgICAqICAgICAgICAgICAgICAgIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGFuZCBtdXN0IG5vdCBnbyAiYmFja3dhcmRzIi4KKyAgICAgKiBAcmV0dXJuIHRpbWUgaXMgdGhlIGNsb2NrIG1vbm90b25pYyB0aW1lIHdoZW4gZnJhbWVzIHdhcyBtZWFzdXJlZC4gSW4KKyAgICAgKiAgICAgICAgICAgICAgZ2VuZXJhbCwgdGltZSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHkgYW5kIG11c3Qgbm90CisgICAgICogICAgICAgICAgICAgIGdvICJiYWNrd2FyZHMiLgorICAgICAqLworICAgIGdldENhcHR1cmVQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGZyYW1lcywgdWludDY0X3QgdGltZSk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0Yjc0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbU91dC5oYWwKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW07CitpbXBvcnQgSVN0cmVhbU91dENhbGxiYWNrOworCitpbnRlcmZhY2UgSVN0cmVhbU91dCBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGhhcmR3YXJlIGRyaXZlciBlc3RpbWF0ZWQgbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGxhdGVuY3lNcyBsYXRlbmN5IGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRMYXRlbmN5KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBsYXRlbmN5TXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbiBzaXR1YXRpb25zIHdoZXJlIGF1ZGlvIG1peGluZyBpcyBkb25lIGluIHRoZQorICAgICAqIGhhcmR3YXJlLiBUaGlzIG1ldGhvZCBzZXJ2ZXMgYXMgYSBkaXJlY3QgaW50ZXJmYWNlIHdpdGggaGFyZHdhcmUsCisgICAgICogYWxsb3dpbmcgdG8gZGlyZWN0bHkgc2V0IHRoZSB2b2x1bWUgYXMgYXBwb3NlZCB0byB2aWEgdGhlIGZyYW1ld29yay4KKyAgICAgKiBUaGlzIG1ldGhvZCBtaWdodCBwcm9kdWNlIG11bHRpcGxlIFBDTSBvdXRwdXRzIG9yIGhhcmR3YXJlIGFjY2VsZXJhdGVkCisgICAgICogY29kZWNzLCBzdWNoIGFzIE1QMyBvciBBQUMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBsZWZ0IGNoYW5uZWwgYXR0ZW51YXRpb24sIDEuMGYgaXMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcGFyYW0gcmlnaHQgcmlnaHQgY2hhbm5lbCBhdHRlbnVhdGlvbiwgMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRWb2x1bWUoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHdyaXRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBXcml0ZUNvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgV1JJVEUsCisgICAgICAgIEdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT04sCisgICAgICAgIEdFVF9MQVRFTkNZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIERhdGEgc3RydWN0dXJlIHBhc3NlZCBiYWNrIHRvIHRoZSBjbGllbnQgdmlhIHN0YXR1cyBtZXNzYWdlIHF1ZXVlCisgICAgICogb2YgJ3dyaXRlJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHdyaXRlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKKyAgICAgKiAgLSBJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtIHdhcyBub3QgY29uZmlndXJlZCBwcm9wZXJseTsKKyAgICAgKiAgLSBJTlZBTElEX1NUQVRFLCBzdHJlYW0gaXMgaW4gYSBzdGF0ZSB0aGF0IGRvZXNuJ3QgYWxsb3cgd3JpdGVzOworICAgICAqICAtIElOVkFMSURfT1BFUkFUSU9OLCByZXRyaWV2aW5nIHByZXNlbnRhdGlvbiBwb3NpdGlvbiBpc24ndCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3RydWN0IFdyaXRlU3RhdHVzIHsKKyAgICAgICAgUmVzdWx0IHJldHZhbDsKKyAgICAgICAgV3JpdGVDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHdyaXR0ZW47ICAvLyBXUklURSBjb21tYW5kLCBhbW91bnQgb2YgYnl0ZXMgd3JpdHRlbiwgPj0gMC4KKyAgICAgICAgICAgIHN0cnVjdCBQcmVzZW50YXRpb25Qb3NpdGlvbiB7ICAvLyBzYW1lIGFzIGdlbmVyYXRlZCBieQorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsgICAgICAgICAgIC8vIGdldFByZXNlbnRhdGlvblBvc2l0aW9uLgorICAgICAgICAgICAgICAgIFRpbWVTcGVjIHRpbWVTdGFtcDsKKyAgICAgICAgICAgIH0gcHJlc2VudGF0aW9uUG9zaXRpb247CisgICAgICAgICAgICB1aW50MzJfdCBsYXRlbmN5TXM7IC8vIFNhbWUgYXMgZ2VuZXJhdGVkIGJ5IGdldExhdGVuY3kuCisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciBwYXNzaW5nIGF1ZGlvIGJ1ZmZlcnMgdG8gdGhlIGRyaXZlci4KKyAgICAgKgorICAgICAqIFRoZSB0cmFuc3BvcnQgY29uc2lzdHMgb2YgdGhyZWUgbWVzc2FnZSBxdWV1ZXM6CisgICAgICogIC0tIGNvbW1hbmQgcXVldWUgaXMgdXNlZCB0byBpbnN0cnVjdCB0aGUgd3JpdGVyIHRocmVhZCB3aGF0IG9wZXJhdGlvbgorICAgICAqICAgICB0byBwZXJmb3JtOworICAgICAqICAtLSBkYXRhIHF1ZXVlIGlzIHVzZWQgZm9yIHBhc3NpbmcgYXVkaW8gZGF0YSBmcm9tIHRoZSBjbGllbnQKKyAgICAgKiAgICAgdG8gdGhlIGRyaXZlcjsKKyAgICAgKiAgLS0gc3RhdHVzIHF1ZXVlIGlzIHVzZWQgZm9yIHJlcG9ydGluZyBvcGVyYXRpb24gc3RhdHVzCisgICAgICogICAgIChlLmcuIGFtb3VudCBvZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIG9yIGVycm9yIGNvZGUpLgorICAgICAqCisgICAgICogVGhlIGRyaXZlciBvcGVyYXRlcyBvbiBhIGRlZGljYXRlZCB0aHJlYWQuIFRoZSBjbGllbnQgbXVzdCBlbnN1cmUgdGhhdAorICAgICAqIHRoZSB0aHJlYWQgaXMgZ2l2ZW4gYW4gYXBwcm9wcmlhdGUgcHJpb3JpdHkgYW5kIGFzc2lnbmVkIHRvIGNvcnJlY3QKKyAgICAgKiBzY2hlZHVsZXIgYW5kIGNncm91cC4gRm9yIHRoaXMgcHVycG9zZSwgdGhlIG1ldGhvZCByZXR1cm5zIGlkZW50aWZpZXJzCisgICAgICogb2YgdGhlIGRyaXZlciB0aHJlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWVTaXplIHRoZSBzaXplIG9mIGEgc2luZ2xlIGZyYW1lLCBpbiBieXRlcy4KKyAgICAgKiBAcGFyYW0gZnJhbWVzQ291bnQgdGhlIG51bWJlciBvZiBmcmFtZXMgaW4gYSBidWZmZXIuCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaWYgYm90aCBtZXNzYWdlIHF1ZXVlcyB3ZXJlIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIG1ldGhvZCB3YXMgYWxyZWFkeSBjYWxsZWQuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgdGhlcmUgd2FzIGEgcHJvYmxlbSBzZXR0aW5nIHVwCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHF1ZXVlcy4KKyAgICAgKiBAcmV0dXJuIGNvbW1hbmRNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBjb21tYW5kcy4KKyAgICAgKiBAcmV0dXJuIGRhdGFNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBhdWRpbyBkYXRhIGluIHRoZSBmb3JtYXQKKyAgICAgKiAgICAgICAgICAgICAgICBzcGVjaWZpZWQgYXQgdGhlIHN0cmVhbSBvcGVuaW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzTVEgYSBtZXNzYWdlIHF1ZXVlIHVzZWQgZm9yIHBhc3Npbmcgc3RhdHVzIGZyb20gdGhlIGRyaXZlcgorICAgICAqICAgICAgICAgICAgICAgICAgdXNpbmcgV3JpdGVTdGF0dXMgc3RydWN0dXJlcy4KKyAgICAgKiBAcmV0dXJuIHRocmVhZEluZm8gaWRlbnRpZmllcnMgb2YgdGhlIGRyaXZlcidzIGRlZGljYXRlZCB0aHJlYWQuCisgICAgICovCisgICAgcHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCkKKyAgICBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgIGZtcV9zeW5jPFdyaXRlQ29tbWFuZD4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8V3JpdGVTdGF0dXM+IHN0YXR1c01RLAorICAgICAgICAgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuIGJ5IHRoZSBhdWRpbyBEU1AgdG8gREFDIHNpbmNlCisgICAgICogdGhlIG91dHB1dCBoYXMgZXhpdGVkIHN0YW5kYnkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkc3BGcmFtZXMgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuLgorICAgICAqLworICAgIGdldFJlbmRlclBvc2l0aW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCBkc3BGcmFtZXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsb2NhbCB0aW1lIGF0IHdoaWNoIHRoZSBuZXh0IHdyaXRlIHRvIHRoZSBhdWRpbyBkcml2ZXIgd2lsbCBiZQorICAgICAqIHByZXNlbnRlZC4gVGhlIHVuaXRzIGFyZSBtaWNyb3NlY29uZHMsIHdoZXJlIHRoZSBlcG9jaCBpcyBkZWNpZGVkIGJ5IHRoZQorICAgICAqIGxvY2FsIGF1ZGlvIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHRpbWVzdGFtcFVzIHRpbWUgb2YgdGhlIG5leHQgd3JpdGUuCisgICAgICovCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQ2NF90IHRpbWVzdGFtcFVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FsbGJhY2sgaW50ZXJmYWNlIGZvciBub3RpZnlpbmcgY29tcGxldGlvbiBvZiBub24tYmxvY2tpbmcKKyAgICAgKiB3cml0ZSBhbmQgZHJhaW4uCisgICAgICoKKyAgICAgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaW1wbGllcyB0aGF0IGFsbCBmdXR1cmUgJ3dyaXRlJyBhbmQgJ2RyYWluJworICAgICAqIG11c3QgYmUgbm9uLWJsb2NraW5nIGFuZCB1c2UgdGhlIGNhbGxiYWNrIHRvIHNpZ25hbCBjb21wbGV0aW9uLgorICAgICAqCisgICAgICogJ2NsZWFyQ2FsbGJhY2snIG1ldGhvZCBuZWVkcyB0byBiZSBjYWxsZWQgaW4gb3JkZXIgdG8gcmVsZWFzZSB0aGUgbG9jYWwKKyAgICAgKiBjYWxsYmFjayBwcm94eSBvbiB0aGUgc2VydmVyIHNpZGUgYW5kIHRodXMgZGVyZWZlcmVuY2UgdGhlIGNhbGxiYWNrCisgICAgICogaW1wbGVtZW50YXRpb24gb24gdGhlIGNsaWVudCBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElTdHJlYW1PdXRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgY2FsbGJhY2sgcHJldmlvdXNseSBzZXQgdmlhICdzZXRDYWxsYmFjaycgbWV0aG9kLgorICAgICAqCisgICAgICogV2FybmluZzogZmFpbHVyZSB0byBjYWxsIHRoaXMgbWV0aG9kIHJlc3VsdHMgaW4gY2FsbGJhY2sgaW1wbGVtZW50YXRpb24KKyAgICAgKiBvbiB0aGUgY2xpZW50IHNpZGUgYmVpbmcgaGVsZCB1bnRpbCB0aGUgSEFMIHNlcnZlciB0ZXJtaW5hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgb3IgTk9UX1NVUFBPUlRFRC4KKyAgICAgKi8KKyAgICBjbGVhckNhbGxiYWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgcGF1c2luZyBhbmQgcmVzdW1pbmcgb2Ygc3RyZWFtcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNQYXVzZSB0cnVlIGlmIHBhdXNpbmcgaXMgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNSZXN1bWUgdHJ1ZSBpZiByZXN1bWUgaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIHN1cHBvcnRzUGF1c2VBbmRSZXN1bWUoKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzUGF1c2UsIGJvb2wgc3VwcG9ydHNSZXN1bWUpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byBzdG9wIHBsYXliYWNrIGhvd2V2ZXIgdGhlIHF1ZXVlZCBidWZmZXJzCisgICAgICogYXJlIHJldGFpbmVkIGJ5IHRoZSBoYXJkd2FyZS4gVXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGF1c2UvcmVzdW1lLiBFbXB0eQorICAgICAqIGltcGxlbWVudGF0aW9uIGlmIG5vdCBzdXBwb3J0ZWQgaG93ZXZlciBtdXN0IGJlIGltcGxlbWVudGVkIGZvciBoYXJkd2FyZQorICAgICAqIHdpdGggbm9uLXRyaXZpYWwgbGF0ZW5jeS4gSW4gdGhlIHBhdXNlIHN0YXRlLCBzb21lIGF1ZGlvIGhhcmR3YXJlIG1heQorICAgICAqIHN0aWxsIGJlIHVzaW5nIHBvd2VyLiBDbGllbnQgY29kZSBtYXkgY29uc2lkZXIgY2FsbGluZyAnc3VzcGVuZCcgYWZ0ZXIgYQorICAgICAqIHRpbWVvdXQgdG8gcHJldmVudCB0aGF0IGV4Y2VzcyBwb3dlciB1c2FnZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgbWFuZGF0b3J5IGZvciBvZmZsb2FkZWQgcGxheWJhY2suCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcGF1c2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byByZXN1bWUgcGxheWJhY2sgZm9sbG93aW5nIGEgcGF1c2UuCisgICAgICogUmV0dXJucyBlcnJvciBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCB3aXRob3V0IG1hdGNoaW5nIHBhdXNlLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICByZXN1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIEhBTCBzdXBwb3J0cyBkcmFpbmluZyBvZiBzdHJlYW1zLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0cyB0cnVlIGlmIGRyYWluaW5nIGlzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBzdXBwb3J0c0RyYWluKCkgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3RzIG5vdGlmaWNhdGlvbiB3aGVuIGRhdGEgYnVmZmVyZWQgYnkgdGhlIGRyaXZlci9oYXJkd2FyZSBoYXMgYmVlbgorICAgICAqIHBsYXllZC4gSWYgJ3NldENhbGxiYWNrJyBoYXMgcHJldmlvdXNseSBiZWVuIGNhbGxlZCB0byBlbmFibGUKKyAgICAgKiBub24tYmxvY2tpbmcgbW9kZSwgdGhlbiAnZHJhaW4nIG11c3Qgbm90IGJsb2NrLCBpbnN0ZWFkIGl0IG11c3QgcmV0dXJuCisgICAgICogcXVpY2tseSBhbmQgY29tcGxldGlvbiBvZiB0aGUgZHJhaW4gaXMgbm90aWZpZWQgdGhyb3VnaCB0aGUgY2FsbGJhY2suIElmCisgICAgICogJ3NldENhbGxiYWNrJyBoYXMgbm90IGJlZW4gY2FsbGVkLCB0aGVuICdkcmFpbicgbXVzdCBibG9jayB1bnRpbAorICAgICAqIGNvbXBsZXRpb24uCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0FMTCcsIHRoZSBkcmFpbiBjb21wbGV0ZXMgd2hlbiBhbGwgcHJldmlvdXNseSB3cml0dGVuIGRhdGEKKyAgICAgKiBoYXMgYmVlbiBwbGF5ZWQuCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0VBUkxZX05PVElGWScsIHRoZSBkcmFpbiBjb21wbGV0ZXMgc2hvcnRseSBiZWZvcmUgYWxsIGRhdGEKKyAgICAgKiBmb3IgdGhlIGN1cnJlbnQgdHJhY2sgaGFzIHBsYXllZCB0byBhbGxvdyB0aW1lIGZvciB0aGUgZnJhbWV3b3JrIHRvCisgICAgICogcGVyZm9ybSBhIGdhcGxlc3MgdHJhY2sgc3dpdGNoLgorICAgICAqCisgICAgICogRHJhaW4gbXVzdCByZXR1cm4gaW1tZWRpYXRlbHkgb24gJ3N0b3AnIGFuZCAnZmx1c2gnIGNhbGxzLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgZHJhaW4uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRvIHRoZSBhdWRpbyBkcml2ZXIgdG8gZmx1c2ggdGhlIHF1ZXVlZCBkYXRhLiBTdHJlYW0gbXVzdAorICAgICAqIGFscmVhZHkgYmUgcGF1c2VkIGJlZm9yZSBjYWxsaW5nICdmbHVzaCcuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeSBmb3Igb2ZmbG9hZGVkIHBsYXliYWNrLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGZsdXNoKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHJlY2VudCBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyBwcmVzZW50ZWQgdG8gYW4KKyAgICAgKiBleHRlcm5hbCBvYnNlcnZlci4gVGhpcyBleGNsdWRlcyBmcmFtZXMgd2hpY2ggaGF2ZSBiZWVuIHdyaXR0ZW4gYnV0IGFyZQorICAgICAqIHN0aWxsIGluIHRoZSBwaXBlbGluZS4gVGhlIGNvdW50IGlzIG5vdCByZXNldCB0byB6ZXJvIHdoZW4gb3V0cHV0IGVudGVycworICAgICAqIHN0YW5kYnkuIEFsc28gcmV0dXJucyB0aGUgdmFsdWUgb2YgQ0xPQ0tfTU9OT1RPTklDIGFzIG9mIHRoaXMKKyAgICAgKiBwcmVzZW50YXRpb24gY291bnQuIFRoZSByZXR1cm5lZCBjb3VudCBpcyBleHBlY3RlZCB0byBiZSAncmVjZW50JywgYnV0CisgICAgICogZG9lcyBub3QgbmVlZCB0byBiZSB0aGUgbW9zdCByZWNlbnQgcG9zc2libGUgdmFsdWUuIEhvd2V2ZXIsIHRoZQorICAgICAqIGFzc29jaWF0ZWQgdGltZSBtdXN0IGNvcnJlc3BvbmQgdG8gd2hhdGV2ZXIgY291bnQgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBFeGFtcGxlOiBhc3N1bWUgdGhhdCBOK00gZnJhbWVzIGhhdmUgYmVlbiBwcmVzZW50ZWQsIHdoZXJlIE0gaXMgYSAnc21hbGwnCisgICAgICogbnVtYmVyLiBUaGVuIGl0IGlzIHBlcm1pc3NpYmxlIHRvIHJldHVybiBOIGluc3RlYWQgb2YgTitNLCBhbmQgdGhlCisgICAgICogdGltZXN0YW1wIG11c3QgY29ycmVzcG9uZCB0byBOIHJhdGhlciB0aGFuIE4rTS4gVGhlIHRlcm1zICdyZWNlbnQnIGFuZAorICAgICAqICdzbWFsbCcgYXJlIG5vdCBkZWZpbmVkLiBUaGV5IHJlZmxlY3QgdGhlIHF1YWxpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZnJhbWVzIGNvdW50IG9mIHByZXNlbnRlZCBhdWRpbyBmcmFtZXMuCisgICAgICogQHJldHVybiB0aW1lU3RhbXAgYXNzb2NpYXRlZCBjbG9jayB0aW1lLgorICAgICAqLworICAgIGdldFByZXNlbnRhdGlvblBvc2l0aW9uKCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDY0X3QgZnJhbWVzLCBUaW1lU3BlYyB0aW1lU3RhbXApOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlMTIzYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCisvKioKKyAqIEFzeW5jaHJvbm91cyB3cml0ZSBjYWxsYmFjayBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJU3RyZWFtT3V0Q2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIE5vbiBibG9ja2luZyB3cml0ZSBjb21wbGV0ZWQuCisgICAgICovCisgICAgb25ld2F5IG9uV3JpdGVSZWFkeSgpOworCisgICAgLyoqCisgICAgICogRHJhaW4gY29tcGxldGVkLgorICAgICAqLworICAgIG9uZXdheSBvbkRyYWluUmVhZHkoKTsKKworICAgIC8qKgorICAgICAqIFN0cmVhbSBoaXQgYW4gZXJyb3IuCisgICAgICovCisgICAgb25ld2F5IG9uRXJyb3IoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYXVkaW8vMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjE4NTNjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDkxIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtaW1wbAorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIENvbnZlcnNpb25zLmNwcCBcCisgICAgRGV2aWNlLmNwcCBcCisgICAgRGV2aWNlc0ZhY3RvcnkuY3BwIFwKKyAgICBQYXJhbWV0ZXJzVXRpbC5jcHAgXAorICAgIFByaW1hcnlEZXZpY2UuY3BwIFwKKyAgICBTdHJlYW0uY3BwIFwKKyAgICBTdHJlYW1Jbi5jcHAgXAorICAgIFN0cmVhbU91dC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmZtcSBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmF1ZGlvY2xpZW50X2hlYWRlcnMgXAorICAgIGxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIFwKKyAgICBsaWJoYXJkd2FyZV9oZWFkZXJzIFwKKyAgICBsaWJtZWRpYV9oZWFkZXJzIFwKKworTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBsaWJtZWRpYV9oZWxwZXIKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCisjCisjIFNlcnZpY2UKKyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfVVNFU19CQ1JBRElPX0ZVVFVSRV9GRUFUVVJFUyksdHJ1ZSkKK0xPQ0FMX0NGTEFHUyArPSAtRFRBUkdFVF9VU0VTX0JDUkFESU9fRlVUVVJFX0ZFQVRVUkVTCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjY5MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjpzdHJpbmcgZGV2aWNlQWRkcmVzc1RvSGFsKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICAvLyBIQUwgYXNzdW1lcyB0aGF0IHRoZSBhZGRyZXNzIGlzIE5VTC10ZXJtaW5hdGVkLgorICAgIGNoYXIgaGFsQWRkcmVzc1tBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOXTsKKyAgICBtZW1zZXQoaGFsQWRkcmVzcywgMCwgc2l6ZW9mKGhhbEFkZHJlc3MpKTsKKyAgICB1aW50MzJfdCBoYWxEZXZpY2UgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWRkcmVzcy5kZXZpY2UpOworICAgIGNvbnN0IGJvb2wgaXNJbnB1dCA9IChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfQklUX0lOKSAhPSAwOworICAgIGlmIChpc0lucHV0KSBoYWxEZXZpY2UgJj0gfkFVRElPX0RFVklDRV9CSVRfSU47CisgICAgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9BTExfQTJEUCkgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fQkxVRVRPT1RIX0EyRFApICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJTAyWDolMDJYOiUwMlg6JTAyWDolMDJYOiUwMlgiLAorICAgICAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcy5tYWNbMF0sIGFkZHJlc3MuYWRkcmVzcy5tYWNbMV0sIGFkZHJlc3MuYWRkcmVzcy5tYWNbMl0sCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLm1hY1szXSwgYWRkcmVzcy5hZGRyZXNzLm1hY1s0XSwgYWRkcmVzcy5hZGRyZXNzLm1hY1s1XSk7CisgICAgfSBlbHNlIGlmICgoIWlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9PVVRfSVApICE9IDApCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX0lQKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgIiVkLiVkLiVkLiVkIiwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuaXB2NFswXSwgYWRkcmVzcy5hZGRyZXNzLmlwdjRbMV0sCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLmlwdjRbMl0sIGFkZHJlc3MuYWRkcmVzcy5pcHY0WzNdKTsKKyAgICB9IGVsc2UgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9BTExfVVNCKSAhPSAwKQorICAgICAgICAgICAgfHwgKGlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9JTl9BTExfVVNCKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgImNhcmQ9JWQ7ZGV2aWNlPSVkIiwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuYWxzYS5jYXJkLCBhZGRyZXNzLmFkZHJlc3MuYWxzYS5kZXZpY2UpOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX0JVUykgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fQlVTKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgIiVzIiwgYWRkcmVzcy5idXNBZGRyZXNzLmNfc3RyKCkpOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX1JFTU9URV9TVUJNSVgpKSAhPSAwCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX1JFTU9URV9TVUJNSVgpICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJXMiLCBhZGRyZXNzLnJTdWJtaXhBZGRyZXNzLmNfc3RyKCkpOworICAgIH0KKyAgICByZXR1cm4gaGFsQWRkcmVzczsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9Db252ZXJzaW9ucy5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmRhNWM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfQ29udmVyc2lvbnNfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX0NvbnZlcnNpb25zX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOworCitzdGQ6OnN0cmluZyBkZXZpY2VBZGRyZXNzVG9IYWwoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcyk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9Db252ZXJzaW9uc19IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgwZDMyMAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5jcHAKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqCisqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKgorKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKgorKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworI2RlZmluZSBMT0dfVEFHICJEZXZpY2VIQUwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxtZW1vcnkuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisjaW5jbHVkZSAiU3RyZWFtSW4uaCIKKyNpbmNsdWRlICJTdHJlYW1PdXQuaCIKKyNpbmNsdWRlICJVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgRGlhZ25vc3RpY3MgeworICAgcHVibGljOgorICAgIHN0YXRpYyBEaWFnbm9zdGljcyYgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBfKG1Mb2NrKTsKKyAgICAgICAgaWYgKG1JbnN0YW5jZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBtSW5zdGFuY2UgPSBuZXcgRGlhZ25vc3RpY3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICptSW5zdGFuY2U7CisgICAgfQorCisgICAgdm9pZCByZWdpc3RlckRldmljZShEZXZpY2UqIGRldikgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gXyhtTG9jayk7CisgICAgICAgIG1EZXZpY2VzLnB1c2hfYmFjayh3cDxEZXZpY2U+KGRldikpOworICAgIH0KKworICAgIHZvaWQgY2hlY2tGb3JFcmFzZWRIYWxDYmxrKGNvbnN0IERldmljZSogZGV2KSB7CisgICAgICAgIGlmIChkZXYtPnZlcnNpb24oKSAhPSAwKSByZXR1cm47ICAvLyBhbGwgT0sKKworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3M7CisgICAgICAgIHNzIDw8ICJaZXJvIEhBTCBDQiBmb3IgIiA8PCBkZXYtPnR5cGUoKSA8PCAiOiIgPDwgc3RkOjpoZXgKKyAgICAgICAgICAgPDwgZGV2LT5kZXZpY2UoKSA8PCAiOyBPdGhlcnM6ICI7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBfKG1Mb2NrKTsKKyAgICAgICAgICAgIGZvciAoYXV0byB3cCA6IG1EZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgc3A8RGV2aWNlPiBvdGhlcnt3cC5wcm9tb3RlKCl9OworICAgICAgICAgICAgICAgIGlmIChvdGhlci5nZXQoKSA9PSBudWxscHRyIHx8IG90aGVyLmdldCgpID09IGRldikgY29udGludWU7CisgICAgICAgICAgICAgICAgc3MgPDwgb3RoZXItPnR5cGUoKSA8PCAiOiIgPDwgb3RoZXItPnZlcnNpb24oKSA8PCAiOiIKKyAgICAgICAgICAgICAgICAgICA8PCBzdGQ6OmhleCA8PCBvdGhlci0+ZGV2aWNlKCkgPDwgIjsgIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBBTE9HRSgiJXMiLCBzcy5zdHIoKS5jX3N0cigpKTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgRGlhZ25vc3RpY3MoKSB7fQorCisgICAgc3RhdGljIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RhdGljIERpYWdub3N0aWNzKiBtSW5zdGFuY2U7CisgICAgc3RkOjp2ZWN0b3I8d3A8RGV2aWNlPj4gbURldmljZXM7Cit9OworCitzdGQ6Om11dGV4IERpYWdub3N0aWNzOjptTG9jazsKK0RpYWdub3N0aWNzKiBEaWFnbm9zdGljczo6bUluc3RhbmNle251bGxwdHJ9OworCit9ICAvLyBuYW1lc3BhY2UKKworRGV2aWNlOjpEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSwgY29uc3QgY2hhciogdHlwZSkKKyAgICA6IG1EZXZpY2V7ZGV2aWNlfSwgbVR5cGV7dHlwZX0geworICAgIERpYWdub3N0aWNzOjpnZXRJbnN0YW5jZSgpLnJlZ2lzdGVyRGV2aWNlKHRoaXMpOworfQorCitEZXZpY2U6On5EZXZpY2UoKSB7CisgICAgaW50IHN0YXR1cyA9IGF1ZGlvX2h3X2RldmljZV9jbG9zZShtRGV2aWNlKTsKKyAgICBBTE9HV19JRihzdGF0dXMsICJFcnJvciBjbG9zaW5nIGF1ZGlvIGh3IGRldmljZSAlcDogJXMiLCBtRGV2aWNlLAorICAgICAgICAgICAgIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICBtRGV2aWNlID0gbnVsbHB0cjsKK30KKworUmVzdWx0IERldmljZTo6YW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cykgeworICAgIGlmIChzdGF0dXMgIT0gMCkgeworICAgICAgICBBTE9HVygiRGV2aWNlICVwICVzOiAlcyIsIG1EZXZpY2UsIGZ1bmNOYW1lLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PREFUQToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgICAgIGNhc2UgLUVOT0RFVjoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgfQorfQorCit2b2lkIERldmljZTo6Y2xvc2VJbnB1dFN0cmVhbShhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKSB7CisgICAgbURldmljZS0+Y2xvc2VfaW5wdXRfc3RyZWFtKG1EZXZpY2UsIHN0cmVhbSk7Cit9CisKK3ZvaWQgRGV2aWNlOjpjbG9zZU91dHB1dFN0cmVhbShhdWRpb19zdHJlYW1fb3V0X3QqIHN0cmVhbSkgeworICAgIG1EZXZpY2UtPmNsb3NlX291dHB1dF9zdHJlYW0obURldmljZSwgc3RyZWFtKTsKK30KKworY2hhciogRGV2aWNlOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICBEaWFnbm9zdGljczo6Z2V0SW5zdGFuY2UoKS5jaGVja0ZvckVyYXNlZEhhbENibGsodGhpcyk7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXMpOworfQorCitpbnQgRGV2aWNlOjpoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIHsKKyAgICBEaWFnbm9zdGljczo6Z2V0SW5zdGFuY2UoKS5jaGVja0ZvckVyYXNlZEhhbENibGsodGhpcyk7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXNBbmRWYWx1ZXMpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjppbml0Q2hlY2soKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImluaXRfY2hlY2siLCBtRGV2aWNlLT5pbml0X2NoZWNrKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSB7CisgICAgaWYgKG1EZXZpY2UtPnNldF9tYXN0ZXJfdm9sdW1lID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKHZvbHVtZSkpIHsKKyAgICAgICAgQUxPR1coIkNhbiBub3Qgc2V0IGEgbWFzdGVyIHZvbHVtZSAoJWYpIG91dHNpZGUgWzAsMV0iLCB2b2x1bWUpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInNldF9tYXN0ZXJfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5zZXRfbWFzdGVyX3ZvbHVtZShtRGV2aWNlLCB2b2x1bWUpKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWFzdGVyVm9sdW1lKGdldE1hc3RlclZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBmbG9hdCB2b2x1bWUgPSAwOworICAgIGlmIChtRGV2aWNlLT5nZXRfbWFzdGVyX3ZvbHVtZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9tYXN0ZXJfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5nZXRfbWFzdGVyX3ZvbHVtZShtRGV2aWNlLCAmdm9sdW1lKSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgdm9sdW1lKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldE1pY011dGUoYm9vbCBtdXRlKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInNldF9taWNfbXV0ZSIsIG1EZXZpY2UtPnNldF9taWNfbXV0ZShtRGV2aWNlLCBtdXRlKSk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgbXV0ZSA9IGZhbHNlOworICAgIFJlc3VsdCByZXR2YWwgPQorICAgICAgICBhbmFseXplU3RhdHVzKCJnZXRfbWljX211dGUiLCBtRGV2aWNlLT5nZXRfbWljX211dGUobURldmljZSwgJm11dGUpKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIG11dGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0TWFzdGVyTXV0ZShib29sIG11dGUpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKG1EZXZpY2UtPnNldF9tYXN0ZXJfbXV0ZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoInNldF9tYXN0ZXJfbXV0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURldmljZS0+c2V0X21hc3Rlcl9tdXRlKG1EZXZpY2UsIG11dGUpKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGJvb2wgbXV0ZSA9IGZhbHNlOworICAgIGlmIChtRGV2aWNlLT5nZXRfbWFzdGVyX211dGUgIT0gTlVMTCkgeworICAgICAgICByZXR2YWwgPSBhbmFseXplU3RhdHVzKCJnZXRfbWFzdGVyX211dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPmdldF9tYXN0ZXJfbXV0ZShtRGV2aWNlLCAmbXV0ZSkpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIG11dGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmdldElucHV0QnVmZmVyU2l6ZShjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBzaXplX3QgaGFsQnVmZmVyU2l6ZSA9IG1EZXZpY2UtPmdldF9pbnB1dF9idWZmZXJfc2l6ZShtRGV2aWNlLCAmaGFsQ29uZmlnKTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemUgPSAwOworICAgIGlmIChoYWxCdWZmZXJTaXplICE9IDApIHsKKyAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpPSzsKKyAgICAgICAgYnVmZmVyU2l6ZSA9IGhhbEJ1ZmZlclNpemU7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgYnVmZmVyU2l6ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6b3Blbk91dHB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbk91dHB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QqIGhhbFN0cmVhbTsKKyAgICBBTE9HVigKKyAgICAgICAgIm9wZW5fb3V0cHV0X3N0cmVhbSBoYW5kbGU6ICVkIGRldmljZXM6ICV4IGZsYWdzOiAlI3ggIgorICAgICAgICAic3JhdGU6ICVkIGZvcm1hdCAlI3ggY2hhbm5lbHMgJXggYWRkcmVzcyAlcyIsCisgICAgICAgIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19vdXRwdXRfZmxhZ3NfdD4oZmxhZ3MpLCBoYWxDb25maWcuc2FtcGxlX3JhdGUsCisgICAgICAgIGhhbENvbmZpZy5mb3JtYXQsIGhhbENvbmZpZy5jaGFubmVsX21hc2ssCisgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChkZXZpY2UpLmNfc3RyKCkpOworICAgIGludCBzdGF0dXMgPSBtRGV2aWNlLT5vcGVuX291dHB1dF9zdHJlYW0oCisgICAgICAgIG1EZXZpY2UsIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19vdXRwdXRfZmxhZ3NfdD4oZmxhZ3MpLCAmaGFsQ29uZmlnLCAmaGFsU3RyZWFtLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpKTsKKyAgICBBTE9HVigib3Blbl9vdXRwdXRfc3RyZWFtIHN0YXR1cyAlZCBzdHJlYW0gJXAiLCBzdGF0dXMsIGhhbFN0cmVhbSk7CisgICAgc3A8SVN0cmVhbU91dD4gc3RyZWFtT3V0OworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgc3RyZWFtT3V0ID0gbmV3IFN0cmVhbU91dCh0aGlzLCBoYWxTdHJlYW0pOworICAgIH0KKyAgICBBdWRpb0NvbmZpZyBzdWdnZXN0ZWRDb25maWc7CisgICAgSGlkbFV0aWxzOjphdWRpb0NvbmZpZ0Zyb21IYWwoaGFsQ29uZmlnLCAmc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICBfaGlkbF9jYihhbmFseXplU3RhdHVzKCJvcGVuX291dHB1dF9zdHJlYW0iLCBzdGF0dXMpLCBzdHJlYW1PdXQsCisgICAgICAgICAgICAgc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpvcGVuSW5wdXRTdHJlYW0oaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywgQXVkaW9Tb3VyY2Ugc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBhdWRpb19zdHJlYW1faW5fdCogaGFsU3RyZWFtOworICAgIEFMT0dWKAorICAgICAgICAib3Blbl9pbnB1dF9zdHJlYW0gaGFuZGxlOiAlZCBkZXZpY2VzOiAleCBmbGFnczogJSN4ICIKKyAgICAgICAgInNyYXRlOiAlZCBmb3JtYXQgJSN4IGNoYW5uZWxzICV4IGFkZHJlc3MgJXMgc291cmNlICVkIiwKKyAgICAgICAgaW9IYW5kbGUsIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlLmRldmljZSksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2lucHV0X2ZsYWdzX3Q+KGZsYWdzKSwgaGFsQ29uZmlnLnNhbXBsZV9yYXRlLAorICAgICAgICBoYWxDb25maWcuZm9ybWF0LCBoYWxDb25maWcuY2hhbm5lbF9tYXNrLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zb3VyY2VfdD4oc291cmNlKSk7CisgICAgaW50IHN0YXR1cyA9IG1EZXZpY2UtPm9wZW5faW5wdXRfc3RyZWFtKAorICAgICAgICBtRGV2aWNlLCBpb0hhbmRsZSwgc3RhdGljX2Nhc3Q8YXVkaW9fZGV2aWNlc190PihkZXZpY2UuZGV2aWNlKSwKKyAgICAgICAgJmhhbENvbmZpZywgJmhhbFN0cmVhbSwgc3RhdGljX2Nhc3Q8YXVkaW9faW5wdXRfZmxhZ3NfdD4oZmxhZ3MpLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zb3VyY2VfdD4oc291cmNlKSk7CisgICAgQUxPR1YoIm9wZW5faW5wdXRfc3RyZWFtIHN0YXR1cyAlZCBzdHJlYW0gJXAiLCBzdGF0dXMsIGhhbFN0cmVhbSk7CisgICAgc3A8SVN0cmVhbUluPiBzdHJlYW1JbjsKKyAgICBpZiAoc3RhdHVzID09IE9LKSB7CisgICAgICAgIHN0cmVhbUluID0gbmV3IFN0cmVhbUluKHRoaXMsIGhhbFN0cmVhbSk7CisgICAgfQorICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnRnJvbUhhbChoYWxDb25maWcsICZzdWdnZXN0ZWRDb25maWcpOworICAgIF9oaWRsX2NiKGFuYWx5emVTdGF0dXMoIm9wZW5faW5wdXRfc3RyZWFtIiwgc3RhdHVzKSwgc3RyZWFtSW4sCisgICAgICAgICAgICAgc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gRGV2aWNlOjpzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpIHsKKyAgICByZXR1cm4gdmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzA7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmNyZWF0ZUF1ZGlvUGF0Y2goY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc291cmNlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCA9IDA7CisgICAgaWYgKHZlcnNpb24oKSA+PSBBVURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fM18wKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxhdWRpb19wb3J0X2NvbmZpZ1tdPiBoYWxTb3VyY2VzKAorICAgICAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdzVG9IYWwoc291cmNlcykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gaGFsU2lua3MoCisgICAgICAgICAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ3NUb0hhbChzaW5rcykpOworICAgICAgICBhdWRpb19wYXRjaF9oYW5kbGVfdCBoYWxQYXRjaCA9IEFVRElPX1BBVENIX0hBTkRMRV9OT05FOworICAgICAgICByZXR2YWwgPSBhbmFseXplU3RhdHVzKAorICAgICAgICAgICAgImNyZWF0ZV9hdWRpb19wYXRjaCIsCisgICAgICAgICAgICBtRGV2aWNlLT5jcmVhdGVfYXVkaW9fcGF0Y2gobURldmljZSwgc291cmNlcy5zaXplKCksICZoYWxTb3VyY2VzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmtzLnNpemUoKSwgJmhhbFNpbmtzWzBdLCAmaGFsUGF0Y2gpKTsKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICBwYXRjaCA9IHN0YXRpY19jYXN0PEF1ZGlvUGF0Y2hIYW5kbGU+KGhhbFBhdGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHBhdGNoKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnJlbGVhc2VBdWRpb1BhdGNoKGludDMyX3QgcGF0Y2gpIHsKKyAgICBpZiAodmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzApIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAicmVsZWFzZV9hdWRpb19wYXRjaCIsCisgICAgICAgICAgICBtRGV2aWNlLT5yZWxlYXNlX2F1ZGlvX3BhdGNoKAorICAgICAgICAgICAgICAgIG1EZXZpY2UsIHN0YXRpY19jYXN0PGF1ZGlvX3BhdGNoX2hhbmRsZV90PihwYXRjaCkpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0QXVkaW9Qb3J0KGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRBdWRpb1BvcnRfY2IgX2hpZGxfY2IpIHsKKyAgICBhdWRpb19wb3J0IGhhbFBvcnQ7CisgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRUb0hhbChwb3J0LCAmaGFsUG9ydCk7CisgICAgUmVzdWx0IHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9hdWRpb19wb3J0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5nZXRfYXVkaW9fcG9ydChtRGV2aWNlLCAmaGFsUG9ydCkpOworICAgIEF1ZGlvUG9ydCByZXN1bHRQb3J0ID0gcG9ydDsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRGcm9tSGFsKGhhbFBvcnQsICZyZXN1bHRQb3J0KTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCByZXN1bHRQb3J0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgeworICAgIGlmICh2ZXJzaW9uKCkgPj0gQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OXzNfMCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcgaGFsUG9ydENvbmZpZzsKKyAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdUb0hhbChjb25maWcsICZoYWxQb3J0Q29uZmlnKTsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAic2V0X2F1ZGlvX3BvcnRfY29uZmlnIiwKKyAgICAgICAgICAgIG1EZXZpY2UtPnNldF9hdWRpb19wb3J0X2NvbmZpZyhtRGV2aWNlLCAmaGFsUG9ydENvbmZpZykpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48QXVkaW9Id1N5bmM+IERldmljZTo6Z2V0SHdBdlN5bmMoKSB7CisgICAgaW50IGhhbEh3QXZTeW5jOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5SHdBdlN5bmMsICZoYWxId0F2U3luYyk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsSHdBdlN5bmMgOiBBVURJT19IV19TWU5DX0lOVkFMSUQ7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U2NyZWVuU3RhdGUsIHR1cm5lZE9uKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIHsKKyAgICBnZXRQYXJhbWV0ZXJzSW1wbChrZXlzLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIGlmIChmZC5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyICYmIGZkLT5udW1GZHMgPT0gMSkgeworICAgICAgICBhbmFseXplU3RhdHVzKCJkdW1wIiwgbURldmljZS0+ZHVtcChtRGV2aWNlLCBmZC0+ZGF0YVswXSkpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTViZDBhYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5oCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX0RFVklDRV9ICisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxtZWRpYS9BdWRpb1BhcmFtZXRlci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJQYXJhbWV0ZXJzVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Id1N5bmM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lucHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvT3V0cHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUGF0Y2hIYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRGV2aWNlIDogcHVibGljIElEZXZpY2UsIHB1YmxpYyBQYXJhbWV0ZXJzVXRpbCB7CisgICAgRGV2aWNlKGF1ZGlvX2h3X2RldmljZV90KiBkZXZpY2UsIGNvbnN0IGNoYXIqIHR5cGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0Q2hlY2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJWb2x1bWUoZ2V0TWFzdGVyVm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWljTXV0ZShib29sIG11dGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWljTXV0ZShnZXRNaWNNdXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWFzdGVyTXV0ZShib29sIG11dGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldElucHV0QnVmZmVyU2l6ZSgKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBvcGVuT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBvcGVuT3V0cHV0U3RyZWFtX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5JbnB1dFN0cmVhbSgKKyAgICAgICAgICAgIGludDMyX3QgaW9IYW5kbGUsCisgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UsCisgICAgICAgICAgICBvcGVuSW5wdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUF1ZGlvUGF0Y2goCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzb3VyY2VzLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsCisgICAgICAgICAgICBjcmVhdGVBdWRpb1BhdGNoX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVsZWFzZUF1ZGlvUGF0Y2goaW50MzJfdCBwYXRjaCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1BvcnQoY29uc3QgQXVkaW9Qb3J0JiBwb3J0LCBnZXRBdWRpb1BvcnRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1BvcnRDb25maWcoY29uc3QgQXVkaW9Qb3J0Q29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Id1N5bmM+IGdldEh3QXZTeW5jKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgUmVzdWx0IGFuYWx5emVTdGF0dXMoY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMpOworICAgIHZvaWQgY2xvc2VJbnB1dFN0cmVhbShhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKTsKKyAgICB2b2lkIGNsb3NlT3V0cHV0U3RyZWFtKGF1ZGlvX3N0cmVhbV9vdXRfdCogc3RyZWFtKTsKKyAgICBhdWRpb19od19kZXZpY2VfdCogZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbURldmljZTsgfQorICAgIGNvbnN0IGNoYXIqIHR5cGUoKSBjb25zdCB7IHJldHVybiBtVHlwZTsgfQorICAgIHVpbnQzMl90IHZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtRGV2aWNlLT5jb21tb24udmVyc2lvbjsgfQorCisgICBwcml2YXRlOgorICAgIGF1ZGlvX2h3X2RldmljZV90ICptRGV2aWNlOworICAgIGNvbnN0IGNoYXIqIG1UeXBlOworCisgICAgdmlydHVhbCB+RGV2aWNlKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gUGFyYW1ldGVyc1V0aWwuCisgICAgY2hhciogaGFsR2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzKSBvdmVycmlkZTsKKyAgICBpbnQgaGFsU2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzQW5kVmFsdWVzKSBvdmVycmlkZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNDQ5NjgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkRldmljZXNGYWN0b3J5SEFMIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiRGV2aWNlc0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gc3RhdGljCitjb25zdCBjaGFyKiBEZXZpY2VzRmFjdG9yeTo6ZGV2aWNlVG9TdHJpbmcoSURldmljZXNGYWN0b3J5OjpEZXZpY2UgZGV2aWNlKSB7CisgICAgc3dpdGNoIChkZXZpY2UpIHsKKyAgICAgICAgY2FzZSBJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZTo6UFJJTUFSWTogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZOworICAgICAgICBjYXNlIElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpBMkRQOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0EyRFA7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlVTQjogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9VU0I7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlJfU1VCTUlYOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX1JFTU9URV9TVUJNSVg7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlNUVUI6IHJldHVybiBBVURJT19IQVJEV0FSRV9NT0RVTEVfSURfU1RVQjsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworaW50IERldmljZXNGYWN0b3J5Ojpsb2FkQXVkaW9JbnRlcmZhY2UoY29uc3QgY2hhciAqaWZfbmFtZSwgYXVkaW9faHdfZGV2aWNlX3QgKipkZXYpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNvdWxkbid0IGxvYWQgYXVkaW8gaHcgbW9kdWxlICVzLiVzICglcykiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICBBVURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGlmX25hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgcmMgPSBhdWRpb19od19kZXZpY2Vfb3Blbihtb2QsIGRldik7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dFKCIlcyBjb3VsZG4ndCBvcGVuIGF1ZGlvIGh3IGRldmljZSBpbiAlcy4lcyAoJXMpIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICgoKmRldiktPmNvbW1vbi52ZXJzaW9uIDwgQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OX01JTikgeworICAgICAgICBBTE9HRSgiJXMgd3JvbmcgYXVkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIF9fZnVuY19fLCAoKmRldiktPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBhdWRpb19od19kZXZpY2VfY2xvc2UoKmRldik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICByZXR1cm4gT0s7CisKK291dDoKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBEZXZpY2VzRmFjdG9yeTo6b3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICB7CisgICAgYXVkaW9faHdfZGV2aWNlX3QgKmhhbERldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHNwPElEZXZpY2U+IHJlc3VsdDsKKyAgICBjb25zdCBjaGFyKiBtb2R1bGVOYW1lID0gZGV2aWNlVG9TdHJpbmcoZGV2aWNlKTsKKyAgICBpZiAobW9kdWxlTmFtZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCBoYWxTdGF0dXMgPSBsb2FkQXVkaW9JbnRlcmZhY2UobW9kdWxlTmFtZSwgJmhhbERldmljZSk7CisgICAgICAgIGlmIChoYWxTdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UgPT0gSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlBSSU1BUlkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgUHJpbWFyeURldmljZShoYWxEZXZpY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICAgICAgICAgICAgICAgICAgRGV2aWNlKGhhbERldmljZSwgbW9kdWxlTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICB9IGVsc2UgaWYgKGhhbFN0YXR1cyA9PSAtRUlOVkFMKSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSURldmljZXNGYWN0b3J5KiBISURMX0ZFVENIX0lEZXZpY2VzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBEZXZpY2VzRmFjdG9yeSgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZXNGYWN0b3J5LmggYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNDZmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEZXZpY2VzRmFjdG9yeSA6IHB1YmxpYyBJRGV2aWNlc0ZhY3RvcnkgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gb3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZXZpY2VUb1N0cmluZyhJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UpOworICAgIHN0YXRpYyBpbnQgbG9hZEF1ZGlvSW50ZXJmYWNlKGNvbnN0IGNoYXIgKmlmX25hbWUsIGF1ZGlvX2h3X2RldmljZV90ICoqZGV2KTsKKworfTsKKworZXh0ZXJuICJDIiBJRGV2aWNlc0ZhY3RvcnkqIEhJRExfRkVUQ0hfSURldmljZXNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFU0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNDA4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiUGFyYW1ldGVyc1V0aWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTdGF0aWMgbWV0aG9kIGFuZCBub3QgcHJpdmF0ZSBtZXRob2QgdG8gYXZvaWQgbGVha2luZyBzdGF0dXNfdCBkZXBlbmRlbmN5CitzdGF0aWMgUmVzdWx0IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1c190IHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICAgICAgY2FzZSBCQURfVkFMVUU6ICAvLyBOb3RoaW5nIHdhcyByZXR1cm5lZCwgcHJvYmFibHkgYmVjYXVzZSB0aGUgSEFMIGRvZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgaGFuZGxlIGl0CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIElOVkFMSURfT1BFUkFUSU9OOiAgLy8gQ29udmVyc2lvbiBmcm9tIHN0cmluZyB0byB0aGUgcmVxdWVzdGVkIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZAorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIGRlZmF1bHQ6ICAvLyBTaG91bGQgbm90IGhhcHBlbgorICAgICAgICAgICAgQUxPR1coIlVuZXhwZWN0ZWQgc3RhdHVzIHJldHVybmVkIGJ5IGdldFBhcmFtOiAldSIsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCogdmFsdWUpIHsKKyAgICBTdHJpbmc4IGhhbFZhbHVlOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShuYW1lLCAmaGFsVmFsdWUpOworICAgICp2YWx1ZSA9IGZhbHNlOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBpZiAoaGFsVmFsdWUuZW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICAqdmFsdWUgPSAhKGhhbFZhbHVlID09IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZik7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldEludChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKwordm9pZCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW1ldGVyc0ltcGwoCisgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLAorICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPgorICAgICAgICBjYikgeworICAgIEF1ZGlvUGFyYW1ldGVyIGhhbEtleXM7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGhhbEtleXMuYWRkS2V5KFN0cmluZzgoa2V5c1tpXS5jX3N0cigpKSk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gaGFsVmFsdWVzID0gZ2V0UGFyYW1zKGhhbEtleXMpOworICAgIFJlc3VsdCByZXR2YWwgPSAoa2V5cy5zaXplKCkgPT0gMCB8fCBoYWxWYWx1ZXMtPnNpemUoKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgPyBSZXN1bHQ6Ok9LCisgICAgICAgICAgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNpemUoaGFsVmFsdWVzLT5zaXplKCkpOworICAgIFN0cmluZzggaGFsS2V5LCBoYWxWYWx1ZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFZhbHVlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gaGFsVmFsdWVzLT5nZXRBdChpLCBoYWxLZXksIGhhbFZhbHVlKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICAgICAgcmVzdWx0LnJlc2l6ZSgwKTsKKyAgICAgICAgICAgIHJldHZhbCA9IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRbaV0ua2V5ID0gaGFsS2V5LnN0cmluZygpOworICAgICAgICByZXN1bHRbaV0udmFsdWUgPSBoYWxWYWx1ZS5zdHJpbmcoKTsKKyAgICB9CisgICAgY2IocmV0dmFsLCByZXN1bHQpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9QYXJhbWV0ZXI+IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbXMoCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpIHsKKyAgICBTdHJpbmc4IHBhcmFtc0FuZFZhbHVlczsKKyAgICBjaGFyKiBoYWxWYWx1ZXMgPSBoYWxHZXRQYXJhbWV0ZXJzKGtleXMua2V5c1RvU3RyaW5nKCkuc3RyaW5nKCkpOworICAgIGlmIChoYWxWYWx1ZXMgIT0gTlVMTCkgeworICAgICAgICBwYXJhbXNBbmRWYWx1ZXMuc2V0VG8oaGFsVmFsdWVzKTsKKyAgICAgICAgZnJlZShoYWxWYWx1ZXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBhcmFtc0FuZFZhbHVlcy5jbGVhcigpOworICAgIH0KKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPihuZXcgQXVkaW9QYXJhbWV0ZXIocGFyYW1zQW5kVmFsdWVzKSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZChTdHJpbmc4KG5hbWUpLCBTdHJpbmc4KHZhbHVlID8gQXVkaW9QYXJhbWV0ZXI6OnZhbHVlT24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZikpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZEludChTdHJpbmc4KG5hbWUpLCB2YWx1ZSk7CisgICAgcmV0dXJuIHNldFBhcmFtcyhwYXJhbSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpIHsKKyAgICBBdWRpb1BhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS5hZGQoU3RyaW5nOChuYW1lKSwgU3RyaW5nOCh2YWx1ZSkpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtZXRlcnNJbXBsKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtZXRlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgcGFyYW1zLmFkZChTdHJpbmc4KHBhcmFtZXRlcnNbaV0ua2V5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFyYW1ldGVyc1tpXS52YWx1ZS5jX3N0cigpKSk7CisgICAgfQorICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW1zKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgaW50IGhhbFN0YXR1cyA9IGhhbFNldFBhcmFtZXRlcnMocGFyYW0udG9TdHJpbmcoKS5zdHJpbmcoKSk7CisgICAgaWYgKGhhbFN0YXR1cyA9PSBPSykKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgZWxzZSBpZiAoaGFsU3RhdHVzID09IC1FTk9TWVMpCisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTAzNmRjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfUGFyYW1ldGVyc1V0aWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX1BhcmFtZXRlcnNVdGlsX0hfCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPG1lZGlhL0F1ZGlvUGFyYW1ldGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CisKK2NsYXNzIFBhcmFtZXRlcnNVdGlsIHsKKyAgcHVibGljOgorICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sKiB2YWx1ZSk7CisgICAgUmVzdWx0IGdldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCogdmFsdWUpOworICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSk7CisgICAgdm9pZCBnZXRQYXJhbWV0ZXJzSW1wbCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPiBjYik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPiBnZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpOworICAgIFJlc3VsdCBzZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sIHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50IHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpOworICAgIFJlc3VsdCBzZXRQYXJhbWV0ZXJzSW1wbChjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpOworICAgIFJlc3VsdCBzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKTsKKworICBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+UGFyYW1ldGVyc1V0aWwoKSB7fQorCisgICAgdmlydHVhbCBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpID0gMDsKKyAgICB2aXJ0dWFsIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpID0gMDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9QYXJhbWV0ZXJzVXRpbF9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9QcmltYXJ5RGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDZkODczCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByaW1hcnlEZXZpY2VIQUwiCisKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByaW1hcnlEZXZpY2U6OlByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSkKKyAgICA6IG1EZXZpY2V7bmV3IERldmljZShkZXZpY2UsIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZKX0ge30KKworUHJpbWFyeURldmljZTo6flByaW1hcnlEZXZpY2UoKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6aW5pdENoZWNrKCkgeworICAgIHJldHVybiBtRGV2aWNlLT5pbml0Q2hlY2soKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRNYXN0ZXJWb2x1bWUodm9sdW1lKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0TWFzdGVyVm9sdW1lKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWljTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0TWljTXV0ZShtdXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNaWNNdXRlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWFzdGVyTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0TWFzdGVyTXV0ZShtdXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1hc3Rlck11dGUoZ2V0TWFzdGVyTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNYXN0ZXJNdXRlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldElucHV0QnVmZmVyU2l6ZShjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJbnB1dEJ1ZmZlclNpemVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0SW5wdXRCdWZmZXJTaXplKGNvbmZpZywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6b3Blbk91dHB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+b3Blbk91dHB1dFN0cmVhbShpb0hhbmRsZSwgZGV2aWNlLCBjb25maWcsIGZsYWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpvcGVuSW5wdXRTdHJlYW0oCisgICAgaW50MzJfdCBpb0hhbmRsZSwgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLCBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgIEF1ZGlvSW5wdXRGbGFnIGZsYWdzLCBBdWRpb1NvdXJjZSBzb3VyY2UsIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5vcGVuSW5wdXRTdHJlYW0oaW9IYW5kbGUsIGRldmljZSwgY29uZmlnLCBmbGFncywgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2hpZGxfY2IpOworfQorCitSZXR1cm48Ym9vbD4gUHJpbWFyeURldmljZTo6c3VwcG9ydHNBdWRpb1BhdGNoZXMoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnN1cHBvcnRzQXVkaW9QYXRjaGVzKCk7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpjcmVhdGVBdWRpb1BhdGNoKAorICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Y3JlYXRlQXVkaW9QYXRjaChzb3VyY2VzLCBzaW5rcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpyZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnJlbGVhc2VBdWRpb1BhdGNoKHBhdGNoKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRBdWRpb1BvcnQocG9ydCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRBdWRpb1BvcnRDb25maWcoCisgICAgY29uc3QgQXVkaW9Qb3J0Q29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0QXVkaW9Qb3J0Q29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxBdWRpb0h3U3luYz4gUHJpbWFyeURldmljZTo6Z2V0SHdBdlN5bmMoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldEh3QXZTeW5jKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0U2NyZWVuU3RhdGUodHVybmVkT24pOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldFBhcmFtZXRlcnMoa2V5cywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5kZWJ1Z0R1bXAoZmQpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlIGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFZvaWNlVm9sdW1lKGZsb2F0IHZvbHVtZSkgeworICAgIGlmICghaXNHYWluTm9ybWFsaXplZCh2b2x1bWUpKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHZvaWNlIHZvbHVtZSAoJWYpIG91dHNpZGUgWzAsMV0iLCB2b2x1bWUpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIG1EZXZpY2UtPmFuYWx5emVTdGF0dXMoCisgICAgICAgICJzZXRfdm9pY2Vfdm9sdW1lIiwKKyAgICAgICAgbURldmljZS0+ZGV2aWNlKCktPnNldF92b2ljZV92b2x1bWUobURldmljZS0+ZGV2aWNlKCksIHZvbHVtZSkpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRNb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgLy8gSU5WQUxJRCwgQ1VSUkVOVCwgQ05ULCBNQVggYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2UuCisgICAgLy8gVE9ETzogcmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgSElETCBpbnRlcmZhY2UKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6Ok5PUk1BTDoKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6OlJJTkdUT05FOgorICAgICAgICBjYXNlIEF1ZGlvTW9kZTo6SU5fQ0FMTDoKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6OklOX0NPTU1VTklDQVRJT046CisgICAgICAgICAgICBicmVhazsgIC8vIFZhbGlkIHZhbHVlcworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfTsKKworICAgIHJldHVybiBtRGV2aWNlLT5hbmFseXplU3RhdHVzKAorICAgICAgICAic2V0X21vZGUiLCBtRGV2aWNlLT5kZXZpY2UoKS0+c2V0X21vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5kZXZpY2UoKSwgc3RhdGljX2Nhc3Q8YXVkaW9fbW9kZV90Pihtb2RlKSkpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0QnRTY29OcmVjRW5hYmxlZCgKKyAgICBnZXRCdFNjb05yZWNFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5QnROcmVjLCAmZW5hYmxlZCk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBlbmFibGVkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb05yZWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5QnROcmVjLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKAorICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiwgJmVuYWJsZWQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0QnRTY29XaWRlYmFuZEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfU0NPX1dCLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldFR0eU1vZGUoZ2V0VHR5TW9kZV9jYiBfaGlkbF9jYikgeworICAgIGludCBoYWxNb2RlOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFLCAmaGFsTW9kZSk7CisgICAgVHR5TW9kZSBtb2RlID0gcmV0dmFsID09IFJlc3VsdDo6T0sgPyBUdHlNb2RlKGhhbE1vZGUpIDogVHR5TW9kZTo6T0ZGOworICAgIF9oaWRsX2NiKHJldHZhbCwgbW9kZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0VHR5TW9kZShJUHJpbWFyeURldmljZTo6VHR5TW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfVFRZX01PREUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obW9kZSkpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0SGFjRW5hYmxlZChnZXRIYWNFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0hBQywgJmVuYWJsZWQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0UGFyYW0oQVVESU9fUEFSQU1FVEVSX0tFWV9IQUMsIGVuYWJsZWQpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1ByaW1hcnlEZXZpY2UuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1ByaW1hcnlEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTU1MTFiCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfUFJJTUFSWURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJEZXZpY2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSW5wdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PdXRwdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFByaW1hcnlEZXZpY2UgOiBwdWJsaWMgSVByaW1hcnlEZXZpY2UgeworICAgIGV4cGxpY2l0IFByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXRDaGVjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNaWNNdXRlKGdldE1pY011dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJNdXRlKGdldE1hc3Rlck11dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SW5wdXRCdWZmZXJTaXplKAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgZ2V0SW5wdXRCdWZmZXJTaXplX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5PdXRwdXRTdHJlYW0oCisgICAgICAgICAgICBpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSwKKyAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlQXVkaW9QYXRjaCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzaW5rcywKKyAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0h3U3luYz4gZ2V0SHdBdlN5bmMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJUHJpbWFyeURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCdFNjb05yZWNFbmFibGVkKGdldEJ0U2NvTnJlY0VuYWJsZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRCdFNjb05yZWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCdFNjb1dpZGViYW5kRW5hYmxlZChnZXRCdFNjb1dpZGViYW5kRW5hYmxlZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRUdHlNb2RlKGdldFR0eU1vZGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUdHlNb2RlKElQcmltYXJ5RGV2aWNlOjpUdHlNb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SGFjRW5hYmxlZChnZXRIYWNFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPERldmljZT4gbURldmljZTsKKworICAgIHZpcnR1YWwgflByaW1hcnlEZXZpY2UoKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MWYxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW0uY3BwCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNkZWZpbmUgTE9HX1RBRyAiU3RyZWFtSEFMIgorCisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpb19lZmZlY3QuaD4KKyNpbmNsdWRlIDxtZWRpYS9UeXBlQ29udmVydGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9Tb3J0ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworU3RyZWFtOjpTdHJlYW0oYXVkaW9fc3RyZWFtX3QqIHN0cmVhbSkKKyAgICAgICAgOiBtU3RyZWFtKHN0cmVhbSkgeworfQorCitTdHJlYW06On5TdHJlYW0oKSB7CisgICAgbVN0cmVhbSA9IG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cywgaW50IGlnbm9yZUVycm9yLCBpbnQgaWdub3JlRXJyb3IyKSB7CisgICAgaWYgKHN0YXR1cyAhPSAwICYmIHN0YXR1cyAhPSAtaWdub3JlRXJyb3IgJiYgc3RhdHVzICE9IC1pZ25vcmVFcnJvcjIpIHsKKyAgICAgICAgQUxPR1coIkVycm9yIGZyb20gSEFMIHN0cmVhbSBpbiBmdW5jdGlvbiAlczogJXMiLCBmdW5jTmFtZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKworY2hhciogU3RyZWFtOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X3BhcmFtZXRlcnMobVN0cmVhbSwga2V5cyk7Cit9CisKK2ludCBTdHJlYW06OmhhbFNldFBhcmFtZXRlcnMoY29uc3QgY2hhcioga2V5c0FuZFZhbHVlcykgeworICAgIHJldHVybiBtU3RyZWFtLT5zZXRfcGFyYW1ldGVycyhtU3RyZWFtLCBrZXlzQW5kVmFsdWVzKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRGcmFtZVNpemUoKSAgeworICAgIC8vIE5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGJ5IGludGVyZmFjZSBzdWJjbGFzc2VzLiBCdXQgY2FuJ3QgYmUgZGVjbGFyZWQgYXMgcHVyZSB2aXJ0dWFsLAorICAgIC8vIHNpbmNlIGludGVyZmFjZSBzdWJjbGFzc2VzIGltcGxlbWVudGF0aW9uIGRvIG5vdCBpbmhlcml0IGZyb20gdGhpcyBjbGFzcy4KKyAgICBMT0dfQUxXQVlTX0ZBVEFMKCJTdHJlYW06OmdldEZyYW1lU2l6ZSBpcyBwdXJlIGFic3RyYWN0Iik7CisgICAgcmV0dXJuIHVpbnQ2NF90IHt9OworfQorCitSZXR1cm48dWludDY0X3Q+IFN0cmVhbTo6Z2V0RnJhbWVDb3VudCgpICB7CisgICAgaW50IGhhbEZyYW1lQ291bnQ7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlGcmFtZUNvdW50LCAmaGFsRnJhbWVDb3VudCk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsRnJhbWVDb3VudCA6IDA7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRCdWZmZXJTaXplKCkgIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X2J1ZmZlcl9zaXplKG1TdHJlYW0pOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSgpICB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9zYW1wbGVfcmF0ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRTYW1wbGluZ1JhdGVzLCAmaGFsTGlzdFZhbHVlKTsKKyAgICBoaWRsX3ZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgU29ydGVkVmVjdG9yPHVpbnQzMl90PiBoYWxTYW1wbGVSYXRlczsKKyAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgaGFsU2FtcGxlUmF0ZXMgPSBzYW1wbGluZ1JhdGVzRnJvbVN0cmluZygKKyAgICAgICAgICAgICAgICBoYWxMaXN0VmFsdWUuc3RyaW5nKCksIEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZUxpc3RTZXBhcmF0b3IpOworICAgICAgICBzYW1wbGVSYXRlcy5zZXRUb0V4dGVybmFsKGhhbFNhbXBsZVJhdGVzLmVkaXRBcnJheSgpLCBoYWxTYW1wbGVSYXRlcy5zaXplKCkpOworICAgIH0KKyAgICBfaGlkbF9jYihzYW1wbGVSYXRlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVNhbXBsaW5nUmF0ZSwgc3RhdGljX2Nhc3Q8aW50PihzYW1wbGVSYXRlSHopKTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbTo6Z2V0Q2hhbm5lbE1hc2soKSAgeworICAgIHJldHVybiBBdWRpb0NoYW5uZWxNYXNrKG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRDaGFubmVscywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9DaGFubmVsTWFzaz4gY2hhbm5lbE1hc2tzOworICAgIFNvcnRlZFZlY3RvcjxhdWRpb19jaGFubmVsX21hc2tfdD4gaGFsQ2hhbm5lbE1hc2tzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxDaGFubmVsTWFza3MgPSBjaGFubmVsTWFza3NGcm9tU3RyaW5nKAorICAgICAgICAgICAgICAgIGhhbExpc3RWYWx1ZS5zdHJpbmcoKSwgQXVkaW9QYXJhbWV0ZXI6OnZhbHVlTGlzdFNlcGFyYXRvcik7CisgICAgICAgIGNoYW5uZWxNYXNrcy5yZXNpemUoaGFsQ2hhbm5lbE1hc2tzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsQ2hhbm5lbE1hc2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENoYW5uZWxNYXNrc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgIF9oaWRsX2NiKGNoYW5uZWxNYXNrcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICB7CisgICAgcmV0dXJuIHNldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlDaGFubmVscywgc3RhdGljX2Nhc3Q8aW50PihtYXNrKSk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtOjpnZXRGb3JtYXQoKSAgeworICAgIHJldHVybiBBdWRpb0Zvcm1hdChtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgeworICAgIFN0cmluZzggaGFsTGlzdFZhbHVlOworICAgIFJlc3VsdCByZXN1bHQgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtU3VwcG9ydGVkRm9ybWF0cywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgVmVjdG9yPGF1ZGlvX2Zvcm1hdF90PiBoYWxGb3JtYXRzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxGb3JtYXRzID0gZm9ybWF0c0Zyb21TdHJpbmcoaGFsTGlzdFZhbHVlLnN0cmluZygpLCBBdWRpb1BhcmFtZXRlcjo6dmFsdWVMaXN0U2VwYXJhdG9yKTsKKyAgICAgICAgZm9ybWF0cy5yZXNpemUoaGFsRm9ybWF0cy5zaXplKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbEZvcm1hdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxGb3JtYXRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgX2hpZGxfY2IoZm9ybWF0cyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5Rm9ybWF0LCBzdGF0aWNfY2FzdDxpbnQ+KGZvcm1hdCkpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtOjpnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbFNhbXBsZVJhdGUgPSBtU3RyZWFtLT5nZXRfc2FtcGxlX3JhdGUobVN0cmVhbSk7CisgICAgYXVkaW9fY2hhbm5lbF9tYXNrX3QgaGFsTWFzayA9IG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKTsKKyAgICBhdWRpb19mb3JtYXRfdCBoYWxGb3JtYXQgPSBtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pOworICAgIF9oaWRsX2NiKGhhbFNhbXBsZVJhdGUsIEF1ZGlvQ2hhbm5lbE1hc2soaGFsTWFzayksIEF1ZGlvRm9ybWF0KGhhbEZvcm1hdCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6YWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImFkZF9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5hZGRfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAgICAgInJlbW92ZV9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5yZW1vdmVfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c3RhbmRieSgpICB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInN0YW5kYnkiLCBtU3RyZWFtLT5zdGFuZGJ5KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW06OmdldERldmljZSgpICB7CisgICAgaW50IGRldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVJvdXRpbmcsICZkZXZpY2UpOworICAgIHJldHVybiByZXR2YWwgPT0gUmVzdWx0OjpPSyA/IHN0YXRpY19jYXN0PEF1ZGlvRGV2aWNlPihkZXZpY2UpIDogQXVkaW9EZXZpY2U6Ok5PTkU7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICB7CisgICAgY2hhciogaGFsRGV2aWNlQWRkcmVzcyA9CisgICAgICAgICAgICBhdWRpb19kZXZpY2VfYWRkcmVzc190b19wYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpLAorICAgICAgICAgICAgICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoYWRkcmVzcykuY19zdHIoKSk7CisgICAgQXVkaW9QYXJhbWV0ZXIgcGFyYW1zKChTdHJpbmc4KGhhbERldmljZUFkZHJlc3MpKSk7CisgICAgZnJlZShoYWxEZXZpY2VBZGRyZXNzKTsKKyAgICBwYXJhbXMuYWRkSW50KAorICAgICAgICAgICAgU3RyaW5nOChBdWRpb1BhcmFtZXRlcjo6a2V5Um91dGluZyksIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpKTsKKyAgICByZXR1cm4gc2V0UGFyYW1zKHBhcmFtcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICB7CisgICAgcmV0dXJuIHNldFBhcmFtKAorICAgICAgICAgICAgY29ubmVjdGVkID8gQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUNvbm5lY3QgOiBBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtRGlzY29ubmVjdCwKKyAgICAgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChhZGRyZXNzKS5jX3N0cigpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUh3QXZTeW5jLCBzdGF0aWNfY2FzdDxpbnQ+KGh3QXZTeW5jKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgeworICAgIGdldFBhcmFtZXRlcnNJbXBsKGtleXMsIF9oaWRsX2NiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW06OnNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIHsKKyAgICBpZiAoZmQuZ2V0TmF0aXZlSGFuZGxlKCkgIT0gbnVsbHB0ciAmJiBmZC0+bnVtRmRzID09IDEpIHsKKyAgICAgICAgYW5hbHl6ZVN0YXR1cygiZHVtcCIsIG1TdHJlYW0tPmR1bXAobVN0cmVhbSwgZmQtPmRhdGFbMF0pKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RhcnQoKSB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RvcCgpIHsKKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisgICAgX2hpZGxfY2IocmV0dmFsLCBwb3NpdGlvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpjbG9zZSgpICB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ5ZTY1OAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oCkBAIC0wLDAgKzEsMTc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIlBhcmFtZXRlcnNVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbSA6IHB1YmxpYyBJU3RyZWFtLCBwdWJsaWMgUGFyYW1ldGVyc1V0aWwgeworICAgIGV4cGxpY2l0IFN0cmVhbShhdWRpb19zdHJlYW1fdCogc3RyZWFtKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbSBmb2xsb3cuCisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZVNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZUNvdW50KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0QnVmZmVyU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFNhbXBsZVJhdGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzKGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gZ2V0Q2hhbm5lbE1hc2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Gb3JtYXQ+IGdldEZvcm1hdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhbmRieSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9EZXZpY2U+IGdldERldmljZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgY29ubmVjdGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFydCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0b3AoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMsIGNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oZ2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgc3RhdGljIFJlc3VsdCBhbmFseXplU3RhdHVzKAorICAgICAgICAgICAgY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMsIGludCBpZ25vcmVFcnJvciA9IE9LLCBpbnQgaWdub3JlRXJyb3IyID0gT0spOworCisgIHByaXZhdGU6CisgICAgYXVkaW9fc3RyZWFtX3QgKm1TdHJlYW07CisKKyAgICB2aXJ0dWFsIH5TdHJlYW0oKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSBQYXJhbWV0ZXJzVXRpbC4KKyAgICBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIG92ZXJyaWRlOworICAgIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIG92ZXJyaWRlOworfTsKKworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBTdHJlYW1NbWFwIDogcHVibGljIFJlZkJhc2UgeworICAgIGV4cGxpY2l0IFN0cmVhbU1tYXAoVCogc3RyZWFtKSA6IG1TdHJlYW0oc3RyZWFtKSB7fQorCisgICAgUmV0dXJuPFJlc3VsdD4gc3RhcnQoKTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdG9wKCk7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZU1tYXBCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IG1pblNpemVGcmFtZXMsIHNpemVfdCBmcmFtZVNpemUsIElTdHJlYW06OmNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oSVN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKTsKKworIHByaXZhdGU6CisgICBTdHJlYW1NbWFwKCkge30KKworICAgVCAqbVN0cmVhbTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPFJlc3VsdD4gU3RyZWFtTW1hcDxUPjo6c3RhcnQoKSB7CisgICAgaWYgKG1TdHJlYW0tPnN0YXJ0ID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0YXJ0KG1TdHJlYW0pOworICAgIHJldHVybiBTdHJlYW06OmFuYWx5emVTdGF0dXMoInN0YXJ0IiwgcmVzdWx0KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48UmVzdWx0PiBTdHJlYW1NbWFwPFQ+OjpzdG9wKCkgeworICAgIGlmIChtU3RyZWFtLT5zdG9wID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0b3AobVN0cmVhbSk7CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic3RvcCIsIHJlc3VsdCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPHZvaWQ+IFN0cmVhbU1tYXA8VD46OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLCBzaXplX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwQnVmZmVySW5mbyBpbmZvOworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGlkbEhhbmRsZSA9IG51bGxwdHI7CisKKyAgICBpZiAobVN0cmVhbS0+Y3JlYXRlX21tYXBfYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgc3RydWN0IGF1ZGlvX21tYXBfYnVmZmVyX2luZm8gaGFsSW5mbzsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJjcmVhdGVfbW1hcF9idWZmZXIiLAorICAgICAgICAgICAgICAgIG1TdHJlYW0tPmNyZWF0ZV9tbWFwX2J1ZmZlcihtU3RyZWFtLCBtaW5TaXplRnJhbWVzLCAmaGFsSW5mbykpOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUtPmRhdGFbMF0gPSBoYWxJbmZvLnNoYXJlZF9tZW1vcnlfZmQ7CisgICAgICAgICAgICBpbmZvLnNoYXJlZE1lbW9yeSA9IGhpZGxfbWVtb3J5KCJhdWRpb19idWZmZXIiLCBoaWRsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVNpemUgKmhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzKTsKKyAgICAgICAgICAgIGluZm8uYnVmZmVyU2l6ZUZyYW1lcyA9IGhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzOworICAgICAgICAgICAgaW5mby5idXJzdFNpemVGcmFtZXMgPSBoYWxJbmZvLmJ1cnN0X3NpemVfZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgaW5mbyk7CisgICAgaWYgKGhpZGxIYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoaWRsSGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48dm9pZD4gU3RyZWFtTW1hcDxUPjo6Z2V0TW1hcFBvc2l0aW9uKElTdHJlYW06OmdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisKKyAgICBpZiAobVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24gIT0gTlVMTCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fbW1hcF9wb3NpdGlvbiBoYWxQb3NpdGlvbjsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJnZXRfbW1hcF9wb3NpdGlvbiIsCisgICAgICAgICAgICAgICAgbVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24obVN0cmVhbSwgJmhhbFBvc2l0aW9uKSk7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgcG9zaXRpb24udGltZU5hbm9zZWNvbmRzID0gaGFsUG9zaXRpb24udGltZV9uYW5vc2Vjb25kczsKKyAgICAgICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uRnJhbWVzID0gaGFsUG9zaXRpb24ucG9zaXRpb25fZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgcG9zaXRpb24pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1fSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZDA0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1Jbi5jcHAKQEAgLTAsMCArMSw0NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlN0cmVhbUluSEFMIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfQVVESU8KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgIlN0cmVhbUluLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6TWVzc2FnZVF1ZXVlRmxhZ0JpdHM7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUmVhZFRocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICAgcHVibGljOgorICAgIC8vIFJlYWRUaHJlYWQncyBsaWZlc3BhbiBuZXZlciBleGNlZWRzIFN0cmVhbUluJ3MgbGlmZXNwYW4uCisgICAgUmVhZFRocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwgYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSwKKyAgICAgICAgICAgICAgIFN0cmVhbUluOjpDb21tYW5kTVEqIGNvbW1hbmRNUSwgU3RyZWFtSW46OkRhdGFNUSogZGF0YU1RLAorICAgICAgICAgICAgICAgU3RyZWFtSW46OlN0YXR1c01RKiBzdGF0dXNNUSwgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICA6IFRocmVhZChmYWxzZSAvKmNhbkNhbGxKYXZhKi8pLAorICAgICAgICAgIG1TdG9wKHN0b3ApLAorICAgICAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgICAgICBtQ29tbWFuZE1RKGNvbW1hbmRNUSksCisgICAgICAgICAgbURhdGFNUShkYXRhTVEpLAorICAgICAgICAgIG1TdGF0dXNNUShzdGF0dXNNUSksCisgICAgICAgICAgbUVmR3JvdXAoZWZHcm91cCksCisgICAgICAgICAgbUJ1ZmZlcihudWxscHRyKSB7fQorICAgIGJvb2wgaW5pdCgpIHsKKyAgICAgICAgbUJ1ZmZlci5yZXNldChuZXcgKHN0ZDo6bm90aHJvdykgdWludDhfdFttRGF0YU1RLT5nZXRRdWFudHVtQ291bnQoKV0pOworICAgICAgICByZXR1cm4gbUJ1ZmZlciAhPSBudWxscHRyOworICAgIH0KKyAgICB2aXJ0dWFsIH5SZWFkVGhyZWFkKCkge30KKworICAgcHJpdmF0ZToKKyAgICBzdGQ6OmF0b21pYzxib29sPiogbVN0b3A7CisgICAgYXVkaW9fc3RyZWFtX2luX3QqIG1TdHJlYW07CisgICAgU3RyZWFtSW46OkNvbW1hbmRNUSogbUNvbW1hbmRNUTsKKyAgICBTdHJlYW1Jbjo6RGF0YU1RKiBtRGF0YU1ROworICAgIFN0cmVhbUluOjpTdGF0dXNNUSogbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbUJ1ZmZlcjsKKyAgICBJU3RyZWFtSW46OlJlYWRQYXJhbWV0ZXJzIG1QYXJhbWV0ZXJzOworICAgIElTdHJlYW1Jbjo6UmVhZFN0YXR1cyBtU3RhdHVzOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvR2V0Q2FwdHVyZVBvc2l0aW9uKCk7CisgICAgdm9pZCBkb1JlYWQoKTsKK307CisKK3ZvaWQgUmVhZFRocmVhZDo6ZG9SZWFkKCkgeworICAgIHNpemVfdCBhdmFpbGFibGVUb1dyaXRlID0gbURhdGFNUS0+YXZhaWxhYmxlVG9Xcml0ZSgpOworICAgIHNpemVfdCByZXF1ZXN0ZWRUb1JlYWQgPSBtUGFyYW1ldGVycy5wYXJhbXMucmVhZDsKKyAgICBpZiAocmVxdWVzdGVkVG9SZWFkID4gYXZhaWxhYmxlVG9Xcml0ZSkgeworICAgICAgICBBTE9HVygKKyAgICAgICAgICAgICJ0cnVuY2F0aW5nIHJlYWQgZGF0YSBmcm9tICVkIHRvICVkIGR1ZSB0byBpbnN1ZmZpY2llbnQgZGF0YSBxdWV1ZSAiCisgICAgICAgICAgICAic3BhY2UiLAorICAgICAgICAgICAgKGludDMyX3QpcmVxdWVzdGVkVG9SZWFkLCAoaW50MzJfdClhdmFpbGFibGVUb1dyaXRlKTsKKyAgICAgICAgcmVxdWVzdGVkVG9SZWFkID0gYXZhaWxhYmxlVG9Xcml0ZTsKKyAgICB9CisgICAgc3NpemVfdCByZWFkUmVzdWx0ID0gbVN0cmVhbS0+cmVhZChtU3RyZWFtLCAmbUJ1ZmZlclswXSwgcmVxdWVzdGVkVG9SZWFkKTsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgdWludDY0X3QgcmVhZCA9IDA7CisgICAgaWYgKHJlYWRSZXN1bHQgPj0gMCkgeworICAgICAgICBtU3RhdHVzLnJlcGx5LnJlYWQgPSByZWFkUmVzdWx0OworICAgICAgICBpZiAoIW1EYXRhTVEtPndyaXRlKCZtQnVmZmVyWzBdLCByZWFkUmVzdWx0KSkgeworICAgICAgICAgICAgQUxPR1coImRhdGEgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKCJyZWFkIiwgcmVhZFJlc3VsdCk7CisgICAgfQorfQorCit2b2lkIFJlYWRUaHJlYWQ6OmRvR2V0Q2FwdHVyZVBvc2l0aW9uKCkgeworICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtSW46OmdldENhcHR1cmVQb3NpdGlvbkltcGwoCisgICAgICAgIG1TdHJlYW0sICZtU3RhdHVzLnJlcGx5LmNhcHR1cmVQb3NpdGlvbi5mcmFtZXMsCisgICAgICAgICZtU3RhdHVzLnJlcGx5LmNhcHR1cmVQb3NpdGlvbi50aW1lKTsKK30KKworYm9vbCBSZWFkVGhyZWFkOjp0aHJlYWRMb29wKCkgeworICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXR1cm4gY29udHJvbCBiYWNrIHRvIHRoZSBUaHJlYWQgdW50aWwgaXQKKyAgICAvLyBkZWNpZGVzIHRvIHN0b3AsCisgICAgLy8gYXMgdGhlIFRocmVhZCB1c2VzIG11dGV4ZXMsIGFuZCB0aGlzIGNhbiBsZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4KKyAgICB3aGlsZSAoIXN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQobVN0b3AsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpKSB7CisgICAgICAgIHVpbnQzMl90IGVmU3RhdGUgPSAwOworICAgICAgICBtRWZHcm91cC0+d2FpdChzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6Ok5PVF9GVUxMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmVmU3RhdGUpOworICAgICAgICBpZiAoIShlZlN0YXRlICYKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRlVMTCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8uCisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtQ29tbWFuZE1RLT5yZWFkKCZtUGFyYW1ldGVycykpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOyAgLy8gTm90aGluZyB0byBkby4KKyAgICAgICAgfQorICAgICAgICBtU3RhdHVzLnJlcGx5VG8gPSBtUGFyYW1ldGVycy5jb21tYW5kOworICAgICAgICBzd2l0Y2ggKG1QYXJhbWV0ZXJzLmNvbW1hbmQpIHsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbUluOjpSZWFkQ29tbWFuZDo6UkVBRDoKKyAgICAgICAgICAgICAgICBkb1JlYWQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbUluOjpSZWFkQ29tbWFuZDo6R0VUX0NBUFRVUkVfUE9TSVRJT046CisgICAgICAgICAgICAgICAgZG9HZXRDYXB0dXJlUG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQUxPR0UoIlVua25vd24gcmVhZCB0aHJlYWQgY29tbWFuZCBjb2RlICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICBtUGFyYW1ldGVycy5jb21tYW5kKTsKKyAgICAgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJm1TdGF0dXMpKSB7CisgICAgICAgICAgICBBTE9HVygic3RhdHVzIG1lc3NhZ2UgcXVldWUgd3JpdGUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gIC8vIG5hbWVzcGFjZQorCitTdHJlYW1Jbjo6U3RyZWFtSW4oY29uc3Qgc3A8RGV2aWNlPiYgZGV2aWNlLCBhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKQorICAgIDogbUlzQ2xvc2VkKGZhbHNlKSwKKyAgICAgIG1EZXZpY2UoZGV2aWNlKSwKKyAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgIG1TdHJlYW1Db21tb24obmV3IFN0cmVhbSgmc3RyZWFtLT5jb21tb24pKSwKKyAgICAgIG1TdHJlYW1NbWFwKG5ldyBTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9pbl90PihzdHJlYW0pKSwKKyAgICAgIG1FZkdyb3VwKG51bGxwdHIpLAorICAgICAgbVN0b3BSZWFkVGhyZWFkKGZhbHNlKSB7fQorCitTdHJlYW1Jbjo6flN0cmVhbUluKCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVJlYWRUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1SZWFkVGhyZWFkLT5qb2luIik7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1SZWFkVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgInJlYWQgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAicmVhZCBNUSBldmVudCBmbGFnIGRlbGV0aW9uIGVycm9yOiAlcyIsCisgICAgICAgICAgICAgICAgIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgbURldmljZS0+Y2xvc2VJbnB1dFN0cmVhbShtU3RyZWFtKTsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtSW46OmdldEZyYW1lU2l6ZSgpIHsKKyAgICByZXR1cm4gYXVkaW9fc3RyZWFtX2luX2ZyYW1lX3NpemUobVN0cmVhbSk7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtSW46OmdldEZyYW1lQ291bnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZyYW1lQ291bnQoKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1Jbjo6Z2V0QnVmZmVyU2l6ZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QnVmZmVyU2l6ZSgpOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbUluOjpnZXRTYW1wbGVSYXRlKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRTYW1wbGVSYXRlKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlSHopOworfQorCitSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gU3RyZWFtSW46OmdldENoYW5uZWxNYXNrKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRDaGFubmVsTWFzaygpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcygKKyAgICBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OnNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRDaGFubmVsTWFzayhtYXNrKTsKK30KKworUmV0dXJuPEF1ZGlvRm9ybWF0PiBTdHJlYW1Jbjo6Z2V0Rm9ybWF0KCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRGb3JtYXQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbUluOjpnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkRm9ybWF0cyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldEZvcm1hdChmb3JtYXQpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldEF1ZGlvUHJvcGVydGllcyhnZXRBdWRpb1Byb3BlcnRpZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QXVkaW9Qcm9wZXJ0aWVzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OmFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5hZGRFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnJlbW92ZUVmZmVjdChlZmZlY3RJZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzdGFuZGJ5KCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zdGFuZGJ5KCk7Cit9CisKK1JldHVybjxBdWRpb0RldmljZT4gU3RyZWFtSW46OmdldERldmljZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RGV2aWNlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXREZXZpY2UoYWRkcmVzcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29ubmVjdGVkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIGNvbm5lY3RlZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRId0F2U3luYyhod0F2U3luYyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbWV0ZXJzKGtleXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OnNldFBhcmFtZXRlcnMoCisgICAgY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5kZWJ1Z0R1bXAoZmQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c3RhcnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdGFydCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c3RvcCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPnN0b3AoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbUluOjpjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5jcmVhdGVNbWFwQnVmZmVyKAorICAgICAgICBtaW5TaXplRnJhbWVzLCBhdWRpb19zdHJlYW1faW5fZnJhbWVfc2l6ZShtU3RyZWFtKSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPmdldE1tYXBQb3NpdGlvbihfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpjbG9zZSgpIHsKKyAgICBpZiAobUlzQ2xvc2VkKSByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIG1Jc0Nsb3NlZCA9IHRydWU7CisgICAgaWYgKG1SZWFkVGhyZWFkLmdldCgpKSB7CisgICAgICAgIG1TdG9wUmVhZFRocmVhZC5zdG9yZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIG1FZkdyb3VwLT53YWtlKHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0ZVTEwpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluIGZvbGxvdy4KK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0QXVkaW9Tb3VyY2UoZ2V0QXVkaW9Tb3VyY2VfY2IgX2hpZGxfY2IpIHsKKyAgICBpbnQgaGFsU291cmNlOworICAgIFJlc3VsdCByZXR2YWwgPQorICAgICAgICBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5SW5wdXRTb3VyY2UsICZoYWxTb3VyY2UpOworICAgIEF1ZGlvU291cmNlIHNvdXJjZShBdWRpb1NvdXJjZTo6REVGQVVMVCk7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHNvdXJjZSA9IEF1ZGlvU291cmNlKGhhbFNvdXJjZSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgc291cmNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c2V0R2FpbihmbG9hdCBnYWluKSB7CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKGdhaW4pKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHN0cmVhbSBpbnB1dCBnYWluICglZikgb3V0c2lkZSBbMCwxXSIsIGdhaW4pOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic2V0X2dhaW4iLCBtU3RyZWFtLT5zZXRfZ2FpbihtU3RyZWFtLCBnYWluKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6cHJlcGFyZUZvclJlYWRpbmcodWludDMyX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlcGFyZUZvclJlYWRpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICBzdGF0dXNfdCBzdGF0dXM7CisgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvID0gezAsIDB9OworCisgICAgLy8gV3JhcCB0aGUgX2hpZGxfY2IgdG8gcmV0dXJuIGFuIGVycm9yCisgICAgYXV0byBzZW5kRXJyb3IgPSBbdGhpcywgJnRocmVhZEluZm8sICZfaGlkbF9jYl0oUmVzdWx0IHJlc3VsdCkgeworICAgICAgICBfaGlkbF9jYihyZXN1bHQsIENvbW1hbmRNUTo6RGVzY3JpcHRvcigpLCBEYXRhTVE6OkRlc2NyaXB0b3IoKSwKKyAgICAgICAgICAgICAgICAgU3RhdHVzTVE6OkRlc2NyaXB0b3IoKSwgdGhyZWFkSW5mbyk7CisKKyAgICB9OworCisgICAgLy8gQ3JlYXRlIG1lc3NhZ2UgcXVldWVzLgorICAgIGlmIChtRGF0YU1RKSB7CisgICAgICAgIEFMT0dFKCJ0aGUgY2xpZW50IGF0dGVtcHRzIHRvIGNhbGwgcHJlcGFyZUZvclJlYWRpbmcgdHdpY2UiKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9TVEFURSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kTVE+IHRlbXBDb21tYW5kTVEobmV3IENvbW1hbmRNUSgxKSk7CisKKyAgICAvLyBDaGVjayBmcmFtZVNpemUgYW5kIGZyYW1lc0NvdW50CisgICAgaWYgKGZyYW1lU2l6ZSA9PSAwIHx8IGZyYW1lc0NvdW50ID09IDApIHsKKyAgICAgICAgQUxPR0UoIk51bGwgZnJhbWVTaXplICgldSkgb3IgZnJhbWVzQ291bnQgKCV1KSIsIGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgZnJhbWVzQ291bnQpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIC8vIEEgbWVzc2FnZSBxdWV1ZSBhc3NlcnRzIGlmIGl0IGNhbiBub3QgaGFuZGxlIHRoZSByZXF1ZXN0ZWQgYnVmZmVyLAorICAgIC8vIHRodXMgdGhlIGNsaWVudCBoYXMgdG8gZ3Vlc3MgdGhlIG1heGltdW0gc2l6ZSBpdCBjYW4gaGFuZGxlCisgICAgLy8gQ2hvb3NlIGFuIGFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBvdmVyaGVhZCBvZiBhIG1lc3NhZ2UgcXVldWUKKyAgICBzaXplX3QgbWV0YWRhdGFPdmVyaGVhZCA9IDEwMDAwMDsKKyAgICBpZiAoZnJhbWVTaXplID4KKyAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBtZXRhZGF0YU92ZXJoZWFkKSAvIGZyYW1lc0NvdW50KSB7CisgICAgICAgIEFMT0dFKCJCdWZmZXIgdG9vIGJpZzogJXUqJXUgYnl0ZXMgY2FuIG5vdCBmaXQgaW4gYSBtZXNzYWdlIHF1ZXVlIiwKKyAgICAgICAgICAgICAgZnJhbWVTaXplLCBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gdGVtcERhdGFNUSgKKyAgICAgICAgbmV3IERhdGFNUShmcmFtZVNpemUgKiBmcmFtZXNDb3VudCwgdHJ1ZSAvKiBFdmVudEZsYWcgKi8pKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gdGVtcFN0YXR1c01RKG5ldyBTdGF0dXNNUSgxKSk7CisgICAgaWYgKCF0ZW1wQ29tbWFuZE1RLT5pc1ZhbGlkKCkgfHwgIXRlbXBEYXRhTVEtPmlzVmFsaWQoKSB8fAorICAgICAgICAhdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSwgImNvbW1hbmQgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBBTE9HRV9JRighdGVtcERhdGFNUS0+aXNWYWxpZCgpLCAiZGF0YSBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSwgInN0YXR1cyBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgRXZlbnRGbGFnKiB0ZW1wUmF3RWZHcm91cHt9OworICAgIHN0YXR1cyA9IEV2ZW50RmxhZzo6Y3JlYXRlRXZlbnRGbGFnKHRlbXBEYXRhTVEtPmdldEV2ZW50RmxhZ1dvcmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGVtcFJhd0VmR3JvdXApOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudEZsYWcsIHZvaWQgKCopKEV2ZW50RmxhZyopPiB0ZW1wRWxmR3JvdXAoCisgICAgICAgIHRlbXBSYXdFZkdyb3VwLCBbXShhdXRvKiBlZikgeyBFdmVudEZsYWc6OmRlbGV0ZUV2ZW50RmxhZygmZWYpOyB9KTsKKyAgICBpZiAoc3RhdHVzICE9IE9LIHx8ICF0ZW1wRWxmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBkYXRhIE1ROiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhbmQgbGF1bmNoIHRoZSB0aHJlYWQuCisgICAgYXV0byB0ZW1wUmVhZFRocmVhZCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhZFRocmVhZD4oCisgICAgICAgICZtU3RvcFJlYWRUaHJlYWQsIG1TdHJlYW0sIHRlbXBDb21tYW5kTVEuZ2V0KCksIHRlbXBEYXRhTVEuZ2V0KCksCisgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwgdGVtcEVsZkdyb3VwLmdldCgpKTsKKyAgICBpZiAoIXRlbXBSZWFkVGhyZWFkLT5pbml0KCkpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCByZWFkZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGF0dXMgPSB0ZW1wUmVhZFRocmVhZC0+cnVuKCJyZWFkZXIiLCBQUklPUklUWV9VUkdFTlRfQVVESU8pOworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCByZWFkZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1Db21tYW5kTVEgPSBzdGQ6Om1vdmUodGVtcENvbW1hbmRNUSk7CisgICAgbURhdGFNUSA9IHN0ZDo6bW92ZSh0ZW1wRGF0YU1RKTsKKyAgICBtU3RhdHVzTVEgPSBzdGQ6Om1vdmUodGVtcFN0YXR1c01RKTsKKyAgICBtUmVhZFRocmVhZCA9IHRlbXBSZWFkVGhyZWFkLnJlbGVhc2UoKTsKKyAgICBtRWZHcm91cCA9IHRlbXBFbGZHcm91cC5yZWxlYXNlKCk7CisgICAgdGhyZWFkSW5mby5waWQgPSBnZXRwaWQoKTsKKyAgICB0aHJlYWRJbmZvLnRpZCA9IG1SZWFkVGhyZWFkLT5nZXRUaWQoKTsKKyAgICBfaGlkbF9jYihSZXN1bHQ6Ok9LLCAqbUNvbW1hbmRNUS0+Z2V0RGVzYygpLCAqbURhdGFNUS0+Z2V0RGVzYygpLAorICAgICAgICAgICAgICptU3RhdHVzTVEtPmdldERlc2MoKSwgdGhyZWFkSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1Jbjo6Z2V0SW5wdXRGcmFtZXNMb3N0KCkgeworICAgIHJldHVybiBtU3RyZWFtLT5nZXRfaW5wdXRfZnJhbWVzX2xvc3QobVN0cmVhbSk7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbUluOjpnZXRDYXB0dXJlUG9zaXRpb25JbXBsKGF1ZGlvX3N0cmVhbV9pbl90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywgdWludDY0X3QqIHRpbWUpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24gIT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBpbnQ2NF90IGhhbEZyYW1lcywgaGFsVGltZTsKKyAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICJnZXRfY2FwdHVyZV9wb3NpdGlvbiIsCisgICAgICAgIHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24oc3RyZWFtLCAmaGFsRnJhbWVzLCAmaGFsVGltZSksCisgICAgICAgIC8vIEhBTCBtYXkgaGF2ZSBhIHN0dWIgZnVuY3Rpb24sIGFsd2F5cyByZXR1cm5pbmcgRU5PU1lTLCBkb24ndAorICAgICAgICAvLyBzcGFtIHRoZSBsb2cgaW4gdGhpcyBjYXNlLgorICAgICAgICBFTk9TWVMpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAqZnJhbWVzID0gaGFsRnJhbWVzOworICAgICAgICAqdGltZSA9IGhhbFRpbWU7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9OworCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldENhcHR1cmVQb3NpdGlvbihnZXRDYXB0dXJlUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50NjRfdCBmcmFtZXMgPSAwLCB0aW1lID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0Q2FwdHVyZVBvc2l0aW9uSW1wbChtU3RyZWFtLCAmZnJhbWVzLCAmdGltZSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBmcmFtZXMsIHRpbWUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbUluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwZDY4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbUluLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1JTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1JTl9ICisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbUluLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8dXRpbHMvVGhyZWFkLmg+CisKKyNpbmNsdWRlICJEZXZpY2UuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkRldmljZUFkZHJlc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgU3RyZWFtSW4gOiBwdWJsaWMgSVN0cmVhbUluIHsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxSZWFkUGFyYW1ldGVycywga1N5bmNocm9uaXplZFJlYWRXcml0ZT4gQ29tbWFuZE1ROworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IERhdGFNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxSZWFkU3RhdHVzLCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBTdGF0dXNNUTsKKworICAgIFN0cmVhbUluKGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW0gZm9sbG93LgorICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVDb3VudCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEJ1ZmZlclNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQzMl90PiBnZXRTYW1wbGVSYXRlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlcyhnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IGdldENoYW5uZWxNYXNrKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3MoZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q2hhbm5lbE1hc2soQXVkaW9DaGFubmVsTWFzayBtYXNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRm9ybWF0PiBnZXRGb3JtYXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEZvcm1hdHMoZ2V0U3VwcG9ydGVkRm9ybWF0c19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEZvcm1hdChBdWRpb0Zvcm1hdCBmb3JtYXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YW5kYnkoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRGV2aWNlPiBnZXREZXZpY2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEh3QXZTeW5jKHVpbnQzMl90IGh3QXZTeW5jKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbiBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvU291cmNlKGdldEF1ZGlvU291cmNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0R2FpbihmbG9hdCBnYWluKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JSZWFkaW5nKAorICAgICAgICAgICAgdWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCwgcHJlcGFyZUZvclJlYWRpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldElucHV0RnJhbWVzTG9zdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwdHVyZVBvc2l0aW9uKGdldENhcHR1cmVQb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywgY3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgc3RhdGljIFJlc3VsdCBnZXRDYXB0dXJlUG9zaXRpb25JbXBsKAorICAgICAgICAgICAgYXVkaW9fc3RyZWFtX2luX3QgKnN0cmVhbSwgdWludDY0X3QgKmZyYW1lcywgdWludDY0X3QgKnRpbWUpOworCisgIHByaXZhdGU6CisgICAgYm9vbCBtSXNDbG9zZWQ7CisgICAgY29uc3Qgc3A8RGV2aWNlPiBtRGV2aWNlOworICAgIGF1ZGlvX3N0cmVhbV9pbl90ICptU3RyZWFtOworICAgIGNvbnN0IHNwPFN0cmVhbT4gbVN0cmVhbUNvbW1vbjsKKyAgICBjb25zdCBzcDxTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9pbl90Pj4gbVN0cmVhbU1tYXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gbUNvbW1hbmRNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YU1RPiBtRGF0YU1ROworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BSZWFkVGhyZWFkOworICAgIHNwPFRocmVhZD4gbVJlYWRUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5TdHJlYW1JbigpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTUlOX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ODQ5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuY3BwCkBAIC0wLDAgKzEsNTM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJTdHJlYW1PdXRIQUwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisjZGVmaW5lIEFUUkFDRV9UQUcgQVRSQUNFX1RBR19BVURJTworCisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisKKyNpbmNsdWRlICJTdHJlYW1PdXQuaCIKKyNpbmNsdWRlICJVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgV3JpdGVUaHJlYWQgOiBwdWJsaWMgVGhyZWFkIHsKKyAgIHB1YmxpYzoKKyAgICAvLyBXcml0ZVRocmVhZCdzIGxpZmVzcGFuIG5ldmVyIGV4Y2VlZHMgU3RyZWFtT3V0J3MgbGlmZXNwYW4uCisgICAgV3JpdGVUaHJlYWQoc3RkOjphdG9taWM8Ym9vbD4qIHN0b3AsIGF1ZGlvX3N0cmVhbV9vdXRfdCogc3RyZWFtLAorICAgICAgICAgICAgICAgIFN0cmVhbU91dDo6Q29tbWFuZE1RKiBjb21tYW5kTVEsIFN0cmVhbU91dDo6RGF0YU1RKiBkYXRhTVEsCisgICAgICAgICAgICAgICAgU3RyZWFtT3V0OjpTdGF0dXNNUSogc3RhdHVzTVEsIEV2ZW50RmxhZyogZWZHcm91cCkKKyAgICAgICAgOiBUaHJlYWQoZmFsc2UgLypjYW5DYWxsSmF2YSovKSwKKyAgICAgICAgICBtU3RvcChzdG9wKSwKKyAgICAgICAgICBtU3RyZWFtKHN0cmVhbSksCisgICAgICAgICAgbUNvbW1hbmRNUShjb21tYW5kTVEpLAorICAgICAgICAgIG1EYXRhTVEoZGF0YU1RKSwKKyAgICAgICAgICBtU3RhdHVzTVEoc3RhdHVzTVEpLAorICAgICAgICAgIG1FZkdyb3VwKGVmR3JvdXApLAorICAgICAgICAgIG1CdWZmZXIobnVsbHB0cikge30KKyAgICBib29sIGluaXQoKSB7CisgICAgICAgIG1CdWZmZXIucmVzZXQobmV3IChzdGQ6Om5vdGhyb3cpIHVpbnQ4X3RbbURhdGFNUS0+Z2V0UXVhbnR1bUNvdW50KCldKTsKKyAgICAgICAgcmV0dXJuIG1CdWZmZXIgIT0gbnVsbHB0cjsKKyAgICB9CisgICAgdmlydHVhbCB+V3JpdGVUaHJlYWQoKSB7fQorCisgICBwcml2YXRlOgorICAgIHN0ZDo6YXRvbWljPGJvb2w+KiBtU3RvcDsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QqIG1TdHJlYW07CisgICAgU3RyZWFtT3V0OjpDb21tYW5kTVEqIG1Db21tYW5kTVE7CisgICAgU3RyZWFtT3V0OjpEYXRhTVEqIG1EYXRhTVE7CisgICAgU3RyZWFtT3V0OjpTdGF0dXNNUSogbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbUJ1ZmZlcjsKKyAgICBJU3RyZWFtT3V0OjpXcml0ZVN0YXR1cyBtU3RhdHVzOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvR2V0TGF0ZW5jeSgpOworICAgIHZvaWQgZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpOworICAgIHZvaWQgZG9Xcml0ZSgpOworfTsKKwordm9pZCBXcml0ZVRocmVhZDo6ZG9Xcml0ZSgpIHsKKyAgICBjb25zdCBzaXplX3QgYXZhaWxUb1JlYWQgPSBtRGF0YU1RLT5hdmFpbGFibGVUb1JlYWQoKTsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgbVN0YXR1cy5yZXBseS53cml0dGVuID0gMDsKKyAgICBpZiAobURhdGFNUS0+cmVhZCgmbUJ1ZmZlclswXSwgYXZhaWxUb1JlYWQpKSB7CisgICAgICAgIHNzaXplX3Qgd3JpdGVSZXN1bHQgPSBtU3RyZWFtLT53cml0ZShtU3RyZWFtLCAmbUJ1ZmZlclswXSwgYXZhaWxUb1JlYWQpOworICAgICAgICBpZiAod3JpdGVSZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgbVN0YXR1cy5yZXBseS53cml0dGVuID0gd3JpdGVSZXN1bHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygid3JpdGUiLCB3cml0ZVJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgV3JpdGVUaHJlYWQ6OmRvR2V0UHJlc2VudGF0aW9uUG9zaXRpb24oKSB7CisgICAgbVN0YXR1cy5yZXR2YWwgPSBTdHJlYW1PdXQ6OmdldFByZXNlbnRhdGlvblBvc2l0aW9uSW1wbCgKKyAgICAgICAgbVN0cmVhbSwgJm1TdGF0dXMucmVwbHkucHJlc2VudGF0aW9uUG9zaXRpb24uZnJhbWVzLAorICAgICAgICAmbVN0YXR1cy5yZXBseS5wcmVzZW50YXRpb25Qb3NpdGlvbi50aW1lU3RhbXApOworfQorCit2b2lkIFdyaXRlVGhyZWFkOjpkb0dldExhdGVuY3koKSB7CisgICAgbVN0YXR1cy5yZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgIG1TdGF0dXMucmVwbHkubGF0ZW5jeU1zID0gbVN0cmVhbS0+Z2V0X2xhdGVuY3kobVN0cmVhbSk7Cit9CisKK2Jvb2wgV3JpdGVUaHJlYWQ6OnRocmVhZExvb3AoKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJldHVybiBjb250cm9sIGJhY2sgdG8gdGhlIFRocmVhZCB1bnRpbCBpdAorICAgIC8vIGRlY2lkZXMgdG8gc3RvcCwKKyAgICAvLyBhcyB0aGUgVGhyZWFkIHVzZXMgbXV0ZXhlcywgYW5kIHRoaXMgY2FuIGxlYWQgdG8gcHJpb3JpdHkgaW52ZXJzaW9uLgorICAgIHdoaWxlICghc3RkOjphdG9taWNfbG9hZF9leHBsaWNpdChtU3RvcCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSkpIHsKKyAgICAgICAgdWludDMyX3QgZWZTdGF0ZSA9IDA7CisgICAgICAgIG1FZkdyb3VwLT53YWl0KHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0VNUFRZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmVmU3RhdGUpOworICAgICAgICBpZiAoIShlZlN0YXRlICYKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKSkgeworICAgICAgICAgICAgY29udGludWU7ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICB9CisgICAgICAgIGlmICghbUNvbW1hbmRNUS0+cmVhZCgmbVN0YXR1cy5yZXBseVRvKSkgeworICAgICAgICAgICAgY29udGludWU7ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICB9CisgICAgICAgIHN3aXRjaCAobVN0YXR1cy5yZXBseVRvKSB7CisgICAgICAgICAgICBjYXNlIElTdHJlYW1PdXQ6OldyaXRlQ29tbWFuZDo6V1JJVEU6CisgICAgICAgICAgICAgICAgZG9Xcml0ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU3RyZWFtT3V0OjpXcml0ZUNvbW1hbmQ6OkdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT046CisgICAgICAgICAgICAgICAgZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU3RyZWFtT3V0OjpXcml0ZUNvbW1hbmQ6OkdFVF9MQVRFTkNZOgorICAgICAgICAgICAgICAgIGRvR2V0TGF0ZW5jeSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HRSgiVW5rbm93biB3cml0ZSB0aHJlYWQgY29tbWFuZCBjb2RlICVkIiwgbVN0YXR1cy5yZXBseVRvKTsKKyAgICAgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJm1TdGF0dXMpKSB7CisgICAgICAgICAgICBBTE9HRSgic3RhdHVzIG1lc3NhZ2UgcXVldWUgd3JpdGUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRlVMTCkpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKK1N0cmVhbU91dDo6U3RyZWFtT3V0KGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pCisgICAgOiBtSXNDbG9zZWQoZmFsc2UpLAorICAgICAgbURldmljZShkZXZpY2UpLAorICAgICAgbVN0cmVhbShzdHJlYW0pLAorICAgICAgbVN0cmVhbUNvbW1vbihuZXcgU3RyZWFtKCZzdHJlYW0tPmNvbW1vbikpLAorICAgICAgbVN0cmVhbU1tYXAobmV3IFN0cmVhbU1tYXA8YXVkaW9fc3RyZWFtX291dF90PihzdHJlYW0pKSwKKyAgICAgIG1FZkdyb3VwKG51bGxwdHIpLAorICAgICAgbVN0b3BXcml0ZVRocmVhZChmYWxzZSkge30KKworU3RyZWFtT3V0Ojp+U3RyZWFtT3V0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVdyaXRlVGhyZWFkLmdldCgpKSB7CisgICAgICAgIEFUUkFDRV9OQU1FKCJtV3JpdGVUaHJlYWQtPmpvaW4iKTsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbVdyaXRlVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgIndyaXRlIHRocmVhZCBleGl0IGVycm9yOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IEV2ZW50RmxhZzo6ZGVsZXRlRXZlbnRGbGFnKCZtRWZHcm91cCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgIndyaXRlIE1RIGV2ZW50IGZsYWcgZGVsZXRpb24gZXJyb3I6ICVzIiwKKyAgICAgICAgICAgICAgICAgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBtQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtRGV2aWNlLT5jbG9zZU91dHB1dFN0cmVhbShtU3RyZWFtKTsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtT3V0OjpnZXRGcmFtZVNpemUoKSB7CisgICAgcmV0dXJuIGF1ZGlvX3N0cmVhbV9vdXRfZnJhbWVfc2l6ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEZyYW1lQ291bnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZyYW1lQ291bnQoKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEJ1ZmZlclNpemUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEJ1ZmZlclNpemUoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1PdXQ6OmdldFNhbXBsZVJhdGUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldFNhbXBsZVJhdGUoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZUh6KTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbU91dDo6Z2V0Q2hhbm5lbE1hc2soKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldENoYW5uZWxNYXNrKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcygKKyAgICBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0Q2hhbm5lbE1hc2sobWFzayk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtT3V0OjpnZXRGb3JtYXQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZvcm1hdCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkRm9ybWF0cyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRGb3JtYXQoZm9ybWF0KTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRBdWRpb1Byb3BlcnRpZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5hZGRFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5yZW1vdmVFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnN0YW5kYnkoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnN0YW5kYnkoKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW1PdXQ6OmdldERldmljZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RGV2aWNlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0RGV2aWNlKGFkZHJlc3MpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29ubmVjdGVkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIGNvbm5lY3RlZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0SHdBdlN5bmMoaHdBdlN5bmMpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbWV0ZXJzKGtleXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmRlYnVnRHVtcChmZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6Y2xvc2UoKSB7CisgICAgaWYgKG1Jc0Nsb3NlZCkgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICBtSXNDbG9zZWQgPSB0cnVlOworICAgIGlmIChtV3JpdGVUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgbVN0b3BXcml0ZVRocmVhZC5zdG9yZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIG1FZkdyb3VwLT53YWtlKHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0VNUFRZKSk7CisgICAgfQorICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQgZm9sbG93LgorUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1PdXQ6OmdldExhdGVuY3koKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9sYXRlbmN5KG1TdHJlYW0pOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFZvbHVtZShmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCkgeworICAgIGlmIChtU3RyZWFtLT5zZXRfdm9sdW1lID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKGxlZnQpKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHN0cmVhbSBvdXRwdXQgdm9sdW1lIHslZiwgJWZ9IG91dHNpZGUgWzAsMV0iLCBsZWZ0LAorICAgICAgICAgICAgICByaWdodCk7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICByZXR1cm4gU3RyZWFtOjphbmFseXplU3RhdHVzKCJzZXRfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdHJlYW0tPnNldF92b2x1bWUobVN0cmVhbSwgbGVmdCwgcmlnaHQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6cHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZnJhbWVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlRm9yV3JpdGluZ19jYiBfaGlkbF9jYikgeworICAgIHN0YXR1c190IHN0YXR1czsKKyAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8gPSB7MCwgMH07CisKKyAgICAvLyBXcmFwIHRoZSBfaGlkbF9jYiB0byByZXR1cm4gYW4gZXJyb3IKKyAgICBhdXRvIHNlbmRFcnJvciA9IFt0aGlzLCAmdGhyZWFkSW5mbywgJl9oaWRsX2NiXShSZXN1bHQgcmVzdWx0KSB7CisgICAgICAgIF9oaWRsX2NiKHJlc3VsdCwgQ29tbWFuZE1ROjpEZXNjcmlwdG9yKCksIERhdGFNUTo6RGVzY3JpcHRvcigpLAorICAgICAgICAgICAgICAgICBTdGF0dXNNUTo6RGVzY3JpcHRvcigpLCB0aHJlYWRJbmZvKTsKKworICAgIH07CisKKyAgICAvLyBDcmVhdGUgbWVzc2FnZSBxdWV1ZXMuCisgICAgaWYgKG1EYXRhTVEpIHsKKyAgICAgICAgQUxPR0UoInRoZSBjbGllbnQgYXR0ZW1wdHMgdG8gY2FsbCBwcmVwYXJlRm9yV3JpdGluZyB0d2ljZSIpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX1NUQVRFKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gdGVtcENvbW1hbmRNUShuZXcgQ29tbWFuZE1RKDEpKTsKKworICAgIC8vIENoZWNrIGZyYW1lU2l6ZSBhbmQgZnJhbWVzQ291bnQKKyAgICBpZiAoZnJhbWVTaXplID09IDAgfHwgZnJhbWVzQ291bnQgPT0gMCkgeworICAgICAgICBBTE9HRSgiTnVsbCBmcmFtZVNpemUgKCV1KSBvciBmcmFtZXNDb3VudCAoJXUpIiwgZnJhbWVTaXplLAorICAgICAgICAgICAgICBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgLy8gQSBtZXNzYWdlIHF1ZXVlIGFzc2VydHMgaWYgaXQgY2FuIG5vdCBoYW5kbGUgdGhlIHJlcXVlc3RlZCBidWZmZXIsCisgICAgLy8gdGh1cyB0aGUgY2xpZW50IGhhcyB0byBndWVzcyB0aGUgbWF4aW11bSBzaXplIGl0IGNhbiBoYW5kbGUKKyAgICBzaXplX3QgbWV0YWRhdGFPdmVyaGVhZCA9CisgICAgICAgIDEwMDAwMDsgIC8vIEFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBvdmVyaGVhZCBvZiBhIG1lc3NhZ2UgcXVldWUKKyAgICBpZiAoZnJhbWVTaXplID4KKyAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBtZXRhZGF0YU92ZXJoZWFkKSAvIGZyYW1lc0NvdW50KSB7CisgICAgICAgIEFMT0dFKCJCdWZmZXIgdG9vIGJpZzogJXUqJXUgYnl0ZXMgY2FuIG5vdCBmaXQgaW4gYSBtZXNzYWdlIHF1ZXVlIiwKKyAgICAgICAgICAgICAgZnJhbWVTaXplLCBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gdGVtcERhdGFNUSgKKyAgICAgICAgbmV3IERhdGFNUShmcmFtZVNpemUgKiBmcmFtZXNDb3VudCwgdHJ1ZSAvKiBFdmVudEZsYWcgKi8pKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gdGVtcFN0YXR1c01RKG5ldyBTdGF0dXNNUSgxKSk7CisgICAgaWYgKCF0ZW1wQ29tbWFuZE1RLT5pc1ZhbGlkKCkgfHwgIXRlbXBEYXRhTVEtPmlzVmFsaWQoKSB8fAorICAgICAgICAhdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSwgImNvbW1hbmQgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBBTE9HRV9JRighdGVtcERhdGFNUS0+aXNWYWxpZCgpLCAiZGF0YSBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSwgInN0YXR1cyBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgRXZlbnRGbGFnKiB0ZW1wUmF3RWZHcm91cHt9OworICAgIHN0YXR1cyA9IEV2ZW50RmxhZzo6Y3JlYXRlRXZlbnRGbGFnKHRlbXBEYXRhTVEtPmdldEV2ZW50RmxhZ1dvcmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGVtcFJhd0VmR3JvdXApOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudEZsYWcsIHZvaWQgKCopKEV2ZW50RmxhZyopPiB0ZW1wRWxmR3JvdXAoCisgICAgICAgIHRlbXBSYXdFZkdyb3VwLCBbXShhdXRvKiBlZikgeyBFdmVudEZsYWc6OmRlbGV0ZUV2ZW50RmxhZygmZWYpOyB9KTsKKyAgICBpZiAoc3RhdHVzICE9IE9LIHx8ICF0ZW1wRWxmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBkYXRhIE1ROiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhbmQgbGF1bmNoIHRoZSB0aHJlYWQuCisgICAgYXV0byB0ZW1wV3JpdGVUaHJlYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdyaXRlVGhyZWFkPigKKyAgICAgICAgJm1TdG9wV3JpdGVUaHJlYWQsIG1TdHJlYW0sIHRlbXBDb21tYW5kTVEuZ2V0KCksIHRlbXBEYXRhTVEuZ2V0KCksCisgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwgdGVtcEVsZkdyb3VwLmdldCgpKTsKKyAgICBpZiAoIXRlbXBXcml0ZVRocmVhZC0+aW5pdCgpKSB7CisgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gc3RhcnQgd3JpdGVyIHRocmVhZDogJXMiLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RhdHVzID0gdGVtcFdyaXRlVGhyZWFkLT5ydW4oIndyaXRlciIsIFBSSU9SSVRZX1VSR0VOVF9BVURJTyk7CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIHN0YXJ0IHdyaXRlciB0aHJlYWQ6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUNvbW1hbmRNUSA9IHN0ZDo6bW92ZSh0ZW1wQ29tbWFuZE1RKTsKKyAgICBtRGF0YU1RID0gc3RkOjptb3ZlKHRlbXBEYXRhTVEpOworICAgIG1TdGF0dXNNUSA9IHN0ZDo6bW92ZSh0ZW1wU3RhdHVzTVEpOworICAgIG1Xcml0ZVRocmVhZCA9IHRlbXBXcml0ZVRocmVhZC5yZWxlYXNlKCk7CisgICAgbUVmR3JvdXAgPSB0ZW1wRWxmR3JvdXAucmVsZWFzZSgpOworICAgIHRocmVhZEluZm8ucGlkID0gZ2V0cGlkKCk7CisgICAgdGhyZWFkSW5mby50aWQgPSBtV3JpdGVUaHJlYWQtPmdldFRpZCgpOworICAgIF9oaWRsX2NiKFJlc3VsdDo6T0ssICptQ29tbWFuZE1RLT5nZXREZXNjKCksICptRGF0YU1RLT5nZXREZXNjKCksCisgICAgICAgICAgICAgKm1TdGF0dXNNUS0+Z2V0RGVzYygpLCB0aHJlYWRJbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRSZW5kZXJQb3NpdGlvbihnZXRSZW5kZXJQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHVpbnQzMl90IGhhbERzcEZyYW1lczsKKyAgICBSZXN1bHQgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAiZ2V0X3JlbmRlcl9wb3NpdGlvbiIsCisgICAgICAgIG1TdHJlYW0tPmdldF9yZW5kZXJfcG9zaXRpb24obVN0cmVhbSwgJmhhbERzcEZyYW1lcykpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsRHNwRnJhbWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXROZXh0V3JpdGVUaW1lc3RhbXAoCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGludDY0X3QgdGltZXN0YW1wVXMgPSAwOworICAgIGlmIChtU3RyZWFtLT5nZXRfbmV4dF93cml0ZV90aW1lc3RhbXAgIT0gTlVMTCkgeworICAgICAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAiZ2V0X25leHRfd3JpdGVfdGltZXN0YW1wIiwKKyAgICAgICAgICAgIG1TdHJlYW0tPmdldF9uZXh0X3dyaXRlX3RpbWVzdGFtcChtU3RyZWFtLCAmdGltZXN0YW1wVXMpKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCB0aW1lc3RhbXBVcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRDYWxsYmFjayhjb25zdCBzcDxJU3RyZWFtT3V0Q2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGlmIChtU3RyZWFtLT5zZXRfY2FsbGJhY2sgPT0gTlVMTCkgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBpbnQgcmVzdWx0ID0gbVN0cmVhbS0+c2V0X2NhbGxiYWNrKG1TdHJlYW0sIFN0cmVhbU91dDo6YXN5bmNDYWxsYmFjaywgdGhpcyk7CisgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIH0KKyAgICByZXR1cm4gU3RyZWFtOjphbmFseXplU3RhdHVzKCJzZXRfY2FsbGJhY2siLCByZXN1bHQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmNsZWFyQ2FsbGJhY2soKSB7CisgICAgaWYgKG1TdHJlYW0tPnNldF9jYWxsYmFjayA9PSBOVUxMKSByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgIG1DYWxsYmFjay5jbGVhcigpOworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCisvLyBzdGF0aWMKK2ludCBTdHJlYW1PdXQ6OmFzeW5jQ2FsbGJhY2soc3RyZWFtX2NhbGxiYWNrX2V2ZW50X3QgZXZlbnQsIHZvaWQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBjb29raWUpIHsKKyAgICB3cDxTdHJlYW1PdXQ+IHdlYWtTZWxmKHJlaW50ZXJwcmV0X2Nhc3Q8U3RyZWFtT3V0Kj4oY29va2llKSk7CisgICAgc3A8U3RyZWFtT3V0PiBzZWxmID0gd2Vha1NlbGYucHJvbW90ZSgpOworICAgIGlmIChzZWxmID09IG51bGxwdHIgfHwgc2VsZi0+bUNhbGxiYWNrID09IG51bGxwdHIpIHJldHVybiAwOworICAgIEFMT0dWKCJhc3luY0NhbGxiYWNrKCkgZXZlbnQgJWQiLCBldmVudCk7CisgICAgc3dpdGNoIChldmVudCkgeworICAgICAgICBjYXNlIFNUUkVBTV9DQktfRVZFTlRfV1JJVEVfUkVBRFk6CisgICAgICAgICAgICBzZWxmLT5tQ2FsbGJhY2stPm9uV3JpdGVSZWFkeSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1RSRUFNX0NCS19FVkVOVF9EUkFJTl9SRUFEWToKKyAgICAgICAgICAgIHNlbGYtPm1DYWxsYmFjay0+b25EcmFpblJlYWR5KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVFJFQU1fQ0JLX0VWRU5UX0VSUk9SOgorICAgICAgICAgICAgc2VsZi0+bUNhbGxiYWNrLT5vbkVycm9yKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dXKCJhc3luY0NhbGxiYWNrKCkgdW5rbm93biBldmVudCAlZCIsIGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6c3VwcG9ydHNQYXVzZUFuZFJlc3VtZSgKKyAgICBzdXBwb3J0c1BhdXNlQW5kUmVzdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IobVN0cmVhbS0+cGF1c2UgIT0gTlVMTCwgbVN0cmVhbS0+cmVzdW1lICE9IE5VTEwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cGF1c2UoKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPnBhdXNlICE9IE5VTEwKKyAgICAgICAgICAgICAgID8gU3RyZWFtOjphbmFseXplU3RhdHVzKCJwYXVzZSIsIG1TdHJlYW0tPnBhdXNlKG1TdHJlYW0pKQorICAgICAgICAgICAgICAgOiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cmVzdW1lKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5yZXN1bWUgIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoInJlc3VtZSIsIG1TdHJlYW0tPnJlc3VtZShtU3RyZWFtKSkKKyAgICAgICAgICAgICAgIDogUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48Ym9vbD4gU3RyZWFtT3V0OjpzdXBwb3J0c0RyYWluKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5kcmFpbiAhPSBOVUxMOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgeworICAgIHJldHVybiBtU3RyZWFtLT5kcmFpbiAhPSBOVUxMCisgICAgICAgICAgICAgICA/IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgICAgICAgICAgICAgICJkcmFpbiIsCisgICAgICAgICAgICAgICAgICAgICBtU3RyZWFtLT5kcmFpbihtU3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fZHJhaW5fdHlwZV90Pih0eXBlKSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpmbHVzaCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Zmx1c2ggIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoImZsdXNoIiwgbVN0cmVhbS0+Zmx1c2gobVN0cmVhbSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworLy8gc3RhdGljCitSZXN1bHQgU3RyZWFtT3V0OjpnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwoYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3BlYyogdGltZVN0YW1wKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGlmIChzdHJlYW0tPmdldF9wcmVzZW50YXRpb25fcG9zaXRpb24gPT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgaGFsVGltZVN0YW1wOworICAgIHJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgImdldF9wcmVzZW50YXRpb25fcG9zaXRpb24iLAorICAgICAgICBzdHJlYW0tPmdldF9wcmVzZW50YXRpb25fcG9zaXRpb24oc3RyZWFtLCBmcmFtZXMsICZoYWxUaW1lU3RhbXApLAorICAgICAgICAvLyBEb24ndCBsb2dzcGFtIG9uIEVJTlZBTC0taXQncyBub3JtYWwgZm9yIGdldF9wcmVzZW50YXRpb25fcG9zaXRpb24KKyAgICAgICAgLy8gdG8gcmV0dXJuIGl0IHNvbWV0aW1lcy4gRUFHQUlOIG1heSBiZSByZXR1cm5lZCBieSBBMkRQIGF1ZGlvIEhBTAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgRUlOVkFMLCBFQUdBSU4pOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICB0aW1lU3RhbXAtPnR2U2VjID0gaGFsVGltZVN0YW1wLnR2X3NlYzsKKyAgICAgICAgdGltZVN0YW1wLT50dk5TZWMgPSBoYWxUaW1lU3RhbXAudHZfbnNlYzsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0UHJlc2VudGF0aW9uUG9zaXRpb24oCisgICAgZ2V0UHJlc2VudGF0aW9uUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50NjRfdCBmcmFtZXMgPSAwOworICAgIFRpbWVTcGVjIHRpbWVTdGFtcCA9IHswLCAwfTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UHJlc2VudGF0aW9uUG9zaXRpb25JbXBsKG1TdHJlYW0sICZmcmFtZXMsICZ0aW1lU3RhbXApOworICAgIF9oaWRsX2NiKHJldHZhbCwgZnJhbWVzLCB0aW1lU3RhbXApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c3RhcnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdGFydCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnN0b3AoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdG9wKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5jcmVhdGVNbWFwQnVmZmVyKAorICAgICAgICBtaW5TaXplRnJhbWVzLCBhdWRpb19zdHJlYW1fb3V0X2ZyYW1lX3NpemUobVN0cmVhbSksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtTW1hcC0+Z2V0TW1hcFBvc2l0aW9uKF9oaWRsX2NiKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MzUyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuaApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTU9VVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1PVVRfSAorCisjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8Zm1xL0V2ZW50RmxhZy5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgIkRldmljZS5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkF1ZGlvRHJhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpUaW1lU3BlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbU91dCA6IHB1YmxpYyBJU3RyZWFtT3V0IHsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxXcml0ZUNvbW1hbmQsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IENvbW1hbmRNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTx1aW50OF90LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBEYXRhTVE7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8V3JpdGVTdGF0dXMsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IFN0YXR1c01ROworCisgICAgU3RyZWFtT3V0KGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEZyYW1lU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEZyYW1lQ291bnQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRCdWZmZXJTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0U2FtcGxlUmF0ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0NoYW5uZWxNYXNrPiBnZXRDaGFubmVsTWFzaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKGdldFN1cHBvcnRlZENoYW5uZWxNYXNrc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0Zvcm1hdD4gZ2V0Rm9ybWF0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUHJvcGVydGllcyhnZXRBdWRpb1Byb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBhZGRFZmZlY3QodWludDY0X3QgZWZmZWN0SWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZW1vdmVFZmZlY3QodWludDY0X3QgZWZmZWN0SWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFuZGJ5KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0RldmljZT4gZ2V0RGV2aWNlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0IGZvbGxvdy4KKyAgICBSZXR1cm48dWludDMyX3Q+IGdldExhdGVuY3koKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Vm9sdW1lKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JXcml0aW5nKAorICAgICAgICAgICAgdWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCwgcHJlcGFyZUZvcldyaXRpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmVuZGVyUG9zaXRpb24oZ2V0UmVuZGVyUG9zaXRpb25fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TmV4dFdyaXRlVGltZXN0YW1wKGdldE5leHRXcml0ZVRpbWVzdGFtcF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElTdHJlYW1PdXRDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xlYXJDYWxsYmFjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc3VwcG9ydHNQYXVzZUFuZFJlc3VtZShzdXBwb3J0c1BhdXNlQW5kUmVzdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcGF1c2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzdW1lKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0RyYWluKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGZsdXNoKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbihnZXRQcmVzZW50YXRpb25Qb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywgY3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgc3RhdGljIFJlc3VsdCBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwoCisgICAgICAgICAgICBhdWRpb19zdHJlYW1fb3V0X3QgKnN0cmVhbSwgdWludDY0X3QgKmZyYW1lcywgVGltZVNwZWMgKnRpbWVTdGFtcCk7CisKKyAgcHJpdmF0ZToKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBjb25zdCBzcDxEZXZpY2U+IG1EZXZpY2U7CisgICAgYXVkaW9fc3RyZWFtX291dF90ICptU3RyZWFtOworICAgIGNvbnN0IHNwPFN0cmVhbT4gbVN0cmVhbUNvbW1vbjsKKyAgICBjb25zdCBzcDxTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9vdXRfdD4+IG1TdHJlYW1NbWFwOworICAgIHNwPElTdHJlYW1PdXRDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kTVE+IG1Db21tYW5kTVE7CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gbURhdGFNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RhdHVzTVE+IG1TdGF0dXNNUTsKKyAgICBFdmVudEZsYWcqIG1FZkdyb3VwOworICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1TdG9wV3JpdGVUaHJlYWQ7CisgICAgc3A8VGhyZWFkPiBtV3JpdGVUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5TdHJlYW1PdXQoKTsKKworICAgIHN0YXRpYyBpbnQgYXN5bmNDYWxsYmFjayhzdHJlYW1fY2FsbGJhY2tfZXZlbnRfdCBldmVudCwgdm9pZCAqcGFyYW0sIHZvaWQgKmNvb2tpZSk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNT1VUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1V0aWwuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmVlYTUwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvVXRpbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9VVElMX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1VUSUxfSAorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8qKiBAcmV0dXJuIHRydWUgaWYgZ2FpbiBpcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVkZWQuICovCitjb25zdGV4cHIgYm9vbCBpc0dhaW5Ob3JtYWxpemVkKGZsb2F0IGdhaW4pIHsKKyAgICByZXR1cm4gZ2FpbiA+PSAwLjAgJiYgZ2FpbiA8PSAxLjA7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9VVElMX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UucmMgYi9hdWRpby8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYWY3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsMTEgQEAKK3NlcnZpY2UgYXVkaW8taGFsLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBhdWRpb3NlcnZlcgorICAgICMgbWVkaWEgZ2lkIG5lZWRlZCBmb3IgL2Rldi9mbSAocmFkaW8pIGFuZCBmb3IgL2RhdGEvbWlzYy9tZWRpYSAodGVlKQorICAgIGdyb3VwIGF1ZGlvIGNhbWVyYSBkcm1ycGMgaW5ldCBtZWRpYSBtZWRpYWRybSBuZXRfYnQgbmV0X2J0X2FkbWluIG5ldF9id19hY2N0CisgICAgaW9wcmlvIHJ0IDQKKyAgICB3cml0ZXBpZCAvZGV2L2NwdXNldC9mb3JlZ3JvdW5kL3Rhc2tzIC9kZXYvc3R1bmUvZm9yZWdyb3VuZC90YXNrcworICAgICMgYXVkaW9mbGluZ2VyIHJlc3RhcnRzIGl0c2VsZiB3aGVuIGl0IGxvc2VzIGNvbm5lY3Rpb24gd2l0aCB0aGUgaGFsCisgICAgIyBhbmQgaXRzIC5yYyBmaWxlIGhhcyBhbiAib25yZXN0YXJ0IHJlc3RhcnQgYXVkaW8taGFsIiBydWxlLCB0aHVzCisgICAgIyBhbiBhZGRpdGlvbmFsIGF1dG8tcmVzdGFydCBmcm9tIHRoZSBpbml0IHByb2Nlc3MgaXNuJ3QgbmVlZGVkLgorICAgIG9uZXNob3QKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YyOGQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1ZGlvaGFsc2VydmljZSIKKworI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0c0ZhY3Rvcnk7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OklTb3VuZFRyaWdnZXJIdzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpyZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvID0gYW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOworCisjaWZkZWYgVEFSR0VUX1VTRVNfQkNSQURJT19GVVRVUkVfRkVBVFVSRVMKK3N0YXRpYyBjb25zdCBib29sIHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMgPSBmYWxzZTsKKyNlbmRpZgorCit1c2luZyBhbmRyb2lkOjpPSzsKKworaW50IG1haW4oaW50IC8qIGFyZ2MgKi8sIGNoYXIqIC8qIGFyZ3YgKi8gW10pIHsKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDE2LCB0cnVlIC8qY2FsbGVyV2lsbEpvaW4qLyk7CisgICAgYW5kcm9pZDo6c3RhdHVzX3Qgc3RhdHVzOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SURldmljZXNGYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgYXVkaW8gc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUVmZmVjdHNGYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgYXVkaW8gZWZmZWN0cyBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgLy8gU291bmR0cmlnZ2VyIGFuZCBGTSByYWRpbyBtaWdodCBiZSBub3QgcHJlc2VudC4KKyAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElTb3VuZFRyaWdnZXJIdz4oKTsKKyAgICBBTE9HRV9JRihzdGF0dXMgIT0gT0ssICJFcnJvciB3aGlsZSByZWdpc3RlcmluZyBzb3VuZHRyaWdnZXIgc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIGlmICh1c2VCcm9hZGNhc3RSYWRpb0Z1dHVyZUZlYXR1cmVzKSB7CisgICAgICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248CisgICAgICAgICAgICBicm9hZGNhc3RyYWRpbzo6VjFfMTo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeT4oKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPAorICAgICAgICAgICAgYnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+KCk7CisgICAgfQorICAgIEFMT0dFX0lGKHN0YXR1cyAhPSBPSywgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIGZtIHJhZGlvIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdHlwZXMuaGFsIGIvYXVkaW8vMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzExOGMyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgTk9UX0lOSVRJQUxJWkVELAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCisgICAgTk9UX1NVUFBPUlRFRAorfTsKKworQGV4cG9ydChuYW1lPSJhdWRpb19kcmFpbl90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0RSQUlOXyIpCitlbnVtIEF1ZGlvRHJhaW4gOiBpbnQzMl90IHsKKyAgICAvKiogZHJhaW4oKSByZXR1cm5zIHdoZW4gYWxsIGRhdGEgaGFzIGJlZW4gcGxheWVkLiAqLworICAgIEFMTCwKKyAgICAvKioKKyAgICAgKiBkcmFpbigpIHJldHVybnMgYSBzaG9ydCB0aW1lIGJlZm9yZSBhbGwgZGF0YSBmcm9tIHRoZSBjdXJyZW50IHRyYWNrIGhhcworICAgICAqIGJlZW4gcGxheWVkIHRvIGdpdmUgdGltZSBmb3IgZ2FwbGVzcyB0cmFjayBzd2l0Y2guCisgICAgICovCisgICAgRUFSTFlfTk9USUZZCit9OworCisvKioKKyAqIEEgc3Vic3RpdHV0ZSBmb3IgUE9TSVggdGltZXNwZWMuCisgKi8KK3N0cnVjdCBUaW1lU3BlYyB7CisgICAgdWludDY0X3QgdHZTZWM7ICAgLy8gc2Vjb25kcworICAgIHVpbnQ2NF90IHR2TlNlYzsgIC8vIG5hbm9zZWNvbmRzCit9OworCisvKioKKyAqIElFRUUgODAyIE1BQyBhZGRyZXNzLgorICovCit0eXBlZGVmIHVpbnQ4X3RbNl0gTWFjQWRkcmVzczsKKworc3RydWN0IFBhcmFtZXRlclZhbHVlIHsKKyAgICBzdHJpbmcga2V5OworICAgIHN0cmluZyB2YWx1ZTsKK307CisKKy8qKgorICogU3BlY2lmaWVzIGEgZGV2aWNlIGluIGNhc2Ugd2hlbiBzZXZlcmFsIGRldmljZXMgb2YgdGhlIHNhbWUgdHlwZQorICogY2FuIGJlIGNvbm5lY3RlZCAoZS5nLiBCVCBBMkRQLCBVU0IpLgorICovCitzdHJ1Y3QgRGV2aWNlQWRkcmVzcyB7CisgICAgQXVkaW9EZXZpY2UgZGV2aWNlOyAgLy8gZGlzY3JpbWluYXRvcgorICAgIHVuaW9uIEFkZHJlc3MgeworICAgICAgICBNYWNBZGRyZXNzIG1hYzsgICAgIC8vIHVzZWQgZm9yIEJMVUVUT09USF9BMkRQXyoKKyAgICAgICAgdWludDhfdFs0XSBpcHY0OyAgICAvLyB1c2VkIGZvciBJUAorICAgICAgICBzdHJ1Y3QgQWxzYSB7CisgICAgICAgICAgICBpbnQzMl90IGNhcmQ7CisgICAgICAgICAgICBpbnQzMl90IGRldmljZTsKKyAgICAgICAgfSBhbHNhOyAgICAgICAgICAgICAvLyB1c2VkIGZvciBVU0JfKgorICAgIH0gYWRkcmVzczsKKyAgICBzdHJpbmcgYnVzQWRkcmVzczsgICAgICAvLyB1c2VkIGZvciBCVVMKKyAgICBzdHJpbmcgclN1Ym1peEFkZHJlc3M7ICAvLyB1c2VkIGZvciBSRU1PVEVfU1VCTUlYCit9OworCisvKioKKyAqIE1tYXAgYnVmZmVyIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgSVN0cmVhbS5jcmVhdGVNbWFwQnVmZmVyKCkuCisgKiBVc2VkIGJ5IHN0cmVhbXMgb3BlbmVkIGluIG1tYXAgbW9kZS4KKyAqLworc3RydWN0IE1tYXBCdWZmZXJJbmZvIHsKKyAgICBtZW1vcnkgIHNoYXJlZE1lbW9yeTsgICAgICAgICAvLyBtbWFwIG1lbW9yeSBidWZmZXIKKyAgICBpbnQzMl90IGJ1ZmZlclNpemVGcmFtZXM7ICAgICAvLyB0b3RhbCBidWZmZXIgc2l6ZSBpbiBmcmFtZXMKKyAgICBpbnQzMl90IGJ1cnN0U2l6ZUZyYW1lczsgICAgICAvLyB0cmFuc2ZlciBzaXplIGdyYW51bGFyaXR5IGluIGZyYW1lcworfTsKKworLyoqCisgKiBNbWFwIGJ1ZmZlciByZWFkL3dyaXRlIHBvc2l0aW9uIHJldHVybmVkIGJ5IElTdHJlYW0uZ2V0TW1hcFBvc2l0aW9uKCkuCisgKiBVc2VkIGJ5IHN0cmVhbXMgb3BlbmVkIGluIG1tYXAgbW9kZS4KKyAqLworc3RydWN0IE1tYXBQb3NpdGlvbiB7CisgICAgaW50NjRfdCAgdGltZU5hbm9zZWNvbmRzOyAvLyB0aW1lIHN0YW1wIGluIG5zLCBDTE9DS19NT05PVE9OSUMKKyAgICBpbnQzMl90ICBwb3NpdGlvbkZyYW1lczsgIC8vIGluY3JlYXNpbmcgMzIgYml0IGZyYW1lIGNvdW50IHJlc2V0IHdoZW4gSVN0cmVhbS5zdG9wKCkgaXMgY2FsbGVkCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiBtZXNzYWdlIHF1ZXVlcyB1c2VkIGJ5IFN0cmVhbUluIGFuZCBTdHJlYW1PdXQuCisgKi8KK2VudW0gTWVzc2FnZVF1ZXVlRmxhZ0JpdHMgOiB1aW50MzJfdCB7CisgICAgTk9UX0VNUFRZID0gMSA8PCAwLAorICAgIE5PVF9GVUxMID0gMSA8PCAxCit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWFiNzZmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzOSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEF1ZGlvVjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIkF1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0F1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BdWRpb1ByaW1hcnlIaWRsSGFsVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFjOGEyOQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BdWRpb1ByaW1hcnlIaWRsSGFsVGVzdC5jcHAKQEAgLTAsMCArMSwxNDA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxBdWRpb1YyXzBUYXJnZXRUZXN0IgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxsaXN0PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oPgorCisjaW5jbHVkZSAidXRpbGl0eS9Bc3NlcnRPay5oIgorI2luY2x1ZGUgInV0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmgiCisjaW5jbHVkZSAidXRpbGl0eS9SZXR1cm5Jbi5oIgorCit1c2luZyBzdGQ6OnN0cmluZzsKK3VzaW5nIHN0ZDo6dG9fc3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkF1ZGlvRHJhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOwordXNpbmcgVHR5TW9kZSA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJUHJpbWFyeURldmljZTo6VHR5TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlc0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6VGltZVNwZWM7Cit1c2luZyBSZWFkUGFyYW1ldGVycyA9CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1Jbjo6UmVhZFBhcmFtZXRlcnM7Cit1c2luZyBSZWFkU3RhdHVzID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1Jbjo6UmVhZFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXRDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpNbWFwQnVmZmVySW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpNbWFwUG9zaXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSGFuZGxlQ29uc3RzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9JbnB1dEZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lvSGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PZmZsb2FkSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvT3V0cHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKwordXNpbmcgdXRpbGl0eTo6cmV0dXJuSW47CisKK2NvbnN0IGNoYXIqIGdldFRlc3ROYW1lKCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpLT5uYW1lKCk7Cit9CisKK25hbWVzcGFjZSBkb2MgeworLyoqIERvY3VtZW50IHRoZSBjdXJyZW50IHRlc3QgY2FzZS4KKyAqIEVnOiBjYWxsaW5nIGBkb2M6OnRlc3QoIkR1bXAgdGhlIHN0YXRlIG9mIHRoZSBoYWwiKWAgaW4gdGhlICJkZWJ1Z0R1bXAiIHRlc3QKKyAqIHdpbGwgb3V0cHV0OgorICogICA8dGVzdGNhc2UgbmFtZT0iZGVidWdEdW1wIiBzdGF0dXM9InJ1biIgdGltZT0iNiIKKyAqICAgICAgICAgICAgIGNsYXNzbmFtZT0iQXVkaW9QcmltYXJ5SGlkbFRlc3QiCisgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRHVtcCB0aGUgc3RhdGUgb2YgdGhlIGhhbC4iIC8+CisgKiBzZWUKKyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9kb2NzL0FkdmFuY2VkR3VpZGUubWQjbG9nZ2luZy1hZGRpdGlvbmFsLWluZm9ybWF0aW9uCisgKi8KK3ZvaWQgdGVzdChjb25zdCBzdGQ6OnN0cmluZyYgdGVzdENhc2VEb2N1bWVudGF0aW9uKSB7CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCB0ZXN0Q2FzZURvY3VtZW50YXRpb24pOworfQorCisvKiogRG9jdW1lbnQgd2h5IGEgdGVzdCB3YXMgbm90IGZ1bGx5IHJ1bi4gVXN1YWxseSBkdWUgdG8gYW4gb3B0aW9uYWwgZmVhdHVyZQorICogbm90IGltcGxlbWVudGVkLiAqLwordm9pZCBwYXJ0aWFsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgcmVhc29uKSB7CisgICAgTE9HKElORk8pIDw8ICJUZXN0ICIgPDwgZ2V0VGVzdE5hbWUoKSA8PCAiIHBhcnRpYWxseSBydW46ICIgPDwgcmVhc29uOworICAgIDo6dGVzdGluZzo6VGVzdDo6UmVjb3JkUHJvcGVydHkoInBhcnRpYWx5UnVuVGVzdCIsIHJlYXNvbik7Cit9CisKKy8qKiBBZGQgYSBub3RlIHRvIHRoZSB0ZXN0LiAqLwordm9pZCBub3RlKGNvbnN0IHN0ZDo6c3RyaW5nJiBub3RlKSB7CisgICAgTE9HKElORk8pIDw8ICJUZXN0ICIgPDwgZ2V0VGVzdE5hbWUoKSA8PCAiIG5vdGVkOiAiIDw8IG5vdGU7CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgibm90ZSIsIG5vdGUpOworfQorfQorCisvLyBSZWdpc3RlciBjYWxsYmFjayBmb3Igc3RhdGljIG9iamVjdCBkZXN0cnVjdGlvbgorLy8gQXZvaWQgZGVzdHJveWluZyBzdGF0aWMgb2JqZWN0cyBhZnRlciBtYWluIHJldHVybi4KKy8vIFBvc3QgbWFpbiByZXR1cm4gZGVzdHJ1Y3Rpb24gbGVhZHMgdG8gaW5jb3JyZWN0IGd0ZXN0IHRpbWluZyBtZWFzdXJlbWVudHMgYXMKKy8vIHdlbGwgYXMgaGFyZGVyCisvLyBkZWJ1Z2luZyBpZiBhbnl0aGluZyBnb2VzIHdyb25nIGR1cmluZyBkZXN0cnVjdGlvbi4KK2NsYXNzIEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHVzaW5nIFRlYXJEb3duRnVuYyA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKKyAgICB2b2lkIHJlZ2lzdGVyVGVhckRvd24oVGVhckRvd25GdW5jJiYgdGVhckRvd24pIHsKKyAgICAgICAgdGVhckRvd25zLnB1c2hfYmFjayhzdGQ6Om1vdmUodGVhckRvd24pKTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgLy8gQ2FsbCB0aGUgdGVhciBkb3ducyBpbiByZXZlcnNlIG9yZGVyIG9mIGluc2VydGlvbgorICAgICAgICBmb3IgKGF1dG8mIHRlYXJEb3duIDogdGVhckRvd25zKSB7CisgICAgICAgICAgICB0ZWFyRG93bigpOworICAgICAgICB9CisgICAgfQorICAgIHN0ZDo6bGlzdDxUZWFyRG93bkZ1bmM+IHRlYXJEb3duczsKK307CisvLyBJbnN0YW5jZSB0byByZWdpc3RlciBnbG9iYWwgdGVhckRvd24KK3N0YXRpYyBFbnZpcm9ubWVudCogZW52aXJvbm1lbnQ7CisKK2NsYXNzIEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDb252ZW5pZW50IG1lbWJlciB0byBzdG9yZSByZXN1bHRzCisgICAgUmVzdWx0IHJlczsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBnZXRTZXJ2aWNlIGF1ZGlvX2RldmljZXNfZmFjdG9yeSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gVGVzdCBhbGwgYXVkaW8gZGV2aWNlcworY2xhc3MgQXVkaW9IaWRsVGVzdCA6IHB1YmxpYyBIaWRsVGVzdCB7CisgICBwdWJsaWM6CisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoSGlkbFRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorCisgICAgICAgIGlmIChkZXZpY2VzRmFjdG9yeSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBlbnZpcm9ubWVudC0+cmVnaXN0ZXJUZWFyRG93bihbXSB7IGRldmljZXNGYWN0b3J5LmNsZWFyKCk7IH0pOworICAgICAgICAgICAgZGV2aWNlc0ZhY3RvcnkgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgICAgICBJRGV2aWNlc0ZhY3Rvcnk+KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX1RSVUUoZGV2aWNlc0ZhY3RvcnkgIT0gbnVsbHB0cik7CisgICAgfQorCisgICBwcm90ZWN0ZWQ6CisgICAgLy8gQ2FjaGUgdGhlIGRldmljZXNGYWN0b3J5IHJldHJpZXZhbCB0byBzcGVlZCB1cCBlYWNoIHRlc3QgYnkgfjAuNXMKKyAgICBzdGF0aWMgc3A8SURldmljZXNGYWN0b3J5PiBkZXZpY2VzRmFjdG9yeTsKK307CitzcDxJRGV2aWNlc0ZhY3Rvcnk+IEF1ZGlvSGlkbFRlc3Q6OmRldmljZXNGYWN0b3J5OworCitURVNUX0YoQXVkaW9IaWRsVGVzdCwgR2V0QXVkaW9EZXZpY2VzRmFjdG9yeVNlcnZpY2UpIHsKKyAgICBkb2M6OnRlc3QoInRlc3QgdGhlIGdldFNlcnZpY2UgKGNhbGxlZCBpbiBTZXRVcCkiKTsKK30KKworVEVTVF9GKEF1ZGlvSGlkbFRlc3QsIE9wZW5EZXZpY2VJbnZhbGlkUGFyYW1ldGVyKSB7CisgICAgZG9jOjp0ZXN0KCJ0ZXN0IHBhc3NpbmcgYW4gaW52YWxpZCBwYXJhbWV0ZXIgdG8gb3BlbkRldmljZSIpOworICAgIElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0IHJlc3VsdDsKKyAgICBzcDxJRGV2aWNlPiBkZXZpY2U7CisgICAgQVNTRVJUX09LKGRldmljZXNGYWN0b3J5LT5vcGVuRGV2aWNlKElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlKC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuSW4ocmVzdWx0LCBkZXZpY2UpKSk7CisgICAgQVNTRVJUX0VRKElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKyAgICBBU1NFUlRfVFJVRShkZXZpY2UgPT0gbnVsbHB0cik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuRGV2aWNlIHByaW1hcnkgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gVGVzdCB0aGUgcHJpbWFyeSBkZXZpY2UKK2NsYXNzIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvSGlkbFRlc3QgeworICAgcHVibGljOgorICAgIC8qKiBQcmltYXJ5IEhBTCB0ZXN0IGFyZSBOT1QgdGhyZWFkIHNhZmUuICovCisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoQXVkaW9IaWRsVGVzdDo6U2V0VXAoKSk7ICAvLyBzZXR1cCBiYXNlCisKKyAgICAgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBJRGV2aWNlc0ZhY3Rvcnk6OlJlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBzcDxJRGV2aWNlPiBiYXNlRGV2aWNlOworICAgICAgICAgICAgQVNTRVJUX09LKAorICAgICAgICAgICAgICAgIGRldmljZXNGYWN0b3J5LT5vcGVuRGV2aWNlKElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpQUklNQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlc3VsdCwgYmFzZURldmljZSkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXN1bHQpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoYmFzZURldmljZSAhPSBudWxscHRyKTsKKworICAgICAgICAgICAgZW52aXJvbm1lbnQtPnJlZ2lzdGVyVGVhckRvd24oW10geyBkZXZpY2UuY2xlYXIoKTsgfSk7CisgICAgICAgICAgICBkZXZpY2UgPSBJUHJpbWFyeURldmljZTo6Y2FzdEZyb20oYmFzZURldmljZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShkZXZpY2UgIT0gbnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDYWNoZSB0aGUgZGV2aWNlIG9wZW5pbmcgdG8gc3BlZWQgdXAgZWFjaCB0ZXN0IGJ5IH4wLjVzCisgICAgc3RhdGljIHNwPElQcmltYXJ5RGV2aWNlPiBkZXZpY2U7Cit9Oworc3A8SVByaW1hcnlEZXZpY2U+IEF1ZGlvUHJpbWFyeUhpZGxUZXN0OjpkZXZpY2U7CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgT3BlblByaW1hcnlEZXZpY2UpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgdGhlIG9wZW5EZXZpY2UgKGNhbGxlZCBpbiBTZXRVcCkiKTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBJbml0KSB7CisgICAgZG9jOjp0ZXN0KCJUZXN0IHRoYXQgdGhlIGF1ZGlvIHByaW1hcnkgaGFsIGluaXRpYWxpemVkIGNvcnJlY3RseSIpOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPmluaXRDaGVjaygpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8ge3NldCxnZXR9e01hc3RlcixNaWN9e011dGUsVm9sdW1lfSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHk+CitjbGFzcyBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA6IHB1YmxpYyBBdWRpb1ByaW1hcnlIaWRsVGVzdCB7CisgICBwcm90ZWN0ZWQ6CisgICAgLyoqIFRlc3QgYSBwcm9wZXJ0eSBnZXR0ZXIgYW5kIHNldHRlci4gKi8KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgR2V0dGVyLCBjbGFzcyBTZXR0ZXI+CisgICAgdm9pZCB0ZXN0QWNjZXNzb3JzKGNvbnN0IHN0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8UHJvcGVydHk+JiB2YWx1ZXNUb1Rlc3QsIFNldHRlciBzZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIEdldHRlciBnZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxQcm9wZXJ0eT4mIGludmFsaWRWYWx1ZXMgPSB7fSkgeworICAgICAgICBQcm9wZXJ0eSBpbml0aWFsVmFsdWU7ICAvLyBTYXZlIGluaXRpYWwgdmFsdWUgdG8gcmVzdG9yZSBpdCBhdCB0aGUgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB0ZXN0CisgICAgICAgIEFTU0VSVF9PSygoZGV2aWNlLmdldCgpLT4qZ2V0dGVyKShyZXR1cm5JbihyZXMsIGluaXRpYWxWYWx1ZSkpKTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisKKyAgICAgICAgZm9yIChQcm9wZXJ0eSBzZXRWYWx1ZSA6IHZhbHVlc1RvVGVzdCkgeworICAgICAgICAgICAgU0NPUEVEX1RSQUNFKCJUZXN0ICIgKyBwcm9wZXJ0eU5hbWUgKyAiIGdldHRlciBhbmQgc2V0dGVyIGZvciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHNldFZhbHVlKSk7CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KnNldHRlcikoc2V0VmFsdWUpKTsKKyAgICAgICAgICAgIFByb3BlcnR5IGdldFZhbHVlOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBnZXR0ZXIgcmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBqdXN0IHNldAorICAgICAgICAgICAgQVNTRVJUX09LKChkZXZpY2UuZ2V0KCktPipnZXR0ZXIpKHJldHVybkluKHJlcywgZ2V0VmFsdWUpKSk7CisgICAgICAgICAgICBBU1NFUlRfT0socmVzKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShzZXRWYWx1ZSwgZ2V0VmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChQcm9wZXJ0eSBpbnZhbGlkVmFsdWUgOiBpbnZhbGlkVmFsdWVzKSB7CisgICAgICAgICAgICBTQ09QRURfVFJBQ0UoIlRyeSB0byBzZXQgIiArIHByb3BlcnR5TmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIiB3aXRoIHRoZSBpbnZhbGlkIHZhbHVlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaW52YWxpZFZhbHVlKSk7CisgICAgICAgICAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChkZXZpY2UuZ2V0KCktPipzZXR0ZXIpKGludmFsaWRWYWx1ZSkpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUX09LKAorICAgICAgICAgICAgKGRldmljZS5nZXQoKS0+KnNldHRlcikoaW5pdGlhbFZhbHVlKSk7ICAvLyByZXN0b3JlIGluaXRpYWwgdmFsdWUKKyAgICB9CisKKyAgICAvKiogVGVzdCB0aGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb2YgYW4gb3B0aW9uYWwgZmVhdHVyZS4gKi8KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgR2V0dGVyLCBjbGFzcyBTZXR0ZXI+CisgICAgdm9pZCB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoY29uc3Qgc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgdmFsdWVzVG9UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRlciBzZXR0ZXIsIEdldHRlciBnZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgaW52YWxpZFZhbHVlcyA9IHt9KSB7CisgICAgICAgIGRvYzo6dGVzdCgiVGVzdCB0aGUgb3B0aW9uYWwgIiArIHByb3BlcnR5TmFtZSArICIgZ2V0dGVycyBhbmQgc2V0dGVyIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIFNDT1BFRF9UUkFDRSgiVGVzdCBmZWF0dXJlIHN1cHBvcnQgYnkgY2FsbGluZyB0aGUgZ2V0dGVyIik7CisgICAgICAgICAgICBQcm9wZXJ0eSBpbml0aWFsVmFsdWU7CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KmdldHRlcikocmV0dXJuSW4ocmVzLCBpbml0aWFsVmFsdWUpKSk7CisgICAgICAgICAgICBpZiAocmVzID09IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCkgeworICAgICAgICAgICAgICAgIGRvYzo6cGFydGlhbFRlc3QocHJvcGVydHlOYW1lICsgIiBnZXR0ZXIgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXMpOyAgLy8gSWYgaXQgaXMgc3VwcG9ydGVkIGl0IG11c3Qgc3VjY2VlZAorICAgICAgICB9CisgICAgICAgIC8vIFRoZSBmZWF0dXJlIGlzIHN1cHBvcnRlZCwgdGVzdCBpdAorICAgICAgICB0ZXN0QWNjZXNzb3JzKHByb3BlcnR5TmFtZSwgdmFsdWVzVG9UZXN0LCBzZXR0ZXIsIGdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkVmFsdWVzKTsKKyAgICB9Cit9OworCit1c2luZyBCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QgPSBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdDxib29sPjsKKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgTWljTXV0ZVRlc3QpIHsKKyAgICBkb2M6OnRlc3QoIkNoZWNrIHRoYXQgdGhlIG1pYyBjYW4gYmUgbXV0ZWQgYW5kIHVubXV0ZWQiKTsKKyAgICB0ZXN0QWNjZXNzb3JzKCJtaWMgbXV0ZSIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sICZJRGV2aWNlOjpzZXRNaWNNdXRlLAorICAgICAgICAgICAgICAgICAgJklEZXZpY2U6OmdldE1pY011dGUpOworICAgIC8vIFRPRE86IGNoZWNrIHRoYXQgdGhlIG1pYyBpcyByZWFsbHkgbXV0ZWQgKGFsbCBzYW1wbGUgYXJlIDApCit9CisKK1RFU1RfRihCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIE1hc3Rlck11dGVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgbWFzdGVyIG11dGUgaXMgc3VwcG9ydGVkLCB0cnkgdG8gbXV0ZSBhbmQgdW5tdXRlIHRoZSBtYXN0ZXIgIgorICAgICAgICAib3V0cHV0Iik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJtYXN0ZXIgbXV0ZSIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJRGV2aWNlOjpzZXRNYXN0ZXJNdXRlLCAmSURldmljZTo6Z2V0TWFzdGVyTXV0ZSk7CisgICAgLy8gVE9ETzogY2hlY2sgdGhhdCB0aGUgbWFzdGVyIHZvbHVtZSBpcyByZWFsbHkgbXV0ZWQKK30KKwordXNpbmcgRmxvYXRBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA9IEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0PGZsb2F0PjsKK1RFU1RfRihGbG9hdEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBNYXN0ZXJWb2x1bWVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KCJUZXN0IHRoZSBtYXN0ZXIgdm9sdW1lIGlmIHN1cHBvcnRlZCIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygibWFzdGVyIHZvbHVtZSIsIHswLCAwLjUsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSURldmljZTo6c2V0TWFzdGVyVm9sdW1lLCAmSURldmljZTo6Z2V0TWFzdGVyVm9sdW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICB7LTAuMSwgMS4xLCBOQU4sIElORklOSVRZLCAtSU5GSU5JVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKX0pOworICAgIC8vIFRPRE86IGNoZWNrIHRoYXQgdGhlIG1hc3RlciB2b2x1bWUgaXMgcmVhbGx5IGNoYW5nZWQKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBBdWRpb1BhdGNoZXMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBBdWRpb1BhdGNoUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IHsKKyAgIHByb3RlY3RlZDoKKyAgICBib29sIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBkZXZpY2UtPnN1cHBvcnRzQXVkaW9QYXRjaGVzKCk7CisgICAgICAgIEVYUEVDVF9JU19PSyhyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK307CisKK1RFU1RfRihBdWRpb1BhdGNoUHJpbWFyeUhpZGxUZXN0LCBBdWRpb1BhdGNoZXMpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgaWYgYXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIik7CisgICAgaWYgKCFhcmVBdWRpb1BhdGNoZXNTdXBwb3J0ZWQoKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJBdWRpbyBwYXRjaGVzIGFyZSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gVE9ETzogdGVzdCBhdWRpbyBwYXRjaGVzCit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLyBSZXF1aXJlZCBhbmQgcmVjb21tZW5kZWQgYXVkaW8gZm9ybWF0IHN1cHBvcnQgLy8vLy8vLy8vLy8vLy8vCisvLyBGcm9tOgorLy8gaHR0cHM6Ly9zb3VyY2UuYW5kcm9pZC5jb20vY29tcGF0aWJpbGl0eS9hbmRyb2lkLWNkZC5odG1sIzVfNF9hdWRpb19yZWNvcmRpbmcKKy8vIEZyb206CisvLyBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9jb21wYXRpYmlsaXR5L2FuZHJvaWQtY2RkLmh0bWwjNV81X2F1ZGlvX3BsYXliYWNrCisvLy8vLy8vLy8vLyBUT0RPOiBtb3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgZm9yIGVhc2llciB1cGRhdGUgLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0IDogcHVibGljIEF1ZGlvUGF0Y2hQcmltYXJ5SGlkbFRlc3QgeworICAgcHVibGljOgorICAgIC8vIENhY2hlIHJlc3VsdCA/CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgICAgIHtBdWRpb0NoYW5uZWxNYXNrOjpPVVRfU1RFUkVPLCBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OT30sCisgICAgICAgICAgICB7ODAwMCwgMTEwMjUsIDE2MDAwLCAyMjA1MCwgMzIwMDAsIDQ0MTAwfSwKKyAgICAgICAgICAgIHtBdWRpb0Zvcm1hdDo6UENNXzE2X0JJVH0pOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCB2ZWN0b3I8QXVkaW9Db25maWc+CisgICAgZ2V0UmVjb21tZW5kZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgICAgIHtBdWRpb0NoYW5uZWxNYXNrOjpPVVRfU1RFUkVPLCBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OT30sCisgICAgICAgICAgICB7MjQwMDAsIDQ4MDAwfSwge0F1ZGlvRm9ybWF0OjpQQ01fMTZfQklUfSk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgLy8gVE9ETzogcmV0cmlldmUgYXVkaW8gY29uZmlnIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0KKyAgICAgICAgLy8gYXMgZGVjbGFyZWQgaW4gdGhlIHBvbGljeSBjb25maWd1cmF0aW9uCisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRSZXF1aXJlZFN1cHBvcnRDYXB0dXJlQXVkaW9Db25maWcoKSB7CisgICAgICAgIHJldHVybiBjb21iaW5lQXVkaW9Db25maWcoe0F1ZGlvQ2hhbm5lbE1hc2s6OklOX01PTk99LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs4MDAwLCAxMTAyNSwgMTYwMDAsIDQ0MTAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkgeworICAgICAgICByZXR1cm4gY29tYmluZUF1ZGlvQ29uZmlnKHtBdWRpb0NoYW5uZWxNYXNrOjpJTl9TVEVSRU99LCB7MjIwNTAsIDQ4MDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0U3VwcG9ydGVkQ2FwdHVyZUF1ZGlvQ29uZmlnKCkgeworICAgICAgICAvLyBUT0RPOiByZXRyaWV2ZSBhdWRpbyBjb25maWcgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybQorICAgICAgICAvLyBhcyBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGNvbmZpZ3VyYXRpb24KKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBjb21iaW5lQXVkaW9Db25maWcoCisgICAgICAgIHZlY3RvcjxBdWRpb0NoYW5uZWxNYXNrPiBjaGFubmVsTWFza3MsIHZlY3Rvcjx1aW50MzJfdD4gc2FtcGxlUmF0ZXMsCisgICAgICAgIHZlY3RvcjxBdWRpb0Zvcm1hdD4gZm9ybWF0cykgeworICAgICAgICB2ZWN0b3I8QXVkaW9Db25maWc+IGNvbmZpZ3M7CisgICAgICAgIGZvciAoYXV0byBjaGFubmVsTWFzayA6IGNoYW5uZWxNYXNrcykgeworICAgICAgICAgICAgZm9yIChhdXRvIHNhbXBsZVJhdGUgOiBzYW1wbGVSYXRlcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byBmb3JtYXQgOiBmb3JtYXRzKSB7CisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZ3t9OworICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSBvZmZsb2FkSW5mbyB0byAwCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jaGFubmVsTWFzayA9IGNoYW5uZWxNYXNrOworICAgICAgICAgICAgICAgICAgICBjb25maWcuc2FtcGxlUmF0ZUh6ID0gc2FtcGxlUmF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY29uZmlnLmZvcm1hdCA9IGZvcm1hdDsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGxlYXZlIGZyYW1lQ291bnQgdG8gMCA/CisgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3MucHVzaF9iYWNrKGNvbmZpZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb25maWdzOworICAgIH0KK307CisKKy8qKiBHZW5lcmF0ZSBhIHRlc3QgbmFtZSBiYXNlZCBvbiBhbiBhdWRpbyBjb25maWcuCisgKgorICogQXMgdGhlIG9ubHkgcGFyYW1ldGVyIGNoYW5naW5nIGFyZSBjaGFubmVsIG1hc2sgYW5kIHNhbXBsZSByYXRlLAorICogb25seSBwcmludCB0aG9zZSBvbmVzIGluIHRoZSB0ZXN0IG5hbWUuCisgKi8KK3N0YXRpYyBzdHJpbmcgZ2VuZXJhdGVUZXN0TmFtZSgKKyAgICBjb25zdCB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPEF1ZGlvQ29uZmlnPiYgaW5mbykgeworICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBpbmZvLnBhcmFtOworICAgIHJldHVybiB0b19zdHJpbmcoaW5mby5pbmRleCkgKyAiX18iICsgdG9fc3RyaW5nKGNvbmZpZy5zYW1wbGVSYXRlSHopICsgIl8iICsKKyAgICAgICAgICAgLy8gIk1PTk8iIGlzIG1vcmUgY2xlYXIgdGhhbiAiRlJPTlRfTEVGVCIKKyAgICAgICAgICAgKChjb25maWcuY2hhbm5lbE1hc2sgPT0gQXVkaW9DaGFubmVsTWFzazo6T1VUX01PTk8gfHwKKyAgICAgICAgICAgICBjb25maWcuY2hhbm5lbE1hc2sgPT0gQXVkaW9DaGFubmVsTWFzazo6SU5fTU9OTykKKyAgICAgICAgICAgICAgICA/ICJNT05PIgorICAgICAgICAgICAgICAgIDogdG9TdHJpbmcoY29uZmlnLmNoYW5uZWxNYXNrKSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZ2V0SW5wdXRCdWZmZXJTaXplIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gRklYTUU6IGV4ZWN1dGUgaW5wdXQgdGVzdCBvbmx5IGlmIHBsYXRmb3JtIGRlY2xhcmVzCisvLyBhbmRyb2lkLmhhcmR3YXJlLm1pY3JvcGhvbmUKKy8vICAgICAgICBob3cgdG8gZ2V0IHRoaXMgdmFsdWUgPyBpcyBpdCBhIHByb3BlcnR5ID8/PworCitjbGFzcyBBdWRpb0NhcHR1cmVDb25maWdQcmltYXJ5VGVzdAorICAgIDogcHVibGljIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3QsCisgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8QXVkaW9Db25maWc+IHsKKyAgIHByb3RlY3RlZDoKKyAgICB2b2lkIGlucHV0QnVmZmVyU2l6ZVRlc3QoY29uc3QgQXVkaW9Db25maWcmIGF1ZGlvQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN1cHBvcnRSZXF1aXJlZCkgeworICAgICAgICB1aW50NjRfdCBidWZmZXJTaXplOworICAgICAgICBBU1NFUlRfT0soCisgICAgICAgICAgICBkZXZpY2UtPmdldElucHV0QnVmZmVyU2l6ZShhdWRpb0NvbmZpZywgcmV0dXJuSW4ocmVzLCBidWZmZXJTaXplKSkpOworCisgICAgICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKHN1cHBvcnRSZXF1aXJlZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6T0s6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgYnVmZmVyIGlzIG9mIGEgc2FuZSBzaXplCisgICAgICAgICAgICAgICAgLy8gRm9yIG5vdyBvbmx5IHRoYXQgaXQgaXMgPiAwCisgICAgICAgICAgICAgICAgRVhQRUNUX0dUKGJ1ZmZlclNpemUsIHVpbnQ2NF90KDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgRkFJTCgpIDw8ICJJbnZhbGlkIHJldHVybiBzdGF0dXM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlcyk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvLyBUZXN0IHRoYXQgdGhlIHJlcXVpcmVkIGNhcHR1cmUgY29uZmlnIGFuZCB0aG9zZSBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGFyZQorLy8gaW5kZWVkIHN1cHBvcnRlZAorY2xhc3MgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0IDogcHVibGljIEF1ZGlvQ2FwdHVyZUNvbmZpZ1ByaW1hcnlUZXN0IHt9OworVEVTVF9QKFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplVGVzdCwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW5wdXQgYnVmZmVyIHNpemUgbXVzdCBiZSByZXRyaWV2YWJsZSBmb3IgYSBmb3JtYXQgd2l0aCByZXF1aXJlZCAiCisgICAgICAgICJzdXBwb3J0LiIpOworICAgIGlucHV0QnVmZmVyU2l6ZVRlc3QoR2V0UGFyYW0oKSwgdHJ1ZSk7Cit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0QnVmZmVyU2l6ZSwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dEJ1ZmZlclNpemUsIFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRTdXBwb3J0ZWRDYXB0dXJlQXVkaW9Db25maWcoKSksCisgICAgJmdlbmVyYXRlVGVzdE5hbWUpOworCisvLyBUZXN0IHRoYXQgdGhlIHJlY29tbWVuZGVkIGNhcHR1cmUgY29uZmlnIGFyZSBzdXBwb3J0ZWQgb3IgbGVhZCB0byBhCisvLyBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4KK2NsYXNzIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCA6IHB1YmxpYyBBdWRpb0NhcHR1cmVDb25maWdQcmltYXJ5VGVzdCB7fTsKK1RFU1RfUChPcHRpb25hbElucHV0QnVmZmVyU2l6ZVRlc3QsIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklucHV0IGJ1ZmZlciBzaXplIHNob3VsZCBiZSByZXRyaWV2YWJsZSBmb3IgYSBmb3JtYXQgd2l0aCByZWNvbW1lbmRlZCAiCisgICAgICAgICJzdXBwb3J0LiIpOworICAgIGlucHV0QnVmZmVyU2l6ZVRlc3QoR2V0UGFyYW0oKSwgZmFsc2UpOworfQorSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgUmVjb21tZW5kZWRDYXB0dXJlQXVkaW9Db25maWdTdXBwb3J0LCBPcHRpb25hbElucHV0QnVmZmVyU2l6ZVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIHNldFNjcmVlblN0YXRlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0YoQXVkaW9QcmltYXJ5SGlkbFRlc3QsIHNldFNjcmVlblN0YXRlKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIHJlY2VpdmUgdGhlIHNjcmVlbiBzdGF0ZSIpOworICAgIGZvciAoYm9vbCB0dXJuZWRPbiA6IHtmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlfSkgeworICAgICAgICBhdXRvIHJldCA9IGRldmljZS0+c2V0U2NyZWVuU3RhdGUodHVybmVkT24pOworICAgICAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICAgICAgUmVzdWx0IHJlc3VsdCA9IHJldDsKKyAgICAgICAgYXV0byBva09yTm90U3VwcG9ydGVkID0ge1Jlc3VsdDo6T0ssIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisgICAgICAgIEFTU0VSVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzdWx0KTsKKyAgICB9Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyB7Z2V0LHNldH1QYXJhbWV0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBnZXRQYXJhbWV0ZXJzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIHNldCBhbmQgZ2V0IHBhcmFtZXRlcnMiKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4ga2V5czsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gdmFsdWVzOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPmdldFBhcmFtZXRlcnMoa2V5cywgcmV0dXJuSW4ocmVzLCB2YWx1ZXMpKSk7CisgICAgQVNTRVJUX09LKGRldmljZS0+c2V0UGFyYW1ldGVycyh2YWx1ZXMpKTsKKyAgICB2YWx1ZXMucmVzaXplKDApOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPnNldFBhcmFtZXRlcnModmFsdWVzKSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZGVidWdEZWJ1ZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwordGVtcGxhdGUgPGNsYXNzIERlYnVnRHVtcD4KK3N0YXRpYyB2b2lkIHRlc3REZWJ1Z0R1bXAoRGVidWdEdW1wIGRlYnVnRHVtcCkgeworICAgIC8vIER1bXAgaW4gYSB0ZW1wb3JhcnkgZmlsZQorICAgIC8vIE5vdGUgdGhhdCBTRUxpbnV4IG11c3QgYmUgZGVhY3RpdmF0ZSBmb3IgdGhpcyB0ZXN0IHRvIHdvcmsKKyAgICBGSUxFKiBmaWxlID0gdG1wZmlsZSgpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBmaWxlKSA8PCBlcnJubzsKKworICAgIC8vIFdyYXAgdGhlIHRlbXBvcmFyeSBmaWxlIGZpbGUgZGVzY3JpcHRvciBpbiBhIG5hdGl2ZSBoYW5kbGUKKyAgICBhdXRvKiBuYXRpdmVIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgbmF0aXZlSGFuZGxlKTsKKyAgICBuYXRpdmVIYW5kbGUtPmRhdGFbMF0gPSBmaWxlbm8oZmlsZSk7CisKKyAgICAvLyBXcmFwIHRoaXMgbmF0aXZlIGhhbmRsZSBpbiBhIGhpZGwgaGFuZGxlCisgICAgaGlkbF9oYW5kbGUgaGFuZGxlOworICAgIGhhbmRsZS5zZXRUbyhuYXRpdmVIYW5kbGUsIHRydWUgLyp0YWtlIG93bmVyc2hpcCovKTsKKworICAgIEFTU0VSVF9PSyhkZWJ1Z0R1bXAoaGFuZGxlKSk7CisKKyAgICAvLyBDaGVjayB0aGF0IGF0IGxlYXN0IG9uZSBiaXQgd2FzIHdyaXR0ZW4gYnkgdGhlIGhhbAorICAgIC8vIFRPRE86IGRlYnVnRHVtcCBkb2VzIG5vdCByZXR1cm4gYSBSZXN1bHQuCisgICAgLy8gVGhpcyBtZWFuIHRoYXQgdGhlIGhhbCBjYW4gbm90IHJlcG9ydCB0aGF0IGl0IG5vdCBpbXBsZW1lbnRpbmcgdGhlCisgICAgLy8gZnVuY3Rpb24uCisgICAgcmV3aW5kKGZpbGUpOyAgLy8gY2FuIG5vdCBmYWlsCisgICAgY2hhciBidWZmOworICAgIGlmIChmcmVhZCgmYnVmZiwgc2l6ZW9mKGJ1ZmYpLCAxLCBmaWxlKSAhPSAxKSB7CisgICAgICAgIGRvYzo6bm90ZSgiZGVidWdEdW1wIGRvZXMgbm90IHNlZW0gaW1wbGVtZW50ZWQiKTsKKyAgICB9CisgICAgRVhQRUNUX0VRKDAsIGZjbG9zZShmaWxlKSkgPDwgZXJybm87Cit9CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgRGVidWdEdW1wKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiKTsKKyAgICB0ZXN0RGVidWdEdW1wKAorICAgICAgICBbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7IHJldHVybiBkZXZpY2UtPmRlYnVnRHVtcChoYW5kbGUpOyB9KTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBEZWJ1Z0R1bXBJbnZhbGlkQXJndW1lbnRzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgQVNTRVJUX09LKGRldmljZS0+ZGVidWdEdW1wKGhpZGxfaGFuZGxlKCkpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVue091dHB1dCxJbnB1dH1TdHJlYW0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgU3RyZWFtPgorY2xhc3MgT3BlblN0cmVhbVRlc3QgOiBwdWJsaWMgQXVkaW9Db25maWdQcmltYXJ5VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPEF1ZGlvQ29uZmlnPiB7CisgICBwcm90ZWN0ZWQ6CisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZW4+CisgICAgdm9pZCB0ZXN0T3BlbihPcGVuIG9wZW5TdHJlYW0sIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgLy8gRklYTUU6IE9wZW4gYSBzdHJlYW0gd2l0aG91dCBhbiBJT0hhbmRsZQorICAgICAgICAvLyAgICAgICAgVGhpcyBpcyBub3QgcmVxdWlyZWQgdG8gYmUgYWNjZXB0ZWQgYnkgaGFsIGltcGxlbWVudGF0aW9ucworICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlID0KKyAgICAgICAgICAgIChBdWRpb0lvSGFuZGxlKUF1ZGlvSGFuZGxlQ29uc3RzOjpBVURJT19JT19IQU5ETEVfTk9ORTsKKyAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlne307CisgICAgICAgIEFTU0VSVF9PSyhvcGVuU3RyZWFtKGlvSGFuZGxlLCBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWcpKSk7CisKKyAgICAgICAgLy8gVE9ETzogb25seSBhbGxvdyBmYWlsdXJlIGZvciBSZWNvbW1lbmRlZFBsYXliYWNrQXVkaW9Db25maWcKKyAgICAgICAgc3dpdGNoIChyZXMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShzdHJlYW0gIT0gbnVsbHB0cik7CisgICAgICAgICAgICAgICAgYXVkaW9Db25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtID09IG51bGxwdHIpOworICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZ1JldHJ5OworICAgICAgICAgICAgICAgIC8vIENvdWxkIG5vdCBvcGVuIHN0cmVhbSB3aXRoIGNvbmZpZywgdHJ5IGFnYWluIHdpdGggdGhlCisgICAgICAgICAgICAgICAgLy8gc3VnZ2VzdGVkIG9uZQorICAgICAgICAgICAgICAgIEFTU0VSVF9PSygKKyAgICAgICAgICAgICAgICAgICAgb3BlblN0cmVhbShpb0hhbmRsZSwgc3VnZ2VzdGVkQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWdSZXRyeSkpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHRpbWUgaXQgbXVzdCBzdWNjZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX09LKHJlcyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtICE9IG51bGxwdHIpOworICAgICAgICAgICAgICAgIGF1ZGlvQ29uZmlnID0gc3VnZ2VzdGVkQ29uZmlnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIkludmFsaWQgcmV0dXJuIHN0YXR1czogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzKTsKKyAgICAgICAgfQorICAgICAgICBvcGVuID0gdHJ1ZTsKKyAgICB9CisKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZVN0cmVhbSgpIHsKKyAgICAgICAgb3BlbiA9IGZhbHNlOworICAgICAgICByZXR1cm4gc3RyZWFtLT5jbG9zZSgpOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob3BlbikgeworICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+Y2xvc2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICBBdWRpb0NvbmZpZyBhdWRpb0NvbmZpZzsKKyAgICBEZXZpY2VBZGRyZXNzIGFkZHJlc3MgPSB7fTsKKyAgICBzcDxTdHJlYW0+IHN0cmVhbTsKKyAgICBib29sIG9wZW4gPSBmYWxzZTsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuT3V0cHV0U3RyZWFtIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBPdXRwdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1PdXQ+IHsKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKE9wZW5TdHJlYW1UZXN0OjpTZXRVcCgpKTsgIC8vIHNldHVwIGJhc2UKKyAgICAgICAgYWRkcmVzcy5kZXZpY2UgPSBBdWRpb0RldmljZTo6T1VUX0RFRkFVTFQ7CisgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBHZXRQYXJhbSgpOworICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnOjpOT05FOyAgLy8gVE9ETzogdGVzdCBhbGwgZmxhZyBjb21iaW5hdGlvbgorICAgICAgICB0ZXN0T3BlbigKKyAgICAgICAgICAgIFsmXShBdWRpb0lvSGFuZGxlIGhhbmRsZSwgQXVkaW9Db25maWcgY29uZmlnLCBhdXRvIGNiKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRldmljZS0+b3Blbk91dHB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY29uZmlnKTsKKyAgICB9Cit9OworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIE9wZW5PdXRwdXRTdHJlYW1UZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiQ2hlY2sgdGhhdCBvdXRwdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIFNldFVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZE91dHB1dFN0cmVhbUNvbmZpZ1N1cHBvcnQsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRPdXRwdXRTdHJlYW1Db25maWcsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkT3V0cHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgT3V0cHV0U3RyZWFtVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRSZWNvbW1lbmRlZFN1cHBvcnRQbGF5YmFja0F1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIG9wZW5JbnB1dFN0cmVhbSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworY2xhc3MgSW5wdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1Jbj4geworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoT3BlblN0cmVhbVRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorICAgICAgICBhZGRyZXNzLmRldmljZSA9IEF1ZGlvRGV2aWNlOjpJTl9ERUZBVUxUOworICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnID0gR2V0UGFyYW0oKTsKKyAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWc6Ok5PTkU7ICAvLyBUT0RPOiB0ZXN0IGFsbCBmbGFnIGNvbWJpbmF0aW9uCisgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSA9CisgICAgICAgICAgICBBdWRpb1NvdXJjZTo6REVGQVVMVDsgIC8vIFRPRE86IHRlc3QgYWxsIGZsYWcgY29tYmluYXRpb24KKyAgICAgICAgdGVzdE9wZW4oCisgICAgICAgICAgICBbJl0oQXVkaW9Jb0hhbmRsZSBoYW5kbGUsIEF1ZGlvQ29uZmlnIGNvbmZpZywgYXV0byBjYikgeworICAgICAgICAgICAgICAgIHJldHVybiBkZXZpY2UtPm9wZW5JbnB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgY2IpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNvbmZpZyk7CisgICAgfQorfTsKKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgT3BlbklucHV0U3RyZWFtVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIkNoZWNrIHRoYXQgaW5wdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIHNldHVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dFN0cmVhbUNvbmZpZywgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFN1cHBvcnRlZENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkSW5wdXRTdHJlYW1Db25maWdTdXBwb3J0LCBJbnB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSVN0cmVhbSBnZXR0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiogVW5wYWNrIHRoZSBwcm92aWRlZCByZXN1bHQuCisgKiBJZiB0aGUgcmVzdWx0IGlzIG5vdCBPSywgcmVnaXN0ZXIgYSBmYWlsdXJlIGFuZCByZXR1cm4gYW4gdW5kZWZpbmVkIHZhbHVlLiAqLwordGVtcGxhdGUgPGNsYXNzIFI+CitzdGF0aWMgUiBleHRyYWN0KFJldHVybjxSPiByZXQpIHsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIHJldHVybiBSe307CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIENvdWxkIG5vdCBmaW5kIGEgd2F5IHRvIHdyaXRlIGEgdGVzdCBmb3IgdHdvIHBhcmFtZXRyaXplZCBjbGFzcyBmaXh1cmUKKyAqIHRodXMgdXNlIHRoaXMgbWFjcm8gZG8gZHVwbGljYXRlIHRlc3RzIGZvciBJbnB1dCBhbmQgT3V0cHV0IHN0cmVhbSAqLworI2RlZmluZSBURVNUX0lPX1NUUkVBTSh0ZXN0X25hbWUsIGRvY3VtZW50YXRpb24sIGNvZGUpIFwKKyAgICBURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCB0ZXN0X25hbWUpIHsgICAgICAgICAgICAgICBcCisgICAgICAgIGRvYzo6dGVzdChkb2N1bWVudGF0aW9uKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIHRlc3RfbmFtZSkgeyAgICAgICAgICAgICAgXAorICAgICAgICBkb2M6OnRlc3QoZG9jdW1lbnRhdGlvbik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRGcmFtZUNvdW50LAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZnJhbWUgY291bnQgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mcmFtZUNvdW50LCBleHRyYWN0KHN0cmVhbS0+Z2V0RnJhbWVDb3VudCgpKSkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldFNhbXBsZVJhdGUsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBzYW1wbGUgcmF0ZSA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgc3RyZWFtLT5nZXRTYW1wbGVSYXRlKCkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldENoYW5uZWxNYXNrLAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2hhbm5lbCBtYXNrID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICBzdHJlYW0tPmdldENoYW5uZWxNYXNrKCkpCisKK1RFU1RfSU9fU1RSRUFNKEdldEZvcm1hdCwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZm9ybWF0ID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mb3JtYXQsIGV4dHJhY3Qoc3RyZWFtLT5nZXRGb3JtYXQoKSkpKQorCisvLyBUT0RPOiBmb3Igbm93IG9ubHkgY2hlY2sgdGhhdCB0aGUgZnJhbWVzaXplIGlzIG5vdCBpbmNvaGVyZW50CitURVNUX0lPX1NUUkVBTShHZXRGcmFtZVNpemUsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGZyYW1lIHNpemUgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgICAgICAgICAgICAgQVNTRVJUX0dUKGV4dHJhY3Qoc3RyZWFtLT5nZXRGcmFtZVNpemUoKSksIDBVKSkKKworVEVTVF9JT19TVFJFQU0oR2V0QnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gYnVmZmVyIHNpemU9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgICAgICAgICAgICBBU1NFUlRfR0UoZXh0cmFjdChzdHJlYW0tPmdldEJ1ZmZlclNpemUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldEZyYW1lU2l6ZSgpKSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHksIGNsYXNzIENhcGFiaWxpdHlHZXR0ZXIsIGNsYXNzIEdldHRlciwgY2xhc3MgU2V0dGVyPgorc3RhdGljIHZvaWQgdGVzdENhcGFiaWxpdHlHZXR0ZXIoY29uc3Qgc3RyaW5nJiBuYW1lLCBJU3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eSBjdXJyZW50VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXBhYmlsaXR5R2V0dGVyIGNhcGFibGl0eUdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldHRlciBnZXR0ZXIsIFNldHRlciBzZXR0ZXIpIHsKKyAgICBoaWRsX3ZlYzxQcm9wZXJ0eT4gY2FwYWJpbGl0aWVzOworICAgIEFTU0VSVF9PSygoc3RyZWFtLT4qY2FwYWJsaXR5R2V0dGVyKShyZXR1cm5JbihjYXBhYmlsaXRpZXMpKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zaXplKCkgPT0gMCkgeworICAgICAgICAvLyBUaGUgZGVmYXVsdCBoYWwgc2hvdWxkIHByb2JhYmx5IHJldHVybiBhIE5PVF9TVVBQT1JURUQgaWYgdGhlIGhhbAorICAgICAgICAvLyBkb2VzIG5vdCBleHBvc2UKKyAgICAgICAgLy8gY2FwYWJpbGl0eSByZXRyaWV2YWwuIEZvciBub3cgaXQgcmV0dXJucyBhbiBlbXB0eSBsaXN0IGlmIG5vdAorICAgICAgICAvLyBpbXBsZW1lbnRlZAorICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KG5hbWUgKyAiIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH07CisgICAgLy8gVE9ETzogVGhpcyBjb2RlIGhhcyBuZXZlciBiZWVuIHRlc3RlZCBvbiBhIGhhbCB0aGF0IHN1cHBvcnRzCisgICAgLy8gZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMKKyAgICBFWFBFQ1RfTkUoc3RkOjpmaW5kKGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCksIGN1cnJlbnRWYWx1ZSksCisgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5lbmQoKSkKKyAgICAgICAgPDwgImN1cnJlbnQgIiA8PCBuYW1lIDw8ICIgaXMgbm90IGluIHRoZSBsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgb25lcyAiCisgICAgICAgIDw8IHRvU3RyaW5nKGNhcGFiaWxpdGllcyk7CisKKyAgICAvLyBDaGVjayB0aGF0IGFsbCBkZWNsYXJlZCBzdXBwb3J0ZWQgdmFsdWVzIGFyZSBpbmRlZWQgc3VwcG9ydGVkCisgICAgZm9yIChhdXRvIGNhcGFiaWxpdHkgOiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgQVNTRVJUX09LKChzdHJlYW0tPipzZXR0ZXIpKGNhcGFiaWxpdHkpKTsKKyAgICAgICAgQVNTRVJUX0VRKGNhcGFiaWxpdHksIGV4dHJhY3QoKHN0cmVhbS0+KmdldHRlcikoKSkpOworICAgIH0KK30KKworVEVTVF9JT19TVFJFQU0oU3VwcG9ydGVkU2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gc2FtcGxlIHJhdGUgaXMgZGVjbGFyZWQgYXMgc3VwcG9ydGVkIiwKKyAgICAgICAgICAgICAgIHRlc3RDYXBhYmlsaXR5R2V0dGVyKCJnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlIiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldFNhbXBsZVJhdGUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpzZXRTYW1wbGVSYXRlKSkKKworVEVTVF9JT19TVFJFQU0oU3VwcG9ydGVkQ2hhbm5lbE1hc2ssCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGNoYW5uZWwgbWFzayBpcyBkZWNsYXJlZCBhcyBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgICAgdGVzdENhcGFiaWxpdHlHZXR0ZXIoImdldFN1cHBvcnRlZENoYW5uZWxNYXNrIiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldENoYW5uZWxNYXNrKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRDaGFubmVsTWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpzZXRDaGFubmVsTWFzaykpCisKK1RFU1RfSU9fU1RSRUFNKFN1cHBvcnRlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZm9ybWF0IGlzIGRlY2xhcmVkIGFzIHN1cHBvcnRlZCIsCisgICAgICAgICAgICAgICB0ZXN0Q2FwYWJpbGl0eUdldHRlcigiZ2V0U3VwcG9ydGVkRm9ybWF0Iiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldEZvcm1hdCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRTdXBwb3J0ZWRGb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldEZvcm1hdCwgJklTdHJlYW06OnNldEZvcm1hdCkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXREZXZpY2UoSVN0cmVhbSogc3RyZWFtLCBBdWRpb0RldmljZSBleHBlY3RlZERldmljZSkgeworICAgIC8vIFVuZm9ydHVuYXRlbHkgdGhlIGludGVyZmFjZSBkb2VzIG5vdCBhbGxvdyB0aGUgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuCisgICAgLy8gTk9UX1NVUFBPUlRFRAorICAgIC8vIFRodXMgYWxsb3cgTk9ORSBhcyBzaWduYWxpbmcgdGhhdCB0aGUgY2FsbCBpcyBub3Qgc3VwcG9ydGVkLgorICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXREZXZpY2UoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICBBdWRpb0RldmljZSBkZXZpY2UgPSByZXQ7CisgICAgQVNTRVJUX1RSVUUoZGV2aWNlID09IGV4cGVjdGVkRGV2aWNlIHx8IGRldmljZSA9PSBBdWRpb0RldmljZTo6Tk9ORSkKKyAgICAgICAgPDwgIkV4cGVjdGVkOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZERldmljZSkKKyAgICAgICAgPDwgIlxuICBBY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGRldmljZSk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKEdldERldmljZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZGV2aWNlID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpCisgICAgICAgICAgICAgICAgICAgPyBkb2M6OnBhcnRpYWxUZXN0KCJBdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQiKQorICAgICAgICAgICAgICAgICAgIDogdGVzdEdldERldmljZShzdHJlYW0uZ2V0KCksIGFkZHJlc3MuZGV2aWNlKSkKKworc3RhdGljIHZvaWQgdGVzdFNldERldmljZShJU3RyZWFtKiBzdHJlYW0sIGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICBEZXZpY2VBZGRyZXNzIG90aGVyQWRkcmVzcyA9IGFkZHJlc3M7CisgICAgb3RoZXJBZGRyZXNzLmRldmljZSA9IChhZGRyZXNzLmRldmljZSAmIEF1ZGlvRGV2aWNlOjpCSVRfSU4pID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQXVkaW9EZXZpY2U6Ok9VVF9TUEVBS0VSCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvRGV2aWNlOjpJTl9CVUlMVElOX01JQzsKKyAgICBFWFBFQ1RfT0soc3RyZWFtLT5zZXREZXZpY2Uob3RoZXJBZGRyZXNzKSk7CisKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5zZXREZXZpY2UoYWRkcmVzcykpOyAgLy8gR28gYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWUKK30KKworVEVTVF9JT19TVFJFQU0oCisgICAgU2V0RGV2aWNlLAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIHJlcm91dGVkIHRvIFNQRUFLRVIgb3IgQlVJTFRJTl9NSUMiLAorICAgIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpID8gZG9jOjpwYXJ0aWFsVGVzdCgiQXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRlc3RTZXREZXZpY2Uoc3RyZWFtLmdldCgpLCBhZGRyZXNzKSkKKworc3RhdGljIHZvaWQgdGVzdEdldEF1ZGlvUHJvcGVydGllcyhJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBzdHJlYW0tPmdldEF1ZGlvUHJvcGVydGllcyhyZXR1cm5JbihzYW1wbGVSYXRlSHosIG1hc2ssIGZvcm1hdCkpOworfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRBdWRpb1Byb3BlcnRpZXMsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBhdWRpbyBwcm9wZXJ0aWVzID09IHRoZSBvbmVzIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgdGVzdEdldEF1ZGlvUHJvcGVydGllcyhzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgdm9pZCB0ZXN0Q29ubmVjdGVkU3RhdGUoSVN0cmVhbSogc3RyZWFtKSB7CisgICAgRGV2aWNlQWRkcmVzcyBhZGRyZXNzID0ge307CisgICAgdXNpbmcgQUQgPSBBdWRpb0RldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDoKKyAgICAgICAgIHtBRDo6T1VUX0hETUksIEFEOjpPVVRfV0lSRURfSEVBRFBIT05FLCBBRDo6SU5fVVNCX0hFQURTRVR9KSB7CisgICAgICAgIGFkZHJlc3MuZGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIHRydWUpKTsKKyAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q29ubmVjdGVkU3RhdGUoYWRkcmVzcywgZmFsc2UpKTsKKyAgICB9Cit9CitURVNUX0lPX1NUUkVBTShTZXRDb25uZWN0ZWRTdGF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIG5vdGlmaWVkIG9mIGRldmljZSBjb25uZWN0aW9uIGFuZCAiCisgICAgICAgICAgICAgICAiZGVjb25uZWN0aW9uIiwKKyAgICAgICAgICAgICAgIHRlc3RDb25uZWN0ZWRTdGF0ZShzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgYXV0byBpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSyA9IHtSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVELCBSZXN1bHQ6Ok9LfTsKK1RFU1RfSU9fU1RSRUFNKFNldEh3QXZTeW5jLCAiVHJ5IHRvIHNldCBoYXJkd2FyZSBzeW5jIHRvIGFuIGludmFsaWQgdmFsdWUiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5zZXRId0F2U3luYyg2NjYpKSkKKworVEVTVF9JT19TVFJFQU0oR2V0SHdBdlN5bmMsICJHZXQgaGFyZHdhcmUgc3luYyBjYW4gbm90IGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX0lTX09LKGRldmljZS0+Z2V0SHdBdlN5bmMoKSkpOworCitzdGF0aWMgdm9pZCBjaGVja0dldE5vUGFyYW1ldGVyKElTdHJlYW0qIHN0cmVhbSwgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvcjxSZXN1bHQ+IGV4cGVjdGVkUmVzdWx0cykgeworICAgIGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzOworICAgIFJlc3VsdCByZXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0UGFyYW1ldGVycyhrZXlzLCByZXR1cm5JbihyZXMsIHBhcmFtZXRlcnMpKSk7CisgICAgQVNTRVJUX1JFU1VMVChleHBlY3RlZFJlc3VsdHMsIHJlcyk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFyYW1ldGVyIDogcGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKDBVLCBwYXJhbWV0ZXIudmFsdWUuc2l6ZSgpKSA8PCB0b1N0cmluZyhwYXJhbWV0ZXIpOworICAgICAgICB9CisgICAgfQorfQorCisvKiBHZXQvU2V0IHBhcmFtZXRlciBpcyBpbnRlbmRlZCB0byBiZSBhbiBvcGFxdWUgY2hhbm5lbCBiZXR3ZWVuIHZlbmRvcnMgYXBwIGFuZAorICogdGhlaXIgSEFMcy4KKyAqIFRodXMgY2FuIG5vdCBiZSBtZWFuaW5nZnVsbHkgdGVzdGVkLgorICovCitURVNUX0lPX1NUUkVBTShnZXRFbXB0eVNldFBhcmFtZXRlciwgIlJldHJpZXZlIHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IiwKKyAgICAgICAgICAgICAgIGNoZWNrR2V0Tm9QYXJhbWV0ZXIoc3RyZWFtLmdldCgpLCB7fSAvKiBrZXlzICovLCB7UmVzdWx0OjpPS30pKQorCitURVNUX0lPX1NUUkVBTShnZXROb25FeGlzdGluZ1BhcmFtZXRlciwKKyAgICAgICAgICAgICAgICJSZXRyaWV2ZSB0aGUgdmFsdWVzIG9mIGFuIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIiLAorICAgICAgICAgICAgICAgY2hlY2tHZXROb1BhcmFtZXRlcihzdHJlYW0uZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTm9uIGV4aXN0aW5nIGtleSJ9IC8qIGtleXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9KSkKKworVEVTVF9JT19TVFJFQU0oc2V0RW1wdHlTZXRQYXJhbWV0ZXIsCisgICAgICAgICAgICAgICAiU2V0IHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IG9mIHBhcmFtZXRlcnMiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPnNldFBhcmFtZXRlcnMoe30pKSkKKworVEVTVF9JT19TVFJFQU0oCisgICAgc2V0Tm9uRXhpc3RpbmdQYXJhbWV0ZXIsICJTZXQgdGhlIHZhbHVlcyBvZiBhbiBub24gZXhpc3RpbmcgcGFyYW1ldGVyIiwKKyAgICAvLyBVbmZvcnR1bmF0ZWx5LCB0aGUgc2V0X3BhcmFtZXRlciBsZWdhY3kgaW50ZXJmYWNlIGRpZCBub3QgcmV0dXJuIGFueQorICAgIC8vIGVycm9yIGNvZGUgd2hlbiBhIGtleSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFRvIGFsbG93IGltcGxlbWVudGF0aW9uIHRvIGp1c3Qgd3JhcHBlZCB0aGUgbGVnYWN5IG9uZSwgY29uc2lkZXIgT0sgYXMgYQorICAgIC8vIHZhbGlkIHJlc3VsdCBmb3Igc2V0dGluZyBhIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIuCisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgIHN0cmVhbS0+c2V0UGFyYW1ldGVycyh7eyJub24gZXhpc3Rpbmcga2V5IiwgIjAifX0pKSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wLAorICAgICAgICAgICAgICAgIkNoZWNrIHRoYXQgYSBzdHJlYW0gY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiLAorICAgICAgICAgICAgICAgdGVzdERlYnVnRHVtcChbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbS0+ZGVidWdEdW1wKGhhbmRsZSk7CisgICAgICAgICAgICAgICB9KSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPmRlYnVnRHVtcChoaWRsX2hhbmRsZSgpKSkpCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIGFkZFJlbW92ZUVmZmVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9JT19TVFJFQU0oQWRkTm9uRXhpc3RpbmdFZmZlY3QsICJBZGRpbmcgYSBub24gZXhpc3RpbmcgZWZmZWN0IHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9SRVNVTFQoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtLT5hZGRFZmZlY3QoNjY2KSkpCitURVNUX0lPX1NUUkVBTShSZW1vdmVOb25FeGlzdGluZ0VmZmVjdCwKKyAgICAgICAgICAgICAgICJSZW1vdmluZyBhIG5vbiBleGlzdGluZyBlZmZlY3Qgc2hvdWxkIGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPnJlbW92ZUVmZmVjdCg2NjYpKSkKKworLy8gVE9ETzogcG9zaXRpdmUgdGVzdHMKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIENvbnRyb2wgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0lPX1NUUkVBTShzdGFuZGJ5LCAiTWFrZSBzdXJlIHRoZSBzdHJlYW0gY2FuIGJlIHB1dCBpbiBzdGFuYnkiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c3RhbmRieSgpKSkgIC8vIGNhbiBub3QgZmFpbAorCitzdGF0aWMgdmVjdG9yPFJlc3VsdD4gaW52YWxpZFN0YXRlT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisKK1RFU1RfSU9fU1RSRUFNKHN0YXJ0Tm9NbWFwLAorICAgICAgICAgICAgICAgIlN0YXJ0aW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0YXJ0KCkpKQorCitURVNUX0lPX1NUUkVBTShzdG9wTm9NbWFwLAorICAgICAgICAgICAgICAgIlN0b3BwaW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGdldE1tYXBQb3NpdGlvbk5vTW1hcCwKKyAgICAgICAgICAgICAgICJHZXQgYSBzdHJlYW0gTW1hcCBwb3NpdGlvbiBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGNsb3NlLCAiTWFrZSBzdXJlIGEgc3RyZWFtIGNhbiBiZSBjbG9zZWQiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKGNsb3NlU3RyZWFtKCkpKQorVEVTVF9JT19TVFJFQU0oY2xvc2VUd2ljZSwgIk1ha2Ugc3VyZSBhIHN0cmVhbSBjYW4gbm90IGJlIGNsb3NlZCB0d2ljZSIsCisgICAgICAgICAgICAgICBBU1NFUlRfT0soY2xvc2VTdHJlYW0oKSk7CisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgY2xvc2VTdHJlYW0oKSkpCisKK3N0YXRpYyBhdXRvIGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVEfTsKK3N0YXRpYyB2b2lkIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKElTdHJlYW0qIHN0cmVhbSkgeworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgUmVzdWx0IHJlczsKKyAgICAvLyBBc3N1bWUgdGhhdCBpbnQgbWF4IGlzIGEgdmFsdWUgdG9vIGJpZyB0byBiZSBhbGxvY2F0ZWQKKyAgICAvLyBUaGlzIGlzIHRydWUgY3VycmVudGx5IHdpdGggYSAzMmJpdCBtZWRpYSBzZXJ2ZXIsIGJ1dCBtaWdodCBub3Qgd2hlbiBpdAorICAgIC8vIHdpbGwgcnVuIGluIDY0IGJpdAorICAgIGF1dG8gbWluU2l6ZUZyYW1lcyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmNyZWF0ZU1tYXBCdWZmZXIobWluU2l6ZUZyYW1lcywgcmV0dXJuSW4ocmVzLCBpbmZvKSkpOworICAgIEFTU0VSVF9SRVNVTFQoaW52YWxpZEFyZ3NPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworVEVTVF9JT19TVFJFQU0oQ3JlYXRlVG9vQmlnTW1hcEJ1ZmZlciwgIkNyZWF0ZSBtbWFwIGJ1ZmZlciB0b28gYmlnIHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKHN0cmVhbS5nZXQoKSkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICBSZXN1bHQgcmVzOworICAgIE1tYXBQb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRNbWFwUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBwb3NpdGlvbikpKTsKKyAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQsIHJlcyk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldE1tYXBQb3NpdGlvbk9mTm9uTW1hcGVkU3RyZWFtLAorICAgICJSZXRyaWV2aW5nIHRoZSBtbWFwIHBvc2l0aW9uIG9mIGEgbm9uIG1tYXBlZCBzdHJlYW0gc2hvdWxkIGZhaWwiLAorICAgIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShzdHJlYW0uZ2V0KCkpKQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBTdHJlYW1JbiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldEF1ZGlvU291cmNlKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUmV0cmlldmluZyB0aGUgYXVkaW8gc291cmNlIG9mIGFuIGlucHV0IHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQiKTsKKyAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0QXVkaW9Tb3VyY2UocmV0dXJuSW4ocmVzLCBzb3VyY2UpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0QXVkaW9Tb3VyY2UgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXMpOworICAgIEFTU0VSVF9FUShBdWRpb1NvdXJjZTo6REVGQVVMVCwgc291cmNlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFVuaXRhcnlHYWluKHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluKSB7CisgICAgZm9yIChmbG9hdCB2YWx1ZSA6CisgICAgICAgICAoZmxvYXRbXSl7LUlORklOSVRZLCAtMS4wLCAxLjAgKyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpLAorICAgICAgICAgICAgICAgICAgIDIuMCwgSU5GSU5JVFksIE5BTn0pIHsKKyAgICAgICAgRVhQRUNUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBzZXRHYWluKHZhbHVlKSkgPDwgInZhbHVlPSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgdmFsdWU7CisgICAgfQorICAgIC8vIERvIG5vdCBjb25zaWRlciAtMC4wIGFzIGFuIGludmFsaWQgdmFsdWUgYXMgaXQgaXMgPT0gd2l0aCAwLjAKKyAgICBmb3IgKGZsb2F0IHZhbHVlIDogey0wLjAsIDAuMCwgMC4wMSwgMC41LCAwLjA5LCAxLjAgLyogUmVzdG9yZSB2b2x1bWUqL30pIHsKKyAgICAgICAgRVhQRUNUX09LKHNldEdhaW4odmFsdWUpKSA8PCAidmFsdWU9IiA8PCB2YWx1ZTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RPcHRpb25hbFVuaXRhcnlHYWluKAorICAgIHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluLCBzdHJpbmcgZGVidWdOYW1lKSB7CisgICAgYXV0byByZXN1bHQgPSBzZXRHYWluKDEpOworICAgIEFTU0VSVF9JU19PSyhyZXN1bHQpOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoZGVidWdOYW1lICsgIiBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFVuaXRhcnlHYWluKHNldEdhaW4pOworfQorCitURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCBTZXRHYWluKSB7CisgICAgZG9jOjp0ZXN0KCJUaGUgZ2FpbiBvZiBhbiBpbnB1dCBzdHJlYW0gc2hvdWxkIG9ubHkgYmUgc2V0IGJldHdlZW4gWzAsMV0iKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRHYWluKHZvbHVtZSk7IH0sCisgICAgICAgICJJbnB1dFN0cmVhbTo6c2V0R2FpbiIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0UHJlcGFyZUZvclJlYWRpbmcoSVN0cmVhbUluKiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvclJlYWRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aFplcm9CdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDAgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMCwgMCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aEh1Z2VCdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDJeMzIgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgUHJlcGFyZUZvclJlYWRpbmdDaGVja092ZXJmbG93KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciByZWFkaW5nIHdpdGggYSBvdmVyZmxvd2luZyBzaXplZCBidWZmZXIgc2hvdWxkICIKKyAgICAgICAgImZhaWwiKTsKKyAgICBhdXRvIHVpbnRNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgdWludE1heCwgdWludE1heCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldElucHV0RnJhbWVzTG9zdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlRoZSBudW1iZXIgb2YgZnJhbWVzIGxvc3Qgb24gYSBuZXZlciBzdGFydGVkIHN0cmVhbSBzaG91bGQgYmUgMCIpOworICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXRJbnB1dEZyYW1lc0xvc3QoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICB1aW50MzJfdCBmcmFtZXNMb3N0e3JldH07CisgICAgQVNTRVJUX0VRKDBVLCBmcmFtZXNMb3N0KTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgZ2V0Q2FwdHVyZVBvc2l0aW9uKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiVGhlIGNhcHR1cmUgcG9zaXRpb24gb2YgYSBub24gcHJlcGFyZWQgc3RyZWFtIHNob3VsZCBub3QgYmUgIgorICAgICAgICAicmV0cmlldmFibGUiKTsKKyAgICB1aW50NjRfdCBmcmFtZXM7CisgICAgdWludDY0X3QgdGltZTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRDYXB0dXJlUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBmcmFtZXMsIHRpbWUpKSk7CisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkU3RhdGVPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU3RyZWFtSW4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgZ2V0TGF0ZW5jeSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIGxhdGVuY3kgaXMgb3ZlciAwIik7CisgICAgYXV0byByZXN1bHQgPSBzdHJlYW0tPmdldExhdGVuY3koKTsKKyAgICBBU1NFUlRfSVNfT0socmVzdWx0KTsKKyAgICBBU1NFUlRfR1QocmVzdWx0LCAwVSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBzZXRWb2x1bWUpIHsKKyAgICBkb2M6OnRlc3QoIlRyeSB0byBzZXQgdGhlIG91dHB1dCB2b2x1bWUiKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRWb2x1bWUodm9sdW1lLCB2b2x1bWUpOyB9LAorICAgICAgICAic2V0Vm9sdW1lIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhJU3RyZWFtT3V0KiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvcldyaXRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGVXaXRoWmVyb0J1ZmZlcikgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlByZXBhcmluZyBhIHN0cmVhbSBmb3Igd3JpdGluZyB3aXRoIGEgMCBzaXplZCBidWZmZXIgc2hvdWxkIGZhaWwiKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCAwLCAwKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JXcml0ZVdpdGhIdWdlQnVmZmVyKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciB3cml0aW5nIHdpdGggYSAyXjMyIHNpemVkIGJ1ZmZlciBzaG91bGQgZmFpbCIpOworICAgIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhzdHJlYW0uZ2V0KCksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGluZ0NoZWNrT3ZlcmZsb3cpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHdyaXRpbmcgd2l0aCBhIG92ZXJmbG93aW5nIHNpemVkIGJ1ZmZlciBzaG91bGQgIgorICAgICAgICAiZmFpbCIpOworICAgIGF1dG8gdWludE1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCB1aW50TWF4LCB1aW50TWF4KTsKK30KKworc3RydWN0IENhcGFiaWxpdHkgeworICAgIENhcGFiaWxpdHkoSVN0cmVhbU91dCogc3RyZWFtKSB7CisgICAgICAgIEVYUEVDVF9PSyhzdHJlYW0tPnN1cHBvcnRzUGF1c2VBbmRSZXN1bWUocmV0dXJuSW4ocGF1c2UsIHJlc3VtZSkpKTsKKyAgICAgICAgYXV0byByZXQgPSBzdHJlYW0tPnN1cHBvcnRzRHJhaW4oKTsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIGlmIChyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBkcmFpbiA9IHJldDsKKyAgICAgICAgfQorICAgIH0KKyAgICBib29sIHBhdXNlID0gZmFsc2U7CisgICAgYm9vbCByZXN1bWUgPSBmYWxzZTsKKyAgICBib29sIGRyYWluID0gZmFsc2U7Cit9OworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgU3VwcG9ydHNQYXVzZUFuZFJlc3VtZUFuZERyYWluKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW1wbGVtZW50YXRpb24gbXVzdCBleHBvc2UgcGF1c2UsIHJlc3VtZSBhbmQgZHJhaW4gY2FwYWJpbGl0aWVzIik7CisgICAgQ2FwYWJpbGl0eShzdHJlYW0uZ2V0KCkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVmFsdWU+CitzdGF0aWMgdm9pZCBjaGVja0ludmFsaWRTdGF0ZU9yMChSZXN1bHQgcmVzLCBWYWx1ZSB2YWx1ZSkgeworICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgIGNhc2UgUmVzdWx0OjpJTlZBTElEX1NUQVRFOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgIEFTU0VSVF9FUSgwVSwgdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgcmVzdWx0ICIgPDwgdG9TdHJpbmcocmVzKTsKKyAgICB9Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXRSZW5kZXJQb3NpdGlvbikgeworICAgIGRvYzo6dGVzdCgiQSBuZXcgc3RyZWFtIHJlbmRlciBwb3NpdGlvbiBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDMyX3QgZHNwRnJhbWVzOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmdldFJlbmRlclBvc2l0aW9uKHJldHVybkluKHJlcywgZHNwRnJhbWVzKSkpOworICAgIGlmIChyZXMgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoImdldFJlbmRlclBvc2l0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIGRzcEZyYW1lcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXROZXh0V3JpdGVUaW1lc3RhbXApIHsKKyAgICBkb2M6OnRlc3QoIkEgbmV3IHN0cmVhbSBuZXh0IHdyaXRlIHRpbWVzdGFtcCBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDY0X3QgdGltZXN0YW1wVXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0TmV4dFdyaXRlVGltZXN0YW1wKHJldHVybkluKHJlcywgdGltZXN0YW1wVXMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0TmV4dFdyaXRlVGltZXN0YW1wIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIHRpbWVzdGFtcFVzKTsKK30KKworLyoqIFN0dWIgaW1wbGVtZW50YXRpb24gb2Ygb3V0IHN0cmVhbSBjYWxsYmFjay4gKi8KK2NsYXNzIE1vY2tPdXRDYWxsYmFja3MgOiBwdWJsaWMgSVN0cmVhbU91dENhbGxiYWNrIHsKKyAgICBSZXR1cm48dm9pZD4gb25Xcml0ZVJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25EcmFpblJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25FcnJvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHt9OyB9Cit9OworCitzdGF0aWMgYm9vbCBpc0FzeW5jTW9kZVN1cHBvcnRlZChJU3RyZWFtT3V0KiBzdHJlYW0pIHsKKyAgICBhdXRvIHJlcyA9IHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpOworICAgIHN0cmVhbS0+Y2xlYXJDYWxsYmFjaygpOyAgLy8gdHJ5IHRvIHJlc3RvcmUgdGhlIG5vIGNhbGxiYWNrIHN0YXRlLCBpZ25vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFueSBlcnJvcgorICAgIGF1dG8gb2tPck5vdFN1cHBvcnRlZCA9IHtSZXN1bHQ6Ok9LLCBSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9OworICAgIEVYUEVDVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzKTsKKyAgICByZXR1cm4gcmVzLmlzT2soKSA/IHJlcyA9PSBSZXN1bHQ6Ok9LIDogZmFsc2U7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBTZXRDYWxsYmFjaykgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklmIHN1cHBvcnRlZCwgcmVnaXN0ZXJpbmcgY2FsbGJhY2sgZm9yIGFzeW5jIG9wZXJhdGlvbiBzaG91bGQgbmV2ZXIgIgorICAgICAgICAiZmFpbCIpOworICAgIGlmICghaXNBc3luY01vZGVTdXBwb3J0ZWQoc3RyZWFtLmdldCgpKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgYXN5bmMgb3BlcmF0aW9ucyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENhbGxiYWNrKG5ldyBNb2NrT3V0Q2FsbGJhY2tzKSk7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIGNsZWFyQ2FsbGJhY2spIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGNsZWFyaW5nIGEgY2FsbGJhY2sgdG8gZ28gYmFjayB0byBzeW5jIG9wZXJhdGlvbiBzaG91bGQgIgorICAgICAgICAibm90IGZhaWwiKTsKKyAgICBpZiAoIWlzQXN5bmNNb2RlU3VwcG9ydGVkKHN0cmVhbS5nZXQoKSkpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiVGhlIHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGFzeW5jIG9wZXJhdGlvbnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUT0RPOiBDbGFyaWZ5IGlmIGNsZWFyaW5nIGEgbm9uIGV4aXN0aW5nIGNhbGxiYWNrIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5jbGVhckNhbGxiYWNrKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUmVzdW1lKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgZmFpbCB0byByZXN1bWUgaWYgbm90IHByZXZpb3VzbHkgIgorICAgICAgICAicGF1c2VkIik7CisgICAgaWYgKCFDYXBhYmlsaXR5KHN0cmVhbS5nZXQoKSkucmVzdW1lKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoIlRoZSBvdXRwdXQgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgcmVzdW1lIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUGF1c2UpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBmYWlsIHRvIHBhdXNlIGlmIG5vdCBwcmV2aW91c2x5ICIKKyAgICAgICAgInN0YXJ0ZWQiKTsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtLmdldCgpKS5wYXVzZSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IHBhdXNlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0RHJhaW4oSVN0cmVhbU91dCogc3RyZWFtLCBBdWRpb0RyYWluIHR5cGUpIHsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtKS5kcmFpbikgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGRyYWluIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPmRyYWluKHR5cGUpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIERyYWluQWxsKSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkFMTCk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBEcmFpbkVhcmx5Tm90aWZ5KSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkVBUkxZX05PVElGWSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBGbHVzaFN0b3ApIHsKKyAgICBkb2M6OnRlc3QoIklmIHN1cHBvcnRlZCwgYSBzdHJlYW0gc2hvdWxkIGFsd2F5cyBzdWNjZWVkIHRvIGZsdXNoIik7CisgICAgYXV0byByZXQgPSBzdHJlYW0tPmZsdXNoKCk7CisgICAgQVNTRVJUX0lTX09LKHJldCk7CisgICAgaWYgKHJldCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiRmx1c2ggaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXQpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgR2V0UHJlc2VudGF0aW9uUG9zaXRpb25TdG9wKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQgdG8gcmV0cmlldmUgdGhlICIKKyAgICAgICAgInByZXNlbnRhdGlvbiBwb3NpdGlvbiIpOworICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICBUaW1lU3BlYyBtZXN1cmVUUzsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRQcmVzZW50YXRpb25Qb3NpdGlvbihyZXR1cm5JbihyZXMsIGZyYW1lcywgbWVzdXJlVFMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0cHJlc2VudGF0aW9uUG9zaXRpb24gaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9FUSgwVSwgZnJhbWVzKTsKKworICAgIGlmIChtZXN1cmVUUy50dk5TZWMgPT0gMCAmJiBtZXN1cmVUUy50dlNlYyA9PSAwKSB7CisgICAgICAgIC8vIEFzIHRoZSBzdHJlYW0gaGFzIG5ldmVyIHdyaXR0ZW4gYSBmcmFtZSB5ZXQsCisgICAgICAgIC8vIHRoZSB0aW1lc3RhbXAgZG9lcyBub3QgcmVhbGx5IGhhdmUgYSBtZWFuaW5nLCBhbGxvdyB0byByZXR1cm4gMAorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gTWFrZSBzdXJlIHRoZSByZXR1cm4gbWVhc3VyZSBpcyBub3QgbW9yZSB0aGFuIDFzIG9sZC4KKyAgICBzdHJ1Y3QgdGltZXNwZWMgY3VycmVudFRTOworICAgIEFTU0VSVF9FUSgwLCBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJmN1cnJlbnRUUykpIDw8IGVycm5vOworCisgICAgYXV0byB0b01pY3JvU2VjID0gW10odWludDY0X3Qgc2VjLCBhdXRvIG5zZWMpIHsKKyAgICAgICAgcmV0dXJuIHNlYyAqIDFlKzYgKyBuc2VjIC8gMWUrMzsKKyAgICB9OworICAgIGF1dG8gY3VycmVudFRpbWUgPSB0b01pY3JvU2VjKGN1cnJlbnRUUy50dl9zZWMsIGN1cnJlbnRUUy50dl9uc2VjKTsKKyAgICBhdXRvIG1lc3VyZVRpbWUgPSB0b01pY3JvU2VjKG1lc3VyZVRTLnR2U2VjLCBtZXN1cmVUUy50dk5TZWMpOworICAgIEFTU0VSVF9QUkVEMihbXShhdXRvIGMsIGF1dG8gbSkgeyByZXR1cm4gYyAtIG0gPCAxZSs2OyB9LCBjdXJyZW50VGltZSwKKyAgICAgICAgICAgICAgICAgbWVzdXJlVGltZSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBQcmltYXJ5RGV2aWNlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBzZXRWb2ljZVZvbHVtZSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIHNldFZvaWNlVm9sdW1lIG9ubHkgc3VjY2VlZCBpZiB2b2x1bWUgaXMgaW4gWzAsMV0iKTsKKyAgICB0ZXN0VW5pdGFyeUdhaW4oCisgICAgICAgIFt0aGlzXShmbG9hdCB2b2x1bWUpIHsgcmV0dXJuIGRldmljZS0+c2V0Vm9pY2VWb2x1bWUodm9sdW1lKTsgfSk7Cit9CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgc2V0TW9kZSkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIk1ha2Ugc3VyZSBzZXRNb2RlIGFsd2F5cyBzdWNjZWVkcyBpZiBtb2RlIGlzIHZhbGlkICIKKyAgICAgICAgImFuZCBmYWlscyBvdGhlcndpc2UiKTsKKyAgICAvLyBUZXN0IEludmFsaWQgdmFsdWVzCisgICAgZm9yIChBdWRpb01vZGUgbW9kZSA6CisgICAgICAgICB7QXVkaW9Nb2RlOjpJTlZBTElELCBBdWRpb01vZGU6OkNVUlJFTlQsIEF1ZGlvTW9kZTo6Q05UfSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIm1vZGU9IiArIHRvU3RyaW5nKG1vZGUpKTsKKyAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBkZXZpY2UtPnNldE1vZGUobW9kZSkpOworICAgIH0KKyAgICAvLyBUZXN0IHZhbGlkIHZhbHVlcworICAgIGZvciAoQXVkaW9Nb2RlIG1vZGUgOgorICAgICAgICAge0F1ZGlvTW9kZTo6SU5fQ0FMTCwgQXVkaW9Nb2RlOjpJTl9DT01NVU5JQ0FUSU9OLCBBdWRpb01vZGU6OlJJTkdUT05FLAorICAgICAgICAgIEF1ZGlvTW9kZTo6Tk9STUFMIC8qIE1ha2Ugc3VyZSB0byBsZWF2ZSB0aGUgdGVzdCBpbiBub3JtYWwgbW9kZSAqL30pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJtb2RlPSIgKyB0b1N0cmluZyhtb2RlKSk7CisgICAgICAgIEFTU0VSVF9PSyhkZXZpY2UtPnNldE1vZGUobW9kZSkpOworICAgIH0KK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgQnRTY29OcmVjRW5hYmxlZCkgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgQlQgU0NPIE5SJkVDIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJCdFNjb05yZWNFbmFibGVkIiwge3RydWUsIGZhbHNlLCB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb05yZWNFbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSVByaW1hcnlEZXZpY2U6OmdldEJ0U2NvTnJlY0VuYWJsZWQpOworfQorCitURVNUX0YoQm9vbEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBzZXRHZXRCdFNjb1dpZGViYW5kRW5hYmxlZCkgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgU0NPIHdoaWRlYmFuZCBzdGF0ZSIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygiQnRTY29XaWRlYmFuZCIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0QnRTY29XaWRlYmFuZEVuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6Z2V0QnRTY29XaWRlYmFuZEVuYWJsZWQpOworfQorCit1c2luZyBUdHlNb2RlQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QgPSBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdDxUdHlNb2RlPjsKK1RFU1RfRihUdHlNb2RlQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIHNldEdldFR0eU1vZGUpIHsKKyAgICBkb2M6OnRlc3QoIlF1ZXJ5IGFuZCBzZXQgdGhlIFRUWSBtb2RlIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKAorICAgICAgICAiVFRZIG1vZGUiLCB7VHR5TW9kZTo6T0ZGLCBUdHlNb2RlOjpIQ08sIFR0eU1vZGU6OlZDTywgVHR5TW9kZTo6RlVMTH0sCisgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0VHR5TW9kZSwgJklQcmltYXJ5RGV2aWNlOjpnZXRUdHlNb2RlKTsKK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgc2V0R2V0SGFjKSB7CisgICAgZG9jOjp0ZXN0KCJRdWVyeSBhbmQgc2V0IHRoZSBIQUMgc3RhdGUiKTsKKyAgICB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoIkhBQyIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0SGFjRW5hYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpnZXRIYWNFbmFibGVkKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLyBDbGVhbiBjYWNoZXMgb24gZ2xvYmFsIHRlYXIgZG93biAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBlbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudDsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L0Fzc2VydE9rLmggYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9Bc3NlcnRPay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjODQ0MGUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9Bc3NlcnRPay5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gVGhpcyBpcyBhIGRldGFpbCBuYW1lc3BhY2UsIHRodXMgaXQgaXMgT0sgdG8gaW1wb3J0IGEgY2xhc3MgYXMgbm9ib2R5IGVsc2UgaXMKKy8vIGFsbG93ZWQgdG8gdXNlIGl0Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRJc09rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXR1cm48VD4mIHJldCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChyZXQuaXNPaygpKQorICAgICAgICAgICA8PCAiRXhwZWN0ZWQ6ICIgPDwgZXhwcgorICAgICAgICAgICA8PCAiXG4gdG8gYmUgYW4gT0sgUmV0dXJuIGJ1dCBpdCBpcyBub3Q6ICIgPDwgcmV0LmRlc2NyaXB0aW9uKCk7Cit9CisKKy8vIENhbGwgY29udGludWF0aW9uIGlmIHRoZSBwcm92aWRlZCByZXN1bHQgaXNPawordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIENvbnRpbnVhdGlvbj4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBjb250aW51ZUlmSXNPayhjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxUPiYgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVhdGlvbiBjb250aW51YXRpb24pIHsKKyAgICBhdXRvIGlzT2tTdGF0dXMgPSBhc3NlcnRJc09rKGV4cHIsIHJldCk7CisgICAgcmV0dXJuICFpc09rU3RhdHVzID8gaXNPa1N0YXR1cyA6IGNvbnRpbnVhdGlvbigpOworfQorCisvLyBFeHBlY3QgdHdvIGVxdWFsIFJlc3VsdHMKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoY29uc3QgY2hhciogZV9leHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCBleHBlY3RlZCwgUmVzdWx0IHJlc3VsdCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChleHBlY3RlZCA9PSByZXN1bHQpCisgICAgICAgICAgIDw8ICJWYWx1ZSBvZjogIiA8PCByX2V4cHIKKyAgICAgICAgICAgPDwgIlxuICBBY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlc3VsdCkKKyAgICAgICAgICAgPDwgIlxuRXhwZWN0ZWQ6ICIgPDwgZV9leHByCisgICAgICAgICAgIDw8ICJcbldoaWNoIGlzOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZCk7Cit9CisKKy8vIEV4cGVjdCB0d28gZXF1YWwgUmVzdWx0cyBvbmUgYmVpbmcgd3JhcHBlZCBpbiBhbiBPSyBSZXR1cm4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoY29uc3QgY2hhciogZV9leHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhyX2V4cHIsIHJldCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGFzc2VydFJlc3VsdChlX2V4cHIsIHJfZXhwciwgZXhwZWN0ZWQsIFJlc3VsdHtyZXR9KTsKKyAgICB9KTsKK30KKworLy8gRXhwZWN0IGEgUmVzdWx0IHRvIGJlIHBhcnQgb2YgYSBsaXN0IG9mIFJlc3VsdHMKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoCisgICAgY29uc3QgY2hhciogZV9leHByLCBjb25zdCBjaGFyKiByX2V4cHIsIGNvbnN0IHN0ZDo6dmVjdG9yPFJlc3VsdD4mIGV4cGVjdGVkLAorICAgIFJlc3VsdCByZXN1bHQpIHsKKyAgICBpZiAoc3RkOjpmaW5kKGV4cGVjdGVkLmJlZ2luKCksIGV4cGVjdGVkLmVuZCgpLCByZXN1bHQpICE9IGV4cGVjdGVkLmVuZCgpKSB7CisgICAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsgIC8vIHJlc3VsdCBpcyBpbiBleHBlY3RlZAorICAgIH0KKyAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkKKyAgICAgICAgICAgPDwgIlZhbHVlIG9mOiAiIDw8IHJfZXhwcgorICAgICAgICAgICA8PCAiXG4gIEFjdHVhbDogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzdWx0KQorICAgICAgICAgICA8PCAiXG5FeHBlY3RlZCBvbmUgb2Y6ICIgPDwgZV9leHByCisgICAgICAgICAgIDw8ICJcbiAgICAgICBXaGljaCBpczogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoZXhwZWN0ZWQpOworfQorCisvLyBFeHBlY3QgYSBSZXN1bHQgd3JhcHBlZCBpbiBhbiBPSyBSZXR1cm4gdG8gYmUgcGFydCBvZiBhIGxpc3Qgb2YgUmVzdWx0cworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydFJlc3VsdCgKKyAgICBjb25zdCBjaGFyKiBlX2V4cHIsIGNvbnN0IGNoYXIqIHJfZXhwciwgY29uc3Qgc3RkOjp2ZWN0b3I8UmVzdWx0PiYgZXhwZWN0ZWQsCisgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhyX2V4cHIsIHJldCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGFzc2VydFJlc3VsdChlX2V4cHIsIHJfZXhwciwgZXhwZWN0ZWQsIFJlc3VsdHtyZXR9KTsKKyAgICB9KTsKK30KKworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydE9rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPHZvaWQ+JiByZXQpIHsKKyAgICByZXR1cm4gYXNzZXJ0SXNPayhleHByLCByZXQpOworfQorCitpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0T2soY29uc3QgY2hhciogZXhwciwgUmVzdWx0IHJlc3VsdCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChyZXN1bHQgPT0gUmVzdWx0OjpPSykKKyAgICAgICAgICAgPDwgIkV4cGVjdGVkIHN1Y2Nlc3M6ICIgPDwgZXhwcgorICAgICAgICAgICA8PCAiXG5BY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlc3VsdCk7Cit9CisKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRPayhjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxSZXN1bHQ+JiByZXQpIHsKKyAgICByZXR1cm4gY29udGludWVJZklzT2soZXhwciwgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0geyByZXR1cm4gYXNzZXJ0T2soZXhwciwgUmVzdWx0e3JldH0pOyB9KTsKK30KK30KKworI2RlZmluZSBBU1NFUlRfSVNfT0socmV0KSBBU1NFUlRfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0SXNPaywgcmV0KQorI2RlZmluZSBFWFBFQ1RfSVNfT0socmV0KSBFWFBFQ1RfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0SXNPaywgcmV0KQorCisvLyBUZXN0IGFueXRoaW5nIHByb3ZpZGVkIGlzIGFuZCBjb250YWlucyBvbmx5IE9LCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9QUkVEX0ZPUk1BVDEoZGV0YWlsOjphc3NlcnRPaywgcmV0KQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0T2ssIHJldCkKKworI2RlZmluZSBBU1NFUlRfUkVTVUxUKGV4cGVjdGVkLCByZXQpIFwKKyAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKGRldGFpbDo6YXNzZXJ0UmVzdWx0LCBleHBlY3RlZCwgcmV0KQorI2RlZmluZSBFWFBFQ1RfUkVTVUxUKGV4cGVjdGVkLCByZXQpIFwKKyAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKGRldGFpbDo6YXNzZXJ0UmVzdWx0LCBleHBlY3RlZCwgcmV0KQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmggYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9QcmV0dHlQcmludEF1ZGlvVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjVjZDFjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKKy8qKiBAZmlsZSBVc2UgSElETCBnZW5lcmF0ZWQgdG9TdHJpbmcgbWV0aG9kcyB0byBwcmV0dHkgcHJpbnQgZ3Rlc3QgZXJyb3JzICovCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBQcmludCB0aGUgdmFsdWUgb2YgYW4gZW51bSBhcyBoZXgKK3RlbXBsYXRlIDxjbGFzcyBFbnVtPgoraW5saW5lIHZvaWQgcHJpbnRVbmRlcmx5aW5nVmFsdWUoRW51bSB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHN0ZDo6aGV4IDw8ICIgKDB4IiA8PCBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZV90PEVudW0+Pih2YWx1ZSkgPDwgIikiOworfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgUmVzdWx0JiByZXN1bHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhyZXN1bHQpOworICAgIGRldGFpbDo6cHJpbnRVbmRlcmx5aW5nVmFsdWUocmVzdWx0LCBvcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFYyXzAKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYyXzAgeworCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhjb25maWcpOworfQorCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IEF1ZGlvRGV2aWNlJiBkZXZpY2UsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhkZXZpY2UpOworICAgIGRldGFpbDo6cHJpbnRVbmRlcmx5aW5nVmFsdWUoZGV2aWNlLCBvcyk7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgQXVkaW9DaGFubmVsTWFzayYgY2hhbm5lbE1hc2ssIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhjaGFubmVsTWFzayk7CisgICAgZGV0YWlsOjpwcmludFVuZGVybHlpbmdWYWx1ZShjaGFubmVsTWFzaywgb3MpOworfQorCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGF1ZGlvCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUmV0dXJuSW4uaCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1JldHVybkluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIyMzg5YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1JldHVybkluLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx0dXBsZT4KKworbmFtZXNwYWNlIHV0aWxpdHkgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKy8vIEhlbHBlciBjbGFzcyB0byBnZW5lcmF0ZSB0aGUgSElETCBzeW5jaHJvbm91cyBjYWxsYmFjawordGVtcGxhdGUgPGNsYXNzLi4uIFJlc3VsdFN0b3JlPgorY2xhc3MgUmV0dXJuSW4geworIHB1YmxpYzoKKyAgICAvLyBQcm92aWRlIHRvIHRoZSBjb25zdHJ1Y3RvciB0aGUgdmFyaWFibGVzIHdoZXJlIHRoZSBvdXRwdXQgcGFyYW1ldGVycyBtdXN0IGJlIGNvcGllZAorICAgIC8vIFRPRE86IHRha2UgcG9pbnRlcnMgdG8gbWF0Y2ggZ29vZ2xlIG91dHB1dCBwYXJhbWV0ZXIgc3R5bGUgPworICAgIFJldHVybkluKFJlc3VsdFN0b3JlJi4uLiB0cykgOiByZXN1bHRzKHRzLi4uKSB7fQorICAgIC8vIFN5bmNocm9ub3VzIGNhbGxiYWNrCisgICAgdGVtcGxhdGUgPGNsYXNzLi4uIFJlc3VsdHM+CisgICAgdm9pZCBvcGVyYXRvcigpIChSZXN1bHRzJiYuLi5yZXN1bHRzKSB7CisgICAgICAgIHNldChzdGQ6OmZvcndhcmQ8UmVzdWx0cz4ocmVzdWx0cykuLi4pOworICAgIH0KKyBwcml2YXRlOgorICAgIC8vIFJlY3Vyc2l2ZWx5IHNldCBhbGwgb3V0cHV0IHBhcmFtZXRlcnMKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSGVhZCwgY2xhc3MuLi4gVGFpbD4KKyAgICB2b2lkIHNldChIZWFkJiYgaGVhZCwgVGFpbCYmLi4uIHRhaWwpIHsKKyAgICAgICAgc3RkOjpnZXQ8c2l6ZW9mLi4uKFJlc3VsdFN0b3JlKSAtIHNpemVvZi4uLihUYWlsKSAtIDE+KHJlc3VsdHMpCisgICAgICAgICAgICAgICAgICA9IHN0ZDo6Zm9yd2FyZDxIZWFkPihoZWFkKTsKKyAgICAgICAgc2V0KHRhaWwuLi4pOworICAgIH0KKyAgICAvLyBUcml2aWFsIGNhc2UKKyAgICB2b2lkIHNldCgpIHt9CisKKyAgICAvLyBBbGwgdmFyaWFibGVzIHRvIHNldCBhcmUgc3RvcmVkIGhlcmUKKyAgICBzdGQ6OnR1cGxlPFJlc3VsdFN0b3JlJi4uLj4gcmVzdWx0czsKK307Cit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gR2VuZXJhdGUgdGhlIEhJREwgc3luY2hyb25vdXMgY2FsbGJhY2sgd2l0aCBhIGNvcHkgcG9saWN5CisvLyBJbnB1dDogdGhlIHZhcmlhYmxlcyAobHZhbHVlIHJlZmVyZW5jZSkgd2hlcmUgdG8gc2F2ZSB0aGUgcmV0dXJuIHZhbHVlcworLy8gT3V0cHV0OiB0aGUgY2FsbGJhY2sgdG8gcHJvdmlkZSB0byBhIEhJREwgY2FsbCB3aXRoIGEgc3luY2hyb25vdXMgY2FsbGJhY2sKKy8vIFRoZSBvdXRwdXQgcGFyYW1ldGVycyAqd2lsbCBiZSBjb3BpZWQqIGRvIG5vdCB1c2UgdGhpcyBmdW5jdGlvbiBpZiB5b3UgaGF2ZQorLy8gYSB6ZXJvIGNvcHkgcG9saWN5Cit0ZW1wbGF0ZSA8Y2xhc3MuLi4gUmVzdWx0U3RvcmU+CitkZXRhaWw6OlJldHVybkluPFJlc3VsdFN0b3JlLi4uPiByZXR1cm5JbihSZXN1bHRTdG9yZSYuLi4gdHMpIHsgcmV0dXJuIHt0cy4uLn07fQorCit9CmRpZmYgLS1naXQgYS9hdWRpby9BbmRyb2lkLmJwIGIvYXVkaW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2MyYmUxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDkgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjIuMCIsCisgICAgIjIuMC92dHMvZnVuY3Rpb25hbCIsCisgICAgImNvbW1vbi8yLjAiLAorICAgICJjb21tb24vMi4wL2RlZmF1bHQiLAorICAgICJlZmZlY3QvMi4wIiwKKyAgICAiZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlkYjE1YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tayBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzhhMzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uLVYyLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ4NmE1YwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCIsCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzcmNzOiBbCisgICAgICAgICJFZmZlY3RNYXAuY3BwIiwKKyAgICAgICAgIkhpZGxVdGlscy5jcHAiLAorICAgIF0sCisKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorCisgICAgaGVhZGVyX2xpYnM6IFsKKyAgICAgICAgImxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlX2hlYWRlcnMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmNwcCBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9FZmZlY3RNYXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwM2I5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGF0b21pYz4KKworI2luY2x1ZGUgIkVmZmVjdE1hcC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK0FORFJPSURfU0lOR0xFVE9OX1NUQVRJQ19JTlNUQU5DRShFZmZlY3RNYXApOworCisvLyBzdGF0aWMKK2NvbnN0IHVpbnQ2NF90IEVmZmVjdE1hcDo6SU5WQUxJRF9JRCA9IDA7CisKKy8vIHN0YXRpYwordWludDY0X3QgRWZmZWN0TWFwOjptYWtlVW5pcXVlSWQoKSB7CisgICAgc3RhdGljIHN0ZDo6YXRvbWljPHVpbnQ2NF90PiBjb3VudGVye0lOVkFMSURfSUQgKyAxfTsKKyAgICByZXR1cm4gY291bnRlcisrOworfQorCit1aW50NjRfdCBFZmZlY3RNYXA6OmFkZChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKSB7CisgICAgdWludDY0X3QgbmV3SWQgPSBtYWtlVW5pcXVlSWQoKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgbUVmZmVjdHMuYWRkKG5ld0lkLCBoYW5kbGUpOworICAgIHJldHVybiBuZXdJZDsKK30KKworZWZmZWN0X2hhbmRsZV90IEVmZmVjdE1hcDo6Z2V0KGNvbnN0IHVpbnQ2NF90JiBpZCkgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBzc2l6ZV90IGlkeCA9IG1FZmZlY3RzLmluZGV4T2ZLZXkoaWQpOworICAgIHJldHVybiBpZHggPj0gMCA/IG1FZmZlY3RzW2lkeF0gOiBOVUxMOworfQorCit2b2lkIEVmZmVjdE1hcDo6cmVtb3ZlKGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtRWZmZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobUVmZmVjdHNbaV0gPT0gaGFuZGxlKSB7CisgICAgICAgICAgICBtRWZmZWN0cy5yZW1vdmVJdGVtc0F0KGkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmggYi9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiYmIxZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9FZmZlY3RNYXAuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfRWZmZWN0TWFwX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9FZmZlY3RNYXBfSF8KKworI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW9fZWZmZWN0Lmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9TaW5nbGV0b24uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCisvLyBUaGlzIGNsYXNzIG5lZWRzIHRvIGJlIGluICdhbmRyb2lkJyBucyBiZWNhdXNlIFNpbmdsZXRvbiBtYWNyb3MgcmVxdWlyZSB0aGF0LgorY2xhc3MgRWZmZWN0TWFwIDogcHVibGljIFNpbmdsZXRvbjxFZmZlY3RNYXA+IHsKKyAgcHVibGljOgorICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBJTlZBTElEX0lEOworCisgICAgdWludDY0X3QgYWRkKGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworICAgIGVmZmVjdF9oYW5kbGVfdCBnZXQoY29uc3QgdWludDY0X3QmIGlkKTsKKyAgICB2b2lkIHJlbW92ZShlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyB1aW50NjRfdCBtYWtlVW5pcXVlSWQoKTsKKworICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgS2V5ZWRWZWN0b3I8dWludDY0X3QsIGVmZmVjdF9oYW5kbGVfdD4gbUVmZmVjdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9FZmZlY3RNYXBfSF8KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuY3BwIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0hpZGxVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzljYjM3YwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9HYWluTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTWl4TGF0ZW5jeUNsYXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUG9ydFJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1N0cmVhbVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1VzYWdlOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0NvbmZpZ0Zyb21IYWwoY29uc3QgYXVkaW9fY29uZmlnX3QmIGhhbENvbmZpZywgQXVkaW9Db25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+c2FtcGxlUmF0ZUh6ID0gaGFsQ29uZmlnLnNhbXBsZV9yYXRlOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGNvbmZpZy0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsQ29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9PZmZsb2FkSW5mb0Zyb21IYWwoaGFsQ29uZmlnLm9mZmxvYWRfaW5mbywgJmNvbmZpZy0+b2ZmbG9hZEluZm8pOworICAgIGNvbmZpZy0+ZnJhbWVDb3VudCA9IGhhbENvbmZpZy5mcmFtZV9jb3VudDsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgYXVkaW9fY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIG1lbXNldChoYWxDb25maWcsIDAsIHNpemVvZihhdWRpb19jb25maWdfdCkpOworICAgIGhhbENvbmZpZy0+c2FtcGxlX3JhdGUgPSBjb25maWcuc2FtcGxlUmF0ZUh6OworICAgIGhhbENvbmZpZy0+Y2hhbm5lbF9tYXNrID0gc3RhdGljX2Nhc3Q8YXVkaW9fY2hhbm5lbF9tYXNrX3Q+KGNvbmZpZy5jaGFubmVsTWFzayk7CisgICAgaGFsQ29uZmlnLT5mb3JtYXQgPSBzdGF0aWNfY2FzdDxhdWRpb19mb3JtYXRfdD4oY29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9PZmZsb2FkSW5mb1RvSGFsKGNvbmZpZy5vZmZsb2FkSW5mbywgJmhhbENvbmZpZy0+b2ZmbG9hZF9pbmZvKTsKKyAgICBoYWxDb25maWctPmZyYW1lX2NvdW50ID0gY29uZmlnLmZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0dhaW5Db25maWdGcm9tSGFsKAorICAgICAgICBjb25zdCBzdHJ1Y3QgYXVkaW9fZ2Fpbl9jb25maWcmIGhhbENvbmZpZywgQXVkaW9HYWluQ29uZmlnKiBjb25maWcpIHsKKyAgICBjb25maWctPmluZGV4ID0gaGFsQ29uZmlnLmluZGV4OworICAgIGNvbmZpZy0+bW9kZSA9IEF1ZGlvR2Fpbk1vZGUoaGFsQ29uZmlnLm1vZGUpOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGF1ZGlvX2NoYW5uZWxfbWFza190KSAqIDg7ICsraSkgeworICAgICAgICBjb25maWctPnZhbHVlc1tpXSA9IGhhbENvbmZpZy52YWx1ZXNbaV07CisgICAgfQorICAgIGNvbmZpZy0+cmFtcER1cmF0aW9uTXMgPSBoYWxDb25maWcucmFtcF9kdXJhdGlvbl9tczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvR2FpbkNvbmZpZ1RvSGFsKAorICAgICAgICBjb25zdCBBdWRpb0dhaW5Db25maWcmIGNvbmZpZywgc3RydWN0IGF1ZGlvX2dhaW5fY29uZmlnKiBoYWxDb25maWcpIHsKKyAgICBoYWxDb25maWctPmluZGV4ID0gY29uZmlnLmluZGV4OworICAgIGhhbENvbmZpZy0+bW9kZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2dhaW5fbW9kZV90Pihjb25maWcubW9kZSk7CisgICAgaGFsQ29uZmlnLT5jaGFubmVsX21hc2sgPSBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4oY29uZmlnLmNoYW5uZWxNYXNrKTsKKyAgICBtZW1zZXQoaGFsQ29uZmlnLT52YWx1ZXMsIDAsIHNpemVvZihoYWxDb25maWctPnZhbHVlcykpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGF1ZGlvX2NoYW5uZWxfbWFza190KSAqIDg7ICsraSkgeworICAgICAgICBoYWxDb25maWctPnZhbHVlc1tpXSA9IGNvbmZpZy52YWx1ZXNbaV07CisgICAgfQorICAgIGhhbENvbmZpZy0+cmFtcF9kdXJhdGlvbl9tcyA9IGNvbmZpZy5yYW1wRHVyYXRpb25NczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvR2FpbkZyb21IYWwoY29uc3Qgc3RydWN0IGF1ZGlvX2dhaW4mIGhhbEdhaW4sIEF1ZGlvR2FpbiogZ2FpbikgeworICAgIGdhaW4tPm1vZGUgPSBBdWRpb0dhaW5Nb2RlKGhhbEdhaW4ubW9kZSk7CisgICAgZ2Fpbi0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbEdhaW4uY2hhbm5lbF9tYXNrKTsKKyAgICBnYWluLT5taW5WYWx1ZSA9IGhhbEdhaW4ubWluX3ZhbHVlOworICAgIGdhaW4tPm1heFZhbHVlID0gaGFsR2Fpbi5tYXhfdmFsdWU7CisgICAgZ2Fpbi0+ZGVmYXVsdFZhbHVlID0gaGFsR2Fpbi5kZWZhdWx0X3ZhbHVlOworICAgIGdhaW4tPnN0ZXBWYWx1ZSA9IGhhbEdhaW4uc3RlcF92YWx1ZTsKKyAgICBnYWluLT5taW5SYW1wTXMgPSBoYWxHYWluLm1pbl9yYW1wX21zOworICAgIGdhaW4tPm1heFJhbXBNcyA9IGhhbEdhaW4ubWF4X3JhbXBfbXM7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0dhaW5Ub0hhbChjb25zdCBBdWRpb0dhaW4mIGdhaW4sIHN0cnVjdCBhdWRpb19nYWluKiBoYWxHYWluKSB7CisgICAgaGFsR2Fpbi0+bW9kZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2dhaW5fbW9kZV90PihnYWluLm1vZGUpOworICAgIGhhbEdhaW4tPmNoYW5uZWxfbWFzayA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihnYWluLmNoYW5uZWxNYXNrKTsKKyAgICBoYWxHYWluLT5taW5fdmFsdWUgPSBnYWluLm1pblZhbHVlOworICAgIGhhbEdhaW4tPm1heF92YWx1ZSA9IGdhaW4ubWF4VmFsdWU7CisgICAgaGFsR2Fpbi0+ZGVmYXVsdF92YWx1ZSA9IGdhaW4uZGVmYXVsdFZhbHVlOworICAgIGhhbEdhaW4tPnN0ZXBfdmFsdWUgPSBnYWluLnN0ZXBWYWx1ZTsKKyAgICBoYWxHYWluLT5taW5fcmFtcF9tcyA9IGdhaW4ubWluUmFtcE1zOworICAgIGhhbEdhaW4tPm1heF9yYW1wX21zID0gZ2Fpbi5tYXhSYW1wTXM7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb09mZmxvYWRJbmZvRnJvbUhhbCgKKyAgICAgICAgY29uc3QgYXVkaW9fb2ZmbG9hZF9pbmZvX3QmIGhhbE9mZmxvYWQsIEF1ZGlvT2ZmbG9hZEluZm8qIG9mZmxvYWQpIHsKKyAgICBvZmZsb2FkLT5zYW1wbGVSYXRlSHogPSBoYWxPZmZsb2FkLnNhbXBsZV9yYXRlOworICAgIG9mZmxvYWQtPmNoYW5uZWxNYXNrID0gQXVkaW9DaGFubmVsTWFzayhoYWxPZmZsb2FkLmNoYW5uZWxfbWFzayk7CisgICAgb2ZmbG9hZC0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsT2ZmbG9hZC5mb3JtYXQpOworICAgIG9mZmxvYWQtPnN0cmVhbVR5cGUgPSBBdWRpb1N0cmVhbVR5cGUoaGFsT2ZmbG9hZC5zdHJlYW1fdHlwZSk7CisgICAgb2ZmbG9hZC0+Yml0UmF0ZVBlclNlY29uZCA9IGhhbE9mZmxvYWQuYml0X3JhdGU7CisgICAgb2ZmbG9hZC0+ZHVyYXRpb25NaWNyb3NlY29uZHMgPSBoYWxPZmZsb2FkLmR1cmF0aW9uX3VzOworICAgIG9mZmxvYWQtPmhhc1ZpZGVvID0gaGFsT2ZmbG9hZC5oYXNfdmlkZW87CisgICAgb2ZmbG9hZC0+aXNTdHJlYW1pbmcgPSBoYWxPZmZsb2FkLmlzX3N0cmVhbWluZzsKKyAgICBvZmZsb2FkLT5iaXRXaWR0aCA9IGhhbE9mZmxvYWQuYml0X3dpZHRoOworICAgIG9mZmxvYWQtPmJ1ZmZlclNpemUgPSBoYWxPZmZsb2FkLm9mZmxvYWRfYnVmZmVyX3NpemU7CisgICAgb2ZmbG9hZC0+dXNhZ2UgPSBzdGF0aWNfY2FzdDxBdWRpb1VzYWdlPihoYWxPZmZsb2FkLnVzYWdlKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvT2ZmbG9hZEluZm9Ub0hhbCgKKyAgICAgICAgY29uc3QgQXVkaW9PZmZsb2FkSW5mbyYgb2ZmbG9hZCwgYXVkaW9fb2ZmbG9hZF9pbmZvX3QqIGhhbE9mZmxvYWQpIHsKKyAgICAqaGFsT2ZmbG9hZCA9IEFVRElPX0lORk9fSU5JVElBTElaRVI7CisgICAgaGFsT2ZmbG9hZC0+c2FtcGxlX3JhdGUgPSBvZmZsb2FkLnNhbXBsZVJhdGVIejsKKyAgICBoYWxPZmZsb2FkLT5jaGFubmVsX21hc2sgPSBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4ob2ZmbG9hZC5jaGFubmVsTWFzayk7CisgICAgaGFsT2ZmbG9hZC0+Zm9ybWF0ID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KG9mZmxvYWQuZm9ybWF0KTsKKyAgICBoYWxPZmZsb2FkLT5zdHJlYW1fdHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX3N0cmVhbV90eXBlX3Q+KG9mZmxvYWQuc3RyZWFtVHlwZSk7CisgICAgaGFsT2ZmbG9hZC0+Yml0X3JhdGUgPSBvZmZsb2FkLmJpdFJhdGVQZXJTZWNvbmQ7CisgICAgaGFsT2ZmbG9hZC0+ZHVyYXRpb25fdXMgPSBvZmZsb2FkLmR1cmF0aW9uTWljcm9zZWNvbmRzOworICAgIGhhbE9mZmxvYWQtPmhhc192aWRlbyA9IG9mZmxvYWQuaGFzVmlkZW87CisgICAgaGFsT2ZmbG9hZC0+aXNfc3RyZWFtaW5nID0gb2ZmbG9hZC5pc1N0cmVhbWluZzsKKyAgICBoYWxPZmZsb2FkLT5iaXRfd2lkdGggPSBvZmZsb2FkLmJpdFdpZHRoOworICAgIGhhbE9mZmxvYWQtPm9mZmxvYWRfYnVmZmVyX3NpemUgPSBvZmZsb2FkLmJ1ZmZlclNpemU7CisgICAgaGFsT2ZmbG9hZC0+dXNhZ2UgPSBzdGF0aWNfY2FzdDxhdWRpb191c2FnZV90PihvZmZsb2FkLnVzYWdlKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ0Zyb21IYWwoCisgICAgICAgIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyYgaGFsQ29uZmlnLCBBdWRpb1BvcnRDb25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+aWQgPSBoYWxDb25maWcuaWQ7CisgICAgY29uZmlnLT5yb2xlID0gQXVkaW9Qb3J0Um9sZShoYWxDb25maWcucm9sZSk7CisgICAgY29uZmlnLT50eXBlID0gQXVkaW9Qb3J0VHlwZShoYWxDb25maWcudHlwZSk7CisgICAgY29uZmlnLT5jb25maWdNYXNrID0gQXVkaW9Qb3J0Q29uZmlnTWFzayhoYWxDb25maWcuY29uZmlnX21hc2spOworICAgIGNvbmZpZy0+c2FtcGxlUmF0ZUh6ID0gaGFsQ29uZmlnLnNhbXBsZV9yYXRlOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGNvbmZpZy0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsQ29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9HYWluQ29uZmlnRnJvbUhhbChoYWxDb25maWcuZ2FpbiwgJmNvbmZpZy0+Z2Fpbik7CisgICAgc3dpdGNoIChoYWxDb25maWcudHlwZSkgeworICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9OT05FOiBicmVhazsKKyAgICAgICAgY2FzZSBBVURJT19QT1JUX1RZUEVfREVWSUNFOiB7CisgICAgICAgICAgICBjb25maWctPmV4dC5kZXZpY2UuaHdNb2R1bGUgPSBoYWxDb25maWcuZXh0LmRldmljZS5od19tb2R1bGU7CisgICAgICAgICAgICBjb25maWctPmV4dC5kZXZpY2UudHlwZSA9IEF1ZGlvRGV2aWNlKGhhbENvbmZpZy5leHQuZGV2aWNlLnR5cGUpOworICAgICAgICAgICAgbWVtY3B5KGNvbmZpZy0+ZXh0LmRldmljZS5hZGRyZXNzLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnLmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgQVVESU9fREVWSUNFX01BWF9BRERSRVNTX0xFTik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9NSVg6IHsKKyAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC5od01vZHVsZSA9IGhhbENvbmZpZy5leHQubWl4Lmh3X21vZHVsZTsKKyAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC5pb0hhbmRsZSA9IGhhbENvbmZpZy5leHQubWl4LmhhbmRsZTsKKyAgICAgICAgICAgIGlmIChoYWxDb25maWcucm9sZSA9PSBBVURJT19QT1JUX1JPTEVfU09VUkNFKSB7CisgICAgICAgICAgICAgICAgY29uZmlnLT5leHQubWl4LnVzZUNhc2Uuc291cmNlID0gQXVkaW9Tb3VyY2UoaGFsQ29uZmlnLmV4dC5taXgudXNlY2FzZS5zb3VyY2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChoYWxDb25maWcucm9sZSA9PSBBVURJT19QT1JUX1JPTEVfU0lOSykgeworICAgICAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC51c2VDYXNlLnN0cmVhbSA9IEF1ZGlvU3RyZWFtVHlwZShoYWxDb25maWcuZXh0Lm1peC51c2VjYXNlLnN0cmVhbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9TRVNTSU9OOiB7CisgICAgICAgICAgICBjb25maWctPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBoYWxDb25maWcuZXh0LnNlc3Npb24uc2Vzc2lvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IEF1ZGlvUG9ydENvbmZpZyYgY29uZmlnLCBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcqIGhhbENvbmZpZykgeworICAgIG1lbXNldChoYWxDb25maWcsIDAsIHNpemVvZihhdWRpb19wb3J0X2NvbmZpZykpOworICAgIGhhbENvbmZpZy0+aWQgPSBjb25maWcuaWQ7CisgICAgaGFsQ29uZmlnLT5yb2xlID0gc3RhdGljX2Nhc3Q8YXVkaW9fcG9ydF9yb2xlX3Q+KGNvbmZpZy5yb2xlKTsKKyAgICBoYWxDb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxhdWRpb19wb3J0X3R5cGVfdD4oY29uZmlnLnR5cGUpOworICAgIGhhbENvbmZpZy0+Y29uZmlnX21hc2sgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGNvbmZpZy5jb25maWdNYXNrKTsKKyAgICBoYWxDb25maWctPnNhbXBsZV9yYXRlID0gY29uZmlnLnNhbXBsZVJhdGVIejsKKyAgICBoYWxDb25maWctPmNoYW5uZWxfbWFzayA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcuY2hhbm5lbE1hc2spOworICAgIGhhbENvbmZpZy0+Zm9ybWF0ID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KGNvbmZpZy5mb3JtYXQpOworICAgIGF1ZGlvR2FpbkNvbmZpZ1RvSGFsKGNvbmZpZy5nYWluLCAmaGFsQ29uZmlnLT5nYWluKTsKKyAgICBzd2l0Y2ggKGNvbmZpZy50eXBlKSB7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6Tk9ORTogYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6REVWSUNFOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5kZXZpY2UuaHdfbW9kdWxlID0gY29uZmlnLmV4dC5kZXZpY2UuaHdNb2R1bGU7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5kZXZpY2UudHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oY29uZmlnLmV4dC5kZXZpY2UudHlwZSk7CisgICAgICAgICAgICBtZW1jcHkoaGFsQ29uZmlnLT5leHQuZGV2aWNlLmFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6TUlYOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXguaHdfbW9kdWxlID0gY29uZmlnLmV4dC5taXguaHdNb2R1bGU7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXguaGFuZGxlID0gY29uZmlnLmV4dC5taXguaW9IYW5kbGU7CisgICAgICAgICAgICBpZiAoY29uZmlnLnJvbGUgPT0gQXVkaW9Qb3J0Um9sZTo6U09VUkNFKSB7CisgICAgICAgICAgICAgICAgaGFsQ29uZmlnLT5leHQubWl4LnVzZWNhc2Uuc291cmNlID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX3NvdXJjZV90Pihjb25maWcuZXh0Lm1peC51c2VDYXNlLnNvdXJjZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5yb2xlID09IEF1ZGlvUG9ydFJvbGU6OlNJTkspIHsKKyAgICAgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXgudXNlY2FzZS5zdHJlYW0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fc3RyZWFtX3R5cGVfdD4oY29uZmlnLmV4dC5taXgudXNlQ2FzZS5zdHJlYW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBdWRpb1BvcnRUeXBlOjpTRVNTSU9OOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5zZXNzaW9uLnNlc3Npb24gPQorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zZXNzaW9uX3Q+KGNvbmZpZy5leHQuc2Vzc2lvbi5zZXNzaW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnc0Zyb21IYWwoCisgICAgICAgIHVuc2lnbmVkIGludCBudW1IYWxDb25maWdzLCBjb25zdCBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcgKmhhbENvbmZpZ3MsCisgICAgICAgIGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4gKmNvbmZpZ3MpIHsKKyAgICBjb25maWdzLT5yZXNpemUobnVtSGFsQ29uZmlncyk7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBudW1IYWxDb25maWdzOyArK2kpIHsKKyAgICAgICAgYXVkaW9Qb3J0Q29uZmlnRnJvbUhhbChoYWxDb25maWdzW2ldLCAmKCpjb25maWdzKVtpXSk7CisgICAgfQorfQorCitzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdzVG9IYWwoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIGNvbmZpZ3MpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gaGFsQ29uZmlncyhuZXcgYXVkaW9fcG9ydF9jb25maWdbY29uZmlncy5zaXplKCldKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZ3Muc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXVkaW9Qb3J0Q29uZmlnVG9IYWwoY29uZmlnc1tpXSwgJmhhbENvbmZpZ3NbaV0pOworICAgIH0KKyAgICByZXR1cm4gaGFsQ29uZmlnczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydEZyb21IYWwoY29uc3Qgc3RydWN0IGF1ZGlvX3BvcnQmIGhhbFBvcnQsIEF1ZGlvUG9ydCogcG9ydCkgeworICAgIHBvcnQtPmlkID0gaGFsUG9ydC5pZDsKKyAgICBwb3J0LT5yb2xlID0gQXVkaW9Qb3J0Um9sZShoYWxQb3J0LnJvbGUpOworICAgIHBvcnQtPnR5cGUgPSBBdWRpb1BvcnRUeXBlKGhhbFBvcnQudHlwZSk7CisgICAgcG9ydC0+bmFtZS5zZXRUb0V4dGVybmFsKGhhbFBvcnQubmFtZSwgc3RybGVuKGhhbFBvcnQubmFtZSkpOworICAgIHBvcnQtPnNhbXBsZVJhdGVzLnJlc2l6ZShoYWxQb3J0Lm51bV9zYW1wbGVfcmF0ZXMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fc2FtcGxlX3JhdGVzOyArK2kpIHsKKyAgICAgICAgcG9ydC0+c2FtcGxlUmF0ZXNbaV0gPSBoYWxQb3J0LnNhbXBsZV9yYXRlc1tpXTsKKyAgICB9CisgICAgcG9ydC0+Y2hhbm5lbE1hc2tzLnJlc2l6ZShoYWxQb3J0Lm51bV9jaGFubmVsX21hc2tzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFBvcnQubnVtX2NoYW5uZWxfbWFza3M7ICsraSkgeworICAgICAgICBwb3J0LT5jaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbFBvcnQuY2hhbm5lbF9tYXNrc1tpXSk7CisgICAgfQorICAgIHBvcnQtPmZvcm1hdHMucmVzaXplKGhhbFBvcnQubnVtX2Zvcm1hdHMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fZm9ybWF0czsgKytpKSB7CisgICAgICAgIHBvcnQtPmZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxQb3J0LmZvcm1hdHNbaV0pOworICAgIH0KKyAgICBwb3J0LT5nYWlucy5yZXNpemUoaGFsUG9ydC5udW1fZ2FpbnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fZ2FpbnM7ICsraSkgeworICAgICAgICBhdWRpb0dhaW5Gcm9tSGFsKGhhbFBvcnQuZ2FpbnNbaV0sICZwb3J0LT5nYWluc1tpXSk7CisgICAgfQorICAgIGF1ZGlvUG9ydENvbmZpZ0Zyb21IYWwoaGFsUG9ydC5hY3RpdmVfY29uZmlnLCAmcG9ydC0+YWN0aXZlQ29uZmlnKTsKKyAgICBzd2l0Y2ggKGhhbFBvcnQudHlwZSkgeworICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9OT05FOiBicmVhazsKKyAgICAgICAgY2FzZSBBVURJT19QT1JUX1RZUEVfREVWSUNFOiB7CisgICAgICAgICAgICBwb3J0LT5leHQuZGV2aWNlLmh3TW9kdWxlID0gaGFsUG9ydC5leHQuZGV2aWNlLmh3X21vZHVsZTsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5kZXZpY2UudHlwZSA9IEF1ZGlvRGV2aWNlKGhhbFBvcnQuZXh0LmRldmljZS50eXBlKTsKKyAgICAgICAgICAgIG1lbWNweShwb3J0LT5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBoYWxQb3J0LmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgQVVESU9fREVWSUNFX01BWF9BRERSRVNTX0xFTik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9NSVg6IHsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5taXguaHdNb2R1bGUgPSBoYWxQb3J0LmV4dC5taXguaHdfbW9kdWxlOworICAgICAgICAgICAgcG9ydC0+ZXh0Lm1peC5pb0hhbmRsZSA9IGhhbFBvcnQuZXh0Lm1peC5oYW5kbGU7CisgICAgICAgICAgICBwb3J0LT5leHQubWl4LmxhdGVuY3lDbGFzcyA9IEF1ZGlvTWl4TGF0ZW5jeUNsYXNzKGhhbFBvcnQuZXh0Lm1peC5sYXRlbmN5X2NsYXNzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQVVESU9fUE9SVF9UWVBFX1NFU1NJT046IHsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBoYWxQb3J0LmV4dC5zZXNzaW9uLnNlc3Npb247CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydFRvSGFsKGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwgc3RydWN0IGF1ZGlvX3BvcnQqIGhhbFBvcnQpIHsKKyAgICBtZW1zZXQoaGFsUG9ydCwgMCwgc2l6ZW9mKGF1ZGlvX3BvcnQpKTsKKyAgICBoYWxQb3J0LT5pZCA9IHBvcnQuaWQ7CisgICAgaGFsUG9ydC0+cm9sZSA9IHN0YXRpY19jYXN0PGF1ZGlvX3BvcnRfcm9sZV90Pihwb3J0LnJvbGUpOworICAgIGhhbFBvcnQtPnR5cGUgPSBzdGF0aWNfY2FzdDxhdWRpb19wb3J0X3R5cGVfdD4ocG9ydC50eXBlKTsKKyAgICBtZW1jcHkoaGFsUG9ydC0+bmFtZSwKKyAgICAgICAgICAgIHBvcnQubmFtZS5jX3N0cigpLAorICAgICAgICAgICAgc3RkOjptaW4ocG9ydC5uYW1lLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihBVURJT19QT1JUX01BWF9OQU1FX0xFTikpKTsKKyAgICBoYWxQb3J0LT5udW1fc2FtcGxlX3JhdGVzID0KKyAgICAgICAgICAgIHN0ZDo6bWluKHBvcnQuc2FtcGxlUmF0ZXMuc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX1NBTVBMSU5HX1JBVEVTKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQb3J0LT5udW1fc2FtcGxlX3JhdGVzOyArK2kpIHsKKyAgICAgICAgaGFsUG9ydC0+c2FtcGxlX3JhdGVzW2ldID0gcG9ydC5zYW1wbGVSYXRlc1tpXTsKKyAgICB9CisgICAgaGFsUG9ydC0+bnVtX2NoYW5uZWxfbWFza3MgPQorICAgICAgICAgICAgc3RkOjptaW4ocG9ydC5jaGFubmVsTWFza3Muc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX0NIQU5ORUxfTUFTS1MpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFBvcnQtPm51bV9jaGFubmVsX21hc2tzOyArK2kpIHsKKyAgICAgICAgaGFsUG9ydC0+Y2hhbm5lbF9tYXNrc1tpXSA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihwb3J0LmNoYW5uZWxNYXNrc1tpXSk7CisgICAgfQorICAgIGhhbFBvcnQtPm51bV9mb3JtYXRzID0KKyAgICAgICAgICAgIHN0ZDo6bWluKHBvcnQuZm9ybWF0cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4oQVVESU9fUE9SVF9NQVhfRk9STUFUUykpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC0+bnVtX2Zvcm1hdHM7ICsraSkgeworICAgICAgICBoYWxQb3J0LT5mb3JtYXRzW2ldID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KHBvcnQuZm9ybWF0c1tpXSk7CisgICAgfQorICAgIGhhbFBvcnQtPm51bV9nYWlucyA9IHN0ZDo6bWluKHBvcnQuZ2FpbnMuc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX0dBSU5TKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQb3J0LT5udW1fZ2FpbnM7ICsraSkgeworICAgICAgICBhdWRpb0dhaW5Ub0hhbChwb3J0LmdhaW5zW2ldLCAmaGFsUG9ydC0+Z2FpbnNbaV0pOworICAgIH0KKyAgICBhdWRpb1BvcnRDb25maWdUb0hhbChwb3J0LmFjdGl2ZUNvbmZpZywgJmhhbFBvcnQtPmFjdGl2ZV9jb25maWcpOworICAgIHN3aXRjaCAocG9ydC50eXBlKSB7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6Tk9ORTogYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6REVWSUNFOiB7CisgICAgICAgICAgICBoYWxQb3J0LT5leHQuZGV2aWNlLmh3X21vZHVsZSA9IHBvcnQuZXh0LmRldmljZS5od01vZHVsZTsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5kZXZpY2UudHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4ocG9ydC5leHQuZGV2aWNlLnR5cGUpOworICAgICAgICAgICAgbWVtY3B5KGhhbFBvcnQtPmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgcG9ydC5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6TUlYOiB7CisgICAgICAgICAgICBoYWxQb3J0LT5leHQubWl4Lmh3X21vZHVsZSA9IHBvcnQuZXh0Lm1peC5od01vZHVsZTsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5taXguaGFuZGxlID0gcG9ydC5leHQubWl4LmlvSGFuZGxlOworICAgICAgICAgICAgaGFsUG9ydC0+ZXh0Lm1peC5sYXRlbmN5X2NsYXNzID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fbWl4X2xhdGVuY3lfY2xhc3NfdD4ocG9ydC5leHQubWl4LmxhdGVuY3lDbGFzcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEF1ZGlvUG9ydFR5cGU6OlNFU1NJT046IHsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBzdGF0aWNfY2FzdDxhdWRpb19zZXNzaW9uX3Q+KHBvcnQuZXh0LnNlc3Npb24uc2Vzc2lvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBIaWRsVXRpbHM6OnV1aWRGcm9tSGFsKGNvbnN0IGF1ZGlvX3V1aWRfdCYgaGFsVXVpZCwgVXVpZCogdXVpZCkgeworICAgIHV1aWQtPnRpbWVMb3cgPSBoYWxVdWlkLnRpbWVMb3c7CisgICAgdXVpZC0+dGltZU1pZCA9IGhhbFV1aWQudGltZU1pZDsKKyAgICB1dWlkLT52ZXJzaW9uQW5kVGltZUhpZ2ggPSBoYWxVdWlkLnRpbWVIaUFuZFZlcnNpb247CisgICAgdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaCA9IGhhbFV1aWQuY2xvY2tTZXE7CisgICAgbWVtY3B5KHV1aWQtPm5vZGUuZGF0YSgpLCBoYWxVdWlkLm5vZGUsIHV1aWQtPm5vZGUuc2l6ZSgpKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OnV1aWRUb0hhbChjb25zdCBVdWlkJiB1dWlkLCBhdWRpb191dWlkX3QqIGhhbFV1aWQpIHsKKyAgICBoYWxVdWlkLT50aW1lTG93ID0gdXVpZC50aW1lTG93OworICAgIGhhbFV1aWQtPnRpbWVNaWQgPSB1dWlkLnRpbWVNaWQ7CisgICAgaGFsVXVpZC0+dGltZUhpQW5kVmVyc2lvbiA9IHV1aWQudmVyc2lvbkFuZFRpbWVIaWdoOworICAgIGhhbFV1aWQtPmNsb2NrU2VxID0gdXVpZC52YXJpYW50QW5kQ2xvY2tTZXFIaWdoOworICAgIG1lbWNweShoYWxVdWlkLT5ub2RlLCB1dWlkLm5vZGUuZGF0YSgpLCB1dWlkLm5vZGUuc2l6ZSgpKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuaCBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmRlNGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0hpZGxVdGlscy5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9IaWRsX1V0aWxzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9IaWRsX1V0aWxzX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW8uaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0dhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0dhaW5Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb09mZmxvYWRJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK2NsYXNzIEhpZGxVdGlscyB7CisgIHB1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0NvbmZpZ0Zyb21IYWwoY29uc3QgYXVkaW9fY29uZmlnX3QmIGhhbENvbmZpZywgQXVkaW9Db25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Db25maWdUb0hhbChjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLCBhdWRpb19jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Db25maWdGcm9tSGFsKAorICAgICAgICAgICAgY29uc3Qgc3RydWN0IGF1ZGlvX2dhaW5fY29uZmlnJiBoYWxDb25maWcsIEF1ZGlvR2FpbkNvbmZpZyogY29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Db25maWdUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvR2FpbkNvbmZpZyYgY29uZmlnLCBzdHJ1Y3QgYXVkaW9fZ2Fpbl9jb25maWcqIGhhbENvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9HYWluRnJvbUhhbChjb25zdCBzdHJ1Y3QgYXVkaW9fZ2FpbiYgaGFsR2FpbiwgQXVkaW9HYWluKiBnYWluKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Ub0hhbChjb25zdCBBdWRpb0dhaW4mIGdhaW4sIHN0cnVjdCBhdWRpb19nYWluKiBoYWxHYWluKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb09mZmxvYWRJbmZvRnJvbUhhbCgKKyAgICAgICAgICAgIGNvbnN0IGF1ZGlvX29mZmxvYWRfaW5mb190JiBoYWxPZmZsb2FkLCBBdWRpb09mZmxvYWRJbmZvKiBvZmZsb2FkKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb09mZmxvYWRJbmZvVG9IYWwoCisgICAgICAgICAgICBjb25zdCBBdWRpb09mZmxvYWRJbmZvJiBvZmZsb2FkLCBhdWRpb19vZmZsb2FkX2luZm9fdCogaGFsT2ZmbG9hZCk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0Q29uZmlnRnJvbUhhbCgKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyYgaGFsQ29uZmlnLCBBdWRpb1BvcnRDb25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0Q29uZmlnVG9IYWwoCisgICAgICAgICAgICBjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZywgc3RydWN0IGF1ZGlvX3BvcnRfY29uZmlnKiBoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGF1ZGlvUG9ydENvbmZpZ3NGcm9tSGFsKAorICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bUhhbENvbmZpZ3MsIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyAqaGFsQ29uZmlncywKKyAgICAgICAgICAgIGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4gKmNvbmZpZ3MpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gYXVkaW9Qb3J0Q29uZmlnc1RvSGFsKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgY29uZmlncyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0RnJvbUhhbChjb25zdCBzdHJ1Y3QgYXVkaW9fcG9ydCYgaGFsUG9ydCwgQXVkaW9Qb3J0KiBwb3J0KTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb1BvcnRUb0hhbChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIHN0cnVjdCBhdWRpb19wb3J0KiBoYWxQb3J0KTsKKyAgICBzdGF0aWMgdm9pZCB1dWlkRnJvbUhhbChjb25zdCBhdWRpb191dWlkX3QmIGhhbFV1aWQsIFV1aWQqIHV1aWQpOworICAgIHN0YXRpYyB2b2lkIHV1aWRUb0hhbChjb25zdCBVdWlkJiB1dWlkLCBhdWRpb191dWlkX3QqIGhhbFV1aWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfSGlkbF9VdGlsc19IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oYWwgYi9hdWRpby9jb21tb24vMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzQ5Nzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw5NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworLyoqCisgKgorICogIElEcyBhbmQgSGFuZGxlcworICoKKyAqLworCisvKioKKyAqIEhhbmRsZSB0eXBlIGZvciBpZGVudGlmeWluZyBhdWRpbyBzb3VyY2VzIGFuZCBzaW5rcy4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvSW9IYW5kbGU7CisKKy8qKgorICogQXVkaW8gaHcgbW9kdWxlIGhhbmRsZSBmdW5jdGlvbnMgb3Igc3RydWN0dXJlcyByZWZlcmVuY2luZyBhIG1vZHVsZS4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvTW9kdWxlSGFuZGxlOworCisvKioKKyAqIEVhY2ggcG9ydCBoYXMgYSB1bmlxdWUgSUQgb3IgaGFuZGxlIGFsbG9jYXRlZCBieSBwb2xpY3kgbWFuYWdlci4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvUG9ydEhhbmRsZTsKKworLyoqCisgKiBFYWNoIHBhdGNoIGlzIGlkZW50aWZpZWQgYnkgYSBoYW5kbGUgYXQgdGhlIGludGVyZmFjZSB1c2VkIHRvIGNyZWF0ZSB0aGF0CisgKiBwYXRjaC4gRm9yIGluc3RhbmNlLCB3aGVuIGEgcGF0Y2ggaXMgY3JlYXRlZCBieSB0aGUgYXVkaW8gSEFMLCB0aGUgSEFMCisgKiBhbGxvY2F0ZXMgYW5kIHJldHVybnMgYSBoYW5kbGUuICBUaGlzIGhhbmRsZSBpcyB1bmlxdWUgdG8gYSBnaXZlbiBhdWRpbyBIQUwKKyAqIGhhcmR3YXJlIG1vZHVsZS4gIEJ1dCB0aGUgc2FtZSBwYXRjaCByZWNlaXZlcyBhbm90aGVyIHN5c3RlbSB3aWRlIHVuaXF1ZQorICogaGFuZGxlIGFsbG9jYXRlZCBieSB0aGUgZnJhbWV3b3JrLiAgVGhpcyB1bmlxdWUgaGFuZGxlIGlzIHVzZWQgZm9yIGFsbAorICogdHJhbnNhY3Rpb25zIGluc2lkZSB0aGUgZnJhbWV3b3JrLgorICovCit0eXBlZGVmIGludDMyX3QgQXVkaW9QYXRjaEhhbmRsZTsKKworLyoqCisgKiBBIEhXIHN5bmNocm9uaXphdGlvbiBzb3VyY2UgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvIEhBTC4KKyAqLwordHlwZWRlZiB1aW50MzJfdCBBdWRpb0h3U3luYzsKKworLyoqCisgKiBFYWNoIHBvcnQgaGFzIGEgdW5pcXVlIElEIG9yIGhhbmRsZSBhbGxvY2F0ZWQgYnkgcG9saWN5IG1hbmFnZXIuCisgKi8KK0BleHBvcnQobmFtZT0iIikKK2VudW0gQXVkaW9IYW5kbGVDb25zdHMgOiBpbnQzMl90IHsKKyAgICBBVURJT19JT19IQU5ETEVfTk9ORSA9IDAsCisgICAgQVVESU9fTU9EVUxFX0hBTkRMRV9OT05FID0gMCwKKyAgICBBVURJT19QT1JUX0hBTkRMRV9OT05FID0gMCwKKyAgICBBVURJT19QQVRDSF9IQU5ETEVfTk9ORSA9IDAsCit9OworCisvKioKKyAqIENvbW1vbmx5IHVzZWQgc3RydWN0dXJlIGZvciBwYXNzaW5nIHVuaXF1ZSBpZGVudGlmaWVkcyAoVVVJRCkuCisgKiBGb3IgdGhlIGRlZmluaXRpb24gb2YgVVVJRCwgcmVmZXIgdG8gSVRVLVQgWC42Njcgc3BlYy4KKyAqLworc3RydWN0IFV1aWQgeworICAgIHVpbnQzMl90IHRpbWVMb3c7CisgICAgdWludDE2X3QgdGltZU1pZDsKKyAgICB1aW50MTZfdCB2ZXJzaW9uQW5kVGltZUhpZ2g7CisgICAgdWludDE2X3QgdmFyaWFudEFuZENsb2NrU2VxSGlnaDsKKyAgICB1aW50OF90WzZdIG5vZGU7Cit9OworCisKKy8qKgorICoKKyAqICBBdWRpbyBzdHJlYW1zCisgKgorICovCisKKy8qKgorICogQXVkaW8gc3RyZWFtIHR5cGUgZGVzY3JpYmluZyB0aGUgaW50ZW50ZWQgdXNlIGNhc2Ugb2YgYSBzdHJlYW0uCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fc3RyZWFtX3R5cGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fU1RSRUFNXyIpCitlbnVtIEF1ZGlvU3RyZWFtVHlwZSA6IGludDMyX3QgeworICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGtlcHQgaW4gc3luYyB3aXRoCisgICAgLy8gIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvQXVkaW9TeXN0ZW0uamF2YQorICAgIERFRkFVTFQgICAgICAgICAgPSAtMSwKKyAgICBNSU4gICAgICAgICAgICAgID0gMCwKKyAgICBWT0lDRV9DQUxMICAgICAgID0gMCwKKyAgICBTWVNURU0gICAgICAgICAgID0gMSwKKyAgICBSSU5HICAgICAgICAgICAgID0gMiwKKyAgICBNVVNJQyAgICAgICAgICAgID0gMywKKyAgICBBTEFSTSAgICAgICAgICAgID0gNCwKKyAgICBOT1RJRklDQVRJT04gICAgID0gNSwKKyAgICBCTFVFVE9PVEhfU0NPICAgID0gNiwKKyAgICBFTkZPUkNFRF9BVURJQkxFID0gNywgIC8vIFNvdW5kcyB0aGF0IGNhbm5vdCBiZSBtdXRlZCBieSB1c2VyIGFuZCBtdXN0IGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZWQgdG8gc3BlYWtlcgorICAgIERUTUYgICAgICAgICAgICAgPSA4LAorICAgIFRUUyAgICAgICAgICAgICAgPSA5LCAgLy8gVHJhbnNtaXR0ZWQgVGhyb3VnaCBTcGVha2VyLiAgUGxheXMgb3ZlciBzcGVha2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5LCBzaWxlbnQgb24gb3RoZXIgZGV2aWNlcworICAgIEFDQ0VTU0lCSUxJVFkgICAgPSAxMCwgLy8gRm9yIGFjY2Vzc2liaWxpdHkgdGFsayBiYWNrIHByb21wdHMKKyAgICBSRVJPVVRJTkcgICAgICAgID0gMTEsIC8vIEZvciBkeW5hbWljIHBvbGljeSBvdXRwdXQgbWl4ZXMKKyAgICBQQVRDSCAgICAgICAgICAgID0gMTIsIC8vIEZvciBpbnRlcm5hbCBhdWRpbyBmbGluZ2VyIHRyYWNrcy4gIEZpeGVkIHZvbHVtZQorICAgIFBVQkxJQ19DTlQgICAgICAgPSBBQ0NFU1NJQklMSVRZICsgMSwKKyAgICAvLyBOdW1iZXIgb2Ygc3RyZWFtcyBjb25zaWRlcmVkIGJ5IGF1ZGlvIHBvbGljeSBmb3Igdm9sdW1lIGFuZCByb3V0aW5nCisgICAgRk9SX1BPTElDWV9DTlQgICA9IFBBVENILAorICAgIENOVCAgICAgICAgICAgICAgPSBQQVRDSCArIDEKK307CisKK0BleHBvcnQobmFtZT0iYXVkaW9fc291cmNlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1NPVVJDRV8iKQorZW51bSBBdWRpb1NvdXJjZSA6IGludDMyX3QgeworICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGtlcHQgaW4gc3luYyB3aXRoCisgICAgLy8gIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvTWVkaWFSZWNvcmRlci5qYXZhLAorICAgIC8vICBmcmFtZXdvcmtzL2F2L3NlcnZpY2VzL2F1ZGlvcG9saWN5L0F1ZGlvUG9saWN5U2VydmljZS5jcHAsCisgICAgLy8gIHN5c3RlbS9tZWRpYS9hdWRpb19lZmZlY3RzL2luY2x1ZGUvYXVkaW9fZWZmZWN0cy9hdWRpb19lZmZlY3RzX2NvbmYuaAorICAgIERFRkFVTFQgICAgICAgICAgICAgPSAwLAorICAgIE1JQyAgICAgICAgICAgICAgICAgPSAxLAorICAgIFZPSUNFX1VQTElOSyAgICAgICAgPSAyLAorICAgIFZPSUNFX0RPV05MSU5LICAgICAgPSAzLAorICAgIFZPSUNFX0NBTEwgICAgICAgICAgPSA0LAorICAgIENBTUNPUkRFUiAgICAgICAgICAgPSA1LAorICAgIFZPSUNFX1JFQ09HTklUSU9OICAgPSA2LAorICAgIFZPSUNFX0NPTU1VTklDQVRJT04gPSA3LAorICAgIC8qKgorICAgICAqIFNvdXJjZSBmb3IgdGhlIG1peCB0byBiZSBwcmVzZW50ZWQgcmVtb3RlbHkuIEFuIGV4YW1wbGUgb2YgcmVtb3RlCisgICAgICogcHJlc2VudGF0aW9uIGlzIFdpZmkgRGlzcGxheSB3aGVyZSBhIGRvbmdsZSBhdHRhY2hlZCB0byBhIFRWIGNhbiBiZSB1c2VkCisgICAgICogdG8gcGxheSB0aGUgbWl4IGNhcHR1cmVkIGJ5IHRoaXMgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIFJFTU9URV9TVUJNSVggICAgICAgPSA4LAorICAgIC8qKgorICAgICAqIFNvdXJjZSBmb3IgdW5wcm9jZXNzZWQgc291bmQuIFVzYWdlIGV4YW1wbGVzIGluY2x1ZGUgbGV2ZWwgbWVhc3VyZW1lbnQKKyAgICAgKiBhbmQgcmF3IHNpZ25hbCBhbmFseXNpcy4KKyAgICAgKi8KKyAgICBVTlBST0NFU1NFRCAgICAgICAgID0gOSwKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgICAgID0gQ05UIC0gMSwKKyAgICBGTV9UVU5FUiAgICAgICAgICAgID0gMTk5OCwKKyAgICAvKioKKyAgICAgKiBBIGxvdy1wcmlvcml0eSwgcHJlZW1wdGlibGUgYXVkaW8gc291cmNlIGZvciBmb3IgYmFja2dyb3VuZCBzb2Z0d2FyZQorICAgICAqIGhvdHdvcmQgZGV0ZWN0aW9uLiBTYW1lIHR1bmluZyBhcyBWT0lDRV9SRUNPR05JVElPTi4gIFVzZWQgb25seQorICAgICAqIGludGVybmFsbHkgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKi8KKyAgICBIT1RXT1JEICAgICAgICAgICAgID0gMTk5OQorfTsKKwordHlwZWRlZiBpbnQzMl90IEF1ZGlvU2Vzc2lvbjsKKy8qKgorICogU3BlY2lhbCBhdWRpbyBzZXNzaW9uIHZhbHVlcy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19zZXNzaW9uX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1NFU1NJT05fIikKK2VudW0gQXVkaW9TZXNzaW9uQ29uc3RzIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogU2Vzc2lvbiBmb3IgZWZmZWN0cyBhdHRhY2hlZCB0byBhIHBhcnRpY3VsYXIgb3V0cHV0IHN0cmVhbQorICAgICAqICh2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAwKQorICAgICAqLworICAgIE9VVFBVVF9TVEFHRSA9IC0xLAorICAgIC8qKgorICAgICAqIFNlc3Npb24gZm9yIGVmZmVjdHMgYXBwbGllZCB0byBvdXRwdXQgbWl4LiBUaGVzZSBlZmZlY3RzIGNhbgorICAgICAqIGJlIG1vdmVkIGJ5IGF1ZGlvIHBvbGljeSBtYW5hZ2VyIHRvIGFub3RoZXIgb3V0cHV0IHN0cmVhbQorICAgICAqICh2YWx1ZSBtdXN0IGJlIDApCisgICAgICovCisgICAgT1VUUFVUX01JWCA9IDAsCisgICAgLyoqCisgICAgICogQXBwbGljYXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBzZXNzaW9uIElEIHRvIGJlIHVzZWQsIGFuZAorICAgICAqIHJlcXVlc3RzIGEgbmV3IHNlc3Npb24gSUQgdG8gYmUgYWxsb2NhdGVkLiBDb3JyZXNwb25kcyB0bworICAgICAqIEF1ZGlvTWFuYWdlci5BVURJT19TRVNTSU9OX0lEX0dFTkVSQVRFIGFuZAorICAgICAqIEF1ZGlvU3lzdGVtLkFVRElPX1NFU1NJT05fQUxMT0NBVEUuCisgICAgICovCisgICAgQUxMT0NBVEUgPSAwLAorICAgIC8qKgorICAgICAqIEZvciB1c2Ugd2l0aCBBdWRpb1JlY29yZDo6c3RhcnQoKSwgdGhpcyBpbmRpY2F0ZXMgbm8gdHJpZ2dlciBzZXNzaW9uLgorICAgICAqIEl0IGlzIGFsc28gdXNlZCB3aXRoIG91dHB1dCB0cmFja3MgYW5kIHBhdGNoIHRyYWNrcywgd2hpY2ggbmV2ZXIgaGF2ZSBhCisgICAgICogc2Vzc2lvbi4KKyAgICAgKi8KKyAgICBOT05FID0gMAorfTsKKworLyoqCisgKiBBdWRpbyBmb3JtYXQgIGlzIGEgMzItYml0IHdvcmQgdGhhdCBjb25zaXN0cyBvZjoKKyAqICAgbWFpbiBmb3JtYXQgZmllbGQgKHVwcGVyIDggYml0cykKKyAqICAgc3ViIGZvcm1hdCBmaWVsZCAobG93ZXIgMjQgYml0cykuCisgKgorICogVGhlIG1haW4gZm9ybWF0IGluZGljYXRlcyB0aGUgbWFpbiBjb2RlYyB0eXBlLiBUaGUgc3ViIGZvcm1hdCBmaWVsZCBpbmRpY2F0ZXMKKyAqIG9wdGlvbnMgYW5kIHBhcmFtZXRlcnMgZm9yIGVhY2ggZm9ybWF0LiBUaGUgc3ViIGZvcm1hdCBpcyBtYWlubHkgdXNlZCBmb3IKKyAqIHJlY29yZCB0byBpbmRpY2F0ZSBmb3IgaW5zdGFuY2UgdGhlIHJlcXVlc3RlZCBiaXRyYXRlIG9yIHByb2ZpbGUuICBJdCBjYW4KKyAqIGFsc28gYmUgdXNlZCBmb3IgY2VydGFpbiBmb3JtYXRzIHRvIGdpdmUgaW5mb3JtYXRpb25zIG5vdCBwcmVzZW50IGluIHRoZQorICogZW5jb2RlZCBhdWRpbyBzdHJlYW0gKGUuZy4gb2N0ZXQgYWxpZ25lbWVudCBmb3IgQU1SKS4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19mb3JtYXRfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fRk9STUFUXyIpCitlbnVtIEF1ZGlvRm9ybWF0IDogdWludDMyX3QgeworICAgIElOVkFMSUQgICAgICAgICAgICAgPSAweEZGRkZGRkZGVUwsCisgICAgREVGQVVMVCAgICAgICAgICAgICA9IDAsCisgICAgUENNICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDBVTCwgLyoqIERPIE5PVCBDSEFOR0UgKi8KKyAgICBNUDMgICAgICAgICAgICAgICAgID0gMHgwMTAwMDAwMFVMLAorICAgIEFNUl9OQiAgICAgICAgICAgICAgPSAweDAyMDAwMDAwVUwsCisgICAgQU1SX1dCICAgICAgICAgICAgICA9IDB4MDMwMDAwMDBVTCwKKyAgICBBQUMgICAgICAgICAgICAgICAgID0gMHgwNDAwMDAwMFVMLAorICAgIEhFX0FBQ19WMSAgICAgICAgICAgPSAweDA1MDAwMDAwVUwsIC8qKiBEZXByZWNhdGVkLCBVc2UgQUFDX0hFX1YxICovCisgICAgSEVfQUFDX1YyICAgICAgICAgICA9IDB4MDYwMDAwMDBVTCwgLyoqIERlcHJlY2F0ZWQsIFVzZSBBQUNfSEVfVjIgKi8KKyAgICBWT1JCSVMgICAgICAgICAgICAgID0gMHgwNzAwMDAwMFVMLAorICAgIE9QVVMgICAgICAgICAgICAgICAgPSAweDA4MDAwMDAwVUwsCisgICAgQUMzICAgICAgICAgICAgICAgICA9IDB4MDkwMDAwMDBVTCwKKyAgICBFX0FDMyAgICAgICAgICAgICAgID0gMHgwQTAwMDAwMFVMLAorICAgIERUUyAgICAgICAgICAgICAgICAgPSAweDBCMDAwMDAwVUwsCisgICAgRFRTX0hEICAgICAgICAgICAgICA9IDB4MEMwMDAwMDBVTCwKKyAgICAvLyBJRUM2MTkzNyBpcyBlbmNvZGVkIGF1ZGlvIHdyYXBwZWQgaW4gMTYtYml0IFBDTS4KKyAgICBJRUM2MTkzNyAgICAgICAgICAgID0gMHgwRDAwMDAwMFVMLAorICAgIERPTEJZX1RSVUVIRCAgICAgICAgPSAweDBFMDAwMDAwVUwsCisgICAgRVZSQyAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMDBVTCwKKyAgICBFVlJDQiAgICAgICAgICAgICAgID0gMHgxMTAwMDAwMFVMLAorICAgIEVWUkNXQiAgICAgICAgICAgICAgPSAweDEyMDAwMDAwVUwsCisgICAgRVZSQ05XICAgICAgICAgICAgICA9IDB4MTMwMDAwMDBVTCwKKyAgICBBQUNfQURJRiAgICAgICAgICAgID0gMHgxNDAwMDAwMFVMLAorICAgIFdNQSAgICAgICAgICAgICAgICAgPSAweDE1MDAwMDAwVUwsCisgICAgV01BX1BSTyAgICAgICAgICAgICA9IDB4MTYwMDAwMDBVTCwKKyAgICBBTVJfV0JfUExVUyAgICAgICAgID0gMHgxNzAwMDAwMFVMLAorICAgIE1QMiAgICAgICAgICAgICAgICAgPSAweDE4MDAwMDAwVUwsCisgICAgUUNFTFAgICAgICAgICAgICAgICA9IDB4MTkwMDAwMDBVTCwKKyAgICBEU0QgICAgICAgICAgICAgICAgID0gMHgxQTAwMDAwMFVMLAorICAgIEZMQUMgICAgICAgICAgICAgICAgPSAweDFCMDAwMDAwVUwsCisgICAgQUxBQyAgICAgICAgICAgICAgICA9IDB4MUMwMDAwMDBVTCwKKyAgICBBUEUgICAgICAgICAgICAgICAgID0gMHgxRDAwMDAwMFVMLAorICAgIEFBQ19BRFRTICAgICAgICAgICAgPSAweDFFMDAwMDAwVUwsCisgICAgU0JDICAgICAgICAgICAgICAgICA9IDB4MUYwMDAwMDBVTCwKKyAgICBBUFRYICAgICAgICAgICAgICAgID0gMHgyMDAwMDAwMFVMLAorICAgIEFQVFhfSEQgICAgICAgICAgICAgPSAweDIxMDAwMDAwVUwsCisgICAgQUM0ICAgICAgICAgICAgICAgICA9IDB4MjIwMDAwMDBVTCwKKyAgICBMREFDICAgICAgICAgICAgICAgID0gMHgyMzAwMDAwMFVMLAorICAgIE1BSU5fTUFTSyAgICAgICAgICAgPSAweEZGMDAwMDAwVUwsIC8qKiBEZXByZWNhdGVkICovCisgICAgU1VCX01BU0sgICAgICAgICAgICA9IDB4MDBGRkZGRkZVTCwKKworICAgIC8qKiBTdWJmb3JtYXRzICovCisgICAgUENNX1NVQl8xNl9CSVQgICAgICAgID0gMHgxLCAvLyBQQ00gc2lnbmVkIDE2IGJpdHMKKyAgICBQQ01fU1VCXzhfQklUICAgICAgICAgPSAweDIsIC8vIFBDTSB1bnNpZ25lZCA4IGJpdHMKKyAgICBQQ01fU1VCXzMyX0JJVCAgICAgICAgPSAweDMsIC8vIFBDTSBzaWduZWQgLjMxIGZpeGVkIHBvaW50CisgICAgUENNX1NVQl84XzI0X0JJVCAgICAgID0gMHg0LCAvLyBQQ00gc2lnbmVkIDguMjMgZml4ZWQgcG9pbnQKKyAgICBQQ01fU1VCX0ZMT0FUICAgICAgICAgPSAweDUsIC8vIFBDTSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHB0CisgICAgUENNX1NVQl8yNF9CSVRfUEFDS0VEID0gMHg2LCAvLyBQQ00gc2lnbmVkIC4yMyBmaXggcHQgKDMgYnl0ZXMpCisKKyAgICBNUDNfU1VCX05PTkUgICAgICAgICAgPSAweDAsCisKKyAgICBBTVJfU1VCX05PTkUgICAgICAgICAgPSAweDAsCisKKyAgICBBQUNfU1VCX01BSU4gICAgICAgICAgPSAweDEsCisgICAgQUFDX1NVQl9MQyAgICAgICAgICAgID0gMHgyLAorICAgIEFBQ19TVUJfU1NSICAgICAgICAgICA9IDB4NCwKKyAgICBBQUNfU1VCX0xUUCAgICAgICAgICAgPSAweDgsCisgICAgQUFDX1NVQl9IRV9WMSAgICAgICAgID0gMHgxMCwKKyAgICBBQUNfU1VCX1NDQUxBQkxFICAgICAgPSAweDIwLAorICAgIEFBQ19TVUJfRVJMQyAgICAgICAgICA9IDB4NDAsCisgICAgQUFDX1NVQl9MRCAgICAgICAgICAgID0gMHg4MCwKKyAgICBBQUNfU1VCX0hFX1YyICAgICAgICAgPSAweDEwMCwKKyAgICBBQUNfU1VCX0VMRCAgICAgICAgICAgPSAweDIwMCwKKworICAgIFZPUkJJU19TVUJfTk9ORSAgICAgICA9IDB4MCwKKworICAgIC8qKiBBbGlhc2VzICovCisgICAgLyoqIG5vdGUgIT0gQXVkaW9Gb3JtYXQuRU5DT0RJTkdfUENNXzE2QklUICovCisgICAgUENNXzE2X0JJVCAgICAgICAgICA9IChQQ00gfCBQQ01fU1VCXzE2X0JJVCksCisgICAgLyoqIG5vdGUgIT0gQXVkaW9Gb3JtYXQuRU5DT0RJTkdfUENNXzhCSVQgKi8KKyAgICBQQ01fOF9CSVQgICAgICAgICAgID0gKFBDTSB8IFBDTV9TVUJfOF9CSVQpLAorICAgIFBDTV8zMl9CSVQgICAgICAgICAgPSAoUENNIHwgUENNX1NVQl8zMl9CSVQpLAorICAgIFBDTV84XzI0X0JJVCAgICAgICAgPSAoUENNIHwgUENNX1NVQl84XzI0X0JJVCksCisgICAgUENNX0ZMT0FUICAgICAgICAgICA9IChQQ00gfCBQQ01fU1VCX0ZMT0FUKSwKKyAgICBQQ01fMjRfQklUX1BBQ0tFRCAgID0gKFBDTSB8IFBDTV9TVUJfMjRfQklUX1BBQ0tFRCksCisgICAgQUFDX01BSU4gICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX01BSU4pLAorICAgIEFBQ19MQyAgICAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9MQyksCisgICAgQUFDX1NTUiAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX1NTUiksCisgICAgQUFDX0xUUCAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0xUUCksCisgICAgQUFDX0hFX1YxICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0hFX1YxKSwKKyAgICBBQUNfU0NBTEFCTEUgICAgICAgID0gKEFBQyB8IEFBQ19TVUJfU0NBTEFCTEUpLAorICAgIEFBQ19FUkxDICAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9FUkxDKSwKKyAgICBBQUNfTEQgICAgICAgICAgICAgID0gKEFBQyB8IEFBQ19TVUJfTEQpLAorICAgIEFBQ19IRV9WMiAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9IRV9WMiksCisgICAgQUFDX0VMRCAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0VMRCksCisgICAgQUFDX0FEVFNfTUFJTiAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTUFJTiksCisgICAgQUFDX0FEVFNfTEMgICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTEMpLAorICAgIEFBQ19BRFRTX1NTUiAgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX1NTUiksCisgICAgQUFDX0FEVFNfTFRQICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTFRQKSwKKyAgICBBQUNfQURUU19IRV9WMSAgICAgID0gKEFBQ19BRFRTIHwgQUFDX1NVQl9IRV9WMSksCisgICAgQUFDX0FEVFNfU0NBTEFCTEUgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfU0NBTEFCTEUpLAorICAgIEFBQ19BRFRTX0VSTEMgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX0VSTEMpLAorICAgIEFBQ19BRFRTX0xEICAgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX0xEKSwKKyAgICBBQUNfQURUU19IRV9WMiAgICAgID0gKEFBQ19BRFRTIHwgQUFDX1NVQl9IRV9WMiksCisgICAgQUFDX0FEVFNfRUxEICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfRUxEKQorfTsKKworLyoqCisgKiBVc2FnZSBvZiB0aGVzZSB2YWx1ZXMgaGlnaGxpZ2h0cyBwbGFjZXMgaW4gdGhlIGNvZGUgdGhhdCB1c2UgMi0gb3IgOC0gY2hhbm5lbAorICogYXNzdW1wdGlvbnMuCisgKi8KK0BleHBvcnQobmFtZT0iIikKK2VudW0gRml4ZWRDaGFubmVsQ291bnQgOiBpbnQzMl90IHsKKyAgICBGQ0NfMiA9IDIsIC8vIFRoaXMgaXMgdHlwaWNhbGx5IGR1ZSB0byBsZWdhY3kgaW1wbGVtZW50YXRpb24gb2Ygc3RlcmVvIEkvTworICAgIEZDQ184ID0gOCAgLy8gVGhpcyBpcyB0eXBpY2FsbHkgZHVlIHRvIGF1ZGlvIG1peGVyIGFuZCByZXNhbXBsZXIgbGltaXRhdGlvbnMKK307CisKKy8qKgorICogQSBjaGFubmVsIG1hc2sgcGVyIHNlIG9ubHkgZGVmaW5lcyB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiBhIGNoYW5uZWwsIG5vdAorICogdGhlIG9yZGVyLiAgU2VlIEFVRElPX0lOVEVSTEVBVkVfKiBmb3IgdGhlIHBsYXRmb3JtIGNvbnZlbnRpb24gb2Ygb3JkZXIuCisgKgorICogQXVkaW9DaGFubmVsTWFzayBpcyBhbiBvcGFxdWUgdHlwZSBhbmQgaXRzIGludGVybmFsIGxheW91dCBzaG91bGQgbm90IGJlCisgKiBhc3N1bWVkIGFzIGl0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gIEluc3RlYWQsIGFsd2F5cyB1c2UgZnVuY3Rpb25zCisgKiB0byBleGFtaW5lIGl0LgorICoKKyAqIFRoZXNlIGFyZSB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbnM6CisgKgorICogICBSRVBSRVNFTlRBVElPTl9QT1NJVElPTgorICogICAgIGlzIGEgY2hhbm5lbCBtYXNrIHJlcHJlc2VudGF0aW9uIGZvciBwb3NpdGlvbiBhc3NpZ25tZW50LiAgRWFjaCBsb3ctb3JkZXIKKyAqICAgICBiaXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwYXRpYWwgcG9zaXRpb24gb2YgYSB0cmFuc2R1Y2VyIChvdXRwdXQpLCBvcgorICogICAgIGludGVycHJldGF0aW9uIG9mIGNoYW5uZWwgKGlucHV0KS4gIFRoZSB1c2VyIG9mIGEgY2hhbm5lbCBtYXNrIG5lZWRzIHRvCisgKiAgICAga25vdyB0aGUgY29udGV4dCBvZiB3aGV0aGVyIGl0IGlzIGZvciBvdXRwdXQgb3IgaW5wdXQuICBUaGUgY29uc3RhbnRzCisgKiAgICAgT1VUXyogb3IgSU5fKiBhcHBseSB0byB0aGUgYml0cyBwb3J0aW9uLiAgSXQgaXMgbm90IHBlcm1pdHRlZCBmb3Igbm8gYml0cworICogICAgIHRvIGJlIHNldC4KKyAqCisgKiAgIFJFUFJFU0VOVEFUSU9OX0lOREVYCisgKiAgICAgaXMgYSBjaGFubmVsIG1hc2sgcmVwcmVzZW50YXRpb24gZm9yIGluZGV4IGFzc2lnbm1lbnQuICBFYWNoIGxvdy1vcmRlcgorICogICAgIGJpdCBjb3JyZXNwb25kcyB0byBhIHNlbGVjdGVkIGNoYW5uZWwuICBUaGVyZSBpcyBubyBwbGF0Zm9ybQorICogICAgIGludGVycHJldGF0aW9uIG9mIHRoZSB2YXJpb3VzIGJpdHMuICBUaGVyZSBpcyBubyBjb25jZXB0IG9mIG91dHB1dCBvcgorICogICAgIGlucHV0LiAgSXQgaXMgbm90IHBlcm1pdHRlZCBmb3Igbm8gYml0cyB0byBiZSBzZXQuCisgKgorICogQWxsIG90aGVyIHJlcHJlc2VudGF0aW9ucyBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisgKgorICogV2FybmluZzogY3VycmVudCByZXByZXNlbnRhdGlvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCwgYnV0CisgKiB0aGlzIHdpbGwgbm90IHRoZSBiZSBjYXNlIGluIGZ1dHVyZSByZXZpc2lvbnMgb2YgdGhlIHBsYXRmb3JtLiBXaGVyZXZlciB0aGVyZQorICogaXMgYW4gYW1iaWd1aXR5IGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCB0aGF0IGlzIGN1cnJlbnRseSByZXNvbHZlZCBieQorICogY2hlY2tpbmcgdGhlIGNoYW5uZWwgbWFzaywgdGhlIGltcGxlbWVudGVyIHNob3VsZCBsb29rIGZvciB3YXlzIHRvIGZpeCBpdAorICogd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG91dHNpZGUgb2YgdGhlIG1hc2suCisgKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBVURJT19DSEFOTkVMXyIpCitlbnVtIEF1ZGlvQ2hhbm5lbE1hc2sgOiB1aW50MzJfdCB7CisgICAgUkVQUkVTRU5UQVRJT05fUE9TSVRJT04gPSAwLCAvKiogbXVzdCBiZSAwIGZvciBjb21wYXRpYmlsaXR5ICovCisgICAgLyoqIDEgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKyAgICBSRVBSRVNFTlRBVElPTl9JTkRFWCAgICA9IDIsCisgICAgLyoqIDMgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKworICAgIC8qKiBUaGVzZSBjYW4gYmUgYSBjb21wbGV0ZSB2YWx1ZSBvZiBBdWRpb0NoYW5uZWxNYXNrICovCisgICAgTk9ORSAgICAgICAgICAgICAgICAgICAgICA9IDB4MCwKKyAgICBJTlZBTElEICAgICAgICAgICAgICAgICAgID0gMHhDMDAwMDAwMCwKKworICAgLyoqCisgICAgKiBUaGVzZSBjYW4gYmUgdGhlIGJpdHMgcG9ydGlvbiBvZiBhbiBBdWRpb0NoYW5uZWxNYXNrCisgICAgKiB3aXRoIHJlcHJlc2VudGF0aW9uIFJFUFJFU0VOVEFUSU9OX1BPU0lUSU9OLgorICAgICovCisKKyAgICAvKiogb3V0cHV0IGNoYW5uZWxzICovCisgICAgT1VUX0ZST05UX0xFRlQgICAgICAgICAgICA9IDB4MSwKKyAgICBPVVRfRlJPTlRfUklHSFQgICAgICAgICAgID0gMHgyLAorICAgIE9VVF9GUk9OVF9DRU5URVIgICAgICAgICAgPSAweDQsCisgICAgT1VUX0xPV19GUkVRVUVOQ1kgICAgICAgICA9IDB4OCwKKyAgICBPVVRfQkFDS19MRUZUICAgICAgICAgICAgID0gMHgxMCwKKyAgICBPVVRfQkFDS19SSUdIVCAgICAgICAgICAgID0gMHgyMCwKKyAgICBPVVRfRlJPTlRfTEVGVF9PRl9DRU5URVIgID0gMHg0MCwKKyAgICBPVVRfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSID0gMHg4MCwKKyAgICBPVVRfQkFDS19DRU5URVIgICAgICAgICAgID0gMHgxMDAsCisgICAgT1VUX1NJREVfTEVGVCAgICAgICAgICAgICA9IDB4MjAwLAorICAgIE9VVF9TSURFX1JJR0hUICAgICAgICAgICAgPSAweDQwMCwKKyAgICBPVVRfVE9QX0NFTlRFUiAgICAgICAgICAgID0gMHg4MDAsCisgICAgT1VUX1RPUF9GUk9OVF9MRUZUICAgICAgICA9IDB4MTAwMCwKKyAgICBPVVRfVE9QX0ZST05UX0NFTlRFUiAgICAgID0gMHgyMDAwLAorICAgIE9VVF9UT1BfRlJPTlRfUklHSFQgICAgICAgPSAweDQwMDAsCisgICAgT1VUX1RPUF9CQUNLX0xFRlQgICAgICAgICA9IDB4ODAwMCwKKyAgICBPVVRfVE9QX0JBQ0tfQ0VOVEVSICAgICAgID0gMHgxMDAwMCwKKyAgICBPVVRfVE9QX0JBQ0tfUklHSFQgICAgICAgID0gMHgyMDAwMCwKKworICAgIE9VVF9NT05PICAgICA9IE9VVF9GUk9OVF9MRUZULAorICAgIE9VVF9TVEVSRU8gICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCksCisgICAgT1VUXzJQT0lOVDEgID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwgT1VUX0xPV19GUkVRVUVOQ1kpLAorICAgIE9VVF9RVUFEICAgICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQpLAorICAgIE9VVF9RVUFEX0JBQ0sgPSBPVVRfUVVBRCwKKyAgICAvKiogbGlrZSBPVVRfUVVBRF9CQUNLIHdpdGggKl9TSURFXyogaW5zdGVhZCBvZiAqX0JBQ0tfKiAqLworICAgIE9VVF9RVUFEX1NJREUgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX1NJREVfTEVGVCB8IE9VVF9TSURFX1JJR0hUKSwKKyAgICBPVVRfU1VSUk9VTkQgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX0ZST05UX0NFTlRFUiB8IE9VVF9CQUNLX0NFTlRFUiksCisgICAgT1VUX1BFTlRBID0gKE9VVF9RVUFEIHwgT1VUX0ZST05UX0NFTlRFUiksCisgICAgT1VUXzVQT0lOVDEgICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCB8CisgICAgICAgICAgICBPVVRfRlJPTlRfQ0VOVEVSIHwgT1VUX0xPV19GUkVRVUVOQ1kgfAorICAgICAgICAgICAgT1VUX0JBQ0tfTEVGVCB8IE9VVF9CQUNLX1JJR0hUKSwKKyAgICBPVVRfNVBPSU5UMV9CQUNLID0gT1VUXzVQT0lOVDEsCisgICAgLyoqIGxpa2UgT1VUXzVQT0lOVDFfQkFDSyB3aXRoICpfU0lERV8qIGluc3RlYWQgb2YgKl9CQUNLXyogKi8KKyAgICBPVVRfNVBPSU5UMV9TSURFID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfU0lERV9MRUZUIHwgT1VUX1NJREVfUklHSFQpLAorICAgIE9VVF82UE9JTlQxID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQgfAorICAgICAgICAgICAgT1VUX0JBQ0tfQ0VOVEVSKSwKKyAgICAvKiogbWF0Y2hlcyB0aGUgY29ycmVjdCBBdWRpb0Zvcm1hdC5DSEFOTkVMX09VVF83UE9JTlQxX1NVUlJPVU5EICovCisgICAgT1VUXzdQT0lOVDEgID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQgfAorICAgICAgICAgICAgT1VUX1NJREVfTEVGVCB8IE9VVF9TSURFX1JJR0hUKSwKKyAgICBPVVRfQUxMICAgICAgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX0ZST05UX0NFTlRFUiB8IE9VVF9MT1dfRlJFUVVFTkNZIHwKKyAgICAgICAgICAgIE9VVF9CQUNLX0xFRlQgfCBPVVRfQkFDS19SSUdIVCB8CisgICAgICAgICAgICBPVVRfRlJPTlRfTEVGVF9PRl9DRU5URVIgfCBPVVRfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSIHwKKyAgICAgICAgICAgIE9VVF9CQUNLX0NFTlRFUiB8CisgICAgICAgICAgICBPVVRfU0lERV9MRUZUIHwgT1VUX1NJREVfUklHSFQgfAorICAgICAgICAgICAgT1VUX1RPUF9DRU5URVIgfAorICAgICAgICAgICAgT1VUX1RPUF9GUk9OVF9MRUZUIHwgT1VUX1RPUF9GUk9OVF9DRU5URVIgfCBPVVRfVE9QX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9UT1BfQkFDS19MRUZUIHwgT1VUX1RPUF9CQUNLX0NFTlRFUiB8IE9VVF9UT1BfQkFDS19SSUdIVCksCisKKyAgICAvKiogVGhlc2UgYXJlIGJpdHMgb25seSwgbm90IGNvbXBsZXRlIHZhbHVlcyAqLworCisgICAgLyoqIGlucHV0IGNoYW5uZWxzICovCisgICAgSU5fTEVGVCAgICAgICAgICAgID0gMHg0LAorICAgIElOX1JJR0hUICAgICAgICAgICA9IDB4OCwKKyAgICBJTl9GUk9OVCAgICAgICAgICAgPSAweDEwLAorICAgIElOX0JBQ0sgICAgICAgICAgICA9IDB4MjAsCisgICAgSU5fTEVGVF9QUk9DRVNTRUQgID0gMHg0MCwKKyAgICBJTl9SSUdIVF9QUk9DRVNTRUQgPSAweDgwLAorICAgIElOX0ZST05UX1BST0NFU1NFRCA9IDB4MTAwLAorICAgIElOX0JBQ0tfUFJPQ0VTU0VEICA9IDB4MjAwLAorICAgIElOX1BSRVNTVVJFICAgICAgICA9IDB4NDAwLAorICAgIElOX1hfQVhJUyAgICAgICAgICA9IDB4ODAwLAorICAgIElOX1lfQVhJUyAgICAgICAgICA9IDB4MTAwMCwKKyAgICBJTl9aX0FYSVMgICAgICAgICAgPSAweDIwMDAsCisgICAgSU5fVk9JQ0VfVVBMSU5LICAgID0gMHg0MDAwLAorICAgIElOX1ZPSUNFX0ROTElOSyAgICA9IDB4ODAwMCwKKworICAgIElOX01PTk8gICA9IElOX0ZST05ULAorICAgIElOX1NURVJFTyA9IChJTl9MRUZUIHwgSU5fUklHSFQpLAorICAgIElOX0ZST05UX0JBQ0sgPSAoSU5fRlJPTlQgfCBJTl9CQUNLKSwKKyAgICBJTl82ID0gKElOX0xFRlQgfCBJTl9SSUdIVCB8CisgICAgICAgICAgICBJTl9GUk9OVCB8IElOX0JBQ0sgfAorICAgICAgICAgICAgSU5fTEVGVF9QUk9DRVNTRUQgfCBJTl9SSUdIVF9QUk9DRVNTRUQpLAorICAgIElOX1ZPSUNFX1VQTElOS19NT05PID0gKElOX1ZPSUNFX1VQTElOSyB8IElOX01PTk8pLAorICAgIElOX1ZPSUNFX0ROTElOS19NT05PID0gKElOX1ZPSUNFX0ROTElOSyB8IElOX01PTk8pLAorICAgIElOX1ZPSUNFX0NBTExfTU9OTyAgID0gKElOX1ZPSUNFX1VQTElOS19NT05PIHwKKyAgICAgICAgICAgIElOX1ZPSUNFX0ROTElOS19NT05PKSwKKyAgICBJTl9BTEwgICAgPSAoSU5fTEVGVCB8IElOX1JJR0hUIHwgSU5fRlJPTlQgfCBJTl9CQUNLfAorICAgICAgICAgICAgSU5fTEVGVF9QUk9DRVNTRUQgfCBJTl9SSUdIVF9QUk9DRVNTRUQgfAorICAgICAgICAgICAgSU5fRlJPTlRfUFJPQ0VTU0VEIHwgSU5fQkFDS19QUk9DRVNTRUR8CisgICAgICAgICAgICBJTl9QUkVTU1VSRSB8CisgICAgICAgICAgICBJTl9YX0FYSVMgfCBJTl9ZX0FYSVMgfCBJTl9aX0FYSVMgfAorICAgICAgICAgICAgSU5fVk9JQ0VfVVBMSU5LIHwgSU5fVk9JQ0VfRE5MSU5LKSwKKworICAgIENPVU5UX01BWCAgICA9IDMwLAorICAgIElOREVYX0hEUiAgICA9IFJFUFJFU0VOVEFUSU9OX0lOREVYIDw8IENPVU5UX01BWCwKKyAgICBJTkRFWF9NQVNLXzEgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMSkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzIgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMikgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzMgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMykgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzQgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNCkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzUgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNSkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzYgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNikgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzcgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNykgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzggPSBJTkRFWF9IRFIgfCAoKDEgPDwgOCkgLSAxKQorfTsKKworCisvKioKKyAqIEV4cHJlc3NlcyB0aGUgY29udmVudGlvbiB3aGVuIHN0ZXJlbyBhdWRpbyBzYW1wbGVzIGFyZSBzdG9yZWQgaW50ZXJsZWF2ZWQKKyAqIGluIGFuIGFycmF5LiAgVGhpcyBzaG91bGQgaW1wcm92ZSByZWFkYWJpbGl0eSBieSBhbGxvd2luZyBjb2RlIHRvIHVzZQorICogc3ltYm9saWMgaW5kaWNlcyBpbnN0ZWFkIG9mIGhhcmQtY29kZWQgWzBdIGFuZCBbMV0uCisgKgorICogRm9yIG11bHRpLWNoYW5uZWwgYmV5b25kIHN0ZXJlbywgdGhlIHBsYXRmb3JtIGNvbnZlbnRpb24gaXMgdGhhdCBjaGFubmVscworICogYXJlIGludGVybGVhdmVkIGluIG9yZGVyIGZyb20gbGVhc3Qgc2lnbmlmaWNhbnQgY2hhbm5lbCBtYXNrIGJpdCB0byBtb3N0CisgKiBzaWduaWZpY2FudCBjaGFubmVsIG1hc2sgYml0LCB3aXRoIHVudXNlZCBiaXRzIHNraXBwZWQuICBBbnkgZXhjZXB0aW9ucworICogdG8gdGhpcyBjb252ZW50aW9uIHdpbGwgYmUgbm90ZWQgYXQgdGhlIGFwcHJvcHJpYXRlIEFQSS4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0lOVEVSTEVBVkVfIikKK2VudW0gQXVkaW9JbnRlcmxlYXZlIDogaW50MzJfdCB7CisgICAgTEVGVCAgID0gMCwKKyAgICBSSUdIVCAgPSAxLAorfTsKKworLyoqCisgKiBNYWpvciBtb2RlcyBmb3IgYSBtb2JpbGUgZGV2aWNlLiBUaGUgY3VycmVudCBtb2RlIHNldHRpbmcgYWZmZWN0cyBhdWRpbworICogcm91dGluZy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19tb2RlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX01PREVfIikKK2VudW0gQXVkaW9Nb2RlIDogaW50MzJfdCB7CisgICAgSU5WQUxJRCAgICAgICAgICA9IC0yLAorICAgIENVUlJFTlQgICAgICAgICAgPSAtMSwKKyAgICBOT1JNQUwgICAgICAgICAgID0gMCwKKyAgICBSSU5HVE9ORSAgICAgICAgID0gMSwKKyAgICBJTl9DQUxMICAgICAgICAgID0gMiwKKyAgICBJTl9DT01NVU5JQ0FUSU9OID0gMywKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgID0gQ05UIC0gMSwKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBVURJT19ERVZJQ0VfIikKK2VudW0gQXVkaW9EZXZpY2UgOiB1aW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAsCisgICAgLyoqIHJlc2VydmVkIGJpdHMgKi8KKyAgICBCSVRfSU4gICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODAwMDAwMDAsCisgICAgQklUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgPSAweDQwMDAwMDAwLAorICAgIC8qKiBvdXRwdXQgZGV2aWNlcyAqLworICAgIE9VVF9FQVJQSUVDRSAgICAgICAgICAgICAgICAgID0gMHgxLAorICAgIE9VVF9TUEVBS0VSICAgICAgICAgICAgICAgICAgID0gMHgyLAorICAgIE9VVF9XSVJFRF9IRUFEU0VUICAgICAgICAgICAgID0gMHg0LAorICAgIE9VVF9XSVJFRF9IRUFEUEhPTkUgICAgICAgICAgID0gMHg4LAorICAgIE9VVF9CTFVFVE9PVEhfU0NPICAgICAgICAgICAgID0gMHgxMCwKKyAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUICAgICA9IDB4MjAsCisgICAgT1VUX0JMVUVUT09USF9TQ09fQ0FSS0lUICAgICAgPSAweDQwLAorICAgIE9VVF9CTFVFVE9PVEhfQTJEUCAgICAgICAgICAgID0gMHg4MCwKKyAgICBPVVRfQkxVRVRPT1RIX0EyRFBfSEVBRFBIT05FUyA9IDB4MTAwLAorICAgIE9VVF9CTFVFVE9PVEhfQTJEUF9TUEVBS0VSICAgID0gMHgyMDAsCisgICAgT1VUX0FVWF9ESUdJVEFMICAgICAgICAgICAgICAgPSAweDQwMCwKKyAgICBPVVRfSERNSSAgICAgICAgICAgICAgICAgICAgICA9IE9VVF9BVVhfRElHSVRBTCwKKyAgICAvKiogdXNlcyBhbiBhbmFsb2cgY29ubmVjdGlvbiAobXVsdGlwbGV4ZWQgb3ZlciB0aGUgVVNCIHBpbnMgZm9yIGluc3RhbmNlKSAqLworICAgIE9VVF9BTkxHX0RPQ0tfSEVBRFNFVCAgICAgICAgID0gMHg4MDAsCisgICAgT1VUX0RHVExfRE9DS19IRUFEU0VUICAgICAgICAgPSAweDEwMDAsCisgICAgLyoqIFVTQiBhY2Nlc3NvcnkgbW9kZTogQW5kcm9pZCBkZXZpY2UgaXMgVVNCIGRldmljZSBhbmQgZG9jayBpcyBVU0IgaG9zdCAqLworICAgIE9VVF9VU0JfQUNDRVNTT1JZICAgICAgICAgICAgID0gMHgyMDAwLAorICAgIC8qKiBVU0IgaG9zdCBtb2RlOiBBbmRyb2lkIGRldmljZSBpcyBVU0IgaG9zdCBhbmQgZG9jayBpcyBVU0IgZGV2aWNlICovCisgICAgT1VUX1VTQl9ERVZJQ0UgICAgICAgICAgICAgICAgPSAweDQwMDAsCisgICAgT1VUX1JFTU9URV9TVUJNSVggICAgICAgICAgICAgPSAweDgwMDAsCisgICAgLyoqIFRlbGVwaG9ueSB2b2ljZSBUWCBwYXRoICovCisgICAgT1VUX1RFTEVQSE9OWV9UWCAgICAgICAgICAgICAgPSAweDEwMDAwLAorICAgIC8qKiBBbmFsb2cgamFjayB3aXRoIGxpbmUgaW1wZWRhbmNlIGRldGVjdGVkICovCisgICAgT1VUX0xJTkUgICAgICAgICAgICAgICAgICAgICAgPSAweDIwMDAwLAorICAgIC8qKiBIRE1JIEF1ZGlvIFJldHVybiBDaGFubmVsICovCisgICAgT1VUX0hETUlfQVJDICAgICAgICAgICAgICAgICAgPSAweDQwMDAwLAorICAgIC8qKiBTL1BESUYgb3V0ICovCisgICAgT1VUX1NQRElGICAgICAgICAgICAgICAgICAgICAgPSAweDgwMDAwLAorICAgIC8qKiBGTSB0cmFuc21pdHRlciBvdXQgKi8KKyAgICBPVVRfRk0gICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwMDAwLAorICAgIC8qKiBMaW5lIG91dCBmb3IgYXYgZGV2aWNlcyAqLworICAgIE9VVF9BVVhfTElORSAgICAgICAgICAgICAgICAgID0gMHgyMDAwMDAsCisgICAgLyoqIGxpbWl0ZWQtb3V0cHV0IHNwZWFrZXIgZGV2aWNlIGZvciBhY291c3RpYyBzYWZldHkgKi8KKyAgICBPVVRfU1BFQUtFUl9TQUZFICAgICAgICAgICAgICA9IDB4NDAwMDAwLAorICAgIE9VVF9JUCAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4MDAwMDAsCisgICAgLyoqIGF1ZGlvIGJ1cyBpbXBsZW1lbnRlZCBieSB0aGUgYXVkaW8gc3lzdGVtIChlLmcgYW4gTU9TVCBzdGVyZW8gY2hhbm5lbCkgKi8KKyAgICBPVVRfQlVTICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMCwKKyAgICBPVVRfUFJPWFkgICAgICAgICAgICAgICAgICAgICA9IDB4MjAwMDAwMCwKKyAgICBPVVRfVVNCX0hFQURTRVQgICAgICAgICAgICAgICA9IDB4NDAwMDAwMCwKKyAgICBPVVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICA9IEJJVF9ERUZBVUxULAorICAgIE9VVF9BTEwgICAgICA9IChPVVRfRUFSUElFQ0UgfAorICAgICAgICAgICAgT1VUX1NQRUFLRVIgfAorICAgICAgICAgICAgT1VUX1dJUkVEX0hFQURTRVQgfAorICAgICAgICAgICAgT1VUX1dJUkVEX0hFQURQSE9ORSB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDTyB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9CTFVFVE9PVEhfU0NPX0NBUktJVCB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX0EyRFAgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX0hFQURQSE9ORVMgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIgfAorICAgICAgICAgICAgT1VUX0hETUkgfAorICAgICAgICAgICAgT1VUX0FOTEdfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9ER1RMX0RPQ0tfSEVBRFNFVCB8CisgICAgICAgICAgICBPVVRfVVNCX0FDQ0VTU09SWSB8CisgICAgICAgICAgICBPVVRfVVNCX0RFVklDRSB8CisgICAgICAgICAgICBPVVRfUkVNT1RFX1NVQk1JWCB8CisgICAgICAgICAgICBPVVRfVEVMRVBIT05ZX1RYIHwKKyAgICAgICAgICAgIE9VVF9MSU5FIHwKKyAgICAgICAgICAgIE9VVF9IRE1JX0FSQyB8CisgICAgICAgICAgICBPVVRfU1BESUYgfAorICAgICAgICAgICAgT1VUX0ZNIHwKKyAgICAgICAgICAgIE9VVF9BVVhfTElORSB8CisgICAgICAgICAgICBPVVRfU1BFQUtFUl9TQUZFIHwKKyAgICAgICAgICAgIE9VVF9JUCB8CisgICAgICAgICAgICBPVVRfQlVTIHwKKyAgICAgICAgICAgIE9VVF9QUk9YWSB8CisgICAgICAgICAgICBPVVRfVVNCX0hFQURTRVQgfAorICAgICAgICAgICAgT1VUX0RFRkFVTFQpLAorICAgIE9VVF9BTExfQTJEUCA9IChPVVRfQkxVRVRPT1RIX0EyRFAgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX0hFQURQSE9ORVMgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIpLAorICAgIE9VVF9BTExfU0NPICA9IChPVVRfQkxVRVRPT1RIX1NDTyB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9CTFVFVE9PVEhfU0NPX0NBUktJVCksCisgICAgT1VUX0FMTF9VU0IgID0gKE9VVF9VU0JfQUNDRVNTT1JZIHwgT1VUX1VTQl9ERVZJQ0UgfCBPVVRfVVNCX0hFQURTRVQpLAorICAgIC8qKiBpbnB1dCBkZXZpY2VzICovCisgICAgSU5fQ09NTVVOSUNBVElPTiAgICAgICAgID0gQklUX0lOIHwgMHgxLAorICAgIElOX0FNQklFTlQgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MiwKKyAgICBJTl9CVUlMVElOX01JQyAgICAgICAgICAgPSBCSVRfSU4gfCAweDQsCisgICAgSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VUID0gQklUX0lOIHwgMHg4LAorICAgIElOX1dJUkVEX0hFQURTRVQgICAgICAgICA9IEJJVF9JTiB8IDB4MTAsCisgICAgSU5fQVVYX0RJR0lUQUwgICAgICAgICAgID0gQklUX0lOIHwgMHgyMCwKKyAgICBJTl9IRE1JICAgICAgICAgICAgICAgICAgPSBJTl9BVVhfRElHSVRBTCwKKyAgICAvKiogVGVsZXBob255IHZvaWNlIFJYIHBhdGggKi8KKyAgICBJTl9WT0lDRV9DQUxMICAgICAgICAgICAgPSBCSVRfSU4gfCAweDQwLAorICAgIElOX1RFTEVQSE9OWV9SWCAgICAgICAgICA9IElOX1ZPSUNFX0NBTEwsCisgICAgSU5fQkFDS19NSUMgICAgICAgICAgICAgID0gQklUX0lOIHwgMHg4MCwKKyAgICBJTl9SRU1PVEVfU1VCTUlYICAgICAgICAgPSBCSVRfSU4gfCAweDEwMCwKKyAgICBJTl9BTkxHX0RPQ0tfSEVBRFNFVCAgICAgPSBCSVRfSU4gfCAweDIwMCwKKyAgICBJTl9ER1RMX0RPQ0tfSEVBRFNFVCAgICAgPSBCSVRfSU4gfCAweDQwMCwKKyAgICBJTl9VU0JfQUNDRVNTT1JZICAgICAgICAgPSBCSVRfSU4gfCAweDgwMCwKKyAgICBJTl9VU0JfREVWSUNFICAgICAgICAgICAgPSBCSVRfSU4gfCAweDEwMDAsCisgICAgLyoqIEZNIHR1bmVyIGlucHV0ICovCisgICAgSU5fRk1fVFVORVIgICAgICAgICAgICAgID0gQklUX0lOIHwgMHgyMDAwLAorICAgIC8qKiBUViB0dW5lciBpbnB1dCAqLworICAgIElOX1RWX1RVTkVSICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4NDAwMCwKKyAgICAvKiogQW5hbG9nIGphY2sgd2l0aCBsaW5lIGltcGVkYW5jZSBkZXRlY3RlZCAqLworICAgIElOX0xJTkUgICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4ODAwMCwKKyAgICAvKiogUy9QRElGIGluICovCisgICAgSU5fU1BESUYgICAgICAgICAgICAgICAgID0gQklUX0lOIHwgMHgxMDAwMCwKKyAgICBJTl9CTFVFVE9PVEhfQTJEUCAgICAgICAgPSBCSVRfSU4gfCAweDIwMDAwLAorICAgIElOX0xPT1BCQUNLICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4NDAwMDAsCisgICAgSU5fSVAgICAgICAgICAgICAgICAgICAgID0gQklUX0lOIHwgMHg4MDAwMCwKKyAgICAvKiogYXVkaW8gYnVzIGltcGxlbWVudGVkIGJ5IHRoZSBhdWRpbyBzeXN0ZW0gKGUuZyBhbiBNT1NUIHN0ZXJlbyBjaGFubmVsKSAqLworICAgIElOX0JVUyAgICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MTAwMDAwLAorICAgIElOX1BST1hZICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MTAwMDAwMCwKKyAgICBJTl9VU0JfSEVBRFNFVCAgICAgICAgICAgPSBCSVRfSU4gfCAweDIwMDAwMDAsCisgICAgSU5fREVGQVVMVCAgICAgICAgICAgICAgID0gQklUX0lOIHwgQklUX0RFRkFVTFQsCisKKyAgICBJTl9BTEwgICAgID0gKElOX0NPTU1VTklDQVRJT04gfAorICAgICAgICAgICAgSU5fQU1CSUVOVCB8CisgICAgICAgICAgICBJTl9CVUlMVElOX01JQyB8CisgICAgICAgICAgICBJTl9CTFVFVE9PVEhfU0NPX0hFQURTRVQgfAorICAgICAgICAgICAgSU5fV0lSRURfSEVBRFNFVCB8CisgICAgICAgICAgICBJTl9IRE1JIHwKKyAgICAgICAgICAgIElOX1RFTEVQSE9OWV9SWCB8CisgICAgICAgICAgICBJTl9CQUNLX01JQyB8CisgICAgICAgICAgICBJTl9SRU1PVEVfU1VCTUlYIHwKKyAgICAgICAgICAgIElOX0FOTEdfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIElOX0RHVExfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIElOX1VTQl9BQ0NFU1NPUlkgfAorICAgICAgICAgICAgSU5fVVNCX0RFVklDRSB8CisgICAgICAgICAgICBJTl9GTV9UVU5FUiB8CisgICAgICAgICAgICBJTl9UVl9UVU5FUiB8CisgICAgICAgICAgICBJTl9MSU5FIHwKKyAgICAgICAgICAgIElOX1NQRElGIHwKKyAgICAgICAgICAgIElOX0JMVUVUT09USF9BMkRQIHwKKyAgICAgICAgICAgIElOX0xPT1BCQUNLIHwKKyAgICAgICAgICAgIElOX0lQIHwKKyAgICAgICAgICAgIElOX0JVUyB8CisgICAgICAgICAgICBJTl9QUk9YWSB8CisgICAgICAgICAgICBJTl9VU0JfSEVBRFNFVCB8CisgICAgICAgICAgICBJTl9ERUZBVUxUKSwKKyAgICBJTl9BTExfU0NPID0gSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VULAorICAgIElOX0FMTF9VU0IgID0gKElOX1VTQl9BQ0NFU1NPUlkgfCBJTl9VU0JfREVWSUNFIHwgSU5fVVNCX0hFQURTRVQpLAorfTsKKworLyoqCisgKiBUaGUgYXVkaW8gb3V0cHV0IGZsYWdzIHNlcnZlIHR3byBwdXJwb3NlczoKKyAqCisgKiAgLSB3aGVuIGFuIEF1ZGlvVHJhY2sgaXMgY3JlYXRlZCB0aGV5IGluZGljYXRlIGEgIndpc2giIHRvIGJlIGNvbm5lY3RlZCB0byBhbgorICogICAgb3V0cHV0IHN0cmVhbSB3aXRoIGF0dHJpYnV0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGZsYWdzOworICoKKyAqICAtIHdoZW4gcHJlc2VudCBpbiBhbiBvdXRwdXQgcHJvZmlsZSBkZXNjcmlwdG9yIGxpc3RlZCBmb3IgYSBwYXJ0aWN1bGFyIGF1ZGlvCisgKiAgICBoYXJkd2FyZSBtb2R1bGUsIHRoZXkgaW5kaWNhdGUgdGhhdCBhbiBvdXRwdXQgc3RyZWFtIGNhbiBiZSBvcGVuZWQgdGhhdAorICogICAgc3VwcG9ydHMgdGhlIGF0dHJpYnV0ZXMgaW5kaWNhdGVkIGJ5IHRoZSBmbGFncy4KKyAqCisgKiBUaGUgYXVkaW8gcG9saWN5IG1hbmFnZXIgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIGZsYWdzIGluIHRoZSByZXF1ZXN0CisgKiAod2hlbiBnZXRPdXB1dCgpIGlzIGNhbGxlZCkgdG8gYW4gYXZhaWxhYmxlIG91dHB1dCBzdHJlYW0uCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fb3V0cHV0X2ZsYWdzX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX09VVFBVVF9GTEFHXyIpCitlbnVtIEF1ZGlvT3V0cHV0RmxhZyA6IGludDMyX3QgeworICAgIE5PTkUgICAgPSAweDAsIC8vIG5vIGF0dHJpYnV0ZXMKKyAgICBESVJFQ1QgID0gMHgxLCAvLyB0aGlzIG91dHB1dCBkaXJlY3RseSBjb25uZWN0cyBhIHRyYWNrCisgICAgICAgICAgICAgICAgICAgLy8gdG8gb25lIG91dHB1dCBzdHJlYW06IG5vIHNvZnR3YXJlIG1peGVyCisgICAgUFJJTUFSWSA9IDB4MiwgLy8gdGhpcyBvdXRwdXQgaXMgdGhlIHByaW1hcnkgb3V0cHV0IG9mIHRoZSBkZXZpY2UuIEl0IGlzCisgICAgICAgICAgICAgICAgICAgLy8gdW5pcXVlIGFuZCBtdXN0IGJlIHByZXNlbnQuIEl0IGlzIG9wZW5lZCBieSBkZWZhdWx0IGFuZAorICAgICAgICAgICAgICAgICAgIC8vIHJlY2VpdmVzIHJvdXRpbmcsIGF1ZGlvIG1vZGUgYW5kIHZvbHVtZSBjb250cm9scyByZWxhdGVkCisgICAgICAgICAgICAgICAgICAgLy8gdG8gdm9pY2UgY2FsbHMuCisgICAgRkFTVCAgICA9IDB4NCwgICAgLy8gb3V0cHV0IHN1cHBvcnRzICJmYXN0IHRyYWNrcyIsIGRlZmluZWQgZWxzZXdoZXJlCisgICAgREVFUF9CVUZGRVIgICAgICA9IDB4OCwgICAvLyB1c2UgZGVlcCBhdWRpbyBidWZmZXJzCisgICAgQ09NUFJFU1NfT0ZGTE9BRCA9IDB4MTAsICAvLyBvZmZsb2FkIHBsYXliYWNrIG9mIGNvbXByZXNzZWQgc3RyZWFtcyB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFyZHdhcmUgY29kZWMKKyAgICBOT05fQkxPQ0tJTkcgICAgID0gMHgyMCwgIC8vIHVzZSBub24tYmxvY2tpbmcgd3JpdGUKKyAgICBIV19BVl9TWU5DID0gMHg0MCwgICAvLyBvdXRwdXQgdXNlcyBhIGhhcmR3YXJlIEEvViBzeW5jCisgICAgVFRTICAgICAgICA9IDB4ODAsICAgLy8gb3V0cHV0IGZvciBzdHJlYW1zIHRyYW5zbWl0dGVkIHRocm91Z2ggc3BlYWtlciBhdCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtcGxlIHJhdGUgaGlnaCBlbm91Z2ggdG8gYWNjb21tb2RhdGUgbG93ZXItcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bHRyYXNvbmljIHAvYgorICAgIFJBVyAgICAgICAgPSAweDEwMCwgIC8vIG1pbmltaXplIHNpZ25hbCBwcm9jZXNzaW5nCisgICAgU1lOQyAgICAgICA9IDB4MjAwLCAgLy8gc3luY2hyb25pemUgSS9PIHN0cmVhbXMKKyAgICBJRUM5NThfTk9OQVVESU8gPSAweDQwMCwgLy8gQXVkaW8gc3RyZWFtIGNvbnRhaW5zIGNvbXByZXNzZWQgYXVkaW8gaW4gU1BESUYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YSBidXJzdHMsIG5vdCBQQ00uCisgICAgRElSRUNUX1BDTSA9IDB4MjAwMCwgICAgIC8vIEF1ZGlvIHN0cmVhbSBjb250YWluaW5nIFBDTSBkYXRhIHRoYXQgbmVlZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gcGFzcyB0aHJvdWdoIGNvbXByZXNzIHBhdGggZm9yIERTUCBwb3N0IHByb2MuCisgICAgTU1BUF9OT0lSUSA9IDB4NDAwMCwgLy8gb3V0cHV0IG9wZXJhdGVzIGluIE1NQVAgbm8gSVJRIG1vZGUuCisgICAgVk9JUF9SWCA9IDB4ODAwMCwgICAgLy8gcHJlZmVycmVkIG91dHB1dCBmb3IgVm9JUCBjYWxscy4KK307CisKKy8qKgorICogVGhlIGF1ZGlvIGlucHV0IGZsYWdzIGFyZSBhbmFsb2dvdXMgdG8gYXVkaW8gb3V0cHV0IGZsYWdzLgorICogQ3VycmVudGx5IHRoZXkgYXJlIHVzZWQgb25seSB3aGVuIGFuIEF1ZGlvUmVjb3JkIGlzIGNyZWF0ZWQsCisgKiB0byBpbmRpY2F0ZSBhIHByZWZlcmVuY2UgdG8gYmUgY29ubmVjdGVkIHRvIGFuIGlucHV0IHN0cmVhbSB3aXRoCisgKiBhdHRyaWJ1dGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmbGFncy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19pbnB1dF9mbGFnc190IiwgdmFsdWVfcHJlZml4PSJBVURJT19JTlBVVF9GTEFHXyIpCitlbnVtIEF1ZGlvSW5wdXRGbGFnIDogaW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgID0gMHgwLCAgLy8gbm8gYXR0cmlidXRlcworICAgIEZBU1QgICAgICAgICA9IDB4MSwgIC8vIHByZWZlciBhbiBpbnB1dCB0aGF0IHN1cHBvcnRzICJmYXN0IHRyYWNrcyIKKyAgICBIV19IT1RXT1JEICAgPSAweDIsICAvLyBwcmVmZXIgYW4gaW5wdXQgdGhhdCBjYXB0dXJlcyBmcm9tIGh3IGhvdHdvcmQgc291cmNlCisgICAgUkFXICAgICAgICAgID0gMHg0LCAgLy8gbWluaW1pemUgc2lnbmFsIHByb2Nlc3NpbmcKKyAgICBTWU5DICAgICAgICAgPSAweDgsICAvLyBzeW5jaHJvbml6ZSBJL08gc3RyZWFtcworICAgIE1NQVBfTk9JUlEgICA9IDB4MTAsIC8vIGlucHV0IG9wZXJhdGVzIGluIE1NQVAgbm8gSVJRIG1vZGUuCisgICAgVk9JUF9UWCAgICAgID0gMHgyMCwgLy8gcHJlZmVycmVkIGlucHV0IGZvciBWb0lQIGNhbGxzLgorfTsKKworQGV4cG9ydChuYW1lPSJhdWRpb191c2FnZV90IiwgdmFsdWVfcHJlZml4PSJBVURJT19VU0FHRV8iKQorZW51bSBBdWRpb1VzYWdlIDogaW50MzJfdCB7CisgICAgLy8gVGhlc2UgdmFsdWVzIG11c3Qga2VwdCBpbiBzeW5jIHdpdGgKKyAgICAvLyAgZnJhbWV3b3Jrcy9iYXNlL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9BdWRpb0F0dHJpYnV0ZXMuamF2YQorICAgIFVOS05PV04gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIE1FRElBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgIFZPSUNFX0NPTU1VTklDQVRJT04gICAgICAgICAgICAgICAgPSAyLAorICAgIFZPSUNFX0NPTU1VTklDQVRJT05fU0lHTkFMTElORyAgICAgPSAzLAorICAgIEFMQVJNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgIE5PVElGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgICAgPSA1LAorICAgIE5PVElGSUNBVElPTl9URUxFUEhPTllfUklOR1RPTkUgICAgPSA2LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX1JFUVVFU1QgPSA3LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX0lOU1RBTlQgPSA4LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX0RFTEFZRUQgPSA5LAorICAgIE5PVElGSUNBVElPTl9FVkVOVCAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICBBU1NJU1RBTkNFX0FDQ0VTU0lCSUxJVFkgICAgICAgICAgID0gMTEsCisgICAgQVNTSVNUQU5DRV9OQVZJR0FUSU9OX0dVSURBTkNFICAgICA9IDEyLAorICAgIEFTU0lTVEFOQ0VfU09OSUZJQ0FUSU9OICAgICAgICAgICAgPSAxMywKKyAgICBHQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQsCisgICAgVklSVFVBTF9TT1VSQ0UgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgIEFTU0lTVEFOVCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQ05UIC0gMSwKK307CisKKy8qKgorICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIHBhc3NlZCB0byBoYXJkd2FyZSBkZWNvZGVycy4KKyAqLworc3RydWN0IEF1ZGlvT2ZmbG9hZEluZm8geworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGNoYW5uZWxNYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBBdWRpb1N0cmVhbVR5cGUgc3RyZWFtVHlwZTsKKyAgICB1aW50MzJfdCBiaXRSYXRlUGVyU2Vjb25kOworICAgIGludDY0X3QgZHVyYXRpb25NaWNyb3NlY29uZHM7ICAvLyAtMSBpZiB1bmtub3duCisgICAgYm9vbCBoYXNWaWRlbzsKKyAgICBib29sIGlzU3RyZWFtaW5nOworICAgIHVpbnQzMl90IGJpdFdpZHRoOworICAgIHVpbnQzMl90IGJ1ZmZlclNpemU7CisgICAgQXVkaW9Vc2FnZSB1c2FnZTsKK307CisKKy8qKgorICogQ29tbW9ubHkgdXNlZCBhdWRpbyBzdHJlYW0gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgorICovCitzdHJ1Y3QgQXVkaW9Db25maWcgeworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGNoYW5uZWxNYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBBdWRpb09mZmxvYWRJbmZvIG9mZmxvYWRJbmZvOworICAgIHVpbnQ2NF90IGZyYW1lQ291bnQ7Cit9OworCisKKy8qKgorICoKKyAqICBWb2x1bWUgY29udHJvbAorICoKKyAqLworCisvKioKKyAqIFR5cGUgb2YgZ2FpbiBjb250cm9sIGV4cG9zZWQgYnkgYW4gYXVkaW8gcG9ydC4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0dBSU5fTU9ERV8iKQorZW51bSBBdWRpb0dhaW5Nb2RlIDogdWludDMyX3QgeworICAgIEpPSU5UID0gMHgxLCAgICAvLyBzdXBwb3J0cyBqb2ludCBjaGFubmVsIGdhaW4gY29udHJvbAorICAgIENIQU5ORUxTID0gMHgyLCAvLyBzdXBwb3J0cyBzZXBhcmF0ZSBjaGFubmVsIGdhaW4gY29udHJvbAorICAgIFJBTVAgPSAweDQgICAgICAvLyBzdXBwb3J0cyBnYWluIHJhbXBzCit9OworCisvKioKKyAqIEFuIGF1ZGlvX2dhaW4gc3RydWN0IGlzIGEgcmVwcmVzZW50YXRpb24gb2YgYSBnYWluIHN0YWdlLgorICogQSBnYWluIHN0YWdlIGlzIGFsd2F5cyBhdHRhY2hlZCB0byBhbiBhdWRpbyBwb3J0LgorICovCitzdHJ1Y3QgQXVkaW9HYWluIHsKKyAgICBBdWRpb0dhaW5Nb2RlIG1vZGU7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsTWFzazsgLy8gY2hhbm5lbHMgd2hpY2ggZ2FpbiBhbiBiZSBjb250cm9sbGVkCisgICAgaW50MzJfdCBtaW5WYWx1ZTsgICAgIC8vIG1pbmltdW0gZ2FpbiB2YWx1ZSBpbiBtaWxsaWJlbHMKKyAgICBpbnQzMl90IG1heFZhbHVlOyAgICAgLy8gbWF4aW11bSBnYWluIHZhbHVlIGluIG1pbGxpYmVscworICAgIGludDMyX3QgZGVmYXVsdFZhbHVlOyAvLyBkZWZhdWx0IGdhaW4gdmFsdWUgaW4gbWlsbGliZWxzCisgICAgdWludDMyX3Qgc3RlcFZhbHVlOyAgIC8vIGdhaW4gc3RlcCBpbiBtaWxsaWJlbHMKKyAgICB1aW50MzJfdCBtaW5SYW1wTXM7ICAgLy8gbWluaW11bSByYW1wIGR1cmF0aW9uIGluIG1zCisgICAgdWludDMyX3QgbWF4UmFtcE1zOyAgIC8vIG1heGltdW0gcmFtcCBkdXJhdGlvbiBpbiBtcworfTsKKworLyoqCisgKiBUaGUgZ2FpbiBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGdldCBvciBzZXQgdGhlIGdhaW4gdmFsdWVzIG9mIGEKKyAqIGdpdmVuIHBvcnQuCisgKi8KK3N0cnVjdCBBdWRpb0dhaW5Db25maWcgeworICAgIGludDMyX3QgaW5kZXg7ICAvLyBpbmRleCBvZiB0aGUgY29ycmVzcG9uZGluZyBBdWRpb0dhaW4gaW4gQXVkaW9Qb3J0LmdhaW5zCisgICAgQXVkaW9HYWluTW9kZSBtb2RlOworICAgIEF1ZGlvQ2hhbm5lbE1hc2sgY2hhbm5lbE1hc2s7ICAvLyBjaGFubmVscyB3aGljaCBnYWluIHZhbHVlIGZvbGxvd3MKKyAgICAvKioKKyAgICAgKiA0ID0gc2l6ZW9mKEF1ZGlvQ2hhbm5lbE1hc2spLAorICAgICAqIDggaXMgbm90ICJGQ0NfOCIsIHNvIGl0IHdvbid0IG5lZWQgdG8gYmUgY2hhbmdlZCBmb3IgPiA4IGNoYW5uZWxzLgorICAgICAqIEdhaW4gdmFsdWVzIGluIG1pbGxpYmVscyBmb3IgZWFjaCBjaGFubmVsIG9yZGVyZWQgZnJvbSBMU2IgdG8gTVNiIGluCisgICAgICogY2hhbm5lbCBtYXNrLiBUaGUgbnVtYmVyIG9mIHZhbHVlcyBpcyAxIGluIGpvaW50IG1vZGUgb3IKKyAgICAgKiBwb3Bjb3VudChjaGFubmVsX21hc2spLgorICAgICAqLworICAgIGludDMyX3RbNCAqIDhdIHZhbHVlczsKKyAgICB1aW50MzJfdCByYW1wRHVyYXRpb25NczsgIC8vIHJhbXAgZHVyYXRpb24gaW4gbXMKK307CisKKworLyoqCisgKgorICogIFJvdXRpbmcgY29udHJvbAorICoKKyAqLworCisvKioKKyAqIFR5cGVzIGRlZmluZWQgaGVyZSBhcmUgdXNlZCB0byBkZXNjcmliZSBhbiBhdWRpbyBzb3VyY2Ugb3Igc2luayBhdCBpbnRlcm5hbAorICogZnJhbWV3b3JrIGludGVyZmFjZXMgKGF1ZGlvIHBvbGljeSwgcGF0Y2ggcGFuZWwpIG9yIGF0IHRoZSBhdWRpbyBIQUwuCisgKiBTaW5rIGFuZCBzb3VyY2VzIGFyZSBncm91cGVkIGluIGEgY29uY2VwdCBvZiDigJxhdWRpbyBwb3J04oCdIHJlcHJlc2VudGluZyBhbgorICogYXVkaW8gZW5kIHBvaW50IGF0IHRoZSBlZGdlIG9mIHRoZSBzeXN0ZW0gbWFuYWdlZCBieSB0aGUgbW9kdWxlIGV4cG9zaW5nCisgKiB0aGUgaW50ZXJmYWNlLgorICovCisKKy8qKiBBdWRpbyBwb3J0IHJvbGU6IGVpdGhlciBzb3VyY2Ugb3Igc2luayAqLworQGV4cG9ydChuYW1lPSJhdWRpb19wb3J0X3JvbGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fUE9SVF9ST0xFXyIpCitlbnVtIEF1ZGlvUG9ydFJvbGUgOiBpbnQzMl90IHsKKyAgICBOT05FLAorICAgIFNPVVJDRSwKKyAgICBTSU5LLAorfTsKKworLyoqCisgKiBBdWRpbyBwb3J0IHR5cGUgaW5kaWNhdGVzIGlmIGl0IGlzIGEgc2Vzc2lvbiAoZS5nIEF1ZGlvVHJhY2spLCBhIG1peCAoZS5nCisgKiBQbGF5YmFja1RocmVhZCBvdXRwdXQpIG9yIGEgcGh5c2ljYWwgZGV2aWNlIChlLmcgT1VUX1NQRUFLRVIpCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fcG9ydF90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1BPUlRfVFlQRV8iKQorZW51bSBBdWRpb1BvcnRUeXBlIDogaW50MzJfdCB7CisgICAgTk9ORSwKKyAgICBERVZJQ0UsCisgICAgTUlYLAorICAgIFNFU1NJT04sCit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSB3aGVuIHRoZSBhdWRpbyBwb3J0IGlzIGEKKyAqIGhhcmR3YXJlIGRldmljZS4KKyAqLworc3RydWN0IEF1ZGlvUG9ydENvbmZpZ0RldmljZUV4dCB7CisgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7ICAvLyBtb2R1bGUgdGhlIGRldmljZSBpcyBhdHRhY2hlZCB0bworICAgIEF1ZGlvRGV2aWNlIHR5cGU7ICAgICAgICAgICAgLy8gZGV2aWNlIHR5cGUgKGUuZyBPVVRfU1BFQUtFUikKKyAgICB1aW50OF90WzMyXSBhZGRyZXNzOyAgICAgICAgIC8vIGRldmljZSBhZGRyZXNzLiAiIiBpZiBOL0EKK307CisKKy8qKgorICogRXh0ZW5zaW9uIGZvciBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHdoZW4gdGhlIGF1ZGlvIHBvcnQgaXMgYW4KKyAqIGF1ZGlvIHNlc3Npb24uCisgKi8KK3N0cnVjdCBBdWRpb1BvcnRDb25maWdTZXNzaW9uRXh0IHsKKyAgICBBdWRpb1Nlc3Npb24gc2Vzc2lvbjsKK307CisKKy8qKgorICogRmxhZ3MgaW5kaWNhdGluZyB3aGljaCBmaWVsZHMgYXJlIHRvIGJlIGNvbnNpZGVyZWQgaW4gQXVkaW9Qb3J0Q29uZmlnLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQVVESU9fUE9SVF9DT05GSUdfIikKK2VudW0gQXVkaW9Qb3J0Q29uZmlnTWFzayA6IHVpbnQzMl90IHsKKyAgICBTQU1QTEVfUkFURSA9IDB4MSwKKyAgICBDSEFOTkVMX01BU0sgPSAgMHgyLAorICAgIEZPUk1BVCA9IDB4NCwKKyAgICBHQUlOID0gMHg4LAorICAgIEFMTCA9IFNBTVBMRV9SQVRFIHwgQ0hBTk5FTF9NQVNLIHwgRk9STUFUIHwgR0FJTgorfTsKKworLyoqCisgKiBBdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHVzZWQgdG8gc3BlY2lmeSBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbgorICogb2YgYW4gYXVkaW8gcG9ydC4KKyAqLworc3RydWN0IEF1ZGlvUG9ydENvbmZpZyB7CisgICAgQXVkaW9Qb3J0SGFuZGxlIGlkOworICAgIEF1ZGlvUG9ydENvbmZpZ01hc2sgY29uZmlnTWFzazsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsTWFzazsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgQXVkaW9HYWluQ29uZmlnIGdhaW47CisgICAgQXVkaW9Qb3J0VHlwZSB0eXBlOyAgLy8gdHlwZSBpcyB1c2VkIGFzIGEgZGlzY3JpbWluYXRvciBmb3IgRXh0IHVuaW9uCisgICAgQXVkaW9Qb3J0Um9sZSByb2xlOyAgLy8gcm9sZSBpcyB1c2VkIGFzIGEgZGlzY3JpbWluYXRvciBmb3IgVXNlQ2FzZSB1bmlvbgorICAgIHVuaW9uIEV4dCB7CisgICAgICAgIEF1ZGlvUG9ydENvbmZpZ0RldmljZUV4dCBkZXZpY2U7CisgICAgICAgIHN0cnVjdCBBdWRpb1BvcnRDb25maWdNaXhFeHQgeworICAgICAgICAgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7IC8vIG1vZHVsZSB0aGUgc3RyZWFtIGlzIGF0dGFjaGVkIHRvCisgICAgICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlOyAgICAgLy8gSS9PIGhhbmRsZSBvZiB0aGUgaW5wdXQvb3V0cHV0IHN0cmVhbQorICAgICAgICAgICAgdW5pb24gVXNlQ2FzZSB7CisgICAgICAgICAgICAgICAgQXVkaW9TdHJlYW1UeXBlIHN0cmVhbTsKKyAgICAgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgICAgICAgICB9IHVzZUNhc2U7CisgICAgICAgIH0gbWl4OworICAgICAgICBBdWRpb1BvcnRDb25maWdTZXNzaW9uRXh0IHNlc3Npb247CisgICAgfSBleHQ7Cit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBzdHJ1Y3R1cmUgd2hlbiB0aGUgYXVkaW8gcG9ydCBpcyBhIGhhcmR3YXJlIGRldmljZS4KKyAqLworc3RydWN0IEF1ZGlvUG9ydERldmljZUV4dCB7CisgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7ICAgIC8vIG1vZHVsZSB0aGUgZGV2aWNlIGlzIGF0dGFjaGVkIHRvCisgICAgQXVkaW9EZXZpY2UgdHlwZTsKKyAgICB1aW50OF90WzMyXSBhZGRyZXNzOworfTsKKworLyoqCisgKiBMYXRlbmN5IGNsYXNzIG9mIHRoZSBhdWRpbyBtaXguCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fbWl4X2xhdGVuY3lfY2xhc3NfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fTEFURU5DWV8iKQorZW51bSBBdWRpb01peExhdGVuY3lDbGFzcyA6IGludDMyX3QgeworICAgIExPVywKKyAgICBOT1JNQUwKK30gOworCitzdHJ1Y3QgQXVkaW9Qb3J0TWl4RXh0IHsKKyAgICBBdWRpb01vZHVsZUhhbmRsZSBod01vZHVsZTsgICAgIC8vIG1vZHVsZSB0aGUgc3RyZWFtIGlzIGF0dGFjaGVkIHRvCisgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZTsgICAgICAgICAvLyBJL08gaGFuZGxlIG9mIHRoZSBzdHJlYW0KKyAgICBBdWRpb01peExhdGVuY3lDbGFzcyBsYXRlbmN5Q2xhc3M7Cit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBzdHJ1Y3R1cmUgd2hlbiB0aGUgYXVkaW8gcG9ydCBpcyBhbiBhdWRpbyBzZXNzaW9uLgorICovCitzdHJ1Y3QgQXVkaW9Qb3J0U2Vzc2lvbkV4dCB7CisgICAgQXVkaW9TZXNzaW9uIHNlc3Npb247Cit9OworCitzdHJ1Y3QgQXVkaW9Qb3J0IHsKKyAgICBBdWRpb1BvcnRIYW5kbGUgaWQ7CisgICAgQXVkaW9Qb3J0Um9sZSByb2xlOworICAgIHN0cmluZyBuYW1lOworICAgIHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgdmVjPEF1ZGlvQ2hhbm5lbE1hc2s+IGNoYW5uZWxNYXNrczsKKyAgICB2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgdmVjPEF1ZGlvR2Fpbj4gZ2FpbnM7CisgICAgQXVkaW9Qb3J0Q29uZmlnIGFjdGl2ZUNvbmZpZzsgLy8gY3VycmVudCBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24KKyAgICBBdWRpb1BvcnRUeXBlIHR5cGU7ICAvLyB0eXBlIGlzIHVzZWQgYXMgYSBkaXNjcmltaW5hdG9yCisgICAgdW5pb24gRXh0IHsKKyAgICAgICAgQXVkaW9Qb3J0RGV2aWNlRXh0IGRldmljZTsKKyAgICAgICAgQXVkaW9Qb3J0TWl4RXh0IG1peDsKKyAgICAgICAgQXVkaW9Qb3J0U2Vzc2lvbkV4dCBzZXNzaW9uOworICAgIH0gZXh0OworfTsKKworc3RydWN0IFRocmVhZEluZm8geworICAgIGludDY0X3QgcGlkOworICAgIGludDY0X3QgdGlkOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi9BbmRyb2lkLm1rIGIvYXVkaW8vY29tbW9uL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwNDI2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDE1NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmhhbCIsCisgICAgICAgICJJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaGFsIiwKKyAgICAgICAgIklCYXNzQm9vc3RFZmZlY3QuaGFsIiwKKyAgICAgICAgIklEb3dubWl4RWZmZWN0LmhhbCIsCisgICAgICAgICJJRWZmZWN0LmhhbCIsCisgICAgICAgICJJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUVmZmVjdHNGYWN0b3J5LmhhbCIsCisgICAgICAgICJJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5oYWwiLAorICAgICAgICAiSUVxdWFsaXplckVmZmVjdC5oYWwiLAorICAgICAgICAiSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaGFsIiwKKyAgICAgICAgIklOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbCIsCisgICAgICAgICJJUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbCIsCisgICAgICAgICJJVmlydHVhbGl6ZXJFZmZlY3QuaGFsIiwKKyAgICAgICAgIklWaXN1YWxpemVyRWZmZWN0LmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQmFzc0Jvb3N0RWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvRG93bm1peEVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0VmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0VmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9FZmZlY3RzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3RBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9FcXVhbGl6ZXJFZmZlY3RBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvTm9pc2VTdXBwcmVzc2lvbkVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL1ByZXNldFJldmVyYkVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL1ZpcnR1YWxpemVyRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvVmlzdWFsaXplckVmZmVjdEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3QWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cbkh3QXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdCYXNzQm9vc3RFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Jhc3NCb29zdEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9CcEh3QmFzc0Jvb3N0RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzQmFzc0Jvb3N0RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNEb3dubWl4RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0VmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0c0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RWZmZWN0c0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0VmZmVjdHNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdFZmZlY3RzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VmZmVjdHNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RXF1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFcXVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0VxdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VxdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId1ByZXNldFJldmVyYkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cbkh3UHJlc2V0UmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdQcmVzZXRSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNQcmVzZXRSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId1ZpcnR1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdWaXJ0dWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9CcEh3VmlydHVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNWaXJ0dWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JVmlzdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzVmlzdWFsaXplckVmZmVjdC5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQyNjc2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDUzIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdC1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC9WMl8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCYXNzQm9vc3RFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURvd25taXhFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRWZmZWN0c0ZhY3RvcnkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVxdWFsaXplckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaXJ0dWFsaXplckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlzdWFsaXplckVmZmVjdC5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVmOTRhNQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmhhbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgZWNobyBkZWxheSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuCisgICAgICovCisgICAgc2V0RWNob0RlbGF5KHVpbnQzMl90IGVjaG9EZWxheU1zKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBlY2hvIGRlbGF5IHZhbHVlIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRFY2hvRGVsYXkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGVjaG9EZWxheU1zKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhjYTdlMwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgdGFyZ2V0IGxldmVsIGluIG1pbGxpYmVscy4KKyAgICAgKi8KKyAgICBzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRhcmdldCBsZXZlbC4KKyAgICAgKi8KKyAgICBnZXRUYXJnZXRMZXZlbCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgaW50MTZfdCB0YXJnZXRMZXZlbE1iKTsKKworICAgIC8qKgorICAgICAqIFNldHMgZ2FpbiBpbiB0aGUgY29tcHJlc3Npb24gcmFuZ2UgaW4gbWlsbGliZWxzLgorICAgICAqLworICAgIHNldENvbXBHYWluKGludDE2X3QgY29tcEdhaW5NYikgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgZ2FpbiBpbiB0aGUgY29tcHJlc3Npb24gcmFuZ2UuCisgICAgICovCisgICAgZ2V0Q29tcEdhaW4oKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgY29tcEdhaW5NYik7CisKKyAgICAvKioKKyAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGxpbWl0ZXIuCisgICAgICovCisgICAgc2V0TGltaXRlckVuYWJsZWQoYm9vbCBlbmFibGVkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIGxpbWl0ZXIgaXMgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBpc0xpbWl0ZXJFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBpbnQxNl90IHRhcmdldExldmVsTWI7CisgICAgICAgIGludDE2X3QgY29tcEdhaW5NYjsKKyAgICAgICAgYm9vbCBsaW1pdGVyRW5hYmxlZDsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIHNldEFsbFByb3BlcnRpZXMoQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIGdldEFsbFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEFsbFByb3BlcnRpZXMgcHJvcGVydGllcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JQmFzc0Jvb3N0RWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI2YTI5NwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oYWwKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJQmFzc0Jvb3N0RWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHNldHRpbmcgYmFzcyBib29zdCBzdHJlbmd0aCBpcyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaXNTdHJlbmd0aFN1cHBvcnRlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBzdHJlbmd0aFN1cHBvcnRlZCk7CisKKyAgICBlbnVtIFN0cmVuZ3RoUmFuZ2UgOiB1aW50MTZfdCB7CisgICAgICAgIE1JTiA9IDAsCisgICAgICAgIE1BWCA9IDEwMDAKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBiYXNzIGJvb3N0IHN0cmVuZ3RoLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIHN0cmVuZ3RoIG9mIHRoZSBlZmZlY3QuIFRoZSB2YWxpZCByYW5nZSBmb3Igc3RyZW5ndGgKKyAgICAgKiAgICAgICAgICAgICAgICAgc3RyZW5ndGggaXMgWzAsIDEwMDBdLCB3aGVyZSAwIHBlciBtaWxsZSBkZXNpZ25hdGVzIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBtaWxkZXN0IGVmZmVjdCBhbmQgMTAwMCBwZXIgbWlsbGUgZGVzaWduYXRlcyB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXN0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdmlydHVhbGl6YXRpb24gc3RyZW5ndGguCisgICAgICovCisgICAgZ2V0U3RyZW5ndGgoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQxNl90IHN0cmVuZ3RoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSURvd25taXhFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMzIwOTUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmhhbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElEb3dubWl4RWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgICAgIFNUUklQLCAvLyB0aHJvdyBhd2F5IHRoZSBleHRyYSBjaGFubmVscworICAgICAgICBGT0xEICAgLy8gbWl4IHRoZSBleHRyYSBjaGFubmVscyB3aXRoIEZML0ZSCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgZG93bm1peCBwcmVzZXQuCisgICAgICovCisgICAgc2V0VHlwZShUeXBlIHByZXNldCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgZG93bm1peCBwcmVzZXQuCisgICAgICovCisgICAgZ2V0VHlwZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHlwZSBwcmVzZXQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMmUyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaGFsCkBAIC0wLDAgKzEsNDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7CisKK2ludGVyZmFjZSBJRWZmZWN0IHsKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGVmZmVjdCBlbmdpbmUtLWFsbCBjb25maWd1cmF0aW9ucyByZXR1cm4gdG8gZGVmYXVsdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBpbml0KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEFwcGx5IG5ldyBhdWRpbyBwYXJhbWV0ZXJzIGNvbmZpZ3VyYXRpb25zIGZvciBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICogVGhlIHByb3ZpZGVyIGNhbGxiYWNrcyBtYXkgYmUgZW1wdHksIGJ1dCBpbiB0aGlzIGNhc2UgdGhlIGJ1ZmZlcgorICAgICAqIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIEVmZmVjdENvbmZpZyBzdHJ1Y3R1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKiBAcGFyYW0gaW5wdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEBwYXJhbSBvdXRwdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRDb25maWcoRWZmZWN0Q29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjayBvdXRwdXRCdWZmZXJQcm92aWRlcikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgZWZmZWN0IGVuZ2luZS4gS2VlcCBjb25maWd1cmF0aW9uIGJ1dCByZXNldHMgc3RhdGUgYW5kIGJ1ZmZlcgorICAgICAqIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgcmVzZXQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRW5hYmxlIHByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJwcmVwYXJlRm9yUHJvY2Vzc2luZyJ9KQorICAgIGVuYWJsZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEaXNhYmxlIHByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJjbG9zZSJ9KQorICAgIGRpc2FibGUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSByZW5kZXJpbmcgZGV2aWNlIHRoZSBhdWRpbyBvdXRwdXQgcGF0aCBpcyBjb25uZWN0ZWQgdG8uICBUaGUKKyAgICAgKiBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgRUZGRUNUX0ZMQUdfREVWSUNFX0lORCBmbGFnIGluIGl0cworICAgICAqIGRlc2NyaXB0b3IgdG8gcmVjZWl2ZSB0aGlzIGNvbW1hbmQgd2hlbiB0aGUgZGV2aWNlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBOb3RlOiB0aGlzIG1ldGhvZCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgZWZmZWN0cyBpbnNlcnRlZCBpbnRvCisgICAgICogICAgICAgdGhlIG91dHB1dCBjaGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXZpY2Ugb3V0cHV0IGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IGFuZCBnZXQgdm9sdW1lLiBVc2VkIGJ5IGF1ZGlvIGZyYW1ld29yayB0byBkZWxlZ2F0ZSB2b2x1bWUgY29udHJvbCB0bworICAgICAqIGVmZmVjdCBlbmdpbmUuIFRoZSBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgRUZGRUNUX0ZMQUdfVk9MVU1FX0NUUkwKKyAgICAgKiBmbGFnIGluIGl0cyBkZXNjcmlwdG9yIHRvIHJlY2VpdmUgdGhpcyBjb21tYW5kLiBUaGUgZWZmZWN0IGVuZ2luZSBtdXN0CisgICAgICogcmV0dXJuIHRoZSB2b2x1bWUgdGhhdCBzaG91bGQgYmUgYXBwbGllZCBiZWZvcmUgdGhlIGVmZmVjdCBpcworICAgICAqIHByb2Nlc3NlZC4gVGhlIG92ZXJhbGwgdm9sdW1lICh0aGUgdm9sdW1lIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGVmZmVjdAorICAgICAqIGVuZ2luZSBtdWx0aXBsaWVkIGJ5IHRoZSByZXR1cm5lZCB2YWx1ZSkgc2hvdWxkIG1hdGNoIHRoZSB2YWx1ZSBpbmRpY2F0ZWQKKyAgICAgKiBpbiB0aGUgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2b2x1bWVzIHZlY3RvciBjb250YWluaW5nIHZvbHVtZSBmb3IgZWFjaCBjaGFubmVsIGRlZmluZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICBFZmZlY3RDb25maWcgZm9yIG91dHB1dCBidWZmZXIgZXhwcmVzc2VkIGluIDguMjQgZml4ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBwb2ludCBmb3JtYXQuCisgICAgICogQHJldHVybiByZXN1bHQgdXBkYXRlZCB2b2x1bWUgdmFsdWVzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRBbmRHZXRWb2x1bWUodmVjPHVpbnQzMl90PiB2b2x1bWVzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8dWludDMyX3Q+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGVmZmVjdCBvZiB0aGUgdm9sdW1lIGNoYW5nZS4gVGhlIGVmZmVjdCBpbXBsZW1lbnRhdGlvbiBtdXN0CisgICAgICogc2V0IEVGRkVDVF9GTEFHX1ZPTFVNRV9JTkQgZmxhZyBpbiBpdHMgZGVzY3JpcHRvciB0byByZWNlaXZlIHRoaXMKKyAgICAgKiBjb21tYW5kLgorICAgICAqCisgICAgICogQHBhcmFtIHZvbHVtZXMgdmVjdG9yIGNvbnRhaW5pbmcgdm9sdW1lIGZvciBlYWNoIGNoYW5uZWwgZGVmaW5lZCBpbgorICAgICAqICAgICAgICAgICAgICAgIEVmZmVjdENvbmZpZyBmb3Igb3V0cHV0IGJ1ZmZlciBleHByZXNzZWQgaW4gOC4yNCBmaXhlZAorICAgICAqICAgICAgICAgICAgICAgIHBvaW50IGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZlYzx1aW50MzJfdD4gdm9sdW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGF1ZGlvIG1vZGUuIFRoZSBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQKKyAgICAgKiBFRkZFQ1RfRkxBR19BVURJT19NT0RFX0lORCBmbGFnIGluIGl0cyBkZXNjcmlwdG9yIHRvIHJlY2VpdmUgdGhpcyBjb21tYW5kCisgICAgICogd2hlbiB0aGUgYXVkaW8gbW9kZSBjaGFuZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgZGVzaXJlZCBhdWRpbyBtb2RlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBBcHBseSBuZXcgYXVkaW8gcGFyYW1ldGVycyBjb25maWd1cmF0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIG9mCisgICAgICogcmV2ZXJzZSBzdHJlYW0uICBBbiBleGFtcGxlIG9mIHJldmVyc2Ugc3RyZWFtIGlzIHRoZSBlY2hvIHJlZmVyZW5jZQorICAgICAqIHN1cHBsaWVkIHRvIGFuIEFjb3VzdGljIEVjaG8gQ2FuY2VsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKiBAcGFyYW0gaW5wdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEBwYXJhbSBvdXRwdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjayBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sgb3V0cHV0QnVmZmVyUHJvdmlkZXIpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYXB0dXJlIGRldmljZSB0aGUgYXVkaW8gaW5wdXQgcGF0aCBpcyBjb25uZWN0ZWQgdG8uIFRoZSBlZmZlY3QKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBtdXN0IHNldCBFRkZFQ1RfRkxBR19ERVZJQ0VfSU5EIGZsYWcgaW4gaXRzIGRlc2NyaXB0b3IgdG8KKyAgICAgKiByZWNlaXZlIHRoaXMgY29tbWFuZCB3aGVuIHRoZSBkZXZpY2UgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIE5vdGU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBlZmZlY3RzIGluc2VydGVkIGludG8KKyAgICAgKiAgICAgICB0aGUgaW5wdXQgY2hhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlIGlucHV0IGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGF1ZGlvIHBhcmFtZXRlcnMgY29uZmlndXJhdGlvbnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZyBjb25maWd1cmF0aW9uIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0Q29uZmlnKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBFZmZlY3RDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJlYWQgYXVkaW8gcGFyYW1ldGVycyBjb25maWd1cmF0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIG9mCisgICAgICogcmV2ZXJzZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBjb25maWcgY29uZmlndXJhdGlvbiBkZXNjcmlwdG9yLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldENvbmZpZ1JldmVyc2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdENvbmZpZyBjb25maWcpOworCisgICAgLyoqCisgICAgICogUXVlcmllcyBmb3Igc3VwcG9ydGVkIGNvbWJpbmF0aW9ucyBvZiBtYWluIGFuZCBhdXhpbGlhcnkgY2hhbm5lbHMKKyAgICAgKiAoZS5nLiBmb3IgYSBtdWx0aS1taWNyb3Bob25lIG5vaXNlIHN1cHByZXNzb3IpLgorICAgICAqCisgICAgICogQHBhcmFtIG1heENvbmZpZ3MgbWF4aW11bSBudW1iZXIgb2YgdGhlIGNvbWJpbmF0aW9ucyB0byByZXR1cm4uCisgICAgICogQHJldHVybiByZXR2YWwgYWJzZW5jZSBvZiB0aGUgZmVhdHVyZSBzdXBwb3J0IGlzIGluZGljYXRlZCB1c2luZworICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgY29kZS4gUkVTVUxUX1RPT19CSUcgaXMgcmV0dXJuZWQgaWYKKyAgICAgKiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBjb21iaW5hdGlvbnMgZXhjZWVkcyAnbWF4Q29uZmlncycuCisgICAgICogQHJldHVybiByZXN1bHQgbGlzdCBvZiBjb25maWd1cmF0aW9uIGRlc2NyaXB0b3JzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyh1aW50MzJfdCBtYXhDb25maWdzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiBtYWluIGFuZCBhdXhpbGlhcnkgY2hhbm5lbHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBhYnNlbmNlIG9mIHRoZSBmZWF0dXJlIHN1cHBvcnQgaXMgaW5kaWNhdGVkIHVzaW5nCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBjb2RlLgorICAgICAqIEByZXR1cm4gcmVzdWx0IGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRBdXhDaGFubmVsc0NvbmZpZygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnIHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgbWFpbiBhbmQgYXV4aWxpYXJ5IGNoYW5uZWxzLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOyBhYnNlbmNlIG9mIHRoZSBmZWF0dXJlCisgICAgICogICAgICAgICAgICAgICAgc3VwcG9ydCBpcyBpbmRpY2F0ZWQgdXNpbmcgTk9UX1NVUFBPUlRFRCBjb2RlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldEF1eENoYW5uZWxzQ29uZmlnKEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnIGNvbmZpZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGF1ZGlvIHNvdXJjZSB0aGUgY2FwdHVyZSBwYXRoIGlzIGNvbmZpZ3VyZWQgZm9yIChDYW1jb3JkZXIsIHZvaWNlCisgICAgICogcmVjb2duaXRpb24uLi4pLgorICAgICAqCisgICAgICogTm90ZTogdGhpcyBtZXRob2QgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGVmZmVjdHMgaW5zZXJ0ZWQgaW50bworICAgICAqICAgICAgIHRoZSBpbnB1dCBjaGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc291cmNlIGRlc2NyaXB0b3IuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29tbWFuZCBpbmRpY2F0ZXMgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCisgICAgICogaXMgb2ZmbG9hZGVkIG9yIG5vdCwgYW5kIHVwZGF0ZXMgdGhlIEkvTyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAqIHRoZSBlZmZlY3QgaXMgYXR0YWNoZWQgdG8uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW0gZWZmZWN0IG9mZmxvYWQgZGVzY3JpcHRvci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgb2ZmbG9hZChFZmZlY3RPZmZsb2FkUGFyYW1ldGVyIHBhcmFtKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZWZmZWN0IGRlc2NyaXB0b3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkZXNjcmlwdG9yIGVmZmVjdCBkZXNjcmlwdG9yLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldERlc2NyaXB0b3IoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdXAgcmVxdWlyZWQgdHJhbnNwb3J0cyBmb3IgcGFzc2luZyBhdWRpbyBidWZmZXJzIHRvIHRoZSBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHNoYXJlZCBtZW1vcnkgYW5kIGEgbWVzc2FnZSBxdWV1ZSBmb3IgcmVwb3J0aW5nCisgICAgICogZWZmZWN0IHByb2Nlc3Npbmcgb3BlcmF0aW9uIHN0YXR1cy4gVGhlIHNoYXJlZCBtZW1vcnkgaXMgc2V0IHVwCisgICAgICogc2VwYXJhdGVseSB1c2luZyAnc2V0UHJvY2Vzc0J1ZmZlcnMnIG1ldGhvZC4KKyAgICAgKgorICAgICAqIFByb2Nlc3NpbmcgaXMgcmVxdWVzdGVkIGJ5IHNldHRpbmcgJ1JFUVVFU1RfUFJPQ0VTUycgb3IKKyAgICAgKiAnUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UnIEV2ZW50RmxhZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGF0dXMgbWVzc2FnZQorICAgICAqIHF1ZXVlLiBUaGUgcmVzdWx0IG9mIHByb2Nlc3NpbmcgbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqICAgT0sgaWYgdGhlcmUgd2VyZSBubyBlcnJvcnMgZHVyaW5nIHByb2Nlc3Npbmc7CisgICAgICogICBJTlZBTElEX0FSR1VNRU5UUyBpZiBhdWRpbyBidWZmZXJzIGFyZSBpbnZhbGlkOworICAgICAqICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgZW5naW5lIGhhcyBmaW5pc2hlZCB0aGUgZGlzYWJsZSBwaGFzZTsKKyAgICAgKiAgIE5PVF9JTklUSUFMSVpFRCBpZiB0aGUgYXVkaW8gYnVmZmVycyB3ZXJlIG5vdCBzZXQ7CisgICAgICogICBOT1RfU1VQUE9SVEVEIGlmIHRoZSByZXF1ZXN0ZWQgcHJvY2Vzc2luZyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgYnkKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGlmIGJvdGggbWVzc2FnZSBxdWV1ZXMgd2VyZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBtZXRob2Qgd2FzIGFscmVhZHkgY2FsbGVkLgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0gc2V0dGluZyB1cAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBxdWV1ZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1c01RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIHN0YXR1cyBmcm9tIHRoZSBlZmZlY3QuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJzZXRQcm9jZXNzQnVmZmVycyJ9KQorICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBmbXFfc3luYzxSZXN1bHQ+IHN0YXR1c01RKTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZm9yIHByb2Nlc3NpbmcgYXVkaW8gZGF0YS4gVGhlIGVmZmVjdAorICAgICAqIG1heSBtb2RpZnkgYm90aCB0aGUgaW5wdXQgYW5kIHRoZSBvdXRwdXQgYnVmZmVyIGR1cmluZyB0aGUgb3BlcmF0aW9uLgorICAgICAqIEJ1ZmZlcnMgbWF5IGJlIHNldCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgZWZmZWN0IGxpZmV0aW1lLgorICAgICAqCisgICAgICogVGhlIGlucHV0IGFuZCB0aGUgb3V0cHV0IGJ1ZmZlciBtYXkgYmUgcmV1c2VkIGJldHdlZW4gZGlmZmVyZW50IGVmZmVjdHMsCisgICAgICogYW5kIHRoZSBpbnB1dCBidWZmZXIgbWF5IGJlIHVzZWQgYXMgYW4gb3V0cHV0IGJ1ZmZlci4gQnVmZmVycyBhcmUKKyAgICAgKiBkaXN0aW5ndWlzaGVkIHVzaW5nICdBdWRpb0J1ZmZlci5pZCcgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5CdWZmZXIgaW5wdXQgYXVkaW8gYnVmZmVyLgorICAgICAqIEBwYXJhbSBvdXRCdWZmZXIgb3V0cHV0IGF1ZGlvIGJ1ZmZlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIGJ1ZmZlcnMgd2VyZSBtYXBwZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCBtYXBwaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55IG9mIHRoZSBidWZmZXJzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldFByb2Nlc3NCdWZmZXJzKEF1ZGlvQnVmZmVyIGluQnVmZmVyLCBBdWRpb0J1ZmZlciBvdXRCdWZmZXIpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEV4ZWN1dGUgYSB2ZW5kb3Igc3BlY2lmaWMgY29tbWFuZCBvbiB0aGUgZWZmZWN0LiBUaGUgY29tbWFuZCBjb2RlCisgICAgICogYW5kIGRhdGEsIGFzIHdlbGwgYXMgcmVzdWx0IGRhdGEgYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkCisgICAgICogRnJhbWV3b3JrIGFuZCBhcmUgcGFzc2VkIGFzLWlzIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBzdGFuZGFyZCBQT1NJWC4xLTIwMDEgZXJyb3IgY29kZXMgZm9yIHRoZSBvcGVyYXRpb24KKyAgICAgKiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGZvciBlZmZlY3RzCisgICAgICogaW1wbGVtZW50ZWQgaW4gc29mdHdhcmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29tbWFuZElkIHRoZSBJRCBvZiB0aGUgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gZGF0YSBjb21tYW5kIGRhdGEuCisgICAgICogQHBhcmFtIHJlc3VsdE1heFNpemUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mIHRoZSByZXN1bHQ7IGNhbiBiZSAwLgorICAgICAqIEByZXR1cm4gc3RhdHVzIGNvbW1hbmQgY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiByZXN1bHQgcmVzdWx0IGRhdGEuCisgICAgICovCisgICAgY29tbWFuZCh1aW50MzJfdCBjb21tYW5kSWQsIHZlYzx1aW50OF90PiBkYXRhLCB1aW50MzJfdCByZXN1bHRNYXhTaXplKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIGFuZCBhcHBseSBpdCBpbW1lZGlhdGVseS4gVGhlIHBhcmFtZXRlcgorICAgICAqIGNvZGUgYW5kIGRhdGEgYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkIEZyYW1ld29yayBhbmQgYXJlIHBhc3NlZAorICAgICAqIGFzLWlzIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgcGFyYW1ldGVyIElEIGlzCisgICAgICogdW5rbm93biBvciBpZiBwcm92aWRlZCBwYXJhbWV0ZXIgZGF0YSBpcyBpbnZhbGlkLiBJZiB0aGUgZWZmZWN0IGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXJzLCBpdCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogVXNlIHRoaXMgbWV0aG9kIG9ubHkgaWYgdGhlIGVmZmVjdCBpcyBwcm92aWRlZCBieSBhIHRoaXJkIHBhcnR5LCBhbmQKKyAgICAgKiB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZGVmaW5lZCBmb3IgaXQuIFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgZm9yIGVmZmVjdHMKKyAgICAgKiBpbXBsZW1lbnRlZCBpbiBzb2Z0d2FyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXIgaWRlbnRpZnlpbmcgZGF0YSBvZiB0aGUgcGFyYW1ldGVyLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgc2V0UGFyYW1ldGVyKHZlYzx1aW50OF90PiBwYXJhbWV0ZXIsIHZlYzx1aW50OF90PiB2YWx1ZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlLiBUaGUgcGFyYW1ldGVyIGNvZGUgYW5kIHJldHVybmVkCisgICAgICogZGF0YSBhcmUgbm90IGludGVycHJldGVkIGJ5IEFuZHJvaWQgRnJhbWV3b3JrIGFuZCBhcmUgcGFzc2VkIGFzLWlzCisgICAgICogYmV0d2VlbiB0aGUgYXBwbGljYXRpb24gYW5kIHRoZSBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGUgZWZmZWN0IG11c3QgdXNlIElOVkFMSURfQVJHVU1FTlRTIHJldHVybiBjb2RlIGlmIHRoZSBwYXJhbWV0ZXIgSUQgaXMKKyAgICAgKiB1bmtub3duLiBJZiB0aGUgZWZmZWN0IGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyB2ZW5kb3Itc3BlY2lmaWMKKyAgICAgKiBwYXJhbWV0ZXJzLCBpdCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogVXNlIHRoaXMgbWV0aG9kIG9ubHkgaWYgdGhlIGVmZmVjdCBpcyBwcm92aWRlZCBieSBhIHRoaXJkIHBhcnR5LCBhbmQKKyAgICAgKiB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZGVmaW5lZCBmb3IgaXQuICBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGZvciBlZmZlY3RzCisgICAgICogaW1wbGVtZW50ZWQgaW4gc29mdHdhcmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyIGlkZW50aWZ5aW5nIGRhdGEgb2YgdGhlIHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gdmFsdWVNYXhTaXplIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFBhcmFtZXRlcih2ZWM8dWludDhfdD4gcGFyYW1ldGVyLCB1aW50MzJfdCB2YWx1ZU1heFNpemUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzx1aW50OF90PiB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgc3VwcG9ydGVkIGNvbmZpZ3MgZm9yIGEgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmUuIFRoZSBjb25maWdzIHJldHVybmVkCisgICAgICogYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkIEZyYW1ld29yayBhbmQgYXJlIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlCisgICAgICogY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4gSWYgdGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVkIGJ1dAorICAgICAqIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb25zIGV4Y2VlZHMgdGhlIG1heGltdW0gbnVtYmVyCisgICAgICogaW5kaWNhdGVkIGJ5IHRoZSBjYWxsZXIsIHRoZSBtZXRob2QgbXVzdCByZXR1cm4gUkVTVUxUX1RPT19CSUcuCisgICAgICoKKyAgICAgKiBVc2UgdGhpcyBtZXRob2Qgb25seSBpZiB0aGUgZWZmZWN0IGlzIHByb3ZpZGVkIGJ5IGEgdGhpcmQgcGFydHksIGFuZAorICAgICAqIHRoZXJlIGlzIG5vIGludGVyZmFjZSBkZWZpbmVkIGZvciBpdC4gIFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgZm9yIGVmZmVjdHMKKyAgICAgKiBpbXBsZW1lbnRlZCBpbiBzb2Z0d2FyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZWF0dXJlSWQgZmVhdHVyZSBpZGVudGlmaWVyLgorICAgICAqIEBwYXJhbSBtYXhDb25maWdzIG1heGltdW0gbnVtYmVyIG9mIGNvbmZpZ3MgdG8gcmV0dXJuLgorICAgICAqIEBwYXJhbSBjb25maWdTaXplIHNpemUgb2YgZWFjaCBjb25maWcgaW4gYnl0ZXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gY29uZmlnc0NvdW50IG51bWJlciBvZiBjb25maWdzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gY29uZmlnc0RhdGEgZGF0YSBmb3IgYWxsIHRoZSBjb25maWdzIHJldHVybmVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ3NDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGNvbmZpZ3NEYXRhKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBjb25maWcgZm9yIGEgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmUuIFRoZSBjb25maWcgcmV0dXJuZWQKKyAgICAgKiBpcyBub3QgaW50ZXJwcmV0ZWQgYnkgQW5kcm9pZCBGcmFtZXdvcmsgYW5kIGlzIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYworICAgICAqIGZlYXR1cmUgY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiAgVGhpcyBtZXRob2Qgb25seSB3b3JrcyBmb3IgZWZmZWN0cworICAgICAqIGltcGxlbWVudGVkIGluIHNvZnR3YXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmVJZCBmZWF0dXJlIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIGNvbmZpZ1NpemUgc2l6ZSBvZiB0aGUgY29uZmlnIGluIGJ5dGVzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ0RhdGEgY29uZmlnIGRhdGEuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUodWludDMyX3QgZmVhdHVyZUlkLCB1aW50MzJfdCBjb25maWdTaXplKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8dWludDhfdD4gY29uZmlnRGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgY29uZmlnIGZvciBhIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlLiBUaGUgY29uZmlnIGRhdGEKKyAgICAgKiBpcyBub3QgaW50ZXJwcmV0ZWQgYnkgQW5kcm9pZCBGcmFtZXdvcmsgYW5kIGlzIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYworICAgICAqIGZlYXR1cmUgY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiAgVGhpcyBtZXRob2Qgb25seSB3b3JrcyBmb3IgZWZmZWN0cworICAgICAqIGltcGxlbWVudGVkIGluIHNvZnR3YXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmVJZCBmZWF0dXJlIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIGNvbmZpZ0RhdGEgY29uZmlnIGRhdGEuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKHVpbnQzMl90IGZlYXR1cmVJZCwgdmVjPHVpbnQ4X3Q+IGNvbmZpZ0RhdGEpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gZGVpbml0aWFsaXplIHRoZSBlZmZlY3QgYW5kIGZyZWUgdXAKKyAgICAgKiBhbGwgdGhlIGN1cnJlbnRseSBhbGxvY2F0ZWQgcmVzb3VyY2VzLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjbG9zZQorICAgICAqIHRoZSBlZmZlY3Qgb24gdGhlIGNsaWVudCBzaWRlIGFzIHNvb24gYXMgaXQgaXMgYmVjb21lcyB1bnVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIGVmZmVjdCB3YXMgYWxyZWFkeSBjbG9zZWQuCisgICAgICovCisgICAgQGV4aXQKKyAgICBjbG9zZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWIzM2MzCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCisvKioKKyAqIFRoaXMgY2FsbGJhY2sgaW50ZXJmYWNlIGNvbnRhaW5zIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QKKyAqIGVuZ2luZSAncHJvY2VzcycgZnVuY3Rpb24gdG8gZXhjaGFuZ2UgaW5wdXQgYW5kIG91dHB1dCBhdWRpbyBidWZmZXJzLgorICovCitpbnRlcmZhY2UgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIENhbGxlZCB0byByZXRyaWV2ZSBhIGJ1ZmZlciB3aGVyZSBkYXRhIHNob3VsZCByZWFkIGZyb20gYnkgJ3Byb2Nlc3MnCisgICAgICogZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBhdWRpbyBidWZmZXIgZm9yIHByb2Nlc3NpbmcKKyAgICAgKi8KKyAgICBnZXRCdWZmZXIoKSBnZW5lcmF0ZXMgKEF1ZGlvQnVmZmVyIGJ1ZmZlcik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgdG8gcHJvdmlkZSBhIGJ1ZmZlciB3aXRoIHRoZSBkYXRhIHdyaXR0ZW4gYnkgJ3Byb2Nlc3MnIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlciBhdWRpbyBidWZmZXIgZm9yIHByb2Nlc3NpbmcKKyAgICAgKi8KKyAgICBwdXRCdWZmZXIoQXVkaW9CdWZmZXIgYnVmZmVyKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QzMDBlYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5LmhhbApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElFZmZlY3RzRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogUmV0dXJucyBkZXNjcmlwdG9ycyBvZiBkaWZmZXJlbnQgZWZmZWN0cyBpbiBhbGwgbG9hZGVkIGxpYnJhcmllcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBsaXN0IG9mIGVmZmVjdCBkZXNjcmlwdG9ycy4KKyAgICAgKi8KKyAgICBnZXRBbGxEZXNjcmlwdG9ycygpIGdlbmVyYXRlcyhSZXN1bHQgcmV0dmFsLCB2ZWM8RWZmZWN0RGVzY3JpcHRvcj4gcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBkZXNjcmlwdG9yIG9mIGEgcGFydGljdWxhciBlZmZlY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiByZXN1bHQgZWZmZWN0IGRlc2NyaXB0b3IuCisgICAgICovCisgICAgZ2V0RGVzY3JpcHRvcihVdWlkIHVpZCkgZ2VuZXJhdGVzKFJlc3VsdCByZXR2YWwsIEVmZmVjdERlc2NyaXB0b3IgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYW4gZWZmZWN0IGVuZ2luZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuICBUbyByZWxlYXNlIHRoZSBlZmZlY3QKKyAgICAgKiBlbmdpbmUsIGl0IGlzIG5lY2Vzc2FyeSB0byByZWxlYXNlIHJlZmVyZW5jZXMgdG8gdGhlIHJldHVybmVkIGVmZmVjdAorICAgICAqIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1aWQgZWZmZWN0IHV1aWQuCisgICAgICogQHBhcmFtIHNlc3Npb24gYXVkaW8gc2Vzc2lvbiB0byB3aGljaCB0aGlzIGVmZmVjdCBpbnN0YW5jZSB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgYXR0YWNoZWQuICBBbGwgZWZmZWN0cyBjcmVhdGVkIHdpdGggdGhlIHNhbWUgc2Vzc2lvbiBJRAorICAgICAqICAgICAgICAgICAgICAgIGFyZSBjb25uZWN0ZWQgaW4gc2VyaWVzIGFuZCBwcm9jZXNzIHRoZSBzYW1lIHNpZ25hbAorICAgICAqICAgICAgICAgICAgICAgIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gaW9IYW5kbGUgaWRlbnRpZmllcyB0aGUgb3V0cHV0IG9yIGlucHV0IHN0cmVhbSB0aGlzIGVmZmVjdCBpcworICAgICAqICAgICAgICAgICAgICAgICBkaXJlY3RlZCB0byBpbiBhdWRpbyBIQUwuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBjcmVhdGVkIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIGVmZmVjdElkIHRoZSB1bmlxdWUgSUQgb2YgdGhlIGVmZmVjdCB0byBiZSB1c2VkIHdpdGgKKyAgICAgKiAgICAgICAgICAgICAgICAgIElTdHJlYW06OmFkZEVmZmVjdCBhbmQgSVN0cmVhbTo6cmVtb3ZlRWZmZWN0IG1ldGhvZHMuCisgICAgICovCisgICAgY3JlYXRlRWZmZWN0KFV1aWQgdWlkLCBBdWRpb1Nlc3Npb24gc2Vzc2lvbiwgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSkKKyAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBJRWZmZWN0IHJlc3VsdCwgdWludDY0X3QgZWZmZWN0SWQpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgZWZmZWN0cyBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZDZkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmhhbApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgZWZmZWN0IHNob3VsZCBiZSBieXBhc3NlZC4KKyAgICAgKi8KKyAgICBzZXRCeXBhc3MoYm9vbCBieXBhc3MpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGVmZmVjdCBzaG91bGQgYmUgYnlwYXNzZWQuCisgICAgICovCisgICAgZ2V0QnlwYXNzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGJ5cGFzcyk7CisKKyAgICBlbnVtIFBhcmFtUmFuZ2UgOiBpbnQxNl90IHsKKyAgICAgICAgUk9PTV9MRVZFTF9NSU4gPSAtNjAwMCwKKyAgICAgICAgUk9PTV9MRVZFTF9NQVggPSAwLAorICAgICAgICBST09NX0hGX0xFVkVMX01JTiA9IC00MDAwLAorICAgICAgICBST09NX0hGX0xFVkVMX01BWCA9IDAsCisgICAgICAgIERFQ0FZX1RJTUVfTUlOID0gMTAwLAorICAgICAgICBERUNBWV9USU1FX01BWCA9IDIwMDAwLAorICAgICAgICBERUNBWV9IRl9SQVRJT19NSU4gPSAxMDAsCisgICAgICAgIERFQ0FZX0hGX1JBVElPX01BWCA9IDEwMDAsCisgICAgICAgIFJFRkxFQ1RJT05TX0xFVkVMX01JTiA9IC02MDAwLAorICAgICAgICBSRUZMRUNUSU9OU19MRVZFTF9NQVggPSAwLAorICAgICAgICBSRUZMRUNUSU9OU19ERUxBWV9NSU4gPSAwLAorICAgICAgICBSRUZMRUNUSU9OU19ERUxBWV9NQVggPSA2NSwKKyAgICAgICAgUkVWRVJCX0xFVkVMX01JTiA9IC02MDAwLAorICAgICAgICBSRVZFUkJfTEVWRUxfTUFYID0gMCwKKyAgICAgICAgUkVWRVJCX0RFTEFZX01JTiA9IDAsCisgICAgICAgIFJFVkVSQl9ERUxBWV9NQVggPSA2NSwKKyAgICAgICAgRElGRlVTSU9OX01JTiA9IDAsCisgICAgICAgIERJRkZVU0lPTl9NQVggPSAxMDAwLAorICAgICAgICBERU5TSVRZX01JTiA9IDAsCisgICAgICAgIERFTlNJVFlfTUFYID0gMTAwMAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGxldmVsLgorICAgICAqLworICAgIHNldFJvb21MZXZlbChpbnQxNl90IHJvb21MZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gbGV2ZWwuCisgICAgICovCisgICAgZ2V0Um9vbUxldmVsKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IHJvb21MZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGhpZ2ggZnJlcXVlbmNpZXMgbGV2ZWwuCisgICAgICovCisgICAgc2V0Um9vbUhmTGV2ZWwoaW50MTZfdCByb29tSGZMZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gaGlnaCBmcmVxdWVuY2llcyBsZXZlbC4KKyAgICAgKi8KKyAgICBnZXRSb29tSGZMZXZlbCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgaW50MTZfdCByb29tSGZMZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGRlY2F5IHRpbWUuCisgICAgICovCisgICAgc2V0RGVjYXlUaW1lKHVpbnQzMl90IGRlY2F5VGltZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gZGVjYXkgdGltZS4KKyAgICAgKi8KKyAgICBnZXREZWNheVRpbWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGRlY2F5VGltZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByYXRpbyBvZiBoaWdoIGZyZXF1ZW5jaWVzIGRlY2F5LgorICAgICAqLworICAgIHNldERlY2F5SGZSYXRpbyhpbnQxNl90IGRlY2F5SGZSYXRpbykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJhdGlvIG9mIGhpZ2ggZnJlcXVlbmNpZXMgZGVjYXkuCisgICAgICovCisgICAgZ2V0RGVjYXlIZlJhdGlvKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRlY2F5SGZSYXRpbyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsZXZlbCBvZiByZWZsZWN0aW9ucyBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZWZsZWN0aW9uc0xldmVsKGludDE2X3QgcmVmbGVjdGlvbnNMZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxldmVsIG9mIHJlZmxlY3Rpb25zIGluIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJlZmxlY3Rpb25zTGV2ZWwoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgcmVmbGVjdGlvbnNMZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByZWZsZWN0aW9ucyBkZWxheSBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZWZsZWN0aW9uc0RlbGF5KHVpbnQzMl90IHJlZmxlY3Rpb25zRGVsYXkpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSByZWZsZWN0aW9ucyBkZWxheSBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBnZXRSZWZsZWN0aW9uc0RlbGF5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCByZWZsZWN0aW9uc0RlbGF5KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJldmVyYiBsZXZlbCBvZiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZXZlcmJMZXZlbChpbnQxNl90IHJldmVyYkxldmVsKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcmV2ZXJiIGxldmVsIG9mIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJldmVyYkxldmVsKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IHJldmVyYkxldmVsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJldmVyYiBkZWxheSBvZiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZXZlcmJEZWxheSh1aW50MzJfdCByZXZlckRlbGF5KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcmV2ZXJiIGRlbGF5IG9mIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJldmVyYkRlbGF5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCByZXZlcmJEZWxheSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHJvb20gZGlmZnVzaW9uLgorICAgICAqLworICAgIHNldERpZmZ1c2lvbihpbnQxNl90IGRpZmZ1c2lvbikgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgcm9vbSBkaWZmdXNpb24uCisgICAgICovCisgICAgZ2V0RGlmZnVzaW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRpZmZ1c2lvbik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHJvb20gd2FsbCBkZW5zaXR5LgorICAgICAqLworICAgIHNldERlbnNpdHkoaW50MTZfdCBkZW5zaXR5KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyByb29tIHdhbGwgZGVuc2l0eS4KKyAgICAgKi8KKyAgICBnZXREZW5zaXR5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRlbnNpdHkpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBpbnQxNl90ICByb29tTGV2ZWw7ICAgICAgICAgLy8gaW4gbWlsbGliZWxzLCAgICByYW5nZSAtNjAwMCB0byAwCisgICAgICAgIGludDE2X3QgIHJvb21IZkxldmVsOyAgICAgICAvLyBpbiBtaWxsaWJlbHMsICAgIHJhbmdlIC00MDAwIHRvIDAKKyAgICAgICAgdWludDMyX3QgZGVjYXlUaW1lOyAgICAgICAgIC8vIGluIG1pbGxpc2Vjb25kcywgcmFuZ2UgMTAwIHRvIDIwMDAwCisgICAgICAgIGludDE2X3QgIGRlY2F5SGZSYXRpbzsgICAgICAvLyBpbiBwZXJtaWxsZXMsICAgIHJhbmdlIDEwMCB0byAxMDAwCisgICAgICAgIGludDE2X3QgIHJlZmxlY3Rpb25zTGV2ZWw7ICAvLyBpbiBtaWxsaWJlbHMsICAgIHJhbmdlIC02MDAwIHRvIDAKKyAgICAgICAgdWludDMyX3QgcmVmbGVjdGlvbnNEZWxheTsgIC8vIGluIG1pbGxpc2Vjb25kcywgcmFuZ2UgMCB0byA2NQorICAgICAgICBpbnQxNl90ICByZXZlcmJMZXZlbDsgICAgICAgLy8gaW4gbWlsbGliZWxzLCAgICByYW5nZSAtNjAwMCB0byAwCisgICAgICAgIHVpbnQzMl90IHJldmVyYkRlbGF5OyAgICAgICAvLyBpbiBtaWxsaXNlY29uZHMsIHJhbmdlIDAgdG8gNjUKKyAgICAgICAgaW50MTZfdCAgZGlmZnVzaW9uOyAgICAgICAgIC8vIGluIHBlcm1pbGxlcywgICAgcmFuZ2UgMCB0byAxMDAwCisgICAgICAgIGludDE2X3QgIGRlbnNpdHk7ICAgICAgICAgICAvLyBpbiBwZXJtaWxsZXMsICAgIHJhbmdlIDAgdG8gMTAwMAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgc2V0QWxsUHJvcGVydGllcyhBbGxQcm9wZXJ0aWVzIHByb3BlcnRpZXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgZ2V0QWxsUHJvcGVydGllcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JRXF1YWxpemVyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTI4ZTBkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JRXF1YWxpemVyRWZmZWN0LmhhbApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElFcXVhbGl6ZXJFZmZlY3QgZXh0ZW5kcyBJRWZmZWN0IHsKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgZnJlcXVlbmN5IGJhbmRzIHRoYXQgdGhlIGVxdWFsaXplciBzdXBwb3J0cy4KKyAgICAgKi8KKyAgICBnZXROdW1CYW5kcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgbnVtQmFuZHMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBiYW5kIGxldmVscyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgZ2V0TGV2ZWxSYW5nZSgpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgbWluTGV2ZWwsIGludDE2X3QgbWF4TGV2ZWwpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZ2FpbiBmb3IgdGhlIGdpdmVuIGVxdWFsaXplciBiYW5kLgorICAgICAqLworICAgIHNldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBpbnQxNl90IGxldmVsKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ2FpbiBmb3IgdGhlIGdpdmVuIGVxdWFsaXplciBiYW5kLgorICAgICAqLworICAgIGdldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgbGV2ZWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgZ2l2ZW4gYmFuZCwgaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kQ2VudGVyRnJlcXVlbmN5KHVpbnQxNl90IGJhbmQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGNlbnRlckZyZXFtSHopOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZnJlcXVlbmN5IHJhbmdlIG9mIHRoZSBnaXZlbiBmcmVxdWVuY3kgYmFuZCwgaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UodWludDE2X3QgYmFuZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDMyX3QgbWluRnJlcW1IeiwgdWludDMyX3QgbWF4RnJlcW1Ieik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBiYW5kIHRoYXQgaGFzIHRoZSBtb3N0IGVmZmVjdCBvbiB0aGUgZ2l2ZW4gZnJlcXVlbmN5CisgICAgICogaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXFtSHopCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQxNl90IGJhbmQpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmFtZXMgb2YgYWxsIHByZXNldHMgdGhlIGVxdWFsaXplciBzdXBwb3J0cy4KKyAgICAgKi8KKyAgICBnZXRQcmVzZXROYW1lcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPHN0cmluZz4gbmFtZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBwcmVzZXQgdXNpbmcgdGhlIGluZGV4IG9mIHRoZSBwcmVzZXQgaW4gdGhlIG5hbWVzCisgICAgICogdmVjdG9yIHJldHVybmVkIHZpYSAnZ2V0UHJlc2V0TmFtZXMnLgorICAgICAqLworICAgIHNldEN1cnJlbnRQcmVzZXQodWludDE2X3QgcHJlc2V0KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBwcmVzZXQuCisgICAgICovCisgICAgZ2V0Q3VycmVudFByZXNldCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgcHJlc2V0KTsKKworICAgIHN0cnVjdCBBbGxQcm9wZXJ0aWVzIHsKKyAgICAgICAgdWludDE2X3QgY3VyUHJlc2V0OworICAgICAgICB2ZWM8aW50MTZfdD4gYmFuZExldmVsczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIHNldEFsbFByb3BlcnRpZXMoQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIGdldEFsbFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEFsbFByb3BlcnRpZXMgcHJvcGVydGllcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMWM4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgdGFyZ2V0IGdhaW4gZXhwcmVzc2VkIGluIG1pbGxpYmVscy4KKyAgICAgKi8KKyAgICBzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0YXJnZXQgZ2FpbiBleHByZXNzZWQgaW4gbWlsbGliZWxzLgorICAgICAqLworICAgIGdldFRhcmdldEdhaW4oKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDMyX3QgdGFyZ2V0R2Fpbk1iKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSU5vaXNlU3VwcHJlc3Npb25FZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MTdhMWUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBMZXZlbCA6IGludDMyX3QgeworICAgICAgICBMT1csCisgICAgICAgIE1FRElVTSwKKyAgICAgICAgSElHSAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHN1cHByZXNzaW9uIGxldmVsLgorICAgICAqLworICAgIHNldFN1cHByZXNzaW9uTGV2ZWwoTGV2ZWwgbGV2ZWwpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHN1cHByZXNzaW9uIGxldmVsLgorICAgICAqLworICAgIGdldFN1cHByZXNzaW9uTGV2ZWwoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIExldmVsIGxldmVsKTsKKworICAgIGVudW0gVHlwZSA6IGludDMyX3QgeworICAgICAgICBTSU5HTEVfQ0hBTk5FTCwKKyAgICAgICAgTVVMVElfQ0hBTk5FTAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXQgc3VwcHJlc3Npb24gdHlwZS4KKyAgICAgKi8KKyAgICBzZXRTdXBwcmVzc2lvblR5cGUoVHlwZSB0eXBlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0IHN1cHByZXNzaW9uIHR5cGUuCisgICAgICovCisgICAgZ2V0U3VwcHJlc3Npb25UeXBlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBUeXBlIHR5cGUpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBMZXZlbCBsZXZlbDsKKyAgICAgICAgVHlwZSB0eXBlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgc2V0QWxsUHJvcGVydGllcyhBbGxQcm9wZXJ0aWVzIHByb3BlcnRpZXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgZ2V0QWxsUHJvcGVydGllcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lQcmVzZXRSZXZlcmJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzdlNTZhCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElQcmVzZXRSZXZlcmJFZmZlY3QgZXh0ZW5kcyBJRWZmZWN0IHsKKyAgICBlbnVtIFByZXNldCA6IGludDMyX3QgeworICAgICAgICBOT05FLCAgICAgICAgLy8gbm8gcmV2ZXJiIG9yIHJlZmxlY3Rpb25zCisgICAgICAgIFNNQUxMUk9PTSwgICAvLyBhIHNtYWxsIHJvb20gbGVzcyB0aGFuIGZpdmUgbWV0ZXJzIGluIGxlbmd0aAorICAgICAgICBNRURJVU1ST09NLCAgLy8gYSBtZWRpdW0gcm9vbSB3aXRoIGEgbGVuZ3RoIG9mIHRlbiBtZXRlcnMgb3IgbGVzcworICAgICAgICBMQVJHRVJPT00sICAgLy8gYSBsYXJnZS1zaXplZCByb29tIHN1aXRhYmxlIGZvciBsaXZlIHBlcmZvcm1hbmNlcworICAgICAgICBNRURJVU1IQUxMLCAgLy8gYSBtZWRpdW0tc2l6ZWQgaGFsbAorICAgICAgICBMQVJHRUhBTEwsICAgLy8gYSBsYXJnZS1zaXplZCBoYWxsIHN1aXRhYmxlIGZvciBhIGZ1bGwgb3JjaGVzdHJhCisgICAgICAgIFBMQVRFLCAgICAgICAvLyBzeW50aGVzaXMgb2YgdGhlIHRyYWRpdGlvbmFsIHBsYXRlIHJldmVyYgorICAgICAgICBMQVNUID0gUExBVEUKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBwcmVzZXQuCisgICAgICovCisgICAgc2V0UHJlc2V0KFByZXNldCBwcmVzZXQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHByZXNldC4KKyAgICAgKi8KKyAgICBnZXRQcmVzZXQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIFByZXNldCBwcmVzZXQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWI0OWEwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JVmlydHVhbGl6ZXJFZmZlY3QuaGFsCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKK2ltcG9ydCBJRWZmZWN0OworCitpbnRlcmZhY2UgSVZpcnR1YWxpemVyRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHNldHRpbmcgdmlydHVhbGl6YXRpb24gc3RyZW5ndGggaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIGlzU3RyZW5ndGhTdXBwb3J0ZWQoKSBnZW5lcmF0ZXMgKGJvb2wgc3RyZW5ndGhTdXBwb3J0ZWQpOworCisgICAgZW51bSBTdHJlbmd0aFJhbmdlIDogdWludDE2X3QgeworICAgICAgICBNSU4gPSAwLAorICAgICAgICBNQVggPSAxMDAwCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdmlydHVhbGl6YXRpb24gc3RyZW5ndGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyZW5ndGggc3RyZW5ndGggb2YgdGhlIGVmZmVjdC4gVGhlIHZhbGlkIHJhbmdlIGZvciBzdHJlbmd0aAorICAgICAqICAgICAgICAgICAgICAgICBzdHJlbmd0aCBpcyBbMCwgMTAwMF0sIHdoZXJlIDAgcGVyIG1pbGxlIGRlc2lnbmF0ZXMgdGhlCisgICAgICogICAgICAgICAgICAgICAgIG1pbGRlc3QgZWZmZWN0IGFuZCAxMDAwIHBlciBtaWxsZSBkZXNpZ25hdGVzIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBzdHJvbmdlc3QuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFN0cmVuZ3RoKHVpbnQxNl90IHN0cmVuZ3RoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB2aXJ0dWFsaXphdGlvbiBzdHJlbmd0aC4KKyAgICAgKi8KKyAgICBnZXRTdHJlbmd0aCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3Qgc3RyZW5ndGgpOworCisgICAgc3RydWN0IFNwZWFrZXJBbmdsZSB7CisgICAgICAgIEF1ZGlvQ2hhbm5lbE1hc2sgbWFzazsgLy8gc3BlYWtlciBjaGFubmVsIG1hc2sgKDEgYml0IHNldCkuCisgICAgICAgIC8vIGFsbCBhbmdsZXMgYXJlIGV4cHJlc3NlZCBpbiBkZWdyZWVzIGFuZAorICAgICAgICAvLyBhcmUgcmVsYXRpdmUgdG8gdGhlIGxpc3RlbmVyLgorICAgICAgICBpbnQxNl90IGF6aW11dGg7IC8vIDAgaXMgdGhlIGRpcmVjdGlvbiB0aGUgbGlzdGVuZXIgZmFjZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxODAgaXMgYmVoaW5kIHRoZSBsaXN0ZW5lcgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC05MCBpcyB0byB0aGVpciBsZWZ0CisgICAgICAgIGludDE2X3QgZWxldmF0aW9uOyAvLyAwIGlzIHRoZSBob3Jpem9udGFsIHBsYW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyArOTAgaXMgYWJvdmUgdGhlIGxpc3RlbmVyLCAtOTAgaXMgYmVsb3cKKyAgICB9OworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB2aXJ0dWFsIHNwZWFrZXIgYW5nbGVzIGZvciB0aGUgZ2l2ZW4gY2hhbm5lbCBtYXNrIG9uIHRoZQorICAgICAqIHNwZWNpZmllZCBkZXZpY2UuCisgICAgICovCisgICAgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXMoQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0RldmljZSBkZXZpY2UpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzxTcGVha2VyQW5nbGU+IHNwZWFrZXJBbmdsZXMpOworCisgICAgLyoqCisgICAgICogRm9yY2VzIHRoZSB2aXJ0dWFsaXplciBlZmZlY3QgZm9yIHRoZSBnaXZlbiBvdXRwdXQgZGV2aWNlLgorICAgICAqLworICAgIGZvcmNlVmlydHVhbGl6YXRpb25Nb2RlKEF1ZGlvRGV2aWNlIGRldmljZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYXVkaW8gZGV2aWNlIHJlZmxlY3RpbmcgdGhlIGN1cnJlbnQgdmlydHVhbGl6YXRpb24gbW9kZSwKKyAgICAgKiBBVURJT19ERVZJQ0VfTk9ORSB3aGVuIG5vdCB2aXJ0dWFsaXppbmcuCisgICAgICovCisgICAgZ2V0VmlydHVhbGl6YXRpb25Nb2RlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb0RldmljZSBkZXZpY2UpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JVmlzdWFsaXplckVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZmYzcwYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaGFsCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElWaXN1YWxpemVyRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBDYXB0dXJlU2l6ZVJhbmdlIDogaW50MzJfdCB7CisgICAgICAgIE1BWCA9IDEwMjQsICAvLyBtYXhpbXVtIGNhcHR1cmUgc2l6ZSBpbiBzYW1wbGVzCisgICAgICAgIE1JTiA9IDEyOCAgICAvLyBtaW5pbXVtIGNhcHR1cmUgc2l6ZSBpbiBzYW1wbGVzCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG51bWJlciBQQ00gc2FtcGxlcyBpbiB0aGUgY2FwdHVyZS4KKyAgICAgKi8KKyAgICBzZXRDYXB0dXJlU2l6ZSh1aW50MTZfdCBjYXB0dXJlU2l6ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWJlciBQQ00gc2FtcGxlcyBpbiB0aGUgY2FwdHVyZS4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlU2l6ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgY2FwdHVyZVNpemUpOworCisgICAgZW51bSBTY2FsaW5nTW9kZSA6IGludDMyX3QgeworICAgICAgICAvLyBLZWVwIGluIHN5bmMgd2l0aCBTQ0FMSU5HX01PREVfLi4uIGluCisgICAgICAgIC8vIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvYXVkaW9meC9WaXN1YWxpemVyLmphdmEKKyAgICAgICAgTk9STUFMSVpFRCA9IDAsCisgICAgICAgIEFTX1BMQVlFRCA9IDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoZSB3YXkgdGhlIGNhcHR1cmVkIGRhdGEgaXMgc2NhbGVkLgorICAgICAqLworICAgIHNldFNjYWxpbmdNb2RlKFNjYWxpbmdNb2RlIHNjYWxpbmdNb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSB3YXkgdGhlIGNhcHR1cmVkIGRhdGEgaXMgc2NhbGVkLgorICAgICAqLworICAgIGdldFNjYWxpbmdNb2RlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBTY2FsaW5nTW9kZSBzY2FsaW5nTW9kZSk7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1zIHRoZSB2aXN1YWxpemVyIGFib3V0IHRoZSBkb3duc3RyZWFtIGxhdGVuY3kuCisgICAgICovCisgICAgc2V0TGF0ZW5jeSh1aW50MzJfdCBsYXRlbmN5TXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkb3duc3RyZWFtIGxhdGVuY3kuCisgICAgICovCisgICAgZ2V0TGF0ZW5jeSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDMyX3QgbGF0ZW5jeU1zKTsKKworICAgIGVudW0gTWVhc3VyZW1lbnRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8vIEtlZXAgaW4gc3luYyB3aXRoIE1FQVNVUkVNRU5UX01PREVfLi4uIGluCisgICAgICAgIC8vIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvYXVkaW9meC9WaXN1YWxpemVyLmphdmEKKyAgICAgICAgTk9ORSA9IDB4MCwKKyAgICAgICAgUEVBS19STVMgPSAweDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHdoaWNoIG1lYXN1cmVtZW50cyBhcmUgdG8gYmUgbWFkZS4KKyAgICAgKi8KKyAgICBzZXRNZWFzdXJlbWVudE1vZGUoTWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggbWVhc3VyZW1lbnRzIGFyZSB0byBiZSBtYWRlLgorICAgICAqLworICAgIGdldE1lYXN1cmVtZW50TW9kZSgpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBSZXN1bHQgcmV0dmFsLCBNZWFzdXJlbWVudE1vZGUgbWVhc3VyZW1lbnRNb2RlKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgbGF0ZXN0IFBDTSBzbmFwc2hvdCBjYXB0dXJlZCBieSB0aGUgdmlzdWFsaXplciBlbmdpbmUuICBUaGUKKyAgICAgKiBudW1iZXIgb2Ygc2FtcGxlcyB0byBjYXB0dXJlIGlzIHNwZWNpZmllZCBieSAnc2V0Q2FwdHVyZVNpemUnIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHNhbXBsZXMgc2FtcGxlcyBpbiA4IGJpdCB1bnNpZ25lZCBmb3JtYXQgKDAgPSAweDgwKQorICAgICAqLworICAgIGNhcHR1cmUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzx1aW50OF90PiBzYW1wbGVzKTsKKworICAgIHN0cnVjdCBNZWFzdXJlbWVudCB7CisgICAgICAgIE1lYXN1cmVtZW50TW9kZSBtb2RlOyAgICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFZhbHVlcyB7CisgICAgICAgICAgICBzdHJ1Y3QgUGVha0FuZFJtcyB7CisgICAgICAgICAgICAgICAgaW50MzJfdCBwZWFrTWI7ICAvLyBtaWxsaWJlbHMKKyAgICAgICAgICAgICAgICBpbnQzMl90IHJtc01iOyAgIC8vIG1pbGxpYmVscworICAgICAgICAgICAgfSBwZWFrQW5kUm1zOworICAgICAgICB9IHZhbHVlOworICAgIH07CisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSBsYXRlc3QgbWVhc3VyZW1lbnRzLiBUaGUgbWVhc3VyZW1lbnRzIHRvIGJlIG1hZGUKKyAgICAgKiBhcmUgc3BlY2lmaWVkIGJ5ICdzZXRNZWFzdXJlbWVudE1vZGUnIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBtZWFzdXJlbWVudC4KKyAgICAgKi8KKyAgICBtZWFzdXJlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBNZWFzdXJlbWVudCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiOWNhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJBRUNfRWZmZWN0X0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWVjLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6QWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6fkFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEVjaG9EZWxheSh1aW50MzJfdCBlY2hvRGVsYXlNcykgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUVDX1BBUkFNX0VDSE9fREVMQVksIGVjaG9EZWxheU1zKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXRFY2hvRGVsYXkoZ2V0RWNob0RlbGF5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQUVDX1BBUkFNX0VDSE9fREVMQVksIF9oaWRsX2NiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFjOTI1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0FDT1VTVElDRUNIT0NBTkNFTEVSRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BQ09VU1RJQ0VDSE9DQU5DRUxFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0IDogcHVibGljIElBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCB7CisgICAgZXhwbGljaXQgQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldEVjaG9EZWxheSh1aW50MzJfdCBlY2hvRGVsYXlNcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRFY2hvRGVsYXkoZ2V0RWNob0RlbGF5X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BQ09VU1RJQ0VDSE9DQU5DRUxFUkVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OWQ0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwIFwKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXIuY3BwIFwKKyAgICBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAgXAorICAgIEJhc3NCb29zdEVmZmVjdC5jcHAgXAorICAgIENvbnZlcnNpb25zLmNwcCBcCisgICAgRG93bm1peEVmZmVjdC5jcHAgXAorICAgIEVmZmVjdC5jcHAgXAorICAgIEVmZmVjdHNGYWN0b3J5LmNwcCBcCisgICAgRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5jcHAgXAorICAgIEVxdWFsaXplckVmZmVjdC5jcHAgXAorICAgIExvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwIFwKKyAgICBOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcCBcCisgICAgUHJlc2V0UmV2ZXJiRWZmZWN0LmNwcCBcCisgICAgVmlydHVhbGl6ZXJFZmZlY3QuY3BwIFwKKyAgICBWaXN1YWxpemVyRWZmZWN0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZWZmZWN0cyBcCisgICAgbGliZm1xIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbG1lbW9yeSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wIFwKKyAgICBhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIFwKKyAgICBsaWJhdWRpb2NsaWVudF9oZWFkZXJzIFwKKyAgICBsaWJlZmZlY3RzX2hlYWRlcnMgXAorICAgIGxpYmhhcmR3YXJlX2hlYWRlcnMgXAorICAgIGxpYm1lZGlhX2hlYWRlcnMgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdWRpb0J1ZmZlck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYTBjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGF0b21pYz4KKworI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXJNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKworQU5EUk9JRF9TSU5HTEVUT05fU1RBVElDX0lOU1RBTkNFKEF1ZGlvQnVmZmVyTWFuYWdlcik7CisKK2Jvb2wgQXVkaW9CdWZmZXJNYW5hZ2VyOjp3cmFwKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIsIHNwPEF1ZGlvQnVmZmVyV3JhcHBlcj4qIHdyYXBwZXIpIHsKKyAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRoaXMgYnVmZmVyIGFscmVhZHkKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgc3NpemVfdCBpZHggPSBtQnVmZmVycy5pbmRleE9mS2V5KGJ1ZmZlci5pZCk7CisgICAgaWYgKGlkeCA+PSAwKSB7CisgICAgICAgICp3cmFwcGVyID0gbUJ1ZmZlcnNbaWR4XS5wcm9tb3RlKCk7CisgICAgICAgIGlmICgqd3JhcHBlciAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAoKndyYXBwZXIpLT5nZXRIYWxCdWZmZXIoKS0+ZnJhbWVDb3VudCA9IGJ1ZmZlci5mcmFtZUNvdW50OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbUJ1ZmZlcnMucmVtb3ZlSXRlbXNBdChpZHgpOworICAgIH0KKyAgICAvLyBOZWVkIHRvIGNyZWF0ZSBhbmQgaW5pdCBhIG5ldyBBdWRpb0J1ZmZlcldyYXBwZXIuCisgICAgc3A8QXVkaW9CdWZmZXJXcmFwcGVyPiB0ZW1wQnVmZmVyKG5ldyBBdWRpb0J1ZmZlcldyYXBwZXIoYnVmZmVyKSk7CisgICAgaWYgKCF0ZW1wQnVmZmVyLT5pbml0KCkpIHJldHVybiBmYWxzZTsKKyAgICAqd3JhcHBlciA9IHRlbXBCdWZmZXI7CisgICAgbUJ1ZmZlcnMuYWRkKGJ1ZmZlci5pZCwgKndyYXBwZXIpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEF1ZGlvQnVmZmVyTWFuYWdlcjo6cmVtb3ZlRW50cnkodWludDY0X3QgaWQpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgc3NpemVfdCBpZHggPSBtQnVmZmVycy5pbmRleE9mS2V5KGlkKTsKKyAgICBpZiAoaWR4ID49IDApIG1CdWZmZXJzLnJlbW92ZUl0ZW1zQXQoaWR4KTsKK30KKworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0F1ZGlvQnVmZmVyV3JhcHBlcjo6QXVkaW9CdWZmZXJXcmFwcGVyKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIpIDoKKyAgICAgICAgbUhpZGxCdWZmZXIoYnVmZmVyKSwgbUhhbEJ1ZmZlcnsgMCwgeyBudWxscHRyIH0gfSB7Cit9CisKK0F1ZGlvQnVmZmVyV3JhcHBlcjo6fkF1ZGlvQnVmZmVyV3JhcHBlcigpIHsKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXI6OmdldEluc3RhbmNlKCkucmVtb3ZlRW50cnkobUhpZGxCdWZmZXIuaWQpOworfQorCitib29sIEF1ZGlvQnVmZmVyV3JhcHBlcjo6aW5pdCgpIHsKKyAgICBpZiAobUhhbEJ1ZmZlci5yYXcgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQW4gYXR0ZW1wdCB0byBpbml0IEF1ZGlvQnVmZmVyV3JhcHBlciB0d2ljZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1IaWRsTWVtb3J5ID0gbWFwTWVtb3J5KG1IaWRsQnVmZmVyLmRhdGEpOworICAgIGlmIChtSGlkbE1lbW9yeSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbWFwIEhJREwgbWVtb3J5IHRvIElNZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBtSGFsQnVmZmVyLnJhdyA9IHN0YXRpY19jYXN0PHZvaWQqPihtSGlkbE1lbW9yeS0+Z2V0UG9pbnRlcigpKTsKKyAgICBpZiAobUhhbEJ1ZmZlci5yYXcgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSU1lbW9yeSBidWZmZXIgcG9pbnRlciBpcyBudWxsIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgbUhhbEJ1ZmZlci5mcmFtZUNvdW50ID0gbUhpZGxCdWZmZXIuZnJhbWVDb3VudDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ2NTk5NQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdWRpb0J1ZmZlck1hbmFnZXIuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXworCisjaW5jbHVkZSA8bXV0ZXg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdC5oPgorI2luY2x1ZGUgPHV0aWxzL1JlZkJhc2UuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1NpbmdsZXRvbi5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgQXVkaW9CdWZmZXJXcmFwcGVyIDogcHVibGljIFJlZkJhc2UgeworICBwdWJsaWM6CisgICAgZXhwbGljaXQgQXVkaW9CdWZmZXJXcmFwcGVyKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIpOworICAgIHZpcnR1YWwgfkF1ZGlvQnVmZmVyV3JhcHBlcigpOworICAgIGJvb2wgaW5pdCgpOworICAgIGF1ZGlvX2J1ZmZlcl90KiBnZXRIYWxCdWZmZXIoKSB7IHJldHVybiAmbUhhbEJ1ZmZlcjsgfQorICBwcml2YXRlOgorICAgIEF1ZGlvQnVmZmVyV3JhcHBlcihjb25zdCBBdWRpb0J1ZmZlcldyYXBwZXImKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShBdWRpb0J1ZmZlcldyYXBwZXIpID0gZGVsZXRlOworCisgICAgQXVkaW9CdWZmZXIgbUhpZGxCdWZmZXI7CisgICAgc3A8SU1lbW9yeT4gbUhpZGxNZW1vcnk7CisgICAgYXVkaW9fYnVmZmVyX3QgbUhhbEJ1ZmZlcjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6QXVkaW9CdWZmZXJXcmFwcGVyOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKKy8vIFRoaXMgY2xhc3MgbmVlZHMgdG8gYmUgaW4gJ2FuZHJvaWQnIG5zIGJlY2F1c2UgU2luZ2xldG9uIG1hY3JvcyByZXF1aXJlIHRoYXQuCitjbGFzcyBBdWRpb0J1ZmZlck1hbmFnZXIgOiBwdWJsaWMgU2luZ2xldG9uPEF1ZGlvQnVmZmVyTWFuYWdlcj4geworICBwdWJsaWM6CisgICAgYm9vbCB3cmFwKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIsIHNwPEF1ZGlvQnVmZmVyV3JhcHBlcj4qIHdyYXBwZXIpOworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIGhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6QXVkaW9CdWZmZXJXcmFwcGVyOworCisgICAgLy8gQ2FsbGVkIGJ5IEF1ZGlvQnVmZmVyV3JhcHBlci4KKyAgICB2b2lkIHJlbW92ZUVudHJ5KHVpbnQ2NF90IGlkKTsKKworICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgS2V5ZWRWZWN0b3I8dWludDY0X3QsIHdwPEF1ZGlvQnVmZmVyV3JhcHBlcj4+IG1CdWZmZXJzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJmZTVmNwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkFHQ19FZmZlY3RfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OkF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6On5BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCgpIHt9CisKK3ZvaWQgQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X2FnY19zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKSB7CisgICAgcHJvcGVydGllcy0+dGFyZ2V0TGV2ZWxNYiA9IGhhbFByb3BlcnRpZXMudGFyZ2V0TGV2ZWw7CisgICAgcHJvcGVydGllcy0+Y29tcEdhaW5NYiA9IGhhbFByb3BlcnRpZXMuY29tcEdhaW47CisgICAgcHJvcGVydGllcy0+bGltaXRlckVuYWJsZWQgPSBoYWxQcm9wZXJ0aWVzLmxpbWl0ZXJFbmFibGVkOworfQorCit2b2lkIEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcywKKyAgICAgICAgdF9hZ2Nfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpIHsKKyAgICBoYWxQcm9wZXJ0aWVzLT50YXJnZXRMZXZlbCA9IHByb3BlcnRpZXMudGFyZ2V0TGV2ZWxNYjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5jb21wR2FpbiA9IHByb3BlcnRpZXMuY29tcEdhaW5NYjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5saW1pdGVyRW5hYmxlZCA9IHByb3BlcnRpZXMubGltaXRlckVuYWJsZWQ7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKEFHQ19QQVJBTV9UQVJHRVRfTEVWRUwsIHRhcmdldExldmVsTWIpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldFRhcmdldExldmVsKGdldFRhcmdldExldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQUdDX1BBUkFNX1RBUkdFVF9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q29tcEdhaW4oaW50MTZfdCBjb21wR2Fpbk1iKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShBR0NfUEFSQU1fQ09NUF9HQUlOLCBjb21wR2Fpbk1iKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRDb21wR2FpbihnZXRDb21wR2Fpbl9jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKEFHQ19QQVJBTV9DT01QX0dBSU4sIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldExpbWl0ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUdDX1BBUkFNX0xJTUlURVJfRU5BLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojppc0xpbWl0ZXJFbmFibGVkKGlzTGltaXRlckVuYWJsZWRfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShBR0NfUEFSQU1fTElNSVRFUl9FTkEsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoY29uc3QgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSAgeworICAgIHRfYWdjX3NldHRpbmdzIGhhbFByb3BlcnRpZXM7CisgICAgcHJvcGVydGllc1RvSGFsKHByb3BlcnRpZXMsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUdDX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEFsbFByb3BlcnRpZXMoZ2V0QWxsUHJvcGVydGllc19jYiBfaGlkbF9jYikgIHsKKyAgICB0X2FnY19zZXR0aW5ncyBoYWxQcm9wZXJ0aWVzOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShBR0NfUEFSQU1fUFJPUEVSVElFUywgaGFsUHJvcGVydGllcyk7CisgICAgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzOworICAgIHByb3BlcnRpZXNGcm9tSGFsKGhhbFByb3BlcnRpZXMsICZwcm9wZXJ0aWVzKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMWYyNzkKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaApAQCAtMCwwICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BVVRPTUFUSUNHQUlOQ09OVFJPTEVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfQVVUT01BVElDR0FJTkNPTlRST0xFRkZFQ1RfSAorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2FnYy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCA6IHB1YmxpYyBJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QgeworICAgIGV4cGxpY2l0IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VGFyZ2V0TGV2ZWwoZ2V0VGFyZ2V0TGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb21wR2FpbihpbnQxNl90IGNvbXBHYWluTWIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29tcEdhaW4oZ2V0Q29tcEdhaW5fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRMaW1pdGVyRW5hYmxlZChib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gaXNMaW1pdGVyRW5hYmxlZChpc0xpbWl0ZXJFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QWxsUHJvcGVydGllcygKKyAgICAgICAgICAgIGNvbnN0IElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKworICAgIHZpcnR1YWwgfkF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KCk7CisKKyAgICB2b2lkIHByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICAgICAgY29uc3QgdF9hZ2Nfc2V0dGluZ3MmIGhhbFByb3BlcnRpZXMsCisgICAgICAgICAgICBJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpOworICAgIHZvaWQgcHJvcGVydGllc1RvSGFsKAorICAgICAgICAgICAgY29uc3QgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9hZ2Nfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BVVRPTUFUSUNHQUlOQ09OVFJPTEVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9CYXNzQm9vc3RFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzVlNWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmNwcApAQCAtMCwwICsxLDE5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQmFzc0Jvb3N0X0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYmFzc2Jvb3N0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkJhc3NCb29zdEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworQmFzc0Jvb3N0RWZmZWN0OjpCYXNzQm9vc3RFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitCYXNzQm9vc3RFZmZlY3Q6On5CYXNzQm9vc3RFZmZlY3QoKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQmFzc0Jvb3N0RWZmZWN0IGZvbGxvdy4KK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmlzU3RyZW5ndGhTdXBwb3J0ZWQoaXNTdHJlbmd0aFN1cHBvcnRlZF9jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKEJBU1NCT09TVF9QQVJBTV9TVFJFTkdUSF9TVVBQT1JURUQsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQkFTU0JPT1NUX1BBUkFNX1NUUkVOR1RILCBzdHJlbmd0aCk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldFN0cmVuZ3RoKGdldFN0cmVuZ3RoX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQkFTU0JPT1NUX1BBUkFNX1NUUkVOR1RILCBfaGlkbF9jYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU1MDUzYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9CYXNzQm9vc3RFZmZlY3QuaApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9CQVNTQk9PU1RFRkZFQ1RfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0JBU1NCT09TVEVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQmFzc0Jvb3N0RWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQmFzc0Jvb3N0RWZmZWN0IDogcHVibGljIElCYXNzQm9vc3RFZmZlY3QgeworICAgIGV4cGxpY2l0IEJhc3NCb29zdEVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklCYXNzQm9vc3RFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpc1N0cmVuZ3RoU3VwcG9ydGVkKGlzU3RyZW5ndGhTdXBwb3J0ZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdHJlbmd0aChnZXRTdHJlbmd0aF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+QmFzc0Jvb3N0RWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0JBU1NCT09TVEVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q0YzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJDb252ZXJzaW9ucy5oIgorI2luY2x1ZGUgIkhpZGxVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBlZmZlY3REZXNjcmlwdG9yRnJvbUhhbCgKKyAgICAgICAgY29uc3QgZWZmZWN0X2Rlc2NyaXB0b3JfdCYgaGFsRGVzY3JpcHRvciwgRWZmZWN0RGVzY3JpcHRvciogZGVzY3JpcHRvcikgeworICAgIEhpZGxVdGlsczo6dXVpZEZyb21IYWwoaGFsRGVzY3JpcHRvci50eXBlLCAmZGVzY3JpcHRvci0+dHlwZSk7CisgICAgSGlkbFV0aWxzOjp1dWlkRnJvbUhhbChoYWxEZXNjcmlwdG9yLnV1aWQsICZkZXNjcmlwdG9yLT51dWlkKTsKKyAgICBkZXNjcmlwdG9yLT5mbGFncyA9IEVmZmVjdEZsYWdzKGhhbERlc2NyaXB0b3IuZmxhZ3MpOworICAgIGRlc2NyaXB0b3ItPmNwdUxvYWQgPSBoYWxEZXNjcmlwdG9yLmNwdUxvYWQ7CisgICAgZGVzY3JpcHRvci0+bWVtb3J5VXNhZ2UgPSBoYWxEZXNjcmlwdG9yLm1lbW9yeVVzYWdlOworICAgIG1lbWNweShkZXNjcmlwdG9yLT5uYW1lLmRhdGEoKSwgaGFsRGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLT5uYW1lLnNpemUoKSk7CisgICAgbWVtY3B5KGRlc2NyaXB0b3ItPmltcGxlbWVudG9yLmRhdGEoKSwKKyAgICAgICAgICAgIGhhbERlc2NyaXB0b3IuaW1wbGVtZW50b3IsIGRlc2NyaXB0b3ItPmltcGxlbWVudG9yLnNpemUoKSk7Cit9CisKK3N0ZDo6c3RyaW5nIHV1aWRUb1N0cmluZyhjb25zdCBlZmZlY3RfdXVpZF90JiBoYWxVdWlkKSB7CisgICAgY2hhciBzdHJbNjRdOworICAgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICIlMDh4LSUwNHgtJTA0eC0lMDR4LSUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVMb3csCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVNaWQsCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVIaUFuZFZlcnNpb24sCisgICAgICAgICAgICBoYWxVdWlkLmNsb2NrU2VxLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzBdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzFdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzJdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzNdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzRdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzVdKTsKKyAgICByZXR1cm4gc3RyOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2VmMzYyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19lZmZlY3RfVjJfMF9Db252ZXJzaW9uc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0NvbnZlcnNpb25zX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOworCit2b2lkIGVmZmVjdERlc2NyaXB0b3JGcm9tSGFsKAorICAgICAgICBjb25zdCBlZmZlY3RfZGVzY3JpcHRvcl90JiBoYWxEZXNjcmlwdG9yLCBFZmZlY3REZXNjcmlwdG9yKiBkZXNjcmlwdG9yKTsKK3N0ZDo6c3RyaW5nIHV1aWRUb1N0cmluZyhjb25zdCBlZmZlY3RfdXVpZF90JiBoYWxVdWlkKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0NvbnZlcnNpb25zX0hfCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRG93bm1peEVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRG93bm1peEVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmMTViZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmNwcApAQCAtMCwwICsxLDE5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRG93bm1peF9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Rvd25taXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRG93bm1peEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworRG93bm1peEVmZmVjdDo6RG93bm1peEVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKQorICAgICAgICA6IG1FZmZlY3QobmV3IEVmZmVjdChoYW5kbGUpKSB7Cit9CisKK0Rvd25taXhFZmZlY3Q6On5Eb3dubWl4RWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gRG93bm1peEVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRG93bm1peEVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklEb3dubWl4RWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFR5cGUoSURvd25taXhFZmZlY3Q6OlR5cGUgcHJlc2V0KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShET1dOTUlYX1BBUkFNX1RZUEUsIHN0YXRpY19jYXN0PGRvd25taXhfdHlwZV90PihwcmVzZXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldFR5cGUoZ2V0VHlwZV9jYiBfaGlkbF9jYikgIHsKKyAgICBkb3dubWl4X3R5cGVfdCBoYWxQcmVzZXQgPSBET1dOTUlYX1RZUEVfSU5WQUxJRDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRE9XTk1JWF9QQVJBTV9UWVBFLCBoYWxQcmVzZXQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgVHlwZShoYWxQcmVzZXQpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Rvd25taXhFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1ZjM0ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRE9XTk1JWEVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRE9XTk1JWEVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSURvd25taXhFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SURvd25taXhFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEb3dubWl4RWZmZWN0IDogcHVibGljIElEb3dubWl4RWZmZWN0IHsKKyAgICBleHBsaWNpdCBEb3dubWl4RWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SURvd25taXhFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldFR5cGUoSURvd25taXhFZmZlY3Q6OlR5cGUgcHJlc2V0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFR5cGUoZ2V0VHlwZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+RG93bm1peEVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9ET1dOTUlYRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQzNjYwNAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuY3BwCkBAIC0wLDAgKzEsNzY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorCisjZGVmaW5lIExPR19UQUcgIkVmZmVjdEhBTCIKKyNkZWZpbmUgQVRSQUNFX1RBRyBBVFJBQ0VfVEFHX0FVRElPCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPG1lZGlhL0VmZmVjdHNGYWN0b3J5QXBpLmg+CisjaW5jbHVkZSA8dXRpbHMvVHJhY2UuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRWZmZWN0LmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpNZXNzYWdlUXVldWVGbGFnQml0czsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUHJvY2Vzc1RocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICBwdWJsaWM6CisgICAgLy8gUHJvY2Vzc1RocmVhZCdzIGxpZmVzcGFuIG5ldmVyIGV4Y2VlZHMgRWZmZWN0J3MgbGlmZXNwYW4uCisgICAgUHJvY2Vzc1RocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwKKyAgICAgICAgICAgIGVmZmVjdF9oYW5kbGVfdCBlZmZlY3QsCisgICAgICAgICAgICBzdGQ6OmF0b21pYzxhdWRpb19idWZmZXJfdCo+KiBpbkJ1ZmZlciwKKyAgICAgICAgICAgIHN0ZDo6YXRvbWljPGF1ZGlvX2J1ZmZlcl90Kj4qIG91dEJ1ZmZlciwKKyAgICAgICAgICAgIEVmZmVjdDo6U3RhdHVzTVEqIHN0YXR1c01RLAorICAgICAgICAgICAgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICAgICAgOiBUaHJlYWQoZmFsc2UgLypjYW5DYWxsSmF2YSovKSwKKyAgICAgICAgICAgICAgbVN0b3Aoc3RvcCksCisgICAgICAgICAgICAgIG1FZmZlY3QoZWZmZWN0KSwKKyAgICAgICAgICAgICAgbUhhc1Byb2Nlc3NSZXZlcnNlKCgqbUVmZmVjdCktPnByb2Nlc3NfcmV2ZXJzZSAhPSBOVUxMKSwKKyAgICAgICAgICAgICAgbUluQnVmZmVyKGluQnVmZmVyKSwKKyAgICAgICAgICAgICAgbU91dEJ1ZmZlcihvdXRCdWZmZXIpLAorICAgICAgICAgICAgICBtU3RhdHVzTVEoc3RhdHVzTVEpLAorICAgICAgICAgICAgICBtRWZHcm91cChlZkdyb3VwKSB7CisgICAgfQorICAgIHZpcnR1YWwgflByb2Nlc3NUaHJlYWQoKSB7fQorCisgIHByaXZhdGU6CisgICAgc3RkOjphdG9taWM8Ym9vbD4qIG1TdG9wOworICAgIGVmZmVjdF9oYW5kbGVfdCBtRWZmZWN0OworICAgIGJvb2wgbUhhc1Byb2Nlc3NSZXZlcnNlOworICAgIHN0ZDo6YXRvbWljPGF1ZGlvX2J1ZmZlcl90Kj4qIG1JbkJ1ZmZlcjsKKyAgICBzdGQ6OmF0b21pYzxhdWRpb19idWZmZXJfdCo+KiBtT3V0QnVmZmVyOworICAgIEVmZmVjdDo6U3RhdHVzTVEqIG1TdGF0dXNNUTsKKyAgICBFdmVudEZsYWcqIG1FZkdyb3VwOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7Cit9OworCitib29sIFByb2Nlc3NUaHJlYWQ6OnRocmVhZExvb3AoKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJldHVybiBjb250cm9sIGJhY2sgdG8gdGhlIFRocmVhZCB1bnRpbCBpdCBkZWNpZGVzIHRvIHN0b3AsCisgICAgLy8gYXMgdGhlIFRocmVhZCB1c2VzIG11dGV4ZXMsIGFuZCB0aGlzIGNhbiBsZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4KKyAgICB3aGlsZSghc3RkOjphdG9taWNfbG9hZF9leHBsaWNpdChtU3RvcCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSkpIHsKKyAgICAgICAgdWludDMyX3QgZWZTdGF0ZSA9IDA7CisgICAgICAgIG1FZkdyb3VwLT53YWl0KHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX0FMTCksICZlZlN0YXRlKTsKKyAgICAgICAgaWYgKCEoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX0FMTCkpCisgICAgICAgICAgICAgICAgfHwgKGVmU3RhdGUgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OlJFUVVFU1RfUVVJVCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8gb3IgdGltZSB0byBxdWl0LgorICAgICAgICB9CisgICAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICBpZiAoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UpCisgICAgICAgICAgICAgICAgJiYgIW1IYXNQcm9jZXNzUmV2ZXJzZSkgeworICAgICAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAvLyBhZmZlY3RzIGJvdGggYnVmZmVyIHBvaW50ZXJzIGFuZCB0aGVpciBjb250ZW50cy4KKyAgICAgICAgICAgIHN0ZDo6YXRvbWljX3RocmVhZF9mZW5jZShzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKKyAgICAgICAgICAgIGludDMyX3QgcHJvY2Vzc1Jlc3VsdDsKKyAgICAgICAgICAgIGF1ZGlvX2J1ZmZlcl90KiBpbkJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQobUluQnVmZmVyLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICAgICAgICAgIGF1ZGlvX2J1ZmZlcl90KiBvdXRCdWZmZXIgPQorICAgICAgICAgICAgICAgICAgICBzdGQ6OmF0b21pY19sb2FkX2V4cGxpY2l0KG1PdXRCdWZmZXIsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgICAgICAgICAgaWYgKGluQnVmZmVyICE9IG51bGxwdHIgJiYgb3V0QnVmZmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTKSkgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUmVzdWx0ID0gKCptRWZmZWN0KS0+cHJvY2VzcyhtRWZmZWN0LCBpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUmVzdWx0ID0gKCptRWZmZWN0KS0+cHJvY2Vzc19yZXZlcnNlKG1FZmZlY3QsIGluQnVmZmVyLCBvdXRCdWZmZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGQ6OmF0b21pY190aHJlYWRfZmVuY2Uoc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJwcm9jZXNzaW5nIGJ1ZmZlcnMgd2VyZSBub3Qgc2V0IGJlZm9yZSBjYWxsaW5nICdwcm9jZXNzJyIpOworICAgICAgICAgICAgICAgIHByb2Nlc3NSZXN1bHQgPSAtRU5PREVWOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoKHByb2Nlc3NSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHZhbCA9IFJlc3VsdDo6T0s7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgLUVOT0RBVEE6IHJldHZhbCA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAtRUlOVkFMOiByZXR2YWwgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOyBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJnJldHZhbCkpIHsKKyAgICAgICAgICAgIEFMT0dXKCJzdGF0dXMgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OkRPTkVfUFJPQ0VTU0lORykpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKKy8vIHN0YXRpYworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dFJlc3VsdE9mQ29tbWFuZCA9ICJyZXR1cm5lZCBzdGF0dXMiOworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dENhbGxUb0NvbW1hbmQgPSAiZXJyb3IiOworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dENhbGxGdW5jdGlvbiA9IHNDb250ZXh0Q2FsbFRvQ29tbWFuZDsKKworRWZmZWN0OjpFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtSXNDbG9zZWQoZmFsc2UpLCBtSGFuZGxlKGhhbmRsZSksIG1FZkdyb3VwKG51bGxwdHIpLCBtU3RvcFByb2Nlc3NUaHJlYWQoZmFsc2UpIHsKK30KKworRWZmZWN0Ojp+RWZmZWN0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVByb2Nlc3NUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1Qcm9jZXNzVGhyZWFkLT5qb2luIik7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1Qcm9jZXNzVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgInByb2Nlc3NpbmcgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAicHJvY2Vzc2luZyBNUSBldmVudCBmbGFnIGRlbGV0aW9uIGVycm9yOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgbUluQnVmZmVyLmNsZWFyKCk7CisgICAgbU91dEJ1ZmZlci5jbGVhcigpOworICAgIGludCBzdGF0dXMgPSBFZmZlY3RSZWxlYXNlKG1IYW5kbGUpOworICAgIEFMT0dXX0lGKHN0YXR1cywgIkVycm9yIHJlbGVhc2luZyBlZmZlY3QgJXA6ICVzIiwgbUhhbmRsZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIEVmZmVjdE1hcDo6Z2V0SW5zdGFuY2UoKS5yZW1vdmUobUhhbmRsZSk7CisgICAgbUhhbmRsZSA9IDA7Cit9CisKKy8vIHN0YXRpYwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc2l6ZV90IEVmZmVjdDo6YWxpZ25lZFNpemVJbihzaXplX3QgcykgeworICAgIHJldHVybiAocyArIHNpemVvZihUKSAtIDEpIC8gc2l6ZW9mKFQpOworfQorCisvLyBzdGF0aWMKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IEVmZmVjdDo6aGlkbFZlY1RvSGFsKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxUPiYgdmVjLCB1aW50MzJfdCogaGFsRGF0YVNpemUpIHsKKyAgICAvLyBEdWUgdG8gYnVncyBpbiBIQUwsIHRoZXkgbWF5IGF0dGVtcHQgdG8gd3JpdGUgaW50byB0aGUgcHJvdmlkZWQKKyAgICAvLyBpbnB1dCBidWZmZXIuIFRoZSBvcmlnaW5hbCBiaW5kZXIgYnVmZmVyIGlzIHIvbywgdGh1cyBpdCBpcyBuZWVkZWQKKyAgICAvLyB0byBjcmVhdGUgYSByL3cgdmVyc2lvbi4KKyAgICAqaGFsRGF0YVNpemUgPSB2ZWMuc2l6ZSgpICogc2l6ZW9mKFQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGhhbERhdGEobmV3IHVpbnQ4X3RbKmhhbERhdGFTaXplXSk7CisgICAgbWVtY3B5KCZoYWxEYXRhWzBdLCAmdmVjWzBdLCAqaGFsRGF0YVNpemUpOworICAgIHJldHVybiBoYWxEYXRhOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RBdXhDaGFubmVsc0NvbmZpZ0Zyb21IYWwoCisgICAgICAgIGNvbnN0IGNoYW5uZWxfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+bWFpbkNoYW5uZWxzID0gQXVkaW9DaGFubmVsTWFzayhoYWxDb25maWcubWFpbl9jaGFubmVscyk7CisgICAgY29uZmlnLT5hdXhDaGFubmVscyA9IEF1ZGlvQ2hhbm5lbE1hc2soaGFsQ29uZmlnLmF1eF9jaGFubmVscyk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBFZmZlY3Q6OmVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcsIGNoYW5uZWxfY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIGhhbENvbmZpZy0+bWFpbl9jaGFubmVscyA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcubWFpbkNoYW5uZWxzKTsKKyAgICBoYWxDb25maWctPmF1eF9jaGFubmVscyA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcuYXV4Q2hhbm5lbHMpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RCdWZmZXJDb25maWdGcm9tSGFsKAorICAgICAgICBjb25zdCBidWZmZXJfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QnVmZmVyQ29uZmlnKiBjb25maWcpIHsKKyAgICBjb25maWctPmJ1ZmZlci5pZCA9IDA7CisgICAgY29uZmlnLT5idWZmZXIuZnJhbWVDb3VudCA9IDA7CisgICAgY29uZmlnLT5zYW1wbGluZ1JhdGVIeiA9IGhhbENvbmZpZy5zYW1wbGluZ1JhdGU7CisgICAgY29uZmlnLT5jaGFubmVscyA9IEF1ZGlvQ2hhbm5lbE1hc2soaGFsQ29uZmlnLmNoYW5uZWxzKTsKKyAgICBjb25maWctPmZvcm1hdCA9IEF1ZGlvRm9ybWF0KGhhbENvbmZpZy5mb3JtYXQpOworICAgIGNvbmZpZy0+YWNjZXNzTW9kZSA9IEVmZmVjdEJ1ZmZlckFjY2VzcyhoYWxDb25maWcuYWNjZXNzTW9kZSk7CisgICAgY29uZmlnLT5tYXNrID0gRWZmZWN0Q29uZmlnUGFyYW1ldGVycyhoYWxDb25maWcubWFzayk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBFZmZlY3Q6OmVmZmVjdEJ1ZmZlckNvbmZpZ1RvSGFsKGNvbnN0IEVmZmVjdEJ1ZmZlckNvbmZpZyYgY29uZmlnLCBidWZmZXJfY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIC8vIE5vdGU6IHNldHRpbmcgdGhlIGJ1ZmZlcnMgZGlyZWN0bHkgaXMgY29uc2lkZXJlZCBvYnNvbGV0ZS4gVGhleSBuZWVkIHRvIGJlIHNldAorICAgIC8vIHVzaW5nICdzZXRQcm9jZXNzQnVmZmVycycuCisgICAgaGFsQ29uZmlnLT5idWZmZXIuZnJhbWVDb3VudCA9IDA7CisgICAgaGFsQ29uZmlnLT5idWZmZXIucmF3ID0gTlVMTDsKKyAgICBoYWxDb25maWctPnNhbXBsaW5nUmF0ZSA9IGNvbmZpZy5zYW1wbGluZ1JhdGVIejsKKyAgICBoYWxDb25maWctPmNoYW5uZWxzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvbmZpZy5jaGFubmVscyk7CisgICAgLy8gTm90ZTogVGhlIGZyYW1ld29yayBjb2RlIGRvZXMgbm90IHVzZSBCUC4KKyAgICBoYWxDb25maWctPmJ1ZmZlclByb3ZpZGVyLmNvb2tpZSA9IE5VTEw7CisgICAgaGFsQ29uZmlnLT5idWZmZXJQcm92aWRlci5nZXRCdWZmZXIgPSBOVUxMOworICAgIGhhbENvbmZpZy0+YnVmZmVyUHJvdmlkZXIucmVsZWFzZUJ1ZmZlciA9IE5VTEw7CisgICAgaGFsQ29uZmlnLT5mb3JtYXQgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihjb25maWcuZm9ybWF0KTsKKyAgICBoYWxDb25maWctPmFjY2Vzc01vZGUgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihjb25maWcuYWNjZXNzTW9kZSk7CisgICAgaGFsQ29uZmlnLT5tYXNrID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oY29uZmlnLm1hc2spOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RDb25maWdGcm9tSGFsKGNvbnN0IGVmZmVjdF9jb25maWdfdCYgaGFsQ29uZmlnLCBFZmZlY3RDb25maWcqIGNvbmZpZykgeworICAgIGVmZmVjdEJ1ZmZlckNvbmZpZ0Zyb21IYWwoaGFsQ29uZmlnLmlucHV0Q2ZnLCAmY29uZmlnLT5pbnB1dENmZyk7CisgICAgZWZmZWN0QnVmZmVyQ29uZmlnRnJvbUhhbChoYWxDb25maWcub3V0cHV0Q2ZnLCAmY29uZmlnLT5vdXRwdXRDZmcpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RDb25maWdUb0hhbChjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywgZWZmZWN0X2NvbmZpZ190KiBoYWxDb25maWcpIHsKKyAgICBlZmZlY3RCdWZmZXJDb25maWdUb0hhbChjb25maWcuaW5wdXRDZmcsICZoYWxDb25maWctPmlucHV0Q2ZnKTsKKyAgICBlZmZlY3RCdWZmZXJDb25maWdUb0hhbChjb25maWcub3V0cHV0Q2ZnLCAmaGFsQ29uZmlnLT5vdXRwdXRDZmcpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbCgKKyAgICAgICAgY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgb2ZmbG9hZCwgZWZmZWN0X29mZmxvYWRfcGFyYW1fdCogaGFsT2ZmbG9hZCkgeworICAgIGhhbE9mZmxvYWQtPmlzT2ZmbG9hZCA9IG9mZmxvYWQuaXNPZmZsb2FkOworICAgIGhhbE9mZmxvYWQtPmlvSGFuZGxlID0gb2ZmbG9hZC5pb0hhbmRsZTsKK30KKworLy8gc3RhdGljCitzdGQ6OnZlY3Rvcjx1aW50OF90PiBFZmZlY3Q6OnBhcmFtZXRlclRvSGFsKAorICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsCisgICAgICAgIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwKKyAgICAgICAgdWludDMyX3QgdmFsdWVTaXplLAorICAgICAgICBjb25zdCB2b2lkKiogdmFsdWVEYXRhKSB7CisgICAgc2l6ZV90IHZhbHVlT2Zmc2V0RnJvbURhdGEgPSBhbGlnbmVkU2l6ZUluPHVpbnQzMl90PihwYXJhbVNpemUpICogc2l6ZW9mKHVpbnQzMl90KTsKKyAgICBzaXplX3QgaGFsUGFyYW1CdWZmZXJTaXplID0gc2l6ZW9mKGVmZmVjdF9wYXJhbV90KSArIHZhbHVlT2Zmc2V0RnJvbURhdGEgKyB2YWx1ZVNpemU7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFsUGFyYW1CdWZmZXIoaGFsUGFyYW1CdWZmZXJTaXplLCAwKTsKKyAgICBlZmZlY3RfcGFyYW1fdCAqaGFsUGFyYW0gPSByZWludGVycHJldF9jYXN0PGVmZmVjdF9wYXJhbV90Kj4oJmhhbFBhcmFtQnVmZmVyWzBdKTsKKyAgICBoYWxQYXJhbS0+cHNpemUgPSBwYXJhbVNpemU7CisgICAgaGFsUGFyYW0tPnZzaXplID0gdmFsdWVTaXplOworICAgIG1lbWNweShoYWxQYXJhbS0+ZGF0YSwgcGFyYW1EYXRhLCBwYXJhbVNpemUpOworICAgIGlmICh2YWx1ZURhdGEpIHsKKyAgICAgICAgaWYgKCp2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgIC8vIFZhbHVlIGRhdGEgaXMgcHJvdmlkZWQuCisgICAgICAgICAgICBtZW1jcHkoaGFsUGFyYW0tPmRhdGEgKyB2YWx1ZU9mZnNldEZyb21EYXRhLCAqdmFsdWVEYXRhLCB2YWx1ZVNpemUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIGNhbGxlciBuZWVkcyB0aGUgcG9pbnRlciB0byB0aGUgdmFsdWUgZGF0YSBsb2NhdGlvbi4KKyAgICAgICAgICAgICp2YWx1ZURhdGEgPSBoYWxQYXJhbS0+ZGF0YSArIHZhbHVlT2Zmc2V0RnJvbURhdGE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGhhbFBhcmFtQnVmZmVyOworfQorCitSZXN1bHQgRWZmZWN0OjphbmFseXplQ29tbWFuZFN0YXR1cyhjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgY29uc3QgY2hhciogY29udGV4dCwgc3RhdHVzX3Qgc3RhdHVzKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImNvbW1hbmQiLCBjb21tYW5kTmFtZSwgY29udGV4dCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgY29uc3QgY2hhciogZnVuY05hbWUsCisgICAgICAgIGNvbnN0IGNoYXIqIHN1YkZ1bmNOYW1lLAorICAgICAgICBjb25zdCBjaGFyKiBjb250ZXh0RGVzY3JpcHRpb24sCisgICAgICAgIHN0YXR1c190IHN0YXR1cykgeworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coIkVmZmVjdCAlcCAlcyAlcyAlczogJXMiLAorICAgICAgICAgICAgICAgIG1IYW5kbGUsIGZ1bmNOYW1lLCBzdWJGdW5jTmFtZSwgY29udGV4dERlc2NyaXB0aW9uLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PTUVNOiByZXR1cm4gUmVzdWx0OjpSRVNVTFRfVE9PX0JJRzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKwordm9pZCBFZmZlY3Q6OmdldENvbmZpZ0ltcGwoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgR2V0Q29uZmlnQ2FsbGJhY2sgY2IpIHsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRTaXplID0gc2l6ZW9mKGVmZmVjdF9jb25maWdfdCk7CisgICAgZWZmZWN0X2NvbmZpZ190IGhhbENvbmZpZ3t9OworICAgIHN0YXR1c190IHN0YXR1cyA9ICgqbUhhbmRsZSktPmNvbW1hbmQoCisgICAgICAgICAgICBtSGFuZGxlLCBjb21tYW5kQ29kZSwgMCwgTlVMTCwgJmhhbFJlc3VsdFNpemUsICZoYWxDb25maWcpOworICAgIEVmZmVjdENvbmZpZyBjb25maWc7CisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBlZmZlY3RDb25maWdGcm9tSGFsKGhhbENvbmZpZywgJmNvbmZpZyk7CisgICAgfQorICAgIGNiKGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dENhbGxUb0NvbW1hbmQsIHN0YXR1cyksIGNvbmZpZyk7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdJbXBsKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIHVpbnQzMl90IGNvbmZpZ1NpemUsIEdldEN1cnJlbnRDb25maWdTdWNjZXNzQ2FsbGJhY2sgb25TdWNjZXNzKSB7CisgICAgdWludDMyX3QgaGFsQ21kID0gZmVhdHVyZUlkOworICAgIHVpbnQzMl90IGhhbFJlc3VsdFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgY29uZmlnU2l6ZSldOworICAgIG1lbXNldChoYWxSZXN1bHQsIDAsIHNpemVvZihoYWxSZXN1bHQpKTsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRTaXplID0gMDsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXNBbmREYXRhKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9HRVRfRkVBVFVSRV9DT05GSUcsICJHRVRfRkVBVFVSRV9DT05GSUciLAorICAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbENtZCwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCBoYWxSZXN1bHQsCisgICAgICAgICAgICBzaXplb2YodWludDMyX3QpLAorICAgICAgICAgICAgWyZdeyBvblN1Y2Nlc3MoJmhhbFJlc3VsdFsxXSk7IH0pOworfQorCitSZXN1bHQgRWZmZWN0OjpnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsCisgICAgICAgIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVxdWVzdFZhbHVlU2l6ZSwKKyAgICAgICAgdWludDMyX3QgcmVwbHlWYWx1ZVNpemUsCisgICAgICAgIEdldFBhcmFtZXRlclN1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpIHsKKyAgICAvLyBBcyBpdCBpcyB1bmtub3duIHdoYXQgbWV0aG9kIEhBTCB1c2VzIGZvciBjb3B5aW5nIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXIgZGF0YSwKKyAgICAvLyBpdCBpcyBzYWZlciB0byBtYWtlIHN1cmUgdGhhdCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZG8gbm90IG92ZXJsYXAuCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFsQ21kQnVmZmVyID0KKyAgICAgICAgICAgIHBhcmFtZXRlclRvSGFsKHBhcmFtU2l6ZSwgcGFyYW1EYXRhLCByZXF1ZXN0VmFsdWVTaXplLCBudWxscHRyKTsKKyAgICBjb25zdCB2b2lkICp2YWx1ZURhdGEgPSBudWxscHRyOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbFBhcmFtQnVmZmVyID0KKyAgICAgICAgICAgIHBhcmFtZXRlclRvSGFsKHBhcmFtU2l6ZSwgcGFyYW1EYXRhLCByZXBseVZhbHVlU2l6ZSwgJnZhbHVlRGF0YSk7CisgICAgdWludDMyX3QgaGFsUGFyYW1CdWZmZXJTaXplID0gaGFsUGFyYW1CdWZmZXIuc2l6ZSgpOworCisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfR0VUX1BBUkFNLCAiR0VUX1BBUkFNIiwKKyAgICAgICAgICAgIGhhbENtZEJ1ZmZlci5zaXplKCksICZoYWxDbWRCdWZmZXJbMF0sCisgICAgICAgICAgICAmaGFsUGFyYW1CdWZmZXJTaXplLCAmaGFsUGFyYW1CdWZmZXJbMF0sCisgICAgICAgICAgICBzaXplb2YoZWZmZWN0X3BhcmFtX3QpLAorICAgICAgICAgICAgWyZdeworICAgICAgICAgICAgICAgIGVmZmVjdF9wYXJhbV90ICpoYWxQYXJhbSA9IHJlaW50ZXJwcmV0X2Nhc3Q8ZWZmZWN0X3BhcmFtX3QqPigmaGFsUGFyYW1CdWZmZXJbMF0pOworICAgICAgICAgICAgICAgIG9uU3VjY2VzcyhoYWxQYXJhbS0+dnNpemUsIHZhbHVlRGF0YSk7CisgICAgICAgICAgICB9KTsKK30KKworUmVzdWx0IEVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ltcGwoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgR2V0U3VwcG9ydGVkQ29uZmlnc1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpIHsKKyAgICB1aW50MzJfdCBoYWxDbWRbMl0gPSB7IGZlYXR1cmVJZCwgbWF4Q29uZmlncyB9OworICAgIHVpbnQzMl90IGhhbFJlc3VsdFNpemUgPSAyICogc2l6ZW9mKHVpbnQzMl90KSArIG1heENvbmZpZ3MgKiBzaXplb2YoY29uZmlnU2l6ZSk7CisgICAgdWludDhfdCBoYWxSZXN1bHRbaGFsUmVzdWx0U2l6ZV07CisgICAgbWVtc2V0KCZoYWxSZXN1bHRbMF0sIDAsIGhhbFJlc3VsdFNpemUpOworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1c0FuZERhdGEoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX0dFVF9GRUFUVVJFX1NVUFBPUlRFRF9DT05GSUdTLCAiR0VUX0ZFQVRVUkVfU1VQUE9SVEVEX0NPTkZJR1MiLAorICAgICAgICAgICAgc2l6ZW9mKGhhbENtZCksIGhhbENtZCwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCAmaGFsUmVzdWx0WzBdLAorICAgICAgICAgICAgMiAqIHNpemVvZih1aW50MzJfdCksCisgICAgICAgICAgICBbJl17CisgICAgICAgICAgICAgICAgdWludDMyX3QgKmhhbFJlc3VsdDMyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KCZoYWxSZXN1bHRbMF0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHN1cHBvcnRlZENvbmZpZ3MgPSAqKCsraGFsUmVzdWx0MzIpOyAvLyBza2lwIHN0YXR1cyBmaWVsZAorICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRDb25maWdzID4gbWF4Q29uZmlncykgc3VwcG9ydGVkQ29uZmlncyA9IG1heENvbmZpZ3M7CisgICAgICAgICAgICAgICAgb25TdWNjZXNzKHN1cHBvcnRlZENvbmZpZ3MsICsraGFsUmVzdWx0MzIpOworICAgICAgICAgICAgfSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworICAgIC8vIENyZWF0ZSBtZXNzYWdlIHF1ZXVlLgorICAgIGlmIChtU3RhdHVzTVEpIHsKKyAgICAgICAgQUxPR0UoInRoZSBjbGllbnQgYXR0ZW1wdHMgdG8gY2FsbCBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiB0d2ljZSIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfU1RBVEUsIFN0YXR1c01ROjpEZXNjcmlwdG9yKCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RhdHVzTVE+IHRlbXBTdGF0dXNNUShuZXcgU3RhdHVzTVEoMSwgdHJ1ZSAvKkV2ZW50RmxhZyovKSk7CisgICAgaWYgKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSkgeworICAgICAgICBBTE9HRV9JRighdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCksICJzdGF0dXMgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBTdGF0dXNNUTo6RGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RhdHVzID0gRXZlbnRGbGFnOjpjcmVhdGVFdmVudEZsYWcodGVtcFN0YXR1c01RLT5nZXRFdmVudEZsYWdXb3JkKCksICZtRWZHcm91cCk7CisgICAgaWYgKHN0YXR1cyAhPSBPSyB8fCAhbUVmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBzdGF0dXMgTVE6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBTdGF0dXNNUTo6RGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIGxhdW5jaCB0aGUgdGhyZWFkLgorICAgIG1Qcm9jZXNzVGhyZWFkID0gbmV3IFByb2Nlc3NUaHJlYWQoCisgICAgICAgICAgICAmbVN0b3BQcm9jZXNzVGhyZWFkLAorICAgICAgICAgICAgbUhhbmRsZSwKKyAgICAgICAgICAgICZtSGFsSW5CdWZmZXJQdHIsCisgICAgICAgICAgICAmbUhhbE91dEJ1ZmZlclB0ciwKKyAgICAgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwKKyAgICAgICAgICAgIG1FZkdyb3VwKTsKKyAgICBzdGF0dXMgPSBtUHJvY2Vzc1RocmVhZC0+cnVuKCJlZmZlY3QiLCBQUklPUklUWV9VUkdFTlRfQVVESU8pOworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCBlZmZlY3QgcHJvY2Vzc2luZyB0aHJlYWQ6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBNUURlc2NyaXB0b3JTeW5jPFJlc3VsdD4oKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbVN0YXR1c01RID0gc3RkOjptb3ZlKHRlbXBTdGF0dXNNUSk7CisgICAgX2hpZGxfY2IoUmVzdWx0OjpPSywgKm1TdGF0dXNNUS0+Z2V0RGVzYygpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXImIG1hbmFnZXIgPSBBdWRpb0J1ZmZlck1hbmFnZXI6OmdldEluc3RhbmNlKCk7CisgICAgc3A8QXVkaW9CdWZmZXJXcmFwcGVyPiB0ZW1wSW5CdWZmZXIsIHRlbXBPdXRCdWZmZXI7CisgICAgaWYgKCFtYW5hZ2VyLndyYXAoaW5CdWZmZXIsICZ0ZW1wSW5CdWZmZXIpKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbWFwIG1lbW9yeSBvZiB0aGUgaW5wdXQgYnVmZmVyIik7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICBpZiAoIW1hbmFnZXIud3JhcChvdXRCdWZmZXIsICZ0ZW1wT3V0QnVmZmVyKSkgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IG1hcCBtZW1vcnkgb2YgdGhlIG91dHB1dCBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIG1JbkJ1ZmZlciA9IHRlbXBJbkJ1ZmZlcjsKKyAgICBtT3V0QnVmZmVyID0gdGVtcE91dEJ1ZmZlcjsKKyAgICAvLyBUaGUgcHJvY2Vzc2luZyB0aHJlYWQgb25seSByZWFkcyB0aGVzZSBwb2ludGVycyBhZnRlciB3YWtpbmcgdXAgYnkgYW4gZXZlbnQgZmxhZywKKyAgICAvLyBzbyBpdCdzIE9LIHRvIHVwZGF0ZSB0aGUgcGFpciBub24tYXRvbWljYWxseS4KKyAgICBtSGFsSW5CdWZmZXJQdHIuc3RvcmUobUluQnVmZmVyLT5nZXRIYWxCdWZmZXIoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgbUhhbE91dEJ1ZmZlclB0ci5zdG9yZShtT3V0QnVmZmVyLT5nZXRIYWxCdWZmZXIoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OnNlbmRDb21tYW5kKGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUpIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmQoY29tbWFuZENvZGUsIGNvbW1hbmROYW1lLCAwLCBOVUxMKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmQoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEpIHsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCAwLCBOVUxMKTsKKyAgICByZXR1cm4gYW5hbHl6ZUNvbW1hbmRTdGF0dXMoY29tbWFuZE5hbWUsIHNDb250ZXh0Q2FsbFRvQ29tbWFuZCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKAorICAgICAgICBpbnQgY29tbWFuZENvZGUsIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lLAorICAgICAgICB1aW50MzJfdCogcmVwbHlTaXplLCB2b2lkKiByZXBseURhdGEpIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgMCwgTlVMTCwgcmVwbHlTaXplLCByZXBseURhdGEpOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ0RhdGEoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEsCisgICAgICAgIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSkgeworICAgIHVpbnQzMl90IGV4cGVjdGVkUmVwbHlTaXplID0gKnJlcGx5U2l6ZTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCByZXBseVNpemUsIHJlcGx5RGF0YSk7CisgICAgaWYgKHN0YXR1cyA9PSBPSyAmJiAqcmVwbHlTaXplICE9IGV4cGVjdGVkUmVwbHlTaXplKSB7CisgICAgICAgIHN0YXR1cyA9IC1FTk9EQVRBOworICAgIH0KKyAgICByZXR1cm4gYW5hbHl6ZUNvbW1hbmRTdGF0dXMoY29tbWFuZE5hbWUsIHNDb250ZXh0Q2FsbFRvQ29tbWFuZCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSkgeworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cyhjb21tYW5kQ29kZSwgY29tbWFuZE5hbWUsIDAsIE5VTEwpOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSkgeworICAgIHVpbnQzMl90IHJlcGx5Q21kU3RhdHVzOworICAgIHVpbnQzMl90IHJlcGx5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgc2l6ZSwgZGF0YSwgJnJlcGx5U2l6ZSwgJnJlcGx5Q21kU3RhdHVzLCByZXBseVNpemUsIFtde30pOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1c0FuZERhdGEoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEsCisgICAgICAgIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSwKKyAgICAgICAgdWludDMyX3QgbWluUmVwbHlTaXplLAorICAgICAgICBDb21tYW5kU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2VzcykgeworICAgIHN0YXR1c190IHN0YXR1cyA9CisgICAgICAgICAgICAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCByZXBseVNpemUsIHJlcGx5RGF0YSk7CisgICAgUmVzdWx0IHJldHZhbDsKKyAgICBpZiAoc3RhdHVzID09IE9LICYmIG1pblJlcGx5U2l6ZSA+PSBzaXplb2YodWludDMyX3QpICYmICpyZXBseVNpemUgPj0gbWluUmVwbHlTaXplKSB7CisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRTdGF0dXMgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KHJlcGx5RGF0YSk7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dFJlc3VsdE9mQ29tbWFuZCwgY29tbWFuZFN0YXR1cyk7CisgICAgICAgIGlmIChjb21tYW5kU3RhdHVzID09IE9LKSB7CisgICAgICAgICAgICBvblN1Y2Nlc3MoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dENhbGxUb0NvbW1hbmQsIHN0YXR1cyk7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OnNldENvbmZpZ0ltcGwoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICBlZmZlY3RfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIGVmZmVjdENvbmZpZ1RvSGFsKGNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgaWYgKGlucHV0QnVmZmVyUHJvdmlkZXIgIT0gMCkgeworICAgICAgICBMT0dfRkFUQUwoIlVzaW5nIGlucHV0IGJ1ZmZlciBwcm92aWRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgfQorICAgIGlmIChvdXRwdXRCdWZmZXJQcm92aWRlciAhPSAwKSB7CisgICAgICAgIExPR19GQVRBTCgiVXNpbmcgb3V0cHV0IGJ1ZmZlciBwcm92aWRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgfQorICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgICAgIGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgc2l6ZW9mKGVmZmVjdF9jb25maWdfdCksICZoYWxDb25maWcpOworfQorCisKK1Jlc3VsdCBFZmZlY3Q6OnNldFBhcmFtZXRlckltcGwoCisgICAgICAgIHVpbnQzMl90IHBhcmFtU2l6ZSwgY29uc3Qgdm9pZCogcGFyYW1EYXRhLCB1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbFBhcmFtQnVmZmVyID0gcGFyYW1ldGVyVG9IYWwoCisgICAgICAgICAgICBwYXJhbVNpemUsIHBhcmFtRGF0YSwgdmFsdWVTaXplLCAmdmFsdWVEYXRhKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9QQVJBTSwgIlNFVF9QQVJBTSIsIGhhbFBhcmFtQnVmZmVyLnNpemUoKSwgJmhhbFBhcmFtQnVmZmVyWzBdKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRWZmZWN0Ojppbml0KCkgIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoRUZGRUNUX0NNRF9JTklULCAiSU5JVCIpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIHsKKyAgICByZXR1cm4gc2V0Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRywgIlNFVF9DT05GSUciLCBjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpyZXNldCgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKEVGRkVDVF9DTURfUkVTRVQsICJSRVNFVCIpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OmVuYWJsZSgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfRU5BQkxFLCAiRU5BQkxFIik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6ZGlzYWJsZSgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfRElTQUJMRSwgIkRJU0FCTEUiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgeworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXZpY2UpOworICAgIHJldHVybiBzZW5kQ29tbWFuZChFRkZFQ1RfQ01EX1NFVF9ERVZJQ0UsICJTRVRfREVWSUNFIiwgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbERldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsRGF0YVNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGFsRGF0YSA9IGhpZGxWZWNUb0hhbCh2b2x1bWVzLCAmaGFsRGF0YVNpemUpOworICAgIHVpbnQzMl90IGhhbFJlc3VsdFNpemUgPSBoYWxEYXRhU2l6ZTsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRbdm9sdW1lcy5zaXplKCldOworICAgIFJlc3VsdCByZXR2YWwgPSBzZW5kQ29tbWFuZFJldHVybmluZ0RhdGEoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9WT0xVTUUsICJTRVRfVk9MVU1FIiwKKyAgICAgICAgICAgIGhhbERhdGFTaXplLCAmaGFsRGF0YVswXSwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCBoYWxSZXN1bHQpOworICAgIGhpZGxfdmVjPHVpbnQzMl90PiByZXN1bHQ7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKCZoYWxSZXN1bHRbMF0sIGhhbFJlc3VsdFNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgeworICAgIHVpbnQzMl90IGhhbERhdGFTaXplOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGhhbERhdGEgPSBoaWRsVmVjVG9IYWwodm9sdW1lcywgJmhhbERhdGFTaXplKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmQoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9WT0xVTUUsICJTRVRfVk9MVU1FIiwKKyAgICAgICAgICAgIGhhbERhdGFTaXplLCAmaGFsRGF0YVswXSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgeworICAgIHVpbnQzMl90IGhhbE1vZGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obW9kZSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9TRVRfQVVESU9fTU9ERSwgIlNFVF9BVURJT19NT0RFIiwgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbE1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICB7CisgICAgcmV0dXJuIHNldENvbmZpZ0ltcGwoRUZGRUNUX0NNRF9TRVRfQ09ORklHX1JFVkVSU0UsICJTRVRfQ09ORklHX1JFVkVSU0UiLAorICAgICAgICAgICAgY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgeworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXZpY2UpOworICAgIHJldHVybiBzZW5kQ29tbWFuZCgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0lOUFVUX0RFVklDRSwgIlNFVF9JTlBVVF9ERVZJQ0UiLCBzaXplb2YodWludDMyX3QpLCAmaGFsRGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIHsKKyAgICBnZXRDb25maWdJbXBsKEVGRkVDVF9DTURfR0VUX0NPTkZJRywgIkdFVF9DT05GSUciLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgeworICAgIGdldENvbmZpZ0ltcGwoRUZGRUNUX0NNRF9HRVRfQ09ORklHX1JFVkVSU0UsICJHRVRfQ09ORklHX1JFVkVSU0UiLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+IHJlc3VsdDsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0U3VwcG9ydGVkQ29uZmlnc0ltcGwoCisgICAgICAgICAgICBFRkZFQ1RfRkVBVFVSRV9BVVhfQ0hBTk5FTFMsCisgICAgICAgICAgICBtYXhDb25maWdzLAorICAgICAgICAgICAgc2l6ZW9mKGNoYW5uZWxfY29uZmlnX3QpLAorICAgICAgICAgICAgWyZdICh1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdzLCB2b2lkKiBjb25maWdzRGF0YSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUoc3VwcG9ydGVkQ29uZmlncyk7CisgICAgICAgICAgICAgICAgY2hhbm5lbF9jb25maWdfdCAqY29uZmlnID0gcmVpbnRlcnByZXRfY2FzdDxjaGFubmVsX2NvbmZpZ190Kj4oY29uZmlnc0RhdGEpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnRnJvbUhhbCgqY29uZmlnKyssICZyZXN1bHRbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBoYWxDbWQgPSBFRkZFQ1RfRkVBVFVSRV9BVVhfQ0hBTk5FTFM7CisgICAgdWludDMyX3QgaGFsUmVzdWx0W2FsaWduZWRTaXplSW48dWludDMyX3Q+KHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoY2hhbm5lbF9jb25maWdfdCkpXTsKKyAgICBtZW1zZXQoaGFsUmVzdWx0LCAwLCBzaXplb2YoaGFsUmVzdWx0KSk7CisgICAgdWludDMyX3QgaGFsUmVzdWx0U2l6ZSA9IDA7CisgICAgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcgcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIEVGRkVDVF9GRUFUVVJFX0FVWF9DSEFOTkVMUywKKyAgICAgICAgICAgIHNpemVvZihjaGFubmVsX2NvbmZpZ190KSwKKyAgICAgICAgICAgIFsmXSAodm9pZCogY29uZmlnRGF0YSkgeworICAgICAgICAgICAgICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGNoYW5uZWxfY29uZmlnX3QqPihjb25maWdEYXRhKSwgJnJlc3VsdCk7CisgICAgICAgICAgICB9KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgeworICAgIHVpbnQzMl90IGhhbENtZFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgc2l6ZW9mKGNoYW5uZWxfY29uZmlnX3QpKV07CisgICAgaGFsQ21kWzBdID0gRUZGRUNUX0ZFQVRVUkVfQVVYX0NIQU5ORUxTOworICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoY29uZmlnLCByZWludGVycHJldF9jYXN0PGNoYW5uZWxfY29uZmlnX3QqPigmaGFsQ21kWzFdKSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfU0VUX0ZFQVRVUkVfQ09ORklHLAorICAgICAgICAgICAgIlNFVF9GRUFUVVJFX0NPTkZJRyBBVVhfQ0hBTk5FTFMiLCBzaXplb2YoaGFsQ21kKSwgaGFsQ21kKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICB7CisgICAgdWludDMyX3QgaGFsU291cmNlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNvdXJjZSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9TRVRfQVVESU9fU09VUkNFLCAiU0VUX0FVRElPX1NPVVJDRSIsIHNpemVvZih1aW50MzJfdCksICZoYWxTb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICB7CisgICAgZWZmZWN0X29mZmxvYWRfcGFyYW1fdCBoYWxQYXJhbTsKKyAgICBlZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbChwYXJhbSwgJmhhbFBhcmFtKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX09GRkxPQUQsICJPRkZMT0FEIiwgc2l6ZW9mKGVmZmVjdF9vZmZsb2FkX3BhcmFtX3QpLCAmaGFsUGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICB7CisgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgIG1lbXNldCgmaGFsRGVzY3JpcHRvciwgMCwgc2l6ZW9mKGVmZmVjdF9kZXNjcmlwdG9yX3QpKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5nZXRfZGVzY3JpcHRvcihtSGFuZGxlLCAmaGFsRGVzY3JpcHRvcik7CisgICAgRWZmZWN0RGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgZWZmZWN0RGVzY3JpcHRvckZyb21IYWwoaGFsRGVzY3JpcHRvciwgJmRlc2NyaXB0b3IpOworICAgIH0KKyAgICBfaGlkbF9jYihhbmFseXplU3RhdHVzKCJnZXRfZGVzY3JpcHRvciIsICIiLCBzQ29udGV4dENhbGxGdW5jdGlvbiwgc3RhdHVzKSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBoYWxEYXRhU2l6ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBoYWxEYXRhID0gaGlkbFZlY1RvSGFsKGRhdGEsICZoYWxEYXRhU2l6ZSk7CisgICAgdWludDMyX3QgaGFsUmVzdWx0U2l6ZSA9IHJlc3VsdE1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGFsUmVzdWx0KG5ldyB1aW50OF90W2hhbFJlc3VsdFNpemVdKTsKKyAgICBtZW1zZXQoJmhhbFJlc3VsdFswXSwgMCwgaGFsUmVzdWx0U2l6ZSk7CisKKyAgICB2b2lkKiBkYXRhUHRyID0gaGFsRGF0YVNpemUgPiAwID8gJmhhbERhdGFbMF0gOiBOVUxMOworICAgIHZvaWQqIHJlc3VsdFB0ciA9IGhhbFJlc3VsdFNpemUgPiAwID8gJmhhbFJlc3VsdFswXSA6IE5VTEw7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gKCptSGFuZGxlKS0+Y29tbWFuZCgKKyAgICAgICAgICAgIG1IYW5kbGUsIGNvbW1hbmRJZCwgaGFsRGF0YVNpemUsIGRhdGFQdHIsICZoYWxSZXN1bHRTaXplLCByZXN1bHRQdHIpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICBpZiAoc3RhdHVzID09IE9LICYmIHJlc3VsdFB0ciAhPSBOVUxMKSB7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKCZoYWxSZXN1bHRbMF0sIGhhbFJlc3VsdFNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIHsKKyAgICByZXR1cm4gc2V0UGFyYW1ldGVySW1wbChwYXJhbWV0ZXIuc2l6ZSgpLCAmcGFyYW1ldGVyWzBdLCB2YWx1ZS5zaXplKCksICZ2YWx1ZVswXSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgdWludDMyX3QgdmFsdWVNYXhTaXplLCBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gdmFsdWU7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBwYXJhbWV0ZXIuc2l6ZSgpLAorICAgICAgICAgICAgJnBhcmFtZXRlclswXSwKKyAgICAgICAgICAgIHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29uc3RfY2FzdDx2b2lkKj4odmFsdWVEYXRhKSksIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICB9KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHZhbHVlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBjb25maWdDb3VudCA9IDA7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRTdXBwb3J0ZWRDb25maWdzSW1wbCgKKyAgICAgICAgICAgIGZlYXR1cmVJZCwKKyAgICAgICAgICAgIG1heENvbmZpZ3MsCisgICAgICAgICAgICBjb25maWdTaXplLAorICAgICAgICAgICAgWyZdICh1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdzLCB2b2lkKiBjb25maWdzRGF0YSkgeworICAgICAgICAgICAgICAgIGNvbmZpZ0NvdW50ID0gc3VwcG9ydGVkQ29uZmlnczsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGNvbmZpZ0NvdW50ICogY29uZmlnU2l6ZSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KCZyZXN1bHRbMF0sIGNvbmZpZ3NEYXRhLCByZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgY29uZmlnQ291bnQsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgdWludDMyX3QgY29uZmlnU2l6ZSwgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIGZlYXR1cmVJZCwKKyAgICAgICAgICAgIGNvbmZpZ1NpemUsCisgICAgICAgICAgICBbJl0gKHZvaWQqIGNvbmZpZ0RhdGEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGNvbmZpZ1NpemUpOworICAgICAgICAgICAgICAgIG1lbWNweSgmcmVzdWx0WzBdLCBjb25maWdEYXRhLCByZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgeworICAgIHVpbnQzMl90IGhhbENtZFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgY29uZmlnRGF0YS5zaXplKCkpXTsKKyAgICBtZW1zZXQoaGFsQ21kLCAwLCBzaXplb2YoaGFsQ21kKSk7CisgICAgaGFsQ21kWzBdID0gZmVhdHVyZUlkOworICAgIG1lbWNweSgmaGFsQ21kWzFdLCAmY29uZmlnRGF0YVswXSwgY29uZmlnRGF0YS5zaXplKCkpOworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0ZFQVRVUkVfQ09ORklHLCAiU0VUX0ZFQVRVUkVfQ09ORklHIiwgc2l6ZW9mKGhhbENtZCksIGhhbENtZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6Y2xvc2UoKSB7CisgICAgaWYgKG1Jc0Nsb3NlZCkgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICBtSXNDbG9zZWQgPSB0cnVlOworICAgIGlmIChtUHJvY2Vzc1RocmVhZC5nZXQoKSkgeworICAgICAgICBtU3RvcFByb2Nlc3NUaHJlYWQuc3RvcmUodHJ1ZSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgfQorICAgIGlmIChtRWZHcm91cCkgeworICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OlJFUVVFU1RfUVVJVCkpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpPSzsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTE4Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdC5oCkBAIC0wLDAgKzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRUZGRUNUX0gKKworI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvX2VmZmVjdC5oPgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXJNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdE9mZmxvYWRQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBFZmZlY3QgOiBwdWJsaWMgSUVmZmVjdCB7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8UmVzdWx0LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBTdGF0dXNNUTsKKyAgICB1c2luZyBHZXRQYXJhbWV0ZXJTdWNjZXNzQ2FsbGJhY2sgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90IHZhbHVlU2l6ZSwgY29uc3Qgdm9pZCogdmFsdWVEYXRhKT47CisKKyAgICBleHBsaWNpdCBFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmV0dXJuPHZvaWQ+IGdldEludGVnZXJQYXJhbSgKKyAgICAgICAgICAgIHVpbnQzMl90IHBhcmFtSWQsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBUIHBhcmFtVmFsdWUpPiBjYikgeworICAgICAgICBUIHZhbHVlOworICAgICAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgICAgICBzaXplb2YodWludDMyX3QpLCAmcGFyYW1JZCwKKyAgICAgICAgICAgICAgICBzaXplb2YoVCksCisgICAgICAgICAgICAgICAgWyZdICh1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gc2l6ZW9mKFQpKSB2YWx1ZVNpemUgPSBzaXplb2YoVCk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgmdmFsdWUsIHZhbHVlRGF0YSwgdmFsdWVTaXplKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgY2IocmV0dmFsLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmVzdWx0IGdldFBhcmFtKHVpbnQzMl90IHBhcmFtSWQsIFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSwgJnBhcmFtSWQsCisgICAgICAgICAgICAgICAgc2l6ZW9mKFQpLAorICAgICAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlU2l6ZSA+IHNpemVvZihUKSkgdmFsdWVTaXplID0gc2l6ZW9mKFQpOworICAgICAgICAgICAgICAgICAgICBtZW1jcHkoJnBhcmFtVmFsdWUsIHZhbHVlRGF0YSwgdmFsdWVTaXplKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZXN1bHQgZ2V0UGFyYW0odWludDMyX3QgcGFyYW1JZCwgdWludDMyX3QgcGFyYW1BcmcsIFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgdWludDMyX3QgcGFyYW1zWzJdID0geyBwYXJhbUlkLCBwYXJhbUFyZyB9OworICAgICAgICByZXR1cm4gZ2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgICAgICBzaXplb2YocGFyYW1zKSwgcGFyYW1zLAorICAgICAgICAgICAgICAgIHNpemVvZihUKSwKKyAgICAgICAgICAgICAgICBbJl0gKHVpbnQzMl90IHZhbHVlU2l6ZSwgY29uc3Qgdm9pZCogdmFsdWVEYXRhKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVNpemUgPiBzaXplb2YoVCkpIHZhbHVlU2l6ZSA9IHNpemVvZihUKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCZwYXJhbVZhbHVlLCB2YWx1ZURhdGEsIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmVzdWx0IHNldFBhcmFtKHVpbnQzMl90IHBhcmFtSWQsIGNvbnN0IFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHNldFBhcmFtZXRlckltcGwoc2l6ZW9mKHVpbnQzMl90KSwgJnBhcmFtSWQsIHNpemVvZihUKSwgJnBhcmFtVmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFJlc3VsdCBzZXRQYXJhbSh1aW50MzJfdCBwYXJhbUlkLCB1aW50MzJfdCBwYXJhbUFyZywgY29uc3QgVCYgcGFyYW1WYWx1ZSkgeworICAgICAgICB1aW50MzJfdCBwYXJhbXNbMl0gPSB7IHBhcmFtSWQsIHBhcmFtQXJnIH07CisgICAgICAgIHJldHVybiBzZXRQYXJhbWV0ZXJJbXBsKHNpemVvZihwYXJhbXMpLCBwYXJhbXMsIHNpemVvZihUKSwgJnBhcmFtVmFsdWUpOworICAgIH0KKworICAgIFJlc3VsdCBnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgdWludDMyX3QgcGFyYW1TaXplLAorICAgICAgICAgICAgY29uc3Qgdm9pZCogcGFyYW1EYXRhLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVTaXplLAorICAgICAgICAgICAgR2V0UGFyYW1ldGVyU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2VzcykgeworICAgICAgICByZXR1cm4gZ2V0UGFyYW1ldGVySW1wbChwYXJhbVNpemUsIHBhcmFtRGF0YSwgdmFsdWVTaXplLCB2YWx1ZVNpemUsIG9uU3VjY2Vzcyk7CisgICAgfQorICAgIFJlc3VsdCBnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgdWludDMyX3QgcGFyYW1TaXplLAorICAgICAgICAgICAgY29uc3Qgdm9pZCogcGFyYW1EYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVxdWVzdFZhbHVlU2l6ZSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlcGx5VmFsdWVTaXplLAorICAgICAgICAgICAgR2V0UGFyYW1ldGVyU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2Vzcyk7CisgICAgUmVzdWx0IHNldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwgdWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpOworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIHN0cnVjdCBWaXJ0dWFsaXplckVmZmVjdDsgIC8vIGZvciBnZXRQYXJhbWV0ZXJJbXBsCisgICAgZnJpZW5kIHN0cnVjdCBWaXN1YWxpemVyRWZmZWN0OyAgIC8vIHRvIGFsbG93IGV4ZWN1dGluZyBjb21tYW5kcworCisgICAgdXNpbmcgQ29tbWFuZFN1Y2Nlc3NDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKKyAgICB1c2luZyBHZXRDb25maWdDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZyk+OworICAgIHVzaW5nIEdldEN1cnJlbnRDb25maWdTdWNjZXNzQ2FsbGJhY2sgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQodm9pZCogY29uZmlnRGF0YSk+OworICAgIHVzaW5nIEdldFN1cHBvcnRlZENvbmZpZ3NTdWNjZXNzQ2FsbGJhY2sgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90IHN1cHBvcnRlZENvbmZpZ3MsIHZvaWQqIGNvbmZpZ3NEYXRhKT47CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqc0NvbnRleHRSZXN1bHRPZkNvbW1hbmQ7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKnNDb250ZXh0Q2FsbFRvQ29tbWFuZDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqc0NvbnRleHRDYWxsRnVuY3Rpb247CisKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBlZmZlY3RfaGFuZGxlX3QgbUhhbmRsZTsKKyAgICBzcDxBdWRpb0J1ZmZlcldyYXBwZXI+IG1JbkJ1ZmZlcjsKKyAgICBzcDxBdWRpb0J1ZmZlcldyYXBwZXI+IG1PdXRCdWZmZXI7CisgICAgc3RkOjphdG9taWM8YXVkaW9fYnVmZmVyX3QqPiBtSGFsSW5CdWZmZXJQdHI7CisgICAgc3RkOjphdG9taWM8YXVkaW9fYnVmZmVyX3QqPiBtSGFsT3V0QnVmZmVyUHRyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BQcm9jZXNzVGhyZWFkOworICAgIHNwPFRocmVhZD4gbVByb2Nlc3NUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5FZmZlY3QoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBzaXplX3QgYWxpZ25lZFNpemVJbihzaXplX3Qgcyk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGlkbFZlY1RvSGFsKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VD4mIHZlYywgdWludDMyX3QqIGhhbERhdGFTaXplKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RBdXhDaGFubmVsc0NvbmZpZ0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBjaGFubmVsX2NvbmZpZ190JiBoYWxDb25maWcsIEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnKiBjb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnLCBjaGFubmVsX2NvbmZpZ190KiBoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEJ1ZmZlckNvbmZpZ0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBidWZmZXJfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QnVmZmVyQ29uZmlnKiBjb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEJ1ZmZlckNvbmZpZ1RvSGFsKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0QnVmZmVyQ29uZmlnJiBjb25maWcsIGJ1ZmZlcl9jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RDb25maWdGcm9tSGFsKGNvbnN0IGVmZmVjdF9jb25maWdfdCYgaGFsQ29uZmlnLCBFZmZlY3RDb25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgZWZmZWN0Q29uZmlnVG9IYWwoY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsIGVmZmVjdF9jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbCgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIG9mZmxvYWQsIGVmZmVjdF9vZmZsb2FkX3BhcmFtX3QqIGhhbE9mZmxvYWQpOworICAgIHN0YXRpYyBzdGQ6OnZlY3Rvcjx1aW50OF90PiBwYXJhbWV0ZXJUb0hhbCgKKyAgICAgICAgICAgIHVpbnQzMl90IHBhcmFtU2l6ZSwgY29uc3Qgdm9pZCogcGFyYW1EYXRhLCB1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqKiB2YWx1ZURhdGEpOworCisgICAgUmVzdWx0IGFuYWx5emVDb21tYW5kU3RhdHVzKAorICAgICAgICAgICAgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIGNvbnN0IGNoYXIqIGNvbnRleHQsIHN0YXR1c190IHN0YXR1cyk7CisgICAgUmVzdWx0IGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICBjb25zdCBjaGFyKiBmdW5jTmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHN1YkZ1bmNOYW1lLAorICAgICAgICAgICAgY29uc3QgY2hhciogY29udGV4dERlc2NyaXB0aW9uLAorICAgICAgICAgICAgc3RhdHVzX3Qgc3RhdHVzKTsKKyAgICB2b2lkIGdldENvbmZpZ0ltcGwoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgR2V0Q29uZmlnQ2FsbGJhY2sgY2IpOworICAgIFJlc3VsdCBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgdWludDMyX3QgY29uZmlnU2l6ZSwgR2V0Q3VycmVudENvbmZpZ1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBnZXRTdXBwb3J0ZWRDb25maWdzSW1wbCgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgR2V0U3VwcG9ydGVkQ29uZmlnc1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBzZW5kQ29tbWFuZChpbnQgY29tbWFuZENvZGUsIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lKTsKKyAgICBSZXN1bHQgc2VuZENvbW1hbmQoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB2b2lkKiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QqIHJlcGx5U2l6ZSwgdm9pZCogcmVwbHlEYXRhKTsKKyAgICBSZXN1bHQgc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKAorICAgICAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB2b2lkKiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QqIHJlcGx5U2l6ZSwgdm9pZCogcmVwbHlEYXRhLAorICAgICAgICAgICAgdWludDMyX3QgbWluUmVwbHlTaXplLAorICAgICAgICAgICAgQ29tbWFuZFN1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBzZXRDb25maWdJbXBsKAorICAgICAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRWZmZWN0c0ZhY3RvcnkuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjJhOTIyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmNwcApAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRWZmZWN0RmFjdG9yeUhBTCIKKyNpbmNsdWRlIDxtZWRpYS9FZmZlY3RzRmFjdG9yeUFwaS5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpb19lZmZlY3RzL2VmZmVjdF9hZWMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWdjLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Jhc3Nib29zdC5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpb19lZmZlY3RzL2VmZmVjdF9kb3dubWl4Lmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Vudmlyb25tZW50YWxyZXZlcmIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfZXF1YWxpemVyLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2xvdWRuZXNzZW5oYW5jZXIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfbnMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfcHJlc2V0cmV2ZXJiLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ZpcnR1YWxpemVyLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3Zpc3VhbGl6ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIgorI2luY2x1ZGUgIkJhc3NCb29zdEVmZmVjdC5oIgorI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRG93bm1peEVmZmVjdC5oIgorI2luY2x1ZGUgIkVmZmVjdHNGYWN0b3J5LmgiCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisjaW5jbHVkZSAiRWZmZWN0LmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisjaW5jbHVkZSAiRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5oIgorI2luY2x1ZGUgIkVxdWFsaXplckVmZmVjdC5oIgorI2luY2x1ZGUgIkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiCisjaW5jbHVkZSAiUHJlc2V0UmV2ZXJiRWZmZWN0LmgiCisjaW5jbHVkZSAiVmlydHVhbGl6ZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJWaXN1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBzdGF0aWMKK3NwPElFZmZlY3Q+IEVmZmVjdHNGYWN0b3J5OjpkaXNwYXRjaEVmZmVjdEluc3RhbmNlQ3JlYXRpb24oCisgICAgICAgIGNvbnN0IGVmZmVjdF9kZXNjcmlwdG9yX3QmIGhhbERlc2NyaXB0b3IsIGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBjb25zdCBlZmZlY3RfdXVpZF90ICpoYWxVdWlkID0gJmhhbERlc2NyaXB0b3IudHlwZTsKKyAgICBpZiAobWVtY21wKGhhbFV1aWQsIEZYX0lJRF9BRUMsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgRlhfSUlEX0FHQywgc2l6ZW9mKGVmZmVjdF91dWlkX3QpKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfQkFTU0JPT1NULCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBCYXNzQm9vc3RFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBFRkZFQ1RfVUlJRF9ET1dOTUlYLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEb3dubWl4RWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgU0xfSUlEX0VOVklST05NRU5UQUxSRVZFUkIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfRVFVQUxJWkVSLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBFcXVhbGl6ZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBGWF9JSURfTE9VRE5FU1NfRU5IQU5DRVIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IExvdWRuZXNzRW5oYW5jZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBGWF9JSURfTlMsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IE5vaXNlU3VwcHJlc3Npb25FZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfUFJFU0VUUkVWRVJCLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcmVzZXRSZXZlcmJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfVklSVFVBTElaRVIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpcnR1YWxpemVyRWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgU0xfSUlEX1ZJU1VBTElaQVRJT04sIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpc3VhbGl6ZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIG5ldyBFZmZlY3QoaGFuZGxlKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeSBmb2xsb3cuCitSZXR1cm48dm9pZD4gRWZmZWN0c0ZhY3Rvcnk6OmdldEFsbERlc2NyaXB0b3JzKGdldEFsbERlc2NyaXB0b3JzX2NiIF9oaWRsX2NiKSAgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpPSyk7CisgICAgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4gcmVzdWx0OworICAgIHVpbnQzMl90IG51bUVmZmVjdHM7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworCityZXN0YXJ0OgorICAgIG51bUVmZmVjdHMgPSAwOworICAgIHN0YXR1cyA9IEVmZmVjdFF1ZXJ5TnVtYmVyRWZmZWN0cygmbnVtRWZmZWN0cyk7CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgQUxPR0UoIkVycm9yIHF1ZXJ5aW5nIG51bWJlciBvZiBlZmZlY3RzOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByZXN1bHQucmVzaXplKG51bUVmZmVjdHMpOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1FZmZlY3RzOyArK2kpIHsKKyAgICAgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgICAgICBzdGF0dXMgPSBFZmZlY3RRdWVyeUVmZmVjdChpLCAmaGFsRGVzY3JpcHRvcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGVmZmVjdERlc2NyaXB0b3JGcm9tSGFsKGhhbERlc2NyaXB0b3IsICZyZXN1bHRbaV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIkVycm9yIHF1ZXJ5aW5nIGVmZmVjdCBhdCBwb3NpdGlvbiAlZCAvICVkOiAlcyIsCisgICAgICAgICAgICAgICAgICAgIGksIG51bUVmZmVjdHMsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgY2FzZSAtRU5PU1lTOiB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVmZmVjdCBsaXN0IGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgLUVOT0VOVDogeworICAgICAgICAgICAgICAgICAgICAvLyBObyBtb3JlIGVmZmVjdHMgYXZhaWxhYmxlLgorICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0c0ZhY3Rvcnk6OmdldERlc2NyaXB0b3IoY29uc3QgVXVpZCYgdWlkLCBnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgeworICAgIGVmZmVjdF91dWlkX3QgaGFsVXVpZDsKKyAgICBIaWRsVXRpbHM6OnV1aWRUb0hhbCh1aWQsICZoYWxVdWlkKTsKKyAgICBlZmZlY3RfZGVzY3JpcHRvcl90IGhhbERlc2NyaXB0b3I7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gRWZmZWN0R2V0RGVzY3JpcHRvcigmaGFsVXVpZCwgJmhhbERlc2NyaXB0b3IpOworICAgIEVmZmVjdERlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBlZmZlY3REZXNjcmlwdG9yRnJvbUhhbChoYWxEZXNjcmlwdG9yLCAmZGVzY3JpcHRvcik7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok9LKTsKKyAgICBpZiAoc3RhdHVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJFcnJvciBxdWVyeWluZyBlZmZlY3QgZGVzY3JpcHRvciBmb3IgJXM6ICVzIiwKKyAgICAgICAgICAgICAgICB1dWlkVG9TdHJpbmcoaGFsVXVpZCkuY19zdHIoKSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBpZiAoc3RhdHVzID09IC1FTk9FTlQpIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3RzRmFjdG9yeTo6Y3JlYXRlRWZmZWN0KAorICAgICAgICBjb25zdCBVdWlkJiB1aWQsIGludDMyX3Qgc2Vzc2lvbiwgaW50MzJfdCBpb0hhbmRsZSwgY3JlYXRlRWZmZWN0X2NiIF9oaWRsX2NiKSAgeworICAgIGVmZmVjdF91dWlkX3QgaGFsVXVpZDsKKyAgICBIaWRsVXRpbHM6OnV1aWRUb0hhbCh1aWQsICZoYWxVdWlkKTsKKyAgICBlZmZlY3RfaGFuZGxlX3QgaGFuZGxlOworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpPSyk7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gRWZmZWN0Q3JlYXRlKCZoYWxVdWlkLCBzZXNzaW9uLCBpb0hhbmRsZSwgJmhhbmRsZSk7CisgICAgc3A8SUVmZmVjdD4gZWZmZWN0OworICAgIHVpbnQ2NF90IGVmZmVjdElkID0gRWZmZWN0TWFwOjpJTlZBTElEX0lEOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgICAgICBtZW1zZXQoJmhhbERlc2NyaXB0b3IsIDAsIHNpemVvZihlZmZlY3RfZGVzY3JpcHRvcl90KSk7CisgICAgICAgIHN0YXR1cyA9ICgqaGFuZGxlKS0+Z2V0X2Rlc2NyaXB0b3IoaGFuZGxlLCAmaGFsRGVzY3JpcHRvcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGVmZmVjdCA9IGRpc3BhdGNoRWZmZWN0SW5zdGFuY2VDcmVhdGlvbihoYWxEZXNjcmlwdG9yLCBoYW5kbGUpOworICAgICAgICAgICAgZWZmZWN0SWQgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuYWRkKGhhbmRsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiRXJyb3IgcXVlcnlpbmcgZWZmZWN0IGRlc2NyaXB0b3IgZm9yICVzOiAlcyIsCisgICAgICAgICAgICAgICAgICAgIHV1aWRUb1N0cmluZyhoYWxVdWlkKS5jX3N0cigpLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgICAgICBFZmZlY3RSZWxlYXNlKGhhbmRsZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HRSgiRXJyb3IgY3JlYXRpbmcgZWZmZWN0ICVzOiAlcyIsIHV1aWRUb1N0cmluZyhoYWxVdWlkKS5jX3N0cigpLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gLUVOT0VOVCkgeworICAgICAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgZWZmZWN0LCBlZmZlY3RJZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdHNGYWN0b3J5OjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgeworICAgIGlmIChmZC5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyICYmIGZkLT5udW1GZHMgPT0gMSkgeworICAgICAgICBFZmZlY3REdW1wRWZmZWN0cyhmZC0+ZGF0YVswXSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworSUVmZmVjdHNGYWN0b3J5KiBISURMX0ZFVENIX0lFZmZlY3RzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBFZmZlY3RzRmFjdG9yeSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRWZmZWN0c0ZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjlhNTM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FRkZFQ1RTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRUZGRUNUU0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OlV1aWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEVmZmVjdHNGYWN0b3J5IDogcHVibGljIElFZmZlY3RzRmFjdG9yeSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbERlc2NyaXB0b3JzKGdldEFsbERlc2NyaXB0b3JzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoY29uc3QgVXVpZCYgdWlkLCBnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUVmZmVjdCgKKyAgICAgICAgICAgIGNvbnN0IFV1aWQmIHVpZCwgaW50MzJfdCBzZXNzaW9uLCBpbnQzMl90IGlvSGFuZGxlLCBjcmVhdGVFZmZlY3RfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3RhdGljIHNwPElFZmZlY3Q+IGRpc3BhdGNoRWZmZWN0SW5zdGFuY2VDcmVhdGlvbigKKyAgICAgICAgICAgIGNvbnN0IGVmZmVjdF9kZXNjcmlwdG9yX3QmIGhhbERlc2NyaXB0b3IsIGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworfTsKKworZXh0ZXJuICJDIiBJRWZmZWN0c0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUVmZmVjdHNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVFNGQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmZmMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMzE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJFbnZSZXZlcmJfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6fkVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoKSB7fQorCit2b2lkIEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X3JldmVyYl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpIHsKKyAgICBwcm9wZXJ0aWVzLT5yb29tTGV2ZWwgPSBoYWxQcm9wZXJ0aWVzLnJvb21MZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yb29tSGZMZXZlbCA9IGhhbFByb3BlcnRpZXMucm9vbUhGTGV2ZWw7CisgICAgcHJvcGVydGllcy0+ZGVjYXlUaW1lID0gaGFsUHJvcGVydGllcy5kZWNheVRpbWU7CisgICAgcHJvcGVydGllcy0+ZGVjYXlIZlJhdGlvID0gaGFsUHJvcGVydGllcy5kZWNheUhGUmF0aW87CisgICAgcHJvcGVydGllcy0+cmVmbGVjdGlvbnNMZXZlbCA9IGhhbFByb3BlcnRpZXMucmVmbGVjdGlvbnNMZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yZWZsZWN0aW9uc0RlbGF5ID0gaGFsUHJvcGVydGllcy5yZWZsZWN0aW9uc0RlbGF5OworICAgIHByb3BlcnRpZXMtPnJldmVyYkxldmVsID0gaGFsUHJvcGVydGllcy5yZXZlcmJMZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yZXZlcmJEZWxheSA9IGhhbFByb3BlcnRpZXMucmV2ZXJiRGVsYXk7CisgICAgcHJvcGVydGllcy0+ZGlmZnVzaW9uID0gaGFsUHJvcGVydGllcy5kaWZmdXNpb247CisgICAgcHJvcGVydGllcy0+ZGVuc2l0eSA9IGhhbFByb3BlcnRpZXMuZGVuc2l0eTsKK30KKwordm9pZCBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICB0X3JldmVyYl9zZXR0aW5ncyogaGFsUHJvcGVydGllcykgeworICAgIGhhbFByb3BlcnRpZXMtPnJvb21MZXZlbCA9IHByb3BlcnRpZXMucm9vbUxldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJvb21IRkxldmVsID0gcHJvcGVydGllcy5yb29tSGZMZXZlbDsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZWNheVRpbWUgPSBwcm9wZXJ0aWVzLmRlY2F5VGltZTsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZWNheUhGUmF0aW8gPSBwcm9wZXJ0aWVzLmRlY2F5SGZSYXRpbzsKKyAgICBoYWxQcm9wZXJ0aWVzLT5yZWZsZWN0aW9uc0xldmVsID0gcHJvcGVydGllcy5yZWZsZWN0aW9uc0xldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJlZmxlY3Rpb25zRGVsYXkgPSBwcm9wZXJ0aWVzLnJlZmxlY3Rpb25zRGVsYXk7CisgICAgaGFsUHJvcGVydGllcy0+cmV2ZXJiTGV2ZWwgPSBwcm9wZXJ0aWVzLnJldmVyYkxldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJldmVyYkRlbGF5ID0gcHJvcGVydGllcy5yZXZlcmJEZWxheTsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kaWZmdXNpb24gPSBwcm9wZXJ0aWVzLmRpZmZ1c2lvbjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZW5zaXR5ID0gcHJvcGVydGllcy5kZW5zaXR5OworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QnlwYXNzKGJvb2wgYnlwYXNzKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fQllQQVNTLCBieXBhc3MpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0QnlwYXNzKGdldEJ5cGFzc19jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKFJFVkVSQl9QQVJBTV9CWVBBU1MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0Um9vbUxldmVsKGludDE2X3Qgcm9vbUxldmVsKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9MRVZFTCwgcm9vbUxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFJvb21MZXZlbChnZXRSb29tTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRSb29tSGZMZXZlbChpbnQxNl90IHJvb21IZkxldmVsKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9IRl9MRVZFTCwgcm9vbUhmTGV2ZWwpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0Um9vbUhmTGV2ZWwoZ2V0Um9vbUhmTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9IRl9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZWNheVRpbWUodWludDMyX3QgZGVjYXlUaW1lKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfVElNRSwgZGVjYXlUaW1lKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldERlY2F5VGltZShnZXREZWNheVRpbWVfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfVElNRSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZWNheUhmUmF0aW8oaW50MTZfdCBkZWNheUhmUmF0aW8pICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9ERUNBWV9IRl9SQVRJTywgZGVjYXlIZlJhdGlvKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldERlY2F5SGZSYXRpbyhnZXREZWNheUhmUmF0aW9fY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfSEZfUkFUSU8sIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UmVmbGVjdGlvbnNMZXZlbChpbnQxNl90IHJlZmxlY3Rpb25zTGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9SRUZMRUNUSU9OU19MRVZFTCwgcmVmbGVjdGlvbnNMZXZlbCk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRSZWZsZWN0aW9uc0xldmVsKGdldFJlZmxlY3Rpb25zTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUkVGTEVDVElPTlNfTEVWRUwsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UmVmbGVjdGlvbnNEZWxheSh1aW50MzJfdCByZWZsZWN0aW9uc0RlbGF5KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUkVGTEVDVElPTlNfREVMQVksIHJlZmxlY3Rpb25zRGVsYXkpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0UmVmbGVjdGlvbnNEZWxheShnZXRSZWZsZWN0aW9uc0RlbGF5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFRkxFQ1RJT05TX0RFTEFZLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldFJldmVyYkxldmVsKGludDE2X3QgcmV2ZXJiTGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9SRVZFUkJfTEVWRUwsIHJldmVyYkxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFJldmVyYkxldmVsKGdldFJldmVyYkxldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFVkVSQl9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRSZXZlcmJEZWxheSh1aW50MzJfdCByZXZlcmJEZWxheSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUkVWRVJCX0RFTEFZLCByZXZlcmJEZWxheSk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRSZXZlcmJEZWxheShnZXRSZXZlcmJEZWxheV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFVkVSQl9ERUxBWSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREaWZmdXNpb24oaW50MTZfdCBkaWZmdXNpb24pICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9ESUZGVVNJT04sIGRpZmZ1c2lvbik7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXREaWZmdXNpb24oZ2V0RGlmZnVzaW9uX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX0RJRkZVU0lPTiwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZW5zaXR5KGludDE2X3QgZGVuc2l0eSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oUkVWRVJCX1BBUkFNX0RFTlNJVFksIGRlbnNpdHkpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0RGVuc2l0eShnZXREZW5zaXR5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX0RFTlNJVFksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QWxsUHJvcGVydGllcygKKyAgICAgICAgY29uc3QgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICB7CisgICAgdF9yZXZlcmJfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzVG9IYWwocHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUFJPUEVSVElFUywgaGFsUHJvcGVydGllcyk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICB7CisgICAgdF9yZXZlcmJfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oUkVWRVJCX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworICAgIEFsbFByb3BlcnRpZXMgcHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzRnJvbUhhbChoYWxQcm9wZXJ0aWVzLCAmcHJvcGVydGllcyk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0Y2FhYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRU5WSVJPTk1FTlRBTFJFVkVSQkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRU5WSVJPTk1FTlRBTFJFVkVSQkVGRkVDVF9ICisKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfZW52aXJvbm1lbnRhbHJldmVyYi5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdEF1eENoYW5uZWxzQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0RGVzY3JpcHRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdE9mZmxvYWRQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgOiBwdWJsaWMgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgeworICAgIGV4cGxpY2l0IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QnlwYXNzKGJvb2wgYnlwYXNzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJ5cGFzcyhnZXRCeXBhc3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRSb29tTGV2ZWwoaW50MTZfdCByb29tTGV2ZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Um9vbUxldmVsKGdldFJvb21MZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJvb21IZkxldmVsKGludDE2X3Qgcm9vbUhmTGV2ZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Um9vbUhmTGV2ZWwoZ2V0Um9vbUhmTGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZWNheVRpbWUodWludDMyX3QgZGVjYXlUaW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlY2F5VGltZShnZXREZWNheVRpbWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZWNheUhmUmF0aW8oaW50MTZfdCBkZWNheUhmUmF0aW8pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVjYXlIZlJhdGlvKGdldERlY2F5SGZSYXRpb19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJlZmxlY3Rpb25zTGV2ZWwoaW50MTZfdCByZWZsZWN0aW9uc0xldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFJlZmxlY3Rpb25zTGV2ZWwoZ2V0UmVmbGVjdGlvbnNMZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJlZmxlY3Rpb25zRGVsYXkodWludDMyX3QgcmVmbGVjdGlvbnNEZWxheSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRSZWZsZWN0aW9uc0RlbGF5KGdldFJlZmxlY3Rpb25zRGVsYXlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRSZXZlcmJMZXZlbChpbnQxNl90IHJldmVyYkxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFJldmVyYkxldmVsKGdldFJldmVyYkxldmVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UmV2ZXJiRGVsYXkodWludDMyX3QgcmV2ZXJiRGVsYXkpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmV2ZXJiRGVsYXkoZ2V0UmV2ZXJiRGVsYXlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREaWZmdXNpb24oaW50MTZfdCBkaWZmdXNpb24pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlmZnVzaW9uKGdldERpZmZ1c2lvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERlbnNpdHkoaW50MTZfdCBkZW5zaXR5KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlbnNpdHkoZ2V0RGVuc2l0eV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEFsbFByb3BlcnRpZXMoCisgICAgICAgICAgICBjb25zdCBJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKworICAgIHZpcnR1YWwgfkVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoKTsKKworICAgIHZvaWQgcHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCB0X3JldmVyYl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9yZXZlcmJfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FTlZJUk9OTUVOVEFMUkVWRVJCRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FcXVhbGl6ZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA4ZDhlYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FcXVhbGl6ZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMzExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorCisjZGVmaW5lIExPR19UQUcgIkVxdWFsaXplcl9IQUwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkVxdWFsaXplckVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworRXF1YWxpemVyRWZmZWN0OjpFcXVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitFcXVhbGl6ZXJFZmZlY3Q6On5FcXVhbGl6ZXJFZmZlY3QoKSB7fQorCit2b2lkIEVxdWFsaXplckVmZmVjdDo6cHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgIGNvbnN0IHRfZXF1YWxpemVyX3NldHRpbmdzJiBoYWxQcm9wZXJ0aWVzLAorICAgICAgICBJRXF1YWxpemVyRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKSB7CisgICAgcHJvcGVydGllcy0+Y3VyUHJlc2V0ID0gaGFsUHJvcGVydGllcy5jdXJQcmVzZXQ7CisgICAgLy8gdF9lcXVhbGl6ZXJfc2V0dGluZ3MgaW5jb3JyZWN0bHkgZGVmaW5lcyBiYW5kTGV2ZWxzIGFzIHVpbnQxNl90LAorICAgIC8vIHdoZXJlYXMgdGhlIGFjdHVhbCB0eXBlIG9mIHZhbHVlcyB1c2VkIGJ5IGVmZmVjdHMgaXMgaW50MTZfdC4KKyAgICBjb25zdCBpbnQxNl90KiBzaWduZWRCYW5kTGV2ZWxzID0KKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaW50MTZfdCo+KCZoYWxQcm9wZXJ0aWVzLmJhbmRMZXZlbHNbMF0pOworICAgIHByb3BlcnRpZXMtPmJhbmRMZXZlbHMuc2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aW50MTZfdCo+KHNpZ25lZEJhbmRMZXZlbHMpLCBoYWxQcm9wZXJ0aWVzLm51bUJhbmRzKTsKK30KKworc3RkOjp2ZWN0b3I8dWludDhfdD4gRXF1YWxpemVyRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMsCisgICAgICAgIHRfZXF1YWxpemVyX3NldHRpbmdzKiogaGFsUHJvcGVydGllcykgeworICAgIHNpemVfdCBiYW5kc1NpemUgPSBwcm9wZXJ0aWVzLmJhbmRMZXZlbHMuc2l6ZSgpICogc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYWxCdWZmZXIoc2l6ZW9mKHRfZXF1YWxpemVyX3NldHRpbmdzKSArIGJhbmRzU2l6ZSwgMCk7CisgICAgKmhhbFByb3BlcnRpZXMgPSByZWludGVycHJldF9jYXN0PHRfZXF1YWxpemVyX3NldHRpbmdzKj4oJmhhbEJ1ZmZlclswXSk7CisgICAgKCpoYWxQcm9wZXJ0aWVzKS0+Y3VyUHJlc2V0ID0gcHJvcGVydGllcy5jdXJQcmVzZXQ7CisgICAgKCpoYWxQcm9wZXJ0aWVzKS0+bnVtQmFuZHMgPSBwcm9wZXJ0aWVzLmJhbmRMZXZlbHMuc2l6ZSgpOworICAgIG1lbWNweSgoKmhhbFByb3BlcnRpZXMpLT5iYW5kTGV2ZWxzLCAmcHJvcGVydGllcy5iYW5kTGV2ZWxzWzBdLCBiYW5kc1NpemUpOworICAgIHJldHVybiBoYWxCdWZmZXI7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0TnVtQmFuZHMoZ2V0TnVtQmFuZHNfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShFUV9QQVJBTV9OVU1fQkFORFMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0TGV2ZWxSYW5nZShnZXRMZXZlbFJhbmdlX2NiIF9oaWRsX2NiKSAgeworICAgIGludDE2X3QgaGFsTGV2ZWxzWzJdID0geyAwLCAwIH07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0xFVkVMX1JBTkdFLCBoYWxMZXZlbHMpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsTGV2ZWxzWzBdLCBoYWxMZXZlbHNbMV0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0QmFuZExldmVsKHVpbnQxNl90IGJhbmQsIGludDE2X3QgbGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKEVRX1BBUkFNX0JBTkRfTEVWRUwsIGJhbmQsIGxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0QmFuZExldmVsKHVpbnQxNl90IGJhbmQsIGdldEJhbmRMZXZlbF9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQxNl90IGhhbExldmVsID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fQkFORF9MRVZFTCwgYmFuZCwgaGFsTGV2ZWwpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsTGV2ZWwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEJhbmRDZW50ZXJGcmVxdWVuY3koCisgICAgICAgIHVpbnQxNl90IGJhbmQsIGdldEJhbmRDZW50ZXJGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsRnJlcSA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0NFTlRFUl9GUkVRLCBiYW5kLCBoYWxGcmVxKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGhhbEZyZXEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEJhbmRGcmVxdWVuY3lSYW5nZSgKKyAgICAgICAgdWludDE2X3QgYmFuZCwgZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbEZyZXFzWzJdID0geyAwLCAwIH07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0JBTkRfRlJFUV9SQU5HRSwgYmFuZCwgaGFsRnJlcXMpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsRnJlcXNbMF0sIGhhbEZyZXFzWzFdKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXEsIGdldEJhbmRGb3JGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDE2X3QgaGFsQmFuZCA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0dFVF9CQU5ELCBmcmVxLCBoYWxCYW5kKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGhhbEJhbmQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldFByZXNldE5hbWVzKGdldFByZXNldE5hbWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQxNl90IGhhbFByZXNldENvdW50ID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fR0VUX05VTV9PRl9QUkVTRVRTLCBoYWxQcmVzZXRDb3VudCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IHByZXNldE5hbWVzOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBwcmVzZXROYW1lcy5yZXNpemUoaGFsUHJlc2V0Q291bnQpOworICAgICAgICBmb3IgKHVpbnQxNl90IGkgPSAwOyBpIDwgaGFsUHJlc2V0Q291bnQ7ICsraSkgeworICAgICAgICAgICAgY2hhciBoYWxQcmVzZXROYW1lW0VGRkVDVF9TVFJJTkdfTEVOX01BWF07CisgICAgICAgICAgICByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShFUV9QQVJBTV9HRVRfUFJFU0VUX05BTUUsIGksIGhhbFByZXNldE5hbWUpOworICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgcHJlc2V0TmFtZXNbaV0gPSBoYWxQcmVzZXROYW1lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmVzZXROYW1lcy5yZXNpemUoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcmVzZXROYW1lcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50UHJlc2V0KHVpbnQxNl90IHByZXNldCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oRVFfUEFSQU1fQ1VSX1BSRVNFVCwgcHJlc2V0KTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudFByZXNldChnZXRDdXJyZW50UHJlc2V0X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oRVFfUEFSQU1fQ1VSX1BSRVNFVCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoCisgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICB7CisgICAgdF9lcXVhbGl6ZXJfc2V0dGluZ3MgKmhhbFByb3BlcnRpZXNQdHIgPSBudWxscHRyOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbEJ1ZmZlciA9IHByb3BlcnRpZXNUb0hhbChwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllc1B0cik7CisgICAgdWludDMyX3QgcGFyYW1JZCA9IEVRX1BBUkFNX1BST1BFUlRJRVM7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBzaXplb2YocGFyYW1JZCksICZwYXJhbUlkLCBoYWxCdWZmZXIuc2l6ZSgpLCBoYWxQcm9wZXJ0aWVzUHRyKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fTlVNX0JBTkRTLCBudW1CYW5kcyk7CisgICAgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzOworICAgIGlmIChyZXR2YWwgIT0gUmVzdWx0OjpPSykgeworICAgICAgICBfaGlkbF9jYihyZXR2YWwsIHByb3BlcnRpZXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzaXplX3QgdmFsdWVTaXplID0gc2l6ZW9mKHRfZXF1YWxpemVyX3NldHRpbmdzKSArIHNpemVvZihpbnQxNl90KSAqIG51bUJhbmRzOworICAgIHVpbnQzMl90IHBhcmFtSWQgPSBFUV9QQVJBTV9QUk9QRVJUSUVTOworICAgIHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBzaXplb2YocGFyYW1JZCksICZwYXJhbUlkLCB2YWx1ZVNpemUsCisgICAgICAgICAgICBbJl0gKHVpbnQzMl90LCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBjb25zdCB0X2VxdWFsaXplcl9zZXR0aW5ncyogaGFsUHJvcGVydGllcyA9CisgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHRfZXF1YWxpemVyX3NldHRpbmdzKj4odmFsdWVEYXRhKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzRnJvbUhhbCgqaGFsUHJvcGVydGllcywgJnByb3BlcnRpZXMpOworICAgICAgICAgICAgfSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGQ3NWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRXF1YWxpemVyRWZmZWN0LmgKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRVFVQUxJWkVSRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FUVVBTElaRVJFRkZFQ1RfSAorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2VxdWFsaXplci5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBFcXVhbGl6ZXJFZmZlY3QgOiBwdWJsaWMgSUVxdWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgRXF1YWxpemVyRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVxdWFsaXplckVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldE51bUJhbmRzKGdldE51bUJhbmRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldExldmVsUmFuZ2UoZ2V0TGV2ZWxSYW5nZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBpbnQxNl90IGxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBnZXRCYW5kTGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QmFuZENlbnRlckZyZXF1ZW5jeSgKKyAgICAgICAgICAgIHVpbnQxNl90IGJhbmQsIGdldEJhbmRDZW50ZXJGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsIGdldEJhbmRGcmVxdWVuY3lSYW5nZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXEsIGdldEJhbmRGb3JGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJlc2V0TmFtZXMoZ2V0UHJlc2V0TmFtZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50UHJlc2V0KHVpbnQxNl90IHByZXNldCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50UHJlc2V0KGdldEN1cnJlbnRQcmVzZXRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBbGxQcm9wZXJ0aWVzKGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5FcXVhbGl6ZXJFZmZlY3QoKTsKKworICAgIHZvaWQgcHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCB0X2VxdWFsaXplcl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMsCisgICAgICAgICAgICB0X2VxdWFsaXplcl9zZXR0aW5ncyoqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FUVVBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYTVlYjAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5jcHAKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2xvdWRuZXNzZW5oYW5jZXIuaD4KKworI2RlZmluZSBMT0dfVEFHICJMb3VkbmVzc0VuaGFuY2VyX0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWVjLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0xvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitMb3VkbmVzc0VuaGFuY2VyRWZmZWN0Ojp+TG91ZG5lc3NFbmhhbmNlckVmZmVjdCgpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0Q29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZyhjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmRpc2FibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmRpc2FibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OnNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRJbnB1dERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKG1heENvbmZpZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvU291cmNlKHNvdXJjZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpwcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgICAgcHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZSk7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShMT1VETkVTU19FTkhBTkNFUl9ERUZBVUxUX1RBUkdFVF9HQUlOX01CLCB0YXJnZXRHYWluTWIpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0VGFyZ2V0R2FpbihnZXRUYXJnZXRHYWluX2NiIF9oaWRsX2NiKSAgeworICAgIC8vIEFPU1AgTG91ZG5lc3MgRW5oYW5jZXIgZXhwZWN0cyB0aGUgc2l6ZSBvZiB0aGUgcmVxdWVzdCB0byBub3QgaW5jbHVkZSB0aGUKKyAgICAvLyBzaXplIG9mIHRoZSBwYXJhbWV0ZXIuCisgICAgdWludDMyX3QgcGFyYW1JZCA9IExPVURORVNTX0VOSEFOQ0VSX0RFRkFVTFRfVEFSR0VUX0dBSU5fTUI7CisgICAgdWludDMyX3QgdGFyZ2V0R2Fpbk1iID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgIHNpemVvZihwYXJhbUlkKSwgJnBhcmFtSWQsCisgICAgICAgICAgICAwLCBzaXplb2YodGFyZ2V0R2Fpbk1iKSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgICAgICAgICAgICAgIG1lbWNweSgmdGFyZ2V0R2Fpbk1iLCB2YWx1ZURhdGEsIHNpemVvZih0YXJnZXRHYWluTWIpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgdGFyZ2V0R2Fpbk1iKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5YjhkNgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTE9VRE5FU1NFTkhBTkNFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTE9VRE5FU1NFTkhBTkNFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgTG91ZG5lc3NFbmhhbmNlckVmZmVjdCA6IHB1YmxpYyBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCB7CisgICAgZXhwbGljaXQgTG91ZG5lc3NFbmhhbmNlckVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFRhcmdldEdhaW4oZ2V0VGFyZ2V0R2Fpbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+TG91ZG5lc3NFbmhhbmNlckVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9MT1VETkVTU0VOSEFOQ0VSRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzRlMDZkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L05vaXNlU3VwcHJlc3Npb25FZmZlY3QuY3BwCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJOU19FZmZlY3RfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpOb2lzZVN1cHByZXNzaW9uRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6fk5vaXNlU3VwcHJlc3Npb25FZmZlY3QoKSB7fQorCit2b2lkIE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X25zX3NldHRpbmdzJiBoYWxQcm9wZXJ0aWVzLAorICAgICAgICBJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6QWxsUHJvcGVydGllcyogcHJvcGVydGllcykgeworICAgIHByb3BlcnRpZXMtPmxldmVsID0gTGV2ZWwoaGFsUHJvcGVydGllcy5sZXZlbCk7CisgICAgcHJvcGVydGllcy0+dHlwZSA9IFR5cGUoaGFsUHJvcGVydGllcy50eXBlKTsKK30KKwordm9pZCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICB0X25zX3NldHRpbmdzKiBoYWxQcm9wZXJ0aWVzKSB7CisgICAgaGFsUHJvcGVydGllcy0+bGV2ZWwgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocHJvcGVydGllcy5sZXZlbCk7CisgICAgaGFsUHJvcGVydGllcy0+dHlwZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihwcm9wZXJ0aWVzLnR5cGUpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0U3VwcHJlc3Npb25MZXZlbChJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6TGV2ZWwgbGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKE5TX1BBUkFNX0xFVkVMLCBzdGF0aWNfY2FzdDxpbnQzMl90PihsZXZlbCkpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0U3VwcHJlc3Npb25MZXZlbChnZXRTdXBwcmVzc2lvbkxldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIGludDMyX3QgaGFsTGV2ZWwgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShOU19QQVJBTV9MRVZFTCwgaGFsTGV2ZWwpOworICAgIF9oaWRsX2NiKHJldHZhbCwgTGV2ZWwoaGFsTGV2ZWwpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRTdXBwcmVzc2lvblR5cGUoSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OlR5cGUgdHlwZSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oTlNfUEFSQU1fVFlQRSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZSkpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0U3VwcHJlc3Npb25UeXBlKGdldFN1cHByZXNzaW9uVHlwZV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQzMl90IGhhbFR5cGUgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShOU19QQVJBTV9UWVBFLCBoYWxUeXBlKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIFR5cGUoaGFsVHlwZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoCisgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSAgeworICAgIHRfbnNfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzVG9IYWwocHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShOU19QQVJBTV9QUk9QRVJUSUVTLCBoYWxQcm9wZXJ0aWVzKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldEFsbFByb3BlcnRpZXMoZ2V0QWxsUHJvcGVydGllc19jYiBfaGlkbF9jYikgIHsKKyAgICB0X25zX3NldHRpbmdzIGhhbFByb3BlcnRpZXM7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKE5TX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworICAgIEFsbFByb3BlcnRpZXMgcHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzRnJvbUhhbChoYWxQcm9wZXJ0aWVzLCAmcHJvcGVydGllcyk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L05vaXNlU3VwcHJlc3Npb25FZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ5MTIwMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmgKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTk9JU0VTVVBQUkVTU0lPTkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTk9JU0VTVVBQUkVTU0lPTkVGRkVDVF9ICisKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfbnMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6QXVkaW9CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RBdXhDaGFubmVsc0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdERlc2NyaXB0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RPZmZsb2FkUGFyYW1ldGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0IDogcHVibGljIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0IHsKKyAgICBleHBsaWNpdCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldFN1cHByZXNzaW9uTGV2ZWwoSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OkxldmVsIGxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHByZXNzaW9uTGV2ZWwoZ2V0U3VwcHJlc3Npb25MZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFN1cHByZXNzaW9uVHlwZShJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6VHlwZSB0eXBlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHByZXNzaW9uVHlwZShnZXRTdXBwcmVzc2lvblR5cGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBbGxQcm9wZXJ0aWVzKAorICAgICAgICAgICAgY29uc3QgSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5Ob2lzZVN1cHByZXNzaW9uRWZmZWN0KCk7CisKKyAgICB2b2lkIHByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICAgICAgY29uc3QgdF9uc19zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9uc19zZXR0aW5ncyogaGFsUHJvcGVydGllcyk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX05PSVNFU1VQUFJFU1NJT05FRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvUHJlc2V0UmV2ZXJiRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjE3NzkxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5jcHAKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByZXNldFJldmVyYl9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ByZXNldHJldmVyYi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJQcmVzZXRSZXZlcmJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByZXNldFJldmVyYkVmZmVjdDo6UHJlc2V0UmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworUHJlc2V0UmV2ZXJiRWZmZWN0Ojp+UHJlc2V0UmV2ZXJiRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZyhjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmRpc2FibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmRpc2FibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRJbnB1dERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKG1heENvbmZpZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvU291cmNlKHNvdXJjZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpwcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgICAgcHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZSk7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SVByZXNldFJldmVyYkVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldFByZXNldChJUHJlc2V0UmV2ZXJiRWZmZWN0OjpQcmVzZXQgcHJlc2V0KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUFJFU0VULCBzdGF0aWNfY2FzdDx0X3JldmVyYl9wcmVzZXRzPihwcmVzZXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0UHJlc2V0KGdldFByZXNldF9jYiBfaGlkbF9jYikgIHsKKyAgICB0X3JldmVyYl9wcmVzZXRzIGhhbFByZXNldCA9IFJFVkVSQl9QUkVTRVRfTk9ORTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oUkVWRVJCX1BBUkFNX1BSRVNFVCwgaGFsUHJlc2V0KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIFByZXNldChoYWxQcmVzZXQpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYjA3NGEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvUHJlc2V0UmV2ZXJiRWZmZWN0LmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfUFJFU0VUUkVWRVJCRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9QUkVTRVRSRVZFUkJFRkZFQ1RfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lQcmVzZXRSZXZlcmJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklQcmVzZXRSZXZlcmJFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBQcmVzZXRSZXZlcmJFZmZlY3QgOiBwdWJsaWMgSVByZXNldFJldmVyYkVmZmVjdCB7CisgICAgZXhwbGljaXQgUHJlc2V0UmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SVByZXNldFJldmVyYkVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJlc2V0KElQcmVzZXRSZXZlcmJFZmZlY3Q6OlByZXNldCBwcmVzZXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJlc2V0KGdldFByZXNldF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+UHJlc2V0UmV2ZXJiRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1BSRVNFVFJFVkVSQkVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ZpcnR1YWxpemVyRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZlNTJmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ZpcnR1YWxpemVyRWZmZWN0LmNwcApAQCAtMCwwICsxLDI0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxtZW1vcnkuaD4KKworI2RlZmluZSBMT0dfVEFHICJWaXJ0dWFsaXplcl9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ZpcnR1YWxpemVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIlZpcnR1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaXJ0dWFsaXplckVmZmVjdDo6VmlydHVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitWaXJ0dWFsaXplckVmZmVjdDo6flZpcnR1YWxpemVyRWZmZWN0KCkge30KKwordm9pZCBWaXJ0dWFsaXplckVmZmVjdDo6c3BlYWtlckFuZ2xlc0Zyb21IYWwoCisgICAgICAgIGNvbnN0IGludDMyX3QqIGhhbEFuZ2xlcywgdWludDMyX3QgY2hhbm5lbENvdW50LCBoaWRsX3ZlYzxTcGVha2VyQW5nbGU+JiBzcGVha2VyQW5nbGVzKSB7CisgICAgc3BlYWtlckFuZ2xlcy5yZXNpemUoY2hhbm5lbENvdW50KTsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY2hhbm5lbENvdW50OyArK2kpIHsKKyAgICAgICAgc3BlYWtlckFuZ2xlc1tpXS5tYXNrID0gQXVkaW9DaGFubmVsTWFzaygqaGFsQW5nbGVzKyspOworICAgICAgICBzcGVha2VyQW5nbGVzW2ldLmF6aW11dGggPSAqaGFsQW5nbGVzKys7CisgICAgICAgIHNwZWFrZXJBbmdsZXNbaV0uZWxldmF0aW9uID0gKmhhbEFuZ2xlcysrOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpcnR1YWxpemVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpcnR1YWxpemVyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJVmlydHVhbGl6ZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPGJvb2w+IFZpcnR1YWxpemVyRWZmZWN0Ojppc1N0cmVuZ3RoU3VwcG9ydGVkKCkgIHsKKyAgICBib29sIGhhbFN1cHBvcnRlZCA9IGZhbHNlOworICAgIG1FZmZlY3QtPmdldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX1NUUkVOR1RIX1NVUFBPUlRFRCwgaGFsU3VwcG9ydGVkKTsKKyAgICByZXR1cm4gaGFsU3VwcG9ydGVkOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0U3RyZW5ndGgodWludDE2X3Qgc3RyZW5ndGgpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX1NUUkVOR1RILCBzdHJlbmd0aCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0U3RyZW5ndGgoZ2V0U3RyZW5ndGhfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShWSVJUVUFMSVpFUl9QQVJBTV9TVFJFTkdUSCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFZpcnR1YWxTcGVha2VyQW5nbGVzKAorICAgICAgICBBdWRpb0NoYW5uZWxNYXNrIG1hc2ssIEF1ZGlvRGV2aWNlIGRldmljZSwgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXNfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgY2hhbm5lbENvdW50ID0gYXVkaW9fY2hhbm5lbF9jb3VudF9mcm9tX291dF9tYXNrKAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fY2hhbm5lbF9tYXNrX3Q+KG1hc2spKTsKKyAgICBzaXplX3QgaGFsU3BlYWtlckFuZ2xlc1NpemUgPSBzaXplb2YoaW50MzJfdCkgKiAzICogY2hhbm5lbENvdW50OworICAgIHVpbnQzMl90IGhhbFBhcmFtWzNdID0geworICAgICAgICBWSVJUVUFMSVpFUl9QQVJBTV9WSVJUVUFMX1NQRUFLRVJfQU5HTEVTLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4obWFzayksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlKQorICAgIH07CisgICAgaGlkbF92ZWM8U3BlYWtlckFuZ2xlPiBzcGVha2VyQW5nbGVzOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgc2l6ZW9mKGhhbFBhcmFtKSwgaGFsUGFyYW0sCisgICAgICAgICAgICBoYWxTcGVha2VyQW5nbGVzU2l6ZSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gaGFsU3BlYWtlckFuZ2xlc1NpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVTaXplID0gaGFsU3BlYWtlckFuZ2xlc1NpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVNpemUgPCBoYWxTcGVha2VyQW5nbGVzU2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBjaGFubmVsQ291bnQgPSB2YWx1ZVNpemUgLyAoc2l6ZW9mKGludDMyX3QpICogMyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNwZWFrZXJBbmdsZXNGcm9tSGFsKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBpbnQzMl90Kj4odmFsdWVEYXRhKSwgY2hhbm5lbENvdW50LCBzcGVha2VyQW5nbGVzKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgc3BlYWtlckFuZ2xlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmZvcmNlVmlydHVhbGl6YXRpb25Nb2RlKEF1ZGlvRGV2aWNlIGRldmljZSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oCisgICAgICAgICAgICBWSVJUVUFMSVpFUl9QQVJBTV9GT1JDRV9WSVJUVUFMSVpBVElPTl9NT0RFLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZSkpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFZpcnR1YWxpemF0aW9uTW9kZShnZXRWaXJ0dWFsaXphdGlvbk1vZGVfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsTW9kZSA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX0ZPUkNFX1ZJUlRVQUxJWkFUSU9OX01PREUsIGhhbE1vZGUpOworICAgIF9oaWRsX2NiKHJldHZhbCwgQXVkaW9EZXZpY2UoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXJ0dWFsaXplckVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNjc3NWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuaApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9WSVJUVUFMSVpFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklSVFVBTElaRVJFRkZFQ1RfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lWaXJ0dWFsaXplckVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXJ0dWFsaXplckVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFZpcnR1YWxpemVyRWZmZWN0IDogcHVibGljIElWaXJ0dWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgVmlydHVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJVmlydHVhbGl6ZXJFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxib29sPiBpc1N0cmVuZ3RoU3VwcG9ydGVkKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFN0cmVuZ3RoKHVpbnQxNl90IHN0cmVuZ3RoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN0cmVuZ3RoKGdldFN0cmVuZ3RoX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFZpcnR1YWxTcGVha2VyQW5nbGVzKAorICAgICAgICAgICAgQXVkaW9DaGFubmVsTWFzayBtYXNrLAorICAgICAgICAgICAgQXVkaW9EZXZpY2UgZGV2aWNlLAorICAgICAgICAgICAgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBmb3JjZVZpcnR1YWxpemF0aW9uTW9kZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VmlydHVhbGl6YXRpb25Nb2RlKGdldFZpcnR1YWxpemF0aW9uTW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+VmlydHVhbGl6ZXJFZmZlY3QoKTsKKworICAgIHZvaWQgc3BlYWtlckFuZ2xlc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBpbnQzMl90KiBoYWxBbmdsZXMsIHVpbnQzMl90IGNoYW5uZWxDb3VudCwgaGlkbF92ZWM8U3BlYWtlckFuZ2xlPiYgc3BlYWtlckFuZ2xlcyk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJUlRVQUxJWkVSRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2QzMjQwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1Zpc3VhbGl6ZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWaXN1YWxpemVyX0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfdmlzdWFsaXplci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJWaXN1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaXN1YWxpemVyRWZmZWN0OjpWaXN1YWxpemVyRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpLCBtQ2FwdHVyZVNpemUoMCksIG1NZWFzdXJlbWVudE1vZGUoTWVhc3VyZW1lbnRNb2RlOjpOT05FKSB7Cit9CisKK1Zpc3VhbGl6ZXJFZmZlY3Q6On5WaXN1YWxpemVyRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldENhcHR1cmVTaXplKHVpbnQxNl90IGNhcHR1cmVTaXplKSAgeworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0NBUFRVUkVfU0laRSwgY2FwdHVyZVNpemUpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtQ2FwdHVyZVNpemUgPSBjYXB0dXJlU2l6ZTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldENhcHR1cmVTaXplKGdldENhcHR1cmVTaXplX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oVklTVUFMSVpFUl9QQVJBTV9DQVBUVVJFX1NJWkUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0U2NhbGluZ01vZGUoSVZpc3VhbGl6ZXJFZmZlY3Q6OlNjYWxpbmdNb2RlIHNjYWxpbmdNb2RlKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX1NDQUxJTkdfTU9ERSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2NhbGluZ01vZGUpKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldFNjYWxpbmdNb2RlKGdldFNjYWxpbmdNb2RlX2NiIF9oaWRsX2NiKSAgeworICAgIGludDMyX3QgaGFsTW9kZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oVklTVUFMSVpFUl9QQVJBTV9TQ0FMSU5HX01PREUsIGhhbE1vZGUpOworICAgIF9oaWRsX2NiKHJldHZhbCwgU2NhbGluZ01vZGUoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldExhdGVuY3kodWludDMyX3QgbGF0ZW5jeU1zKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0xBVEVOQ1ksIGxhdGVuY3lNcyk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRMYXRlbmN5KGdldExhdGVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0xBVEVOQ1ksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0TWVhc3VyZW1lbnRNb2RlKAorICAgICAgICBJVmlzdWFsaXplckVmZmVjdDo6TWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkgIHsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+c2V0UGFyYW0oCisgICAgICAgICAgICBWSVNVQUxJWkVSX1BBUkFNX01FQVNVUkVNRU5UX01PREUsIHN0YXRpY19jYXN0PGludDMyX3Q+KG1lYXN1cmVtZW50TW9kZSkpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtTWVhc3VyZW1lbnRNb2RlID0gbWVhc3VyZW1lbnRNb2RlOworICAgIH0KKyAgICByZXR1cm4gcmV0dmFsOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6Z2V0TWVhc3VyZW1lbnRNb2RlKGdldE1lYXN1cmVtZW50TW9kZV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQzMl90IGhhbE1vZGU7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKFZJU1VBTElaRVJfUEFSQU1fTUVBU1VSRU1FTlRfTU9ERSwgaGFsTW9kZSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBNZWFzdXJlbWVudE1vZGUoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpjYXB0dXJlKGNhcHR1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaWYgKG1DYXB0dXJlU2l6ZSA9PSAwKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBoaWRsX3ZlYzx1aW50OF90PigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgdWludDMyX3QgaGFsQ2FwdHVyZVNpemUgPSBtQ2FwdHVyZVNpemU7CisgICAgdWludDhfdCBoYWxDYXB0dXJlW21DYXB0dXJlU2l6ZV07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPnNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIFZJU1VBTElaRVJfQ01EX0NBUFRVUkUsICJWSVNVQUxJWkVSX0NBUFRVUkUiLCAmaGFsQ2FwdHVyZVNpemUsIGhhbENhcHR1cmUpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNhcHR1cmU7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGNhcHR1cmUuc2V0VG9FeHRlcm5hbCgmaGFsQ2FwdHVyZVswXSwgaGFsQ2FwdHVyZVNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGNhcHR1cmUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjptZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaWYgKG1NZWFzdXJlbWVudE1vZGUgPT0gTWVhc3VyZW1lbnRNb2RlOjpOT05FKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBNZWFzdXJlbWVudCgpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaW50MzJfdCBoYWxNZWFzdXJlbWVudFtNRUFTVVJFTUVOVF9DT1VOVF07CisgICAgdWludDMyX3QgaGFsTWVhc3VyZW1lbnRTaXplID0gc2l6ZW9mKGhhbE1lYXN1cmVtZW50KTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+c2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKAorICAgICAgICAgICAgVklTVUFMSVpFUl9DTURfTUVBU1VSRSwgIlZJU1VBTElaRVJfTUVBU1VSRSIsICZoYWxNZWFzdXJlbWVudFNpemUsIGhhbE1lYXN1cmVtZW50KTsKKyAgICBNZWFzdXJlbWVudCBtZWFzdXJlbWVudCA9IHsgLm1vZGUgPSBNZWFzdXJlbWVudE1vZGU6OlBFQUtfUk1TIH07CisgICAgbWVhc3VyZW1lbnQudmFsdWUucGVha0FuZFJtcy5wZWFrTWIgPSAwOworICAgIG1lYXN1cmVtZW50LnZhbHVlLnBlYWtBbmRSbXMucm1zTWIgPSAwOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtZWFzdXJlbWVudC52YWx1ZS5wZWFrQW5kUm1zLnBlYWtNYiA9IGhhbE1lYXN1cmVtZW50W01FQVNVUkVNRU5UX0lEWF9QRUFLXTsKKyAgICAgICAgbWVhc3VyZW1lbnQudmFsdWUucGVha0FuZFJtcy5ybXNNYiA9IGhhbE1lYXN1cmVtZW50W01FQVNVUkVNRU5UX0lEWF9STVNdOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIG1lYXN1cmVtZW50KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1Zpc3VhbGl6ZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ0MGNhOAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmgKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklTVUFMSVpFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklTVUFMSVpFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVmlzdWFsaXplckVmZmVjdCA6IHB1YmxpYyBJVmlzdWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgVmlzdWFsaXplckVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDYXB0dXJlU2l6ZSh1aW50MTZfdCBjYXB0dXJlU2l6ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYXB0dXJlU2l6ZShnZXRDYXB0dXJlU2l6ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNjYWxpbmdNb2RlKElWaXN1YWxpemVyRWZmZWN0OjpTY2FsaW5nTW9kZSBzY2FsaW5nTW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTY2FsaW5nTW9kZShnZXRTY2FsaW5nTW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldExhdGVuY3kodWludDMyX3QgbGF0ZW5jeU1zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldExhdGVuY3koZ2V0TGF0ZW5jeV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldE1lYXN1cmVtZW50TW9kZShJVmlzdWFsaXplckVmZmVjdDo6TWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNZWFzdXJlbWVudE1vZGUoZ2V0TWVhc3VyZW1lbnRNb2RlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNhcHR1cmUoY2FwdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKyAgICB1aW50MTZfdCBtQ2FwdHVyZVNpemU7CisgICAgTWVhc3VyZW1lbnRNb2RlIG1NZWFzdXJlbWVudE1vZGU7CisKKyAgICB2aXJ0dWFsIH5WaXN1YWxpemVyRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJU1VBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzVlNGVmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBOT1RfSU5JVElBTElaRUQsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKKyAgICBOT1RfU1VQUE9SVEVELAorICAgIFJFU1VMVF9UT09fQklHCit9OworCisvKioKKyAqIEVmZmVjdCBlbmdpbmUgY2FwYWJpbGl0aWVzL3JlcXVpcmVtZW50cyBmbGFncy4KKyAqCisgKiBEZWZpbml0aW9ucyBmb3IgZmxhZ3MgZmllbGQgb2YgZWZmZWN0IGRlc2NyaXB0b3IuCisgKgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZGVzY3JpcHRpb24gICAgfCBiaXRzICAgfCB2YWx1ZXMKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IGNvbm5lY3Rpb24gICAgIHwgMC4uMiAgIHwgMCBpbnNlcnQ6IGFmdGVyIHRyYWNrIHByb2Nlc3MKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAxIGF1eGlsaWFyeTogY29ubmVjdCB0byB0cmFjayBhdXhpbGlhcnkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgb3V0cHV0IGFuZCB1c2Ugc2VuZCBsZXZlbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVwbGFjZTogcmVwbGFjZXMgdHJhY2sgcHJvY2VzcyBmdW5jdGlvbjsKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIG11c3QgaW1wbGVtZW50IFNSQywgdm9sdW1lIGFuZCBtb25vIHRvIHN0ZXJlby4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIHByZSBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDQgcG9zdCBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBvdXQKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA1IC0gNyByZXNlcnZlZAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5zZXJ0aW9uICAgICAgfCAzLi41ICAgfCAwIG5vbmUKKyAqIHwgcHJlZmVyZW5jZSAgICAgfCAgICAgICAgfCAxIGZpcnN0IG9mIHRoZSBjaGFpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgbGFzdCBvZiB0aGUgY2hhaW4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGV4Y2x1c2l2ZSAob25seSBlZmZlY3QgaW4gdGhlIGluc2VydCBjaGFpbikKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0Li43IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBWb2x1bWUgICAgICAgICB8IDYuLjggICB8IDAgbm9uZQorICogfCBtYW5hZ2VtZW50ICAgICB8ICAgICAgICB8IDEgaW1wbGVtZW50cyB2b2x1bWUgY29udHJvbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVxdWlyZXMgdm9sdW1lIGluZGljYXRpb24KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBEZXZpY2UgICAgICAgICB8IDkuLjExICB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgZGV2aWNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBTYW1wbGUgaW5wdXQgICB8IDEyLi4xMyB8IDEgZGlyZWN0OiBwcm9jZXNzKCkgZnVuY3Rpb24gb3IKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRyBjb21tYW5kIG11c3Qgc3BlY2lmeQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYSBidWZmZXIgZGVzY3JpcHRvcgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcHJvdmlkZXI6IHByb2Nlc3MoKSBmdW5jdGlvbiB1c2VzIHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVyUHJvdmlkZXIgaW5kaWNhdGVkIGJ5IHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgdG8gcmVxdWVzdCBpbnB1dC4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGJ1ZmZlcnMuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMyBib3RoOiBib3RoIGlucHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IFNhbXBsZSBvdXRwdXQgIHwgMTQuLjE1IHwgMSBkaXJlY3Q6IHByb2Nlc3MoKSBmdW5jdGlvbiBvcgorICogfCBtb2RlICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgbXVzdCBzcGVjaWZ5CisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBhIGJ1ZmZlciBkZXNjcmlwdG9yCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMiBwcm92aWRlcjogcHJvY2VzcygpIGZ1bmN0aW9uIHVzZXMgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBidWZmZXJQcm92aWRlciBpbmRpY2F0ZWQgYnkgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFRkZFQ1RfQ01EX1NFVF9DT05GSUcgY29tbWFuZCB0byByZXF1ZXN0IG91dHB1dAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVycy4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGJvdGg6IGJvdGggb3V0cHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEhhcmR3YXJlICAgICAgIHwgMTYuLjE3IHwgMCBObyBoYXJkd2FyZSBhY2NlbGVyYXRpb24KKyAqIHwgYWNjZWxlcmF0aW9uICAgfCAgICAgICAgfCAxIG5vbiB0dW5uZWxlZCBodyBhY2NlbGVyYXRpb246IHRoZSBwcm9jZXNzKCkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uIHJlYWRzIHRoZSBzYW1wbGVzLCBzZW5kIHRoZW0gdG8gSFcKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjY2VsZXJhdGVkIGVmZmVjdCBwcm9jZXNzb3IsIHJlYWRzIGJhY2sKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIHRoZSBwcm9jZXNzZWQgc2FtcGxlcyBhbmQgcmV0dXJucyB0aGVtCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyIHR1bm5lbGVkIGh3IGFjY2VsZXJhdGlvbjogdGhlIHByb2Nlc3MoKQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgZnVuY3Rpb24gaXMgdHJhbnNwYXJlbnQuIFRoZSBlZmZlY3QgaW50ZXJmYWNlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBpcyBvbmx5IHVzZWQgdG8gY29udHJvbCB0aGUgZWZmZWN0IGVuZ2luZS4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIFRoaXMgbW9kZSBpcyByZWxldmFudCBmb3IgZ2xvYmFsIGVmZmVjdHMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGF1ZGlvIGhhcmR3YXJlIG9uCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0aGUgb3V0cHV0IHN0cmVhbS4KKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEF1ZGlvIE1vZGUgICAgIHwgMTguLjE5IHwgMCBub25lCisgKiB8IGluZGljYXRpb24gICAgIHwgICAgICAgIHwgMSByZXF1aXJlcyBhdWRpbyBtb2RlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBBdWRpbyBzb3VyY2UgICB8IDIwLi4yMSB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgYXVkaW8gc291cmNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBFZmZlY3Qgb2ZmbG9hZCB8IDIyICAgICB8IDAgVGhlIGVmZmVjdCBjYW5ub3QgYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogfCBzdXBwb3J0ZWQgICAgICB8ICAgICAgICB8IDEgVGhlIGVmZmVjdCBjYW4gYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgUHJvY2VzcyAgICAgICAgfCAyMyAgICAgfCAwIFRoZSBlZmZlY3QgaW1wbGVtZW50cyBhIHByb2Nlc3MgZnVuY3Rpb24uCisgKiB8IGZ1bmN0aW9uICAgICAgIHwgICAgICAgIHwgMSBUaGUgZWZmZWN0IGRvZXMgbm90IGltcGxlbWVudCBhIHByb2Nlc3MKKyAqIHwgbm90ICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uOiBlbmFibGluZyB0aGUgZWZmZWN0IGhhcyBubyBpbXBhY3QKKyAqIHwgaW1wbGVtZW50ZWQgICAgfCAgICAgICAgfCAgIG9uIGxhdGVuY3kgb3IgQ1BVIGxvYWQuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFZmZlY3QgaW1wbGVtZW50YXRpb25zIHNldHRpbmcgdGhpcyBmbGFnIGRvIG5vdAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgaGF2ZSB0byBpbXBsZW1lbnQgYSBwcm9jZXNzIGZ1bmN0aW9uLgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GTEFHXyIpCitlbnVtIEVmZmVjdEZsYWdzIDogaW50MzJfdCB7CisgICAgLy8gSW5zZXJ0IG1vZGUKKyAgICBUWVBFX1NISUZUID0gMCwKKyAgICBUWVBFX1NJWkUgPSAzLAorICAgIFRZUEVfTUFTSyA9ICgoMSA8PCBUWVBFX1NJWkUpIC0xKSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfSU5TRVJUID0gMCA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfQVVYSUxJQVJZID0gMSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUkVQTEFDRSA9IDIgPDwgVFlQRV9TSElGVCwKKyAgICBUWVBFX1BSRV9QUk9DID0gMyA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUE9TVF9QUk9DID0gNCA8PCBUWVBFX1NISUZULAorCisgICAgLy8gSW5zZXJ0IHByZWZlcmVuY2UKKyAgICBJTlNFUlRfU0hJRlQgPSBUWVBFX1NISUZUICsgVFlQRV9TSVpFLAorICAgIElOU0VSVF9TSVpFID0gMywKKyAgICBJTlNFUlRfTUFTSyA9ICgoMSA8PCBJTlNFUlRfU0laRSkgLTEpIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfQU5ZID0gMCA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0ZJUlNUID0gMSA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0xBU1QgPSAyIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfRVhDTFVTSVZFID0gMyA8PCBJTlNFUlRfU0hJRlQsCisKKyAgICAvLyBWb2x1bWUgY29udHJvbAorICAgIFZPTFVNRV9TSElGVCA9IElOU0VSVF9TSElGVCArIElOU0VSVF9TSVpFLAorICAgIFZPTFVNRV9TSVpFID0gMywKKyAgICBWT0xVTUVfTUFTSyA9ICgoMSA8PCBWT0xVTUVfU0laRSkgLTEpIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfQ1RSTCA9IDEgPDwgVk9MVU1FX1NISUZULAorICAgIFZPTFVNRV9JTkQgPSAyIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfTk9ORSA9IDAgPDwgVk9MVU1FX1NISUZULAorCisgICAgLy8gRGV2aWNlIGluZGljYXRpb24KKyAgICBERVZJQ0VfU0hJRlQgPSBWT0xVTUVfU0hJRlQgKyBWT0xVTUVfU0laRSwKKyAgICBERVZJQ0VfU0laRSA9IDMsCisgICAgREVWSUNFX01BU0sgPSAoKDEgPDwgREVWSUNFX1NJWkUpIC0xKSA8PCBERVZJQ0VfU0hJRlQsCisgICAgREVWSUNFX0lORCA9IDEgPDwgREVWSUNFX1NISUZULAorICAgIERFVklDRV9OT05FID0gMCA8PCBERVZJQ0VfU0hJRlQsCisKKyAgICAvLyBTYW1wbGUgaW5wdXQgbW9kZXMKKyAgICBJTlBVVF9TSElGVCA9IERFVklDRV9TSElGVCArIERFVklDRV9TSVpFLAorICAgIElOUFVUX1NJWkUgPSAyLAorICAgIElOUFVUX01BU0sgPSAoKDEgPDwgSU5QVVRfU0laRSkgLTEpIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0RJUkVDVCA9IDEgPDwgSU5QVVRfU0hJRlQsCisgICAgSU5QVVRfUFJPVklERVIgPSAyIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0JPVEggPSAzIDw8IElOUFVUX1NISUZULAorCisgICAgLy8gU2FtcGxlIG91dHB1dCBtb2RlcworICAgIE9VVFBVVF9TSElGVCA9IElOUFVUX1NISUZUICsgSU5QVVRfU0laRSwKKyAgICBPVVRQVVRfU0laRSA9IDIsCisgICAgT1VUUFVUX01BU0sgPSAoKDEgPDwgT1VUUFVUX1NJWkUpIC0xKSA8PCBPVVRQVVRfU0hJRlQsCisgICAgT1VUUFVUX0RJUkVDVCA9IDEgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9QUk9WSURFUiA9IDIgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9CT1RIID0gMyA8PCBPVVRQVVRfU0hJRlQsCisKKyAgICAvLyBIYXJkd2FyZSBhY2NlbGVyYXRpb24gbW9kZQorICAgIEhXX0FDQ19TSElGVCA9IE9VVFBVVF9TSElGVCArIE9VVFBVVF9TSVpFLAorICAgIEhXX0FDQ19TSVpFID0gMiwKKyAgICBIV19BQ0NfTUFTSyA9ICgoMSA8PCBIV19BQ0NfU0laRSkgLTEpIDw8IEhXX0FDQ19TSElGVCwKKyAgICBIV19BQ0NfU0lNUExFID0gMSA8PCBIV19BQ0NfU0hJRlQsCisgICAgSFdfQUNDX1RVTk5FTCA9IDIgPDwgSFdfQUNDX1NISUZULAorCisgICAgLy8gQXVkaW8gbW9kZSBpbmRpY2F0aW9uCisgICAgQVVESU9fTU9ERV9TSElGVCA9IEhXX0FDQ19TSElGVCArIEhXX0FDQ19TSVpFLAorICAgIEFVRElPX01PREVfU0laRSA9IDIsCisgICAgQVVESU9fTU9ERV9NQVNLID0gKCgxIDw8IEFVRElPX01PREVfU0laRSkgLTEpIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9JTkQgPSAxIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9OT05FID0gMCA8PCBBVURJT19NT0RFX1NISUZULAorCisgICAgLy8gQXVkaW8gc291cmNlIGluZGljYXRpb24KKyAgICBBVURJT19TT1VSQ0VfU0hJRlQgPSBBVURJT19NT0RFX1NISUZUICsgQVVESU9fTU9ERV9TSVpFLAorICAgIEFVRElPX1NPVVJDRV9TSVpFID0gMiwKKyAgICBBVURJT19TT1VSQ0VfTUFTSyA9ICgoMSA8PCBBVURJT19TT1VSQ0VfU0laRSkgLTEpIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKyAgICBBVURJT19TT1VSQ0VfSU5EID0gMSA8PCBBVURJT19TT1VSQ0VfU0hJRlQsCisgICAgQVVESU9fU09VUkNFX05PTkUgPSAwIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKworICAgIC8vIEVmZmVjdCBvZmZsb2FkIGluZGljYXRpb24KKyAgICBPRkZMT0FEX1NISUZUID0gQVVESU9fU09VUkNFX1NISUZUICsgQVVESU9fU09VUkNFX1NJWkUsCisgICAgT0ZGTE9BRF9TSVpFID0gMSwKKyAgICBPRkZMT0FEX01BU0sgPSAoKDEgPDwgT0ZGTE9BRF9TSVpFKSAtMSkgPDwgT0ZGTE9BRF9TSElGVCwKKyAgICBPRkZMT0FEX1NVUFBPUlRFRCA9IDEgPDwgT0ZGTE9BRF9TSElGVCwKKworICAgIC8vIEVmZmVjdCBoYXMgbm8gcHJvY2VzcyBpbmRpY2F0aW9uCisgICAgTk9fUFJPQ0VTU19TSElGVCA9IE9GRkxPQURfU0hJRlQgKyBPRkZMT0FEX1NJWkUsCisgICAgTk9fUFJPQ0VTU19TSVpFID0gMSwKKyAgICBOT19QUk9DRVNTX01BU0sgPSAoKDEgPDwgTk9fUFJPQ0VTU19TSVpFKSAtMSkgPDwgTk9fUFJPQ0VTU19TSElGVCwKKyAgICBOT19QUk9DRVNTID0gMSA8PCBOT19QUk9DRVNTX1NISUZUCit9OworCisvKioKKyAqIFRoZSBlZmZlY3QgZGVzY3JpcHRvciBjb250YWlucyBuZWNlc3NhcnkgaW5mb3JtYXRpb24gdG8gZmFjaWxpdGF0ZSB0aGUKKyAqIGVudW1lcmF0aW9uIG9mIHRoZSBlZmZlY3QgZW5naW5lcyBwcmVzZW50IGluIGEgbGlicmFyeS4KKyAqLworc3RydWN0IEVmZmVjdERlc2NyaXB0b3IgeworICAgIFV1aWQgdHlwZTsgICAgICAgICAgICAgLy8gVVVJRCBvZiB0byB0aGUgT3BlblNMIEVTIGludGVyZmFjZSBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgdGhpcyBlZmZlY3QKKyAgICBVdWlkIHV1aWQ7ICAgICAgICAgICAgIC8vIFVVSUQgZm9yIHRoaXMgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbgorICAgIEVmZmVjdEZsYWdzIGZsYWdzOyAgICAgLy8gZWZmZWN0IGVuZ2luZSBjYXBhYmlsaXRpZXMvcmVxdWlyZW1lbnRzIGZsYWdzCisgICAgdWludDE2X3QgY3B1TG9hZDsgICAgICAvLyBDUFUgbG9hZCBpbmRpY2F0aW9uIGV4cHJlc3NlZCBpbiAwLjEgTUlQUyB1bml0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgZXN0aW1hdGVkIG9uIGFuIEFSTTlFIGNvcmUgKEFSTXY1VEUpIHdpdGggMCBXUworICAgIHVpbnQxNl90IG1lbW9yeVVzYWdlOyAgLy8gZGF0YSBtZW1vcnkgdXNhZ2UgZXhwcmVzc2VkIGluIEtCIGFuZCBpbmNsdWRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5CisgICAgdWludDhfdFs2NF0gbmFtZTsgICAgICAvLyBodW1hbiByZWFkYWJsZSBlZmZlY3QgbmFtZQorICAgIHVpbnQ4X3RbNjRdIGltcGxlbWVudG9yOyAgLy8gaHVtYW4gcmVhZGFibGUgZWZmZWN0IGltcGxlbWVudG9yIG5hbWUKK307CisKKy8qKgorICogQSBidWZmZXIgaXMgYSBjaHVuayBvZiBhdWRpbyBkYXRhIGZvciBwcm9jZXNzaW5nLiAgTXVsdGktY2hhbm5lbCBhdWRpbyBpcworICogYWx3YXlzIGludGVybGVhdmVkLiBUaGUgY2hhbm5lbCBvcmRlciBpcyBmcm9tIExTQiB0byBNU0Igd2l0aCByZWdhcmQgdG8gdGhlCisgKiBjaGFubmVsIG1hc2sgZGVmaW5pdGlvbiBpbiBhdWRpby5oLCBhdWRpb19jaGFubmVsX21hc2tfdCwgZS5nLjoKKyAqIFN0ZXJlbzogTCwgUjsgNS4xOiBGTCwgRlIsIEZDLCBMRkUsIEJMLCBCUi4KKyAqCisgKiBUaGUgYnVmZmVyIHNpemUgaXMgZXhwcmVzc2VkIGluIGZyYW1lIGNvdW50LCBhIGZyYW1lIGJlaW5nIGNvbXBvc2VkIG9mCisgKiBzYW1wbGVzIGZvciBhbGwgY2hhbm5lbHMgYXQgYSBnaXZlbiB0aW1lLiBGcmFtZSBzaXplIGZvciB1bnNwZWNpZmllZCBmb3JtYXQKKyAqIChBVURJT19GT1JNQVRfT1RIRVIpIGlzIDggYml0IGJ5IGRlZmluaXRpb24uCisgKi8KK3N0cnVjdCBBdWRpb0J1ZmZlciB7CisgICAgdWludDY0X3QgaWQ7CisgICAgdWludDMyX3QgZnJhbWVDb3VudDsKKyAgICBtZW1vcnkgZGF0YTsKK307CisKK0BleHBvcnQobmFtZT0iZWZmZWN0X2J1ZmZlcl9hY2Nlc3NfZSIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0JVRkZFUl8iKQorZW51bSBFZmZlY3RCdWZmZXJBY2Nlc3MgOiBpbnQzMl90IHsKKyAgICBBQ0NFU1NfV1JJVEUsCisgICAgQUNDRVNTX1JFQUQsCisgICAgQUNDRVNTX0FDQ1VNVUxBVEUKK307CisKKy8qKgorICogRGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBvZiBFZmZlY3RCdWZmZXJDb25maWcgbmVlZCB0byBiZSBjb25zaWRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0NPTkZJR18iKQorZW51bSBFZmZlY3RDb25maWdQYXJhbWV0ZXJzIDogaW50MzJfdCB7CisgICAgQlVGRkVSID0gMHgwMDAxLCAgICAvLyBidWZmZXIgZmllbGQKKyAgICBTTVBfUkFURSA9IDB4MDAwMiwgIC8vIHNhbXBsaW5nUmF0ZQorICAgIENIQU5ORUxTID0gMHgwMDA0LCAgLy8gY2hhbm5lbHMKKyAgICBGT1JNQVQgPSAweDAwMDgsICAgIC8vIGZvcm1hdAorICAgIEFDQ19NT0RFID0gMHgwMDEwLCAgLy8gYWNjZXNzTW9kZQorICAgIEFMTCA9IEJVRkZFUiB8IFNNUF9SQVRFIHwgQ0hBTk5FTFMgfCBGT1JNQVQgfCBBQ0NfTU9ERQorfTsKKworLyoqCisgKiBUaGUgYnVmZmVyIGNvbmZpZyBzdHJ1Y3R1cmUgc3BlY2lmaWVzIHRoZSBpbnB1dCBvciBvdXRwdXQgYXVkaW8gZm9ybWF0CisgKiB0byBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QgZW5naW5lLgorICovCitzdHJ1Y3QgRWZmZWN0QnVmZmVyQ29uZmlnIHsKKyAgICBBdWRpb0J1ZmZlciBidWZmZXI7CisgICAgdWludDMyX3Qgc2FtcGxpbmdSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsczsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgRWZmZWN0QnVmZmVyQWNjZXNzIGFjY2Vzc01vZGU7CisgICAgRWZmZWN0Q29uZmlnUGFyYW1ldGVycyBtYXNrOworfTsKKworc3RydWN0IEVmZmVjdENvbmZpZyB7CisgICAgRWZmZWN0QnVmZmVyQ29uZmlnIGlucHV0Q2ZnOworICAgIEVmZmVjdEJ1ZmZlckNvbmZpZyBvdXRwdXRDZmc7Cit9OworCitAZXhwb3J0KG5hbWU9ImVmZmVjdF9mZWF0dXJlX2UiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GRUFUVVJFXyIpCitlbnVtIEVmZmVjdEZlYXR1cmUgOiBpbnQzMl90IHsKKyAgICBBVVhfQ0hBTk5FTFMsIC8vIHN1cHBvcnRzIGF1eGlsaWFyeSBjaGFubmVscworICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gZHVhbCBtaWMgbm9pc2Ugc3VwcHJlc3NvcikKKyAgICBDTlQKK307CisKK3N0cnVjdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyB7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYWluQ2hhbm5lbHM7ICAvLyBjaGFubmVsIG1hc2sgZm9yIG1haW4gY2hhbm5lbHMKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGF1eENoYW5uZWxzOyAgIC8vIGNoYW5uZWwgbWFzayBmb3IgYXV4aWxpYXJ5IGNoYW5uZWxzCit9OworCitzdHJ1Y3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciB7CisgICAgYm9vbCBpc09mZmxvYWQ7ICAgICAgICAgIC8vIHRydWUgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGF0dGFjaGVkIHRvIGlzIG9mZmxvYWRlZAorICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGU7ICAvLyBpbyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiB0aGUgc3RhdHVzIG1lc3NhZ2UgcXVldWUgdXNlZCBieSBlZmZlY3RzLgorICovCitlbnVtIE1lc3NhZ2VRdWV1ZUZsYWdCaXRzIDogdWludDMyX3QgeworICAgIERPTkVfUFJPQ0VTU0lORyA9IDEgPDwgMCwKKyAgICBSRVFVRVNUX1BST0NFU1MgPSAxIDw8IDEsCisgICAgUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UgPSAxIDw8IDIsCisgICAgUkVRVUVTVF9RVUlUID0gMSA8PCAzLAorICAgIFJFUVVFU1RfUFJPQ0VTU19BTEwgPQorICAgICAgICBSRVFVRVNUX1BST0NFU1MgfCBSRVFVRVNUX1BST0NFU1NfUkVWRVJTRSB8IFJFUVVFU1RfUVVJVAorfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZGQ1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEzNzBjZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM5IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEF1ZGlvRWZmZWN0VjJfMFRhcmdldFRlc3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDBiYjRlCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQXVkaW9FZmZlY3RIaWRsSGFsVGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0hhbmRsZUNvbnN0czsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RBdXhDaGFubmVsc0NvbmZpZzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RCdWZmZXJDb25maWc7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0Q29uZmlnOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdERlc2NyaXB0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRXF1YWxpemVyRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgYW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgYW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgYW5kcm9pZDo6c3A7CisKKyNpZm5kZWYgQVJSQVlfU0laRQorI2RlZmluZSBBUlJBWV9TSVpFKGEpIChzaXplb2YoYSkgLyBzaXplb2YoKihhKSkpCisjZW5kaWYKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgQXVkaW8gRWZmZWN0cyBGYWN0b3J5IEhJREwgSEFMLgorY2xhc3MgQXVkaW9FZmZlY3RzRmFjdG9yeUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgZWZmZWN0c0ZhY3RvcnkgPQorICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgQVNTRVJUX05FKGVmZmVjdHNGYWN0b3J5LCBudWxscHRyKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGVmZmVjdHNGYWN0b3J5LmNsZWFyKCk7IH0KKworIHByb3RlY3RlZDoKKyAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICB9CisKKyAgc3A8SUVmZmVjdHNGYWN0b3J5PiBlZmZlY3RzRmFjdG9yeTsKK307CisKK1RFU1RfRihBdWRpb0VmZmVjdHNGYWN0b3J5SGlkbFRlc3QsIEVudW1lcmF0ZUVmZmVjdHMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVudW1lcmF0ZUVmZmVjdHMgcmV0dXJucyBhdCBsZWFzdCBvbmUgZWZmZWN0Iik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgc2l6ZV90IGVmZmVjdENvdW50ID0gMDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5nZXRBbGxEZXNjcmlwdG9ycygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4mIHJlc3VsdCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBlZmZlY3RDb3VudCA9IHJlc3VsdC5zaXplKCk7CisgICAgICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfR1QoZWZmZWN0Q291bnQsIDB1KTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgQ3JlYXRlRWZmZWN0KSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBhbiBlZmZlY3QgY2FuIGJlIGNyZWF0ZWQgdmlhIENyZWF0ZUVmZmVjdCIpOworICBib29sIGdvdEVmZmVjdCA9IGZhbHNlOworICBVdWlkIGVmZmVjdFV1aWQ7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Z2V0QWxsRGVzY3JpcHRvcnMoCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IGhpZGxfdmVjPEVmZmVjdERlc2NyaXB0b3I+JiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHIgPT0gUmVzdWx0OjpPSyAmJiByZXN1bHQuc2l6ZSgpID4gMCkgeworICAgICAgICAgIGdvdEVmZmVjdCA9IHRydWU7CisgICAgICAgICAgZWZmZWN0VXVpZCA9IHJlc3VsdFswXS51dWlkOworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKGdvdEVmZmVjdCk7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgc3A8SUVmZmVjdD4gZWZmZWN0OworICByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Y3JlYXRlRWZmZWN0KAorICAgICAgZWZmZWN0VXVpZCwgMSAvKnNlc3Npb24qLywgMSAvKmlvSGFuZGxlKi8sCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IHNwPElFZmZlY3Q+JiByZXN1bHQsIHVpbnQ2NF90IC8qZWZmZWN0SWQqLykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgZWZmZWN0ID0gcmVzdWx0OworICAgICAgICB9CisgICAgICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfTkUobnVsbHB0ciwgZWZmZWN0LmdldCgpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgR2V0RGVzY3JpcHRvcikgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBlZmZlY3RzIGZhY3RvcnkgY2FuIHByb3ZpZGUgYW4gZWZmZWN0IGRlc2NyaXB0b3IgdmlhICIKKyAgICAgICJHZXREZXNjcmlwdG9yIik7CisgIGhpZGxfdmVjPEVmZmVjdERlc2NyaXB0b3I+IGFsbERlc2NyaXB0b3JzOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0c0ZhY3RvcnktPmdldEFsbERlc2NyaXB0b3JzKAorICAgICAgWyZdKFJlc3VsdCByLCBjb25zdCBoaWRsX3ZlYzxFZmZlY3REZXNjcmlwdG9yPiYgcmVzdWx0KSB7CisgICAgICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICBhbGxEZXNjcmlwdG9ycyA9IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfR1QoYWxsRGVzY3JpcHRvcnMuc2l6ZSgpLCAwdSk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWxsRGVzY3JpcHRvcnMuc2l6ZSgpOyArK2kpIHsKKyAgICByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Z2V0RGVzY3JpcHRvcigKKyAgICAgICAgYWxsRGVzY3JpcHRvcnNbaV0udXVpZCwgWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3REZXNjcmlwdG9yJiByZXN1bHQpIHsKKyAgICAgICAgICBFWFBFQ1RfRVEociwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdCwgYWxsRGVzY3JpcHRvcnNbaV0pOworICAgICAgICB9KTsKKyAgfQorICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50KSB7CisgICAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGRlYnVnRHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5kZWJ1Z0R1bXAoaGlkbF9oYW5kbGUoKSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIEVxdWFsaXplciBlZmZlY3QgaXMgcmVxdWlyZWQgYnkgQ0RELCBidXQgb25seSB0aGUgdHlwZSBpcyBmaXhlZC4KKy8vIFRoaXMgaXMgdGhlIHNhbWUgVVVJRCBhcyBBdWRpb0VmZmVjdC5FRkZFQ1RfVFlQRV9FUVVBTElaRVIgaW4gSmF2YS4KK3N0YXRpYyBjb25zdCBVdWlkIEVRVUFMSVpFUl9FRkZFQ1RfVFlQRSA9IHsKKyAgICAweDBiZWQ0MzAwLCAweGRkZDYsIDB4MTFkYiwgMHg4ZjM0LAorICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNj57ezB4MDAsIDB4MDIsIDB4YTUsIDB4ZDUsIDB4YzUsIDB4MWJ9fX07CisvLyBMb3VkbmVzcyBFbmhhbmNlciBlZmZlY3QgaXMgcmVxdWlyZWQgYnkgQ0RELCBidXQgb25seSB0aGUgdHlwZSBpcyBmaXhlZC4KKy8vIFRoaXMgaXMgdGhlIHNhbWUgVVVJRCBhcyBBdWRpb0VmZmVjdC5FRkZFQ1RfVFlQRV9MT1VETkVTU19FTkhBTkNFUiBpbiBKYXZhLgorc3RhdGljIGNvbnN0IFV1aWQgTE9VRE5FU1NfRU5IQU5DRVJfRUZGRUNUX1RZUEUgPSB7CisgICAgMHhmZTMxOTliZSwgMHhhZWQwLCAweDQxM2YsIDB4ODdiYiwKKyAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDY+e3sweDExLCAweDI2LCAweDBlLCAweGI2LCAweDNjLCAweGYxfX19OworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBBdWRpb0VmZmVjdEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgZWZmZWN0c0ZhY3RvcnkgPQorICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVmZmVjdHNGYWN0b3J5LmdldCgpKTsKKworICAgIGZpbmRBbmRDcmVhdGVFZmZlY3QoZ2V0RWZmZWN0VHlwZSgpKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZWZmZWN0LmdldCgpKTsKKworICAgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+aW5pdCgpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBlZmZlY3QuY2xlYXIoKTsKKyAgICBlZmZlY3RzRmFjdG9yeS5jbGVhcigpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgfQorCisgIHZpcnR1YWwgVXVpZCBnZXRFZmZlY3RUeXBlKCkgeyByZXR1cm4gRVFVQUxJWkVSX0VGRkVDVF9UWVBFOyB9CisKKyAgdm9pZCBmaW5kQW5kQ3JlYXRlRWZmZWN0KGNvbnN0IFV1aWQmIHR5cGUpOworICB2b2lkIGZpbmRFZmZlY3RJbnN0YW5jZShjb25zdCBVdWlkJiB0eXBlLCBVdWlkKiB1dWlkKTsKKyAgdm9pZCBnZXRDaGFubmVsQ291bnQodWludDMyX3QqIGNoYW5uZWxDb3VudCk7CisKKyAgc3A8SUVmZmVjdHNGYWN0b3J5PiBlZmZlY3RzRmFjdG9yeTsKKyAgc3A8SUVmZmVjdD4gZWZmZWN0OworfTsKKwordm9pZCBBdWRpb0VmZmVjdEhpZGxUZXN0OjpmaW5kQW5kQ3JlYXRlRWZmZWN0KGNvbnN0IFV1aWQmIHR5cGUpIHsKKyAgVXVpZCBlZmZlY3RVdWlkOworICBmaW5kRWZmZWN0SW5zdGFuY2UodHlwZSwgJmVmZmVjdFV1aWQpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0c0ZhY3RvcnktPmNyZWF0ZUVmZmVjdCgKKyAgICAgIGVmZmVjdFV1aWQsIDEgLypzZXNzaW9uKi8sIDEgLyppb0hhbmRsZSovLAorICAgICAgWyZdKFJlc3VsdCByLCBjb25zdCBzcDxJRWZmZWN0PiYgcmVzdWx0LCB1aW50NjRfdCAvKmVmZmVjdElkKi8pIHsKKyAgICAgICAgaWYgKHIgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGVmZmVjdCA9IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCit2b2lkIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmZpbmRFZmZlY3RJbnN0YW5jZShjb25zdCBVdWlkJiB0eXBlLCBVdWlkKiB1dWlkKSB7CisgIGJvb2wgZWZmZWN0Rm91bmQgPSBmYWxzZTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5nZXRBbGxEZXNjcmlwdG9ycygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4mIHJlc3VsdCkgeworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjIDogcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAoZGVzYy50eXBlID09IHR5cGUpIHsKKyAgICAgICAgICAgICAgZWZmZWN0Rm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAqdXVpZCA9IGRlc2MudXVpZDsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKGVmZmVjdEZvdW5kKTsKK30KKwordm9pZCBBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXRDaGFubmVsQ291bnQodWludDMyX3QqIGNoYW5uZWxDb3VudCkgeworICBSZXN1bHQgcmV0dmFsOworICBFZmZlY3RDb25maWcgY3VycmVudENvbmZpZzsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0Q29uZmlnKFsmXShSZXN1bHQgciwgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25mKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICBjdXJyZW50Q29uZmlnID0gY29uZjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEFTU0VSVF9UUlVFKGF1ZGlvX2NoYW5uZWxfbWFza19pc192YWxpZCgKKyAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihjdXJyZW50Q29uZmlnLm91dHB1dENmZy5jaGFubmVscykpKTsKKyAgKmNoYW5uZWxDb3VudCA9IGF1ZGlvX2NoYW5uZWxfY291bnRfZnJvbV9vdXRfbWFzaygKKyAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihjdXJyZW50Q29uZmlnLm91dHB1dENmZy5jaGFubmVscykpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgQ2xvc2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGFuIGVmZmVjdCBjYW4gYmUgY2xvc2VkIik7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+Y2xvc2UoKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0RGVzY3JpcHRvcikgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBhbiBlZmZlY3QgY2FuIHJldHVybiBpdHMgb3duIGRlc2NyaXB0b3IgdmlhIEdldERlc2NyaXB0b3IiKTsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBVdWlkIGFjdHVhbFR5cGU7CisgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgZWZmZWN0LT5nZXREZXNjcmlwdG9yKFsmXShSZXN1bHQgciwgY29uc3QgRWZmZWN0RGVzY3JpcHRvciYgZGVzYykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgYWN0dWFsVHlwZSA9IGRlc2MudHlwZTsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgRVhQRUNUX0VRKGdldEVmZmVjdFR5cGUoKSwgYWN0dWFsVHlwZSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRDb25maWcpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgaXQgaXMgcG9zc2libGUgdG8gbWFuaXB1bGF0ZSBlZmZlY3QgY29uZmlnIHZpYSBHZXQgLyAiCisgICAgICAiU2V0Q29uZmlnIik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgRWZmZWN0Q29uZmlnIGN1cnJlbnRDb25maWc7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldENvbmZpZyhbJl0oUmVzdWx0IHIsIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZikgeworICAgIHJldHZhbCA9IHI7CisgICAgaWYgKHIgPT0gUmVzdWx0OjpPSykgeworICAgICAgY3VycmVudENvbmZpZyA9IGNvbmY7CisgICAgfQorICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBSZXR1cm48UmVzdWx0PiByZXQyID0gZWZmZWN0LT5zZXRDb25maWcoY3VycmVudENvbmZpZywgbnVsbHB0ciwgbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldDIpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgR2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShbJl0oUmVzdWx0LCBjb25zdCBFZmZlY3RDb25maWcmKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgMCwgWyZdKFJlc3VsdCwgY29uc3QgaGlkbF92ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEF1eENoYW5uZWxzQ29uZmlnKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRBdXhDaGFubmVsc0NvbmZpZyBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgIFsmXShSZXN1bHQsIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1eENoYW5uZWxzQ29uZmlnKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdXhDaGFubmVsc0NvbmZpZyBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnKCkpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gTm90IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJlY2F1c2UgQXVkaW9CdWZmZXIgY29udGFpbnMKKy8vIGluc3RhbmNlcyBvZiBoaWRsX21lbW9yeSB3aGljaCBjYW4ndCBiZSBjb21wYXJlZCBwcm9wZXJseQorLy8gaW4gZ2VuZXJhbCBjYXNlIGR1ZSB0byBwcmVzZW5jZSBvZiBoYW5kbGVzLgorLy8KKy8vIEhvd2V2ZXIsIGluIHRoaXMgcGFydGljdWxhciBjYXNlLCBoYW5kbGVzIG11c3Qgbm90IHByZXNlbnQKKy8vIHRodXMgY29tcGFyaXNvbiBpcyBwb3NzaWJsZS4KKy8vCisvLyBvcGVyYXRvcj09IG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgdGhlIHN0cnVjdHVyZXMuCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb0J1ZmZlciYgbGhzLCBjb25zdCBBdWRpb0J1ZmZlciYgcmhzKSB7CisgIHJldHVybiBsaHMuaWQgPT0gcmhzLmlkICYmIGxocy5mcmFtZUNvdW50ID09IHJocy5mcmFtZUNvdW50ICYmCisgICAgICAgICBsaHMuZGF0YS5oYW5kbGUoKSA9PSBudWxscHRyICYmIHJocy5kYXRhLmhhbmRsZSgpID09IG51bGxwdHI7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRWZmZWN0QnVmZmVyQ29uZmlnJiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVmZmVjdEJ1ZmZlckNvbmZpZyYgcmhzKSB7CisgIHJldHVybiBsaHMuYnVmZmVyID09IHJocy5idWZmZXIgJiYgbGhzLnNhbXBsaW5nUmF0ZUh6ID09IHJocy5zYW1wbGluZ1JhdGVIeiAmJgorICAgICAgICAgbGhzLmNoYW5uZWxzID09IHJocy5jaGFubmVscyAmJiBsaHMuZm9ybWF0ID09IHJocy5mb3JtYXQgJiYKKyAgICAgICAgIGxocy5hY2Nlc3NNb2RlID09IHJocy5hY2Nlc3NNb2RlICYmIGxocy5tYXNrID09IHJocy5tYXNrOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEVmZmVjdENvbmZpZyYgbGhzLCBjb25zdCBFZmZlY3RDb25maWcmIHJocykgeworICByZXR1cm4gbGhzLmlucHV0Q2ZnID09IHJocy5pbnB1dENmZyAmJiBsaHMub3V0cHV0Q2ZnID09IHJocy5vdXRwdXRDZmc7Cit9Cit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBSZXNldCkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgUmVzZXQgcHJlc2VydmVzIGVmZmVjdCBjb25maWd1cmF0aW9uIik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgRWZmZWN0Q29uZmlnIG9yaWdpbmFsQ29uZmlnOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRDb25maWcoWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmYpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgIG9yaWdpbmFsQ29uZmlnID0gY29uZjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIFJldHVybjxSZXN1bHQ+IHJldDIgPSBlZmZlY3QtPnJlc2V0KCk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldDIpOworICBFZmZlY3RDb25maWcgY29uZmlnQWZ0ZXJSZXNldDsKKyAgcmV0ID0gZWZmZWN0LT5nZXRDb25maWcoWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmYpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgIGNvbmZpZ0FmdGVyUmVzZXQgPSBjb25mOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9FUShvcmlnaW5hbENvbmZpZywgY29uZmlnQWZ0ZXJSZXNldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBEaXNhYmxlRW5hYmxlRGlzYWJsZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IERpc2FibGUgLT4gRW5hYmxlIC0+IERpc2FibGUgc2VxdWVuY2UgZm9yIGFuIGVmZmVjdCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPmRpc2FibGUoKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXQpOworICByZXQgPSBlZmZlY3QtPmVuYWJsZSgpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIHJldCA9IGVmZmVjdC0+ZGlzYWJsZSgpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXREZXZpY2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldERldmljZSB3b3JrcyBmb3IgYW4gb3V0cHV0IGNoYWluIGVmZmVjdCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldERldmljZShBdWRpb0RldmljZTo6T1VUX1NQRUFLRVIpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRBbmRHZXRWb2x1bWUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldEFuZEdldFZvbHVtZSBtZXRob2Qgd29ya3MgZm9yIGFuIGVmZmVjdCIpOworICB1aW50MzJfdCBjaGFubmVsQ291bnQ7CisgIGdldENoYW5uZWxDb3VudCgmY2hhbm5lbENvdW50KTsKKyAgaGlkbF92ZWM8dWludDMyX3Q+IHZvbHVtZXM7CisgIHZvbHVtZXMucmVzaXplKGNoYW5uZWxDb3VudCk7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFubmVsQ291bnQ7ICsraSkgeworICAgIHZvbHVtZXNbaV0gPSAwOworICB9CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgdm9sdW1lcywgWyZdKFJlc3VsdCByLCBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mKSB7IHJldHZhbCA9IHI7IH0pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBWb2x1bWVDaGFuZ2VOb3RpZmljYXRpb24pIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGVmZmVjdCBhY2NlcHRzIFZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbiIpOworICB1aW50MzJfdCBjaGFubmVsQ291bnQ7CisgIGdldENoYW5uZWxDb3VudCgmY2hhbm5lbENvdW50KTsKKyAgaGlkbF92ZWM8dWludDMyX3Q+IHZvbHVtZXM7CisgIHZvbHVtZXMucmVzaXplKGNoYW5uZWxDb3VudCk7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFubmVsQ291bnQ7ICsraSkgeworICAgIHZvbHVtZXNbaV0gPSAwOworICB9CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRBdWRpb01vZGUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldEF1ZGlvTW9kZSB3b3JrcyBmb3IgYW4gZWZmZWN0Iik7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZTo6Tk9STUFMKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZygpLCBudWxscHRyLCBudWxscHRyKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRJbnB1dERldmljZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0SW5wdXREZXZpY2UgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZWZmZWN0LT5zZXRJbnB1dERldmljZShBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1ZGlvU291cmNlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdWRpb1NvdXJjZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlOjpNSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIE9mZmxvYWQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGNhbGxpbmcgT2ZmbG9hZCBtZXRob2QgZWl0aGVyIHdvcmtzIG9yIHJldHVybnMgbm90IHN1cHBvcnRlZCIpOworICBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyIG9mZmxvYWRQYXJhbTsKKyAgb2ZmbG9hZFBhcmFtLmlzT2ZmbG9hZCA9IGZhbHNlOworICBvZmZsb2FkUGFyYW0uaW9IYW5kbGUgPQorICAgICAgc3RhdGljX2Nhc3Q8aW50PihBdWRpb0hhbmRsZUNvbnN0czo6QVVESU9fSU9fSEFORExFX05PTkUpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPm9mZmxvYWQob2ZmbG9hZFBhcmFtKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKFJlc3VsdDo6T0sgPT0gcmV0IHx8IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCA9PSByZXQpCisgICAgICAgICAgPDwgIkV4cGVjdGVkIE9LIG9yIE5PVF9TVVBQT1JURUQsIGFjdHVhbCB2YWx1ZTogIgorICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PFJlc3VsdD4ocmV0KSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBQcmVwYXJlRm9yUHJvY2Vzc2luZykgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgUHJlcGFyZUZvclByb2Nlc3NpbmcgbWV0aG9kIHdvcmtzIGZvciBhbiBlZmZlY3QiKTsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgTVFEZXNjcmlwdG9yU3luYzxSZXN1bHQ+JikgeyByZXR2YWwgPSByOyB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0UHJvY2Vzc0J1ZmZlcnMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldFByb2Nlc3NCdWZmZXJzIHdvcmtzIGZvciBhbiBlZmZlY3QiKTsKKyAgc3A8SUFsbG9jYXRvcj4gYXNobWVtID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgIEFTU0VSVF9ORShudWxscHRyLCBhc2htZW0uZ2V0KCkpOworICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgQXVkaW9CdWZmZXIgYnVmZmVyOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGFzaG1lbS0+YWxsb2NhdGUoMTAyNCwgWyZdKGJvb2wgcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICBzdWNjZXNzID0gczsKKyAgICAgICAgaWYgKHMpIHsKKyAgICAgICAgICBidWZmZXIuZGF0YSA9IG1lbW9yeTsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfVFJVRShzdWNjZXNzKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0MiA9IGVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoYnVmZmVyLCBidWZmZXIpOworICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQyKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIENvbW1hbmQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IENvbW1hbmQgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Y29tbWFuZCgwLCBoaWRsX3ZlYzx1aW50OF90PigpLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShpbnQzMl90LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHt9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRQYXJhbWV0ZXIpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldFBhcmFtZXRlciBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRQYXJhbWV0ZXIoaGlkbF92ZWM8dWludDhfdD4oKSwgaGlkbF92ZWM8dWludDhfdD4oKSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0UGFyYW1ldGVyKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRQYXJhbWV0ZXIgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0UGFyYW1ldGVyKAorICAgICAgaGlkbF92ZWM8dWludDhfdD4oKSwgMCwgWyZdKFJlc3VsdCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlIGRvZXMgbm90IGNyYXNoIik7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgMCwgMCwgMCwgWyZdKFJlc3VsdCwgdWludDMyX3QsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgIDAsIDAsIFsmXShSZXN1bHQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgwLCBoaWRsX3ZlYzx1aW50OF90PigpKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgRXF1YWxpemVyIEF1ZGlvIEVmZmVjdCBISURMIEhBTC4KK2NsYXNzIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QgOiBwdWJsaWMgQXVkaW9FZmZlY3RIaWRsVGVzdCB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OlNldFVwKCk7CisgICAgZXF1YWxpemVyID0gSUVxdWFsaXplckVmZmVjdDo6Y2FzdEZyb20oZWZmZWN0KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZXF1YWxpemVyLmdldCgpKTsKKyAgfQorCisgcHJvdGVjdGVkOgorICBVdWlkIGdldEVmZmVjdFR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBFUVVBTElaRVJfRUZGRUNUX1RZUEU7IH0KKyAgdm9pZCBnZXROdW1CYW5kcyh1aW50MTZfdCogbnVtQmFuZHMpOworICB2b2lkIGdldExldmVsUmFuZ2UoaW50MTZfdCogbWluTGV2ZWwsIGludDE2X3QqIG1heExldmVsKTsKKyAgdm9pZCBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UodWludDE2X3QgYmFuZCwgdWludDMyX3QqIG1pbkZyZXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBjZW50ZXJGcmVxLCB1aW50MzJfdCogbWF4RnJlcSk7CisgIHZvaWQgZ2V0UHJlc2V0Q291bnQoc2l6ZV90KiBjb3VudCk7CisKKyAgc3A8SUVxdWFsaXplckVmZmVjdD4gZXF1YWxpemVyOworfTsKKwordm9pZCBFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXROdW1CYW5kcyh1aW50MTZfdCogbnVtQmFuZHMpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXROdW1CYW5kcyhbJl0oUmVzdWx0IHIsIHVpbnQxNl90IGIpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgKm51bUJhbmRzID0gYjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0TGV2ZWxSYW5nZShpbnQxNl90KiBtaW5MZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90KiBtYXhMZXZlbCkgeworICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgZXF1YWxpemVyLT5nZXRMZXZlbFJhbmdlKFsmXShSZXN1bHQgciwgaW50MTZfdCBtaW4sIGludDE2X3QgbWF4KSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICptaW5MZXZlbCA9IG1pbjsKKyAgICAgICAgICAqbWF4TGV2ZWwgPSBtYXg7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogbWluRnJlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBjZW50ZXJGcmVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG1heEZyZXEpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXRCYW5kRnJlcXVlbmN5UmFuZ2UoCisgICAgICBiYW5kLCBbJl0oUmVzdWx0IHIsIHVpbnQzMl90IG1pbiwgdWludDMyX3QgbWF4KSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICptaW5GcmVxID0gbWluOworICAgICAgICAgICptYXhGcmVxID0gbWF4OworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICByZXQgPSBlcXVhbGl6ZXItPmdldEJhbmRDZW50ZXJGcmVxdWVuY3koYmFuZCwgWyZdKFJlc3VsdCByLCB1aW50MzJfdCBjZW50ZXIpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgKmNlbnRlckZyZXEgPSBjZW50ZXI7CisgICAgfQorICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCit2b2lkIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmdldFByZXNldENvdW50KHNpemVfdCogY291bnQpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXRQcmVzZXROYW1lcygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBuYW1lcykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAqY291bnQgPSBuYW1lcy5zaXplKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXROdW1CYW5kcykgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgRXF1YWxpemVyIGVmZmVjdCByZXBvcnRzIGF0IGxlYXN0IG9uZSBiYW5kIik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgRVhQRUNUX0dUKG51bUJhbmRzLCAwKTsKK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldExldmVsUmFuZ2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhZGVxdWF0ZSBiYW5kIGxldmVsIHJhbmdlIik7CisgIGludDE2X3QgbWluTGV2ZWwgPSAweDdmZmYsIG1heExldmVsID0gMDsKKyAgZ2V0TGV2ZWxSYW5nZSgmbWluTGV2ZWwsICZtYXhMZXZlbCk7CisgIEVYUEVDVF9HVChtYXhMZXZlbCwgbWluTGV2ZWwpOworfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U2V0QmFuZExldmVsKSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyBiYW5kIGxldmVscyB3b3JrcyBmb3IgRXF1YWxpemVyIGVmZmVjdCIpOworICB1aW50MTZfdCBudW1CYW5kcyA9IDA7CisgIGdldE51bUJhbmRzKCZudW1CYW5kcyk7CisgIEFTU0VSVF9HVChudW1CYW5kcywgMCk7CisgIGludDE2X3QgbGV2ZWxzWzNdezB4N2ZmZiwgMCwgMH07CisgIGdldExldmVsUmFuZ2UoJmxldmVsc1swXSwgJmxldmVsc1syXSk7CisgIEFTU0VSVF9HVChsZXZlbHNbMl0sIGxldmVsc1swXSk7CisgIGxldmVsc1sxXSA9IChsZXZlbHNbMl0gKyBsZXZlbHNbMF0pIC8gMjsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IEFSUkFZX1NJWkUobGV2ZWxzKTsgKytqKSB7CisgICAgICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEJhbmRMZXZlbChpLCBsZXZlbHNbal0pOworICAgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0KTsKKyAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgIGludDE2X3QgYWN0dWFsTGV2ZWw7CisgICAgICBSZXR1cm48dm9pZD4gcmV0MiA9IGVxdWFsaXplci0+Z2V0QmFuZExldmVsKGksIFsmXShSZXN1bHQgciwgaW50MTZfdCBsKSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGFjdHVhbExldmVsID0gbDsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgICAgIEVYUEVDVF9FUShsZXZlbHNbal0sIGFjdHVhbExldmVsKTsKKyAgICB9CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEJhbmRDZW50ZXJGcmVxdWVuY3lBbmRSYW5nZSkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHJlcG9ydHMgYWRlcXVhdGUgYmFuZCBmcmVxdWVuY3kgcmFuZ2UiKTsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBmb3IgKHVpbnQxNl90IGkgPSAwOyBpIDwgbnVtQmFuZHM7ICsraSkgeworICAgIHVpbnQzMl90IG1pbkZyZXEgPSAweGZmZmZmZmZmLCBjZW50ZXJGcmVxID0gMHhmZmZmZmZmZiwKKyAgICAgICAgICAgICBtYXhGcmVxID0gMHhmZmZmZmZmZjsKKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UoaSwgJm1pbkZyZXEsICZjZW50ZXJGcmVxLCAmbWF4RnJlcSk7CisgICAgLy8gTm90ZTogTlhQIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiByZXBvcnRzICIxIiBhcyB1cHBlciBib3VuZCBmb3IgbGFzdCBiYW5kLAorICAgIC8vIHNvIHRoaXMgY2hlY2sgZmFpbHMuCisgICAgRVhQRUNUX0dFKG1heEZyZXEsIGNlbnRlckZyZXEpOworICAgIEVYUEVDVF9HRShjZW50ZXJGcmVxLCBtaW5GcmVxKTsKKyAgfQorfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0QmFuZEZvckZyZXF1ZW5jeSkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHN1cHBvcnRzIEdldEJhbmRGb3JGcmVxdWVuY3kgY29ycmVjdGx5Iik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgQVNTRVJUX0dUKG51bUJhbmRzLCAwKTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICB1aW50MzJfdCBmcmVxc1szXXswLCAwLCAwfTsKKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UoaSwgJmZyZXFzWzBdLCAmZnJlcXNbMV0sICZmcmVxc1syXSk7CisgICAgLy8gTlhQIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiByZXBvcnRzICIxIiBhcyB1cHBlciBib3VuZCBmb3IgbGFzdCBiYW5kLCBzb21lCisgICAgLy8gb2YgdGhlIGNoZWNrcyBmYWlsLgorICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgQVJSQVlfU0laRShmcmVxcyk7ICsraikgeworICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICBmcmVxc1tqXSsrOworICAgICAgfSAgLy8gTWluIGZyZXF1ZW5jeSBpcyBhbiBvcGVuIGludGVydmFsLgorICAgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgdWludDE2X3QgYWN0dWFsQmFuZCA9IG51bUJhbmRzICsgMTsKKyAgICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICAgIGVxdWFsaXplci0+Z2V0QmFuZEZvckZyZXF1ZW5jeShmcmVxc1tqXSwgWyZdKFJlc3VsdCByLCB1aW50MTZfdCBiKSB7CisgICAgICAgICAgICByZXR2YWwgPSByOworICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgIGFjdHVhbEJhbmQgPSBiOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgICAgIEVYUEVDVF9FUShpLCBhY3R1YWxCYW5kKSA8PCAiRnJlcXVlbmN5OiAiIDw8IGZyZXFzW2pdOworICAgIH0KKyAgfQorfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0UHJlc2V0TmFtZXMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhdCBsZWFzdCBvbmUgcHJlc2V0Iik7CisgIHNpemVfdCBwcmVzZXRDb3VudDsKKyAgZ2V0UHJlc2V0Q291bnQoJnByZXNldENvdW50KTsKKyAgRVhQRUNUX0dUKHByZXNldENvdW50LCAwdSk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRDdXJyZW50UHJlc2V0KSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyB0aGUgY3VycmVudCBwcmVzZXQgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgc2l6ZV90IHByZXNldENvdW50OworICBnZXRQcmVzZXRDb3VudCgmcHJlc2V0Q291bnQpOworICBBU1NFUlRfR1QocHJlc2V0Q291bnQsIDB1KTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IHByZXNldENvdW50OyArK2kpIHsKKyAgICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEN1cnJlbnRQcmVzZXQoaSk7CisgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIHVpbnQxNl90IGFjdHVhbFByZXNldCA9IDB4ZmZmZjsKKyAgICBSZXR1cm48dm9pZD4gcmV0MiA9IGVxdWFsaXplci0+Z2V0Q3VycmVudFByZXNldChbJl0oUmVzdWx0IHIsIHVpbnQxNl90IHApIHsKKyAgICAgIHJldHZhbCA9IHI7CisgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgYWN0dWFsUHJlc2V0ID0gcDsKKyAgICAgIH0KKyAgICB9KTsKKyAgICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgICAgRVhQRUNUX0VRKGksIGFjdHVhbFByZXNldCk7CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldEFsbFByb3BlcnRpZXMpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgc2V0dGluZyBiYW5kIGxldmVscyBhbmQgcHJlc2V0cyB3b3JrcyB2aWEgR2V0IC8gIgorICAgICAgIlNldEFsbFByb3BlcnRpZXMgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgdXNpbmcgQWxsUHJvcGVydGllcyA9CisgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVxdWFsaXplckVmZmVjdDo6QWxsUHJvcGVydGllczsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBBbGxQcm9wZXJ0aWVzIHByb3BzOworICBwcm9wcy5iYW5kTGV2ZWxzLnJlc2l6ZShudW1CYW5kcyk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQmFuZHM7ICsraSkgeworICAgIHByb3BzLmJhbmRMZXZlbHNbaV0gPSAwOworICB9CisKKyAgQWxsUHJvcGVydGllcyBhY3R1YWxQcm9wczsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworCisgIC8vIFZlcmlmeSBzZXR0aW5nIG9mIHRoZSBiYW5kIGxldmVscyB2aWEgcHJvcGVydGllcy4KKyAgcHJvcHMuY3VyUHJlc2V0ID0gLTE7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVxdWFsaXplci0+c2V0QWxsUHJvcGVydGllcyhwcm9wcyk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0KTsKKyAgUmV0dXJuPHZvaWQ+IHJldDIgPQorICAgICAgZXF1YWxpemVyLT5nZXRBbGxQcm9wZXJ0aWVzKFsmXShSZXN1bHQgciwgQWxsUHJvcGVydGllcyBwKSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGFjdHVhbFByb3BzID0gcDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShwcm9wcy5iYW5kTGV2ZWxzLCBhY3R1YWxQcm9wcy5iYW5kTGV2ZWxzKTsKKworICAvLyBWZXJpZnkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBwcmVzZXQgdmlhIHByb3BlcnRpZXMuCisgIHByb3BzLmN1clByZXNldCA9IDA7ICAvLyBBc3N1bWluZyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcHJlc2V0LgorICByZXQgPSBlcXVhbGl6ZXItPnNldEFsbFByb3BlcnRpZXMocHJvcHMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIHJldDIgPSBlcXVhbGl6ZXItPmdldEFsbFByb3BlcnRpZXMoWyZdKFJlc3VsdCByLCBBbGxQcm9wZXJ0aWVzIHApIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgYWN0dWFsUHJvcHMgPSBwOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShwcm9wcy5jdXJQcmVzZXQsIGFjdHVhbFByb3BzLmN1clByZXNldCk7Cit9CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEVxdWFsaXplciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBMb3VkbmVzc0VuaGFuY2VyQXVkaW9FZmZlY3RIaWRsVGVzdCA6IHB1YmxpYyBBdWRpb0VmZmVjdEhpZGxUZXN0IHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQXVkaW9FZmZlY3RIaWRsVGVzdDo6U2V0VXAoKTsKKyAgICBlbmhhbmNlciA9IElMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpjYXN0RnJvbShlZmZlY3QpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBlbmhhbmNlci5nZXQoKSk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgVXVpZCBnZXRFZmZlY3RUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gTE9VRE5FU1NfRU5IQU5DRVJfRUZGRUNUX1RZUEU7IH0KKworICBzcDxJTG91ZG5lc3NFbmhhbmNlckVmZmVjdD4gZW5oYW5jZXI7Cit9OworCitURVNUX0YoTG91ZG5lc3NFbmhhbmNlckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldFRhcmdldEdhaW4pIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgbWFuaXB1bGF0aW5nIHRoZSB0YXJnZXQgZ2FpbiB3b3JrcyBmb3IgTG91ZG5lc3MgRW5oYW5jZXIgIgorICAgICAgImVmZmVjdCIpOworICBjb25zdCBpbnQzMl90IGdhaW4gPSAxMDA7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVuaGFuY2VyLT5zZXRUYXJnZXRHYWluKGdhaW4pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIGludDMyX3QgYWN0dWFsR2FpbiA9IDA7CisgIFJlc3VsdCByZXR2YWw7CisgIFJldHVybjx2b2lkPiByZXQyID0gZW5oYW5jZXItPmdldFRhcmdldEdhaW4oWyZdKFJlc3VsdCByLCBpbnQzMl90IGcpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgYWN0dWFsR2FpbiA9IGc7CisgICAgfQorICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0Mi5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgRVhQRUNUX0VRKGdhaW4sIGFjdHVhbEdhaW4pOworfQpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvQW5kcm9pZC5icCBiL2F1dG9tb3RpdmUvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWM4ODY1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsOCBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiZXZzLzEuMCIsCisgICAgImV2cy8xLjAvZGVmYXVsdCIsCisgICAgImV2cy8xLjAvdnRzL2Z1bmN0aW9uYWwiLAorICAgICJ2ZWhpY2xlLzIuMCIsCisgICAgInZlaGljbGUvMi4xIiwKK10KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhOTdhNwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUV2c0NhbWVyYS5oYWwiLAorICAgICAgICAiSUV2c0NhbWVyYVN0cmVhbS5oYWwiLAorICAgICAgICAiSUV2c0Rpc3BsYXkuaGFsIiwKKyAgICAgICAgIklFdnNFbnVtZXJhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvRXZzQ2FtZXJhQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9FdnNDYW1lcmFTdHJlYW1BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0Rpc3BsYXlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0VudW1lcmF0b3JBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9CcEh3RXZzQ2FtZXJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUh3RXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQm5Id0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNDYW1lcmFTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cc0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUh3RXZzRGlzcGxheS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnBId0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cc0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0VudW1lcmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cbkh3RXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNFbnVtZXJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNFbnVtZXJhdG9yLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmNhZjkyCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaGFsCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CitpbXBvcnQgSUV2c0NhbWVyYVN0cmVhbTsKKworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY2FtZXJhIGFuZCBpcyB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZm9yIGNhcHR1cmluZyBpbWFnZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzQ2FtZXJhIHsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIElEIG9mIHRoaXMgY2FtZXJhLgorICAgICAqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBjYW1lcmEuIFRoaXMgbXVzdCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyByZXBvcnRlZAorICAgICAqIGJ5IEV2c0VudW1lcmF0b3I6OmdldENhbWVyTGlzdCgpLgorICAgICAqLworICAgIGdldENhbWVyYUluZm8oKSBnZW5lcmF0ZXMgKENhbWVyYURlc2MgaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIGRlcHRoIG9mIHRoZSBidWZmZXIgY2hhaW4gdGhlIGNhbWVyYSBpcyBhc2tlZCB0byBzdXBwb3J0LgorICAgICAqCisgICAgICogVXAgdG8gdGhpcyBtYW55IGZyYW1lcyBtYXkgYmUgaGVsZCBjb25jdXJyZW50bHkgYnkgdGhlIGNsaWVudCBvZiBJRXZzQ2FtZXJhLgorICAgICAqIElmIHRoaXMgbWFueSBmcmFtZXMgaGF2ZSBiZWVuIGRlbGl2ZXJlZCB0byB0aGUgcmVjZWl2ZXIgd2l0aG91dCBiZWluZyByZXR1cm5lZAorICAgICAqIGJ5IGRvbmVXaXRoRnJhbWUsIHRoZSBzdHJlYW0gbXVzdCBza2lwIGZyYW1lcyB1bnRpbCBhIGJ1ZmZlciBpcyByZXR1cm5lZCBmb3IgcmV1c2UuCisgICAgICogSXQgaXMgbGVnYWwgZm9yIHRoaXMgY2FsbCB0byBjb21lIGF0IGFueSB0aW1lLCBldmVuIHdoaWxlIHN0cmVhbXMgYXJlIGFscmVhZHkgcnVubmluZywKKyAgICAgKiBpbiB3aGljaCBjYXNlIGJ1ZmZlcnMgc2hvdWxkIGJlIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgY2hhaW4gYXMgYXBwcm9wcmlhdGUuCisgICAgICogSWYgbm8gY2FsbCBpcyBtYWRlIHRvIHRoaXMgZW50cnkgcG9pbnQsIHRoZSBJRXZzQ2FtZXJhIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBvbmUKKyAgICAgKiBmcmFtZSBieSBkZWZhdWx0LiBNb3JlIGlzIGFjY2VwdGFibGUuCisgICAgICogQlVGRkVSX05PVF9BVkFJTEFCTEUgaXMgcmV0dXJuZWQgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNhbm5vdCBzdXBwb3J0IHRoZQorICAgICAqIHJlcXVlc3RlZCBudW1iZXIgb2YgY29uY3VycmVudCBmcmFtZXMuCisgICAgICovCisgICAgc2V0TWF4RnJhbWVzSW5GbGlnaHQodWludDMyX3QgYnVmZmVyQ291bnQpIGdlbmVyYXRlcyAoRXZzUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IGRlbGl2ZXJ5IG9mIEVWUyBjYW1lcmEgZnJhbWVzIGZyb20gdGhpcyBjYW1lcmEuCisgICAgICoKKyAgICAgKiBUaGUgSUV2c0NhbWVyYVN0cmVhbSBtdXN0IGJlZ2luIHJlY2VpdmluZyBwZXJpb2RpYyBjYWxscyB3aXRoIG5ldyBpbWFnZQorICAgICAqIGZyYW1lcyB1bnRpbCBzdG9wVmlkZW9TdHJlYW0oKSBpcyBjYWxsZWQuCisgICAgICovCisgICAgc3RhcnRWaWRlb1N0cmVhbShJRXZzQ2FtZXJhU3RyZWFtIHJlY2VpdmVyKSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgZnJhbWUgdGhhdCB3YXMgZGVsaXZlcmVkIGJ5IHRvIHRoZSBJRXZzQ2FtZXJhU3RyZWFtLgorICAgICAqCisgICAgICogV2hlbiBkb25lIGNvbnN1bWluZyBhIGZyYW1lIGRlbGl2ZXJlZCB0byB0aGUgSUV2c0NhbWVyYVN0cmVhbQorICAgICAqIGludGVyZmFjZSwgaXQgbXVzdCBiZSByZXR1cm5lZCB0byB0aGUgSUV2c0NhbWVyYSBmb3IgcmV1c2UuCisgICAgICogQSBzbWFsbCwgZmluaXRlIG51bWJlciBvZiBidWZmZXJzIGFyZSBhdmFpbGFibGUgKHBvc3NpYmx5IGFzIHNtYWxsCisgICAgICogYXMgb25lKSwgYW5kIGlmIHRoZSBzdXBwbHkgaXMgZXhoYXVzdGVkLCBubyBmdXJ0aGVyIGZyYW1lcyBtYXkgYmUKKyAgICAgKiBkZWxpdmVyZWQgdW50aWwgYSBidWZmZXIgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgb25ld2F5IGRvbmVXaXRoRnJhbWUoQnVmZmVyRGVzYyBidWZmZXIpOworCisgICAgLyoqCisgICAgICogU3RvcCB0aGUgZGVsaXZlcnkgb2YgRVZTIGNhbWVyYSBmcmFtZXMuCisgICAgICoKKyAgICAgKiBCZWNhdXNlIGRlbGl2ZXJ5IGlzIGFzeW5jaHJvbm91cywgZnJhbWVzIG1heSBjb250aW51ZSB0byBhcnJpdmUgZm9yCisgICAgICogc29tZSB0aW1lIGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLiBFYWNoIG11c3QgYmUgcmV0dXJuZWQgdW50aWwgdGhlCisgICAgICogY2xvc3VyZSBvZiB0aGUgc3RyZWFtIGlzIHNpZ25hbGVkIHRvIHRoZSBJRXZzQ2FtZXJhU3RyZWFtLgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2Fubm90IGZhaWwgYW5kIGlzIHNpbXBseSBpZ25vcmVkIGlmIHRoZSBzdHJlYW0gaXNuJ3QgcnVubmluZy4KKyAgICAgKi8KKyAgICBzdG9wVmlkZW9TdHJlYW0oKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgZHJpdmVyIHNwZWNpZmljIGluZm9ybWF0aW9uIGZyb20gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYWxsb3dlZCBmb3Igb3BhcXVlSWRlbnRpZmllciBhcmUgZHJpdmVyIHNwZWNpZmljLAorICAgICAqIGJ1dCBubyB2YWx1ZSBwYXNzZWQgaW4gbWF5IGNyYXNoIHRoZSBkcml2ZXIuIFRoZSBkcml2ZXIgc2hvdWxkCisgICAgICogcmV0dXJuIDAgZm9yIGFueSB1bnJlY29nbml6ZWQgb3BhcXVlSWRlbnRpZmllci4KKyAgICAgKi8KKyAgICBnZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllcikgZ2VuZXJhdGVzIChpbnQzMl90IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBkcml2ZXIgc3BlY2lmaWMgdmFsdWUgdG8gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIFRoaXMgZXh0ZW5zaW9uIGlzIHByb3ZpZGVkIHRvIGZhY2lsaXRhdGUgY2FyIHNwZWNpZmljCisgICAgICogZXh0ZW5zaW9ucywgYnV0IG5vIEhBTCBpbXBsZW1lbnRhdGlvbiBtYXkgcmVxdWlyZSB0aGlzIGNhbGwKKyAgICAgKiBpbiBvcmRlciB0byBmdW5jdGlvbiBpbiBhIGRlZmF1bHQgc3RhdGUuCisgICAgICogSU5WQUxJRF9BUkcgaXMgcmV0dXJuZWQgaWYgdGhlIG9wYXF1ZVZhbHVlIGlzIG5vdCBtZWFuaW5nZnVsIHRvCisgICAgICogdGhlIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllciwgaW50MzJfdCBvcGFxdWVWYWx1ZSkgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU3NDNiMgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmhhbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDsKKworCisvKioKKyAqIEltcGxlbWVudGVkIG9uIGNsaWVudCBzaWRlIHRvIHJlY2VpdmUgYXN5bmNocm9ub3VzIHZpZGVvIGZyYW1lIGRlbGl2ZXJpZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzQ2FtZXJhU3RyZWFtIHsKKworICAgIC8qKgorICAgICAqIFJlY2VpdmVzIGNhbGxzIGZyb20gdGhlIEhBTCBlYWNoIHRpbWUgYSB2aWRlbyBmcmFtZSBpcyByZWFkeSBmb3IgaW5zcGVjdGlvbi4KKyAgICAgKiBCdWZmZXIgaGFuZGxlcyByZWNlaXZlZCBieSB0aGlzIG1ldGhvZCBtdXN0IGJlIHJldHVybmVkIHZpYSBjYWxscyB0bworICAgICAqIElFdnNDYW1lcmE6OmRvbmVXaXRoRnJhbWUoKS4gV2hlbiB0aGUgdmlkZW8gc3RyZWFtIGlzIHN0b3BwZWQgdmlhIGEgY2FsbAorICAgICAqIHRvIElFdnNDYW1lcmE6OnN0b3BWaWRlb1N0cmVhbSgpLCB0aGlzIGNhbGxiYWNrIG1heSBjb250aW51ZSB0byBoYXBwZW4gZm9yCisgICAgICogc29tZSB0aW1lIGFzIHRoZSBwaXBlbGluZSBkcmFpbnMuIEVhY2ggZnJhbWUgbXVzdCBzdGlsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBXaGVuIHRoZSBsYXN0IGZyYW1lIGluIHRoZSBzdHJlYW0gaGFzIGJlZW4gZGVsaXZlcmVkLCBhIE5VTEwgYnVmZmVySGFuZGxlCisgICAgICogbXVzdCBiZSBkZWxpdmVyZWQsIHNpZ25pZnlpbmcgdGhlIGVuZCBvZiB0aGUgc3RyZWFtLiBObyBmdXJ0aGVyIGZyYW1lCisgICAgICogZGVsaXZlcmllcyBtYXkgaGFwcGVuIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgb25ld2F5IGRlbGl2ZXJGcmFtZShCdWZmZXJEZXNjIGJ1ZmZlcik7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5LmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1NDFmMwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA7CisKK2ltcG9ydCB0eXBlczsKKworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY2FtZXJhIGFuZCBpcyB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZm9yIGNhcHR1cmluZyBpbWFnZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzRGlzcGxheSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBFVlMgZGlzcGxheSBwcm92aWRlZCBieSB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgRGlzcGxheURlc2Mgc3RydWN0dXJlIGZvciBkZXRhaWxzLgorICAgICAqLworICAgICBnZXREaXNwbGF5SW5mbygpIGdlbmVyYXRlcyAoRGlzcGxheURlc2MgaW5mbyk7CisKKworICAgIC8qKgorICAgICAqIENsaWVudHMgbWF5IHNldCB0aGUgZGlzcGxheSBzdGF0ZSB0byBleHByZXNzIHRoZWlyIGRlc2lyZWQgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ3JhY2VmdWxseSBhY2NlcHQgYSByZXF1ZXN0IGZvciBhbnkgc3RhdGUgd2hpbGUgaW4KKyAgICAgKiBhbnkgb3RoZXIgc3RhdGUsIGFsdGhvdWdoIHRoZSByZXNwb25zZSBtYXkgYmUgdG8gZGVmZXIgb3IgaWdub3JlIHRoZSByZXF1ZXN0LiBUaGUgZGlzcGxheQorICAgICAqIGlzIGRlZmluZWQgdG8gc3RhcnQgaW4gdGhlIE5PVF9WSVNJQkxFIHN0YXRlIHVwb24gaW5pdGlhbGl6YXRpb24uIFRoZSBjbGllbnQgaXMKKyAgICAgKiB0aGVuIGV4cGVjdGVkIHRvIHJlcXVlc3QgdGhlIFZJU0lCTEVfT05fTkVYVF9GUkFNRSBzdGF0ZSwgYW5kIHRoZW4gYmVnaW4gcHJvdmlkaW5nCisgICAgICogdmlkZW8uIFdoZW4gdGhlIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCB0aGUgY2xpZW50IGlzIGV4cGVjdGVkIHRvIHJlcXVlc3QKKyAgICAgKiB0aGUgTk9UX1ZJU0lCTEUgc3RhdGUgYWZ0ZXIgcGFzc2luZyB0aGUgbGFzdCB2aWRlbyBmcmFtZS4KKyAgICAgKiBSZXR1cm5zIElOVkFMSURfQVJHIGlmIHRoZSByZXF1ZXN0ZWQgc3RhdGUgaXMgbm90IGEgcmVjb2duaXplZCB2YWx1ZS4KKyAgICAgKi8KKyAgICAgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSBzdGF0ZSkgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKKworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJlcXVlc3RzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICoKKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXBvcnQgdGhlIGFjdHVhbCBjdXJyZW50IHN0YXRlLCB3aGljaCBtaWdodAorICAgICAqIHRyYW5zaWVudGx5IGRpZmZlciBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IHJlcXVlc3RlZCBzdGF0ZS4gTm90ZSwgaG93ZXZlciwgdGhhdAorICAgICAqIHRoZSBsb2dpYyByZXNwb25zaWJsZSBmb3IgY2hhbmdpbmcgZGlzcGxheSBzdGF0ZXMgc2hvdWxkIGdlbmVyYWxseSBsaXZlIGFib3ZlCisgICAgICogdGhlIGRldmljZSBsYXllciwgbWFraW5nIGl0IHVuZGVzaXJhYmxlIGZvciB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHRvIHNwb250YW5lb3VzbHkKKyAgICAgKiBjaGFuZ2UgZGlzcGxheSBzdGF0ZXMuCisgICAgICovCisgICAgIGdldERpc3BsYXlTdGF0ZSgpIGdlbmVyYXRlcyAoRGlzcGxheVN0YXRlIHN0YXRlKTsKKworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSBoYW5kbGUgdG8gYSBmcmFtZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogVGhlIHJldHVybmVkIGJ1ZmZlciBtYXkgYmUgbG9ja2VkIGFuZCB3cml0dGVuIHRvIGJ5IHNvZnR3YXJlIGFuZC9vciBHTC4gVGhpcyBidWZmZXIKKyAgICAgKiBtdXN0IGJlIHJldHVybmVkIHZpYSBhIGNhbGwgdG8gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSgpIGV2ZW4gaWYgdGhlCisgICAgICogZGlzcGxheSBpcyBubyBsb25nZXIgdmlzaWJsZS4KKyAgICAgKi8KKyAgICAgZ2V0VGFyZ2V0QnVmZmVyKCkgZ2VuZXJhdGVzIChCdWZmZXJEZXNjIGJ1ZmZlcik7CisKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCB0ZWxscyB0aGUgZGlzcGxheSB0aGF0IHRoZSBidWZmZXIgaXMgcmVhZHkgZm9yIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBUaGUgYnVmZmVyIGlzIG5vIGxvbmdlciB2YWxpZCBmb3IgdXNlIGJ5IHRoZSBjbGllbnQgYWZ0ZXIgdGhpcyBjYWxsLgorICAgICAqIFRoZXJlIGlzIG5vIG1heGltdW0gdGltZSB0aGUgY2FsbGVyIG1heSBob2xkIG9udG8gdGhlIGJ1ZmZlciBiZWZvcmUgbWFraW5nIHRoaXMKKyAgICAgKiBjYWxsLiBUaGUgYnVmZmVyIG1heSBiZSByZXR1cm5lZCBhdCBhbnkgdGltZSBhbmQgaW4gYW55IERpc3BsYXlTdGF0ZSwgYnV0IGFsbAorICAgICAqIGJ1ZmZlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkIGJlZm9yZSB0aGUgSUV2c0Rpc3BsYXkgaW50ZXJmYWNlIGlzIGRlc3Ryb3llZC4KKyAgICAgKi8KKyAgICByZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KEJ1ZmZlckRlc2MgYnVmZmVyKSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMTkzZDAKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CitpbXBvcnQgSUV2c0NhbWVyYTsKK2ltcG9ydCBJRXZzRGlzcGxheTsKKworCisvKioKKyAqIFByb3ZpZGVzIHRoZSBtZWNoYW5pc20gZm9yIEVWUyBjYW1lcmEgZGlzY292ZXJ5CisgKi8KK2ludGVyZmFjZSBJRXZzRW51bWVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgRVZTIGNhbWVyYXMgYXZhaWxhYmxlIHRvIHRoZSBzeXN0ZW0KKyAgICAgKi8KKyAgICBnZXRDYW1lcmFMaXN0KCkgZ2VuZXJhdGVzICh2ZWM8Q2FtZXJhRGVzYz4gY2FtZXJhcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElFdnNDYW1lcmEgYXNzb2NpYXRlZCB3aXRoIGEgY2FtZXJhSWQgZnJvbSBhIENhbWVyYURlc2MKKyAgICAgKgorICAgICAqIEdpdmVuIGEgY2FtZXJhJ3MgdW5pcXVlIGNhbWVyYUlkIGZyb20gQ2FtZXJhRGVzYywgcmV0dXJucyB0aGUKKyAgICAgKiBJRXZzQ2FtZXJhIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjYW1lcmEuIFdoZW4KKyAgICAgKiBkb25lIHVzaW5nIHRoZSBjYW1lcmEsIHRoZSBjYWxsZXIgbWF5IHJlbGVhc2UgaXQgYnkgY2FsbGluZyBjbG9zZUNhbWVyYSgpLgorICAgICAqIE5vdGU6IFJlbGlhbmNlIG9uIHRoZSBzcDw+IGdvaW5nIG91dCBvZiBzY29wZSBpcyBub3QgcmVjb21tZW5kZWQKKyAgICAgKiBiZWNhdXNlIHRoZSByZXNvdXJjZXMgbWF5IG5vdCBiZSByZWxlYXNlZCByaWdodCBhd2F5IGR1ZSB0byBhc3luY2hyb25vcworICAgICAqIGJlaGF2aW9yIGluIHRoZSBoYXJkd2FyZSBiaW5kZXIgKHJlZiBiLzM2MTIyNjM1KS4KKyAgICAgKi8KKyAgICBvcGVuQ2FtZXJhKHN0cmluZyBjYW1lcmFJZCkgZ2VuZXJhdGVzIChJRXZzQ2FtZXJhIGNhckNhbWVyYSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNwZWNpZmllZCBJRXZzQ2FtZXJhIGludGVyZmFjZSBhcyBubyBsb25nZXIgaW4gdXNlCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBJRXZzQ2FtZXJhIG9iamVjdCBpcyBubyBsb25nZXIgcmVxdWlyZWQsIGl0IG11c3QgYmUgcmVsZWFzZWQuCisgICAgICogTk9URTogVmlkZW8gc3RyZWFtaW5nIG11c3QgYmUgY2xlYW5seSBzdG9wcGVkIGJlZm9yZSBtYWtpbmcgdGhpcyBjYWxsLgorICAgICAqLworICAgIGNsb3NlQ2FtZXJhKElFdnNDYW1lcmEgY2FyQ2FtZXJhKTsKKworCisgICAgLyoqCisgICAgICogR2V0IGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gSUV2c0Rpc3BsYXkgZm9yIHRoZSBzeXN0ZW0KKyAgICAgKgorICAgICAqIFRoZXJlIGNhbiBiZSBhdCBtb3N0IG9uZSBFVlMgZGlzcGxheSBvYmplY3QgZm9yIHRoZSBzeXN0ZW0gYW5kIHRoaXMgZnVuY3Rpb24KKyAgICAgKiByZXF1ZXN0cyBhY2Nlc3MgdG8gaXQuIElmIHRoZSBFVlMgZGlzcGxheSBpcyBub3QgYXZhaWxhYmxlIG9yIGlzIGFscmVhZHkgaW4gdXNlLAorICAgICAqIGEgbnVsbCBwb2ludGVyIGlzIHJldHVybmVkLgorICAgICAqIFdoZW4gZG9uZSB1c2luZyB0aGUgZGlzcGxheSwgdGhlIGNhbGxlciBtYXkgcmVsZWFzZSBpdCBieSBjYWxsaW5nIGNsb3NlRGlzcGxheSgpLgorICAgICAqIFRPRE8oYi8zNjEyMjYzNSkgUmVsaWFuY2Ugb24gdGhlIHNwPD4gZ29pbmcgb3V0IG9mIHNjb3BlIGlzIG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlIHRoZQorICAgICAqIHJlc291cmNlcyBtYXkgbm90IGJlIHJlbGVhc2VkIHJpZ2h0IGF3YXkgZHVlIHRvIGFzeW5jaHJvbm9zIGJlaGF2aW9yIGluIHRoZSBoYXJkd2FyZSBiaW5kZXIuCisgICAgICovCisgICAgb3BlbkRpc3BsYXkoKSBnZW5lcmF0ZXMgKElFdnNEaXNwbGF5IGRpc3BsYXkpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgSUV2c0Rpc3BsYXkgaW50ZXJmYWNlIGFzIG5vIGxvbmdlciBpbiB1c2UKKyAgICAgKgorICAgICAqIFdoZW4gdGhlIElFdnNEaXNwbGF5IG9iamVjdCBpcyBubyBsb25nZXIgcmVxdWlyZWQsIGl0IG11c3QgYmUgcmVsZWFzZWQuCisgICAgICogTk9URTogQWxsIGJ1ZmZlcnMgbXVzdCBoYXZlIGJlZW4gcmV0dXJuZWQgdG8gdGhlIGRpc3BsYXkgYmVmb3JlIG1ha2luZyB0aGlzIGNhbGwuCisgICAgICovCisgICAgY2xvc2VEaXNwbGF5KElFdnNEaXNwbGF5IGRpc3BsYXkpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJlcXVlc3RzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICoKKyAgICAgKiBJZiB0aGVyZSBpcyBubyBvcGVuIGRpc3BsYXksIHRoaXMgcmV0dXJucyBEaXNwbGF5U3RhdGU6Ok5PVF9PUEVOLiBvdGhlcndpc2UsIGl0IHJldHVybnMKKyAgICAgKiB0aGUgYWN0dWFsIHN0YXRlIG9mIHRoZSBhY3RpdmUgZGlzcGxheS4gIFRoaXMgY2FsbCBpcyByZXBsaWNhdGVkIG9uIHRoZSBJRXZzRW51bWVyYXRvcgorICAgICAqIGludGVyZmFjZSBpbiBvcmRlciB0byBhbGxvdyBzZWNvbmRhcnkgY2xpZW50cyB0byBtb25pdG9yIHRoZSBzdGF0ZSBvZiB0aGUgRVZTIGRpc3BsYXkKKyAgICAgKiB3aXRob3V0IGFjcXVpcmluZyBleGNsdXNpdmUgb3duZXJzaGlwIG9mIHRoZSBkaXNwbGF5LgorICAgICAqLworICAgIGdldERpc3BsYXlTdGF0ZSgpIGdlbmVyYXRlcyAoRGlzcGxheVN0YXRlIHN0YXRlKTsKK307CisKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzRlODYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzEgQEAKK2NjX2JpbmFyeSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWworICAgICAgICAic2VydmljZS5jcHAiLAorICAgICAgICAiRXZzQ2FtZXJhLmNwcCIsCisgICAgICAgICJFdnNFbnVtZXJhdG9yLmNwcCIsCisgICAgICAgICJFdnNEaXNwbGF5LmNwcCIKKyAgICBdLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZS5yYyJdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICAgICAgImxpYnVpIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliYmluZGVyIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKworICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzQ2FtZXJhLmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0NhbWVyYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA3ODJlYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0NhbWVyYS5jcHAKQEAgLTAsMCArMSw1MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlICJFdnNDYW1lcmEuaCIKKyNpbmNsdWRlICJFdnNFbnVtZXJhdG9yLmgiCisKKyNpbmNsdWRlIDx1aS9HcmFwaGljQnVmZmVyQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlck1hcHBlci5oPgorCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgZXZzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworLy8gU3BlY2lhbCBjYW1lcmEgbmFtZXMgZm9yIHdoaWNoIHdlJ2xsIGluaXRpYWxpemUgYWx0ZXJuYXRlIHRlc3QgZGF0YQorY29uc3QgY2hhciBFdnNDYW1lcmE6OmtDYW1lcmFOYW1lX0JhY2t1cFtdICAgID0gImJhY2t1cCI7CisKKworLy8gQXJiaXRyYXJ5IGxpbWl0IG9uIG51bWJlciBvZiBncmFwaGljcyBidWZmZXJzIGFsbG93ZWQgdG8gYmUgYWxsb2NhdGVkCisvLyBTYWZlZ3VhcmRzIGFnYWluc3QgdW5yZWFzb25hYmxlIHJlc291cmNlIGNvbnN1bXB0aW9uIGFuZCBwcm92aWRlcyBhIHRlc3RhYmxlIGxpbWl0Citjb25zdCB1bnNpZ25lZCBNQVhfQlVGRkVSU19JTl9GTElHSFQgPSAxMDA7CisKKworRXZzQ2FtZXJhOjpFdnNDYW1lcmEoY29uc3QgY2hhciAqaWQpIDoKKyAgICAgICAgbUZyYW1lc0FsbG93ZWQoMCksCisgICAgICAgIG1GcmFtZXNJblVzZSgwKSwKKyAgICAgICAgbVN0cmVhbVN0YXRlKFNUT1BQRUQpIHsKKworICAgIEFMT0dEKCJFdnNDYW1lcmEgaW5zdGFudGlhdGVkIik7CisKKyAgICBtRGVzY3JpcHRpb24uY2FtZXJhSWQgPSBpZDsKKworICAgIC8vIFNldCB1cCBkdW1teSBkYXRhIGZvciB0ZXN0aW5nCisgICAgaWYgKG1EZXNjcmlwdGlvbi5jYW1lcmFJZCA9PSBrQ2FtZXJhTmFtZV9CYWNrdXApIHsKKyAgICAgICAgbVdpZHRoICA9IDY0MDsgICAgICAgICAgLy8gZnVsbCBOVFNDL1ZHQQorICAgICAgICBtSGVpZ2h0ID0gNDgwOyAgICAgICAgICAvLyBmdWxsIE5UU0MvVkdBCisgICAgICAgIG1EZXNjcmlwdGlvbi52ZW5kb3JGbGFncyA9IDB4RkZGRkZGRkY7ICAgLy8gQXJiaXRyYXJ5IHZhbHVlCisgICAgfSBlbHNlIHsKKyAgICAgICAgbVdpZHRoICA9IDMyMDsgICAgICAgICAgLy8gMS8yIE5UU0MvVkdBCisgICAgICAgIG1IZWlnaHQgPSAyNDA7ICAgICAgICAgIC8vIDEvMiBOVFNDL1ZHQQorICAgIH0KKworICAgIG1Gb3JtYXQgPSBIQUxfUElYRUxfRk9STUFUX1JHQkFfODg4ODsKKyAgICBtVXNhZ2UgID0gR1JBTExPQ19VU0FHRV9IV19URVhUVVJFIHwgR1JBTExPQ19VU0FHRV9IV19DQU1FUkFfV1JJVEUgfAorICAgICAgICAgICAgICBHUkFMTE9DX1VTQUdFX1NXX1JFQURfUkFSRUxZIHwgR1JBTExPQ19VU0FHRV9TV19XUklURV9SQVJFTFk7Cit9CisKKworRXZzQ2FtZXJhOjp+RXZzQ2FtZXJhKCkgeworICAgIEFMT0dEKCJFdnNDYW1lcmEgYmVpbmcgZGVzdHJveWVkIik7CisgICAgZm9yY2VTaHV0ZG93bigpOworfQorCisKKy8vCisvLyBUaGlzIGdldHMgY2FsbGVkIGlmIGFub3RoZXIgY2FsbGVyICJzdGVhbHMiIG93bmVyc2hpcCBvZiB0aGUgY2FtZXJhCisvLwordm9pZCBFdnNDYW1lcmE6OmZvcmNlU2h1dGRvd24oKQoreworICAgIEFMT0dEKCJFdnNDYW1lcmEgZm9yY2VTaHV0ZG93biIpOworCisgICAgLy8gTWFrZSBzdXJlIG91ciBvdXRwdXQgc3RyZWFtIGlzIGNsZWFuZWQgdXAKKyAgICAvLyAoSXQgcmVhbGx5IHNob3VsZCBiZSBhbHJlYWR5KQorICAgIHN0b3BWaWRlb1N0cmVhbSgpOworCisgICAgLy8gQ2xhaW0gdGhlIGxvY2sgd2hpbGUgd2Ugd29yayBvbiBpbnRlcm5hbCBzdGF0ZQorICAgIHN0ZDo6bG9ja19ndWFyZCA8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICAvLyBEcm9wIGFsbCB0aGUgZ3JhcGhpY3MgYnVmZmVycyB3ZSd2ZSBiZWVuIHVzaW5nCisgICAgaWYgKG1CdWZmZXJzLnNpemUoKSA+IDApIHsKKyAgICAgICAgR3JhcGhpY0J1ZmZlckFsbG9jYXRvciYgYWxsb2MoR3JhcGhpY0J1ZmZlckFsbG9jYXRvcjo6Z2V0KCkpOworICAgICAgICBmb3IgKGF1dG8mJiByZWMgOiBtQnVmZmVycykgeworICAgICAgICAgICAgaWYgKHJlYy5pblVzZSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciAtIHJlbGVhc2luZyBidWZmZXIgZGVzcGl0ZSByZW1vdGUgb3duZXJzaGlwIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhbGxvYy5mcmVlKHJlYy5oYW5kbGUpOworICAgICAgICAgICAgcmVjLmhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgbUJ1ZmZlcnMuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvLyBQdXQgdGhpcyBvYmplY3QgaW50byBhbiB1bnJlY292ZXJhYmxlIGVycm9yIHN0YXRlIHNpbmNlIHNvbWVib2R5IGVsc2UKKyAgICAvLyBpcyBnb2luZyB0byBvd24gdGhlIHVuZGVybHlpbmcgY2FtZXJhIG5vdworICAgIG1TdHJlYW1TdGF0ZSA9IERFQUQ7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUV2c0NhbWVyYSBmb2xsb3cuCitSZXR1cm48dm9pZD4gRXZzQ2FtZXJhOjpnZXRDYW1lcmFJbmZvKGdldENhbWVyYUluZm9fY2IgX2hpZGxfY2IpIHsKKyAgICBBTE9HRCgiZ2V0Q2FtZXJhSW5mbyIpOworCisgICAgLy8gU2VuZCBiYWNrIG91ciBzZWxmIGRlc2NyaXB0aW9uCisgICAgX2hpZGxfY2IobURlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjxFdnNSZXN1bHQ+IEV2c0NhbWVyYTo6c2V0TWF4RnJhbWVzSW5GbGlnaHQodWludDMyX3QgYnVmZmVyQ291bnQpIHsKKyAgICBBTE9HRCgic2V0TWF4RnJhbWVzSW5GbGlnaHQiKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICAvLyBJZiB3ZSd2ZSBiZWVuIGRpc3BsYWNlZCBieSBhbm90aGVyIG93bmVyIG9mIHRoZSBjYW1lcmEsIHRoZW4gd2UgY2FuJ3QgZG8gYW55dGhpbmcgZWxzZQorICAgIGlmIChtU3RyZWFtU3RhdGUgPT0gREVBRCkgeworICAgICAgICBBTE9HRSgiaWdub3Jpbmcgc2V0TWF4RnJhbWVzSW5GbGlnaHQgY2FsbCB3aGVuIGNhbWVyYSBoYXMgYmVlbiBsb3N0LiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisKKyAgICAvLyBXZSBjYW5ub3QgZnVuY3Rpb24gd2l0aG91dCBhdCBsZWFzdCBvbmUgdmlkZW8gYnVmZmVyIHRvIHNlbmQgZGF0YQorICAgIGlmIChidWZmZXJDb3VudCA8IDEpIHsKKyAgICAgICAgQUxPR0UoIklnbm9yaW5nIHNldE1heEZyYW1lc0luRmxpZ2h0IHdpdGggbGVzcyB0aGFuIG9uZSBidWZmZXIgcmVxdWVzdGVkIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OklOVkFMSURfQVJHOworICAgIH0KKworICAgIC8vIFVwZGF0ZSBvdXIgaW50ZXJuYWwgc3RhdGUKKyAgICBpZiAoc2V0QXZhaWxhYmxlRnJhbWVzX0xvY2tlZChidWZmZXJDb3VudCkpIHsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T0s7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6QlVGRkVSX05PVF9BVkFJTEFCTEU7CisgICAgfQorfQorCisKK1JldHVybjxFdnNSZXN1bHQ+IEV2c0NhbWVyYTo6c3RhcnRWaWRlb1N0cmVhbShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNDYW1lcmFTdHJlYW0+JiBzdHJlYW0pICB7CisgICAgQUxPR0QoInN0YXJ0VmlkZW9TdHJlYW0iKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICAvLyBJZiB3ZSd2ZSBiZWVuIGRpc3BsYWNlZCBieSBhbm90aGVyIG93bmVyIG9mIHRoZSBjYW1lcmEsIHRoZW4gd2UgY2FuJ3QgZG8gYW55dGhpbmcgZWxzZQorICAgIGlmIChtU3RyZWFtU3RhdGUgPT0gREVBRCkgeworICAgICAgICBBTE9HRSgiaWdub3Jpbmcgc3RhcnRWaWRlb1N0cmVhbSBjYWxsIHdoZW4gY2FtZXJhIGhhcyBiZWVuIGxvc3QuIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9XTkVSU0hJUF9MT1NUOworICAgIH0KKyAgICBpZiAobVN0cmVhbVN0YXRlICE9IFNUT1BQRUQpIHsKKyAgICAgICAgQUxPR0UoImlnbm9yaW5nIHN0YXJ0VmlkZW9TdHJlYW0gY2FsbCB3aGVuIGEgc3RyZWFtIGlzIGFscmVhZHkgcnVubmluZy4iKTsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6U1RSRUFNX0FMUkVBRFlfUlVOTklORzsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUgY2xpZW50IG5ldmVyIGluZGljYXRlZCBvdGhlcndpc2UsIGNvbmZpZ3VyZSBvdXJzZWx2ZXMgZm9yIGEgc2luZ2xlIHN0cmVhbWluZyBidWZmZXIKKyAgICBpZiAobUZyYW1lc0FsbG93ZWQgPCAxKSB7CisgICAgICAgIGlmICghc2V0QXZhaWxhYmxlRnJhbWVzX0xvY2tlZCgxKSkgeworICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSB3ZSBjb3VsZG4ndCBnZXQgYSBncmFwaGljcyBidWZmZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OkJVRkZFUl9OT1RfQVZBSUxBQkxFOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gUmVjb3JkIHRoZSB1c2VyJ3MgY2FsbGJhY2sgZm9yIHVzZSB3aGVuIHdlIGhhdmUgYSBmcmFtZSByZWFkeQorICAgIG1TdHJlYW0gPSBzdHJlYW07CisKKyAgICAvLyBTdGFydCB0aGUgZnJhbWUgZ2VuZXJhdGlvbiB0aHJlYWQKKyAgICBtU3RyZWFtU3RhdGUgPSBSVU5OSU5HOworICAgIG1DYXB0dXJlVGhyZWFkID0gc3RkOjp0aHJlYWQoW3RoaXNdKCl7IGdlbmVyYXRlRnJhbWVzKCk7IH0pOworCisgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T0s7Cit9CisKKworUmV0dXJuPHZvaWQ+IEV2c0NhbWVyYTo6ZG9uZVdpdGhGcmFtZShjb25zdCBCdWZmZXJEZXNjJiBidWZmZXIpICB7CisgICAgQUxPR0QoImRvbmVXaXRoRnJhbWUiKTsKKyAgICB7ICAvLyBsb2NrIGNvbnRleHQKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkIDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgICAgICBpZiAoYnVmZmVyLm1lbUhhbmRsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiaWdub3JpbmcgZG9uZVdpdGhGcmFtZSBjYWxsZWQgd2l0aCBudWxsIGhhbmRsZSIpOworICAgICAgICB9IGVsc2UgaWYgKGJ1ZmZlci5idWZmZXJJZCA+PSBtQnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJpZ25vcmluZyBkb25lV2l0aEZyYW1lIGNhbGxlZCB3aXRoIGludmFsaWQgYnVmZmVySWQgJWQgKG1heCBpcyAlenUpIiwKKyAgICAgICAgICAgICAgICAgIGJ1ZmZlci5idWZmZXJJZCwgbUJ1ZmZlcnMuc2l6ZSgpLTEpOworICAgICAgICB9IGVsc2UgaWYgKCFtQnVmZmVyc1tidWZmZXIuYnVmZmVySWRdLmluVXNlKSB7CisgICAgICAgICAgICBBTE9HRSgiaWdub3JpbmcgZG9uZVdpdGhGcmFtZSBjYWxsZWQgb24gZnJhbWUgJWQgd2hpY2ggaXMgYWxyZWFkeSBmcmVlIiwKKyAgICAgICAgICAgICAgICAgIGJ1ZmZlci5idWZmZXJJZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBNYXJrIHRoZSBmcmFtZSBhcyBhdmFpbGFibGUKKyAgICAgICAgICAgIG1CdWZmZXJzW2J1ZmZlci5idWZmZXJJZF0uaW5Vc2UgPSBmYWxzZTsKKyAgICAgICAgICAgIG1GcmFtZXNJblVzZS0tOworCisgICAgICAgICAgICAvLyBJZiB0aGlzIGZyYW1lJ3MgaW5kZXggaXMgaGlnaCBpbiB0aGUgYXJyYXksIHRyeSB0byBtb3ZlIGl0IGRvd24KKyAgICAgICAgICAgIC8vIHRvIGltcHJvdmUgbG9jYWxpdHkgYWZ0ZXIgbUZyYW1lc0FsbG93ZWQgaGFzIGJlZW4gcmVkdWNlZC4KKyAgICAgICAgICAgIGlmIChidWZmZXIuYnVmZmVySWQgPj0gbUZyYW1lc0FsbG93ZWQpIHsKKyAgICAgICAgICAgICAgICAvLyBGaW5kIGFuIGVtcHR5IHNsb3QgbG93ZXIgaW4gdGhlIGFycmF5ICh3aGljaCBzaG91bGQgYWx3YXlzIGV4aXN0IGluIHRoaXMgY2FzZSkKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mJiByZWMgOiBtQnVmZmVycykgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVjLmhhbmRsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWMuaGFuZGxlID0gbUJ1ZmZlcnNbYnVmZmVyLmJ1ZmZlcklkXS5oYW5kbGU7CisgICAgICAgICAgICAgICAgICAgICAgICBtQnVmZmVyc1tidWZmZXIuYnVmZmVySWRdLmhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworUmV0dXJuPHZvaWQ+IEV2c0NhbWVyYTo6c3RvcFZpZGVvU3RyZWFtKCkgIHsKKyAgICBBTE9HRCgic3RvcFZpZGVvU3RyZWFtIik7CisgICAgc3RkOjp1bmlxdWVfbG9jayA8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICBpZiAobVN0cmVhbVN0YXRlID09IFJVTk5JTkcpIHsKKyAgICAgICAgLy8gVGVsbCB0aGUgR2VuZXJhdGVGcmFtZXMgbG9vcCB3ZSB3YW50IGl0IHRvIHN0b3AKKyAgICAgICAgbVN0cmVhbVN0YXRlID0gU1RPUFBJTkc7CisKKyAgICAgICAgLy8gQmxvY2sgb3V0c2lkZSB0aGUgbXV0ZXggdW50aWwgdGhlICJzdG9wIiBmbGFnIGhhcyBiZWVuIGFja25vd2xlZGdlZAorICAgICAgICAvLyBXZSB3b24ndCBzZW5kIGFueSBtb3JlIGZyYW1lcywgYnV0IHRoZSBjbGllbnQgbWlnaHQgc3RpbGwgZ2V0IHNvbWUgYWxyZWFkeSBpbiBmbGlnaHQKKyAgICAgICAgQUxPR0QoIldhaXRpbmcgZm9yIHN0cmVhbSB0aHJlYWQgdG8gZW5kLi4uIik7CisgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgIG1DYXB0dXJlVGhyZWFkLmpvaW4oKTsKKyAgICAgICAgbG9jay5sb2NrKCk7CisKKyAgICAgICAgbVN0cmVhbVN0YXRlID0gU1RPUFBFRDsKKyAgICAgICAgbVN0cmVhbSA9IG51bGxwdHI7CisgICAgICAgIEFMT0dEKCJTdHJlYW0gbWFya2VkIFNUT1BQRUQuIik7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitSZXR1cm48aW50MzJfdD4gRXZzQ2FtZXJhOjpnZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllcikgIHsKKyAgICBBTE9HRCgiZ2V0RXh0ZW5kZWRJbmZvIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gRm9yIGFueSBzaW5nbGUgZGlnaXQgdmFsdWUsIHJldHVybiB0aGUgaW5kZXggaXRzZWxmIGFzIGEgdGVzdCB2YWx1ZQorICAgIGlmIChvcGFxdWVJZGVudGlmaWVyIDw9IDkpIHsKKyAgICAgICAgcmV0dXJuIG9wYXF1ZUlkZW50aWZpZXI7CisgICAgfQorCisgICAgLy8gUmV0dXJuIHplcm8gYnkgZGVmYXVsdCBhcyByZXF1aXJlZCBieSB0aGUgc3BlYworICAgIHJldHVybiAwOworfQorCisKK1JldHVybjxFdnNSZXN1bHQ+IEV2c0NhbWVyYTo6c2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IC8qb3BhcXVlSWRlbnRpZmllciovLCBpbnQzMl90IC8qb3BhcXVlVmFsdWUqLykgIHsKKyAgICBBTE9HRCgic2V0RXh0ZW5kZWRJbmZvIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgY2FtZXJhLCB0aGVuIHdlIGNhbid0IGRvIGFueXRoaW5nIGVsc2UKKyAgICBpZiAobVN0cmVhbVN0YXRlID09IERFQUQpIHsKKyAgICAgICAgQUxPR0UoImlnbm9yaW5nIHNldEV4dGVuZGVkSW5mbyBjYWxsIHdoZW4gY2FtZXJhIGhhcyBiZWVuIGxvc3QuIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9XTkVSU0hJUF9MT1NUOworICAgIH0KKworICAgIC8vIFdlIGRvbid0IHN0b3JlIGFueSBkZXZpY2Ugc3BlY2lmaWMgaW5mb3JtYXRpb24gaW4gdGhpcyBpbXBsZW1lbnRhdGlvbgorICAgIHJldHVybiBFdnNSZXN1bHQ6OklOVkFMSURfQVJHOworfQorCisKK2Jvb2wgRXZzQ2FtZXJhOjpzZXRBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIGJ1ZmZlckNvdW50KSB7CisgICAgaWYgKGJ1ZmZlckNvdW50IDwgMSkgeworICAgICAgICBBTE9HRSgiSWdub3JpbmcgcmVxdWVzdCB0byBzZXQgYnVmZmVyIGNvdW50IHRvIHplcm8iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoYnVmZmVyQ291bnQgPiBNQVhfQlVGRkVSU19JTl9GTElHSFQpIHsKKyAgICAgICAgQUxPR0UoIlJlamVjdGluZyBidWZmZXIgcmVxdWVzdCBpbiBleGNlc3Mgb2YgaW50ZXJuYWwgbGltaXQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIElzIGFuIGluY3JlYXNlIHJlcXVpcmVkPworICAgIGlmIChtRnJhbWVzQWxsb3dlZCA8IGJ1ZmZlckNvdW50KSB7CisgICAgICAgIC8vIEFuIGluY3JlYXNlIGlzIHJlcXVpcmVkCisgICAgICAgIHVuc2lnbmVkIG5lZWRlZCA9IGJ1ZmZlckNvdW50IC0gbUZyYW1lc0FsbG93ZWQ7CisgICAgICAgIEFMT0dJKCJBbGxvY2F0aW5nICVkIGJ1ZmZlcnMgZm9yIGNhbWVyYSBmcmFtZXMiLCBuZWVkZWQpOworCisgICAgICAgIHVuc2lnbmVkIGFkZGVkID0gaW5jcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKG5lZWRlZCk7CisgICAgICAgIGlmIChhZGRlZCAhPSBuZWVkZWQpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBhZGQgYWxsIHRoZSBmcmFtZXMgd2UgbmVlZGVkLCB0aGVuIHJvbGwgYmFjayB0byB0aGUgcHJldmlvdXMgc3RhdGUKKyAgICAgICAgICAgIEFMT0dFKCJSb2xsaW5nIGJhY2sgdG8gcHJldmlvdXMgZnJhbWUgcXVldWUgc2l6ZSIpOworICAgICAgICAgICAgZGVjcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKGFkZGVkKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobUZyYW1lc0FsbG93ZWQgPiBidWZmZXJDb3VudCkgeworICAgICAgICAvLyBBIGRlY3JlYXNlIGlzIHJlcXVpcmVkCisgICAgICAgIHVuc2lnbmVkIGZyYW1lc1RvUmVsZWFzZSA9IG1GcmFtZXNBbGxvd2VkIC0gYnVmZmVyQ291bnQ7CisgICAgICAgIEFMT0dJKCJSZXR1cm5pbmcgJWQgY2FtZXJhIGZyYW1lIGJ1ZmZlcnMiLCBmcmFtZXNUb1JlbGVhc2UpOworCisgICAgICAgIHVuc2lnbmVkIHJlbGVhc2VkID0gZGVjcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKGZyYW1lc1RvUmVsZWFzZSk7CisgICAgICAgIGlmIChyZWxlYXNlZCAhPSBmcmFtZXNUb1JlbGVhc2UpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiB3aXRoIGEgcHJvcGVybHkgYmVoYXZpbmcgY2xpZW50IGJlY2F1c2UgdGhlIGNsaWVudAorICAgICAgICAgICAgLy8gc2hvdWxkIG9ubHkgbWFrZSB0aGlzIGNhbGwgYWZ0ZXIgcmV0dXJuaW5nIHN1ZmZpY2llbnQgb3V0c3RhbmRpbmcgYnVmZmVycworICAgICAgICAgICAgLy8gdG8gYWxsb3cgYSBjbGVhbiByZXNpemUuCisgICAgICAgICAgICBBTE9HRSgiQnVmZmVyIHF1ZXVlIHNocmluayBmYWlsZWQgLS0gdG9vIG1hbnkgYnVmZmVycyBjdXJyZW50bHkgaW4gdXNlPyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKwordW5zaWduZWQgRXZzQ2FtZXJhOjppbmNyZWFzZUF2YWlsYWJsZUZyYW1lc19Mb2NrZWQodW5zaWduZWQgbnVtVG9BZGQpIHsKKyAgICAvLyBBY3F1aXJlIHRoZSBncmFwaGljcyBidWZmZXIgYWxsb2NhdG9yCisgICAgR3JhcGhpY0J1ZmZlckFsbG9jYXRvciAmYWxsb2MoR3JhcGhpY0J1ZmZlckFsbG9jYXRvcjo6Z2V0KCkpOworCisgICAgdW5zaWduZWQgYWRkZWQgPSAwOworCisgICAgd2hpbGUgKGFkZGVkIDwgbnVtVG9BZGQpIHsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IG1lbUhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgIHN0YXR1c190IHJlc3VsdCA9IGFsbG9jLmFsbG9jYXRlKG1XaWR0aCwgbUhlaWdodCwgbUZvcm1hdCwgMSwgbVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtSGFuZGxlLCAmbVN0cmlkZSwgMCwgIkV2c0NhbWVyYSIpOworICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7CisgICAgICAgICAgICBBTE9HRSgiRXJyb3IgJWQgYWxsb2NhdGluZyAlZCB4ICVkIGdyYXBoaWNzIGJ1ZmZlciIsIHJlc3VsdCwgbVdpZHRoLCBtSGVpZ2h0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmICghbWVtSGFuZGxlKSB7CisgICAgICAgICAgICBBTE9HRSgiV2UgZGlkbid0IGdldCBhIGJ1ZmZlciBoYW5kbGUgYmFjayBmcm9tIHRoZSBhbGxvY2F0b3IiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCBhIHBsYWNlIHRvIHN0b3JlIHRoZSBuZXcgYnVmZmVyCisgICAgICAgIGJvb2wgc3RvcmVkID0gZmFsc2U7CisgICAgICAgIGZvciAoYXV0byYmIHJlYyA6IG1CdWZmZXJzKSB7CisgICAgICAgICAgICBpZiAocmVjLmhhbmRsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgLy8gVXNlIHRoaXMgZXhpc3RpbmcgZW50cnkKKyAgICAgICAgICAgICAgICByZWMuaGFuZGxlID0gbWVtSGFuZGxlOworICAgICAgICAgICAgICAgIHJlYy5pblVzZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIHN0b3JlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzdG9yZWQpIHsKKyAgICAgICAgICAgIC8vIEFkZCBhIEJ1ZmZlclJlY29yZCB3cmFwcGluZyB0aGlzIGhhbmRsZSB0byBvdXIgc2V0IG9mIGF2YWlsYWJsZSBidWZmZXJzCisgICAgICAgICAgICBtQnVmZmVycy5lbXBsYWNlX2JhY2sobWVtSGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIG1GcmFtZXNBbGxvd2VkKys7CisgICAgICAgIGFkZGVkKys7CisgICAgfQorCisgICAgcmV0dXJuIGFkZGVkOworfQorCisKK3Vuc2lnbmVkIEV2c0NhbWVyYTo6ZGVjcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIG51bVRvUmVtb3ZlKSB7CisgICAgLy8gQWNxdWlyZSB0aGUgZ3JhcGhpY3MgYnVmZmVyIGFsbG9jYXRvcgorICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3IgJmFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKworICAgIHVuc2lnbmVkIHJlbW92ZWQgPSAwOworCisgICAgZm9yIChhdXRvJiYgcmVjIDogbUJ1ZmZlcnMpIHsKKyAgICAgICAgLy8gSXMgdGhpcyByZWNvcmQgbm90IGluIHVzZSwgYnV0IGhvbGRpbmcgYSBidWZmZXIgdGhhdCB3ZSBjYW4gZnJlZT8KKyAgICAgICAgaWYgKChyZWMuaW5Vc2UgPT0gZmFsc2UpICYmIChyZWMuaGFuZGxlICE9IG51bGxwdHIpKSB7CisgICAgICAgICAgICAvLyBSZWxlYXNlIGJ1ZmZlciBhbmQgdXBkYXRlIHRoZSByZWNvcmQgc28gd2UgY2FuIHJlY29nbml6ZSBpdCBhcyAiZW1wdHkiCisgICAgICAgICAgICBhbGxvYy5mcmVlKHJlYy5oYW5kbGUpOworICAgICAgICAgICAgcmVjLmhhbmRsZSA9IG51bGxwdHI7CisKKyAgICAgICAgICAgIG1GcmFtZXNBbGxvd2VkLS07CisgICAgICAgICAgICByZW1vdmVkKys7CisKKyAgICAgICAgICAgIGlmIChyZW1vdmVkID09IG51bVRvUmVtb3ZlKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmVtb3ZlZDsKK30KKworCisvLyBUaGlzIGlzIHRoZSBhc3luY2hyb25vdXMgZnJhbWUgZ2VuZXJhdGlvbiB0aHJlYWQgdGhhdCBydW5zIGluIHBhcmFsbGVsIHdpdGggdGhlCisvLyBtYWluIHNlcnZpbmcgdGhyZWFkLiAgVGhlcmUgaXMgb25lIGZvciBlYWNoIGFjdGl2ZSBjYW1lcmEgaW5zdGFuY2UuCit2b2lkIEV2c0NhbWVyYTo6Z2VuZXJhdGVGcmFtZXMoKSB7CisgICAgQUxPR0QoIkZyYW1lIGdlbmVyYXRpb24gbG9vcCBzdGFydGVkIik7CisKKyAgICB1bnNpZ25lZCBpZHg7CisKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBib29sIHRpbWVGb3JGcmFtZSA9IGZhbHNlOworICAgICAgICBuc2Vjc190IHN0YXJ0VGltZSA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKTsKKworICAgICAgICAvLyBMb2NrIHNjb3BlIGZvciB1cGRhdGluZyBzaGFyZWQgc3RhdGUKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgICAgICAgICBpZiAobVN0cmVhbVN0YXRlICE9IFJVTk5JTkcpIHsKKyAgICAgICAgICAgICAgICAvLyBCcmVhayBvdXQgb2Ygb3VyIG1haW4gdGhyZWFkIGxvb3AKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXJlIHdlIGFsbG93ZWQgdG8gaXNzdWUgYW5vdGhlciBidWZmZXI/CisgICAgICAgICAgICBpZiAobUZyYW1lc0luVXNlID49IG1GcmFtZXNBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgLy8gQ2FuJ3QgZG8gYW55dGhpbmcgcmlnaHQgbm93IC0tIHNraXAgdGhpcyBmcmFtZQorICAgICAgICAgICAgICAgIEFMT0dXKCJTa2lwcGVkIGEgZnJhbWUgYmVjYXVzZSB0b28gbWFueSBhcmUgaW4gZmxpZ2h0XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSWRlbnRpZnkgYW4gYXZhaWxhYmxlIGJ1ZmZlciB0byBmaWxsCisgICAgICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBtQnVmZmVycy5zaXplKCk7IGlkeCsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbUJ1ZmZlcnNbaWR4XS5pblVzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1CdWZmZXJzW2lkeF0uaGFuZGxlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3VuZCBhbiBhdmFpbGFibGUgcmVjb3JkLCBzbyBzdG9wIGxvb2tpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaWR4ID49IG1CdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2Ugd2UgYWxyZWFkeSBjaGVja2VkIG1GcmFtZXNJblVzZSB2cyBtRnJhbWVzQWxsb3dlZAorICAgICAgICAgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIGZpbmQgYW4gYXZhaWxhYmxlIGJ1ZmZlciBzbG90XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBtYWtlIHRoZSBmcmFtZSBidXN5CisgICAgICAgICAgICAgICAgICAgIG1CdWZmZXJzW2lkeF0uaW5Vc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBtRnJhbWVzSW5Vc2UrKzsKKyAgICAgICAgICAgICAgICAgICAgdGltZUZvckZyYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodGltZUZvckZyYW1lKSB7CisgICAgICAgICAgICAvLyBBc3NlbWJsZSB0aGUgYnVmZmVyIGRlc2NyaXB0aW9uIHdlJ2xsIHRyYW5zbWl0IGJlbG93CisgICAgICAgICAgICBCdWZmZXJEZXNjIGJ1ZmYgPSB7fTsKKyAgICAgICAgICAgIGJ1ZmYud2lkdGggICAgICA9IG1XaWR0aDsKKyAgICAgICAgICAgIGJ1ZmYuaGVpZ2h0ICAgICA9IG1IZWlnaHQ7CisgICAgICAgICAgICBidWZmLnN0cmlkZSAgICAgPSBtU3RyaWRlOworICAgICAgICAgICAgYnVmZi5mb3JtYXQgICAgID0gbUZvcm1hdDsKKyAgICAgICAgICAgIGJ1ZmYudXNhZ2UgICAgICA9IG1Vc2FnZTsKKyAgICAgICAgICAgIGJ1ZmYuYnVmZmVySWQgICA9IGlkeDsKKyAgICAgICAgICAgIGJ1ZmYubWVtSGFuZGxlICA9IG1CdWZmZXJzW2lkeF0uaGFuZGxlOworCisgICAgICAgICAgICAvLyBXcml0ZSB0ZXN0IGRhdGEgaW50byB0aGUgaW1hZ2UgYnVmZmVyCisgICAgICAgICAgICBmaWxsVGVzdEZyYW1lKGJ1ZmYpOworCisgICAgICAgICAgICAvLyBJc3N1ZSB0aGUgKGFzeW5jaHJvbm91cykgY2FsbGJhY2sgdG8gdGhlIGNsaWVudCAtLSBjYW4ndCBiZSBob2xkaW5nIHRoZSBsb2NrCisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG1TdHJlYW0tPmRlbGl2ZXJGcmFtZShidWZmKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0QoIkRlbGl2ZXJlZCAlcCBhcyBpZCAlZCIsIGJ1ZmYubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpLCBidWZmLmJ1ZmZlcklkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBjbGllbnQgZGllcyBhbmQgaXMgbGlrZWx5IHVucmVjb3ZlcmFibGUuCisgICAgICAgICAgICAgICAgLy8gVG8gYXZvaWQgY29uc3VtaW5nIHJlc291cmNlcyBnZW5lcmF0aW5nIGZhaWxpbmcgY2FsbHMsIHdlIHN0b3Agc2VuZGluZworICAgICAgICAgICAgICAgIC8vIGZyYW1lcy4gIE5vdGUsIGhvd2V2ZXIsIHRoYXQgdGhlIHN0cmVhbSByZW1haW5zIGluIHRoZSAiU1RSRUFNSU5HIiBzdGF0ZQorICAgICAgICAgICAgICAgIC8vIHVudGlsIGNsZWFuZWQgdXAgb24gdGhlIG1haW4gdGhyZWFkLgorICAgICAgICAgICAgICAgIEFMT0dFKCJGcmFtZSBkZWxpdmVyeSBjYWxsIGZhaWxlZCBpbiB0aGUgdHJhbnNwb3J0IGxheWVyLiIpOworCisgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UgZGlkbid0IGFjdHVhbGx5IGRlbGl2ZXIgaXQsIG1hcmsgdGhlIGZyYW1lIGFzIGF2YWlsYWJsZQorICAgICAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKyAgICAgICAgICAgICAgICBtQnVmZmVyc1tpZHhdLmluVXNlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbUZyYW1lc0luVXNlLS07CisKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGFyYml0cmFyaWx5IGNob29zZSB0byBnZW5lcmF0ZSBmcmFtZXMgYXQgMTIgZnBzIHRvIGVuc3VyZSB3ZSBwYXNzIHRoZSAxMGZwcyB0ZXN0IHJlcXVpcmVtZW50CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQga1RhcmdldEZyYW1lUmF0ZSA9IDEyOworICAgICAgICBzdGF0aWMgY29uc3QgbnNlY3NfdCBrVGFyZ2V0RnJhbWVUaW1lVXMgPSAxMDAwKjEwMDAgLyBrVGFyZ2V0RnJhbWVSYXRlOworICAgICAgICBjb25zdCBuc2Vjc190IG5vdyA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKTsKKyAgICAgICAgY29uc3QgbnNlY3NfdCB3b3JrVGltZVVzID0gKG5vdyAtIHN0YXJ0VGltZSkgLyAxMDAwOworICAgICAgICBjb25zdCBuc2Vjc190IHNsZWVwRHVyYXRpb25VcyA9IGtUYXJnZXRGcmFtZVRpbWVVcyAtIHdvcmtUaW1lVXM7CisgICAgICAgIGlmIChzbGVlcER1cmF0aW9uVXMgPiAwKSB7CisgICAgICAgICAgICB1c2xlZXAoc2xlZXBEdXJhdGlvblVzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElmIHdlJ3ZlIGJlZW4gYXNrZWQgdG8gc3RvcCwgc2VuZCBvbmUgbGFzdCBOVUxMIGZyYW1lIHRvIHNpZ25hbCB0aGUgYWN0dWFsIGVuZCBvZiBzdHJlYW0KKyAgICBCdWZmZXJEZXNjIG51bGxCdWZmID0ge307CisgICAgYXV0byByZXN1bHQgPSBtU3RyZWFtLT5kZWxpdmVyRnJhbWUobnVsbEJ1ZmYpOworICAgIGlmICghcmVzdWx0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiRXJyb3IgZGVsaXZlcmluZyBlbmQgb2Ygc3RyZWFtIG1hcmtlciIpOworICAgIH0KKworICAgIHJldHVybjsKK30KKworCit2b2lkIEV2c0NhbWVyYTo6ZmlsbFRlc3RGcmFtZShjb25zdCBCdWZmZXJEZXNjJiBidWZmKSB7CisgICAgLy8gTG9jayBvdXIgb3V0cHV0IGJ1ZmZlciBmb3Igd3JpdGluZworICAgIHVpbnQzMl90ICpwaXhlbHMgPSBudWxscHRyOworICAgIEdyYXBoaWNCdWZmZXJNYXBwZXIgJm1hcHBlciA9IEdyYXBoaWNCdWZmZXJNYXBwZXI6OmdldCgpOworICAgIG1hcHBlci5sb2NrKGJ1ZmYubWVtSGFuZGxlLAorICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfU1dfV1JJVEVfT0ZURU4gfCBHUkFMTE9DX1VTQUdFX1NXX1JFQURfTkVWRVIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6UmVjdChidWZmLndpZHRoLCBidWZmLmhlaWdodCksCisgICAgICAgICAgICAgICAgKHZvaWQgKiopICZwaXhlbHMpOworCisgICAgLy8gSWYgd2UgZmFpbGVkIHRvIGxvY2sgdGhlIHBpeGVsIGJ1ZmZlciwgd2UncmUgYWJvdXQgdG8gY3Jhc2gsIGJ1dCBsb2cgaXQgZmlyc3QKKyAgICBpZiAoIXBpeGVscykgeworICAgICAgICBBTE9HRSgiQ2FtZXJhIGZhaWxlZCB0byBnYWluIGFjY2VzcyB0byBpbWFnZSBidWZmZXIgZm9yIHdyaXRpbmciKTsKKyAgICB9CisKKyAgICAvLyBGaWxsIGluIHRoZSB0ZXN0IHBpeGVscworICAgIGZvciAodW5zaWduZWQgcm93ID0gMDsgcm93IDwgYnVmZi5oZWlnaHQ7IHJvdysrKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgY29sID0gMDsgY29sIDwgYnVmZi53aWR0aDsgY29sKyspIHsKKyAgICAgICAgICAgIC8vIEluZGV4IGludG8gdGhlIHJvdyB0byBjaGVjayB0aGUgcGl4ZWwgYXQgdGhpcyBjb2x1bW4uCisgICAgICAgICAgICAvLyBXZSBleHBlY3QgMHhGRiBpbiB0aGUgTFNCIGNoYW5uZWwsIGEgdmVydGljYWwgZ3JhZGllbnQgaW4gdGhlCisgICAgICAgICAgICAvLyBzZWNvbmQgY2hhbm5lbCwgYSBob3JpdHpvbnRhbCBncmFkaWVudCBpbiB0aGUgdGhpcmQgY2hhbm5lbCwgYW5kCisgICAgICAgICAgICAvLyAweEZGIGluIHRoZSBNU0IuCisgICAgICAgICAgICAvLyBUaGUgZXhjZXB0aW9uIGlzIHRoZSB2ZXJ5IGZpcnN0IDMyIGJpdHMgd2hpY2ggaXMgdXNlZCBmb3IgdGhlCisgICAgICAgICAgICAvLyB0aW1lIHZhcnlpbmcgZnJhbWUgc2lnbmF0dXJlIHRvIGF2b2lkIGdldHRpbmcgZm9vbGVkIGJ5IGEgc3RhdGljIGltYWdlLgorICAgICAgICAgICAgdWludDMyX3QgZXhwZWN0ZWRQaXhlbCA9IDB4RkYwMDAwRkYgICAgICAgICAgIHwgLy8gTVNCIGFuZCBMU0IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJvdyAmIDB4RkYpIDw8ICA4KSB8IC8vIHZlcnRpY2FsIGdyYWRpZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjb2wgJiAweEZGKSA8PCAxNik7ICAvLyBob3Jpem9udGFsIGdyYWRpZW50CisgICAgICAgICAgICBpZiAoKHJvdyB8IGNvbCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHN0YXRpYyB1aW50MzJfdCBzRnJhbWVUaWNrZXIgPSAwOworICAgICAgICAgICAgICAgIGV4cGVjdGVkUGl4ZWwgPSAoc0ZyYW1lVGlja2VyKSAmIDB4RkY7CisgICAgICAgICAgICAgICAgc0ZyYW1lVGlja2VyKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwaXhlbHNbY29sXSA9IGV4cGVjdGVkUGl4ZWw7CisgICAgICAgIH0KKyAgICAgICAgLy8gUG9pbnQgdG8gdGhlIG5leHQgcm93CisgICAgICAgIC8vIE5PVEU6ICBzdHJpZGUgcmV0cmlldmVkIGZyb20gZ3JhbGxvYyBpcyBpbiB1bml0cyBvZiBwaXhlbHMKKyAgICAgICAgcGl4ZWxzID0gcGl4ZWxzICsgYnVmZi5zdHJpZGU7CisgICAgfQorCisgICAgLy8gUmVsZWFzZSBvdXIgb3V0cHV0IGJ1ZmZlcgorICAgIG1hcHBlci51bmxvY2soYnVmZi5tZW1IYW5kbGUpOworfQorCisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBldnMKK30gLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuaCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0NhbWVyYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNmViMzkKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVVRPTU9USVZFX0VWU19WMV8wX0VWU0NBTUVSQV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmg+CisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlci5oPgorCisjaW5jbHVkZSA8dGhyZWFkPgorCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgZXZzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworLy8gRnJvbSBFdnNFbnVtZXJhdG9yLmgKK2NsYXNzIEV2c0VudW1lcmF0b3I7CisKKworY2xhc3MgRXZzQ2FtZXJhIDogcHVibGljIElFdnNDYW1lcmEgeworcHVibGljOgorICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNDYW1lcmEgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXRDYW1lcmFJbmZvKGdldENhbWVyYUluZm9fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm4gPEV2c1Jlc3VsdD4gc2V0TWF4RnJhbWVzSW5GbGlnaHQodWludDMyX3QgYnVmZmVyQ291bnQpIG92ZXJyaWRlOworICAgIFJldHVybiA8RXZzUmVzdWx0PiBzdGFydFZpZGVvU3RyZWFtKGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0NhbWVyYVN0cmVhbT4mIHN0cmVhbSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRvbmVXaXRoRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc3RvcFZpZGVvU3RyZWFtKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuIDxpbnQzMl90PiBnZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllcikgb3ZlcnJpZGU7CisgICAgUmV0dXJuIDxFdnNSZXN1bHQ+IHNldEV4dGVuZGVkSW5mbyh1aW50MzJfdCBvcGFxdWVJZGVudGlmaWVyLCBpbnQzMl90IG9wYXF1ZVZhbHVlKSBvdmVycmlkZTsKKworICAgIC8vIEltcGxlbWVudGF0aW9uIGRldGFpbHMKKyAgICBFdnNDYW1lcmEoY29uc3QgY2hhciAqaWQpOworICAgIHZpcnR1YWwgfkV2c0NhbWVyYSgpIG92ZXJyaWRlOworICAgIHZvaWQgZm9yY2VTaHV0ZG93bigpOyAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgaWYgYW5vdGhlciBjYWxsZXIgInN0ZWFscyIgb3duZXJzaGlwIG9mIHRoZSBjYW1lcmEKKworICAgIGNvbnN0IENhbWVyYURlc2MmIGdldERlc2MoKSB7IHJldHVybiBtRGVzY3JpcHRpb247IH07CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciBrQ2FtZXJhTmFtZV9CYWNrdXBbXTsKKworcHJpdmF0ZToKKyAgICAvLyBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCB3aGlsZSBtQWNjZXNzTG9jayBpcyBoZWxkCisgICAgYm9vbCBzZXRBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIGJ1ZmZlckNvdW50KTsKKyAgICB1bnNpZ25lZCBpbmNyZWFzZUF2YWlsYWJsZUZyYW1lc19Mb2NrZWQodW5zaWduZWQgbnVtVG9BZGQpOworICAgIHVuc2lnbmVkIGRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBudW1Ub1JlbW92ZSk7CisKKyAgICB2b2lkIGdlbmVyYXRlRnJhbWVzKCk7CisgICAgdm9pZCBmaWxsVGVzdEZyYW1lKGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmYpOworCisgICAgc3A8RXZzRW51bWVyYXRvcj4gbUVudW1lcmF0b3I7ICAvLyBUaGUgZW51bWVyYXRvciBvYmplY3QgdGhhdCBjcmVhdGVkIHRoaXMgY2FtZXJhCisKKyAgICBDYW1lcmFEZXNjIG1EZXNjcmlwdGlvbiA9IHt9OyAgIC8vIFRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgY2FtZXJhCisKKyAgICBzdGQ6OnRocmVhZCBtQ2FwdHVyZVRocmVhZDsgICAgIC8vIFRoZSB0aHJlYWQgd2UnbGwgdXNlIHRvIHN5bnRoZXNpemUgZnJhbWVzCisKKyAgICB1aW50MzJfdCBtV2lkdGggID0gMDsgICAgICAgLy8gSG9yaXpvbnRhbCBwaXhlbCBjb3VudCBpbiB0aGUgYnVmZmVycworICAgIHVpbnQzMl90IG1IZWlnaHQgPSAwOyAgICAgICAvLyBWZXJ0aWNhbCBwaXhlbCBjb3VudCBpbiB0aGUgYnVmZmVycworICAgIHVpbnQzMl90IG1Gb3JtYXQgPSAwOyAgICAgICAvLyBWYWx1ZXMgZnJvbSBhbmRyb2lkX3BpeGVsX2Zvcm1hdF90IFtUT0RPOiBZVVY/ICBMZWF2ZSBvcGFxdWU/XQorICAgIHVpbnQzMl90IG1Vc2FnZSAgPSAwOyAgICAgICAvLyBWYWx1ZXMgZnJvbSBmcm9tIEdyYWxsb2MuaAorICAgIHVpbnQzMl90IG1TdHJpZGUgPSAwOyAgICAgICAvLyBCeXRlcyBwZXIgbGluZSBpbiB0aGUgYnVmZmVycworCisgICAgc3AgPElFdnNDYW1lcmFTdHJlYW0+IG1TdHJlYW0gPSBudWxscHRyOyAgLy8gVGhlIGNhbGxiYWNrIHVzZWQgdG8gZGVsaXZlciBlYWNoIGZyYW1lCisKKyAgICBzdHJ1Y3QgQnVmZmVyUmVjb3JkIHsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZTsKKyAgICAgICAgYm9vbCBpblVzZTsKKworICAgICAgICBleHBsaWNpdCBCdWZmZXJSZWNvcmQoYnVmZmVyX2hhbmRsZV90IGgpIDogaGFuZGxlKGgpLCBpblVzZShmYWxzZSkge307CisgICAgfTsKKworICAgIHN0ZDo6dmVjdG9yIDxCdWZmZXJSZWNvcmQ+IG1CdWZmZXJzOyAgICAgICAgICAgLy8gR3JhcGhpY3MgYnVmZmVycyB0byB0cmFuc2ZlciBpbWFnZXMKKyAgICB1bnNpZ25lZCBtRnJhbWVzQWxsb3dlZDsgICAgIC8vIEhvdyBtYW55IGJ1ZmZlcnMgYXJlIHdlIGN1cnJlbnRseSB1c2luZworICAgIHVuc2lnbmVkIG1GcmFtZXNJblVzZTsgICAgICAgLy8gSG93IG1hbnkgYnVmZmVycyBhcmUgY3VycmVudGx5IG91dHN0YW5kaW5nCisKKyAgICBlbnVtIFN0cmVhbVN0YXRlVmFsdWVzIHsKKyAgICAgICAgU1RPUFBFRCwKKyAgICAgICAgUlVOTklORywKKyAgICAgICAgU1RPUFBJTkcsCisgICAgICAgIERFQUQsCisgICAgfTsKKyAgICBTdHJlYW1TdGF0ZVZhbHVlcyBtU3RyZWFtU3RhdGU7CisKKyAgICAvLyBTeW5jaHJvbml6YXRpb24gbmVjZXNzYXJ5IHRvIGRlY29uZmxpY3QgbUNhcHR1cmVUaHJlYWQgZnJvbSB0aGUgbWFpbiBzZXJ2aWNlIHRocmVhZAorICAgIHN0ZDo6bXV0ZXggbUFjY2Vzc0xvY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFfSApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRGlzcGxheS5jcHAgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNEaXNwbGF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGQ1NDZkCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRGlzcGxheS5jcHAKQEAgLTAsMCArMSwzMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlICJFdnNEaXNwbGF5LmgiCisKKyNpbmNsdWRlIDx1aS9HcmFwaGljQnVmZmVyQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlck1hcHBlci5oPgorCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgZXZzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworRXZzRGlzcGxheTo6RXZzRGlzcGxheSgpIHsKKyAgICBBTE9HRCgiRXZzRGlzcGxheSBpbnN0YW50aWF0ZWQiKTsKKworICAgIC8vIFNldCB1cCBvdXIgc2VsZiBkZXNjcmlwdGlvbgorICAgIC8vIE5PVEU6ICBUaGVzZSBhcmUgYXJiaXRyYXJ5IHZhbHVlcyBjaG9zZW4gZm9yIHRlc3RpbmcKKyAgICBtSW5mby5kaXNwbGF5SWQgICAgICAgICAgICAgPSAiTW9jayBEaXNwbGF5IjsKKyAgICBtSW5mby52ZW5kb3JGbGFncyAgICAgICAgICAgPSAzODcwOworCisgICAgLy8gQXNzZW1ibGUgdGhlIGJ1ZmZlciBkZXNjcmlwdGlvbiB3ZSdsbCB1c2UgZm9yIG91ciByZW5kZXIgdGFyZ2V0CisgICAgbUJ1ZmZlci53aWR0aCAgICAgICA9IDMyMDsKKyAgICBtQnVmZmVyLmhlaWdodCAgICAgID0gMjQwOworICAgIG1CdWZmZXIuZm9ybWF0ICAgICAgPSBIQUxfUElYRUxfRk9STUFUX1JHQkFfODg4ODsKKyAgICBtQnVmZmVyLnVzYWdlICAgICAgID0gR1JBTExPQ19VU0FHRV9IV19SRU5ERVIgfCBHUkFMTE9DX1VTQUdFX0hXX0NPTVBPU0VSOworICAgIG1CdWZmZXIuYnVmZmVySWQgICAgPSAweDM4NzA7ICAvLyBBcmJpdHJhcnkgbWFnaWMgbnVtYmVyIGZvciBzZWxmIHJlY29nbml0aW9uCisgICAgbUJ1ZmZlci5waXhlbFNpemUgICA9IDQ7Cit9CisKKworRXZzRGlzcGxheTo6fkV2c0Rpc3BsYXkoKSB7CisgICAgQUxPR0QoIkV2c0Rpc3BsYXkgYmVpbmcgZGVzdHJveWVkIik7CisgICAgZm9yY2VTaHV0ZG93bigpOworfQorCisKKy8qKgorICogVGhpcyBnZXRzIGNhbGxlZCBpZiBhbm90aGVyIGNhbGxlciAic3RlYWxzIiBvd25lcnNoaXAgb2YgdGhlIGRpc3BsYXkKKyAqLwordm9pZCBFdnNEaXNwbGF5Ojpmb3JjZVNodXRkb3duKCkKK3sKKyAgICBBTE9HRCgiRXZzRGlzcGxheSBmb3JjZVNodXRkb3duIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gSWYgdGhlIGJ1ZmZlciBpc24ndCBiZWluZyBoZWxkIGJ5IGEgcmVtb3RlIGNsaWVudCwgcmVsZWFzZSBpdCBub3cgYXMgYW4KKyAgICAvLyBvcHRpbWl6YXRpb24gdG8gcmVsZWFzZSB0aGUgcmVzb3VyY2VzIG1vcmUgcXVpY2tseSB0aGFuIHRoZSBkZXN0cnVjdG9yIG1pZ2h0CisgICAgLy8gZ2V0IGNhbGxlZC4KKyAgICBpZiAobUJ1ZmZlci5tZW1IYW5kbGUpIHsKKyAgICAgICAgLy8gUmVwb3J0IGlmIHdlJ3JlIGdvaW5nIGF3YXkgd2hpbGUgYSBidWZmZXIgaXMgb3V0c3RhbmRpbmcKKyAgICAgICAgaWYgKG1GcmFtZUJ1c3kpIHsKKyAgICAgICAgICAgIEFMT0dFKCJFdnNEaXNwbGF5IGdvaW5nIGRvd24gd2hpbGUgY2xpZW50IGlzIGhvbGRpbmcgYSBidWZmZXIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERyb3AgdGhlIGdyYXBoaWNzIGJ1ZmZlciB3ZSd2ZSBiZWVuIHVzaW5nCisgICAgICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3ImIGFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKyAgICAgICAgYWxsb2MuZnJlZShtQnVmZmVyLm1lbUhhbmRsZSk7CisgICAgICAgIG1CdWZmZXIubWVtSGFuZGxlID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICAvLyBQdXQgdGhpcyBvYmplY3QgaW50byBhbiB1bnJlY292ZXJhYmxlIGVycm9yIHN0YXRlIHNpbmNlIHNvbWVib2R5IGVsc2UKKyAgICAvLyBpcyBnb2luZyB0byBvd24gdGhlIGRpc3BsYXkgbm93LgorICAgIG1SZXF1ZXN0ZWRTdGF0ZSA9IERpc3BsYXlTdGF0ZTo6REVBRDsKK30KKworCisvKioKKyAqIFJldHVybnMgYmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEVWUyBkaXNwbGF5IHByb3ZpZGVkIGJ5IHRoZSBzeXN0ZW0uCisgKiBTZWUgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBEaXNwbGF5RGVzYyBzdHJ1Y3R1cmUgZm9yIGRldGFpbHMuCisgKi8KK1JldHVybjx2b2lkPiBFdnNEaXNwbGF5OjpnZXREaXNwbGF5SW5mbyhnZXREaXNwbGF5SW5mb19jYiBfaGlkbF9jYikgIHsKKyAgICBBTE9HRCgiZ2V0RGlzcGxheUluZm8iKTsKKworICAgIC8vIFNlbmQgYmFjayBvdXIgc2VsZiBkZXNjcmlwdGlvbgorICAgIF9oaWRsX2NiKG1JbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKKy8qKgorICogQ2xpZW50cyBtYXkgc2V0IHRoZSBkaXNwbGF5IHN0YXRlIHRvIGV4cHJlc3MgdGhlaXIgZGVzaXJlZCBzdGF0ZS4KKyAqIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCBncmFjZWZ1bGx5IGFjY2VwdCBhIHJlcXVlc3QgZm9yIGFueSBzdGF0ZQorICogd2hpbGUgaW4gYW55IG90aGVyIHN0YXRlLCBhbHRob3VnaCB0aGUgcmVzcG9uc2UgbWF5IGJlIHRvIGlnbm9yZSB0aGUgcmVxdWVzdC4KKyAqIFRoZSBkaXNwbGF5IGlzIGRlZmluZWQgdG8gc3RhcnQgaW4gdGhlIE5PVF9WSVNJQkxFIHN0YXRlIHVwb24gaW5pdGlhbGl6YXRpb24uCisgKiBUaGUgY2xpZW50IGlzIHRoZW4gZXhwZWN0ZWQgdG8gcmVxdWVzdCB0aGUgVklTSUJMRV9PTl9ORVhUX0ZSQU1FIHN0YXRlLCBhbmQKKyAqIHRoZW4gYmVnaW4gcHJvdmlkaW5nIHZpZGVvLiAgV2hlbiB0aGUgZGlzcGxheSBpcyBubyBsb25nZXIgcmVxdWlyZWQsIHRoZSBjbGllbnQKKyAqIGlzIGV4cGVjdGVkIHRvIHJlcXVlc3QgdGhlIE5PVF9WSVNJQkxFIHN0YXRlIGFmdGVyIHBhc3NpbmcgdGhlIGxhc3QgdmlkZW8gZnJhbWUuCisgKi8KK1JldHVybjxFdnNSZXN1bHQ+IEV2c0Rpc3BsYXk6OnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGUgc3RhdGUpIHsKKyAgICBBTE9HRCgic2V0RGlzcGxheVN0YXRlIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgaWYgKG1SZXF1ZXN0ZWRTdGF0ZSA9PSBEaXNwbGF5U3RhdGU6OkRFQUQpIHsKKyAgICAgICAgLy8gVGhpcyBvYmplY3Qgbm8gbG9uZ2VyIG93bnMgdGhlIGRpc3BsYXkgLS0gaXQncyBiZWVuIHN1cGVyY2VlZGVkIQorICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisKKyAgICAvLyBFbnN1cmUgd2UgcmVjb2duaXplIHRoZSByZXF1ZXN0ZWQgc3RhdGUgc28gd2UgZG9uJ3QgZ28gb2ZmIHRoZSByYWlscworICAgIGlmIChzdGF0ZSA8IERpc3BsYXlTdGF0ZTo6TlVNX1NUQVRFUykgeworICAgICAgICAvLyBSZWNvcmQgdGhlIHJlcXVlc3RlZCBzdGF0ZQorICAgICAgICBtUmVxdWVzdGVkU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T0s7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvLyBUdXJuIG9mZiB0aGUgZGlzcGxheSBpZiBhc2tlZCBmb3IgYW4gdW5yZWNvZ25pemVkIHN0YXRlCisgICAgICAgIG1SZXF1ZXN0ZWRTdGF0ZSA9IERpc3BsYXlTdGF0ZTo6Tk9UX1ZJU0lCTEU7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OklOVkFMSURfQVJHOworICAgIH0KK30KKworCisvKioKKyAqIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gc2hvdWxkIHJlcG9ydCB0aGUgYWN0dWFsIGN1cnJlbnQgc3RhdGUsIHdoaWNoIG1pZ2h0CisgKiB0cmFuc2llbnRseSBkaWZmZXIgZnJvbSB0aGUgbW9zdCByZWNlbnRseSByZXF1ZXN0ZWQgc3RhdGUuICBOb3RlLCBob3dldmVyLCB0aGF0CisgKiB0aGUgbG9naWMgcmVzcG9uc2libGUgZm9yIGNoYW5naW5nIGRpc3BsYXkgc3RhdGVzIHNob3VsZCBnZW5lcmFsbHkgbGl2ZSBhYm92ZQorICogdGhlIGRldmljZSBsYXllciwgbWFraW5nIGl0IHVuZGVzaXJhYmxlIGZvciB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHRvCisgKiBzcG9udGFuZW91c2x5IGNoYW5nZSBkaXNwbGF5IHN0YXRlcy4KKyAqLworUmV0dXJuPERpc3BsYXlTdGF0ZT4gRXZzRGlzcGxheTo6Z2V0RGlzcGxheVN0YXRlKCkgIHsKKyAgICBBTE9HRCgiZ2V0RGlzcGxheVN0YXRlIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgcmV0dXJuIG1SZXF1ZXN0ZWRTdGF0ZTsKK30KKworCisvKioKKyAqIFRoaXMgY2FsbCByZXR1cm5zIGEgaGFuZGxlIHRvIGEgZnJhbWUgYnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlzcGxheS4KKyAqIFRoaXMgYnVmZmVyIG1heSBiZSBsb2NrZWQgYW5kIHdyaXR0ZW4gdG8gYnkgc29mdHdhcmUgYW5kL29yIEdMLiAgVGhpcyBidWZmZXIKKyAqIG11c3QgYmUgcmV0dXJuZWQgdmlhIGEgY2FsbCB0byByZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KCkgZXZlbiBpZiB0aGUKKyAqIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHZpc2libGUuCisgKi8KKy8vIFRPRE86IFdlIG5lZWQgdG8ga25vdyBpZi93aGVuIG91ciBjbGllbnQgZGllcyBzbyB3ZSBjYW4gZ2V0IHRoZSBidWZmZXIgYmFjayEgKGJsb2NrZWQgYi8zMTYzMjUxOCkKK1JldHVybjx2b2lkPiBFdnNEaXNwbGF5OjpnZXRUYXJnZXRCdWZmZXIoZ2V0VGFyZ2V0QnVmZmVyX2NiIF9oaWRsX2NiKSAgeworICAgIEFMT0dEKCJnZXRUYXJnZXRCdWZmZXIiKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICBpZiAobVJlcXVlc3RlZFN0YXRlID09IERpc3BsYXlTdGF0ZTo6REVBRCkgeworICAgICAgICBBTE9HRSgiUmVqZWN0aW5nIGJ1ZmZlciByZXF1ZXN0IGZyb20gb2JqZWN0IHRoYXQgbG9zdCBvd25lcnNoaXAgb2YgdGhlIGRpc3BsYXkuIik7CisgICAgICAgIEJ1ZmZlckRlc2MgbnVsbEJ1ZmYgPSB7fTsKKyAgICAgICAgX2hpZGxfY2IobnVsbEJ1ZmYpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIElmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBhIGJ1ZmZlciwgYWxsb2NhdGUgb25lIG5vdworICAgIGlmICghbUJ1ZmZlci5tZW1IYW5kbGUpIHsKKyAgICAgICAgLy8gQWxsb2NhdGUgdGhlIGJ1ZmZlciB0aGF0IHdpbGwgaG9sZCBvdXIgZGlzcGxheWFibGUgaW1hZ2UKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3ImIGFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKyAgICAgICAgc3RhdHVzX3QgcmVzdWx0ID0gYWxsb2MuYWxsb2NhdGUoCisgICAgICAgICAgICBtQnVmZmVyLndpZHRoLCBtQnVmZmVyLmhlaWdodCwgbUJ1ZmZlci5mb3JtYXQsIDEsIG1CdWZmZXIudXNhZ2UsCisgICAgICAgICAgICAmaGFuZGxlLCAmbUJ1ZmZlci5zdHJpZGUsIDAsICJFdnNEaXNwbGF5Iik7CisgICAgICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpIHsKKyAgICAgICAgICAgIEFMT0dFKCJFcnJvciAlZCBhbGxvY2F0aW5nICVkIHggJWQgZ3JhcGhpY3MgYnVmZmVyIiwKKyAgICAgICAgICAgICAgICAgIHJlc3VsdCwgbUJ1ZmZlci53aWR0aCwgbUJ1ZmZlci5oZWlnaHQpOworICAgICAgICAgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgICAgICAgICAgX2hpZGxfY2IobnVsbEJ1ZmYpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICAgICAgQUxPR0UoIldlIGRpZG4ndCBnZXQgYSBidWZmZXIgaGFuZGxlIGJhY2sgZnJvbSB0aGUgYWxsb2NhdG9yIik7CisgICAgICAgICAgICBCdWZmZXJEZXNjIG51bGxCdWZmID0ge307CisgICAgICAgICAgICBfaGlkbF9jYihudWxsQnVmZik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgbUJ1ZmZlci5tZW1IYW5kbGUgPSBoYW5kbGU7CisgICAgICAgIG1GcmFtZUJ1c3kgPSBmYWxzZTsKKyAgICAgICAgQUxPR0QoIkFsbG9jYXRlZCBuZXcgYnVmZmVyICVwIHdpdGggc3RyaWRlICV1IiwKKyAgICAgICAgICAgICAgbUJ1ZmZlci5tZW1IYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCksIG1CdWZmZXIuc3RyaWRlKTsKKyAgICB9CisKKyAgICAvLyBEbyB3ZSBoYXZlIGEgZnJhbWUgYXZhaWxhYmxlPworICAgIGlmIChtRnJhbWVCdXN5KSB7CisgICAgICAgIC8vIFRoaXMgbWVhbnMgZWl0aGVyIHdlIGhhdmUgYSAybmQgY2xpZW50IHRyeWluZyB0byBjb21wZXRlIGZvciBidWZmZXJzCisgICAgICAgIC8vIChhbiB1bnN1cHBvcnRlZCBtb2RlIG9mIG9wZXJhdGlvbikgb3IgZWxzZSB0aGUgY2xpZW50IGhhc24ndCByZXR1cm5lZAorICAgICAgICAvLyBhIHByZXZpb3VzbHkgaXNzdWVkIGJ1ZmZlciB5ZXQgKHRoZXkncmUgYmVoYXZpbmcgYmFkbHkpLgorICAgICAgICAvLyBOT1RFOiAgV2UgaGF2ZSB0byBtYWtlIHRoZSBjYWxsYmFjayBldmVuIGlmIHdlIGhhdmUgbm90aGluZyB0byBwcm92aWRlCisgICAgICAgIEFMT0dFKCJnZXRUYXJnZXRCdWZmZXIgY2FsbGVkIHdoaWxlIG5vIGJ1ZmZlcnMgYXZhaWxhYmxlLiIpOworICAgICAgICBCdWZmZXJEZXNjIG51bGxCdWZmID0ge307CisgICAgICAgIF9oaWRsX2NiKG51bGxCdWZmKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBNYXJrIG91ciBidWZmZXIgYXMgYnVzeQorICAgICAgICBtRnJhbWVCdXN5ID0gdHJ1ZTsKKworICAgICAgICAvLyBTZW5kIHRoZSBidWZmZXIgdG8gdGhlIGNsaWVudAorICAgICAgICBBTE9HRCgiUHJvdmlkaW5nIGRpc3BsYXkgYnVmZmVyIGhhbmRsZSAlcCBhcyBpZCAlZCIsCisgICAgICAgICAgICAgIG1CdWZmZXIubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpLCBtQnVmZmVyLmJ1ZmZlcklkKTsKKyAgICAgICAgX2hpZGxfY2IobUJ1ZmZlcik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorfQorCisKKy8qKgorICogVGhpcyBjYWxsIHRlbGxzIHRoZSBkaXNwbGF5IHRoYXQgdGhlIGJ1ZmZlciBpcyByZWFkeSBmb3IgZGlzcGxheS4KKyAqIFRoZSBidWZmZXIgaXMgbm8gbG9uZ2VyIHZhbGlkIGZvciB1c2UgYnkgdGhlIGNsaWVudCBhZnRlciB0aGlzIGNhbGwuCisgKi8KK1JldHVybjxFdnNSZXN1bHQ+IEV2c0Rpc3BsYXk6OnJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyKSAgeworICAgIEFMT0dEKCJyZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5ICVwIiwgYnVmZmVyLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gTm9ib2R5IHNob3VsZCBjYWxsIHVzIHdpdGggYSBudWxsIGhhbmRsZQorICAgIGlmICghYnVmZmVyLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSkgeworICAgICAgICBBTE9HRSAoInJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkgY2FsbGVkIHdpdGhvdXQgYSB2YWxpZCBidWZmZXIgaGFuZGxlLlxuIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OklOVkFMSURfQVJHOworICAgIH0KKyAgICBpZiAoYnVmZmVyLmJ1ZmZlcklkICE9IG1CdWZmZXIuYnVmZmVySWQpIHsKKyAgICAgICAgQUxPR0UgKCJHb3QgYW4gdW5yZWNvZ25pemVkIGZyYW1lIHJldHVybmVkLlxuIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OklOVkFMSURfQVJHOworICAgIH0KKyAgICBpZiAoIW1GcmFtZUJ1c3kpIHsKKyAgICAgICAgQUxPR0UgKCJBIGZyYW1lIHdhcyByZXR1cm5lZCB3aXRoIG5vIG91dHN0YW5kaW5nIGZyYW1lcy5cbiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpCVUZGRVJfTk9UX0FWQUlMQUJMRTsKKyAgICB9CisKKyAgICBtRnJhbWVCdXN5ID0gZmFsc2U7CisKKyAgICAvLyBJZiB3ZSd2ZSBiZWVuIGRpc3BsYWNlZCBieSBhbm90aGVyIG93bmVyIG9mIHRoZSBkaXNwbGF5LCB0aGVuIHdlIGNhbid0IGRvIGFueXRoaW5nIGVsc2UKKyAgICBpZiAobVJlcXVlc3RlZFN0YXRlID09IERpc3BsYXlTdGF0ZTo6REVBRCkgeworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSB3ZXJlIHdhaXRpbmcgZm9yIGEgbmV3IGZyYW1lLCB0aGlzIGlzIGl0IQorICAgIGlmIChtUmVxdWVzdGVkU3RhdGUgPT0gRGlzcGxheVN0YXRlOjpWSVNJQkxFX09OX05FWFRfRlJBTUUpIHsKKyAgICAgICAgbVJlcXVlc3RlZFN0YXRlID0gRGlzcGxheVN0YXRlOjpWSVNJQkxFOworICAgIH0KKworICAgIC8vIFZhbGlkYXRlIHdlJ3JlIGluIGFuIGV4cGVjdGVkIHN0YXRlCisgICAgaWYgKG1SZXF1ZXN0ZWRTdGF0ZSAhPSBEaXNwbGF5U3RhdGU6OlZJU0lCTEUpIHsKKyAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGdldCBmcmFtZXMgYmFjayB3aGVuIHdlJ3JlIG5vdCB2aXNpYmxlLgorICAgICAgICBBTE9HRSAoIkdvdCBhbiB1bmV4cGVjdGVkIGZyYW1lIHJldHVybmVkIHdoaWxlIG5vdCB2aXNpYmxlIC0gaWdub3JpbmcuXG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHRoZSBidWZmZXIgd291bGQgYmUgbWFkZSB2aXNpYmxlLgorICAgICAgICAvLyBGb3Igbm93IHdlIHNpbXBseSB2YWxpZGF0ZSBpdCBoYXMgdGhlIGRhdGEgd2UgZXhwZWN0IGluIGl0IGJ5IHJlYWRpbmcgaXQgYmFjaworCisgICAgICAgIC8vIExvY2sgb3VyIGRpc3BsYXkgYnVmZmVyIGZvciByZWFkaW5nCisgICAgICAgIHVpbnQzMl90KiBwaXhlbHMgPSBudWxscHRyOworICAgICAgICBHcmFwaGljQnVmZmVyTWFwcGVyICZtYXBwZXIgPSBHcmFwaGljQnVmZmVyTWFwcGVyOjpnZXQoKTsKKyAgICAgICAgbWFwcGVyLmxvY2sobUJ1ZmZlci5tZW1IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfU1dfUkVBRF9PRlRFTiB8IEdSQUxMT0NfVVNBR0VfU1dfV1JJVEVfTkVWRVIsCisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlJlY3QobUJ1ZmZlci53aWR0aCwgbUJ1ZmZlci5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAodm9pZCAqKikmcGl4ZWxzKTsKKworICAgICAgICAvLyBJZiB3ZSBmYWlsZWQgdG8gbG9jayB0aGUgcGl4ZWwgYnVmZmVyLCB3ZSdyZSBhYm91dCB0byBjcmFzaCwgYnV0IGxvZyBpdCBmaXJzdAorICAgICAgICBpZiAoIXBpeGVscykgeworICAgICAgICAgICAgQUxPR0UoIkRpc3BsYXkgZmFpbGVkIHRvIGdhaW4gYWNjZXNzIHRvIGltYWdlIGJ1ZmZlciBmb3IgcmVhZGluZyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgdGhlIHRlc3QgcGl4ZWxzCisgICAgICAgIGJvb2wgZnJhbWVMb29rc0dvb2QgPSB0cnVlOworICAgICAgICBmb3IgKHVuc2lnbmVkIHJvdyA9IDA7IHJvdyA8IG1CdWZmZXIuaGVpZ2h0OyByb3crKykgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBjb2wgPSAwOyBjb2wgPCBtQnVmZmVyLndpZHRoOyBjb2wrKykgeworICAgICAgICAgICAgICAgIC8vIEluZGV4IGludG8gdGhlIHJvdyB0byBjaGVjayB0aGUgcGl4ZWwgYXQgdGhpcyBjb2x1bW4uCisgICAgICAgICAgICAgICAgLy8gV2UgZXhwZWN0IDB4RkYgaW4gdGhlIExTQiBjaGFubmVsLCBhIHZlcnRpY2FsIGdyYWRpZW50IGluIHRoZQorICAgICAgICAgICAgICAgIC8vIHNlY29uZCBjaGFubmVsLCBhIGhvcml0em9udGFsIGdyYWRpZW50IGluIHRoZSB0aGlyZCBjaGFubmVsLCBhbmQKKyAgICAgICAgICAgICAgICAvLyAweEZGIGluIHRoZSBNU0IuCisgICAgICAgICAgICAgICAgLy8gVGhlIGV4Y2VwdGlvbiBpcyB0aGUgdmVyeSBmaXJzdCAzMiBiaXRzIHdoaWNoIGlzIHVzZWQgZm9yIHRoZQorICAgICAgICAgICAgICAgIC8vIHRpbWUgdmFyeWluZyBmcmFtZSBzaWduYXR1cmUgdG8gYXZvaWQgZ2V0dGluZyBmb29sZWQgYnkgYSBzdGF0aWMgaW1hZ2UuCisgICAgICAgICAgICAgICAgdWludDMyX3QgZXhwZWN0ZWRQaXhlbCA9IDB4RkYwMDAwRkYgICAgICAgICAgIHwgLy8gTVNCIGFuZCBMU0IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChyb3cgJiAweEZGKSA8PCAgOCkgfCAvLyB2ZXJ0aWNhbCBncmFkaWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNvbCAmIDB4RkYpIDw8IDE2KTsgIC8vIGhvcml6b250YWwgZ3JhZGllbnQKKyAgICAgICAgICAgICAgICBpZiAoKHJvdyB8IGNvbCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB3ZSdsbCBjaGVjayB0aGUgInVuaXF1ZW5lc3MiIG9mIHRoZSBmcmFtZSBzaWduYXR1cmUgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFdhbGsgYWNyb3NzIHRoaXMgcm93ICh3ZSdsbCBzdGVwIHJvd3MgYmVsb3cpCisgICAgICAgICAgICAgICAgdWludDMyX3QgcmVjZWl2ZWRQaXhlbCA9IHBpeGVsc1tjb2xdOworICAgICAgICAgICAgICAgIGlmIChyZWNlaXZlZFBpeGVsICE9IGV4cGVjdGVkUGl4ZWwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIlBpeGVsIGNoZWNrIG1pc21hdGNoIGluIGZyYW1lIGJ1ZmZlciIpOworICAgICAgICAgICAgICAgICAgICBmcmFtZUxvb2tzR29vZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZnJhbWVMb29rc0dvb2QpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUG9pbnQgdG8gdGhlIG5leHQgcm93IChOT1RFOiAgZ3JhbGxvYyByZXBvcnRzIHN0cmlkZSBpbiB1bml0cyBvZiBwaXhlbHMpCisgICAgICAgICAgICBwaXhlbHMgPSBwaXhlbHMgKyBtQnVmZmVyLnN0cmlkZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVuc3VyZSB3ZSBkb24ndCBzZWUgdGhlIHNhbWUgYnVmZmVyIHR3aWNlIHdpdGhvdXQgaXQgYmVpbmcgcmV3cml0dGVuCisgICAgICAgIHN0YXRpYyB1aW50MzJfdCBwcmV2U2lnbmF0dXJlID0gfjA7CisgICAgICAgIHVpbnQzMl90IHNpZ25hdHVyZSA9IHBpeGVsc1swXSAmIDB4RkY7CisgICAgICAgIGlmIChwcmV2U2lnbmF0dXJlID09IHNpZ25hdHVyZSkgeworICAgICAgICAgICAgZnJhbWVMb29rc0dvb2QgPSBmYWxzZTsKKyAgICAgICAgICAgIEFMT0dFKCJEdXBsaWNhdGUsIGxpa2VseSBzdGFsZSBmcmFtZSBidWZmZXIgZGV0ZWN0ZWQiKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gUmVsZWFzZSBvdXIgb3V0cHV0IGJ1ZmZlcgorICAgICAgICBtYXBwZXIudW5sb2NrKG1CdWZmZXIubWVtSGFuZGxlKTsKKworICAgICAgICBpZiAoIWZyYW1lTG9va3NHb29kKSB7CisgICAgICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpVTkRFUkxZSU5HX1NFUlZJQ0VfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gRXZzUmVzdWx0OjpPSzsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGV2cworfSAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuaCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmQ2NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRGlzcGxheS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNESVNQTEFZX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVVRPTU9USVZFX0VWU19WMV8wX0VWU0RJU1BMQVlfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0Rpc3BsYXkuaD4KKyNpbmNsdWRlIDx1aS9HcmFwaGljQnVmZmVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgZXZzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworY2xhc3MgRXZzRGlzcGxheSA6IHB1YmxpYyBJRXZzRGlzcGxheSB7CitwdWJsaWM6CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUV2c0Rpc3BsYXkgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXREaXNwbGF5SW5mbyhnZXREaXNwbGF5SW5mb19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxFdnNSZXN1bHQ+IHNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGUgc3RhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48RGlzcGxheVN0YXRlPiBnZXREaXNwbGF5U3RhdGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFRhcmdldEJ1ZmZlcihnZXRUYXJnZXRCdWZmZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48RXZzUmVzdWx0PiByZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmZlcikgIG92ZXJyaWRlOworCisgICAgLy8gSW1wbGVtZW50YXRpb24gZGV0YWlscworICAgIEV2c0Rpc3BsYXkoKTsKKyAgICB2aXJ0dWFsIH5FdnNEaXNwbGF5KCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGZvcmNlU2h1dGRvd24oKTsgICAvLyBUaGlzIGdldHMgY2FsbGVkIGlmIGFub3RoZXIgY2FsbGVyICJzdGVhbHMiIG93bmVyc2hpcCBvZiB0aGUgZGlzcGxheQorCitwcml2YXRlOgorICAgIERpc3BsYXlEZXNjICAgICBtSW5mbyAgICAgICAgICAgPSB7fTsKKyAgICBCdWZmZXJEZXNjICAgICAgbUJ1ZmZlciAgICAgICAgID0ge307ICAgICAgIC8vIEEgZ3JhcGhpY3MgYnVmZmVyIGludG8gd2hpY2ggd2UnbGwgc3RvcmUgaW1hZ2VzCisKKyAgICBib29sICAgICAgICAgICAgbUZyYW1lQnVzeSAgICAgID0gZmFsc2U7ICAgIC8vIEEgZmxhZyB0ZWxsaW5nIHVzIG91ciBidWZmZXIgaXMgaW4gdXNlCisgICAgRGlzcGxheVN0YXRlICAgIG1SZXF1ZXN0ZWRTdGF0ZSA9IERpc3BsYXlTdGF0ZTo6Tk9UX1ZJU0lCTEU7CisKKyAgICBzdGQ6Om11dGV4ICAgICAgbUFjY2Vzc0xvY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNESVNQTEFZX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0VudW1lcmF0b3IuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRW51bWVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI1ZDQxOAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0VudW1lcmF0b3IuY3BwCkBAIC0wLDAgKzEsMjE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSAiRXZzRW51bWVyYXRvci5oIgorI2luY2x1ZGUgIkV2c0NhbWVyYS5oIgorI2luY2x1ZGUgIkV2c0Rpc3BsYXkuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSBldnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworCisvLyBOT1RFOiAgQWxsIG1lbWJlcnMgdmFsdWVzIGFyZSBzdGF0aWMgc28gdGhhdCBhbGwgY2xpZW50cyBvcGVyYXRlIG9uIHRoZSBzYW1lIHN0YXRlCisvLyAgICAgICAgVGhhdCBpcyB0byBzYXksIHRoaXMgaXMgZWZmZWN0aXZlbHkgYSBzaW5nbGV0b24gZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IEhJREwKKy8vICAgICAgICBjb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIGZvciBlYWNoIGNsaWVudC4KK3N0ZDo6bGlzdDxFdnNFbnVtZXJhdG9yOjpDYW1lcmFSZWNvcmQ+ICAgRXZzRW51bWVyYXRvcjo6c0NhbWVyYUxpc3Q7Cit3cDxFdnNEaXNwbGF5PiAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2c0VudW1lcmF0b3I6OnNBY3RpdmVEaXNwbGF5OworCisKK0V2c0VudW1lcmF0b3I6OkV2c0VudW1lcmF0b3IoKSB7CisgICAgQUxPR0QoIkV2c0VudW1lcmF0b3IgY3JlYXRlZCIpOworCisgICAgLy8gQWRkIHNhbXBsZSBjYW1lcmEgZGF0YSB0byBvdXIgbGlzdCBvZiBjYW1lcmFzCisgICAgLy8gSW4gYSByZWFsIGRyaXZlciwgdGhpcyB3b3VsZCBiZSBleHBlY3RlZCB0byBjYW4gdGhlIGF2YWlsYWJsZSBoYXJkd2FyZQorICAgIHNDYW1lcmFMaXN0LmVtcGxhY2VfYmFjayhFdnNDYW1lcmE6OmtDYW1lcmFOYW1lX0JhY2t1cCk7CisgICAgc0NhbWVyYUxpc3QuZW1wbGFjZV9iYWNrKCJMYW5lVmlldyIpOworICAgIHNDYW1lcmFMaXN0LmVtcGxhY2VfYmFjaygicmlnaHQgdHVybiIpOworfQorCisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNFbnVtZXJhdG9yIGZvbGxvdy4KK1JldHVybjx2b2lkPiBFdnNFbnVtZXJhdG9yOjpnZXRDYW1lcmFMaXN0KGdldENhbWVyYUxpc3RfY2IgX2hpZGxfY2IpICB7CisgICAgQUxPR0QoImdldENhbWVyYUxpc3QiKTsKKworICAgIGNvbnN0IHVuc2lnbmVkIG51bUNhbWVyYXMgPSBzQ2FtZXJhTGlzdC5zaXplKCk7CisKKyAgICAvLyBCdWlsZCB1cCBhIHBhY2tlZCBhcnJheSBvZiBDYW1lcmFEZXNjIGZvciByZXR1cm4KKyAgICAvLyBOT1RFOiAgT25seSBoYXMgdG8gbGl2ZSB1bnRpbCB0aGUgY2FsbGJhY2sgcmV0dXJucworICAgIHN0ZDo6dmVjdG9yPENhbWVyYURlc2M+IGRlc2NyaXB0aW9uczsKKyAgICBkZXNjcmlwdGlvbnMucmVzZXJ2ZShudW1DYW1lcmFzKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbSA6IHNDYW1lcmFMaXN0KSB7CisgICAgICAgIGRlc2NyaXB0aW9ucy5wdXNoX2JhY2soIGNhbS5kZXNjICk7CisgICAgfQorCisgICAgLy8gRW5jYXBzdWxhdGUgb3VyIGNhbWVyYSBkZXNjcmlwdGlvbnMgaW4gdGhlIEhJREwgdmVjIHR5cGUKKyAgICBoaWRsX3ZlYzxDYW1lcmFEZXNjPiBoaWRsQ2FtZXJhcyhkZXNjcmlwdGlvbnMpOworCisgICAgLy8gU2VuZCBiYWNrIHRoZSByZXN1bHRzCisgICAgQUxPR0QoInJlcG9ydGluZyAlenUgY2FtZXJhcyBhdmFpbGFibGUiLCBoaWRsQ2FtZXJhcy5zaXplKCkpOworICAgIF9oaWRsX2NiKGhpZGxDYW1lcmFzKTsKKworICAgIC8vIEhJREwgY29udmVudGlvbiBzYXlzIHdlIHJldHVybiBWb2lkIGlmIHdlIHNlbnQgb3VyIHJlc3VsdCBiYWNrIHZpYSBjYWxsYmFjaworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworUmV0dXJuPHNwPElFdnNDYW1lcmE+PiBFdnNFbnVtZXJhdG9yOjpvcGVuQ2FtZXJhKGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFJZCkgeworICAgIEFMT0dEKCJvcGVuQ2FtZXJhIik7CisKKyAgICAvLyBGaW5kIHRoZSBuYW1lZCBjYW1lcmEKKyAgICBDYW1lcmFSZWNvcmQgKnBSZWNvcmQgPSBudWxscHRyOworICAgIGZvciAoYXV0byAmJmNhbSA6IHNDYW1lcmFMaXN0KSB7CisgICAgICAgIGlmIChjYW0uZGVzYy5jYW1lcmFJZCA9PSBjYW1lcmFJZCkgeworICAgICAgICAgICAgLy8gRm91bmQgYSBtYXRjaCEKKyAgICAgICAgICAgIHBSZWNvcmQgPSAmY2FtOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJcyB0aGlzIGEgcmVjb2duaXplZCBjYW1lcmEgaWQ/CisgICAgaWYgKCFwUmVjb3JkKSB7CisgICAgICAgIEFMT0dFKCJSZXF1ZXN0ZWQgY2FtZXJhICVzIG5vdCBmb3VuZCIsIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICAvLyBIYXMgdGhpcyBjYW1lcmEgYWxyZWFkeSBiZWVuIGluc3RhbnRpYXRlZCBieSBhbm90aGVyIGNhbGxlcj8KKyAgICBzcDxFdnNDYW1lcmE+IHBBY3RpdmVDYW1lcmEgPSBwUmVjb3JkLT5hY3RpdmVJbnN0YW5jZS5wcm9tb3RlKCk7CisgICAgaWYgKHBBY3RpdmVDYW1lcmEgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HVygiS2lsbGluZyBwcmV2aW91cyBjYW1lcmEgYmVjYXVzZSBvZiBuZXcgY2FsbGVyIik7CisgICAgICAgIGNsb3NlQ2FtZXJhKHBBY3RpdmVDYW1lcmEpOworICAgIH0KKworICAgIC8vIENvbnN0cnVjdCBhIGNhbWVyYSBpbnN0YW5jZSBmb3IgdGhlIGNhbGxlcgorICAgIHBBY3RpdmVDYW1lcmEgPSBuZXcgRXZzQ2FtZXJhKGNhbWVyYUlkLmNfc3RyKCkpOworICAgIHBSZWNvcmQtPmFjdGl2ZUluc3RhbmNlID0gcEFjdGl2ZUNhbWVyYTsKKyAgICBpZiAocEFjdGl2ZUNhbWVyYSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gYWxsb2NhdGUgbmV3IEV2c0NhbWVyYSBvYmplY3QgZm9yICVzXG4iLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gcEFjdGl2ZUNhbWVyYTsKK30KKworCitSZXR1cm48dm9pZD4gRXZzRW51bWVyYXRvcjo6Y2xvc2VDYW1lcmEoY29uc3QgOjphbmRyb2lkOjpzcDxJRXZzQ2FtZXJhPiYgcENhbWVyYSkgeworICAgIEFMT0dEKCJjbG9zZUNhbWVyYSIpOworCisgICAgaWYgKHBDYW1lcmEgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSWdub3JpbmcgY2FsbCB0byBjbG9zZUNhbWVyYSB3aXRoIG51bGwgY2FtZXJhIHB0ciIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIEdldCB0aGUgY2FtZXJhIGlkIHNvIHdlIGNhbiBmaW5kIGl0IGluIG91ciBsaXN0CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQ7CisgICAgcENhbWVyYS0+Z2V0Q2FtZXJhSW5mbyhbJmNhbWVyYUlkXShDYW1lcmFEZXNjIGRlc2MpIHsKKy8vIFRPRE8oYi8zNjUzMjc4MCkgU2hvdWxkIHdlIGFibGUgdG8ganVzdCB1c2UgYSBzaW1wbGUgYXNzaWdubWVudD8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1lcmFJZCA9IGRlc2MuY2FtZXJhSWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSWQuYXNzaWduKGRlc2MuY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgKTsKKworICAgIC8vIEZpbmQgdGhlIG5hbWVkIGNhbWVyYQorICAgIENhbWVyYVJlY29yZCAqcFJlY29yZCA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvICYmY2FtIDogc0NhbWVyYUxpc3QpIHsKKyAgICAgICAgaWYgKGNhbS5kZXNjLmNhbWVyYUlkID09IGNhbWVyYUlkKSB7CisgICAgICAgICAgICAvLyBGb3VuZCBhIG1hdGNoIQorICAgICAgICAgICAgcFJlY29yZCA9ICZjYW07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElzIHRoZSBkaXNwbGF5IGJlaW5nIGRlc3Ryb3llZCBhY3R1YWxseSB0aGUgb25lIHdlIHRoaW5rIGlzIGFjdGl2ZT8KKyAgICBpZiAoIXBSZWNvcmQpIHsKKyAgICAgICAgQUxPR0UoIkFza2VkIHRvIGNsb3NlIGEgY2FtZXJhIHdobydzIG5hbWUgaXNuJ3QgcmVjb2duaXplZCIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNwPEV2c0NhbWVyYT4gcEFjdGl2ZUNhbWVyYSA9IHBSZWNvcmQtPmFjdGl2ZUluc3RhbmNlLnByb21vdGUoKTsKKworICAgICAgICBpZiAocEFjdGl2ZUNhbWVyYSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiU29tZWhvdyBhIGNhbWVyYSBpcyBiZWluZyBkZXN0cm95ZWQgd2hlbiB0aGUgZW51bWVyYXRvciBkaWRuJ3Qga25vdyBvbmUgZXhpc3RlZCIpOworICAgICAgICB9IGVsc2UgaWYgKHBBY3RpdmVDYW1lcmEgIT0gcENhbWVyYSkgeworICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBjYW1lcmEgd2FzIGFnZ3Jlc3NpdmVseSByZW9wZW5lZCwgb3JwaGFuaW5nIHRoaXMgcHJldmlvdXMgaW5zdGFuY2UKKyAgICAgICAgICAgIEFMT0dXKCJJZ25vcmluZyBjbG9zZSBvZiBwcmV2aW91c2x5IG9ycGhhbmVkIGNhbWVyYSAtIHdoeSBkaWQgYSBjbGllbnQgc3RlYWw/Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBEcm9wIHRoZSBhY3RpdmUgY2FtZXJhCisgICAgICAgICAgICBwQWN0aXZlQ2FtZXJhLT5mb3JjZVNodXRkb3duKCk7CisgICAgICAgICAgICBwUmVjb3JkLT5hY3RpdmVJbnN0YW5jZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjxzcDxJRXZzRGlzcGxheT4+IEV2c0VudW1lcmF0b3I6Om9wZW5EaXNwbGF5KCkgeworICAgIEFMT0dEKCJvcGVuRGlzcGxheSIpOworCisgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgZGlzcGxheSBhY3RpdmUsIHRoZW4gd2UgbmVlZCB0byBzaHV0IGl0IGRvd24gc28gd2UgY2FuCisgICAgLy8gZ2l2ZSBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBuZXcgY2FsbGVyLgorICAgIHNwPEV2c0Rpc3BsYXk+IHBBY3RpdmVEaXNwbGF5ID0gc0FjdGl2ZURpc3BsYXkucHJvbW90ZSgpOworICAgIGlmIChwQWN0aXZlRGlzcGxheSAhPSBudWxscHRyKSB7CisgICAgICAgIEFMT0dXKCJLaWxsaW5nIHByZXZpb3VzIGRpc3BsYXkgYmVjYXVzZSBvZiBuZXcgY2FsbGVyIik7CisgICAgICAgIGNsb3NlRGlzcGxheShwQWN0aXZlRGlzcGxheSk7CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGEgbmV3IGRpc3BsYXkgaW50ZXJmYWNlIGFuZCByZXR1cm4gaXQKKyAgICBwQWN0aXZlRGlzcGxheSA9IG5ldyBFdnNEaXNwbGF5KCk7CisgICAgc0FjdGl2ZURpc3BsYXkgPSBwQWN0aXZlRGlzcGxheTsKKworICAgIEFMT0dEKCJSZXR1cm5pbmcgbmV3IEV2c0Rpc3BsYXkgb2JqZWN0ICVwIiwgcEFjdGl2ZURpc3BsYXkuZ2V0KCkpOworICAgIHJldHVybiBwQWN0aXZlRGlzcGxheTsKK30KKworCitSZXR1cm48dm9pZD4gRXZzRW51bWVyYXRvcjo6Y2xvc2VEaXNwbGF5KGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0Rpc3BsYXk+JiBwRGlzcGxheSkgeworICAgIEFMT0dEKCJjbG9zZURpc3BsYXkiKTsKKworICAgIC8vIERvIHdlIHN0aWxsIGhhdmUgYSBkaXNwbGF5IG9iamVjdCB3ZSB0aGluayBzaG91bGQgYmUgYWN0aXZlPworICAgIHNwPEV2c0Rpc3BsYXk+IHBBY3RpdmVEaXNwbGF5ID0gc0FjdGl2ZURpc3BsYXkucHJvbW90ZSgpOworICAgIGlmIChwQWN0aXZlRGlzcGxheSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJTb21laG93IGEgZGlzcGxheSBpcyBiZWluZyBkZXN0cm95ZWQgd2hlbiB0aGUgZW51bWVyYXRvciBkaWRuJ3Qga25vdyBvbmUgZXhpc3RlZCIpOworICAgIH0gZWxzZSBpZiAoc0FjdGl2ZURpc3BsYXkgIT0gcERpc3BsYXkpIHsKKyAgICAgICAgQUxPR1coIklnbm9yaW5nIGNsb3NlIG9mIHByZXZpb3VzbHkgb3JwaGFuZWQgZGlzcGxheSAtIHdoeSBkaWQgYSBjbGllbnQgc3RlYWw/Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRHJvcCB0aGUgYWN0aXZlIGRpc3BsYXkKKyAgICAgICAgcEFjdGl2ZURpc3BsYXktPmZvcmNlU2h1dGRvd24oKTsKKyAgICAgICAgc0FjdGl2ZURpc3BsYXkgPSBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworUmV0dXJuPERpc3BsYXlTdGF0ZT4gRXZzRW51bWVyYXRvcjo6Z2V0RGlzcGxheVN0YXRlKCkgIHsKKyAgICBBTE9HRCgiZ2V0RGlzcGxheVN0YXRlIik7CisKKyAgICAvLyBEbyB3ZSBzdGlsbCBoYXZlIGEgZGlzcGxheSBvYmplY3Qgd2UgdGhpbmsgc2hvdWxkIGJlIGFjdGl2ZT8KKyAgICBzcDxJRXZzRGlzcGxheT4gcEFjdGl2ZURpc3BsYXkgPSBzQWN0aXZlRGlzcGxheS5wcm9tb3RlKCk7CisgICAgaWYgKHBBY3RpdmVEaXNwbGF5ICE9IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIHBBY3RpdmVEaXNwbGF5LT5nZXREaXNwbGF5U3RhdGUoKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gRGlzcGxheVN0YXRlOjpOT1RfT1BFTjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBldnMKK30gLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmggYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI3MGY5YgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0VudW1lcmF0b3IuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBRU5VTUVSQVRPUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFFTlVNRVJBVE9SX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNFbnVtZXJhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oPgorCisjaW5jbHVkZSA8bGlzdD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKK2NsYXNzIEV2c0NhbWVyYTsgICAgLy8gZnJvbSBFdnNDYW1lcmEuaAorY2xhc3MgRXZzRGlzcGxheTsgICAvLyBmcm9tIEV2c0Rpc3BsYXkuaAorCisKK2NsYXNzIEV2c0VudW1lcmF0b3IgOiBwdWJsaWMgSUV2c0VudW1lcmF0b3IgeworcHVibGljOgorICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNFbnVtZXJhdG9yIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhTGlzdChnZXRDYW1lcmFMaXN0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElFdnNDYW1lcmE+PiBvcGVuQ2FtZXJhKGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFJZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlQ2FtZXJhKGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0NhbWVyYT4mIGNhckNhbWVyYSkgIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJRXZzRGlzcGxheT4+IG9wZW5EaXNwbGF5KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZURpc3BsYXkoY29uc3QgOjphbmRyb2lkOjpzcDxJRXZzRGlzcGxheT4mIGRpc3BsYXkpICBvdmVycmlkZTsKKyAgICBSZXR1cm48RGlzcGxheVN0YXRlPiBnZXREaXNwbGF5U3RhdGUoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgRXZzRW51bWVyYXRvcigpOworCitwcml2YXRlOgorICAgIC8vIE5PVEU6ICBBbGwgbWVtYmVycyB2YWx1ZXMgYXJlIHN0YXRpYyBzbyB0aGF0IGFsbCBjbGllbnRzIG9wZXJhdGUgb24gdGhlIHNhbWUgc3RhdGUKKyAgICAvLyAgICAgICAgVGhhdCBpcyB0byBzYXksIHRoaXMgaXMgZWZmZWN0aXZlbHkgYSBzaW5nbGV0b24gZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IEhJREwKKyAgICAvLyAgICAgICAgY29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBmb3IgZWFjaCBjbGllbnQuCisgICAgc3RydWN0IENhbWVyYVJlY29yZCB7CisgICAgICAgIENhbWVyYURlc2MgICAgICAgICAgZGVzYzsKKyAgICAgICAgd3A8RXZzQ2FtZXJhPiAgICAgICBhY3RpdmVJbnN0YW5jZTsKKworICAgICAgICBDYW1lcmFSZWNvcmQoY29uc3QgY2hhciAqY2FtZXJhSWQpIDogZGVzYygpIHsgZGVzYy5jYW1lcmFJZCA9IGNhbWVyYUlkOyB9CisgICAgfTsKKyAgICBzdGF0aWMgc3RkOjpsaXN0PENhbWVyYVJlY29yZD4gc0NhbWVyYUxpc3Q7CisKKyAgICBzdGF0aWMgd3A8RXZzRGlzcGxheT4gICAgICAgICAgc0FjdGl2ZURpc3BsYXk7IC8vIFdlYWsgcG9pbnRlci4gT2JqZWN0IGRlc3RydWN0cyBpZiBjbGllbnQgZGllcy4KK307CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBldnMKK30gLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVVRPTU9USVZFX0VWU19WMV8wX0VWU0NBTUVSQUVOVU1FUkFUT1JfSApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvU2VydmljZU5hbWVzLmggYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9TZXJ2aWNlTmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjBhMzdmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvU2VydmljZU5hbWVzLmgKQEAgLTAsMCArMSwxNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK2NvbnN0IHN0YXRpYyBjaGFyIGtFbnVtZXJhdG9yU2VydmljZU5hbWVbXSA9ICJFdnNFbnVtZXJhdG9ySHctTW9jayI7CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlLnJjIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTU3ZWNmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgZXZzLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgY2FtZXJhc2VydmVyCisgICAgZ3JvdXAgY2FtZXJhCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MTgxYjkKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cm9uZ1BvaW50ZXIuaD4KKworI2luY2x1ZGUgIlNlcnZpY2VOYW1lcy5oIgorI2luY2x1ZGUgIkV2c0VudW1lcmF0b3IuaCIKKyNpbmNsdWRlICJFdnNEaXNwbGF5LmgiCisKKworLy8gbGliaGlkbDoKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOworCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUV2c0VudW1lcmF0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzRGlzcGxheTsKKworLy8gVGhlIG5hbWVzcGFjZSBpbiB3aGljaCBhbGwgb3VyIGltcGxlbWVudGF0aW9uIGNvZGUgbGl2ZXMKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjppbXBsZW1lbnRhdGlvbjsKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOworCisKK2ludCBtYWluKCkgeworICAgIEFMT0dJKCJFVlMgSGFyZHdhcmUgRW51bWVyYXRvciBzZXJ2aWNlIGlzIHN0YXJ0aW5nIik7CisgICAgYW5kcm9pZDo6c3A8SUV2c0VudW1lcmF0b3I+IHNlcnZpY2UgPSBuZXcgRXZzRW51bWVyYXRvcigpOworCisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qIGNhbGxlcldpbGxKb2luICovKTsKKworICAgIC8vIFJlZ2lzdGVyIG91ciBzZXJ2aWNlIC0tIGlmIHNvbWVib2R5IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBieSBvdXIgbmFtZSwKKyAgICAvLyB0aGV5IHdpbGwgYmUga2lsbGVkICh0aGVpciB0aHJlYWQgcG9vbCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbikuCisgICAgc3RhdHVzX3Qgc3RhdHVzID0gc2VydmljZS0+cmVnaXN0ZXJBc1NlcnZpY2Uoa0VudW1lcmF0b3JTZXJ2aWNlTmFtZSk7CisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBBTE9HRCgiJXMgaXMgcmVhZHkuIiwga0VudW1lcmF0b3JTZXJ2aWNlTmFtZSk7CisgICAgICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIkNvdWxkIG5vdCByZWdpc3RlciBzZXJ2aWNlICVzICglZCkuIiwga0VudW1lcmF0b3JTZXJ2aWNlTmFtZSwgc3RhdHVzKTsKKyAgICB9CisKKyAgICAvLyBJbiBub3JtYWwgb3BlcmF0aW9uLCB3ZSBkb24ndCBleHBlY3QgdGhlIHRocmVhZCBwb29sIHRvIGV4aXQKKyAgICBBTE9HRSgiRVZTIEhhcmR3YXJlIEVudW1lcmF0b3IgaXMgc2h1dHRpbmcgZG93biIpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3R5cGVzLmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NlYmY2ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA7CisKKworLyoqCisgKiBTdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgYmFzaWMgcHJvcGVydGllcyBvZiBhbiBFVlMgY2FtZXJhCisgKgorICogVGhlIEhBTCBpcyByZXNwb25zaWJsZSBmb3IgZmlsbGluZyBvdXQgdGhpcyBzdHJ1Y3R1cmUgZm9yIGVhY2gKKyAqIEVWUyBjYW1lcmEgaW4gdGhlIHN5c3RlbS4KKyAqLworc3RydWN0IENhbWVyYURlc2MgeworICAgIHN0cmluZyAgICAgIGNhbWVyYUlkOworICAgIHVpbnQzMl90ICAgIHZlbmRvckZsYWdzOyAgICAvLyBPcGFxdWUgdmFsdWUgZnJvbSBkcml2ZXIKK307CisKKworLyoqCisgKiBTdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgYmFzaWMgcHJvcGVydGllcyBvZiBhbiBFVlMgZGlzcGxheQorICoKKyAqIFRoZSBIQUwgaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgb3V0IHRoaXMgc3RydWN0dXJlIHRvIGRlc2NyaWJlCisgKiB0aGUgRVZTIGRpc3BsYXkuIEFzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgdGhpcyBtYXkgYmUgYSBwaHlzaWNhbAorICogZGlzcGxheSBvciBhIHZpcnR1YWwgZGlzcGxheSB0aGF0IGlzIG92ZXJsYWlkIG9yIG1peGVkIHdpdGggYW5vdGhlcgorICogcHJlc2VudGF0aW9uIGRldmljZS4KKyAqLworc3RydWN0IERpc3BsYXlEZXNjIHsKKyAgICBzdHJpbmcgICAgICBkaXNwbGF5SWQ7CisgICAgdWludDMyX3QgICAgdmVuZG9yRmxhZ3M7ICAgIC8vIE9wYXF1ZSB2YWx1ZSBmcm9tIGRyaXZlcgorfTsKKworCisvKioKKyAqIFN0cnVjdHVyZSByZXByZXNlbnRpbmcgYW4gaW1hZ2UgYnVmZmVyIHRocm91Z2ggb3VyIEFQSXMKKyAqCisgKiBJbiBhZGRpdGlvbiB0byB0aGUgaGFuZGxlIHRvIHRoZSBncmFwaGljcyBtZW1vcnksIHdlIG5lZWQgdG8gcmV0YWluCisgKiB0aGUgcHJvcGVydGllcyBvZiB0aGUgYnVmZmVyIGZvciBlYXN5IHJlZmVyZW5jZSBhbmQgcmVjb25zdHJ1Y3Rpb24gb2YKKyAqIGFuIEFOYXRpdmVXaW5kb3dCdWZmZXIgb2JqZWN0IG9uIHRoZSByZW1vdGUgc2lkZSBvZiBBUEkgY2FsbHMuCisgKiAoTm90IGxlYXN0IGJlY2F1c2UgT3BlbkdMIGV4cGVjdCBhbiBBTmF0aXZlV2luZG93QnVmZmVyKiBmb3IgdXMgYXMgYQorICogdGV4dHVyZSB2aWEgZWdsQ3JlYXRlSW1hZ2VLSFIoKS4KKyAqIFNlZSBhbHNvIHJlbGF0ZWQgdHlwZXMgZnJvbSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbgorICogVE9ETzogIGIvMzQ3MjI1MDggIFJldmlldyBkZXRhaWxzIG9mIGludGVyYWN0aW9uIG9mIHRoaXMgc3RydWN0dXJlIHdpdGggZ3JhbGxvYyBhbmQgT3BlbkdMLgorICogICAgICAgIFNwZWNpZmljYWxseSBjb25zaWRlciBpZiBmb3JtYXQgYW5kL29yIHVzYWdlIHNob3VsZCBiZWNvbWUgZW51bWVyYXRlZCB0eXBlcy4KKyAqLworc3RydWN0IEJ1ZmZlckRlc2MgeworICAgIHVpbnQzMl90ICAgIHdpZHRoOyAgICAgIC8vIFVuaXRzIG9mIHBpeGVscworICAgIHVpbnQzMl90ICAgIGhlaWdodDsgICAgIC8vIFVuaXRzIG9mIHBpeGVscworICAgIHVpbnQzMl90ICAgIHN0cmlkZTsgICAgIC8vIFVuaXRzIG9mIHBpeGVscyB0byBtYXRjaCBncmFsbG9jCisgICAgdWludDMyX3QgICAgcGl4ZWxTaXplOyAgLy8gVW5pdHMgb2YgYnl0ZXMKKyAgICB1aW50MzJfdCAgICBmb3JtYXQ7ICAgICAvLyBNYXkgY29udGFpbiB2YWx1ZXMgZnJvbSBhbmRyb2lkX3BpeGVsX2Zvcm1hdF90CisgICAgdWludDMyX3QgICAgdXNhZ2U7ICAgICAgLy8gTWF5IGNvbnRhaW4gdmFsdWVzIGZyb20gZnJvbSBHcmFsbG9jLmgKKyAgICB1aW50MzJfdCAgICBidWZmZXJJZDsgICAvLyBPcGFxdWUgdmFsdWUgZnJvbSBkcml2ZXIKKyAgICBoYW5kbGUgICAgICBtZW1IYW5kbGU7ICAvLyBncmFsbG9jIG1lbW9yeSBidWZmZXIgaGFuZGxlCit9OworCisKKy8qKgorICogU3RhdGVzIGZvciBjb250cm9sIG9mIHRoZSBFVlMgZGlzcGxheQorICoKKyAqIFRoZSBEaXNwbGF5SW5mbyBzdHJ1Y3R1cmUgZGVzY3JpYmVzIHRoZSBiYXNpYyBwcm9wZXJ0aWVzIG9mIGFuIEVWUyBkaXNwbGF5LiBBbnkgRVZTCisgKiBpbXBsZW1lbnRhdGlvbiBpcyByZXF1aXJlZCB0byBoYXZlIG9uZS4gVGhlIEhBTCBpcyByZXNwb25zaWJsZSBmb3IgZmlsbGluZyBvdXQgdGhpcworICogc3RydWN0dXJlIHRvIGRlc2NyaWJlIHRoZSBFVlMgZGlzcGxheS4gQXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCB0aGlzIG1heSBiZSBhCisgKiBwaHlzaWNhbCBkaXNwbGF5IG9yIGEgdmlydHVhbCBkaXNwbGF5IHRoYXQgaXMgb3ZlcmxhaWQgb3IgbWl4ZWQgd2l0aCBhbm90aGVyCisgKiBwcmVzZW50YXRpb24gZGV2aWNlLgorICovCitlbnVtIERpc3BsYXlTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBOT1RfT1BFTiA9IDAsICAgICAgICAgICAvLyBEaXNwbGF5IGhhcyBub3QgYmVlbiByZXF1ZXN0ZWQgYnkgYW55IGFwcGxpY2F0aW9uCisgICAgTk9UX1ZJU0lCTEUsICAgICAgICAgICAgLy8gRGlzcGxheSBpcyBpbmhpYml0ZWQKKyAgICBWSVNJQkxFX09OX05FWFRfRlJBTUUsICAvLyBXaWxsIGJlY29tZSB2aXNpYmxlIHdpdGggbmV4dCBmcmFtZQorICAgIFZJU0lCTEUsICAgICAgICAgICAgICAgIC8vIERpc3BsYXkgaXMgY3VycmVudGx5IGFjdGl2ZQorICAgIERFQUQsICAgICAgICAgICAgICAgICAgIC8vIERyaXZlciBpcyBpbiBhbiB1bmRlZmluZWQgc3RhdGUuICBJbnRlcmZhY2Ugc2hvdWxkIGJlIGNsb3NlZC4KKyAgICBOVU1fU1RBVEVTICAgICAgICAgICAgICAvLyBNdXN0IGJlIGxhc3QKK307CisKKworLyoqIEVycm9yIGNvZGVzIHVzZWQgaW4gRVZTIEhBTCBpbnRlcmZhY2UuICovCitlbnVtIEV2c1Jlc3VsdCA6IHVpbnQzMl90IHsKKyAgICBPSyA9IDAsCisgICAgSU5WQUxJRF9BUkcsCisgICAgU1RSRUFNX0FMUkVBRFlfUlVOTklORywKKyAgICBCVUZGRVJfTk9UX0FWQUlMQUJMRSwKKyAgICBPV05FUlNISVBfTE9TVCwKKyAgICBVTkRFUkxZSU5HX1NFUlZJQ0VfRVJST1IsCit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODZlOWJjCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0NiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0V2c1YxXzBUYXJnZXQiLAorCisgICAgc3JjczogWworICAgICAgICAiVnRzRXZzVjFfMFRhcmdldFRlc3QuY3BwIiwKKyAgICAgICAgIkZyYW1lSGFuZGxlci5jcHAiLAorICAgICAgICAiRm9ybWF0Q29udmVydC5jcHAiCisgICAgXSwKKworICAgIGRlZmF1bHRzOiBbCisgICAgICAgICJoaWRsX2RlZmF1bHRzIiwKKyAgICBdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJ1aSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICBdLAorCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KKwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1Y2M4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRm9ybWF0Q29udmVydC5jcHAKQEAgLTAsMCArMSwxNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEV2c1Rlc3QiCisKKyNpbmNsdWRlICJGb3JtYXRDb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+ICAgIC8vIHN0ZDo6bWluCisKKworLy8gUm91bmQgdXAgdG8gdGhlIG5lYXJlc3QgbXVsdGlwbGUgb2YgdGhlIGdpdmVuIGFsaWdubWVudCB2YWx1ZQordGVtcGxhdGU8dW5zaWduZWQgYWxpZ25tZW50PgoraW50IGFsaWduKGludCB2YWx1ZSkgeworICAgIHN0YXRpY19hc3NlcnQoKGFsaWdubWVudCAmJiAhKGFsaWdubWVudCAmIChhbGlnbm1lbnQgLSAxKSkpLAorICAgICAgICAgICAgICAgICAgImFsaWdubWVudCBtdXN0IGJlIGEgcG93ZXIgb2YgMiIpOworCisgICAgdW5zaWduZWQgbWFzayA9IGFsaWdubWVudCAtIDE7CisgICAgcmV0dXJuICh2YWx1ZSArIG1hc2spICYgfm1hc2s7Cit9CisKKworLy8gTGltaXQgdGhlIGdpdmVuIHZhbHVlIHRvIHRoZSBwcm92aWRlZCByYW5nZS4gIDopCitzdGF0aWMgaW5saW5lIGZsb2F0IGNsYW1wKGZsb2F0IHYsIGZsb2F0IG1pbiwgZmxvYXQgbWF4KSB7CisgICAgaWYgKHYgPCBtaW4pIHJldHVybiBtaW47CisgICAgaWYgKHYgPiBtYXgpIHJldHVybiBtYXg7CisgICAgcmV0dXJuIHY7Cit9CisKKworc3RhdGljIHVpbnQzMl90IHl1dlRvUmdieChjb25zdCB1bnNpZ25lZCBjaGFyIFksIGNvbnN0IHVuc2lnbmVkIGNoYXIgVWluLCBjb25zdCB1bnNpZ25lZCBjaGFyIFZpbikgeworICAgIC8vIERvbid0IHVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgYmVzdCBwZXJmb3JtYW5jZS4gIDopCisgICAgLy8gQmV0dGVyIHRvIGRvIHRoaXMgaW4gYSBwaXhlbCBzaGFkZXIgaWYgd2UgcmVhbGx5IGhhdmUgdG8sIGJ1dCBvbiBhY3R1YWwKKyAgICAvLyBlbWJlZGRlZCBoYXJkd2FyZSB3ZSBleHBlY3QgdG8gYmUgYWJsZSB0byB0ZXh0dXJlIGRpcmVjdGx5IGZyb20gdGhlIFlVViBkYXRhCisgICAgZmxvYXQgVSA9IFVpbiAtIDEyOC4wZjsKKyAgICBmbG9hdCBWID0gVmluIC0gMTI4LjBmOworCisgICAgZmxvYXQgUmYgPSBZICsgMS4xNDBmKlY7CisgICAgZmxvYXQgR2YgPSBZIC0gMC4zOTVmKlUgLSAwLjU4MWYqVjsKKyAgICBmbG9hdCBCZiA9IFkgKyAyLjAzMmYqVTsKKyAgICB1bnNpZ25lZCBjaGFyIFIgPSAodW5zaWduZWQgY2hhciljbGFtcChSZiwgMC4wZiwgMjU1LjBmKTsKKyAgICB1bnNpZ25lZCBjaGFyIEcgPSAodW5zaWduZWQgY2hhciljbGFtcChHZiwgMC4wZiwgMjU1LjBmKTsKKyAgICB1bnNpZ25lZCBjaGFyIEIgPSAodW5zaWduZWQgY2hhciljbGFtcChCZiwgMC4wZiwgMjU1LjBmKTsKKworICAgIHJldHVybiAoUiAgICAgICkgfAorICAgICAgICAgICAoRyA8PCAgOCkgfAorICAgICAgICAgICAoQiA8PCAxNikgfAorICAgICAgICAgICAweEZGMDAwMDAwOyAgLy8gRmlsbCB0aGUgYWxwaGEgY2hhbm5lbCB3aXRoIG9uZXMKK30KKworCit2b2lkIGNvcHlOVjIxdG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLAorICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzKQoreworICAgIC8vIFRoZSBOVjIxIGZvcm1hdCBwcm92aWRlcyBhIFkgYXJyYXkgb2YgOGJpdCB2YWx1ZXMsIGZvbGxvd2VkIGJ5IGEgMS8yIHggMS8yIGludGVybGVhdmVkCisgICAgLy8gVS9WIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLCBhbmQgYSBob3Jpem9udGFsCisgICAgLy8gc3RyaWRlIHRoYXQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiAxNiBieXRlcyBmb3IgYm90aCB0aGUgWSBhbmQgVVYgYXJyYXlzLgorICAgIHVuc2lnbmVkIHN0cmlkZUx1bSA9IGFsaWduPDE2Pih3aWR0aCk7CisgICAgdW5zaWduZWQgc2l6ZVkgPSBzdHJpZGVMdW0gKiBoZWlnaHQ7CisgICAgdW5zaWduZWQgc3RyaWRlQ29sb3IgPSBzdHJpZGVMdW07ICAgLy8gMS8yIHRoZSBzYW1wbGVzLCBidXQgdHdvIGludGVybGVhdmVkIGNoYW5uZWxzCisgICAgdW5zaWduZWQgb2Zmc2V0VVYgPSBzaXplWTsKKworICAgIHVpbnQ4X3QqIHNyY1kgPSBzcmM7CisgICAgdWludDhfdCogc3JjVVYgPSBzcmMrb2Zmc2V0VVY7CisKKyAgICBmb3IgKHVuc2lnbmVkIHIgPSAwOyByIDwgaGVpZ2h0OyByKyspIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IHdlJ3JlIHdhbGtpbmcgdGhlIHNhbWUgVVYgcm93IHR3aWNlIGZvciBldmVuL29kZCBsdW1pbmFuY2Ugcm93cworICAgICAgICB1aW50OF90KiByb3dZICA9IHNyY1kgICsgcipzdHJpZGVMdW07CisgICAgICAgIHVpbnQ4X3QqIHJvd1VWID0gc3JjVVYgKyAoci8yICogc3RyaWRlQ29sb3IpOworCisgICAgICAgIHVpbnQzMl90KiByb3dEZXN0ID0gZHN0ICsgcipkc3RTdHJpZGVQaXhlbHM7CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBjID0gMDsgYyA8IHdpZHRoOyBjKyspIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHVDb2wgPSAoYyAmIH4xKTsgICAvLyB1Q29sIGlzIGFsd2F5cyBldmVuIGFuZCByZXBlYXRzIDE6MiB3aXRoIFkgdmFsdWVzCisgICAgICAgICAgICB1bnNpZ25lZCB2Q29sID0gdUNvbCB8IDE7ICAgLy8gdkNvbCBpcyBhbHdheXMgb2RkCisgICAgICAgICAgICByb3dEZXN0W2NdID0geXV2VG9SZ2J4KHJvd1lbY10sIHJvd1VWW3VDb2xdLCByb3dVVlt2Q29sXSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKwordm9pZCBjb3B5WVYxMnRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZVBpeGVscykKK3sKKyAgICAvLyBUaGUgWVYxMiBmb3JtYXQgcHJvdmlkZXMgYSBZIGFycmF5IG9mIDhiaXQgdmFsdWVzLCBmb2xsb3dlZCBieSBhIDEvMiB4IDEvMiBVIGFycmF5LCBmb2xsb3dlZAorICAgIC8vIGJ5IGFub3RoZXIgMS8yIHggMS8yIFYgYXJyYXkuICBJdCBhc3N1bWVzIGFuIGV2ZW4gd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIG92ZXJhbGwgaW1hZ2UsCisgICAgLy8gYW5kIGEgaG9yaXpvbnRhbCBzdHJpZGUgdGhhdCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzIGZvciBlYWNoIG9mIHRoZSBZLCBVLAorICAgIC8vIGFuZCBWIGFycmF5cy4KKyAgICB1bnNpZ25lZCBzdHJpZGVMdW0gPSBhbGlnbjwxNj4od2lkdGgpOworICAgIHVuc2lnbmVkIHNpemVZID0gc3RyaWRlTHVtICogaGVpZ2h0OworICAgIHVuc2lnbmVkIHN0cmlkZUNvbG9yID0gYWxpZ248MTY+KHN0cmlkZUx1bS8yKTsKKyAgICB1bnNpZ25lZCBzaXplQ29sb3IgPSBzdHJpZGVDb2xvciAqIGhlaWdodC8yOworICAgIHVuc2lnbmVkIG9mZnNldFUgPSBzaXplWTsKKyAgICB1bnNpZ25lZCBvZmZzZXRWID0gc2l6ZVkgKyBzaXplQ29sb3I7CisKKyAgICB1aW50OF90KiBzcmNZID0gc3JjOworICAgIHVpbnQ4X3QqIHNyY1UgPSBzcmMrb2Zmc2V0VTsKKyAgICB1aW50OF90KiBzcmNWID0gc3JjK29mZnNldFY7CisKKyAgICBmb3IgKHVuc2lnbmVkIHIgPSAwOyByIDwgaGVpZ2h0OyByKyspIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IHdlJ3JlIHdhbGtpbmcgdGhlIHNhbWUgVSBhbmQgViByb3dzIHR3aWNlIGZvciBldmVuL29kZCBsdW1pbmFuY2Ugcm93cworICAgICAgICB1aW50OF90KiByb3dZID0gc3JjWSArIHIqc3RyaWRlTHVtOworICAgICAgICB1aW50OF90KiByb3dVID0gc3JjVSArIChyLzIgKiBzdHJpZGVDb2xvcik7CisgICAgICAgIHVpbnQ4X3QqIHJvd1YgPSBzcmNWICsgKHIvMiAqIHN0cmlkZUNvbG9yKTsKKworICAgICAgICB1aW50MzJfdCogcm93RGVzdCA9IGRzdCArIHIqZHN0U3RyaWRlUGl4ZWxzOworCisgICAgICAgIGZvciAodW5zaWduZWQgYyA9IDA7IGMgPCB3aWR0aDsgYysrKSB7CisgICAgICAgICAgICByb3dEZXN0W2NdID0geXV2VG9SZ2J4KHJvd1lbY10sIHJvd1VbY10sIHJvd1ZbY10pOworICAgICAgICB9CisgICAgfQorfQorCisKK3ZvaWQgY29weVlVWVZ0b1JHQjMyKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICB1aW50OF90KiBzcmMsIHVuc2lnbmVkIHNyY1N0cmlkZVBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZVBpeGVscykKK3sKKyAgICB1aW50MzJfdCogc3JjV29yZHMgPSAodWludDMyX3QqKXNyYzsKKworICAgIGNvbnN0IGludCBzcmNSb3dQYWRkaW5nMzIgPSBzcmNTdHJpZGVQaXhlbHMvMiAtIHdpZHRoLzI7ICAvLyAyIGJ5dGVzIHBlciBwaXhlbCwgNCBieXRlcyBwZXIgd29yZAorICAgIGNvbnN0IGludCBkc3RSb3dQYWRkaW5nMzIgPSBkc3RTdHJpZGVQaXhlbHMgICAtIHdpZHRoOyAgICAvLyA0IGJ5dGVzIHBlciBwaXhlbCwgNCBieXRlcyBwZXIgd29yZAorCisgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IGhlaWdodDsgcisrKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgYyA9IDA7IGMgPCB3aWR0aC8yOyBjKyspIHsKKyAgICAgICAgICAgIC8vIE5vdGU6ICB3ZSdyZSB3YWxraW5nIHR3byBwaXhlbHMgYXQgYSB0aW1lIGhlcmUgKGV2ZW4vb2RkKQorICAgICAgICAgICAgdWludDMyX3Qgc3JjUGl4ZWwgPSAqc3JjV29yZHMrKzsKKworICAgICAgICAgICAgdWludDhfdCBZMSA9IChzcmNQaXhlbCkgICAgICAgJiAweEZGOworICAgICAgICAgICAgdWludDhfdCBVICA9IChzcmNQaXhlbCA+PiA4KSAgJiAweEZGOworICAgICAgICAgICAgdWludDhfdCBZMiA9IChzcmNQaXhlbCA+PiAxNikgJiAweEZGOworICAgICAgICAgICAgdWludDhfdCBWICA9IChzcmNQaXhlbCA+PiAyNCkgJiAweEZGOworCisgICAgICAgICAgICAvLyBPbiB0aGUgUkdCIG91dHB1dCwgd2UncmUgd3JpdGluZyBvbmUgcGl4ZWwgYXQgYSB0aW1lCisgICAgICAgICAgICAqKGRzdCswKSA9IHl1dlRvUmdieChZMSwgVSwgVik7CisgICAgICAgICAgICAqKGRzdCsxKSA9IHl1dlRvUmdieChZMiwgVSwgVik7CisgICAgICAgICAgICBkc3QgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNraXAgb3ZlciBhbnkgZXh0cmEgZGF0YSBvciBlbmQgb2Ygcm93IGFsaWdubWVudCBwYWRkaW5nCisgICAgICAgIHNyY1dvcmRzICs9IHNyY1Jvd1BhZGRpbmczMjsKKyAgICAgICAgZHN0ICs9IGRzdFJvd1BhZGRpbmczMjsKKyAgICB9Cit9CisKKwordm9pZCBjb3B5TWF0Y2hlZEludGVybGVhdmVkRm9ybWF0cyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBzcmMsIHVuc2lnbmVkIHNyY1N0cmlkZVBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHBpeGVsU2l6ZSkgeworICAgIGZvciAodW5zaWduZWQgcm93ID0gMDsgcm93IDwgaGVpZ2h0OyByb3crKykgeworICAgICAgICAvLyBDb3B5IHRoZSBlbnRpcmUgcm93IG9mIHBpeGVsIGRhdGEKKyAgICAgICAgbWVtY3B5KGRzdCwgc3JjLCB3aWR0aCAqIHBpeGVsU2l6ZSk7CisKKyAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCByb3cgKGtlZXBpbmcgaW4gbWluZCB0aGF0IHN0cmlkZSBoZXJlIGlzIGluIHVuaXRzIG9mIHBpeGVscykKKyAgICAgICAgc3JjID0gKHVpbnQ4X3QqKXNyYyArIHNyY1N0cmlkZVBpeGVscyAqIHBpeGVsU2l6ZTsKKyAgICAgICAgZHN0ID0gKHVpbnQ4X3QqKWRzdCArIGRzdFN0cmlkZVBpeGVscyAqIHBpeGVsU2l6ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRm9ybWF0Q29udmVydC5oIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmYxZWVjCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBFVlNfVlRTX0ZPUk1BVENPTlZFUlRfSAorI2RlZmluZSBFVlNfVlRTX0ZPUk1BVENPTlZFUlRfSAorCisjaW5jbHVkZSA8cXVldWU+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKworLy8gR2l2ZW4gYW4gaW1hZ2UgYnVmZmVyIGluIE5WMjEgZm9ybWF0IChIQUxfUElYRUxfRk9STUFUX1lDUkNCXzQyMF9TUCksIG91dHB1dCAzMmJpdCBSR0J4IHZhbHVlcy4KKy8vIFRoZSBOVjIxIGZvcm1hdCBwcm92aWRlcyBhIFkgYXJyYXkgb2YgOGJpdCB2YWx1ZXMsIGZvbGxvd2VkIGJ5IGEgMS8yIHggMS8yIGludGVybGVhdmVkCisvLyBVL1YgYXJyYXkuICBJdCBhc3N1bWVzIGFuIGV2ZW4gd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIG92ZXJhbGwgaW1hZ2UsIGFuZCBhIGhvcml6b250YWwKKy8vIHN0cmlkZSB0aGF0IGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTYgYnl0ZXMgZm9yIGJvdGggdGhlIFkgYW5kIFVWIGFycmF5cy4KK3ZvaWQgY29weU5WMjF0b1JHQjMyKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICB1aW50OF90KiBzcmMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMpOworCisKKy8vIEdpdmVuIGFuIGltYWdlIGJ1ZmZlciBpbiBZVjEyIGZvcm1hdCAoSEFMX1BJWEVMX0ZPUk1BVF9ZVjEyKSwgb3V0cHV0IDMyYml0IFJHQnggdmFsdWVzLgorLy8gVGhlIFlWMTIgZm9ybWF0IHByb3ZpZGVzIGEgWSBhcnJheSBvZiA4Yml0IHZhbHVlcywgZm9sbG93ZWQgYnkgYSAxLzIgeCAxLzIgVSBhcnJheSwgZm9sbG93ZWQKKy8vIGJ5IGFub3RoZXIgMS8yIHggMS8yIFYgYXJyYXkuICBJdCBhc3N1bWVzIGFuIGV2ZW4gd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIG92ZXJhbGwgaW1hZ2UsCisvLyBhbmQgYSBob3Jpem9udGFsIHN0cmlkZSB0aGF0IGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTYgYnl0ZXMgZm9yIGVhY2ggb2YgdGhlIFksIFUsCisvLyBhbmQgViBhcnJheXMuCit2b2lkIGNvcHlZVjEydG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLAorICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzKTsKKworCisvLyBHaXZlbiBhbiBpbWFnZSBidWZmZXIgaW4gWVVZViBmb3JtYXQgKEhBTF9QSVhFTF9GT1JNQVRfWUNCQ1JfNDIyX0kpLCBvdXRwdXQgMzJiaXQgUkdCeCB2YWx1ZXMuCisvLyBUaGUgTlYyMSBmb3JtYXQgcHJvdmlkZXMgYSBZIGFycmF5IG9mIDhiaXQgdmFsdWVzLCBmb2xsb3dlZCBieSBhIDEvMiB4IDEvMiBpbnRlcmxlYXZlZAorLy8gVS9WIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLCBhbmQgYSBob3Jpem9udGFsCisvLyBzdHJpZGUgdGhhdCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzIGZvciBib3RoIHRoZSBZIGFuZCBVViBhcnJheXMuCit2b2lkIGNvcHlZVVlWdG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZUJ5dGVzKTsKKworCisvLyBHaXZlbiBhbiBzaW1wbGUgcmVjdGFuZ3VsYXIgaW1hZ2UgYnVmZmVyIHdpdGggYW4gaW50ZWdlciBudW1iZXIgb2YgYnl0ZXMgcGVyIHBpeGVsLAorLy8gY29weSB0aGUgcGl4ZWwgdmFsdWVzIGludG8gYSBuZXcgcmVjdGFuZ3VsYXIgYnVmZmVyIChwb3RlbnRpYWxseSB3aXRoIGEgZGlmZmVyZW50IHN0cmlkZSkuCisvLyBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHRvIGNvcHkgUkdCeCBkYXRhIGludG8gYW4gUkdCeCBvdXRwdXQgYnVmZmVyLgordm9pZCBjb3B5TWF0Y2hlZEludGVybGVhdmVkRm9ybWF0cyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBzcmMsIHVuc2lnbmVkIHNyY1N0cmlkZVBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHBpeGVsU2l6ZSk7CisKKyNlbmRpZiAvLyBFVlNfVlRTX0ZPUk1BVENPTlZFUlRfSApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0ZyYW1lSGFuZGxlci5jcHAgYi9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRnJhbWVIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjlmNzJiCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0ZyYW1lSGFuZGxlci5jcHAKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEV2c1Rlc3QiCisKKyNpbmNsdWRlICJGcmFtZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJGb3JtYXRDb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxjdXRpbHMvbmF0aXZlX2hhbmRsZS5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXIuaD4KKworCitGcmFtZUhhbmRsZXI6OkZyYW1lSGFuZGxlcihhbmRyb2lkOjpzcCA8SUV2c0NhbWVyYT4gcENhbWVyYSwgQ2FtZXJhRGVzYyBjYW1lcmFJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6c3AgPElFdnNEaXNwbGF5PiBwRGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlckNvbnRyb2xGbGFnIG1vZGUpIDoKKyAgICBtQ2FtZXJhKHBDYW1lcmEpLAorICAgIG1DYW1lcmFJbmZvKGNhbWVyYUluZm8pLAorICAgIG1EaXNwbGF5KHBEaXNwbGF5KSwKKyAgICBtUmV0dXJuTW9kZShtb2RlKSB7CisgICAgLy8gTm90aGluZyBidXQgbWVtYmVyIGluaXRpYWxpemF0aW9uIGhlcmUuLi4KK30KKworCit2b2lkIEZyYW1lSGFuZGxlcjo6c2h1dGRvd24oKQoreworICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBub3Qgc3RpbGwgc3RyZWFtaW5nCisgICAgYmxvY2tpbmdTdG9wU3RyZWFtKCk7CisKKyAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgcmVjZWl2ZXIgdGhyZWFkIGlzIG5vIGxvbmdlciBydW5uaW5nLCBzbyB3ZSBjYW4gc2FmZWx5IGRyb3AKKyAgICAvLyBvdXIgcmVtb3RlIG9iamVjdCByZWZlcmVuY2VzIHNvIHRoZXkgY2FuIGJlIGZyZWVkCisgICAgbUNhbWVyYSA9IG51bGxwdHI7CisgICAgbURpc3BsYXkgPSBudWxscHRyOworfQorCisKK2Jvb2wgRnJhbWVIYW5kbGVyOjpzdGFydFN0cmVhbSgpIHsKKyAgICAvLyBUZWxsIHRoZSBjYW1lcmEgdG8gc3RhcnQgc3RyZWFtaW5nCisgICAgUmV0dXJuPEV2c1Jlc3VsdD4gcmVzdWx0ID0gbUNhbWVyYS0+c3RhcnRWaWRlb1N0cmVhbSh0aGlzKTsKKyAgICBpZiAocmVzdWx0ICE9IEV2c1Jlc3VsdDo6T0spIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIE1hcmsgb3Vyc2VsdmVzIGFzIHJ1bm5pbmcKKyAgICBtTG9jay5sb2NrKCk7CisgICAgbVJ1bm5pbmcgPSB0cnVlOworICAgIG1Mb2NrLnVubG9jaygpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OmFzeW5jU3RvcFN0cmVhbSgpIHsKKyAgICAvLyBUZWxsIHRoZSBjYW1lcmEgdG8gc3RvcCBzdHJlYW1pbmcuCisgICAgLy8gVGhpcyB3aWxsIHJlc3VsdCBpbiBhIG51bGwgZnJhbWUgYmVpbmcgZGVsaXZlcmVkIHdoZW4gdGhlIHN0cmVhbSBhY3R1YWxseSBzdG9wcy4KKyAgICBtQ2FtZXJhLT5zdG9wVmlkZW9TdHJlYW0oKTsKK30KKworCit2b2lkIEZyYW1lSGFuZGxlcjo6YmxvY2tpbmdTdG9wU3RyZWFtKCkgeworICAgIC8vIFRlbGwgdGhlIHN0cmVhbSB0byBzdG9wCisgICAgYXN5bmNTdG9wU3RyZWFtKCk7CisKKyAgICAvLyBXYWl0IHVudGlsIHRoZSBzdHJlYW0gaGFzIGFjdHVhbGx5IHN0b3BwZWQKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobUxvY2spOworICAgIGlmIChtUnVubmluZykgeworICAgICAgICBtU2lnbmFsLndhaXQobG9jaywgW3RoaXNdKCkgeyByZXR1cm4gIW1SdW5uaW5nOyB9KTsKKyAgICB9Cit9CisKKworYm9vbCBGcmFtZUhhbmRsZXI6OnJldHVybkhlbGRCdWZmZXIoKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKworICAgIC8vIFJldHVybiB0aGUgb2xkZXN0IGJ1ZmZlciB3ZSdyZSBob2xkaW5nCisgICAgaWYgKG1IZWxkQnVmZmVycy5lbXB0eSgpKSB7CisgICAgICAgIC8vIE5vIGJ1ZmZlcnMgYXJlIGN1cnJlbnRseSBoZWxkCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBCdWZmZXJEZXNjIGJ1ZmZlciA9IG1IZWxkQnVmZmVycy5mcm9udCgpOworICAgIG1IZWxkQnVmZmVycy5wb3AoKTsKKyAgICBtQ2FtZXJhLT5kb25lV2l0aEZyYW1lKGJ1ZmZlcik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCitib29sIEZyYW1lSGFuZGxlcjo6aXNSdW5uaW5nKCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgcmV0dXJuIG1SdW5uaW5nOworfQorCisKK3ZvaWQgRnJhbWVIYW5kbGVyOjp3YWl0Rm9yRnJhbWVDb3VudCh1bnNpZ25lZCBmcmFtZUNvdW50KSB7CisgICAgLy8gV2FpdCB1bnRpbCB3ZSd2ZSBzZWVuIGF0IGxlYXN0IHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mIGZyYW1lcyAoY291bGQgYmUgbW9yZSkKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobUxvY2spOworICAgIG1TaWduYWwud2FpdChsb2NrLCBbdGhpcywgZnJhbWVDb3VudF0oKXsgcmV0dXJuIG1GcmFtZXNSZWNlaXZlZCA+PSBmcmFtZUNvdW50OyB9KTsKK30KKworCit2b2lkIEZyYW1lSGFuZGxlcjo6Z2V0RnJhbWVzQ291bnRlcnModW5zaWduZWQqIHJlY2VpdmVkLCB1bnNpZ25lZCogZGlzcGxheWVkKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKworICAgIGlmIChyZWNlaXZlZCkgeworICAgICAgICAqcmVjZWl2ZWQgPSBtRnJhbWVzUmVjZWl2ZWQ7CisgICAgfQorICAgIGlmIChkaXNwbGF5ZWQpIHsKKyAgICAgICAgKmRpc3BsYXllZCA9IG1GcmFtZXNEaXNwbGF5ZWQ7CisgICAgfQorfQorCisKK1JldHVybjx2b2lkPiBGcmFtZUhhbmRsZXI6OmRlbGl2ZXJGcmFtZShjb25zdCBCdWZmZXJEZXNjJiBidWZmZXJBcmcpIHsKKyAgICBBTE9HRCgiUmVjZWl2ZWQgYSBmcmFtZSBmcm9tIHRoZSBjYW1lcmEgKCVwKSIsIGJ1ZmZlckFyZy5tZW1IYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpOworCisgICAgLy8gTG9jYWwgZmxhZyB3ZSB1c2UgdG8ga2VlcCB0cmFjayBvZiB3aGVuIHRoZSBzdHJlYW0gaXMgc3RvcHBpbmcKKyAgICBib29sIHRpbWVUb1N0b3AgPSBmYWxzZTsKKworICAgIGlmIChidWZmZXJBcmcubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gU2lnbmFsIHRoYXQgdGhlIGxhc3QgZnJhbWUgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHRoZSBzdHJlYW0gaXMgc3RvcHBlZAorICAgICAgICB0aW1lVG9TdG9wID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiB3ZSB3ZXJlIGdpdmVuIGFuIG9wZW5lZCBkaXNwbGF5IGF0IGNvbnN0cnVjdGlvbiB0aW1lLCB0aGVuIHNlbmQgdGhlIHJlY2VpdmVkCisgICAgICAgIC8vIGltYWdlIGJhY2sgZG93biB0aGUgY2FtZXJhLgorICAgICAgICBpZiAobURpc3BsYXkuZ2V0KCkpIHsKKyAgICAgICAgICAgIC8vIEdldCB0aGUgb3V0cHV0IGJ1ZmZlciB3ZSdsbCB1c2UgdG8gZGlzcGxheSB0aGUgaW1hZ2VyeQorICAgICAgICAgICAgQnVmZmVyRGVzYyB0Z3RCdWZmZXIgPSB7fTsKKyAgICAgICAgICAgIG1EaXNwbGF5LT5nZXRUYXJnZXRCdWZmZXIoWyZ0Z3RCdWZmZXJdKGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRndEJ1ZmZlciA9IGJ1ZmY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIGlmICh0Z3RCdWZmZXIubWVtSGFuZGxlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIkRpZG4ndCBnZXQgdGFyZ2V0IGJ1ZmZlciAtIGZyYW1lIGxvc3RcbiIpOworICAgICAgICAgICAgICAgIEFMT0dFKCJEaWRuJ3QgZ2V0IHJlcXVlc3RlZCBvdXRwdXQgYnVmZmVyIC0tIHNraXBwaW5nIHRoaXMgZnJhbWUuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBvZiBidWZmZXIubWVtSGFuZGxlIGludG8gdGd0QnVmZmVyCisgICAgICAgICAgICAgICAgY29weUJ1ZmZlckNvbnRlbnRzKHRndEJ1ZmZlciwgYnVmZmVyQXJnKTsKKworICAgICAgICAgICAgICAgIC8vIFNlbmQgdGhlIHRhcmdldCBidWZmZXIgYmFjayBmb3IgZGlzcGxheQorICAgICAgICAgICAgICAgIFJldHVybiA8RXZzUmVzdWx0PiByZXN1bHQgPSBtRGlzcGxheS0+cmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSh0Z3RCdWZmZXIpOworICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICBwcmludGYoIkhJREwgZXJyb3Igb24gZGlzcGxheSBidWZmZXIgKCVzKS0gZnJhbWUgbG9zdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiRXJyb3IgbWFraW5nIHRoZSByZW1vdGUgZnVuY3Rpb24gY2FsbC4gIEhJREwgc2FpZCAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ICE9IEV2c1Jlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJEaXNwbGF5IHJlcG9ydGVkIGVycm9yIC0gZnJhbWUgbG9zdFxuIik7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJXZSBlbmNvdW50ZXJlZCBlcnJvciAlZCB3aGVuIHJldHVybmluZyBhIGJ1ZmZlciB0byB0aGUgZGlzcGxheSEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoRXZzUmVzdWx0KSByZXN1bHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCEKKyAgICAgICAgICAgICAgICAgICAgLy8gS2VlcCB0cmFjayBzbyB0ZXN0cyBvciB3YXRjaCBkb2dzIGNhbiBtb25pdG9yIHByb2dyZXNzCisgICAgICAgICAgICAgICAgICAgIG1Mb2NrLmxvY2soKTsKKyAgICAgICAgICAgICAgICAgICAgbUZyYW1lc0Rpc3BsYXllZCsrOworICAgICAgICAgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIHN3aXRjaCAobVJldHVybk1vZGUpIHsKKyAgICAgICAgY2FzZSBlQXV0b1JldHVybjoKKyAgICAgICAgICAgIC8vIFNlbmQgdGhlIGNhbWVyYSBidWZmZXIgYmFjayBub3cgdGhhdCB0aGUgY2xpZW50IGhhcyBzZWVuIGl0CisgICAgICAgICAgICBBTE9HRCgiQ2FsbGluZyBkb25lV2l0aEZyYW1lIik7CisgICAgICAgICAgICAvLyBUT0RPOiAgV2h5IGlzIGl0IHRoYXQgd2UgZ2V0IGEgSElETCBjcmFzaCBpZiB3ZSBwYXNzIGJhY2sgdGhlIGNsb25lZCBidWZmZXI/CisgICAgICAgICAgICBtQ2FtZXJhLT5kb25lV2l0aEZyYW1lKGJ1ZmZlckFyZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBlTm9BdXRvUmV0dXJuOgorICAgICAgICAgICAgLy8gSGFuZyBvbnRvIHRoZSBidWZmZXIgaGFuZGxlIGZvciBub3cgLS0gdGhlIGNsaWVudCB3aWxsIHJldHVybiBpdCBleHBsaWNpdGx5IGxhdGVyCisgICAgICAgICAgICBtSGVsZEJ1ZmZlcnMucHVzaChidWZmZXJBcmcpOworICAgICAgICB9CisKKworICAgICAgICBBTE9HRCgiRnJhbWUgaGFuZGxpbmcgY29tcGxldGUiKTsKKyAgICB9CisKKworICAgIC8vIFVwZGF0ZSBvdXIgcmVjZWl2ZWQgZnJhbWUgY291bnQgYW5kIG5vdGlmeSBhbnlib2R5IHdobyBjYXJlcyB0aGF0IHRoaW5ncyBoYXZlIGNoYW5nZWQKKyAgICBtTG9jay5sb2NrKCk7CisgICAgaWYgKHRpbWVUb1N0b3ApIHsKKyAgICAgICAgbVJ1bm5pbmcgPSBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtRnJhbWVzUmVjZWl2ZWQrKzsKKyAgICB9CisgICAgbUxvY2sudW5sb2NrKCk7CisgICAgbVNpZ25hbC5ub3RpZnlfYWxsKCk7CisKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworYm9vbCBGcmFtZUhhbmRsZXI6OmNvcHlCdWZmZXJDb250ZW50cyhjb25zdCBCdWZmZXJEZXNjJiB0Z3RCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJ1ZmZlckRlc2MmIHNyY0J1ZmZlcikgeworICAgIGJvb2wgc3VjY2VzcyA9IHRydWU7CisKKyAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgcnVuIG9mZiB0aGUgZW5kIG9mIGVpdGhlciBidWZmZXIKKyAgICBjb25zdCB1bnNpZ25lZCB3aWR0aCAgICAgPSBzdGQ6Om1pbih0Z3RCdWZmZXIud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjQnVmZmVyLndpZHRoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBoZWlnaHQgICAgPSBzdGQ6Om1pbih0Z3RCdWZmZXIuaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY0J1ZmZlci5oZWlnaHQpOworCisgICAgc3A8YW5kcm9pZDo6R3JhcGhpY0J1ZmZlcj4gdGd0ID0gbmV3IGFuZHJvaWQ6OkdyYXBoaWNCdWZmZXIoCisgICAgICAgIHRndEJ1ZmZlci5tZW1IYW5kbGUsIGFuZHJvaWQ6OkdyYXBoaWNCdWZmZXI6OkNMT05FX0hBTkRMRSwKKyAgICAgICAgdGd0QnVmZmVyLndpZHRoLCB0Z3RCdWZmZXIuaGVpZ2h0LCB0Z3RCdWZmZXIuZm9ybWF0LCAxLCB0Z3RCdWZmZXIudXNhZ2UsCisgICAgICAgIHRndEJ1ZmZlci5zdHJpZGUpOworICAgIHNwPGFuZHJvaWQ6OkdyYXBoaWNCdWZmZXI+IHNyYyA9IG5ldyBhbmRyb2lkOjpHcmFwaGljQnVmZmVyKAorICAgICAgICBzcmNCdWZmZXIubWVtSGFuZGxlLCBhbmRyb2lkOjpHcmFwaGljQnVmZmVyOjpDTE9ORV9IQU5ETEUsCisgICAgICAgIHNyY0J1ZmZlci53aWR0aCwgc3JjQnVmZmVyLmhlaWdodCwgc3JjQnVmZmVyLmZvcm1hdCwgMSwgc3JjQnVmZmVyLnVzYWdlLAorICAgICAgICBzcmNCdWZmZXIuc3RyaWRlKTsKKworICAgIC8vIExvY2sgb3VyIHNvdXJjZSBidWZmZXIgZm9yIHJlYWRpbmcgKGN1cnJlbnQgZXhwZWN0YXRpb24gYXJlIGZvciB0aGlzIHRvIGJlIE5WMjEgZm9ybWF0KQorICAgIHVpbnQ4X3QqIHNyY1BpeGVscyA9IG51bGxwdHI7CisgICAgc3JjLT5sb2NrKEdSQUxMT0NfVVNBR0VfU1dfUkVBRF9PRlRFTiwgKHZvaWQqKikmc3JjUGl4ZWxzKTsKKworICAgIC8vIExvY2sgb3VyIHRhcmdldCBidWZmZXIgZm9yIHdyaXRpbmcgKHNob3VsZCBiZSBSR0JBODg4OCBmb3JtYXQpCisgICAgdWludDMyX3QqIHRndFBpeGVscyA9IG51bGxwdHI7CisgICAgdGd0LT5sb2NrKEdSQUxMT0NfVVNBR0VfU1dfV1JJVEVfT0ZURU4sICh2b2lkKiopJnRndFBpeGVscyk7CisKKyAgICBpZiAoc3JjUGl4ZWxzICYmIHRndFBpeGVscykgeworICAgICAgICBpZiAodGd0QnVmZmVyLmZvcm1hdCAhPSBIQUxfUElYRUxfRk9STUFUX1JHQkFfODg4OCkgeworICAgICAgICAgICAgLy8gV2UgYWx3YXlzIGV4cGVjdCAzMiBiaXQgUkdCIGZvciB0aGUgZGlzcGxheSBvdXRwdXQgZm9yIG5vdy4gIElzIHRoZXJlIGEgbmVlZCBmb3IgNTY1PworICAgICAgICAgICAgQUxPR0UoIkRpcGxheSBidWZmZXIgaXMgYWx3YXlzIGV4cGVjdGVkIHRvIGJlIDMyYml0IFJHQkEiKTsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzcmNCdWZmZXIuZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfWUNSQ0JfNDIwX1NQKSB7ICAgLy8gNDIwU1AgPT0gTlYyMQorICAgICAgICAgICAgICAgIGNvcHlOVjIxdG9SR0IzMih3aWR0aCwgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRndFBpeGVscywgdGd0QnVmZmVyLnN0cmlkZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY0J1ZmZlci5mb3JtYXQgPT0gSEFMX1BJWEVMX0ZPUk1BVF9ZVjEyKSB7IC8vIFlVVl80MjBQID09IFlWMTIKKyAgICAgICAgICAgICAgICBjb3B5WVYxMnRvUkdCMzIod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzcmNCdWZmZXIuZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfWUNCQ1JfNDIyX0kpIHsgLy8gWVVZVgorICAgICAgICAgICAgICAgIGNvcHlZVVlWdG9SR0IzMih3aWR0aCwgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNQaXhlbHMsIHNyY0J1ZmZlci5zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRndFBpeGVscywgdGd0QnVmZmVyLnN0cmlkZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY0J1ZmZlci5mb3JtYXQgPT0gdGd0QnVmZmVyLmZvcm1hdCkgeyAgLy8gMzJiaXQgUkdCQQorICAgICAgICAgICAgICAgIGNvcHlNYXRjaGVkSW50ZXJsZWF2ZWRGb3JtYXRzKHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGl4ZWxzLCBzcmNCdWZmZXIuc3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRndFBpeGVscywgdGd0QnVmZmVyLnN0cmlkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RCdWZmZXIucGl4ZWxTaXplKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gbG9jayBidWZmZXIgY29udGVudHMgZm9yIGNvbnRlbnRzIHRyYW5zZmVyIik7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoc3JjUGl4ZWxzKSB7CisgICAgICAgIHNyYy0+dW5sb2NrKCk7CisgICAgfQorICAgIGlmICh0Z3RQaXhlbHMpIHsKKyAgICAgICAgdGd0LT51bmxvY2soKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3VjY2VzczsKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuaCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2EzOTgwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0ZyYW1lSGFuZGxlci5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEVWU19WVFNfRlJBTUVIQU5ETEVSX0gKKyNkZWZpbmUgRVZTX1ZUU19GUkFNRUhBTkRMRVJfSAorCisjaW5jbHVkZSA8cXVldWU+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKworLyoKKyAqIEZyYW1lSGFuZGxlcjoKKyAqIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgdG8gcmVjZWl2ZSBjYW1lcmEgaW1hZ2VyeSBmcm9tIGFuIElFdnNDYW1lcmEgaW1wbGVtZW50YXRpb24uICBHaXZlbiBhbgorICogSUV2c0Rpc3BsYXkgaW5zdGFuY2UgYXQgc3RhcnR1cCwgaXQgd2lsbCBmb3J3YXJkIHRoZSByZWNlaXZlZCBpbWFnZXJ5IHRvIHRoZSBkaXNwbGF5LAorICogcHJvdmlkaW5nIGEgdHJpdmlhbCBpbXBsZW1lbnRhdGlvbiBvZiBhIHJlYXIgdmV3IGNhbWVyYSB0eXBlIGFwcGxpY2F0aW9uLgorICogTm90ZSB0aGF0IHRoZSB2aWRlbyBmcmFtZXMgYXJlIGRlbGl2ZXJlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLCB3aGlsZSB0aGUgY29udHJvbCBpbnRlcmZhY2UKKyAqIGlzIGFjdHVhdGVkIGZyb20gdGhlIGFwcGxpY2F0aW9ucyBmb3JlZ3JvdW5kIHRocmVhZC4KKyAqLworY2xhc3MgRnJhbWVIYW5kbGVyIDogcHVibGljIElFdnNDYW1lcmFTdHJlYW0geworcHVibGljOgorICAgIGVudW0gQnVmZmVyQ29udHJvbEZsYWcgeworICAgICAgICBlQXV0b1JldHVybiwKKyAgICAgICAgZU5vQXV0b1JldHVybiwKKyAgICB9OworCisgICAgRnJhbWVIYW5kbGVyKGFuZHJvaWQ6OnNwIDxJRXZzQ2FtZXJhPiBwQ2FtZXJhLCBDYW1lcmFEZXNjIGNhbWVyYUluZm8sCisgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OnNwIDxJRXZzRGlzcGxheT4gcERpc3BsYXkgPSBudWxscHRyLAorICAgICAgICAgICAgICAgICBCdWZmZXJDb250cm9sRmxhZyBtb2RlID0gZUF1dG9SZXR1cm4pOworICAgIHZvaWQgc2h1dGRvd24oKTsKKworICAgIGJvb2wgc3RhcnRTdHJlYW0oKTsKKyAgICB2b2lkIGFzeW5jU3RvcFN0cmVhbSgpOworICAgIHZvaWQgYmxvY2tpbmdTdG9wU3RyZWFtKCk7CisKKyAgICBib29sIHJldHVybkhlbGRCdWZmZXIoKTsKKworICAgIGJvb2wgaXNSdW5uaW5nKCk7CisKKyAgICB2b2lkIHdhaXRGb3JGcmFtZUNvdW50KHVuc2lnbmVkIGZyYW1lQ291bnQpOworICAgIHZvaWQgZ2V0RnJhbWVzQ291bnRlcnModW5zaWduZWQqIHJlY2VpdmVkLCB1bnNpZ25lZCogZGlzcGxheWVkKTsKKworcHJpdmF0ZToKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBmb3IgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJQ2FyQ2FtZXJhU3RyZWFtCisgICAgUmV0dXJuPHZvaWQ+IGRlbGl2ZXJGcmFtZShjb25zdCBCdWZmZXJEZXNjJiBidWZmZXIpICBvdmVycmlkZTsKKworICAgIC8vIExvY2FsIGltcGxlbWVudGF0aW9uIGRldGFpbHMKKyAgICBib29sIGNvcHlCdWZmZXJDb250ZW50cyhjb25zdCBCdWZmZXJEZXNjJiB0Z3RCdWZmZXIsIGNvbnN0IEJ1ZmZlckRlc2MmIHNyY0J1ZmZlcik7CisKKyAgICAvLyBWYWx1ZXMgaW5pdGlhbGl6ZWQgYXMgc3RhcnR1cAorICAgIGFuZHJvaWQ6OnNwIDxJRXZzQ2FtZXJhPiAgICBtQ2FtZXJhOworICAgIENhbWVyYURlc2MgICAgICAgICAgICAgICAgICBtQ2FtZXJhSW5mbzsKKyAgICBhbmRyb2lkOjpzcCA8SUV2c0Rpc3BsYXk+ICAgbURpc3BsYXk7CisgICAgQnVmZmVyQ29udHJvbEZsYWcgICAgICAgICAgIG1SZXR1cm5Nb2RlOworCisgICAgLy8gU2luY2Ugd2UgZ2V0IGZyYW1lcyBkZWxpdmVyZWQgdG8gdXMgYXNuY2hyb25vdXNseSB2aWEgdGhlIElDYXJDYW1lcmFTdHJlYW0gaW50ZXJmYWNlLAorICAgIC8vIHdlIG5lZWQgdG8gcHJvdGVjdCBhbGwgbWVtYmVyIHZhcmlhYmxlcyB0aGF0IG1heSBiZSBtb2RpZmllZCB3aGlsZSB3ZSdyZSBzdHJlYW1pbmcKKyAgICAvLyAoaWU6IHRob3NlIGJlbG93KQorICAgIHN0ZDo6bXV0ZXggICAgICAgICAgICAgICAgICBtTG9jazsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSAgICAgbVNpZ25hbDsKKworICAgIHN0ZDo6cXVldWU8QnVmZmVyRGVzYz4gICAgICBtSGVsZEJ1ZmZlcnM7CisgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgIG1SdW5uaW5nID0gZmFsc2U7CisgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgICAgIG1GcmFtZXNSZWNlaXZlZCA9IDA7ICAgIC8vIFNpbXBsZSBjb3VudGVyIC0tIHJvbGxzIG92ZXIgZXZlbnR1YWxseSEKKyAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICAgICAgbUZyYW1lc0Rpc3BsYXllZCA9IDA7ICAgLy8gU2ltcGxlIGNvdW50ZXIgLS0gcm9sbHMgb3ZlciBldmVudHVhbGx5IQorfTsKKworCisjZW5kaWYgLy9FVlNfVlRTX0ZSQU1FSEFORExFUl9ICmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzRXZzVjFfMFRhcmdldFRlc3QuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0V2c1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTgwYWZlCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0V2c1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDQ3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVnRzSGFsRXZzVGVzdCIKKworCisvLyBUT0RPOiAgSG93IHNob3VsZCB3ZSBjb25maWd1cmUgdGhlc2UgdmFsdWVzIHRvIHRhcmdldCBhcHByb3ByaWF0ZSBoYXJkd2FyZT8KK2NvbnN0IHN0YXRpYyBjaGFyIGtFbnVtZXJhdG9yTmFtZVtdICA9ICJFdnNFbnVtZXJhdG9ySHctTW9jayI7CisKKworLy8gVGhlc2UgdmFsdWVzIGFyZSBjYWxsZWQgb3V0IGluIHRoZSBFVlMgZGVzaWduIGRvYyAoYXMgb2YgTWFyIDgsIDIwMTcpCitzdGF0aWMgY29uc3QgaW50IGtNYXhTdHJlYW1TdGFydE1pbGxpc2Vjb25kcyA9IDUwMDsKK3N0YXRpYyBjb25zdCBpbnQga01pbmltdW1GcmFtZXNQZXJTZWNvbmQgPSAxMDsKKworc3RhdGljIGNvbnN0IGludCBrU2Vjb25kc1RvTWlsbGlzZWNvbmRzID0gMTAwMDsKK3N0YXRpYyBjb25zdCBpbnQga01pbGxpc2Vjb25kc1RvTWljcm9zZWNvbmRzID0gMTAwMDsKK3N0YXRpYyBjb25zdCBmbG9hdCBrTmFub1RvTWlsbGlzZWNvbmRzID0gMC4wMDAwMDFmOworc3RhdGljIGNvbnN0IGZsb2F0IGtOYW5vVG9TZWNvbmRzID0gMC4wMDAwMDAwMDFmOworCisKKyNpbmNsdWRlICJGcmFtZUhhbmRsZXIuaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aHdiaW5kZXIvUHJvY2Vzc1N0YXRlLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cm9uZ1BvaW50ZXIuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNFbnVtZXJhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5Lmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworCit1c2luZyBuYW1lc3BhY2UgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgRVZTCitjbGFzcyBFdnNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgY2FuIGNvbm5lY3QgdG8gdGhlIGVudW1lcmF0b3IKKyAgICAgICAgcEVudW1lcmF0b3IgPSBJRXZzRW51bWVyYXRvcjo6Z2V0U2VydmljZShrRW51bWVyYXRvck5hbWUpOworICAgICAgICBBU1NFUlRfTkUocEVudW1lcmF0b3IuZ2V0KCksIG51bGxwdHIpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGxvYWRDYW1lcmFMaXN0KCkgeworICAgICAgICAvLyBTZXRVcCgpIG11c3QgcnVuIGZpcnN0IQorICAgICAgICBhc3NlcnQocEVudW1lcmF0b3IgIT0gbnVsbHB0cik7CisKKyAgICAgICAgLy8gR2V0IHRoZSBjYW1lcmEgbGlzdAorICAgICAgICBwRW51bWVyYXRvci0+Z2V0Q2FtZXJhTGlzdChbdGhpc10oaGlkbF92ZWMgPENhbWVyYURlc2M+IGNhbWVyYUxpc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJDYW1lcmEgbGlzdCBjYWxsYmFjayByZWNlaXZlZCAlenUgY2FtZXJhcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1lcmFMaXN0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1lcmFJbmZvLnJlc2VydmUoY2FtZXJhTGlzdC5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiYgY2FtOiBjYW1lcmFMaXN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koIkZvdW5kIGNhbWVyYSAlcyIsIGNhbS5jYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1lcmFJbmZvLnB1c2hfYmFjayhjYW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAgICAgLy8gV2UgaW5zaXN0IG9uIGF0IGxlYXN0IG9uZSBjYW1lcmEgZm9yIEVWUyB0byBwYXNzIGFueSBjYW1lcmEgdGVzdHMKKyAgICAgICAgQVNTRVJUX0dFKGNhbWVyYUluZm8uc2l6ZSgpLCAxdSk7CisgICAgfQorCisgICAgc3A8SUV2c0VudW1lcmF0b3I+ICAgICAgICAgIHBFbnVtZXJhdG9yOyAgICAvLyBFdmVyeSB0ZXN0IG5lZWRzIGFjY2VzcyB0byB0aGUgc2VydmljZQorICAgIHN0ZDo6dmVjdG9yIDxDYW1lcmFEZXNjPiAgICBjYW1lcmFJbmZvOyAgICAgLy8gRW1wdHkgdW5sZXNzL3VudGlsIGxvYWRDYW1lcmFMaXN0KCkgaXMgY2FsbGVkCit9OworCisKKy8vCisvLyBUZXN0cyBzdGFydCBoZXJlLi4uCisvLworCisvKgorICogQ2FtZXJhT3BlbkNsZWFuOgorICogT3BlbnMgZWFjaCBjYW1lcmEgcmVwb3J0ZWQgYnkgdGhlIGVudW1lcmF0b3IgYW5kIHRoZW4gZXhwbGljaXRseSBjbG9zZXMgaXQgdmlhIGEKKyAqIGNhbGwgdG8gY2xvc2VDYW1lcmEuICBUaGVuIHJlcGVhdHMgdGhlIHRlc3QgdG8gZW5zdXJlIGFsbCBjYW1lcmFzIGNhbiBiZSByZW9wZW5lZC4KKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBDYW1lcmFPcGVuQ2xlYW4pIHsKKyAgICBBTE9HSSgiU3RhcnRpbmcgQ2FtZXJhT3BlbkNsZWFuIHRlc3QiKTsKKworICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICBsb2FkQ2FtZXJhTGlzdCgpOworCisgICAgLy8gT3BlbiBhbmQgY2xvc2UgZWFjaCBjYW1lcmEgdHdpY2UKKyAgICBmb3IgKGF1dG8mJiBjYW06IGNhbWVyYUluZm8pIHsKKyAgICAgICAgZm9yIChpbnQgcGFzcyA9IDA7IHBhc3MgPCAyOyBwYXNzKyspIHsKKyAgICAgICAgICAgIHNwPElFdnNDYW1lcmE+IHBDYW0gPSBwRW51bWVyYXRvci0+b3BlbkNhbWVyYShjYW0uY2FtZXJhSWQpOworICAgICAgICAgICAgQVNTRVJUX05FKHBDYW0sIG51bGxwdHIpOworCisgICAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGlzIGNhbWVyYSBzZWxmLWlkZW50aWZpZXMgY29ycmVjdGx5CisgICAgICAgICAgICBwQ2FtLT5nZXRDYW1lcmFJbmZvKFsmY2FtXShDYW1lcmFEZXNjIGRlc2MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dEKCJGb3VuZCBjYW1lcmEgJXMiLCBkZXNjLmNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGNhbS5jYW1lcmFJZCwgZGVzYy5jYW1lcmFJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIC8vIEV4cGxpY2l0bHkgY2xvc2UgdGhlIGNhbWVyYSBzbyByZXNvdXJjZXMgYXJlIHJlbGVhc2VkIHJpZ2h0IGF3YXkKKyAgICAgICAgICAgIHBFbnVtZXJhdG9yLT5jbG9zZUNhbWVyYShwQ2FtKTsKKyAgICAgICAgfQorICAgIH0KK30KKworCisvKgorICogQ2FtZXJhT3BlbkFnZ3Jlc3NpdmU6CisgKiBPcGVucyBlYWNoIGNhbWVyYSByZXBvcnRlZCBieSB0aGUgZW51bWVyYXRvciB0d2ljZSBpbiBhIHJvdyB3aXRob3V0IGFuIGludGVydmVuaW5nIGNsb3NlQ2FtZXJhCisgKiBjYWxsLiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGludGVuZGVkICJhZ2dyZXNzaXZlIG9wZW4iIGJlaGF2aW9yIHdvcmtzLiAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yCisgKiB0aGUgc3lzdGVtIHRvIGJlIHRvbGVyYW50IG9mIHNodXRkb3duL3Jlc3RhcnQgcmFjZSBjb25kaXRpb25zLgorICovCitURVNUX0YoRXZzSGlkbFRlc3QsIENhbWVyYU9wZW5BZ2dyZXNzaXZlKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYU9wZW5BZ2dyZXNzaXZlIHRlc3QiKTsKKworICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICBsb2FkQ2FtZXJhTGlzdCgpOworCisgICAgLy8gT3BlbiBhbmQgY2xvc2UgZWFjaCBjYW1lcmEgdHdpY2UKKyAgICBmb3IgKGF1dG8mJiBjYW06IGNhbWVyYUluZm8pIHsKKyAgICAgICAgc3A8SUV2c0NhbWVyYT4gcENhbSA9IHBFbnVtZXJhdG9yLT5vcGVuQ2FtZXJhKGNhbS5jYW1lcmFJZCk7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBudWxscHRyKTsKKworICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGlzIGNhbWVyYSBzZWxmLWlkZW50aWZpZXMgY29ycmVjdGx5CisgICAgICAgIHBDYW0tPmdldENhbWVyYUluZm8oWyZjYW1dKENhbWVyYURlc2MgZGVzYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRCgiRm91bmQgY2FtZXJhICVzIiwgZGVzYy5jYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGNhbS5jYW1lcmFJZCwgZGVzYy5jYW1lcmFJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgICAgIHNwPElFdnNDYW1lcmE+IHBDYW0yID0gcEVudW1lcmF0b3ItPm9wZW5DYW1lcmEoY2FtLmNhbWVyYUlkKTsKKyAgICAgICAgQVNTRVJUX05FKHBDYW0sIHBDYW0yKTsKKyAgICAgICAgQVNTRVJUX05FKHBDYW0yLCBudWxscHRyKTsKKworICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgb2xkIGNhbWVyYSByZWplY3RzIGNhbGxzCisgICAgICAgIFJldHVybjxFdnNSZXN1bHQ+IGJhZFJlc3VsdCA9IHBDYW0tPnNldE1heEZyYW1lc0luRmxpZ2h0KDIpOworICAgICAgICBFWFBFQ1RfRVEoRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVCwgRXZzUmVzdWx0KGJhZFJlc3VsdCkpOworCisgICAgICAgIC8vIENsb3NlIHRoZSBzdXBlcmNlZGVkIGNhbWVyYQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VDYW1lcmEocENhbSk7CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHNlY29uZCBjYW1lcmEgaW5zdGFuY2Ugc2VsZi1pZGVudGlmaWVzIGNvcnJlY3RseQorICAgICAgICBwQ2FtMi0+Z2V0Q2FtZXJhSW5mbyhbJmNhbV0oQ2FtZXJhRGVzYyBkZXNjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRCgiRm91bmQgY2FtZXJhICVzIiwgZGVzYy5jYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShjYW0uY2FtZXJhSWQsIGRlc2MuY2FtZXJhSWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAgICAgLy8gTGVhdmUgdGhlIHNlY29uZCBjYW1lcmEgZGFuZ2xpbmcgc28gaXQgZ2V0cyBjbGVhbmVkIHVwIGJ5IHRoZSBkZXN0cnVjdG9yIHBhdGgKKyAgICB9CisKKyAgICAvLyBTbGVlcCBoZXJlIHRvIGVuc3VyZSB0aGUgZGVzdHJ1Y3RvciBjbGVhbnVwIGhhcyB0aW1lIHRvIHJ1biBzbyB3ZSBkb24ndCBicmVhayBmb2xsb3cgb24gdGVzdHMKKyAgICBzbGVlcCgxKTsgICAvLyBJIGhhdGUgdGhhdCB0aGlzIGlzIGFuIGFyYml0cmFyeSB0aW1lIHRvIHdhaXQuICA6KCAgYi8zNjEyMjYzNQorfQorCisKKy8qCisgKiBEaXNwbGF5T3BlbjoKKyAqIFRlc3QgYm90aCBjbGVhbiBzaHV0IGRvd24gYW5kICJhZ2dyZXNzaXZlIG9wZW4iIGRldmljZSBzdGVhbGluZyBiZWhhdmlvci4KKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBEaXNwbGF5T3BlbikgeworICAgIEFMT0dJKCJTdGFydGluZyBEaXNwbGF5T3BlbiB0ZXN0Iik7CisKKyAgICAvLyBSZXF1ZXN0IGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlIEVWUyBkaXNwbGF5LCB0aGVuIGxldCBpdCBnbworICAgIHsKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gQXNrIHRoZSBkaXNwbGF5IHdoYXQgaXQncyBuYW1lIGlzCisgICAgICAgIHBEaXNwbGF5LT5nZXREaXNwbGF5SW5mbyhbXShEaXNwbGF5RGVzYyBkZXNjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0QoIkZvdW5kIGRpc3BsYXkgJXMiLCBkZXNjLmRpc3BsYXlJZC5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKworICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKKyAgICB9CisKKyAgICAvLyBFbnN1cmUgd2UgY2FuIHJlb3BlbiB0aGUgZGlzcGxheSBhZnRlciBpdCBoYXMgYmVlbiBjbG9zZWQKKyAgICB7CisgICAgICAgIC8vIFJlb3BlbiB0aGUgZGlzcGxheQorICAgICAgICBzcDxJRXZzRGlzcGxheT4gcERpc3BsYXkgPSBwRW51bWVyYXRvci0+b3BlbkRpc3BsYXkoKTsKKyAgICAgICAgQVNTRVJUX05FKHBEaXNwbGF5LCBudWxscHRyKTsKKworICAgICAgICAvLyBPcGVuIHRoZSBkaXNwbGF5IHdoaWxlIGl0cyBhbHJlYWR5IG9wZW4gLS0gb3duZXJzaGlwIHNob3VsZCBiZSB0cmFuc2ZlcnJlZAorICAgICAgICBzcDxJRXZzRGlzcGxheT4gcERpc3BsYXkyID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgICAgIEFTU0VSVF9ORShwRGlzcGxheTIsIG51bGxwdHIpOworCisgICAgICAgIC8vIEVuc3VyZSB0aGUgb2xkIGRpc3BsYXkgcHJvcGVybHkgcmVwb3J0cyBpdHMgYXNzYXNzaW5hdGlvbgorICAgICAgICBSZXR1cm48RGlzcGxheVN0YXRlPiBiYWRSZXN1bHQgPSBwRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCk7CisgICAgICAgIEVYUEVDVF9FUShiYWRSZXN1bHQsIERpc3BsYXlTdGF0ZTo6REVBRCk7CisKKyAgICAgICAgLy8gQ2xvc2Ugb25seSB0aGUgbmV3ZXN0IGRpc3BsYXkgaW5zdGFuY2UgLS0gdGhlIG90aGVyIHNob3VsZCBhbHJlYWR5IGJlIGEgem9tYmllCisgICAgICAgIHBFbnVtZXJhdG9yLT5jbG9zZURpc3BsYXkocERpc3BsYXkyKTsKKyAgICB9CisKKyAgICAvLyBGaW5hbGx5LCB2YWxpZGF0ZSB0aGF0IHdlIGNhbiBvcGVuIHRoZSBkaXNwbGF5IGFmdGVyIHRoZSBwcm92b2tlZCBmYWlsdXJlIGFib3ZlCisgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgQVNTRVJUX05FKHBEaXNwbGF5LCBudWxscHRyKTsKKworICAgIHBFbnVtZXJhdG9yLT5jbG9zZURpc3BsYXkocERpc3BsYXkpOworfQorCisKKy8qCisgKiBEaXNwbGF5U3RhdGVzOgorICogVmFsaWRhdGUgdGhhdCBkaXNwbGF5IHN0YXRlcyB0cmFuc2l0aW9uIGFzIGV4cGVjdGVkIGFuZCBjYW4gYmUgcXVlcmllZCBmcm9tIGVpdGhlciB0aGUgZGlzcGxheQorICogb2JqZWN0IGl0c2VsZiBvciB0aGUgb3duaW5nIGVudW1lcmF0b3IuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgRGlzcGxheVN0YXRlcykgeworICAgIEFMT0dJKCJTdGFydGluZyBEaXNwbGF5U3RhdGVzIHRlc3QiKTsKKworICAgIC8vIEVuc3VyZSB0aGUgZGlzcGxheSBzdGFydHMgaW4gdGhlIGV4cGVjdGVkIHN0YXRlCisgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6Ok5PVF9PUEVOKTsKKworICAgIC8vIFNjb3BlIHRvIGxpbWl0IHRoZSBsaWZldGltZSBvZiB0aGUgcERpc3BsYXkgcG9pbnRlciwgYW5kIHRodXMgdGhlIElFdnNEaXNwbGF5IG9iamVjdAorICAgIHsKKyAgICAgICAgLy8gUmVxdWVzdCBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBFVlMgZGlzcGxheQorICAgICAgICBzcDxJRXZzRGlzcGxheT4gcERpc3BsYXkgPSBwRW51bWVyYXRvci0+b3BlbkRpc3BsYXkoKTsKKyAgICAgICAgQVNTRVJUX05FKHBEaXNwbGF5LCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFKTsKKworICAgICAgICAvLyBBY3RpdmF0ZSB0aGUgZGlzcGxheQorICAgICAgICBwRGlzcGxheS0+c2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZTo6VklTSUJMRV9PTl9ORVhUX0ZSQU1FKTsKKyAgICAgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6OlZJU0lCTEVfT05fTkVYVF9GUkFNRSk7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBEaXNwbGF5LT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpWSVNJQkxFX09OX05FWFRfRlJBTUUpOworCisgICAgICAgIC8vIEdldCB0aGUgb3V0cHV0IGJ1ZmZlciB3ZSdkIHVzZSB0byBkaXNwbGF5IHRoZSBpbWFnZXJ5CisgICAgICAgIEJ1ZmZlckRlc2MgdGd0QnVmZmVyID0ge307CisgICAgICAgIHBEaXNwbGF5LT5nZXRUYXJnZXRCdWZmZXIoWyZ0Z3RCdWZmZXJdKGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGd0QnVmZmVyID0gYnVmZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgICAgIEVYUEVDVF9ORSh0Z3RCdWZmZXIubWVtSGFuZGxlLCBudWxscHRyKTsKKworICAgICAgICAvLyBTZW5kIHRoZSB0YXJnZXQgYnVmZmVyIGJhY2sgZm9yIGRpc3BsYXkgKHdlIGRpZG4ndCBhY3R1YWxseSBmaWxsIGFueXRoaW5nKQorICAgICAgICBwRGlzcGxheS0+cmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSh0Z3RCdWZmZXIpOworCisgICAgICAgIC8vIFNsZWVwIGZvciBhIHRlbnRoIG9mIGEgc2Vjb25kIHRvIGVuc3VyZSB0aGUgZHJpdmVyIGhhcyB0aW1lIHRvIGdldCB0aGUgaW1hZ2UgZGlzcGxheWVkCisgICAgICAgIHVzbGVlcCgxMDAgKiBrTWlsbGlzZWNvbmRzVG9NaWNyb3NlY29uZHMpOworICAgICAgICBFWFBFQ1RfRVEoKERpc3BsYXlTdGF0ZSlwRW51bWVyYXRvci0+Z2V0RGlzcGxheVN0YXRlKCksIERpc3BsYXlTdGF0ZTo6VklTSUJMRSk7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBEaXNwbGF5LT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpWSVNJQkxFKTsKKworICAgICAgICAvLyBUdXJuIG9mZiB0aGUgZGlzcGxheQorICAgICAgICBwRGlzcGxheS0+c2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZTo6Tk9UX1ZJU0lCTEUpOworICAgICAgICB1c2xlZXAoMTAwICoga01pbGxpc2Vjb25kc1RvTWljcm9zZWNvbmRzKTsKKyAgICAgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFKTsKKworICAgICAgICAvLyBDbG9zZSB0aGUgZGlzcGxheQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKKyAgICB9CisKKyAgICAvLyBUT0RPOiAgVGhpcyBoYWNrIHNob3VsZG4ndCBiZSBuZWNlc3NhcnkuICBiLzM2MTIyNjM1CisgICAgc2xlZXAoMSk7CisKKyAgICAvLyBOb3cgdGhhdCB0aGUgZGlzcGxheSBwb2ludGVyIGhhcyBnb25lIG91dCBvZiBzY29wZSwgY2F1c2luZyB0aGUgSUV2c0Rpc3BsYXkgaW50ZXJmYWNlCisgICAgLy8gb2JqZWN0IHRvIGJlIGRlc3Ryb3llZCwgd2Ugc2hvdWxkIGJlIGJhY2sgdG8gdGhlICJub3Qgb3BlbiIgc3RhdGUuCisgICAgLy8gTk9URTogIElmIHdlIHdhbnQgdGhpcyB0byBwYXNzIHdpdGhvdXQgdGhlIHNsZWVwIGFib3ZlLCB3ZSdkIGhhdmUgdG8gYWRkIHRoZQorICAgIC8vICAgICAgICAobm93IHJlY29tbWVuZGVkKSBjbG9zZURpc3BsYXkoKSBjYWxsIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgc21hcnRlciBwb2ludGVyCisgICAgLy8gICAgICAgIGdvaW5nIG91dCBvZiBzY29wZS4gIEkndmUgbm90IGRvbmUgdGhhdCBiZWNhdXNlIEkgd2FudCB0byB2ZXJpZnkgdGhhdCB0aGUgZGVsZXRpb24KKyAgICAvLyAgICAgICAgb2YgdGhlIG9iamVjdCBkb2VzIGFjdHVhbGx5IGNsZWFuIHVwIChldmVudHVhbGx5KS4KKyAgICBFWFBFQ1RfRVEoKERpc3BsYXlTdGF0ZSlwRW51bWVyYXRvci0+Z2V0RGlzcGxheVN0YXRlKCksIERpc3BsYXlTdGF0ZTo6Tk9UX09QRU4pOworfQorCisKKy8qCisgKiBDYW1lcmFTdHJlYW1QZXJmb3JtYW5jZToKKyAqIE1lYXN1cmUgYW5kIHF1YWxpZnkgdGhlIHN0cmVhbSBzdGFydCB1cCB0aW1lIGFuZCBzdHJlYW1pbmcgZnJhbWUgcmF0ZSBvZiBlYWNoIHJlcG9ydGVkIGNhbWVyYQorICovCitURVNUX0YoRXZzSGlkbFRlc3QsIENhbWVyYVN0cmVhbVBlcmZvcm1hbmNlKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYVN0cmVhbVBlcmZvcm1hbmNlIHRlc3QiKTsKKworICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICBsb2FkQ2FtZXJhTGlzdCgpOworCisgICAgLy8gVGVzdCBlYWNoIHJlcG9ydGVkIGNhbWVyYQorICAgIGZvciAoYXV0byYmIGNhbTogY2FtZXJhSW5mbykgeworICAgICAgICBzcCA8SUV2c0NhbWVyYT4gcENhbSA9IHBFbnVtZXJhdG9yLT5vcGVuQ2FtZXJhKGNhbS5jYW1lcmFJZCk7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBudWxscHRyKTsKKworICAgICAgICAvLyBTZXQgdXAgYSBmcmFtZSByZWNlaXZlciBvYmplY3Qgd2hpY2ggd2lsbCBmaXJlIHVwIGl0cyBvd24gdGhyZWFkCisgICAgICAgIHNwPEZyYW1lSGFuZGxlcj4gZnJhbWVIYW5kbGVyID0gbmV3IEZyYW1lSGFuZGxlcihwQ2FtLCBjYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVIYW5kbGVyOjplQXV0b1JldHVybik7CisKKyAgICAgICAgLy8gU3RhcnQgdGhlIGNhbWVyYSdzIHZpZGVvIHN0cmVhbQorICAgICAgICBuc2Vjc190IHN0YXJ0ID0gc3lzdGVtVGltZShTWVNURU1fVElNRV9NT05PVE9OSUMpOworICAgICAgICBib29sIHN0YXJ0UmVzdWx0ID0gZnJhbWVIYW5kbGVyLT5zdGFydFN0cmVhbSgpOworICAgICAgICBBU1NFUlRfVFJVRShzdGFydFJlc3VsdCk7CisKKyAgICAgICAgLy8gRW5zdXJlIHRoZSBmaXJzdCBmcmFtZSBhcnJpdmVkIHdpdGhpbiB0aGUgZXhwZWN0ZWQgdGltZQorICAgICAgICBmcmFtZUhhbmRsZXItPndhaXRGb3JGcmFtZUNvdW50KDEpOworICAgICAgICBuc2Vjc190IGZpcnN0RnJhbWUgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQyk7CisgICAgICAgIG5zZWNzX3QgdGltZVRvRmlyc3RGcmFtZSA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKSAtIHN0YXJ0OworICAgICAgICBFWFBFQ1RfTEUobmFub3NlY29uZHNfdG9fbWlsbGlzZWNvbmRzKHRpbWVUb0ZpcnN0RnJhbWUpLCBrTWF4U3RyZWFtU3RhcnRNaWxsaXNlY29uZHMpOworICAgICAgICBwcmludGYoIk1lYXN1cmVkIHRpbWUgdG8gZmlyc3QgZnJhbWUgJTAuMmYgbXNcbiIsIHRpbWVUb0ZpcnN0RnJhbWUgKiBrTmFub1RvTWlsbGlzZWNvbmRzKTsKKyAgICAgICAgQUxPR0koIk1lYXN1cmVkIHRpbWUgdG8gZmlyc3QgZnJhbWUgJTAuMmYgbXMiLCB0aW1lVG9GaXJzdEZyYW1lICoga05hbm9Ub01pbGxpc2Vjb25kcyk7CisKKyAgICAgICAgLy8gV2FpdCBhIGJpdCwgdGhlbiBlbnN1cmUgd2UgZ2V0IGF0IGxlYXN0IHRoZSByZXF1aXJlZCBtaW5pbXVtIG51bWJlciBvZiBmcmFtZXMKKyAgICAgICAgc2xlZXAoNSk7CisgICAgICAgIG5zZWNzX3QgZW5kID0gc3lzdGVtVGltZShTWVNURU1fVElNRV9NT05PVE9OSUMpOworICAgICAgICB1bnNpZ25lZCBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCBudWxscHRyKTsKKyAgICAgICAgZnJhbWVzUmVjZWl2ZWQgPSBmcmFtZXNSZWNlaXZlZCAtIDE7ICAgIC8vIEJhY2sgb3V0IHRoZSBmaXJzdCBmcmFtZSB3ZSBhbHJlYWR5IHdhaXRlZCBmb3IKKyAgICAgICAgbnNlY3NfdCBydW5UaW1lID0gZW5kIC0gZmlyc3RGcmFtZTsKKyAgICAgICAgZmxvYXQgZnJhbWVzUGVyU2Vjb25kID0gZnJhbWVzUmVjZWl2ZWQgLyAocnVuVGltZSAqIGtOYW5vVG9TZWNvbmRzKTsKKyAgICAgICAgcHJpbnRmKCJNZWFzdXJlZCBjYW1lcmEgcmF0ZSAlMy4yZiBmcHNcbiIsIGZyYW1lc1BlclNlY29uZCk7CisgICAgICAgIEFMT0dJKCJNZWFzdXJlZCBjYW1lcmEgcmF0ZSAlMy4yZiBmcHMiLCBmcmFtZXNQZXJTZWNvbmQpOworICAgICAgICBFWFBFQ1RfR0UoZnJhbWVzUGVyU2Vjb25kLCBrTWluaW11bUZyYW1lc1BlclNlY29uZCk7CisKKyAgICAgICAgLy8gRXZlbiB3aGVuIHRoZSBjYW1lcmEgcG9pbnRlciBnb2VzIG91dCBvZiBzY29wZSwgdGhlIEZyYW1lSGFuZGxlciBvYmplY3Qgd2lsbAorICAgICAgICAvLyBrZWVwIHRoZSBzdHJlYW0gYWxpdmUgdW5sZXNzIHdlIHRlbGwgaXQgdG8gc2h1dGRvd24uCisgICAgICAgIC8vIEFsc28gbm90ZSB0aGF0IHRoZSBGcmFtZUhhbmRsZSBhbmQgdGhlIENhbWVyYSBoYXZlIGEgbXV0dWFsIGNpcmN1bGFyIHJlZmVyZW5jZSwgc28KKyAgICAgICAgLy8gd2UgaGF2ZSB0byBicmVhayB0aGF0IGN5Y2xlIGluIG9yZGVyIGZvciBlaXRoZXIgb2YgdGhlbSB0byBnZXQgY2xlYW5lZCB1cC4KKyAgICAgICAgZnJhbWVIYW5kbGVyLT5zaHV0ZG93bigpOworCisgICAgICAgIC8vIEV4cGxpY2l0bHkgcmVsZWFzZSB0aGUgY2FtZXJhCisgICAgICAgIHBFbnVtZXJhdG9yLT5jbG9zZUNhbWVyYShwQ2FtKTsKKyAgICB9Cit9CisKKworLyoKKyAqIENhbWVyYVN0cmVhbUJ1ZmZlcmluZzoKKyAqIEVuc3VyZSB0aGUgY2FtZXJhIGltcGxlbWVudGF0aW9uIGJlaGF2ZXMgcHJvcGVybHkgd2hlbiB0aGUgY2xpZW50IGhvbGRzIG9udG8gYnVmZmVycyBmb3IgbW9yZQorICogdGhhbiBvbmUgZnJhbWUgdGltZS4gIFRoZSBjYW1lcmEgbXVzdCBjbGVhbmx5IHNraXAgZnJhbWVzIHVudGlsIHRoZSBjbGllbnQgaXMgcmVhZHkgYWdhaW4uCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgQ2FtZXJhU3RyZWFtQnVmZmVyaW5nKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYVN0cmVhbUJ1ZmZlcmluZyB0ZXN0Iik7CisKKyAgICAvLyBBcmJpdHJhcnkgY29uc3RhbnQgKHNob3VsZCBiZSA+IDEgYW5kIGxlc3MgdGhhbiBjcmF6eSkKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtCdWZmZXJzVG9Ib2xkID0gNjsKKworICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICBsb2FkQ2FtZXJhTGlzdCgpOworCisgICAgLy8gVGVzdCBlYWNoIHJlcG9ydGVkIGNhbWVyYQorICAgIGZvciAoYXV0byYmIGNhbTogY2FtZXJhSW5mbykgeworCisgICAgICAgIHNwPElFdnNDYW1lcmE+IHBDYW0gPSBwRW51bWVyYXRvci0+b3BlbkNhbWVyYShjYW0uY2FtZXJhSWQpOworICAgICAgICBBU1NFUlRfTkUocENhbSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gQXNrIGZvciBhIGNyYXp5IG51bWJlciBvZiBidWZmZXJzIGluIGZsaWdodCB0byBlbnN1cmUgaXQgZXJyb3JzIGNvcnJlY3RseQorICAgICAgICBSZXR1cm48RXZzUmVzdWx0PiBiYWRSZXN1bHQgPSBwQ2FtLT5zZXRNYXhGcmFtZXNJbkZsaWdodCgweEZGRkZGRkZGKTsKKyAgICAgICAgRVhQRUNUX0VRKEV2c1Jlc3VsdDo6QlVGRkVSX05PVF9BVkFJTEFCTEUsIGJhZFJlc3VsdCk7CisKKyAgICAgICAgLy8gTm93IGFzayBmb3IgZXhhY3RseSB0d28gYnVmZmVycyBpbiBmbGlnaHQgYXMgd2UnbGwgdGVzdCBiZWhhdmlvciBpbiB0aGF0IGNhc2UKKyAgICAgICAgUmV0dXJuPEV2c1Jlc3VsdD4gZ29vZFJlc3VsdCA9IHBDYW0tPnNldE1heEZyYW1lc0luRmxpZ2h0KGtCdWZmZXJzVG9Ib2xkKTsKKyAgICAgICAgRVhQRUNUX0VRKEV2c1Jlc3VsdDo6T0ssIGdvb2RSZXN1bHQpOworCisKKyAgICAgICAgLy8gU2V0IHVwIGEgZnJhbWUgcmVjZWl2ZXIgb2JqZWN0IHdoaWNoIHdpbGwgZmlyZSB1cCBpdHMgb3duIHRocmVhZC4KKyAgICAgICAgc3A8RnJhbWVIYW5kbGVyPiBmcmFtZUhhbmRsZXIgPSBuZXcgRnJhbWVIYW5kbGVyKHBDYW0sIGNhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZUhhbmRsZXI6OmVOb0F1dG9SZXR1cm4pOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBjYW1lcmEncyB2aWRlbyBzdHJlYW0KKyAgICAgICAgYm9vbCBzdGFydFJlc3VsdCA9IGZyYW1lSGFuZGxlci0+c3RhcnRTdHJlYW0oKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoc3RhcnRSZXN1bHQpOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHZpZGVvIHN0cmVhbSBzdGFsbHMgb25jZSB3ZSd2ZSBnb3R0ZW4gZXhhY3RseSB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMKKyAgICAgICAgLy8gd2UgcmVxdWVzdGVkIHNpbmNlIHdlIHRvbGQgdGhlIGZyYW1lSGFuZGxlciBub3QgdG8gcmV0dXJuIHRoZW0uCisgICAgICAgIHNsZWVwKDIpOyAgIC8vIDEgc2Vjb25kIHNob3VsZCBiZSBlbm91Z2ggZm9yIGF0IGxlYXN0IDUgZnJhbWVzIHRvIGJlIGRlbGl2ZXJlZCB3b3JzdCBjYXNlCisgICAgICAgIHVuc2lnbmVkIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICAgICAgZnJhbWVIYW5kbGVyLT5nZXRGcmFtZXNDb3VudGVycygmZnJhbWVzUmVjZWl2ZWQsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfRVEoa0J1ZmZlcnNUb0hvbGQsIGZyYW1lc1JlY2VpdmVkKSA8PCAiU3RyZWFtIGRpZG4ndCBzdGFsbCBhdCBleHBlY3RlZCBidWZmZXIgbGltaXQiOworCisKKyAgICAgICAgLy8gR2l2ZSBiYWNrIG9uZSBidWZmZXIKKyAgICAgICAgYm9vbCBkaWRSZXR1cm5CdWZmZXIgPSBmcmFtZUhhbmRsZXItPnJldHVybkhlbGRCdWZmZXIoKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZGlkUmV0dXJuQnVmZmVyKTsKKworICAgICAgICAvLyBPbmNlIHdlIHJldHVybiBhIGJ1ZmZlciwgaXQgc2hvdWxkbid0IHRha2UgbW9yZSB0aGFuIDEvMTAgc2Vjb25kIHRvIGdldCBhIG5ldyBvbmUKKyAgICAgICAgLy8gZmlsbGVkIHNpbmNlIHdlIHJlcXVpcmUgMTBmcHMgbWluaW11bSAtLSBidXQgZ2l2ZSBhIDEwJSBhbGxvd2FuY2UganVzdCBpbiBjYXNlLgorICAgICAgICB1c2xlZXAoMTEwICoga01pbGxpc2Vjb25kc1RvTWljcm9zZWNvbmRzKTsKKyAgICAgICAgZnJhbWVIYW5kbGVyLT5nZXRGcmFtZXNDb3VudGVycygmZnJhbWVzUmVjZWl2ZWQsIG51bGxwdHIpOworICAgICAgICBFWFBFQ1RfRVEoa0J1ZmZlcnNUb0hvbGQrMSwgZnJhbWVzUmVjZWl2ZWQpIDw8ICJTdHJlYW0gc2hvdWxkJ3ZlIHJlc3VtZWQiOworCisgICAgICAgIC8vIEV2ZW4gd2hlbiB0aGUgY2FtZXJhIHBvaW50ZXIgZ29lcyBvdXQgb2Ygc2NvcGUsIHRoZSBGcmFtZUhhbmRsZXIgb2JqZWN0IHdpbGwKKyAgICAgICAgLy8ga2VlcCB0aGUgc3RyZWFtIGFsaXZlIHVubGVzcyB3ZSB0ZWxsIGl0IHRvIHNodXRkb3duLgorICAgICAgICAvLyBBbHNvIG5vdGUgdGhhdCB0aGUgRnJhbWVIYW5kbGUgYW5kIHRoZSBDYW1lcmEgaGF2ZSBhIG11dHVhbCBjaXJjdWxhciByZWZlcmVuY2UsIHNvCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYnJlYWsgdGhhdCBjeWNsZSBpbiBvcmRlciBmb3IgZWl0aGVyIG9mIHRoZW0gdG8gZ2V0IGNsZWFuZWQgdXAuCisgICAgICAgIGZyYW1lSGFuZGxlci0+c2h1dGRvd24oKTsKKworICAgICAgICAvLyBFeHBsaWNpdGx5IHJlbGVhc2UgdGhlIGNhbWVyYQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VDYW1lcmEocENhbSk7CisgICAgfQorfQorCisKKy8qCisgKiBDYW1lcmFUb0Rpc3BsYXlSb3VuZFRyaXA6CisgKiBFbmQgdG8gZW5kIHRlc3Qgb2YgZGF0YSBmbG93aW5nIGZyb20gdGhlIGNhbWVyYSB0byB0aGUgZGlzcGxheS4gIEVhY2ggZGVsaXZlcmVkIGZyYW1lIG9mIGNhbWVyYQorICogaW1hZ2VyeSBpcyBzaW1wbHkgY29waWVkIHRvIHRoZSBkaXNwbGF5IGJ1ZmZlciBhbmQgcHJlc2VudGVkIG9uIHNjcmVlbi4gIFRoaXMgaXMgdGhlIG9uZSB0ZXN0CisgKiB3aGljaCBhIGh1bWFuIGNvdWxkIG9ic2VydmUgdG8gc2VlIHRoZSBvcGVyYXRpb24gb2YgdGhlIHN5c3RlbSBvbiB0aGUgcGh5c2ljYWwgZGlzcGxheS4KKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBDYW1lcmFUb0Rpc3BsYXlSb3VuZFRyaXApIHsKKyAgICBBTE9HSSgiU3RhcnRpbmcgQ2FtZXJhVG9EaXNwbGF5Um91bmRUcmlwIHRlc3QiKTsKKworICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICBsb2FkQ2FtZXJhTGlzdCgpOworCisgICAgLy8gUmVxdWVzdCBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBFVlMgZGlzcGxheQorICAgIHNwPElFdnNEaXNwbGF5PiBwRGlzcGxheSA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisKKyAgICAvLyBUZXN0IGVhY2ggcmVwb3J0ZWQgY2FtZXJhCisgICAgZm9yIChhdXRvJiYgY2FtOiBjYW1lcmFJbmZvKSB7CisgICAgICAgIHNwIDxJRXZzQ2FtZXJhPiBwQ2FtID0gcEVudW1lcmF0b3ItPm9wZW5DYW1lcmEoY2FtLmNhbWVyYUlkKTsKKyAgICAgICAgQVNTRVJUX05FKHBDYW0sIG51bGxwdHIpOworCisgICAgICAgIC8vIFNldCB1cCBhIGZyYW1lIHJlY2VpdmVyIG9iamVjdCB3aGljaCB3aWxsIGZpcmUgdXAgaXRzIG93biB0aHJlYWQuCisgICAgICAgIHNwPEZyYW1lSGFuZGxlcj4gZnJhbWVIYW5kbGVyID0gbmV3IEZyYW1lSGFuZGxlcihwQ2FtLCBjYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lSGFuZGxlcjo6ZUF1dG9SZXR1cm4pOworCisKKyAgICAgICAgLy8gQWN0aXZhdGUgdGhlIGRpc3BsYXkKKyAgICAgICAgcERpc3BsYXktPnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGU6OlZJU0lCTEVfT05fTkVYVF9GUkFNRSk7CisKKyAgICAgICAgLy8gU3RhcnQgdGhlIGNhbWVyYSdzIHZpZGVvIHN0cmVhbQorICAgICAgICBib29sIHN0YXJ0UmVzdWx0ID0gZnJhbWVIYW5kbGVyLT5zdGFydFN0cmVhbSgpOworICAgICAgICBBU1NFUlRfVFJVRShzdGFydFJlc3VsdCk7CisKKyAgICAgICAgLy8gV2FpdCBhIHdoaWxlIHRvIGxldCB0aGUgZGF0YSBmbG93CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQga1NlY29uZHNUb1dhaXQgPSA1OworICAgICAgICBjb25zdCBpbnQgc3RyZWFtVGltZU1zID0ga1NlY29uZHNUb1dhaXQgKiBrU2Vjb25kc1RvTWlsbGlzZWNvbmRzIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNYXhTdHJlYW1TdGFydE1pbGxpc2Vjb25kczsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbWluaW11bUZyYW1lc0V4cGVjdGVkID0gc3RyZWFtVGltZU1zICoga01pbmltdW1GcmFtZXNQZXJTZWNvbmQgLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrU2Vjb25kc1RvTWlsbGlzZWNvbmRzOworICAgICAgICBzbGVlcChrU2Vjb25kc1RvV2FpdCk7CisgICAgICAgIHVuc2lnbmVkIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICAgICAgdW5zaWduZWQgZnJhbWVzRGlzcGxheWVkID0gMDsKKyAgICAgICAgZnJhbWVIYW5kbGVyLT5nZXRGcmFtZXNDb3VudGVycygmZnJhbWVzUmVjZWl2ZWQsICZmcmFtZXNEaXNwbGF5ZWQpOworICAgICAgICBFWFBFQ1RfRVEoZnJhbWVzUmVjZWl2ZWQsIGZyYW1lc0Rpc3BsYXllZCk7CisgICAgICAgIEVYUEVDVF9HRShmcmFtZXNEaXNwbGF5ZWQsIG1pbmltdW1GcmFtZXNFeHBlY3RlZCk7CisKKyAgICAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkgKHllcywgYmVmb3JlIHRoZSBzdHJlYW0gc3RvcHMgLS0gaXQgc2hvdWxkIGJlIGhhbmRsZWQpCisgICAgICAgIHBEaXNwbGF5LT5zZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlOjpOT1RfVklTSUJMRSk7CisKKyAgICAgICAgLy8gU2h1dCBkb3duIHRoZSBzdHJlYW1lcgorICAgICAgICBmcmFtZUhhbmRsZXItPnNodXRkb3duKCk7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSByZWxlYXNlIHRoZSBjYW1lcmEKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlQ2FtZXJhKHBDYW0pOworICAgIH0KKworICAgIC8vIEV4cGxpY2l0bHkgcmVsZWFzZSB0aGUgZGlzcGxheQorICAgIHBFbnVtZXJhdG9yLT5jbG9zZURpc3BsYXkocERpc3BsYXkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5icCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjFiZWYwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklWZWhpY2xlLmhhbCIsCisgICAgICAgICJJVmVoaWNsZUNhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9WZWhpY2xlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvVmVoaWNsZUNhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lId1ZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQm5Id1ZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnBId1ZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnNWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSUh3VmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JuSHdWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnBId1ZlaGljbGVDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9Cc1ZlaGljbGVDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9BbmRyb2lkLm1rIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViMDVmMzUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOTUwIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZUZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVGbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuU3Vic2NyaWJlRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZU9wdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N1YnNjcmliZU9wdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZU9wdGlvbnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU2V0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU2V0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU2V0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYUNvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhRG9vcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFEb29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYURvb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhTWlycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYU1pcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFNaXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhU2VhdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFTZWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVNlYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhV2luZG93KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYVdpbmRvdy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFXaW5kb3cKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhWm9uZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFab25lLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVpvbmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0NvbnRleHRGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Db250ZXh0RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvU3RyZWFtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1N0cmVhbUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEaXNwbGF5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRGlzcGxheS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURpc3BsYXkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEcml2aW5nU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRHJpdmluZ1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURyaXZpbmdTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVHZWFyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlR2Vhci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUdlYXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVId0tleUlucHV0QWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHdLZXlJbnB1dEFjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJZ25pdGlvblN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSWduaXRpb25TdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUlnbml0aW9uU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcENvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wVmFsdWUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wVmFsdWUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wVmFsdWUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUFjY2VzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5QWNjZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlBY2Nlc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUdyb3VwKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlHcm91cC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5R3JvdXAKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlPcGVyYXRpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVSYWRpb0NvbnN0YW50cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVJhZGlvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUmFkaW9Db25zdGFudHMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVUdXJuU2lnbmFsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVHVyblNpZ25hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVR1cm5TaWduYWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVVbml0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVW5pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVVuaXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFdoZWVsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9XaGVlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuV2hlZWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGVDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGVDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlLVYyLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzQ29kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuU3RhdHVzQ29kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3Vic2NyaWJlRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N1YnNjcmliZUZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdWJzY3JpYmVGbGFncworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3Vic2NyaWJlT3B0aW9ucykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvU3Vic2NyaWJlT3B0aW9ucy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuU3Vic2NyaWJlT3B0aW9ucworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFwUG93ZXJTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWEpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWFDb25maWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhQ29uZmlnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYUNvbmZpZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWFEb29yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYURvb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhRG9vcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWFNaXJyb3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhTWlycm9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYU1pcnJvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWFTZWF0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYVNlYXQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhU2VhdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWFXaW5kb3cpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhV2luZG93LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVdpbmRvdworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUFyZWFab25lKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYVpvbmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhWm9uZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0NvbnRleHRGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Db250ZXh0RmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvRm9jdXNJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRm9jdXNJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRm9jdXNJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvSHdWYXJpYW50Q29uZmlnRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvSHdWYXJpYW50Q29uZmlnRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvSHdWYXJpYW50Q29uZmlnRmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvU3RyZWFtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9TdHJlYW0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1N0cmVhbQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvU3RyZWFtRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvU3RyZWFtRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvU3RyZWFtRmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Wb2x1bWVJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvVm9sdW1lTGltaXRJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lTGltaXRJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lTGltaXRJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZURpc3BsYXkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVEaXNwbGF5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlRGlzcGxheQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZURyaXZpbmdTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVEcml2aW5nU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlRHJpdmluZ1N0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUdlYXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVHZWFyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlR2VhcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVIdmFjRmFuRGlyZWN0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVId0tleUlucHV0QWN0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlSHdLZXlJbnB1dEFjdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUlnbml0aW9uU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVJZ25pdGlvblN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlSWduaXRpb25TdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BDb25maWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wQ29uZmlnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcENvbmZpZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BWYWx1ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BWYWx1ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BWYWx1ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5QWNjZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlBY2Nlc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUFjY2VzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5R3JvdXApCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUdyb3VwLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlHcm91cAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlPcGVyYXRpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVJhZGlvQ29uc3RhbnRzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUmFkaW9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVSYWRpb0NvbnN0YW50cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVR1cm5TaWduYWwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVUdXJuU2lnbmFsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlVHVyblNpZ25hbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVVuaXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVVbml0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlVW5pdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoV2hlZWwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1doZWVsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5XaGVlbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9JVmVoaWNsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9JVmVoaWNsZUNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjpJVmVoaWNsZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oYWwgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTYyZGUwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oYWwKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDsKKworaW1wb3J0IElWZWhpY2xlQ2FsbGJhY2s7CisKK2ludGVyZmFjZSBJVmVoaWNsZSB7CisgIC8qKgorICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcHJvcGVydHkgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgdmVoaWNsZQorICAgKiBIQUwuCisgICAqLworICBnZXRBbGxQcm9wQ29uZmlncygpIGdlbmVyYXRlcyAodmVjPFZlaGljbGVQcm9wQ29uZmlnPiBwcm9wQ29uZmlncyk7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBsaXN0IG9mIHByb3BlcnR5IGNvbmZpZ3VyYXRpb25zIGZvciBnaXZlbiBwcm9wZXJ0aWVzLgorICAgKgorICAgKiBJZiByZXF1ZXN0ZWQgVmVoaWNsZVByb3BlcnR5IHdhc24ndCBmb3VuZCBpdCBtdXN0IHJldHVybgorICAgKiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRywgb3RoZXJ3aXNlIGEgbGlzdCBvZiB2ZWhpY2xlIHByb3BlcnR5CisgICAqIGNvbmZpZ3VyYXRpb25zIHdpdGggU3RhdHVzQ29kZTo6T0sKKyAgICovCisgIGdldFByb3BDb25maWdzKHZlYzxpbnQzMl90PiBwcm9wcykKKyAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1c0NvZGUgc3RhdHVzLCB2ZWM8VmVoaWNsZVByb3BDb25maWc+IHByb3BDb25maWdzKTsKKworICAvKioKKyAgICogR2V0IGEgdmVoaWNsZSBwcm9wZXJ0eSB2YWx1ZS4KKyAgICoKKyAgICogRm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlNUQVRJQyBwcm9wZXJ0aWVzLCB0aGlzIG1ldGhvZCBtdXN0IGFsd2F5cworICAgKiByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYWx3YXlzLgorICAgKiBGb3IgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFIHByb3BlcnRpZXMsIGl0IG11c3QgcmV0dXJuIHRoZQorICAgKiBsYXRlc3QgYXZhaWxhYmxlIHZhbHVlLgorICAgKgorICAgKiBTb21lIHByb3BlcnRpZXMgbGlrZSBBVURJT19WT0xVTUUgcmVxdWlyZXMgdG8gcGFzcyBhZGRpdGlvbmFsIGRhdGEgaW4KKyAgICogR0VUIHJlcXVlc3QgaW4gVmVoaWNsZVByb3BWYWx1ZSBvYmplY3QuCisgICAqCisgICAqIElmIHRoZXJlIGlzIG5vIGRhdGEgYXZhaWxhYmxlIHlldCwgd2hpY2ggY2FuIGhhcHBlbiBkdXJpbmcgaW5pdGlhbCBzdGFnZSwKKyAgICogdGhpcyBjYWxsIG11c3QgcmV0dXJuIGltbWVkaWF0ZWx5IHdpdGggYW4gZXJyb3IgY29kZSBvZgorICAgKiBTdGF0dXNDb2RlOjpUUllfQUdBSU4uCisgICAqLworICBnZXQoVmVoaWNsZVByb3BWYWx1ZSByZXF1ZXN0ZWRQcm9wVmFsdWUpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cywgVmVoaWNsZVByb3BWYWx1ZSBwcm9wVmFsdWUpOworCisgIC8qKgorICAgKiBTZXQgYSB2ZWhpY2xlIHByb3BlcnR5IHZhbHVlLgorICAgKgorICAgKiBUaW1lc3RhbXAgb2YgZGF0YSBtdXN0IGJlIGlnbm9yZWQgZm9yIHNldCBvcGVyYXRpb24uCisgICAqCisgICAqIFNldHRpbmcgc29tZSBwcm9wZXJ0aWVzIHJlcXVpcmUgaGF2aW5nIGluaXRpYWwgc3RhdGUgYXZhaWxhYmxlLiBJZiBpbml0aWFsCisgICAqIGRhdGEgaXMgbm90IGF2YWlsYWJsZSB5ZXQgdGhpcyBjYWxsIG11c3QgcmV0dXJuIFN0YXR1c0NvZGU6OlRSWV9BR0FJTi4KKyAgICogRm9yIGEgcHJvcGVydHkgd2l0aCBzZXBhcmF0ZSBwb3dlciBjb250cm9sIHRoaXMgY2FsbCBtdXN0IHJldHVybgorICAgKiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGVycm9yIGlmIHByb3BlcnR5IGlzIG5vdCBwb3dlcmVkIG9uLgorICAgKi8KKyAgc2V0KFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKSBnZW5lcmF0ZXMgKFN0YXR1c0NvZGUgc3RhdHVzKTsKKworICAvKioKKyAgICogU3Vic2NyaWJlcyB0byBwcm9wZXJ0eSBldmVudHMuCisgICAqCisgICAqIENsaWVudHMgbXVzdCBiZSBhYmxlIHRvIHN1YnNjcmliZSB0byBtdWx0aXBsZSBwcm9wZXJ0aWVzIGF0IGEgdGltZQorICAgKiBkZXBlbmRpbmcgb24gZGF0YSBwcm92aWRlZCBpbiBvcHRpb25zIGFyZ3VtZW50LgorICAgKgorICAgKiBAcGFyYW0gbGlzdGVuZXIgVGhpcyBjbGllbnQgbXVzdCBiZSBjYWxsZWQgb24gYXBwcm9wcmlhdGUgZXZlbnQuCisgICAqIEBwYXJhbSBvcHRpb25zIExpc3Qgb2Ygb3B0aW9ucyB0byBzdWJzY3JpYmUuIFN1YnNjcmliZU9wdGlvbiBjb250YWlucworICAgKiAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBzdWNoIGFzIHByb3BlcnR5IElkLCBhcmVhIElkLCBzYW1wbGUgcmF0ZSwgZXRjLgorICAgKi8KKyAgc3Vic2NyaWJlKElWZWhpY2xlQ2FsbGJhY2sgY2FsbGJhY2ssIHZlYzxTdWJzY3JpYmVPcHRpb25zPiBvcHRpb25zKQorICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzQ29kZSBzdGF0dXMpOworCisgIC8qKgorICAgKiBVbnN1YnNjcmliZXMgZnJvbSBwcm9wZXJ0eSBldmVudHMuCisgICAqCisgICAqIElmIHRoaXMgY2xpZW50IHdhc24ndCBzdWJzY3JpYmVkIHRvIHRoZSBnaXZlbiBwcm9wZXJ0eSwgdGhpcyBtZXRob2QKKyAgICogbXVzdCByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcuCisgICAqLworICB1bnN1YnNjcmliZShJVmVoaWNsZUNhbGxiYWNrIGNhbGxiYWNrLCBpbnQzMl90IHByb3BJZCkKKyAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1c0NvZGUgc3RhdHVzKTsKKworICAvKioKKyAgICogUHJpbnQgb3V0IGRlYnVnZ2luZyBzdGF0ZSBmb3IgdGhlIHZlaGljbGUgaGFsLgorICAgKgorICAgKiBUaGUgdGV4dCBtdXN0IGJlIGluIEFTQ0lJIGVuY29kaW5nIG9ubHkuCisgICAqCisgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICoKKyAgICogVGhlIEhBTCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiBsZXNzIHRoYW4gMTBtcy4gVGhpcyBjYWxsIG11c3QgYXZvaWQKKyAgICogZGVhZGxvY2tzLCBhcyBpdCBtYXkgYmUgY2FsbGVkIGF0IGFueSBwb2ludCBvZiBvcGVyYXRpb24uIEFueSBzeW5jaHJvbml6YXRpb24KKyAgICogcHJpbWl0aXZlcyB1c2VkIChzdWNoIGFzIG11dGV4IGxvY2tzIG9yIHNlbWFwaG9yZXMpIG11c3QgYmUgYWNxdWlyZWQKKyAgICogd2l0aCBhIHRpbWVvdXQuCisgICAqCisgICAqLworICBkZWJ1Z0R1bXAoKSBnZW5lcmF0ZXMgKHN0cmluZyBzKTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlQ2FsbGJhY2suaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDYwNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKK2ludGVyZmFjZSBJVmVoaWNsZUNhbGxiYWNrIHsKKworICAgIC8qKgorICAgICAqIEV2ZW50IGNhbGxiYWNrIGhhcHBlbnMgd2hlbmV2ZXIgYSB2YXJpYWJsZSB0aGF0IHRoZSBBUEkgdXNlciBoYXMKKyAgICAgKiBzdWJzY3JpYmVkIHRvIG5lZWRzIHRvIGJlIHJlcG9ydGVkLiBUaGlzIG1heSBiZSBiYXNlZCBwdXJlbHkgb24KKyAgICAgKiB0aHJlc2hvbGQgYW5kIGZyZXF1ZW5jeSAoYSByZWd1bGFyIHN1YnNjcmlwdGlvbiwgc2VlIHN1YnNjcmliZSBjYWxsJ3MKKyAgICAgKiBhcmd1bWVudHMpIG9yIHdoZW4gdGhlIElWZWhpY2xlI3NldCBtZXRob2Qgd2FzIGNhbGxlZCBhbmQgdGhlIGFjdHVhbAorICAgICAqIGNoYW5nZSBuZWVkcyB0byBiZSByZXBvcnRlZC4KKyAgICAgKgorICAgICAqIFRoZXNlIGNhbGxiYWNrcyBhcmUgY2h1bmtlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZXMgdGhhdCBoYXMgYmVlbiB1cGRhdGVkLgorICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5RXZlbnQodmVjPFZlaGljbGVQcm9wVmFsdWU+IHByb3BWYWx1ZXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgZ2V0cyBjYWxsZWQgaWYgdGhlIGNsaWVudCB3YXMgc3Vic2NyaWJlZCB0byBhIHByb3BlcnR5IHVzaW5nCisgICAgICogU3Vic2NyaWJlRmxhZ3M6OlNFVF9DQUxMIGZsYWcgYW5kIElWZWhpY2xlI3NldCguLi4pIG1ldGhvZCB3YXMgY2FsbGVkLgorICAgICAqCisgICAgICogVGhlc2UgZXZlbnRzIG11c3QgYmUgZGVsaXZlcmVkIHRvIHN1YnNjcmliZXIgaW1tZWRpYXRlbHkgd2l0aG91dCBhbnkKKyAgICAgKiBiYXRjaGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0aGF0IHdhcyBzZXQgYnkgYSBjbGllbnQuCisgICAgICovCisgICAgb25ld2F5IG9uUHJvcGVydHlTZXQoVmVoaWNsZVByb3BWYWx1ZSBwcm9wVmFsdWUpOworCisgICAgLyoqCisgICAgICogU2V0IHByb3BlcnR5IHZhbHVlIGlzIHVzdWFsbHkgYXN5bmNocm9ub3VzIG9wZXJhdGlvbi4gVGh1cyBldmVuIGlmCisgICAgICogY2xpZW50IHJlY2VpdmVkIFN0YXR1c0NvZGU6Ok9LIGZyb20gdGhlIElWZWhpY2xlOjpzZXQoLi4uKSB0aGlzCisgICAgICogZG9lc24ndCBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUgd2FzIHN1Y2Nlc3NmdWxseSBwcm9wYWdhdGVkIHRvIHRoZQorICAgICAqIHZlaGljbGUgbmV0d29yay4gSWYgc3VjaCByYXJlIGV2ZW50IG9jY3VycyB0aGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlcnJvckNvZGUgLSBhbnkgdmFsdWUgZnJvbSBTdGF0dXNDb2RlIGVudW0uCisgICAgICogQHBhcmFtIHByb3BlcnR5IC0gYSBwcm9wZXJ0eSB3aGVyZSBlcnJvciBoYXMgaGFwcGVuZWQuCisgICAgICogQHBhcmFtIGFyZWFJZCAtIGJpdG1hc2sgdGhhdCBzcGVjaWZpZXMgaW4gd2hpY2ggYXJlYXMgdGhlIHByb2JsZW0gaGFzCisgICAgICogICAgICAgICAgICAgICAgIG9jY3VycmVkLCBtdXN0IGJlIDAgZm9yIGdsb2JhbCBwcm9wZXJ0aWVzCisgICAgICovCisgICAgb25ld2F5IG9uUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIGVycm9yQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhSWQpOworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVmNTY3OAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTcxIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK3ZoYWxfdjJfMCA9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGxpYgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gJCh2aGFsX3YyXzApLW1hbmFnZXItbGliCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIGNvbW1vbi9zcmMvU3Vic2NyaXB0aW9uTWFuYWdlci5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcCBcCisgICAgY29tbW9uL3NyYy9WZWhpY2xlUHJvcGVydHlTdG9yZS5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZVV0aWxzLmNwcCBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8wKSBcCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIEhBTCBQcm90b2J1ZiBsaWJyYXJ5CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX1NSQ19GSUxFUyA6PSAkKGNhbGwgYWxsLXByb3RvLWZpbGVzLXVuZGVyLCBpbXBsL3ZoYWxfdjJfMC9wcm90bykKKworTE9DQUxfUFJPVE9DX09QVElNSVpFX1RZUEUgOj0gbmFubworCitMT0NBTF9NT0RVTEUgOj0gJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IFNUQVRJQ19MSUJSQVJJRVMKKworTE9DQUxfTU9EVUxFX1RBR1MgOj0gb3B0aW9uYWwKKworTE9DQUxfU1RSSVBfTU9EVUxFIDo9IGtlZXBfc3ltYm9scworCitnZW5lcmF0ZWRfc291cmNlc19kaXIgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpcikKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSBcCisgICAgJChnZW5lcmF0ZWRfc291cmNlc19kaXIpL3Byb3RvLyQoTE9DQUxfUEFUSCkvaW1wbC92aGFsX3YyXzAvcHJvdG8KKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBkZWZhdWx0IFZlaGljbGVIQUwgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEU6PSAkKHZoYWxfdjJfMCktZGVmYXVsdC1pbXBsLWxpYgorTE9DQUxfU1JDX0ZJTEVTOj0gXAorICAgIGltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAgXAorICAgIGltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5jcHAgXAorICAgIGltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmNwcCBcCisgICAgaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2ltcGwvdmhhbF92Ml8wCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9pbXBsCisKK0xPQ0FMX1dIT0xFX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYiBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJod2JpbmRlciBcCisgICAgbGlibG9nIFwKKyAgICBsaWJwcm90b2J1Zi1jcHAtbGl0ZSBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8wKSBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1saWJwcm90by1uYXRpdmUgXAorCitMT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdleHRyYSAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIHVuaXQgdGVzdHMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEU6PSAkKHZoYWxfdjJfMCktbWFuYWdlci11bml0LXRlc3RzCisKK0xPQ0FMX1dIT0xFX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYiBcCisKK0xPQ0FMX1NSQ19GSUxFUzo9IFwKKyAgICB0ZXN0cy9SZWN1cnJlbnRUaW1lcl90ZXN0LmNwcCBcCisgICAgdGVzdHMvU3Vic2NyaXB0aW9uTWFuYWdlcl90ZXN0LmNwcCBcCisgICAgdGVzdHMvVmVoaWNsZUhhbE1hbmFnZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1ZlaGljbGVPYmplY3RQb29sX3Rlc3QuY3BwIFwKKyAgICB0ZXN0cy9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X3Rlc3QuY3BwIFwKKworTE9DQUxfSEVBREVSX0xJQlJBUklFUyA6PSBcCisgICAgbGliYmFzZV9oZWFkZXJzCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJod2JpbmRlciBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzApIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorTE9DQUxfTU9EVUxFX1RBR1MgOj0gdGVzdHMKKworaW5jbHVkZSAkKEJVSUxEX05BVElWRV9URVNUKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBIQUwgc2VydmljZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gJCh2aGFsX3YyXzApLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gJCh2aGFsX3YyXzApLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFZlaGljbGVTZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlicHJvdG9idWYtY3BwLWxpdGUgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorICAgICQodmhhbF92Ml8wKS1kZWZhdWx0LWltcGwtbGliIFwKKyAgICAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9WZWhpY2xlU2VydmljZS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvVmVoaWNsZVNlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZmQ1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvVmVoaWNsZVNlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZSIKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oPgorCit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOjpoYXJkd2FyZTsKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6dmVoaWNsZTo6VjJfMDsKKworaW50IG1haW4oaW50IC8qIGFyZ2MgKi8sIGNoYXIqIC8qIGFyZ3YgKi8gW10pIHsKKyAgICBhdXRvIHN0b3JlID0gc3RkOjptYWtlX3VuaXF1ZTxWZWhpY2xlUHJvcGVydHlTdG9yZT4oKTsKKyAgICBhdXRvIGhhbCA9IHN0ZDo6bWFrZV91bmlxdWU8aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsPihzdG9yZS5nZXQoKSk7CisgICAgYXV0byBlbXVsYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8aW1wbDo6VmVoaWNsZUVtdWxhdG9yPihoYWwuZ2V0KCkpOworICAgIGF1dG8gc2VydmljZSA9IHN0ZDo6bWFrZV91bmlxdWU8VmVoaWNsZUhhbE1hbmFnZXI+KGhhbC5nZXQoKSk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDQsIHRydWUgLyogY2FsbGVyV2lsbEpvaW4gKi8pOworCisgICAgQUxPR0koIlJlZ2lzdGVyaW5nIGFzIHNlcnZpY2UuLi4iKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSBzZXJ2aWNlLT5yZWdpc3RlckFzU2VydmljZSgpOworCisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIHJlZ2lzdGVyIHZlaGljbGUgc2VydmljZSAoJWQpIiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgQUxPR0koIlJlYWR5Iik7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKKworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1zZXJ2aWNlLnJjIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZTI0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHZlaGljbGUtaGFsLTIuMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgdmVoaWNsZV9uZXR3b3JrCisgICAgZ3JvdXAgc3lzdGVtIGluZXQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvQ29uY3VycmVudFF1ZXVlLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL0NvbmN1cnJlbnRRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MzQyOWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL0NvbmN1cnJlbnRRdWV1ZS5oCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX0NvbmN1cnJlbnRRdWV1ZV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX0NvbmN1cnJlbnRRdWV1ZV9IXworCisjaW5jbHVkZSA8cXVldWU+CisjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDxjb25kaXRpb25fdmFyaWFibGU+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIENvbmN1cnJlbnRRdWV1ZSB7CitwdWJsaWM6CisgICAgdm9pZCB3YWl0Rm9ySXRlbXMoKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgIHdoaWxlIChtUXVldWUuZW1wdHkoKSAmJiBtSXNBY3RpdmUpIHsKKyAgICAgICAgICAgIG1Db25kLndhaXQoZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGQ6OnZlY3RvcjxUPiBmbHVzaCgpIHsKKyAgICAgICAgc3RkOjp2ZWN0b3I8VD4gaXRlbXM7CisKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgIGlmIChtUXVldWUuZW1wdHkoKSB8fCAhbUlzQWN0aXZlKSB7CisgICAgICAgICAgICByZXR1cm4gaXRlbXM7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKCFtUXVldWUuZW1wdHkoKSkgeworICAgICAgICAgICAgaXRlbXMucHVzaF9iYWNrKHN0ZDo6bW92ZShtUXVldWUuZnJvbnQoKSkpOworICAgICAgICAgICAgbVF1ZXVlLnBvcCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpdGVtczsKKyAgICB9CisKKyAgICB2b2lkIHB1c2goVCYmIGl0ZW0pIHsKKyAgICAgICAgeworICAgICAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgICAgICBpZiAoIW1Jc0FjdGl2ZSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1RdWV1ZS5wdXNoKHN0ZDo6bW92ZShpdGVtKSk7CisgICAgICAgIH0KKyAgICAgICAgbUNvbmQubm90aWZ5X29uZSgpOworICAgIH0KKworICAgIC8qIERlYWN0aXZhdGVzIHRoZSBxdWV1ZSwgdGh1cyBubyBvbmUgY2FuIHB1c2ggaXRlbXMgdG8gaXQsIGFsc28KKyAgICAgKiBub3RpZmllcyBhbGwgd2FpdGluZyB0aHJlYWQuCisgICAgICovCisgICAgdm9pZCBkZWFjdGl2YXRlKCkgeworICAgICAgICB7CisgICAgICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Jc0FjdGl2ZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1Db25kLm5vdGlmeV9hbGwoKTsgIC8vIFRvIHVuYmxvY2sgYWxsIHdhaXRpbmcgY29uc3VtZXJzLgorICAgIH0KKworICAgIENvbmN1cnJlbnRRdWV1ZSgpID0gZGVmYXVsdDsKKworICAgIENvbmN1cnJlbnRRdWV1ZShjb25zdCBDb25jdXJyZW50UXVldWUgJikgPSBkZWxldGU7CisgICAgQ29uY3VycmVudFF1ZXVlICZvcGVyYXRvcj0oY29uc3QgQ29uY3VycmVudFF1ZXVlICYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICB1c2luZyBNdXhHdWFyZCA9IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PjsKKworICAgIGJvb2wgbUlzQWN0aXZlID0gdHJ1ZTsKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbUNvbmQ7CisgICAgc3RkOjpxdWV1ZTxUPiBtUXVldWU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgQmF0Y2hpbmdDb25zdW1lciB7Citwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJTklUID0gMCwKKyAgICAgICAgUlVOTklORyA9IDEsCisgICAgICAgIFNUT1BfUkVRVUVTVEVEID0gMiwKKyAgICAgICAgU1RPUFBFRCA9IDMsCisgICAgfTsKKworcHVibGljOgorICAgIEJhdGNoaW5nQ29uc3VtZXIoKSA6IG1TdGF0ZShTdGF0ZTo6SU5JVCkge30KKworICAgIEJhdGNoaW5nQ29uc3VtZXIoY29uc3QgQmF0Y2hpbmdDb25zdW1lciAmKSA9IGRlbGV0ZTsKKyAgICBCYXRjaGluZ0NvbnN1bWVyICZvcGVyYXRvcj0oY29uc3QgQmF0Y2hpbmdDb25zdW1lciAmKSA9IGRlbGV0ZTsKKworICAgIHVzaW5nIE9uQmF0Y2hSZWNlaXZlZEZ1bmMgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3Qgc3RkOjp2ZWN0b3I8VD4mIHZlYyk+OworCisgICAgdm9pZCBydW4oQ29uY3VycmVudFF1ZXVlPFQ+KiBxdWV1ZSwKKyAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgYmF0Y2hJbnRlcnZhbCwKKyAgICAgICAgICAgICBjb25zdCBPbkJhdGNoUmVjZWl2ZWRGdW5jJiBmdW5jKSB7CisgICAgICAgIG1RdWV1ZSA9IHF1ZXVlOworICAgICAgICBtQmF0Y2hJbnRlcnZhbCA9IGJhdGNoSW50ZXJ2YWw7CisKKyAgICAgICAgbVdvcmtlclRocmVhZCA9IHN0ZDo6dGhyZWFkKAorICAgICAgICAgICAgJkJhdGNoaW5nQ29uc3VtZXI8VD46OnJ1bkludGVybmFsLCB0aGlzLCBmdW5jKTsKKyAgICB9CisKKyAgICB2b2lkIHJlcXVlc3RTdG9wKCkgeworICAgICAgICBtU3RhdGUgPSBTdGF0ZTo6U1RPUF9SRVFVRVNURUQ7CisgICAgfQorCisgICAgdm9pZCB3YWl0U3RvcHBlZCgpIHsKKyAgICAgICAgaWYgKG1Xb3JrZXJUaHJlYWQuam9pbmFibGUoKSkgeworICAgICAgICAgICAgbVdvcmtlclRocmVhZC5qb2luKCk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBydW5JbnRlcm5hbChjb25zdCBPbkJhdGNoUmVjZWl2ZWRGdW5jJiBvbkJhdGNoUmVjZWl2ZWQpIHsKKyAgICAgICAgaWYgKG1TdGF0ZS5leGNoYW5nZShTdGF0ZTo6UlVOTklORykgPT0gU3RhdGU6OklOSVQpIHsKKyAgICAgICAgICAgIHdoaWxlIChTdGF0ZTo6UlVOTklORyA9PSBtU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBtUXVldWUtPndhaXRGb3JJdGVtcygpOworICAgICAgICAgICAgICAgIGlmIChTdGF0ZTo6U1RPUF9SRVFVRVNURUQgPT0gbVN0YXRlKSBicmVhazsKKworICAgICAgICAgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihtQmF0Y2hJbnRlcnZhbCk7CisgICAgICAgICAgICAgICAgaWYgKFN0YXRlOjpTVE9QX1JFUVVFU1RFRCA9PSBtU3RhdGUpIGJyZWFrOworCisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8VD4gaXRlbXMgPSBtUXVldWUtPmZsdXNoKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoaXRlbXMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBvbkJhdGNoUmVjZWl2ZWQoaXRlbXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1TdGF0ZSA9IFN0YXRlOjpTVE9QUEVEOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnRocmVhZCBtV29ya2VyVGhyZWFkOworCisgICAgc3RkOjphdG9taWM8U3RhdGU+IG1TdGF0ZTsKKyAgICBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgbUJhdGNoSW50ZXJ2YWw7CisgICAgQ29uY3VycmVudFF1ZXVlPFQ+KiBtUXVldWU7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy9hbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX0NvbmN1cnJlbnRRdWV1ZV9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMjVhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmgKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfUmVjdXJyZW50VGltZXJfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9SZWN1cnJlbnRUaW1lcl9IXworCisjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDxjb25kaXRpb25fdmFyaWFibGU+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxsaXN0PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKworLyoqCisgKiBUaGlzIGNsYXNzIGFsbG93cyB0byBzcGVjaWZ5IG11bHRpcGxlIHRpbWUgaW50ZXJ2YWxzIHRvIHJlY2VpdmUKKyAqIG5vdGlmaWNhdGlvbnMuIEEgc2luZ2xlIHRocmVhZCBpcyB1c2VkIGludGVybmFsbHkuCisgKi8KK2NsYXNzIFJlY3VycmVudFRpbWVyIHsKK3ByaXZhdGU6CisgICAgdXNpbmcgTmFub3MgPSBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHM7CisgICAgdXNpbmcgQ2xvY2sgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOworICAgIHVzaW5nIFRpbWVQb2ludCA9IHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PENsb2NrLCBOYW5vcz47CitwdWJsaWM6CisgICAgdXNpbmcgQWN0aW9uID0gc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBjb29raWVzKT47CisKKyAgICBSZWN1cnJlbnRUaW1lcihjb25zdCBBY3Rpb24mIGFjdGlvbikgOiBtQWN0aW9uKGFjdGlvbikgeworICAgICAgICBtVGltZXJUaHJlYWQgPSBzdGQ6OnRocmVhZCgmUmVjdXJyZW50VGltZXI6Omxvb3AsIHRoaXMsIGFjdGlvbik7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVjdXJyZW50VGltZXIoKSB7CisgICAgICAgIHN0b3AoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgcmVjdXJyZW50IGV2ZW50IGZvciBhIGdpdmVuIGludGVydmFsLiBSZWdpc3RyZWQgZXZlbnRzIGFyZSBkaXN0aW5ndWlzaGVkIGJ5CisgICAgICogY29va2llcyB0aHVzIGNhbGxpbmcgdGhpcyBtZXRob2QgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBjb29raWUgd2lsbCBvdmVycmlkZSB0aGUKKyAgICAgKiBpbnRlcnZhbCBwcm92aWRlZCBiZWZvcmUuCisgICAgICovCisgICAgdm9pZCByZWdpc3RlclJlY3VycmVudEV2ZW50KHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBpbnRlcnZhbCwgaW50MzJfdCBjb29raWUpIHsKKyAgICAgICAgVGltZVBvaW50IG5vdyA9IENsb2NrOjpub3coKTsKKyAgICAgICAgLy8gQWxpZ24gZXZlbnQgdGltZSBwb2ludCBhbW9uZyBhbGwgaW50ZXJ2YWxzLiBUaHVzIGlmIHdlIGhhdmUgdHdvIGludGVydmFscyAxbXMgYW5kIDJtcywKKyAgICAgICAgLy8gZHVyaW5nIGV2ZXJ5IHNlY29uZCB3YWtlLXVwIGJvdGggaW50ZXJ2YWxzIHdpbGwgYmUgdHJpZ2dlcmVkLgorICAgICAgICBUaW1lUG9pbnQgYWJzb2x1dGVUaW1lID0gbm93IC0gTmFub3Mobm93LnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpICUgaW50ZXJ2YWwuY291bnQoKSk7CisKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICAgICAgbUNvb2tpZVRvRXZlbnRzTWFwW2Nvb2tpZV0gPSB7IGludGVydmFsLCBjb29raWUsIGFic29sdXRlVGltZSB9OworICAgICAgICB9CisgICAgICAgIG1Db25kLm5vdGlmeV9vbmUoKTsKKyAgICB9CisKKyAgICB2b2lkIHVucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChpbnQzMl90IGNvb2tpZSkgeworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgICAgICBtQ29va2llVG9FdmVudHNNYXAuZXJhc2UoY29va2llKTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfb25lKCk7CisgICAgfQorCisKK3ByaXZhdGU6CisKKyAgICBzdHJ1Y3QgUmVjdXJyZW50RXZlbnQgeworICAgICAgICBOYW5vcyBpbnRlcnZhbDsKKyAgICAgICAgaW50MzJfdCBjb29raWU7CisgICAgICAgIFRpbWVQb2ludCBhYnNvbHV0ZVRpbWU7ICAvLyBBYnNvbHV0ZSB0aW1lIG9mIHRoZSBuZXh0IGV2ZW50LgorCisgICAgICAgIHZvaWQgdXBkYXRlTmV4dEV2ZW50VGltZShUaW1lUG9pbnQgbm93KSB7CisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIG1vdmUgdGltZSB0byBuZXh0IGV2ZW50IGJ5IGFkZGluZyBzb21lIG51bWJlciBvZiBpbnRlcnZhbHMgKHVzdWFsbHkgMSkKKyAgICAgICAgICAgIC8vIHRvIHByZXZpb3VzIGFic29sdXRlVGltZS4KKyAgICAgICAgICAgIGludCBpbnRlcnZhbE11bHRpcGxpZXIgPSAobm93IC0gYWJzb2x1dGVUaW1lKSAvIGludGVydmFsOworICAgICAgICAgICAgaWYgKGludGVydmFsTXVsdGlwbGllciA8PSAwKSBpbnRlcnZhbE11bHRpcGxpZXIgPSAxOworICAgICAgICAgICAgYWJzb2x1dGVUaW1lICs9IGludGVydmFsTXVsdGlwbGllciAqIGludGVydmFsOworICAgICAgICB9CisgICAgfTsKKworICAgIHZvaWQgbG9vcChjb25zdCBBY3Rpb24mIGFjdGlvbikgeworICAgICAgICBzdGF0aWMgY29uc3RleHByIGF1dG8ga0ludmFsaWRUaW1lID0gVGltZVBvaW50KE5hbm9zOjptYXgoKSk7CisKKyAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gY29va2llczsKKworICAgICAgICB3aGlsZSAoIW1TdG9wUmVxdWVzdGVkKSB7CisgICAgICAgICAgICBhdXRvIG5vdyA9IENsb2NrOjpub3coKTsKKyAgICAgICAgICAgIGF1dG8gbmV4dEV2ZW50VGltZSA9IGtJbnZhbGlkVGltZTsKKyAgICAgICAgICAgIGNvb2tpZXMuY2xlYXIoKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gZyhtTG9jayk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mJiBpdCA6IG1Db29raWVUb0V2ZW50c01hcCkgeworICAgICAgICAgICAgICAgICAgICBSZWN1cnJlbnRFdmVudCYgZXZlbnQgPSBpdC5zZWNvbmQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5hYnNvbHV0ZVRpbWUgPD0gbm93KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBldmVudC51cGRhdGVOZXh0RXZlbnRUaW1lKG5vdyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzLnB1c2hfYmFjayhldmVudC5jb29raWUpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRFdmVudFRpbWUgPiBldmVudC5hYnNvbHV0ZVRpbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFdmVudFRpbWUgPSBldmVudC5hYnNvbHV0ZVRpbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjb29raWVzLnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgYWN0aW9uKGNvb2tpZXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICAgICAgbUNvbmQud2FpdF91bnRpbChnLCBuZXh0RXZlbnRUaW1lKTsgIC8vIG5leHRFdmVudFRpbWUgY2FuIGJlIG5hbm9zZWNvbmRzOjptYXgoKQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkgeworICAgICAgICBtU3RvcFJlcXVlc3RlZCA9IHRydWU7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Db29raWVUb0V2ZW50c01hcC5jbGVhcigpOworICAgICAgICB9CisgICAgICAgIG1Db25kLm5vdGlmeV9vbmUoKTsKKyAgICAgICAgaWYgKG1UaW1lclRocmVhZC5qb2luYWJsZSgpKSB7CisgICAgICAgICAgICBtVGltZXJUaHJlYWQuam9pbigpOworICAgICAgICB9CisgICAgfQorcHJpdmF0ZToKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RkOjp0aHJlYWQgbVRpbWVyVGhyZWFkOworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1Db25kOworICAgIHN0ZDo6YXRvbWljX2Jvb2wgbVN0b3BSZXF1ZXN0ZWQgeyBmYWxzZSB9OworICAgIEFjdGlvbiBtQWN0aW9uOworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQzMl90LCBSZWN1cnJlbnRFdmVudD4gbUNvb2tpZVRvRXZlbnRzTWFwOworfTsKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfUmVjdXJyZW50VGltZXJfSApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9TdWJzY3JpcHRpb25NYW5hZ2VyLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1N1YnNjcmlwdGlvbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTkwODlkCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9TdWJzY3JpcHRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSwxODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfU3Vic2NyaXB0aW9uTWFuYWdlcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1N1YnNjcmlwdGlvbk1hbmFnZXJfSF8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUgPGxpc3Q+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKyNpbmNsdWRlIDx1dGlscy9Tb3J0ZWRWZWN0b3IuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorCisjaW5jbHVkZSAiQ29uY3VycmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiVmVoaWNsZU9iamVjdFBvb2wuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworY2xhc3MgSGFsQ2xpZW50IDogcHVibGljIGFuZHJvaWQ6OlJlZkJhc2UgeworcHVibGljOgorICAgIEhhbENsaWVudChjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiAmY2FsbGJhY2spCisgICAgICAgIDogbUNhbGxiYWNrKGNhbGxiYWNrKSB7fQorCisgICAgdmlydHVhbCB+SGFsQ2xpZW50KCkge30KK3B1YmxpYzoKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBnZXRDYWxsYmFjaygpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIG1DYWxsYmFjazsKKyAgICB9CisKKyAgICB2b2lkIGFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMpOworICAgIGJvb2wgaXNTdWJzY3JpYmVkKGludDMyX3QgcHJvcElkLCBpbnQzMl90IGFyZWFJZCwgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpOworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGdldFN1YnNjcmliZWRQcm9wZXJ0aWVzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4gbUNhbGxiYWNrOworCisgICAgc3RkOjptYXA8aW50MzJfdCwgU3Vic2NyaWJlT3B0aW9ucz4gbVN1YnNjcmlwdGlvbnM7Cit9OworCitjbGFzcyBIYWxDbGllbnRWZWN0b3IgOiBwcml2YXRlIFNvcnRlZFZlY3RvcjxzcDxIYWxDbGllbnQ+PiAsIHB1YmxpYyBSZWZCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5IYWxDbGllbnRWZWN0b3IoKSB7fQorCisgICAgaW5saW5lIHZvaWQgYWRkT3JVcGRhdGUoY29uc3Qgc3A8SGFsQ2xpZW50PiAmY2xpZW50KSB7CisgICAgICAgIFNvcnRlZFZlY3Rvcjo6YWRkKGNsaWVudCk7CisgICAgfQorCisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjpyZW1vdmU7CisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjpzaXplOworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6aW5kZXhPZjsKKyAgICB1c2luZyBTb3J0ZWRWZWN0b3I6Oml0ZW1BdDsKKyAgICB1c2luZyBTb3J0ZWRWZWN0b3I6OmlzRW1wdHk7Cit9OworCitzdHJ1Y3QgSGFsQ2xpZW50VmFsdWVzIHsKKyAgICBzcDxIYWxDbGllbnQ+IGNsaWVudDsKKyAgICBzdGQ6Omxpc3Q8VmVoaWNsZVByb3BWYWx1ZSAqPiB2YWx1ZXM7Cit9OworCit1c2luZyBDbGllbnRJZCA9IHVpbnQ2NF90OworCitjbGFzcyBTdWJzY3JpcHRpb25NYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICB1c2luZyBPblByb3BlcnR5VW5zdWJzY3JpYmVkID0gc3RkOjpmdW5jdGlvbjx2b2lkKGludDMyX3QpPjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgU3Vic2NyaXB0aW9uTWFuYWdlcgorICAgICAqCisgICAgICogQHBhcmFtIG9uUHJvcGVydHlVbnN1YnNjcmliZWQgLSB0aGlzIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5vCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlIGNsaWVudCBzdWJzY3JpYmVkIHRvIHBhcnRpY3VsYXIgcHJvcGVydHkuCisgICAgICovCisgICAgU3Vic2NyaXB0aW9uTWFuYWdlcihjb25zdCBPblByb3BlcnR5VW5zdWJzY3JpYmVkJiBvblByb3BlcnR5VW5zdWJzY3JpYmVkKQorICAgICAgICAgICAgOiBtT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZChvblByb3BlcnR5VW5zdWJzY3JpYmVkKSwKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tEZWF0aFJlY2lwaWVudChuZXcgRGVhdGhSZWNpcGllbnQoCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6YmluZCgmU3Vic2NyaXB0aW9uTWFuYWdlcjo6b25DYWxsYmFja0RlYWQsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpKQorICAgIHt9CisKKyAgICB+U3Vic2NyaXB0aW9uTWFuYWdlcigpID0gZGVmYXVsdDsKKworICAgIC8qKgorICAgICAqIFVwZGF0ZXMgc3Vic2NyaXB0aW9uLiBSZXR1cm5zIHRoZSB2ZWN0b3Igb2YgcHJvcGVydGllcyBzdWJzY3JpcHRpb24gdGhhdAorICAgICAqIG5lZWRzIHRvIGJlIHVwZGF0ZWQgaW4gVmVoaWNsZUhBTC4KKyAgICAgKi8KKyAgICBTdGF0dXNDb2RlIGFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKENsaWVudElkIGNsaWVudElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4mIG9wdGlvbkxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4qIG91dFVwZGF0ZWRPcHRpb25zKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIElWZWhpY2xlQ2FsbGJhY2sgLT4gbGlzdCBvZiBWZWhpY2xlUHJvcFZhbHVlIHJlYWR5IGZvcgorICAgICAqIGRpc3BhdGNoaW5nIHRvIGl0cyBjbGllbnRzLgorICAgICAqLworICAgIHN0ZDo6bGlzdDxIYWxDbGllbnRWYWx1ZXM+IGRpc3RyaWJ1dGVWYWx1ZXNUb0NsaWVudHMoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxyZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPj4mIHByb3BWYWx1ZXMsCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3Q7CisKKyAgICBzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gZ2V0U3Vic2NyaWJlZENsaWVudHMoaW50MzJfdCBwcm9wSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0OworICAgIC8qKgorICAgICAqIElmIHRoZXJlIGFyZSBubyBjbGllbnRzIHN1YnNjcmliZWQgdG8gZ2l2ZW4gcHJvcGVydGllcyB0aGFuIGNhbGxiYWNrIGZ1bmN0aW9uIHByb3ZpZGVkCisgICAgICogaW4gdGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgY2FsbGVkLgorICAgICAqLworICAgIHZvaWQgdW5zdWJzY3JpYmUoQ2xpZW50SWQgY2xpZW50SWQsIGludDMyX3QgcHJvcElkKTsKK3ByaXZhdGU6CisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IGdldFN1YnNjcmliZWRDbGllbnRzTG9ja2VkKGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdDsKKworICAgIGJvb2wgdXBkYXRlSGFsRXZlbnRTdWJzY3JpcHRpb25Mb2NrZWQoY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmb3B0cywgU3Vic2NyaWJlT3B0aW9ucyogb3V0KTsKKworICAgIHZvaWQgYWRkQ2xpZW50VG9Qcm9wTWFwTG9ja2VkKGludDMyX3QgcHJvcElkLCBjb25zdCBzcDxIYWxDbGllbnQ+JiBjbGllbnQpOworCisgICAgc3A8SGFsQ2xpZW50VmVjdG9yPiBnZXRDbGllbnRzRm9yUHJvcGVydHlMb2NrZWQoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworCisgICAgc3A8SGFsQ2xpZW50PiBnZXRPckNyZWF0ZUhhbENsaWVudExvY2tlZChDbGllbnRJZCBjYWxsaW5nUGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrKTsKKworICAgIHZvaWQgb25DYWxsYmFja0RlYWQodWludDY0X3QgY29va2llKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBPbkNsaWVudERlYWQgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQodWludDY0X3QpPjsKKworICAgIGNsYXNzIERlYXRoUmVjaXBpZW50IDogcHVibGljIGhpZGxfZGVhdGhfcmVjaXBpZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIERlYXRoUmVjaXBpZW50KGNvbnN0IE9uQ2xpZW50RGVhZCYgb25DbGllbnREZWFkKQorICAgICAgICAgICAgOiBtT25DbGllbnREZWFkKG9uQ2xpZW50RGVhZCkge30KKyAgICAgICAgfkRlYXRoUmVjaXBpZW50KCkgPSBkZWZhdWx0OworCisgICAgICAgIERlYXRoUmVjaXBpZW50KGNvbnN0IERlYXRoUmVjaXBpZW50JiApID0gZGVsZXRlOworICAgICAgICBEZWF0aFJlY2lwaWVudCYgb3BlcmF0b3I9KGNvbnN0IERlYXRoUmVjaXBpZW50JikgPSBkZWxldGU7CisKKyAgICAgICAgdm9pZCBzZXJ2aWNlRGllZCh1aW50NjRfdCBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd3A8OjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZT4mIC8qIHdobyAqLykgb3ZlcnJpZGUgeworICAgICAgICAgICAgbU9uQ2xpZW50RGVhZChjb29raWUpOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgT25DbGllbnREZWFkIG1PbkNsaWVudERlYWQ7CisgICAgfTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBNdXhHdWFyZCA9IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PjsKKworICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKworICAgIHN0ZDo6bWFwPENsaWVudElkLCBzcDxIYWxDbGllbnQ+PiBtQ2xpZW50czsKKyAgICBzdGQ6Om1hcDxpbnQzMl90LCBzcDxIYWxDbGllbnRWZWN0b3I+PiBtUHJvcFRvQ2xpZW50czsKKyAgICBzdGQ6Om1hcDxpbnQzMl90LCBTdWJzY3JpYmVPcHRpb25zPiBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zOworCisgICAgT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCBtT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZDsKKyAgICBzcDxEZWF0aFJlY2lwaWVudD4gbUNhbGxiYWNrRGVhdGhSZWNpcGllbnQ7Cit9OworCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9TdWJzY3JpcHRpb25NYW5hZ2VyX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWwuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMDNhMWUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWwuaApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsX0gKKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgIlZlaGljbGVPYmplY3RQb29sLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qKgorICogVGhpcyBpcyBhIGxvdy1sZXZlbCB2ZWhpY2xlIGhhbCBpbnRlcmZhY2UgdGhhdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkKKyAqIFZlbmRvci4KKyAqLworY2xhc3MgVmVoaWNsZUhhbCB7CitwdWJsaWM6CisgICAgdXNpbmcgVmVoaWNsZVByb3BWYWx1ZVB0ciA9IHJlY3ljbGFibGVfcHRyPFZlaGljbGVQcm9wVmFsdWU+OworCisgICAgdXNpbmcgSGFsRXZlbnRGdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rpb248dm9pZChWZWhpY2xlUHJvcFZhbHVlUHRyKT47CisgICAgdXNpbmcgSGFsRXJyb3JGdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgKKyAgICAgICAgICAgIFN0YXR1c0NvZGUgZXJyb3JDb2RlLCBpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90IGFyZWFJZCk+OworCisgICAgdmlydHVhbCB+VmVoaWNsZUhhbCgpIHt9CisKKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBsaXN0UHJvcGVydGllcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlaGljbGVQcm9wVmFsdWVQdHIgZ2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1c0NvZGUqIG91dFN0YXR1cykgPSAwOworCisgICAgdmlydHVhbCBTdGF0dXNDb2RlIHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpID0gMDsKKworICAgIC8qKgorICAgICAqIFN1YnNjcmliZSB0byBIQUwgcHJvcGVydHkgZXZlbnRzLiBUaGlzIG1ldGhvZCBtaWdodCBiZSBjYWxsZWQgbXVsdGlwbGUKKyAgICAgKiB0aW1lcyBmb3IgdGhlIHNhbWUgdmVoaWNsZSBwcm9wZXJ0eSB0byB1cGRhdGUgc3Vic2NyaWJlZCBhcmVhcyBvciBzYW1wbGUKKyAgICAgKiByYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5IHRvIHN1YnNjcmliZQorICAgICAqIEBwYXJhbSBhcmVhcyBhIGJpdHdpc2UgdmVoaWNsZSBhcmVhcyBvciAwIGZvciBhbGwgc3VwcG9ydGVkIGFyZWFzCisgICAgICogQHBhcmFtIHNhbXBsZVJhdGUgc2FtcGxlIHJhdGUgaW4gSHogZm9yIHByb3BlcnRpZXMgdGhhdCBzdXBwb3J0IHNhbXBsZQorICAgICAqICAgICAgICAgICAgICAgICAgIHJhdGUsIGUuZy4gZm9yIHByb3BlcnRpZXMgd2l0aAorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFN0YXR1c0NvZGUgc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxlUmF0ZSkgPSAwOworCisgICAgLyoqCisgICAgICogVW5zdWJzY3JpYmUgZnJvbSBIQUwgZXZlbnRzIGZvciBnaXZlbiBwcm9wZXJ0eQorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5IHZlaGljbGUgcHJvcGVydHkgdG8gdW5zdWJzY3JpYmUKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFN0YXR1c0NvZGUgdW5zdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSkgPSAwOworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgdGhpcyBtZXRob2QgaWYgeW91IG5lZWQgdG8gZG8gb25lLXRpbWUgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIG9uQ3JlYXRlKCkge30KKworICAgIHZvaWQgaW5pdCgKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wqIHZhbHVlT2JqZWN0UG9vbCwKKyAgICAgICAgY29uc3QgSGFsRXZlbnRGdW5jdGlvbiYgb25IYWxFdmVudCwKKyAgICAgICAgY29uc3QgSGFsRXJyb3JGdW5jdGlvbiYgb25IYWxFcnJvcikgeworICAgICAgICBtVmFsdWVQb29sID0gdmFsdWVPYmplY3RQb29sOworICAgICAgICBtT25IYWxFdmVudCA9IG9uSGFsRXZlbnQ7CisgICAgICAgIG1PbkhhbFByb3BlcnR5U2V0RXJyb3IgPSBvbkhhbEVycm9yOworCisgICAgICAgIG9uQ3JlYXRlKCk7CisgICAgfQorCisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wqIGdldFZhbHVlUG9vbCgpIHsKKyAgICAgICAgcmV0dXJuIG1WYWx1ZVBvb2w7CisgICAgfQorcHJvdGVjdGVkOgorICAgIC8qIFByb3BhZ2F0ZXMgcHJvcGVydHkgY2hhbmdlIGV2ZW50cyB0byB2ZWhpY2xlIEhBTCBjbGllbnRzLiAqLworICAgIHZvaWQgZG9IYWxFdmVudChWZWhpY2xlUHJvcFZhbHVlUHRyIHYpIHsKKyAgICAgICAgbU9uSGFsRXZlbnQoc3RkOjptb3ZlKHYpKTsKKyAgICB9CisKKyAgICAvKiBQcm9wYWdhdGVzIGVycm9yIGR1cmluZyBzZXQgb3BlcmF0aW9uIHRvIHRoZSB2ZWhpY2xlIEhBTCBjbGllbnRzLiAqLworICAgIHZvaWQgZG9IYWxQcm9wZXJ0eVNldEVycm9yKFN0YXR1c0NvZGUgZXJyb3JDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKSB7CisgICAgICAgIG1PbkhhbFByb3BlcnR5U2V0RXJyb3IoZXJyb3JDb2RlLCBwcm9wSWQsIGFyZWFJZCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEhhbEV2ZW50RnVuY3Rpb24gbU9uSGFsRXZlbnQ7CisgICAgSGFsRXJyb3JGdW5jdGlvbiBtT25IYWxQcm9wZXJ0eVNldEVycm9yOworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKiBtVmFsdWVQb29sOworfTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy9hbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWU5ZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxNYW5hZ2VyX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbE1hbmFnZXJfSF8KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxsaXN0PgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c2V0PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisKKyNpbmNsdWRlICJDb25jdXJyZW50UXVldWUuaCIKKyNpbmNsdWRlICJTdWJzY3JpcHRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiVmVoaWNsZUhhbC5oIgorI2luY2x1ZGUgIlZlaGljbGVPYmplY3RQb29sLmgiCisjaW5jbHVkZSAiVmVoaWNsZVByb3BDb25maWdJbmRleC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgYSB0aGljayBwcm94eSBiZXR3ZWVuIElWZWhpY2xlIEhJREwgaW50ZXJmYWNlIGFuZCB2ZW5kb3IncyBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBJdCBoYXMgc29tZSBib2lsZXJwbGF0ZSBjb2RlIGxpa2UgYmF0Y2hpbmcgYW5kIGNhY2hpbmcgcHJvcGVydHkgdmFsdWVzLCBjaGVja2luZyBwZXJtaXNzaW9ucywKKyAqIGV0Yy4gVmVuZG9ycyBtdXN0IGltcGxlbWVudCBWZWhpY2xlSGFsIGNsYXNzLgorICovCitjbGFzcyBWZWhpY2xlSGFsTWFuYWdlciA6IHB1YmxpYyBJVmVoaWNsZSB7CitwdWJsaWM6CisgICAgVmVoaWNsZUhhbE1hbmFnZXIoVmVoaWNsZUhhbCogdmVoaWNsZUhhbCkKKyAgICAgICAgOiBtSGFsKHZlaGljbGVIYWwpLAorICAgICAgICAgIG1TdWJzY3JpcHRpb25NYW5hZ2VyKHN0ZDo6YmluZCgmVmVoaWNsZUhhbE1hbmFnZXI6Om9uQWxsQ2xpZW50c1Vuc3Vic2NyaWJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSkgeworICAgICAgICBpbml0KCk7CisgICAgfQorCisgICAgdmlydHVhbCB+VmVoaWNsZUhhbE1hbmFnZXIoKTsKKworICAgIHZvaWQgaW5pdCgpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gTWV0aG9kcyBkZXJpdmVkIGZyb20gSVZlaGljbGUKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcENvbmZpZ3MoZ2V0QWxsUHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcENvbmZpZ3MoY29uc3QgaGlkbF92ZWM8aW50MzJfdD4mIHByb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBnZXRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gc2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHN1YnNjcmliZShjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+JiBvcHRpb25zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHVuc3Vic2NyaWJlKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGRlYnVnRHVtcF9jYiBfaGlkbF9jYiA9IG51bGxwdHIpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHVzaW5nIFZlaGljbGVQcm9wVmFsdWVQdHIgPSBWZWhpY2xlSGFsOjpWZWhpY2xlUHJvcFZhbHVlUHRyOworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBuZWVkcyB0byBjYWxsIGFnYWluIHNob3J0bHkuCisgICAgdXNpbmcgUmV0cmlhYmxlQWN0aW9uID0gc3RkOjpmdW5jdGlvbjxib29sKCk+OworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRXZlbnRzIHJlY2VpdmVkIGZyb20gVmVoaWNsZUhhbAorICAgIHZvaWQgb25IYWxFdmVudChWZWhpY2xlUHJvcFZhbHVlUHRyICB2KTsKKyAgICB2b2lkIG9uSGFsUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIGVycm9yQ29kZSwgaW50MzJfdCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFJZCk7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBmcm9tIEJhdGNoaW5nQ29uc3VtZXIgdGhyZWFkCisgICAgdm9pZCBvbkJhdGNoSGFsRXZlbnQoY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZVB0ciA+JiB2YWx1ZXMpOworCisgICAgdm9pZCBoYW5kbGVQcm9wZXJ0eVNldEV2ZW50KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlKTsKKworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBnZXRQcm9wQ29uZmlnT3JOdWxsKGludDMyX3QgcHJvcCkgY29uc3Q7CisKKyAgICBib29sIGNoZWNrV3JpdGVQZXJtaXNzaW9uKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcpIGNvbnN0OworICAgIGJvb2wgY2hlY2tSZWFkUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdDsKKyAgICB2b2lkIG9uQWxsQ2xpZW50c1Vuc3Vic2NyaWJlZChpbnQzMl90IHByb3BlcnR5SWQpOworCisgICAgc3RhdGljIGJvb2wgaXNTdWJzY3JpYmFibGUoY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncyk7CisgICAgc3RhdGljIGJvb2wgaXNTYW1wbGVSYXRlRml4ZWQoVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZSBtb2RlKTsKKyAgICBzdGF0aWMgZmxvYXQgY2hlY2tTYW1wbGVSYXRlKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgQ2xpZW50SWQgZ2V0Q2xpZW50SWQoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrKTsKK3ByaXZhdGU6CisgICAgVmVoaWNsZUhhbCogbUhhbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BDb25maWdJbmRleD4gbUNvbmZpZ0luZGV4OworICAgIFN1YnNjcmlwdGlvbk1hbmFnZXIgbVN1YnNjcmlwdGlvbk1hbmFnZXI7CisKKyAgICBoaWRsX3ZlYzxWZWhpY2xlUHJvcFZhbHVlPiBtSGlkbFZlY09mVmVoaWNsZVByb3BWYWx1ZVBvb2w7CisKKyAgICBDb25jdXJyZW50UXVldWU8VmVoaWNsZVByb3BWYWx1ZVB0cj4gbUV2ZW50UXVldWU7CisgICAgQmF0Y2hpbmdDb25zdW1lcjxWZWhpY2xlUHJvcFZhbHVlUHRyPiBtQmF0Y2hpbmdDb25zdW1lcjsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCBtVmFsdWVPYmplY3RQb29sOworfTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxNYW5hZ2VyX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVPYmplY3RQb29sLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVPYmplY3RQb29sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVjNjQ5YgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZU9iamVjdFBvb2wuaApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVPYmplY3RQb29sX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZU9iamVjdFBvb2xfSF8KKworI2luY2x1ZGUgPGRlcXVlPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxtdXRleD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvLyBIYW5keSBtZXRyaWMgbW9zdGx5IGZvciB1bml0IHRlc3RzIGFuZCBkZWJ1Zy4KKyNkZWZpbmUgSU5DX01FVFJJQ19JRl9ERUJVRyh2YWwpIFBvb2xTdGF0czo6aW5zdGFuY2UoKS0+dmFsKys7CitzdHJ1Y3QgUG9vbFN0YXRzIHsKKyAgICBzdGQ6OmF0b21pYzx1aW50MzJfdD4gT2J0YWluZWQgezB9OworICAgIHN0ZDo6YXRvbWljPHVpbnQzMl90PiBDcmVhdGVkIHswfTsKKyAgICBzdGQ6OmF0b21pYzx1aW50MzJfdD4gUmVjeWNsZWQgezB9OworCisgICAgc3RhdGljIFBvb2xTdGF0cyogaW5zdGFuY2UoKSB7CisgICAgICAgIHN0YXRpYyBQb29sU3RhdHMgaW5zdDsKKyAgICAgICAgcmV0dXJuICZpbnN0OworICAgIH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgRGVsZXRlciAgeworICAgIHVzaW5nIE9uRGVsZXRlRnVuYyA9IHN0ZDo6ZnVuY3Rpb248dm9pZChUKik+OworCisgICAgRGVsZXRlcihjb25zdCBPbkRlbGV0ZUZ1bmMmIGYpIDogbU9uRGVsZXRlKGYpIHt9OworCisgICAgRGVsZXRlcigpID0gZGVmYXVsdDsKKyAgICBEZWxldGVyKGNvbnN0IERlbGV0ZXImKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCogbykgeworICAgICAgICBtT25EZWxldGUobyk7CisgICAgfQorcHJpdmF0ZToKKyAgICBPbkRlbGV0ZUZ1bmMgbU9uRGVsZXRlOworfTsKKworLyoqCisgKiBUaGlzIGlzIHN0ZDo6dW5pcXVlX3B0cjw+IHdpdGggY3VzdG9tIGRlbGV0ZSBvcGVyYXRpb24gdGhhdCB0eXBpY2FsbHkgbW92ZXMKKyAqIHRoZSBwb2ludGVyIGl0IGhvbGRzIGJhY2sgdG8gT2JqZWN0UG9vbC4KKyAqLwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit1c2luZyByZWN5Y2xhYmxlX3B0ciA9IHR5cGVuYW1lIHN0ZDo6dW5pcXVlX3B0cjxULCBEZWxldGVyPFQ+PjsKKworLyoqCisgKiBHZW5lcmljIGFic3RyYWN0IG9iamVjdCBwb29sIGNsYXNzLiBVc2VycyBvZiB0aGlzIGNsYXNzIG11c3QgaW1wbGVtZW50CisgKiAjY3JlYXRlT2JqZWN0IG1ldGhvZC4KKyAqCisgKiBUaGlzIGNsYXNzIGlzIHRocmVhZC1zYWZlLiBDb25jdXJyZW50IGNhbGxzIHRvICNvYnRhaW4oLi4uKSBtZXRob2QgZnJvbQorICogbXVsdGlwbGUgdGhyZWFkcyBpcyBPSywgYWxzbyBjbGllbnQgY2FuIG9idGFpbiBhbiBvYmplY3QgaW4gb25lIHRocmVhZCBhbmQKKyAqIHRoZW4gbW92ZSBvd25lcnNoaXAgdG8gYW5vdGhlciB0aHJlYWQuCisgKgorICovCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgT2JqZWN0UG9vbCB7CitwdWJsaWM6CisgICAgT2JqZWN0UG9vbCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5PYmplY3RQb29sKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCByZWN5Y2xhYmxlX3B0cjxUPiBvYnRhaW4oKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgSU5DX01FVFJJQ19JRl9ERUJVRyhPYnRhaW5lZCkKKyAgICAgICAgaWYgKG1PYmplY3RzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIElOQ19NRVRSSUNfSUZfREVCVUcoQ3JlYXRlZCkKKyAgICAgICAgICAgIHJldHVybiB3cmFwKGNyZWF0ZU9iamVjdCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gbyA9IHdyYXAobU9iamVjdHMuZnJvbnQoKS5yZWxlYXNlKCkpOworICAgICAgICBtT2JqZWN0cy5wb3BfZnJvbnQoKTsKKworICAgICAgICByZXR1cm4gbzsKKyAgICB9CisKKyAgICBPYmplY3RQb29sJiBvcGVyYXRvciA9KGNvbnN0IE9iamVjdFBvb2wgJikgPSBkZWxldGU7CisgICAgT2JqZWN0UG9vbChjb25zdCBPYmplY3RQb29sICYpID0gZGVsZXRlOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBUKiBjcmVhdGVPYmplY3QoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVjeWNsZShUKiBvKSB7CisgICAgICAgIElOQ19NRVRSSUNfSUZfREVCVUcoUmVjeWNsZWQpCisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgbU9iamVjdHMucHVzaF9iYWNrKHN0ZDo6dW5pcXVlX3B0cjxUPiB7IG8gfSApOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBEZWxldGVyPFQ+JiBnZXREZWxldGVyKCkgeworICAgICAgICBpZiAoIW1EZWxldGVyLmdldCgpKSB7CisgICAgICAgICAgICBEZWxldGVyPFQ+ICpkID0gbmV3IERlbGV0ZXI8VD4oc3RkOjpiaW5kKAorICAgICAgICAgICAgICAgICZPYmplY3RQb29sOjpyZWN5Y2xlLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKTsKKyAgICAgICAgICAgIG1EZWxldGVyLnJlc2V0KGQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAqbURlbGV0ZXIuZ2V0KCk7CisgICAgfQorCisgICAgcmVjeWNsYWJsZV9wdHI8VD4gd3JhcChUKiByYXcpIHsKKyAgICAgICAgcmV0dXJuIHJlY3ljbGFibGVfcHRyPFQ+IHsgcmF3LCBnZXREZWxldGVyKCkgfTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6ZGVxdWU8c3RkOjp1bmlxdWVfcHRyPFQ+PiBtT2JqZWN0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVsZXRlcjxUPj4gbURlbGV0ZXI7Cit9OworCisvKioKKyAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBwb29sIG9mIHJlY3ljYWJsZSBWZWhpY2xlUHJvcGVydHlWYWx1ZSBvYmplY3RzLgorICoKKyAqIEl0IGhhcyBvbmx5IG9uZSBvdmVybG9hZGVkIHB1YmxpYyBtZXRob2QgLSBvYnRhaW4oLi4uKSwgdXNlcnMgbXVzdCBjYWxsIHRoaXMKKyAqIG1ldGhvZCB3aGVuIG5ldyBvYmplY3QgaXMgbmVlZGVkIHdpdGggZ2l2ZW4gVmVoaWNsZVByb3BlcnR5VHlwZSBhbmQgdmVjdG9yCisgKiBzaXplIChmb3IgdmVjdG9yIHByb3BlcnRpZXMpLiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgcmVjeWNhYmxlIHNtYXJ0IHBvaW50ZXIKKyAqIHRvIFZlaGljbGVQcm9wZXJ0eVZhbHVlLCBlc3NlbnRpYWxseSB0aGlzIGlzIGEgc3RkOjp1bmlxdWVfcHRyIHdpdGggY3VzdG9tCisgKiBkZWxldGUgZnVuY3Rpb24sIHNvIHJlY3ljYWJsZSBvYmplY3QgaGFzIG9ubHkgb25lIG93bmVyIGFuZCBkZXZlbG9wZXJzIGNhbgorICogc2FmZWx5IHBhc3MgaXQgYXJvdW5kLiBPbmNlIHRoaXMgb2JqZWN0IGdvZXMgb3V0IG9mIHNjb3BlLCBpdCB3aWxsIGJlCisgKiByZXR1cm5lZCB0aGUgdGhlIG9iamVjdCBwb29sLgorICoKKyAqIFNvbWUgb2JqZWN0cyBhcmUgbm90IHJlY3ljYWJsZTogc3RyaW5ncyBhbmQgdmVjdG9yIGRhdGEgdHlwZXMgd2l0aAorICogdmVjdG9yIGxlbmd0aCA+IG1heFJlY3ljbGFibGVWZWN0b3JTaXplIChwcm92aWRlZCBpbiB0aGUgY29uc3RydWN0b3IpLiBUaGVzZQorICogb2JqZWN0cyB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgb25jZSB0aGUgZ28gb3V0IG9mIHNjb3BlLiBUaGVyZSdzIG5vCisgKiBzeW5jaG9ybml6YXRpb24gcGVuYWx0eSBmb3IgdGhlc2Ugb2JqZWN0cyBzaW5jZSB3ZSBkbyBub3Qgc3RvcmUgdGhlbSBpbiB0aGUKKyAqIHBvb2wuCisgKgorICogVGhpcyBjbGFzcyBpcyB0aHJlYWQtc2FmZS4gVXNlcnMgY2FuIG9idGFpbiBhbiBvYmplY3QgaW4gb25lIHRocmVhZCBhbmQgcGFzcworICogaXQgdG8gYW5vdGhlci4KKyAqCisgKiBTYW1wbGUgdXNhZ2U6CisgKgorICogICBWZWhpY2xlUHJvcFZhbHVlUG9vbCBwb29sOworICogICBhdXRvIHYgPSBwb29sLm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMik7CisgKiAgIHYtPnByb3BJZCA9IFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQ7CisgKiAgIHYtPmFyZWFJZCA9IFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVDsKKyAqICAgdi0+dGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICogICB2LT52YWx1ZS0+aW50MzJWYWx1ZXNbMF0gPSA0MjsKKyAqCisgKgorICovCitjbGFzcyBWZWhpY2xlUHJvcFZhbHVlUG9vbCB7CitwdWJsaWM6CisgICAgdXNpbmcgUmVjeWNsYWJsZVR5cGUgPSByZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPjsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgVmVoaWNsZVByb3BWYWx1ZVBvb2wKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSAtIHZlY3RvciB2YWx1ZSB0eXBlcyAoZS5nLgorICAgICAqIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQykgd2l0aCBzaXplIGVxdWFsIG9yIGxlc3MgdG8gdGhpcyB2YWx1ZQorICAgICAqIHdpbGwgYmUgc3RvcmVkIGluIHRoZSBwb29sLiBJZiB1c2VycyB0cmllcyB0byBvYnRhaW4gdmFsdWUgd2l0aCB2ZWN0b3IKKyAgICAgKiBzaXplIGdyZWF0ZXIgdGhhbiBtYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSB1c2VyIHdpbGwgcmVjZWl2ZSBhcHByb3ByaWF0ZQorICAgICAqIG9iamVjdCwgYnV0IG9uY2UgaXQgZ29lcyBvdXQgb2Ygc2NvcGUgaXQgd2lsbCBiZSBkZWxldGVkIGltbWVkaWF0ZWx5LCBub3QKKyAgICAgKiByZXR1cm5pbmcgYmFjayB0byB0aGUgb2JqZWN0IHBvb2wuCisgICAgICoKKyAgICAgKi8KKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbChzaXplX3QgbWF4UmVjeWNsYWJsZVZlY3RvclNpemUgPSA0KSA6CisgICAgICAgIG1NYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZShtYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSkge307CisKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlKTsKKworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW4oY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgc3JjKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5Cb29sZWFuKGJvb2wgdmFsdWUpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkludDMyKGludDMyX3QgdmFsdWUpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkludDY0KGludDY0X3QgdmFsdWUpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkZsb2F0KGZsb2F0IHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5TdHJpbmcoY29uc3QgY2hhciogY3N0cik7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluQ29tcGxleCgpOworCisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2woVmVoaWNsZVByb3BWYWx1ZVBvb2wmICkgPSBkZWxldGU7CisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wmIG9wZXJhdG9yPShWZWhpY2xlUHJvcFZhbHVlUG9vbCYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBib29sIGlzRGlzcG9zYWJsZShWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSBjb25zdCB7CisgICAgICAgIHJldHVybiB2ZWNTaXplID4gbU1heFJlY3ljbGFibGVWZWN0b3JTaXplIHx8CisgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcgPT0gdHlwZSB8fAorICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWCA9PSB0eXBlOworICAgIH0KKworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkRpc3Bvc2FibGUoVmVoaWNsZVByb3BlcnR5VHlwZSB2YWx1ZVR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmVjdG9yU2l6ZSkgY29uc3Q7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluUmVjeWxhYmxlKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZlY1NpemUpOworCisgICAgY2xhc3MgSW50ZXJuYWxQb29sOiBwdWJsaWMgT2JqZWN0UG9vbDxWZWhpY2xlUHJvcFZhbHVlPiB7CisgICAgcHVibGljOgorICAgICAgICBJbnRlcm5hbFBvb2woVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjdG9yU2l6ZSkKKyAgICAgICAgICAgIDogbVByb3BUeXBlKHR5cGUpLCBtVmVjdG9yU2l6ZSh2ZWN0b3JTaXplKSB7fQorCisgICAgICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbigpIHsKKyAgICAgICAgICAgIHJldHVybiBPYmplY3RQb29sPFZlaGljbGVQcm9wVmFsdWU+OjpvYnRhaW4oKTsKKyAgICAgICAgfQorICAgIHByb3RlY3RlZDoKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZSogY3JlYXRlT2JqZWN0KCkgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgcmVjeWNsZShWZWhpY2xlUHJvcFZhbHVlKiBvKSBvdmVycmlkZTsKKyAgICBwcml2YXRlOgorICAgICAgICBib29sIGNoZWNrKFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlKiB2KTsKKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmVjVHlwZT4KKyAgICAgICAgYm9vbCBjaGVjayhoaWRsX3ZlYzxWZWNUeXBlPiogdmVjLCBib29sIGV4cGVjdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gdmVjLT5zaXplKCkgPT0gKGV4cGVjdGVkID8gbVZlY3RvclNpemUgOiAwKTsKKyAgICAgICAgfQorICAgIHByaXZhdGU6CisgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgbVByb3BUeXBlOworICAgICAgICBzaXplX3QgbVZlY3RvclNpemU7CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBEZWxldGVyPFZlaGljbGVQcm9wVmFsdWU+IG1EaXNwb3NhYmxlRGVsZXRlciB7CisgICAgICAgIFtdIChWZWhpY2xlUHJvcFZhbHVlKiB2KSB7CisgICAgICAgICAgICBkZWxldGUgdjsKKyAgICAgICAgfQorICAgIH07CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIGNvbnN0IHNpemVfdCBtTWF4UmVjeWNsYWJsZVZlY3RvclNpemU7CisgICAgc3RkOjptYXA8aW50MzJfdCwgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsUG9vbD4+IG1WYWx1ZVR5cGVQb29sczsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZU9iamVjdFBvb2xfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BDb25maWdJbmRleC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcENvbmZpZ0luZGV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUyOGY2OAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BDb25maWdJbmRleC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVByb3BDb25maWdJbmRleF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfSF8KKworI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoKKyAqIFRoaXMgaXMgdGhyZWFkLXNhZmUgaW1tdXRhYmxlIGNsYXNzIHRvIGhvbGQgdmVoaWNsZSBwcm9wZXJ0eSBjb25maWd1cmF0aW9uCisgKiBkYXRhLgorICovCitjbGFzcyBWZWhpY2xlUHJvcENvbmZpZ0luZGV4IHsKK3B1YmxpYzoKKyAgICBWZWhpY2xlUHJvcENvbmZpZ0luZGV4KAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4mIHByb3BlcnRpZXMpCisgICAgICAgIDogbUNvbmZpZ3MocHJvcGVydGllcyksIG1Qcm9wVG9Db25maWcobUNvbmZpZ3MpCisgICAge30KKworICAgIGJvb2wgaGFzQ29uZmlnKGludDMyX3QgcHJvcGVydHkpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIG1Qcm9wVG9Db25maWcuaW5kZXhPZktleShwcm9wZXJ0eSkgPj0gMDsKKyAgICB9CisKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgZ2V0Q29uZmlnKGludDMyX3QgcHJvcGVydHkpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuICptUHJvcFRvQ29uZmlnLnZhbHVlRm9yKHByb3BlcnR5KTsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4mIGdldEFsbENvbmZpZ3MoKSBjb25zdCB7CisgICAgICAgIHJldHVybiBtQ29uZmlnczsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBLZXllZFZlY3RvcjxpbnQzMl90LCBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyo+IFByb3BDb25maWdNYXA7CisgICAgY2xhc3MgSW1tdXRhYmxlUHJvcENvbmZpZ01hcCA6IHByaXZhdGUgUHJvcENvbmZpZ01hcCB7CisgICAgcHVibGljOgorICAgICAgICBJbW11dGFibGVQcm9wQ29uZmlnTWFwKGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiYgY29uZmlncykgeworICAgICAgICAgICAgc2V0Q2FwYWNpdHkoY29uZmlncy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChhdXRvJiBjb25maWcgOiBjb25maWdzKSB7CisgICAgICAgICAgICAgICAgYWRkKGNvbmZpZy5wcm9wLCAmY29uZmlnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIHB1YmxpYzoKKyAgICAgICAgdXNpbmcgUHJvcENvbmZpZ01hcDo6dmFsdWVGb3I7CisgICAgICAgIHVzaW5nIFByb3BDb25maWdNYXA6OmluZGV4T2ZLZXk7CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbUNvbmZpZ3M7CisgICAgY29uc3QgSW1tdXRhYmxlUHJvcENvbmZpZ01hcCBtUHJvcFRvQ29uZmlnOyAgLy8gbUNvbmZpZ3MgbXVzdCBiZSBkZWNsYXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0LgorfTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRhOTRiNwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1Byb3BlcnR5RGJfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1Byb3BlcnR5RGJfSF8KKworI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8bXV0ZXg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoqCisgKiBFbmNhcHN1bGF0ZXMgd29yayByZWxhdGVkIHRvIHN0b3JpbmcgYW5kIGFjY2Vzc2luZyBjb25maWd1cmF0aW9uLCBzdG9yaW5nIGFuZCBtb2RpZnlpbmcKKyAqIHZlaGljbGUgcHJvcGVydHkgdmFsdWVzLgorICoKKyAqIFZlaGljbGVQcm9wZXJ0eVZhbHVlcyBzdG9yZWQgaW4gYSBzb3J0ZWQgbWFwIHRodXMgaXQgbWFrZXMgZWFzaWVyIHRvIGdldCByYW5nZSBvZiB2YWx1ZXMsIGUuZy4KKyAqIHRvIGdldCB2YWx1ZSBmb3IgYWxsIGFyZWFzIGZvciBwYXJ0aWN1bGFyIHByb3BlcnR5LgorICoKKyAqIFRoaXMgY2xhc3MgaXMgdGhyZWFkLXNhZmUsIGhvd2V2ZXIgaXQgdXNlcyBibG9ja2luZyBzeW5jaHJvbml6YXRpb24gYWNyb3NzIGFsbCBtZXRob2RzLgorICovCitjbGFzcyBWZWhpY2xlUHJvcGVydHlTdG9yZSB7CitwdWJsaWM6CisgICAgLyogRnVuY3Rpb24gdGhhdCB1c2VkIHRvIGNhbGN1bGF0ZSB1bmlxdWUgdG9rZW4gZm9yIGdpdmVuIFZlaGljbGVQcm9wVmFsdWUgKi8KKyAgICB1c2luZyBUb2tlbkZ1bmN0aW9uID0gc3RkOjpmdW5jdGlvbjxpbnQ2NF90KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlKT47CisKK3ByaXZhdGU6CisgICAgc3RydWN0IFJlY29yZENvbmZpZyB7CisgICAgICAgIFZlaGljbGVQcm9wQ29uZmlnIHByb3BDb25maWc7CisgICAgICAgIFRva2VuRnVuY3Rpb24gdG9rZW5GdW5jdGlvbjsKKyAgICB9OworCisgICAgc3RydWN0IFJlY29yZElkIHsKKyAgICAgICAgaW50MzJfdCBwcm9wOworICAgICAgICBpbnQzMl90IGFyZWE7CisgICAgICAgIGludDY0X3QgdG9rZW47CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlY29yZElkJiBvdGhlcikgY29uc3Q7CisgICAgICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFJlY29yZElkJiBvdGhlcikgY29uc3Q7CisgICAgfTsKKworICAgIHVzaW5nIFByb3BlcnR5TWFwID0gc3RkOjptYXA8UmVjb3JkSWQsIFZlaGljbGVQcm9wVmFsdWU+OworICAgIHVzaW5nIFByb3BlcnR5TWFwUmFuZ2UgPSBzdGQ6OnBhaXI8UHJvcGVydHlNYXA6OmNvbnN0X2l0ZXJhdG9yLCBQcm9wZXJ0eU1hcDo6Y29uc3RfaXRlcmF0b3I+OworCitwdWJsaWM6CisgICAgdm9pZCByZWdpc3RlclByb3BlcnR5KGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsIFRva2VuRnVuY3Rpb24gdG9rZW5GdW5jID0gbnVsbHB0cik7CisKKyAgICAvKiBTdG9yZXMgcHJvdmlkZWQgdmFsdWUuIFJldHVybnMgdHJ1ZSBpZiB2YWx1ZSB3YXMgd3JpdHRlbiByZXR1cm5zIGZhbHNlIGlmIGNvbmZpZyBmb3IKKyAgICAgKiBleGFtcGxlIHdhc24ndCByZWdpc3RlcmVkLiAqLworICAgIGJvb2wgd3JpdGVWYWx1ZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpOworCisgICAgdm9pZCByZW1vdmVWYWx1ZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpOworICAgIHZvaWQgcmVtb3ZlVmFsdWVzRm9yUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpOworCisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gcmVhZEFsbFZhbHVlcygpIGNvbnN0OworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IHJlYWRWYWx1ZXNGb3JQcm9wZXJ0eShpbnQzMl90IHByb3BJZCkgY29uc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IHJlYWRWYWx1ZU9yTnVsbChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0KSBjb25zdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gcmVhZFZhbHVlT3JOdWxsKGludDMyX3QgcHJvcCwgaW50MzJfdCBhcmVhID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgdG9rZW4gPSAwKSBjb25zdDsKKworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBnZXRBbGxDb25maWdzKCkgY29uc3Q7CisgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcqIGdldENvbmZpZ09yTnVsbChpbnQzMl90IHByb3BJZCkgY29uc3Q7CisgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcqIGdldENvbmZpZ09yRGllKGludDMyX3QgcHJvcElkKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBSZWNvcmRJZCBnZXRSZWNvcmRJZExvY2tlZChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZVByb3RvdHlwZSkgY29uc3Q7CisgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSogZ2V0VmFsdWVPck51bGxMb2NrZWQoY29uc3QgUmVjb3JkSWQmIHJlY0lkKSBjb25zdDsKKyAgICBQcm9wZXJ0eU1hcFJhbmdlIGZpbmRSYW5nZUxvY2tlZChpbnQzMl90IHByb3BJZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQzMl90IC8qIFZlaGljbGVQcm9wZXJ0eSAqLywgUmVjb3JkQ29uZmlnPiBtQ29uZmlnczsKKworICAgIFByb3BlcnR5TWFwIG1Qcm9wZXJ0eVZhbHVlczsgIC8vIFNvcnRlZCBtYXAgb2YgUmVjb3JkSWQgOiBWZWhpY2xlUHJvcFZhbHVlLgorfTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy9hbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUHJvcGVydHlEYl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UwYjE2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlVXRpbHNfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlVXRpbHNfSF8KKworI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvKiogUmVwcmVzZW50cyBhbGwgc3VwcG9ydGVkIGFyZWFzIGZvciBhIHByb3BlcnR5LiBDYW4gYmUgdXNlZCBpcyAgKi8KK2NvbnN0ZXhwciBpbnQzMl90IGtBbGxTdXBwb3J0ZWRBcmVhcyA9IDA7CisKKy8qKiBSZXR1cm5zIHVuZGVybHlpbmcgKGludGVnZXIpIHZhbHVlIGZvciBnaXZlbiBlbnVtLiAqLwordGVtcGxhdGU8dHlwZW5hbWUgRU5VTT4KK2lubGluZSBjb25zdGV4cHIgdHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8RU5VTT46OnR5cGUgdG9JbnQoCisgICAgICAgIEVOVU0gY29uc3QgdmFsdWUpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8RU5VTT46OnR5cGU+KHZhbHVlKTsKK30KKworaW5saW5lIGNvbnN0ZXhwciBWZWhpY2xlUHJvcGVydHlUeXBlIGdldFByb3BUeXBlKGludDMyX3QgcHJvcCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDxWZWhpY2xlUHJvcGVydHlUeXBlPigKKyAgICAgICAgICAgIHByb3AgJiB0b0ludChWZWhpY2xlUHJvcGVydHlUeXBlOjpNQVNLKSk7Cit9CisKK2lubGluZSBjb25zdGV4cHIgVmVoaWNsZVByb3BlcnR5R3JvdXAgZ2V0UHJvcEdyb3VwKGludDMyX3QgcHJvcCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDxWZWhpY2xlUHJvcGVydHlHcm91cD4oCisgICAgICAgICAgICBwcm9wICYgdG9JbnQoVmVoaWNsZVByb3BlcnR5R3JvdXA6Ok1BU0spKTsKK30KKworaW5saW5lIGNvbnN0ZXhwciBWZWhpY2xlQXJlYSBnZXRQcm9wQXJlYShpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmVoaWNsZUFyZWE+KHByb3AgJiB0b0ludChWZWhpY2xlQXJlYTo6TUFTSykpOworfQorCitpbmxpbmUgY29uc3RleHByIGJvb2wgaXNHbG9iYWxQcm9wKGludDMyX3QgcHJvcCkgeworICAgIHJldHVybiBnZXRQcm9wQXJlYShwcm9wKSA9PSBWZWhpY2xlQXJlYTo6R0xPQkFMOworfQorCitpbmxpbmUgY29uc3RleHByIGJvb2wgaXNTeXN0ZW1Qcm9wZXJ0eShpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gVmVoaWNsZVByb3BlcnR5R3JvdXA6OlNZU1RFTSA9PSBnZXRQcm9wR3JvdXAocHJvcCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKAorICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY1NpemUpOworCitzaXplX3QgZ2V0VmVoaWNsZVJhd1ZhbHVlVmVjdG9yU2l6ZSgKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSYgdmFsdWUsIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSk7CisKK3ZvaWQgY29weVZlaGljbGVSYXdWYWx1ZShWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSogZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUmIHNyYyk7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHNoYWxsb3dDb3B5SGlkbFZlYyhoaWRsX3ZlYzxUPiogZGVzdCwgY29uc3QgaGlkbF92ZWM8VD4mIHNyYyk7CisKK3ZvaWQgc2hhbGxvd0NvcHlIaWRsU3RyKGhpZGxfc3RyaW5nKiBkZXN0LCBjb25zdCBoaWRsX3N0cmluZyYgc3JjKTsKKwordm9pZCBzaGFsbG93Q29weShWZWhpY2xlUHJvcFZhbHVlKiBkZXN0LCBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBzcmMpOworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVVdGlsc19IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvU3Vic2NyaXB0aW9uTWFuYWdlci5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9TdWJzY3JpcHRpb25NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGYwYTVmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvU3Vic2NyaXB0aW9uTWFuYWdlci5jcHAKQEAgLTAsMCArMSwzMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjAtaW1wbCIKKworI2luY2x1ZGUgIlN1YnNjcmlwdGlvbk1hbmFnZXIuaCIKKworI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK2Jvb2wgbWVyZ2VTdWJzY3JpYmVPcHRpb25zKGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9sZE9wdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zICZuZXdPcHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyAqb3V0UmVzdWx0KSB7CisKKyAgICBpbnQzMl90IHVwZGF0ZWRBcmVhcyA9IG9sZE9wdHMudmVoaWNsZUFyZWFzOworICAgIGlmICh1cGRhdGVkQXJlYXMgIT0ga0FsbFN1cHBvcnRlZEFyZWFzKSB7CisgICAgICAgIHVwZGF0ZWRBcmVhcyA9IG5ld09wdHMudmVoaWNsZUFyZWFzICE9IGtBbGxTdXBwb3J0ZWRBcmVhcworICAgICAgICAgICAgPyB1cGRhdGVkQXJlYXMgfCBuZXdPcHRzLnZlaGljbGVBcmVhcworICAgICAgICAgICAgOiBrQWxsU3VwcG9ydGVkQXJlYXM7CisgICAgfQorCisgICAgZmxvYXQgdXBkYXRlZFJhdGUgPSBzdGQ6Om1heChvbGRPcHRzLnNhbXBsZVJhdGUsIG5ld09wdHMuc2FtcGxlUmF0ZSk7CisgICAgU3Vic2NyaWJlRmxhZ3MgdXBkYXRlZEZsYWdzID0gU3Vic2NyaWJlRmxhZ3Mob2xkT3B0cy5mbGFncyB8IG5ld09wdHMuZmxhZ3MpOworCisgICAgYm9vbCB1cGRhdGVkID0gdXBkYXRlZFJhdGUgPiBvbGRPcHRzLnNhbXBsZVJhdGUKKyAgICAgICAgICAgICAgICAgICB8fCB1cGRhdGVkQXJlYXMgIT0gb2xkT3B0cy52ZWhpY2xlQXJlYXMKKyAgICAgICAgICAgICAgICAgICB8fCB1cGRhdGVkRmxhZ3MgIT0gb2xkT3B0cy5mbGFnczsKKyAgICBpZiAodXBkYXRlZCkgeworICAgICAgICAqb3V0UmVzdWx0ID0gb2xkT3B0czsKKyAgICAgICAgb3V0UmVzdWx0LT52ZWhpY2xlQXJlYXMgPSB1cGRhdGVkQXJlYXM7CisgICAgICAgIG91dFJlc3VsdC0+c2FtcGxlUmF0ZSA9IHVwZGF0ZWRSYXRlOworICAgICAgICBvdXRSZXN1bHQtPmZsYWdzID0gdXBkYXRlZEZsYWdzOworICAgIH0KKworICAgIHJldHVybiB1cGRhdGVkOworfQorCit2b2lkIEhhbENsaWVudDo6YWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmb3B0cykgIHsKKyAgICBBTE9HSSgiJXMgb3B0cy5wcm9wSWQ6IDB4JXgiLCBfX2Z1bmNfXywgb3B0cy5wcm9wSWQpOworCisgICAgYXV0byBpdCA9IG1TdWJzY3JpcHRpb25zLmZpbmQob3B0cy5wcm9wSWQpOworICAgIGlmIChpdCA9PSBtU3Vic2NyaXB0aW9ucy5lbmQoKSkgeworICAgICAgICBtU3Vic2NyaXB0aW9ucy5lbXBsYWNlKG9wdHMucHJvcElkLCBvcHRzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zJiBvbGRPcHRzID0gaXQtPnNlY29uZDsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB1cGRhdGVkT3B0aW9uczsKKyAgICAgICAgaWYgKG1lcmdlU3Vic2NyaWJlT3B0aW9ucyhvbGRPcHRzLCBvcHRzLCAmdXBkYXRlZE9wdGlvbnMpKSB7CisgICAgICAgICAgICBtU3Vic2NyaXB0aW9ucy5lcmFzZShpdCk7CisgICAgICAgICAgICBtU3Vic2NyaXB0aW9ucy5lbXBsYWNlKG9wdHMucHJvcElkLCB1cGRhdGVkT3B0aW9ucyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgSGFsQ2xpZW50Ojppc1N1YnNjcmliZWQoaW50MzJfdCBwcm9wSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgeworICAgIGF1dG8gaXQgPSBtU3Vic2NyaXB0aW9ucy5maW5kKHByb3BJZCk7CisgICAgaWYgKGl0ID09IG1TdWJzY3JpcHRpb25zLmVuZCgpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyYgb3B0cyA9IGl0LT5zZWNvbmQ7CisgICAgYm9vbCByZXMgPSAob3B0cy5mbGFncyAmIGZsYWdzKQorICAgICAgICAgICAmJiAob3B0cy52ZWhpY2xlQXJlYXMgPT0gMCB8fCBhcmVhSWQgPT0gMCB8fCBvcHRzLnZlaGljbGVBcmVhcyAmIGFyZWFJZCk7CisgICAgcmV0dXJuIHJlczsKK30KKworc3RkOjp2ZWN0b3I8aW50MzJfdD4gSGFsQ2xpZW50OjpnZXRTdWJzY3JpYmVkUHJvcGVydGllcygpIGNvbnN0IHsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBwcm9wczsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHN1YnNjcmlwdGlvbiA6IG1TdWJzY3JpcHRpb25zKSB7CisgICAgICAgIEFMT0dJKCIlcyBwcm9wSWQ6IDB4JXgsIHByb3BJZDogMHgleCIsIF9fZnVuY19fLCBzdWJzY3JpcHRpb24uZmlyc3QsIHN1YnNjcmlwdGlvbi5zZWNvbmQucHJvcElkKTsKKyAgICAgICAgcHJvcHMucHVzaF9iYWNrKHN1YnNjcmlwdGlvbi5maXJzdCk7CisgICAgfQorICAgIHJldHVybiBwcm9wczsKK30KKworU3RhdHVzQ29kZSBTdWJzY3JpcHRpb25NYW5hZ2VyOjphZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigKKyAgICAgICAgQ2xpZW50SWQgY2xpZW50SWQsCisgICAgICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+ICZjYWxsYmFjaywKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gJm9wdGlvbkxpc3QsCisgICAgICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiogb3V0VXBkYXRlZFN1YnNjcmlwdGlvbnMpIHsKKyAgICBvdXRVcGRhdGVkU3Vic2NyaXB0aW9ucy0+Y2xlYXIoKTsKKworICAgIE11eEd1YXJkIGcobUxvY2spOworCisgICAgQUxPR0koIlN1YnNjcmlwdGlvbk1hbmFnZXI6OmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uLCBjYWxsYmFjazogJXAiLCBjYWxsYmFjay5nZXQoKSk7CisKKyAgICBjb25zdCBzcDxIYWxDbGllbnQ+JiBjbGllbnQgPSBnZXRPckNyZWF0ZUhhbENsaWVudExvY2tlZChjbGllbnRJZCwgY2FsbGJhY2spOworICAgIGlmIChjbGllbnQuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5URVJOQUxfRVJST1I7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25MaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMmIG9wdHMgPSBvcHRpb25MaXN0W2ldOworICAgICAgICBBTE9HSSgiU3Vic2NyaXB0aW9uTWFuYWdlcjo6YWRkT3JVcGRhdGVTdWJzY3JpcHRpb24sIHByb3A6IDB4JXgiLCBvcHRzLnByb3BJZCk7CisgICAgICAgIGNsaWVudC0+YWRkT3JVcGRhdGVTdWJzY3JpcHRpb24ob3B0cyk7CisKKyAgICAgICAgYWRkQ2xpZW50VG9Qcm9wTWFwTG9ja2VkKG9wdHMucHJvcElkLCBjbGllbnQpOworCisgICAgICAgIGlmIChTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UICYgb3B0cy5mbGFncykgeworICAgICAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB1cGRhdGVkOworICAgICAgICAgICAgaWYgKHVwZGF0ZUhhbEV2ZW50U3Vic2NyaXB0aW9uTG9ja2VkKG9wdHMsICZ1cGRhdGVkKSkgeworICAgICAgICAgICAgICAgIG91dFVwZGF0ZWRTdWJzY3JpcHRpb25zLT5wdXNoX2JhY2sodXBkYXRlZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK3N0ZDo6bGlzdDxIYWxDbGllbnRWYWx1ZXM+IFN1YnNjcmlwdGlvbk1hbmFnZXI6OmRpc3RyaWJ1dGVWYWx1ZXNUb0NsaWVudHMoCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHJlY3ljbGFibGVfcHRyPFZlaGljbGVQcm9wVmFsdWU+PiYgcHJvcFZhbHVlcywKKyAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0IHsKKyAgICBzdGQ6Om1hcDxzcDxIYWxDbGllbnQ+LCBzdGQ6Omxpc3Q8VmVoaWNsZVByb3BWYWx1ZSo+PiBjbGllbnRWYWx1ZXNNYXA7CisKKyAgICB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3BWYWx1ZTogcHJvcFZhbHVlcykgeworICAgICAgICAgICAgVmVoaWNsZVByb3BWYWx1ZSogdiA9IHByb3BWYWx1ZS5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8gY2xpZW50cyA9IGdldFN1YnNjcmliZWRDbGllbnRzTG9ja2VkKAorICAgICAgICAgICAgICAgIHYtPnByb3AsIHYtPmFyZWFJZCwgZmxhZ3MpOworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjbGllbnQgOiBjbGllbnRzKSB7CisgICAgICAgICAgICAgICAgY2xpZW50VmFsdWVzTWFwW2NsaWVudF0ucHVzaF9iYWNrKHYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RkOjpsaXN0PEhhbENsaWVudFZhbHVlcz4gY2xpZW50VmFsdWVzOworICAgIGZvciAoY29uc3QgYXV0byYgZW50cnkgOiBjbGllbnRWYWx1ZXNNYXApIHsKKyAgICAgICAgY2xpZW50VmFsdWVzLnB1c2hfYmFjayhIYWxDbGllbnRWYWx1ZXMgeworICAgICAgICAgICAgLmNsaWVudCA9IGVudHJ5LmZpcnN0LAorICAgICAgICAgICAgLnZhbHVlcyA9IGVudHJ5LnNlY29uZAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gY2xpZW50VmFsdWVzOworfQorCitzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gU3Vic2NyaXB0aW9uTWFuYWdlcjo6Z2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgaW50MzJfdCBwcm9wSWQsIGludDMyX3QgYXJlYSwgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICByZXR1cm4gZ2V0U3Vic2NyaWJlZENsaWVudHNMb2NrZWQocHJvcElkLCBhcmVhLCBmbGFncyk7Cit9CisKK3N0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpnZXRTdWJzY3JpYmVkQ2xpZW50c0xvY2tlZCgKKyAgICAgICAgaW50MzJfdCBwcm9wSWQsIGludDMyX3QgYXJlYSwgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0IHsKKyAgICBzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gc3Vic2NyaWJlZENsaWVudHM7CisKKyAgICBzcDxIYWxDbGllbnRWZWN0b3I+IHByb3BDbGllbnRzID0gZ2V0Q2xpZW50c0ZvclByb3BlcnR5TG9ja2VkKHByb3BJZCk7CisgICAgaWYgKHByb3BDbGllbnRzLmdldCgpICE9IG51bGxwdHIpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wQ2xpZW50cy0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIGNsaWVudCA9IHByb3BDbGllbnRzLT5pdGVtQXQoaSk7CisgICAgICAgICAgICBpZiAoY2xpZW50LT5pc1N1YnNjcmliZWQocHJvcElkLCBhcmVhLCBmbGFncykpIHsKKyAgICAgICAgICAgICAgICBzdWJzY3JpYmVkQ2xpZW50cy5wdXNoX2JhY2soY2xpZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBzdWJzY3JpYmVkQ2xpZW50czsKK30KKworYm9vbCBTdWJzY3JpcHRpb25NYW5hZ2VyOjp1cGRhdGVIYWxFdmVudFN1YnNjcmlwdGlvbkxvY2tlZCgKKyAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmb3B0cywgU3Vic2NyaWJlT3B0aW9ucyAqb3V0VXBkYXRlZCkgeworICAgIGJvb2wgdXBkYXRlZCA9IGZhbHNlOworICAgIGF1dG8gaXQgPSBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmZpbmQob3B0cy5wcm9wSWQpOworICAgIGlmIChpdCA9PSBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmVuZCgpKSB7CisgICAgICAgICpvdXRVcGRhdGVkID0gb3B0czsKKyAgICAgICAgbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lbXBsYWNlKG9wdHMucHJvcElkLCBvcHRzKTsKKyAgICAgICAgdXBkYXRlZCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyYgb2xkT3B0cyA9IGl0LT5zZWNvbmQ7CisKKyAgICAgICAgaWYgKG1lcmdlU3Vic2NyaWJlT3B0aW9ucyhvbGRPcHRzLCBvcHRzLCBvdXRVcGRhdGVkKSkgeworICAgICAgICAgICAgbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lcmFzZShvcHRzLnByb3BJZCk7CisgICAgICAgICAgICBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmVtcGxhY2Uob3B0cy5wcm9wSWQsICpvdXRVcGRhdGVkKTsKKyAgICAgICAgICAgIHVwZGF0ZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHVwZGF0ZWQ7Cit9CisKK3ZvaWQgU3Vic2NyaXB0aW9uTWFuYWdlcjo6YWRkQ2xpZW50VG9Qcm9wTWFwTG9ja2VkKAorICAgICAgICBpbnQzMl90IHByb3BJZCwgY29uc3Qgc3A8SGFsQ2xpZW50PiAmY2xpZW50KSB7CisgICAgYXV0byBpdCA9IG1Qcm9wVG9DbGllbnRzLmZpbmQocHJvcElkKTsKKyAgICBzcDxIYWxDbGllbnRWZWN0b3I+IHByb3BDbGllbnRzOworICAgIGlmIChpdCA9PSBtUHJvcFRvQ2xpZW50cy5lbmQoKSkgeworICAgICAgICBwcm9wQ2xpZW50cyA9IG5ldyBIYWxDbGllbnRWZWN0b3IoKTsKKyAgICAgICAgbVByb3BUb0NsaWVudHMuaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKHByb3BJZCwgcHJvcENsaWVudHMpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcm9wQ2xpZW50cyA9IGl0LT5zZWNvbmQ7CisgICAgfQorICAgIHByb3BDbGllbnRzLT5hZGRPclVwZGF0ZShjbGllbnQpOworfQorCitzcDxIYWxDbGllbnRWZWN0b3I+IFN1YnNjcmlwdGlvbk1hbmFnZXI6OmdldENsaWVudHNGb3JQcm9wZXJ0eUxvY2tlZCgKKyAgICAgICAgaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBhdXRvIGl0ID0gbVByb3BUb0NsaWVudHMuZmluZChwcm9wSWQpOworICAgIHJldHVybiBpdCA9PSBtUHJvcFRvQ2xpZW50cy5lbmQoKSA/IG51bGxwdHIgOiBpdC0+c2Vjb25kOworfQorCitzcDxIYWxDbGllbnQ+IFN1YnNjcmlwdGlvbk1hbmFnZXI6OmdldE9yQ3JlYXRlSGFsQ2xpZW50TG9ja2VkKAorICAgICAgICBDbGllbnRJZCBjbGllbnRJZCwgY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgYXV0byBpdCA9IG1DbGllbnRzLmZpbmQoY2xpZW50SWQpOworCisgICAgaWYgKGl0ID09IG1DbGllbnRzLmVuZCgpKSB7CisgICAgICAgIHVpbnQ2NF90IGNvb2tpZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KGNsaWVudElkKTsKKyAgICAgICAgQUxPR0koIkNyZWF0aW5nIG5ldyBjbGllbnQgYW5kIGxpbmtpbmcgdG8gZGVhdGggcmVjaXBpZW50LCBjb29raWU6IDB4JSIgUFJJeDY0LCBjb29raWUpOworICAgICAgICBhdXRvIHJlcyA9IGNhbGxiYWNrLT5saW5rVG9EZWF0aChtQ2FsbGJhY2tEZWF0aFJlY2lwaWVudCwgY29va2llKTsKKyAgICAgICAgaWYgKCFyZXMuaXNPaygpKSB7ICAvLyBDbGllbnQgaXMgYWxyZWFkeSBkZWFkPworICAgICAgICAgICAgQUxPR1coIiVzIGZhaWxlZCB0byBsaW5rIHRvIGRlYXRoLCBjbGllbnQgJXAsIGVycjogJXMiLAorICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGNhbGxiYWNrLmdldCgpLCByZXMuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgc3A8SGFsQ2xpZW50PiBjbGllbnQgPSBuZXcgSGFsQ2xpZW50KGNhbGxiYWNrKTsKKyAgICAgICAgbUNsaWVudHMuaW5zZXJ0KHtjbGllbnRJZCwgY2xpZW50fSk7CisgICAgICAgIHJldHVybiBjbGllbnQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CisgICAgfQorfQorCit2b2lkIFN1YnNjcmlwdGlvbk1hbmFnZXI6OnVuc3Vic2NyaWJlKENsaWVudElkIGNsaWVudElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCkgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGF1dG8gcHJvcGVydHlDbGllbnRzID0gZ2V0Q2xpZW50c0ZvclByb3BlcnR5TG9ja2VkKHByb3BJZCk7CisgICAgYXV0byBjbGllbnRJdGVyID0gbUNsaWVudHMuZmluZChjbGllbnRJZCk7CisgICAgaWYgKGNsaWVudEl0ZXIgPT0gbUNsaWVudHMuZW5kKCkpIHsKKyAgICAgICAgQUxPR1coIlVuYWJsZSB0byB1bnN1YnNjcmliZTogbm8gY2FsbGJhY2sgZm91bmQsIHByb3BJZDogMHgleCIsIHByb3BJZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBjbGllbnQgPSBjbGllbnRJdGVyLT5zZWNvbmQ7CisKKyAgICAgICAgaWYgKHByb3BlcnR5Q2xpZW50cyAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBwcm9wZXJ0eUNsaWVudHMtPnJlbW92ZShjbGllbnQpOworCisgICAgICAgICAgICBpZiAocHJvcGVydHlDbGllbnRzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBtUHJvcFRvQ2xpZW50cy5lcmFzZShwcm9wSWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc0NsaWVudFN1YnNjcmliZWRUb090aGVyUHJvcHMgPSBmYWxzZTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwcm9wQ2xpZW50IDogbVByb3BUb0NsaWVudHMpIHsKKyAgICAgICAgICAgIGlmIChwcm9wQ2xpZW50LnNlY29uZC0+aW5kZXhPZihjbGllbnQpID49IDApIHsKKyAgICAgICAgICAgICAgICBpc0NsaWVudFN1YnNjcmliZWRUb090aGVyUHJvcHMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFpc0NsaWVudFN1YnNjcmliZWRUb090aGVyUHJvcHMpIHsKKyAgICAgICAgICAgIGF1dG8gcmVzID0gY2xpZW50LT5nZXRDYWxsYmFjaygpLT51bmxpbmtUb0RlYXRoKG1DYWxsYmFja0RlYXRoUmVjaXBpZW50KTsKKyAgICAgICAgICAgIGlmICghcmVzLmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dXKCIlcyBmYWlsZWQgdG8gdW5saW5rIHRvIGRlYXRoLCBjbGllbnQ6ICVwLCBlcnI6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgY2xpZW50LT5nZXRDYWxsYmFjaygpLmdldCgpLCByZXMuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1DbGllbnRzLmVyYXNlKGNsaWVudEl0ZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHByb3BlcnR5Q2xpZW50cyA9PSBudWxscHRyIHx8IHByb3BlcnR5Q2xpZW50cy0+aXNFbXB0eSgpKSB7CisgICAgICAgIG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZXJhc2UocHJvcElkKTsKKyAgICAgICAgbU9uUHJvcGVydHlVbnN1YnNjcmliZWQocHJvcElkKTsKKyAgICB9Cit9CisKK3ZvaWQgU3Vic2NyaXB0aW9uTWFuYWdlcjo6b25DYWxsYmFja0RlYWQodWludDY0X3QgY29va2llKSB7CisgICAgQUxPR0koIiVzLCBjb29raWU6IDB4JSIgUFJJeDY0LCBfX2Z1bmNfXywgY29va2llKTsKKyAgICBDbGllbnRJZCBjbGllbnRJZCA9IGNvb2tpZTsKKworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHByb3BzOworICAgIHsKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgIGNvbnN0IGF1dG8mIGl0ID0gbUNsaWVudHMuZmluZChjbGllbnRJZCk7CisgICAgICAgIGlmIChpdCA9PSBtQ2xpZW50cy5lbmQoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgLy8gTm90aGluZyB0byBkbyBoZXJlLCBjbGllbnQgd2Fzbid0IHN1YnNjcmliZWQgdG8gYW55IHByb3BlcnRpZXMuCisgICAgICAgIH0KKyAgICAgICAgY29uc3QgYXV0byYgaGFsQ2xpZW50ID0gaXQtPnNlY29uZDsKKyAgICAgICAgcHJvcHMgPSBoYWxDbGllbnQtPmdldFN1YnNjcmliZWRQcm9wZXJ0aWVzKCk7CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IHByb3BJZCA6IHByb3BzKSB7CisgICAgICAgIHVuc3Vic2NyaWJlKGNsaWVudElkLCBwcm9wSWQpOworICAgIH0KK30KKworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlSGFsTWFuYWdlci5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlSGFsTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU1NDNiYgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVIYWxNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDM2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1pbXBsIgorCisjaW5jbHVkZSAiVmVoaWNsZUhhbE1hbmFnZXIuaCIKKworI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9CcEh3VmVoaWNsZUNhbGxiYWNrLmg+CisKKyNpbmNsdWRlICJWZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDo6cGxhY2Vob2xkZXJzOworCitjb25zdGV4cHIgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBrSGFsRXZlbnRCYXRjaGluZ1RpbWVXaW5kb3coMTApOworCitjb25zdCBWZWhpY2xlUHJvcFZhbHVlIGtFbXB0eVZhbHVle307CisKKy8qKgorICogSW5kaWNhdGVzIHdoYXQncyB0aGUgbWF4aW11bSBzaXplIG9mIGhpZGxfdmVjPFZlaGljbGVQcm9wVmFsdWU+IHdlIHdhbnQKKyAqIHRvIHN0b3JlIGluIHJldXNhYmxlIG9iamVjdCBwb29sLgorICovCitjb25zdGV4cHIgYXV0byBrTWF4SGlkbFZlY09mVmVoaWNsUHJvcFZhbHVlUG9vbFNpemUgPSAyMDsKKworUmV0dXJuPHZvaWQ+IFZlaGljbGVIYWxNYW5hZ2VyOjpnZXRBbGxQcm9wQ29uZmlncyhnZXRBbGxQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIEFMT0dJKCJnZXRBbGxQcm9wQ29uZmlncyBjYWxsZWQiKTsKKyAgICBoaWRsX3ZlYzxWZWhpY2xlUHJvcENvbmZpZz4gaGlkbENvbmZpZ3M7CisgICAgYXV0byYgaGFsQ29uZmlnID0gbUNvbmZpZ0luZGV4LT5nZXRBbGxDb25maWdzKCk7CisKKyAgICBoaWRsQ29uZmlncy5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgY29uc3RfY2FzdDxWZWhpY2xlUHJvcENvbmZpZyAqPihoYWxDb25maWcuZGF0YSgpKSwKKyAgICAgICAgICAgIGhhbENvbmZpZy5zaXplKCkpOworCisgICAgX2hpZGxfY2IoaGlkbENvbmZpZ3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFZlaGljbGVIYWxNYW5hZ2VyOjpnZXRQcm9wQ29uZmlncyhjb25zdCBoaWRsX3ZlYzxpbnQzMl90PiAmcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlnczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb3BlcnRpZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgYXV0byBwcm9wID0gcHJvcGVydGllc1tpXTsKKyAgICAgICAgaWYgKG1Db25maWdJbmRleC0+aGFzQ29uZmlnKHByb3ApKSB7CisgICAgICAgICAgICBjb25maWdzLnB1c2hfYmFjayhtQ29uZmlnSW5kZXgtPmdldENvbmZpZyhwcm9wKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HVygiUmVxdWVzdGVkIGNvbmZpZyBmb3IgdW5kZWZpbmVkIHByb3BlcnR5OiAweCV4IiwgcHJvcCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXNDb2RlOjpJTlZBTElEX0FSRywgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6T0ssIGNvbmZpZ3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFZlaGljbGVIYWxNYW5hZ2VyOjpnZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLCBnZXRfY2IgX2hpZGxfY2IpIHsKKyAgICBjb25zdCBhdXRvKiBjb25maWcgPSBnZXRQcm9wQ29uZmlnT3JOdWxsKHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKyAgICBpZiAoY29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBnZXQgdmFsdWU6IGNvbmZpZyBub3QgZm91bmQsIHByb3BlcnR5OiAweCV4IiwKKyAgICAgICAgICAgICAgcmVxdWVzdGVkUHJvcFZhbHVlLnByb3ApOworICAgICAgICBfaGlkbF9jYihTdGF0dXNDb2RlOjpJTlZBTElEX0FSRywga0VtcHR5VmFsdWUpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmICghY2hlY2tSZWFkUGVybWlzc2lvbigqY29uZmlnKSkgeworICAgICAgICBfaGlkbF9jYihTdGF0dXNDb2RlOjpBQ0NFU1NfREVOSUVELCBrRW1wdHlWYWx1ZSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSBzdGF0dXM7CisgICAgYXV0byB2YWx1ZSA9IG1IYWwtPmdldChyZXF1ZXN0ZWRQcm9wVmFsdWUsICZzdGF0dXMpOworICAgIF9oaWRsX2NiKHN0YXR1cywgdmFsdWUuZ2V0KCkgPyAqdmFsdWUgOiBrRW1wdHlWYWx1ZSk7CisKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxTdGF0dXNDb2RlPiBWZWhpY2xlSGFsTWFuYWdlcjo6c2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUgJnZhbHVlKSB7CisgICAgYXV0byBwcm9wID0gdmFsdWUucHJvcDsKKyAgICBjb25zdCBhdXRvKiBjb25maWcgPSBnZXRQcm9wQ29uZmlnT3JOdWxsKHByb3ApOworICAgIGlmIChjb25maWcgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHNldCB2YWx1ZTogY29uZmlnIG5vdCBmb3VuZCwgcHJvcGVydHk6IDB4JXgiLCBwcm9wKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIH0KKworICAgIGlmICghY2hlY2tXcml0ZVBlcm1pc3Npb24oKmNvbmZpZykpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OkFDQ0VTU19ERU5JRUQ7CisgICAgfQorCisgICAgaGFuZGxlUHJvcGVydHlTZXRFdmVudCh2YWx1ZSk7CisKKyAgICBhdXRvIHN0YXR1cyA9IG1IYWwtPnNldCh2YWx1ZSk7CisKKyAgICByZXR1cm4gUmV0dXJuPFN0YXR1c0NvZGU+KHN0YXR1cyk7Cit9CisKK1JldHVybjxTdGF0dXNDb2RlPiBWZWhpY2xlSGFsTWFuYWdlcjo6c3Vic2NyaWJlKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+ICZjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+ICZvcHRpb25zKSB7CisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gdmVyaWZpZWRPcHRpb25zKG9wdGlvbnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVyaWZpZWRPcHRpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMmIG9wcyA9IHZlcmlmaWVkT3B0aW9uc1tpXTsKKyAgICAgICAgYXV0byBwcm9wID0gb3BzLnByb3BJZDsKKworICAgICAgICBjb25zdCBhdXRvKiBjb25maWcgPSBnZXRQcm9wQ29uZmlnT3JOdWxsKHByb3ApOworICAgICAgICBpZiAoY29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlOiBjb25maWcgbm90IGZvdW5kLCBwcm9wZXJ0eTogMHgleCIsCisgICAgICAgICAgICAgICAgICBwcm9wKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHMuZmxhZ3MgPT0gU3Vic2NyaWJlRmxhZ3M6OlVOREVGSU5FRCkgeworICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzdWJzY3JpYmU6IHVuZGVmaW5lZCBmbGFnIGluIG9wdGlvbnMgcHJvdmlkZWQiKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNTdWJzY3JpYmFibGUoKmNvbmZpZywgb3BzLmZsYWdzKSkgeworICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzdWJzY3JpYmU6IHByb3BlcnR5IDB4JXggaXMgbm90IHN1YnNjcmliYWJsZSIsCisgICAgICAgICAgICAgICAgICBwcm9wKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgfQorCisgICAgICAgIGludDMyX3QgYXJlYXMgPSBpc0dsb2JhbFByb3AocHJvcCkgPyAwIDogb3BzLnZlaGljbGVBcmVhczsKKyAgICAgICAgaWYgKGFyZWFzICE9IDAgJiYgKChhcmVhcyAmIGNvbmZpZy0+c3VwcG9ydGVkQXJlYXMpICE9IGFyZWFzKSkgeworICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzdWJzY3JpYmUgcHJvcGVydHkgMHgleC4gUmVxdWVzdGVkIGFyZWFzIDB4JXggYXJlICIKKyAgICAgICAgICAgICAgICAgICJvdXQgb2Ygc3VwcG9ydGVkIHJhbmdlIG9mIDB4JXgiLCBwcm9wLCBvcHMudmVoaWNsZUFyZWFzLAorICAgICAgICAgICAgICAgICAgY29uZmlnLT5zdXBwb3J0ZWRBcmVhcyk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBvcHMudmVoaWNsZUFyZWFzID0gYXJlYXM7CisgICAgICAgIG9wcy5zYW1wbGVSYXRlID0gY2hlY2tTYW1wbGVSYXRlKCpjb25maWcsIG9wcy5zYW1wbGVSYXRlKTsKKyAgICB9CisKKyAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4gdXBkYXRlZE9wdGlvbnM7CisgICAgYXV0byByZXMgPSBtU3Vic2NyaXB0aW9uTWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihnZXRDbGllbnRJZChjYWxsYmFjayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgdmVyaWZpZWRPcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVwZGF0ZWRPcHRpb25zKTsKKyAgICBpZiAoU3RhdHVzQ29kZTo6T0sgIT0gcmVzKSB7CisgICAgICAgIEFMT0dXKCIlcyBmYWlsZWQgdG8gc3Vic2NyaWJlLCBlcnJvciBjb2RlOiAlZCIsIF9fZnVuY19fLCByZXMpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIGZvciAoYXV0byBvcHQgOiB1cGRhdGVkT3B0aW9ucykgeworICAgICAgICBtSGFsLT5zdWJzY3JpYmUob3B0LnByb3BJZCwgb3B0LnZlaGljbGVBcmVhcywgb3B0LnNhbXBsZVJhdGUpOworICAgIH0KKworICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKworUmV0dXJuPFN0YXR1c0NvZGU+IFZlaGljbGVIYWxNYW5hZ2VyOjp1bnN1YnNjcmliZShjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkKSB7CisgICAgbVN1YnNjcmlwdGlvbk1hbmFnZXIudW5zdWJzY3JpYmUoZ2V0Q2xpZW50SWQoY2FsbGJhY2spLCBwcm9wSWQpOworICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKworUmV0dXJuPHZvaWQ+IFZlaGljbGVIYWxNYW5hZ2VyOjpkZWJ1Z0R1bXAoSVZlaGljbGU6OmRlYnVnRHVtcF9jYiBfaGlkbF9jYikgeworICAgIF9oaWRsX2NiKCIiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjppbml0KCkgeworICAgIEFMT0dJKCJWZWhpY2xlSGFsTWFuYWdlcjo6aW5pdCIpOworCisgICAgbUhpZGxWZWNPZlZlaGljbGVQcm9wVmFsdWVQb29sLnJlc2l6ZShrTWF4SGlkbFZlY09mVmVoaWNsUHJvcFZhbHVlUG9vbFNpemUpOworCisKKyAgICBtQmF0Y2hpbmdDb25zdW1lci5ydW4oJm1FdmVudFF1ZXVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrSGFsRXZlbnRCYXRjaGluZ1RpbWVXaW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6YmluZCgmVmVoaWNsZUhhbE1hbmFnZXI6Om9uQmF0Y2hIYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIF8xKSk7CisKKyAgICBtSGFsLT5pbml0KCZtVmFsdWVPYmplY3RQb29sLAorICAgICAgICAgICAgICAgc3RkOjpiaW5kKCZWZWhpY2xlSGFsTWFuYWdlcjo6b25IYWxFdmVudCwgdGhpcywgXzEpLAorICAgICAgICAgICAgICAgc3RkOjpiaW5kKCZWZWhpY2xlSGFsTWFuYWdlcjo6b25IYWxQcm9wZXJ0eVNldEVycm9yLCB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgIF8xLCBfMiwgXzMpKTsKKworICAgIC8vIEluaXRpYWxpemUgaW5kZXggd2l0aCB2ZWhpY2xlIGNvbmZpZ3VyYXRpb25zIHJlY2VpdmVkIGZyb20gVmVoaWNsZUhhbC4KKyAgICBhdXRvIHN1cHBvcnRlZFByb3BDb25maWdzID0gbUhhbC0+bGlzdFByb3BlcnRpZXMoKTsKKyAgICBtQ29uZmlnSW5kZXgucmVzZXQobmV3IFZlaGljbGVQcm9wQ29uZmlnSW5kZXgoc3VwcG9ydGVkUHJvcENvbmZpZ3MpKTsKKworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHN1cHBvcnRlZFByb3BlcnRpZXMoCisgICAgICAgIHN1cHBvcnRlZFByb3BDb25maWdzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjb25maWcgOiBzdXBwb3J0ZWRQcm9wQ29uZmlncykgeworICAgICAgICBzdXBwb3J0ZWRQcm9wZXJ0aWVzLnB1c2hfYmFjayhjb25maWcucHJvcCk7CisgICAgfQorfQorCitWZWhpY2xlSGFsTWFuYWdlcjo6flZlaGljbGVIYWxNYW5hZ2VyKCkgeworICAgIG1CYXRjaGluZ0NvbnN1bWVyLnJlcXVlc3RTdG9wKCk7CisgICAgbUV2ZW50UXVldWUuZGVhY3RpdmF0ZSgpOworICAgIC8vIFdlIGhhdmUgdG8gd2FpdCB1bnRpbCBjb25zdW1lciB0aHJlYWQgaXMgZnVsbHkgc3RvcHBlZCBiZWNhdXNlIGl0IG1heQorICAgIC8vIGJlIGluIGEgc3RhdGUgb2YgcnVubmluZyBjYWxsYmFjayAob25CYXRjaEhhbEV2ZW50KS4KKyAgICBtQmF0Y2hpbmdDb25zdW1lci53YWl0U3RvcHBlZCgpOworICAgIEFMT0dJKCJWZWhpY2xlSGFsTWFuYWdlcjo6ZHRvciIpOworfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjpvbkhhbEV2ZW50KFZlaGljbGVQcm9wVmFsdWVQdHIgdikgeworICAgIG1FdmVudFF1ZXVlLnB1c2goc3RkOjptb3ZlKHYpKTsKK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6b25IYWxQcm9wZXJ0eVNldEVycm9yKFN0YXR1c0NvZGUgZXJyb3JDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhSWQpIHsKKyAgICBjb25zdCBhdXRvJiBjbGllbnRzID0gbVN1YnNjcmlwdGlvbk1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICBwcm9wZXJ0eSwgMCwgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisKKyAgICBmb3IgKGF1dG8gY2xpZW50IDogY2xpZW50cykgeworICAgICAgICBjbGllbnQtPmdldENhbGxiYWNrKCktPm9uUHJvcGVydHlTZXRFcnJvcihlcnJvckNvZGUsIHByb3BlcnR5LCBhcmVhSWQpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6b25CYXRjaEhhbEV2ZW50KGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWVQdHI+JiB2YWx1ZXMpIHsKKyAgICBjb25zdCBhdXRvJiBjbGllbnRWYWx1ZXMgPSBtU3Vic2NyaXB0aW9uTWFuYWdlci5kaXN0cmlidXRlVmFsdWVzVG9DbGllbnRzKAorICAgICAgICAgICAgdmFsdWVzLCBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UKTsKKworICAgIGZvciAoY29uc3QgSGFsQ2xpZW50VmFsdWVzJiBjdiA6IGNsaWVudFZhbHVlcykgeworICAgICAgICBhdXRvIHZlY1NpemUgPSBjdi52YWx1ZXMuc2l6ZSgpOworICAgICAgICBoaWRsX3ZlYzxWZWhpY2xlUHJvcFZhbHVlPiB2ZWM7CisgICAgICAgIGlmICh2ZWNTaXplIDwga01heEhpZGxWZWNPZlZlaGljbFByb3BWYWx1ZVBvb2xTaXplKSB7CisgICAgICAgICAgICB2ZWMuc2V0VG9FeHRlcm5hbCgmbUhpZGxWZWNPZlZlaGljbGVQcm9wVmFsdWVQb29sWzBdLCB2ZWNTaXplKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZlYy5yZXNpemUodmVjU2l6ZSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGZvciAoVmVoaWNsZVByb3BWYWx1ZSogcFZhbHVlIDogY3YudmFsdWVzKSB7CisgICAgICAgICAgICBzaGFsbG93Q29weSgmKHZlYylbaSsrXSwgKnBWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgYXV0byBzdGF0dXMgPSBjdi5jbGllbnQtPmdldENhbGxiYWNrKCktPm9uUHJvcGVydHlFdmVudCh2ZWMpOworICAgICAgICBpZiAoIXN0YXR1cy5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gbm90aWZ5IGNsaWVudCAlcywgZXJyOiAlcyIsCisgICAgICAgICAgICAgICAgICB0b1N0cmluZyhjdi5jbGllbnQtPmdldENhbGxiYWNrKCkpLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICBzdGF0dXMuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworYm9vbCBWZWhpY2xlSGFsTWFuYWdlcjo6aXNTYW1wbGVSYXRlRml4ZWQoVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIChtb2RlICYgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fU0VUKQorICAgICAgICAgICB8fCAobW9kZSAmIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSk7Cit9CisKK2Zsb2F0IFZlaGljbGVIYWxNYW5hZ2VyOjpjaGVja1NhbXBsZVJhdGUoY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxlUmF0ZSkgeworICAgIGlmIChpc1NhbXBsZVJhdGVGaXhlZChjb25maWcuY2hhbmdlTW9kZSkpIHsKKyAgICAgICAgaWYgKHN0ZDo6YWJzKHNhbXBsZVJhdGUpID4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKSkgeworICAgICAgICAgICAgQUxPR1coIlNhbXBsZSByYXRlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIGZvciBvbiBjaGFuZ2UgdHlwZS4gIgorICAgICAgICAgICAgICAgICAgICAgICJJZ25vcmluZyBpdC4iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMC4wOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVSYXRlID4gY29uZmlnLm1heFNhbXBsZVJhdGUpIHsKKyAgICAgICAgICAgIEFMT0dXKCJTYW1wbGUgcmF0ZSAlZiBpcyBoaWdoZXIgdGhhbiBtYXggJWYuIFNldHRpbmcgc2FtcGxpbmcgcmF0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgInRvIG1heC4iLCBzYW1wbGVSYXRlLCBjb25maWcubWF4U2FtcGxlUmF0ZSk7CisgICAgICAgICAgICByZXR1cm4gY29uZmlnLm1heFNhbXBsZVJhdGU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNhbXBsZVJhdGUgPCBjb25maWcubWluU2FtcGxlUmF0ZSkgeworICAgICAgICAgICAgQUxPR1coIlNhbXBsZSByYXRlICVmIGlzIGxvd2VyIHRoYW4gbWluICVmLiBTZXR0aW5nIHNhbXBsaW5nIHJhdGUgIgorICAgICAgICAgICAgICAgICAgICAgICJ0byBtaW4uIiwgc2FtcGxlUmF0ZSwgY29uZmlnLm1pblNhbXBsZVJhdGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5taW5TYW1wbGVSYXRlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzYW1wbGVSYXRlOyAgLy8gUHJvdmlkZWQgc2FtcGxlIHJhdGUgd2FzIGdvb2QsIG5vIGNoYW5nZXMuCit9CisKK2Jvb2wgVmVoaWNsZUhhbE1hbmFnZXI6OmlzU3Vic2NyaWJhYmxlKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgeworICAgIGJvb2wgaXNSZWFkYWJsZSA9IGNvbmZpZy5hY2Nlc3MgJiBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQ7CisKKyAgICBpZiAoIWlzUmVhZGFibGUgJiYgKFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQgJiBmbGFncykpIHsKKyAgICAgICAgQUxPR1coIkNhbm5vdCBzdWJzY3JpYmUsIHByb3BlcnR5IDB4JXggaXMgbm90IHJlYWRhYmxlIiwgY29uZmlnLnByb3ApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChjb25maWcuY2hhbmdlTW9kZSA9PSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMpIHsKKyAgICAgICAgQUxPR1coIkNhbm5vdCBzdWJzY3JpYmUsIHByb3BlcnR5IDB4JXggaXMgc3RhdGljIiwgY29uZmlnLnByb3ApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy9UT0RPOiBleHRlbmQgdG8gc3VwcG9ydCBldmVudCBub3RpZmljYXRpb24gZm9yIHNldCBmcm9tIGFuZHJvaWQKKyAgICBpZiAoY29uZmlnLmNoYW5nZU1vZGUgPT0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6UE9MTCkgeworICAgICAgICBBTE9HVygiQ2Fubm90IHN1YnNjcmliZSwgcHJvcGVydHkgMHgleCBpcyBwb2xsIG9ubHkiLCBjb25maWcucHJvcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgVmVoaWNsZUhhbE1hbmFnZXI6OmNoZWNrV3JpdGVQZXJtaXNzaW9uKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcpIGNvbnN0IHsKKyAgICBpZiAoIShjb25maWcuYWNjZXNzICYgVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpXUklURSkpIHsKKyAgICAgICAgQUxPR1coIlByb3BlcnR5IDAleCBoYXMgbm8gd3JpdGUgYWNjZXNzIiwgY29uZmlnLnByb3ApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitib29sIFZlaGljbGVIYWxNYW5hZ2VyOjpjaGVja1JlYWRQZXJtaXNzaW9uKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcpIGNvbnN0IHsKKyAgICBpZiAoIShjb25maWcuYWNjZXNzICYgVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEKSkgeworICAgICAgICBBTE9HVygiUHJvcGVydHkgMCV4IGhhcyBubyByZWFkIGFjY2VzcyIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6aGFuZGxlUHJvcGVydHlTZXRFdmVudChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgeworICAgIGF1dG8gY2xpZW50cyA9IG1TdWJzY3JpcHRpb25NYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgdmFsdWUucHJvcCwgdmFsdWUuYXJlYUlkLCBTdWJzY3JpYmVGbGFnczo6U0VUX0NBTEwpOworICAgIGZvciAoYXV0byBjbGllbnQgOiBjbGllbnRzKSB7CisgICAgICAgIGNsaWVudC0+Z2V0Q2FsbGJhY2soKS0+b25Qcm9wZXJ0eVNldCh2YWx1ZSk7CisgICAgfQorfQorCitjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogVmVoaWNsZUhhbE1hbmFnZXI6OmdldFByb3BDb25maWdPck51bGwoCisgICAgICAgIGludDMyX3QgcHJvcCkgY29uc3QgeworICAgIHJldHVybiBtQ29uZmlnSW5kZXgtPmhhc0NvbmZpZyhwcm9wKQorICAgICAgICAgICA/ICZtQ29uZmlnSW5kZXgtPmdldENvbmZpZyhwcm9wKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6Om9uQWxsQ2xpZW50c1Vuc3Vic2NyaWJlZChpbnQzMl90IHByb3BlcnR5SWQpIHsKKyAgICBtSGFsLT51bnN1YnNjcmliZShwcm9wZXJ0eUlkKTsKK30KKworQ2xpZW50SWQgVmVoaWNsZUhhbE1hbmFnZXI6OmdldENsaWVudElkKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIC8vVE9ETyhiLzMyMTcyOTA2KTogcmV3b3JrIHRoaXMgdG8gZ2V0IHNvbWUga2luZCBvZiB1bmlxdWUgaWQgZm9yIGNhbGxiYWNrIGludGVyZmFjZSB3aGVuIHRoaXMKKyAgICAvLyBmZWF0dXJlIGlzIHJlYWR5IGluIEhJREwuCisKKyAgICBpZiAoY2FsbGJhY2stPmlzUmVtb3RlKCkpIHsKKyAgICAgICAgQnBId1ZlaGljbGVDYWxsYmFjayogaHdDYWxsYmFjayA9IHN0YXRpY19jYXN0PEJwSHdWZWhpY2xlQ2FsbGJhY2sqPihjYWxsYmFjay5nZXQoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDbGllbnRJZD4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaHdDYWxsYmFjay0+b25Bc0JpbmRlcigpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENsaWVudElkPihyZWludGVycHJldF9jYXN0PGludHB0cl90PihjYWxsYmFjay5nZXQoKSkpOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZU9iamVjdFBvb2wuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZU9iamVjdFBvb2wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjMTI0NWEKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlT2JqZWN0UG9vbC5jcHAKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjAtaW1wbCIKKworI2luY2x1ZGUgIlZlaGljbGVPYmplY3RQb29sLmgiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJWZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW4oCisgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY1NpemUpIHsKKyAgICByZXR1cm4gaXNEaXNwb3NhYmxlKHR5cGUsIHZlY1NpemUpCisgICAgICAgICAgID8gb2J0YWluRGlzcG9zYWJsZSh0eXBlLCB2ZWNTaXplKQorICAgICAgICAgICA6IG9idGFpblJlY3lsYWJsZSh0eXBlLCB2ZWNTaXplKTsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW4oCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHNyYykgeworICAgIGlmIChzcmMucHJvcCA9PSB0b0ludChWZWhpY2xlUHJvcGVydHk6OklOVkFMSUQpKSB7CisgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gb2J0YWluIGFuIG9iamVjdCBmcm9tIHBvb2wgZm9yIHVua25vd24gcHJvcGVydHkiKTsKKyAgICAgICAgcmV0dXJuIFJlY3ljbGFibGVUeXBlKCk7CisgICAgfQorICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSA9IGdldFByb3BUeXBlKHNyYy5wcm9wKTsKKyAgICBzaXplX3QgdmVjU2l6ZSA9IGdldFZlaGljbGVSYXdWYWx1ZVZlY3RvclNpemUoc3JjLnZhbHVlLCB0eXBlKTs7CisgICAgYXV0byBkZXN0ID0gb2J0YWluKHR5cGUsIHZlY1NpemUpOworCisgICAgZGVzdC0+cHJvcCA9IHNyYy5wcm9wOworICAgIGRlc3QtPmFyZWFJZCA9IHNyYy5hcmVhSWQ7CisgICAgZGVzdC0+dGltZXN0YW1wID0gc3JjLnRpbWVzdGFtcDsKKyAgICBjb3B5VmVoaWNsZVJhd1ZhbHVlKCZkZXN0LT52YWx1ZSwgc3JjLnZhbHVlKTsKKworICAgIHJldHVybiBkZXN0OworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkludDMyKAorICAgICAgICBpbnQzMl90IHZhbHVlKSB7CisgICAgYXV0byB2YWwgPSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpOworICAgIHZhbC0+dmFsdWUuaW50MzJWYWx1ZXNbMF0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdmFsOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkludDY0KAorICAgICAgICBpbnQ2NF90IHZhbHVlKSB7CisgICAgYXV0byB2YWwgPSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQpOworICAgIHZhbC0+dmFsdWUuaW50NjRWYWx1ZXNbMF0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdmFsOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkZsb2F0KAorICAgICAgICBmbG9hdCB2YWx1ZSkgIHsKKyAgICBhdXRvIHZhbCA9IG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVCk7CisgICAgdmFsLT52YWx1ZS5mbG9hdFZhbHVlc1swXSA9IHZhbHVlOworICAgIHJldHVybiB2YWw7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluU3RyaW5nKAorICAgICAgICBjb25zdCBjaGFyKiBjc3RyKSB7CisgICAgYXV0byB2YWwgPSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HKTsKKyAgICB2YWwtPnZhbHVlLnN0cmluZ1ZhbHVlID0gY3N0cjsKKyAgICByZXR1cm4gdmFsOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkNvbXBsZXgoKSB7CisgICAgcmV0dXJuIG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYKTsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5SZWN5bGFibGUoCisgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY1NpemUpIHsKKyAgICAvLyBWZWhpY2xlUHJvcGVydHlUeXBlIGlzIG5vdCBvdmVybGFwcGluZyB3aXRoIHZlY3RvclNpemUuCisgICAgaW50MzJfdCBrZXkgPSBzdGF0aWNfY2FzdDxpbnQzMl90Pih0eXBlKQorICAgICAgICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDxpbnQzMl90Pih2ZWNTaXplKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICBhdXRvIGl0ID0gbVZhbHVlVHlwZVBvb2xzLmZpbmQoa2V5KTsKKworICAgIGlmIChpdCA9PSBtVmFsdWVUeXBlUG9vbHMuZW5kKCkpIHsKKyAgICAgICAgYXV0byBuZXdQb29sKHN0ZDo6bWFrZV91bmlxdWU8SW50ZXJuYWxQb29sPih0eXBlLCB2ZWNTaXplKSk7CisgICAgICAgIGl0ID0gbVZhbHVlVHlwZVBvb2xzLmVtcGxhY2Uoa2V5LCBzdGQ6Om1vdmUobmV3UG9vbCkpLmZpcnN0OworICAgIH0KKyAgICByZXR1cm4gaXQtPnNlY29uZC0+b2J0YWluKCk7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluQm9vbGVhbigKKyAgICAgICAgYm9vbCB2YWx1ZSkgIHsKKyAgICByZXR1cm4gb2J0YWluSW50MzIodmFsdWUpOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkRpc3Bvc2FibGUoCisgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdmFsdWVUeXBlLCBzaXplX3QgdmVjdG9yU2l6ZSkgY29uc3QgeworICAgIHJldHVybiBSZWN5Y2xhYmxlVHlwZSB7CisgICAgICAgIGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUodmFsdWVUeXBlLCB2ZWN0b3JTaXplKS5yZWxlYXNlKCksCisgICAgICAgIG1EaXNwb3NhYmxlRGVsZXRlcgorICAgIH07Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gb2J0YWluKHR5cGUsIDEpOworfQorCisKK3ZvaWQgVmVoaWNsZVByb3BWYWx1ZVBvb2w6OkludGVybmFsUG9vbDo6cmVjeWNsZShWZWhpY2xlUHJvcFZhbHVlKiBvKSB7CisgICAgaWYgKG8gPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQXR0ZW1wdCB0byByZWN5Y2xlIG51bGxwdHIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghY2hlY2soJm8tPnZhbHVlKSkgeworICAgICAgICBBTE9HRSgiRGlzY2FyZGluZyB2YWx1ZSBmb3IgcHJvcCAweCV4IGJlY2F1c2UgaXQgY29udGFpbnMgIgorICAgICAgICAgICAgICAgICAgImRhdGEgdGhhdCBpcyBub3QgY29uc2lzdGVudCB3aXRoIHRoaXMgcG9vbC4gIgorICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIHR5cGU6ICVkLCB2ZWN0b3Igc2l6ZTogJXp1IiwKKyAgICAgICAgICAgICAgby0+cHJvcCwgbVByb3BUeXBlLCBtVmVjdG9yU2l6ZSk7CisgICAgICAgIGRlbGV0ZSBvOworICAgIH0gZWxzZSB7CisgICAgICAgIE9iamVjdFBvb2w8VmVoaWNsZVByb3BWYWx1ZT46OnJlY3ljbGUobyk7CisgICAgfQorfQorCitib29sIFZlaGljbGVQcm9wVmFsdWVQb29sOjpJbnRlcm5hbFBvb2w6OmNoZWNrKFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlKiB2KSB7CisgICAgcmV0dXJuIGNoZWNrKCZ2LT5pbnQzMlZhbHVlcywKKyAgICAgICAgICAgICAgICAgKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyID09IG1Qcm9wVHlwZQorICAgICAgICAgICAgICAgICAgfHwgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzJfVkVDID09IG1Qcm9wVHlwZQorICAgICAgICAgICAgICAgICAgfHwgVmVoaWNsZVByb3BlcnR5VHlwZTo6Qk9PTEVBTiA9PSBtUHJvcFR5cGUpKQorICAgICAgICAgICAmJiBjaGVjaygmdi0+ZmxvYXRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgIChWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVCA9PSBtUHJvcFR5cGUKKyAgICAgICAgICAgICAgICAgICAgIHx8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQyA9PSBtUHJvcFR5cGUpKQorICAgICAgICAgICAmJiBjaGVjaygmdi0+aW50NjRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0ID09IG1Qcm9wVHlwZSkKKyAgICAgICAgICAgJiYgY2hlY2soJnYtPmJ5dGVzLAorICAgICAgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlOjpCWVRFUyA9PSBtUHJvcFR5cGUpCisgICAgICAgICAgICYmIHYtPnN0cmluZ1ZhbHVlLnNpemUoKSA9PSAwOworfQorCitWZWhpY2xlUHJvcFZhbHVlKiBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6SW50ZXJuYWxQb29sOjpjcmVhdGVPYmplY3QoKSB7CisgICAgcmV0dXJuIGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUobVByb3BUeXBlLCBtVmVjdG9yU2l6ZSkucmVsZWFzZSgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlUHJvcGVydHlTdG9yZS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlUHJvcGVydHlTdG9yZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMzZWJmYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmNwcApAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIlZlaGljbGVQcm9wZXJ0eVN0b3JlIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGNvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaD4KKyNpbmNsdWRlICJWZWhpY2xlUHJvcGVydHlTdG9yZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCitib29sIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZDo6b3BlcmF0b3I9PShjb25zdCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQmIG90aGVyKSBjb25zdCB7CisgICAgcmV0dXJuIHByb3AgPT0gb3RoZXIucHJvcCAmJiBhcmVhID09IG90aGVyLmFyZWEgJiYgdG9rZW4gPT0gb3RoZXIudG9rZW47Cit9CisKK2Jvb2wgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkOjpvcGVyYXRvcjwoY29uc3QgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkJiBvdGhlcikgY29uc3QgIHsKKyAgICByZXR1cm4gcHJvcCA8IG90aGVyLnByb3AKKyAgICAgICAgICAgfHwgKHByb3AgPT0gb3RoZXIucHJvcCAmJiBhcmVhIDwgb3RoZXIuYXJlYSkKKyAgICAgICAgICAgfHwgKHByb3AgPT0gb3RoZXIucHJvcCAmJiBhcmVhID09IG90aGVyLmFyZWEgJiYgdG9rZW4gPCBvdGhlci50b2tlbik7Cit9CisKK3ZvaWQgVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlZ2lzdGVyUHJvcGVydHkoY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlRva2VuRnVuY3Rpb24gdG9rZW5GdW5jKSB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgbUNvbmZpZ3MuaW5zZXJ0KHsgY29uZmlnLnByb3AsIFJlY29yZENvbmZpZyB7IGNvbmZpZywgdG9rZW5GdW5jIH0gfSk7Cit9CisKK2Jvb2wgVmVoaWNsZVByb3BlcnR5U3RvcmU6OndyaXRlVmFsdWUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgaWYgKCFtQ29uZmlncy5jb3VudChwcm9wVmFsdWUucHJvcCkpIHJldHVybiBmYWxzZTsKKworICAgIFJlY29yZElkIHJlY0lkID0gZ2V0UmVjb3JkSWRMb2NrZWQocHJvcFZhbHVlKTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlKiB2YWx1ZVRvVXBkYXRlID0gY29uc3RfY2FzdDxWZWhpY2xlUHJvcFZhbHVlKj4oZ2V0VmFsdWVPck51bGxMb2NrZWQocmVjSWQpKTsKKyAgICBpZiAodmFsdWVUb1VwZGF0ZSA9PSBudWxscHRyKSB7CisgICAgICAgIG1Qcm9wZXJ0eVZhbHVlcy5pbnNlcnQoeyByZWNJZCwgcHJvcFZhbHVlIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhbHVlVG9VcGRhdGUtPnRpbWVzdGFtcCA9IHByb3BWYWx1ZS50aW1lc3RhbXA7CisgICAgICAgIHZhbHVlVG9VcGRhdGUtPnZhbHVlID0gcHJvcFZhbHVlLnZhbHVlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVtb3ZlVmFsdWUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgUmVjb3JkSWQgcmVjSWQgPSBnZXRSZWNvcmRJZExvY2tlZChwcm9wVmFsdWUpOworICAgIGF1dG8gaXQgPSBtUHJvcGVydHlWYWx1ZXMuZmluZChyZWNJZCk7CisgICAgaWYgKGl0ICE9IG1Qcm9wZXJ0eVZhbHVlcy5lbmQoKSkgeworICAgICAgICBtUHJvcGVydHlWYWx1ZXMuZXJhc2UoaXQpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVtb3ZlVmFsdWVzRm9yUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHJhbmdlID0gZmluZFJhbmdlTG9ja2VkKHByb3BJZCk7CisgICAgbVByb3BlcnR5VmFsdWVzLmVyYXNlKHJhbmdlLmZpcnN0LCByYW5nZS5zZWNvbmQpOworfQorCitzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVhZEFsbFZhbHVlcygpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiBhbGxWYWx1ZXM7CisgICAgYWxsVmFsdWVzLnJlc2VydmUobVByb3BlcnR5VmFsdWVzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiYgaXQgOiBtUHJvcGVydHlWYWx1ZXMpIHsKKyAgICAgICAgYWxsVmFsdWVzLnB1c2hfYmFjayhpdC5zZWNvbmQpOworICAgIH0KKyAgICByZXR1cm4gYWxsVmFsdWVzOworfQorCitzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVhZFZhbHVlc0ZvclByb3BlcnR5KGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gdmFsdWVzOworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGF1dG8gcmFuZ2UgPSBmaW5kUmFuZ2VMb2NrZWQocHJvcElkKTsKKyAgICBmb3IgKGF1dG8gaXQgPSByYW5nZS5maXJzdDsgaXQgIT0gcmFuZ2Uuc2Vjb25kOyArK2l0KSB7CisgICAgICAgIHZhbHVlcy5wdXNoX2JhY2soaXQtPnNlY29uZCk7CisgICAgfQorCisgICAgcmV0dXJuIHZhbHVlczsKK30KKworc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZWFkVmFsdWVPck51bGwoCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3QpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBSZWNvcmRJZCByZWNJZCA9IGdldFJlY29yZElkTG9ja2VkKHJlcXVlc3QpOworICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIGludGVybmFsVmFsdWUgPSBnZXRWYWx1ZU9yTnVsbExvY2tlZChyZWNJZCk7CisgICAgcmV0dXJuIGludGVybmFsVmFsdWUgPyBzdGQ6Om1ha2VfdW5pcXVlPFZlaGljbGVQcm9wVmFsdWU+KCppbnRlcm5hbFZhbHVlKSA6IG51bGxwdHI7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVhZFZhbHVlT3JOdWxsKAorICAgICAgICBpbnQzMl90IHByb3AsIGludDMyX3QgYXJlYSwgaW50NjRfdCB0b2tlbikgY29uc3QgeworICAgIFJlY29yZElkIHJlY0lkID0ge3Byb3AsIGlzR2xvYmFsUHJvcChwcm9wKSA/IDAgOiBhcmVhLCB0b2tlbiB9OworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIGludGVybmFsVmFsdWUgPSBnZXRWYWx1ZU9yTnVsbExvY2tlZChyZWNJZCk7CisgICAgcmV0dXJuIGludGVybmFsVmFsdWUgPyBzdGQ6Om1ha2VfdW5pcXVlPFZlaGljbGVQcm9wVmFsdWU+KCppbnRlcm5hbFZhbHVlKSA6IG51bGxwdHI7Cit9CisKKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpnZXRBbGxDb25maWdzKCkgY29uc3QgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBjb25maWdzOworICAgIGNvbmZpZ3MucmVzZXJ2ZShtQ29uZmlncy5zaXplKCkpOworICAgIGZvciAoYXV0byYmIHJlY29yZENvbmZpZ0l0OiBtQ29uZmlncykgeworICAgICAgICBjb25maWdzLnB1c2hfYmFjayhyZWNvcmRDb25maWdJdC5zZWNvbmQucHJvcENvbmZpZyk7CisgICAgfQorICAgIHJldHVybiBjb25maWdzOworfQorCitjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogVmVoaWNsZVByb3BlcnR5U3RvcmU6OmdldENvbmZpZ09yTnVsbChpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGF1dG8gcmVjb3JkQ29uZmlnSXQgPSBtQ29uZmlncy5maW5kKHByb3BJZCk7CisgICAgcmV0dXJuIHJlY29yZENvbmZpZ0l0ICE9IG1Db25maWdzLmVuZCgpID8gJnJlY29yZENvbmZpZ0l0LT5zZWNvbmQucHJvcENvbmZpZyA6IG51bGxwdHI7Cit9CisKK2NvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0Q29uZmlnT3JEaWUoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBhdXRvIGNmZyA9IGdldENvbmZpZ09yTnVsbChwcm9wSWQpOworICAgIGlmICghY2ZnKSB7CisgICAgICAgIEFMT0dXKCIlczogY29uZmlnIG5vdCBmb3VuZCBmb3IgcHJvcGVydHk6IDB4JXgiLCBfX2Z1bmNfXywgcHJvcElkKTsKKyAgICAgICAgYWJvcnQoKTsKKyAgICB9CisgICAgcmV0dXJuIGNmZzsKK30KKworVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpnZXRSZWNvcmRJZExvY2tlZCgKKyAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWVQcm90b3R5cGUpIGNvbnN0IHsKKyAgICBSZWNvcmRJZCByZWNJZCA9IHsKKyAgICAgICAgLnByb3AgPSB2YWx1ZVByb3RvdHlwZS5wcm9wLAorICAgICAgICAuYXJlYSA9IGlzR2xvYmFsUHJvcCh2YWx1ZVByb3RvdHlwZS5wcm9wKSA/IDAgOiB2YWx1ZVByb3RvdHlwZS5hcmVhSWQsCisgICAgICAgIC50b2tlbiA9IDAKKyAgICB9OworCisgICAgYXV0byBpdCA9IG1Db25maWdzLmZpbmQocmVjSWQucHJvcCk7CisgICAgaWYgKGl0ID09IG1Db25maWdzLmVuZCgpKSByZXR1cm4ge307CisKKyAgICBpZiAoaXQtPnNlY29uZC50b2tlbkZ1bmN0aW9uICE9IG51bGxwdHIpIHsKKyAgICAgICAgcmVjSWQudG9rZW4gPSBpdC0+c2Vjb25kLnRva2VuRnVuY3Rpb24odmFsdWVQcm90b3R5cGUpOworICAgIH0KKyAgICByZXR1cm4gcmVjSWQ7Cit9CisKK2NvbnN0IFZlaGljbGVQcm9wVmFsdWUqIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpnZXRWYWx1ZU9yTnVsbExvY2tlZCgKKyAgICAgICAgY29uc3QgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkJiByZWNJZCkgY29uc3QgIHsKKyAgICBhdXRvIGl0ID0gbVByb3BlcnR5VmFsdWVzLmZpbmQocmVjSWQpOworICAgIHJldHVybiBpdCA9PSBtUHJvcGVydHlWYWx1ZXMuZW5kKCkgPyBudWxscHRyIDogJml0LT5zZWNvbmQ7Cit9CisKK1ZlaGljbGVQcm9wZXJ0eVN0b3JlOjpQcm9wZXJ0eU1hcFJhbmdlIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpmaW5kUmFuZ2VMb2NrZWQoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICAvLyBCYXNlZCBvbiB0aGUgZmFjdCB0aGF0IG1Qcm9wZXJ0eVZhbHVlcyBpcyBhIHNvcnRlZCBtYXAgYnkgUmVjb3JkSWQuCisgICAgYXV0byBiZWdpbkl0ID0gbVByb3BlcnR5VmFsdWVzLmxvd2VyX2JvdW5kKCBSZWNvcmRJZCB7IHByb3BJZCwgSU5UMzJfTUlOLCAwIH0pOworICAgIGF1dG8gZW5kSXQgPSBtUHJvcGVydHlWYWx1ZXMubG93ZXJfYm91bmQoIFJlY29yZElkIHsgcHJvcElkICsgMSwgSU5UMzJfTUlOLCAwIH0pOworCisgICAgcmV0dXJuICBQcm9wZXJ0eU1hcFJhbmdlIHsgYmVnaW5JdCwgZW5kSXQgfTsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVV0aWxzLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzExY2RlZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjAtaW1wbCIKKworI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvL25hbWVzcGFjZSB1dGlscyB7CisKK3N0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKAorICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY1NpemUpIHsKKyAgICBhdXRvIHZhbCA9IHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPihuZXcgVmVoaWNsZVByb3BWYWx1ZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzI6ICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzJfVkVDOiAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6Qk9PTEVBTjoKKyAgICAgICAgICAgIHZhbC0+dmFsdWUuaW50MzJWYWx1ZXMucmVzaXplKHZlY1NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQ6ICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVRfVkVDOgorICAgICAgICAgICAgdmFsLT52YWx1ZS5mbG9hdFZhbHVlcy5yZXNpemUodmVjU2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQ2NDoKKyAgICAgICAgICAgIHZhbC0+dmFsdWUuaW50NjRWYWx1ZXMucmVzaXplKHZlY1NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6QllURVM6CisgICAgICAgICAgICB2YWwtPnZhbHVlLmJ5dGVzLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYOgorICAgICAgICAgICAgYnJlYWs7IC8vIFZhbGlkLCBidXQgbm90aGluZyB0byBkby4KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCJjcmVhdGVWZWhpY2xlUHJvcFZhbHVlOiB1bmtub3duIHR5cGU6ICVkIiwgdHlwZSk7CisgICAgICAgICAgICB2YWwucmVzZXQobnVsbHB0cik7CisgICAgfQorICAgIHJldHVybiB2YWw7Cit9CisKK3NpemVfdCBnZXRWZWhpY2xlUmF3VmFsdWVWZWN0b3JTaXplKAorICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlJiB2YWx1ZSwgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlKSB7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzI6ICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzJfVkVDOiAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6Qk9PTEVBTjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pbnQzMlZhbHVlcy5zaXplKCk7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQ6ICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVRfVkVDOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZsb2F0VmFsdWVzLnNpemUoKTsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQ2NDoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pbnQ2NFZhbHVlcy5zaXplKCk7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6QllURVM6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUuYnl0ZXMuc2l6ZSgpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQgY29weUhpZGxWZWMoaGlkbF92ZWMgPFQ+KiBkZXN0LCBjb25zdCBoaWRsX3ZlYyA8VD4mIHNyYykgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RkOjptaW4oZGVzdC0+c2l6ZSgpLCBzcmMuc2l6ZSgpKTsgaSsrKSB7CisgICAgICAgICgqZGVzdClbaV0gPSBzcmNbaV07CisgICAgfQorfQorCit2b2lkIGNvcHlWZWhpY2xlUmF3VmFsdWUoVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUqIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUmIHNyYykgeworICAgIGRlc3QtPmludDMyVmFsdWVzID0gc3JjLmludDMyVmFsdWVzOworICAgIGRlc3QtPmZsb2F0VmFsdWVzID0gc3JjLmZsb2F0VmFsdWVzOworICAgIGRlc3QtPmludDY0VmFsdWVzID0gc3JjLmludDY0VmFsdWVzOworICAgIGRlc3QtPmJ5dGVzID0gc3JjLmJ5dGVzOworICAgIGRlc3QtPnN0cmluZ1ZhbHVlID0gc3JjLnN0cmluZ1ZhbHVlOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBzaGFsbG93Q29weUhpZGxWZWMoaGlkbF92ZWMgPFQ+KiBkZXN0LCBjb25zdCBoaWRsX3ZlYyA8VD4mIHNyYykgeworICAgIGlmIChzcmMuc2l6ZSgpID4gMCkgeworICAgICAgICBkZXN0LT5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8VCo+KCZzcmNbMF0pLCBzcmMuc2l6ZSgpKTsKKyAgICB9IGVsc2UgaWYgKGRlc3QtPnNpemUoKSA+IDApIHsKKyAgICAgICAgZGVzdC0+cmVzaXplKDApOworICAgIH0KK30KKwordm9pZCBzaGFsbG93Q29weUhpZGxTdHIoaGlkbF9zdHJpbmcqIGRlc3QsIGNvbnN0IGhpZGxfc3RyaW5nJiBzcmMpIHsKKyAgICBpZiAoIXNyYy5lbXB0eSgpKSB7CisgICAgICAgIGRlc3QtPnNldFRvRXh0ZXJuYWwoc3JjLmNfc3RyKCksIHNyYy5zaXplKCkpOworICAgIH0gZWxzZSBpZiAoZGVzdC0+c2l6ZSgpID4gMCkgeworICAgICAgICBkZXN0LT5zZXRUb0V4dGVybmFsKDAsIDApOworICAgIH0KK30KKwordm9pZCBzaGFsbG93Q29weShWZWhpY2xlUHJvcFZhbHVlKiBkZXN0LCBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBzcmMpIHsKKyAgICBkZXN0LT5wcm9wID0gc3JjLnByb3A7CisgICAgZGVzdC0+YXJlYUlkID0gc3JjLmFyZWFJZDsKKyAgICBkZXN0LT50aW1lc3RhbXAgPSBzcmMudGltZXN0YW1wOworICAgIHNoYWxsb3dDb3B5SGlkbFZlYygmZGVzdC0+dmFsdWUuaW50MzJWYWx1ZXMsIHNyYy52YWx1ZS5pbnQzMlZhbHVlcyk7CisgICAgc2hhbGxvd0NvcHlIaWRsVmVjKCZkZXN0LT52YWx1ZS5pbnQ2NFZhbHVlcywgc3JjLnZhbHVlLmludDY0VmFsdWVzKTsKKyAgICBzaGFsbG93Q29weUhpZGxWZWMoJmRlc3QtPnZhbHVlLmZsb2F0VmFsdWVzLCBzcmMudmFsdWUuZmxvYXRWYWx1ZXMpOworICAgIHNoYWxsb3dDb3B5SGlkbFZlYygmZGVzdC0+dmFsdWUuYnl0ZXMsIHNyYy52YWx1ZS5ieXRlcyk7CisgICAgc2hhbGxvd0NvcHlIaWRsU3RyKCZkZXN0LT52YWx1ZS5zdHJpbmdWYWx1ZSwgc3JjLnZhbHVlLnN0cmluZ1ZhbHVlKTsKK30KKworCisvL30gIC8vIG5hbWVzcGFjZSB1dGlscworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvQ29tbUJhc2UuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Db21tQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4MzJhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvQ29tbUJhc2UuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfQ29tbUJhc2VfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0NvbW1CYXNlX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qKgorICogVGhpcyBpcyB0aGUgY29tbXVuaWNhdGlvbnMgYmFzZSBjbGFzcy4gIEl0IGRlZmluZXMgdGhlIGludGVyZmFjZSB1c2VkIGluIERlZmF1bHRWZWhpY2xlSGFsIHRvCisgKiBzZW5kIGFuZCByZWNlaXZlIGRhdGEgdG8gYW5kIGZyb20gdGhlIGVtdWxhdG9yLgorICovCitjbGFzcyBDb21tQmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Q29tbUJhc2UoKSA9IGRlZmF1bHQ7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgYSBjb25uZWN0aW9uIGlmIGl0IGlzIG9wZW4uCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSB7fQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvbm5lY3Rpb24gdG8gdGhlIG90aGVyIHNpZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIGZkIG9yIHNvY2tldCBudW1iZXIgaWYgY29ubmVjdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqICAgICAgICAgICAgICBPdGhlcndpc2UsIHJldHVybnMgLTEgaWYgbm8gY29ubmVjdGlvbiBpcyBhdmFpbGJsZS4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludCBjb25uZWN0KCkgeyByZXR1cm4gMDsgfQorCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIGNvbW11bmljYXRpb25zIGNoYW5uZWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIDAgaWYgY2hhbm5lbCBpcyBvcGVuZWQsIGVsc2UgLWVycm5vIGlmIGZhaWxlZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludCBvcGVuKCkgPSAwOworCisgICAgLyoqCisgICAgICogQmxvY2tpbmcgY2FsbCB0byByZWFkIGRhdGEgZnJvbSB0aGUgY29ubmVjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4gU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHJlY2VpdmVkIGZyb20gZW11bGF0b3IuICBUaGlzIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgYW4gZW1wdHkgdmVjdG9yIGlmIHRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgb3Igc29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJlYWQoKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBUcmFuc21pdHMgYSBzdHJpbmcgb2YgZGF0YSB0byB0aGUgZW11bGF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YSBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgdG8gdHJhbnNtaXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBOdW1iZXIgb2YgYnl0ZXMgdHJhbnNtaXR0ZWQsIG9yIC0xIGlmIGZhaWxlZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludCB3cml0ZShjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZGF0YSkgPSAwOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfQ29tbUJhc2VfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9EZWZhdWx0Q29uZmlnLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRGVmYXVsdENvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNjNlMzYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRGVmYXVsdENvbmZpZy5oCkBAIC0wLDAgKzEsMjk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRGVmYXVsdENvbmZpZ19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRGVmYXVsdENvbmZpZ19IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qCisgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgZm9yIHRlc3QgcHVycG9zZSB0byBnZW5lcmF0ZSBmYWtlIGV2ZW50cy4KKyAqCisgKiBJdCBoYXMgdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgKgorICogaW50MzJWYWx1ZXNbMF0gLSBjb21tYW5kICgxIC0gc3RhcnQgZmFrZSBkYXRhIGdlbmVyYXRpb24sIDAgLSBzdG9wKQorICogaW50MzJWYWx1ZXNbMV0gLSBWZWhpY2xlUHJvcGVydHkgdG8gd2hpY2ggY29tbWFuZCBhcHBsaWVzCisgKgorICogRm9yIHN0YXJ0IGNvbW1hbmQsIGFkZGl0aW9uYWwgZGF0YSBzaG91bGQgYmUgcHJvdmlkZWQ6CisgKiAgIGludDY0VmFsdWVzWzBdIC0gcGVyaW9kaWMgaW50ZXJ2YWwgaW4gbmFub3NlY29uZHMKKyAqICAgZmxvYXRWYWx1ZXNbMF0gLSBpbml0aWFsIHZhbHVlCisgKiAgIGZsb2F0VmFsdWVzWzFdIC0gZGlzcGVyc2lvbiBkZWZpbmVzIG1pbiBhbmQgbWF4IHJhbmdlIHJlbGF0aXZlIHRvIGluaXRpYWwgdmFsdWUKKyAqICAgZmxvYXRWYWx1ZXNbMl0gLSBpbmNyZW1lbnQsIHdpdGggZXZlcnkgdGltZXIgdGljayB0aGUgdmFsdWUgd2lsbCBiZSBpbmNyZW1lbnRlZCBieSB0aGlzIGFtb3VudAorICovCitjb25zdCBpbnQzMl90IGtHZW5lcmF0ZUZha2VEYXRhQ29udHJvbGxpbmdQcm9wZXJ0eSA9IDB4MDY2NgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpWRU5ET1IKKyAgICAgICAgfCBWZWhpY2xlQXJlYTo6R0xPQkFMCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWDsKKworY29uc3QgaW50MzJfdCBrSHZhY1Bvd2VyUHJvcGVydGllc1tdID0geworICAgIHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpLAorICAgIHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fRElSRUNUSU9OKSwKK307CisKK3N0cnVjdCBDb25maWdEZWNsYXJhdGlvbiB7CisgICAgVmVoaWNsZVByb3BDb25maWcgY29uZmlnOworCisgICAgLyogVGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgYW4gaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5LiBJZiB0aGlzIGZpZWxkIGlzIHNwZWNpZmllZCBmb3IKKyAgICAgKiBwcm9wZXJ0eSB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGFyZWFzIHRoZW4gaXQgd2lsbCBiZSB1c2VkIGZvciBhbGwgYXJlYXMgdW5sZXNzIHBhcnRpY3VsYXIKKyAgICAgKiBhcmVhIGlzIG92ZXJyaWRkZW4gaW4gaW5pdGlhbEFyZWFWYWx1ZSBmaWVsZC4gKi8KKyAgICBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSBpbml0aWFsVmFsdWU7CisgICAgLyogVXNlIGluaXRpYWxBcmVhVmFsdWVzIGlmIGl0IGlzIG5lY2Vzc2FyeSB0byBzcGVjaWZ5IGRpZmZlcmVudCB2YWx1ZXMgcGVyIGVhY2ggYXJlYS4gKi8KKyAgICBzdGQ6Om1hcDxpbnQzMl90LCBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZT4gaW5pdGlhbEFyZWFWYWx1ZXM7Cit9OworCitjb25zdCBDb25maWdEZWNsYXJhdGlvbiBrVmVoaWNsZVByb3BlcnRpZXNbXXsKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlNUQVRJQywKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LnN0cmluZ1ZhbHVlID0gIlRveSBWZWhpY2xlIn19LAorICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6UEVSRl9WRUhJQ0xFX1NQRUVEKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMS4wZiwKKyAgICAgICAgICAgICAubWF4U2FtcGxlUmF0ZSA9IDEwMDAuMGYsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHswLjBmfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpQRVJGX09ET01FVEVSKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MC4wZn19fSwKKworICAgIHsKKyAgICAgICAgLmNvbmZpZyA9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkVOR0lORV9SUE0pLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTLAorICAgICAgICAgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMS4wZiwKKyAgICAgICAgICAgICAgICAubWF4U2FtcGxlUmF0ZSA9IDEwMDAuMGYsCisgICAgICAgICAgICB9LAorICAgICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHswLjBmfX0sCisgICAgfSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6Q1VSUkVOVF9HRUFSKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7dG9JbnQoVmVoaWNsZUdlYXI6OkdFQVJfUEFSSyl9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OlBBUktJTkdfQlJBS0VfT04pLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpGVUVMX0xFVkVMX0xPVyksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezB9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfUE9XRVJfT04pLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSksCisgICAgICAgICAgICAgLy8gVE9ETyhicnlhbmV5bGVyKTogSWRlYWxseSwgdGhpcyBpcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHkgZnJvbQorICAgICAgICAgICAgIC8vIGtIdmFjUG93ZXJQcm9wZXJ0aWVzLgorICAgICAgICAgICAgIC5jb25maWdTdHJpbmcgPSAiMHgxMjQwMDUwMCwweDEyNDAwNTAxIiAgLy8gSFZBQ19GQU5fU1BFRUQsSFZBQ19GQU5fRElSRUNUSU9OCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19LAorCisgICAgeworICAgICAgICAuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0RFRlJPU1RFUiksCisgICAgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPQorICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXJlYVdpbmRvdzo6RlJPTlRfV0lORFNISUVMRCB8IFZlaGljbGVBcmVhV2luZG93OjpSRUFSX1dJTkRTSElFTER9LAorICAgICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHswfX0gIC8vIFdpbGwgYmUgdXNlZCBmb3IgYWxsIGFyZWFzLgorICAgIH0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19SRUNJUkNfT04pLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSl9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfQUNfT04pLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSl9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfQVVUT19PTiksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKX0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezF9fX0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSksCisgICAgICAgICAgICAgICAgLmFyZWFDb25maWdzID0ge1ZlaGljbGVBcmVhQ29uZmlney5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDd9fX0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezN9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX0RJUkVDVElPTiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uOjpGQUNFKX19fSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1RFTVBFUkFUVVJFX1NFVCksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQgfCBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hULAorICAgICAgICAgICAgICAgIC5hcmVhQ29uZmlncyA9IHtWZWhpY2xlQXJlYUNvbmZpZ3sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1pbkZsb2F0VmFsdWUgPSAxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXhGbG9hdFZhbHVlID0gMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlneworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1pbkZsb2F0VmFsdWUgPSAxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXhGbG9hdFZhbHVlID0gMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19fSwKKyAgICAgLmluaXRpYWxBcmVhVmFsdWVzID0ge3t0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLCB7LmZsb2F0VmFsdWVzID0gezE2fX19LAorICAgICAgICAgICAgICAgICAgICAgICAgICAge3RvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLCB7LmZsb2F0VmFsdWVzID0gezIwfX19fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkVOVl9PVVRTSURFX1RFTVBFUkFUVVJFKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC8vIFRPRE8oYnJ5YW5leWxlcik6IFN1cHBvcnQgT05fQ0hBTkdFIGFzIHdlbGwuCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTLAorICAgICAgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMS4wZiwKKyAgICAgICAgICAgICAubWF4U2FtcGxlUmF0ZSA9IDIuMGYsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHsyNS4wZn19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6TklHSFRfTU9ERSksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezB9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRSSVZJTkdfU1RBVFVTKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7dG9JbnQoVmVoaWNsZURyaXZpbmdTdGF0dXM6OlVOUkVTVFJJQ1RFRCl9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkdFQVJfU0VMRUNUSU9OKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7dG9JbnQoVmVoaWNsZUdlYXI6OkdFQVJfUEFSSyl9fX0sCisKKyAgICB7CisgICAgICAgIC5jb25maWcgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMsCisgICAgICAgICAgICB9LAorICAgICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHsxMjMwMDAuMGZ9fSAgLy8gSW4gTWlsbGlsaXRlcnMKKyAgICB9LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7VmVoaWNsZUFyZWFDb25maWd7Lm1pbkludDMyVmFsdWUgPSAwLCAubWF4SW50MzJWYWx1ZSA9IDEwfX19LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHs3fX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJR05JVElPTl9TVEFURSksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVJZ25pdGlvblN0YXRlOjpPTil9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkVOR0lORV9PSUxfVEVNUCksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMsCisgICAgICAgICAgICAgLm1pblNhbXBsZVJhdGUgPSAwLjEsICAvLyAwLjEgSHosIGV2ZXJ5IDEwIHNlY29uZHMKKyAgICAgICAgICAgICAubWF4U2FtcGxlUmF0ZSA9IDEwLCAgIC8vIDEwIEh6LCBldmVyeSAxMDAgbXMKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezEwMS4wZn19fSwKKworICAgIHsKKyAgICAgICAgLmNvbmZpZyA9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLnByb3AgPSBrR2VuZXJhdGVGYWtlRGF0YUNvbnRyb2xsaW5nUHJvcGVydHksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6V1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICB9LAorICAgIH0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRPT1JfTE9DSyksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezF9fX0KKworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRGVmYXVsdENvbmZpZ19IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTM0YTNmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAKQEAgLTAsMCArMSwyNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJEZWZhdWx0VmVoaWNsZUhhbF92Ml8wIgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbWFjcm9zLmg+CisKKyNpbmNsdWRlICJFbXVsYXRlZFZlaGljbGVIYWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitlbnVtIGNsYXNzIEZha2VEYXRhQ29tbWFuZCA6IGludDMyX3QgeworICAgIFN0b3AgPSAwLAorICAgIFN0YXJ0ID0gMSwKK307CisKK0VtdWxhdGVkVmVoaWNsZUhhbDo6RW11bGF0ZWRWZWhpY2xlSGFsKFZlaGljbGVQcm9wZXJ0eVN0b3JlKiBwcm9wU3RvcmUpCisgICAgOiBtUHJvcFN0b3JlKHByb3BTdG9yZSksCisgICAgICBtSHZhY1Bvd2VyUHJvcHMoc3RkOjpiZWdpbihrSHZhY1Bvd2VyUHJvcGVydGllcyksIHN0ZDo6ZW5kKGtIdmFjUG93ZXJQcm9wZXJ0aWVzKSksCisgICAgICBtUmVjdXJyZW50VGltZXIoc3RkOjpiaW5kKCZFbXVsYXRlZFZlaGljbGVIYWw6Om9uQ29udGludW91c1Byb3BlcnR5VGltZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSksCisgICAgICBtRmFrZVZhbHVlR2VuZXJhdG9yKHN0ZDo6YmluZCgmRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkZha2VWYWx1ZUdlbmVyYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yKSkgeworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcnJheXNpemUoa1ZlaGljbGVQcm9wZXJ0aWVzKTsgaSsrKSB7CisgICAgICAgIG1Qcm9wU3RvcmUtPnJlZ2lzdGVyUHJvcGVydHkoa1ZlaGljbGVQcm9wZXJ0aWVzW2ldLmNvbmZpZyk7CisgICAgfQorfQorCitWZWhpY2xlSGFsOjpWZWhpY2xlUHJvcFZhbHVlUHRyIEVtdWxhdGVkVmVoaWNsZUhhbDo6Z2V0KAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsIFN0YXR1c0NvZGUqIG91dFN0YXR1cykgeworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgdiA9IG51bGxwdHI7CisKKyAgICBhdXRvIGludGVybmFsUHJvcFZhbHVlID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKHJlcXVlc3RlZFByb3BWYWx1ZSk7CisgICAgaWYgKGludGVybmFsUHJvcFZhbHVlICE9IG51bGxwdHIpIHsKKyAgICAgICAgdiA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW4oKmludGVybmFsUHJvcFZhbHVlKTsKKyAgICB9CisKKyAgICAqb3V0U3RhdHVzID0gdiAhPSBudWxscHRyID8gU3RhdHVzQ29kZTo6T0sgOiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICByZXR1cm4gdjsKK30KKworU3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OnNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBpZiAocHJvcFZhbHVlLnByb3AgPT0ga0dlbmVyYXRlRmFrZURhdGFDb250cm9sbGluZ1Byb3BlcnR5KSB7CisgICAgICAgIHJldHVybiBoYW5kbGVHZW5lcmF0ZUZha2VEYXRhUmVxdWVzdChwcm9wVmFsdWUpOworICAgIH07CisKKyAgICBpZiAobUh2YWNQb3dlclByb3BzLmNvdW50KHByb3BWYWx1ZS5wcm9wKSkgeworICAgICAgICBhdXRvIGh2YWNQb3dlck9uID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19QT1dFUl9PTiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKSk7CisKKyAgICAgICAgaWYgKGh2YWNQb3dlck9uICYmIGh2YWNQb3dlck9uLT52YWx1ZS5pbnQzMlZhbHVlcy5zaXplKCkgPT0gMQorICAgICAgICAgICAgICAgICYmIGh2YWNQb3dlck9uLT52YWx1ZS5pbnQzMlZhbHVlc1swXSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghbVByb3BTdG9yZS0+d3JpdGVWYWx1ZShwcm9wVmFsdWUpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICBnZXRFbXVsYXRvck9yRGllKCktPmRvU2V0VmFsdWVGcm9tQ2xpZW50KHByb3BWYWx1ZSk7CisKKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKKy8vIFBhcnNlIHN1cHBvcnRlZCBwcm9wZXJ0aWVzIGxpc3QgYW5kIGdlbmVyYXRlIHZlY3RvciBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gaG9sZCBjdXJyZW50IHZhbHVlcy4KK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNyZWF0ZSgpIHsKKyAgICBmb3IgKGF1dG8mIGl0IDoga1ZlaGljbGVQcm9wZXJ0aWVzKSB7CisgICAgICAgIFZlaGljbGVQcm9wQ29uZmlnIGNmZyA9IGl0LmNvbmZpZzsKKyAgICAgICAgaW50MzJfdCBzdXBwb3J0ZWRBcmVhcyA9IGNmZy5zdXBwb3J0ZWRBcmVhczsKKworICAgICAgICAvLyAgQSBnbG9iYWwgcHJvcGVydHkgd2lsbCBoYXZlIHN1cHBvcnRlZEFyZWFzID0gMAorICAgICAgICBpZiAoaXNHbG9iYWxQcm9wKGNmZy5wcm9wKSkgeworICAgICAgICAgICAgc3VwcG9ydGVkQXJlYXMgPSAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBsb29wIGlzIGEgZG8td2hpbGUgc28gaXQgZXhlY3V0ZXMgYXQgbGVhc3Qgb25jZSB0byBoYW5kbGUgZ2xvYmFsIHByb3BlcnRpZXMKKyAgICAgICAgZG8geworICAgICAgICAgICAgaW50MzJfdCBjdXJBcmVhID0gc3VwcG9ydGVkQXJlYXM7CisgICAgICAgICAgICBzdXBwb3J0ZWRBcmVhcyAmPSBzdXBwb3J0ZWRBcmVhcyAtIDE7ICAvLyBDbGVhciB0aGUgcmlnaHQtbW9zdCBiaXQgb2Ygc3VwcG9ydGVkQXJlYXMuCisgICAgICAgICAgICBjdXJBcmVhIF49IHN1cHBvcnRlZEFyZWFzOyAgLy8gU2V0IGN1ckFyZWEgdG8gdGhlIHByZXZpb3VzbHkgY2xlYXJlZCBiaXQuCisKKyAgICAgICAgICAgIC8vIENyZWF0ZSBhIHNlcGFyYXRlIGluc3RhbmNlIGZvciBlYWNoIGluZGl2aWR1YWwgem9uZQorICAgICAgICAgICAgVmVoaWNsZVByb3BWYWx1ZSBwcm9wID0geworICAgICAgICAgICAgICAgIC5wcm9wID0gY2ZnLnByb3AsCisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IGN1ckFyZWEsCisgICAgICAgICAgICB9OworICAgICAgICAgICAgaWYgKGl0LmluaXRpYWxBcmVhVmFsdWVzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBhdXRvIHZhbHVlRm9yQXJlYUl0ID0gaXQuaW5pdGlhbEFyZWFWYWx1ZXMuZmluZChjdXJBcmVhKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVGb3JBcmVhSXQgIT0gaXQuaW5pdGlhbEFyZWFWYWx1ZXMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvcC52YWx1ZSA9IHZhbHVlRm9yQXJlYUl0LT5zZWNvbmQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR1coIiVzIGZhaWxlZCB0byBnZXQgZGVmYXVsdCB2YWx1ZSBmb3IgcHJvcCAweCV4IGFyZWEgMHgleCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGNmZy5wcm9wLCBjdXJBcmVhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByb3AudmFsdWUgPSBpdC5pbml0aWFsVmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtUHJvcFN0b3JlLT53cml0ZVZhbHVlKHByb3ApOworCisgICAgICAgIH0gd2hpbGUgKHN1cHBvcnRlZEFyZWFzICE9IDApOworICAgIH0KK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IEVtdWxhdGVkVmVoaWNsZUhhbDo6bGlzdFByb3BlcnRpZXMoKSAgeworICAgIHJldHVybiBtUHJvcFN0b3JlLT5nZXRBbGxDb25maWdzKCk7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNvbnRpbnVvdXNQcm9wZXJ0eVRpbWVyKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBwcm9wZXJ0aWVzKSB7CisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciB2OworCisgICAgYXV0byYgcG9vbCA9ICpnZXRWYWx1ZVBvb2woKTsKKworICAgIGZvciAoaW50MzJfdCBwcm9wZXJ0eSA6IHByb3BlcnRpZXMpIHsKKyAgICAgICAgaWYgKGlzQ29udGludW91c1Byb3BlcnR5KHByb3BlcnR5KSkgeworICAgICAgICAgICAgYXV0byBpbnRlcm5hbFByb3BWYWx1ZSA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbChwcm9wZXJ0eSk7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wVmFsdWUgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIHYgPSBwb29sLm9idGFpbigqaW50ZXJuYWxQcm9wVmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIlVuZXhwZWN0ZWQgb25Db250aW51b3VzUHJvcGVydHlUaW1lciBmb3IgcHJvcGVydHk6IDB4JXgiLCBwcm9wZXJ0eSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodi5nZXQoKSkgeworICAgICAgICAgICAgdi0+dGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICAgICAgICAgICAgZG9IYWxFdmVudChzdGQ6Om1vdmUodikpOworICAgICAgICB9CisgICAgfQorfQorCitTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6c3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHksIGludDMyX3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxlUmF0ZSkgeworICAgIEFMT0dJKCIlcyBwcm9wSWQ6IDB4JXgsIHNhbXBsZVJhdGU6ICVmIiwgX19mdW5jX18sIHByb3BlcnR5LCBzYW1wbGVSYXRlKTsKKworICAgIGlmIChpc0NvbnRpbnVvdXNQcm9wZXJ0eShwcm9wZXJ0eSkpIHsKKyAgICAgICAgbVJlY3VycmVudFRpbWVyLnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQoaGVydHpUb05hbm9zZWNvbmRzKHNhbXBsZVJhdGUpLCBwcm9wZXJ0eSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKworU3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OnVuc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHkpIHsKKyAgICBBTE9HSSgiJXMgcHJvcElkOiAweCV4IiwgX19mdW5jX18sIHByb3BlcnR5KTsKKyAgICBpZiAoaXNDb250aW51b3VzUHJvcGVydHkocHJvcGVydHkpKSB7CisgICAgICAgIG1SZWN1cnJlbnRUaW1lci51bnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQocHJvcGVydHkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK2Jvb2wgRW11bGF0ZWRWZWhpY2xlSGFsOjppc0NvbnRpbnVvdXNQcm9wZXJ0eShpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBjb25maWcgPSBtUHJvcFN0b3JlLT5nZXRDb25maWdPck51bGwocHJvcElkKTsKKyAgICBpZiAoY29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIkNvbmZpZyBub3QgZm91bmQgZm9yIHByb3BlcnR5OiAweCV4IiwgcHJvcElkKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gY29uZmlnLT5jaGFuZ2VNb2RlID09IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVM7Cit9CisKK2Jvb2wgRW11bGF0ZWRWZWhpY2xlSGFsOjpzZXRQcm9wZXJ0eUZyb21WZWhpY2xlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIGlmIChtUHJvcFN0b3JlLT53cml0ZVZhbHVlKHByb3BWYWx1ZSkpIHsKKyAgICAgICAgZG9IYWxFdmVudChnZXRWYWx1ZVBvb2woKS0+b2J0YWluKHByb3BWYWx1ZSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiBFbXVsYXRlZFZlaGljbGVIYWw6OmdldEFsbFByb3BlcnRpZXMoKSBjb25zdCAgeworICAgIHJldHVybiBtUHJvcFN0b3JlLT5yZWFkQWxsVmFsdWVzKCk7Cit9CisKK1N0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpoYW5kbGVHZW5lcmF0ZUZha2VEYXRhUmVxdWVzdChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0KSB7CisgICAgQUxPR0koIiVzIiwgX19mdW5jX18pOworICAgIGNvbnN0IGF1dG8mIHYgPSByZXF1ZXN0LnZhbHVlOworICAgIGlmICh2LmludDMyVmFsdWVzLnNpemUoKSA8IDIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBleHBlY3RlZCBhdCBsZWFzdCAyIGVsZW1lbnRzIGluIGludDMyVmFsdWVzLCBnb3Q6ICV6dSIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgIHYuaW50MzJWYWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIH0KKworICAgIEZha2VEYXRhQ29tbWFuZCBjb21tYW5kID0gc3RhdGljX2Nhc3Q8RmFrZURhdGFDb21tYW5kPih2LmludDMyVmFsdWVzWzBdKTsKKyAgICBpbnQzMl90IHByb3BJZCA9IHYuaW50MzJWYWx1ZXNbMV07CisKKyAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKKyAgICAgICAgY2FzZSBGYWtlRGF0YUNvbW1hbmQ6OlN0YXJ0OiB7CisgICAgICAgICAgICBpZiAoIXYuaW50NjRWYWx1ZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBpbnRlcnZhbCBpcyBub3QgcHJvdmlkZWQgaW4gaW50NjRWYWx1ZXMiLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBpbnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyh2LmludDY0VmFsdWVzWzBdKTsKKworICAgICAgICAgICAgaWYgKHYuZmxvYXRWYWx1ZXMuc2l6ZSgpIDwgMykgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogZXhwZWN0ZWQgYXQgbGVhc3QgMyBlbGVtZW50IHNpbiBmbG9hdFZhbHVlcywgZ290OiAlenUiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICAgICAgICAgIHYuZmxvYXRWYWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmbG9hdCBpbml0aWFsVmFsdWUgPSB2LmZsb2F0VmFsdWVzWzBdOworICAgICAgICAgICAgZmxvYXQgZGlzcGVyc2lvbiA9IHYuZmxvYXRWYWx1ZXNbMV07CisgICAgICAgICAgICBmbG9hdCBpbmNyZW1lbnQgPSB2LmZsb2F0VmFsdWVzWzJdOworCisgICAgICAgICAgICBBTE9HSSgiJXMsIHByb3BJZDogJWQsIGluaXRhbFZhbHVlOiAlZiIsIF9fZnVuY19fLCBwcm9wSWQsIGluaXRpYWxWYWx1ZSk7CisgICAgICAgICAgICBtRmFrZVZhbHVlR2VuZXJhdG9yLnN0YXJ0R2VuZXJhdGluZ0hhbEV2ZW50cygKKyAgICAgICAgICAgICAgICBpbnRlcnZhbCwgcHJvcElkLCBpbml0aWFsVmFsdWUsIGRpc3BlcnNpb24sIGluY3JlbWVudCk7CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRmFrZURhdGFDb21tYW5kOjpTdG9wOiB7CisgICAgICAgICAgICBBTE9HSSgiJXMsIEZha2VEYXRhQ29tbWFuZFN0b3AiLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICBtRmFrZVZhbHVlR2VuZXJhdG9yLnN0b3BHZW5lcmF0aW5nSGFsRXZlbnRzKHByb3BJZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVuZXhwZWN0ZWQgY29tbWFuZDogJWQiLCBfX2Z1bmNfXywgY29tbWFuZCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25GYWtlVmFsdWVHZW5lcmF0ZWQoaW50MzJfdCBwcm9wSWQsIGZsb2F0IHZhbHVlKSB7CisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciB1cGRhdGVkUHJvcFZhbHVlIHt9OworICAgIHN3aXRjaCAoZ2V0UHJvcFR5cGUocHJvcElkKSkgeworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOgorICAgICAgICAgICAgdXBkYXRlZFByb3BWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW5GbG9hdCh2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMjoKKyAgICAgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluSW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIiVzOiBkYXRhIHR5cGUgZm9yIHByb3BlcnR5OiAweCV4IG5vdCBzdXBwb3J0ZWQiLCBfX2Z1bmNfXywgcHJvcElkKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgIH0KKworICAgIGlmICh1cGRhdGVkUHJvcFZhbHVlKSB7CisgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUtPnByb3AgPSBwcm9wSWQ7CisgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUtPmFyZWFJZCA9IDA7ICAvLyBBZGQgYXJlYSBzdXBwb3J0IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgdXBkYXRlZFByb3BWYWx1ZS0+dGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICAgICAgICBtUHJvcFN0b3JlLT53cml0ZVZhbHVlKCp1cGRhdGVkUHJvcFZhbHVlKTsKKyAgICAgICAgYXV0byBjaGFuZ2VNb2RlID0gbVByb3BTdG9yZS0+Z2V0Q29uZmlnT3JEaWUocHJvcElkKS0+Y2hhbmdlTW9kZTsKKyAgICAgICAgaWYgKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSA9PSBjaGFuZ2VNb2RlKSB7CisgICAgICAgICAgICBkb0hhbEV2ZW50KG1vdmUodXBkYXRlZFByb3BWYWx1ZSkpOworICAgICAgICB9CisgICAgfQorfQorCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDk0ODVkCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXworCisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSAiVmVoaWNsZUhhbFByb3RvLnBiLmgiCisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZUhhbC5oPgorI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oIgorCisjaW5jbHVkZSAiRGVmYXVsdENvbmZpZy5oIgorI2luY2x1ZGUgIlZlaGljbGVIYWxQcm90by5wYi5oIgorI2luY2x1ZGUgIlZlaGljbGVFbXVsYXRvci5oIgorI2luY2x1ZGUgIkZha2VWYWx1ZUdlbmVyYXRvci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qKiBJbXBsZW1lbnRhdGlvbiBvZiBWZWhpY2xlSGFsIHRoYXQgY29ubmVjdGVkIHRvIGVtdWxhdG9yIGluc3RlYWQgb2YgcmVhbCB2ZWhpY2xlIG5ldHdvcmsuICovCitjbGFzcyBFbXVsYXRlZFZlaGljbGVIYWwgOiBwdWJsaWMgRW11bGF0ZWRWZWhpY2xlSGFsSWZhY2UgeworcHVibGljOgorICAgIEVtdWxhdGVkVmVoaWNsZUhhbChWZWhpY2xlUHJvcGVydHlTdG9yZSogcHJvcFN0b3JlKTsKKyAgICB+RW11bGF0ZWRWZWhpY2xlSGFsKCkgPSBkZWZhdWx0OworCisgICAgLy8gIE1ldGhvZHMgZnJvbSBWZWhpY2xlSGFsCisgICAgdm9pZCBvbkNyZWF0ZSgpIG92ZXJyaWRlOworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBsaXN0UHJvcGVydGllcygpIG92ZXJyaWRlOworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgZ2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXNDb2RlKiBvdXRTdGF0dXMpIG92ZXJyaWRlOworICAgIFN0YXR1c0NvZGUgc2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RhdHVzQ29kZSBzdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSwgaW50MzJfdCBhcmVhcywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGU7CisgICAgU3RhdHVzQ29kZSB1bnN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5KSBvdmVycmlkZTsKKworICAgIC8vICBNZXRob2RzIGZyb20gRW11bGF0ZWRWZWhpY2xlSGFsSWZhY2UKKyAgICBib29sIHNldFByb3BlcnR5RnJvbVZlaGljbGUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSBvdmVycmlkZTsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiBnZXRBbGxQcm9wZXJ0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgY29uc3RleHByIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBoZXJ0elRvTmFub3NlY29uZHMoZmxvYXQgaHopIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2NF90PigxMDAwMDAwMDAwTCAvIGh6KSk7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSBoYW5kbGVHZW5lcmF0ZUZha2VEYXRhUmVxdWVzdChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0KTsKKyAgICB2b2lkIG9uRmFrZVZhbHVlR2VuZXJhdGVkKGludDMyX3QgcHJvcElkLCBmbG9hdCB2YWx1ZSk7CisKKyAgICB2b2lkIG9uQ29udGludW91c1Byb3BlcnR5VGltZXIoY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIHByb3BlcnRpZXMpOworICAgIGJvb2wgaXNDb250aW51b3VzUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworCitwcml2YXRlOgorICAgIFZlaGljbGVQcm9wZXJ0eVN0b3JlKiBtUHJvcFN0b3JlOworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxpbnQzMl90PiBtSHZhY1Bvd2VyUHJvcHM7CisgICAgUmVjdXJyZW50VGltZXIgbVJlY3VycmVudFRpbWVyOworICAgIEZha2VWYWx1ZUdlbmVyYXRvciBtRmFrZVZhbHVlR2VuZXJhdG9yOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRmFrZVZhbHVlR2VuZXJhdG9yLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRmFrZVZhbHVlR2VuZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JiYmIwOAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9GYWtlVmFsdWVHZW5lcmF0b3IuaApAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0Zha2VIYWxFdmVudEdlbmVyYXRvcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRmFrZUhhbEV2ZW50R2VuZXJhdG9yX0hfCisKKyNpbmNsdWRlIDxjaHJvbm8+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPHZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKK2NsYXNzIEZha2VWYWx1ZUdlbmVyYXRvciB7Citwcml2YXRlOgorICAgIC8vIEluIGV2ZXJ5IHRpbWVyIHRpY2sgd2UgbWF5IHdhbnQgdG8gZ2VuZXJhdGUgbmV3IHZhbHVlIGJhc2VkIG9uIGluaXRpYWwgdmFsdWUgZm9yIGRlYnVnCisgICAgLy8gcHVycG9zZS4gSXQncyBiZXR0ZXIgdG8gaGF2ZSBzZXF1ZW50aWFsIHZhbHVlcyB0byBzZWUgaWYgZXZlbnRzIGdldHMgZGVsaXZlcmVkIGluIG9yZGVyCisgICAgLy8gdG8gdGhlIGNsaWVudC4KKworICAgIHN0cnVjdCBHZW5lcmF0b3JDZmcgeworICAgICAgICBmbG9hdCBpbml0aWFsVmFsdWU7ICAvLworICAgICAgICBmbG9hdCBjdXJyZW50VmFsdWU7ICAvLyAgU2hvdWxkIGJlIGluIHJhbmdlIChpbml0aWFsVmFsdWUgKy8tIGRpc3BlcnNpb24pLgorICAgICAgICBmbG9hdCBkaXNwZXJzaW9uOyAgICAvLyAgRGVmaW5lcyBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIGJhc2VkIG9uIGluaXRpYWwgdmFsdWUuCisgICAgICAgIGZsb2F0IGluY3JlbWVudDsgICAgIC8vICBWYWx1ZSB0aGF0IHdlIHdpbGwgYmUgYWRkZWQgdG8gY3VycmVudFZhbHVlIHdpdGggZWFjaCB0aW1lciB0aWNrLgorICAgIH07CisKK3B1YmxpYzoKKyAgICB1c2luZyBPbkhhbEV2ZW50ID0gc3RkOjpmdW5jdGlvbjx2b2lkKGludDMyX3QgcHJvcElkLCBmbG9hdCB2YWx1ZSk+OworCisgICAgRmFrZVZhbHVlR2VuZXJhdG9yKGNvbnN0IE9uSGFsRXZlbnQmIG9uSGFsRXZlbnQpIDoKKyAgICAgICAgbU9uSGFsRXZlbnQob25IYWxFdmVudCksCisgICAgICAgIG1SZWN1cnJlbnRUaW1lcihzdGQ6OmJpbmQoJkZha2VWYWx1ZUdlbmVyYXRvcjo6b25UaW1lciwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKQorICAgIHt9CisKKyAgICB+RmFrZVZhbHVlR2VuZXJhdG9yKCkgPSBkZWZhdWx0OworCisKKyAgICB2b2lkIHN0YXJ0R2VuZXJhdGluZ0hhbEV2ZW50cyhzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgaW50ZXJ2YWwsIGludCBwcm9wSWQsIGZsb2F0IGluaXRpYWxWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkaXNwZXJzaW9uLCBmbG9hdCBpbmNyZW1lbnQpIHsKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisKKyAgICAgICAgcmVtb3ZlTG9ja2VkKHByb3BJZCk7CisKKyAgICAgICAgbUdlbkNmZy5pbnNlcnQoe3Byb3BJZCwgR2VuZXJhdG9yQ2ZnIHsKKyAgICAgICAgICAgIC5pbml0aWFsVmFsdWUgPSBpbml0aWFsVmFsdWUsCisgICAgICAgICAgICAuY3VycmVudFZhbHVlID0gaW5pdGlhbFZhbHVlLAorICAgICAgICAgICAgLmRpc3BlcnNpb24gPSBkaXNwZXJzaW9uLAorICAgICAgICAgICAgLmluY3JlbWVudCA9IGluY3JlbWVudCwKKyAgICAgICAgfX0pOworCisgICAgICAgIG1SZWN1cnJlbnRUaW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KGludGVydmFsLCBwcm9wSWQpOworICAgIH0KKworICAgIHZvaWQgc3RvcEdlbmVyYXRpbmdIYWxFdmVudHMoaW50IHByb3BJZCkgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgaWYgKHByb3BJZCA9PSAwKSB7CisgICAgICAgICAgICAvLyBSZW1vdmUgYWxsLgorICAgICAgICAgICAgZm9yIChhdXRvJiYgaXQgOiBtR2VuQ2ZnKSB7CisgICAgICAgICAgICAgICAgcmVtb3ZlTG9ja2VkKGl0LmZpcnN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlbW92ZUxvY2tlZChwcm9wSWQpOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgcmVtb3ZlTG9ja2VkKGludCBwcm9wSWQpIHsKKyAgICAgICAgaWYgKG1HZW5DZmcuZXJhc2UocHJvcElkKSkgeworICAgICAgICAgICAgbVJlY3VycmVudFRpbWVyLnVucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChwcm9wSWQpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBvblRpbWVyKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBwcm9wZXJ0aWVzKSB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworCisgICAgICAgIGZvciAoaW50MzJfdCBwcm9wSWQgOiBwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBhdXRvJiBjZmcgPSBtR2VuQ2ZnW3Byb3BJZF07CisgICAgICAgICAgICBjZmcuY3VycmVudFZhbHVlICs9IGNmZy5pbmNyZW1lbnQ7CisgICAgICAgICAgICBpZiAoY2ZnLmN1cnJlbnRWYWx1ZSA+IGNmZy5pbml0aWFsVmFsdWUgKyBjZmcuZGlzcGVyc2lvbikgeworICAgICAgICAgICAgICAgIGNmZy5jdXJyZW50VmFsdWUgPSBjZmcuaW5pdGlhbFZhbHVlIC0gY2ZnLmRpc3BlcnNpb247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtT25IYWxFdmVudChwcm9wSWQsIGNmZy5jdXJyZW50VmFsdWUpOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworCisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIE9uSGFsRXZlbnQgbU9uSGFsRXZlbnQ7CisgICAgUmVjdXJyZW50VGltZXIgbVJlY3VycmVudFRpbWVyOworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQzMl90LCBHZW5lcmF0b3JDZmc+IG1HZW5DZmc7Cit9OworCisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0Zha2VIYWxFdmVudEdlbmVyYXRvcl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmIxNWFhMwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlBpcGVDb21tIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3lzdGVtL3FlbXVfcGlwZS5oPgorCisjaW5jbHVkZSAiUGlwZUNvbW0uaCIKKworI2RlZmluZSBDQVJfU0VSVklDRV9OQU1FICJwaXBlOnFlbXVkOmNhciIKKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKK1BpcGVDb21tOjpQaXBlQ29tbSgpIHsKKyAgICAvLyBJbml0aWFsaXplIG1lbWJlciB2YXJzCisgICAgbVBpcGVGZCA9IC0xOworfQorCisKK2ludCBQaXBlQ29tbTo6b3BlbigpIHsKKyAgICBpbnQgZmQgPSBxZW11X3BpcGVfb3BlbihDQVJfU0VSVklDRV9OQU1FKTsKKworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDb3VsZCBub3Qgb3BlbiBjb25uZWN0aW9uIHRvIHNlcnZpY2U6ICVzICVkIiwgX19GVU5DVElPTl9fLCBzdHJlcnJvcihlcnJubyksIGZkKTsKKyAgICAgICAgcmV0dXJuIC1lcnJubzsKKyAgICB9CisKKyAgICBBTE9HSSgiJXM6IE9QRU5FRCBQSVBFLCBmZD0lZCIsIF9fRlVOQ1RJT05fXywgZmQpOworICAgIG1QaXBlRmQgPSBmZDsKKyAgICByZXR1cm4gMDsKK30KKworc3RkOjp2ZWN0b3I8dWludDhfdD4gUGlwZUNvbW06OnJlYWQoKSB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgTUFYX1JYX01TR19TWiA9IDIwNDg7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oTUFYX1JYX01TR19TWik7CisgICAgaW50IG51bUJ5dGVzOworCisgICAgbnVtQnl0ZXMgPSBxZW11X3BpcGVfZnJhbWVfcmVjdihtUGlwZUZkLCBtc2cuZGF0YSgpLCBtc2cuc2l6ZSgpKTsKKworICAgIGlmIChudW1CeXRlcyA9PSBNQVhfUlhfTVNHX1NaKSB7CisgICAgICAgIEFMT0dFKCIlczogIFJlY2VpdmVkIG1heCBzaXplID0gJWQiLCBfX0ZVTkNUSU9OX18sIE1BWF9SWF9NU0dfU1opOworICAgIH0gZWxzZSBpZiAobnVtQnl0ZXMgPiAwKSB7CisgICAgICAgIG1zZy5yZXNpemUobnVtQnl0ZXMpOworICAgICAgICByZXR1cm4gbXNnOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dEKCIlczogQ29ubmVjdGlvbiB0ZXJtaW5hdGVkIG9uIHBpcGUgJWQsIG51bUJ5dGVzPSVkIiwgX19GVU5DVElPTl9fLCBtUGlwZUZkLCBudW1CeXRlcyk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgICAgICBtUGlwZUZkID0gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4oKTsKK30KKworaW50IFBpcGVDb21tOjp3cml0ZShjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZGF0YSkgeworICAgIGludCByZXRWYWwgPSAwOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICBpZiAobVBpcGVGZCAhPSAtMSkgeworICAgICAgICAgICAgcmV0VmFsID0gcWVtdV9waXBlX2ZyYW1lX3NlbmQobVBpcGVGZCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZXRWYWwgPCAwKSB7CisgICAgICAgIHJldFZhbCA9IC1lcnJubzsKKyAgICAgICAgQUxPR0UoIiVzOiAgc2VuZF9jbWQ6IChmZD0lZCk6IEVSUk9SOiAlcyIsIF9fRlVOQ1RJT05fXywgbVBpcGVGZCwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0VmFsOworfQorCisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2QzMmQwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1BpcGVDb21tX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9QaXBlQ29tbV9IXworCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgIkNvbW1CYXNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLyoqCisgKiBQaXBlQ29tbSB1c2VzIGEgcWVtdSBwaXBlIGludGVyZmFjZSB0byBjb25uZWN0IHRvIHRoZSBHb2xkZmlzaCBFbXVsYXRvci4KKyAqLworY2xhc3MgUGlwZUNvbW0gOiBwdWJsaWMgQ29tbUJhc2UgeworcHVibGljOgorICAgIFBpcGVDb21tKCk7CisKKyAgICAvKioKKyAgICAgKiBPcGVucyBhIHBpcGUgYW5kIGJlZ2lucyBsaXN0ZW5pbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIDAgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBpbnQgb3BlbigpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogQmxvY2tpbmcgY2FsbCB0byByZWFkIGRhdGEgZnJvbSB0aGUgY29ubmVjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4gU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHJlY2VpdmVkIGZyb20gZW11bGF0b3IuICBUaGlzIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgYW4gZW1wdHkgdmVjdG9yIGlmIHRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgb3Igc29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiByZWFkKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBUcmFuc21pdHMgYSBzdHJpbmcgb2YgZGF0YSB0byB0aGUgZW11bGF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YSBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgdG8gdHJhbnNtaXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBOdW1iZXIgb2YgYnl0ZXMgdHJhbnNtaXR0ZWQsIG9yIC0xIGlmIGZhaWxlZC4KKyAgICAgKi8KKyAgICBpbnQgd3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHN0ZDo6bXV0ZXggbU11dGV4OworICAgIGludCBtUGlwZUZkOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUGlwZUNvbW1fSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmMxYzc4Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJTb2NrZXRDb21tIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKworI2luY2x1ZGUgIlNvY2tldENvbW0uaCIKKworLy8gU29ja2V0IHRvIHVzZSB3aGVuIGNvbW11bmljYXRpbmcgd2l0aCBIb3N0IFBDCitzdGF0aWMgY29uc3RleHByIGludCBERUJVR19TT0NLRVQgPSAzMzQ1MjsKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitTb2NrZXRDb21tOjpTb2NrZXRDb21tKCkgeworICAgIC8vIEluaXRpYWxpemUgbWVtYmVyIHZhcnMKKyAgICBtQ3VyU29ja0ZkID0gLTE7CisgICAgbUV4aXQgICAgICA9ICAwOworICAgIG1Tb2NrRmQgICAgPSAtMTsKK30KKworCitTb2NrZXRDb21tOjp+U29ja2V0Q29tbSgpIHsKKyAgICBzdG9wKCk7Cit9CisKK2ludCBTb2NrZXRDb21tOjpjb25uZWN0KCkgeworICAgIHNvY2thZGRyX2luIGNsaUFkZHI7CisgICAgc29ja2xlbl90IGNsaUxlbiA9IHNpemVvZihjbGlBZGRyKTsKKyAgICBpbnQgY1NvY2tGZCA9IGFjY2VwdChtU29ja0ZkLCByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb2NrYWRkcio+KCZjbGlBZGRyKSwgJmNsaUxlbik7CisKKyAgICBpZiAoY1NvY2tGZCA+PSAwKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgICAgICBtQ3VyU29ja0ZkID0gY1NvY2tGZDsKKyAgICAgICAgfQorICAgICAgICBBTE9HRCgiJXM6IEluY29taW5nIGNvbm5lY3Rpb24gcmVjZWl2ZWQgb24gc29ja2V0ICVkIiwgX19GVU5DVElPTl9fLCBjU29ja0ZkKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjU29ja0ZkID0gLTE7CisgICAgfQorCisgICAgcmV0dXJuIGNTb2NrRmQ7Cit9CisKK2ludCBTb2NrZXRDb21tOjpvcGVuKCkgeworICAgIGludCByZXRWYWw7CisgICAgc3RydWN0IHNvY2thZGRyX2luIHNlcnZBZGRyOworCisgICAgbVNvY2tGZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisgICAgaWYgKG1Tb2NrRmQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogc29ja2V0KCkgZmFpbGVkLCBtU29ja0ZkPSVkLCBlcnJubz0lZCIsIF9fRlVOQ1RJT05fXywgbVNvY2tGZCwgZXJybm8pOworICAgICAgICBtU29ja0ZkID0gLTE7CisgICAgICAgIHJldHVybiAtZXJybm87CisgICAgfQorCisgICAgbWVtc2V0KCZzZXJ2QWRkciwgMCwgc2l6ZW9mKHNlcnZBZGRyKSk7CisgICAgc2VydkFkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7CisgICAgc2VydkFkZHIuc2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKKyAgICBzZXJ2QWRkci5zaW5fcG9ydCA9IGh0b25zKERFQlVHX1NPQ0tFVCk7CisKKyAgICByZXRWYWwgPSBiaW5kKG1Tb2NrRmQsIHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyKj4oJnNlcnZBZGRyKSwgc2l6ZW9mKHNlcnZBZGRyKSk7CisgICAgaWYocmV0VmFsIDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IEVycm9yIG9uIGJpbmRpbmc6IHJldFZhbD0lZCwgZXJybm89JWQiLCBfX0ZVTkNUSU9OX18sIHJldFZhbCwgZXJybm8pOworICAgICAgICBjbG9zZShtU29ja0ZkKTsKKyAgICAgICAgbVNvY2tGZCA9IC0xOworICAgICAgICByZXR1cm4gLWVycm5vOworICAgIH0KKworICAgIGxpc3RlbihtU29ja0ZkLCAxKTsKKworICAgIC8vIFNldCB0aGUgc29ja2V0IHRvIGJlIG5vbi1ibG9ja2luZyBzbyB3ZSBjYW4gcG9sbCBpdCBjb250aW5vdW91c2x5CisgICAgZmNudGwobVNvY2tGZCwgRl9TRVRGTCwgT19OT05CTE9DSyk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RkOjp2ZWN0b3I8dWludDhfdD4gU29ja2V0Q29tbTo6cmVhZCgpIHsKKyAgICBpbnQzMl90IG1zZ1NpemU7CisgICAgaW50IG51bUJ5dGVzID0gMDsKKworICAgIC8vIFRoaXMgaXMgYSB2YXJpYWJsZSBsZW5ndGggbWVzc2FnZS4KKyAgICAvLyBSZWFkIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcnggb3ZlciB0aGUgc29ja2V0CisgICAgbnVtQnl0ZXMgPSA6OnJlYWQobUN1clNvY2tGZCwgJm1zZ1NpemUsIHNpemVvZihtc2dTaXplKSk7CisgICAgbXNnU2l6ZSA9IG50b2hsKG1zZ1NpemUpOworCisgICAgaWYgKG51bUJ5dGVzICE9IHNpemVvZihtc2dTaXplKSkgeworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiBjb25uZWN0aW9uIGlzIGNsb3NlZAorICAgICAgICBBTE9HRCgiJXM6IG51bUJ5dGVzPSVkLCBleHBlY3RlZD00IiwgX19GVU5DVElPTl9fLCBudW1CeXRlcyk7CisgICAgICAgIEFMT0dEKCIlczogQ29ubmVjdGlvbiB0ZXJtaW5hdGVkIG9uIHNvY2tldCAlZCIsIF9fRlVOQ1RJT05fXywgbUN1clNvY2tGZCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgICAgICBtQ3VyU29ja0ZkID0gLTE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4oKTsKKyAgICB9CisKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2cgPSBzdGQ6OnZlY3Rvcjx1aW50OF90Pihtc2dTaXplKTsKKworICAgIG51bUJ5dGVzID0gOjpyZWFkKG1DdXJTb2NrRmQsIG1zZy5kYXRhKCksIG1zZ1NpemUpOworCisgICAgaWYgKChudW1CeXRlcyA9PSBtc2dTaXplKSAmJiAobXNnU2l6ZSA+IDApKSB7CisgICAgICAgIC8vIFJlY2VpdmVkIGEgbWVzc2FnZS4KKyAgICAgICAgcmV0dXJuIG1zZzsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiBjb25uZWN0aW9uIGlzIGNsb3NlZAorICAgICAgICBBTE9HRCgiJXM6IG51bUJ5dGVzPSVkLCBtc2dTaXplPSVkIiwgX19GVU5DVElPTl9fLCBudW1CeXRlcywgbXNnU2l6ZSk7CisgICAgICAgIEFMT0dEKCIlczogQ29ubmVjdGlvbiB0ZXJtaW5hdGVkIG9uIHNvY2tldCAlZCIsIF9fRlVOQ1RJT05fXywgbUN1clNvY2tGZCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgICAgICBtQ3VyU29ja0ZkID0gLTE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4oKTsKKyAgICB9Cit9CisKK3ZvaWQgU29ja2V0Q29tbTo6c3RvcCgpIHsKKyAgICBpZiAobUV4aXQgPT0gMCkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICBtRXhpdCA9IDE7CisKKyAgICAgICAgLy8gQ2xvc2UgZW11bGF0b3Igc29ja2V0IGlmIGl0IGlzIG9wZW4KKyAgICAgICAgaWYgKG1DdXJTb2NrRmQgIT0gLTEpIHsKKyAgICAgICAgICAgIGNsb3NlKG1DdXJTb2NrRmQpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1Tb2NrRmQgIT0gLTEpIHsKKyAgICAgICAgICAgIGNsb3NlKG1Tb2NrRmQpOworICAgICAgICAgICAgbVNvY2tGZCA9IC0xOworICAgICAgICB9CisgICAgfQorfQorCitpbnQgU29ja2V0Q29tbTo6d3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBNU0dfSEVBREVSX0xFTiA9IDQ7CisgICAgaW50IHJldFZhbCA9IDA7CisgICAgdW5pb24geworICAgICAgICB1aW50MzJfdCBtc2dMZW47CisgICAgICAgIHVpbnQ4X3QgbXNnTGVuQnl0ZXNbTVNHX0hFQURFUl9MRU5dOworICAgIH07CisKKyAgICAvLyBQcmVwYXJlIGhlYWRlciBmb3IgdGhlIG1lc3NhZ2UKKyAgICBtc2dMZW4gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGF0YS5zaXplKCkpOworICAgIG1zZ0xlbiA9IGh0b25sKG1zZ0xlbik7CisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIGlmIChtQ3VyU29ja0ZkICE9IC0xKSB7CisgICAgICAgIHJldFZhbCA9IDo6d3JpdGUobUN1clNvY2tGZCwgbXNnTGVuQnl0ZXMsIE1TR19IRUFERVJfTEVOKTsKKworICAgICAgICBpZiAocmV0VmFsID09IE1TR19IRUFERVJfTEVOKSB7CisgICAgICAgICAgICByZXRWYWwgPSA6OndyaXRlKG1DdXJTb2NrRmQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmV0VmFsOworfQorCisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmNmYjI5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uaApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfU29ja2V0Q29tbV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfU29ja2V0Q29tbV9IXworCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgIkNvbW1CYXNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLyoqCisgKiBTb2NrZXRDb21tIG9wZW5zIGEgc29ja2V0IHZpYSBhZGIncyBUQ1AgcG9ydCBmb3J3YXJkaW5nIHRvIGVuYWJsZSBhIEhvc3QgUEMgdG8gY29ubmVjdCB0bworICogdGhlIFZlaGljbGVIQUwuCisgKi8KK2NsYXNzIFNvY2tldENvbW0gOiBwdWJsaWMgQ29tbUJhc2UgeworcHVibGljOgorICAgIFNvY2tldENvbW0oKTsKKyAgICB2aXJ0dWFsIH5Tb2NrZXRDb21tKCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29ubmVjdGlvbiB0byB0aGUgb3RoZXIgc2lkZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgZmQgb3Igc29ja2V0IG51bWJlciBpZiBjb25uZWN0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICogICAgICAgICAgICAgIE90aGVyd2lzZSwgcmV0dXJucyAtMSBpZiBubyBjb25uZWN0aW9uIGlzIGF2YWlsYmxlLgorICAgICAqLworICAgIGludCBjb25uZWN0KCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBPcGVucyBhIHNvY2tldCBhbmQgYmVnaW5zIGxpc3RlbmluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgMCBvbiBzdWNjZXNzLgorICAgICAqLworICAgIGludCBvcGVuKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBCbG9ja2luZyBjYWxsIHRvIHJlYWQgZGF0YSBmcm9tIHRoZSBjb25uZWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PiBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgcmVjZWl2ZWQgZnJvbSBlbXVsYXRvci4gIFRoaXMgd2lsbCBiZQorICAgICAqICAgICAgICAgICAgICBhbiBlbXB0eSB2ZWN0b3IgaWYgdGhlIGNvbm5lY3Rpb24gd2FzIGNsb3NlZCBvciBzb21lIG90aGVyIGVycm9yIG9jY3VycmVkLgorICAgICAqLworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJlYWQoKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIENsb3NlcyBhIGNvbm5lY3Rpb24gaWYgaXQgaXMgb3Blbi4KKyAgICAgKi8KKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIFRyYW5zbWl0cyBhIHN0cmluZyBvZiBkYXRhIHRvIHRoZSBlbXVsYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhIFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSB0byB0cmFuc21pdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IE51bWJlciBvZiBieXRlcyB0cmFuc21pdHRlZCwgb3IgLTEgaWYgZmFpbGVkLgorICAgICAqLworICAgIGludCB3cml0ZShjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZGF0YSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgaW50IG1DdXJTb2NrRmQ7CisgICAgc3RkOjphdG9taWM8aW50PiBtRXhpdDsKKyAgICBzdGQ6Om11dGV4IG1NdXRleDsKKyAgICBpbnQgbVNvY2tGZDsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1NvY2tldENvbW1fSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhjYjc0MwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuY3BwCkBAIC0wLDAgKzEsMzYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiVmVoaWNsZUVtdWxhdG9yX3YyXzAiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvcHJvcGVydGllcy5oPgorI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmg+CisKKyNpbmNsdWRlICJQaXBlQ29tbS5oIgorI2luY2x1ZGUgIlNvY2tldENvbW0uaCIKKworI2luY2x1ZGUgIlZlaGljbGVFbXVsYXRvci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxDb21tQmFzZT4gQ29tbUZhY3Rvcnk6OmNyZWF0ZSgpIHsKKyAgICBib29sIGlzRW11bGF0b3IgPSBhbmRyb2lkOjpiYXNlOjpHZXRCb29sUHJvcGVydHkoInJvLmtlcm5lbC5xZW11IiwgZmFsc2UpOworCisgICAgaWYgKGlzRW11bGF0b3IpIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGlwZUNvbW0+KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U29ja2V0Q29tbT4oKTsKKyAgICB9Cit9CisKK1ZlaGljbGVFbXVsYXRvcjo6flZlaGljbGVFbXVsYXRvcigpIHsKKyAgICBtRXhpdCA9IHRydWU7ICAgLy8gTm90aWZ5IHRocmVhZCB0byBmaW5pc2ggYW5kIHdhaXQgZm9yIGl0IHRvIHRlcm1pbmF0ZS4KKyAgICBtQ29tbS0+c3RvcCgpOyAgLy8gQ2xvc2UgZW11bGF0b3Igc29ja2V0IGlmIGl0IGlzIG9wZW4uCisgICAgaWYgKG1UaHJlYWQuam9pbmFibGUoKSkgbVRocmVhZC5qb2luKCk7Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpkb1NldFZhbHVlRnJvbUNsaWVudChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlIG1zZzsKKyAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BWYWx1ZSAqdmFsID0gbXNnLmFkZF92YWx1ZSgpOworICAgIHBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKHZhbCwgJnByb3BWYWx1ZSk7CisgICAgbXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OlJFU1VMVF9PSyk7CisgICAgbXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6U0VUX1BST1BFUlRZX0FTWU5DKTsKKyAgICB0eE1zZyhtc2cpOworfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9HZXRDb25maWcoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKSB7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3MgPSBtSGFsLT5saXN0UHJvcGVydGllcygpOworICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcEdldCBnZXRQcm9wID0gcnhNc2cucHJvcCgwKTsKKworICAgIHJlc3BNc2cuc2V0X21zZ190eXBlKGVtdWxhdG9yOjpHRVRfQ09ORklHX1JFU1ApOworICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6RVJST1JfSU5WQUxJRF9QUk9QRVJUWSk7CisKKyAgICBmb3IgKGF1dG8mIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICAgICAgLy8gRmluZCB0aGUgY29uZmlnIHdlIGFyZSBsb29raW5nIGZvcgorICAgICAgICBpZiAoY29uZmlnLnByb3AgPT0gZ2V0UHJvcC5wcm9wKCkpIHsKKyAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcENvbmZpZyogcHJvdG9DZmcgPSByZXNwTXNnLmFkZF9jb25maWcoKTsKKyAgICAgICAgICAgIHBvcHVsYXRlUHJvdG9WZWhpY2xlQ29uZmlnKHByb3RvQ2ZnLCBjb25maWcpOworICAgICAgICAgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpSRVNVTFRfT0spOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpkb0dldENvbmZpZ0FsbChWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgLyogcnhNc2cgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpIHsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlncyA9IG1IYWwtPmxpc3RQcm9wZXJ0aWVzKCk7CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6R0VUX0NPTkZJR19BTExfUkVTUCk7CisgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpSRVNVTFRfT0spOworCisgICAgZm9yIChhdXRvJiBjb25maWcgOiBjb25maWdzKSB7CisgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcENvbmZpZyogcHJvdG9DZmcgPSByZXNwTXNnLmFkZF9jb25maWcoKTsKKyAgICAgICAgcG9wdWxhdGVQcm90b1ZlaGljbGVDb25maWcocHJvdG9DZmcsIGNvbmZpZyk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9HZXRQcm9wZXJ0eShWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgIHsKKyAgICBpbnQzMl90IGFyZWFJZCA9IDA7CisgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wR2V0IGdldFByb3AgPSByeE1zZy5wcm9wKDApOworICAgIGludDMyX3QgcHJvcElkID0gZ2V0UHJvcC5wcm9wKCk7CisgICAgZW11bGF0b3I6OlN0YXR1cyBzdGF0dXMgPSBlbXVsYXRvcjo6RVJST1JfSU5WQUxJRF9QUk9QRVJUWTsKKworICAgIHJlc3BNc2cuc2V0X21zZ190eXBlKGVtdWxhdG9yOjpHRVRfUFJPUEVSVFlfUkVTUCk7CisKKyAgICBpZiAoZ2V0UHJvcC5oYXNfYXJlYV9pZCgpKSB7CisgICAgICAgIGFyZWFJZCA9IGdldFByb3AuYXJlYV9pZCgpOworICAgIH0KKworICAgIHsKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZSByZXF1ZXN0ID0geyAucHJvcCA9IHByb3BJZCwgLmFyZWFJZCA9IGFyZWFJZCB9OworICAgICAgICBTdGF0dXNDb2RlIGhhbFN0YXR1czsKKyAgICAgICAgYXV0byB2YWwgPSBtSGFsLT5nZXQocmVxdWVzdCwgJmhhbFN0YXR1cyk7CisgICAgICAgIGlmICh2YWwgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUqIHByb3RvVmFsID0gcmVzcE1zZy5hZGRfdmFsdWUoKTsKKyAgICAgICAgICAgIHBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKHByb3RvVmFsLCB2YWwuZ2V0KCkpOworICAgICAgICAgICAgc3RhdHVzID0gZW11bGF0b3I6OlJFU1VMVF9PSzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhzdGF0dXMpOworfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9HZXRQcm9wZXJ0eUFsbChWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgLyogcnhNc2cgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgIHsKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6R0VUX1BST1BFUlRZX0FMTF9SRVNQKTsKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OlJFU1VMVF9PSyk7CisKKyAgICB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvcCA6IG1IYWwtPmdldEFsbFByb3BlcnRpZXMoKSkgeworICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUqIHByb3RvVmFsID0gcmVzcE1zZy5hZGRfdmFsdWUoKTsKKyAgICAgICAgICAgIHBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKHByb3RvVmFsLCAmcHJvcCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpkb1NldFByb3BlcnR5KFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKSB7CisgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUgcHJvdG9WYWwgPSByeE1zZy52YWx1ZSgwKTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlIHZhbCA9IHsKKyAgICAgICAgLnByb3AgPSBwcm90b1ZhbC5wcm9wKCksCisgICAgICAgIC5hcmVhSWQgPSBwcm90b1ZhbC5hcmVhX2lkKCksCisgICAgICAgIC50aW1lc3RhbXAgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCksCisgICAgfTsKKworICAgIHJlc3BNc2cuc2V0X21zZ190eXBlKGVtdWxhdG9yOjpTRVRfUFJPUEVSVFlfUkVTUCk7CisKKyAgICAvLyBDb3B5IHZhbHVlIGRhdGEgaWYgaXQgaXMgc2V0LiAgVGhpcyBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgY29tcGxleCBkYXRhIHR5cGVzIGlmIG5lZWRlZC4KKyAgICBpZiAocHJvdG9WYWwuaGFzX3N0cmluZ192YWx1ZSgpKSB7CisgICAgICAgIHZhbC52YWx1ZS5zdHJpbmdWYWx1ZSA9IHByb3RvVmFsLnN0cmluZ192YWx1ZSgpLmNfc3RyKCk7CisgICAgfQorCisgICAgaWYgKHByb3RvVmFsLmhhc19ieXRlc192YWx1ZSgpKSB7CisgICAgICAgIHZhbC52YWx1ZS5ieXRlcyA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHsgcHJvdG9WYWwuYnl0ZXNfdmFsdWUoKS5iZWdpbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvVmFsLmJ5dGVzX3ZhbHVlKCkuZW5kKCkgfTsKKyAgICB9CisKKyAgICBpZiAocHJvdG9WYWwuaW50MzJfdmFsdWVzX3NpemUoKSA+IDApIHsKKyAgICAgICAgdmFsLnZhbHVlLmludDMyVmFsdWVzID0gc3RkOjp2ZWN0b3I8aW50MzJfdD4geyBwcm90b1ZhbC5pbnQzMl92YWx1ZXMoKS5iZWdpbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvVmFsLmludDMyX3ZhbHVlcygpLmVuZCgpIH07CisgICAgfQorCisgICAgaWYgKHByb3RvVmFsLmludDY0X3ZhbHVlc19zaXplKCkgPiAwKSB7CisgICAgICAgIHZhbC52YWx1ZS5pbnQ2NFZhbHVlcyA9IHN0ZDo6dmVjdG9yPGludDY0X3Q+IHsgcHJvdG9WYWwuaW50NjRfdmFsdWVzKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1ZhbC5pbnQ2NF92YWx1ZXMoKS5lbmQoKSB9OworICAgIH0KKworICAgIGlmIChwcm90b1ZhbC5mbG9hdF92YWx1ZXNfc2l6ZSgpID4gMCkgeworICAgICAgICB2YWwudmFsdWUuZmxvYXRWYWx1ZXMgPSBzdGQ6OnZlY3RvcjxmbG9hdD4geyBwcm90b1ZhbC5mbG9hdF92YWx1ZXMoKS5iZWdpbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1ZhbC5mbG9hdF92YWx1ZXMoKS5lbmQoKSB9OworICAgIH0KKworICAgIGJvb2wgaGFsUmVzID0gbUhhbC0+c2V0UHJvcGVydHlGcm9tVmVoaWNsZSh2YWwpOworICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhoYWxSZXMgPyBlbXVsYXRvcjo6UkVTVUxUX09LIDogZW11bGF0b3I6OkVSUk9SX0lOVkFMSURfUFJPUEVSVFkpOworfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6dHhNc2coZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgdHhNc2cpIHsKKyAgICBpbnQgbnVtQnl0ZXMgPSB0eE1zZy5CeXRlU2l6ZSgpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1zZyhzdGF0aWNfY2FzdDxzaXplX3Q+KG51bUJ5dGVzKSk7CisKKyAgICBpZiAoIXR4TXNnLlNlcmlhbGl6ZVRvQXJyYXkobXNnLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4obXNnLnNpemUoKSkpKSB7CisgICAgICAgIEFMT0dFKCIlczogU2VyaWFsaXplVG9TdHJpbmcgZmFpbGVkISIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtRXhpdCkgeworICAgICAgICBBTE9HVygiJXM6IHVuYWJsZSB0byB0cmFuc21pdCBhIG1lc3NhZ2UsIGNvbm5lY3Rpb24gY2xvc2VkIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gU2VuZCB0aGUgbWVzc2FnZQorICAgIGludCByZXRWYWwgPSBtQ29tbS0+d3JpdGUobXNnKTsKKyAgICBpZiAocmV0VmFsIDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IEZhaWxlZCB0byB0eCBtZXNzYWdlOiByZXR2YWw9JWQsIGVycm5vPSVkIiwgX19mdW5jX18sIHJldFZhbCwgZXJybm8pOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnBhcnNlUnhQcm90b0J1ZihzdGQ6OnZlY3Rvcjx1aW50OF90PiYgbXNnKSB7CisgICAgZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSByeE1zZzsKKyAgICBlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlIHJlc3BNc2c7CisKKyAgICBpZiAocnhNc2cuUGFyc2VGcm9tQXJyYXkobXNnLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4obXNnLnNpemUoKSkpKSB7CisgICAgICAgIHN3aXRjaCAocnhNc2cubXNnX3R5cGUoKSkgeworICAgICAgICAgICAgY2FzZSBlbXVsYXRvcjo6R0VUX0NPTkZJR19DTUQ6CisgICAgICAgICAgICAgICAgZG9HZXRDb25maWcocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlbXVsYXRvcjo6R0VUX0NPTkZJR19BTExfQ01EOgorICAgICAgICAgICAgICAgIGRvR2V0Q29uZmlnQWxsKHJ4TXNnLCByZXNwTXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OkdFVF9QUk9QRVJUWV9DTUQ6CisgICAgICAgICAgICAgICAgZG9HZXRQcm9wZXJ0eShyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpHRVRfUFJPUEVSVFlfQUxMX0NNRDoKKyAgICAgICAgICAgICAgICBkb0dldFByb3BlcnR5QWxsKHJ4TXNnLCByZXNwTXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OlNFVF9QUk9QRVJUWV9DTUQ6CisgICAgICAgICAgICAgICAgZG9TZXRQcm9wZXJ0eShyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFMT0dXKCIlczogVW5rbm93biBtZXNzYWdlIHJlY2VpdmVkLCB0eXBlID0gJWQiLCBfX2Z1bmNfXywgcnhNc2cubXNnX3R5cGUoKSk7CisgICAgICAgICAgICAgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpFUlJPUl9VTklNUExFTUVOVEVEX0NNRCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZW5kIHRoZSByZXBseQorICAgICAgICB0eE1zZyhyZXNwTXNnKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiJXM6IFBhcnNlRnJvbVN0cmluZygpIGZhaWxlZC4gbXNnU2l6ZT0lZCIsIF9fZnVuY19fLCBzdGF0aWNfY2FzdDxpbnQ+KG1zZy5zaXplKCkpKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpwb3B1bGF0ZVByb3RvVmVoaWNsZUNvbmZpZyhlbXVsYXRvcjo6VmVoaWNsZVByb3BDb25maWcqIHByb3RvQ2ZnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjZmcpIHsKKyAgICBwcm90b0NmZy0+c2V0X3Byb3AoY2ZnLnByb3ApOworICAgIHByb3RvQ2ZnLT5zZXRfYWNjZXNzKHRvSW50KGNmZy5hY2Nlc3MpKTsKKyAgICBwcm90b0NmZy0+c2V0X2NoYW5nZV9tb2RlKHRvSW50KGNmZy5jaGFuZ2VNb2RlKSk7CisgICAgcHJvdG9DZmctPnNldF92YWx1ZV90eXBlKHRvSW50KGdldFByb3BUeXBlKGNmZy5wcm9wKSkpOworCisgICAgaWYgKCFpc0dsb2JhbFByb3AoY2ZnLnByb3ApKSB7CisgICAgICAgIHByb3RvQ2ZnLT5zZXRfc3VwcG9ydGVkX2FyZWFzKGNmZy5zdXBwb3J0ZWRBcmVhcyk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBjb25maWdFbGVtZW50IDogY2ZnLmNvbmZpZ0FycmF5KSB7CisgICAgICAgIHByb3RvQ2ZnLT5hZGRfY29uZmlnX2FycmF5KGNvbmZpZ0VsZW1lbnQpOworICAgIH0KKworICAgIGlmIChjZmcuY29uZmlnU3RyaW5nLnNpemUoKSA+IDApIHsKKyAgICAgICAgcHJvdG9DZmctPnNldF9jb25maWdfc3RyaW5nKGNmZy5jb25maWdTdHJpbmcuY19zdHIoKSwgY2ZnLmNvbmZpZ1N0cmluZy5zaXplKCkpOworICAgIH0KKworICAgIC8vIFBvcHVsYXRlIHRoZSBtaW4vbWF4IHZhbHVlcyBiYXNlZCBvbiBwcm9wZXJ0eSB0eXBlCisgICAgc3dpdGNoIChnZXRQcm9wVHlwZShjZmcucHJvcCkpIHsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkc6CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6Qk9PTEVBTjoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMl9WRUM6CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVRfVkVDOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJZVEVTOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVg6CisgICAgICAgICAgICAvLyBEbyBub3RoaW5nLiAgVGhlc2UgdHlwZXMgZG9uJ3QgaGF2ZSBtaW4vbWF4IHZhbHVlcworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQ6CisgICAgICAgICAgICBpZiAoY2ZnLmFyZWFDb25maWdzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZUFyZWFDb25maWcqIGFDZmcgPSBwcm90b0NmZy0+YWRkX2FyZWFfY29uZmlncygpOworICAgICAgICAgICAgICAgIGFDZmctPnNldF9taW5faW50NjRfdmFsdWUoY2ZnLmFyZWFDb25maWdzWzBdLm1pbkludDY0VmFsdWUpOworICAgICAgICAgICAgICAgIGFDZmctPnNldF9tYXhfaW50NjRfdmFsdWUoY2ZnLmFyZWFDb25maWdzWzBdLm1heEludDY0VmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQ6CisgICAgICAgICAgICBpZiAoY2ZnLmFyZWFDb25maWdzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZUFyZWFDb25maWcqIGFDZmcgPSBwcm90b0NmZy0+YWRkX2FyZWFfY29uZmlncygpOworICAgICAgICAgICAgICAgIGFDZmctPnNldF9taW5fZmxvYXRfdmFsdWUoY2ZnLmFyZWFDb25maWdzWzBdLm1pbkZsb2F0VmFsdWUpOworICAgICAgICAgICAgICAgIGFDZmctPnNldF9tYXhfZmxvYXRfdmFsdWUoY2ZnLmFyZWFDb25maWdzWzBdLm1heEZsb2F0VmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzI6CisgICAgICAgICAgICBpZiAoY2ZnLmFyZWFDb25maWdzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZUFyZWFDb25maWcqIGFDZmcgPSBwcm90b0NmZy0+YWRkX2FyZWFfY29uZmlncygpOworICAgICAgICAgICAgICAgIGFDZmctPnNldF9taW5faW50MzJfdmFsdWUoY2ZnLmFyZWFDb25maWdzWzBdLm1pbkludDMyVmFsdWUpOworICAgICAgICAgICAgICAgIGFDZmctPnNldF9tYXhfaW50MzJfdmFsdWUoY2ZnLmFyZWFDb25maWdzWzBdLm1heEludDMyVmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HVygiJXM6IFVua25vd24gcHJvcGVydHkgdHlwZTogIDB4JXgiLCBfX2Z1bmNfXywgdG9JbnQoZ2V0UHJvcFR5cGUoY2ZnLnByb3ApKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBwcm90b0NmZy0+c2V0X21pbl9zYW1wbGVfcmF0ZShjZmcubWluU2FtcGxlUmF0ZSk7CisgICAgcHJvdG9DZmctPnNldF9tYXhfc2FtcGxlX3JhdGUoY2ZnLm1heFNhbXBsZVJhdGUpOworfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6cG9wdWxhdGVQcm90b1ZlaGljbGVQcm9wVmFsdWUoZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUqIHByb3RvVmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIHZhbCkgeworICAgIHByb3RvVmFsLT5zZXRfcHJvcCh2YWwtPnByb3ApOworICAgIHByb3RvVmFsLT5zZXRfdmFsdWVfdHlwZSh0b0ludChnZXRQcm9wVHlwZSh2YWwtPnByb3ApKSk7CisgICAgcHJvdG9WYWwtPnNldF90aW1lc3RhbXAodmFsLT50aW1lc3RhbXApOworICAgIHByb3RvVmFsLT5zZXRfYXJlYV9pZCh2YWwtPmFyZWFJZCk7CisKKyAgICAvLyBDb3B5IHZhbHVlIGRhdGEgaWYgaXQgaXMgc2V0LgorICAgIC8vICAtIGZvciBieXRlcyBhbmQgc3RyaW5ncywgdGhpcyBpcyBpbmRpY2F0ZWQgYnkgc2l6ZSA+IDAKKyAgICAvLyAgLSBmb3IgaW50MzIsIGludDY0LCBhbmQgZmxvYXQsIGNvcHkgdGhlIHZhbHVlcyBpZiB2ZWN0b3JzIGhhdmUgZGF0YQorICAgIGlmICh2YWwtPnZhbHVlLnN0cmluZ1ZhbHVlLnNpemUoKSA+IDApIHsKKyAgICAgICAgcHJvdG9WYWwtPnNldF9zdHJpbmdfdmFsdWUodmFsLT52YWx1ZS5zdHJpbmdWYWx1ZS5jX3N0cigpLCB2YWwtPnZhbHVlLnN0cmluZ1ZhbHVlLnNpemUoKSk7CisgICAgfQorCisgICAgaWYgKHZhbC0+dmFsdWUuYnl0ZXMuc2l6ZSgpID4gMCkgeworICAgICAgICBwcm90b1ZhbC0+c2V0X2J5dGVzX3ZhbHVlKHZhbC0+dmFsdWUuYnl0ZXMuZGF0YSgpLCB2YWwtPnZhbHVlLmJ5dGVzLnNpemUoKSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBpbnQzMlZhbHVlIDogdmFsLT52YWx1ZS5pbnQzMlZhbHVlcykgeworICAgICAgICBwcm90b1ZhbC0+YWRkX2ludDMyX3ZhbHVlcyhpbnQzMlZhbHVlKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGludDY0VmFsdWUgOiB2YWwtPnZhbHVlLmludDY0VmFsdWVzKSB7CisgICAgICAgIHByb3RvVmFsLT5hZGRfaW50NjRfdmFsdWVzKGludDY0VmFsdWUpOworICAgIH0KKworICAgIGZvciAoYXV0byYgZmxvYXRWYWx1ZSA6IHZhbC0+dmFsdWUuZmxvYXRWYWx1ZXMpIHsKKyAgICAgICAgcHJvdG9WYWwtPmFkZF9mbG9hdF92YWx1ZXMoZmxvYXRWYWx1ZSk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6cnhNc2coKSB7CisgICAgd2hpbGUgKCFtRXhpdCkgeworICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2cgPSBtQ29tbS0+cmVhZCgpOworCisgICAgICAgIGlmIChtc2cuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgLy8gUmVjZWl2ZWQgYSBtZXNzYWdlLgorICAgICAgICAgICAgcGFyc2VSeFByb3RvQnVmKG1zZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiBjb25uZWN0aW9uIGlzIGNsb3NlZAorICAgICAgICAgICAgQUxPR0QoIiVzOiBtc2dTaXplPSV6dSIsIF9fZnVuY19fLCBtc2cuc2l6ZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6cnhUaHJlYWQoKSB7CisgICAgaWYgKG1FeGl0KSByZXR1cm47CisKKyAgICBpbnQgcmV0VmFsID0gbUNvbW0tPm9wZW4oKTsKKyAgICBpZiAocmV0VmFsICE9IDApIG1FeGl0ID0gdHJ1ZTsKKworICAgIC8vIENvbW1zIGFyZSBwcm9wZXJseSBvcGVuZWQKKyAgICB3aGlsZSAoIW1FeGl0KSB7CisgICAgICAgIHJldFZhbCA9IG1Db21tLT5jb25uZWN0KCk7CisKKyAgICAgICAgaWYgKHJldFZhbCA+PSAwKSB7CisgICAgICAgICAgICByeE1zZygpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgZXZlcnkgMTAwbXMgZm9yIGEgbmV3IGNvbm5lY3Rpb24KKyAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAwKSk7CisgICAgfQorfQorCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYThjZmUyCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5oCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfVmVoaWNsZUhhbEVtdWxhdG9yX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9WZWhpY2xlSGFsRW11bGF0b3JfSF8KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlSGFsLmgiCisKKyNpbmNsdWRlICJDb21tQmFzZS5oIgorI2luY2x1ZGUgIlZlaGljbGVIYWxQcm90by5wYi5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKK2NsYXNzIFZlaGljbGVFbXVsYXRvcjsgIC8vIEZvcndhcmQgZGVjbGFyYXRpb24uCisKKy8qKiBFeHRlbnNpb24gb2YgVmVoaWNsZUhhbCB0aGF0IHVzZWQgYnkgVmVoaWNsZUVtdWxhdG9yLiAqLworY2xhc3MgRW11bGF0ZWRWZWhpY2xlSGFsSWZhY2UgOiBwdWJsaWMgVmVoaWNsZUhhbCB7CitwdWJsaWM6CisgICAgdmlydHVhbCBib29sIHNldFByb3BlcnR5RnJvbVZlaGljbGUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiBnZXRBbGxQcm9wZXJ0aWVzKCkgY29uc3QgPSAwOworCisgICAgdm9pZCByZWdpc3RlckVtdWxhdG9yKFZlaGljbGVFbXVsYXRvciogZW11bGF0b3IpIHsKKyAgICAgICAgQUxPR0koIiVzLCBlbXVsYXRvcjogJXAiLCBfX2Z1bmNfXywgZW11bGF0b3IpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtRW11bGF0b3JMb2NrKTsKKyAgICAgICAgbUVtdWxhdG9yID0gZW11bGF0b3I7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgVmVoaWNsZUVtdWxhdG9yKiBnZXRFbXVsYXRvck9yRGllKCkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtRW11bGF0b3JMb2NrKTsKKyAgICAgICAgaWYgKG1FbXVsYXRvciA9PSBudWxscHRyKSBhYm9ydCgpOworICAgICAgICByZXR1cm4gbUVtdWxhdG9yOworICAgIH0KKworcHJpdmF0ZToKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUVtdWxhdG9yTG9jazsKKyAgICBWZWhpY2xlRW11bGF0b3IqIG1FbXVsYXRvcjsKK307CisKK3N0cnVjdCBDb21tRmFjdG9yeSB7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDb21tQmFzZT4gY3JlYXRlKCk7Cit9OworCisvKioKKyAqIEVtdWxhdGVzIHZlaGljbGUgYnkgcHJvdmlkaW5nIGNvbnRyb2xsaW5nIGludGVyZmFjZSBmcm9tIGhvc3Qgc2lkZSBlaXRoZXIgdGhyb3VnaCBBREIgb3IgUGlwZS4KKyAqLworY2xhc3MgVmVoaWNsZUVtdWxhdG9yIHsKK3B1YmxpYzoKKyAgICBWZWhpY2xlRW11bGF0b3IoRW11bGF0ZWRWZWhpY2xlSGFsSWZhY2UqIGhhbCwKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1CYXNlPiBjb21tID0gQ29tbUZhY3Rvcnk6OmNyZWF0ZSgpKQorICAgICAgICAgICAgOiBtSGFsIHsgaGFsIH0sCisgICAgICAgICAgICAgIG1Db21tKGNvbW0ucmVsZWFzZSgpKSwKKyAgICAgICAgICAgICAgbVRocmVhZCB7ICZWZWhpY2xlRW11bGF0b3I6OnJ4VGhyZWFkLCB0aGlzfSB7CisgICAgICAgIG1IYWwtPnJlZ2lzdGVyRW11bGF0b3IodGhpcyk7CisgICAgfQorICAgIHZpcnR1YWwgflZlaGljbGVFbXVsYXRvcigpOworCisgICAgdm9pZCBkb1NldFZhbHVlRnJvbUNsaWVudChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpOworCitwcml2YXRlOgorICAgIHVzaW5nIEVtdWxhdG9yTWVzc2FnZSA9IGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2U7CisKKyAgICB2b2lkIGRvR2V0Q29uZmlnKEVtdWxhdG9yTWVzc2FnZSYgcnhNc2csIEVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZyk7CisgICAgdm9pZCBkb0dldENvbmZpZ0FsbChFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLCBFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpOworICAgIHZvaWQgZG9HZXRQcm9wZXJ0eShFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLCBFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpOworICAgIHZvaWQgZG9HZXRQcm9wZXJ0eUFsbChFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLCBFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpOworICAgIHZvaWQgZG9TZXRQcm9wZXJ0eShFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLCBFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpOworICAgIHZvaWQgdHhNc2coZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgdHhNc2cpOworICAgIHZvaWQgcGFyc2VSeFByb3RvQnVmKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBtc2cpOworICAgIHZvaWQgcG9wdWxhdGVQcm90b1ZlaGljbGVDb25maWcoZW11bGF0b3I6OlZlaGljbGVQcm9wQ29uZmlnKiBwcm90b0NmZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjZmcpOworICAgIHZvaWQgcG9wdWxhdGVQcm90b1ZlaGljbGVQcm9wVmFsdWUoZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUqIHByb3RvVmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSogdmFsKTsKKyAgICB2b2lkIHJ4TXNnKCk7CisgICAgdm9pZCByeFRocmVhZCgpOworCitwcml2YXRlOgorICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1FeGl0IHsgZmFsc2UgfTsKKyAgICBFbXVsYXRlZFZlaGljbGVIYWxJZmFjZSogbUhhbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbUJhc2U+IG1Db21tOworICAgIHN0ZDo6dGhyZWFkIG1UaHJlYWQ7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9WZWhpY2xlSGFsRW11bGF0b3JfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9wcm90by9WZWhpY2xlSGFsUHJvdG8ucHJvdG8gYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvcHJvdG8vVmVoaWNsZUhhbFByb3RvLnByb3RvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2NDMzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvcHJvdG8vVmVoaWNsZUhhbFByb3RvLnByb3RvCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworc3ludGF4ID0gInByb3RvMiI7CitvcHRpb24gb3B0aW1pemVfZm9yID0gTElURV9SVU5USU1FOworCitwYWNrYWdlIGVtdWxhdG9yOworCisvLyBDTUQgbWVzc2FnZXMgYXJlIGZyb20gd29ya3N0YXRpb24gLS0+IFZIQUwKKy8vIFJFU1AgbWVzc2FnZXMgYXJlIGZyb20gVkhBTCAtLT4gd29ya3N0YXRpb24KK2VudW0gTXNnVHlwZSB7CisgICAgR0VUX0NPTkZJR19DTUQgICAgICAgICAgICAgICAgICAgICAgPSAwOworICAgIEdFVF9DT05GSUdfUkVTUCAgICAgICAgICAgICAgICAgICAgID0gMTsKKyAgICBHRVRfQ09ORklHX0FMTF9DTUQgICAgICAgICAgICAgICAgICA9IDI7CisgICAgR0VUX0NPTkZJR19BTExfUkVTUCAgICAgICAgICAgICAgICAgPSAzOworICAgIEdFVF9QUk9QRVJUWV9DTUQgICAgICAgICAgICAgICAgICAgID0gNDsKKyAgICBHRVRfUFJPUEVSVFlfUkVTUCAgICAgICAgICAgICAgICAgICA9IDU7CisgICAgR0VUX1BST1BFUlRZX0FMTF9DTUQgICAgICAgICAgICAgICAgPSA2OworICAgIEdFVF9QUk9QRVJUWV9BTExfUkVTUCAgICAgICAgICAgICAgID0gNzsKKyAgICBTRVRfUFJPUEVSVFlfQ01EICAgICAgICAgICAgICAgICAgICA9IDg7CisgICAgU0VUX1BST1BFUlRZX1JFU1AgICAgICAgICAgICAgICAgICAgPSA5OworICAgIFNFVF9QUk9QRVJUWV9BU1lOQyAgICAgICAgICAgICAgICAgID0gMTA7Cit9CitlbnVtIFN0YXR1cyB7CisgICAgUkVTVUxUX09LICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwOworICAgIEVSUk9SX1VOS05PV04gICAgICAgICAgICAgICAgICAgICAgID0gMTsKKyAgICBFUlJPUl9VTklNUExFTUVOVEVEX0NNRCAgICAgICAgICAgICA9IDI7CisgICAgRVJST1JfSU5WQUxJRF9QUk9QRVJUWSAgICAgICAgICAgICAgPSAzOworICAgIEVSUk9SX0lOVkFMSURfQVJFQV9JRCAgICAgICAgICAgICAgID0gNDsKKyAgICBFUlJPUl9QUk9QRVJUWV9VTklOSVRJQUxJWkVEICAgICAgICA9IDU7CisgICAgRVJST1JfV1JJVEVfT05MWV9QUk9QRVJUWSAgICAgICAgICAgPSA2OworICAgIEVSUk9SX01FTU9SWV9BTExPQ19GQUlMRUQgICAgICAgICAgID0gNzsKKyAgICBFUlJPUl9JTlZBTElEX09QRVJBVElPTiAgICAgICAgICAgICA9IDg7Cit9CisKK21lc3NhZ2UgVmVoaWNsZUFyZWFDb25maWcgeworICAgIHJlcXVpcmVkIGludDMyICBhcmVhX2lkICAgICAgICAgICAgID0gMTsKKyAgICBvcHRpb25hbCBzaW50MzIgbWluX2ludDMyX3ZhbHVlICAgICA9IDI7CisgICAgb3B0aW9uYWwgc2ludDMyIG1heF9pbnQzMl92YWx1ZSAgICAgPSAzOworICAgIG9wdGlvbmFsIHNpbnQ2NCBtaW5faW50NjRfdmFsdWUgICAgID0gNDsKKyAgICBvcHRpb25hbCBzaW50NjQgbWF4X2ludDY0X3ZhbHVlICAgICA9IDU7CisgICAgb3B0aW9uYWwgZmxvYXQgIG1pbl9mbG9hdF92YWx1ZSAgICAgPSA2OworICAgIG9wdGlvbmFsIGZsb2F0ICBtYXhfZmxvYXRfdmFsdWUgICAgID0gNzsKK30KKworbWVzc2FnZSBWZWhpY2xlUHJvcENvbmZpZyB7CisgICAgcmVxdWlyZWQgaW50MzIgICAgICAgICAgICAgcHJvcCAgICAgICAgICAgICAgICA9IDE7CisgICAgb3B0aW9uYWwgaW50MzIgICAgICAgICAgICAgYWNjZXNzICAgICAgICAgICAgICA9IDI7CisgICAgb3B0aW9uYWwgaW50MzIgICAgICAgICAgICAgY2hhbmdlX21vZGUgICAgICAgICA9IDM7CisgICAgb3B0aW9uYWwgaW50MzIgICAgICAgICAgICAgdmFsdWVfdHlwZSAgICAgICAgICA9IDQ7CisgICAgb3B0aW9uYWwgaW50MzIgICAgICAgICAgICAgc3VwcG9ydGVkX2FyZWFzICAgICA9IDU7CisgICAgcmVwZWF0ZWQgVmVoaWNsZUFyZWFDb25maWcgYXJlYV9jb25maWdzICAgICAgICA9IDY7CisgICAgb3B0aW9uYWwgaW50MzIgICAgICAgICAgICAgY29uZmlnX2ZsYWdzICAgICAgICA9IDc7CisgICAgcmVwZWF0ZWQgaW50MzIgICAgICAgICAgICAgY29uZmlnX2FycmF5ICAgICAgICA9IDg7CisgICAgb3B0aW9uYWwgc3RyaW5nICAgICAgICAgICAgY29uZmlnX3N0cmluZyAgICAgICA9IDk7CisgICAgb3B0aW9uYWwgZmxvYXQgICAgICAgICAgICAgbWluX3NhbXBsZV9yYXRlICAgICA9IDEwOworICAgIG9wdGlvbmFsIGZsb2F0ICAgICAgICAgICAgIG1heF9zYW1wbGVfcmF0ZSAgICAgPSAxMTsKK307CisKK21lc3NhZ2UgVmVoaWNsZVByb3BWYWx1ZSB7CisgICAgLy8gY29tbW9uIGRhdGEKKyAgICByZXF1aXJlZCBpbnQzMiAgcHJvcCAgICAgICAgICAgICAgICA9IDE7CisgICAgb3B0aW9uYWwgaW50MzIgIHZhbHVlX3R5cGUgICAgICAgICAgPSAyOworICAgIG9wdGlvbmFsIGludDY0ICB0aW1lc3RhbXAgICAgICAgICAgID0gMzsgICAgLy8gcmVxdWlyZWQgZm9yIHZhbGlkIGRhdGEgZnJvbSBIQUwsIHNraXBwZWQgZm9yIHNldAorCisgICAgLy8gdmFsdWVzCisgICAgb3B0aW9uYWwgaW50MzIgIGFyZWFfaWQgICAgICAgICAgICAgPSA0OworICAgIHJlcGVhdGVkIHNpbnQzMiBpbnQzMl92YWx1ZXMgICAgICAgID0gNTsgICAgLy8gdGhpcyBhbHNvIGNvdmVycyBib29sZWFuIHZhbHVlLgorICAgIHJlcGVhdGVkIHNpbnQ2NCBpbnQ2NF92YWx1ZXMgICAgICAgID0gNjsKKyAgICByZXBlYXRlZCBmbG9hdCAgZmxvYXRfdmFsdWVzICAgICAgICA9IDc7CisgICAgb3B0aW9uYWwgc3RyaW5nIHN0cmluZ192YWx1ZSAgICAgICAgPSA4OworICAgIG9wdGlvbmFsIGJ5dGVzICBieXRlc192YWx1ZSAgICAgICAgID0gOTsKK307CisKKy8vIFRoaXMgc3RydWN0dXJlIGlzIHVzZWQgdG8gbm90aWZ5IHdoYXQgdmFsdWVzIHRvIGdldCBmcm9tIHRoZSBWZWhpY2xlIEhBTAorbWVzc2FnZSBWZWhpY2xlUHJvcEdldCB7CisgICAgcmVxdWlyZWQgaW50MzIgcHJvcCAgICAgICAgICAgICAgICAgPSAxOworICAgIG9wdGlvbmFsIGludDMyIGFyZWFfaWQgICAgICAgICAgICAgID0gMjsKK307CisKK21lc3NhZ2UgRW11bGF0b3JNZXNzYWdlIHsKKyAgICByZXF1aXJlZCBNc2dUeXBlICAgICAgICAgICBtc2dfdHlwZSA9IDE7CisgICAgb3B0aW9uYWwgU3RhdHVzICAgICAgICAgICAgc3RhdHVzICAgPSAyOyAgICAvLyBPbmx5IGZvciBSRVNQIG1lc3NhZ2VzCisgICAgcmVwZWF0ZWQgVmVoaWNsZVByb3BHZXQgICAgcHJvcCAgICAgPSAzOyAgICAvLyBQcm92aWRlZCBmb3IgZ2V0Q29uZmlnLCBnZXRQcm9wZXJ0eSBjb21tYW5kcworICAgIHJlcGVhdGVkIFZlaGljbGVQcm9wQ29uZmlnIGNvbmZpZyAgID0gNDsKKyAgICByZXBlYXRlZCBWZWhpY2xlUHJvcFZhbHVlICB2YWx1ZSAgICA9IDU7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1JlY3VycmVudFRpbWVyX3Rlc3QuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1JlY3VycmVudFRpbWVyX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYzE3YzYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvUmVjdXJyZW50VGltZXJfdGVzdC5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx0aHJlYWQ+CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmgiCisKK25hbWVzcGFjZSB7CisKK3VzaW5nIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kczsKK3VzaW5nIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM7CisKKyNkZWZpbmUgQVNTRVJUX0VRX1dJVEhfVE9MRVJBTkNFKHZhbDEsIHZhbDIsIHRvbGVyYW5jZSkgXAorQVNTRVJUX0xFKHZhbDEgLSB0b2xlcmFuY2UsIHZhbDIpOyBcCitBU1NFUlRfR0UodmFsMSArIHRvbGVyYW5jZSwgdmFsMik7IFwKKworCitURVNUKFJlY3VycmVudFRpbWVyVGVzdCwgb25lSW50ZXJ2YWwpIHsKKyAgICBzdGQ6OmF0b21pYzxpbnQ2NF90PiBjb3VudGVyIHsgMEwgfTsKKyAgICBhdXRvIGNvdW50ZXJSZWYgPSBzdGQ6OnJlZihjb3VudGVyKTsKKyAgICBSZWN1cnJlbnRUaW1lciB0aW1lcihbJmNvdW50ZXJSZWZdKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBjb29raWVzKSB7CisgICAgICAgIEFTU0VSVF9FUSgxdSwgY29va2llcy5zaXplKCkpOworICAgICAgICBBU1NFUlRfRVEoMHhkZWFkLCBjb29raWVzLmZyb250KCkpOworICAgICAgICBjb3VudGVyUmVmLmdldCgpKys7CisgICAgfSk7CisKKyAgICB0aW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KG1pbGxpc2Vjb25kcygxKSwgMHhkZWFkKTsKKyAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IobWlsbGlzZWNvbmRzKDEwMCkpOworICAgIEFTU0VSVF9FUV9XSVRIX1RPTEVSQU5DRSgxMDAsIGNvdW50ZXIubG9hZCgpLCAyMCk7Cit9CisKK1RFU1QoUmVjdXJyZW50VGltZXJUZXN0LCBtdWx0aXBsZUludGVydmFscykgeworICAgIHN0ZDo6YXRvbWljPGludDY0X3Q+IGNvdW50ZXIxbXMgeyAwTCB9OworICAgIHN0ZDo6YXRvbWljPGludDY0X3Q+IGNvdW50ZXI1bXMgeyAwTCB9OworICAgIGF1dG8gY291bnRlcjFtc1JlZiA9IHN0ZDo6cmVmKGNvdW50ZXIxbXMpOworICAgIGF1dG8gY291bnRlcjVtc1JlZiA9IHN0ZDo6cmVmKGNvdW50ZXI1bXMpOworICAgIFJlY3VycmVudFRpbWVyIHRpbWVyKAorICAgICAgICAgICAgWyZjb3VudGVyMW1zUmVmLCAmY291bnRlcjVtc1JlZl0oY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIGNvb2tpZXMpIHsKKyAgICAgICAgZm9yIChpbnQzMl90IGNvb2tpZSA6IGNvb2tpZXMpIHsKKyAgICAgICAgICAgIGlmIChjb29raWUgPT0gMHhkZWFkKSB7CisgICAgICAgICAgICAgICAgY291bnRlcjFtc1JlZi5nZXQoKSsrOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb29raWUgPT0gMHhiZWVmKSB7CisgICAgICAgICAgICAgICAgY291bnRlcjVtc1JlZi5nZXQoKSsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHRpbWVyLnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQobWlsbGlzZWNvbmRzKDEpLCAweGRlYWQpOworICAgIHRpbWVyLnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQobWlsbGlzZWNvbmRzKDUpLCAweGJlZWYpOworCisgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKG1pbGxpc2Vjb25kcygxMDApKTsKKyAgICBBU1NFUlRfRVFfV0lUSF9UT0xFUkFOQ0UoMTAwLCBjb3VudGVyMW1zLmxvYWQoKSwgMjApOworICAgIEFTU0VSVF9FUV9XSVRIX1RPTEVSQU5DRSgyMCwgY291bnRlcjVtcy5sb2FkKCksIDUpOworfQorCit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvU3Vic2NyaXB0aW9uTWFuYWdlcl90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9TdWJzY3JpcHRpb25NYW5hZ2VyX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ODhkZDYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvU3Vic2NyaXB0aW9uTWFuYWdlcl90ZXN0LmNwcApAQCAtMCwwICsxLDIzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1N1YnNjcmlwdGlvbk1hbmFnZXIuaCIKKworI2luY2x1ZGUgIlZlaGljbGVIYWxUZXN0VXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIHsKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDo6cGxhY2Vob2xkZXJzOworCitjbGFzcyBTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHVibGljOgorICAgIFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0KCkgOiBtYW5hZ2VyKChbdGhpc10oaW50IHgpIHsgb25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCh4KTsgfSkpIHt9CisKKyAgICBTdWJzY3JpcHRpb25NYW5hZ2VyIG1hbmFnZXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQzMl90IFBST1AxID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQzMl90IFBST1AyID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpOworCisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gY2IxID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworICAgIHNwPElWZWhpY2xlQ2FsbGJhY2s+IGNiMiA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBjYjMgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkgPSAtMTsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBzdWJzY3JUb1Byb3AxID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMSwKKyAgICAgICAgICAgIC52ZWhpY2xlQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgIH07CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBzdWJzY3JUb1Byb3AyID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMiwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gc3Vic2NyVG9Qcm9wMWFuZDIgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AxLAorICAgICAgICAgICAgLnZlaGljbGVBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UCisgICAgICAgIH0sCisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AyLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgIH07CisKKyAgICBzdGF0aWMgc3RkOjpsaXN0PHNwPElWZWhpY2xlQ2FsbGJhY2s+PiBleHRyYWN0Q2FsbGJhY2tzKAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+JiBjbGllbnRzKSB7CisgICAgICAgIHN0ZDo6bGlzdDxzcDxJVmVoaWNsZUNhbGxiYWNrPj4gY2FsbGJhY2tzOworICAgICAgICBmb3IgKGF1dG8gYyA6IGNsaWVudHMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrcy5wdXNoX2JhY2soYy0+Z2V0Q2FsbGJhY2soKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrczsKKyAgICB9CisKKyAgICBzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gY2xpZW50c1RvUHJvcDEoKSB7CisgICAgICAgIHJldHVybiBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKFBST1AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6REVGQVVMVCk7CisgICAgfQorCisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IGNsaWVudHNUb1Byb3AyKCkgeworICAgICAgICByZXR1cm4gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cyhQUk9QMiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIH0KKworICAgIHZvaWQgb25Qcm9wZXJ0eVVuc3Vic2NyaWJlZChpbnQgcHJvcGVydHlJZCkgeworICAgICAgICAvLyBDYWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gY2xpZW50cyB3aG8gc3Vic2NyaWJlZCB0byBwYXJ0aWN1bGFyIHByb3BlcnR5LiBUaGlzIGNhbiBoYXBwZW4KKyAgICAgICAgLy8gYmVjYXVzZSBvZiBleHBsaWN0IHVuc3Vic2NyaWJlIGNhbGwgb3Igd2hlbiBjbGllbnQgKElWZWhpY2xlQ2FsbGJhY2spIHdhcyBkaXNjb25uZWN0ZWQuCisgICAgICAgIGxhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eSA9IHByb3BlcnR5SWQ7CisgICAgfQorCisgICAgdm9pZCBhc3NlcnRPblByb3BlcnR5VW5zdWJzY3JpYmVkTm90Q2FsbGVkKCkgeworICAgICAgICBBU1NFUlRfRVEoLTEsIGxhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eSk7CisgICAgfQorCisgICAgdm9pZCBhc3NlcnRMYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkoaW50IGV4cGVjdGVkUHJvcGVydHlJZCkgeworICAgICAgICBBU1NFUlRfRVEoZXhwZWN0ZWRQcm9wZXJ0eUlkLCBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkpOworICAgICAgICBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkgPSAtMTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgaW50IGxhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eTsKK307CisKKworVEVTVF9GKFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0LCBtdWx0aXBsZUNsaWVudHMpIHsKKyAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4gdXBkYXRlZE9wdGlvbnM7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDEsIGNiMSwgc3Vic2NyVG9Qcm9wMSwgJnVwZGF0ZWRPcHRpb25zKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDIsIGNiMiwgc3Vic2NyVG9Qcm9wMSwgJnVwZGF0ZWRPcHRpb25zKSk7CisKKyAgICBhdXRvIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgUFJPUDEsCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IxLCBjYjJ9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHMpKTsKK30KKworVEVTVF9GKFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0LCBuZWdhdGl2ZUNhc2VzKSB7CisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHN1YnNjclRvUHJvcDEsICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgLy8gV3Jvbmcgem9uZQorICAgIGF1dG8gY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICBQUk9QMSwKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzJfTEVGVCksCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UKTsKKyAgICBBU1NFUlRfVFJVRShjbGllbnRzLmVtcHR5KCkpOworCisgICAgLy8gV3JvbmcgcHJvcAorICAgIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpBUF9QT1dFUl9CT09UVVBfUkVBU09OKSwKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UKTsKKyAgICBBU1NFUlRfVFJVRShjbGllbnRzLmVtcHR5KCkpOworCisgICAgLy8gV3JvbmcgZmxhZworICAgIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgUFJPUDEsCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OlNFVF9DQUxMKTsKKyAgICBBU1NFUlRfVFJVRShjbGllbnRzLmVtcHR5KCkpOworfQorCitURVNUX0YoU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QsIG11bGlwbGVTdWJzY3JpcHRpb25zKSB7CisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHN1YnNjclRvUHJvcDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgYXV0byBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIFBST1AxLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICBBU1NFUlRfRVEoKHNpemVfdCkgMSwgY2xpZW50cy5zaXplKCkpOworICAgIEFTU0VSVF9FUShjYjEsIGNsaWVudHMuZnJvbnQoKS0+Z2V0Q2FsbGJhY2soKSk7CisKKyAgICAvLyBTYW1lIHByb3BlcnR5LCBidXQgZGlmZmVyZW50IHpvbmUsIHRvIG1ha2Ugc3VyZSB3ZSBkaWRuJ3QgdW5zdWJzY3JpYmUKKyAgICAvLyBmcm9tIHByZXZpb3VzIHpvbmUuCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDEsIGNiMSwgeworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgICAgICAucHJvcElkID0gUFJPUDEsCisgICAgICAgICAgICAgICAgLnZlaGljbGVBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzIpLAorICAgICAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpERUZBVUxUCisgICAgICAgICAgICB9CisgICAgICAgIH0sICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoUFJPUDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6REVGQVVMVCk7CisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMX0sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50cykpOworCisgICAgY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoUFJPUDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjF9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHMpKTsKK30KKworVEVTVF9GKFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0LCB1bnN1YnNjcmliZSkgeworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCBzdWJzY3JUb1Byb3AxLCAmdXBkYXRlZE9wdGlvbnMpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMiwgY2IyLCBzdWJzY3JUb1Byb3AyLCAmdXBkYXRlZE9wdGlvbnMpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMywgY2IzLCBzdWJzY3JUb1Byb3AxYW5kMiwgJnVwZGF0ZWRPcHRpb25zKSk7CisKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7IGNiMSwgY2IzIH0sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDEoKSkpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjIsIGNiM30sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDIoKSkpOworCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgxLCBQUk9QMSk7CisgICAgYXNzZXJ0T25Qcm9wZXJ0eVVuc3Vic2NyaWJlZE5vdENhbGxlZCgpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjN9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AxKCkpKTsKKworICAgIC8vIE1ha2Ugc3VyZSBub3RoaW5nIGNoYW5nZWQgaW4gUFJPUDIgc28gZmFyLgorICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjIsIGNiM30sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDIoKSkpOworCisgICAgLy8gTm8gb25lIHN1YnNjcmliZWQgdG8gUFJPUDEsIHN1YnNjcmlwdGlvbiBmb3IgUFJPUDIgaXMgbm90IGFmZmVjdGVkLgorICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMywgUFJPUDEpOworICAgIGFzc2VydExhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eShQUk9QMSk7CisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMiwgY2IzfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMigpKSk7CisKKyAgICBtYW5hZ2VyLnVuc3Vic2NyaWJlKDMsIFBST1AyKTsKKyAgICBhc3NlcnRPblByb3BlcnR5VW5zdWJzY3JpYmVkTm90Q2FsbGVkKCk7CisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMn0sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDIoKSkpOworCisgICAgLy8gVGhlIGxhc3QgY2xpZW50IHVuc3Vic2NyaWJlZCBmcm9tIHRoaXMgcHJvcGVydHkuCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgyLCBQUk9QMik7CisgICAgYXNzZXJ0TGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KFBST1AyKTsKKworICAgIC8vIE5vIG9uZSBzdWJzY3JpYmVkIGFueW1vcmUKKyAgICBtYW5hZ2VyLnVuc3Vic2NyaWJlKDEsIFBST1AxKTsKKyAgICBhc3NlcnRMYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkoUFJPUDEpOworfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsTWFuYWdlcl90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsTWFuYWdlcl90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODY0ZDVkCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxNYW5hZ2VyX3Rlc3QuY3BwCkBAIC0wLDAgKzEsNDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbWFjcm9zLmg+CisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaCIKKworI2luY2x1ZGUgIlZlaGljbGVIYWxUZXN0VXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIHsKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDo6cGxhY2Vob2xkZXJzOworCitjb25zdGV4cHIgY2hhciBrQ2FyTWFrZVtdID0gIkRlZmF1bHQgQ2FyIjsKK2NvbnN0ZXhwciBpbnQga1JldHJpYWJsZVByb3BNb2NrZWRBdHRlbXB0cyA9IDM7CisKK2NsYXNzIE1vY2tlZFZlaGljbGVIYWwgOiBwdWJsaWMgVmVoaWNsZUhhbCB7CitwdWJsaWM6CisgICAgTW9ja2VkVmVoaWNsZUhhbCgpIHsKKyAgICAgICAgbUNvbmZpZ3MuYXNzaWduKHN0ZDo6YmVnaW4oa1ZlaGljbGVQcm9wZXJ0aWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6ZW5kKGtWZWhpY2xlUHJvcGVydGllcykpOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBsaXN0UHJvcGVydGllcygpIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1Db25maWdzOworICAgIH0KKworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgZ2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICBTdGF0dXNDb2RlKiBvdXRTdGF0dXMpIG92ZXJyaWRlIHsKKyAgICAgICAgKm91dFN0YXR1cyA9IFN0YXR1c0NvZGU6Ok9LOworICAgICAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHBWYWx1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IHN0YXRpY19jYXN0PFZlaGljbGVQcm9wZXJ0eT4ocmVxdWVzdGVkUHJvcFZhbHVlLnByb3ApOworICAgICAgICBpbnQzMl90IGFyZWFJZCA9IHJlcXVlc3RlZFByb3BWYWx1ZS5hcmVhSWQ7CisKKyAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkgeworICAgICAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRToKKyAgICAgICAgICAgICAgICBwVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluU3RyaW5nKGtDYXJNYWtlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFk6CisgICAgICAgICAgICAgICAgaWYgKGZ1ZWxDYXBhY2l0eUF0dGVtcHRzTGVmdC0tID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBFbXVsYXRlIHByb3BlcnR5IG5vdCByZWFkeSB5ZXQuCisgICAgICAgICAgICAgICAgICAgICpvdXRTdGF0dXMgPSBTdGF0dXNDb2RlOjpUUllfQUdBSU47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbkZsb2F0KDQyLjQyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcCA9PSBrQ3VzdG9tQ29tcGxleFByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW5Db21wbGV4KCk7CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuaW50MzJWYWx1ZXMgPSBoaWRsX3ZlYzxpbnQzMl90PiB7IDEwLCAyMCB9OworICAgICAgICAgICAgICAgICAgICBwVmFsdWUtPnZhbHVlLmludDY0VmFsdWVzID0gaGlkbF92ZWM8aW50NjRfdD4geyAzMCwgNDAgfTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5mbG9hdFZhbHVlcyA9IGhpZGxfdmVjPGZsb2F0X3Q+IHsgMS4xLCAyLjIgfTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5ieXRlcyA9IGhpZGxfdmVjPHVpbnQ4X3Q+IHsgMSwgMiwgMyB9OworICAgICAgICAgICAgICAgICAgICBwVmFsdWUtPnZhbHVlLnN0cmluZ1ZhbHVlID0ga0Nhck1ha2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhdXRvIGtleSA9IG1ha2VLZXkodG9JbnQocHJvcGVydHkpLCBhcmVhSWQpOworICAgICAgICAgICAgICAgIGlmIChtVmFsdWVzLmNvdW50KGtleSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBBTE9HVygiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW4obVZhbHVlc1trZXldKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgqb3V0U3RhdHVzID09IFN0YXR1c0NvZGU6Ok9LICYmIHBWYWx1ZS5nZXQoKSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBwVmFsdWUtPnByb3AgPSB0b0ludChwcm9wZXJ0eSk7CisgICAgICAgICAgICBwVmFsdWUtPmFyZWFJZCA9IGFyZWFJZDsKKyAgICAgICAgICAgIHBWYWx1ZS0+dGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBWYWx1ZTsKKyAgICB9CisKKyAgICBTdGF0dXNDb2RlIHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIG92ZXJyaWRlIHsKKyAgICAgICAgaWYgKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6TUlSUk9SX0ZPTEQpID09IHByb3BWYWx1ZS5wcm9wCisgICAgICAgICAgICAgICAgJiYgbWlycm9yRm9sZEF0dGVtcHRzTGVmdC0tID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OlRSWV9BR0FJTjsKKyAgICAgICAgfQorCisgICAgICAgIG1WYWx1ZXNbbWFrZUtleShwcm9wVmFsdWUpXSA9IHByb3BWYWx1ZTsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgc3Vic2NyaWJlKGludDMyX3QgLyogcHJvcGVydHkgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAvKiBhcmVhcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAvKiBzYW1wbGVSYXRlICovKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKKyAgICB9CisKKyAgICBTdGF0dXNDb2RlIHVuc3Vic2NyaWJlKGludDMyX3QgLyogcHJvcGVydHkgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworICAgIH0KKworICAgIHZvaWQgc2VuZFByb3BFdmVudChyZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiB2YWx1ZSkgeworICAgICAgICBkb0hhbEV2ZW50KHN0ZDo6bW92ZSh2YWx1ZSkpOworICAgIH0KKworICAgIHZvaWQgc2VuZEhhbEVycm9yKFN0YXR1c0NvZGUgZXJyb3IsIGludDMyX3QgcHJvcGVydHksIGludDMyX3QgYXJlYUlkKSB7CisgICAgICAgIGRvSGFsUHJvcGVydHlTZXRFcnJvcihlcnJvciwgcHJvcGVydHksIGFyZWFJZCk7CisgICAgfQorCitwdWJsaWM6CisgICAgaW50IGZ1ZWxDYXBhY2l0eUF0dGVtcHRzTGVmdCA9IGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHM7CisgICAgaW50IG1pcnJvckZvbGRBdHRlbXB0c0xlZnQgPSBrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzOworCitwcml2YXRlOgorICAgIGludDY0X3QgbWFrZUtleShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2KSBjb25zdCB7CisgICAgICAgIHJldHVybiBtYWtlS2V5KHYucHJvcCwgdi5hcmVhSWQpOworICAgIH0KKworICAgIGludDY0X3QgbWFrZUtleShpbnQzMl90IHByb3AsIGludDMyX3QgYXJlYSkgY29uc3QgeworICAgICAgICByZXR1cm4gKHN0YXRpY19jYXN0PGludDY0X3Q+KHByb3ApIDw8IDMyKSB8IGFyZWE7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBtQ29uZmlnczsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50NjRfdCwgVmVoaWNsZVByb3BWYWx1ZT4gbVZhbHVlczsKK307CisKK2NsYXNzIFZlaGljbGVIYWxNYW5hZ2VyVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVjdGVkOgorICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGhhbC5yZXNldChuZXcgTW9ja2VkVmVoaWNsZUhhbCk7CisgICAgICAgIG1hbmFnZXIucmVzZXQobmV3IFZlaGljbGVIYWxNYW5hZ2VyKGhhbC5nZXQoKSkpOworCisgICAgICAgIG9iamVjdFBvb2wgPSBoYWwtPmdldFZhbHVlUG9vbCgpOworICAgIH0KKworICAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIG1hbmFnZXIucmVzZXQobnVsbHB0cik7CisgICAgICAgIGhhbC5yZXNldChudWxscHRyKTsKKyAgICB9CitwdWJsaWM6CisgICAgdm9pZCBpbnZva2VHZXQoaW50MzJfdCBwcm9wZXJ0eSwgaW50MzJfdCBhcmVhSWQpIHsKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZSByZXF1ZXN0ZWRWYWx1ZSB7fTsKKyAgICAgICAgcmVxdWVzdGVkVmFsdWUucHJvcCA9IHByb3BlcnR5OworICAgICAgICByZXF1ZXN0ZWRWYWx1ZS5hcmVhSWQgPSBhcmVhSWQ7CisKKyAgICAgICAgaW52b2tlR2V0KHJlcXVlc3RlZFZhbHVlKTsKKyAgICB9CisKKyAgICB2b2lkIGludm9rZUdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUpIHsKKyAgICAgICAgYWN0dWFsVmFsdWUgPSBWZWhpY2xlUHJvcFZhbHVlIHt9OyAgLy8gcmVzZXQgcHJldmlvdXMgdmFsdWVzCisKKyAgICAgICAgU3RhdHVzQ29kZSByZWZTdGF0dXM7CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcmVmVmFsdWU7CisgICAgICAgIGJvb2wgY2FsbGVkID0gZmFsc2U7CisgICAgICAgIG1hbmFnZXItPmdldChyZXF1ZXN0ZWRQcm9wVmFsdWUsIFsmcmVmU3RhdHVzLCAmcmVmVmFsdWUsICZjYWxsZWRdCisgICAgICAgICAgICAoU3RhdHVzQ29kZSBzdGF0dXMsIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlKSB7CisgICAgICAgICAgICByZWZTdGF0dXMgPSBzdGF0dXM7CisgICAgICAgICAgICByZWZWYWx1ZSA9IHZhbHVlOworICAgICAgICAgICAgY2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9UUlVFKGNhbGxlZCkgPDwgImNhbGxiYWNrIHdhc24ndCBjYWxsZWQgZm9yIHByb3A6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBoZXhTdHJpbmcocmVxdWVzdGVkUHJvcFZhbHVlLnByb3ApOworCisgICAgICAgIGFjdHVhbFZhbHVlID0gcmVmVmFsdWU7CisgICAgICAgIGFjdHVhbFN0YXR1c0NvZGUgPSByZWZTdGF0dXM7CisgICAgfQorCitwdWJsaWM6CisgICAgVmVoaWNsZVByb3BWYWx1ZSBhY3R1YWxWYWx1ZTsKKyAgICBTdGF0dXNDb2RlIGFjdHVhbFN0YXR1c0NvZGU7CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCogb2JqZWN0UG9vbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9ja2VkVmVoaWNsZUhhbD4gaGFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlSGFsTWFuYWdlcj4gbWFuYWdlcjsKK307CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldFByb3BDb25maWdzKSB7CisgICAgaGlkbF92ZWM8aW50MzJfdD4gcHJvcGVydGllcyA9CisgICAgICAgIHsgdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCksCisgICAgICAgICAgdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpIH07CisgICAgYm9vbCBjYWxsZWQgPSBmYWxzZTsKKworICAgIG1hbmFnZXItPmdldFByb3BDb25maWdzKHByb3BlcnRpZXMsCisgICAgICAgICAgICBbJmNhbGxlZF0gKFN0YXR1c0NvZGUgc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxWZWhpY2xlUHJvcENvbmZpZz4mIGMpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBzdGF0dXMpOworICAgICAgICBBU1NFUlRfRVEoMnUsIGMuc2l6ZSgpKTsKKyAgICAgICAgY2FsbGVkID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIEFTU0VSVF9UUlVFKGNhbGxlZCk7ICAvLyBWZXJpZnkgY2FsbGJhY2sgcmVjZWl2ZWQuCisKKyAgICBjYWxsZWQgPSBmYWxzZTsKKyAgICBtYW5hZ2VyLT5nZXRQcm9wQ29uZmlncyh7IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpIH0sCisgICAgICAgICAgICBbJmNhbGxlZF0gKFN0YXR1c0NvZGUgc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxWZWhpY2xlUHJvcENvbmZpZz4mIGMpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBzdGF0dXMpOworICAgICAgICBBU1NFUlRfRVEoMXUsIGMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGtWZWhpY2xlUHJvcGVydGllc1sxXSksIHRvU3RyaW5nKGNbMF0pKTsKKyAgICAgICAgY2FsbGVkID0gdHJ1ZTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShjYWxsZWQpOyAgLy8gVmVyaWZ5IGNhbGxiYWNrIHJlY2VpdmVkLgorCisgICAgLy8gVE9ETyhwYXZlbG0pOiBhZGQgY2FzZSBjYXNlIHdoZW4gcHJvcGVydHkgd2FzIG5vdCBkZWNsYXJlZC4KK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgZ2V0QWxsUHJvcENvbmZpZ3MpIHsKKyAgICBib29sIGNhbGxlZCA9IGZhbHNlOworICAgIG1hbmFnZXItPmdldEFsbFByb3BDb25maWdzKAorICAgICAgICAgICAgWyZjYWxsZWRdIChjb25zdCBoaWRsX3ZlYzxWZWhpY2xlUHJvcENvbmZpZz4mIHByb3BDb25maWdzKSB7CisgICAgICAgIEFTU0VSVF9FUShhcnJheXNpemUoa1ZlaGljbGVQcm9wZXJ0aWVzKSwgcHJvcENvbmZpZ3Muc2l6ZSgpKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb3BDb25maWdzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEodG9TdHJpbmcoa1ZlaGljbGVQcm9wZXJ0aWVzW2ldKSwKKyAgICAgICAgICAgICAgICAgICAgICB0b1N0cmluZyhwcm9wQ29uZmlnc1tpXSkpOworICAgICAgICB9CisgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUoY2FsbGVkKTsgIC8vIFZlcmlmeSBjYWxsYmFjayByZWNlaXZlZC4KK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgaGFsRXJyb3JFdmVudCkgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKTsKKworICAgIHNwPE1vY2tlZFZlaGljbGVDYWxsYmFjaz4gY2IgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBvcHRpb25zID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgU3RhdHVzQ29kZSByZXMgPSBtYW5hZ2VyLT5zdWJzY3JpYmUoY2IsIG9wdGlvbnMpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgcmVzKTsKKworICAgIGhhbC0+c2VuZEhhbEVycm9yKFN0YXR1c0NvZGU6OlRSWV9BR0FJTiwgUFJPUCwgMCAvKiBhcmVhIGlkKi8pOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBzdWJzY3JpYmUpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyk7CisKKyAgICBzcDxNb2NrZWRWZWhpY2xlQ2FsbGJhY2s+IGNiID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucyA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUCwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpERUZBVUxUCisgICAgICAgIH0KKyAgICB9OworCisgICAgU3RhdHVzQ29kZSByZXMgPSBtYW5hZ2VyLT5zdWJzY3JpYmUoY2IsIG9wdGlvbnMpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgcmVzKTsKKworICAgIGF1dG8gdW5zdWJzY3JpYmVkVmFsdWUgPSBvYmplY3RQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpOworICAgIHVuc3Vic2NyaWJlZFZhbHVlLT5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCk7CisKKyAgICBoYWwtPnNlbmRQcm9wRXZlbnQoc3RkOjptb3ZlKHVuc3Vic2NyaWJlZFZhbHVlKSk7CisgICAgYXV0byYgcmVjZWl2ZWRFbnZlbnRzID0gY2ItPmdldFJlY2VpdmVkRXZlbnRzKCk7CisKKyAgICBBU1NFUlRfVFJVRShjYi0+d2FpdEZvckV4cGVjdGVkRXZlbnRzKDApKSA8PCAiIFVuZXhwZWN0ZWQgZXZlbnRzIHJlY2VpdmVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgcmVjZWl2ZWRFbnZlbnRzLnNpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IChyZWNlaXZlZEVudmVudHMuc2l6ZSgpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRvU3RyaW5nKHJlY2VpdmVkRW52ZW50cy5mcm9udCgpWzBdKSA6ICIiKTsKKworICAgIGF1dG8gc3Vic2NyaWJlZFZhbHVlID0gb2JqZWN0UG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKTsKKyAgICBzdWJzY3JpYmVkVmFsdWUtPnByb3AgPSBQUk9QOworICAgIHN1YnNjcmliZWRWYWx1ZS0+dmFsdWUuaW50MzJWYWx1ZXNbMF0gPSA0MjsKKworICAgIGNiLT5yZXNldCgpOworICAgIFZlaGljbGVQcm9wVmFsdWUgYWN0dWFsVmFsdWUoKnN1YnNjcmliZWRWYWx1ZS5nZXQoKSk7CisgICAgaGFsLT5zZW5kUHJvcEV2ZW50KHN0ZDo6bW92ZShzdWJzY3JpYmVkVmFsdWUpKTsKKworICAgIEFTU0VSVF9UUlVFKGNiLT53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoMSkpIDw8ICJFdmVudHMgcmVjZWl2ZWQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCByZWNlaXZlZEVudmVudHMuc2l6ZSgpOworCisgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGFjdHVhbFZhbHVlKSwKKyAgICAgICAgICAgICAgdG9TdHJpbmcoY2ItPmdldFJlY2VpdmVkRXZlbnRzKCkuZnJvbnQoKVswXSkpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBzdWJzY3JpYmVfV3JpdGVPbmx5KSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1NFQVRfVEVNUEVSQVRVUkUpOworCisgICAgc3A8TW9ja2VkVmVoaWNsZUNhbGxiYWNrPiBjYiA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IG9wdGlvbnMgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UCisgICAgICAgIH0sCisgICAgfTsKKworICAgIFN0YXR1c0NvZGUgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICAvLyBVbmFibGUgdG8gc3Vic2NyaWJlIG9uIEhhbCBFdmVudHMgZm9yIHdyaXRlLW9ubHkgcHJvcGVydGllcy4KKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIHJlcyk7CisKKworICAgIG9wdGlvbnNbMF0uZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6U0VUX0NBTEw7CisKKyAgICByZXMgPSBtYW5hZ2VyLT5zdWJzY3JpYmUoY2IsIG9wdGlvbnMpOworICAgIC8vIE9LIHRvIHN1YnNjcmliZSBvbiBTRVQgbWV0aG9kIGNhbGwgZm9yIHdyaXRlLW9ubHkgcHJvcGVydGllcy4KKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHJlcyk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldF9Db21wbGV4KSB7CisgICAgaW52b2tlR2V0KGtDdXN0b21Db21wbGV4UHJvcGVydHksIDApOworCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfRVEoa0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSwgYWN0dWFsVmFsdWUucHJvcCk7CisKKyAgICBBU1NFUlRfRVEoM3UsIGFjdHVhbFZhbHVlLnZhbHVlLmJ5dGVzLnNpemUoKSk7CisgICAgQVNTRVJUX0VRKDEsIGFjdHVhbFZhbHVlLnZhbHVlLmJ5dGVzWzBdKTsKKyAgICBBU1NFUlRfRVEoMiwgYWN0dWFsVmFsdWUudmFsdWUuYnl0ZXNbMV0pOworICAgIEFTU0VSVF9FUSgzLCBhY3R1YWxWYWx1ZS52YWx1ZS5ieXRlc1syXSk7CisKKyAgICBBU1NFUlRfRVEoMnUsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzLnNpemUoKSk7CisgICAgQVNTRVJUX0VRKDEwLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7CisgICAgQVNTRVJUX0VRKDIwLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1sxXSk7CisKKyAgICBBU1NFUlRfRVEoMnUsIGFjdHVhbFZhbHVlLnZhbHVlLmZsb2F0VmFsdWVzLnNpemUoKSk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDEuMSwgYWN0dWFsVmFsdWUudmFsdWUuZmxvYXRWYWx1ZXNbMF0pOworICAgIEFTU0VSVF9GTE9BVF9FUSgyLjIsIGFjdHVhbFZhbHVlLnZhbHVlLmZsb2F0VmFsdWVzWzFdKTsKKworICAgIEFTU0VSVF9FUSgydSwgYWN0dWFsVmFsdWUudmFsdWUuaW50NjRWYWx1ZXMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoMzAsIGFjdHVhbFZhbHVlLnZhbHVlLmludDY0VmFsdWVzWzBdKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoNDAsIGFjdHVhbFZhbHVlLnZhbHVlLmludDY0VmFsdWVzWzFdKTsKKworICAgIEFTU0VSVF9TVFJFUShrQ2FyTWFrZSwgYWN0dWFsVmFsdWUudmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldF9TdGF0aWNTdHJpbmcpIHsKKyAgICBpbnZva2VHZXQodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpLCAwKTsKKworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSwgYWN0dWFsVmFsdWUucHJvcCk7CisgICAgQVNTRVJUX1NUUkVRKGtDYXJNYWtlLCBhY3R1YWxWYWx1ZS52YWx1ZS5zdHJpbmdWYWx1ZS5jX3N0cigpKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgZ2V0X05lZ2F0aXZlQ2FzZXMpIHsKKyAgICAvLyBXcml0ZS1vbmx5IHByb3BlcnR5IG11c3QgZmFpbC4KKyAgICBpbnZva2VHZXQodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1NFQVRfVEVNUEVSQVRVUkUpLCAwKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6QUNDRVNTX0RFTklFRCwgYWN0dWFsU3RhdHVzQ29kZSk7CisKKyAgICAvLyBVbmtub3duIHByb3BlcnR5IG11c3QgZmFpbC4KKyAgICBpbnZva2VHZXQodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpNSVJST1JfWl9NT1ZFKSwgMCk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLCBhY3R1YWxTdGF0dXNDb2RlKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgZ2V0X1JldHJpYWJsZSkgeworICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBTdGF0dXNDb2RlOjpUUllfQUdBSU47CisgICAgaW50IGF0dGVtcHRzID0gMDsKKyAgICB3aGlsZSAoU3RhdHVzQ29kZTo6VFJZX0FHQUlOID09IGFjdHVhbFN0YXR1c0NvZGUgJiYgKythdHRlbXB0cyA8IDEwKSB7CisgICAgICAgIGludm9rZUdldCh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fRlVFTF9DQVBBQ0lUWSksIDApOworCisgICAgfQorICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHMgKyAxLCBhdHRlbXB0cyk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDQyLjQyLCBhY3R1YWxWYWx1ZS52YWx1ZS5mbG9hdFZhbHVlc1swXSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHNldF9CYXNpYykgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKTsKKyAgICBjb25zdCBhdXRvIFZBTCA9IDc7CisKKyAgICBhdXRvIGV4cGVjdGVkVmFsdWUgPSBoYWwtPmdldFZhbHVlUG9vbCgpLT5vYnRhaW5JbnQzMihWQUwpOworICAgIGV4cGVjdGVkVmFsdWUtPnByb3AgPSBQUk9QOworICAgIGV4cGVjdGVkVmFsdWUtPmFyZWFJZCA9IDA7CisKKyAgICBhY3R1YWxTdGF0dXNDb2RlID0gbWFuYWdlci0+c2V0KCpleHBlY3RlZFZhbHVlLmdldCgpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworCisgICAgaW52b2tlR2V0KFBST1AsIDApOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKFBST1AsIGFjdHVhbFZhbHVlLnByb3ApOworICAgIEFTU0VSVF9FUShWQUwsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc2V0X0RpZmZlcmVudEFyZWFzKSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCk7CisgICAgY29uc3QgYXV0byBWQUwxID0gMTsKKyAgICBjb25zdCBhdXRvIFZBTDIgPSAyOworICAgIGNvbnN0IGF1dG8gQVJFQTEgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpOworICAgIGNvbnN0IGF1dG8gQVJFQTIgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKTsKKworICAgIHsKKyAgICAgICAgYXV0byBleHBlY3RlZFZhbHVlMSA9IGhhbC0+Z2V0VmFsdWVQb29sKCktPm9idGFpbkludDMyKFZBTDEpOworICAgICAgICBleHBlY3RlZFZhbHVlMS0+cHJvcCA9IFBST1A7CisgICAgICAgIGV4cGVjdGVkVmFsdWUxLT5hcmVhSWQgPSBBUkVBMTsKKyAgICAgICAgYWN0dWFsU3RhdHVzQ29kZSA9IG1hbmFnZXItPnNldCgqZXhwZWN0ZWRWYWx1ZTEuZ2V0KCkpOworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworCisgICAgICAgIGF1dG8gZXhwZWN0ZWRWYWx1ZTIgPSBoYWwtPmdldFZhbHVlUG9vbCgpLT5vYnRhaW5JbnQzMihWQUwyKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZTItPnByb3AgPSBQUk9QOworICAgICAgICBleHBlY3RlZFZhbHVlMi0+YXJlYUlkID0gQVJFQTI7CisgICAgICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBtYW5hZ2VyLT5zZXQoKmV4cGVjdGVkVmFsdWUyLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGludm9rZUdldChQUk9QLCBBUkVBMSk7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgICAgIEFTU0VSVF9FUShQUk9QLCBhY3R1YWxWYWx1ZS5wcm9wKTsKKyAgICAgICAgQVNTRVJUX0VRKEFSRUExLCBhY3R1YWxWYWx1ZS5hcmVhSWQpOworICAgICAgICBBU1NFUlRfRVEoVkFMMSwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMF0pOworCisgICAgICAgIGludm9rZUdldChQUk9QLCBBUkVBMik7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgICAgIEFTU0VSVF9FUShQUk9QLCBhY3R1YWxWYWx1ZS5wcm9wKTsKKyAgICAgICAgQVNTRVJUX0VRKEFSRUEyLCBhY3R1YWxWYWx1ZS5hcmVhSWQpOworICAgICAgICBBU1NFUlRfRVEoVkFMMiwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMF0pOworICAgIH0KK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc2V0X1JldHJpYWJsZSkgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6TUlSUk9SX0ZPTEQpOworCisgICAgYXV0byB2ID0gaGFsLT5nZXRWYWx1ZVBvb2woKS0+b2J0YWluQm9vbGVhbih0cnVlKTsKKyAgICB2LT5wcm9wID0gUFJPUDsKKyAgICB2LT5hcmVhSWQgPSAwOworCisgICAgYWN0dWFsU3RhdHVzQ29kZSA9IFN0YXR1c0NvZGU6OlRSWV9BR0FJTjsKKyAgICBpbnQgYXR0ZW1wdHMgPSAwOworICAgIHdoaWxlIChTdGF0dXNDb2RlOjpUUllfQUdBSU4gPT0gYWN0dWFsU3RhdHVzQ29kZSAmJiArK2F0dGVtcHRzIDwgMTApIHsKKyAgICAgICAgYWN0dWFsU3RhdHVzQ29kZSA9IG1hbmFnZXItPnNldCgqdi5nZXQoKSk7CisgICAgfQorCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfRVEoa1JldHJpYWJsZVByb3BNb2NrZWRBdHRlbXB0cyArIDEsIGF0dGVtcHRzKTsKKworICAgIGludm9rZUdldChQUk9QLCAwKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9UUlVFKGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKK30KKworVEVTVChIYWxDbGllbnRWZWN0b3JUZXN0LCBiYXNpYykgeworICAgIEhhbENsaWVudFZlY3RvciBjbGllbnRzOworICAgIHNwPElWZWhpY2xlQ2FsbGJhY2s+IGNhbGxiYWNrMSA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKworICAgIHNwPEhhbENsaWVudD4gYzEgPSBuZXcgSGFsQ2xpZW50KGNhbGxiYWNrMSk7CisgICAgc3A8SGFsQ2xpZW50PiBjMiA9IG5ldyBIYWxDbGllbnQoY2FsbGJhY2sxKTsKKworICAgIGNsaWVudHMuYWRkT3JVcGRhdGUoYzEpOworICAgIGNsaWVudHMuYWRkT3JVcGRhdGUoYzEpOworICAgIGNsaWVudHMuYWRkT3JVcGRhdGUoYzIpOworICAgIEFTU0VSVF9FUSgydSwgY2xpZW50cy5zaXplKCkpOworICAgIEFTU0VSVF9GQUxTRShjbGllbnRzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX0xFKDAsIGNsaWVudHMuaW5kZXhPZihjMSkpOworICAgIEFTU0VSVF9MRSgwLCBjbGllbnRzLnJlbW92ZShjMSkpOworICAgIEFTU0VSVF9HVCgwLCBjbGllbnRzLmluZGV4T2YoYzEpKTsgIC8vIGMxIHdhcyBhbHJlYWR5IHJlbW92ZWQKKyAgICBBU1NFUlRfR1QoMCwgY2xpZW50cy5yZW1vdmUoYzEpKTsgICAvLyBhdHRlbXB0IHRvIHJlbW92ZSBjMSBhZ2FpbgorICAgIEFTU0VSVF9MRSgwLCBjbGllbnRzLnJlbW92ZShjMikpOworCisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5pc0VtcHR5KCkpOworfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsVGVzdFV0aWxzLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbFRlc3RVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4ZTFhNWEKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbFRlc3RVdGlscy5oCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVEZWJ1Z1V0aWxzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZURlYnVnVXRpbHNfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGlvcz4KKyNpbmNsdWRlIDxzc3RyZWFtPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCitjb25zdGV4cHIgaW50MzJfdCBrQ3VzdG9tQ29tcGxleFByb3BlcnR5ID0gMHhiZWVmCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6OlZFTkRPUgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVgKKyAgICAgICAgfCBWZWhpY2xlQXJlYTo6R0xPQkFMOworCitjb25zdCBWZWhpY2xlUHJvcENvbmZpZyBrVmVoaWNsZVByb3BlcnRpZXNbXSA9IHsKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlNUQVRJQywKKyAgICAgICAgLmNvbmZpZ1N0cmluZyA9ICJTb21lPWNvbmZpZyxvcHRpb25zPWlmLHlvdT1oYXZlX2FueSIsCisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHN0YXRpY19jYXN0PGludDMyX3Q+KAorICAgICAgICAgICAgVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUIHwgVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCksCisgICAgICAgIC5hcmVhQ29uZmlncyA9IHsKKyAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAubWluSW50MzJWYWx1ZSA9IDEsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA3fSwKKyAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCksCisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSAxLAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gNSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvLyBXcml0ZS1vbmx5IHByb3BlcnR5CisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19TRUFUX1RFTVBFUkFUVVJFKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6V1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fU0VULAorICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSBzdGF0aWNfY2FzdDxpbnQzMl90PigKKyAgICAgICAgICAgIFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCB8IFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7CisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSA2NCwKKyAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDgwfSwKKyAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCksCisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSA2NCwKKyAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDgwLAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fRlVFTF9DQVBBQ0lUWSksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7CisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLm1pbkZsb2F0VmFsdWUgPSAwLAorICAgICAgICAgICAgICAgIC5tYXhGbG9hdFZhbHVlID0gMS4wCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgIC5hcmVhQ29uZmlncyA9IHsKKyAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAgICAgICAgICAgICAubWluSW50MzJWYWx1ZSA9IDAsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSAxMAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6Ok1JUlJPUl9GT0xEKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisKKyAgICB9LAorCisgICAgLy8gQ29tcGxleCBkYXRhIHR5cGUuCisgICAgeworICAgICAgICAucHJvcCA9IGtDdXN0b21Db21wbGV4UHJvcGVydHksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFCisgICAgfQorfTsKKworY29uc3RleHByIGF1dG8ga1RpbWVvdXQgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCk7CisKK2NsYXNzIE1vY2tlZFZlaGljbGVDYWxsYmFjayA6IHB1YmxpYyBJVmVoaWNsZUNhbGxiYWNrIHsKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisgICAgdXNpbmcgSGlkbFZlY09mVmFsdWVzID0gaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT47CitwdWJsaWM6CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzA6OklWZWhpY2xlQ2FsbGJhY2sgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBvblByb3BlcnR5RXZlbnQoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxWZWhpY2xlUHJvcFZhbHVlPiYgdmFsdWVzKSBvdmVycmlkZSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11eEd1YXJkICBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1SZWNlaXZlZEV2ZW50cy5wdXNoX2JhY2sodmFsdWVzKTsKKyAgICAgICAgfQorICAgICAgICBtRXZlbnRDb25kLm5vdGlmeV9vbmUoKTsKKyAgICAgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICAgIH0KKyAgICBSZXR1cm48dm9pZD4gb25Qcm9wZXJ0eVNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiAvKiB2YWx1ZSAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBvblByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSAvKiBlcnJvckNvZGUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IC8qIHByb3BJZCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgLyogYXJlYUlkICovKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgICB9CisKKyAgICBib29sIHdhaXRGb3JFeHBlY3RlZEV2ZW50cyhzaXplX3QgZXhwZWN0ZWRFdmVudHMpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKworICAgICAgICBpZiAoZXhwZWN0ZWRFdmVudHMgPT0gMCAmJiBtUmVjZWl2ZWRFdmVudHMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIC8vIE5vIGV2ZW50cyBleHBlY3RlZCwgbGV0J3Mgc2xlZXAgYSBsaXR0bGUgYml0IHRvIG1ha2Ugc3VyZQorICAgICAgICAgICAgLy8gbm90aGluZyB3aWxsIHNob3cgdXAuCisgICAgICAgICAgICByZXR1cm4gbUV2ZW50Q29uZC53YWl0X2ZvcihnLCBrVGltZW91dCkgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQ7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoZXhwZWN0ZWRFdmVudHMgIT0gbVJlY2VpdmVkRXZlbnRzLnNpemUoKSkgeworICAgICAgICAgICAgaWYgKG1FdmVudENvbmQud2FpdF9mb3IoZywga1RpbWVvdXQpID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIG1SZWNlaXZlZEV2ZW50cy5jbGVhcigpOworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dmVjdG9yPEhpZGxWZWNPZlZhbHVlcz4mIGdldFJlY2VpdmVkRXZlbnRzKCkgeworICAgICAgICByZXR1cm4gbVJlY2VpdmVkRXZlbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1FdmVudENvbmQ7CisgICAgc3RkOjp2ZWN0b3I8SGlkbFZlY09mVmFsdWVzPiBtUmVjZWl2ZWRFdmVudHM7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHN0ZDo6c3RyaW5nIGhleFN0cmluZyhUIHZhbHVlKSB7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgICAgc3MgPDwgc3RkOjpzaG93YmFzZSA8PCBzdGQ6OmhleCA8PCB2YWx1ZTsKKyAgICByZXR1cm4gc3Muc3RyKCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBDb2xsZWN0aW9uPgoraW5saW5lIHZvaWQgYXNzZXJ0QWxsRXhpc3RzQW55T3JkZXIoCisgICAgICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUPiBleHBlY3RlZCwKKyAgICAgICAgY29uc3QgQ29sbGVjdGlvbiYgYWN0dWFsLAorICAgICAgICBjb25zdCBjaGFyKiBtc2cpIHsKKyAgICBzdGQ6OnNldDxUPiBleHBlY3RlZFNldCA9IGV4cGVjdGVkOworCisgICAgZm9yIChhdXRvIGE6IGFjdHVhbCkgeworICAgICAgICBBU1NFUlRfRVEoMXUsIGV4cGVjdGVkU2V0LmVyYXNlKGEpKQorICAgICAgICAgICAgICAgIDw8IG1zZyA8PCAiXG5Db250YWlucyBub3QgdW5leHBlY3RlZCB2YWx1ZS5cbiI7CisgICAgfQorCisgICAgQVNTRVJUX0VRKDB1LCBleHBlY3RlZFNldC5zaXplKCkpCisgICAgICAgICAgICA8PCBtc2cKKyAgICAgICAgICAgIDw8ICJcbkRvZXNuJ3QgY29udGFpbiBleHBlY3RlZCB2YWx1ZS4iOworfQorCisjZGVmaW5lIEFTU0VSVF9BTExfRVhJU1RTKC4uLikgXAorICAgIGFzc2VydEFsbEV4aXN0c0FueU9yZGVyKF9fVkFfQVJHU19fLCAoc3RkOjpzdHJpbmcoIkNhbGxlZCBmcm9tOiAiKSArIFwKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nKF9fRklMRV9fKSArIHN0ZDo6c3RyaW5nKCI6IikgKyBcCisgICAgICAgICAgICBzdGQ6OnRvX3N0cmluZyhfX0xJTkVfXykpLmNfc3RyKCkpOyBcCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgc3RkOjpzdHJpbmcgZW51bVRvSGV4U3RyaW5nKFQgdmFsdWUpIHsKKyAgICByZXR1cm4gaGV4U3RyaW5nKHRvSW50KHZhbHVlKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIHN0ZDo6c3RyaW5nIHZlY1RvU3RyaW5nKGNvbnN0IGhpZGxfdmVjPFQ+JiB2ZWMpIHsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzcygiWyIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGlmIChpICE9IDApIHNzIDw8ICIsIjsKKyAgICAgICAgc3MgPDwgdmVjW2ldOworICAgIH0KKyAgICBzcyA8PCAiXSI7CisgICAgcmV0dXJuIHNzLnN0cigpOworfQorCitpbmxpbmUgc3RkOjpzdHJpbmcgdG9TdHJpbmcoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSAmdikgeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgIHNzIDw8ICJWZWhpY2xlUHJvcFZhbHVlIHtuIgorICAgICAgIDw8ICIgIHByb3A6ICIgPDwgaGV4U3RyaW5nKHYucHJvcCkgPDwgIixcbiIKKyAgICAgICA8PCAiICBhcmVhSWQ6ICIgPDwgaGV4U3RyaW5nKHYuYXJlYUlkKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIHRpbWVzdGFtcDogIiA8PCB2LnRpbWVzdGFtcCA8PCAiLFxuIgorICAgICAgIDw8ICIgIHZhbHVlIHtcbiIKKyAgICAgICA8PCAiICAgIGludDMyVmFsdWVzOiAiIDw8IHZlY1RvU3RyaW5nKHYudmFsdWUuaW50MzJWYWx1ZXMpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgICBmbG9hdFZhbHVlczogIiA8PCB2ZWNUb1N0cmluZyh2LnZhbHVlLmZsb2F0VmFsdWVzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgICAgaW50NjRWYWx1ZXM6ICIgPDwgdmVjVG9TdHJpbmcodi52YWx1ZS5pbnQ2NFZhbHVlcykgPDwgIixcbiIKKyAgICAgICA8PCAiICAgIGJ5dGVzOiAiIDw8IHZlY1RvU3RyaW5nKHYudmFsdWUuYnl0ZXMpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgICBzdHJpbmc6ICIgPDwgdi52YWx1ZS5zdHJpbmdWYWx1ZS5jX3N0cigpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgfVxuIgorICAgICAgIDw8ICJ9XG4iOworCisgICAgcmV0dXJuIHNzLnN0cigpOworfQorCitpbmxpbmUgc3RkOjpzdHJpbmcgdG9TdHJpbmcoY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZykgeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgIHNzIDw8ICJWZWhpY2xlUHJvcENvbmZpZyB7XG4iCisgICAgICAgPDwgIiAgcHJvcDogIiA8PCBoZXhTdHJpbmcoY29uZmlnLnByb3ApIDw8ICIsXG4iCisgICAgICAgPDwgIiAgc3VwcG9ydGVkQXJlYXM6ICIgPDwgaGV4U3RyaW5nKGNvbmZpZy5zdXBwb3J0ZWRBcmVhcykgPDwgIixcbiIKKyAgICAgICA8PCAiICBhY2Nlc3M6ICIgPDwgZW51bVRvSGV4U3RyaW5nKGNvbmZpZy5hY2Nlc3MpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgY2hhbmdlTW9kZTogIiA8PCBlbnVtVG9IZXhTdHJpbmcoY29uZmlnLmNoYW5nZU1vZGUpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgY29uZmlnRmxhZ3M6ICIgPDwgaGV4U3RyaW5nKGNvbmZpZy5jb25maWdGbGFncykgPDwgIixcbiIKKyAgICAgICA8PCAiICBtaW5TYW1wbGVSYXRlOiAiIDw8IGNvbmZpZy5taW5TYW1wbGVSYXRlIDw8ICIsXG4iCisgICAgICAgPDwgIiAgbWF4U2FtcGxlUmF0ZTogIiA8PCBjb25maWcubWF4U2FtcGxlUmF0ZSA8PCAiLFxuIgorICAgICAgIDw8ICIgIGNvbmZpZ1N0cmluZzogIiA8PCBjb25maWcuY29uZmlnU3RyaW5nLmNfc3RyKCkgPDwgIixcbiI7CisKKyAgICBzcyA8PCAiICBhcmVhQ29uZmlncyB7XG4iOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uZmlnLmFyZWFDb25maWdzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGNvbnN0IGF1dG8gJmFyZWEgPSBjb25maWcuYXJlYUNvbmZpZ3NbaV07CisgICAgICAgIHNzIDw8ICIgICAgYXJlYUlkOiAiIDw8IGhleFN0cmluZyhhcmVhLmFyZWFJZCkgPDwgIixcbiIKKyAgICAgICAgICAgPDwgIiAgICBtaW5GbG9hdFZhbHVlOiAiIDw8IGFyZWEubWluRmxvYXRWYWx1ZSA8PCAiLFxuIgorICAgICAgICAgICA8PCAiICAgIG1pbkZsb2F0VmFsdWU6ICIgPDwgYXJlYS5tYXhGbG9hdFZhbHVlIDw8ICIsXG4iCisgICAgICAgICAgIDw8ICIgICAgbWluSW50MzJWYWx1ZTogIiA8PCBhcmVhLm1pbkludDMyVmFsdWUgPDwgIixcbiIKKyAgICAgICAgICAgPDwgIiAgICBtaW5JbnQzMlZhbHVlOiAiIDw8IGFyZWEubWF4SW50MzJWYWx1ZSA8PCAiLFxuIgorICAgICAgICAgICA8PCAiICAgIG1pbkludDY0VmFsdWU6ICIgPDwgYXJlYS5taW5JbnQ2NFZhbHVlIDw8ICIsXG4iCisgICAgICAgICAgIDw8ICIgICAgbWluSW50NjRWYWx1ZTogIiA8PCBhcmVhLm1heEludDY0VmFsdWUgPDwgIixcbiI7CisgICAgfQorICAgIHNzIDw8ICIgIH1cbiIKKyAgICAgICA8PCAifVxuIjsKKworICAgIHJldHVybiBzcy5zdHIoKTsKK30KKworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlRGVidWdVdGlsc19IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVPYmplY3RQb29sX3Rlc3QuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVPYmplY3RQb29sX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyOTEzNTEKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZU9iamVjdFBvb2xfdGVzdC5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8dGhyZWFkPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZU9iamVjdFBvb2wuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgVmVoaWNsZU9iamVjdFBvb2xUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Citwcm90ZWN0ZWQ6CisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgc3RhdHMgPSBQb29sU3RhdHM6Omluc3RhbmNlKCk7CisgICAgICAgIHJlc2V0U3RhdHMoKTsKKyAgICAgICAgdmFsdWVQb29sLnJlc2V0KG5ldyBWZWhpY2xlUHJvcFZhbHVlUG9vbCk7CisgICAgfQorCisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgLy8gQXQgdGhlIGVuZCwgYWxsIGNyZWF0ZWQgb2JqZWN0cyBzaG91bGQgYmUgZWl0aGVyIHJlY3ljbGVkIG9yIGRlbGV0ZWQuCisgICAgICAgIC8vIFNvbWUgb2JqZWN0cyBjb3VsZCBiZSByZWN5Y2xlZCBtdWx0aXBsZSB0aW1lcywgdGhhdCdzIHdoeSBpdCdzIDw9CisgICAgICAgIEFTU0VSVF9FUShzdGF0cy0+T2J0YWluZWQsIHN0YXRzLT5SZWN5Y2xlZCk7CisgICAgICAgIEFTU0VSVF9MRShzdGF0cy0+Q3JlYXRlZCwgc3RhdHMtPlJlY3ljbGVkKTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgcmVzZXRTdGF0cygpIHsKKyAgICAgICAgc3RhdHMtPk9idGFpbmVkID0gMDsKKyAgICAgICAgc3RhdHMtPkNyZWF0ZWQgPSAwOworICAgICAgICBzdGF0cy0+UmVjeWNsZWQgPSAwOworICAgIH0KKworcHVibGljOgorICAgIFBvb2xTdGF0cyogc3RhdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWVQb29sPiB2YWx1ZVBvb2w7Cit9OworCitURVNUX0YoVmVoaWNsZU9iamVjdFBvb2xUZXN0LCB2YWx1ZVBvb2xCYXNpY0NvcnJlY3RuZXNzKSB7CisgICAgdm9pZCogcmF3ID0gdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpLmdldCgpOworICAgIC8vIEF0IHRoaXMgcG9pbnQsIHYxIHNob3VsZCBiZSByZWN5Y2xlZCBhbmQgdGhlIG9ubHkgb2JqZWN0IGluIHRoZSBwb29sLgorICAgIEFTU0VSVF9FUShyYXcsIHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKS5nZXQoKSk7CisgICAgLy8gT2J0YWluaW5nIHZhbHVlIG9mIGFub3RoZXIgdHlwZSAtIHNob3VsZCByZXR1cm4gYSBuZXcgb2JqZWN0CisgICAgQVNTRVJUX05FKHJhdywgdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQpLmdldCgpKTsKKworICAgIEFTU0VSVF9FUSgzdSwgc3RhdHMtPk9idGFpbmVkKTsKKyAgICBBU1NFUlRfRVEoMnUsIHN0YXRzLT5DcmVhdGVkKTsKK30KKworVEVTVF9GKFZlaGljbGVPYmplY3RQb29sVGVzdCwgdmFsdWVQb29sU3RyaW5ncykgeworICAgIHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORyk7CisgICAgYXV0byB2cyA9IHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORyk7CisgICAgdnMtPnZhbHVlLnN0cmluZ1ZhbHVlID0gIkhlbGxvIjsKKyAgICB2b2lkKiByYXcgPSB2cy5nZXQoKTsKKyAgICB2cy5yZXNldCgpOyAgLy8gZGVsZXRlIHRoZSBwb2ludGVyCisKKyAgICBhdXRvIHZzMiA9IHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORyk7CisgICAgQVNTRVJUX0VRKDB1LCB2czItPnZhbHVlLnN0cmluZ1ZhbHVlLnNpemUoKSk7CisgICAgQVNTRVJUX05FKHJhdywgdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HKS5nZXQoKSk7CisKKyAgICBBU1NFUlRfRVEoMHUsIHN0YXRzLT5PYnRhaW5lZCk7Cit9CisKK1RFU1RfRihWZWhpY2xlT2JqZWN0UG9vbFRlc3QsIHZhbHVlUG9vbE11bHRpdGhyZWFkZWRCZW5jaG1hcmspIHsKKyAgICAvLyBJbiB0aGlzIHRlc3Qgd2UgaGF2ZSBUIHRocmVhZHMgdGhhdCBjb25jdXJyZW50bHkgaW4gQyBjeWNsZXMKKyAgICAvLyBvYnRhaW4gYW5kIHJlbGVhc2UgTyBWZWhpY2xlUHJvcFZhbHVlIG9iamVjdHMgb2YgRkxPQVQgLyBJTlQzMiB0eXBlcy4KKworICAgIGNvbnN0IGludCBUID0gMjsKKyAgICBjb25zdCBpbnQgQyA9IDUwMDsKKyAgICBjb25zdCBpbnQgTyA9IDEwMDsKKworICAgIGF1dG8gcG9vbFB0ciA9IHZhbHVlUG9vbC5nZXQoKTsKKworICAgIHN0ZDo6dmVjdG9yPHN0ZDo6dGhyZWFkPiB0aHJlYWRzOworICAgIGF1dG8gc3RhcnQgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUOyBpKyspIHsKKyAgICAgICAgdGhyZWFkcy5wdXNoX2JhY2soc3RkOjp0aHJlYWQoWyZwb29sUHRyXSAoKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IEM7IGorKykgeworICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHJlY3ljbGFibGVfcHRyPFZlaGljbGVQcm9wVmFsdWU+PiB2ZWM7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBPOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdmVjLnB1c2hfYmFjaygKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvb2xQdHItPm9idGFpbihrICUgMiA9PSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIHQgOiB0aHJlYWRzKSB7CisgICAgICAgIHQuam9pbigpOworICAgIH0KKyAgICBhdXRvIGZpbmlzaCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKworICAgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oVCAqIEMgKiBPKSwgc3RhdHMtPk9idGFpbmVkKTsKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFQgKiBDICogTyksIHN0YXRzLT5SZWN5Y2xlZCk7CisgICAgLy8gQ3JlYXRlZCBsZXNzIHRoYW4gb2J0YWluZWQuCisgICAgQVNTRVJUX0dFKHN0YXRpY19jYXN0PHVpbnQzMl90PihUICogTyksIHN0YXRzLT5DcmVhdGVkKTsKKworICAgIGF1dG8gZWxhcHNlZE1zID0gKGZpbmlzaCAtIHN0YXJ0KSAvIDEwMDAwMDA7CisgICAgQVNTRVJUX0dFKDEwMDAsIGVsYXBzZWRNcyk7ICAvLyBMZXNzIGEgc2Vjb25kIHRvIGFjY2VzcyAxMDBLIG9iamVjdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBpY2FsbHkgaXQgdGFrZXMgYWJvdXQgMC4xcyBvbiBOZXh1czZQLgorfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X3Rlc3QuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGY2NTgyMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X3Rlc3QuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlUHJvcENvbmZpZ0luZGV4LmgiCisKKyNpbmNsdWRlICJWZWhpY2xlSGFsVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIFByb3BDb25maWdUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Citwcm90ZWN0ZWQ6CisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgY29uZmlncy5hc3NpZ24oc3RkOjpiZWdpbihrVmVoaWNsZVByb3BlcnRpZXMpLAorICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmVuZChrVmVoaWNsZVByb3BlcnRpZXMpKTsKKyAgICB9CisKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworcHVibGljOgorICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBjb25maWdzOworfTsKKworVEVTVF9GKFByb3BDb25maWdUZXN0LCBoYXNDb25maWcpIHsKKyAgICBWZWhpY2xlUHJvcENvbmZpZ0luZGV4IGluZGV4KGNvbmZpZ3MpOworCisgICAgQVNTRVJUX1RSVUUoaW5kZXguaGFzQ29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpKSk7CisgICAgQVNTRVJUX1RSVUUoaW5kZXguaGFzQ29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSkpOworICAgIEFTU0VSVF9UUlVFKGluZGV4Lmhhc0NvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fRlVFTF9DQVBBQ0lUWSkpKTsKKworICAgIEFTU0VSVF9GQUxTRShpbmRleC5oYXNDb25maWcodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTlZBTElEKSkpOworfQorCitURVNUX0YoUHJvcENvbmZpZ1Rlc3QsIGdldEFsbENvbmZpZykgeworICAgIFZlaGljbGVQcm9wQ29uZmlnSW5kZXggaW5kZXgoY29uZmlncyk7CisKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gYWN0dWFsQ29uZmlncyA9IGluZGV4LmdldEFsbENvbmZpZ3MoKTsKKyAgICBBU1NFUlRfRVEoY29uZmlncy5zaXplKCksIGFjdHVhbENvbmZpZ3Muc2l6ZSgpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWN0dWFsQ29uZmlncy5zaXplKCk7IGkrKykgeworICAgICAgICBBU1NFUlRfRVEodG9TdHJpbmcoY29uZmlnc1tpXSksIHRvU3RyaW5nKGFjdHVhbENvbmZpZ3NbaV0pKTsKKyAgICB9Cit9CisKK1RFU1RfRihQcm9wQ29uZmlnVGVzdCwgZ2V0Q29uZmlncykgeworICAgIFZlaGljbGVQcm9wQ29uZmlnSW5kZXggaW5kZXgoY29uZmlncyk7CisgICAgYXV0byBhY3R1YWxDb25maWcgPSBpbmRleC5nZXRDb25maWcodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCkpOworICAgIEFTU0VSVF9FUSh0b1N0cmluZyhjb25maWdzWzFdKSwgdG9TdHJpbmcoYWN0dWFsQ29uZmlnKSk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbm9ueW1vdXMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oYWwgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWZiNmJmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyNjg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKKy8qKgorICogRW51bWVyYXRlcyBzdXBwb3J0ZWQgZGF0YSB0eXBlcyBmb3IgVmVoaWNsZVByb3BlcnR5LgorICoKKyAqIFRoaXMgaXMgYSBiaXR3aXNlIGZsYWcgdGhhdCBzdXBwb3NlZCB0byBiZSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSBlbnVtLgorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eVR5cGUgOiBpbnQzMl90IHsKKyAgICBTVFJJTkcgICAgICAgICA9IDB4MDAxMDAwMDAsCisgICAgQk9PTEVBTiAgICAgICAgPSAweDAwMjAwMDAwLAorICAgIElOVDMyICAgICAgICAgID0gMHgwMDQwMDAwMCwKKyAgICBJTlQzMl9WRUMgICAgICA9IDB4MDA0MTAwMDAsCisgICAgSU5UNjQgICAgICAgICAgPSAweDAwNTAwMDAwLAorICAgIEZMT0FUICAgICAgICAgID0gMHgwMDYwMDAwMCwKKyAgICBGTE9BVF9WRUMgICAgICA9IDB4MDA2MTAwMDAsCisgICAgQllURVMgICAgICAgICAgPSAweDAwNzAwMDAwLAorCisgICAgLyoqCisgICAgICogQW55IGNvbWJpbmF0aW9uIG9mIHNjYWxhciBvciB2ZWN0b3IgdHlwZXMuIFRoZSBleGFjdCBmb3JtYXQgbXVzdCBiZQorICAgICAqIHByb3ZpZGVkIGluIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcHJvcGVydHkuCisgICAgICovCisgICAgQ09NUExFWCAgICAgICAgPSAweDAwZTAwMDAwLAorCisgICAgTUFTSyAgICAgICAgICAgPSAweDAwZmYwMDAwCit9OworCisvKioKKyAqIFNvbWUgcHJvcGVydGllcyBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIHBhcnRpY3VsYXIgdmVoaWNsZSBhcmVhcy4gRm9yCisgKiBleGFtcGxlLCBWZWhpY2xlUHJvcGVydHk6RE9PUl9MT0NLIHByb3BlcnR5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoCisgKiBwYXJ0aWN1bGFyIGRvb3IsIHRodXMgdGhpcyBwcm9wZXJ0eSBtdXN0IGJlIG1hcmtlZCB3aXRoCisgKiBWZWhpY2xlQXJlYTpET09SIGZsYWcuCisgKgorICogT3RoZXIgcHJvcGVydGllcyBtYXkgbm90IGJlIGFzc29jaWF0ZWQgd2l0aCBwYXJ0aWN1bGFyIHZlaGljbGUgYXJlYSwKKyAqIHRoZXNlIGtpbmQgb2YgcHJvcGVydGllcyBtdXN0IGhhdmUgVmVoaWNsZUFyZWE6R0xPQkFMIGZsYWcuCisgKgorICogVGhpcyBpcyBhIGJpdHdpc2UgZmxhZyB0aGF0IHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gVmVoaWNsZVByb3BlcnR5IGVudW0uCisgKi8KK2VudW0gVmVoaWNsZUFyZWEgOiBpbnQzMl90IHsKKyAgICAgIEdMT0JBTCAgICAgICA9IDB4MDEwMDAwMDAsCisgICAgICBaT05FICAgICAgICAgPSAweDAyMDAwMDAwLAorICAgICAgV0lORE9XICAgICAgID0gMHgwMzAwMDAwMCwKKyAgICAgIE1JUlJPUiAgICAgICA9IDB4MDQwMDAwMDAsCisgICAgICBTRUFUICAgICAgICAgPSAweDA1MDAwMDAwLAorICAgICAgRE9PUiAgICAgICAgID0gMHgwNjAwMDAwMCwKKworICAgICAgTUFTSyAgICAgICAgID0gMHgwZjAwMDAwMCwKK307CisKKy8qKgorICogRW51bWVyYXRlcyBwcm9wZXJ0eSBncm91cHMuCisgKgorICogVGhpcyBpcyBhIGJpdHdpc2UgZmxhZyB0aGF0IHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gVmVoaWNsZVByb3BlcnR5IGVudW0uCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5R3JvdXAgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0aWVzIGRlY2xhcmVkIGluIEFPU1AgbXVzdCBoYXZlIHRoaXMgZmxhZy4KKyAgICAgKi8KKyAgICBTWVNURU0gICAgICAgICA9IDB4MTAwMDAwMDAsCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0aWVzIGRlY2xhcmVkIGJ5IHZlbmRvcnMgbXVzdCBoYXZlIHRoaXMgZmxhZy4KKyAgICAgKi8KKyAgICBWRU5ET1IgICAgICAgICA9IDB4MjAwMDAwMDAsCisKKyAgICBNQVNLICAgICAgICAgICA9IDB4ZjAwMDAwMDAsCit9OworCisvKioKKyAqIERlY2xhcmVzIGFsbCB2ZWhpY2xlIHByb3BlcnRpZXMuIFZlaGljbGVQcm9wZXJ0eSBoYXMgYSBiaXR3aXNlIHN0cnVjdHVyZS4KKyAqIEVhY2ggcHJvcGVydHkgbXVzdCBoYXZlOgorICogICAtIGFuIHVuaXF1ZSBpZCBmcm9tIHJhbmdlIDB4MDEwMCAtIDB4ZmZmZgorICogICAtIGFzc29jaWF0ZWQgZGF0YSB0eXBlIHVzaW5nIFZlaGljbGVQcm9wZXJ0eVR5cGUKKyAqICAgLSBwcm9wZXJ0eSBncm91cCAoVmVoaWNsZVByb3BlcnR5R3JvdXApCisgKiAgIC0gdmVoaWNsZSBhcmVhIChWZWhpY2xlQXJlYSkKKyAqCisgKiBWZW5kb3JzIGFyZSBhbGxvd2VkIHRvIGV4dGVuZCB0aGlzIGVudW0gd2l0aCB0aGVpciBvd24gcHJvcGVydGllcy4gSW4gdGhpcworICogY2FzZSB0aGV5IG11c3QgdXNlIFZlaGljbGVQcm9wZXJ0eUdyb3VwOlZFTkRPUiBmbGFnIHdoZW4gcHJvcGVydHkgaXMKKyAqIGRlY2xhcmVkLgorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eTogaW50MzJfdCB7CisKKyAgICAvKiogVW5kZWZpbmVkIHByb3BlcnR5LiAqLworICAgIElOVkFMSUQgPSAweDAwMDAwMDAwLAorCisgICAgLyoqCisgICAgICogVklOIG9mIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBJTkZPX1ZJTj0gKAorICAgICAgICAweDAxMDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOlNUUklORworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBNYWtlciBuYW1lIG9mIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBJTkZPX01BS0UgPSAoCisgICAgICAgIDB4MDEwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6U1RSSU5HCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE1vZGVsIG9mIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBJTkZPX01PREVMID0gKAorICAgICAgICAweDAxMDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOlNUUklORworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBNb2RlbCB5ZWFyIG9mIHZlaGljbGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6WUVBUgorICAgICAqLworICAgIElORk9fTU9ERUxfWUVBUiA9ICgKKyAgICAgICAgMHgwMTAzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBGdWVsIGNhcGFjaXR5IG9mIHRoZSB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6TUlMTElMSVRFUgorICAgICAqLworICAgIElORk9fRlVFTF9DQVBBQ0lUWSA9ICgKKyAgICAgICAgMHgwMTA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IG9kb21ldGVyIHZhbHVlIG9mIHRoZSB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UgfCBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6S0lMT01FVEVSCisgICAgICovCisgICAgUEVSRl9PRE9NRVRFUiA9ICgKKyAgICAgICAgMHgwMjA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBTcGVlZCBvZiB0aGUgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpNRVRFUl9QRVJfU0VDCisgICAgICovCisgICAgUEVSRl9WRUhJQ0xFX1NQRUVEID0gKAorICAgICAgICAweDAyMDcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFRlbXBlcmF0dXJlIG9mIGVuZ2luZSBjb29sYW50CisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OkNFTFNJVVMKKyAgICAgKi8KKyAgICBFTkdJTkVfQ09PTEFOVF9URU1QID0gKAorICAgICAgICAweDAzMDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFRlbXBlcmF0dXJlIG9mIGVuZ2luZSBvaWwKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6Q0VMU0lVUworICAgICAqLworICAgIEVOR0lORV9PSUxfVEVNUCA9ICgKKyAgICAgICAgMHgwMzA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBFbmdpbmUgcnBtCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OlJQTQorICAgICAqLworICAgIEVOR0lORV9SUE0gPSAoCisgICAgICAgIDB4MDMwNQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ3VycmVudGx5IHNlbGVjdGVkIGdlYXIKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVHZWFyCisgICAgICovCisgICAgR0VBUl9TRUxFQ1RJT04gPSAoCisgICAgICAgIDB4MDQwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ3VycmVudCBnZWFyLiBJbiBub24tbWFudWFsIGNhc2UsIHNlbGVjdGVkIGdlYXIgZG9lcyBub3QgbmVjZXNzYXJpbHkKKyAgICAgKiBtYXRjaCB0aGUgY3VycmVudCBnZWFyLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEBkYXRhX2VudW0gVmVoaWNsZUdlYXIKKyAgICAgKi8KKyAgICBDVVJSRU5UX0dFQVIgPSAoCisgICAgICAgIDB4MDQwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUGFya2luZyBicmFrZSBzdGF0ZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBQQVJLSU5HX0JSQUtFX09OID0gKAorICAgICAgICAweDA0MDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRHJpdmluZyBzdGF0dXMgcG9saWN5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEBkYXRhX2VudW0gVmVoaWNsZURyaXZpbmdTdGF0dXMKKyAgICAgKi8KKyAgICBEUklWSU5HX1NUQVRVUyA9ICgKKyAgICAgICAgMHgwNDA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXYXJuaW5nIGZvciBmdWVsIGxvdyBsZXZlbC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBGVUVMX0xFVkVMX0xPVyA9ICgKKyAgICAgICAgMHgwNDA1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE5pZ2h0IG1vZGUgb3Igbm90LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIE5JR0hUX01PREUgPSAoCisgICAgICAgIDB4MDQwNworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBTdGF0ZSBvZiB0aGUgdmVoaWNsZXMgdHVybiBzaWduYWxzCisgICAgICoKKyAgICAgKiBWYWx1ZXMgZnJvbSBWZWhpY2xlVHVyblNpZ25hbAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIFRVUk5fU0lHTkFMX1NUQVRFID0gKAorICAgICAgICAweDA0MDgKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgaWduaXRpb24gc3RhdGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBJR05JVElPTl9TVEFURSA9ICgKKyAgICAgICAgMHgwNDA5CisgICAgICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBGYW4gc3BlZWQgc2V0dGluZworICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX0ZBTl9TUEVFRCA9ICgKKyAgICAgICAgMHgwNTAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogRmFuIGRpcmVjdGlvbiBzZXR0aW5nCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBkYXRhX2VudW0gVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24KKyAgICAgKi8KKyAgICBIVkFDX0ZBTl9ESVJFQ1RJT04gPSAoCisgICAgICAgIDB4MDUwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIEhWQUMgY3VycmVudCB0ZW1wZXJhdHVyZS4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19URU1QRVJBVFVSRV9DVVJSRU5UID0gKAorICAgICAgICAweDA1MDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBIVkFDLCB0YXJnZXQgdGVtcGVyYXR1cmUgc2V0LgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1RFTVBFUkFUVVJFX1NFVCA9ICgKKyAgICAgICAgMHgwNTAzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIGRlZnJvc3QKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19ERUZST1NURVIgPSAoCisgICAgICAgIDB4MDUwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOldJTkRPVyksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgQUMKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBTdXBwb3J0ZWQgem9uZXMKKyAgICAgKi8KKyAgICBIVkFDX0FDX09OID0gKAorICAgICAgICAweDA1MDUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBtYXggQUMKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19NQVhfQUNfT04gPSAoCisgICAgICAgIDB4MDUwNgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIG1heCBkZWZyb3N0CisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfTUFYX0RFRlJPU1RfT04gPSAoCisgICAgICAgIDB4MDUwNworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIHJlLWNpcmN1bGF0aW9uCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfUkVDSVJDX09OID0gKAorICAgICAgICAweDA1MDgKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBkdWFsLiBUaGlzIG11c3QgYmUgZGVmaW5lZCBwZXIgZWFjaCByb3cuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfRFVBTF9PTiA9ICgKKyAgICAgICAgMHgwNTA5CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgYXV0b21hdGljIG1vZGUKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19BVVRPX09OID0gKAorICAgICAgICAweDA1MEEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgdGVtcGVyYXR1cmUKKyAgICAgKgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBpbmRpY2F0ZSBjb29saW5nLgorICAgICAqIDAgaW5kaWNhdGVzIG9mZi4KKyAgICAgKiBQb3NpdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgaGVhdGluZy4KKyAgICAgKgorICAgICAqIFNvbWUgdmVoaWNsZXMgbWF5IGhhdmUgbXVsdGlwbGUgbGV2ZWxzIG9mIGhlYXRpbmcgYW5kIGNvb2xpbmcuIFRoZQorICAgICAqIG1pbi9tYXggcmFuZ2UgZGVmaW5lcyB0aGUgYWxsb3dhYmxlIHJhbmdlIGFuZCBudW1iZXIgb2Ygc3RlcHMgaW4gZWFjaAorICAgICAqIGRpcmVjdGlvbi4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19TRUFUX1RFTVBFUkFUVVJFID0gKAorICAgICAgICAweDA1MEIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTaWRlIE1pcnJvciBIZWF0CisgICAgICoKKyAgICAgKiBJbmNyZWFzZSB2YWx1ZXMgZGVub3RlIGhpZ2hlciBoZWF0aW5nIGxldmVscyBmb3Igc2lkZSBtaXJyb3JzLgorICAgICAqIDAgaW5kaWNhdGVzIGhlYXRpbmcgaXMgdHVybmVkIG9mZi4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19TSURFX01JUlJPUl9IRUFUID0gKAorICAgICAgICAweDA1MEMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6TUlSUk9SKSwKKworICAgIC8qKgorICAgICAqIFN0ZWVyaW5nIFdoZWVsIFRlbXBlcmF0dXJlCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSB0ZW1wZXJhdHVyZSBmb3IgdGhlIHN0ZWVyaW5nIHdoZWVsCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGVzIGhlYXRpbmcuCisgICAgICogTmVnYXRpdmUgdmFsdWUgaW5kaWNhdGVzIGNvb2xpbmcuCisgICAgICogMCBpbmRpY2F0ZXMgdGVtcGVyYXR1cmUgY29udHJvbCBpcyBvZmYuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfU1RFRVJJTkdfV0hFRUxfVEVNUCA9ICgKKyAgICAgICAgMHgwNTBECisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBUZW1wZXJhdHVyZSB1bml0cworICAgICAqCisgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRlbXBlcmF0dXJlIGlzIGluIENlbHNpdXMsIEZhaHJlbmhlaXQsIG9yIGEKKyAgICAgKiBkaWZmZXJlbnQgdW5pdCBmcm9tIFZlaGljbGVVbml0IGVudW0uCisgICAgICogVGhpcyBwYXJhbWV0ZXIgYWZmZWN0cyBhbGwgSFZBQyB0ZW1wZXJhdHVyZXMgaW4gdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI2dldCBpcyBub3QgZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUKKyAgICAgKiBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvciBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIEhWQUNfVEVNUEVSQVRVUkVfVU5JVFMgPSAoCisgICAgICAgIDB4MDUwRQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIEFjdHVhbCBmYW4gc3BlZWQKKyAgICAgKgorICAgICAqIElWZWhpY2xlI2dldCBpcyBub3QgZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUKKyAgICAgKiBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvciBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIEhWQUNfQUNUVUFMX0ZBTl9TUEVFRF9SUE0gPSAoCisgICAgICAgIDB4MDUwRgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIEZhbiBQb3NpdGlvbnMgQXZhaWxhYmxlCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgYml0IG1hc2sgb2YgZmFuIHBvc2l0aW9ucyBhdmFpbGFibGUgZm9yIHRoZSB6b25lLiAgRWFjaCBlbnRyeSBpbgorICAgICAqIHZlaGljbGVfaHZhY19mYW5fZGlyZWN0aW9uIGlzIHNlbGVjdGVkIGJ5IGJpdCBwb3NpdGlvbi4gIEZvciBpbnN0YW5jZSwgaWYKKyAgICAgKiBvbmx5IHRoZSBGQU5fRElSRUNUSU9OX0ZBQ0UgKDB4MSkgYW5kIEZBTl9ESVJFQ1RJT05fREVGUk9TVCAoMHg0KSBhcmUgYXZhaWxhYmxlLAorICAgICAqIHRoZW4gdGhpcyB2YWx1ZSBzaGFsbCBiZSBzZXQgdG8gMHgxMi4KKyAgICAgKgorICAgICAqIDB4MTIgPSAoMSA8PCAxKSB8ICgxIDw8IDQpCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSFZBQ19GQU5fRElSRUNUSU9OX0FWQUlMQUJMRSA9ICgKKyAgICAgICAgMHgwNTExCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBwb3dlciBzdGF0ZSBmb3IgSFZBQy4gU29tZSBIVkFDIHByb3BlcnRpZXMgbXVzdCByZXF1aXJlCisgICAgICogbWF0Y2hpbmcgcG93ZXIgdG8gYmUgdHVybmVkIG9uIHRvIGdldCBvdXQgb2YgT0ZGIHN0YXRlLiBGb3Igbm9uLXpvbmVkCisgICAgICogSFZBQyBwcm9wZXJ0aWVzLCBWRUhJQ0xFX0FMTF9aT05FIGNvcnJlc3BvbmRzIHRvIGdsb2JhbCBwb3dlciBzdGF0ZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX3N0cmluZyBsaXN0IG9mIEhWQUMgcHJvcGVydGllcyB3aG9zZSBwb3dlciBpcyBjb250cm9sbGVkIGJ5IHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgICBwcm9wZXJ0eS4gRm9ybWF0IGlzIGhleGEtZGVjaW1hbCBudW1iZXIgKDB4Li4uKSBzZXBhcmF0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBieSBjb21tYSBsaWtlICIweDUwMCwweDUwMyIuIEFsbCB6b25lcyBkZWZpbmVkIGluIHRoZXNlCisgICAgICogICAgICAgICAgICAgICAgYWZmZWN0ZWQgcHJvcGVydGllcyBtdXN0IGJlIGF2YWlsYWJsZSBpbiB0aGUgcHJvcGVydHkuCisgICAgICovCisgICAgSFZBQ19QT1dFUl9PTiA9ICgKKyAgICAgICAgMHgwNTEwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPdXRzaWRlIHRlbXBlcmF0dXJlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OkNFTFNJVVMKKyAgICAgKi8KKyAgICBFTlZfT1VUU0lERV9URU1QRVJBVFVSRSA9ICgKKyAgICAgICAgMHgwNzAzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDYWJpbiB0ZW1wZXJhdHVyZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpDRUxTSVVTCisgICAgICovCisgICAgRU5WX0NBQklOX1RFTVBFUkFUVVJFID0gKAorICAgICAgICAweDA3MDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFJhZGlvIHByZXNldHMgc3RvcmVkIG9uIHRoZSBDYXIgcmFkaW8gbW9kdWxlLiBUaGUgZGF0YSB0eXBlIHVzZWQgaXMgaW50MzIKKyAgICAgKiBhcnJheSB3aXRoIHRoZSBmb2xsb3dpbmcgZmllbGRzOgorICAgICAqIDx1bD4KKyAgICAgKiAgICA8bGk+IGludDMyVmFsdWVzWzBdOiBQcmVzZXQgbnVtYmVyIDwvbGk+CisgICAgICogICAgPGxpPiBpbnQzMlZhbHVlc1sxXTogQmFuZCB0eXBlIChzZWUgI1JBRElPX0JBTkRfRk0gaW4KKyAgICAgKiAgICBzeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS9yYWRpby5oKS4KKyAgICAgKiAgICA8bGk+IGludDMyVmFsdWVzWzJdOiBDaGFubmVsIG51bWJlciA8L2xpPgorICAgICAqICAgIDxsaT4gaW50MzJWYWx1ZXNbM106IFN1YiBjaGFubmVsIG51bWJlciA8L2xpPgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBOT1RFOiBXaGVuIGdldHRpbmcgYSBjdXJyZW50IHByZXNldCBjb25maWcgT05MWSBzZXQgcHJlc2V0IG51bWJlciAoaS5lLgorICAgICAqIGludDMyVmFsdWVzWzBdKS4gRm9yIHNldHRpbmcgYSBwcmVzZXQgb3RoZXIgZmllbGRzIGFyZSByZXF1aXJlZC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX2ZsYWdzIE51bWJlciBvZiBwcmVzZXRzIHN1cHBvcnRlZAorICAgICAqLworICAgIFJBRElPX1BSRVNFVCA9ICgKKyAgICAgICAgMHgwODAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhdWRpbyBmb2N1cyBzdGF0ZSBvZiBBbmRyb2lkIHNpZGUuIE5vdGUgdGhhdCBjYXIncyBhdWRpbworICAgICAqIG1vZHVsZSBtdXN0IG93biBhdWRpbyBmb2N1cyBhbmQgZ3JhbnQgYXVkaW8gZm9jdXMgdG8gQW5kcm9pZCBzaWRlIHdoZW4KKyAgICAgKiByZXF1ZXN0ZWQgYnkgQW5kcm9pZCBzaWRlLiBUaGUgZm9jdXMgaGFzIGJvdGggcGVyIHN0cmVhbSBjaGFyYWN0ZXJpc3RpY3MKKyAgICAgKiBhbmQgZ2xvYmFsIGNoYXJhY3RlcmlzdGljcy4KKyAgICAgKgorICAgICAqIEZvY3VzIHJlcXVlc3QgKGdldCBvZiB0aGlzIHByb3BlcnR5KSBtdXN0IHRha2UgdGhlIGZvbGxvd2luZyBmb3JtOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF06IFZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdCB0eXBlCisgICAgICogICBpbnQzMlZhbHVlc1sxXTogYml0IGZsYWdzIG9mIHN0cmVhbXMgcmVxdWVzdGVkIGJ5IHRoaXMgZm9jdXMgcmVxdWVzdC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBUaGVyZSBjYW4gYmUgdXAgdG8gMzIgc3RyZWFtcy4KKyAgICAgKiAgIGludDMyVmFsdWVzWzJdOiBFeHRlcm5hbCBmb2N1cyBzdGF0ZSBmbGFncy4gRm9yIHJlcXVlc3QsIG9ubHkgZmxhZyBsaWtlCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BMQVlfT05MWV9GTEFHIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI01VVEVfTUVESUFfRkxBRyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICB1c2VkLgorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQTEFZX09OTFlfRkxBRyBpcyBmb3IgY2FzZQorICAgICAqICAgICAgICAgICAgICAgICAgIGxpa2UgcmFkaW8gd2hlcmUgYW5kcm9pZCBzaWRlIGFwcCBzdGlsbCBuZWVkcyB0byBob2xkCisgICAgICogICAgICAgICAgICAgICAgICAgZm9jdXMgYnV0IHBsYXliYWNrIGlzIGRvbmUgb3V0c2lkZSBBbmRyb2lkLgorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNNVVRFX01FRElBX0ZMQUcgaXMgZm9yCisgICAgICogICAgICAgICAgICAgICAgICAgbXV0aW5nIG1lZGlhIGNoYW5uZWwgaW5jbHVkaW5nIHJhZGlvLgorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQTEFZX09OTFlfRkxBRyBjYW4gYmUgc2V0CisgICAgICogICAgICAgICAgICAgICAgICAgZXZlbiBpZiBhbmRyb2lkIHNpZGUgcmVsZWFzZXMgZm9jdXMgKHJlcXVlc3QgdHlwZQorICAgICAqICAgICAgICAgICAgICAgICAgIFJFUVVFU1RfUkVMRUFTRSkuIEluIHRoYXQgY2FzZSwgYXVkaW8gbW9kdWxlIG11c3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICBtYWludGFpbiBtdXRlIHN0YXRlIHVudGlsIHVzZXIncyBleHBsaWNpdCBhY3Rpb24gdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICBwbGF5IHNvbWUgbWVkaWEuCisgICAgICogICBpbnQzMlZhbHVlc1szXTogQ3VycmVudGx5IGFjdGl2ZSBhdWRpbyBjb250ZXh0cy4gVXNlIGNvbWJpbmF0aW9uIG9mCisgICAgICogICAgICAgICAgICAgICAgICAgZmxhZ3MgZnJvbSBWZWhpY2xlQXVkaW9Db250ZXh0RmxhZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgaGludCB0byBhZGp1c3QgYXVkaW8gcG9saWN5IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgb3RoZXIgcG9saWN5IGRlY2lzaW9uLgorICAgICAqICAgICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBjYW4gYmUgbXVsdGlwbGUgY29udGV4dCBhY3RpdmUgYXQgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgc2FtZSB0aW1lLiBBbmQgYW5kcm9pZCBjYW4gc2VuZCB0aGUgc2FtZSBmb2N1cyByZXF1ZXN0CisgICAgICogICAgICAgICAgICAgICAgICAgdHlwZSBnYWluIGR1ZSB0byBjaGFuZ2UgaW4gYXVkaW8gY29udGV4dHMuCisgICAgICogTm90ZSB0aGF0IGVhY2ggZm9jdXMgcmVxdWVzdCBjYW4gcmVxdWVzdCBtdWx0aXBsZSBzdHJlYW1zIHRoYXQgaXMKKyAgICAgKiBleHBlY3RlZCB0byBiZSB1c2VkIGZvciB0aGUgY3VycmVudCByZXF1ZXN0LiBCdXQgZm9jdXMgcmVxdWVzdCBpdHNlbGYKKyAgICAgKiBpcyBnbG9iYWwgYmVoYXZpb3IgYXMgR0FJTiBvciBHQUlOX1RSQU5TSUVOVCBleHBlY3RzIGFsbCBzb3VuZHMgcGxheWVkCisgICAgICogYnkgY2FyJ3MgYXVkaW8gbW9kdWxlIHRvIHN0b3AuIE5vdGUgdGhhdCBzdHJlYW0gYWxyZWFkeSBhbGxvY2F0ZWQgdG8KKyAgICAgKiBhbmRyb2lkIGJlZm9yZSB0aGlzIGZvY3VzIHJlcXVlc3QgbXVzdCBub3QgYmUgYWZmZWN0ZWQgYnkgZm9jdXMKKyAgICAgKiByZXF1ZXN0LgorICAgICAqCisgICAgICogRm9jdXMgcmVzcG9uc2UgKHNldCBhbmQgc3Vic2NyaXB0aW9uIGNhbGxiYWNrIGZvciB0aGlzIHByb3BlcnR5KSBtdXN0CisgICAgICogdGFrZSB0aGUgZm9sbG93aW5nIGZvcm06CisgICAgICogICBpbnQzMlZhbHVlc1swXTogVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZSB0eXBlCisgICAgICogICBpbnQzMlZhbHVlc1sxXTogYml0IGZsYWdzIG9mIHN0cmVhbXMgYWxsb3dlZC4KKyAgICAgKiAgIGludDMyVmFsdWVzWzJdOiBFeHRlcm5hbCBmb2N1cyBzdGF0ZTogYml0IGZsYWdzIG9mIGN1cnJlbnRseSBhY3RpdmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICBhdWRpbyBmb2N1cyBpbiBjYXIgc2lkZSAob3V0c2lkZSBBbmRyb2lkKS4gQWN0aXZlCisgICAgICogICAgICAgICAgICAgICAgICAgYXVkaW8gZm9jdXMgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiBjdXJyZW50bHkKKyAgICAgKiAgICAgICAgICAgICAgICAgICBwbGF5aW5nLCBidXQgcmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgaGF2aW5nIGZvY3VzIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgd2FpdGluZyBmb3IgZm9jdXMgKHBhdXNlIHN0YXRlKS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBPbmUgb3IgY29tYmluYXRpb24gb2YgZmxhZ3MgZnJvbQorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAwIG1lYW5zIG5vIGFjdGl2ZSBhdWRpbyBmb2N1cyBob2xkZXIgb3V0c2lkZSBBbmRyb2lkLgorICAgICAqICAgICAgICAgICAgICAgICAgIFRoZSBzdGF0ZSBtdXN0IGhhdmUgZm9sbG93aW5nIHZhbHVlcyBmb3IgZWFjaAorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0ZvY3VzU3RhdGU6CisgICAgICogICAgICAgICAgICAgICAgICAgR0FJTjogMCBvciBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUExBWV9PTkxZX0ZMQUcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgd2hlbiByYWRpbyBpcyBhY3RpdmUgaW4gQW5kcm9pZCBzaWRlLgorICAgICAqICAgICAgICAgICAgICAgICAgIEdBSU5fVFJBTlNJRU5UOiAwLiBDYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BFUk1BTkVOVF9GTEFHIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNUUkFOU0lFTlRfRkxBRyBpZiBhbmRyb2lkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHNpZGUgaGFzIHJlcXVlc3RlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBSRVFVRVNUX0dBSU5fVFJBTlNJRU5UX01BWV9EVUNLIGFuZCBjYXIgc2lkZSBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICBkdWNraW5nLgorICAgICAqICAgICAgICAgICAgICAgICAgIExPU1M6IDAgd2hlbiBubyBmb2N1cyBpcyBhdWRpbyBpcyBhY3RpdmUgaW4gY2FyIHNpZGUuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQRVJNQU5FTlRfRkxBRyB3aGVuIGNhcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBzaWRlIGlzIHBsYXlpbmcgc29tZXRoaW5nIHBlcm1hbmVudC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBMT1NTX1RSQU5TSUVOVDogYWx3YXlzIG11c3QgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BFUk1BTkVOVF9GTEFHCisgICAgICogICBpbnQzMlZhbHVlc1szXTogY29udGV4dCByZXF1ZXN0ZWQgYnkgYW5kcm9pZCBzaWRlIHdoZW4gcmVzcG9uZGluZyB0bworICAgICAqICAgICAgICAgICAgICAgICAgIGZvY3VzIHJlcXVlc3QuIFdoZW4gY2FyIHNpZGUgaXMgdGFraW5nIGZvY3VzIGF3YXksCisgICAgICogICAgICAgICAgICAgICAgICAgdGhpcyBtdXN0IGJlIHplcm8uCisgICAgICoKKyAgICAgKiBBIGZvY3VzIHJlc3BvbnNlIG11c3QgYmUgc2VudCBwZXIgZWFjaCBmb2N1cyByZXF1ZXN0IGV2ZW4gaWYgdGhlcmUgaXMKKyAgICAgKiBubyBjaGFuZ2UgaW4gZm9jdXMgc3RhdGUuIFRoaXMgY2FuIGhhcHBlbiBpbiBjYXNlIGxpa2UgZm9jdXMgcmVxdWVzdAorICAgICAqIG9ubHkgaW52b2x2aW5nIGNvbnRleHQgY2hhbmdlIHdoZXJlIGFuZHJvaWQgc2lkZSBzdGlsbCBuZWVkcyBtYXRjaGluZworICAgICAqIGZvY3VzIHJlc3BvbnNlIHRvIGNvbmZpcm0gdGhhdCBhdWRpbyBtb2R1bGUgaGFzIG1hZGUgbmVjZXNzYXJ5IGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBJZiBjYXIgZG9lcyBub3Qgc3VwcG9ydCBBVURJT19GT0NVUywgZm9jdXMgaXMgYXNzdW1lZCB0byBiZSBncmFudGVkCisgICAgICogYWx3YXlzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEFVRElPX0ZPQ1VTID0gKAorICAgICAgICAweDA5MDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBBIHByb3BlcnR5IHRvIGFsbG93IGV4dGVybmFsIGNvbXBvbmVudCB0byBjb250cm9sIGF1ZGlvIGZvY3VzLiBEZXBlbmRpbmcgb24KKyAgICAgKiBIL1cgYXJjaGl0ZWN0dXJlLCBhdWRpbyBIQUwgbWF5IG5lZWQgdG8gY29udHJvbCBhdWRpbyBmb2N1cyB3aGlsZSB2ZWhpY2xlCisgICAgICogSEFMIGlzIHN0aWxsIGludGVyYWN0aW5nIHdpdGggdXBwZXIgbGF5ZXIuIEluIHN1Y2ggY2FzZSwgYXVkaW8gSEFMIG1heSBzZXQKKyAgICAgKiB0aGlzIHByb3BlcnR5IGFuZCB2ZWhpY2xlIEhBTCBtYXkgdXNlIHRoaXMgcHJvcGVydHkgdmFsdWUgdG8gZGVjaWRlCisgICAgICogcmVzcG9uc2Ugc2VudCB0aHJvdWdoIEFVRElPX0ZPQ1VTIHByb3BlcnR5LgorICAgICAqIERhdGEgZm9ybWF0IGlzIHRoZSBzYW1lIGFzIEFVRElPX0ZPQ1VTIHByb3BlcnR5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEFVRElPX0ZPQ1VTX0VYVF9TWU5DID0gKAorICAgICAgICAweDA5MTAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBjb250cm9sIGF1ZGlvIHZvbHVtZSBvZiBlYWNoIGF1ZGlvIGNvbnRleHQuCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnQXJyYXlbMF0gOiBiaXQgZmxhZ3Mgb2YgYWxsIHN1cHBvcnRlZCBhdWRpbyBjb250ZXh0cyBmcm9tCisgICAgICogICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0NvbnRleHRGbGFnLiBJZiB0aGlzIGlzIDAsIGF1ZGlvIHZvbHVtZSBpcworICAgICAqICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVkIHBlciBwaHlzaWNhbCBzdHJlYW0uCisgICAgICogICBjb25maWdBcnJheVsxXSA6IGZsYWdzIGRlZmluZWQgaW4gVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgcmVwcmVzZW50IGF1ZGlvIG1vZHVsZSdzIGNhcGFiaWxpdHkuCisgICAgICogICBjb25maWdBcnJheVsyLi4zXSA6IHJlc2VydmVkCisgICAgICogICBjb25maWdBcnJheVs0Li5OKzNdIDogbWF4aW11bSB2YWx1ZXMgZm9yIGVhY2ggYXVkaW8gY29udGV4dCwgd2hlcmUgTiBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgYXVkaW8gY29udGV4dHMgcHJvdmlkZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdBcnJheVswXSwgbWluaW11bSB2YWx1ZSBpcyBhbHdheXMgMCB3aGljaAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljYXRlcyBtdXRlIHN0YXRlLgorICAgICAqCisgICAgICogRGF0YSB0eXBlIGxvb2tzIGxpa2U6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IHN0cmVhbSBjb250ZXh0IGFzIGRlZmluZWQgaW4gVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuCisgICAgICogICAgICAgICAgICAgICAgICAgIElmIG9ubHkgcGh5c2ljYWwgc3RyZWFtIGlzIHN1cHBvcnRlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAoY29uZmlnQXJyYXlbMF0gPT0gMCksIHRoaXMgbXVzdCByZXByZXNlbnQgcGh5c2ljYWwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgc3RyZWFtIG51bWJlci4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogdm9sdW1lIGxldmVsLCB2YWxpZCByYW5nZSBpcyAwIChtdXRlKSB0byBtYXggbGV2ZWwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCBpbiB0aGUgY29uZmlnLgorICAgICAqICAgaW50MzJWYWx1ZXNbMl0gOiBPbmUgb2YgVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUuCisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IHJlcXVpcmVzIHBlciBzdHJlYW0gYmFzZWQgZ2V0LiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdAorICAgICAqIGNoZWNrIHN0cmVhbSBudW1iZXIgaW4gZ2V0IGNhbGwgdG8gcmV0dXJuIHRoZSByaWdodCB2b2x1bWUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBhbGwgYXVkaW8gY29udGV4dHMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEFVRElPX1ZPTFVNRSA9ICgKKyAgICAgICAgMHgwOTAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gYWxsb3cgYXVkaW8gdm9sdW1lIHN5bmMgZnJvbSBleHRlcm5hbCBjb21wb25lbnRzIGxpa2UgYXVkaW8gSEFMLgorICAgICAqIFNvbWUgdmVoaWNsZSBIQUwgaW1wbGVtZW50YXRpb24gbWF5IGdldCB2b2x1bWUgY29udHJvbCBmcm9tIGF1ZGlvIEhBTCBhbmQgaW4gc3VjaAorICAgICAqIGNhc2UsIHNldHRpbmcgQVVESU9fVk9MVU1FX0VYVF9TWU5DIHByb3BlcnR5IG1heSB0cmlnZ2VyIGV2ZW50IGluIEFVRElPX1ZPTFVNRSBwcm9wZXJ0eS4KKyAgICAgKiBEYXRhIGZvcm1hdCBmb3IgdGhpcyBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyBBVURJT19WT0xVTUUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBhbGwgYXVkaW8gY29udGV4dHMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEFVRElPX1ZPTFVNRV9FWFRfU1lOQyA9ICgKKyAgICAgICAgMHgwOTExCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgZm9yIGhhbmRsaW5nIHZvbHVtZSBsaW1pdCBzZXQgYnkgdXNlci4gVGhpcyBsaW1pdHMgbWF4aW11bQorICAgICAqIHZvbHVtZSB0aGF0IGNhbiBiZSBzZXQgcGVyIGVhY2ggY29udGV4dCBvciBwaHlzaWNhbCBzdHJlYW0uCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnQXJyYXlbMF0gOiBiaXQgZmxhZ3Mgb2YgYWxsIHN1cHBvcnRlZCBhdWRpbyBjb250ZXh0cy4gSWYgdGhpcyBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAwLCBhdWRpbyB2b2x1bWUgaXMgY29udHJvbGxlZCBwZXIgcGh5c2ljYWwgc3RyZWFtLgorICAgICAqICAgY29uZmlnQXJyYXlbMV0gOiBmbGFncyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnCisgICAgICogICAgICAgICAgICAgICAgICAgIHRvIHJlcHJlc2VudCBhdWRpbyBtb2R1bGUncyBjYXBhYmlsaXR5LgorICAgICAqCisgICAgICogRGF0YSB0eXBlIGxvb2tzIGxpa2U6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IHN0cmVhbSBjb250ZXh0IGFzIGRlZmluZWQgaW4gVmVoaWNsZUF1ZGlvRm9jdXNGbGFnLgorICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBvbmx5IHBoeXNpY2FsIHN0cmVhbSBpcyBzdXBwb3J0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZ0FycmF5WzBdID09IDApLCB0aGlzIG11c3QgcmVwcmVzZW50IHBoeXNpY2FsCisgICAgICogICAgICAgICAgICAgICAgICAgIHN0cmVhbSBudW1iZXIuCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IG1heGltdW0gdm9sdW1lIHNldCB0byB0aGUgc3RyZWFtLiBJZiB0aGVyZSBpcyBubworICAgICAqICAgICAgICAgICAgICAgICAgICByZXN0cmljdGlvbiwgdGhpcyB2YWx1ZSBtdXN0IGJlICBiaWdnZXIgdGhhbgorICAgICAqICAgICAgICAgICAgICAgICAgICBBVURJT19WT0xVTUUncyBtYXggdmFsdWUuCisgICAgICoKKyAgICAgKiBJZiBjYXIgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUsIHRoaXMgcHJvcGVydHkgbXVzdCBub3QgYmUKKyAgICAgKiBwb3B1bGF0ZWQgYnkgSEFMLgorICAgICAqIFRoaXMgcHJvcGVydHkgcmVxdWlyZXMgcGVyIHN0cmVhbSBiYXNlZCBnZXQuIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0CisgICAgICogY2hlY2sgc3RyZWFtIG51bWJlciBpbiBnZXQgY2FsbCB0byByZXR1cm4gdGhlIHJpZ2h0IHZvbHVtZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX2ZsYWdzIGFsbCBhdWRpbyBjb250ZXh0cyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQVVESU9fVk9MVU1FX0xJTUlUID0gKAorICAgICAgICAweDA5MDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBzaGFyZSBhdWRpbyByb3V0aW5nIHBvbGljeSBvZiBhbmRyb2lkIHNpZGUuIFRoaXMgcHJvcGVydHkgaXMKKyAgICAgKiBzZXQgYXQgdGhlIGJlZ2lubmluZyB0byBwYXNzIGF1ZGlvIHBvbGljeSBpbiBhbmRyb2lkIHNpZGUgZG93biB0bworICAgICAqIHZlaGljbGUgSEFMIGFuZCBjYXIgYXVkaW8gbW9kdWxlLgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBoaW50IHRvIGFkanVzdCBhdWRpbyBwb2xpY3kgb3Igb3RoZXIgcG9saWN5CisgICAgICogZGVjaXNpb24uCisgICAgICoKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogYXVkaW8gc3RyZWFtIHdoZXJlIHRoZSBhdWRpbyBmb3IgdGhlIGFwcGxpY2F0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIGNvbnRleHQgbXVzdCBiZSByb3V0ZWQgYnkgZGVmYXVsdC4gTm90ZSB0aGF0IHRoaXMgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhlIGRlZmF1bHQgc2V0dGluZyBmcm9tIHN5c3RlbSwgYnV0IGVhY2ggYXBwIG1heQorICAgICAqICAgICAgICAgICAgICAgICAgICBzdGlsbCB1c2UgZGlmZmVyZW50IGF1ZGlvIHN0cmVhbSBmb3Igd2hhdGV2ZXIgcmVhc29uLgorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBBbGwgYXVkaW8gY29udGV4dHMgdGhhdCBtdXN0IGJlIHNlbnQgdGhyb3VnaCB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsIHN0cmVhbS4gRmxhZyBpcyBkZWZpbmVkIGluCisgICAgICogICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9Gb2N1c0ZsYWcuCisKKyAgICAgKiBTZXR0aW5nIG9mIHRoaXMgcHJvcGVydHkgbXVzdCBiZSBkb25lIGZvciBhbGwgYXZhaWxhYmxlIHBoeXNpY2FsIHN0cmVhbXMKKyAgICAgKiBiYXNlZCBvbiBhdWRpbyBIL1cgdmFyaWFudCBpbmZvcm1hdGlvbiBhY3F1aXJlZCBmcm9tIEFVRElPX0hXX1ZBUklBTlQKKyAgICAgKiBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOldSSVRFCisgICAgICovCisgICAgQVVESU9fUk9VVElOR19QT0xJQ1kgPSAoCisgICAgICAgIDB4MDkwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIHJldHVybiBhdWRpbyBIL1cgdmFyaWFudCB0eXBlIHVzZWQgaW4gdGhpcyBjYXIuIFRoaXMgYWxsb3dzCisgICAgICogYW5kcm9pZCBzaWRlIHRvIHN1cHBvcnQgZGlmZmVyZW50IGF1ZGlvIHBvbGljeSBiYXNlZCBvbiBIL1cgdmFyaWFudCB1c2VkLgorICAgICAqIE5vdGUgdGhhdCBvdGhlciBjb21wb25lbnRzIGxpa2UgQ2FyU2VydmljZSBtYXkgbmVlZCBvdmVybGF5IHVwZGF0ZSB0bworICAgICAqIHN1cHBvcnQgYWRkaXRpb25hbCB2YXJpYW50cy4gSWYgdGhpcyBwcm9wZXJ0eSBkb2VzIG5vdAorICAgICAqIGV4aXN0LCBkZWZhdWx0IGF1ZGlvIHBvbGljeSBtdXN0IGJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGNvbmZpZ19mbGFncyBBZGRpdGlvbmFsIGluZm8gb24gYXVkaW8gSC9XLiBNdXN0IHVzZQorICAgICAqICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvSHdWYXJpYW50Q29uZmlnRmxhZyBmb3IgdGhpcy4KKyAgICAgKi8KKyAgICBBVURJT19IV19WQVJJQU5UID0gKAorICAgICAgICAweDA5MDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIHBhc3MgaGludCBvbiBleHRlcm5hbCBhdWRpbyByb3V0aW5nLiBXaGVuIGFuZHJvaWQgc2lkZQorICAgICAqIHJlcXVlc3QgZm9jdXMgd2l0aCBWZWhpY2xlQXVkaW9FeHRGb2N1c2ZsYWcsIHRoaXMKKyAgICAgKiBwcm9wZXJ0eSBtdXN0IGJlIHNldCBiZWZvcmUgc2V0dGluZyBBVURJT19GT0NVUyBwcm9wZXJ0eSBhcyBhIGhpbnQgZm9yCisgICAgICogZXh0ZXJuYWwgYXVkaW8gc291cmNlIHJvdXRpbmcuCisgICAgICogTm90ZSB0aGF0IHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBhbG9uZSBtdXN0IG5vdCB0cmlnZ2VyIGFueSBjaGFuZ2UuCisgICAgICogQXVkaW8gcm91dGluZyBtdXN0IGJlIGNoYW5nZWQgb25seSB3aGVuIEFVRElPX0ZPQ1VTIHByb3BlcnR5IGlzIHNldC4KKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBwcm9wZXJ0eSBhbGxvd3MgcGFzc2luZyBjdXN0b20gdmFsdWUgYXMgbG9uZyBhcyBpdCBpcworICAgICAqIGRlZmluZWQgaW4gVmVoaWNsZVByb3BDb25maWcjY29uZmlnU3RyaW5nLiBUaGlzIGFsbG93cyBzdXBwb3J0aW5nCisgICAgICogbm9uLXN0YW5kYXJkIHJvdXRpbmcgb3B0aW9ucyB0aHJvdWdoIHRoaXMgcHJvcGVydHkuCisgICAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHNlcGFyYXRlIG5hbWUgc3BhY2UgZm9yIGN1c3RvbSBwcm9wZXJ0eSB0bworICAgICAqIHByZXZlbnQgY29uZmxpY3QgaW4gZnV0dXJlIGFuZHJvaWQgcmVsZWFzZXMuCisgICAgICogRW5hYmxpbmcgZWFjaCBleHRlcm5hbCByb3V0aW5nIG9wdGlvbiBpcyBkb25lIGJ5IGVuYWJsaW5nIGVhY2ggYml0IGZsYWcKKyAgICAgKiBmb3IgdGhlIHJvdXRpbmcuCisgICAgICogVGhpcyBwcm9wZXJ0eSBjYW4gc3VwcG9ydCB1cCB0byAxMjggZXh0ZXJuYWwgcm91dGluZ3MuCisgICAgICogVG8gZ2l2ZSBmdWxsIGZsZXhpYmlsaXR5LCB0aGVyZSBpcyBubyBzdGFuZGFyZCBkZWZpbml0aW9uIGZvciBlYWNoIGJpdAorICAgICAqIGZsYWcgYW5kIGFzc2lnbmluZyBlYWNoIGJpZyBmbGFnIHRvIHNwZWNpZmljIHJvdXRpbmcgdHlwZSBpcyBkZWNpZGVkIGJ5CisgICAgICogVmVoaWNsZVByb3BDb25maWcjY29uZmlnU3RyaW5nLiAgVmVoaWNsZVByb3BDb25maWcjY29uZmlnU3RyaW5nIGhhcworICAgICAqIGZvcm1hdCBvZiBlYWNoIGVudHJ5IHNlcGFyYXRlZCBieSAnLCcgYW5kIGVhY2ggZW50cnkgaGFzIGZvcm1hdCBvZgorICAgICAqIGJpdEZsYWdQb3NpdG9uOnR5cGVTdHJpbmdbOnBoeXNpY2FsU3RyZWFtTnVtYmVyXS4KKyAgICAgKiAgYml0RmxhZ1Bvc2l0aW9uOiByZXByZXNlbnRzIHdoaWNoIGJpZyBmbGFnIHdpbGwgYmUgc2V0IHRvIGVuYWJsZSB0aGlzCisgICAgICogIHJvdXRpbmcuIDAgbWVhbnMKKyAgICAgKiAgICBMU0IgaW4gaW50MzJWYWx1ZXNbMF0uIDMxIHdpbGwgYmUgTVNCIGluIGludDMyVmFsdWVzWzBdLiAxMjcgd2lsbCBNU0IKKyAgICAgKiAgICBpbiBpbnQzMlZhbHVlc1szXS4KKyAgICAgKiAgdHlwZVN0cmluZzogc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGV4dGVybmFsIHJvdXRpbmcuIFNvbWUgdHlwZXMgYXJlCisgICAgICogICAgYWxyZWFkeSBkZWZpbmVkIGluIEFVRElPX0VYVF9ST1VUSU5HX1NPVVJDRV8qIGFuZCB1c2UgdGhlbSBmaXJzdAorICAgICAqICAgIGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIGN1c3RvbS4gQXBwbGljYXRpb25zIHdpbGwgZmluZCBlYWNoIHJvdXRpbmcKKyAgICAgKiAgICB1c2luZyB0aGlzIHN0cmluZy4KKyAgICAgKiAgcGh5c2ljYWxTdHJlYW1OdW1iZXI6IFRoaXMgcGFydCBpcyBvcHRpb25hbCBhbmQgcmVwcmVzZW50cyBwaHlzaWNhbAorICAgICAqICAgIHN0cmVhbSB0byBhbmRyb2lkIHdoaWNoIHdpbGwgYmUgZGlzYWJsZWQgd2hlbiB0aGlzIHJvdXRpbmcgaXMgZW5hYmxlZC4KKyAgICAgKiAgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGlzIHJvdXRpbmcgbXVzdCBub3QgYWZmZWN0IHBoeXNpY2FsIHN0cmVhbXMgdG8KKyAgICAgKiAgICBhbmRyb2lkLgorICAgICAqIEFzIGFuIGV4YW1wbGUsIGxldCdzIGFzc3VtZSBhIHN5c3RlbSB3aXRoIHR3byBwaHlzaWNhbCBzdHJlYW1zLCAwIGZvcgorICAgICAqIG1lZGlhIGFuZCAxIGZvciBuYXYgZ3VpZGFuY2UuIEFuZCBsZXQncyBhc3N1bWUgZXh0ZXJuYWwgcm91dGluZyBvcHRpb24KKyAgICAgKiBvZiBhbSBmbSByYWRpbywgZXh0ZXJuYWwgbmF2aWdhdGlvbiBndWlkYW5jZSwgc2F0ZWxsaXRlIHJhZGlvLCBhbmQgb25lCisgICAgICogY3VzdG9tLiBMZXQncyBhc3N1bWUgdGhhdCByYWRpbyBhbmQgc2F0ZWxsaXRlIHJlcGxhY2VzIHBoeXNpY2FsIHN0cmVhbSAwCisgICAgICogYW5kIGV4dGVybmFsIG5hdmlnYXRpb24gcmVwbGFjZXMgcGh5c2ljYWwgc3RyZWFtIDEuIEFuZCBiaXQgZmxhZyB3aWxsIGJlCisgICAgICogYXNzaWduZWQgaW4gdGhlIG9yZGVyIGxpc3RlZCBhYm92ZS4gVGhpcyBjb25maWd1cmF0aW9uIHdpbGwgbG9vayBsaWtlCisgICAgICogdGhpcyBpbiBjb25maWdfc3RyaW5nOgorICAgICAqICAiMDpSQURJT19BTV9GTTowLDE6RVhUX05BVl9HVUlEQU5DRToxLDI6UkFESU9fU0FURUxMSVRFOjAsMzpjb20udGVzdC5TT01FVEhJTkdfQ1VTVE9NIgorICAgICAqIFdoZW4gYW5kcm9pZCByZXF1ZXN0cyBSQURJT19BTV9GTSwgaW50MzJWYWx1ZXNbMF0gd2lsbCBiZSBzZXQgdG8gMHgxLgorICAgICAqIFdoZW4gYW5kcm9pZCByZXF1ZXN0cyBSQURJT19TQVRFTExJVEUgKyBFWFRfTkFWX0dVSURBTkNFLCBpbnQzMlZhbHVlc1swXQorICAgICAqIHdpbGwgYmUgc2V0IHRvIDB4MnwweDQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19zdHJpbmcgTGlzdCBvZiBhbGwgYXZhaWFibGUgZXh0ZXJuYWwgc291cmNlIGluIHRoZSBzeXN0ZW0uCisgICAgICovCisgICAgQVVESU9fRVhUX1JPVVRJTkdfSElOVCA9ICgKKyAgICAgICAgMHgwOTA1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBzdGF0ZSBvZiBhdWRpbyBzdHJlYW0uIEF1ZGlvIEhBTCBzaG91bGQgc2V0IHRoaXMgd2hlbiBhIHN0cmVhbSBpcyBzdGFydGluZyBvcgorICAgICAqIGVuZGluZy4gQ2FyIHNlcnZpY2UgY2FuIHJlcXVlc3QgZm9jdXMgZm9yIGF1ZGlvIHBsYXllZCB3aXRob3V0IGZvY3VzLiBJZiBzdWNoIGZlYXR1cmUKKyAgICAgKiBpcyBub3QgcmVxdWlyZWQsIHRoaXMgcHJvcGVydHkgZG9lcyBub3QgbmVlZCB0byBiZSBpbXBsZW1lbnRlZC4KKyAgICAgKiBDYXIgc2VydmljZSBvbmx5IG1vbml0b3JzIHNldHRpbmcgb2YgdGhpcyBwcm9wZXJ0eS4gSXQgaXMgdXAgdG8gZWFjaCB2ZWhpY2xlIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uIHRvIGFkZCBuZWNlc3NhcnkgYWN0aW9uIGJ1dCBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdpbGwgYmUgZG9pbmcgbm90aGluZyBvbgorICAgICAqIHRoaXMgcHJvcGVyeSdzIHNldCBmcm9tIGF1ZGlvIEhBTC4KKyAgICAgKiBBY3R1YWwgc3RyZWFtaW5nIG9mIGRhdGEgc2hvdWxkIGJlIGRvbmUgb25seSBhZnRlciBnZXR0aW5nIGZvY3VzIGZvciB0aGUgZ2l2ZW4gc3RyZWFtIGZyb20KKyAgICAgKiBjYXIgYXVkaW8gbW9kdWxlLiBGb2N1cyBjYW4gYmUgYWxyZWFkeSBncmFudGVkIHdoZW4gc3RyZWFtIGlzIHN0YXJ0ZWQuIEZvY3VzIHN0YXRlIGNhbiBiZQorICAgICAqIG1vbml0b3JlZCBieSBtb25pdG9yaW5nIEFVRElPX0ZPQ1VTIHByb3BlcnR5LiBJZiBjYXIgZG9lcyBub3Qgc3VwcG9ydAorICAgICAqIEFVRElPX0ZPQ1VTIHByb3BlcnR5LCB0aGVyZSBpcyBubyBuZWVkIHRvIG1vbml0b3IgZm9jdXMgYXMgZm9jdXMgaXMgYXNzdW1lZCB0byBiZQorICAgICAqIGdyYW50ZWQgYWx3YXlzLgorICAgICAqIERhdGEgaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICAgICAqICAgaW50MzJfYXJyYXlbMF0gOiB2ZWhpY2xlX2F1ZGlvX3N0cmVhbV9zdGF0ZSwgMDogc3RvcHBlZCwgMTogc3RhcnRlZAorICAgICAqICAgaW50MzJfYXJyYXlbMV0gOiBzdHJlYW0gbnVtYmVyIGxpa2UgMCwgMSwgMiwgLi4uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgQVVESU9fU1RSRUFNX1NUQVRFICA9ICgKKyAgICAgICAgMHgwOTA2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gY29udHJvbCBjYXIgc3BlY2lmaWMgYXVkaW8gcGFyYW1ldGVycy4gRWFjaCBwYXJhbWV0ZXIgaXMgZGVmaW5lZCBhcyBzdHJpbmcga2V5LQorICAgICAqIHZhbHVlIHBhaXIuCisgICAgICogc2V0IGFuZCBldmVudCBub3RpZmljYXRpb24gY2FuIHBhc3MgbXVsdGlwbGUgcGFyYW1ldGVycyB1c2luZyB0aGUKKyAgICAgKiBmb2xsb3dpbmcgZm9ybWF0OgorICAgICAqICAga2V5MT12YWx1ZTE7a2V5Mj12YWx1ZTI7Li4uCisgICAgICogZ2V0IGNhbGwgY2FuIHJlcXVlc3QgbXVsdGlwbGUgcGFyYW1ldGVycyB1c2luZyB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAgICAgKiAgIGtleTE7a2V5MjsuLi4KKyAgICAgKiBSZXNwb25zZSBmb3IgZ2V0IGNhbGwgaGFzIHRoZSBzYW1lIGZvcm1hdCBhcyBzZXQuCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnU3RyaW5nOiBnaXZlIGxpc3Qgb2YgYWxsIHN1cHBvcnRlZCBrZXlzIHdpdGggOyBhcyBzZXBhcmF0b3IuIEZvciBleGFtcGxlOgorICAgICAqICAgICBrZXkxO2tleTI7Li4uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgQVVESU9fUEFSQU1FVEVSUyA9ICgKKyAgICAgICAgMHg5MDcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOlNUUklORworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBjb250cm9sIHBvd2VyIHN0YXRlIG9mIGFwcGxpY2F0aW9uIHByb2Nlc3NvcgorICAgICAqCisgICAgICogSXQgaXMgYXNzdW1lZCB0aGF0IEFQJ3MgcG93ZXIgc3RhdGUgaXMgY29udHJvbGxlciBieSBzZXBhcmF0ZSBwb3dlcgorICAgICAqIGNvbnRyb2xsZXIuCisgICAgICoKKyAgICAgKiBGb3IgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiwgVmVoaWNsZVByb3BDb25maWcuY29uZmlnRmxhZ3MgY2FuCisgICAgICogaGF2ZSBiaXQgZmxhZyBjb21iaW5pbmcgdmFsdWVzIGluIFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnLgorICAgICAqCisgICAgICogVmFsdWUgZm9ybWF0IGZvciBJVmVoaWNsZSNnZXQgLyBJVmVoaWNsZSNzdWJzY3JpYmU6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IHZlaGljbGVfYXBfcG93ZXJfc3RhdGVfdHlwZQorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBhZGRpdGlvbmFsIHBhcmFtZXRlciByZWxldmFudCBmb3IgZWFjaCBzdGF0ZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgMCBpZiBub3QgdXNlZC4KKyAgICAgKiBWYWx1ZSBmb3JtYXQgZm9yIElWZWhpY2xlI3NldDoKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogdmVoaWNsZV9hcF9wb3dlcl9zdGF0ZV9zZXRfdHlwZQorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBhZGRpdGlvbmFsIHBhcmFtZXRlciByZWxldmFudCBmb3IgZWFjaCByZXF1ZXN0LiBzaG91bGQgYmUgMCBpZiBub3QgdXNlZC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWRUhJQ0xFX1BST1BfQ0hBTkdFX01PREVfT05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWRUhJQ0xFX1BST1BfQUNDRVNTX1JFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBUF9QT1dFUl9TVEFURSA9ICgKKyAgICAgICAgMHgwQTAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gcmVwcmVzZW50IGJyaWdodG5lc3Mgb2YgdGhlIGRpc3BsYXkuIFNvbWUgY2FycyBoYXZlIHNpbmdsZQorICAgICAqIGNvbnRyb2wgZm9yIHRoZSBicmlnaHRuZXNzIG9mIGFsbCBkaXNwbGF5cyBhbmQgdGhpcyBwcm9wZXJ0eSBpcyB0byBzaGFyZQorICAgICAqIGNoYW5nZSBpbiB0aGF0IGNvbnRyb2wuCisgICAgICoKKyAgICAgKiBJZiB0aGlzIGlzIHdyaXRhYmxlLCBhbmRyb2lkIHNpZGUgY2FuIHNldCB0aGlzIHZhbHVlIHdoZW4gdXNlciBjaGFuZ2VzCisgICAgICogZGlzcGxheSBicmlnaHRuZXNzIGZyb20gU2V0dGluZ3MuIElmIHRoaXMgaXMgcmVhZCBvbmx5LCB1c2VyIG1heSBzdGlsbAorICAgICAqIGNoYW5nZSBkaXNwbGF5IGJyaWdodG5lc3MgZnJvbSBTZXR0aW5ncywgYnV0IHRoYXQgd2lsbCBub3QgYmUgcmVmbGVjdGVkCisgICAgICogdG8gb3RoZXIgZGlzcGxheXMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgRElTUExBWV9CUklHSFRORVNTID0gKAorICAgICAgICAweDBBMDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIHJlcG9ydCBib290dXAgcmVhc29uIGZvciB0aGUgY3VycmVudCBwb3dlciBvbi4gVGhpcyBpcyBhCisgICAgICogc3RhdGljIHByb3BlcnR5IHRoYXQgd2lsbCBub3QgY2hhbmdlIGZvciB0aGUgd2hvbGUgZHVyYXRpb24gdW50aWwgcG93ZXIKKyAgICAgKiBvZmYuIEZvciBleGFtcGxlLCBldmVuIGlmIHVzZXIgcHJlc3NlcyBwb3dlciBvbiBidXR0b24gYWZ0ZXIgYXV0b21hdGljCisgICAgICogcG93ZXIgb24gd2l0aCBkb29yIHVubG9jaywgYm9vdHVwIHJlYXNvbiBtdXN0IHN0YXkgd2l0aAorICAgICAqIFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uI1VTRVJfVU5MT0NLLgorICAgICAqCisgICAgICogaW50MzJWYWx1ZXNbMF0gbXVzdCBiZSBWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAqLworICAgIEFQX1BPV0VSX0JPT1RVUF9SRUFTT04gPSAoCisgICAgICAgIDB4MEEwMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gZmVlZCBIL1cgaW5wdXQgZXZlbnRzIHRvIGFuZHJvaWQKKyAgICAgKgorICAgICAqIGludDMyVmFsdWVzWzBdIDogYWN0aW9uIGRlZmluZWQgYnkgVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24KKyAgICAgKiBpbnQzMlZhbHVlc1sxXSA6IGtleSBjb2RlLCBtdXN0IHVzZSBzdGFuZGFyZCBhbmRyb2lkIGtleSBjb2RlCisgICAgICogaW50MzJWYWx1ZXNbMl0gOiB0YXJnZXQgZGlzcGxheSBkZWZpbmVkIGluIFZlaGljbGVEaXNwbGF5LiBFdmVudHMgbm90CisgICAgICogICAgICAgICAgICAgICAgICB0aWVkIHRvIHNwZWNpZmljIGRpc3BsYXkgbXVzdCBiZSBzZW50IHRvCisgICAgICogICAgICAgICAgICAgICAgICBWZWhpY2xlRGlzcGxheSNNQUlOLgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAY29uZmlnX2ZsYWdzCisgICAgICovCisgICAgSFdfS0VZX0lOUFVUID0gKAorICAgICAgICAweDBBMTAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBkZWZpbmUgaW5zdHJ1bWVudCBjbHVzdGVyIGluZm9ybWF0aW9uLgorICAgICAqIEZvciBWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlOkVYVEVSTkFMX0RJU1BMQVk6CisgICAgICogIFJFQUQ6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IFRoZSBjdXJyZW50IHNjcmVlbiBtb2RlIGluZGV4LiBTY3JlZW4gbW9kZSBpcyBkZWZpbmVkCisgICAgICogICAgICAgICAgICAgICAgICAgIGFzIGEgY29uZmlndXJhdGlvbiBpbiBjYXIgc2VydmljZSBhbmQgcmVwcmVzZW50cworICAgICAqICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmVhIG9mIHNjcmVlbiBpcyByZW5kZXJhYmxlLgorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBBbmRyb2lkIGNhbiByZW5kZXIgdG8gaW5zdHJ1bWVudCBjbHVzdGVyICg9MSkgb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgbm90KD0wKS4gV2hlbiB0aGlzIGlzIDAsIGluc3RydW1lbnQgY2x1c3RlciBtYXkgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHNvbWUgaW5mb3JtYXRpb24gaW4gdGhlIGFyZWEgYWxsb2NhdGVkIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICBhbmRyb2lkIGFuZCBhbmRyb2lkIHNpZGUgcmVuZGVyaW5nIGlzIGludmlzaWJsZS4KKyAgICAgKiAgV1JJVEUgZnJvbSBhbmRyb2lkOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBQcmVmZXJyZWQgbW9kZSBmb3IgYW5kcm9pZCBzaWRlLiBEZXBlbmRpbmcgb24gdGhlIGFwcAorICAgICAqICAgICAgICAgICAgICAgICAgICByZW5kZXJpbmcgdG8gaW5zdHJ1bWVudCBjbHVzdGVyLCBwcmVmZXJyZWQgbW9kZSBjYW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY2hhbmdlLiBJbnN0cnVtZW50IGNsdXN0ZXIgc3RpbGwgbmVlZHMgdG8gc2VuZAorICAgICAqICAgICAgICAgICAgICAgICAgICBldmVudCB3aXRoIG5ldyBtb2RlIHRvIHRyaWdnZXIgYWN0dWFsIG1vZGUgY2hhbmdlLgorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBUaGUgY3VycmVudCBhcHAgY29udGV4dCByZWxldmFudCBmb3IgaW5zdHJ1bWVudAorICAgICAqICAgICAgICAgICAgICAgICAgICBjbHVzdGVyLiBVc2UgdGhlIHNhbWUgZmxhZyB3aXRoIFZlaGljbGVBdWRpb0ZvY3VzRmxhZworICAgICAqICAgICAgICAgICAgICAgICAgICBidXQgdGhpcyBjb250ZXh0IHJlcHJlc2VudHMgYWN0aXZlIGFwcHMsIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgICBhY3RpdmUgYXVkaW8uIEluc3RydW1lbnQgY2x1c3RlciBzaWRlIG1heSBjaGFuZ2UgbW9kZQorICAgICAqICAgICAgICAgICAgICAgICAgICBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgY29udGV4dHMuCisgICAgICogIFdoZW4gc3lzdGVtIGJvb3RzIHVwLCBBbmRyb2lkIHNpZGUgd2lsbCB3cml0ZSB7MCwgMCwgMCwgMH0gd2hlbiBpdCBpcworICAgICAqICByZWFkeSB0byByZW5kZXIgdG8gaW5zdHJ1bWVudCBjbHVzdGVyLiBCZWZvcmUgdGhpcyBtZXNzYWdlLCByZW5kZXJpbmcKKyAgICAgKiAgZnJvbSBhbmRyb2lkIG11c3Qgbm90IGJlIHZpc2libGUgaW4gdGhlIGNsdXN0ZXIuCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdBcnJheSAwOlZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUgMTpodyB0eXBlCisgICAgICovCisgICAgSU5TVFJVTUVOVF9DTFVTVEVSX0lORk8gPSAoCisgICAgICAgIDB4MEEyMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgZGF0ZSBhbmQgdGltZSwgZW5jb2RlZCBhcyBVbml4IHRpbWUuCisgICAgICogVGhpcyB2YWx1ZSBkZW5vdGVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZQorICAgICAqIDEvMS8xOTcwLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fU0VUCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEB1bml0IFZlaGljbGVVbml0OlNFQ1MKKyAgICAgKi8KKyAgICBVTklYX1RJTUUgPSAoCisgICAgICAgIDB4MEEzMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UNjQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ3VycmVudCB0aW1lIG9ubHkuCisgICAgICogU29tZSB2ZWhpY2xlcyBtYXkgbm90IGtlZXAgdHJhY2sgb2YgZGF0ZS4gIFRoaXMgcHJvcGVydHkgb25seSBhZmZlY3RzCisgICAgICogdGhlIGN1cnJlbnQgdGltZSwgaW4gc2Vjb25kcyBkdXJpbmcgdGhlIGRheS4gIFRodXMsIHRoZSBtYXggdmFsdWUgZm9yCisgICAgICogdGhpcyBwYXJhbWV0ZXIgaXMgODYsNDAwICgyNCAqIDYwICogNjApCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9TRVQKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6U0VDUworICAgICAqLworICAgIENVUlJFTlRfVElNRV9JTl9TRUNPTkRTID0gKAorICAgICAgICAweDBBMzEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIERvb3IgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYW4gaW50ZWdlciBpbiBjYXNlIGEgZG9vciBtYXkgYmUgc2V0IHRvIGEgcGFydGljdWxhciBwb3NpdGlvbi4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGZ1bGx5IG9wZW4sIG1pbiB2YWx1ZSAoMCkgaW5kaWNhdGVzIGZ1bGx5IGNsb3NlZC4KKyAgICAgKgorICAgICAqIFNvbWUgdmVoaWNsZXMgKG1pbml2YW5zKSBjYW4gb3BlbiB0aGUgZG9vciBlbGVjdHJvbmljYWxseS4gIEhlbmNlLCB0aGUKKyAgICAgKiBhYmlsaXR5IHRvIHdyaXRlIHRoaXMgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgRE9PUl9QT1MgPSAoCisgICAgICAgIDB4MEIwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpET09SKSwKKworICAgIC8qKgorICAgICAqIERvb3IgbW92ZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERPT1JfTU9WRSA9ICgKKyAgICAgICAgMHgwQjAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkRPT1IpLAorCisgICAgLyoqCisgICAgICogRG9vciBsb2NrCisgICAgICoKKyAgICAgKiAndHJ1ZScgaW5kaWNhdGVzIGRvb3IgaXMgbG9ja2VkCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgRE9PUl9MT0NLID0gKAorICAgICAgICAweDBCMDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpET09SKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBaIFBvc2l0aW9uCisgICAgICoKKyAgICAgKiBQb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgdGlsdCB1cHdhcmRzLCBuZWdhdGl2ZSB2YWx1ZSBpcyBkb3dud2FyZHMKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfWl9QT1MgPSAoCisgICAgICAgIDB4MEI0MAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIFogTW92ZQorICAgICAqCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGVzIHRpbHQgdXB3YXJkcywgbmVnYXRpdmUgdmFsdWUgaXMgZG93bndhcmRzCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX1pfTU9WRSA9ICgKKyAgICAgICAgMHgwQjQxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOk1JUlJPUiksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgWSBQb3NpdGlvbgorICAgICAqCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGUgdGlsdCByaWdodCwgbmVnYXRpdmUgdmFsdWUgaXMgbGVmdAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9ZX1BPUyA9ICgKKyAgICAgICAgMHgwQjQyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOk1JUlJPUiksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgWSBNb3ZlCisgICAgICoKKyAgICAgKiBQb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZSB0aWx0IHJpZ2h0LCBuZWdhdGl2ZSB2YWx1ZSBpcyBsZWZ0CisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX1lfTU9WRSA9ICgKKyAgICAgICAgMHgwQjQzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOk1JUlJPUiksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgTG9jaworICAgICAqCisgICAgICogVHJ1ZSBpbmRpY2F0ZXMgbWlycm9yIHBvc2l0aW9ucyBhcmUgbG9ja2VkIGFuZCBub3QgY2hhbmdlYWJsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9MT0NLID0gKAorICAgICAgICAweDBCNDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIEZvbGQKKyAgICAgKgorICAgICAqIFRydWUgaW5kaWNhdGVzIG1pcnJvcnMgYXJlIGZvbGRlZAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9GT0xEID0gKAorICAgICAgICAweDBCNDUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogU2VhdCBtZW1vcnkgc2VsZWN0CisgICAgICoKKyAgICAgKiBUaGlzIHBhcmFtZXRlciBzZWxlY3RzIHRoZSBtZW1vcnkgcHJlc2V0IHRvIHVzZSB0byBzZWxlY3QgdGhlIHNlYXQKKyAgICAgKiBwb3NpdGlvbi4gVGhlIG1pblZhbHVlIGlzIGFsd2F5cyAwLCBhbmQgdGhlIG1heFZhbHVlIGRldGVybWluZXMgdGhlCisgICAgICogbnVtYmVyIG9mIHNlYXQgcG9zaXRpb25zIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEZvciBpbnN0YW5jZSwgaWYgdGhlIGRyaXZlcidzIHNlYXQgaGFzIDMgbWVtb3J5IHByZXNldHMsIHRoZSBtYXhWYWx1ZQorICAgICAqIHdpbGwgYmUgMy4gV2hlbiB0aGUgdXNlciB3YW50cyB0byBzZWxlY3QgYSBwcmVzZXQsIHRoZSBkZXNpcmVkIHByZXNldAorICAgICAqIG51bWJlciAoMSwgMiwgb3IgMykgaXMgc2V0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6V1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX01FTU9SWV9TRUxFQ1QgPSAoCisgICAgICAgIDB4MEI4MAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgbWVtb3J5IHNldAorICAgICAqCisgICAgICogVGhpcyBzZXR0aW5nIGFsbG93cyB0aGUgdXNlciB0byBzYXZlIHRoZSBjdXJyZW50IHNlYXQgcG9zaXRpb24gc2V0dGluZ3MKKyAgICAgKiBpbnRvIHRoZSBzZWxlY3RlZCBwcmVzZXQgc2xvdC4gIFRoZSBtYXhWYWx1ZSBmb3IgZWFjaCBzZWF0IHBvc2l0aW9uCisgICAgICogc2hhbGwgbWF0Y2ggdGhlIG1heFZhbHVlIGZvciBTRUFUX01FTU9SWV9TRUxFQ1QuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpXUklURQorICAgICAqLworICAgIFNFQVRfTUVNT1JZX1NFVCA9ICgKKyAgICAgICAgMHgwQjgxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdGJlbHQgYnVja2xlZAorICAgICAqCisgICAgICogVHJ1ZSBpbmRpY2F0ZXMgYmVsdCBpcyBidWNrbGVkLgorICAgICAqCisgICAgICogV3JpdGUgYWNjZXNzIGluZGljYXRlcyBhdXRvbWF0aWMgc2VhdCBidWNrbGluZyBjYXBhYmlsaXRpZXMuICBUaGVyZSBhcmUKKyAgICAgKiBubyBrbm93biBjYXJzIGF0IHRoaXMgdGltZSwgYnV0IHlvdSBuZXZlciBrbm93Li4uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CRUxUX0JVQ0tMRUQgPSAoCisgICAgICAgIDB4MEI4MgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdGJlbHQgaGVpZ2h0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBBZGp1c3RzIHRoZSBzaG91bGRlciBiZWx0IGFuY2hvciBwb2ludC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGhpZ2hlc3QgcG9zaXRpb24KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIGxvd2VzdCBwb3NpdGlvbgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkVMVF9IRUlHSFRfUE9TID0gKAorICAgICAgICAweDBCODMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0YmVsdCBoZWlnaHQgbW92ZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkVMVF9IRUlHSFRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjg0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBmb3JlL2FmdCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgc2VhdCBwb3NpdGlvbiBmb3J3YXJkIChjbG9zZXIgdG8gc3RlZXJpbmcgd2hlZWwpIGFuZCBiYWNrd2FyZHMuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBjbG9zZXN0IHRvIHdoZWVsLCBtaW4gdmFsdWUgaW5kaWNhdGVzIG1vc3QgcmVhcndhcmQKKyAgICAgKiBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0ZPUkVfQUZUX1BPUyA9ICgKKyAgICAgICAgMHgwQjg1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBmb3JlL2FmdCBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgc2VhdCBwb3NpdGlvbiBmb3J3YXJkIGFuZCBhZnQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9GT1JFX0FGVF9NT1ZFID0gKAorICAgICAgICAweDBCODYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGJhY2tyZXN0IGFuZ2xlIDEgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEJhY2tyZXN0IGFuZ2xlIDEgaXMgdGhlIGFjdHVhdG9yIGNsb3Nlc3QgdG8gdGhlIGJvdHRvbSBvZiB0aGUgc2VhdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGFuZ2xpbmcgZm9yd2FyZCB0b3dhcmRzIHRoZSBzdGVlcmluZyB3aGVlbC4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIGZ1bGwgcmVjbGluZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JBQ0tSRVNUX0FOR0xFXzFfUE9TID0gKAorICAgICAgICAweDBCODcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGJhY2tyZXN0IGFuZ2xlIDEgbW92ZQorICAgICAqCisgICAgICogTW92ZXMgdGhlIGJhY2tyZXN0IGZvcndhcmQgb3IgcmVjbGluZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JBQ0tSRVNUX0FOR0xFXzFfTU9WRSA9ICgKKyAgICAgICAgMHgwQjg4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAyIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBCYWNrcmVzdCBhbmdsZSAyIGlzIHRoZSBuZXh0IGFjdHVhdG9yIHVwIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgc2VhdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGFuZ2xpbmcgZm9yd2FyZCB0b3dhcmRzIHRoZSBzdGVlcmluZyB3aGVlbC4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIGZ1bGwgcmVjbGluZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JBQ0tSRVNUX0FOR0xFXzJfUE9TID0gKAorICAgICAgICAweDBCODkKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGJhY2tyZXN0IGFuZ2xlIDIgbW92ZQorICAgICAqCisgICAgICogTW92ZXMgdGhlIGJhY2tyZXN0IGZvcndhcmQgb3IgcmVjbGluZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JBQ0tSRVNUX0FOR0xFXzJfTU9WRSA9ICgKKyAgICAgICAgMHgwQjhBCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBoZWlnaHQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIHNlYXQgaGVpZ2h0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgaGlnaGVzdCBwb3NpdGlvbi4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIGxvd2VzdCBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFSUdIVF9QT1MgPSAoCisgICAgICAgIDB4MEI4QgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgaGVpZ2h0IG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBzZWF0IGhlaWdodC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFSUdIVF9NT1ZFID0gKAorICAgICAgICAweDBCOEMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGRlcHRoIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzZWF0IGRlcHRoLCBkaXN0YW5jZSBmcm9tIGJhY2sgcmVzdCB0byBmcm9udCBlZGdlIG9mIHNlYXQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBsb25nZXN0IGRlcHRoIHBvc2l0aW9uLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgc2hvcnRlc3QgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9ERVBUSF9QT1MgPSAoCisgICAgICAgIDB4MEI4RAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgZGVwdGggbW92ZQorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgc2VhdCBkZXB0aC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0RFUFRIX01PVkUgPSAoCisgICAgICAgIDB4MEI4RQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgdGlsdCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgc2VhdCB0aWx0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgZnJvbnQgZWRnZSBvZiBzZWF0IGhpZ2hlciB0aGFuIGJhY2sgZWRnZS4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIGZyb250IGVkZ2Ugb2Ygc2VhdCBsb3dlciB0aGFuIGJhY2sgZWRnZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX1RJTFRfUE9TID0gKAorICAgICAgICAweDBCOEYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IHRpbHQgbW92ZQorICAgICAqCisgICAgICogVGlsdHMgdGhlIHNlYXQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9USUxUX01PVkUgPSAoCisgICAgICAgIDB4MEI5MAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEx1bWJlciBmb3JlL2FmdCBwb3NpdGlvbgorICAgICAqCisgICAgICogUHVzaGVzIHRoZSBsdW1iYXIgc3VwcG9ydCBmb3J3YXJkIGFuZCBiYWNrd2FyZHMKKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIG1vc3QgZm9yd2FyZCBwb3NpdGlvbi4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIG1vc3QgcmVhcndhcmQgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9MVU1CQVJfRk9SRV9BRlRfUE9TID0gKAorICAgICAgICAweDBCOTEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBMdW1iYXIgZm9yZS9hZnQgbW92ZQorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgbHVtYmFyIHN1cHBvcnQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9MVU1CQVJfRk9SRV9BRlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjkyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogTHVtYmFyIHNpZGUgc3VwcG9ydCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgYW1vdW50IG9mIGxhdGVyYWwgbHVtYmFyIHN1cHBvcnQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyB3aWRlc3QgbHVtYmFyIHNldHRpbmcgKGkuZS4gbGVhc3Qgc3VwcG9ydCkKKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHRoaW5uZXN0IGx1bWJhciBzZXR0aW5nLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX1NJREVfU1VQUE9SVF9QT1MgPSAoCisgICAgICAgIDB4MEI5MworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEx1bWJhciBzaWRlIHN1cHBvcnQgbW92ZQorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgYW1vdW50IG9mIGxhdGVyYWwgbHVtYmFyIHN1cHBvcnQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9MVU1CQVJfU0lERV9TVVBQT1JUX01PVkUgPSAoCisgICAgICAgIDB4MEI5NAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGhlaWdodCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgaGVhZHJlc3QgaGVpZ2h0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgdGFsbGVzdCBzZXR0aW5nLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgc2hvcnRlc3Qgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0hFSUdIVF9QT1MgPSAoCisgICAgICAgIDB4MEI5NQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgaGVpZ2h0IG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBoZWFkcmVzdCB1cCBhbmQgZG93bi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0hFSUdIVF9NT1ZFID0gKAorICAgICAgICAweDBCOTYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBhbmdsZSBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgYW5nbGUgb2YgdGhlIGhlYWRyZXN0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgbW9zdCB1cHJpZ2h0IGFuZ2xlLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgc2hhbGxvd2VzdCBoZWFkcmVzdCBhbmdsZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0FOR0xFX1BPUyA9ICgKKyAgICAgICAgMHgwQjk3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgYW5nbGUgbW92ZQorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgYW5nbGUgb2YgdGhlIGhlYWRyZXN0CisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9BTkdMRV9NT1ZFID0gKAorICAgICAgICAweDBCOTgKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBmb3JlL2FmdCBwb3NpdGlvbgorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgaGVhZHJlc3QgZm9yd2FyZHMgYW5kIGJhY2t3YXJkcy4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIHBvc2l0aW9uIGNsb3Nlc3QgdG8gZnJvbnQgb2YgY2FyLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgcG9zaXRpb24gY2xvc2VzdCB0byByZWFyIG9mIGNhci4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0ZPUkVfQUZUX1BPUyA9ICgKKyAgICAgICAgMHgwQjk5CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgZm9yZS9hZnQgbW92ZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfRk9SRV9BRlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjlBCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogV2luZG93IFBvc2l0aW9uCisgICAgICoKKyAgICAgKiBNYXggPSB3aW5kb3cgdXAgLyBjbG9zZWQKKyAgICAgKiBNaW4gPSB3aW5kb3cgZG93biAvIG9wZW4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfUE9TID0gKAorICAgICAgICAweDBCQzAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBNb3ZlCisgICAgICoKKyAgICAgKiBNYXggPSB3aW5kb3cgdXAgLyBjbG9zZWQKKyAgICAgKiBNaW4gPSB3aW5kb3cgZG93biAvIG9wZW4KKyAgICAgKiBNYWduaXR1ZGUgZGVub3RlcyByZWxhdGl2ZSBzcGVlZC4gIEkuZS4gKzIgaXMgZmFzdGVyIHRoYW4gKzEgaW4gcmFpc2luZworICAgICAqIHRoZSB3aW5kb3cuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX01PVkUgPSAoCisgICAgICAgIDB4MEJDMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2luZG93IFZlbnQgUG9zaXRpb24KKyAgICAgKgorICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c2VkIHRvIGNvbnRyb2wgdGhlIHZlbnQgZmVhdHVyZSBvbiBhIHN1bnJvb2YuCisgICAgICoKKyAgICAgKiBNYXggPSB2ZW50IG9wZW4KKyAgICAgKiBNaW4gPSB2ZW50IGNsb3NlZAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFdJTkRPV19WRU5UX1BPUyA9ICgKKyAgICAgICAgMHgwQkMyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgVmVudCBNb3ZlCisgICAgICoKKyAgICAgKiBUaGlzIGZlYXR1cmUgaXMgdXNlZCB0byBjb250cm9sIHRoZSB2ZW50IGZlYXR1cmUgb24gYSBzdW5yb29mLgorICAgICAqCisgICAgICogTWF4ID0gdmVudCBvcGVuCisgICAgICogTWluID0gdmVudCBjbG9zZWQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfVkVOVF9NT1ZFID0gKAorICAgICAgICAweDBCQzMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBMb2NrCisgICAgICoKKyAgICAgKiBUcnVlIGluZGljYXRlcyB3aW5kb3dzIGFyZSBsb2NrZWQgYW5kIGNhbid0IGJlIG1vdmVkLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFdJTkRPV19MT0NLID0gKAorICAgICAgICAweDBCQzQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorfTsKKworLyoqCisgKiBCaXQgZmxhZ3MgZm9yIGZhbiBkaXJlY3Rpb24KKyAqLworZW51bSBWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbiA6IGludDMyX3QgeworICBGQUNFID0gMHgxLAorICBGTE9PUiA9IDB4MiwKKyAgRkFDRV9BTkRfRkxPT1IgPSAweDMsCisgIERFRlJPU1QgPSAweDQsCisgIERFRlJPU1RfQU5EX0ZMT09SID0gMHg1LAorfTsKKworLyoqCisgKiBDb25zdGFudHMgcmVsZXZhbnQgdG8gcmFkaW8uCisgKi8KK2VudW0gVmVoaWNsZVJhZGlvQ29uc3RhbnRzIDogaW50MzJfdCB7CisgIC8qKiBNaW5pbXVtIHZhbHVlIGZvciB0aGUgcmFkaW8gcHJlc2V0ICovCisgIFZFSElDTEVfUkFESU9fUFJFU0VUX01JTl9WQUxVRSA9IDEsCit9OworCitlbnVtIFZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdCA6IGludDMyX3QgeworICBSRVFVRVNUX0dBSU4gPSAweDEsCisgIFJFUVVFU1RfR0FJTl9UUkFOU0lFTlQgPSAweDIsCisgIFJFUVVFU1RfR0FJTl9UUkFOU0lFTlRfTUFZX0RVQ0sgPSAweDMsCisgIC8qKgorICAgKiBUaGlzIGlzIGZvciB0aGUgY2FzZSB3aGVyZSBhbmRyb2lkIHNpZGUgcGxheXMgc291bmQgbGlrZSBVSSBmZWVkYmFjaworICAgKiBhbmQgY2FyIHNpZGUgZG9lcyBub3QgbmVlZCB0byBkdWNrIGV4aXN0aW5nIHBsYXliYWNrIGFzIGxvbmcgYXMKKyAgICogcmVxdWVzdGVkIHN0cmVhbSBpcyBhdmFpbGFibGUuCisgICAqLworICBSRVFVRVNUX0dBSU5fVFJBTlNJRU5UX05PX0RVQ0sgPSAweDQsCisgIFJFUVVFU1RfUkVMRUFTRSA9IDB4NSwKKworfTsKKworZW51bSBWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBBbmRyb2lkIHNpZGUgaGFzIHBlcm1hbmVudCBmb2N1cyBhbmQgY2FuIHBsYXkgYWxsb3dlZCBzdHJlYW1zLgorICAgKi8KKyAgU1RBVEVfR0FJTiA9IDB4MSwKKworICAvKioKKyAgICogQW5kcm9pZCBzaWRlIGhhcyB0cmFuc2llbnQgZm9jdXMgYW5kIGNhbiBwbGF5IGFsbG93ZWQgc3RyZWFtcy4KKyAgICovCisgIFNUQVRFX0dBSU5fVFJBTlNJRU5UID0gMHgyLAorCisgIC8qKgorICAgKiBDYXIgYXVkaW8gbW9kdWxlIGlzIHBsYXlpbmcgZ3VpZGFuY2Uga2luZCBvZiBzb3VuZCBvdXRzaWRlIEFuZHJvaWQuCisgICAqIEFuZHJvaWQgc2lkZSBjYW4gc3RpbGwgcGxheSB0aHJvdWdoIGFsbG93ZWQgc3RyZWFtcyB3aXRoIGR1Y2tpbmcuCisgICAqLworICBTVEFURV9MT1NTX1RSQU5TSUVOVF9DQU5fRFVDSyA9IDB4MywKKworICAvKioKKyAgICogQ2FyIGF1ZGlvIG1vZHVsZSBpcyBwbGF5aW5nIHRyYW5zaWVudCBzb3VuZCBvdXRzaWRlIEFuZHJvaWQuIEFuZHJvaWQgc2lkZQorICAgKiBtdXN0IHN0b3AgcGxheWluZyBhbnkgc291bmRzLgorICAgKi8KKyAgU1RBVEVfTE9TU19UUkFOU0lFTlQgPSAweDQsCisKKyAgLyoqCisgICAqIEFuZHJvaWQgc2lkZSBoYXMgbG9zdCBmb2N1cyBhbmQgY2Fubm90IHBsYXkgYW55IHNvdW5kLgorICAgKi8KKyAgU1RBVEVfTE9TUyA9IDB4NSwKKworICAvKioKKyAgICogY2FyIGF1ZGlvIG1vZHVsZSBpcyBwbGF5aW5nIHNhZmV0eSBjcml0aWNhbCBzb3VuZCwgYW5kIEFuZHJvaWQgc2lkZSBjYW5ub3QKKyAgICogcmVxdWVzdCBmb2N1cyB1bnRpbCB0aGUgY3VycmVudCBzdGF0ZSBpcyBmaW5pc2hlZC4gY2FyIGF1ZGlvIG1vZHVsZQorICAgKiByZXN0b3JlIGl0IHRvIHRoZSBwcmV2aW91cyBzdGF0ZSB3aGVuIGl0IGNhbiBhbGxvdyBBbmRyb2lkIHRvIHBsYXkuCisgICAqLworICBTVEFURV9MT1NTX1RSQU5TSUVOVF9FWExDVVNJVkUgPSAweDYsCisKK307CisKKy8qKgorICogRmxhZ3MgdG8gcmVwcmVzZW50IG11bHRpcGxlIHN0cmVhbXMgYnkgY29tYmluaW5nIHRoZXNlLgorICovCitlbnVtIFZlaGljbGVBdWRpb1N0cmVhbUZsYWcgOiBpbnQzMl90IHsKKyAgU1RSRUFNMF9GTEFHID0gKDB4MSA8PCAwKSwKKyAgU1RSRUFNMV9GTEFHID0gKDB4MSA8PCAxKSwKKyAgU1RSRUFNMl9GTEFHID0gKDB4MSA8PCAyKSwKK307CisKKy8qKgorICogUmVwcmVzZW50cyBzdHJlYW0gbnVtYmVyIChhbHdheXMgMCB0byBOIC0xIHdoZXJlIE4gaXMgbWF4IG51bWJlciBvZiBzdHJlYW1zKS4KKyAqIENhbiBiZSB1c2VkIGZvciBhdWRpbyByZWxhdGVkIHByb3BlcnR5IGV4cGVjdGluZyBvbmUgc3RyZWFtLgorICovCitlbnVtIFZlaGljbGVBdWRpb1N0cmVhbSA6IGludDMyX3QgeworICBTVFJFQU0wID0gMCwKKyAgU1RSRUFNMSA9IDEsCit9OworCisvKioKKyAqIEZsYWcgdG8gcmVwcmVzZW50IGV4dGVybmFsIGZvY3VzIHN0YXRlIChvdXRzaWRlIEFuZHJvaWQpLgorICovCitlbnVtIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyA6IGludDMyX3QgeworICAvKioKKyAgICogTm8gZXh0ZXJuYWwgZm9jdXMgaG9sZGVyLgorICAgKi8KKyAgTk9ORV9GTEFHID0gMHgwLAorCisgIC8qKgorICAgKiBDYXIgc2lkZSAob3V0c2lkZSBBbmRyb2lkKSBoYXMgY29tcG9uZW50IGhvbGRpbmcgR0FJTiBraW5kIG9mIGZvY3VzIHN0YXRlLgorICAgKi8KKyAgUEVSTUFORU5UX0ZMQUcgPSAweDEsCisKKyAgLyoqCisgICAqIENhciBzaWRlIChvdXRzaWRlIEFuZHJvaWQpIGhhcyBjb21wb25lbnQgaG9sZGluZyBHQUlOX1RSQU5TSUVOVCBraW5kIG9mCisgICAqIGZvY3VzIHN0YXRlLgorICAgKi8KKyAgVFJBTlNJRU5UX0ZMQUcgPSAweDIsCisKKyAgLyoqCisgICAqIENhciBzaWRlIGlzIGV4cGVjdGVkIHRvIHBsYXkgc29tZXRoaW5nIHdoaWxlIGZvY3VzIGlzIGhlbGQgYnkgQW5kcm9pZCBzaWRlLgorICAgKiBPbmUgZXhhbXBsZSBjYW4gYmUgcmFkaW8gYXR0YWNoZWQgaW4gY2FyIHNpZGUuIEJ1dCBBbmRyb2lkJ3MgcmFkaW8gYXBwCisgICAqIHN0aWxsIG11c3QgaGF2ZSBmb2N1cywgYW5kIEFuZHJvaWQgc2lkZSBtdXN0IGJlIGluIEdBSU4gc3RhdGUsIGJ1dAorICAgKiBtZWRpYSBzdHJlYW0gd2lsbCBub3QgYmUgYWxsb2NhdGVkIHRvIEFuZHJvaWQgc2lkZSBhbmQgY2FyIHNpZGUgY2FuIHBsYXkKKyAgICogcmFkaW8gYW55IHRpbWUgd2hpbGUgdGhpcyBmbGFnIGlzIGFjdGl2ZS4KKyAgICovCisgIFBMQVlfT05MWV9GTEFHID0gMHg0LAorCisgIC8qKgorICAgKiBDYXIgc2lkZSBtdXN0IG11dGUgYW55IG1lZGlhIGluY2x1ZGluZyByYWRpby4gVGhpcyBjYW4gYmUgdXNlZCB3aXRoIGFueQorICAgKiBmb2N1cyByZXF1ZXN0IGluY2x1ZGluZyBHQUlOKiBhbmQgUkVMRUFTRS4KKyAgICovCisgIE1VVEVfTUVESUFfRkxBRyA9IDB4OCwKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19GT0NVUyBwcm9wZXJ0eS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Gb2N1c0luZGV4IDogaW50MzJfdCB7CisgIEZPQ1VTID0gMCwKKyAgU1RSRUFNUyA9IDEsCisgIEVYVEVSTkFMX0ZPQ1VTX1NUQVRFID0gMiwKKyAgQVVESU9fQ09OVEVYVFMgPSAzLAorfTsKKworLyoqCisgKiBGbGFncyB0byB0ZWxsIHRoZSBjdXJyZW50IGF1ZGlvIGNvbnRleHQuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcgOiBpbnQzMl90IHsKKyAgLyoqIE11c2ljIHBsYXliYWNrIGlzIGN1cnJlbnRseSBhY3RpdmUuICovCisgIE1VU0lDX0ZMQUcgPSAweDEsCisKKyAgLyoqIE5hdmlnYXRpb24gaXMgY3VycmVudGx5IHJ1bm5pbmcuICovCisgIE5BVklHQVRJT05fRkxBRyA9IDB4MiwKKworICAvKiogVm9pY2UgY29tbWFuZCBzZXNzaW9uIGlzIGN1cnJlbnRseSBydW5uaW5nLiAqLworICBWT0lDRV9DT01NQU5EX0ZMQUcgPSAweDQsCisKKyAgLyoqIFZvaWNlIGNhbGwgaXMgY3VycmVudGx5IGFjdGl2ZS4gKi8KKyAgQ0FMTF9GTEFHID0gMHg4LAorCisgIC8qKgorICAgKiBBbGFybSBpcyBhY3RpdmUuCisgICAqIFRoaXMgbXVzdCBiZSBvbmx5IHVzZWQgaW4gVmVoaWNsZVByb3BlcnR5I0FVRElPX1JPVVRJTkdfUE9MSUNZLgorICAgKi8KKyAgQUxBUk1fRkxBRyA9IDB4MTAsCisKKyAgLyoqCisgICAqIE5vdGlmaWNhdGlvbiBzb3VuZCBpcyBhY3RpdmUuCisgICAqIFRoaXMgbXVzdCBiZSBvbmx5IHVzZWQgaW4gVmVoaWNsZVByb3BlcnR5I0FVRElPX1JPVVRJTkdfUE9MSUNZLgorICAgKi8KKyAgTk9USUZJQ0FUSU9OX0ZMQUcgPSAweDIwLAorCisgIC8qKgorICAgKiBDb250ZXh0IHVua25vd24uIE9ubHkgdXNlZCBmb3IgVmVoaWNsZVByb3BlcnR5I0FVRElPX1JPVVRJTkdfUE9MSUNZIHRvCisgICAqIHJlcHJlc2VudCBkZWZhdWx0IHN0cmVhbSBmb3IgdW5rbm93biBjb250ZW50cy4KKyAgICovCisgIFVOS05PV05fRkxBRyA9IDB4NDAsCisKKyAgLyoqIFNhZmV0eSBhbGVydCAvIHdhcm5pbmcgaXMgcGxheWVkLiAqLworICBTQUZFVFlfQUxFUlRfRkxBRyA9IDB4ODAsCisKKyAgLyoqIENEIC8gRFZEIGtpbmQgb2YgYXVkaW8gaXMgcGxheWVkICovCisgIENEX1JPTV9GTEFHID0gMHgxMDAsCisKKyAgLyoqIEF1eCBhdWRpbyBpbnB1dCBpcyBwbGF5ZWQgKi8KKyAgQVVYX0FVRElPX0ZMQUcgPSAweDIwMCwKKworICAvKiogc3lzdGVtIHNvdW5kIGxpa2UgVUkgZmVlZGJhY2sgKi8KKyAgU1lTVEVNX1NPVU5EX0ZMQUcgPSAweDQwMCwKKworICAvKiogUmFkaW8gaXMgcGxheWVkICovCisgIFJBRElPX0ZMQUcgPSAweDgwMCwKKworICAvKiogRXh0IHNvdXJjZSBpcyBwbGF5ZWQuIFRoaXMgaXMgZm9yIHRhZ2dpbmcgZ2VuZXJpYyBleHQgc291cmNlcy4gKi8KKyAgRVhUX1NPVVJDRV9GTEFHID0gMHgxMDAwLAorfTsKKworLyoqCisgKiBmbGFncyB0byByZXByZXNlbnQgY2FwYWJpbGl0eSBvZiBhdWRpbyB2b2x1bWUgcHJvcGVydHkuCisgKiB1c2VkIGluIGNvbmZpZ0FycmF5WzFdIG9mIFZlaGljbGVQcm9wQ29uZmlnLgorICovCitlbnVtIFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBFeHRlcm5hbCBhdWRpbyBtb2R1bGUgb3IgdmVoaWNsZSBoYWwgaGFzIHBlcnNpc3RlbnQgc3RvcmFnZQorICAgKiB0byBrZWVwIHRoZSB2b2x1bWUgbGV2ZWwuIFRoaXMgbXVzdCBiZSBzZXQgb25seSB3aGVuIHBlciBjb250ZXh0CisgICAqIHZvbHVtZSBsZXZlbCBpcyBzdXBwb3J0ZWQuIFdoZW4gdGhpcyBpcyBzZXQsIGF1ZGlvIHZvbHVtZSBsZXZlbCBwZXIKKyAgICogZWFjaCBjb250ZXh0IHdpbGwgYmUgcmV0cmlldmVkIGZyb20gdGhlIHByb3BlcnR5IHdoZW4gc3lzdGVtIHN0YXJ0cyB1cC4KKyAgICogQW5kIGV4dGVybmFsIGF1ZGlvIG1vZHVsZSBpcyBhbHNvIGV4cGVjdGVkIHRvIGFkanVzdCB2b2x1bWUgYXV0b21hdGljYWxseQorICAgKiB3aGVuZXZlciB0aGVyZSBpcyBhbiBhdWRpbyBjb250ZXh0IGNoYW5nZS4KKyAgICogV2hlbiB0aGlzIGZsYWcgaXMgbm90IHNldCwgYW5kcm9pZCBzaWRlIHdpbGwgYXNzdW1lIHRoYXQgdGhlcmUgaXMgbm8KKyAgICogcGVyc2lzdGVudCBzdG9yYWdlIGFuZCBzdG9yZWQgdmFsdWUgaW4gYW5kcm9pZCBzaWRlIHdpbGwgYmUgdXNlZCB0bworICAgKiBpbml0aWFsaXplIHRoZSB2b2x1bWUgbGV2ZWwuIEFuZCBhbmRyb2lkIHNpZGUgd2lsbCBzZXQgdm9sdW1lIGxldmVsCisgICAqIG9mIGVhY2ggcGh5c2ljYWwgc3RyZWFtcyB3aGVuZXZlciB0aGVyZSBpcyBhbiBhdWRpbyBjb250ZXh0IGNoYW5nZS4KKyAgICovCisgIFBFUlNJU1RFTlRfU1RPUkFHRSA9IDB4MSwKKworICAvKioKKyAgICogV2hlbiB0aGlzIGZsYWcgaXMgc2V0LCB0aGUgSC9XIGNhbiBzdXBwb3J0IG9ubHkgc2luZ2xlIG1hc3RlciB2b2x1bWUgZm9yCisgICAqIGFsbCBzdHJlYW1zLgorICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gc2V0IHZvbHVtZSBsZXZlbCBkaWZmZXJlbnRseSBwZXIgZWFjaCBzdHJlYW0gb3IgY29udGV4dC4KKyAgICovCisgIE1BU1RFUl9WT0xVTUVfT05MWSA9IDB4MiwKK307CisKKy8qKgorICogZW51bSB0byByZXByZXNlbnQgYXVkaW8gdm9sdW1lIHN0YXRlLgorICovCitlbnVtIFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlIDogaW50MzJfdCB7CisgIFNUQVRFX09LID0gMCwKKworICAvKioKKyAgICogQXVkaW8gdm9sdW1lIGhhcyByZWFjaGVkIHZvbHVtZSBsaW1pdCBzZXQgaW4KKyAgICogVmVoaWNsZVByb3BlcnR5I0FVRElPX1ZPTFVNRV9MSU1JVCBhbmQgdXNlcidzIHJlcXVlc3QgdG8gaW5jcmVhc2Ugdm9sdW1lCisgICAqIGZ1cnRoZXIgaXMgbm90IGFsbG93ZWQuCisgICAqLworICBMSU1JVF9SRUFDSEVEID0gMSwKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19WT0xVTUUgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXggOiBpbnQzMl90IHsKKyAgSU5ERVhfU1RSRUFNID0gMCwKKyAgSU5ERVhfVk9MVU1FID0gMSwKKyAgSU5ERVhfU1RBVEUgPSAyLAorfTsKKworLyoqCisgKiBJbmRleCBpbiBpbnQzMlZhbHVlcyBmb3IgVmVoaWNsZVByb3BlcnR5I0FVRElPX1ZPTFVNRV9MSU1JVCBwcm9wZXJ0eS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4IDogaW50MzJfdCB7CisgIFNUUkVBTSA9IDAsCisgIE1BWF9WT0xVTUUgPSAxLAorfTsKKworLyoqCisgKiBJbmRleCBpbiBpbnQzMlZhbHVlcyBmb3IgVmVoaWNsZVByb3BlcnR5I0FVRElPX1JPVVRJTkdfUE9MSUNZIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleCA6IGludDMyX3QgeworICBTVFJFQU0gPSAwLAorICBDT05URVhUUyA9IDEsCit9OworCisvKioKKyAqIEZsYWcgdG8gYmUgdXNlZCBpbiBWZWhpY2xlUHJvcENvbmZpZyNjb25maWdGbGFncyBmb3IKKyAqIFZlaGljbGVQcm9wZXJ0eSNBVURJT19IV19WQVJJQU5ULgorICovCitlbnVtIFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcgOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIEZsYWcgdG8gdGVsbCB0aGF0IHJhZGlvIGlzIGludGVybmFsIHRvIGFuZHJvaWQgYW5kIHJhZGlvIG11c3QKKyAgICogYmUgdHJlYXRlZCBsaWtlIG90aGVyIGFuZHJvaWQgc3RyZWFtIGxpa2UgbWVkaWEuCisgICAqIFdoZW4gdGhpcyBmbGFnIGlzIG5vdCBzZXQgb3IgQVVESU9fSFdfVkFSSUFOVCBkb2VzIG5vdCBleGlzdCwKKyAgICogcmFkaW8gaXMgdHJlYXRlZCBhcyBleHRlcm5hbCBtb2R1bGUuIFRoaXMgYnJpbnMgc29tZSBkZWx0YSBpbiBhdWRpbyBmb2N1cworICAgKiBoYW5kbGluZyBhcyB3ZWxsLgorICAgKi8KKyAgSU5URVJOQUxfUkFESU9fRkxBRyA9IDB4MSwKK307CisKK2VudW0gVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcgOiBpbnQzMl90IC8qIE5PVEU6IHR5cGUgaXMgZ3Vlc3NlZCAqLyB7CisgIC8qKgorICAgKiBBUCBjYW4gZW50ZXIgZGVlcCBzbGVlcCBzdGF0ZS4gSWYgbm90IHNldCwgQVAgd2lsbCBhbHdheXMgc2h1dGRvd24gZnJvbQorICAgKiBWZWhpY2xlQXBQb3dlclN0YXRlI1NIVVRET1dOX1BSRVBBUkUgcG93ZXIgc3RhdGUuCisgICAqLworICBFTkFCTEVfREVFUF9TTEVFUF9GTEFHID0gMHgxLAorCisgIC8qKgorICAgKiBUaGUgcG93ZXIgY29udHJvbGxlciBjYW4gcG93ZXIgb24gQVAgZnJvbSBvZmYgc3RhdGUgYWZ0ZXIgdGltZW91dAorICAgKiBzcGVjaWZpZWQgaW4gVmVoaWNsZUFwUG93ZXJTZXQgVkVISUNMRV9BUF9QT1dFUl9TRVRfU0hVVERPV05fUkVBRFkgbWVzc2FnZS4KKyAgICovCisgIENPTkZJR19TVVBQT1JUX1RJTUVSX1BPV0VSX09OX0ZMQUcgPSAweDIsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGUgOiBpbnQzMl90IC8qIE5PVEU6IHR5cGUgaXMgZ3Vlc3NlZCAqLyB7CisgIC8qKiB2ZWhpY2xlIEhBTCB3aWxsIG5ldmVyIHB1Ymxpc2ggdGhpcyBzdGF0ZSB0byBBUCAqLworICBPRkYgPSAwLAorCisgIC8qKiB2ZWhpY2xlIEhBTCB3aWxsIG5ldmVyIHB1Ymxpc2ggdGhpcyBzdGF0ZSB0byBBUCAqLworICBERUVQX1NMRUVQID0gMSwKKworICAvKiogQVAgaXMgb24gYnV0IGRpc3BsYXkgbXVzdCBiZSBvZmYuICovCisgIE9OX0RJU1BfT0ZGID0gMiwKKworICAvKiogQVAgaXMgb24gd2l0aCBkaXNwbGF5IG9uLiBUaGlzIHN0YXRlIGFsbG93cyBmdWxsIHVzZXIgaW50ZXJhY3Rpb24uICovCisgIE9OX0ZVTEwgPSAzLAorCisgIC8qKgorICAgKiBUaGUgcG93ZXIgY29udHJvbGxlciBoYXMgcmVxdWVzdGVkIEFQIHRvIHNodXRkb3duLiBBUCBjYW4gZWl0aGVyIGVudGVyCisgICAqIHNsZWVwIHN0YXRlIG9yIHN0YXJ0IGZ1bGwgc2h1dGRvd24uIEFQIGNhbiBhbHNvIHJlcXVlc3QgcG9zdHBvbmluZworICAgKiBzaHV0ZG93biBieSBzZW5kaW5nIFZlaGljbGVBcFBvd2VyU2V0U3RhdGUjU0hVVERPV05fUE9TVFBPTkUgbWVzc2FnZS4gVGhlCisgICAqIHBvd2VyIGNvbnRyb2xsZXIgbXVzdCBjaGFuZ2UgcG93ZXIgc3RhdGUgdG8gdGhpcyBzdGF0ZSB0byBzaHV0ZG93bgorICAgKiBzeXN0ZW0uCisgICAqCisgICAqIGludDMyVmFsdWVzWzFdIDogb25lIG9mIGVudW1fdmVoaWNsZV9hcF9wb3dlcl9zdGF0ZV9zaHV0ZG93bl9wYXJhbV90eXBlCisgICAqLworICBTSFVURE9XTl9QUkVQQVJFID0gNCwKK307CisKK2VudW0gVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0gOiBpbnQzMl90IHsKKyAgLyoqIEFQIG11c3Qgc2h1dGRvd24gaW1tZWRpYXRlbHkuIFBvc3Rwb25pbmcgaXMgbm90IGFsbG93ZWQuICovCisgIFNIVVRET1dOX0lNTUVESUFURUxZID0gMSwKKworICAvKiogQVAgY2FuIGVudGVyIGRlZXAgc2xlZXAgaW5zdGVhZCBvZiBzaHV0dGluZyBkb3duIGNvbXBsZXRlbHkuICovCisgIENBTl9TTEVFUCA9IDIsCisKKyAgLyoqIEFQIGNhbiBvbmx5IHNodXRkb3duIHdpdGggcG9zdHBvbmluZyBhbGxvd2VkLiAqLworICBTSFVURE9XTl9PTkxZID0gMywKK307CisKK2VudW0gVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZSA6IGludDMyX3QgLyogTk9URTogdHlwZSBpcyBndWVzc2VkICovIHsKKyAgLyoqCisgICAqIEFQIGhhcyBmaW5pc2hlZCBib290IHVwLCBhbmQgY2FuIHN0YXJ0IHNodXRkb3duIGlmIHJlcXVlc3RlZCBieSBwb3dlcgorICAgKiBjb250cm9sbGVyLgorICAgKi8KKyAgQk9PVF9DT01QTEVURSA9IDB4MSwKKworICAvKioKKyAgICogQVAgaXMgZW50ZXJpbmcgZGVlcCBzbGVlcCBzdGF0ZS4gSG93IHRoaXMgc3RhdGUgaXMgaW1wbGVtZW50ZWQgbWF5IHZhcnkKKyAgICogZGVwZW5kaW5nIG9uIGVhY2ggSC9XLCBidXQgQVAncyBwb3dlciBtdXN0IGJlIGtlcHQgaW4gdGhpcyBzdGF0ZS4KKyAgICovCisgIERFRVBfU0xFRVBfRU5UUlkgPSAweDIsCisKKyAgLyoqCisgICAqIEFQIGlzIGV4aXRpbmcgZnJvbSBkZWVwIHNsZWVwIHN0YXRlLCBhbmQgaXMgaW4KKyAgICogVmVoaWNsZUFwUG93ZXJTdGF0ZSNTSFVURE9XTl9QUkVQQVJFIHN0YXRlLgorICAgKiBUaGUgcG93ZXIgY29udHJvbGxlciBtYXkgY2hhbmdlIHN0YXRlIHRvIG90aGVyIE9OIHN0YXRlcyBiYXNlZCBvbiB0aGUKKyAgICogY3VycmVudCBzdGF0ZS4KKyAgICovCisgIERFRVBfU0xFRVBfRVhJVCA9IDB4MywKKworICAvKioKKyAgICogaW50MzJWYWx1ZXNbMV06IFRpbWUgdG8gcG9zdHBvbmUgc2h1dGRvd24gaW4gbXMuIE1heGltdW0gdmFsdWUgY2FuIGJlCisgICAqICAgICAgICAgICAgICAgICA1MDAwIG1zLgorICAgKiAgICAgICAgICAgICAgICAgSWYgQVAgbmVlZHMgbW9yZSB0aW1lLCBpdCB3aWxsIHNlbmQgYW5vdGhlciBQT1NUUE9ORQorICAgKiAgICAgICAgICAgICAgICAgbWVzc2FnZSBiZWZvcmUgdGhlIHByZXZpb3VzIG9uZSBleHBpcmVzLgorICAgKi8KKyAgU0hVVERPV05fUE9TVFBPTkUgPSAweDQsCisKKyAgLyoqCisgICAqIEFQIGlzIHN0YXJ0aW5nIHNodXR0aW5nIGRvd24uIFdoZW4gc3lzdGVtIGNvbXBsZXRlcyBzaHV0ZG93biwgZXZlcnl0aGluZworICAgKiB3aWxsIHN0b3AgaW4gQVAgYXMga2VybmVsIHdpbGwgc3RvcCBhbGwgb3RoZXIgY29udGV4dHMuIEl0IGlzCisgICAqIHJlc3BvbnNpYmlsaXR5IG9mIHZlaGljbGUgSEFMIG9yIGxvd2VyIGxldmVsIHRvIHN5bmNocm9uaXplIHRoYXQgc3RhdGUKKyAgICogd2l0aCBleHRlcm5hbCBwb3dlciBjb250cm9sbGVyLiBBcyBhbiBleGFtcGxlLCBzb21lIGtpbmQgb2YgcGluZworICAgKiB3aXRoIHRpbWVvdXQgaW4gcG93ZXIgY29udHJvbGxlciBjYW4gYmUgYSBzb2x1dGlvbi4KKyAgICoKKyAgICogaW50MzJWYWx1ZXNbMV06IFRpbWUgdG8gdHVybiBvbiBBUCBpbiBzZWNzLiBQb3dlciBjb250cm9sbGVyIG1heSB0dXJuIG9uCisgICAqICAgICAgICAgICAgICAgICBBUCBhZnRlciBzcGVjaWZpZWQgdGltZSBzbyB0aGF0IEFQIGNhbiBydW4gdGFza3MgbGlrZQorICAgKiAgICAgICAgICAgICAgICAgdXBkYXRlLiBJZiBpdCBpcyBzZXQgdG8gMCwgdGhlcmUgaXMgbm8gd2FrZSB1cCwgYW5kIHBvd2VyCisgICAqICAgICAgICAgICAgICAgICBjb250cm9sbGVyIG1heSBub3QgbmVjZXNzYXJpbHkgc3VwcG9ydCB3YWtlLXVwLiBJZiBwb3dlcgorICAgKiAgICAgICAgICAgICAgICAgY29udHJvbGxlciB0dXJucyBvbiBBUCBkdWUgdG8gdGltZXIsIGl0IG11c3Qgc3RhcnQgd2l0aAorICAgKiAgICAgICAgICAgICAgICAgVmVoaWNsZUFwUG93ZXJTdGF0ZSNPTl9ESVNQX09GRiBzdGF0ZSwgYW5kIGFmdGVyCisgICAqICAgICAgICAgICAgICAgICByZWNlaXZpbmcgVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZSNCT09UX0NPTVBMRVRFLCBpdCBzaGFsbAorICAgKiAgICAgICAgICAgICAgICAgZG8gc3RhdGUgdHJhbnNpdGlvbiB0bworICAgKiAgICAgICAgICAgICAgICAgVmVoaWNsZUFwUG93ZXJTdGF0ZSNTSFVURE9XTl9QUkVQQVJFLgorICAgKi8KKyAgU0hVVERPV05fU1RBUlQgPSAweDUsCisKKyAgLyoqCisgICAqIFVzZXIgaGFzIHJlcXVlc3RlZCB0byB0dXJuIG9mZiBoZWFkdW5pdCdzIGRpc3BsYXksIHdoaWNoIGlzIGRldGVjdGVkIGluCisgICAqIGFuZHJvaWQgc2lkZS4KKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgbWF5IGNoYW5nZSB0aGUgcG93ZXIgc3RhdGUgdG8KKyAgICogVmVoaWNsZUFwUG93ZXJTdGF0ZSNPTl9ESVNQX09GRi4KKyAgICovCisgIERJU1BMQVlfT0ZGID0gMHg2LAorCisgIC8qKgorICAgKiBVc2VyIGhhcyByZXF1ZXN0ZWQgdG8gdHVybiBvbiBoZWFkdW5pdCdzIGRpc3BsYXksIG1vc3QgcHJvYmFibHkgZnJvbSBwb3dlcgorICAgKiBrZXkgaW5wdXQgd2hpY2ggaXMgYXR0YWNoZWQgdG8gaGVhZHVuaXQuIFRoZSBwb3dlciBjb250cm9sbGVyIG1heSBjaGFuZ2UKKyAgICogdGhlIHBvd2VyIHN0YXRlIHRvIFZlaGljbGVBcFBvd2VyU3RhdGUjT05fRlVMTC4KKyAgICovCisgIERJU1BMQVlfT04gPSAweDcsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVBfUE9XRVJfU1RBVEUgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4IDogaW50MzJfdCB7CisgIFNUQVRFID0gMCwKKyAgQURESVRJT05BTCA9IDEsCit9OworCisvKioKKyAqIEVudW0gdG8gcmVwcmVzZW50IGJvb3R1cCByZWFzb24uCisgKi8KK2VudW0gVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24gOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIFBvd2VyIG9uIGR1ZSB0byB1c2VyJ3MgcHJlc3Npbmcgb2YgcG93ZXIga2V5IG9yIHJvdGF0aW5nIG9mIGlnbml0aW9uCisgICAqIHN3aXRjaC4KKyAgICovCisgIFVTRVJfUE9XRVJfT04gPSAwLAorCisgIC8qKgorICAgKiBBdXRvbWF0aWMgcG93ZXIgb24gdHJpZ2dlcmVkIGJ5IGRvb3IgdW5sb2NrIG9yIGFueSBvdGhlciBraW5kIG9mIGF1dG9tYXRpYworICAgKiB1c2VyIGRldGVjdGlvbi4KKyAgICovCisgIFVTRVJfVU5MT0NLID0gMSwKKworICAvKioKKyAgICogQXV0b21hdGljIHBvd2VyIG9uIHRyaWdnZXJlZCBieSB0aW1lci4gVGhpcyBvbmx5IGhhcHBlbnMgd2hlbiBBUCBoYXMgYXNrZWQKKyAgICogd2FrZS11cCBhZnRlcgorICAgKiBjZXJ0YWluIHRpbWUgdGhyb3VnaCB0aW1lIHNwZWNpZmllZCBpbgorICAgKiBWZWhpY2xlQXBQb3dlclNldFN0YXRlI1NIVVRET1dOX1NUQVJULgorICAgKi8KKyAgVElNRVIgPSAyLAorfTsKKworZW51bSBWZWhpY2xlSHdLZXlJbnB1dEFjdGlvbiA6IGludDMyX3QgeworICAvKiogS2V5IGRvd24gKi8KKyAgQUNUSU9OX0RPV04gPSAwLAorCisgIC8qKiBLZXkgdXAgKi8KKyAgQUNUSU9OX1VQID0gMSwKK307CisKK2VudW0gVmVoaWNsZURpc3BsYXkgOiBpbnQzMl90IHsKKyAgLyoqIGNlbnRlciBjb25zb2xlICovCisgIE1BSU4gPSAwLAorCisgIElOU1RSVU1FTlRfQ0xVU1RFUiA9IDEsCit9OworCisvKioKKyAqIFJlcHJlc2VudHMgaW5zdHJ1bWVudCBjbHVzdGVyIHR5cGUgYXZhaWxhYmxlIGluIHN5c3RlbQorICovCitlbnVtIFZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUgOiBpbnQzMl90IHsKKyAgLyoqIEFuZHJvaWQgaGFzIG5vIGFjY2VzcyB0byBpbnN0dW1lbnQgY2x1c3RlciAqLworICBOT05FID0gMCwKKworICAvKioKKyAgICogSW5zdHJ1bWVudCBjbHVzdGVyIGNhbiBjb21tdW5pY2F0ZSB0aHJvdWdoIHZlaGljbGUgaGFsIHdpdGggYWRkaXRpb25hbAorICAgKiBwcm9wZXJ0aWVzIHRvIGV4Y2hhbmdlIG1ldGEtZGF0YQorICAgKi8KKyAgSEFMX0lOVEVSRkFDRSA9IDEsCisKKyAgLyoqCisgICAqIEluc3RydW1lbnQgY2x1c3RlciBpcyBleHRlcm5hbCBkaXNwbGF5IHdoZXJlIGFuZHJvaWQgY2FuIHJlbmRlciBjb250ZW50cworICAgKi8KKyAgRVhURVJOQUxfRElTUExBWSA9IDIsCit9OworCisvKioKKyAqIFVuaXRzIHVzZWQgZm9yIGludCBvciBmbG9hdCB0eXBlIHdpdGggbm8gYXR0YWNoZWQgZW51bSB0eXBlcy4KKyAqLworZW51bSBWZWhpY2xlVW5pdCA6IGludDMyX3QgeworICAgIFNIT1VMRF9OT1RfVVNFID0gMHgwMDAsCisKKyAgICBNRVRFUl9QRVJfU0VDICA9IDB4MDEsCisgICAgUlBNICAgICAgICAgICAgPSAweDAyLAorICAgIEhFUlRaICAgICAgICAgID0gMHgwMywKKyAgICBQRVJDRU5USUxFICAgICA9IDB4MTAsCisgICAgTUlMTElNRVRFUiAgICAgPSAweDIwLAorICAgIE1FVEVSICAgICAgICAgID0gMHgyMSwKKyAgICBLSUxPTUVURVIgICAgICA9IDB4MjMsCisgICAgQ0VMU0lVUyAgICAgICAgPSAweDMwLAorICAgIEZBSFJFTkhFSVQgICAgID0gMHgzMSwKKyAgICBLRUxWSU4gICAgICAgICA9IDB4MzIsCisgICAgTUlMTElMSVRFUiAgICAgPSAweDQwLAorICAgIE5BTk9fU0VDUyAgICAgID0gMHg1MCwKKyAgICBTRUNTICAgICAgICAgICA9IDB4NTMsCisgICAgWUVBUiAgICAgICAgICAgPSAweDU5LAorfTsKKworICAvKioKKyAgICogVGhpcyBkZXNjcmliZXMgaG93IHZhbHVlIG9mIHByb3BlcnR5IGNhbiBjaGFuZ2UuCisgICAqLworZW51bSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBQcm9wZXJ0eSBvZiB0aGlzIHR5cGUgbXVzdCBuZXZlciBiZSBjaGFuZ2VkLiBTdWJzY3JpcHRpb24gaXMgbm90IHN1cHBvcnRlZAorICAgKiBmb3IgdGhlc2UgcHJvcGVydGllcy4KKyAgICovCisgIFNUQVRJQyA9IDB4MDAsCisKKyAgLyoqCisgICAqIFByb3BlcnR5IG9mIHRoaXMgdHlwZSBtdXN0IGJlIHJlcG9ydGVkIHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UuCisgICAqIElWZWhpY2xlI2dldCBjYWxsIG11c3QgcmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlLgorICAgKiBTZXQgb3BlcmF0aW9uIGZvciB0aGlzIHByb3BlcnR5IGlzIGFzc3VtZWQgdG8gYmUgYXN5bmNocm9ub3VzLiBXaGVuIHRoZQorICAgKiBwcm9wZXJ0eSBpcyByZWFkICh1c2luZyBJVmVoaWNsZSNnZXQpIGFmdGVyIElWZWhpY2xlI3NldCwgaXQgbWF5IHN0aWxsCisgICAqIHJldHVybiBvbGQgdmFsdWUgdW50aWwgdW5kZXJseWluZyBIL1cgYmFja2luZyB0aGlzIHByb3BlcnR5IGhhcyBhY3R1YWxseQorICAgKiBjaGFuZ2VkIHRoZSBzdGF0ZS4gT25jZSBzdGF0ZSBpcyBjaGFuZ2VkLCB0aGUgcHJvcGVydHkgbXVzdCBkaXNwYXRjaAorICAgKiBjaGFuZ2VkIHZhbHVlIGFzIGV2ZW50LgorICAgKi8KKyAgT05fQ0hBTkdFID0gMHgwMSwKKworICAvKioKKyAgICogUHJvcGVydHkgb2YgdGhpcyB0eXBlIGNoYW5nZSBjb250aW51b3VzbHkgYW5kIHJlcXVpcmVzIGZpeGVkIHJhdGUgb2YKKyAgICogc2FtcGxpbmcgdG8gcmV0cmlldmUgdGhlIGRhdGEuCisgICAqLworICBDT05USU5VT1VTID0gMHgwMiwKKworICAvKioKKyAgICogUHJvcGVydHkgb2YgdGhpcyB0eXBlIG1heSBiZSBwb2xsZWQgdG8gZ2V0IHRoZSBjdXJyZW50IHZhbHVlLgorICAgKi8KKyAgUE9MTCA9IDB4MDMsCisKKyAgLyoqCisgICAqIFRoaXMgaXMgZm9yIHByb3BlcnR5IHdoZXJlIGNoYW5nZSBldmVudCBtdXN0IGJlIHNlbnQgb25seSB3aGVuIHRoZQorICAgKiB2YWx1ZSBpcyBzZXQgZnJvbSBleHRlcm5hbCBjb21wb25lbnQuIE5vcm1hbCB2YWx1ZSBjaGFuZ2UgbXVzdCBub3QgdHJpZ2dlcgorICAgKiBldmVudC4gRm9yIGV4YW1wbGUsIGNsb2NrIHByb3BlcnR5IGNhbiBzZW5kIGNoYW5nZSBldmVudCBvbmx5IHdoZW4gaXQgaXMKKyAgICogc2V0LCBvdXRzaWRlIGFuZHJvaWQsIGZvciBjYXNlIGxpa2UgdXNlciBzZXR0aW5nIHRpbWUgb3IgdGltZSBnZXR0aW5nCisgICAqIHVwZGF0ZS4gVGhlcmUgaXMgbm8gbmVlZCB0byBzZW5kIGl0IHBlciBldmVyeSB2YWx1ZSBjaGFuZ2UuCisgICAqLworICBPTl9TRVQgPSAweDA0LAorfTsKKworLyoqCisgKiBQcm9wZXJ0eSBjb25maWcgZGVmaW5lcyB0aGUgY2FwYWJpbGl0aWVzIG9mIGl0LiBVc2VyIG9mIHRoZSBBUEkKKyAqIG11c3QgZmlyc3QgZ2V0IHRoZSBwcm9wZXJ0eSBjb25maWcgdG8gdW5kZXJzdGFuZCB0aGUgb3V0cHV0IGZyb20gZ2V0KCkKKyAqIGNvbW1hbmRzIGFuZCBhbHNvIHRvIGVuc3VyZSB0aGF0IHNldCgpIG9yIGV2ZW50cyBjb21tYW5kcyBhcmUgaW4gc3luYyB3aXRoCisgKiB0aGUgZXhwZWN0ZWQgb3V0cHV0LgorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eUFjY2VzcyA6IGludDMyX3QgeworICBOT05FID0gMHgwMCwKKworICBSRUFEID0gMHgwMSwKKyAgV1JJVEUgPSAweDAyLAorICBSRUFEX1dSSVRFID0gMHgwMywKK307CisKKy8qKgorICogQ2FyIHN0YXRlcy4KKyAqCisgKiBUaGUgZHJpdmluZyBzdGF0ZXMgZGV0ZXJtaW5lIHdoYXQgZmVhdHVyZXMgb2YgdGhlIFVJIHdpbGwgYmUgYWNjZXNzaWJsZS4KKyAqLworZW51bSBWZWhpY2xlRHJpdmluZ1N0YXR1cyA6IGludDMyX3QgeworICBVTlJFU1RSSUNURUQgPSAweDAwLAorICBOT19WSURFTyA9IDB4MDEsCisgIE5PX0tFWUJPQVJEX0lOUFVUID0gMHgwMiwKKyAgTk9fVk9JQ0VfSU5QVVQgPSAweDA0LAorICBOT19DT05GSUcgPSAweDA4LAorICBMSU1JVF9NRVNTQUdFX0xFTiA9IDB4MTAsCit9OworCisvKioKKyAqIFZhcmlvdXMgZ2VhcnMgd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGJ5IHVzZXIgYW5kIGNob3NlbiBpbiBzeXN0ZW0uCisgKi8KK2VudW0gVmVoaWNsZUdlYXI6IGludDMyX3QgeworICBHRUFSX05FVVRSQUwgPSAweDAwMDEsCisgIEdFQVJfUkVWRVJTRSA9IDB4MDAwMiwKKyAgR0VBUl9QQVJLID0gMHgwMDA0LAorICBHRUFSX0RSSVZFID0gMHgwMDA4LAorICBHRUFSX0xPVyA9IDB4MDAxMCwKKyAgR0VBUl8xID0gMHgwMDEwLAorICBHRUFSXzIgPSAweDAwMjAsCisgIEdFQVJfMyA9IDB4MDA0MCwKKyAgR0VBUl80ID0gMHgwMDgwLAorICBHRUFSXzUgPSAweDAxMDAsCisgIEdFQVJfNiA9IDB4MDIwMCwKKyAgR0VBUl83ID0gMHgwNDAwLAorICBHRUFSXzggPSAweDA4MDAsCisgIEdFQVJfOSA9IDB4MTAwMCwKK307CisKKy8qKgorICogVmFyaW91cyB6b25lcyBpbiB0aGUgY2FyLgorICoKKyAqIFpvbmVzIGFyZSB1c2VkIGZvciBBaXIgQ29uZGl0aW9uaW5nIHB1cnBvc2VzIGFuZCBkaXZpZGUgdGhlIGNhciBpbnRvIHBoeXNpY2FsCisgKiBhcmVhIHpvbmVzLgorICovCitlbnVtIFZlaGljbGVBcmVhWm9uZSA6IGludDMyX3QgeworICBST1dfMV9MRUZUID0gMHgwMDAwMDAwMSwKKyAgUk9XXzFfQ0VOVEVSID0gMHgwMDAwMDAwMiwKKyAgUk9XXzFfUklHSFQgPSAweDAwMDAwMDA0LAorICBST1dfMSA9IDB4MDAwMDAwMDgsCisgIFJPV18yX0xFRlQgPSAweDAwMDAwMDEwLAorICBST1dfMl9DRU5URVIgPSAweDAwMDAwMDIwLAorICBST1dfMl9SSUdIVCA9IDB4MDAwMDAwNDAsCisgIFJPV18yID0gMHgwMDAwMDA4MCwKKyAgUk9XXzNfTEVGVCA9IDB4MDAwMDAxMDAsCisgIFJPV18zX0NFTlRFUiA9IDB4MDAwMDAyMDAsCisgIFJPV18zX1JJR0hUID0gMHgwMDAwMDQwMCwKKyAgUk9XXzMgPSAweDAwMDAwODAwLAorICBST1dfNF9MRUZUID0gMHgwMDAwMTAwMCwKKyAgUk9XXzRfQ0VOVEVSID0gMHgwMDAwMjAwMCwKKyAgUk9XXzRfUklHSFQgPSAweDAwMDA0MDAwLAorICBST1dfNCA9IDB4MDAwMDgwMDAsCisgIFdIT0xFX0NBQklOID0gMHg4MDAwMDAwMCwKK307CisKKy8qKgorICogVmFyaW91cyBTZWF0cyBpbiB0aGUgY2FyLgorICovCitlbnVtIFZlaGljbGVBcmVhU2VhdCA6IGludDMyX3QgeworICAgIFJPV18xX0xFRlQgICA9IDB4MDAwMSwKKyAgICBST1dfMV9DRU5URVIgPSAweDAwMDIsCisgICAgUk9XXzFfUklHSFQgID0gMHgwMDA0LAorICAgIFJPV18yX0xFRlQgICA9IDB4MDAxMCwKKyAgICBST1dfMl9DRU5URVIgPSAweDAwMjAsCisgICAgUk9XXzJfUklHSFQgID0gMHgwMDQwLAorICAgIFJPV18zX0xFRlQgICA9IDB4MDEwMCwKKyAgICBST1dfM19DRU5URVIgPSAweDAyMDAsCisgICAgUk9XXzNfUklHSFQgID0gMHgwNDAwCit9OworCisvKioKKyAqIFZhcmlvdXMgd2luZHNoaWVsZHMvd2luZG93cyBpbiB0aGUgY2FyLgorICovCitlbnVtIFZlaGljbGVBcmVhV2luZG93IDogaW50MzJfdCB7CisgICAgRlJPTlRfV0lORFNISUVMRCA9IDB4MDAwMSwKKyAgICBSRUFSX1dJTkRTSElFTEQgPSAweDAwMDIsCisgICAgUk9PRl9UT1AgPSAweDAwMDQsCisgICAgUk9XXzFfTEVGVCA9IDB4MDAxMCwKKyAgICBST1dfMV9SSUdIVCA9IDB4MDAyMCwKKyAgICBST1dfMl9MRUZUID0gMHgwMTAwLAorICAgIFJPV18yX1JJR0hUID0gMHgwMjAwLAorICAgIFJPV18zX0xFRlQgPSAweDEwMDAsCisgICAgUk9XXzNfUklHSFQgPSAweDIwMDAsCit9OworCitlbnVtIFZlaGljbGVBcmVhRG9vciA6IGludDMyX3QgeworICAgIFJPV18xX0xFRlQgPSAweDAwMDAwMDAxLAorICAgIFJPV18xX1JJR0hUID0gMHgwMDAwMDAwNCwKKyAgICBST1dfMl9MRUZUID0gMHgwMDAwMDAxMCwKKyAgICBST1dfMl9SSUdIVCA9IDB4MDAwMDAwNDAsCisgICAgUk9XXzNfTEVGVCA9IDB4MDAwMDAxMDAsCisgICAgUk9XXzNfUklHSFQgPSAweDAwMDAwNDAwLAorICAgIEhPT0QgPSAweDEwMDAwMDAwLAorICAgIFJFQVIgPSAweDIwMDAwMDAwLAorfTsKKworZW51bSBWZWhpY2xlQXJlYU1pcnJvciA6IGludDMyX3QgeworICAgIERSSVZFUl9MRUZUID0gMHgwMDAwMDAwMSwKKyAgICBEUklWRVJfUklHSFQgPSAweDAwMDAwMDAyLAorICAgIERSSVZFUl9DRU5URVIgPSAweDAwMDAwMDA0LAorfTsKKworZW51bSBWZWhpY2xlVHVyblNpZ25hbCA6IGludDMyX3QgeworICAgIE5PTkUgPSAweDAwLAorICAgIFJJR0hUID0gMHgwMSwKKyAgICBMRUZUID0gMHgwMiwKKyAgICBFTUVSR0VOQ1kgPSAweDA0LAorfTsKKworc3RydWN0IFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAvKioKKyAgICAgKiBBcmVhIGlkIGlzIGlnbm9yZWQgZm9yIFZlaGljbGVQcm9wZXJ0eUdyb3VwOkdMT0JBTCBwcm9wZXJ0aWVzLgorICAgICAqLworICAgIGludDMyX3QgYXJlYUlkOworCisgICAgaW50MzJfdCBtaW5JbnQzMlZhbHVlOworICAgIGludDMyX3QgbWF4SW50MzJWYWx1ZTsKKworICAgIGludDY0X3QgbWluSW50NjRWYWx1ZTsKKyAgICBpbnQ2NF90IG1heEludDY0VmFsdWU7CisKKyAgICBmbG9hdCBtaW5GbG9hdFZhbHVlOworICAgIGZsb2F0IG1heEZsb2F0VmFsdWU7Cit9OworCitzdHJ1Y3QgVmVoaWNsZVByb3BDb25maWcgeworICAgIC8qKiBQcm9wZXJ0eSBpZGVudGlmaWVyICovCisgICAgaW50MzJfdCBwcm9wOworCisgICAgLyoqCisgICAgICogRGVmaW5lcyBpZiB0aGUgcHJvcGVydHkgaXMgcmVhZCBvciB3cml0ZSBvciBib3RoLgorICAgICAqLworICAgIFZlaGljbGVQcm9wZXJ0eUFjY2VzcyBhY2Nlc3M7CisKKyAgICAvKioKKyAgICAgKiBEZWZpbmVzIHRoZSBjaGFuZ2UgbW9kZSBvZiB0aGUgcHJvcGVydHkuCisgICAgICovCisgICAgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZSBjaGFuZ2VNb2RlOworCisgICAgLyoqCisgICAgICogU29tZSBvZiB0aGUgcHJvcGVydGllcyBtYXkgaGF2ZSBhc3NvY2lhdGVkIGFyZWFzIChmb3IgZXhhbXBsZSwgc29tZSBodmFjCisgICAgICogcHJvcGVydGllcyBhcmUgYXNzb2NpYXRlZCB3aXRoIFZlaGljbGVBcmVhWm9uZSksIGluIHRoZXNlCisgICAgICogY2FzZXMgdGhlIGNvbmZpZyBtYXkgY29udGFpbiBhbiBPUmVkIHZhbHVlIGZvciB0aGUgYXNzb2NpYXRlZCBhcmVhcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IHN1cHBvcnRlZEFyZWFzOworCisgICAgLyoqCisgICAgICogQ29udGFpbnMgcGVyLWFyZWEgY29uZmlndXJhdGlvbi4KKyAgICAgKi8KKyAgICB2ZWM8VmVoaWNsZUFyZWFDb25maWc+IGFyZWFDb25maWdzOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJhdGlvbiBmbGFncyBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLCBpdCBtYXkgc3RvcmUgdGhlIG51bWJlciBvZiBwcmVzZXRzIHRoYXQgYXJlIHN0b3JlZCBieSB0aGUKKyAgICAgKiByYWRpbyBtb2R1bGUuCisgICAgICovCisgICAgaW50MzJfdCBjb25maWdGbGFnczsKKworICAgIC8qKiBDb250YWlucyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyAqLworICAgIHZlYzxpbnQzMl90PiBjb25maWdBcnJheTsKKworICAgIC8qKgorICAgICAqIFNvbWUgcHJvcGVydGllcyBtYXkgcmVxdWlyZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHBhc3NlZCBvdmVyIHRoaXMKKyAgICAgKiBzdHJpbmcuIE1vc3QgcHJvcGVydGllcyBkbyBub3QgbmVlZCB0byBzZXQgdGhpcy4KKyAgICAgKi8KKyAgICBzdHJpbmcgY29uZmlnU3RyaW5nOworCisgICAgLyoqCisgICAgICogTWluIHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqIE11c3QgYmUgZGVmaW5lZCBmb3IgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUworICAgICAqLworICAgIGZsb2F0IG1pblNhbXBsZVJhdGU7CisKKyAgICAvKioKKyAgICAgKiBNdXN0IGJlIGRlZmluZWQgZm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMKKyAgICAgKiBNYXggc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICovCisgICAgZmxvYXQgbWF4U2FtcGxlUmF0ZTsKK307CisKKy8qKgorICogRW5jYXBzdWxhdGVzIHRoZSBwcm9wZXJ0eSBuYW1lIGFuZCB0aGUgYXNzb2NpYXRlZCB2YWx1ZS4gSXQKKyAqIGlzIHVzZWQgYWNyb3NzIHZhcmlvdXMgQVBJIGNhbGxzIHRvIHNldCB2YWx1ZXMsIGdldCB2YWx1ZXMgb3IgdG8gcmVnaXN0ZXIgZm9yCisgKiBldmVudHMuCisgKi8KK3N0cnVjdCBWZWhpY2xlUHJvcFZhbHVlIHsKKyAgICAvKiogUHJvcGVydHkgaWRlbnRpZmllciAqLworICAgIGludDMyX3QgcHJvcDsKKworICAgIC8qKiBUaW1lIGlzIGVsYXBzZWQgbmFub3NlY29uZHMgc2luY2UgYm9vdCAqLworICAgIGludDY0X3QgdGltZXN0YW1wOworCisgICAgLyoqCisgICAgICogQXJlYSB0eXBlKHMpIGZvciBub24tZ2xvYmFsIHByb3BlcnR5IGl0IG11c3QgYmUgb25lIG9mIHRoZSB2YWx1ZSBmcm9tCisgICAgICogVmVoaWNsZUFyZWEqIGVudW1zIG9yIDAgZm9yIGdsb2JhbCBwcm9wZXJ0aWVzLgorICAgICAqLworICAgIGludDMyX3QgYXJlYUlkOworCisgICAgLyoqCisgICAgICogQ29udGFpbnMgdmFsdWUgZm9yIGEgc2luZ2xlIHByb3BlcnR5LiBEZXBlbmRpbmcgb24gcHJvcGVydHkgZGF0YSB0eXBlIG9mCisgICAgICogdGhpcyBwcm9wZXJ0eSAoVmVoaWNsZVByb3BldHlUeXBlKSBvbmUgZmllbGQgb2YgdGhpcyBzdHJ1Y3R1cmUgbXVzdCBiZSBmaWxsZWQgaW4uCisgICAgICovCisgICAgc3RydWN0IFJhd1ZhbHVlIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgaXMgdXNlZCBmb3IgcHJvcGVydGllcyBvZiB0eXBlcyBWZWhpY2xlUHJvcGVydHlUeXBlI0lOVAorICAgICAgICAgKiBhbmQgVmVoaWNsZVByb3BlcnR5VHlwZSNJTlRfVkVDCisgICAgICAgICAqLworICAgICAgICB2ZWM8aW50MzJfdD4gaW50MzJWYWx1ZXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgaXMgdXNlZCBmb3IgcHJvcGVydGllcyBvZiB0eXBlcyBWZWhpY2xlUHJvcGVydHlUeXBlI0ZMT0FUCisgICAgICAgICAqIGFuZCBWZWhpY2xlUHJvcGVydHlUeXBlI0ZMT0FUX1ZFQworICAgICAgICAgKi8KKyAgICAgICAgdmVjPGZsb2F0PiBmbG9hdFZhbHVlczsKKworICAgICAgICAvKiogVGhpcyBpcyB1c2VkIGZvciBwcm9wZXJ0aWVzIG9mIHR5cGUgVmVoaWNsZVByb3BlcnR5VHlwZSNJTlQ2NCAqLworICAgICAgICB2ZWM8aW50NjRfdD4gaW50NjRWYWx1ZXM7CisKKyAgICAgICAgLyoqIFRoaXMgaXMgdXNlZCBmb3IgcHJvcGVydGllcyBvZiB0eXBlIFZlaGljbGVQcm9wZXJ0eVR5cGUjQllURVMgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+IGJ5dGVzOworCisgICAgICAgIC8qKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZSBWZWhpY2xlUHJvcGVydHlUeXBlI1NUUklORyAqLworICAgICAgICBzdHJpbmcgc3RyaW5nVmFsdWU7CisgICAgfTsKKworICAgIFJhd1ZhbHVlIHZhbHVlOworfTsKKworZW51bSBWZWhpY2xlSWduaXRpb25TdGF0ZSA6IGludDMyX3QgeworICAgIFVOREVGSU5FRCA9IDAsCisKKyAgICAvKiogU3RlZXJpbmcgd2hlZWwgaXMgbG9ja2VkICovCisgICAgTE9DSyA9IDEsCisKKyAgICAgLyoqCisgICAgICAqIFN0ZWVyaW5nIHdoZWVsIGlzIG5vdCBsb2NrZWQsIGVuZ2luZSBhbmQgYWxsIGFjY2Vzc29yaWVzIGFyZSBPRkYuIElmCisgICAgICAqIGNhciBjYW4gYmUgaW4gTE9DSyBhbmQgT0ZGIHN0YXRlIGF0IHRoZSBzYW1lIHRpbWUgdGhhbiBIQUwgbXVzdCByZXBvcnQKKyAgICAgICogTE9DSyBzdGF0ZS4KKyAgICAgICovCisgICAgT0ZGLAorCisgICAgLyoqCisgICAgICogVHlwaWNhbGx5IGluIHRoaXMgc3RhdGUgYWNjZXNzb3JpZXMgYmVjb21lIGF2YWlsYWJsZSAoZS5nLiByYWRpbykuCisgICAgICogSW5zdHJ1bWVudCBjbHVzdGVyIGFuZCBlbmdpbmUgYXJlIHR1cm5lZCBvZmYKKyAgICAgKi8KKyAgICBBQ0MsCisKKyAgICAvKioKKyAgICAgKiBJZ25pdGlvbiBpcyBpbiBzdGF0ZSBPTi4gQWNjZXNzb3JpZXMgYW5kIGluc3RydW1lbnQgY2x1c3RlciBhdmFpbGFibGUsCisgICAgICogZW5naW5lIG1pZ2h0IGJlIHJ1bm5pbmcgb3IgcmVhZHkgdG8gYmUgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBPTiwKKworICAgIC8qKiBUeXBpY2FsbHkgaW4gdGhpcyBzdGF0ZSBlbmdpbmUgaXMgc3RhcnRpbmcgKGNyYW5raW5nKS4gKi8KKyAgICBTVEFSVAorfTsKKworCisvKioKKyAqIFJlcHJlc2VudCB0aGUgb3BlcmF0aW9uIHdoZXJlIHRoZSBjdXJyZW50IGVycm9yIGhhcyBoYXBwZW5lZC4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHlPcGVyYXRpb24gOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIGVycm9yIHRvIHRoaXMgcHJvcGVydHkgd2hpY2ggaXMgbm90IHRpZWQgdG8gYW55IG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBHRU5FUklDID0gMCwKKworICAgIC8qKgorICAgICAqIEVycm9yIGhhcHBlbmVkIHdoaWxlIGhhbmRsaW5nIHByb3BlcnR5IHNldC4KKyAgICAgKi8KKyAgICBTRVQgPSAxLAorCisgICAgLyoqCisgICAgICogRXJyb3IgaGFwcGVuZWQgd2hpbGUgaGFuZGxpbmcgcHJvcGVydHkgZ2V0LgorICAgICAqLworICAgIEdFVCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBFcnJvciBoYXBwZW5lZCB3aGlsZSBoYW5kbGluZyBwcm9wZXJ0eSBzdWJzY3JpcHRpb24uCisgICAgICovCisgICAgU1VCU0NSSUJFID0gMywKK307CisKKworZW51bSBTdWJzY3JpYmVGbGFncyA6IGludDMyX3QgeworICBVTkRFRklORUQgPSAweDAsCisKKyAgLyoqCisgICAqIFN1YnNjcmliZSB0byBldmVudCB0aGF0IHdhcyBvcmlnaW5hdGVkIGluIHZlaGljbGUgSEFMCisgICAqIChtb3N0IGxpa2VseSB0aGlzIGV2ZW50IGNhbWUgZnJvbSB0aGUgdmVoaWNsZSBpdHNlbGYpLgorICAgKi8KKyAgSEFMX0VWRU5UID0gMHgxLAorCisgIC8qKgorICAgKiBVc2UgdGhpcyBmbGFnIHRvIHN1YnNjcmliZSBvbiBldmVudHMgd2hlbiBJVmVoaWNsZSNzZXQoLi4uKSB3YXMgY2FsbGVkIGJ5CisgICAqIHZlaGljbGUgSEFMJ3MgY2xpZW50IChlLmcuIENhciBTZXJ2aWNlKS4KKyAgICovCisgIFNFVF9DQUxMID0gMHgyLAorCisgIERFRkFVTFQgPSBIQUxfRVZFTlQsCit9OworCisvKioKKyAqIEVuY2Fwc3VsYXRlcyBpbmZvcm1hdGlvbiBhYm91dCBzdWJzY3JpcHRpb24gdG8gdmVoaWNsZSBwcm9wZXJ0eSBldmVudHMuCisgKi8KK3N0cnVjdCBTdWJzY3JpYmVPcHRpb25zIHsKKyAgLyoqIFByb3BlcnR5IHRvIHN1YnNjcmliZSAqLworICBpbnQzMl90IHByb3BJZDsKKworICAvKioKKyAgICogQXJlYSBpZHMgLSB0aGlzIG11c3QgYmUgYSBiaXQgbWFzayBvZiBhcmVhcyB0byBzdWJzY3JpYmUgb3IgMCB0byBzdWJzY3JpYmUKKyAgICogdG8gYWxsIGFyZWFzLgorICAgKi8KKyAgaW50MzJfdCB2ZWhpY2xlQXJlYXM7CisKKyAgLyoqCisgICAqIFNhbXBsZSByYXRlIGluIEh6LgorICAgKgorICAgKiBNdXN0IGJlIHByb3ZpZGVkIGZvciBwcm9wZXJ0aWVzIHdpdGgKKyAgICogVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUy4gVGhlIHZhbHVlIG11c3QgYmUgd2l0aGluCisgICAqIFZlaGljbGVQcm9wQ29uZmlnI21pblNhbXBsaW5nUmF0ZSAuLiBWZWhpY2xlUHJvcENvbmZpZyNtYXhTYW1wbGluZ1JhdGUKKyAgICogZm9yIGEgZ2l2ZW4gcHJvcGVydHkuCisgICAqIFRoaXMgdmFsdWUgaW5kaWNhdGVzIGhvdyBtYW55IHVwZGF0ZXMgcGVyIHNlY29uZCBjbGllbnQgd2FudHMgdG8gcmVjZWl2ZS4KKyAgICovCisgIGZsb2F0IHNhbXBsZVJhdGU7CisKKyAgLyoqIEZsYWdzIHRoYXQgaW5kaWNhdGUgd2hhdCBraW5kIG9mIGV2ZW50cyBsaXN0ZW4gdG8uICovCisgIFN1YnNjcmliZUZsYWdzIGZsYWdzOworfTsKKworLyoqIEVycm9yIGNvZGVzIHVzZWQgaW4gdmVoaWNsZSBIQUwgaW50ZXJmYWNlLiAqLworZW51bSBTdGF0dXNDb2RlIDogaW50MzJfdCB7CisgIE9LID0gMCwKKworICAvKiogVHJ5IGFnYWluLiAqLworICBUUllfQUdBSU4gPSAxLAorCisgIC8qKiBJbnZhbGlkIGFyZ3VtZW50IHByb3ZpZGVkLiAqLworICBJTlZBTElEX0FSRyA9IDIsCisKKyAgLyoqCisgICAqIFRoaXMgY29kZSBtdXN0IGJlIHJldHVybmVkIHdoZW4gZGV2aWNlIHRoYXQgYXNzb2NpYXRlZCB3aXRoIHRoZSB2ZWhpY2xlCisgICAqIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuIEZvciBleGFtcGxlLCB3aGVuIGNsaWVudCB0cmllcyB0byBzZXQgSFZBQworICAgKiB0ZW1wZXJhdHVyZSB3aGVuIHRoZSB3aG9sZSBIVkFDIHVuaXQgaXMgdHVybmVkIE9GRi4KKyAgICovCisgIE5PVF9BVkFJTEFCTEUgPSAzLAorCisgIC8qKiBBY2Nlc3MgZGVuaWVkICovCisgIEFDQ0VTU19ERU5JRUQgPSA0LAorCisgIC8qKiBTb21ldGhpbmcgdW5leHBlY3RlZCBoYXMgaGFwcGVuZWQgaW4gVmVoaWNsZSBIQUwgKi8KKyAgSU5URVJOQUxfRVJST1IgPSA1LAorfTsKKworZW51bSBXaGVlbCA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAweDAsCisKKyAgICBMRUZUX0ZST05UID0gMHgxLAorICAgIFJJR0hUX0ZST05UID0gMHgyLAorICAgIExFRlRfUkVBUiA9IDB4NCwKKyAgICBSSUdIVF9SRUFSID0gMHg4LAorfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5icCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTQ1ZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjUgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklWZWhpY2xlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9WZWhpY2xlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lId1ZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQm5Id1ZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQnBId1ZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQnNWZWhpY2xlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTNmZTJkCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTM0IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4xLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlLVYyLjAtamF2YSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29tbW9uSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvQ29tbW9uSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuQ29tbW9uSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9Db21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkNvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRnVlbFN5c3RlbVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvRnVlbFN5c3RlbVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuRnVlbFN5c3RlbVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRnVlbFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0Z1ZWxUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5GdWVsVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSWduaXRpb25Nb25pdG9yS2luZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvSWduaXRpb25Nb25pdG9yS2luZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuSWduaXRpb25Nb25pdG9yS2luZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT2JkMkZsb2F0U2Vuc29ySW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL09iZDJGbG9hdFNlbnNvckluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5PYmQyRmxvYXRTZW5zb3JJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT2JkMkludGVnZXJTZW5zb3JJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvT2JkMkludGVnZXJTZW5zb3JJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuT2JkMkludGVnZXJTZW5zb3JJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vjb25kYXJ5QWlyU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9TZWNvbmRhcnlBaXJTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlNlY29uZGFyeUFpclN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3BhcmtJZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9TcGFya0lnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlNwYXJrSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WZWhpY2xlUHJvcGVydHkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVm1zTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1Ztc01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WbXNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9JVmVoaWNsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6SVZlaGljbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMS1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlLVYyLjAtamF2YS1zdGF0aWMgXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb21tb25JZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9Db21tb25JZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5Db21tb25JZ25pdGlvbk1vbml0b3JzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0NvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGdWVsU3lzdGVtU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9GdWVsU3lzdGVtU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5GdWVsU3lzdGVtU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGdWVsVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvRnVlbFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkZ1ZWxUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChJZ25pdGlvbk1vbml0b3JLaW5kKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9JZ25pdGlvbk1vbml0b3JLaW5kLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5JZ25pdGlvbk1vbml0b3JLaW5kCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChPYmQyRmxvYXRTZW5zb3JJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvT2JkMkZsb2F0U2Vuc29ySW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLk9iZDJGbG9hdFNlbnNvckluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChPYmQySW50ZWdlclNlbnNvckluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9PYmQySW50ZWdlclNlbnNvckluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5PYmQySW50ZWdlclNlbnNvckluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZWNvbmRhcnlBaXJTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1NlY29uZGFyeUFpclN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuU2Vjb25kYXJ5QWlyU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTcGFya0lnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1NwYXJrSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuU3BhcmtJZ25pdGlvbk1vbml0b3JzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1ZlaGljbGVQcm9wZXJ0eS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVmVoaWNsZVByb3BlcnR5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWbXNNZXNzYWdlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVm1zTWVzc2FnZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZtc01lc3NhZ2VUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGUuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0lWZWhpY2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjpJVmVoaWNsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmhhbCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvSVZlaGljbGUuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMmQxZTYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmhhbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4xICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4xCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKKy8qKgorICogTmV3IHJldmlzaW9uIG9mIElWZWhpY2xlIGludGVyZmFjZSB0aGF0IHN1cHBvcnRzIHByb3BlcnRpZXMgZGVmaW5lZCBpbgorICogVmVoaWNsZVByb3BlcnR5IGVudW0gdmVyc2lvbiAyLjEuCisgKgorICogTk9URTogdGhpcyBIQUwgaW50ZXJmYWNlIGlzIHVuZGVyIGRldmVsb3BtZW50IGFuZCBzaG91bGRuJ3QgYmUgdXNlZCBpbgorICogICAgICAgcHJvZHVjdGlvbi4KKyAqCisgKiBUT0RPKHBhdmVsbSk6IHVwZGF0ZSBjb21tZW50IHdoZW4gdGhpcyBpbnRlcmZhY2UgaXMgcmVhZHkgZm9yIHByb2QuCisgKi8KK2ludGVyZmFjZSBJVmVoaWNsZSBleHRlbmRzIEAyLjA6OklWZWhpY2xlIHsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyZWM0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDExOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCit2aGFsX3YyXzAgPSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAKK3ZoYWxfdjJfMSA9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGxpYgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gJCh2aGFsX3YyXzEpLW1hbmFnZXItbGliCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIGNvbW1vbi9zcmMvT2JkMlNlbnNvclN0b3JlLmNwcAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMSBcCisgICAgJChMT0NBTF9QQVRIKS8uLi8uLi8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAgXAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMSkgXAorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBkZWZhdWx0IFZlaGljbGVIQUwgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEU6PSAkKHZoYWxfdjJfMSktZGVmYXVsdC1pbXBsLWxpYgorTE9DQUxfU1JDX0ZJTEVTOj0gXAorICAgIGltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2ltcGwvdmhhbF92Ml8xIFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9pbXBsIFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlCisKKworIyBMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLWRlZmF1bHQtaW1wbC1saWIgXAorICAgICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYiBcCisgICAgJCh2aGFsX3YyXzEpLW1hbmFnZXItbGliIFwKKyAgICAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJod2JpbmRlciBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGlicHJvdG9idWYtY3BwLWxpdGUgXAorICAgICQodmhhbF92Ml8wKSBcCisgICAgJCh2aGFsX3YyXzEpIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBIQUwgc2VydmljZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gJCh2aGFsX3YyXzEpLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gJCh2aGFsX3YyXzEpLXNlcnZpY2UucmMKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLW1hbmFnZXItbGliIFwKKyAgICAkKHZoYWxfdjJfMCktZGVmYXVsdC1pbXBsLWxpYiBcCisgICAgJCh2aGFsX3YyXzEpLWRlZmF1bHQtaW1wbC1saWIgXAorICAgICQodmhhbF92Ml8xKS1tYW5hZ2VyLWxpYiBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJod2JpbmRlciBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGlicHJvdG9idWYtY3BwLWxpdGUgXAorICAgICQodmhhbF92Ml8wKSBcCisgICAgJCh2aGFsX3YyXzEpIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZS5yYyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTI5ZDI1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMS1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB2ZWhpY2xlLWhhbC0yLjEgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHZlaGljbGVfbmV0d29yaworICAgIGdyb3VwIHN5c3RlbSBpbmV0CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8xL09iZDJTZW5zb3JTdG9yZS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMS9PYmQyU2Vuc29yU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzQ0NjI2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMS9PYmQyU2Vuc29yU3RvcmUuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX09iZDJTZW5zb3JTdG9yZV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX09iZDJTZW5zb3JTdG9yZV9IXworCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKKy8vIFRoaXMgY2xhc3Mgd3JhcHMgYWxsIHRoZSBsb2dpYyByZXF1aXJlZCB0byBjcmVhdGUgYW4gT0JEMiBmcmFtZS4KKy8vIEl0IGFsbG93cyBzdG9yaW5nIHNlbnNvciB2YWx1ZXMsIHNldHRpbmcgYXBwcm9wcmlhdGUgYml0bWFza3MgYXMgbmVlZGVkLAorLy8gYW5kIHJldHVybmluZyBhcHByb3ByaWF0ZWx5IGxhaWQgb3V0IHN0b3JhZ2Ugb2Ygc2Vuc29yIHZhbHVlcyBzdWl0YWJsZQorLy8gZm9yIGJlaW5nIHJldHVybmVkIHZpYSBhIFZlaGljbGVIYWwgaW1wbGVtZW50YXRpb24uCitjbGFzcyBPYmQyU2Vuc29yU3RvcmUgeworcHVibGljOgorICAgIC8vIENyZWF0ZXMgYSBzZW5zb3Igc3RvcmFnZSB3aXRoIGEgZ2l2ZW4gbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBzZW5zb3JzLgorICAgIE9iZDJTZW5zb3JTdG9yZShzaXplX3QgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsCisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1WZW5kb3JGbG9hdFNlbnNvcnMpOworCisgICAgLy8gU3RvcmVzIGFuIGludGVnZXItdmFsdWVkIHNlbnNvci4KKyAgICBWMl8wOjpTdGF0dXNDb2RlIHNldEludGVnZXJTZW5zb3IoT2JkMkludGVnZXJTZW5zb3JJbmRleCBpbmRleCwgaW50MzJfdCB2YWx1ZSk7CisgICAgLy8gU3RvcmVzIGFuIGludGVnZXItdmFsdWVkIHNlbnNvci4KKyAgICBWMl8wOjpTdGF0dXNDb2RlIHNldEludGVnZXJTZW5zb3Ioc2l6ZV90IGluZGV4LCBpbnQzMl90IHZhbHVlKTsKKworICAgIC8vIFN0b3JlcyBhIGZsb2F0LXZhbHVlZCBzZW5zb3IuCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXRGbG9hdFNlbnNvcihPYmQyRmxvYXRTZW5zb3JJbmRleCBpbmRleCwgZmxvYXQgdmFsdWUpOworICAgIC8vIFN0b3JlcyBhIGZsb2F0LXZhbHVlZCBzZW5zb3IuCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXRGbG9hdFNlbnNvcihzaXplX3QgaW5kZXgsIGZsb2F0IHZhbHVlKTsKKworICAgIC8vIFJldHVybnMgYSB2ZWN0b3IgdGhhdCBjb250YWlucyBhbGwgaW50ZWdlciBzZW5zb3JzIHN0b3JlZC4KKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgZ2V0SW50ZWdlclNlbnNvcnMoKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIGEgdmVjdG9yIHRoYXQgY29udGFpbnMgYWxsIGZsb2F0IHNlbnNvcnMgc3RvcmVkLgorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGZsb2F0PiYgZ2V0RmxvYXRTZW5zb3JzKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyBhIHZlY3RvciB0aGF0IGNvbnRhaW5zIGEgYml0bWFzayBmb3IgYWxsIHN0b3JlZCBzZW5zb3JzLgorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBnZXRTZW5zb3JzQml0bWFzaygpIGNvbnN0OworCisgICAgLy8gR2l2ZW4gYSBzdHJpbmdWYWx1ZSwgZmlsbCBpbiBhIFZlaGljbGVQcm9wVmFsdWUKKyAgICB2b2lkIGZpbGxQcm9wVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIGR0YywgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSAqcHJvcFZhbHVlKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBCaXRtYXNrSW5WZWN0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgQml0bWFza0luVmVjdG9yKHNpemVfdCBudW1CaXRzID0gMCk7CisgICAgICAgIHZvaWQgcmVzaXplKHNpemVfdCBudW1CaXRzKTsKKyAgICAgICAgYm9vbCBnZXQoc2l6ZV90IGluZGV4KSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXQoc2l6ZV90IGluZGV4LCBib29sIHZhbHVlKTsKKworICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZ2V0Qml0bWFzaygpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbVN0b3JhZ2U7CisgICAgfTsKKworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IG1JbnRlZ2VyU2Vuc29yczsKKyAgICBzdGQ6OnZlY3RvcjxmbG9hdD4gbUZsb2F0U2Vuc29yczsKKyAgICBCaXRtYXNrSW5WZWN0b3IgbVNlbnNvcnNCaXRtYXNrOworfTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfT2JkMlNlbnNvclN0b3JlX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvY29tbW9uL3NyYy9PYmQyU2Vuc29yU3RvcmUuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9zcmMvT2JkMlNlbnNvclN0b3JlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGM2M2E5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9zcmMvT2JkMlNlbnNvclN0b3JlLmNwcApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJPYmQyU2Vuc29yU3RvcmUuaCIKKworI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKK09iZDJTZW5zb3JTdG9yZTo6Qml0bWFza0luVmVjdG9yOjpCaXRtYXNrSW5WZWN0b3Ioc2l6ZV90IG51bUJpdHMpCit7CisgICAgcmVzaXplKG51bUJpdHMpOworfQorCit2b2lkIE9iZDJTZW5zb3JTdG9yZTo6Qml0bWFza0luVmVjdG9yOjpyZXNpemUoc2l6ZV90IG51bUJpdHMpIHsKKyAgICBtU3RvcmFnZSA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KChudW1CaXRzKzcpLzgsIDApOworfQorCit2b2lkIE9iZDJTZW5zb3JTdG9yZTo6Qml0bWFza0luVmVjdG9yOjpzZXQoc2l6ZV90IGluZGV4LCBib29sIHZhbHVlKSB7CisgICAgY29uc3Qgc2l6ZV90IGJ5dGVJbmRleCA9IGluZGV4IC8gODsKKyAgICBjb25zdCBzaXplX3QgYml0SW5kZXggPSBpbmRleCAlIDg7CisgICAgY29uc3QgdWludDhfdCBieXRlID0gbVN0b3JhZ2VbYnl0ZUluZGV4XTsKKyAgICB1aW50OF90IG5ld1ZhbHVlID0gdmFsdWUgPyAoYnl0ZSB8ICgxIDw8IGJpdEluZGV4KSkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlICYgfigxIDw8IGJpdEluZGV4KSk7CisgICAgbVN0b3JhZ2VbYnl0ZUluZGV4XSA9IG5ld1ZhbHVlOworfQorCitib29sIE9iZDJTZW5zb3JTdG9yZTo6Qml0bWFza0luVmVjdG9yOjpnZXQoc2l6ZV90IGluZGV4KSBjb25zdCB7CisgICAgY29uc3Qgc2l6ZV90IGJ5dGVJbmRleCA9IGluZGV4IC8gODsKKyAgICBjb25zdCBzaXplX3QgYml0SW5kZXggPSBpbmRleCAlIDg7CisgICAgY29uc3QgdWludDhfdCBieXRlID0gbVN0b3JhZ2VbYnl0ZUluZGV4XTsKKyAgICByZXR1cm4gKGJ5dGUgJiAoMSA8PCBiaXRJbmRleCkpICE9IDA7Cit9CisKK2NvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6Z2V0Qml0bWFzaygpIGNvbnN0IHsKKyAgICByZXR1cm4gbVN0b3JhZ2U7Cit9CisKK09iZDJTZW5zb3JTdG9yZTo6T2JkMlNlbnNvclN0b3JlKHNpemVfdCBudW1WZW5kb3JJbnRlZ2VyU2Vuc29ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1WZW5kb3JGbG9hdFNlbnNvcnMpIHsKKyAgICAgICAgLy8gYmVjYXVzZSB0aGUgbGFzdCBpbmRleCBpcyB2YWxpZCAqaW5jbHVzaXZlKgorICAgICAgICBjb25zdCBzaXplX3QgbnVtU3lzdGVtSW50ZWdlclNlbnNvcnMgPSBWMl8wOjp0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkrMTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IG51bVN5c3RlbUZsb2F0U2Vuc29ycyA9IFYyXzA6OnRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkrMTsKKyAgICAgICAgbUludGVnZXJTZW5zb3JzID0gc3RkOjp2ZWN0b3I8aW50MzJfdD4oCisgICAgICAgICAgICBudW1TeXN0ZW1JbnRlZ2VyU2Vuc29ycytudW1WZW5kb3JJbnRlZ2VyU2Vuc29ycywgMCk7CisgICAgICAgIG1GbG9hdFNlbnNvcnMgPSBzdGQ6OnZlY3RvcjxmbG9hdD4oCisgICAgICAgICAgICBudW1TeXN0ZW1GbG9hdFNlbnNvcnMrbnVtVmVuZG9yRmxvYXRTZW5zb3JzLCAwKTsKKyAgICAgICAgbVNlbnNvcnNCaXRtYXNrLnJlc2l6ZShtSW50ZWdlclNlbnNvcnMuc2l6ZSgpK21GbG9hdFNlbnNvcnMuc2l6ZSgpKTsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBPYmQyU2Vuc29yU3RvcmU6OnNldEludGVnZXJTZW5zb3IoT2JkMkludGVnZXJTZW5zb3JJbmRleCBpbmRleCwKKyAgICBpbnQzMl90IHZhbHVlKSB7CisgICAgcmV0dXJuIHNldEludGVnZXJTZW5zb3IoVjJfMDo6dG9JbnQoaW5kZXgpLCB2YWx1ZSk7Cit9CitWMl8wOjpTdGF0dXNDb2RlIE9iZDJTZW5zb3JTdG9yZTo6c2V0RmxvYXRTZW5zb3IoT2JkMkZsb2F0U2Vuc29ySW5kZXggaW5kZXgsCisgICAgZmxvYXQgdmFsdWUpIHsKKyAgICByZXR1cm4gc2V0RmxvYXRTZW5zb3IoVjJfMDo6dG9JbnQoaW5kZXgpLCB2YWx1ZSk7Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgT2JkMlNlbnNvclN0b3JlOjpzZXRJbnRlZ2VyU2Vuc29yKHNpemVfdCBpbmRleCwgaW50MzJfdCB2YWx1ZSkgeworICAgIG1JbnRlZ2VyU2Vuc29yc1tpbmRleF0gPSB2YWx1ZTsKKyAgICBtU2Vuc29yc0JpdG1hc2suc2V0KGluZGV4LCB0cnVlKTsKKyAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgT2JkMlNlbnNvclN0b3JlOjpzZXRGbG9hdFNlbnNvcihzaXplX3QgaW5kZXgsIGZsb2F0IHZhbHVlKSB7CisgICAgbUZsb2F0U2Vuc29yc1tpbmRleF0gPSB2YWx1ZTsKKyAgICBtU2Vuc29yc0JpdG1hc2suc2V0KGluZGV4ICsgbUludGVnZXJTZW5zb3JzLnNpemUoKSwgdHJ1ZSk7CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCitjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgT2JkMlNlbnNvclN0b3JlOjpnZXRJbnRlZ2VyU2Vuc29ycygpIGNvbnN0IHsKKyAgICByZXR1cm4gbUludGVnZXJTZW5zb3JzOworfQorCitjb25zdCBzdGQ6OnZlY3RvcjxmbG9hdD4mIE9iZDJTZW5zb3JTdG9yZTo6Z2V0RmxvYXRTZW5zb3JzKCkgY29uc3QgeworICAgIHJldHVybiBtRmxvYXRTZW5zb3JzOworfQorCitjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgT2JkMlNlbnNvclN0b3JlOjpnZXRTZW5zb3JzQml0bWFzaygpIGNvbnN0IHsKKyAgICByZXR1cm4gbVNlbnNvcnNCaXRtYXNrLmdldEJpdG1hc2soKTsKK30KKwordm9pZCBPYmQyU2Vuc29yU3RvcmU6OmZpbGxQcm9wVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIGR0YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYyXzA6OlZlaGljbGVQcm9wVmFsdWUgKnByb3BWYWx1ZSkgY29uc3QgeworICAgIHByb3BWYWx1ZS0+dGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICAgIHByb3BWYWx1ZS0+dmFsdWUuaW50MzJWYWx1ZXMgPSBnZXRJbnRlZ2VyU2Vuc29ycygpOworICAgIHByb3BWYWx1ZS0+dmFsdWUuZmxvYXRWYWx1ZXMgPSBnZXRGbG9hdFNlbnNvcnMoKTsKKyAgICBwcm9wVmFsdWUtPnZhbHVlLmJ5dGVzID0gZ2V0U2Vuc29yc0JpdG1hc2soKTsKKyAgICBwcm9wVmFsdWUtPnZhbHVlLnN0cmluZ1ZhbHVlID0gZHRjOworfQorCisKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0RlZmF1bHRDb25maWcuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9EZWZhdWx0Q29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYxMDA4NgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9EZWZhdWx0Q29uZmlnLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9pbXBsX0RlZmF1bHRDb25maWdfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9pbXBsX0RlZmF1bHRDb25maWdfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8xIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvLyBTb21lIGhhbmR5IGNvbnN0YW50cyB0byBhdm9pZCBjb252ZXJzaW9ucyBmcm9tIGVudW0gdG8gaW50LgorY29uc3RleHByIGludCBPQkQyX0xJVkVfRlJBTUUgPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6Ok9CRDJfTElWRV9GUkFNRTsKK2NvbnN0ZXhwciBpbnQgT0JEMl9GUkVFWkVfRlJBTUUgPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6Ok9CRDJfRlJFRVpFX0ZSQU1FOworY29uc3RleHByIGludCBPQkQyX0ZSRUVaRV9GUkFNRV9JTkZPID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpPQkQyX0ZSRUVaRV9GUkFNRV9JTkZPOworY29uc3RleHByIGludCBPQkQyX0ZSRUVaRV9GUkFNRV9DTEVBUiA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6T0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVI7Citjb25zdGV4cHIgaW50IFZFSElDTEVfTUFQX1NFUlZJQ0UgPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6OlZFSElDTEVfTUFQX1NFUlZJQ0U7Citjb25zdGV4cHIgaW50IFdIRUVMX1RJQ0sgPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6OldIRUVMX1RJQ0s7CisKKworY29uc3QgVjJfMDo6VmVoaWNsZVByb3BDb25maWcga1ZlaGljbGVQcm9wZXJ0aWVzW10gPSB7CisgICAgeworICAgICAgICAucHJvcCA9IFdIRUVMX1RJQ0ssCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUywKKyAgICAgICAgLm1pblNhbXBsZVJhdGUgPSAxLjBmLAorICAgICAgICAubWF4U2FtcGxlUmF0ZSA9IDEwMC4wZiwKKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IE9CRDJfTElWRV9GUkFNRSwKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgIC5jb25maWdBcnJheSA9IHswLDB9CisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSBPQkQyX0ZSRUVaRV9GUkFNRSwKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgIC5jb25maWdBcnJheSA9IHswLDB9CisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSBPQkQyX0ZSRUVaRV9GUkFNRV9JTkZPLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVIsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OldSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gVkVISUNMRV9NQVBfU0VSVklDRSwKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UKKyAgICB9Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkY2VhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcApAQCAtMCwwICsxLDI2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRGVmYXVsdFZlaGljbGVIYWxfdjJfMSIKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisjaW5jbHVkZSAiRW11bGF0ZWRWZWhpY2xlSGFsLmgiCisjaW5jbHVkZSAiVmVoaWNsZUhhbFByb3RvLnBiLmgiCisKKyNkZWZpbmUgREVCVUdfU09DS0VUICAgICgzMzQ1MikKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8xIHsKKworbmFtZXNwYWNlIGltcGwgeworCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE9iZDJTZW5zb3JTdG9yZT4gZmlsbERlZmF1bHRPYmQyRnJhbWUoCisgICAgICAgIHNpemVfdCBudW1WZW5kb3JJbnRlZ2VyU2Vuc29ycywKKyAgICAgICAgc2l6ZV90IG51bVZlbmRvckZsb2F0U2Vuc29ycykgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxPYmQyU2Vuc29yU3RvcmU+IHNlbnNvclN0b3JlKG5ldyBPYmQyU2Vuc29yU3RvcmUoCisgICAgICAgICAgICBudW1WZW5kb3JJbnRlZ2VyU2Vuc29ycywgbnVtVmVuZG9yRmxvYXRTZW5zb3JzKSk7CisKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RlVFTF9TWVNURU1fU1RBVFVTLAorICAgICAgICBWMl8wOjp0b0ludChGdWVsU3lzdGVtU3RhdHVzOjpDTE9TRURfTE9PUCkpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpNQUxGVU5DVElPTl9JTkRJQ0FUT1JfTElHSFRfT04sIDApOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpJR05JVElPTl9NT05JVE9SU19TVVBQT1JURUQsCisgICAgICAgIFYyXzA6OnRvSW50KElnbml0aW9uTW9uaXRvcktpbmQ6OlNQQVJLKSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6SUdOSVRJT05fU1BFQ0lGSUNfTU9OSVRPUlMsCisgICAgICAgIENvbW1vbklnbml0aW9uTW9uaXRvcnM6OkNPTVBPTkVOVFNfQVZBSUxBQkxFIHwKKyAgICAgICAgQ29tbW9uSWduaXRpb25Nb25pdG9yczo6TUlTRklSRV9BVkFJTEFCTEUgfAorICAgICAgICBTcGFya0lnbml0aW9uTW9uaXRvcnM6OkFDX1JFRlJJR0VSQU5UX0FWQUlMQUJMRSB8CisgICAgICAgIFNwYXJrSWduaXRpb25Nb25pdG9yczo6RVZBUE9SQVRJVkVfU1lTVEVNX0FWQUlMQUJMRSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OklOVEFLRV9BSVJfVEVNUEVSQVRVUkUsIDM1KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09NTUFOREVEX1NFQ09OREFSWV9BSVJfU1RBVFVTLAorICAgICAgICBWMl8wOjp0b0ludChTZWNvbmRhcnlBaXJTdGF0dXM6OkZST01fT1VUU0lERV9PUl9PRkYpKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TlVNX09YWUdFTl9TRU5TT1JTX1BSRVNFTlQsIDEpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpSVU5USU1FX1NJTkNFX0VOR0lORV9TVEFSVCwgNTAwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RElTVEFOQ0VfVFJBVkVMRURfV0lUSF9NQUxGVU5DVElPTl9JTkRJQ0FUT1JfTElHSFRfT04sIDApOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpXQVJNVVBTX1NJTkNFX0NPREVTX0NMRUFSRUQsIDUxKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RElTVEFOQ0VfVFJBVkVMRURfU0lOQ0VfQ09ERVNfQ0xFQVJFRCwgMzY1KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6QUJTT0xVVEVfQkFST01FVFJJQ19QUkVTU1VSRSwgMzApOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpDT05UUk9MX01PRFVMRV9WT0xUQUdFLCAxMik7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFNQklFTlRfQUlSX1RFTVBFUkFUVVJFLCAxOCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6Ok1BWF9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTywgMSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfVFlQRSwgVjJfMDo6dG9JbnQoRnVlbFR5cGU6OkdBU09MSU5FKSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCwgMC4xNTMpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlNIT1JUX1RFUk1fRlVFTF9UUklNX0JBTksxLCAtMC4xNik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6TE9OR19URVJNX0ZVRUxfVFJJTV9CQU5LMSwgLTAuMTYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlNIT1JUX1RFUk1fRlVFTF9UUklNX0JBTksyLCAtMC4xNik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6TE9OR19URVJNX0ZVRUxfVFJJTV9CQU5LMiwgLTAuMTYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OklOVEFLRV9NQU5JRk9MRF9BQlNPTFVURV9QUkVTU1VSRSwgNy41KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpFTkdJTkVfUlBNLCAxMjUwLik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCwgNDAuKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpUSU1JTkdfQURWQU5DRSwgMi41KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpUSFJPVFRMRV9QT1NJVElPTiwgMTkuNzUpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok9YWUdFTl9TRU5TT1IxX1ZPTFRBR0UsIDAuMjY1KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpGVUVMX1RBTktfTEVWRUxfSU5QVVQsIDAuODI0KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpFVkFQT1JBVElPTl9TWVNURU1fVkFQT1JfUFJFU1NVUkUsIC0wLjM3Myk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q0FUQUxZU1RfVEVNUEVSQVRVUkVfQkFOSzFfU0VOU09SMSwgMTkwLik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6UkVMQVRJVkVfVEhST1RUTEVfUE9TSVRJT04sIDMuKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpBQlNPTFVURV9USFJPVFRMRV9QT1NJVElPTl9CLCAwLjMwNik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6QUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT05fRCwgMC4xODgpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0UsIDAuMDk0KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpDT01NQU5ERURfVEhST1RUTEVfQUNUVUFUT1IsIDAuMDI0KTsKKworICAgIHJldHVybiBzZW5zb3JTdG9yZTsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6OmluaXRPYmQyTGl2ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnJiBwcm9wQ29uZmlnKSB7CisgICAgYXV0byBsaXZlT2JkMkZyYW1lID0gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZShWMl8wOjpWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYLCAwKTsKKyAgICBhdXRvIHNlbnNvclN0b3JlID0gZmlsbERlZmF1bHRPYmQyRnJhbWUoc3RhdGljX2Nhc3Q8c2l6ZV90Pihwcm9wQ29uZmlnLmNvbmZpZ0FycmF5WzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90Pihwcm9wQ29uZmlnLmNvbmZpZ0FycmF5WzFdKSk7CisgICAgc2Vuc29yU3RvcmUtPmZpbGxQcm9wVmFsdWUoIiIsIGxpdmVPYmQyRnJhbWUuZ2V0KCkpOworICAgIGxpdmVPYmQyRnJhbWUtPnByb3AgPSBPQkQyX0xJVkVfRlJBTUU7CisKKyAgICBtUHJvcFN0b3JlLT53cml0ZVZhbHVlKCpsaXZlT2JkMkZyYW1lKTsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6OmluaXRPYmQyRnJlZXplRnJhbWUoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BDb25maWcmIHByb3BDb25maWcpIHsKKyAgICBhdXRvIHNlbnNvclN0b3JlID0gZmlsbERlZmF1bHRPYmQyRnJhbWUoc3RhdGljX2Nhc3Q8c2l6ZV90Pihwcm9wQ29uZmlnLmNvbmZpZ0FycmF5WzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90Pihwcm9wQ29uZmlnLmNvbmZpZ0FycmF5WzFdKSk7CisKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHNhbXBsZUR0Y3MgPSB7ICJQMDA3MCIsICJQMDEwMiIgIlAwMTIzIiB9OworICAgIGZvciAoYXV0byYmIGR0YyA6IHNhbXBsZUR0Y3MpIHsKKyAgICAgICAgYXV0byBmcmVlemVGcmFtZSA9IGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUoVjJfMDo6VmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWCwgMCk7CisgICAgICAgIHNlbnNvclN0b3JlLT5maWxsUHJvcFZhbHVlKGR0YywgZnJlZXplRnJhbWUuZ2V0KCkpOworICAgICAgICBtUHJvcFN0b3JlLT53cml0ZVZhbHVlKCpmcmVlemVGcmFtZSk7CisgICAgfQorfQorCitWMl8wOjpTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6ZmlsbE9iZDJGcmVlemVGcmFtZSgKKyAgICAgICAgY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlKiBvdXRWYWx1ZSkgeworICAgIGlmIChyZXF1ZXN0ZWRQcm9wVmFsdWUudmFsdWUuaW50NjRWYWx1ZXMuc2l6ZSgpICE9IDEpIHsKKyAgICAgICAgQUxPR0UoImFza2VkIGZvciBPQkQyX0ZSRUVaRV9GUkFNRSB3aXRob3V0IHZhbGlkIHRpbWVzdGFtcCIpOworICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorICAgIGF1dG8gdGltZXN0YW1wID0gcmVxdWVzdGVkUHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzWzBdOworICAgIGF1dG8gZnJlZXplRnJhbWUgPSBtUHJvcFN0b3JlLT5yZWFkVmFsdWVPck51bGwoT0JEMl9GUkVFWkVfRlJBTUUsIDAsIHRpbWVzdGFtcCk7CisgICAgaWYoZnJlZXplRnJhbWUgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiYXNrZWQgZm9yIE9CRDJfRlJFRVpFX0ZSQU1FIGF0IGludmFsaWQgdGltZXN0YW1wIik7CisgICAgICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisgICAgb3V0VmFsdWUtPnByb3AgPSBPQkQyX0ZSRUVaRV9GUkFNRTsKKyAgICBvdXRWYWx1ZS0+dmFsdWUuaW50MzJWYWx1ZXMgPSBmcmVlemVGcmFtZS0+dmFsdWUuaW50MzJWYWx1ZXM7CisgICAgb3V0VmFsdWUtPnZhbHVlLmZsb2F0VmFsdWVzID0gZnJlZXplRnJhbWUtPnZhbHVlLmZsb2F0VmFsdWVzOworICAgIG91dFZhbHVlLT52YWx1ZS5ieXRlcyA9IGZyZWV6ZUZyYW1lLT52YWx1ZS5ieXRlczsKKyAgICBvdXRWYWx1ZS0+dmFsdWUuc3RyaW5nVmFsdWUgPSBmcmVlemVGcmFtZS0+dmFsdWUuc3RyaW5nVmFsdWU7CisgICAgb3V0VmFsdWUtPnRpbWVzdGFtcCA9IGZyZWV6ZUZyYW1lLT50aW1lc3RhbXA7CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCitWMl8wOjpTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6Y2xlYXJPYmQyRnJlZXplRnJhbWVzKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIGlmIChwcm9wVmFsdWUudmFsdWUuaW50NjRWYWx1ZXMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgbVByb3BTdG9yZS0+cmVtb3ZlVmFsdWVzRm9yUHJvcGVydHkoT0JEMl9GUkVFWkVfRlJBTUUpOworICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yKGludDY0X3QgdGltZXN0YW1wOiBwcm9wVmFsdWUudmFsdWUuaW50NjRWYWx1ZXMpIHsKKyAgICAgICAgICAgIGF1dG8gZnJlZXplRnJhbWUgPSBtUHJvcFN0b3JlLT5yZWFkVmFsdWVPck51bGwoT0JEMl9GUkVFWkVfRlJBTUUsIDAsIHRpbWVzdGFtcCk7CisgICAgICAgICAgICBpZihmcmVlemVGcmFtZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImFza2VkIGZvciBPQkQyX0ZSRUVaRV9GUkFNRSBhdCBpbnZhbGlkIHRpbWVzdGFtcCIpOworICAgICAgICAgICAgICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1Qcm9wU3RvcmUtPnJlbW92ZVZhbHVlKCpmcmVlemVGcmFtZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCitWMl8wOjpTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6ZmlsbE9iZDJEdGNJbmZvKFYyXzA6OlZlaGljbGVQcm9wVmFsdWUqIG91dFZhbHVlKSB7CisgICAgc3RkOjp2ZWN0b3I8aW50NjRfdD4gdGltZXN0YW1wczsKKyAgICBmb3IoY29uc3QgYXV0byYgZnJlZXplRnJhbWU6IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZXNGb3JQcm9wZXJ0eShPQkQyX0ZSRUVaRV9GUkFNRSkpIHsKKyAgICAgICAgdGltZXN0YW1wcy5wdXNoX2JhY2soZnJlZXplRnJhbWUudGltZXN0YW1wKTsKKyAgICB9CisgICAgb3V0VmFsdWUtPnZhbHVlLmludDY0VmFsdWVzID0gdGltZXN0YW1wczsKKyAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNyZWF0ZSgpIHsKKyAgICBWMl8wOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWw6Om9uQ3JlYXRlKCk7CisKKyAgICBpbml0T2JkMkxpdmVGcmFtZSgqbVByb3BTdG9yZS0+Z2V0Q29uZmlnT3JEaWUoT0JEMl9MSVZFX0ZSQU1FKSk7CisgICAgaW5pdE9iZDJGcmVlemVGcmFtZSgqbVByb3BTdG9yZS0+Z2V0Q29uZmlnT3JEaWUoT0JEMl9GUkVFWkVfRlJBTUUpKTsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6OmluaXRTdGF0aWNDb25maWcoKSB7CisgICAgZm9yIChhdXRvJiYgY2ZnID0gc3RkOjpiZWdpbihrVmVoaWNsZVByb3BlcnRpZXMpOyBjZmcgIT0gc3RkOjplbmQoa1ZlaGljbGVQcm9wZXJ0aWVzKTsgKytjZmcpIHsKKyAgICAgICAgVjJfMDo6VmVoaWNsZVByb3BlcnR5U3RvcmU6OlRva2VuRnVuY3Rpb24gdG9rZW5GdW5jdGlvbiA9IG51bGxwdHI7CisKKyAgICAgICAgc3dpdGNoIChjZmctPnByb3ApIHsKKyAgICAgICAgICAgIGNhc2UgT0JEMl9GUkVFWkVfRlJBTUU6IHsKKyAgICAgICAgICAgICAgICB0b2tlbkZ1bmN0aW9uID0gW10gKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvcFZhbHVlLnRpbWVzdGFtcDsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIG1Qcm9wU3RvcmUtPnJlZ2lzdGVyUHJvcGVydHkoKmNmZywgdG9rZW5GdW5jdGlvbik7CisgICAgfQorfQorCitFbXVsYXRlZFZlaGljbGVIYWw6OlZlaGljbGVQcm9wVmFsdWVQdHIgRW11bGF0ZWRWZWhpY2xlSGFsOjpnZXQoCisgICAgICAgIGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgVjJfMDo6U3RhdHVzQ29kZSogb3V0U3RhdHVzKSB7CisKKyAgICBhdXRvIHByb3BJZCA9IHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wOworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgdiA9IG51bGxwdHI7CisgICAgYXV0byYgcG9vbCA9ICpnZXRWYWx1ZVBvb2woKTsKKworICAgIHN3aXRjaCAocHJvcElkKSB7CisgICAgY2FzZSBPQkQyX0ZSRUVaRV9GUkFNRToKKyAgICAgICAgdiA9IHBvb2wub2J0YWluQ29tcGxleCgpOworICAgICAgICAqb3V0U3RhdHVzID0gZmlsbE9iZDJGcmVlemVGcmFtZShyZXF1ZXN0ZWRQcm9wVmFsdWUsIHYuZ2V0KCkpOworICAgICAgICByZXR1cm4gdjsKKyAgICBjYXNlIE9CRDJfRlJFRVpFX0ZSQU1FX0lORk86CisgICAgICAgIHYgPSBwb29sLm9idGFpbkNvbXBsZXgoKTsKKyAgICAgICAgKm91dFN0YXR1cyA9IGZpbGxPYmQyRHRjSW5mbyh2LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFYyXzA6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbDo6Z2V0KHJlcXVlc3RlZFByb3BWYWx1ZSwgb3V0U3RhdHVzKTsKKyAgICB9Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpzZXQoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgYXV0byBwcm9wSWQgPSBwcm9wVmFsdWUucHJvcDsKKyAgICBzd2l0Y2ggKHByb3BJZCkgeworICAgIGNhc2UgT0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVI6CisgICAgICAgIHJldHVybiBjbGVhck9iZDJGcmVlemVGcmFtZXMocHJvcFZhbHVlKTsKKyAgICBjYXNlIFZFSElDTEVfTUFQX1NFUlZJQ0U6CisgICAgICAgIC8vIFBsYWNlaG9sZGVyIGZvciBmdXR1cmUgaW1wbGVtZW50YXRpb24gb2YgVk1TIHByb3BlcnR5IGluIHRoZSBkZWZhdWx0IGhhbC4gRm9yIG5vdywganVzdAorICAgICAgICAvLyByZXR1cm5zIE9LOyBvdGhlcndpc2UsIGhhbCBjbGllbnRzIGNyYXNoIHdpdGggcHJvcGVydHkgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBWMl8wOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWw6OnNldChwcm9wVmFsdWUpOworICAgIH0KK30KKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NjM2I3OQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KKworI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVIYWwuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzEvT2JkMlNlbnNvclN0b3JlLmg+CisKKyNpbmNsdWRlICJEZWZhdWx0Q29uZmlnLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKK25hbWVzcGFjZSBpbXBsIHsKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDo6cGxhY2Vob2xkZXJzOworCitjbGFzcyBFbXVsYXRlZFZlaGljbGVIYWwgOiBwdWJsaWMgVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsIHsKK3B1YmxpYzoKKyAgICBFbXVsYXRlZFZlaGljbGVIYWwoVjJfMDo6VmVoaWNsZVByb3BlcnR5U3RvcmUqIHByb3BTdG9yZSkKKyAgICAgICAgOiBWMl8wOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWwocHJvcFN0b3JlKSwgbVByb3BTdG9yZShwcm9wU3RvcmUpIHsKKyAgICAgICAgaW5pdFN0YXRpY0NvbmZpZygpOworICAgIH0KKworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgZ2V0KGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWMl8wOjpTdGF0dXNDb2RlKiBvdXRTdGF0dXMpIG92ZXJyaWRlOworCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXQoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSBvdmVycmlkZTsKKworICAgIHZvaWQgb25DcmVhdGUoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRTdGF0aWNDb25maWcoKTsKKyAgICB2b2lkIGluaXRPYmQyTGl2ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnJiBwcm9wQ29uZmlnKTsKKyAgICB2b2lkIGluaXRPYmQyRnJlZXplRnJhbWUoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BDb25maWcmIHByb3BDb25maWcpOworICAgIFYyXzA6OlN0YXR1c0NvZGUgZmlsbE9iZDJGcmVlemVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSogb3V0VmFsdWUpOworICAgIFYyXzA6OlN0YXR1c0NvZGUgZmlsbE9iZDJEdGNJbmZvKFYyXzA6OlZlaGljbGVQcm9wVmFsdWUgKm91dFZhbHVlKTsKKyAgICBWMl8wOjpTdGF0dXNDb2RlIGNsZWFyT2JkMkZyZWV6ZUZyYW1lcyhjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpOworCitwcml2YXRlOgorICAgIFYyXzA6OlZlaGljbGVQcm9wZXJ0eVN0b3JlKiBtUHJvcFN0b3JlOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFlNjRmZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXV0b21vdGl2ZS52ZWhpY2xlQDIuMS1zZXJ2aWNlIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvSVZlaGljbGUuaD4KKworI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaD4KKworI2luY2x1ZGUgPHZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuaD4KKwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU7CisKK25hbWVzcGFjZSBWMl8xID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6dmVoaWNsZTo6VjJfMTsKK25hbWVzcGFjZSBWMl8wID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6dmVoaWNsZTo6VjJfMDsKKwordXNpbmcgU3RhdHVzQ29kZSA9IFYyXzA6OlN0YXR1c0NvZGU7Cit1c2luZyBWZWhpY2xlUHJvcFZhbHVlID0gVjJfMDo6VmVoaWNsZVByb3BWYWx1ZTsKKworLyogSnVzdCB3cmFwcGVyIHRoYXQgcGFzc2VzIGFsbCBjYWxscyB0byB0aGUgcHJvdmlkZWQgVjJfMDo6SVZlaGljbGUgb2JqZWN0ICovCitzdHJ1Y3QgVmVoaWNsZV9WMl8xIDogcHVibGljIFYyXzE6OklWZWhpY2xlIHsKKworICAgIFZlaGljbGVfVjJfMShWMl8wOjpJVmVoaWNsZSogdmVoaWNsZTIwKSA6IG1WZWhpY2xlMjAodmVoaWNsZTIwKSB7fQorCisgICAgLy8gTWV0aG9kcyBkZXJpdmVkIGZyb20gSVZlaGljbGUKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcENvbmZpZ3MoZ2V0QWxsUHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5nZXRBbGxQcm9wQ29uZmlncyhfaGlkbF9jYik7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BDb25maWdzKGNvbnN0IGhpZGxfdmVjPGludDMyX3Q+JiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPmdldFByb3BDb25maWdzKHByb3BlcnRpZXMsIF9oaWRsX2NiKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0KGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIGdldF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPmdldChyZXF1ZXN0ZWRQcm9wVmFsdWUsIF9oaWRsX2NiKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gc2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5zZXQodmFsdWUpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXNDb2RlPiBzdWJzY3JpYmUoY29uc3Qgc3A8VjJfMDo6SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VjJfMDo6U3Vic2NyaWJlT3B0aW9ucz4mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zKSAgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+c3Vic2NyaWJlKGNhbGxiYWNrLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gdW5zdWJzY3JpYmUoY29uc3Qgc3A8VjJfMDo6SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCkgIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPnVuc3Vic2NyaWJlKGNhbGxiYWNrLCBwcm9wSWQpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoZGVidWdEdW1wX2NiIF9oaWRsX2NiID0gbnVsbHB0cikgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+ZGVidWdEdW1wKF9oaWRsX2NiKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVjJfMDo6SVZlaGljbGUqIG1WZWhpY2xlMjA7Cit9OworCitpbnQgbWFpbihpbnQgLyogYXJnYyAqLywgY2hhciogLyogYXJndiAqLyBbXSkgeworICAgIGF1dG8gc3RvcmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFYyXzA6OlZlaGljbGVQcm9wZXJ0eVN0b3JlPigpOworICAgIGF1dG8gaGFsID0gc3RkOjptYWtlX3VuaXF1ZTxWMl8xOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWw+KHN0b3JlLmdldCgpKTsKKyAgICBhdXRvIGVtdWxhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxWMl8wOjppbXBsOjpWZWhpY2xlRW11bGF0b3I+KGhhbC5nZXQoKSk7CisgICAgYXV0byB2ZWhpY2xlTWFuYWdlciA9IHN0ZDo6bWFrZV91bmlxdWU8VjJfMDo6VmVoaWNsZUhhbE1hbmFnZXI+KGhhbC5nZXQoKSk7CisKKyAgICBWZWhpY2xlX1YyXzEgdmVoaWNsZTIxKHZlaGljbGVNYW5hZ2VyLmdldCgpKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKiBjYWxsZXJXaWxsSm9pbiAqLyk7CisKKyAgICBBTE9HSSgiUmVnaXN0ZXJpbmcgYXMgc2VydmljZS4uLiIpOworICAgIHN0YXR1c190IHN0YXR1cyA9IHZlaGljbGUyMS5yZWdpc3RlckFzU2VydmljZSgpOworCisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIHJlZ2lzdGVyIHZlaGljbGUgc2VydmljZSAoJWQpLiIsIHN0YXR1cyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIEFMT0dJKCJSZWFkeSIpOworICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvdGVzdHMvT2JkMlNlbnNvclN0b3JlX3Rlc3QuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3Rlc3RzL09iZDJTZW5zb3JTdG9yZV90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDFjMGY0Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3Rlc3RzL09iZDJTZW5zb3JTdG9yZV90ZXN0LmNwcApAQCAtMCwwICsxLDI4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9PYmQyU2Vuc29yU3RvcmUuaCIKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGdldE51bVZlbmRvckludGVnZXJTZW5zb3JzKCkgeworICAgIHJldHVybiA1OworfQorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZ2V0TnVtVmVuZG9yRmxvYXRTZW5zb3JzKCkgeworICAgIHJldHVybiAzOworfQorCisvLyB0aGlzIHN0cnVjdCBob2xkcyBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIGEgdGVzdCB0byBiZSBhYmxlIHRvIHZhbGlkYXRlCisvLyB0aGF0IHRoZSBzZW5zb3IgYml0bWFzayBjb250YWlucyB0aGUgcmlnaHQgZGF0YToKKy8vICAgLSB0aGUgaW5kZXggb2YgdGhlIGJ5dGUgYXQgd2hpY2ggdGhlIGJpdCBmb3IgYSBnaXZlbiBzZW5zb3IgbGl2ZXMKKy8vICAgLSB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgdGhhdCBieXRlIGdpdmVuIHRoYXQgYSBjZXJ0YWluIHNlbnNvciBpcyBwcmVzZW50CitjbGFzcyBCaXRtYXNrSW5kZXhpbmdJbmZvIHsKK3B1YmxpYzoKKyAgICBzaXplX3QgbUJ5dGVJbmRleDsKKyAgICB1aW50OF90IG1FeHBlY3RlZEJ5dGVWYWx1ZTsKKworICAgIC8vIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIHZhbGlkYXRlIHRoZSBiaXRtYXNrIGZvciBhbgorICAgIC8vIGludGVnZXItdmFsdWVkIHNlbnNvci4KKyAgICBzdGF0aWMgQml0bWFza0luZGV4aW5nSW5mbyBnZXRGb3JJbnRlZ2VyU2Vuc29yKHNpemVfdCBpbmRleCkgeworICAgICAgICBjb25zdCBzaXplX3QgaW5kZXhJbkJpdHN0cmVhbSA9IGluZGV4OworICAgICAgICByZXR1cm4gZ2V0Rm9yQml0c3RyZWFtSW5kZXgoaW5kZXhJbkJpdHN0cmVhbSk7CisgICAgfQorCisgICAgLy8gUmV0dXJucyB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gdmFsaWRhdGUgdGhlIGJpdG1hc2sgZm9yIGEKKyAgICAvLyBmbG9hdC12YWx1ZWQgc2Vuc29yLgorICAgIHN0YXRpYyBCaXRtYXNrSW5kZXhpbmdJbmZvIGdldEZvckZsb2F0U2Vuc29yKHNpemVfdCBpbmRleCkgeworICAgICAgICBjb25zdCBzaXplX3QgaW5kZXhJbkJpdHN0cmVhbSA9IHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIGdldE51bVZlbmRvckludGVnZXJTZW5zb3JzKCkgKyBpbmRleDsKKyAgICAgICAgcmV0dXJuIGdldEZvckJpdHN0cmVhbUluZGV4KGluZGV4SW5CaXRzdHJlYW0pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgQml0bWFza0luZGV4aW5nSW5mbyBnZXRGb3JCaXRzdHJlYW1JbmRleChzaXplX3QgaW5kZXhJbkJpdHN0cmVhbSkgeworICAgICAgICBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbzsKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXggPSBpbmRleEluQml0c3RyZWFtIC8gODsKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSA9IDEgPDwgKGluZGV4SW5CaXRzdHJlYW0gJSA4KTsKKyAgICAgICAgcmV0dXJuIGluZGV4aW5nSW5mbzsKKyAgICB9Cit9OworCitzdGF0aWMgT2JkMlNlbnNvclN0b3JlIGdldFNlbnNvclN0b3JlKCkgeworICAgIHJldHVybiBPYmQyU2Vuc29yU3RvcmUoZ2V0TnVtVmVuZG9ySW50ZWdlclNlbnNvcnMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE51bVZlbmRvckZsb2F0U2Vuc29ycygpKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciB0aGUgZmlyc3QgaW50ZWdlciBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldEZpcnN0SW50ZWdlclNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1NZU1RFTV9TVEFUVVMsCisgICAgICAgIHRvSW50KEZ1ZWxTeXN0ZW1TdGF0dXM6OkNMT1NFRF9MT09QKSk7CisgICAgY29uc3QgYXV0byYgaW50ZWdlclNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0SW50ZWdlclNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIHRvSW50KEZ1ZWxTeXN0ZW1TdGF0dXM6OkNMT1NFRF9MT09QKSwKKyAgICAgICAgaW50ZWdlclNlbnNvcnNbdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RlVFTF9TWVNURU1fU1RBVFVTKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfU1lTVEVNX1NUQVRVUykpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciB0aGUgZmlyc3QgZmxvYXQgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRGaXJzdEZsb2F0U2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCwKKyAgICAgICAgMS4yNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIDEuMjVmLAorICAgICAgICBmbG9hdFNlbnNvcnNbdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBTENVTEFURURfRU5HSU5FX0xPQUQpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpDQUxDVUxBVEVEX0VOR0lORV9MT0FEKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIGFuIGludGVnZXIgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRBbnlJbnRlZ2VyU2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUsCisgICAgICAgIDQwMDApOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDQwMDAsCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6QUJTT0xVVEVfQkFST01FVFJJQ19QUkVTU1VSRSkpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciBhIGZsb2F0IHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0QW55RmxvYXRTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpPWFlHRU5fU0VOU09SM19WT0xUQUdFLAorICAgICAgICAyLjVmKTsKKyAgICBjb25zdCBhdXRvJiBmbG9hdFNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0RmxvYXRTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDIuNWYsCisgICAgICAgIGZsb2F0U2Vuc29yc1t0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6T1hZR0VOX1NFTlNPUjNfVk9MVEFHRSldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok9YWUdFTl9TRU5TT1IzX1ZPTFRBR0UpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGxhc3Qgc3lzdGVtIGludGVnZXIgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRMYXN0U3lzdGVtSW50ZWdlclNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCwKKyAgICAgICAgMzApOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDMwLAorICAgICAgICBpbnRlZ2VyU2Vuc29yc1t0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciB0aGUgbGFzdCBzeXN0ZW0gZmxvYXQgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRMYXN0U3lzdGVtRmxvYXRTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCwKKyAgICAgICAgMi41Zik7CisgICAgY29uc3QgYXV0byYgZmxvYXRTZW5zb3JzKHNlbnNvclN0b3JlLmdldEZsb2F0U2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgyLjVmLAorICAgICAgICBmbG9hdFNlbnNvcnNbdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdHdvIGludGVnZXIgc2Vuc29ycyBhdCBvbmNlLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRUd29JbnRlZ2VyU2Vuc29ycykgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpDT05UUk9MX01PRFVMRV9WT0xUQUdFLAorICAgICAgICA2KTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpUSU1FX1NJTkNFX1RST1VCTEVfQ09ERVNfQ0xFQVJFRCwKKyAgICAgICAgMTI0NSk7CisgICAgY29uc3QgYXV0byYgaW50ZWdlclNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0SW50ZWdlclNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoNiwKKyAgICAgICAgaW50ZWdlclNlbnNvcnNbdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09OVFJPTF9NT0RVTEVfVk9MVEFHRSldKTsKKyAgICBBU1NFUlRfRVEoMTI0NSwKKyAgICAgICAgaW50ZWdlclNlbnNvcnNbdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6VElNRV9TSU5DRV9UUk9VQkxFX0NPREVTX0NMRUFSRUQpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyB2b2x0YWdlSW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTlRST0xfTU9EVUxFX1ZPTFRBR0UpKSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyB0aW1lSW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OlRJTUVfU0lOQ0VfVFJPVUJMRV9DT0RFU19DTEVBUkVEKSkpOworICAgIGlmICh2b2x0YWdlSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXggPT0gdGltZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4KSB7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHZvbHRhZ2VJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlIHwKKyAgICAgICAgICAgIHRpbWVJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1t0aW1lSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHRpbWVJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1t0aW1lSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgdm9sdGFnZUluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgICAgICBzZW5zb3JCaXRtYXNrW3ZvbHRhZ2VJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgIH0KK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciB0d28gZmxvYXQgc2Vuc29ycyBhdCBvbmNlLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRUd29GbG9hdFNlbnNvcnMpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpWRUhJQ0xFX1NQRUVELAorICAgICAgICAxLjI1Zik7CisgICAgc2Vuc29yU3RvcmUuc2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpNQUZfQUlSX0ZMT1dfUkFURSwKKyAgICAgICAgMi41Zik7CisgICAgY29uc3QgYXV0byYgZmxvYXRTZW5zb3JzKHNlbnNvclN0b3JlLmdldEZsb2F0U2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgxLjI1ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpWRUhJQ0xFX1NQRUVEKV0pOworICAgIEFTU0VSVF9FUSgyLjVmLAorICAgICAgICBmbG9hdFNlbnNvcnNbdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok1BRl9BSVJfRkxPV19SQVRFKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gc3BlZWRJbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpWRUhJQ0xFX1NQRUVEKSkpOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gYWlyZmxvd0luZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok1BRl9BSVJfRkxPV19SQVRFKSkpOworICAgIGlmIChzcGVlZEluZGV4aW5nSW5mby5tQnl0ZUluZGV4ID09IGFpcmZsb3dJbmRleGluZ0luZm8ubUJ5dGVJbmRleCkgeworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICBzcGVlZEluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUgfAorICAgICAgICAgICAgYWlyZmxvd0luZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgICAgICBzZW5zb3JCaXRtYXNrW2FpcmZsb3dJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgc3BlZWRJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1tzcGVlZEluZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIGFpcmZsb3dJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1thaXJmbG93SW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICB9Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgYSB2ZW5kb3IgaW50ZWdlciBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldFZlbmRvckludGVnZXJTZW5zb3IpIHsKKyAgICBjb25zdCBzaXplX3Qgc2Vuc29ySW5kZXggPSB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkgKyAyOworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKHNlbnNvckluZGV4LCAyMik7CisgICAgY29uc3QgYXV0byYgaW50ZWdlclNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0SW50ZWdlclNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMjIsIGludGVnZXJTZW5zb3JzW3NlbnNvckluZGV4XSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgc2Vuc29ySW5kZXgpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciBhIHZlbmRvciBmbG9hdCBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldFZlbmRvckZsb2F0U2Vuc29yKSB7CisgICAgY29uc3Qgc2l6ZV90IHNlbnNvckluZGV4ID0gdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSArIDI7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKHNlbnNvckluZGV4LCAxLjI1Zik7CisgICAgY29uc3QgYXV0byYgZmxvYXRTZW5zb3JzKHNlbnNvclN0b3JlLmdldEZsb2F0U2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgxLjI1ZiwgZmxvYXRTZW5zb3JzW3NlbnNvckluZGV4XSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHNlbnNvckluZGV4KSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbm9ueW1vdXMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oYWwgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGRjMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oYWwKQEAgLTAsMCArMSw2MDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjEgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjEKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDsKKworLyoqCisgKiBFeHRlbnNpb24gb2YgVmVoaWNsZVByb3BlcnR5IGVudW0gZGVjbGFyZWQgaW4gVmVoaWNsZSBIQUwgMi4wCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5OiBAMi4wOjpWZWhpY2xlUHJvcGVydHkgeworICAgIC8qKgorICAgICAqIFJlcG9ydHMgd2hlZWwgcm90YXRpb25hbCBkaXN0YW5jZSBpbiBtZXRlcnMgc2luY2UgbGFzdCB3aGVlbCB0aWNrCisgICAgICogZXZlbnQKKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZSBpcyBhIHZlY3RvciBlYWNoIGVsZW1lbnQgcmVwcmVzZW50cyBkaXN0YW5jZSBmb3IgaW5kaXZpZHVhbAorICAgICAqIHdoZWVsIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6IGxlZnQgZnJvbnQsIHJpZ2h0IGZyb250LCBsZWZ0IHJlYXIsCisgICAgICogcmlnaHQgcmVhci4gVmVoaWNsZVByb3BWYWx1ZS50aW1lc3RhbXAgbXVzdCBiZSBjb3JyZWN0bHkgZmlsbGVkIGluLgorICAgICAqCisgICAgICogVmVuZG9ycyBtdXN0IHNwZWNpZnkgd2hlZWxzIHRoYXQgc3VwcG9ydCB0aGlzIHNlbnNvciBpbgorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnLmNvbmZpZ0ZsYWdzLiBUaGUgZm9ybWF0IG9mIHRoaXMgZmllbGQgaXMgYSBiaXRzZXQgb2YKKyAgICAgKiB2YWx1ZXMgZnJvbSBXaGVlbCBlbnVtLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFIHxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6TUVURVIKKyAgICAgKi8KKyAgICBXSEVFTF9USUNLID0gKAorICAgICAgMHgwMzA2CisgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUX1ZFQworICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogT0JEMiBMaXZlIFNlbnNvciBEYXRhCisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IHVzZXMgQ09NUExFWCBkYXRhIHRvIHNlbmQgYSBzbmFwc2hvdCBvZiB0aGUgY3VycmVudCAobGl2ZSkKKyAgICAgKiB2YWx1ZXMgb2YgdGhlIE9CRDIgc2Vuc29ycyBwcm92aWRlZCBieSB0aGUgdmVoaWNsZS4KKyAgICAgKgorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnCisgICAgICogICBjb25maWdBcnJheVswXSA6IG51bWJlciBvZiB2ZW5kb3Itc3BlY2lmaWMgaW50ZWdlci12YWx1ZWQgc2Vuc29ycworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbiBhIGZyYW1lLgorICAgICAqICAgY29uZmlnQXJyYXlbMV0gOiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIGZsb2F0LXZhbHVlZCBzZW5zb3JzCisgICAgICogICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIHJldHVybmVkIGluIGEgZnJhbWUuCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIHRoZSBpbmRpY2VzIGRlZmluZWQgaW4gT2JkMkludGVnZXJTZW5zb3JJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBpbnQzMlZhbHVlczsKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIE9iZDJGbG9hdFNlbnNvckluZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGZsb2F0VmFsdWVzLgorICAgICAqIHRoZSBlbGVtZW50cyBvZiBieXRlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgYSBiaXRtYXNrLCBzdWNoIHRoYXQKKyAgICAgKiB0aGUgYml0cyAwIHRocnUgdGhlIGludGVnZXIgdmFsdWUgb2YKKyAgICAgKiBPYmQySW50ZWdlclNlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYICsgdGhlIHZhbHVlIG9mIGNvbmZpZ0FycmF5WzBdCisgICAgICogYXJlIDEgaWYgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggaXMgYSB2YWxpZCBzZW5zb3IgaW5kZXggd2hvc2UgdmFsdWUgY2FuCisgICAgICogYmUgcmVhZCBpbiB0aGUgcmV0dXJuZWQgaW50MzJWYWx1ZXMgdmVjdG9yLCAwIG90aGVyd2lzZS4KKyAgICAgKiB0aGUgYml0cyBPYmQySW50ZWdlclNlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYKzEgdGhydQorICAgICAqIE9iZDJGbG9hdGluZ1NlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYICsgdGhlIHZhbHVlIG9mIGNvbmZpZ0FycmF5WzFdCisgICAgICogYXJlIDEgaWYgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggaXMgYSB2YWxpZCBzZW5zb3IgaW5kZXggd2hvc2UgdmFsdWUKKyAgICAgKiBjYW4gYmUgcmVhZCBpbiB0aGUgcmV0dXJuZWQgZmxvYXRWYWx1ZXMgdmVjdG9yLCAwIG90aGVyd2lzZS4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLCBpbnQzMlZhbHVlc1swXSBjb3JyZXNwb25kcyB0byBGVUVMX1NZU1RFTV9TVEFUVVMsIGFuZAorICAgICAqIGZsb2F0VmFsdWVzWzBdIGNvcnJlc3BvbmRzIHRvIENBTENVTEFURURfRU5HSU5FX0xPQUQsIGJ1dCB0aGF0IG1hcHBpbmcKKyAgICAgKiBpcyBvbmx5IHZhbGlkIGlmIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGJ5dGVzIHZlY3RvciBhcmUgc2V0IHRvIDEuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgT0JEMl9MSVZFX0ZSQU1FID0gKAorICAgICAgMHgwRDAwCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkNPTVBMRVgKKyAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE9CRDIgRnJlZXplIEZyYW1lIFNlbnNvciBEYXRhCisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IHVzZXMgQ09NUExFWCBkYXRhIHRvIHNlbmQgYSBzbmFwc2hvdCBvZiB0aGUgdmFsdWVzIG9mIHRoZQorICAgICAqIE9CRDIgc2Vuc29ycyBwcm92aWRlZCBieSB0aGUgdmVoaWNsZSBhdCB0aGUgdGltZSB0aGF0IGEgZGlhZ25vc3RpYworICAgICAqIHRyb3VibGVzaG9vdGluZyBjb2RlIChEVEMpIHdhcyByZWNvcmRlZCBieSB0aGUgdmVoaWNsZS4KKyAgICAgKgorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnCisgICAgICogICBjb25maWdBcnJheVswXSA6IG51bWJlciBvZiB2ZW5kb3Itc3BlY2lmaWMgaW50ZWdlci12YWx1ZWQgc2Vuc29ycworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbiBhIGZyYW1lLgorICAgICAqICAgY29uZmlnQXJyYXlbMV0gOiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIGZsb2F0LXZhbHVlZCBzZW5zb3JzCisgICAgICogICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIHJldHVybmVkIGluIGEgZnJhbWUuCisgICAgICoKKyAgICAgKiBBIGdldCBvZiB0aGlzIHByb3BlcnR5IG11c3QgdGFrZSB0aGUgZm9sbG93aW5nIGZvcm06CisgICAgICogICBpbnQ2NFZhbHVlc1swXTogdGltZXN0YW1wIG9mIHRoZSBmcmVlemUgZnJhbWUgdG8gcmV0cmlldmUuCisgICAgICogICAgICAgICAgICAgICAgICAgVmFsaWQgdGltZXN0YW1wcyBhcmUgZ2l2ZW4gYnkgT0JEMl9EVENfSU5GTy4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBPYmQySW50ZWdlclNlbnNvckluZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGludDMyVmFsdWVzOworICAgICAqIHRoZSBpbmRpY2VzIGRlZmluZWQgaW4gT2JkMkZsb2F0U2Vuc29ySW5kZXggYXJlIHRvIGJlIHVzZWQgdG8KKyAgICAgKiByZWFkIGZyb20gZmxvYXRWYWx1ZXM7CisgICAgICogdGhlIGVsZW1lbnRzIG9mIGJ5dGVzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBhIGJpdG1hc2ssIHN1Y2ggdGhhdAorICAgICAqIHRoZSBiaXRzIDAgdGhydSB0aGUgaW50ZWdlciB2YWx1ZSBvZgorICAgICAqIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXguTEFTVF9TWVNURU1fSU5ERVggKyB0aGUgdmFsdWUgb2YgY29uZmlnQXJyYXlbMF0KKyAgICAgKiBhcmUgMSBpZiB0aGUgY29ycmVzcG9uZGluZyBpbmRleCBpcyBhIHZhbGlkIHNlbnNvciBpbmRleCB3aG9zZSB2YWx1ZSBjYW4KKyAgICAgKiBiZSByZWFkIGluIHRoZSByZXR1cm5lZCBpbnQzMlZhbHVlcyB2ZWN0b3IsIDAgb3RoZXJ3aXNlLgorICAgICAqIHRoZSBiaXRzIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXguTEFTVF9TWVNURU1fSU5ERVgrMSB0aHJ1CisgICAgICogT2JkMkZsb2F0aW5nU2Vuc29ySW5kZXguTEFTVF9TWVNURU1fSU5ERVggKyB0aGUgdmFsdWUgb2YgY29uZmlnQXJyYXlbMV0KKyAgICAgKiBhcmUgMSBpZiB0aGUgY29ycmVzcG9uZGluZyBpbmRleCBpcyBhIHZhbGlkIHNlbnNvciBpbmRleCB3aG9zZSB2YWx1ZQorICAgICAqIGNhbiBiZSByZWFkIGluIHRoZSByZXR1cm5lZCBmbG9hdFZhbHVlcyB2ZWN0b3IsIDAgb3RoZXJ3aXNlLgorICAgICAqIHN0cmluZ1ZhbHVlIGlzIHRoZSBEVEMgdGhhdCBjYXVzZWQgdGhpcyBmcmVlemUgZnJhbWUgdG8gYmUgcmVjb3JkZWQuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwgaW50MzJWYWx1ZXNbMF0gY29ycmVzcG9uZHMgdG8gRlVFTF9TWVNURU1fU1RBVFVTLCBhbmQKKyAgICAgKiBmbG9hdFZhbHVlc1swXSBjb3JyZXNwb25kcyB0byBDQUxDVUxBVEVEX0VOR0lORV9MT0FELCBidXQgdGhhdCBtYXBwaW5nCisgICAgICogaXMgb25seSB2YWxpZCBpZiB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBieXRlcyB2ZWN0b3IgYXJlIHNldCB0byAxLAorICAgICAqIGFuZCBhIHBvc3NpYmxlIHZhbGlkIHN0cmluZ1ZhbHVlIGlzICJQMDE3NiIgdG8gaW5kaWNhdGUgYSBtYWxmdW5jdGlvbgorICAgICAqIG9mIHRoZSBmdWVsIGNvbXBvc2l0aW9uIHNlbnNvciBjaXJjdWl0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIE9CRDJfRlJFRVpFX0ZSQU1FID0gKAorICAgICAgMHgwRDAxCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkNPTVBMRVgKKyAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE9CRDIgRnJlZXplIEZyYW1lIEluZm9ybWF0aW9uCisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IGRlc2NyaWJlcyB0aGUgY3VycmVudCBmcmVlemUgZnJhbWVzIHN0b3JlZCBpbiB2ZWhpY2xlCisgICAgICogbWVtb3J5IGFuZCBhdmFpbGFibGUgZm9yIHJldHJpZXZhbCB2aWEgT0JEMl9GUkVFWkVfRlJBTUUuCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIGVhY2ggZWxlbWVudCBvZiBpbnQ2NFZhbHVlcyBpcyB0aGUgdGltZXN0YW1wIGF0IHdoaWNoIGEgYSBmYXVsdCBjb2RlCisgICAgICogaGFzIGJlZW4gZGV0ZWN0ZWQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGZyZWV6ZSBmcmFtZSBzdG9yZWQsIGFuZCBlYWNoCisgICAgICogc3VjaCBlbGVtZW50IGNhbiBiZSB1c2VkIGFzIHRoZSBrZXkgdG8gT0JEMl9GUkVFWkVfRlJBTUUgdG8gcmV0cmlldmUKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmcmVlemUgZnJhbWUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgT0JEMl9GUkVFWkVfRlJBTUVfSU5GTyA9ICgKKyAgICAgIDB4MEQwMgorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBPQkQyIEZyZWV6ZSBGcmFtZSBDbGVhcgorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSBhbGxvd3MgZGVsZXRpb24gb2YgYW55IG9mIHRoZSBmcmVlemUgZnJhbWVzIHN0b3JlZCBpbgorICAgICAqIHZlaGljbGUgbWVtb3J5LCBhcyBkZXNjcmliZWQgYnkgT0JEMl9EVENfSU5GTy4KKyAgICAgKgorICAgICAqIEEgc2V0IG9mIHRoaXMgcHJvcGVydHkgaXMgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiBpZiBpbnQ2NFZhbHVlcyBjb250YWlucyBubyBlbGVtZW50cywgdGhlbiBhbGwgRFRDcyBzdG9yZWQgd2lsbCBiZSBjbGVhcmVkOworICAgICAqIGlmIGludDY0VmFsdWVzIGNvbnRhaW5zIG9uZSBvciBtb3JlIGVsZW1lbnRzLCB0aGVuIERUQ3MgYXQgdGhlIHRpbWVzdGFtcHMKKyAgICAgKiBzdG9yZWQgaW4gaW50NjRWYWx1ZXMgd2lsbCBiZSBjbGVhcmVkLCBhbmQgdGhlIG90aGVycyBub3QgY2xlYXJlZCwgZXhjZXB0CisgICAgICogdGhlIG1lbW9yeSB3aWxsIGJlIGNvbXBhY3RlZCBzbyB0aGF0IGFsbCByZW1haW5pbmcgRFRDcyBhcmUgc3RvcmVkCisgICAgICogY29udGlndW91c2x5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6V1JJVEUKKyAgICAgKi8KKyAgICBPQkQyX0ZSRUVaRV9GUkFNRV9DTEVBUiA9ICgKKyAgICAgIDB4MEQwMworICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBWZWhpY2xlIE1hcHMgU2VydmljZSAoVk1TKSBtZXNzYWdlCisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IHVzZXMgQ09NUExFWCBkYXRhIHRvIGNvbW11bmljYXRlIHZtcyBtZXNzYWdlcy4KKyAgICAgKgorICAgICAqIEl0cyBjb250ZW50cyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIFZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXggYXJlIHRvIGJlIHVzZWQgdG8KKyAgICAgKiByZWFkIGZyb20gaW50MzJWYWx1ZXM7CisgICAgICogYnl0ZXMgaXMgYSBzZXJpYWxpemVkIFZNUyBtZXNzYWdlIGFzIGRlZmluZWQgaW4gdGhlIHZtcyBwcm90b2NvbAorICAgICAqIHdoaWNoIGlzIG9wYXF1ZSB0byB0aGUgZnJhbWV3b3JrOworICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFZFSElDTEVfTUFQX1NFUlZJQ0UgPSAoCisgICAgICAgIDB4MEMwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCit9OworCisvKiogVGhlIHN0YXR1cyBvZiBhIGZ1ZWwgc3lzdGVtIGFzIGRlc2NyaWJlZCBieSB0aGUgT0JEMiBzcGVjaWZpY2F0aW9uLiAqLworZW51bSBGdWVsU3lzdGVtU3RhdHVzIDogaW50MzJfdCB7CisgIE9QRU5fSU5TVUZGSUNJRU5UX0VOR0lORV9URU1QRVJBVFVSRSA9IDEsCisKKyAgQ0xPU0VEX0xPT1AgPSAyLAorCisgIE9QRU5fRU5HSU5FX0xPQURfT1JfREVDRUxFUkFUSU9OID0gNCwKKworICBPUEVOX1NZU1RFTV9GQUlMVVJFID0gOCwKKworICBDTE9TRURfTE9PUF9CVVRfRkVFREJBQ0tfRkFVTFQgPSAxNiwKK307CisKKy8qKiBEZWZpbmVzIHdoaWNoIGlnbml0aW9uIG1vbml0b3JzIGFyZSBhdmFpbGFibGUgdG8gYmUgcmVhZC4gKi8KK2VudW0gSWduaXRpb25Nb25pdG9yS2luZCA6IGludDMyX3QgeworICBTUEFSSyA9IDAsCisKKyAgQ09NUFJFU1NJT04gPSAxLAorfTsKKworLyoqIFRoZXNlIGlnbml0aW9uIG1vbml0b3JzIGFyZSBjb21tb24gdG8gYm90aCBTUEFSSyBhbmQgQ09NUFJFU1NJT04uICovCitlbnVtIENvbW1vbklnbml0aW9uTW9uaXRvcnMgOiBpbnQzMl90IHsKKyAgQ09NUE9ORU5UU19BVkFJTEFCTEUgPSAweDEgPDwgMCwKKyAgQ09NUE9ORU5UU19JTkNPTVBMRVRFID0gMHgxIDw8IDEsCisKKyAgRlVFTF9TWVNURU1fQVZBSUxBQkxFID0gMHgxIDw8IDIsCisgIEZVRUxfU1lTVEVNX0lOQ09NUExFVEUgPSAweDEgPDwgMywKKworICBNSVNGSVJFX0FWQUlMQUJMRSA9IDB4MSA8PCA0LAorICBNSVNGSVJFX0lOQ09NUExFVEUgPSAweDEgPDwgNSwKK307CisKKy8qKiBJZ25pdGlvbiBtb25pdG9ycyBhdmFpbGFibGUgZm9yIFNQQVJLIHZlaGljbGVzLiAqLworZW51bSBTcGFya0lnbml0aW9uTW9uaXRvcnMgOiBDb21tb25JZ25pdGlvbk1vbml0b3JzIHsKKyAgRUdSX0FWQUlMQUJMRSA9IDB4MSA8PCA2LAorICBFR1JfSU5DT01QTEVURSA9IDB4MSA8PCA3LAorCisgIE9YWUdFTl9TRU5TT1JfSEVBVEVSX0FWQUlMQUJMRSA9IDB4MSA8PCA4LAorICBPWFlHRU5fU0VOU09SX0hFQVRFUl9JTkNPTVBMRVRFID0gMHgxIDw8IDksCisKKyAgT1hZR0VOX1NFTlNPUl9BVkFJTEFCTEUgPSAweDEgPDwgMTAsCisgIE9YWUdFTl9TRU5TT1JfSU5DT01QTEVURSA9IDB4MSA8PCAxMSwKKworICBBQ19SRUZSSUdFUkFOVF9BVkFJTEFCTEUgPSAweDEgPDwgMTIsCisgIEFDX1JFRlJJR0VSQU5UX0lOQ09NUExFVEUgPSAweDEgPDwgMTMsCisKKyAgU0VDT05EQVJZX0FJUl9TWVNURU1fQVZBSUxBQkxFID0gMHgxIDw8IDE0LAorICBTRUNPTkRBUllfQUlSX1NZU1RFTV9JTkNPTVBMRVRFID0gMHgxIDw8IDE1LAorCisgIEVWQVBPUkFUSVZFX1NZU1RFTV9BVkFJTEFCTEUgPSAweDEgPDwgMTYsCisgIEVWQVBPUkFUSVZFX1NZU1RFTV9JTkNPTVBMRVRFID0gMHgxIDw8IDE3LAorCisgIEhFQVRFRF9DQVRBTFlTVF9BVkFJTEFCTEUgPSAweDEgPDwgMTgsCisgIEhFQVRFRF9DQVRBTFlTVF9JTkNPTVBMRVRFID0gMHgxIDw8IDE5LAorCisgIENBVEFMWVNUX0FWQUlMQUJMRSA9IDB4MSA8PCAyMCwKKyAgQ0FUQUxZU1RfSU5DT01QTEVURSA9IDB4MSA8PCAyMSwKK307CisKKy8qKiBJZ25pdGlvbiBtb25pdG9ycyBvbmx5IGF2YWlsYWJsZSBmb3IgQ09NUFJFU1NJT04gdmVoaWNsZXMuICovCitlbnVtIENvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycyA6IENvbW1vbklnbml0aW9uTW9uaXRvcnMgeworICBFR1JfT1JfVlZUX0FWQUlMQUJMRSA9IDB4MSA8PCA2LAorICBFR1JfT1JfVlZUX0lOQ09NUExFVEUgPSAweDEgPDwgNywKKworICBQTV9GSUxURVJfQVZBSUxBQkxFID0gMHgxIDw8IDgsCisgIFBNX0ZJTFRFUl9JTkNPTVBMRVRFID0gMHgxIDw8IDksCisKKyAgRVhIQVVTVF9HQVNfU0VOU09SX0FWQUlMQUJMRSA9IDB4MSA8PCAxMCwKKyAgRVhIQVVTVF9HQVNfU0VOU09SX0lOQ09NUExFVEUgPSAweDEgPDwgMTEsCisKKyAgQk9PU1RfUFJFU1NVUkVfQVZBSUxBQkxFID0gMHgxIDw8IDEyLAorICBCT09TVF9QUkVTU1VSRV9JTkNPTVBMRVRFID0gMHgxIDw8IDEzLAorCisgIE5PeF9TQ1JfX0FWQUlMQUJMRSA9IDB4MSA8PCAxNCwKKyAgTk94X1NDUl9JTkNPTVBMRVRFID0gMHgxIDw8IDE1LAorCisgIE5NSENfQ0FUQUxZU1RfQVZBSUxBQkxFID0gMHgxIDw8IDE2LAorICBOTUhDX0NBVEFMWVNUX0lOQ09NUExFVEUgPSAweDEgPDwgMTcsCit9OworCitlbnVtIFNlY29uZGFyeUFpclN0YXR1cyA6IGludDMyX3QgeworICBVUFNUUkVBTSA9IDEsCisKKyAgRE9XTlNUUkVBTV9PRl9DQVRBTFlDSUNfQ09OVkVSVEVSID0gMiwKKworICBGUk9NX09VVFNJREVfT1JfT0ZGID0gNCwKKworICBQVU1QX09OX0ZPUl9ESUFHTk9TVElDUyA9IDgsCit9OworCitlbnVtIEZ1ZWxUeXBlIDogaW50MzJfdCB7CisgIE5PVF9BVkFJTEFCTEUgPSAwLAorCisgIEdBU09MSU5FID0gMSwKKworICBNRVRIQU5PTCA9IDIsCisKKyAgRVRIQU5PTCA9IDMsCisKKyAgRElFU0VMID0gNCwKKworICBMUEcgPSA1LAorCisgIENORyA9IDYsCisKKyAgUFJPUEFORSA9IDcsCisKKyAgRUxFQ1RSSUMgPSA4LAorCisgIEJJRlVFTF9SVU5OSU5HX0dBU09MSU5FID0gOSwKKworICBCSUZVRUxfUlVOTklOR19NRVRIQU5PTCA9IDEwLAorCisgIEJJRlVFTF9SVU5OSU5HX0VUSEFOT0wgPSAxMSwKKworICBCSUZVRUxfUlVOTklOR19MUEcgPSAxMiwKKworICBCSUZVRUxfUlVOTklOR19DTkcgPSAxMywKKworICBCSUZVRUxfUlVOTklOR19QUk9QQU5FID0gMTQsCisKKyAgQklGVUVMX1JVTk5JTkdfRUxFQ1RSSUMgPSAxNSwKKworICBCSUZVRUxfUlVOTklOR19FTEVDVFJJQ19BTkRfQ09NQlVTVElPTiA9IDE2LAorCisgIEhZQlJJRF9HQVNPTElORSA9IDE3LAorCisgIEhZQlJJRF9FVEhBTk9MID0gMTgsCisKKyAgSFlCUklEX0RJRVNFTCA9IDE5LAorCisgIEhZQlJJRF9FTEVDVFJJQyA9IDIwLAorCisgIEhZQlJJRF9SVU5OSU5HX0VMRUNUUklDX0FORF9DT01CVVNUSU9OID0gMjEsCisKKyAgSFlCUklEX1JFR0VORVJBVElWRSA9IDIyLAorCisgIEJJRlVFTF9SVU5OSU5HX0RJRVNFTCA9IDIzLAorfTsKKworLyoqCisgKiBUaGlzIGVudW0gcHJvdmlkZXMgdGhlIGNhbm9uaWNhbCBtYXBwaW5nIGZvciBzZW5zb3IgcHJvcGVydGllcyB0aGF0IGhhdmUgYW4gaW50ZWdlciB2YWx1ZS4KKyAqIFRoZSBvcmRlcmluZyBvZiB0aGUgdmFsdWVzIGlzIHRha2VuIGZyb20gdGhlIE9CRDIgc3BlY2lmaWNhdGlvbi4KKyAqIFNvbWUgb2YgdGhlIHByb3BlcnRpZXMgYXJlIHJlcHJlc2VudGVkIGFzIGFuIGludGVnZXIgbWFwcGluZyB0byBhbm90aGVyIGVudW0uIEluIHRob3NlIGNhc2VzCisgKiBleHBlY3QgYSBjb21tZW50IGJ5IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uIGRlc2NyaWJpbmcgdGhlIGVudW0gdG8gbG9vayBhdCBmb3IgdGhlIG1hcHBpbmcuCisgKiBBbnkgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSBsYXN0IHJlc2VydmVkIGluZGV4IGlzIGF2YWlsYWJsZSB0byB2ZW5kb3JzIHRvIG1hcCB0aGVpciBleHRlbnNpb25zLgorICovCitlbnVtIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggOiBpbnQzMl90IHsKKyAgLyoqIHJlZmVyIHRvIEZ1ZWxTeXN0ZW1TdGF0dXMgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KKyAgRlVFTF9TWVNURU1fU1RBVFVTID0gMCwKKworICBNQUxGVU5DVElPTl9JTkRJQ0FUT1JfTElHSFRfT04gPSAxLAorCisgIC8qKiByZWZlciB0byBJZ25pdGlvbk1vbml0b3JLaW5kIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgdmFsdWUuICovCisgIElHTklUSU9OX01PTklUT1JTX1NVUFBPUlRFRCA9IDIsCisKKyAgLyoqCisgICAqIFRoZSB2YWx1ZSBvZiB0aGlzIHNlbnNvciBpcyBhIGJpdG1hc2sgdGhhdCBzcGVjaWZpZXMgd2hldGhlciBpZ25pdGlvbi1zcGVjaWZpYworICAgKiB0ZXN0cyBhcmUgYXZhaWxhYmxlIGFuZCB3aGV0aGVyIHRoZXkgYXJlIGNvbXBsZXRlLiBUaGUgc2VtYW50aWNzIG9mIHRoZSBpbmRpdmlkdWFsCisgICAqIGJpdHMgaW4gdGhpcyB2YWx1ZSBhcmUgZ2l2ZW4gYnksIHJlc3BlY3RpdmVseSwgU3BhcmtJZ25pdGlvbk1vbml0b3JzIGFuZAorICAgKiBDb21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBJR05JVElPTl9NT05JVE9SU19TVVBQT1JURUQuCisgICAqLworICBJR05JVElPTl9TUEVDSUZJQ19NT05JVE9SUyA9IDMsCisKKyAgSU5UQUtFX0FJUl9URU1QRVJBVFVSRSA9IDQsCisKKyAgLyoqIHJlZmVyIHRvIFNlY29uZGFyeUFpclN0YXR1cyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhbHVlLiAqLworICBDT01NQU5ERURfU0VDT05EQVJZX0FJUl9TVEFUVVMgPSA1LAorCisgIE5VTV9PWFlHRU5fU0VOU09SU19QUkVTRU5UID0gNiwKKworICBSVU5USU1FX1NJTkNFX0VOR0lORV9TVEFSVCA9IDcsCisKKyAgRElTVEFOQ0VfVFJBVkVMRURfV0lUSF9NQUxGVU5DVElPTl9JTkRJQ0FUT1JfTElHSFRfT04gPSA4LAorCisgIFdBUk1VUFNfU0lOQ0VfQ09ERVNfQ0xFQVJFRCA9IDksCisKKyAgRElTVEFOQ0VfVFJBVkVMRURfU0lOQ0VfQ09ERVNfQ0xFQVJFRCA9IDEwLAorCisgIEFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUgPSAxMSwKKworICBDT05UUk9MX01PRFVMRV9WT0xUQUdFID0gMTIsCisKKyAgQU1CSUVOVF9BSVJfVEVNUEVSQVRVUkUgPSAxMywKKworICBUSU1FX1dJVEhfTUFMRlVOQ1RJT05fTElHSFRfT04gPSAxNCwKKworICBUSU1FX1NJTkNFX1RST1VCTEVfQ09ERVNfQ0xFQVJFRCA9IDE1LAorCisgIE1BWF9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDE2LAorCisgIE1BWF9PWFlHRU5fU0VOU09SX1ZPTFRBR0UgPSAxNywKKworICBNQVhfT1hZR0VOX1NFTlNPUl9DVVJSRU5UID0gMTgsCisKKyAgTUFYX0lOVEFLRV9NQU5JRk9MRF9BQlNPTFVURV9QUkVTU1VSRSA9IDE5LAorCisgIE1BWF9BSVJfRkxPV19SQVRFX0ZST01fTUFTU19BSVJfRkxPV19TRU5TT1IgPSAyMCwKKworICAvKiogcmVmZXIgdG8gRnVlbFR5cGUgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KKyAgRlVFTF9UWVBFID0gMjEsCisKKyAgRlVFTF9SQUlMX0FCU09MVVRFX1BSRVNTVVJFID0gMjIsCisKKyAgRU5HSU5FX09JTF9URU1QRVJBVFVSRSA9IDIzLAorCisgIERSSVZFUl9ERU1BTkRfUEVSQ0VOVF9UT1JRVUUgPSAyNCwKKworICBFTkdJTkVfQUNUVUFMX1BFUkNFTlRfVE9SUVVFID0gMjUsCisKKyAgRU5HSU5FX1JFRkVSRU5DRV9QRVJDRU5UX1RPUlFVRSA9IDI2LAorCisgIEVOR0lORV9QRVJDRU5UX1RPUlFVRV9EQVRBX0lETEUgPSAyNywKKworICBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9QT0lOVDEgPSAyOCwKKworICBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9QT0lOVDIgPSAyOSwKKworICBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9QT0lOVDMgPSAzMCwKKworICBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9QT0lOVDQgPSAzMSwKKworICBMQVNUX1NZU1RFTV9JTkRFWCA9IEVOR0lORV9QRVJDRU5UX1RPUlFVRV9EQVRBX1BPSU5UNCwKK307CisKKy8qKgorICogVGhpcyBlbnVtIHByb3ZpZGVzIHRoZSBjYW5vbmljYWwgbWFwcGluZyBmb3Igc2Vuc29yIHByb3BlcnRpZXMgdGhhdCBoYXZlIGEgZmxvYXRpbmctcG9pbnQgdmFsdWUuCisgKiBUaGUgb3JkZXJpbmcgb2YgdGhlIHZhbHVlcyBpcyB0YWtlbiBmcm9tIHRoZSBPQkQyIHNwZWNpZmljYXRpb24uCisgKiBBbnkgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSBsYXN0IHJlc2VydmVkIGluZGV4IGlzIGF2YWlsYWJsZSB0byB2ZW5kb3JzIHRvIG1hcCB0aGVpciBleHRlbnNpb25zLgorICovCitlbnVtIE9iZDJGbG9hdFNlbnNvckluZGV4IDogaW50MzJfdCB7CisgIENBTENVTEFURURfRU5HSU5FX0xPQUQgPSAwLAorCisgIEVOR0lORV9DT09MQU5UX1RFTVBFUkFUVVJFID0gMSwKKworICBTSE9SVF9URVJNX0ZVRUxfVFJJTV9CQU5LMSA9IDIsCisKKyAgTE9OR19URVJNX0ZVRUxfVFJJTV9CQU5LMSA9IDMsCisKKyAgU0hPUlRfVEVSTV9GVUVMX1RSSU1fQkFOSzIgPSA0LAorCisgIExPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzIgPSA1LAorCisgIEZVRUxfUFJFU1NVUkUgPSA2LAorCisgIElOVEFLRV9NQU5JRk9MRF9BQlNPTFVURV9QUkVTU1VSRSA9IDcsCisKKyAgRU5HSU5FX1JQTSA9IDgsCisKKyAgVkVISUNMRV9TUEVFRCA9IDksCisKKyAgVElNSU5HX0FEVkFOQ0UgPSAxMCwKKworICBNQUZfQUlSX0ZMT1dfUkFURSA9IDExLAorCisgIFRIUk9UVExFX1BPU0lUSU9OID0gMTIsCisKKyAgT1hZR0VOX1NFTlNPUjFfVk9MVEFHRSA9IDEzLAorCisgIE9YWUdFTl9TRU5TT1IxX1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMTQsCisKKyAgT1hZR0VOX1NFTlNPUjFfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAxNSwKKworICBPWFlHRU5fU0VOU09SMl9WT0xUQUdFID0gMTYsCisKKyAgT1hZR0VOX1NFTlNPUjJfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAxNywKKworICBPWFlHRU5fU0VOU09SMl9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDE4LAorCisgIE9YWUdFTl9TRU5TT1IzX1ZPTFRBR0UgPSAxOSwKKworICBPWFlHRU5fU0VOU09SM19TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDIwLAorCisgIE9YWUdFTl9TRU5TT1IzX0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMjEsCisKKyAgT1hZR0VOX1NFTlNPUjRfVk9MVEFHRSA9IDIyLAorCisgIE9YWUdFTl9TRU5TT1I0X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMjMsCisKKyAgT1hZR0VOX1NFTlNPUjRfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAyNCwKKworICBPWFlHRU5fU0VOU09SNV9WT0xUQUdFID0gMjUsCisKKyAgT1hZR0VOX1NFTlNPUjVfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAyNiwKKworICBPWFlHRU5fU0VOU09SNV9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDI3LAorCisgIE9YWUdFTl9TRU5TT1I2X1ZPTFRBR0UgPSAyOCwKKworICBPWFlHRU5fU0VOU09SNl9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDI5LAorCisgIE9YWUdFTl9TRU5TT1I2X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMzAsCisKKyAgT1hZR0VOX1NFTlNPUjdfVk9MVEFHRSA9IDMxLAorCisgIE9YWUdFTl9TRU5TT1I3X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMzIsCisKKyAgT1hZR0VOX1NFTlNPUjdfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAzMywKKworICBPWFlHRU5fU0VOU09SOF9WT0xUQUdFID0gMzQsCisKKyAgT1hZR0VOX1NFTlNPUjhfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAzNSwKKworICBPWFlHRU5fU0VOU09SOF9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDM2LAorCisgIEZVRUxfUkFJTF9QUkVTU1VSRSA9IDM3LAorCisgIEZVRUxfUkFJTF9HQVVHRV9QUkVTU1VSRSA9IDM4LAorCisgIENPTU1BTkRFRF9FWEhBVVNUX0dBU19SRUNJUkNVTEFUSU9OID0gMzksCisKKyAgRVhIQVVTVF9HQVNfUkVDSVJDVUxBVElPTl9FUlJPUiA9IDQwLAorCisgIENPTU1BTkRFRF9FVkFQT1JBVElWRV9QVVJHRSA9IDQxLAorCisgIEZVRUxfVEFOS19MRVZFTF9JTlBVVCA9IDQyLAorCisgIEVWQVBPUkFUSU9OX1NZU1RFTV9WQVBPUl9QUkVTU1VSRSA9IDQzLAorCisgIENBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksxX1NFTlNPUjEgPSA0NCwKKworICBDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMl9TRU5TT1IxID0gNDUsCisKKyAgQ0FUQUxZU1RfVEVNUEVSQVRVUkVfQkFOSzFfU0VOU09SMiA9IDQ2LAorCisgIENBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksyX1NFTlNPUjIgPSA0NywKKworICBBQlNPTFVURV9MT0FEX1ZBTFVFID0gNDgsCisKKyAgRlVFTF9BSVJfQ09NTUFOREVEX0VRVUlWQUxFTkNFX1JBVElPID0gNDksCisKKyAgUkVMQVRJVkVfVEhST1RUTEVfUE9TSVRJT04gPSA1MCwKKworICBBQlNPTFVURV9USFJPVFRMRV9QT1NJVElPTl9CID0gNTEsCisKKyAgQUJTT0xVVEVfVEhST1RUTEVfUE9TSVRJT05fQyA9IDUyLAorCisgIEFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0QgPSA1MywKKworICBBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9FID0gNTQsCisKKyAgQUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT05fRiA9IDU1LAorCisgIENPTU1BTkRFRF9USFJPVFRMRV9BQ1RVQVRPUiA9IDU2LAorCisgIEVUSEFOT0xfRlVFTF9QRVJDRU5UQUdFID0gNTcsCisKKyAgQUJTT0xVVEVfRVZBUE9SQVRJT05fU1lTVEVNX1ZBUE9SX1BSRVNTVVJFID0gNTgsCisKKyAgU0hPUlRfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTksxID0gNTksCisKKyAgU0hPUlRfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTksyID0gNjAsCisKKyAgU0hPUlRfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTkszID0gNjEsCisKKyAgU0hPUlRfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTks0ID0gNjIsCisKKyAgTE9OR19URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzEgPSA2MywKKworICBMT05HX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMiA9IDY0LAorCisgIExPTkdfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTkszID0gNjUsCisKKyAgTE9OR19URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzQgPSA2NiwKKworICBSRUxBVElWRV9BQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTiA9IDY3LAorCisgIEhZQlJJRF9CQVRURVJZX1BBQ0tfUkVNQUlOSU5HX0xJRkUgPSA2OCwKKworICBGVUVMX0lOSkVDVElPTl9USU1JTkcgPSA2OSwKKworICBFTkdJTkVfRlVFTF9SQVRFID0gNzAsCisKKyAgTEFTVF9TWVNURU1fSU5ERVggPSBFTkdJTkVfRlVFTF9SQVRFLAorfTsKKworLyoqCisgKiBUaGlzIGVudW0gbGlzdHMgdGhlIHR5cGVzIG9mIHN1cHBvcnRlZCBWTVMgbWVzc2FnZXMuCisgKi8KK2VudW0gVm1zTWVzc2FnZVR5cGUgOiBpbnQzMl90IHsKKyAgLyoqIEEgY2xpZW50IHN1YnNjcmliZXMgdG8gYSBsYXllci4gKi8KKyAgU1VCU0NSSUJFID0gMSwKKworICAvKiogQSBjbGllbnQgdW5zdWJzY3JpYmVzIGZyb20gYSBsYXllci4gKi8KKyAgVU5TVUJTQ1JJQkUgPSAyLAorCisgIC8qKiBBIGNsaWVudCBwdWJsaXNoZXMgYSBkYXRhIHBhY2tldC4gKi8KKyAgREFUQSA9IDMsCit9OworCisvKioKKyAqIFRoaXMgZW51bSBwcm92aWRlcyB0aGUgY2Fub25pY2FsIG1hcHBpbmcgZm9yIFZNUyBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBhbgorICogaW50ZWdlciB2YWx1ZS4KKyAqLworZW51bSBWbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4IDogaW50MzJfdCB7CisgIC8qKiBUaGUgbWVzc2FnZSB0eXBlIGFzIGVudW1lcmF0ZWQgYnkgVm1zTWVzc2FnZVR5cGUgZW51bS4gKi8KKyAgVk1TX01FU1NBR0VfVFlQRSA9IDAsCisKKyAgLyoqIFRoZSBsYXllciBJRCBhcyBkZWZpbmVkIGluIHRoZSB2bXMgcHJvdG9jb2wuICovCisgIFZNU19MQVlFUl9JRCA9IDEsCisKKyAgLyoqIFRoZSB2ZXJzaW9uIG9mIHRoZSBWTVMgbGF5ZXIuICovCisgIFZNU19MQVlFUl9WRVJTSU9OID0gMiwKKworICAvKiogVGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgcGF5bG9hZCAqLworICBWTVNfUEFZTE9BRF9TSVpFX0JZVEVTID0gMywKK307CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL0FuZHJvaWQuYnAgYi9iaW9tZXRyaWNzL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg3ZTNhZgotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgImZpbmdlcnByaW50LzIuMSIsCisgICAgImZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLmJwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTZmZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDcwIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwiLAorICAgICAgICAiSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0Jpb21ldHJpY3NGaW5nZXJwcmludEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JSHdCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JuSHdCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JwSHdCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JzQmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lId0Jpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9Cbkh3QmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JwSHdCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQnNCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQubWsgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMzIzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDY4IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnQtVjIuMS1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEFjcXVpcmVkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRBY3F1aXJlZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QWNxdWlyZWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QWNxdWlyZWRJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRBY3F1aXJlZEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEFjcXVpcmVkSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEVucm9sbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RW5yb2xsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRFbnJvbGwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RXJyb3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEVycm9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRFcnJvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRGaW5nZXJJZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RmluZ2VySWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEZpbmdlcklkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEl0ZXJhdG9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRJdGVyYXRvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50SXRlcmF0b3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50TXNnVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50TXNnVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50TXNnVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVxdWVzdFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL1JlcXVlc3RTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5SZXF1ZXN0U3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50LVYyLjEtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBY3F1aXJlZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QWNxdWlyZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEFjcXVpcmVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEFjcXVpcmVkSW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QWNxdWlyZWRJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBY3F1aXJlZEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QXV0aGVudGljYXRlZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QXV0aGVudGljYXRlZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QXV0aGVudGljYXRlZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRFbnJvbGwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEVucm9sbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RW5yb2xsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEVycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRFcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RmluZ2VySWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEZpbmdlcklkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRGaW5nZXJJZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRJdGVyYXRvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50SXRlcmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEl0ZXJhdG9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludE1zZ1R5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludE1zZ1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludE1zZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlcXVlc3RTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9SZXF1ZXN0U3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuUmVxdWVzdFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRmMzAwNQotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOworCitpbXBvcnQgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrOworCitpbnRlcmZhY2UgSUJpb21ldHJpY3NGaW5nZXJwcmludCB7CisgIC8qKgorICAgKiBTZXQgbm90aWZpY2F0aW9uIGNhbGxiYWNrOgorICAgKiBSZWdpc3RlcnMgYSB1c2VyIGZ1bmN0aW9uIHRoYXQgbXVzdCByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGUgSEFMCisgICAqIFRoaXMgY2FsbCBtdXN0IGJsb2NrIGlmIHRoZSBIQUwgc3RhdGUgbWFjaGluZSBpcyBpbiBidXN5IHN0YXRlIHVudGlsIEhBTAorICAgKiBsZWF2ZXMgdGhlIGJ1c3kgc3RhdGUuCisgICAqCisgICAqIEByZXR1cm4gZGV2aWNlSWQgaXMgYSB1bmlxdWUgaGFuZGxlIGZvciB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJzZXRBY3RpdmVHcm91cCJ9KQorICBAZW50cnkKKyAgc2V0Tm90aWZ5KElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjayBjbGllbnRDYWxsYmFjaykKKyAgICAgIGdlbmVyYXRlcyAodWludDY0X3QgZGV2aWNlSWQpOworCisgIC8qKgorICAgKiBGaW5nZXJwcmludCBwcmUtZW5yb2xsIGVucm9sbCByZXF1ZXN0OgorICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgdG9rZW4gdG8gdXBwZXIgbGF5ZXJzIHRvIGluZGljYXRlIHRoZSBzdGFydCBvZgorICAgKiBhbiBlbnJvbGxtZW50IHRyYW5zYWN0aW9uLiBwcmUtZW5yb2xsIGFuZCBwb3N0LWVucm9sbCBzcGVjaWZ5CisgICAqIGEgcGluL3Bhc3N3b3JkIGNsZWFyZWQgdGltZSB3aW5kb3cgd2hlcmUgZW5yb2xsbWVudCBpcyBhbGxvd2VkLgorICAgKiBQcmUtZW5yb2xsIG9ubHkgZ2VuZXJhdGVzIGEgY2hhbGxlbmdlLCBhIGZ1bGwgaGFyZHdhcmVBdXRoVG9rZW4gaXMKKyAgICogZ2VuZXJhdGVkIGJ5IHRydXN0em9uZSBhZnRlciB2ZXJpZnlpbmcgYSBwaW4vcGFzc3dvcmQvc3dpcGUuIFRoaXMgaXMgdG8KKyAgICogZW5zdXJlIGFkZGluZyBhIG5ldyBmaW5nZXJwcmludCB0ZW1wbGF0ZSB3YXMgcHJlY2VkZWQgYnkgc29tZSBraW5kIG9mCisgICAqIGNyZWRlbnRpYWwgY29uZmlybWF0aW9uIChlLmcuIGRldmljZSBwYXNzd29yZCkuCisgICAqCisgICAqIEByZXR1cm4gMCBpZiBmdW5jdGlvbiBmYWlsZWQsIGEgdWludDY0X3Qgb2YgY2hhbGxlbmdlIG90aGVyd2lzZS4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiZW5yb2xsIiwgInBvc3RFbnJvbGwifSkKKyAgcHJlRW5yb2xsKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBhdXRoQ2hhbGxlbmdlKTsKKworICAvKioKKyAgICogRmluZ2VycHJpbnQgZW5yb2xsIHJlcXVlc3Q6CisgICAqIFN3aXRjaGVzIHRoZSBIQUwgc3RhdGUgbWFjaGluZSB0byBjb2xsZWN0IGFuZCBzdG9yZSBhIG5ldyBmaW5nZXJwcmludAorICAgKiB0ZW1wbGF0ZS4gU3dpdGNoZXMgYmFjayBhcyBzb29uIGFzIGVucm9sbCBpcyBjb21wbGV0ZSwgc2lnbmFsbGVkIGJ5CisgICAqIChmaW5nZXJwcmludE1zZy50eXBlID09IEZJTkdFUlBSSU5UX1RFTVBMQVRFX0VOUk9MTElORyAmJgorICAgKiAgZmluZ2VycHJpbnRNc2cuZGF0YS5lbnJvbGwuc2FtcGxlc1JlbWFpbmluZyA9PSAwKQorICAgKiBvciBhZnRlciB0aW1lb3V0U2VjIHNlY29uZHMuCisgICAqIFRoZSBmaW5nZXJwcmludCB0ZW1wbGF0ZSBtdXN0IGJlIGFzc2lnbmVkIHRvIHRoZSBncm91cCBnaWQuCisgICAqCisgICAqIEBwYXJhbSBoYXQgYSB2YWxpZCBIYXJkd2FyZSBBdXRoZW50aWNhdGlvbiBUb2tlbiAoSEFUKSwgZ2VuZXJhdGVkCisgICAqIGFzIGEgcmVzdWx0IG9mIGEgcHJlRW5yb2xsKCkgY2FsbC4KKyAgICogQHBhcmFtIGdpZCBhIGZyYW1ld29yayBkZWZpbmVkIGZpbmdlcnByaW50IHNldCAoZ3JvdXApIGlkLgorICAgKiBAcGFyYW0gdGltZW91dFNlYyBhIHRpbWVvdXQgaW4gc2Vjb25kcy4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqCisgICAqIEEgbm90aWZ5KCkgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB3aXRoIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBzdHJ1Y3R1cmUuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImNhbmNlbCIsICJlbnJvbGwiLCAicG9zdEVucm9sbCIsICJyZW1vdmUifSkKKyAgZW5yb2xsKHVpbnQ4X3RbNjldIGhhdCwgdWludDMyX3QgZ2lkLCB1aW50MzJfdCB0aW1lb3V0U2VjKQorICAgICAgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBGaW5pc2hlcyB0aGUgZW5yb2xsIG9wZXJhdGlvbiBhbmQgaW52YWxpZGF0ZXMgdGhlIHByZUVucm9sbCgpIGdlbmVyYXRlZAorICAgKiBjaGFsbGVuZ2UuIFRoaXMgbXVzdCBiZSBjYWxsZWQgYXQgdGhlIGVuZCBvZiBhIG11bHRpLWZpbmdlciBlbnJvbGxtZW50CisgICAqIHNlc3Npb24gdG8gaW5kaWNhdGUgdGhhdCBubyBtb3JlIGZpbmdlcnMgbWF5IGJlIGFkZGVkLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiYXV0aGVudGljYXRlIiwgInNldEFjdGl2ZUdyb3VwIiwgImVudW1lcmF0ZSIsICJyZW1vdmUifSkKKyAgcG9zdEVucm9sbCgpIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogZ2V0QXV0aGVudGljYXRvcklkOgorICAgKiBSZXR1cm5zIGEgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGZpbmdlcnByaW50IHNldC4gVGhpcyB2YWx1ZQorICAgKiBtdXN0IGNoYW5nZSB3aGVuZXZlciBhIG5ldyBmaW5nZXJwcmludCBpcyBlbnJvbGxlZCwgdGh1cyBjcmVhdGluZyBhIG5ldworICAgKiBmaW5nZXJwcmludCBzZXQuCisgICAqCisgICAqIEByZXR1cm4gZ2V0QXV0aGVudGljYXRvcklkUmV0IGN1cnJlbnQgYXV0aGVudGljYXRvciBpZCwgMCBpZiBmdW5jdGlvbgorICAgKiBmYWlsZWQuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImF1dGhlbnRpY2F0ZSJ9KQorICBnZXRBdXRoZW50aWNhdG9ySWQoKSBnZW5lcmF0ZXMgKHVpbnQ2NF90IEF1dGhlbnRpY2F0b3JJZCk7CisKKyAgLyoqCisgICAqIENhbmNlbCBwZW5kaW5nIGVucm9sbCBvciBhdXRoZW50aWNhdGUsIHNlbmRpbmcgRklOR0VSUFJJTlRfRVJST1JfQ0FOQ0VMRUQKKyAgICogdG8gYWxsIHJ1bm5pbmcgY2xpZW50cy4gU3dpdGNoZXMgdGhlIEhBTCBzdGF0ZSBtYWNoaW5lIGJhY2sgdG8gdGhlIGlkbGUKKyAgICogc3RhdGUuIFVubGlrZSBlbnJvbGxEb25lKCkgZG9lc24ndCBpbnZhbGlkYXRlIHRoZSBwcmVFbnJvbGwoKSBjaGFsbGVuZ2UuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJhdXRoZW50aWNhdGUiLCAiZW5yb2xsIiwgImVudW1lcmF0ZSIsICJyZW1vdmUiLAorICAgICJzZXRBY3RpdmVHcm91cCJ9KQorICBjYW5jZWwoKSBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIEVudW1lcmF0ZSBhbGwgdGhlIGZpbmdlcnByaW50IHRlbXBsYXRlcyBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5IHNldCBieQorICAgKiBzZXRBY3RpdmVHcm91cCgpOgorICAgKiBGb3IgZWFjaCB0ZW1wbGF0ZSBmb3VuZCBhIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGg6CisgICAqIGZpbmdlcnByaW50TXNnLnR5cGUgPT0gRklOR0VSUFJJTlRfVEVNUExBVEVfRU5VTUVSQVRFRAorICAgKiBmaW5nZXJwcmludE1zZy5kYXRhLmVudW1lcmF0ZWQuZmluZ2VyIGluZGljYXRpbmcgYSB0ZW1wbGF0ZSBpZAorICAgKiBmaW5nZXJwcmludE1zZy5kYXRhLmVudW1lcmF0ZWQucmVtYWluaW5nVGVtcGxhdGVzIGluZGljYXRpbmcgaG93IG1hbnkgbW9yZQorICAgKiBlbnVtZXJhdGlvbiBtZXNzYWdlcyB0byBleHBlY3QuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJyZW1vdmUiLCAiZW5yb2xsIiwgImF1dGhlbnRpY2F0ZSIsICJzZXRBY3RpdmVHcm91cCJ9KQorICBlbnVtZXJhdGUoKSBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIEZpbmdlcnByaW50IHJlbW92ZSByZXF1ZXN0OgorICAgKiBEZWxldGVzIGZpbmdlcnByaW50IHRlbXBsYXRlKHMpLgorICAgKiBXb3JrcyBvbmx5IHdpdGhpbiB0aGUgcGF0aCBzZXQgYnkgc2V0QWN0aXZlR3JvdXAoKS4KKyAgICogRm9yIGVhY2ggdGVtcGxhdGUgZm91bmQgYSBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoOgorICAgKiBmaW5nZXJwcmludE1zZy50eXBlID09IEZJTkdFUlBSSU5UX1RFTVBMQVRFX1JFTU9WRUQKKyAgICogZmluZ2VycHJpbnRNc2cuZGF0YS5yZW1vdmVkLmZpbmdlciBpbmRpY2F0aW5nIHRoZSB0ZW1wbGF0ZSBpZCBkZWxldGVkCisgICAqIGZpbmdlcnByaW50TXNnLmRhdGEucmVtb3ZlZC5yZW1haW5pbmdUZW1wbGF0ZXMgaW5kaWNhdGluZyBob3cgbWFueSBtb3JlCisgICAqIHRlbXBsYXRlcyBtdXN0IGJlIGRlbGV0ZWQgYnkgdGhpcyBvcGVyYXRpb24uCisgICAqCisgICAqIEBwYXJhbSBnaWQgZ3JvdXAgaWQgbXVzdCBtYXRjaCB0aGUgbGFzdCBncm91cCBzZXQgYnkgc2V0QWN0aXZlR3JvdXAoKS4KKyAgICogQHBhcmFtIGZpZCB0ZW1wbGF0ZSBpZCB0byBkZWxldGUgb3IgMCB0byBkZWxldGUgYWxsIHRlbXBsYXRlcyB3aXRoaW4gdGhlCisgICAqIGN1cnJlbnQgZ3JvdXAuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJlbnVtZXJhdGUiLCAiYXV0aGVudGljYXRlIiwgImNhbmNlbCIsICJnZXRBdXRoZW50aWNhdG9ySWQiLAorICAgICJzZXRBY3RpdmVHcm91cCJ9KQorICByZW1vdmUodWludDMyX3QgZ2lkLCB1aW50MzJfdCBmaWQpIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogUmVzdHJpY3RzIHRoZSBIQUwgb3BlcmF0aW9uIHRvIGEgc2V0IG9mIGZpbmdlcnByaW50cyBiZWxvbmdpbmcgdG8gYSBncm91cAorICAgKiBwcm92aWRlZC4gVGhlIGNhbGxlciBtdXN0IHByb3ZpZGUgYSBwYXRoIHRvIGEgc3RvcmFnZSBsb2NhdGlvbiB3aXRoaW4gdGhlCisgICAqIHVzZXIncyBkYXRhIGRpcmVjdG9yeS4KKyAgICoKKyAgICogQHBhcmFtIGdpZCB0aGUgZmluZ2VycHJpbnQgZ3JvdXAgKHNldCkgaWQuCisgICAqIEBwYXJhbSBzdG9yZVBhdGggZmlsZXN5c3RlbSBwYXRoIHRvIHRoZSB0ZW1wbGF0ZSBzdG9yYWdlIGRpcmVjdG9yeS4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImF1dGhlbnRpY2F0ZSIsICJwcmVFbnJvbGwiLCAiZW51bWVyYXRlIiwgInJlbW92ZSJ9KQorICBzZXRBY3RpdmVHcm91cCh1aW50MzJfdCBnaWQsIHN0cmluZyBzdG9yZVBhdGgpCisgICAgICBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIEF1dGhlbnRpY2F0ZXMgYW4gb3BlcmF0aW9uIGlkZW50aWZpZWQgYnkgb3BlcmF0aW9uSWQKKyAgICoKKyAgICogQHBhcmFtIG9wZXJhdGlvbklkIG9wZXJhdGlvbiBpZC4KKyAgICogQHBhcmFtIGdpZCBmaW5nZXJwcmludCBncm91cCBpZC4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImNhbmNlbCIsICJwcmVFbnJvbGwiLCAicmVtb3ZlIn0pCisgIGF1dGhlbnRpY2F0ZSh1aW50NjRfdCBvcGVyYXRpb25JZCwgdWludDMyX3QgZ2lkKQorICAgICAgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworfTsKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MTNjZjEKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE7CisKKy8qIFRoaXMgSEFMIGludGVyZmFjZSBjb21tdW5pY2F0ZXMgYXN5bmNocm9ub3VzIHJlc3VsdHMgZnJvbSB0aGUKKyAgIGZpbmdlcnByaW50IGRyaXZlciBpbiByZXNwb25zZSB0byB1c2VyIGFjdGlvbnMgb24gdGhlIGZpbmdlcnByaW50IHNlbnNvcgorKi8KK2ludGVyZmFjZSBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBvbmUgZW5yb2xsbWVudCBzdGVwIGlzIGNvbXBsZXRlLgorICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gZmluZ2VySWQgdGhlIGZpbmdlcnByaW50IHRlbXBsZXRhdGUgYmVpbmcgZW5yb2xsZWQKKyAgICAgKiBAcGFyYW0gZ3JvdXBJZCB0aGUgZ3JvdXBpZCBmb3IgdGhlIHRlbXBsYXRlIGJlaW5nIGVucm9sbGVkCisgICAgICogQHBhcmFtIHJlbWFpbmluZyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBzdGVwcyBiZWZvcmUgZW5yb2xsbG1lbnQgaXMgY29tcGxldGUKKyAgICAgKi8KKyAgICBvbmV3YXkgb25FbnJvbGxSZXN1bHQodWludDY0X3QgZGV2aWNlSWQsIHVpbnQzMl90IGZpbmdlcklkLCB1aW50MzJfdCBncm91cElkLCB1aW50MzJfdCByZW1haW5pbmcpOworCisgICAgLyoqCisgICAgICogU2VudCB3aGVuIGEgZmluZ2VycHJpbnQgaW1hZ2UgaXMgYWNxdWlyZWQgYnkgdGhlIHNlbnNvcgorICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gYWNxdWlyZWRJbmZvIGEgbWVzc2FnZSBhYm91dCB0aGUgcXVhbGl0eSBvZiB0aGUgYWNxdWlyZWQgaW1hZ2UKKyAgICAgKiBAcGFyYW0gdmVuZG9yQ29kZSBhIHZlbmRvci1zcGVjaWZpYyBtZXNzYWdlIGFib3V0IHRoZSBxdWFsaXR5IG9mIHRoZSBpbWFnZS4gT25seQorICAgICAqICAgICAgICB2YWxpZCB3aGVuIGFjcXVpcmVkSW5mbyA9PSBBQ1FVSVJFRF9WRU5ET1IKKyAgICAgKi8KKyAgICBvbmV3YXkgb25BY3F1aXJlZCh1aW50NjRfdCBkZXZpY2VJZCwgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gYWNxdWlyZWRJbmZvLCBpbnQzMl90IHZlbmRvckNvZGUpOworCisgICAgLyoqCisgICAgICogU2VudCB3aGVuIGEgZmluZ2VycHJpbnQgaXMgYXV0aGVudGljYXRlZAorICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gZmluZ2VySWQgdGhlIGZpbmdlcnByaW50IHRlbXBsZXRhdGUgdGhhdCB3YXMgYXV0aGVudGljYXRlZAorICAgICAqIEBwYXJhbSBncm91cElkIHRoZSBncm91cGlkIGZvciB0aGUgdGVtcGxhdGUgdGhhdCB3YXMgYXV0aGVudGljYXRlZAorICAgICAqIEBwYXJhbSB0b2tlbiB0aGUgaGFyZHdhcmUgYXV0aGVudGljYXRpb24gdG9rZW4gdG8gcGFzcyB0byBLZXlzdG9yZS5hZGRBdXRoVG9rZW4oKQorICAgICAqLworICAgIG9uZXdheSBvbkF1dGhlbnRpY2F0ZWQodWludDY0X3QgZGV2aWNlSWQsIHVpbnQzMl90IGZpbmdlcklkLCB1aW50MzJfdCBncm91cElkLCB2ZWM8dWludDhfdD4gdG9rZW4pOworCisgICAgLyoqCisgICAgICogU2VudCB3aGVuIGEgZmluZ2VycHJpbnQgZXJyb3Igb2NjdXJzCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBlcnJvciBhIG1lc3NhZ2UgYWJvdXQgdGhlIGVycm9yIHRoYXQgb2NjdXJyZWQKKyAgICAgKiBAcGFyYW0gdmVuZG9yQ29kZSBhIHZlbmRvci1zcGVpY2lmYyBlcnJvciBtZXNzYWdlLiBPbmx5IHZhbGlkCisgICAgICogICAgICAgIHdoZW4gZXJyb3IgPT0gRVJST1JfVkVORE9SCisgICAgICovCisgICAgb25ld2F5IG9uRXJyb3IodWludDY0X3QgZGV2aWNlSWQsIEZpbmdlcnByaW50RXJyb3IgZXJyb3IsIGludDMyX3QgdmVuZG9yQ29kZSk7CisKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gb25lIHRlbXBsYXRlIGlzIHJlbW92ZWQKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCB0ZW1wbGV0YXRlIGJlaW5nIHJlbW92ZWQKKyAgICAgKiBAcGFyYW0gZ3JvdXBJZCB0aGUgZ3JvdXBpZCBmb3IgdGhlIHRlbXBsYXRlIGJlaW5nIHJlbW92ZWQKKyAgICAgKiBAcGFyYW0gcmVtYWluaW5nIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIHRlbXBsYXRlcyB0aGF0IHdpbGwgYmUgcmVtb3ZlZC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25SZW1vdmVkKHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwgdWludDMyX3QgZ3JvdXBJZCwgdWludDMyX3QgcmVtYWluaW5nKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBvbmUgZmluZ2VycHJpbnQgdGVtcGxhdGUgaXMgZW51bWVyYXRlZAorICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gZmluZ2VySWQgdGhlIGZpbmdlcnByaW50IGZvciB0aGlzIHRlbXBsZXRhdGUKKyAgICAgKiBAcGFyYW0gZ3JvdXBJZCB0aGUgZ3JvdXBpZCBmb3IgdGhpcyB0ZW1wbGF0ZQorICAgICAqIEBwYXJhbSByZW1haW5pbmcgdGhlIG51bWJlciBvZiByZW1haW5pbmcgc3RlcHMgYmVmb3JlIGVudW1lcmF0aW9uIGlzIGNvbXBsZXRlCisgICAgICovCisgICAgb25ld2F5IG9uRW51bWVyYXRlKHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwgdWludDMyX3QgZ3JvdXBJZCwgdWludDMyX3QgcmVtYWluaW5nKTsKK307CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0FuZHJvaWQubWsgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAyZGI5NAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIxIEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBCaW9tZXRyaWNzRmluZ2VycHJpbnQuY3BwIFwKKyAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmN1dGlscyBcCisgICAgbGlibG9nIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5jcHAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY3NzRjYQotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmNwcApAQCAtMCwwICsxLDM1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZSIKKyNkZWZpbmUgTE9HX1ZFUkJPU0UgImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZSIKKworI2luY2x1ZGUgPGhhcmR3YXJlL2h3X2F1dGhfdG9rZW4uaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZmluZ2VycHJpbnQuaD4KKyNpbmNsdWRlICJCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIKKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYmlvbWV0cmljcyB7CituYW1lc3BhY2UgZmluZ2VycHJpbnQgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gU3VwcG9ydGVkIGZpbmdlcnByaW50IEhBTCB2ZXJzaW9uCitzdGF0aWMgY29uc3QgdWludDE2X3Qga1ZlcnNpb24gPSBIQVJEV0FSRV9NT0RVTEVfQVBJX1ZFUlNJT04oMiwgMSk7CisKK3VzaW5nIFJlcXVlc3RTdGF0dXMgPQorICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OlJlcXVlc3RTdGF0dXM7CisKK0Jpb21ldHJpY3NGaW5nZXJwcmludCAqQmlvbWV0cmljc0ZpbmdlcnByaW50OjpzSW5zdGFuY2UgPSBudWxscHRyOworCitCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OkJpb21ldHJpY3NGaW5nZXJwcmludCgpIDogbUNsaWVudENhbGxiYWNrKG51bGxwdHIpLCBtRGV2aWNlKG51bGxwdHIpIHsKKyAgICBzSW5zdGFuY2UgPSB0aGlzOyAvLyBrZWVwIHRyYWNrIG9mIHRoZSBtb3N0IHJlY2VudCBpbnN0YW5jZQorICAgIG1EZXZpY2UgPSBvcGVuSGFsKCk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBvcGVuIEhBTCBtb2R1bGUiKTsKKyAgICB9Cit9CisKK0Jpb21ldHJpY3NGaW5nZXJwcmludDo6fkJpb21ldHJpY3NGaW5nZXJwcmludCgpIHsKKyAgICBBTE9HVigifkJpb21ldHJpY3NGaW5nZXJwcmludCgpIik7CisgICAgaWYgKG1EZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiTm8gdmFsaWQgZGV2aWNlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaW50IGVycjsKKyAgICBpZiAoMCAhPSAoZXJyID0gbURldmljZS0+Y29tbW9uLmNsb3NlKAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCo+KG1EZXZpY2UpKSkpIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IGNsb3NlIGZpbmdlcnByaW50IG1vZHVsZSwgZXJyb3I6ICVkIiwgZXJyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtRGV2aWNlID0gbnVsbHB0cjsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6RXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvcikgeworICAgIHN3aXRjaChlcnJvcikgeworICAgICAgICBjYXNlIDA6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfT0s7CisgICAgICAgIGNhc2UgLTI6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRU5PRU5UOworICAgICAgICBjYXNlIC00OiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTlRSOworICAgICAgICBjYXNlIC01OiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTzsKKyAgICAgICAgY2FzZSAtMTE6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUFHQUlOOworICAgICAgICBjYXNlIC0xMjogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FTk9NRU07CisgICAgICAgIGNhc2UgLTEzOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VBQ0NFUzsKKyAgICAgICAgY2FzZSAtMTQ6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUZBVUxUOworICAgICAgICBjYXNlIC0xNjogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FQlVTWTsKKyAgICAgICAgY2FzZSAtMjI6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUlOVkFMOworICAgICAgICBjYXNlIC0yODogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FTk9TUEM7CisgICAgICAgIGNhc2UgLTExMDogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FVElNRURPVVQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiQW4gdW5rbm93biBlcnJvciByZXR1cm5lZCBmcm9tIGZpbmdlcnByaW50IHZlbmRvciBsaWJyYXJ5OiAlZCIsIGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfVU5LTk9XTjsKKyAgICB9Cit9CisKKy8vIFRyYW5zbGF0ZSBmcm9tIGVycm9ycyByZXR1cm5lZCBieSB0cmFkaXRpb25hbCBIQUwgKHNlZSBmaW5nZXJwcmludC5oKSB0bworLy8gSElETC1jb21wbGlhbnQgRmluZ2VycHJpbnRFcnJvci4KK0ZpbmdlcnByaW50RXJyb3IgQmlvbWV0cmljc0ZpbmdlcnByaW50OjpWZW5kb3JFcnJvckZpbHRlcihpbnQzMl90IGVycm9yLAorICAgICAgICAgICAgaW50MzJfdCogdmVuZG9yQ29kZSkgeworICAgICp2ZW5kb3JDb2RlID0gMDsKKyAgICBzd2l0Y2goZXJyb3IpIHsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9IV19VTkFWQUlMQUJMRToKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9IV19VTkFWQUlMQUJMRTsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9VTkFCTEVfVE9fUFJPQ0VTUzoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9VTkFCTEVfVE9fUFJPQ0VTUzsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9USU1FT1VUOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1RJTUVPVVQ7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfTk9fU1BBQ0U6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfTk9fU1BBQ0U7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfQ0FOQ0VMRUQ6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQ7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfVU5BQkxFX1RPX1JFTU9WRToKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9VTkFCTEVfVE9fUkVNT1ZFOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX0xPQ0tPVVQ6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfTE9DS09VVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmIChlcnJvciA+PSBGSU5HRVJQUklOVF9FUlJPUl9WRU5ET1JfQkFTRSkgeworICAgICAgICAgICAgICAgIC8vIHZlbmRvciBzcGVjaWZpYyBjb2RlLgorICAgICAgICAgICAgICAgICp2ZW5kb3JDb2RlID0gZXJyb3IgLSBGSU5HRVJQUklOVF9FUlJPUl9WRU5ET1JfQkFTRTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVkVORE9SOworICAgICAgICAgICAgfQorICAgIH0KKyAgICBBTE9HRSgiVW5rbm93biBlcnJvciBmcm9tIGZpbmdlcnByaW50IHZlbmRvciBsaWJyYXJ5OiAlZCIsIGVycm9yKTsKKyAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVU5BQkxFX1RPX1BST0NFU1M7Cit9CisKKy8vIFRyYW5zbGF0ZSBhY3F1aXJlZCBtZXNzYWdlcyByZXR1cm5lZCBieSB0cmFkaXRpb25hbCBIQUwgKHNlZSBmaW5nZXJwcmludC5oKQorLy8gdG8gSElETC1jb21wbGlhbnQgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8uCitGaW5nZXJwcmludEFjcXVpcmVkSW5mbyBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OlZlbmRvckFjcXVpcmVkRmlsdGVyKAorICAgICAgICBpbnQzMl90IGluZm8sIGludDMyX3QqIHZlbmRvckNvZGUpIHsKKyAgICAqdmVuZG9yQ29kZSA9IDA7CisgICAgc3dpdGNoKGluZm8pIHsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9HT09EOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9HT09EOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX1BBUlRJQUw6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX1BBUlRJQUw7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfSU5TVUZGSUNJRU5UOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9JTlNVRkZJQ0lFTlQ7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfSU1BR0VSX0RJUlRZOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9JTUFHRVJfRElSVFk7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfVE9PX1NMT1c6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX1RPT19TTE9XOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX1RPT19GQVNUOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9UT09fRkFTVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmIChpbmZvID49IEZJTkdFUlBSSU5UX0FDUVVJUkVEX1ZFTkRPUl9CQVNFKSB7CisgICAgICAgICAgICAgICAgLy8gdmVuZG9yIHNwZWNpZmljIGNvZGUuCisgICAgICAgICAgICAgICAgKnZlbmRvckNvZGUgPSBpbmZvIC0gRklOR0VSUFJJTlRfQUNRVUlSRURfVkVORE9SX0JBU0U7CisgICAgICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9WRU5ET1I7CisgICAgICAgICAgICB9CisgICAgfQorICAgIEFMT0dFKCJVbmtub3duIGFjcXVpcmVkbXNnIGZyb20gZmluZ2VycHJpbnQgdmVuZG9yIGxpYnJhcnk6ICVkIiwgaW5mbyk7CisgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9JTlNVRkZJQ0lFTlQ7Cit9CisKK1JldHVybjx1aW50NjRfdD4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpzZXROb3RpZnkoCisgICAgICAgIGNvbnN0IHNwPElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaz4mIGNsaWVudENhbGxiYWNrKSB7CisgICAgbUNsaWVudENhbGxiYWNrID0gY2xpZW50Q2FsbGJhY2s7CisgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgSEFMIDIuMSBkb2Vzbid0IGhhdmUgYSB3YXkgdG8gcHJvcGFnYXRlIGEKKyAgICAvLyB1bmlxdWUgdG9rZW4gZm9yIGl0cyBkcml2ZXIuIFN1YnNlcXVlbnQgdmVyc2lvbnMgc2hvdWxkIHNlbmQgYSB1bmlxdWUKKyAgICAvLyB0b2tlbiBmb3IgZWFjaCBjYWxsIHRvIHNldE5vdGlmeSgpLiBUaGlzIGlzIGZpbmUgYXMgbG9uZyBhcyB0aGVyZSdzIG9ubHkKKyAgICAvLyBvbmUgZmluZ2VycHJpbnQgZGV2aWNlIG9uIHRoZSBwbGF0Zm9ybS4KKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4obURldmljZSk7Cit9CisKK1JldHVybjx1aW50NjRfdD4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpwcmVFbnJvbGwoKSAgeworICAgIHJldHVybiBtRGV2aWNlLT5wcmVfZW5yb2xsKG1EZXZpY2UpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjplbnJvbGwoY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2OT4mIGhhdCwKKyAgICAgICAgdWludDMyX3QgZ2lkLCB1aW50MzJfdCB0aW1lb3V0U2VjKSB7CisgICAgY29uc3QgaHdfYXV0aF90b2tlbl90KiBhdXRoVG9rZW4gPQorICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGh3X2F1dGhfdG9rZW5fdCo+KGhhdC5kYXRhKCkpOworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5lbnJvbGwobURldmljZSwgYXV0aFRva2VuLCBnaWQsIHRpbWVvdXRTZWMpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6cG9zdEVucm9sbCgpIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+cG9zdF9lbnJvbGwobURldmljZSkpOworfQorCitSZXR1cm48dWludDY0X3Q+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6Z2V0QXV0aGVudGljYXRvcklkKCkgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRfYXV0aGVudGljYXRvcl9pZChtRGV2aWNlKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6Y2FuY2VsKCkgeworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5jYW5jZWwobURldmljZSkpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjplbnVtZXJhdGUoKSAgeworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5lbnVtZXJhdGUobURldmljZSkpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpyZW1vdmUodWludDMyX3QgZ2lkLCB1aW50MzJfdCBmaWQpIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+cmVtb3ZlKG1EZXZpY2UsIGdpZCwgZmlkKSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnNldEFjdGl2ZUdyb3VwKHVpbnQzMl90IGdpZCwKKyAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIHN0b3JlUGF0aCkgeworICAgIGlmIChzdG9yZVBhdGguc2l6ZSgpID49IFBBVEhfTUFYIHx8IHN0b3JlUGF0aC5zaXplKCkgPD0gMCkgeworICAgICAgICBBTE9HRSgiQmFkIHBhdGggbGVuZ3RoOiAlemQiLCBzdG9yZVBhdGguc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU5WQUw7CisgICAgfQorICAgIGlmIChhY2Nlc3Moc3RvcmVQYXRoLmNfc3RyKCksIFdfT0spKSB7CisgICAgICAgIHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUlOVkFMOworICAgIH0KKworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5zZXRfYWN0aXZlX2dyb3VwKG1EZXZpY2UsIGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZVBhdGguY19zdHIoKSkpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjphdXRoZW50aWNhdGUodWludDY0X3Qgb3BlcmF0aW9uSWQsCisgICAgICAgIHVpbnQzMl90IGdpZCkgeworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5hdXRoZW50aWNhdGUobURldmljZSwgb3BlcmF0aW9uSWQsIGdpZCkpOworfQorCitJQmlvbWV0cmljc0ZpbmdlcnByaW50KiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmdldEluc3RhbmNlKCkgeworICAgIGlmICghc0luc3RhbmNlKSB7CisgICAgICBzSW5zdGFuY2UgPSBuZXcgQmlvbWV0cmljc0ZpbmdlcnByaW50KCk7CisgICAgfQorICAgIHJldHVybiBzSW5zdGFuY2U7Cit9CisKK2ZpbmdlcnByaW50X2RldmljZV90KiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6Om9wZW5IYWwoKSB7CisgICAgaW50IGVycjsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqaHdfbWRsID0gbnVsbHB0cjsKKyAgICBBTE9HRCgiT3BlbmluZyBmaW5nZXJwcmludCBoYWwgbGlicmFyeS4uLiIpOworICAgIGlmICgwICE9IChlcnIgPSBod19nZXRfbW9kdWxlKEZJTkdFUlBSSU5UX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21kbCkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBvcGVuIGZpbmdlcnByaW50IEhXIE1vZHVsZSwgZXJyb3I6ICVkIiwgZXJyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKGh3X21kbCA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJObyB2YWxpZCBmaW5nZXJwcmludCBtb2R1bGUiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgZmluZ2VycHJpbnRfbW9kdWxlX3QgY29uc3QgKm1vZHVsZSA9CisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZmluZ2VycHJpbnRfbW9kdWxlX3QqPihod19tZGwpOworICAgIGlmIChtb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIk5vIHZhbGlkIG9wZW4gbWV0aG9kIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGh3X2RldmljZV90ICpkZXZpY2UgPSBudWxscHRyOworCisgICAgaWYgKDAgIT0gKGVyciA9IG1vZHVsZS0+Y29tbW9uLm1ldGhvZHMtPm9wZW4oaHdfbWRsLCBudWxscHRyLCAmZGV2aWNlKSkpIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IG9wZW4gZmluZ2VycHJpbnQgbWV0aG9kcywgZXJyb3I6ICVkIiwgZXJyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKGtWZXJzaW9uICE9IGRldmljZS0+dmVyc2lvbikgeworICAgICAgICAvLyBlbmZvcmNlIHZlcnNpb24gb24gbmV3IGRldmljZXMgYmVjYXVzZSBvZiBISURMQDIuMSB0cmFuc2xhdGlvbiBsYXllcgorICAgICAgICBBTE9HRSgiV3JvbmcgZnAgdmVyc2lvbi4gRXhwZWN0ZWQgJWQsIGdvdCAlZCIsIGtWZXJzaW9uLCBkZXZpY2UtPnZlcnNpb24pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBmaW5nZXJwcmludF9kZXZpY2VfdCogZnBfZGV2aWNlID0KKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxmaW5nZXJwcmludF9kZXZpY2VfdCo+KGRldmljZSk7CisKKyAgICBpZiAoMCAhPSAoZXJyID0KKyAgICAgICAgICAgIGZwX2RldmljZS0+c2V0X25vdGlmeShmcF9kZXZpY2UsIEJpb21ldHJpY3NGaW5nZXJwcmludDo6bm90aWZ5KSkpIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IHJlZ2lzdGVyIGZpbmdlcnByaW50IG1vZHVsZSBjYWxsYmFjaywgZXJyb3I6ICVkIiwgZXJyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGZwX2RldmljZTsKK30KKwordm9pZCBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6Om5vdGlmeShjb25zdCBmaW5nZXJwcmludF9tc2dfdCAqbXNnKSB7CisgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50KiB0aGlzUHRyID0gc3RhdGljX2Nhc3Q8QmlvbWV0cmljc0ZpbmdlcnByaW50Kj4oCisgICAgICAgICAgICBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmdldEluc3RhbmNlKCkpOworICAgIGlmICh0aGlzUHRyID09IG51bGxwdHIgfHwgdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIlJlY2VpdmluZyBjYWxsYmFja3MgYmVmb3JlIHRoZSBjbGllbnQgY2FsbGJhY2sgaXMgcmVnaXN0ZXJlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb25zdCB1aW50NjRfdCBkZXZJZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHRoaXNQdHItPm1EZXZpY2UpOworICAgIHN3aXRjaCAobXNnLT50eXBlKSB7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1I6IHsKKyAgICAgICAgICAgICAgICBpbnQzMl90IHZlbmRvckNvZGUgPSAwOworICAgICAgICAgICAgICAgIEZpbmdlcnByaW50RXJyb3IgcmVzdWx0ID0gVmVuZG9yRXJyb3JGaWx0ZXIobXNnLT5kYXRhLmVycm9yLCAmdmVuZG9yQ29kZSk7CisgICAgICAgICAgICAgICAgQUxPR0QoIm9uRXJyb3IoJWQpIiwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25FcnJvcihkZXZJZCwgcmVzdWx0LCB2ZW5kb3JDb2RlKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25FcnJvciBjYWxsYmFjayIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEOiB7CisgICAgICAgICAgICAgICAgaW50MzJfdCB2ZW5kb3JDb2RlID0gMDsKKyAgICAgICAgICAgICAgICBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyByZXN1bHQgPQorICAgICAgICAgICAgICAgICAgICBWZW5kb3JBY3F1aXJlZEZpbHRlcihtc2ctPmRhdGEuYWNxdWlyZWQuYWNxdWlyZWRfaW5mbywgJnZlbmRvckNvZGUpOworICAgICAgICAgICAgICAgIEFMT0dEKCJvbkFjcXVpcmVkKCVkKSIsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uQWNxdWlyZWQoZGV2SWQsIHJlc3VsdCwgdmVuZG9yQ29kZSkuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uQWNxdWlyZWQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9URU1QTEFURV9FTlJPTExJTkc6CisgICAgICAgICAgICBBTE9HRCgib25FbnJvbGxSZXN1bHQoZmlkPSVkLCBnaWQ9JWQsIHJlbT0lZCkiLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5zYW1wbGVzX3JlbWFpbmluZyk7CisgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25FbnJvbGxSZXN1bHQoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLnNhbXBsZXNfcmVtYWluaW5nKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkVucm9sbFJlc3VsdCBjYWxsYmFjayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfVEVNUExBVEVfUkVNT1ZFRDoKKyAgICAgICAgICAgIEFMT0dEKCJvblJlbW92ZShmaWQ9JWQsIGdpZD0lZCwgcmVtPSVkKSIsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLnJlbWFpbmluZ190ZW1wbGF0ZXMpOworICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uUmVtb3ZlZChkZXZJZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQucmVtYWluaW5nX3RlbXBsYXRlcykuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25SZW1vdmVkIGNhbGxiYWNrIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BVVRIRU5USUNBVEVEOgorICAgICAgICAgICAgaWYgKG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5maWQgIT0gMCkgeworICAgICAgICAgICAgICAgIEFMT0dEKCJvbkF1dGhlbnRpY2F0ZWQoZmlkPSVkLCBnaWQ9JWQpIiwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmdpZCk7CisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogaGF0ID0KKyAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5oYXQpOworICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+IHRva2VuKAorICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihoYXQsIGhhdCArIHNpemVvZihtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5oYXQpKSk7CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uQXV0aGVudGljYXRlZChkZXZJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4pLmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkF1dGhlbnRpY2F0ZWQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE5vdCBhIHJlY29nbml6ZWQgZmluZ2VycHJpbnQKKyAgICAgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25BdXRoZW50aWNhdGVkKGRldklkLAorICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PigpKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25BdXRoZW50aWNhdGVkIGNhbGxiYWNrIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfVEVNUExBVEVfRU5VTUVSQVRJTkc6CisgICAgICAgICAgICBBTE9HRCgib25FbnVtZXJhdGUoZmlkPSVkLCBnaWQ9JWQsIHJlbT0lZCkiLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5yZW1haW5pbmdfdGVtcGxhdGVzKTsKKyAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkVudW1lcmF0ZShkZXZJZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQucmVtYWluaW5nX3RlbXBsYXRlcykuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25FbnVtZXJhdGUgY2FsbGJhY2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgZmluZ2VycHJpbnQKK30gIC8vIG5hbWVzcGFjZSBiaW9tZXRyaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5oIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTIzYzg0Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JJT01FVFJJQ1NfRklOR0VSUFJJTlRfVjJfMV9CSU9NRVRSSUNTRklOR0VSUFJJTlRfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JJT01FVFJJQ1NfRklOR0VSUFJJTlRfVjJfMV9CSU9NRVRSSUNTRklOR0VSUFJJTlRfSAorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9maW5nZXJwcmludC5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBiaW9tZXRyaWNzIHsKK25hbWVzcGFjZSBmaW5nZXJwcmludCB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6UmVxdWVzdFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEJpb21ldHJpY3NGaW5nZXJwcmludCA6IHB1YmxpYyBJQmlvbWV0cmljc0ZpbmdlcnByaW50IHsKK3B1YmxpYzoKKyAgICBCaW9tZXRyaWNzRmluZ2VycHJpbnQoKTsKKyAgICB+QmlvbWV0cmljc0ZpbmdlcnByaW50KCk7CisKKyAgICAvLyBNZXRob2QgdG8gd3JhcCBsZWdhY3kgSEFMIHdpdGggQmlvbWV0cmljc0ZpbmdlcnByaW50IGNsYXNzCisgICAgc3RhdGljIElCaW9tZXRyaWNzRmluZ2VycHJpbnQqIGdldEluc3RhbmNlKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQgZm9sbG93LgorICAgIFJldHVybjx1aW50NjRfdD4gc2V0Tm90aWZ5KGNvbnN0IHNwPElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaz4mIGNsaWVudENhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IHByZUVucm9sbCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBlbnJvbGwoY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2OT4mIGhhdCwgdWludDMyX3QgZ2lkLCB1aW50MzJfdCB0aW1lb3V0U2VjKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcG9zdEVucm9sbCgpIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0QXV0aGVudGljYXRvcklkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IGNhbmNlbCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBlbnVtZXJhdGUoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVtb3ZlKHVpbnQzMl90IGdpZCwgdWludDMyX3QgZmlkKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gc2V0QWN0aXZlR3JvdXAodWludDMyX3QgZ2lkLCBjb25zdCBoaWRsX3N0cmluZyYgc3RvcmVQYXRoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gYXV0aGVudGljYXRlKHVpbnQ2NF90IG9wZXJhdGlvbklkLCB1aW50MzJfdCBnaWQpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHN0YXRpYyBmaW5nZXJwcmludF9kZXZpY2VfdCogb3BlbkhhbCgpOworICAgIHN0YXRpYyB2b2lkIG5vdGlmeShjb25zdCBmaW5nZXJwcmludF9tc2dfdCAqbXNnKTsgLyogU3RhdGljIGNhbGxiYWNrIGZvciBsZWdhY3kgSEFMIGltcGxlbWVudGF0aW9uICovCisgICAgc3RhdGljIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBFcnJvckZpbHRlcihpbnQzMl90IGVycm9yKTsKKyAgICBzdGF0aWMgRmluZ2VycHJpbnRFcnJvciBWZW5kb3JFcnJvckZpbHRlcihpbnQzMl90IGVycm9yLCBpbnQzMl90KiB2ZW5kb3JDb2RlKTsKKyAgICBzdGF0aWMgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gVmVuZG9yQWNxdWlyZWRGaWx0ZXIoaW50MzJfdCBlcnJvciwgaW50MzJfdCogdmVuZG9yQ29kZSk7CisgICAgc3RhdGljIEJpb21ldHJpY3NGaW5nZXJwcmludCogc0luc3RhbmNlOworCisgICAgc3A8SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrPiBtQ2xpZW50Q2FsbGJhY2s7CisgICAgZmluZ2VycHJpbnRfZGV2aWNlX3QgKm1EZXZpY2U7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgZmluZ2VycHJpbnQKK30gIC8vIG5hbWVzcGFjZSBiaW9tZXRyaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CSU9NRVRSSUNTX0ZJTkdFUlBSSU5UX1YyXzFfQklPTUVUUklDU0ZJTkdFUlBSSU5UX0gKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlLnJjIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE3NjdhNgotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNyBAQAorc2VydmljZSBmcHNfaGFsIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZQorICAgICMgImNsYXNzIGhhbCIgY2F1c2VzIGEgcmFjZSBjb25kaXRpb24gb24gc29tZSBkZXZpY2VzIGR1ZSB0byBmaWxlcyBjcmVhdGVkCisgICAgIyBpbiAvZGF0YS4gQXMgYSB3b3JrYXJvdW5kLCBwb3N0cG9uZSBzdGFydHVwIHVudGlsIGxhdGVyIGluIGJvb3Qgb25jZQorICAgICMgL2RhdGEgaXMgbW91bnRlZC4KKyAgICBjbGFzcyBsYXRlX3N0YXJ0CisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0gaW5wdXQKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTdjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3R5cGVzLmg+CisjaW5jbHVkZSAiQmlvbWV0cmljc0ZpbmdlcnByaW50LmgiCisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6aW1wbGVtZW50YXRpb246OkJpb21ldHJpY3NGaW5nZXJwcmludDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6c3A7CisKK2ludCBtYWluKCkgeworICAgIGFuZHJvaWQ6OnNwPElCaW9tZXRyaWNzRmluZ2VycHJpbnQ+IGJpbyA9IEJpb21ldHJpY3NGaW5nZXJwcmludDo6Z2V0SW5zdGFuY2UoKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKmNhbGxlcldpbGxKb2luKi8pOworCisgICAgaWYgKGJpbyAhPSBudWxscHRyKSB7CisgICAgICAgIGJpby0+cmVnaXN0ZXJBc1NlcnZpY2UoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiQ2FuJ3QgY3JlYXRlIGluc3RhbmNlIG9mIEJpb21ldHJpY3NGaW5nZXJwcmludCwgbnVsbHB0ciIpOworICAgIH0KKworICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisKKyAgICByZXR1cm4gMDsgLy8gc2hvdWxkIG5ldmVyIGdldCBoZXJlCit9CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oYWwgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQwMjA4NQotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3R5cGVzLmhhbApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTsKKworLyoqCisgKiBSZXF1ZXN0IHN0YXR1cyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcmVxdWVzdCBpcyBhY2NlcHRlZCBieSB0aGUgdmVuZG9yCisgKiBpbXBsZW1lbnRhdGlvbiBvciBub3QuIFRoZXNlIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgZXJybm8gc2V0LAorICogZXhjZXB0IGZvciB0aGUgU1lTX1VOS05PV04KKyAqLworZW51bSBSZXF1ZXN0U3RhdHVzIDogaW50MzJfdCB7CisgIFNZU19VTktOT1dOID0gMSwKKyAgU1lTX09LID0gMCwKKyAgU1lTX0VOT0VOVCA9IC0yLAorICBTWVNfRUlOVFIgPSAtNCwKKyAgU1lTX0VJTyA9IC01LAorICBTWVNfRUFHQUlOID0gLTExLAorICBTWVNfRU5PTUVNID0gLTEyLAorICBTWVNfRUFDQ0VTID0gLTEzLAorICBTWVNfRUZBVUxUID0gLTE0LAorICBTWVNfRUJVU1kgPSAtMTYsCisgIFNZU19FSU5WQUwgPSAtMjIsCisgIFNZU19FTk9TUEMgPSAtMjgsCisgIFNZU19FVElNRURPVVQgPSAtMTEwLAorfTsKKworLyoqCisgKiBGaW5nZXJwcmludCBlcnJvcnMgYXJlIG1lYW50IHRvIHRlbGwgdGhlIGZyYW1ld29yayB0byB0ZXJtaW5hdGUgdGhlIGN1cnJlbnQKKyAqIG9wZXJhdGlvbiBhbmQgYXNrIGZvciB0aGUgdXNlciB0byBjb3JyZWN0IHRoZSBzaXR1YXRpb24uIFRoZXNlIHdpbGwgYWxtb3N0CisgKiBhbHdheXMgcmVzdWx0IGluIG1lc3NhZ2luZyBhbmQgdXNlciBpbnRlcmFjdGlvbiB0byBjb3JyZWN0IHRoZSBwcm9ibGVtLgorICoKKyAqIEZvciBleGFtcGxlLCBFUlJPUl9DQU5DRUxFRCBzaG91bGQgZm9sbG93IGFueSBhY3F1aXNpdGlvbiBtZXNzYWdlIHRoYXQKKyAqIHJlc3VsdHMgaW4gYSBzaXR1YXRpb24gd2hlcmUgdGhlIGN1cnJlbnQgb3BlcmF0aW9uIGNhbid0IGNvbnRpbnVlIHdpdGhvdXQKKyAqIHVzZXIgaW50ZXJhY3Rpb24uIEZvciBleGFtcGxlLCBpZiB0aGUgc2Vuc29yIGlzIGRpcnR5IGR1cmluZyBlbnJvbGxtZW50IGFuZAorICogbm8gZnVydGhlciBlbnJvbGxtZW50IHByb2dyZXNzIGNhbiBiZSBtYWRlLCBzZW5kIEFDUVVJUkVEX0lNQUdFUl9ESVJUWQorICogZm9sbG93ZWQgYnkgRVJST1JfQ0FOQ0VMRUQuCisgKi8KK2VudW0gRmluZ2VycHJpbnRFcnJvciA6IGludDMyX3QgeworICAvKiogVXNlZCBmb3IgdGVzdGluZywgbm8gZXJyb3IgcmV0dXJuZWQgKi8KKyAgRVJST1JfTk9fRVJST1IgPSAwLAorICAvKiogVGhlIGhhcmR3YXJlIGhhcyBhbiBlcnJvciB0aGF0IGNhbid0IGJlIHJlc29sdmVkLiAqLworICBFUlJPUl9IV19VTkFWQUlMQUJMRSA9IDEsCisgIC8qKiBCYWQgZGF0YTsgb3BlcmF0aW9uIGNhbid0IGNvbnRpbnVlICovCisgIEVSUk9SX1VOQUJMRV9UT19QUk9DRVNTID0gMiwKKyAgLyoqIFRoZSBvcGVyYXRpb24gaGFzIHRpbWVkIG91dCB3YWl0aW5nIGZvciB1c2VyIGlucHV0LiAqLworICBFUlJPUl9USU1FT1VUID0gMywKKyAgLyoqIE5vIHNwYWNlIGF2YWlsYWJsZSB0byBzdG9yZSBhIHRlbXBsYXRlICovCisgIEVSUk9SX05PX1NQQUNFID0gNCwKKyAgLyoqIFRoZSBjdXJyZW50IG9wZXJhdGlvbiBoYXMgYmVlbiBjYW5jZWxlZCAqLworICBFUlJPUl9DQU5DRUxFRCA9IDUsCisgIC8qKiBVbmFibGUgdG8gcmVtb3ZlIGEgdGVtcGxhdGUgKi8KKyAgRVJST1JfVU5BQkxFX1RPX1JFTU9WRSA9IDYsCisgIC8qKiBUaGUgaGFyZHdhcmUgaXMgaW4gbG9ja291dCBkdWUgdG8gdG9vIG1hbnkgYXR0ZW1wdHMgKi8KKyAgRVJST1JfTE9DS09VVCA9IDcsCisgIC8qKiBWZW5kb3Itc3BlY2lmaWMgZXJyb3IgbWVzc2FnZSAqLworICBFUlJPUl9WRU5ET1IgPSA4Cit9OworCisvKioKKyAqIEZpbmdlcnByaW50IGFjcXVpc2l0aW9uIGluZm8gaXMgbWVhbnQgYXMgZmVlZGJhY2sgZm9yIHRoZSBjdXJyZW50IG9wZXJhdGlvbi4KKyAqIEFueXRoaW5nIGJ1dCBBQ1FVSVJFRF9HT09EIG11c3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgYXMgZmVlZGJhY2sgb24gaG93IHRvCisgKiB0YWtlIGFjdGlvbiBvbiB0aGUgY3VycmVudCBvcGVyYXRpb24uIEZvciBleGFtcGxlLCBBQ1FVSVJFRF9JTUFHRVJfRElSVFkgbWF5CisgKiBiZSB1c2VkIHRvIHRlbGwgdGhlIHVzZXIgdG8gY2xlYW4gdGhlIHNlbnNvciBpZiBpdCBpcyBkZXRlY3RlZCB0byBiZSBkaXJ0eS4KKyAqIElmIHRoaXMgY2F1c2VzIHRoZSBjdXJyZW50IG9wZXJhdGlvbiB0byBmYWlsLCBhbiBhZGRpdGlvbmFsIEVSUk9SX0NBTkNFTEVECisgKiBtdXN0IGJlIHNlbnQgdG8gc3RvcCB0aGUgb3BlcmF0aW9uIGluIHByb2dyZXNzIChlLmcuIGVucm9sbG1lbnQpLgorICogSW4gZ2VuZXJhbCwgdGhlc2UgbWVzc2FnZXMgd2lsbCByZXN1bHQgaW4gYSAiVHJ5IGFnYWluIiBtZXNzYWdlLgorICovCitlbnVtIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIDogaW50MzJfdCB7CisgIEFDUVVJUkVEX0dPT0QgPSAwLAorICAvKiogc2Vuc29yIG5lZWRzIG1vcmUgZGF0YSwgaS5lLiBsb25nZXIgc3dpcGUuICovCisgIEFDUVVJUkVEX1BBUlRJQUwgPSAxLAorICAvKioKKyAgICogaW1hZ2UgZG9lc24ndCBjb250YWluIGVub3VnaCBkZXRhaWwgZm9yIHJlY29nbml0aW9uKi8KKyAgQUNRVUlSRURfSU5TVUZGSUNJRU5UID0gMiwKKyAgLyoqIHNlbnNvciBuZWVkcyB0byBiZSBjbGVhbmVkICovCisgIEFDUVVJUkVEX0lNQUdFUl9ESVJUWSA9IDMsCisgIC8qKiBtb3N0bHkgc3dpcGUtdHlwZSBzZW5zb3JzOyBub3QgZW5vdWdoIGRhdGEgY29sbGVjdGVkICovCisgIEFDUVVJUkVEX1RPT19TTE9XID0gNCwKKyAgLyoqIHZlbmRvci1zcGVjaWZpYyBhY3F1aXNpdGlvbiBtZXNzYWdlcyBzdGFydCBoZXJlICovCisgIEFDUVVJUkVEX1RPT19GQVNUID0gNSwKKyAgLyoqIHZlbmRvci1zcGVjaWZpYyBhY3F1aXNpdGlvbiBtZXNzYWdlcyAqLworICBBQ1FVSVJFRF9WRU5ET1IgPSA2Cit9OworCitzdHJ1Y3QgRmluZ2VycHJpbnRGaW5nZXJJZCB7CisgIC8qKiBHcm91cCBJRCAqLworICB1aW50MzJfdCBnaWQ7CisgIC8qKiBGaW5nZXJwcmludCB0ZW1wbGF0ZSBJRCAqLworICB1aW50MzJfdCBmaWQ7Cit9OworCitzdHJ1Y3QgRmluZ2VycHJpbnRFbnJvbGwgeworICAvKiogVGVtcGxhdGUgSUQgKi8KKyAgRmluZ2VycHJpbnRGaW5nZXJJZCBmaW5nZXI7CisgIC8qKgorICAgKiBzYW1wbGVzUmVtYWluaW5nIGdvZXMgZnJvbSBOIChubyBkYXRhIGNvbGxlY3RlZCwgYnV0IE4gc2NhbnMgbmVlZGVkKQorICAgKiB0byAwIChubyBtb3JlIGRhdGEgaXMgbmVlZGVkIHRvIGJ1aWxkIGEgdGVtcGxhdGUpLiAqLworICB1aW50MzJfdCBzYW1wbGVzUmVtYWluaW5nOworICAvKiogVmVuZG9yIHNwZWNpZmljIG1lc3NhZ2UuIFVzZWQgZm9yIHVzZXIgZ3VpZGFuY2UgKi8KKyAgdWludDY0X3QgbXNnOworfTsKKworc3RydWN0IEZpbmdlcnByaW50SXRlcmF0b3IgeworICAvKiogVGVtcGxhdGUgSUQgKi8KKyAgRmluZ2VycHJpbnRGaW5nZXJJZCBmaW5nZXI7CisgIC8qKiBIb3cgbWFueSB0ZW1wbGF0ZXMgcmVtYWluIHRvIGl0ZXJhdGUgdGhyb3VnaCAqLworICB1aW50MzJfdCByZW1haW5pbmdUZW1wbGF0ZXM7Cit9OworCit0eXBlZGVmIEZpbmdlcnByaW50SXRlcmF0b3IgRmluZ2VycHJpbnRFbnVtZXJhdGVkOwordHlwZWRlZiBGaW5nZXJwcmludEl0ZXJhdG9yIEZpbmdlcnByaW50UmVtb3ZlZDsKKworc3RydWN0IEZpbmdlcnByaW50QWNxdWlyZWQgeworICAvKiogaW5mb3JtYXRpb24gYWJvdXQgdGhlIGltYWdlICovCisgIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIGFjcXVpcmVkSW5mbzsKK307CisKK3N0cnVjdCBGaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQgeworICAvKiogTWF0Y2hlZCB0ZW1wbGF0ZSBJRCAqLworICBGaW5nZXJwcmludEZpbmdlcklkIGZpbmdlcjsKKyAgLyoqIEF1dGhlbnRpY2F0aW9uIHJlc3VsdCBmcm9tIHRoZSBrZXltYXN0ZXIgKi8KKyAgdWludDhfdFs2OV0gaGF0OworfTsKKworLyoqIFJ1biB0aW1lIHR5cGUgaWRlbnRpZmljYXRpb24gZm9yIHRoZSBub3RpZnkoKSBjYWxsIHBheWxvYWQuICovCitlbnVtIEZpbmdlcnByaW50TXNnVHlwZSA6IGludDMyX3QgeworICBFUlJPUiA9IC0xLAorICBBQ1FVSVJFRCA9IDEsCisgIFRFTVBMQVRFX0VOUk9MTElORyA9IDMsCisgIFRFTVBMQVRFX1JFTU9WRUQgPSA0LAorICBBVVRIRU5USUNBVEVEID0gNSwKKyAgVEVNUExBVEVfRU5VTUVSQVRJTkcgPSA2LAorfTsKKwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdiNzE1NwotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEJpb21ldHJpY3NGaW5nZXJwcmludFYyXzFUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CisKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJpb21ldHJpY3NGaW5nZXJwcmludFYyXzFUYXJnZXRUZXN0LmNwcCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJpb21ldHJpY3NGaW5nZXJwcmludFYyXzFUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTc3NmI0Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQmlvbWV0cmljc0ZpbmdlcnByaW50VjJfMVRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJmaW5nZXJwcmludF9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxjaW50dHlwZXM+CisjaW5jbHVkZSA8ZnV0dXJlPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKK3VzaW5nIGFuZHJvaWQ6OkNvbmRpdGlvbjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpGaW5nZXJwcmludEFjcXVpcmVkSW5mbzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6RmluZ2VycHJpbnRFcnJvcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6UmVxdWVzdFN0YXR1czsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyBhbmRyb2lkOjpNdXRleDsKK3VzaW5nIGFuZHJvaWQ6OnNwOworCituYW1lc3BhY2UgeworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga1RpbWVvdXQgPSAzOworc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGtUaW1lb3V0SW5TZWNvbmRzID0gc3RkOjpjaHJvbm86OnNlY29uZHMoa1RpbWVvdXQpOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtHcm91cElkID0gOTk7CitzdGF0aWMgY29uc3Qgc3RkOjpzdHJpbmcga1RtcERpciA9ICIvZGF0YS9zeXN0ZW0vIjsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrSXRlcmF0aW9ucyA9IDEwMDA7CisKKy8vIFdhaXQgZm9yIGEgY2FsbGJhY2sgdG8gb2NjdXIgKHNpZ25hbGVkIGJ5IHRoZSBnaXZlbiBmdXR1cmUpIHVwIHRvIHRoZQorLy8gcHJvdmlkZWQgdGltZW91dC4gSWYgdGhlIGZ1dHVyZSBpcyBpbnZhbGlkIG9yIHRoZSBjYWxsYmFjayBkb2VzIG5vdCBjb21lCisvLyB3aXRoaW4gdGhlIGdpdmVuIHRpbWUsIHJldHVybnMgZmFsc2UuCit0ZW1wbGF0ZTxjbGFzcyBSZXR1cm5UeXBlPgorYm9vbCB3YWl0Rm9yQ2FsbGJhY2soCisgICAgc3RkOjpmdXR1cmU8UmV0dXJuVHlwZT4gZnV0dXJlLAorICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCA9IGtUaW1lb3V0SW5TZWNvbmRzKSB7CisgIGF1dG8gZXhwaXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsgdGltZW91dDsKKworICBFWFBFQ1RfVFJVRShmdXR1cmUudmFsaWQoKSk7CisgIGlmIChmdXR1cmUudmFsaWQoKSkgeworICAgIHN0ZDo6ZnV0dXJlX3N0YXR1cyBzdGF0dXMgPSBmdXR1cmUud2FpdF91bnRpbChleHBpcmF0aW9uKTsKKyAgICBFWFBFQ1RfTkUoc3RkOjpmdXR1cmVfc3RhdHVzOjp0aW1lb3V0LCBzdGF0dXMpCisgICAgICAgIDw8ICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgY2FsbGJhY2siOworICAgIGlmIChzdGF0dXMgPT0gc3RkOjpmdXR1cmVfc3RhdHVzOjpyZWFkeSkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9CisKKyAgcmV0dXJuIGZhbHNlOworfQorCisvLyBCYXNlIGNhbGxiYWNrIGltcGxlbWVudGF0aW9uIHRoYXQganVzdCBsb2dzIGFsbCBjYWxsYmFja3MgYnkgZGVmYXVsdAorY2xhc3MgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UgOiBwdWJsaWMgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrIHsKKyBwdWJsaWM6CisgIC8vIGltcGxlbWVudCBtZXRob2RzIG9mIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVucm9sbFJlc3VsdCh1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiRW5yb2xsIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkFjcXVpcmVkKHVpbnQ2NF90LCBGaW5nZXJwcmludEFjcXVpcmVkSW5mbywgaW50MzJfdCkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiQWNxdWlyZWQgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uQXV0aGVudGljYXRlZCh1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LAorICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSBvdmVycmlkZSB7CisgICAgQUxPR0QoIkF1dGhlbnRpY2F0ZWQgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRXJyb3IodWludDY0X3QsIEZpbmdlcnByaW50RXJyb3IsIGludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkVycm9yIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICBFWFBFQ1RfVFJVRShmYWxzZSk7ICAvLyBmYWlsIGFueSB0ZXN0IHRoYXQgdHJpZ2dlcnMgYW4gZXJyb3IKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvblJlbW92ZWQodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIlJlbW92ZWQgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRW51bWVyYXRlKHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJFbnVtZXJhdGUgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorfTsKKworY2xhc3MgRW51bWVyYXRlQ2FsbGJhY2sgOiBwdWJsaWMgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25FbnVtZXJhdGUodWludDY0X3QgZGV2aWNlSWQsIHVpbnQzMl90IGZpbmdlcklkLAorICAgICAgdWludDMyX3QgZ3JvdXBJZCwgdWludDMyX3QgcmVtYWluaW5nKSBvdmVycmlkZSB7CisgICAgdGhpcy0+ZGV2aWNlSWQgPSBkZXZpY2VJZDsKKyAgICB0aGlzLT5maW5nZXJJZCA9IGZpbmdlcklkOworICAgIHRoaXMtPmdyb3VwSWQgPSBncm91cElkOworICAgIHRoaXMtPnJlbWFpbmluZyA9IHJlbWFpbmluZzsKKworICAgIGlmKHJlbWFpbmluZyA9PSAwVUwpIHsKKyAgICAgIHByb21pc2Uuc2V0X3ZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHVpbnQ2NF90IGRldmljZUlkOworICB1aW50MzJfdCBmaW5nZXJJZDsKKyAgdWludDMyX3QgZ3JvdXBJZDsKKyAgdWludDMyX3QgcmVtYWluaW5nOworICBzdGQ6OnByb21pc2U8dm9pZD4gcHJvbWlzZTsKK307CisKK2NsYXNzIEVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgRXJyb3JDYWxsYmFjaygKKyAgICAgIGJvb2wgZmlsdGVyRXJyb3JzPWZhbHNlLAorICAgICAgRmluZ2VycHJpbnRFcnJvciBlcnJvclR5cGU9RmluZ2VycHJpbnRFcnJvcjo6RVJST1JfTk9fRVJST1IpIHsKKyAgICB0aGlzLT5maWx0ZXJFcnJvcnMgPSBmaWx0ZXJFcnJvcnM7CisgICAgdGhpcy0+ZXJyb3JUeXBlID0gZXJyb3JUeXBlOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25FcnJvcih1aW50NjRfdCBkZXZpY2VJZCwgRmluZ2VycHJpbnRFcnJvciBlcnJvciwKKyAgICAgIGludDMyX3QgdmVuZG9yQ29kZSkgb3ZlcnJpZGUgeworICAgIGlmICgodGhpcy0+ZmlsdGVyRXJyb3JzICYmIHRoaXMtPmVycm9yVHlwZSA9PSBlcnJvcikgfHwgIXRoaXMtPmZpbHRlckVycm9ycykgeworICAgICAgdGhpcy0+ZGV2aWNlSWQgPSBkZXZpY2VJZDsKKyAgICAgIHRoaXMtPmVycm9yID0gZXJyb3I7CisgICAgICB0aGlzLT52ZW5kb3JDb2RlID0gdmVuZG9yQ29kZTsKKyAgICAgIHByb21pc2Uuc2V0X3ZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIGJvb2wgZmlsdGVyRXJyb3JzOworICBGaW5nZXJwcmludEVycm9yIGVycm9yVHlwZTsKKyAgdWludDY0X3QgZGV2aWNlSWQ7CisgIEZpbmdlcnByaW50RXJyb3IgZXJyb3I7CisgIGludDMyX3QgdmVuZG9yQ29kZTsKKyAgc3RkOjpwcm9taXNlPHZvaWQ+IHByb21pc2U7Cit9OworCitjbGFzcyBSZW1vdmVDYWxsYmFjayA6IHB1YmxpYyBGaW5nZXJwcmludENhbGxiYWNrQmFzZSB7CisgcHVibGljOgorICBSZW1vdmVDYWxsYmFjayh1aW50MzJfdCBncm91cElkKSB7CisgICAgdGhpcy0+cmVtb3ZlR3JvdXBJZCA9IGdyb3VwSWQ7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvblJlbW92ZWQodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCBncm91cElkLAorICAgICAgdWludDMyX3QgcmVtYWluaW5nKSBvdmVycmlkZSB7CisgICAgRVhQRUNUX0VRKHRoaXMtPnJlbW92ZUdyb3VwSWQsIGdyb3VwSWQpOworICAgIGlmKHJlbWFpbmluZyA9PSAwVUwpIHsKKyAgICAgIHByb21pc2Uuc2V0X3ZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHVpbnQzMl90IHJlbW92ZUdyb3VwSWQ7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBwcm9taXNlOworfTsKKworY2xhc3MgRmluZ2VycHJpbnRIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgbVNlcnZpY2UgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQmlvbWV0cmljc0ZpbmdlcnByaW50PigpOworICAgIEFTU0VSVF9GQUxTRShtU2VydmljZSA9PSBudWxscHRyKTsKKworICAgIC8vIENyZWF0ZSBhbiBhY3RpdmUgZ3JvdXAKKyAgICAvLyBGUCBzZXJ2aWNlIGNhbiBvbmx5IHdyaXRlIHRvIC9kYXRhL3N5c3RlbSBkdWUgdG8KKyAgICAvLyBTRUxpbnV4IFBvbGljeSBhbmQgTGludXggRGlyIFBlcm1pc3Npb25zCisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cChrR3JvdXBJZCwga1RtcERpcik7CisgICAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElCaW9tZXRyaWNzRmluZ2VycHJpbnQ+IG1TZXJ2aWNlOworfTsKKworCisvLyBUaGUgc2VydmljZSBzaG91bGQgYmUgcmVhY2hhYmxlLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENvbm5lY3RUZXN0KSB7CisgIHNwPEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlPiBjYiA9IG5ldyBGaW5nZXJwcmludENhbGxiYWNrQmFzZSgpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworfQorCisvLyBTdGFydGluZyB0aGUgc2VydmljZSB3aXRoIG51bGwgY2FsbGJhY2sgc2hvdWxkIHN1Y2NlZWQuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ29ubmVjdE51bGxUZXN0KSB7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KE5VTEwpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKK30KKworLy8gUHJlLWVucm9sbCBzaG91bGQgYWx3YXlzIHJldHVybiB1bmlxdWUsIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSwgbm9uLXplcm8gbnVtYmVyCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgUHJlRW5yb2xsVGVzdCkgeworICBzdGQ6Om1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG07CisKKyAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGtJdGVyYXRpb25zOyArK2kpIHsKKyAgICB1aW50NjRfdCByZXMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obVNlcnZpY2UtPnByZUVucm9sbCgpKTsKKyAgICBFWFBFQ1RfTkUoMFVMLCByZXMpOworICAgIG1bcmVzXSsrOworICAgIEVYUEVDVF9FUSgxVUwsIG1bcmVzXSk7CisgIH0KK30KKworLy8gRW5yb2xsIHdpdGggYW4gaW52YWxpZCAoYWxsIHplcm9lcykgSEFUIHNob3VsZCBmYWlsLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIEVucm9sbEludmFsaWRIYXRUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2soKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICB1aW50OF90IHRva2VuWzY5XTsKKyAgZm9yKGludCBpPTA7IGk8Njk7IGkrKykgeworICAgIHRva2VuW2ldID0gMDsKKyAgfQorCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+ZW5yb2xsKHRva2VuLCBrR3JvdXBJZCwga1RpbWVvdXQpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBBdCBsZWFzdCBvbmUgY2FsbCB0byBvbkVycm9yIHNob3VsZCBvY2N1cgorICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisgIEFTU0VSVF9ORShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9OT19FUlJPUiwgY2ItPmVycm9yKTsKK30KKworLy8gRW5yb2xsIHdpdGggYW4gaW52YWxpZCAobnVsbCkgSEFUIHNob3VsZCBmYWlsLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIEVucm9sbE51bGxUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2soKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICB1aW50OF90IHRva2VuWzY5XTsKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5lbnJvbGwodG9rZW4sIGtHcm91cElkLCBrVGltZW91dCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIEF0IGxlYXN0IG9uZSBjYWxsIHRvIG9uRXJyb3Igc2hvdWxkIG9jY3VyCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKyAgQVNTRVJUX05FKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX05PX0VSUk9SLCBjYi0+ZXJyb3IpOworfQorCisvLyBQb3N0RW5yb2xsIHNob3VsZCBhbHdheXMgcmV0dXJuIHdpdGhpbiAzcworVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFBvc3RFbnJvbGxUZXN0KSB7CisgIHNwPEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlPiBjYiA9IG5ldyBGaW5nZXJwcmludENhbGxiYWNrQmFzZSgpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisKKyAgYXV0byBzdGFydCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnBvc3RFbnJvbGwoKTsKKyAgYXV0byBlbGFwc2VkID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFydDsKKyAgQVNTRVJUX0dFKGtUaW1lb3V0SW5TZWNvbmRzLCBlbGFwc2VkKTsKK30KKworLy8gZ2V0QXV0aGVudGljYXRvcklkIHNob3VsZCBhbHdheXMgcmV0dXJuIG5vbi16ZXJvIG51bWJlcnMKK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBHZXRBdXRoZW50aWNhdG9ySWRUZXN0KSB7CisgIFJldHVybjx1aW50NjRfdD4gcmVzID0gbVNlcnZpY2UtPmdldEF1dGhlbnRpY2F0b3JJZCgpOworICBFWFBFQ1RfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmVzKSk7Cit9CisKKy8vIEVudW1lcmF0ZSBzaG91bGQgYWx3YXlzIHRyaWdnZXIgb25FbnVtZXJhdGVkKGZpZD0wLCByZW09MCkgd2hlbiB0aGVyZSBhcmUgbm8gZmluZ2VycHJpbnRzCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgRW51bWVyYXRlVGVzdCkgeworICBzcDxFbnVtZXJhdGVDYWxsYmFjaz4gY2IgPSBuZXcgRW51bWVyYXRlQ2FsbGJhY2soKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICAvLyBDYWxsYmFjayB3aWxsIHJldHVybiB3aGVuIHJlbT0wIGlzIGZvdW5kCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+ZW51bWVyYXRlKCk7CisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKyAgRVhQRUNUX0VRKDBVTCwgY2ItPmZpbmdlcklkKTsKKyAgRVhQRUNUX0VRKDBVTCwgY2ItPnJlbWFpbmluZyk7CisKK30KKworLy8gUmVtb3ZlIHNob3VsZCBzdWNjZWVkIG9uIGFueSBpbnB1dHMKKy8vIEF0IGxlYXN0IG9uZSBjYWxsYmFjayB3aXRoICJyZW1haW5pbmc9MCIgc2hvdWxkIG9jY3VyCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgUmVtb3ZlRmluZ2VycHJpbnRUZXN0KSB7CisgIC8vIFJlZ2lzdGVyIGNhbGxiYWNrCisgIHNwPFJlbW92ZUNhbGxiYWNrPiBjYiA9IG5ldyBSZW1vdmVDYWxsYmFjayhrR3JvdXBJZCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gUmVtb3ZlIGEgZmluZ2VycHJpbnQKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5yZW1vdmUoa0dyb3VwSWQsIDEpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBBdCBsZWFzdCBvbmUgY2FsbCB0byBvblJlbW92ZSB3aXRoIHJlbWFpbmluZz0wIHNob3VsZCBvY2N1cgorICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKKy8vIFJlbW92ZSBzaG91bGQgYWNjZXB0IDAgdG8gZGVsZXRlIGFsbCBmaW5nZXJwcmludHMKKy8vIEF0IGxlYXN0IG9uZSBjYWxsYmFjayB3aXRoICJyZW1haW5pbmc9MCIgc2hvdWxkIG9jY3VyLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFJlbW92ZUFsbEZpbmdlcnByaW50c1Rlc3QpIHsKKyAgLy8gUmVnaXN0ZXIgY2FsbGJhY2sKKyAgc3A8UmVtb3ZlQ2FsbGJhY2s+IGNiID0gbmV3IFJlbW92ZUNhbGxiYWNrKGtHcm91cElkKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICAvLyBSZW1vdmUgYWxsIGZpbmdlcnByaW50cworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnJlbW92ZShrR3JvdXBJZCwgMCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKKy8vIEFjdGl2ZSBncm91cCBzaG91bGQgc3VjY2Vzc2Z1bGx5IHNldCB0byBhIHdyaXRhYmxlIGxvY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFNldEFjdGl2ZUdyb3VwVGVzdCkgeworICAvLyBDcmVhdGUgYW4gYWN0aXZlIGdyb3VwCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoMiwga1RtcERpcik7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIFJlc2V0IGFjdGl2ZSBncm91cAorICByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKK30KKworLy8gQWN0aXZlIGdyb3VwIHNob3VsZCBmYWlsIHRvIHNldCB0byBhbiB1bndyaXRhYmxlIGxvY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFNldEFjdGl2ZUdyb3VwVW53cml0YWJsZVRlc3QpIHsKKyAgLy8gQ3JlYXRlIGFuIGFjdGl2ZSBncm91cCB0byBhbiB1bndyaXRhYmxlIGxvY2F0aW9uIChkZXZpY2Ugcm9vdCBkaXIpCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoMywgIi8iKTsKKyAgQVNTRVJUX05FKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gUmVzZXQgYWN0aXZlIGdyb3VwCisgIHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cChrR3JvdXBJZCwga1RtcERpcik7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworfQorCisvLyBBY3RpdmUgZ3JvdXAgc2hvdWxkIGZhaWwgdG8gc2V0IHRvIGEgbnVsbCBsb2NhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBTZXRBY3RpdmVHcm91cE51bGxUZXN0KSB7CisgIC8vIENyZWF0ZSBhbiBhY3RpdmUgZ3JvdXAgdG8gYSBudWxsIGxvY2F0aW9uLgorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKDQsIG51bGxwdHIpOworICBBU1NFUlRfTkUoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBSZXNldCBhY3RpdmUgZ3JvdXAKKyAgcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7Cit9CisKKy8vIENhbmNlbCBzaG91bGQgYWx3YXlzIHJldHVybiBFUlJPUl9DQU5DRUxFRCBmcm9tIGFueSBzdGFydGluZyBzdGF0ZSBpbmNsdWRpbmcKKy8vIHRoZSBJRExFIHN0YXRlLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENhbmNlbFRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5jYW5jZWwoKTsKKyAgLy8gY2hlY2sgdGhhdCB3ZSB3ZXJlIGFibGUgdG8gbWFrZSBhbiBJUEMgcmVxdWVzdCBzdWNjZXNzZnVsbHkKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gbWFrZSBzdXJlIGNhbGxiYWNrIHdhcyBpbnZva2VkIHdpdGhpbiBrVGltZW91dEluU2Vjb25kcworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisgIC8vIGNoZWNrIGVycm9yIHNob3VsZCBiZSBFUlJPUl9DQU5DRUxFRAorICBBU1NFUlRfRVEoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQsIGNiLT5lcnJvcik7Cit9CisKKy8vIEEgY2FsbCB0byBjYW5jZWwgc2hvdWxkIHN1Y2NlZWQgZHVyaW5nIGVucm9sbC4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxFbnJvbGxUZXN0KSB7CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKHRydWUsIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFUsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIHVpbnQ4X3QgdG9rZW5bNjldOworICByZXMgPSBtU2VydmljZS0+ZW5yb2xsKHRva2VuLCBrR3JvdXBJZCwga1RpbWVvdXQpOworICAvLyBjaGVjayB0aGF0IHdlIHdlcmUgYWJsZSB0byBtYWtlIGFuIElQQyByZXF1ZXN0IHN1Y2Nlc3NmdWxseQorICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworCisgIC8vIGNoZWNrIGVycm9yIHNob3VsZCBiZSBFUlJPUl9DQU5DRUxFRAorICBBU1NFUlRfRVEoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQsIGNiLT5lcnJvcik7Cit9CisKKy8vIEEgY2FsbCB0byBjYW5jZWwgc2hvdWxkIHN1Y2NlZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENhbmNlbEF1dGhUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5hdXRoZW50aWNhdGUoMCwga0dyb3VwSWQpOworICAvLyBjaGVjayB0aGF0IHdlIHdlcmUgYWJsZSB0byBtYWtlIGFuIElQQyByZXF1ZXN0IHN1Y2Nlc3NmdWxseQorICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworCisgIC8vIGNoZWNrIGVycm9yIHNob3VsZCBiZSBFUlJPUl9DQU5DRUxFRAorICBBU1NFUlRfRVEoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQsIGNiLT5lcnJvcik7Cit9CisKKy8vIEEgY2FsbCB0byBjYW5jZWwgc2hvdWxkIHN1Y2NlZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENhbmNlbFJlbW92ZVRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICAvLyBSZW1vdmUgYSBmaW5nZXJwcmludAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnJlbW92ZShrR3JvdXBJZCwgMSk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIHJlcyA9IG1TZXJ2aWNlLT5jYW5jZWwoKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gbWFrZSBzdXJlIGNhbGxiYWNrIHdhcyBpbnZva2VkIHdpdGhpbiBrVGltZW91dEluU2Vjb25kcworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisKKyAgLy8gY2hlY2sgZXJyb3Igc2hvdWxkIGJlIEVSUk9SX0NBTkNFTEVECisgIEFTU0VSVF9FUShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCwgY2ItPmVycm9yKTsKK30KKworLy8gQSBjYWxsIHRvIGNhbmNlbCBzaG91bGQgc3VjY2VlZCBkdXJpbmcgYXV0aGVudGljYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ2FuY2VsUmVtb3ZlQWxsVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKHRydWUsIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFUsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIC8vIFJlbW92ZSBhIGZpbmdlcnByaW50CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+cmVtb3ZlKGtHcm91cElkLCAwKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgcmV0dXJuIHN0YXR1czsKK30KKwpkaWZmIC0tZ2l0IGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9ibHVldG9vdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5icAppbmRleCBmZWMyMjY0Li40NmE0OTg3IDEwMDY0NAotLS0gYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5icAorKysgYi9ibHVldG9vdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMjQsNiArMjQsNyBAQAogICAgICAgICAidmVuZG9yX2ludGVyZmFjZS5jYyIsCiAgICAgXSwKICAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5mcmFtZXdvcmtzLnNjaGVkdWxlcnNlcnZpY2VAMS4wIiwKICAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMCIsCiAgICAgICAgICJsaWJiYXNlIiwKICAgICAgICAgImxpYmN1dGlscyIsCkBAIC00OCw2ICs0OSw3IEBACiAgICAgXSwKICAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKICAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5mcmFtZXdvcmtzLnNjaGVkdWxlcnNlcnZpY2VAMS4wIiwKICAgICAgICAgImxpYmxvZyIsCiAgICAgXSwKIH0KQEAgLTg0LDkgKzg2LDExIEBACiAgICAgICAgICJ0ZXN0IiwKICAgICBdLAogICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmZyYW1ld29ya3Muc2NoZWR1bGVyc2VydmljZUAxLjAiLAogICAgICAgICAibGliYmFzZSIsCiAgICAgICAgICJsaWJoaWRsYmFzZSIsCiAgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAogICAgIF0sCiAgICAgc3RhdGljX2xpYnM6IFsKICAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoLWFzeW5jIiwKZGlmZiAtLWdpdCBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKaW5kZXggMzgyOTRjNy4uMmRjYjA2NyAxMDA2NDQKLS0tIGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKKysrIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTM1LDUgKzM1LDYgQEAKICAgbGliaGlkbGJhc2UgXAogICBsaWJoaWRsdHJhbnNwb3J0IFwKICAgYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wIFwKKyAgYW5kcm9pZC5mcmFtZXdvcmtzLnNjaGVkdWxlcnNlcnZpY2VAMS4wXAogCiBpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L2FzeW5jX2ZkX3dhdGNoZXIuY2MKaW5kZXggMDVhYzUzNy4uYWI4ZDU1NSAxMDA2NDQKLS0tIGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L2FzeW5jX2ZkX3dhdGNoZXIuY2MKKysrIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L2FzeW5jX2ZkX3dhdGNoZXIuY2MKQEAgLTE0LDYgKzE0LDggQEAKIC8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogLy8KIAorI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjAtaW1wbCIKKwogI2luY2x1ZGUgImFzeW5jX2ZkX3dhdGNoZXIuaCIKIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTIyLDEzICsyNCwxOCBAQAogI2luY2x1ZGUgPG1hcD4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dXRpbHMvTG9nLmg+CiAjaW5jbHVkZSA8dmVjdG9yPgogI2luY2x1ZGUgImZjbnRsLmgiCiAjaW5jbHVkZSAic3lzL3NlbGVjdC5oIgogI2luY2x1ZGUgInVuaXN0ZC5oIgogCisjaW5jbHVkZSA8YW5kcm9pZC9mcmFtZXdvcmtzL3NjaGVkdWxlcnNlcnZpY2UvMS4wL0lTY2hlZHVsaW5nUG9saWN5U2VydmljZS5oPgorCiBzdGF0aWMgY29uc3QgaW50IElOVkFMSURfRkQgPSAtMTsKIAorc3RhdGljIGNvbnN0IGludCBCVF9SVF9QUklPUklUWSA9IDE7CisKIG5hbWVzcGFjZSBhbmRyb2lkIHsKIG5hbWVzcGFjZSBoYXJkd2FyZSB7CiBuYW1lc3BhY2UgYmx1ZXRvb3RoIHsKQEAgLTExMiw2ICsxMTksMjEgQEAKIH0KIAogdm9pZCBBc3luY0ZkV2F0Y2hlcjo6VGhyZWFkUm91dGluZSgpIHsKKyAgdXNpbmcgOjphbmRyb2lkOjpmcmFtZXdvcmtzOjpzY2hlZHVsZXJzZXJ2aWNlOjpWMV8wOjpJU2NoZWR1bGluZ1BvbGljeVNlcnZpY2U7CisgIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKKyAgc3A8SVNjaGVkdWxpbmdQb2xpY3lTZXJ2aWNlPiBtYW5hZ2VyID0gSVNjaGVkdWxpbmdQb2xpY3lTZXJ2aWNlOjpnZXRTZXJ2aWNlKCk7CisgIGlmIChtYW5hZ2VyID09IG51bGxwdHIpIHsKKyAgICBBTE9HRSgiJXM6IENvdWxkbid0IGdldCBzY2hlZHVsZXIgbWFuYWdlciB0byBzZXQgU0NIRURfRklGTy4iLCBfX2Z1bmNfXyk7CisgIH0gZWxzZSB7CisgICAgUmV0dXJuPGJvb2w+IHJldCA9IG1hbmFnZXItPnJlcXVlc3RQcmlvcml0eShnZXRwaWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldHRpZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRfUlRfUFJJT1JJVFkpOworICAgIGlmICghcmV0LmlzT2soKSB8fCAhcmV0KSB7CisgICAgICBBTE9HRSgiJXMgdW5hYmxlIHRvIHNldCBTQ0hFRF9GSUZPIGZvciBwaWQgJWQsIHRpZCAlZCIsIF9fZnVuY19fLAorICAgICAgICAgICAgZ2V0cGlkKCksIGdldHRpZCgpKTsKKyAgICB9CisgIH0KKwogICB3aGlsZSAocnVubmluZ18pIHsKICAgICBmZF9zZXQgcmVhZF9mZHM7CiAgICAgRkRfWkVSTygmcmVhZF9mZHMpOwpkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAgYi9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmNwcAppbmRleCA4M2VlMWQyLi45YTkwMDc2IDEwMDY0NAotLS0gYS9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmNwcAorKysgYi9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmNwcApAQCAtMSwzICsxLDE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KICNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5ib290QDEuMC1pbXBsIgogCiAjaW5jbHVkZSA8bG9nL2xvZy5oPgpkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5oIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5oCmluZGV4IGJlOGE4MTQuLjNkNjY4ZGMgMTAwNjQ0Ci0tLSBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaAorKysgYi9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmgKQEAgLTEsMyArMSwxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCiAjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQk9PVF9WMV8wX0JPT1RDT05UUk9MX0gKICNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CT09UX1YxXzBfQk9PVENPTlRST0xfSAogCmRpZmYgLS1naXQgYS9ib290LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcAppbmRleCAyNDdlNDBlLi5mMzk5NmVmIDEwMDY0NAotLS0gYS9ib290LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCisrKyBiL2Jvb3QvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTEsMyArMSwxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCiAjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYm9vdEAxLjAtc2VydmljZSIKIAogI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYm9vdC8xLjAvSUJvb3RDb250cm9sLmg+CmRpZmYgLS1naXQgYS9ib290LzEuMC92dHMvQW5kcm9pZC5icCBiL2Jvb3QvMS4wL3Z0cy9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZWY0NmIKLS0tIC9kZXYvbnVsbAorKysgYi9ib290LzEuMC92dHMvQW5kcm9pZC5icApAQCAtMCwwICsxLDMgQEAKK3N1YmRpcnMgPSBbCisgICAgIioiCitdCmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL0FuZHJvaWQubWsgYi9ib290LzEuMC92dHMvQW5kcm9pZC5tawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCnJlbmFtZSB0byBib290LzEuMC92dHMvQW5kcm9pZC5tawpkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2Jvb3QvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIxNGY1NAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEJvb3RWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYm9vdEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJvb3RWMV8wVGFyZ2V0VGVzdC5jcHAgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCb290VjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0OGE5NWQKLS0tIC9kZXYvbnVsbAorKysgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCb290VjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJib290X2hpZGxfaGFsX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jvb3QvMS4wL0lCb290Q29udHJvbC5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJvb3Q6OlYxXzA6OklCb290Q29udHJvbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJvb3Q6OlYxXzA6OkNvbW1hbmRSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpib290OjpWMV8wOjpCb29sUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Ym9vdDo6VjFfMDo6U2xvdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIHRoZSBCb290IEhJREwgSEFMLgorY2xhc3MgQm9vdEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBib290ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUJvb3RDb250cm9sPigpOworICAgIEFTU0VSVF9ORShib290LCBudWxscHRyKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3A8SUJvb3RDb250cm9sPiBib290OworfTsKKworYXV0byBnZW5lcmF0ZV9jYWxsYmFjayhDb21tYW5kUmVzdWx0ICpkZXN0KSB7CisgIHJldHVybiBbPV0oQ29tbWFuZFJlc3VsdCBjcikgeyAqZGVzdCA9IGNyOyB9OworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6Z2V0TnVtYmVyU2xvdHMoKS4KK1RFU1RfRihCb290SGlkbFRlc3QsIEdldE51bWJlclNsb3RzKSB7CisgIHVpbnQzMl90IHNsb3RzID0gYm9vdC0+Z2V0TnVtYmVyU2xvdHMoKTsKKyAgRVhQRUNUX0xFKCh1aW50MzJfdCkyLCBzbG90cyk7Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290OjpnZXRDdXJyZW50U2xvdCgpLgorVEVTVF9GKEJvb3RIaWRsVGVzdCwgR2V0Q3VycmVudFNsb3QpIHsKKyAgU2xvdCBjdXJTbG90ID0gYm9vdC0+Z2V0Q3VycmVudFNsb3QoKTsKKyAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICBFWFBFQ1RfTFQoY3VyU2xvdCwgc2xvdHMpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6bWFya0Jvb3RTdWNjZXNzZnVsKCkuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBNYXJrQm9vdFN1Y2Nlc3NmdWwpIHsKKyAgQ29tbWFuZFJlc3VsdCBjcjsKKyAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9IGJvb3QtPm1hcmtCb290U3VjY2Vzc2Z1bChnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIGlmIChjci5zdWNjZXNzKSB7CisgICAgU2xvdCBjdXJTbG90ID0gYm9vdC0+Z2V0Q3VycmVudFNsb3QoKTsKKyAgICBCb29sUmVzdWx0IHJldCA9IGJvb3QtPmlzU2xvdE1hcmtlZFN1Y2Nlc3NmdWwoY3VyU2xvdCk7CisgICAgRVhQRUNUX0VRKEJvb2xSZXN1bHQ6OlRSVUUsIHJldCk7CisgIH0KK30KKworLy8gU2FuaXR5IGNoZWNrIEJvb3Q6OnNldEFjdGl2ZUJvb3RTbG90KCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihCb290SGlkbFRlc3QsIFNldEFjdGl2ZUJvb3RTbG90KSB7CisgIGZvciAoU2xvdCBzID0gMDsgcyA8IDI7IHMrKykgeworICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9IGJvb3QtPnNldEFjdGl2ZUJvb3RTbG90KHMsIGdlbmVyYXRlX2NhbGxiYWNrKCZjcikpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICB9CisgIHsKKyAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIGZsYWdzIHRvIGF2b2lkIHByb2JsZW1zIG9uIHJlYm9vdAorICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9IGJvb3QtPm1hcmtCb290U3VjY2Vzc2Z1bChnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfVFJVRShjci5zdWNjZXNzKTsKKyAgfQorICB7CisgICAgQ29tbWFuZFJlc3VsdCBjcjsKKyAgICB1aW50MzJfdCBzbG90cyA9IGJvb3QtPmdldE51bWJlclNsb3RzKCk7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9CisgICAgICAgIGJvb3QtPnNldEFjdGl2ZUJvb3RTbG90KHNsb3RzLCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoZmFsc2UsIGNyLnN1Y2Nlc3MpOworICB9Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290OjpzZXRTbG90QXNVbmJvb3RhYmxlKCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihCb290SGlkbFRlc3QsIFNldFNsb3RBc1VuYm9vdGFibGUpIHsKKyAgeworICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgU2xvdCBjdXJTbG90ID0gYm9vdC0+Z2V0Q3VycmVudFNsb3QoKTsKKyAgICBTbG90IG90aGVyU2xvdCA9IGN1clNsb3QgPyAwIDogMTsKKyAgICBSZXR1cm48dm9pZD4gcmVzdWx0ID0KKyAgICAgICAgYm9vdC0+c2V0U2xvdEFzVW5ib290YWJsZShvdGhlclNsb3QsIGdlbmVyYXRlX2NhbGxiYWNrKCZjcikpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICAgIGlmIChjci5zdWNjZXNzKSB7CisgICAgICBFWFBFQ1RfRVEoQm9vbFJlc3VsdDo6RkFMU0UsIGJvb3QtPmlzU2xvdEJvb3RhYmxlKG90aGVyU2xvdCkpOworCisgICAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIGZsYWdzIHRvIGF2b2lkIHByb2JsZW1zIG9uIHJlYm9vdAorICAgICAgcmVzdWx0ID0gYm9vdC0+c2V0QWN0aXZlQm9vdFNsb3Qob3RoZXJTbG90LCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICAgICAgRVhQRUNUX1RSVUUoY3Iuc3VjY2Vzcyk7CisgICAgICByZXN1bHQgPSBib290LT5zZXRBY3RpdmVCb290U2xvdChjdXJTbG90LCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICAgICAgRVhQRUNUX1RSVUUoY3Iuc3VjY2Vzcyk7CisgICAgICByZXN1bHQgPSBib290LT5tYXJrQm9vdFN1Y2Nlc3NmdWwoZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICAgIEVYUEVDVF9UUlVFKGNyLnN1Y2Nlc3MpOworICAgIH0KKyAgfQorICB7CisgICAgQ29tbWFuZFJlc3VsdCBjcjsKKyAgICB1aW50MzJfdCBzbG90cyA9IGJvb3QtPmdldE51bWJlclNsb3RzKCk7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9CisgICAgICAgIGJvb3QtPnNldFNsb3RBc1VuYm9vdGFibGUoc2xvdHMsIGdlbmVyYXRlX2NhbGxiYWNrKCZjcikpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShmYWxzZSwgY3Iuc3VjY2Vzcyk7CisgIH0KK30KKworLy8gU2FuaXR5IGNoZWNrIEJvb3Q6OmlzU2xvdEJvb3RhYmxlKCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihCb290SGlkbFRlc3QsIElzU2xvdEJvb3RhYmxlKSB7CisgIGZvciAoU2xvdCBzID0gMDsgcyA8IDI7IHMrKykgeworICAgIEVYUEVDVF9ORShCb29sUmVzdWx0OjpJTlZBTElEX1NMT1QsIGJvb3QtPmlzU2xvdEJvb3RhYmxlKHMpKTsKKyAgfQorICB1aW50MzJfdCBzbG90cyA9IGJvb3QtPmdldE51bWJlclNsb3RzKCk7CisgIEVYUEVDVF9FUShCb29sUmVzdWx0OjpJTlZBTElEX1NMT1QsIGJvb3QtPmlzU2xvdEJvb3RhYmxlKHNsb3RzKSk7Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290Ojppc1Nsb3RNYXJrZWRTdWNjZXNzZnVsKCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihCb290SGlkbFRlc3QsIElzU2xvdE1hcmtlZFN1Y2Nlc3NmdWwpIHsKKyAgZm9yIChTbG90IHMgPSAwOyBzIDwgMjsgcysrKSB7CisgICAgRVhQRUNUX05FKEJvb2xSZXN1bHQ6OklOVkFMSURfU0xPVCwgYm9vdC0+aXNTbG90TWFya2VkU3VjY2Vzc2Z1bChzKSk7CisgIH0KKyAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICBFWFBFQ1RfRVEoQm9vbFJlc3VsdDo6SU5WQUxJRF9TTE9ULCBib290LT5pc1Nsb3RNYXJrZWRTdWNjZXNzZnVsKHNsb3RzKSk7Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290OjpnZXRTdWZmaXgoKSBvbiBnb29kIGFuZCBiYWQgaW5wdXRzLgorVEVTVF9GKEJvb3RIaWRsVGVzdCwgR2V0U3VmZml4KSB7CisgICAgc3RyaW5nIHN1ZmZpeFN0cjsKKyAgICB2ZWN0b3I8c3RyaW5nPiBjb3JyZWN0U3VmZml4ZXMgPSB7Il9hIiwgIl9iIn07CisgICAgYXV0byBjYiA9IFsmXShoaWRsX3N0cmluZyBzdWZmaXgpIHsgc3VmZml4U3RyID0gc3VmZml4LmNfc3RyKCk7IH07CisgICAgZm9yIChTbG90IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgICAgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5nZXRTdWZmaXgoaSwgY2IpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX0VRKDAsIHN1ZmZpeFN0ci5jb21wYXJlKGNvcnJlY3RTdWZmaXhlc1tpXSkpOworICAgIH0KKyAgICB7CisgICAgICAgIHN0cmluZyBlbXB0eVN1ZmZpeCA9ICIiOworICAgICAgICBSZXR1cm48dm9pZD4gcmVzdWx0ID0gYm9vdC0+Z2V0U3VmZml4KGJvb3QtPmdldE51bWJlclNsb3RzKCksIGNiKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9FUSgwLCBzdWZmaXhTdHIuY29tcGFyZShlbXB0eVN1ZmZpeCkpOworICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9ib290L0FuZHJvaWQuYnAgYi9ib290L0FuZHJvaWQuYnAKaW5kZXggYmJiM2U0Yi4uNjdhZjViYiAxMDA2NDQKLS0tIGEvYm9vdC9BbmRyb2lkLmJwCisrKyBiL2Jvb3QvQW5kcm9pZC5icApAQCAtMSw0ICsxLDYgQEAKIC8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KIHN1YmRpcnMgPSBbCiAgICAgIjEuMCIsCisgICAgIjEuMC92dHMiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAogXQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQuYnAgYi9icm9hZGNhc3RyYWRpby8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGM0YjIyCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw4NCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQnJvYWRjYXN0UmFkaW8uaGFsIiwKKyAgICAgICAgIklCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaGFsIiwKKyAgICAgICAgIklUdW5lci5oYWwiLAorICAgICAgICAiSVR1bmVyQ2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Ccm9hZGNhc3RSYWRpb0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnJvYWRjYXN0UmFkaW9GYWN0b3J5QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9UdW5lckFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvVHVuZXJDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JSHdCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JuSHdCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JwSHdCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JzQnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUh3QnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQm5Id0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JwSHdCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cc0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lId1R1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQm5Id1R1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnBId1R1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnNUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUh3VHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JuSHdUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnBId1R1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cc1R1bmVyQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpby5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU5OWIxMAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaGFsCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOworCitpbXBvcnQgSVR1bmVyQ2FsbGJhY2s7CitpbXBvcnQgSVR1bmVyOworCitpbnRlcmZhY2UgSUJyb2FkY2FzdFJhZGlvIHsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGltcGxlbWVudGF0aW9uIHByb3BlcnRpZXMuCisgICAgICogQHJldHVybiByZXN1bHQgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiBPSyBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogQHJldHVybiBwcm9wZXJ0aWVzIEEgUHJvcGVydGllcyBzdHJ1Y3R1cmUgY29udGFpbmluZyBpbXBsZW1lbnRhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBhbmQgY2FwYWJpbGl0aWVzLgorICAgICAqLworICAgIGdldFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIFByb3BlcnRpZXMgcHJvcGVydGllcyk7CisKKyAgICAvKioKKyAgICAgKiBPcGVuIGEgdHVuZXIgaW50ZXJmYWNlIGZvciB0aGUgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24uCisgICAgICogSWYgbm8gb3RoZXIgdHVuZXIgaXMgb3BlbmVkLCB0aGlzIHdpbGwgcG93ZXIgb24gdGhlIHJhZGlvIGhhcmR3YXJlLgorICAgICAqIFRoZSBoYXJkd2FyZSBtdXN0IGJlIHBvd2VyZWQgZG93biB3aGVuIGFsbCB0dW5lciBpbnRlcmZhY2UgYXJlIHJlbGVhc2VkLgorICAgICAqIEBwYXJhbSBjb25maWcgQSBCYW5kQ29uZmlnIHN0cnVjdCBjb250YWluaW5nIHRoZSBiYW5kIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkKKyAgICAgKiBAcGFyYW0gYXVkaW8gVHJ1ZSBpZiB0aGlzIHR1bmVyIG11c3QgYmUgdXNlZCBmb3IgbGl2ZSByYWRpbyBsaXN0ZW5pbmcgYW5kCisgICAgICogICAgICAgICAgICAgIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gdGhlIHJhZGlvIGF1ZGlvIHNvdXJjZS4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgdGhlIGNhbGxiYWNrIGludGVyZmFjZQorICAgICAqIEByZXR1cm4gcmVzdWx0IE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIGNvbmZpZ3VyYXRpb24gcmVxdWVzdGVkIGlzIGludmFsaWQsCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogQHJldHVybiB0dW5lciBUaGUgaW50ZXJmYWNlIHRvIGNvbnRyb2wgdGhlIHR1bmVyCisgICAgICoKKyAgICAgKiBDYWxsYmFjayBJVHVuZXJDYWxsYmFjay5Db25maWdDaGFuZ2VkIE1VU1QgYmUgY2FsbGVkIG9uY2UgdGhlCisgICAgICogY29uZmlndXJhdGlvbiBpcyBhcHBsaWVkIG9yIGEgZmFpbHVyZSBvY2N1cnMgb3IgYWZ0ZXIgYSB0aW1lIG91dC4KKyAgICAgKi8KKyAgICBvcGVuVHVuZXIoQmFuZENvbmZpZyBjb25maWcsIGJvb2wgYXVkaW8sIElUdW5lckNhbGxiYWNrIGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgSVR1bmVyIHR1bmVyKTsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU4MmIwNwotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworaW1wb3J0IElCcm9hZGNhc3RSYWRpbzsKKworaW50ZXJmYWNlIElCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgeworCisgICAgLyoqCisgICAgICogQ29ubmVjdHMgdG8gYSBicm9hZGNhc3QgcmFkaW8gSEFMIG1vZHVsZSBmb3IgYSBnaXZlbiBjbGFzcworICAgICAqIChBTS9GTSwgU2F0ZWxsaXRlLCBEQUIpLgorICAgICAqCisgICAgICogQHBhcmFtIGNsYXNzSWQgQ2xhc3Mgb2YgdGhlIG1vZHVsZSB0byBjb25uZWN0IHRvIC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuIFJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgbW9kdWxlIGZvdW5kLAorICAgICAqICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIG9wZW5pbmcgdGhlIGhhcmR3YXJlCisgICAgICogICAgICAgICBtb2R1bGUuCisgICAgICogQHJldHVybiByZXN1bHQgdGhlIGludGVyZmFjZSBmb3IgdGhlIGNyZWF0ZWQgbW9kdWxlLgorICAgICAqLworICAgIGNvbm5lY3RNb2R1bGUoQ2xhc3MgY2xhc3NJZCkKKyAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgSUJyb2FkY2FzdFJhZGlvIHJlc3VsdCk7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmJiZDdhCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oYWwKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOworCitpbXBvcnQgSVR1bmVyQ2FsbGJhY2s7CisKK2ludGVyZmFjZSBJVHVuZXIgeworCisgICAgLyoqCisgICAgICogQXBwbHkgY3VycmVudCByYWRpbyBiYW5kIGNvbmZpZ3VyYXRpb24gKGJhbmQsIHJhbmdlLCBjaGFubmVsIHNwYWNpbmcuLi4pLgorICAgICAqIEF1dG9tYXRpY2FsbHkgY2FuY2VscyBwZW5kaW5nIHNjYW4sIHN0ZXAgb3IgdHVuZS4KKyAgICAgKiBJVHVuZXJDYWxsYmFjay5jb25maWdDaGFuZ2UoKSBtZXRob2QgTVVTVCBiZSBjYWxsZWQgb25jZSB0aGUKKyAgICAgKiBjb25maWd1cmF0aW9uIGlzIGFwcGxpZWQgb3IgYSBmYWlsdXJlIG9jY3VycyBvciBhZnRlciBhIHRpbWUgb3V0LgorICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGJhbmQgY29uZmlndXJhdGlvbiB0byBhcHBseS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiBjb25maWd1cmF0aW9uIGNvdWxkIGJlIGFwcGxpZWQKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBjb25maWd1cmF0aW9uIHJlcXVlc3RlZCBpcyBpbnZhbGlkCisgICAgICoKKyAgICAgKi8KKyAgICBzZXRDb25maWd1cmF0aW9uKEJhbmRDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBjdXJyZW50IHJhZGlvIGJhbmQgY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB2YWxpZCBjb25maWd1cmF0aW9uIGlzIHJldHVybmVkLAorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEBwYXJhbSBjb25maWcgQ3VycmVudCBiYW5kIGNvbmZpZ3VyYXRpb24KKyAgICAgKi8KKyAgICBnZXRDb25maWd1cmF0aW9uKCkgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQsIEJhbmRDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHNjYW5uaW5nIHVwIHRvIG5leHQgdmFsaWQgc3RhdGlvbi4KKyAgICAgKiBTaGFsbCBiZSBjYWxsZWQgb25seSB3aGVuIGEgdmFsaWQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBhcHBsaWVkLgorICAgICAqIEF1dG9tYXRpY2FsbHkgY2FuY2VscyBwZW5kaW5nIHNjYW4sIHN0ZXAgb3IgdHVuZS4KKyAgICAgKiBJVHVuZXJDYWxsYmFjay50dW5lQ29tcGxldGUoKSBNVVNUIGJlIGNhbGxlZCBvbmNlIGxvY2tlZCBvbiBhIHN0YXRpb24KKyAgICAgKiBvciBhZnRlciBhIHRpbWUgb3V0IG9yIGZ1bGwgYmFuZCBzY2FuIGlmIG5vIHN0YXRpb24gZm91bmQuCisgICAgICogVGhlIHN0YXR1cyBzaG91bGQgaW5kaWNhdGUgaWYgYSB2YWxpZCBzdGF0aW9uIGlzIHR1bmVkIG9yIG5vdC4KKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIFVQIG9yIERPV04uCisgICAgICogQHBhcmFtIHNraXBTdWJDaGFubmVsIHZhbGlkIGZvciBIRCByYWRpbyBvciBkaWdpdGFsIHJhZGlvcyBvbmx5OgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmUgc3ViIGNoYW5uZWxzIChlLmcgU1BTIGZvciBIRCByYWRpbykuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgc2NhbiBzdWNjZXNzZnVsbHkgc3RhcnRlZAorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpZiBhbm90aGVyIGVycm9yIG9jY3VycworICAgICAqLworICAgIHNjYW4oRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBza2lwU3ViQ2hhbm5lbCkgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogTW92ZSBvbmUgY2hhbm5lbCBzcGFjaW5nIHVwIG9yIGRvd24uCisgICAgICogTXVzdCBiZSBjYWxsZWQgd2hlbiBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gYXBwbGllZC4KKyAgICAgKiBBdXRvbWF0aWNhbGx5IGNhbmNlbHMgcGVuZGluZyBzY2FuLCBzdGVwIG9yIHR1bmUuCisgICAgICogSVR1bmVyQ2FsbGJhY2sudHVuZUNvbXBsZXRlKCkgTVVTVCBiZSBjYWxsZWQgb25jZSBsb2NrZWQgb24gYSBzdGF0aW9uCisgICAgICogb3IgYWZ0ZXIgYSB0aW1lIG91dCBvciBmdWxsIGJhbmQgc2NhbiBpZiBubyBzdGF0aW9uIGZvdW5kLgorICAgICAqIFRoZSBzdGF0dXMgc2hvdWxkIGluZGljYXRlIGlmIGEgdmFsaWQgc3RhdGlvbiBpcyB0dW5lZCBvciBub3QuCisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBVUCBvciBET1dOLgorICAgICAqIEBwYXJhbSBza2lwU3ViQ2hhbm5lbCB2YWxpZCBmb3IgSEQgcmFkaW8gb3IgZGlnaXRhbCByYWRpb3Mgb25seToKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlIHN1YiBjaGFubmVscyAoZS5nIFNQUyBmb3IgSEQgcmFkaW8pLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBzdGVwKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFR1bmUgdG8gc3BlY2lmaWVkIGNoYW5uZWwuCisgICAgICogTXVzdCBiZSBjYWxsZWQgd2hlbiBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gYXBwbGllZC4KKyAgICAgKiBBdXRvbWF0aWNhbGx5IGNhbmNlbHMgcGVuZGluZyBzY2FuLCBzdGVwIG9yIHR1bmUuCisgICAgICogSVR1bmVyQ2FsbGJhY2sudHVuZUNvbXBsZXRlKCkgTVVTVCBiZSBjYWxsZWQgb25jZSBsb2NrZWQgb24gYSBzdGF0aW9uCisgICAgICogb3IgYWZ0ZXIgYSB0aW1lIG91dCBvciBmdWxsIGJhbmQgc2NhbiBpZiBubyBzdGF0aW9uIGZvdW5kLgorICAgICAqIFRoZSBzdGF0dXMgc2hvdWxkIGluZGljYXRlIGlmIGEgdmFsaWQgc3RhdGlvbiBpcyB0dW5lZCBvciBub3QuCisgICAgICogQHBhcmFtIGNoYW5uZWwgQ2hhbm5lbCB0byB0dW5lIHRvLiBBIGZyZXF1ZW5jeSBpbiBrSHogZm9yIEFNL0ZNL0hEIFJhZGlvCisgICAgICogICAgICAgICAgICAgICAgYmFuZHMuCisgICAgICogQHBhcmFtIHN1YkNoYW5uZWwgVmFsaWQgZm9yIEhEIHJhZGlvIG9yIGRpZ2l0YWwgcmFkaW9zIG9ubHkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAoZS5nIFNQUyBudW1iZXIgZm9yIEhEIHJhZGlvKS4uCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgc2NhbiBzdWNjZXNzZnVsbHkgc3RhcnRlZAorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIGludmFsaWQgYXJndW1lbnRzIGFyZSBwYXNzZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICB0dW5lKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIENhbmNlbCBhIHNjYW4sIHN0ZXAgb3IgdHVuZSBvcGVyYXRpb24uCisgICAgICogU2hhbGwgYmUgY2FsbGVkIG9ubHkgd2hpbGUgYSBzY2FuLCBzdGVwIG9yIHR1bmUgb3BlcmF0aW9uIGlzIHBlbmRpbmcuCisgICAgICogSVR1bmVyQ2FsbGJhY2sudHVuZUNvbXBsZXRlKCkgTVVTVCBOT1QgYmUgc2VudCBieSB0aGUgSEFMLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBjYW5jZWwoKSBnZW5lcmF0ZXMoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBjdXJyZW50IHN0YXRpb24gaW5mb3JtYXRpb24uCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgc2NhbiBzdWNjZXNzZnVsbHkgc3RhcnRlZAorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpZiBhbm90aGVyIGVycm9yIG9jY3VycworICAgICAqIEByZXR1cm4gaW5mbyBDdXJyZW50IHByb2dyYW0gaW5mb3JtYXRpb24uCisgICAgICovCisgICAgZ2V0UHJvZ3JhbUluZm9ybWF0aW9uKCkgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQsIFByb2dyYW1JbmZvIGluZm8pOworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXJDYWxsYmFjay5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NjZmZjQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOworCisKK2ludGVyZmFjZSBJVHVuZXJDYWxsYmFjayB7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIEhXIGZhaWx1cmUgb2NjdXJzLgorICAgICAqIFRoZSBmcmFtZXdvcmsgTVVTVCBjbG9zZSB0aGUgSVR1bmVyIGludGVyZmFjZSBhbmQgb3BlbiBhIG5ldyBvbmUuCisgICAgICovCisgICAgb25ld2F5IGhhcmR3YXJlRmFpbHVyZSgpOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYSBuZXcgY29uZmlndXJhdGlvbiBpcyBhcHBsaWVkCisgICAgICogaW4gcmVzcG9uc2UgdG8gSURldmljZS5vcGVuVHVuZXIoKSBvciBJVHVuZXIuc2V0Q29uZmlndXJhdGlvbigpLgorICAgICAqIEBwYXJhbSByZXN1bHQgT0sgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gYXBwbGllZCwKKyAgICAgKiAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIG5vdCBvciBUSU1FT1VUIGluIGNhc2Ugb2YgdGltZSBvdXQuCisgICAgICogQHBhcmFtIGNvbmZpZyBBIEJhbmRDb25maWcgc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIG5ldyBjb25maWd1cmF0aW9uCisgICAgICogICAgICAgICAgICAgICBhcHBsaWVkLgorICAgICAqLworICAgIG9uZXdheSBjb25maWdDaGFuZ2UoUmVzdWx0IHJlc3VsdCwgQmFuZENvbmZpZyBjb25maWcpOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYSB0dW5pbmcgb3BlcmF0aW9uIGNvbXBsZXRlcworICAgICAqIGZvbGxvd2luZyBhIHN0ZXAoKSwgc2NhbigpIG9yIHR1bmUoKSBjb21tYW5kLgorICAgICAqIEBwYXJhbSByZXN1bHQgT0sgaWYgdHVuZSBzdWNjZWVkZWQgb3IgVElNRU9VVCBpbiBjYXNlIG9mIHRpbWUgb3V0LgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIHR1bmVkIHN0YXRpb24uCisgICAgICovCisgICAgb25ld2F5IHR1bmVDb21wbGV0ZShSZXN1bHQgcmVzdWx0LCBQcm9ncmFtSW5mbyBpbmZvKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgZnJlcXVlbmN5IHN3aXRjaCBvY2N1cnMuCisgICAgICogQHBhcmFtIGluZm8gQSBQcm9ncmFtSW5mbyBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgbmV3IHR1bmVkIHN0YXRpb24uCisgICAgICovCisgICAgb25ld2F5IGFmU3dpdGNoKFByb2dyYW1JbmZvIGluZm8pOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIGFudGVubmEgY29ubmVjdGlvbiBzdGF0ZSBjaGFuZ2VzLgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgVHJ1ZSBpZiB0aGUgYW50ZW5uYSBpcyBjb25uZWN0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgYW50ZW5uYVN0YXRlQ2hhbmdlKGJvb2wgY29ubmVjdGVkKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgdHJhZmZpYyBhbm5vdW5jZW1lbnQgc3RhcnRzIG9yCisgICAgICogc3RvcHMuCisgICAgICogQHBhcmFtIGFjdGl2ZSBUcnVlIGlmIHRoZSBhbm5vdW5jZW1lbnQgc3RhcnRzLCBmYWxzZSBpZiBpdCBzdG9wcy4KKyAgICAgKi8KKyAgICBvbmV3YXkgdHJhZmZpY0Fubm91bmNlbWVudChib29sIGFjdGl2ZSk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhbiBlbWVyZ2VuY3kgYW5ub3VuY2VtZW50IHN0YXJ0cworICAgICAqIG9yIHN0b3BzLgorICAgICAqIEBwYXJhbSBhY3RpdmUgVHJ1ZSBpZiB0aGUgYW5ub3VuY2VtZW50IHN0YXJ0cywgZmFsc2UgaWYgaXQgc3RvcHMuCisgICAgICovCisgICAgb25ld2F5IGVtZXJnZW5jeUFubm91bmNlbWVudChib29sIGFjdGl2ZSk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBtZXRhZGF0YSBmb3IgY3VycmVudCBzdGF0aW9uCisgICAgICogYXJlIHVwZGF0ZWQuCisgICAgICogQHBhcmFtIGNoYW5uZWwgVGhlIGNoYW5uZWwgdGhlIG1ldGFkYXRhIGlzIGFzc29jaWF0ZWQgd2l0aC4KKyAgICAgKiBAcGFyYW0gc3ViQ2hhbm5lbCBUaGUgc3ViIGNoYW5uZWwgdGhlIG1ldGFkYXRhIGlzIGFzc29jaWF0ZWQgd2l0aC4KKyAgICAgKiBAcGFyYW0gbWV0YWRhdGEgQSBsaXN0IG9mIGFsbCB1cGRhdGVkIG1ldGFkYS4KKyAgICAgKi8KKyAgICBvbmV3YXkgbmV3TWV0YWRhdGEodWludDMyX3QgY2hhbm5lbCwgdWludDMyX3Qgc3ViQ2hhbm5lbCwgdmVjPE1ldGFEYXRhPiAgbWV0YWRhdGEpOworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzI1OTUKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjggQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEJyb2FkY2FzdFJhZGlvLmNwcCBcCisgICAgQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcCBcCisgICAgVHVuZXIuY3BwIFwKKyAgICBVdGlscy5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCBcCisgICAgbGlicmFkaW9fbWV0YWRhdGEKKworaWZlcSAoJChzdHJpcCAkKEFVRElPU0VSVkVSX01VTFRJTElCKSksKQorTE9DQUxfTVVMVElMSUIgOj0gMzIKK2Vsc2UKK0xPQ0FMX01VTFRJTElCIDo9ICQoQVVESU9TRVJWRVJfTVVMVElMSUIpCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjZGMxOQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmNwcApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIkJyb2FkY2FzdFJhZGlvIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvcmFkaW8uaD4KKworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisjaW5jbHVkZSAiVHVuZXIuaCIKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0Jyb2FkY2FzdFJhZGlvOjpCcm9hZGNhc3RSYWRpbyhDbGFzcyBjbGFzc0lkKQorICAgIDogbVN0YXR1cyhSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRCksIG1DbGFzc0lkKGNsYXNzSWQpLCBtSHdEZXZpY2UoTlVMTCkKK3sKK30KKworQnJvYWRjYXN0UmFkaW86On5Ccm9hZGNhc3RSYWRpbygpCit7CisgICAgaWYgKG1Id0RldmljZSAhPSBOVUxMKSB7CisgICAgICAgIHJhZGlvX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgIH0KK30KKwordm9pZCBCcm9hZGNhc3RSYWRpbzo6b25GaXJzdFJlZigpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisgICAgQUxPR0koIiVzIG1DbGFzc0lkICVkIiwgX19GVU5DVElPTl9fLCBtQ2xhc3NJZCk7CisKKyAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgIGNvbnN0IGNoYXIgKmNsYXNzU3RyaW5nID0gVXRpbHM6OmdldENsYXNzU3RyaW5nKG1DbGFzc0lkKTsKKyAgICBpZiAoY2xhc3NTdHJpbmcgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiaW52YWxpZCBjbGFzcyBJRCAlZCIsIG1DbGFzc0lkKTsKKyAgICAgICAgbVN0YXR1cyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBTE9HSSgiJXMgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEICVzICVzIiwKKyAgICAgICAgICBfX0ZVTkNUSU9OX18sIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcpOworCisgICAgcmMgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcsICZtb2QpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBsb2FkIHJhZGlvIG1vZHVsZSAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBjbGFzc1N0cmluZywgc3RyZXJyb3IoLXJjKSk7CisgICAgICAgIG1TdGF0dXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJjID0gcmFkaW9faHdfZGV2aWNlX29wZW4obW9kLCAmbUh3RGV2aWNlKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3Qgb3BlbiByYWRpbyBodyBkZXZpY2UgaW4gJXMuJXMgKCVzKSIsCisgICAgICAgICAgICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgInByaW1hcnkiLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiAhPSBSQURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fQ1VSUkVOVCkgeworICAgICAgICBBTE9HRSgid3JvbmcgcmFkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24pOworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBtU3RhdHVzID0gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK2ludCBCcm9hZGNhc3RSYWRpbzo6Y2xvc2VIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAtRU5PREVWOworICAgIH0KKyAgICBpZiAoaGFsVHVuZXIgPT0gMCkgeworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgcmV0dXJuIG1Id0RldmljZS0+Y2xvc2VfdHVuZXIobUh3RGV2aWNlLCBoYWxUdW5lcik7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW8gZm9sbG93LgorUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpCit7CisgICAgaW50IHJjOworICAgIHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgaGFsUHJvcGVydGllczsKKyAgICBQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUh3RGV2aWNlLT5nZXRfcHJvcGVydGllcyhtSHdEZXZpY2UsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICBpZiAocmMgPT0gMCkgeworICAgICAgICBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKCZwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllcyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgcHJvcGVydGllcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpvcGVuVHVuZXIoY29uc3QgQmFuZENvbmZpZyYgY29uZmlnLCBib29sIGF1ZGlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgb3BlblR1bmVyX2NiIF9oaWRsX2NiKQoreworICAgIHNwPFR1bmVyPiB0dW5lckltcGwgPSBuZXcgVHVuZXIoY2FsbGJhY2ssIHRoaXMpOworCisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqaGFsVHVuZXI7CisgICAgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnVG9IYWwoJmhhbENvbmZpZywgJmNvbmZpZyk7CisgICAgaW50IHJjID0gbUh3RGV2aWNlLT5vcGVuX3R1bmVyKG1Id0RldmljZSwgJmhhbENvbmZpZywgYXVkaW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR1bmVyOjpjYWxsYmFjaywgdHVuZXJJbXBsLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGFsVHVuZXIpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIHR1bmVySW1wbC0+c2V0SGFsVHVuZXIoaGFsVHVuZXIpOworICAgIH0KKworICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgdHVuZXJJbXBsKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5oIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzY0ZDgyCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpby5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcmFkaW8uaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0cnVjdCBCcm9hZGNhc3RSYWRpbyA6IHB1YmxpYyBJQnJvYWRjYXN0UmFkaW8geworCisgICAgICAgICAgICBCcm9hZGNhc3RSYWRpbyhDbGFzcyBjbGFzc0lkKTsKKworICAgICAgICAgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW8gZm9sbG93LgorICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BlcnRpZXMoZ2V0UHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IG9wZW5UdW5lcihjb25zdCBCYW5kQ29uZmlnJiBjb25maWcsIGJvb2wgYXVkaW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5UdW5lcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisKKyAgICAvLyBSZWZCYXNlCisgICAgdmlydHVhbCB2b2lkIG9uRmlyc3RSZWYoKTsKKworICAgICAgICAgICAgUmVzdWx0ICBpbml0Q2hlY2soKSB7IHJldHVybiBtU3RhdHVzOyB9CisgICAgICAgICAgICBpbnQgY2xvc2VIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsICAgICB+QnJvYWRjYXN0UmFkaW8oKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyICogc0NsYXNzTW9kdWxlTmFtZXNbXTsKKworICAgIFJlc3VsdCBjb252ZXJ0SGFsUmVzdWx0KGludCByYyk7CisgICAgdm9pZCBjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoQmFuZENvbmZpZyAqY29uZmlnLAorICAgICAgICAgICAgY29uc3QgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZyk7CisgICAgdm9pZCBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoUHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpOworICAgIHZvaWQgY29udmVydEJhbmRDb25maWdUb0hhbChyYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnLAorICAgICAgICAgICAgY29uc3QgQmFuZENvbmZpZyAqY29uZmlnKTsKKworICAgIFJlc3VsdCAgICAgICAgICAgICAgICAgICBtU3RhdHVzOworICAgIENsYXNzICAgICAgICAgICAgICAgICAgICBtQ2xhc3NJZDsKKyAgICBzdHJ1Y3QgcmFkaW9faHdfZGV2aWNlICAqbUh3RGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ZDIxNGMKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIgorI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk6OmNvbm5lY3RNb2R1bGUoQ2xhc3MgY2xhc3NJZCwgY29ubmVjdE1vZHVsZV9jYiBfaGlkbF9jYikgIHsKKyAgICBzcDxCcm9hZGNhc3RSYWRpbz4gaW1wbCA9IG5ldyBCcm9hZGNhc3RSYWRpbyhjbGFzc0lkKTsKKyAgICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgaWYgKGltcGwgIT0gMCkgeworICAgICAgICByZXR2YWwgPSBpbXBsLT5pbml0Q2hlY2soKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbXBsKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUJyb2FkY2FzdFJhZGlvRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdmN2Y1NQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfQlJPQURDQVNUUkFESU9GQUNUT1JZX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0cnVjdCBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgOiBwdWJsaWMgSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gY29ubmVjdE1vZHVsZShDbGFzcyBjbGFzc0lkLCBjb25uZWN0TW9kdWxlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKK307CisKK2V4dGVybiAiQyIgSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSogSElETF9GRVRDSF9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfQlJPQURDQVNUUkFESU9GQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjY0M2I4Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVHVuZXIuY3BwCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJUdW5lciIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisjaW5jbHVkZSAiVHVuZXIuaCIKKyNpbmNsdWRlICJVdGlscy5oIgorI2luY2x1ZGUgPHN5c3RlbS9SYWRpb01ldGFkYXRhV3JhcHBlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3ZvaWQgVHVuZXI6Om9uQ2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50KQoreworICAgIEJhbmRDb25maWcgY29uZmlnOworICAgIFByb2dyYW1JbmZvIGluZm87CisgICAgaGlkbF92ZWM8TWV0YURhdGE+IG1ldGFkYXRhOworCisgICAgaWYgKG1DYWxsYmFjayAhPSAwKSB7CisgICAgICAgIHN3aXRjaChoYWxFdmVudC0+dHlwZSkgeworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0NPTkZJRzoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbEV2ZW50LT5jb25maWcpOworICAgICAgICAgICAgbUNhbGxiYWNrLT5jb25maWdDaGFuZ2UoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGNvbmZpZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9BTlRFTk5BOgorICAgICAgICAgICAgbUNhbGxiYWNrLT5hbnRlbm5hU3RhdGVDaGFuZ2UoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX1RVTkVEOgorICAgICAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxFdmVudC0+aW5mbyk7CisgICAgICAgICAgICBtQ2FsbGJhY2stPnR1bmVDb21wbGV0ZShVdGlsczo6Y29udmVydEhhbFJlc3VsdChoYWxFdmVudC0+c3RhdHVzKSwgaW5mbyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9NRVRBREFUQTogeworICAgICAgICAgICAgdWludDMyX3QgY2hhbm5lbDsKKyAgICAgICAgICAgIHVpbnQzMl90IHN1Yl9jaGFubmVsOworICAgICAgICAgICAgaWYgKHJhZGlvX21ldGFkYXRhX2dldF9jaGFubmVsKGhhbEV2ZW50LT5tZXRhZGF0YSwgJmNoYW5uZWwsICZzdWJfY2hhbm5lbCkgPT0gMCkgeworICAgICAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0TWV0YURhdGFGcm9tSGFsKG1ldGFkYXRhLCBoYWxFdmVudC0+bWV0YWRhdGEpOworICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+bmV3TWV0YWRhdGEoY2hhbm5lbCwgc3ViX2NoYW5uZWwsIG1ldGFkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfVEE6CisgICAgICAgICAgICBtQ2FsbGJhY2stPnRyYWZmaWNBbm5vdW5jZW1lbnQoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0FGX1NXSVRDSDoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsRXZlbnQtPmluZm8pOworICAgICAgICAgICAgbUNhbGxiYWNrLT5hZlN3aXRjaChpbmZvKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0VBOgorICAgICAgICAgICAgbUNhbGxiYWNrLT5lbWVyZ2VuY3lBbm5vdW5jZW1lbnQoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0hXX0ZBSUxVUkU6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBtQ2FsbGJhY2stPmhhcmR3YXJlRmFpbHVyZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vc3RhdGljCit2b2lkIFR1bmVyOjpjYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQsIHZvaWQgKmNvb2tpZSkKK3sKKyAgICB3cDxUdW5lcj4gd2VhayhyZWludGVycHJldF9jYXN0PFR1bmVyKj4oY29va2llKSk7CisgICAgc3A8VHVuZXI+IHR1bmVyID0gd2Vhay5wcm9tb3RlKCk7CisgICAgaWYgKHR1bmVyID09IDApIHJldHVybjsKKyAgICB0dW5lci0+b25DYWxsYmFjayhoYWxFdmVudCk7Cit9CisKK1R1bmVyOjpUdW5lcihjb25zdCBzcDxJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLCBjb25zdCB3cDxCcm9hZGNhc3RSYWRpbz4mIHBhcmVudERldmljZSkKKyAgICA6IG1IYWxUdW5lcihOVUxMKSwgbUNhbGxiYWNrKGNhbGxiYWNrKSwgbVBhcmVudERldmljZShwYXJlbnREZXZpY2UpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKK30KKworCitUdW5lcjo6flR1bmVyKCkKK3sKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGNvbnN0IHNwPEJyb2FkY2FzdFJhZGlvPiBwYXJlbnREZXZpY2UgPSBtUGFyZW50RGV2aWNlLnByb21vdGUoKTsKKyAgICBpZiAocGFyZW50RGV2aWNlICE9IDApIHsKKyAgICAgICAgcGFyZW50RGV2aWNlLT5jbG9zZUhhbFR1bmVyKG1IYWxUdW5lcik7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklUdW5lciBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c2V0Q29uZmlndXJhdGlvbihjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpICB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCBoYWxDb25maWc7CisgICAgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnVG9IYWwoJmhhbENvbmZpZywgJmNvbmZpZyk7CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5zZXRfY29uZmlndXJhdGlvbihtSGFsVHVuZXIsICZoYWxDb25maWcpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjx2b2lkPiBUdW5lcjo6Z2V0Q29uZmlndXJhdGlvbihnZXRDb25maWd1cmF0aW9uX2NiIF9oaWRsX2NiKSAgeworICAgIGludCByYzsKKyAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCBoYWxDb25maWc7CisgICAgQmFuZENvbmZpZyBjb25maWc7CisKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByYyA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgcmMgPSBtSGFsVHVuZXItPmdldF9jb25maWd1cmF0aW9uKG1IYWxUdW5lciwgJmhhbENvbmZpZyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgmY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICB9CisKK2V4aXQ6CisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCBjb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFR1bmVyOjpzY2FuKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5zY2FuKG1IYWxUdW5lciwgc3RhdGljX2Nhc3Q8cmFkaW9fZGlyZWN0aW9uX3Q+KGRpcmVjdGlvbiksIHNraXBTdWJDaGFubmVsKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c3RlcChEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgeworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoLUVOT0RFVik7CisgICAgfQorICAgIGludCByYyA9IG1IYWxUdW5lci0+c3RlcChtSGFsVHVuZXIsIHN0YXRpY19jYXN0PHJhZGlvX2RpcmVjdGlvbl90PihkaXJlY3Rpb24pLCBza2lwU3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnR1bmUodWludDMyX3QgY2hhbm5lbCwgdWludDMyX3Qgc3ViQ2hhbm5lbCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPnR1bmUobUhhbFR1bmVyLCBjaGFubmVsLCBzdWJDaGFubmVsKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6Y2FuY2VsKCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPmNhbmNlbChtSGFsVHVuZXIpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjx2b2lkPiBUdW5lcjo6Z2V0UHJvZ3JhbUluZm9ybWF0aW9uKGdldFByb2dyYW1JbmZvcm1hdGlvbl9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9fcHJvZ3JhbV9pbmZvX3QgaGFsSW5mbzsKKyAgICBSYWRpb01ldGFkYXRhV3JhcHBlciBtZXRhZGF0YVdyYXBwZXIoJmhhbEluZm8ubWV0YWRhdGEpOworICAgIFByb2dyYW1JbmZvIGluZm87CisKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByYyA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByYyA9IG1IYWxUdW5lci0+Z2V0X3Byb2dyYW1faW5mb3JtYXRpb24obUhhbFR1bmVyLCAmaGFsSW5mbyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxJbmZvKTsKKyAgICB9CisKK2V4aXQ6CisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVHVuZXIuaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZkZDRmNAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9UVU5FUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9UVU5FUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXJDYWxsYmFjay5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcmFkaW8uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW87CisKK3N0cnVjdCBUdW5lciA6IHB1YmxpYyBJVHVuZXIgeworCisgICAgVHVuZXIoY29uc3Qgc3A8SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBtUGFyZW50RGV2aWNlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SVR1bmVyIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWd1cmF0aW9uKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWd1cmF0aW9uKGdldENvbmZpZ3VyYXRpb25fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzY2FuKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGVwKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB0dW5lKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjYW5jZWwoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICAgIHN0YXRpYyB2b2lkIGNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCwgdm9pZCAqY29va2llKTsKKyAgICAgICAgICAgdm9pZCBvbkNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCk7CisKKyAgICB2b2lkIHNldEhhbFR1bmVyKGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqaGFsVHVuZXIpIHsgbUhhbFR1bmVyID0gaGFsVHVuZXI7IH0KKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmdldEhhbFR1bmVyKCkgeyByZXR1cm4gbUhhbFR1bmVyOyB9CisKKyBwcml2YXRlOgorICAgIH5UdW5lcigpOworCisgICAgY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICAgICptSGFsVHVuZXI7CisgICAgY29uc3Qgc3A8SVR1bmVyQ2FsbGJhY2s+ICAgICBtQ2FsbGJhY2s7CisgICAgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+ICAgICBtUGFyZW50RGV2aWNlOworfTsKKworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVFVORVJfSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVXRpbHMuY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NzYyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9VdGlscy5jcHAKQEAgLTAsMCArMSwyOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpb0hhbFV0aWxzIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL21pc2MuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vcmFkaW9fbWV0YWRhdGEuaD4KKworI2luY2x1ZGUgIlV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY29uc3QgY2hhciAqVXRpbHM6OnNDbGFzc01vZHVsZU5hbWVzW10gPSB7CisgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0ZNLCAvKiBjb3JyZXNwb25kcyB0byBSQURJT19DTEFTU19BTV9GTSAqLworICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRF9TQVQsICAvKiBjb3JyZXNwb25kcyB0byBSQURJT19DTEFTU19TQVQgKi8KKyAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSURfRFQsICAgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfRFQgKi8KK307CisKKy8vIG1ha2Ugc3VyZSBISURMIGVudW0gdmFsdWVzIGFyZSBhbGlnbmVkIHdpdGggbGVnYWN5IHZhbHVlcworc3RhdGljX2Fzc2VydChSQURJT19DTEFTU19BTV9GTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENsYXNzOjpBTV9GTSksCisgICAgICAgICAgICAgICJBTS9GTSBjbGFzcyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19DTEFTU19TQVQgPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6U0FUKSwKKyAgICAgICAgICAgICAgIlNBVCBjbGFzcyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19DTEFTU19EVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENsYXNzOjpEVCksCisgICAgICAgICAgICAgICJEVCBjbGFzcyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfQU0gPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpBTSksCisgICAgICAgICAgICAgICJBTSBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfRk0gPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpGTSksCisgICAgICAgICAgICAgICJGTSBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfQU1fSEQgPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpBTV9IRCksCisgICAgICAgICAgICAgICJBTSBIRCBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfRk1fSEQgPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpGTV9IRCksCisgICAgICAgICAgICAgICJGTSBIRCBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fUkRTX05PTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihSZHM6Ok5PTkUpLAorICAgICAgICAgICAgICAiUkRTIE5PTkUgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fUkRTX1dPUkxEID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpXT1JMRCksCisgICAgICAgICAgICAgICJSRFMgV09STEQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fUkRTX1VTID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpVUyksCisgICAgICAgICAgICAgICJSRFMgVVMgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19ERUVNUEhBU0lTXzUwID09IHN0YXRpY19jYXN0PGludD4oRGVlbXBoYXNpczo6RDUwKSwKKyAgICAgICAgICAgICAgIkRlLWVtcGhhc2lzIDUwIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0RFRU1QSEFTSVNfNzUgPT0gc3RhdGljX2Nhc3Q8aW50PihEZWVtcGhhc2lzOjpENzUpLAorICAgICAgICAgICAgICAiRGUtZW1waGFzaXMgNzUgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19ESVJFQ1RJT05fVVAgPT0gc3RhdGljX2Nhc3Q8aW50PihEaXJlY3Rpb246OlVQKSwKKyAgICAgICAgICAgICAgIkRpcmVjdGlvbiBVcCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19ESVJFQ1RJT05fRE9XTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KERpcmVjdGlvbjo6RE9XTiksCisgICAgICAgICAgICAgICJEaXJlY3Rpb24gVXAgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0lOVkFMSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OklOVkFMSUQpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEgdHlwZSBJTlZBTElEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfSU5UID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpJTlQpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEgdHlwZSBJTlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9URVhUID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpURVhUKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgVEVYVCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX1JBVyA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6UkFXKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgUkFXIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfQ0xPQ0sgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OkNMT0NLKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgQ0xPQ0sgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfSU5WQUxJRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpJTlZBTElEKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBJTlZBTElEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUEkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BJKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUEkgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19QUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSRFNfUFMpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IFJEU19QUyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkRTX1BUWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSRFNfUFRZKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUFRZIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SQkRTX1BUWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSQkRTX1BUWSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgUkJEU19QVFkgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSRFNfUlQpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IFJEU19SVCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfVElUTEUgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6VElUTEUpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IFRJVExFIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BUlRJU1QgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6QVJUSVNUKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBBUlRJU1QgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0FMQlVNID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkFMQlVNKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBBTEJVTSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfR0VOUkUgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6R0VOUkUpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IEdFTlJFIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9JQ09OID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OklDT04pLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IElDT04gbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0FSVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpBUlQpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IEFSVCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfQ0xPQ0sgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6Q0xPQ0spLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IENMT0NLIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKKworLy9zdGF0aWMKK2NvbnN0IGNoYXIgKiBVdGlsczo6Z2V0Q2xhc3NTdHJpbmcoQ2xhc3MgQ2xhc3NJZCkKK3sKKyAgICBpbnQgaWQgPSBzdGF0aWNfY2FzdDxpbnQ+KENsYXNzSWQpOworCisgICAgaWYgKChpZCA8IDApIHx8CisgICAgICAgICAgICAoaWQgPj0gTkVMRU0oc0NsYXNzTW9kdWxlTmFtZXMpKSkgeworICAgICAgICBBTE9HRSgiaW52YWxpZCBjbGFzcyBJRCAlZCIsIGlkKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBzQ2xhc3NNb2R1bGVOYW1lc1tpZF07Cit9CisKKy8vc3RhdGljCitSZXN1bHQgVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaW50IHJjKQoreworICAgIHN3aXRjaCAocmMpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9TWVM6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FVElNRURPVVQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpUSU1FT1VUOworICAgICAgICBjYXNlIC1FTk9ERVY6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydEJhbmRDb25maWdGcm9tSGFsKAorICAgICAgICBCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpCit7CisKKyAgICBjb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxCYW5kPihoYWxDb25maWctPnR5cGUpOworICAgIGNvbmZpZy0+YW50ZW5uYUNvbm5lY3RlZCA9IGhhbENvbmZpZy0+YW50ZW5uYV9jb25uZWN0ZWQ7CisgICAgY29uZmlnLT5sb3dlckxpbWl0ID0gaGFsQ29uZmlnLT5sb3dlcl9saW1pdDsKKyAgICBjb25maWctPnVwcGVyTGltaXQgPSBoYWxDb25maWctPnVwcGVyX2xpbWl0OworICAgIGNvbmZpZy0+c3BhY2luZ3Muc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGludCAqPigmaGFsQ29uZmlnLT5zcGFjaW5nc1swXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYWxDb25maWctPm51bV9zcGFjaW5ncyAqIHNpemVvZih1aW50MzJfdCkpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIGNvbmZpZy0+c3BhY2luZ3MucmVzaXplKGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzKTsKKworICAgIGlmIChjb25maWctPnR5cGUgPT0gQmFuZDo6Rk0pIHsKKyAgICAgICAgY29uZmlnLT5leHQuZm0uZGVlbXBoYXNpcyA9IHN0YXRpY19jYXN0PERlZW1waGFzaXM+KGhhbENvbmZpZy0+Zm0uZGVlbXBoYXNpcyk7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLnN0ZXJlbyA9IGhhbENvbmZpZy0+Zm0uc3RlcmVvOworICAgICAgICBjb25maWctPmV4dC5mbS5yZHMgPSBzdGF0aWNfY2FzdDxSZHM+KGhhbENvbmZpZy0+Zm0ucmRzKTsKKyAgICAgICAgY29uZmlnLT5leHQuZm0udGEgPSBoYWxDb25maWctPmZtLnRhOworICAgICAgICBjb25maWctPmV4dC5mbS5hZiA9IGhhbENvbmZpZy0+Zm0uYWY7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLmVhID0gaGFsQ29uZmlnLT5mbS5lYTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25maWctPmV4dC5hbS5zdGVyZW8gPSBoYWxDb25maWctPmFtLnN0ZXJlbzsKKyAgICB9Cit9CisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgIFByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpCit7CisgICAgcHJvcGVydGllcy0+Y2xhc3NJZCA9IHN0YXRpY19jYXN0PENsYXNzPihoYWxQcm9wZXJ0aWVzLT5jbGFzc19pZCk7CisgICAgcHJvcGVydGllcy0+aW1wbGVtZW50b3Iuc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT5pbXBsZW1lbnRvciwgc3RybGVuKGhhbFByb3BlcnRpZXMtPmltcGxlbWVudG9yKSk7CisgICAgcHJvcGVydGllcy0+cHJvZHVjdC5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnByb2R1Y3QsIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT5wcm9kdWN0KSk7CisgICAgcHJvcGVydGllcy0+dmVyc2lvbi5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnZlcnNpb24sIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT52ZXJzaW9uKSk7CisgICAgcHJvcGVydGllcy0+c2VyaWFsLnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+c2VyaWFsLCBzdHJsZW4oaGFsUHJvcGVydGllcy0+c2VyaWFsKSk7CisgICAgcHJvcGVydGllcy0+bnVtVHVuZXJzID0gaGFsUHJvcGVydGllcy0+bnVtX3R1bmVyczsKKyAgICBwcm9wZXJ0aWVzLT5udW1BdWRpb1NvdXJjZXMgPSBoYWxQcm9wZXJ0aWVzLT5udW1fYXVkaW9fc291cmNlczsKKyAgICBwcm9wZXJ0aWVzLT5zdXBwb3J0c0NhcHR1cmUgPSBoYWxQcm9wZXJ0aWVzLT5zdXBwb3J0c19jYXB0dXJlOworCisgICAgQmFuZENvbmZpZyAqYmFuZHMgPQorICAgICAgICAgICAgbmV3IEJhbmRDb25maWdbaGFsUHJvcGVydGllcy0+bnVtX2JhbmRzXTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFByb3BlcnRpZXMtPm51bV9iYW5kczsgaSsrKSB7CisgICAgICAgIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgmYmFuZHNbaV0sICZoYWxQcm9wZXJ0aWVzLT5iYW5kc1tpXSk7CisgICAgfQorICAgIHByb3BlcnRpZXMtPmJhbmRzLnNldFRvRXh0ZXJuYWwoYmFuZHMsIGhhbFByb3BlcnRpZXMtPm51bV9iYW5kcyk7CisgICAgLy8gRklYTUU6IHRyYW5zZmVyIGJ1ZmZlciBvd25lcnNoaXAuIHNob3VsZCBoYXZlIGEgbWV0aG9kIGZvciB0aGF0IGluIGhpZGxfdmVjCisgICAgcHJvcGVydGllcy0+YmFuZHMucmVzaXplKGhhbFByb3BlcnRpZXMtPm51bV9iYW5kcyk7CisgICAgZGVsZXRlW10gYmFuZHM7Cit9CisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKAorICAgICAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnLAorICAgICAgICBjb25zdCBCYW5kQ29uZmlnICpjb25maWcpCit7CisKKyAgICBoYWxDb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxyYWRpb19iYW5kX3Q+KGNvbmZpZy0+dHlwZSk7CisgICAgaGFsQ29uZmlnLT5hbnRlbm5hX2Nvbm5lY3RlZCA9IGNvbmZpZy0+YW50ZW5uYUNvbm5lY3RlZDsKKyAgICBoYWxDb25maWctPmxvd2VyX2xpbWl0ID0gY29uZmlnLT5sb3dlckxpbWl0OworICAgIGhhbENvbmZpZy0+dXBwZXJfbGltaXQgPSBjb25maWctPnVwcGVyTGltaXQ7CisgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPSBjb25maWctPnNwYWNpbmdzLnNpemUoKTsKKyAgICBpZiAoaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPiBSQURJT19OVU1fU1BBQ0lOR1NfTUFYKSB7CisgICAgICAgIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID0gUkFESU9fTlVNX1NQQUNJTkdTX01BWDsKKyAgICB9CisgICAgbWVtY3B5KGhhbENvbmZpZy0+c3BhY2luZ3MsIGNvbmZpZy0+c3BhY2luZ3MuZGF0YSgpLAorICAgICAgICAgICBzaXplb2YodWludDMyX3QpICogaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MpOworCisgICAgaWYgKGNvbmZpZy0+dHlwZSA9PSBCYW5kOjpGTSkgeworICAgICAgICBoYWxDb25maWctPmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxyYWRpb19kZWVtcGhhc2lzX3Q+KGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMpOworICAgICAgICBoYWxDb25maWctPmZtLnN0ZXJlbyA9IGNvbmZpZy0+ZXh0LmZtLnN0ZXJlbzsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5yZHMgPSBzdGF0aWNfY2FzdDxyYWRpb19yZHNfdD4oY29uZmlnLT5leHQuZm0ucmRzKTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS50YSA9IGNvbmZpZy0+ZXh0LmZtLnRhOworICAgICAgICBoYWxDb25maWctPmZtLmFmID0gY29uZmlnLT5leHQuZm0uYWY7CisgICAgICAgIGhhbENvbmZpZy0+Zm0uZWEgPSBjb25maWctPmV4dC5mbS5lYTsKKyAgICB9IGVsc2UgeworICAgICAgICBoYWxDb25maWctPmFtLnN0ZXJlbyA9IGNvbmZpZy0+ZXh0LmFtLnN0ZXJlbzsKKyAgICB9Cit9CisKKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoUHJvZ3JhbUluZm8gKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKQoreworICAgIGluZm8tPmNoYW5uZWwgPSBoYWxJbmZvLT5jaGFubmVsOworICAgIGluZm8tPnN1YkNoYW5uZWwgPSBoYWxJbmZvLT5zdWJfY2hhbm5lbDsKKyAgICBpbmZvLT50dW5lZCA9IGhhbEluZm8tPnR1bmVkOworICAgIGluZm8tPnN0ZXJlbyA9IGhhbEluZm8tPnN0ZXJlbzsKKyAgICBpbmZvLT5kaWdpdGFsID0gaGFsSW5mby0+ZGlnaXRhbDsKKyAgICBpbmZvLT5zaWduYWxTdHJlbmd0aCA9IGhhbEluZm8tPnNpZ25hbF9zdHJlbmd0aDsKKyAgICBjb252ZXJ0TWV0YURhdGFGcm9tSGFsKGluZm8tPm1ldGFkYXRhLCBoYWxJbmZvLT5tZXRhZGF0YSk7Cit9CisKKy8vc3RhdGljCitpbnQgVXRpbHM6OmNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFkaW9fbWV0YWRhdGFfdCAqaGFsTWV0YWRhdGEpCit7CisgICAgaWYgKGhhbE1ldGFkYXRhID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIkludmFsaWQgYXJndW1lbnQ6IGhhbE1ldGFkYXRhIGlzIE5VTEwiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaW50IGNvdW50ID0gcmFkaW9fbWV0YWRhdGFfZ2V0X2NvdW50KGhhbE1ldGFkYXRhKTsKKyAgICBpZiAoY291bnQgPD0gMCkgeworICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorICAgIE1ldGFEYXRhICpuZXdNZXRhZGF0YSA9CisgICAgICAgICAgICBuZXcgTWV0YURhdGFbY291bnRdOworICAgIGludCBvdXRDb3VudCA9IDA7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIHJhZGlvX21ldGFkYXRhX2tleV90IGtleTsKKyAgICAgICAgcmFkaW9fbWV0YWRhdGFfdHlwZV90IHR5cGU7CisgICAgICAgIHZvaWQgKnZhbHVlOworICAgICAgICBzaXplX3Qgc2l6ZTsKKyAgICAgICAgaWYgKHJhZGlvX21ldGFkYXRhX2dldF9hdF9pbmRleChoYWxNZXRhZGF0YSwgaSAsICZrZXksICZ0eXBlLCAmdmFsdWUsICZzaXplKSAhPSAwIHx8CisgICAgICAgICAgICAgICAgc2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgUkFESU9fTUVUQURBVEFfVFlQRV9JTlQ6IHsKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uaW50VmFsdWUgPSAqKHN0YXRpY19jYXN0PGludDMyX3QgKj4odmFsdWUpKTsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfVEVYVDogeworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5zdHJpbmdWYWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIgKj4odmFsdWUpOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU9fTUVUQURBVEFfVFlQRV9SQVc6IHsKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ucmF3VmFsdWUuc2V0VG9FeHRlcm5hbChzdGF0aWNfY2FzdDx1aW50OF90ICo+KHZhbHVlKSwgc2l6ZSk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRyYW5zZmVyIGJ1ZmZlciBvd25lcnNoaXAuIHNob3VsZCBoYXZlIGEgbWV0aG9kIGZvciB0aGF0IGluIGhpZGxfdmVjCisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnJhd1ZhbHVlLnJlc2l6ZShzaXplKTsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfQ0xPQ0s6IHsKKyAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX2Nsb2NrX3QgKmNsb2NrID0gc3RhdGljX2Nhc3Q8cmFkaW9fbWV0YWRhdGFfY2xvY2tfdCAqPih2YWx1ZSk7CisgICAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uY2xvY2tWYWx1ZS51dGNTZWNvbmRzU2luY2VFcG9jaCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLT51dGNfc2Vjb25kc19zaW5jZV9lcG9jaDsKKyAgICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5jbG9ja1ZhbHVlLnRpbWV6b25lT2Zmc2V0SW5NaW51dGVzID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stPnRpbWV6b25lX29mZnNldF9pbl9taW51dGVzOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0udHlwZSA9IHN0YXRpY19jYXN0PE1ldGFkYXRhVHlwZT4odHlwZSk7CisgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5rZXkgPSBzdGF0aWNfY2FzdDxNZXRhZGF0YUtleT4oa2V5KTsKKyAgICAgICAgb3V0Q291bnQrKzsKKyAgICB9CisgICAgbWV0YWRhdGEuc2V0VG9FeHRlcm5hbChuZXdNZXRhZGF0YSwgb3V0Q291bnQpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIG1ldGFkYXRhLnJlc2l6ZShvdXRDb3VudCk7CisgICAgcmV0dXJuIG91dENvdW50OworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVXRpbHMuaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVmMjJhNQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9VVElMU19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9VVElMU19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgVXRpbHMgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyICogZ2V0Q2xhc3NTdHJpbmcoQ2xhc3MgQ2xhc3NJZCk7CisgICAgc3RhdGljIFJlc3VsdCBjb252ZXJ0SGFsUmVzdWx0KGludCByYyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydEJhbmRDb25maWdGcm9tSGFsKEJhbmRDb25maWcgKmNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbChQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICAgICAgY29uc3QgcmFkaW9faGFsX3Byb3BlcnRpZXNfdCAqaGFsUHJvcGVydGllcyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydEJhbmRDb25maWdUb0hhbChyYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnLAorICAgICAgICAgICAgY29uc3QgQmFuZENvbmZpZyAqY29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKFByb2dyYW1JbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFkaW9fcHJvZ3JhbV9pbmZvX3QgKmhhbEluZm8pOworICAgIHN0YXRpYyBpbnQgY29udmVydE1ldGFEYXRhRnJvbUhhbChoaWRsX3ZlYzxNZXRhRGF0YT4mIG1ldGFkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFkaW9fbWV0YWRhdGFfdCAqaGFsTWV0YWRhdGEpOworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIHNDbGFzc01vZHVsZU5hbWVzW107CisKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9VVElMU19ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDUyMzFkCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBOT1RfSU5JVElBTElaRUQsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKKyAgICBUSU1FT1VULAorfTsKKworLyoqCisgKiBSYWRpbyBoYXJkd2FyZSBtb2R1bGUgY2xhc3MuIEEgZ2l2ZW4gcmFkaW8gaGFyZHdhcmUgbW9kdWxlIEhBTCBpcyBvZiBvbmUKKyAqIGNsYXNzIG9ubHkuIFRoZSBwbGF0Zm9ybSBjYW4gbm90IGhhdmUgbW9yZSB0aGFuIG9uZSBoYXJkd2FyZSBtb2R1bGUgb2YKKyAqIGVhY2ggY2xhc3MuIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZnJhbWV3b3JrIG9ubHkgc3VwcG9ydHMgUkFESU9fQ0xBU1NfQU1fRk0uCisgKi8KK2VudW0gQ2xhc3MgOiB1aW50MzJfdCB7CisgICAgLyoqIEZNIChpbmNsdWRpbmcgSEQgcmFkaW8pIGFuZCBBTSAqLworICAgIEFNX0ZNID0gMCwKKyAgICAvKiogU2F0ZWxsaXRlIFJhZGlvICovCisgICAgU0FUICAgPSAxLAorICAgIC8qKiBEaWdpdGFsIFJhZGlvIChEQUIpICovCisgICAgRFQgICAgPSAyLAorfTsKKworLyoqIHZhbHVlIGZvciBmaWVsZCAidHlwZSIgb2YgcmFkaW8gYmFuZCBkZXNjcmliZWQgaW4gc3RydWN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZyAqLworZW51bSBCYW5kIDogdWludDMyX3QgeworICAgIC8qKiBBbXBsaXR1ZGUgTW9kdWxhdGlvbiBiYW5kOiBMVywgTVcsIFNXICovCisgICAgQU0gICAgID0gMCwKKyAgICAvKiogRnJlcXVlbmN5IE1vZHVsYXRpb24gYmFuZDogRk0gKi8KKyAgICBGTSAgICAgPSAxLAorICAgIC8qKiBGTSBIRCBSYWRpbyAvIERSTSAoSUJPQykgKi8KKyAgICBGTV9IRCAgPSAyLAorICAgIC8qKiBBTSBIRCBSYWRpbyAvIERSTSAoSUJPQykgKi8KKyAgICBBTV9IRCAgPSAzLAorfTsKKworLyoqIFJEUyB2YXJpYW50IGltcGxlbWVudGVkLiBBIHN0cnVjdCBGbUJhbmRDb25maWcgY2FuIGxpc3Qgbm9uZSBvciBzZXZlcmFsLiAqLworZW51bSBSZHMgOiB1aW50MzJfdCB7CisgICAgTk9ORSAgID0gMCwKKyAgICBXT1JMRCAgPSAoMTw8MCksCisgICAgVVMgPSAoMTw8MSksCit9OworCisKKy8qIEZNIGRlZW1waGFzaXMgdmFyaWFudCBpbXBsZW1lbnRlZC4KKyAqIEEgc3RydWN0IEZtQmFuZENvbmZpZyBjYW4gbGlzdCBvbmUgb3IgbW9yZS4gKi8KK2VudW0gRGVlbXBoYXNpcyA6IHVpbnQzMl90IHsKKyAgICBENTAgICA9ICgxPDwwKSwKKyAgICBENzUgICA9ICgxPDwxKSwKK307CisKKy8qKiBTY2FubmluZyBkaXJlY3Rpb24gZm9yIHNjYW4oKSBhbmQgc3RlcCgpIHR1bmVyIEFQSXMgKi8KK2VudW0gRGlyZWN0aW9uIDogdWludDMyX3QgeworICAgIFVQLAorICAgIERPV04KK307CisKKy8qKiBVbmlxdWUgaGFuZGxlIGFsbG9jYXRlZCB0byBhIHJhZGlvIG1vZHVsZSAqLwordHlwZWRlZiB1aW50MzJfdCBIYW5kbGU7CisKKworLyoqIEFkZGl0aW9uYWwgYXR0cmlidXRlcyBmb3IgYW4gRk0gYmFuZCBjb25maWd1cmF0aW9uICovCitzdHJ1Y3QgRm1CYW5kQ29uZmlnIHsKKyAgICAvKiogZGVlbXBoYXNpcyB2YXJpYW50ICovCisgICAgRGVlbXBoYXNpcyBkZWVtcGhhc2lzOworICAgIC8qKiBzdGVyZW8gc3VwcG9ydGVkICovCisgICAgYm9vbCAgICAgICBzdGVyZW87CisgICAgLyoqIFJEUyB2YXJpYW50cyBzdXBwb3J0ZWQgKi8KKyAgICBSZHMgICAgICAgIHJkczsKKyAgICAvKiogVHJhZmZpYyBBbm5vdW5jZW1lbnQgc3VwcG9ydGVkICovCisgICAgYm9vbCAgICAgICB0YTsKKyAgICAvKiogQWx0ZXJuYXRlIEZyZXF1ZW5jeSBzdXBwb3J0ZWQgKi8KKyAgICBib29sICAgICAgIGFmOworICAgIC8qKiBFbWVyZ2VuY3kgYW5ub3VuY2VtZW50cyBzdXBwb3J0ZWQgKi8KKyAgICBib29sICAgICAgIGVhOworfTsKKworLyoqIEFkZGl0aW9uYWwgYXR0cmlidXRlcyBmb3IgYW4gQU0gYmFuZCBjb25maWd1cmF0aW9uICovCitzdHJ1Y3QgQW1CYW5kQ29uZmlnIHsKKyAgICAvKiogU3RlcmVvIHN1cHBvcnRlZCAqLworICAgIGJvb2wgICAgICAgc3RlcmVvOworfTsKKworLyogUmFkaW8gYmFuZCBjb25maWd1cmF0aW9uLiBEZXNjcmliZXMgYSBnaXZlbiBiYW5kIHN1cHBvcnRlZCBieSB0aGUgcmFkaW8KKyAqIG1vZHVsZS4gVGhlIEhBTCBjYW4gZXhwb3NlIG9ubHkgb25lIGJhbmQgcGVyIHR5cGUgd2l0aCB0aGUgdGhlIG1heGltdW0gcmFuZ2UKKyAqIHN1cHBvcnRlZCBhbmQgYWxsIG9wdGlvbnMuIFRoZSBmcmFtZXdvcmsgd2lsbCBkZXJpdmUgdGhlIGFjdHVhbCByZWdpb25zIHdlcmUKKyAqIHRoaXMgbW9kdWxlIGNhbiBvcGVyYXRlIGFuZCBleHBvc2Ugc2VwYXJhdGUgYmFuZCBjb25maWd1cmF0aW9ucyBmb3IKKyAqIGFwcGxpY2F0aW9ucyB0byBjaG9zZSBmcm9tLiAqLworc3RydWN0IEJhbmRDb25maWcgeworICAgIEJhbmQgdHlwZTsKKyAgICBib29sIGFudGVubmFDb25uZWN0ZWQ7CisgICAgdWludDMyX3QgbG93ZXJMaW1pdDsKKyAgICB1aW50MzJfdCB1cHBlckxpbWl0OworICAgIHZlYzx1aW50MzJfdD4gc3BhY2luZ3M7CisgICAgdW5pb24gRXh0IHsKKyAgICAgICAgRm1CYW5kQ29uZmlnIGZtOworICAgICAgICBBbUJhbmRDb25maWcgYW07CisgICAgfSBleHQ7Cit9OworCisvKiBFeHBvc2VzIHByb3BlcnRpZXMgb2YgYSBnaXZlbiBoYXJkd2FyZSByYWRpbyBtb2R1bGUuCisgKiBOT1RFOiBjdXJyZW50IGZyYW1ld29yayBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBvbmx5IG9uZSBhdWRpbyBzb3VyY2UKKyAqIChudW1fYXVkaW9fc291cmNlcyA9IDEpLiBUaGUgc291cmNlIGNvcnJlc3BvbmRzIHRvIEFVRElPX0RFVklDRV9JTl9GTV9UVU5FUi4KKyAqIElmIG1vcmUgdGhhbiBvbmUgdHVuZXIgaXMgc3VwcG9ydGVkIChudW1fdHVuZXJzID4gMSksIG9ubHkgb25lIGNhbiBiZQorICogY29ubmVjdGVkIHRvIHRoZSBhdWRpbyBzb3VyY2UuICovCitzdHJ1Y3QgUHJvcGVydGllcyB7CisgICAgLyoqIENsYXNzIG9mIHRoaXMgbW9kdWxlLiBFLmcgQU1fRk0gKi8KKyAgICBDbGFzcyAgICAgICAgICAgY2xhc3NJZDsKKyAgICAvKiogaW1wbGVtZW50b3IgbmFtZSAqLworICAgIHN0cmluZyAgICAgICAgICBpbXBsZW1lbnRvcjsKKyAgICAvKiogcHJvZHVjdCBuYW1lICovCisgICAgc3RyaW5nICAgICAgICAgIHByb2R1Y3Q7CisgICAgLyoqIHByb2R1Y3QgdmVyc2lvbiAqLworICAgIHN0cmluZyAgICAgICAgICB2ZXJzaW9uOworICAgIC8qKiBzZXJpYWwgbnVtYmVyIChmb3Igc3Vic2NyaXB0aW9uIHNlcnZpY2VzKSAqLworICAgIHN0cmluZyAgICAgICAgICBzZXJpYWw7CisgICAgLyoqIG51bWJlciBvZiB0dW5lcnMgY29udHJvbGxhYmxlIGluZGVwZW5kZW50bHkgKi8KKyAgICB1aW50MzJfdCAgICAgICAgbnVtVHVuZXJzOworICAgIC8qKiBudW1iZXIgb2YgYXVkaW8gc291cmNlcyBkcml2ZW4gc2ltdWx0YW5lb3VzbHkgKi8KKyAgICB1aW50MzJfdCAgICAgICAgbnVtQXVkaW9Tb3VyY2VzOworICAgIC8qKiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgY2FwdHVyZSBvZiBhdWRpbyBzb3VyY2UgZnJvbSBhdWRpbyBIQUwgKi8KKyAgICBib29sICAgICAgICAgICAgc3VwcG9ydHNDYXB0dXJlOworICAgIHZlYzxCYW5kQ29uZmlnPiBiYW5kczsgLyoqIGJhbmQgZGVzY3JpcHRvcnMgKi8KK307CisKK2VudW0gTWV0YWRhdGFUeXBlIDogaW50MzJfdCB7CisgICAgSU5WQUxJRCAgICA9IC0xLAorICAgIC8qKiBTaWduZWQgMzIgYml0IGludGVnZXIgICovCisgICAgSU5UICAgICAgICA9IDAsCisgICAgLyoqIFN0cmluZyAqLworICAgIFRFWFQgICAgICAgPSAxLAorICAgIC8qKgorICAgICAqIFJhdyBiaW5hcnkgZGF0YSAoaWNvbiBvciBhcnQpCisgICAgICAgVGhpcyBkYXRhIG11c3QgYmUgdHJhbnNwYXJlbnQgdG8gdGhlIGFuZHJvaWQgZnJhbWV3b3JrICovCisgICAgUkFXICAgICAgICA9IDIsCisgICAgLyoqIGNsb2NrIGRhdGEsIHNlZSBNZXRhRGF0YUNsb2NrICovCisgICAgQ0xPQ0sgICAgICA9IDMsCit9OworCitlbnVtIE1ldGFkYXRhS2V5IDogaW50MzJfdCB7CisgICAgSU5WQUxJRCAgICAgID0gLTEsCisgICAgLyoqIFJEUyBQSSAgICAgICAgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgUkRTX1BJICAgICAgID0gMCwKKyAgICAvKiogUkRTIFBTICAgICAgICAgICAgICAgICAtIHN0cmluZyAqLworICAgIFJEU19QUyAgICAgICA9IDEsCisgICAgLyoqIFJEUyBQVFkgICAgICAgICAgICAgICAgLSBpbnQzMl90ICAqLworICAgIFJEU19QVFkgICAgICA9IDIsCisgICAgLyoqIFJCRFMgUFRZICAgICAgICAgICAgICAgLSBpbnQzMl90ICAqLworICAgIFJCRFNfUFRZICAgICA9IDMsCisgICAgLyoqIFJEUyBSVCAgICAgICAgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgUkRTX1JUICAgICAgID0gNCwKKyAgICAvKiogU29uZyB0aXRsZSAgICAgICAgICAgICAtIHN0cmluZyAgKi8KKyAgICBUSVRMRSAgICAgICAgPSA1LAorICAgIC8qKiBBcnRpc3QgbmFtZSAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIEFSVElTVCAgICAgICA9IDYsCisgICAgLyoqIEFsYnVtIG5hbWUgICAgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgQUxCVU0gICAgICAgID0gNywKKyAgICAvKiogTXVzaWNhbCBnZW5yZSAgICAgICAgICAtIHN0cmluZyAgKi8KKyAgICBHRU5SRSAgICAgICAgPSA4LAorICAgIC8qKiBTdGF0aW9uIGljb24gICAgICAgICAgIC0gcmF3ICAqLworICAgIElDT04gICAgICAgICA9IDksCisgICAgLyoqIEFsYnVtIGFydCAgICAgICAgICAgICAgLSByYXcgICovCisgICAgQVJUICAgICAgICAgID0gMTAsCisgICAgLyoqIENsb2NrICAgICAgICAgICAgICAgICAgLSBNZXRhRGF0YUNsb2NrICovCisgICAgQ0xPQ0sgICAgICAgID0gMTEsCit9OworCitzdHJ1Y3QgTWV0YURhdGFDbG9jayB7CisgICAgIC8qKiBTZWNvbmRzIHNpbmNlIGVwb2NoIGF0IEdNVCArIDAuICovCisgICAgdWludDY0X3QgdXRjU2Vjb25kc1NpbmNlRXBvY2g7CisgICAgLyoqIE1pbnV0ZXMgb2Zmc2V0IGZyb20gdGhlIEdNVC4gKi8KKyAgICBpbnQzMl90IHRpbWV6b25lT2Zmc2V0SW5NaW51dGVzOworfTsKKworc3RydWN0IE1ldGFEYXRhIHsKKyAgICBNZXRhZGF0YVR5cGUgdHlwZTsKKyAgICBNZXRhZGF0YUtleSBrZXk7CisgICAgLyoqIFZhbHVlIHVzZWQgZm9yIHR5cGUgTWV0YWRhdGFUeXBlLklOVCAqLworICAgIGludDMyX3QgaW50VmFsdWU7CisgICAgLyoqIFZhbHVlIHVzZWQgZm9yIHR5cGUgTWV0YWRhdGFUeXBlLkNMT0NLICovCisgICAgTWV0YURhdGFDbG9jayAgY2xvY2tWYWx1ZTsKKyAgICAvKiogVmFsdWUgdXNlZCBmb3IgdHlwZSBNZXRhZGF0YVR5cGUuVEVYVCAqLworICAgIHN0cmluZyAgc3RyaW5nVmFsdWU7CisgICAgLyoqIFZhbHVlIHVzZWQgZm9yIHR5cGUgTWV0YWRhdGFUeXBlLlJBVyAqLworICAgIHZlYzx1aW50OF90PiByYXdWYWx1ZTsKK307CisKKworLyogUmFkaW8gcHJvZ3JhbSBpbmZvcm1hdGlvbi4gUmV0dXJuZWQgYnkgdGhlIEhBTCB3aXRoIGV2ZW50IFJBRElPX0VWRU5UX1RVTkVELgorICogQ29udGFpbnMgaW5mb3JtYXRpb24gb24gY3VycmVudGx5IHR1bmVkIGNoYW5uZWwuCisgKi8KK3N0cnVjdCBQcm9ncmFtSW5mbyB7CisgICAgdWludDMyX3QgICAgIGNoYW5uZWw7ICAgLyoqIGN1cnJlbnQgY2hhbm5lbC4gKGUuZyBrSHogZm9yIGJhbmQgdHlwZSBBTV9GTSkgKi8KKyAgICB1aW50MzJfdCAgICAgc3ViQ2hhbm5lbDsgLyoqIGN1cnJlbnQgc3ViIGNoYW5uZWwuIChGTV9IRCkgKi8KKyAgICBib29sICAgICAgICAgdHVuZWQ7ICAgICAvKiogdHVuZWQgdG8gYSBwcm9ncmFtIG9yIG5vdCAqLworICAgIGJvb2wgICAgICAgICBzdGVyZW87ICAgIC8qKiBwcm9ncmFtIGlzIHN0ZXJlbyBvciBub3QgKi8KKyAgICBib29sICAgICAgICAgZGlnaXRhbDsgICAvKiogZGlnaXRhbCBwcm9ncmFtIG9yIG5vdCAoZS5nIEhEIFJhZGlvIHByb2dyYW0pICovCisgICAgdWludDMyX3QgICAgIHNpZ25hbFN0cmVuZ3RoOyAvKiogc2lnbmFsIHN0cmVuZ3RoIGZyb20gMCB0byAxMDAgKi8KKyAgICB2ZWM8TWV0YURhdGE+IG1ldGFkYXRhOyAvKiogbm9uIGVtcHR5IGlmIG1ldGEgZGF0YSBhcmUgcHJlc2VudCAoZS5nIFBUWSwgc29uZyB0aXRsZSAuLi4pICovCit9OworCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvdnRzL0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjAvdnRzL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9icm9hZGNhc3RyYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjUyZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0LmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmVhZGIxCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNjM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpb0hpZGxIYWxUZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oPgorCisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OwordXNpbmcgOjphbmRyb2lkOjpDb25kaXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklUdW5lcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJVHVuZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6Q2xhc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6UHJvcGVydGllczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpCYW5kOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkJhbmRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6RGlyZWN0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OlByb2dyYW1JbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6Ok1ldGFEYXRhOworCisKKyNkZWZpbmUgUkVUVVJOX0lGX1NLSVBQRUQgXAorICAgIGlmIChza2lwcGVkKSB7IFwKKyAgICAgICAgc3RkOjpjb3V0IDw8ICJbICBTS0lQUEVEIF0gVGhpcyBkZXZpY2UgY2xhc3MgaXMgbm90IHN1cHBvcnRlZC4gIiA8PCBzdGQ6OmVuZGw7IFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgfQorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBCcm9hZGNhc3QgUmFkaW8gSElETCBIQUwuCisKK2NsYXNzIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UsCisgICAgICAgIHB1YmxpYyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxDbGFzcz4geworIHByb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBtUmFkaW8uZ2V0KCkpOworCisgICAgICAgIHJhZGlvQ2xhc3MgPSBHZXRQYXJhbSgpOworICAgICAgICBza2lwcGVkID0gZmFsc2U7CisKKyAgICAgICAgc3A8SUJyb2FkY2FzdFJhZGlvRmFjdG9yeT4gZmFjdG9yeSA9CisgICAgICAgICAgICAgIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBmYWN0b3J5LmdldCgpKTsKKworICAgICAgICBSZXN1bHQgY29ubmVjdFJlc3VsdDsKKyAgICAgICAgZmFjdG9yeS0+Y29ubmVjdE1vZHVsZShyYWRpb0NsYXNzLCBbJl0oUmVzdWx0IHJldCwgY29uc3Qgc3A8SUJyb2FkY2FzdFJhZGlvPiYgcmFkaW8pIHsKKyAgICAgICAgICAgIGNvbm5lY3RSZXN1bHQgPSByZXQ7CisgICAgICAgICAgICBtUmFkaW8gPSByYWRpbzsKKyAgICAgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrQ29ubmVjdENhbGxiYWNrdGltZW91dE5zKSk7CisgICAgICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgIGlmIChjb25uZWN0UmVzdWx0ID09IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpIHsKKyAgICAgICAgICAgIHNraXBwZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9FUShjb25uZWN0UmVzdWx0LCBSZXN1bHQ6Ok9LKTsKKworICAgICAgICBtVHVuZXJDYWxsYmFjayA9IG5ldyBNeUNhbGxiYWNrKHRoaXMpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgbVJhZGlvLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1UdW5lckNhbGxiYWNrLmdldCgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIG1UdW5lci5jbGVhcigpOworICAgICAgICBtUmFkaW8uY2xlYXIoKTsKKyAgICB9CisKKyAgICBjbGFzcyBNeUNhbGxiYWNrIDogcHVibGljIElUdW5lckNhbGxiYWNrIHsKKyAgICAgcHVibGljOgorCisgICAgICAgIC8vIElUdW5lckNhbGxiYWNrIG1ldGhvZHMgKHNlZSBkb2MgaW4gSVR1bmVyQ2FsbGJhY2suaGFsKQorICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYXJkd2FyZUZhaWx1cmUoKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uSHdGYWlsdXJlQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBjb25maWdDaGFuZ2UoUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgcmVzdWx0ICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uQ29uZmlnQ2hhbmdlQ2FsbGJhY2socmVzdWx0LCBjb25maWcpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHR1bmVDb21wbGV0ZShSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9ncmFtSW5mbyYgaW5mbykgeworICAgICAgICAgICAgQUxPR0koIiVzIHJlc3VsdCAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKyAgICAgICAgICAgIG1QYXJlbnRUZXN0LT5vblR1bmVDb21wbGV0ZUNhbGxiYWNrKHJlc3VsdCwgaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gYWZTd2l0Y2goY29uc3QgUHJvZ3JhbUluZm8mIGluZm8gX191bnVzZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBhbnRlbm5hU3RhdGVDaGFuZ2UoYm9vbCBjb25uZWN0ZWQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyBjb25uZWN0ZWQgJWQiLCBfX0ZVTkNUSU9OX18sIGNvbm5lY3RlZCk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gdHJhZmZpY0Fubm91bmNlbWVudChib29sIGFjdGl2ZSkgeworICAgICAgICAgICAgQUxPR0koIiVzIGFjdGl2ZSAlZCIsIF9fRlVOQ1RJT05fXywgYWN0aXZlKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBlbWVyZ2VuY3lBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyBhY3RpdmUgJWQiLCBfX0ZVTkNUSU9OX18sIGFjdGl2ZSk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gbmV3TWV0YWRhdGEodWludDMyX3QgY2hhbm5lbCBfX3VudXNlZCwgdWludDMyX3Qgc3ViQ2hhbm5lbCBfX3VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPE1ldGFEYXRhPiYgbWV0YWRhdGEgX191bnVzZWQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBNeUNhbGxiYWNrKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgKnBhcmVudFRlc3QpIDogbVBhcmVudFRlc3QocGFyZW50VGVzdCkge30KKworICAgICBwcml2YXRlOgorICAgICAgICAvLyBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0IGluc3RhbmNlIHRvIHdoaWNoIGNhbGxiYWNrcyB3aWxsIGJlIG5vdGlmaWVkLgorICAgICAgICBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0ICptUGFyZW50VGVzdDsKKyAgICB9OworCisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBhIGNhbGxiYWNrIHdpdGggbm8gc3RhdHVzIG9yIGJvb2xlYW4gdmFsdWUgaXMgcmVjZWl2ZWQKKyAgICAgKi8KKyAgICB2b2lkIG9uQ2FsbGJhY2soKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGhhcmR3YXJlRmFpbHVyZSgpIGNhbGxiYWNrIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvbkh3RmFpbHVyZUNhbGxiYWNrKCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBtSHdGYWlsdXJlID0gdHJ1ZTsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gY29uZmlnQ2hhbmdlKCkgY2FsbGJhY2sgaXMgcmVjZWl2ZWQuCisgICAgICovCisgICAgdm9pZCBvbkNvbmZpZ0NoYW5nZUNhbGxiYWNrKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gcmVzdWx0OworICAgICAgICBtQmFuZENvbmZpZ0NhbGxiYWNrRGF0YSA9IGNvbmZpZzsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gdHVuZUNvbXBsZXRlKCkgY2FsbGJhY2sgaXMgcmVjZWl2ZWQuCisgICAgICovCisgICAgdm9pZCBvblR1bmVDb21wbGV0ZUNhbGxiYWNrKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG1SZXN1bHRDYWxsYmFja0RhdGEgPSByZXN1bHQ7CisgICAgICAgIG1Qcm9ncmFtSW5mb0NhbGxiYWNrRGF0YSA9IGluZm87CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGEgYm9vbGVhbiBpbmRpY2F0aW9uIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvbkJvb2xDYWxsYmFjayhib29sIHJlc3VsdCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBtQm9vbENhbGxiYWNrRGF0YSA9IHJlc3VsdDsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisKKyAgICBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0KCkKKyAgICAgICAgOiBtQ2FsbGJhY2tDYWxsZWQoZmFsc2UpLCBtQm9vbENhbGxiYWNrRGF0YShmYWxzZSksIG1SZXN1bHRDYWxsYmFja0RhdGEoUmVzdWx0OjpPSyksCisgICAgICAgIG1Id0ZhaWx1cmUoZmFsc2UpIHt9CisKKyAgICB2b2lkIG9uQ2FsbGJhY2tfbCgpIHsKKyAgICAgICAgaWYgKCFtQ2FsbGJhY2tDYWxsZWQpIHsKKyAgICAgICAgICAgIG1DYWxsYmFja0NhbGxlZCA9IHRydWU7CisgICAgICAgICAgICBtQ2FsbGJhY2tDb25kLmJyb2FkY2FzdCgpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBib29sIHdhaXRGb3JDYWxsYmFjayhuc2Vjc190IHJlbHRpbWUgPSAwKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG5zZWNzX3QgZW5kVGltZSA9IHN5c3RlbVRpbWUoKSArIHJlbHRpbWU7CisgICAgICAgIHdoaWxlICghbUNhbGxiYWNrQ2FsbGVkKSB7CisgICAgICAgICAgICBpZiAocmVsdGltZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC53YWl0KG1Mb2NrKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbnNlY3NfdCBub3cgPSBzeXN0ZW1UaW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKG5vdyA+IGVuZFRpbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tDb25kLndhaXRSZWxhdGl2ZShtTG9jaywgZW5kVGltZSAtIG5vdyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBnZXRQcm9wZXJ0aWVzKCk7CisgICAgYm9vbCBvcGVuVHVuZXIoKTsKKyAgICBib29sIGNoZWNrQW50ZW5uYSgpOworCisgICAgc3RhdGljIGNvbnN0IG5zZWNzX3Qga0Nvbm5lY3RDYWxsYmFja3RpbWVvdXROcyA9IHNlY29uZHNfdG9fbmFub3NlY29uZHMoMSk7CisgICAgc3RhdGljIGNvbnN0IG5zZWNzX3Qga0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zID0gc2Vjb25kc190b19uYW5vc2Vjb25kcygxMCk7CisgICAgc3RhdGljIGNvbnN0IG5zZWNzX3Qga1R1bmVDYWxsYmFja3RpbWVvdXROcyA9IHNlY29uZHNfdG9fbmFub3NlY29uZHMoMzApOworCisgICAgQ2xhc3MgcmFkaW9DbGFzczsKKyAgICBib29sIHNraXBwZWQ7CisgICAgc3A8SUJyb2FkY2FzdFJhZGlvPiBtUmFkaW87CisgICAgUHJvcGVydGllcyBtSGFsUHJvcGVydGllczsKKyAgICBzcDxJVHVuZXI+IG1UdW5lcjsKKyAgICBzcDxNeUNhbGxiYWNrPiBtVHVuZXJDYWxsYmFjazsKKyAgICBNdXRleCBtTG9jazsKKyAgICBDb25kaXRpb24gbUNhbGxiYWNrQ29uZDsKKyAgICBib29sIG1DYWxsYmFja0NhbGxlZDsKKyAgICBib29sIG1Cb29sQ2FsbGJhY2tEYXRhOworICAgIFJlc3VsdCBtUmVzdWx0Q2FsbGJhY2tEYXRhOworICAgIFByb2dyYW1JbmZvIG1Qcm9ncmFtSW5mb0NhbGxiYWNrRGF0YTsKKyAgICBCYW5kQ29uZmlnIG1CYW5kQ29uZmlnQ2FsbGJhY2tEYXRhOworICAgIGJvb2wgbUh3RmFpbHVyZTsKK307CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzAgeworCisvKioKKyAqIENvbXBhcmVzIHR3byBCYW5kQ29uZmlnIG9iamVjdHMgZm9yIHRlc3RpbmcgcHVycG9zZXMuCisgKi8KK3N0YXRpYyBib29sIG9wZXJhdG9yPT0oY29uc3QgQmFuZENvbmZpZyYgbCwgY29uc3QgQmFuZENvbmZpZyYgcikgeworICAgIGlmIChsLnR5cGUgIT0gci50eXBlKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKGwuYW50ZW5uYUNvbm5lY3RlZCAhPSByLmFudGVubmFDb25uZWN0ZWQpIHJldHVybiBmYWxzZTsKKyAgICBpZiAobC5sb3dlckxpbWl0ICE9IHIubG93ZXJMaW1pdCkgcmV0dXJuIGZhbHNlOworICAgIGlmIChsLnVwcGVyTGltaXQgIT0gci51cHBlckxpbWl0KSByZXR1cm4gZmFsc2U7CisgICAgaWYgKGwuc3BhY2luZ3MgIT0gci5zcGFjaW5ncykgcmV0dXJuIGZhbHNlOworICAgIGlmIChsLnR5cGUgPT0gQmFuZDo6QU0gfHwgbC50eXBlID09IEJhbmQ6OkFNX0hEKSB7CisgICAgICAgIHJldHVybiBsLmV4dC5hbSA9PSByLmV4dC5hbTsKKyAgICB9IGVsc2UgaWYgKGwudHlwZSA9PSBCYW5kOjpGTSB8fCBsLnR5cGUgPT0gQmFuZDo6Rk1fSEQpIHsKKyAgICAgICAgcmV0dXJuIGwuZXh0LmZtID09IHIuZXh0LmZtOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIHVuc3VwcG9ydGVkIHR5cGUKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworfSAgLy8gVjFfMAorfSAgLy8gYnJvYWRjYXN0cmFkaW8KK30gIC8vIGhhcmR3YXJlCit9ICAvLyBhbmRyb2lkCisKK2Jvb2wgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdDo6Z2V0UHJvcGVydGllcygpCit7CisgICAgaWYgKG1IYWxQcm9wZXJ0aWVzLmJhbmRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgIFJlc3VsdCBoYWxSZXN1bHQgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPQorICAgICAgICAgICAgICAgIG1SYWRpby0+Z2V0UHJvcGVydGllcyhbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvcGVydGllcyYgcHJvcGVydGllcykgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUhhbFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgICAgICBFWFBFQ1RfRVEoQ2xhc3M6OkFNX0ZNLCBtSGFsUHJvcGVydGllcy5jbGFzc0lkKTsKKyAgICAgICAgRVhQRUNUX0dUKG1IYWxQcm9wZXJ0aWVzLm51bVR1bmVycywgMHUpOworICAgICAgICBFWFBFQ1RfR1QobUhhbFByb3BlcnRpZXMuYmFuZHMuc2l6ZSgpLCAwdSk7CisgICAgfQorICAgIHJldHVybiBtSGFsUHJvcGVydGllcy5iYW5kcy5zaXplKCkgPiAwOworfQorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6Om9wZW5UdW5lcigpCit7CisgICAgaWYgKCFnZXRQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobVR1bmVyLmdldCgpID09IG51bGxwdHIpIHsKKyAgICAgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICAgICAgbVJhZGlvLT5vcGVuVHVuZXIobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0sIHRydWUsIG1UdW5lckNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBzcDxJVHVuZXI+JiB0dW5lcikgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVR1bmVyID0gdHVuZXI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgd2FpdEZvckNhbGxiYWNrKGtDb25maWdDYWxsYmFja3RpbWVvdXROcykpOworICAgIH0KKyAgICBFWFBFQ1RfTkUobnVsbHB0ciwgbVR1bmVyLmdldCgpKTsKKyAgICByZXR1cm4gbnVsbHB0ciAhPSBtVHVuZXIuZ2V0KCk7Cit9CisKK2Jvb2wgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdDo6Y2hlY2tBbnRlbm5hKCkKK3sKKyAgICBCYW5kQ29uZmlnIGhhbENvbmZpZzsKKyAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPQorICAgICAgICAgICAgbVR1bmVyLT5nZXRDb25maWd1cmF0aW9uKFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbENvbmZpZyA9IGNvbmZpZzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKworICAgIHJldHVybiAoKGhhbFJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSAmJiAoaGFsQ29uZmlnLmFudGVubmFDb25uZWN0ZWQgPT0gdHJ1ZSkpOworfQorCisKKy8qKgorICogVGVzdCBJQnJvYWRjYXN0UmFkaW86OmdldFByb3BlcnRpZXMoKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcyBpcyBBTV9GTQorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGF0IGxlYXN0IG9uZSB0dW5lcgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGF0IG9uZSBiYW5kCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBHZXRQcm9wZXJ0aWVzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0VRKHRydWUsIGdldFByb3BlcnRpZXMoKSk7Cit9CisKKy8qKgorICogVGVzdCBJQnJvYWRjYXN0UmFkaW86Om9wZW5UdW5lcigpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIG1ldGhvZCByZXR1cm5zIDAgKG5vIGVycm9yKSBhbmQgYSB2YWxpZCBJVHVuZXIgaW50ZXJmYWNlCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBPcGVuVHVuZXIpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworfQorCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpvcGVuVHVuZXIoKSBhZnRlciBJVHVuZXIgZGlzcG9zYWwuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIElUdW5lciBkZXN0cnVjdGlvbiBnZXRzIHByb3BhZ2F0ZWQgdGhyb3VnaCBIQUwKKyAqICAtIHRoZSBvcGVuVHVuZXIgbWV0aG9kIHdvcmtzIHdlbGwgd2hlbiBjYWxsZWQgZm9yIHRoZSBzZWNvbmQgdGltZQorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgUmVvcGVuVHVuZXIpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgbVR1bmVyLmNsZWFyKCk7CisgICAgRVhQRUNUX1RSVUUob3BlblR1bmVyKCkpOworfQorCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpvcGVuVHVuZXIoKSBtZXRob2QgY2FsbGVkIHR3aWNlLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgb3BlblR1bmVyIG1ldGhvZCBmYWlscyB3aGVuIGNhbGxlZCBmb3IgdGhlIHNlY29uZCB0aW1lIHdpdGhvdXQgZGVsZXRpbmcgcHJldmlvdXMKKyAqICAgIElUdW5lciBpbnN0YW5jZQorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgT3BlblR1bmVyVHdpY2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfVFJVRShvcGVuVHVuZXIoKSk7CisKKyAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPQorICAgICAgICAgICAgbVJhZGlvLT5vcGVuVHVuZXIobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0sIHRydWUsIG1UdW5lckNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IHNwPElUdW5lcj4mKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgaGFsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oKSBhbmQgZ2V0Q29uZmlndXJhdGlvbiBtZXRob2RzCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyBib3RoIG1ldGhvZHMKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybiAwIChubyBlcnJvcikKKyAqICAtIHRoZSBjb25maWd1cmF0aW9uIGNhbGxiYWNrIGlzIHJlY2VpdmVkIHdpdGhpbiBrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqICAtIHRoZSBjb25maWd1cmF0aW9uIHJlYWQgYmFjayBmcm9tIEhBbCBoYXMgdGhlIHNhbWUgY2xhc3MgSWQKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNldEFuZEdldENvbmZpZ3VyYXRpb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworICAgIC8vIHRlc3Qgc2V0Q29uZmlndXJhdGlvbgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnNldENvbmZpZ3VyYXRpb24obUhhbFByb3BlcnRpZXMuYmFuZHNbMV0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgbVJlc3VsdENhbGxiYWNrRGF0YSk7CisgICAgRVhQRUNUX0VRKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzFdLCBtQmFuZENvbmZpZ0NhbGxiYWNrRGF0YSk7CisKKyAgICAvLyB0ZXN0IGdldENvbmZpZ3VyYXRpb24KKyAgICBCYW5kQ29uZmlnIGhhbENvbmZpZzsKKyAgICBSZXN1bHQgaGFsUmVzdWx0OworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICBoYWxDb25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgIEVYUEVDVF9FUShtSGFsUHJvcGVydGllcy5iYW5kc1sxXSwgaGFsQ29uZmlnKTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6c2V0Q29uZmlndXJhdGlvbigpIHdpdGggaW52YWxpZCBhcmd1bWVudHMuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMgb24gaW52YWxpZCBhcmd1bWVudHMKKyAqICAtIHRoZSBtZXRob2QgcmVjb3ZlcnMgYW5kIHN1Y2NlZWRzIGFmdGVyIHBhc3NpbmcgY29ycmVjdCBhcmd1bWVudHMKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNldENvbmZpZ3VyYXRpb25GYWlscykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEFTU0VSVF9FUSh0cnVlLCBvcGVuVHVuZXIoKSk7CisKKyAgICAvLyBMZXQncyBkZWZpbmUgYSBjb25maWcgdGhhdCdzIGJhZCBmb3Igc3VyZS4KKyAgICBCYW5kQ29uZmlnIGJhZENvbmZpZyA9IHt9OworICAgIGJhZENvbmZpZy50eXBlID0gQmFuZDo6Rk07CisgICAgYmFkQ29uZmlnLmxvd2VyTGltaXQgPSAweEZGRkZGRkZGOworICAgIGJhZENvbmZpZy51cHBlckxpbWl0ID0gMDsKKyAgICBiYWRDb25maWcuc3BhY2luZ3MgPSAoc3RkOjp2ZWN0b3I8dWludDMyX3Q+KXsgMCB9OworCisgICAgLy8gVGVzdCBzZXRDb25maWd1cmF0aW9uIGZhaWxpbmcgb24gYmFkIGRhdGEuCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgYXV0byBzZXRSZXN1bHQgPSBtVHVuZXItPnNldENvbmZpZ3VyYXRpb24oYmFkQ29uZmlnKTsKKyAgICBFWFBFQ1RfVFJVRShzZXRSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgc2V0UmVzdWx0KTsKKworICAgIC8vIFRlc3Qgc2V0Q29uZmlndXJhdGlvbiByZWNvdmVyaW5nIGFmdGVyIHBhc3NpbmcgZ29vZCBkYXRhLgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIHNldFJlc3VsdCA9IG1UdW5lci0+c2V0Q29uZmlndXJhdGlvbihtSGFsUHJvcGVydGllcy5iYW5kc1swXSk7CisgICAgRVhQRUNUX1RSVUUoc2V0UmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHNldFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgbVJlc3VsdENhbGxiYWNrRGF0YSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNjYW4KKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucworICogIC0gc2tpcHBpbmcgc3ViLWNoYW5uZWwgb3Igbm90IGRvZXMgbm90IGZhaWwgdGhlIGNhbGwKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNjYW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworICAgIEFTU0VSVF9UUlVFKGNoZWNrQW50ZW5uYSgpKTsKKyAgICAvLyB0ZXN0IHNjYW4gVVAKKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zY2FuKERpcmVjdGlvbjo6VVAsIHRydWUpOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisKKyAgICAvLyB0ZXN0IHNjYW4gRE9XTgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGhpZGxSZXN1bHQgPSBtVHVuZXItPnNjYW4oRGlyZWN0aW9uOjpET1dOLCBmYWxzZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgd2FpdEZvckNhbGxiYWNrKGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMpKTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6c3RlcAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIG1ldGhvZCByZXR1cm5zIDAgKG5vIGVycm9yKQorICogIC0gdGhlIHR1bmVkIGNhbGxiYWNrIGlzIHJlY2VpdmVkIHdpdGhpbiBrVHVuZUNhbGxiYWNrdGltZW91dE5zIG5zCisgKiAgLSBza2lwcGluZyBzdWItY2hhbm5lbCBvciBub3QgZG9lcyBub3QgZmFpbCB0aGUgY2FsbAorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgU3RlcCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEFTU0VSVF9FUSh0cnVlLCBvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworICAgIC8vIHRlc3Qgc3RlcCBVUAorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnN0ZXAoRGlyZWN0aW9uOjpVUCwgZmFsc2UpOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisKKyAgICAvLyB0ZXN0IHN0ZXAgRE9XTgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGhpZGxSZXN1bHQgPSBtVHVuZXItPnN0ZXAoRGlyZWN0aW9uOjpET1dOLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjp0dW5lLCAgZ2V0UHJvZ3JhbUluZm9ybWF0aW9uIGFuZCBjYW5jZWwgbWV0aG9kcworICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZHMKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybiAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucyBhZnRlciB0dW5lKCkKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFR1bmVBbmRHZXRQcm9ncmFtSW5mb3JtYXRpb25BbmRDYW5jZWwpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworICAgIEFTU0VSVF9UUlVFKGNoZWNrQW50ZW5uYSgpKTsKKworICAgIC8vIHRlc3QgdHVuZQorICAgIEFTU0VSVF9HVChtSGFsUHJvcGVydGllcy5iYW5kc1swXS5zcGFjaW5ncy5zaXplKCksIDB1KTsKKyAgICBBU1NFUlRfR1QobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0udXBwZXJMaW1pdCwgbUhhbFByb3BlcnRpZXMuYmFuZHNbMF0ubG93ZXJMaW1pdCk7CisKKyAgICAvLyB0ZXN0IHNjYW4gVVAKKyAgICB1aW50MzJfdCBsb3dlckxpbWl0ID0gbUhhbFByb3BlcnRpZXMuYmFuZHNbMF0ubG93ZXJMaW1pdDsKKyAgICB1aW50MzJfdCB1cHBlckxpbWl0ID0gbUhhbFByb3BlcnRpZXMuYmFuZHNbMF0udXBwZXJMaW1pdDsKKyAgICB1aW50MzJfdCBzcGFjaW5nID0gbUhhbFByb3BlcnRpZXMuYmFuZHNbMF0uc3BhY2luZ3NbMF07CisKKyAgICB1aW50MzJfdCBjaGFubmVsID0KKyAgICAgICAgICAgIGxvd2VyTGltaXQgKyAoKCh1cHBlckxpbWl0IC0gbG93ZXJMaW1pdCkgLyAyICsgc3BhY2luZyAtIDEpIC8gc3BhY2luZykgKiBzcGFjaW5nOworICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIG1SZXN1bHRDYWxsYmFja0RhdGEgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT50dW5lKGNoYW5uZWwsIDApOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKGNoYW5uZWwsIG1Qcm9ncmFtSW5mb0NhbGxiYWNrRGF0YS5jaGFubmVsKTsKKworICAgIC8vIHRlc3QgZ2V0UHJvZ3JhbUluZm9ybWF0aW9uCisgICAgUHJvZ3JhbUluZm8gaGFsSW5mbzsKKyAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPSBtVHVuZXItPmdldFByb2dyYW1JbmZvcm1hdGlvbigKKyAgICAgICAgWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvKSB7CisgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICBoYWxJbmZvID0gaW5mbzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgIGlmIChtUmVzdWx0Q2FsbGJhY2tEYXRhID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgRVhQRUNUX0VRKHRydWUsIGhhbEluZm8udHVuZWQpOworICAgICAgICBFWFBFQ1RfTEUoaGFsSW5mby5jaGFubmVsLCB1cHBlckxpbWl0KTsKKyAgICAgICAgRVhQRUNUX0dFKGhhbEluZm8uY2hhbm5lbCwgbG93ZXJMaW1pdCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKGZhbHNlLCBoYWxJbmZvLnR1bmVkKTsKKyAgICB9CisKKyAgICAvLyB0ZXN0IGNhbmNlbAorICAgIG1UdW5lci0+dHVuZShsb3dlckxpbWl0LCAwKTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5jYW5jZWwoKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjp0dW5lIGZhaWxpbmcgd2hlbiBjaGFubmVsIG91dCBvZiB0aGUgcmFuZ2UgaXMgcHJvdmlkZWQuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyBJTlZBTElEX0FSR1VNRU5UUyB3aGVuIGFwcGxpY2FibGUKKyAqICAtIHRoZSBtZXRob2QgcmVjb3ZlcnMgYW5kIHN1Y2NlZWRzIGFmdGVyIHBhc3NpbmcgY29ycmVjdCBhcmd1bWVudHMKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFR1bmVGYWlsc091dE9mQm91bmRzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX1RSVUUob3BlblR1bmVyKCkpOworICAgIEFTU0VSVF9UUlVFKGNoZWNrQW50ZW5uYSgpKTsKKworICAgIC8vIGdldCBjdXJyZW50IGNoYW5uZWwgYm91bmRzCisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdDsKKyAgICBhdXRvIGNvbmZpZ1Jlc3VsdCA9IG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgaGFsQ29uZmlnID0gY29uZmlnOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKGNvbmZpZ1Jlc3VsdC5pc09rKCkpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworCisgICAgLy8gdHJ5IHRvIHR1bmUgc2xpZ2h0bHkgYWJvdmUgdGhlIGxpbWl0IGFuZCBleHBlY3QgdG8gZmFpbAorICAgIGF1dG8gYmFkQ2hhbm5lbCA9IGhhbENvbmZpZy51cHBlckxpbWl0ICsgaGFsQ29uZmlnLnNwYWNpbmdzWzBdOworICAgIGF1dG8gdHVuZVJlc3VsdCA9IG1UdW5lci0+dHVuZShiYWRDaGFubmVsLCAwKTsKKyAgICBFWFBFQ1RfVFJVRSh0dW5lUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHR1bmVSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisKKyAgICAvLyB0dW5pbmcgZXhhY3RseSBhdCB0aGUgbGltaXQgc2hvdWxkIHN1Y2NlZWQKKyAgICBhdXRvIGdvb2RDaGFubmVsID0gaGFsQ29uZmlnLnVwcGVyTGltaXQ7CisgICAgdHVuZVJlc3VsdCA9IG1UdW5lci0+dHVuZShnb29kQ2hhbm5lbCwgMCk7CisgICAgRVhQRUNUX1RSVUUodHVuZVJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCB0dW5lUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworfQorCitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0Q2FzZXMsCisgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlcyhDbGFzczo6QU1fRk0sIENsYXNzOjpTQVQsIENsYXNzOjpEVCkpOworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLmJwIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I1MDQxNgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODYgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUJyb2FkY2FzdFJhZGlvLmhhbCIsCisgICAgICAgICJJQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbCIsCisgICAgICAgICJJVHVuZXIuaGFsIiwKKyAgICAgICAgIklUdW5lckNhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnJvYWRjYXN0UmFkaW9BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0Jyb2FkY2FzdFJhZGlvRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvVHVuZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL1R1bmVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cbkh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9CcEh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cc0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lId0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JuSHdCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9CcEh3QnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnNCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JVHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JuSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JwSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JzVHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JVHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lId1R1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cbkh3VHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JwSHdUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnNUdW5lckNhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0YzU1ZAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW8uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMzdkNDkKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvLmhhbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OklCcm9hZGNhc3RSYWRpbzsKKworaW50ZXJmYWNlIElCcm9hZGNhc3RSYWRpbyBleHRlbmRzIEAxLjA6OklCcm9hZGNhc3RSYWRpbyB7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBpbXBsZW1lbnRhdGlvbiBwcm9wZXJ0aWVzLgorICAgICAqIEByZXR1cm4gcHJvcGVydGllcyBBIFByb3BlcnRpZXMgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW1wbGVtZW50YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gYW5kIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBnZXRQcm9wZXJ0aWVzXzFfMSgpIGdlbmVyYXRlcyAoUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKKworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2UxY2MwCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaGFsCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xOworCitpbXBvcnQgQDEuMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeTsKKworLyoqCisgKiBUbyB1c2UgMS4xIGZlYXR1cmVzIHlvdSBtdXN0IGNhc3Qgc3BlY2lmaWMgaW50ZXJmYWNlcyBhZnRlciBiZWluZyByZXR1cm5lZCBmcm9tIDEuMCBIQUwsCisgKiBmb3IgZXhhbXBsZSBWMV8xOjpJVHVuZXI6OmNhc3RGcm9tKCkgYWZ0ZXIgcmV0cmlldmluZyBpdCBmcm9tIElCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKCkuCisgKiBUaGUgMS4xIHNlcnZlciBtdXN0IGFsd2F5cyByZXR1cm4gdGhlIDEuMSB2ZXJzaW9uIG9mIHNwZWNpZmljIGludGVyZmFjZS4KKyAqLworaW50ZXJmYWNlIElCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgZXh0ZW5kcyBAMS4wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IHsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9JVHVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZDQ1YzYKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmhhbApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OklUdW5lcjsKKworaW50ZXJmYWNlIElUdW5lciBleHRlbmRzIEAxLjA6OklUdW5lciB7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBjdXJyZW50IHN0YXRpb24gaW5mb3JtYXRpb24uCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgc2NhbiBzdWNjZXNzZnVsbHkgc3RhcnRlZAorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpZiBhbm90aGVyIGVycm9yIG9jY3VycworICAgICAqIEByZXR1cm4gaW5mbyBDdXJyZW50IHByb2dyYW0gaW5mb3JtYXRpb24uCisgICAgICovCisgICAgZ2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWF0ZXMgYSBiYWNrZ3JvdW5kIHNjYW4gdG8gdXBkYXRlIGludGVybmFsbHkgY2FjaGVkIHByb2dyYW0gbGlzdC4KKyAgICAgKgorICAgICAqIEhBTCBjbGllbnQgbWF5IG5vdCBuZWVkIHRvIGluaXRpYXRlIHRoZSBzY2FuIGV4cGxpY2l0bHkgd2l0aCB0aGlzIGNhbGwsCisgICAgICogaWUuIEhBTCBpbXBsZW1lbnRhdGlvbiBNQVkgcGVyZm9ybSB0aGUgc2NhbiBvbiBib290LiBJdCdzIGEgY29tbW9uCisgICAgICogcHJhY3RpY2UgaW4gZGV2aWNlcyB3aXRoIHR3byBwaHlzaWNhbCB0dW5lcnMgd2l0aCBiYWNrZ3JvdW5kIHNjYW5uaW5nLgorICAgICAqCisgICAgICogRGV2aWNlIG11c3QgY2FsbCBiYWNrZ3JvdW5kU2NhbkNvbXBsZXRlIGlmIHRoZSByZXN1bHQgaXMgT0ssIGV2ZW4gaWYgdGhlCisgICAgICogc2NhbiBmYWlscyBsYXRlciAoaXQgbXVzdCBwYXNzIHByb3BlciByZXN1bHQgdGhyb3VnaCB0aGUgY2FsbGJhY2spLgorICAgICAqIE90aGVyd2lzZSwgYmFja2dyb3VuZFNjYW5Db21wbGV0ZSBtdXN0IG5vdCBiZSBjYWxsZWQgYXMgYSByZXN1bHQgb2YgdGhpcworICAgICAqIGNlcnRhaW4gYXR0ZW1wdC4gSXQgbWF5IHN0aWxsIGJlIGNhbGxlZCBhcyBhIHJlc3BvbnNlIHRvIGFub3RoZXIgY2FsbCB0bworICAgICAqIHN0YXJ0QmFja2dyb3VuZFNjYW4sIGZvcm1lciBvciBsYXR0ZXIuCisgICAgICoKKyAgICAgKiBEZXZpY2UgbWF5IHV0aWxpemUgYW4gYWxyZWFkeSBydW5uaW5nIChidXQgbm90IGZpbmlzaGVkKSBzY2FuIGZvcgorICAgICAqIHN1YnNlcXVlbnQgY2FsbHMgdG8gc3RhcnRCYWNrZ3JvdW5kU2NhbiwgaXNzdWluZyBhIHNpbmdsZQorICAgICAqIGJhY2tncm91bmRTY2FuQ29tcGxldGUgY2FsbGJhY2suCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0aGUgc2NhbiB3YXMgcHJvcGVybHkgc2NoZWR1bGVkICh0aGlzIGRvZXMgbm90IG1lYW4KKyAgICAgKiAgICAgICAgICAgICAgICBpdCBzdWNjZXNzZnVsbHkgZmluaXNoZWQpLgorICAgICAqICAgICAgICAgICAgICAgIFRFTVBPUkFSSUxZX1VOQVZBSUxBQkxFIGlmIHRoZSBiYWNrZ3JvdW5kIHNjYW4gaXMKKyAgICAgKiAgICAgICAgICAgICAgICB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZSwgaWUuIGR1ZSB0byBvbmdvaW5nIGZvcmVncm91bmQKKyAgICAgKiAgICAgICAgICAgICAgICBwbGF5YmFjayBpbiBzaW5nbGUtdHVuZXIgZGV2aWNlLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBvdGhlciBlcnJvciwgaWUuIEhXIGZhaWx1cmUuCisgICAgICovCisgICAgc3RhcnRCYWNrZ3JvdW5kU2NhbigpIGdlbmVyYXRlcyAoUHJvZ3JhbUxpc3RSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHN0YXRpb24gbGlzdC4KKyAgICAgKgorICAgICAqIFRoaXMgY2FsbCBkb2VzIG5vdCB0cmlnZ2VyIGFjdHVhbCBzY2FuLCBidXQgb3BlcmF0ZXMgb24gdGhlIGxpc3QgY2FjaGVkCisgICAgICogaW50ZXJuYWxseSBhdCB0aGUgZHJpdmVyIGxldmVsLgorICAgICAqCisgICAgICogQHBhcmFtIGZpbHRlciB2ZW5kb3Itc3BlY2lmaWMgZmlsdGVyIGZvciB0aGUgc3RhdGlvbnMgdG8gYmUgcmV0cmlldmVkLgorICAgICAqICAgICAgICAgICAgICAgQW4gZW1wdHkgc3RyaW5nIE1VU1QgcmVzdWx0IGluIGZ1bGwgbGlzdC4KKyAgICAgKiAgICAgICAgICAgICAgIENsaWVudCBhcHBsaWNhdGlvbiBNVVNUIHZlcmlmeSB2ZW5kb3IvcHJvZHVjdCBuYW1lCisgICAgICogICAgICAgICAgICAgICBiZWZvcmUgc2V0dGluZyB0aGlzIHBhcmFtZXRlciB0byBhbnl0aGluZyBlbHNlLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHRoZSBsaXN0IHdhcyBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9SRUFEWSBpZiB0aGUgc2NhbiBpcyBpbiBwcm9ncmVzcy4KKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfU1RBUlRFRCBpZiB0aGUgc2NhbiBoYXMgbm90IGJlZW4gc3RhcnRlZCwgY2xpZW50IG1heQorICAgICAqICAgICAgICAgICAgICAgIGNhbGwgc3RhcnRCYWNrZ3JvdW5kU2NhbiB0byBmaXggdGhpcy4KKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW55IG90aGVyIGVycm9yIG9jY3Vycy4KKyAgICAgKiBAcmV0dXJuIHByb2dyYW1MaXN0IExpc3Qgb2Ygc3RhdGlvbnMgYXZhaWxhYmxlIGZvciB1c2VyLgorICAgICAqLworICAgIGdldFByb2dyYW1MaXN0KHN0cmluZyBmaWx0ZXIpCisgICAgICAgIGdlbmVyYXRlcyAoUHJvZ3JhbUxpc3RSZXN1bHQgcmVzdWx0LCB2ZWM8UHJvZ3JhbUluZm8+IHByb2dyYW1MaXN0KTsKKworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9JVHVuZXJDYWxsYmFjay5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3Y2U5ODQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xOworCitpbXBvcnQgQDEuMDo6SVR1bmVyQ2FsbGJhY2s7CisKKy8qKgorICogU29tZSBtZXRob2RzIG9mIEAxLjE6OklUdW5lckNhbGxiYWNrIGFyZSB1cGRhdGVkIHZlcnNpb25zIG9mIHRob3NlIGZyb20KKyAqIEAxLjA6SVR1bmVyQ2FsbGJhY2suIEFsbCAxLjEgSEFMIGltcGxlbWVudGF0aW9ucyBtdXN0IGNhbGwgYm90aAorICogKGVnLiB0dW5lQ29tcGxldGUgYW5kIHR1bmVDb21wbGV0ZV8xXzEpLCB3aGlsZSAxLjEgY2xpZW50cyBtYXkgaWdub3JlIDEuMAorICogb25lcywgdG8gYXZvaWQgcmVjZWl2aW5nIGEgY2FsbGJhY2sgdHdpY2UuCisgKi8KK2ludGVyZmFjZSBJVHVuZXJDYWxsYmFjayBleHRlbmRzIEAxLjA6OklUdW5lckNhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIHR1bmluZyBvcGVyYXRpb24gY29tcGxldGVzCisgICAgICogZm9sbG93aW5nIGEgc3RlcCgpLCBzY2FuKCkgb3IgdHVuZSgpIGNvbW1hbmQuCisgICAgICogQHBhcmFtIHJlc3VsdCBPSyBpZiB0dW5lIHN1Y2NlZWRlZCBvciBUSU1FT1VUIGluIGNhc2Ugb2YgdGltZSBvdXQuCisgICAgICogQHBhcmFtIGluZm8gQSBQcm9ncmFtSW5mbyBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgdHVuZWQgc3RhdGlvbi4KKyAgICAgKi8KKyAgICBvbmV3YXkgdHVuZUNvbXBsZXRlXzFfMShSZXN1bHQgcmVzdWx0LCBQcm9ncmFtSW5mbyBpbmZvKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgZnJlcXVlbmN5IHN3aXRjaCBvY2N1cnMuCisgICAgICogQHBhcmFtIGluZm8gQSBQcm9ncmFtSW5mbyBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgbmV3IHR1bmVkIHN0YXRpb24uCisgICAgICovCisgICAgb25ld2F5IGFmU3dpdGNoXzFfMShQcm9ncmFtSW5mbyBpbmZvKTsKKworICAgIC8qKgorICAgICAqIENhbGxlZCBieSB0aGUgSEFMIHdoZW4gYmFja2dyb3VuZCBzY2FuIGluaXRpYXRlZCBieSBzdGFydEJhY2tncm91bmRTY2FuCisgICAgICogZmluaXNoZXMuIElmIHRoZSBsaXN0IHdhcyBjaGFuZ2VkLCBwcm9ncmFtTGlzdENoYW5nZWQgbXVzdCBiZSBjYWxsZWQgdG9vLgorICAgICAqIEBwYXJhbSByZXN1bHQgT0sgaWYgdGhlIHNjYW4gc3VjY2VlZGVkLCBjbGllbnQgbWF5IHJldHJpZXZlIHRoZSBhY3R1YWwKKyAgICAgKiAgICAgICAgICAgICAgIGxpc3Qgd2l0aCBJVHVuZXI6OmdldFByb2dyYW1MaXN0LgorICAgICAqICAgICAgICAgICAgICAgVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEUgaWYgdGhlIHNjYW4gd2FzIGludGVycnVwdGVkIGR1ZSB0bworICAgICAqICAgICAgICAgICAgICAgaGFyZHdhcmUgYmVjb21pbmcgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuCisgICAgICogICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgb3RoZXIgZXJyb3IsIGllLiBIVyBmYWlsdXJlLgorICAgICAqLworICAgIG9uZXdheSBiYWNrZ3JvdW5kU2NhbkNvbXBsZXRlKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgZWFjaCB0aW1lIHRoZSBpbnRlcm5hbGx5IGNhY2hlZCBwcm9ncmFtIGxpc3QgY2hhbmdlcy4gSEFMIG1heSBub3QKKyAgICAgKiBjYWxsIGl0IGltbWVkaWF0ZWx5LCBpZS4gaXQgbWF5IHdhaXQgZm9yIGEgc2hvcnQgdGltZSB0byBhY2N1bXVsYXRlCisgICAgICogbXVsdGlwbGUgbGlzdCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBpbnRvIGEgc2luZ2xlIGV2ZW50LgorICAgICAqCisgICAgICogSXQgbWF5IGJlIHRyaWdnZXJlZCBlaXRoZXIgYnkgYW4gZXhwbGljaXRseSBpc3N1ZWQgYmFja2dyb3VuZCBzY2FuLAorICAgICAqIG9yIGEgc2NhbiBpc3N1ZWQgYnkgdGhlIGRldmljZSBpbnRlcm5hbGx5LgorICAgICAqCisgICAgICogQ2xpZW50IG1heSByZXRyaWV2ZSB0aGUgYWN0dWFsIGxpc3Qgd2l0aCBJVHVuZXI6OmdldFByb2dyYW1MaXN0LgorICAgICAqLworICAgIG9uZXdheSBwcm9ncmFtTGlzdENoYW5nZWQoKTsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvV0FSTklORyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9XQVJOSU5HCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NjdjZmEKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvV0FSTklORwpAQCAtMCwwICsxIEBACitUaGlzIGlzIGV4cGVyaW1lbnRhbCBpbnRlcmZhY2UsIGRvIG5vdCB1c2UgaXQgeWV0LgpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQW5kcm9pZC5tayBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIzMmQ1MAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMS1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX0NGTEFHUyArPSAtV2Vycm9yIC1XYWxsIC1XZXh0cmEKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQnJvYWRjYXN0UmFkaW8uY3BwIFwKKyAgICBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwIFwKKyAgICBUdW5lci5jcHAgXAorICAgIFV0aWxzLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmxvZyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMSBcCisgICAgbGlicmFkaW9fbWV0YWRhdGEKKworaWZlcSAoJChzdHJpcCAkKEFVRElPU0VSVkVSX01VTFRJTElCKSksKQorTE9DQUxfTVVMVElMSUIgOj0gMzIKK2Vsc2UKK0xPQ0FMX01VTFRJTElCIDo9ICQoQVVESU9TRVJWRVJfTVVMVElMSUIpCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhjOWI5MwotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmNwcApAQCAtMCwwICsxLDE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIkJyb2FkY2FzdFJhZGlvIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiQnJvYWRjYXN0UmFkaW8uaCIKKyNpbmNsdWRlICJUdW5lci5oIgorI2luY2x1ZGUgIlV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworQnJvYWRjYXN0UmFkaW86OkJyb2FkY2FzdFJhZGlvKENsYXNzIGNsYXNzSWQpCisgICAgICAgIDogbVN0YXR1cyhSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRCksIG1DbGFzc0lkKGNsYXNzSWQpLCBtSHdEZXZpY2UoTlVMTCkKK3sKK30KKworQnJvYWRjYXN0UmFkaW86On5Ccm9hZGNhc3RSYWRpbygpCit7CisgICAgaWYgKG1Id0RldmljZSAhPSBOVUxMKSB7CisgICAgICAgIHJhZGlvX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgIH0KK30KKwordm9pZCBCcm9hZGNhc3RSYWRpbzo6b25GaXJzdFJlZigpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisgICAgQUxPR0koIiVzIG1DbGFzc0lkICVkIiwgX19GVU5DVElPTl9fLCBtQ2xhc3NJZCk7CisKKyAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgIGNvbnN0IGNoYXIgKmNsYXNzU3RyaW5nID0gVXRpbHM6OmdldENsYXNzU3RyaW5nKG1DbGFzc0lkKTsKKyAgICBpZiAoY2xhc3NTdHJpbmcgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiaW52YWxpZCBjbGFzcyBJRCAlZCIsIG1DbGFzc0lkKTsKKyAgICAgICAgbVN0YXR1cyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBTE9HSSgiJXMgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEICVzICVzIiwKKyAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBjbGFzc1N0cmluZyk7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBjbGFzc1N0cmluZywgJm1vZCk7CisgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgQUxPR0UoImNvdWxkbid0IGxvYWQgcmFkaW8gbW9kdWxlICVzLiVzICglcykiLAorICAgICAgICAgICAgICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcsIHN0cmVycm9yKC1yYykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJjID0gcmFkaW9faHdfZGV2aWNlX29wZW4obW9kLCAmbUh3RGV2aWNlKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3Qgb3BlbiByYWRpbyBodyBkZXZpY2UgaW4gJXMuJXMgKCVzKSIsCisgICAgICAgICAgICAgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lELCAicHJpbWFyeSIsIHN0cmVycm9yKC1yYykpOworICAgICAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uICE9IFJBRElPX0RFVklDRV9BUElfVkVSU0lPTl9DVVJSRU5UKSB7CisgICAgICAgIEFMT0dFKCJ3cm9uZyByYWRpbyBodyBkZXZpY2UgdmVyc2lvbiAlMDR4IiwgbUh3RGV2aWNlLT5jb21tb24udmVyc2lvbik7CisgICAgICAgIHJhZGlvX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgICAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgIH0gZWxzZSB7CisgICAgICAgIG1TdGF0dXMgPSBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworaW50IEJyb2FkY2FzdFJhZGlvOjpjbG9zZUhhbFR1bmVyKGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqaGFsVHVuZXIpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisgICAgfQorICAgIGlmIChoYWxUdW5lciA9PSAwKSB7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKyAgICByZXR1cm4gbUh3RGV2aWNlLT5jbG9zZV90dW5lcihtSHdEZXZpY2UsIGhhbFR1bmVyKTsKK30KKworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OklCcm9hZGNhc3RSYWRpbyBmb2xsb3cuCitSZXR1cm48dm9pZD4gQnJvYWRjYXN0UmFkaW86OmdldFByb3BlcnRpZXMoZ2V0UHJvcGVydGllc19jYiBfaGlkbF9jYikKK3sKKyAgICBpbnQgcmM7CisgICAgcmFkaW9faGFsX3Byb3BlcnRpZXNfdCBoYWxQcm9wZXJ0aWVzOworICAgIFByb3BlcnRpZXMgcHJvcGVydGllczsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByYyA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgcmMgPSBtSHdEZXZpY2UtPmdldF9wcm9wZXJ0aWVzKG1Id0RldmljZSwgJmhhbFByb3BlcnRpZXMpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoJnByb3BlcnRpZXMsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICB9CisKK2V4aXQ6CisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQnJvYWRjYXN0UmFkaW86OmdldFByb3BlcnRpZXNfMV8xKGdldFByb3BlcnRpZXNfMV8xX2NiIF9oaWRsX2NiIF9fdW51c2VkKQoreworICAgIHJldHVybiBTdGF0dXM6OmZyb21FeGNlcHRpb25Db2RlKFN0YXR1czo6RVhfVU5TVVBQT1JURURfT1BFUkFUSU9OKTsKK30KKworUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpvcGVuVHVuZXIoY29uc3QgQmFuZENvbmZpZyYgY29uZmlnLCBib29sIGF1ZGlvLAorICAgIGNvbnN0IHNwPFYxXzA6OklUdW5lckNhbGxiYWNrPiYgY2FsbGJhY2ssIG9wZW5UdW5lcl9jYiBfaGlkbF9jYikKK3sKKyAgICBzcDxUdW5lcj4gdHVuZXJJbXBsID0gbmV3IFR1bmVyKGNhbGxiYWNrLCB0aGlzKTsKKworICAgIHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1Id0RldmljZS0+b3Blbl90dW5lcihtSHdEZXZpY2UsICZoYWxDb25maWcsIGF1ZGlvLCBUdW5lcjo6Y2FsbGJhY2ssCisgICAgICAgICAgICB0dW5lckltcGwuZ2V0KCksICZoYWxUdW5lcik7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgdHVuZXJJbXBsLT5zZXRIYWxUdW5lcihoYWxUdW5lcik7CisgICAgfQorCisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCB0dW5lckltcGwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5oIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGUzMWEwCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcmFkaW8uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBWMV8wOjpDbGFzczsKK3VzaW5nIFYxXzA6OkJhbmRDb25maWc7Cit1c2luZyBWMV8wOjpQcm9wZXJ0aWVzOworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW8gOiBwdWJsaWMgVjFfMTo6SUJyb2FkY2FzdFJhZGlvIHsKKworICAgIEJyb2FkY2FzdFJhZGlvKENsYXNzIGNsYXNzSWQpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJQnJvYWRjYXN0UmFkaW8gZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9wZXJ0aWVzXzFfMShnZXRQcm9wZXJ0aWVzXzFfMV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5UdW5lcihjb25zdCBCYW5kQ29uZmlnJiBjb25maWcsIGJvb2wgYXVkaW8sCisgICAgICAgICAgICBjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLCBvcGVuVHVuZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgLy8gUmVmQmFzZQorICAgIHZpcnR1YWwgdm9pZCBvbkZpcnN0UmVmKCkgb3ZlcnJpZGU7CisKKyAgICBSZXN1bHQgaW5pdENoZWNrKCkgeyByZXR1cm4gbVN0YXR1czsgfQorICAgIGludCBjbG9zZUhhbFR1bmVyKGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqaGFsVHVuZXIpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgfkJyb2FkY2FzdFJhZGlvKCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIHNDbGFzc01vZHVsZU5hbWVzW107CisKKyAgICBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHZvaWQgY29udmVydEJhbmRDb25maWdGcm9tSGFsKEJhbmRDb25maWcgKmNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpOworICAgIHZvaWQgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKFByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfcHJvcGVydGllc190ICpoYWxQcm9wZXJ0aWVzKTsKKyAgICB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisKKyAgICBSZXN1bHQgbVN0YXR1czsKKyAgICBDbGFzcyBtQ2xhc3NJZDsKKyAgICBzdHJ1Y3QgcmFkaW9faHdfZGV2aWNlICptSHdEZXZpY2U7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfQlJPQURDQVNUUkFESU9fSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhiNmMzOQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSAiQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiCisjaW5jbHVkZSAiQnJvYWRjYXN0UmFkaW8uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvRmFjdG9yeTo6Y29ubmVjdE1vZHVsZShDbGFzcyBjbGFzc0lkLCBjb25uZWN0TW9kdWxlX2NiIF9oaWRsX2NiKSAgeworICAgIHNwPEJyb2FkY2FzdFJhZGlvPiBpbXBsID0gbmV3IEJyb2FkY2FzdFJhZGlvKGNsYXNzSWQpOworICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICBpZiAoaW1wbCAhPSAwKSB7CisgICAgICAgIHJldHZhbCA9IGltcGwtPmluaXRDaGVjaygpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGltcGwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSogSElETF9GRVRDSF9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5KGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICByZXR1cm4gbmV3IEJyb2FkY2FzdFJhZGlvRmFjdG9yeSgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGViODUxNAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfQlJPQURDQVNUUkFESU9GQUNUT1JZX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBWMV8wOjpDbGFzczsKKworc3RydWN0IEJyb2FkY2FzdFJhZGlvRmFjdG9yeSA6IHB1YmxpYyBJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IHsKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBjb25uZWN0TW9kdWxlKENsYXNzIGNsYXNzSWQsIGNvbm5lY3RNb2R1bGVfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworfTsKKworZXh0ZXJuICJDIiBJQnJvYWRjYXN0UmFkaW9GYWN0b3J5KiBISURMX0ZFVENIX0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzEKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyODA3NTQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9UdW5lci5jcHAKQEAgLTAsMCArMSwyMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlR1bmVyIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiQnJvYWRjYXN0UmFkaW8uaCIKKyNpbmNsdWRlICJUdW5lci5oIgorI2luY2x1ZGUgIlV0aWxzLmgiCisjaW5jbHVkZSA8c3lzdGVtL1JhZGlvTWV0YWRhdGFXcmFwcGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBUdW5lcjo6b25DYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQpCit7CisgICAgQmFuZENvbmZpZyBjb25maWc7CisgICAgUHJvZ3JhbUluZm8gaW5mbzsKKyAgICBoaWRsX3ZlYzxNZXRhRGF0YT4gbWV0YWRhdGE7CisKKyAgICBpZiAobUNhbGxiYWNrICE9IDApIHsKKyAgICAgICAgc3dpdGNoKGhhbEV2ZW50LT50eXBlKSB7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfQ09ORklHOgorICAgICAgICAgICAgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgmY29uZmlnLCAmaGFsRXZlbnQtPmNvbmZpZyk7CisgICAgICAgICAgICBtQ2FsbGJhY2stPmNvbmZpZ0NoYW5nZShVdGlsczo6Y29udmVydEhhbFJlc3VsdChoYWxFdmVudC0+c3RhdHVzKSwgY29uZmlnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0FOVEVOTkE6CisgICAgICAgICAgICBtQ2FsbGJhY2stPmFudGVubmFTdGF0ZUNoYW5nZShoYWxFdmVudC0+b24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfVFVORUQ6CisgICAgICAgICAgICBVdGlsczo6Y29udmVydFByb2dyYW1JbmZvRnJvbUhhbCgmaW5mbywgJmhhbEV2ZW50LT5pbmZvKTsKKyAgICAgICAgICAgIGlmIChtQ2FsbGJhY2sxXzEgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIG1DYWxsYmFjazFfMS0+dHVuZUNvbXBsZXRlXzFfMShVdGlsczo6Y29udmVydEhhbFJlc3VsdChoYWxFdmVudC0+c3RhdHVzKSwgaW5mbyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtQ2FsbGJhY2stPnR1bmVDb21wbGV0ZShVdGlsczo6Y29udmVydEhhbFJlc3VsdChoYWxFdmVudC0+c3RhdHVzKSwgaW5mby5iYXNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX01FVEFEQVRBOiB7CisgICAgICAgICAgICB1aW50MzJfdCBjaGFubmVsOworICAgICAgICAgICAgdWludDMyX3Qgc3ViX2NoYW5uZWw7CisgICAgICAgICAgICBpZiAocmFkaW9fbWV0YWRhdGFfZ2V0X2NoYW5uZWwoaGFsRXZlbnQtPm1ldGFkYXRhLCAmY2hhbm5lbCwgJnN1Yl9jaGFubmVsKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgVXRpbHM6OmNvbnZlcnRNZXRhRGF0YUZyb21IYWwobWV0YWRhdGEsIGhhbEV2ZW50LT5tZXRhZGF0YSk7CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5uZXdNZXRhZGF0YShjaGFubmVsLCBzdWJfY2hhbm5lbCwgbWV0YWRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9UQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+dHJhZmZpY0Fubm91bmNlbWVudChoYWxFdmVudC0+b24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfQUZfU1dJVENIOgorICAgICAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxFdmVudC0+aW5mbyk7CisgICAgICAgICAgICBpZiAobUNhbGxiYWNrMV8xICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2sxXzEtPmFmU3dpdGNoXzFfMShpbmZvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1DYWxsYmFjay0+YWZTd2l0Y2goaW5mby5iYXNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0VBOgorICAgICAgICAgICAgbUNhbGxiYWNrLT5lbWVyZ2VuY3lBbm5vdW5jZW1lbnQoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0hXX0ZBSUxVUkU6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBtQ2FsbGJhY2stPmhhcmR3YXJlRmFpbHVyZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vc3RhdGljCit2b2lkIFR1bmVyOjpjYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQsIHZvaWQgKmNvb2tpZSkKK3sKKyAgICB3cDxUdW5lcj4gd2VhayhyZWludGVycHJldF9jYXN0PFR1bmVyKj4oY29va2llKSk7CisgICAgc3A8VHVuZXI+IHR1bmVyID0gd2Vhay5wcm9tb3RlKCk7CisgICAgaWYgKHR1bmVyID09IDApIHJldHVybjsKKyAgICB0dW5lci0+b25DYWxsYmFjayhoYWxFdmVudCk7Cit9CisKK1R1bmVyOjpUdW5lcihjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLCBjb25zdCB3cDxCcm9hZGNhc3RSYWRpbz4mIHBhcmVudERldmljZSkKKyAgICAgICAgOiBtSGFsVHVuZXIoTlVMTCksIG1DYWxsYmFjayhjYWxsYmFjayksIG1DYWxsYmFjazFfMShJVHVuZXJDYWxsYmFjazo6Y2FzdEZyb20oY2FsbGJhY2spKSwKKyAgICAgICAgbVBhcmVudERldmljZShwYXJlbnREZXZpY2UpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKK30KKworCitUdW5lcjo6flR1bmVyKCkKK3sKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGNvbnN0IHNwPEJyb2FkY2FzdFJhZGlvPiBwYXJlbnREZXZpY2UgPSBtUGFyZW50RGV2aWNlLnByb21vdGUoKTsKKyAgICBpZiAocGFyZW50RGV2aWNlICE9IDApIHsKKyAgICAgICAgcGFyZW50RGV2aWNlLT5jbG9zZUhhbFR1bmVyKG1IYWxUdW5lcik7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OklUdW5lciBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c2V0Q29uZmlndXJhdGlvbihjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpICB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCBoYWxDb25maWc7CisgICAgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnVG9IYWwoJmhhbENvbmZpZywgJmNvbmZpZyk7CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5zZXRfY29uZmlndXJhdGlvbihtSGFsVHVuZXIsICZoYWxDb25maWcpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjx2b2lkPiBUdW5lcjo6Z2V0Q29uZmlndXJhdGlvbihnZXRDb25maWd1cmF0aW9uX2NiIF9oaWRsX2NiKSAgeworICAgIGludCByYzsKKyAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCBoYWxDb25maWc7CisgICAgQmFuZENvbmZpZyBjb25maWc7CisKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByYyA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgcmMgPSBtSGFsVHVuZXItPmdldF9jb25maWd1cmF0aW9uKG1IYWxUdW5lciwgJmhhbENvbmZpZyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgmY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICB9CisKK2V4aXQ6CisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCBjb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFR1bmVyOjpzY2FuKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5zY2FuKG1IYWxUdW5lciwgc3RhdGljX2Nhc3Q8cmFkaW9fZGlyZWN0aW9uX3Q+KGRpcmVjdGlvbiksIHNraXBTdWJDaGFubmVsKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c3RlcChEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgeworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoLUVOT0RFVik7CisgICAgfQorICAgIGludCByYyA9IG1IYWxUdW5lci0+c3RlcChtSGFsVHVuZXIsIHN0YXRpY19jYXN0PHJhZGlvX2RpcmVjdGlvbl90PihkaXJlY3Rpb24pLCBza2lwU3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnR1bmUodWludDMyX3QgY2hhbm5lbCwgdWludDMyX3Qgc3ViQ2hhbm5lbCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPnR1bmUobUhhbFR1bmVyLCBjaGFubmVsLCBzdWJDaGFubmVsKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6Y2FuY2VsKCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPmNhbmNlbChtSGFsVHVuZXIpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjx2b2lkPiBUdW5lcjo6Z2V0UHJvZ3JhbUluZm9ybWF0aW9uKGdldFByb2dyYW1JbmZvcm1hdGlvbl9jYiBfaGlkbF9jYikgIHsKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIHJldHVybiBnZXRQcm9ncmFtSW5mb3JtYXRpb25fMV8xKFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9ncmFtSW5mbyYgaW5mbykgeworICAgICAgICBfaGlkbF9jYihyZXN1bHQsIGluZm8uYmFzZSk7CisgICAgfSk7Cit9CisKK1JldHVybjx2b2lkPiBUdW5lcjo6Z2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMShnZXRQcm9ncmFtSW5mb3JtYXRpb25fMV8xX2NiIF9oaWRsX2NiKSAgeworICAgIGludCByYzsKKyAgICByYWRpb19wcm9ncmFtX2luZm9fdCBoYWxJbmZvOworICAgIFJhZGlvTWV0YWRhdGFXcmFwcGVyIG1ldGFkYXRhV3JhcHBlcigmaGFsSW5mby5tZXRhZGF0YSk7CisgICAgUHJvZ3JhbUluZm8gaW5mbzsKKworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJjID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJjID0gbUhhbFR1bmVyLT5nZXRfcHJvZ3JhbV9pbmZvcm1hdGlvbihtSGFsVHVuZXIsICZoYWxJbmZvKTsKKyAgICBpZiAocmMgPT0gMCkgeworICAgICAgICBVdGlsczo6Y29udmVydFByb2dyYW1JbmZvRnJvbUhhbCgmaW5mbywgJmhhbEluZm8pOworICAgIH0KKworZXhpdDoKKyAgICBfaGlkbF9jYihVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyksIGluZm8pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxQcm9ncmFtTGlzdFJlc3VsdD4gVHVuZXI6OnN0YXJ0QmFja2dyb3VuZFNjYW4oKSB7CisgICAgcmV0dXJuIFByb2dyYW1MaXN0UmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7Cit9CisKK1JldHVybjx2b2lkPiBUdW5lcjo6Z2V0UHJvZ3JhbUxpc3QoY29uc3QgaGlkbF9zdHJpbmcmIGZpbHRlciBfX3VudXNlZCwgZ2V0UHJvZ3JhbUxpc3RfY2IgX2hpZGxfY2IpIHsKKyAgICBoaWRsX3ZlYzxQcm9ncmFtSW5mbz4gcExpc3Q7CisgICAgLy8gVE9ETyhiLzM0MDU0ODEzKTogZG8gdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICBfaGlkbF9jYihQcm9ncmFtTGlzdFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBwTGlzdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1R1bmVyLmggYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9UdW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YjQ1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9UdW5lci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfVFVORVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfVFVORVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBWMV8wOjpEaXJlY3Rpb247CisKK3N0cnVjdCBCcm9hZGNhc3RSYWRpbzsKKworc3RydWN0IFR1bmVyIDogcHVibGljIElUdW5lciB7CisKKyAgICBUdW5lcihjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLCBjb25zdCB3cDxCcm9hZGNhc3RSYWRpbz4mIG1QYXJlbnREZXZpY2UpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJVHVuZXIgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ3VyYXRpb24oY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlndXJhdGlvbihnZXRDb25maWd1cmF0aW9uX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzY2FuKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0ZXAoRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBza2lwU3ViQ2hhbm5lbCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdHVuZSh1aW50MzJfdCBjaGFubmVsLCB1aW50MzJfdCBzdWJDaGFubmVsKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjYW5jZWwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvZ3JhbUluZm9ybWF0aW9uKGdldFByb2dyYW1JbmZvcm1hdGlvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzEoZ2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFByb2dyYW1MaXN0UmVzdWx0PiBzdGFydEJhY2tncm91bmRTY2FuKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb2dyYW1MaXN0KGNvbnN0IGhpZGxfc3RyaW5nJiBmaWx0ZXIsIGdldFByb2dyYW1MaXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIHN0YXRpYyB2b2lkIGNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCwgdm9pZCAqY29va2llKTsKKyAgICB2b2lkIG9uQ2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50KTsKKworICAgIHZvaWQgc2V0SGFsVHVuZXIoY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcikgeyBtSGFsVHVuZXIgPSBoYWxUdW5lcjsgfQorICAgIGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqZ2V0SGFsVHVuZXIoKSB7IHJldHVybiBtSGFsVHVuZXI7IH0KKworcHJpdmF0ZToKKyAgICB+VHVuZXIoKTsKKworICAgIGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqbUhhbFR1bmVyOworICAgIGNvbnN0IHNwPFYxXzA6OklUdW5lckNhbGxiYWNrPiBtQ2FsbGJhY2s7CisgICAgY29uc3Qgc3A8VjFfMTo6SVR1bmVyQ2FsbGJhY2s+IG1DYWxsYmFjazFfMTsKKyAgICBjb25zdCB3cDxCcm9hZGNhc3RSYWRpbz4gbVBhcmVudERldmljZTsKK307CisKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1RVTkVSX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1V0aWxzLmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjEzNDRlCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVXRpbHMuY3BwCkBAIC0wLDAgKzEsMjk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiQnJvYWRjYXN0UmFkaW9IYWxVdGlscyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vcmFkaW9fbWV0YWRhdGEuaD4KKworI2luY2x1ZGUgIlV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6QmFuZDsKK3VzaW5nIFYxXzA6OkRlZW1waGFzaXM7Cit1c2luZyBWMV8wOjpEaXJlY3Rpb247Cit1c2luZyBWMV8wOjpNZXRhZGF0YUtleTsKK3VzaW5nIFYxXzA6Ok1ldGFkYXRhVHlwZTsKK3VzaW5nIFYxXzA6OlJkczsKKworY29uc3QgY2hhciAqVXRpbHM6OnNDbGFzc01vZHVsZU5hbWVzW10gPSB7CisgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0ZNLCAvKiBjb3JyZXNwb25kcyB0byBSQURJT19DTEFTU19BTV9GTSAqLworICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRF9TQVQsICAvKiBjb3JyZXNwb25kcyB0byBSQURJT19DTEFTU19TQVQgKi8KKyAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSURfRFQsICAgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfRFQgKi8KK307CisKKy8vIG1ha2Ugc3VyZSBISURMIGVudW0gdmFsdWVzIGFyZSBhbGlnbmVkIHdpdGggbGVnYWN5IHZhbHVlcworc3RhdGljX2Fzc2VydChSQURJT19DTEFTU19BTV9GTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENsYXNzOjpBTV9GTSksCisgICAgICAgICJBTS9GTSBjbGFzcyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19DTEFTU19TQVQgPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6U0FUKSwKKyAgICAgICAgIlNBVCBjbGFzcyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19DTEFTU19EVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENsYXNzOjpEVCksCisgICAgICAgICJEVCBjbGFzcyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfQU0gPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpBTSksCisgICAgICAgICJBTSBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfRk0gPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpGTSksCisgICAgICAgICJGTSBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfQU1fSEQgPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpBTV9IRCksCisgICAgICAgICJBTSBIRCBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0JBTkRfRk1fSEQgPT0gc3RhdGljX2Nhc3Q8aW50PihCYW5kOjpGTV9IRCksCisgICAgICAgICJGTSBIRCBiYW5kIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fUkRTX05PTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihSZHM6Ok5PTkUpLAorICAgICAgICAiUkRTIE5PTkUgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fUkRTX1dPUkxEID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpXT1JMRCksCisgICAgICAgICJSRFMgV09STEQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fUkRTX1VTID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpVUyksCisgICAgICAgICJSRFMgVVMgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19ERUVNUEhBU0lTXzUwID09IHN0YXRpY19jYXN0PGludD4oRGVlbXBoYXNpczo6RDUwKSwKKyAgICAgICAgIkRlLWVtcGhhc2lzIDUwIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX0RFRU1QSEFTSVNfNzUgPT0gc3RhdGljX2Nhc3Q8aW50PihEZWVtcGhhc2lzOjpENzUpLAorICAgICAgICAiRGUtZW1waGFzaXMgNzUgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19ESVJFQ1RJT05fVVAgPT0gc3RhdGljX2Nhc3Q8aW50PihEaXJlY3Rpb246OlVQKSwKKyAgICAgICAgIkRpcmVjdGlvbiBVcCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19ESVJFQ1RJT05fRE9XTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KERpcmVjdGlvbjo6RE9XTiksCisgICAgICAgICJEaXJlY3Rpb24gVXAgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0lOVkFMSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OklOVkFMSUQpLAorICAgICAgICAiTWV0YWRhdGEgdHlwZSBJTlZBTElEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfSU5UID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpJTlQpLAorICAgICAgICAiTWV0YWRhdGEgdHlwZSBJTlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9URVhUID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpURVhUKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgVEVYVCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX1JBVyA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6UkFXKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgUkFXIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfQ0xPQ0sgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OkNMT0NLKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgQ0xPQ0sgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfSU5WQUxJRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpJTlZBTElEKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBJTlZBTElEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUEkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BJKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUEkgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19QUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSRFNfUFMpLAorICAgICAgICAiTWV0YWRhdGEga2V5IFJEU19QUyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkRTX1BUWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSRFNfUFRZKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUFRZIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SQkRTX1BUWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSQkRTX1BUWSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgUkJEU19QVFkgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpSRFNfUlQpLAorICAgICAgICAiTWV0YWRhdGEga2V5IFJEU19SVCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfVElUTEUgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6VElUTEUpLAorICAgICAgICAiTWV0YWRhdGEga2V5IFRJVExFIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BUlRJU1QgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6QVJUSVNUKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBBUlRJU1QgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0FMQlVNID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkFMQlVNKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBBTEJVTSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfR0VOUkUgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6R0VOUkUpLAorICAgICAgICAiTWV0YWRhdGEga2V5IEdFTlJFIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9JQ09OID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OklDT04pLAorICAgICAgICAiTWV0YWRhdGEga2V5IElDT04gbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0FSVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpBUlQpLAorICAgICAgICAiTWV0YWRhdGEga2V5IEFSVCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfQ0xPQ0sgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6Q0xPQ0spLAorICAgICAgICAiTWV0YWRhdGEga2V5IENMT0NLIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKKworLy9zdGF0aWMKK2NvbnN0IGNoYXIgKiBVdGlsczo6Z2V0Q2xhc3NTdHJpbmcoQ2xhc3MgQ2xhc3NJZCkKK3sKKyAgICBpbnQgaWQgPSBzdGF0aWNfY2FzdDxpbnQ+KENsYXNzSWQpOworCisgICAgaWYgKChpZCA8IDApIHx8CisgICAgICAgICAgICAoaWQgPj0gTkVMRU0oc0NsYXNzTW9kdWxlTmFtZXMpKSkgeworICAgICAgICBBTE9HRSgiaW52YWxpZCBjbGFzcyBJRCAlZCIsIGlkKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBzQ2xhc3NNb2R1bGVOYW1lc1tpZF07Cit9CisKKy8vc3RhdGljCitSZXN1bHQgVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaW50IHJjKQoreworICAgIHN3aXRjaCAocmMpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9TWVM6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FVElNRURPVVQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpUSU1FT1VUOworICAgICAgICBjYXNlIC1FTk9ERVY6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydEJhbmRDb25maWdGcm9tSGFsKAorICAgICAgICBCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpCit7CisKKyAgICBjb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxCYW5kPihoYWxDb25maWctPnR5cGUpOworICAgIGNvbmZpZy0+YW50ZW5uYUNvbm5lY3RlZCA9IGhhbENvbmZpZy0+YW50ZW5uYV9jb25uZWN0ZWQ7CisgICAgY29uZmlnLT5sb3dlckxpbWl0ID0gaGFsQ29uZmlnLT5sb3dlcl9saW1pdDsKKyAgICBjb25maWctPnVwcGVyTGltaXQgPSBoYWxDb25maWctPnVwcGVyX2xpbWl0OworICAgIGNvbmZpZy0+c3BhY2luZ3Muc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGludCAqPigmaGFsQ29uZmlnLT5zcGFjaW5nc1swXSksCisgICAgICAgICAgICBoYWxDb25maWctPm51bV9zcGFjaW5ncyAqIHNpemVvZih1aW50MzJfdCkpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIGNvbmZpZy0+c3BhY2luZ3MucmVzaXplKGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzKTsKKworICAgIGlmIChjb25maWctPnR5cGUgPT0gQmFuZDo6Rk0pIHsKKyAgICAgICAgY29uZmlnLT5leHQuZm0uZGVlbXBoYXNpcyA9IHN0YXRpY19jYXN0PERlZW1waGFzaXM+KGhhbENvbmZpZy0+Zm0uZGVlbXBoYXNpcyk7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLnN0ZXJlbyA9IGhhbENvbmZpZy0+Zm0uc3RlcmVvOworICAgICAgICBjb25maWctPmV4dC5mbS5yZHMgPSBzdGF0aWNfY2FzdDxSZHM+KGhhbENvbmZpZy0+Zm0ucmRzKTsKKyAgICAgICAgY29uZmlnLT5leHQuZm0udGEgPSBoYWxDb25maWctPmZtLnRhOworICAgICAgICBjb25maWctPmV4dC5mbS5hZiA9IGhhbENvbmZpZy0+Zm0uYWY7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLmVhID0gaGFsQ29uZmlnLT5mbS5lYTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25maWctPmV4dC5hbS5zdGVyZW8gPSBoYWxDb25maWctPmFtLnN0ZXJlbzsKKyAgICB9Cit9CisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoUHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgY29uc3QgcmFkaW9faGFsX3Byb3BlcnRpZXNfdCAqaGFsUHJvcGVydGllcykKK3sKKyAgICBwcm9wZXJ0aWVzLT5jbGFzc0lkID0gc3RhdGljX2Nhc3Q8Q2xhc3M+KGhhbFByb3BlcnRpZXMtPmNsYXNzX2lkKTsKKyAgICBwcm9wZXJ0aWVzLT5pbXBsZW1lbnRvci5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPmltcGxlbWVudG9yLCBzdHJsZW4oaGFsUHJvcGVydGllcy0+aW1wbGVtZW50b3IpKTsKKyAgICBwcm9wZXJ0aWVzLT5wcm9kdWN0LnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+cHJvZHVjdCwgc3RybGVuKGhhbFByb3BlcnRpZXMtPnByb2R1Y3QpKTsKKyAgICBwcm9wZXJ0aWVzLT52ZXJzaW9uLnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+dmVyc2lvbiwgc3RybGVuKGhhbFByb3BlcnRpZXMtPnZlcnNpb24pKTsKKyAgICBwcm9wZXJ0aWVzLT5zZXJpYWwuc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT5zZXJpYWwsIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT5zZXJpYWwpKTsKKyAgICBwcm9wZXJ0aWVzLT5udW1UdW5lcnMgPSBoYWxQcm9wZXJ0aWVzLT5udW1fdHVuZXJzOworICAgIHByb3BlcnRpZXMtPm51bUF1ZGlvU291cmNlcyA9IGhhbFByb3BlcnRpZXMtPm51bV9hdWRpb19zb3VyY2VzOworICAgIHByb3BlcnRpZXMtPnN1cHBvcnRzQ2FwdHVyZSA9IGhhbFByb3BlcnRpZXMtPnN1cHBvcnRzX2NhcHR1cmU7CisKKyAgICBCYW5kQ29uZmlnICpiYW5kcyA9CisgICAgICAgICAgICBuZXcgQmFuZENvbmZpZ1toYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHNdOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUHJvcGVydGllcy0+bnVtX2JhbmRzOyBpKyspIHsKKyAgICAgICAgY29udmVydEJhbmRDb25maWdGcm9tSGFsKCZiYW5kc1tpXSwgJmhhbFByb3BlcnRpZXMtPmJhbmRzW2ldKTsKKyAgICB9CisgICAgcHJvcGVydGllcy0+YmFuZHMuc2V0VG9FeHRlcm5hbChiYW5kcywgaGFsUHJvcGVydGllcy0+bnVtX2JhbmRzKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBwcm9wZXJ0aWVzLT5iYW5kcy5yZXNpemUoaGFsUHJvcGVydGllcy0+bnVtX2JhbmRzKTsKKyAgICBkZWxldGVbXSBiYW5kczsKK30KKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywgY29uc3QgQmFuZENvbmZpZyAqY29uZmlnKQoreworICAgIGhhbENvbmZpZy0+dHlwZSA9IHN0YXRpY19jYXN0PHJhZGlvX2JhbmRfdD4oY29uZmlnLT50eXBlKTsKKyAgICBoYWxDb25maWctPmFudGVubmFfY29ubmVjdGVkID0gY29uZmlnLT5hbnRlbm5hQ29ubmVjdGVkOworICAgIGhhbENvbmZpZy0+bG93ZXJfbGltaXQgPSBjb25maWctPmxvd2VyTGltaXQ7CisgICAgaGFsQ29uZmlnLT51cHBlcl9saW1pdCA9IGNvbmZpZy0+dXBwZXJMaW1pdDsKKyAgICBoYWxDb25maWctPm51bV9zcGFjaW5ncyA9IGNvbmZpZy0+c3BhY2luZ3Muc2l6ZSgpOworICAgIGlmIChoYWxDb25maWctPm51bV9zcGFjaW5ncyA+IFJBRElPX05VTV9TUEFDSU5HU19NQVgpIHsKKyAgICAgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPSBSQURJT19OVU1fU1BBQ0lOR1NfTUFYOworICAgIH0KKyAgICBtZW1jcHkoaGFsQ29uZmlnLT5zcGFjaW5ncywgY29uZmlnLT5zcGFjaW5ncy5kYXRhKCksCisgICAgICAgICAgIHNpemVvZih1aW50MzJfdCkgKiBoYWxDb25maWctPm51bV9zcGFjaW5ncyk7CisKKyAgICBpZiAoY29uZmlnLT50eXBlID09IEJhbmQ6OkZNKSB7CisgICAgICAgIGhhbENvbmZpZy0+Zm0uZGVlbXBoYXNpcyA9IHN0YXRpY19jYXN0PHJhZGlvX2RlZW1waGFzaXNfdD4oY29uZmlnLT5leHQuZm0uZGVlbXBoYXNpcyk7CisgICAgICAgIGhhbENvbmZpZy0+Zm0uc3RlcmVvID0gY29uZmlnLT5leHQuZm0uc3RlcmVvOworICAgICAgICBoYWxDb25maWctPmZtLnJkcyA9IHN0YXRpY19jYXN0PHJhZGlvX3Jkc190Pihjb25maWctPmV4dC5mbS5yZHMpOworICAgICAgICBoYWxDb25maWctPmZtLnRhID0gY29uZmlnLT5leHQuZm0udGE7CisgICAgICAgIGhhbENvbmZpZy0+Zm0uYWYgPSBjb25maWctPmV4dC5mbS5hZjsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5lYSA9IGNvbmZpZy0+ZXh0LmZtLmVhOworICAgIH0gZWxzZSB7CisgICAgICAgIGhhbENvbmZpZy0+YW0uc3RlcmVvID0gY29uZmlnLT5leHQuYW0uc3RlcmVvOworICAgIH0KK30KKworCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydFByb2dyYW1JbmZvRnJvbUhhbChQcm9ncmFtSW5mbyAqaW5mbywgcmFkaW9fcHJvZ3JhbV9pbmZvX3QgKmhhbEluZm8pCit7CisgICAgYXV0byAmaW5mb18xXzEgPSAqaW5mbzsKKyAgICBhdXRvICZpbmZvXzFfMCA9IGluZm8tPmJhc2U7CisKKyAgICBpbmZvXzFfMC5jaGFubmVsID0gaGFsSW5mby0+Y2hhbm5lbDsKKyAgICBpbmZvXzFfMC5zdWJDaGFubmVsID0gaGFsSW5mby0+c3ViX2NoYW5uZWw7CisgICAgaW5mb18xXzAudHVuZWQgPSBoYWxJbmZvLT50dW5lZDsKKyAgICBpbmZvXzFfMC5zdGVyZW8gPSBoYWxJbmZvLT5zdGVyZW87CisgICAgaW5mb18xXzAuZGlnaXRhbCA9IGhhbEluZm8tPmRpZ2l0YWw7CisgICAgaW5mb18xXzAuc2lnbmFsU3RyZW5ndGggPSBoYWxJbmZvLT5zaWduYWxfc3RyZW5ndGg7CisgICAgY29udmVydE1ldGFEYXRhRnJvbUhhbChpbmZvXzFfMC5tZXRhZGF0YSwgaGFsSW5mby0+bWV0YWRhdGEpOworICAgIC8vIFRPRE8oYi8zNDM0ODk0Nik6IGFkZCBzdXBwb3J0IGZvciBIQUwgMS4xIGZpZWxkcworICAgIGluZm9fMV8xLmZsYWdzID0gMDsKK30KKworLy9zdGF0aWMKK2ludCBVdGlsczo6Y29udmVydE1ldGFEYXRhRnJvbUhhbChoaWRsX3ZlYzxNZXRhRGF0YT4mIG1ldGFkYXRhLCByYWRpb19tZXRhZGF0YV90ICpoYWxNZXRhZGF0YSkKK3sKKyAgICBpZiAoaGFsTWV0YWRhdGEgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBhcmd1bWVudDogaGFsTWV0YWRhdGEgaXMgTlVMTCIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpbnQgY291bnQgPSByYWRpb19tZXRhZGF0YV9nZXRfY291bnQoaGFsTWV0YWRhdGEpOworICAgIGlmIChjb3VudCA8PSAwKSB7CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisgICAgTWV0YURhdGEgKm5ld01ldGFkYXRhID0gbmV3IE1ldGFEYXRhW2NvdW50XTsKKyAgICBpbnQgb3V0Q291bnQgPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICByYWRpb19tZXRhZGF0YV9rZXlfdCBrZXk7CisgICAgICAgIHJhZGlvX21ldGFkYXRhX3R5cGVfdCB0eXBlOworICAgICAgICB2b2lkICp2YWx1ZTsKKyAgICAgICAgc2l6ZV90IHNpemU7CisgICAgICAgIGlmIChyYWRpb19tZXRhZGF0YV9nZXRfYXRfaW5kZXgoaGFsTWV0YWRhdGEsIGkgLCAma2V5LCAmdHlwZSwgJnZhbHVlLCAmc2l6ZSkgIT0gMCB8fAorICAgICAgICAgICAgICAgIHNpemUgPT0gMCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfSU5UOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmludFZhbHVlID0gKihzdGF0aWNfY2FzdDxpbnQzMl90ICo+KHZhbHVlKSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX1RFWFQ6IHsKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uc3RyaW5nVmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyICo+KHZhbHVlKTsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfUkFXOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnJhd1ZhbHVlLnNldFRvRXh0ZXJuYWwoc3RhdGljX2Nhc3Q8dWludDhfdCAqPih2YWx1ZSksIHNpemUpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5yYXdWYWx1ZS5yZXNpemUoc2l6ZSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLOiB7CisgICAgICAgICAgICAgICAgcmFkaW9fbWV0YWRhdGFfY2xvY2tfdCAqY2xvY2sgPSBzdGF0aWNfY2FzdDxyYWRpb19tZXRhZGF0YV9jbG9ja190ICo+KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uY2xvY2tWYWx1ZS51dGNTZWNvbmRzU2luY2VFcG9jaCA9CisgICAgICAgICAgICAgICAgICAgICAgICBjbG9jay0+dXRjX3NlY29uZHNfc2luY2VfZXBvY2g7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmNsb2NrVmFsdWUudGltZXpvbmVPZmZzZXRJbk1pbnV0ZXMgPQorICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stPnRpbWV6b25lX29mZnNldF9pbl9taW51dGVzOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0udHlwZSA9IHN0YXRpY19jYXN0PE1ldGFkYXRhVHlwZT4odHlwZSk7CisgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5rZXkgPSBzdGF0aWNfY2FzdDxNZXRhZGF0YUtleT4oa2V5KTsKKyAgICAgICAgb3V0Q291bnQrKzsKKyAgICB9CisgICAgbWV0YWRhdGEuc2V0VG9FeHRlcm5hbChuZXdNZXRhZGF0YSwgb3V0Q291bnQpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIG1ldGFkYXRhLnJlc2l6ZShvdXRDb3VudCk7CisgICAgcmV0dXJuIG91dENvdW50OworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1V0aWxzLmggYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyOTAyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfVVRJTFNfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfVVRJTFNfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvdHlwZXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9yYWRpby5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIFYxXzA6OkNsYXNzOwordXNpbmcgVjFfMDo6QmFuZENvbmZpZzsKK3VzaW5nIFYxXzA6Ok1ldGFEYXRhOwordXNpbmcgVjFfMDo6UHJvcGVydGllczsKKworY2xhc3MgVXRpbHMgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyICogZ2V0Q2xhc3NTdHJpbmcoQ2xhc3MgQ2xhc3NJZCk7CisgICAgc3RhdGljIFJlc3VsdCBjb252ZXJ0SGFsUmVzdWx0KGludCByYyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydEJhbmRDb25maWdGcm9tSGFsKEJhbmRDb25maWcgKmNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbChQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICAgICAgY29uc3QgcmFkaW9faGFsX3Byb3BlcnRpZXNfdCAqaGFsUHJvcGVydGllcyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydEJhbmRDb25maWdUb0hhbChyYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnLAorICAgICAgICAgICAgY29uc3QgQmFuZENvbmZpZyAqY29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKFByb2dyYW1JbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFkaW9fcHJvZ3JhbV9pbmZvX3QgKmhhbEluZm8pOworICAgIHN0YXRpYyBpbnQgY29udmVydE1ldGFEYXRhRnJvbUhhbChoaWRsX3ZlYzxNZXRhRGF0YT4mIG1ldGFkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFkaW9fbWV0YWRhdGFfdCAqaGFsTWV0YWRhdGEpOworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIHNDbGFzc01vZHVsZU5hbWVzW107CisKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzEKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9VVElMU19ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvdHlwZXMuaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDIxZjJlCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmhhbApAQCAtMCwwICsxLDczIEBACisvKioKKyAqIENvcHlyaWdodCAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OnR5cGVzOworCit0eXBlZGVmIEAxLjA6OlJlc3VsdCBSZXN1bHQ7CisKK2VudW0gUHJvZ3JhbUxpc3RSZXN1bHQgOiBSZXN1bHQgeworICAgIE5PVF9SRUFEWSwKKyAgICBOT1RfU1RBUlRFRCwKKyAgICBURU1QT1JBUklMWV9VTkFWQUlMQUJMRSwKK307CisKKy8qKgorICogRXh0cmEgZmxhZ3MgZm9yIHByb2dyYW0gaW5mb3JtYXRpb24uCisgKi8KK2VudW0gUHJvZ3JhbUluZm9GbGFncyA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBTZXQgd2hlbiB0aGUgcHJvZ3JhbSBpcyBjdXJyZW50bHkgcGxheWluZyBsaXZlIHN0cmVhbS4KKyAgICAgKiBUaGlzIG1heSByZXN1bHQgaW4gYSBzbGlnaHRseSBhbHRlcmVkIHJlY2VwdGlvbiBwYXJhbWV0ZXJzLAorICAgICAqIHVzdWFsbHkgdGFyZ2V0dGVkIGF0IHJlZHVjZWQgbGF0ZW5jeS4KKyAgICAgKi8KKyAgICBMSVZFID0gMSA8PCAwLAorCisgICAgLyoqCisgICAgICogUmFkaW8gc3RyZWFtIGlzIG5vdCBwbGF5aW5nLCBpZS4gZHVlIHRvIGJhZCByZWNlcHRpb24gY29uZGl0aW9ucyBvcgorICAgICAqIGJ1ZmZlcmluZy4gSW4gdGhpcyBzdGF0ZSB2b2x1bWUga25vYiBNQVkgYmUgZGlzYWJsZWQgdG8gcHJldmVudCB1c2VyCisgICAgICogaW5jcmVhc2luZyB2b2x1bWUgdG9vIG11Y2guCisgICAgICovCisgICAgTVVURUQgPSAxIDw8IDEsCit9OworCitzdHJ1Y3QgUHJvcGVydGllcyB7CisgICAgQDEuMDo6UHJvcGVydGllcyBiYXNlOworCisgICAgLyoqCisgICAgICogVGhlIGhhcmR3YXJlIHN1cHBvcnRzIGJhY2tncm91bmQgc2Nhbm5pbmcgaW4gZ2VuZXJhbC4gQXQgdGhlIGdpdmVuIHRpbWUKKyAgICAgKiBpdCBtYXkgbm90IGJlIGF2YWlsYWJsZSB0aG91Z2gsIHNlZSBzdGFydEJhY2tncm91bmRTY2FuLgorICAgICAqLworICAgIGJvb2wgc3VwcG9ydHNCYWNrZ3JvdW5kU2Nhbm5pbmc7Cit9OworCisvKioKKyAqIFJhZGlvIHByb2dyYW0gaW5mb3JtYXRpb24uIFJldHVybmVkIGJ5IHRoZSBIQUwgd2l0aCBldmVudCBSQURJT19FVkVOVF9UVU5FRC4KKyAqIENvbnRhaW5zIGluZm9ybWF0aW9uIG9uIGN1cnJlbnRseSB0dW5lZCBjaGFubmVsLgorICovCitzdHJ1Y3QgUHJvZ3JhbUluZm8geworICAgIEAxLjA6OlByb2dyYW1JbmZvIGJhc2U7CisgICAgYml0ZmllbGQ8UHJvZ3JhbUluZm9GbGFncz4gZmxhZ3M7CisKKyAgICAvKioKKyAgICAgKiBWZW5kb3JzIGFyZSBhbGxvd2VkIHRvIGRlZmluZSB0aGVpciBvd24gc2V0IG9mIGZsYWdzIGFuZCBzdG9yZSBpdCBpbiB0aGlzCisgICAgICogZmllbGQuIFRoZXkgTVVTVCB2ZXJpZnkgdmVuZG9yL3Byb2R1Y3QgbmFtZSBmcm9tIFByb3BlcnRpZXMgc3RydWN0CisgICAgICogKElCcm9hZGNhc3RSYWRpbzo6Z2V0UHJvcGVydGllcykgYmVmb3JlIGRvaW5nIGFueSBpbnRlcnByZXRhdGlvbgorICAgICAqIG9mIHN1Y2ggdmFsdWVzLgorICAgICAqLworICAgIHVpbnQzMl90IHZlbmRvckZsYWdzOworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvQW5kcm9pZC5tayBiL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzRjNTVkCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YzA4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8xVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8xVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QuY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYzA1YzQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8xVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkJyb2FkY2FzdFJhZGlvSGlkbEhhbFRlc3QiCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxjdXRpbHMvbmF0aXZlX2hhbmRsZS5oPgorI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPHV0aWxzL3RocmVhZHMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JVHVuZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JVHVuZXJDYWxsYmFjay5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmg+CisKKworbmFtZXNwYWNlIFYxXzAgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDsKKwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6TXV0ZXg7Cit1c2luZyA6OmFuZHJvaWQ6OkNvbmRpdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6QmFuZENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpDbGFzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpEaXJlY3Rpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6Ok1ldGFEYXRhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OlByb3BlcnRpZXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJVHVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SVR1bmVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6UHJvZ3JhbUluZm87Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OlByb2dyYW1MaXN0UmVzdWx0OworCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEJyb2FkY2FzdCBSYWRpbyBISURMIEhBTC4KKworY2xhc3MgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgYXV0byBmYWN0b3J5ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUJyb2FkY2FzdFJhZGlvRmFjdG9yeT4oKTsKKyAgICAgICAgaWYgKGZhY3RvcnkgIT0gMCkgeworICAgICAgICAgICAgZmFjdG9yeS0+Y29ubmVjdE1vZHVsZShDbGFzczo6QU1fRk0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShSZXN1bHQgcmV0dmFsLCBjb25zdCA6OmFuZHJvaWQ6OnNwPElCcm9hZGNhc3RSYWRpbz4mIHJlc3VsdCkgeworICAgICAgICAgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgbVJhZGlvID0gSUJyb2FkY2FzdFJhZGlvOjpjYXN0RnJvbShyZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIG1UdW5lckNhbGxiYWNrID0gbmV3IE15Q2FsbGJhY2sodGhpcyk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtUmFkaW8uZ2V0KCkpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgbVR1bmVyQ2FsbGJhY2suZ2V0KCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgbVR1bmVyLmNsZWFyKCk7CisgICAgICAgIG1SYWRpby5jbGVhcigpOworICAgIH0KKworICAgIGNsYXNzIE15Q2FsbGJhY2sgOiBwdWJsaWMgSVR1bmVyQ2FsbGJhY2sgeworICAgICBwdWJsaWM6CisKKyAgICAgICAgLy8gSVR1bmVyQ2FsbGJhY2sgbWV0aG9kcyAoc2VlIGRvYyBpbiBJVHVuZXJDYWxsYmFjay5oYWwpCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhcmR3YXJlRmFpbHVyZSgpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBtUGFyZW50VGVzdC0+b25Id0ZhaWx1cmVDYWxsYmFjaygpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGNvbmZpZ0NoYW5nZShSZXN1bHQgcmVzdWx0LCBjb25zdCBCYW5kQ29uZmlnJiBjb25maWcgX191bnVzZWQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyByZXN1bHQgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisgICAgICAgICAgICBtUGFyZW50VGVzdC0+b25SZXN1bHRDYWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHR1bmVDb21wbGV0ZShSZXN1bHQgcmVzdWx0IF9fdW51c2VkLCBjb25zdCBWMV8wOjpQcm9ncmFtSW5mbyYgaW5mbyBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHR1bmVDb21wbGV0ZV8xXzEoUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvZ3JhbUluZm8mIGluZm8gX191bnVzZWQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyByZXN1bHQgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisgICAgICAgICAgICBtUGFyZW50VGVzdC0+b25SZXN1bHRDYWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFmU3dpdGNoKGNvbnN0IFYxXzA6OlByb2dyYW1JbmZvJiBpbmZvIF9fdW51c2VkKSB7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gYWZTd2l0Y2hfMV8xKGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvIF9fdW51c2VkKSB7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gYW50ZW5uYVN0YXRlQ2hhbmdlKGJvb2wgY29ubmVjdGVkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgY29ubmVjdGVkICVkIiwgX19GVU5DVElPTl9fLCBjb25uZWN0ZWQpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHRyYWZmaWNBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyBhY3RpdmUgJWQiLCBfX0ZVTkNUSU9OX18sIGFjdGl2ZSk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gZW1lcmdlbmN5QW5ub3VuY2VtZW50KGJvb2wgYWN0aXZlKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgYWN0aXZlICVkIiwgX19GVU5DVElPTl9fLCBhY3RpdmUpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG5ld01ldGFkYXRhKHVpbnQzMl90IGNoYW5uZWwgX191bnVzZWQsIHVpbnQzMl90IHN1YkNoYW5uZWwgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxNZXRhRGF0YT4mIG1ldGFkYXRhIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGJhY2tncm91bmRTY2FuQ29tcGxldGUoUHJvZ3JhbUxpc3RSZXN1bHQgcmVzdWx0IF9fdW51c2VkKSB7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcHJvZ3JhbUxpc3RDaGFuZ2VkKCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgICAgICAgICAgTXlDYWxsYmFjayhCcm9hZGNhc3RSYWRpb0hpZGxUZXN0ICpwYXJlbnRUZXN0KSA6IG1QYXJlbnRUZXN0KHBhcmVudFRlc3QpIHt9CisKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCBpbnN0YW5jZSB0byB3aGljaCBjYWxsYmFja3Mgd2lsbCBiZSBub3RpZmllZC4KKyAgICAgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCAqbVBhcmVudFRlc3Q7CisgICAgfTsKKworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gYSBjYWxsYmFjayB3aXRoIG5vIHN0YXR1cyBvciBib29sZWFuIHZhbHVlIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvbkNhbGxiYWNrKCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBoYXJkd2FyZUZhaWx1cmUoKSBjYWxsYmFjayBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25Id0ZhaWx1cmVDYWxsYmFjaygpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbUh3RmFpbHVyZSA9IHRydWU7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGEgY2FsbGJhY2sgd2l0aCBzdGF0dXMgaXMgcmVjZWl2ZWQKKyAgICAgKi8KKyAgICB2b2lkIG9uUmVzdWx0Q2FsbGJhY2soUmVzdWx0IHJlc3VsdCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gcmVzdWx0OworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBhIGJvb2xlYW4gaW5kaWNhdGlvbiBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25Cb29sQ2FsbGJhY2soYm9vbCByZXN1bHQpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbUJvb2xDYWxsYmFja0RhdGEgPSByZXN1bHQ7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworCisgICAgICAgIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QoKSA6CisgICAgICAgICAgICBtQ2FsbGJhY2tDYWxsZWQoZmFsc2UpLCBtQm9vbENhbGxiYWNrRGF0YShmYWxzZSksCisgICAgICAgICAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhKFJlc3VsdDo6T0spLCBtSHdGYWlsdXJlKGZhbHNlKSB7fQorCisgICAgdm9pZCBvbkNhbGxiYWNrX2woKSB7CisgICAgICAgIGlmICghbUNhbGxiYWNrQ2FsbGVkKSB7CisgICAgICAgICAgICBtQ2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC5icm9hZGNhc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbCB3YWl0Rm9yQ2FsbGJhY2sobnNlY3NfdCByZWx0aW1lID0gMCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBuc2Vjc190IGVuZFRpbWUgPSBzeXN0ZW1UaW1lKCkgKyByZWx0aW1lOworICAgICAgICB3aGlsZSAoIW1DYWxsYmFja0NhbGxlZCkgeworICAgICAgICAgICAgaWYgKHJlbHRpbWUgPT0gMCkgeworICAgICAgICAgICAgICAgIG1DYWxsYmFja0NvbmQud2FpdChtTG9jayk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5zZWNzX3Qgbm93ID0gc3lzdGVtVGltZSgpOworICAgICAgICAgICAgICAgIGlmIChub3cgPiBlbmRUaW1lKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC53YWl0UmVsYXRpdmUobUxvY2ssIGVuZFRpbWUgLSBub3cpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgZ2V0UHJvcGVydGllcygpOworICAgIGJvb2wgb3BlblR1bmVyKCk7CisgICAgYm9vbCBjaGVja0FudGVubmEoKTsKKworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtDb25maWdDYWxsYmFja3RpbWVvdXROcyA9IHNlY29uZHNfdG9fbmFub3NlY29uZHMoMTApOworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDMwKTsKKworICAgIHNwPElCcm9hZGNhc3RSYWRpbz4gbVJhZGlvOworICAgIFByb3BlcnRpZXMgbUhhbFByb3BlcnRpZXM7CisgICAgc3A8SVR1bmVyPiBtVHVuZXI7CisgICAgc3A8TXlDYWxsYmFjaz4gbVR1bmVyQ2FsbGJhY2s7CisgICAgTXV0ZXggbUxvY2s7CisgICAgQ29uZGl0aW9uIG1DYWxsYmFja0NvbmQ7CisgICAgYm9vbCBtQ2FsbGJhY2tDYWxsZWQ7CisgICAgYm9vbCBtQm9vbENhbGxiYWNrRGF0YTsKKyAgICBSZXN1bHQgbVJlc3VsdENhbGxiYWNrRGF0YTsKKyAgICBib29sIG1Id0ZhaWx1cmU7Cit9OworCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwIChrZXB0IHNpbmNlIHRoaXMgZmlsZSBpcyBhIHRlbXBsYXRlKS4KK2NsYXNzIEJyb2FkY2FzdFJhZGlvSGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9Cit9OworCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmdldFByb3BlcnRpZXMoKQoreworICAgIGlmIChtSGFsUHJvcGVydGllcy5iYW5kcy5zaXplKCkgPT0gMCkgeworICAgICAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgICAgICBtUmFkaW8tPmdldFByb3BlcnRpZXMoWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1IYWxQcm9wZXJ0aWVzID0gcHJvcGVydGllczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX0VRKENsYXNzOjpBTV9GTSwgbUhhbFByb3BlcnRpZXMuY2xhc3NJZCk7CisgICAgICAgIEVYUEVDVF9HVChtSGFsUHJvcGVydGllcy5udW1UdW5lcnMsIDB1KTsKKyAgICAgICAgRVhQRUNUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzLnNpemUoKSwgMHUpOworICAgIH0KKyAgICByZXR1cm4gbUhhbFByb3BlcnRpZXMuYmFuZHMuc2l6ZSgpID4gMDsKK30KKworYm9vbCBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0OjpvcGVuVHVuZXIoKQoreworICAgIGlmICghZ2V0UHJvcGVydGllcygpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKG1UdW5lci5nZXQoKSA9PSBudWxscHRyKSB7CisgICAgICAgIFJlc3VsdCBoYWxSZXN1bHQgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgYXV0byBoaWRsUmV0dXJuID0gbVJhZGlvLT5vcGVuVHVuZXIobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0sIHRydWUsIG1UdW5lckNhbGxiYWNrLAorICAgICAgICAgICAgICAgIFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBzcDxWMV8wOjpJVHVuZXI+JiB0dW5lcikgeworICAgICAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgbVR1bmVyID0gSVR1bmVyOjpjYXN0RnJvbSh0dW5lcik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUod2FpdEZvckNhbGxiYWNrKGtDb25maWdDYWxsYmFja3RpbWVvdXROcykpOworICAgIH0KKyAgICBFWFBFQ1RfTkUobnVsbHB0ciwgbVR1bmVyLmdldCgpKTsKKyAgICByZXR1cm4gbnVsbHB0ciAhPSBtVHVuZXIuZ2V0KCk7Cit9CisKK2Jvb2wgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdDo6Y2hlY2tBbnRlbm5hKCkKK3sKKyAgICBCYW5kQ29uZmlnIGhhbENvbmZpZzsKKyAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPQorICAgICAgICAgICAgbVR1bmVyLT5nZXRDb25maWd1cmF0aW9uKFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbENvbmZpZyA9IGNvbmZpZzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKworICAgIHJldHVybiAoKGhhbFJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSAmJiAoaGFsQ29uZmlnLmFudGVubmFDb25uZWN0ZWQgPT0gdHJ1ZSkpOworfQorCisKKy8qKgorICogVGVzdCBJQnJvYWRjYXN0UmFkaW86OmdldFByb3BlcnRpZXMoKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcyBpcyBBTV9GTQorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGF0IGxlYXN0IG9uZSB0dW5lcgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGF0IG9uZSBiYW5kCisgKi8KK1RFU1RfRihCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBHZXRQcm9wZXJ0aWVzKSB7CisgICAgRVhQRUNUX1RSVUUoZ2V0UHJvcGVydGllcygpKTsKK30KKworLyoqCisgKiBUZXN0IElCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpIGFuZCBhIHZhbGlkIElUdW5lciBpbnRlcmZhY2UKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIE9wZW5UdW5lcikgeworICAgIEVYUEVDVF9UUlVFKG9wZW5UdW5lcigpKTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6c2V0Q29uZmlndXJhdGlvbigpIGFuZCBnZXRDb25maWd1cmF0aW9uIG1ldGhvZHMKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIGJvdGggbWV0aG9kcworICogIC0gdGhlIG1ldGhvZHMgcmV0dXJuIDAgKG5vIGVycm9yKQorICogIC0gdGhlIGNvbmZpZ3VyYXRpb24gY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtDb25maWdDYWxsYmFja3RpbWVvdXROcyBucworICogIC0gdGhlIGNvbmZpZ3VyYXRpb24gcmVhZCBiYWNrIGZyb20gSEFsIGhhcyB0aGUgc2FtZSBjbGFzcyBJZAorICovCitURVNUX0YoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgU2V0QW5kR2V0Q29uZmlndXJhdGlvbikgeworICAgIEFTU0VSVF9UUlVFKG9wZW5UdW5lcigpKTsKKyAgICAvLyB0ZXN0IHNldENvbmZpZ3VyYXRpb24KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zZXRDb25maWd1cmF0aW9uKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgbVJlc3VsdENhbGxiYWNrRGF0YSk7CisKKyAgICAvLyB0ZXN0IGdldENvbmZpZ3VyYXRpb24KKyAgICBCYW5kQ29uZmlnIGhhbENvbmZpZzsKKyAgICBSZXN1bHQgaGFsUmVzdWx0OworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICBoYWxDb25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgIEVYUEVDVF9FUShtSGFsUHJvcGVydGllcy5iYW5kc1swXS50eXBlLCBoYWxDb25maWcudHlwZSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNjYW4KKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucworICovCitURVNUX0YoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgU2NhbikgeworICAgIEFTU0VSVF9UUlVFKG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisgICAgLy8gdGVzdCBzY2FuIFVQCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+c2NhbihEaXJlY3Rpb246OlVQLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisKKyAgICAvLyB0ZXN0IHNjYW4gRE9XTgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGhpZGxSZXN1bHQgPSBtVHVuZXItPnNjYW4oRGlyZWN0aW9uOjpET1dOLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnN0ZXAKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucworICovCitURVNUX0YoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgU3RlcCkgeworICAgIEFTU0VSVF9UUlVFKG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisgICAgLy8gdGVzdCBzdGVwIFVQCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+c3RlcChEaXJlY3Rpb246OlVQLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisKKyAgICAvLyB0ZXN0IHN0ZXAgRE9XTgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGhpZGxSZXN1bHQgPSBtVHVuZXItPnN0ZXAoRGlyZWN0aW9uOjpET1dOLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnR1bmUsICBnZXRQcm9ncmFtSW5mb3JtYXRpb24gYW5kIGNhbmNlbCBtZXRob2RzCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kcworICogIC0gdGhlIG1ldGhvZHMgcmV0dXJuIDAgKG5vIGVycm9yKQorICogIC0gdGhlIHR1bmVkIGNhbGxiYWNrIGlzIHJlY2VpdmVkIHdpdGhpbiBrVHVuZUNhbGxiYWNrdGltZW91dE5zIG5zIGFmdGVyIHR1bmUoKQorICovCitURVNUX0YoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgVHVuZUFuZEdldFByb2dyYW1JbmZvcm1hdGlvbkFuZENhbmNlbCkgeworICAgIEFTU0VSVF9UUlVFKG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisKKyAgICAvLyB0ZXN0IHR1bmUKKyAgICBBU1NFUlRfR1QobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0uc3BhY2luZ3Muc2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnVwcGVyTGltaXQsIG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLmxvd2VyTGltaXQpOworCisgICAgLy8gdGVzdCBzY2FuIFVQCisgICAgdWludDMyX3QgbG93ZXJMaW1pdCA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLmxvd2VyTGltaXQ7CisgICAgdWludDMyX3QgdXBwZXJMaW1pdCA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnVwcGVyTGltaXQ7CisgICAgdWludDMyX3Qgc3BhY2luZyA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnNwYWNpbmdzWzBdOworCisgICAgdWludDMyX3QgY2hhbm5lbCA9CisgICAgICAgICAgICBsb3dlckxpbWl0ICsgKCgodXBwZXJMaW1pdCAtIGxvd2VyTGltaXQpIC8gMiArIHNwYWNpbmcgLSAxKSAvIHNwYWNpbmcpICogc3BhY2luZzsKKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+dHVuZShjaGFubmVsLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7CisKKyAgICAvLyB0ZXN0IGdldFByb2dyYW1JbmZvcm1hdGlvbgorICAgIFByb2dyYW1JbmZvIGhhbEluZm87CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0gbVR1bmVyLT5nZXRQcm9ncmFtSW5mb3JtYXRpb25fMV8xKAorICAgICAgICBbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvZ3JhbUluZm8mIGluZm8pIHsKKyAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgIGhhbEluZm8gPSBpbmZvOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhhbFJlc3VsdCk7CisgICAgYXV0byAmaGFsSW5mb18xXzEgPSBoYWxJbmZvLmJhc2U7CisgICAgaWYgKG1SZXN1bHRDYWxsYmFja0RhdGEgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBFWFBFQ1RfVFJVRShoYWxJbmZvXzFfMS50dW5lZCk7CisgICAgICAgIEVYUEVDVF9MRShoYWxJbmZvXzFfMS5jaGFubmVsLCB1cHBlckxpbWl0KTsKKyAgICAgICAgRVhQRUNUX0dFKGhhbEluZm9fMV8xLmNoYW5uZWwsIGxvd2VyTGltaXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUShmYWxzZSwgaGFsSW5mb18xXzEudHVuZWQpOworICAgIH0KKworICAgIC8vIHRlc3QgY2FuY2VsCisgICAgbVR1bmVyLT50dW5lKGxvd2VyTGltaXQsIDApOworICAgIGhpZGxSZXN1bHQgPSBtVHVuZXItPmNhbmNlbCgpOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBCcm9hZGNhc3RSYWRpb0hpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby9BbmRyb2lkLmJwIGIvYnJvYWRjYXN0cmFkaW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2FjYmYzCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDcgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCisgICAgIjEuMSIsCisgICAgIjEuMS92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9jYW1lcmEvQW5kcm9pZC5icCBiL2NhbWVyYS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4Njk3NjYKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvQW5kcm9pZC5icApAQCAtMCwwICsxLDEzIEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJjb21tb24vMS4wIiwKKyAgICAiY29tbW9uLzEuMC9kZWZhdWx0IiwKKyAgICAiZGV2aWNlLzEuMCIsCisgICAgImRldmljZS8xLjAvZGVmYXVsdCIsCisgICAgImRldmljZS8zLjIiLAorICAgICJkZXZpY2UvMy4yL2RlZmF1bHQiLAorICAgICJtZXRhZGF0YS8zLjIiLAorICAgICJwcm92aWRlci8yLjQiLAorICAgICJwcm92aWRlci8yLjQvZGVmYXVsdCIsCisgICAgInByb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9jYW1lcmEvUkVBRE1FLm1kIGIvY2FtZXJhL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2UzMzUyCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL1JFQURNRS5tZApAQCAtMCwwICsxLDEyIEBACisjIyBDYW1lcmEgSEFMcyAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLiogSEFMIHRyZWUgaXMgdXNlZCBieSB0aGUgQW5kcm9pZCBjYW1lcmEgc2VydmljZSB0byBkaXNjb3ZlciBhbmQKK29wZXJhdGUgY2FtZXJhIGRldmljZXMgYXZhaWxhYmxlIG9uIHRoZSBkZXZpY2UuCisKK01vcmUgZGV0YWlscyBhbmQgdmVyc2lvbmluZyBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgd2l0aGluIGVhY2ggcGFydGljdWxhciBIQUwuCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL0FuZHJvaWQuYnAgYi9jYW1lcmEvY29tbW9uLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MmQ0OTAKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNTYgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vMS4wL3R5cGVzLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9BbmRyb2lkLm1rIGIvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2JmYjMxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDM3MiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhRGV2aWNlU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvQ2FtZXJhRGV2aWNlU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuQ2FtZXJhRGV2aWNlU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9DYW1lcmFNZXRhZGF0YVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYVJlc291cmNlQ29zdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL0NhbWVyYVJlc291cmNlQ29zdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLkNhbWVyYVJlc291cmNlQ29zdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUYWdCb3VuZGFyeUlkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVGFnQm91bmRhcnlJZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRhZ0JvdW5kYXJ5SWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRvcmNoTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RvcmNoTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRvcmNoTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVG9yY2hNb2RlU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVG9yY2hNb2RlU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVG9yY2hNb2RlU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZW5kb3JUYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9WZW5kb3JUYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5WZW5kb3JUYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlbmRvclRhZ1NlY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9WZW5kb3JUYWdTZWN0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVmVuZG9yVGFnU2VjdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb24tVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhRGV2aWNlU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvQ2FtZXJhRGV2aWNlU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuQ2FtZXJhRGV2aWNlU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9DYW1lcmFNZXRhZGF0YVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYVJlc291cmNlQ29zdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL0NhbWVyYVJlc291cmNlQ29zdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLkNhbWVyYVJlc291cmNlQ29zdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUYWdCb3VuZGFyeUlkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVGFnQm91bmRhcnlJZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRhZ0JvdW5kYXJ5SWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRvcmNoTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RvcmNoTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRvcmNoTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVG9yY2hNb2RlU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVG9yY2hNb2RlU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVG9yY2hNb2RlU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZW5kb3JUYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9WZW5kb3JUYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5WZW5kb3JUYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlbmRvclRhZ1NlY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9WZW5kb3JUYWdTZWN0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVmVuZG9yVGFnU2VjdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNhNzFmYQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDIzIEBACitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIiwKKyAgICB2ZW5kb3I6IHRydWUsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsKKyAgICAgICAgIkNhbWVyYU1vZHVsZS5jcHAiLAorICAgICAgICAiQ2FtZXJhTWV0YWRhdGEuY3BwIiwKKyAgICAgICAgIlZlbmRvclRhZ0Rlc2NyaXB0b3IuY3BwIiwKKyAgICAgICAgIkhhbmRsZUltcG9ydGVyLmNwcCJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItV2V4dHJhIiwKKyAgICAgICAgIi1XYWxsIiwKKyAgICBdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCJdLAorICAgIGluY2x1ZGVfZGlyczogWyJzeXN0ZW0vbWVkaWEvcHJpdmF0ZS9jYW1lcmEvaW5jbHVkZSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnMgOiBbImluY2x1ZGUiXQorfQorCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1ldGFkYXRhLmNwcCBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvQ2FtZXJhTWV0YWRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNTQ5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1ldGFkYXRhLmNwcApAQCAtMCwwICsxLDU2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vICNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtQ29tbTEuMC1NRCIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8dXRpbHMvRXJyb3JzLmg+CisKKyNpbmNsdWRlICJDYW1lcmFNZXRhZGF0YS5oIgorI2luY2x1ZGUgIlZlbmRvclRhZ0Rlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKworI2RlZmluZSBBTElHTl9UTyh2YWwsIGFsaWdubWVudCkgXAorICAgICgoKHVpbnRwdHJfdCkodmFsKSArICgoYWxpZ25tZW50KSAtIDEpKSAmIH4oKGFsaWdubWVudCkgLSAxKSkKKworQ2FtZXJhTWV0YWRhdGE6OkNhbWVyYU1ldGFkYXRhKCkgOgorICAgICAgICBtQnVmZmVyKE5VTEwpLCBtTG9ja2VkKGZhbHNlKSB7Cit9CisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YShzaXplX3QgZW50cnlDYXBhY2l0eSwgc2l6ZV90IGRhdGFDYXBhY2l0eSkgOgorICAgICAgICBtTG9ja2VkKGZhbHNlKQoreworICAgIG1CdWZmZXIgPSBhbGxvY2F0ZV9jYW1lcmFfbWV0YWRhdGEoZW50cnlDYXBhY2l0eSwgZGF0YUNhcGFjaXR5KTsKK30KKworQ2FtZXJhTWV0YWRhdGE6OkNhbWVyYU1ldGFkYXRhKGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcikgOgorICAgICAgICBtTG9ja2VkKGZhbHNlKSB7CisgICAgbUJ1ZmZlciA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YShvdGhlci5tQnVmZmVyKTsKK30KKworQ2FtZXJhTWV0YWRhdGE6OkNhbWVyYU1ldGFkYXRhKGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpIDoKKyAgICAgICAgbUJ1ZmZlcihOVUxMKSwgbUxvY2tlZChmYWxzZSkgeworICAgIGFjcXVpcmUoYnVmZmVyKTsKK30KKworQ2FtZXJhTWV0YWRhdGEgJkNhbWVyYU1ldGFkYXRhOjpvcGVyYXRvcj0oY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKSB7CisgICAgcmV0dXJuIG9wZXJhdG9yPShvdGhlci5tQnVmZmVyKTsKK30KKworQ2FtZXJhTWV0YWRhdGEgJkNhbWVyYU1ldGFkYXRhOjpvcGVyYXRvcj0oY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKmJ1ZmZlcikgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQXNzaWdubWVudCB0byBhIGxvY2tlZCBDYW1lcmFNZXRhZGF0YSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgaWYgKENDX0xJS0VMWShidWZmZXIgIT0gbUJ1ZmZlcikpIHsKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKm5ld0J1ZmZlciA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YShidWZmZXIpOworICAgICAgICBjbGVhcigpOworICAgICAgICBtQnVmZmVyID0gbmV3QnVmZmVyOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0NhbWVyYU1ldGFkYXRhOjp+Q2FtZXJhTWV0YWRhdGEoKSB7CisgICAgbUxvY2tlZCA9IGZhbHNlOworICAgIGNsZWFyKCk7Cit9CisKK2NvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBDYW1lcmFNZXRhZGF0YTo6Z2V0QW5kTG9jaygpIGNvbnN0IHsKKyAgICBtTG9ja2VkID0gdHJ1ZTsKKyAgICByZXR1cm4gbUJ1ZmZlcjsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVubG9jayhjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKSBjb25zdCB7CisgICAgaWYgKCFtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FuJ3QgdW5sb2NrIGEgbm9uLWxvY2tlZCBDYW1lcmFNZXRhZGF0YSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmIChidWZmZXIgIT0gbUJ1ZmZlcikgeworICAgICAgICBBTE9HRSgiJXM6IENhbid0IHVubG9jayBDYW1lcmFNZXRhZGF0YSB3aXRoIHdyb25nIHBvaW50ZXIhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKyAgICBtTG9ja2VkID0gZmFsc2U7CisgICAgcmV0dXJuIE9LOworfQorCitjYW1lcmFfbWV0YWRhdGFfdCogQ2FtZXJhTWV0YWRhdGE6OnJlbGVhc2UoKSB7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgY2FtZXJhX21ldGFkYXRhX3QgKnJlbGVhc2VkID0gbUJ1ZmZlcjsKKyAgICBtQnVmZmVyID0gTlVMTDsKKyAgICByZXR1cm4gcmVsZWFzZWQ7Cit9CisKK3ZvaWQgQ2FtZXJhTWV0YWRhdGE6OmNsZWFyKCkgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobUJ1ZmZlcikgeworICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShtQnVmZmVyKTsKKyAgICAgICAgbUJ1ZmZlciA9IE5VTEw7CisgICAgfQorfQorCit2b2lkIENhbWVyYU1ldGFkYXRhOjphY3F1aXJlKGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2xlYXIoKTsKKyAgICBtQnVmZmVyID0gYnVmZmVyOworCisgICAgQUxPR0VfSUYodmFsaWRhdGVfY2FtZXJhX21ldGFkYXRhX3N0cnVjdHVyZShtQnVmZmVyLCAvKnNpemUqL05VTEwpICE9IE9LLAorICAgICAgICAgICAgICIlczogRmFpbGVkIHRvIHZhbGlkYXRlIG1ldGFkYXRhIHN0cnVjdHVyZSAlcCIsCisgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBidWZmZXIpOworfQorCit2b2lkIENhbWVyYU1ldGFkYXRhOjphY3F1aXJlKENhbWVyYU1ldGFkYXRhICZvdGhlcikgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhY3F1aXJlKG90aGVyLnJlbGVhc2UoKSk7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjphcHBlbmQoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKSB7CisgICAgcmV0dXJuIGFwcGVuZChvdGhlci5tQnVmZmVyKTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OmFwcGVuZChjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogb3RoZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgc2l6ZV90IGV4dHJhRW50cmllcyA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQob3RoZXIpOworICAgIHNpemVfdCBleHRyYURhdGEgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2RhdGFfY291bnQob3RoZXIpOworICAgIHJlc2l6ZUlmTmVlZGVkKGV4dHJhRW50cmllcywgZXh0cmFEYXRhKTsKKworICAgIHJldHVybiBhcHBlbmRfY2FtZXJhX21ldGFkYXRhKG1CdWZmZXIsIG90aGVyKTsKK30KKworc2l6ZV90IENhbWVyYU1ldGFkYXRhOjplbnRyeUNvdW50KCkgY29uc3QgeworICAgIHJldHVybiAobUJ1ZmZlciA9PSBOVUxMKSA/IDAgOgorICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9jb3VudChtQnVmZmVyKTsKK30KKworYm9vbCBDYW1lcmFNZXRhZGF0YTo6aXNFbXB0eSgpIGNvbnN0IHsKKyAgICByZXR1cm4gZW50cnlDb3VudCgpID09IDA7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjpzb3J0KCkgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICByZXR1cm4gc29ydF9jYW1lcmFfbWV0YWRhdGEobUJ1ZmZlcik7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjpjaGVja1R5cGUodWludDMyX3QgdGFnLCB1aW50OF90IGV4cGVjdGVkVHlwZSkgeworICAgIGludCB0YWdUeXBlID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfdHlwZSh0YWcpOworICAgIGlmICggQ0NfVU5MSUtFTFkodGFnVHlwZSA9PSAtMSkpIHsKKyAgICAgICAgQUxPR0UoIlVwZGF0ZSBtZXRhZGF0YSBlbnRyeTogVW5rbm93biB0YWcgJWQiLCB0YWcpOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggQ0NfVU5MSUtFTFkodGFnVHlwZSAhPSBleHBlY3RlZFR5cGUpICkgeworICAgICAgICBBTE9HRSgiTWlzbWF0Y2hlZCB0YWcgdHlwZSB3aGVuIHVwZGF0aW5nIGVudHJ5ICVzICglZCkgb2YgdHlwZSAlczsgIgorICAgICAgICAgICAgICAgICJnb3QgdHlwZSAlcyBkYXRhIGluc3RlYWQgIiwKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3RhZ19uYW1lKHRhZyksIHRhZywKKyAgICAgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdHlwZV9uYW1lc1t0YWdUeXBlXSwKKyAgICAgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdHlwZV9uYW1lc1tleHBlY3RlZFR5cGVdKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICByZXR1cm4gT0s7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICBjb25zdCBpbnQzMl90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCkgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9JTlQzMikpICE9IE9LKSB7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKWRhdGEsIGRhdGFfY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfQllURSkpICE9IE9LKSB7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKWRhdGEsIGRhdGFfY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgZmxvYXQgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIChyZXMgPSBjaGVja1R5cGUodGFnLCBUWVBFX0ZMT0FUKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIHVwZGF0ZUltcGwodGFnLCAoY29uc3Qgdm9pZCopZGF0YSwgZGF0YV9jb3VudCk7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICBjb25zdCBpbnQ2NF90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCkgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9JTlQ2NCkpICE9IE9LKSB7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKWRhdGEsIGRhdGFfY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgZG91YmxlICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCkgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9ET1VCTEUpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV9yYXRpb25hbF90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCkgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9SQVRJT05BTCkpICE9IE9LKSB7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKWRhdGEsIGRhdGFfY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgU3RyaW5nOCAmc3RyaW5nKSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIChyZXMgPSBjaGVja1R5cGUodGFnLCBUWVBFX0JZVEUpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICAvLyBzdHJpbmcuc2l6ZSgpIGRvZXNuJ3QgY291bnQgdGhlIG51bGwgdGVybWluYXRpb24gY2hhcmFjdGVyLgorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKXN0cmluZy5zdHJpbmcoKSwgc3RyaW5nLnNpemUoKSArIDEpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKGNvbnN0IGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSAmZW50cnkpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZShlbnRyeS50YWcsIGVudHJ5LnR5cGUpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbChlbnRyeS50YWcsIChjb25zdCB2b2lkKillbnRyeS5kYXRhLnU4LCBlbnRyeS5jb3VudCk7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1cGRhdGVJbXBsKHVpbnQzMl90IHRhZywgY29uc3Qgdm9pZCAqZGF0YSwKKyAgICAgICAgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGludCB0eXBlID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfdHlwZSh0YWcpOworICAgIGlmICh0eXBlID09IC0xKSB7CisgICAgICAgIEFMT0dFKCIlczogVGFnICVkIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgdGFnKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisgICAgLy8gU2FmZXR5IGNoZWNrIC0gZW5zdXJlIHRoYXQgZGF0YSBpc24ndCBwb2ludGluZyB0byB0aGlzIG1ldGFkYXRhLCBzaW5jZQorICAgIC8vIHRoYXQgd291bGQgZ2V0IGludmFsaWRhdGVkIGlmIGEgcmVzaXplIGlzIG5lZWRlZAorICAgIHNpemVfdCBidWZmZXJTaXplID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9zaXplKG1CdWZmZXIpOworICAgIHVpbnRwdHJfdCBidWZBZGRyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1CdWZmZXIpOworICAgIHVpbnRwdHJfdCBkYXRhQWRkciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihkYXRhKTsKKyAgICBpZiAoZGF0YUFkZHIgPiBidWZBZGRyICYmIGRhdGFBZGRyIDwgKGJ1ZkFkZHIgKyBidWZmZXJTaXplKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVwZGF0ZSBhdHRlbXB0ZWQgd2l0aCBkYXRhIGZyb20gdGhlIHNhbWUgbWV0YWRhdGEgYnVmZmVyISIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIHNpemVfdCBkYXRhX3NpemUgPSBjYWxjdWxhdGVfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2RhdGFfc2l6ZSh0eXBlLAorICAgICAgICAgICAgZGF0YV9jb3VudCk7CisKKyAgICByZXMgPSByZXNpemVJZk5lZWRlZCgxLCBkYXRhX3NpemUpOworCisgICAgaWYgKHJlcyA9PSBPSykgeworICAgICAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnlfdCBlbnRyeTsKKyAgICAgICAgcmVzID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpOworICAgICAgICBpZiAocmVzID09IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgICAgICByZXMgPSBhZGRfY2FtZXJhX21ldGFkYXRhX2VudHJ5KG1CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgIHRhZywgZGF0YSwgZGF0YV9jb3VudCk7CisgICAgICAgIH0gZWxzZSBpZiAocmVzID09IE9LKSB7CisgICAgICAgICAgICByZXMgPSB1cGRhdGVfY2FtZXJhX21ldGFkYXRhX2VudHJ5KG1CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgIGVudHJ5LmluZGV4LCBkYXRhLCBkYXRhX2NvdW50LCBOVUxMKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gdXBkYXRlIG1ldGFkYXRhIGVudHJ5ICVzLiVzICgleCk6ICVzICglZCkiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgZ2V0X2NhbWVyYV9tZXRhZGF0YV9zZWN0aW9uX25hbWUodGFnKSwKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3RhZ19uYW1lKHRhZyksIHRhZywgc3RyZXJyb3IoLXJlcyksIHJlcyk7CisgICAgfQorCisgICAgSUZfQUxPR1YoKSB7CisgICAgICAgIEFMT0dFX0lGKHZhbGlkYXRlX2NhbWVyYV9tZXRhZGF0YV9zdHJ1Y3R1cmUobUJ1ZmZlciwgLypzaXplKi9OVUxMKSAhPQorICAgICAgICAgICAgICAgICBPSywKKworICAgICAgICAgICAgICAgICAiJXM6IEZhaWxlZCB0byB2YWxpZGF0ZSBtZXRhZGF0YSBzdHJ1Y3R1cmUgYWZ0ZXIgdXBkYXRlICVwIiwKKyAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtQnVmZmVyKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzOworfQorCitib29sIENhbWVyYU1ldGFkYXRhOjpleGlzdHModWludDMyX3QgdGFnKSBjb25zdCB7CisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIHJldHVybiBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShtQnVmZmVyLCB0YWcsICZlbnRyeSkgPT0gMDsKK30KKworY2FtZXJhX21ldGFkYXRhX2VudHJ5X3QgQ2FtZXJhTWV0YWRhdGE6OmZpbmQodWludDMyX3QgdGFnKSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeTsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIGVudHJ5LmNvdW50ID0gMDsKKyAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KKyAgICByZXMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLCB0YWcsICZlbnRyeSk7CisgICAgaWYgKENDX1VOTElLRUxZKCByZXMgIT0gT0sgKSkgeworICAgICAgICBlbnRyeS5jb3VudCA9IDA7CisgICAgICAgIGVudHJ5LmRhdGEudTggPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4gZW50cnk7Cit9CisKK2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeV90IENhbWVyYU1ldGFkYXRhOjpmaW5kKHVpbnQzMl90IHRhZykgY29uc3QgeworICAgIHN0YXR1c190IHJlczsKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgcmVzID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpOworICAgIGlmIChDQ19VTkxJS0VMWSggcmVzICE9IE9LICkpIHsKKyAgICAgICAgZW50cnkuY291bnQgPSAwOworICAgICAgICBlbnRyeS5kYXRhLnU4ID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIGVudHJ5OworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6ZXJhc2UodWludDMyX3QgdGFnKSB7CisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5X3QgZW50cnk7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICByZXMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLCB0YWcsICZlbnRyeSk7CisgICAgaWYgKHJlcyA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICByZXR1cm4gT0s7CisgICAgfSBlbHNlIGlmIChyZXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBFcnJvciBsb29raW5nIGZvciBlbnRyeSAlcy4lcyAoJXgpOiAlcyAlZCIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgIGdldF9jYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9uYW1lKHRhZyksCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfbmFtZSh0YWcpLCB0YWcsIHN0cmVycm9yKC1yZXMpLCByZXMpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXMgPSBkZWxldGVfY2FtZXJhX21ldGFkYXRhX2VudHJ5KG1CdWZmZXIsIGVudHJ5LmluZGV4KTsKKyAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogRXJyb3IgZGVsZXRpbmcgZW50cnkgJXMuJXMgKCV4KTogJXMgJWQiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3NlY3Rpb25fbmFtZSh0YWcpLAorICAgICAgICAgICAgICAgIGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX25hbWUodGFnKSwgdGFnLCBzdHJlcnJvcigtcmVzKSwgcmVzKTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6ZHVtcChpbnQgZmQsIGludCB2ZXJib3NpdHksIGludCBpbmRlbnRhdGlvbikgY29uc3QgeworICAgIGR1bXBfaW5kZW50ZWRfY2FtZXJhX21ldGFkYXRhKG1CdWZmZXIsIGZkLCB2ZXJib3NpdHksIGluZGVudGF0aW9uKTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnJlc2l6ZUlmTmVlZGVkKHNpemVfdCBleHRyYUVudHJpZXMsIHNpemVfdCBleHRyYURhdGEpIHsKKyAgICBpZiAobUJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgIG1CdWZmZXIgPSBhbGxvY2F0ZV9jYW1lcmFfbWV0YWRhdGEoZXh0cmFFbnRyaWVzICogMiwgZXh0cmFEYXRhICogMik7CisgICAgICAgIGlmIChtQnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogQ2FuJ3QgYWxsb2NhdGUgbGFyZ2VyIG1ldGFkYXRhIGJ1ZmZlciIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRFbnRyeUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9jb3VudChtQnVmZmVyKTsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRFbnRyeUNhcCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY2FwYWNpdHkobUJ1ZmZlcik7CisgICAgICAgIHNpemVfdCBuZXdFbnRyeUNvdW50ID0gY3VycmVudEVudHJ5Q291bnQgKworICAgICAgICAgICAgICAgIGV4dHJhRW50cmllczsKKyAgICAgICAgbmV3RW50cnlDb3VudCA9IChuZXdFbnRyeUNvdW50ID4gY3VycmVudEVudHJ5Q2FwKSA/CisgICAgICAgICAgICAgICAgbmV3RW50cnlDb3VudCAqIDIgOiBjdXJyZW50RW50cnlDYXA7CisKKyAgICAgICAgc2l6ZV90IGN1cnJlbnREYXRhQ291bnQgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2RhdGFfY291bnQobUJ1ZmZlcik7CisgICAgICAgIHNpemVfdCBjdXJyZW50RGF0YUNhcCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZGF0YV9jYXBhY2l0eShtQnVmZmVyKTsKKyAgICAgICAgc2l6ZV90IG5ld0RhdGFDb3VudCA9IGN1cnJlbnREYXRhQ291bnQgKworICAgICAgICAgICAgICAgIGV4dHJhRGF0YTsKKyAgICAgICAgbmV3RGF0YUNvdW50ID0gKG5ld0RhdGFDb3VudCA+IGN1cnJlbnREYXRhQ2FwKSA/CisgICAgICAgICAgICAgICAgbmV3RGF0YUNvdW50ICogMiA6IGN1cnJlbnREYXRhQ2FwOworCisgICAgICAgIGlmIChuZXdFbnRyeUNvdW50ID4gY3VycmVudEVudHJ5Q2FwIHx8CisgICAgICAgICAgICAgICAgbmV3RGF0YUNvdW50ID4gY3VycmVudERhdGFDYXApIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpvbGRCdWZmZXIgPSBtQnVmZmVyOworICAgICAgICAgICAgbUJ1ZmZlciA9IGFsbG9jYXRlX2NhbWVyYV9tZXRhZGF0YShuZXdFbnRyeUNvdW50LAorICAgICAgICAgICAgICAgICAgICBuZXdEYXRhQ291bnQpOworICAgICAgICAgICAgaWYgKG1CdWZmZXIgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogQ2FuJ3QgYWxsb2NhdGUgbGFyZ2VyIG1ldGFkYXRhIGJ1ZmZlciIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZF9jYW1lcmFfbWV0YWRhdGEobUJ1ZmZlciwgb2xkQnVmZmVyKTsKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKG9sZEJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIE9LOworfQorCit2b2lkIENhbWVyYU1ldGFkYXRhOjpzd2FwKENhbWVyYU1ldGFkYXRhJiBvdGhlcikgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAob3RoZXIubUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IE90aGVyIENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGEqIHRoaXNCdWYgPSBtQnVmZmVyOworICAgIGNhbWVyYV9tZXRhZGF0YSogb3RoZXJCdWYgPSBvdGhlci5tQnVmZmVyOworCisgICAgb3RoZXIubUJ1ZmZlciA9IHRoaXNCdWY7CisgICAgbUJ1ZmZlciA9IG90aGVyQnVmOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6Z2V0VGFnRnJvbU5hbWUoY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgY29uc3QgVmVuZG9yVGFnRGVzY3JpcHRvciogdlRhZ3MsIHVpbnQzMl90ICp0YWcpIHsKKworICAgIGlmIChuYW1lID09IG51bGxwdHIgfHwgdGFnID09IG51bGxwdHIpIHJldHVybiBCQURfVkFMVUU7CisKKyAgICBzaXplX3QgbmFtZUxlbmd0aCA9IHN0cmxlbihuYW1lKTsKKworICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxTdHJpbmc4PiAqdmVuZG9yU2VjdGlvbnM7CisgICAgc2l6ZV90IHZlbmRvclNlY3Rpb25Db3VudCA9IDA7CisKKyAgICBpZiAodlRhZ3MgIT0gTlVMTCkgeworICAgICAgICB2ZW5kb3JTZWN0aW9ucyA9IHZUYWdzLT5nZXRBbGxTZWN0aW9uTmFtZXMoKTsKKyAgICAgICAgdmVuZG9yU2VjdGlvbkNvdW50ID0gdmVuZG9yU2VjdGlvbnMtPnNpemUoKTsKKyAgICB9CisKKyAgICAvLyBGaXJzdCwgZmluZCB0aGUgc2VjdGlvbiBieSB0aGUgbG9uZ2VzdCBzdHJpbmcgbWF0Y2gKKyAgICBjb25zdCBjaGFyICpzZWN0aW9uID0gTlVMTDsKKyAgICBzaXplX3Qgc2VjdGlvbkluZGV4ID0gMDsKKyAgICBzaXplX3Qgc2VjdGlvbkxlbmd0aCA9IDA7CisgICAgc2l6ZV90IHRvdGFsU2VjdGlvbkNvdW50ID0gQU5EUk9JRF9TRUNUSU9OX0NPVU5UICsgdmVuZG9yU2VjdGlvbkNvdW50OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG90YWxTZWN0aW9uQ291bnQ7ICsraSkgeworCisgICAgICAgIGNvbnN0IGNoYXIgKnN0ciA9IChpIDwgQU5EUk9JRF9TRUNUSU9OX0NPVU5UKSA/IGNhbWVyYV9tZXRhZGF0YV9zZWN0aW9uX25hbWVzW2ldIDoKKyAgICAgICAgICAgICAgICAoKnZlbmRvclNlY3Rpb25zKVtpIC0gQU5EUk9JRF9TRUNUSU9OX0NPVU5UXS5zdHJpbmcoKTsKKworICAgICAgICBBTE9HVigiJXM6IFRyeWluZyB0byBtYXRjaCBhZ2FpbnN0IHNlY3Rpb24gJyVzJyIsIF9fRlVOQ1RJT05fXywgc3RyKTsKKworICAgICAgICBpZiAoc3Ryc3RyKG5hbWUsIHN0cikgPT0gbmFtZSkgeyAvLyBuYW1lIGJlZ2lucyB3aXRoIHRoZSBzZWN0aW9uIG5hbWUKKyAgICAgICAgICAgIHNpemVfdCBzdHJMZW5ndGggPSBzdHJsZW4oc3RyKTsKKworICAgICAgICAgICAgQUxPR1YoIiVzOiBOYW1lIGJlZ2lucyB3aXRoIHNlY3Rpb24gbmFtZSIsIF9fRlVOQ1RJT05fXyk7CisKKyAgICAgICAgICAgIC8vIHNlY3Rpb24gbmFtZSBpcyB0aGUgbG9uZ2VzdCB3ZSd2ZSBmb3VuZCBzbyBmYXIKKyAgICAgICAgICAgIGlmIChzZWN0aW9uID09IE5VTEwgfHwgc2VjdGlvbkxlbmd0aCA8IHN0ckxlbmd0aCkgeworICAgICAgICAgICAgICAgIHNlY3Rpb24gPSBzdHI7CisgICAgICAgICAgICAgICAgc2VjdGlvbkluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICBzZWN0aW9uTGVuZ3RoID0gc3RyTGVuZ3RoOworCisgICAgICAgICAgICAgICAgQUxPR1YoIiVzOiBGb3VuZCBuZXcgYmVzdCBzZWN0aW9uICglcykiLCBfX0ZVTkNUSU9OX18sIHNlY3Rpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNlY3Rpb24gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1YoIiVzOiBGb3VuZCBtYXRjaGVkIHNlY3Rpb24gJyVzJyAoJXp1KSIsCisgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgc2VjdGlvbiwgc2VjdGlvbkluZGV4KTsKKyAgICB9CisKKyAgICAvLyBHZXQgdGhlIHRhZyBuYW1lIGNvbXBvbmVudCBvZiB0aGUgbmFtZQorICAgIGNvbnN0IGNoYXIgKm5hbWVUYWdOYW1lID0gbmFtZSArIHNlY3Rpb25MZW5ndGggKyAxOyAvLyB4LnkueiAtPiB6CisgICAgaWYgKHNlY3Rpb25MZW5ndGggKyAxID49IG5hbWVMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICAvLyBNYXRjaCByZXN0IG9mIG5hbWUgYWdhaW5zdCB0aGUgdGFnIG5hbWVzIGluIHRoYXQgc2VjdGlvbiBvbmx5CisgICAgdWludDMyX3QgY2FuZGlkYXRlVGFnID0gMDsKKyAgICBpZiAoc2VjdGlvbkluZGV4IDwgQU5EUk9JRF9TRUNUSU9OX0NPVU5UKSB7CisgICAgICAgIC8vIE1hdGNoIGJ1aWx0LWluIHRhZ3MgKHR5cGljYWxseSBhbmRyb2lkLiopCisgICAgICAgIHVpbnQzMl90IHRhZ0JlZ2luLCB0YWdFbmQ7IC8vIFt0YWdCZWdpbiwgdGFnRW5kKQorICAgICAgICB0YWdCZWdpbiA9IGNhbWVyYV9tZXRhZGF0YV9zZWN0aW9uX2JvdW5kc1tzZWN0aW9uSW5kZXhdWzBdOworICAgICAgICB0YWdFbmQgPSBjYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9ib3VuZHNbc2VjdGlvbkluZGV4XVsxXTsKKworICAgICAgICBmb3IgKGNhbmRpZGF0ZVRhZyA9IHRhZ0JlZ2luOyBjYW5kaWRhdGVUYWcgPCB0YWdFbmQ7ICsrY2FuZGlkYXRlVGFnKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyICp0YWdOYW1lID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfbmFtZShjYW5kaWRhdGVUYWcpOworCisgICAgICAgICAgICBpZiAoc3RyY21wKG5hbWVUYWdOYW1lLCB0YWdOYW1lKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgQUxPR1YoIiVzOiBGb3VuZCBtYXRjaGVkIHRhZyAnJXMnICglZCkiLAorICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgdGFnTmFtZSwgY2FuZGlkYXRlVGFnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjYW5kaWRhdGVUYWcgPT0gdGFnRW5kKSB7CisgICAgICAgICAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHZUYWdzICE9IE5VTEwpIHsKKyAgICAgICAgLy8gTWF0Y2ggdmVuZG9yIHRhZ3MgKHR5cGljYWxseSBjb20uKikKKyAgICAgICAgY29uc3QgU3RyaW5nOCBzZWN0aW9uTmFtZShzZWN0aW9uKTsKKyAgICAgICAgY29uc3QgU3RyaW5nOCB0YWdOYW1lKG5hbWVUYWdOYW1lKTsKKworICAgICAgICBzdGF0dXNfdCByZXMgPSBPSzsKKyAgICAgICAgaWYgKChyZXMgPSB2VGFncy0+bG9va3VwVGFnKHRhZ05hbWUsIHNlY3Rpb25OYW1lLCAmY2FuZGlkYXRlVGFnKSkgIT0gT0spIHsKKyAgICAgICAgICAgIHJldHVybiBOQU1FX05PVF9GT1VORDsKKyAgICAgICAgfQorICAgIH0KKworICAgICp0YWcgPSBjYW5kaWRhdGVUYWc7CisgICAgcmV0dXJuIE9LOworfQorCisKK30gLy8gbmFtZXNwYWNlIGhlbHBlcgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgY29tbW9uCit9IC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1vZHVsZS5jcHAgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1vZHVsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E0YmM5YwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvQ2FtZXJhTW9kdWxlLmNwcApAQCAtMCwwICsxLDQ1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtQ29tbTEuMC1DYW1Nb2R1bGUiCisjZGVmaW5lIEFUUkFDRV9UQUcgQVRSQUNFX1RBR19DQU1FUkEKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisKKyNpbmNsdWRlICJDYW1lcmFNb2R1bGUuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKwordm9pZCBDYW1lcmFNb2R1bGU6OmRlcml2ZUNhbWVyYUNoYXJhY3RlcmlzdGljc0tleXMoCisgICAgICAgIHVpbnQzMl90IGRldmljZVZlcnNpb24sIENhbWVyYU1ldGFkYXRhICZjaGFycykgeworICAgIEFUUkFDRV9DQUxMKCk7CisKKyAgICBWZWN0b3I8aW50MzJfdD4gZGVyaXZlZENoYXJLZXlzOworICAgIFZlY3RvcjxpbnQzMl90PiBkZXJpdmVkUmVxdWVzdEtleXM7CisgICAgVmVjdG9yPGludDMyX3Q+IGRlcml2ZWRSZXN1bHRLZXlzOworICAgIC8vIEtleXMgYWRkZWQgaW4gSEFMMy4zCisgICAgaWYgKGRldmljZVZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMykgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gY29udHJvbE1vZGVzOworICAgICAgICB1aW50OF90IGRhdGEgPSBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19BVkFJTEFCTEVfVFJVRTsKKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRSwgJmRhdGEsIC8qY291bnQqLzEpOworICAgICAgICBkYXRhID0gQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRV9UUlVFOworICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRSwgJmRhdGEsIC8qY291bnQqLzEpOworICAgICAgICBjb250cm9sTW9kZXMucHVzaChBTkRST0lEX0NPTlRST0xfTU9ERV9BVVRPKTsKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX1NDRU5FX01PREVTKTsKKyAgICAgICAgaWYgKGVudHJ5LmNvdW50ID4gMSB8fCBlbnRyeS5kYXRhLnU4WzBdICE9IEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0RJU0FCTEVEKSB7CisgICAgICAgICAgICBjb250cm9sTW9kZXMucHVzaChBTkRST0lEX0NPTlRST0xfTU9ERV9VU0VfU0NFTkVfTU9ERSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBPbmx5IGFkdmVydGlzZSBDT05UUk9MX09GRiBtb2RlIGlmIDNBIG1hbnVhbCBjb250cm9scyBhcmUgc3VwcG9ydGVkLgorICAgICAgICBib29sIGlzTWFudWFsQWVTdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBpc01hbnVhbEFmU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGJvb2wgaXNNYW51YWxBd2JTdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfQ09OVFJPTF9BRV9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBpZiAoZW50cnkuY291bnQgPiAwKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGF0YS51OFtpXSA9PSBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNNYW51YWxBZVN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX0FGX0FWQUlMQUJMRV9NT0RFUyk7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnU4W2ldID09IEFORFJPSURfQ09OVFJPTF9BRl9NT0RFX09GRikgeworICAgICAgICAgICAgICAgICAgICBpc01hbnVhbEFmU3VwcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX0NPTlRST0xfQVdCX0FWQUlMQUJMRV9NT0RFUyk7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnU4W2ldID09IEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9PRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNNYW51YWxBd2JTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzTWFudWFsQWVTdXBwb3J0ZWQgJiYgaXNNYW51YWxBZlN1cHBvcnRlZCAmJiBpc01hbnVhbEF3YlN1cHBvcnRlZCkgeworICAgICAgICAgICAgY29udHJvbE1vZGVzLnB1c2goQU5EUk9JRF9DT05UUk9MX01PREVfT0ZGKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJzLnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX01PREVTLCBjb250cm9sTW9kZXMpOworCisgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX1JFUVVFU1RfS0VZUyk7CisgICAgICAgIC8vIEhBTDMuMiBkZXZpY2VzIHBhc3NpbmcgZXhpc3RpbmcgQ1RTIHRlc3Qgc2hvdWxkIGFsbCBzdXBwb3J0IGFsbCBMU0MgbW9kZXMgYW5kIExTQyBtYXAKKyAgICAgICAgYm9vbCBsZW5zU2hhZGluZ01vZGVTdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKGVudHJ5LmNvdW50ID4gMCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEuaTMyW2ldID09IEFORFJPSURfU0hBRElOR19NT0RFKSB7CisgICAgICAgICAgICAgICAgICAgIGxlbnNTaGFkaW5nTW9kZVN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBWZWN0b3I8dWludDhfdD4gbHNjTW9kZXM7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsc2NNYXBNb2RlczsKKyAgICAgICAgbHNjTW9kZXMucHVzaChBTkRST0lEX1NIQURJTkdfTU9ERV9GQVNUKTsKKyAgICAgICAgbHNjTW9kZXMucHVzaChBTkRST0lEX1NIQURJTkdfTU9ERV9ISUdIX1FVQUxJVFkpOworICAgICAgICBsc2NNYXBNb2Rlcy5wdXNoKEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREVfT0ZGKTsKKyAgICAgICAgaWYgKGxlbnNTaGFkaW5nTW9kZVN1cHBvcnRlZCkgeworICAgICAgICAgICAgbHNjTW9kZXMucHVzaChBTkRST0lEX1NIQURJTkdfTU9ERV9PRkYpOworICAgICAgICAgICAgbHNjTWFwTW9kZXMucHVzaChBTkRST0lEX1NUQVRJU1RJQ1NfTEVOU19TSEFESU5HX01BUF9NT0RFX09OKTsKKyAgICAgICAgfQorICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9TSEFESU5HX0FWQUlMQUJMRV9NT0RFUywgbHNjTW9kZXMpOworICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0xFTlNfU0hBRElOR19NQVBfTU9ERVMsIGxzY01hcE1vZGVzKTsKKworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX0NPTlRST0xfQUVfTE9DS19BVkFJTEFCTEUpOworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfQVZBSUxBQkxFKTsKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9NT0RFUyk7CisgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfU0hBRElOR19BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19BVkFJTEFCTEVfTEVOU19TSEFESU5HX01BUF9NT0RFUyk7CisKKyAgICAgICAgLy8gTmVlZCB1cGRhdGUgYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMgc2luY2UgSEFMMy4zCisgICAgICAgIC8vIGFkZHMgYmF0Y2ggc2l6ZSB0byB0aGlzIGFycmF5LgorICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9ISUdIX1NQRUVEX1ZJREVPX0NPTkZJR1VSQVRJT05TKTsKKyAgICAgICAgaWYgKGVudHJ5LmNvdW50ID4gMCkgeworICAgICAgICAgICAgVmVjdG9yPGludDMyX3Q+IGhpZ2hTcGVlZENvbmZpZzsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkgKz0gNCkgeworICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoZW50cnkuZGF0YS5pMzJbaV0pOyAvLyB3aWR0aAorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoZW50cnkuZGF0YS5pMzJbaSArIDFdKTsgLy8gaGVpZ2h0CisgICAgICAgICAgICAgICAgaGlnaFNwZWVkQ29uZmlnLmFkZChlbnRyeS5kYXRhLmkzMltpICsgMl0pOyAvLyBmcHNfbWluCisgICAgICAgICAgICAgICAgaGlnaFNwZWVkQ29uZmlnLmFkZChlbnRyeS5kYXRhLmkzMltpICsgM10pOyAvLyBmcHNfbWF4CisgICAgICAgICAgICAgICAgaGlnaFNwZWVkQ29uZmlnLmFkZCgxKTsgLy8gYmF0Y2hTaXplX21heC4gZGVmYXVsdCB0byAxIGZvciBIQUwzLjIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXJzLnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX0hJR0hfU1BFRURfVklERU9fQ09ORklHVVJBVElPTlMsCisgICAgICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBLZXlzIGFkZGVkIGluIEhBTDMuNAorICAgIGlmIChkZXZpY2VWZXJzaW9uIDwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzQpIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgSEFMIHN1cHBvcnRzIFJBV19PUEFRVUUgb3V0cHV0CisgICAgICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OUyk7CisgICAgICAgIGJvb2wgc3VwcG9ydFJhd09wYXF1ZSA9IGZhbHNlOworICAgICAgICBib29sIHN1cHBvcnRBbnlSYXcgPSBmYWxzZTsKKyAgICAgICAgY29uc3QgaW50IFNUUkVBTV9DT05GSUdVUkFUSU9OX1NJWkUgPSA0OworICAgICAgICBjb25zdCBpbnQgU1RSRUFNX0ZPUk1BVF9PRkZTRVQgPSAwOworICAgICAgICBjb25zdCBpbnQgU1RSRUFNX1dJRFRIX09GRlNFVCA9IDE7CisgICAgICAgIGNvbnN0IGludCBTVFJFQU1fSEVJR0hUX09GRlNFVCA9IDI7CisgICAgICAgIGNvbnN0IGludCBTVFJFQU1fSVNfSU5QVVRfT0ZGU0VUID0gMzsKKyAgICAgICAgVmVjdG9yPGludDMyX3Q+IHJhd09wYXF1ZVNpemVzOworCisgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaSA8IGVudHJ5LmNvdW50OyBpICs9IFNUUkVBTV9DT05GSUdVUkFUSU9OX1NJWkUpIHsKKyAgICAgICAgICAgIGludDMyX3QgZm9ybWF0ID0gZW50cnkuZGF0YS5pMzJbaSArIFNUUkVBTV9GT1JNQVRfT0ZGU0VUXTsKKyAgICAgICAgICAgIGludDMyX3Qgd2lkdGggPSBlbnRyeS5kYXRhLmkzMltpICsgU1RSRUFNX1dJRFRIX09GRlNFVF07CisgICAgICAgICAgICBpbnQzMl90IGhlaWdodCA9IGVudHJ5LmRhdGEuaTMyW2kgKyBTVFJFQU1fSEVJR0hUX09GRlNFVF07CisgICAgICAgICAgICBpbnQzMl90IGlzSW5wdXQgPSBlbnRyeS5kYXRhLmkzMltpICsgU1RSRUFNX0lTX0lOUFVUX09GRlNFVF07CisgICAgICAgICAgICBpZiAoaXNJbnB1dCA9PSBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TX09VVFBVVCAmJgorICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPT0gSEFMX1BJWEVMX0ZPUk1BVF9SQVdfT1BBUVVFKSB7CisgICAgICAgICAgICAgICAgc3VwcG9ydFJhd09wYXF1ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgcmF3T3BhcXVlU2l6ZXMucHVzaCh3aWR0aCk7CisgICAgICAgICAgICAgICAgcmF3T3BhcXVlU2l6ZXMucHVzaChoZWlnaHQpOworICAgICAgICAgICAgICAgIC8vIDIgYnl0ZXMgcGVyIHBpeGVsLiBUaGlzIHJvdWdoIGVzdGltYXRpb24gaXMgb25seSB1c2VkIHdoZW4KKyAgICAgICAgICAgICAgICAvLyBIQUwgZG9lcyBub3QgZmlsbCBpbiB0aGUgb3BhcXVlIHJhdyBzaXplCisgICAgICAgICAgICAgICAgcmF3T3BhcXVlU2l6ZXMucHVzaCh3aWR0aCAqIGhlaWdodCAqMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNJbnB1dCA9PSBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TX09VVFBVVCAmJgorICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfUkFXMTYgfHwKKyAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1JBVzEwIHx8CisgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPT0gSEFMX1BJWEVMX0ZPUk1BVF9SQVcxMiB8fAorICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfUkFXX09QQVFVRSkpIHsKKyAgICAgICAgICAgICAgICBzdXBwb3J0QW55UmF3ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdXBwb3J0UmF3T3BhcXVlKSB7CisgICAgICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9TRU5TT1JfT1BBUVVFX1JBV19TSVpFKTsKKyAgICAgICAgICAgIGlmIChlbnRyeS5jb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gRmlsbCBpbiBlc3RpbWF0ZWQgdmFsdWUgaWYgSEFMIGRvZXMgbm90IGxpc3QgaXQKKyAgICAgICAgICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9TRU5TT1JfT1BBUVVFX1JBV19TSVpFLCByYXdPcGFxdWVTaXplcyk7CisgICAgICAgICAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9TRU5TT1JfT1BBUVVFX1JBV19TSVpFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGlmIEhBTCBzdXBwb3J0cyBhbnkgUkFXIG91dHB1dCwgaWYgc28sIGZpbGwgaW4gcG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QgcmFuZ2UKKyAgICAgICAgaWYgKHN1cHBvcnRBbnlSYXcpIHsKKyAgICAgICAgICAgIGludDMyX3QgZGVmYXVsdFJhbmdlWzJdID0gezEwMCwgMTAwfTsKKyAgICAgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UpOworICAgICAgICAgICAgaWYgKGVudHJ5LmNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICAvLyBGaWxsIGluIGRlZmF1bHQgdmFsdWUgKDEwMCwgMTAwKQorICAgICAgICAgICAgICAgIGNoYXJzLnVwZGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVF9SQU5HRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRSYW5nZSwgMik7CisgICAgICAgICAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUX1JBTkdFKTsKKyAgICAgICAgICAgICAgICAvLyBBY3R1YWwgcmVxdWVzdC9yZXN1bHRzIHdpbGwgYmUgZGVyaXZlZCBieSBjYW1lcmEgZGV2aWNlLgorICAgICAgICAgICAgICAgIGRlcml2ZWRSZXF1ZXN0S2V5cy5wdXNoKEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVCk7CisgICAgICAgICAgICAgICAgZGVyaXZlZFJlc3VsdEtleXMucHVzaChBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gQWx3YXlzIGFkZCBhIGRlZmF1bHQgZm9yIHRoZSBwcmUtY29ycmVjdGlvbiBhY3RpdmUgYXJyYXkgaWYgdGhlIHZlbmRvciBjaG9vc2VzIHRvIG9taXQgdGhpcworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9TRU5TT1JfSU5GT19QUkVfQ09SUkVDVElPTl9BQ1RJVkVfQVJSQVlfU0laRSk7CisgICAgaWYgKGVudHJ5LmNvdW50ID09IDApIHsKKyAgICAgICAgVmVjdG9yPGludDMyX3Q+IHByZUNvcnJlY3Rpb25BcnJheTsKKyAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0VOU09SX0lORk9fQUNUSVZFX0FSUkFZX1NJWkUpOworICAgICAgICBwcmVDb3JyZWN0aW9uQXJyYXkuYXBwZW5kQXJyYXkoZW50cnkuZGF0YS5pMzIsIGVudHJ5LmNvdW50KTsKKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU0VOU09SX0lORk9fUFJFX0NPUlJFQ1RJT05fQUNUSVZFX0FSUkFZX1NJWkUsIHByZUNvcnJlY3Rpb25BcnJheSk7CisgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfU0VOU09SX0lORk9fUFJFX0NPUlJFQ1RJT05fQUNUSVZFX0FSUkFZX1NJWkUpOworICAgIH0KKworICAgIC8vIEFkZCB0aG9zZSBuZXdseSBhZGRlZCBrZXlzIHRvIEFWQUlMQUJMRV9DSEFSQUNURVJJU1RJQ1NfS0VZUworICAgIC8vIFRoaXMgaGFzIHRvIGJlIGRvbmUgYXQgdGhpcyBlbmQgb2YgdGhpcyBmdW5jdGlvbi4KKyAgICBpZiAoZGVyaXZlZENoYXJLZXlzLnNpemUoKSA+IDApIHsKKyAgICAgICAgYXBwZW5kQXZhaWxhYmxlS2V5cygKKyAgICAgICAgICAgICAgICBjaGFycywgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DSEFSQUNURVJJU1RJQ1NfS0VZUywgZGVyaXZlZENoYXJLZXlzKTsKKyAgICB9CisgICAgaWYgKGRlcml2ZWRSZXF1ZXN0S2V5cy5zaXplKCkgPiAwKSB7CisgICAgICAgIGFwcGVuZEF2YWlsYWJsZUtleXMoCisgICAgICAgICAgICAgICAgY2hhcnMsIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfUkVRVUVTVF9LRVlTLCBkZXJpdmVkUmVxdWVzdEtleXMpOworICAgIH0KKyAgICBpZiAoZGVyaXZlZFJlc3VsdEtleXMuc2l6ZSgpID4gMCkgeworICAgICAgICBhcHBlbmRBdmFpbGFibGVLZXlzKAorICAgICAgICAgICAgICAgIGNoYXJzLCBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX1JFU1VMVF9LRVlTLCBkZXJpdmVkUmVzdWx0S2V5cyk7CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBDYW1lcmFNb2R1bGU6OmFwcGVuZEF2YWlsYWJsZUtleXMoQ2FtZXJhTWV0YWRhdGEgJmNoYXJzLAorICAgICAgICBpbnQzMl90IGtleVRhZywgY29uc3QgVmVjdG9yPGludDMyX3Q+JiBhcHBlbmRLZXlzKSB7CisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IGVudHJ5ID0gY2hhcnMuZmluZChrZXlUYWcpOworICAgIFZlY3RvcjxpbnQzMl90PiBhdmFpbGFibGVLZXlzOworICAgIGF2YWlsYWJsZUtleXMuc2V0Q2FwYWNpdHkoZW50cnkuY291bnQgKyBhcHBlbmRLZXlzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGF2YWlsYWJsZUtleXMucHVzaChlbnRyeS5kYXRhLmkzMltpXSk7CisgICAgfQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXBwZW5kS2V5cy5zaXplKCk7IGkrKykgeworICAgICAgICBhdmFpbGFibGVLZXlzLnB1c2goYXBwZW5kS2V5c1tpXSk7CisgICAgfQorICAgIGNoYXJzLnVwZGF0ZShrZXlUYWcsIGF2YWlsYWJsZUtleXMpOworfQorCitDYW1lcmFNb2R1bGU6OkNhbWVyYU1vZHVsZShjYW1lcmFfbW9kdWxlX3QgKm1vZHVsZSkgeworICAgIGlmIChtb2R1bGUgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBoYXJkd2FyZSBtb2R1bGUgbXVzdCBub3QgYmUgbnVsbCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIGFzc2VydCgwKTsKKyAgICB9CisgICAgbU1vZHVsZSA9IG1vZHVsZTsKK30KKworQ2FtZXJhTW9kdWxlOjp+Q2FtZXJhTW9kdWxlKCkKK3sKKyAgICB3aGlsZSAobUNhbWVyYUluZm9NYXAuc2l6ZSgpID4gMCkgeworICAgICAgICBjYW1lcmFfaW5mbyBjYW1lcmFJbmZvID0gbUNhbWVyYUluZm9NYXAuZWRpdFZhbHVlQXQoMCk7CisgICAgICAgIGlmIChjYW1lcmFJbmZvLnN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKAorICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGNhbWVyYV9tZXRhZGF0YV90Kj4oY2FtZXJhSW5mby5zdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcykpOworICAgICAgICB9CisgICAgICAgIG1DYW1lcmFJbmZvTWFwLnJlbW92ZUl0ZW1zQXQoMCk7CisgICAgfQorfQorCitpbnQgQ2FtZXJhTW9kdWxlOjppbml0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgaW50IHJlcyA9IE9LOworICAgIGlmIChnZXRNb2R1bGVBcGlWZXJzaW9uKCkgPj0gQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzQgJiYKKyAgICAgICAgICAgIG1Nb2R1bGUtPmluaXQgIT0gTlVMTCkgeworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPmluaXQiKTsKKyAgICAgICAgcmVzID0gbU1vZHVsZS0+aW5pdCgpOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisgICAgfQorICAgIG1DYW1lcmFJbmZvTWFwLnNldENhcGFjaXR5KGdldE51bWJlck9mQ2FtZXJhcygpKTsKKyAgICByZXR1cm4gcmVzOworfQorCitpbnQgQ2FtZXJhTW9kdWxlOjpnZXRDYW1lcmFJbmZvKGludCBjYW1lcmFJZCwgc3RydWN0IGNhbWVyYV9pbmZvICppbmZvKSB7CisgICAgQVRSQUNFX0NBTEwoKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgbG9jayhtQ2FtZXJhSW5mb0xvY2spOworICAgIGlmIChjYW1lcmFJZCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIGNhbWVyYSBJRCAlZCIsIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICAvLyBPbmx5IG92ZXJyaWRlIHN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzIGZvciBBUEkyIGRldmljZXMKKyAgICBpbnQgYXBpVmVyc2lvbiA9IG1Nb2R1bGUtPmNvbW1vbi5tb2R1bGVfYXBpX3ZlcnNpb247CisgICAgaWYgKGFwaVZlcnNpb24gPCBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMCkgeworICAgICAgICBpbnQgcmV0OworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPmdldF9jYW1lcmFfaW5mbyIpOworICAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRfY2FtZXJhX2luZm8oY2FtZXJhSWQsIGluZm8pOworICAgICAgICAvLyBGaWxsIGluIHRoaXMgc28gQ2FtZXJhU2VydmljZSB3b24ndCBiZSBjb25mdXNlZCBieQorICAgICAgICAvLyBwb3NzaWJseSAwIGRldmljZV92ZXJzaW9uCisgICAgICAgIGluZm8tPmRldmljZV92ZXJzaW9uID0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzA7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBzc2l6ZV90IGluZGV4ID0gbUNhbWVyYUluZm9NYXAuaW5kZXhPZktleShjYW1lcmFJZCk7CisgICAgaWYgKGluZGV4ID09IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgIC8vIEdldCBjYW1lcmEgaW5mbyBmcm9tIHJhdyBtb2R1bGUgYW5kIGNhY2hlIGl0CisgICAgICAgIGNhbWVyYV9pbmZvIHJhd0luZm8sIGNhbWVyYUluZm87CisgICAgICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+Z2V0X2NhbWVyYV9pbmZvIik7CisgICAgICAgIGludCByZXQgPSBtTW9kdWxlLT5nZXRfY2FtZXJhX2luZm8oY2FtZXJhSWQsICZyYXdJbmZvKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICAgICAgaW50IGRldmljZVZlcnNpb24gPSByYXdJbmZvLmRldmljZV92ZXJzaW9uOworICAgICAgICBpZiAoZGV2aWNlVmVyc2lvbiA8IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18wKSB7CisgICAgICAgICAgICAvLyBzdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcyBpcyBpbnZhbGlkCisgICAgICAgICAgICAqaW5mbyA9IHJhd0luZm87CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgICAgIENhbWVyYU1ldGFkYXRhIG07CisgICAgICAgIG0gPSByYXdJbmZvLnN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICBkZXJpdmVDYW1lcmFDaGFyYWN0ZXJpc3RpY3NLZXlzKHJhd0luZm8uZGV2aWNlX3ZlcnNpb24sIG0pOworICAgICAgICBjYW1lcmFJbmZvID0gcmF3SW5mbzsKKyAgICAgICAgY2FtZXJhSW5mby5zdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcyA9IG0ucmVsZWFzZSgpOworICAgICAgICBpbmRleCA9IG1DYW1lcmFJbmZvTWFwLmFkZChjYW1lcmFJZCwgY2FtZXJhSW5mbyk7CisgICAgfQorCisgICAgYXNzZXJ0KGluZGV4ICE9IE5BTUVfTk9UX0ZPVU5EKTsKKyAgICAvLyByZXR1cm4gdGhlIGNhY2hlZCBjYW1lcmEgaW5mbworICAgICppbmZvID0gbUNhbWVyYUluZm9NYXBbaW5kZXhdOworICAgIHJldHVybiBPSzsKK30KKworaW50IENhbWVyYU1vZHVsZTo6Z2V0RGV2aWNlVmVyc2lvbihpbnQgY2FtZXJhSWQpIHsKKyAgICBzc2l6ZV90IGluZGV4ID0gbURldmljZVZlcnNpb25NYXAuaW5kZXhPZktleShjYW1lcmFJZCk7CisgICAgaWYgKGluZGV4ID09IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgIGludCBkZXZpY2VWZXJzaW9uOworICAgICAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8wKSB7CisgICAgICAgICAgICBzdHJ1Y3QgY2FtZXJhX2luZm8gaW5mbzsKKyAgICAgICAgICAgIGdldENhbWVyYUluZm8oY2FtZXJhSWQsICZpbmZvKTsKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gPSBpbmZvLmRldmljZV92ZXJzaW9uOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGV2aWNlVmVyc2lvbiA9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wOworICAgICAgICB9CisgICAgICAgIGluZGV4ID0gbURldmljZVZlcnNpb25NYXAuYWRkKGNhbWVyYUlkLCBkZXZpY2VWZXJzaW9uKTsKKyAgICB9CisgICAgYXNzZXJ0KGluZGV4ICE9IE5BTUVfTk9UX0ZPVU5EKTsKKyAgICByZXR1cm4gbURldmljZVZlcnNpb25NYXBbaW5kZXhdOworfQorCitpbnQgQ2FtZXJhTW9kdWxlOjpvcGVuKGNvbnN0IGNoYXIqIGlkLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpIHsKKyAgICBpbnQgcmVzOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+b3BlbiIpOworICAgIHJlcyA9IGZpbHRlck9wZW5FcnJvckNvZGUobU1vZHVsZS0+Y29tbW9uLm1ldGhvZHMtPm9wZW4oJm1Nb2R1bGUtPmNvbW1vbiwgaWQsIGRldmljZSkpOworICAgIEFUUkFDRV9FTkQoKTsKKyAgICByZXR1cm4gcmVzOworfQorCitib29sIENhbWVyYU1vZHVsZTo6aXNPcGVuTGVnYWN5RGVmaW5lZCgpIGNvbnN0IHsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpIDwgQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzMpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gbU1vZHVsZS0+b3Blbl9sZWdhY3kgIT0gTlVMTDsKK30KKworaW50IENhbWVyYU1vZHVsZTo6b3BlbkxlZ2FjeSgKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHVpbnQzMl90IGhhbFZlcnNpb24sIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSkgeworICAgIGludCByZXM7CisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5vcGVuX2xlZ2FjeSIpOworICAgIHJlcyA9IG1Nb2R1bGUtPm9wZW5fbGVnYWN5KCZtTW9kdWxlLT5jb21tb24sIGlkLCBoYWxWZXJzaW9uLCBkZXZpY2UpOworICAgIEFUUkFDRV9FTkQoKTsKKyAgICByZXR1cm4gcmVzOworfQorCitpbnQgQ2FtZXJhTW9kdWxlOjpnZXROdW1iZXJPZkNhbWVyYXMoKSB7CisgICAgaW50IG51bUNhbWVyYXM7CisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5nZXRfbnVtYmVyX29mX2NhbWVyYXMiKTsKKyAgICBudW1DYW1lcmFzID0gbU1vZHVsZS0+Z2V0X251bWJlcl9vZl9jYW1lcmFzKCk7CisgICAgQVRSQUNFX0VORCgpOworICAgIHJldHVybiBudW1DYW1lcmFzOworfQorCitpbnQgQ2FtZXJhTW9kdWxlOjpzZXRDYWxsYmFja3MoY29uc3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3NfdCAqY2FsbGJhY2tzKSB7CisgICAgaW50IHJlcyA9IE9LOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+c2V0X2NhbGxiYWNrcyIpOworICAgIGlmIChnZXRNb2R1bGVBcGlWZXJzaW9uKCkgPj0gQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzEpIHsKKyAgICAgICAgcmVzID0gbU1vZHVsZS0+c2V0X2NhbGxiYWNrcyhjYWxsYmFja3MpOworICAgIH0KKyAgICBBVFJBQ0VfRU5EKCk7CisgICAgcmV0dXJuIHJlczsKK30KKworYm9vbCBDYW1lcmFNb2R1bGU6OmlzVmVuZG9yVGFnRGVmaW5lZCgpIGNvbnN0IHsKKyAgICByZXR1cm4gbU1vZHVsZS0+Z2V0X3ZlbmRvcl90YWdfb3BzICE9IE5VTEw7Cit9CisKK3ZvaWQgQ2FtZXJhTW9kdWxlOjpnZXRWZW5kb3JUYWdPcHModmVuZG9yX3RhZ19vcHNfdCogb3BzKSB7CisgICAgaWYgKG1Nb2R1bGUtPmdldF92ZW5kb3JfdGFnX29wcykgeworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPmdldF92ZW5kb3JfdGFnX29wcyIpOworICAgICAgICBtTW9kdWxlLT5nZXRfdmVuZG9yX3RhZ19vcHMob3BzKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgIH0KK30KKworYm9vbCBDYW1lcmFNb2R1bGU6OmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkgY29uc3QgeworICAgIGlmIChnZXRNb2R1bGVBcGlWZXJzaW9uKCkgPj0gQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzQpIHsKKyAgICAgICAgaWYgKG1Nb2R1bGUtPnNldF90b3JjaF9tb2RlID09IE5VTEwpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogTW9kdWxlIDIuNCBkZXZpY2UgbXVzdCBzdXBwb3J0IHNldCB0b3JjaCBBUEkhIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQ2FtZXJhTW9kdWxlOjpzZXRUb3JjaE1vZGUoY29uc3QgY2hhciogY2FtZXJhX2lkLCBib29sIGVuYWJsZSkgeworICAgIGludCByZXMgPSBJTlZBTElEX09QRVJBVElPTjsKKyAgICBpZiAobU1vZHVsZS0+c2V0X3RvcmNoX21vZGUgIT0gTlVMTCkgeworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPnNldF90b3JjaF9tb2RlIik7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPnNldF90b3JjaF9tb2RlKGNhbWVyYV9pZCwgZW5hYmxlKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgIH0KKyAgICByZXR1cm4gcmVzOworfQorCitzdGF0dXNfdCBDYW1lcmFNb2R1bGU6OmZpbHRlck9wZW5FcnJvckNvZGUoc3RhdHVzX3QgZXJyKSB7CisgICAgc3dpdGNoKGVycikgeworICAgICAgICBjYXNlIE5PX0VSUk9SOgorICAgICAgICBjYXNlIC1FQlVTWToKKyAgICAgICAgY2FzZSAtRUlOVkFMOgorICAgICAgICBjYXNlIC1FVVNFUlM6CisgICAgICAgICAgICByZXR1cm4gZXJyOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAtRU5PREVWOworfQorCit1aW50MTZfdCBDYW1lcmFNb2R1bGU6OmdldE1vZHVsZUFwaVZlcnNpb24oKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmNvbW1vbi5tb2R1bGVfYXBpX3ZlcnNpb247Cit9CisKK2NvbnN0IGNoYXIqIENhbWVyYU1vZHVsZTo6Z2V0TW9kdWxlTmFtZSgpIGNvbnN0IHsKKyAgICByZXR1cm4gbU1vZHVsZS0+Y29tbW9uLm5hbWU7Cit9CisKK3VpbnQxNl90IENhbWVyYU1vZHVsZTo6Z2V0SGFsQXBpVmVyc2lvbigpIGNvbnN0IHsKKyAgICByZXR1cm4gbU1vZHVsZS0+Y29tbW9uLmhhbF9hcGlfdmVyc2lvbjsKK30KKworY29uc3QgY2hhciogQ2FtZXJhTW9kdWxlOjpnZXRNb2R1bGVBdXRob3IoKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmNvbW1vbi5hdXRob3I7Cit9CisKK3ZvaWQqIENhbWVyYU1vZHVsZTo6Z2V0RHNvKCkgeworICAgIHJldHVybiBtTW9kdWxlLT5jb21tb24uZHNvOworfQorCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9IYW5kbGVJbXBvcnRlci5jcHAgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0hhbmRsZUltcG9ydGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDhiOTQzCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9IYW5kbGVJbXBvcnRlci5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkhhbmRsZUltcG9ydGVyIgorI2luY2x1ZGUgIkhhbmRsZUltcG9ydGVyLmgiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgY29tbW9uIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoZWxwZXIgeworCit1c2luZyBNYXBwZXJFcnJvciA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjsKKworSGFuZGxlSW1wb3J0ZXI6OkhhbmRsZUltcG9ydGVyKCkgOiBtSW5pdGlhbGl6ZWQoZmFsc2UpIHt9CisKK3ZvaWQgSGFuZGxlSW1wb3J0ZXI6OmluaXRpYWxpemVMb2NrZWQoKSB7CisgICAgaWYgKG1Jbml0aWFsaXplZCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbU1hcHBlciA9IElNYXBwZXI6OmdldFNlcnZpY2UoKTsKKyAgICBpZiAobU1hcHBlciA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2Fubm5vdCBhY2NjZXNzIGdyYXBoaWNzIG1hcHBlciBIQUwhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1Jbml0aWFsaXplZCA9IHRydWU7CisgICAgcmV0dXJuOworfQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjpjbGVhbnVwKCkgeworICAgIG1NYXBwZXIuY2xlYXIoKTsKKyAgICBtSW5pdGlhbGl6ZWQgPSBmYWxzZTsKK30KKworLy8gSW4gSUNvbXBvc2VyLCBhbnkgYnVmZmVyX2hhbmRsZV90IGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIHdlIG5lZWQgdG8KKy8vIG1ha2UgYSBjbG9uZSBmb3IgaHdjb21wb3NlcjIuICBXZSBhbHNvIG5lZWQgdG8gdHJhbnNsYXRlIGVtcHR5IGhhbmRsZQorLy8gdG8gbnVsbHB0ci4gIFRoaXMgZnVuY3Rpb24gZG9lcyB0aGF0LCBpbi1wbGFjZS4KK2Jvb2wgSGFuZGxlSW1wb3J0ZXI6OmltcG9ydEJ1ZmZlcihidWZmZXJfaGFuZGxlX3QmIGhhbmRsZSkgeworICAgIGlmICghaGFuZGxlLT5udW1GZHMgJiYgIWhhbmRsZS0+bnVtSW50cykgeworICAgICAgICBoYW5kbGUgPSBudWxscHRyOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBNdXRleDo6QXV0b2xvY2sgbG9jayhtTG9jayk7CisgICAgaWYgKCFtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgaW5pdGlhbGl6ZUxvY2tlZCgpOworICAgIH0KKworICAgIGlmIChtTWFwcGVyID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBtTWFwcGVyIGlzIG51bGwhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIE1hcHBlckVycm9yIGVycm9yOworICAgIGJ1ZmZlcl9oYW5kbGVfdCBpbXBvcnRlZEhhbmRsZTsKKyAgICBhdXRvIHJldCA9IG1NYXBwZXItPmltcG9ydEJ1ZmZlcigKKyAgICAgICAgaGlkbF9oYW5kbGUoaGFuZGxlKSwKKyAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBCdWZmZXJIYW5kbGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gdG1wRXJyb3I7CisgICAgICAgICAgICBpbXBvcnRlZEhhbmRsZSA9IHN0YXRpY19jYXN0PGJ1ZmZlcl9oYW5kbGVfdD4odG1wQnVmZmVySGFuZGxlKTsKKyAgICAgICAgfSk7CisKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBtYXBwZXIgaW1wb3J0QnVmZmVyIGZhaWxlZDogJXMiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZXJyb3IgIT0gTWFwcGVyRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGhhbmRsZSA9IGltcG9ydGVkSGFuZGxlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSGFuZGxlSW1wb3J0ZXI6OmZyZWVCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSkgeworICAgIGlmICghaGFuZGxlKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBNdXRleDo6QXV0b2xvY2sgbG9jayhtTG9jayk7CisgICAgaWYgKG1NYXBwZXIgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IG1NYXBwZXIgaXMgbnVsbCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBtTWFwcGVyLT5mcmVlQnVmZmVyKGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oaGFuZGxlKSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogbWFwcGVyIGZyZWVCdWZmZXIgZmFpbGVkOiAlcyIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICB9Cit9CisKK2Jvb2wgSGFuZGxlSW1wb3J0ZXI6OmltcG9ydEZlbmNlKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlLCBpbnQmIGZkKSBjb25zdCB7CisgICAgaWYgKGhhbmRsZSA9PSBudWxscHRyIHx8IGhhbmRsZS0+bnVtRmRzID09IDApIHsKKyAgICAgICAgZmQgPSAtMTsKKyAgICB9IGVsc2UgaWYgKGhhbmRsZS0+bnVtRmRzID09IDEpIHsKKyAgICAgICAgZmQgPSBkdXAoaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgaWYgKGZkIDwgMCkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBkdXAgZmVuY2UgZmQgJWQiLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgZmVuY2UgaGFuZGxlIHdpdGggJWQgZmlsZSBkZXNjcmlwdG9ycyIsCisgICAgICAgICAgICAgICAgaGFuZGxlLT5udW1GZHMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSGFuZGxlSW1wb3J0ZXI6OmNsb3NlRmVuY2UoaW50IGZkKSBjb25zdCB7CisgICAgaWYgKGZkID49IDApIHsKKyAgICAgICAgY2xvc2UoZmQpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvVmVuZG9yVGFnRGVzY3JpcHRvci5jcHAgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L1ZlbmRvclRhZ0Rlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjMTgyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L1ZlbmRvclRhZ0Rlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsMzY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJDYW1Db21tMS4wLVZURGVzYyIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vY2FtZXJhX21ldGFkYXRhLmg+CisjaW5jbHVkZSA8Y2FtZXJhX21ldGFkYXRhX2hpZGRlbi5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL011dGV4Lmg+CisjaW5jbHVkZSA8dXRpbHMvU29ydGVkVmVjdG9yLmg+CisjaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+CisKKyNpbmNsdWRlICJWZW5kb3JUYWdEZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYTIgeworbmFtZXNwYWNlIHBhcmFtcyB7CisKK1ZlbmRvclRhZ0Rlc2NyaXB0b3I6On5WZW5kb3JUYWdEZXNjcmlwdG9yKCkgeworICAgIHNpemVfdCBsZW4gPSBtUmV2ZXJzZU1hcHBpbmcuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyArK2kpICB7CisgICAgICAgIGRlbGV0ZSBtUmV2ZXJzZU1hcHBpbmdbaV07CisgICAgfQorfQorCitWZW5kb3JUYWdEZXNjcmlwdG9yOjpWZW5kb3JUYWdEZXNjcmlwdG9yKCkgOgorICAgICAgICBtVGFnQ291bnQoMCksCisgICAgICAgIG1WZW5kb3JPcHMoKSB7Cit9CisKK1ZlbmRvclRhZ0Rlc2NyaXB0b3I6OlZlbmRvclRhZ0Rlc2NyaXB0b3IoY29uc3QgVmVuZG9yVGFnRGVzY3JpcHRvciYgc3JjKSB7CisgICAgY29weUZyb20oc3JjKTsKK30KKworVmVuZG9yVGFnRGVzY3JpcHRvciYgVmVuZG9yVGFnRGVzY3JpcHRvcjo6b3BlcmF0b3I9KGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHJocykgeworICAgIGNvcHlGcm9tKHJocyk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit2b2lkIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmNvcHlGcm9tKGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHNyYykgeworICAgIGlmICh0aGlzID09ICZzcmMpIHJldHVybjsKKworICAgIHNpemVfdCBsZW4gPSBtUmV2ZXJzZU1hcHBpbmcuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgZGVsZXRlIG1SZXZlcnNlTWFwcGluZ1tpXTsKKyAgICB9CisgICAgbVJldmVyc2VNYXBwaW5nLmNsZWFyKCk7CisKKyAgICBsZW4gPSBzcmMubVJldmVyc2VNYXBwaW5nLnNpemUoKTsKKyAgICAvLyBIYXZlIHRvIGNvcHkgS2V5ZWRWZWN0b3JzIGluc2lkZSBtUmV2ZXJzZU1hcHBpbmcKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgIEtleWVkVmVjdG9yPFN0cmluZzgsIHVpbnQzMl90PiogbmFtZU1hcHBlciA9IG5ldyBLZXllZFZlY3RvcjxTdHJpbmc4LCB1aW50MzJfdD4oKTsKKyAgICAgICAgKm5hbWVNYXBwZXIgPSAqKHNyYy5tUmV2ZXJzZU1hcHBpbmcudmFsdWVBdChpKSk7CisgICAgICAgIG1SZXZlcnNlTWFwcGluZy5hZGQoc3JjLm1SZXZlcnNlTWFwcGluZy5rZXlBdChpKSwgbmFtZU1hcHBlcik7CisgICAgfQorICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBpcyBzaW1wbGUKKyAgICBtVGFnVG9OYW1lTWFwID0gc3JjLm1UYWdUb05hbWVNYXA7CisgICAgbVRhZ1RvU2VjdGlvbk1hcCA9IHNyYy5tVGFnVG9TZWN0aW9uTWFwOworICAgIG1UYWdUb1R5cGVNYXAgPSBzcmMubVRhZ1RvVHlwZU1hcDsKKyAgICBtU2VjdGlvbnMgPSBzcmMubVNlY3Rpb25zOworICAgIG1UYWdDb3VudCA9IHNyYy5tVGFnQ291bnQ7CisgICAgbVZlbmRvck9wcyA9IHNyYy5tVmVuZG9yT3BzOworfQorCitpbnQgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0VGFnQ291bnQoKSBjb25zdCB7CisgICAgc2l6ZV90IHNpemUgPSBtVGFnVG9OYW1lTWFwLnNpemUoKTsKKyAgICBpZiAoc2l6ZSA9PSAwKSB7CisgICAgICAgIHJldHVybiBWRU5ET1JfVEFHX0NPVU5UX0VSUjsKKyAgICB9CisgICAgcmV0dXJuIHNpemU7Cit9CisKK3ZvaWQgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0VGFnQXJyYXkodWludDMyX3QqIHRhZ0FycmF5KSBjb25zdCB7CisgICAgc2l6ZV90IHNpemUgPSBtVGFnVG9OYW1lTWFwLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICB0YWdBcnJheVtpXSA9IG1UYWdUb05hbWVNYXAua2V5QXQoaSk7CisgICAgfQorfQorCitjb25zdCBjaGFyKiBWZW5kb3JUYWdEZXNjcmlwdG9yOjpnZXRTZWN0aW9uTmFtZSh1aW50MzJfdCB0YWcpIGNvbnN0IHsKKyAgICBzc2l6ZV90IGluZGV4ID0gbVRhZ1RvU2VjdGlvbk1hcC5pbmRleE9mS2V5KHRhZyk7CisgICAgaWYgKGluZGV4IDwgMCkgeworICAgICAgICByZXR1cm4gVkVORE9SX1NFQ1RJT05fTkFNRV9FUlI7CisgICAgfQorICAgIHJldHVybiBtU2VjdGlvbnNbbVRhZ1RvU2VjdGlvbk1hcC52YWx1ZUF0KGluZGV4KV0uc3RyaW5nKCk7Cit9CisKK3NzaXplX3QgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0U2VjdGlvbkluZGV4KHVpbnQzMl90IHRhZykgY29uc3QgeworICAgIHJldHVybiBtVGFnVG9TZWN0aW9uTWFwLnZhbHVlRm9yKHRhZyk7Cit9CisKK2NvbnN0IGNoYXIqIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ05hbWUodWludDMyX3QgdGFnKSBjb25zdCB7CisgICAgc3NpemVfdCBpbmRleCA9IG1UYWdUb05hbWVNYXAuaW5kZXhPZktleSh0YWcpOworICAgIGlmIChpbmRleCA8IDApIHsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfTkFNRV9FUlI7CisgICAgfQorICAgIHJldHVybiBtVGFnVG9OYW1lTWFwLnZhbHVlQXQoaW5kZXgpLnN0cmluZygpOworfQorCitpbnQgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0VGFnVHlwZSh1aW50MzJfdCB0YWcpIGNvbnN0IHsKKyAgICBzc2l6ZV90IGluZGV4ID0gbVRhZ1RvTmFtZU1hcC5pbmRleE9mS2V5KHRhZyk7CisgICAgaWYgKGluZGV4IDwgMCkgeworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19UWVBFX0VSUjsKKyAgICB9CisgICAgcmV0dXJuIG1UYWdUb1R5cGVNYXAudmFsdWVGb3IodGFnKTsKK30KKworY29uc3QgU29ydGVkVmVjdG9yPFN0cmluZzg+KiBWZW5kb3JUYWdEZXNjcmlwdG9yOjpnZXRBbGxTZWN0aW9uTmFtZXMoKSBjb25zdCB7CisgICAgcmV0dXJuICZtU2VjdGlvbnM7Cit9CisKK3N0YXR1c190IFZlbmRvclRhZ0Rlc2NyaXB0b3I6Omxvb2t1cFRhZyhjb25zdCBTdHJpbmc4JiBuYW1lLCBjb25zdCBTdHJpbmc4JiBzZWN0aW9uLCAvKm91dCovdWludDMyX3QqIHRhZykgY29uc3QgeworICAgIHNzaXplX3QgaW5kZXggPSBtUmV2ZXJzZU1hcHBpbmcuaW5kZXhPZktleShzZWN0aW9uKTsKKyAgICBpZiAoaW5kZXggPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogU2VjdGlvbiAnJXMnIGRvZXMgbm90IGV4aXN0LiIsIF9fRlVOQ1RJT05fXywgc2VjdGlvbi5zdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorCisgICAgc3NpemVfdCBuYW1lSW5kZXggPSBtUmV2ZXJzZU1hcHBpbmdbaW5kZXhdLT5pbmRleE9mS2V5KG5hbWUpOworICAgIGlmIChuYW1lSW5kZXggPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogVGFnIG5hbWUgJyVzJyBkb2VzIG5vdCBleGlzdC4iLCBfX0ZVTkNUSU9OX18sIG5hbWUuc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIGlmICh0YWcgIT0gTlVMTCkgeworICAgICAgICAqdGFnID0gbVJldmVyc2VNYXBwaW5nW2luZGV4XS0+dmFsdWVBdChuYW1lSW5kZXgpOworICAgIH0KKyAgICByZXR1cm4gT0s7Cit9CisKK3ZvaWQgVmVuZG9yVGFnRGVzY3JpcHRvcjo6ZHVtcChpbnQgZmQsIGludCB2ZXJib3NpdHksIGludCBpbmRlbnRhdGlvbikgY29uc3QgeworCisgICAgc2l6ZV90IHNpemUgPSBtVGFnVG9OYW1lTWFwLnNpemUoKTsKKyAgICBpZiAoc2l6ZSA9PSAwKSB7CisgICAgICAgIGRwcmludGYoZmQsICIlKnNEdW1waW5nIGNvbmZpZ3VyZWQgdmVuZG9yIHRhZyBkZXNjcmlwdG9yczogTm9uZSBzZXRcbiIsCisgICAgICAgICAgICAgICAgaW5kZW50YXRpb24sICIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRwcmludGYoZmQsICIlKnNEdW1waW5nIGNvbmZpZ3VyZWQgdmVuZG9yIHRhZyBkZXNjcmlwdG9yczogJXp1IGVudHJpZXNcbiIsCisgICAgICAgICAgICBpbmRlbnRhdGlvbiwgIiIsIHNpemUpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHVpbnQzMl90IHRhZyA9ICBtVGFnVG9OYW1lTWFwLmtleUF0KGkpOworCisgICAgICAgIGlmICh2ZXJib3NpdHkgPCAxKSB7CisgICAgICAgICAgICBkcHJpbnRmKGZkLCAiJSpzMHgleFxuIiwgaW5kZW50YXRpb24gKyAyLCAiIiwgdGFnKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIFN0cmluZzggbmFtZSA9IG1UYWdUb05hbWVNYXAudmFsdWVBdChpKTsKKyAgICAgICAgdWludDMyX3Qgc2VjdGlvbklkID0gbVRhZ1RvU2VjdGlvbk1hcC52YWx1ZUZvcih0YWcpOworICAgICAgICBTdHJpbmc4IHNlY3Rpb25OYW1lID0gbVNlY3Rpb25zW3NlY3Rpb25JZF07CisgICAgICAgIGludCB0eXBlID0gbVRhZ1RvVHlwZU1hcC52YWx1ZUZvcih0YWcpOworICAgICAgICBjb25zdCBjaGFyKiB0eXBlTmFtZSA9ICh0eXBlID49IDAgJiYgdHlwZSA8IE5VTV9UWVBFUykgPworICAgICAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90eXBlX25hbWVzW3R5cGVdIDogIlVOS05PV04iOworICAgICAgICBkcHJpbnRmKGZkLCAiJSpzMHgleCAoJXMpIHdpdGggdHlwZSAlZCAoJXMpIGRlZmluZWQgaW4gc2VjdGlvbiAlc1xuIiwgaW5kZW50YXRpb24gKyAyLAorICAgICAgICAgICAgIiIsIHRhZywgbmFtZS5zdHJpbmcoKSwgdHlwZSwgdHlwZU5hbWUsIHNlY3Rpb25OYW1lLnN0cmluZygpKTsKKyAgICB9CisKK30KKworfSAvLyBuYW1lc3BhY2UgcGFyYW1zCit9IC8vIG5hbWVzcGFjZSBjYW1lcmEyCisKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKworZXh0ZXJuICJDIiB7CisKK3N0YXRpYyBpbnQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfY291bnQoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogdik7CitzdGF0aWMgdm9pZCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X2FsbF90YWdzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYsIHVpbnQzMl90KiB0YWdBcnJheSk7CitzdGF0aWMgY29uc3QgY2hhciogdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF9zZWN0aW9uX25hbWUoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogdiwgdWludDMyX3QgdGFnKTsKK3N0YXRpYyBjb25zdCBjaGFyKiB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ19uYW1lKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYsIHVpbnQzMl90IHRhZyk7CitzdGF0aWMgaW50IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX3R5cGUoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogdiwgdWludDMyX3QgdGFnKTsKKworfSAvKiBleHRlcm4gIkMiICovCisKK3N0YXRpYyBNdXRleCBzTG9jazsKK3N0YXRpYyBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcjsKKworc3RhdHVzX3QgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Y3JlYXRlRGVzY3JpcHRvckZyb21PcHMoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogdk9wcywKKyAgICAgICAgICAgIC8qb3V0Ki8KKyAgICAgICAgICAgIHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yKSB7CisgICAgaWYgKHZPcHMgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiJXM6IHZlbmRvcl90YWdfb3BzIGFyZ3VtZW50IHdhcyBOVUxMLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorCisgICAgaW50IHRhZ0NvdW50ID0gdk9wcy0+Z2V0X3RhZ19jb3VudCh2T3BzKTsKKyAgICBpZiAodGFnQ291bnQgPCAwIHx8IHRhZ0NvdW50ID4gSU5UMzJfTUFYKSB7CisgICAgICAgIEFMT0dFKCIlczogdGFnIGNvdW50ICVkIGZyb20gdmVuZG9yIG9wcyBpcyBpbnZhbGlkLiIsIF9fRlVOQ1RJT05fXywgdGFnQ291bnQpOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIFZlY3Rvcjx1aW50MzJfdD4gdGFnQXJyYXk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRih0YWdBcnJheS5yZXNpemUodGFnQ291bnQpICE9IHRhZ0NvdW50LAorICAgICAgICAgICAgIiVzOiB0b28gbWFueSAoJXUpIHZlbmRvciB0YWdzIGRlZmluZWQuIiwgX19GVU5DVElPTl9fLCB0YWdDb3VudCk7CisKKyAgICB2T3BzLT5nZXRfYWxsX3RhZ3Modk9wcywgLypvdXQqL3RhZ0FycmF5LmVkaXRBcnJheSgpKTsKKworICAgIHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IGRlc2MgPSBuZXcgVmVuZG9yVGFnRGVzY3JpcHRvcigpOworICAgIGRlc2MtPm1UYWdDb3VudCA9IHRhZ0NvdW50OworCisgICAgU29ydGVkVmVjdG9yPFN0cmluZzg+IHNlY3Rpb25zOworICAgIEtleWVkVmVjdG9yPHVpbnQzMl90LCBTdHJpbmc4PiB0YWdUb1NlY3Rpb25NYXA7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PHNpemVfdD4odGFnQ291bnQpOyArK2kpIHsKKyAgICAgICAgdWludDMyX3QgdGFnID0gdGFnQXJyYXlbaV07CisgICAgICAgIGlmICh0YWcgPCBDQU1FUkFfTUVUQURBVEFfVkVORE9SX1RBR19CT1VOREFSWSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiB2ZW5kb3IgdGFnICVkIG5vdCBpbiB2ZW5kb3IgdGFnIHNlY3Rpb24uIiwgX19GVU5DVElPTl9fLCB0YWcpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICBjb25zdCBjaGFyICp0YWdOYW1lID0gdk9wcy0+Z2V0X3RhZ19uYW1lKHZPcHMsIHRhZyk7CisgICAgICAgIGlmICh0YWdOYW1lID09IE5VTEwpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogbm8gdGFnIG5hbWUgZGVmaW5lZCBmb3IgdmVuZG9yIHRhZyAlZC4iLCBfX0ZVTkNUSU9OX18sIHRhZyk7CisgICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgICAgICB9CisgICAgICAgIGRlc2MtPm1UYWdUb05hbWVNYXAuYWRkKHRhZywgU3RyaW5nOCh0YWdOYW1lKSk7CisgICAgICAgIGNvbnN0IGNoYXIgKnNlY3Rpb25OYW1lID0gdk9wcy0+Z2V0X3NlY3Rpb25fbmFtZSh2T3BzLCB0YWcpOworICAgICAgICBpZiAoc2VjdGlvbk5hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBubyBzZWN0aW9uIG5hbWUgZGVmaW5lZCBmb3IgdmVuZG9yIHRhZyAlZC4iLCBfX0ZVTkNUSU9OX18sIHRhZyk7CisgICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nOCBzZWN0aW9uU3RyaW5nKHNlY3Rpb25OYW1lKTsKKworICAgICAgICBzZWN0aW9ucy5hZGQoc2VjdGlvblN0cmluZyk7CisgICAgICAgIHRhZ1RvU2VjdGlvbk1hcC5hZGQodGFnLCBzZWN0aW9uU3RyaW5nKTsKKworICAgICAgICBpbnQgdGFnVHlwZSA9IHZPcHMtPmdldF90YWdfdHlwZSh2T3BzLCB0YWcpOworICAgICAgICBpZiAodGFnVHlwZSA8IDAgfHwgdGFnVHlwZSA+PSBOVU1fVFlQRVMpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogdGFnIHR5cGUgJWQgZnJvbSB2ZW5kb3Igb3BzIGRvZXMgbm90IGV4aXN0LiIsIF9fRlVOQ1RJT05fXywgdGFnVHlwZSk7CisgICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgICAgICB9CisgICAgICAgIGRlc2MtPm1UYWdUb1R5cGVNYXAuYWRkKHRhZywgdGFnVHlwZSk7CisgICAgfQorCisgICAgZGVzYy0+bVNlY3Rpb25zID0gc2VjdGlvbnM7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PHNpemVfdD4odGFnQ291bnQpOyArK2kpIHsKKyAgICAgICAgdWludDMyX3QgdGFnID0gdGFnQXJyYXlbaV07CisgICAgICAgIFN0cmluZzggc2VjdGlvblN0cmluZyA9IHRhZ1RvU2VjdGlvbk1hcC52YWx1ZUZvcih0YWcpOworCisgICAgICAgIC8vIFNldCB1cCB0YWcgdG8gc2VjdGlvbiBpbmRleCBtYXAKKyAgICAgICAgc3NpemVfdCBpbmRleCA9IHNlY3Rpb25zLmluZGV4T2Yoc2VjdGlvblN0cmluZyk7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYoaW5kZXggPCAwLCAiaW5kZXggJXpkIG11c3QgYmUgbm9uLW5lZ2F0aXZlIiwgaW5kZXgpOworICAgICAgICBkZXNjLT5tVGFnVG9TZWN0aW9uTWFwLmFkZCh0YWcsIHN0YXRpY19jYXN0PHVpbnQzMl90PihpbmRleCkpOworCisgICAgICAgIC8vIFNldCB1cCByZXZlcnNlIG1hcHBpbmcKKyAgICAgICAgc3NpemVfdCByZXZlcnNlSW5kZXggPSAtMTsKKyAgICAgICAgaWYgKChyZXZlcnNlSW5kZXggPSBkZXNjLT5tUmV2ZXJzZU1hcHBpbmcuaW5kZXhPZktleShzZWN0aW9uU3RyaW5nKSkgPCAwKSB7CisgICAgICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCB1aW50MzJfdD4qIG5hbWVNYXBwZXIgPSBuZXcgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgdWludDMyX3Q+KCk7CisgICAgICAgICAgICByZXZlcnNlSW5kZXggPSBkZXNjLT5tUmV2ZXJzZU1hcHBpbmcuYWRkKHNlY3Rpb25TdHJpbmcsIG5hbWVNYXBwZXIpOworICAgICAgICB9CisgICAgICAgIGRlc2MtPm1SZXZlcnNlTWFwcGluZ1tyZXZlcnNlSW5kZXhdLT5hZGQoZGVzYy0+bVRhZ1RvTmFtZU1hcC52YWx1ZUZvcih0YWcpLCB0YWcpOworICAgIH0KKworICAgIGRlc2NyaXB0b3IgPSBkZXNjOworICAgIHJldHVybiBPSzsKK30KKworc3RhdHVzX3QgVmVuZG9yVGFnRGVzY3JpcHRvcjo6c2V0QXNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yKGNvbnN0IHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+JiBkZXNjKSB7CisgICAgc3RhdHVzX3QgcmVzID0gT0s7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9IGRlc2M7CisKKyAgICB2ZW5kb3JfdGFnX29wc190KiBvcHNQdHIgPSBOVUxMOworICAgIGlmIChkZXNjICE9IE5VTEwpIHsKKyAgICAgICAgb3BzUHRyID0gJihkZXNjLT5tVmVuZG9yT3BzKTsKKyAgICAgICAgb3BzUHRyLT5nZXRfdGFnX2NvdW50ID0gdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfY291bnQ7CisgICAgICAgIG9wc1B0ci0+Z2V0X2FsbF90YWdzID0gdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF9hbGxfdGFnczsKKyAgICAgICAgb3BzUHRyLT5nZXRfc2VjdGlvbl9uYW1lID0gdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF9zZWN0aW9uX25hbWU7CisgICAgICAgIG9wc1B0ci0+Z2V0X3RhZ19uYW1lID0gdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfbmFtZTsKKyAgICAgICAgb3BzUHRyLT5nZXRfdGFnX3R5cGUgPSB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ190eXBlOworICAgIH0KKyAgICBpZigocmVzID0gc2V0X2NhbWVyYV9tZXRhZGF0YV92ZW5kb3Jfb3BzKG9wc1B0cikpICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IHNldCB2ZW5kb3IgdGFnIGRlc2NyaXB0b3IsIHJlY2VpdmVkIGVycm9yICVzICglZCkuIgorICAgICAgICAgICAgICAgICwgX19GVU5DVElPTl9fLCBzdHJlcnJvcigtcmVzKSwgcmVzKTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKK30KKwordm9pZCBWZW5kb3JUYWdEZXNjcmlwdG9yOjpjbGVhckdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICBzZXRfY2FtZXJhX21ldGFkYXRhX3ZlbmRvcl9vcHMoTlVMTCk7CisgICAgc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IuY2xlYXIoKTsKK30KKworc3A8VmVuZG9yVGFnRGVzY3JpcHRvcj4gVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0R2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcigpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcjsKK30KKworZXh0ZXJuICJDIiB7CisKK2ludCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ19jb3VudChjb25zdCB2ZW5kb3JfdGFnX29wc190KiAvKnYqLykgeworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgaWYgKHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBWZW5kb3IgdGFnIGRlc2NyaXB0b3Igbm90IGluaXRpYWxpemVkLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWRU5ET1JfVEFHX0NPVU5UX0VSUjsKKyAgICB9CisgICAgcmV0dXJuIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLT5nZXRUYWdDb3VudCgpOworfQorCit2b2lkIHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfYWxsX3RhZ3MoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogLyp2Ki8sIHVpbnQzMl90KiB0YWdBcnJheSkgeworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgaWYgKHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBWZW5kb3IgdGFnIGRlc2NyaXB0b3Igbm90IGluaXRpYWxpemVkLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3ItPmdldFRhZ0FycmF5KHRhZ0FycmF5KTsKK30KKworY29uc3QgY2hhciogdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF9zZWN0aW9uX25hbWUoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogLyp2Ki8sIHVpbnQzMl90IHRhZykgeworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgaWYgKHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBWZW5kb3IgdGFnIGRlc2NyaXB0b3Igbm90IGluaXRpYWxpemVkLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWRU5ET1JfU0VDVElPTl9OQU1FX0VSUjsKKyAgICB9CisgICAgcmV0dXJuIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLT5nZXRTZWN0aW9uTmFtZSh0YWcpOworfQorCitjb25zdCBjaGFyKiB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ19uYW1lKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIC8qdiovLCB1aW50MzJfdCB0YWcpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19OQU1FX0VSUjsKKyAgICB9CisgICAgcmV0dXJuIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLT5nZXRUYWdOYW1lKHRhZyk7Cit9CisKK2ludCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ190eXBlKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIC8qdiovLCB1aW50MzJfdCB0YWcpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19UWVBFX0VSUjsKKyAgICB9CisgICAgcmV0dXJuIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLT5nZXRUYWdUeXBlKHRhZyk7Cit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1ldGFkYXRhLmggYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvQ2FtZXJhTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU0ZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1ldGFkYXRhLmgKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1FVEFEQVRBX0gKKyNkZWZpbmUgQ0FNRVJBX0NPTU1PTl8xXzBfQ0FNRVJBTUVUQURBVEFfSAorCisjaW5jbHVkZSAic3lzdGVtL2NhbWVyYV9tZXRhZGF0YS5oIgorCisjaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgY29tbW9uIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoZWxwZXIgeworCitjbGFzcyBWZW5kb3JUYWdEZXNjcmlwdG9yOworCisvKioKKyAqIEEgY29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgdGhlIEMtYmFzZWQgY2FtZXJhX21ldGFkYXRhX3QgbGlicmFyeS4KKyAqLworY2xhc3MgQ2FtZXJhTWV0YWRhdGEgeworICBwdWJsaWM6CisgICAgLyoqIENyZWF0ZXMgYW4gZW1wdHkgb2JqZWN0OyBiZXN0IHVzZWQgd2hlbiBleHBlY3RpbmcgdG8gYWNxdWlyZSBjb250ZW50cworICAgICAqIGZyb20gZWxzZXdoZXJlICovCisgICAgQ2FtZXJhTWV0YWRhdGEoKTsKKyAgICAvKiogQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCBzcGFjZSBmb3IgZW50cnlDYXBhY2l0eSBlbnRyaWVzLCB3aXRoCisgICAgICogZGF0YUNhcGFjaXR5IGV4dHJhIHN0b3JhZ2UgKi8KKyAgICBDYW1lcmFNZXRhZGF0YShzaXplX3QgZW50cnlDYXBhY2l0eSwgc2l6ZV90IGRhdGFDYXBhY2l0eSA9IDEwKTsKKworICAgIH5DYW1lcmFNZXRhZGF0YSgpOworCisgICAgLyoqIFRha2VzIG93bmVyc2hpcCBvZiBwYXNzZWQtaW4gYnVmZmVyICovCisgICAgQ2FtZXJhTWV0YWRhdGEoY2FtZXJhX21ldGFkYXRhX3QgKmJ1ZmZlcik7CisgICAgLyoqIENsb25lcyB0aGUgbWV0YWRhdGEgKi8KKyAgICBDYW1lcmFNZXRhZGF0YShjb25zdCBDYW1lcmFNZXRhZGF0YSAmb3RoZXIpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBjbG9uZXMgbWV0YWRhdGEgYnVmZmVyLgorICAgICAqLworICAgIENhbWVyYU1ldGFkYXRhICZvcGVyYXRvcj0oY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKyAgICBDYW1lcmFNZXRhZGF0YSAmb3BlcmF0b3I9KGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpOworCisgICAgLyoqCisgICAgICogR2V0IHJlZmVyZW5jZSB0byB0aGUgdW5kZXJseWluZyBtZXRhZGF0YSBidWZmZXIuIE93bmVyc2hpcCByZW1haW5zIHdpdGgKKyAgICAgKiB0aGUgQ2FtZXJhTWV0YWRhdGEgb2JqZWN0LCBidXQgbm9uLWNvbnN0IENhbWVyYU1ldGFkYXRhIG1ldGhvZHMgd2lsbCBub3QKKyAgICAgKiB3b3JrIHVudGlsIHVubG9jaygpIGlzIGNhbGxlZC4gTm90ZSB0aGF0IHRoZSBsb2NrIGhhcyBub3RoaW5nIHRvIGRvIHdpdGgKKyAgICAgKiB0aHJlYWQtc2FmZXR5LCBpdCBzaW1wbHkgcHJldmVudHMgdGhlIGNhbWVyYV9tZXRhZGF0YV90IHBvaW50ZXIgcmV0dXJuZWQKKyAgICAgKiBoZXJlIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGludmFsaWRhdGVkIGJ5IENhbWVyYU1ldGFkYXRhIG9wZXJhdGlvbnMuCisgICAgICovCisgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqIGdldEFuZExvY2soKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFVubG9jayB0aGUgQ2FtZXJhTWV0YWRhdGEgZm9yIHVzZSBhZ2Fpbi4gQWZ0ZXIgdGhpcyB1bmxvY2ssIHRoZSBwb2ludGVyCisgICAgICogZ2l2ZW4gZnJvbSBnZXRBbmRMb2NrKCkgbWF5IG5vIGxvbmdlciBiZSB1c2VkLiBUaGUgcG9pbnRlciBwYXNzZWQgb3V0CisgICAgICogZnJvbSBnZXRBbmRMb2NrIG11c3QgYmUgcHJvdmlkZWQgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIHJpZ2h0IG9iamVjdCBpcworICAgICAqIGJlaW5nIHVubG9ja2VkLgorICAgICAqLworICAgIHN0YXR1c190IHVubG9jayhjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYSByYXcgbWV0YWRhdGEgYnVmZmVyIHRvIHRoZSBjYWxsZXIuIEFmdGVyIHRoaXMgY2FsbCwKKyAgICAgKiBDYW1lcmFNZXRhZGF0YSBubyBsb25nZXIgcmVmZXJlbmNlcyB0aGUgYnVmZmVyLCBhbmQgdGhlIGNhbGxlciB0YWtlcworICAgICAqIHJlc3BvbnNpYmlsaXR5IGZvciBmcmVlaW5nIHRoZSByYXcgbWV0YWRhdGEgYnVmZmVyICh1c2luZworICAgICAqIGZyZWVfY2FtZXJhX21ldGFkYXRhKCkpLCBvciBmb3IgaGFuZGluZyBpdCB0byBhbm90aGVyIENhbWVyYU1ldGFkYXRhCisgICAgICogaW5zdGFuY2UuCisgICAgICovCisgICAgY2FtZXJhX21ldGFkYXRhX3QqIHJlbGVhc2UoKTsKKworICAgIC8qKgorICAgICAqIENsZWFyIHRoZSBtZXRhZGF0YSBidWZmZXIgYW5kIGZyZWUgYWxsIHN0b3JhZ2UgdXNlZCBieSBpdAorICAgICAqLworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIC8qKgorICAgICAqIEFjcXVpcmUgYSByYXcgbWV0YWRhdGEgYnVmZmVyIGZyb20gdGhlIGNhbGxlci4gQWZ0ZXIgdGhpcyBjYWxsLAorICAgICAqIHRoZSBjYWxsZXIgbm8gbG9uZ2VyIG93bnMgdGhlIHJhdyBidWZmZXIsIGFuZCBtdXN0IG5vdCBmcmVlIG9yIG1hbmlwdWxhdGUgaXQuCisgICAgICogSWYgQ2FtZXJhTWV0YWRhdGEgYWxyZWFkeSBjb250YWlucyBtZXRhZGF0YSwgaXQgaXMgZnJlZWQuCisgICAgICovCisgICAgdm9pZCBhY3F1aXJlKGNhbWVyYV9tZXRhZGF0YV90KiBidWZmZXIpOworCisgICAgLyoqCisgICAgICogQWNxdWlyZXMgcmF3IGJ1ZmZlciBmcm9tIG90aGVyIENhbWVyYU1ldGFkYXRhIG9iamVjdC4gQWZ0ZXIgdGhlIGNhbGwsIHRoZSBhcmd1bWVudAorICAgICAqIG9iamVjdCBubyBsb25nZXIgaGFzIGFueSBtZXRhZGF0YS4KKyAgICAgKi8KKyAgICB2b2lkIGFjcXVpcmUoQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIEFwcGVuZCBtZXRhZGF0YSBmcm9tIGFub3RoZXIgQ2FtZXJhTWV0YWRhdGEgb2JqZWN0LgorICAgICAqLworICAgIHN0YXR1c190IGFwcGVuZChjb25zdCBDYW1lcmFNZXRhZGF0YSAmb3RoZXIpOworCisgICAgLyoqCisgICAgICogQXBwZW5kIG1ldGFkYXRhIGZyb20gYSByYXcgY2FtZXJhX21ldGFkYXRhIGJ1ZmZlcgorICAgICAqLworICAgIHN0YXR1c190IGFwcGVuZChjb25zdCBjYW1lcmFfbWV0YWRhdGEqIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBtZXRhZGF0YSBlbnRyaWVzLgorICAgICAqLworICAgIHNpemVfdCBlbnRyeUNvdW50KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBJcyB0aGUgYnVmZmVyIGVtcHR5IChubyBlbnRpcmVzKQorICAgICAqLworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU29ydCBtZXRhZGF0YSBidWZmZXIgZm9yIGZhc3RlciBmaW5kCisgICAgICovCisgICAgc3RhdHVzX3Qgc29ydCgpOworCisgICAgLyoqCisgICAgICogVXBkYXRlIG1ldGFkYXRhIGVudHJ5LiBXaWxsIGNyZWF0ZSBlbnRyeSBpZiBpdCBkb2Vzbid0IGV4aXN0IGFscmVhZHksIGFuZAorICAgICAqIHdpbGwgcmVhbGxvY2F0ZSB0aGUgYnVmZmVyIGlmIGluc3VmZmljaWVudCBzcGFjZSBleGlzdHMuIE92ZXJsb2FkZWQgZm9yCisgICAgICogdGhlIHZhcmlvdXMgdHlwZXMgb2YgdmFsaWQgZGF0YS4KKyAgICAgKi8KKyAgICBzdGF0dXNfdCB1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBpbnQzMl90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCk7CisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCk7CisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IGludDY0X3QgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KTsKKyAgICBzdGF0dXNfdCB1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICAgICAgY29uc3QgZG91YmxlICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCk7CisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV9yYXRpb25hbF90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCk7CisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IFN0cmluZzggJnN0cmluZyk7CisgICAgc3RhdHVzX3QgdXBkYXRlKGNvbnN0IGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSAmZW50cnkpOworCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsIFZlY3RvcjxUPiBkYXRhKSB7CisgICAgICAgIHJldHVybiB1cGRhdGUodGFnLCBkYXRhLmFycmF5KCksIGRhdGEuc2l6ZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiBhIG1ldGFkYXRhIGVudHJ5IGV4aXN0cyBmb3IgYSBnaXZlbiB0YWcgaWQKKyAgICAgKgorICAgICAqLworICAgIGJvb2wgZXhpc3RzKHVpbnQzMl90IHRhZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWV0YWRhdGEgZW50cnkgYnkgdGFnIGlkCisgICAgICovCisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IGZpbmQodWludDMyX3QgdGFnKTsKKworICAgIC8qKgorICAgICAqIEdldCBtZXRhZGF0YSBlbnRyeSBieSB0YWcgaWQsIHdpdGggbm8gZWRpdGluZworICAgICAqLworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBmaW5kKHVpbnQzMl90IHRhZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBEZWxldGUgbWV0YWRhdGEgZW50cnkgYnkgdGFnCisgICAgICovCisgICAgc3RhdHVzX3QgZXJhc2UodWludDMyX3QgdGFnKTsKKworICAgIC8qKgorICAgICAqIFN3YXAgdGhlIHVuZGVybHlpbmcgY2FtZXJhIG1ldGFkYXRhIGJldHdlZW4gdGhpcyBhbmQgdGhlIG90aGVyCisgICAgICogbWV0YWRhdGEgb2JqZWN0LgorICAgICAqLworICAgIHZvaWQgc3dhcChDYW1lcmFNZXRhZGF0YSAmb3RoZXIpOworCisgICAgLyoqCisgICAgICogRHVtcCBjb250ZW50cyBpbnRvIEZEIGZvciBkZWJ1Z2dpbmcuIFRoZSB2ZXJib3NpdHkgbGV2ZWxzIGFyZQorICAgICAqIDA6IFRhZyBlbnRyeSBpbmZvcm1hdGlvbiBvbmx5LCBubyBkYXRhIHZhbHVlcworICAgICAqIDE6IExldmVsIDAgcGx1cyBhdCBtb3N0IDE2IGRhdGEgdmFsdWVzIHBlciBlbnRyeQorICAgICAqIDI6IEFsbCBpbmZvcm1hdGlvbgorICAgICAqCisgICAgICogVGhlIGluZGVudGF0aW9uIHBhcmFtZXRlciBzZXRzIHRoZSBudW1iZXIgb2Ygc3BhY2VzIHRvIGFkZCB0byB0aGUgc3RhcnQKKyAgICAgKiBlYWNoIGxpbmUgb2Ygb3V0cHV0LgorICAgICAqLworICAgIHZvaWQgZHVtcChpbnQgZmQsIGludCB2ZXJib3NpdHkgPSAxLCBpbnQgaW5kZW50YXRpb24gPSAwKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbmQgdGFnIGlkIGZvciBhIGdpdmVuIHRhZyBuYW1lLCBhbHNvIGNoZWNraW5nIHZlbmRvciB0YWdzIGlmIGF2YWlsYWJsZS4KKyAgICAgKiBPbiBzdWNjZXNzLCByZXR1cm5zIE9LIGFuZCB3cml0ZXMgdGhlIHRhZyBpZCBpbnRvIHRhZy4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBzbG93IG1ldGhvZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgc3RhdHVzX3QgZ2V0VGFnRnJvbU5hbWUoY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgIGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3IqIHZUYWdzLCB1aW50MzJfdCAqdGFnKTsKKworICBwcml2YXRlOgorICAgIGNhbWVyYV9tZXRhZGF0YV90ICptQnVmZmVyOworICAgIG11dGFibGUgYm9vbCAgICAgICBtTG9ja2VkOworCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGFnIGhhcyBhIGdpdmVuIHR5cGUKKyAgICAgKi8KKyAgICBzdGF0dXNfdCBjaGVja1R5cGUodWludDMyX3QgdGFnLCB1aW50OF90IGV4cGVjdGVkVHlwZSk7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIHVwZGF0ZSBlbnRyeSBtZXRob2QKKyAgICAgKi8KKyAgICBzdGF0dXNfdCB1cGRhdGVJbXBsKHVpbnQzMl90IHRhZywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworCisgICAgLyoqCisgICAgICogUmVzaXplIG1ldGFkYXRhIGJ1ZmZlciBpZiBuZWVkZWQgYnkgcmVhbGxvY2F0aW5nIGl0IGFuZCBjb3B5aW5nIGl0IG92ZXIuCisgICAgICovCisgICAgc3RhdHVzX3QgcmVzaXplSWZOZWVkZWQoc2l6ZV90IGV4dHJhRW50cmllcywgc2l6ZV90IGV4dHJhRGF0YSk7CisKK307CisKK30gLy8gbmFtZXNwYWNlIGhlbHBlcgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgY29tbW9uCit9IC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1vZHVsZS5oIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1vZHVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYmZiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvQ2FtZXJhTW9kdWxlLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQ0FNRVJBX0NPTU1PTl8xXzBfQ0FNRVJBTU9EVUxFX0gKKyNkZWZpbmUgQ0FNRVJBX0NPTU1PTl8xXzBfQ0FNRVJBTU9EVUxFX0gKKworI2luY2x1ZGUgPGhhcmR3YXJlL2NhbWVyYS5oPgorI2luY2x1ZGUgPHV0aWxzL011dGV4Lmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9SZWZCYXNlLmg+CisKKyNpbmNsdWRlICJDYW1lcmFNZXRhZGF0YS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgY29tbW9uIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoZWxwZXIgeworLyoqCisgKiBBIHdyYXBwZXIgY2xhc3MgZm9yIEhBTCBjYW1lcmEgbW9kdWxlLgorICoKKyAqIFRoaXMgY2xhc3Mgd3JhcHMgY2FtZXJhX21vZHVsZV90IHJldHVybmVkIGZyb20gSEFMIHRvIHByb3ZpZGUgYSB3cmFwcGVkCisgKiBnZXRfY2FtZXJhX2luZm8gaW1wbGVtZW50YXRpb24gd2hpY2ggQ2FtZXJhU2VydmljZSBnZW5lcmF0ZXMgc29tZQorICogY2FtZXJhIGNoYXJhY3RlcmlzdGljcyBrZXlzIGRlZmluZWQgaW4gbmV3ZXIgSEFMIHZlcnNpb24gb24gYW4gb2xkZXIgSEFMLgorICovCitjbGFzcyBDYW1lcmFNb2R1bGUgOiBwdWJsaWMgUmVmQmFzZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ2FtZXJhTW9kdWxlKGNhbWVyYV9tb2R1bGVfdCAqbW9kdWxlKTsKKyAgICB2aXJ0dWFsIH5DYW1lcmFNb2R1bGUoKTsKKworICAgIC8vIE11c3QgYmUgY2FsbGVkIGFmdGVyIGNvbnN0cnVjdGlvbgorICAgIC8vIFJldHVybnMgT0sgb24gc3VjY2VzcywgTk9fSU5JVCBvbiBmYWlsdXJlCisgICAgaW50IGluaXQoKTsKKworICAgIGludCBnZXRDYW1lcmFJbmZvKGludCBjYW1lcmFJZCwgc3RydWN0IGNhbWVyYV9pbmZvICppbmZvKTsKKyAgICBpbnQgZ2V0RGV2aWNlVmVyc2lvbihpbnQgY2FtZXJhSWQpOworICAgIGludCBnZXROdW1iZXJPZkNhbWVyYXModm9pZCk7CisgICAgaW50IG9wZW4oY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSk7CisgICAgYm9vbCBpc09wZW5MZWdhY3lEZWZpbmVkKCkgY29uc3Q7CisgICAgaW50IG9wZW5MZWdhY3koY29uc3QgY2hhciogaWQsIHVpbnQzMl90IGhhbFZlcnNpb24sIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSk7CisgICAgaW50IHNldENhbGxiYWNrcyhjb25zdCBjYW1lcmFfbW9kdWxlX2NhbGxiYWNrc190ICpjYWxsYmFja3MpOworICAgIGJvb2wgaXNWZW5kb3JUYWdEZWZpbmVkKCkgY29uc3Q7CisgICAgdm9pZCBnZXRWZW5kb3JUYWdPcHModmVuZG9yX3RhZ19vcHNfdCogb3BzKTsKKyAgICBib29sIGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkgY29uc3Q7CisgICAgaW50IHNldFRvcmNoTW9kZShjb25zdCBjaGFyKiBjYW1lcmFfaWQsIGJvb2wgZW5hYmxlKTsKKyAgICB1aW50MTZfdCBnZXRNb2R1bGVBcGlWZXJzaW9uKCkgY29uc3Q7CisgICAgY29uc3QgY2hhciogZ2V0TW9kdWxlTmFtZSgpIGNvbnN0OworICAgIHVpbnQxNl90IGdldEhhbEFwaVZlcnNpb24oKSBjb25zdDsKKyAgICBjb25zdCBjaGFyKiBnZXRNb2R1bGVBdXRob3IoKSBjb25zdDsKKyAgICAvLyBPbmx5IHVzZWQgYnkgQ2FtZXJhTW9kdWxlRml4dHVyZSBuYXRpdmUgdGVzdC4gRG8gTk9UIHVzZSBlbHNld2hlcmUuCisgICAgdm9pZCAqZ2V0RHNvKCk7CisKK3ByaXZhdGU6CisgICAgLy8gRGVyaXZlIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3Mga2V5cyBkZWZpbmVkIGFmdGVyIEhBTCBkZXZpY2UgdmVyc2lvbgorICAgIHN0YXRpYyB2b2lkIGRlcml2ZUNhbWVyYUNoYXJhY3RlcmlzdGljc0tleXModWludDMyX3QgZGV2aWNlVmVyc2lvbiwgQ2FtZXJhTWV0YWRhdGEgJmNoYXJzKTsKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gYXBwZW5kIGF2YWlsYWJsZVtyZXF1ZXN0fHJlc3VsdHxjaGFyc11LZXlzCisgICAgc3RhdGljIHZvaWQgYXBwZW5kQXZhaWxhYmxlS2V5cyhDYW1lcmFNZXRhZGF0YSAmY2hhcnMsCisgICAgICAgICAgICBpbnQzMl90IGtleVRhZywgY29uc3QgVmVjdG9yPGludDMyX3Q+JiBhcHBlbmRLZXlzKTsKKyAgICBzdGF0dXNfdCBmaWx0ZXJPcGVuRXJyb3JDb2RlKHN0YXR1c190IGVycik7CisgICAgY2FtZXJhX21vZHVsZV90ICptTW9kdWxlOworICAgIEtleWVkVmVjdG9yPGludCwgY2FtZXJhX2luZm8+IG1DYW1lcmFJbmZvTWFwOworICAgIEtleWVkVmVjdG9yPGludCwgaW50PiBtRGV2aWNlVmVyc2lvbk1hcDsKKyAgICBNdXRleCBtQ2FtZXJhSW5mb0xvY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9IYW5kbGVJbXBvcnRlci5oIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0hhbmRsZUltcG9ydGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY4Y2ZjMAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9IYW5kbGVJbXBvcnRlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIENBTUVSQV9DT01NT05fMV8wX0hBTkRMRUlNUE9SVEVEX0gKKyNkZWZpbmUgQ0FNRVJBX0NPTU1PTl8xXzBfSEFORExFSU1QT1JURURfSAorCisjaW5jbHVkZSA8c3lzdGVtL3dpbmRvdy5oPgorI2luY2x1ZGUgPHV0aWxzL011dGV4Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKKy8vIEJvcnJvd2VkIGZyb20gZ3JhcGhpY3MgSEFMLiBVc2UgdGhpcyB1bnRpbCBncmFsbG9jIG1hcHBlciBIQUwgaXMgd29ya2luZworY2xhc3MgSGFuZGxlSW1wb3J0ZXIgeworcHVibGljOgorICAgIEhhbmRsZUltcG9ydGVyKCk7CisKKyAgICAvLyBJbiBJQ29tcG9zZXIsIGFueSBidWZmZXJfaGFuZGxlX3QgaXMgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgd2UgbmVlZCB0bworICAgIC8vIG1ha2UgYSBjbG9uZSBmb3IgaHdjb21wb3NlcjIuICBXZSBhbHNvIG5lZWQgdG8gdHJhbnNsYXRlIGVtcHR5IGhhbmRsZQorICAgIC8vIHRvIG51bGxwdHIuICBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhhdCwgaW4tcGxhY2UuCisgICAgYm9vbCBpbXBvcnRCdWZmZXIoYnVmZmVyX2hhbmRsZV90JiBoYW5kbGUpOworICAgIHZvaWQgZnJlZUJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKyAgICBib29sIGltcG9ydEZlbmNlKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlLCBpbnQmIGZkKSBjb25zdDsKKyAgICB2b2lkIGNsb3NlRmVuY2UoaW50IGZkKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRpYWxpemVMb2NrZWQoKTsKKyAgICB2b2lkIGNsZWFudXAoKTsKKworICAgIE11dGV4IG1Mb2NrOworICAgIGJvb2wgbUluaXRpYWxpemVkOworICAgIHNwPElNYXBwZXI+IG1NYXBwZXI7CisKK307CisKK30gLy8gbmFtZXNwYWNlIGhlbHBlcgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgY29tbW9uCit9IC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBDQU1FUkFfQ09NTU9OXzFfMF9IQU5ETEVJTVBPUlRFRF9IClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL1ZlbmRvclRhZ0Rlc2NyaXB0b3IuaCBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9WZW5kb3JUYWdEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ4ZGVkOQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9WZW5kb3JUYWdEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIENBTUVSQV9DT01NT05fMV8wX1ZFTkRPUlRBR0RFU0NSSVBUT1JfSAorI2RlZmluZSBDQU1FUkFfQ09NTU9OXzFfMF9WRU5ET1JUQUdERVNDUklQVE9SX0gKKworI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisjaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgorI2luY2x1ZGUgPHV0aWxzL1JlZkJhc2UuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vY2FtZXJhX3ZlbmRvcl90YWdzLmg+CisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEyIHsKK25hbWVzcGFjZSBwYXJhbXMgeworCisvKioKKyAqIFZlbmRvclRhZ0Rlc2NyaXB0b3Igb2JqZWN0cyBhcmUgY29udGFpbmVycyBmb3IgdGhlIHZlbmRvciB0YWcKKyAqIGRlZmluaXRpb25zIHByb3ZpZGVkLCBhbmQgYXJlIHR5cGljYWxseSB1c2VkIHRvIHBhc3MgdGhlIHZlbmRvciB0YWcKKyAqIGluZm9ybWF0aW9uIGVudW1lcmF0ZWQgYnkgdGhlIEhBTCB0byBjbGllbnRzIG9mIHRoZSBjYW1lcmEgc2VydmljZS4KKyAqLworY2xhc3MgVmVuZG9yVGFnRGVzY3JpcHRvciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5WZW5kb3JUYWdEZXNjcmlwdG9yKCk7CisKKyAgICAgICAgVmVuZG9yVGFnRGVzY3JpcHRvcigpOworICAgICAgICBWZW5kb3JUYWdEZXNjcmlwdG9yKGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHNyYyk7CisgICAgICAgIFZlbmRvclRhZ0Rlc2NyaXB0b3ImIG9wZXJhdG9yPShjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiByaHMpOworCisgICAgICAgIHZvaWQgY29weUZyb20oY29uc3QgVmVuZG9yVGFnRGVzY3JpcHRvciYgc3JjKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGZvbGxvd2luZyAnZ2V0KicgbWV0aG9kcyBpbXBsZW1lbnQgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICogZnVuY3Rpb25zIGRlZmluZWQgaW4KKyAgICAgICAgICogc3lzdGVtL21lZGlhL2NhbWVyYS9pbmNsdWRlL3N5c3RlbS9jYW1lcmFfdmVuZG9yX3RhZ3MuaAorICAgICAgICAgKi8KKworICAgICAgICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdmVuZG9yIHRhZ3MgZGVmaW5lZC4KKyAgICAgICAgaW50IGdldFRhZ0NvdW50KCkgY29uc3Q7CisKKyAgICAgICAgLy8gUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBpZCdzIG9mIHZlbmRvciB0YWdzIGRlZmluZWQuCisgICAgICAgIHZvaWQgZ2V0VGFnQXJyYXkodWludDMyX3QqIHRhZ0FycmF5KSBjb25zdDsKKworICAgICAgICAvLyBSZXR1cm5zIHRoZSBzZWN0aW9uIG5hbWUgc3RyaW5nIGZvciBhIGdpdmVuIHZlbmRvciB0YWcgaWQuCisgICAgICAgIGNvbnN0IGNoYXIqIGdldFNlY3Rpb25OYW1lKHVpbnQzMl90IHRhZykgY29uc3Q7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgaW5kZXggaW4gc2VjdGlvbiB2ZWN0b3JzIHJldHVybmVkIGluIGdldEFsbFNlY3Rpb25OYW1lcygpCisgICAgICAgIC8vIGZvciBhIGdpdmVuIHZlbmRvciB0YWcgaWQuIC0xIGlmIGlucHV0IHRhZyBkb2VzIG5vdCBleGlzdC4KKyAgICAgICAgc3NpemVfdCBnZXRTZWN0aW9uSW5kZXgodWludDMyX3QgdGFnKSBjb25zdDsKKworICAgICAgICAvLyBSZXR1cm5zIHRoZSB0YWcgbmFtZSBzdHJpbmcgZm9yIGEgZ2l2ZW4gdmVuZG9yIHRhZyBpZC4KKyAgICAgICAgY29uc3QgY2hhciogZ2V0VGFnTmFtZSh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgICAgIC8vIFJldHVybnMgdGhlIHRhZyB0eXBlIGZvciBhIGdpdmVuIHZlbmRvciB0YWcgaWQuCisgICAgICAgIGludCBnZXRUYWdUeXBlKHVpbnQzMl90IHRhZykgY29uc3Q7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBnZXQgYSB2ZWN0b3IgY29udGFpbmluZyBhbGwgdmVuZG9yIHRhZworICAgICAgICAgKiBzZWN0aW9ucywgb3IgYW4gZW1wdHkgdmVjdG9yIGlmIG5vbmUgYXJlIGRlZmluZWQuCisgICAgICAgICAqIFRoZSBwb2ludGVyIGlzIHZhbGlkIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIFZlbmRvclRhZ0Rlc2NyaXB0b3IsCisgICAgICAgICAqIG9yIHVudGlsIGNvcHlGcm9tIGlzIGludm9rZWQuCisgICAgICAgICAqLworICAgICAgICBjb25zdCBTb3J0ZWRWZWN0b3I8U3RyaW5nOD4qIGdldEFsbFNlY3Rpb25OYW1lcygpIGNvbnN0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBMb29rdXAgdGhlIHRhZyBpZCBmb3IgYSBnaXZlbiB0YWcgbmFtZSBhbmQgc2VjdGlvbi4KKyAgICAgICAgICoKKyAgICAgICAgICogUmV0dXJucyBPSyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0dXNfdCBsb29rdXBUYWcoY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3QgU3RyaW5nOCYgc2VjdGlvbiwgLypvdXQqL3VpbnQzMl90KiB0YWcpIGNvbnN0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEdW1wIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCB2ZW5kb3IgdGFncyB0byBhIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgICAgICovCisgICAgICAgIHZvaWQgZHVtcChpbnQgZmQsIGludCB2ZXJib3NpdHksIGludCBpbmRlbnRhdGlvbikgY29uc3Q7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIEtleWVkVmVjdG9yPFN0cmluZzgsIEtleWVkVmVjdG9yPFN0cmluZzgsIHVpbnQzMl90Pio+IG1SZXZlcnNlTWFwcGluZzsKKyAgICAgICAgS2V5ZWRWZWN0b3I8dWludDMyX3QsIFN0cmluZzg+IG1UYWdUb05hbWVNYXA7CisgICAgICAgIEtleWVkVmVjdG9yPHVpbnQzMl90LCB1aW50MzJfdD4gbVRhZ1RvU2VjdGlvbk1hcDsgLy8gVmFsdWUgaXMgb2Zmc2V0IGluIG1TZWN0aW9ucworICAgICAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgaW50MzJfdD4gbVRhZ1RvVHlwZU1hcDsKKyAgICAgICAgU29ydGVkVmVjdG9yPFN0cmluZzg+IG1TZWN0aW9uczsKKyAgICAgICAgLy8gbXVzdCBiZSBpbnQzMl90IHRvIGJlIGNvbXBhdGlibGUgd2l0aCBQYXJjZWw6OndyaXRlSW50MzIKKyAgICAgICAgaW50MzJfdCBtVGFnQ291bnQ7CisKKyAgICAgICAgdmVuZG9yX3RhZ19vcHMgbVZlbmRvck9wczsKK307Cit9IC8qIG5hbWVzcGFjZSBwYXJhbXMgKi8KK30gLyogbmFtZXNwYWNlIGNhbWVyYTIgKi8KKworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgY29tbW9uIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoZWxwZXIgeworCisvKioKKyAqIFRoaXMgdmVyc2lvbiBvZiBWZW5kb3JUYWdEZXNjcmlwdG9yIG11c3QgYmUgc3RvcmVkIGluIEFuZHJvaWQgc3A8PiwgYW5kIGFkZHMgc3VwcG9ydCBmb3IgdXNpbmcgaXQKKyAqIGFzIGEgZ2xvYmFsIHRhZyBkZXNjcmlwdG9yLgorICoKKyAqIEl0J3MgYSBjaGlsZCBjbGFzcyBvZiB0aGUgYmFzaWMgaGFyZHdhcmU6OmNhbWVyYTI6OnBhcmFtczo6VmVuZG9yVGFnRGVzY3JpcHRvciBzaW5jZSBiYXNpYworICogUGFyY2VsYWJsZSBvYmplY3RzIGNhbm5vdCByZXF1aXJlIGJlaW5nIGtlcHQgaW4gYW4gc3A8PiBhbmQgc3RpbGwgd29yayB3aXRoIGF1dG8tZ2VuZXJhdGVkIEFJREwKKyAqIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2NsYXNzIFZlbmRvclRhZ0Rlc2NyaXB0b3IgOgorICAgICAgICAgICAgcHVibGljIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTI6OnBhcmFtczo6VmVuZG9yVGFnRGVzY3JpcHRvciwKKyAgICAgICAgICAgIHB1YmxpYyBMaWdodFJlZkJhc2U8VmVuZG9yVGFnRGVzY3JpcHRvcj4geworCisgIHB1YmxpYzoKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFZlbmRvclRhZ0Rlc2NyaXB0b3Igb2JqZWN0IGZyb20gdGhlIGdpdmVuIHZlbmRvcl90YWdfb3BzX3QKKyAgICAgKiBzdHJ1Y3QuCisgICAgICoKKyAgICAgKiBSZXR1cm5zIE9LIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgc3RhdHVzX3QgY3JlYXRlRGVzY3JpcHRvckZyb21PcHMoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogdk9wcywKKyAgICAgICAgICAgIC8qb3V0Ki8KKyAgICAgICAgICAgIHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGdsb2JhbCB2ZW5kb3IgdGFnIGRlc2NyaXB0b3IgdG8gdXNlIGZvciB0aGlzIHByb2Nlc3MuCisgICAgICogQ2FtZXJhIG1ldGFkYXRhIG9wZXJhdGlvbnMgdGhhdCBhY2Nlc3MgdmVuZG9yIHRhZ3Mgd2lsbCB1c2UgdGhlCisgICAgICogdmVuZG9yIHRhZyBkZWZpbml0aW9ucyBzZXQgdGhpcyB3YXkuCisgICAgICoKKyAgICAgKiBSZXR1cm5zIE9LIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgc3RhdHVzX3Qgc2V0QXNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yKGNvbnN0IHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+JiBkZXNjKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGdsb2JhbCB2ZW5kb3IgdGFnIGRlc2NyaXB0b3IgdXNlZCBieSB0aGlzIHByb2Nlc3MuCisgICAgICogVGhpcyB3aWxsIGNvbnRhaW4gTlVMTCBpZiBubyB2ZW5kb3IgdGFncyBhcmUgZGVmaW5lZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgc3A8VmVuZG9yVGFnRGVzY3JpcHRvcj4gZ2V0R2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcigpOworCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSBnbG9iYWwgdmVuZG9yIHRhZyBkZXNjcmlwdG9yIHVzZWQgYnkgdGhpcyBwcm9jZXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGNsZWFyR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcigpOworCit9OworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLyogQ0FNRVJBX0NPTU1PTl8xXzBfVkVORE9SVEFHREVTQ1JJUFRPUl9IICovCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC90eXBlcy5oYWwgYi9jYW1lcmEvY29tbW9uLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5MzEwNwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDQxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDsKKworLyoqCisgKiBDb21tb24gZW51bWVyYXRpb24gYW5kIHN0cnVjdHVyZSBkZWZpbml0aW9ucyBmb3IgYWxsIEhBTHMgdW5kZXIKKyAqIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhCisgKi8KKworLyoqCisgKiBTdGF0dXMgY29kZXMgZm9yIGNhbWVyYSBIQUwgbWV0aG9kIGNhbGxzLgorICoKKyAqLworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGwgc3VjY2VlZGVkCisgICAgICovCisgICAgT0sgPSAwLAorCisgICAgLyoqCisgICAgICogT25lIG9mIHRoZSBhcmd1bWVudHMgdG8gdGhlIG1ldGhvZCBjYWxsIGlzIGludmFsaWQuIEZvciBleGFtcGxlLAorICAgICAqIHRoZSBjYW1lcmEgSUQgaXMgdW5rbm93bi4KKyAgICAgKi8KKyAgICBJTExFR0FMX0FSR1VNRU5UID0gMSwKKworICAgIC8qKgorICAgICAqIFRoZSBzcGVjaWZpZWQgY2FtZXJhIGRldmljZSBpcyBhbHJlYWR5IGluIHVzZQorICAgICAqLworICAgIENBTUVSQV9JTl9VU0UgPSAyLAorCisgICAgLyoqCisgICAgICogVGhlIEhBTCBjYW5ub3Qgc3VwcG9ydCBtb3JlIHNpbXVsdGFuZW91cyBjYW1lcmFzIGluIHVzZS4KKyAgICAgKi8KKyAgICBNQVhfQ0FNRVJBU19JTl9VU0UgPSAzLAorCisgICAgLyoqCisgICAgICogVGhpcyBIQUwgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG1ldGhvZC4KKyAgICAgKi8KKyAgICBNRVRIT0RfTk9UX1NVUFBPUlRFRCA9IDQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgc3BlY2lmaWVkIGNhbWVyYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBPUEVSQVRJT05fTk9UX1NVUFBPUlRFRCA9IDUsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNhbWVyYSBkZXZpY2UgaXMgbm8gbG9uZ2VyIGNvbm5lY3RlZCBvciBvdGhlcndpc2UgYXZhaWxhYmxlIGZvciB1c2UKKyAgICAgKi8KKyAgICBDQU1FUkFfRElTQ09OTkVDVEVEID0gNiwKKworICAgIC8qKgorICAgICAqIFRoZSBIQUwgaGFzIGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIGFuZCBjYW5ub3QgY29tcGxldGUgdGhlCisgICAgICogcmVxdWVzdC4KKyAgICAgKi8KKyAgICBJTlRFUk5BTF9FUlJPUiA9IDcKK307CisKKy8qKgorICogUG9zc2libGUgc3RhdGVzIHRoYXQgdGhlIGZsYXNoIHVuaXQgb24gYSBjbG9zZWQgY2FtZXJhIGRldmljZSBjYW4gYmUgc2V0IHRvCisgKiB2aWEgdGhlIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgbWV0aG9kLgorICovCitlbnVtIFRvcmNoTW9kZSA6IHVpbnQzMl90IHsKKyAgICBPRkYgPSAwLCAvLyBUdXJuIG9mZiB0aGUgZmxhc2gKKyAgICBPTiAgPSAxICAvLyBUdXJuIG9uIHRoZSBmbGFzaCB0byB0b3JjaCBtb2RlCit9OworCisvKioKKyAqIENhbWVyYSBtZXRhZGF0YSB0eXBlIC0gZHVwbGljYXRlZCBmcm9tIFZOREsgbGliY2FtZXJhX21ldGFkYXRhIGZvciB2ZW5kb3IgdGFnCisgKiBkZWZpbml0aW9ucy4KKyAqLworZW51bSBDYW1lcmFNZXRhZGF0YVR5cGUgOiB1aW50MzJfdCB7CisgICAgLy8gVW5zaWduZWQgOC1iaXQgaW50ZWdlciAodWludDhfdCkKKyAgICBCWVRFID0gMCwKKyAgICAvLyBTaWduZWQgMzItYml0IGludGVnZXIgKGludDMyX3QpCisgICAgSU5UMzIgPSAxLAorICAgIC8vIDMyLWJpdCBmbG9hdCAoZmxvYXQpCisgICAgRkxPQVQgPSAyLAorICAgIC8vIFNpZ25lZCA2NC1iaXQgaW50ZWdlciAoaW50NjRfdCkKKyAgICBJTlQ2NCA9IDMsCisgICAgLy8gNjQtYml0IGZsb2F0IChkb3VibGUpCisgICAgRE9VQkxFID0gNCwKKyAgICAvLyBBIDY0LWJpdCBmcmFjdGlvbiAoY2FtZXJhX21ldGFkYXRhX3JhdGlvbmFsX3QpCisgICAgUkFUSU9OQUwgPSA1Cit9OworCisvKioKKyAqIEEgc2luZ2xlIHZlbmRvci11bmlxdWUgbWV0YWRhdGEgdGFnLgorICogVGhlIGZ1bGwgbmFtZSBvZiB0aGUgdGFnIGlzIDxzZWN0aW9uTmFtZT4uPHRhZ05hbWU+CisgKi8KK3N0cnVjdCBWZW5kb3JUYWcgeworICAgIHVpbnQzMl90IHRhZ0lkOyAvLyBUYWcgaWRlbnRpZmllciwgbXVzdCBiZSA+PSBUYWdCb3VuZGFyeUlkOjpWRU5ET1IKKyAgICBzdHJpbmcgdGFnTmFtZTsgLy8gTmFtZSBvZiB0YWcsIG5vdCBpbmNsdWRpbmcgc2VjdGlvbiBuYW1lCisgICAgQ2FtZXJhTWV0YWRhdGFUeXBlIHRhZ1R5cGU7Cit9OworCisvKioKKyAqIEEgc2V0IG9mIHJlbGF0ZWQgdmVuZG9yIHRhZ3MuCisgKi8KK3N0cnVjdCBWZW5kb3JUYWdTZWN0aW9uIHsKKyAgICBzdHJpbmcgc2VjdGlvbk5hbWU7IC8vIFNlY3Rpb24gbmFtZTsgbXVzdCBiZSBuYW1lc3BhY2VkIHdpdGhpbiB2ZW5kb3IncyBuYW1lCisgICAgdmVjPFZlbmRvclRhZz4gdGFnczsgLy8gTGlzdCBvZiB0YWdzIGluIHRoaXMgc2VjdGlvbgorfTsKKworZW51bSBUYWdCb3VuZGFyeUlkIDogdWludDMyX3QgeworICAgIEFPU1AgICAgPSAweDAsICAgICAgICAgLy8gRmlyc3QgdmFsaWQgdGFnIGlkIGZvciBhbmRyb2lkLWRlZmluZWQgdGFncworICAgIFZFTkRPUiAgPSAweDgwMDAwMDAwdSAgLy8gRmlyc3QgdmFsaWQgdGFnIGlkIGZvciB2ZW5kb3IgZXh0ZW5zaW9uIHRhZ3MKK307CisKKy8qKgorICogQ2FtZXJhRGV2aWNlU3RhdHVzCisgKgorICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIGEgY2FtZXJhIGRldmljZSwgYXMgc2VudCBieSBhIGNhbWVyYSBwcm92aWRlciBIQUwKKyAqIHRocm91Z2ggdGhlIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpjYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoKSBjYWxsLgorICoKKyAqIEF0IHN0YXJ0dXAsIHRoZSBjYW1lcmEgc2VydmljZSBtdXN0IGFzc3VtZSBhbGwgaW50ZXJuYWwgY2FtZXJhIGRldmljZXMgbGlzdGVkCisgKiBieSBJQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYUlkTGlzdCgpIGFyZSBpbiB0aGUgUFJFU0VOVCBzdGF0ZS4gVGhlIHByb3ZpZGVyCisgKiBtdXN0IGludm9rZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlIHRvIGluZm9ybSB0aGUKKyAqIHNlcnZpY2Ugb2YgYW55IGluaXRpYWxseSBOT1RfUFJFU0VOVCBpbnRlcm5hbCBkZXZpY2VzLCBhbmQgb2YgYW55IFBSRVNFTlQKKyAqIGV4dGVybmFsIGNhbWVyYSBkZXZpY2VzLCBhcyBzb29uIGFzIHRoZSBjYW1lcmEgc2VydmljZSBoYXMgY2FsbGVkCisgKiBJQ2FtZXJhUHJvdmlkZXI6OnNldENhbGxiYWNrKCkuCisgKgorICogQWxsb3dlZCBzdGF0ZSB0cmFuc2l0aW9uczoKKyAqICAgICAgUFJFU0VOVCAgICAgICAgICAgIC0+IE5PVF9QUkVTRU5UCisgKiAgICAgIE5PVF9QUkVTRU5UICAgICAgICAtPiBFTlVNRVJBVElORworICogICAgICBOT1RfUFJFU0VOVCAgICAgICAgLT4gUFJFU0VOVAorICogICAgICBFTlVNRVJBVElORyAgICAgICAgLT4gUFJFU0VOVAorICogICAgICBFTlVNRVJBVElORyAgICAgICAgLT4gTk9UX1BSRVNFTlQKKyAqLworZW51bSBDYW1lcmFEZXZpY2VTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogVGhlIGNhbWVyYSBkZXZpY2UgaXMgbm90IGN1cnJlbnRseSBjb25uZWN0ZWQsIGFuZCB0cnlpbmcgdG8gcmVmZXJlbmNlIGl0CisgICAgICogaW4gcHJvdmlkZXIgbWV0aG9kIGNhbGxzIG11c3QgcmV0dXJuIHN0YXR1cyBjb2RlIElMTEVHQUxfQVJHVU1FTlQuCisgICAgICoKKyAgICAgKi8KKyAgICBOT1RfUFJFU0VOVCA9IDAsCisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FtZXJhIGRldmljZSBpcyBjb25uZWN0ZWQsIGFuZCBvcGVuaW5nIGl0IGlzIHBvc3NpYmxlLCBhcyBsb25nIGFzCisgICAgICogc3VmZmljaWVudCByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBmcmFtZXdvcmsgbXVzdCBhc3N1bWUgYWxsIGRldmljZXMgcmV0dXJuZWQgYnkKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYUlkTGlzdCgpIGFyZSBpbiB0aGlzIHN0YXRlLgorICAgICAqLworICAgIFBSRVNFTlQgPSAxLAorCisgICAgLyoqCisgICAgICogVGhlIGNhbWVyYSBkZXZpY2UgaXMgY29ubmVjdGVkLCBidXQgaXQgaXMgdW5kZXJnb2luZyBlbnVtZXJhdGlvbiBhbmQKKyAgICAgKiBzdGFydHVwLCBhbmQgc28gb3BlbmluZyB0aGUgZGV2aWNlIG11c3QgcmV0dXJuIENBTUVSQV9JTl9VU0UuCisgICAgICoKKyAgICAgKiBBdHRlbXB0aW5nIHRvIGNhbGwgSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoKSBtdXN0CisgICAgICogc3VjY2VlZCwgaG93ZXZlci4KKyAgICAgKi8KKyAgICBFTlVNRVJBVElORyA9IDIsCisKK307CisKKy8qKgorICogVG9yY2hNb2RlU3RhdHVzOgorICoKKyAqIFRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgdG9yY2ggbW9kZSBvbiBhIGdpdmVuIGNhbWVyYSBkZXZpY2UsIHNlbnQgYnkgYQorICogY2FtZXJhIHByb3ZpZGVyIEhBTCB2aWEgdGhlIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpUb3JjaE1vZGVTdGF0dXNDaGFuZ2UoKQorICogY2FsbC4KKyAqCisgKiBUaGUgdG9yY2ggbW9kZSBzdGF0dXMgb2YgYSBjYW1lcmEgZGV2aWNlIGlzIGFwcGxpY2FibGUgb25seSB3aGVuIHRoZSBjYW1lcmEKKyAqIGRldmljZSBpcyBwcmVzZW50LiBUaGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBub3QgY2FsbAorICogSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKSB0byB0dXJuIG9uIHRvcmNoIG1vZGUgb2YgYSBjYW1lcmEgZGV2aWNlIGlmCisgKiB0aGUgY2FtZXJhIGRldmljZSBpcyBub3QgcHJlc2VudC4gQXQgY2FtZXJhIHNlcnZpY2Ugc3RhcnR1cCB0aW1lLCB0aGUKKyAqIGZyYW1ld29yayBtdXN0IGFzc3VtZSB0b3JjaCBtb2RlcyBhcmUgaW4gdGhlIEFWQUlMQUJMRV9PRkYgc3RhdGUgaWYgdGhlCisgKiBjYW1lcmEgZGV2aWNlIGlzIHByZXNlbnQgYW5kIHRoZSBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzIGVudHJ5CisgKiBhbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIGlzIHJlcG9ydGVkIGFzIHRydWUgdmlhCisgKiBJQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYUNoYXJhY3RlcmlzdGljcygpIGNhbGwuIFRoZSBzYW1lIGlzIGFzc3VtZWQgZm9yCisgKiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlcyB3aGVuIHRoZXkgYXJlIGluaXRpYWxseSBjb25uZWN0ZWQuCisgKgorICogVGhlIGNhbWVyYSBzZXJ2aWNlIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzIGZyb20gdGhlIGNhbWVyYSBwcm92aWRlcgorICogSEFMIHdoZW4gYSBjYW1lcmEgZGV2aWNlJ3Mgc3RhdHVzIGNoYW5nZXM6CisgKgorICogIDEuIEEgcHJldmlvdXNseS1kaXNjb25uZWN0ZWQgY2FtZXJhIGRldmljZSBiZWNvbWVzIGNvbm5lY3RlZC4gQWZ0ZXIKKyAqICAgICAgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OkNhbWVyYURldmljZVN0YXR1c0NoYW5nZSgpIGlzIGludm9rZWQgdG8gaW5mb3JtCisgKiAgICAgIHRoZSBjYW1lcmEgc2VydmljZSB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGlzIHByZXNlbnQsIHRoZSBmcmFtZXdvcmsgbXVzdAorICogICAgICBhc3N1bWUgdGhlIGNhbWVyYSBkZXZpY2UncyB0b3JjaCBtb2RlIGlzIGluIEFWQUlMQUJMRV9PRkYgc3RhdGUgaWYgaXQKKyAqICAgICAgaGFzIGEgZmxhc2ggdW5pdC4gVGhlIGNhbWVyYSBwcm92aWRlciBIQUwgZG9lcyBub3QgbmVlZCB0byBpbnZva2UKKyAqICAgICAgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OlRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHVubGVzcyB0aGUgZmxhc2ggdW5pdAorICogICAgICBpcyB1bmF2YWlsYWJsZSB0byB1c2UgYnkgSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKS4KKyAqCisgKiAgMi4gQSBwcmV2aW91c2x5LWNvbm5lY3RlZCBjYW1lcmEgYmVjb21lcyBkaXNjb25uZWN0ZWQuIEFmdGVyCisgKiAgICAgIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpDYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoKSBpcyBpbnZva2VkIHRvIGluZm9ybQorICogICAgICB0aGUgY2FtZXJhIHNlcnZpY2UgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBpcyBub3QgcHJlc2VudCwgdGhlIGZyYW1ld29yaworICogICAgICBtdXN0IG5vdCBjYWxsIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgZm9yIHRoZSBkaXNjb25uZWN0ZWQgY2FtZXJhCisgKiAgICAgIGRldmljZSB1bnRpbCBpdCBpcyBjb25uZWN0ZWQgYWdhaW4uIFRoZSBjYW1lcmEgcHJvdmlkZXIgSEFMIGRvZXMgbm90CisgKiAgICAgIG5lZWQgdG8gaW52b2tlIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpUb3JjaE1vZGVTdGF0dXNDaGFuZ2UoKQorICogICAgICBzZXBhcmF0ZWx5IHRvIGluZm9ybSB0aGF0IHRoZSBmbGFzaCB1bml0IGhhcyBiZWNvbWUgTk9UX0FWQUlMQUJMRS4KKyAqCisgKiAgMy4gb3BlbkNhbWVyYURldmljZSgpIG9yIG9wZW5DYW1lcmFEZXZpY2VWZXJzaW9uKCkgaXMgY2FsbGVkIHRvIG9wZW4gYQorICogICAgICBjYW1lcmEgZGV2aWNlLiBUaGUgY2FtZXJhIHByb3ZpZGVyIEhBTCBtdXN0IGludm9rZQorICogICAgICBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6VG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgZm9yIGFsbCBmbGFzaCB1bml0cworICogICAgICB0aGF0IGhhdmUgZW50ZXJlZCBOT1RfQVZBSUxBQkxFIHN0YXRlIGFuZCBjYW4gbm90IGJlIHR1cm5lZCBvbiBieQorICogICAgICBjYWxsaW5nIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgZHVlIHRvIHRoaXMgb3BlbigpIGNhbGwuCisgKiAgICAgIG9wZW5DYW1lcmFEZXZpY2UoKSBtdXN0IG5vdCB0cmlnZ2VyIEFWQUlMQUJMRV9PRkYgYmVmb3JlIE5PVF9BVkFJTEFCTEUKKyAqICAgICAgZm9yIGFsbCBmbGFzaCB1bml0cyB0aGF0IGhhdmUgYmVjb21lIHVuYXZhaWxhYmxlLgorICoKKyAqICA0LiBJQ2FtZXJhRGV2aWNlLmNsb3NlKCkgaXMgY2FsbGVkIHRvIGNsb3NlIGEgY2FtZXJhIGRldmljZS4gVGhlIGNhbWVyYQorICogICAgICBwcm92aWRlciBIQUwgbXVzdCBjYWxsIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKQorICogICAgICBmb3IgYWxsIGZsYXNoIHVuaXRzIHRoYXQgaGF2ZSBub3cgZW50ZXJlZCB0aGUgQVZBSUxBQkxFX09GRiBzdGF0ZSBhbmQKKyAqICAgICAgY2FuIGJlIHR1cm5lZCBvbiBieSBjYWxsaW5nIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgYWdhaW4gYmVjYXVzZQorICogICAgICBvZiBzdWZmaWNpZW50IG5ldyBjYW1lcmEgcmVzb3VyY2VzIGJlaW5nIGZyZWVkIHVwIGJ5IHRoaXMgY2xvc2UoKSBjYWxsLgorICoKKyAqICBOb3RlIHRoYXQgdGhlIGNhbWVyYSBzZXJ2aWNlIGNhbGxpbmcgSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKQorICogIHN1Y2Nlc3NmdWxseSBtdXN0IHRyaWdnZXIgQVZBSUxBQkxFX09GRiBvciBBVkFJTEFCTEVfT04gY2FsbGJhY2sgZm9yIHRoZQorICogIGdpdmVuIGNhbWVyYSBkZXZpY2UuIEFkZGl0aW9uYWxseSBpdCBtdXN0IHRyaWdnZXIgQVZBSUxBQkxFX09GRiBjYWxsYmFja3MKKyAqICBmb3Igb3RoZXIgcHJldmlvdXNseS1vbiB0b3JjaCBtb2RlcyBpZiBIQUwgY2Fubm90IGtlZXAgbXVsdGlwbGUgZGV2aWNlcycKKyAqICBmbGFzaGxpZ2h0cyBvbiBzaW11bHRhbmVvdXNseS4KKyAqLworZW51bSBUb3JjaE1vZGVTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogVGhlIGZsYXNoIHVuaXQgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBhbmQgdGhlIHRvcmNoIG1vZGUgY2FuIG5vdCBiZQorICAgICAqIHR1cm5lZCBvbiBieSBjYWxsaW5nIHNldFRvcmNoTW9kZSgpLiBJZiB0aGUgdG9yY2ggbW9kZSB3YXMgQVZBSUxBQkxFX09OLAorICAgICAqIHRoZSBmbGFzaGxpZ2h0IG11c3QgYmUgdHVybmVkIG9mZiBieSB0aGUgcHJvdmlkZXIgSEFMIGJlZm9yZSB0aGUgcHJvdmlkZXIKKyAgICAgKiBIQUwgY2FsbHMgdG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkuCisgICAgICovCisgICAgTk9UX0FWQUlMQUJMRSA9IDAsCisKKyAgICAvKioKKyAgICAgKiBBIHRvcmNoIG1vZGUgaGFzIGJlY29tZSBvZmYgYW5kIGlzIGF2YWlsYWJsZSB0byBiZSB0dXJuZWQgb24gdmlhCisgICAgICogSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKS4gVGhpcyBtYXkgaGFwcGVuIGluIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBjYXNlczoKKyAgICAgKiAgIDEuIEFmdGVyIHRoZSByZXNvdXJjZXMgdG8gdHVybiBvbiB0aGUgdG9yY2ggbW9kZSBoYXZlIGJlY29tZSBhdmFpbGFibGUuCisgICAgICogICAyLiBBZnRlciBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGlzIGNhbGxlZCB0byB0dXJuIG9mZiB0aGUgdG9yY2gKKyAgICAgKiAgICAgIG1vZGUuCisgICAgICogICAzLiBBZnRlciB0aGUgY2FtZXJhIHNlcnZpY2UgdHVybmVkIG9uIHRoZSB0b3JjaCBtb2RlIGZvciBzb21lIG90aGVyCisgICAgICogICAgICBjYW1lcmEgZGV2aWNlIGFuZCB0aGUgcHJvdmlkZXIgSEFMIGhhZCB0byB0dXJuIG9mZiB0aGUgdG9yY2ggbW9kZXMKKyAgICAgKiAgICAgIG9mIG90aGVyIGNhbWVyYSBkZXZpY2UocykgdGhhdCB3ZXJlIHByZXZpb3VzbHkgb24sIGR1ZSB0byBsYWNrIG9mCisgICAgICogICAgICByZXNvdXJjZXMgdG8ga2VlcCB0aGVtIGFsbCBvbi4KKyAgICAgKi8KKyAgICBBVkFJTEFCTEVfT0ZGID0gMSwKKworICAgIC8qKgorICAgICAqIEEgdG9yY2ggbW9kZSBoYXMgYmVjb21lIG9uIGFuZCBpcyBhdmFpbGFibGUgdG8gYmUgdHVybmVkIG9mZiB2aWEKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpLiBUaGlzIGNhbiBoYXBwZW4gb25seSBhZnRlcgorICAgICAqIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgaGFzIGJlZW4gY2FsbGVkIHRvIHR1cm4gb24gdGhlIHRvcmNoIG1vZGUuCisgICAgICovCisgICAgQVZBSUxBQkxFX09OID0gMiwKKworfTsKKworLyoqCisgKiBDYW1lcmFSZXNvdXJjZUNvc3Q6CisgKgorICogU3RydWN0dXJlIGRlZmluaW5nIHRoZSBhYnN0cmFjdCByZXNvdXJjZSBjb3N0IG9mIG9wZW5pbmcgYSBjYW1lcmEgZGV2aWNlLAorICogYW5kIGFueSB1c2FnZSBjb25mbGljdHMgYmV0d2VlbiBtdWx0aXBsZSBjYW1lcmEgZGV2aWNlcy4KKyAqCisgKiBPYnRhaW5hYmxlIHZpYSBJQ2FtZXJhRGV2aWNlOjpnZXRSZXNvdXJjZUNvc3QoKQorICovCitzdHJ1Y3QgQ2FtZXJhUmVzb3VyY2VDb3N0IHsKKyAgICAvKioKKyAgICAgKiBUaGUgdG90YWwgcmVzb3VyY2UgImNvc3QiIG9mIHVzaW5nIHRoaXMgY2FtZXJhLCByZXByZXNlbnRlZCBhcyBhbiBpbnRlZ2VyCisgICAgICogdmFsdWUgaW4gdGhlIHJhbmdlIFswLCAxMDBdIHdoZXJlIDEwMCByZXByZXNlbnRzIHRvdGFsIHVzYWdlIG9mIHRoZQorICAgICAqIHNoYXJlZCByZXNvdXJjZSB0aGF0IGlzIHRoZSBsaW1pdGluZyBib3R0bGVuZWNrIG9mIHRoZSBjYW1lcmEgc3Vic3lzdGVtLgorICAgICAqIFRoaXMgbWF5IGJlIGEgdmVyeSByb3VnaCBlc3RpbWF0ZSwgYW5kIGlzIHVzZWQgYXMgYSBoaW50IHRvIHRoZSBjYW1lcmEKKyAgICAgKiBzZXJ2aWNlIHRvIGRldGVybWluZSB3aGVuIHRvIGRpc2FsbG93IG11bHRpcGxlIGFwcGxpY2F0aW9ucyBmcm9tCisgICAgICogc2ltdWx0YW5lb3VzbHkgb3BlbmluZyBkaWZmZXJlbnQgY2FtZXJhcyBhZHZlcnRpc2VkIGJ5IHRoZSBjYW1lcmEKKyAgICAgKiBzZXJ2aWNlLgorICAgICAqCisgICAgICogVGhlIGNhbWVyYSBzZXJ2aWNlIG11c3QgYmUgYWJsZSB0byBzaW11bHRhbmVvdXNseSBvcGVuIGFuZCB1c2UgYW55CisgICAgICogY29tYmluYXRpb24gb2YgY2FtZXJhIGRldmljZXMgZXhwb3NlZCBieSB0aGUgSEFMIHdoZXJlIHRoZSBzdW0gb2YKKyAgICAgKiB0aGUgcmVzb3VyY2UgY29zdHMgb2YgdGhlc2UgY2FtZXJhcyBpcyA8PSAxMDAuIEZvciBkZXRlcm1pbmluZyBjb3N0LAorICAgICAqIGVhY2ggY2FtZXJhIGRldmljZSBtdXN0IGJlIGFzc3VtZWQgdG8gYmUgY29uZmlndXJlZCBhbmQgb3BlcmF0aW5nIGF0CisgICAgICogdGhlIG1heGltYWxseSByZXNvdXJjZS1jb25zdW1pbmcgZnJhbWVyYXRlIGFuZCBzdHJlYW0gc2l6ZSBzZXR0aW5ncworICAgICAqIGF2YWlsYWJsZSBpbiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBleHBvc2VkIGZvciB0aGF0IGRldmljZSB0aHJvdWdoCisgICAgICogdGhlIGNhbWVyYSBtZXRhZGF0YS4KKyAgICAgKgorICAgICAqIFRoZSBjYW1lcmEgc2VydmljZSBtYXkgc3RpbGwgYXR0ZW1wdCB0byBzaW11bHRhbmVvdXNseSBvcGVuIGNvbWJpbmF0aW9ucworICAgICAqIG9mIGNhbWVyYSBkZXZpY2VzIHdpdGggYSB0b3RhbCByZXNvdXJjZSBjb3N0ID4gMTAwLiBUaGlzIG1heSBzdWNjZWVkIG9yCisgICAgICogZmFpbC4gSWYgdGhpcyBzdWNjZWVkcywgY29tYmluYXRpb25zIG9mIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIG5vdAorICAgICAqIHN1cHBvcnRlZCBkdWUgdG8gcmVzb3VyY2UgY29uc3RyYWludHMgZnJvbSBoYXZpbmcgbXVsdGlwbGUgb3BlbiBkZXZpY2VzCisgICAgICogbXVzdCBmYWlsIGR1cmluZyB0aGUgY29uZmlndXJlIGNhbGxzLiBJZiB0aGUgdG90YWwgcmVzb3VyY2UgY29zdCBpcyA8PQorICAgICAqIDEwMCwgb3BlbiBhbmQgY29uZmlndXJlIG11c3QgbmV2ZXIgZmFpbCBmb3IgYW55IHN0cmVhbSBjb25maWd1cmF0aW9uCisgICAgICogc2V0dGluZ3Mgb3Igb3RoZXIgZGV2aWNlIGNhcGFiaWxpdGllcyB0aGF0IHdvdWxkIG5vcm1hbGx5IHN1Y2NlZWQgZm9yIGEKKyAgICAgKiBkZXZpY2Ugd2hlbiBpdCBpcyB0aGUgb25seSBvcGVuIGNhbWVyYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZpZWxkIG1heSBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIGJhY2tncm91bmQgYXBwbGljYXRpb25zIGFyZQorICAgICAqIGFsbG93ZWQgdG8gdXNlIHRoaXMgY2FtZXJhIGRldmljZSB3aGlsZSBvdGhlciBhcHBsaWNhdGlvbnMgYXJlIHVzaW5nCisgICAgICogb3RoZXIgY2FtZXJhIGRldmljZXMuIE5vdGU6IG11bHRpcGxlIGFwcGxpY2F0aW9ucyBtdXN0IG5ldmVyIGJlIGFsbG93ZWQKKyAgICAgKiBieSB0aGUgY2FtZXJhIHNlcnZpY2UgdG8gc2ltdWx0YW5lb3VzbHkgb3BlbiB0aGUgc2FtZSBjYW1lcmEgZGV2aWNlLgorICAgICAqCisgICAgICogRXhhbXBsZSB1c2UgY2FzZXM6CisgICAgICoKKyAgICAgKiBFeC4gMTogQ2FtZXJhIERldmljZSAwID0gQmFjayBDYW1lcmEKKyAgICAgKiAgICAgICAgQ2FtZXJhIERldmljZSAxID0gRnJvbnQgQ2FtZXJhCisgICAgICogICAtIFVzaW5nIGJvdGggY2FtZXJhIGRldmljZXMgY2F1c2VzIGEgbGFyZ2UgZnJhbWVyYXRlIHNsb3dkb3duIGR1ZSB0bworICAgICAqICAgICBsaW1pdGVkIElTUCBiYW5kd2lkdGguCisgICAgICoKKyAgICAgKiAgIENvbmZpZ3VyYXRpb246CisgICAgICoKKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMCAtIHJlc291cmNlQ29zdCA9IDUxCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0gZW1wdHkKKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMSAtIHJlc291cmNlQ29zdCA9IDUxCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0gZW1wdHkKKyAgICAgKgorICAgICAqICAgUmVzdWx0OgorICAgICAqCisgICAgICogICBTaW5jZSB0aGUgc3VtIG9mIHRoZSByZXNvdXJjZSBjb3N0cyBpcyA+IDEwMCwgaWYgYSBoaWdoZXItcHJpb3JpdHkKKyAgICAgKiAgIGFwcGxpY2F0aW9uIGhhcyBlaXRoZXIgZGV2aWNlIG9wZW4sIG5vIGxvd2VyLXByaW9yaXR5IGFwcGxpY2F0aW9ucyBtdXN0CisgICAgICogICBiZSBhbGxvd2VkIGJ5IHRoZSBjYW1lcmEgc2VydmljZSB0byBvcGVuIGVpdGhlciBkZXZpY2UuIElmIGEKKyAgICAgKiAgIGxvd2VyLXByaW9yaXR5IGFwcGxpY2F0aW9uIGlzIHVzaW5nIGEgZGV2aWNlIHRoYXQgYSBoaWdoZXItcHJpb3JpdHkKKyAgICAgKiAgIHN1YnNlcXVlbnRseSBhdHRlbXB0cyB0byBvcGVuLCB0aGUgbG93ZXItcHJpb3JpdHkgYXBwbGljYXRpb24gbXVzdCBiZQorICAgICAqICAgZm9yY2VkIHRvIGRpc2Nvbm5lY3QgdGhlIHRoZSBkZXZpY2UuCisgICAgICoKKyAgICAgKiAgIElmIHRoZSBoaWdoZXN0LXByaW9yaXR5IGFwcGxpY2F0aW9uIGNob29zZXMsIGl0IG1heSBzdGlsbCBhdHRlbXB0IHRvCisgICAgICogICBvcGVuIGJvdGggZGV2aWNlcyAoc2luY2UgdGhlc2UgZGV2aWNlcyBhcmUgbm90IGxpc3RlZCBhcyBjb25mbGljdGluZyBpbgorICAgICAqICAgdGhlIGNvbmZsaWN0aW5nX2RldmljZXMgZmllbGRzKSwgYnV0IHVzYWdlIG9mIHRoZXNlIGRldmljZXMgbWF5IGZhaWwgaW4KKyAgICAgKiAgIHRoZSBvcGVuIG9yIGNvbmZpZ3VyZSBjYWxscy4KKyAgICAgKgorICAgICAqIEV4LiAyOiBDYW1lcmEgRGV2aWNlIDAgPSBMZWZ0IEJhY2sgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMSA9IFJpZ2h0IEJhY2sgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMiA9IENvbWJpbmVkIHN0ZXJlbyBjYW1lcmEgdXNpbmcgYm90aCByaWdodCBhbmQgbGVmdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrIGNhbWVyYSBzZW5zb3JzIHVzZWQgYnkgZGV2aWNlcyAwLCBhbmQgMQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDMgPSBGcm9udCBDYW1lcmEKKyAgICAgKiAgIC0gRHVlIHRvIGRvIGhhcmR3YXJlIGNvbnN0cmFpbnRzLCB1cCB0byB0d28gY2FtZXJhcyBtYXkgYmUgb3BlbiBhdAorICAgICAqICAgICBvbmNlLiBUaGUgY29tYmluZWQgc3RlcmVvIGNhbWVyYSBtYXkgbmV2ZXIgYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lCisgICAgICogICAgIGFzIGVpdGhlciBvZiB0aGUgdHdvIGJhY2sgY2FtZXJhIGRldmljZXMgKGRldmljZSAwLCAxKSwgYW5kIHR5cGljYWxseQorICAgICAqICAgICByZXF1aXJlcyB0b28gbXVjaCBiYW5kd2lkdGggdG8gdXNlIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIGZyb250CisgICAgICogICAgIGNhbWVyYSAoZGV2aWNlIDMpLgorICAgICAqCisgICAgICogICBDb25maWd1cmF0aW9uOgorICAgICAqCisgICAgICogICBDYW1lcmEgRGV2aWNlIDAgLSByZXNvdXJjZUNvc3QgPSA1MAorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IHsgMiB9CisgICAgICogICBDYW1lcmEgRGV2aWNlIDEgLSByZXNvdXJjZUNvc3QgPSA1MAorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IHsgMiB9CisgICAgICogICBDYW1lcmEgRGV2aWNlIDIgLSByZXNvdXJjZUNvc3QgPSAxMDAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDAsIDEgfQorICAgICAqICAgQ2FtZXJhIERldmljZSAzIC0gcmVzb3VyY2VDb3N0ID0gNTAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSBlbXB0eQorICAgICAqCisgICAgICogICBSZXN1bHQ6CisgICAgICoKKyAgICAgKiAgIEJhc2VkIG9uIHRoZSBjb25mbGljdGluZ19kZXZpY2VzIGZpZWxkcywgdGhlIGNhbWVyYSBzZXJ2aWNlIGd1YXJhbnRlZXMKKyAgICAgKiAgIHRoYXQgdGhlIGZvbGxvd2luZyBzZXRzIG9mIG9wZW4gZGV2aWNlcyBtdXN0IG5ldmVyIGJlIGFsbG93ZWQ6IHsgMSwgMgorICAgICAqICAgfSwgeyAwLCAyIH0uCisgICAgICoKKyAgICAgKiAgIEJhc2VkIG9uIHRoZSByZXNvdXJjZUNvc3QgZmllbGRzLCBpZiBhIGhpZ2gtcHJpb3JpdHkgZm9yZWdyb3VuZAorICAgICAqICAgYXBwbGljYXRpb24gaXMgdXNpbmcgY2FtZXJhIGRldmljZSAwLCBhIGJhY2tncm91bmQgYXBwbGljYXRpb24gd291bGQgYmUKKyAgICAgKiAgIGFsbG93ZWQgdG8gb3BlbiBjYW1lcmEgZGV2aWNlIDEgb3IgMyAoYnV0IHdvdWxkIGJlIGZvcmNlZCB0byBkaXNjb25uZWN0CisgICAgICogICBpdCBhZ2FpbiBpZiB0aGUgZm9yZWdyb3VuZCBhcHBsaWNhdGlvbiBvcGVuZWQgYW5vdGhlciBkZXZpY2UpLgorICAgICAqCisgICAgICogICBUaGUgaGlnaGVzdCBwcmlvcml0eSBhcHBsaWNhdGlvbiBtYXkgc3RpbGwgYXR0ZW1wdCB0byBzaW11bHRhbmVvdXNseQorICAgICAqICAgb3BlbiBkZXZpY2VzIDAsIDIsIGFuZCAzLCBidXQgdGhlIEhBTCBtYXkgZmFpbCBpbiBvcGVuIG9yIGNvbmZpZ3VyZQorICAgICAqICAgY2FsbHMgZm9yIHRoaXMgY29tYmluYXRpb24uCisgICAgICoKKyAgICAgKiBFeC4gMzogQ2FtZXJhIERldmljZSAwID0gQmFjayBDYW1lcmEKKyAgICAgKiAgICAgICAgQ2FtZXJhIERldmljZSAxID0gRnJvbnQgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMiA9IExvdy1wb3dlciBGcm9udCBDYW1lcmEgdGhhdCB1c2VzIHRoZSBzYW1lIHNlbnNvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBkZXZpY2UgMSwgYnV0IG9ubHkgZXhwb3NlcyBpbWFnZSBzdHJlYW0KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x1dGlvbnMgdGhhdCBjYW4gYmUgdXNlZCBpbiBsb3ctcG93ZXIgbW9kZQorICAgICAqICAtIFVzaW5nIGJvdGggZnJvbnQgY2FtZXJhcyAoZGV2aWNlIDEsIDIpIGF0IHRoZSBzYW1lIHRpbWUgaXMgaW1wb3NzaWJsZQorICAgICAqICAgIGR1ZSBhIHNoYXJlZCBwaHlzaWNhbCBzZW5zb3IuIFVzaW5nIHRoZSBiYWNrIGFuZCAiaGlnaC1wb3dlciIgZnJvbnQKKyAgICAgKiAgICBjYW1lcmEgKGRldmljZSAxKSBtYXkgYmUgaW1wb3NzaWJsZSBmb3Igc29tZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgZHVlCisgICAgICogICAgdG8gaGFyZHdhcmUgbGltaXRhdGlvbnMsIGJ1dCB0aGUgImxvdy1wb3dlciIgZnJvbnQgY2FtZXJhIG9wdGlvbiBtYXkKKyAgICAgKiAgICBhbHdheXMgYmUgdXNlZCBhcyBpdCBoYXMgc3BlY2lhbCBkZWRpY2F0ZWQgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiAgIENvbmZpZ3VyYXRpb246CisgICAgICoKKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMCAtIHJlc291cmNlQ29zdCA9IDEwMAorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IGVtcHR5CisgICAgICogICBDYW1lcmEgRGV2aWNlIDEgLSByZXNvdXJjZUNvc3QgPSAxMDAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDIgfQorICAgICAqICAgQ2FtZXJhIERldmljZSAyIC0gcmVzb3VyY2VDb3N0ID0gMAorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IHsgMSB9CisgICAgICogICBSZXN1bHQ6CisgICAgICoKKyAgICAgKiAgIEJhc2VkIG9uIHRoZSBjb25mbGljdGluZ19kZXZpY2VzIGZpZWxkcywgdGhlIGNhbWVyYSBzZXJ2aWNlIGd1YXJhbnRlZXMKKyAgICAgKiAgIHRoYXQgdGhlIGZvbGxvd2luZyBzZXRzIG9mIG9wZW4gZGV2aWNlcyBtdXN0IG5ldmVyIGJlIGFsbG93ZWQ6CisgICAgICogICB7IDEsIDIgfS4KKyAgICAgKgorICAgICAqICAgQmFzZWQgb24gdGhlIHJlc291cmNlQ29zdCBmaWVsZHMsIG9ubHkgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgYXBwbGljYXRpb24KKyAgICAgKiAgIG1heSBhdHRlbXB0IHRvIG9wZW4gYm90aCBkZXZpY2UgMCBhbmQgMSBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhCisgICAgICogICBoaWdoZXItcHJpb3JpdHkgYXBwbGljYXRpb24gaXMgbm90IHVzaW5nIGRldmljZSAxIG9yIDIsIGEgbG93LXByaW9yaXR5CisgICAgICogICBiYWNrZ3JvdW5kIGFwcGxpY2F0aW9uIG1heSBvcGVuIGRldmljZSAyIChidXQgbXVzdCBiZSBmb3JjZWQgdG8KKyAgICAgKiAgIGRpc2Nvbm5lY3QgaXQgaWYgYSBoaWdoZXItcHJpb3JpdHkgYXBwbGljYXRpb24gc3Vic2VxdWVudGx5IG9wZW5zCisgICAgICogICBkZXZpY2UgMSBvciAyKS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCByZXNvdXJjZUNvc3Q7CisKKyAgICAvKioKKyAgICAgKiBBbiBhcnJheSBvZiBjYW1lcmEgZGV2aWNlIElEcyBpbmRpY2F0aW5nIG90aGVyIGRldmljZXMgdGhhdCBjYW5ub3QgYmUKKyAgICAgKiBzaW11bHRhbmVvdXNseSBvcGVuZWQgd2hpbGUgdGhpcyBjYW1lcmEgZGV2aWNlIGlzIGluIHVzZS4KKyAgICAgKgorICAgICAqIFRoaXMgZmllbGQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgY2FtZXJhIGRldmljZQorICAgICAqIGlzIGEgY29tcG9zaXRlIG9mIHNldmVyYWwgb3RoZXIgY2FtZXJhIGRldmljZXMsIG9yIG90aGVyd2lzZSBoYXMKKyAgICAgKiBoYXJkd2FyZSBkZXBlbmRlbmNpZXMgdGhhdCBwcm9oaWJpdCBzaW11bHRhbmVvdXMgdXNhZ2UuIElmIHRoZXJlIGFyZSBubworICAgICAqIGRlcGVuZGVuY2llcywgYW4gZW1wdHkgbGlzdCBtYXkgYmUgcmV0dXJuZWQgdG8gaW5kaWNhdGUgdGhpcy4KKyAgICAgKgorICAgICAqIFRoZSBjYW1lcmEgc2VydmljZSBtdXN0IG5ldmVyIHNpbXVsdGFuZW91c2x5IG9wZW4gYW55IG9mIHRoZSBkZXZpY2VzCisgICAgICogaW4gdGhpcyBsaXN0IHdoaWxlIHRoaXMgY2FtZXJhIGRldmljZSBpcyBvcGVuLgorICAgICAqCisgICAgICovCisgICAgdmVjPHN0cmluZz4gY29uZmxpY3RpbmdEZXZpY2VzOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi9SRUFETUUubWQgYi9jYW1lcmEvY29tbW9uL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTc3YWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi9SRUFETUUubWQKQEAgLTAsMCArMSwyMSBAQAorIyMgQ2FtZXJhIGNvbW1vbiBIQUwgZGVmaW5pdGlvbnMgIyMKKy0tLQorCisjIyBPdmVydmlldzogIyMKKworVGhlIGNhbWVyYS5jb21tb24gbmFtZXNhcGNlIGlzIHVzZWQgYnkgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTHMgZm9yIGNvbW1vbgorZW51bWVyYXRpb24gYW5kIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KKworVGhpcyBpbmNsdWRlcyBzdGFuZGFyZCBzdGF0dXMgY29kZXMgcmV0dXJuZWQgYnkgbW9zdCBjYW1lcmEgSEFMIG1ldGhvZHMuCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KKworIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyB0eXBlcy5oYWw6ICMjCisKKyMjIyBAMS4wOgorCitDb21tb24gZW51bSBhbmQgc3RydWN0IGRlZmluaXRpb25zIGZvciBhbGwgY2FtZXJhIEhBTCBpbnRlcmZhY2VzLiBEb2VzIG5vdAorZGVmaW5lIGFueSBpbnRlcmZhY2VzIG9mIGl0cyBvd24uCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9BbmRyb2lkLmJwIGIvY2FtZXJhL2RldmljZS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWY0MGM4Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDgxIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZS5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0NhbWVyYURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9DYW1lcmFEZXZpY2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9DYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUh3Q2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9Cbkh3Q2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9CcEh3Q2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9Cc0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9JSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQm5Id0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9CcEh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JzQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lId0NhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQm5Id0NhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnBId0NhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnNDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlLmhhbCBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YWE4Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlLmhhbApAQCAtMCwwICsxLDQxOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworaW1wb3J0IElDYW1lcmFEZXZpY2VDYWxsYmFjazsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrOworCisvKioKKyAqIENhbWVyYSBkZXZpY2UgSEFMLCBsZWdhY3kgdmVyc2lvbgorICoKKyAqIERFUFJFQ0FURUQuIE5ldyBkZXZpY2VzIGFyZSBzdHJvbmdseSByZWNvbW1lbmRlZCB0byB1c2UgQ2FtZXJhIEhBTCB2My4yIG9yCisgKiBuZXdlci4KKyAqCisgKiBTdXBwb3J0cyB0aGUgYW5kcm9pZC5oYXJkd2FyZS5DYW1lcmEgQVBJLCBhbmQgdGhlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMgorICogQVBJIGluIExFR0FDWSBtb2RlIG9ubHkuCisgKgorICogV2lsbCBiZSByZW1vdmVkIGluIHRoZSBBbmRyb2lkIFAgcmVsZWFzZS4KKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2UgeworCisgICAgLyoqCisgICAgICogR2V0IGNhbWVyYSBkZXZpY2UgcmVzb3VyY2UgY29zdCBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYXQgYW55IHRpbWUsIGluY2x1ZGluZyBiZWZvcmUgb3BlbigpCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIHN1Y2Nlc3MuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQW4gdW5leHBlY3RlZCBpbnRlcm5hbCBjYW1lcmEgSEFMIGVycm9yIG9jY3VycmVkLCBhbmQgdGhlCisgICAgICogICAgICAgICByZXNvdXJjZSBjb3N0IGlzIG5vdCBhdmFpbGFibGUuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKiBAcmV0dXJuIHJlc291cmNlQ29zdAorICAgICAqICAgICBUaGUgcmVzb3VyY2VzIHJlcXVpcmVkIHRvIG9wZW4gdGhpcyBjYW1lcmEgZGV2aWNlLCBvciB1bnNwZWNpZmllZAorICAgICAqICAgICB2YWx1ZXMgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKi8KKyAgICBnZXRSZXNvdXJjZUNvc3QoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIENhbWVyYVJlc291cmNlQ29zdCByZXNvdXJjZUNvc3QpOworCisgICAgLyoqCisgICAgICogR2V0IGJhc2ljIGNhbWVyYSBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYXQgYW55IHRpbWUsIGluY2x1ZGluZyBiZWZvcmUgb3BlbigpCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIHN1Y2Nlc3MuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQW4gdW5leHBlY3RlZCBpbnRlcm5hbCBjYW1lcmEgSEFMIGVycm9yIG9jY3VycmVkLCBhbmQgdGhlCisgICAgICogICAgICAgICBjYW1lcmEgaW5mb3JtYXRpb24gaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBhdmFpbGFibGUuIFRoaXMgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcKKyAgICAgKiAgICAgICAgIGluc3RhbmNlIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsCisgICAgICogICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuCisgICAgICogICAgICAgICBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqIEByZXR1cm4gaW5mbyBCYXNpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGNhbWVyYSBkZXZpY2UsIG9yIHVuc3BlY2lmaWVkCisgICAgICogICAgIHZhbHVlcyBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqLworICAgIGdldENhbWVyYUluZm8oKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIENhbWVyYUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBzZXRUb3JjaE1vZGU6CisgICAgICoKKyAgICAgKiBUdXJuIG9uIG9yIG9mZiB0aGUgdG9yY2ggbW9kZSBvZiB0aGUgZmxhc2ggdW5pdCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbgorICAgICAqIGNhbWVyYSBJRC4gSWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLCBIQUwgbXVzdCBub3RpZnkgdGhlIGZyYW1ld29yaworICAgICAqIHRvcmNoIHN0YXRlIGJ5IGludm9raW5nCisgICAgICogSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHdpdGggdGhlIG5ldyBzdGF0ZS4KKyAgICAgKgorICAgICAqIFRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhIGhpZ2hlciBwcmlvcml0eSBhY2Nlc3NpbmcgdGhlIGZsYXNoIHVuaXQuIFdoZW4KKyAgICAgKiB0aGVyZSBhcmUgYW55IHJlc291cmNlIGNvbmZsaWN0cywgc3VjaCBhcyB3aGVuIG9wZW4oKSBpcyBjYWxsZWQgdG8gZnVsbHkKKyAgICAgKiBhY3RpdmF0ZSBhIGNhbWVyYSBkZXZpY2UsIHRoZSBwcm92aWRlciBtdXN0IG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRocm91Z2gKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgdGhhdCB0aGUgdG9yY2ggbW9kZSBoYXMKKyAgICAgKiBiZWVuIHR1cm5lZCBvZmYgYW5kIHRoZSB0b3JjaCBtb2RlIHN0YXRlIGhhcyBiZWNvbWUKKyAgICAgKiBUT1JDSF9NT0RFX1NUQVRVU19OT1RfQVZBSUxBQkxFLiBXaGVuIHJlc291cmNlcyB0byB0dXJuIG9uIHRvcmNoIG1vZGUKKyAgICAgKiBiZWNvbWUgYXZhaWxhYmxlIGFnYWluLCB0aGUgcHJvdmlkZXIgbXVzdCBub3RpZnkgdGhlIGZyYW1ld29yayB0aHJvdWdoCisgICAgICogSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHRoYXQgdGhlIHRvcmNoIG1vZGUKKyAgICAgKiBzdGF0ZSBoYXMgYmVjb21lIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYgZm9yIHNldF90b3JjaF9tb2RlKCkgdG8KKyAgICAgKiBiZSBjYWxsZWQuCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBmcmFtZXdvcmsgY2FsbHMgc2V0VG9yY2hNb2RlKCkgdG8gdHVybiBvbiB0aGUgdG9yY2ggbW9kZSBvZiBhCisgICAgICogZmxhc2ggdW5pdCwgaWYgSEFMIGNhbm5vdCBrZWVwIG11bHRpcGxlIHRvcmNoIG1vZGVzIG9uIHNpbXVsdGFuZW91c2x5LAorICAgICAqIEhBTCBtdXN0IHR1cm4gb2ZmIHRoZSB0b3JjaCBtb2RlIHRoYXQgd2FzIHR1cm5lZCBvbiBieQorICAgICAqIGEgcHJldmlvdXMgc2V0VG9yY2hNb2RlKCkgY2FsbCBhbmQgbm90aWZ5IHRoZSBmcmFtZXdvcmsgdGhhdCB0aGUgdG9yY2gKKyAgICAgKiBtb2RlIHN0YXRlIG9mIHRoYXQgZmxhc2ggdW5pdCBoYXMgYmVjb21lIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdG9yY2hNb2RlIFRoZSBuZXcgbW9kZSB0byBzZXQgdGhlIGRldmljZSBmbGFzaCB1bml0IHRvLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgY2hhbmdlIHRvIHRoZSB0b3JjaCBzdGF0ZS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUaGUgZmxhc2ggdW5pdCBjYW5ub3QgYmUgb3BlcmF0ZWQgZHVlIHRvIGFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwKKyAgICAgKiAgICAgICAgIGVycm9yLgorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhlIGNhbWVyYSBJRCBpcyB1bmtub3duLgorICAgICAqICAgICBDQU1FUkFfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIG9wZW5lZCwgc28gdGhlIHRvcmNoIGNhbm5vdCBiZQorICAgICAqICAgICAgICAgY29udHJvbGxlZCB1bnRpbCBpdCBpcyBjbG9zZWQuCisgICAgICogICAgIE1BWF9DQU1FUkFTX0lOX1VTRToKKyAgICAgKiAgICAgICAgIER1ZSB0byBvdGhlciBjYW1lcmEgZGV2aWNlcyBiZWluZyBvcGVuLCBvciBkdWUgdG8gb3RoZXIKKyAgICAgKiAgICAgICAgIHJlc291cmNlIGNvbnN0cmFpbnRzLCB0aGUgdG9yY2ggY2Fubm90IGJlIGNvbnRyb2xsZWQgY3VycmVudGx5LgorICAgICAqICAgICBNRVRIT0RfTk9UX1NVUFBPUlRFRDoKKyAgICAgKiAgICAgICAgIFRoaXMgcHJvdmlkZXIgZG9lcyBub3Qgc3VwcG9ydCBkaXJlY3Qgb3BlcmF0aW9uIG9mIGZsYXNobGlnaHQKKyAgICAgKiAgICAgICAgIHRvcmNoIG1vZGUuIFRoZSBmcmFtZXdvcmsgbXVzdCBvcGVuIHRoZSBjYW1lcmEgZGV2aWNlIGFuZCB0dXJuCisgICAgICogICAgICAgICB0aGUgdG9yY2ggb24gdGhyb3VnaCB0aGUgZGV2aWNlIGludGVyZmFjZS4KKyAgICAgKiAgICAgT1BFUkFUSU9OX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGlzIGNhbWVyYSBkZXZpY2UgZG9lcyBub3QgaGF2ZSBhIGZsYXNoIHVuaXQuIFRoaXMgbXVzdAorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQgaWYgYW5kIG9ubHkgaWYgcGFyYW1ldGVyIGtleSBmbGFzaC1tb2RlLXZhbHVlcyBpcyBub3QgcHJlc2VudC4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBhdmFpbGFibGUuIFRoaXMgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcKKyAgICAgKiAgICAgICAgIGluc3RhbmNlIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsCisgICAgICogICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuCisgICAgICogICAgICAgICBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqCisgICAgICovCisgICAgc2V0VG9yY2hNb2RlKFRvcmNoTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRHVtcCBzdGF0ZSBvZiB0aGUgY2FtZXJhIGhhcmR3YXJlLgorICAgICAqCisgICAgICogVGhpcyBtdXN0IGJlIGNhbGxhYmxlIGF0IGFueSB0aW1lLCB3aGV0aGVyIHRoZSBkZXZpY2UgaXMgb3BlbiBvciBub3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmQgQSBuYXRpdmUgaGFuZGxlIHdpdGggb25lIHZhbGlkIGZpbGUgZGVzY3JpcHRvci4gVGhlIGRlc2NyaXB0b3IKKyAgICAgKiAgICAgbXVzdCBiZSBhYmxlIHRvIGJlIHVzZWQgd2l0aCBkcHJpbnRmKCkgb3IgZXF1aXZhbGVudCB0byBkdW1wIHRoZQorICAgICAqICAgICBzdGF0ZSBvZiB0aGlzIGNhbWVyYSBkZXZpY2UgaW50byB0aGUgY2FtZXJhIHNlcnZpY2UgZHVtcHN5cyBvdXRwdXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIGR1bXBTdGF0ZShoYW5kbGUgZmQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBPcGVuIHRoZSBjYW1lcmEgZGV2aWNlIGZvciBhY3RpdmUgdXNlLgorICAgICAqCisgICAgICogQWxsIG1ldGhvZHMgYmVzaWRlcyBnZXRSZXNvdXJjZUNvc3QoKSwgZ2V0Q2FtZXJhSW5mbygpLCBzZXRUb3JjaE1vZGUoKSwKKyAgICAgKiBhbmQgZHVtcCgpIG11c3Qgbm90IGJlIGNhbGxlZCB1bmxlc3Mgb3BlbigpIGhhcyBiZWVuIGNhbGxlZCBzdWNjZXNzZnVsbHksCisgICAgICogYW5kIGNsb3NlKCkgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSW50ZXJmYWNlIHRvIGludm9rZSBieSB0aGUgSEFMIGZvciBkZXZpY2UgY2FsbGJhY2tzLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIG9wZW4gb2YgdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGJlIG9wZW5lZCBkdWUgdG8gYW4gaW50ZXJuYWwKKyAgICAgKiAgICAgICAgIGVycm9yLgorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhlIGNhbGxiYWNrIGhhbmRsZSBpcyBpbnZhbGlkIChmb3IgZXhhbXBsZSwgaXQgaXMgbnVsbCkuCisgICAgICogICAgIENBTUVSQV9JTl9VU0U6CisgICAgICogICAgICAgICBUaGlzIGNhbWVyYSBkZXZpY2UgaXMgYWxyZWFkeSBvcGVuLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBUaGUgbWF4aW1hbCBudW1iZXIgb2YgY2FtZXJhIGRldmljZXMgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgIG9wZW5lZCBjb25jdXJyZW50bHkgd2VyZSBvcGVuZWQgYWxyZWFkeS4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIFRoaXMgZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubworICAgICAqICAgICAgICAgbG9uZ2VyIGF2YWlsYWJsZS4gVGhpcyBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcgaW5zdGFuY2UKKyAgICAgKiAgICAgICAgIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsIHN1YnNlcXVlbnQKKyAgICAgKiAgICAgICAgIGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICovCisgICAgb3BlbihJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKworICAgIC8qKioqKgorICAgICAqIEFsbCBtZXRob2RzIGJlbG93IHRoaXMgcG9pbnQgbXVzdCBvbmx5IGJlIGNhbGxlZCBiZXR3ZWVuIGEgc3VjY2Vzc2Z1bAorICAgICAqIG9wZW4oKSBjYWxsIGFuZCBhIGNsb3NlKCkgY2FsbC4KKyAgICAgKi8KKworICAgIC8qKiBTZXQgdGhlIGNhbGxiYWNrIGludGVyZmFjZSB0aHJvdWdoIHdoaWNoIHByZXZpZXcgZnJhbWVzIGFyZSBzZW50ICovCisgICAgc2V0UHJldmlld1dpbmRvdyhJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrIHdpbmRvdykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBFbmFibGUgYSBtZXNzYWdlLCBvciBzZXQgb2YgbWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUgYml0ZmllbGQgb2YgbWVzc2FnZXMgdG8gZW5hYmxlLgorICAgICAqLworICAgIGVuYWJsZU1zZ1R5cGUoRnJhbWVDYWxsYmFja0ZsYWdzIG1zZ1R5cGUpOworCisgICAgLyoqCisgICAgICogRGlzYWJsZSBhIG1lc3NhZ2UsIG9yIGEgc2V0IG9mIG1lc3NhZ2VzLgorICAgICAqCisgICAgICogT25jZSByZWNlaXZlZCBhIGNhbGwgdG8gZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSksIGNhbWVyYQorICAgICAqIEhBTCBtdXN0IG5vdCByZWx5IG9uIGl0cyBjbGllbnQgdG8gY2FsbCByZWxlYXNlUmVjb3JkaW5nRnJhbWUoKSB0bworICAgICAqIHJlbGVhc2UgdmlkZW8gcmVjb3JkaW5nIGZyYW1lcyBzZW50IG91dCBieSB0aGUgY2FtZXJhbCBIQUwgYmVmb3JlIGFuZAorICAgICAqIGFmdGVyIHRoZSBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKSBjYWxsLiBDYW1lcmEgSEFMCisgICAgICogY2xpZW50cyBtdXN0IG5vdCBtb2RpZnkvYWNjZXNzIGFueSB2aWRlbyByZWNvcmRpbmcgZnJhbWUgYWZ0ZXIgY2FsbGluZworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLgorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGJpdGZpZWxkIG9mIG1lc3NhZ2VzIHRvIGRpc2FibGUuCisgICAgICovCisgICAgZGlzYWJsZU1zZ1R5cGUoRnJhbWVDYWxsYmFja0ZsYWdzIG1zZ1R5cGUpOworCisgICAgLyoqCisgICAgICogUXVlcnkgd2hldGhlciBhIG1lc3NhZ2UsIG9yIGEgc2V0IG9mIG1lc3NhZ2VzLCBpcyBlbmFibGVkLiBOb3RlIHRoYXQKKyAgICAgKiB0aGlzIGlzIG9wZXJhdGVzIGFzIGFuIEFORCwgaWYgYW55IG9mIHRoZSBtZXNzYWdlcyBxdWVyaWVkIGFyZSBvZmYsIHRoaXMKKyAgICAgKiBtdXN0IHJldHVybiBmYWxzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSBiaXRmaWVsZCBvZiBtZXNzYWdlcyB0byBxdWVyeS4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgV2hldGhlciBhbGwgdGhlIHNwZWNpZmllZCBmbGFncyBhcmUgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBtc2dUeXBlRW5hYmxlZChGcmFtZUNhbGxiYWNrRmxhZ3MgbXNnVHlwZSkgZ2VuZXJhdGVzIChib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU3RhcnQgcHJldmlldyBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBzdGFydFByZXZpZXcoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU3RvcCBhIHByZXZpb3VzbHkgc3RhcnRlZCBwcmV2aWV3LgorICAgICAqLworICAgIHN0b3BQcmV2aWV3KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgcHJldmlldyBpcyBlbmFibGVkLgorICAgICAqCisgICAgICogQHJldHVybiBlbmFibGVkIFdoZXRoZXIgcHJldmlldyBpcyBjdXJyZW50bHkgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBwcmV2aWV3RW5hYmxlZCgpIGdlbmVyYXRlcyAoYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgdGhlIGNhbWVyYSBIQUwgdG8gc3RvcmUgbWV0YSBkYXRhIG9yIHJlYWwgWVVWIGRhdGEgaW4gdGhlIHZpZGVvCisgICAgICogYnVmZmVycyBzZW50IG91dCB2aWEgQ0FNRVJBX01TR19WSURFT19GUkFNRSBmb3IgYSByZWNvcmRpbmcgc2Vzc2lvbi4gSWYKKyAgICAgKiBpdCBpcyBub3QgY2FsbGVkLCB0aGUgZGVmYXVsdCBjYW1lcmEgSEFMIGJlaGF2aW9yIGlzIHRvIHN0b3JlIHJlYWwgWVVWCisgICAgICogZGF0YSBpbiB0aGUgdmlkZW8gYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBzdGFydFJlY29yZGluZygpIGluIG9yZGVyIHRvIGJlCisgICAgICogZWZmZWN0aXZlLgorICAgICAqCisgICAgICogSWYgbWV0YSBkYXRhIGlzIHN0b3JlZCBpbiB0aGUgdmlkZW8gYnVmZmVycywgaXQgaXMgdXAgdG8gdGhlIHJlY2VpdmVyIG9mCisgICAgICogdGhlIHZpZGVvIGJ1ZmZlcnMgdG8gaW50ZXJwcmV0IHRoZSBjb250ZW50cyBhbmQgdG8gZmluZCB0aGUgYWN0dWFsIGZyYW1lCisgICAgICogZGF0YSB3aXRoIHRoZSBoZWxwIG9mIHRoZSBtZXRhIGRhdGEgaW4gdGhlIGJ1ZmZlci4gSG93IHRoaXMgaXMgZG9uZSBpcworICAgICAqIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogU29tZSBjYW1lcmEgSEFMcyBtYXkgbm90IHN1cHBvcnQgc3RvcmluZyBtZXRhIGRhdGEgaW4gdGhlIHZpZGVvIGJ1ZmZlcnMsCisgICAgICogYnV0IGFsbCBjYW1lcmEgSEFMcyBtdXN0IHN1cHBvcnQgc3RvcmluZyByZWFsIFlVViBkYXRhIGluIHRoZSB2aWRlbworICAgICAqIGJ1ZmZlcnMuIElmIHRoZSBjYW1lcmEgSEFMIGRvZXMgbm90IHN1cHBvcnQgc3RvcmluZyB0aGUgbWV0YSBkYXRhIGluIHRoZQorICAgICAqIHZpZGVvIGJ1ZmZlcnMgd2hlbiBpdCBpcyByZXF1ZXN0ZWQgdG8gZG8gZG8sIElOVkFMSURfT1BFUkFUSU9OIG11c3QgYmUKKyAgICAgKiByZXR1cm5lZC4gSXQgaXMgdmVyeSB1c2VmdWwgZm9yIHRoZSBjYW1lcmEgSEFMIHRvIHBhc3MgbWV0YSBkYXRhIHJhdGhlcgorICAgICAqIHRoYW4gdGhlIGFjdHVhbCBmcmFtZSBkYXRhIGRpcmVjdGx5IHRvIHRoZSB2aWRlbyBlbmNvZGVyLCBzaW5jZSB0aGUKKyAgICAgKiBhbW91bnQgb2YgdGhlIHVuY29tcHJlc3NlZCBmcmFtZSBkYXRhIGNhbiBiZSB2ZXJ5IGxhcmdlIGlmIHZpZGVvIHNpemUgaXMKKyAgICAgKiBsYXJnZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGUgU2V0IHRvIHRydWUgdG8gaW5zdHJ1Y3QgdGhlIGNhbWVyYSBIQUwgdG8gc3RvcmUgbWV0YSBkYXRhCisgICAgICogICAgIGluIHRoZSB2aWRlbyBidWZmZXJzOyBmYWxzZSB0byBpbnN0cnVjdCB0aGUgY2FtZXJhIEhBTCB0byBzdG9yZSByZWFsCisgICAgICogICAgIFlVViBkYXRhIGluIHRoZSB2aWRlbyBidWZmZXJzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgT0sgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdG9yZU1ldGFEYXRhSW5CdWZmZXJzKGJvb2wgZW5hYmxlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU3RhcnQgcmVjb3JkIG1vZGUuCisgICAgICoKKyAgICAgKiBXaGVuIGEgcmVjb3JkIGltYWdlIGlzIGF2YWlsYWJsZSwgYSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FIG1lc3NhZ2UgaXMKKyAgICAgKiBzZW50IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZnJhbWUuIEV2ZXJ5IHJlY29yZCBmcmFtZSBtdXN0IGJlIHJlbGVhc2VkIGJ5CisgICAgICogYSBjYW1lcmEgSEFMIGNsaWVudCB2aWEgcmVsZWFzZVJlY29yZGluZ0ZyYW1lKCkgYmVmb3JlIHRoZSBjbGllbnQgY2FsbHMKKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKS4gQWZ0ZXIgdGhlIGNsaWVudCBjYWxscworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBpdCBpcyB0aGUgY2FtZXJhIEhBTCdzCisgICAgICogcmVzcG9uc2liaWxpdHkgdG8gbWFuYWdlIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLAorICAgICAqIGFuZCB0aGUgY2xpZW50IG11c3Qgbm90IG1vZGlmeS9hY2Nlc3MgYW55IHZpZGVvIHJlY29yZGluZyBmcmFtZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24uCisgICAgICovCisgICAgc3RhcnRSZWNvcmRpbmcoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU3RvcCBhIHByZXZpb3VzbHkgc3RhcnRlZCByZWNvcmRpbmcuCisgICAgICovCisgICAgc3RvcFJlY29yZGluZygpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHJlY29yZGluZyBpcyBlbmFibGVkLgorICAgICAqCisgICAgICogQHJldHVybiBlbmFibGVkIFRydWUgaWYgcmVjb3JkaW5nIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICovCisgICAgcmVjb3JkaW5nRW5hYmxlZCgpIGdlbmVyYXRlcyAoYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYSByZWNvcmQgZnJhbWUgcHJldmlvdXNseSByZXR1cm5lZCBieSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FIGluCisgICAgICogZGF0YUNhbGxiYWNrVGltZXN0YW1wLgorICAgICAqCisgICAgICogSXQgaXMgY2FtZXJhIEhBTCBjbGllbnQncyByZXNwb25zaWJpbGl0eSB0byByZWxlYXNlIHZpZGVvIHJlY29yZGluZworICAgICAqIGZyYW1lcyBzZW50IG91dCBieSB0aGUgY2FtZXJhIEhBTCBiZWZvcmUgdGhlIGNhbWVyYSBIQUwgcmVjZWl2ZXMgYSBjYWxsCisgICAgICogdG8gZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSkuIEFmdGVyIGl0IHJlY2VpdmVzIHRoZSBjYWxsIHRvCisgICAgICogZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSksIGl0IGlzIHRoZSBjYW1lcmEgSEFMJ3MKKyAgICAgKiByZXNwb25zaWJpbGl0eSB0byBtYW5hZ2UgdGhlIGxpZmUtY3ljbGUgb2YgdGhlIHZpZGVvIHJlY29yZGluZyBmcmFtZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVtSWQgVGhlIG1lbW9yeSBidWZmZXIgdG8gcmVsZWFzZSBhIHJlY29yZGluZyBmcmFtZSBmcm9tLgorICAgICAqIEBwYXJhbSBidWZmZXJJbmRleCBUaGUgc3BlY2lmaWMgYnVmZmVyIGluZGV4IHRvIHJldHVybiB0byB0aGUgSEFMLgorICAgICAqLworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZShNZW1vcnlJZCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgpOworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhIHJlY29yZCBmcmFtZSBwcmV2aW91c2x5IHJldHVybmVkIGJ5IENBTUVSQV9NU0dfVklERU9fRlJBTUUgaW4KKyAgICAgKiBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcC4KKyAgICAgKgorICAgICAqIEl0IGlzIGNhbWVyYSBIQUwgY2xpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSB2aWRlbyByZWNvcmRpbmcKKyAgICAgKiBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYSBIQUwgYmVmb3JlIHRoZSBjYW1lcmEgSEFMIHJlY2VpdmVzIGEgY2FsbAorICAgICAqIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLiBBZnRlciBpdCByZWNlaXZlcyB0aGUgY2FsbCB0bworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBpdCBpcyB0aGUgY2FtZXJhIEhBTCdzCisgICAgICogcmVzcG9uc2liaWxpdHkgdG8gbWFuYWdlIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHBhcmFtIG1lbUlkIFRoZSBtZW1vcnkgYnVmZmVyIHRvIHJlbGVhc2UgYSByZWNvcmRpbmcgZnJhbWUgZnJvbS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggVGhlIHNwZWNpZmljIGJ1ZmZlciBpbmRleCB0byByZXR1cm4gdG8gdGhlIEhBTC4KKyAgICAgKiBAcGFyYW0gZnJhbWUgVGhlIGhhbmRsZSBmb3IgYSByZWxlYXNlZCB2aWRlbyBmcmFtZQorICAgICAqLworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZShNZW1vcnlJZCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgsIGhhbmRsZSBmcmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgYmF0Y2ggb2YgcmVjb3JkIGZyYW1lcyBwcmV2aW91c2x5IHJldHVybmVkIGJ5IENBTUVSQV9NU0dfVklERU9fRlJBTUUKKyAgICAgKiBpbiBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoLgorICAgICAqCisgICAgICogSXQgaXMgY2FtZXJhIEhBTCBjbGllbnQncyByZXNwb25zaWJpbGl0eSB0byByZWxlYXNlIHZpZGVvIHJlY29yZGluZworICAgICAqIGZyYW1lcyBzZW50IG91dCBieSB0aGUgY2FtZXJhIEhBTCBiZWZvcmUgdGhlIGNhbWVyYSBIQUwgcmVjZWl2ZXMgYSBjYWxsCisgICAgICogdG8gZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSkuIEFmdGVyIGl0IHJlY2VpdmVzIHRoZSBjYWxsIHRvCisgICAgICogZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSksIGl0IGlzIHRoZSBjYW1lcmEgSEFMJ3MKKyAgICAgKiByZXNwb25zaWJpbGl0eSB0byBtYW5hZ2UgdGhlIGxpZmUtY3ljbGUgb2YgdGhlIHZpZGVvIHJlY29yZGluZyBmcmFtZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYmF0Y2ggQSBiYXRjaCBvZiByZWNvcmRpbmcgZnJhbWVzIHRvIGJlIHJlbGVhc2VkIGJ5IGNhbWVyYSBIQUwuCisgICAgICovCisgICAgcmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlQmF0Y2godmVjPFZpZGVvRnJhbWVNZXNzYWdlPiBiYXRjaCk7CisKKyAgICAvKioKKyAgICAgKiBTdGFydCBhdXRvIGZvY3VzLgorICAgICAqCisgICAgICogVGhlIG5vdGlmaWNhdGlvbiBjYWxsYmFjayByb3V0aW5lIGlzIGNhbGxlZCB3aXRoCisgICAgICogQ0FNRVJBX01TR19GT0NVUyBvbmNlIHdoZW4gZm9jdXNpbmcgaXMgY29tcGxldGUuIGF1dG9Gb2N1cygpIGNhbiBiZQorICAgICAqIGNhbGxlZCBhZ2FpbiBhZnRlciB0aGF0IGlmIGFub3RoZXIgYXV0byBmb2N1cyBpcyBuZWVkZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIGF1dG9Gb2N1cygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDYW5jZWxzIGF1dG8tZm9jdXMgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBJZiB0aGUgYXV0by1mb2N1cyBpcyBzdGlsbCBpbiBwcm9ncmVzcywgdGhpcyBmdW5jdGlvbiBtdXN0IGNhbmNlbAorICAgICAqIGl0LiBXaGV0aGVyIHRoZSBhdXRvLWZvY3VzIGlzIGluIHByb2dyZXNzIG9yIG5vdCwgdGhpcyBmdW5jdGlvbiBtdXN0CisgICAgICogcmV0dXJuIHRoZSBmb2N1cyBwb3NpdGlvbiB0byB0aGUgZGVmYXVsdC4gSWYgdGhlIGNhbWVyYSBkb2VzIG5vdCBzdXBwb3J0CisgICAgICogYXV0by1mb2N1cywgdGhpcyBpcyBhIG5vLW9wLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBjYW5jZWxBdXRvRm9jdXMoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGFrZSBhIHBpY3R1cmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHRha2VQaWN0dXJlKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENhbmNlbCBhIHBpY3R1cmUgdGhhdCB3YXMgc3RhcnRlZCB3aXRoIHRha2VQaWN0dXJlLiBDYWxsaW5nIHRoaXMgbWV0aG9kCisgICAgICogd2hlbiBubyBwaWN0dXJlIGlzIGJlaW5nIHRha2VuIGlzIGEgbm8tb3AuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIGNhbmNlbFBpY3R1cmUoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYW1lcmEgcGFyYW1ldGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbXMgVGhlIHBhcmFtZXRlciBzdHJpbmcsIGNvbnNpc3Rpbmcgb2YKKyAgICAgKiAgICAnPGtleTE+PTx2YWx1ZTE+OyAuLi47PGtleU4+PTx2YWx1ZU4+Jy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uOgorICAgICAqICAgICBPSzogUGFyYW1ldGVyIHVwZGF0ZSB3YXMgc3VjY2Vzc2Z1bAorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOiBBdCBsZWFzdCBvbmUgcGFyYW1ldGVyIHdhcyBpbnZhbGlkIG9yIG5vdCBzdXBwb3J0ZWQKKyAgICAgKgorICAgICAqLworICAgIHNldFBhcmFtZXRlcnMoc3RyaW5nIHBhcmFtcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBjYW1lcmEgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBnZXRQYXJhbWV0ZXJzKCkgZ2VuZXJhdGVzIChzdHJpbmcgcGFybXMpOworCisgICAgLyoqCisgICAgICogU2VuZCBjb21tYW5kIHRvIGNhbWVyYSBkcml2ZXIuCisgICAgICogVGhlIG1lYW5pbmcgb2YgdGhlIGFyZ3VtZW50cyBpcyBkZWZpbmVkIGJ5IHRoZSB2YWx1ZSBvZiBjbWQsIGRvY3VtZW50ZWQKKyAgICAgKiBpbiB0aGUgQ29tbWFuZFR5cGUgZGVmaW5pdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gaW52b2tlLgorICAgICAqIEBwYXJhbSBhcmcxIFRoZSBmaXJzdCBhcmd1bWVudCBmb3IgdGhlIGNvbW1hbmQsIGlmIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gYXJnMiBUaGUgc2Vjb25kIGFyZ3VtZW50IGZvciB0aGUgY29tbWFuZCwgaWYgbmVlZGVkLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBzZW5kQ29tbWFuZChDb21tYW5kVHlwZSBjbWQsIGludDMyX3QgYXJnMSwgaW50MzJfdCBhcmcyKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgdGhlIGhhcmR3YXJlIHJlc291cmNlcyBvd25lZCBieSB0aGlzIG9iamVjdCwgc2h1dHRpbmcgZG93biB0aGUKKyAgICAgKiBjYW1lcmEgZGV2aWNlLgorICAgICAqLworICAgIGNsb3NlKCk7CisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaGFsIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTJlNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDsKKworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2VDYWxsYmFjayB7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGNhbWVyYSBzZXJ2aWNlIG9mIGEgcGFydGljdWxhciBldmVudCBvY2N1cnJpbmcKKyAgICAgKiBUaGUgbWVhbmluZyBvZiBlYWNoIHBhcmFtZXRlciBpcyBkZWZpbmVkIGJ5IHRoZSB2YWx1ZSBvZiBtc2dUeXBlLCBhbmQKKyAgICAgKiBkb2N1bWVudGVkIGluIHRoZSBkZWZpbml0aW9uIG9mIE5vdGlmeUNhbGxiYWNrTXNnLgorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIHR5cGUgb2YgdGhlIGV2ZW50LgorICAgICAqIEBwYXJhbSBleHQxIFRoZSBmaXJzdCBwYXJhbWV0ZXIgZm9yIHRoZSBldmVudCwgaWYgbmVlZGVkLgorICAgICAqIEBwYXJhbSBleHQyIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGZvciB0aGUgZXZlbnQsIGlmIG5lZWRlZC4KKyAgICAgKi8KKyAgICBub3RpZnlDYWxsYmFjayhOb3RpZnlDYWxsYmFja01zZyBtc2dUeXBlLCBpbnQzMl90IGV4dDEsIGludDMyX3QgZXh0Mik7CisKKyAgICAvKioKKyAgICAgKiBEZWZpbmUgYSBtZW1vcnkgYnVmZmVyIGZyb20gdGhlIHByb3ZpZGVkIGhhbmRsZSBhbmQgc2l6ZSwgYW5kIHJldHVybiBhCisgICAgICogdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBIQUwgdG8gdXNlIHRvIHJlZmVyZW5jZSBpdCB3aXRoLgorICAgICAqCisgICAgICogQHBhcmFtIGRlc2NyaXB0b3IgQSBuYXRpdmUgaGFuZGxlIHRoYXQgbXVzdCBoYXZlIGV4YWN0bHkgb25lIGZpbGUKKyAgICAgKiAgICAgZGVzY3JpcHRvciBpbiBpdDsgdGhlIGZpbGUgZGVzY3JpcHRvciBtdXN0IGJlIG1lbW9yeSBtYXBwYWJsZSB0bworICAgICAqICAgICBidWZmZXJTaXplICogYnVmZmVyQ291bnQgYnl0ZXMuCisgICAgICogQHBhcmFtIGJ1ZmZlclNpemUgVGhlIG51bWJlciBvZiBieXRlcyBhIHNpbmdsZSBidWZmZXIgY29uc2lzdHMgb2YuCisgICAgICogQHBhcmFtIGJ1ZmZlckNvdW50IFRoZSBudW1iZXIgb2YgY29udGlndW91cyBidWZmZXJzIHRoYXQgdGhlIGRlc2NyaXB0b3IKKyAgICAgKiAgICAgY29udGFpbnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1lbUlkIEEgcG9zaXRpdmUgaW50ZWdlciBpZGVudGlmaWVyIGZvciB0aGlzIG1lbW9yeSBidWZmZXIsIGZvcgorICAgICAqICAgICB1c2Ugd2l0aCBkYXRhIGNhbGxiYWNrcyBhbmQgdW5yZWdpc3RlcmluZyBtZW1vcnkuIDAgbXVzdCBiZSByZXR1cm5lZAorICAgICAqICAgICBpbiBjYXNlIG9mIGVycm9yLCBzdWNoIGFzIGlmIHRoZSBkZXNjcmlwdG9yIGRvZXMgbm90IGNvbnRhaW4gZXhhY3RseQorICAgICAqICAgICBvbmUgRkQuCisgICAgICovCisgICAgcmVnaXN0ZXJNZW1vcnkoaGFuZGxlIGRlc2NyaXB0b3IsIHVpbnQzMl90IGJ1ZmZlclNpemUsIHVpbnQzMl90IGJ1ZmZlckNvdW50KQorICAgICAgICAgICAgZ2VuZXJhdGVzIChNZW1vcnlJZCBtZW1JZCk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIG1lbW9yeSBidWZmZXIKKyAgICAgKi8KKyAgICB1bnJlZ2lzdGVyTWVtb3J5KE1lbW9yeUlkIG1lbUlkKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBidWZmZXIgb2YgaW1hZ2UgZGF0YSB0byB0aGUgY2FtZXJhIHNlcnZpY2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSBraW5kIG9mIGltYWdlIGJ1ZmZlciBkYXRhIHRoaXMgY2FsbCByZXByZXNlbnRzLgorICAgICAqIEBwYXJhbSBkYXRhIEEgbWVtb3J5IGhhbmRsZSB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGJ1ZmZlckluZGV4IFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyCisgICAgICogICAgIHN0YXJ0cy4KKyAgICAgKgorICAgICAqLworICAgIGRhdGFDYWxsYmFjayhEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwgTWVtb3J5SWQgZGF0YSwgdWludDMyX3QgYnVmZmVySW5kZXgsCisgICAgICAgICAgICBDYW1lcmFGcmFtZU1ldGFkYXRhIG1ldGFkYXRhKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBidWZmZXIgb2YgaW1hZ2UgZGF0YSB0byB0aGUgY2FtZXJhIHNlcnZpY2UsIHdpdGggYSB0aW1lc3RhbXAKKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSBraW5kIG9mIGltYWdlIGJ1ZmZlciBkYXRhIHRoaXMgY2FsbCByZXByZXNlbnRzLgorICAgICAqIEBwYXJhbSBkYXRhIEEgbWVtb3J5IGhhbmRsZSB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGJ1ZmZlckluZGV4IFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyCisgICAgICogICAgIHN0YXJ0cy4KKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lIHRoaXMgYnVmZmVyIHdhcyBjYXB0dXJlZCBieSB0aGUgY2FtZXJhLCBpbgorICAgICAqICAgICBuYW5vc2Vjb25kcy4KKyAgICAgKgorICAgICAqLworICAgIGRhdGFDYWxsYmFja1RpbWVzdGFtcChEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwgTWVtb3J5SWQgZGF0YSwgdWludDMyX3QgYnVmZmVySW5kZXgsCisgICAgICAgICAgICBpbnQ2NF90IHRpbWVzdGFtcCk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgYnVmZmVyIG9mIGltYWdlIGRhdGEgdG8gdGhlIGNhbWVyYSBzZXJ2aWNlLCB3aXRoIGEgdGltZXN0YW1wCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUga2luZCBvZiBpbWFnZSBidWZmZXIgZGF0YSB0aGlzIGNhbGwgcmVwcmVzZW50cy4KKyAgICAgKiBAcGFyYW0gaGFuZGxlIFRoZSBoYW5kbGUgb2YgaW1hZ2UgYnVmZmVyIGRhdGEgdGhpcyBjYWxsIHJlcHJlc2VudHMuCisgICAgICogQHBhcmFtIGRhdGEgQSBtZW1vcnkgaGFuZGxlIHRvIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgZGF0YS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggVGhlIG9mZnNldCBpbnRvIHRoZSBtZW1vcnkgaGFuZGxlIHdoZXJlIHRoZSBidWZmZXIKKyAgICAgKiAgICAgc3RhcnRzLgorICAgICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWUgdGhpcyBidWZmZXIgd2FzIGNhcHR1cmVkIGJ5IHRoZSBjYW1lcmEsIGluCisgICAgICogICAgIG5hbm9zZWNvbmRzLgorICAgICAqCisgICAgICovCisgICAgaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIGhhbmRsZSBmcmFtZURhdGEsIE1lbW9yeUlkIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJbmRleCwgaW50NjRfdCB0aW1lc3RhbXApOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGJhdGNoIG9mIGltYWdlIGRhdGEgYnVmZmVyIHRvIHRoZSBjYW1lcmEgc2VydmljZSwgd2l0aCB0aW1lc3RhbXBzCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGxiYWNrIGNhbiBiZSB1c2VkIHRvIHNlbmQgbXVsdGlwbGUgZnJhbWVzIHRvIGNhbWVyYSBmcmFtZXdvcmsgaW4gb25lIGNhbGxiYWNrLCB3aGljaAorICAgICAqIHJlZHVjZSBudW1iZXIgb2YgY2FsbGJhY2tzIGluIHBlcmZvcm1hbmNlIGludGVuc2l2ZSB1c2UgY2FzZXMsIHN1Y2ggYXMgaGlnaCBzcGVlZCB2aWRlbworICAgICAqIHJlY29yZGluZy4gVGhlIEhBTCBtdXN0IG5vdCBtaXggdXNlIG9mIHRoaXMgbWV0aG9kIHdpdGggaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAgaW4gb25lCisgICAgICogcmVjb3JkaW5nIHNlc3Npb24gKGJldHdlZW4gc3RhcnRSZWNvcmRpbmcgYW5kIHN0b3BSZWNvcmRpbmcpCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUga2luZCBvZiBpbWFnZSBidWZmZXIgZGF0YSB0aGlzIGNhbGwgcmVwcmVzZW50cy4KKyAgICAgKiBAcGFyYW0gYmF0Y2ggYSB2ZWN0b3IgbWVzc2FnZXMuIEVhY2ggbWVzc2FnZSBjb250YWlucyBhIGltYWdlIGJ1ZmZlciBhbmQgYSB0aW1lc3RhbXAuIFRoZQorICAgICAqICAgICBtZXNzYWdlcyBtdXN0IGJlIG9yZGVyZWQgaW4gdGltZSBmcm9tIGxvd2VyIGluZGV4IHRvIGhpZ2hlciBpbmRleCwgc28gdGhhdCB0aW1lc3RhbXAgb2YKKyAgICAgKiAgICAgaS10aCBtZXNzYWdlIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gaSsxLXRoIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKi8KKyAgICBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLCB2ZWM8SGFuZGxlVGltZXN0YW1wTWVzc2FnZT4gYmF0Y2gpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwgYi9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDIxOTgxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzOworCisvKioKKyAqIENhbWVyYSBkZXZpY2UgSEFMQDEuMCBwcmV2aWV3IHN0cmVhbSBvcGVyYXRpb24gaW50ZXJmYWNlLgorICovCitpbnRlcmZhY2UgSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjayB7CisKKyAgICAvKioKKyAgICAgKiBBY3F1aXJlIGEgYnVmZmVyIHRvIHdyaXRlIGEgcHJldmlldyBidWZmZXIgaW50by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uIElmIG5vdCBPSywgdGhlbgorICAgICAqICAgICBidWZmZXIgYW5kIHN0cmlkZSBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gYnVmZmVySWQgQSB1bmlxdWUgSUQgZm9yIHRoZSByZXR1cm5lZCBidWZmZXIuCisgICAgICogQHJldHVybiBidWZmZXIgQSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciB0byB3cml0ZSBpbnRvLiBNdXN0IGJlIG5vbi1udWxsIGlmIHRoZSBidWZmZXJJZCBoYXMgbm90CisgICAgICogICAgIGJlZW4gc2VlbiBieSBIQUwgYmVmb3JlLiBNdXN0IGJlIG51bGwgaWYgdGhlIGJ1ZmZlcklkIGlzIHNlZW4gYmVmb3JlLiBIQUwgbXVzdCBrZWVwIHRyYWNrCisgICAgICogICAgIG9mIHRoZSBidWZmZXJJZCB0byBhY3R1YWwgYnVmZmVyIGhhbmRsZSBtYXBwaW5nLgorICAgICAqIEByZXR1cm4gc3RyaWRlIFRoZSBzdHJpZGUgYmV0d2VlbiB0d28gcm93cyBvZiBwaXhlbHMgaW4gdGhpcyBidWZmZXIuCisgICAgICovCisgICAgZGVxdWV1ZUJ1ZmZlcigpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdWludDY0X3QgYnVmZmVySWQsIGhhbmRsZSBidWZmZXIsIHVpbnQzMl90IHN0cmlkZSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgZmlsbGVkIHByZXZpZXcgYnVmZmVyIHRvIGl0cyBjb25zdW1lci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJJZCBUaGUgYnVmZmVySWQgb2YgdGhlIHByZXZpZXcgYnVmZmVyCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBlbnF1ZXVlQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcHJldmlldyBidWZmZXIgdW5maWxsZWQuIFRoaXMgYnVmZmVyIG11c3Qgbm90IGJlIHNlbnQgb24gdG8gdGhlCisgICAgICogcHJldmlldyBjb25zdW1lciBhcyBhIHZhbGlkIGJ1ZmZlciwgYnV0IG1heSBiZSByZXVzZWQgYXMgaWYgaXQgd2VyZQorICAgICAqIGVtcHR5LgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlcklkIFRoZSBidWZmZXJJZCBvZiB0aGUgcHJldmlldyBidWZmZXIKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIGNhbmNlbEJ1ZmZlcih1aW50NjRfdCBidWZmZXJJZCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtYmVyIG9mIHByZXZpZXcgYnVmZmVycyBuZWVkZWQgYnkgdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb3VudCBUaGUgbWF4aW11bSBudW1iZXIgb2YgcHJldmlldyBidWZmZXJzIHRvIGFsbG9jYXRlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2V0QnVmZmVyQ291bnQodWludDMyX3QgY291bnQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpbWVuc2lvbnMgYW5kIGZvcm1hdCBvZiBmdXR1cmUgcHJldmlldyBidWZmZXJzLgorICAgICAqCisgICAgICogVGhlIG5leHQgYnVmZmVyIHRoYXQgaXMgZGVxdWV1ZWQgbXVzdCBtYXRjaCB0aGUgcmVxdWVzdGVkIHNpemUgYW5kCisgICAgICogZm9ybWF0LgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRCdWZmZXJzR2VvbWV0cnkodWludDMyX3QgdywgdWludDMyX3QgaCwKKyAgICAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6UGl4ZWxGb3JtYXQgZm9ybWF0KQorICAgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdmFsaWQgcmVnaW9uIG9mIGltYWdlIGRhdGEgZm9yIHRoZSBuZXh0IGJ1ZmZlcihzKSB0byBiZSBlbnF1ZXVlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2V0Q3JvcChpbnQzMl90IGxlZnQsIGludDMyX3QgdG9wLCBpbnQzMl90IHJpZ2h0LCBpbnQzMl90IGJvdHRvbSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHByb2R1Y2VyIHVzYWdlIGZsYWdzIGZvciB0aGUgbmV4dCBidWZmZXIocykgdG8gYmUgZW5xdWV1ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldFVzYWdlKEJ1ZmZlclVzYWdlIHVzYWdlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBleHBlY3RlZCBidWZmZXJpbmcgbW9kZSBmb3IgdGhlIHByZXZpZXcgb3V0cHV0LgorICAgICAqLworICAgIHNldFN3YXBJbnRlcnZhbChpbnQzMl90IGludGVydmFsKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtaW5pbXVtIG51bWJlciBvZiBidWZmZXJzIHRoZSBwcmV2aWV3IGNvbnN1bWVyIGVuZHBvaW50IG5lZWRzCisgICAgICogdG8gaG9sZCBmb3IgY29ycmVjdCBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqIEByZXR1cm4gY291bnQgVGhlIG51bWJlciBvZiBidWZmZXJzIHRoZSBjb25zdW1lciBoYXMgcmVxdWVzdGVkLgorICAgICAqLworICAgIGdldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudCgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgY291bnQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSB0aW1lc3RhbXAgZm9yIHRoZSBuZXh0IGJ1ZmZlciB0byBlbnF1ZXVlCisgICAgICoKKyAgICAgKiBUaW1lc3RhbXBzIGFyZSBtZWFzdXJlZCBpbiBuYW5vc2Vjb25kcywgYW5kIG11c3QgYmUgY29tcGFyYWJsZQorICAgICAqIGFuZCBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgYmV0d2VlbiB0d28gZnJhbWVzIGluIHRoZSBzYW1lCisgICAgICogcHJldmlldyBzdHJlYW0uIFRoZXkgZG8gbm90IG5lZWQgdG8gYmUgY29tcGFyYWJsZSBiZXR3ZWVuCisgICAgICogY29uc2VjdXRpdmUgb3IgcGFyYWxsZWwgcHJldmlldyBzdHJlYW1zLCBjYW1lcmFzLCBvciBhcHAgcnVucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCB0byBzZXQgZm9yIGZ1dHVyZSBidWZmZXJzLgorICAgICAqIEByZXR1cm4gU3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2V0VGltZXN0YW1wKGludDY0X3QgdGltZXN0YW1wKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMzQ5ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJjYW1lcmEuZGV2aWNlQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgc3JjczogWworICAgICAgICAiQ2FtZXJhRGV2aWNlLmNwcCIsCisgICAgXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmNhbWVyYV9tZXRhZGF0YSIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMC1oZWxwZXIiCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heCIKKyAgICBdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdCit9CisKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcCBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjRlNzBmCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9DYW1lcmFEZXZpY2UuY3BwCkBAIC0wLDAgKzEsMTAwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtRGV2QDEuMC1pbXBsIgorI2luY2x1ZGUgPGhhcmR3YXJlL2NhbWVyYS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MxLmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisKKyNpbmNsdWRlIDxtZWRpYS9oYXJkd2FyZS9IYXJkd2FyZUFQSS5oPiAvLyBGb3IgVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YQorI2luY2x1ZGUgIkNhbWVyYURldmljZV8xXzAuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCitIYW5kbGVJbXBvcnRlciBDYW1lcmFEZXZpY2U6OnNIYW5kbGVJbXBvcnRlcjsKKworU3RhdHVzIENhbWVyYURldmljZTo6Z2V0SGlkbFN0YXR1cyhjb25zdCBpbnQmIHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgMDogcmV0dXJuIFN0YXR1czo6T0s7CisgICAgICAgIGNhc2UgLUVOT1NZUzogcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgLUVCVVNZIDogcmV0dXJuIFN0YXR1czo6Q0FNRVJBX0lOX1VTRTsKKyAgICAgICAgY2FzZSAtRVVTRVJTOiByZXR1cm4gU3RhdHVzOjpNQVhfQ0FNRVJBU19JTl9VU0U7CisgICAgICAgIGNhc2UgLUVOT0RFVjogcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIGNhc2UgLUVJTlZBTDogcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCIlczogdW5rbm93biBIQUwgc3RhdHVzIGNvZGUgJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9Cit9CisKK3N0YXR1c190IENhbWVyYURldmljZTo6Z2V0U3RhdHVzVChjb25zdCBTdGF0dXMmIHMpICB7CisgICAgc3dpdGNoKHMpIHsKKyAgICAgICAgY2FzZSBTdGF0dXM6Ok9LOgorICAgICAgICAgICAgcmV0dXJuIE9LOworICAgICAgICBjYXNlIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgICAgIGNhc2UgU3RhdHVzOjpDQU1FUkFfSU5fVVNFOgorICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTsKKyAgICAgICAgY2FzZSBTdGF0dXM6Ok1BWF9DQU1FUkFTX0lOX1VTRToKKyAgICAgICAgICAgIHJldHVybiAtRVVTRVJTOworICAgICAgICBjYXNlIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ6CisgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9UUkFOU0FDVElPTjsKKyAgICAgICAgY2FzZSBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOgorICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgICAgICBjYXNlIFN0YXR1czo6Q0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgICAgICAgIHJldHVybiBERUFEX09CSkVDVDsKKyAgICAgICAgY2FzZSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOgorICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBBTE9HVygiVW5leHBlY3RlZCBIQUwgc3RhdHVzIGNvZGUgJWQiLCBzKTsKKyAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Cit9CisKK1N0YXR1cyBDYW1lcmFEZXZpY2U6OmluaXRTdGF0dXMoKSBjb25zdCB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICBpZiAobUluaXRGYWlsKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfSBlbHNlIGlmIChtRGlzY29ubmVjdGVkKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6Q0FNRVJBX0RJU0NPTk5FQ1RFRDsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworQ2FtZXJhRGV2aWNlOjpDYW1lcmFEZXZpY2UoCisgICAgc3A8Q2FtZXJhTW9kdWxlPiBtb2R1bGUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBjYW1lcmFJZCwKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4+JiBjYW1lcmFEZXZpY2VOYW1lcykgOgorICAgICAgICBtTW9kdWxlKG1vZHVsZSksCisgICAgICAgIG1DYW1lcmFJZChjYW1lcmFJZCksCisgICAgICAgIG1EaXNjb25uZWN0ZWQoZmFsc2UpLAorICAgICAgICBtQ2FtZXJhRGV2aWNlTmFtZXMoY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICBtQ2FtZXJhSWRJbnQgPSBhdG9pKG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAvLyBTaG91bGQgbm90IHJlYWNoIGhlcmUgYXMgcHJvdmlkZXIgYWxzbyB2YWxpZGF0ZSBJRAorICAgIGlmIChtQ2FtZXJhSWRJbnQgPCAwIHx8IG1DYW1lcmFJZEludCA+PSBtb2R1bGUtPmdldE51bWJlck9mQ2FtZXJhcygpKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBjYW1lcmEgaWQ6ICVzIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIG1Jbml0RmFpbCA9IHRydWU7CisgICAgfQorCisgICAgbURldmljZVZlcnNpb24gPSBtTW9kdWxlLT5nZXREZXZpY2VWZXJzaW9uKG1DYW1lcmFJZEludCk7CisgICAgaWYgKG1EZXZpY2VWZXJzaW9uICE9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wICYmICFtTW9kdWxlLT5pc09wZW5MZWdhY3lEZWZpbmVkKCkpIHsKKyAgICAgICAgQUxPR0koIiVzOiBDYW1lcmEgaWQgJXMgZG9lcyBub3Qgc3VwcG9ydCBIQUwxLjAiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KKworICAgIG1Bc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBpZiAobUFzaG1lbUFsbG9jYXRvciA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dJKCIlczogY2Fubm90IGdldCBhc2htZW1BbGxvY2F0b3IiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KK30KKworQ2FtZXJhRGV2aWNlOjp+Q2FtZXJhRGV2aWNlKCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKG1EZXZpY2UgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HVygiJXM6IGNhbWVyYSAlcyBpcyBkZWxldGVkIHdoaWxlIG9wZW4iLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9CisgICAgbUhhbFByZXZpZXdXaW5kb3cuY2xlYW5VcENpcmN1bGF0aW5nQnVmZmVycygpOworfQorCisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzZXRDb25uZWN0aW9uU3RhdHVzKGJvb2wgY29ubmVjdGVkKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBtRGlzY29ubmVjdGVkID0gIWNvbm5lY3RlZDsKKyAgICBpZiAobURldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFjb25uZWN0ZWQpIHsKKyAgICAgICAgQUxPR1coIiVzOiBjYW1lcmEgJXMgaXMgZGlzY29ubmV0ZWQuIENsb3NpbmciLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZTo6Q2FtZXJhUHJldmlld1dpbmRvdzo6Y2xlYW5VcENpcmN1bGF0aW5nQnVmZmVycygpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGZvciAoYXV0byBwYWlyIDogbUNpcmN1bGF0aW5nQnVmZmVycykgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihwYWlyLnNlY29uZCk7CisgICAgfQorICAgIG1DaXJjdWxhdGluZ0J1ZmZlcnMuY2xlYXIoKTsKKyAgICBtQnVmZmVySWRNYXAuY2xlYXIoKTsKK30KKworaW50IENhbWVyYURldmljZTo6c0RlcXVldWVCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiogYnVmZmVyLCBpbnQgKnN0cmlkZSkgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIGlmIChidWZmZXIgPT0gbnVsbHB0ciB8fCBzdHJpZGUgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlciAoJXApIGFuZCBzdHJpZGUgKCVwKSBtdXN0IG5vdCBiZSBudWxsISIsIF9fRlVOQ1RJT05fXywgYnVmZmVyLCBzdHJpZGUpOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIFN0YXR1cyBzOworICAgIG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+ZGVxdWV1ZUJ1ZmZlcigKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCB1aW50NjRfdCBidWZmZXJJZCwgY29uc3QgYXV0byYgYnVmLCB1aW50MzJfdCBzdHJkKSB7CisgICAgICAgICAgICBzID0gc3RhdHVzOworICAgICAgICAgICAgaWYgKHMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChvYmplY3QtPm1Mb2NrKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5tQ2lyY3VsYXRpbmdCdWZmZXJzLmNvdW50KGJ1ZmZlcklkKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBpbXBvcnRlZEJ1ZiA9IGJ1Zi5nZXROYXRpdmVIYW5kbGUoKTsKKyAgICAgICAgICAgICAgICAgICAgc0hhbmRsZUltcG9ydGVyLmltcG9ydEJ1ZmZlcihpbXBvcnRlZEJ1Zik7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbXBvcnRlZEJ1ZiA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHByZXZpZXcgYnVmZmVyIGltcG9ydCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tQ2lyY3VsYXRpbmdCdWZmZXJzW2J1ZmZlcklkXSA9IGltcG9ydGVkQnVmOworICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tQnVmZmVySWRNYXBbJihvYmplY3QtPm1DaXJjdWxhdGluZ0J1ZmZlcnNbYnVmZmVySWRdKV0gPSBidWZmZXJJZDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqYnVmZmVyID0gJihvYmplY3QtPm1DaXJjdWxhdGluZ0J1ZmZlcnNbYnVmZmVySWRdKTsKKyAgICAgICAgICAgICAgICAqc3RyaWRlID0gc3RyZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgcmV0dXJuIGdldFN0YXR1c1Qocyk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNMb2NrQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqLCBidWZmZXJfaGFuZGxlX3QqKSB7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNFbnF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGJ1ZmZlcl9oYW5kbGVfdCogYnVmZmVyKSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIHVpbnQ2NF90IGJ1ZmZlcklkID0gb2JqZWN0LT5tQnVmZmVySWRNYXAuYXQoYnVmZmVyKTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPmVucXVldWVCdWZmZXIoYnVmZmVySWQpKTsKK30KKworaW50IENhbWVyYURldmljZTo6c0NhbmNlbEJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcikgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICB1aW50NjRfdCBidWZmZXJJZCA9IG9iamVjdC0+bUJ1ZmZlcklkTWFwLmF0KGJ1ZmZlcik7CisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5jYW5jZWxCdWZmZXIoYnVmZmVySWQpKTsKK30KKworaW50IENhbWVyYURldmljZTo6c1NldEJ1ZmZlckNvdW50KHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGludCBjb3VudCkgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIG9iamVjdC0+Y2xlYW5VcENpcmN1bGF0aW5nQnVmZmVycygpOworICAgIHJldHVybiBnZXRTdGF0dXNUKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+c2V0QnVmZmVyQ291bnQoY291bnQpKTsKK30KKworaW50IENhbWVyYURldmljZTo6c1NldEJ1ZmZlcnNHZW9tZXRyeShzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBmb3JtYXQpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBvYmplY3QtPmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVCgKKyAgICAgICAgICAgIG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+c2V0QnVmZmVyc0dlb21ldHJ5KHdpZHRoLCBoZWlnaHQsIChQaXhlbEZvcm1hdCkgZm9ybWF0KSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRDcm9wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20pIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldENyb3AobGVmdCwgdG9wLCByaWdodCwgYm90dG9tKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRUaW1lc3RhbXAoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50NjRfdCB0aW1lc3RhbXApIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldFRpbWVzdGFtcCh0aW1lc3RhbXApKTsKK30KKworaW50IENhbWVyYURldmljZTo6c1NldFVzYWdlKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGludCB1c2FnZSkgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIG9iamVjdC0+Y2xlYW5VcENpcmN1bGF0aW5nQnVmZmVycygpOworICAgIHJldHVybiBnZXRTdGF0dXNUKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+c2V0VXNhZ2UoKEJ1ZmZlclVzYWdlKXVzYWdlKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRTd2FwSW50ZXJ2YWwoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50IGludGVydmFsKSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5zZXRTd2FwSW50ZXJ2YWwoaW50ZXJ2YWwpKTsKK30KKworaW50IENhbWVyYURldmljZTo6c0dldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudCgKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsCisgICAgICAgICAgICAgICAgICBpbnQgKmNvdW50KSB7CisgICAgY29uc3QgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gIHN0YXRpY19jYXN0PGNvbnN0IENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoY291bnQgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNvdW50IGlzIG51bGwhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBTdGF0dXMgczsKKyAgICBvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPmdldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudCgKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCB1aW50MzJfdCBjbnQpIHsKKyAgICAgICAgICAgIHMgPSBzdGF0dXM7CisgICAgICAgICAgICBpZiAocyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgKmNvdW50ID0gY250OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChzKTsKK30KKworQ2FtZXJhRGV2aWNlOjpDYW1lcmFIZWFwTWVtb3J5OjpDYW1lcmFIZWFwTWVtb3J5KAorICAgIGludCBmZCwgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZmZlcnMpIDoKKyAgICAgICAgbUJ1ZlNpemUoYnVmX3NpemUpLAorICAgICAgICBtTnVtQnVmcyhudW1fYnVmZmVycykgeworICAgIG1IaWRsSGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMSwwKTsKKyAgICBtSGlkbEhhbmRsZS0+ZGF0YVswXSA9IGZjbnRsKGZkLCBGX0RVUEZEX0NMT0VYRUMsIDApOworICAgIGNvbnN0IHNpemVfdCBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisgICAgc2l6ZV90IHNpemUgPSAoKGJ1Zl9zaXplICogbnVtX2J1ZmZlcnMgKyBwYWdlc2l6ZS0xKSAmIH4ocGFnZXNpemUtMSkpOworICAgIG1IaWRsSGVhcCA9IGhpZGxfbWVtb3J5KCJhc2htZW0iLCBtSGlkbEhhbmRsZSwgc2l6ZSk7CisgICAgY29tbW9uSW5pdGlhbGl6YXRpb24oKTsKK30KKworQ2FtZXJhRGV2aWNlOjpDYW1lcmFIZWFwTWVtb3J5OjpDYW1lcmFIZWFwTWVtb3J5KAorICAgIHNwPElBbGxvY2F0b3I+IGFzaG1lbUFsbG9jYXRvciwKKyAgICBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmZmVycykgOgorICAgICAgICBtQnVmU2l6ZShidWZfc2l6ZSksCisgICAgICAgIG1OdW1CdWZzKG51bV9idWZmZXJzKSB7CisgICAgY29uc3Qgc2l6ZV90IHBhZ2VzaXplID0gZ2V0cGFnZXNpemUoKTsKKyAgICBzaXplX3Qgc2l6ZSA9ICgoYnVmX3NpemUgKiBudW1fYnVmZmVycyArIHBhZ2VzaXplLTEpICYgfihwYWdlc2l6ZS0xKSk7CisgICAgYXNobWVtQWxsb2NhdG9yLT5hbGxvY2F0ZShzaXplLAorICAgICAgICBbJl0oYm9vbCBzdWNjZXNzLCBjb25zdCBoaWRsX21lbW9yeSYgbWVtKSB7CisgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGFsbG9jYXRpbmcgYXNobWVtIG9mICV6dSBieXRlcyBmYWlsZWQhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgYnVmX3NpemUgKiBudW1fYnVmZmVycyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbUhpZGxIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2Nsb25lKG1lbS5oYW5kbGUoKSk7CisgICAgICAgICAgICBtSGlkbEhlYXAgPSBoaWRsX21lbW9yeSgiYXNobWVtIiwgbUhpZGxIYW5kbGUsIHNpemUpOworICAgICAgICB9KTsKKworICAgIGNvbW1vbkluaXRpYWxpemF0aW9uKCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpDYW1lcmFIZWFwTWVtb3J5Ojpjb21tb25Jbml0aWFsaXphdGlvbigpIHsKKyAgICBtSGlkbEhlYXBNZW1vcnkgPSBtYXBNZW1vcnkobUhpZGxIZWFwKTsKKyAgICBpZiAobUhpZGxIZWFwTWVtb3J5ID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBtZW1vcnkgbWFwIGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKG1IaWRsSGFuZGxlKTsgLy8gY2xvc2UgRkQgZm9yIHRoZSBzaGFyZWQgbWVtb3J5CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKG1IaWRsSGFuZGxlKTsKKyAgICAgICAgbUhpZGxIZWFwID0gaGlkbF9tZW1vcnkoKTsKKyAgICAgICAgbUhpZGxIYW5kbGUgPSBudWxscHRyOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1IaWRsSGVhcE1lbURhdGEgPSBtSGlkbEhlYXBNZW1vcnktPmdldFBvaW50ZXIoKTsKKyAgICBoYW5kbGUuZGF0YSA9IG1IaWRsSGVhcE1lbURhdGE7CisgICAgaGFuZGxlLnNpemUgPSBtQnVmU2l6ZSAqIG1OdW1CdWZzOworICAgIGhhbmRsZS5oYW5kbGUgPSB0aGlzOworICAgIGhhbmRsZS5yZWxlYXNlID0gc1B1dE1lbW9yeTsKK30KKworQ2FtZXJhRGV2aWNlOjpDYW1lcmFIZWFwTWVtb3J5Ojp+Q2FtZXJhSGVhcE1lbW9yeSgpIHsKKyAgICBpZiAobUhpZGxIZWFwTWVtb3J5ICE9IG51bGxwdHIpIHsKKyAgICAgICAgbUhpZGxIZWFwTWVtRGF0YSA9IG51bGxwdHI7CisgICAgICAgIG1IaWRsSGVhcE1lbW9yeS5jbGVhcigpOyAvLyBUaGUgZGVzdHJ1Y3RvciB3aWxsIHRyaWdnZXIgbXVubWFwCisgICAgfQorCisgICAgaWYgKG1IaWRsSGFuZGxlKSB7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UobUhpZGxIYW5kbGUpOyAvLyBjbG9zZSBGRCBmb3IgdGhlIHNoYXJlZCBtZW1vcnkKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUobUhpZGxIYW5kbGUpOworICAgIH0KK30KKworLy8gc2hhcmVkIG1lbW9yeSBtZXRob2RzCitjYW1lcmFfbWVtb3J5X3QqIENhbWVyYURldmljZTo6c0dldE1lbW9yeShpbnQgZmQsIHNpemVfdCBidWZfc2l6ZSwgdWludF90IG51bV9idWZzLCB2b2lkICp1c2VyKSB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBDYW1lcmFEZXZpY2UqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYURldmljZSo+KHVzZXIpOworICAgIGlmIChvYmplY3QtPm1EZXZpY2VDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCByZXF1ZXN0IG1lbW9yeSB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBDYW1lcmFIZWFwTWVtb3J5KiBtZW07CisgICAgaWYgKGZkIDwgMCkgeworICAgICAgICBtZW0gPSBuZXcgQ2FtZXJhSGVhcE1lbW9yeShvYmplY3QtPm1Bc2htZW1BbGxvY2F0b3IsIGJ1Zl9zaXplLCBudW1fYnVmcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWVtID0gbmV3IENhbWVyYUhlYXBNZW1vcnkoZmQsIGJ1Zl9zaXplLCBudW1fYnVmcyk7CisgICAgfQorICAgIG1lbS0+aW5jU3Ryb25nKG1lbSk7CisgICAgaGlkbF9oYW5kbGUgaGlkbEhhbmRsZSA9IG1lbS0+bUhpZGxIYW5kbGU7CisgICAgTWVtb3J5SWQgaWQgPSBvYmplY3QtPm1EZXZpY2VDYWxsYmFjay0+cmVnaXN0ZXJNZW1vcnkoaGlkbEhhbmRsZSwgYnVmX3NpemUsIG51bV9idWZzKTsKKyAgICBtZW0tPmhhbmRsZS5tSWQgPSBpZDsKKyAgICBpZiAob2JqZWN0LT5tTWVtb3J5TWFwLmNvdW50KGlkKSAhPSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogZHVwbGljYXRlIE1lbW9yeUlkICVkIHJldHVybmVkIGJ5IGNsaWVudCEiLCBfX0ZVTkNUSU9OX18sIGlkKTsKKyAgICB9CisgICAgb2JqZWN0LT5tTWVtb3J5TWFwW2lkXSA9IG1lbTsKKyAgICBtZW0tPmhhbmRsZS5tRGV2aWNlID0gb2JqZWN0OworICAgIHJldHVybiAmbWVtLT5oYW5kbGU7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzUHV0TWVtb3J5KGNhbWVyYV9tZW1vcnlfdCAqZGF0YSkgeworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ2FtZXJhSGVhcE1lbW9yeSogbWVtID0gc3RhdGljX2Nhc3Q8Q2FtZXJhSGVhcE1lbW9yeSAqPihkYXRhLT5oYW5kbGUpOworICAgIENhbWVyYURldmljZSogZGV2aWNlID0gbWVtLT5oYW5kbGUubURldmljZTsKKyAgICBpZiAoZGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIHJldHVybiBtZW1vcnkgZm9yIGEgbnVsbCBkZXZpY2UhIiwgX19GVU5DVElPTl9fKTsKKyAgICB9CisgICAgaWYgKGRldmljZS0+bURldmljZUNhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIHJldHVybiBtZW1vcnkgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICB9CisgICAgZGV2aWNlLT5tRGV2aWNlQ2FsbGJhY2stPnVucmVnaXN0ZXJNZW1vcnkobWVtLT5oYW5kbGUubUlkKTsKKyAgICBkZXZpY2UtPm1NZW1vcnlNYXAuZXJhc2UobWVtLT5oYW5kbGUubUlkKTsKKyAgICBtZW0tPmRlY1N0cm9uZyhtZW0pOworfQorCisvLyBDYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzTm90aWZ5Q2IoaW50MzJfdCBtc2dfdHlwZSwgaW50MzJfdCBleHQxLCBpbnQzMl90IGV4dDIsIHZvaWQgKnVzZXIpIHsKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIENhbWVyYURldmljZSogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhRGV2aWNlKj4odXNlcik7CisgICAgaWYgKG9iamVjdC0+bURldmljZUNhbGxiYWNrICE9IG51bGxwdHIpIHsKKyAgICAgICAgb2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2stPm5vdGlmeUNhbGxiYWNrKChOb3RpZnlDYWxsYmFja01zZykgbXNnX3R5cGUsIGV4dDEsIGV4dDIpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OnNEYXRhQ2IoaW50MzJfdCBtc2dfdHlwZSwgY29uc3QgY2FtZXJhX21lbW9yeV90ICpkYXRhLCB1bnNpZ25lZCBpbnQgaW5kZXgsCisgICAgICAgIGNhbWVyYV9mcmFtZV9tZXRhZGF0YV90ICptZXRhZGF0YSwgdm9pZCAqdXNlcikgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgQ2FtZXJhRGV2aWNlKiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFEZXZpY2UqPih1c2VyKTsKKyAgICBzcDxDYW1lcmFIZWFwTWVtb3J5PiBtZW0oc3RhdGljX2Nhc3Q8Q2FtZXJhSGVhcE1lbW9yeSo+KGRhdGEtPmhhbmRsZSkpOworICAgIGlmIChpbmRleCA+PSBtZW0tPm1OdW1CdWZzKSB7CisgICAgICAgIEFMT0dFKCIlczogaW52YWxpZCBidWZmZXIgaW5kZXggJWQsIG1heCBhbGxvd2VkIGlzICVkIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgIGluZGV4LCBtZW0tPm1OdW1CdWZzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAob2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2sgIT0gbnVsbHB0cikgeworICAgICAgICBDYW1lcmFGcmFtZU1ldGFkYXRhIGhpZGxNZXRhZGF0YTsKKyAgICAgICAgaWYgKG1ldGFkYXRhKSB7CisgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXMucmVzaXplKG1ldGFkYXRhLT5udW1iZXJfb2ZfZmFjZXMpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoaWRsTWV0YWRhdGEuZmFjZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0uc2NvcmUgPSBtZXRhZGF0YS0+ZmFjZXNbaV0uc2NvcmU7CisgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLmlkID0gbWV0YWRhdGEtPmZhY2VzW2ldLmlkOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgNDsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIGhpZGxNZXRhZGF0YS5mYWNlc1tpXS5yZWN0W2tdID0gbWV0YWRhdGEtPmZhY2VzW2ldLnJlY3Rba107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgMjsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIGhpZGxNZXRhZGF0YS5mYWNlc1tpXS5sZWZ0RXllW2tdID0gbWV0YWRhdGEtPmZhY2VzW2ldLmxlZnRfZXllW2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDI7IGsrKykgeworICAgICAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0ucmlnaHRFeWVba10gPSBtZXRhZGF0YS0+ZmFjZXNbaV0ucmlnaHRfZXllW2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDI7IGsrKykgeworICAgICAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0ubW91dGhba10gPSBtZXRhZGF0YS0+ZmFjZXNbaV0ubW91dGhba107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIENhbWVyYUhlYXBNZW1vcnkqIG1lbSA9IHN0YXRpY19jYXN0PENhbWVyYUhlYXBNZW1vcnkgKj4oZGF0YS0+aGFuZGxlKTsKKyAgICAgICAgb2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2stPmRhdGFDYWxsYmFjaygKKyAgICAgICAgICAgICAgICAoRGF0YUNhbGxiYWNrTXNnKSBtc2dfdHlwZSwgbWVtLT5oYW5kbGUubUlkLCBpbmRleCwgaGlkbE1ldGFkYXRhKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpoYW5kbGVDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgbnNlY3NfdCB0aW1lc3RhbXAsIGludDMyX3QgbXNnX3R5cGUsCisgICAgICAgIE1lbW9yeUlkIG1lbUlkICwgdW5zaWduZWQgaW5kZXgsIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlKSB7CisgICAgdWludDMyX3QgYmF0Y2hTaXplID0gMDsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtQmF0Y2hMb2NrKTsKKyAgICAgICAgYmF0Y2hTaXplID0gbUJhdGNoU2l6ZTsKKyAgICB9CisKKyAgICBpZiAoYmF0Y2hTaXplID09IDApIHsgLy8gbm9uLWJhdGNoIG1vZGUKKyAgICAgICAgbURldmljZUNhbGxiYWNrLT5oYW5kbGVDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgICAgICAgICAoRGF0YUNhbGxiYWNrTXNnKSBtc2dfdHlwZSwgaGFuZGxlLCBtZW1JZCwgaW5kZXgsIHRpbWVzdGFtcCk7CisgICAgfSBlbHNlIHsgLy8gYmF0Y2ggbW9kZQorICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUJhdGNoTG9jayk7CisgICAgICAgIHNpemVfdCBpbmZsaWdodFNpemUgPSBtSW5mbGlnaHRCYXRjaC5zaXplKCk7CisgICAgICAgIGlmIChpbmZsaWdodFNpemUgPT0gMCkgeworICAgICAgICAgICAgbUJhdGNoTXNnVHlwZSA9IG1zZ190eXBlOworICAgICAgICB9IGVsc2UgaWYgKG1CYXRjaE1zZ1R5cGUgIT0gbXNnX3R5cGUpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogbXNnX3R5cGUgY2hhbmdlIChmcm9tICVkIHRvICVkKSBpcyBub3Qgc3VwcG9ydGVkISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUJhdGNoTXNnVHlwZSwgbXNnX3R5cGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1JbmZsaWdodEJhdGNoLnB1c2hfYmFjayh7aGFuZGxlLCBtZW1JZCwgaW5kZXgsIHRpbWVzdGFtcH0pOworCisgICAgICAgIC8vIFNlbmQgYmF0Y2hlZCBmcmFtZXMgdG8gY2FtZXJhIGZyYW1ld29yaworICAgICAgICBpZiAobUluZmxpZ2h0QmF0Y2guc2l6ZSgpID49IGJhdGNoU2l6ZSkgeworICAgICAgICAgICAgbURldmljZUNhbGxiYWNrLT5oYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoKAorICAgICAgICAgICAgICAgICAgICAoRGF0YUNhbGxiYWNrTXNnKSBtQmF0Y2hNc2dUeXBlLCBtSW5mbGlnaHRCYXRjaCk7CisgICAgICAgICAgICBtSW5mbGlnaHRCYXRjaC5jbGVhcigpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZTo6c0RhdGFDYlRpbWVzdGFtcChuc2Vjc190IHRpbWVzdGFtcCwgaW50MzJfdCBtc2dfdHlwZSwKKyAgICAgICAgY29uc3QgY2FtZXJhX21lbW9yeV90ICpkYXRhLCB1bnNpZ25lZCBpbmRleCwgdm9pZCAqdXNlcikgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgQ2FtZXJhRGV2aWNlKiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFEZXZpY2UqPih1c2VyKTsKKyAgICAvLyBTdGFydCByZWZjb3VudGluZyB0aGUgaGVhcCBvYmplY3QgZnJvbSBoZXJlIG9uLiAgV2hlbiB0aGUgY2xpZW50cworICAgIC8vIGRyb3AgYWxsIHJlZmVyZW5jZXMsIGl0IHdpbGwgYmUgZGVzdHJveWVkIChhcyB3ZWxsIGFzIHRoZSBlbmNsb3NlZAorICAgIC8vIE1lbW9yeUhlYXBCYXNlLgorICAgIHNwPENhbWVyYUhlYXBNZW1vcnk+IG1lbShzdGF0aWNfY2FzdDxDYW1lcmFIZWFwTWVtb3J5Kj4oZGF0YS0+aGFuZGxlKSk7CisgICAgaWYgKGluZGV4ID49IG1lbS0+bU51bUJ1ZnMpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBpbnZhbGlkIGJ1ZmZlciBpbmRleCAlZCwgbWF4IGFsbG93ZWQgaXMgJWQiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgaW5kZXgsIG1lbS0+bU51bUJ1ZnMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworICAgIGlmIChvYmplY3QtPm1NZXRhZGF0YU1vZGUpIHsKKyAgICAgICAgaWYgKG1lbS0+bUJ1ZlNpemUgPT0gc2l6ZW9mKFZpZGVvTmF0aXZlSGFuZGxlTWV0YWRhdGEpKSB7CisgICAgICAgICAgICBWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKiBtZCA9IChWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKikKKyAgICAgICAgICAgICAgICAgICAgKCh1aW50OF90KikgbWVtLT5tSGlkbEhlYXBNZW1EYXRhICsgaW5kZXggKiBtZW0tPm1CdWZTaXplKTsKKyAgICAgICAgICAgIGlmIChtZC0+ZVR5cGUgPT0ga01ldGFkYXRhQnVmZmVyVHlwZU5hdGl2ZUhhbmRsZVNvdXJjZSkgeworICAgICAgICAgICAgICAgIGhhbmRsZSA9IG1kLT5wSGFuZGxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG9iamVjdC0+bURldmljZUNhbGxiYWNrICE9IG51bGxwdHIpIHsKKyAgICAgICAgaWYgKGhhbmRsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBvYmplY3QtPm1EZXZpY2VDYWxsYmFjay0+ZGF0YUNhbGxiYWNrVGltZXN0YW1wKAorICAgICAgICAgICAgICAgICAgICAoRGF0YUNhbGxiYWNrTXNnKSBtc2dfdHlwZSwgbWVtLT5oYW5kbGUubUlkLCBpbmRleCwgdGltZXN0YW1wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG9iamVjdC0+aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAodGltZXN0YW1wLCBtc2dfdHlwZSwgbWVtLT5oYW5kbGUubUlkLCBpbmRleCwgaGFuZGxlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OmluaXRIYWxQcmV2aWV3V2luZG93KCkKK3sKKyAgICBtSGFsUHJldmlld1dpbmRvdy5jYW5jZWxfYnVmZmVyID0gc0NhbmNlbEJ1ZmZlcjsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5sb2NrX2J1ZmZlciA9IHNMb2NrQnVmZmVyOworICAgIG1IYWxQcmV2aWV3V2luZG93LmRlcXVldWVfYnVmZmVyID0gc0RlcXVldWVCdWZmZXI7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuZW5xdWV1ZV9idWZmZXIgPSBzRW5xdWV1ZUJ1ZmZlcjsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfYnVmZmVyX2NvdW50ID0gc1NldEJ1ZmZlckNvdW50OworICAgIG1IYWxQcmV2aWV3V2luZG93LnNldF9idWZmZXJzX2dlb21ldHJ5ID0gc1NldEJ1ZmZlcnNHZW9tZXRyeTsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfY3JvcCA9IHNTZXRDcm9wOworICAgIG1IYWxQcmV2aWV3V2luZG93LnNldF90aW1lc3RhbXAgPSBzU2V0VGltZXN0YW1wOworICAgIG1IYWxQcmV2aWV3V2luZG93LnNldF91c2FnZSA9IHNTZXRVc2FnZTsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfc3dhcF9pbnRlcnZhbCA9IHNTZXRTd2FwSW50ZXJ2YWw7CisKKyAgICBtSGFsUHJldmlld1dpbmRvdy5nZXRfbWluX3VuZGVxdWV1ZWRfYnVmZmVyX2NvdW50ID0KKyAgICAgICAgICAgIHNHZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQ7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpnZXRSZXNvdXJjZUNvc3QoZ2V0UmVzb3VyY2VDb3N0X2NiIF9oaWRsX2NiKSB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBDYW1lcmFSZXNvdXJjZUNvc3QgcmVzQ29zdDsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgaW50IGNvc3QgPSAxMDA7CisgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBjb25mbGljdGluZ19kZXZpY2VzOworICAgICAgICBzdHJ1Y3QgY2FtZXJhX2luZm8gaW5mbzsKKworICAgICAgICAvLyBJZiB1c2luZyBwb3N0LTIuNCBtb2R1bGUgdmVyc2lvbiwgcXVlcnkgdGhlIGNvc3QgKyBjb25mbGljdGluZyBkZXZpY2VzIGZyb20gdGhlIEhBTAorICAgICAgICBpZiAobU1vZHVsZS0+Z2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl80KSB7CisgICAgICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhtQ2FtZXJhSWRJbnQsICZpbmZvKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gT0spIHsKKyAgICAgICAgICAgICAgICBjb3N0ID0gaW5mby5yZXNvdXJjZV9jb3N0OworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5mby5jb25mbGljdGluZ19kZXZpY2VzX2xlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkKGluZm8uY29uZmxpY3RpbmdfZGV2aWNlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgcGFpciA6IG1DYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbWVyYUlkID09IHBhaXIuZmlyc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzLnB1c2hfYmFjayhwYWlyLnNlY29uZCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIHJlc0Nvc3QucmVzb3VyY2VDb3N0ID0gY29zdDsKKyAgICAgICAgICAgIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzLnJlc2l6ZShjb25mbGljdGluZ19kZXZpY2VzLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZsaWN0aW5nX2RldmljZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlc1tpXSA9IGNvbmZsaWN0aW5nX2RldmljZXNbaV07CisgICAgICAgICAgICAgICAgQUxPR1YoIkNhbURldmljZSAlcyBpcyBjb25mbGljdGluZyB3aXRoIGNhbURldmljZSAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICBtQ2FtZXJhSWQuY19zdHIoKSwgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXNbaV0uY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2Ioc3RhdHVzLCByZXNDb3N0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpnZXRDYW1lcmFJbmZvKGdldENhbWVyYUluZm9fY2IgX2hpZGxfY2IpIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYUluZm8gY2FtZXJhSW5mbzsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgIGludCByZXQgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICBjYW1lcmFJbmZvLmZhY2luZyA9IChDYW1lcmFGYWNpbmcpIGluZm8uZmFjaW5nOworICAgICAgICAgICAgLy8gRGV2aWNlIDEuMCBkb2VzIG5vdCBzdXBwb3J0IGV4dGVybmFsIGNhbWVyYSBmYWNpbmcuCisgICAgICAgICAgICAvLyBUaGUgY2xvc2VzdCBhcHByb3hpbWF0aW9uIHdvdWxkIGJlIGZyb250IGNhbWVyYS4KKyAgICAgICAgICAgIGlmIChjYW1lcmFJbmZvLmZhY2luZyA9PSBDYW1lcmFGYWNpbmc6OkVYVEVSTkFMKSB7CisgICAgICAgICAgICAgICAgY2FtZXJhSW5mby5mYWNpbmcgPSBDYW1lcmFGYWNpbmc6OkZST05UOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FtZXJhSW5mby5vcmllbnRhdGlvbiA9IGluZm8ub3JpZW50YXRpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGdldCBjYW1lcmEgaW5mbyBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2Ioc3RhdHVzLCBjYW1lcmFJbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgeworICAgIGlmICghbU1vZHVsZS0+aXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQoKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICBib29sIGVuYWJsZSA9IChtb2RlID09IFRvcmNoTW9kZTo6T04pID8gdHJ1ZSA6IGZhbHNlOworICAgICAgICBzdGF0dXMgPSBnZXRIaWRsU3RhdHVzKG1Nb2R1bGUtPnNldFRvcmNoTW9kZShtQ2FtZXJhSWQuY19zdHIoKSwgZW5hYmxlKSk7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6ZHVtcFN0YXRlKGNvbnN0IGhpZGxfaGFuZGxlJiBoYW5kbGUpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmIChoYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGhhbmRsZSBtdXN0IG5vdCBiZSBudWxsIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisgICAgaWYgKGhhbmRsZS0+bnVtRmRzICE9IDEgfHwgaGFuZGxlLT5udW1JbnRzICE9IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBoYW5kbGUgbXVzdCBjb250YWluIDEgRkQgYW5kIDAgaW50ZWdlcnMhIEdvdCAlZCBGRHMgYW5kICVkIGludHMiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgaGFuZGxlLT5udW1GZHMsIGhhbmRsZS0+bnVtSW50cyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorICAgIGludCBmZCA9IGhhbmRsZS0+ZGF0YVswXTsKKworICAgIGlmIChtRGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgaWYgKG1EZXZpY2UtPm9wcy0+ZHVtcCkgeyAvLyBJdCdzIGZpbmUgaWYgdGhlIEhBTCBkb2Vzbid0IGltcGxlbWVudCBkdW1wKCkKKyAgICAgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+ZHVtcChtRGV2aWNlLCBmZCkpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6Om9wZW4oY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICBBTE9HSSgiT3BlbmluZyBjYW1lcmEgJXMiLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKworICAgIGNhbWVyYV9pbmZvIGluZm87CisgICAgc3RhdHVzX3QgcmVzID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhtQ2FtZXJhSWRJbnQsICZpbmZvKTsKKyAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgZ2V0IGNhbWVyYSBpbmZvOiAlczogJWQiLCBtQ2FtZXJhSWQuY19zdHIoKSwgcmVzKTsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMocmVzKTsKKyAgICB9CisKKyAgICBpbnQgcmMgPSBPSzsKKyAgICBpZiAobU1vZHVsZS0+Z2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8zICYmCisgICAgICAgIGluZm8uZGV2aWNlX3ZlcnNpb24gPiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAvLyBPcGVuIGhpZ2hlciB2ZXJzaW9uIGNhbWVyYSBkZXZpY2UgYXMgSEFMMS4wIGRldmljZS4KKyAgICAgICAgcmMgPSBtTW9kdWxlLT5vcGVuTGVnYWN5KG1DYW1lcmFJZC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHdfZGV2aWNlX3QgKiopJm1EZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJjID0gbU1vZHVsZS0+b3BlbihtQ2FtZXJhSWQuY19zdHIoKSwgKGh3X2RldmljZV90ICoqKSZtRGV2aWNlKTsKKyAgICB9CisgICAgaWYgKHJjICE9IE9LKSB7CisgICAgICAgIG1EZXZpY2UgPSBudWxscHRyOworICAgICAgICBBTE9HRSgiQ291bGQgbm90IG9wZW4gY2FtZXJhICVzOiAlZCIsIG1DYW1lcmFJZC5jX3N0cigpLCByYyk7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKHJjKTsKKyAgICB9CisKKyAgICBpbml0SGFsUHJldmlld1dpbmRvdygpOworICAgIG1EZXZpY2VDYWxsYmFjayA9IGNhbGxiYWNrOworCisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c2V0X2NhbGxiYWNrcykgeworICAgICAgICBtRGV2aWNlLT5vcHMtPnNldF9jYWxsYmFja3MobURldmljZSwKKyAgICAgICAgICAgICAgICBzTm90aWZ5Q2IsIHNEYXRhQ2IsIHNEYXRhQ2JUaW1lc3RhbXAsIHNHZXRNZW1vcnksIHRoaXMpOworICAgIH0KKworICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKHJjKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZXRQcmV2aWV3V2luZG93KGNvbnN0IHNwPElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2s+JiB3aW5kb3cpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIG1IYWxQcmV2aWV3V2luZG93Lm1QcmV2aWV3Q2FsbGJhY2sgPSB3aW5kb3c7CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c2V0X3ByZXZpZXdfd2luZG93KSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+c2V0X3ByZXZpZXdfd2luZG93KG1EZXZpY2UsCisgICAgICAgICAgICAgICAgKHdpbmRvdyA9PSBudWxscHRyKSA/IG51bGxwdHIgOiAmbUhhbFByZXZpZXdXaW5kb3cpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7IC8vIEhBTCBzaG91bGQgcHJvdmlkZSBzZXRfcHJldmlld193aW5kb3cKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6ZW5hYmxlTXNnVHlwZSh1aW50MzJfdCBtc2dUeXBlKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5lbmFibGVfbXNnX3R5cGUpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5lbmFibGVfbXNnX3R5cGUobURldmljZSwgbXNnVHlwZSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmRpc2FibGVNc2dUeXBlKHVpbnQzMl90IG1zZ1R5cGUpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPmRpc2FibGVfbXNnX3R5cGUpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5kaXNhYmxlX21zZ190eXBlKG1EZXZpY2UsIG1zZ1R5cGUpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQ2FtZXJhRGV2aWNlOjptc2dUeXBlRW5hYmxlZCh1aW50MzJfdCBtc2dUeXBlKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPm1zZ190eXBlX2VuYWJsZWQpIHsKKyAgICAgICAgcmV0dXJuIG1EZXZpY2UtPm9wcy0+bXNnX3R5cGVfZW5hYmxlZChtRGV2aWNlLCBtc2dUeXBlKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnN0YXJ0UHJldmlldygpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zdGFydF9wcmV2aWV3KSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+c3RhcnRfcHJldmlldyhtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOyAvLyBIQUwgc2hvdWxkIHByb3ZpZGUgc3RhcnRfcHJldmlldworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpzdG9wUHJldmlldygpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnN0b3BfcHJldmlldykgeworICAgICAgICBtRGV2aWNlLT5vcHMtPnN0b3BfcHJldmlldyhtRGV2aWNlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IENhbWVyYURldmljZTo6cHJldmlld0VuYWJsZWQoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnByZXZpZXdfZW5hYmxlZCkgeworICAgICAgICByZXR1cm4gbURldmljZS0+b3BzLT5wcmV2aWV3X2VuYWJsZWQobURldmljZSk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzdG9yZU1ldGFEYXRhSW5CdWZmZXJzKGJvb2wgZW5hYmxlKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c3RvcmVfbWV0YV9kYXRhX2luX2J1ZmZlcnMpIHsKKyAgICAgICAgc3RhdHVzX3QgcyA9IG1EZXZpY2UtPm9wcy0+c3RvcmVfbWV0YV9kYXRhX2luX2J1ZmZlcnMobURldmljZSwgZW5hYmxlKTsKKyAgICAgICAgaWYgKHMgPT0gT0sgJiYgZW5hYmxlKSB7CisgICAgICAgICAgICBtTWV0YWRhdGFNb2RlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhzKTsKKyAgICB9CisgICAgcmV0dXJuIGVuYWJsZSA/IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCA6IFN0YXR1czo6T0s7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c3RhcnRSZWNvcmRpbmcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c3RhcnRfcmVjb3JkaW5nKSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+c3RhcnRfcmVjb3JkaW5nKG1EZXZpY2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6c3RvcFJlY29yZGluZygpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnN0b3BfcmVjb3JkaW5nKSB7CisgICAgICAgIG1EZXZpY2UtPm9wcy0+c3RvcF9yZWNvcmRpbmcobURldmljZSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxib29sPiBDYW1lcmFEZXZpY2U6OnJlY29yZGluZ0VuYWJsZWQoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnJlY29yZGluZ19lbmFibGVkKSB7CisgICAgICAgIHJldHVybiBtRGV2aWNlLT5vcHMtPnJlY29yZGluZ19lbmFibGVkKG1EZXZpY2UpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpyZWxlYXNlUmVjb3JkaW5nRnJhbWVMb2NrZWQoCisgICAgICAgIHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUpIHsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+cmVsZWFzZV9yZWNvcmRpbmdfZnJhbWUpIHsKKyAgICAgICAgQ2FtZXJhSGVhcE1lbW9yeSogY2FtTWVtb3J5ID0gbU1lbW9yeU1hcC5hdChtZW1JZCk7CisgICAgICAgIGlmIChidWZmZXJJbmRleCA+PSBjYW1NZW1vcnktPm1OdW1CdWZzKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlckluZGV4ICVkIGV4Y2VlZHMgbnVtYmVyIG9mIGJ1ZmZlcnMgJWQiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGJ1ZmZlckluZGV4LCBjYW1NZW1vcnktPm1OdW1CdWZzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2b2lkICpkYXRhID0gKCh1aW50OF90ICopIGNhbU1lbW9yeS0+bUhpZGxIZWFwTWVtRGF0YSkgKyBidWZmZXJJbmRleCAqIGNhbU1lbW9yeS0+bUJ1ZlNpemU7CisgICAgICAgIGlmIChoYW5kbGUpIHsKKyAgICAgICAgICAgIFZpZGVvTmF0aXZlSGFuZGxlTWV0YWRhdGEqIG1kID0gKFZpZGVvTmF0aXZlSGFuZGxlTWV0YWRhdGEqKSBkYXRhOworICAgICAgICAgICAgaWYgKG1kLT5lVHlwZSA9PSBrTWV0YWRhdGFCdWZmZXJUeXBlTmF0aXZlSGFuZGxlU291cmNlKSB7CisgICAgICAgICAgICAgICAgLy8gSW5wdXQgaGFuZGxlIHdpbGwgYmUgY2xvc2VkIGJ5IEhJREwgdHJhbnNwb3J0IGxhdGVyLCBzbyBjbG9uZSBpdAorICAgICAgICAgICAgICAgIC8vIEhBTCBpbXBsZW1lbnRhdGlvbiBpcyByZXNwb25zaWJsZSB0byBjbG9zZS9kZWxldGUgdGhlIGNsb25lCisgICAgICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBjbG9uZSA9IG5hdGl2ZV9oYW5kbGVfY2xvbmUoaGFuZGxlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNsb25lKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCIlczogZmFpbGVkIHRvIGNsb25lIGJ1ZmZlciAlcCIsIF9fRlVOQ1RJT05fXywgaGFuZGxlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtZC0+cEhhbmRsZSA9IGNsb25lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6TWFsZm9ybSBWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhIGF0IG1lbUlkICVkLCBidWZmZXJJZCAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1lbUlkLCBidWZmZXJJbmRleCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1EZXZpY2UtPm9wcy0+cmVsZWFzZV9yZWNvcmRpbmdfZnJhbWUobURldmljZSwgZGF0YSk7CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpyZWxlYXNlUmVjb3JkaW5nRnJhbWUodWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4KSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgcmVsZWFzZVJlY29yZGluZ0ZyYW1lTG9ja2VkKG1lbUlkLCBidWZmZXJJbmRleCwgbnVsbHB0cik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlKAorICAgICAgICB1aW50MzJfdCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgsIGNvbnN0IGhpZGxfaGFuZGxlJiBmcmFtZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUxvY2tlZCgKKyAgICAgICAgICAgIG1lbUlkLCBidWZmZXJJbmRleCwgZnJhbWUuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OnJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZUJhdGNoKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxWaWRlb0ZyYW1lTWVzc2FnZT4mIG1zZ3MpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBmb3IgKGF1dG8mIG1zZyA6IG1zZ3MpIHsKKyAgICAgICAgcmVsZWFzZVJlY29yZGluZ0ZyYW1lTG9ja2VkKAorICAgICAgICAgICAgICAgIG1zZy5kYXRhLCBtc2cuYnVmZmVySW5kZXgsIG1zZy5mcmFtZURhdGEuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmF1dG9Gb2N1cygpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5hdXRvX2ZvY3VzKSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+YXV0b19mb2N1cyhtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6Y2FuY2VsQXV0b0ZvY3VzKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPmNhbmNlbF9hdXRvX2ZvY3VzKSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+Y2FuY2VsX2F1dG9fZm9jdXMobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnRha2VQaWN0dXJlKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnRha2VfcGljdHVyZSkgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnRha2VfcGljdHVyZShtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6Y2FuY2VsUGljdHVyZSgpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5jYW5jZWxfcGljdHVyZSkgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmNhbmNlbF9waWN0dXJlKG1EZXZpY2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfc3RyaW5nJiBwYXJhbXMpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zZXRfcGFyYW1ldGVycykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnNldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIHBhcmFtcy5jX3N0cigpKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmdldFBhcmFtZXRlcnMoZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGhpZGxfc3RyaW5nIG91dFN0cjsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIF9oaWRsX2NiKG91dFN0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPmdldF9wYXJhbWV0ZXJzKSB7CisgICAgICAgIGNoYXIgKnRlbXAgPSBtRGV2aWNlLT5vcHMtPmdldF9wYXJhbWV0ZXJzKG1EZXZpY2UpOworICAgICAgICBvdXRTdHIgPSB0ZW1wOworICAgICAgICBpZiAobURldmljZS0+b3BzLT5wdXRfcGFyYW1ldGVycykgeworICAgICAgICAgICAgbURldmljZS0+b3BzLT5wdXRfcGFyYW1ldGVycyhtRGV2aWNlLCB0ZW1wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZyZWUodGVtcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2Iob3V0U3RyKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnNlbmRDb21tYW5kKENvbW1hbmRUeXBlIGNtZCwgaW50MzJfdCBhcmcxLCBpbnQzMl90IGFyZzIpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zZW5kX2NvbW1hbmQpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT5zZW5kX2NvbW1hbmQobURldmljZSwgKGludDMyX3QpIGNtZCwgYXJnMSwgYXJnMikpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpjbG9zZSgpIHsKKyAgICBBTE9HSSgiQ2xvc2luZyBjYW1lcmEgJXMiLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZihtRGV2aWNlKSB7CisgICAgICAgIGludCByYyA9IG1EZXZpY2UtPmNvbW1vbi5jbG9zZSgmbURldmljZS0+Y29tbW9uKTsKKyAgICAgICAgaWYgKHJjICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiQ291bGQgbm90IGNsb3NlIGNhbWVyYSAlczogJWQiLCBtQ2FtZXJhSWQuY19zdHIoKSwgcmMpOworICAgICAgICB9CisgICAgICAgIG1EZXZpY2UgPSBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZV8xXzAuaCBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlXzFfMC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNWE0OWIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZV8xXzAuaApAQCAtMCwwICsxLDIzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YxXzBfQ0FNRVJBREVWSUNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YxXzBfQ0FNRVJBREVWSUNFX0gKKworI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSAidXRpbHMvTXV0ZXguaCIKKyNpbmNsdWRlICJ1dGlscy9Tb3J0ZWRWZWN0b3IuaCIKKyNpbmNsdWRlICJDYW1lcmFNb2R1bGUuaCIKKyNpbmNsdWRlICJIYW5kbGVJbXBvcnRlci5oIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OkNhbWVyYVJlc291cmNlQ29zdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6VG9yY2hNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTW9kdWxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6SGFuZGxlSW1wb3J0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Q2FtZXJhSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpDb21tYW5kVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2VDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6Ok1lbW9yeUlkOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBDYW1lcmFEZXZpY2UgOiBwdWJsaWMgSUNhbWVyYURldmljZSB7CisKKyAgICAvLyBDYWxsZWQgYnkgcHJvdmlkZXIgSEFMLiBQcm92aWRlciBIQUwgbXVzdCBlbnN1cmUgdGhlIHVuaXF1ZW5lc3Mgb2YKKyAgICAvLyBDYW1lcmFEZXZpY2Ugb2JqZWN0IHBlciBjYW1lcmFJZCwgb3IgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUgQ2FtZXJhRGV2aWNlCisgICAgLy8gdHJ5aW5nIHRvIGFjY2VzcyB0aGUgc2FtZSBwaHlzaWNhbCBjYW1lcmEuCisgICAgLy8gQWxzbywgcHJvdmlkZXIgd2lsbCBoYXZlIHRvIGtlZXAgdHJhY2sgb2YgYWxsIENhbWVyYURldmljZSBvYmplY3RzIGluCisgICAgLy8gb3JkZXIgdG8gbm90aWZ5IENhbWVyYURldmljZSB3aGVuIHRoZSB1bmRlcmx5aW5nIGNhbWVyYSBpcyBkZXRhY2hlZAorICAgIENhbWVyYURldmljZShzcDxDYW1lcmFNb2R1bGU+IG1vZHVsZSwKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNhbWVyYUlkLAorICAgICAgICAgICAgICAgICBjb25zdCBTb3J0ZWRWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4+JiBjYW1lcmFEZXZpY2VOYW1lcyk7CisgICAgfkNhbWVyYURldmljZSgpOworCisgICAgLy8gQ2FsbGVyIG11c3QgdXNlIHRoaXMgbWV0aG9kIHRvIGNoZWNrIGlmIENhbWVyYURldmljZSBjdG9yIGZhaWxlZAorICAgIGJvb2wgaXNJbml0RmFpbGVkKCkgeyByZXR1cm4gbUluaXRGYWlsOyB9CisgICAgLy8gVXNlZCBieSBwcm92aWRlciBIQUwgdG8gc2lnbmFsIGV4dGVybmFsIGNhbWVyYSBkaXNjb25uZWN0ZWQKKyAgICB2b2lkIHNldENvbm5lY3Rpb25TdGF0dXMoYm9vbCBjb25uZWN0ZWQpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENhbWVyYUluZm8oZ2V0Q2FtZXJhSW5mb19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2V0VG9yY2hNb2RlKFRvcmNoTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBkdW1wU3RhdGUoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBvcGVuKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRQcmV2aWV3V2luZG93KGNvbnN0IHNwPElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2s+JiB3aW5kb3cpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBlbmFibGVNc2dUeXBlKHVpbnQzMl90IG1zZ1R5cGUpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkaXNhYmxlTXNnVHlwZSh1aW50MzJfdCBtc2dUeXBlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gbXNnVHlwZUVuYWJsZWQodWludDMyX3QgbXNnVHlwZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc3RhcnRQcmV2aWV3KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0b3BQcmV2aWV3KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHByZXZpZXdFbmFibGVkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc3RvcmVNZXRhRGF0YUluQnVmZmVycyhib29sIGVuYWJsZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc3RhcnRSZWNvcmRpbmcoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc3RvcFJlY29yZGluZygpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiByZWNvcmRpbmdFbmFibGVkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlbGVhc2VSZWNvcmRpbmdGcmFtZSh1aW50MzJfdCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGUoCisgICAgICAgICAgICB1aW50MzJfdCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgsIGNvbnN0IGhpZGxfaGFuZGxlJiBmcmFtZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZUJhdGNoKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmlkZW9GcmFtZU1lc3NhZ2U+Jikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gYXV0b0ZvY3VzKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gY2FuY2VsQXV0b0ZvY3VzKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gdGFrZVBpY3R1cmUoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBjYW5jZWxQaWN0dXJlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3N0cmluZyYgcGFyYW1zKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycyhnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzZW5kQ29tbWFuZChDb21tYW5kVHlwZSBjbWQsIGludDMyX3QgYXJnMSwgaW50MzJfdCBhcmcyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xvc2UoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgQ2FtZXJhTWVtb3J5IDogcHVibGljIGNhbWVyYV9tZW1vcnlfdCB7CisgICAgICAgIE1lbW9yeUlkIG1JZDsKKyAgICAgICAgQ2FtZXJhRGV2aWNlKiBtRGV2aWNlOworICAgIH07CisKKyAgICBjbGFzcyBDYW1lcmFIZWFwTWVtb3J5IDogcHVibGljIFJlZkJhc2UgeworICAgIHB1YmxpYzoKKyAgICAgICAgQ2FtZXJhSGVhcE1lbW9yeShpbnQgZmQsIHNpemVfdCBidWZfc2l6ZSwgdWludF90IG51bV9idWZmZXJzID0gMSk7CisgICAgICAgIGV4cGxpY2l0IENhbWVyYUhlYXBNZW1vcnkoCisgICAgICAgICAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IsIHNpemVfdCBidWZfc2l6ZSwgdWludF90IG51bV9idWZmZXJzID0gMSk7CisgICAgICAgIHZvaWQgY29tbW9uSW5pdGlhbGl6YXRpb24oKTsKKyAgICAgICAgdmlydHVhbCB+Q2FtZXJhSGVhcE1lbW9yeSgpOworCisgICAgICAgIHNpemVfdCBtQnVmU2l6ZTsKKyAgICAgICAgdWludF90IG1OdW1CdWZzOworCisgICAgICAgIC8vIFNoYXJlZCBtZW1vcnkgcmVsYXRlZCBtZW1iZXJzCisgICAgICAgIGhpZGxfbWVtb3J5ICAgICAgbUhpZGxIZWFwOworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIG1IaWRsSGFuZGxlOyAvLyBjb250YWlucyBvbmUgc2hhcmVkIG1lbW9yeSBGRAorICAgICAgICB2b2lkKiAgICAgICAgICAgIG1IaWRsSGVhcE1lbURhdGE7CisgICAgICAgIHNwPElNZW1vcnk+ICAgICAgbUhpZGxIZWFwTWVtb3J5OyAvLyBtdW5tYXAgaGFwcGVucyBpbiB+SU1lbW9yeSgpCisKKyAgICAgICAgQ2FtZXJhTWVtb3J5IGhhbmRsZTsKKyAgICB9OworICAgIHNwPElBbGxvY2F0b3I+IG1Bc2htZW1BbGxvY2F0b3I7CisKKyAgICBjb25zdCBzcDxDYW1lcmFNb2R1bGU+IG1Nb2R1bGU7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcgbUNhbWVyYUlkOworICAgIC8vIGNvbnN0IGFmdGVyIGN0b3IKKyAgICBpbnQgICBtQ2FtZXJhSWRJbnQ7CisgICAgaW50ICAgbURldmljZVZlcnNpb247CisKKyAgICBjYW1lcmFfZGV2aWNlX3QqIG1EZXZpY2UgPSBudWxscHRyOworCisgICAgdm9pZCBpbml0SGFsUHJldmlld1dpbmRvdygpOworICAgIHN0cnVjdCBDYW1lcmFQcmV2aWV3V2luZG93IDogcHVibGljIHByZXZpZXdfc3RyZWFtX29wcyB7CisgICAgICAgIC8vIENhbGxlZCB3aGVuIHdlIGV4cGVjdCBidWZmZXIgd2lsbCBiZSByZS1hbGxvY2F0ZWQKKyAgICAgICAgdm9pZCBjbGVhblVwQ2lyY3VsYXRpbmdCdWZmZXJzKCk7CisKKyAgICAgICAgTXV0ZXggbUxvY2s7CisgICAgICAgIHNwPElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2s+IG1QcmV2aWV3Q2FsbGJhY2sgPSBudWxscHRyOworICAgICAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDY0X3QsIGJ1ZmZlcl9oYW5kbGVfdD4gbUNpcmN1bGF0aW5nQnVmZmVyczsKKyAgICAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGJ1ZmZlcl9oYW5kbGVfdCosIHVpbnQ2NF90PiBtQnVmZmVySWRNYXA7CisgICAgfSBtSGFsUHJldmlld1dpbmRvdzsKKworICAgIC8vIGdhdGluZyBhY2Nlc3MgdG8gbURldmljZSwgbUluaXRGYWlsLCBtRGlzY29ubmVjdGVkCisgICAgbXV0YWJsZSBNdXRleCBtTG9jazsKKworICAgIGJvb2wgIG1Jbml0RmFpbCA9IGZhbHNlOworICAgIC8vIFNldCBieSBwcm92aWRlciAod2hlbiBleHRlcm5hbCBjYW1lcmEgaXMgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZCkKKyAgICBib29sICBtRGlzY29ubmVjdGVkOworCisgICAgc3RhdGljIEhhbmRsZUltcG9ydGVyIHNIYW5kbGVJbXBvcnRlcjsKKworICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4mIG1DYW1lcmFEZXZpY2VOYW1lczsKKworICAgIHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4gbURldmljZUNhbGxiYWNrID0gbnVsbHB0cjsKKworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxNZW1vcnlJZCwgQ2FtZXJhSGVhcE1lbW9yeSo+IG1NZW1vcnlNYXA7CisKKyAgICBib29sIG1NZXRhZGF0YU1vZGUgPSBmYWxzZTsKKworICAgIG11dGFibGUgTXV0ZXggbUJhdGNoTG9jazsKKyAgICAvLyBTdGFydCBvZiBwcm90ZWN0aW9uIHNjb3BlIGZvciBtQmF0Y2hMb2NrCisgICAgdWludDMyX3QgbUJhdGNoU2l6ZSA9IDA7IC8vIDAgZm9yIG5vbi1iYXRjaCBtb2RlLCBzZXQgdG8gb3RoZXIgdmFsdWUgdG8gc3RhcnQgYmF0Y2hpbmcKKyAgICBpbnQzMl90IG1CYXRjaE1zZ1R5cGU7ICAgLy8gTWF5YmUgb25seSBhbGxvdyBEYXRhQ2FsbGJhY2tNc2c6OlZJREVPX0ZSQU1FPworICAgIHN0ZDo6dmVjdG9yPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+IG1JbmZsaWdodEJhdGNoOworICAgIC8vIEVuZCBvZiBwcm90ZWN0aW9uIHNjb3BlIGZvciBtQmF0Y2hMb2NrCisKKyAgICB2b2lkIGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKAorICAgICAgICAgICAgbnNlY3NfdCB0aW1lc3RhbXAsIGludDMyX3QgbXNnX3R5cGUsCisgICAgICAgICAgICBNZW1vcnlJZCBtZW1JZCAsIHVuc2lnbmVkIGluZGV4LCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSk7CisgICAgdm9pZCByZWxlYXNlUmVjb3JkaW5nRnJhbWVMb2NrZWQodWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBjb25zdCBuYXRpdmVfaGFuZGxlX3QqKTsKKworICAgIC8vIHNoYXJlZCBtZW1vcnkgbWV0aG9kcworICAgIHN0YXRpYyBjYW1lcmFfbWVtb3J5X3QqIHNHZXRNZW1vcnkoaW50IGZkLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmcywgdm9pZCAqdXNlcik7CisgICAgc3RhdGljIHZvaWQgc1B1dE1lbW9yeShjYW1lcmFfbWVtb3J5X3QgKmRhdGEpOworCisgICAgLy8gRGV2aWNlIGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcworICAgIHN0YXRpYyB2b2lkIHNOb3RpZnlDYihpbnQzMl90IG1zZ190eXBlLCBpbnQzMl90IGV4dDEsIGludDMyX3QgZXh0Miwgdm9pZCAqdXNlcik7CisgICAgc3RhdGljIHZvaWQgc0RhdGFDYihpbnQzMl90IG1zZ190eXBlLCBjb25zdCBjYW1lcmFfbWVtb3J5X3QgKmRhdGEsIHVuc2lnbmVkIGludCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbWVyYV9mcmFtZV9tZXRhZGF0YV90ICptZXRhZGF0YSwgdm9pZCAqdXNlcik7CisgICAgc3RhdGljIHZvaWQgc0RhdGFDYlRpbWVzdGFtcChuc2Vjc190IHRpbWVzdGFtcCwgaW50MzJfdCBtc2dfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZW1vcnlfdCAqZGF0YSwgdW5zaWduZWQgaW5kZXgsIHZvaWQgKnVzZXIpOworCisgICAgLy8gUHJldmlldyB3aW5kb3cgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzCisgICAgc3RhdGljIGludCBzRGVxdWV1ZUJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiogYnVmZmVyLCBpbnQgKnN0cmlkZSk7CisKKyAgICBzdGF0aWMgaW50IHNMb2NrQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGJ1ZmZlcl9oYW5kbGVfdCogYnVmZmVyKTsKKworICAgIHN0YXRpYyBpbnQgc0VucXVldWVCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgYnVmZmVyX2hhbmRsZV90KiBidWZmZXIpOworCisgICAgc3RhdGljIGludCBzQ2FuY2VsQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGJ1ZmZlcl9oYW5kbGVfdCogYnVmZmVyKTsKKworICAgIHN0YXRpYyBpbnQgc1NldEJ1ZmZlckNvdW50KHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGludCBjb3VudCk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRCdWZmZXJzR2VvbWV0cnkoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgZm9ybWF0KTsKKworICAgIHN0YXRpYyBpbnQgc1NldENyb3Aoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRUaW1lc3RhbXAoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50NjRfdCB0aW1lc3RhbXApOworCisgICAgc3RhdGljIGludCBzU2V0VXNhZ2Uoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgaW50IHVzYWdlKTsKKworICAgIHN0YXRpYyBpbnQgc1NldFN3YXBJbnRlcnZhbChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LCBpbnQgaW50ZXJ2YWwpOworCisgICAgc3RhdGljIGludCBzR2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50KGNvbnN0IHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludCAqY291bnQpOworCisgICAgLy8gY29udmVydCBjb252ZW50aW9uYWwgSEFMIHN0YXR1cyB0byBISURMIFN0YXR1cworICAgIHN0YXRpYyBTdGF0dXMgZ2V0SGlkbFN0YXR1cyhjb25zdCBpbnQmKTsKKyAgICBzdGF0aWMgc3RhdHVzX3QgZ2V0U3RhdHVzVChjb25zdCBTdGF0dXMmIHMpOworCisgICAgU3RhdHVzIGluaXRTdGF0dXMoKSBjb25zdDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkZXZpY2UKK30gIC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjFfMF9DQU1FUkFERVZJQ0VfSApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaGFsIGIvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNTIwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2VudW0gQ2FtZXJhRmFjaW5nIDogdWludDMyX3QgeworICAgIC8qKiBUaGUgZmFjaW5nIG9mIHRoZSBjYW1lcmEgaXMgb3Bwb3NpdGUgdG8gdGhhdCBvZiB0aGUgc2NyZWVuLiAqLworICAgIEJBQ0sgPSAwLAorICAgIC8qKiBUaGUgZmFjaW5nIG9mIHRoZSBjYW1lcmEgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgc2NyZWVuLiAqLworICAgIEZST05UID0gMSwKKyAgICAvKioKKyAgICAgKiBUaGUgZmFjaW5nIG9mIHRoZSBjYW1lcmEgaXMgbm90IGZpeGVkIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4uCisgICAgICogVGhlIGNhbWVyYXMgd2l0aCB0aGlzIGZhY2luZyBhcmUgZXh0ZXJuYWwgY2FtZXJhcywgZS5nLiBVU0IgY2FtZXJhcy4KKyAgICAgKi8KKyAgICBFWFRFUk5BTCA9IDIKK307CisKKy8qKgorICogQmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgYSBjYW1lcmEgZGV2aWNlLCBhbHdheXMgYWNjZXNzaWJsZSB2aWEKKyAqIElDYW1lcmFEZXZpY2U6OmdldENhbWVyYUluZm8oKS4KKyAqLworc3RydWN0IENhbWVyYUluZm8geworICAgIC8qKgorICAgICAqIFRoZSBkaXJlY3Rpb24gdGhhdCB0aGlzIGRldmljZSBmYWNlcy4KKyAgICAgKi8KKyAgICBDYW1lcmFGYWNpbmcgZmFjaW5nOworCisgICAgLyoqCisgICAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjYW1lcmEgaW1hZ2UuIFRoZSB2YWx1ZSBpcyB0aGUgYW5nbGUgdGhhdCB0aGUKKyAgICAgKiBjYW1lcmEgaW1hZ2UgbmVlZHMgdG8gYmUgcm90YXRlZCBjbG9ja3dpc2Ugc28gaXQgc2hvd3MgY29ycmVjdGx5IG9uIHRoZQorICAgICAqIGRpc3BsYXkgaW4gaXRzIG5hdHVyYWwgb3JpZW50YXRpb24uIEl0IG11c3QgYmUgMCwgOTAsIDE4MCwgb3IgMjcwLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIHN1cHBvc2UgYSBkZXZpY2UgaGFzIGEgbmF0dXJhbGx5IHRhbGwgc2NyZWVuLiBUaGUKKyAgICAgKiBiYWNrLWZhY2luZyBjYW1lcmEgc2Vuc29yIGlzIG1vdW50ZWQgaW4gbGFuZHNjYXBlLiBZb3UgYXJlIGxvb2tpbmcgYXQgdGhlCisgICAgICogc2NyZWVuLiBJZiB0aGUgdG9wIHNpZGUgb2YgdGhlIGNhbWVyYSBzZW5zb3IgaXMgYWxpZ25lZCB3aXRoIHRoZSByaWdodAorICAgICAqIGVkZ2Ugb2YgdGhlIHNjcmVlbiBpbiBuYXR1cmFsIG9yaWVudGF0aW9uLCB0aGUgdmFsdWUgbXVzdCBiZSA5MC4gSWYgdGhlCisgICAgICogdG9wIHNpZGUgb2YgYSBmcm9udC1mYWNpbmcgY2FtZXJhIHNlbnNvciBpcyBhbGlnbmVkIHdpdGggdGhlIHJpZ2h0IG9mIHRoZQorICAgICAqIHNjcmVlbiwgdGhlIHZhbHVlIG11c3QgYmUgMjcwLgorICAgICAqCisgICAgICogQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBtdXN0IGxlYXZlIHRoaXMgc2V0IHRvIDAuCisgICAgICoKKyAgICAgKi8KKyAgICB1aW50MzJfdCBvcmllbnRhdGlvbjsKKworfTsKKworLyoqCisgKiBNZXNzYWdlIHR5cGVzIGZvciBJQ2FtZXJhRGV2aWNlQDEuMDo6ZW5hYmxlTXNnVHlwZSgpL2Rpc2FibGVNc2dUeXBlKCkKKyAqCisgKiBBIHNldCBvZiBiaXQgbWFza3MgZm9yIHNwZWNpZnlpbmcgaG93IHRoZSByZWNlaXZlZCBwcmV2aWV3IGZyYW1lcyBhcmUKKyAqIGhhbmRsZWQgYmVmb3JlIHRoZSBwcmV2aWV3Q2FsbGJhY2soKSBjYWxsLgorICoKKyAqIFRoZSBsZWFzdCBzaWduaWZpY2FudCAzIGJpdHMgb2YgYW4gImludCIgdmFsdWUgYXJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZToKKyAqCisgKiAuLi4uLiAwIDAgMAorICogICAgICAgXiBeIF4KKyAqICAgICAgIHwgfCB8LS0tLS0tLS0tPiBkZXRlcm1pbmUgd2hldGhlciB0aGUgY2FsbGJhY2sgaXMgZW5hYmxlZCBvciBub3QKKyAqICAgICAgIHwgfC0tLS0tLS0tLS0tPiBkZXRlcm1pbmUgd2hldGhlciB0aGUgY2FsbGJhY2sgaXMgb25lLXNob3Qgb3Igbm90CisgKiAgICAgICB8LS0tLS0tLS0tLS0tLT4gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGZyYW1lIGlzIGNvcGllZCBvdXQgb3Igbm90CisgKgorICogV0FSTklORzogV2hlbiBhIGZyYW1lIGlzIHNlbnQgZGlyZWN0bHkgd2l0aG91dCBjb3B5aW5nLCBpdCBpcyB0aGUgZnJhbWUKKyAqIHJlY2VpdmVyJ3MgcmVzcG9uc2libGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZnJhbWUgZGF0YSB3b24ndCBnZXQKKyAqIGNvcnJ1cHRlZCBieSBzdWJzZXF1ZW50IHByZXZpZXcgZnJhbWVzIGZpbGxlZCBieSB0aGUgY2FtZXJhLiBUaGlzIGZsYWcgaXMKKyAqIHJlY29tbWVuZGVkIG9ubHkgd2hlbiBjb3B5aW5nIG91dCBkYXRhIGJyaW5ncyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBwcmljZQorICogYW5kIHRoZSBoYW5kbGluZy9wcm9jZXNzaW5nIG9mIHRoZSByZWNlaXZlZCBmcmFtZSBkYXRhIGlzIGFsd2F5cyBmYXN0ZXIgdGhhbgorICogdGhlIHByZXZpZXcgZnJhbWUgcmF0ZSBzbyB0aGF0IGRhdGEgY29ycnVwdGlvbiB3b24ndCBvY2N1ci4KKyAqCisgKiBGb3IgaW5zdGFuY2UsCisgKiAxLiAweDAwIGRpc2FibGVzIHRoZSBjYWxsYmFjay4gSW4gdGhpcyBjYXNlLCBjb3B5IG91dCBhbmQgb25lIHNob3QgYml0cworICogICAgYXJlIGlnbm9yZWQuCisgKiAyLiAweDAxIGVuYWJsZXMgYSBjYWxsYmFjayB3aXRob3V0IGNvcHlpbmcgb3V0IHRoZSByZWNlaXZlZCBmcmFtZXMuIEEKKyAqICAgIHR5cGljYWwgdXNlIGNhc2UgaXMgdGhlIENhbWNvcmRlciBhcHBsaWNhdGlvbiB0byBhdm9pZCBtYWtpbmcgY29zdGx5CisgKiAgICBmcmFtZSBjb3BpZXMuCisgKiAzLiAweDA1IGlzIGVuYWJsaW5nIGEgY2FsbGJhY2sgd2l0aCBmcmFtZSBjb3BpZWQgb3V0IHJlcGVhdGVkbHkuIEEgdHlwaWNhbAorICogICAgdXNlIGNhc2UgaXMgdGhlIENhbWVyYSBhcHBsaWNhdGlvbi4KKyAqIDQuIDB4MDcgaXMgZW5hYmxpbmcgYSBjYWxsYmFjayB3aXRoIGZyYW1lIGNvcGllZCBvdXQgb25seSBvbmNlLiBBIHR5cGljYWwKKyAqICAgIHVzZSBjYXNlIGlzIHRoZSBCYXJjb2RlIHNjYW5uZXIgYXBwbGljYXRpb24uCisgKi8KK2VudW0gRnJhbWVDYWxsYmFja0ZsYWcgOiB1aW50MzJfdCB7CisgICAgRU5BQkxFX01BU0sgPSAweDAxLAorICAgIE9ORV9TSE9UX01BU0sgPSAweDAyLAorICAgIENPUFlfT1VUX01BU0sgPSAweDA0LAorICAgIC8qKiBUeXBpY2FsIHVzZSBjYXNlcyAqLworICAgIE5PT1AgPSAweDAwLAorICAgIENBTUNPUkRFUiA9IDB4MDEsCisgICAgQ0FNRVJBID0gMHgwNSwKKyAgICBCQVJDT0RFX1NDQU5ORVIgPSAweDA3Cit9OworCit0eXBlZGVmIGJpdGZpZWxkPEZyYW1lQ2FsbGJhY2tGbGFnPiBGcmFtZUNhbGxiYWNrRmxhZ3M7CisKKy8qKgorICogU3Vic2V0IG9mIGNvbW1hbmRzIGluIC9zeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS9jYW1lcmEuaCByZWxldmFudCBmb3IKKyAqIElDYW1lcmFEZXZpY2VAMS4wOjpzZW5kQ29tbWFuZCgpCisgKi8KK2VudW0gQ29tbWFuZFR5cGUgOiB1aW50MzJfdCB7CisgICAgU1RBUlRfU01PT1RIX1pPT00gPSAxLAorICAgIFNUT1BfU01PT1RIX1pPT00gPSAyLAorCisgICAgLyoqCisgICAgICogU3RhcnQgdGhlIGZhY2UgZGV0ZWN0aW9uLiBUaGlzIG11c3QgYmUgY2FsbGVkIG9ubHkgYWZ0ZXIgcHJldmlldyBpcworICAgICAqIHN0YXJ0ZWQuICBUaGUgY2FtZXJhIG11c3Qgbm90aWZ5IHRoZSBsaXN0ZW5lciBvZiBDQU1FUkFfTVNHX0ZBQ0UgYW5kIHRoZQorICAgICAqIGRldGVjdGVkIGZhY2VzIGluIHRoZSBwcmV2aWV3IGZyYW1lLiBUaGUgZGV0ZWN0ZWQgZmFjZXMgbWF5IGJlIHRoZSBzYW1lCisgICAgICogYXMgdGhlIHByZXZpb3VzIG9uZXMuIEFwcHMgbXVzdCBjYWxsIENBTUVSQV9DTURfU1RPUF9GQUNFX0RFVEVDVElPTiB0bworICAgICAqIHN0b3AgdGhlIGZhY2UgZGV0ZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyBzdXBwb3J0ZWQgaWYgQ2FtZXJhUGFyYW1ldGVycworICAgICAqIEtFWV9NQVhfTlVNX0hXX0RFVEVDVEVEX0ZBQ0VTIG9yIEtFWV9NQVhfTlVNX1NXX0RFVEVDVEVEX0ZBQ0VTIGlzIGJpZ2dlcgorICAgICAqIHRoYW4gMC4gSGFyZHdhcmUgYW5kIHNvZnR3YXJlIGZhY2UgZGV0ZWN0aW9uIG11c3Qgbm90IGJlIHJ1bm5pbmcgYXQgdGhlCisgICAgICogc2FtZSB0aW1lLiBJZiB0aGUgZmFjZSBkZXRlY3Rpb24gaGFzIHN0YXJ0ZWQsIGFwcHMgbXVzdCBub3Qgc2VuZCB0aGlzCisgICAgICogYWdhaW4uCisgICAgICoKKyAgICAgKiBJbiBoYXJkd2FyZSBmYWNlIGRldGVjdGlvbiBtb2RlLCBDYW1lcmFQYXJhbWV0ZXJzIEtFWV9XSElURV9CQUxBTkNFLAorICAgICAqIEtFWV9GT0NVU19BUkVBUyBhbmQgS0VZX01FVEVSSU5HX0FSRUFTIGhhdmUgbm8gZWZmZWN0LgorICAgICAqCisgICAgICogYXJnMSBpcyB0aGUgZmFjZSBkZXRlY3Rpb24gdHlwZS4gSXQgY2FuIGJlIENBTUVSQV9GQUNFX0RFVEVDVElPTl9IVyBvcgorICAgICAqIENBTUVSQV9GQUNFX0RFVEVDVElPTl9TVy4gSWYgdGhlIHR5cGUgb2YgZmFjZSBkZXRlY3Rpb24gcmVxdWVzdGVkIGlzIG5vdAorICAgICAqIHN1cHBvcnRlZCwgdGhlIEhBTCBtdXN0IHJldHVybiBCQURfVkFMVUUuCisgICAgICovCisgICAgU1RBUlRfRkFDRV9ERVRFQ1RJT04gPSA2LAorCisgICAgLyoqCisgICAgICogU3RvcCB0aGUgZmFjZSBkZXRlY3Rpb24uCisgICAgICovCisgICAgU1RPUF9GQUNFX0RFVEVDVElPTiA9IDcsCisKKyAgICAvKioKKyAgICAgKiBFbmFibGUvZGlzYWJsZSBmb2N1cyBtb3ZlIGNhbGxiYWNrIChDQU1FUkFfTVNHX0ZPQ1VTX01PVkUpLiBQYXNzaW5nCisgICAgICogYXJnMSA9IDAgbXVzdCBkaXNhYmxlLCB3aGlsZSBwYXNzaW5nIGFyZzEgPSAxIG11c3QgZW5hYmxlIHRoZSBjYWxsYmFjay4KKyAgICAgKi8KKyAgICBFTkFCTEVfRk9DVVNfTU9WRV9NU0cgPSA4LAorCisgICAgLyoqCisgICAgICogQ29uZmlndXJlIGFuIGV4cGxpY2l0IGZvcm1hdCB0byB1c2UgZm9yIHZpZGVvIHJlY29yZGluZyBtZXRhZGF0YSBtb2RlLgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3dpdGNoIHRoZSBmb3JtYXQgZnJvbSB0aGUKKyAgICAgKiBkZWZhdWx0IElNUExFTUVOVEFUSU9OX0RFRklORUQgZ3JhbGxvYyBmb3JtYXQgdG8gc29tZSBvdGhlcgorICAgICAqIGRldmljZS1zdXBwb3J0ZWQgZm9ybWF0LCBhbmQgdGhlIGRlZmF1bHQgZGF0YXNwYWNlIGZyb20gdGhlIEJUXzcwOSBjb2xvcgorICAgICAqIHNwYWNlIHRvIHNvbWUgb3RoZXIgZGV2aWNlLXN1cHBvcnRlZCBkYXRhc3BhY2UuIGFyZzEgaXMgdGhlIEhBTCBwaXhlbAorICAgICAqIGZvcm1hdCwgYW5kIGFyZzIgaXMgdGhlIEhBTCBkYXRhU3BhY2UuIFRoaXMgY29tbWFuZCByZXR1cm5zCisgICAgICogSU5WQUxJRF9PUEVSQVRJT04gZXJyb3IgaWYgaXQgaXMgc2VudCBhZnRlciB2aWRlbyByZWNvcmRpbmcgaXMgc3RhcnRlZCwKKyAgICAgKiBvciB0aGUgY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIGF0IGFsbC4KKyAgICAgKgorICAgICAqIElmIHRoZSBncmFsbG9jIGZvcm1hdCBpcyBzZXQgdG8gYSBmb3JtYXQgb3RoZXIgdGhhbgorICAgICAqIElNUExFTUVOVEFUSU9OX0RFRklORUQsIHRoZW4gSEFMdjMgZGV2aWNlcyBtdXN0IHVzZSBncmFsbG9jIHVzYWdlIGZsYWdzCisgICAgICogb2YgU1dfUkVBRF9PRlRFTi4KKyAgICAgKi8KKyAgICBTRVRfVklERU9fRk9STUFUID0gMTEKK307CisKKy8qKgorICogTWVzc2FnZSB0eXBlcyBmb3IgSUNhbWVyYURldmljZTFDYWxsYmFjazo6bm90aWZ5Q2FsbGJhY2soKQorICovCitlbnVtIE5vdGlmeUNhbGxiYWNrTXNnIDogdWludDMyX3QgeworICAgIEVSUk9SID0gMHgwMDAxLAorICAgIFNIVVRURVIgPSAweDAwMDIsCisgICAgRk9DVVMgPSAweDAwMDQsCisgICAgWk9PTSA9IDB4MDAwOCwKKyAgICAvLyBOb3RpZnkgb24gYXV0b2ZvY3VzIHN0YXJ0IGFuZCBzdG9wLiBUaGlzIGlzIHVzZWZ1bCBpbiBjb250aW51b3VzCisgICAgLy8gYXV0b2ZvY3VzIC0gRk9DVVNfTU9ERV9DT05USU5VT1VTX1ZJREVPIGFuZCBGT0NVU19NT0RFX0NPTlRJTlVPVVNfUElDVFVSRS4KKyAgICBGT0NVU19NT1ZFID0gMHgwODAwCit9OworCisvKioKKyAqIE1lc3NhZ2UgdHlwZXMgZm9yIElDYW1lcmFEZXZpY2UxQ2FsbGJhY2s6OmRhdGFDYWxsYmFjaygpIGFuZAorICogSUNhbWVyYURldmljZTFDYWxsYmFjazo6ZGF0YUNhbGxiYWNrVGltZXN0YW1wKCkKKyAqLworZW51bSBEYXRhQ2FsbGJhY2tNc2cgOiB1aW50MzJfdCB7CisgICAgUFJFVklFV19GUkFNRSA9IDB4MDAxMCwKKyAgICBWSURFT19GUkFNRSA9IDB4MDAyMCwKKyAgICBQT1NUVklFV19GUkFNRSA9IDB4MDA0MCwKKyAgICBSQVdfSU1BR0UgPSAweDAwODAsCisgICAgQ09NUFJFU1NFRF9JTUFHRSA9IDB4MDEwMCwKKyAgICBSQVdfSU1BR0VfTk9USUZZID0gMHgwMjAwLAorICAgIC8vIFByZXZpZXcgZnJhbWUgbWV0YWRhdGEuIFRoaXMgY2FuIGJlIGNvbWJpbmVkIHdpdGgKKyAgICAvLyBDQU1FUkFfTVNHX1BSRVZJRVdfRlJBTUUgaW4gZGF0YUNhbGxiYWNrLiBGb3IgZXhhbXBsZSwgdGhlIGFwcHMgY2FuCisgICAgLy8gcmVxdWVzdCBGUkFNRSBhbmQgTUVUQURBVEEuIE9yIHRoZSBhcHBzIGNhbiByZXF1ZXN0IG9ubHkgRlJBTUUgb3Igb25seQorICAgIC8vIE1FVEFEQVRBLgorICAgIFBSRVZJRVdfTUVUQURBVEEgPSAweDA0MDAKK307CisKKy8qKgorICogSW5mb3JtYXRpb24gZm9yIGEgc2luZ2xlIGRldGVjdGVkIGZhY2UuCisgKi8KKyBzdHJ1Y3QgQ2FtZXJhRmFjZSB7CisgICAgLyoqCisgICAgICogQm91bmRzIG9mIHRoZSBmYWNlIFtsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b21dLiAoLTEwMDAsIC0xMDAwKSByZXByZXNlbnRzCisgICAgICogdGhlIHRvcC1sZWZ0IG9mIHRoZSBjYW1lcmEgZmllbGQgb2YgdmlldywgYW5kICgxMDAwLCAxMDAwKSByZXByZXNlbnRzIHRoZQorICAgICAqIGJvdHRvbS1yaWdodCBvZiB0aGUgZmllbGQgb2Ygdmlldy4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgY2Fubm90IGJlIDAgb3IKKyAgICAgKiBuZWdhdGl2ZS4gVGhpcyBpcyBzdXBwb3J0ZWQgYnkgYm90aCBoYXJkd2FyZSBhbmQgc29mdHdhcmUgZmFjZSBkZXRlY3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgZGlyZWN0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3Igb3JpZW50YXRpb24sIHRoYXQgaXMsIHdoYXQgdGhlCisgICAgICogc2Vuc29yIHNlZXMuIFRoZSBkaXJlY3Rpb24gaXMgbm90IGFmZmVjdGVkIGJ5IHRoZSByb3RhdGlvbiBvciBtaXJyb3JpbmcKKyAgICAgKiBvZiBDQU1FUkFfQ01EX1NFVF9ESVNQTEFZX09SSUVOVEFUSU9OLgorICAgICAqLworICAgIGludDMyX3RbNF0gcmVjdDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb25maWRlbmNlIGxldmVsIG9mIHRoZSBmYWNlLiBUaGUgcmFuZ2UgaXMgMSB0byAxMDAuIDEwMCBpcyB0aGUKKyAgICAgKiBoaWdoZXN0IGNvbmZpZGVuY2UuIFRoaXMgaXMgc3VwcG9ydGVkIGJ5IGJvdGggaGFyZHdhcmUgYW5kIHNvZnR3YXJlCisgICAgICogZmFjZSBkZXRlY3Rpb24uCisgICAgICovCisgICAgaW50MzJfdCBzY29yZTsKKworICAgIC8qKgorICAgICAqIEFuIHVuaXF1ZSBpZCBwZXIgZmFjZSB3aGlsZSB0aGUgZmFjZSBpcyB2aXNpYmxlIHRvIHRoZSB0cmFja2VyLiBJZgorICAgICAqIHRoZSBmYWNlIGxlYXZlcyB0aGUgZmllbGQtb2YtdmlldyBhbmQgY29tZXMgYmFjaywgaXQgd2lsbCBnZXQgYSBuZXcKKyAgICAgKiBpZC4gSWYgdGhlIHZhbHVlIGlzIDAsIGlkIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaW50MzJfdCBpZDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb29yZGluYXRlcyBvZiB0aGUgY2VudGVyIG9mIHRoZSBsZWZ0IGV5ZS4gVGhlIHJhbmdlIGlzIC0xMDAwIHRvCisgICAgICogMTAwMC4gLTIwMDAsIC0yMDAwIGlmIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBpbnQzMl90WzJdIGxlZnRFeWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgcmlnaHQgZXllLiBUaGUgcmFuZ2UgaXMgLTEwMDAgdG8KKyAgICAgKiAxMDAwLiAtMjAwMCwgLTIwMDAgaWYgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIGludDMyX3RbMl0gcmlnaHRFeWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgbW91dGguIFRoZSByYW5nZSBpcyAtMTAwMCB0byAxMDAwLgorICAgICAqIC0yMDAwLCAtMjAwMCBpZiB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaW50MzJfdFsyXSBtb3V0aDsKKworfTsKKworLyoqCisgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIGZyYW1lIGRhdGEsIHN1Y2ggYXMgZmFjZSBkZXRlY3Rpb24gcmVzdWx0LgorICovCitzdHJ1Y3QgQ2FtZXJhRnJhbWVNZXRhZGF0YSB7CisgICAgLyoqCisgICAgICogQSB2ZWN0b3Igb2YgdGhlIGRldGVjdGVkIGZhY2VzLgorICAgICAqLworICAgIHZlYzxDYW1lcmFGYWNlPiBmYWNlczsKK307CisKKy8qKgorICogQSBzaW1wbGUgaW50ZWdlciBoYW5kbGUgdG8gdXNlIHRvIHJlZmVyZW5jZSBhIHBhcnRpY3VsYXIgbWVtb3J5IGJ1ZmZlcgorICogYmV0d2VlbiB0aGUgSEFMIGFuZCB0aGUgZnJhbWV3b3JrLgorICovCit0eXBlZGVmIHVpbnQzMl90IE1lbW9yeUlkOworCisvKgorICogU3RydWN0IGNvbnRhaW5pbmcgYXJndW1lbnRzIG9mIElDYW1lcmFEZXZpY2VDYWxsYmFjazo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAuCisgKiBVc2VkIHRvIHNlbmQgYSBiYXRjaCBvZiBtZXNzYWdlcyBpbiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6OmhhbmRsZUNhbGxiYWNrVGltZXN0YW1wQmF0Y2guCisgKi8KK3N0cnVjdCBIYW5kbGVUaW1lc3RhbXBNZXNzYWdlIHsKKyAgICAvLyBUaGUgaGFuZGxlIG9mIGltYWdlIGJ1ZmZlciBkYXRhLgorICAgIGhhbmRsZSBmcmFtZURhdGE7CisKKyAgICAvLyBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhCisgICAgTWVtb3J5SWQgZGF0YTsKKworICAgIC8vIFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyIHN0YXJ0cy4KKyAgICB1aW50MzJfdCBidWZmZXJJbmRleDsKKworICAgIC8vIFRoZSB0aW1lIHRoaXMgYnVmZmVyIHdhcyBjYXB0dXJlZCBieSB0aGUgY2FtZXJhLCBpbiBuYW5vc2Vjb25kcworICAgIGludDY0X3QgdGltZXN0YW1wOworfTsKKworLyoKKyAqIFN0cnVjdCBjb250YWluaW5nIGFyZ3VtZW50cyBvZiBJQ2FtZXJhRGV2aWNlOjpyZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGUuCisgKiBVc2VkIGJ5IGNhbWVyYSBmcmFtZXdvcmsgdG8gc2VuZCBhIGJhdGNoIG9mIHJlY29yZGluZyBmcmFtZXMgYmFjayB0byBjYW1lcmEgSEFMLgorICovCitzdHJ1Y3QgVmlkZW9GcmFtZU1lc3NhZ2UgeworICAgIC8vIFRoZSBoYW5kbGUgb2YgaW1hZ2UgYnVmZmVyIGRhdGEuCisgICAgaGFuZGxlIGZyYW1lRGF0YTsKKworICAgIC8vIEEgbWVtb3J5IGhhbmRsZSB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEKKyAgICBNZW1vcnlJZCBkYXRhOworCisgICAgLy8gVGhlIG9mZnNldCBpbnRvIHRoZSBtZW1vcnkgaGFuZGxlIHdoZXJlIHRoZSBidWZmZXIgc3RhcnRzLgorICAgIHVpbnQzMl90IGJ1ZmZlckluZGV4OworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL0FuZHJvaWQuYnAgYi9jYW1lcmEvZGV2aWNlLzMuMi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYzgwYWIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODEgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklDYW1lcmFEZXZpY2VTZXNzaW9uLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0NhbWVyYURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9DYW1lcmFEZXZpY2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9DYW1lcmFEZXZpY2VTZXNzaW9uQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQm5Id0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnBId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnNDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JuSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnBId0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9Cc0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUh3Q2FtZXJhRGV2aWNlU2Vzc2lvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQm5Id0NhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JwSHdDYW1lcmFEZXZpY2VTZXNzaW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9Cc0NhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNTIzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmhhbApAQCAtMCwwICsxLDE5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworaW1wb3J0IElDYW1lcmFEZXZpY2VTZXNzaW9uOworaW1wb3J0IElDYW1lcmFEZXZpY2VDYWxsYmFjazsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTCwgZmlyc3QgbW9kZXJuIHZlcnNpb24KKyAqCisgKiBTdXBwb3J0cyB0aGUgYW5kcm9pZC5oYXJkd2FyZS5DYW1lcmEgQVBJLCBhbmQgdGhlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMgorICogQVBJIGF0IExJTUlURUQgb3IgYmV0dGVyIGhhcmR3YXJlIGxldmVsLgorICoKKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2UgeworCisgICAgLyoqCisgICAgICogR2V0IGNhbWVyYSBkZXZpY2UgcmVzb3VyY2UgY29zdCBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gc3VjY2VzcworICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgY2FtZXJhIEhBTCBlcnJvciBvY2N1cnJlZCwgYW5kIHRoZQorICAgICAqICAgICAgICAgcmVzb3VyY2UgY29zdCBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiByZXNvdXJjZUNvc3QKKyAgICAgKiAgICAgVGhlIHJlc291cmNlcyByZXF1aXJlZCB0byBvcGVuIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgdW5zcGVjaWZpZWQKKyAgICAgKiAgICAgdmFsdWVzIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICovCisgICAgZ2V0UmVzb3VyY2VDb3N0KCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFSZXNvdXJjZUNvc3QgcmVzb3VyY2VDb3N0KTsKKworICAgIC8qKgorICAgICAqIGdldENhbWVyYUNoYXJhY3RlcmlzdGljczoKKyAgICAgKgorICAgICAqIFJldHVybiB0aGUgc3RhdGljIGNhbWVyYSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLiBUaGlzCisgICAgICogaW5mb3JtYXRpb24gbWF5IG5vdCBjaGFuZ2UgYmV0d2VlbiBjb25zZWN1dGl2ZSBjYWxscy4KKyAgICAgKgorICAgICAqIFdoZW4gYW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGRpc2Nvbm5lY3RlZCwgaXRzIGNhbWVyYSBpZCBiZWNvbWVzCisgICAgICogaW52YWxpZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCB3aXRoIHRoaXMgaW52YWxpZCBjYW1lcmEgaWQgbXVzdCByZXN1bHQgaW4KKyAgICAgKiBJTExFR0FMX0FSR1VNRU5UOyB0aGlzIG1heSBoYXBwZW4gZXZlbiBiZWZvcmUgdGhlIGRldmljZSBzdGF0dXMgY2FsbGJhY2sKKyAgICAgKiBpcyBpbnZva2VkIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIHRoZSBjYW1lcmEgZGV2aWNlLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBiZSBvcGVuZWQgZHVlIHRvIGFuIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBhdmFpbGFibGUuIFRoaXMgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcKKyAgICAgKiAgICAgICAgIGluc3RhbmNlIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsCisgICAgICogICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuCisgICAgICogICAgICAgICBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqCisgICAgICogQHJldHVybiBjYW1lcmFDaGFyYWN0ZXJpc3RpY3MKKyAgICAgKiAgICAgVGhlIHN0YXRpYyBtZXRhZGF0YSBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLCBvciBhbiBlbXB0eSBtZXRhZGF0YQorICAgICAqICAgICBzdHJ1Y3R1cmUgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKgorICAgICAqLworICAgIGdldENhbWVyYUNoYXJhY3RlcmlzdGljcygpIGdlbmVyYXRlcworICAgICAgICAgICAgKFN0YXR1cyBzdGF0dXMsIENhbWVyYU1ldGFkYXRhIGNhbWVyYUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBzZXRUb3JjaE1vZGU6CisgICAgICoKKyAgICAgKiBUdXJuIG9uIG9yIG9mZiB0aGUgdG9yY2ggbW9kZSBvZiB0aGUgZmxhc2ggdW5pdCBhc3NvY2lhdGVkIHdpdGggdGhpcworICAgICAqIGNhbWVyYSBkZXZpY2UuIElmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bCwgSEFMIG11c3Qgbm90aWZ5IHRoZQorICAgICAqIGZyYW1ld29yayB0b3JjaCBzdGF0ZSBieSBpbnZva2luZworICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB3aXRoIHRoZSBuZXcgc3RhdGUuCisgICAgICoKKyAgICAgKiBBbiBhY3RpdmUgY2FtZXJhIHNlc3Npb24gaGFzIGEgaGlnaGVyIHByaW9yaXR5IGFjY2Vzc2luZyB0aGUgZmxhc2gKKyAgICAgKiB1bml0LiBXaGVuIHRoZXJlIGFyZSBhbnkgcmVzb3VyY2UgY29uZmxpY3RzLCBzdWNoIGFzIHdoZW4gb3BlbigpIGlzCisgICAgICogY2FsbGVkIHRvIGZ1bGx5IGFjdGl2YXRlIGEgY2FtZXJhIGRldmljZSwgdGhlIHByb3ZpZGVyIG11c3Qgbm90aWZ5IHRoZQorICAgICAqIGZyYW1ld29yayB0aHJvdWdoIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB0aGF0CisgICAgICogdGhlIHRvcmNoIG1vZGUgaGFzIGJlZW4gdHVybmVkIG9mZiBhbmQgdGhlIHRvcmNoIG1vZGUgc3RhdGUgaGFzIGJlY29tZQorICAgICAqIFRPUkNIX01PREVfU1RBVFVTX05PVF9BVkFJTEFCTEUuIFdoZW4gcmVzb3VyY2VzIHRvIHR1cm4gb24gdG9yY2ggbW9kZQorICAgICAqIGJlY29tZSBhdmFpbGFibGUgYWdhaW4sIHRoZSBwcm92aWRlciBtdXN0IG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRocm91Z2gKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgdGhhdCB0aGUgdG9yY2ggbW9kZQorICAgICAqIHN0YXRlIGhhcyBiZWNvbWUgVE9SQ0hfTU9ERV9TVEFUVVNfQVZBSUxBQkxFX09GRiBmb3Igc2V0X3RvcmNoX21vZGUoKSB0bworICAgICAqIGJlIGNhbGxlZC4KKyAgICAgKgorICAgICAqIFdoZW4gdGhlIGNsaWVudCBjYWxscyBzZXRUb3JjaE1vZGUoKSB0byB0dXJuIG9uIHRoZSB0b3JjaCBtb2RlIG9mIGEgZmxhc2gKKyAgICAgKiB1bml0LCBpZiB0aGUgSEFMIGNhbm5vdCBrZWVwIG11bHRpcGxlIHRvcmNoIG1vZGVzIG9uIHNpbXVsdGFuZW91c2x5LCB0aGUKKyAgICAgKiBIQUwgbXVzdCB0dXJuIG9mZiB0aGUgdG9yY2ggbW9kZShzKSB0aGF0IHdlcmUgdHVybmVkIG9uIGJ5IHByZXZpb3VzCisgICAgICogc2V0VG9yY2hNb2RlKCkgY2FsbHMgYW5kIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRoYXQgdGhlIHRvcmNoIG1vZGUgc3RhdGUKKyAgICAgKiBvZiB0aG9zZSBmbGFzaCB1bml0KHMpIGhhcyBiZWNvbWUgVE9SQ0hfTU9ERV9TVEFUVVNfQVZBSUxBQkxFX09GRi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0b3JjaE1vZGUgVGhlIG5ldyBtb2RlIHRvIHNldCB0aGUgZGV2aWNlIGZsYXNoIHVuaXQgdG8uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBjaGFuZ2UgdG8gdGhlIHRvcmNoIHN0YXRlCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGZsYXNoIHVuaXQgY2Fubm90IGJlIG9wZXJhdGVkIGR1ZSB0byBhbiB1bmV4cGVjdGVkIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgSUQgaXMgdW5rbm93bi4KKyAgICAgKiAgICAgQ0FNRVJBX0lOX1VTRToKKyAgICAgKiAgICAgICAgIFRoaXMgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBvcGVuZWQsIHNvIHRoZSB0b3JjaCBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgIGNvbnRyb2xsZWQgdW50aWwgaXQgaXMgY2xvc2VkLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBEdWUgdG8gb3RoZXIgY2FtZXJhIGRldmljZXMgYmVpbmcgb3Blbiwgb3IgZHVlIHRvIG90aGVyCisgICAgICogICAgICAgICByZXNvdXJjZSBjb25zdHJhaW50cywgdGhlIHRvcmNoIGNhbm5vdCBiZSBjb250cm9sbGVkIGN1cnJlbnRseS4KKyAgICAgKiAgICAgTUVUSE9EX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGlzIHByb3ZpZGVyIGRvZXMgbm90IHN1cHBvcnQgZGlyZWN0IG9wZXJhdGlvbiBvZiBmbGFzaGxpZ2h0CisgICAgICogICAgICAgICB0b3JjaCBtb2RlLiBUaGUgZnJhbWV3b3JrIG11c3Qgb3BlbiB0aGUgY2FtZXJhIGRldmljZSBhbmQgdHVybgorICAgICAqICAgICAgICAgdGhlIHRvcmNoIG9uIHRocm91Z2ggdGhlIGRldmljZSBpbnRlcmZhY2UuCisgICAgICogICAgIE9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGhhdmUgYSBmbGFzaCB1bml0LiBUaGlzIGNhbgorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQgaWYgYW5kIG9ubHkgaWYgYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSBpcworICAgICAqICAgICAgICAgZmFsc2UuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKgorICAgICAqLworICAgIHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIG9wZW46CisgICAgICoKKyAgICAgKiBQb3dlciBvbiBhbmQgaW5pdGlhbGl6ZSB0aGlzIGNhbWVyYSBkZXZpY2UgZm9yIGFjdGl2ZSB1c2UsIHJldHVybmluZyBhCisgICAgICogc2Vzc2lvbiBoYW5kbGUgZm9yIGFjdGl2ZSBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEludGVyZmFjZSB0byBpbnZva2UgYnkgdGhlIEhBTCBmb3IgZGV2aWNlIGFzeW5jaHJvbm91cworICAgICAqICAgICBldmVudHMuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgb3BlbiBvZiB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIGRldmljZSBjYW5ub3QgYmUgb3BlbmVkIGR1ZSB0byBhbiBpbnRlcm5hbAorICAgICAqICAgICAgICAgZXJyb3IuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FsbGJhY2tzIGhhbmRsZSBpcyBpbnZhbGlkIChmb3IgZXhhbXBsZSwgaXQgaXMgbnVsbCkuCisgICAgICogICAgIENBTUVSQV9JTl9VU0U6CisgICAgICogICAgICAgICBUaGlzIGNhbWVyYSBkZXZpY2UgaXMgYWxyZWFkeSBvcGVuLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBUaGUgbWF4aW1hbCBudW1iZXIgb2YgY2FtZXJhIGRldmljZXMgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgIG9wZW5lZCBjb25jdXJyZW50bHkgd2VyZSBvcGVuZWQgYWxyZWFkeS4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIFRoaXMgZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubworICAgICAqICAgICAgICAgbG9uZ2VyIGF2YWlsYWJsZS4gVGhpcyBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcgaW5zdGFuY2UKKyAgICAgKiAgICAgICAgIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsIHN1YnNlcXVlbnQKKyAgICAgKiAgICAgICAgIGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiBzZXNzaW9uIFRoZSBpbnRlcmZhY2UgdG8gdGhlIG5ld2x5LW9wZW5lZCBjYW1lcmEgc2Vzc2lvbiwKKyAgICAgKiAgICAgb3IgbnVsbCBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqLworICAgIG9wZW4oSUNhbWVyYURldmljZUNhbGxiYWNrIGNhbGxiYWNrKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLCBJQ2FtZXJhRGV2aWNlU2Vzc2lvbiBzZXNzaW9uKTsKKworICAgIC8qKgorICAgICAqIGR1bXBTdGF0ZToKKyAgICAgKgorICAgICAqIFByaW50IG91dCBkZWJ1Z2dpbmcgc3RhdGUgZm9yIHRoZSBjYW1lcmEgZGV2aWNlLiBUaGlzIG1heSBiZSBjYWxsZWQgYnkKKyAgICAgKiB0aGUgZnJhbWV3b3JrIHdoZW4gdGhlIGNhbWVyYSBzZXJ2aWNlIGlzIGFza2VkIGZvciBhIGRlYnVnIGR1bXAsIHdoaWNoCisgICAgICogaGFwcGVucyB3aGVuIHVzaW5nIHRoZSBkdW1wc3lzIHRvb2wsIG9yIHdoZW4gY2FwdHVyaW5nIGEgYnVncmVwb3J0LgorICAgICAqCisgICAgICogVGhlIHBhc3NlZC1pbiBmaWxlIGRlc2NyaXB0b3IgY2FuIGJlIHVzZWQgdG8gd3JpdGUgZGVidWdnaW5nIHRleHQgdXNpbmcKKyAgICAgKiBkcHJpbnRmKCkgb3Igd3JpdGUoKS4gVGhlIHRleHQgbXVzdCBiZSBpbiBBU0NJSSBlbmNvZGluZyBvbmx5LgorICAgICAqCisgICAgICogSW4gY2FzZSB0aGlzIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCB0aGUgZHVtcCBtdXN0IG5vdCBmYWlsLAorICAgICAqIGJ1dCBtYXkgc2ltcGx5IHByaW50IG91dCAnRGV2aWNlIGRpc2Nvbm5lY3RlZCcgb3IgZXF1aXZhbGVudC4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgbXVzdCBiZSBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgSEFMIHNob3VsZCByZXR1cm4gZnJvbSB0aGlzIGNhbGwKKyAgICAgKiBpbiAxbXMsIG11c3QgcmV0dXJuIGZyb20gdGhpcyBjYWxsIGluIDEwbXMuIFRoaXMgY2FsbCBtdXN0IGF2b2lkCisgICAgICogZGVhZGxvY2tzLCBhcyBpdCBtYXkgYmUgY2FsbGVkIGF0IGFueSBwb2ludCBkdXJpbmcgY2FtZXJhIG9wZXJhdGlvbi4KKyAgICAgKiBBbnkgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgdXNlZCAoc3VjaCBhcyBtdXRleCBsb2NrcyBvciBzZW1hcGhvcmVzKQorICAgICAqIG11c3QgYmUgYWNxdWlyZWQgd2l0aCBhIHRpbWVvdXQuCisgICAgICovCisgICAgZHVtcFN0YXRlKGhhbmRsZSBmZCk7CisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaGFsIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTcxNWRlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworCisvKioKKyAqCisgKiBDYWxsYmFjayBtZXRob2RzIGZvciB0aGUgSEFMIHRvIGNhbGwgaW50byB0aGUgZnJhbWV3b3JrLgorICoKKyAqIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gcmV0dXJuIG1ldGFkYXRhIGFuZCBpbWFnZSBidWZmZXJzIGZvciBhIGNvbXBsZXRlZAorICogb3IgZmFpbGVkIGNhcHR1cmVzLCBhbmQgdG8gbm90aWZ5IHRoZSBmcmFtZXdvcmsgb2YgYXN5bmNocm9ub3VzIGV2ZW50cyBzdWNoCisgKiBhcyBlcnJvcnMuCisgKgorICogVGhlIGZyYW1ld29yayBtdXN0IG5vdCBjYWxsIGJhY2sgaW50byB0aGUgSEFMIGZyb20gd2l0aGluIHRoZXNlIGNhbGxiYWNrcywKKyAqIGFuZCB0aGVzZSBjYWxscyBtdXN0IG5vdCBibG9jayBmb3IgZXh0ZW5kZWQgcGVyaW9kcy4KKyAqCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQ6CisgICAgICoKKyAgICAgKiBTZW5kIHJlc3VsdHMgZnJvbSBvbmUgb3IgbW9yZSBjb21wbGV0ZWQgb3IgcGFydGlhbGx5IGNvbXBsZXRlZCBjYXB0dXJlcworICAgICAqIHRvIHRoZSBmcmFtZXdvcmsuCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSBtYXkgYmUgaW52b2tlZCBtdWx0aXBsZSB0aW1lcyBieSB0aGUgSEFMIGluCisgICAgICogcmVzcG9uc2UgdG8gYSBzaW5nbGUgY2FwdHVyZSByZXF1ZXN0LiBUaGlzIGFsbG93cywgZm9yIGV4YW1wbGUsIHRoZQorICAgICAqIG1ldGFkYXRhIGFuZCBsb3ctcmVzb2x1dGlvbiBidWZmZXJzIHRvIGJlIHJldHVybmVkIGluIG9uZSBjYWxsLCBhbmQKKyAgICAgKiBwb3N0LXByb2Nlc3NlZCBKUEVHIGJ1ZmZlcnMgaW4gYSBsYXRlciBjYWxsLCBvbmNlIGl0IGlzIGF2YWlsYWJsZS4gRWFjaAorICAgICAqIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSBmcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgaXQgaXMgcmV0dXJuaW5nCisgICAgICogbWV0YWRhdGEgb3IgYnVmZmVycyBmb3IuIE9ubHkgb25lIGNhbGwgdG8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQKKyAgICAgKiBtYXkgYmUgbWFkZSBhdCBhIHRpbWUgYnkgdGhlIEhBTCBhbHRob3VnaCB0aGUgY2FsbHMgbWF5IGNvbWUgZnJvbQorICAgICAqIGRpZmZlcmVudCB0aHJlYWRzIGluIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBBIGNvbXBvbmVudCAoYnVmZmVyIG9yIG1ldGFkYXRhKSBvZiB0aGUgY29tcGxldGUgcmVzdWx0IG1heSBvbmx5IGJlCisgICAgICogaW5jbHVkZWQgaW4gb25lIHByb2Nlc3NfY2FwdHVyZV9yZXN1bHQgY2FsbC4gQSBidWZmZXIgZm9yIGVhY2ggc3RyZWFtLAorICAgICAqIGFuZCB0aGUgcmVzdWx0IG1ldGFkYXRhLCBtdXN0IGJlIHJldHVybmVkIGJ5IHRoZSBIQUwgZm9yIGVhY2ggcmVxdWVzdCBpbgorICAgICAqIG9uZSBvZiB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbHMsIGV2ZW4gaW4gY2FzZSBvZiBlcnJvcnMgcHJvZHVjaW5nCisgICAgICogc29tZSBvZiB0aGUgb3V0cHV0LiBBIGNhbGwgdG8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSB3aXRoIG5laXRoZXIKKyAgICAgKiBvdXRwdXQgYnVmZmVycyBvciByZXN1bHQgbWV0YWRhdGEgaXMgbm90IGFsbG93ZWQuCisgICAgICoKKyAgICAgKiBUaGUgb3JkZXIgb2YgcmV0dXJuaW5nIG1ldGFkYXRhIGFuZCBidWZmZXJzIGZvciBhIHNpbmdsZSByZXN1bHQgZG9lcyBub3QKKyAgICAgKiBtYXR0ZXIsIGJ1dCBidWZmZXJzIGZvciBhIGdpdmVuIHN0cmVhbSBtdXN0IGJlIHJldHVybmVkIGluIEZJRk8gb3JkZXIuIFNvCisgICAgICogdGhlIGJ1ZmZlciBmb3IgcmVxdWVzdCA1IGZvciBzdHJlYW0gQSBtdXN0IGFsd2F5cyBiZSByZXR1cm5lZCBiZWZvcmUgdGhlCisgICAgICogYnVmZmVyIGZvciByZXF1ZXN0IDYgZm9yIHN0cmVhbSBBLiBUaGlzIGFsc28gYXBwbGllcyB0byB0aGUgcmVzdWx0CisgICAgICogbWV0YWRhdGE7IHRoZSBtZXRhZGF0YSBmb3IgcmVxdWVzdCA1IG11c3QgYmUgcmV0dXJuZWQgYmVmb3JlIHRoZSBtZXRhZGF0YQorICAgICAqIGZvciByZXF1ZXN0IDYuCisgICAgICoKKyAgICAgKiBIb3dldmVyLCBkaWZmZXJlbnQgc3RyZWFtcyBhcmUgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlciwgc28gaXQgaXMKKyAgICAgKiBhY2NlcHRhYmxlIGFuZCBleHBlY3RlZCB0aGF0IHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNSBmb3Igc3RyZWFtIEEgbWF5IGJlCisgICAgICogcmV0dXJuZWQgYWZ0ZXIgdGhlIGJ1ZmZlciBmb3IgcmVxdWVzdCA2IGZvciBzdHJlYW0gQiBpcy4gQW5kIGl0IGlzCisgICAgICogYWNjZXB0YWJsZSB0aGF0IHRoZSByZXN1bHQgbWV0YWRhdGEgZm9yIHJlcXVlc3QgNiBmb3Igc3RyZWFtIEIgaXMKKyAgICAgKiByZXR1cm5lZCBiZWZvcmUgdGhlIGJ1ZmZlciBmb3IgcmVxdWVzdCA1IGZvciBzdHJlYW0gQSBpcy4gSWYgbXVsdGlwbGUKKyAgICAgKiBjYXB0dXJlIHJlc3VsdHMgYXJlIGluY2x1ZGVkIGluIGEgc2luZ2xlIGNhbGwsIGNhbWVyYSBmcmFtZXdvcmsgbXVzdAorICAgICAqIHByb2Nlc3MgcmVzdWx0cyBzZXF1ZW50aWFsbHkgZnJvbSBsb3dlciBpbmRleCB0byBoaWdoZXIgaW5kZXgsIGFzIGlmCisgICAgICogdGhlc2UgcmVzdWx0cyB3ZXJlIHNlbnQgdG8gY2FtZXJhIGZyYW1ld29yayBvbmUgYnkgb25lLCBmcm9tIGxvd2VyIGluZGV4CisgICAgICogdG8gaGlnaGVyIGluZGV4LgorICAgICAqCisgICAgICogVGhlIEhBTCByZXRhaW5zIG93bmVyc2hpcCBvZiByZXN1bHQgc3RydWN0dXJlLCB3aGljaCBvbmx5IG5lZWRzIHRvIGJlCisgICAgICogdmFsaWQgdG8gYWNjZXNzIGR1cmluZyB0aGlzIGNhbGwuCisgICAgICoKKyAgICAgKiBUaGUgb3V0cHV0IGJ1ZmZlcnMgZG8gbm90IG5lZWQgdG8gYmUgZmlsbGVkIHlldDsgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQKKyAgICAgKiBvbiB0aGUgc3RyZWFtIGJ1ZmZlciByZWxlYXNlIHN5bmMgZmVuY2UgYmVmb3JlIHJlYWRpbmcgdGhlIGJ1ZmZlcgorICAgICAqIGRhdGEuIFRoZXJlZm9yZSwgdGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgSEFMIGFzIHNvb24gYXMKKyAgICAgKiBwb3NzaWJsZSwgZXZlbiBpZiBzb21lIG9yIGFsbCBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMgYXJlIHN0aWxsIGluCisgICAgICogYmVpbmcgZmlsbGVkLiBUaGUgSEFMIG11c3QgaW5jbHVkZSB2YWxpZCByZWxlYXNlIHN5bmMgZmVuY2VzIGludG8gZWFjaAorICAgICAqIG91dHB1dF9idWZmZXJzIHN0cmVhbSBidWZmZXIgZW50cnksIG9yIC0xIGlmIHRoYXQgc3RyZWFtIGJ1ZmZlciBpcworICAgICAqIGFscmVhZHkgZmlsbGVkLgorICAgICAqCisgICAgICogSWYgdGhlIHJlc3VsdCBidWZmZXIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZvciBhIHJlcXVlc3QsIHRoZSBIQUwgbXVzdAorICAgICAqIHJldHVybiBhbiBlbXB0eSBtZXRhZGF0YSBidWZmZXIsIGJ1dCBzdGlsbCBwcm92aWRlIHRoZSBvdXRwdXQgYnVmZmVycyBhbmQKKyAgICAgKiB0aGVpciBzeW5jIGZlbmNlcy4gSW4gYWRkaXRpb24sIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGggYW4KKyAgICAgKiBFUlJPUl9SRVNVTFQgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIElmIGFuIG91dHB1dCBidWZmZXIgY2Fubm90IGJlIGZpbGxlZCwgaXRzIHN0YXR1cyBmaWVsZCBtdXN0IGJlIHNldCB0bworICAgICAqIFNUQVRVU19FUlJPUi4gSW4gYWRkaXRpb24sIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBFUlJPUl9CVUZGRVIKKyAgICAgKiBtZXNzYWdlLgorICAgICAqCisgICAgICogSWYgdGhlIGVudGlyZSBjYXB0dXJlIGhhcyBmYWlsZWQsIHRoZW4gdGhpcyBtZXRob2Qgc3RpbGwgbmVlZHMgdG8gYmUKKyAgICAgKiBjYWxsZWQgdG8gcmV0dXJuIHRoZSBvdXRwdXQgYnVmZmVycyB0byB0aGUgZnJhbWV3b3JrLiBBbGwgdGhlIGJ1ZmZlcgorICAgICAqIHN0YXR1c2VzIG11c3QgYmUgU1RBVFVTX0VSUk9SLCBhbmQgdGhlIHJlc3VsdCBtZXRhZGF0YSBtdXN0IGJlIGFuCisgICAgICogZW1wdHkgYnVmZmVyLiBJbiBhZGRpdGlvbiwgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIEVSUk9SX1JFUVVFU1QKKyAgICAgKiBtZXNzYWdlLiBJbiB0aGlzIGNhc2UsIGluZGl2aWR1YWwgRVJST1JfUkVTVUxUL0VSUk9SX0JVRkZFUiBtZXNzYWdlcworICAgICAqIG11c3Qgbm90IGJlIHNlbnQuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgbm9uLWJsb2NraW5nIGNhbGwuIFRoZSBmcmFtZXdvcmsgbXVzdCBoYW5kbGUgZWFjaCBDYXB0dXJlUmVzdWx0CisgICAgICogd2l0aGluIDVtcy4KKyAgICAgKgorICAgICAqIFRoZSBwaXBlbGluZSBsYXRlbmN5IChzZWUgUzcgZm9yIGRlZmluaXRpb24pIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA0IGZyYW1lIGludGVydmFscywgYW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDggZnJhbWUgaW50ZXJ2YWxzLgorICAgICAqCisgICAgICovCisgICAgcHJvY2Vzc0NhcHR1cmVSZXN1bHQodmVjPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHMpOworCisgICAgLyoqCisgICAgICogbm90aWZ5OgorICAgICAqCisgICAgICogQXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbiBjYWxsYmFjayBmcm9tIHRoZSBIQUwsIGZpcmVkIGZvciB2YXJpb3VzCisgICAgICogcmVhc29ucy4gT25seSBmb3IgaW5mb3JtYXRpb24gaW5kZXBlbmRlbnQgb2YgZnJhbWUgY2FwdHVyZSwgb3IgdGhhdAorICAgICAqIHJlcXVpcmUgc3BlY2lmaWMgdGltaW5nLiBNdWx0aXBsZSBtZXNzYWdlcyBtYXkgYmUgc2VudCBpbiBvbmUgY2FsbDsgYQorICAgICAqIG1lc3NhZ2Ugd2l0aCBhIGhpZ2hlciBpbmRleCBtdXN0IGJlIGNvbnNpZGVyZWQgdG8gaGF2ZSBvY2N1cnJlZCBhZnRlciBhCisgICAgICogbWVzc2FnZSB3aXRoIGEgbG93ZXIgaW5kZXguCisgICAgICoKKyAgICAgKiBNdWx0aXBsZSB0aHJlYWRzIG1heSBjYWxsIG5vdGlmeSgpIHNpbXVsdGFuZW91c2x5LgorICAgICAqCisgICAgICogQnVmZmVycyBkZWxpdmVyZWQgdG8gdGhlIGZyYW1ld29yayBtdXN0IG5vdCBiZSBkaXNwYXRjaGVkIHRvIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGxheWVyIHVudGlsIGEgc3RhcnQgb2YgZXhwb3N1cmUgdGltZXN0YW1wIChvciBpbnB1dCBpbWFnZSdzCisgICAgICogc3RhcnQgb2YgZXhwb3N1cmUgdGltZXN0YW1wIGZvciBhIHJlcHJvY2VzcyByZXF1ZXN0KSBoYXMgYmVlbiByZWNlaXZlZAorICAgICAqIHZpYSBhIFNIVVRURVIgbm90aWZ5KCkgY2FsbC4gSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIGRpc3BhdGNoIHRoaXMKKyAgICAgKiBjYWxsIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogUGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzOgorICAgICAqCisgICAgICogVGhpcyBpcyBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgZnJhbWV3b3JrIG11c3QgaGFuZGxlIGVhY2ggbWVzc2FnZSBpbiA1bXMuCisgICAgICovCisgICAgbm90aWZ5KHZlYzxOb3RpZnlNc2c+IG1zZ3MpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaGFsIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3N2EzY2MKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oYWwKQEAgLTAsMCArMSw0MDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIGFjdGl2ZSBzZXNzaW9uIGludGVyZmFjZS4KKyAqCisgKiBPYnRhaW5lZCB2aWEgSUNhbWVyYURldmljZTo6b3BlbigpLCB0aGlzIGludGVyZmFjZSBjb250YWlucyB0aGUgbWV0aG9kcyB0bworICogY29uZmlndXJlIGFuZCByZXF1ZXN0IGNhcHR1cmVzIGZyb20gYW4gYWN0aXZlIGNhbWVyYSBkZXZpY2UuCisgKgorICovCitpbnRlcmZhY2UgSUNhbWVyYURldmljZVNlc3Npb24geworCisgICAgLyoqCisgICAgICogY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nczoKKyAgICAgKgorICAgICAqIENyZWF0ZSBjYXB0dXJlIHNldHRpbmdzIGZvciBzdGFuZGFyZCBjYW1lcmEgdXNlIGNhc2VzLgorICAgICAqCisgICAgICogVGhlIGRldmljZSBtdXN0IHJldHVybiBhIHNldHRpbmdzIGJ1ZmZlciB0aGF0IGlzIGNvbmZpZ3VyZWQgdG8gbWVldCB0aGUKKyAgICAgKiByZXF1ZXN0ZWQgdXNlIGNhc2UsIHdoaWNoIG11c3QgYmUgb25lIG9mIHRoZSBDQU1FUkEzX1RFTVBMQVRFXyoKKyAgICAgKiBlbnVtcy4gQWxsIHJlcXVlc3QgY29udHJvbCBmaWVsZHMgbXVzdCBiZSBpbmNsdWRlZC4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgbXVzdCBiZSBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgSEFMIHNob3VsZCByZXR1cm4gZnJvbSB0aGlzIGNhbGwKKyAgICAgKiBpbiAxbXMsIGFuZCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiA1bXMuCisgICAgICoKKyAgICAgKiBSZXR1cm4gdmFsdWVzOgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIGNvbnN0cnVjdGlvbiBvZiBkZWZhdWx0IHNldHRpbmdzLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQsIGFuZCB0aGUgZGVmYXVsdCBzZXR0aW5ncworICAgICAqICAgICAgICAgYXJlIG5vdCBhdmFpbGFibGUuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIEhBTCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBpbnB1dCB0ZW1wbGF0ZSB0eXBlCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKiBAcmV0dXJuIHRlbXBsYXRlIFRoZSBkZWZhdWx0IGNhcHR1cmUgcmVxdWVzdCBzZXR0aW5ncyBmb3IgdGhlIHJlcXVlc3RlZAorICAgICAqICAgICB1c2UgY2FzZSwgb3IgYW4gZW1wdHkgbWV0YWRhdGEgc3RydWN0dXJlIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICoKKyAgICAgKi8KKyAgICBjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKFJlcXVlc3RUZW1wbGF0ZSB0eXBlKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFNZXRhZGF0YSByZXF1ZXN0VGVtcGxhdGUpOworCisgICAgLyoqCisgICAgICogY29uZmlndXJlU3RyZWFtczoKKyAgICAgKgorICAgICAqIFJlc2V0IHRoZSBIQUwgY2FtZXJhIGRldmljZSBwcm9jZXNzaW5nIHBpcGVsaW5lIGFuZCBzZXQgdXAgbmV3IGlucHV0IGFuZAorICAgICAqIG91dHB1dCBzdHJlYW1zLiBUaGlzIGNhbGwgcmVwbGFjZXMgYW55IGV4aXN0aW5nIHN0cmVhbSBjb25maWd1cmF0aW9uIHdpdGgKKyAgICAgKiB0aGUgc3RyZWFtcyBkZWZpbmVkIGluIHRoZSBzdHJlYW1MaXN0LiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBhdAorICAgICAqIGxlYXN0IG9uY2UgYmVmb3JlIGEgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKS4KKyAgICAgKgorICAgICAqIFRoZSBzdHJlYW1MaXN0IG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgb3V0cHV0LWNhcGFibGUgc3RyZWFtLCBhbmQgbWF5CisgICAgICogbm90IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBpbnB1dC1jYXBhYmxlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIFRoZSBzdHJlYW1MaXN0IG1heSBjb250YWluIHN0cmVhbXMgdGhhdCBhcmUgYWxzbyBpbiB0aGUgY3VycmVudGx5LWFjdGl2ZQorICAgICAqIHNldCBvZiBzdHJlYW1zIChmcm9tIHRoZSBwcmV2aW91cyBjYWxsIHRvIGNvbmZpZ3VyZVN0cmVhbXMoKSkuIFRoZXNlCisgICAgICogc3RyZWFtcyBtdXN0IGFscmVhZHkgaGF2ZSB2YWxpZCB2YWx1ZXMgZm9yIHVzYWdlLCBtYXhCdWZmZXJzLCBhbmQgdGhlCisgICAgICogcHJpdmF0ZSBwb2ludGVyLgorICAgICAqCisgICAgICogSWYgdGhlIEhBTCBuZWVkcyB0byBjaGFuZ2UgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9uIGZvciBhbiBleGlzdGluZworICAgICAqIHN0cmVhbSBkdWUgdG8gdGhlIG5ldyBjb25maWd1cmF0aW9uLCBpdCBtYXkgcmV3cml0ZSB0aGUgdmFsdWVzIG9mIHVzYWdlCisgICAgICogYW5kL29yIG1heEJ1ZmZlcnMgZHVyaW5nIHRoZSBjb25maWd1cmUgY2FsbC4KKyAgICAgKgorICAgICAqIFRoZSBmcmFtZXdvcmsgbXVzdCBkZXRlY3Qgc3VjaCBhIGNoYW5nZSwgYW5kIG1heSB0aGVuIHJlYWxsb2NhdGUgdGhlCisgICAgICogc3RyZWFtIGJ1ZmZlcnMgYmVmb3JlIHVzaW5nIGJ1ZmZlcnMgZnJvbSB0aGF0IHN0cmVhbSBpbiBhIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBJZiBhIGN1cnJlbnRseS1hY3RpdmUgc3RyZWFtIGlzIG5vdCBpbmNsdWRlZCBpbiBzdHJlYW1MaXN0LCB0aGUgSEFMIG1heQorICAgICAqIHNhZmVseSByZW1vdmUgYW55IHJlZmVyZW5jZXMgdG8gdGhhdCBzdHJlYW0uIEl0IG11c3Qgbm90IGJlIHJldXNlZCBpbiBhCisgICAgICogbGF0ZXIgY29uZmlndXJlU3RyZWFtcygpIGNhbGwgYnkgdGhlIGZyYW1ld29yaywgYW5kIGFsbCB0aGUgZ3JhbGxvYworICAgICAqIGJ1ZmZlcnMgZm9yIGl0IG11c3QgYmUgZnJlZWQgYWZ0ZXIgdGhlIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIHJldHVybnMuCisgICAgICoKKyAgICAgKiBJZiB0aGUgc3RyZWFtIGlzIG5ldywgdGhlIG1heEJ1ZmZlciBmaWVsZCBvZiB0aGUgc3RyZWFtIHN0cnVjdHVyZSBtdXN0IGJlCisgICAgICogc2V0IHRvIDAuIFRoZSB1c2FnZSBtdXN0IGJlIHNldCB0byB0aGUgY29uc3VtZXIgdXNhZ2UgZmxhZ3MuIFRoZSBIQUwKKyAgICAgKiBkZXZpY2UgbXVzdCBzZXQgdGhlc2UgZmllbGRzIGluIHRoZSBjb25maWd1cmVTdHJlYW1zKCkgcmV0dXJuIHZhbHVlcy4KKyAgICAgKiBUaGVzZSBmaWVsZHMgYXJlIHRoZW4gdXNlZCBieSB0aGUgZnJhbWV3b3JrIGFuZCB0aGUgcGxhdGZvcm0gZ3JhbGxvYworICAgICAqIG1vZHVsZSB0byBhbGxvY2F0ZSB0aGUgZ3JhbGxvYyBidWZmZXJzIGZvciBlYWNoIHN0cmVhbS4KKyAgICAgKgorICAgICAqIE5ld2x5IGFsbG9jYXRlZCBidWZmZXJzIG1heSBiZSBpbmNsdWRlZCBpbiBhIGNhcHR1cmUgcmVxdWVzdCBhdCBhbnkgdGltZQorICAgICAqIGJ5IHRoZSBmcmFtZXdvcmsuIE9uY2UgYSBncmFsbG9jIGJ1ZmZlciBpcyByZXR1cm5lZCB0byB0aGUgZnJhbWV3b3JrCisgICAgICogd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCAoYW5kIGl0cyByZXNwZWN0aXZlIHJlbGVhc2VGZW5jZSBoYXMgYmVlbgorICAgICAqIHNpZ25hbGVkKSB0aGUgZnJhbWV3b3JrIG1heSBmcmVlIG9yIHJldXNlIGl0IGF0IGFueSB0aW1lLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiBQcmVjb25kaXRpb25zOgorICAgICAqCisgICAgICogVGhlIGZyYW1ld29yayBtdXN0IG9ubHkgY2FsbCB0aGlzIG1ldGhvZCB3aGVuIG5vIGNhcHR1cmVzIGFyZSBiZWluZworICAgICAqIHByb2Nlc3NlZC4gVGhhdCBpcywgYWxsIHJlc3VsdHMgaGF2ZSBiZWVuIHJldHVybmVkIHRvIHRoZSBmcmFtZXdvcmssIGFuZAorICAgICAqIGFsbCBpbi1mbGlnaHQgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGhhdmUgYmVlbiByZXR1cm5lZCBhbmQgdGhlaXIKKyAgICAgKiByZWxlYXNlIHN5bmMgZmVuY2VzIGhhdmUgYmVlbiBzaWduYWxlZCBieSB0aGUgSEFMLiBUaGUgZnJhbWV3b3JrIG11c3Qgbm90CisgICAgICogc3VibWl0IG5ldyByZXF1ZXN0cyBmb3IgY2FwdHVyZSB3aGlsZSB0aGUgY29uZmlndXJlU3RyZWFtcygpIGNhbGwgaXMKKyAgICAgKiB1bmRlcndheS4KKyAgICAgKgorICAgICAqIFBvc3Rjb25kaXRpb25zOgorICAgICAqCisgICAgICogVGhlIEhBTCBkZXZpY2UgbXVzdCBjb25maWd1cmUgaXRzZWxmIHRvIHByb3ZpZGUgbWF4aW11bSBwb3NzaWJsZSBvdXRwdXQKKyAgICAgKiBmcmFtZSByYXRlIGdpdmVuIHRoZSBzaXplcyBhbmQgZm9ybWF0cyBvZiB0aGUgb3V0cHV0IHN0cmVhbXMsIGFzCisgICAgICogZG9jdW1lbnRlZCBpbiB0aGUgY2FtZXJhIGRldmljZSdzIHN0YXRpYyBtZXRhZGF0YS4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgY2FsbCBpcyBleHBlY3RlZCB0byBiZSBoZWF2eXdlaWdodCBhbmQgcG9zc2libHkgdGFrZSBzZXZlcmFsIGh1bmRyZWQKKyAgICAgKiBtaWxsaXNlY29uZHMgdG8gY29tcGxldGUsIHNpbmNlIGl0IG1heSByZXF1aXJlIHJlc2V0dGluZyBhbmQKKyAgICAgKiByZWNvbmZpZ3VyaW5nIHRoZSBpbWFnZSBzZW5zb3IgYW5kIHRoZSBjYW1lcmEgcHJvY2Vzc2luZyBwaXBlbGluZS4KKyAgICAgKiBOZXZlcnRoZWxlc3MsIHRoZSBIQUwgZGV2aWNlIHNob3VsZCBhdHRlbXB0IHRvIG1pbmltaXplIHRoZQorICAgICAqIHJlY29uZmlndXJhdGlvbiBkZWxheSB0byBtaW5pbWl6ZSB0aGUgdXNlci12aXNpYmxlIHBhdXNlcyBkdXJpbmcKKyAgICAgKiBhcHBsaWNhdGlvbiBvcGVyYXRpb25hbCBtb2RlIGNoYW5nZXMgKHN1Y2ggYXMgc3dpdGNoaW5nIGZyb20gc3RpbGwKKyAgICAgKiBjYXB0dXJlIHRvIHZpZGVvIHJlY29yZGluZykuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIHNob3VsZCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gNTAwbXMsIGFuZCBtdXN0IHJldHVybiBmcm9tIHRoaXMKKyAgICAgKiBjYWxsIGluIDEwMDBtcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgIE9uIHN1Y2Nlc3NmdWwgc3RyZWFtIGNvbmZpZ3VyYXRpb24uCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgSWYgdGhlcmUgaGFzIGJlZW4gYSBmYXRhbCBlcnJvciBhbmQgdGhlIGRldmljZSBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIG9wZXJhdGlvbmFsLiBPbmx5IGNsb3NlKCkgY2FuIGJlIGNhbGxlZCBzdWNjZXNzZnVsbHkgYnkgdGhlCisgICAgICogICAgICAgICBmcmFtZXdvcmsgYWZ0ZXIgdGhpcyBlcnJvciBpcyByZXR1cm5lZC4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIElmIHRoZSByZXF1ZXN0ZWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gU29tZSBleGFtcGxlcworICAgICAqICAgICAgICAgb2YgaW52YWxpZCBzdHJlYW0gY29uZmlndXJhdGlvbnMgaW5jbHVkZToKKyAgICAgKiAgICAgICAgICAgLSBJbmNsdWRpbmcgbW9yZSB0aGFuIDEgSU5QVVQgc3RyZWFtCisgICAgICogICAgICAgICAgIC0gTm90IGluY2x1ZGluZyBhbnkgT1VUUFVUIHN0cmVhbXMKKyAgICAgKiAgICAgICAgICAgLSBJbmNsdWRpbmcgc3RyZWFtcyB3aXRoIHVuc3VwcG9ydGVkIGZvcm1hdHMsIG9yIGFuIHVuc3VwcG9ydGVkCisgICAgICogICAgICAgICAgICAgc2l6ZSBmb3IgdGhhdCBmb3JtYXQuCisgICAgICogICAgICAgICAgIC0gSW5jbHVkaW5nIHRvbyBtYW55IG91dHB1dCBzdHJlYW1zIG9mIGEgY2VydGFpbiBmb3JtYXQuCisgICAgICogICAgICAgICAgIC0gVW5zdXBwb3J0ZWQgcm90YXRpb24gY29uZmlndXJhdGlvbgorICAgICAqICAgICAgICAgICAtIFN0cmVhbSBzaXplcy9mb3JtYXRzIGRvbid0IHNhdGlzZnkgdGhlCisgICAgICogICAgICAgICAgICAgY2FtZXJhM19zdHJlYW1fY29uZmlndXJhdGlvbl90LT5vcGVyYXRpb25fbW9kZSByZXF1aXJlbWVudHMKKyAgICAgKiAgICAgICAgICAgICBmb3Igbm9uLU5PUk1BTCBtb2RlLCBvciB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbl9tb2RlIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIHN1cHBvcnRlZCBieSB0aGUgSEFMLgorICAgICAqICAgICAgICAgICAtIFVuc3VwcG9ydGVkIHVzYWdlIGZsYWcKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgc2VydmljZSBjYW5ub3QgZmlsdGVyIG91dCBhbGwgcG9zc2libGUgaWxsZWdhbCBzdHJlYW0KKyAgICAgKiAgICAgICAgIGNvbmZpZ3VyYXRpb25zLCBzaW5jZSBzb21lIGRldmljZXMgbWF5IHN1cHBvcnQgbW9yZSBzaW11bHRhbmVvdXMKKyAgICAgKiAgICAgICAgIHN0cmVhbXMgb3IgbGFyZ2VyIHN0cmVhbSByZXNvbHV0aW9ucyB0aGFuIHRoZSBtaW5pbXVtIHJlcXVpcmVkCisgICAgICogICAgICAgICBmb3IgYSBnaXZlbiBjYW1lcmEgZGV2aWNlIGhhcmR3YXJlIGxldmVsLiBUaGUgSEFMIG11c3QgcmV0dXJuIGFuCisgICAgICogICAgICAgICBJTExFR0FMX0FSR1VNRU5UIGZvciBhbnkgdW5zdXBwb3J0ZWQgc3RyZWFtIHNldCwgYW5kIHRoZW4gYmUKKyAgICAgKiAgICAgICAgIHJlYWR5IHRvIGFjY2VwdCBhIGZ1dHVyZSB2YWxpZCBzdHJlYW0gY29uZmlndXJhdGlvbiBpbiBhIGxhdGVyCisgICAgICogICAgICAgICBjb25maWd1cmVTdHJlYW1zIGNhbGwuCisgICAgICogQHJldHVybiBmaW5hbENvbmZpZ3VyYXRpb24gVGhlIHN0cmVhbSBwYXJhbWV0ZXJzIGRlc2lyZWQgYnkgdGhlIEhBTCBmb3IKKyAgICAgKiAgICAgZWFjaCBzdHJlYW0sIGluY2x1ZGluZyBtYXhpbXVtIGJ1ZmZlcnMsIHRoZSB1c2FnZSBmbGFncywgYW5kIHRoZQorICAgICAqICAgICBvdmVycmlkZSBmb3JtYXQuCisgICAgICoKKyAgICAgKi8KKyAgICBjb25maWd1cmVTdHJlYW1zKFN0cmVhbUNvbmZpZ3VyYXRpb24gcmVxdWVzdGVkQ29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWd1cmF0aW9uKTsKKworICAgIC8qKgorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVxdWVzdDoKKyAgICAgKgorICAgICAqIFNlbmQgYSBsaXN0IG9mIGNhcHR1cmUgcmVxdWVzdHMgdG8gdGhlIEhBTC4gVGhlIEhBTCBtdXN0IG5vdCByZXR1cm4gZnJvbQorICAgICAqIHRoaXMgY2FsbCB1bnRpbCBpdCBpcyByZWFkeSB0byBhY2NlcHQgdGhlIG5leHQgc2V0IG9mIHJlcXVlc3RzIHRvCisgICAgICogcHJvY2Vzcy4gT25seSBvbmUgY2FsbCB0byBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSBtdXN0IGJlIG1hZGUgYXQgYSB0aW1lCisgICAgICogYnkgdGhlIGZyYW1ld29yaywgYW5kIHRoZSBjYWxscyBtdXN0IGFsbCBiZSBmcm9tIHRoZSBzYW1lIHRocmVhZC4gVGhlCisgICAgICogbmV4dCBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpIG11c3QgYmUgbWFkZSBhcyBzb29uIGFzIGEgbmV3CisgICAgICogcmVxdWVzdCBhbmQgaXRzIGFzc29jaWF0ZWQgYnVmZmVycyBhcmUgYXZhaWxhYmxlLiBJbiBhIG5vcm1hbCBwcmV2aWV3CisgICAgICogc2NlbmFyaW8sIHRoaXMgbWVhbnMgdGhlIGZ1bmN0aW9uIGlzIGdlbmVyYWxseSBjYWxsZWQgYWdhaW4gYnkgdGhlCisgICAgICogZnJhbWV3b3JrIGFsbW9zdCBpbnN0YW50bHkuIElmIG1vcmUgdGhhbiBvbmUgcmVxdWVzdCBpcyBwcm92aWRlZCBieSB0aGUKKyAgICAgKiBjbGllbnQsIHRoZSBIQUwgbXVzdCBwcm9jZXNzIHRoZSByZXF1ZXN0cyBpbiBvcmRlciBvZiBsb3dlc3QgaW5kZXggdG8KKyAgICAgKiBoaWdoZXN0IGluZGV4LgorICAgICAqCisgICAgICogVGhlIGNhY2hlc1RvUmVtb3ZlIGFyZ3VtZW50IGNvbnRhaW5zIGEgbGlzdCBvZiBidWZmZXIgY2FjaGVzIChzZWUKKyAgICAgKiBTdHJlYW1CdWZmZXIgZG9jdW1lbnQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYnVmZmVyIGNhY2hlKSB0byBiZSByZW1vdmVkCisgICAgICogYnkgY2FtZXJhIEhBTC4gQ2FtZXJhIEhBTCBtdXN0IHJlbW92ZSB0aGVzZSBjYWNoZSBlbnRyaWVzIHdoZXRoZXIgb3Igbm90CisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBPSy4KKyAgICAgKgorICAgICAqIFRoZSBhY3R1YWwgcmVxdWVzdCBwcm9jZXNzaW5nIGlzIGFzeW5jaHJvbm91cywgd2l0aCB0aGUgcmVzdWx0cyBvZgorICAgICAqIGNhcHR1cmUgYmVpbmcgcmV0dXJuZWQgYnkgdGhlIEhBTCB0aHJvdWdoIHRoZSBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpCisgICAgICogY2FsbC4gVGhpcyBjYWxsIHJlcXVpcmVzIHRoZSByZXN1bHQgbWV0YWRhdGEgdG8gYmUgYXZhaWxhYmxlLCBidXQgb3V0cHV0CisgICAgICogYnVmZmVycyBtYXkgc2ltcGx5IHByb3ZpZGUgc3luYyBmZW5jZXMgdG8gd2FpdCBvbi4gTXVsdGlwbGUgcmVxdWVzdHMgYXJlCisgICAgICogZXhwZWN0ZWQgdG8gYmUgaW4gZmxpZ2h0IGF0IG9uY2UsIHRvIG1haW50YWluIGZ1bGwgb3V0cHV0IGZyYW1lIHJhdGUuCisgICAgICoKKyAgICAgKiBUaGUgZnJhbWV3b3JrIHJldGFpbnMgb3duZXJzaGlwIG9mIHRoZSByZXF1ZXN0IHN0cnVjdHVyZS4gSXQgaXMgb25seQorICAgICAqIGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgZHVyaW5nIHRoaXMgY2FsbC4gVGhlIEhBTCBkZXZpY2UgbXVzdCBtYWtlIGNvcGllcworICAgICAqIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcyB0byByZXRhaW4gZm9yIHRoZSBjYXB0dXJlIHByb2Nlc3NpbmcuIFRoZSBIQUwKKyAgICAgKiBpcyByZXNwb25zaWJsZSBmb3Igd2FpdGluZyBvbiBhbmQgY2xvc2luZyB0aGUgYnVmZmVycycgZmVuY2VzIGFuZAorICAgICAqIHJldHVybmluZyB0aGUgYnVmZmVyIGhhbmRsZXMgdG8gdGhlIGZyYW1ld29yay4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCB3cml0ZSB0aGUgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgaW5wdXQgYnVmZmVyJ3MgcmVsZWFzZQorICAgICAqIHN5bmMgZmVuY2UgaW50byBpbnB1dF9idWZmZXItPnJlbGVhc2VfZmVuY2UsIGlmIGlucHV0X2J1ZmZlciBpcyBub3QKKyAgICAgKiB2YWxpZC4gSWYgdGhlIEhBTCByZXR1cm5zIC0xIGZvciB0aGUgaW5wdXQgYnVmZmVyIHJlbGVhc2Ugc3luYyBmZW5jZSwgdGhlCisgICAgICogZnJhbWV3b3JrIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgcmV1c2UgdGhlIGlucHV0IGJ1ZmZlci4gT3RoZXJ3aXNlLCB0aGUKKyAgICAgKiBmcmFtZXdvcmsgbXVzdCB3YWl0IG9uIHRoZSBzeW5jIGZlbmNlIGJlZm9yZSByZWZpbGxpbmcgYW5kIHJldXNpbmcgdGhlCisgICAgICogaW5wdXQgYnVmZmVyLgorICAgICAqCisgICAgICogVGhlIGlucHV0L291dHB1dCBidWZmZXJzIHByb3ZpZGVkIGJ5IHRoZSBmcmFtZXdvcmsgaW4gZWFjaCByZXF1ZXN0CisgICAgICogbWF5IGJlIGJyYW5kIG5ldyAoaGF2aW5nIG5ldmVyIGJlZm9yZSBzZWVuIGJ5IHRoZSBIQUwpLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM6CisgICAgICoKKyAgICAgKiBIYW5kbGluZyBhIG5ldyBidWZmZXIgc2hvdWxkIGJlIGV4dHJlbWVseSBsaWdodHdlaWdodCBhbmQgdGhlcmUgbXVzdCBiZQorICAgICAqIG5vIGZyYW1lIHJhdGUgZGVncmFkYXRpb24gb3IgZnJhbWUgaml0dGVyIGludHJvZHVjZWQuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgbXVzdCByZXR1cm4gZmFzdCBlbm91Z2ggdG8gZW5zdXJlIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFtZQorICAgICAqIHJhdGUgY2FuIGJlIHN1c3RhaW5lZCwgZXNwZWNpYWxseSBmb3Igc3RyZWFtaW5nIGNhc2VzIChwb3N0LXByb2Nlc3NpbmcKKyAgICAgKiBxdWFsaXR5IHNldHRpbmdzIHNldCB0byBGQVNUKS4gVGhlIEhBTCBzaG91bGQgcmV0dXJuIHRoaXMgY2FsbCBpbiAxCisgICAgICogZnJhbWUgaW50ZXJ2YWwsIGFuZCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiA0IGZyYW1lIGludGVydmFscy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIHN0YXJ0IHRvIHByb2Nlc3NpbmcgdGhlIGNhcHR1cmUgcmVxdWVzdAorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgSWYgdGhlIGlucHV0IGlzIG1hbGZvcm1lZCAodGhlIHNldHRpbmdzIGFyZSBlbXB0eSB3aGVuIG5vdAorICAgICAqICAgICAgICAgYWxsb3dlZCwgdGhlcmUgYXJlIDAgb3V0cHV0IGJ1ZmZlcnMsIGV0YykgYW5kIGNhcHR1cmUgcHJvY2Vzc2luZworICAgICAqICAgICAgICAgY2Fubm90IHN0YXJ0LiBGYWlsdXJlcyBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nIG11c3QgYmUKKyAgICAgKiAgICAgICAgIGhhbmRsZWQgYnkgY2FsbGluZyBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6Om5vdGlmeSgpLiBJbiBjYXNlIG9mCisgICAgICogICAgICAgICB0aGlzIGVycm9yLCB0aGUgZnJhbWV3b3JrIHJldGFpbnMgcmVzcG9uc2liaWxpdHkgZm9yIHRoZQorICAgICAqICAgICAgICAgc3RyZWFtIGJ1ZmZlcnMnIGZlbmNlcyBhbmQgdGhlIGJ1ZmZlciBoYW5kbGVzOyB0aGUgSEFMIG11c3Qgbm90CisgICAgICogICAgICAgICBjbG9zZSB0aGUgZmVuY2VzIG9yIHJldHVybiB0aGVzZSBidWZmZXJzIHdpdGgKKyAgICAgKiAgICAgICAgIElDYW1lcmFEZXZpY2VDYWxsYmFjazo6cHJvY2Vzc0NhcHR1cmVSZXN1bHQoKS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBJZiB0aGUgY2FtZXJhIGRldmljZSBoYXMgZW5jb3VudGVyZWQgYSBzZXJpb3VzIGVycm9yLiBBZnRlciB0aGlzCisgICAgICogICAgICAgICBlcnJvciBpcyByZXR1cm5lZCwgb25seSB0aGUgY2xvc2UoKSBtZXRob2QgY2FuIGJlIHN1Y2Nlc3NmdWxseQorICAgICAqICAgICAgICAgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICogQHJldHVybiBudW1SZXF1ZXN0UHJvY2Vzc2VkIE51bWJlciBvZiByZXF1ZXN0cyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIGJ5CisgICAgICogICAgIGNhbWVyYSBIQUwuIFdoZW4gc3RhdHVzIGlzIE9LLCB0aGlzIG11c3QgYmUgZXF1YWwgdG8gdGhlIHNpemUgb2YKKyAgICAgKiAgICAgcmVxdWVzdHMuIFdoZW4gdGhlIGNhbGwgZmFpbHMsIHRoaXMgbnVtYmVyIGlzIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMKKyAgICAgKiAgICAgdGhhdCBIQUwgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseSBiZWZvcmUgSEFMIHJ1bnMgaW50byBhbiBlcnJvci4KKyAgICAgKgorICAgICAqLworICAgIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCh2ZWM8Q2FwdHVyZVJlcXVlc3Q+IHJlcXVlc3RzLAorICAgICAgICAgICAgdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCk7CisKKyAgICAvKioKKyAgICAgKiBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWU6CisgICAgICoKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIHF1ZXVlIHVzZWQgYWxvbmcgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QuIElmCisgICAgICogY2xpZW50IGRlY2lkZXMgdG8gdXNlIGZhc3QgbWVzc2FnZSBxdWV1ZSB0byBwYXNzIHJlcXVlc3QgbWV0YWRhdGEsCisgICAgICogaXQgbXVzdDoKKyAgICAgKiAtIENhbGwgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlIHRvIHJldHJpZXZlIHRoZSBmYXN0IG1lc3NhZ2UgcXVldWU7CisgICAgICogLSBJbiBlYWNoIG9mIHRoZSByZXF1ZXN0cyBzZW50IGluIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCwgc2V0CisgICAgICogICBmbXFTZXR0aW5nc1NpemUgZmllbGQgb2YgQ2FwdHVyZVJlcXVlc3QgdG8gYmUgdGhlIHNpemUgdG8gcmVhZCBmcm9tIHRoZQorICAgICAqICAgZmFzdCBtZXNzYWdlIHF1ZXVlOyBsZWF2ZSBzZXR0aW5ncyBmaWVsZCBvZiBDYXB0dXJlUmVxdWVzdCBlbXB0eS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcXVldWUgdGhlIHF1ZXVlIHRoYXQgY2xpZW50IHdyaXRlcyByZXF1ZXN0IG1ldGFkYXRhIHRvLgorICAgICAqLworICAgIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSgpIGdlbmVyYXRlcyAoZm1xX3N5bmM8dWludDhfdD4gcXVldWUpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWU6CisgICAgICoKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIHF1ZXVlIHVzZWQgYWxvbmcgd2l0aAorICAgICAqIElDYW1lcmFEZXZpY2VDYWxsYmFjay5wcm9jZXNzQ2FwdHVyZVJlc3VsdC4KKyAgICAgKgorICAgICAqIENsaWVudHMgdG8gSUNhbWVyYURldmljZVNlc3Npb24gbXVzdDoKKyAgICAgKiAtIENhbGwgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlIHRvIHJldHJpZXZlIHRoZSBmYXN0IG1lc3NhZ2UgcXVldWU7CisgICAgICogLSBJbiBpbXBsZW1lbnRhdGlvbiBvZiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2ssIHRlc3Qgd2hldGhlcgorICAgICAqICAgLmZtcVJlc3VsdFNpemUgZmllbGQgaXMgemVyby4KKyAgICAgKiAgICAgLSBJZiAuZm1xUmVzdWx0U2l6ZSAhPSAwLCByZWFkIHJlc3VsdCBtZXRhZGF0YSBmcm9tIHRoZSBmYXN0IG1lc3NhZ2UKKyAgICAgKiAgICAgICBxdWV1ZTsKKyAgICAgKiAgICAgLSBvdGhlcndpc2UsIHJlYWQgcmVzdWx0IG1ldGFkYXRhIGluIENhcHR1cmVSZXN1bHQucmVzdWx0LgorICAgICAqCisgICAgICogQHJldHVybiBxdWV1ZSB0aGUgcXVldWUgdGhhdCBpbXBsZW1lbnRhdGlvbiB3cml0ZXMgcmVzdWx0IG1ldGFkYXRhIHRvLgorICAgICAqLworICAgIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlKCkgZ2VuZXJhdGVzIChmbXFfc3luYzx1aW50OF90PiBxdWV1ZSk7CisKKyAgICAvKioKKyAgICAgKiBmbHVzaDoKKyAgICAgKgorICAgICAqIEZsdXNoIGFsbCBjdXJyZW50bHkgaW4tcHJvY2VzcyBjYXB0dXJlcyBhbmQgYWxsIGJ1ZmZlcnMgaW4gdGhlIHBpcGVsaW5lCisgICAgICogb24gdGhlIGdpdmVuIGRldmljZS4gR2VuZXJhbGx5LCB0aGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1bXAgYWxsIHN0YXRlIGFzCisgICAgICogcXVpY2tseSBhcyBwb3NzaWJsZSBpbiBvcmRlciB0byBwcmVwYXJlIGZvciBhIGNvbmZpZ3VyZV9zdHJlYW1zKCkgY2FsbC4KKyAgICAgKgorICAgICAqIE5vIGJ1ZmZlcnMgYXJlIHJlcXVpcmVkIHRvIGJlIHN1Y2Nlc3NmdWxseSByZXR1cm5lZCwgc28gZXZlcnkgYnVmZmVyCisgICAgICogaGVsZCBhdCB0aGUgdGltZSBvZiBmbHVzaCgpICh3aGV0aGVyIHN1Y2Nlc3NmdWxseSBmaWxsZWQgb3Igbm90KSBtYXkgYmUKKyAgICAgKiByZXR1cm5lZCB3aXRoIENBTUVSQTNfQlVGRkVSX1NUQVRVU19FUlJPUi4gTm90ZSB0aGUgSEFMIGlzIHN0aWxsIGFsbG93ZWQKKyAgICAgKiB0byByZXR1cm4gdmFsaWQgKENBTUVSQTNfQlVGRkVSX1NUQVRVU19PSykgYnVmZmVycyBkdXJpbmcgdGhpcyBjYWxsLAorICAgICAqIHByb3ZpZGVkIHRoZXkgYXJlIHN1Y2Nlc3NmdWxseSBmaWxsZWQuCisgICAgICoKKyAgICAgKiBBbGwgcmVxdWVzdHMgY3VycmVudGx5IGluIHRoZSBIQUwgYXJlIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkIGFzIHNvb24gYXMKKyAgICAgKiBwb3NzaWJsZS4gTm90LWluLXByb2Nlc3MgcmVxdWVzdHMgbXVzdCByZXR1cm4gZXJyb3JzIGltbWVkaWF0ZWx5LiBBbnkKKyAgICAgKiBpbnRlcnJ1cHRpYmxlIGhhcmR3YXJlIGJsb2NrcyBtdXN0IGJlIHN0b3BwZWQsIGFuZCBhbnkgdW5pbnRlcnJ1cHRpYmxlCisgICAgICogYmxvY2tzIG11c3QgYmUgd2FpdGVkIG9uLgorICAgICAqCisgICAgICogZmx1c2goKSBtYXkgYmUgY2FsbGVkIGNvbmN1cnJlbnRseSB0byBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSwgd2l0aCB0aGUKKyAgICAgKiBleHBlY3RhdGlvbiB0aGF0IHByb2Nlc3NDYXB0dXJlUmVxdWVzdCByZXR1cm5zIHF1aWNrbHkgYW5kIHRoZQorICAgICAqIHJlcXVlc3Qgc3VibWl0dGVkIGluIHRoYXQgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0IGNhbGwgaXMgdHJlYXRlZCBsaWtlCisgICAgICogYWxsIG90aGVyIGluLWZsaWdodCByZXF1ZXN0cy4gRHVlIHRvIGNvbmN1cnJlbmN5IGlzc3VlcywgaXQgaXMgcG9zc2libGUKKyAgICAgKiB0aGF0IGZyb20gdGhlIEhBTCdzIHBvaW50IG9mIHZpZXcsIGEgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgY2FsbCBtYXkKKyAgICAgKiBiZSBzdGFydGVkIGFmdGVyIGZsdXNoIGhhcyBiZWVuIGludm9rZWQgYnV0IGhhcyBub3QgcmV0dXJuZWQgeWV0LiBJZiBzdWNoCisgICAgICogYSBjYWxsIGhhcHBlbnMgYmVmb3JlIGZsdXNoKCkgcmV0dXJucywgdGhlIEhBTCBtdXN0IHRyZWF0IHRoZSBuZXcKKyAgICAgKiBjYXB0dXJlIHJlcXVlc3QgbGlrZSBvdGhlciBpbi1mbGlnaHQgcGVuZGluZyByZXF1ZXN0cyAoc2VlICM0IGJlbG93KS4KKyAgICAgKgorICAgICAqIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGUgSEFMIG11c3QgZm9sbG93IGJlbG93IHJlcXVpcmVtZW50cyBmb3IgdmFyaW91cworICAgICAqIGNhc2VzOgorICAgICAqCisgICAgICogMS4gRm9yIGNhcHR1cmVzIHRoYXQgYXJlIHRvbyBsYXRlIGZvciB0aGUgSEFMIHRvIGNhbmNlbC9zdG9wLCBhbmQgbXVzdCBiZQorICAgICAqICAgIGNvbXBsZXRlZCBub3JtYWxseSBieSB0aGUgSEFMOyBpLmUuIHRoZSBIQUwgY2FuIHNlbmQgc2h1dHRlci9ub3RpZnkKKyAgICAgKiAgICBhbmQgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgYW5kIGJ1ZmZlcnMgYXMgbm9ybWFsLgorICAgICAqCisgICAgICogMi4gRm9yIHBlbmRpbmcgcmVxdWVzdHMgdGhhdCBoYXZlIG5vdCBkb25lIGFueSBwcm9jZXNzaW5nLCB0aGUgSEFMIG11c3QKKyAgICAgKiAgICBjYWxsIG5vdGlmeSBDQU1FUkEzX01TR19FUlJPUl9SRVFVRVNULCBhbmQgcmV0dXJuIGFsbCB0aGUgb3V0cHV0CisgICAgICogICAgYnVmZmVycyB3aXRoIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGluIHRoZSBlcnJvciBzdGF0ZQorICAgICAqICAgIChDQU1FUkEzX0JVRkZFUl9TVEFUVVNfRVJST1IpLiBUaGUgSEFMIG11c3Qgbm90IHBsYWNlIHRoZSByZWxlYXNlCisgICAgICogICAgZmVuY2UgaW50byBhbiBlcnJvciBzdGF0ZSwgaW5zdGVhZCwgdGhlIHJlbGVhc2UgZmVuY2VzIG11c3QgYmUgc2V0IHRvCisgICAgICogICAgdGhlIGFjcXVpcmUgZmVuY2VzIHBhc3NlZCBieSB0aGUgZnJhbWV3b3JrLCBvciAtMSBpZiB0aGV5IGhhdmUgYmVlbgorICAgICAqICAgIHdhaXRlZCBvbiBieSB0aGUgSEFMIGFscmVhZHkuIFRoaXMgaXMgYWxzbyB0aGUgcGF0aCB0byBmb2xsb3cgZm9yIGFueQorICAgICAqICAgIGNhcHR1cmVzIGZvciB3aGljaCB0aGUgSEFMIGFscmVhZHkgY2FsbGVkIG5vdGlmeSgpIHdpdGgKKyAgICAgKiAgICBDQU1FUkEzX01TR19TSFVUVEVSIGJ1dCB3b24ndCBiZSBwcm9kdWNpbmcgYW55IG1ldGFkYXRhL3ZhbGlkIGJ1ZmZlcnMKKyAgICAgKiAgICBmb3IuIEFmdGVyIENBTUVSQTNfTVNHX0VSUk9SX1JFUVVFU1QsIGZvciBhIGdpdmVuIGZyYW1lLCBvbmx5CisgICAgICogICAgcHJvY2Vzc0NhcHR1cmVSZXN1bHRzIHdpdGggYnVmZmVycyBpbiBDQU1FUkEzX0JVRkZFUl9TVEFUVVNfRVJST1IKKyAgICAgKiAgICBhcmUgYWxsb3dlZC4gTm8gZnVydGhlciBub3RpZnlzIG9yIHByb2Nlc3NDYXB0dXJlUmVzdWx0IHdpdGgKKyAgICAgKiAgICBub24tZW1wdHkgbWV0YWRhdGEgaXMgYWxsb3dlZC4KKyAgICAgKgorICAgICAqIDMuIEZvciBwYXJ0aWFsbHkgY29tcGxldGVkIHBlbmRpbmcgcmVxdWVzdHMgdGhhdCBkbyBub3QgaGF2ZSBhbGwgdGhlCisgICAgICogICAgb3V0cHV0IGJ1ZmZlcnMgb3IgcGVyaGFwcyBtaXNzaW5nIG1ldGFkYXRhLCB0aGUgSEFMIG11c3QgZm9sbG93CisgICAgICogICAgYmVsb3c6CisgICAgICoKKyAgICAgKiAgICAzLjEuIENhbGwgbm90aWZ5IHdpdGggQ0FNRVJBM19NU0dfRVJST1JfUkVTVUxUIGlmIHNvbWUgb2YgdGhlIGV4cGVjdGVkCisgICAgICogICAgICAgICByZXN1bHQgbWV0YWRhdGEgKGkuZS4gb25lIG9yIG1vcmUgcGFydGlhbCBtZXRhZGF0YSkgd29uJ3QgYmUKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZSBmb3IgdGhlIGNhcHR1cmUuCisgICAgICoKKyAgICAgKiAgICAzLjIuIENhbGwgbm90aWZ5IHdpdGggQ0FNRVJBM19NU0dfRVJST1JfQlVGRkVSIGZvciBldmVyeSBidWZmZXIgdGhhdAorICAgICAqICAgICAgICAgd29uJ3QgYmUgcHJvZHVjZWQgZm9yIHRoZSBjYXB0dXJlLgorICAgICAqCisgICAgICogICAgMy4zLiBDYWxsIG5vdGlmeSB3aXRoIENBTUVSQTNfTVNHX1NIVVRURVIgd2l0aCB0aGUgY2FwdHVyZSB0aW1lc3RhbXAKKyAgICAgKiAgICAgICAgIGJlZm9yZSBhbnkgYnVmZmVycy9tZXRhZGF0YSBhcmUgcmV0dXJuZWQgd2l0aAorICAgICAqICAgICAgICAgcHJvY2Vzc0NhcHR1cmVSZXN1bHQuCisgICAgICoKKyAgICAgKiAgICAzLjQuIEZvciBjYXB0dXJlcyB0aGF0IHdpbGwgcHJvZHVjZSBzb21lIHJlc3VsdHMsIHRoZSBIQUwgbXVzdCBub3QKKyAgICAgKiAgICAgICAgIGNhbGwgQ0FNRVJBM19NU0dfRVJST1JfUkVRVUVTVCwgc2luY2UgdGhhdCBpbmRpY2F0ZXMgY29tcGxldGUKKyAgICAgKiAgICAgICAgIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiAgICAzLjUuIFZhbGlkIGJ1ZmZlcnMvbWV0YWRhdGEgbXVzdCBiZSBwYXNzZWQgdG8gdGhlIGZyYW1ld29yayBhcworICAgICAqICAgICAgICAgbm9ybWFsLgorICAgICAqCisgICAgICogICAgMy42LiBGYWlsZWQgYnVmZmVycyBtdXN0IGJlIHJldHVybmVkIHRvIHRoZSBmcmFtZXdvcmsgYXMgZGVzY3JpYmVkCisgICAgICogICAgICAgICBmb3IgY2FzZSAyLiBCdXQgZmFpbGVkIGJ1ZmZlcnMgZG8gbm90IGhhdmUgdG8gZm9sbG93IHRoZSBzdHJpY3QKKyAgICAgKiAgICAgICAgIG9yZGVyaW5nIHZhbGlkIGJ1ZmZlcnMgZG8sIGFuZCBtYXkgYmUgb3V0LW9mLW9yZGVyIHdpdGggcmVzcGVjdAorICAgICAqICAgICAgICAgdG8gdmFsaWQgYnVmZmVycy4gRm9yIGV4YW1wbGUsIGlmIGJ1ZmZlcnMgQSwgQiwgQywgRCwgRSBhcmUgc2VudCwKKyAgICAgKiAgICAgICAgIEQgYW5kIEUgYXJlIGZhaWxlZCwgdGhlbiBBLCBFLCBCLCBELCBDIGlzIGFuIGFjY2VwdGFibGUgcmV0dXJuCisgICAgICogICAgICAgICBvcmRlci4KKyAgICAgKgorICAgICAqICAgIDMuNy4gRm9yIGZ1bGx5LW1pc3NpbmcgbWV0YWRhdGEsIGNhbGxpbmcgQ0FNRVJBM19NU0dfRVJST1JfUkVTVUxUIGlzCisgICAgICogICAgICAgICBzdWZmaWNpZW50LCBubyBuZWVkIHRvIGNhbGwgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgd2l0aCBlbXB0eQorICAgICAqICAgICAgICAgbWV0YWRhdGEgb3IgZXF1aXZhbGVudC4KKyAgICAgKgorICAgICAqIDQuIElmIGEgZmx1c2goKSBpcyBpbnZva2VkIHdoaWxlIGEgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgaW52b2NhdGlvbgorICAgICAqICAgIGlzIGFjdGl2ZSwgdGhhdCBwcm9jZXNzIGNhbGwgbXVzdCByZXR1cm4gYXMgc29vbiBhcyBwb3NzaWJsZS4gSW4KKyAgICAgKiAgICBhZGRpdGlvbiwgaWYgYSBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSBjYWxsIGlzIG1hZGUgYWZ0ZXIgZmx1c2goKQorICAgICAqICAgIGhhcyBiZWVuIGludm9rZWQgYnV0IGJlZm9yZSBmbHVzaCgpIGhhcyByZXR1cm5lZCwgdGhlIGNhcHR1cmUgcmVxdWVzdAorICAgICAqICAgIHByb3ZpZGVkIGJ5IHRoZSBsYXRlIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCBjYWxsIG11c3QgYmUgdHJlYXRlZAorICAgICAqICAgIGxpa2UgYSBwZW5kaW5nIHJlcXVlc3QgaW4gY2FzZSAjMiBhYm92ZS4KKyAgICAgKgorICAgICAqIGZsdXNoKCkgbXVzdCBvbmx5IHJldHVybiB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIG91dHN0YW5kaW5nIGJ1ZmZlcnMgb3IKKyAgICAgKiByZXF1ZXN0cyBsZWZ0IGluIHRoZSBIQUwuIFRoZSBmcmFtZXdvcmsgbWF5IGNhbGwgY29uZmlndXJlX3N0cmVhbXMgKGFzCisgICAgICogdGhlIEhBTCBzdGF0ZSBpcyBub3cgcXVpZXNjZWQpIG9yIG1heSBpc3N1ZSBuZXcgcmVxdWVzdHMuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgaXQncyBzdWZmaWNpZW50IHRvIG9ubHkgc3VwcG9ydCBmdWxseS1zdWNjZWVkZWQgYW5kCisgICAgICogZnVsbHktZmFpbGVkIHJlc3VsdCBjYXNlcy4gSG93ZXZlciwgaXQgaXMgaGlnaGx5IGRlc2lyYWJsZSB0byBzdXBwb3J0CisgICAgICogdGhlIHBhcnRpYWwgZmFpbHVyZSBjYXNlcyBhcyB3ZWxsLCBhcyBpdCBjb3VsZCBoZWxwIGltcHJvdmUgdGhlIGZsdXNoCisgICAgICogY2FsbCBvdmVyYWxsIHBlcmZvcm1hbmNlLgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzOgorICAgICAqCisgICAgICogVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsIGluIDEwMG1zLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzCisgICAgICogY2FsbCBpbiAxMDAwbXMuIEFuZCB0aGlzIGNhbGwgbXVzdCBub3QgYmUgYmxvY2tlZCBsb25nZXIgdGhhbiBwaXBlbGluZQorICAgICAqIGxhdGVuY3kgKHNlZSBTNyBmb3IgZGVmaW5pdGlvbikuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBmbHVzaCBvZiB0aGUgY2FtZXJhIEhBTC4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBJZiB0aGUgY2FtZXJhIGRldmljZSBoYXMgZW5jb3VudGVyZWQgYSBzZXJpb3VzIGVycm9yLiBBZnRlciB0aGlzCisgICAgICogICAgICAgICBlcnJvciBpcyByZXR1cm5lZCwgb25seSB0aGUgY2xvc2UoKSBtZXRob2QgY2FuIGJlIHN1Y2Nlc3NmdWxseQorICAgICAqICAgICAgICAgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICovCisgICAgZmx1c2goKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogY2xvc2U6CisgICAgICoKKyAgICAgKiBTaHV0IGRvd24gdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBBZnRlciB0aGlzIGNhbGwsIGFsbCBjYWxscyB0byB0aGlzIHNlc3Npb24gaW5zdGFuY2UgbXVzdCByZXR1cm4KKyAgICAgKiBJTlRFUk5BTF9FUlJPUi4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYWx3YXlzIHN1Y2NlZWQsIGV2ZW4gaWYgdGhlIGRldmljZSBoYXMgZW5jb3VudGVyZWQgYQorICAgICAqIHNlcmlvdXMgZXJyb3IuCisgICAgICovCisgICAgY2xvc2UoKTsKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0FuZHJvaWQuYnAgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI1YzAwOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDI4IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImNhbWVyYS5kZXZpY2VAMy4yLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICBzcmNzOiBbIkNhbWVyYURldmljZS5jcHAiLAorICAgICAgICAgICAiQ2FtZXJhRGV2aWNlU2Vzc2lvbi5jcHAiLAorICAgICAgICAgICAiY29udmVydC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiLAorICAgICAgICAibGliZm1xIgorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliZm1xIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM3YTFlNgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcApAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtRGV2QDMuMi1pbXBsIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlXzNfMi5oIgorI2luY2x1ZGUgPGluY2x1ZGUvY29udmVydC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7CisKK0NhbWVyYURldmljZTo6Q2FtZXJhRGV2aWNlKAorICAgIHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLCBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpIDoKKyAgICAgICAgbU1vZHVsZShtb2R1bGUpLAorICAgICAgICBtQ2FtZXJhSWQoY2FtZXJhSWQpLAorICAgICAgICBtRGlzY29ubmVjdGVkKGZhbHNlKSwKKyAgICAgICAgbUNhbWVyYURldmljZU5hbWVzKGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgbUNhbWVyYUlkSW50ID0gYXRvaShtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlIGFzIHByb3ZpZGVyIGFsc28gdmFsaWRhdGUgSUQKKyAgICBpZiAobUNhbWVyYUlkSW50IDwgMCB8fCBtQ2FtZXJhSWRJbnQgPj0gbW9kdWxlLT5nZXROdW1iZXJPZkNhbWVyYXMoKSkgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgY2FtZXJhIGlkOiAlcyIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KKworICAgIG1EZXZpY2VWZXJzaW9uID0gbU1vZHVsZS0+Z2V0RGV2aWNlVmVyc2lvbihtQ2FtZXJhSWRJbnQpOworICAgIGlmIChtRGV2aWNlVmVyc2lvbiA8IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhIGlkICVzIGRvZXMgbm90IHN1cHBvcnQgSEFMMy4yKyIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIG1Jbml0RmFpbCA9IHRydWU7CisgICAgfQorfQorCitDYW1lcmFEZXZpY2U6On5DYW1lcmFEZXZpY2UoKSB7fQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjppbml0U3RhdHVzKCkgY29uc3QgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzZXRDb25uZWN0aW9uU3RhdHVzKGJvb2wgY29ubmVjdGVkKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBtRGlzY29ubmVjdGVkID0gIWNvbm5lY3RlZDsKKyAgICBpZiAobVNlc3Npb24gPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNwPENhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb24gPSBtU2Vzc2lvbi5wcm9tb3RlKCk7CisgICAgaWYgKHNlc3Npb24gPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIE9ubHkgbm90aWZ5IGFjdGl2ZSBzZXNzaW9uIGRpc2Nvbm5lY3QgZXZlbnRzLgorICAgIC8vIFVzZXJzIHdpbGwgbmVlZCB0byByZS1vcGVuIGNhbWVyYSBhZnRlciBkaXNjb25uZWN0IGV2ZW50CisgICAgaWYgKCFjb25uZWN0ZWQpIHsKKyAgICAgICAgc2Vzc2lvbi0+ZGlzY29ubmVjdCgpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK1N0YXR1cyBDYW1lcmFEZXZpY2U6OmdldEhpZGxTdGF0dXMoaW50IHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgMDogcmV0dXJuIFN0YXR1czo6T0s7CisgICAgICAgIGNhc2UgLUVOT1NZUzogcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgLUVCVVNZIDogcmV0dXJuIFN0YXR1czo6Q0FNRVJBX0lOX1VTRTsKKyAgICAgICAgY2FzZSAtRVVTRVJTOiByZXR1cm4gU3RhdHVzOjpNQVhfQ0FNRVJBU19JTl9VU0U7CisgICAgICAgIGNhc2UgLUVOT0RFVjogcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIGNhc2UgLUVJTlZBTDogcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCIlczogdW5rbm93biBIQUwgc3RhdHVzIGNvZGUgJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpnZXRSZXNvdXJjZUNvc3QoZ2V0UmVzb3VyY2VDb3N0X2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgQ2FtZXJhUmVzb3VyY2VDb3N0IHJlc0Nvc3Q7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIGludCBjb3N0ID0gMTAwOworICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gY29uZmxpY3RpbmdfZGV2aWNlczsKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisKKyAgICAgICAgLy8gSWYgdXNpbmcgcG9zdC0yLjQgbW9kdWxlIHZlcnNpb24sIHF1ZXJ5IHRoZSBjb3N0ICsgY29uZmxpY3RpbmcgZGV2aWNlcyBmcm9tIHRoZSBIQUwKKyAgICAgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfNCkgeworICAgICAgICAgICAgaW50IHJldCA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICAgICAgY29zdCA9IGluZm8ucmVzb3VyY2VfY29zdDsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uY29uZmxpY3RpbmdfZGV2aWNlc19sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZChpbmZvLmNvbmZsaWN0aW5nX2RldmljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhaXIgOiBtQ2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYW1lcmFJZCA9PSBwYWlyLmZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcy5wdXNoX2JhY2socGFpci5zZWNvbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICByZXNDb3N0LnJlc291cmNlQ29zdCA9IGNvc3Q7CisgICAgICAgICAgICByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlcy5yZXNpemUoY29uZmxpY3RpbmdfZGV2aWNlcy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb25mbGljdGluZ19kZXZpY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXNbaV0gPSBjb25mbGljdGluZ19kZXZpY2VzW2ldOworICAgICAgICAgICAgICAgIEFMT0dWKCJDYW1EZXZpY2UgJXMgaXMgY29uZmxpY3Rpbmcgd2l0aCBjYW1EZXZpY2UgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgbUNhbWVyYUlkLmNfc3RyKCksIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzW2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgcmVzQ29zdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKGdldENhbWVyYUNoYXJhY3RlcmlzdGljc19jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYU1ldGFkYXRhIGNhbWVyYUNoYXJhY3RlcmlzdGljczsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgLy9Nb2R1bGUgMi4xKyBjb2RlcGF0aC4KKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgIGludCByZXQgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICBjb252ZXJ0VG9IaWRsKGluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MsICZjYW1lcmFDaGFyYWN0ZXJpc3RpY3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBnZXQgY2FtZXJhIGluZm8gZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgY2FtZXJhQ2hhcmFjdGVyaXN0aWNzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgIHsKKyAgICBpZiAoIW1Nb2R1bGUtPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgYm9vbCBlbmFibGUgPSAobW9kZSA9PSBUb3JjaE1vZGU6Ok9OKSA/IHRydWUgOiBmYWxzZTsKKyAgICAgICAgc3RhdHVzID0gZ2V0SGlkbFN0YXR1cyhtTW9kdWxlLT5zZXRUb3JjaE1vZGUobUNhbWVyYUlkLmNfc3RyKCksIGVuYWJsZSkpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpvcGVuKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrLCBvcGVuX2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgc3A8Q2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbiA9IG51bGxwdHI7CisKKyAgICBpZiAoY2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGNhbWVyYSAlcy4gY2FsbGJhY2sgaXMgbnVsbCEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHNlc3Npb24pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICAvLyBQcm92aWRlciB3aWxsIG5ldmVyIHBhc3MgaW5pdEZhaWxlZCBkZXZpY2UgdG8gY2xpZW50LCBzbworICAgICAgICAvLyB0aGlzIG11c3QgYmUgYSBkaXNjb25uZWN0ZWQgY2FtZXJhCisgICAgICAgIEFMT0dFKCIlczogY2Fubm90IG9wZW4gY2FtZXJhICVzLiBjYW1lcmEgaXMgZGlzY29ubmVjdGVkISIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6Q0FNRVJBX0RJU0NPTk5FQ1RFRCwgc2Vzc2lvbik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUxvY2subG9jaygpOworCisgICAgICAgIEFMT0dWKCIlczogSW5pdGlhbGl6aW5nIGRldmljZSBmb3IgY2FtZXJhICVkIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWRJbnQpOworICAgICAgICBzZXNzaW9uID0gbVNlc3Npb24ucHJvbW90ZSgpOworICAgICAgICBpZiAoc2Vzc2lvbiAhPSBudWxscHRyICYmICFzZXNzaW9uLT5pc0Nsb3NlZCgpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGFuIGFscmVhZHkgb3BlbmVkIGNhbWVyYSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkNBTUVSQV9JTl9VU0UsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKiBPcGVuIEhBTCBkZXZpY2UgKi8KKyAgICAgICAgc3RhdHVzX3QgcmVzOworICAgICAgICBjYW1lcmEzX2RldmljZV90ICpkZXZpY2U7CisKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5vcGVuIik7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPm9wZW4obUNhbWVyYUlkLmNfc3RyKCksCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmZGV2aWNlKSk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKworICAgICAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGNhbWVyYSAlcyEiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoZ2V0SGlkbFN0YXR1cyhyZXMpLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICAvKiogQ3Jvc3MtY2hlY2sgZGV2aWNlIHZlcnNpb24gKi8KKyAgICAgICAgaWYgKGRldmljZS0+Y29tbW9uLnZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBDb3VsZCBub3Qgb3BlbiBjYW1lcmE6ICIKKyAgICAgICAgICAgICAgICAgICAgIkNhbWVyYSBkZXZpY2Ugc2hvdWxkIGJlIGF0IGxlYXN0ICV4LCByZXBvcnRzICV4IGluc3RlYWQiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgICAgIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yLAorICAgICAgICAgICAgICAgICAgICBkZXZpY2UtPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgICAgIGRldmljZS0+Y29tbW9uLmNsb3NlKCZkZXZpY2UtPmNvbW1vbik7CisgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgICAgIGlmIChyZXMgIT0gT0spIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IG9wZW4gY2FtZXJhOiBnZXRDYW1lcmFJbmZvIGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBkZXZpY2UtPmNvbW1vbi5jbG9zZSgmZGV2aWNlLT5jb21tb24pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24gPSBuZXcgQ2FtZXJhRGV2aWNlU2Vzc2lvbigKKyAgICAgICAgICAgICAgICBkZXZpY2UsIGluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MsIGNhbGxiYWNrKTsKKyAgICAgICAgaWYgKHNlc3Npb24gPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlIHNlc3Npb24gYWxsb2NhdGlvbiBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlc3Npb24tPmlzSW5pdEZhaWxlZCgpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2Ugc2Vzc2lvbiBpbml0IGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBzZXNzaW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgICAgIG1TZXNzaW9uID0gc2Vzc2lvbjsKKyAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgc2Vzc2lvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6ZHVtcFN0YXRlKGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlJiBoYW5kbGUpICB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoaGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBoYW5kbGUgbXVzdCBub3QgYmUgbnVsbCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxIHx8IGhhbmRsZS0+bnVtSW50cyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogaGFuZGxlIG11c3QgY29udGFpbiAxIEZEIGFuZCAwIGludGVnZXJzISBHb3QgJWQgRkRzIGFuZCAlZCBpbnRzIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGhhbmRsZS0+bnVtRmRzLCBoYW5kbGUtPm51bUludHMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpbnQgZmQgPSBoYW5kbGUtPmRhdGFbMF07CisgICAgaWYgKG1TZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgZHByaW50ZihmZCwgIk5vIGFjdGl2ZSBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaW5zdGFuY2VcbiIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzcDxDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uID0gbVNlc3Npb24ucHJvbW90ZSgpOworICAgIGlmIChzZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgZHByaW50ZihmZCwgIk5vIGFjdGl2ZSBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaW5zdGFuY2VcbiIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICAvLyBDYWxsIGludG8gYWN0aXZlIHNlc3Npb24gdG8gZHVtcCBzdGF0ZXMKKyAgICBzZXNzaW9uLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorLy8gRW5kIG9mIG1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZS4KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZVNlc3Npb24uY3BwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmE2YmQwCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmNwcApAQCAtMCwwICsxLDEzMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldlNlc3Npb25AMy4yLWltcGwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgIkNhbWVyYURldmljZVNlc3Npb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjNfMiB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTaXplIG9mIHJlcXVlc3QgbWV0YWRhdGEgZmFzdCBtZXNzYWdlIHF1ZXVlLiBDaGFuZ2UgdG8gMCB0byBhbHdheXMgdXNlIGh3YmluZGVyIGJ1ZmZlci4KK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IENBTUVSQV9SRVFVRVNUX01FVEFEQVRBX1FVRVVFX1NJWkUgPSAxIDw8IDIwIC8qIDFNQiAqLzsKKy8vIFNpemUgb2YgcmVzdWx0IG1ldGFkYXRhIGZhc3QgbWVzc2FnZSBxdWV1ZS4gQ2hhbmdlIHRvIDAgdG8gYWx3YXlzIHVzZSBod2JpbmRlciBidWZmZXIuCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBDQU1FUkFfUkVTVUxUX01FVEFEQVRBX1FVRVVFX1NJWkUgID0gMSA8PCAyMCAvKiAxTUIgKi87CisKK0hhbmRsZUltcG9ydGVyIENhbWVyYURldmljZVNlc3Npb246OnNIYW5kbGVJbXBvcnRlcjsKK2NvbnN0IGludCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpOT1RfQkFUQ0hFRDsKKworQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Q2FtZXJhRGV2aWNlU2Vzc2lvbigKKyAgICBjYW1lcmEzX2RldmljZV90KiBkZXZpY2UsCisgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqIGRldmljZUluZm8sCisgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spIDoKKyAgICAgICAgY2FtZXJhM19jYWxsYmFja19vcHMoeyZzUHJvY2Vzc0NhcHR1cmVSZXN1bHQsICZzTm90aWZ5fSksCisgICAgICAgIG1EZXZpY2UoZGV2aWNlKSwKKyAgICAgICAgbURldmljZVZlcnNpb24oZGV2aWNlLT5jb21tb24udmVyc2lvbiksCisgICAgICAgIG1Jc0FFTG9ja0F2YWlsYWJsZShmYWxzZSksCisgICAgICAgIG1EZXJpdmVQb3N0UmF3U2Vuc0tleShmYWxzZSksCisgICAgICAgIG1OdW1QYXJ0aWFsUmVzdWx0cygxKSwKKyAgICAgICAgbVJlc3VsdEJhdGNoZXIoY2FsbGJhY2spIHsKKworICAgIG1EZXZpY2VJbmZvID0gZGV2aWNlSW5mbzsKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgcGFydGlhbFJlc3VsdHNDb3VudCA9CisgICAgICAgICAgICBtRGV2aWNlSW5mby5maW5kKEFORFJPSURfUkVRVUVTVF9QQVJUSUFMX1JFU1VMVF9DT1VOVCk7CisgICAgaWYgKHBhcnRpYWxSZXN1bHRzQ291bnQuY291bnQgPiAwKSB7CisgICAgICAgIG1OdW1QYXJ0aWFsUmVzdWx0cyA9IHBhcnRpYWxSZXN1bHRzQ291bnQuZGF0YS5pMzJbMF07CisgICAgfQorICAgIG1SZXN1bHRCYXRjaGVyLnNldE51bVBhcnRpYWxSZXN1bHRzKG1OdW1QYXJ0aWFsUmVzdWx0cyk7CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgYWVMb2NrQXZhaWxhYmxlRW50cnkgPSBtRGV2aWNlSW5mby5maW5kKAorICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFKTsKKyAgICBpZiAoYWVMb2NrQXZhaWxhYmxlRW50cnkuY291bnQgPiAwKSB7CisgICAgICAgIG1Jc0FFTG9ja0F2YWlsYWJsZSA9IChhZUxvY2tBdmFpbGFibGVFbnRyeS5kYXRhLnU4WzBdID09CisgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFX1RSVUUpOworICAgIH0KKworICAgIC8vIERldGVybWluZSB3aGV0aGVyIHdlIG5lZWQgdG8gZGVyaXZlIHNlbnNpdGl2aXR5IGJvb3N0IHZhbHVlcyBmb3Igb2xkZXIgZGV2aWNlcy4KKyAgICAvLyBJZiBwb3N0LVJBVyBzZW5zaXRpdml0eSBib29zdCByYW5nZSBpcyBsaXN0ZWQsIHNvIHNob3VsZCBwb3N0LXJhdyBzZW5zaXRpdml0eSBjb250cm9sCisgICAgLy8gYmUgbGlzdGVkIChhcyB0aGUgZGVmYXVsdCB2YWx1ZSAxMDApCisgICAgaWYgKG1EZXZpY2VJbmZvLmV4aXN0cyhBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UpKSB7CisgICAgICAgIG1EZXJpdmVQb3N0UmF3U2Vuc0tleSA9IHRydWU7CisgICAgfQorCisgICAgbUluaXRGYWlsID0gaW5pdGlhbGl6ZSgpOworfQorCitib29sIENhbWVyYURldmljZVNlc3Npb246OmluaXRpYWxpemUoKSB7CisgICAgLyoqIEluaXRpYWxpemUgZGV2aWNlIHdpdGggY2FsbGJhY2sgZnVuY3Rpb25zICovCisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5pbml0aWFsaXplIik7CisgICAgc3RhdHVzX3QgcmVzID0gbURldmljZS0+b3BzLT5pbml0aWFsaXplKG1EZXZpY2UsIHRoaXMpOworICAgIEFUUkFDRV9FTkQoKTsKKworICAgIGlmIChyZXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW5pdGlhbGl6ZSBIQUwgZGV2aWNlOiAlcyAoJWQpIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHN0cmVycm9yKC1yZXMpLCByZXMpOworICAgICAgICBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIG1DbG9zZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtUmVxdWVzdE1ldGFkYXRhUXVldWUgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlcXVlc3RNZXRhZGF0YVF1ZXVlPigKKyAgICAgICAgICAgIENBTUVSQV9SRVFVRVNUX01FVEFEQVRBX1FVRVVFX1NJWkUsIGZhbHNlIC8qIG5vbiBibG9ja2luZyAqLyk7CisgICAgaWYgKCFtUmVxdWVzdE1ldGFkYXRhUXVldWUtPmlzVmFsaWQoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGludmFsaWQgcmVxdWVzdCBmbXEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgbVJlc3VsdE1ldGFkYXRhUXVldWUgPSBzdGQ6Om1ha2Vfc2hhcmVkPFJlcXVlc3RNZXRhZGF0YVF1ZXVlPigKKyAgICAgICAgICAgIENBTUVSQV9SRVNVTFRfTUVUQURBVEFfUVVFVUVfU0laRSwgZmFsc2UgLyogbm9uIGJsb2NraW5nICovKTsKKyAgICBpZiAoIW1SZXN1bHRNZXRhZGF0YVF1ZXVlLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBpbnZhbGlkIHJlc3VsdCBmbXEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgbVJlc3VsdEJhdGNoZXIuc2V0UmVzdWx0TWV0YWRhdGFRdWV1ZShtUmVzdWx0TWV0YWRhdGFRdWV1ZSk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0NhbWVyYURldmljZVNlc3Npb246On5DYW1lcmFEZXZpY2VTZXNzaW9uKCkgeworICAgIGlmICghaXNDbG9zZWQoKSkgeworICAgICAgICBBTE9HRSgiQ2FtZXJhRGV2aWNlU2Vzc2lvbiBkZWxldGVkIGJlZm9yZSBjbG9zZSEiKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9Cit9CisKK2Jvb2wgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6aXNDbG9zZWQoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIHJldHVybiBtQ2xvc2VkOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6aW5pdFN0YXR1cygpIGNvbnN0IHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobVN0YXRlTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfSBlbHNlIGlmIChtQ2xvc2VkKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6ZGlzY29ubmVjdCgpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobVN0YXRlTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9IHRydWU7CisgICAgQUxPR1coIiVzOiBDYW1lcmEgZGV2aWNlIGlzIGRpc2Nvbm5lY3RlZC4gQ2xvc2luZy4iLCBfX0ZVTkNUSU9OX18pOworICAgIGlmICghbUNsb3NlZCkgeworICAgICAgICBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIG1DbG9zZWQgPSB0cnVlOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpkdW1wU3RhdGUoY29uc3QgbmF0aXZlX2hhbmRsZV90KiBmZCkgeworICAgIGlmICghaXNDbG9zZWQoKSkgeworICAgICAgICBtRGV2aWNlLT5vcHMtPmR1bXAobURldmljZSwgZmQtPmRhdGFbMF0pOworICAgIH0KK30KKworLyoqCisgKiBGb3IgZGV2aWNlcyA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiwgQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0NBTkNFTCBpcyBub3Qgc3VwcG9ydGVkIHNvCisgKiB3ZSBuZWVkIHRvIG92ZXJyaWRlIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgdG8gQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0lETEUgYW5kIEFFX0xPQ0tfT0ZGCisgKiB0byBBRV9MT0NLX09OIHRvIHN0YXJ0IGNhbmNlbGxpbmcgQUUgcHJlY2FwdHVyZS4gSWYgQUUgbG9jayBpcyBub3QgYXZhaWxhYmxlLCBpdCBzdGlsbCBvdmVycmlkZXMKKyAqIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgdG8gQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0lETEUgYnV0IGRvZXNuJ3QgYWRkIEFFX0xPQ0tfT04gdG8gdGhlCisgKiByZXF1ZXN0LgorICovCitib29sIENhbWVyYURldmljZVNlc3Npb246OmhhbmRsZUFlUHJlY2FwdHVyZUNhbmNlbFJlcXVlc3RMb2NrZWQoCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FwdHVyZV9yZXF1ZXN0X3QgJmhhbFJlcXVlc3QsCisgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhICpzZXR0aW5ncyAvKm91dCovLAorICAgICAgICAgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgKm92ZXJyaWRlIC8qb3V0Ki8pIHsKKyAgICBpZiAoKG1EZXZpY2VWZXJzaW9uID4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHx8CisgICAgICAgICAgICAobnVsbHB0ciA9PSBoYWxSZXF1ZXN0LnNldHRpbmdzKSB8fCAobnVsbHB0ciA9PSBzZXR0aW5ncykgfHwKKyAgICAgICAgICAgICgwID09IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQoaGFsUmVxdWVzdC5zZXR0aW5ncykpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzZXR0aW5ncy0+Y2xlYXIoKTsKKyAgICBzZXR0aW5ncy0+YXBwZW5kKGhhbFJlcXVlc3Quc2V0dGluZ3MpOworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeV90IGFlUHJlY2FwdHVyZVRyaWdnZXIgPQorICAgICAgICAgICAgc2V0dGluZ3MtPmZpbmQoQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUik7CisgICAgaWYgKGFlUHJlY2FwdHVyZVRyaWdnZXIuY291bnQgPiAwICYmCisgICAgICAgICAgICBhZVByZWNhcHR1cmVUcmlnZ2VyLmRhdGEudThbMF0gPT0KKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwpIHsKKyAgICAgICAgLy8gQWx3YXlzIG92ZXJyaWRlIENBTkNFTCB0byBJRExFCisgICAgICAgIHVpbnQ4X3QgYWVQcmVjYXB0dXJlVHJpZ2dlciA9CisgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFOworICAgICAgICBzZXR0aW5ncy0+dXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIsCisgICAgICAgICAgICAgICAgJmFlUHJlY2FwdHVyZVRyaWdnZXIsIDEpOworICAgICAgICAqb3ZlcnJpZGUgPSB7IGZhbHNlLCBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PRkYsCisgICAgICAgICAgICAgICAgdHJ1ZSwgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgfTsKKworICAgICAgICBpZiAobUlzQUVMb2NrQXZhaWxhYmxlID09IHRydWUpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeV90IGFlTG9jayA9IHNldHRpbmdzLT5maW5kKAorICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfQUVfTE9DSyk7CisgICAgICAgICAgICBpZiAoYWVMb2NrLmNvdW50ID09IDAgfHwgYWVMb2NrLmRhdGEudThbMF0gPT0KKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGKSB7CisgICAgICAgICAgICAgICAgdWludDhfdCBhZUxvY2sgPSBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PTjsKKyAgICAgICAgICAgICAgICBzZXR0aW5ncy0+dXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9MT0NLLCAmYWVMb2NrLCAxKTsKKyAgICAgICAgICAgICAgICBvdmVycmlkZS0+YXBwbHlBZUxvY2sgPSB0cnVlOworICAgICAgICAgICAgICAgIG92ZXJyaWRlLT5hZUxvY2sgPSBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PRkY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8qKgorICogT3ZlcnJpZGUgcmVzdWx0IG1ldGFkYXRhIGZvciBjYW5jZWxsaW5nIEFFIHByZWNhcHR1cmUgdHJpZ2dlciBhcHBsaWVkIGluCisgKiBoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKCkuCisgKi8KK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6b3ZlcnJpZGVSZXN1bHRGb3JQcmVjYXB0dXJlQ2FuY2VsTG9ja2VkKAorICAgICAgICBjb25zdCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSAmYWVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUsCisgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhICpzZXR0aW5ncyAvKm91dCovKSB7CisgICAgaWYgKGFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFwcGx5QWVMb2NrKSB7CisgICAgICAgIC8vIE9ubHkgZGV2aWNlcyA8PSB2My4yIHNob3VsZCBoYXZlIHRoaXMgb3ZlcnJpZGUKKyAgICAgICAgYXNzZXJ0KG1EZXZpY2VWZXJzaW9uIDw9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKTsKKyAgICAgICAgc2V0dGluZ3MtPnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfTE9DSywgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFlTG9jaywgMSk7CisgICAgfQorCisgICAgaWYgKGFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFwcGx5QWVQcmVjYXB0dXJlVHJpZ2dlcikgeworICAgICAgICAvLyBPbmx5IGRldmljZXMgPD0gdjMuMiBzaG91bGQgaGF2ZSB0aGlzIG92ZXJyaWRlCisgICAgICAgIGFzc2VydChtRGV2aWNlVmVyc2lvbiA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMik7CisgICAgICAgIHNldHRpbmdzLT51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUiwKKyAgICAgICAgICAgICAgICAmYWVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUuYWVQcmVjYXB0dXJlVHJpZ2dlciwgMSk7CisgICAgfQorfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6aW1wb3J0UmVxdWVzdCgKKyAgICAgICAgY29uc3QgQ2FwdHVyZVJlcXVlc3QmIHJlcXVlc3QsCisgICAgICAgIGhpZGxfdmVjPGJ1ZmZlcl9oYW5kbGVfdCo+JiBhbGxCdWZQdHJzLAorICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMpIHsKKyAgICBib29sIGhhc0lucHV0QnVmID0gKHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQgIT0gLTEgJiYKKyAgICAgICAgICAgIHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVySWQgIT0gMCk7CisgICAgc2l6ZV90IG51bU91dHB1dEJ1ZnMgPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnMuc2l6ZSgpOworICAgIHNpemVfdCBudW1CdWZzID0gbnVtT3V0cHV0QnVmcyArIChoYXNJbnB1dEJ1ZiA/IDEgOiAwKTsKKyAgICAvLyBWYWxpZGF0ZSBhbGwgSS9PIGJ1ZmZlcnMKKyAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3Q+IGFsbEJ1ZnM7CisgICAgaGlkbF92ZWM8dWludDY0X3Q+IGFsbEJ1ZklkczsKKyAgICBhbGxCdWZzLnJlc2l6ZShudW1CdWZzKTsKKyAgICBhbGxCdWZJZHMucmVzaXplKG51bUJ1ZnMpOworICAgIGFsbEJ1ZlB0cnMucmVzaXplKG51bUJ1ZnMpOworICAgIGFsbEZlbmNlcy5yZXNpemUobnVtQnVmcyk7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gc3RyZWFtSWRzKG51bUJ1ZnMpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgYWxsQnVmc1tpXSA9IHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5idWZmZXIuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgIGFsbEJ1Zklkc1tpXSA9IHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5idWZmZXJJZDsKKyAgICAgICAgYWxsQnVmUHRyc1tpXSA9ICZhbGxCdWZzW2ldOworICAgICAgICBzdHJlYW1JZHNbaV0gPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWQ7CisgICAgfQorICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICBhbGxCdWZzW251bU91dHB1dEJ1ZnNdID0gcmVxdWVzdC5pbnB1dEJ1ZmZlci5idWZmZXIuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgIGFsbEJ1Zklkc1tudW1PdXRwdXRCdWZzXSA9IHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVySWQ7CisgICAgICAgIGFsbEJ1ZlB0cnNbbnVtT3V0cHV0QnVmc10gPSAmYWxsQnVmc1tudW1PdXRwdXRCdWZzXTsKKyAgICAgICAgc3RyZWFtSWRzW251bU91dHB1dEJ1ZnNdID0gcmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZDsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUJ1ZnM7IGkrKykgeworICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmID0gYWxsQnVmc1tpXTsKKyAgICAgICAgdWludDY0X3QgYnVmSWQgPSBhbGxCdWZJZHNbaV07CisgICAgICAgIENpcmN1bGF0aW5nQnVmZmVycyYgY2JzID0gbUNpcmN1bGF0aW5nQnVmZmVyc1tzdHJlYW1JZHNbaV1dOworICAgICAgICBpZiAoY2JzLmNvdW50KGJ1ZklkKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoYnVmID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlcklkICUiIFBSSXU2NCAiIGhhcyBudWxsIGJ1ZmZlciBoYW5kbGUhIiwgX19GVU5DVElPTl9fLCBidWZJZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGEgbmV3bHkgc2VlbiBidWZmZXIKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBpbXBvcnRlZEJ1ZiA9IGJ1ZjsKKyAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5pbXBvcnRCdWZmZXIoaW1wb3J0ZWRCdWYpOworICAgICAgICAgICAgaWYgKGltcG9ydGVkQnVmID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IG91dHB1dCBidWZmZXIgJXp1IGlzIGludmFsaWQhIiwgX19GVU5DVElPTl9fLCBpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2JzW2J1ZklkXSA9IGltcG9ydGVkQnVmOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGFsbEJ1ZlB0cnNbaV0gPSAmY2JzW2J1ZklkXTsKKyAgICB9CisKKyAgICAvLyBBbGwgYnVmZmVycyBhcmUgaW1wb3J0ZWQuIE5vdyB2YWxpZGF0ZSBvdXRwdXQgYnVmZmVyIGFjcXVpcmUgZmVuY2VzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0RmVuY2UoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLmFjcXVpcmVGZW5jZSwgYWxsRmVuY2VzW2ldKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBvdXRwdXQgYnVmZmVyICV6dSBhY3F1aXJlIGZlbmNlIGlzIGludmFsaWQiLCBfX0ZVTkNUSU9OX18sIGkpOworICAgICAgICAgICAgY2xlYW51cEluZmxpZ2h0RmVuY2VzKGFsbEZlbmNlcywgaSk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZhbGlkYXRlIGlucHV0IGJ1ZmZlciBhY3F1aXJlIGZlbmNlcworICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICBpZiAoIXNIYW5kbGVJbXBvcnRlci5pbXBvcnRGZW5jZSgKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmlucHV0QnVmZmVyLmFjcXVpcmVGZW5jZSwgYWxsRmVuY2VzW251bU91dHB1dEJ1ZnNdKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBpbnB1dCBidWZmZXIgYWNxdWlyZSBmZW5jZSBpcyBpbnZhbGlkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIGNsZWFudXBJbmZsaWdodEZlbmNlcyhhbGxGZW5jZXMsIG51bU91dHB1dEJ1ZnMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Y2xlYW51cEluZmxpZ2h0RmVuY2VzKAorICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMsIHNpemVfdCBudW1GZW5jZXMpIHsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG51bUZlbmNlczsgaisrKSB7CisgICAgICAgIHNIYW5kbGVJbXBvcnRlci5jbG9zZUZlbmNlKGFsbEZlbmNlc1tqXSk7CisgICAgfQorfQorCitDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpSZXN1bHRCYXRjaGVyKAorICAgICAgICBjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgOiBtQ2FsbGJhY2soY2FsbGJhY2spIHt9OworCitib29sIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OkluZmxpZ2h0QmF0Y2g6OmFsbERlbGl2ZXJlZCgpIGNvbnN0IHsKKyAgICBpZiAoIW1TaHV0dGVyRGVsaXZlcmVkKSByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobVBhcnRpYWxSZXN1bHRQcm9ncmVzcyA8IG1OdW1QYXJ0aWFsUmVzdWx0cykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogbUJhdGNoQnVmcykgeworICAgICAgICBpZiAoIXBhaXIuc2Vjb25kLm1EZWxpdmVyZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZXROdW1QYXJ0aWFsUmVzdWx0cyh1aW50MzJfdCBuKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBtTnVtUGFydGlhbFJlc3VsdHMgPSBuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNldEJhdGNoZWRTdHJlYW1zKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBzdHJlYW1zVG9CYXRjaCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbVN0cmVhbXNUb0JhdGNoID0gc3RyZWFtc1RvQmF0Y2g7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2V0UmVzdWx0TWV0YWRhdGFRdWV1ZShzdGQ6OnNoYXJlZF9wdHI8UmVzdWx0TWV0YWRhdGFRdWV1ZT4gcSkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbVJlc3VsdE1ldGFkYXRhUXVldWUgPSBxOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnJlZ2lzdGVyQmF0Y2goCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPENhcHR1cmVSZXF1ZXN0PiYgcmVxdWVzdHMpIHsKKyAgICBhdXRvIGJhdGNoID0gc3RkOjptYWtlX3NoYXJlZDxJbmZsaWdodEJhdGNoPigpOworICAgIGJhdGNoLT5tRmlyc3RGcmFtZSA9IHJlcXVlc3RzWzBdLmZyYW1lTnVtYmVyOworICAgIGJhdGNoLT5tQmF0Y2hTaXplID0gcmVxdWVzdHMuc2l6ZSgpOworICAgIGJhdGNoLT5tTGFzdEZyYW1lID0gYmF0Y2gtPm1GaXJzdEZyYW1lICsgYmF0Y2gtPm1CYXRjaFNpemUgLSAxOworICAgIGJhdGNoLT5tTnVtUGFydGlhbFJlc3VsdHMgPSBtTnVtUGFydGlhbFJlc3VsdHM7CisgICAgZm9yIChpbnQgaWQgOiBtU3RyZWFtc1RvQmF0Y2gpIHsKKyAgICAgICAgYmF0Y2gtPm1CYXRjaEJ1ZnNbaWRdID0gSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2goKTsKKyAgICB9CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBtSW5mbGlnaHRCYXRjaGVzLnB1c2hfYmFjayhiYXRjaCk7Cit9CisKK3N0ZDo6cGFpcjxpbnQsIHN0ZDo6c2hhcmVkX3B0cjxDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpJbmZsaWdodEJhdGNoPj4KK0NhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OmdldEJhdGNoKAorICAgICAgICB1aW50MzJfdCBmcmFtZU51bWJlcikgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaW50IG51bUJhdGNoZXMgPSBtSW5mbGlnaHRCYXRjaGVzLnNpemUoKTsKKyAgICBpZiAobnVtQmF0Y2hlcyA9PSAwKSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihOT1RfQkFUQ0hFRCwgbnVsbHB0cik7CisgICAgfQorICAgIHVpbnQzMl90IGZyYW1lTWluID0gbUluZmxpZ2h0QmF0Y2hlc1swXS0+bUZpcnN0RnJhbWU7CisgICAgdWludDMyX3QgZnJhbWVNYXggPSBtSW5mbGlnaHRCYXRjaGVzW251bUJhdGNoZXMgLSAxXS0+bUxhc3RGcmFtZTsKKyAgICBpZiAoZnJhbWVOdW1iZXIgPCBmcmFtZU1pbiB8fCBmcmFtZU51bWJlciA+IGZyYW1lTWF4KSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihOT1RfQkFUQ0hFRCwgbnVsbHB0cik7CisgICAgfQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQmF0Y2hlczsgaSsrKSB7CisgICAgICAgIGlmIChmcmFtZU51bWJlciA+PSBtSW5mbGlnaHRCYXRjaGVzW2ldLT5tRmlyc3RGcmFtZSAmJgorICAgICAgICAgICAgICAgIGZyYW1lTnVtYmVyIDw9IG1JbmZsaWdodEJhdGNoZXNbaV0tPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihpLCBtSW5mbGlnaHRCYXRjaGVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoTk9UX0JBVENIRUQsIG51bGxwdHIpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OmNoZWNrQW5kUmVtb3ZlRmlyc3RCYXRjaCgpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmIChtSW5mbGlnaHRCYXRjaGVzLnNpemUoKSA+IDApIHsKKyAgICAgICAgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoID0gbUluZmxpZ2h0QmF0Y2hlc1swXTsKKyAgICAgICAgYm9vbCBzaG91bGRSZW1vdmUgPSBmYWxzZTsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGJhdGNoLT5tTG9jayk7CisgICAgICAgICAgICBpZiAoYmF0Y2gtPmFsbERlbGl2ZXJlZCgpKSB7CisgICAgICAgICAgICAgICAgYmF0Y2gtPm1SZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzaG91bGRSZW1vdmUgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzaG91bGRSZW1vdmUpIHsKKyAgICAgICAgICAgIG1JbmZsaWdodEJhdGNoZXMucG9wX2Zyb250KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2VuZEJhdGNoU2h1dHRlckNic0xvY2tlZChzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gpIHsKKyAgICBpZiAoYmF0Y2gtPm1TaHV0dGVyRGVsaXZlcmVkKSB7CisgICAgICAgIEFMT0dXKCIlczogYmF0Y2ggc2h1dHRlciBjYWxsYmFjayBhbHJlYWR5IHNlbnQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1DYWxsYmFjay0+bm90aWZ5KGJhdGNoLT5tU2h1dHRlck1zZ3MpOworICAgIGJhdGNoLT5tU2h1dHRlckRlbGl2ZXJlZCA9IHRydWU7CisgICAgYmF0Y2gtPm1TaHV0dGVyTXNncy5jbGVhcigpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OmZyZWVSZWxlYXNlRmVuY2VzKGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+JiByZXN1bHRzKSB7CisgICAgZm9yIChhdXRvJiByZXN1bHQgOiByZXN1bHRzKSB7CisgICAgICAgIGlmIChyZXN1bHQuaW5wdXRCdWZmZXIucmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPigKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGhhbmRsZSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIGZvciAoYXV0byYgYnVmIDogcmVzdWx0Lm91dHB1dEJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIGlmIChidWYucmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oCisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICAgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGhhbmRsZSk7CisgICAgICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2VuZEJhdGNoQnVmZmVyc0xvY2tlZChzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gpIHsKKyAgICBzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKGJhdGNoLCBtU3RyZWFtc1RvQmF0Y2gpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoCisgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCwgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc3RyZWFtcykgeworICAgIHNpemVfdCBiYXRjaFNpemUgPSAwOworICAgIGZvciAoaW50IHN0cmVhbUlkIDogc3RyZWFtcykgeworICAgICAgICBhdXRvIGl0ID0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZmluZChzdHJlYW1JZCk7CisgICAgICAgIGlmIChpdCAhPSBiYXRjaC0+bUJhdGNoQnVmcy5lbmQoKSkgeworICAgICAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgIGlmIChiYi5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYmIubUJ1ZmZlcnMuc2l6ZSgpID4gYmF0Y2hTaXplKSB7CisgICAgICAgICAgICAgICAgYmF0Y2hTaXplID0gYmIubUJ1ZmZlcnMuc2l6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBzdHJlYW0gSUQgJWQgaXMgbm90IGJhdGNoZWQhIiwgX19GVU5DVElPTl9fLCBzdHJlYW1JZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoYmF0Y2hTaXplID09IDApIHsKKyAgICAgICAgQUxPR1coIiVzOiB0aGVyZSBpcyBubyBidWZmZXIgdG8gYmUgZGVsaXZlcmVkIGZvciB0aGlzIGJhdGNoLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIGZvciAoaW50IHN0cmVhbUlkIDogc3RyZWFtcykgeworICAgICAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gYmF0Y2gtPm1CYXRjaEJ1ZnNbc3RyZWFtSWRdOworICAgICAgICAgICAgYmIubURlbGl2ZXJlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHM7CisgICAgcmVzdWx0cy5yZXNpemUoYmF0Y2hTaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJhdGNoU2l6ZTsgaSsrKSB7CisgICAgICAgIHJlc3VsdHNbaV0uZnJhbWVOdW1iZXIgPSBiYXRjaC0+bUZpcnN0RnJhbWUgKyBpOworICAgICAgICByZXN1bHRzW2ldLmZtcVJlc3VsdFNpemUgPSAwOworICAgICAgICByZXN1bHRzW2ldLnBhcnRpYWxSZXN1bHQgPSAwOyAvLyAwIGZvciBidWZmZXIgb25seSByZXN1bHRzCisgICAgICAgIHJlc3VsdHNbaV0uaW5wdXRCdWZmZXIuc3RyZWFtSWQgPSAtMTsKKyAgICAgICAgcmVzdWx0c1tpXS5pbnB1dEJ1ZmZlci5idWZmZXJJZCA9IDA7CisgICAgICAgIHJlc3VsdHNbaV0uaW5wdXRCdWZmZXIuYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgc3RkOjp2ZWN0b3I8U3RyZWFtQnVmZmVyPiBvdXRCdWZzOworICAgICAgICBmb3IgKGludCBzdHJlYW1JZCA6IHN0cmVhbXMpIHsKKyAgICAgICAgICAgIEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoJiBiYiA9IGJhdGNoLT5tQmF0Y2hCdWZzW3N0cmVhbUlkXTsKKyAgICAgICAgICAgIGlmIChiYi5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA8IGJiLm1CdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIG91dEJ1ZnMucHVzaF9iYWNrKGJiLm1CdWZmZXJzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHRzW2ldLm91dHB1dEJ1ZmZlcnMgPSBvdXRCdWZzOworICAgIH0KKyAgICBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKHJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovZmFsc2UpOworICAgIGZyZWVSZWxlYXNlRmVuY2VzKHJlc3VsdHMpOworICAgIGZvciAoaW50IHN0cmVhbUlkIDogc3RyZWFtcykgeworICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBiYXRjaC0+bUJhdGNoQnVmc1tzdHJlYW1JZF07CisgICAgICAgIGJiLm1EZWxpdmVyZWQgPSB0cnVlOworICAgICAgICBiYi5tQnVmZmVycy5jbGVhcigpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZW5kQmF0Y2hNZXRhZGF0YUxvY2tlZCgKKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gsIHVpbnQzMl90IGxhc3RQYXJ0aWFsUmVzdWx0SWR4KSB7CisgICAgaWYgKGxhc3RQYXJ0aWFsUmVzdWx0SWR4IDw9IGJhdGNoLT5tUGFydGlhbFJlc3VsdFByb2dyZXNzKSB7CisgICAgICAgIC8vIFJlc3VsdCBoYXMgYmVlbiBkZWxpdmVyZWQuIFJldHVybgorICAgICAgICBBTE9HVygiJXM6IHBhcnRpYWwgcmVzdWx0ICV1IGhhcyBiZWVuIGRlbGl2ZXJlZCIsIF9fRlVOQ1RJT05fXywgbGFzdFBhcnRpYWxSZXN1bHRJZHgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8Q2FwdHVyZVJlc3VsdD4gcmVzdWx0czsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gdG9CZVJlbW92ZWRJZHhlczsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBiYXRjaC0+bVJlc3VsdE1kcykgeworICAgICAgICB1aW50MzJfdCBwYXJ0aWFsSWR4ID0gcGFpci5maXJzdDsKKyAgICAgICAgaWYgKHBhcnRpYWxJZHggPiBsYXN0UGFydGlhbFJlc3VsdElkeCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgdG9CZVJlbW92ZWRJZHhlcy5wdXNoX2JhY2socGFydGlhbElkeCk7CisgICAgICAgIEluZmxpZ2h0QmF0Y2g6Ok1ldGFkYXRhQmF0Y2gmIG1iID0gcGFpci5zZWNvbmQ7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcCA6IG1iLm1NZHMpIHsKKyAgICAgICAgICAgIENhcHR1cmVSZXN1bHQgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmZyYW1lTnVtYmVyID0gcC5maXJzdDsKKyAgICAgICAgICAgIHJlc3VsdC5yZXN1bHQgPSBzdGQ6Om1vdmUocC5zZWNvbmQpOworICAgICAgICAgICAgcmVzdWx0LmZtcVJlc3VsdFNpemUgPSAwOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnN0cmVhbUlkID0gLTE7CisgICAgICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuYnVmZmVySWQgPSAwOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgICAgICByZXN1bHQucGFydGlhbFJlc3VsdCA9IHBhcnRpYWxJZHg7CisgICAgICAgICAgICByZXN1bHRzLnB1c2hfYmFjayhzdGQ6Om1vdmUocmVzdWx0KSk7CisgICAgICAgIH0KKyAgICAgICAgbWIubU1kcy5jbGVhcigpOworICAgIH0KKyAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiBoUmVzdWx0czsKKyAgICBoUmVzdWx0cy5zZXRUb0V4dGVybmFsKHJlc3VsdHMuZGF0YSgpLCByZXN1bHRzLnNpemUoKSk7CisgICAgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjayhoUmVzdWx0cywgLyogdHJ5V3JpdGVGbXEgKi90cnVlKTsKKyAgICBiYXRjaC0+bVBhcnRpYWxSZXN1bHRQcm9ncmVzcyA9IGxhc3RQYXJ0aWFsUmVzdWx0SWR4OworICAgIGZvciAodWludDMyX3QgcGFydGlhbElkeCA6IHRvQmVSZW1vdmVkSWR4ZXMpIHsKKyAgICAgICAgYmF0Y2gtPm1SZXN1bHRNZHMuZXJhc2UocGFydGlhbElkeCk7CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6Om5vdGlmeVNpbmdsZU1zZyhOb3RpZnlNc2cmIG1zZykgeworICAgIG1DYWxsYmFjay0+bm90aWZ5KHttc2d9KTsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6bm90aWZ5KE5vdGlmeU1zZyYgbXNnKSB7CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXI7CisgICAgaWYgKENDX0xJS0VMWShtc2cudHlwZSA9PSBNc2dUeXBlOjpTSFVUVEVSKSkgeworICAgICAgICBmcmFtZU51bWJlciA9IG1zZy5tc2cuc2h1dHRlci5mcmFtZU51bWJlcjsKKyAgICB9IGVsc2UgeworICAgICAgICBmcmFtZU51bWJlciA9IG1zZy5tc2cuZXJyb3IuZnJhbWVOdW1iZXI7CisgICAgfQorCisgICAgYXV0byBwYWlyID0gZ2V0QmF0Y2goZnJhbWVOdW1iZXIpOworICAgIGludCBiYXRjaElkeCA9IHBhaXIuZmlyc3Q7CisgICAgaWYgKGJhdGNoSWR4ID09IE5PVF9CQVRDSEVEKSB7CisgICAgICAgIG5vdGlmeVNpbmdsZU1zZyhtc2cpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2hlbiBlcnJvciBoYXBwZW5lZCwgc3RvcCBiYXRjaGluZyBmb3IgYWxsIGJhdGNoZXMgZWFybGllcgorICAgIGlmIChDQ19VTkxJS0VMWShtc2cudHlwZSA9PSBNc2dUeXBlOjpFUlJPUikpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gYmF0Y2hJZHg7IGkrKykgeworICAgICAgICAgICAgLy8gU2VuZCBiYXRjaGVkIGRhdGEgdXAKKyAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IG1JbmZsaWdodEJhdGNoZXNbMF07CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGJhdGNoLT5tTG9jayk7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoU2h1dHRlckNic0xvY2tlZChiYXRjaCk7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZChiYXRjaCk7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoTWV0YWRhdGFMb2NrZWQoYmF0Y2gsIG1OdW1QYXJ0aWFsUmVzdWx0cyk7CisgICAgICAgICAgICAgICAgaWYgKCFiYXRjaC0+YWxsRGVsaXZlcmVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBlcnJvcjogc29tZSBiYXRjaCBkYXRhIG5vdCBzZW50IGJhY2sgdG8gZnJhbWV3b3JrISIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYmF0Y2gtPm1SZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1JbmZsaWdodEJhdGNoZXMucG9wX2Zyb250KCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gU2VuZCB0aGUgZXJyb3IgdXAKKyAgICAgICAgbm90aWZ5U2luZ2xlTXNnKG1zZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gUXVldWUgc2h1dHRlciBjYWxsYmFja3MgZm9yIGZ1dHVyZSBkZWxpdmVyeQorICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IHBhaXIuc2Vjb25kOworICAgIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGJhdGNoLT5tTG9jayk7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBiYXRjaCBpcyByZW1vdmVkIChtb3N0bHkgYnkgbm90aWZ5IGVycm9yKSBiZWZvcmUgbG9jayB3YXMgYWNxdWlyZWQKKyAgICAgICAgaWYgKGJhdGNoLT5tUmVtb3ZlZCkgeworICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIG5vbi1iYXRjaCBwYXRoCisgICAgICAgICAgICBub3RpZnlTaW5nbGVNc2cobXNnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJhdGNoLT5tU2h1dHRlck1zZ3MucHVzaF9iYWNrKG1zZyk7CisgICAgICAgIGlmIChmcmFtZU51bWJlciA9PSBiYXRjaC0+bUxhc3RGcmFtZSkgeworICAgICAgICAgICAgc2VuZEJhdGNoU2h1dHRlckNic0xvY2tlZChiYXRjaCk7CisgICAgICAgIH0KKyAgICB9IC8vIGVuZCBvZiBiYXRjaCBsb2NrIHNjb3BlCisKKyAgICAvLyBzZWUgaWYgdGhlIGJhdGNoIGlzIGNvbXBsZXRlCisgICAgaWYgKGZyYW1lTnVtYmVyID09IGJhdGNoLT5tTGFzdEZyYW1lKSB7CisgICAgICAgIGNoZWNrQW5kUmVtb3ZlRmlyc3RCYXRjaCgpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjppbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKAorICAgICAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiAmcmVzdWx0cywgYm9vbCB0cnlXcml0ZUZtcSkgeworICAgIGlmIChtUHJvY2Vzc0NhcHR1cmVSZXN1bHRMb2NrLnRyeUxvY2soKSAhPSBPSykgeworICAgICAgICBBTE9HVigiJXM6IHByZXZpb3VzIGNhbGwgaXMgbm90IGZpbmlzaGVkISB3YWl0aW5nIDFzLi4uIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgaWYgKG1Qcm9jZXNzQ2FwdHVyZVJlc3VsdExvY2sudGltZWRMb2NrKDEwMDAwMDAwMDAgLyogMXMgKi8pICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBhY3F1aXJlIGxvY2sgaW4gMXMsIGNhbm5vdCBwcm9jZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodHJ5V3JpdGVGbXEgJiYgbVJlc3VsdE1ldGFkYXRhUXVldWUtPmF2YWlsYWJsZVRvV3JpdGUoKSA+IDApIHsKKyAgICAgICAgZm9yIChDYXB0dXJlUmVzdWx0ICZyZXN1bHQgOiByZXN1bHRzKSB7CisgICAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKG1SZXN1bHRNZXRhZGF0YVF1ZXVlLT53cml0ZShyZXN1bHQucmVzdWx0LmRhdGEoKSwgcmVzdWx0LnJlc3VsdC5zaXplKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gcmVzdWx0LnJlc3VsdC5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXN1bHQucmVzaXplKDApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dXKCIlczogY291bGRuJ3QgdXRpbGl6ZSBmbXEsIGZhbGwgYmFjayB0byBod2JpbmRlciIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgbUNhbGxiYWNrLT5wcm9jZXNzQ2FwdHVyZVJlc3VsdChyZXN1bHRzKTsKKyAgICBtUHJvY2Vzc0NhcHR1cmVSZXN1bHRMb2NrLnVubG9jaygpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnByb2Nlc3NPbmVDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCkgeworICAgIGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHMgPSB7cmVzdWx0fTsKKyAgICBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKHJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovdHJ1ZSk7CisgICAgZnJlZVJlbGVhc2VGZW5jZXMocmVzdWx0cyk7CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnByb2Nlc3NDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCkgeworICAgIGF1dG8gcGFpciA9IGdldEJhdGNoKHJlc3VsdC5mcmFtZU51bWJlcik7CisgICAgaW50IGJhdGNoSWR4ID0gcGFpci5maXJzdDsKKyAgICBpZiAoYmF0Y2hJZHggPT0gTk9UX0JBVENIRUQpIHsKKyAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBwYWlyLnNlY29uZDsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAvLyBDaGVjayBpZiB0aGUgYmF0Y2ggaXMgcmVtb3ZlZCAobW9zdGx5IGJ5IG5vdGlmeSBlcnJvcikgYmVmb3JlIGxvY2sgd2FzIGFjcXVpcmVkCisgICAgICAgIGlmIChiYXRjaC0+bVJlbW92ZWQpIHsKKyAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBub24tYmF0Y2ggcGF0aAorICAgICAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHF1ZXVlIG1ldGFkYXRhCisgICAgICAgIGlmIChyZXN1bHQucmVzdWx0LnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBTYXZlIGEgY29weSBvZiBtZXRhZGF0YQorICAgICAgICAgICAgYmF0Y2gtPm1SZXN1bHRNZHNbcmVzdWx0LnBhcnRpYWxSZXN1bHRdLm1NZHMucHVzaF9iYWNrKAorICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfcGFpcihyZXN1bHQuZnJhbWVOdW1iZXIsIHJlc3VsdC5yZXN1bHQpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHF1ZXVlIGJ1ZmZlcgorICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IGZpbGxlZFN0cmVhbXM7CisgICAgICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gbm9uQmF0Y2hlZEJ1ZmZlcnM7CisgICAgICAgIGZvciAoYXV0byYgYnVmZmVyIDogcmVzdWx0Lm91dHB1dEJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSBiYXRjaC0+bUJhdGNoQnVmcy5maW5kKGJ1ZmZlci5zdHJlYW1JZCk7CisgICAgICAgICAgICBpZiAoaXQgIT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBpdC0+c2Vjb25kOworICAgICAgICAgICAgICAgIGJiLm1CdWZmZXJzLnB1c2hfYmFjayhidWZmZXIpOworICAgICAgICAgICAgICAgIGZpbGxlZFN0cmVhbXMucHVzaF9iYWNrKGJ1ZmZlci5zdHJlYW1JZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5vbkJhdGNoZWRCdWZmZXJzLnB1c2hfYmFjayhidWZmZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gc2VuZCBub24tYmF0Y2hlZCBidWZmZXJzIHVwCisgICAgICAgIGlmIChub25CYXRjaGVkQnVmZmVycy5zaXplKCkgPiAwIHx8IHJlc3VsdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCAhPSAtMSkgeworICAgICAgICAgICAgQ2FwdHVyZVJlc3VsdCBub25CYXRjaGVkUmVzdWx0OworICAgICAgICAgICAgbm9uQmF0Y2hlZFJlc3VsdC5mcmFtZU51bWJlciA9IHJlc3VsdC5mcmFtZU51bWJlcjsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQuZm1xUmVzdWx0U2l6ZSA9IDA7CisgICAgICAgICAgICBub25CYXRjaGVkUmVzdWx0Lm91dHB1dEJ1ZmZlcnMgPSBub25CYXRjaGVkQnVmZmVyczsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQuaW5wdXRCdWZmZXIgPSByZXN1bHQuaW5wdXRCdWZmZXI7CisgICAgICAgICAgICBub25CYXRjaGVkUmVzdWx0LnBhcnRpYWxSZXN1bHQgPSAwOyAvLyAwIGZvciBidWZmZXIgb25seSByZXN1bHRzCisgICAgICAgICAgICBwcm9jZXNzT25lQ2FwdHVyZVJlc3VsdChub25CYXRjaGVkUmVzdWx0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHQuZnJhbWVOdW1iZXIgPT0gYmF0Y2gtPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgICAgIC8vIFNlbmQgZGF0YSB1cAorICAgICAgICAgICAgaWYgKHJlc3VsdC5wYXJ0aWFsUmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgIHNlbmRCYXRjaE1ldGFkYXRhTG9ja2VkKGJhdGNoLCByZXN1bHQucGFydGlhbFJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBzZW5kIGJ1ZmZlciB1cAorICAgICAgICAgICAgaWYgKGZpbGxlZFN0cmVhbXMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoYmF0Y2gsIGZpbGxlZFN0cmVhbXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSAvLyBlbmQgb2YgYmF0Y2ggbG9jayBzY29wZQorCisgICAgLy8gc2VlIGlmIHRoZSBiYXRjaCBpcyBjb21wbGV0ZQorICAgIGlmIChyZXN1bHQuZnJhbWVOdW1iZXIgPT0gYmF0Y2gtPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgY2hlY2tBbmRSZW1vdmVGaXJzdEJhdGNoKCk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VTZXNzaW9uIGZvbGxvdy4KK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKAorICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgdHlwZSwgY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nc19jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYU1ldGFkYXRhIG91dE1ldGFkYXRhOworICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpyYXdSZXF1ZXN0OworICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYTMtPmNvbnN0cnVjdF9kZWZhdWx0X3JlcXVlc3Rfc2V0dGluZ3MiKTsKKyAgICAgICAgcmF3UmVxdWVzdCA9IG1EZXZpY2UtPm9wcy0+Y29uc3RydWN0X2RlZmF1bHRfcmVxdWVzdF9zZXR0aW5ncyhtRGV2aWNlLCAoaW50KSB0eXBlKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgICAgICBpZiAocmF3UmVxdWVzdCA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HSSgiJXM6IHRlbXBsYXRlICVkIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBjYW1lcmEgZGV2aWNlIiwKKyAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgdHlwZSk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC5jbGVhcigpOworICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QuYXBwZW5kKHJhd1JlcXVlc3QpOworICAgICAgICAgICAgLy8gRGVyaXZlIHNvbWUgbmV3IGtleXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgICAgIGlmIChtRGVyaXZlUG9zdFJhd1NlbnNLZXkgJiYgIW1PdmVycmlkZW5SZXF1ZXN0LmV4aXN0cygKKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUKSkgeworICAgICAgICAgICAgICAgIGludDMyX3QgZGVmYXVsdEJvb3N0WzFdID0gezEwMH07CisgICAgICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QudXBkYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NULAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEJvb3N0LCAxKTsKKyAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqbWV0YUJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC5nZXRBbmRMb2NrKCk7CisgICAgICAgICAgICAgICAgY29udmVydFRvSGlkbChtZXRhQnVmZmVyLCAmb3V0TWV0YWRhdGEpOworICAgICAgICAgICAgICAgIG1PdmVycmlkZW5SZXF1ZXN0LnVubG9jayhtZXRhQnVmZmVyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29udmVydFRvSGlkbChyYXdSZXF1ZXN0LCAmb3V0TWV0YWRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgb3V0TWV0YWRhdGEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8qKgorICogTWFwIEFuZHJvaWQgTiBkYXRhc3BhY2UgZGVmaW5pdGlvbnMgYmFjayB0byBBbmRyb2lkIE0gZGVmaW5pdGlvbnMsIGZvcgorICogdXNlIHdpdGggSEFMdjMuMyBvciBvbGRlci4KKyAqCisgKiBPbmx5IG1hcCB3aGVyZSBjb3JyZXNwb25kZW5jZXMgZXhpc3QsIGFuZCBvdGhlcndpc2UgcHJlc2VydmUgdGhlIHZhbHVlLgorICovCithbmRyb2lkX2RhdGFzcGFjZSBDYW1lcmFEZXZpY2VTZXNzaW9uOjptYXBUb0xlZ2FjeURhdGFzcGFjZSgKKyAgICAgICAgYW5kcm9pZF9kYXRhc3BhY2UgZGF0YVNwYWNlKSBjb25zdCB7CisgICAgaWYgKG1EZXZpY2VWZXJzaW9uIDw9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18zKSB7CisgICAgICAgIHN3aXRjaCAoZGF0YVNwYWNlKSB7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfU1JHQl9MSU5FQVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfU1JHQl9MSU5FQVI7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfU1JHQjoKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9TUkdCOworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX0pGSUY6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfSkZJRjsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9CVDYwMV82MjU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfQlQ2MDFfNjI1OworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX0JUNjAxXzUyNToKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9CVDYwMV81MjU7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfQlQ3MDk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfQlQ3MDk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBkYXRhU3BhY2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHJldHVybiBkYXRhU3BhY2U7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjb25maWd1cmVTdHJlYW1zKAorICAgICAgICBjb25zdCBTdHJlYW1Db25maWd1cmF0aW9uJiByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLCBjb25maWd1cmVTdHJlYW1zX2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBvdXRTdHJlYW1zOworCisgICAgLy8gaG9sZCB0aGUgaW5mbGlnaHQgbG9jayBmb3IgZW50aXJlIGNvbmZpZ3VyZVN0cmVhbXMgc2NvcGUgc2luY2UgdGhlcmUgbXVzdCBub3QgYmUgYW55CisgICAgLy8gaW5mbGlnaHQgcmVxdWVzdC9yZXN1bHRzIGR1cmluZyBzdHJlYW0gY29uZmlndXJhdGlvbi4KKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgaWYgKCFtSW5mbGlnaHRCdWZmZXJzLmVtcHR5KCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY29uZmlndXJlU3RyZWFtcyB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0IGJ1ZmZlcnMhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1JbmZsaWdodEJ1ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKCFtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZW1wdHkoKSkgeworICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjb25maWd1cmVTdHJlYW1zIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQiCisgICAgICAgICAgICAgICAgIiB0cmlnZ2VyIG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLnNpemUoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG91dFN0cmVhbXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmICghbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVtcHR5KCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY29uZmlndXJlU3RyZWFtcyB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0IgorICAgICAgICAgICAgICAgICIgYm9vc3Qgb3ZlcnJpZGVzISIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICBtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuc2l6ZSgpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKHN0YXR1cyAhPSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIF9oaWRsX2NiKHN0YXR1cywgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgY2FtZXJhM19zdHJlYW1fY29uZmlndXJhdGlvbl90IHN0cmVhbV9saXN0OworICAgIGhpZGxfdmVjPGNhbWVyYTNfc3RyZWFtX3QqPiBzdHJlYW1zOworCisgICAgc3RyZWFtX2xpc3Qub3BlcmF0aW9uX21vZGUgPSAodWludDMyX3QpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24ub3BlcmF0aW9uTW9kZTsKKyAgICBzdHJlYW1fbGlzdC5udW1fc3RyZWFtcyA9IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtcy5zaXplKCk7CisgICAgc3RyZWFtcy5yZXNpemUoc3RyZWFtX2xpc3QubnVtX3N0cmVhbXMpOworICAgIHN0cmVhbV9saXN0LnN0cmVhbXMgPSBzdHJlYW1zLmRhdGEoKTsKKworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzdHJlYW1fbGlzdC5udW1fc3RyZWFtczsgaSsrKSB7CisgICAgICAgIGludCBpZCA9IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5pZDsKKworICAgICAgICBpZiAobVN0cmVhbU1hcC5jb3VudChpZCkgPT0gMCkgeworICAgICAgICAgICAgQ2FtZXJhM1N0cmVhbSBzdHJlYW07CisgICAgICAgICAgICBjb252ZXJ0RnJvbUhpZGwocmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLCAmc3RyZWFtKTsKKyAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdID0gc3RyZWFtOworICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0uZGF0YV9zcGFjZSA9IG1hcFRvTGVnYWN5RGF0YXNwYWNlKAorICAgICAgICAgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5kYXRhX3NwYWNlKTsKKyAgICAgICAgICAgIG1DaXJjdWxhdGluZ0J1ZmZlcnMuZW1wbGFjZShzdHJlYW0ubUlkLCBDaXJjdWxhdGluZ0J1ZmZlcnN7fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyB3aWR0aC9oZWlnaHQvZm9ybWF0IG11c3Qgbm90IGNoYW5nZSwgYnV0IHVzYWdlL3JvdGF0aW9uIG1pZ2h0IG5lZWQgdG8gY2hhbmdlCisgICAgICAgICAgICBpZiAobVN0cmVhbU1hcFtpZF0uc3RyZWFtX3R5cGUgIT0KKyAgICAgICAgICAgICAgICAgICAgKGludCkgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLnN0cmVhbVR5cGUgfHwKKyAgICAgICAgICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0ud2lkdGggIT0gcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLndpZHRoIHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmhlaWdodCAhPSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uaGVpZ2h0IHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmZvcm1hdCAhPSAoaW50KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uZm9ybWF0IHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmRhdGFfc3BhY2UgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBUb0xlZ2FjeURhdGFzcGFjZSggc3RhdGljX2Nhc3Q8YW5kcm9pZF9kYXRhc3BhY2VfdD4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLmRhdGFTcGFjZSkpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBzdHJlYW0gJWQgY29uZmlndXJhdGlvbiBjaGFuZ2VkISIsIF9fRlVOQ1RJT05fXywgaWQpOworICAgICAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG91dFN0cmVhbXMpOworICAgICAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5yb3RhdGlvbiA9IChpbnQpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5yb3RhdGlvbjsKKyAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLnVzYWdlID0gKHVpbnQzMl90KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0udXNhZ2U7CisgICAgICAgIH0KKyAgICAgICAgc3RyZWFtc1tpXSA9ICZtU3RyZWFtTWFwW2lkXTsKKyAgICB9CisKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYTMtPmNvbmZpZ3VyZV9zdHJlYW1zIik7CisgICAgc3RhdHVzX3QgcmV0ID0gbURldmljZS0+b3BzLT5jb25maWd1cmVfc3RyZWFtcyhtRGV2aWNlLCAmc3RyZWFtX2xpc3QpOworICAgIEFUUkFDRV9FTkQoKTsKKworICAgIC8vIEluIGNhc2UgSGFsIHJldHVybnMgZXJyb3IgbW9zdCBsaWtlbHkgaXQgd2FzIG5vdCBhYmxlIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgY29ycmVzcG9uZGluZyByZXNvdXJjZXMgb2YgdGhlIGRlbGV0ZWQgc3RyZWFtcy4KKyAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgIC8vIGRlbGV0ZSB1bnVzZWQgc3RyZWFtcywgbm90ZSB3ZSBkbyB0aGlzIGFmdGVyIGFkZGluZyBuZXcgc3RyZWFtcyB0byBlbnN1cmUgbmV3IHN0cmVhbQorICAgICAgICAvLyB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lIGFkZHJlc3MgYXMgZGVsZXRlZCBzdHJlYW0sIGFuZCBIQUwgaGFzIGEgY2hhbmNlIHRvIHJlZmVyZW5jZQorICAgICAgICAvLyB0aGUgdG8gYmUgZGVsZXRlZCBzdHJlYW0gaW4gY29uZmlndXJlX3N0cmVhbXMgY2FsbAorICAgICAgICBmb3IoYXV0byBpdCA9IG1TdHJlYW1NYXAuYmVnaW4oKTsgaXQgIT0gbVN0cmVhbU1hcC5lbmQoKTspIHsKKyAgICAgICAgICAgIGludCBpZCA9IGl0LT5maXJzdDsKKyAgICAgICAgICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgc3RyZWFtIDogcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkID09IHN0cmVhbS5pZCkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICAvLyBVbm1hcCBhbGwgYnVmZmVycyBvZiBkZWxldGVkIHN0cmVhbQorICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlIGNvbmZpZ3VyYXRpb24gY2FsbCBzdWNjZWVkcyBhbmQgSEFMCisgICAgICAgICAgICAgICAgLy8gaXMgYWJsZSB0byByZWxlYXNlIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlcyB0b28uCisgICAgICAgICAgICAgICAgY2xlYW51cEJ1ZmZlcnNMb2NrZWQoaWQpOworICAgICAgICAgICAgICAgIGl0ID0gbVN0cmVhbU1hcC5lcmFzZShpdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICsraXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFjayB2aWRlbyBzdHJlYW1zCisgICAgICAgIG1WaWRlb1N0cmVhbUlkcy5jbGVhcigpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN0cmVhbSA6IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtcykgeworICAgICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1UeXBlID09IFN0cmVhbVR5cGU6Ok9VVFBVVCAmJgorICAgICAgICAgICAgICAgIHN0cmVhbS51c2FnZSAmCisgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOjpWSURFT19FTkNPREVSKSB7CisgICAgICAgICAgICAgICAgbVZpZGVvU3RyZWFtSWRzLnB1c2hfYmFjayhzdHJlYW0uaWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1SZXN1bHRCYXRjaGVyLnNldEJhdGNoZWRTdHJlYW1zKG1WaWRlb1N0cmVhbUlkcyk7CisgICAgfQorCisgICAgaWYgKHJldCA9PSAtRUlOVkFMKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9IGVsc2UgaWYgKHJldCAhPSBPSykgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnZlcnRUb0hpZGwoc3RyZWFtX2xpc3QsICZvdXRTdHJlYW1zKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihzdGF0dXMsIG91dFN0cmVhbXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8vIE5lZWRzIHRvIGdldCBjYWxsZWQgYWZ0ZXIgYWNxdWlyaW5nICdtSW5mbGlnaHRMb2NrJwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjbGVhbnVwQnVmZmVyc0xvY2tlZChpbnQgaWQpIHsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBtQ2lyY3VsYXRpbmdCdWZmZXJzLmF0KGlkKSkgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihwYWlyLnNlY29uZCk7CisgICAgfQorICAgIG1DaXJjdWxhdGluZ0J1ZmZlcnNbaWRdLmNsZWFyKCk7CisgICAgbUNpcmN1bGF0aW5nQnVmZmVycy5lcmFzZShpZCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6dXBkYXRlQnVmZmVyQ2FjaGVzKGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgZm9yIChhdXRvJiBjYWNoZSA6IGNhY2hlc1RvUmVtb3ZlKSB7CisgICAgICAgIGF1dG8gY2JzSXQgPSBtQ2lyY3VsYXRpbmdCdWZmZXJzLmZpbmQoY2FjaGUuc3RyZWFtSWQpOworICAgICAgICBpZiAoY2JzSXQgPT0gbUNpcmN1bGF0aW5nQnVmZmVycy5lbmQoKSkgeworICAgICAgICAgICAgLy8gVGhlIHN0cmVhbSBjb3VsZCBoYXZlIGJlZW4gcmVtb3ZlZAorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgQ2lyY3VsYXRpbmdCdWZmZXJzJiBjYnMgPSBjYnNJdC0+c2Vjb25kOworICAgICAgICBhdXRvIGl0ID0gY2JzLmZpbmQoY2FjaGUuYnVmZmVySWQpOworICAgICAgICBpZiAoaXQgIT0gY2JzLmVuZCgpKSB7CisgICAgICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihpdC0+c2Vjb25kKTsKKyAgICAgICAgICAgIGNicy5lcmFzZShpdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHN0cmVhbSAlZCBidWZmZXIgJSIgUFJJdTY0ICIgaXMgbm90IGNhY2hlZCIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgY2FjaGUuc3RyZWFtSWQsIGNhY2hlLmJ1ZmZlcklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSgKKyAgICBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWVfY2IgX2hpZGxfY2IpIHsKKyAgICBfaGlkbF9jYigqbVJlcXVlc3RNZXRhZGF0YVF1ZXVlLT5nZXREZXNjKCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZSgKKyAgICBnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZV9jYiBfaGlkbF9jYikgeworICAgIF9oaWRsX2NiKCptUmVzdWx0TWV0YWRhdGFRdWV1ZS0+Z2V0RGVzYygpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6cHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVxdWVzdD4mIHJlcXVlc3RzLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4mIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RfY2IgX2hpZGxfY2IpICB7CisgICAgdXBkYXRlQnVmZmVyQ2FjaGVzKGNhY2hlc1RvUmVtb3ZlKTsKKworICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgIFN0YXR1cyBzID0gU3RhdHVzOjpPSzsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlcXVlc3RzLnNpemUoKTsgaSsrLCBudW1SZXF1ZXN0UHJvY2Vzc2VkKyspIHsKKyAgICAgICAgcyA9IHByb2Nlc3NPbmVDYXB0dXJlUmVxdWVzdChyZXF1ZXN0c1tpXSk7CisgICAgICAgIGlmIChzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHMgPT0gU3RhdHVzOjpPSyAmJiByZXF1ZXN0cy5zaXplKCkgPiAxKSB7CisgICAgICAgIG1SZXN1bHRCYXRjaGVyLnJlZ2lzdGVyQmF0Y2gocmVxdWVzdHMpOworICAgIH0KKworICAgIF9oaWRsX2NiKHMsIG51bVJlcXVlc3RQcm9jZXNzZWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1N0YXR1cyBDYW1lcmFEZXZpY2VTZXNzaW9uOjpwcm9jZXNzT25lQ2FwdHVyZVJlcXVlc3QoY29uc3QgQ2FwdHVyZVJlcXVlc3QmIHJlcXVlc3QpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgaW5pdCBmYWlsZWQgb3IgZGlzY29ubmVjdGVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBjYW1lcmEzX2NhcHR1cmVfcmVxdWVzdF90IGhhbFJlcXVlc3Q7CisgICAgaGFsUmVxdWVzdC5mcmFtZV9udW1iZXIgPSByZXF1ZXN0LmZyYW1lTnVtYmVyOworCisgICAgYm9vbCBjb252ZXJ0ZWQgPSB0cnVlOworICAgIENhbWVyYU1ldGFkYXRhIHNldHRpbmdzRm1xOyAgLy8gc2V0dGluZ3MgZnJvbSBGTVEKKyAgICBpZiAocmVxdWVzdC5mbXFTZXR0aW5nc1NpemUgPiAwKSB7CisgICAgICAgIC8vIG5vbi1ibG9ja2luZyByZWFkOyBjbGllbnQgbXVzdCB3cml0ZSBtZXRhZGF0YSBiZWZvcmUgY2FsbGluZworICAgICAgICAvLyBwcm9jZXNzT25lQ2FwdHVyZVJlcXVlc3QKKyAgICAgICAgc2V0dGluZ3NGbXEucmVzaXplKHJlcXVlc3QuZm1xU2V0dGluZ3NTaXplKTsKKyAgICAgICAgYm9vbCByZWFkID0gbVJlcXVlc3RNZXRhZGF0YVF1ZXVlLT5yZWFkKHNldHRpbmdzRm1xLmRhdGEoKSwgcmVxdWVzdC5mbXFTZXR0aW5nc1NpemUpOworICAgICAgICBpZiAocmVhZCkgeworICAgICAgICAgICAgY29udmVydGVkID0gY29udmVydEZyb21IaWRsKHNldHRpbmdzRm1xLCAmaGFsUmVxdWVzdC5zZXR0aW5ncyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhcHR1cmUgcmVxdWVzdCBzZXR0aW5ncyBtZXRhZGF0YSBjb3VsZG4ndCBiZSByZWFkIGZyb20gZm1xISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBjb252ZXJ0ZWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnZlcnRlZCA9IGNvbnZlcnRGcm9tSGlkbChyZXF1ZXN0LnNldHRpbmdzLCAmaGFsUmVxdWVzdC5zZXR0aW5ncyk7CisgICAgfQorCisgICAgaWYgKCFjb252ZXJ0ZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYXB0dXJlIHJlcXVlc3Qgc2V0dGluZ3MgbWV0YWRhdGEgaXMgY29ycnVwdCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3QqPiBhbGxCdWZQdHJzOworICAgIGhpZGxfdmVjPGludD4gYWxsRmVuY2VzOworICAgIGJvb2wgaGFzSW5wdXRCdWYgPSAocmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCAhPSAtMSAmJgorICAgICAgICAgICAgcmVxdWVzdC5pbnB1dEJ1ZmZlci5idWZmZXJJZCAhPSAwKTsKKyAgICBzaXplX3QgbnVtT3V0cHV0QnVmcyA9IHJlcXVlc3Qub3V0cHV0QnVmZmVycy5zaXplKCk7CisgICAgc2l6ZV90IG51bUJ1ZnMgPSBudW1PdXRwdXRCdWZzICsgKGhhc0lucHV0QnVmID8gMSA6IDApOworICAgIHN0YXR1cyA9IGltcG9ydFJlcXVlc3QocmVxdWVzdCwgYWxsQnVmUHRycywgYWxsRmVuY2VzKTsKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxjYW1lcmEzX3N0cmVhbV9idWZmZXJfdD4gb3V0SGFsQnVmczsKKyAgICBvdXRIYWxCdWZzLnJlc2l6ZShudW1PdXRwdXRCdWZzKTsKKyAgICBib29sIGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCA9IGZhbHNlOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhIHNldHRpbmdzT3ZlcnJpZGU7CisgICAgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGF1dG8mIGJ1ZkNhY2hlID0gbUluZmxpZ2h0QnVmZmVyc1trZXldID0gY2FtZXJhM19zdHJlYW1fYnVmZmVyX3R7fTsKKyAgICAgICAgICAgIGNvbnZlcnRGcm9tSGlkbCgKKyAgICAgICAgICAgICAgICAgICAgYWxsQnVmUHRyc1tudW1PdXRwdXRCdWZzXSwgcmVxdWVzdC5pbnB1dEJ1ZmZlci5zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICZtU3RyZWFtTWFwW3JlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWRdLCBhbGxGZW5jZXNbbnVtT3V0cHV0QnVmc10sCisgICAgICAgICAgICAgICAgICAgICZidWZDYWNoZSk7CisgICAgICAgICAgICBoYWxSZXF1ZXN0LmlucHV0X2J1ZmZlciA9ICZidWZDYWNoZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhhbFJlcXVlc3QuaW5wdXRfYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGhhbFJlcXVlc3QubnVtX291dHB1dF9idWZmZXJzID0gbnVtT3V0cHV0QnVmczsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIocmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGF1dG8mIGJ1ZkNhY2hlID0gbUluZmxpZ2h0QnVmZmVyc1trZXldID0gY2FtZXJhM19zdHJlYW1fYnVmZmVyX3R7fTsKKyAgICAgICAgICAgIGNvbnZlcnRGcm9tSGlkbCgKKyAgICAgICAgICAgICAgICAgICAgYWxsQnVmUHRyc1tpXSwgcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgJm1TdHJlYW1NYXBbcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkXSwgYWxsRmVuY2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAmYnVmQ2FjaGUpOworICAgICAgICAgICAgb3V0SGFsQnVmc1tpXSA9IGJ1ZkNhY2hlOworICAgICAgICB9CisgICAgICAgIGhhbFJlcXVlc3Qub3V0cHV0X2J1ZmZlcnMgPSBvdXRIYWxCdWZzLmRhdGEoKTsKKworICAgICAgICBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSB0cmlnZ2VyT3ZlcnJpZGU7CisgICAgICAgIGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCA9IGhhbmRsZUFlUHJlY2FwdHVyZUNhbmNlbFJlcXVlc3RMb2NrZWQoCisgICAgICAgICAgICAgICAgaGFsUmVxdWVzdCwgJnNldHRpbmdzT3ZlcnJpZGUgLypvdXQqLywgJnRyaWdnZXJPdmVycmlkZS8qb3V0Ki8pOworICAgICAgICBpZiAoYWVDYW5jZWxUcmlnZ2VyTmVlZGVkKSB7CisgICAgICAgICAgICBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXNbaGFsUmVxdWVzdC5mcmFtZV9udW1iZXJdID0KKyAgICAgICAgICAgICAgICAgICAgdHJpZ2dlck92ZXJyaWRlOworICAgICAgICAgICAgaGFsUmVxdWVzdC5zZXR0aW5ncyA9IHNldHRpbmdzT3ZlcnJpZGUuZ2V0QW5kTG9jaygpOworICAgICAgICB9CisgICAgfQorCisgICAgQVRSQUNFX0FTWU5DX0JFR0lOKCJmcmFtZSBjYXB0dXJlIiwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5wcm9jZXNzX2NhcHR1cmVfcmVxdWVzdCIpOworICAgIHN0YXR1c190IHJldCA9IG1EZXZpY2UtPm9wcy0+cHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QobURldmljZSwgJmhhbFJlcXVlc3QpOworICAgIEFUUkFDRV9FTkQoKTsKKyAgICBpZiAoYWVDYW5jZWxUcmlnZ2VyTmVlZGVkKSB7CisgICAgICAgIHNldHRpbmdzT3ZlcnJpZGUudW5sb2NrKGhhbFJlcXVlc3Quc2V0dGluZ3MpOworICAgIH0KKyAgICBpZiAocmV0ICE9IE9LKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgQUxPR0UoIiVzOiBIQUwgcHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QgY2FsbCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKworICAgICAgICBjbGVhbnVwSW5mbGlnaHRGZW5jZXMoYWxsRmVuY2VzLCBudW1CdWZzKTsKKyAgICAgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQsIHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgbUluZmxpZ2h0QnVmZmVycy5lcmFzZShrZXkpOworICAgICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5zdHJlYW1JZCwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgICAgICAgICBtSW5mbGlnaHRCdWZmZXJzLmVyYXNlKGtleSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCkgeworICAgICAgICAgICAgbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVyYXNlKHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpmbHVzaCgpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgLy8gRmx1c2ggaXMgYWx3YXlzIHN1cHBvcnRlZCBvbiBkZXZpY2UgMy4xIG9yIGxhdGVyCisgICAgICAgIHN0YXR1c190IHJldCA9IG1EZXZpY2UtPm9wcy0+Zmx1c2gobURldmljZSk7CisgICAgICAgIGlmIChyZXQgIT0gT0spIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmNsb3NlKCkgIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobVN0YXRlTG9jayk7CisgICAgaWYgKCFtQ2xvc2VkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgICAgIGlmICghbUluZmxpZ2h0QnVmZmVycy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY2xvc2Ugd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCBidWZmZXJzISIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1JbmZsaWdodEJ1ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjbG9zZSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0cmlnZ2VyIG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgICAgICAgICBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjbG9zZSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICIgUkFXIGJvb3N0IG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgICAgICAgICBtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5jbG9zZSIpOworICAgICAgICBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKworICAgICAgICAvLyBmcmVlIGFsbCBpbXBvcnRlZCBidWZmZXJzCisgICAgICAgIGZvcihhdXRvJiBwYWlyIDogbUNpcmN1bGF0aW5nQnVmZmVycykgeworICAgICAgICAgICAgQ2lyY3VsYXRpbmdCdWZmZXJzJiBidWZmZXJzID0gcGFpci5zZWNvbmQ7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHAyIDogYnVmZmVycykgeworICAgICAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5mcmVlQnVmZmVyKHAyLnNlY29uZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtQ2xvc2VkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLyoqCisgKiBTdGF0aWMgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzIGZyb20gSEFMIHRvIGluc3RhbmNlCisgKi8KK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6c1Byb2Nlc3NDYXB0dXJlUmVzdWx0KAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhbGxiYWNrX29wcyAqY2IsCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FwdHVyZV9yZXN1bHQgKmhhbF9yZXN1bHQpIHsKKyAgICBDYW1lcmFEZXZpY2VTZXNzaW9uICpkID0KKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Q2FtZXJhRGV2aWNlU2Vzc2lvbio+KHN0YXRpY19jYXN0PGNvbnN0IENhbWVyYURldmljZVNlc3Npb24qPihjYikpOworCisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSBoYWxfcmVzdWx0LT5mcmFtZV9udW1iZXI7CisgICAgYm9vbCBoYXNJbnB1dEJ1ZiA9IChoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXIgIT0gbnVsbHB0cik7CisgICAgc2l6ZV90IG51bU91dHB1dEJ1ZnMgPSBoYWxfcmVzdWx0LT5udW1fb3V0cHV0X2J1ZmZlcnM7CisgICAgc2l6ZV90IG51bUJ1ZnMgPSBudW1PdXRwdXRCdWZzICsgKGhhc0lucHV0QnVmID8gMSA6IDApOworICAgIGlmIChudW1CdWZzID4gMCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woZC0+bUluZmxpZ2h0TG9jayk7CisgICAgICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICAgICAgaW50IHN0cmVhbUlkID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+c3RyZWFtKS0+bUlkOworICAgICAgICAgICAgLy8gdmFsaWRhdGUgaWYgYnVmZmVyIGlzIGluZmxpZ2h0CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QnVmZmVycy5jb3VudChrZXkpICE9IDEpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGlucHV0IGJ1ZmZlciBmb3Igc3RyZWFtICVkIGZyYW1lICVkIGlzIG5vdCBpbmZsaWdodCEiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgICAgICBpbnQgc3RyZWFtSWQgPSBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0uc3RyZWFtKS0+bUlkOworICAgICAgICAgICAgLy8gdmFsaWRhdGUgaWYgYnVmZmVyIGlzIGluZmxpZ2h0CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QnVmZmVycy5jb3VudChrZXkpICE9IDEpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IG91dHB1dCBidWZmZXIgZm9yIHN0cmVhbSAlZCBmcmFtZSAlZCBpcyBub3QgaW5mbGlnaHQhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byB2YWxpZGF0ZS9pbXBvcnQgZmVuY2VzIGhlcmUgc2luY2Ugd2Ugd2lsbCBiZSBwYXNzaW5nIHRoZW0gdG8gY2FtZXJhIHNlcnZpY2UKKyAgICAvLyB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoaXMgZnVuY3Rpb24KKyAgICBDYXB0dXJlUmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQuZnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsKKyAgICByZXN1bHQuZm1xUmVzdWx0U2l6ZSA9IDA7CisgICAgcmVzdWx0LnBhcnRpYWxSZXN1bHQgPSBoYWxfcmVzdWx0LT5wYXJ0aWFsX3Jlc3VsdDsKKyAgICBjb252ZXJ0VG9IaWRsKGhhbF9yZXN1bHQtPnJlc3VsdCwgJnJlc3VsdC5yZXN1bHQpOworICAgIGlmIChudWxscHRyICE9IGhhbF9yZXN1bHQtPnJlc3VsdCkgeworICAgICAgICBib29sIHJlc3VsdE92ZXJyaWRlbiA9IGZhbHNlOworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woZC0+bUluZmxpZ2h0TG9jayk7CisKKyAgICAgICAgLy8gRGVyaXZlIHNvbWUgbmV3IGtleXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaWYgKGQtPm1EZXJpdmVQb3N0UmF3U2Vuc0tleSkgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgICAgICAgICAgaWYgKGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KGhhbF9yZXN1bHQtPnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NULCAmZW50cnkpID09IDApIHsKKyAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnRbZnJhbWVOdW1iZXJdID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBlbnRyeSA9IGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5maW5kKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVuZCgpID09IGVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudFtmcmFtZU51bWJlcl0gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgoaGFsX3Jlc3VsdC0+cGFydGlhbF9yZXN1bHQgPT0gZC0+bU51bVBhcnRpYWxSZXN1bHRzKSkgeworICAgICAgICAgICAgICAgIGlmICghZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50W2ZyYW1lTnVtYmVyXSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdE92ZXJyaWRlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5hcHBlbmQoaGFsX3Jlc3VsdC0+cmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE92ZXJyaWRlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZWZhdWx0Qm9vc3RbMV0gPSB7MTAwfTsKKyAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC51cGRhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRCb29zdCwgMSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVyYXNlKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZW50cnkgPSBkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZmluZChmcmFtZU51bWJlcik7CisgICAgICAgIGlmIChkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZW5kKCkgIT0gZW50cnkpIHsKKyAgICAgICAgICAgIGlmICghcmVzdWx0T3ZlcnJpZGVuKSB7CisgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5jbGVhcigpOworICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQuYXBwZW5kKGhhbF9yZXN1bHQtPnJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmVzdWx0T3ZlcnJpZGVuID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGQtPm92ZXJyaWRlUmVzdWx0Rm9yUHJlY2FwdHVyZUNhbmNlbExvY2tlZChlbnRyeS0+c2Vjb25kLAorICAgICAgICAgICAgICAgICAgICAmZC0+bU92ZXJyaWRlblJlc3VsdCk7CisgICAgICAgICAgICBpZiAoaGFsX3Jlc3VsdC0+cGFydGlhbF9yZXN1bHQgPT0gZC0+bU51bVBhcnRpYWxSZXN1bHRzKSB7CisgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVyYXNlKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHRPdmVycmlkZW4pIHsKKyAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICptZXRhQnVmZmVyID0KKyAgICAgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5nZXRBbmRMb2NrKCk7CisgICAgICAgICAgICBjb252ZXJ0VG9IaWRsKG1ldGFCdWZmZXIsICZyZXN1bHQucmVzdWx0KTsKKyAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQudW5sb2NrKG1ldGFCdWZmZXIpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuc3RyZWFtSWQgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnN0cmVhbSktPm1JZDsKKyAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5zdGF0dXMgPSAoQnVmZmVyU3RhdHVzKSBoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnN0YXR1czsKKyAgICAgICAgLy8gc2tpcCBhY3F1aXJlIGZlbmNlIHNpbmNlIGl0J3Mgbm8gdXNlIHRvIGNhbWVyYSBzZXJ2aWNlCisgICAgICAgIGlmIChoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnJlbGVhc2VfZmVuY2UgIT0gLTEpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoLypudW1GZHMqLzEsIC8qbnVtSW50cyovMCk7CisgICAgICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnJlbGVhc2VfZmVuY2U7CisgICAgICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIucmVsZWFzZUZlbmNlID0gaGFuZGxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnJlbGVhc2VGZW5jZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuc3RyZWFtSWQgPSAtMTsKKyAgICB9CisKKyAgICByZXN1bHQub3V0cHV0QnVmZmVycy5yZXNpemUobnVtT3V0cHV0QnVmcyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWQgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5zdHJlYW0pLT5tSWQ7CisgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnN0YXR1cyA9IChCdWZmZXJTdGF0dXMpIGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnN0YXR1czsKKyAgICAgICAgLy8gc2tpcCBhY3F1aXJlIGZlbmNlIHNpbmNlIGl0J3Mgb2Ygbm8gdXNlIHRvIGNhbWVyYSBzZXJ2aWNlCisgICAgICAgIGlmIChoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5yZWxlYXNlX2ZlbmNlICE9IC0xKSB7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKC8qbnVtRmRzKi8xLCAvKm51bUludHMqLzApOworICAgICAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0ucmVsZWFzZV9mZW5jZTsKKyAgICAgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnJlbGVhc2VGZW5jZSA9IGhhbmRsZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnJlbGVhc2VGZW5jZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGcmVlIGluZmxpZ2h0IHJlY29yZC9mZW5jZXMuCisgICAgLy8gRG8gdGhpcyBiZWZvcmUgY2FsbCBiYWNrIHRvIGNhbWVyYSBzZXJ2aWNlIGJlY2F1c2UgY2FtZXJhIHNlcnZpY2UgbWlnaHQganVtcCB0bworICAgIC8vIGNvbmZpZ3VyZV9zdHJlYW1zIHJpZ2h0IGFmdGVyIHRoZSBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBjYWxsIHNvIHdlIG5lZWQgdG8gZmluaXNoCisgICAgLy8gdXBkYXRpbmcgaW5mbGlnaHQgcXVldWVzIGZpcnN0CisgICAgaWYgKG51bUJ1ZnMgPiAwKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChkLT5tSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgICAgICBpbnQgc3RyZWFtSWQgPSBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5zdHJlYW0pLT5tSWQ7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBkLT5tSW5mbGlnaHRCdWZmZXJzLmVyYXNlKGtleSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU91dHB1dEJ1ZnM7IGkrKykgeworICAgICAgICAgICAgaW50IHN0cmVhbUlkID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnN0cmVhbSktPm1JZDsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGQtPm1JbmZsaWdodEJ1ZmZlcnMuZXJhc2Uoa2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkLT5tSW5mbGlnaHRCdWZmZXJzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIEFMT0dWKCIlczogaW5mbGlnaHQgYnVmZmVyIHF1ZXVlIGlzIG5vdyBlbXB0eSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICB9CisgICAgfQorCisgICAgZC0+bVJlc3VsdEJhdGNoZXIucHJvY2Vzc0NhcHR1cmVSZXN1bHQocmVzdWx0KTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpzTm90aWZ5KAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhbGxiYWNrX29wcyAqY2IsCisgICAgICAgIGNvbnN0IGNhbWVyYTNfbm90aWZ5X21zZyAqbXNnKSB7CisgICAgQ2FtZXJhRGV2aWNlU2Vzc2lvbiAqZCA9CisgICAgICAgICAgICBjb25zdF9jYXN0PENhbWVyYURldmljZVNlc3Npb24qPihzdGF0aWNfY2FzdDxjb25zdCBDYW1lcmFEZXZpY2VTZXNzaW9uKj4oY2IpKTsKKyAgICBOb3RpZnlNc2cgaGlkbE1zZzsKKyAgICBjb252ZXJ0VG9IaWRsKG1zZywgJmhpZGxNc2cpOworCisgICAgaWYgKGhpZGxNc2cudHlwZSA9PSAoTXNnVHlwZSkgQ0FNRVJBM19NU0dfRVJST1IgJiYKKyAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmVycm9yU3RyZWFtSWQgIT0gLTEpIHsKKyAgICAgICAgaWYgKGQtPm1TdHJlYW1NYXAuY291bnQoaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JTdHJlYW1JZCkgIT0gMSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiB1bmtub3duIHN0cmVhbSBJRCAlZCByZXBvcnRzIGFuIGVycm9yISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JTdHJlYW1JZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc3RhdGljX2Nhc3Q8Y2FtZXJhM19tc2dfdHlwZV90PihoaWRsTXNnLnR5cGUpID09IENBTUVSQTNfTVNHX0VSUk9SKSB7CisgICAgICAgIHN3aXRjaCAoaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JDb2RlKSB7CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfREVWSUNFOgorICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX1JFUVVFU1Q6CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfUkVTVUxUOiB7CisgICAgICAgICAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGQtPm1JbmZsaWdodExvY2spOworICAgICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZmluZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVuZCgpICE9IGVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lcmFzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYXV0byBib29zdEVudHJ5ID0gZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmZpbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgaWYgKGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lbmQoKSAhPSBib29zdEVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lcmFzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfQlVGRkVSOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgZC0+bVJlc3VsdEJhdGNoZXIubm90aWZ5KGhpZGxNc2cpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzIKK30gIC8vIG5hbWVzcGFjZSBkZXZpY2UKK30gIC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU1OWM0OAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oCkBAIC0wLDAgKzEsMzA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjNfMl9DQU1FUkFERVZJQ0UzU0VTU0lPTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRTNTRVNTSU9OX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxmbXEvTWVzc2FnZVF1ZXVlLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGluY2x1ZGUvY29udmVydC5oPgorI2luY2x1ZGUgPGRlcXVlPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgIkNhbWVyYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAiSGFuZGxlSW1wb3J0ZXIuaCIKKyNpbmNsdWRlICJoYXJkd2FyZS9jYW1lcmEzLmgiCisjaW5jbHVkZSAiaGFyZHdhcmUvY2FtZXJhX2NvbW1vbi5oIgorI2luY2x1ZGUgInV0aWxzL011dGV4LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhcHR1cmVSZXF1ZXN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkhhbFN0cmVhbUNvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtQ29uZmlndXJhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpIYW5kbGVJbXBvcnRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtTeW5jaHJvbml6ZWRSZWFkV3JpdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNZXNzYWdlUXVldWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpNdXRleDsKKworLyoqCisgKiBGdW5jdGlvbiBwb2ludGVyIHR5cGVzIHdpdGggQyBjYWxsaW5nIGNvbnZlbnRpb24gdG8KKyAqIHVzZSBmb3IgSEFMIGNhbGxiYWNrIGZ1bmN0aW9ucy4KKyAqLworZXh0ZXJuICJDIiB7CisgICAgdHlwZWRlZiB2b2lkIChjYWxsYmFja3NfcHJvY2Vzc19jYXB0dXJlX3Jlc3VsdF90KSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYTNfY2FsbGJhY2tfb3BzICosCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FwdHVyZV9yZXN1bHRfdCAqKTsKKworICAgIHR5cGVkZWYgdm9pZCAoY2FsbGJhY2tzX25vdGlmeV90KSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYTNfY2FsbGJhY2tfb3BzICosCisgICAgICAgIGNvbnN0IGNhbWVyYTNfbm90aWZ5X21zZ190ICopOworfQorCitzdHJ1Y3QgQ2FtZXJhRGV2aWNlU2Vzc2lvbiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlU2Vzc2lvbiwgcHJpdmF0ZSBjYW1lcmEzX2NhbGxiYWNrX29wcyAgeworCisgICAgQ2FtZXJhRGV2aWNlU2Vzc2lvbihjYW1lcmEzX2RldmljZV90KiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBkZXZpY2VJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYpOworICAgIH5DYW1lcmFEZXZpY2VTZXNzaW9uKCk7CisgICAgLy8gQ2FsbCBieSBDYW1lcmFEZXZpY2UgdG8gZHVtcCBhY3RpdmUgZGV2aWNlIHN0YXRlcworICAgIHZvaWQgZHVtcFN0YXRlKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogZmQpOworICAgIC8vIENhbGxlciBtdXN0IHVzZSB0aGlzIG1ldGhvZCB0byBjaGVjayBpZiBDYW1lcmFEZXZpY2VTZXNzaW9uIGN0b3IgZmFpbGVkCisgICAgYm9vbCBpc0luaXRGYWlsZWQoKSB7IHJldHVybiBtSW5pdEZhaWw7IH0KKyAgICAvLyBVc2VkIGJ5IENhbWVyYURldmljZSB0byBzaWduYWwgZXh0ZXJuYWwgY2FtZXJhIGRpc2Nvbm5lY3RlZAorICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIGJvb2wgaXNDbG9zZWQoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb24gZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKAorICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHR5cGUsIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb25maWd1cmVTdHJlYW1zKAorICAgICAgICAgICAgY29uc3QgU3RyZWFtQ29uZmlndXJhdGlvbiYgcmVxdWVzdGVkQ29uZmlndXJhdGlvbiwgY29uZmlndXJlU3RyZWFtc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSgKKyAgICAgICAgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWUoCisgICAgICAgIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlcXVlc3Q+JiByZXF1ZXN0cywKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGZsdXNoKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgLy8gcHJvdGVjdGluZyBtQ2xvc2VkL21EaXNjb25uZWN0ZWQvbUluaXRGYWlsCisgICAgbXV0YWJsZSBNdXRleCBtU3RhdGVMb2NrOworICAgIC8vIGRldmljZSBpcyBjbG9zZWQgZWl0aGVyCisgICAgLy8gICAgLSBjbG9zZWQgYnkgdXNlcgorICAgIC8vICAgIC0gaW5pdCBmYWlsZWQKKyAgICAvLyAgICAtIGNhbWVyYSBkaXNjb25uZWN0ZWQKKyAgICBib29sIG1DbG9zZWQgPSBmYWxzZTsKKworICAgIC8vIFNldCBieSBDYW1lcmFEZXZpY2UgKHdoZW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGRpc2Nvbm5lY3RlZCkKKyAgICBib29sIG1EaXNjb25uZWN0ZWQgPSBmYWxzZTsKKworICAgIHN0cnVjdCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSB7CisgICAgICAgIGJvb2wgYXBwbHlBZUxvY2s7CisgICAgICAgIHVpbnQ4X3QgYWVMb2NrOworICAgICAgICBib29sIGFwcGx5QWVQcmVjYXB0dXJlVHJpZ2dlcjsKKyAgICAgICAgdWludDhfdCBhZVByZWNhcHR1cmVUcmlnZ2VyOworICAgIH07CisKKyAgICBjYW1lcmEzX2RldmljZV90KiBtRGV2aWNlOworICAgIHVpbnQzMl90IG1EZXZpY2VWZXJzaW9uOworICAgIGJvb2wgbUlzQUVMb2NrQXZhaWxhYmxlOworICAgIGJvb2wgbURlcml2ZVBvc3RSYXdTZW5zS2V5OworICAgIHVpbnQzMl90IG1OdW1QYXJ0aWFsUmVzdWx0czsKKyAgICAvLyBTdHJlYW0gSUQgLT4gQ2FtZXJhM1N0cmVhbSBjYWNoZQorICAgIHN0ZDo6bWFwPGludCwgQ2FtZXJhM1N0cmVhbT4gbVN0cmVhbU1hcDsKKworICAgIG11dGFibGUgTXV0ZXggbUluZmxpZ2h0TG9jazsgLy8gcHJvdGVjdGluZyBtSW5mbGlnaHRCdWZmZXJzIGFuZCBtQ2lyY3VsYXRpbmdCdWZmZXJzCisgICAgLy8gKHN0cmVhbUlELCBmcmFtZU51bWJlcikgLT4gaW5mbGlnaHQgYnVmZmVyIGNhY2hlCisgICAgc3RkOjptYXA8c3RkOjpwYWlyPGludCwgdWludDMyX3Q+LCBjYW1lcmEzX3N0cmVhbV9idWZmZXJfdD4gIG1JbmZsaWdodEJ1ZmZlcnM7CisKKyAgICAvLyAoZnJhbWVOdW1iZXIsIEFFVHJpZ2dlck92ZXJyaWRlKSAtPiBpbmZsaWdodCByZXF1ZXN0IEFFVHJpZ2dlck92ZXJyaWRlcworICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZT4gbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhIG1PdmVycmlkZW5SZXN1bHQ7CisgICAgc3RkOjptYXA8dWludDMyX3QsIGJvb2w+IG1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudDsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSBtT3ZlcnJpZGVuUmVxdWVzdDsKKworICAgIC8vIGJ1ZmZlcnMgY3VycmVudGx5IGNpY3VsYXRpbmcgYmV0d2VlbiBIQUwgYW5kIGNhbWVyYSBzZXJ2aWNlCisgICAgLy8ga2V5OiBidWZmZXJJZCBzZW50IHZpYSBISURMIGludGVyZmFjZQorICAgIC8vIHZhbHVlOiBpbXBvcnRlZCBidWZmZXJfaGFuZGxlX3QKKyAgICAvLyBCdWZmZXIgd2lsbCBiZSBpbXBvcnRlZCBkdXJpbmcgcHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QgYW5kIHdpbGwgYmUgZnJlZWQKKyAgICAvLyB3aGVuIHRoZSBpdHMgc3RyZWFtIGlzIGRlbGV0ZWQgb3IgY2FtZXJhIGRldmljZSBzZXNzaW9uIGlzIGNsb3NlZAorICAgIHR5cGVkZWYgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQ2NF90LCBidWZmZXJfaGFuZGxlX3Q+IENpcmN1bGF0aW5nQnVmZmVyczsKKyAgICAvLyBTdHJlYW0gSUQgLT4gY2lyY3VsYXRpbmcgYnVmZmVycyBtYXAKKyAgICBzdGQ6Om1hcDxpbnQsIENpcmN1bGF0aW5nQnVmZmVycz4gbUNpcmN1bGF0aW5nQnVmZmVyczsKKworICAgIHN0YXRpYyBIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKKyAgICBib29sIG1Jbml0RmFpbDsKKworICAgIGNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSBtRGV2aWNlSW5mbzsKKworICAgIHVzaW5nIFJlcXVlc3RNZXRhZGF0YVF1ZXVlID0gTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXF1ZXN0TWV0YWRhdGFRdWV1ZT4gbVJlcXVlc3RNZXRhZGF0YVF1ZXVlOworICAgIHVzaW5nIFJlc3VsdE1ldGFkYXRhUXVldWUgPSBNZXNzYWdlUXVldWU8dWludDhfdCwga1N5bmNocm9uaXplZFJlYWRXcml0ZT47CisgICAgc3RkOjpzaGFyZWRfcHRyPFJlc3VsdE1ldGFkYXRhUXVldWU+IG1SZXN1bHRNZXRhZGF0YVF1ZXVlOworCisgICAgY2xhc3MgUmVzdWx0QmF0Y2hlciB7CisgICAgcHVibGljOgorICAgICAgICBSZXN1bHRCYXRjaGVyKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCBzZXROdW1QYXJ0aWFsUmVzdWx0cyh1aW50MzJfdCBuKTsKKyAgICAgICAgdm9pZCBzZXRCYXRjaGVkU3RyZWFtcyhjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBzdHJlYW1zVG9CYXRjaCk7CisgICAgICAgIHZvaWQgc2V0UmVzdWx0TWV0YWRhdGFRdWV1ZShzdGQ6OnNoYXJlZF9wdHI8UmVzdWx0TWV0YWRhdGFRdWV1ZT4gcSk7CisKKyAgICAgICAgdm9pZCByZWdpc3RlckJhdGNoKGNvbnN0IGhpZGxfdmVjPENhcHR1cmVSZXF1ZXN0PiYgcmVxdWVzdHMpOworICAgICAgICB2b2lkIG5vdGlmeShOb3RpZnlNc2cmIG1zZyk7CisgICAgICAgIHZvaWQgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoQ2FwdHVyZVJlc3VsdCYgcmVzdWx0KTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCBJbmZsaWdodEJhdGNoIHsKKyAgICAgICAgICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIGVudGlyZSBzdHJ1Y3QuIEFjcXVpcmUgdGhpcyBsb2NrIGJlZm9yZSByZWFkL3dyaXRlIGFueSBkYXRhIG9yCisgICAgICAgICAgICAvLyBjYWxsaW5nIGFueSBtZXRob2RzLiBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBhbmQgbm90aWZ5IHdpbGwgY29tcGV0ZSBmb3IgdGhpcyBsb2NrCisgICAgICAgICAgICAvLyBISURMIElQQ3MgbWlnaHQgYmUgaXNzdWVkIHdoaWxlIHRoZSBsb2NrIGlzIGhlbGQKKyAgICAgICAgICAgIE11dGV4IG1Mb2NrOworCisgICAgICAgICAgICBib29sIGFsbERlbGl2ZXJlZCgpIGNvbnN0OworCisgICAgICAgICAgICB1aW50MzJfdCBtRmlyc3RGcmFtZTsKKyAgICAgICAgICAgIHVpbnQzMl90IG1MYXN0RnJhbWU7CisgICAgICAgICAgICB1aW50MzJfdCBtQmF0Y2hTaXplOworCisgICAgICAgICAgICBib29sIG1TaHV0dGVyRGVsaXZlcmVkID0gZmFsc2U7CisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxOb3RpZnlNc2c+IG1TaHV0dGVyTXNnczsKKworICAgICAgICAgICAgc3RydWN0IEJ1ZmZlckJhdGNoIHsKKyAgICAgICAgICAgICAgICBib29sIG1EZWxpdmVyZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGN1cnJlbnRseSBhc3N1bWVzIGV2ZXJ5IGJhdGNoZWQgcmVxdWVzdCB3aWxsIG91dHB1dCB0byB0aGUgYmF0Y2hlZCBzdHJlYW0KKyAgICAgICAgICAgICAgICAvLyBhbmQgc2luY2UgSEFMIG11c3QgYWx3YXlzIHNlbmQgYnVmZmVycyBpbiBvcmRlciwgbm8gZnJhbWVOdW1iZXIgdHJhY2tpbmcgaXMKKyAgICAgICAgICAgICAgICAvLyBuZWVkZWQKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxTdHJlYW1CdWZmZXI+IG1CdWZmZXJzOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIC8vIFN0cmVhbSBJRCAtPiBWaWRlb0JhdGNoCisgICAgICAgICAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50LCBCdWZmZXJCYXRjaD4gbUJhdGNoQnVmczsKKworICAgICAgICAgICAgc3RydWN0IE1ldGFkYXRhQmF0Y2ggeworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIChmcmFtZU51bWJlciwgbWV0YWRhdGEpCisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHVpbnQzMl90LCBDYW1lcmFNZXRhZGF0YT4+IG1NZHM7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgLy8gUGFydGlhbCByZXN1bHQgSURzIHRoYXQgaGFzIGJlZW4gZGVsaXZlcmVkIHRvIGZyYW1ld29yaworICAgICAgICAgICAgdWludDMyX3QgbU51bVBhcnRpYWxSZXN1bHRzOworICAgICAgICAgICAgdWludDMyX3QgbVBhcnRpYWxSZXN1bHRQcm9ncmVzcyA9IDA7CisgICAgICAgICAgICAvLyBwYXJ0aWFsUmVzdWx0IC0+IE1ldGFkYXRhQmF0Y2gKKyAgICAgICAgICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBNZXRhZGF0YUJhdGNoPiBtUmVzdWx0TWRzOworCisgICAgICAgICAgICAvLyBTZXQgdG8gdHJ1ZSB3aGVuIGJhdGNoIGlzIHJlbW92ZWQgZnJvbSBtSW5mbGlnaHRCYXRjaGVzCisgICAgICAgICAgICAvLyBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBhbmQgbm90aWZ5IG11c3QgY2hlY2sgdGhpcyBmbGFnIGFmdGVyIGFjcXVpcmluZyBtTG9jayB0byBtYWtlCisgICAgICAgICAgICAvLyBzdXJlIHRoaXMgYmF0Y2ggaXNuJ3QgcmVtb3ZlZCB3aGlsZSB3YWl0aW5nIGZvciBtTG9jaworICAgICAgICAgICAgYm9vbCBtUmVtb3ZlZCA9IGZhbHNlOworICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgTk9UX0JBVENIRUQgPSAtMTsKKworICAgICAgICAvLyBHZXQgdGhlIGJhdGNoIGluZGV4IGFuZCBwb2ludGVyIHRvIEluZmxpZ2h0QmF0Y2ggKG51bGxwdHJ0IGlmIHRoZSBmcmFtZSBpcyBub3QgYmF0Y2hlZCkKKyAgICAgICAgLy8gQ2FsbGVyIG11c3QgYWNxdWlyZSB0aGUgSW5mbGlnaHRCYXRjaDo6bUxvY2sgYmVmb3JlIGFjY2Vzc2luZyB0aGUgSW5mbGlnaHRCYXRjaAorICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIEluZmxpZ2h0QmF0Y2ggaXMgcmVtb3ZlZCBmcm9tIG1JbmZsaWdodEJhdGNoZXMgYmVmb3JlIHRoZQorICAgICAgICAvLyBJbmZsaWdodEJhdGNoOjptTG9jayBpcyBhY3F1aXJlZCAobW9zdCBsaWtlbHkgY2F1c2VkIGJ5IGFuIGVycm9yIG5vdGlmaWNhdGlvbiksIHNvCisgICAgICAgIC8vIGNhbGxlciBtdXN0IGNoZWNrIEluZmxpZ2h0QmF0Y2g6Om1SZW1vdmVkIGZsYWcgYWZ0ZXIgdGhlIGxvY2sgaXMgYWNxdXJpZWQuCisgICAgICAgIC8vIFRoaXMgbWV0aG9kIHdpbGwgaG9sZCBSZXN1bHRCYXRjaGVyOjptTG9jayBicmllZmx5CisgICAgICAgIHN0ZDo6cGFpcjxpbnQsIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPj4gZ2V0QmF0Y2godWludDMyX3QgZnJhbWVOdW1iZXIpOworCisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBmaXJzdCBiYXRjaCBpbiBtSW5mbGlnaHRCYXRjaGVzIGlzIHJlYWR5IHRvIGJlIHJlbW92ZWQsIGFuZCByZW1vdmUgaXQgaWYgc28KKyAgICAgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBob2xkIFJlc3VsdEJhdGNoZXI6Om1Mb2NrIGJyaWVmbHkKKyAgICAgICAgdm9pZCBjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHNlbmRYWFhYIG1ldGhvZHMgbXVzdCBiZSBjYWxsZWQgd2hpbGUgdGhlIEluZmxpZ2h0QmF0Y2g6Om1Mb2NrIGlzIGxvY2tlZAorICAgICAgICAvLyBISURMIElQQyBtZXRob2RzIHdpbGwgYmUgY2FsbGVkIGR1cmluZyB0aGVzZSBtZXRob2RzLgorICAgICAgICB2b2lkIHNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoKTsKKyAgICAgICAgLy8gc2VuZCBidWZmZXJzIGZvciBhbGwgYmF0Y2hlZCBzdHJlYW1zCisgICAgICAgIHZvaWQgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZChzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gpOworICAgICAgICAvLyBzZW5kIGJ1ZmZlcnMgZm9yIHNwZWNpZmllZCBzdHJlYW1zCisgICAgICAgIHZvaWQgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZCgKKyAgICAgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gsIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIHN0cmVhbXMpOworICAgICAgICB2b2lkIHNlbmRCYXRjaE1ldGFkYXRhTG9ja2VkKAorICAgICAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCwgdWludDMyX3QgbGFzdFBhcnRpYWxSZXN1bHRJZHgpOworICAgICAgICAvLyBFbmQgb2Ygc2VuZFhYWFggbWV0aG9kcworCisgICAgICAgIC8vIGhlbHBlciBtZXRob2RzCisgICAgICAgIHZvaWQgZnJlZVJlbGVhc2VGZW5jZXMoaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mKTsKKyAgICAgICAgdm9pZCBub3RpZnlTaW5nbGVNc2coTm90aWZ5TXNnJiBtc2cpOworICAgICAgICB2b2lkIHByb2Nlc3NPbmVDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCk7CisgICAgICAgIHZvaWQgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjayhoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiAmcmVzdWx0cywgYm9vbCB0cnlXcml0ZUZtcSk7CisKKyAgICAgICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gbUluZmxpZ2h0QmF0Y2hlcywgbU51bVBhcnRpYWxSZXN1bHRzIGFuZCBtU3RyZWFtc1RvQmF0Y2gKKyAgICAgICAgLy8gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0LCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCwgbm90aWZ5IHdpbGwgY29tcGV0ZSBmb3IgdGhpcyBsb2NrCisgICAgICAgIC8vIERvIE5PVCBpc3N1ZSBISURMIElQQ3Mgd2hpbGUgaG9sZGluZyB0aGlzIGxvY2sgKGV4Y2VwdCB3aGVuIEhBTCByZXBvcnRzIGVycm9yKQorICAgICAgICBtdXRhYmxlIE11dGV4IG1Mb2NrOworICAgICAgICBzdGQ6OmRlcXVlPHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPj4gbUluZmxpZ2h0QmF0Y2hlczsKKyAgICAgICAgdWludDMyX3QgbU51bVBhcnRpYWxSZXN1bHRzOworICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IG1TdHJlYW1zVG9CYXRjaDsKKyAgICAgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiBtQ2FsbGJhY2s7CisgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxSZXN1bHRNZXRhZGF0YVF1ZXVlPiBtUmVzdWx0TWV0YWRhdGFRdWV1ZTsKKworICAgICAgICAvLyBQcm90ZWN0IGFnYWluc3QgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjaygpCisgICAgICAgIE11dGV4IG1Qcm9jZXNzQ2FwdHVyZVJlc3VsdExvY2s7CisKKyAgICB9IG1SZXN1bHRCYXRjaGVyOworCisgICAgc3RkOjp2ZWN0b3I8aW50PiBtVmlkZW9TdHJlYW1JZHM7CisKKyAgICBib29sIGluaXRpYWxpemUoKTsKKworICAgIFN0YXR1cyBpbml0U3RhdHVzKCkgY29uc3Q7CisKKyAgICAvLyBWYWxpZGF0ZSBhbmQgaW1wb3J0IHJlcXVlc3QncyBpbnB1dCBidWZmZXIgYW5kIGFjcXVpcmUgZmVuY2UKKyAgICBTdGF0dXMgaW1wb3J0UmVxdWVzdCgKKyAgICAgICAgICAgIGNvbnN0IENhcHR1cmVSZXF1ZXN0JiByZXF1ZXN0LAorICAgICAgICAgICAgaGlkbF92ZWM8YnVmZmVyX2hhbmRsZV90Kj4mIGFsbEJ1ZlB0cnMsCisgICAgICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMpOworCisgICAgc3RhdGljIHZvaWQgY2xlYW51cEluZmxpZ2h0RmVuY2VzKAorICAgICAgICAgICAgaGlkbF92ZWM8aW50PiYgYWxsRmVuY2VzLCBzaXplX3QgbnVtRmVuY2VzKTsKKworICAgIHZvaWQgY2xlYW51cEJ1ZmZlcnNMb2NrZWQoaW50IGlkKTsKKworICAgIHZvaWQgdXBkYXRlQnVmZmVyQ2FjaGVzKGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUpOworCisgICAgYW5kcm9pZF9kYXRhc3BhY2UgbWFwVG9MZWdhY3lEYXRhc3BhY2UoCisgICAgICAgICAgICBhbmRyb2lkX2RhdGFzcGFjZSBkYXRhU3BhY2UpIGNvbnN0OworCisgICAgYm9vbCBoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKAorICAgICAgICAgICAgY29uc3QgY2FtZXJhM19jYXB0dXJlX3JlcXVlc3RfdCAmaGFsUmVxdWVzdCwKKyAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLywKKyAgICAgICAgICAgIEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlICpvdmVycmlkZSAvKm91dCovKTsKKworICAgIHZvaWQgb3ZlcnJpZGVSZXN1bHRGb3JQcmVjYXB0dXJlQ2FuY2VsTG9ja2VkKAorICAgICAgICAgICAgY29uc3QgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLAorICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTWV0YWRhdGEgKnNldHRpbmdzIC8qb3V0Ki8pOworCisgICAgU3RhdHVzIHByb2Nlc3NPbmVDYXB0dXJlUmVxdWVzdChjb25zdCBDYXB0dXJlUmVxdWVzdCYgcmVxdWVzdCk7CisgICAgLyoqCisgICAgICogU3RhdGljIGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcyBmcm9tIEhBTCB0byBpbnN0YW5jZQorICAgICAqLworICAgIHN0YXRpYyBjYWxsYmFja3NfcHJvY2Vzc19jYXB0dXJlX3Jlc3VsdF90IHNQcm9jZXNzQ2FwdHVyZVJlc3VsdDsKKyAgICBzdGF0aWMgY2FsbGJhY2tzX25vdGlmeV90IHNOb3RpZnk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFM1NFU1NJT05fSApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VfM18yLmggYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZV8zXzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTg2MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VfM18yLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRV9ICisKKyNpbmNsdWRlICJ1dGlscy9NdXRleC5oIgorI2luY2x1ZGUgIkNhbWVyYU1vZHVsZS5oIgorI2luY2x1ZGUgIkNhbWVyYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpSZXF1ZXN0VGVtcGxhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6Q2FtZXJhUmVzb3VyY2VDb3N0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpUb3JjaE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNb2R1bGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OworCisvKgorICogVGhlIGNhbWVyYSBkZXZpY2UgSEFMIGltcGxlbWVudGF0aW9uIGlzIG9wZW5lZCBsYXppbHkgKHZpYSB0aGUgb3BlbiBjYWxsKQorICovCitzdHJ1Y3QgQ2FtZXJhRGV2aWNlIDogcHVibGljIElDYW1lcmFEZXZpY2UgeworICAgIC8vIENhbGxlZCBieSBwcm92aWRlciBIQUwuIFByb3ZpZGVyIEhBTCBtdXN0IGVuc3VyZSB0aGUgdW5pcXVlbmVzcyBvZgorICAgIC8vIENhbWVyYURldmljZSBvYmplY3QgcGVyIGNhbWVyYUlkLCBvciB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBDYW1lcmFEZXZpY2UKKyAgICAvLyB0cnlpbmcgdG8gYWNjZXNzIHRoZSBzYW1lIHBoeXNpY2FsIGNhbWVyYS4KKyAgICAvLyBBbHNvLCBwcm92aWRlciB3aWxsIGhhdmUgdG8ga2VlcCB0cmFjayBvZiBhbGwgQ2FtZXJhRGV2aWNlIG9iamVjdHMgaW4KKyAgICAvLyBvcmRlciB0byBub3RpZnkgQ2FtZXJhRGV2aWNlIHdoZW4gdGhlIHVuZGVybHlpbmcgY2FtZXJhIGlzIGRldGFjaGVkCisgICAgQ2FtZXJhRGV2aWNlKHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4mIGNhbWVyYURldmljZU5hbWVzKTsKKyAgICB+Q2FtZXJhRGV2aWNlKCk7CisgICAgLy8gQ2FsbGVyIG11c3QgdXNlIHRoaXMgbWV0aG9kIHRvIGNoZWNrIGlmIENhbWVyYURldmljZSBjdG9yIGZhaWxlZAorICAgIGJvb2wgaXNJbml0RmFpbGVkKCkgeyByZXR1cm4gbUluaXRGYWlsOyB9CisgICAgLy8gVXNlZCBieSBwcm92aWRlciBIQUwgdG8gc2lnbmFsIGV4dGVybmFsIGNhbWVyYSBkaXNjb25uZWN0ZWQKKyAgICB2b2lkIHNldENvbm5lY3Rpb25TdGF0dXMoYm9vbCBjb25uZWN0ZWQpOworCisgICAgLyogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlIGZvbGxvdy4gKi8KKyAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZCBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgb3BlbmluZyB0aGUgYWN0dWFsIGNhbWVyYSBkZXZpY2UKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBPcGVuIHRoZSBkZXZpY2UgSEFMIGFuZCBhbHNvIHJldHVybiBhIGRlZmF1bHQgY2FwdHVyZSBzZXNzaW9uCisgICAgUmV0dXJuPHZvaWQ+IG9wZW4oY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2ssIG9wZW5fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisKKyAgICAvLyBGb3J3YXJkIHRoZSBkdW1wIGNhbGwgdG8gdGhlIG9wZW5lZCBzZXNzaW9uLCBvciBkbyBub3RoaW5nCisgICAgUmV0dXJuPHZvaWQ+IGR1bXBTdGF0ZShjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSYgZmQpIG92ZXJyaWRlOworICAgIC8qIEVuZCBvZiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UgKi8KKworcHJpdmF0ZToKKyAgICBjb25zdCBzcDxDYW1lcmFNb2R1bGU+IG1Nb2R1bGU7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcgbUNhbWVyYUlkOworICAgIC8vIGNvbnN0IGFmdGVyIGN0b3IKKyAgICBpbnQgICBtQ2FtZXJhSWRJbnQ7CisgICAgaW50ICAgbURldmljZVZlcnNpb247CisgICAgYm9vbCAgbUluaXRGYWlsID0gZmFsc2U7CisgICAgLy8gU2V0IGJ5IHByb3ZpZGVyICh3aGVuIGV4dGVybmFsIGNhbWVyYSBpcyBjb25uZWN0ZWQvZGlzY29ubmVjdGVkKQorICAgIGJvb2wgIG1EaXNjb25uZWN0ZWQ7CisgICAgd3A8Q2FtZXJhRGV2aWNlU2Vzc2lvbj4gbVNlc3Npb24gPSBudWxscHRyOworCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgbUNhbWVyYURldmljZU5hbWVzOworCisgICAgLy8gZ2F0aW5nIGFjY2VzcyB0byBtU2Vzc2lvbiBhbmQgbURpc2Nvbm5lY3RlZAorICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CisKKyAgICAvLyBjb252ZXJ0IGNvbnZlbnRpb25hbCBIQUwgc3RhdHVzIHRvIEhJREwgU3RhdHVzCisgICAgc3RhdGljIFN0YXR1cyBnZXRIaWRsU3RhdHVzKGludCk7CisKKyAgICBTdGF0dXMgaW5pdFN0YXR1cygpIGNvbnN0OworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRV9ICmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L2NvbnZlcnQuY3BwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc4ZGViCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9jb252ZXJ0LmNwcApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMi1jb252ZXJ0LWltcGwiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiaW5jbHVkZS9jb252ZXJ0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6QnVmZmVyVXNhZ2VGbGFnczsKKworYm9vbCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJnNyYywgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqKiBkc3QpIHsKKyAgICBpZiAoc3JjLnNpemUoKSA9PSAwKSB7CisgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgbnVsbCBtZXRhZGF0YQorICAgICAgICAqZHN0ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29uc3QgdWludDhfdCogZGF0YSA9IHNyYy5kYXRhKCk7CisgICAgLy8gc2FuaXR5IGNoZWNrIHRoZSBzaXplIG9mIENhbWVyYU1ldGFkYXRhIG1hdGNoIHVuZGVybHlpbmcgY2FtZXJhX21ldGFkYXRhX3QKKyAgICBpZiAoZ2V0X2NhbWVyYV9tZXRhZGF0YV9zaXplKChjYW1lcmFfbWV0YWRhdGFfdCopZGF0YSkgIT0gc3JjLnNpemUoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGlucHV0IENhbWVyYU1ldGFkYXRhIGlzIGNvcnJ1cHQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAqZHN0ID0gKGNhbWVyYV9tZXRhZGF0YV90KikgZGF0YTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gTm90ZTogZXhpc3RpbmcgZGF0YSBpbiBkc3Qgd2lsbCBiZSBnb25lLiBDYWxsZXIgc3RpbGwgb3ducyB0aGUgbWVtb3J5IG9mIHNyYwordm9pZCBjb252ZXJ0VG9IaWRsKGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpzcmMsIENhbWVyYU1ldGFkYXRhKiBkc3QpIHsKKyAgICBpZiAoc3JjID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaXplX3Qgc2l6ZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfc2l6ZShzcmMpOworICAgIGRzdC0+c2V0VG9FeHRlcm5hbCgodWludDhfdCAqKSBzcmMsIHNpemUpOworICAgIHJldHVybjsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgU3RyZWFtICZzcmMsIENhbWVyYTNTdHJlYW0qIGRzdCkgeworICAgIGRzdC0+bUlkID0gc3JjLmlkOworICAgIGRzdC0+c3RyZWFtX3R5cGUgPSAoaW50KSBzcmMuc3RyZWFtVHlwZTsKKyAgICBkc3QtPndpZHRoID0gc3JjLndpZHRoOworICAgIGRzdC0+aGVpZ2h0ID0gc3JjLmhlaWdodDsKKyAgICBkc3QtPmZvcm1hdCA9IChpbnQpIHNyYy5mb3JtYXQ7CisgICAgZHN0LT5kYXRhX3NwYWNlID0gKGFuZHJvaWRfZGF0YXNwYWNlX3QpIHNyYy5kYXRhU3BhY2U7CisgICAgZHN0LT5yb3RhdGlvbiA9IChpbnQpIHNyYy5yb3RhdGlvbjsKKyAgICBkc3QtPnVzYWdlID0gKHVpbnQzMl90KSBzcmMudXNhZ2U7CisgICAgLy8gRmllbGRzIHRvIGJlIGZpbGxlZCBieSBIQUwgKG1heF9idWZmZXJzLCBwcml2KSBhcmUgaW5pdGlhbGl6ZWQgdG8gMAorICAgIGRzdC0+bWF4X2J1ZmZlcnMgPSAwOworICAgIGRzdC0+cHJpdiA9IDA7CisgICAgcmV0dXJuOworfQorCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgQ2FtZXJhM1N0cmVhbSogc3JjLCBIYWxTdHJlYW0qIGRzdCkgeworICAgIGRzdC0+aWQgPSBzcmMtPm1JZDsKKyAgICBkc3QtPm92ZXJyaWRlRm9ybWF0ID0gKFBpeGVsRm9ybWF0KSBzcmMtPmZvcm1hdDsKKyAgICBkc3QtPm1heEJ1ZmZlcnMgPSBzcmMtPm1heF9idWZmZXJzOworICAgIGlmIChzcmMtPnN0cmVhbV90eXBlID09IENBTUVSQTNfU1RSRUFNX09VVFBVVCkgeworICAgICAgICBkc3QtPmNvbnN1bWVyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncykwOworICAgICAgICBkc3QtPnByb2R1Y2VyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncylzcmMtPnVzYWdlOworICAgIH0gZWxzZSBpZiAoc3JjLT5zdHJlYW1fdHlwZSA9PSBDQU1FUkEzX1NUUkVBTV9JTlBVVCkgeworICAgICAgICBkc3QtPnByb2R1Y2VyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncykwOworICAgICAgICBkc3QtPmNvbnN1bWVyVXNhZ2UgPSAoQnVmZmVyVXNhZ2VGbGFncylzcmMtPnVzYWdlOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vU2hvdWxkIG5vdCByZWFjaCBoZXJlIHBlciBjdXJyZW50IEhJREwgc3BlYywgYnV0IHdlIG1pZ2h0IGVuZCB1cCBhZGRpbmcKKyAgICAgICAgLy8gYmktZGlyZWN0aW9uYWwgc3RyZWFtIHRvIEhJREwuCisgICAgICAgIEFMT0dXKCIlczogU3RyZWFtIHR5cGUgJWQgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHNyYy0+c3RyZWFtX3R5cGUpOworICAgIH0KK30KKwordm9pZCBjb252ZXJ0VG9IaWRsKGNvbnN0IGNhbWVyYTNfc3RyZWFtX2NvbmZpZ3VyYXRpb25fdCYgc3JjLCBIYWxTdHJlYW1Db25maWd1cmF0aW9uKiBkc3QpIHsKKyAgICBkc3QtPnN0cmVhbXMucmVzaXplKHNyYy5udW1fc3RyZWFtcyk7CisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNyYy5udW1fc3RyZWFtczsgaSsrKSB7CisgICAgICAgIGNvbnZlcnRUb0hpZGwoc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KHNyYy5zdHJlYW1zW2ldKSwgJmRzdC0+c3RyZWFtc1tpXSk7CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogYnVmUHRyLCBCdWZmZXJTdGF0dXMgc3RhdHVzLCBjYW1lcmEzX3N0cmVhbV90KiBzdHJlYW0sIGludCBhY3F1aXJlRmVuY2UsCisgICAgICAgIGNhbWVyYTNfc3RyZWFtX2J1ZmZlcl90KiBkc3QpIHsKKyAgICBkc3QtPnN0cmVhbSA9IHN0cmVhbTsKKyAgICBkc3QtPmJ1ZmZlciA9IGJ1ZlB0cjsKKyAgICBkc3QtPnN0YXR1cyA9IChpbnQpIHN0YXR1czsKKyAgICBkc3QtPmFjcXVpcmVfZmVuY2UgPSBhY3F1aXJlRmVuY2U7CisgICAgZHN0LT5yZWxlYXNlX2ZlbmNlID0gLTE7IC8vIG1lYW50IGZvciBIQUwgdG8gZmlsbCBpbgorfQorCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgY2FtZXJhM19ub3RpZnlfbXNnKiBzcmMsIE5vdGlmeU1zZyogZHN0KSB7CisgICAgZHN0LT50eXBlID0gKE1zZ1R5cGUpIHNyYy0+dHlwZTsKKyAgICBzd2l0Y2ggKHNyYy0+dHlwZSkgeworICAgICAgICBjYXNlIENBTUVSQTNfTVNHX0VSUk9SOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoZSBjYW1lcmEzX3N0cmVhbV90KiBtdXN0IGJlIHRoZSBzYW1lIGFzIHdoYXQgd3JhcHBlciBIQUwgcGFzc2VkIHRvIGNvbnZlbnRpb25hbAorICAgICAgICAgICAgICAgIC8vIEhBTCwgb3IgdGhlIElEIGxvb2t1cCB3aWxsIHJldHVybiBnYXJiYWdlLiBDYWxsZXIgc2hvdWxkIHZhbGlkYXRlIHRoZSBJRCBoZXJlIGlzCisgICAgICAgICAgICAgICAgLy8gaW5kZWVkIG9uZSBvZiBhY3RpdmUgc3RyZWFtIElEcworICAgICAgICAgICAgICAgIENhbWVyYTNTdHJlYW0qIHN0cmVhbSA9IHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPigKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYy0+bWVzc2FnZS5lcnJvci5lcnJvcl9zdHJlYW0pOworICAgICAgICAgICAgICAgIGRzdC0+bXNnLmVycm9yLmZyYW1lTnVtYmVyID0gc3JjLT5tZXNzYWdlLmVycm9yLmZyYW1lX251bWJlcjsKKyAgICAgICAgICAgICAgICBkc3QtPm1zZy5lcnJvci5lcnJvclN0cmVhbUlkID0gKHN0cmVhbSAhPSBudWxscHRyKSA/IHN0cmVhbS0+bUlkIDogLTE7CisgICAgICAgICAgICAgICAgZHN0LT5tc2cuZXJyb3IuZXJyb3JDb2RlID0gKEVycm9yQ29kZSkgc3JjLT5tZXNzYWdlLmVycm9yLmVycm9yX2NvZGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDQU1FUkEzX01TR19TSFVUVEVSOgorICAgICAgICAgICAgZHN0LT5tc2cuc2h1dHRlci5mcmFtZU51bWJlciA9IHNyYy0+bWVzc2FnZS5zaHV0dGVyLmZyYW1lX251bWJlcjsKKyAgICAgICAgICAgIGRzdC0+bXNnLnNodXR0ZXIudGltZXN0YW1wID0gc3JjLT5tZXNzYWdlLnNodXR0ZXIudGltZXN0YW1wOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IEhJREwgdHlwZSBjb252ZXJpb24gZmFpbGVkLiBVbmtub3duIG1zZyB0eXBlIDB4JXgiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHNyYy0+dHlwZSk7CisgICAgfQorICAgIHJldHVybjsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9pbmNsdWRlL2NvbnZlcnQuaCBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvaW5jbHVkZS9jb252ZXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY4OTFmMAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvaW5jbHVkZS9jb252ZXJ0LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19DQU1FUkFfREVWSUNFX1YzXzJfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KKworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0NBTUVSQV9ERVZJQ0VfVjNfMl9ERUZBVUxUX0lOQ0xVREVfQ09OVkVSVF9IXworCisjaW5jbHVkZSA8c2V0PgorCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmg+CisjaW5jbHVkZSAiaGFyZHdhcmUvY2FtZXJhMy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIFRoZSBjYW1lcmEzX3N0cmVhbV90IHNlbnQgdG8gY29udmVudGlvbmFsIEhBTC4gQWRkZWQgbUlkIGZpZWxkcyB0byBlbmFibGUgc3RyZWFtIElEIGxvb2t1cAorLy8gZnJvbXQgYSBkb3duY2FzdGVkIGNhbWVyYTNfc3RyZWFtCitzdHJ1Y3QgQ2FtZXJhM1N0cmVhbSA6IHB1YmxpYyBjYW1lcmEzX3N0cmVhbSB7CisgICAgaW50IG1JZDsKK307CisKKy8vICpkc3Qgd2lsbCBwb2ludCB0byB0aGUgZGF0YSBvd25lZCBieSBzcmMsIGJ1dCBzcmMgc3RpbGwgb3ducyB0aGUgZGF0YSBhZnRlciB0aGlzIGNhbGwgcmV0dXJucy4KK2Jvb2wgY29udmVydEZyb21IaWRsKGNvbnN0IENhbWVyYU1ldGFkYXRhICZzcmMsIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiogZHN0KTsKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogc3JjLCBDYW1lcmFNZXRhZGF0YSogZHN0KTsKKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgU3RyZWFtICZzcmMsIENhbWVyYTNTdHJlYW0qIGRzdCk7Cit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgQ2FtZXJhM1N0cmVhbSogc3JjLCBIYWxTdHJlYW0qIGRzdCk7CisKK3ZvaWQgY29udmVydEZyb21IaWRsKAorICAgICAgICBidWZmZXJfaGFuZGxlX3QqLCBCdWZmZXJTdGF0dXMsIGNhbWVyYTNfc3RyZWFtX3QqLCBpbnQgYWNxdWlyZUZlbmNlLCAvLyBpbnB1dHMKKyAgICAgICAgY2FtZXJhM19zdHJlYW1fYnVmZmVyX3QqIGRzdCk7CisKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBjYW1lcmEzX3N0cmVhbV9jb25maWd1cmF0aW9uX3QmIHNyYywgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiogZHN0KTsKKworLy8gVGhlIGNhbWVyYTNfc3RyZWFtX3QqIGluIHNyYyBtdXN0IGJlIHRoZSBzYW1lIGFzIHdoYXQgd3JhcHBlciBIQUwgcGFzc2VkIHRvIGNvbnZlbnRpb25hbAorLy8gSEFMLCBvciB0aGUgSUQgbG9va3VwIHdpbGwgcmV0dXJuIGdhcmJhZ2UuIENhbGxlciBzaG91bGQgdmFsaWRhdGUgdGhlIElEIGluIEVycm9yTXNnIGlzCisvLyBpbmRlZWQgb25lIG9mIGFjdGl2ZSBzdHJlYW0gSURzCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgY2FtZXJhM19ub3RpZnlfbXNnKiBzcmMsIE5vdGlmeU1zZyogZHN0KTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfQ0FNRVJBX0RFVklDRV9WM18yX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi90eXBlcy5oYWwgYi9jYW1lcmEvZGV2aWNlLzMuMi90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc2ZTkyYQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmhhbApAQCAtMCwwICsxLDk5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXM7CisKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IENhbWVyYU1ldGFkYXRhOwordHlwZWRlZiBiaXRmaWVsZDxCdWZmZXJVc2FnZT4gQnVmZmVyVXNhZ2VGbGFnczsKK3R5cGVkZWYgYml0ZmllbGQ8RGF0YXNwYWNlPiBEYXRhc3BhY2VGbGFnczsKKworLyoqCisgKiBTdHJlYW1UeXBlOgorICoKKyAqIFRoZSB0eXBlIG9mIHRoZSBjYW1lcmEgc3RyZWFtLCB3aGljaCBkZWZpbmVzIHdoZXRoZXIgdGhlIGNhbWVyYSBIQUwgZGV2aWNlIGlzCisgKiB0aGUgcHJvZHVjZXIgb3IgdGhlIGNvbnN1bWVyIGZvciB0aGF0IHN0cmVhbSwgYW5kIGhvdyB0aGUgYnVmZmVycyBvZiB0aGUKKyAqIHN0cmVhbSByZWxhdGUgdG8gdGhlIG90aGVyIHN0cmVhbXMuCisgKi8KK2VudW0gU3RyZWFtVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGlzIHN0cmVhbSBpcyBhbiBvdXRwdXQgc3RyZWFtOyB0aGUgY2FtZXJhIEhBTCBkZXZpY2UgbXVzdCBmaWxsIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoaXMgc3RyZWFtIHdpdGggbmV3bHkgY2FwdHVyZWQgb3IgcmVwcm9jZXNzZWQgaW1hZ2UgZGF0YS4KKyAgICAgKi8KKyAgICBPVVRQVVQgPSAwLAorCisgICAgLyoqCisgICAgICogVGhpcyBzdHJlYW0gaXMgYW4gaW5wdXQgc3RyZWFtOyB0aGUgY2FtZXJhIEhBTCBkZXZpY2UgbXVzdCByZWFkIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoaXMgc3RyZWFtIGFuZCBzZW5kIHRoZW0gdGhyb3VnaCB0aGUgY2FtZXJhIHByb2Nlc3NpbmcgcGlwZWxpbmUsCisgICAgICogYXMgaWYgdGhlIGJ1ZmZlciB3YXMgYSBuZXdseSBjYXB0dXJlZCBpbWFnZSBmcm9tIHRoZSBpbWFnZXIuCisgICAgICoKKyAgICAgKiBUaGUgcGl4ZWwgZm9ybWF0IGZvciBpbnB1dCBzdHJlYW0gY2FuIGJlIGFueSBmb3JtYXQgcmVwb3J0ZWQgYnkKKyAgICAgKiBhbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAuIFRoZSBwaXhlbCBmb3JtYXQgb2YgdGhlCisgICAgICogb3V0cHV0IHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8gcHJvZHVjZSB0aGUgcmVwcm9jZXNzaW5nIGRhdGEgbWF5IGJlIGFueQorICAgICAqIGZvcm1hdCByZXBvcnRlZCBieSBhbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucy4gVGhlCisgICAgICogc3VwcG9ydGVkIGlucHV0L291dHB1dCBzdHJlYW0gY29tYmluYXRpb25zIGRlcGVuZHMgdGhlIGNhbWVyYSBkZXZpY2UKKyAgICAgKiBjYXBhYmlsaXRpZXMsIHNlZSBhbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAgZm9yCisgICAgICogc3RyZWFtIG1hcCBkZXRhaWxzLgorICAgICAqCisgICAgICogVGhpcyBraW5kIG9mIHN0cmVhbSBpcyBnZW5lcmFsbHkgdXNlZCB0byByZXByb2Nlc3MgZGF0YSBpbnRvIGhpZ2hlcgorICAgICAqIHF1YWxpdHkgaW1hZ2VzICh0aGF0IG90aGVyd2lzZSB3b3VsZCBjYXVzZSBhIGZyYW1lIHJhdGUgcGVyZm9ybWFuY2UKKyAgICAgKiBsb3NzKSwgb3IgdG8gZG8gb2ZmLWxpbmUgcmVwcm9jZXNzaW5nLgorICAgICAqCisgICAgICogVGhlIHR5cGljYWwgdXNlIGNhc2VzIGFyZSBPUEFRVUUgKHR5cGljYWxseSBaU0wpIGFuZCBZVVYgcmVwcm9jZXNzaW5nLAorICAgICAqIHNlZSBTOC4yLCBTOC4zIGFuZCBTMTAgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKi8KKyAgICBJTlBVVCA9IDEKKworfTsKKworLyoqCisgKiBTdHJlYW1Sb3RhdGlvbjoKKyAqCisgKiBUaGUgcmVxdWlyZWQgY291bnRlcmNsb2Nrd2lzZSByb3RhdGlvbiBvZiBjYW1lcmEgc3RyZWFtLgorICovCitlbnVtIFN0cmVhbVJvdGF0aW9uIDogdWludDMyX3QgIHsKKyAgICAvKiogTm8gcm90YXRpb24gKi8KKyAgICBST1RBVElPTl8wID0gMCwKKworICAgIC8qKiBSb3RhdGUgYnkgOTAgZGVncmVlIGNvdW50ZXJjbG9ja3dpc2UgKi8KKyAgICBST1RBVElPTl85MCA9IDEsCisKKyAgICAvKiogUm90YXRlIGJ5IDE4MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZSAqLworICAgIFJPVEFUSU9OXzE4MCA9IDIsCisKKyAgICAvKiogUm90YXRlIGJ5IDI3MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZSAqLworICAgIFJPVEFUSU9OXzI3MCA9IDMKKworfTsKKworLyoqCisgKiBTdHJlYW1Db25maWd1cmF0aW9uTW9kZToKKyAqCisgKiBUaGlzIGRlZmluZXMgdGhlIGdlbmVyYWwgb3BlcmF0aW9uIG1vZGUgZm9yIHRoZSBIQUwgKGZvciBhIGdpdmVuIHN0cmVhbQorICogY29uZmlndXJhdGlvbikgd2hlcmUgbW9kZXMgYmVzaWRlcyBOT1JNQUwgaGF2ZSBkaWZmZXJlbnQgc2VtYW50aWNzLCBhbmQKKyAqIHVzdWFsbHkgbGltaXQgdGhlIGdlbmVyYWxpdHkgb2YgdGhlIEFQSSBpbiBleGNoYW5nZSBmb3IgaGlnaGVyIHBlcmZvcm1hbmNlIGluCisgKiBzb21lIHBhcnRpY3VsYXIgYXJlYS4KKyAqLworZW51bSBTdHJlYW1Db25maWd1cmF0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBOb3JtYWwgc3RyZWFtIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uIG1vZGUuIFRoaXMgaXMgdGhlIGRlZmF1bHQgY2FtZXJhCisgICAgICogb3BlcmF0aW9uIG1vZGUsIHdoZXJlIGFsbCBzZW1hbnRpY3Mgb2YgSEFMIEFQSXMgYW5kIG1ldGFkYXRhIGNvbnRyb2xzCisgICAgICogYXBwbHkuCisgICAgICovCisgICAgTk9STUFMX01PREUgPSAwLAorCisgICAgLyoqCisgICAgICogU3BlY2lhbCBjb25zdHJhaW5lZCBoaWdoIHNwZWVkIG9wZXJhdGlvbiBtb2RlIGZvciBkZXZpY2VzIHRoYXQgY2FuIG5vdAorICAgICAqIHN1cHBvcnQgaGlnaCBzcGVlZCBvdXRwdXQgaW4gTk9STUFMIG1vZGUuIEFsbCBzdHJlYW1zIGluIHRoaXMKKyAgICAgKiBjb25maWd1cmF0aW9uIGFyZSBvcGVyYXRpbmcgYXQgaGlnaCBzcGVlZCBtb2RlIGFuZCBoYXZlIGRpZmZlcmVudAorICAgICAqIGNoYXJhY3RlcmlzdGljcyBhbmQgbGltaXRhdGlvbnMgdG8gYWNoaWV2ZSBoaWdoIHNwZWVkIG91dHB1dC4gVGhlIE5PUk1BTAorICAgICAqIG1vZGUgY2FuIHN0aWxsIGJlIHVzZWQgZm9yIGhpZ2ggc3BlZWQgb3V0cHV0IGlmIHRoZSBIQUwgY2FuIHN1cHBvcnQgaGlnaAorICAgICAqIHNwZWVkIG91dHB1dCB3aGlsZSBzYXRpc2Z5aW5nIGFsbCB0aGUgc2VtYW50aWNzIG9mIEhBTCBBUElzIGFuZCBtZXRhZGF0YQorICAgICAqIGNvbnRyb2xzLiBJdCBpcyByZWNvbW1lbmRlZCBmb3IgdGhlIEhBTCB0byBzdXBwb3J0IGhpZ2ggc3BlZWQgb3V0cHV0IGluCisgICAgICogTk9STUFMIG1vZGUgKGJ5IGFkdmVydGlzaW5nIHRoZSBoaWdoIHNwZWVkIEZQUyByYW5nZXMgaW4KKyAgICAgKiBhbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMpIGlmIHBvc3NpYmxlLgorICAgICAqCisgICAgICogVGhpcyBtb2RlIGhhcyBiZWxvdyBsaW1pdGF0aW9ucy9yZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiAgIDEuIFRoZSBIQUwgbXVzdCBzdXBwb3J0IHVwIHRvIDIgc3RyZWFtcyB3aXRoIHNpemVzIHJlcG9ydGVkIGJ5CisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucy4KKyAgICAgKiAgIDIuIEluIHRoaXMgbW9kZSwgdGhlIEhBTCBpcyBleHBlY3RlZCB0byBvdXRwdXQgdXAgdG8gMTIwZnBzIG9yCisgICAgICogICAgICBoaWdoZXIuIFRoaXMgbW9kZSBtdXN0IHN1cHBvcnQgdGhlIHRhcmdldGVkIEZQUyByYW5nZSBhbmQgc2l6ZQorICAgICAqICAgICAgY29uZmlndXJhdGlvbnMgcmVwb3J0ZWQgYnkKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zLgorICAgICAqICAgMy4gVGhlIEhBTCBtdXN0IHN1cHBvcnQgSU1QTEVNRU5UQVRJT05fREVGSU5FRCBvdXRwdXQKKyAgICAgKiAgICAgIHN0cmVhbSBmb3JtYXQuCisgICAgICogICA0LiBUbyBhY2hpZXZlIGVmZmljaWVudCBoaWdoIHNwZWVkIHN0cmVhbWluZywgdGhlIEhBTCBtYXkgaGF2ZSB0bworICAgICAqICAgICAgYWdncmVnYXRlIG11bHRpcGxlIGZyYW1lcyB0b2dldGhlciBhbmQgc2VuZCB0byBjYW1lcmEgZGV2aWNlIGZvcgorICAgICAqICAgICAgcHJvY2Vzc2luZyB3aGVyZSB0aGUgcmVxdWVzdCBjb250cm9scyBhcmUgc2FtZSBmb3IgYWxsIHRoZSBmcmFtZXMgaW4KKyAgICAgKiAgICAgIHRoaXMgYmF0Y2ggKGJhdGNoIG1vZGUpLiBUaGUgSEFMIG11c3Qgc3VwcG9ydCBtYXggYmF0Y2ggc2l6ZSBhbmQgdGhlCisgICAgICogICAgICBtYXggYmF0Y2ggc2l6ZSByZXF1aXJlbWVudHMgZGVmaW5lZCBieQorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMuCisgICAgICogICA1LiBJbiB0aGlzIG1vZGUsIHRoZSBIQUwgbXVzdCBvdmVycmlkZSBhZU1vZGUsIGF3Yk1vZGUsIGFuZCBhZk1vZGUgdG8KKyAgICAgKiAgICAgIE9OLCBPTiwgYW5kIENPTlRJTlVPVVNfVklERU8sIHJlc3BlY3RpdmVseS4gQWxsIHBvc3QtcHJvY2Vzc2luZworICAgICAqICAgICAgYmxvY2sgbW9kZSBjb250cm9scyBtdXN0IGJlIG92ZXJyaWRkZW4gdG8gYmUgRkFTVC4gVGhlcmVmb3JlLCBubworICAgICAqICAgICAgbWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZSBhbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgaXMKKyAgICAgKiAgICAgIHBvc3NpYmxlLiBBbGwgb3RoZXIgY29udHJvbHMgb3BlcmF0ZSB0aGUgc2FtZSBhcyB3aGVuCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wubW9kZSA9PSBBVVRPLiBUaGlzIG1lYW5zIHRoYXQgYWxsIG90aGVyCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuKiBmaWVsZHMgbXVzdCBjb250aW51ZSB0byB3b3JrLCBzdWNoIGFzCisgICAgICoKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbgorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFlTG9jaworICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmF3YkxvY2sKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucworICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcgorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIKKyAgICAgKgorICAgICAqICAgICAgT3V0c2lkZSBvZiBhbmRyb2lkLmNvbnRyb2wuKiwgdGhlIGZvbGxvd2luZyBjb250cm9scyBtdXN0IHdvcms6CisgICAgICoKKyAgICAgKiAgICAgIGFuZHJvaWQuZmxhc2gubW9kZSAoVE9SQ0ggbW9kZSBvbmx5LCBhdXRvbWF0aWMgZmxhc2ggZm9yIHN0aWxsCisgICAgICogICAgICAgICAgY2FwdHVyZSBtdXN0IG5vdCB3b3JrIHNpbmNlIGFlTW9kZSBpcyBPTikKKyAgICAgKiAgICAgIGFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUgKGlmIGl0IGlzIHN1cHBvcnRlZCkKKyAgICAgKiAgICAgIGFuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24KKyAgICAgKiAgICAgIGFuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSAoaWYgaXQgaXMgc3VwcG9ydGVkKQorICAgICAqICAgNi4gVG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgZGF0YSBwYXNzZWQgYWNyb3NzIHByb2Nlc3MgYm91bmRhcmllcyBhdAorICAgICAqICAgICAgaGlnaCBmcmFtZSByYXRlLCB3aXRoaW4gb25lIGJhdGNoLCBjYW1lcmEgZnJhbWV3b3JrIG9ubHkgcHJvcGFnYXRlcworICAgICAqICAgICAgdGhlIGxhc3Qgc2h1dHRlciBub3RpZnkgYW5kIHRoZSBsYXN0IGNhcHR1cmUgcmVzdWx0cyAoaW5jbHVkaW5nIHBhcnRpYWwKKyAgICAgKiAgICAgIHJlc3VsdHMgYW5kIGZpbmFsIHJlc3VsdCkgdG8gdGhlIGFwcC4gVGhlIHNodXR0ZXIgbm90aWZpZXMgYW5kIGNhcHR1cmUKKyAgICAgKiAgICAgIHJlc3VsdHMgZm9yIHRoZSBvdGhlciByZXF1ZXN0cyBpbiB0aGUgYmF0Y2ggYXJlIGRlcml2ZWQgYnkKKyAgICAgKiAgICAgIHRoZSBjYW1lcmEgZnJhbWV3b3JrLiBBcyBhIHJlc3VsdCwgdGhlIEhBTCBjYW4gcmV0dXJuIGVtcHR5IG1ldGFkYXRhCisgICAgICogICAgICBleGNlcHQgZm9yIHRoZSBsYXN0IHJlc3VsdCBpbiB0aGUgYmF0Y2guCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhpZ2ggc3BlZWQgc3RyZWFtIHJlcXVpcmVtZW50cywgc2VlCisgICAgICogYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMgYW5kCisgICAgICogQ09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTyBjYXBhYmlsaXR5IGRlZmluZWQgaW4KKyAgICAgKiBhbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzLgorICAgICAqCisgICAgICogVGhpcyBtb2RlIG9ubHkgbmVlZHMgdG8gYmUgc3VwcG9ydGVkIGJ5IEhBTHMgdGhhdCBpbmNsdWRlCisgICAgICogQ09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTyBpbiB0aGUgYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcworICAgICAqIHN0YXRpYyBtZXRhZGF0YS4KKyAgICAgKi8KKyAgICBDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREUgPSAxLAorCisgICAgLyoqCisgICAgICogQSBzZXQgb2YgdmVuZG9yLWRlZmluZWQgb3BlcmF0aW5nIG1vZGVzLCBmb3IgY3VzdG9tIGRlZmF1bHQgY2FtZXJhCisgICAgICogYXBwbGljYXRpb24gZmVhdHVyZXMgdGhhdCBjYW4ndCBiZSBpbXBsZW1lbnRlZCBpbiB0aGUgZnVsbHkgZmxleGlibGUgZmFzaGlvbgorICAgICAqIHJlcXVpcmVkIGZvciBOT1JNQUxfTU9ERS4KKyAgICAgKi8KKyAgICBWRU5ET1JfTU9ERV8wID0gMHg4MDAwLAorICAgIFZFTkRPUl9NT0RFXzEsCisgICAgVkVORE9SX01PREVfMiwKKyAgICBWRU5ET1JfTU9ERV8zLAorICAgIFZFTkRPUl9NT0RFXzQsCisgICAgVkVORE9SX01PREVfNSwKKyAgICBWRU5ET1JfTU9ERV82LAorICAgIFZFTkRPUl9NT0RFXzcKK307CisKKy8qKgorICogU3RyZWFtOgorICoKKyAqIEEgZGVzY3JpcHRvciBmb3IgYSBzaW5nbGUgY2FtZXJhIGlucHV0IG9yIG91dHB1dCBzdHJlYW0uIEEgc3RyZWFtIGlzIGRlZmluZWQKKyAqIGJ5IHRoZSBmcmFtZXdvcmsgYnkgaXRzIGJ1ZmZlciByZXNvbHV0aW9uIGFuZCBmb3JtYXQsIGFuZCBhZGRpdGlvbmFsbHkgYnkgdGhlCisgKiBIQUwgd2l0aCB0aGUgZ3JhbGxvYyB1c2FnZSBmbGFncyBhbmQgdGhlIG1heGltdW0gaW4tZmxpZ2h0IGJ1ZmZlciBjb3VudC4KKyAqCisgKiBJZiBhIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIHJldHVybnMgYSBub24tZmF0YWwgZXJyb3IsIGFsbCBhY3RpdmUgc3RyZWFtcworICogcmVtYWluIHZhbGlkIGFzIGlmIGNvbmZpZ3VyZVN0cmVhbXMoKSBoYWQgbm90IGJlZW4gY2FsbGVkLgorICoKKyAqLworc3RydWN0IFN0cmVhbSB7CisgICAgLyoqCisgICAgICogU3RyZWFtIElEIC0gYSBub25uZWdhdGl2ZSBpbnRlZ2VyIGlkZW50aWZpZXIgZm9yIGEgc3RyZWFtLgorICAgICAqCisgICAgICogVGhlIGlkZW50aWNhbCBzdHJlYW0gSUQgbXVzdCByZWZlcmVuY2UgdGhlIHNhbWUgc3RyZWFtLCB3aXRoIHRoZSBzYW1lCisgICAgICogd2lkdGgvaGVpZ2h0L2Zvcm1hdCwgYWNyb3NzIGNvbnNlY3V0aXZlIGNhbGxzIHRvIGNvbmZpZ3VyZVN0cmVhbXMuCisgICAgICoKKyAgICAgKiBJZiBwcmV2aW91c2x5LXVzZWQgc3RyZWFtIElEIGlzIG5vdCB1c2VkIGluIGEgbmV3IGNhbGwgdG8KKyAgICAgKiBjb25maWd1cmVTdHJlYW1zLCB0aGVuIHRoYXQgc3RyZWFtIGlzIG5vIGxvbmdlciBhY3RpdmUuIFN1Y2ggYSBzdHJlYW0gSUQKKyAgICAgKiBtYXkgYmUgcmV1c2VkIGluIGEgZnV0dXJlIGNvbmZpZ3VyZVN0cmVhbXMgd2l0aCBhIG5ldworICAgICAqIHdpZHRoL2hlaWdodC9mb3JtYXQuCisgICAgICoKKyAgICAgKi8KKyAgICBpbnQzMl90IGlkOworCisgICAgLyoqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIHN0cmVhbSAoaW5wdXQgdnMgb3V0cHV0LCBldGMpLgorICAgICAqLworICAgIFN0cmVhbVR5cGUgc3RyZWFtVHlwZTsKKworICAgIC8qKgorICAgICAqIFRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0KKyAgICAgKi8KKyAgICB1aW50MzJfdCB3aWR0aDsKKworICAgIC8qKgorICAgICAqIFRoZSBoZWlnaHQgaW4gcGl4ZWxzIG9mIHRoZSBidWZmZXJzIGluIHRoaXMgc3RyZWFtCisgICAgICovCisgICAgdWludDMyX3QgaGVpZ2h0OworCisgICAgLyoqCisgICAgICogVGhlIHBpeGVsIGZvcm1hdCBmb3IgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0uCisgICAgICoKKyAgICAgKiBJZiBJTVBMRU1FTlRBVElPTl9ERUZJTkVEIGlzIHVzZWQsIHRoZW4gdGhlIHBsYXRmb3JtCisgICAgICogZ3JhbGxvYyBtb2R1bGUgbXVzdCBzZWxlY3QgYSBmb3JtYXQgYmFzZWQgb24gdGhlIHVzYWdlIGZsYWdzIHByb3ZpZGVkIGJ5CisgICAgICogdGhlIGNhbWVyYSBkZXZpY2UgYW5kIHRoZSBvdGhlciBlbmRwb2ludCBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICovCisgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjpQaXhlbEZvcm1hdCBmb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZ3JhbGxvYyB1c2FnZSBmbGFncyBmb3IgdGhpcyBzdHJlYW0sIGFzIG5lZWRlZCBieSB0aGUgY29uc3VtZXIgb2YKKyAgICAgKiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGZsYWdzIGZyb20gdGhlIHByb2R1Y2VyIGFuZCB0aGUgY29uc3VtZXIgbXVzdCBiZSBjb21iaW5lZAorICAgICAqIHRvZ2V0aGVyIGFuZCB0aGVuIHBhc3NlZCB0byB0aGUgcGxhdGZvcm0gZ3JhbGxvYyBIQUwgbW9kdWxlIGZvcgorICAgICAqIGFsbG9jYXRpbmcgdGhlIGdyYWxsb2MgYnVmZmVycyBmb3IgZWFjaCBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG1heSB1c2UgdGhlc2UgY29uc3VtZXIgZmxhZ3MgdG8gZGVjaWRlIHN0cmVhbSBjb25maWd1cmF0aW9uLiBGb3IKKyAgICAgKiBzdHJlYW1UeXBlIElOUFVULCB0aGUgdmFsdWUgb2YgdGhpcyBmaWVsZCBpcyBhbHdheXMgMC4gRm9yIGFsbCBzdHJlYW1zCisgICAgICogcGFzc2VkIHZpYSBjb25maWd1cmVTdHJlYW1zKCksIHRoZSBIQUwgbXVzdCBzZXQgaXRzIG93bgorICAgICAqIGFkZGl0aW9uYWwgdXNhZ2UgZmxhZ3MgaW4gaXRzIG91dHB1dCBIYWxTdHJlYW1Db25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGZsYWcgZm9yIGFuIG91dHB1dCBzdHJlYW0gbWF5IGJlIGJpdHdpc2UgY29tYmluYXRpb24gb2YgdXNhZ2UKKyAgICAgKiBmbGFncyBmb3IgbXVsdGlwbGUgY29uc3VtZXJzLCBmb3IgdGhlIHB1cnBvc2Ugb2Ygc2hhcmluZyBvbmUgY2FtZXJhCisgICAgICogc3RyZWFtIGJldHdlZW4gdGhvc2UgY29uc3VtZXJzLiBUaGUgSEFMIG11c3QgZmFpbCBjb25maWd1cmVTdHJlYW1zIGNhbGwKKyAgICAgKiB3aXRoIElMTEVHQUxfQVJHVU1FTlQgaWYgdGhlIGNvbWJpbmVkIGZsYWdzIGNhbm5vdCBiZSBzdXBwb3J0ZWQgZHVlIHRvCisgICAgICogaW1jb21wYXRpYmxlIGJ1ZmZlciBmb3JtYXQsIGRhdGFTcGFjZSwgb3Igb3RoZXIgaGFyZHdhcmUgbGltaXRhdGlvbnMuCisgICAgICovCisgICAgQnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKKworICAgIC8qKgorICAgICAqIEEgZmllbGQgdGhhdCBkZXNjcmliZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIuIFRoZSBmb3JtYXQgYW5kIGJ1ZmZlcgorICAgICAqIGRpbWVuc2lvbnMgZGVmaW5lIHRoZSBtZW1vcnkgbGF5b3V0IGFuZCBzdHJ1Y3R1cmUgb2YgdGhlIHN0cmVhbSBidWZmZXJzLAorICAgICAqIHdoaWxlIGRhdGFTcGFjZSBkZWZpbmVzIHRoZSBtZWFuaW5nIG9mIHRoZSBkYXRhIHdpdGhpbiB0aGUgYnVmZmVyLgorICAgICAqCisgICAgICogRm9yIG1vc3QgZm9ybWF0cywgZGF0YVNwYWNlIGRlZmluZXMgdGhlIGNvbG9yIHNwYWNlIG9mIHRoZSBpbWFnZSBkYXRhLgorICAgICAqIEluIGFkZGl0aW9uLCBmb3Igc29tZSBmb3JtYXRzLCBkYXRhU3BhY2UgaW5kaWNhdGVzIHdoZXRoZXIgaW1hZ2UtIG9yCisgICAgICogZGVwdGgtYmFzZWQgZGF0YSBpcyByZXF1ZXN0ZWQuIFNlZQorICAgICAqIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMgZm9yIGRldGFpbHMgb2YgZm9ybWF0cyBhbmQKKyAgICAgKiB2YWxpZCBkYXRhU3BhY2UgdmFsdWVzIGZvciBlYWNoIGZvcm1hdC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCB1c2UgdGhpcyBkYXRhU3BhY2UgdG8gY29uZmlndXJlIHRoZSBzdHJlYW0gdG8gdGhlIGNvcnJlY3QKKyAgICAgKiBjb2xvcnNwYWNlLCBvciB0byBzZWxlY3QgYmV0d2VlbiBjb2xvciBhbmQgZGVwdGggb3V0cHV0cyBpZgorICAgICAqIHN1cHBvcnRlZC4gVGhlIGRhdGFzcGFjZSB2YWx1ZXMgYXJlIHNldCB1c2luZyB0aGUgVjAgZGF0YXNwYWNlCisgICAgICogZGVmaW5pdGlvbnMuCisgICAgICovCisgICAgRGF0YXNwYWNlRmxhZ3MgZGF0YVNwYWNlOworCisgICAgLyoqCisgICAgICogVGhlIHJlcXVpcmVkIG91dHB1dCByb3RhdGlvbiBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogVGhpcyBtdXN0IGJlIGluc3BlY3RlZCBieSBIQUwgYWxvbmcgd2l0aCBzdHJlYW0gd2lkdGggYW5kIGhlaWdodC4gRm9yCisgICAgICogZXhhbXBsZSwgaWYgdGhlIHJvdGF0aW9uIGlzIDkwIGRlZ3JlZSBhbmQgdGhlIHN0cmVhbSB3aWR0aCBhbmQgaGVpZ2h0IGlzCisgICAgICogNzIwIGFuZCAxMjgwIHJlc3BlY3RpdmVseSwgY2FtZXJhIHNlcnZpY2UgbXVzdCBzdXBwbHkgYnVmZmVycyBvZiBzaXplCisgICAgICogNzIweDEyODAsIGFuZCBIQUwgbXVzdCBjYXB0dXJlIGEgMTI4MHg3MjAgaW1hZ2UgYW5kIHJvdGF0ZSB0aGUgaW1hZ2UgYnkKKyAgICAgKiA5MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZS4gVGhlIHJvdGF0aW9uIGZpZWxkIG11c3QgYmUgaWdub3JlZCB3aGVuIHRoZQorICAgICAqIHN0cmVhbSB0eXBlIGlzIGlucHV0LgorICAgICAqCisgICAgICogVGhlIEhBTCBtdXN0IGluc3BlY3QgdGhpcyBmaWVsZCBkdXJpbmcgc3RyZWFtIGNvbmZpZ3VyYXRpb24gYW5kIHJldHVybgorICAgICAqIElsbGVnYWxBcmd1bWVudCBpZiBIQUwgY2Fubm90IHBlcmZvcm0gc3VjaCByb3RhdGlvbi4gSEFMIG11c3QgYWx3YXlzCisgICAgICogc3VwcG9ydCBST1RBVElPTl8wLCBzbyBhIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIG11c3Qgbm90IGZhaWwgZm9yCisgICAgICogdW5zdXBwb3J0ZWQgcm90YXRpb24gaWYgcm90YXRpb24gZmllbGQgb2YgYWxsIHN0cmVhbXMgaXMgUk9UQVRJT05fMC4KKyAgICAgKgorICAgICAqLworICAgIFN0cmVhbVJvdGF0aW9uIHJvdGF0aW9uOworCit9OworCisvKioKKyAqIFN0cmVhbUNvbmZpZ3VyYXRpb246CisgKgorICogQSBzdHJ1Y3R1cmUgb2Ygc3RyZWFtIGRlZmluaXRpb25zLCB1c2VkIGJ5IGNvbmZpZ3VyZVN0cmVhbXMoKS4gVGhpcworICogc3RydWN0dXJlIGRlZmluZXMgYWxsIHRoZSBvdXRwdXQgc3RyZWFtcyBhbmQgdGhlIHJlcHJvY2Vzc2luZyBpbnB1dAorICogc3RyZWFtIGZvciB0aGUgY3VycmVudCBjYW1lcmEgdXNlIGNhc2UuCisgKi8KK3N0cnVjdCBTdHJlYW1Db25maWd1cmF0aW9uIHsKKyAgICAvKioKKyAgICAgKiBBbiBhcnJheSBvZiBjYW1lcmEgc3RyZWFtIHBvaW50ZXJzLCBkZWZpbmluZyB0aGUgaW5wdXQvb3V0cHV0CisgICAgICogY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhbWVyYSBIQUwgZGV2aWNlLgorICAgICAqCisgICAgICogQXQgbW9zdCBvbmUgaW5wdXQtY2FwYWJsZSBzdHJlYW0gbWF5IGJlIGRlZmluZWQuCisgICAgICogQXQgbGVhc3Qgb25lIG91dHB1dC1jYXBhYmxlIHN0cmVhbSBtdXN0IGJlIGRlZmluZWQuCisgICAgICovCisgICAgdmVjPFN0cmVhbT4gc3RyZWFtczsKKworICAgIC8qKgorICAgICAqIFRoZSBvcGVyYXRpb24gbW9kZSBvZiBzdHJlYW1zIGluIHRoaXMgY29uZmlndXJhdGlvbi4gVGhlIEhBTCBjYW4gdXNlIHRoaXMKKyAgICAgKiBtb2RlIGFzIGFuIGluZGljYXRvciB0byBzZXQgdGhlIHN0cmVhbSBwcm9wZXJ0eSAoZS5nLiwKKyAgICAgKiBIYWxTdHJlYW06Om1heEJ1ZmZlcnMpIGFwcHJvcHJpYXRlbHkuIEZvciBleGFtcGxlLCBpZiB0aGUKKyAgICAgKiBjb25maWd1cmF0aW9uIGlzCisgICAgICogQ09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFLCB0aGUgSEFMIG1heQorICAgICAqIHdhbnQgdG8gc2V0IGFzaWRlIG1vcmUgYnVmZmVycyBmb3IgYmF0Y2ggbW9kZSBvcGVyYXRpb24gKHNlZQorICAgICAqIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIGZvciBiYXRjaCBtb2RlCisgICAgICogZGVmaW5pdGlvbikuCisgICAgICoKKyAgICAgKi8KKyAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZSBvcGVyYXRpb25Nb2RlOworCit9OworCisvKioKKyAqIEhhbFN0cmVhbToKKyAqCisgKiBUaGUgY2FtZXJhIEhBTCdzIHJlc3BvbnNlIHRvIGVhY2ggcmVxdWVzdGVkIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICoKKyAqIFRoZSBIQUwgbWF5IHNwZWNpZnkgdGhlIGRlc2lyZWQgZm9ybWF0LCBtYXhpbXVtIGJ1ZmZlcnMsIGFuZAorICogdXNhZ2UgZmxhZ3MgZm9yIGVhY2ggc3RyZWFtLgorICoKKyAqLworc3RydWN0IEhhbFN0cmVhbSB7CisgICAgLyoqCisgICAgICogU3RyZWFtIElEIC0gYSBub25uZWdhdGl2ZSBpbnRlZ2VyIGlkZW50aWZpZXIgZm9yIGEgc3RyZWFtLgorICAgICAqCisgICAgICogVGhlIElEIG11c3QgYmUgb25lIG9mIHRoZSBzdHJlYW0gSURzIHBhc3NlZCBpbnRvIGNvbmZpZ3VyZVN0cmVhbXMuCisgICAgICovCisgICAgaW50MzJfdCBpZDsKKworICAgIC8qKgorICAgICAqIEFuIG92ZXJyaWRlIHBpeGVsIGZvcm1hdCBmb3IgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG11c3QgcmVzcGVjdCB0aGUgcmVxdWVzdGVkIGZvcm1hdCBpbiBTdHJlYW0gdW5sZXNzIGl0IGlzCisgICAgICogSU1QTEVNRU5UQVRJT05fREVGSU5FRCwgaW4gd2hpY2ggY2FzZSB0aGUgb3ZlcnJpZGUgZm9ybWF0IGhlcmUgbXVzdCBiZQorICAgICAqIHVzZWQgYnkgdGhlIGNsaWVudCBpbnN0ZWFkLCBmb3IgdGhpcyBzdHJlYW0uIFRoaXMgYWxsb3dzIGNyb3NzLXBsYXRmb3JtCisgICAgICogSEFMcyB0byB1c2UgYSBzdGFuZGFyZCBmb3JtYXQgc2luY2UgSU1QTEVNRU5UQVRJT05fREVGSU5FRCBmb3JtYXRzIG9mdGVuCisgICAgICogcmVxdWlyZSBkZXZpY2Utc3BlY2lmaWMgaW5mb3JtYXRpb24uIEluIGFsbCBvdGhlciBjYXNlcywgdGhlCisgICAgICogb3ZlcnJpZGVGb3JtYXQgbXVzdCBtYXRjaCB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KKyAgICAgKgorICAgICAqIFdoZW4gSEFMX1BJWEVMX0ZPUk1BVF9JTVBMRU1FTlRBVElPTl9ERUZJTkVEIGlzIHVzZWQsIHRoZW4gdGhlIHBsYXRmb3JtCisgICAgICogZ3JhbGxvYyBtb2R1bGUgbXVzdCBzZWxlY3QgYSBmb3JtYXQgYmFzZWQgb24gdGhlIHVzYWdlIGZsYWdzIHByb3ZpZGVkIGJ5CisgICAgICogdGhlIGNhbWVyYSBkZXZpY2UgYW5kIHRoZSBvdGhlciBlbmRwb2ludCBvZiB0aGUgc3RyZWFtLgorICAgICAqLworICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6UGl4ZWxGb3JtYXQgb3ZlcnJpZGVGb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZ3JhbGxvYyB1c2FnZSBmbGFncyBmb3IgdGhpcyBzdHJlYW0sIGFzIG5lZWRlZCBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogRm9yIG91dHB1dCBzdHJlYW1zLCB0aGVzZSBhcmUgdGhlIEhBTCdzIHByb2R1Y2VyIHVzYWdlIGZsYWdzLiBGb3IgaW5wdXQKKyAgICAgKiBzdHJlYW1zLCB0aGVzZSBhcmUgdGhlIEhBTCdzIGNvbnN1bWVyIHVzYWdlIGZsYWdzLiBUaGUgdXNhZ2UgZmxhZ3MgZnJvbQorICAgICAqIHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnN1bWVyIG11c3QgYmUgY29tYmluZWQgdG9nZXRoZXIgYW5kIHRoZW4gcGFzc2VkCisgICAgICogdG8gdGhlIHBsYXRmb3JtIGdyYXBoaWNzIGFsbG9jYXRvciBIQUwgZm9yIGFsbG9jYXRpbmcgdGhlIGdyYWxsb2MgYnVmZmVycworICAgICAqIGZvciBlYWNoIHN0cmVhbS4KKyAgICAgKgorICAgICAqIElmIHRoZSBzdHJlYW0ncyB0eXBlIGlzIElOUFVULCB0aGVuIHByb2R1Y2VyVXNhZ2UgbXVzdCBiZSAwLCBhbmQKKyAgICAgKiBjb25zdW1lclVzYWdlIG11c3QgYmUgc2V0LiBGb3Igb3RoZXIgdHlwZXMsIHByb2R1Y2VyVXNhZ2UgbXVzdCBiZSBzZXQsCisgICAgICogYW5kIGNvbnN1bWVyVXNhZ2UgbXVzdCBiZSAwLgorICAgICAqLworICAgIEJ1ZmZlclVzYWdlRmxhZ3MgcHJvZHVjZXJVc2FnZTsKKyAgICBCdWZmZXJVc2FnZUZsYWdzIGNvbnN1bWVyVXNhZ2U7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYnVmZmVycyB0aGUgSEFMIGRldmljZSBtYXkgbmVlZCB0byBoYXZlIGRlcXVldWVkIGF0CisgICAgICogdGhlIHNhbWUgdGltZS4gVGhlIEhBTCBkZXZpY2UgbWF5IG5vdCBoYXZlIG1vcmUgYnVmZmVycyBpbi1mbGlnaHQgZnJvbQorICAgICAqIHRoaXMgc3RyZWFtIHRoYW4gdGhpcyB2YWx1ZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBtYXhCdWZmZXJzOworCit9OworCisvKioKKyAqIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb246CisgKgorICogQSBzdHJ1Y3R1cmUgb2Ygc3RyZWFtIGRlZmluaXRpb25zLCByZXR1cm5lZCBieSBjb25maWd1cmVTdHJlYW1zKCkuIFRoaXMKKyAqIHN0cnVjdHVyZSBkZWZpbmVzIHRoZSBIQUwncyBkZXNpcmVkIHBhcmFtZXRlcnMgZm9yIGVhY2ggc3RyZWFtLgorICoKKyAqIEFsbCBzdHJlYW1zIHRoYXQgd2VyZSBkZWZpbmVkIGluIHRoZSBpbnB1dCB0byBjb25maWd1cmVTdHJlYW1zKCkgbXVzdCBoYXZlIGEKKyAqIGNvcnJlc3BvbmRpbmcgZW50cnkgaW4gdGhpcyBzdHJ1Y3R1cmUgd2hlbiByZXR1cm5lZCBieSBjb25maWd1cmVTdHJlYW1zKCkuCisgKi8KK3N0cnVjdCBIYWxTdHJlYW1Db25maWd1cmF0aW9uIHsKKyAgICB2ZWM8SGFsU3RyZWFtPiBzdHJlYW1zOworfTsKKworLyoqCisgKiBCdWZmZXJTdGF0dXM6CisgKgorICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIGEgc2luZ2xlIHN0cmVhbSBidWZmZXIuCisgKi8KK2VudW0gQnVmZmVyU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBidWZmZXIgaXMgaW4gYSBub3JtYWwgc3RhdGUsIGFuZCBjYW4gYmUgdXNlZCBhZnRlciB3YWl0aW5nIG9uIGl0cworICAgICAqIHN5bmMgZmVuY2UuCisgICAgICovCisgICAgT0sgPSAwLAorCisgICAgLyoqCisgICAgICogVGhlIGJ1ZmZlciBkb2VzIG5vdCBjb250YWluIHZhbGlkIGRhdGEsIGFuZCB0aGUgZGF0YSBpbiBpdCBtdXN0IG5vdCBiZQorICAgICAqIHVzZWQuIFRoZSBzeW5jIGZlbmNlIG11c3Qgc3RpbGwgYmUgd2FpdGVkIG9uIGJlZm9yZSByZXVzaW5nIHRoZSBidWZmZXIuCisgICAgICovCisgICAgRVJST1IgPSAxCit9OworCisvKioKKyAqIFN0cmVhbUJ1ZmZlcjoKKyAqCisgKiBBIHNpbmdsZSBidWZmZXIgZnJvbSBhIGNhbWVyYTMgc3RyZWFtLiBJdCBpbmNsdWRlcyBhIGhhbmRsZSB0byBpdHMgcGFyZW50CisgKiBzdHJlYW0sIHRoZSBoYW5kbGUgdG8gdGhlIGdyYWxsb2MgYnVmZmVyIGl0c2VsZiwgYW5kIHN5bmMgZmVuY2VzCisgKgorICogVGhlIGJ1ZmZlciBkb2VzIG5vdCBzcGVjaWZ5IHdoZXRoZXIgaXQgaXMgdG8gYmUgdXNlZCBmb3IgaW5wdXQgb3Igb3V0cHV0OworICogdGhhdCBpcyBkZXRlcm1pbmVkIGJ5IGl0cyBwYXJlbnQgc3RyZWFtIHR5cGUgYW5kIGhvdyB0aGUgYnVmZmVyIGlzIHBhc3NlZCB0bworICogdGhlIEhBTCBkZXZpY2UuCisgKi8KK3N0cnVjdCBTdHJlYW1CdWZmZXIgeworICAgIC8qKgorICAgICAqIFRoZSBJRCBvZiB0aGUgc3RyZWFtIHRoaXMgYnVmZmVyIGlzIGFzc29jaWF0ZWQgd2l0aC4gLTEgaW5kaWNhdGVzIGFuCisgICAgICogaW52YWxpZCAoZW1wdHkpIFN0cmVhbUJ1ZmZlciwgaW4gd2hpY2ggY2FzZSBidWZmZXIgbXVzdCBhbHNvIHBvaW50IHRvCisgICAgICogbnVsbCBhbmQgYnVmZmVySWQgbXVzdCBiZSAwLgorICAgICAqLworICAgIGludDMyX3Qgc3RyZWFtSWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdW5pcXVlIElEIG9mIHRoZSBidWZmZXIgd2l0aGluIHRoaXMgU3RyZWFtQnVmZmVyLiAwIGluZGljYXRlcyB0aGlzCisgICAgICogU3RyZWFtQnVmZmVyIGNvbnRhaW5zIG5vIGJ1ZmZlci4KKyAgICAgKiBGb3IgU3RyZWFtQnVmZmVycyBzZW50IHRvIHRoZSBIQUwgaW4gYSBDYXB0dXJlUmVxdWVzdCwgdGhpcyBJRCB1bmlxdWVseQorICAgICAqIGlkZW50aWZpZXMgYSBidWZmZXIuIFdoZW4gYSBidWZmZXIgaXMgc2VudCB0byBIQUwgZm9yIHRoZSBmaXJzdCB0aW1lLAorICAgICAqIGJvdGggYnVmZmVySWQgYW5kIGJ1ZmZlciBoYW5kbGUgbXVzdCBiZSBmaWxsZWQuIEhBTCBtdXN0IGtlZXAgdHJhY2sgb2YKKyAgICAgKiB0aGUgbWFwcGluZyBiZXR3ZWVuIGJ1ZmZlcklkIGFuZCBjb3JyZXNwb25kaW5nIGJ1ZmZlciB1bnRpbCB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIHN0cmVhbSBpcyByZW1vdmVkIGZyb20gc3RyZWFtIGNvbmZpZ3VyYXRpb24gb3IgdW50aWwgY2FtZXJhCisgICAgICogZGV2aWNlIHNlc3Npb24gaXMgY2xvc2VkLiBBZnRlciB0aGUgZmlyc3QgdGltZSBhIGJ1ZmZlciBpcyBpbnRyb2R1Y2VkIHRvCisgICAgICogSEFMLCBpbiB0aGUgZnV0dXJlIGNhbWVyYSBzZXJ2aWNlIG11c3QgcmVmZXIgdG8gdGhlIHNhbWUgYnVmZmVyIHVzaW5nCisgICAgICogb25seSBidWZmZXJJZCwgYW5kIGtlZXAgdGhlIGJ1ZmZlciBoYW5kbGUgbnVsbC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBidWZmZXJJZDsKKworICAgIC8qKgorICAgICAqIFRoZSBncmFwaGljcyBidWZmZXIgaGFuZGxlIHRvIHRoZSBidWZmZXIuCisgICAgICoKKyAgICAgKiBGb3IgU3RyZWFtQnVmZmVycyBzZW50IHRvIHRoZSBIQUwgaW4gYSBDYXB0dXJlUmVxdWVzdCwgaWYgdGhlIGJ1ZmZlcklkCisgICAgICogaXMgbm90IHNlZW4gYnkgdGhlIEhBTCBiZWZvcmUsIHRoaXMgYnVmZmVyIGhhbmRsZSBpcyBndWFyYW50ZWVkIHRvIGJlIGEKKyAgICAgKiB2YWxpZCBoYW5kbGUgdG8gYSBncmFwaGljcyBidWZmZXIsIHdpdGggZGltZW5zaW9ucyBhbmQgZm9ybWF0IG1hdGNoaW5nCisgICAgICogdGhhdCBvZiB0aGUgc3RyZWFtLiBJZiB0aGUgYnVmZmVySWQgaGFzIGJlZW4gc2VudCB0byB0aGUgSEFMIGJlZm9yZSwgdGhpcworICAgICAqIGJ1ZmZlciBoYW5kbGUgbXVzdCBiZSBudWxsIGFuZCBIQUwgbXVzdCBsb29rIHVwIHRoZSBhY3R1YWwgYnVmZmVyIGhhbmRsZQorICAgICAqIHRvIHVzZSBmcm9tIGl0cyBvd24gYnVmZmVySWQgdG8gYnVmZmVyIGhhbmRsZSBtYXAuCisgICAgICoKKyAgICAgKiBGb3IgU3RyZWFtQnVmZmVycyByZXR1cm5lZCBpbiBhIENhcHR1cmVSZXN1bHQsIHRoaXMgbXVzdCBiZSBudWxsLCBzaW5jZQorICAgICAqIHRoZSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IGtub3duIHRvIHRoZSBjbGllbnQgKHNpbmNlIHRoZSBjbGllbnQKKyAgICAgKiBzZW50IGl0IGluIHRoZSBtYXRjaGluZyBDYXB0dXJlUmVxdWVzdCksIGFuZCB0aGUgaGFuZGxlIGNhbiBiZSBpZGVudGlmaWVkCisgICAgICogYnkgdGhlIGNvbWJpbmF0aW9uIG9mIGZyYW1lIG51bWJlciBhbmQgc3RyZWFtIElELgorICAgICAqLworICAgIGhhbmRsZSBidWZmZXI7CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHN0YXRlIG9mIHRoZSBidWZmZXIuIFRoZSBmcmFtZXdvcmsgbXVzdCBub3QgcGFzcyBidWZmZXJzIHRvIHRoZQorICAgICAqIEhBTCB0aGF0IGFyZSBpbiBhbiBlcnJvciBzdGF0ZS4gSW4gY2FzZSBhIGJ1ZmZlciBjb3VsZCBub3QgYmUgZmlsbGVkIGJ5CisgICAgICogdGhlIEhBTCwgaXQgbXVzdCBoYXZlIGl0cyBzdGF0dXMgc2V0IHRvIEVSUk9SIHdoZW4gcmV0dXJuZWQgdG8gdGhlCisgICAgICogZnJhbWV3b3JrIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKS4KKyAgICAgKi8KKyAgICBCdWZmZXJTdGF0dXMgc3RhdHVzOworCisgICAgLyoqCisgICAgICogVGhlIGFjcXVpcmUgc3luYyBmZW5jZSBmb3IgdGhpcyBidWZmZXIuIFRoZSBIQUwgbXVzdCB3YWl0IG9uIHRoaXMgZmVuY2UKKyAgICAgKiBmZCBiZWZvcmUgYXR0ZW1wdGluZyB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8gdGhpcyBidWZmZXIuCisgICAgICoKKyAgICAgKiBJbiBhIGJ1ZmZlciBpbmNsdWRlZCBpbiBhIENhcHR1cmVSZXF1ZXN0LCB0aGUgY2xpZW50IG1heSBzZXQgdGhpcyB0byBudWxsCisgICAgICogdG8gaW5kaWNhdGUgdGhhdCBubyB3YWl0aW5nIGlzIG5lY2Vzc2FyeSBmb3IgdGhpcyBidWZmZXIuCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBIQUwgcmV0dXJucyBhbiBpbnB1dCBvciBvdXRwdXQgYnVmZmVyIHRvIHRoZSBmcmFtZXdvcmsgd2l0aAorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCksIHRoZSBhY3F1aXJlRmVuY2UgbXVzdCBiZSBzZXQgdG8gbnVsbC4gSWYgdGhlIEhBTAorICAgICAqIG5ldmVyIHdhaXRzIG9uIHRoZSBhY3F1aXJlRmVuY2UgZHVlIHRvIGFuIGVycm9yIGluIGZpbGxpbmcgb3IgcmVhZGluZyBhCisgICAgICogYnVmZmVyLCB3aGVuIGNhbGxpbmcgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSB0aGUgSEFMIG11c3Qgc2V0IHRoZQorICAgICAqIHJlbGVhc2VGZW5jZSBvZiB0aGUgYnVmZmVyIHRvIGJlIHRoZSBhY3F1aXJlRmVuY2UgcGFzc2VkIHRvIGl0IGJ5IHRoZQorICAgICAqIGNsaWVudC4gVGhpcyBhbGxvd3MgdGhlIGNsaWVudCB0byB3YWl0IG9uIHRoZSBmZW5jZSBiZWZvcmUgcmV1c2luZyB0aGUKKyAgICAgKiBidWZmZXIuCisgICAgICovCisgICAgaGFuZGxlIGFjcXVpcmVGZW5jZTsKKworICAgIC8qKgorICAgICAqIFRoZSByZWxlYXNlIHN5bmMgZmVuY2UgZm9yIHRoaXMgYnVmZmVyLiBUaGUgSEFMIG11c3Qgc2V0IHRoaXMgdG8gYSB2YWxpZAorICAgICAqIGZlbmNlIGZkIHdoZW4gcmV0dXJuaW5nIHRoZSBpbnB1dCBidWZmZXIgb3Igb3V0cHV0IGJ1ZmZlcnMgdG8gdGhlIGNsaWVudAorICAgICAqIGluIGEgQ2FwdHVyZVJlc3VsdCwgb3Igc2V0IGl0IHRvIG51bGwgdG8gaW5kaWNhdGUgdGhhdCBubyB3YWl0aW5nIGlzCisgICAgICogcmVxdWlyZWQgZm9yIHRoaXMgYnVmZmVyLgorICAgICAqCisgICAgICogVGhlIGNsaWVudCBtdXN0IHNldCB0aGlzIHRvIGJlIG51bGwgZm9yIGFsbCBidWZmZXJzIGluY2x1ZGVkIGluIGEKKyAgICAgKiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QgY2FsbC4KKyAgICAgKgorICAgICAqIEFmdGVyIHNpZ25hbGluZyB0aGUgcmVsZWFzZUZlbmNlIGZvciB0aGlzIGJ1ZmZlciwgdGhlIEhBTAorICAgICAqIG11c3Qgbm90IG1ha2UgYW55IGZ1cnRoZXIgYXR0ZW1wdHMgdG8gYWNjZXNzIHRoaXMgYnVmZmVyIGFzIHRoZQorICAgICAqIG93bmVyc2hpcCBoYXMgYmVlbiBmdWxseSB0cmFuc2ZlcnJlZCBiYWNrIHRvIHRoZSBjbGllbnQuCisgICAgICoKKyAgICAgKiBJZiB0aGlzIGlzIG51bGwsIHRoZW4gdGhlIG93bmVyc2hpcCBvZiB0aGlzIGJ1ZmZlciBpcyB0cmFuc2ZlcnJlZCBiYWNrCisgICAgICogaW1tZWRpYXRlbHkgdXBvbiB0aGUgY2FsbCBvZiBwcm9jZXNzQ2FwdHVyZVJlc3VsdC4KKyAgICAgKi8KKyAgICBoYW5kbGUgcmVsZWFzZUZlbmNlOworCit9OworCisvKioKKyAqIENhbWVyYUJsb2I6CisgKgorICogVHJhbnNwb3J0IGhlYWRlciBmb3IgY2FtZXJhIGJsb2IgdHlwZXM7IGdlbmVyYWxseSBjb21wcmVzc2VkIEpQRUcgYnVmZmVycyBpbgorICogb3V0cHV0IHN0cmVhbXMuCisgKgorICogVG8gY2FwdHVyZSBKUEVHIGltYWdlcywgYSBzdHJlYW0gaXMgY3JlYXRlZCB1c2luZyB0aGUgcGl4ZWwgZm9ybWF0CisgKiBIQUxfUElYRUxfRk9STUFUX0JMT0IgYW5kIGRhdGFzcGFjZSBIQUxfREFUQVNQQUNFX1YwX0pGSUYuIFRoZSBidWZmZXIgc2l6ZQorICogZm9yIHRoZSBzdHJlYW0gaXMgY2FsY3VsYXRlZCBieSB0aGUgZnJhbWV3b3JrLCBiYXNlZCBvbiB0aGUgc3RhdGljIG1ldGFkYXRhCisgKiBmaWVsZCBhbmRyb2lkLmpwZWcubWF4U2l6ZS4gU2luY2UgY29tcHJlc3NlZCBKUEVHIGltYWdlcyBhcmUgb2YgdmFyaWFibGUKKyAqIHNpemUsIHRoZSBIQUwgbmVlZHMgdG8gaW5jbHVkZSB0aGUgZmluYWwgc2l6ZSBvZiB0aGUgY29tcHJlc3NlZCBpbWFnZSB1c2luZworICogdGhpcyBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBvdXRwdXQgc3RyZWFtIGJ1ZmZlci4gVGhlIGNhbWVyYSBibG9iIElEIGZpZWxkIG11c3QKKyAqIGJlIHNldCB0byBDYW1lcmFCbG9iSWQ6OkpQRUcuCisgKgorICogVGhlIHRyYW5zcG9ydCBoZWFkZXIgbXVzdCBiZSBhdCB0aGUgZW5kIG9mIHRoZSBKUEVHIG91dHB1dCBzdHJlYW0KKyAqIGJ1ZmZlci4gVGhhdCBtZWFucyB0aGUganBlZ0Jsb2JJZCBtdXN0IHN0YXJ0IGF0IGJ5dGVbYnVmZmVyX3NpemUgLQorICogc2l6ZW9mKENhbWVyYUJsb2IpXSwgd2hlcmUgdGhlIGJ1ZmZlcl9zaXplIGlzIHRoZSBzaXplIG9mIGdyYWxsb2MKKyAqIGJ1ZmZlci4gQW55IEhBTCB1c2luZyB0aGlzIHRyYW5zcG9ydCBoZWFkZXIgbXVzdCBhY2NvdW50IGZvciBpdCBpbgorICogYW5kcm9pZC5qcGVnLm1heFNpemUuIFRoZSBKUEVHIGRhdGEgaXRzZWxmIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICogYnVmZmVyIGFuZCBtdXN0IGJlIGJsb2JTaXplIGJ5dGVzIGxvbmcuCisgKi8KK2VudW0gQ2FtZXJhQmxvYklkIDogdWludDE2X3QgeworICAgIEpQRUcgPSAweDAwRkYsCit9OworCitzdHJ1Y3QgQ2FtZXJhQmxvYiB7CisgICAgQ2FtZXJhQmxvYklkIGJsb2JJZDsKKworICAgIHVpbnQzMl90IGJsb2JTaXplOworfTsKKworLyoqCisgKiBNc2dUeXBlOgorICoKKyAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiBtZXNzYWdlIHNlbnQsIHdoaWNoIHNwZWNpZmllcyB3aGljaCBtZW1iZXIgb2YgdGhlCisgKiBtZXNzYWdlIHVuaW9uIGlzIHZhbGlkLgorICoKKyAqLworZW51bSBNc2dUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEFuIGVycm9yIGhhcyBvY2N1cnJlZC4gTm90aWZ5TXNnOjpNZXNzYWdlOjpFcnJvciBjb250YWlucyB0aGUKKyAgICAgKiBlcnJvciBpbmZvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBFUlJPUiA9IDEsCisKKyAgICAvKioKKyAgICAgKiBUaGUgZXhwb3N1cmUgb2YgYSBnaXZlbiByZXF1ZXN0IG9yIHByb2Nlc3NpbmcgYSByZXByb2Nlc3MgcmVxdWVzdCBoYXMKKyAgICAgKiBiZWd1bi4gTm90aWZ5TXNnOjpNZXNzYWdlOjpTaHV0dGVyIGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbgorICAgICAqIHRoZSBjYXB0dXJlLgorICAgICAqLworICAgIFNIVVRURVIgPSAyCit9OworCisvKioKKyAqIERlZmluZWQgZXJyb3IgY29kZXMgZm9yIE1zZ1R5cGU6OkVSUk9SCisgKi8KK2VudW0gRXJyb3JDb2RlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEEgc2VyaW91cyBmYWlsdXJlIG9jY3VyZWQuIE5vIGZ1cnRoZXIgZnJhbWVzIG9yIGJ1ZmZlciBzdHJlYW1zIG11c3QKKyAgICAgKiBiZSBwcm9kdWNlZCBieSB0aGUgZGV2aWNlLiBEZXZpY2UgbXVzdCBiZSB0cmVhdGVkIGFzIGNsb3NlZC4gVGhlCisgICAgICogY2xpZW50IG11c3QgcmVvcGVuIHRoZSBkZXZpY2UgdG8gdXNlIGl0IGFnYWluLiBUaGUgZnJhbWVOdW1iZXIgZmllbGQKKyAgICAgKiBpcyB1bnVzZWQuCisgICAgICovCisgICAgRVJST1JfREVWSUNFID0gMSwKKworICAgIC8qKgorICAgICAqIEFuIGVycm9yIGhhcyBvY2N1cnJlZCBpbiBwcm9jZXNzaW5nIGEgcmVxdWVzdC4gTm8gb3V0cHV0IChtZXRhZGF0YSBvcgorICAgICAqIGJ1ZmZlcnMpIG11c3QgYmUgcHJvZHVjZWQgZm9yIHRoaXMgcmVxdWVzdC4gVGhlIGZyYW1lTnVtYmVyIGZpZWxkCisgICAgICogc3BlY2lmaWVzIHdoaWNoIHJlcXVlc3QgaGFzIGJlZW4gZHJvcHBlZC4gU3Vic2VxdWVudCByZXF1ZXN0cyBhcmUKKyAgICAgKiB1bmFmZmVjdGVkLCBhbmQgdGhlIGRldmljZSByZW1haW5zIG9wZXJhdGlvbmFsLgorICAgICAqLworICAgIEVSUk9SX1JFUVVFU1QgPSAyLAorCisgICAgLyoqCisgICAgICogQW4gZXJyb3IgaGFzIG9jY3VycmVkIGluIHByb2R1Y2luZyBhbiBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhIGJ1ZmZlcgorICAgICAqIGZvciBhIHJlcXVlc3QsIGJ1dCBvdXRwdXQgc3RyZWFtIGJ1ZmZlcnMgZm9yIGl0IG11c3Qgc3RpbGwgYmUKKyAgICAgKiBhdmFpbGFibGUuIFN1YnNlcXVlbnQgcmVxdWVzdHMgYXJlIHVuYWZmZWN0ZWQsIGFuZCB0aGUgZGV2aWNlIHJlbWFpbnMKKyAgICAgKiBvcGVyYXRpb25hbC4gVGhlIGZyYW1lTnVtYmVyIGZpZWxkIHNwZWNpZmllcyB0aGUgcmVxdWVzdCBmb3Igd2hpY2gKKyAgICAgKiByZXN1bHQgbWV0YWRhdGEgd29uJ3QgYmUgYXZhaWxhYmxlLgorICAgICAqLworICAgIEVSUk9SX1JFU1VMVCA9IDMsCisKKyAgICAvKioKKyAgICAgKiBBbiBlcnJvciBoYXMgb2NjdXJyZWQgaW4gcGxhY2luZyBhbiBvdXRwdXQgYnVmZmVyIGludG8gYSBzdHJlYW0gZm9yIGEKKyAgICAgKiByZXF1ZXN0LiBUaGUgZnJhbWUgbWV0YWRhdGEgYW5kIG90aGVyIGJ1ZmZlcnMgbWF5IHN0aWxsIGJlCisgICAgICogYXZhaWxhYmxlLiBTdWJzZXF1ZW50IHJlcXVlc3RzIGFyZSB1bmFmZmVjdGVkLCBhbmQgdGhlIGRldmljZSByZW1haW5zCisgICAgICogb3BlcmF0aW9uYWwuIFRoZSBmcmFtZU51bWJlciBmaWVsZCBzcGVjaWZpZXMgdGhlIHJlcXVlc3QgZm9yIHdoaWNoIHRoZQorICAgICAqIGJ1ZmZlciB3YXMgZHJvcHBlZCwgYW5kIGVycm9yU3RyZWFtSWQgaW5kaWNhdGVzIHRoZSBzdHJlYW0KKyAgICAgKiB0aGF0IGRyb3BwZWQgdGhlIGZyYW1lLgorICAgICAqLworICAgIEVSUk9SX0JVRkZFUiA9IDQsCit9OworCisvKioKKyAqIEVycm9yTXNnOgorICoKKyAqIE1lc3NhZ2UgY29udGVudHMgZm9yIE1zZ1R5cGU6OkVSUk9SCisgKi8KK3N0cnVjdCBFcnJvck1zZyB7CisgICAgLyoqCisgICAgICogRnJhbWUgbnVtYmVyIG9mIHRoZSByZXF1ZXN0IHRoZSBlcnJvciBhcHBsaWVzIHRvLiAwIGlmIHRoZSBmcmFtZSBudW1iZXIKKyAgICAgKiBpc24ndCBhcHBsaWNhYmxlIHRvIHRoZSBlcnJvci4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmcmFtZU51bWJlcjsKKworICAgIC8qKgorICAgICAqIFBvaW50ZXIgdG8gdGhlIHN0cmVhbSB0aGF0IGhhZCBhIGZhaWx1cmUuIC0xIGlmIHRoZSBzdHJlYW0gaXNuJ3QKKyAgICAgKiBhcHBsaWNhYmxlIHRvIHRoZSBlcnJvci4KKyAgICAgKi8KKyAgICBpbnQzMl90IGVycm9yU3RyZWFtSWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29kZSBmb3IgdGhpcyBlcnJvci4KKyAgICAgKi8KKyAgICBFcnJvckNvZGUgZXJyb3JDb2RlOworCit9OworCisvKioKKyAqIFNodXR0ZXJNc2c6CisgKgorICogTWVzc2FnZSBjb250ZW50cyBmb3IgTXNnVHlwZTo6U0hVVFRFUgorICovCitzdHJ1Y3QgU2h1dHRlck1zZyB7CisgICAgLyoqCisgICAgICogRnJhbWUgbnVtYmVyIG9mIHRoZSByZXF1ZXN0IHRoYXQgaGFzIGJlZ3VuIGV4cG9zdXJlIG9yIHJlcHJvY2Vzc2luZy4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmcmFtZU51bWJlcjsKKworICAgIC8qKgorICAgICAqIFRpbWVzdGFtcCBmb3IgdGhlIHN0YXJ0IG9mIGNhcHR1cmUuIEZvciBhIHJlcHJvY2VzcyByZXF1ZXN0LCB0aGlzIG11c3QKKyAgICAgKiBiZSBpbnB1dCBpbWFnZSdzIHN0YXJ0IG9mIGNhcHR1cmUuIFRoaXMgbXVzdCBtYXRjaCB0aGUgY2FwdHVyZSByZXN1bHQKKyAgICAgKiBtZXRhZGF0YSdzIHNlbnNvciBleHBvc3VyZSBzdGFydCB0aW1lc3RhbXAuCisgICAgICovCisgICAgdWludDY0X3QgdGltZXN0YW1wOworCit9OworCisvKioKKyAqIE5vdGlmeU1zZzoKKyAqCisgKiBUaGUgbWVzc2FnZSBzdHJ1Y3R1cmUgc2VudCB0byBJQ2FtZXJhRGV2aWNlM0NhbGxiYWNrOjpub3RpZnkoKQorICovCitzdHJ1Y3QgTm90aWZ5TXNnIHsKKyAgICAvKioKKyAgICAgKiBUaGUgbWVzc2FnZSB0eXBlLgorICAgICAqLworICAgIE1zZ1R5cGUgdHlwZTsKKworICAgIHVuaW9uIE1lc3NhZ2UgeworICAgICAgICAvKioKKyAgICAgICAgICogRXJyb3IgbWVzc2FnZSBjb250ZW50cy4gVmFsaWQgaWYgdHlwZSBpcyBNc2dUeXBlOjpFUlJPUgorICAgICAgICAgKi8KKyAgICAgICAgRXJyb3JNc2cgZXJyb3I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNodXR0ZXIgbWVzc2FnZSBjb250ZW50cy4gVmFsaWQgaWYgdHlwZSBpcyBNc2dUeXBlOjpTSFVUVEVSCisgICAgICAgICAqLworICAgICAgICBTaHV0dGVyTXNnIHNodXR0ZXI7CisgICAgfSBtc2c7CisKK307CisKKy8qKgorICogUmVxdWVzdFRlbXBsYXRlOgorICoKKyAqIEF2YWlsYWJsZSB0ZW1wbGF0ZSB0eXBlcyBmb3IKKyAqIElDYW1lcmFEZXZpY2U6OmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoKQorICovCitlbnVtIFJlcXVlc3RUZW1wbGF0ZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBjYW1lcmEgcHJldmlldyBvcGVyYXRpb24gd2l0aCAzQSBvbiBhdXRvLgorICAgICAqLworICAgIFBSRVZJRVcgPSAxLAorCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgY2FtZXJhIGhpZ2gtcXVhbGl0eSBzdGlsbCBjYXB0dXJlIHdpdGggM0EgYW5kIGZsYXNoIG9uIGF1dG8uCisgICAgICovCisgICAgU1RJTExfQ0FQVFVSRSA9IDIsCisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCB2aWRlbyByZWNvcmRpbmcgcGx1cyBwcmV2aWV3IHdpdGggM0Egb24gYXV0bywgdG9yY2ggb2ZmLgorICAgICAqLworICAgIFZJREVPX1JFQ09SRCA9IDMsCisKKyAgICAvKioKKyAgICAgKiBIaWdoLXF1YWxpdHkgc3RpbGwgY2FwdHVyZSB3aGlsZSByZWNvcmRpbmcgdmlkZW8uIEFwcGxpY2F0aW9ucyB0eXBpY2FsbHkKKyAgICAgKiBpbmNsdWRlIHByZXZpZXcsIHZpZGVvIHJlY29yZCwgYW5kIGZ1bGwtcmVzb2x1dGlvbiBZVVYgb3IgSlBFRyBzdHJlYW1zIGluCisgICAgICogcmVxdWVzdC4gTXVzdCBub3QgY2F1c2Ugc3R1dHRlcmluZyBvbiB2aWRlbyBzdHJlYW0uIDNBIG9uIGF1dG8uCisgICAgICovCisgICAgVklERU9fU05BUFNIT1QgPSA0LAorCisgICAgLyoqCisgICAgICogWmVyby1zaHV0dGVyLWxhZyBtb2RlLiBBcHBsaWNhdGlvbiB0eXBpY2FsbHkgcmVxdWVzdCBwcmV2aWV3IGFuZAorICAgICAqIGZ1bGwtcmVzb2x1dGlvbiBkYXRhIGZvciBlYWNoIGZyYW1lLCBhbmQgcmVwcm9jZXNzIGl0IHRvIEpQRUcgd2hlbiBhCisgICAgICogc3RpbGwgaW1hZ2UgaXMgcmVxdWVzdGVkIGJ5IHVzZXIuIFNldHRpbmdzIG11c3QgcHJvdmlkZSBoaWdoZXN0LXF1YWxpdHkKKyAgICAgKiBmdWxsLXJlc29sdXRpb24gaW1hZ2VzIHdpdGhvdXQgY29tcHJvbWlzaW5nIHByZXZpZXcgZnJhbWUgcmF0ZS4gM0Egb24KKyAgICAgKiBhdXRvLgorICAgICAqLworICAgIFpFUk9fU0hVVFRFUl9MQUcgPSA1LAorCisgICAgLyoqCisgICAgICogQSBiYXNpYyB0ZW1wbGF0ZSBmb3IgZGlyZWN0IGFwcGxpY2F0aW9uIGNvbnRyb2wgb2YgY2FwdHVyZQorICAgICAqIHBhcmFtZXRlcnMuIEFsbCBhdXRvbWF0aWMgY29udHJvbCBpcyBkaXNhYmxlZCAoYXV0by1leHBvc3VyZSwgYXV0by13aGl0ZQorICAgICAqIGJhbGFuY2UsIGF1dG8tZm9jdXMpLCBhbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgYXJlIHNldCB0byBwcmV2aWV3CisgICAgICogcXVhbGl0eS4gVGhlIG1hbnVhbCBjYXB0dXJlIHBhcmFtZXRlcnMgKGV4cG9zdXJlLCBzZW5zaXRpdml0eSwgZXRjLikKKyAgICAgKiBhcmUgc2V0IHRvIHJlYXNvbmFibGUgZGVmYXVsdHMsIGJ1dCBtYXkgYmUgb3ZlcnJpZGRlbiBieSB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbiBkZXBlbmRpbmcgb24gdGhlIGludGVuZGVkIHVzZSBjYXNlLgorICAgICAqLworICAgIE1BTlVBTCA9IDYsCisKKyAgICAvKioKKyAgICAgKiBGaXJzdCB2YWx1ZSBmb3IgdmVuZG9yLWRlZmluZWQgcmVxdWVzdCB0ZW1wbGF0ZXMKKyAgICAgKi8KKyAgICBWRU5ET1JfVEVNUExBVEVfU1RBUlQgPSAweDQwMDAwMDAwLAorCit9OworCisvKioKKyAqIENhcHR1cmVSZXF1ZXN0OgorICoKKyAqIEEgc2luZ2xlIHJlcXVlc3QgZm9yIGltYWdlIGNhcHR1cmUvYnVmZmVyIHJlcHJvY2Vzc2luZywgc2VudCB0byB0aGUgQ2FtZXJhCisgKiBIQUwgZGV2aWNlIGJ5IHRoZSBmcmFtZXdvcmsgaW4gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkuCisgKgorICogVGhlIHJlcXVlc3QgY29udGFpbnMgdGhlIHNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIHRoaXMgY2FwdHVyZSwgYW5kIHRoZSBzZXQgb2YKKyAqIG91dHB1dCBidWZmZXJzIHRvIHdyaXRlIHRoZSByZXN1bHRpbmcgaW1hZ2UgZGF0YSBpbi4gSXQgbWF5IG9wdGlvbmFsbHkKKyAqIGNvbnRhaW4gYW4gaW5wdXQgYnVmZmVyLCBpbiB3aGljaCBjYXNlIHRoZSByZXF1ZXN0IGlzIGZvciByZXByb2Nlc3NpbmcgdGhhdAorICogaW5wdXQgYnVmZmVyIGluc3RlYWQgb2YgY2FwdHVyaW5nIGEgbmV3IGltYWdlIHdpdGggdGhlIGNhbWVyYSBzZW5zb3IuIFRoZQorICogY2FwdHVyZSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBmcmFtZU51bWJlci4KKyAqCisgKiBJbiByZXNwb25zZSwgdGhlIGNhbWVyYSBIQUwgZGV2aWNlIG11c3Qgc2VuZCBhIENhcHR1cmVSZXN1bHQKKyAqIHN0cnVjdHVyZSBhc3luY2hyb25vdXNseSB0byB0aGUgZnJhbWV3b3JrLCB1c2luZyB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKQorICogY2FsbGJhY2suCisgKi8KK3N0cnVjdCBDYXB0dXJlUmVxdWVzdCB7CisgICAgLyoqCisgICAgICogVGhlIGZyYW1lIG51bWJlciBpcyBhbiBpbmNyZW1lbnRpbmcgaW50ZWdlciBzZXQgYnkgdGhlIGZyYW1ld29yayB0bworICAgICAqIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgY2FwdHVyZS4gSXQgbmVlZHMgdG8gYmUgcmV0dXJuZWQgaW4gdGhlIHJlc3VsdAorICAgICAqIGNhbGwsIGFuZCBpcyBhbHNvIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHJlcXVlc3QgaW4gYXN5bmNocm9ub3VzCisgICAgICogbm90aWZpY2F0aW9ucyBzZW50IHRvIElDYW1lcmFEZXZpY2UzQ2FsbGJhY2s6Om5vdGlmeSgpLgorICAgICAqLworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyOworCisgICAgLyoqCisgICAgICogSWYgbm9uLXplcm8sIHJlYWQgc2V0dGluZ3MgZnJvbSByZXF1ZXN0IHF1ZXVlIGluc3RlYWQKKyAgICAgKiAoc2VlIElDYW1lcmFEZXZpY2VTZXNzaW9uLmdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSkuCisgICAgICogSWYgemVybywgcmVhZCBzZXR0aW5ncyBmcm9tIC5zZXR0aW5ncyBmaWVsZC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBmbXFTZXR0aW5nc1NpemU7CisKKyAgICAvKioKKyAgICAgKiBJZiBmbXFTZXR0aW5nc1NpemUgaXMgemVybywKKyAgICAgKiB0aGUgc2V0dGluZ3MgYnVmZmVyIGNvbnRhaW5zIHRoZSBjYXB0dXJlIGFuZCBwcm9jZXNzaW5nIHBhcmFtZXRlcnMgZm9yCisgICAgICogdGhlIHJlcXVlc3QuIEFzIGEgc3BlY2lhbCBjYXNlLCBhbiBlbXB0eSBzZXR0aW5ncyBidWZmZXIgaW5kaWNhdGVzIHRoYXQKKyAgICAgKiB0aGUgc2V0dGluZ3MgYXJlIGlkZW50aWNhbCB0byB0aGUgbW9zdC1yZWNlbnRseSBzdWJtaXR0ZWQgY2FwdHVyZQorICAgICAqIHJlcXVlc3QuIEEgZW1wdHkgYnVmZmVyIGNhbm5vdCBiZSB1c2VkIGFzIHRoZSBmaXJzdCBzdWJtaXR0ZWQgcmVxdWVzdAorICAgICAqIGFmdGVyIGEgY29uZmlndXJlU3RyZWFtcygpIGNhbGwuCisgICAgICoKKyAgICAgKiBUaGlzIGZpZWxkIG11c3QgYmUgdXNlZCBpZiBmbXFTZXR0aW5nc1NpemUgaXMgemVyby4gSXQgbXVzdCBub3QgYmUgdXNlZAorICAgICAqIGlmIGZtcVNldHRpbmdzU2l6ZSBpcyBub24temVyby4KKyAgICAgKi8KKyAgICBDYW1lcmFNZXRhZGF0YSBzZXR0aW5nczsKKworICAgIC8qKgorICAgICAqIFRoZSBpbnB1dCBzdHJlYW0gYnVmZmVyIHRvIHVzZSBmb3IgdGhpcyByZXF1ZXN0LCBpZiBhbnkuCisgICAgICoKKyAgICAgKiBBbiBpbnZhbGlkIGlucHV0QnVmZmVyIGlzIHNpZ25pZmllZCBieSBhIG51bGwgaW5wdXRCdWZmZXI6OmJ1ZmZlciwgaW4KKyAgICAgKiB3aGljaCBjYXNlIHRoZSB2YWx1ZSBvZiBhbGwgb3RoZXIgbWVtYmVycyBvZiBpbnB1dEJ1ZmZlciBtdXN0IGJlIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBJZiBpbnB1dEJ1ZmZlciBpcyBpbnZhbGlkLCB0aGVuIHRoZSByZXF1ZXN0IGlzIGZvciBhIG5ldyBjYXB0dXJlIGZyb20gdGhlCisgICAgICogaW1hZ2VyLiBJZiBpbnB1dEJ1ZmZlciBpcyB2YWxpZCwgdGhlIHJlcXVlc3QgaXMgZm9yIHJlcHJvY2Vzc2luZyB0aGUKKyAgICAgKiBpbWFnZSBjb250YWluZWQgaW4gaW5wdXRCdWZmZXIsIGFuZCB0aGUgSEFMIG11c3QgcmVsZWFzZSB0aGUgaW5wdXRCdWZmZXIKKyAgICAgKiBiYWNrIHRvIHRoZSBjbGllbnQgaW4gYSBzdWJzZXF1ZW50IHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGwuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIGlzIHJlcXVpcmVkIHRvIHdhaXQgb24gdGhlIGFjcXVpcmUgc3luYyBmZW5jZSBvZiB0aGUgaW5wdXQgYnVmZmVyCisgICAgICogYmVmb3JlIGFjY2Vzc2luZyBpdC4KKyAgICAgKgorICAgICAqLworICAgIFN0cmVhbUJ1ZmZlciBpbnB1dEJ1ZmZlcjsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIGF0IGxlYXN0IDEgc3RyZWFtIGJ1ZmZlcnMsIHRvIGJlIGZpbGxlZCB3aXRoIGltYWdlCisgICAgICogZGF0YSBmcm9tIHRoaXMgY2FwdHVyZS9yZXByb2Nlc3MuIFRoZSBIQUwgbXVzdCB3YWl0IG9uIHRoZSBhY3F1aXJlIGZlbmNlcworICAgICAqIG9mIGVhY2ggc3RyZWFtIGJ1ZmZlciBiZWZvcmUgd3JpdGluZyB0byB0aGVtLgorICAgICAqCisgICAgICogVGhlIEhBTCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGhhbmRsZXMgaW4gb3V0cHV0QnVmZmVyczsgdGhlIGNsaWVudAorICAgICAqIG11c3Qgbm90IGFjY2VzcyB0aGVtIHVudGlsIHRoZXkgYXJlIHJldHVybmVkIGluIGEgQ2FwdHVyZVJlc3VsdC4KKyAgICAgKgorICAgICAqIEFueSBvciBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW5jbHVkZWQgaGVyZSBtYXkgYmUgYnJhbmQgbmV3IGluIHRoaXMKKyAgICAgKiByZXF1ZXN0IChoYXZpbmcgbmV2ZXIgYmVmb3JlIHNlZW4gYnkgdGhlIEhBTCkuCisgICAgICovCisgICAgdmVjPFN0cmVhbUJ1ZmZlcj4gb3V0cHV0QnVmZmVyczsKKworfTsKKworLyoqCisgKiBDYXB0dXJlUmVzdWx0OgorICoKKyAqIFRoZSByZXN1bHQgb2YgYSBzaW5nbGUgY2FwdHVyZS9yZXByb2Nlc3MgYnkgdGhlIGNhbWVyYSBIQUwgZGV2aWNlLiBUaGlzIGlzCisgKiBzZW50IHRvIHRoZSBmcmFtZXdvcmsgYXN5bmNocm9ub3VzbHkgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpLCBpbgorICogcmVzcG9uc2UgdG8gYSBzaW5nbGUgY2FwdHVyZSByZXF1ZXN0IHNlbnQgdG8gdGhlIEhBTCB3aXRoCisgKiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKS4gTXVsdGlwbGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSBjYWxscyBtYXkgYmUKKyAqIHBlcmZvcm1lZCBieSB0aGUgSEFMIGZvciBlYWNoIHJlcXVlc3QuCisgKgorICogRWFjaCBjYWxsLCBhbGwgd2l0aCB0aGUgc2FtZSBmcmFtZQorICogbnVtYmVyLCBtYXkgY29udGFpbiBzb21lIHN1YnNldCBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMsIGFuZC9vciB0aGUgcmVzdWx0CisgKiBtZXRhZGF0YS4KKyAqCisgKiBUaGUgcmVzdWx0IHN0cnVjdHVyZSBjb250YWlucyB0aGUgb3V0cHV0IG1ldGFkYXRhIGZyb20gdGhpcyBjYXB0dXJlLCBhbmQgdGhlCisgKiBzZXQgb2Ygb3V0cHV0IGJ1ZmZlcnMgdGhhdCBoYXZlIGJlZW4vd2lsbCBiZSBmaWxsZWQgZm9yIHRoaXMgY2FwdHVyZS4gRWFjaAorICogb3V0cHV0IGJ1ZmZlciBtYXkgY29tZSB3aXRoIGEgcmVsZWFzZSBzeW5jIGZlbmNlIHRoYXQgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQKKyAqIG9uIGJlZm9yZSByZWFkaW5nLCBpbiBjYXNlIHRoZSBidWZmZXIgaGFzIG5vdCB5ZXQgYmVlbiBmaWxsZWQgYnkgdGhlIEhBTC4KKyAqCisgKiBUaGUgbWV0YWRhdGEgbWF5IGJlIHByb3ZpZGVkIG11bHRpcGxlIHRpbWVzIGZvciBhIHNpbmdsZSBmcmFtZSBudW1iZXIuIFRoZQorICogZnJhbWV3b3JrIG11c3QgYWNjdW11bGF0ZSB0b2dldGhlciB0aGUgZmluYWwgcmVzdWx0IHNldCBieSBjb21iaW5pbmcgZWFjaAorICogcGFydGlhbCByZXN1bHQgdG9nZXRoZXIgaW50byB0aGUgdG90YWwgcmVzdWx0IHNldC4KKyAqCisgKiBJZiBhbiBpbnB1dCBidWZmZXIgaXMgZ2l2ZW4gaW4gYSByZXF1ZXN0LCB0aGUgSEFMIG11c3QgcmV0dXJuIGl0IGluIG9uZSBvZgorICogdGhlIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGxzLCBhbmQgdGhlIGNhbGwgbWF5IGJlIHRvIGp1c3QgcmV0dXJuIHRoZQorICogaW5wdXQgYnVmZmVyLCB3aXRob3V0IG1ldGFkYXRhIGFuZCBvdXRwdXQgYnVmZmVyczsgdGhlIHN5bmMgZmVuY2VzIG11c3QgYmUKKyAqIGhhbmRsZWQgdGhlIHNhbWUgd2F5IHRoZXkgYXJlIGRvbmUgZm9yIG91dHB1dCBidWZmZXJzLgorICoKKyAqIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zOgorICoKKyAqIEFwcGxpY2F0aW9ucyByZWNlaXZlIHRoZXNlIHBhcnRpYWwgcmVzdWx0cyBpbW1lZGlhdGVseSwgc28gc2VuZGluZyBwYXJ0aWFsCisgKiByZXN1bHRzIGlzIGEgaGlnaGx5IHJlY29tbWVuZGVkIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBhdm9pZCB0aGUgdG90YWwKKyAqIHBpcGVsaW5lIGxhdGVuY3kgYmVmb3JlIHNlbmRpbmcgdGhlIHJlc3VsdHMgZm9yIHdoYXQgaXMga25vd24gdmVyeSBlYXJseSBvbgorICogaW4gdGhlIHBpcGVsaW5lLgorICoKKyAqIEEgdHlwaWNhbCB1c2UgY2FzZSBtaWdodCBiZSBjYWxjdWxhdGluZyB0aGUgQUYgc3RhdGUgaGFsZndheSB0aHJvdWdoIHRoZQorICogcGlwZWxpbmU7IGJ5IHNlbmRpbmcgdGhlIHN0YXRlIGJhY2sgdG8gdGhlIGZyYW1ld29yayBpbW1lZGlhdGVseSwgd2UgZ2V0IGEKKyAqIDUwJSBwZXJmb3JtYW5jZSBpbmNyZWFzZSBhbmQgcGVyY2VpdmVkIHJlc3BvbnNpdmVuZXNzIG9mIHRoZSBhdXRvLWZvY3VzLgorICoKKyAqLworc3RydWN0IENhcHR1cmVSZXN1bHQgeworICAgIC8qKgorICAgICAqIFRoZSBmcmFtZSBudW1iZXIgaXMgYW4gaW5jcmVtZW50aW5nIGludGVnZXIgc2V0IGJ5IHRoZSBmcmFtZXdvcmsgaW4gdGhlCisgICAgICogc3VibWl0dGVkIHJlcXVlc3QgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBjYXB0dXJlLiBJdCBpcyBhbHNvIHVzZWQgdG8KKyAgICAgKiBpZGVudGlmeSB0aGUgcmVxdWVzdCBpbiBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9ucyBzZW50IHRvCisgICAgICogSUNhbWVyYURldmljZTNDYWxsYmFjazo6bm90aWZ5KCkuCisgICAgICovCisgICAgdWludDMyX3QgZnJhbWVOdW1iZXI7CisKKyAgICAvKioKKyAgICAgKiBJZiBub24temVybywgcmVhZCByZXN1bHQgZnJvbSByZXN1bHQgcXVldWUgaW5zdGVhZAorICAgICAqIChzZWUgSUNhbWVyYURldmljZVNlc3Npb24uZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWUpLgorICAgICAqIElmIHplcm8sIHJlYWQgcmVzdWx0IGZyb20gLnJlc3VsdCBmaWVsZC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBmbXFSZXN1bHRTaXplOworCisgICAgLyoqCisgICAgICogVGhlIHJlc3VsdCBtZXRhZGF0YSBmb3IgdGhpcyBjYXB0dXJlLiBUaGlzIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgICAqIGZpbmFsIGNhcHR1cmUgcGFyYW1ldGVycywgdGhlIHN0YXRlIG9mIHRoZSBjYXB0dXJlIGFuZCBwb3N0LXByb2Nlc3NpbmcKKyAgICAgKiBoYXJkd2FyZSwgdGhlIHN0YXRlIG9mIHRoZSAzQSBhbGdvcml0aG1zLCBpZiBlbmFibGVkLCBhbmQgdGhlIG91dHB1dCBvZgorICAgICAqIGFueSBlbmFibGVkIHN0YXRpc3RpY3MgdW5pdHMuCisgICAgICoKKyAgICAgKiBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgcHJvZHVjaW5nIHRoZSByZXN1bHQgbWV0YWRhdGEsIHJlc3VsdCBtdXN0IGJlIGFuCisgICAgICogZW1wdHkgbWV0YWRhdGEgYnVmZmVyLCBhbmQgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aAorICAgICAqIEVycm9yQ29kZTo6RVJST1JfUkVTVUxULgorICAgICAqCisgICAgICogTXVsdGlwbGUgY2FsbHMgdG8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSB3aXRoIGEgZ2l2ZW4gZnJhbWVOdW1iZXIKKyAgICAgKiBtYXkgaW5jbHVkZSAocGFydGlhbCkgcmVzdWx0IG1ldGFkYXRhLgorICAgICAqCisgICAgICogUGFydGlhbCBtZXRhZGF0YSBzdWJtaXR0ZWQgbXVzdCBub3QgaW5jbHVkZSBhbnkgbWV0YWRhdGEga2V5IHJldHVybmVkCisgICAgICogaW4gYSBwcmV2aW91cyBwYXJ0aWFsIHJlc3VsdCBmb3IgYSBnaXZlbiBmcmFtZS4gRWFjaCBuZXcgcGFydGlhbCByZXN1bHQKKyAgICAgKiBmb3IgdGhhdCBmcmFtZSBtdXN0IGFsc28gc2V0IGEgZGlzdGluY3QgcGFydGlhbFJlc3VsdCB2YWx1ZS4KKyAgICAgKgorICAgICAqIElmIG5vdGlmeSBoYXMgYmVlbiBjYWxsZWQgd2l0aCBFcnJvckNvZGU6OkVSUk9SX1JFU1VMVCwgYWxsIGZ1cnRoZXIKKyAgICAgKiBwYXJ0aWFsIHJlc3VsdHMgZm9yIHRoYXQgZnJhbWUgYXJlIGlnbm9yZWQgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKi8KKyAgICBDYW1lcmFNZXRhZGF0YSByZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29tcGxldGVkIG91dHB1dCBzdHJlYW0gYnVmZmVycyBmb3IgdGhpcyBjYXB0dXJlLgorICAgICAqCisgICAgICogVGhleSBtYXkgbm90IHlldCBiZSBmaWxsZWQgYXQgdGhlIHRpbWUgdGhlIEhBTCBjYWxscworICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCk7IHRoZSBmcmFtZXdvcmsgbXVzdCB3YWl0IG9uIHRoZSByZWxlYXNlIHN5bmMKKyAgICAgKiBmZW5jZXMgcHJvdmlkZWQgYnkgdGhlIEhBTCBiZWZvcmUgcmVhZGluZyB0aGUgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoZSBTdHJlYW1CdWZmZXI6OmJ1ZmZlciBoYW5kbGUgbXVzdCBiZSBudWxsIGZvciBhbGwgcmV0dXJuZWQgYnVmZmVyczsKKyAgICAgKiB0aGUgY2xpZW50IG11c3QgY2FjaGUgdGhlIGhhbmRsZSBhbmQgbG9vayBpdCB1cCB2aWEgdGhlIGNvbWJpbmF0aW9uIG9mCisgICAgICogZnJhbWUgbnVtYmVyIGFuZCBzdHJlYW0gSUQuCisgICAgICoKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG91dHB1dCBidWZmZXJzIHJldHVybmVkIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZQorICAgICAqIG1hdGNoaW5nIGNhcHR1cmUgcmVxdWVzdCdzIGNvdW50LiBJZiB0aGlzIGlzIGxlc3MgdGhhbiB0aGUgYnVmZmVyIGNvdW50CisgICAgICogaW4gdGhlIGNhcHR1cmUgcmVxdWVzdCwgYXQgbGVhc3Qgb25lIG1vcmUgY2FsbCB0byBwcm9jZXNzQ2FwdHVyZVJlc3VsdAorICAgICAqIHdpdGggdGhlIHNhbWUgZnJhbWVOdW1iZXIgbXVzdCBiZSBtYWRlLCB0byByZXR1cm4gdGhlIHJlbWFpbmluZyBvdXRwdXQKKyAgICAgKiBidWZmZXJzIHRvIHRoZSBmcmFtZXdvcmsuIFRoaXMgbWF5IG9ubHkgYmUgemVybyBpZiB0aGUgc3RydWN0dXJlIGluY2x1ZGVzCisgICAgICogdmFsaWQgcmVzdWx0IG1ldGFkYXRhIG9yIGFuIGlucHV0IGJ1ZmZlciBpcyByZXR1cm5lZCBpbiB0aGlzIHJlc3VsdC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCBzZXQgdGhlIHN0cmVhbSBidWZmZXIncyByZWxlYXNlIHN5bmMgZmVuY2UgdG8gYSB2YWxpZCBzeW5jCisgICAgICogZmQsIG9yIHRvIG51bGwgaWYgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIGZpbGxlZC4KKyAgICAgKgorICAgICAqIElmIHRoZSBIQUwgZW5jb3VudGVycyBhbiBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSBidWZmZXIsIGFuZCB0aGUKKyAgICAgKiBidWZmZXIgaXMgbm90IGZpbGxlZCwgdGhlIGJ1ZmZlcidzIHN0YXR1cyBmaWVsZCBtdXN0IGJlIHNldCB0byBFUlJPUi4gSWYKKyAgICAgKiB0aGUgSEFMIGRpZCBub3Qgd2FpdCBvbiB0aGUgYWNxdWlyZSBmZW5jZSBiZWZvcmUgZW5jb3VudGVyaW5nIHRoZSBlcnJvciwKKyAgICAgKiB0aGUgYWNxdWlyZSBmZW5jZSBtdXN0IGJlIGNvcGllZCBpbnRvIHRoZSByZWxlYXNlIGZlbmNlLCB0byBhbGxvdyB0aGUKKyAgICAgKiBmcmFtZXdvcmsgdG8gd2FpdCBvbiB0aGUgZmVuY2UgYmVmb3JlIHJldXNpbmcgdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFRoZSBhY3F1aXJlIGZlbmNlIG11c3QgYmUgc2V0IHRvIG51bGwgZm9yIGFsbCBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoaXMgdmVjdG9yIG1heSBiZSBlbXB0eTsgaWYgc28sIGF0IGxlYXN0IG9uZSBvdGhlciBwcm9jZXNzQ2FwdHVyZVJlc3VsdAorICAgICAqIGNhbGwgbXVzdCBiZSBtYWRlIChvciBoYXZlIGJlZW4gbWFkZSkgYnkgdGhlIEhBTCB0byBwcm92aWRlIHRoZSBmaWxsZWQKKyAgICAgKiBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFdoZW4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQgaXMgY2FsbGVkIHdpdGggYSBuZXcgYnVmZmVyIGZvciBhIGZyYW1lLAorICAgICAqIGFsbCBwcmV2aW91cyBmcmFtZXMnIGJ1ZmZlcnMgZm9yIHRoYXQgY29ycmVzcG9uZGluZyBzdHJlYW0gbXVzdCBoYXZlIGJlZW4KKyAgICAgKiBhbHJlYWR5IGRlbGl2ZXJlZCAodGhlIGZlbmNlcyBuZWVkIG5vdCBoYXZlIHlldCBiZWVuIHNpZ25hbGVkKS4KKyAgICAgKgorICAgICAqIEJ1ZmZlcnMgZm9yIGEgZnJhbWUgbWF5IGJlIHNlbnQgdG8gZnJhbWV3b3JrIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZworICAgICAqIFNIVVRURVItbm90aWZ5IGNhbGwgaXMgbWFkZSBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM6CisgICAgICoKKyAgICAgKiBCdWZmZXJzIGRlbGl2ZXJlZCB0byB0aGUgZnJhbWV3b3JrIGFyZSBub3QgZGlzcGF0Y2hlZCB0byB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbiBsYXllciB1bnRpbCBhIHN0YXJ0IG9mIGV4cG9zdXJlIHRpbWVzdGFtcCBoYXMgYmVlbiByZWNlaXZlZAorICAgICAqIHZpYSBhIFNIVVRURVIgbm90aWZ5KCkgY2FsbC4gSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvCisgICAgICogZGlzcGF0Y2ggdGhhdCBjYWxsIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgorICAgICAqLworICAgIHZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgaGFuZGxlIGZvciB0aGUgaW5wdXQgc3RyZWFtIGJ1ZmZlciBmb3IgdGhpcyBjYXB0dXJlLCBpZiBhbnkuCisgICAgICoKKyAgICAgKiBJdCBtYXkgbm90IHlldCBiZSBjb25zdW1lZCBhdCB0aGUgdGltZSB0aGUgSEFMIGNhbGxzCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKTsgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQgb24gdGhlIHJlbGVhc2Ugc3luYyBmZW5jZQorICAgICAqIHByb3ZpZGVkIGJ5IHRoZSBIQUwgYmVmb3JlIHJldXNpbmcgdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCBoYW5kbGUgdGhlIHN5bmMgZmVuY2VzIHRoZSBzYW1lIHdheSB0aGV5IGFyZSBkb25lIGZvcgorICAgICAqIG91dHB1dEJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBPbmx5IG9uZSBpbnB1dCBidWZmZXIgaXMgYWxsb3dlZCB0byBiZSBzZW50IHBlciByZXF1ZXN0LiBTaW1pbGFybHkgdG8KKyAgICAgKiBvdXRwdXQgYnVmZmVycywgdGhlIG9yZGVyaW5nIG9mIHJldHVybmVkIGlucHV0IGJ1ZmZlcnMgbXVzdCBiZQorICAgICAqIG1haW50YWluZWQgYnkgdGhlIEhBTC4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zOgorICAgICAqCisgICAgICogVGhlIGlucHV0IGJ1ZmZlciBzaG91bGQgYmUgcmV0dXJuZWQgYXMgZWFybHkgYXMgcG9zc2libGUuIElmIHRoZSBIQUwKKyAgICAgKiBzdXBwb3J0cyBzeW5jIGZlbmNlcywgaXQgY2FuIGNhbGwgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgdG8gaGFuZCBpdCBiYWNrCisgICAgICogd2l0aCBzeW5jIGZlbmNlcyBiZWluZyBzZXQgYXBwcm9wcmlhdGVseS4gSWYgdGhlIHN5bmMgZmVuY2VzIGFyZSBub3QKKyAgICAgKiBzdXBwb3J0ZWQsIHRoZSBidWZmZXIgY2FuIG9ubHkgYmUgcmV0dXJuZWQgd2hlbiBpdCBpcyBjb25zdW1lZCwgd2hpY2gKKyAgICAgKiBtYXkgdGFrZSBsb25nIHRpbWU7IHRoZSBIQUwgbWF5IGNob29zZSB0byBjb3B5IHRoaXMgaW5wdXQgYnVmZmVyIHRvIG1ha2UKKyAgICAgKiB0aGUgYnVmZmVyIHJldHVybiBzb29uZXIuCisgICAgICovCisgICAgU3RyZWFtQnVmZmVyIGlucHV0QnVmZmVyOworCisgICAgLyoqCisgICAgICogSW4gb3JkZXIgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgcGFydGlhbCByZXN1bHRzLCB0aGUgSEFMIG11c3Qgc2V0IHRoZQorICAgICAqIHN0YXRpYyBtZXRhZGF0YSBhbmRyb2lkLnJlcXVlc3QucGFydGlhbFJlc3VsdENvdW50IHRvIHRoZSBudW1iZXIgb2YKKyAgICAgKiBwYXJ0aWFsIHJlc3VsdHMgaXQgc2VuZHMgZm9yIGVhY2ggZnJhbWUuCisgICAgICoKKyAgICAgKiBFYWNoIG5ldyBjYXB0dXJlIHJlc3VsdCB3aXRoIGEgcGFydGlhbCByZXN1bHQgbXVzdCBzZXQKKyAgICAgKiB0aGlzIGZpZWxkIHRvIGEgZGlzdGluY3QgaW5jbHVzaXZlIHZhbHVlIGJldHdlZW4KKyAgICAgKiAxIGFuZCBhbmRyb2lkLnJlcXVlc3QucGFydGlhbFJlc3VsdENvdW50LgorICAgICAqCisgICAgICogSEFMcyBub3Qgd2lzaGluZyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZlYXR1cmUgbXVzdCBub3QKKyAgICAgKiBzZXQgYW4gYW5kcm9pZC5yZXF1ZXN0LnBhcnRpYWxSZXN1bHRDb3VudCBvciBwYXJ0aWFsX3Jlc3VsdCB0byBhIHZhbHVlCisgICAgICogb3RoZXIgdGhhbiAxLgorICAgICAqCisgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHNldCB0byAwIHdoZW4gYSBjYXB0dXJlIHJlc3VsdCBjb250YWlucyBidWZmZXJzIG9ubHkKKyAgICAgKiBhbmQgbm8gbWV0YWRhdGEuCisgICAgICovCisgICAgdWludDMyX3QgcGFydGlhbFJlc3VsdDsKKworfTsKKworLyoqCisgKiBCdWZmZXJDYWNoZToKKyAqCisgKiBBIGxpc3Qgb2YgY2FjaGVkIGJ1ZmZlcklkcyBhc3NvY2lhdGVkIHdpdGggYSBjZXJ0YWluIHN0cmVhbS4KKyAqIEJ1ZmZlcnMgYXJlIHBhc3NlZCBiZXR3ZWVuIGNhbWVyYSBzZXJ2aWNlIGFuZCBjYW1lcmEgSEFMIHZpYSBidWZmZXJJZCBleGNlcHQKKyAqIHRoZSBmaXJzdCB0aW1lIGEgbmV3IGJ1ZmZlciBpcyBiZWluZyBwYXNzZWQgdG8gSEFMIGluIENhcHR1cmVSZXF1ZXN0LiBDYW1lcmEKKyAqIHNlcnZpY2UgYW5kIGNhbWVyYSBIQUwgdGhlcmVmb3JlIG5lZWQgdG8gbWFpbnRhaW4gYSBjYWNoZWQgbWFwIG9mIGJ1ZmZlcklkCisgKiBhbmQgY29ycmVzcG9uaW5nIG5hdGl2ZSBoYW5kbGUuCisgKgorICovCitzdHJ1Y3QgQnVmZmVyQ2FjaGUgeworICAgIC8qKgorICAgICAqIFRoZSBJRCBvZiB0aGUgc3RyZWFtIHRoaXMgbGlzdCBpcyBhc3NvY2lhdGVkIHdpdGguCisgICAgICovCisgICAgaW50MzJfdCBzdHJlYW1JZDsKKworICAgIC8qKgorICAgICAqIEEgY2FjaGVkIGJ1ZmZlciBJRCBhc3NvY2lhdGVkIHdpdGggc3RyZWFtSWQuCisgICAgICovCisgICAgdWludDY0X3QgYnVmZmVySWQ7Cit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS9SRUFETUUubWQgYi9jYW1lcmEvZGV2aWNlL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTU3MDNhCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS9SRUFETUUubWQKQEAgLTAsMCArMSw3NiBAQAorIyMgQ2FtZXJhIERldmljZSBIQUwgIyMKKy0tLQorCisjIyBPdmVydmlldzogIyMKKworVGhlIGNhbWVyYS5kZXZpY2UgSEFMIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlIHRvIG9wZXJhdGUKK2luZGl2aWR1YWwgY2FtZXJhIGRldmljZXMuIEluc3RhbmNlcyBvZiBjYW1lcmEuZGV2aWNlIEhBTCBpbnRlcmZhY2UgY2FuIGJlIG9idGFpbmVkCit2aWEgb25lIG9mIHRoZSBJQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZUludGVyZmFjZV9WPE4+X3goKSBtZXRob2RzLCB3aGVyZSBOCitpcyB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGUgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UuCisKK09idGFpbmluZyB0aGUgZGV2aWNlIGludGVyZmFjZSBkb2VzIG5vdCB0dXJuIG9uIHRoZSByZXNwZWN0aXZlIGNhbWVyYSBkZXZpY2U7CitlYWNoIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGhhcyBhbiBhY3R1YWwgb3BlbigpIG1ldGhvZCB0byBiZWdpbiBhbiBhY3RpdmUKK2NhbWVyYSBzZXNzaW9uLiBXaXRob3V0IGludm9raW5nIG9wZW4oKSwgdGhlIGludGVyZmFjZSBjYW4gYmUgdXNlZCBmb3IgcXVlcnlpbmcKK2NhbWVyYSBzdGF0aWMgaW5mb3JtYXRpb24uCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KKworIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyMgSUNhbWVyYURldmljZS5oYWxAMS4wOgorCitISURMIHZlcnNpb24gb2YgdGhlIGxlZ2FjeSBjYW1lcmEgZGV2aWNlIEhBTC4gSW50ZW5kZWQgYXMgYSBzaGltIGZvciBkZXZpY2VzCituZWVkaW5nIHRvIHVzZSB0aGUgZGVwcmVjYXRlZCBwcmUtSElETCBjYW1lcmEgZGV2aWNlIEhBTCB2MS4wLgorCitNYXkgYmUgdXNlZCBpbiBISURMIHBhc3N0aHJvdWdoIG1vZGUgZm9yIGRldmljZXMgdXBncmFkaW5nIHRvIHRoZSBBbmRyb2lkIE8KK3JlbGVhc2U7IG11c3QgYmUgdXNlZCBpbiBiaW5kZXJpemVkIG1vZGUgZm9yIGRldmljZXMgbGF1bmNoaW5nIGluIHRoZSBPIHJlbGVhc2UuCisKK0l0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UgZm9yIG5ldyBkZXZpY2VzLCBhcyBuZXcKK2RldmljZXMgbWF5IG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Ugc3RhcnRpbmcgd2l0aCB0aGUgQW5kcm9pZCBQIHJlbGVhc2UsIGFuZCBhbGwKK3N1cHBvcnQgZm9yIElDYW1lcmFEZXZpY2VAMS4wIHdpbGwgYmUgcmVtb3ZlZCB3aXRoIHRoZSBBbmRyb2lkIFIgcmVsZWFzZS4KKworVGhpcyBIQUwgaW50ZXJmYWNlIHZlcnNpb24gb25seSBhbGxvd3Mgc3VwcG9ydCBhdCB0aGUgTEVHQUNZIGxldmVsIGZvciB0aGUKK2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMiBBUEkuCisKK1N1YnNpZGlhcnkgSEFMczoKKworIyMjIyBJQ2FtZXJhRGV2aWNlMVByZXZpZXdDYWxsYmFjay5oYWxAMS4wOgorCitDYWxsYmFjayBpbnRlcmZhY2UgZm9yIG9idGFpbmluZywgZmlsbGluZywgYW5kIHJldHVybmluZyBncmFwaGljcyBidWZmZXJzIGZvcgorcHJldmlldyBvcGVyYXRpb24gd2l0aCB0aGUgSUNhbWVyYURldmljZUAxLjAgaW50ZWZhY2UuCisKKyMjIyMgSUNhbWVyYURldmljZTFDYWxsYmFjay5oYWxAMS4wOgorCitDYWxsYmFjayBpbnRlcmZhY2UgZm9yIHNlbmRpbmcgZXZlbnRzIGFuZCBkYXRhIGJ1ZmZlcnMgZnJvbSB0aGUgSEFMIHRvIHRoZQorY2FtZXJhIHNlcnZpY2UuCisKKyMjIyBJQ2FtZXJhRGV2aWNlLmhhbEAzLjI6CisKK0hJREwgdmVyc2lvbiBvZiB0aGUgYmFzZWxpbmUgY2FtZXJhIGRldmljZSBIQUwsIHJlcXVpcmVkIGZvciBMSU1JVEVEIG9yIEZVTEwKK29wZXJhdGlvbiB0aHJvdWdoIHRoZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIgQVBJLgorCitUaGUgbWFpbiBIQUwgY29udGFpbnMgbWV0aG9kcyBmb3Igc3RhdGljIHF1ZXJpZXMgYWJvdXQgdGhlIGRldmljZSwgc2ltaWxhciB0bwordGhlIEhBTHYzLXNwZWNpZmljIHNlY3Rpb25zIG9mIHRoZSBsZWdhY3kgY2FtZXJhIG1vZHVsZSBIQUwuIFNpbXBseSBvYnRhaW5pbmcgYW4KK2luc3RhbmNlIG9mIHRoZSBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBkb2VzIG5vdCB0dXJuIG9uIHRoZSBjYW1lcmEgZGV2aWNlLgorCitNYXkgYmUgdXNlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGZvciBkZXZpY2VzIHVwZ3JhZGluZyB0byB0aGUgQW5kcm9pZCBPIHJlbGVhc2U7CittdXN0IGJlIHVzZWQgaW4gYmluZGVyaXplZCBtb2RlIGZvciBhbGwgbmV3IGRldmljZXMgbGF1bmNoaW5nIHdpdGggQW5kcm9pZCBPIG9yCitsYXRlci4KKworVGhlIG9wZW4oKSBtZXRob2QgYWN0dWFsbHkgb3BlbnMgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHVzZSwgcmV0dXJuaW5nIGEgU2Vzc2lvbgoraW50ZXJmYWNlIGZvciBvcGVyYXRpbmcgdGhlIGFjdGl2ZSBjYW1lcmEuIEl0IHRha2VzIGEgQ2FsbGJhY2sgaW50ZXJmYWNlIGFzIGFuCithcmd1bWVudC4KKworU3Vic2lkaWFyeSBIQUxzOgorCisjIyMjIElDYW1lcmFEZXZpY2UzU2Vzc2lvbi5oYWxAMy4yOgorCitDbG9zZWx5IG1hdGNoZXMgdGhlIGZlYXR1cmVzIGFuZCBvcGVyYXRpb24gb2YgdGhlIHByZS1ISURMIGNhbWVyYSBkZXZpY2UgSEFMCit2My4yLCBjb250YWluaW5nIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBjYW1lcmEgZGV2aWNlIGFuZCBzdWJtaXR0aW5nCitjYXB0dXJlIHJlcXVlc3RzIHRvIGl0LgorCisjIyMjIElDYW1lcmFEZXZpY2UzQ2FsbGJhY2suaGFsQDMuMjoKKworQ2FsbGJhY2sgaW50ZXJmYWNlIGZvciBzZW5kaW5nIGNvbXBsZXRlZCBjYXB0dXJlcyBhbmQgb3RoZXIgYXN5bmNocm9ub3VzIGV2ZW50cworZnJvbSB0ZWhlIEhBTCB0byB0aGUgY2xpZW50LgpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhLzMuMi9BbmRyb2lkLmJwIGIvY2FtZXJhL21ldGFkYXRhLzMuMi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwN2I1MjEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjIiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhLzMuMi90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhLzMuMi9od3R5cGVzLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQubWsgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM1YzM3YwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDI0NjIgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhLVYzLjItamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQmxhY2tMZXZlbExvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25BYmVycmF0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9ja0F2YWlsYWJsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVQcmVjYXB0dXJlVHJpZ2dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlRyaWdnZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9jaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2tBdmFpbGFibGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQ2FwdHVyZUludGVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFZmZlY3RNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVuYWJsZVpzbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sU2NlbmVNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFZpZGVvU3RhYmlsaXphdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlbW9zYWljTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlbW9zYWljTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlbW9zYWljTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEVkZ2VNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEhvdFBpeGVsTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEhvdFBpeGVsTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEhvdFBpeGVsTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRJbmZvU3VwcG9ydGVkSGFyZHdhcmVMZXZlbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRBdmFpbGFibGVMZWRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZFRyYW5zbWl0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNGYWNpbmcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNJbmZvRm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zT3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFF1aXJrc1BhcnRpYWxSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0QXZhaWxhYmxlQ2FwYWJpbGl0aWVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0TWV0YWRhdGFNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZUZvcm1hdHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvQ29sb3JGaWx0ZXJBcnJhbmdlbWVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvTGVuc1NoYWRpbmdBcHBsaWVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvVGltZXN0YW1wU291cmNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JSZWZlcmVuY2VJbGx1bWluYW50MQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNoYWRpbmdNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NGYWNlRGV0ZWN0TW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NGYWNlRGV0ZWN0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NGYWNlRGV0ZWN0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSGlzdG9ncmFtTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIb3RQaXhlbE1hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0xlbnNTaGFkaW5nTWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2NlbmVGbGlja2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2hhcnBuZXNzTWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNNYXhMYXRlbmN5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFTZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YVNlY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhU2VjdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFUYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhVGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVRhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YS1WMy4yLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQmxhY2tMZXZlbExvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25BYmVycmF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jaykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9ja0F2YWlsYWJsZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVQcmVjYXB0dXJlVHJpZ2dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlRyaWdnZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2tBdmFpbGFibGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQ2FwdHVyZUludGVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFZmZlY3RNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVuYWJsZVpzbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sU2NlbmVNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFZpZGVvU3RhYmlsaXphdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEVkZ2VNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRJbmZvU3VwcG9ydGVkSGFyZHdhcmVMZXZlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRBdmFpbGFibGVMZWRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZFRyYW5zbWl0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNGYWNpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNJbmZvRm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zT3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFF1aXJrc1BhcnRpYWxSZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0QXZhaWxhYmxlQ2FwYWJpbGl0aWVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0TWV0YWRhdGFNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZUZvcm1hdHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvQ29sb3JGaWx0ZXJBcnJhbmdlbWVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvTGVuc1NoYWRpbmdBcHBsaWVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvVGltZXN0YW1wU291cmNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JSZWZlcmVuY2VJbGx1bWluYW50MS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNoYWRpbmdNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSGlzdG9ncmFtTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIb3RQaXhlbE1hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0xlbnNTaGFkaW5nTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2NlbmVGbGlja2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2hhcnBuZXNzTWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNNYXhMYXRlbmN5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVNlY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFTZWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVRhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFUYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2NhbWVyYS9tZXRhZGF0YS8zLjIvZG9jcy5odG1sIGIvY2FtZXJhL21ldGFkYXRhLzMuMi9kb2NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA0ZWNhZQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvZG9jcy5odG1sCkBAIC0wLDAgKzEsMjczNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8IS0tIENvcHlyaWdodCAoQykgMjAxMiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLS0+Cis8aGVhZD4KKyAgPCEtLSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGh0bWwubWFrby4gZG8gTk9UIGVkaXQgZGlyZWN0bHkgLS0+CisgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICA8dGl0bGU+QW5kcm9pZCBDYW1lcmEgSEFMMy40IFByb3BlcnRpZXM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjt9CisgICAgIGgxIHsgY29sb3I6ICMzMzMzMzM7IH0KKyAgICAgaDIgeyBjb2xvcjogIzMzMzMzMzsgfQorICAgICBhOmxpbmsgeyBjb2xvcjogIzI1OGFhZjsgdGV4dC1kZWNvcmF0aW9uOiBub25lfQorICAgICBhOmhvdmVyIHsgY29sb3I6ICM0NTlhYWY7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKyAgICAgYTp2aXNpdGVkIHsgY29sb3I6ICMxNTRhNWY7IHRleHQtZGVjb3JhdGlvbjogbm9uZX0KKyAgICAuc2VjdGlvbiB7IGNvbG9yOiAjZWVlZWVlOyBmb250LXNpemU6IDEuNWVtOyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODsgcGFkZGluZzogMC41ZW0gMGVtIDAuNWVtIDAuNWVtOyBib3JkZXItd2lkdGg6IHRoaWNrIHRoaW4gdGhpbiB0aGluOyBib3JkZXItY29sb3I6ICMxMTExMTEgIzc3Nzc3NyAjNzc3Nzc3ICM3Nzc3Nzd9CisgICAgLmtpbmQgeyBjb2xvcjogI2VlZWVlZTsgZm9udC1zaXplOiAxLjJlbTsgZm9udC13ZWlnaHQ6IGJvbGQ7IHBhZGRpbmctbGVmdDogMS41ZW07IGJhY2tncm91bmQtY29sb3I6ICNhYWFhYWEgfQorICAgIC5lbnRyeSB7IGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjAgfQorICAgIC5lbnRyeV9jb250IHsgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMCB9CisgICAgLmVudHJpZXNfaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDsgdGV4dC1hbGlnbjogY2VudGVyfQorCisgICAgLyogdG9jIHN0eWxlICovCisgICAgLnRvY19zZWN0aW9uX2hlYWRlciB7IGZvbnQtc2l6ZToxLjNlbTsgIH0KKyAgICAudG9jX2tpbmRfaGVhZGVyIHsgZm9udC1zaXplOjEuMmVtOyAgfQorICAgIC50b2NfZGVwcmVjYXRlZCB7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IH0KKworICAgIC8qIHRhYmxlIGNvbHVtbiBzaXplcyAqLworICAgIHRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB3aWR0aDogMTAwJTsgd29yZC13cmFwOiBicmVhay13b3JkIH0KKyAgICB0ZCx0aCB7IGJvcmRlcjogMXB4IHNvbGlkOyBib3JkZXItY29sb3I6ICNhYWFhYWE7IHBhZGRpbmctbGVmdDogMC41ZW07IHBhZGRpbmctcmlnaHQ6IDAuNWVtIH0KKyAgICAudGhfbmFtZSB7IHdpZHRoOiAyMCUgfQorICAgIC50aF91bml0cyB7IHdpZHRoOiAxMCUgfQorICAgIC50aF90YWdzIHsgd2lkdGg6IDUlIH0KKyAgICAudGhfZGV0YWlscyB7IHdpZHRoOiAyNSUgfQorICAgIC50aF90eXBlIHsgd2lkdGg6IDIwJSB9CisgICAgLnRoX2Rlc2NyaXB0aW9uIHsgd2lkdGg6IDIwJSB9CisgICAgLnRoX3JhbmdlIHsgd2lkdGg6IDEwJSB9CisgICAgdGQgeyBmb250LXNpemU6IDAuOWVtOyB9CisKKyAgICAvKiBoaWRlIHRoZSBmaXJzdCB0aGVhZCwgd2UgbmVlZCBpdCB0aGVyZSBvbmx5IHRvIGVuZm9yY2UgY29sdW1uIHNpemVzICovCisgICAgLnRoZWFkX2R1bW15IHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CisKKyAgICAvKiBFbnRyeSBmbGFpciAqLworICAgIC5lbnRyeV9uYW1lIHsgY29sb3I6ICMzMzMzMzM7IHBhZGRpbmctbGVmdDoxLjBlbTsgZm9udC1zaXplOjEuMWVtOyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IH0KKyAgICAuZW50cnlfbmFtZV9kZXByZWNhdGVkIHsgdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDsgfQorCisgICAgLyogRW50cnkgdHlwZSBmbGFpciAqLworICAgIC5lbnRyeV90eXBlX25hbWUgeyBmb250LXNpemU6MS4xZW07IGNvbG9yOiAjNjY5OTAwOyBmb250LXdlaWdodDogYm9sZDt9CisgICAgLmVudHJ5X3R5cGVfbmFtZV9lbnVtOmFmdGVyIHsgY29sb3I6ICM2Njk5MDA7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb250ZW50OiIgKGVudW0pIiB9CisgICAgLmVudHJ5X3R5cGVfdmlzaWJpbGl0eSB7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IHBhZGRpbmctbGVmdDoxZW19CisgICAgLmVudHJ5X3R5cGVfc3ludGhldGljIHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgY29sb3I6ICM5OTY2MDA7IH0KKyAgICAuZW50cnlfdHlwZV9od2xldmVsIHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgY29sb3I6ICMwMDAwNjY7IH0KKyAgICAuZW50cnlfdHlwZV9kZXByZWNhdGVkIHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgY29sb3I6ICM0RDRENEQ7IH0KKyAgICAuZW50cnlfdHlwZV9lbnVtX25hbWUgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXdlaWdodDogYm9sZGVyOyB9CisgICAgLmVudHJ5X3R5cGVfZW51bV9ub3RlczpiZWZvcmUgeyBjb250ZW50OiIgLSAiIH0KKyAgICAuZW50cnlfdHlwZV9lbnVtX25vdGVzPnA6Zmlyc3QtY2hpbGQgeyBkaXNwbGF5OmlubGluZTsgfQorICAgIC5lbnRyeV90eXBlX2VudW1fdmFsdWU6YmVmb3JlIHsgY29udGVudDoiID0gIiB9CisgICAgLmVudHJ5X3R5cGVfZW51bV92YWx1ZSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAuZW50cnkgdWwgeyBtYXJnaW46IDAgMCAwIDA7IGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTsgcGFkZGluZy1sZWZ0OiAwLjVlbTsgfQorICAgIC5lbnRyeSB1bCBsaSB7IHBhZGRpbmc6IDAgMCAwIDA7IG1hcmdpbjogMCAwIDAgMDt9CisgICAgLmVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQgeyBmb250LXdlaWdodDogYm9sZGVyOyB9CisKKyAgICAvKiBFbnRyeSB0YWdzIGZsYWlyICovCisgICAgLmVudHJ5X3RhZ3MgdWwgeyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH0KKworICAgIC8qIEVudHJ5IGRldGFpbHMgKGZ1bGwgZG9jcykgZmxhaXIgKi8KKyAgICAuZW50cnlfZGV0YWlsc19oZWFkZXIgeyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDsKKyAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxLjFlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW07IH0KKworICAgIC8qIEVudHJ5IHNwYWNlciBmbGFpciAqLworICAgIC5lbnRyeV9zcGFjZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgYm9yZGVyLXN0eWxlOiBub25lOyBoZWlnaHQ6IDAuNWVtOyB9CisKKyAgICAvKiBUT0RPOiBnZW5lcmF0ZSBhYmJyIGVsZW1lbnQgZm9yIGVhY2ggdGFnIGxpbms/ICovCisgICAgLyogVE9ETyBmb3IgZWFjaCB4LnkueiB0cnkgdG8gbGluayBpdCB0byB0aGUgZW50cnkgKi8KKworICA8L3N0eWxlPgorCisgIDxzdHlsZT4KKworICAgIHsKKyAgICAgIC8qIGJyb2tlbi4uLgorICAgICAgICAgc3VwcG9zZWRseSB0aGVyZSBpcyBhIGJ1ZyBpbiBjaHJvbWUgdGhhdCBpdCBsYXlzIG91dCB0YWJsZXMgYmVmb3JlCisgICAgICAgICBpdCBrbm93cyBpdHMgYmVpbmcgcHJpbnRlZCwgc28gdGhlIHBhZ2UtYnJlYWstKiBzdHlsZXMgYXJlIGlnbm9yZWQKKyAgICAgICAgICovCisgICAgICAgIHRyIHsgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzOyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH0KKyAgICB9CisKKyAgPC9zdHlsZT4KKzwvaGVhZD4KKworCisKKzxib2R5PgorICA8aDE+QW5kcm9pZCBDYW1lcmEgSEFMMy4yIFByb3BlcnRpZXM8L2gxPgorCisKKyAgPGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj4KKyAgPHVsIGNsYXNzPSJ0b2MiPgorICAgIDxsaT48YSBocmVmPSIjdGFnX2luZGV4IiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj5UYWdzPC9hPjwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fY29sb3JDb3JyZWN0aW9uIj5jb2xvckNvcnJlY3Rpb248L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlcyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9jb250cm9sIj5jb250cm9sPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLmNvbnRyb2wuYWVMb2NrPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC5jb250cm9sLmFlTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMiPmFuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWZNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFmUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuY29udHJvbC5hZlRyaWdnZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC5jb250cm9sLmF3YkxvY2s8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC5jb250cm9sLmF3Yk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC5jb250cm9sLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij5hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3Q8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUVmZmVjdHMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVFZmZlY3RzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlVmlkZW9TdGFiaWxpemF0aW9uTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVWaWRlb1N0YWJpbGl6YXRpb25Nb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXdiQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YiI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBd2I8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLmNvbnRyb2wuYWVMb2NrQXZhaWxhYmxlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLmNvbnRyb2wuYXdiTG9ja0F2YWlsYWJsZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZSI+YW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0UmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlSWQiPmFuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVJZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC5jb250cm9sLmFlTG9jazwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC5jb250cm9sLmFlTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFlUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC5jb250cm9sLmFmTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFmUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuY29udHJvbC5hZlN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcklkIj5hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VySWQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLmNvbnRyb2wuYXdiTG9jazwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuY29udHJvbC5hd2JNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3YlN0YXRlIj5hbmRyb2lkLmNvbnRyb2wuYXdiU3RhdGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuY29udHJvbC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+YW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9kZW1vc2FpYyI+ZGVtb3NhaWM8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmRlbW9zYWljLm1vZGUiPmFuZHJvaWQuZGVtb3NhaWMubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fZWRnZSI+ZWRnZTwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLmVkZ2UubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5zdHJlbmd0aCI+YW5kcm9pZC5lZGdlLnN0cmVuZ3RoPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuZWRnZS5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9mbGFzaCI+Zmxhc2g8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuZmxhc2gubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uY2hhcmdlRHVyYXRpb24iPmFuZHJvaWQuZmxhc2guaW5mby5jaGFyZ2VEdXJhdGlvbjwvYT48L2xpPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guY29sb3JUZW1wZXJhdHVyZSI+YW5kcm9pZC5mbGFzaC5jb2xvclRlbXBlcmF0dXJlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2gubWF4RW5lcmd5Ij5hbmRyb2lkLmZsYXNoLm1heEVuZXJneTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlciI+YW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC5mbGFzaC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLnN0YXRlIj5hbmRyb2lkLmZsYXNoLnN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9ob3RQaXhlbCI+aG90UGl4ZWw8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaG90UGl4ZWwuYXZhaWxhYmxlSG90UGl4ZWxNb2RlcyI+YW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fanBlZyI+anBlZzwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNMb2NhdGlvbiI+YW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc0Nvb3JkaW5hdGVzIj5hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+YW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2Q8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wIj5hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uIj5hbmRyb2lkLmpwZWcub3JpZW50YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcucXVhbGl0eSI+YW5kcm9pZC5qcGVnLnF1YWxpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eSI+YW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZSI+YW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmpwZWcuYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXMiPmFuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmpwZWcubWF4U2l6ZSI+YW5kcm9pZC5qcGVnLm1heFNpemU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNMb2NhdGlvbiI+YW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXMiPmFuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2QiPmFuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wIj5hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPmFuZHJvaWQuanBlZy5vcmllbnRhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnF1YWxpdHkiPmFuZHJvaWQuanBlZy5xdWFsaXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuc2l6ZSI+YW5kcm9pZC5qcGVnLnNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5Ij5hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPmFuZHJvaWQuanBlZy50aHVtYm5haWxTaXplPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9sZW5zIj5sZW5zPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLmxlbnMuYXBlcnR1cmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQubGVucy5mb2NhbExlbmd0aDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlcyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5oeXBlcmZvY2FsRGlzdGFuY2UiPmFuZHJvaWQubGVucy5pbmZvLmh5cGVyZm9jYWxEaXN0YW5jZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemUiPmFuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiI+YW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmZhY2luZyI+YW5kcm9pZC5sZW5zLmZhY2luZzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj5hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQubGVucy5hcGVydHVyZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQubGVucy5mb2NhbExlbmd0aDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNSYW5nZSI+YW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC5sZW5zLnN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9ub2lzZVJlZHVjdGlvbiI+bm9pc2VSZWR1Y3Rpb248L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGgiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGg8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3F1aXJrcyI+cXVpcmtzPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5xdWlya3MubWV0ZXJpbmdDcm9wUmVnaW9uIj5hbmRyb2lkLnF1aXJrcy5tZXRlcmluZ0Nyb3BSZWdpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucXVpcmtzLnRyaWdnZXJBZldpdGhBdXRvIj5hbmRyb2lkLnF1aXJrcy50cmlnZ2VyQWZXaXRoQXV0bzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5xdWlya3MudXNlWnNsRm9ybWF0Ij5hbmRyb2lkLnF1aXJrcy51c2Vac2xGb3JtYXQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucXVpcmtzLnVzZVBhcnRpYWxSZXN1bHQiPmFuZHJvaWQucXVpcmtzLnVzZVBhcnRpYWxSZXN1bHQ8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnF1aXJrcy5wYXJ0aWFsUmVzdWx0Ij5hbmRyb2lkLnF1aXJrcy5wYXJ0aWFsUmVzdWx0PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9yZXF1ZXN0Ij5yZXF1ZXN0PC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50Ij5hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pZCI+YW5kcm9pZC5yZXF1ZXN0LmlkPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlIj5hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3Qub3V0cHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QudHlwZSI+YW5kcm9pZC5yZXF1ZXN0LnR5cGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtcyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFJhdyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFJhdzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvYyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2M8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2NTdGFsbGluZyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2NTdGFsbGluZzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bVJlcHJvY2Vzc1N0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPmFuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQiPmFuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVxdWVzdEtleXMiPmFuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXF1ZXN0S2V5czwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVzdWx0S2V5cyI+YW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlc3VsdEtleXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNoYXJhY3RlcmlzdGljc0tleXMiPmFuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDaGFyYWN0ZXJpc3RpY3NLZXlzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LmZyYW1lQ291bnQiPmFuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuaWQiPmFuZHJvaWQucmVxdWVzdC5pZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZSI+YW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3Qub3V0cHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGgiPmFuZHJvaWQucmVxdWVzdC5waXBlbGluZURlcHRoPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9zY2FsZXIiPnNjYWxlcjwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0cyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0czwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ1NpemVzIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVQcm9jZXNzZWRNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZFNpemVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd01pbkR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3U2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd1NpemVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuY3JvcHBpbmdUeXBlIj5hbmRyb2lkLnNjYWxlci5jcm9wcGluZ1R5cGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3NlbnNvciI+c2Vuc29yPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5EYXRhIj5hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPmFuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uIj5hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby53aGl0ZUxldmVsIj5hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWw8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2UiPmFuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZTwvYT48L2xpPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0xIj5hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyIj5hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5iYXNlR2FpbkZhY3RvciI+YW5kcm9pZC5zZW5zb3IuYmFzZUdhaW5GYWN0b3I8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij5hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbiI+YW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXBEaW1lbnNpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXMiPmFuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcGFxdWVSYXdTaXplIj5hbmRyb2lkLnNlbnNvci5vcGFxdWVSYXdTaXplPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50aW1lc3RhbXAiPmFuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVtcGVyYXR1cmUiPmFuZHJvaWQuc2Vuc29yLnRlbXBlcmF0dXJlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludCI+YW5kcm9pZC5zZW5zb3IubmV1dHJhbENvbG9yUG9pbnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLm5vaXNlUHJvZmlsZSI+YW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwIj5hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlVG9uZUN1cnZlIj5hbmRyb2lkLnNlbnNvci5wcm9maWxlVG9uZUN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5ncmVlblNwbGl0Ij5hbmRyb2lkLnNlbnNvci5ncmVlblNwbGl0PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPmFuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj5hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnJvbGxpbmdTaHV0dGVyU2tldyI+YW5kcm9pZC5zZW5zb3Iucm9sbGluZ1NodXR0ZXJTa2V3PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+YW5kcm9pZC5zZW5zb3IuZHluYW1pY0JsYWNrTGV2ZWw8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsIj5hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fc2hhZGluZyI+c2hhZGluZzwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLnNoYWRpbmcubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5zdHJlbmd0aCI+YW5kcm9pZC5zaGFkaW5nLnN0cmVuZ3RoPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNoYWRpbmcubW9kZSI+YW5kcm9pZC5zaGFkaW5nLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuc2hhZGluZy5hdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fc3RhdGlzdGljcyI+c3RhdGlzdGljczwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorCisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUZhY2VEZXRlY3RNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlRmFjZURldGVjdE1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmhpc3RvZ3JhbUJ1Y2tldENvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4SGlzdG9ncmFtQ291bnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4U2hhcnBuZXNzTWFwVmFsdWUiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heFNoYXJwbmVzc01hcFZhbHVlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemUiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzPC9hPjwvbGk+CisKKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VJZHM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUxhbmRtYXJrczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlU2NvcmVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW0iPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcCI+YW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwIj5hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvckdhaW5zIj5hbmRyb2lkLnN0YXRpc3RpY3MucHJlZGljdGVkQ29sb3JHYWluczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvclRyYW5zZm9ybSI+YW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yVHJhbnNmb3JtPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3Muc2NlbmVGbGlja2VyIj5hbmRyb2lkLnN0YXRpc3RpY3Muc2NlbmVGbGlja2VyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fdG9uZW1hcCI+dG9uZW1hcDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWUiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbiI+YW5kcm9pZC50b25lbWFwLmN1cnZlR3JlZW48L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC50b25lbWFwLmN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQudG9uZW1hcC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLnRvbmVtYXAuZ2FtbWE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXMiPmFuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWUiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZUJsdWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUdyZWVuIj5hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC50b25lbWFwLmN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC50b25lbWFwLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC50b25lbWFwLmdhbW1hPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fbGVkIj5sZWQ8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlZC50cmFuc21pdCI+YW5kcm9pZC5sZWQudHJhbnNtaXQ8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVkLnRyYW5zbWl0Ij5hbmRyb2lkLmxlZC50cmFuc21pdDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVkLmF2YWlsYWJsZUxlZHMiPmFuZHJvaWQubGVkLmF2YWlsYWJsZUxlZHM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2luZm8iPmluZm88L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fYmxhY2tMZXZlbCI+YmxhY2tMZXZlbDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuYmxhY2tMZXZlbC5sb2NrIj5hbmRyb2lkLmJsYWNrTGV2ZWwubG9jazwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuYmxhY2tMZXZlbC5sb2NrPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9zeW5jIj5zeW5jPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPmFuZHJvaWQuc3luYy5tYXhMYXRlbmN5PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9yZXByb2Nlc3MiPnJlcHJvY2VzczwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvcjwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXByb2Nlc3MubWF4Q2FwdHVyZVN0YWxsIj5hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGw8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2RlcHRoIj5kZXB0aDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5tYXhEZXB0aFNhbXBsZXMiPmFuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0YWxsRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguZGVwdGhJc0V4Y2x1c2l2ZSI+YW5kcm9pZC5kZXB0aC5kZXB0aElzRXhjbHVzaXZlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgPC91bD4KKworCisgIDxoMT5Qcm9wZXJ0aWVzPC9oMT4KKyAgPHRhYmxlIGNsYXNzPSJwcm9wZXJ0aWVzIj4KKworICAgIDx0aGVhZCBjbGFzcz0idGhlYWRfZHVtbXkiPgorICAgICAgPHRyPgorICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RoZWFkPiA8IS0tIHNvIHRoYXQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlYWQgaXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgYWJvdmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdHIgLS0+Cis8IS0tIDxuYW1lc3BhY2UgbmFtZT0iYW5kcm9pZCI+IC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2NvbG9yQ29ycmVjdGlvbiIgY2xhc3M9InNlY3Rpb24iPmNvbG9yQ29ycmVjdGlvbjwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJBTlNGT1JNX01BVFJJWDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+IG1hdHJpeAorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IHRvIGRvIGNvbG9yIGNvbnZlcnNpb24uPHdici8+PC9wPgorPHA+QWxsIGFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgKG5vdCBzcGVjaWZpZWQKK2J5IG91ciB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lKSBtdXN0IGJlIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCBpcyBpZ25vcmVkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlCit0aGlzIHZhbHVlIHRvIGVpdGhlciBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Db2xvciBjb3JyZWN0aW9uIHByb2Nlc3NpbmcgbXVzdCBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+QWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyBhYm92ZSBhbmQgYmV5b25kCit0aGUgc3BlY2lmaWVkIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUgbWF5IGJlIGFwcGxpZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHRoZSBsYXN0IGZyYW1lJ3MgQVdCIHZhbHVlcworKG9yIGRlZmF1bHRzIGlmIEFXQiBoYXMgbmV2ZXIgYmVlbiBydW4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Q29sb3IgY29ycmVjdGlvbiBwcm9jZXNzaW5nIG9wZXJhdGVzIGF0IGltcHJvdmVkCitxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlIHJlZHVjZWQgKHJlbGF0aXZlIHRvIHNlbnNvcgorcmF3IG91dHB1dCByYXRlKTwvcD4KKzxwPkFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgYWJvdmUgYW5kIGJleW9uZAordGhlIHNwZWNpZmllZCB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lIG1heSBiZSBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB0aGUgbGFzdCBmcmFtZSdzIEFXQiB2YWx1ZXMKKyhvciBkZWZhdWx0cyBpZiBBV0IgaGFzIG5ldmVyIGJlZW4gcnVuKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbW9kZSBjb250cm9sIHNlbGVjdHMgaG93IHRoZSBpbWFnZSBkYXRhIGlzIGNvbnZlcnRlZCBmcm9tIHRoZQorc2Vuc29yJ3MgbmF0aXZlIGNvbG9yIGludG8gbGluZWFyIHNSR0IgY29sb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgZW5hYmxlZCB3aXRoIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiB0aGlzCitjb250cm9sIGlzIG92ZXJyaWRkZW4gYnkgdGhlIEFXQiByb3V0aW5lLjx3YnIvPiBXaGVuIEFXQiBpcyBkaXNhYmxlZCw8d2JyLz4gdGhlCithcHBsaWNhdGlvbiBjb250cm9scyBob3cgdGhlIGNvbG9yIG1hcHBpbmcgaXMgcGVyZm9ybWVkLjx3YnIvPjwvcD4KKzxwPldlIGRlZmluZSB0aGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBiZWxvdy48d2JyLz4gRm9yIGNvbnNpc3RlbmN5CithY3Jvc3MgZGV2aWNlcyw8d2JyLz4gdGhpcyBpcyBhbHdheXMgdGhlIGNhc2Ugd2l0aCBUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPldoZW4gZWl0aGVyIEZVTEwgb3IgSElHSF88d2JyLz5RVUFMSVRZIGlzIHVzZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heQorZG8gYWRkaXRpb25hbCBwcm9jZXNzaW5nIGJ1dCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gd2lsbCBzdGlsbCBiZSBwcm92aWRlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UgKGluIHRoZSByZXN1bHRzKSBhbmQgYmUgcm91Z2hseSBjb3JyZWN0Ljx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyB0byBUUkFOU0ZPUk1fPHdici8+TUFUUklYIGFuZCB1c2luZyB0aGUgZGF0YSBwcm92aWRlZCBmcm9tCitGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIHlpZWxkIGEgcGljdHVyZSB3aXRoIHRoZSBzYW1lIHdoaXRlIHBvaW50CithcyB3aGF0IHdhcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpbiB0aGUgZWFybGllciBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBpcyBhcyBmb2xsb3dzOjwvcD4KKzxwPjxpbWcgYWx0PSJXaGl0ZSBiYWxhbmNlIHByb2Nlc3NpbmcgcGlwZWxpbmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZS9wcm9jZXNzaW5nX3BpcGVsaW5lLnBuZyIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBiYWxhbmNlIGlzIGVuY29kZWQgYnkgdHdvIHZhbHVlcyw8d2JyLz4gYSA0LWNoYW5uZWwgd2hpdGUtYmFsYW5jZQorZ2FpbiB2ZWN0b3IgKGFwcGxpZWQgaW4gdGhlIEJheWVyIGRvbWFpbiksPHdici8+IGFuZCBhIDN4MyBjb2xvciB0cmFuc2Zvcm0KK21hdHJpeCAoYXBwbGllZCBhZnRlciBkZW1vc2FpYykuPHdici8+PC9wPgorPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gPSBbIFIgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEIgXQorPC9jb2RlPjwvcHJlPgorPHA+d2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIGV2ZW4gcm93cyBvZiB0aGUKK291dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIHRoZSBvZGQgcm93cy48d2JyLz4KK1RoZXNlIG1heSBiZSBpZGVudGljYWwgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZSBpbXBsZW1lbnRhdGlvbjsgaWYKK3RoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgYSBzZXBhcmF0ZSBnYWluIGZvciBldmVuLzx3YnIvPm9kZCBncmVlbgorY2hhbm5lbHMsPHdici8+IGl0IHdpbGwgdXNlIHRoZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IHZhbHVlLDx3YnIvPiBhbmQgd3JpdGUgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvCis8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGluIHRoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaWNlcyBmb3IgY29sb3IgdHJhbnNmb3JtcyBhcmUgZGVmaW5lZCBhcyBhIDktZW50cnkgdmVjdG9yOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiA9IFsgSTAgSTEgSTIgSTMgSTQgSTUgSTYgSTcgSTggXQorPC9jb2RlPjwvcHJlPgorPHA+d2hpY2ggZGVmaW5lIGEgdHJhbnNmb3JtIGZyb20gaW5wdXQgc2Vuc29yIGNvbG9ycyw8d2JyLz4gPGNvZGU+UF88d2JyLz5pbiA9IFsgciBnIGIgXTwvY29kZT4sPHdici8+Cit0byBvdXRwdXQgbGluZWFyIHNSR0IsPHdici8+IDxjb2RlPlBfPHdici8+b3V0ID0gWyByJyBnJyBiJyBdPC9jb2RlPiw8d2JyLz48L3A+Cis8cD53aXRoIGNvbG9ycyBhcyBmb2xsb3dzOjwvcD4KKzxwcmU+PGNvZGU+cicgPSBJMHIgKyBJMWcgKyBJMmIKK2cnID0gSTNyICsgSTRnICsgSTViCitiJyA9IEk2ciArIEk3ZyArIEk4YgorPC9jb2RlPjwvcHJlPgorPHA+Qm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCB2YWx1ZSByYW5nZXMgbXVzdCBtYXRjaC48d2JyLz4gT3ZlcmZsb3cvPHdici8+dW5kZXJmbG93Cit2YWx1ZXMgYXJlIGNsaXBwZWQgdG8gZml0IHdpdGhpbiB0aGUgcmFuZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIGNvbG9yIGNvcnJlY3Rpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgcmF0aW9uYWwgbWF0cml4IGluIHJvdy1tYWpvciBvcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0byB1c2UgdG8gdHJhbnNmb3JtCitmcm9tIHNlbnNvciBSR0IgY29sb3Igc3BhY2UgdG8gb3V0cHV0IGxpbmVhciBzUkdCIGNvbG9yIHNwYWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVbml0bGVzcyBzY2FsZSBmYWN0b3JzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgZWl0aGVyIHNldCBieSB0aGUgY2FtZXJhIGRldmljZSB3aGVuIHRoZSByZXF1ZXN0Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMgbm90IFRSQU5TRk9STV88d2JyLz5NQVRSSVgsPHdici8+IG9yCitkaXJlY3RseSBieSB0aGUgYXBwbGljYXRpb24gaW4gdGhlIHJlcXVlc3Qgd2hlbiB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPkluIHRoZSBsYXR0ZXIgY2FzZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHJvdW5kIHRoZSBtYXRyaXggdG8gYWNjb3VudAorZm9yIHByZWNpc2lvbiBpc3N1ZXM7IHRoZSBmaW5hbCByb3VuZGVkIG1hdHJpeCBzaG91bGQgYmUgcmVwb3J0ZWQgYmFjaworaW4gdGhpcyBtYXRyaXggcmVzdWx0IG1ldGFkYXRhLjx3YnIvPiBUaGUgdHJhbnNmb3JtIHNob3VsZCBrZWVwIHRoZSBtYWduaXR1ZGUKK29mIHRoZSBvdXRwdXQgY29sb3IgdmFsdWVzIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMS48d2JyLz4wXTwvY29kZT4gKGFzc3VtaW5nIGlucHV0IGNvbG9yCit2YWx1ZXMgaXMgd2l0aGluIHRoZSBub3JtYWxpemVkIHJhbmdlIDxjb2RlPlswLDx3YnIvPiAxLjx3YnIvPjBdPC9jb2RlPiksPHdici8+IG9yIGNsaXBwaW5nIG1heSBvY2N1ci48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZWFjaCBtYXRyaXggZWxlbWVudCB2YXJpZXMgb24gZGlmZmVyZW50IGRldmljZXMsPHdici8+IGJ1dAordmFsdWVzIHdpdGhpbiBbLTEuPHdici8+NSw8d2JyLz4gMy48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZ2diQ2hhbm5lbFZlY3Rvcl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5BIDFEIGFycmF5IG9mIGZsb2F0cyBmb3IgNCBjb2xvciBjaGFubmVsIGdhaW5zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+R2FpbnMgYXBwbHlpbmcgdG8gQmF5ZXIgcmF3IGNvbG9yIGNoYW5uZWxzIGZvcgord2hpdGUtYmFsYW5jZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVW5pdGxlc3MgZ2FpbiBmYWN0b3JzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlc2UgcGVyLWNoYW5uZWwgZ2FpbnMgYXJlIGVpdGhlciBzZXQgYnkgdGhlIGNhbWVyYSBkZXZpY2UKK3doZW4gdGhlIHJlcXVlc3QgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIG5vdAorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gb3IgZGlyZWN0bHkgYnkgdGhlIGFwcGxpY2F0aW9uIGluIHRoZQorcmVxdWVzdCB3aGVuIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMKK1RSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+VGhlIGdhaW5zIGluIHRoZSByZXN1bHQgbWV0YWRhdGEgYXJlIHRoZSBnYWlucyBhY3R1YWxseQorYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSB0byB0aGUgY3VycmVudCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZ2FpbnMgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQgZ2FpbnMKK2JldHdlZW4gWzEuPHdici8+MCw8d2JyLz4gMy48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz4gRXZlbiBpZiBhIGdpdmVuCitkZXZpY2UgYWxsb3dzIGdhaW5zIGJlbG93IDEuPHdici8+MCw8d2JyLz4gdGhpcyBpcyB1c3VhbGx5IG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlCit0aGlzIGNhbiBjcmVhdGUgY29sb3IgYXJ0aWZhY3RzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGluCit0aGUgb3JkZXIgb2YgPGNvZGU+W1IgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEJdPC9jb2RlPiw8d2JyLz4gd2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbgorZm9yIGdyZWVuIHBpeGVscyBvbiBldmVuIHJvd3Mgb2YgdGhlIG91dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPgoraXMgdGhlIGdhaW4gZm9yIGdyZWVuIHBpeGVscyBvbiB0aGUgb2RkIHJvd3MuPHdici8+PC9wPgorPHA+SWYgYSBIQUwgZG9lcyBub3Qgc3VwcG9ydCBhIHNlcGFyYXRlIGdhaW4gZm9yIGV2ZW4vPHdici8+b2RkIGdyZWVuCitjaGFubmVscyw8d2JyLz4gaXQgbXVzdCB1c2UgdGhlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gdmFsdWUsPHdici8+IGFuZCB3cml0ZQorPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaW4gdGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGFiZXJyYXRpb24gY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiB3aWxsIG5vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlCityZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiBvcGVyYXRlcyBhdCBpbXByb3ZlZCBxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlCityZWR1Y2VkIChyZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dCByYXRlKTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1vZGUgb2Ygb3BlcmF0aW9uIGZvciB0aGUgY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNocm9tYXRpYyAoY29sb3IpIGFiZXJyYXRpb24gaXMgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgZGlmZmVyZW50IHdhdmVsZW5ndGhzIG9mIGxpZ2h0CitjYW4gbm90IGZvY3VzIG9uIHRoZSBzYW1lIHBvaW50IGFmdGVyIGV4aXRpbmcgZnJvbSB0aGUgbGVucy48d2JyLz4gVGhpcyBtZXRhZGF0YSBkZWZpbmVzCit0aGUgaGlnaCBsZXZlbCBjb250cm9sIG9mIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYWxnb3JpdGhtLDx3YnIvPiB3aGljaCBhaW1zIHRvCittaW5pbWl6ZSB0aGUgY2hyb21hdGljIGFydGlmYWN0cyB0aGF0IG1heSBvY2N1ciBhbG9uZyB0aGUgb2JqZWN0IGJvdW5kYXJpZXMgaW4gYW4KK2ltYWdlLjx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiB0aGF0IGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBhYmVycmF0aW9uCitjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAordXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFsZ29yaXRobXMsPHdici8+IGV2ZW4gaWYgaXQgc2xvd3MgZG93bgorY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUgd2hlbgorYXBwbHlpbmcgYWJlcnJhdGlvbiBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgYWx3YXlzIGJlIGluIEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJBTlNGT1JNX01BVFJJWDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+IG1hdHJpeAorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IHRvIGRvIGNvbG9yIGNvbnZlcnNpb24uPHdici8+PC9wPgorPHA+QWxsIGFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgKG5vdCBzcGVjaWZpZWQKK2J5IG91ciB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lKSBtdXN0IGJlIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCBpcyBpZ25vcmVkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlCit0aGlzIHZhbHVlIHRvIGVpdGhlciBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Db2xvciBjb3JyZWN0aW9uIHByb2Nlc3NpbmcgbXVzdCBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+QWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyBhYm92ZSBhbmQgYmV5b25kCit0aGUgc3BlY2lmaWVkIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUgbWF5IGJlIGFwcGxpZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHRoZSBsYXN0IGZyYW1lJ3MgQVdCIHZhbHVlcworKG9yIGRlZmF1bHRzIGlmIEFXQiBoYXMgbmV2ZXIgYmVlbiBydW4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Q29sb3IgY29ycmVjdGlvbiBwcm9jZXNzaW5nIG9wZXJhdGVzIGF0IGltcHJvdmVkCitxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlIHJlZHVjZWQgKHJlbGF0aXZlIHRvIHNlbnNvcgorcmF3IG91dHB1dCByYXRlKTwvcD4KKzxwPkFkdmFuY2VkIHdoaXRlIGJhbGFuY2UgYWRqdXN0bWVudHMgYWJvdmUgYW5kIGJleW9uZAordGhlIHNwZWNpZmllZCB3aGl0ZSBiYWxhbmNlIHBpcGVsaW5lIG1heSBiZSBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPklmIEFXQiBpcyBlbmFibGVkIHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB0aGUgbGFzdCBmcmFtZSdzIEFXQiB2YWx1ZXMKKyhvciBkZWZhdWx0cyBpZiBBV0IgaGFzIG5ldmVyIGJlZW4gcnVuKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbW9kZSBjb250cm9sIHNlbGVjdHMgaG93IHRoZSBpbWFnZSBkYXRhIGlzIGNvbnZlcnRlZCBmcm9tIHRoZQorc2Vuc29yJ3MgbmF0aXZlIGNvbG9yIGludG8gbGluZWFyIHNSR0IgY29sb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgZW5hYmxlZCB3aXRoIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiB0aGlzCitjb250cm9sIGlzIG92ZXJyaWRkZW4gYnkgdGhlIEFXQiByb3V0aW5lLjx3YnIvPiBXaGVuIEFXQiBpcyBkaXNhYmxlZCw8d2JyLz4gdGhlCithcHBsaWNhdGlvbiBjb250cm9scyBob3cgdGhlIGNvbG9yIG1hcHBpbmcgaXMgcGVyZm9ybWVkLjx3YnIvPjwvcD4KKzxwPldlIGRlZmluZSB0aGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBiZWxvdy48d2JyLz4gRm9yIGNvbnNpc3RlbmN5CithY3Jvc3MgZGV2aWNlcyw8d2JyLz4gdGhpcyBpcyBhbHdheXMgdGhlIGNhc2Ugd2l0aCBUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPldoZW4gZWl0aGVyIEZVTEwgb3IgSElHSF88d2JyLz5RVUFMSVRZIGlzIHVzZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heQorZG8gYWRkaXRpb25hbCBwcm9jZXNzaW5nIGJ1dCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gd2lsbCBzdGlsbCBiZSBwcm92aWRlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UgKGluIHRoZSByZXN1bHRzKSBhbmQgYmUgcm91Z2hseSBjb3JyZWN0Ljx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyB0byBUUkFOU0ZPUk1fPHdici8+TUFUUklYIGFuZCB1c2luZyB0aGUgZGF0YSBwcm92aWRlZCBmcm9tCitGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIHlpZWxkIGEgcGljdHVyZSB3aXRoIHRoZSBzYW1lIHdoaXRlIHBvaW50CithcyB3aGF0IHdhcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpbiB0aGUgZWFybGllciBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgZXhwZWN0ZWQgcHJvY2Vzc2luZyBwaXBlbGluZSBpcyBhcyBmb2xsb3dzOjwvcD4KKzxwPjxpbWcgYWx0PSJXaGl0ZSBiYWxhbmNlIHByb2Nlc3NpbmcgcGlwZWxpbmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZS9wcm9jZXNzaW5nX3BpcGVsaW5lLnBuZyIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBiYWxhbmNlIGlzIGVuY29kZWQgYnkgdHdvIHZhbHVlcyw8d2JyLz4gYSA0LWNoYW5uZWwgd2hpdGUtYmFsYW5jZQorZ2FpbiB2ZWN0b3IgKGFwcGxpZWQgaW4gdGhlIEJheWVyIGRvbWFpbiksPHdici8+IGFuZCBhIDN4MyBjb2xvciB0cmFuc2Zvcm0KK21hdHJpeCAoYXBwbGllZCBhZnRlciBkZW1vc2FpYykuPHdici8+PC9wPgorPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gPSBbIFIgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEIgXQorPC9jb2RlPjwvcHJlPgorPHA+d2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIGV2ZW4gcm93cyBvZiB0aGUKK291dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPiBpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIHRoZSBvZGQgcm93cy48d2JyLz4KK1RoZXNlIG1heSBiZSBpZGVudGljYWwgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZSBpbXBsZW1lbnRhdGlvbjsgaWYKK3RoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgYSBzZXBhcmF0ZSBnYWluIGZvciBldmVuLzx3YnIvPm9kZCBncmVlbgorY2hhbm5lbHMsPHdici8+IGl0IHdpbGwgdXNlIHRoZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IHZhbHVlLDx3YnIvPiBhbmQgd3JpdGUgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvCis8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGluIHRoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaWNlcyBmb3IgY29sb3IgdHJhbnNmb3JtcyBhcmUgZGVmaW5lZCBhcyBhIDktZW50cnkgdmVjdG9yOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiA9IFsgSTAgSTEgSTIgSTMgSTQgSTUgSTYgSTcgSTggXQorPC9jb2RlPjwvcHJlPgorPHA+d2hpY2ggZGVmaW5lIGEgdHJhbnNmb3JtIGZyb20gaW5wdXQgc2Vuc29yIGNvbG9ycyw8d2JyLz4gPGNvZGU+UF88d2JyLz5pbiA9IFsgciBnIGIgXTwvY29kZT4sPHdici8+Cit0byBvdXRwdXQgbGluZWFyIHNSR0IsPHdici8+IDxjb2RlPlBfPHdici8+b3V0ID0gWyByJyBnJyBiJyBdPC9jb2RlPiw8d2JyLz48L3A+Cis8cD53aXRoIGNvbG9ycyBhcyBmb2xsb3dzOjwvcD4KKzxwcmU+PGNvZGU+cicgPSBJMHIgKyBJMWcgKyBJMmIKK2cnID0gSTNyICsgSTRnICsgSTViCitiJyA9IEk2ciArIEk3ZyArIEk4YgorPC9jb2RlPjwvcHJlPgorPHA+Qm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCB2YWx1ZSByYW5nZXMgbXVzdCBtYXRjaC48d2JyLz4gT3ZlcmZsb3cvPHdici8+dW5kZXJmbG93Cit2YWx1ZXMgYXJlIGNsaXBwZWQgdG8gZml0IHdpdGhpbiB0aGUgcmFuZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIGNvbG9yIGNvcnJlY3Rpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm0KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyByYXRpb25hbCBtYXRyaXggaW4gcm93LW1ham9yIG9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBjb2xvciB0cmFuc2Zvcm0gbWF0cml4IHRvIHVzZSB0byB0cmFuc2Zvcm0KK2Zyb20gc2Vuc29yIFJHQiBjb2xvciBzcGFjZSB0byBvdXRwdXQgbGluZWFyIHNSR0IgY29sb3Igc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVuaXRsZXNzIHNjYWxlIGZhY3RvcnMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1hdHJpeCBpcyBlaXRoZXIgc2V0IGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHdoZW4gdGhlIHJlcXVlc3QKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBub3QgVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gb3IKK2RpcmVjdGx5IGJ5IHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgcmVxdWVzdCB3aGVuIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIFRSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+SW4gdGhlIGxhdHRlciBjYXNlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgcm91bmQgdGhlIG1hdHJpeCB0byBhY2NvdW50Citmb3IgcHJlY2lzaW9uIGlzc3VlczsgdGhlIGZpbmFsIHJvdW5kZWQgbWF0cml4IHNob3VsZCBiZSByZXBvcnRlZCBiYWNrCitpbiB0aGlzIG1hdHJpeCByZXN1bHQgbWV0YWRhdGEuPHdici8+IFRoZSB0cmFuc2Zvcm0gc2hvdWxkIGtlZXAgdGhlIG1hZ25pdHVkZQorb2YgdGhlIG91dHB1dCBjb2xvciB2YWx1ZXMgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxLjx3YnIvPjBdPC9jb2RlPiAoYXNzdW1pbmcgaW5wdXQgY29sb3IKK3ZhbHVlcyBpcyB3aXRoaW4gdGhlIG5vcm1hbGl6ZWQgcmFuZ2UgPGNvZGU+WzAsPHdici8+IDEuPHdici8+MF08L2NvZGU+KSw8d2JyLz4gb3IgY2xpcHBpbmcgbWF5IG9jY3VyLjx3YnIvPjwvcD4KKzxwPlRoZSB2YWxpZCByYW5nZSBvZiBlYWNoIG1hdHJpeCBlbGVtZW50IHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0Cit2YWx1ZXMgd2l0aGluIFstMS48d2JyLz41LDx3YnIvPiAzLjx3YnIvPjBdIGFyZSBndWFyYW50ZWVkIG5vdCB0byBiZSBjbGlwcGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWlucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmdnYkNoYW5uZWxWZWN0b3JdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+QSAxRCBhcnJheSBvZiBmbG9hdHMgZm9yIDQgY29sb3IgY2hhbm5lbCBnYWluczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkdhaW5zIGFwcGx5aW5nIHRvIEJheWVyIHJhdyBjb2xvciBjaGFubmVscyBmb3IKK3doaXRlLWJhbGFuY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVuaXRsZXNzIGdhaW4gZmFjdG9ycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZXNlIHBlci1jaGFubmVsIGdhaW5zIGFyZSBlaXRoZXIgc2V0IGJ5IHRoZSBjYW1lcmEgZGV2aWNlCit3aGVuIHRoZSByZXF1ZXN0IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBub3QKK1RSQU5TRk9STV88d2JyLz5NQVRSSVgsPHdici8+IG9yIGRpcmVjdGx5IGJ5IHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUKK3JlcXVlc3Qgd2hlbiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzCitUUkFOU0ZPUk1fPHdici8+TUFUUklYLjx3YnIvPjwvcD4KKzxwPlRoZSBnYWlucyBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhIGFyZSB0aGUgZ2FpbnMgYWN0dWFsbHkKK2FwcGxpZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgdG8gdGhlIGN1cnJlbnQgZnJhbWUuPHdici8+PC9wPgorPHA+VGhlIHZhbGlkIHJhbmdlIG9mIGdhaW5zIHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0IGdhaW5zCitiZXR3ZWVuIFsxLjx3YnIvPjAsPHdici8+IDMuPHdici8+MF0gYXJlIGd1YXJhbnRlZWQgbm90IHRvIGJlIGNsaXBwZWQuPHdici8+IEV2ZW4gaWYgYSBnaXZlbgorZGV2aWNlIGFsbG93cyBnYWlucyBiZWxvdyAxLjx3YnIvPjAsPHdici8+IHRoaXMgaXMgdXN1YWxseSBub3QgcmVjb21tZW5kZWQgYmVjYXVzZQordGhpcyBjYW4gY3JlYXRlIGNvbG9yIGFydGlmYWN0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSA0LWNoYW5uZWwgd2hpdGUtYmFsYW5jZSBnYWlucyBhcmUgZGVmaW5lZCBpbgordGhlIG9yZGVyIG9mIDxjb2RlPltSIEdfPHdici8+ZXZlbiBHXzx3YnIvPm9kZCBCXTwvY29kZT4sPHdici8+IHdoZXJlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaXMgdGhlIGdhaW4KK2ZvciBncmVlbiBwaXhlbHMgb24gZXZlbiByb3dzIG9mIHRoZSBvdXRwdXQsPHdici8+IGFuZCA8Y29kZT5HXzx3YnIvPm9kZDwvY29kZT4KK2lzIHRoZSBnYWluIGZvciBncmVlbiBwaXhlbHMgb24gdGhlIG9kZCByb3dzLjx3YnIvPjwvcD4KKzxwPklmIGEgSEFMIGRvZXMgbm90IHN1cHBvcnQgYSBzZXBhcmF0ZSBnYWluIGZvciBldmVuLzx3YnIvPm9kZCBncmVlbgorY2hhbm5lbHMsPHdici8+IGl0IG11c3QgdXNlIHRoZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IHZhbHVlLDx3YnIvPiBhbmQgd3JpdGUKKzxjb2RlPkdfPHdici8+b2RkPC9jb2RlPiBlcXVhbCB0byA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGluIHRoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGFiZXJyYXRpb24gY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiB3aWxsIG5vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlCityZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFiZXJyYXRpb24gY29ycmVjdGlvbiBvcGVyYXRlcyBhdCBpbXByb3ZlZCBxdWFsaXR5IGJ1dCB0aGUgY2FwdHVyZSByYXRlIG1pZ2h0IGJlCityZWR1Y2VkIChyZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dCByYXRlKTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1vZGUgb2Ygb3BlcmF0aW9uIGZvciB0aGUgY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNocm9tYXRpYyAoY29sb3IpIGFiZXJyYXRpb24gaXMgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgZGlmZmVyZW50IHdhdmVsZW5ndGhzIG9mIGxpZ2h0CitjYW4gbm90IGZvY3VzIG9uIHRoZSBzYW1lIHBvaW50IGFmdGVyIGV4aXRpbmcgZnJvbSB0aGUgbGVucy48d2JyLz4gVGhpcyBtZXRhZGF0YSBkZWZpbmVzCit0aGUgaGlnaCBsZXZlbCBjb250cm9sIG9mIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYWxnb3JpdGhtLDx3YnIvPiB3aGljaCBhaW1zIHRvCittaW5pbWl6ZSB0aGUgY2hyb21hdGljIGFydGlmYWN0cyB0aGF0IG1heSBvY2N1ciBhbG9uZyB0aGUgb2JqZWN0IGJvdW5kYXJpZXMgaW4gYW4KK2ltYWdlLjx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiB0aGF0IGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBhYmVycmF0aW9uCitjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAordXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFsZ29yaXRobXMsPHdici8+IGV2ZW4gaWYgaXQgc2xvd3MgZG93bgorY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUgd2hlbgorYXBwbHlpbmcgYWJlcnJhdGlvbiBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgYWx3YXlzIGJlIGluIEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGFiZXJyYXRpb24gY29ycmVjdGlvbiBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmFiZXJyYXRpb248d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGtleSBsaXN0cyB0aGUgdmFsaWQgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGU8L2E+Ljx3YnIvPiAgSWYgbm8KK2FiZXJyYXRpb24gY29ycmVjdGlvbiBtb2RlcyBhcmUgYXZhaWxhYmxlIGZvciBhIGRldmljZSw8d2JyLz4gdGhpcyBsaXN0IHdpbGwgc29sZWx5IGluY2x1ZGUKK09GRiBtb2RlLjx3YnIvPiBBbGwgY2FtZXJhIGRldmljZXMgd2lsbCBzdXBwb3J0IGVpdGhlciBPRkYgb3IgRkFTVCBtb2RlLjx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzIGxpc3QKK09GRiBtb2RlLjx3YnIvPiBUaGlzIGluY2x1ZGVzIGFsbCBGVUxMIGxldmVsIGRldmljZXMuPHdici8+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgd2lsbCBhbHdheXMgb25seSBzdXBwb3J0IEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgY2hyb21hdGljIGFiZXJyYXRpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBvdXRwdXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fY29udHJvbCIgY2xhc3M9InNlY3Rpb24iPmNvbnRyb2w8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjUwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zIHdpdGggNTBIeiBpbGx1bWluYXRpb24gc291cmNlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj42MEhaPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGFkanVzdCBleHBvc3VyZSBkdXJhdGlvbiB0bworYXZvaWQgYmFuZGluZyBwcm9ibGVtcyB3aXRoIDYwSHogaWxsdW1pbmF0aW9uCitzb3VyY2VzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYXV0b21hdGljYWxseSBhZGFwdCBpdHMKK2FudGliYW5kaW5nIHJvdXRpbmUgdG8gdGhlIGN1cnJlbnQgaWxsdW1pbmF0aW9uCitjb25kaXRpb24uPHdici8+IFRoaXMgaXMgdGhlIGRlZmF1bHQgbW9kZSBpZiBBVVRPIGlzCithdmFpbGFibGUgb24gZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBzZXR0aW5nIGZvciB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8tZXhwb3N1cmUKK2FsZ29yaXRobSdzIGFudGliYW5kaW5nIGNvbXBlbnNhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNvbWUga2luZHMgb2YgbGlnaHRpbmcgZml4dHVyZXMsPHdici8+IHN1Y2ggYXMgc29tZSBmbHVvcmVzY2VudAorbGlnaHRzLDx3YnIvPiBmbGlja2VyIGF0IHRoZSByYXRlIG9mIHRoZSBwb3dlciBzdXBwbHkgZnJlcXVlbmN5CisoNjBIeiBvciA1MEh6LDx3YnIvPiBkZXBlbmRpbmcgb24gY291bnRyeSkuPHdici8+IFdoaWxlIHRoaXMgaXMKK3R5cGljYWxseSBub3Qgbm90aWNlYWJsZSB0byBhIHBlcnNvbiw8d2JyLz4gaXQgY2FuIGJlIHZpc2libGUgdG8KK2EgY2FtZXJhIGRldmljZS48d2JyLz4gSWYgYSBjYW1lcmEgc2V0cyBpdHMgZXhwb3N1cmUgdGltZSB0byB0aGUKK3dyb25nIHZhbHVlLDx3YnIvPiB0aGUgZmxpY2tlciBtYXkgYmVjb21lIHZpc2libGUgaW4gdGhlCit2aWV3ZmluZGVyIGFzIGZsaWNrZXIgb3IgaW4gYSBmaW5hbCBjYXB0dXJlZCBpbWFnZSw8d2JyLz4gYXMgYQorc2V0IG9mIHZhcmlhYmxlLWJyaWdodG5lc3MgYmFuZHMgYWNyb3NzIHRoZSBpbWFnZS48d2JyLz48L3A+Cis8cD5UaGVyZWZvcmUsPHdici8+IHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIG9mIGNhbWVyYSBkZXZpY2VzCitpbmNsdWRlIGFudGliYW5kaW5nIHJvdXRpbmVzIHRoYXQgZW5zdXJlIHRoYXQgdGhlIGNob3NlbgorZXhwb3N1cmUgdmFsdWUgd2lsbCBub3QgY2F1c2Ugc3VjaCBiYW5kaW5nLjx3YnIvPiBUaGUgY2hvaWNlIG9mCitleHBvc3VyZSB0aW1lIGRlcGVuZHMgb24gdGhlIHJhdGUgb2YgZmxpY2tlciw8d2JyLz4gd2hpY2ggdGhlCitjYW1lcmEgZGV2aWNlIGNhbiBkZXRlY3QgYXV0b21hdGljYWxseSw8d2JyLz4gb3IgdGhlIGV4cGVjdGVkCityYXRlIGNhbiBiZSBzZWxlY3RlZCBieSB0aGUgYXBwbGljYXRpb24gdXNpbmcgdGhpcworY29udHJvbC48d2JyLz48L3A+Cis8cD5BIGdpdmVuIGNhbWVyYSBkZXZpY2UgbWF5IG5vdCBzdXBwb3J0IGFsbCBvZiB0aGUgcG9zc2libGUKK29wdGlvbnMgZm9yIHRoZSBhbnRpYmFuZGluZyBtb2RlLjx3YnIvPiBUaGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlczwvYT4ga2V5IGNvbnRhaW5zCit0aGUgYXZhaWxhYmxlIG1vZGVzIGZvciBhIGdpdmVuIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QVVUTyBtb2RlIGlzIHRoZSBkZWZhdWx0IGlmIGl0IGlzIGF2YWlsYWJsZSBvbiBnaXZlbgorY2FtZXJhIGRldmljZS48d2JyLz4gV2hlbiBBVVRPIG1vZGUgaXMgbm90IGF2YWlsYWJsZSw8d2JyLz4gdGhlCitkZWZhdWx0IHdpbGwgYmUgZWl0aGVyIDUwSFogb3IgNjBIWiw8d2JyLz4gYW5kIGJvdGggNTBIWgorYW5kIDYwSFogd2lsbCBiZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wgaXMgZW5hYmxlZCAoYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IHRvIE9GRiksPHdici8+Cit0aGVuIHRoaXMgc2V0dGluZyBoYXMgbm8gZWZmZWN0LDx3YnIvPiBhbmQgdGhlIGFwcGxpY2F0aW9uIG11c3QKK2Vuc3VyZSBpdCBzZWxlY3RzIGV4cG9zdXJlIHRpbWVzIHRoYXQgZG8gbm90IGNhdXNlIGJhbmRpbmcKK2lzc3Vlcy48d2JyLz4gVGhlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zY2VuZUZsaWNrZXIiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5zY2VuZTx3YnIvPkZsaWNrZXI8L2E+IGtleSBjYW4gYXNzaXN0Cit0aGUgYXBwbGljYXRpb24gaW4gdGhpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBhbGwgY2FwdHVyZSByZXF1ZXN0IHRlbXBsYXRlcyw8d2JyLz4gdGhpcyBmaWVsZCBtdXN0IGJlIHNldAordG8gQVVUTyBpZiBBVVRPIG1vZGUgaXMgYXZhaWxhYmxlLjx3YnIvPiBJZiBBVVRPIGlzIG5vdCBhdmFpbGFibGUsPHdici8+Cit0aGUgZGVmYXVsdCBtdXN0IGJlIGVpdGhlciA1MEhaIG9yIDYwSFosPHdici8+IGFuZCBib3RoIDUwSFogYW5kCis2MEhaIG11c3QgYmUgYXZhaWxhYmxlLjx3YnIvPjwvcD4KKzxwPklmIG1hbnVhbCBleHBvc3VyZSBjb250cm9sIGlzIGVuYWJsZWQgKGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiB0byBPRkYpLDx3YnIvPgordGhlbiB0aGUgZXhwb3N1cmUgdmFsdWVzIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBtdXN0IG5vdCBiZQorYWRqdXN0ZWQgZm9yIGFudGliYW5kaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkFkanVzdG1lbnQgdG8gYXV0by1leHBvc3VyZSAoQUUpIHRhcmdldCBpbWFnZQorYnJpZ2h0bmVzcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgQ29tcGVuc2F0aW9uIHN0ZXBzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBhZGp1c3RtZW50IGlzIG1lYXN1cmVkIGFzIGEgY291bnQgb2Ygc3RlcHMsPHdici8+IHdpdGggdGhlCitzdGVwIHNpemUgZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+IGFuZCB0aGUKK2FsbG93ZWQgcmFuZ2UgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgZXhwb3N1cmUgdmFsdWUgKEVWKSBzdGVwIGlzIDAuPHdici8+MzMzLDx3YnIvPiAnNicKK3dpbGwgbWVhbiBhbiBleHBvc3VyZSBjb21wZW5zYXRpb24gb2YgKzIgRVY7IC0zIHdpbGwgbWVhbiBhbgorZXhwb3N1cmUgY29tcGVuc2F0aW9uIG9mIC0xIEVWLjx3YnIvPiBPbmUgRVYgcmVwcmVzZW50cyBhIGRvdWJsaW5nCitvZiBpbWFnZSBicmlnaHRuZXNzLjx3YnIvPiBOb3RlIHRoYXQgdGhpcyBjb250cm9sIHdpbGwgb25seSBiZQorZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGLjx3YnIvPiBUaGlzIGNvbnRyb2wKK3dpbGwgdGFrZSBlZmZlY3QgZXZlbiB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA8Y29kZT49PSB0cnVlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5JbiB0aGUgZXZlbnQgb2YgZXhwb3N1cmUgY29tcGVuc2F0aW9uIHZhbHVlIGJlaW5nIGNoYW5nZWQsPHdici8+IGNhbWVyYSBkZXZpY2UKK21heSB0YWtlIHNldmVyYWwgZnJhbWVzIHRvIHJlYWNoIHRoZSBuZXdseSByZXF1ZXN0ZWQgZXhwb3N1cmUgdGFyZ2V0Ljx3YnIvPgorRHVyaW5nIHRoYXQgdGltZSw8d2JyLz4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmaWVsZCB3aWxsIGJlIGluIHRoZSBTRUFSQ0hJTkcKK3N0YXRlLjx3YnIvPiBPbmNlIHRoZSBuZXcgZXhwb3N1cmUgdGFyZ2V0IGlzIHJlYWNoZWQsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gd2lsbAorY2hhbmdlIGZyb20gU0VBUkNISU5HIHRvIGVpdGhlciBDT05WRVJHRUQsPHdici8+IExPQ0tFRCAoaWYgQUUgbG9jayBpcyBlbmFibGVkKSw8d2JyLz4gb3IKK0ZMQVNIXzx3YnIvPlJFUVVJUkVEIChpZiB0aGUgc2NlbmUgaXMgdG9vIGRhcmsgZm9yIHN0aWxsIGNhcHR1cmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBkaXNhYmxlZDsgdGhlIEFFIGFsZ29yaXRobQoraXMgZnJlZSB0byB1cGRhdGUgaXRzIHBhcmFtZXRlcnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBlbmFibGVkOyB0aGUgQUUgYWxnb3JpdGhtCittdXN0IG5vdCB1cGRhdGUgdGhlIGV4cG9zdXJlIGFuZCBzZW5zaXRpdml0eSBwYXJhbWV0ZXJzCit3aGlsZSB0aGUgbG9jayBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gc2V0dGluZyBjaGFuZ2VzCit3aWxsIHN0aWxsIHRha2UgZWZmZWN0IHdoaWxlIGF1dG8tZXhwb3N1cmUgaXMgbG9ja2VkLjx3YnIvPjwvcD4KKzxwPlNvbWUgcmFyZSBMRUdBQ1kgZGV2aWNlcyBtYXkgbm90IHN1cHBvcnQKK3RoaXMsPHdici8+IGluIHdoaWNoIGNhc2UgdGhlIHZhbHVlIHdpbGwgYWx3YXlzIGJlIG92ZXJyaWRkZW4gdG8gT0ZGLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by1leHBvc3VyZSAoQUUpIGlzIGN1cnJlbnRseSBsb2NrZWQgdG8gaXRzIGxhdGVzdAorY2FsY3VsYXRlZCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiAoT04pLDx3YnIvPiB0aGUgQUUgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGV4cG9zdXJlIHNldHRpbmdzIHVudGlsIHRoZSBsb2NrIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gKE9GRikuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IGV2ZW4gd2hlbiBBRSBpcyBsb2NrZWQsPHdici8+IHRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgaWYKK3RoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QVVUT188d2JyLz5GTEFTSCAvPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0ggLzx3YnIvPiBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIXzx3YnIvPlJFREVZRS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+IGlzIGNoYW5nZWQsPHdici8+IGV2ZW4gaWYgdGhlIEFFIGxvY2sKK2lzIE9OLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHN0aWxsIGFkanVzdCBpdHMgZXhwb3N1cmUgdmFsdWUuPHdici8+PC9wPgorPHA+SWYgQUUgcHJlY2FwdHVyZSBpcyB0cmlnZ2VyZWQgKHNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikKK3doZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGNoYW5nZSB0aGUgZXhwb3N1cmUgdGltZQorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4pIGFuZCBzZW5zaXRpdml0eSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCitwYXJhbWV0ZXJzLjx3YnIvPiBUaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGlmIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4KK2lzIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gvPHdici8+T05fPHdici8+QVVUT188d2JyLz5GTEFTSF88d2JyLz5SRURFWUUgYW5kIHRoZSBzY2VuZSBpcyB0b28gZGFyay48d2JyLz4gSWYgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QUxXQVlTXzx3YnIvPkZMQVNILDx3YnIvPiB0aGUgc2NlbmUgbWF5IGJlY29tZSBvdmVyZXhwb3NlZC48d2JyLz4KK1NpbWlsYXJseSw8d2JyLz4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIENBTkNFTCBoYXMgbm8gZWZmZWN0IHdoZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQuPHdici8+PC9wPgorPHA+V2hlbiBhbiBBRSBwcmVjYXB0dXJlIHNlcXVlbmNlIGlzIHRyaWdnZXJlZCw8d2JyLz4gQUUgdW5sb2NrIHdpbGwgbm90IGJlIGFibGUgdG8gdW5sb2NrCit0aGUgQUUgaWYgQUUgaXMgbG9ja2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGludGVybmFsbHkgZHVyaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcKK3NlcXVlbmNlIEluIG90aGVyIHdvcmRzLDx3YnIvPiBzdWJtaXR0aW5nIHJlcXVlc3RzIHdpdGggQUUgdW5sb2NrIGhhcyBubyBlZmZlY3QgZm9yIGFuCitvbmdvaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UuPHdici8+IE90aGVyd2lzZSw8d2JyLz4gdGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UKK3dpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHNlcXVlbmNlIG9mIHByZXZpZXcgcmVxdWVzdHMgd2hlcmUgQUUgbG9jayBpcyBhbHdheXMgc2V0Cit0byA8Y29kZT5mYWxzZTwvY29kZT4uPHdici8+PC9wPgorPHA+U2luY2UgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGEgcGlwZWxpbmUgb2YgaW4tZmxpZ2h0IHJlcXVlc3RzLDx3YnIvPiB0aGUgc2V0dGluZ3MgdGhhdAorZ2V0IGxvY2tlZCBkbyBub3QgbmVjZXNzYXJpbHkgY29ycmVzcG9uZCB0byB0aGUgc2V0dGluZ3MgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlCitsYXRlc3QgY2FwdHVyZSByZXN1bHQgcmVjZWl2ZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gc2luY2UgYWRkaXRpb25hbCBjYXB0dXJlcworYW5kIEFFIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQUUgbW9kZTo8L2xpPgorPGxpPkxvY2sgQUU8L2xpPgorPGxpPldhaXQgZm9yIHRoZSBmaXJzdCByZXN1bHQgdG8gYmUgb3V0cHV0IHRoYXQgaGFzIHRoZSBBRSBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgZXhwb3N1cmUgc2V0dGluZ3MgZnJvbSB0aGF0IHJlc3VsdCBpbnRvIGEgcmVxdWVzdCw8d2JyLz4gc2V0IHRoZSByZXF1ZXN0IHRvIG1hbnVhbCBBRTwvbGk+Cis8bGk+U3VibWl0IHRoZSBjYXB0dXJlIHJlcXVlc3QsPHdici8+IHByb2NlZWQgdG8gcnVuIG1hbnVhbCBBRSBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+U2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZm9yIEFFIGxvY2sgcmVsYXRlZCBzdGF0ZSB0cmFuc2l0aW9uIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0b2V4cG9zdXJlIHJvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uLXNlbGVjdGVkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBhcmUgdXNlZCBieSB0aGUgY2FtZXJhCitkZXZpY2UsPHdici8+IGFsb25nIHdpdGggYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz4qIGZpZWxkcyw8d2JyLz4gaWYgdGhlcmUncworYSBmbGFzaCB1bml0IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBhbmQgYXV0by1mb2N1cyAoQUYpCitiZWhhdmlvciBpcyBkZXZpY2UgZGVwZW5kZW50IHdoZW4gQUUgaXMgaW4gT0ZGIG1vZGUuPHdici8+CitUbyBoYXZlIGNvbnNpc3RlbnQgYmVoYXZpb3IgYWNyb3NzIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPgoraXQgaXMgcmVjb21tZW5kZWQgdG8gZWl0aGVyIHNldCBBV0IgYW5kIEFGIHRvIE9GRiBtb2RlCitvciBsb2NrIEFXQiBhbmQgQUYgYmVmb3JlIHNldHRpbmcgQUUgdG8gT0ZGLjx3YnIvPgorU2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPgorZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyBkbyBub3Qgc3VwcG9ydCB0aGUgT0ZGIG1vZGUgYW5kIHdpbGwKK292ZXJyaWRlIGF0dGVtcHRzIHRvIHVzZSB0aGlzIHZhbHVlIHRvIE9OLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG9leHBvc3VyZSByb3V0aW5lIGlzIGFjdGl2ZSw8d2JyLz4KK3dpdGggbm8gZmxhc2ggY29udHJvbC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFyZSBpZ25vcmVkLjx3YnIvPiBUaGUKK2FwcGxpY2F0aW9uIGhhcyBjb250cm9sIG92ZXIgdGhlIHZhcmlvdXMKK2FuZHJvaWQuPHdici8+Zmxhc2guPHdici8+KiBmaWVsZHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T05fQVVUT19GTEFTSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TGlrZSBPTiw8d2JyLz4gZXhjZXB0IHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgYWxzbyBjb250cm9scwordGhlIGNhbWVyYSdzIGZsYXNoIHVuaXQsPHdici8+IGZpcmluZyBpdCBpbiBsb3ctbGlnaHQKK2NvbmRpdGlvbnMuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIG1heSBiZSBmaXJlZCBkdXJpbmcgYSBwcmVjYXB0dXJlIHNlcXVlbmNlCisodHJpZ2dlcmVkIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KSBhbmQKK21heSBiZSBmaXJlZCBmb3IgY2FwdHVyZXMgZm9yIHdoaWNoIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gZmllbGQgaXMgc2V0IHRvCitTVElMTF88d2JyLz5DQVBUVVJFPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T05fQUxXQVlTX0ZMQVNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5MaWtlIE9OLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBhbHNvIGNvbnRyb2xzCit0aGUgY2FtZXJhJ3MgZmxhc2ggdW5pdCw8d2JyLz4gYWx3YXlzIGZpcmluZyBpdCBmb3Igc3RpbGwKK2NhcHR1cmVzLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgZHVyaW5nIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZQorKHRyaWdnZXJlZCBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikgYW5kCit3aWxsIGFsd2F5cyBiZSBmaXJlZCBmb3IgY2FwdHVyZXMgZm9yIHdoaWNoIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gZmllbGQgaXMgc2V0IHRvCitTVElMTF88d2JyLz5DQVBUVVJFPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T05fQVVUT19GTEFTSF9SRURFWUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkxpa2UgT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4gYnV0IHdpdGggYXV0b21hdGljIHJlZCBleWUKK3JlZHVjdGlvbi48d2JyLz48L3A+Cis8cD5JZiBkZWVtZWQgbmVjZXNzYXJ5IGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhIHJlZCBleWUKK3JlZHVjdGlvbiBmbGFzaCB3aWxsIGZpcmUgZHVyaW5nIHRoZSBwcmVjYXB0dXJlCitzZXF1ZW5jZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBtb2RlIGZvciB0aGUgY2FtZXJhIGRldmljZSdzCithdXRvLWV4cG9zdXJlIHJvdXRpbmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcworQVVUTy48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBhbnkgb2YgdGhlIE9OIG1vZGVzLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzCithdXRvLWV4cG9zdXJlIHJvdXRpbmUgaXMgZW5hYmxlZCw8d2JyLz4gb3ZlcnJpZGluZyB0aGUKK2FwcGxpY2F0aW9uJ3Mgc2VsZWN0ZWQgZXhwb3N1cmUgdGltZSw8d2JyLz4gc2Vuc29yIHNlbnNpdGl2aXR5LDx3YnIvPgorYW5kIGZyYW1lIGR1cmF0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+KS48d2JyLz4gSWYgb25lIG9mIHRoZSBGTEFTSCBtb2RlcworaXMgc2VsZWN0ZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgZmxhc2ggdW5pdCBjb250cm9scyBhcmUKK2Fsc28gb3ZlcnJpZGRlbi48d2JyLz48L3A+Cis8cD5UaGUgRkxBU0ggbW9kZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGlmIHRoZSBjYW1lcmEgZGV2aWNlCitoYXMgYSBmbGFzaCB1bml0ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8L2E+IGlzIDxjb2RlPnRydWU8L2NvZGU+KS48d2JyLz48L3A+Cis8cD5JZiBmbGFzaCBUT1JDSCBtb2RlIGlzIGRlc2lyZWQsPHdici8+IHRoaXMgZmllbGQgbXVzdCBiZSBzZXQgdG8KK09OIG9yIE9GRiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gc2V0IHRvIFRPUkNILjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvZiB0aGUgT04gbW9kZXMsPHdici8+IHRoZSB2YWx1ZXMgY2hvc2VuIGJ5IHRoZQorY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgZm9yIHRoZSBvdmVycmlkZGVuCitmaWVsZHMgZm9yIGEgZ2l2ZW4gY2FwdHVyZSB3aWxsIGJlIGF2YWlsYWJsZSBpbiBpdHMKK0NhcHR1cmVSZXN1bHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by1leHBvc3VyZSBhZGp1c3RtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyB3aXRoaW4gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Db29yZGluYXRlcyBtdXN0IGJlIGJldHdlZW4gPGNvZGU+WygwLDx3YnIvPjApLDx3YnIvPiAod2lkdGgsPHdici8+IGhlaWdodCkpPC9jb2RlPiBvZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFlPC9hPiBpcyAwLjx3YnIvPgorT3RoZXJ3aXNlIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHJlZ2lvbnMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUKK29mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IGJlIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMTAwMF08L2NvZGU+LDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciBleHBvc3VyZSBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZiBvbmx5IG9uZQorcmVnaW9uIGlzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGggMAord2VpZ2h0IGlzIGlnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiAgSWYgdGhlIHJlZ2lvbiBpcyBlbnRpcmVseSBvdXRzaWRlIHRoZSBjcm9wIHJlZ2lvbiw8d2JyLz4gaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAorbm90IHJlcG9ydGVkIGluIHRoZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIGxldmVsIHJlcHJlc2VudGF0aW9uIG9mIE1ldGVyaW5nUmVjdGFuZ2xlW10gaXMgYQoraW50WzUgKiBhcmVhXzx3YnIvPmNvdW50XS48d2JyLz4KK0V2ZXJ5IGZpdmUgZWxlbWVudHMgcmVwcmVzZW50IGEgbWV0ZXJpbmcgcmVnaW9uIG9mCisoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCw8d2JyLz4gd2VpZ2h0KS48d2JyLz4KK1RoZSByZWN0YW5nbGUgaXMgZGVmaW5lZCB0byBiZSBpbmNsdXNpdmUgb24geG1pbiBhbmQgeW1pbiw8d2JyLz4gYnV0CitleGNsdXNpdmUgb24geG1heCBhbmQgeW1heC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SYW5nZSBvdmVyIHdoaWNoIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgY2FuCithZGp1c3QgdGhlIGNhcHR1cmUgZnJhbWUgcmF0ZSB0byBtYWludGFpbiBnb29kCitleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRnJhbWVzIHBlciBzZWNvbmQgKEZQUykKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Bbnkgb2YgdGhlIGVudHJpZXMgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T25seSBjb25zdHJhaW5zIGF1dG8tZXhwb3N1cmUgKEFFKSBhbGdvcml0aG0sPHdici8+IG5vdAorbWFudWFsIGNvbnRyb2wgb2YgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklETEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0cmlnZ2VyIGlzIGlkbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIHdpbGwgYmUgc3RhcnRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+VGhlIGV4YWN0IGVmZmVjdCBvZiB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIGRlcGVuZHMgb24KK3RoZSBjdXJyZW50IEFFIG1vZGUgYW5kIHN0YXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBTkNFTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGN1cnJlbnRseSBhY3RpdmUgb3IgY29tcGxldGVkCitwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlLDx3YnIvPiB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lIHdpbGwgcmV0dXJuIHRvIGl0cworaW5pdGlhbCBzdGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciBhIHByZWNhcHR1cmUKK21ldGVyaW5nIHNlcXVlbmNlIHdoZW4gaXQgcHJvY2Vzc2VzIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgbm9ybWFsbHkgc2V0IHRvIElETEUsPHdici8+IG9yIGlzIG5vdAoraW5jbHVkZWQgYXQgYWxsIGluIHRoZSByZXF1ZXN0IHNldHRpbmdzLjx3YnIvPiBXaGVuIGluY2x1ZGVkIGFuZAorc2V0IHRvIFNUQVJULDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgdGhlIGF1dG8tZXhwb3N1cmUgKEFFKQorcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZS48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBDQU5DRUwsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FuY2VsIGFueSBhY3RpdmUKK3ByZWNhcHR1cmUgbWV0ZXJpbmcgdHJpZ2dlciw8d2JyLz4gYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRSBzdGF0ZS48d2JyLz4KK0lmIGEgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSBpcyBhbHJlYWR5IGNvbXBsZXRlZCw8d2JyLz4gYW5kIHRoZSBjYW1lcmEKK2RldmljZSBoYXMgaW1wbGljaXRseSBsb2NrZWQgdGhlIEFFIGZvciBzdWJzZXF1ZW50IHN0aWxsIGNhcHR1cmUsPHdici8+IHRoZQorQ0FOQ0VMIHRyaWdnZXIgd2lsbCB1bmxvY2sgdGhlIEFFIGFuZCByZXR1cm4gdG8gaXRzIGluaXRpYWwgQUUgc3RhdGUuPHdici8+PC9wPgorPHA+VGhlIHByZWNhcHR1cmUgc2VxdWVuY2Ugc2hvdWxkIGJlIHRyaWdnZXJlZCBiZWZvcmUgc3RhcnRpbmcgYQoraGlnaC1xdWFsaXR5IHN0aWxsIGNhcHR1cmUgZm9yIGZpbmFsIG1ldGVyaW5nIGRlY2lzaW9ucyB0bworYmUgbWFkZSw8d2JyLz4gYW5kIGZvciBmaXJpbmcgcHJlLWNhcHR1cmUgZmxhc2ggcHVsc2VzIHRvIGVzdGltYXRlCitzY2VuZSBicmlnaHRuZXNzIGFuZCByZXF1aXJlZCBmaW5hbCBjYXB0dXJlIGZsYXNoIHBvd2VyLDx3YnIvPiB3aGVuCit0aGUgZmxhc2ggaXMgZW5hYmxlZC48d2JyLz48L3A+Cis8cD5Ob3JtYWxseSw8d2JyLz4gdGhpcyBlbnRyeSBzaG91bGQgYmUgc2V0IHRvIFNUQVJUIGZvciBvbmx5IGEKK3NpbmdsZSByZXF1ZXN0LDx3YnIvPiBhbmQgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCB3YWl0IHVudGlsIHRoZQorc2VxdWVuY2UgY29tcGxldGVzIGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuPHdici8+PC9wPgorPHA+V2hlbiBhIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UgaXMgZmluaXNoZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlCittYXkgbG9jayB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lIGludGVybmFsbHkgdG8gYmUgYWJsZSB0byBhY2N1cmF0ZWx5IGV4cG9zZSB0aGUKK3N1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSBpbWFnZSAoPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gPT0gU1RJTExfPHdici8+Q0FQVFVSRTwvY29kZT4pLjx3YnIvPgorRm9yIHRoaXMgY2FzZSw8d2JyLz4gdGhlIEFFIG1heSBub3QgcmVzdW1lIG5vcm1hbCBzY2FuIGlmIG5vIHN1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSBpcworc3VibWl0dGVkLjx3YnIvPiBUbyBlbnN1cmUgdGhhdCB0aGUgQUUgcm91dGluZSByZXN0YXJ0cyBub3JtYWwgc2Nhbiw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIHNob3VsZAorc3VibWl0IGEgcmVxdWVzdCB3aXRoIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA9PSB0cnVlPC9jb2RlPiw8d2JyLz4gZm9sbG93ZWQgYnkgYSByZXF1ZXN0Cit3aXRoIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA9PSBmYWxzZTwvY29kZT4sPHdici8+IGlmIHRoZSBhcHBsaWNhdGlvbiBkZWNpZGVzIG5vdCB0byBzdWJtaXQgYQorc3RpbGwgY2FwdHVyZSByZXF1ZXN0IGFmdGVyIHRoZSBwcmVjYXB0dXJlIHNlcXVlbmNlIGNvbXBsZXRlcy48d2JyLz4gQWx0ZXJuYXRpdmVseSw8d2JyLz4gZm9yCitBUEkgbGV2ZWwgMjMgb3IgbmV3ZXIgZGV2aWNlcyw8d2JyLz4gdGhlIENBTkNFTCBjYW4gYmUgdXNlZCB0byB1bmxvY2sgdGhlIGNhbWVyYSBkZXZpY2UKK2ludGVybmFsbHkgbG9ja2VkIEFFIGlmIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IHN1Ym1pdCBhIHN0aWxsIGNhcHR1cmUgcmVxdWVzdCBhZnRlcgordGhlIEFFIHByZWNhcHR1cmUgdHJpZ2dlci48d2JyLz4gTm90ZSB0aGF0LDx3YnIvPiB0aGUgQ0FOQ0VMIHdhcyBhZGRlZCBpbiBBUEkgbGV2ZWwgMjMsPHdici8+IGFuZCBtdXN0IG5vdAorYmUgdXNlZCBpbiBkZXZpY2VzIHRoYXQgaGF2ZSBlYXJsaWVyIEFQSSBsZXZlbHMuPHdici8+PC9wPgorPHA+VGhlIGV4YWN0IGVmZmVjdCBvZiBhdXRvLWV4cG9zdXJlIChBRSkgcHJlY2FwdHVyZSB0cmlnZ2VyCitkZXBlbmRzIG9uIHRoZSBjdXJyZW50IEFFIG1vZGUgYW5kIHN0YXRlOyBzZWUKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZm9yIEFFIHByZWNhcHR1cmUgc3RhdGUgdHJhbnNpdGlvbgorZGV0YWlscy48d2JyLz48L3A+Cis8cD5PbiBMRUdBQ1ktbGV2ZWwgZGV2aWNlcyw8d2JyLz4gdGhlIHByZWNhcHR1cmUgdHJpZ2dlciBpcyBub3Qgc3VwcG9ydGVkOworY2FwdHVyaW5nIGEgaGlnaC1yZXNvbHV0aW9uIEpQRUcgaW1hZ2Ugd2lsbCBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgYQorcHJlY2FwdHVyZSBzZXF1ZW5jZSBiZWZvcmUgdGhlIGhpZ2gtcmVzb2x1dGlvbiBjYXB0dXJlLDx3YnIvPiBpbmNsdWRpbmcKK3BvdGVudGlhbGx5IGZpcmluZyBhIHByZS1jYXB0dXJlIGZsYXNoLjx3YnIvPjwvcD4KKzxwPlVzaW5nIHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgYW5kIHRoZSBhdXRvLWZvY3VzIHRyaWdnZXIgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+CitzaW11bHRhbmVvdXNseSBpcyBhbGxvd2VkLjx3YnIvPiBIb3dldmVyLDx3YnIvPiBzaW5jZSB0aGVzZSB0cmlnZ2VycyBvZnRlbiByZXF1aXJlIGNvb3BlcmF0aW9uIGJldHdlZW4KK3RoZSBhdXRvLWZvY3VzIGFuZCBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIChmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIG1heSBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGEKK2ZvY3VzIHN3ZWVwKSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGRlbGF5IGFjdGluZyBvbiBhIGxhdGVyIHRyaWdnZXIgdW50aWwgdGhlIHByZXZpb3VzCit0cmlnZ2VyIGhhcyBiZWVuIGZ1bGx5IGhhbmRsZWQuPHdici8+IFRoaXMgbWF5IGxlYWQgdG8gbG9uZ2VyIGludGVydmFscyBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZAorY2hhbmdlcyB0byA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+U3RhdGU8L2E+IGluZGljYXRpbmcgdGhlIHN0YXJ0IG9mIHRoZSBwcmVjYXB0dXJlIHNlcXVlbmNlLDx3YnIvPiBmb3IKK2V4YW1wbGUuPHdici8+PC9wPgorPHA+SWYgYm90aCB0aGUgcHJlY2FwdHVyZSBhbmQgdGhlIGF1dG8tZm9jdXMgdHJpZ2dlciBhcmUgYWN0aXZhdGVkIG9uIHRoZSBzYW1lIHJlcXVlc3QsPHdici8+IHRoZW4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY29tcGxldGUgdGhlbSBpbiB0aGUgb3B0aW1hbCBvcmRlciBmb3IgdGhhdCBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3Qgc3VwcG9ydCB0cmlnZ2VyaW5nIHRoZSBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgd2hpbGUgYW4gQUYgdHJpZ2dlciBpcyBhY3RpdmUKKyhhbmQgdmljZSB2ZXJzYSksPHdici8+IG9yIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIEFGIHRyaWdnZXIuPHdici8+ICBJdCBpcyBhY2NlcHRhYmxlIGZvciB0aGUgSEFMIHRvCit0cmVhdCB0aGVzZSBhcyB0d28gY29uc2VjdXRpdmUgdHJpZ2dlcnMsPHdici8+IGZvciBleGFtcGxlIGhhbmRsaW5nIHRoZSBBRiB0cmlnZ2VyIGFuZCB0aGVuIHRoZQorQUUgdHJpZ2dlci48d2JyLz4gIE9yIHRoZSBIQUwgbWF5IGNob29zZSB0byBvcHRpbWl6ZSB0aGUgY2FzZSB3aXRoIGJvdGggdHJpZ2dlcnMgZmlyZWQgYXQgb25jZSw8d2JyLz4KK3RvIG1pbmltaXplIHRoZSBsYXRlbmN5IGZvciBjb252ZXJnaW5nIGJvdGggZm9jdXMgYW5kIGV4cG9zdXJlLzx3YnIvPmZsYXNoIHVzYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGF1dG8tZm9jdXMgcm91dGluZSBkb2VzIG5vdCBjb250cm9sIHRoZSBsZW5zOworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gaXMgY29udHJvbGxlZCBieSB0aGUKK2FwcGxpY2F0aW9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkJhc2ljIGF1dG9tYXRpYyBmb2N1cyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MKK3RoZSBhdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlcgoraXMgYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz48L3A+Cis8cD5BbHdheXMgc3VwcG9ydGVkIGlmIGxlbnMgaXMgbm90IGZpeGVkIGZvY3VzLjx3YnIvPjwvcD4KKzxwPlVzZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gdG8gZGV0ZXJtaW5lIGlmIGxlbnMKK2lzIGZpeGVkLWZvY3VzLjx3YnIvPjwvcD4KKzxwPlRyaWdnZXJpbmcgQUZfPHdici8+Q0FOQ0VMIHJlc2V0cyB0aGUgbGVucyBwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPgorYW5kIHNldHMgdGhlIEFGIHN0YXRlIHRvIElOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1BQ1JPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5DbG9zZS11cCBmb2N1c2luZyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MgdGhlCithdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlciBpcworYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVGhpcworbW9kZSBpcyBvcHRpbWl6ZWQgZm9yIGZvY3VzaW5nIG9uIG9iamVjdHMgdmVyeSBjbG9zZSB0bwordGhlIGNhbWVyYS48d2JyLz48L3A+Cis8cD5XaGVuIHRoYXQgdHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0bworQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8gdGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IKK05PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVHJpZ2dlcmluZyBjYW5jZWwgQUYgcmVzZXRzIHRoZSBsZW5zCitwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPiBhbmQgc2V0cyB0aGUgQUYgc3RhdGUgdG8KK0lOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlRJTlVPVVNfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBtb2RpZmllcyB0aGUgbGVucworcG9zaXRpb24gY29udGludWFsbHkgdG8gYXR0ZW1wdCB0byBwcm92aWRlIGEKK2NvbnN0YW50bHktaW4tZm9jdXMgaW1hZ2Ugc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2N1c2luZyBiZWhhdmlvciBzaG91bGQgYmUgc3VpdGFibGUgZm9yIGdvb2QgcXVhbGl0eQordmlkZW8gcmVjb3JkaW5nOyB0eXBpY2FsbHkgdGhpcyBtZWFucyBzbG93ZXIgZm9jdXMKK21vdmVtZW50IGFuZCBubyBvdmVyc2hvb3RzLjx3YnIvPiBXaGVuIHRoZSBBRiB0cmlnZ2VyIGlzIG5vdAoraW52b2x2ZWQsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gc2hvdWxkIHN0YXJ0IGluIElOQUNUSVZFIHN0YXRlLDx3YnIvPgorYW5kIHRoZW4gdHJhbnNpdGlvbiBpbnRvIFBBU1NJVkVfPHdici8+U0NBTiBhbmQgUEFTU0lWRV88d2JyLz5GT0NVU0VECitzdGF0ZXMgYXMgYXBwcm9wcmlhdGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPgordGhlIGFsZ29yaXRobSBzaG91bGQgaW1tZWRpYXRlbHkgdHJhbnNpdGlvbiBpbnRvCitBRl88d2JyLz5GT0NVU0VEIG9yIEFGXzx3YnIvPk5PVF88d2JyLz5GT0NVU0VEIGFzIGFwcHJvcHJpYXRlLDx3YnIvPiBhbmQgbG9jayB0aGUKK2xlbnMgcG9zaXRpb24gdW50aWwgYSBjYW5jZWwgQUYgdHJpZ2dlciBpcyByZWNlaXZlZC48d2JyLz48L3A+Cis8cD5PbmNlIGNhbmNlbCBpcyByZWNlaXZlZCw8d2JyLz4gdGhlIGFsZ29yaXRobSBzaG91bGQgdHJhbnNpdGlvbgorYmFjayB0byBJTkFDVElWRSBhbmQgcmVzdW1lIHBhc3NpdmUgc2Nhbi48d2JyLz4gTm90ZSB0aGF0IHRoaXMKK2JlaGF2aW9yIGlzIG5vdCBpZGVudGljYWwgdG8gQ09OVElOVU9VU188d2JyLz5QSUNUVVJFLDx3YnIvPiBzaW5jZSBhbgorb25nb2luZyBQQVNTSVZFXzx3YnIvPlNDQU4gbXVzdCBpbW1lZGlhdGVseSBiZQorY2FuY2VsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVElOVU9VU19QSUNUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbiB0aGlzIG1vZGUsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gbW9kaWZpZXMgdGhlIGxlbnMKK3Bvc2l0aW9uIGNvbnRpbnVhbGx5IHRvIGF0dGVtcHQgdG8gcHJvdmlkZSBhCitjb25zdGFudGx5LWluLWZvY3VzIGltYWdlIHN0cmVhbS48d2JyLz48L3A+Cis8cD5UaGUgZm9jdXNpbmcgYmVoYXZpb3Igc2hvdWxkIGJlIHN1aXRhYmxlIGZvciBzdGlsbCBpbWFnZQorY2FwdHVyZTsgdHlwaWNhbGx5IHRoaXMgbWVhbnMgZm9jdXNpbmcgYXMgZmFzdCBhcworcG9zc2libGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgbm90IGludm9sdmVkLDx3YnIvPiB0aGUgQUYKK2FsZ29yaXRobSBzaG91bGQgc3RhcnQgaW4gSU5BQ1RJVkUgc3RhdGUsPHdici8+IGFuZCB0aGVuCit0cmFuc2l0aW9uIGludG8gUEFTU0lWRV88d2JyLz5TQ0FOIGFuZCBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQgc3RhdGVzIGFzCithcHByb3ByaWF0ZSBhcyBpdCBhdHRlbXB0cyB0byBtYWludGFpbiBmb2N1cy48d2JyLz4gV2hlbiB0aGUgQUYKK3RyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtIHNob3VsZCBmaW5pc2ggaXRzCitQQVNTSVZFXzx3YnIvPlNDQU4gaWYgYWN0aXZlLDx3YnIvPiBhbmQgdGhlbiB0cmFuc2l0aW9uIGludG8KK0FGXzx3YnIvPkZPQ1VTRUQgb3IgQUZfPHdici8+Tk9UXzx3YnIvPkZPQ1VTRUQgYXMgYXBwcm9wcmlhdGUsPHdici8+IGFuZCBsb2NrIHRoZQorbGVucyBwb3NpdGlvbiB1bnRpbCBhIGNhbmNlbCBBRiB0cmlnZ2VyIGlzIHJlY2VpdmVkLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlIEFGIGNhbmNlbCB0cmlnZ2VyIGlzIGFjdGl2YXRlZCw8d2JyLz4gdGhlIGFsZ29yaXRobQorc2hvdWxkIHRyYW5zaXRpb24gYmFjayB0byBJTkFDVElWRSBhbmQgdGhlbiBhY3QgYXMgaWYgaXQKK2hhcyBqdXN0IGJlZW4gc3RhcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5FRE9GPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FeHRlbmRlZCBkZXB0aCBvZiBmaWVsZCAoZGlnaXRhbCBmb2N1cykgbW9kZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIHByb2R1Y2UgaW1hZ2VzIHdpdGggYW4gZXh0ZW5kZWQKK2RlcHRoIG9mIGZpZWxkIGF1dG9tYXRpY2FsbHk7IG5vIHNwZWNpYWwgZm9jdXNpbmcKK29wZXJhdGlvbnMgbmVlZCB0byBiZSBkb25lIGJlZm9yZSB0YWtpbmcgYSBwaWN0dXJlLjx3YnIvPjwvcD4KKzxwPkFGIHRyaWdnZXJzIGFyZSBpZ25vcmVkLDx3YnIvPiBhbmQgdGhlIEFGIHN0YXRlIHdpbGwgYWx3YXlzIGJlCitJTkFDVElWRS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8tZm9jdXMgKEFGKSBpcyBjdXJyZW50bHkgZW5hYmxlZCw8d2JyLz4gYW5kIHdoYXQKK21vZGUgaXQgaXMgc2V0IHRvLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9IEFVVE8gYW5kIHRoZSBsZW5zIGlzIG5vdCBmaXhlZCBmb2N1cworKGkuPHdici8+ZS48d2JyLz4gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+ICZndDsgMDwvY29kZT4pLjx3YnIvPiBBbHNvIG5vdGUgdGhhdAord2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT0ZGLDx3YnIvPiB0aGUgYmVoYXZpb3Igb2YgQUYgaXMgZGV2aWNlCitkZXBlbmRlbnQuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvY2sgQUYgYnkgdXNpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+IGJlZm9yZQorc2V0dGluZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gdG8gT0ZGLDx3YnIvPiBvciBzZXQgQUYgbW9kZSB0byBPRkYgd2hlbiBBRSBpcyBPRkYuPHdici8+PC9wPgorPHA+SWYgdGhlIGxlbnMgaXMgY29udHJvbGxlZCBieSB0aGUgY2FtZXJhIGRldmljZSBhdXRvLWZvY3VzIGFsZ29yaXRobSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IEFGIHN0YXR1cyBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+CitpbiByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGFmTW9kZSBpcyBBVVRPIG9yIE1BQ1JPLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHVudGlsIGFuIEFGIHRyaWdnZXIgaXMgc2VudCBpbiBhCityZXF1ZXN0ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4gPGNvZGU+PT08L2NvZGU+IFNUQVJUKS48d2JyLz4gQWZ0ZXIgYW4gQUYgdHJpZ2dlciw8d2JyLz4gdGhlIGFmU3RhdGUgd2lsbCBlbmQKK3VwIHdpdGggZWl0aGVyIEZPQ1VTRURfPHdici8+TE9DS0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRCBzdGF0ZSAoc2VlCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciBkZXRhaWxlZCBzdGF0ZSB0cmFuc2l0aW9ucyksPHdici8+IHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBsZW5zIGlzCitsb2NrZWQgYW5kIHdpbGwgbm90IG1vdmUuPHdici8+IElmIGNhbWVyYSBtb3ZlbWVudCAoZS48d2JyLz5nLjx3YnIvPiB0aWx0aW5nIGNhbWVyYSkgY2F1c2VzIHRoZSBsZW5zIHRvIG1vdmUKK2FmdGVyIHRoZSBsZW5zIGlzIGxvY2tlZCw8d2JyLz4gdGhlIEhBTCBtdXN0IGNvbXBlbnNhdGUgdGhpcyBtb3ZlbWVudCBhcHByb3ByaWF0ZWx5IHN1Y2ggdGhhdAordGhlIHNhbWUgZm9jYWwgcGxhbmUgcmVtYWlucyBpbiBmb2N1cy48d2JyLz48L3A+Cis8cD5XaGVuIGFmTW9kZSBpcyBvbmUgb2YgdGhlIGNvbnRpbnVvdXMgYXV0byBmb2N1cyBtb2Rlcyw8d2JyLz4gdGhlIEhBTCBpcyBmcmVlIHRvIHN0YXJ0IGEgQUYKK3NjYW4gd2hlbmV2ZXIgaXQncyBub3QgbG9ja2VkLjx3YnIvPiBXaGVuIHRoZSBsZW5zIGlzIGxvY2tlZCBhZnRlciBhbiBBRiB0cmlnZ2VyCisoc2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIGRldGFpbGVkIHN0YXRlIHRyYW5zaXRpb25zKSw8d2JyLz4gdGhlIEhBTCBzaG91bGQgbWFpbnRhaW4gdGhlCitzYW1lIGxvY2sgYmVoYXZpb3IgYXMgYWJvdmUuPHdici8+PC9wPgorPHA+V2hlbiBhZk1vZGUgaXMgT0ZGLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY29udHJvbHMgZm9jdXMgbWFudWFsbHkuPHdici8+IFRoZSBhY2N1cmFjeSBvZiB0aGUKK2ZvY3VzIGRpc3RhbmNlIGNvbnRyb2wgZGVwZW5kcyBvbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4uPHdici8+CitIb3dldmVyLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHJlZ2FyZGxlc3Mgb2YgdGhlIGNhbWVyYSBtb3ZlbWVudCBmb3IgYW55IGZvY3VzIGRpc3RhbmNlCittYW51YWwgY29udHJvbC48d2JyLz48L3A+Cis8cD5UbyBwdXQgdGhpcyBpbiBjb25jcmV0ZSB0ZXJtcyw8d2JyLz4gaWYgdGhlIGNhbWVyYSBoYXMgbGVucyBlbGVtZW50cyB3aGljaCBtYXkgbW92ZSBiYXNlZCBvbgorY2FtZXJhIG9yaWVudGF0aW9uIG9yIG1vdGlvbiAoZS48d2JyLz5nLjx3YnIvPiBkdWUgdG8gZ3Jhdml0eSksPHdici8+IHRoZW4gdGhlIEhBTCBtdXN0IGRyaXZlIHRoZSBsZW5zIHRvCityZW1haW4gaW4gYSBmaXhlZCBwb3NpdGlvbiBpbnZhcmlhbnQgdG8gdGhlIGNhbWVyYSdzIG9yaWVudGF0aW9uIG9yIG1vdGlvbiw8d2JyLz4gZm9yIGV4YW1wbGUsPHdici8+CitieSB1c2luZyBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBpbiB0aGUgbGVucyBjb250cm9sIGxvZ2ljLjx3YnIvPiBUaGlzIGlzIGEgdHlwaWNhbCBpc3N1ZQordGhhdCB3aWxsIGFyaXNlIG9uIGNhbWVyYSBtb2R1bGVzIHdpdGggb3Blbi1sb29wIFZDTXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggYXJlYV9jb3VudAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgbWV0ZXJpbmdSZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBtZXRlcmluZyBhcmVhcyB0byB1c2UgZm9yIGF1dG8tZm9jdXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHdpdGhpbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkNvb3JkaW5hdGVzIG11c3QgYmUgYmV0d2VlbiA8Y29kZT5bKDAsPHdici8+MCksPHdici8+ICh3aWR0aCw8d2JyLz4gaGVpZ2h0KSk8L2NvZGU+IG9mCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Tm90IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWYiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QWY8L2E+IGlzIDAuPHdici8+CitPdGhlcndpc2Ugd2lsbCBhbHdheXMgYmUgcHJlc2VudC48d2JyLz48L3A+Cis8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgZm9jdXMgYXJlYXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUKK29mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZjwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IGJlIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMTAwMF08L2NvZGU+LDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZiBvbmx5IG9uZSByZWdpb24KK2lzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGggMCB3ZWlnaHQgaXMKK2lnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiBJZiB0aGUgcmVnaW9uIGlzIGVudGlyZWx5IG91dHNpZGUgdGhlIGNyb3AgcmVnaW9uLDx3YnIvPiBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kCitub3QgcmVwb3J0ZWQgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbGV2ZWwgcmVwcmVzZW50YXRpb24gb2YgTWV0ZXJpbmdSZWN0YW5nbGVbXSBpcyBhCitpbnRbNSAqIGFyZWFfPHdici8+Y291bnRdLjx3YnIvPgorRXZlcnkgZml2ZSBlbGVtZW50cyByZXByZXNlbnQgYSBtZXRlcmluZyByZWdpb24gb2YKKyh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB4bWF4LDx3YnIvPiB5bWF4LDx3YnIvPiB3ZWlnaHQpLjx3YnIvPgorVGhlIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHRvIGJlIGluY2x1c2l2ZSBvbiB4bWluIGFuZCB5bWluLDx3YnIvPiBidXQKK2V4Y2x1c2l2ZSBvbiB4bWF4IGFuZCB5bWF4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklETEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0cmlnZ2VyIGlzIGlkbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG9mb2N1cyB3aWxsIHRyaWdnZXIgbm93Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBTkNFTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0b2ZvY3VzIHdpbGwgcmV0dXJuIHRvIGl0cyBpbml0aWFsCitzdGF0ZSw8d2JyLz4gYW5kIGNhbmNlbCBhbnkgY3VycmVudGx5IGFjdGl2ZSB0cmlnZ2VyLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIGF1dG9mb2N1cyBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBub3JtYWxseSBzZXQgdG8gSURMRSw8d2JyLz4gb3IgaXMgbm90CitpbmNsdWRlZCBhdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc2V0dGluZ3MuPHdici8+PC9wPgorPHA+V2hlbiBpbmNsdWRlZCBhbmQgc2V0IHRvIFNUQVJULDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgdGhlCithdXRvZm9jdXMgYWxnb3JpdGhtLjx3YnIvPiBJZiBhdXRvZm9jdXMgaXMgZGlzYWJsZWQsPHdici8+IHRoaXMgdHJpZ2dlciBoYXMgbm8gZWZmZWN0Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIENBTkNFTCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGFjdGl2ZSB0cmlnZ2VyLDx3YnIvPgorYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRiBzdGF0ZS48d2JyLz48L3A+Cis8cD5HZW5lcmFsbHksPHdici8+IGFwcGxpY2F0aW9ucyBzaG91bGQgc2V0IHRoaXMgZW50cnkgdG8gU1RBUlQgb3IgQ0FOQ0VMIGZvciBvbmx5IGEKK3NpbmdsZSBjYXB0dXJlLDx3YnIvPiBhbmQgdGhlbiByZXR1cm4gaXQgdG8gSURMRSAob3Igbm90IHNldCBhdCBhbGwpLjx3YnIvPiBTcGVjaWZ5aW5nCitTVEFSVCBmb3IgbXVsdGlwbGUgY2FwdHVyZXMgaW4gYSByb3cgbWVhbnMgcmVzdGFydGluZyB0aGUgQUYgb3BlcmF0aW9uIG92ZXIKK2FuZCBvdmVyIGFnYWluLjx3YnIvPjwvcD4KKzxwPlNlZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciB3aGF0IHRoZSB0cmlnZ2VyIG1lYW5zIGZvciBlYWNoIEFGIG1vZGUuPHdici8+PC9wPgorPHA+VXNpbmcgdGhlIGF1dG9mb2N1cyB0cmlnZ2VyIGFuZCB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+CitzaW11bHRhbmVvdXNseSBpcyBhbGxvd2VkLjx3YnIvPiBIb3dldmVyLDx3YnIvPiBzaW5jZSB0aGVzZSB0cmlnZ2VycyBvZnRlbiByZXF1aXJlIGNvb3BlcmF0aW9uIGJldHdlZW4KK3RoZSBhdXRvLWZvY3VzIGFuZCBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIChmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIG1heSBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGEKK2ZvY3VzIHN3ZWVwKSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGRlbGF5IGFjdGluZyBvbiBhIGxhdGVyIHRyaWdnZXIgdW50aWwgdGhlIHByZXZpb3VzCit0cmlnZ2VyIGhhcyBiZWVuIGZ1bGx5IGhhbmRsZWQuPHdici8+IFRoaXMgbWF5IGxlYWQgdG8gbG9uZ2VyIGludGVydmFscyBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZAorY2hhbmdlcyB0byA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+LDx3YnIvPiBmb3IgZXhhbXBsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBzdXBwb3J0IHRyaWdnZXJpbmcgdGhlIEFGIHRyaWdnZXIgd2hpbGUgYW4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIGlzIGFjdGl2ZQorKGFuZCB2aWNlIHZlcnNhKSw8d2JyLz4gb3IgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgQUUgdHJpZ2dlci48d2JyLz4gIEl0IGlzIGFjY2VwdGFibGUgZm9yIHRoZSBIQUwgdG8KK3RyZWF0IHRoZXNlIGFzIHR3byBjb25zZWN1dGl2ZSB0cmlnZ2Vycyw8d2JyLz4gZm9yIGV4YW1wbGUgaGFuZGxpbmcgdGhlIEFGIHRyaWdnZXIgYW5kIHRoZW4gdGhlCitBRSB0cmlnZ2VyLjx3YnIvPiAgT3IgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIG9wdGltaXplIHRoZSBjYXNlIHdpdGggYm90aCB0cmlnZ2VycyBmaXJlZCBhdCBvbmNlLDx3YnIvPgordG8gbWluaW1pemUgdGhlIGxhdGVuY3kgZm9yIGNvbnZlcmdpbmcgYm90aCBmb2N1cyBhbmQgZXhwb3N1cmUvPHdici8+Zmxhc2ggdXNhZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by13aGl0ZSBiYWxhbmNlIGxvY2sgaXMgZGlzYWJsZWQ7IHRoZSBBV0IKK2FsZ29yaXRobSBpcyBmcmVlIHRvIHVwZGF0ZSBpdHMgcGFyYW1ldGVycyBpZiBpbiBBVVRPCittb2RlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvLXdoaXRlIGJhbGFuY2UgbG9jayBpcyBlbmFibGVkOyB0aGUgQVdCCithbGdvcml0aG0gd2lsbCBub3QgdXBkYXRlIGl0cyBwYXJhbWV0ZXJzIHdoaWxlIHRoZSBsb2NrCitpcyBhY3RpdmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgY3VycmVudGx5IGxvY2tlZCB0byBpdHMKK2xhdGVzdCBjYWxjdWxhdGVkIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSBBV0IgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGNvbG9yIGJhbGFuY2Ugc2V0dGluZ3MgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5TaW5jZSB0aGUgY2FtZXJhIGRldmljZSBoYXMgYSBwaXBlbGluZSBvZiBpbi1mbGlnaHQgcmVxdWVzdHMsPHdici8+IHRoZSBzZXR0aW5ncyB0aGF0CitnZXQgbG9ja2VkIGRvIG5vdCBuZWNlc3NhcmlseSBjb3JyZXNwb25kIHRvIHRoZSBzZXR0aW5ncyB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUKK2xhdGVzdCBjYXB0dXJlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBzaW5jZSBhZGRpdGlvbmFsIGNhcHR1cmVzCithbmQgQVdCIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQVdCIG1vZGU6PC9saT4KKzxsaT5Mb2NrIEFXQjwvbGk+Cis8bGk+V2FpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCB0byBiZSBvdXRwdXQgdGhhdCBoYXMgdGhlIEFXQiBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgQVdCIHNldHRpbmdzIGZyb20gdGhhdCByZXN1bHQgaW50byBhIHJlcXVlc3QsPHdici8+IHNldCB0aGUgcmVxdWVzdCB0byBtYW51YWwgQVdCPC9saT4KKzxsaT5TdWJtaXQgdGhlIGNhcHR1cmUgcmVxdWVzdCw8d2JyLz4gcHJvY2VlZCB0byBydW4gbWFudWFsIEFXQiBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+Tm90ZSB0aGF0IEFXQiBsb2NrIGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiBpcyBpbiB0aGUgQVVUTyBtb2RlOyBpbiBvdGhlciBtb2Rlcyw8d2JyLz4KK0FXQiBpcyBhbHJlYWR5IGZpeGVkIHRvIGEgc3BlY2lmaWMgc2V0dGluZy48d2JyLz48L3A+Cis8cD5Tb21lIExFR0FDWSBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydCBPTjsgdGhlIHZhbHVlIGlzIHRoZW4gb3ZlcnJpZGRlbiB0byBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24tc2VsZWN0ZWQgY29sb3IgdHJhbnNmb3JtIG1hdHJpeAorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4pIGFuZCBnYWlucworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+KSBhcmUgdXNlZCBieSB0aGUgY2FtZXJhCitkZXZpY2UgZm9yIG1hbnVhbCB3aGl0ZSBiYWxhbmNlIGNvbnRyb2wuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOQ0FOREVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgaW5jYW5kZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEEuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBmbHVvcmVzY2VudCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPldoaWxlIHRoZSBleGFjdCB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgYXJlIHVwIHRvIHRoZQorY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleSB3aWxsIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlIENJRQorc3RhbmRhcmQgaWxsdW1pbmFudCBGMi48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+V0FSTV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgd2FybSBmbHVvcmVzY2VudCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPldoaWxlIHRoZSBleGFjdCB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgYXJlIHVwIHRvIHRoZQorY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleSB3aWxsIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlIENJRQorc3RhbmRhcmQgaWxsdW1pbmFudCBGNC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REFZTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGRheWxpZ2h0IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEQ2NS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0xPVURZX0RBWUxJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBjbG91ZHkgZGF5bGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFdJTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHR3aWxpZ2h0IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNIQURFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBzaGFkZSBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBpcyBjdXJyZW50bHkgc2V0dGluZyB0aGUgY29sb3IKK3RyYW5zZm9ybSBmaWVsZHMsPHdici8+IGFuZCB3aGF0IGl0cyBpbGx1bWluYXRpb24gdGFyZ2V0Citpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgQVVUTy48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byB0aGUgT04gbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2UKK3JvdXRpbmUgaXMgZW5hYmxlZCw8d2JyLz4gb3ZlcnJpZGluZyB0aGUgYXBwbGljYXRpb24ncyBzZWxlY3RlZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4uPHdici8+IE5vdGUgdGhhdCB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPgoraXMgT0ZGLDx3YnIvPiB0aGUgYmVoYXZpb3Igb2YgQVdCIGlzIGRldmljZSBkZXBlbmRlbnQuPHdici8+IEl0IGlzIHJlY29tbWVuZWQgdG8KK2Fsc28gc2V0IEFXQiBtb2RlIHRvIE9GRiBvciBsb2NrIEFXQiBieSB1c2luZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBiZWZvcmUKK3NldHRpbmcgQUUgbW9kZSB0byBPRkYuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gdGhlIE9GRiBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZQorcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz4gVGhlIGFwcGxpY2F0aW9uIG1hbnVhbGx5IGNvbnRyb2xzIHRoZSB3aGl0ZQorYmFsYW5jZSBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBhbnkgb3RoZXIgbW9kZXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZQorYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB1c2VzIGVhY2gKK3BhcnRpY3VsYXIgaWxsdW1pbmF0aW9uIHRhcmdldCBmb3Igd2hpdGUgYmFsYW5jZQorYWRqdXN0bWVudC48d2JyLz4gVGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by13aGl0ZS1iYWxhbmNlIGlsbHVtaW5hbnQKK2VzdGltYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHdpdGhpbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkNvb3JkaW5hdGVzIG11c3QgYmUgYmV0d2VlbiA8Y29kZT5bKDAsPHdici8+MCksPHdici8+ICh3aWR0aCw8d2JyLz4gaGVpZ2h0KSk8L2NvZGU+IG9mCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Tm90IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkF3YjwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiByZWdpb25zIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCitvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkF3YjwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IHJhbmdlIGZyb20gMCB0byAxMDAwLDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciB3aGl0ZSBiYWxhbmNlIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmCitvbmx5IG9uZSByZWdpb24gaXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aAorMCB3ZWlnaHQgaXMgaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+ICBJZiB0aGUgcmVnaW9uIGlzIGVudGlyZWx5IG91dHNpZGUgdGhlIGNyb3AgcmVnaW9uLDx3YnIvPiBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kCitub3QgcmVwb3J0ZWQgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbGV2ZWwgcmVwcmVzZW50YXRpb24gb2YgTWV0ZXJpbmdSZWN0YW5nbGVbXSBpcyBhCitpbnRbNSAqIGFyZWFfPHdici8+Y291bnRdLjx3YnIvPgorRXZlcnkgZml2ZSBlbGVtZW50cyByZXByZXNlbnQgYSBtZXRlcmluZyByZWdpb24gb2YKKyh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB4bWF4LDx3YnIvPiB5bWF4LDx3YnIvPiB3ZWlnaHQpLjx3YnIvPgorVGhlIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHRvIGJlIGluY2x1c2l2ZSBvbiB4bWluIGFuZCB5bWluLDx3YnIvPiBidXQKK2V4Y2x1c2l2ZSBvbiB4bWF4IGFuZCB5bWF4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZ29hbCBvZiB0aGlzIHJlcXVlc3QgZG9lc24ndCBmYWxsIGludG8gdGhlIG90aGVyCitjYXRlZ29yaWVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIGRlZmF1bHQgdG8gcHJldmlldy1saWtlCitiZWhhdmlvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QUkVWSUVXPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgcHJldmlldy1saWtlIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgbWF5IGJlIHVzZWQgdG8gc3RhcnQgb2ZmIGEgbWV0ZXJpbmcKK3cvPHdici8+Zmxhc2ggc2VxdWVuY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RJTExfQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIHN0aWxsIGNhcHR1cmUtdHlwZQordXNlIGNhc2UuPHdici8+PC9wPgorPHA+SWYgdGhlIGZsYXNoIHVuaXQgaXMgdW5kZXIgYXV0b21hdGljIGNvbnRyb2wsPHdici8+IGl0IG1heSBmaXJlIGFzIG5lZWRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5WSURFT19SRUNPUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSB2aWRlbyByZWNvcmRpbmcKK3VzZSBjYXNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlZJREVPX1NOQVBTSE9UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgdmlkZW8gc25hcHNob3QgKHN0aWxsCitpbWFnZSB3aGlsZSByZWNvcmRpbmcgdmlkZW8pIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHNob3VsZCB0YWtlIHRoZSBoaWdoZXN0LXF1YWxpdHkgaW1hZ2UKK3Bvc3NpYmxlIChnaXZlbiB0aGUgb3RoZXIgc2V0dGluZ3MpIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUKK2ZyYW1lIHJhdGUgb2YgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPiAgPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIFpTTCB1c2VjYXNlOyB0aGUKK2FwcGxpY2F0aW9uIHdpbGwgc3RyZWFtIGZ1bGwtcmVzb2x1dGlvbiBpbWFnZXMgYW5kCityZXByb2Nlc3Mgb25lIG9yIHNldmVyYWwgbGF0ZXIgZm9yIGEgZmluYWwKK2NhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFOVUFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIG1hbnVhbCBjYXB0dXJlIHVzZSBjYXNlIHdoZXJlCit0aGUgYXBwbGljYXRpb25zIHdhbnQgdG8gZGlyZWN0bHkgY29udHJvbCB0aGUgY2FwdHVyZSBwYXJhbWV0ZXJzLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IHdpc2ggdG8gbWFudWFsbHkgY29udHJvbAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGV0Yy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JbmZvcm1hdGlvbiB0byB0aGUgY2FtZXJhIGRldmljZSAzQSAoYXV0by1leHBvc3VyZSw8d2JyLz4KK2F1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSkgcm91dGluZXMgYWJvdXQgdGhlIHB1cnBvc2UKK29mIHRoaXMgY2FwdHVyZSw8d2JyLz4gdG8gaGVscCB0aGUgY2FtZXJhIGRldmljZSB0byBkZWNpZGUgb3B0aW1hbCAzQQorc3RyYXRlZ3kuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgKGV4Y2VwdCBmb3IgTUFOVUFMKSBpcyBvbmx5IGVmZmVjdGl2ZSBpZgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiBhbmQgYW55IDNBIHJvdXRpbmUgaXMgYWN0aXZlLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgd2lsbCBiZSBzdXBwb3J0ZWQgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPgorY29udGFpbnMgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORy48d2JyLz4gTUFOVUFMIHdpbGwgYmUgc3VwcG9ydGVkIGlmCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIE1BTlVBTF88d2JyLz5TRU5TT1IuPHdici8+IE90aGVyIGludGVudCB2YWx1ZXMgYXJlCithbHdheXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGNvbG9yIGVmZmVjdCB3aWxsIGJlIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TU9OTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAibW9ub2NvbG9yIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIGlzIG1hcHBlZCBpbnRvCithIHNpbmdsZSBjb2xvci48d2JyLz48L3A+Cis8cD5UaGlzIHdpbGwgdHlwaWNhbGx5IGJlIGdyYXlzY2FsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ORUdBVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAicGhvdG8tbmVnYXRpdmUiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UncyBjb2xvcnMKK2FyZSBpbnZlcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TT0xBUklaRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic29sYXJpc2F0aW9uIiBlZmZlY3QgKFNhYmF0dGllciBlZmZlY3QpIHdoZXJlIHRoZQoraW1hZ2UgaXMgd2hvbGx5IG9yIHBhcnRpYWxseSByZXZlcnNlZCBpbgordG9uZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRVBJQTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic2VwaWEiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgbWFwcGVkIGludG8gd2FybQorZ3JheSw8d2JyLz4gcmVkLDx3YnIvPiBhbmQgYnJvd24gdG9uZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9TVEVSSVpFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJwb3N0ZXJpemF0aW9uIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIHVzZXMKK2Rpc2NyZXRlIHJlZ2lvbnMgb2YgdG9uZSByYXRoZXIgdGhhbiBhIGNvbnRpbnVvdXMKK2dyYWRpZW50IG9mIHRvbmVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPldISVRFQk9BUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkEgIndoaXRlYm9hcmQiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgdHlwaWNhbGx5IGRpc3BsYXllZAorYXMgcmVnaW9ucyBvZiB3aGl0ZSw8d2JyLz4gd2l0aCBibGFjayBvciBncmV5IGRldGFpbHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkxBQ0tCT0FSRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAiYmxhY2tib2FyZCIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyB0eXBpY2FsbHkgZGlzcGxheWVkCithcyByZWdpb25zIG9mIGJsYWNrLDx3YnIvPiB3aXRoIHdoaXRlIG9yIGdyZXkgZGV0YWlscy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BUVVBPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbiAiYXF1YSIgZWZmZWN0IHdoZXJlIGEgYmx1ZSBodWUgaXMgYWRkZWQgdG8gdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgc3BlY2lhbCBjb2xvciBlZmZlY3QgdG8gYXBwbHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVmZmVjdHM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gdGhpcyBtb2RlIGlzIHNldCw8d2JyLz4gYSBjb2xvciBlZmZlY3Qgd2lsbCBiZSBhcHBsaWVkCit0byBpbWFnZXMgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZSBpbnRlcnByZXRhdGlvbgorYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGNvbG9yIGVmZmVjdHMgaXMgbGVmdCB0byB0aGUKK2ltcGxlbWVudG9yIG9mIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgc2hvdWxkIG5vdCBiZQorZGVwZW5kZWQgb24gdG8gYmUgY29uc2lzdGVudCAob3IgcHJlc2VudCkgYWNyb3NzIGFsbAorZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GdWxsIGFwcGxpY2F0aW9uIGNvbnRyb2wgb2YgcGlwZWxpbmUuPHdici8+PC9wPgorPHA+QWxsIGNvbnRyb2wgYnkgdGhlIGRldmljZSdzIG1ldGVyaW5nIGFuZCBmb2N1c2luZyAoM0EpCityb3V0aW5lcyBpcyBkaXNhYmxlZCw8d2JyLz4gYW5kIG5vIG90aGVyIHNldHRpbmdzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBoYXZlIGFueSBlZmZlY3QsPHdici8+IGV4Y2VwdCB0aGF0Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBtYXkgYmUgdXNlZCBieSB0aGUgY2FtZXJhCitkZXZpY2UgdG8gc2VsZWN0IHBvc3QtcHJvY2Vzc2luZyB2YWx1ZXMgZm9yIHByb2Nlc3NpbmcKK2Jsb2NrcyB0aGF0IGRvIG5vdCBhbGxvdyBmb3IgbWFudWFsIGNvbnRyb2wsPHdici8+IG9yIGFyZSBub3QKK2V4cG9zZWQgYnkgdGhlIGNhbWVyYSBBUEkuPHdici8+PC9wPgorPHA+SG93ZXZlciw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyAzQSByb3V0aW5lcyBtYXkgY29udGludWUgdG8KK2NvbGxlY3Qgc3RhdGlzdGljcyBhbmQgdXBkYXRlIHRoZWlyIGludGVybmFsIHN0YXRlIHNvIHRoYXQKK3doZW4gY29udHJvbCBpcyBzd2l0Y2hlZCB0byBBVVRPIG1vZGUsPHdici8+IGdvb2QgY29udHJvbCB2YWx1ZXMKK2NhbiBiZSBpbW1lZGlhdGVseSBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSBzZXR0aW5ncyBmb3IgZWFjaCBpbmRpdmlkdWFsIDNBIHJvdXRpbmUuPHdici8+PC9wPgorPHA+TWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZSBwYXJhbWV0ZXJzIGlzIGRpc2FibGVkLjx3YnIvPiBBbGwKK2NvbnRyb2xzIGluIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGJlc2lkZXMgc2NlbmVNb2RlIHRha2UKK2VmZmVjdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VU0VfU0NFTkVfTU9ERTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIGEgc3BlY2lmaWMgc2NlbmUgbW9kZS48d2JyLz48L3A+Cis8cD5FbmFibGluZyB0aGlzIGRpc2FibGVzIGNvbnRyb2wuPHdici8+YWVNb2RlLDx3YnIvPiBjb250cm9sLjx3YnIvPmF3Yk1vZGUgYW5kCitjb250cm9sLjx3YnIvPmFmTW9kZSBjb250cm9sczsgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBpZ25vcmUKK3Rob3NlIHNldHRpbmdzIHdoaWxlIFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFIGlzIGFjdGl2ZSAoZXhjZXB0IGZvcgorRkFDRV88d2JyLz5QUklPUklUWSBzY2VuZSBtb2RlKS48d2JyLz4gT3RoZXIgY29udHJvbCBlbnRyaWVzIGFyZSBzdGlsbCBhY3RpdmUuPHdici8+CitUaGlzIHNldHRpbmcgY2FuIG9ubHkgYmUgdXNlZCBpZiBzY2VuZSBtb2RlIGlzIHN1cHBvcnRlZCAoaS48d2JyLz5lLjx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlNjZW5lPHdici8+TW9kZXM8L2E+Citjb250YWluIHNvbWUgbW9kZXMgb3RoZXIgdGhhbiBESVNBQkxFRCkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGX0tFRVBfU1RBVEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNhbWUgYXMgT0ZGIG1vZGUsPHdici8+IGV4Y2VwdCB0aGF0IHRoaXMgY2FwdHVyZSB3aWxsIG5vdCBiZQordXNlZCBieSBjYW1lcmEgZGV2aWNlIGJhY2tncm91bmQgYXV0by1leHBvc3VyZSw8d2JyLz4gYXV0by13aGl0ZSBiYWxhbmNlIGFuZAorYXV0by1mb2N1cyBhbGdvcml0aG1zICgzQSkgdG8gdXBkYXRlIHRoZWlyIHN0YXRpc3RpY3MuPHdici8+PC9wPgorPHA+U3BlY2lmaWNhbGx5LDx3YnIvPiB0aGUgM0Egcm91dGluZXMgYXJlIGxvY2tlZCB0byB0aGUgbGFzdAordmFsdWVzIHNldCBmcm9tIGEgcmVxdWVzdCB3aXRoIEFVVE8sPHdici8+IE9GRiw8d2JyLz4gb3IKK1VTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFLDx3YnIvPiBhbmQgYW55IHN0YXRpc3RpY3Mgb3Igc3RhdGUgdXBkYXRlcworY29sbGVjdGVkIGZyb20gbWFudWFsIGNhcHR1cmVzIHdpdGggT0ZGXzx3YnIvPktFRVBfPHdici8+U1RBVEUgd2lsbCBiZQorZGlzY2FyZGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk92ZXJhbGwgbW9kZSBvZiAzQSAoYXV0by1leHBvc3VyZSw8d2JyLz4gYXV0by13aGl0ZS1iYWxhbmNlLDx3YnIvPiBhdXRvLWZvY3VzKSBjb250cm9sCityb3V0aW5lcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgdG9wLWxldmVsIDNBIGNvbnRyb2wgc3dpdGNoLjx3YnIvPiBXaGVuIHNldCB0byBPRkYsPHdici8+IGFsbCAzQSBjb250cm9sCitieSB0aGUgY2FtZXJhIGRldmljZSBpcyBkaXNhYmxlZC48d2JyLz4gVGhlIGFwcGxpY2F0aW9uIG11c3Qgc2V0IHRoZSBmaWVsZHMgZm9yCitjYXB0dXJlIHBhcmFtZXRlcnMgaXRzZWxmLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIEFVVE8sPHdici8+IHRoZSBpbmRpdmlkdWFsIGFsZ29yaXRobSBjb250cm9scyBpbgorYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogYXJlIGluIGVmZmVjdCw8d2JyLz4gc3VjaCBhcyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUsPHdici8+IHRoZSBpbmRpdmlkdWFsIGNvbnRyb2xzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBhcmUgbW9zdGx5IGRpc2FibGVkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYSBkZXZpY2UgaW1wbGVtZW50cworb25lIG9mIHRoZSBzY2VuZSBtb2RlIHNldHRpbmdzIChzdWNoIGFzIEFDVElPTiw8d2JyLz4gU1VOU0VULDx3YnIvPiBvciBQQVJUWSkKK2FzIGl0IHdpc2hlcy48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugc2NlbmUgbW9kZSAzQSBzZXR0aW5ncyBhcmUgcHJvdmlkZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5odG1sIj5jYXB0dXJlIHJlc3VsdHM8L2E+Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIE9GRl88d2JyLz5LRUVQXzx3YnIvPlNUQVRFLDx3YnIvPiBpdCBpcyBzaW1pbGFyIHRvIE9GRiBtb2RlLDx3YnIvPiB0aGUgb25seSBkaWZmZXJlbmNlCitpcyB0aGF0IHRoaXMgZnJhbWUgd2lsbCBub3QgYmUgdXNlZCBieSBjYW1lcmEgZGV2aWNlIGJhY2tncm91bmQgM0Egc3RhdGlzdGljcwordXBkYXRlLDx3YnIvPiBhcyBpZiB0aGlzIGZyYW1lIGlzIG5ldmVyIGNhcHR1cmVkLjx3YnIvPiBUaGlzIG1vZGUgY2FuIGJlIHVzZWQgaW4gdGhlIHNjZW5hcmlvCit3aGVyZSB0aGUgYXBwbGljYXRpb24gZG9lc24ndCB3YW50IGEgM0EgbWFudWFsIGNvbnRyb2wgY2FwdHVyZSB0byBhZmZlY3QKK3RoZSBzdWJzZXF1ZW50IGF1dG8gM0EgY2FwdHVyZSByZXN1bHRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RElTQUJMRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluZGljYXRlcyB0aGF0IG5vIHNjZW5lIG1vZGVzIGFyZSBzZXQgZm9yIGEgZ2l2ZW4gY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBQ0VfUFJJT1JJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPklmIGZhY2UgZGV0ZWN0aW9uIHN1cHBvcnQgZXhpc3RzLDx3YnIvPiB1c2UgZmFjZQorZGV0ZWN0aW9uIGRhdGEgZm9yIGF1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSw8d2JyLz4gYW5kCithdXRvLWV4cG9zdXJlIHJvdXRpbmVzLjx3YnIvPjwvcD4KKzxwPklmIGZhY2UgZGV0ZWN0aW9uIHN0YXRpc3RpY3MgYXJlIGRpc2FibGVkCisoaS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+IGlzIHNldCB0byBPRkYpLDx3YnIvPgordGhpcyBzaG91bGQgc3RpbGwgb3BlcmF0ZSBjb3JyZWN0bHkgKGJ1dCB3aWxsIG5vdCByZXR1cm4KK2ZhY2UgZGV0ZWN0aW9uIHN0YXRpc3RpY3MgdG8gdGhlIGZyYW1ld29yaykuPHdici8+PC9wPgorPHA+VW5saWtlIHRoZSBvdGhlciBzY2VuZSBtb2Rlcyw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3JlbWFpbiBhY3RpdmUgd2hlbiBGQUNFXzx3YnIvPlBSSU9SSVRZIGlzIHNldC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BQ1RJT048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIHF1aWNrbHkgbW92aW5nIG9iamVjdHMuPHdici8+PC9wPgorPHA+U2ltaWxhciB0byBTUE9SVFMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9SVFJBSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc3RpbGwgcGhvdG9zIG9mIHBlb3BsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5MQU5EU0NBUEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIGRpc3RhbnQgbWFjcm9zY29waWMgb2JqZWN0cy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBsb3ctbGlnaHQgc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TklHSFRfUE9SVFJBSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc3RpbGwgcGhvdG9zIG9mIHBlb3BsZSBpbiBsb3ctbGlnaHQKK3NldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRIRUFUUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltLDx3YnIvPiBpbmRvb3Igc2V0dGluZ3Mgd2hlcmUgZmxhc2ggbXVzdAorcmVtYWluIG9mZi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CRUFDSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBicmlnaHQsPHdici8+IG91dGRvb3IgYmVhY2ggc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U05PVzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBicmlnaHQsPHdici8+IG91dGRvb3Igc2V0dGluZ3MgY29udGFpbmluZyBzbm93Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNVTlNFVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBzY2VuZXMgb2YgdGhlIHNldHRpbmcgc3VuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNURUFEWVBIT1RPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgdG8gYXZvaWQgYmx1cnJ5IHBob3RvcyBkdWUgdG8gc21hbGwgYW1vdW50cyBvZgorZGV2aWNlIG1vdGlvbiAoZm9yIGV4YW1wbGU6IGR1ZSB0byBoYW5kIHNoYWtlKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GSVJFV09SS1M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgbmlnaHR0aW1lIHBob3RvcyBvZiBmaXJld29ya3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1BPUlRTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBxdWlja2x5IG1vdmluZyBwZW9wbGUuPHdici8+PC9wPgorPHA+U2ltaWxhciB0byBBQ1RJT04uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFSVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltLDx3YnIvPiBpbmRvb3Igc2V0dGluZ3Mgd2l0aCBtdWx0aXBsZSBtb3ZpbmcKK3Blb3BsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQU5ETEVMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBkaW0gc2V0dGluZ3Mgd2hlcmUgdGhlIG1haW4gbGlnaHQgc291cmNlCitpcyBhIGZsYW1lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJBUkNPREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYWNjdXJhdGVseSBjYXB0dXJpbmcgYSBwaG90byBvZiBiYXJjb2RlCitmb3IgdXNlIGJ5IGNhbWVyYSBhcHBsaWNhdGlvbnMgdGhhdCB3aXNoIHRvIHJlYWQgdGhlCitiYXJjb2RlIHZhbHVlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfU1BFRURfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGlzIGRlcHJlY2F0ZWQsPHdici8+IHBsZWFzZSB1c2UgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbjwvYT4KK2FuZCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24uaHRtbCNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdCI+Q2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdDwvYT4KK2ZvciBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZy48d2JyLz48L3A+Cis8cD5PcHRpbWl6ZWQgZm9yIGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nIChmcmFtZSByYXRlICZndDs9NjBmcHMpIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBzdXBwb3J0ZWQgaGlnaCBzcGVlZCB2aWRlbyBzaXplcyBhbmQgZnBzIHJhbmdlcyBhcmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+IFRvIGdldCBkZXNpcmVkCitvdXRwdXQgZnJhbWUgcmF0ZXMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBpcyBvbmx5IGFsbG93ZWQgdG8gc2VsZWN0IHZpZGVvIHNpemUKK2FuZCBmcHMgcmFuZ2UgY29tYmluYXRpb25zIGxpc3RlZCBpbiB0aGlzIHN0YXRpYyBtZXRhZGF0YS48d2JyLz4gVGhlIGZwcyByYW5nZQorY2FuIGJlIGNvbnRyb2wgdmlhIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvdmVycmlkZSBhZU1vZGUsPHdici8+IGF3Yk1vZGUsPHdici8+IGFuZCBhZk1vZGUgdG8KK09OLDx3YnIvPiBPTiw8d2JyLz4gYW5kIENPTlRJTlVPVVNfPHdici8+VklERU8sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gQWxsIHBvc3QtcHJvY2Vzc2luZyBibG9jayBtb2RlCitjb250cm9scyB3aWxsIGJlIG92ZXJyaWRkZW4gdG8gYmUgRkFTVC48d2JyLz4gVGhlcmVmb3JlLDx3YnIvPiBubyBtYW51YWwgY29udHJvbCBvZiBjYXB0dXJlCithbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgaXMgcG9zc2libGUuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBvcGVyYXRlIHRoZQorc2FtZSBhcyB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IEFVVE8uPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhbGwgb3RoZXIKK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGZpZWxkcyBjb250aW51ZSB0byB3b3JrLDx3YnIvPiBzdWNoIGFzPC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8L3VsPgorPHA+T3V0c2lkZSBvZiBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Kiw8d2JyLz4gdGhlIGZvbGxvd2luZyBjb250cm9scyB3aWxsIHdvcms6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gKGF1dG9tYXRpYyBmbGFzaCBmb3Igc3RpbGwgY2FwdHVyZSB3aWxsIG5vdCB3b3JrIHNpbmNlIGFlTW9kZSBpcyBPTik8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiAoaWYgaXQgaXMgc3VwcG9ydGVkKTwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzwvdWw+Cis8cD5Gb3IgaGlnaCBzcGVlZCByZWNvcmRpbmcgdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgZnJhbWUgcmF0ZSBtYXkKK2JlIGxvd2VyIHRoYW4gd2hhdCBjYW1lcmEgY2FuIG91dHB1dCw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbiBTdXJmYWNlcyBmb3IKK3RoZSBpbWFnZSBkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSB2aWRlbyBlbmNvZGVyLDx3YnIvPgordGhlIGFwcGxpY2F0aW9uIG5lZWQgY2hlY2sgaWYgdGhlIHZpZGVvIGVuY29kZXIgaXMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHRoZQoraGlnaCBmcmFtZSByYXRlIGZvciBhIGdpdmVuIHZpZGVvIHNpemUsPHdici8+IG9yIGl0IHdpbGwgZW5kIHVwIHdpdGggbG93ZXIgcmVjb3JkaW5nCitmcmFtZSByYXRlLjx3YnIvPiBJZiB0aGUgZGVzdGluYXRpb24gc3VyZmFjZSBpcyBmcm9tIHByZXZpZXcgd2luZG93LDx3YnIvPiB0aGUgcHJldmlldyBmcmFtZQorcmF0ZSB3aWxsIGJlIGJvdW5kZWQgYnkgdGhlIHNjcmVlbiByZWZyZXNoIHJhdGUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvbmx5IHN1cHBvcnQgdXAgdG8gMiBvdXRwdXQgaGlnaCBzcGVlZCBzdHJlYW1zCisocHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBmb3JtYXQgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+U3RyZWFtczwvYT4pCitpbiB0aGlzIG1vZGUuPHdici8+IFRoaXMgY29udHJvbCB3aWxsIGJlIGVmZmVjdGl2ZSBvbmx5IGlmIGFsbCBvZiBiZWxvdyBjb25kaXRpb25zIGFyZSB0cnVlOjwvcD4KKzx1bD4KKzxsaT5UaGUgYXBwbGljYXRpb24gY3JlYXRlZCBubyBtb3JlIHRoYW4gbWF4TnVtSGlnaFNwZWVkU3RyZWFtcyBwcm9jZXNzZWQgbm9uLXN0YWxsaW5nCitmb3JtYXQgb3V0cHV0IHN0cmVhbXMsPHdici8+IHdoZXJlIG1heE51bUhpZ2hTcGVlZFN0cmVhbXMgaXMgY2FsY3VsYXRlZCBhcworbWluKDIsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5TdHJlYW1zPC9hPltQcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpXSkuPHdici8+PC9saT4KKzxsaT5UaGUgc3RyZWFtIHNpemVzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSBzaXplcyByZXBvcnRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+Tm8gcHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBvciByYXcgc3RyZWFtcyBhcmUgY29uZmlndXJlZC48d2JyLz48L2xpPgorPC91bD4KKzxwPldoZW4gYWJvdmUgY29uZGl0aW9ucyBhcmUgTk9UIHNhdGlzdGllZCw8d2JyLz4gdGhlIGNvbnRyb2xzIG9mIHRoaXMgbW9kZSBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHdpbGwgYmUgaWdub3JlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmFsbCBiYWNrIHRvIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBBVVRPLDx3YnIvPgorYW5kIHRoZSByZXR1cm5lZCBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSB3aWxsIGdpdmUgdGhlIGZwcyByYW5nZSBjaG9vc2VuCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5Td2l0Y2hpbmcgaW50byBvciBvdXQgb2YgdGhpcyBtb2RlIG1heSB0cmlnZ2VyIHNvbWUgY2FtZXJhIElTUC88d2JyLz5zZW5zb3IKK3JlY29uZmlndXJhdGlvbnMsPHdici8+IHdoaWNoIG1heSBpbnRyb2R1Y2UgZXh0cmEgbGF0ZW5jeS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdAordGhlIGFwcGxpY2F0aW9uIGF2b2lkcyB1bm5lY2Vzc2FyeSBzY2VuZSBtb2RlIHN3aXRjaCBhcyBtdWNoIGFzIHBvc3NpYmxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhEUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VHVybiBvbiBhIGRldmljZS1zcGVjaWZpYyBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgbW9kZS48d2JyLz48L3A+Cis8cD5JbiB0aGlzIHNjZW5lIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGNhcHR1cmVzIGltYWdlcwordGhhdCBrZWVwIGEgbGFyZ2VyIHJhbmdlIG9mIHNjZW5lIGlsbHVtaW5hdGlvbiBsZXZlbHMKK3Zpc2libGUgaW4gdGhlIGZpbmFsIGltYWdlLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gd2hlbiB0YWtpbmcgYQorcGljdHVyZSBvZiBhIG9iamVjdCBpbiBmcm9udCBvZiBhIGJyaWdodCB3aW5kb3csPHdici8+IGJvdGgKK3RoZSBvYmplY3QgYW5kIHRoZSBzY2VuZSB0aHJvdWdoIHRoZSB3aW5kb3cgbWF5IGJlCit2aXNpYmxlIHdoZW4gdXNpbmcgSERSIG1vZGUsPHdici8+IHdoaWxlIGluIG5vcm1hbCBBVVRPIG1vZGUsPHdici8+CitvbmUgb3IgdGhlIG90aGVyIG1heSBiZSBwb29ybHkgZXhwb3NlZC48d2JyLz4gQXMgYSB0cmFkZW9mZiw8d2JyLz4KK0hEUiBtb2RlIGdlbmVyYWxseSB0YWtlcyBtdWNoIGxvbmdlciB0byBjYXB0dXJlIGEgc2luZ2xlCitpbWFnZSw8d2JyLz4gaGFzIG5vIHVzZXIgY29udHJvbCw8d2JyLz4gYW5kIG1heSBoYXZlIG90aGVyIGFydGlmYWN0cworZGVwZW5kaW5nIG9uIHRoZSBIRFIgbWV0aG9kIHVzZWQuPHdici8+PC9wPgorPHA+VGhlcmVmb3JlLDx3YnIvPiBIRFIgY2FwdHVyZXMgb3BlcmF0ZSBhdCBhIG11Y2ggc2xvd2VyIHJhdGUKK3RoYW4gcmVndWxhciBjYXB0dXJlcy48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IG9uIExJTUlURUQgb3IgRlVMTCBkZXZpY2VzLDx3YnIvPiB3aGVuIGEgcmVxdWVzdAoraXMgbWFkZSB3aXRoIGEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gb2YKK1NUSUxMXzx3YnIvPkNBUFRVUkUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FwdHVyZSBhbiBpbWFnZQordXNpbmcgYSBoaWdoIGR5bmFtaWMgcmFuZ2UgY2FwdHVyZSB0ZWNobmlxdWUuPHdici8+ICBPbiBMRUdBQ1kKK2RldmljZXMsPHdici8+IGNhcHR1cmVzIHRoYXQgdGFyZ2V0IGEgSlBFRy1mb3JtYXQgb3V0cHV0IHdpbGwKK2JlIGNhcHR1cmVkIHdpdGggSERSLDx3YnIvPiBhbmQgdGhlIGNhcHR1cmUgaW50ZW50IGlzIG5vdAorcmVsZXZhbnQuPHdici8+PC9wPgorPHA+VGhlIEhEUiBjYXB0dXJlIG1heSBpbnZvbHZlIHRoZSBkZXZpY2UgY2FwdHVyaW5nIGEgYnVyc3QKK29mIGltYWdlcyBpbnRlcm5hbGx5IGFuZCBjb21iaW5pbmcgdGhlbSBpbnRvIG9uZSw8d2JyLz4gb3IgaXQKK21heSBpbnZvbHZlIHRoZSBkZXZpY2UgdXNpbmcgc3BlY2lhbGl6ZWQgaGlnaCBkeW5hbWljCityYW5nZSBjYXB0dXJlIGhhcmR3YXJlLjx3YnIvPiBJbiBhbGwgY2FzZXMsPHdici8+IGEgc2luZ2xlIGltYWdlIGlzCitwcm9kdWNlZCBpbiByZXNwb25zZSB0byBhIGNhcHR1cmUgcmVxdWVzdCBzdWJtaXR0ZWQKK3doaWxlIGluIEhEUiBtb2RlLjx3YnIvPjwvcD4KKzxwPlNpbmNlIHN1YnN0YW50aWFsIHBvc3QtcHJvY2Vzc2luZyBpcyBnZW5lcmFsbHkgbmVlZGVkIHRvCitwcm9kdWNlIGFuIEhEUiBpbWFnZSw8d2JyLz4gb25seSBZVVYsPHdici8+IFBSSVZBVEUsPHdici8+IGFuZCBKUEVHCitvdXRwdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIExJTUlURUQvPHdici8+RlVMTCBkZXZpY2UgSERSCitjYXB0dXJlcyw8d2JyLz4gYW5kIG9ubHkgSlBFRyBvdXRwdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIExFR0FDWQorSERSIGNhcHR1cmVzLjx3YnIvPiBVc2luZyBhIFJBVyBvdXRwdXQgZm9yIEhEUiBjYXB0dXJlIGlzIG5vdAorc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPlNvbWUgZGV2aWNlcyBtYXkgYWxzbyBzdXBwb3J0IGFsd2F5cy1vbiBIRFIsPHdici8+IHdoaWNoCithcHBsaWVzIEhEUiBwcm9jZXNzaW5nIGF0IGZ1bGwgZnJhbWUgcmF0ZS48d2JyLz4gIEZvciB0aGVzZQorZGV2aWNlcyw8d2JyLz4gaW50ZW50cyBvdGhlciB0aGFuIFNUSUxMXzx3YnIvPkNBUFRVUkUgd2lsbCBhbHNvCitwcm9kdWNlIGFuIEhEUiBvdXRwdXQgd2l0aCBubyBmcmFtZSByYXRlIGltcGFjdCBjb21wYXJlZAordG8gbm9ybWFsIG9wZXJhdGlvbiw8d2JyLz4gdGhvdWdoIHRoZSBxdWFsaXR5IG1heSBiZSBsb3dlcgordGhhbiBmb3IgU1RJTExfPHdici8+Q0FQVFVSRSBpbnRlbnRzLjx3YnIvPjwvcD4KKzxwPklmIFNDRU5FXzx3YnIvPk1PREVfPHdici8+SERSIGlzIHVzZWQgd2l0aCB1bnN1cHBvcnRlZCBvdXRwdXQgdHlwZXMKK29yIGNhcHR1cmUgaW50ZW50cyw8d2JyLz4gdGhlIGltYWdlcyBjYXB0dXJlZCB3aWxsIGJlIGFzIGlmCit0aGUgU0NFTkVfPHdici8+TU9ERSB3YXMgbm90IGVuYWJsZWQgYXQgYWxsLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBQ0VfUFJJT1JJVFlfTE9XX0xJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNhbWUgYXMgRkFDRV88d2JyLz5QUklPUklUWSBzY2VuZSBtb2RlLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhCitkZXZpY2Ugd2lsbCBjaG9vc2UgaGlnaGVyIHNlbnNpdGl2aXR5IHZhbHVlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCit1bmRlciBsb3cgbGlnaHQgY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSBtYXkgYmUgdHVuZWQgdG8gZXhwb3NlIHRoZSBpbWFnZXMgaW4gYSByZWR1Y2VkCitzZW5zaXRpdml0eSByYW5nZSB0byBwcm9kdWNlIHRoZSBiZXN0IHF1YWxpdHkgaW1hZ2VzLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4KK2lmIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiBnaXZlcyByYW5nZSBvZiBbMTAwLDx3YnIvPiAxNjAwXSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSB0dW5pbmcgcHJvY2VzcyBtYXkgbGltaXQgdGhlIGFjdHVhbAorZXhwb3N1cmUgc2Vuc2l0aXZpdHkgcmFuZ2UgdG8gWzEwMCw8d2JyLz4gMTIwMF0gdG8gZW5zdXJlIHRoYXQgdGhlIG5vaXNlIGxldmVsIGlzbid0CitleGVzc2l2ZSBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgaW1hZ2UgcXVhbGl0eS48d2JyLz4gVW5kZXIgdGhpcyBzaXR1YXRpb24sPHdici8+IHRoZSBpbWFnZSB1bmRlcgorbG93IGxpZ2h0IG1heSBiZSB1bmRlci1leHBvc2VkIHdoZW4gdGhlIHNlbnNvciBtYXggZXhwb3N1cmUgdGltZSAoYm91bmRlZCBieSB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIG9uZSBvZiB0aGUKK09OXzx3YnIvPiogbW9kZXMpIGFuZCBlZmZlY3RpdmUgbWF4IHNlbnNpdGl2aXR5IGFyZSByZWFjaGVkLjx3YnIvPiBUaGlzIHNjZW5lIG1vZGUgYWxsb3dzIHRoZQorY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgdG8gaW5jcmVhc2UgdGhlIHNlbnNpdGl2aXR5IHVwIHRvIHRoZSBtYXgKK3NlbnNpdGl2aXR5IHNwZWNpZmllZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiB3aGVuIHRoZSBzY2VuZSBpcyB0b28KK2RhcmsgYW5kIHRoZSBtYXggZXhwb3N1cmUgdGltZSBpcyByZWFjaGVkLjx3YnIvPiBUaGUgY2FwdHVyZWQgaW1hZ2VzIG1heSBiZSBub2lzaWVyCitjb21wYXJlZCB3aXRoIHRoZSBpbWFnZXMgY2FwdHVyZWQgaW4gbm9ybWFsIEZBQ0VfPHdici8+UFJJT1JJVFkgbW9kZTsgdGhlcmVmb3JlLDx3YnIvPiBpdCBpcworcmVjb21tZW5kZWQgdGhhdCB0aGUgYXBwbGljYXRpb24gb25seSB1c2UgdGhpcyBzY2VuZSBtb2RlIHdoZW4gaXQgaXMgY2FwYWJsZSBvZgorcmVkdWNpbmcgdGhlIG5vaXNlIGxldmVsIG9mIHRoZSBjYXB0dXJlZCBpbWFnZXMuPHdici8+PC9wPgorPHA+VW5saWtlIHRoZSBvdGhlciBzY2VuZSBtb2Rlcyw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3JlbWFpbiBhY3RpdmUgd2hlbiBGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCBpcyBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REVWSUNFX0NVU1RPTV9TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMDA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNjZW5lIG1vZGUgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YKKzxjb2RlPltERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPlNUQVJULDx3YnIvPiBERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPkVORF08L2NvZGU+IGFyZSByZXNlcnZlZCBmb3IgZGV2aWNlIHNwZWNpZmljCitjdXN0b21pemVkIHNjZW5lIG1vZGVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFVklDRV9DVVNUT01fRU5EPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjEyNzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2NlbmUgbW9kZSB2YWx1ZXMgd2l0aGluIHRoZSByYW5nZSBvZgorPGNvZGU+W0RFVklDRV88d2JyLz5DVVNUT01fPHdici8+U1RBUlQsPHdici8+IERFVklDRV88d2JyLz5DVVNUT01fPHdici8+RU5EXTwvY29kZT4gYXJlIHJlc2VydmVkIGZvciBkZXZpY2Ugc3BlY2lmaWMKK2N1c3RvbWl6ZWQgc2NlbmUgbW9kZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCBmb3Igd2hpY2ggc2NlbmUgbW9kZSBpcyBjdXJyZW50bHkgYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TY2VuZSBtb2RlcyBhcmUgY3VzdG9tIGNhbWVyYSBtb2RlcyBvcHRpbWl6ZWQgZm9yIGEgY2VydGFpbiBzZXQgb2YgY29uZGl0aW9ucyBhbmQKK2NhcHR1cmUgc2V0dGluZ3MuPHdici8+PC9wPgorPHA+VGhpcyBpcyB0aGUgbW9kZSB0aGF0IHRoYXQgaXMgYWN0aXZlIHdoZW4KKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFPC9jb2RlPi48d2JyLz4gQXNpZGUgZnJvbSBGQUNFXzx3YnIvPlBSSU9SSVRZLDx3YnIvPiB0aGVzZSBtb2RlcyB3aWxsCitkaXNhYmxlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3doaWxlIGluIHVzZS48d2JyLz48L3A+Cis8cD5UaGUgaW50ZXJwcmV0YXRpb24gYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIHNjZW5lIG1vZGVzIGlzIGxlZnQKK3RvIHRoZSBpbXBsZW1lbnRvciBvZiB0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVGhlaXIgYmVoYXZpb3Igd2lsbCBub3QgYmUKK2NvbnNpc3RlbnQgYWNyb3NzIGFsbCBkZXZpY2VzLDx3YnIvPiBhbmQgYW55IGdpdmVuIGRldmljZSBtYXkgb25seSBpbXBsZW1lbnQKK2Egc3Vic2V0IG9mIHRoZXNlIG1vZGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIGltcGxlbWVudGF0aW9ucyB0aGF0IGluY2x1ZGUgc2NlbmUgbW9kZXMgYXJlIGV4cGVjdGVkIHRvIHByb3ZpZGUKK3RoZSBwZXItc2NlbmUgc2V0dGluZ3MgdG8gdXNlIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPHdici8+T3ZlcnJpZGVzPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgSElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTyBtb2RlLDx3YnIvPiBpZiBpdCBpcyBpbmNsdWRlZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT4sPHdici8+Cit0aGUgSEFMIG11c3QgbGlzdCBzdXBwb3J0ZWQgdmlkZW8gc2l6ZSBhbmQgZnBzIHJhbmdlIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+IEZvciBhIGdpdmVuIHNpemUsPHdici8+IGUuPHdici8+Zy48d2JyLz4KKzEyODB4NzIwLDx3YnIvPiBpZiB0aGUgSEFMIGhhcyB0d28gZGlmZmVyZW50IHNlbnNvciBjb25maWd1cmF0aW9ucyBmb3Igbm9ybWFsIHN0cmVhbWluZworbW9kZSBhbmQgaGlnaCBzcGVlZCBzdHJlYW1pbmcsPHdici8+IHdoZW4gdGhpcyBzY2VuZSBtb2RlIGlzIHNldC88d2JyLz5yZXNldCBpbiBhIHNlcXVlbmNlIG9mIGNhcHR1cmUKK3JlcXVlc3RzLDx3YnIvPiB0aGUgSEFMIG1heSBoYXZlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpZmZlcmVudCBzZW5zb3IgbW9kZXMuPHdici8+CitUaGlzIG1vZGUgaXMgZGVwcmVjYXRlZCBpbiBIQUwzLjx3YnIvPjMsPHdici8+IHRvIHN1cHBvcnQgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcsPHdici8+IHBsZWFzZSBpbXBsZW1lbnQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiBhbmQgQ09OU1RSQUlORURfPHdici8+SElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTworY2FwYmlsaXR5IGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBkaXNhYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdmlkZW8gc3RhYmlsaXphdGlvbiBpcworYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VmlkZW8gc3RhYmlsaXphdGlvbiBhdXRvbWF0aWNhbGx5IHdhcnBzIGltYWdlcyBmcm9tCit0aGUgY2FtZXJhIGluIG9yZGVyIHRvIHN0YWJpbGl6ZSBtb3Rpb24gYmV0d2VlbiBjb25zZWN1dGl2ZSBmcmFtZXMuPHdici8+PC9wPgorPHA+SWYgZW5hYmxlZCw8d2JyLz4gdmlkZW8gc3RhYmlsaXphdGlvbiBjYW4gbW9kaWZ5IHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHRvIGtlZXAgdGhlIHZpZGVvIHN0cmVhbSBzdGFiaWxpemVkLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlCitpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4KK3RoZSB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIGluIHRoZSBmaXJzdCBzZXZlcmFsIGNhcHR1cmUgcmVzdWx0cyBtYXkKK3N0aWxsIGJlICJPRkYiLDx3YnIvPiBhbmQgaXQgd2lsbCBiZWNvbWUgIk9OIiB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcworZG9uZS48d2JyLz48L3A+Cis8cD5JbiBhZGRpdGlvbiw8d2JyLz4gbm90IGFsbCByZWNvcmRpbmcgc2l6ZXMgb3IgZnJhbWUgcmF0ZXMgbWF5IGJlIHN1cHBvcnRlZCBmb3IKK3N0YWJpbGl6YXRpb24gYnkgYSBkZXZpY2UgdGhhdCByZXBvcnRzIHN0YWJpbGl6YXRpb24gc3VwcG9ydC48d2JyLz4gSXQgaXMgZ3VhcmFudGVlZAordGhhdCBhbiBvdXRwdXQgdGFyZ2V0aW5nIGEgTWVkaWFSZWNvcmRlciBvciBNZWRpYUNvZGVjIHdpbGwgYmUgc3RhYmlsaXplZCBpZgordGhlIHJlY29yZGluZyByZXNvbHV0aW9uIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxOTIwIHggMTA4MCAod2lkdGggbGVzcyB0aGFuCitvciBlcXVhbCB0byAxOTIwLDx3YnIvPiBoZWlnaHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwODApLDx3YnIvPiBhbmQgdGhlIHJlY29yZGluZworZnJhbWUgcmF0ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzBmcHMuPHdici8+ICBBdCBvdGhlciBzaXplcyw8d2JyLz4gdGhlIENhcHR1cmVSZXN1bHQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+IGZpZWxkIHdpbGwgcmV0dXJuCitPRkYgaWYgdGhlIHJlY29yZGluZyBvdXRwdXQgaXMgbm90IHN0YWJpbGl6ZWQsPHdici8+IG9yIGlmIHRoZXJlIGFyZSBubyBvdXRwdXQKK1N1cmZhY2UgdHlwZXMgdGhhdCBjYW4gYmUgc3RhYmlsaXplZC48d2JyLz48L3A+Cis8cD5JZiBhIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYm90aCB0aGlzIG1vZGUgYW5kIE9JUworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkKK3Byb2R1Y2UgdW5kZXNpcmFibGUgaW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUKK2JvdGggYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3QKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2YgYWRkaXRpb25hbCBzZW5zaXRpdml0eSBib29zdCBhcHBsaWVkIHRvIG91dHB1dCBpbWFnZXMKK2FmdGVyIFJBVyBzZW5zb3IgZGF0YSBpcyBjYXB0dXJlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgSVNPIGFyaXRobWV0aWMgdW5pdHMsPHdici8+IHRoZSBzYW1lIGFzIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnBvc3Q8d2JyLz5SYXc8d2JyLz5TZW5zaXRpdml0eTx3YnIvPkJvb3N0PHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Tb21lIGNhbWVyYSBkZXZpY2VzIHN1cHBvcnQgYWRkaXRpb25hbCBkaWdpdGFsIHNlbnNpdGl2aXR5IGJvb3N0aW5nIGluIHRoZQorY2FtZXJhIHByb2Nlc3NpbmcgcGlwZWxpbmUgYWZ0ZXIgc2Vuc29yIFJBVyBpbWFnZSBpcyBjYXB0dXJlZC48d2JyLz4KK1N1Y2ggYSBib29zdCB3aWxsIGJlIGFwcGxpZWQgdG8gWVVWLzx3YnIvPkpQRUcgZm9ybWF0IG91dHB1dCBpbWFnZXMgYnV0IHdpbGwgbm90CitoYXZlIGVmZmVjdCBvbiBSQVcgb3V0cHV0IGZvcm1hdHMgbGlrZSBSQVdfPHdici8+U0VOU09SLDx3YnIvPiBSQVcxMCw8d2JyLz4gUkFXMTIgb3IgUkFXXzx3YnIvPk9QQVFVRS48d2JyLz48L3A+Cis8cD5UaGlzIGtleSB3aWxsIGJlIDxjb2RlPm51bGw8L2NvZGU+IGZvciBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgYW55IFJBVyBmb3JtYXQKK291dHB1dHMuPHdici8+IEZvciBkZXZpY2VzIHRoYXQgZG8gc3VwcG9ydCBSQVcgZm9ybWF0IG91dHB1dHMsPHdici8+IHRoaXMga2V5IHdpbGwgYWx3YXlzCitwcmVzZW50LDx3YnIvPiBhbmQgaWYgYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCw8d2JyLz4gaXQgd2lsbAorbGlzdCA8Y29kZT4xMDA8L2NvZGU+IGluIHRoaXMga2V5Ljx3YnIvPjwvcD4KKzxwPklmIHRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBhcHBseSB0aGUgZXhhY3QgYm9vc3QgcmVxdWVzdGVkLDx3YnIvPiBpdCB3aWxsIHJlZHVjZSB0aGUKK2Jvb3N0IHRvIHRoZSBuZWFyZXN0IHN1cHBvcnRlZCB2YWx1ZS48d2JyLz4KK1RoZSBmaW5hbCBib29zdCB2YWx1ZSB1c2VkIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBvdXRwdXQgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+Rm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0LDx3YnIvPiB0aGUgWVVWLzx3YnIvPkpQRUcgb3V0cHV0IGltYWdlcworb2Ygc3VjaCBkZXZpY2Ugd2lsbCBoYXZlIHRoZSB0b3RhbCBzZW5zaXRpdml0eSBvZgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4gKiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8L2E+IC88d2JyLz4gMTAwPC9jb2RlPgorVGhlIHNlbnNpdGl2aXR5IG9mIFJBVyBmb3JtYXQgaW1hZ2VzIHdpbGwgYWx3YXlzIGJlIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+PC9jb2RlPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhdXRvLWV4cG9zdXJlIGFudGliYW5kaW5nIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlCitzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIG9mIHRoZSBhdXRvLWV4cG9zdXJlIGFudGktYmFuZGluZyBtb2RlcyBtYXkgYmUKK3N1cHBvcnRlZCBieSBhIGdpdmVuIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoaXMgZmllbGQgbGlzdHMgdGhlCit2YWxpZCBhbnRpLWJhbmRpbmcgbW9kZXMgdGhhdCB0aGUgYXBwbGljYXRpb24gbWF5IHJlcXVlc3QKK2ZvciB0aGlzIGNhbWVyYSBkZXZpY2Ugd2l0aCB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZTwvYT4gY29udHJvbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGF1dG8tZXhwb3N1cmUgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIHRoZSBhdXRvLWV4cG9zdXJlIG1vZGVzIG1heSBiZSBzdXBwb3J0ZWQgYnkgYQorZ2l2ZW4gY2FtZXJhIGRldmljZSw8d2JyLz4gZXNwZWNpYWxseSBpZiBubyBmbGFzaCB1bml0IGlzCithdmFpbGFibGUuPHdici8+IFRoaXMgZW50cnkgbGlzdHMgdGhlIHZhbGlkIG1vZGVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHN1cHBvcnQgT04sPHdici8+IGFuZCBhbGwgY2FtZXJhIGRldmljZXMgd2l0aCBmbGFzaAordW5pdHMgc3VwcG9ydCBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIIGFuZCBPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0guPHdici8+PC9wPgorPHA+RlVMTCBtb2RlIGNhbWVyYSBkZXZpY2VzIGFsd2F5cyBzdXBwb3J0IE9GRiBtb2RlLDx3YnIvPgord2hpY2ggZW5hYmxlcyBhcHBsaWNhdGlvbiBjb250cm9sIG9mIGNhbWVyYSBleHBvc3VyZSB0aW1lLDx3YnIvPgorc2Vuc2l0aXZpdHksPHdici8+IGFuZCBmcmFtZSBkdXJhdGlvbi48d2JyLz48L3A+Cis8cD5MRUdBQ1kgbW9kZSBjYW1lcmEgZGV2aWNlcyBuZXZlciBzdXBwb3J0IE9GRiBtb2RlLjx3YnIvPgorTElNSVRFRCBtb2RlIGRldmljZXMgc3VwcG9ydCBPRkYgaWYgdGhleSBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+U0VOU09SCitjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgcGFpcnMgb2YgZnJhbWUgcmF0ZXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGZyYW1lIHJhdGUgcmFuZ2VzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPiBzdXBwb3J0ZWQgYnkKK3RoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRnJhbWVzIHBlciBzZWNvbmQgKEZQUykKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBkZXZpY2VzIGF0IHRoZSBMRUdBQ1kgbGV2ZWwgb3IgYWJvdmU6PC9wPgorPHVsPgorPGxpPgorPHA+Rm9yIGNvbnN0YW50LWZyYW1lcmF0ZSByZWNvcmRpbmcsPHdici8+IGZvciBlYWNoIG5vcm1hbAorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiw8d2JyLz4gdGhhdCBpcyw8d2JyLz4gYQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiB0aGF0IGhhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI3F1YWxpdHkiPnF1YWxpdHk8L2E+IGluCit0aGUgcmFuZ2UgWzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0NhbWNvcmRlclByb2ZpbGUuaHRtbCNRVUFMSVRZX0xPVyI+UVVBTElUWV88d2JyLz5MT1c8L2E+LDx3YnIvPgorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI1FVQUxJVFlfMjE2MFAiPlFVQUxJVFlfPHdici8+MjE2MFA8L2E+XSw8d2JyLz4gaWYgdGhlIHByb2ZpbGUgaXMKK3N1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGFuZCBoYXMKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0NhbWNvcmRlclByb2ZpbGUuaHRtbCN2aWRlb0ZyYW1lUmF0ZSI+dmlkZW9GcmFtZVJhdGU8L2E+IDxjb2RlPng8L2NvZGU+LDx3YnIvPiB0aGlzIGxpc3Qgd2lsbAorYWx3YXlzIGluY2x1ZGUgKDxjb2RlPng8L2NvZGU+LDx3YnIvPjxjb2RlPng8L2NvZGU+KS48d2JyLz48L3A+Cis8L2xpPgorPGxpPgorPHA+QWxzbyw8d2JyLz4gYSBjYW1lcmEgZGV2aWNlIG11c3QgZWl0aGVyIG5vdCBzdXBwb3J0IGFueQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiw8d2JyLz4KK29yIHN1cHBvcnQgYXQgbGVhc3Qgb25lCitub3JtYWwgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sIj5DYW1jb3JkZXJQcm9maWxlPC9hPiB0aGF0IGhhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI3ZpZGVvRnJhbWVSYXRlIj52aWRlb0ZyYW1lUmF0ZTwvYT4gPGNvZGU+eDwvY29kZT4gJmd0Oz0gMjQuPHdici8+PC9wPgorPC9saT4KKzwvdWw+Cis8cD5Gb3IgZGV2aWNlcyBhdCB0aGUgTElNSVRFRCBsZXZlbCBvciBhYm92ZTo8L3A+Cis8dWw+Cis8bGk+Rm9yIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGJ1cnN0IGNhcHR1cmUgdXNlIGNhc2UsPHdici8+IHRoaXMgbGlzdCB3aWxsIGFsd2F5cyBpbmNsdWRlICg8Y29kZT5taW48L2NvZGU+LDx3YnIvPiA8Y29kZT5tYXg8L2NvZGU+KQorYW5kICg8Y29kZT5tYXg8L2NvZGU+LDx3YnIvPiA8Y29kZT5tYXg8L2NvZGU+KSB3aGVyZSA8Y29kZT5taW48L2NvZGU+ICZsdDs9IDE1IGFuZCA8Y29kZT5tYXg8L2NvZGU+ID0gdGhlIG1heGltdW0gb3V0cHV0IGZyYW1lIHJhdGUgb2YgdGhlCittYXhpbXVtIFlVVl88d2JyLz40MjBfPHdici8+ODg4IG91dHB1dCBzaXplLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJhbmdlSW50XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBhbmQgbWluaW11bSBleHBvc3VyZSBjb21wZW5zYXRpb24gdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4sPHdici8+IGluIGNvdW50cyBvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+LDx3YnIvPgordGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5SYW5nZSBbMCw8d2JyLz4wXSBpbmRpY2F0ZXMgdGhhdCBleHBvc3VyZSBjb21wZW5zYXRpb24gaXMgbm90IHN1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5Gb3IgTElNSVRFRCBhbmQgRlVMTCBkZXZpY2VzLDx3YnIvPiByYW5nZSBtdXN0IGZvbGxvdyBiZWxvdyByZXF1aXJlbWVudHMgaWYgZXhwb3N1cmUKK2NvbXBlbnNhdGlvbiBpcyBzdXBwb3J0ZWQgKDxjb2RlPnJhbmdlICE9IFswLDx3YnIvPiAwXTwvY29kZT4pOjwvcD4KKzxwPjxjb2RlPk1pbi48d2JyLz5leHBvc3VyZSBjb21wZW5zYXRpb24gKiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+ICZsdDs9IC0yIEVWPC9jb2RlPjwvcD4KKzxwPjxjb2RlPk1heC48d2JyLz5leHBvc3VyZSBjb21wZW5zYXRpb24gKiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+ICZndDs9IDIgRVY8L2NvZGU+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgbWF5IHN1cHBvcnQgYSBzbWFsbGVyIHJhbmdlIHRoYW4gdGhpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+U3RlcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TbWFsbGVzdCBzdGVwIGJ5IHdoaWNoIHRoZSBleHBvc3VyZSBjb21wZW5zYXRpb24KK2NhbiBiZSBjaGFuZ2VkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBFeHBvc3VyZSBWYWx1ZSAoRVYpCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSB1bml0IGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPi48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoaXMga2V5IGhhcworYSB2YWx1ZSBvZiA8Y29kZT4xLzx3YnIvPjI8L2NvZGU+LDx3YnIvPiB0aGVuIGEgc2V0dGluZyBvZiA8Y29kZT4tMjwvY29kZT4gZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+IG1lYW5zCit0aGF0IHRoZSB0YXJnZXQgRVYgb2Zmc2V0IGZvciB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lIGlzIC0xIEVWLjx3YnIvPjwvcD4KKzxwPk9uZSB1bml0IG9mIEVWIGNvbXBlbnNhdGlvbiBjaGFuZ2VzIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBjYXB0dXJlZCBpbWFnZSBieSBhIGZhY3Rvcgorb2YgdHdvLjx3YnIvPiArMSBFViBkb3VibGVzIHRoZSBpbWFnZSBicmlnaHRuZXNzLDx3YnIvPiB3aGlsZSAtMSBFViBoYWx2ZXMgdGhlIGltYWdlIGJyaWdodG5lc3MuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEvPHdici8+Mi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5MaXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhdXRvLWZvY3VzIChBRikgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIHRoZSBhdXRvLWZvY3VzIG1vZGVzIG1heSBiZSBzdXBwb3J0ZWQgYnkgYQorZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz4gVGhpcyBlbnRyeSBsaXN0cyB0aGUgdmFsaWQgbW9kZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BbGwgTElNSVRFRCBhbmQgRlVMTCBtb2RlIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBPRkYgbW9kZSw8d2JyLz4gYW5kIGFsbAorY2FtZXJhIGRldmljZXMgd2l0aCBhZGp1c3RhYmxlIGZvY3VzZXIgdW5pdHMKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gJmd0OyAwPC9jb2RlPikgd2lsbCBzdXBwb3J0IEFVVE8gbW9kZS48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyB3aWxsIHN1cHBvcnQgT0ZGIG1vZGUgb25seSBpZiB0aGV5IHN1cHBvcnQKK2ZvY3VzaW5nIHRvIGluZmluaXR5IChieSBhbHNvIHNldHRpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gdG8KKzxjb2RlPjAuPHdici8+MGY8L2NvZGU+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+RWZmZWN0cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMgKGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5lZmZlY3Q8d2JyLz5Nb2RlKS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGNvbG9yIGVmZmVjdHMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0IGNvbnRhaW5zIHRoZSBjb2xvciBlZmZlY3QgbW9kZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0bworaW1hZ2VzIHByb2R1Y2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPgorSW1wbGVtZW50YXRpb25zIGFyZSBub3QgZXhwZWN0ZWQgdG8gYmUgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGRldmljZXMuPHdici8+CitJZiBubyBjb2xvciBlZmZlY3QgbW9kZXMgYXJlIGF2YWlsYWJsZSBmb3IgYSBkZXZpY2UsPHdici8+IHRoaXMgd2lsbCBvbmx5IGxpc3QKK09GRi48d2JyLz48L3A+Cis8cD5BIGNvbG9yIGVmZmVjdCB3aWxsIG9ubHkgYmUgYXBwbGllZCBpZgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gIT0gT0ZGLjx3YnIvPiAgT0ZGIGlzIGFsd2F5cyBpbmNsdWRlZCBpbiB0aGlzIGxpc3QuPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGhhcyBubyBlZmZlY3Qgb24gdGhlIG9wZXJhdGlvbiBvZiBvdGhlciBjb250cm9sIHJvdXRpbmVzIHN1Y2gKK2FzIGF1dG8tZXhwb3N1cmUsPHdici8+IHdoaXRlIGJhbGFuY2UsPHdici8+IG9yIGZvY3VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcyAoYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZSkuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBzY2VuZSBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdCBjb250YWlucyBzY2VuZSBtb2RlcyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPgorT25seSBzY2VuZSBtb2RlcyB0aGF0IGhhdmUgYmVlbiBmdWxseSBpbXBsZW1lbnRlZCBmb3IgdGhlCitjYW1lcmEgZGV2aWNlIG1heSBiZSBpbmNsdWRlZCBoZXJlLjx3YnIvPiBJbXBsZW1lbnRhdGlvbnMgYXJlIG5vdCBleHBlY3RlZAordG8gYmUgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGRldmljZXMuPHdici8+PC9wPgorPHA+SWYgbm8gc2NlbmUgbW9kZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gdGhpcword2lsbCBiZSBzZXQgdG8gRElTQUJMRUQuPHdici8+IE90aGVyd2lzZSBESVNBQkxFRCB3aWxsIG5vdCBiZSBsaXN0ZWQuPHdici8+PC9wPgorPHA+RkFDRV88d2JyLz5QUklPUklUWSBpcyBhbHdheXMgbGlzdGVkIGlmIGZhY2UgZGV0ZWN0aW9uIGlzCitzdXBwb3J0ZWQgKGkuPHdici8+ZS48d2JyLz48Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RmFjZTx3YnIvPkNvdW50PC9hPiAmZ3Q7CiswPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVZpZGVvU3RhYmlsaXphdGlvbk1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5WaWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPgordGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9GRiB3aWxsIGFsd2F5cyBiZSBsaXN0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGF1dG8td2hpdGUtYmFsYW5jZSBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYWxsIHRoZSBhdXRvLXdoaXRlLWJhbGFuY2UgbW9kZXMgbWF5IGJlIHN1cHBvcnRlZCBieSBhCitnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGlzIGVudHJ5IGxpc3RzIHRoZSB2YWxpZCBtb2RlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBPTiBtb2RlLjx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzIHN1cHBvcnQgT0ZGCittb2RlLDx3YnIvPiB3aGljaCBlbmFibGVzIGFwcGxpY2F0aW9uIGNvbnRyb2wgb2Ygd2hpdGUgYmFsYW5jZSw8d2JyLz4gYnkgdXNpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+KDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBtdXN0IGJlIHNldCB0byBUUkFOU0ZPUk1fPHdici8+TUFUUklYKS48d2JyLz4gVGhpcyBpbmNsdWRlcyBhbGwgRlVMTAorbW9kZSBjYW1lcmEgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyB0aGF0IGNhbiBiZSB1c2VkIGZvciBtZXRlcmluZyBpbgorYXV0by1leHBvc3VyZSAoQUUpLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQiksPHdici8+IGFuZCBhdXRvLWZvY3VzIChBRik7Cit0aGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT4sPHdici8+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlIG11c3QgYmUgJmd0Oz0gMCBmb3IgZWFjaCBlbGVtZW50Ljx3YnIvPiBGb3IgZnVsbC1jYXBhYmlsaXR5IGRldmljZXMKK3RoaXMgdmFsdWUgbXVzdCBiZSAmZ3Q7PSAxIGZvciBBRSBhbmQgQUYuPHdici8+IFRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMgaXM6Cis8Y29kZT4oQUUsPHdici8+IEFXQiw8d2JyLz4gQUYpPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgbWV0ZXJpbmcgcmVnaW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBhdXRvLWV4cG9zdXJlIChBRSkKK3JvdXRpbmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+VmFsdWUgd2lsbCBiZSAmZ3Q7PSAwLjx3YnIvPiBGb3IgRlVMTC1jYXBhYmlsaXR5IGRldmljZXMsPHdici8+IHRoaXMKK3ZhbHVlIHdpbGwgYmUgJmd0Oz0gMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIGVsZW1lbnRzIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGlzIHByaXZhdGUgdG8gdGhlIGZyYW1ld29yay48d2JyLz4gRmlsbCBpbgorbWF4UmVnaW9ucyB0byBoYXZlIHRoaXMgZW50cnkgYmUgYXV0b21hdGljYWxseSBwb3B1bGF0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QXdiCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZyByZWdpb25zIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKQorcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5WYWx1ZSB3aWxsIGJlICZndDs9IDAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBlbGVtZW50cyBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGlzIHByaXZhdGUgdG8gdGhlIGZyYW1ld29yay48d2JyLz4gRmlsbCBpbgorbWF4UmVnaW9ucyB0byBoYXZlIHRoaXMgZW50cnkgYmUgYXV0b21hdGljYWxseSBwb3B1bGF0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWYiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgbWV0ZXJpbmcgcmVnaW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBhdXRvLWZvY3VzIChBRikgcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5WYWx1ZSB3aWxsIGJlICZndDs9IDAuPHdici8+IEZvciBGVUxMLWNhcGFiaWxpdHkgZGV2aWNlcyw8d2JyLz4gdGhpcwordmFsdWUgd2lsbCBiZSAmZ3Q7PSAxLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb3JyZXNwb25kcyB0byB0aGUgdGhlIG1heGltdW0gYWxsb3dlZCBudW1iZXIgb2YgZWxlbWVudHMgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgcHJpdmF0ZSB0byB0aGUgZnJhbWV3b3JrLjx3YnIvPiBGaWxsIGluCittYXhSZWdpb25zIHRvIGhhdmUgdGhpcyBlbnRyeSBiZSBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPHdici8+T3ZlcnJpZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCBsZW5ndGgoYXZhaWxhYmxlU2NlbmVNb2RlcykKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9yZGVyZWQgbGlzdCBvZiBhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UsPHdici8+IGFuZCBhdXRvLWZvY3VzCitzZXR0aW5ncyB0byB1c2Ugd2l0aCBlYWNoIGF2YWlsYWJsZSBzY2VuZSBtb2RlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkZvciBlYWNoIGF2YWlsYWJsZSBzY2VuZSBtb2RlLDx3YnIvPiB0aGUgbGlzdCBtdXN0IGNvbnRhaW4gdGhyZWUKK2VudHJpZXMgY29udGFpbmluZyB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gdmFsdWVzIHVzZWQKK2J5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGUgZW50cnkgb3JkZXIgaXMgPGNvZGU+KGFlTW9kZSw8d2JyLz4gYXdiTW9kZSw8d2JyLz4gYWZNb2RlKTwvY29kZT4KK3doZXJlIGFlTW9kZSBoYXMgdGhlIGxvd2VzdCBpbmRleCBwb3NpdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhIHNjZW5lIG1vZGUgaXMgZW5hYmxlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgaXMgZXhwZWN0ZWQKK3RvIG92ZXJyaWRlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IHdpdGggaXRzIHByZWZlcnJlZCBzZXR0aW5ncyBmb3IKK3RoYXQgc2NlbmUgbW9kZS48d2JyLz48L3A+Cis8cD5UaGUgb3JkZXIgb2YgdGhpcyBsaXN0IG1hdGNoZXMgdGhhdCBvZiBhdmFpbGFibGVTY2VuZU1vZGVzLDx3YnIvPgord2l0aCAzIGVudHJpZXMgZm9yIGVhY2ggbW9kZS48d2JyLz4gIFRoZSBvdmVycmlkZXMgbGlzdGVkCitmb3IgRkFDRV88d2JyLz5QUklPUklUWSBhbmQgRkFDRV88d2JyLz5QUklPUklUWV88d2JyLz5MT1dfPHdici8+TElHSFQgKGlmIHN1cHBvcnRlZCkgYXJlIGlnbm9yZWQsPHdici8+CitzaW5jZSBmb3IgdGhhdCBtb2RlIHRoZSBhcHBsaWNhdGlvbi1zZXQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gdmFsdWVzIGFyZQordXNlZCBpbnN0ZWFkLDx3YnIvPiBtYXRjaGluZyB0aGUgYmVoYXZpb3Igd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPgoraXMgc2V0IHRvIEFVVE8uPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIEZBQ0VfPHdici8+UFJJT1JJVFkgYW5kCitGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCAoaWYgc3VwcG9ydGVkKSBvdmVycmlkZXMgc2hvdWxkIGJlIHNldCB0byAwLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBhdmFpbGFibGVTY2VuZU1vZGVzIGNvbnRhaW5zCis8Y29kZT4oRkFDRV88d2JyLz5QUklPUklUWSw8d2JyLz4gQUNUSU9OLDx3YnIvPiBOSUdIVCk8L2NvZGU+LDx3YnIvPiAgdGhlbiB0aGUgY2FtZXJhIGZyYW1ld29yaworZXhwZWN0cyBzY2VuZU1vZGVPdmVycmlkZXMgdG8gaGF2ZSA5IGVudHJpZXMgZm9ybWF0dGVkIGxpa2U6Cis8Y29kZT4oMCw8d2JyLz4gMCw8d2JyLz4gMCw8d2JyLz4gT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4gQVVUTyw8d2JyLz4gQ09OVElOVU9VU188d2JyLz5QSUNUVVJFLDx3YnIvPgorT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4gSU5DQU5ERVNDRU5ULDx3YnIvPiBBVVRPKTwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UbyBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LDx3YnIvPiB0aGlzIGxpc3Qgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZQoraW4gdGhlIHN0YXRpYyBtZXRhZGF0YSBvZiB0aGUgY2FtZXJhIHNlcnZpY2UuPHdici8+ICBUaGUgY2FtZXJhIHNlcnZpY2Ugd2lsbAordXNlIHRoZXNlIHZhbHVlcyB0byBzZXQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gd2hlbiB1c2luZyBhIHNjZW5lCittb2RlIG90aGVyIHRoYW4gRkFDRV88d2JyLz5QUklPUklUWSBhbmQgRkFDRV88d2JyLz5QUklPUklUWV88d2JyLz5MT1dfPHdici8+TElHSFQgKGlmIHN1cHBvcnRlZCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgaGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgYXZhaWxhYmxlIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZSw8d2JyLz4gZnBzIHJhbmdlIGFuZCBtYXggYmF0Y2ggc2l6ZSBjb25maWd1cmF0aW9ucworc3VwcG9ydGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBpbiB0aGUgZm9ybWF0IG9mICh3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBmcHNfPHdici8+bWluLDx3YnIvPiBmcHNfPHdici8+bWF4LDx3YnIvPiBiYXRjaF88d2JyLz5zaXplXzx3YnIvPm1heCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIGVhY2ggY29uZmlndXJhdGlvbiw8d2JyLz4gdGhlIGZwc188d2JyLz5tYXggJmd0Oz0gMTIwZnBzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIENPTlNUUkFJTkVEXzx3YnIvPkhJR0hfPHdici8+U1BFRURfPHdici8+VklERU8gaXMgc3VwcG9ydGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4sPHdici8+Cit0aGlzIG1ldGFkYXRhIHdpbGwgbGlzdCB0aGUgc3VwcG9ydGVkIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZSw8d2JyLz4gZnBzIHJhbmdlIGFuZCBtYXggYmF0Y2ggc2l6ZQorY29uZmlndXJhdGlvbnMuPHdici8+IEFsbCB0aGUgc2l6ZXMgbGlzdGVkIGluIHRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGJlIGEgc3Vic2V0IG9mIHRoZSBzaXplcworcmVwb3J0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFNpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFNpemVzPC9hPgorZm9yIHByb2Nlc3NlZCBub24tc3RhbGxpbmcgZm9ybWF0cy48d2JyLz48L3A+Cis8cD5Gb3IgdGhlIGhpZ2ggc3BlZWQgdmlkZW8gdXNlIGNhc2UsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtdXN0CitzZWxlY3QgdGhlIHZpZGVvIHNpemUgYW5kIGZwcyByYW5nZSBmcm9tIHRoaXMgbWV0YWRhdGEgdG8gY29uZmlndXJlIHRoZSByZWNvcmRpbmcgYW5kCitwcmV2aWV3IHN0cmVhbXMgYW5kIHNldHVwIHRoZSByZWNvcmRpbmcgcmVxdWVzdHMuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgYXBwbGljYXRpb24gaW50ZW5kcwordG8gZG8gaGlnaCBzcGVlZCByZWNvcmRpbmcsPHdici8+IGl0IGNhbiBzZWxlY3QgdGhlIG1heGltdW0gc2l6ZSByZXBvcnRlZCBieSB0aGlzIG1ldGFkYXRhIHRvCitjb25maWd1cmUgb3V0cHV0IHN0cmVhbXMuPHdici8+IE9uY2UgdGhlIHNpemUgaXMgc2VsZWN0ZWQsPHdici8+IGFwcGxpY2F0aW9uIGNhbiBmaWx0ZXIgdGhpcyBtZXRhZGF0YQorYnkgc2VsZWN0ZWQgc2l6ZSBhbmQgZ2V0IHRoZSBzdXBwb3J0ZWQgZnBzIHJhbmdlcyw8d2JyLz4gYW5kIHVzZSB0aGVzZSBmcHMgcmFuZ2VzIHRvIHNldHVwIHRoZQorcmVjb3JkaW5nIHJlcXVlc3RzLjx3YnIvPiBOb3RlIHRoYXQgZm9yIHRoZSB1c2UgY2FzZSBvZiBtdWx0aXBsZSBvdXRwdXQgc3RyZWFtcyw8d2JyLz4gYXBwbGljYXRpb24KK211c3Qgc2VsZWN0IG9uZSB1bmlxdWUgc2l6ZSBmcm9tIHRoaXMgbWV0YWRhdGEgdG8gdXNlIChlLjx3YnIvPmcuLDx3YnIvPiBwcmV2aWV3IGFuZCByZWNvcmRpbmcgc3RyZWFtcworbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUpLjx3YnIvPiBPdGhlcndpc2UsPHdici8+IHRoZSBoaWdoIHNwZWVkIGNhcHR1cmUgc2Vzc2lvbiBjcmVhdGlvbiB3aWxsIGZhaWwuPHdici8+PC9wPgorPHA+VGhlIG1pbiBhbmQgbWF4IGZwcyB3aWxsIGJlIG11bHRpcGxlIHRpbWVzIG9mIDMwZnBzLjx3YnIvPjwvcD4KKzxwPkhpZ2ggc3BlZWQgdmlkZW8gc3RyZWFtaW5nIGV4dGVuZHMgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcHJlc3N1ZSB0byBjYW1lcmEgaGFyZHdhcmUsPHdici8+Cit0byBhY2hpZXZlIGVmZmljaWVudCBoaWdoIHNwZWVkIHN0cmVhbWluZyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGhhdmUgdG8gYWdncmVnYXRlCittdWx0aXBsZSBmcmFtZXMgdG9nZXRoZXIgYW5kIHNlbmQgdG8gY2FtZXJhIGRldmljZSBmb3IgcHJvY2Vzc2luZyB3aGVyZSB0aGUgcmVxdWVzdAorY29udHJvbHMgYXJlIHNhbWUgZm9yIGFsbCB0aGUgZnJhbWVzIGluIHRoaXMgYmF0Y2guPHdici8+IE1heCBiYXRjaCBzaXplIGluZGljYXRlcwordGhlIG1heCBwb3NzaWJsZSBudW1iZXIgb2YgZnJhbWVzIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZ3JvdXAgdG9nZXRoZXIgZm9yIHRoaXMgaGlnaAorc3BlZWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24uPHdici8+IFRoaXMgbWF4IGJhdGNoIHNpemUgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgaGlnaCBzcGVlZAorcmVjb3JkaW5nIHJlcXVlc3QgbGlzdCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uLmh0bWwjY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3QiPkNhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24jY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3Q8L2E+Ljx3YnIvPgorVGhlIG1heCBiYXRjaCBzaXplIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24gd2lsbCBzYXRpc2Z5IGJlbG93IGNvbmRpdGlvbnM6PC9wPgorPHVsPgorPGxpPkVhY2ggbWF4IGJhdGNoIHNpemUgd2lsbCBiZSBhIGRpdmlzb3Igb2YgaXRzIGNvcnJlc3BvbmRpbmcgZnBzXzx3YnIvPm1heCAvPHdici8+IDMwLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4KK2lmIG1heF88d2JyLz5mcHMgaXMgMzAwLDx3YnIvPiBtYXggYmF0Y2ggc2l6ZSB3aWxsIG9ubHkgYmUgMSw8d2JyLz4gMiw8d2JyLz4gNSw8d2JyLz4gb3IgMTAuPHdici8+PC9saT4KKzxsaT5UaGUgY2FtZXJhIGRldmljZSBtYXkgY2hvb3NlIHNtYWxsZXIgaW50ZXJuYWwgYmF0Y2ggc2l6ZSBmb3IgZWFjaCBjb25maWd1cmF0aW9uLDx3YnIvPiBidXQKK3RoZSBhY3R1YWwgYmF0Y2ggc2l6ZSB3aWxsIGJlIGEgZGl2aXNvciBvZiBtYXggYmF0Y2ggc2l6ZS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBtYXggYmF0Y2gKK3NpemUgaXMgOCw8d2JyLz4gdGhlIGFjdHVhbCBiYXRjaCBzaXplIHVzZWQgYnkgY2FtZXJhIGRldmljZSB3aWxsIG9ubHkgYmUgMSw8d2JyLz4gMiw8d2JyLz4gNCw8d2JyLz4gb3IgOC48d2JyLz48L2xpPgorPGxpPlRoZSBtYXggYmF0Y2ggc2l6ZSBpbiBlYWNoIGNvbmZpZ3VyYXRpb24gZW50cnkgbXVzdCBiZSBubyBsYXJnZXIgdGhhbiAzMi48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIGRvZXNuJ3QgaGF2ZSB0byBzdXBwb3J0IGJhdGNoIG1vZGUgdG8gYWNoaWV2ZSBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZyw8d2JyLz4KK2luIHN1Y2ggY2FzZSw8d2JyLz4gYmF0Y2hfPHdici8+c2l6ZV88d2JyLz5tYXggd2lsbCBiZSByZXBvcnRlZCBhcyAxIGluIGVhY2ggY29uZmlndXJhdGlvbiBlbnRyeS48d2JyLz48L3A+Cis8cD5UaGlzIGZwcyByYW5nZXMgaW4gdGhpcyBjb25maWd1cmF0aW9uIGxpc3QgY2FuIG9ubHkgYmUgdXNlZCB0byBjcmVhdGUgcmVxdWVzdHMKK3RoYXQgYXJlIHN1Ym1pdHRlZCB0byBhIGhpZ2ggc3BlZWQgY2FtZXJhIGNhcHR1cmUgc2Vzc2lvbiBjcmVhdGVkIGJ5Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPi48d2JyLz4KK1RoZSBmcHMgcmFuZ2VzIHJlcG9ydGVkIGluIHRoaXMgbWV0YWRhdGEgbXVzdCBub3QgYmUgdXNlZCB0byBzZXR1cCBjYXB0dXJlIHJlcXVlc3RzIGZvcgorbm9ybWFsIGNhcHR1cmUgc2Vzc2lvbiw8d2JyLz4gb3IgaXQgd2lsbCBjYXVzZSByZXF1ZXN0IGVycm9yLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIHRoZSBzaXplcyBsaXN0ZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uIHdpbGwgYmUgYSBzdWJzZXQgb2YgdGhlIHNpemVzIHJlcG9ydGVkIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4gZm9yIHByb2Nlc3NlZCBub24tc3RhbGxpbmcgb3V0cHV0IGZvcm1hdHMuPHdici8+CitOb3RlIHRoYXQgZm9yIGFsbCBoaWdoIHNwZWVkIHZpZGVvIGNvbmZpZ3VyYXRpb25zLDx3YnIvPiBIQUwgbXVzdCBiZSBhYmxlIHRvIHN1cHBvcnQgYSBtaW5pbXVtCitvZiB0d28gc3RyZWFtcyw8d2JyLz4gdGhvdWdoIHRoZSBhcHBsaWNhdGlvbiBtaWdodCBjaG9vc2UgdG8gY29uZmlndXJlIGp1c3Qgb25lIHN0cmVhbS48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG1heSBzdXBwb3J0IG11bHRpcGxlIHNlbnNvciBtb2RlcyBmb3IgaGlnaCBzcGVlZCBvdXRwdXRzLDx3YnIvPiBmb3IgZXhhbXBsZSw8d2JyLz4gMTIwZnBzCitzZW5zb3IgbW9kZSBhbmQgMTIwZnBzIHJlY29yZGluZyw8d2JyLz4gMjQwZnBzIHNlbnNvciBtb2RlIGZvciAyNDBmcHMgcmVjb3JkaW5nLjx3YnIvPiBUaGUgYXBwbGljYXRpb24KK3VzdWFsbHkgc3RhcnRzIHByZXZpZXcgZmlyc3QsPHdici8+IHRoZW4gc3RhcnRzIHJlY29yZGluZy48d2JyLz4gVG8gYXZvaWQgc2Vuc29yIG1vZGUgc3dpdGNoIGNhdXNlZAorc3R1dHRlciB3aGVuIHN0YXJ0aW5nIHJlY29yZGluZyBhcyBtdWNoIGFzIHBvc3NpYmxlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IHdhbnQgdG8gZW5zdXJlCit0aGUgc2FtZSBzZW5zb3IgbW9kZSBpcyB1c2VkIGZvciBwcmV2aWV3IGFuZCByZWNvcmRpbmcuPHdici8+IFRoZXJlZm9yZSw8d2JyLz4gVGhlIEhBTCBtdXN0IGFkdmVydGlzZQordGhlIHZhcmlhYmxlIGZwcyByYW5nZSBbMzAsPHdici8+IGZwc188d2JyLz5tYXhdIGZvciBlYWNoIGZpeGVkIGZwcyByYW5nZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gbGlzdC48d2JyLz4KK0ZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgSEFMIGFkdmVydGlzZXMgWzEyMCw8d2JyLz4gMTIwXSBhbmQgWzI0MCw8d2JyLz4gMjQwXSw8d2JyLz4gdGhlIEhBTCBtdXN0IGFsc28gYWR2ZXJ0aXNlCitbMzAsPHdici8+IDEyMF0gYW5kIFszMCw8d2JyLz4gMjQwXSBmb3IgZWFjaCBjb25maWd1cmF0aW9uLjx3YnIvPiBJbiBkb2luZyBzbyw8d2JyLz4gaWYgdGhlIGFwcGxpY2F0aW9uIGludGVuZHMgdG8KK2RvIDEyMGZwcyByZWNvcmRpbmcsPHdici8+IGl0IGNhbiBzZWxlY3QgWzMwLDx3YnIvPiAxMjBdIHRvIHN0YXJ0IHByZXZpZXcsPHdici8+IGFuZCBbMTIwLDx3YnIvPiAxMjBdIHRvIHN0YXJ0CityZWNvcmRpbmcuPHdici8+IEZvciB0aGVzZSB2YXJpYWJsZSBmcHMgcmFuZ2VzLDx3YnIvPiBpdCdzIHVwIHRvIHRoZSBIQUwgdG8gZGVjaWRlIHRoZSBhY3R1YWwgZnBzCit2YWx1ZXMgdGhhdCBhcmUgc3VpdGFibGUgZm9yIHNtb290aCBwcmV2aWV3IHN0cmVhbWluZy48d2JyLz4gSWYgdGhlIEhBTCBzZWVzIGRpZmZlcmVudCBtYXhfPHdici8+ZnBzCit2YWx1ZXMgdGhhdCBmYWxsIGludG8gZGlmZmVyZW50IHNlbnNvciBtb2RlcyBpbiBhIHNlcXVlbmNlIG9mIHJlcXVlc3RzLDx3YnIvPiB0aGUgSEFMIG11c3QKK3N3aXRjaCB0aGUgc2Vuc29yIG1vZGUgYXMgcXVpY2sgYXMgcG9zc2libGUgdG8gbWluaW1pemUgdGhlIG1vZGUgc3dpdGNoIGNhdXNlZCBzdHV0dGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrQXZhaWxhYmxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8d2JyLz5BdmFpbGFibGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGV2aWNlcyB3aXRoIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBvciBCVVJTVF88d2JyLz5DQVBUVVJFIGNhcGFiaWxpdHkgd2lsbCBhbHdheXMKK2xpc3QgPGNvZGU+dHJ1ZTwvY29kZT4uPHdici8+IFRoaXMgaW5jbHVkZXMgRlVMTCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPHdici8+QXZhaWxhYmxlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUxTRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGV2aWNlcyB3aXRoIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSBvciBCVVJTVF88d2JyLz5DQVBUVVJFIGNhcGFiaWxpdHkgd2lsbAorYWx3YXlzIGxpc3QgPGNvZGU+dHJ1ZTwvY29kZT4uPHdici8+IFRoaXMgaW5jbHVkZXMgRlVMTCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5MaXN0IG9mIGVudW1zIChhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZSkuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBjb250cm9sIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3QgY29udGFpbnMgY29udHJvbCBtb2RlcyB0aGF0IGNhbiBiZSBzZXQgZm9yIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPgorTEVHQUNZIG1vZGUgZGV2aWNlcyB3aWxsIGFsd2F5cyBzdXBwb3J0IEFVVE8gbW9kZS48d2JyLz4gTElNSVRFRCBhbmQgRlVMTAorZGV2aWNlcyB3aWxsIGFsd2F5cyBzdXBwb3J0IE9GRiw8d2JyLz4gQVVUTyBtb2Rlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+UmFuZ2Ugb2Ygc3VwcG9ydGVkIHBvc3QgUkFXIHNlbnNpdGl2aXRpeSBib29zdHM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SYW5nZSBvZiBib29zdHMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4gc3VwcG9ydGVkCitieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIElTTyBhcml0aG1ldGljIHVuaXRzLDx3YnIvPiB0aGUgc2FtZSBhcyBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkRldmljZXMgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCAgd2lsbCBhZHZlcnRpc2UKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4ga2V5IGZvciBjb250cm9saW5nCitwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdC48d2JyLz48L3A+Cis8cD5UaGlzIGtleSB3aWxsIGJlIDxjb2RlPm51bGw8L2NvZGU+IGZvciBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgYW55IFJBVyBmb3JtYXQKK291dHB1dHMuPHdici8+IEZvciBkZXZpY2VzIHRoYXQgZG8gc3VwcG9ydCBSQVcgZm9ybWF0IG91dHB1dHMsPHdici8+IHRoaXMga2V5IHdpbGwgYWx3YXlzCitwcmVzZW50LDx3YnIvPiBhbmQgaWYgYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCw8d2JyLz4gaXQgd2lsbAorbGlzdCA8Y29kZT4oMTAwLDx3YnIvPiAxMDApPC9jb2RlPiBpbiB0aGlzIGtleS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMga2V5IGlzIGFkZGVkIGluIEhBTDMuPHdici8+NC48d2JyLz4gRm9yIEhBTDMuPHdici8+MyBvciBlYXJsaWVyIGRldmljZXMsPHdici8+IGNhbWVyYSBmcmFtZXdvcmsgd2lsbAorZ2VuZXJhdGUgdGhpcyBrZXkgYXMgPGNvZGU+KDEwMCw8d2JyLz4gMTAwKTwvY29kZT4gaWYgZGV2aWNlIHN1cHBvcnRzIGFueSBvZiBSQVcgb3V0cHV0IGZvcm1hdHMuPHdici8+CitBbGwgSEFMMy48d2JyLz40IGFuZCBhYm92ZSBkZXZpY2VzIHNob3VsZCBsaXN0IHRoaXMga2V5IGlmIGRldmljZSBzdXBwb3J0cyBhbnkgb2YgUkFXCitvdXRwdXQgZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZUlkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5JZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIElEIHNlbnQgd2l0aCB0aGUgbGF0ZXN0CitDQU1FUkEyXzx3YnIvPlRSSUdHRVJfPHdici8+UFJFQ0FQVFVSRV88d2JyLz5NRVRFUklORyBjYWxsPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSAwIGlmIG5vCitDQU1FUkEyXzx3YnIvPlRSSUdHRVJfPHdici8+UFJFQ0FQVFVSRV88d2JyLz5NRVRFUklORyB0cmlnZ2VyIHJlY2VpdmVkIHlldAorYnkgSEFMLjx3YnIvPiBBbHdheXMgdXBkYXRlZCBldmVuIGlmIEFFIGFsZ29yaXRobSBpZ25vcmVzIHRoZQordHJpZ2dlcjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG5vdCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+NTBIWjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMgd2l0aCA1MEh6IGlsbHVtaW5hdGlvbiBzb3VyY2VzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjYwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zIHdpdGggNjBIeiBpbGx1bWluYXRpb24KK3NvdXJjZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhdXRvbWF0aWNhbGx5IGFkYXB0IGl0cworYW50aWJhbmRpbmcgcm91dGluZSB0byB0aGUgY3VycmVudCBpbGx1bWluYXRpb24KK2NvbmRpdGlvbi48d2JyLz4gVGhpcyBpcyB0aGUgZGVmYXVsdCBtb2RlIGlmIEFVVE8gaXMKK2F2YWlsYWJsZSBvbiBnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHNldHRpbmcgZm9yIHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by1leHBvc3VyZQorYWxnb3JpdGhtJ3MgYW50aWJhbmRpbmcgY29tcGVuc2F0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U29tZSBraW5kcyBvZiBsaWdodGluZyBmaXh0dXJlcyw8d2JyLz4gc3VjaCBhcyBzb21lIGZsdW9yZXNjZW50CitsaWdodHMsPHdici8+IGZsaWNrZXIgYXQgdGhlIHJhdGUgb2YgdGhlIHBvd2VyIHN1cHBseSBmcmVxdWVuY3kKKyg2MEh6IG9yIDUwSHosPHdici8+IGRlcGVuZGluZyBvbiBjb3VudHJ5KS48d2JyLz4gV2hpbGUgdGhpcyBpcwordHlwaWNhbGx5IG5vdCBub3RpY2VhYmxlIHRvIGEgcGVyc29uLDx3YnIvPiBpdCBjYW4gYmUgdmlzaWJsZSB0bworYSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBJZiBhIGNhbWVyYSBzZXRzIGl0cyBleHBvc3VyZSB0aW1lIHRvIHRoZQord3JvbmcgdmFsdWUsPHdici8+IHRoZSBmbGlja2VyIG1heSBiZWNvbWUgdmlzaWJsZSBpbiB0aGUKK3ZpZXdmaW5kZXIgYXMgZmxpY2tlciBvciBpbiBhIGZpbmFsIGNhcHR1cmVkIGltYWdlLDx3YnIvPiBhcyBhCitzZXQgb2YgdmFyaWFibGUtYnJpZ2h0bmVzcyBiYW5kcyBhY3Jvc3MgdGhlIGltYWdlLjx3YnIvPjwvcD4KKzxwPlRoZXJlZm9yZSw8d2JyLz4gdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgb2YgY2FtZXJhIGRldmljZXMKK2luY2x1ZGUgYW50aWJhbmRpbmcgcm91dGluZXMgdGhhdCBlbnN1cmUgdGhhdCB0aGUgY2hvc2VuCitleHBvc3VyZSB2YWx1ZSB3aWxsIG5vdCBjYXVzZSBzdWNoIGJhbmRpbmcuPHdici8+IFRoZSBjaG9pY2Ugb2YKK2V4cG9zdXJlIHRpbWUgZGVwZW5kcyBvbiB0aGUgcmF0ZSBvZiBmbGlja2VyLDx3YnIvPiB3aGljaCB0aGUKK2NhbWVyYSBkZXZpY2UgY2FuIGRldGVjdCBhdXRvbWF0aWNhbGx5LDx3YnIvPiBvciB0aGUgZXhwZWN0ZWQKK3JhdGUgY2FuIGJlIHNlbGVjdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB1c2luZyB0aGlzCitjb250cm9sLjx3YnIvPjwvcD4KKzxwPkEgZ2l2ZW4gY2FtZXJhIGRldmljZSBtYXkgbm90IHN1cHBvcnQgYWxsIG9mIHRoZSBwb3NzaWJsZQorb3B0aW9ucyBmb3IgdGhlIGFudGliYW5kaW5nIG1vZGUuPHdici8+IFRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGVzPC9hPiBrZXkgY29udGFpbnMKK3RoZSBhdmFpbGFibGUgbW9kZXMgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BVVRPIG1vZGUgaXMgdGhlIGRlZmF1bHQgaWYgaXQgaXMgYXZhaWxhYmxlIG9uIGdpdmVuCitjYW1lcmEgZGV2aWNlLjx3YnIvPiBXaGVuIEFVVE8gbW9kZSBpcyBub3QgYXZhaWxhYmxlLDx3YnIvPiB0aGUKK2RlZmF1bHQgd2lsbCBiZSBlaXRoZXIgNTBIWiBvciA2MEhaLDx3YnIvPiBhbmQgYm90aCA1MEhaCithbmQgNjBIWiB3aWxsIGJlIGF2YWlsYWJsZS48d2JyLz48L3A+Cis8cD5JZiBtYW51YWwgZXhwb3N1cmUgY29udHJvbCBpcyBlbmFibGVkIChieSBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gdG8gT0ZGKSw8d2JyLz4KK3RoZW4gdGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3QsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gbXVzdAorZW5zdXJlIGl0IHNlbGVjdHMgZXhwb3N1cmUgdGltZXMgdGhhdCBkbyBub3QgY2F1c2UgYmFuZGluZworaXNzdWVzLjx3YnIvPiBUaGUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNjZW5lRmxpY2tlciI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNjZW5lPHdici8+RmxpY2tlcjwvYT4ga2V5IGNhbiBhc3Npc3QKK3RoZSBhcHBsaWNhdGlvbiBpbiB0aGlzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGFsbCBjYXB0dXJlIHJlcXVlc3QgdGVtcGxhdGVzLDx3YnIvPiB0aGlzIGZpZWxkIG11c3QgYmUgc2V0Cit0byBBVVRPIGlmIEFVVE8gbW9kZSBpcyBhdmFpbGFibGUuPHdici8+IElmIEFVVE8gaXMgbm90IGF2YWlsYWJsZSw8d2JyLz4KK3RoZSBkZWZhdWx0IG11c3QgYmUgZWl0aGVyIDUwSFogb3IgNjBIWiw8d2JyLz4gYW5kIGJvdGggNTBIWiBhbmQKKzYwSFogbXVzdCBiZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wgaXMgZW5hYmxlZCAoYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IHRvIE9GRiksPHdici8+Cit0aGVuIHRoZSBleHBvc3VyZSB2YWx1ZXMgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIG11c3Qgbm90IGJlCithZGp1c3RlZCBmb3IgYW50aWJhbmRpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BZGp1c3RtZW50IHRvIGF1dG8tZXhwb3N1cmUgKEFFKSB0YXJnZXQgaW1hZ2UKK2JyaWdodG5lc3MuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIENvbXBlbnNhdGlvbiBzdGVwcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgYWRqdXN0bWVudCBpcyBtZWFzdXJlZCBhcyBhIGNvdW50IG9mIHN0ZXBzLDx3YnIvPiB3aXRoIHRoZQorc3RlcCBzaXplIGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25TdGVwIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Db21wZW5zYXRpb248d2JyLz5TdGVwPC9hPiBhbmQgdGhlCithbGxvd2VkIHJhbmdlIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlJhbmdlPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGV4cG9zdXJlIHZhbHVlIChFVikgc3RlcCBpcyAwLjx3YnIvPjMzMyw8d2JyLz4gJzYnCit3aWxsIG1lYW4gYW4gZXhwb3N1cmUgY29tcGVuc2F0aW9uIG9mICsyIEVWOyAtMyB3aWxsIG1lYW4gYW4KK2V4cG9zdXJlIGNvbXBlbnNhdGlvbiBvZiAtMSBFVi48d2JyLz4gT25lIEVWIHJlcHJlc2VudHMgYSBkb3VibGluZworb2YgaW1hZ2UgYnJpZ2h0bmVzcy48d2JyLz4gTm90ZSB0aGF0IHRoaXMgY29udHJvbCB3aWxsIG9ubHkgYmUKK2VmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gPGNvZGU+IT08L2NvZGU+IE9GRi48d2JyLz4gVGhpcyBjb250cm9sCit3aWxsIHRha2UgZWZmZWN0IGV2ZW4gd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gPGNvZGU+PT0gdHJ1ZTwvY29kZT4uPHdici8+PC9wPgorPHA+SW4gdGhlIGV2ZW50IG9mIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiB2YWx1ZSBiZWluZyBjaGFuZ2VkLDx3YnIvPiBjYW1lcmEgZGV2aWNlCittYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUgbmV3bHkgcmVxdWVzdGVkIGV4cG9zdXJlIHRhcmdldC48d2JyLz4KK0R1cmluZyB0aGF0IHRpbWUsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZmllbGQgd2lsbCBiZSBpbiB0aGUgU0VBUkNISU5HCitzdGF0ZS48d2JyLz4gT25jZSB0aGUgbmV3IGV4cG9zdXJlIHRhcmdldCBpcyByZWFjaGVkLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+U3RhdGU8L2E+IHdpbGwKK2NoYW5nZSBmcm9tIFNFQVJDSElORyB0byBlaXRoZXIgQ09OVkVSR0VELDx3YnIvPiBMT0NLRUQgKGlmIEFFIGxvY2sgaXMgZW5hYmxlZCksPHdici8+IG9yCitGTEFTSF88d2JyLz5SRVFVSVJFRCAoaWYgdGhlIHNjZW5lIGlzIHRvbyBkYXJrIGZvciBzdGlsbCBjYXB0dXJlKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBkaXNhYmxlZDsgdGhlIEFFIGFsZ29yaXRobQoraXMgZnJlZSB0byB1cGRhdGUgaXRzIHBhcmFtZXRlcnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8tZXhwb3N1cmUgbG9jayBpcyBlbmFibGVkOyB0aGUgQUUgYWxnb3JpdGhtCittdXN0IG5vdCB1cGRhdGUgdGhlIGV4cG9zdXJlIGFuZCBzZW5zaXRpdml0eSBwYXJhbWV0ZXJzCit3aGlsZSB0aGUgbG9jayBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gc2V0dGluZyBjaGFuZ2VzCit3aWxsIHN0aWxsIHRha2UgZWZmZWN0IHdoaWxlIGF1dG8tZXhwb3N1cmUgaXMgbG9ja2VkLjx3YnIvPjwvcD4KKzxwPlNvbWUgcmFyZSBMRUdBQ1kgZGV2aWNlcyBtYXkgbm90IHN1cHBvcnQKK3RoaXMsPHdici8+IGluIHdoaWNoIGNhc2UgdGhlIHZhbHVlIHdpbGwgYWx3YXlzIGJlIG92ZXJyaWRkZW4gdG8gT0ZGLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by1leHBvc3VyZSAoQUUpIGlzIGN1cnJlbnRseSBsb2NrZWQgdG8gaXRzIGxhdGVzdAorY2FsY3VsYXRlZCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiAoT04pLDx3YnIvPiB0aGUgQUUgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGV4cG9zdXJlIHNldHRpbmdzIHVudGlsIHRoZSBsb2NrIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gKE9GRikuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IGV2ZW4gd2hlbiBBRSBpcyBsb2NrZWQsPHdici8+IHRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgaWYKK3RoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QVVUT188d2JyLz5GTEFTSCAvPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0ggLzx3YnIvPiBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIXzx3YnIvPlJFREVZRS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+IGlzIGNoYW5nZWQsPHdici8+IGV2ZW4gaWYgdGhlIEFFIGxvY2sKK2lzIE9OLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHN0aWxsIGFkanVzdCBpdHMgZXhwb3N1cmUgdmFsdWUuPHdici8+PC9wPgorPHA+SWYgQUUgcHJlY2FwdHVyZSBpcyB0cmlnZ2VyZWQgKHNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikKK3doZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGNoYW5nZSB0aGUgZXhwb3N1cmUgdGltZQorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4pIGFuZCBzZW5zaXRpdml0eSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCitwYXJhbWV0ZXJzLjx3YnIvPiBUaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGlmIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4KK2lzIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gvPHdici8+T05fPHdici8+QVVUT188d2JyLz5GTEFTSF88d2JyLz5SRURFWUUgYW5kIHRoZSBzY2VuZSBpcyB0b28gZGFyay48d2JyLz4gSWYgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT05fPHdici8+QUxXQVlTXzx3YnIvPkZMQVNILDx3YnIvPiB0aGUgc2NlbmUgbWF5IGJlY29tZSBvdmVyZXhwb3NlZC48d2JyLz4KK1NpbWlsYXJseSw8d2JyLz4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIENBTkNFTCBoYXMgbm8gZWZmZWN0IHdoZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQuPHdici8+PC9wPgorPHA+V2hlbiBhbiBBRSBwcmVjYXB0dXJlIHNlcXVlbmNlIGlzIHRyaWdnZXJlZCw8d2JyLz4gQUUgdW5sb2NrIHdpbGwgbm90IGJlIGFibGUgdG8gdW5sb2NrCit0aGUgQUUgaWYgQUUgaXMgbG9ja2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGludGVybmFsbHkgZHVyaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcKK3NlcXVlbmNlIEluIG90aGVyIHdvcmRzLDx3YnIvPiBzdWJtaXR0aW5nIHJlcXVlc3RzIHdpdGggQUUgdW5sb2NrIGhhcyBubyBlZmZlY3QgZm9yIGFuCitvbmdvaW5nIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UuPHdici8+IE90aGVyd2lzZSw8d2JyLz4gdGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UKK3dpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHNlcXVlbmNlIG9mIHByZXZpZXcgcmVxdWVzdHMgd2hlcmUgQUUgbG9jayBpcyBhbHdheXMgc2V0Cit0byA8Y29kZT5mYWxzZTwvY29kZT4uPHdici8+PC9wPgorPHA+U2luY2UgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGEgcGlwZWxpbmUgb2YgaW4tZmxpZ2h0IHJlcXVlc3RzLDx3YnIvPiB0aGUgc2V0dGluZ3MgdGhhdAorZ2V0IGxvY2tlZCBkbyBub3QgbmVjZXNzYXJpbHkgY29ycmVzcG9uZCB0byB0aGUgc2V0dGluZ3MgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlCitsYXRlc3QgY2FwdHVyZSByZXN1bHQgcmVjZWl2ZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gc2luY2UgYWRkaXRpb25hbCBjYXB0dXJlcworYW5kIEFFIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQUUgbW9kZTo8L2xpPgorPGxpPkxvY2sgQUU8L2xpPgorPGxpPldhaXQgZm9yIHRoZSBmaXJzdCByZXN1bHQgdG8gYmUgb3V0cHV0IHRoYXQgaGFzIHRoZSBBRSBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgZXhwb3N1cmUgc2V0dGluZ3MgZnJvbSB0aGF0IHJlc3VsdCBpbnRvIGEgcmVxdWVzdCw8d2JyLz4gc2V0IHRoZSByZXF1ZXN0IHRvIG1hbnVhbCBBRTwvbGk+Cis8bGk+U3VibWl0IHRoZSBjYXB0dXJlIHJlcXVlc3QsPHdici8+IHByb2NlZWQgdG8gcnVuIG1hbnVhbCBBRSBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+U2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gZm9yIEFFIGxvY2sgcmVsYXRlZCBzdGF0ZSB0cmFuc2l0aW9uIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvZXhwb3N1cmUgcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24tc2VsZWN0ZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFyZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSw8d2JyLz4gYWxvbmcgd2l0aCBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPiogZmllbGRzLDx3YnIvPiBpZiB0aGVyZSdzCithIGZsYXNoIHVuaXQgZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5Ob3RlIHRoYXQgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGFuZCBhdXRvLWZvY3VzIChBRikKK2JlaGF2aW9yIGlzIGRldmljZSBkZXBlbmRlbnQgd2hlbiBBRSBpcyBpbiBPRkYgbW9kZS48d2JyLz4KK1RvIGhhdmUgY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGlmZmVyZW50IGRldmljZXMsPHdici8+CitpdCBpcyByZWNvbW1lbmRlZCB0byBlaXRoZXIgc2V0IEFXQiBhbmQgQUYgdG8gT0ZGIG1vZGUKK29yIGxvY2sgQVdCIGFuZCBBRiBiZWZvcmUgc2V0dGluZyBBRSB0byBPRkYuPHdici8+CitTZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+Citmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIGRvIG5vdCBzdXBwb3J0IHRoZSBPRkYgbW9kZSBhbmQgd2lsbAorb3ZlcnJpZGUgYXR0ZW1wdHMgdG8gdXNlIHRoaXMgdmFsdWUgdG8gT04uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0b2V4cG9zdXJlIHJvdXRpbmUgaXMgYWN0aXZlLDx3YnIvPgord2l0aCBubyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYXJlIGlnbm9yZWQuPHdici8+IFRoZQorYXBwbGljYXRpb24gaGFzIGNvbnRyb2wgb3ZlciB0aGUgdmFyaW91cworYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz4qIGZpZWxkcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BVVRPX0ZMQVNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5MaWtlIE9OLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBhbHNvIGNvbnRyb2xzCit0aGUgY2FtZXJhJ3MgZmxhc2ggdW5pdCw8d2JyLz4gZmlyaW5nIGl0IGluIGxvdy1saWdodAorY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGR1cmluZyBhIHByZWNhcHR1cmUgc2VxdWVuY2UKKyh0cmlnZ2VyZWQgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pIGFuZAorbWF5IGJlIGZpcmVkIGZvciBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBmaWVsZCBpcyBzZXQgdG8KK1NUSUxMXzx3YnIvPkNBUFRVUkU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BTFdBWVNfRkxBU0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkxpa2UgT04sPHdici8+IGV4Y2VwdCB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGFsc28gY29udHJvbHMKK3RoZSBjYW1lcmEncyBmbGFzaCB1bml0LDx3YnIvPiBhbHdheXMgZmlyaW5nIGl0IGZvciBzdGlsbAorY2FwdHVyZXMuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIG1heSBiZSBmaXJlZCBkdXJpbmcgYSBwcmVjYXB0dXJlIHNlcXVlbmNlCisodHJpZ2dlcmVkIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KSBhbmQKK3dpbGwgYWx3YXlzIGJlIGZpcmVkIGZvciBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBmaWVsZCBpcyBzZXQgdG8KK1NUSUxMXzx3YnIvPkNBUFRVUkU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BVVRPX0ZMQVNIX1JFREVZRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TGlrZSBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNILDx3YnIvPiBidXQgd2l0aCBhdXRvbWF0aWMgcmVkIGV5ZQorcmVkdWN0aW9uLjx3YnIvPjwvcD4KKzxwPklmIGRlZW1lZCBuZWNlc3NhcnkgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGEgcmVkIGV5ZQorcmVkdWN0aW9uIGZsYXNoIHdpbGwgZmlyZSBkdXJpbmcgdGhlIHByZWNhcHR1cmUKK3NlcXVlbmNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIG1vZGUgZm9yIHRoZSBjYW1lcmEgZGV2aWNlJ3MKK2F1dG8tZXhwb3N1cmUgcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzCitBVVRPLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvZiB0aGUgT04gbW9kZXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MKK2F1dG8tZXhwb3N1cmUgcm91dGluZSBpcyBlbmFibGVkLDx3YnIvPiBvdmVycmlkaW5nIHRoZQorYXBwbGljYXRpb24ncyBzZWxlY3RlZCBleHBvc3VyZSB0aW1lLDx3YnIvPiBzZW5zb3Igc2Vuc2l0aXZpdHksPHdici8+CithbmQgZnJhbWUgZHVyYXRpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4pLjx3YnIvPiBJZiBvbmUgb2YgdGhlIEZMQVNIIG1vZGVzCitpcyBzZWxlY3RlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCB1bml0IGNvbnRyb2xzIGFyZQorYWxzbyBvdmVycmlkZGVuLjx3YnIvPjwvcD4KKzxwPlRoZSBGTEFTSCBtb2RlcyBhcmUgb25seSBhdmFpbGFibGUgaWYgdGhlIGNhbWVyYSBkZXZpY2UKK2hhcyBhIGZsYXNoIHVuaXQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gaXMgPGNvZGU+dHJ1ZTwvY29kZT4pLjx3YnIvPjwvcD4KKzxwPklmIGZsYXNoIFRPUkNIIG1vZGUgaXMgZGVzaXJlZCw8d2JyLz4gdGhpcyBmaWVsZCBtdXN0IGJlIHNldCB0bworT04gb3IgT0ZGLDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5tb2RlPC9hPiBzZXQgdG8gVE9SQ0guPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gYW55IG9mIHRoZSBPTiBtb2Rlcyw8d2JyLz4gdGhlIHZhbHVlcyBjaG9zZW4gYnkgdGhlCitjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBmb3IgdGhlIG92ZXJyaWRkZW4KK2ZpZWxkcyBmb3IgYSBnaXZlbiBjYXB0dXJlIHdpbGwgYmUgYXZhaWxhYmxlIGluIGl0cworQ2FwdHVyZVJlc3VsdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggYXJlYV9jb3VudAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgbWV0ZXJpbmdSZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBtZXRlcmluZyBhcmVhcyB0byB1c2UgZm9yIGF1dG8tZXhwb3N1cmUgYWRqdXN0bWVudC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgd2l0aGluIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Q29vcmRpbmF0ZXMgbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPlsoMCw8d2JyLz4wKSw8d2JyLz4gKHdpZHRoLDx3YnIvPiBoZWlnaHQpKTwvY29kZT4gb2YKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZTwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiByZWdpb25zIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCitvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QWU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPgord2l0aCAoMCw8d2JyLz4wKSBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4gYW5kCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPndpZHRoIC0gMSw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz5oZWlnaHQgLSAxKSBiZWluZyB0aGUKK2JvdHRvbS1yaWdodCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHQgbXVzdCBiZSB3aXRoaW4gPGNvZGU+WzAsPHdici8+IDEwMDBdPC9jb2RlPiw8d2JyLz4gYW5kIHJlcHJlc2VudHMgYSB3ZWlnaHQKK2ZvciBldmVyeSBwaXhlbCBpbiB0aGUgYXJlYS48d2JyLz4gVGhpcyBtZWFucyB0aGF0IGEgbGFyZ2UgbWV0ZXJpbmcgYXJlYQord2l0aCB0aGUgc2FtZSB3ZWlnaHQgYXMgYSBzbWFsbGVyIGFyZWEgd2lsbCBoYXZlIG1vcmUgZWZmZWN0IGluCit0aGUgbWV0ZXJpbmcgcmVzdWx0Ljx3YnIvPiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kIHRoZQorY2FtZXJhIGRldmljZSB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uPHdici8+PC9wPgorPHA+VGhlIHdlaWdodHMgYXJlIHJlbGF0aXZlIHRvIHdlaWdodHMgb2Ygb3RoZXIgZXhwb3N1cmUgbWV0ZXJpbmcgcmVnaW9ucyw8d2JyLz4gc28gaWYgb25seSBvbmUKK3JlZ2lvbiBpcyB1c2VkLDx3YnIvPiBhbGwgbm9uLXplcm8gd2VpZ2h0cyB3aWxsIGhhdmUgdGhlIHNhbWUgZWZmZWN0Ljx3YnIvPiBBIHJlZ2lvbiB3aXRoIDAKK3dlaWdodCBpcyBpZ25vcmVkLjx3YnIvPjwvcD4KKzxwPklmIGFsbCByZWdpb25zIGhhdmUgMCB3ZWlnaHQsPHdici8+IHRoZW4gbm8gc3BlY2lmaWMgbWV0ZXJpbmcgYXJlYSBuZWVkcyB0byBiZSB1c2VkIGJ5IHRoZQorY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgbWV0ZXJpbmcgcmVnaW9uIGlzIG91dHNpZGUgdGhlIHVzZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHJldHVybmVkIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBpZ25vcmUgdGhlIHNlY3Rpb25zIG91dHNpZGUgdGhlIGNyb3AKK3JlZ2lvbiBhbmQgb3V0cHV0IG9ubHkgdGhlIGludGVyc2VjdGlvbiByZWN0YW5nbGUgYXMgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpbiB0aGUgcmVzdWx0CittZXRhZGF0YS48d2JyLz4gIElmIHRoZSByZWdpb24gaXMgZW50aXJlbHkgb3V0c2lkZSB0aGUgY3JvcCByZWdpb24sPHdici8+IGl0IHdpbGwgYmUgaWdub3JlZCBhbmQKK25vdCByZXBvcnRlZCBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBsZXZlbCByZXByZXNlbnRhdGlvbiBvZiBNZXRlcmluZ1JlY3RhbmdsZVtdIGlzIGEKK2ludFs1ICogYXJlYV88d2JyLz5jb3VudF0uPHdici8+CitFdmVyeSBmaXZlIGVsZW1lbnRzIHJlcHJlc2VudCBhIG1ldGVyaW5nIHJlZ2lvbiBvZgorKHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgsPHdici8+IHdlaWdodCkuPHdici8+CitUaGUgcmVjdGFuZ2xlIGlzIGRlZmluZWQgdG8gYmUgaW5jbHVzaXZlIG9uIHhtaW4gYW5kIHltaW4sPHdici8+IGJ1dAorZXhjbHVzaXZlIG9uIHhtYXggYW5kIHltYXguPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SYW5nZSBvdmVyIHdoaWNoIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgY2FuCithZGp1c3QgdGhlIGNhcHR1cmUgZnJhbWUgcmF0ZSB0byBtYWludGFpbiBnb29kCitleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRnJhbWVzIHBlciBzZWNvbmQgKEZQUykKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Bbnkgb2YgdGhlIGVudHJpZXMgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T25seSBjb25zdHJhaW5zIGF1dG8tZXhwb3N1cmUgKEFFKSBhbGdvcml0aG0sPHdici8+IG5vdAorbWFudWFsIGNvbnRyb2wgb2YgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SURMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRyaWdnZXIgaXMgaWRsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2Ugd2lsbCBiZSBzdGFydGVkCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGUgZXhhY3QgZWZmZWN0IG9mIHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgZGVwZW5kcyBvbgordGhlIGN1cnJlbnQgQUUgbW9kZSBhbmQgc3RhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FOQ0VMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGNhbmNlbCBhbnkgY3VycmVudGx5IGFjdGl2ZSBvciBjb21wbGV0ZWQKK3ByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UsPHdici8+IHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgd2lsbCByZXR1cm4gdG8gaXRzCitpbml0aWFsIHN0YXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIGEgcHJlY2FwdHVyZQorbWV0ZXJpbmcgc2VxdWVuY2Ugd2hlbiBpdCBwcm9jZXNzZXMgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBub3JtYWxseSBzZXQgdG8gSURMRSw8d2JyLz4gb3IgaXMgbm90CitpbmNsdWRlZCBhdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc2V0dGluZ3MuPHdici8+IFdoZW4gaW5jbHVkZWQgYW5kCitzZXQgdG8gU1RBUlQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciB0aGUgYXV0by1leHBvc3VyZSAoQUUpCitwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIENBTkNFTCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGFjdGl2ZQorcHJlY2FwdHVyZSBtZXRlcmluZyB0cmlnZ2VyLDx3YnIvPiBhbmQgcmV0dXJuIHRvIGl0cyBpbml0aWFsIEFFIHN0YXRlLjx3YnIvPgorSWYgYSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIGlzIGFscmVhZHkgY29tcGxldGVkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYQorZGV2aWNlIGhhcyBpbXBsaWNpdGx5IGxvY2tlZCB0aGUgQUUgZm9yIHN1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSw8d2JyLz4gdGhlCitDQU5DRUwgdHJpZ2dlciB3aWxsIHVubG9jayB0aGUgQUUgYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRSBzdGF0ZS48d2JyLz48L3A+Cis8cD5UaGUgcHJlY2FwdHVyZSBzZXF1ZW5jZSBzaG91bGQgYmUgdHJpZ2dlcmVkIGJlZm9yZSBzdGFydGluZyBhCitoaWdoLXF1YWxpdHkgc3RpbGwgY2FwdHVyZSBmb3IgZmluYWwgbWV0ZXJpbmcgZGVjaXNpb25zIHRvCitiZSBtYWRlLDx3YnIvPiBhbmQgZm9yIGZpcmluZyBwcmUtY2FwdHVyZSBmbGFzaCBwdWxzZXMgdG8gZXN0aW1hdGUKK3NjZW5lIGJyaWdodG5lc3MgYW5kIHJlcXVpcmVkIGZpbmFsIGNhcHR1cmUgZmxhc2ggcG93ZXIsPHdici8+IHdoZW4KK3RoZSBmbGFzaCBpcyBlbmFibGVkLjx3YnIvPjwvcD4KKzxwPk5vcm1hbGx5LDx3YnIvPiB0aGlzIGVudHJ5IHNob3VsZCBiZSBzZXQgdG8gU1RBUlQgZm9yIG9ubHkgYQorc2luZ2xlIHJlcXVlc3QsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIHdhaXQgdW50aWwgdGhlCitzZXF1ZW5jZSBjb21wbGV0ZXMgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS48d2JyLz48L3A+Cis8cD5XaGVuIGEgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSBpcyBmaW5pc2hlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK21heSBsb2NrIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgaW50ZXJuYWxseSB0byBiZSBhYmxlIHRvIGFjY3VyYXRlbHkgZXhwb3NlIHRoZQorc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlIGltYWdlICg8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiA9PSBTVElMTF88d2JyLz5DQVBUVVJFPC9jb2RlPikuPHdici8+CitGb3IgdGhpcyBjYXNlLDx3YnIvPiB0aGUgQUUgbWF5IG5vdCByZXN1bWUgbm9ybWFsIHNjYW4gaWYgbm8gc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlIGlzCitzdWJtaXR0ZWQuPHdici8+IFRvIGVuc3VyZSB0aGF0IHRoZSBBRSByb3V0aW5lIHJlc3RhcnRzIG5vcm1hbCBzY2FuLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gc2hvdWxkCitzdWJtaXQgYSByZXF1ZXN0IHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+ID09IHRydWU8L2NvZGU+LDx3YnIvPiBmb2xsb3dlZCBieSBhIHJlcXVlc3QKK3dpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+ID09IGZhbHNlPC9jb2RlPiw8d2JyLz4gaWYgdGhlIGFwcGxpY2F0aW9uIGRlY2lkZXMgbm90IHRvIHN1Ym1pdCBhCitzdGlsbCBjYXB0dXJlIHJlcXVlc3QgYWZ0ZXIgdGhlIHByZWNhcHR1cmUgc2VxdWVuY2UgY29tcGxldGVzLjx3YnIvPiBBbHRlcm5hdGl2ZWx5LDx3YnIvPiBmb3IKK0FQSSBsZXZlbCAyMyBvciBuZXdlciBkZXZpY2VzLDx3YnIvPiB0aGUgQ0FOQ0VMIGNhbiBiZSB1c2VkIHRvIHVubG9jayB0aGUgY2FtZXJhIGRldmljZQoraW50ZXJuYWxseSBsb2NrZWQgQUUgaWYgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3Qgc3VibWl0IGEgc3RpbGwgY2FwdHVyZSByZXF1ZXN0IGFmdGVyCit0aGUgQUUgcHJlY2FwdHVyZSB0cmlnZ2VyLjx3YnIvPiBOb3RlIHRoYXQsPHdici8+IHRoZSBDQU5DRUwgd2FzIGFkZGVkIGluIEFQSSBsZXZlbCAyMyw8d2JyLz4gYW5kIG11c3Qgbm90CitiZSB1c2VkIGluIGRldmljZXMgdGhhdCBoYXZlIGVhcmxpZXIgQVBJIGxldmVscy48d2JyLz48L3A+Cis8cD5UaGUgZXhhY3QgZWZmZWN0IG9mIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIHRyaWdnZXIKK2RlcGVuZHMgb24gdGhlIGN1cnJlbnQgQUUgbW9kZSBhbmQgc3RhdGU7IHNlZQorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmb3IgQUUgcHJlY2FwdHVyZSBzdGF0ZSB0cmFuc2l0aW9uCitkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPk9uIExFR0FDWS1sZXZlbCBkZXZpY2VzLDx3YnIvPiB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIGlzIG5vdCBzdXBwb3J0ZWQ7CitjYXB0dXJpbmcgYSBoaWdoLXJlc29sdXRpb24gSlBFRyBpbWFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciBhCitwcmVjYXB0dXJlIHNlcXVlbmNlIGJlZm9yZSB0aGUgaGlnaC1yZXNvbHV0aW9uIGNhcHR1cmUsPHdici8+IGluY2x1ZGluZworcG90ZW50aWFsbHkgZmlyaW5nIGEgcHJlLWNhcHR1cmUgZmxhc2guPHdici8+PC9wPgorPHA+VXNpbmcgdGhlIHByZWNhcHR1cmUgdHJpZ2dlciBhbmQgdGhlIGF1dG8tZm9jdXMgdHJpZ2dlciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4KK3NpbXVsdGFuZW91c2x5IGlzIGFsbG93ZWQuPHdici8+IEhvd2V2ZXIsPHdici8+IHNpbmNlIHRoZXNlIHRyaWdnZXJzIG9mdGVuIHJlcXVpcmUgY29vcGVyYXRpb24gYmV0d2VlbgordGhlIGF1dG8tZm9jdXMgYW5kIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgKGZvciBleGFtcGxlLDx3YnIvPiB0aGUgbWF5IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgYQorZm9jdXMgc3dlZXApLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgZGVsYXkgYWN0aW5nIG9uIGEgbGF0ZXIgdHJpZ2dlciB1bnRpbCB0aGUgcHJldmlvdXMKK3RyaWdnZXIgaGFzIGJlZW4gZnVsbHkgaGFuZGxlZC48d2JyLz4gVGhpcyBtYXkgbGVhZCB0byBsb25nZXIgaW50ZXJ2YWxzIGJldHdlZW4gdGhlIHRyaWdnZXIgYW5kCitjaGFuZ2VzIHRvIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gaW5kaWNhdGluZyB0aGUgc3RhcnQgb2YgdGhlIHByZWNhcHR1cmUgc2VxdWVuY2UsPHdici8+IGZvcgorZXhhbXBsZS48d2JyLz48L3A+Cis8cD5JZiBib3RoIHRoZSBwcmVjYXB0dXJlIGFuZCB0aGUgYXV0by1mb2N1cyB0cmlnZ2VyIGFyZSBhY3RpdmF0ZWQgb24gdGhlIHNhbWUgcmVxdWVzdCw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjb21wbGV0ZSB0aGVtIGluIHRoZSBvcHRpbWFsIG9yZGVyIGZvciB0aGF0IGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBzdXBwb3J0IHRyaWdnZXJpbmcgdGhlIEFFIHByZWNhcHR1cmUgdHJpZ2dlciB3aGlsZSBhbiBBRiB0cmlnZ2VyIGlzIGFjdGl2ZQorKGFuZCB2aWNlIHZlcnNhKSw8d2JyLz4gb3IgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgQUYgdHJpZ2dlci48d2JyLz4gIEl0IGlzIGFjY2VwdGFibGUgZm9yIHRoZSBIQUwgdG8KK3RyZWF0IHRoZXNlIGFzIHR3byBjb25zZWN1dGl2ZSB0cmlnZ2Vycyw8d2JyLz4gZm9yIGV4YW1wbGUgaGFuZGxpbmcgdGhlIEFGIHRyaWdnZXIgYW5kIHRoZW4gdGhlCitBRSB0cmlnZ2VyLjx3YnIvPiAgT3IgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIG9wdGltaXplIHRoZSBjYXNlIHdpdGggYm90aCB0cmlnZ2VycyBmaXJlZCBhdCBvbmNlLDx3YnIvPgordG8gbWluaW1pemUgdGhlIGxhdGVuY3kgZm9yIGNvbnZlcmdpbmcgYm90aCBmb2N1cyBhbmQgZXhwb3N1cmUvPHdici8+Zmxhc2ggdXNhZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTkFDVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUUgaXMgb2ZmIG9yIHJlY2VudGx5IHJlc2V0Ljx3YnIvPjwvcD4KKzxwPldoZW4gYSBjYW1lcmEgZGV2aWNlIGlzIG9wZW5lZCw8d2JyLz4gaXQgc3RhcnRzIGluCit0aGlzIHN0YXRlLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcKK3RoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0VBUkNISU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBkb2Vzbid0IHlldCBoYXZlIGEgZ29vZCBzZXQgb2YgY29udHJvbCB2YWx1ZXMKK2ZvciB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+Cis8cD5UaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcAorcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVkVSR0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBoYXMgYSBnb29kIHNldCBvZiBjb250cm9sIHZhbHVlcyBmb3IgdGhlCitjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkxPQ0tFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUUgaGFzIGJlZW4gbG9ja2VkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZMQVNIX1JFUVVJUkVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBoYXMgYSBnb29kIHNldCBvZiBjb250cm9sIHZhbHVlcyw8d2JyLz4gYnV0IGZsYXNoCituZWVkcyB0byBiZSBmaXJlZCBmb3IgZ29vZCBxdWFsaXR5IHN0aWxsCitjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRUNBUFRVUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFFIGhhcyBiZWVuIGFza2VkIHRvIGRvIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZQorYW5kIGlzIGN1cnJlbnRseSBleGVjdXRpbmcgaXQuPHdici8+PC9wPgorPHA+UHJlY2FwdHVyZSBjYW4gYmUgdHJpZ2dlcmVkIHRocm91Z2ggc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gdG8gU1RBUlQuPHdici8+IEN1cnJlbnRseQorYWN0aXZlIGFuZCBjb21wbGV0ZWQgKGlmIGl0IGNhdXNlcyBjYW1lcmEgZGV2aWNlIGludGVybmFsIEFFIGxvY2spIHByZWNhcHR1cmUKK21ldGVyaW5nIHNlcXVlbmNlIGNhbiBiZSBjYW5jZWxlZCB0aHJvdWdoIHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IHRvIENBTkNFTC48d2JyLz48L3A+Cis8cD5PbmNlIFBSRUNBUFRVUkUgY29tcGxldGVzLDx3YnIvPiBBRSB3aWxsIHRyYW5zaXRpb24gdG8gQ09OVkVSR0VECitvciBGTEFTSF88d2JyLz5SRVFVSVJFRCBhcyBhcHByb3ByaWF0ZS48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudAorc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluCitjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5DdXJyZW50IHN0YXRlIG9mIHRoZSBhdXRvLWV4cG9zdXJlIChBRSkgYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlN3aXRjaGluZyBiZXR3ZWVuIG9yIGVuYWJsaW5nIEFFIG1vZGVzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4pIGFsd2F5cworcmVzZXRzIHRoZSBBRSBzdGF0ZSB0byBJTkFDVElWRS48d2JyLz4gU2ltaWxhcmx5LDx3YnIvPiBzd2l0Y2hpbmcgYmV0d2VlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiw8d2JyLz4KK29yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPC9hPiBpZiA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERTwvY29kZT4gcmVzZXRzIGFsbAordGhlIGFsZ29yaXRobSBzdGF0ZXMgdG8gSU5BQ1RJVkUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIGRvIHNldmVyYWwgc3RhdGUgdHJhbnNpdGlvbnMgYmV0d2VlbiB0d28gcmVzdWx0cyw8d2JyLz4gaWYgaXQgaXMKK2FsbG93ZWQgYnkgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuPHdici8+IEZvciBleGFtcGxlOiBJTkFDVElWRSBtYXkgbmV2ZXIgYWN0dWFsbHkgYmUKK3NlZW4gaW4gYSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHN0YXRlIGluIHRoZSByZXN1bHQgaXMgdGhlIHN0YXRlIGZvciB0aGlzIGltYWdlIChpbiBzeW5jIHdpdGggdGhpcyBpbWFnZSk6IGlmCitBRSBzdGF0ZSBiZWNvbWVzIENPTlZFUkdFRCw8d2JyLz4gdGhlbiB0aGUgaW1hZ2UgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXN1bHQgc2hvdWxkCitiZSBnb29kIHRvIHVzZS48d2JyLz48L3A+Cis8cD5CZWxvdyBhcmUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZXMgZm9yIGRpZmZlcmVudCBBRSBtb2Rlcy48d2JyLz48L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgYXV0byBleHBvc3VyZSBhbGdvcml0aG0gaXMgZGlzYWJsZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgQUVfPHdici8+TU9ERV88d2JyLz5PTl88d2JyLz4qOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgY2hhbmdpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZXMgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Hb29kIHZhbHVlcyw8d2JyLz4gbm90IGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVzIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Db252ZXJnZWQgYnV0IHRvbyBkYXJrIHcvPHdici8+byBmbGFzaDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBBRSBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBjaGFuZ2luZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9GRjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbm90IGdvb2QgYWZ0ZXIgdW5sb2NrPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT0ZGPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBnb29kIGFmdGVyIHVubG9jazwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9GRjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkV4cG9zdXJlIGdvb2QsPHdici8+IGJ1dCB0b28gZGFyazwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBSRUNBUFRVUkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNlcXVlbmNlIGRvbmUuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiBpcyBPRkY8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVhZHkgZm9yIGhpZ2gtcXVhbGl0eSBjYXB0dXJlPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UFJFQ0FQVFVSRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U2VxdWVuY2UgZG9uZS48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlYWR5IGZvciBoaWdoLXF1YWxpdHkgY2FwdHVyZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+YWVMb2NrIGlzIE9OIGFuZCBhZVByZWNhcHR1cmVUcmlnZ2VyIGlzIFNUQVJUPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlByZWNhcHR1cmUgdHJpZ2dlciBpcyBpZ25vcmVkIHdoZW4gQUUgaXMgYWxyZWFkeSBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFlTG9jayBpcyBPTiBhbmQgYWVQcmVjYXB0dXJlVHJpZ2dlciBpcyBDQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UHJlY2FwdHVyZSB0cmlnZ2VyIGlzIGlnbm9yZWQgd2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIFNUQVJUPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QUkVDQVBUVVJFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55IHN0YXRlIChleGNsdWRpbmcgTE9DS0VEKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gaXMgQ0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q3VycmVudGx5IGFjdGl2ZSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIGlzIGNhbmNlbGVkPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPkZvciB0aGUgYWJvdmUgdGFibGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyBhbnkgc3RhdGUgY2hhbmdlcyB0aGF0IGhhcHBlbgord2l0aG91dCBhcHBsaWNhdGlvbiBpbnRlcnZlbnRpb24gKGkuPHdici8+ZS48d2JyLz4gbW9kZSBzd2l0Y2gsPHdici8+IHRyaWdnZXIsPHdici8+IGxvY2tpbmcpLjx3YnIvPiBBbnkgc3RhdGUgdGhhdAorY2FuIGJlIHNraXBwZWQgaW4gdGhhdCBtYW5uZXIgaXMgY2FsbGVkIGEgdHJhbnNpZW50IHN0YXRlLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgYWJvdmUgQUUgbW9kZXMgKEFFXzx3YnIvPk1PREVfPHdici8+T05fPHdici8+KiksPHdici8+IGluIGFkZGl0aW9uIHRvIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucworbGlzdGVkIGluIGFib3ZlIHRhYmxlLDx3YnIvPiBpdCBpcyBhbHNvIGxlZ2FsIGZvciB0aGUgY2FtZXJhIGRldmljZSB0byBza2lwIG9uZSBvciBtb3JlCit0cmFuc2llbnQgc3RhdGVzIGJldHdlZW4gdHdvIHJlc3VsdHMuPHdici8+IFNlZSBiZWxvdyB0YWJsZSBmb3IgZXhhbXBsZXM6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVkIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGFyZSBhbHJlYWR5IGdvb2QsPHdici8+IHRyYW5zaWVudCBzdGF0ZXMgYXJlIHNraXBwZWQgYnkgY2FtZXJhIGRldmljZS48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnkgc3RhdGUgKGV4Y2x1ZGluZyBMT0NLRUQpPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBTVEFSVCw8d2JyLz4gc2VxdWVuY2UgZG9uZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBidXQgdG9vIGRhcmsgdy88d2JyLz5vIGZsYXNoIGFmdGVyIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZSw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIFNUQVJULDx3YnIvPiBzZXF1ZW5jZSBkb25lPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBhZnRlciBhIHByZWNhcHR1cmUgc2VxdWVuY2UsPHdici8+IHRyYW5zaWVudCBzdGF0ZXMgYXJlIHNraXBwZWQgYnkgY2FtZXJhIGRldmljZS48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnkgc3RhdGUgKGV4Y2x1ZGluZyBMT0NLRUQpPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBDQU5DRUwsPHdici8+IGNvbnZlcmdlZDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBidXQgdG9vIGRhcmsgdy88d2JyLz5vIGZsYXNoIGFmdGVyIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZSBpcyBjYW5jZWxlZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIENBTkNFTCw8d2JyLz4gY29udmVyZ2VkPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBhZnRlciBhIHByZWNhcHR1cmUgc2VxdWVuY2VpcyBjYW5jZWxlZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmaW5pc2hlZCBBRSBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GTEFTSF88d2JyLz5SRVFVSVJFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGJ1dCB0b28gZGFyayB3Lzx3YnIvPm8gZmxhc2ggYWZ0ZXIgYSBuZXcgc2Nhbiw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVkIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGFmdGVyIGEgbmV3IHNjYW4sPHdici8+IHRyYW5zaWVudCBzdGF0ZXMgYXJlIHNraXBwZWQgYnkgY2FtZXJhIGRldmljZS48d2JyLz48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGF1dG8tZm9jdXMgcm91dGluZSBkb2VzIG5vdCBjb250cm9sIHRoZSBsZW5zOworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gaXMgY29udHJvbGxlZCBieSB0aGUKK2FwcGxpY2F0aW9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkJhc2ljIGF1dG9tYXRpYyBmb2N1cyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MKK3RoZSBhdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlcgoraXMgYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz48L3A+Cis8cD5BbHdheXMgc3VwcG9ydGVkIGlmIGxlbnMgaXMgbm90IGZpeGVkIGZvY3VzLjx3YnIvPjwvcD4KKzxwPlVzZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gdG8gZGV0ZXJtaW5lIGlmIGxlbnMKK2lzIGZpeGVkLWZvY3VzLjx3YnIvPjwvcD4KKzxwPlRyaWdnZXJpbmcgQUZfPHdici8+Q0FOQ0VMIHJlc2V0cyB0aGUgbGVucyBwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPgorYW5kIHNldHMgdGhlIEFGIHN0YXRlIHRvIElOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1BQ1JPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5DbG9zZS11cCBmb2N1c2luZyBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGxlbnMgZG9lcyBub3QgbW92ZSB1bmxlc3MgdGhlCithdXRvZm9jdXMgdHJpZ2dlciBhY3Rpb24gaXMgY2FsbGVkLjx3YnIvPiBXaGVuIHRoYXQgdHJpZ2dlciBpcworYWN0aXZhdGVkLDx3YnIvPiBBRiB3aWxsIHRyYW5zaXRpb24gdG8gQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8KK3RoZSBvdXRjb21lIG9mIHRoZSBzY2FuIChGT0NVU0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVGhpcworbW9kZSBpcyBvcHRpbWl6ZWQgZm9yIGZvY3VzaW5nIG9uIG9iamVjdHMgdmVyeSBjbG9zZSB0bwordGhlIGNhbWVyYS48d2JyLz48L3A+Cis8cD5XaGVuIHRoYXQgdHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0bworQUNUSVZFXzx3YnIvPlNDQU4sPHdici8+IHRoZW4gdG8gdGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IKK05PVF88d2JyLz5GT0NVU0VEKS48d2JyLz4gVHJpZ2dlcmluZyBjYW5jZWwgQUYgcmVzZXRzIHRoZSBsZW5zCitwb3NpdGlvbiB0byBkZWZhdWx0LDx3YnIvPiBhbmQgc2V0cyB0aGUgQUYgc3RhdGUgdG8KK0lOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlRJTlVPVVNfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBtb2RpZmllcyB0aGUgbGVucworcG9zaXRpb24gY29udGludWFsbHkgdG8gYXR0ZW1wdCB0byBwcm92aWRlIGEKK2NvbnN0YW50bHktaW4tZm9jdXMgaW1hZ2Ugc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2N1c2luZyBiZWhhdmlvciBzaG91bGQgYmUgc3VpdGFibGUgZm9yIGdvb2QgcXVhbGl0eQordmlkZW8gcmVjb3JkaW5nOyB0eXBpY2FsbHkgdGhpcyBtZWFucyBzbG93ZXIgZm9jdXMKK21vdmVtZW50IGFuZCBubyBvdmVyc2hvb3RzLjx3YnIvPiBXaGVuIHRoZSBBRiB0cmlnZ2VyIGlzIG5vdAoraW52b2x2ZWQsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gc2hvdWxkIHN0YXJ0IGluIElOQUNUSVZFIHN0YXRlLDx3YnIvPgorYW5kIHRoZW4gdHJhbnNpdGlvbiBpbnRvIFBBU1NJVkVfPHdici8+U0NBTiBhbmQgUEFTU0lWRV88d2JyLz5GT0NVU0VECitzdGF0ZXMgYXMgYXBwcm9wcmlhdGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPgordGhlIGFsZ29yaXRobSBzaG91bGQgaW1tZWRpYXRlbHkgdHJhbnNpdGlvbiBpbnRvCitBRl88d2JyLz5GT0NVU0VEIG9yIEFGXzx3YnIvPk5PVF88d2JyLz5GT0NVU0VEIGFzIGFwcHJvcHJpYXRlLDx3YnIvPiBhbmQgbG9jayB0aGUKK2xlbnMgcG9zaXRpb24gdW50aWwgYSBjYW5jZWwgQUYgdHJpZ2dlciBpcyByZWNlaXZlZC48d2JyLz48L3A+Cis8cD5PbmNlIGNhbmNlbCBpcyByZWNlaXZlZCw8d2JyLz4gdGhlIGFsZ29yaXRobSBzaG91bGQgdHJhbnNpdGlvbgorYmFjayB0byBJTkFDVElWRSBhbmQgcmVzdW1lIHBhc3NpdmUgc2Nhbi48d2JyLz4gTm90ZSB0aGF0IHRoaXMKK2JlaGF2aW9yIGlzIG5vdCBpZGVudGljYWwgdG8gQ09OVElOVU9VU188d2JyLz5QSUNUVVJFLDx3YnIvPiBzaW5jZSBhbgorb25nb2luZyBQQVNTSVZFXzx3YnIvPlNDQU4gbXVzdCBpbW1lZGlhdGVseSBiZQorY2FuY2VsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVElOVU9VU19QSUNUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbiB0aGlzIG1vZGUsPHdici8+IHRoZSBBRiBhbGdvcml0aG0gbW9kaWZpZXMgdGhlIGxlbnMKK3Bvc2l0aW9uIGNvbnRpbnVhbGx5IHRvIGF0dGVtcHQgdG8gcHJvdmlkZSBhCitjb25zdGFudGx5LWluLWZvY3VzIGltYWdlIHN0cmVhbS48d2JyLz48L3A+Cis8cD5UaGUgZm9jdXNpbmcgYmVoYXZpb3Igc2hvdWxkIGJlIHN1aXRhYmxlIGZvciBzdGlsbCBpbWFnZQorY2FwdHVyZTsgdHlwaWNhbGx5IHRoaXMgbWVhbnMgZm9jdXNpbmcgYXMgZmFzdCBhcworcG9zc2libGUuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgbm90IGludm9sdmVkLDx3YnIvPiB0aGUgQUYKK2FsZ29yaXRobSBzaG91bGQgc3RhcnQgaW4gSU5BQ1RJVkUgc3RhdGUsPHdici8+IGFuZCB0aGVuCit0cmFuc2l0aW9uIGludG8gUEFTU0lWRV88d2JyLz5TQ0FOIGFuZCBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQgc3RhdGVzIGFzCithcHByb3ByaWF0ZSBhcyBpdCBhdHRlbXB0cyB0byBtYWludGFpbiBmb2N1cy48d2JyLz4gV2hlbiB0aGUgQUYKK3RyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtIHNob3VsZCBmaW5pc2ggaXRzCitQQVNTSVZFXzx3YnIvPlNDQU4gaWYgYWN0aXZlLDx3YnIvPiBhbmQgdGhlbiB0cmFuc2l0aW9uIGludG8KK0FGXzx3YnIvPkZPQ1VTRUQgb3IgQUZfPHdici8+Tk9UXzx3YnIvPkZPQ1VTRUQgYXMgYXBwcm9wcmlhdGUsPHdici8+IGFuZCBsb2NrIHRoZQorbGVucyBwb3NpdGlvbiB1bnRpbCBhIGNhbmNlbCBBRiB0cmlnZ2VyIGlzIHJlY2VpdmVkLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlIEFGIGNhbmNlbCB0cmlnZ2VyIGlzIGFjdGl2YXRlZCw8d2JyLz4gdGhlIGFsZ29yaXRobQorc2hvdWxkIHRyYW5zaXRpb24gYmFjayB0byBJTkFDVElWRSBhbmQgdGhlbiBhY3QgYXMgaWYgaXQKK2hhcyBqdXN0IGJlZW4gc3RhcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5FRE9GPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FeHRlbmRlZCBkZXB0aCBvZiBmaWVsZCAoZGlnaXRhbCBmb2N1cykgbW9kZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIHByb2R1Y2UgaW1hZ2VzIHdpdGggYW4gZXh0ZW5kZWQKK2RlcHRoIG9mIGZpZWxkIGF1dG9tYXRpY2FsbHk7IG5vIHNwZWNpYWwgZm9jdXNpbmcKK29wZXJhdGlvbnMgbmVlZCB0byBiZSBkb25lIGJlZm9yZSB0YWtpbmcgYSBwaWN0dXJlLjx3YnIvPjwvcD4KKzxwPkFGIHRyaWdnZXJzIGFyZSBpZ25vcmVkLDx3YnIvPiBhbmQgdGhlIEFGIHN0YXRlIHdpbGwgYWx3YXlzIGJlCitJTkFDVElWRS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8tZm9jdXMgKEFGKSBpcyBjdXJyZW50bHkgZW5hYmxlZCw8d2JyLz4gYW5kIHdoYXQKK21vZGUgaXQgaXMgc2V0IHRvLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9IEFVVE8gYW5kIHRoZSBsZW5zIGlzIG5vdCBmaXhlZCBmb2N1cworKGkuPHdici8+ZS48d2JyLz4gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+ICZndDsgMDwvY29kZT4pLjx3YnIvPiBBbHNvIG5vdGUgdGhhdAord2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgT0ZGLDx3YnIvPiB0aGUgYmVoYXZpb3Igb2YgQUYgaXMgZGV2aWNlCitkZXBlbmRlbnQuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvY2sgQUYgYnkgdXNpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+IGJlZm9yZQorc2V0dGluZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gdG8gT0ZGLDx3YnIvPiBvciBzZXQgQUYgbW9kZSB0byBPRkYgd2hlbiBBRSBpcyBPRkYuPHdici8+PC9wPgorPHA+SWYgdGhlIGxlbnMgaXMgY29udHJvbGxlZCBieSB0aGUgY2FtZXJhIGRldmljZSBhdXRvLWZvY3VzIGFsZ29yaXRobSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IEFGIHN0YXR1cyBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+CitpbiByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGFmTW9kZSBpcyBBVVRPIG9yIE1BQ1JPLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHVudGlsIGFuIEFGIHRyaWdnZXIgaXMgc2VudCBpbiBhCityZXF1ZXN0ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4gPGNvZGU+PT08L2NvZGU+IFNUQVJUKS48d2JyLz4gQWZ0ZXIgYW4gQUYgdHJpZ2dlciw8d2JyLz4gdGhlIGFmU3RhdGUgd2lsbCBlbmQKK3VwIHdpdGggZWl0aGVyIEZPQ1VTRURfPHdici8+TE9DS0VEIG9yIE5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRCBzdGF0ZSAoc2VlCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciBkZXRhaWxlZCBzdGF0ZSB0cmFuc2l0aW9ucyksPHdici8+IHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBsZW5zIGlzCitsb2NrZWQgYW5kIHdpbGwgbm90IG1vdmUuPHdici8+IElmIGNhbWVyYSBtb3ZlbWVudCAoZS48d2JyLz5nLjx3YnIvPiB0aWx0aW5nIGNhbWVyYSkgY2F1c2VzIHRoZSBsZW5zIHRvIG1vdmUKK2FmdGVyIHRoZSBsZW5zIGlzIGxvY2tlZCw8d2JyLz4gdGhlIEhBTCBtdXN0IGNvbXBlbnNhdGUgdGhpcyBtb3ZlbWVudCBhcHByb3ByaWF0ZWx5IHN1Y2ggdGhhdAordGhlIHNhbWUgZm9jYWwgcGxhbmUgcmVtYWlucyBpbiBmb2N1cy48d2JyLz48L3A+Cis8cD5XaGVuIGFmTW9kZSBpcyBvbmUgb2YgdGhlIGNvbnRpbnVvdXMgYXV0byBmb2N1cyBtb2Rlcyw8d2JyLz4gdGhlIEhBTCBpcyBmcmVlIHRvIHN0YXJ0IGEgQUYKK3NjYW4gd2hlbmV2ZXIgaXQncyBub3QgbG9ja2VkLjx3YnIvPiBXaGVuIHRoZSBsZW5zIGlzIGxvY2tlZCBhZnRlciBhbiBBRiB0cmlnZ2VyCisoc2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIGRldGFpbGVkIHN0YXRlIHRyYW5zaXRpb25zKSw8d2JyLz4gdGhlIEhBTCBzaG91bGQgbWFpbnRhaW4gdGhlCitzYW1lIGxvY2sgYmVoYXZpb3IgYXMgYWJvdmUuPHdici8+PC9wPgorPHA+V2hlbiBhZk1vZGUgaXMgT0ZGLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY29udHJvbHMgZm9jdXMgbWFudWFsbHkuPHdici8+IFRoZSBhY2N1cmFjeSBvZiB0aGUKK2ZvY3VzIGRpc3RhbmNlIGNvbnRyb2wgZGVwZW5kcyBvbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4uPHdici8+CitIb3dldmVyLDx3YnIvPiB0aGUgbGVucyBtdXN0IG5vdCBtb3ZlIHJlZ2FyZGxlc3Mgb2YgdGhlIGNhbWVyYSBtb3ZlbWVudCBmb3IgYW55IGZvY3VzIGRpc3RhbmNlCittYW51YWwgY29udHJvbC48d2JyLz48L3A+Cis8cD5UbyBwdXQgdGhpcyBpbiBjb25jcmV0ZSB0ZXJtcyw8d2JyLz4gaWYgdGhlIGNhbWVyYSBoYXMgbGVucyBlbGVtZW50cyB3aGljaCBtYXkgbW92ZSBiYXNlZCBvbgorY2FtZXJhIG9yaWVudGF0aW9uIG9yIG1vdGlvbiAoZS48d2JyLz5nLjx3YnIvPiBkdWUgdG8gZ3Jhdml0eSksPHdici8+IHRoZW4gdGhlIEhBTCBtdXN0IGRyaXZlIHRoZSBsZW5zIHRvCityZW1haW4gaW4gYSBmaXhlZCBwb3NpdGlvbiBpbnZhcmlhbnQgdG8gdGhlIGNhbWVyYSdzIG9yaWVudGF0aW9uIG9yIG1vdGlvbiw8d2JyLz4gZm9yIGV4YW1wbGUsPHdici8+CitieSB1c2luZyBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBpbiB0aGUgbGVucyBjb250cm9sIGxvZ2ljLjx3YnIvPiBUaGlzIGlzIGEgdHlwaWNhbCBpc3N1ZQordGhhdCB3aWxsIGFyaXNlIG9uIGNhbWVyYSBtb2R1bGVzIHdpdGggb3Blbi1sb29wIFZDTXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by1mb2N1cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgd2l0aGluIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Q29vcmRpbmF0ZXMgbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPlsoMCw8d2JyLz4wKSw8d2JyLz4gKHdpZHRoLDx3YnIvPiBoZWlnaHQpKTwvY29kZT4gb2YKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZjwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBmb2N1cyBhcmVhcyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZQorb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FmIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFmPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb24gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4KK3dpdGggKDAsPHdici8+MCkgYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz53aWR0aCAtIDEsPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+aGVpZ2h0IC0gMSkgYmVpbmcgdGhlCitib3R0b20tcmlnaHQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0IG11c3QgYmUgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxMDAwXTwvY29kZT4sPHdici8+IGFuZCByZXByZXNlbnRzIGEgd2VpZ2h0Citmb3IgZXZlcnkgcGl4ZWwgaW4gdGhlIGFyZWEuPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhIGxhcmdlIG1ldGVyaW5nIGFyZWEKK3dpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgc21hbGxlciBhcmVhIHdpbGwgaGF2ZSBtb3JlIGVmZmVjdCBpbgordGhlIG1ldGVyaW5nIHJlc3VsdC48d2JyLz4gTWV0ZXJpbmcgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHRzIGFyZSByZWxhdGl2ZSB0byB3ZWlnaHRzIG9mIG90aGVyIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmIG9ubHkgb25lIHJlZ2lvbgoraXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aCAwIHdlaWdodCBpcworaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+IElmIHRoZSByZWdpb24gaXMgZW50aXJlbHkgb3V0c2lkZSB0aGUgY3JvcCByZWdpb24sPHdici8+IGl0IHdpbGwgYmUgaWdub3JlZCBhbmQKK25vdCByZXBvcnRlZCBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBsZXZlbCByZXByZXNlbnRhdGlvbiBvZiBNZXRlcmluZ1JlY3RhbmdsZVtdIGlzIGEKK2ludFs1ICogYXJlYV88d2JyLz5jb3VudF0uPHdici8+CitFdmVyeSBmaXZlIGVsZW1lbnRzIHJlcHJlc2VudCBhIG1ldGVyaW5nIHJlZ2lvbiBvZgorKHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgsPHdici8+IHdlaWdodCkuPHdici8+CitUaGUgcmVjdGFuZ2xlIGlzIGRlZmluZWQgdG8gYmUgaW5jbHVzaXZlIG9uIHhtaW4gYW5kIHltaW4sPHdici8+IGJ1dAorZXhjbHVzaXZlIG9uIHhtYXggYW5kIHltYXguPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JRExFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgdHJpZ2dlciBpcyBpZGxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQVJUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvZm9jdXMgd2lsbCB0cmlnZ2VyIG5vdy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQU5DRUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG9mb2N1cyB3aWxsIHJldHVybiB0byBpdHMgaW5pdGlhbAorc3RhdGUsPHdici8+IGFuZCBjYW5jZWwgYW55IGN1cnJlbnRseSBhY3RpdmUgdHJpZ2dlci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciBhdXRvZm9jdXMgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgbm9ybWFsbHkgc2V0IHRvIElETEUsPHdici8+IG9yIGlzIG5vdAoraW5jbHVkZWQgYXQgYWxsIGluIHRoZSByZXF1ZXN0IHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPldoZW4gaW5jbHVkZWQgYW5kIHNldCB0byBTVEFSVCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIHRoZQorYXV0b2ZvY3VzIGFsZ29yaXRobS48d2JyLz4gSWYgYXV0b2ZvY3VzIGlzIGRpc2FibGVkLDx3YnIvPiB0aGlzIHRyaWdnZXIgaGFzIG5vIGVmZmVjdC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBDQU5DRUwsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FuY2VsIGFueSBhY3RpdmUgdHJpZ2dlciw8d2JyLz4KK2FuZCByZXR1cm4gdG8gaXRzIGluaXRpYWwgQUYgc3RhdGUuPHdici8+PC9wPgorPHA+R2VuZXJhbGx5LDx3YnIvPiBhcHBsaWNhdGlvbnMgc2hvdWxkIHNldCB0aGlzIGVudHJ5IHRvIFNUQVJUIG9yIENBTkNFTCBmb3Igb25seSBhCitzaW5nbGUgY2FwdHVyZSw8d2JyLz4gYW5kIHRoZW4gcmV0dXJuIGl0IHRvIElETEUgKG9yIG5vdCBzZXQgYXQgYWxsKS48d2JyLz4gU3BlY2lmeWluZworU1RBUlQgZm9yIG11bHRpcGxlIGNhcHR1cmVzIGluIGEgcm93IG1lYW5zIHJlc3RhcnRpbmcgdGhlIEFGIG9wZXJhdGlvbiBvdmVyCithbmQgb3ZlciBhZ2Fpbi48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlN0YXRlPC9hPiBmb3Igd2hhdCB0aGUgdHJpZ2dlciBtZWFucyBmb3IgZWFjaCBBRiBtb2RlLjx3YnIvPjwvcD4KKzxwPlVzaW5nIHRoZSBhdXRvZm9jdXMgdHJpZ2dlciBhbmQgdGhlIHByZWNhcHR1cmUgdHJpZ2dlciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPgorc2ltdWx0YW5lb3VzbHkgaXMgYWxsb3dlZC48d2JyLz4gSG93ZXZlciw8d2JyLz4gc2luY2UgdGhlc2UgdHJpZ2dlcnMgb2Z0ZW4gcmVxdWlyZSBjb29wZXJhdGlvbiBiZXR3ZWVuCit0aGUgYXV0by1mb2N1cyBhbmQgYXV0by1leHBvc3VyZSByb3V0aW5lcyAoZm9yIGV4YW1wbGUsPHdici8+IHRoZSBtYXkgbmVlZCB0byBiZSBlbmFibGVkIGZvciBhCitmb2N1cyBzd2VlcCksPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBkZWxheSBhY3Rpbmcgb24gYSBsYXRlciB0cmlnZ2VyIHVudGlsIHRoZSBwcmV2aW91cwordHJpZ2dlciBoYXMgYmVlbiBmdWxseSBoYW5kbGVkLjx3YnIvPiBUaGlzIG1heSBsZWFkIHRvIGxvbmdlciBpbnRlcnZhbHMgYmV0d2VlbiB0aGUgdHJpZ2dlciBhbmQKK2NoYW5nZXMgdG8gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlN0YXRlPC9hPiw8d2JyLz4gZm9yIGV4YW1wbGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3Qgc3VwcG9ydCB0cmlnZ2VyaW5nIHRoZSBBRiB0cmlnZ2VyIHdoaWxlIGFuIEFFIHByZWNhcHR1cmUgdHJpZ2dlciBpcyBhY3RpdmUKKyhhbmQgdmljZSB2ZXJzYSksPHdici8+IG9yIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIEFFIHRyaWdnZXIuPHdici8+ICBJdCBpcyBhY2NlcHRhYmxlIGZvciB0aGUgSEFMIHRvCit0cmVhdCB0aGVzZSBhcyB0d28gY29uc2VjdXRpdmUgdHJpZ2dlcnMsPHdici8+IGZvciBleGFtcGxlIGhhbmRsaW5nIHRoZSBBRiB0cmlnZ2VyIGFuZCB0aGVuIHRoZQorQUUgdHJpZ2dlci48d2JyLz4gIE9yIHRoZSBIQUwgbWF5IGNob29zZSB0byBvcHRpbWl6ZSB0aGUgY2FzZSB3aXRoIGJvdGggdHJpZ2dlcnMgZmlyZWQgYXQgb25jZSw8d2JyLz4KK3RvIG1pbmltaXplIHRoZSBsYXRlbmN5IGZvciBjb252ZXJnaW5nIGJvdGggZm9jdXMgYW5kIGV4cG9zdXJlLzx3YnIvPmZsYXNoIHVzYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTkFDVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgaXMgb2ZmIG9yIGhhcyBub3QgeWV0IHRyaWVkIHRvIHNjYW4vPHdici8+YmVlbiBhc2tlZAordG8gc2Nhbi48d2JyLz48L3A+Cis8cD5XaGVuIGEgY2FtZXJhIGRldmljZSBpcyBvcGVuZWQsPHdici8+IGl0IHN0YXJ0cyBpbiB0aGlzCitzdGF0ZS48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudCBzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5Citza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluIGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVNTSVZFX1NDQU48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGlzIGN1cnJlbnRseSBwZXJmb3JtaW5nIGFuIEFGIHNjYW4gaW5pdGlhdGVkIHRoZQorY2FtZXJhIGRldmljZSBpbiBhIGNvbnRpbnVvdXMgYXV0b2ZvY3VzIG1vZGUuPHdici8+PC9wPgorPHA+T25seSB1c2VkIGJ5IENPTlRJTlVPVVNfPHdici8+KiBBRiBtb2Rlcy48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudAorc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluCitjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVNTSVZFX0ZPQ1VTRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGN1cnJlbnRseSBiZWxpZXZlcyBpdCBpcyBpbiBmb2N1cyw8d2JyLz4gYnV0IG1heQorcmVzdGFydCBzY2FubmluZyBhdCBhbnkgdGltZS48d2JyLz48L3A+Cis8cD5Pbmx5IHVzZWQgYnkgQ09OVElOVU9VU188d2JyLz4qIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50CitzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4KK2NhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFDVElWRV9TQ0FOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRiBpcyBwZXJmb3JtaW5nIGFuIEFGIHNjYW4gYmVjYXVzZSBpdCB3YXMKK3RyaWdnZXJlZCBieSBBRiB0cmlnZ2VyLjx3YnIvPjwvcD4KKzxwPk9ubHkgdXNlZCBieSBBVVRPIG9yIE1BQ1JPIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50CitzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4KK2NhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZPQ1VTRURfTE9DS0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRiBiZWxpZXZlcyBpdCBpcyBmb2N1c2VkIGNvcnJlY3RseSBhbmQgaGFzIGxvY2tlZAorZm9jdXMuPHdici8+PC9wPgorPHA+VGhpcyBzdGF0ZSBpcyByZWFjaGVkIG9ubHkgYWZ0ZXIgYW4gZXhwbGljaXQgU1RBUlQgQUYgdHJpZ2dlciBoYXMgYmVlbgorc2VudCAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+KSw8d2JyLz4gd2hlbiBnb29kIGZvY3VzIGhhcyBiZWVuIG9idGFpbmVkLjx3YnIvPjwvcD4KKzxwPlRoZSBsZW5zIHdpbGwgcmVtYWluIHN0YXRpb25hcnkgdW50aWwgdGhlIEFGIG1vZGUgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPikgaXMgY2hhbmdlZCBvcgorYSBuZXcgQUYgdHJpZ2dlciBpcyBzZW50IHRvIHRoZSBjYW1lcmEgZGV2aWNlICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5PVF9GT0NVU0VEX0xPQ0tFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgaGFzIGZhaWxlZCB0byBmb2N1cyBzdWNjZXNzZnVsbHkgYW5kIGhhcyBsb2NrZWQKK2ZvY3VzLjx3YnIvPjwvcD4KKzxwPlRoaXMgc3RhdGUgaXMgcmVhY2hlZCBvbmx5IGFmdGVyIGFuIGV4cGxpY2l0IFNUQVJUIEFGIHRyaWdnZXIgaGFzIGJlZW4KK3NlbnQgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPiksPHdici8+IHdoZW4gZ29vZCBmb2N1cyBjYW5ub3QgYmUgb2J0YWluZWQuPHdici8+PC9wPgorPHA+VGhlIGxlbnMgd2lsbCByZW1haW4gc3RhdGlvbmFyeSB1bnRpbCB0aGUgQUYgbW9kZSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+KSBpcyBjaGFuZ2VkIG9yCithIG5ldyBBRiB0cmlnZ2VyIGlzIHNlbnQgdG8gdGhlIGNhbWVyYSBkZXZpY2UgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPikuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFTU0lWRV9VTkZPQ1VTRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGZpbmlzaGVkIGEgcGFzc2l2ZSBzY2FuIHdpdGhvdXQgZmluZGluZyBmb2N1cyw8d2JyLz4KK2FuZCBtYXkgcmVzdGFydCBzY2FubmluZyBhdCBhbnkgdGltZS48d2JyLz48L3A+Cis8cD5Pbmx5IHVzZWQgYnkgQ09OVElOVU9VU188d2JyLz4qIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhCitkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+TEVHQUNZIGNhbWVyYSBkZXZpY2VzIGRvIG5vdCBzdXBwb3J0IHRoaXMgc3RhdGUuPHdici8+IFdoZW4gYSBwYXNzaXZlCitzY2FuIGhhcyBmaW5pc2hlZCw8d2JyLz4gaXQgd2lsbCBhbHdheXMgZ28gdG8gUEFTU0lWRV88d2JyLz5GT0NVU0VELjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkN1cnJlbnQgc3RhdGUgb2YgYXV0by1mb2N1cyAoQUYpIGFsZ29yaXRobS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Td2l0Y2hpbmcgYmV0d2VlbiBvciBlbmFibGluZyBBRiBtb2RlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+KSBhbHdheXMKK3Jlc2V0cyB0aGUgQUYgc3RhdGUgdG8gSU5BQ1RJVkUuPHdici8+IFNpbWlsYXJseSw8d2JyLz4gc3dpdGNoaW5nIGJldHdlZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4sPHdici8+CitvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTwvYT4gaWYgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREU8L2NvZGU+IHJlc2V0cyBhbGwKK3RoZSBhbGdvcml0aG0gc3RhdGVzIHRvIElOQUNUSVZFLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIGNhbiBkbyBzZXZlcmFsIHN0YXRlIHRyYW5zaXRpb25zIGJldHdlZW4gdHdvIHJlc3VsdHMsPHdici8+IGlmIGl0IGlzCithbGxvd2VkIGJ5IHRoZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLjx3YnIvPiBGb3IgZXhhbXBsZTogSU5BQ1RJVkUgbWF5IG5ldmVyIGFjdHVhbGx5IGJlCitzZWVuIGluIGEgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPlRoZSBzdGF0ZSBpbiB0aGUgcmVzdWx0IGlzIHRoZSBzdGF0ZSBmb3IgdGhpcyBpbWFnZSAoaW4gc3luYyB3aXRoIHRoaXMgaW1hZ2UpOiBpZgorQUYgc3RhdGUgYmVjb21lcyBGT0NVU0VELDx3YnIvPiB0aGVuIHRoZSBpbWFnZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3VsdCBzaG91bGQKK2JlIHNoYXJwLjx3YnIvPjwvcD4KKzxwPkJlbG93IGFyZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlcyBmb3IgZGlmZmVyZW50IEFGIG1vZGVzLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IGlzIEFGXzx3YnIvPk1PREVfPHdici8+T0ZGIG9yIEFGXzx3YnIvPk1PREVfPHdici8+RURPRjo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5ldmVyIGNoYW5nZXM8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gaXMgQUZfPHdici8+TU9ERV88d2JyLz5BVVRPIG9yIEFGXzx3YnIvPk1PREVfPHdici8+TUFDUk86PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BQ1RJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc3dlZXAsPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRiBzd2VlcCBkb25lPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rm9jdXNlZCw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGIHN3ZWVwIGRvbmU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tm90IGZvY3VzZWQsPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW5jZWwvPHdici8+cmVzZXQgQUYsPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW5jZWwvPHdici8+cmVzZXQgQUY8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IG5ldyBzd2VlcCw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW5jZWwvPHdici8+cmVzZXQgQUY8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBuZXcgc3dlZXAsPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TW9kZSBjaGFuZ2U8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+Rm9yIHRoZSBhYm92ZSB0YWJsZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIGFueSBzdGF0ZSBjaGFuZ2VzIHRoYXQgaGFwcGVuCit3aXRob3V0IGFwcGxpY2F0aW9uIGludGVydmVudGlvbiAoaS48d2JyLz5lLjx3YnIvPiBtb2RlIHN3aXRjaCw8d2JyLz4gdHJpZ2dlciw8d2JyLz4gbG9ja2luZykuPHdici8+IEFueSBzdGF0ZSB0aGF0CitjYW4gYmUgc2tpcHBlZCBpbiB0aGF0IG1hbm5lciBpcyBjYWxsZWQgYSB0cmFuc2llbnQgc3RhdGUuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciB0aGVzZSBBRiBtb2RlcyAoQUZfPHdici8+TU9ERV88d2JyLz5BVVRPIGFuZCBBRl88d2JyLz5NT0RFXzx3YnIvPk1BQ1JPKSw8d2JyLz4gaW4gYWRkaXRpb24gdG8gdGhlCitzdGF0ZSB0cmFuc2l0aW9ucyBsaXN0ZWQgaW4gYWJvdmUgdGFibGUsPHdici8+IGl0IGlzIGFsc28gbGVnYWwgZm9yIHRoZSBjYW1lcmEgZGV2aWNlIHRvIHNraXAKK29uZSBvciBtb3JlIHRyYW5zaWVudCBzdGF0ZXMgYmV0d2VlbiB0d28gcmVzdWx0cy48d2JyLz4gU2VlIGJlbG93IHRhYmxlIGZvciBleGFtcGxlczo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBpcyBhbHJlYWR5IGdvb2Qgb3IgZ29vZCBhZnRlciBhIHNjYW4sPHdici8+IGxlbnMgaXMgbm93IGxvY2tlZC48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBmYWlsZWQgYWZ0ZXIgYSBzY2FuLDx3YnIvPiBsZW5zIGlzIG5vdyBsb2NrZWQuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBpcyBhbHJlYWR5IGdvb2Qgb3IgZ29vZCBhZnRlciBhIHNjYW4sPHdici8+IGxlbnMgaXMgbm93IGxvY2tlZC48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1cyBpcyBnb29kIGFmdGVyIGEgc2Nhbiw8d2JyLz4gbGVucyBpcyBub3QgbG9ja2VkLjx3YnIvPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBpcyBBRl88d2JyLz5NT0RFXzx3YnIvPkNPTlRJTlVPVVNfPHdici8+VklERU86PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRiBzdGF0ZSBxdWVyeSw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGNvbXBsZXRlcyBjdXJyZW50IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RW5kIEFGIHNjYW4sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmYWlscyBjdXJyZW50IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+VU5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5FbmQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SW1tZWRpYXRlIHRyYW5zaXRpb24sPHdici8+IGlmIGZvY3VzIGlzIGdvb2QuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnNpdGlvbiw8d2JyLz4gaWYgZm9jdXMgaXMgYmFkLjx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlc2V0IGxlbnMgcG9zaXRpb24sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5VTkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIG5ldyBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IEFGIHNjYW4sPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkltbWVkaWF0ZSB0cmFuc2l0aW9uLDx3YnIvPiBsZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnNpdGlvbiw8d2JyLz4gbGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5ObyBlZmZlY3Q8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzdGFydCBBRiBzY2FuPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5vIGVmZmVjdDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzdGFydCBBRiBzY2FuPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IGlzIEFGXzx3YnIvPk1PREVfPHdici8+Q09OVElOVU9VU188d2JyLz5QSUNUVVJFOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUYgc3RhdGUgcXVlcnksPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBjb21wbGV0ZXMgY3VycmVudCBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkVuZCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmFpbHMgY3VycmVudCBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RW5kIEFGIHNjYW4sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkV2ZW50dWFsIHRyYW5zaXRpb24gb25jZSB0aGUgZm9jdXMgaXMgZ29vZC48d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkV2ZW50dWFsIHRyYW5zaXRpb24gaWYgY2Fubm90IGZpbmQgZm9jdXMuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzZXQgbGVucyBwb3NpdGlvbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SW1tZWRpYXRlIHRyYW5zLjx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnMuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tm8gZWZmZWN0PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlc3RhcnQgQUYgc2NhbjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5ObyBlZmZlY3Q8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlJlc3RhcnQgQUYgc2NhbjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIHN3aXRjaCBiZXR3ZWVuIEFGXzx3YnIvPk1PREVfPHdici8+Q09OVElOVU9VU188d2JyLz4qIChDQUYgbW9kZXMpIGFuZCBBRl88d2JyLz5NT0RFXzx3YnIvPkFVVE8vPHdici8+QUZfPHdici8+TU9ERV88d2JyLz5NQUNSTworKEFVVE8gbW9kZXMpLDx3YnIvPiB0aGUgaW5pdGlhbCBJTkFDVElWRSBvciBQQVNTSVZFXzx3YnIvPlNDQU4gc3RhdGVzIG1heSBiZSBza2lwcGVkIGJ5IHRoZQorY2FtZXJhIGRldmljZS48d2JyLz4gV2hlbiBhIHRyaWdnZXIgaXMgaW5jbHVkZWQgaW4gYSBtb2RlIHN3aXRjaCByZXF1ZXN0LDx3YnIvPiB0aGUgdHJpZ2dlcgord2lsbCBiZSBldmFsdWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIG5ldyBtb2RlIGluIHRoZSByZXF1ZXN0Ljx3YnIvPgorU2VlIGJlbG93IHRhYmxlIGZvciBleGFtcGxlczo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+YW55IHN0YXRlPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DQUYtLSZndDtBVVRPIG1vZGUgc3dpdGNoPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TW9kZSBzd2l0Y2ggd2l0aG91dCB0cmlnZ2VyLDx3YnIvPiBpbml0aWFsIHN0YXRlIG11c3QgYmUgSU5BQ1RJVkU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbnkgc3RhdGU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNBRi0tJmd0O0FVVE8gbW9kZSBzd2l0Y2ggd2l0aCBBRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj50cmlnZ2VyLXJlYWNoYWJsZSBzdGF0ZXMgZnJvbSBJTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TW9kZSBzd2l0Y2ggd2l0aCB0cmlnZ2VyLDx3YnIvPiBJTkFDVElWRSBpcyBza2lwcGVkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+YW55IHN0YXRlPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BVVRPLS0mZ3Q7Q0FGIG1vZGUgc3dpdGNoPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5wYXNzaXZlbHkgcmVhY2hhYmxlIHN0YXRlcyBmcm9tIElOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Nb2RlIHN3aXRjaCB3aXRob3V0IHRyaWdnZXIsPHdici8+IHBhc3NpdmUgdHJhbnNpZW50IHN0YXRlIGlzIHNraXBwZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXJJZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPHdici8+SWQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBJRCBzZW50IHdpdGggdGhlIGxhdGVzdAorQ0FNRVJBMl88d2JyLz5UUklHR0VSXzx3YnIvPkFVVE9GT0NVUyBjYWxsPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSAwIGlmIG5vIENBTUVSQTJfPHdici8+VFJJR0dFUl88d2JyLz5BVVRPRk9DVVMgdHJpZ2dlcgorcmVjZWl2ZWQgeWV0IGJ5IEhBTC48d2JyLz4gQWx3YXlzIHVwZGF0ZWQgZXZlbiBpZiBBRiBhbGdvcml0aG0KK2lnbm9yZXMgdGhlIHRyaWdnZXI8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by13aGl0ZSBiYWxhbmNlIGxvY2sgaXMgZGlzYWJsZWQ7IHRoZSBBV0IKK2FsZ29yaXRobSBpcyBmcmVlIHRvIHVwZGF0ZSBpdHMgcGFyYW1ldGVycyBpZiBpbiBBVVRPCittb2RlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvLXdoaXRlIGJhbGFuY2UgbG9jayBpcyBlbmFibGVkOyB0aGUgQVdCCithbGdvcml0aG0gd2lsbCBub3QgdXBkYXRlIGl0cyBwYXJhbWV0ZXJzIHdoaWxlIHRoZSBsb2NrCitpcyBhY3RpdmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgY3VycmVudGx5IGxvY2tlZCB0byBpdHMKK2xhdGVzdCBjYWxjdWxhdGVkIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSBBV0IgYWxnb3JpdGhtIGlzIGxvY2tlZCB0byBpdHMgbGF0ZXN0IHBhcmFtZXRlcnMsPHdici8+CithbmQgd2lsbCBub3QgY2hhbmdlIGNvbG9yIGJhbGFuY2Ugc2V0dGluZ3MgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5TaW5jZSB0aGUgY2FtZXJhIGRldmljZSBoYXMgYSBwaXBlbGluZSBvZiBpbi1mbGlnaHQgcmVxdWVzdHMsPHdici8+IHRoZSBzZXR0aW5ncyB0aGF0CitnZXQgbG9ja2VkIGRvIG5vdCBuZWNlc3NhcmlseSBjb3JyZXNwb25kIHRvIHRoZSBzZXR0aW5ncyB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUKK2xhdGVzdCBjYXB0dXJlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBzaW5jZSBhZGRpdGlvbmFsIGNhcHR1cmVzCithbmQgQVdCIHVwZGF0ZXMgbWF5IGhhdmUgb2NjdXJyZWQgZXZlbiBiZWZvcmUgdGhlIHJlc3VsdCB3YXMgc2VudCBvdXQuPHdici8+IElmIGFuCithcHBsaWNhdGlvbiBpcyBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMgYW5kIG1hbnVhbCBjb250cm9sIGFuZCB3aXNoZXMgdG8gZWxpbWluYXRlCithbnkgZmxpY2tlciBkdXJpbmcgdGhlIHN3aXRjaCw8d2JyLz4gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaXMgcmVjb21tZW5kZWQ6PC9wPgorPG9sPgorPGxpPlN0YXJ0aW5nIGluIGF1dG8tQVdCIG1vZGU6PC9saT4KKzxsaT5Mb2NrIEFXQjwvbGk+Cis8bGk+V2FpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCB0byBiZSBvdXRwdXQgdGhhdCBoYXMgdGhlIEFXQiBsb2NrZWQ8L2xpPgorPGxpPkNvcHkgQVdCIHNldHRpbmdzIGZyb20gdGhhdCByZXN1bHQgaW50byBhIHJlcXVlc3QsPHdici8+IHNldCB0aGUgcmVxdWVzdCB0byBtYW51YWwgQVdCPC9saT4KKzxsaT5TdWJtaXQgdGhlIGNhcHR1cmUgcmVxdWVzdCw8d2JyLz4gcHJvY2VlZCB0byBydW4gbWFudWFsIEFXQiBhcyBkZXNpcmVkLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+Tm90ZSB0aGF0IEFXQiBsb2NrIGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiBpcyBpbiB0aGUgQVVUTyBtb2RlOyBpbiBvdGhlciBtb2Rlcyw8d2JyLz4KK0FXQiBpcyBhbHJlYWR5IGZpeGVkIHRvIGEgc3BlY2lmaWMgc2V0dGluZy48d2JyLz48L3A+Cis8cD5Tb21lIExFR0FDWSBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydCBPTjsgdGhlIHZhbHVlIGlzIHRoZW4gb3ZlcnJpZGRlbiB0byBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbi1zZWxlY3RlZCBjb2xvciB0cmFuc2Zvcm0gbWF0cml4CisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPikgYW5kIGdhaW5zCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4pIGFyZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSBmb3IgbWFudWFsIHdoaXRlIGJhbGFuY2UgY29udHJvbC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BVVRPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGFjdGl2ZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SU5DQU5ERVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBpbmNhbmRlc2NlbnQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgQS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGZsdW9yZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEYyLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5XQVJNX0ZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB3YXJtIGZsdW9yZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEY0Ljx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5EQVlMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZGF5bGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgRDY1Ljx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DTE9VRFlfREFZTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGNsb3VkeSBkYXlsaWdodCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UV0lMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdHdpbGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0hBREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHNoYWRlIGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGlzIGN1cnJlbnRseSBzZXR0aW5nIHRoZSBjb2xvcgordHJhbnNmb3JtIGZpZWxkcyw8d2JyLz4gYW5kIHdoYXQgaXRzIGlsbHVtaW5hdGlvbiB0YXJnZXQKK2lzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBBVVRPLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIHRoZSBPTiBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZQorcm91dGluZSBpcyBlbmFibGVkLDx3YnIvPiBvdmVycmlkaW5nIHRoZSBhcHBsaWNhdGlvbidzIHNlbGVjdGVkCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPi48d2JyLz4gTm90ZSB0aGF0IHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+CitpcyBPRkYsPHdici8+IHRoZSBiZWhhdmlvciBvZiBBV0IgaXMgZGV2aWNlIGRlcGVuZGVudC48d2JyLz4gSXQgaXMgcmVjb21tZW5lZCB0bworYWxzbyBzZXQgQVdCIG1vZGUgdG8gT0ZGIG9yIGxvY2sgQVdCIGJ5IHVzaW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGJlZm9yZQorc2V0dGluZyBBRSBtb2RlIHRvIE9GRi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byB0aGUgT0ZGIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlCityb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gbWFudWFsbHkgY29udHJvbHMgdGhlIHdoaXRlCitiYWxhbmNlIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvdGhlciBtb2Rlcyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlCitiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZWFjaAorcGFydGljdWxhciBpbGx1bWluYXRpb24gdGFyZ2V0IGZvciB3aGl0ZSBiYWxhbmNlCithZGp1c3RtZW50Ljx3YnIvPiBUaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gYXJlIGlnbm9yZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1IHggYXJlYV9jb3VudAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgbWV0ZXJpbmdSZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBtZXRlcmluZyBhcmVhcyB0byB1c2UgZm9yIGF1dG8td2hpdGUtYmFsYW5jZSBpbGx1bWluYW50Citlc3RpbWF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyB3aXRoaW4gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Db29yZGluYXRlcyBtdXN0IGJlIGJldHdlZW4gPGNvZGU+WygwLDx3YnIvPjApLDx3YnIvPiAod2lkdGgsPHdici8+IGhlaWdodCkpPC9jb2RlPiBvZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5Bd2I8L2E+IGlzIDAuPHdici8+CitPdGhlcndpc2Ugd2lsbCBhbHdheXMgYmUgcHJlc2VudC48d2JyLz48L3A+Cis8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZQorb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5Bd2I8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPgord2l0aCAoMCw8d2JyLz4wKSBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4gYW5kCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPndpZHRoIC0gMSw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz5oZWlnaHQgLSAxKSBiZWluZyB0aGUKK2JvdHRvbS1yaWdodCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHQgbXVzdCByYW5nZSBmcm9tIDAgdG8gMTAwMCw8d2JyLz4gYW5kIHJlcHJlc2VudHMgYSB3ZWlnaHQKK2ZvciBldmVyeSBwaXhlbCBpbiB0aGUgYXJlYS48d2JyLz4gVGhpcyBtZWFucyB0aGF0IGEgbGFyZ2UgbWV0ZXJpbmcgYXJlYQord2l0aCB0aGUgc2FtZSB3ZWlnaHQgYXMgYSBzbWFsbGVyIGFyZWEgd2lsbCBoYXZlIG1vcmUgZWZmZWN0IGluCit0aGUgbWV0ZXJpbmcgcmVzdWx0Ljx3YnIvPiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kIHRoZQorY2FtZXJhIGRldmljZSB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uPHdici8+PC9wPgorPHA+VGhlIHdlaWdodHMgYXJlIHJlbGF0aXZlIHRvIHdlaWdodHMgb2Ygb3RoZXIgd2hpdGUgYmFsYW5jZSBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZgorb25seSBvbmUgcmVnaW9uIGlzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGgKKzAgd2VpZ2h0IGlzIGlnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiAgSWYgdGhlIHJlZ2lvbiBpcyBlbnRpcmVseSBvdXRzaWRlIHRoZSBjcm9wIHJlZ2lvbiw8d2JyLz4gaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAorbm90IHJlcG9ydGVkIGluIHRoZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIGxldmVsIHJlcHJlc2VudGF0aW9uIG9mIE1ldGVyaW5nUmVjdGFuZ2xlW10gaXMgYQoraW50WzUgKiBhcmVhXzx3YnIvPmNvdW50XS48d2JyLz4KK0V2ZXJ5IGZpdmUgZWxlbWVudHMgcmVwcmVzZW50IGEgbWV0ZXJpbmcgcmVnaW9uIG9mCisoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCw8d2JyLz4gd2VpZ2h0KS48d2JyLz4KK1RoZSByZWN0YW5nbGUgaXMgZGVmaW5lZCB0byBiZSBpbmNsdXNpdmUgb24geG1pbiBhbmQgeW1pbiw8d2JyLz4gYnV0CitleGNsdXNpdmUgb24geG1heCBhbmQgeW1heC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZ29hbCBvZiB0aGlzIHJlcXVlc3QgZG9lc24ndCBmYWxsIGludG8gdGhlIG90aGVyCitjYXRlZ29yaWVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIGRlZmF1bHQgdG8gcHJldmlldy1saWtlCitiZWhhdmlvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QUkVWSUVXPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgcHJldmlldy1saWtlIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgbWF5IGJlIHVzZWQgdG8gc3RhcnQgb2ZmIGEgbWV0ZXJpbmcKK3cvPHdici8+Zmxhc2ggc2VxdWVuY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RJTExfQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIHN0aWxsIGNhcHR1cmUtdHlwZQordXNlIGNhc2UuPHdici8+PC9wPgorPHA+SWYgdGhlIGZsYXNoIHVuaXQgaXMgdW5kZXIgYXV0b21hdGljIGNvbnRyb2wsPHdici8+IGl0IG1heSBmaXJlIGFzIG5lZWRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5WSURFT19SRUNPUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSB2aWRlbyByZWNvcmRpbmcKK3VzZSBjYXNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlZJREVPX1NOQVBTSE9UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgdmlkZW8gc25hcHNob3QgKHN0aWxsCitpbWFnZSB3aGlsZSByZWNvcmRpbmcgdmlkZW8pIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHNob3VsZCB0YWtlIHRoZSBoaWdoZXN0LXF1YWxpdHkgaW1hZ2UKK3Bvc3NpYmxlIChnaXZlbiB0aGUgb3RoZXIgc2V0dGluZ3MpIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUKK2ZyYW1lIHJhdGUgb2YgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPiAgPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIFpTTCB1c2VjYXNlOyB0aGUKK2FwcGxpY2F0aW9uIHdpbGwgc3RyZWFtIGZ1bGwtcmVzb2x1dGlvbiBpbWFnZXMgYW5kCityZXByb2Nlc3Mgb25lIG9yIHNldmVyYWwgbGF0ZXIgZm9yIGEgZmluYWwKK2NhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFOVUFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIG1hbnVhbCBjYXB0dXJlIHVzZSBjYXNlIHdoZXJlCit0aGUgYXBwbGljYXRpb25zIHdhbnQgdG8gZGlyZWN0bHkgY29udHJvbCB0aGUgY2FwdHVyZSBwYXJhbWV0ZXJzLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IHdpc2ggdG8gbWFudWFsbHkgY29udHJvbAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGV0Yy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JbmZvcm1hdGlvbiB0byB0aGUgY2FtZXJhIGRldmljZSAzQSAoYXV0by1leHBvc3VyZSw8d2JyLz4KK2F1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSkgcm91dGluZXMgYWJvdXQgdGhlIHB1cnBvc2UKK29mIHRoaXMgY2FwdHVyZSw8d2JyLz4gdG8gaGVscCB0aGUgY2FtZXJhIGRldmljZSB0byBkZWNpZGUgb3B0aW1hbCAzQQorc3RyYXRlZ3kuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgKGV4Y2VwdCBmb3IgTUFOVUFMKSBpcyBvbmx5IGVmZmVjdGl2ZSBpZgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPiBhbmQgYW55IDNBIHJvdXRpbmUgaXMgYWN0aXZlLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgd2lsbCBiZSBzdXBwb3J0ZWQgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPgorY29udGFpbnMgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORy48d2JyLz4gTUFOVUFMIHdpbGwgYmUgc3VwcG9ydGVkIGlmCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIE1BTlVBTF88d2JyLz5TRU5TT1IuPHdici8+IE90aGVyIGludGVudCB2YWx1ZXMgYXJlCithbHdheXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiU3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPlN0YXRlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOQUNUSVZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BV0IgaXMgbm90IGluIGF1dG8gbW9kZSw8d2JyLz4gb3IgaGFzIG5vdCB5ZXQgc3RhcnRlZCBtZXRlcmluZy48d2JyLz48L3A+Cis8cD5XaGVuIGEgY2FtZXJhIGRldmljZSBpcyBvcGVuZWQsPHdici8+IGl0IHN0YXJ0cyBpbiB0aGlzCitzdGF0ZS48d2JyLz4gVGhpcyBpcyBhIHRyYW5zaWVudCBzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5Citza2lwIHJlcG9ydGluZyB0aGlzIHN0YXRlIGluIGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRUFSQ0hJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFXQiBkb2Vzbid0IHlldCBoYXZlIGEgZ29vZCBzZXQgb2YgY29udHJvbAordmFsdWVzIGZvciB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+Cis8cD5UaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQorbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVkVSR0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BV0IgaGFzIGEgZ29vZCBzZXQgb2YgY29udHJvbCB2YWx1ZXMgZm9yIHRoZQorY3VycmVudCBzY2VuZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5MT0NLRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFXQiBoYXMgYmVlbiBsb2NrZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q3VycmVudCBzdGF0ZSBvZiBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlN3aXRjaGluZyBiZXR3ZWVuIG9yIGVuYWJsaW5nIEFXQiBtb2RlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4pIGFsd2F5cworcmVzZXRzIHRoZSBBV0Igc3RhdGUgdG8gSU5BQ1RJVkUuPHdici8+IFNpbWlsYXJseSw8d2JyLz4gc3dpdGNoaW5nIGJldHdlZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4sPHdici8+CitvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTwvYT4gaWYgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREU8L2NvZGU+IHJlc2V0cyBhbGwKK3RoZSBhbGdvcml0aG0gc3RhdGVzIHRvIElOQUNUSVZFLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIGNhbiBkbyBzZXZlcmFsIHN0YXRlIHRyYW5zaXRpb25zIGJldHdlZW4gdHdvIHJlc3VsdHMsPHdici8+IGlmIGl0IGlzCithbGxvd2VkIGJ5IHRoZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLjx3YnIvPiBTbyBJTkFDVElWRSBtYXkgbmV2ZXIgYWN0dWFsbHkgYmUgc2VlbiBpbgorYSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHN0YXRlIGluIHRoZSByZXN1bHQgaXMgdGhlIHN0YXRlIGZvciB0aGlzIGltYWdlIChpbiBzeW5jIHdpdGggdGhpcyBpbWFnZSk6IGlmCitBV0Igc3RhdGUgYmVjb21lcyBDT05WRVJHRUQsPHdici8+IHRoZW4gdGhlIGltYWdlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVzdWx0IHNob3VsZAorYmUgZ29vZCB0byB1c2UuPHdici8+PC9wPgorPHA+QmVsb3cgYXJlIHN0YXRlIHRyYW5zaXRpb24gdGFibGVzIGZvciBkaWZmZXJlbnQgQVdCIG1vZGVzLjx3YnIvPjwvcD4KKzxwPldoZW4gPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gIT0gQVdCXzx3YnIvPk1PREVfPHdici8+QVVUTzwvY29kZT46PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGF1dG8gd2hpdGUgYmFsYW5jZSBhbGdvcml0aG0gaXMgZGlzYWJsZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiBpcyBBV0JfPHdici8+TU9ERV88d2JyLz5BVVRPOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQVdCIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZXMgQVdCIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+R29vZCB2YWx1ZXMsPHdici8+IG5vdCBjaGFuZ2luZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQVdCIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBpcyBPTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBpcyBPRkY8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIG5vdCBnb29kIGFmdGVyIHVubG9jazwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5Gb3IgdGhlIGFib3ZlIHRhYmxlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcgYW55IHN0YXRlIGNoYW5nZXMgdGhhdCBoYXBwZW4KK3dpdGhvdXQgYXBwbGljYXRpb24gaW50ZXJ2ZW50aW9uIChpLjx3YnIvPmUuPHdici8+IG1vZGUgc3dpdGNoLDx3YnIvPiB0cmlnZ2VyLDx3YnIvPiBsb2NraW5nKS48d2JyLz4gQW55IHN0YXRlIHRoYXQKK2NhbiBiZSBza2lwcGVkIGluIHRoYXQgbWFubmVyIGlzIGNhbGxlZCBhIHRyYW5zaWVudCBzdGF0ZS48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gZm9yIHRoaXMgQVdCIG1vZGUgKEFXQl88d2JyLz5NT0RFXzx3YnIvPkFVVE8pLDx3YnIvPiBpbiBhZGRpdGlvbiB0byB0aGUgc3RhdGUgdHJhbnNpdGlvbnMKK2xpc3RlZCBpbiBhYm92ZSB0YWJsZSw8d2JyLz4gaXQgaXMgYWxzbyBsZWdhbCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UgdG8gc2tpcCBvbmUgb3IgbW9yZQordHJhbnNpZW50IHN0YXRlcyBiZXR3ZWVuIHR3byByZXN1bHRzLjx3YnIvPiBTZWUgYmVsb3cgdGFibGUgZm9yIGV4YW1wbGVzOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmaW5pc2hlZCBBV0Igc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgYXJlIGFscmVhZHkgZ29vZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4gaXMgT0ZGPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBnb29kIGFmdGVyIHVubG9jayw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGNvbG9yIGVmZmVjdCB3aWxsIGJlIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TU9OTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAibW9ub2NvbG9yIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIGlzIG1hcHBlZCBpbnRvCithIHNpbmdsZSBjb2xvci48d2JyLz48L3A+Cis8cD5UaGlzIHdpbGwgdHlwaWNhbGx5IGJlIGdyYXlzY2FsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ORUdBVElWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAicGhvdG8tbmVnYXRpdmUiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UncyBjb2xvcnMKK2FyZSBpbnZlcnRlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TT0xBUklaRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic29sYXJpc2F0aW9uIiBlZmZlY3QgKFNhYmF0dGllciBlZmZlY3QpIHdoZXJlIHRoZQoraW1hZ2UgaXMgd2hvbGx5IG9yIHBhcnRpYWxseSByZXZlcnNlZCBpbgordG9uZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRVBJQTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAic2VwaWEiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgbWFwcGVkIGludG8gd2FybQorZ3JheSw8d2JyLz4gcmVkLDx3YnIvPiBhbmQgYnJvd24gdG9uZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9TVEVSSVpFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJwb3N0ZXJpemF0aW9uIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIHVzZXMKK2Rpc2NyZXRlIHJlZ2lvbnMgb2YgdG9uZSByYXRoZXIgdGhhbiBhIGNvbnRpbnVvdXMKK2dyYWRpZW50IG9mIHRvbmVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPldISVRFQk9BUkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkEgIndoaXRlYm9hcmQiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgdHlwaWNhbGx5IGRpc3BsYXllZAorYXMgcmVnaW9ucyBvZiB3aGl0ZSw8d2JyLz4gd2l0aCBibGFjayBvciBncmV5IGRldGFpbHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkxBQ0tCT0FSRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAiYmxhY2tib2FyZCIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyB0eXBpY2FsbHkgZGlzcGxheWVkCithcyByZWdpb25zIG9mIGJsYWNrLDx3YnIvPiB3aXRoIHdoaXRlIG9yIGdyZXkgZGV0YWlscy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BUVVBPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbiAiYXF1YSIgZWZmZWN0IHdoZXJlIGEgYmx1ZSBodWUgaXMgYWRkZWQgdG8gdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgc3BlY2lhbCBjb2xvciBlZmZlY3QgdG8gYXBwbHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVmZmVjdHM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gdGhpcyBtb2RlIGlzIHNldCw8d2JyLz4gYSBjb2xvciBlZmZlY3Qgd2lsbCBiZSBhcHBsaWVkCit0byBpbWFnZXMgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZSBpbnRlcnByZXRhdGlvbgorYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGNvbG9yIGVmZmVjdHMgaXMgbGVmdCB0byB0aGUKK2ltcGxlbWVudG9yIG9mIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgc2hvdWxkIG5vdCBiZQorZGVwZW5kZWQgb24gdG8gYmUgY29uc2lzdGVudCAob3IgcHJlc2VudCkgYWNyb3NzIGFsbAorZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZ1bGwgYXBwbGljYXRpb24gY29udHJvbCBvZiBwaXBlbGluZS48d2JyLz48L3A+Cis8cD5BbGwgY29udHJvbCBieSB0aGUgZGV2aWNlJ3MgbWV0ZXJpbmcgYW5kIGZvY3VzaW5nICgzQSkKK3JvdXRpbmVzIGlzIGRpc2FibGVkLDx3YnIvPiBhbmQgbm8gb3RoZXIgc2V0dGluZ3MgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGhhdmUgYW55IGVmZmVjdCw8d2JyLz4gZXhjZXB0IHRoYXQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IG1heSBiZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSB0byBzZWxlY3QgcG9zdC1wcm9jZXNzaW5nIHZhbHVlcyBmb3IgcHJvY2Vzc2luZworYmxvY2tzIHRoYXQgZG8gbm90IGFsbG93IGZvciBtYW51YWwgY29udHJvbCw8d2JyLz4gb3IgYXJlIG5vdAorZXhwb3NlZCBieSB0aGUgY2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5Ib3dldmVyLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIDNBIHJvdXRpbmVzIG1heSBjb250aW51ZSB0bworY29sbGVjdCBzdGF0aXN0aWNzIGFuZCB1cGRhdGUgdGhlaXIgaW50ZXJuYWwgc3RhdGUgc28gdGhhdAord2hlbiBjb250cm9sIGlzIHN3aXRjaGVkIHRvIEFVVE8gbW9kZSw8d2JyLz4gZ29vZCBjb250cm9sIHZhbHVlcworY2FuIGJlIGltbWVkaWF0ZWx5IGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHNldHRpbmdzIGZvciBlYWNoIGluZGl2aWR1YWwgM0Egcm91dGluZS48d2JyLz48L3A+Cis8cD5NYW51YWwgY29udHJvbCBvZiBjYXB0dXJlIHBhcmFtZXRlcnMgaXMgZGlzYWJsZWQuPHdici8+IEFsbAorY29udHJvbHMgaW4gYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogYmVzaWRlcyBzY2VuZU1vZGUgdGFrZQorZWZmZWN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVTRV9TQ0VORV9NT0RFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgYSBzcGVjaWZpYyBzY2VuZSBtb2RlLjx3YnIvPjwvcD4KKzxwPkVuYWJsaW5nIHRoaXMgZGlzYWJsZXMgY29udHJvbC48d2JyLz5hZU1vZGUsPHdici8+IGNvbnRyb2wuPHdici8+YXdiTW9kZSBhbmQKK2NvbnRyb2wuPHdici8+YWZNb2RlIGNvbnRyb2xzOyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZQordGhvc2Ugc2V0dGluZ3Mgd2hpbGUgVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUgaXMgYWN0aXZlIChleGNlcHQgZm9yCitGQUNFXzx3YnIvPlBSSU9SSVRZIHNjZW5lIG1vZGUpLjx3YnIvPiBPdGhlciBjb250cm9sIGVudHJpZXMgYXJlIHN0aWxsIGFjdGl2ZS48d2JyLz4KK1RoaXMgc2V0dGluZyBjYW4gb25seSBiZSB1c2VkIGlmIHNjZW5lIG1vZGUgaXMgc3VwcG9ydGVkIChpLjx3YnIvPmUuPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT4KK2NvbnRhaW4gc29tZSBtb2RlcyBvdGhlciB0aGFuIERJU0FCTEVEKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkZfS0VFUF9TVEFURTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2FtZSBhcyBPRkYgbW9kZSw8d2JyLz4gZXhjZXB0IHRoYXQgdGhpcyBjYXB0dXJlIHdpbGwgbm90IGJlCit1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgYmFja2dyb3VuZCBhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UgYW5kCithdXRvLWZvY3VzIGFsZ29yaXRobXMgKDNBKSB0byB1cGRhdGUgdGhlaXIgc3RhdGlzdGljcy48d2JyLz48L3A+Cis8cD5TcGVjaWZpY2FsbHksPHdici8+IHRoZSAzQSByb3V0aW5lcyBhcmUgbG9ja2VkIHRvIHRoZSBsYXN0Cit2YWx1ZXMgc2V0IGZyb20gYSByZXF1ZXN0IHdpdGggQVVUTyw8d2JyLz4gT0ZGLDx3YnIvPiBvcgorVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUsPHdici8+IGFuZCBhbnkgc3RhdGlzdGljcyBvciBzdGF0ZSB1cGRhdGVzCitjb2xsZWN0ZWQgZnJvbSBtYW51YWwgY2FwdHVyZXMgd2l0aCBPRkZfPHdici8+S0VFUF88d2JyLz5TVEFURSB3aWxsIGJlCitkaXNjYXJkZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3ZlcmFsbCBtb2RlIG9mIDNBIChhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlLWJhbGFuY2UsPHdici8+IGF1dG8tZm9jdXMpIGNvbnRyb2wKK3JvdXRpbmVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSB0b3AtbGV2ZWwgM0EgY29udHJvbCBzd2l0Y2guPHdici8+IFdoZW4gc2V0IHRvIE9GRiw8d2JyLz4gYWxsIDNBIGNvbnRyb2wKK2J5IHRoZSBjYW1lcmEgZGV2aWNlIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gbXVzdCBzZXQgdGhlIGZpZWxkcyBmb3IKK2NhcHR1cmUgcGFyYW1ldGVycyBpdHNlbGYuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gQVVUTyw8d2JyLz4gdGhlIGluZGl2aWR1YWwgYWxnb3JpdGhtIGNvbnRyb2xzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBhcmUgaW4gZWZmZWN0LDx3YnIvPiBzdWNoIGFzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERSw8d2JyLz4gdGhlIGluZGl2aWR1YWwgY29udHJvbHMgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGFyZSBtb3N0bHkgZGlzYWJsZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhIGRldmljZSBpbXBsZW1lbnRzCitvbmUgb2YgdGhlIHNjZW5lIG1vZGUgc2V0dGluZ3MgKHN1Y2ggYXMgQUNUSU9OLDx3YnIvPiBTVU5TRVQsPHdici8+IG9yIFBBUlRZKQorYXMgaXQgd2lzaGVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSBzY2VuZSBtb2RlIDNBIHNldHRpbmdzIGFyZSBwcm92aWRlZCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0Lmh0bWwiPmNhcHR1cmUgcmVzdWx0czwvYT4uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gT0ZGXzx3YnIvPktFRVBfPHdici8+U1RBVEUsPHdici8+IGl0IGlzIHNpbWlsYXIgdG8gT0ZGIG1vZGUsPHdici8+IHRoZSBvbmx5IGRpZmZlcmVuY2UKK2lzIHRoYXQgdGhpcyBmcmFtZSB3aWxsIG5vdCBiZSB1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgYmFja2dyb3VuZCAzQSBzdGF0aXN0aWNzCit1cGRhdGUsPHdici8+IGFzIGlmIHRoaXMgZnJhbWUgaXMgbmV2ZXIgY2FwdHVyZWQuPHdici8+IFRoaXMgbW9kZSBjYW4gYmUgdXNlZCBpbiB0aGUgc2NlbmFyaW8KK3doZXJlIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IHdhbnQgYSAzQSBtYW51YWwgY29udHJvbCBjYXB0dXJlIHRvIGFmZmVjdAordGhlIHN1YnNlcXVlbnQgYXV0byAzQSBjYXB0dXJlIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRJU0FCTEVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4wPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmRpY2F0ZXMgdGhhdCBubyBzY2VuZSBtb2RlcyBhcmUgc2V0IGZvciBhIGdpdmVuIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUNFX1BSSU9SSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JZiBmYWNlIGRldGVjdGlvbiBzdXBwb3J0IGV4aXN0cyw8d2JyLz4gdXNlIGZhY2UKK2RldGVjdGlvbiBkYXRhIGZvciBhdXRvLWZvY3VzLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UsPHdici8+IGFuZAorYXV0by1leHBvc3VyZSByb3V0aW5lcy48d2JyLz48L3A+Cis8cD5JZiBmYWNlIGRldGVjdGlvbiBzdGF0aXN0aWNzIGFyZSBkaXNhYmxlZAorKGkuPHdici8+ZS48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiBpcyBzZXQgdG8gT0ZGKSw8d2JyLz4KK3RoaXMgc2hvdWxkIHN0aWxsIG9wZXJhdGUgY29ycmVjdGx5IChidXQgd2lsbCBub3QgcmV0dXJuCitmYWNlIGRldGVjdGlvbiBzdGF0aXN0aWNzIHRvIHRoZSBmcmFtZXdvcmspLjx3YnIvPjwvcD4KKzxwPlVubGlrZSB0aGUgb3RoZXIgc2NlbmUgbW9kZXMsPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+CityZW1haW4gYWN0aXZlIHdoZW4gRkFDRV88d2JyLz5QUklPUklUWSBpcyBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QUNUSU9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBxdWlja2x5IG1vdmluZyBvYmplY3RzLjx3YnIvPjwvcD4KKzxwPlNpbWlsYXIgdG8gU1BPUlRTLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBPUlRSQUlUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHN0aWxsIHBob3RvcyBvZiBwZW9wbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TEFORFNDQVBFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBkaXN0YW50IG1hY3Jvc2NvcGljIG9iamVjdHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TklHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgbG93LWxpZ2h0IHNldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5JR0hUX1BPUlRSQUlUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHN0aWxsIHBob3RvcyBvZiBwZW9wbGUgaW4gbG93LWxpZ2h0CitzZXR0aW5ncy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5USEVBVFJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGRpbSw8d2JyLz4gaW5kb29yIHNldHRpbmdzIHdoZXJlIGZsYXNoIG11c3QKK3JlbWFpbiBvZmYuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkVBQ0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYnJpZ2h0LDx3YnIvPiBvdXRkb29yIGJlYWNoIHNldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNOT1c8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYnJpZ2h0LDx3YnIvPiBvdXRkb29yIHNldHRpbmdzIGNvbnRhaW5pbmcgc25vdy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVU5TRVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc2NlbmVzIG9mIHRoZSBzZXR0aW5nIHN1bi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEVBRFlQSE9UTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIHRvIGF2b2lkIGJsdXJyeSBwaG90b3MgZHVlIHRvIHNtYWxsIGFtb3VudHMgb2YKK2RldmljZSBtb3Rpb24gKGZvciBleGFtcGxlOiBkdWUgdG8gaGFuZCBzaGFrZSkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RklSRVdPUktTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIG5pZ2h0dGltZSBwaG90b3Mgb2YgZmlyZXdvcmtzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNQT1JUUzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBwaG90b3Mgb2YgcXVpY2tseSBtb3ZpbmcgcGVvcGxlLjx3YnIvPjwvcD4KKzxwPlNpbWlsYXIgdG8gQUNUSU9OLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBBUlRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGRpbSw8d2JyLz4gaW5kb29yIHNldHRpbmdzIHdpdGggbXVsdGlwbGUgbW92aW5nCitwZW9wbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FORExFTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltIHNldHRpbmdzIHdoZXJlIHRoZSBtYWluIGxpZ2h0IHNvdXJjZQoraXMgYSBmbGFtZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CQVJDT0RFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGFjY3VyYXRlbHkgY2FwdHVyaW5nIGEgcGhvdG8gb2YgYmFyY29kZQorZm9yIHVzZSBieSBjYW1lcmEgYXBwbGljYXRpb25zIHRoYXQgd2lzaCB0byByZWFkIHRoZQorYmFyY29kZSB2YWx1ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1NQRUVEX1ZJREVPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBpcyBkZXByZWNhdGVkLDx3YnIvPiBwbGVhc2UgdXNlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+CithbmQgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uLmh0bWwjY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3QiPkNhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24jY3JlYXRlSGlnaFNwZWVkUmVxdWVzdExpc3Q8L2E+Citmb3IgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcuPHdici8+PC9wPgorPHA+T3B0aW1pemVkIGZvciBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZyAoZnJhbWUgcmF0ZSAmZ3Q7PTYwZnBzKSB1c2UgY2FzZS48d2JyLz48L3A+Cis8cD5UaGUgc3VwcG9ydGVkIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZXMgYW5kIGZwcyByYW5nZXMgYXJlIHNwZWNpZmllZCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPiBUbyBnZXQgZGVzaXJlZAorb3V0cHV0IGZyYW1lIHJhdGVzLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gaXMgb25seSBhbGxvd2VkIHRvIHNlbGVjdCB2aWRlbyBzaXplCithbmQgZnBzIHJhbmdlIGNvbWJpbmF0aW9ucyBsaXN0ZWQgaW4gdGhpcyBzdGF0aWMgbWV0YWRhdGEuPHdici8+IFRoZSBmcHMgcmFuZ2UKK2NhbiBiZSBjb250cm9sIHZpYSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPi48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb3ZlcnJpZGUgYWVNb2RlLDx3YnIvPiBhd2JNb2RlLDx3YnIvPiBhbmQgYWZNb2RlIHRvCitPTiw8d2JyLz4gT04sPHdici8+IGFuZCBDT05USU5VT1VTXzx3YnIvPlZJREVPLDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IEFsbCBwb3N0LXByb2Nlc3NpbmcgYmxvY2sgbW9kZQorY29udHJvbHMgd2lsbCBiZSBvdmVycmlkZGVuIHRvIGJlIEZBU1QuPHdici8+IFRoZXJlZm9yZSw8d2JyLz4gbm8gbWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZQorYW5kIHBvc3QtcHJvY2Vzc2luZyBwYXJhbWV0ZXJzIGlzIHBvc3NpYmxlLjx3YnIvPiBBbGwgb3RoZXIgY29udHJvbHMgb3BlcmF0ZSB0aGUKK3NhbWUgYXMgd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBBVVRPLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYWxsIG90aGVyCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBmaWVsZHMgY29udGludWUgdG8gd29yayw8d2JyLz4gc3VjaCBhczwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT48L2xpPgorPC91bD4KKzxwPk91dHNpZGUgb2YgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiosPHdici8+IHRoZSBmb2xsb3dpbmcgY29udHJvbHMgd2lsbCB3b3JrOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IChhdXRvbWF0aWMgZmxhc2ggZm9yIHN0aWxsIGNhcHR1cmUgd2lsbCBub3Qgd29yayBzaW5jZSBhZU1vZGUgaXMgT04pPC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gKGlmIGl0IGlzIHN1cHBvcnRlZCk8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPjwvbGk+Cis8L3VsPgorPHA+Rm9yIGhpZ2ggc3BlZWQgcmVjb3JkaW5nIHVzZSBjYXNlLDx3YnIvPiB0aGUgYWN0dWFsIG1heGltdW0gc3VwcG9ydGVkIGZyYW1lIHJhdGUgbWF5CitiZSBsb3dlciB0aGFuIHdoYXQgY2FtZXJhIGNhbiBvdXRwdXQsPHdici8+IGRlcGVuZGluZyBvbiB0aGUgZGVzdGluYXRpb24gU3VyZmFjZXMgZm9yCit0aGUgaW1hZ2UgZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBkZXN0aW5hdGlvbiBzdXJmYWNlIGlzIGZyb20gdmlkZW8gZW5jb2Rlciw8d2JyLz4KK3RoZSBhcHBsaWNhdGlvbiBuZWVkIGNoZWNrIGlmIHRoZSB2aWRlbyBlbmNvZGVyIGlzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyB0aGUKK2hpZ2ggZnJhbWUgcmF0ZSBmb3IgYSBnaXZlbiB2aWRlbyBzaXplLDx3YnIvPiBvciBpdCB3aWxsIGVuZCB1cCB3aXRoIGxvd2VyIHJlY29yZGluZworZnJhbWUgcmF0ZS48d2JyLz4gSWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSBwcmV2aWV3IHdpbmRvdyw8d2JyLz4gdGhlIHByZXZpZXcgZnJhbWUKK3JhdGUgd2lsbCBiZSBib3VuZGVkIGJ5IHRoZSBzY3JlZW4gcmVmcmVzaCByYXRlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb25seSBzdXBwb3J0IHVwIHRvIDIgb3V0cHV0IGhpZ2ggc3BlZWQgc3RyZWFtcworKHByb2Nlc3NlZCBub24tc3RhbGxpbmcgZm9ybWF0IGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPk91dHB1dDx3YnIvPlN0cmVhbXM8L2E+KQoraW4gdGhpcyBtb2RlLjx3YnIvPiBUaGlzIGNvbnRyb2wgd2lsbCBiZSBlZmZlY3RpdmUgb25seSBpZiBhbGwgb2YgYmVsb3cgY29uZGl0aW9ucyBhcmUgdHJ1ZTo8L3A+Cis8dWw+Cis8bGk+VGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgbm8gbW9yZSB0aGFuIG1heE51bUhpZ2hTcGVlZFN0cmVhbXMgcHJvY2Vzc2VkIG5vbi1zdGFsbGluZworZm9ybWF0IG91dHB1dCBzdHJlYW1zLDx3YnIvPiB3aGVyZSBtYXhOdW1IaWdoU3BlZWRTdHJlYW1zIGlzIGNhbGN1bGF0ZWQgYXMKK21pbigyLDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+U3RyZWFtczwvYT5bUHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKV0pLjx3YnIvPjwvbGk+Cis8bGk+VGhlIHN0cmVhbSBzaXplcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc2l6ZXMgcmVwb3J0ZWQgYnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz48L2xpPgorPGxpPk5vIHByb2Nlc3NlZCBub24tc3RhbGxpbmcgb3IgcmF3IHN0cmVhbXMgYXJlIGNvbmZpZ3VyZWQuPHdici8+PC9saT4KKzwvdWw+Cis8cD5XaGVuIGFib3ZlIGNvbmRpdGlvbnMgYXJlIE5PVCBzYXRpc3RpZWQsPHdici8+IHRoZSBjb250cm9scyBvZiB0aGlzIG1vZGUgYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPiB3aWxsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSB3aWxsIGZhbGwgYmFjayB0byA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA8Y29kZT49PTwvY29kZT4gQVVUTyw8d2JyLz4KK2FuZCB0aGUgcmV0dXJuZWQgY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgd2lsbCBnaXZlIHRoZSBmcHMgcmFuZ2UgY2hvb3NlbgorYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIGludG8gb3Igb3V0IG9mIHRoaXMgbW9kZSBtYXkgdHJpZ2dlciBzb21lIGNhbWVyYSBJU1AvPHdici8+c2Vuc29yCityZWNvbmZpZ3VyYXRpb25zLDx3YnIvPiB3aGljaCBtYXkgaW50cm9kdWNlIGV4dHJhIGxhdGVuY3kuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQKK3RoZSBhcHBsaWNhdGlvbiBhdm9pZHMgdW5uZWNlc3Nhcnkgc2NlbmUgbW9kZSBzd2l0Y2ggYXMgbXVjaCBhcyBwb3NzaWJsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5IRFI8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlR1cm4gb24gYSBkZXZpY2Utc3BlY2lmaWMgaGlnaCBkeW5hbWljIHJhbmdlIChIRFIpIG1vZGUuPHdici8+PC9wPgorPHA+SW4gdGhpcyBzY2VuZSBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBjYXB0dXJlcyBpbWFnZXMKK3RoYXQga2VlcCBhIGxhcmdlciByYW5nZSBvZiBzY2VuZSBpbGx1bWluYXRpb24gbGV2ZWxzCit2aXNpYmxlIGluIHRoZSBmaW5hbCBpbWFnZS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IHdoZW4gdGFraW5nIGEKK3BpY3R1cmUgb2YgYSBvYmplY3QgaW4gZnJvbnQgb2YgYSBicmlnaHQgd2luZG93LDx3YnIvPiBib3RoCit0aGUgb2JqZWN0IGFuZCB0aGUgc2NlbmUgdGhyb3VnaCB0aGUgd2luZG93IG1heSBiZQordmlzaWJsZSB3aGVuIHVzaW5nIEhEUiBtb2RlLDx3YnIvPiB3aGlsZSBpbiBub3JtYWwgQVVUTyBtb2RlLDx3YnIvPgorb25lIG9yIHRoZSBvdGhlciBtYXkgYmUgcG9vcmx5IGV4cG9zZWQuPHdici8+IEFzIGEgdHJhZGVvZmYsPHdici8+CitIRFIgbW9kZSBnZW5lcmFsbHkgdGFrZXMgbXVjaCBsb25nZXIgdG8gY2FwdHVyZSBhIHNpbmdsZQoraW1hZ2UsPHdici8+IGhhcyBubyB1c2VyIGNvbnRyb2wsPHdici8+IGFuZCBtYXkgaGF2ZSBvdGhlciBhcnRpZmFjdHMKK2RlcGVuZGluZyBvbiB0aGUgSERSIG1ldGhvZCB1c2VkLjx3YnIvPjwvcD4KKzxwPlRoZXJlZm9yZSw8d2JyLz4gSERSIGNhcHR1cmVzIG9wZXJhdGUgYXQgYSBtdWNoIHNsb3dlciByYXRlCit0aGFuIHJlZ3VsYXIgY2FwdHVyZXMuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiBvbiBMSU1JVEVEIG9yIEZVTEwgZGV2aWNlcyw8d2JyLz4gd2hlbiBhIHJlcXVlc3QKK2lzIG1hZGUgd2l0aCBhIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IG9mCitTVElMTF88d2JyLz5DQVBUVVJFLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGNhcHR1cmUgYW4gaW1hZ2UKK3VzaW5nIGEgaGlnaCBkeW5hbWljIHJhbmdlIGNhcHR1cmUgdGVjaG5pcXVlLjx3YnIvPiAgT24gTEVHQUNZCitkZXZpY2VzLDx3YnIvPiBjYXB0dXJlcyB0aGF0IHRhcmdldCBhIEpQRUctZm9ybWF0IG91dHB1dCB3aWxsCitiZSBjYXB0dXJlZCB3aXRoIEhEUiw8d2JyLz4gYW5kIHRoZSBjYXB0dXJlIGludGVudCBpcyBub3QKK3JlbGV2YW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBIRFIgY2FwdHVyZSBtYXkgaW52b2x2ZSB0aGUgZGV2aWNlIGNhcHR1cmluZyBhIGJ1cnN0CitvZiBpbWFnZXMgaW50ZXJuYWxseSBhbmQgY29tYmluaW5nIHRoZW0gaW50byBvbmUsPHdici8+IG9yIGl0CittYXkgaW52b2x2ZSB0aGUgZGV2aWNlIHVzaW5nIHNwZWNpYWxpemVkIGhpZ2ggZHluYW1pYworcmFuZ2UgY2FwdHVyZSBoYXJkd2FyZS48d2JyLz4gSW4gYWxsIGNhc2VzLDx3YnIvPiBhIHNpbmdsZSBpbWFnZSBpcworcHJvZHVjZWQgaW4gcmVzcG9uc2UgdG8gYSBjYXB0dXJlIHJlcXVlc3Qgc3VibWl0dGVkCit3aGlsZSBpbiBIRFIgbW9kZS48d2JyLz48L3A+Cis8cD5TaW5jZSBzdWJzdGFudGlhbCBwb3N0LXByb2Nlc3NpbmcgaXMgZ2VuZXJhbGx5IG5lZWRlZCB0bworcHJvZHVjZSBhbiBIRFIgaW1hZ2UsPHdici8+IG9ubHkgWVVWLDx3YnIvPiBQUklWQVRFLDx3YnIvPiBhbmQgSlBFRworb3V0cHV0cyBhcmUgc3VwcG9ydGVkIGZvciBMSU1JVEVELzx3YnIvPkZVTEwgZGV2aWNlIEhEUgorY2FwdHVyZXMsPHdici8+IGFuZCBvbmx5IEpQRUcgb3V0cHV0cyBhcmUgc3VwcG9ydGVkIGZvciBMRUdBQ1kKK0hEUiBjYXB0dXJlcy48d2JyLz4gVXNpbmcgYSBSQVcgb3V0cHV0IGZvciBIRFIgY2FwdHVyZSBpcyBub3QKK3N1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5Tb21lIGRldmljZXMgbWF5IGFsc28gc3VwcG9ydCBhbHdheXMtb24gSERSLDx3YnIvPiB3aGljaAorYXBwbGllcyBIRFIgcHJvY2Vzc2luZyBhdCBmdWxsIGZyYW1lIHJhdGUuPHdici8+ICBGb3IgdGhlc2UKK2RldmljZXMsPHdici8+IGludGVudHMgb3RoZXIgdGhhbiBTVElMTF88d2JyLz5DQVBUVVJFIHdpbGwgYWxzbworcHJvZHVjZSBhbiBIRFIgb3V0cHV0IHdpdGggbm8gZnJhbWUgcmF0ZSBpbXBhY3QgY29tcGFyZWQKK3RvIG5vcm1hbCBvcGVyYXRpb24sPHdici8+IHRob3VnaCB0aGUgcXVhbGl0eSBtYXkgYmUgbG93ZXIKK3RoYW4gZm9yIFNUSUxMXzx3YnIvPkNBUFRVUkUgaW50ZW50cy48d2JyLz48L3A+Cis8cD5JZiBTQ0VORV88d2JyLz5NT0RFXzx3YnIvPkhEUiBpcyB1c2VkIHdpdGggdW5zdXBwb3J0ZWQgb3V0cHV0IHR5cGVzCitvciBjYXB0dXJlIGludGVudHMsPHdici8+IHRoZSBpbWFnZXMgY2FwdHVyZWQgd2lsbCBiZSBhcyBpZgordGhlIFNDRU5FXzx3YnIvPk1PREUgd2FzIG5vdCBlbmFibGVkIGF0IGFsbC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUNFX1BSSU9SSVRZX0xPV19MSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TYW1lIGFzIEZBQ0VfPHdici8+UFJJT1JJVFkgc2NlbmUgbW9kZSw8d2JyLz4gZXhjZXB0IHRoYXQgdGhlIGNhbWVyYQorZGV2aWNlIHdpbGwgY2hvb3NlIGhpZ2hlciBzZW5zaXRpdml0eSB2YWx1ZXMgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KQordW5kZXIgbG93IGxpZ2h0IGNvbmRpdGlvbnMuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgbWF5IGJlIHR1bmVkIHRvIGV4cG9zZSB0aGUgaW1hZ2VzIGluIGEgcmVkdWNlZAorc2Vuc2l0aXZpdHkgcmFuZ2UgdG8gcHJvZHVjZSB0aGUgYmVzdCBxdWFsaXR5IGltYWdlcy48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+CitpZiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT4gZ2l2ZXMgcmFuZ2Ugb2YgWzEwMCw8d2JyLz4gMTYwMF0sPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgdHVuaW5nIHByb2Nlc3MgbWF5IGxpbWl0IHRoZSBhY3R1YWwKK2V4cG9zdXJlIHNlbnNpdGl2aXR5IHJhbmdlIHRvIFsxMDAsPHdici8+IDEyMDBdIHRvIGVuc3VyZSB0aGF0IHRoZSBub2lzZSBsZXZlbCBpc24ndAorZXhlc3NpdmUgaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGltYWdlIHF1YWxpdHkuPHdici8+IFVuZGVyIHRoaXMgc2l0dWF0aW9uLDx3YnIvPiB0aGUgaW1hZ2UgdW5kZXIKK2xvdyBsaWdodCBtYXkgYmUgdW5kZXItZXhwb3NlZCB3aGVuIHRoZSBzZW5zb3IgbWF4IGV4cG9zdXJlIHRpbWUgKGJvdW5kZWQgYnkgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPiB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBvbmUgb2YgdGhlCitPTl88d2JyLz4qIG1vZGVzKSBhbmQgZWZmZWN0aXZlIG1heCBzZW5zaXRpdml0eSBhcmUgcmVhY2hlZC48d2JyLz4gVGhpcyBzY2VuZSBtb2RlIGFsbG93cyB0aGUKK2NhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByb3V0aW5lIHRvIGluY3JlYXNlIHRoZSBzZW5zaXRpdml0eSB1cCB0byB0aGUgbWF4CitzZW5zaXRpdml0eSBzcGVjaWZpZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT4gd2hlbiB0aGUgc2NlbmUgaXMgdG9vCitkYXJrIGFuZCB0aGUgbWF4IGV4cG9zdXJlIHRpbWUgaXMgcmVhY2hlZC48d2JyLz4gVGhlIGNhcHR1cmVkIGltYWdlcyBtYXkgYmUgbm9pc2llcgorY29tcGFyZWQgd2l0aCB0aGUgaW1hZ2VzIGNhcHR1cmVkIGluIG5vcm1hbCBGQUNFXzx3YnIvPlBSSU9SSVRZIG1vZGU7IHRoZXJlZm9yZSw8d2JyLz4gaXQgaXMKK3JlY29tbWVuZGVkIHRoYXQgdGhlIGFwcGxpY2F0aW9uIG9ubHkgdXNlIHRoaXMgc2NlbmUgbW9kZSB3aGVuIGl0IGlzIGNhcGFibGUgb2YKK3JlZHVjaW5nIHRoZSBub2lzZSBsZXZlbCBvZiB0aGUgY2FwdHVyZWQgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPlVubGlrZSB0aGUgb3RoZXIgc2NlbmUgbW9kZXMsPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+CityZW1haW4gYWN0aXZlIHdoZW4gRkFDRV88d2JyLz5QUklPUklUWV88d2JyLz5MT1dfPHdici8+TElHSFQgaXMgc2V0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFVklDRV9DVVNUT01fU1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1faGlkZGVuIj5baGlkZGVuXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTAwPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TY2VuZSBtb2RlIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9mCis8Y29kZT5bREVWSUNFXzx3YnIvPkNVU1RPTV88d2JyLz5TVEFSVCw8d2JyLz4gREVWSUNFXzx3YnIvPkNVU1RPTV88d2JyLz5FTkRdPC9jb2RlPiBhcmUgcmVzZXJ2ZWQgZm9yIGRldmljZSBzcGVjaWZpYworY3VzdG9taXplZCBzY2VuZSBtb2Rlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ERVZJQ0VfQ1VTVE9NX0VORDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMjc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNjZW5lIG1vZGUgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YKKzxjb2RlPltERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPlNUQVJULDx3YnIvPiBERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPkVORF08L2NvZGU+IGFyZSByZXNlcnZlZCBmb3IgZGV2aWNlIHNwZWNpZmljCitjdXN0b21pemVkIHNjZW5lIG1vZGVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbnRyb2wgZm9yIHdoaWNoIHNjZW5lIG1vZGUgaXMgY3VycmVudGx5IGFjdGl2ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2NlbmUgbW9kZXMgYXJlIGN1c3RvbSBjYW1lcmEgbW9kZXMgb3B0aW1pemVkIGZvciBhIGNlcnRhaW4gc2V0IG9mIGNvbmRpdGlvbnMgYW5kCitjYXB0dXJlIHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgdGhlIG1vZGUgdGhhdCB0aGF0IGlzIGFjdGl2ZSB3aGVuCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERTwvY29kZT4uPHdici8+IEFzaWRlIGZyb20gRkFDRV88d2JyLz5QUklPUklUWSw8d2JyLz4gdGhlc2UgbW9kZXMgd2lsbAorZGlzYWJsZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+Cit3aGlsZSBpbiB1c2UuPHdici8+PC9wPgorPHA+VGhlIGludGVycHJldGF0aW9uIGFuZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBzY2VuZSBtb2RlcyBpcyBsZWZ0Cit0byB0aGUgaW1wbGVtZW50b3Igb2YgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZWlyIGJlaGF2aW9yIHdpbGwgbm90IGJlCitjb25zaXN0ZW50IGFjcm9zcyBhbGwgZGV2aWNlcyw8d2JyLz4gYW5kIGFueSBnaXZlbiBkZXZpY2UgbWF5IG9ubHkgaW1wbGVtZW50CithIHN1YnNldCBvZiB0aGVzZSBtb2Rlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBpbmNsdWRlIHNjZW5lIG1vZGVzIGFyZSBleHBlY3RlZCB0byBwcm92aWRlCit0aGUgcGVyLXNjZW5lIHNldHRpbmdzIHRvIHVzZSBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTx3YnIvPk92ZXJyaWRlczwvYT4uPHdici8+PC9wPgorPHA+Rm9yIEhJR0hfPHdici8+U1BFRURfPHdici8+VklERU8gbW9kZSw8d2JyLz4gaWYgaXQgaXMgaW5jbHVkZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlNjZW5lPHdici8+TW9kZXM8L2E+LDx3YnIvPgordGhlIEhBTCBtdXN0IGxpc3Qgc3VwcG9ydGVkIHZpZGVvIHNpemUgYW5kIGZwcyByYW5nZSBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPiBGb3IgYSBnaXZlbiBzaXplLDx3YnIvPiBlLjx3YnIvPmcuPHdici8+CisxMjgweDcyMCw8d2JyLz4gaWYgdGhlIEhBTCBoYXMgdHdvIGRpZmZlcmVudCBzZW5zb3IgY29uZmlndXJhdGlvbnMgZm9yIG5vcm1hbCBzdHJlYW1pbmcKK21vZGUgYW5kIGhpZ2ggc3BlZWQgc3RyZWFtaW5nLDx3YnIvPiB3aGVuIHRoaXMgc2NlbmUgbW9kZSBpcyBzZXQvPHdici8+cmVzZXQgaW4gYSBzZXF1ZW5jZSBvZiBjYXB0dXJlCityZXF1ZXN0cyw8d2JyLz4gdGhlIEhBTCBtYXkgaGF2ZSB0byBzd2l0Y2ggYmV0d2VlbiBkaWZmZXJlbnQgc2Vuc29yIG1vZGVzLjx3YnIvPgorVGhpcyBtb2RlIGlzIGRlcHJlY2F0ZWQgaW4gSEFMMy48d2JyLz4zLDx3YnIvPiB0byBzdXBwb3J0IGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nLDx3YnIvPiBwbGVhc2UgaW1wbGVtZW50Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4gYW5kIENPTlNUUkFJTkVEXzx3YnIvPkhJR0hfPHdici8+U1BFRURfPHdici8+VklERU8KK2NhcGJpbGl0eSBkZWZpbmVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBkaXNhYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VmlkZW8gc3RhYmlsaXphdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdmlkZW8gc3RhYmlsaXphdGlvbiBpcworYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VmlkZW8gc3RhYmlsaXphdGlvbiBhdXRvbWF0aWNhbGx5IHdhcnBzIGltYWdlcyBmcm9tCit0aGUgY2FtZXJhIGluIG9yZGVyIHRvIHN0YWJpbGl6ZSBtb3Rpb24gYmV0d2VlbiBjb25zZWN1dGl2ZSBmcmFtZXMuPHdici8+PC9wPgorPHA+SWYgZW5hYmxlZCw8d2JyLz4gdmlkZW8gc3RhYmlsaXphdGlvbiBjYW4gbW9kaWZ5IHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHRvIGtlZXAgdGhlIHZpZGVvIHN0cmVhbSBzdGFiaWxpemVkLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlCitpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4KK3RoZSB2aWRlbyBzdGFiaWxpemF0aW9uIG1vZGVzIGluIHRoZSBmaXJzdCBzZXZlcmFsIGNhcHR1cmUgcmVzdWx0cyBtYXkKK3N0aWxsIGJlICJPRkYiLDx3YnIvPiBhbmQgaXQgd2lsbCBiZWNvbWUgIk9OIiB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcworZG9uZS48d2JyLz48L3A+Cis8cD5JbiBhZGRpdGlvbiw8d2JyLz4gbm90IGFsbCByZWNvcmRpbmcgc2l6ZXMgb3IgZnJhbWUgcmF0ZXMgbWF5IGJlIHN1cHBvcnRlZCBmb3IKK3N0YWJpbGl6YXRpb24gYnkgYSBkZXZpY2UgdGhhdCByZXBvcnRzIHN0YWJpbGl6YXRpb24gc3VwcG9ydC48d2JyLz4gSXQgaXMgZ3VhcmFudGVlZAordGhhdCBhbiBvdXRwdXQgdGFyZ2V0aW5nIGEgTWVkaWFSZWNvcmRlciBvciBNZWRpYUNvZGVjIHdpbGwgYmUgc3RhYmlsaXplZCBpZgordGhlIHJlY29yZGluZyByZXNvbHV0aW9uIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxOTIwIHggMTA4MCAod2lkdGggbGVzcyB0aGFuCitvciBlcXVhbCB0byAxOTIwLDx3YnIvPiBoZWlnaHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwODApLDx3YnIvPiBhbmQgdGhlIHJlY29yZGluZworZnJhbWUgcmF0ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzBmcHMuPHdici8+ICBBdCBvdGhlciBzaXplcyw8d2JyLz4gdGhlIENhcHR1cmVSZXN1bHQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+IGZpZWxkIHdpbGwgcmV0dXJuCitPRkYgaWYgdGhlIHJlY29yZGluZyBvdXRwdXQgaXMgbm90IHN0YWJpbGl6ZWQsPHdici8+IG9yIGlmIHRoZXJlIGFyZSBubyBvdXRwdXQKK1N1cmZhY2UgdHlwZXMgdGhhdCBjYW4gYmUgc3RhYmlsaXplZC48d2JyLz48L3A+Cis8cD5JZiBhIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYm90aCB0aGlzIG1vZGUgYW5kIE9JUworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkKK3Byb2R1Y2UgdW5kZXNpcmFibGUgaW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUKK2JvdGggYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBhZGRpdGlvbmFsIHNlbnNpdGl2aXR5IGJvb3N0IGFwcGxpZWQgdG8gb3V0cHV0IGltYWdlcworYWZ0ZXIgUkFXIHNlbnNvciBkYXRhIGlzIGNhcHR1cmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBJU08gYXJpdGhtZXRpYyB1bml0cyw8d2JyLz4gdGhlIHNhbWUgYXMgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHkKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdFJhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNvbWUgY2FtZXJhIGRldmljZXMgc3VwcG9ydCBhZGRpdGlvbmFsIGRpZ2l0YWwgc2Vuc2l0aXZpdHkgYm9vc3RpbmcgaW4gdGhlCitjYW1lcmEgcHJvY2Vzc2luZyBwaXBlbGluZSBhZnRlciBzZW5zb3IgUkFXIGltYWdlIGlzIGNhcHR1cmVkLjx3YnIvPgorU3VjaCBhIGJvb3N0IHdpbGwgYmUgYXBwbGllZCB0byBZVVYvPHdici8+SlBFRyBmb3JtYXQgb3V0cHV0IGltYWdlcyBidXQgd2lsbCBub3QKK2hhdmUgZWZmZWN0IG9uIFJBVyBvdXRwdXQgZm9ybWF0cyBsaWtlIFJBV188d2JyLz5TRU5TT1IsPHdici8+IFJBVzEwLDx3YnIvPiBSQVcxMiBvciBSQVdfPHdici8+T1BBUVVFLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhbnkgUkFXIGZvcm1hdAorb3V0cHV0cy48d2JyLz4gRm9yIGRldmljZXMgdGhhdCBkbyBzdXBwb3J0IFJBVyBmb3JtYXQgb3V0cHV0cyw8d2JyLz4gdGhpcyBrZXkgd2lsbCBhbHdheXMKK3ByZXNlbnQsPHdici8+IGFuZCBpZiBhIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0LDx3YnIvPiBpdCB3aWxsCitsaXN0IDxjb2RlPjEwMDwvY29kZT4gaW4gdGhpcyBrZXkuPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGFwcGx5IHRoZSBleGFjdCBib29zdCByZXF1ZXN0ZWQsPHdici8+IGl0IHdpbGwgcmVkdWNlIHRoZQorYm9vc3QgdG8gdGhlIG5lYXJlc3Qgc3VwcG9ydGVkIHZhbHVlLjx3YnIvPgorVGhlIGZpbmFsIGJvb3N0IHZhbHVlIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5Gb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgcG9zdCBSQVcgc2Vuc2l0aXZpdHkgYm9vc3QsPHdici8+IHRoZSBZVVYvPHdici8+SlBFRyBvdXRwdXQgaW1hZ2VzCitvZiBzdWNoIGRldmljZSB3aWxsIGhhdmUgdGhlIHRvdGFsIHNlbnNpdGl2aXR5IG9mCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiAqIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4gLzx3YnIvPiAxMDA8L2NvZGU+CitUaGUgc2Vuc2l0aXZpdHkgb2YgUkFXIGZvcm1hdCBpbWFnZXMgd2lsbCBhbHdheXMgYmUgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT48L2NvZGU+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBzZXQgdG8KK09GRjsgb3RoZXJ3aXNlIHRoZSBhdXRvLWV4cG9zdXJlIGFsZ29yaXRobSB3aWxsIG92ZXJyaWRlIHRoaXMgdmFsdWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9kZW1vc2FpYyIgY2xhc3M9InNlY3Rpb24iPmRlbW9zYWljPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZGVtb3NhaWMubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlbW9zYWljLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TWluaW1hbCBvciBubyBzbG93ZG93biBvZiBmcmFtZSByYXRlIGNvbXBhcmVkIHRvCitCYXllciBSQVcgb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW1wcm92ZWQgcHJvY2Vzc2luZyBxdWFsaXR5IGJ1dCB0aGUgZnJhbWUgcmF0ZSBtaWdodCBiZSBzbG93ZWQgZG93bgorcmVsYXRpdmUgdG8gcmF3IG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db250cm9scyB0aGUgcXVhbGl0eSBvZiB0aGUgZGVtb3NhaWNpbmcKK3Byb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2VkZ2UiIGNsYXNzPSJzZWN0aW9uIj5lZGdlPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gZWRnZSBlbmhhbmNlbWVudCBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGVkZ2UgZW5oYW5jZW1lbnQgYXQgYSBxdWFsaXR5IGxldmVsIHRoYXQgZG9lcyBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUKK3JlbGF0aXZlIHRvIHNlbnNvciBvdXRwdXQuPHdici8+IEl0IG1heSBiZSB0aGUgc2FtZSBhcyBPRkYgaWYgZWRnZSBlbmhhbmNlbWVudCB3aWxsCitzbG93IGRvd24gZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBoaWdoLXF1YWxpdHkgZWRnZSBlbmhhbmNlbWVudCw8d2JyLz4gYXQgYSBjb3N0IG9mIHBvc3NpYmx5IHJlZHVjZWQgb3V0cHV0IGZyYW1lIHJhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RWRnZSBlbmhhbmNlbWVudCBpcyBhcHBsaWVkIGF0IGRpZmZlcmVudCBsZXZlbHMgZm9yIGRpZmZlcmVudCBvdXRwdXQgc3RyZWFtcyw8d2JyLz4KK2Jhc2VkIG9uIHJlc29sdXRpb24uPHdici8+IFN0cmVhbXMgYXQgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbiAoc2VlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4pIG9yIGJlbG93IGhhdmUKK2VkZ2UgZW5oYW5jZW1lbnQgYXBwbGllZCw8d2JyLz4gd2hpbGUgaGlnaGVyLXJlc29sdXRpb24gc3RyZWFtcyBoYXZlIG5vIGVkZ2UgZW5oYW5jZW1lbnQKK2FwcGxpZWQuPHdici8+IFRoZSBsZXZlbCBvZiBlZGdlIGVuaGFuY2VtZW50IGZvciBsb3ctcmVzb2x1dGlvbiBzdHJlYW1zIGlzIHR1bmVkIHNvIHRoYXQKK2ZyYW1lIHJhdGUgaXMgbm90IGltcGFjdGVkLDx3YnIvPiBhbmQgdGhlIHF1YWxpdHkgaXMgZXF1YWwgdG8gb3IgYmV0dGVyIHRoYW4gRkFTVCAoc2luY2UgaXQKK2lzIG9ubHkgYXBwbGllZCB0byBsb3dlci1yZXNvbHV0aW9uIG91dHB1dHMsPHdici8+IHF1YWxpdHkgbWF5IGltcHJvdmUgZnJvbSBGQVNUKS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgb3BlcmF0aW5nIGluIGEgemVyby1zaHV0dGVyLWxhZyBtb2RlCit3aXRoIFlVViBvciBQUklWQVRFIHJlcHJvY2Vzc2luZyw8d2JyLz4gd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGNvbnRpbnVvdXNseSBjYXB0dXJlcworaGlnaC1yZXNvbHV0aW9uIGludGVybWVkaWF0ZSBidWZmZXJzIGludG8gYSBjaXJjdWxhciBidWZmZXIsPHdici8+IGZyb20gd2hpY2ggYSBmaW5hbCBpbWFnZSBpcworcHJvZHVjZWQgdmlhIHJlcHJvY2Vzc2luZyB3aGVuIGEgdXNlciB0YWtlcyBhIHBpY3R1cmUuPHdici8+ICBGb3Igc3VjaCBhIHVzZSBjYXNlLDx3YnIvPiB0aGUKK2hpZ2gtcmVzb2x1dGlvbiBidWZmZXJzIG11c3Qgbm90IGhhdmUgZWRnZSBlbmhhbmNlbWVudCBhcHBsaWVkIHRvIG1heGltaXplIGVmZmljaWVuY3kgb2YKK3ByZXZpZXcgYW5kIHRvIGF2b2lkIGRvdWJsZS1hcHBseWluZyBlbmhhbmNlbWVudCB3aGVuIHJlcHJvY2Vzc2VkLDx3YnIvPiB3aGlsZSBsb3ctcmVzb2x1dGlvbgorYnVmZmVycyAodXNlZCBmb3IgcmVjb3JkaW5nIG9yIHByZXZpZXcsPHdici8+IGdlbmVyYWxseSkgbmVlZCBlZGdlIGVuaGFuY2VtZW50IGFwcGxpZWQgZm9yCityZWFzb25hYmxlIHByZXZpZXcgcXVhbGl0eS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQgYnkgZGV2aWNlcyB0aGF0IHN1cHBvcnQgZWl0aGVyIHRoZQorWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBjYXBhYmlsaXRpZXMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGxpc3RzIGVpdGhlciBvZiB0aG9zZSBjYXBhYmlsaXRpZXMpIGFuZCBpdCB3aWxsCitiZSB0aGUgZGVmYXVsdCBtb2RlIGZvciBDQU1FUkEzXzx3YnIvPlRFTVBMQVRFXzx3YnIvPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgdGVtcGxhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW9uIG1vZGUgZm9yIGVkZ2UKK2VuaGFuY2VtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVkZ2U8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVkZ2UgZW5oYW5jZW1lbnQgaW1wcm92ZXMgc2hhcnBuZXNzIGFuZCBkZXRhaWxzIGluIHRoZSBjYXB0dXJlZCBpbWFnZS48d2JyLz4gT0ZGIG1lYW5zCitubyBlbmhhbmNlbWVudCB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBlbmhhbmNlbWVudAord2lsbCBiZSBhcHBsaWVkLjx3YnIvPiBISUdIXzx3YnIvPlFVQUxJVFkgbW9kZSBpbmRpY2F0ZXMgdGhhdCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCB1c2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBlbmhhbmNlbWVudCBhbGdvcml0aG1zLDx3YnIvPgorZXZlbiBpZiBpdCBzbG93cyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRkFTVCBtZWFucyB0aGUgY2FtZXJhIGRldmljZSB3aWxsCitub3Qgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSB3aGVuIGFwcGx5aW5nIGVkZ2UgZW5oYW5jZW1lbnQuPHdici8+IEZBU1QgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZgorZWRnZSBlbmhhbmNlbWVudCB3aWxsIHNsb3cgZG93biBjYXB0dXJlIHJhdGUuPHdici8+IEV2ZXJ5IG91dHB1dCBzdHJlYW0gd2lsbCBoYXZlIGEgc2ltaWxhcgorYW1vdW50IG9mIGVuaGFuY2VtZW50IGFwcGxpZWQuPHdici8+PC9wPgorPHA+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyBpcyBtZWFudCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyB0aGF0IG1haW50YWluIGEgY29udGludW91cyBjaXJjdWxhcgorYnVmZmVyIG9mIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgZHVyaW5nIHByZXZpZXcgYW5kIHJlcHJvY2VzcyBpbWFnZShzKSBmcm9tIHRoYXQgYnVmZmVyCitpbnRvIGEgZmluYWwgY2FwdHVyZSB3aGVuIHRyaWdnZXJlZCBieSB0aGUgdXNlci48d2JyLz4gSW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBhcHBsaWVzCitlZGdlIGVuaGFuY2VtZW50IHRvIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgKGJlbG93IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24pIHRvCittYXhpbWl6ZSBwcmV2aWV3IHF1YWxpdHksPHdici8+IGJ1dCBkb2VzIG5vdCBhcHBseSBlZGdlIGVuaGFuY2VtZW50IHRvIGhpZ2gtcmVzb2x1dGlvbiBzdHJlYW1zLDx3YnIvPgorc2luY2UgdGhvc2Ugd2lsbCBiZSByZXByb2Nlc3NlZCBsYXRlciBpZiBuZWNlc3NhcnkuPHdici8+PC9wPgorPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IHRoZXNlIEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIG1vZGVzIGJvdGggbWVhbiB0aGF0IHRoZSBjYW1lcmEKK2RldmljZSB3aWxsIGFwcGx5IEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIFlVVi1kb21haW4gZWRnZSBlbmhhbmNlbWVudCw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2UgbWF5IGFkanVzdCBpdHMgaW50ZXJuYWwgZWRnZSBlbmhhbmNlbWVudCBwYXJhbWV0ZXJzIGZvciBiZXN0CitpbWFnZSBxdWFsaXR5IGJhc2VkIG9uIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiw8d2JyLz4gaWYgaXQgaXMgc2V0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcgVGhlIEhBTCBjYW4gdXNlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+IHRvCithZGp1c3QgdGhlIGludGVybmFsIGVkZ2UgZW5oYW5jZW1lbnQgcmVkdWN0aW9uIHBhcmFtZXRlcnMgYXBwcm9wcmlhdGVseSB0byBnZXQgdGhlIGJlc3QKK3F1YWxpdHkgaW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZWRnZS5zdHJlbmd0aCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+c3RyZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCB0aGUgYW1vdW50IG9mIGVkZ2UgZW5oYW5jZW1lbnQKK2FwcGxpZWQgdG8gdGhlIGltYWdlczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAxLTEwOyAxMCBpcyBtYXhpbXVtIHNoYXJwZW5pbmcKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgZWRnZSBlbmhhbmNlbWVudCBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhCitkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RnVsbC1jYXBhYmlsaXR5IGNhbWVyYSBkZXZpY2VzIG11c3QgYWx3YXlzIHN1cHBvcnQgT0ZGOyBjYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQKK1lVVl88d2JyLz5SRVBST0NFU1NJTkcgb3IgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgd2lsbCBsaXN0IFpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUc7IGFsbCBkZXZpY2VzIHdpbGwKK2xpc3QgRkFTVC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgZWRnZSBlbmhhbmNlbWVudCBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5lZGdlLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBlZGdlIGVuaGFuY2VtZW50IGlzIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgZWRnZSBlbmhhbmNlbWVudCBhdCBhIHF1YWxpdHkgbGV2ZWwgdGhhdCBkb2VzIG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZQorcmVsYXRpdmUgdG8gc2Vuc29yIG91dHB1dC48d2JyLz4gSXQgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZiBlZGdlIGVuaGFuY2VtZW50IHdpbGwKK3Nsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHNlbnNvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGhpZ2gtcXVhbGl0eSBlZGdlIGVuaGFuY2VtZW50LDx3YnIvPiBhdCBhIGNvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBvdXRwdXQgZnJhbWUgcmF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FZGdlIGVuaGFuY2VtZW50IGlzIGFwcGxpZWQgYXQgZGlmZmVyZW50IGxldmVscyBmb3IgZGlmZmVyZW50IG91dHB1dCBzdHJlYW1zLDx3YnIvPgorYmFzZWQgb24gcmVzb2x1dGlvbi48d2JyLz4gU3RyZWFtcyBhdCBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uIChzZWUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPikgb3IgYmVsb3cgaGF2ZQorZWRnZSBlbmhhbmNlbWVudCBhcHBsaWVkLDx3YnIvPiB3aGlsZSBoaWdoZXItcmVzb2x1dGlvbiBzdHJlYW1zIGhhdmUgbm8gZWRnZSBlbmhhbmNlbWVudAorYXBwbGllZC48d2JyLz4gVGhlIGxldmVsIG9mIGVkZ2UgZW5oYW5jZW1lbnQgZm9yIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgaXMgdHVuZWQgc28gdGhhdAorZnJhbWUgcmF0ZSBpcyBub3QgaW1wYWN0ZWQsPHdici8+IGFuZCB0aGUgcXVhbGl0eSBpcyBlcXVhbCB0byBvciBiZXR0ZXIgdGhhbiBGQVNUIChzaW5jZSBpdAoraXMgb25seSBhcHBsaWVkIHRvIGxvd2VyLXJlc29sdXRpb24gb3V0cHV0cyw8d2JyLz4gcXVhbGl0eSBtYXkgaW1wcm92ZSBmcm9tIEZBU1QpLjx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyBvcGVyYXRpbmcgaW4gYSB6ZXJvLXNodXR0ZXItbGFnIG1vZGUKK3dpdGggWVVWIG9yIFBSSVZBVEUgcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGVyZSB0aGUgYXBwbGljYXRpb24gY29udGludW91c2x5IGNhcHR1cmVzCitoaWdoLXJlc29sdXRpb24gaW50ZXJtZWRpYXRlIGJ1ZmZlcnMgaW50byBhIGNpcmN1bGFyIGJ1ZmZlciw8d2JyLz4gZnJvbSB3aGljaCBhIGZpbmFsIGltYWdlIGlzCitwcm9kdWNlZCB2aWEgcmVwcm9jZXNzaW5nIHdoZW4gYSB1c2VyIHRha2VzIGEgcGljdHVyZS48d2JyLz4gIEZvciBzdWNoIGEgdXNlIGNhc2UsPHdici8+IHRoZQoraGlnaC1yZXNvbHV0aW9uIGJ1ZmZlcnMgbXVzdCBub3QgaGF2ZSBlZGdlIGVuaGFuY2VtZW50IGFwcGxpZWQgdG8gbWF4aW1pemUgZWZmaWNpZW5jeSBvZgorcHJldmlldyBhbmQgdG8gYXZvaWQgZG91YmxlLWFwcGx5aW5nIGVuaGFuY2VtZW50IHdoZW4gcmVwcm9jZXNzZWQsPHdici8+IHdoaWxlIGxvdy1yZXNvbHV0aW9uCitidWZmZXJzICh1c2VkIGZvciByZWNvcmRpbmcgb3IgcHJldmlldyw8d2JyLz4gZ2VuZXJhbGx5KSBuZWVkIGVkZ2UgZW5oYW5jZW1lbnQgYXBwbGllZCBmb3IKK3JlYXNvbmFibGUgcHJldmlldyBxdWFsaXR5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBlaXRoZXIgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gbGlzdHMgZWl0aGVyIG9mIHRob3NlIGNhcGFiaWxpdGllcykgYW5kIGl0IHdpbGwKK2JlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIENBTUVSQTNfPHdici8+VEVNUExBVEVfPHdici8+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB0ZW1wbGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpb24gbW9kZSBmb3IgZWRnZQorZW5oYW5jZW1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+YXZhaWxhYmxlPHdici8+RWRnZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWRnZSBlbmhhbmNlbWVudCBpbXByb3ZlcyBzaGFycG5lc3MgYW5kIGRldGFpbHMgaW4gdGhlIGNhcHR1cmVkIGltYWdlLjx3YnIvPiBPRkYgbWVhbnMKK25vIGVuaGFuY2VtZW50IHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5GQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBib3RoIG1lYW4gY2FtZXJhIGRldmljZSBkZXRlcm1pbmVkIGVuaGFuY2VtZW50Cit3aWxsIGJlIGFwcGxpZWQuPHdici8+IEhJR0hfPHdici8+UVVBTElUWSBtb2RlIGluZGljYXRlcyB0aGF0IHRoZQorY2FtZXJhIGRldmljZSB3aWxsIHVzZSB0aGUgaGlnaGVzdC1xdWFsaXR5IGVuaGFuY2VtZW50IGFsZ29yaXRobXMsPHdici8+CitldmVuIGlmIGl0IHNsb3dzIGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwKK25vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlIHdoZW4gYXBwbHlpbmcgZWRnZSBlbmhhbmNlbWVudC48d2JyLz4gRkFTVCBtYXkgYmUgdGhlIHNhbWUgYXMgT0ZGIGlmCitlZGdlIGVuaGFuY2VtZW50IHdpbGwgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRXZlcnkgb3V0cHV0IHN0cmVhbSB3aWxsIGhhdmUgYSBzaW1pbGFyCithbW91bnQgb2YgZW5oYW5jZW1lbnQgYXBwbGllZC48d2JyLz48L3A+Cis8cD5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIGlzIG1lYW50IHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHRoYXQgbWFpbnRhaW4gYSBjb250aW51b3VzIGNpcmN1bGFyCitidWZmZXIgb2YgaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBkdXJpbmcgcHJldmlldyBhbmQgcmVwcm9jZXNzIGltYWdlKHMpIGZyb20gdGhhdCBidWZmZXIKK2ludG8gYSBmaW5hbCBjYXB0dXJlIHdoZW4gdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLjx3YnIvPiBJbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGFwcGxpZXMKK2VkZ2UgZW5oYW5jZW1lbnQgdG8gbG93LXJlc29sdXRpb24gc3RyZWFtcyAoYmVsb3cgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbikgdG8KK21heGltaXplIHByZXZpZXcgcXVhbGl0eSw8d2JyLz4gYnV0IGRvZXMgbm90IGFwcGx5IGVkZ2UgZW5oYW5jZW1lbnQgdG8gaGlnaC1yZXNvbHV0aW9uIHN0cmVhbXMsPHdici8+CitzaW5jZSB0aG9zZSB3aWxsIGJlIHJlcHJvY2Vzc2VkIGxhdGVyIGlmIG5lY2Vzc2FyeS48d2JyLz48L3A+Cis8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gdGhlc2UgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgbW9kZXMgYm90aCBtZWFuIHRoYXQgdGhlIGNhbWVyYQorZGV2aWNlIHdpbGwgYXBwbHkgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgWVVWLWRvbWFpbiBlZGdlIGVuaGFuY2VtZW50LDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+CitUaGUgY2FtZXJhIGRldmljZSBtYXkgYWRqdXN0IGl0cyBpbnRlcm5hbCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgZm9yIGJlc3QKK2ltYWdlIHF1YWxpdHkgYmFzZWQgb24gdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+LDx3YnIvPiBpZiBpdCBpcyBzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBUaGUgSEFMIGNhbiB1c2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gdG8KK2FkanVzdCB0aGUgaW50ZXJuYWwgZWRnZSBlbmhhbmNlbWVudCByZWR1Y3Rpb24gcGFyYW1ldGVycyBhcHByb3ByaWF0ZWx5IHRvIGdldCB0aGUgYmVzdAorcXVhbGl0eSBpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fZmxhc2giIGNsYXNzPSJzZWN0aW9uIj5mbGFzaDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+ZmlyaW5nPHdici8+UG93ZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UG93ZXIgZm9yIGZsYXNoIGZpcmluZy88d2JyLz50b3JjaDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAxMCBpcyBtYXggcG93ZXI7IDAgaXMgbm8gZmxhc2guPHdici8+IExpbmVhcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAgLSAxMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlBvd2VyIGZvciBzbmFwc2hvdCBtYXkgdXNlIGEgZGlmZmVyZW50IHNjYWxlIHRoYW4KK2ZvciB0b3JjaCBtb2RlLjx3YnIvPiBPbmx5IG9uZSBlbnRyeSBmb3IgdG9yY2ggbW9kZSB3aWxsIGJlCit1c2VkPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5maXJpbmc8d2JyLz5UaW1lCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5GaXJpbmcgdGltZSBvZiBmbGFzaCByZWxhdGl2ZSB0byBzdGFydCBvZgorZXhwb3N1cmU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgbmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wLShleHBvc3VyZSB0aW1lLWZsYXNoIGR1cmF0aW9uKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNsYW1wZWQgdG8gKDAsPHdici8+IGV4cG9zdXJlIHRpbWUgLSBmbGFzaAorZHVyYXRpb24pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGZpcmUgdGhlIGZsYXNoIGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0lOR0xFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JZiB0aGUgZmxhc2ggaXMgYXZhaWxhYmxlIGFuZCBjaGFyZ2VkLDx3YnIvPiBmaXJlIGZsYXNoCitmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRPUkNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UcmFuc2l0aW9uIGZsYXNoIHRvIGNvbnRpbnVvdXNseSBvbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBtb2RlIGZvciBmb3IgdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gZmxhc2ggdW5pdCBpcyBhdmFpbGFibGUKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8L2E+ID09IHRydWU8L2NvZGU+KS48d2JyLz48L3A+Cis8cD5XaGVuIHRoaXMgY29udHJvbCBpcyB1c2VkLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG11c3QgYmUgc2V0IHRvIE9OIG9yIE9GRi48d2JyLz4KK090aGVyd2lzZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByZWxhdGVkIGZsYXNoIGNvbnRyb2wgKE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gsPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gsPHdici8+IG9yIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0hfPHdici8+UkVERVlFKSB3aWxsIG92ZXJyaWRlIHRoaXMgY29udHJvbC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBPRkYsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGZpcmUgZmxhc2ggZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBTSU5HTEUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmlyZSBmbGFzaCByZWdhcmRsZXNzIG9mIHRoZSBjYW1lcmEKK2RldmljZSdzIGF1dG8tZXhwb3N1cmUgcm91dGluZSdzIHJlc3VsdC48d2JyLz4gV2hlbiB1c2VkIGluIHN0aWxsIGNhcHR1cmUgY2FzZSw8d2JyLz4gdGhpcworY29udHJvbCBzaG91bGQgYmUgdXNlZCBhbG9uZyB3aXRoIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pLDx3YnIvPiBvdGhlcndpc2UsPHdici8+IHRoZSBpbWFnZSBtYXkgYmUgaW5jb3JyZWN0bHkgZXhwb3NlZC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBUT1JDSCw8d2JyLz4gdGhlIGZsYXNoIHdpbGwgYmUgb24gY29udGludW91c2x5Ljx3YnIvPiBUaGlzIG1vZGUgY2FuIGJlIHVzZWQKK2ZvciB1c2UgY2FzZXMgc3VjaCBhcyBwcmV2aWV3LDx3YnIvPiBhdXRvLWZvY3VzIGFzc2lzdCw8d2JyLz4gc3RpbGwgY2FwdHVyZSw8d2JyLz4gb3IgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBzdGF0dXMgd2lsbCBiZSByZXBvcnRlZCBieSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPnN0YXRlPC9hPiBpbiB0aGUgY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQUxTRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGlzIGNhbWVyYSBkZXZpY2UgaGFzIGEKK2ZsYXNoIHVuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaWxsIGJlIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBubyBmbGFzaCBpcyBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgdGhlcmUgaXMgbm8gZmxhc2ggdW5pdCw8d2JyLz4gbm9uZSBvZiB0aGUgZmxhc2ggY29udHJvbHMgZG8KK2FueXRoaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5jaGFyZ2VEdXJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmluZm8uPHdici8+Y2hhcmdlPHdici8+RHVyYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRpbWUgdGFrZW4gYmVmb3JlIGZsYXNoIGNhbiBmaXJlCithZ2FpbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBuYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAtMWU5PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+MSBzZWNvbmQgdG9vIGxvbmcvPHdici8+dG9vIHNob3J0IGZvciByZWNoYXJnZT8gU2hvdWxkCit0aGlzIGJlIHBvd2VyLWRlcGVuZGVudD88L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5mbGFzaC5jb2xvclRlbXBlcmF0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+Y29sb3I8d2JyLz5UZW1wZXJhdHVyZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgeCw8d2JyLz55IHdoaXRlcG9pbnQgb2YgdGhlCitmbGFzaDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBwYWlyIG9mIGZsb2F0cworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAtMSBmb3IgYm90aDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmZsYXNoLm1heEVuZXJneSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1heDx3YnIvPkVuZXJneQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXggZW5lcmd5IG91dHB1dCBvZiB0aGUgZmxhc2ggZm9yIGEgZnVsbAorcG93ZXIgc2luZ2xlIGZsYXNoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIGx1bWVuLXNlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuZmxhc2guZmlyaW5nUG93ZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5maXJpbmc8d2JyLz5Qb3dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Qb3dlciBmb3IgZmxhc2ggZmlyaW5nLzx3YnIvPnRvcmNoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIDEwIGlzIG1heCBwb3dlcjsgMCBpcyBubyBmbGFzaC48d2JyLz4gTGluZWFyCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCAtIDEwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UG93ZXIgZm9yIHNuYXBzaG90IG1heSB1c2UgYSBkaWZmZXJlbnQgc2NhbGUgdGhhbgorZm9yIHRvcmNoIG1vZGUuPHdici8+IE9ubHkgb25lIGVudHJ5IGZvciB0b3JjaCBtb2RlIHdpbGwgYmUKK3VzZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+ZmlyaW5nPHdici8+VGltZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RmlyaW5nIHRpbWUgb2YgZmxhc2ggcmVsYXRpdmUgdG8gc3RhcnQgb2YKK2V4cG9zdXJlPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIG5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MC0oZXhwb3N1cmUgdGltZS1mbGFzaCBkdXJhdGlvbik8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5DbGFtcGVkIHRvICgwLDx3YnIvPiBleHBvc3VyZSB0aW1lIC0gZmxhc2gKK2R1cmF0aW9uKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5mbGFzaC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGZpcmUgdGhlIGZsYXNoIGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0lOR0xFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JZiB0aGUgZmxhc2ggaXMgYXZhaWxhYmxlIGFuZCBjaGFyZ2VkLDx3YnIvPiBmaXJlIGZsYXNoCitmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRPUkNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UcmFuc2l0aW9uIGZsYXNoIHRvIGNvbnRpbnVvdXNseSBvbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBtb2RlIGZvciBmb3IgdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gZmxhc2ggdW5pdCBpcyBhdmFpbGFibGUKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8L2E+ID09IHRydWU8L2NvZGU+KS48d2JyLz48L3A+Cis8cD5XaGVuIHRoaXMgY29udHJvbCBpcyB1c2VkLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG11c3QgYmUgc2V0IHRvIE9OIG9yIE9GRi48d2JyLz4KK090aGVyd2lzZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByZWxhdGVkIGZsYXNoIGNvbnRyb2wgKE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gsPHdici8+CitPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gsPHdici8+IG9yIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0hfPHdici8+UkVERVlFKSB3aWxsIG92ZXJyaWRlIHRoaXMgY29udHJvbC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBPRkYsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGZpcmUgZmxhc2ggZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBTSU5HTEUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmlyZSBmbGFzaCByZWdhcmRsZXNzIG9mIHRoZSBjYW1lcmEKK2RldmljZSdzIGF1dG8tZXhwb3N1cmUgcm91dGluZSdzIHJlc3VsdC48d2JyLz4gV2hlbiB1c2VkIGluIHN0aWxsIGNhcHR1cmUgY2FzZSw8d2JyLz4gdGhpcworY29udHJvbCBzaG91bGQgYmUgdXNlZCBhbG9uZyB3aXRoIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pLDx3YnIvPiBvdGhlcndpc2UsPHdici8+IHRoZSBpbWFnZSBtYXkgYmUgaW5jb3JyZWN0bHkgZXhwb3NlZC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBUT1JDSCw8d2JyLz4gdGhlIGZsYXNoIHdpbGwgYmUgb24gY29udGludW91c2x5Ljx3YnIvPiBUaGlzIG1vZGUgY2FuIGJlIHVzZWQKK2ZvciB1c2UgY2FzZXMgc3VjaCBhcyBwcmV2aWV3LDx3YnIvPiBhdXRvLWZvY3VzIGFzc2lzdCw8d2JyLz4gc3RpbGwgY2FwdHVyZSw8d2JyLz4gb3IgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBzdGF0dXMgd2lsbCBiZSByZXBvcnRlZCBieSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPnN0YXRlPC9hPiBpbiB0aGUgY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuZmxhc2guc3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5zdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VTkFWQUlMQUJMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gZmxhc2ggb24gY2FtZXJhLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNIQVJHSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGFzaCBpcyBjaGFyZ2luZyBhbmQgY2Fubm90IGJlIGZpcmVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJFQURZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGFzaCBpcyByZWFkeSB0byBmaXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZJUkVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGFzaCBmaXJlZCBmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBBUlRJQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZsYXNoIHBhcnRpYWxseSBpbGx1bWluYXRlZCB0aGlzIGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgdXN1YWxseSBkdWUgdG8gdGhlIG5leHQgb3IgcHJldmlvdXMgZnJhbWUgaGF2aW5nCit0aGUgZmxhc2ggZmlyZSw8d2JyLz4gYW5kIHRoZSBmbGFzaCBzcGlsbGluZyBpbnRvIHRoaXMgY2FwdHVyZQorZHVlIHRvIGhhcmR3YXJlIGxpbWl0YXRpb25zLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkN1cnJlbnQgc3RhdGUgb2YgdGhlIGZsYXNoCit1bml0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gdGhlIGNhbWVyYSBkZXZpY2UgZG9lc24ndCBoYXZlIGZsYXNoIHVuaXQKKyhpLjx3YnIvPmUuPHdici8+IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gPT0gZmFsc2U8L2NvZGU+KSw8d2JyLz4gdGhpcyBzdGF0ZSB3aWxsIGFsd2F5cyBiZSBVTkFWQUlMQUJMRS48d2JyLz4KK090aGVyIHN0YXRlcyBpbmRpY2F0ZSB0aGUgY3VycmVudCBmbGFzaCBzdGF0dXMuPHdici8+PC9wPgorPHA+SW4gY2VydGFpbiBjb25kaXRpb25zLDx3YnIvPiB0aGlzIHdpbGwgYmUgYXZhaWxhYmxlIG9uIExFR0FDWSBkZXZpY2VzOjwvcD4KKzx1bD4KKzxsaT5GbGFzaC1sZXNzIGNhbWVyYXMgYWx3YXlzIHJldHVybiBVTkFWQUlMQUJMRS48d2JyLz48L2xpPgorPGxpPlVzaW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT49PTwvY29kZT4gT05fPHdici8+QUxXQVlTXzx3YnIvPkZMQVNICisgICB3aWxsIGFsd2F5cyByZXR1cm4gRklSRUQuPHdici8+PC9saT4KKzxsaT5Vc2luZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBUT1JDSAorICAgd2lsbCBhbHdheXMgcmV0dXJuIEZJUkVELjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+SW4gYWxsIG90aGVyIGNvbmRpdGlvbnMgdGhlIHN0YXRlIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBvbgorTEVHQUNZIGRldmljZXMgKGkuPHdici8+ZS48d2JyLz4gaXQgd2lsbCBiZSA8Y29kZT5udWxsPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9ob3RQaXhlbCIgY2xhc3M9InNlY3Rpb24iPmhvdFBpeGVsPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBob3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlRoZSBmcmFtZSByYXRlIG11c3Qgbm90IGJlIHJlZHVjZWQgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQKK2ZvciB0aGlzIG9wdGlvbi48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gd2l0aG91dCByZWR1Y2luZyBmcmFtZQorcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5IaWdoLXF1YWxpdHkgaG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gYXQgYSBjb3N0CitvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+VGhlIGhvdHBpeGVsIG1hcCBtYXkgYmUgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGlvbmFsIG1vZGUgZm9yIGhvdCBwaXhlbCBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhvdDx3YnIvPlBpeGVsPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ib3RwaXhlbCBjb3JyZWN0aW9uIGludGVycG9sYXRlcyBvdXQsPHdici8+IG9yIG90aGVyd2lzZSByZW1vdmVzLDx3YnIvPiBwaXhlbHMKK3RoYXQgZG8gbm90IGFjY3VyYXRlbHkgbWVhc3VyZSB0aGUgaW5jb21pbmcgbGlnaHQgKGkuPHdici8+ZS48d2JyLz4gcGl4ZWxzIHRoYXQKK2FyZSBzdHVjayBhdCBhbiBhcmJpdHJhcnkgdmFsdWUgb3IgYXJlIG92ZXJzZW5zaXRpdmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5ob3Q8d2JyLz5QaXhlbC48d2JyLz5hdmFpbGFibGU8d2JyLz5Ib3Q8d2JyLz5QaXhlbDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGhvdCBwaXhlbCBjb3JyZWN0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC48d2JyLz5ob3Q8d2JyLz5QaXhlbC48d2JyLz5tb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RlVMTCBtb2RlIGNhbWVyYSBkZXZpY2VzIHdpbGwgYWx3YXlzIHN1cHBvcnQgRkFTVC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRvIGF2b2lkIHBlcmZvcm1hbmNlIGlzc3Vlcyw8d2JyLz4gdGhlcmUgd2lsbCBiZSBzaWduaWZpY2FudGx5IGZld2VyIGhvdAorcGl4ZWxzIHRoYW4gYWN0dWFsIHBpeGVscyBvbiB0aGUgY2FtZXJhIHNlbnNvci48d2JyLz4KK0hBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgaG90IHBpeGVsIGNvcnJlY3Rpb24gY29udHJvbCBpcyBhdmFpbGFibGUKK29uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvciBib3RoIG1vZGVzLjx3YnIvPgorVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBvdXRwdXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBob3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlRoZSBmcmFtZSByYXRlIG11c3Qgbm90IGJlIHJlZHVjZWQgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQKK2ZvciB0aGlzIG9wdGlvbi48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gd2l0aG91dCByZWR1Y2luZyBmcmFtZQorcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5IaWdoLXF1YWxpdHkgaG90IHBpeGVsIGNvcnJlY3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gYXQgYSBjb3N0CitvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIHJhdyBvdXRwdXQuPHdici8+PC9wPgorPHA+VGhlIGhvdHBpeGVsIG1hcCBtYXkgYmUgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGlvbmFsIG1vZGUgZm9yIGhvdCBwaXhlbCBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhvdDx3YnIvPlBpeGVsPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ib3RwaXhlbCBjb3JyZWN0aW9uIGludGVycG9sYXRlcyBvdXQsPHdici8+IG9yIG90aGVyd2lzZSByZW1vdmVzLDx3YnIvPiBwaXhlbHMKK3RoYXQgZG8gbm90IGFjY3VyYXRlbHkgbWVhc3VyZSB0aGUgaW5jb21pbmcgbGlnaHQgKGkuPHdici8+ZS48d2JyLz4gcGl4ZWxzIHRoYXQKK2FyZSBzdHVjayBhdCBhbiBhcmJpdHJhcnkgdmFsdWUgb3IgYXJlIG92ZXJzZW5zaXRpdmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fanBlZyIgY2xhc3M9InNlY3Rpb24iPmpwZWc8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Mb2NhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGxvY2F0aW9uXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbG9jYXRpb24gb2JqZWN0IHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgaW1hZ2UgR1BTIG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNldHRpbmcgYSBsb2NhdGlvbiBvYmplY3QgaW4gYSByZXF1ZXN0IHdpbGwgaW5jbHVkZSB0aGUgR1BTIGNvb3JkaW5hdGVzIG9mIHRoZSBsb2NhdGlvbgoraW50byBhbnkgSlBFRyBpbWFnZXMgY2FwdHVyZWQgYmFzZWQgb24gdGhlIHJlcXVlc3QuPHdici8+IFRoZXNlIGNvb3JkaW5hdGVzIGNhbiB0aGVuIGJlCit2aWV3ZWQgYnkgYW55b25lIHdobyByZWNlaXZlcyB0aGUgSlBFRyBpbWFnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+Q29vcmRpbmF0ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmRvdWJsZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5sYXRpdHVkZSw8d2JyLz4gbG9uZ2l0dWRlLDx3YnIvPiBhbHRpdHVkZS48d2JyLz4gRmlyc3QgdHdvIGluIGRlZ3JlZXMsPHdici8+IHRoZSB0aGlyZCBpbiBtZXRlcnM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HUFMgY29vcmRpbmF0ZXMgdG8gaW5jbHVkZSBpbiBvdXRwdXQgSlBFRworRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4oLTE4MCAtIDE4MF0sPHdici8+IFstOTAsPHdici8+OTBdLDx3YnIvPiBbLWluZiw8d2JyLz4gaW5mXTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+UHJvY2Vzc2luZzx3YnIvPk1ldGhvZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyaW5nXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+MzIgY2hhcmFjdGVycyBkZXNjcmliaW5nIEdQUyBhbGdvcml0aG0gdG8KK2luY2x1ZGUgaW4gRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVVRGLTggbnVsbC10ZXJtaW5hdGVkIHN0cmluZworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+VGltZXN0YW1wCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaW1lIEdQUyBmaXggd2FzIG1hZGUgdG8gaW5jbHVkZSBpbgorRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVVRDIGluIHNlY29uZHMgc2luY2UgSmFudWFyeSAxLDx3YnIvPiAxOTcwCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm9yaWVudGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBvcmllbnRhdGlvbiBmb3IgYSBKUEVHIGltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBEZWdyZWVzIGluIG11bHRpcGxlcyBvZiA5MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAsPHdici8+IDkwLDx3YnIvPiAxODAsPHdici8+IDI3MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY2xvY2t3aXNlIHJvdGF0aW9uIGFuZ2xlIGluIGRlZ3JlZXMsPHdici8+IHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbgordG8gdGhlIGNhbWVyYSw8d2JyLz4gdGhhdCB0aGUgSlBFRyBwaWN0dXJlIG5lZWRzIHRvIGJlIHJvdGF0ZWQgYnksPHdici8+IHRvIGJlIHZpZXdlZAordXByaWdodC48d2JyLz48L3A+Cis8cD5DYW1lcmEgZGV2aWNlcyBtYXkgZWl0aGVyIGVuY29kZSB0aGlzIHZhbHVlIGludG8gdGhlIEpQRUcgRVhJRiBoZWFkZXIsPHdici8+IG9yCityb3RhdGUgdGhlIGltYWdlIGRhdGEgdG8gbWF0Y2ggdGhpcyBvcmllbnRhdGlvbi48d2JyLz4gV2hlbiB0aGUgaW1hZ2UgZGF0YSBpcyByb3RhdGVkLDx3YnIvPgordGhlIHRodW1ibmFpbCBkYXRhIHdpbGwgYWxzbyBiZSByb3RhdGVkLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCB0aGlzIG9yaWVudGF0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIHNlbnNvciw8d2JyLz4gZ2l2ZW4KK2J5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9yaWVudGF0aW9uPC9hPi48d2JyLz48L3A+Cis8cD5UbyB0cmFuc2xhdGUgZnJvbSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGdpdmVuIGJ5IHRoZSBBbmRyb2lkIHNlbnNvciBBUElzLDx3YnIvPiB0aGUgZm9sbG93aW5nCitzYW1wbGUgY29kZSBtYXkgYmUgdXNlZDo8L3A+Cis8cHJlPjxjb2RlPnByaXZhdGUgaW50IGdldEpwZWdPcmllbnRhdGlvbihDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgYyw8d2JyLz4gaW50IGRldmljZU9yaWVudGF0aW9uKSB7CisgICAgaWYgKGRldmljZU9yaWVudGF0aW9uID09IGFuZHJvaWQuPHdici8+dmlldy48d2JyLz5PcmllbnRhdGlvbjx3YnIvPkV2ZW50PHdici8+TGlzdGVuZXIuPHdici8+T1JJRU5UQVRJT05fPHdici8+VU5LTk9XTikgcmV0dXJuIDA7CisgICAgaW50IHNlbnNvck9yaWVudGF0aW9uID0gYy48d2JyLz5nZXQoQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPlNFTlNPUl88d2JyLz5PUklFTlRBVElPTik7CisKKyAgICAvLzx3YnIvPiBSb3VuZCBkZXZpY2Ugb3JpZW50YXRpb24gdG8gYSBtdWx0aXBsZSBvZiA5MAorICAgIGRldmljZU9yaWVudGF0aW9uID0gKGRldmljZU9yaWVudGF0aW9uICsgNDUpIC88d2JyLz4gOTAgKiA5MDsKKworICAgIC8vPHdici8+IFJldmVyc2UgZGV2aWNlIG9yaWVudGF0aW9uIGZvciBmcm9udC1mYWNpbmcgY2FtZXJhcworICAgIGJvb2xlYW4gZmFjaW5nRnJvbnQgPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+TEVOU188d2JyLz5GQUNJTkcpID09IENhbWVyYTx3YnIvPkNoYXJhY3RlcmlzdGljcy48d2JyLz5MRU5TXzx3YnIvPkZBQ0lOR188d2JyLz5GUk9OVDsKKyAgICBpZiAoZmFjaW5nRnJvbnQpIGRldmljZU9yaWVudGF0aW9uID0gLWRldmljZU9yaWVudGF0aW9uOworCisgICAgLy88d2JyLz4gQ2FsY3VsYXRlIGRlc2lyZWQgSlBFRyBvcmllbnRhdGlvbiByZWxhdGl2ZSB0byBjYW1lcmEgb3JpZW50YXRpb24gdG8gbWFrZQorICAgIC8vPHdici8+IHRoZSBpbWFnZSB1cHJpZ2h0IHJlbGF0aXZlIHRvIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICBpbnQganBlZ09yaWVudGF0aW9uID0gKHNlbnNvck9yaWVudGF0aW9uICsgZGV2aWNlT3JpZW50YXRpb24gKyAzNjApICUgMzYwOworCisgICAgcmV0dXJuIGpwZWdPcmllbnRhdGlvbjsKK30KKzwvY29kZT48L3ByZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLnF1YWxpdHkiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnF1YWxpdHkKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db21wcmVzc2lvbiBxdWFsaXR5IG9mIHRoZSBmaW5hbCBKUEVHCitpbWFnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xLTEwMDsgbGFyZ2VyIGlzIGhpZ2hlciBxdWFsaXR5PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPjg1LTk1IGlzIHR5cGljYWwgdXNhZ2UgcmFuZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+dGh1bWJuYWlsPHdici8+UXVhbGl0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbXByZXNzaW9uIHF1YWxpdHkgb2YgSlBFRwordGh1bWJuYWlsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEtMTAwOyBsYXJnZXIgaXMgaGlnaGVyIHF1YWxpdHk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnRodW1ibmFpbDx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHNpemVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SZXNvbHV0aW9uIG9mIGVtYmVkZGVkIEpQRUcgdGh1bWJuYWlsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+YXZhaWxhYmxlPHdici8+VGh1bWJuYWlsPHdici8+U2l6ZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvICgwLDx3YnIvPiAwKSB2YWx1ZSw8d2JyLz4gdGhlIEpQRUcgRVhJRiB3aWxsIG5vdCBjb250YWluIHRodW1ibmFpbCw8d2JyLz4KK2J1dCB0aGUgY2FwdHVyZWQgSlBFRyB3aWxsIHN0aWxsIGJlIGEgdmFsaWQgaW1hZ2UuPHdici8+PC9wPgorPHA+Rm9yIGJlc3QgcmVzdWx0cyw8d2JyLz4gd2hlbiBpc3N1aW5nIGEgcmVxdWVzdCBmb3IgYSBKUEVHIGltYWdlLDx3YnIvPiB0aGUgdGh1bWJuYWlsIHNpemUgc2VsZWN0ZWQKK3Nob3VsZCBoYXZlIHRoZSBzYW1lIGFzcGVjdCByYXRpbyBhcyB0aGUgbWFpbiBKUEVHIG91dHB1dC48d2JyLz48L3A+Cis8cD5JZiB0aGUgdGh1bWJuYWlsIGltYWdlIGFzcGVjdCByYXRpbyBkaWZmZXJzIGZyb20gdGhlIEpQRUcgcHJpbWFyeSBpbWFnZSBhc3BlY3QKK3JhdGlvLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBjcmVhdGVzIHRoZSB0aHVtYm5haWwgYnkgY3JvcHBpbmcgaXQgZnJvbSB0aGUgcHJpbWFyeSBpbWFnZS48d2JyLz4KK0ZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgcHJpbWFyeSBpbWFnZSBoYXMgNDozIGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlIHRodW1ibmFpbCBpbWFnZSBoYXMKKzE2OjkgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGUgcHJpbWFyeSBpbWFnZSB3aWxsIGJlIGNyb3BwZWQgdmVydGljYWxseSAobGV0dGVyYm94KSB0bworZ2VuZXJhdGUgdGhlIHRodW1ibmFpbCBpbWFnZS48d2JyLz4gVGhlIHRodW1ibmFpbCBpbWFnZSB3aWxsIGFsd2F5cyBoYXZlIGEgc21hbGxlciBGaWVsZAorT2YgVmlldyAoRk9WKSB0aGFuIHRoZSBwcmltYXJ5IGltYWdlIHdoZW4gYXNwZWN0IHJhdGlvcyBkaWZmZXIuPHdici8+PC9wPgorPHA+V2hlbiBhbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+b3JpZW50YXRpb248L2E+IG9mIG5vbi16ZXJvIGRlZ3JlZSBpcyByZXF1ZXN0ZWQsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSB3aWxsIGhhbmRsZSB0aHVtYm5haWwgcm90YXRpb24gaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgd2F5czo8L3A+Cis8dWw+Cis8bGk+U2V0IHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9FeGlmSW50ZXJmYWNlLmh0bWwjVEFHX09SSUVOVEFUSU9OIj5FWElGIG9yaWVudGF0aW9uIGZsYWc8L2E+CisgIGFuZCBrZWVwIGpwZWcgYW5kIHRodW1ibmFpbCBpbWFnZSBkYXRhIHVucm90YXRlZC48d2JyLz48L2xpPgorPGxpPlJvdGF0ZSB0aGUganBlZyBhbmQgdGh1bWJuYWlsIGltYWdlIGRhdGEgYW5kIG5vdCBzZXQKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvRXhpZkludGVyZmFjZS5odG1sI1RBR19PUklFTlRBVElPTiI+RVhJRiBvcmllbnRhdGlvbiBmbGFnPC9hPi48d2JyLz4gSW4gdGhpcworICBjYXNlLDx3YnIvPiBMSU1JVEVEIG9yIEZVTEwgaGFyZHdhcmUgbGV2ZWwgZGV2aWNlcyB3aWxsIHJlcG9ydCByb3RhdGVkIHRodW1uYWlsIHNpemUgaW4KKyAgY2FwdHVyZSByZXN1bHQsPHdici8+IHNvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHdpbGwgYmUgaW50ZXJjaGFuZ2VkIGlmIDkwIG9yIDI3MCBkZWdyZWUKKyAgb3JpZW50YXRpb24gaXMgcmVxdWVzdGVkLjx3YnIvPiBMRUdBQ1kgZGV2aWNlIHdpbGwgYWx3YXlzIHJlcG9ydCB1bnJvdGF0ZWQgdGh1bWJuYWlsCisgIHNpemUuPHdici8+PC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBub3Qgc3F1ZWV6ZSBvciBzdHJldGNoIHRoZSBkb3duc2NhbGVkIHByaW1hcnkgaW1hZ2UgdG8gZ2VuZXJhdGUgdGh1bWJuYWlsLjx3YnIvPgorVGhlIGNyb3BwaW5nIG11c3QgYmUgZG9uZSBvbiB0aGUgcHJpbWFyeSBqcGVnIGltYWdlIHJhdGhlciB0aGFuIHRoZSBzZW5zb3IgYWN0aXZlIGFycmF5Ljx3YnIvPgorVGhlIHN0cmVhbSBjcm9wcGluZyBydWxlIHNwZWNpZmllZCBieSAiUzUuPHdici8+IENyb3BwaW5nIiBpbiBjYW1lcmEzLjx3YnIvPmggZG9lc24ndCBhcHBseSB0byB0aGUKK3RodW1ibmFpbCBpbWFnZSBjcm9wcGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+YXZhaWxhYmxlPHdici8+VGh1bWJuYWlsPHdici8+U2l6ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBKUEVHIHRodW1ibmFpbCBzaXplcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+dGh1bWJuYWlsPHdici8+U2l6ZTwvYT4gc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3Qgd2lsbCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBub24temVybyByZXNvbHV0aW9uLDx3YnIvPiBwbHVzIDxjb2RlPigwLDx3YnIvPjApPC9jb2RlPiBmb3IgaW5kaWNhdGluZyBubwordGh1bWJuYWlsIHNob3VsZCBiZSBnZW5lcmF0ZWQuPHdici8+PC9wPgorPHA+QmVsb3cgY29uZGlkaXRpb25zIHdpbGwgYmUgc2F0aXNmaWVkIGZvciB0aGlzIHNpemUgbGlzdDo8L3A+Cis8dWw+Cis8bGk+VGhlIHNpemVzIHdpbGwgYmUgc29ydGVkIGJ5IGluY3JlYXNpbmcgcGl4ZWwgYXJlYSAod2lkdGggeCBoZWlnaHQpLjx3YnIvPgorSWYgc2V2ZXJhbCByZXNvbHV0aW9ucyBoYXZlIHRoZSBzYW1lIGFyZWEsPHdici8+IHRoZXkgd2lsbCBiZSBzb3J0ZWQgYnkgaW5jcmVhc2luZyB3aWR0aC48d2JyLz48L2xpPgorPGxpPlRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIGxhcmdlc3QgdGh1bWJuYWlsIHNpemUgd2lsbCBiZSBzYW1lIGFzIHRoZQorYXNwZWN0IHJhdGlvIG9mIGxhcmdlc3QgSlBFRyBvdXRwdXQgc2l6ZSBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+CitUaGUgbGFyZ2VzdCBzaXplIGlzIGRlZmluZWQgYXMgdGhlIHNpemUgdGhhdCBoYXMgdGhlIGxhcmdlc3QgcGl4ZWwgYXJlYQoraW4gYSBnaXZlbiBzaXplIGxpc3QuPHdici8+PC9saT4KKzxsaT5FYWNoIG91dHB1dCBKUEVHIHNpemUgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IHdpbGwgaGF2ZSBhdCBsZWFzdAorb25lIGNvcnJlc3BvbmRpbmcgc2l6ZSB0aGF0IGhhcyB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gaW4gYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXMsPHdici8+CithbmQgdmljZSB2ZXJzYS48d2JyLz48L2xpPgorPGxpPkFsbCBub24tPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBzaXplcyB3aWxsIGhhdmUgbm9uLXplcm8gd2lkdGhzIGFuZCBoZWlnaHRzLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5qcGVnLm1heFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm1heDx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdGhlIGNvbXByZXNzZWQKK0pQRUcgYnVmZmVyPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSBsYXJnZSBlbm91Z2ggdG8gZml0IGFueSBKUEVHIHByb2R1Y2VkIGJ5Cit0aGUgY2FtZXJhPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHVzZWQgZm9yIHNpemluZyB0aGUgZ3JhbGxvYyBidWZmZXJzIGZvcgorSlBFRzwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNMb2NhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+TG9jYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpYyBhcyBsb2NhdGlvbl08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGxvY2F0aW9uIG9iamVjdCB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIGltYWdlIEdQUyBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZXR0aW5nIGEgbG9jYXRpb24gb2JqZWN0IGluIGEgcmVxdWVzdCB3aWxsIGluY2x1ZGUgdGhlIEdQUyBjb29yZGluYXRlcyBvZiB0aGUgbG9jYXRpb24KK2ludG8gYW55IEpQRUcgaW1hZ2VzIGNhcHR1cmVkIGJhc2VkIG9uIHRoZSByZXF1ZXN0Ljx3YnIvPiBUaGVzZSBjb29yZGluYXRlcyBjYW4gdGhlbiBiZQordmlld2VkIGJ5IGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIEpQRUcgaW1hZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+Q29vcmRpbmF0ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmRvdWJsZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5sYXRpdHVkZSw8d2JyLz4gbG9uZ2l0dWRlLDx3YnIvPiBhbHRpdHVkZS48d2JyLz4gRmlyc3QgdHdvIGluIGRlZ3JlZXMsPHdici8+IHRoZSB0aGlyZCBpbiBtZXRlcnM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HUFMgY29vcmRpbmF0ZXMgdG8gaW5jbHVkZSBpbiBvdXRwdXQgSlBFRworRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4oLTE4MCAtIDE4MF0sPHdici8+IFstOTAsPHdici8+OTBdLDx3YnIvPiBbLWluZiw8d2JyLz4gaW5mXTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Qcm9jZXNzaW5nPHdici8+TWV0aG9kCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJpbmddPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD4zMiBjaGFyYWN0ZXJzIGRlc2NyaWJpbmcgR1BTIGFsZ29yaXRobSB0bworaW5jbHVkZSBpbiBFWElGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVVEYtOCBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNUaW1lc3RhbXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPmdwczx3YnIvPlRpbWVzdGFtcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGltZSBHUFMgZml4IHdhcyBtYWRlIHRvIGluY2x1ZGUgaW4KK0VYSUYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVUQyBpbiBzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSw8d2JyLz4gMTk3MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm9yaWVudGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBvcmllbnRhdGlvbiBmb3IgYSBKUEVHIGltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBEZWdyZWVzIGluIG11bHRpcGxlcyBvZiA5MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAsPHdici8+IDkwLDx3YnIvPiAxODAsPHdici8+IDI3MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY2xvY2t3aXNlIHJvdGF0aW9uIGFuZ2xlIGluIGRlZ3JlZXMsPHdici8+IHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbgordG8gdGhlIGNhbWVyYSw8d2JyLz4gdGhhdCB0aGUgSlBFRyBwaWN0dXJlIG5lZWRzIHRvIGJlIHJvdGF0ZWQgYnksPHdici8+IHRvIGJlIHZpZXdlZAordXByaWdodC48d2JyLz48L3A+Cis8cD5DYW1lcmEgZGV2aWNlcyBtYXkgZWl0aGVyIGVuY29kZSB0aGlzIHZhbHVlIGludG8gdGhlIEpQRUcgRVhJRiBoZWFkZXIsPHdici8+IG9yCityb3RhdGUgdGhlIGltYWdlIGRhdGEgdG8gbWF0Y2ggdGhpcyBvcmllbnRhdGlvbi48d2JyLz4gV2hlbiB0aGUgaW1hZ2UgZGF0YSBpcyByb3RhdGVkLDx3YnIvPgordGhlIHRodW1ibmFpbCBkYXRhIHdpbGwgYWxzbyBiZSByb3RhdGVkLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCB0aGlzIG9yaWVudGF0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIHNlbnNvciw8d2JyLz4gZ2l2ZW4KK2J5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9yaWVudGF0aW9uPC9hPi48d2JyLz48L3A+Cis8cD5UbyB0cmFuc2xhdGUgZnJvbSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGdpdmVuIGJ5IHRoZSBBbmRyb2lkIHNlbnNvciBBUElzLDx3YnIvPiB0aGUgZm9sbG93aW5nCitzYW1wbGUgY29kZSBtYXkgYmUgdXNlZDo8L3A+Cis8cHJlPjxjb2RlPnByaXZhdGUgaW50IGdldEpwZWdPcmllbnRhdGlvbihDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgYyw8d2JyLz4gaW50IGRldmljZU9yaWVudGF0aW9uKSB7CisgICAgaWYgKGRldmljZU9yaWVudGF0aW9uID09IGFuZHJvaWQuPHdici8+dmlldy48d2JyLz5PcmllbnRhdGlvbjx3YnIvPkV2ZW50PHdici8+TGlzdGVuZXIuPHdici8+T1JJRU5UQVRJT05fPHdici8+VU5LTk9XTikgcmV0dXJuIDA7CisgICAgaW50IHNlbnNvck9yaWVudGF0aW9uID0gYy48d2JyLz5nZXQoQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPlNFTlNPUl88d2JyLz5PUklFTlRBVElPTik7CisKKyAgICAvLzx3YnIvPiBSb3VuZCBkZXZpY2Ugb3JpZW50YXRpb24gdG8gYSBtdWx0aXBsZSBvZiA5MAorICAgIGRldmljZU9yaWVudGF0aW9uID0gKGRldmljZU9yaWVudGF0aW9uICsgNDUpIC88d2JyLz4gOTAgKiA5MDsKKworICAgIC8vPHdici8+IFJldmVyc2UgZGV2aWNlIG9yaWVudGF0aW9uIGZvciBmcm9udC1mYWNpbmcgY2FtZXJhcworICAgIGJvb2xlYW4gZmFjaW5nRnJvbnQgPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+TEVOU188d2JyLz5GQUNJTkcpID09IENhbWVyYTx3YnIvPkNoYXJhY3RlcmlzdGljcy48d2JyLz5MRU5TXzx3YnIvPkZBQ0lOR188d2JyLz5GUk9OVDsKKyAgICBpZiAoZmFjaW5nRnJvbnQpIGRldmljZU9yaWVudGF0aW9uID0gLWRldmljZU9yaWVudGF0aW9uOworCisgICAgLy88d2JyLz4gQ2FsY3VsYXRlIGRlc2lyZWQgSlBFRyBvcmllbnRhdGlvbiByZWxhdGl2ZSB0byBjYW1lcmEgb3JpZW50YXRpb24gdG8gbWFrZQorICAgIC8vPHdici8+IHRoZSBpbWFnZSB1cHJpZ2h0IHJlbGF0aXZlIHRvIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICBpbnQganBlZ09yaWVudGF0aW9uID0gKHNlbnNvck9yaWVudGF0aW9uICsgZGV2aWNlT3JpZW50YXRpb24gKyAzNjApICUgMzYwOworCisgICAgcmV0dXJuIGpwZWdPcmllbnRhdGlvbjsKK30KKzwvY29kZT48L3ByZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmpwZWcucXVhbGl0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+cXVhbGl0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbXByZXNzaW9uIHF1YWxpdHkgb2YgdGhlIGZpbmFsIEpQRUcKK2ltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEtMTAwOyBsYXJnZXIgaXMgaGlnaGVyIHF1YWxpdHk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+ODUtOTUgaXMgdHlwaWNhbCB1c2FnZSByYW5nZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLnNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBzaXplIG9mIHRoZSBjb21wcmVzc2VkIEpQRUcgaW1hZ2UsPHdici8+IGluCitieXRlczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBubyBKUEVHIG91dHB1dCBpcyBwcm9kdWNlZCBmb3IgdGhlIHJlcXVlc3QsPHdici8+Cit0aGlzIG11c3QgYmUgMC48d2JyLz48L3A+Cis8cD5PdGhlcndpc2UsPHdici8+IHRoaXMgZGVzY3JpYmVzIHRoZSByZWFsIHNpemUgb2YgdGhlIGNvbXByZXNzZWQKK0pQRUcgaW1hZ2UgcGxhY2VkIGluIHRoZSBvdXRwdXQgc3RyZWFtLjx3YnIvPiAgTW9yZSBzcGVjaWZpY2FsbHksPHdici8+CitpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuanBlZy5tYXhTaXplIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+bWF4PHdici8+U2l6ZTwvYT4gPSAxMDAwMDAwLDx3YnIvPiBhbmQgYSBzcGVjaWZpYyBjYXB0dXJlCitoYXMgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnNpemUiPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz5zaXplPC9hPiA9IDUwMDAwMCw8d2JyLz4gdGhlbiB0aGUgb3V0cHV0IGJ1ZmZlciBmcm9tCit0aGUgSlBFRyBzdHJlYW0gd2lsbCBiZSAxMDAwMDAwIGJ5dGVzLDx3YnIvPiBvZiB3aGljaCB0aGUgZmlyc3QKKzUwMDAwMCBtYWtlIHVwIHRoZSByZWFsIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz50aHVtYm5haWw8d2JyLz5RdWFsaXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29tcHJlc3Npb24gcXVhbGl0eSBvZiBKUEVHCit0aHVtYm5haWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MS0xMDA7IGxhcmdlciBpcyBoaWdoZXIgcXVhbGl0eTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz50aHVtYm5haWw8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UmVzb2x1dGlvbiBvZiBlbWJlZGRlZCBKUEVHIHRodW1ibmFpbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplcyI+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRodW1ibmFpbDx3YnIvPlNpemVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byAoMCw8d2JyLz4gMCkgdmFsdWUsPHdici8+IHRoZSBKUEVHIEVYSUYgd2lsbCBub3QgY29udGFpbiB0aHVtYm5haWwsPHdici8+CitidXQgdGhlIGNhcHR1cmVkIEpQRUcgd2lsbCBzdGlsbCBiZSBhIHZhbGlkIGltYWdlLjx3YnIvPjwvcD4KKzxwPkZvciBiZXN0IHJlc3VsdHMsPHdici8+IHdoZW4gaXNzdWluZyBhIHJlcXVlc3QgZm9yIGEgSlBFRyBpbWFnZSw8d2JyLz4gdGhlIHRodW1ibmFpbCBzaXplIHNlbGVjdGVkCitzaG91bGQgaGF2ZSB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIG1haW4gSlBFRyBvdXRwdXQuPHdici8+PC9wPgorPHA+SWYgdGhlIHRodW1ibmFpbCBpbWFnZSBhc3BlY3QgcmF0aW8gZGlmZmVycyBmcm9tIHRoZSBKUEVHIHByaW1hcnkgaW1hZ2UgYXNwZWN0CityYXRpbyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgY3JlYXRlcyB0aGUgdGh1bWJuYWlsIGJ5IGNyb3BwaW5nIGl0IGZyb20gdGhlIHByaW1hcnkgaW1hZ2UuPHdici8+CitGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIHByaW1hcnkgaW1hZ2UgaGFzIDQ6MyBhc3BlY3QgcmF0aW8sPHdici8+IHRoZSB0aHVtYm5haWwgaW1hZ2UgaGFzCisxNjo5IGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlIHByaW1hcnkgaW1hZ2Ugd2lsbCBiZSBjcm9wcGVkIHZlcnRpY2FsbHkgKGxldHRlcmJveCkgdG8KK2dlbmVyYXRlIHRoZSB0aHVtYm5haWwgaW1hZ2UuPHdici8+IFRoZSB0aHVtYm5haWwgaW1hZ2Ugd2lsbCBhbHdheXMgaGF2ZSBhIHNtYWxsZXIgRmllbGQKK09mIFZpZXcgKEZPVikgdGhhbiB0aGUgcHJpbWFyeSBpbWFnZSB3aGVuIGFzcGVjdCByYXRpb3MgZGlmZmVyLjx3YnIvPjwvcD4KKzxwPldoZW4gYW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5vcmllbnRhdGlvbiI+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPm9yaWVudGF0aW9uPC9hPiBvZiBub24temVybyBkZWdyZWUgaXMgcmVxdWVzdGVkLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBoYW5kbGUgdGh1bWJuYWlsIHJvdGF0aW9uIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nIHdheXM6PC9wPgorPHVsPgorPGxpPlNldCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvRXhpZkludGVyZmFjZS5odG1sI1RBR19PUklFTlRBVElPTiI+RVhJRiBvcmllbnRhdGlvbiBmbGFnPC9hPgorICBhbmQga2VlcCBqcGVnIGFuZCB0aHVtYm5haWwgaW1hZ2UgZGF0YSB1bnJvdGF0ZWQuPHdici8+PC9saT4KKzxsaT5Sb3RhdGUgdGhlIGpwZWcgYW5kIHRodW1ibmFpbCBpbWFnZSBkYXRhIGFuZCBub3Qgc2V0CisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0V4aWZJbnRlcmZhY2UuaHRtbCNUQUdfT1JJRU5UQVRJT04iPkVYSUYgb3JpZW50YXRpb24gZmxhZzwvYT4uPHdici8+IEluIHRoaXMKKyAgY2FzZSw8d2JyLz4gTElNSVRFRCBvciBGVUxMIGhhcmR3YXJlIGxldmVsIGRldmljZXMgd2lsbCByZXBvcnQgcm90YXRlZCB0aHVtbmFpbCBzaXplIGluCisgIGNhcHR1cmUgcmVzdWx0LDx3YnIvPiBzbyB0aGUgd2lkdGggYW5kIGhlaWdodCB3aWxsIGJlIGludGVyY2hhbmdlZCBpZiA5MCBvciAyNzAgZGVncmVlCisgIG9yaWVudGF0aW9uIGlzIHJlcXVlc3RlZC48d2JyLz4gTEVHQUNZIGRldmljZSB3aWxsIGFsd2F5cyByZXBvcnQgdW5yb3RhdGVkIHRodW1ibmFpbAorICBzaXplLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3Qgbm90IHNxdWVlemUgb3Igc3RyZXRjaCB0aGUgZG93bnNjYWxlZCBwcmltYXJ5IGltYWdlIHRvIGdlbmVyYXRlIHRodW1ibmFpbC48d2JyLz4KK1RoZSBjcm9wcGluZyBtdXN0IGJlIGRvbmUgb24gdGhlIHByaW1hcnkganBlZyBpbWFnZSByYXRoZXIgdGhhbiB0aGUgc2Vuc29yIGFjdGl2ZSBhcnJheS48d2JyLz4KK1RoZSBzdHJlYW0gY3JvcHBpbmcgcnVsZSBzcGVjaWZpZWQgYnkgIlM1Ljx3YnIvPiBDcm9wcGluZyIgaW4gY2FtZXJhMy48d2JyLz5oIGRvZXNuJ3QgYXBwbHkgdG8gdGhlCit0aHVtYm5haWwgaW1hZ2UgY3JvcHBpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fbGVucyIgY2xhc3M9InNlY3Rpb24iPmxlbnM8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgbGVucyBhcGVydHVyZSBzaXplLDx3YnIvPiBhcyBhIHJhdGlvIG9mIGxlbnMgZm9jYWwgbGVuZ3RoIHRvIHRoZQorZWZmZWN0aXZlIGFwZXJ0dXJlIGRpYW1ldGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBUaGUgZi1udW1iZXIgKGYvPHdici8+TikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+QXBlcnR1cmVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZXR0aW5nIHRoaXMgdmFsdWUgaXMgb25seSBzdXBwb3J0ZWQgb24gdGhlIGNhbWVyYSBkZXZpY2VzIHRoYXQgaGF2ZSBhIHZhcmlhYmxlCithcGVydHVyZSBsZW5zLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPRkYsPHdici8+Cit0aGlzIGNhbiBiZSBzZXQgYWxvbmcgd2l0aCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4KK3RvIGFjaGlldmUgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wuPHdici8+PC9wPgorPHA+VGhlIHJlcXVlc3RlZCBhcGVydHVyZSB2YWx1ZSBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUKK3JlcXVlc3RlZCB2YWx1ZTsgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgKGludGVybWVkaWF0ZSkKK2FwZXJ0dXJlIHNpemUgaW4gY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgd2hpbGUgdGhlIGFwZXJ0dXJlIGlzIGNoYW5naW5nLjx3YnIvPgorV2hpbGUgdGhlIGFwZXJ0dXJlIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbCBiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBvbmUgb2YKK3RoZSBPTiBtb2Rlcyw8d2JyLz4gdGhpcyB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNhbWVyYSBkZXZpY2UKK2F1dG8tZXhwb3N1cmUgYWxnb3JpdGhtLDx3YnIvPiB0aGUgb3ZlcnJpZGRlbiB2YWx1ZXMgYXJlIHRoZW4gcHJvdmlkZWQKK2JhY2sgdG8gdGhlIHVzZXIgaW4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZpbHRlcjx3YnIvPkRlbnNpdHkKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHNldHRpbmcgZm9yIHRoZSBsZW5zIG5ldXRyYWwgZGVuc2l0eSBmaWx0ZXIocykuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIEV4cG9zdXJlIFZhbHVlIChFVikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmlsdGVyPHdici8+RGVuc2l0aWVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgd2lsbCBub3QgYmUgc3VwcG9ydGVkIG9uIG1vc3QgY2FtZXJhIGRldmljZXMuPHdici8+PC9wPgorPHA+TGVucyBmaWx0ZXJzIGFyZSB0eXBpY2FsbHkgdXNlZCB0byBsb3dlciB0aGUgYW1vdW50IG9mIGxpZ2h0IHRoZQorc2Vuc29yIGlzIGV4cG9zZWQgdG8gKG1lYXN1cmVkIGluIHN0ZXBzIG9mIEVWKS48d2JyLz4gQXMgdXNlZCBoZXJlLDx3YnIvPiBhbiBFVgorc3RlcCBpcyB0aGUgc3RhbmRhcmQgbG9nYXJpdGhtaWMgcmVwcmVzZW50YXRpb24sPHdici8+IHdoaWNoIGFyZQorbm9uLW5lZ2F0aXZlLDx3YnIvPiBhbmQgaW52ZXJzZWx5IHByb3BvcnRpb25hbCB0byB0aGUgYW1vdW50IG9mIGxpZ2h0CitoaXR0aW5nIHRoZSBzZW5zb3IuPHdici8+ICBGb3IgZXhhbXBsZSw8d2JyLz4gc2V0dGluZyB0aGlzIHRvIDAgd291bGQgcmVzdWx0CitpbiBubyByZWR1Y3Rpb24gb2YgdGhlIGluY29taW5nIGxpZ2h0LDx3YnIvPiBhbmQgc2V0dGluZyB0aGlzIHRvIDIgd291bGQKK21lYW4gdGhhdCB0aGUgZmlsdGVyIGlzIHNldCB0byByZWR1Y2UgaW5jb21pbmcgbGlnaHQgYnkgdHdvIHN0b3BzCisoYWxsb3dpbmcgMS88d2JyLz40IG9mIHRoZSBwcmlvciBhbW91bnQgb2YgbGlnaHQgdG8gdGhlIHNlbnNvcikuPHdici8+PC9wPgorPHA+SXQgbWF5IHRha2Ugc2V2ZXJhbCBmcmFtZXMgYmVmb3JlIHRoZSBsZW5zIGZpbHRlciBkZW5zaXR5IGNoYW5nZXMKK3RvIHRoZSByZXF1ZXN0ZWQgdmFsdWUuPHdici8+IFdoaWxlIHRoZSBmaWx0ZXIgZGVuc2l0eSBpcyBzdGlsbCBjaGFuZ2luZyw8d2JyLz4KKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnN0YXRlPC9hPiB3aWxsIGJlIHNldCB0byBNT1ZJTkcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY2FsPHdici8+TGVuZ3RoCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIGxlbnMgZm9jYWwgbGVuZ3RoOyB1c2VkIGZvciBvcHRpY2FsIHpvb20uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1pbGxpbWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHMiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZvY2FsPHdici8+TGVuZ3RoczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBzZXR0aW5nIGNvbnRyb2xzIHRoZSBwaHlzaWNhbCBmb2NhbCBsZW5ndGggb2YgdGhlIGNhbWVyYQorZGV2aWNlJ3MgbGVucy48d2JyLz4gQ2hhbmdpbmcgdGhlIGZvY2FsIGxlbmd0aCBjaGFuZ2VzIHRoZSBmaWVsZCBvZgordmlldyBvZiB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYW5kIGlzIHVzdWFsbHkgdXNlZCBmb3Igb3B0aWNhbCB6b29tLjx3YnIvPjwvcD4KKzxwPkxpa2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZTwvYT4sPHdici8+IHRoaXMKK3NldHRpbmcgd29uJ3QgYmUgYXBwbGllZCBpbnN0YW50YW5lb3VzbHksPHdici8+IGFuZCBpdCBtYXkgdGFrZSBzZXZlcmFsCitmcmFtZXMgYmVmb3JlIHRoZSBsZW5zIGNhbiBjaGFuZ2UgdG8gdGhlIHJlcXVlc3RlZCBmb2NhbCBsZW5ndGguPHdici8+CitXaGlsZSB0aGUgZm9jYWwgbGVuZ3RoIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbAorYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+Cis8cD5PcHRpY2FsIHpvb20gd2lsbCBub3QgYmUgc3VwcG9ydGVkIG9uIG1vc3QgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EZXNpcmVkIGRpc3RhbmNlIHRvIHBsYW5lIG9mIHNoYXJwZXN0IGZvY3VzLDx3YnIvPgorbWVhc3VyZWQgZnJvbSBmcm9udG1vc3Qgc3VyZmFjZSBvZiB0aGUgbGVucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgU2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgY2FuIGJlIHVzZWQgZm9yIHNldHRpbmcgbWFudWFsIGZvY3VzLDx3YnIvPiBvbiBkZXZpY2VzIHRoYXQgc3VwcG9ydAordGhlIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBhbmQgaGF2ZSBhIHZhcmlhYmxlLWZvY3VzIGxlbnMgKHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+KS48d2JyLz48L3A+Cis8cD5BIHZhbHVlIG9mIDxjb2RlPjAuPHdici8+MGY8L2NvZGU+IG1lYW5zIGluZmluaXR5IGZvY3VzLjx3YnIvPiBUaGUgdmFsdWUgc2V0IHdpbGwgYmUgY2xhbXBlZCB0bworPGNvZGU+WzAuPHdici8+MGYsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPl08L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkxpa2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY2FsPHdici8+TGVuZ3RoPC9hPiw8d2JyLz4gdGhpcyBzZXR0aW5nIHdvbid0IGJlIGFwcGxpZWQKK2luc3RhbnRhbmVvdXNseSw8d2JyLz4gYW5kIGl0IG1heSB0YWtlIHNldmVyYWwgZnJhbWVzIGJlZm9yZSB0aGUgbGVucworY2FuIG1vdmUgdG8gdGhlIHJlcXVlc3RlZCBmb2N1cyBkaXN0YW5jZS48d2JyLz4gV2hpbGUgdGhlIGxlbnMgaXMgc3RpbGwgbW92aW5nLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwgYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyBzdXBwb3J0IGF0IG1vc3Qgc2V0dGluZyB0aGlzIHRvIDxjb2RlPjAuPHdici8+MGY8L2NvZGU+Citmb3IgaW5maW5pdHkgZm9jdXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5vcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpY2FsIHN0YWJpbGl6YXRpb24gaXMgdW5hdmFpbGFibGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGljYWwgc3RhYmlsaXphdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlNldHMgd2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB1c2VzIG9wdGljYWwgaW1hZ2Ugc3RhYmlsaXphdGlvbiAoT0lTKQord2hlbiBjYXB0dXJpbmcgaW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5PSVMgaXMgdXNlZCB0byBjb21wZW5zYXRlIGZvciBtb3Rpb24gYmx1ciBkdWUgdG8gc21hbGwKK21vdmVtZW50cyBvZiB0aGUgY2FtZXJhIGR1cmluZyBjYXB0dXJlLjx3YnIvPiBVbmxpa2UgZGlnaXRhbCBpbWFnZQorc3RhYmlsaXphdGlvbiAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4pLDx3YnIvPiBPSVMKK21ha2VzIHVzZSBvZiBtZWNoYW5pY2FsIGVsZW1lbnRzIHRvIHN0YWJpbGl6ZSB0aGUgY2FtZXJhCitzZW5zb3IsPHdici8+IGFuZCB0aHVzIGFsbG93cyBmb3IgbG9uZ2VyIGV4cG9zdXJlIHRpbWVzIGJlZm9yZQorY2FtZXJhIHNoYWtlIGJlY29tZXMgYXBwYXJlbnQuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIGJldHdlZW4gZGlmZmVyZW50IG9wdGljYWwgc3RhYmlsaXphdGlvbiBtb2RlcyBtYXkgdGFrZSBzZXZlcmFsCitmcmFtZXMgdG8gaW5pdGlhbGl6ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgbW9kZSBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBXaGVuICJPTiIgbW9kZSBpcyByZXF1ZXN0ZWQsPHdici8+IHRoZQorb3B0aWNhbCBzdGFiaWxpemF0aW9uIG1vZGVzIGluIHRoZSBmaXJzdCBzZXZlcmFsIGNhcHR1cmUgcmVzdWx0cyBtYXkgc3RpbGwKK2JlICJPRkYiLDx3YnIvPiBhbmQgaXQgd2lsbCBiZWNvbWUgIk9OIiB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcyBkb25lLjx3YnIvPjwvcD4KKzxwPklmIGEgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBib3RoIE9JUyBhbmQgZGlnaXRhbCBpbWFnZSBzdGFiaWxpemF0aW9uCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4pLDx3YnIvPiB0dXJuaW5nIGJvdGggbW9kZXMgb24gbWF5IHByb2R1Y2UgdW5kZXNpcmFibGUKK2ludGVyYWN0aW9uLDx3YnIvPiBzbyBpdCBpcyByZWNvbW1lbmRlZCBub3QgdG8gZW5hYmxlIGJvdGggYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+Cis8cD5Ob3QgYWxsIGRldmljZXMgd2lsbCBzdXBwb3J0IE9JUzsgc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5PcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjwvYT4gZm9yCithdmFpbGFibGUgY29udHJvbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFwZXJ0dXJlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhcGVydHVyZSBzaXplIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVGhlIGFwZXJ0dXJlIGYtbnVtYmVyCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgY2FtZXJhIGRldmljZSBkb2Vzbid0IHN1cHBvcnQgYSB2YXJpYWJsZSBsZW5zIGFwZXJ0dXJlLDx3YnIvPgordGhpcyBsaXN0IHdpbGwgY29udGFpbiBvbmx5IG9uZSB2YWx1ZSw8d2JyLz4gd2hpY2ggaXMgdGhlIGZpeGVkIGFwZXJ0dXJlIHNpemUuPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYSB2YXJpYWJsZSBhcGVydHVyZSw8d2JyLz4gdGhlIGFwZXJ0dXJlIHZhbHVlcworaW4gdGhpcyBsaXN0IHdpbGwgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGaWx0ZXJEZW5zaXRpZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmlsdGVyPHdici8+RGVuc2l0aWVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG5ldXRyYWwgZGVuc2l0eSBmaWx0ZXIgdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRXhwb3N1cmUgdmFsdWUgKEVWKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlcyBhcmUgJmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBhIG5ldXRyYWwgZGVuc2l0eSBmaWx0ZXIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UsPHdici8+Cit0aGlzIGxpc3Qgd2lsbCBjb250YWluIG9ubHkgMC48d2JyLz4gT3RoZXJ3aXNlLDx3YnIvPiB0aGlzIGxpc3Qgd2lsbCBpbmNsdWRlIGV2ZXJ5CitmaWx0ZXIgZGVuc2l0eSBzdXBwb3J0ZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGluIGFzY2VuZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+Rm9jYWw8d2JyLz5MZW5ndGhzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlRoZSBsaXN0IG9mIGF2YWlsYWJsZSBmb2NhbCBsZW5ndGhzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBmb2NhbCBsZW5ndGhzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNaWxsaW1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlcyBhcmUgJmd0OyAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgb3B0aWNhbCB6b29tIGlzIG5vdCBzdXBwb3J0ZWQsPHdici8+IHRoaXMgbGlzdCB3aWxsIG9ubHkgY29udGFpbgorYSBzaW5nbGUgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZml4ZWQgZm9jYWwgbGVuZ3RoIG9mIHRoZQorZGV2aWNlLjx3YnIvPiBPdGhlcndpc2UsPHdici8+IHRoaXMgbGlzdCB3aWxsIGluY2x1ZGUgZXZlcnkgZm9jYWwgbGVuZ3RoIHN1cHBvcnRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGluIGFzY2VuZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5PcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBvcHRpY2FsIGltYWdlIHN0YWJpbGl6YXRpb24gKE9JUykgbW9kZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBPSVMgaXMgbm90IHN1cHBvcnRlZCBieSBhIGdpdmVuIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMgbGlzdCB3aWxsCitjb250YWluIG9ubHkgT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmh5cGVyZm9jYWxEaXN0YW5jZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5oeXBlcmZvY2FsPHdici8+RGlzdGFuY2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkh5cGVyZm9jYWwgZGlzdGFuY2UgZm9yIHRoaXMgbGVucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgU2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPklmIGxlbnMgaXMgZml4ZWQgZm9jdXMsPHdici8+ICZndDs9IDAuPHdici8+IElmIGxlbnMgaGFzIGZvY3VzZXIgdW5pdCw8d2JyLz4gdGhlIHZhbHVlIGlzCit3aXRoaW4gPGNvZGU+KDAuPHdici8+MGYsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPl08L2NvZGU+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgbGVucyBpcyBub3QgZml4ZWQgZm9jdXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoaXMKK2ZpZWxkIHdoZW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4gaXMgQVBQUk9YSU1BVEUgb3IgQ0FMSUJSQVRFRC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U2hvcnRlc3QgZGlzdGFuY2UgZnJvbSBmcm9udG1vc3Qgc3VyZmFjZQorb2YgdGhlIGxlbnMgdGhhdCBjYW4gYmUgYnJvdWdodCBpbnRvIHNoYXJwIGZvY3VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBTZWUgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uIGZvciBkZXRhaWxzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgbGVucyBpcyBmaXhlZC1mb2N1cyw8d2JyLz4gdGhpcyB3aWxsIGJlCiswLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TWFuZGF0b3J5IGZvciBGVUxMIGRldmljZXM7IExJTUlURUQgZGV2aWNlcworbXVzdCBhbHdheXMgc2V0IHRoaXMgdmFsdWUgdG8gMCBmb3IgZml4ZWQtZm9jdXM7IGFuZCBtYXkgb21pdAordGhlIG1pbmltdW0gZm9jdXMgZGlzdGFuY2Ugb3RoZXJ3aXNlLjx3YnIvPjwvcD4KKzxwPlRoaXMgZmllbGQgaXMgYWxzbyBtYW5kYXRvcnkgZm9yIGFsbCBkZXZpY2VzIGFkdmVydGlzaW5nCit0aGUgTUFOVUFMXzx3YnIvPlNFTlNPUiBjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5zaGFkaW5nPHdici8+TWFwPHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHNpemVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+d2lkdGggYW5kIGhlaWdodCAoTiw8d2JyLz4gTSkgb2YgbGVucyBzaGFkaW5nIG1hcCBwcm92aWRlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EaW1lbnNpb25zIG9mIGxlbnMgc2hhZGluZyBtYXAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Qm90aCB2YWx1ZXMgJmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbWFwIHNob3VsZCBiZSBvbiB0aGUgb3JkZXIgb2YgMzAtNDAgcm93cyBhbmQgY29sdW1ucyw8d2JyLz4gYW5kCittdXN0IGJlIHNtYWxsZXIgdGhhbiA2NHg2NC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVOQ0FMSUJSQVRFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgaXMgbm90IGFjY3VyYXRlLDx3YnIvPiBhbmQgdGhlIHVuaXRzIHVzZWQgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiBkbyBub3QgY29ycmVzcG9uZCB0byBhbnkgcGh5c2ljYWwgdW5pdHMuPHdici8+PC9wPgorPHA+U2V0dGluZyB0aGUgbGVucyB0byB0aGUgc2FtZSBmb2N1cyBkaXN0YW5jZSBvbiBzZXBhcmF0ZSBvY2Nhc2lvbnMgbWF5CityZXN1bHQgaW4gYSBkaWZmZXJlbnQgcmVhbCBmb2N1cyBkaXN0YW5jZSw8d2JyLz4gZGVwZW5kaW5nIG9uIGZhY3RvcnMgc3VjaAorYXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBkZXZpY2UsPHdici8+IHRoZSBhZ2Ugb2YgdGhlIGZvY3VzaW5nIG1lY2hhbmlzbSw8d2JyLz4KK2FuZCB0aGUgZGV2aWNlIHRlbXBlcmF0dXJlLjx3YnIvPiBUaGUgZm9jdXMgZGlzdGFuY2UgdmFsdWUgd2lsbCBzdGlsbCBiZQoraW4gdGhlIHJhbmdlIG9mIDxjb2RlPlswLDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT5dPC9jb2RlPiw8d2JyLz4gd2hlcmUgMAorcmVwcmVzZW50cyB0aGUgZmFydGhlc3QgZm9jdXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVBQUk9YSU1BVEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBsZW5zIGZvY3VzIGRpc3RhbmNlIGlzIG1lYXN1cmVkIGluIGRpb3B0ZXJzLjx3YnIvPjwvcD4KKzxwPkhvd2V2ZXIsPHdici8+IHNldHRpbmcgdGhlIGxlbnMgdG8gdGhlIHNhbWUgZm9jdXMgZGlzdGFuY2UKK29uIHNlcGFyYXRlIG9jY2FzaW9ucyBtYXkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHJlYWwKK2ZvY3VzIGRpc3RhbmNlLDx3YnIvPiBkZXBlbmRpbmcgb24gZmFjdG9ycyBzdWNoIGFzIHRoZQorb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSw8d2JyLz4gdGhlIGFnZSBvZiB0aGUgZm9jdXNpbmcKK21lY2hhbmlzbSw8d2JyLz4gYW5kIHRoZSBkZXZpY2UgdGVtcGVyYXR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FMSUJSQVRFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgaXMgbWVhc3VyZWQgaW4gZGlvcHRlcnMsPHdici8+IGFuZAoraXMgY2FsaWJyYXRlZC48d2JyLz48L3A+Cis8cD5UaGUgbGVucyBtZWNoYW5pc20gaXMgY2FsaWJyYXRlZCBzbyB0aGF0IHNldHRpbmcgdGhlCitzYW1lIGZvY3VzIGRpc3RhbmNlIGlzIHJlcGVhdGFibGUgb24gbXVsdGlwbGUKK29jY2FzaW9ucyB3aXRoIGdvb2QgYWNjdXJhY3ksPHdici8+IGFuZCB0aGUgZm9jdXMgZGlzdGFuY2UKK2NvcnJlc3BvbmRzIHRvIHRoZSByZWFsIHBoeXNpY2FsIGRpc3RhbmNlIHRvIHRoZSBwbGFuZQorb2YgYmVzdCBmb2N1cy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbGVucyBmb2N1cyBkaXN0YW5jZSBjYWxpYnJhdGlvbiBxdWFsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgY2FsaWJyYXRpb24gcXVhbGl0eSBkZXRlcm1pbmVzIHRoZSByZWxpYWJpbGl0eSBvZgorZm9jdXMgcmVsYXRlZCBtZXRhZGF0YSBlbnRyaWVzLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPlJhbmdlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5oeXBlcmZvY2FsRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmh5cGVyZm9jYWw8d2JyLz5EaXN0YW5jZTwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkFQUFJPWElNQVRFIGFuZCBDQUxJQlJBVEVEIGRldmljZXMgcmVwb3J0IHRoZSBmb2N1cyBtZXRhZGF0YSBpbgordW5pdHMgb2YgZGlvcHRlcnMgKDEvPHdici8+bWV0ZXIpLDx3YnIvPiBzbyA8Y29kZT4wLjx3YnIvPjBmPC9jb2RlPiByZXByZXNlbnRzIGZvY3VzaW5nIGF0IGluZmluaXR5LDx3YnIvPgorYW5kIGluY3JlYXNpbmcgcG9zaXRpdmUgbnVtYmVycyByZXByZXNlbnQgZm9jdXNpbmcgY2xvc2VyIGFuZCBjbG9zZXIKK3RvIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGUgZm9jdXMgZGlzdGFuY2UgY29udHJvbCBhbHNvIHVzZXMgZGlvcHRlcnMKK29uIHRoZXNlIGRldmljZXMuPHdici8+PC9wPgorPHA+VU5DQUxJQlJBVEVEIGRldmljZXMgZG8gbm90IHVzZSB1bml0cyB0aGF0IGFyZSBkaXJlY3RseSBjb21wYXJhYmxlCit0byBhbnkgcmVhbCBwaHlzaWNhbCBtZWFzdXJlbWVudCw8d2JyLz4gYnV0IDxjb2RlPjAuPHdici8+MGY8L2NvZGU+IHN0aWxsIHJlcHJlc2VudHMgZmFydGhlc3QKK2ZvY3VzLDx3YnIvPiBhbmQgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+IHJlcHJlc2VudHMgdGhlCituZWFyZXN0IGZvY3VzIHRoZSBkZXZpY2UgY2FuIGFjaGlldmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgZGV2aWNlcyBhZHZlcnRpc2UgQVBQUk9YSU1BVEUgcXVhbGl0eSBvciBoaWdoZXIsPHdici8+IGRpb3B0ZXJzIDAgKGluZmluaXR5Citmb2N1cykgbXVzdCB3b3JrLjx3YnIvPiBXaGVuIGF1dG9mb2N1cyBpcyBkaXNhYmxlZCAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+ID09IE9GRikKK2FuZCB0aGUgbGVucyBmb2N1cyBkaXN0YW5jZSBpcyBzZXQgdG8gMCBkaW9wdGVycworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+ID09IDApLDx3YnIvPiB0aGUgbGVucyB3aWxsIG1vdmUgdG8gZm9jdXMgYXQgaW5maW5pdHkKK2FuZCBpcyBzdGFibHkgZm9jdXNlZCBhdCBpbmZpbml0eSBldmVuIGlmIHRoZSBkZXZpY2UgdGlsdHMuPHdici8+IEl0IG1heSB0YWtlIHRoZQorbGVucyBzb21lIHRpbWUgdG8gbW92ZTsgZHVyaW5nIHRoZSBtb3ZlIHRoZSBsZW5zIHN0YXRlIHNob3VsZCBiZSBNT1ZJTkcgYW5kCit0aGUgb3V0cHV0IGRpb3B0ZXIgdmFsdWUgc2hvdWxkIGJlIGNoYW5naW5nIHRvd2FyZCAwLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmZhY2luZyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmFjaW5nCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlJPTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGZhY2VzIHRoZSBzYW1lIGRpcmVjdGlvbiBhcyB0aGUgZGV2aWNlJ3Mgc2NyZWVuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJBQ0s8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGZhY2VzIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gYXMgdGhlIGRldmljZSdzIHNjcmVlbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5FWFRFUk5BTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgaXMgYW4gZXh0ZXJuYWwgY2FtZXJhLDx3YnIvPiBhbmQgaGFzIG5vIGZpeGVkIGZhY2luZyByZWxhdGl2ZSB0byB0aGUKK2RldmljZSdzIHNjcmVlbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EaXJlY3Rpb24gdGhlIGNhbWVyYSBmYWNlcyByZWxhdGl2ZSB0bworZGV2aWNlIHNjcmVlbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgb3JpZW50YXRpb24gb2YgdGhlIGNhbWVyYSByZWxhdGl2ZSB0byB0aGUgc2Vuc29yCitjb29yZGluYXRlIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBRdWF0ZXJuaW9uIGNvZWZmaWNpZW50cworICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZvdXIgY29lZmZpY2llbnRzIHRoYXQgZGVzY3JpYmUgdGhlIHF1YXRlcm5pb24KK3JvdGF0aW9uIGZyb20gdGhlIEFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUgc3lzdGVtIHRvIGEKK2NhbWVyYS1hbGlnbmVkIGNvb3JkaW5hdGUgc3lzdGVtIHdoZXJlIHRoZSBYLWF4aXMgaXMKK2FsaWduZWQgd2l0aCB0aGUgbG9uZyBzaWRlIG9mIHRoZSBpbWFnZSBzZW5zb3IsPHdici8+IHRoZSBZLWF4aXMKK2lzIGFsaWduZWQgd2l0aCB0aGUgc2hvcnQgc2lkZSBvZiB0aGUgaW1hZ2Ugc2Vuc29yLDx3YnIvPiBhbmQKK3RoZSBaLWF4aXMgaXMgYWxpZ25lZCB3aXRoIHRoZSBvcHRpY2FsIGF4aXMgb2YgdGhlIHNlbnNvci48d2JyLz48L3A+Cis8cD5UbyBjb252ZXJ0IGZyb20gdGhlIHF1YXRlcm5pb24gY29lZmZpY2llbnRzIDxjb2RlPih4LDx3YnIvPnksPHdici8+eiw8d2JyLz53KTwvY29kZT4KK3RvIHRoZSBheGlzIG9mIHJvdGF0aW9uIDxjb2RlPihhXzx3YnIvPngsPHdici8+IGFfPHdici8+eSw8d2JyLz4gYV88d2JyLz56KTwvY29kZT4gYW5kIHJvdGF0aW9uCithbW91bnQgPGNvZGU+dGhldGE8L2NvZGU+LDx3YnIvPiB0aGUgZm9sbG93aW5nIGZvcm11bGFzIGNhbiBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+IHRoZXRhID0gMiAqIGFjb3ModykKK2FfPHdici8+eCA9IHggLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eSA9IHkgLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eiA9IHogLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKKzwvY29kZT48L3ByZT4KKzxwPlRvIGNyZWF0ZSBhIDN4MyByb3RhdGlvbiBtYXRyaXggdGhhdCBhcHBsaWVzIHRoZSByb3RhdGlvbgorZGVmaW5lZCBieSB0aGlzIHF1YXRlcm5pb24sPHdici8+IHRoZSBmb2xsb3dpbmcgbWF0cml4IGNhbiBiZQordXNlZDo8L3A+Cis8cHJlPjxjb2RlPlIgPSBbIDEgLSAyeV4yIC0gMnpeMiw8d2JyLz4gICAgICAgMnh5IC0gMnp3LDx3YnIvPiAgICAgICAyeHogKyAyeXcsPHdici8+CisgICAgICAgICAgIDJ4eSArIDJ6dyw8d2JyLz4gMSAtIDJ4XjIgLSAyel4yLDx3YnIvPiAgICAgICAyeXogLSAyeHcsPHdici8+CisgICAgICAgICAgIDJ4eiAtIDJ5dyw8d2JyLz4gICAgICAgMnl6ICsgMnh3LDx3YnIvPiAxIC0gMnheMiAtIDJ5XjIgXQorPC9jb2RlPjwvcHJlPgorPHA+VGhpcyBtYXRyaXggY2FuIHRoZW4gYmUgdXNlZCB0byBhcHBseSB0aGUgcm90YXRpb24gdG8gYQorIGNvbHVtbiB2ZWN0b3IgcG9pbnQgd2l0aDwvcD4KKzxwPjxjb2RlPnAnID0gUnA8L2NvZGU+PC9wPgorPHA+d2hlcmUgPGNvZGU+cDwvY29kZT4gaXMgaW4gdGhlIGRldmljZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGFuZAorIDxjb2RlPnAnPC9jb2RlPiBpcyBpbiB0aGUgY2FtZXJhLW9yaWVudGVkIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5UcmFuc2xhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UG9zaXRpb24gb2YgdGhlIGNhbWVyYSBvcHRpY2FsIGNlbnRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBkZXZpY2UncyBsZW5zIG9wdGljYWwgY2VudGVyLDx3YnIvPgorYXMgYSB0aHJlZS1kaW1lbnNpb25hbCB2ZWN0b3IgPGNvZGU+KHgsPHdici8+eSw8d2JyLz56KTwvY29kZT4sPHdici8+IHJlbGF0aXZlIHRvIHRoZQorb3B0aWNhbCBjZW50ZXIgb2YgdGhlIGxhcmdlc3QgY2FtZXJhIGRldmljZSBmYWNpbmcgaW4gdGhlCitzYW1lIGRpcmVjdGlvbiBhcyB0aGlzIGNhbWVyYSw8d2JyLz4gaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL1NlbnNvckV2ZW50Lmh0bWwiPkFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUKK2F4ZXM8L2E+Ljx3YnIvPiBOb3RlIHRoYXQgb25seSB0aGUgYXhpcyBkZWZpbml0aW9ucyBhcmUgc2hhcmVkIHdpdGgKK3RoZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGJ1dCBub3QgdGhlIG9yaWdpbi48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGRldmljZSBpcyB0aGUgbGFyZ2VzdCBvciBvbmx5IGNhbWVyYSBkZXZpY2Ugd2l0aCBhCitnaXZlbiBmYWNpbmcsPHdici8+IHRoZW4gdGhpcyBwb3NpdGlvbiB3aWxsIGJlIDxjb2RlPigwLDx3YnIvPiAwLDx3YnIvPiAwKTwvY29kZT47IGEKK2NhbWVyYSBkZXZpY2Ugd2l0aCBhIGxlbnMgb3B0aWNhbCBjZW50ZXIgbG9jYXRlZCAzIGNtIGZyb20KK3RoZSBtYWluIHNlbnNvciBhbG9uZyB0aGUgK1ggYXhpcyAodG8gdGhlIHJpZ2h0IGZyb20gdGhlCit1c2VyJ3MgcGVyc3BlY3RpdmUpIHdpbGwgcmVwb3J0IDxjb2RlPigwLjx3YnIvPjAzLDx3YnIvPiAwLDx3YnIvPiAwKTwvY29kZT4uPHdici8+PC9wPgorPHA+VG8gdHJhbnNmb3JtIGEgcGl4ZWwgY29vcmRpbmF0ZXMgYmV0d2VlbiB0d28gY2FtZXJhcworZmFjaW5nIHRoZSBzYW1lIGRpcmVjdGlvbiw8d2JyLz4gZmlyc3QgdGhlIHNvdXJjZSBjYW1lcmEKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPiBtdXN0IGJlIGNvcnJlY3RlZCBmb3IuPHdici8+ICBUaGVuCit0aGUgc291cmNlIGNhbWVyYSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPiBuZWVkcwordG8gYmUgYXBwbGllZCw8d2JyLz4gZm9sbG93ZWQgYnkgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5Sb3RhdGlvbjwvYT4KK29mIHRoZSBzb3VyY2UgY2FtZXJhLDx3YnIvPiB0aGUgdHJhbnNsYXRpb24gb2YgdGhlIHNvdXJjZSBjYW1lcmEKK3JlbGF0aXZlIHRvIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEsPHdici8+IHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPiBvZiB0aGUgZGVzdGluYXRpb24gY2FtZXJhLDx3YnIvPiBhbmQKK2ZpbmFsbHkgdGhlIGludmVyc2Ugb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4KK29mIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEuPHdici8+IFRoaXMgb2J0YWlucyBhCityYWRpYWwtZGlzdG9ydGlvbi1mcmVlIGNvb3JkaW5hdGUgaW4gdGhlIGRlc3RpbmF0aW9uCitjYW1lcmEgcGl4ZWwgY29vcmRpbmF0ZXMuPHdici8+PC9wPgorPHA+VG8gY29tcGFyZSB0aGlzIGFnYWluc3QgYSByZWFsIGltYWdlIGZyb20gdGhlIGRlc3RpbmF0aW9uCitjYW1lcmEsPHdici8+IHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEgaW1hZ2UgdGhlbiBuZWVkcyB0byBiZQorY29ycmVjdGVkIGZvciByYWRpYWwgZGlzdG9ydGlvbiBiZWZvcmUgY29tcGFyaXNvbiBvcgorc2FtcGxpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNQorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgY2FtZXJhIGRldmljZSdzIGludHJpbnNpYworY2FsaWJyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgUGl4ZWxzIGluIHRoZQorICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICBjb29yZGluYXRlIHN5c3RlbS48d2JyLz4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBmaXZlIGNhbGlicmF0aW9uIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUKK3RyYW5zZm9ybSBmcm9tIGNhbWVyYS1jZW50cmljIDNEIGNvb3JkaW5hdGVzIHRvIHNlbnNvcgorcGl4ZWwgY29vcmRpbmF0ZXM6PC9wPgorPHByZT48Y29kZT5bZl88d2JyLz54LDx3YnIvPiBmXzx3YnIvPnksPHdici8+IGNfPHdici8+eCw8d2JyLz4gY188d2JyLz55LDx3YnIvPiBzXQorPC9jb2RlPjwvcHJlPgorPHA+V2hlcmUgPGNvZGU+Zl88d2JyLz54PC9jb2RlPiBhbmQgPGNvZGU+Zl88d2JyLz55PC9jb2RlPiBhcmUgdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsCitmb2NhbCBsZW5ndGhzLDx3YnIvPiA8Y29kZT5bY188d2JyLz54LDx3YnIvPiBjXzx3YnIvPnldPC9jb2RlPiBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIG9wdGljYWwKK2F4aXMsPHdici8+IGFuZCA8Y29kZT5zPC9jb2RlPiBpcyBhIHNrZXcgcGFyYW1ldGVyIGZvciB0aGUgc2Vuc29yIHBsYW5lIG5vdAorYmVpbmcgYWxpZ25lZCB3aXRoIHRoZSBsZW5zIHBsYW5lLjx3YnIvPjwvcD4KKzxwPlRoZXNlIGFyZSB0eXBpY2FsbHkgdXNlZCB3aXRoaW4gYSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggSzo8L3A+Cis8cHJlPjxjb2RlPksgPSBbIGZfPHdici8+eCw8d2JyLz4gICBzLDx3YnIvPiBjXzx3YnIvPngsPHdici8+CisgICAgICAgMCw8d2JyLz4gZl88d2JyLz55LDx3YnIvPiBjXzx3YnIvPnksPHdici8+CisgICAgICAgMCAgICAwLDx3YnIvPiAgIDEgXQorPC9jb2RlPjwvcHJlPgorPHA+d2hpY2ggY2FuIHRoZW4gYmUgY29tYmluZWQgd2l0aCB0aGUgY2FtZXJhIHBvc2Ugcm90YXRpb24KKzxjb2RlPlI8L2NvZGU+IGFuZCB0cmFuc2xhdGlvbiA8Y29kZT50PC9jb2RlPiAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5UcmFuc2xhdGlvbjwvYT4sPHdici8+IHJlc3BlY3RpdmUpIHRvIGNhbGN1bGF0ZSB0aGUKK2NvbXBsZXRlIHRyYW5zZm9ybSBmcm9tIHdvcmxkIGNvb3JkaW5hdGVzIHRvIHBpeGVsCitjb29yZGluYXRlczo8L3A+Cis8cHJlPjxjb2RlPlAgPSBbIEsgMCAgICogWyBSIHQKKyAgICAgMCAxIF0gICAgIDAgMSBdCis8L2NvZGU+PC9wcmU+Cis8cD5hbmQgd2l0aCA8Y29kZT5wXzx3YnIvPnc8L2NvZGU+IGJlaW5nIGEgcG9pbnQgaW4gdGhlIHdvcmxkIGNvb3JkaW5hdGUgc3lzdGVtCithbmQgPGNvZGU+cF88d2JyLz5zPC9jb2RlPiBiZWluZyBhIHBvaW50IGluIHRoZSBjYW1lcmEgYWN0aXZlIHBpeGVsIGFycmF5Citjb29yZGluYXRlIHN5c3RlbSw8d2JyLz4gYW5kIHdpdGggdGhlIG1hcHBpbmcgaW5jbHVkaW5nIHRoZQoraG9tb2dlbmVvdXMgZGl2aXNpb24gYnkgejo8L3A+Cis8cHJlPjxjb2RlPiBwXzx3YnIvPmggPSAoeF88d2JyLz5oLDx3YnIvPiB5Xzx3YnIvPmgsPHdici8+IHpfPHdici8+aCkgPSBQIHBfPHdici8+dworcF88d2JyLz5zID0gcF88d2JyLz5oIC88d2JyLz4gel88d2JyLz5oCis8L2NvZGU+PC9wcmU+Cis8cD5zbyA8Y29kZT5beF88d2JyLz5zLDx3YnIvPiB5Xzx3YnIvPnNdPC9jb2RlPiBpcyB0aGUgcGl4ZWwgY29vcmRpbmF0ZXMgb2YgdGhlIHdvcmxkCitwb2ludCw8d2JyLz4gPGNvZGU+el88d2JyLz5zID0gMTwvY29kZT4sPHdici8+IGFuZCA8Y29kZT53Xzx3YnIvPnM8L2NvZGU+IGlzIGEgbWVhc3VyZW1lbnQgb2YgZGlzcGFyaXR5CisoZGVwdGgpIGluIHBpeGVsIGNvb3JkaW5hdGVzLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoaXMgdHJhbnNmb3JtIGlzIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gc3lzdGVtLDx3YnIvPgord2hlcmUgPGNvZGU+KDAsPHdici8+MCk8L2NvZGU+IGlzIHRoZSB0b3AtbGVmdCBvZiB0aGUKK3ByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUgcmVjdGFuZ2xlLjx3YnIvPiBPbmNlIHRoZSBwb3NlIGFuZAoraW50cmluc2ljIGNhbGlicmF0aW9uIHRyYW5zZm9ybXMgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gYQord29ybGQgcG9pbnQsPHdici8+IHRoZW4gdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPgordHJhbnNmb3JtIG5lZWRzIHRvIGJlIGFwcGxpZWQsPHdici8+IGFuZCB0aGUgcmVzdWx0IGFkanVzdGVkIHRvCitiZSBpbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IGNvb3JkaW5hdGUKK3N5c3RlbSAod2hlcmUgPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBpcyB0aGUgdG9wLWxlZnQgb2YgdGhlCithY3RpdmVBcnJheVNpemUgcmVjdGFuZ2xlKSw8d2JyLz4gdG8gZGV0ZXJtaW5lIHRoZSBmaW5hbCBwaXhlbAorY29vcmRpbmF0ZSBvZiB0aGUgd29ybGQgcG9pbnQgZm9yIHByb2Nlc3NlZCAobm9uLVJBVykKK291dHB1dCBidWZmZXJzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgY29ycmVjdGlvbiBjb2VmZmljaWVudHMgdG8gY29ycmVjdCBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MKK3JhZGlhbCBhbmQgdGFuZ2VudGlhbCBsZW5zIGRpc3RvcnRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pdGxlc3MgY29lZmZpY2llbnRzLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm91ciByYWRpYWwgZGlzdG9ydGlvbiBjb2VmZmljaWVudHMgPGNvZGU+W2thcHBhXzx3YnIvPjAsPHdici8+IGthcHBhXzx3YnIvPjEsPHdici8+IGthcHBhXzx3YnIvPjIsPHdici8+CitrYXBwYV88d2JyLz4zXTwvY29kZT4gYW5kIHR3byB0YW5nZW50aWFsIGRpc3RvcnRpb24gY29lZmZpY2llbnRzCis8Y29kZT5ba2FwcGFfPHdici8+NCw8d2JyLz4ga2FwcGFfPHdici8+NV08L2NvZGU+IHRoYXQgY2FuIGJlIHVzZWQgdG8gY29ycmVjdCB0aGUKK2xlbnMncyBnZW9tZXRyaWMgZGlzdG9ydGlvbiB3aXRoIHRoZSBtYXBwaW5nIGVxdWF0aW9uczo8L3A+Cis8cHJlPjxjb2RlPiB4Xzx3YnIvPmMgPSB4Xzx3YnIvPmkgKiAoIGthcHBhXzx3YnIvPjAgKyBrYXBwYV88d2JyLz4xICogcl4yICsga2FwcGFfPHdici8+MiAqIHJeNCArIGthcHBhXzx3YnIvPjMgKiByXjYgKSArCisgICAgICAga2FwcGFfPHdici8+NCAqICgyICogeF88d2JyLz5pICogeV88d2JyLz5pKSArIGthcHBhXzx3YnIvPjUgKiAoIHJeMiArIDIgKiB4Xzx3YnIvPmleMiApCisgeV88d2JyLz5jID0geV88d2JyLz5pICogKCBrYXBwYV88d2JyLz4wICsga2FwcGFfPHdici8+MSAqIHJeMiArIGthcHBhXzx3YnIvPjIgKiByXjQgKyBrYXBwYV88d2JyLz4zICogcl42ICkgKworICAgICAgIGthcHBhXzx3YnIvPjUgKiAoMiAqIHhfPHdici8+aSAqIHlfPHdici8+aSkgKyBrYXBwYV88d2JyLz40ICogKCByXjIgKyAyICogeV88d2JyLz5pXjIgKQorPC9jb2RlPjwvcHJlPgorPHA+SGVyZSw8d2JyLz4gPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gYXJlIHRoZSBjb29yZGluYXRlcyB0byBzYW1wbGUgaW4gdGhlCitpbnB1dCBpbWFnZSB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIHBpeGVsIHZhbHVlcyBpbiB0aGUKK2NvcnJlY3RlZCBpbWFnZSBhdCB0aGUgY29vcmRpbmF0ZSA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPjo8L3A+Cis8cHJlPjxjb2RlPiBjb3JyZWN0ZWRJbWFnZSh4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aSkgPSBzYW1wbGVfPHdici8+YXQoeF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmMsPHdici8+IGlucHV0SW1hZ2UpCis8L2NvZGU+PC9wcmU+Cis8cD5UaGUgcGl4ZWwgY29vcmRpbmF0ZXMgYXJlIGRlZmluZWQgaW4gYSBub3JtYWxpemVkCitjb29yZGluYXRlIHN5c3RlbSByZWxhdGVkIHRvIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4gY2FsaWJyYXRpb24gZmllbGRzLjx3YnIvPgorQm90aCA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPiBhbmQgPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gaGF2ZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gYXQgdGhlCitsZW5zIG9wdGljYWwgY2VudGVyIDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+Ljx3YnIvPiBUaGUgbWF4aW11bSBtYWduaXR1ZGVzCitvZiBib3RoIHggYW5kIHkgY29vcmRpbmF0ZXMgYXJlIG5vcm1hbGl6ZWQgdG8gYmUgMSBhdCB0aGUKK2VkZ2UgZnVydGhlciBmcm9tIHRoZSBvcHRpY2FsIGNlbnRlciw8d2JyLz4gc28gdGhlIHJhbmdlCitmb3IgYm90aCBkaW1lbnNpb25zIGlzIDxjb2RlPi0xICZsdDs9IHggJmx0Oz0gMTwvY29kZT4uPHdici8+PC9wPgorPHA+RmluYWxseSw8d2JyLz4gPGNvZGU+cjwvY29kZT4gcmVwcmVzZW50cyB0aGUgcmFkaWFsIGRpc3RhbmNlIGZyb20gdGhlCitvcHRpY2FsIGNlbnRlciw8d2JyLz4gPGNvZGU+cl4yID0geF88d2JyLz5pXjIgKyB5Xzx3YnIvPmleMjwvY29kZT4sPHdici8+IGFuZCBpdHMgbWFnbml0dWRlCitpcyB0aGVyZWZvcmUgbm8gbGFyZ2VyIHRoYW4gPGNvZGU+fDx3YnIvPnJ8PHdici8+ICZsdDs9IHNxcnQoMik8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlRoZSBkaXN0b3J0aW9uIG1vZGVsIHVzZWQgaXMgdGhlIEJyb3duLUNvbnJhZHkgbW9kZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgbGVucyBhcGVydHVyZSBzaXplLDx3YnIvPiBhcyBhIHJhdGlvIG9mIGxlbnMgZm9jYWwgbGVuZ3RoIHRvIHRoZQorZWZmZWN0aXZlIGFwZXJ0dXJlIGRpYW1ldGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBUaGUgZi1udW1iZXIgKGYvPHdici8+TikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+QXBlcnR1cmVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZXR0aW5nIHRoaXMgdmFsdWUgaXMgb25seSBzdXBwb3J0ZWQgb24gdGhlIGNhbWVyYSBkZXZpY2VzIHRoYXQgaGF2ZSBhIHZhcmlhYmxlCithcGVydHVyZSBsZW5zLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPRkYsPHdici8+Cit0aGlzIGNhbiBiZSBzZXQgYWxvbmcgd2l0aCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4KK3RvIGFjaGlldmUgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wuPHdici8+PC9wPgorPHA+VGhlIHJlcXVlc3RlZCBhcGVydHVyZSB2YWx1ZSBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUKK3JlcXVlc3RlZCB2YWx1ZTsgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgKGludGVybWVkaWF0ZSkKK2FwZXJ0dXJlIHNpemUgaW4gY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgd2hpbGUgdGhlIGFwZXJ0dXJlIGlzIGNoYW5naW5nLjx3YnIvPgorV2hpbGUgdGhlIGFwZXJ0dXJlIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbCBiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBpcyBzdXBwb3J0ZWQgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBvbmUgb2YKK3RoZSBPTiBtb2Rlcyw8d2JyLz4gdGhpcyB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNhbWVyYSBkZXZpY2UKK2F1dG8tZXhwb3N1cmUgYWxnb3JpdGhtLDx3YnIvPiB0aGUgb3ZlcnJpZGRlbiB2YWx1ZXMgYXJlIHRoZW4gcHJvdmlkZWQKK2JhY2sgdG8gdGhlIHVzZXIgaW4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgc2V0dGluZyBmb3IgdGhlIGxlbnMgbmV1dHJhbCBkZW5zaXR5IGZpbHRlcihzKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRXhwb3N1cmUgVmFsdWUgKEVWKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GaWx0ZXI8d2JyLz5EZW5zaXRpZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgb24gbW9zdCBjYW1lcmEgZGV2aWNlcy48d2JyLz48L3A+Cis8cD5MZW5zIGZpbHRlcnMgYXJlIHR5cGljYWxseSB1c2VkIHRvIGxvd2VyIHRoZSBhbW91bnQgb2YgbGlnaHQgdGhlCitzZW5zb3IgaXMgZXhwb3NlZCB0byAobWVhc3VyZWQgaW4gc3RlcHMgb2YgRVYpLjx3YnIvPiBBcyB1c2VkIGhlcmUsPHdici8+IGFuIEVWCitzdGVwIGlzIHRoZSBzdGFuZGFyZCBsb2dhcml0aG1pYyByZXByZXNlbnRhdGlvbiw8d2JyLz4gd2hpY2ggYXJlCitub24tbmVnYXRpdmUsPHdici8+IGFuZCBpbnZlcnNlbHkgcHJvcG9ydGlvbmFsIHRvIHRoZSBhbW91bnQgb2YgbGlnaHQKK2hpdHRpbmcgdGhlIHNlbnNvci48d2JyLz4gIEZvciBleGFtcGxlLDx3YnIvPiBzZXR0aW5nIHRoaXMgdG8gMCB3b3VsZCByZXN1bHQKK2luIG5vIHJlZHVjdGlvbiBvZiB0aGUgaW5jb21pbmcgbGlnaHQsPHdici8+IGFuZCBzZXR0aW5nIHRoaXMgdG8gMiB3b3VsZAorbWVhbiB0aGF0IHRoZSBmaWx0ZXIgaXMgc2V0IHRvIHJlZHVjZSBpbmNvbWluZyBsaWdodCBieSB0d28gc3RvcHMKKyhhbGxvd2luZyAxLzx3YnIvPjQgb2YgdGhlIHByaW9yIGFtb3VudCBvZiBsaWdodCB0byB0aGUgc2Vuc29yKS48d2JyLz48L3A+Cis8cD5JdCBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyBiZWZvcmUgdGhlIGxlbnMgZmlsdGVyIGRlbnNpdHkgY2hhbmdlcwordG8gdGhlIHJlcXVlc3RlZCB2YWx1ZS48d2JyLz4gV2hpbGUgdGhlIGZpbHRlciBkZW5zaXR5IGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwgYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBsZW5zIGZvY2FsIGxlbmd0aDsgdXNlZCBmb3Igb3B0aWNhbCB6b29tLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNaWxsaW1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Gb2NhbDx3YnIvPkxlbmd0aHM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgc2V0dGluZyBjb250cm9scyB0aGUgcGh5c2ljYWwgZm9jYWwgbGVuZ3RoIG9mIHRoZSBjYW1lcmEKK2RldmljZSdzIGxlbnMuPHdici8+IENoYW5naW5nIHRoZSBmb2NhbCBsZW5ndGggY2hhbmdlcyB0aGUgZmllbGQgb2YKK3ZpZXcgb2YgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBpcyB1c3VhbGx5IHVzZWQgZm9yIG9wdGljYWwgem9vbS48d2JyLz48L3A+Cis8cD5MaWtlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+LDx3YnIvPiB0aGlzCitzZXR0aW5nIHdvbid0IGJlIGFwcGxpZWQgaW5zdGFudGFuZW91c2x5LDx3YnIvPiBhbmQgaXQgbWF5IHRha2Ugc2V2ZXJhbAorZnJhbWVzIGJlZm9yZSB0aGUgbGVucyBjYW4gY2hhbmdlIHRvIHRoZSByZXF1ZXN0ZWQgZm9jYWwgbGVuZ3RoLjx3YnIvPgorV2hpbGUgdGhlIGZvY2FsIGxlbmd0aCBpcyBzdGlsbCBjaGFuZ2luZyw8d2JyLz4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwKK2JlIHNldCB0byBNT1ZJTkcuPHdici8+PC9wPgorPHA+T3B0aWNhbCB6b29tIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBvbiBtb3N0IGRldmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EZXNpcmVkIGRpc3RhbmNlIHRvIHBsYW5lIG9mIHNoYXJwZXN0IGZvY3VzLDx3YnIvPgorbWVhc3VyZWQgZnJvbSBmcm9udG1vc3Qgc3VyZmFjZSBvZiB0aGUgbGVucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgU2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2hvdWxkIGJlIHplcm8gZm9yIGZpeGVkLWZvY3VzIGNhbWVyYXM8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+UmFuZ2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHBhaXJGbG9hdEZsb2F0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlJhbmdlIG9mIHNjZW5lIGRpc3RhbmNlcyB0aGF0IGFyZSBpbiBmb2N1czwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSByYW5nZSBvZiBzY2VuZSBkaXN0YW5jZXMgdGhhdCBhcmUgaW4KK3NoYXJwIGZvY3VzIChkZXB0aCBvZiBmaWVsZCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIEEgcGFpciBvZiBmb2N1cyBkaXN0YW5jZXMgaW4gZGlvcHRlcnM6IChuZWFyLDx3YnIvPgorICAgICAgICAgIGZhcik7IHNlZSBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPHdici8+Q2FsaWJyYXRpb24gZm9yIGRldGFpbHMuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0wPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHZhcmlhYmxlIGZvY3VzIG5vdCBzdXBwb3J0ZWQsPHdici8+IGNhbiBzdGlsbCByZXBvcnQKK2ZpeGVkIGRlcHRoIG9mIGZpZWxkIHJhbmdlPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGljYWwgc3RhYmlsaXphdGlvbiBpcyB1bmF2YWlsYWJsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aWNhbCBzdGFiaWxpemF0aW9uIGlzIGVuYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U2V0cyB3aGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHVzZXMgb3B0aWNhbCBpbWFnZSBzdGFiaWxpemF0aW9uIChPSVMpCit3aGVuIGNhcHR1cmluZyBpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+T3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9JUyBpcyB1c2VkIHRvIGNvbXBlbnNhdGUgZm9yIG1vdGlvbiBibHVyIGR1ZSB0byBzbWFsbAorbW92ZW1lbnRzIG9mIHRoZSBjYW1lcmEgZHVyaW5nIGNhcHR1cmUuPHdici8+IFVubGlrZSBkaWdpdGFsIGltYWdlCitzdGFiaWxpemF0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IE9JUworbWFrZXMgdXNlIG9mIG1lY2hhbmljYWwgZWxlbWVudHMgdG8gc3RhYmlsaXplIHRoZSBjYW1lcmEKK3NlbnNvciw8d2JyLz4gYW5kIHRodXMgYWxsb3dzIGZvciBsb25nZXIgZXhwb3N1cmUgdGltZXMgYmVmb3JlCitjYW1lcmEgc2hha2UgYmVjb21lcyBhcHBhcmVudC48d2JyLz48L3A+Cis8cD5Td2l0Y2hpbmcgYmV0d2VlbiBkaWZmZXJlbnQgb3B0aWNhbCBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4gdGhlCitvcHRpY2FsIHN0YWJpbGl6YXRpb24gbW9kZXMgaW4gdGhlIGZpcnN0IHNldmVyYWwgY2FwdHVyZSByZXN1bHRzIG1heSBzdGlsbAorYmUgIk9GRiIsPHdici8+IGFuZCBpdCB3aWxsIGJlY29tZSAiT04iIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUuPHdici8+PC9wPgorPHA+SWYgYSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGJvdGggT0lTIGFuZCBkaWdpdGFsIGltYWdlIHN0YWJpbGl6YXRpb24KKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkgcHJvZHVjZSB1bmRlc2lyYWJsZQoraW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUgYm90aCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgZGV2aWNlcyB3aWxsIHN1cHBvcnQgT0lTOyBzZWUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPiBmb3IKK2F2YWlsYWJsZSBjb250cm9scy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFUSU9OQVJZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbGVucyBwYXJhbWV0ZXJzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZpbHRlcjx3YnIvPkRlbnNpdHk8L2E+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+KSBhcmUgbm90IGNoYW5naW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1PVklORzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T25lIG9yIHNldmVyYWwgb2YgdGhlIGxlbnMgcGFyYW1ldGVycworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aDwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlPC9hPikgaXMKK2N1cnJlbnRseSBjaGFuZ2luZy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5DdXJyZW50IGxlbnMgc3RhdHVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGxlbnMgcGFyYW1ldGVycyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZpbHRlcjx3YnIvPkRlbnNpdHk8L2E+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+LDx3YnIvPiB3aGVuIGNoYW5nZXMgYXJlIHJlcXVlc3RlZCw8d2JyLz4KK3RoZXkgbWF5IHRha2Ugc2V2ZXJhbCBmcmFtZXMgdG8gcmVhY2ggdGhlIHJlcXVlc3RlZCB2YWx1ZXMuPHdici8+IFRoaXMgc3RhdGUgaW5kaWNhdGVzCit0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGxlbnMgcGFyYW1ldGVycy48d2JyLz48L3A+Cis8cD5XaGVuIHRoZSBzdGF0ZSBpcyBTVEFUSU9OQVJZLDx3YnIvPiB0aGUgbGVucyBwYXJhbWV0ZXJzIGFyZSBub3QgY2hhbmdpbmcuPHdici8+IFRoaXMgY291bGQgYmUKK2VpdGhlciBiZWNhdXNlIHRoZSBwYXJhbWV0ZXJzIGFyZSBhbGwgZml4ZWQsPHdici8+IG9yIGJlY2F1c2UgdGhlIGxlbnMgaGFzIGhhZCBlbm91Z2gKK3RpbWUgdG8gcmVhY2ggdGhlIG1vc3QgcmVjZW50bHktcmVxdWVzdGVkIHZhbHVlcy48d2JyLz4KK0lmIGFsbCB0aGVzZSBsZW5zIHBhcmFtZXRlcnMgYXJlIG5vdCBjaGFuZ2FibGUgZm9yIGEgY2FtZXJhIGRldmljZSw8d2JyLz4gYXMgbGlzdGVkIGJlbG93OjwvcD4KKzx1bD4KKzxsaT5GaXhlZCBmb2N1cyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+ID09IDA8L2NvZGU+KSw8d2JyLz4gd2hpY2ggbWVhbnMKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+IHBhcmFtZXRlciB3aWxsIGFsd2F5cyBiZSAwLjx3YnIvPjwvbGk+Cis8bGk+Rml4ZWQgZm9jYWwgbGVuZ3RoICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+Rm9jYWw8d2JyLz5MZW5ndGhzPC9hPiBjb250YWlucyBzaW5nbGUgdmFsdWUpLDx3YnIvPgord2hpY2ggbWVhbnMgdGhlIG9wdGljYWwgem9vbSBpcyBub3Qgc3VwcG9ydGVkLjx3YnIvPjwvbGk+Cis8bGk+Tm8gTkQgZmlsdGVyICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmlsdGVyPHdici8+RGVuc2l0aWVzPC9hPiBjb250YWlucyBvbmx5IDApLjx3YnIvPjwvbGk+Cis8bGk+Rml4ZWQgYXBlcnR1cmUgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5BcGVydHVyZXM8L2E+IGNvbnRhaW5zIHNpbmdsZSB2YWx1ZSkuPHdici8+PC9saT4KKzwvdWw+Cis8cD5UaGVuIHRoaXMgc3RhdGUgd2lsbCBhbHdheXMgYmUgU1RBVElPTkFSWS48d2JyLz48L3A+Cis8cD5XaGVuIHRoZSBzdGF0ZSBpcyBNT1ZJTkcsPHdici8+IGl0IGluZGljYXRlcyB0aGF0IGF0IGxlYXN0IG9uZSBvZiB0aGUgbGVucyBwYXJhbWV0ZXJzCitpcyBjaGFuZ2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgb3JpZW50YXRpb24gb2YgdGhlIGNhbWVyYSByZWxhdGl2ZSB0byB0aGUgc2Vuc29yCitjb29yZGluYXRlIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBRdWF0ZXJuaW9uIGNvZWZmaWNpZW50cworICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZvdXIgY29lZmZpY2llbnRzIHRoYXQgZGVzY3JpYmUgdGhlIHF1YXRlcm5pb24KK3JvdGF0aW9uIGZyb20gdGhlIEFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUgc3lzdGVtIHRvIGEKK2NhbWVyYS1hbGlnbmVkIGNvb3JkaW5hdGUgc3lzdGVtIHdoZXJlIHRoZSBYLWF4aXMgaXMKK2FsaWduZWQgd2l0aCB0aGUgbG9uZyBzaWRlIG9mIHRoZSBpbWFnZSBzZW5zb3IsPHdici8+IHRoZSBZLWF4aXMKK2lzIGFsaWduZWQgd2l0aCB0aGUgc2hvcnQgc2lkZSBvZiB0aGUgaW1hZ2Ugc2Vuc29yLDx3YnIvPiBhbmQKK3RoZSBaLWF4aXMgaXMgYWxpZ25lZCB3aXRoIHRoZSBvcHRpY2FsIGF4aXMgb2YgdGhlIHNlbnNvci48d2JyLz48L3A+Cis8cD5UbyBjb252ZXJ0IGZyb20gdGhlIHF1YXRlcm5pb24gY29lZmZpY2llbnRzIDxjb2RlPih4LDx3YnIvPnksPHdici8+eiw8d2JyLz53KTwvY29kZT4KK3RvIHRoZSBheGlzIG9mIHJvdGF0aW9uIDxjb2RlPihhXzx3YnIvPngsPHdici8+IGFfPHdici8+eSw8d2JyLz4gYV88d2JyLz56KTwvY29kZT4gYW5kIHJvdGF0aW9uCithbW91bnQgPGNvZGU+dGhldGE8L2NvZGU+LDx3YnIvPiB0aGUgZm9sbG93aW5nIGZvcm11bGFzIGNhbiBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+IHRoZXRhID0gMiAqIGFjb3ModykKK2FfPHdici8+eCA9IHggLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eSA9IHkgLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKK2FfPHdici8+eiA9IHogLzx3YnIvPiBzaW4odGhldGEvPHdici8+MikKKzwvY29kZT48L3ByZT4KKzxwPlRvIGNyZWF0ZSBhIDN4MyByb3RhdGlvbiBtYXRyaXggdGhhdCBhcHBsaWVzIHRoZSByb3RhdGlvbgorZGVmaW5lZCBieSB0aGlzIHF1YXRlcm5pb24sPHdici8+IHRoZSBmb2xsb3dpbmcgbWF0cml4IGNhbiBiZQordXNlZDo8L3A+Cis8cHJlPjxjb2RlPlIgPSBbIDEgLSAyeV4yIC0gMnpeMiw8d2JyLz4gICAgICAgMnh5IC0gMnp3LDx3YnIvPiAgICAgICAyeHogKyAyeXcsPHdici8+CisgICAgICAgICAgIDJ4eSArIDJ6dyw8d2JyLz4gMSAtIDJ4XjIgLSAyel4yLDx3YnIvPiAgICAgICAyeXogLSAyeHcsPHdici8+CisgICAgICAgICAgIDJ4eiAtIDJ5dyw8d2JyLz4gICAgICAgMnl6ICsgMnh3LDx3YnIvPiAxIC0gMnheMiAtIDJ5XjIgXQorPC9jb2RlPjwvcHJlPgorPHA+VGhpcyBtYXRyaXggY2FuIHRoZW4gYmUgdXNlZCB0byBhcHBseSB0aGUgcm90YXRpb24gdG8gYQorIGNvbHVtbiB2ZWN0b3IgcG9pbnQgd2l0aDwvcD4KKzxwPjxjb2RlPnAnID0gUnA8L2NvZGU+PC9wPgorPHA+d2hlcmUgPGNvZGU+cDwvY29kZT4gaXMgaW4gdGhlIGRldmljZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGFuZAorIDxjb2RlPnAnPC9jb2RlPiBpcyBpbiB0aGUgY2FtZXJhLW9yaWVudGVkIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+VHJhbnNsYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlBvc2l0aW9uIG9mIHRoZSBjYW1lcmEgb3B0aWNhbCBjZW50ZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHBvc2l0aW9uIG9mIHRoZSBjYW1lcmEgZGV2aWNlJ3MgbGVucyBvcHRpY2FsIGNlbnRlciw8d2JyLz4KK2FzIGEgdGhyZWUtZGltZW5zaW9uYWwgdmVjdG9yIDxjb2RlPih4LDx3YnIvPnksPHdici8+eik8L2NvZGU+LDx3YnIvPiByZWxhdGl2ZSB0byB0aGUKK29wdGljYWwgY2VudGVyIG9mIHRoZSBsYXJnZXN0IGNhbWVyYSBkZXZpY2UgZmFjaW5nIGluIHRoZQorc2FtZSBkaXJlY3Rpb24gYXMgdGhpcyBjYW1lcmEsPHdici8+IGluIHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9TZW5zb3JFdmVudC5odG1sIj5BbmRyb2lkIHNlbnNvciBjb29yZGluYXRlCitheGVzPC9hPi48d2JyLz4gTm90ZSB0aGF0IG9ubHkgdGhlIGF4aXMgZGVmaW5pdGlvbnMgYXJlIHNoYXJlZCB3aXRoCit0aGUgc2Vuc29yIGNvb3JkaW5hdGUgc3lzdGVtLDx3YnIvPiBidXQgbm90IHRoZSBvcmlnaW4uPHdici8+PC9wPgorPHA+SWYgdGhpcyBkZXZpY2UgaXMgdGhlIGxhcmdlc3Qgb3Igb25seSBjYW1lcmEgZGV2aWNlIHdpdGggYQorZ2l2ZW4gZmFjaW5nLDx3YnIvPiB0aGVuIHRoaXMgcG9zaXRpb24gd2lsbCBiZSA8Y29kZT4oMCw8d2JyLz4gMCw8d2JyLz4gMCk8L2NvZGU+OyBhCitjYW1lcmEgZGV2aWNlIHdpdGggYSBsZW5zIG9wdGljYWwgY2VudGVyIGxvY2F0ZWQgMyBjbSBmcm9tCit0aGUgbWFpbiBzZW5zb3IgYWxvbmcgdGhlICtYIGF4aXMgKHRvIHRoZSByaWdodCBmcm9tIHRoZQordXNlcidzIHBlcnNwZWN0aXZlKSB3aWxsIHJlcG9ydCA8Y29kZT4oMC48d2JyLz4wMyw8d2JyLz4gMCw8d2JyLz4gMCk8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlRvIHRyYW5zZm9ybSBhIHBpeGVsIGNvb3JkaW5hdGVzIGJldHdlZW4gdHdvIGNhbWVyYXMKK2ZhY2luZyB0aGUgc2FtZSBkaXJlY3Rpb24sPHdici8+IGZpcnN0IHRoZSBzb3VyY2UgY2FtZXJhCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cmFkaWFsPHdici8+RGlzdG9ydGlvbjwvYT4gbXVzdCBiZSBjb3JyZWN0ZWQgZm9yLjx3YnIvPiAgVGhlbgordGhlIHNvdXJjZSBjYW1lcmEgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4gbmVlZHMKK3RvIGJlIGFwcGxpZWQsPHdici8+IGZvbGxvd2VkIGJ5IHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+CitvZiB0aGUgc291cmNlIGNhbWVyYSw8d2JyLz4gdGhlIHRyYW5zbGF0aW9uIG9mIHRoZSBzb3VyY2UgY2FtZXJhCityZWxhdGl2ZSB0byB0aGUgZGVzdGluYXRpb24gY2FtZXJhLDx3YnIvPiB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5Sb3RhdGlvbjwvYT4gb2YgdGhlIGRlc3RpbmF0aW9uIGNhbWVyYSw8d2JyLz4gYW5kCitmaW5hbGx5IHRoZSBpbnZlcnNlIG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW50cmluc2ljPHdici8+Q2FsaWJyYXRpb248L2E+CitvZiB0aGUgZGVzdGluYXRpb24gY2FtZXJhLjx3YnIvPiBUaGlzIG9idGFpbnMgYQorcmFkaWFsLWRpc3RvcnRpb24tZnJlZSBjb29yZGluYXRlIGluIHRoZSBkZXN0aW5hdGlvbgorY2FtZXJhIHBpeGVsIGNvb3JkaW5hdGVzLjx3YnIvPjwvcD4KKzxwPlRvIGNvbXBhcmUgdGhpcyBhZ2FpbnN0IGEgcmVhbCBpbWFnZSBmcm9tIHRoZSBkZXN0aW5hdGlvbgorY2FtZXJhLDx3YnIvPiB0aGUgZGVzdGluYXRpb24gY2FtZXJhIGltYWdlIHRoZW4gbmVlZHMgdG8gYmUKK2NvcnJlY3RlZCBmb3IgcmFkaWFsIGRpc3RvcnRpb24gYmVmb3JlIGNvbXBhcmlzb24gb3IKK3NhbXBsaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MgaW50cmluc2ljCitjYWxpYnJhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBQaXhlbHMgaW4gdGhlCisgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZpdmUgY2FsaWJyYXRpb24gcGFyYW1ldGVycyB0aGF0IGRlc2NyaWJlIHRoZQordHJhbnNmb3JtIGZyb20gY2FtZXJhLWNlbnRyaWMgM0QgY29vcmRpbmF0ZXMgdG8gc2Vuc29yCitwaXhlbCBjb29yZGluYXRlczo8L3A+Cis8cHJlPjxjb2RlPltmXzx3YnIvPngsPHdici8+IGZfPHdici8+eSw8d2JyLz4gY188d2JyLz54LDx3YnIvPiBjXzx3YnIvPnksPHdici8+IHNdCis8L2NvZGU+PC9wcmU+Cis8cD5XaGVyZSA8Y29kZT5mXzx3YnIvPng8L2NvZGU+IGFuZCA8Y29kZT5mXzx3YnIvPnk8L2NvZGU+IGFyZSB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwKK2ZvY2FsIGxlbmd0aHMsPHdici8+IDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+IGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgb3B0aWNhbAorYXhpcyw8d2JyLz4gYW5kIDxjb2RlPnM8L2NvZGU+IGlzIGEgc2tldyBwYXJhbWV0ZXIgZm9yIHRoZSBzZW5zb3IgcGxhbmUgbm90CitiZWluZyBhbGlnbmVkIHdpdGggdGhlIGxlbnMgcGxhbmUuPHdici8+PC9wPgorPHA+VGhlc2UgYXJlIHR5cGljYWxseSB1c2VkIHdpdGhpbiBhIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBLOjwvcD4KKzxwcmU+PGNvZGU+SyA9IFsgZl88d2JyLz54LDx3YnIvPiAgIHMsPHdici8+IGNfPHdici8+eCw8d2JyLz4KKyAgICAgICAwLDx3YnIvPiBmXzx3YnIvPnksPHdici8+IGNfPHdici8+eSw8d2JyLz4KKyAgICAgICAwICAgIDAsPHdici8+ICAgMSBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGljaCBjYW4gdGhlbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBjYW1lcmEgcG9zZSByb3RhdGlvbgorPGNvZGU+UjwvY29kZT4gYW5kIHRyYW5zbGF0aW9uIDxjb2RlPnQ8L2NvZGU+ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlRyYW5zbGF0aW9uPC9hPiw8d2JyLz4gcmVzcGVjdGl2ZSkgdG8gY2FsY3VsYXRlIHRoZQorY29tcGxldGUgdHJhbnNmb3JtIGZyb20gd29ybGQgY29vcmRpbmF0ZXMgdG8gcGl4ZWwKK2Nvb3JkaW5hdGVzOjwvcD4KKzxwcmU+PGNvZGU+UCA9IFsgSyAwICAgKiBbIFIgdAorICAgICAwIDEgXSAgICAgMCAxIF0KKzwvY29kZT48L3ByZT4KKzxwPmFuZCB3aXRoIDxjb2RlPnBfPHdici8+dzwvY29kZT4gYmVpbmcgYSBwb2ludCBpbiB0aGUgd29ybGQgY29vcmRpbmF0ZSBzeXN0ZW0KK2FuZCA8Y29kZT5wXzx3YnIvPnM8L2NvZGU+IGJlaW5nIGEgcG9pbnQgaW4gdGhlIGNhbWVyYSBhY3RpdmUgcGl4ZWwgYXJyYXkKK2Nvb3JkaW5hdGUgc3lzdGVtLDx3YnIvPiBhbmQgd2l0aCB0aGUgbWFwcGluZyBpbmNsdWRpbmcgdGhlCitob21vZ2VuZW91cyBkaXZpc2lvbiBieSB6OjwvcD4KKzxwcmU+PGNvZGU+IHBfPHdici8+aCA9ICh4Xzx3YnIvPmgsPHdici8+IHlfPHdici8+aCw8d2JyLz4gel88d2JyLz5oKSA9IFAgcF88d2JyLz53CitwXzx3YnIvPnMgPSBwXzx3YnIvPmggLzx3YnIvPiB6Xzx3YnIvPmgKKzwvY29kZT48L3ByZT4KKzxwPnNvIDxjb2RlPlt4Xzx3YnIvPnMsPHdici8+IHlfPHdici8+c108L2NvZGU+IGlzIHRoZSBwaXhlbCBjb29yZGluYXRlcyBvZiB0aGUgd29ybGQKK3BvaW50LDx3YnIvPiA8Y29kZT56Xzx3YnIvPnMgPSAxPC9jb2RlPiw8d2JyLz4gYW5kIDxjb2RlPndfPHdici8+czwvY29kZT4gaXMgYSBtZWFzdXJlbWVudCBvZiBkaXNwYXJpdHkKKyhkZXB0aCkgaW4gcGl4ZWwgY29vcmRpbmF0ZXMuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgdGhpcyB0cmFuc2Zvcm0gaXMgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBzeXN0ZW0sPHdici8+Cit3aGVyZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gaXMgdGhlIHRvcC1sZWZ0IG9mIHRoZQorcHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSByZWN0YW5nbGUuPHdici8+IE9uY2UgdGhlIHBvc2UgYW5kCitpbnRyaW5zaWMgY2FsaWJyYXRpb24gdHJhbnNmb3JtcyBoYXZlIGJlZW4gYXBwbGllZCB0byBhCit3b3JsZCBwb2ludCw8d2JyLz4gdGhlbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb248L2E+Cit0cmFuc2Zvcm0gbmVlZHMgdG8gYmUgYXBwbGllZCw8d2JyLz4gYW5kIHRoZSByZXN1bHQgYWRqdXN0ZWQgdG8KK2JlIGluIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gY29vcmRpbmF0ZQorc3lzdGVtICh3aGVyZSA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGlzIHRoZSB0b3AtbGVmdCBvZiB0aGUKK2FjdGl2ZUFycmF5U2l6ZSByZWN0YW5nbGUpLDx3YnIvPiB0byBkZXRlcm1pbmUgdGhlIGZpbmFsIHBpeGVsCitjb29yZGluYXRlIG9mIHRoZSB3b3JsZCBwb2ludCBmb3IgcHJvY2Vzc2VkIChub24tUkFXKQorb3V0cHV0IGJ1ZmZlcnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgY29ycmVjdGlvbiBjb2VmZmljaWVudHMgdG8gY29ycmVjdCBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MKK3JhZGlhbCBhbmQgdGFuZ2VudGlhbCBsZW5zIGRpc3RvcnRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pdGxlc3MgY29lZmZpY2llbnRzLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm91ciByYWRpYWwgZGlzdG9ydGlvbiBjb2VmZmljaWVudHMgPGNvZGU+W2thcHBhXzx3YnIvPjAsPHdici8+IGthcHBhXzx3YnIvPjEsPHdici8+IGthcHBhXzx3YnIvPjIsPHdici8+CitrYXBwYV88d2JyLz4zXTwvY29kZT4gYW5kIHR3byB0YW5nZW50aWFsIGRpc3RvcnRpb24gY29lZmZpY2llbnRzCis8Y29kZT5ba2FwcGFfPHdici8+NCw8d2JyLz4ga2FwcGFfPHdici8+NV08L2NvZGU+IHRoYXQgY2FuIGJlIHVzZWQgdG8gY29ycmVjdCB0aGUKK2xlbnMncyBnZW9tZXRyaWMgZGlzdG9ydGlvbiB3aXRoIHRoZSBtYXBwaW5nIGVxdWF0aW9uczo8L3A+Cis8cHJlPjxjb2RlPiB4Xzx3YnIvPmMgPSB4Xzx3YnIvPmkgKiAoIGthcHBhXzx3YnIvPjAgKyBrYXBwYV88d2JyLz4xICogcl4yICsga2FwcGFfPHdici8+MiAqIHJeNCArIGthcHBhXzx3YnIvPjMgKiByXjYgKSArCisgICAgICAga2FwcGFfPHdici8+NCAqICgyICogeF88d2JyLz5pICogeV88d2JyLz5pKSArIGthcHBhXzx3YnIvPjUgKiAoIHJeMiArIDIgKiB4Xzx3YnIvPmleMiApCisgeV88d2JyLz5jID0geV88d2JyLz5pICogKCBrYXBwYV88d2JyLz4wICsga2FwcGFfPHdici8+MSAqIHJeMiArIGthcHBhXzx3YnIvPjIgKiByXjQgKyBrYXBwYV88d2JyLz4zICogcl42ICkgKworICAgICAgIGthcHBhXzx3YnIvPjUgKiAoMiAqIHhfPHdici8+aSAqIHlfPHdici8+aSkgKyBrYXBwYV88d2JyLz40ICogKCByXjIgKyAyICogeV88d2JyLz5pXjIgKQorPC9jb2RlPjwvcHJlPgorPHA+SGVyZSw8d2JyLz4gPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gYXJlIHRoZSBjb29yZGluYXRlcyB0byBzYW1wbGUgaW4gdGhlCitpbnB1dCBpbWFnZSB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIHBpeGVsIHZhbHVlcyBpbiB0aGUKK2NvcnJlY3RlZCBpbWFnZSBhdCB0aGUgY29vcmRpbmF0ZSA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPjo8L3A+Cis8cHJlPjxjb2RlPiBjb3JyZWN0ZWRJbWFnZSh4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aSkgPSBzYW1wbGVfPHdici8+YXQoeF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmMsPHdici8+IGlucHV0SW1hZ2UpCis8L2NvZGU+PC9wcmU+Cis8cD5UaGUgcGl4ZWwgY29vcmRpbmF0ZXMgYXJlIGRlZmluZWQgaW4gYSBub3JtYWxpemVkCitjb29yZGluYXRlIHN5c3RlbSByZWxhdGVkIHRvIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4gY2FsaWJyYXRpb24gZmllbGRzLjx3YnIvPgorQm90aCA8Y29kZT5beF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmldPC9jb2RlPiBhbmQgPGNvZGU+W3hfPHdici8+Yyw8d2JyLz4geV88d2JyLz5jXTwvY29kZT4gaGF2ZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gYXQgdGhlCitsZW5zIG9wdGljYWwgY2VudGVyIDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+Ljx3YnIvPiBUaGUgbWF4aW11bSBtYWduaXR1ZGVzCitvZiBib3RoIHggYW5kIHkgY29vcmRpbmF0ZXMgYXJlIG5vcm1hbGl6ZWQgdG8gYmUgMSBhdCB0aGUKK2VkZ2UgZnVydGhlciBmcm9tIHRoZSBvcHRpY2FsIGNlbnRlciw8d2JyLz4gc28gdGhlIHJhbmdlCitmb3IgYm90aCBkaW1lbnNpb25zIGlzIDxjb2RlPi0xICZsdDs9IHggJmx0Oz0gMTwvY29kZT4uPHdici8+PC9wPgorPHA+RmluYWxseSw8d2JyLz4gPGNvZGU+cjwvY29kZT4gcmVwcmVzZW50cyB0aGUgcmFkaWFsIGRpc3RhbmNlIGZyb20gdGhlCitvcHRpY2FsIGNlbnRlciw8d2JyLz4gPGNvZGU+cl4yID0geF88d2JyLz5pXjIgKyB5Xzx3YnIvPmleMjwvY29kZT4sPHdici8+IGFuZCBpdHMgbWFnbml0dWRlCitpcyB0aGVyZWZvcmUgbm8gbGFyZ2VyIHRoYW4gPGNvZGU+fDx3YnIvPnJ8PHdici8+ICZsdDs9IHNxcnQoMik8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlRoZSBkaXN0b3J0aW9uIG1vZGVsIHVzZWQgaXMgdGhlIEJyb3duLUNvbnJhZHkgbW9kZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9ub2lzZVJlZHVjdGlvbiIgY2xhc3M9InNlY3Rpb24iPm5vaXNlUmVkdWN0aW9uPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ob2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCB3aXRob3V0IHJlZHVjaW5nIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yCitvdXRwdXQuPHdici8+IEl0IG1heSBiZSB0aGUgc2FtZSBhcyBPRkYgaWYgbm9pc2UgcmVkdWN0aW9uIHdpbGwgcmVkdWNlIGZyYW1lIHJhdGUKK3JlbGF0aXZlIHRvIHNlbnNvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhpZ2gtcXVhbGl0eSBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCw8d2JyLz4gYXQgdGhlIGNvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZQorcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1JTklNQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk1JTklNQUwgbm9pc2UgcmVkdWN0aW9uIGlzIGFwcGxpZWQgd2l0aG91dCByZWR1Y2luZyBmcmFtZSByYXRlIHJlbGF0aXZlIHRvCitzZW5zb3Igb3V0cHV0Ljx3YnIvPiA8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ob2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCBhdCBkaWZmZXJlbnQgbGV2ZWxzIGZvciBkaWZmZXJlbnQgb3V0cHV0IHN0cmVhbXMsPHdici8+CitiYXNlZCBvbiByZXNvbHV0aW9uLjx3YnIvPiBTdHJlYW1zIGF0IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24gKHNlZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+KSBvciBiZWxvdyBoYXZlIG5vaXNlCityZWR1Y3Rpb24gYXBwbGllZCw8d2JyLz4gd2hpbGUgaGlnaGVyLXJlc29sdXRpb24gc3RyZWFtcyBoYXZlIE1JTklNQUwgKGlmIHN1cHBvcnRlZCkgb3Igbm8KK25vaXNlIHJlZHVjdGlvbiBhcHBsaWVkIChpZiBNSU5JTUFMIGlzIG5vdCBzdXBwb3J0ZWQuPHdici8+KSBUaGUgZGVncmVlIG9mIG5vaXNlIHJlZHVjdGlvbgorZm9yIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgaXMgdHVuZWQgc28gdGhhdCBmcmFtZSByYXRlIGlzIG5vdCBpbXBhY3RlZCw8d2JyLz4gYW5kIHRoZSBxdWFsaXR5CitpcyBlcXVhbCB0byBvciBiZXR0ZXIgdGhhbiBGQVNUIChzaW5jZSBpdCBpcyBvbmx5IGFwcGxpZWQgdG8gbG93ZXItcmVzb2x1dGlvbiBvdXRwdXRzLDx3YnIvPgorcXVhbGl0eSBtYXkgaW1wcm92ZSBmcm9tIEZBU1QpLjx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyBvcGVyYXRpbmcgaW4gYSB6ZXJvLXNodXR0ZXItbGFnIG1vZGUKK3dpdGggWVVWIG9yIFBSSVZBVEUgcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGVyZSB0aGUgYXBwbGljYXRpb24gY29udGludW91c2x5IGNhcHR1cmVzCitoaWdoLXJlc29sdXRpb24gaW50ZXJtZWRpYXRlIGJ1ZmZlcnMgaW50byBhIGNpcmN1bGFyIGJ1ZmZlciw8d2JyLz4gZnJvbSB3aGljaCBhIGZpbmFsIGltYWdlIGlzCitwcm9kdWNlZCB2aWEgcmVwcm9jZXNzaW5nIHdoZW4gYSB1c2VyIHRha2VzIGEgcGljdHVyZS48d2JyLz4gIEZvciBzdWNoIGEgdXNlIGNhc2UsPHdici8+IHRoZQoraGlnaC1yZXNvbHV0aW9uIGJ1ZmZlcnMgbXVzdCBub3QgaGF2ZSBub2lzZSByZWR1Y3Rpb24gYXBwbGllZCB0byBtYXhpbWl6ZSBlZmZpY2llbmN5IG9mCitwcmV2aWV3IGFuZCB0byBhdm9pZCBvdmVyLWFwcGx5aW5nIG5vaXNlIGZpbHRlcmluZyB3aGVuIHJlcHJvY2Vzc2luZyw8d2JyLz4gd2hpbGUKK2xvdy1yZXNvbHV0aW9uIGJ1ZmZlcnMgKHVzZWQgZm9yIHJlY29yZGluZyBvciBwcmV2aWV3LDx3YnIvPiBnZW5lcmFsbHkpIG5lZWQgbm9pc2UgcmVkdWN0aW9uCithcHBsaWVkIGZvciByZWFzb25hYmxlIHByZXZpZXcgcXVhbGl0eS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQgYnkgZGV2aWNlcyB0aGF0IHN1cHBvcnQgZWl0aGVyIHRoZQorWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBjYXBhYmlsaXRpZXMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGxpc3RzIGVpdGhlciBvZiB0aG9zZSBjYXBhYmlsaXRpZXMpIGFuZCBpdCB3aWxsCitiZSB0aGUgZGVmYXVsdCBtb2RlIGZvciBDQU1FUkEzXzx3YnIvPlRFTVBMQVRFXzx3YnIvPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgdGVtcGxhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TW9kZSBvZiBvcGVyYXRpb24gZm9yIHRoZSBub2lzZSByZWR1Y3Rpb24gYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbm9pc2UgcmVkdWN0aW9uIGFsZ29yaXRobSBhdHRlbXB0cyB0byBpbXByb3ZlIGltYWdlIHF1YWxpdHkgYnkgcmVtb3ZpbmcKK2V4Y2Vzc2l2ZSBub2lzZSBhZGRlZCBieSB0aGUgY2FwdHVyZSBwcm9jZXNzLDx3YnIvPiBlc3BlY2lhbGx5IGluIGRhcmsgY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5PRkYgbWVhbnMgbm8gbm9pc2UgcmVkdWN0aW9uIHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gZm9yIGJvdGggcmF3IGFuZAorWVVWIGRvbWFpbi48d2JyLz48L3A+Cis8cD5NSU5JTUFMIG1lYW5zIHRoYXQgb25seSBzZW5zb3IgcmF3IGRvbWFpbiBiYXNpYyBub2lzZSByZWR1Y3Rpb24gaXMgZW5hYmxlZCAsPHdici8+dG8gcmVtb3ZlCitkZW1vc2FpY2luZyBvciBvdGhlciBwcm9jZXNzaW5nIGFydGlmYWN0cy48d2JyLz4gRm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IE1JTklNQUwgaXMgc2FtZSBhcyBPRkYuPHdici8+CitUaGlzIG1vZGUgaXMgb3B0aW9uYWwsPHdici8+IG1heSBub3QgYmUgc3VwcG9ydCBieSBhbGwgZGV2aWNlcy48d2JyLz4gVGhlIGFwcGxpY2F0aW9uIHNob3VsZCBjaGVjaworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT4gYmVmb3JlIHVzaW5nIGl0Ljx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiBjYW1lcmEgZGV2aWNlIGRldGVybWluZWQgbm9pc2UgZmlsdGVyaW5nCit3aWxsIGJlIGFwcGxpZWQuPHdici8+IEhJR0hfPHdici8+UVVBTElUWSBtb2RlIGluZGljYXRlcyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlCit3aWxsIHVzZSB0aGUgaGlnaGVzdC1xdWFsaXR5IG5vaXNlIGZpbHRlcmluZyBhbGdvcml0aG1zLDx3YnIvPgorZXZlbiBpZiBpdCBzbG93cyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRkFTVCBtZWFucyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG5vdAorc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSB3aGVuIGFwcGx5aW5nIG5vaXNlIGZpbHRlcmluZy48d2JyLz4gRkFTVCBtYXkgYmUgdGhlIHNhbWUgYXMgTUlOSU1BTCBpZgorTUlOSU1BTCBpcyBsaXN0ZWQsPHdici8+IG9yIHRoZSBzYW1lIGFzIE9GRiBpZiBhbnkgbm9pc2UgZmlsdGVyaW5nIHdpbGwgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4KK0V2ZXJ5IG91dHB1dCBzdHJlYW0gd2lsbCBoYXZlIGEgc2ltaWxhciBhbW91bnQgb2YgZW5oYW5jZW1lbnQgYXBwbGllZC48d2JyLz48L3A+Cis8cD5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIGlzIG1lYW50IHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHRoYXQgbWFpbnRhaW4gYSBjb250aW51b3VzIGNpcmN1bGFyCitidWZmZXIgb2YgaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBkdXJpbmcgcHJldmlldyBhbmQgcmVwcm9jZXNzIGltYWdlKHMpIGZyb20gdGhhdCBidWZmZXIKK2ludG8gYSBmaW5hbCBjYXB0dXJlIHdoZW4gdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLjx3YnIvPiBJbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGFwcGxpZXMKK25vaXNlIHJlZHVjdGlvbiB0byBsb3ctcmVzb2x1dGlvbiBzdHJlYW1zIChiZWxvdyBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uKSB0byBtYXhpbWl6ZQorcHJldmlldyBxdWFsaXR5LDx3YnIvPiBidXQgZG9lcyBub3QgYXBwbHkgbm9pc2UgcmVkdWN0aW9uIHRvIGhpZ2gtcmVzb2x1dGlvbiBzdHJlYW1zLDx3YnIvPiBzaW5jZQordGhvc2Ugd2lsbCBiZSByZXByb2Nlc3NlZCBsYXRlciBpZiBuZWNlc3NhcnkuPHdici8+PC9wPgorPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IHRoZXNlIEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIG1vZGVzIGJvdGggbWVhbiB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlCit3aWxsIGFwcGx5IEZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIFlVViBkb21haW4gbm9pc2UgcmVkdWN0aW9uLDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlCittYXkgYWRqdXN0IHRoZSBub2lzZSByZWR1Y3Rpb24gcGFyYW1ldGVycyBmb3IgYmVzdCBpbWFnZSBxdWFsaXR5IGJhc2VkIG9uIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gaWYgaXQgaXMgc2V0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIFlVVl88d2JyLz5SRVBST0NFU1NJTkcgVGhlIEhBTCBjYW4gdXNlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+IHRvCithZGp1c3QgdGhlIGludGVybmFsIG5vaXNlIHJlZHVjdGlvbiBwYXJhbWV0ZXJzIGFwcHJvcHJpYXRlbHkgdG8gZ2V0IHRoZSBiZXN0IHF1YWxpdHkKK2ltYWdlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLnN0cmVuZ3RoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+c3RyZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCB0aGUgYW1vdW50IG9mIG5vaXNlIHJlZHVjdGlvbgorYXBwbGllZCB0byB0aGUgaW1hZ2VzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIDEtMTA7IDEwIGlzIG1heCBub2lzZSByZWR1Y3Rpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xIC0gMTA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2Ygbm9pc2UgcmVkdWN0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZAorYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RnVsbC1jYXBhYmlsaXR5IGNhbWVyYSBkZXZpY2VzIHdpbGwgYWx3YXlzIHN1cHBvcnQgT0ZGIGFuZCBGQVNULjx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIHdpbGwgc3VwcG9ydAorWkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRy48d2JyLz48L3A+Cis8cD5MZWdhY3ktY2FwYWJpbGl0eSBjYW1lcmEgZGV2aWNlcyB3aWxsIG9ubHkgc3VwcG9ydCBGQVNUIG1vZGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIG5vaXNlIHJlZHVjdGlvbiBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIHdpdGhvdXQgcmVkdWNpbmcgZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IKK291dHB1dC48d2JyLz4gSXQgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZiBub2lzZSByZWR1Y3Rpb24gd2lsbCByZWR1Y2UgZnJhbWUgcmF0ZQorcmVsYXRpdmUgdG8gc2Vuc29yLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SGlnaC1xdWFsaXR5IG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiBhdCB0aGUgY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lCityYXRlIHJlbGF0aXZlIHRvIHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUlOSU1BTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TUlOSU1BTCBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCB3aXRob3V0IHJlZHVjaW5nIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8KK3NlbnNvciBvdXRwdXQuPHdici8+IDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlpFUk9fU0hVVFRFUl9MQUc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIGF0IGRpZmZlcmVudCBsZXZlbHMgZm9yIGRpZmZlcmVudCBvdXRwdXQgc3RyZWFtcyw8d2JyLz4KK2Jhc2VkIG9uIHJlc29sdXRpb24uPHdici8+IFN0cmVhbXMgYXQgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbiAoc2VlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4pIG9yIGJlbG93IGhhdmUgbm9pc2UKK3JlZHVjdGlvbiBhcHBsaWVkLDx3YnIvPiB3aGlsZSBoaWdoZXItcmVzb2x1dGlvbiBzdHJlYW1zIGhhdmUgTUlOSU1BTCAoaWYgc3VwcG9ydGVkKSBvciBubworbm9pc2UgcmVkdWN0aW9uIGFwcGxpZWQgKGlmIE1JTklNQUwgaXMgbm90IHN1cHBvcnRlZC48d2JyLz4pIFRoZSBkZWdyZWUgb2Ygbm9pc2UgcmVkdWN0aW9uCitmb3IgbG93LXJlc29sdXRpb24gc3RyZWFtcyBpcyB0dW5lZCBzbyB0aGF0IGZyYW1lIHJhdGUgaXMgbm90IGltcGFjdGVkLDx3YnIvPiBhbmQgdGhlIHF1YWxpdHkKK2lzIGVxdWFsIHRvIG9yIGJldHRlciB0aGFuIEZBU1QgKHNpbmNlIGl0IGlzIG9ubHkgYXBwbGllZCB0byBsb3dlci1yZXNvbHV0aW9uIG91dHB1dHMsPHdici8+CitxdWFsaXR5IG1heSBpbXByb3ZlIGZyb20gRkFTVCkuPHdici8+PC9wPgorPHA+VGhpcyBtb2RlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIG9wZXJhdGluZyBpbiBhIHplcm8tc2h1dHRlci1sYWcgbW9kZQord2l0aCBZVVYgb3IgUFJJVkFURSByZXByb2Nlc3NpbmcsPHdici8+IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBjb250aW51b3VzbHkgY2FwdHVyZXMKK2hpZ2gtcmVzb2x1dGlvbiBpbnRlcm1lZGlhdGUgYnVmZmVycyBpbnRvIGEgY2lyY3VsYXIgYnVmZmVyLDx3YnIvPiBmcm9tIHdoaWNoIGEgZmluYWwgaW1hZ2UgaXMKK3Byb2R1Y2VkIHZpYSByZXByb2Nlc3Npbmcgd2hlbiBhIHVzZXIgdGFrZXMgYSBwaWN0dXJlLjx3YnIvPiAgRm9yIHN1Y2ggYSB1c2UgY2FzZSw8d2JyLz4gdGhlCitoaWdoLXJlc29sdXRpb24gYnVmZmVycyBtdXN0IG5vdCBoYXZlIG5vaXNlIHJlZHVjdGlvbiBhcHBsaWVkIHRvIG1heGltaXplIGVmZmljaWVuY3kgb2YKK3ByZXZpZXcgYW5kIHRvIGF2b2lkIG92ZXItYXBwbHlpbmcgbm9pc2UgZmlsdGVyaW5nIHdoZW4gcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGlsZQorbG93LXJlc29sdXRpb24gYnVmZmVycyAodXNlZCBmb3IgcmVjb3JkaW5nIG9yIHByZXZpZXcsPHdici8+IGdlbmVyYWxseSkgbmVlZCBub2lzZSByZWR1Y3Rpb24KK2FwcGxpZWQgZm9yIHJlYXNvbmFibGUgcHJldmlldyBxdWFsaXR5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBlaXRoZXIgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gbGlzdHMgZWl0aGVyIG9mIHRob3NlIGNhcGFiaWxpdGllcykgYW5kIGl0IHdpbGwKK2JlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIENBTUVSQTNfPHdici8+VEVNUExBVEVfPHdici8+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB0ZW1wbGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Nb2RlIG9mIG9wZXJhdGlvbiBmb3IgdGhlIG5vaXNlIHJlZHVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBub2lzZSByZWR1Y3Rpb24gYWxnb3JpdGhtIGF0dGVtcHRzIHRvIGltcHJvdmUgaW1hZ2UgcXVhbGl0eSBieSByZW1vdmluZworZXhjZXNzaXZlIG5vaXNlIGFkZGVkIGJ5IHRoZSBjYXB0dXJlIHByb2Nlc3MsPHdici8+IGVzcGVjaWFsbHkgaW4gZGFyayBjb25kaXRpb25zLjx3YnIvPjwvcD4KKzxwPk9GRiBtZWFucyBubyBub2lzZSByZWR1Y3Rpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBmb3IgYm90aCByYXcgYW5kCitZVVYgZG9tYWluLjx3YnIvPjwvcD4KKzxwPk1JTklNQUwgbWVhbnMgdGhhdCBvbmx5IHNlbnNvciByYXcgZG9tYWluIGJhc2ljIG5vaXNlIHJlZHVjdGlvbiBpcyBlbmFibGVkICw8d2JyLz50byByZW1vdmUKK2RlbW9zYWljaW5nIG9yIG90aGVyIHByb2Nlc3NpbmcgYXJ0aWZhY3RzLjx3YnIvPiBGb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gTUlOSU1BTCBpcyBzYW1lIGFzIE9GRi48d2JyLz4KK1RoaXMgbW9kZSBpcyBvcHRpb25hbCw8d2JyLz4gbWF5IG5vdCBiZSBzdXBwb3J0IGJ5IGFsbCBkZXZpY2VzLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gc2hvdWxkIGNoZWNrCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5hdmFpbGFibGU8d2JyLz5Ob2lzZTx3YnIvPlJlZHVjdGlvbjx3YnIvPk1vZGVzPC9hPiBiZWZvcmUgdXNpbmcgaXQuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBub2lzZSBmaWx0ZXJpbmcKK3dpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgdXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgbm9pc2UgZmlsdGVyaW5nIGFsZ29yaXRobXMsPHdici8+CitldmVuIGlmIGl0IHNsb3dzIGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90CitzbG93IGRvd24gY2FwdHVyZSByYXRlIHdoZW4gYXBwbHlpbmcgbm9pc2UgZmlsdGVyaW5nLjx3YnIvPiBGQVNUIG1heSBiZSB0aGUgc2FtZSBhcyBNSU5JTUFMIGlmCitNSU5JTUFMIGlzIGxpc3RlZCw8d2JyLz4gb3IgdGhlIHNhbWUgYXMgT0ZGIGlmIGFueSBub2lzZSBmaWx0ZXJpbmcgd2lsbCBzbG93IGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPgorRXZlcnkgb3V0cHV0IHN0cmVhbSB3aWxsIGhhdmUgYSBzaW1pbGFyIGFtb3VudCBvZiBlbmhhbmNlbWVudCBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgaXMgbWVhbnQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgdGhhdCBtYWludGFpbiBhIGNvbnRpbnVvdXMgY2lyY3VsYXIKK2J1ZmZlciBvZiBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGR1cmluZyBwcmV2aWV3IGFuZCByZXByb2Nlc3MgaW1hZ2UocykgZnJvbSB0aGF0IGJ1ZmZlcgoraW50byBhIGZpbmFsIGNhcHR1cmUgd2hlbiB0cmlnZ2VyZWQgYnkgdGhlIHVzZXIuPHdici8+IEluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXBwbGllcworbm9pc2UgcmVkdWN0aW9uIHRvIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgKGJlbG93IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24pIHRvIG1heGltaXplCitwcmV2aWV3IHF1YWxpdHksPHdici8+IGJ1dCBkb2VzIG5vdCBhcHBseSBub2lzZSByZWR1Y3Rpb24gdG8gaGlnaC1yZXNvbHV0aW9uIHN0cmVhbXMsPHdici8+IHNpbmNlCit0aG9zZSB3aWxsIGJlIHJlcHJvY2Vzc2VkIGxhdGVyIGlmIG5lY2Vzc2FyeS48d2JyLz48L3A+Cis8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gdGhlc2UgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgbW9kZXMgYm90aCBtZWFuIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgYXBwbHkgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgWVVWIGRvbWFpbiBub2lzZSByZWR1Y3Rpb24sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2UKK21heSBhZGp1c3QgdGhlIG5vaXNlIHJlZHVjdGlvbiBwYXJhbWV0ZXJzIGZvciBiZXN0IGltYWdlIHF1YWxpdHkgYmFzZWQgb24gdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiBpZiBpdCBpcyBzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBUaGUgSEFMIGNhbiB1c2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gdG8KK2FkanVzdCB0aGUgaW50ZXJuYWwgbm9pc2UgcmVkdWN0aW9uIHBhcmFtZXRlcnMgYXBwcm9wcmlhdGVseSB0byBnZXQgdGhlIGJlc3QgcXVhbGl0eQoraW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3F1aXJrcyIgY2xhc3M9InNlY3Rpb24iPnF1aXJrczwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucXVpcmtzLm1ldGVyaW5nQ3JvcFJlZ2lvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnF1aXJrcy48d2JyLz5tZXRlcmluZzx3YnIvPkNyb3A8d2JyLz5SZWdpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDEsPHdici8+IHRoZSBjYW1lcmEgc2VydmljZSBkb2VzIG5vdAorc2NhbGUgJ25vcm1hbGl6ZWQnIGNvb3JkaW5hdGVzIHdpdGggcmVzcGVjdCB0byB0aGUgY3JvcAorcmVnaW9uLjx3YnIvPiBUaGlzIGFwcGxpZXMgdG8gbWV0ZXJpbmcgaW5wdXQgKGF7ZSw8d2JyLz5mLDx3YnIvPndifVJlZ2lvbgorYW5kIG91dHB1dCAoZmFjZSByZWN0YW5nbGVzKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3JtYWxpemVkIGNvb3JkaW5hdGVzIHJlZmVyIHRvIHRob3NlIGluIHRoZQorKC0xMDAwLDx3YnIvPjEwMDApIHJhbmdlIG1lbnRpb25lZCBpbiB0aGUKK2FuZHJvaWQuPHdici8+aGFyZHdhcmUuPHdici8+Q2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5IQUwgaW1wbGVtZW50YXRpb25zIHNob3VsZCBpbnN0ZWFkIGFsd2F5cyB1c2UgYW5kIGVtaXQKK3NlbnNvciBhcnJheS1yZWxhdGl2ZSBjb29yZGluYXRlcyBmb3IgYWxsIHJlZ2lvbiBkYXRhLjx3YnIvPiBEb2VzCitub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljIG1ldGFkYXRhLjx3YnIvPiBTdXBwb3J0IHdpbGwgYmUKK3JlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIGNhbWVyYSBzZXJ2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucXVpcmtzLnRyaWdnZXJBZldpdGhBdXRvIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPnRyaWdnZXI8d2JyLz5BZjx3YnIvPldpdGg8d2JyLz5BdXRvCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPklmIHNldCB0byAxLDx3YnIvPiB0aGVuIHRoZSBjYW1lcmEgc2VydmljZSBhbHdheXMKK3N3aXRjaGVzIHRvIEZPQ1VTXzx3YnIvPk1PREVfPHdici8+QVVUTyBiZWZvcmUgaXNzdWluZyBhIEFGCit0cmlnZ2VyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGltcGxlbWVudCBBRiB0cmlnZ2VyCittb2RlcyBmb3IgQVVUTyw8d2JyLz4gTUFDUk8sPHdici8+IENPTlRJTlVPVVNfPHdici8+Rk9DVVMsPHdici8+IGFuZAorQ09OVElOVU9VU188d2JyLz5QSUNUVVJFIG1vZGVzIGluc3RlYWQgb2YgdXNpbmcgdGhpcyBmbGFnLjx3YnIvPiBEb2VzCitub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljIG1ldGFkYXRhLjx3YnIvPiBTdXBwb3J0IHdpbGwgYmUKK3JlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIGNhbWVyYSBzZXJ2aWNlPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5xdWlya3MudXNlWnNsRm9ybWF0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPnVzZTx3YnIvPlpzbDx3YnIvPkZvcm1hdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gMSw8d2JyLz4gdGhlIGNhbWVyYSBzZXJ2aWNlIHVzZXMKK0NBTUVSQTJfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPlpTTCBpbnN0ZWFkIG9mCitIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPklNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgZm9yIHRoZSB6ZXJvCitzaHV0dGVyIGxhZyBzdHJlYW08L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgaW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UgZ3JhbGxvYyB1c2FnZSBmbGFncwordG8gZGV0ZXJtaW5lIHRoYXQgYSBzdHJlYW0gd2lsbCBiZSB1c2VkIGZvcgoremVyby1zaHV0dGVyLWxhZyw8d2JyLz4gaW5zdGVhZCBvZiByZWx5aW5nIG9uIGFuIGV4cGxpY2l0Citmb3JtYXQgc2V0dGluZy48d2JyLz4gRG9lcyBub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljCittZXRhZGF0YS48d2JyLz4gU3VwcG9ydCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mCitjYW1lcmEgc2VydmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnF1aXJrcy51c2VQYXJ0aWFsUmVzdWx0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPnVzZTx3YnIvPlBhcnRpYWw8d2JyLz5SZXN1bHQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDEsPHdici8+IHRoZSBIQUwgd2lsbCBhbHdheXMgc3BsaXQgcmVzdWx0CittZXRhZGF0YSBmb3IgYSBzaW5nbGUgY2FwdHVyZSBpbnRvIG11bHRpcGxlIGJ1ZmZlcnMsPHdici8+CityZXR1cm5lZCB1c2luZyBtdWx0aXBsZSBwcm9jZXNzXzx3YnIvPmNhcHR1cmVfPHdici8+cmVzdWx0IGNhbGxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkRvZXMgbm90IG5lZWQgdG8gYmUgbGlzdGVkIGluIHN0YXRpYworbWV0YWRhdGEuPHdici8+IFN1cHBvcnQgZm9yIHBhcnRpYWwgcmVzdWx0cyB3aWxsIGJlIHJld29ya2VkIGluCitmdXR1cmUgdmVyc2lvbnMgb2YgY2FtZXJhIHNlcnZpY2UuPHdici8+IFRoaXMgcXVpcmsgd2lsbCBzdG9wCit3b3JraW5nIGF0IHRoYXQgcG9pbnQ7IERPIE5PVCBVU0Ugd2l0aG91dCBjYXJlZnVsCitjb25zaWRlcmF0aW9uIG9mIGZ1dHVyZSBzdXBwb3J0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UmVmZXIgdG8gPGNvZGU+Y2FtZXJhM188d2JyLz5jYXB0dXJlXzx3YnIvPnJlc3VsdDo6cGFydGlhbF88d2JyLz5yZXN1bHQ8L2NvZGU+Citmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGltcGxlbWVudCBwYXJ0aWFsIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQucXVpcmtzLnBhcnRpYWxSZXN1bHQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5xdWlya3MuPHdici8+cGFydGlhbDx3YnIvPlJlc3VsdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZJTkFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbGFzdCBvciBvbmx5IG1ldGFkYXRhIHJlc3VsdCBidWZmZXIKK2ZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFSVElBTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSBwYXJ0aWFsIGJ1ZmZlciBvZiByZXN1bHQgbWV0YWRhdGEgZm9yIHRoaXMKK2NhcHR1cmUuPHdici8+IE1vcmUgcmVzdWx0IGJ1ZmZlcnMgZm9yIHRoaXMgY2FwdHVyZSB3aWxsIGJlIHNlbnQKK2J5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGUgbGFzdCBvZiB3aGljaCB3aWxsIGJlIG1hcmtlZAorRklOQUwuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhIHJlc3VsdCBnaXZlbiB0byB0aGUgZnJhbWV3b3JrIGlzIHRoZQorZmluYWwgb25lIGZvciB0aGUgY2FwdHVyZSw8d2JyLz4gb3Igb25seSBhIHBhcnRpYWwgdGhhdCBjb250YWlucyBhCitzdWJzZXQgb2YgdGhlIGZ1bGwgc2V0IG9mIGR5bmFtaWMgbWV0YWRhdGEKK3ZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5PcHRpb25hbC48d2JyLz4gRGVmYXVsdCB2YWx1ZSBpcyBGSU5BTC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBlbnRyaWVzIGluIHRoZSByZXN1bHQgbWV0YWRhdGEgYnVmZmVycyBmb3IgYQorc2luZ2xlIGNhcHR1cmUgbWF5IG5vdCBvdmVybGFwLDx3YnIvPiBleGNlcHQgZm9yIHRoaXMgZW50cnkuPHdici8+IFRoZQorRklOQUwgYnVmZmVycyBtdXN0IHJldGFpbiBGSUZPIG9yZGVyaW5nIHJlbGF0aXZlIHRvIHRoZQorcmVxdWVzdHMgdGhhdCBnZW5lcmF0ZSB0aGVtLDx3YnIvPiBzbyB0aGUgRklOQUwgYnVmZmVyIGZvciBmcmFtZSAzIG11c3QKK2Fsd2F5cyBiZSBzZW50IHRvIHRoZSBmcmFtZXdvcmsgYWZ0ZXIgdGhlIEZJTkFMIGJ1ZmZlciBmb3IgZnJhbWUgMiw8d2JyLz4gYW5kCitiZWZvcmUgdGhlIEZJTkFMIGJ1ZmZlciBmb3IgZnJhbWUgNC48d2JyLz4gUEFSVElBTCBidWZmZXJzIG1heSBiZSByZXR1cm5lZAoraW4gYW55IG9yZGVyIHJlbGF0aXZlIHRvIG90aGVyIGZyYW1lcyw8d2JyLz4gYnV0IGFsbCBQQVJUSUFMIGJ1ZmZlcnMgZm9yIGEgZ2l2ZW4KK2NhcHR1cmUgbXVzdCBhcnJpdmUgYmVmb3JlIHRoZSBGSU5BTCBidWZmZXIgZm9yIHRoYXQgY2FwdHVyZS48d2JyLz4gVGhpcyBlbnRyeSBtYXkKK29ubHkgYmUgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpZiBxdWlya3MuPHdici8+dXNlUGFydGlhbFJlc3VsdCBpcyBzZXQgdG8gMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlJlZmVyIHRvIDxjb2RlPmNhbWVyYTNfPHdici8+Y2FwdHVyZV88d2JyLz5yZXN1bHQ6OnBhcnRpYWxfPHdici8+cmVzdWx0PC9jb2RlPgorZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBpbXBsZW1lbnQgcGFydGlhbCByZXN1bHRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3JlcXVlc3QiIGNsYXNzPSJzZWN0aW9uIj5yZXF1ZXN0PC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5mcmFtZTx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGZyYW1lIGNvdW50ZXIgc2V0IGJ5IHRoZSBmcmFtZXdvcmsuPHdici8+IE11c3QKK2JlIG1haW50YWluZWQgdW5jaGFuZ2VkIGluIG91dHB1dCBmcmFtZS48d2JyLz4gVGhpcyB2YWx1ZSBtb25vdG9uaWNhbGx5CitpbmNyZWFzZXMgd2l0aCBldmVyeSBuZXcgcmVzdWx0ICh0aGF0IGlzLDx3YnIvPiBlYWNoIG5ldyByZXN1bHQgaGFzIGEgdW5pcXVlCitmcmFtZUNvdW50IHZhbHVlKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgaW5jcmVtZW50aW5nIGludGVnZXIKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5BbnkgaW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5pZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QW4gYXBwbGljYXRpb24tc3BlY2lmaWVkIElEIGZvciB0aGUgY3VycmVudAorcmVxdWVzdC48d2JyLz4gTXVzdCBiZSBtYWludGFpbmVkIHVuY2hhbmdlZCBpbiBvdXRwdXQKK2ZyYW1lPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIGFyYml0cmFyeSBpbnRlZ2VyIGFzc2lnbmVkIGJ5IGFwcGxpY2F0aW9uCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IGludDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5pbnB1dDx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgd2hpY2ggY2FtZXJhIHJlcHJvY2VzcyBzdHJlYW0gaXMgdXNlZAorZm9yIHRoZSBzb3VyY2Ugb2YgcmVwcm9jZXNzaW5nIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIExpc3Qgb2YgY2FtZXJhIHJlcHJvY2VzcyBzdHJlYW0gSURzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgICAgPHA+VHlwaWNhbGx5LDx3YnIvPiBvbmx5IG9uZSBlbnRyeSBhbGxvd2VkLDx3YnIvPiBtdXN0IGJlIGEgdmFsaWQgcmVwcm9jZXNzIHN0cmVhbSBJRC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgbWVhbmluZ2Z1bCB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QudHlwZSI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnR5cGU8L2E+ID09CitSRVBST0NFU1MuPHdici8+IElnbm9yZWQgb3RoZXJ3aXNlPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tZXRhZGF0YTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Tk9ORTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbWV0YWRhdGEgc2hvdWxkIGJlIHByb2R1Y2VkIG9uIG91dHB1dCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbGljYXRpb24tYm91bmQgYnVmZmVyIGRhdGEuPHdici8+IElmIG5vCithcHBsaWNhdGlvbi1ib3VuZCBzdHJlYW1zIGV4aXN0LDx3YnIvPiBubyBmcmFtZSBzaG91bGQgYmUKK3BsYWNlZCBpbiB0aGUgb3V0cHV0IGZyYW1lIHF1ZXVlLjx3YnIvPiBJZiBzdWNoIHN0cmVhbXMKK2V4aXN0LDx3YnIvPiBhIGZyYW1lIHNob3VsZCBiZSBwbGFjZWQgb24gdGhlIG91dHB1dCBxdWV1ZQord2l0aCBudWxsIG1ldGFkYXRhIGJ1dCB3aXRoIHRoZSBuZWNlc3Nhcnkgb3V0cHV0IGJ1ZmZlcgoraW5mb3JtYXRpb24uPHdici8+IFRpbWVzdGFtcCBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUKK2luY2x1ZGVkIHdpdGggYW55IG91dHB1dCBzdHJlYW0gYnVmZmVyczwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBtZXRhZGF0YSBzaG91bGQgYmUgcHJvZHVjZWQuPHdici8+IFN0YXRpc3RpY3Mgd2lsbAorb25seSBiZSBwcm9kdWNlZCBpZiB0aGV5IGFyZSBzZXBhcmF0ZWx5CitlbmFibGVkPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SG93IG11Y2ggbWV0YWRhdGEgdG8gcHJvZHVjZSBvbgorb3V0cHV0PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5vdXRwdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0cyB3aGljaCBjYW1lcmEgb3V0cHV0IHN0cmVhbXMgaW1hZ2UgZGF0YQorZnJvbSB0aGlzIGNhcHR1cmUgbXVzdCBiZSBzZW50IHRvPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIExpc3Qgb2YgY2FtZXJhIHN0cmVhbSBJRHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5MaXN0IG11c3Qgb25seSBpbmNsdWRlIHN0cmVhbXMgdGhhdCBoYXZlIGJlZW4KK2NyZWF0ZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIG91dHB1dCBzdHJlYW1zIGFyZSBsaXN0ZWQsPHdici8+IHRoZW4gdGhlIGltYWdlCitkYXRhIHNob3VsZCBzaW1wbHkgYmUgZGlzY2FyZGVkLjx3YnIvPiBUaGUgaW1hZ2UgZGF0YSBtdXN0CitzdGlsbCBiZSBjYXB0dXJlZCBmb3IgbWV0YWRhdGEgYW5kIHN0YXRpc3RpY3MgcHJvZHVjdGlvbiw8d2JyLz4KK2FuZCB0aGUgbGVucyBhbmQgZmxhc2ggbXVzdCBvcGVyYXRlIGFzIHJlcXVlc3RlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC50eXBlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz50eXBlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBUFRVUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkNhcHR1cmUgYSBuZXcgaW1hZ2UgZnJvbSB0aGUgaW1hZ2luZyBoYXJkd2FyZSw8d2JyLz4KK2FuZCBwcm9jZXNzIGl0IGFjY29yZGluZyB0byB0aGUKK3NldHRpbmdzPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVQUk9DRVNTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Qcm9jZXNzIHByZXZpb3VzbHkgY2FwdHVyZWQgZGF0YTsgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmlucHV0PHdici8+U3RyZWFtczwvYT4gcGFyYW1ldGVyIGRldGVybWluZXMgdGhlCitzb3VyY2UgcmVwcm9jZXNzaW5nIHN0cmVhbS48d2JyLz4gVE9ETzogTWFyayBkeW5hbWljIG1ldGFkYXRhCituZWVkZWQgZm9yIHJlcHJvY2Vzc2luZyB3aXRoIFtSUF08L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgdHlwZSBvZiB0aGUgcmVxdWVzdDsgZWl0aGVyIENBUFRVUkUgb3IKK1JFUFJPQ0VTUy48d2JyLz4gRm9yIEhBTDMsPHdici8+IHRoaXMgdGFnIGlzIHJlZHVuZGFudC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0hBTDIiPkhBTDI8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBvdXRwdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIHByb2Nlc3NlZCAoYW5kIHN0YWxsaW5nKSBmb3JtYXQgc3RyZWFtcyw8d2JyLz4gJmd0Oz0gMS48d2JyLz48L3A+Cis8cD5Gb3IgUmF3IGZvcm1hdCAoZWl0aGVyIHN0YWxsaW5nIG9yIG5vbi1zdGFsbGluZykgc3RyZWFtcyw8d2JyLz4gJmd0Oz0gMC48d2JyLz48L3A+Cis8cD5Gb3IgcHJvY2Vzc2VkIChidXQgbm90IHN0YWxsaW5nKSBmb3JtYXQgc3RyZWFtcyw8d2JyLz4gJmd0Oz0gMworZm9yIEZVTEwgbW9kZSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pOworJmd0Oz0gMiBmb3IgTElNSVRFRCBtb2RlIGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBMSU1JVEVEPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSAzIGVsZW1lbnQgdHVwbGUgdGhhdCBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZvciByYXcgc2Vuc29yLDx3YnIvPiBwcm9jZXNzZWQgKGJ1dCBub3Qgc3RhbGxpbmcpLDx3YnIvPiBhbmQgcHJvY2Vzc2VkIChhbmQgc3RhbGxpbmcpCitmb3JtYXRzIHJlc3BlY3RpdmVseS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGFzc3VtaW5nIHRoYXQgSlBFRyBpcyB0eXBpY2FsbHkgYSBwcm9jZXNzZWQgYW5kCitzdGFsbGluZyBzdHJlYW0sPHdici8+IGlmIG1heCByYXcgc2Vuc29yIGZvcm1hdCBvdXRwdXQgc3RyZWFtIG51bWJlciBpcyAxLDx3YnIvPiBtYXggWVVWIHN0cmVhbXMKK251bWJlciBpcyAzLDx3YnIvPiBhbmQgbWF4IEpQRUcgc3RyZWFtIG51bWJlciBpcyAyLDx3YnIvPiB0aGVuIHRoaXMgdHVwbGUgc2hvdWxkIGJlIDxjb2RlPigxLDx3YnIvPiAzLDx3YnIvPiAyKTwvY29kZT4uPHdici8+PC9wPgorPHA+VGhpcyBsaXN0cyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyBzdXBwb3J0ZWQgYnkKK3RoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBVc2luZyBtb3JlIHN0cmVhbXMgc2ltdWx0YW5lb3VzbHkgbWF5IHJlcXVpcmUgbW9yZSBoYXJkd2FyZSBhbmQKK0NQVSByZXNvdXJjZXMgdGhhdCB3aWxsIGNvbnN1bWUgbW9yZSBwb3dlci48d2JyLz4gVGhlIGltYWdlIGZvcm1hdCBmb3IgYW4gb3V0cHV0IHN0cmVhbSBjYW4KK2JlIGFueSBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz4KK1RoZSBmb3JtYXRzIGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IGNhbiBiZSBjYXRlcmdvcml6ZWQKK2ludG8gdGhlIDMgc3RyZWFtIHR5cGVzIGFzIGJlbG93OjwvcD4KKzx1bD4KKzxsaT5Qcm9jZXNzZWQgKGJ1dCBzdGFsbGluZyk6IGFueSBub24tUkFXIGZvcm1hdCB3aXRoIGEgc3RhbGxEdXJhdGlvbnMgJmd0OyAwLjx3YnIvPgorICBUeXBpY2FsbHkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5KUEVHIGZvcm1hdDwvYT4uPHdici8+PC9saT4KKzxsaT5SYXcgZm9ybWF0czogPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVdfU0VOU09SIj5SQVdfPHdici8+U0VOU09SPC9hPiw8d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+UkFXMTA8L2E+LDx3YnIvPiBvciA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEyIj5SQVcxMjwvYT4uPHdici8+PC9saT4KKzxsaT5Qcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpOiBhbnkgbm9uLVJBVyBmb3JtYXQgd2l0aG91dCBhIHN0YWxsIGR1cmF0aW9uLjx3YnIvPgorICBUeXBpY2FsbHkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+WVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+LDx3YnIvPgorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI05WMjEiPk5WMjE8L2E+LDx3YnIvPiBvcgorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lWMTIiPllWMTI8L2E+Ljx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFJhdyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UmF3CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlcnMgb2YgZGlmZmVyZW50IHR5cGVzIG9mIG91dHB1dCBzdHJlYW1zCit0aGF0IGNhbiBiZSBjb25maWd1cmVkIGFuZCB1c2VkIHNpbXVsdGFuZW91c2x5IGJ5IGEgY2FtZXJhIGRldmljZQorZm9yIGFueSA8Y29kZT5SQVc8L2NvZGU+IGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZyb20gdGhlIHJhdyBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhpcyBsaXN0cyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyBzdXBwb3J0ZWQgYnkKK3RoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBVc2luZyBtb3JlIHN0cmVhbXMgc2ltdWx0YW5lb3VzbHkgbWF5IHJlcXVpcmUgbW9yZSBoYXJkd2FyZSBhbmQKK0NQVSByZXNvdXJjZXMgdGhhdCB3aWxsIGNvbnN1bWUgbW9yZSBwb3dlci48d2JyLz4gVGhlIGltYWdlIGZvcm1hdCBmb3IgdGhpcyBraW5kIG9mIGFuIG91dHB1dCBzdHJlYW0gY2FuCitiZSBhbnkgPGNvZGU+UkFXPC9jb2RlPiBhbmQgc3VwcG9ydGVkIGZvcm1hdCBwcm92aWRlZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD4KKzxwPkluIHBhcnRpY3VsYXIsPHdici8+IGEgPGNvZGU+UkFXPC9jb2RlPiBmb3JtYXQgaXMgdHlwaWNhbGx5IG9uZSBvZjo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVdfU0VOU09SIj5SQVdfPHdici8+U0VOU09SPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+UkFXMTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEyIj5SQVcxMjwvYT48L2xpPgorPC91bD4KKzxwPkxFR0FDWSBtb2RlIGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA8Y29kZT49PTwvY29kZT4gTEVHQUNZKQorbmV2ZXIgc3VwcG9ydCByYXcgc3RyZWFtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvYyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UHJvYworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBvdXRwdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UKK2ZvciBhbnkgcHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDMKK2ZvciBGVUxMIG1vZGUgZGV2aWNlcyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEw8L2NvZGU+KTsKKyZndDs9IDIgZm9yIExJTUlURUQgbW9kZSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gTElNSVRFRDwvY29kZT4pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZvciBhbnkgcHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPlRoaXMgbGlzdHMgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgc3VwcG9ydGVkIGJ5Cit0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVXNpbmcgbW9yZSBzdHJlYW1zIHNpbXVsdGFuZW91c2x5IG1heSByZXF1aXJlIG1vcmUgaGFyZHdhcmUgYW5kCitDUFUgcmVzb3VyY2VzIHRoYXQgd2lsbCBjb25zdW1lIG1vcmUgcG93ZXIuPHdici8+IFRoZSBpbWFnZSBmb3JtYXQgZm9yIHRoaXMga2luZCBvZiBhbiBvdXRwdXQgc3RyZWFtIGNhbgorYmUgYW55IG5vbi08Y29kZT5SQVc8L2NvZGU+IGFuZCBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+UHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBpcyBkZWZpbmVkIGFzIGFueSBub24tUkFXIGZvcm1hdCB3aXRob3V0IGEgc3RhbGwgZHVyYXRpb24uPHdici8+CitUeXBpY2FsbHk6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPllVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNOVjIxIj5OVjIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVjEyIj5ZVjEyPC9hPjwvbGk+Cis8bGk+SW1wbGVtZW50YXRpb24tZGVmaW5lZCBmb3JtYXRzLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNpc091dHB1dFN1cHBvcnRlZEZvcihDbGFzcykiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjaXNPdXRwdXRTdXBwb3J0ZWRGb3IoQ2xhc3MpPC9hPjwvbGk+Cis8L3VsPgorPHA+Rm9yIGZ1bGwgZ3VhcmFudGVlcyw8d2JyLz4gcXVlcnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4gd2l0aCBhCitwcm9jZXNzZWQgZm9ybWF0IC0tIGl0IHdpbGwgcmV0dXJuIDAgZm9yIGEgbm9uLXN0YWxsaW5nIHN0cmVhbS48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyB3aWxsIHN1cHBvcnQgYXQgbGVhc3QgMiBwcm9jZXNzaW5nLzx3YnIvPm5vbi1zdGFsbGluZyBzdHJlYW1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRQcm9jU3RhbGxpbmciPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPk91dHB1dDx3YnIvPlByb2M8d2JyLz5TdGFsbGluZworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBvdXRwdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UKK2ZvciBhbnkgcHJvY2Vzc2VkIChhbmQgc3RhbGxpbmcpIGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBjb250YWlucyB0aGUgbWF4IG51bWJlciBvZiBvdXRwdXQgc2ltdWx0YW5lb3VzCitzdHJlYW1zIGZvciBhbnkgcHJvY2Vzc2VkIChidXQgbm90LXN0YWxsaW5nKSBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPlRoaXMgbGlzdHMgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgc3VwcG9ydGVkIGJ5Cit0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVXNpbmcgbW9yZSBzdHJlYW1zIHNpbXVsdGFuZW91c2x5IG1heSByZXF1aXJlIG1vcmUgaGFyZHdhcmUgYW5kCitDUFUgcmVzb3VyY2VzIHRoYXQgd2lsbCBjb25zdW1lIG1vcmUgcG93ZXIuPHdici8+IFRoZSBpbWFnZSBmb3JtYXQgZm9yIHRoaXMga2luZCBvZiBhbiBvdXRwdXQgc3RyZWFtIGNhbgorYmUgYW55IG5vbi08Y29kZT5SQVc8L2NvZGU+IGFuZCBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+QSBwcm9jZXNzZWQgYW5kIHN0YWxsaW5nIGZvcm1hdCBpcyBkZWZpbmVkIGFzIGFueSBub24tUkFXIGZvcm1hdCB3aXRoIGEgc3RhbGxEdXJhdGlvbnMKKyZndDsgMC48d2JyLz4gIFR5cGljYWxseSBvbmx5IHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkpQRUcgZm9ybWF0PC9hPiBpcyBhCitzdGFsbGluZyBmb3JtYXQuPHdici8+PC9wPgorPHA+Rm9yIGZ1bGwgZ3VhcmFudGVlcyw8d2JyLz4gcXVlcnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4gd2l0aCBhCitwcm9jZXNzZWQgZm9ybWF0IC0tIGl0IHdpbGwgcmV0dXJuIGEgbm9uLTAgdmFsdWUgZm9yIGEgc3RhbGxpbmcgc3RyZWFtLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgc3VwcG9ydCB1cCB0byAxIHByb2Nlc3NpbmcvPHdici8+c3RhbGxpbmcgc3RyZWFtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5SZXByb2Nlc3M8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ib3cgbWFueSByZXByb2Nlc3Npbmcgc3RyZWFtcyBvZiBhbnkgdHlwZQorY2FuIGJlIGFsbG9jYXRlZCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgdXNlZCBieSBIQUwyLjx3YnIvPnguPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gMCw8d2JyLz4gaXQgbWVhbnMgbm8gcmVwcm9jZXNzIHN0cmVhbSBpcyBzdXBwb3J0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+SW5wdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXJzIG9mIGFueSB0eXBlIG9mIGlucHV0IHN0cmVhbXMKK3RoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgYW5kIHVzZWQgc2ltdWx0YW5lb3VzbHkgYnkgYSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAgb3IgMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byAwLDx3YnIvPiBpdCBtZWFucyBubyBpbnB1dCBzdHJlYW0gaXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBpbWFnZSBmb3JtYXQgZm9yIGEgaW5wdXQgc3RyZWFtIGNhbiBiZSBhbnkgc3VwcG9ydGVkIGZvcm1hdCByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldElucHV0Rm9ybWF0czwvYT4uPHdici8+IFdoZW4gdXNpbmcgYW4KK2lucHV0IHN0cmVhbSw8d2JyLz4gdGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgb3V0cHV0IHN0cmVhbSBjb25maWd1cmVkIHRvIHRvIHJlY2VpdmUgdGhlCityZXByb2Nlc3NlZCBpbWFnZXMuPHdici8+PC9wPgorPHA+V2hlbiBhbiBpbnB1dCBzdHJlYW0gYW5kIHNvbWUgb3V0cHV0IHN0cmVhbXMgYXJlIHVzZWQgaW4gYSByZXByb2Nlc3NpbmcgcmVxdWVzdCw8d2JyLz4KK29ubHkgdGhlIGlucHV0IGJ1ZmZlciB3aWxsIGJlIHVzZWQgdG8gcHJvZHVjZSB0aGVzZSBvdXRwdXQgc3RyZWFtIGJ1ZmZlcnMsPHdici8+IGFuZCBhCituZXcgc2Vuc29yIGltYWdlIHdpbGwgbm90IGJlIGNhcHR1cmVkLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgWmVybyBTaHV0dGVyIExhZyAoWlNMKSBzdGlsbCBjYXB0dXJlIHVzZSBjYXNlLDx3YnIvPiB0aGUgaW5wdXQKK3N0cmVhbSBpbWFnZSBmb3JtYXQgd2lsbCBiZSBQUklWQVRFLDx3YnIvPiB0aGUgYXNzb2NpYXRlZCBvdXRwdXQgc3RyZWFtIGltYWdlIGZvcm1hdAorc2hvdWxkIGJlIEpQRUcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgdGhlIHJlcHJvY2Vzc2luZyBmbG93IGFuZCBjb250cm9scyw8d2JyLz4gc2VlCitoYXJkd2FyZS88d2JyLz5saWJoYXJkd2FyZS88d2JyLz5pbmNsdWRlLzx3YnIvPmhhcmR3YXJlLzx3YnIvPmNhbWVyYTMuPHdici8+aCBTZWN0aW9uIDEwIGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPk1heDx3YnIvPkRlcHRoCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgbWF4aW11bSBwaXBlbGluZSBzdGFnZXMgYSBmcmFtZQoraGFzIHRvIGdvIHRocm91Z2ggZnJvbSB3aGVuIGl0J3MgZXhwb3NlZCB0byB3aGVuIGl0J3MgYXZhaWxhYmxlCit0byB0aGUgZnJhbWV3b3JrLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgdHlwaWNhbCBtaW5pbXVtIHZhbHVlIGZvciB0aGlzIGlzIDIgKG9uZSBzdGFnZSB0byBleHBvc2UsPHdici8+CitvbmUgc3RhZ2UgdG8gcmVhZG91dCkgZnJvbSB0aGUgc2Vuc29yLjx3YnIvPiBUaGUgSVNQIHRoZW4gdXN1YWxseSBhZGRzCitpdHMgb3duIHN0YWdlcyB0byBkbyBjdXN0b20gSFcgcHJvY2Vzc2luZy48d2JyLz4gRnVydGhlciBzdGFnZXMgbWF5IGJlCithZGRlZCBieSBTVyBwcm9jZXNzaW5nLjx3YnIvPjwvcD4KKzxwPkRlcGVuZGluZyBvbiB3aGF0IHNldHRpbmdzIGFyZSB1c2VkIChlLjx3YnIvPmcuPHdici8+IFlVViw8d2JyLz4gSlBFRykgYW5kIHdoYXQKK3Byb2Nlc3NpbmcgaXMgZW5hYmxlZCAoZS48d2JyLz5nLjx3YnIvPiBmYWNlIGRldGVjdGlvbiksPHdici8+IHRoZSBhY3R1YWwgcGlwZWxpbmUKK2RlcHRoIChzcGVjaWZpZWQgYnkgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGgiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPkRlcHRoPC9hPikgbWF5IGJlIGxlc3MgdGhhbgordGhlIG1heCBwaXBlbGluZSBkZXB0aC48d2JyLz48L3A+Cis8cD5BIHBpcGVsaW5lIGRlcHRoIG9mIFggc3RhZ2VzIGlzIGVxdWl2YWxlbnQgdG8gYSBwaXBlbGluZSBsYXRlbmN5IG9mCitYIGZyYW1lIGludGVydmFscy48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIHdpbGwgbm9ybWFsbHkgYmUgOCBvciBsZXNzLDx3YnIvPiBob3dldmVyLDx3YnIvPiBmb3IgaGlnaCBzcGVlZCBjYXB0dXJlIHNlc3Npb24sPHdici8+Cit0aGUgbWF4IHBpcGVsaW5lIGRlcHRoIHdpbGwgYmUgdXAgdG8gOCB4IHNpemUgb2YgaGlnaCBzcGVlZCBjYXB0dXJlIHJlcXVlc3QgbGlzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgdmFsdWUgc2hvdWxkIGJlIDQgb3IgbGVzcyw8d2JyLz4gZXhwZWN0IGZvciB0aGUgaGlnaCBzcGVlZCByZWNvcmRpbmcgc2Vzc2lvbiw8d2JyLz4gd2hlcmUgdGhlCittYXggYmF0Y2ggc2l6ZXMgbWF5IGJlIGxhcmdlciB0aGFuIDEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBhcnRpYWw8d2JyLz5SZXN1bHQ8d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RGVmaW5lcyBob3cgbWFueSBzdWItY29tcG9uZW50cworYSByZXN1bHQgd2lsbCBiZSBjb21wb3NlZCBvZi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JbiBvcmRlciB0byBjb21iYXQgdGhlIHBpcGVsaW5lIGxhdGVuY3ksPHdici8+IHBhcnRpYWwgcmVzdWx0cworbWF5IGJlIGRlbGl2ZXJlZCB0byB0aGUgYXBwbGljYXRpb24gbGF5ZXIgZnJvbSB0aGUgY2FtZXJhIGRldmljZSBhcworc29vbiBhcyB0aGV5IGFyZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+T3B0aW9uYWw7IGRlZmF1bHRzIHRvIDEuPHdici8+IEEgdmFsdWUgb2YgMSBtZWFucyB0aGF0IHBhcnRpYWwKK3Jlc3VsdHMgYXJlIG5vdCBzdXBwb3J0ZWQsPHdici8+IGFuZCBvbmx5IHRoZSBmaW5hbCBUb3RhbENhcHR1cmVSZXN1bHQgd2lsbAorYmUgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+QSB0eXBpY2FsIHVzZSBjYXNlIGZvciB0aGlzIG1pZ2h0IGJlOiBhZnRlciByZXF1ZXN0aW5nIGFuCithdXRvLWZvY3VzIChBRikgbG9jayB0aGUgbmV3IEFGIHN0YXRlIG1pZ2h0IGJlIGF2YWlsYWJsZSA1MCUKK29mIHRoZSB3YXkgdGhyb3VnaCB0aGUgcGlwZWxpbmUuPHdici8+ICBUaGUgY2FtZXJhIGRldmljZSBjb3VsZAordGhlbiBpbW1lZGlhdGVseSBkaXNwYXRjaCB0aGlzIHN0YXRlIHZpYSBhIHBhcnRpYWwgcmVzdWx0IHRvCit0aGUgYXBwbGljYXRpb24sPHdici8+IGFuZCB0aGUgcmVzdCBvZiB0aGUgbWV0YWRhdGEgdmlhIGxhdGVyCitwYXJ0aWFsIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkFDS1dBUkRfQ09NUEFUSUJMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIG1pbmltYWwgc2V0IG9mIGNhcGFiaWxpdGllcyB0aGF0IGV2ZXJ5IGNhbWVyYQorZGV2aWNlIChyZWdhcmRsZXNzIG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPikKK3N1cHBvcnRzLjx3YnIvPjwvcD4KKzxwPlRoaXMgY2FwYWJpbGl0eSBpcyBsaXN0ZWQgYnkgYWxsIG5vcm1hbCBkZXZpY2VzLDx3YnIvPiBhbmQKK2luZGljYXRlcyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhIGZlYXR1cmUgc2V0Cit0aGF0J3MgY29tcGFyYWJsZSB0byB0aGUgYmFzZWxpbmUgcmVxdWlyZW1lbnRzIGZvciB0aGUKK29sZGVyIGFuZHJvaWQuPHdici8+aGFyZHdhcmUuPHdici8+Q2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5EZXZpY2VzIHdpdGggdGhlIERFUFRIXzx3YnIvPk9VVFBVVCBjYXBhYmlsaXR5IG1pZ2h0IG5vdCBsaXN0IHRoaXMKK2NhcGFiaWxpdHksPHdici8+IGluZGljYXRpbmcgdGhhdCB0aGV5IHN1cHBvcnQgb25seSBkZXB0aCBtZWFzdXJlbWVudCw8d2JyLz4KK25vdCBzdGFuZGFyZCBjb2xvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFOVUFMX1NFTlNPUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIGJlIG1hbnVhbGx5IGNvbnRyb2xsZWQgKDNBIGFsZ29yaXRobXMgc3VjaAorYXMgYXV0by1leHBvc3VyZSw8d2JyLz4gYW5kIGF1dG8tZm9jdXMgY2FuIGJlIGJ5cGFzc2VkKS48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGJhc2ljIG1hbnVhbCBjb250cm9sIG9mIHRoZSBzZW5zb3IgaW1hZ2UKK2FjcXVpc2l0aW9uIHJlbGF0ZWQgc3RhZ2VzLjx3YnIvPiBUaGlzIG1lYW5zIHRoZSBmb2xsb3dpbmcgY29udHJvbHMgYXJlCitndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZDo8L3A+Cis8dWw+Cis8bGk+TWFudWFsIGZyYW1lIGR1cmF0aW9uIGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgZXhwb3N1cmUgY29udHJvbDx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBzZW5zaXRpdml0eSBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgbGVucyBjb250cm9sIChpZiB0aGUgbGVucyBpcyBhZGp1c3RhYmxlKTx1bD4KKzxsaT5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+KjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgZmxhc2ggY29udHJvbCAoaWYgYSBmbGFzaCB1bml0IGlzIHByZXNlbnQpPHVsPgorPGxpPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+KjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgYmxhY2sgbGV2ZWwgbG9ja2luZzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuPHdici8+YmxhY2s8d2JyLz5MZXZlbC48d2JyLz5sb2NrPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5BdXRvIGV4cG9zdXJlIGxvY2s8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKzxwPklmIGFueSBvZiB0aGUgYWJvdmUgM0EgYWxnb3JpdGhtcyBhcmUgZW5hYmxlZCw8d2JyLz4gdGhlbiB0aGUgY2FtZXJhCitkZXZpY2Ugd2lsbCBhY2N1cmF0ZWx5IHJlcG9ydCB0aGUgdmFsdWVzIGFwcGxpZWQgYnkgM0EgaW4gdGhlCityZXN1bHQuPHdici8+PC9wPgorPHA+QSBnaXZlbiBjYW1lcmEgZGV2aWNlIG1heSBhbHNvIHN1cHBvcnQgYWRkaXRpb25hbCBtYW51YWwgc2Vuc29yIGNvbnRyb2xzLDx3YnIvPgorYnV0IHRoaXMgY2FwYWJpbGl0eSBvbmx5IGNvdmVycyB0aGUgYWJvdmUgbGlzdCBvZiBjb250cm9scy48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGlzIHN1cHBvcnRlZCw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiB3aWxsCithZGRpdGlvbmFsbHkgcmV0dXJuIGEgbWluIGZyYW1lIGR1cmF0aW9uIHRoYXQgaXMgZ3JlYXRlciB0aGFuCit6ZXJvIGZvciBlYWNoIHN1cHBvcnRlZCBzaXplLWZvcm1hdCBjb21iaW5hdGlvbi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NQU5VQUxfUE9TVF9QUk9DRVNTSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBwb3N0LXByb2Nlc3Npbmcgc3RhZ2VzIGNhbiBiZSBtYW51YWxseSBjb250cm9sbGVkLjx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYmFzaWMgbWFudWFsIGNvbnRyb2wgb2YgdGhlIGltYWdlIHBvc3QtcHJvY2Vzc2luZworc3RhZ2VzLjx3YnIvPiBUaGlzIG1lYW5zIHRoZSBmb2xsb3dpbmcgY29udHJvbHMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkOjwvcD4KKzx1bD4KKzxsaT4KKzxwPk1hbnVhbCB0b25lbWFwIGNvbnRyb2w8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPgorPHA+TWFudWFsIHdoaXRlIGJhbGFuY2UgY29udHJvbDwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5NYW51YWwgbGVucyBzaGFkaW5nIG1hcCBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNoYWRpbmcubW9kZSI+YW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+c2hhZGluZzx3YnIvPk1hcDx3YnIvPlNpemU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBhYmVycmF0aW9uIGNvcnJlY3Rpb24gY29udHJvbCAoaWYgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGlzIHN1cHBvcnRlZCk8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hdmFpbGFibGU8d2JyLz5BYmVycmF0aW9uPHdici8+TW9kZXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPkF1dG8gd2hpdGUgYmFsYW5jZSBsb2NrPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKzxwPklmIGF1dG8gd2hpdGUgYmFsYW5jZSBpcyBlbmFibGVkLDx3YnIvPiB0aGVuIHRoZSBjYW1lcmEgZGV2aWNlCit3aWxsIGFjY3VyYXRlbHkgcmVwb3J0IHRoZSB2YWx1ZXMgYXBwbGllZCBieSBBV0IgaW4gdGhlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5BIGdpdmVuIGNhbWVyYSBkZXZpY2UgbWF5IGFsc28gc3VwcG9ydCBhZGRpdGlvbmFsIHBvc3QtcHJvY2Vzc2luZworY29udHJvbHMsPHdici8+IGJ1dCB0aGlzIGNhcGFiaWxpdHkgb25seSBjb3ZlcnMgdGhlIGFib3ZlIGxpc3Qgb2YgY29udHJvbHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkFXPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBvdXRwdXR0aW5nIFJBVyBidWZmZXJzIGFuZAorbWV0YWRhdGEgZm9yIGludGVycHJldGluZyB0aGVtLjx3YnIvPjwvcD4KKzxwPkRldmljZXMgc3VwcG9ydGluZyB0aGUgUkFXIGNhcGFiaWxpdHkgYWxsb3cgYm90aCBmb3IKK3NhdmluZyBETkcgZmlsZXMsPHdici8+IGFuZCBmb3IgZGlyZWN0IGFwcGxpY2F0aW9uIHByb2Nlc3Npbmcgb2YKK3JhdyBzZW5zb3IgaW1hZ2VzLjx3YnIvPjwvcD4KKzx1bD4KKzxsaT5SQVdfPHdici8+U0VOU09SIGlzIHN1cHBvcnRlZCBhcyBhbiBvdXRwdXQgZm9ybWF0Ljx3YnIvPjwvbGk+Cis8bGk+VGhlIG1heGltdW0gYXZhaWxhYmxlIHJlc29sdXRpb24gZm9yIFJBV188d2JyLz5TRU5TT1Igc3RyZWFtcworICB3aWxsIG1hdGNoIGVpdGhlciB0aGUgdmFsdWUgaW4KKyAgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBvcgorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L2xpPgorPGxpPkFsbCBETkctcmVsYXRlZCBvcHRpb25hbCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBwcm92aWRlZAorICBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L2xpPgorPC91bD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSSVZBVEVfUkVQUk9DRVNTSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyB0aGUgWmVybyBTaHV0dGVyIExhZyByZXByb2Nlc3NpbmcgdXNlIGNhc2UuPHdici8+PC9wPgorPHVsPgorPGxpPk9uZSBpbnB1dCBzdHJlYW0gaXMgc3VwcG9ydGVkLDx3YnIvPiB0aGF0IGlzLDx3YnIvPiA8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5JbnB1dDx3YnIvPlN0cmVhbXM8L2E+ID09IDE8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBpcyBzdXBwb3J0ZWQgYXMgYW4gb3V0cHV0Lzx3YnIvPmlucHV0IGZvcm1hdCw8d2JyLz4KKyAgdGhhdCBpcyw8d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdHMgb2YKKyAgZm9ybWF0cyByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldElucHV0Rm9ybWF0czwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dEZvcm1hdHM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldFZhbGlkT3V0cHV0Rm9ybWF0c0ZvcklucHV0Ij5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldFZhbGlkT3V0cHV0Rm9ybWF0c0ZvcklucHV0PC9hPgorICByZXR1cm5zIG5vbiBlbXB0eSBpbnRbXSBmb3IgZWFjaCBzdXBwb3J0ZWQgaW5wdXQgZm9ybWF0IHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SW5wdXRGb3JtYXRzPC9hPi48d2JyLz48L2xpPgorPGxpPkVhY2ggc2l6ZSByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRTaXplcyI+Z2V0SW5wdXRTaXplcyhJbWFnZUZvcm1hdC48d2JyLz5QUklWQVRFKTwvYT4gaXMgYWxzbyBpbmNsdWRlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U2l6ZXMiPmdldE91dHB1dFNpemVzKEltYWdlRm9ybWF0Ljx3YnIvPlBSSVZBVEUpPC9hPjwvbGk+Cis8bGk+VXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBkb2VzIG5vdCBjYXVzZSBhIGZyYW1lIHJhdGUgZHJvcAorICByZWxhdGl2ZSB0byB0aGUgc2Vuc29yJ3MgbWF4aW11bSBjYXB0dXJlIHJhdGUgKGF0IHRoYXQgcmVzb2x1dGlvbikuPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IHdpbGwgYmUgcmVwcm9jZXNzYWJsZSBpbnRvIGJvdGgKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+IGFuZAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+IGZvcm1hdHMuPHdici8+PC9saT4KKzxsaT5UaGUgbWF4aW11bSBhdmFpbGFibGUgcmVzb2x1dGlvbiBmb3IgUFJJVkFURSBzdHJlYW1zCisgIChib3RoIGlucHV0Lzx3YnIvPm91dHB1dCkgd2lsbCBtYXRjaCB0aGUgbWF4aW11bSBhdmFpbGFibGUKKyAgcmVzb2x1dGlvbiBvZiBKUEVHIHN0cmVhbXMuPHdici8+PC9saT4KKzxsaT5TdGF0aWMgbWV0YWRhdGEgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPm1heDx3YnIvPkNhcHR1cmU8d2JyLz5TdGFsbDwvYT4uPHdici8+PC9saT4KKzxsaT5Pbmx5IGJlbG93IGNvbnRyb2xzIGFyZSBlZmZlY3RpdmUgZm9yIHJlcHJvY2Vzc2luZyByZXF1ZXN0cyBhbmQKKyAgd2lsbCBiZSBwcmVzZW50IGluIGNhcHR1cmUgcmVzdWx0cyw8d2JyLz4gb3RoZXIgY29udHJvbHMgaW4gcmVwcm9jZXNzCisgIHJlcXVlc3RzIHdpbGwgYmUgaWdub3JlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48dWw+Cis8bGk+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPio8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+IGFuZAorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXM8L2E+IHdpbGwgYm90aCBsaXN0IFpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgYXMgYSBzdXBwb3J0ZWQgbW9kZS48d2JyLz48L2xpPgorPC91bD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJFQURfU0VOU09SX1NFVFRJTkdTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBhY2N1cmF0ZWx5IHJlcG9ydGluZyB0aGUgc2Vuc29yIHNldHRpbmdzIGZvciBtYW55IG9mCit0aGUgc2Vuc29yIGNvbnRyb2xzIHdoaWxlIHRoZSBidWlsdC1pbiAzQSBhbGdvcml0aG0gaXMgcnVubmluZy48d2JyLz4gIFRoaXMgYWxsb3dzCityZXBvcnRpbmcgb2Ygc2Vuc29yIHNldHRpbmdzIGV2ZW4gd2hlbiB0aGVzZSBzZXR0aW5ncyBjYW5ub3QgYmUgbWFudWFsbHkgY2hhbmdlZC48d2JyLz48L3A+Cis8cD5UaGUgdmFsdWVzIHJlcG9ydGVkIGZvciB0aGUgZm9sbG93aW5nIGNvbnRyb2xzIGFyZSBndWFyYW50ZWVkIHRvIGJlIGF2YWlsYWJsZQoraW4gdGhlIENhcHR1cmVSZXN1bHQsPHdici8+IGluY2x1ZGluZyB3aGVuIDNBIGlzIGVuYWJsZWQ6PC9wPgorPHVsPgorPGxpPkV4cG9zdXJlIGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5TZW5zaXRpdml0eSBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPkxlbnMgY29udHJvbHMgKGlmIHRoZSBsZW5zIGlzIGFkanVzdGFibGUpPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKzxwPlRoaXMgY2FwYWJpbGl0eSBpcyBhIHN1YnNldCBvZiB0aGUgTUFOVUFMXzx3YnIvPlNFTlNPUiBjb250cm9sIGNhcGFiaWxpdHksPHdici8+IGFuZCB3aWxsCithbHdheXMgYmUgaW5jbHVkZWQgaWYgdGhlIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBpcyBhdmFpbGFibGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QlVSU1RfQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgY2FwdHVyaW5nIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgYXQgJmd0Oz0gMjAgZnJhbWVzIHBlcgorc2Vjb25kLDx3YnIvPiBpbiBhdCBsZWFzdCB0aGUgdW5jb21wcmVzc2VkIFlVViBmb3JtYXQsPHdici8+IHdoZW4gcG9zdC1wcm9jZXNzaW5nIHNldHRpbmdzIGFyZSBzZXQKK3RvIEZBU1QuPHdici8+IEFkZGl0aW9uYWxseSw8d2JyLz4gbWF4aW11bS1yZXNvbHV0aW9uIGltYWdlcyBjYW4gYmUgY2FwdHVyZWQgYXQgJmd0Oz0gMTAgZnJhbWVzCitwZXIgc2Vjb25kLjx3YnIvPiAgSGVyZSw8d2JyLz4gJ2hpZ2ggcmVzb2x1dGlvbicgbWVhbnMgYXQgbGVhc3QgOCBtZWdhcGl4ZWxzLDx3YnIvPiBvciB0aGUgbWF4aW11bQorcmVzb2x1dGlvbiBvZiB0aGUgZGV2aWNlLDx3YnIvPiB3aGljaGV2ZXIgaXMgc21hbGxlci48d2JyLz48L3A+Cis8cD5Nb3JlIHNwZWNpZmljYWxseSw8d2JyLz4gdGhpcyBtZWFucyB0aGF0IGEgc2l6ZSBtYXRjaGluZyB0aGUgY2FtZXJhIGRldmljZSdzIGFjdGl2ZSBhcnJheQorc2l6ZSBpcyBsaXN0ZWQgYXMgYSBzdXBwb3J0ZWQgc2l6ZSBmb3IgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBmb3JtYXQgaW4gZWl0aGVyIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTaXplcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTaXplczwvYT4gb3IgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hSZXNvbHV0aW9uT3V0cHV0U2l6ZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SGlnaFJlc29sdXRpb25PdXRwdXRTaXplczwvYT4sPHdici8+Cit3aXRoIGEgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgdGhhdCBmb3JtYXQgYW5kIHNpemUgb2YgZWl0aGVyICZsdDs9IDEvPHdici8+MjAgcyw8d2JyLz4gb3IKKyZsdDs9IDEvPHdici8+MTAgcyw8d2JyLz4gcmVzcGVjdGl2ZWx5OyBhbmQgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZXM8L2E+IGVudHJ5CitsaXN0cyBhdCBsZWFzdCBvbmUgRlBTIHJhbmdlIHdoZXJlIHRoZSBtaW5pbXVtIEZQUyBpcyAmZ3Q7PSAxIC88d2JyLz4gbWluaW11bUZyYW1lRHVyYXRpb24KK2ZvciB0aGUgbWF4aW11bS1zaXplIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGZvcm1hdC48d2JyLz4gIElmIHRoYXQgbWF4aW11bSBzaXplIGlzIGxpc3RlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SGlnaFJlc29sdXRpb25PdXRwdXRTaXplcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRIaWdoUmVzb2x1dGlvbk91dHB1dFNpemVzPC9hPiw8d2JyLz4KK3RoZW4gdGhlIGxpc3Qgb2YgcmVzb2x1dGlvbnMgZm9yIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFNpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFNpemVzPC9hPiBjb250YWlucyBhdAorbGVhc3Qgb25lIHJlc29sdXRpb24gJmd0Oz0gOCBtZWdhcGl4ZWxzLDx3YnIvPiB3aXRoIGEgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBvZiAmbHQ7PSAxLzx3YnIvPjIwCitzLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBkZXZpY2Ugc3VwcG9ydHMgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXMTAiPkltYWdlRm9ybWF0I1JBVzEwPC9hPiw8d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMiI+SW1hZ2VGb3JtYXQjUkFXMTI8L2E+LDx3YnIvPiB0aGVuIHRob3NlIGNhbiBhbHNvIGJlIGNhcHR1cmVkIGF0IHRoZSBzYW1lIHJhdGUKK2FzIHRoZSBtYXhpbXVtLXNpemUgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggcmVzb2x1dGlvbiBpcy48d2JyLz48L3A+Cis8cD5JZiB0aGUgZGV2aWNlIHN1cHBvcnRzIHRoZSBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGVuIHRoZSBzYW1lIGd1YXJhbnRlZXMKK2FzIGZvciB0aGUgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggZm9ybWF0IGFsc28gYXBwbHkgdG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUFJJVkFURSI+SW1hZ2VGb3JtYXQjUFJJVkFURTwvYT4gZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPkluIGFkZGl0aW9uLDx3YnIvPiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN5bmMubWF4TGF0ZW5jeSI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPm1heDx3YnIvPkxhdGVuY3k8L2E+IGZpZWxkIGlzIGd1YXJhbnRlZCB0byBoYXZlIGEgdmFsdWUgYmV0d2VlbiAwCithbmQgNCw8d2JyLz4gaW5jbHVzaXZlLjx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8d2JyLz5BdmFpbGFibGU8L2E+IGFuZCA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazx3YnIvPkF2YWlsYWJsZTwvYT4KK2FyZSBhbHNvIGd1YXJhbnRlZWQgdG8gYmUgPGNvZGU+dHJ1ZTwvY29kZT4gc28gYnVyc3QgY2FwdHVyZSB3aXRoIHRoZXNlIHR3byBsb2NrcyBPTiB5aWVsZHMKK2NvbnNpc3RlbnQgaW1hZ2Ugb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPllVVl9SRVBST0NFU1NJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIHRoZSBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCByZXByb2Nlc3NpbmcgdXNlIGNhc2UsPHdici8+IHNpbWlsYXIgYXMKK1BSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HLDx3YnIvPiBUaGlzIGNhcGFiaWxpdHkgcmVxdWlyZXMgdGhlIGNhbWVyYSBkZXZpY2UgdG8gc3VwcG9ydCB0aGUKK2ZvbGxvd2luZzo8L3A+Cis8dWw+Cis8bGk+T25lIGlucHV0IHN0cmVhbSBpcyBzdXBwb3J0ZWQsPHdici8+IHRoYXQgaXMsPHdici8+IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPklucHV0PHdici8+U3RyZWFtczwvYT4gPT0gMTwvY29kZT4uPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gaXMgc3VwcG9ydGVkIGFzIGFuIG91dHB1dC88d2JyLz5pbnB1dCBmb3JtYXQsPHdici8+IHRoYXQgaXMsPHdici8+CisgIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0cyBvZiBmb3JtYXRzIHJldHVybmVkIGJ5CisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SW5wdXRGb3JtYXRzPC9hPiBhbmQKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0Rm9ybWF0czwvYT4uPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0VmFsaWRPdXRwdXRGb3JtYXRzRm9ySW5wdXQiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0VmFsaWRPdXRwdXRGb3JtYXRzRm9ySW5wdXQ8L2E+CisgIHJldHVybnMgbm9uLWVtcHR5IGludFtdIGZvciBlYWNoIHN1cHBvcnRlZCBpbnB1dCBmb3JtYXQgcmV0dXJuZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldElucHV0Rm9ybWF0cyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRJbnB1dEZvcm1hdHM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+RWFjaCBzaXplIHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dFNpemVzIj5nZXQ8d2JyLz5JbnB1dDx3YnIvPlNpemVzKFlVVl88d2JyLz40MjBfPHdici8+ODg4KTwvYT4gaXMgYWxzbyBpbmNsdWRlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U2l6ZXMiPmdldDx3YnIvPk91dHB1dDx3YnIvPlNpemVzKFlVVl88d2JyLz40MjBfPHdici8+ODg4KTwvYT48L2xpPgorPGxpPlVzaW5nIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBkb2VzIG5vdCBjYXVzZSBhIGZyYW1lIHJhdGUgZHJvcAorICByZWxhdGl2ZSB0byB0aGUgc2Vuc29yJ3MgbWF4aW11bSBjYXB0dXJlIHJhdGUgKGF0IHRoYXQgcmVzb2x1dGlvbikuPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gd2lsbCBiZSByZXByb2Nlc3NhYmxlIGludG8gYm90aAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT4gZm9ybWF0cy48d2JyLz48L2xpPgorPGxpPlRoZSBtYXhpbXVtIGF2YWlsYWJsZSByZXNvbHV0aW9uIGZvciA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gc3RyZWFtcyAoYm90aCBpbnB1dC88d2JyLz5vdXRwdXQpIHdpbGwgbWF0Y2ggdGhlCisgIG1heGltdW0gYXZhaWxhYmxlIHJlc29sdXRpb24gb2YgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5JbWFnZUZvcm1hdCNKUEVHPC9hPiBzdHJlYW1zLjx3YnIvPjwvbGk+Cis8bGk+U3RhdGljIG1ldGFkYXRhIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXByb2Nlc3MubWF4Q2FwdHVyZVN0YWxsIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5tYXg8d2JyLz5DYXB0dXJlPHdici8+U3RhbGw8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+T25seSB0aGUgYmVsb3cgY29udHJvbHMgYXJlIGVmZmVjdGl2ZSBmb3IgcmVwcm9jZXNzaW5nIHJlcXVlc3RzIGFuZCB3aWxsIGJlIHByZXNlbnQKKyAgaW4gY2FwdHVyZSByZXN1bHRzLjx3YnIvPiBUaGUgcmVwcm9jZXNzIHJlcXVlc3RzIGFyZSBmcm9tIHRoZSBvcmlnaW5hbCBjYXB0dXJlIHJlc3VsdHMgdGhhdAorICBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnRlcm1lZGlhdGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+CisgIG91dHB1dCBidWZmZXJzLjx3YnIvPiAgQWxsIG90aGVyIGNvbnRyb2xzIGluIHRoZSByZXByb2Nlc3MgcmVxdWVzdHMgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZQorICBjYW1lcmEgZGV2aWNlLjx3YnIvPjx1bD4KKzxsaT5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+KjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+IGFuZAorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXM8L2E+IHdpbGwgYm90aCBsaXN0IFpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgYXMgYSBzdXBwb3J0ZWQgbW9kZS48d2JyLz48L2xpPgorPC91bD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFUFRIX09VVFBVVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIHByb2R1Y2UgZGVwdGggbWVhc3VyZW1lbnRzIGZyb20gaXRzIGZpZWxkIG9mIHZpZXcuPHdici8+PC9wPgorPHA+VGhpcyBjYXBhYmlsaXR5IHJlcXVpcmVzIHRoZSBjYW1lcmEgZGV2aWNlIHRvIHN1cHBvcnQgdGhlIGZvbGxvd2luZzo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNERVBUSDE2Ij5JbWFnZUZvcm1hdCNERVBUSDE2PC9hPiBpcyBzdXBwb3J0ZWQgYXMgYW4gb3V0cHV0IGZvcm1hdC48d2JyLz48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjREVQVEhfUE9JTlRfQ0xPVUQiPkltYWdlPHdici8+Rm9ybWF0I0RFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEPC9hPiBpcyBvcHRpb25hbGx5IHN1cHBvcnRlZCBhcyBhbgorICBvdXRwdXQgZm9ybWF0Ljx3YnIvPjwvbGk+Cis8bGk+VGhpcyBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgYWxsIGNhbWVyYSBkZXZpY2VzIHdpdGggdGhlIHNhbWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuZmFjaW5nIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmFjaW5nPC9hPiw8d2JyLz4KKyAgd2lsbCBsaXN0IHRoZSBmb2xsb3dpbmcgY2FsaWJyYXRpb24gZW50cmllcyBpbiBib3RoCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwiPkNhbWVyYUNoYXJhY3RlcmlzdGljczwvYT4gYW5kCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5odG1sIj5DYXB0dXJlUmVzdWx0PC9hPjo8dWw+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlRyYW5zbGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5UaGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmRlcHRoSXNFeGNsdXNpdmUiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+ZGVwdGg8d2JyLz5Jczx3YnIvPkV4Y2x1c2l2ZTwvYT4gZW50cnkgaXMgbGlzdGVkIGJ5IHRoaXMgZGV2aWNlLjx3YnIvPjwvbGk+Cis8bGk+QSBMSU1JVEVEIGNhbWVyYSB3aXRoIG9ubHkgdGhlIERFUFRIXzx3YnIvPk9VVFBVVCBjYXBhYmlsaXR5IGRvZXMgbm90IGhhdmUgdG8gc3VwcG9ydAorICBub3JtYWwgWVVWXzx3YnIvPjQyMF88d2JyLz44ODgsPHdici8+IEpQRUcsPHdici8+IGFuZCBQUklWLWZvcm1hdCBvdXRwdXRzLjx3YnIvPiBJdCBvbmx5IGhhcyB0byBzdXBwb3J0IHRoZSBERVBUSDE2CisgIGZvcm1hdC48d2JyLz48L2xpPgorPC91bD4KKzxwPkdlbmVyYWxseSw8d2JyLz4gZGVwdGggb3V0cHV0IG9wZXJhdGVzIGF0IGEgc2xvd2VyIGZyYW1lIHJhdGUgdGhhbiBzdGFuZGFyZCBjb2xvciBjYXB0dXJlLDx3YnIvPgorc28gdGhlIERFUFRIMTYgYW5kIERFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEIGZvcm1hdHMgd2lsbCBjb21tb25seSBoYXZlIGEgc3RhbGwgZHVyYXRpb24gdGhhdAorc2hvdWxkIGJlIGFjY291bnRlZCBmb3IgKHNlZQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4pLjx3YnIvPgorT24gYSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBib3RoIGRlcHRoIGFuZCBjb2xvci1iYXNlZCBvdXRwdXQsPHdici8+IHRvIGVuYWJsZSBzbW9vdGggcHJldmlldyw8d2JyLz4KK3VzaW5nIGEgcmVwZWF0aW5nIGJ1cnN0IGlzIHJlY29tbWVuZGVkLDx3YnIvPiB3aGVyZSBhIGRlcHRoLW91dHB1dCB0YXJnZXQgaXMgb25seSBpbmNsdWRlZAorb25jZSBldmVyeSBOIGZyYW1lcyw8d2JyLz4gd2hlcmUgTiBpcyB0aGUgcmF0aW8gYmV0d2VlbiBwcmV2aWV3IG91dHB1dCByYXRlIGFuZCBkZXB0aCBvdXRwdXQKK3JhdGUsPHdici8+IGluY2x1ZGluZyBkZXB0aCBzdGFsbCB0aW1lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBkZXZpY2Ugc3VwcG9ydHMgY29uc3RyYWluZWQgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcgKGZyYW1lIHJhdGUgJmd0Oz0xMjBmcHMpCit1c2UgY2FzZS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBzdXBwb3J0IGhpZ2ggc3BlZWQgY2FwdHVyZSBzZXNzaW9uIGNyZWF0ZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+LDx3YnIvPiB3aGljaAorb25seSBhY2NlcHRzIGhpZ2ggc3BlZWQgcmVxdWVzdCBsaXN0cyBjcmVhdGVkIGJ5Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24uaHRtbCNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdCI+Q2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdDwvYT4uPHdici8+PC9wPgorPHA+QSBjYW1lcmEgZGV2aWNlIGNhbiBzdGlsbCBzdXBwb3J0IGhpZ2ggc3BlZWQgdmlkZW8gc3RyZWFtaW5nIGJ5IGFkdmVydGlzaW5nIHRoZSBoaWdoIHNwZWVkCitGUFMgcmFuZ2VzIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZXM8L2E+Ljx3YnIvPiBGb3IgdGhpcyBjYXNlLDx3YnIvPiBhbGwgbm9ybWFsCitjYXB0dXJlIHJlcXVlc3QgcGVyIGZyYW1lIGNvbnRyb2wgYW5kIHN5bmNocm9uaXphdGlvbiByZXF1aXJlbWVudHMgd2lsbCBhcHBseSB0bwordGhlIGhpZ2ggc3BlZWQgZnBzIHJhbmdlcyw8d2JyLz4gdGhlIHNhbWUgYXMgYWxsIG90aGVyIGZwcyByYW5nZXMuPHdici8+IFRoaXMgY2FwYWJpbGl0eSBkZXNjcmliZXMKK3RoZSBjYXBhYmlsaXR5IG9mIGEgc3BlY2lhbGl6ZWQgb3BlcmF0aW5nIG1vZGUgd2l0aCBtYW55IGxpbWl0YXRpb25zIChzZWUgYmVsb3cpLDx3YnIvPiB3aGljaAoraXMgb25seSB0YXJnZXRlZCBhdCBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZy48d2JyLz48L3A+Cis8cD5UaGUgc3VwcG9ydGVkIGhpZ2ggc3BlZWQgdmlkZW8gc2l6ZXMgYW5kIGZwcyByYW5nZXMgYXJlIHNwZWNpZmllZCBpbgorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hTcGVlZFZpZGVvRnBzUmFuZ2VzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvRnBzUmFuZ2VzPC9hPi48d2JyLz4KK1RvIGdldCBkZXNpcmVkIG91dHB1dCBmcmFtZSByYXRlcyw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIGlzIG9ubHkgYWxsb3dlZCB0byBzZWxlY3QgdmlkZW8gc2l6ZQorYW5kIEZQUyByYW5nZSBjb21iaW5hdGlvbnMgcHJvdmlkZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoU3BlZWRWaWRlb1NpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvU2l6ZXM8L2E+Ljx3YnIvPgorVGhlIGZwcyByYW5nZSBjYW4gYmUgY29udHJvbGxlZCB2aWEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZTwvYT4uPHdici8+PC9wPgorPHA+SW4gdGhpcyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlIGFlTW9kZSw8d2JyLz4gYXdiTW9kZSw8d2JyLz4gYW5kIGFmTW9kZSB0bworT04sPHdici8+IEFVVE8sPHdici8+IGFuZCBDT05USU5VT1VTXzx3YnIvPlZJREVPLDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IEFsbCBwb3N0LXByb2Nlc3NpbmcgYmxvY2sgbW9kZQorY29udHJvbHMgd2lsbCBiZSBvdmVycmlkZGVuIHRvIGJlIEZBU1QuPHdici8+IFRoZXJlZm9yZSw8d2JyLz4gbm8gbWFudWFsIGNvbnRyb2wgb2YgY2FwdHVyZQorYW5kIHBvc3QtcHJvY2Vzc2luZyBwYXJhbWV0ZXJzIGlzIHBvc3NpYmxlLjx3YnIvPiBBbGwgb3RoZXIgY29udHJvbHMgb3BlcmF0ZSB0aGUKK3NhbWUgYXMgd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBBVVRPLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYWxsIG90aGVyCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBmaWVsZHMgY29udGludWUgdG8gd29yayw8d2JyLz4gc3VjaCBhczwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT48L2xpPgorPC91bD4KKzxwPk91dHNpZGUgb2YgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiosPHdici8+IHRoZSBmb2xsb3dpbmcgY29udHJvbHMgd2lsbCB3b3JrOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IChUT1JDSCBtb2RlIG9ubHksPHdici8+IGF1dG9tYXRpYyBmbGFzaCBmb3Igc3RpbGwgY2FwdHVyZSB3aWxsIG5vdAord29yayBzaW5jZSBhZU1vZGUgaXMgT04pPC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gKGlmIGl0IGlzIHN1cHBvcnRlZCk8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiAoaWYgaXQgaXMgc3VwcG9ydGVkKTwvbGk+Cis8L3VsPgorPHA+Rm9yIGhpZ2ggc3BlZWQgcmVjb3JkaW5nIHVzZSBjYXNlLDx3YnIvPiB0aGUgYWN0dWFsIG1heGltdW0gc3VwcG9ydGVkIGZyYW1lIHJhdGUgbWF5CitiZSBsb3dlciB0aGFuIHdoYXQgY2FtZXJhIGNhbiBvdXRwdXQsPHdici8+IGRlcGVuZGluZyBvbiB0aGUgZGVzdGluYXRpb24gU3VyZmFjZXMgZm9yCit0aGUgaW1hZ2UgZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBkZXN0aW5hdGlvbiBzdXJmYWNlIGlzIGZyb20gdmlkZW8gZW5jb2Rlciw8d2JyLz4KK3RoZSBhcHBsaWNhdGlvbiBuZWVkIGNoZWNrIGlmIHRoZSB2aWRlbyBlbmNvZGVyIGlzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyB0aGUKK2hpZ2ggZnJhbWUgcmF0ZSBmb3IgYSBnaXZlbiB2aWRlbyBzaXplLDx3YnIvPiBvciBpdCB3aWxsIGVuZCB1cCB3aXRoIGxvd2VyIHJlY29yZGluZworZnJhbWUgcmF0ZS48d2JyLz4gSWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSBwcmV2aWV3IHdpbmRvdyw8d2JyLz4gdGhlIGFjdHVhbCBwcmV2aWV3IGZyYW1lCityYXRlIHdpbGwgYmUgYm91bmRlZCBieSB0aGUgc2NyZWVuIHJlZnJlc2ggcmF0ZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG9ubHkgc3VwcG9ydCB1cCB0byAyIGhpZ2ggc3BlZWQgc2ltdWx0YW5lb3VzIG91dHB1dCBzdXJmYWNlcworKHByZXZpZXcgYW5kIHJlY29yZGluZyBzdXJmYWNlcykKK2luIHRoaXMgbW9kZS48d2JyLz4gQWJvdmUgY29udHJvbHMgd2lsbCBiZSBlZmZlY3RpdmUgb25seSBpZiBhbGwgb2YgYmVsb3cgY29uZGl0aW9ucyBhcmUgdHJ1ZTo8L3A+Cis8dWw+Cis8bGk+VGhlIGFwcGxpY2F0aW9uIGNyZWF0ZXMgYSBjYW1lcmEgY2FwdHVyZSBzZXNzaW9uIHdpdGggbm8gbW9yZSB0aGFuIDIgc3VyZmFjZXMgdmlhCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPi48d2JyLz4gVGhlCit0YXJnZXRlZCBzdXJmYWNlcyBtdXN0IGJlIHByZXZpZXcgc3VyZmFjZSAoZWl0aGVyIGZyb20KKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL3ZpZXcvU3VyZmFjZVZpZXcuaHRtbCI+U3VyZmFjZVZpZXc8L2E+IG9yIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL1N1cmZhY2VUZXh0dXJlLmh0bWwiPlN1cmZhY2VUZXh0dXJlPC9hPikgb3IKK3JlY29yZGluZyBzdXJmYWNlKGVpdGhlciBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL01lZGlhUmVjb3JkZXIuaHRtbCNnZXRTdXJmYWNlIj5NZWRpYVJlY29yZGVyI2dldFN1cmZhY2U8L2E+IG9yCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9NZWRpYUNvZGVjLmh0bWwjY3JlYXRlSW5wdXRTdXJmYWNlIj5NZWRpYUNvZGVjI2NyZWF0ZUlucHV0U3VyZmFjZTwvYT4pLjx3YnIvPjwvbGk+Cis8bGk+VGhlIHN0cmVhbSBzaXplcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc2l6ZXMgcmVwb3J0ZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoU3BlZWRWaWRlb1NpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvU2l6ZXM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+VGhlIEZQUyByYW5nZXMgYXJlIHNlbGVjdGVkIGZyb20KKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoU3BlZWRWaWRlb0Zwc1JhbmdlcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRIaWdoU3BlZWRWaWRlb0Zwc1JhbmdlczwvYT4uPHdici8+PC9saT4KKzwvdWw+Cis8cD5XaGVuIGFib3ZlIGNvbmRpdGlvbnMgYXJlIE5PVCBzYXRpc3RpZWQsPHdici8+Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPgord2lsbCBmYWlsLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyB0byBhIEZQUyByYW5nZSB0aGF0IGhhcyBkaWZmZXJlbnQgbWF4aW11bSBGUFMgbWF5IHRyaWdnZXIgc29tZSBjYW1lcmEgZGV2aWNlCityZWNvbmZpZ3VyYXRpb25zLDx3YnIvPiB3aGljaCBtYXkgaW50cm9kdWNlIGV4dHJhIGxhdGVuY3kuPHdici8+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQKK3RoZSBhcHBsaWNhdGlvbiBhdm9pZHMgdW5uZWNlc3NhcnkgbWF4aW11bSB0YXJnZXQgRlBTIGNoYW5nZXMgYXMgbXVjaCBhcyBwb3NzaWJsZQorZHVyaW5nIGhpZ2ggc3BlZWQgc3RyZWFtaW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgY2FwYWJpbGl0aWVzIHRoYXQgdGhpcyBjYW1lcmEgZGV2aWNlCithZHZlcnRpc2VzIGFzIGZ1bGx5IHN1cHBvcnRpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBjYXBhYmlsaXR5IGlzIGEgY29udHJhY3QgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBtYWtlcyBpbiBvcmRlcgordG8gYmUgYWJsZSB0byBzYXRpc2Z5IG9uZSBvciBtb3JlIHVzZSBjYXNlcy48d2JyLz48L3A+Cis8cD5MaXN0aW5nIGEgY2FwYWJpbGl0eSBndWFyYW50ZWVzIHRoYXQgdGhlIHdob2xlIHNldCBvZiBmZWF0dXJlcworcmVxdWlyZWQgdG8gc3VwcG9ydCBhIGNvbW1vbiB1c2Ugd2lsbCBhbGwgYmUgYXZhaWxhYmxlLjx3YnIvPjwvcD4KKzxwPlVzaW5nIGEgc3Vic2V0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IGFuIHVuc3VwcG9ydGVkCitjYXBhYmlsaXR5IG1heSBiZSBwb3NzaWJsZSBvbiBhIHNwZWNpZmljIGNhbWVyYSBkZXZpY2UgaW1wbGVtZW50YXRpb247Cit0byBkbyB0aGlzIHF1ZXJ5IGVhY2ggb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVxdWVzdEtleXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXF1ZXN0PHdici8+S2V5czwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+UmVzdWx0PHdici8+S2V5czwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDaGFyYWN0ZXJpc3RpY3NLZXlzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2hhcmFjdGVyaXN0aWNzPHdici8+S2V5czwvYT4uPHdici8+PC9wPgorPHA+VGhlIGZvbGxvd2luZyBjYXBhYmlsaXRpZXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgYXZhaWxhYmxlIG9uCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPGNvZGU+PT08L2NvZGU+IEZVTEwgZGV2aWNlczo8L3A+Cis8dWw+Cis8bGk+TUFOVUFMXzx3YnIvPlNFTlNPUjwvbGk+Cis8bGk+TUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORzwvbGk+Cis8L3VsPgorPHA+T3RoZXIgY2FwYWJpbGl0aWVzIG1heSBiZSBhdmFpbGFibGUgb24gZWl0aGVyIEZVTEwgb3IgTElNSVRFRAorZGV2aWNlcyw8d2JyLz4gYnV0IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgcXVlcnkgdGhpcyBrZXkgdG8gYmUgc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFkZGl0aW9uYWwgY29uc3RyYWludCBkZXRhaWxzIHBlci1jYXBhYmlsaXR5IHdpbGwgYmUgYXZhaWxhYmxlCitpbiB0aGUgQ29tcGF0aWJpbGl0eSBUZXN0IFN1aXRlLjx3YnIvPjwvcD4KKzxwPk1pbmltdW0gYmFzZWxpbmUgcmVxdWlyZW1lbnRzIHJlcXVpcmVkIGZvciB0aGUKK0JBQ0tXQVJEXzx3YnIvPkNPTVBBVElCTEUgY2FwYWJpbGl0eSBhcmUgbm90IGV4cGxpY2l0bHkgbGlzdGVkLjx3YnIvPgorSW5zdGVhZCByZWZlciB0byAiQkMiIHRhZ3MgYW5kIHRoZSBjYW1lcmEgQ1RTIHRlc3RzIGluIHRoZQorYW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5jYW1lcmEyLjx3YnIvPmN0cyBwYWNrYWdlLjx3YnIvPjwvcD4KKzxwPkxpc3RlZCBjb250cm9scyB0aGF0IGNhbiBiZSBlaXRoZXIgcmVxdWVzdCBvciByZXN1bHQgKGUuPHdici8+Zy48d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4pIG11c3QgYmUgYXZhaWxhYmxlIGJvdGggaW4gdGhlCityZXF1ZXN0IGFuZCB0aGUgcmVzdWx0IGluIG9yZGVyIHRvIGJlIGNvbnNpZGVyZWQgdG8gYmUKK2NhcGFiaWxpdHktY29tcGxpYW50Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgSEFMIGNsYWltcyB0byBzdXBwb3J0IE1BTlVBTCBjb250cm9sLDx3YnIvPgordGhlbiBleHBvc3VyZSB0aW1lIG11c3QgYmUgY29uZmlndXJhYmxlIHZpYSB0aGUgcmVxdWVzdCA8ZW0+YW5kPC9lbT4KK3RoZSBhY3R1YWwgZXhwb3N1cmUgYXBwbGllZCBtdXN0IGJlIGF2YWlsYWJsZSB2aWEKK3RoZSByZXN1bHQuPHdici8+PC9wPgorPHA+SWYgTUFOVUFMXzx3YnIvPlNFTlNPUiBpcyBvbWl0dGVkLDx3YnIvPiB0aGUgSEFMIG1heSBjaG9vc2UgdG8gb21pdCB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1pbjx3YnIvPkZyYW1lPHdici8+RHVyYXRpb25zPC9hPiBzdGF0aWMgcHJvcGVydHkgZW50aXJlbHkuPHdici8+PC9wPgorPHA+Rm9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGFuZCBZVVZfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcyw8d2JyLz4gc2VlCitoYXJkd2FyZS88d2JyLz5saWJoYXJkd2FyZS88d2JyLz5pbmNsdWRlLzx3YnIvPmhhcmR3YXJlLzx3YnIvPmNhbWVyYTMuPHdici8+aCBTZWN0aW9uIDEwIGZvciBtb3JlIGluZm9ybWF0aW9uLjx3YnIvPjwvcD4KKzxwPkRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+U0VOU09SIGNhcGFiaWxpdHkgbXVzdCBzdXBwb3J0IHRoZQorQ0FNRVJBM188d2JyLz5URU1QTEFURV88d2JyLz5NQU5VQUwgdGVtcGxhdGUgZGVmaW5lZCBpbiBjYW1lcmEzLjx3YnIvPmguPHdici8+PC9wPgorPHA+RGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdHkgb3IgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdHkgbXVzdCBzdXBwb3J0IHRoZQorQ0FNRVJBM188d2JyLz5URU1QTEFURV88d2JyLz5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIHRlbXBsYXRlIGRlZmluZWQgaW4gY2FtZXJhMy48d2JyLz5oLjx3YnIvPjwvcD4KKzxwPkZvciBERVBUSF88d2JyLz5PVVRQVVQsPHdici8+IHRoZSBkZXB0aC1mb3JtYXQga2V5cworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+YXZhaWxhYmxlPHdici8+RGVwdGg8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPk1pbjx3YnIvPkZyYW1lPHdici8+RHVyYXRpb25zPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+IG11c3QgYmUgYXZhaWxhYmxlLDx3YnIvPiBpbgorYWRkaXRpb24gdG8gdGhlIG90aGVyIGtleXMgZXhwbGljaXRseSBtZW50aW9uZWQgaW4gdGhlIERFUFRIXzx3YnIvPk9VVFBVVAorZW51bSBub3Rlcy48d2JyLz4gVGhlIGVudHJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5tYXhEZXB0aFNhbXBsZXMiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+bWF4PHdici8+RGVwdGg8d2JyLz5TYW1wbGVzPC9hPiBtdXN0IGJlIGF2YWlsYWJsZQoraWYgdGhlIERFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEIGZvcm1hdCBpcyBzdXBwb3J0ZWQgKEhBTCBwaXhlbCBmb3JtYXQgQkxPQiw8d2JyLz4gZGF0YXNwYWNlCitERVBUSCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXF1ZXN0S2V5cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+UmVxdWVzdDx3YnIvPktleXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbGlzdCBvZiBhbGwga2V5cyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhdmFpbGFibGUKK3RvIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlcXVlc3QuaHRtbCI+Q2FwdHVyZVJlcXVlc3Q8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkF0dGVtcHRpbmcgdG8gc2V0IGEga2V5IGludG8gYSBDYXB0dXJlUmVxdWVzdCB0aGF0IGlzIG5vdAorbGlzdGVkIGhlcmUgd2lsbCByZXN1bHQgaW4gYW4gaW52YWxpZCByZXF1ZXN0IGFuZCB3aWxsIGJlIHJlamVjdGVkCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHF1ZXJ5IHRoZSBmZWF0dXJlIHNldCBvZiBhIGNhbWVyYSBkZXZpY2UKK2F0IGEgbW9yZSBncmFudWxhciBsZXZlbCB0aGFuIGNhcGFiaWxpdGllcy48d2JyLz4gVGhpcyBpcyBlc3BlY2lhbGx5CitpbXBvcnRhbnQgZm9yIG9wdGlvbmFsIGtleXMgdGhhdCBhcmUgbm90IGxpc3RlZCB1bmRlciBhbnkgY2FwYWJpbGl0eQoraW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlZlbmRvciB0YWdzIG11c3Qgbm90IGJlIGxpc3RlZCBoZXJlLjx3YnIvPiBVc2UgdGhlIHZlbmRvciB0YWcgbWV0YWRhdGEKK2V4dGVuc2lvbnMgQyBhcGkgaW5zdGVhZCAocmVmZXIgdG8gY2FtZXJhMy48d2JyLz5oIGZvciBtb3JlIGRldGFpbHMpLjx3YnIvPjwvcD4KKzxwPlNldHRpbmcvPHdici8+Z2V0dGluZyB2ZW5kb3IgdGFncyB3aWxsIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgbWV0YWRhdGEKK3ZlbmRvciBleHRlbnNpb25zIEFQSSBhbmQgbm90IGFnYWluc3QgdGhpcyBmaWVsZC48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG11c3Qgbm90IGNvbnN1bWUgYW55IHJlcXVlc3QgdGFncyB0aGF0IGFyZSBub3QgbGlzdGVkIGVpdGhlcgoraGVyZSBvciBpbiB0aGUgdmVuZG9yIHRhZyBsaXN0Ljx3YnIvPjwvcD4KKzxwPlRoZSBwdWJsaWMgY2FtZXJhMiBBUEkgd2lsbCBhbHdheXMgbWFrZSB0aGUgdmVuZG9yIHRhZ3MgdmlzaWJsZQordmlhCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNoYXJhY3RlcmlzdGljcy5odG1sI2dldEF2YWlsYWJsZUNhcHR1cmVSZXF1ZXN0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEF2YWlsYWJsZUNhcHR1cmVSZXF1ZXN0S2V5czwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXN1bHQ8d2JyLz5LZXlzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGxpc3Qgb2YgYWxsIGtleXMgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBoYXMgYXZhaWxhYmxlCit0byB1c2Ugd2l0aCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhcHR1cmVSZXN1bHQuaHRtbCI+Q2FwdHVyZVJlc3VsdDwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QXR0ZW1wdGluZyB0byBnZXQgYSBrZXkgZnJvbSBhIENhcHR1cmVSZXN1bHQgdGhhdCBpcyBub3QKK2xpc3RlZCBoZXJlIHdpbGwgYWx3YXlzIHJldHVybiBhIDxjb2RlPm51bGw8L2NvZGU+IHZhbHVlLjx3YnIvPiBHZXR0aW5nIGEga2V5IGZyb20KK2EgQ2FwdHVyZVJlc3VsdCB0aGF0IGlzIGxpc3RlZCBoZXJlIHdpbGwgZ2VuZXJhbGx5IG5ldmVyIHJldHVybiBhIDxjb2RlPm51bGw8L2NvZGU+Cit2YWx1ZS48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIGtleXMgbWF5IHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiB1bmxlc3MgdGhleSBhcmUgZW5hYmxlZDo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8L2E+IChub24tbnVsbCBpZmYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGU8L2E+ID09IE9OKTwvbGk+Cis8L3VsPgorPHA+KFRob3NlIHNvbWV0aW1lcy1udWxsIGtleXMgd2lsbCBuZXZlcnRoZWxlc3MgYmUgbGlzdGVkIGhlcmUKK2lmIHRoZXkgYXJlIGF2YWlsYWJsZS48d2JyLz4pPC9wPgorPHA+VGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBxdWVyeSB0aGUgZmVhdHVyZSBzZXQgb2YgYSBjYW1lcmEgZGV2aWNlCithdCBhIG1vcmUgZ3JhbnVsYXIgbGV2ZWwgdGhhbiBjYXBhYmlsaXRpZXMuPHdici8+IFRoaXMgaXMgZXNwZWNpYWxseQoraW1wb3J0YW50IGZvciBvcHRpb25hbCBrZXlzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgdW5kZXIgYW55IGNhcGFiaWxpdHkKK2luIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UYWdzIGxpc3RlZCBoZXJlIG11c3QgYWx3YXlzIGhhdmUgYW4gZW50cnkgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YSw8d2JyLz4KK2V2ZW4gaWYgdGhhdCBzaXplIGlzIDAgZWxlbWVudHMuPHdici8+IE9ubHkgYXJyYXktdHlwZSB0YWdzIChlLjx3YnIvPmcuPHdici8+IGxpc3RzLDx3YnIvPgorbWF0cmljZXMsPHdici8+IHN0cmluZ3MpIGFyZSBhbGxvd2VkIHRvIGhhdmUgMCBlbGVtZW50cy48d2JyLz48L3A+Cis8cD5WZW5kb3IgdGFncyBtdXN0IG5vdCBiZSBsaXN0ZWQgaGVyZS48d2JyLz4gVXNlIHRoZSB2ZW5kb3IgdGFnIG1ldGFkYXRhCitleHRlbnNpb25zIEMgYXBpIGluc3RlYWQgKHJlZmVyIHRvIGNhbWVyYTMuPHdici8+aCBmb3IgbW9yZSBkZXRhaWxzKS48d2JyLz48L3A+Cis8cD5TZXR0aW5nLzx3YnIvPmdldHRpbmcgdmVuZG9yIHRhZ3Mgd2lsbCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIG1ldGFkYXRhCit2ZW5kb3IgZXh0ZW5zaW9ucyBBUEkgYW5kIG5vdCBhZ2FpbnN0IHRoaXMgZmllbGQuPHdici8+PC9wPgorPHA+VGhlIEhBTCBtdXN0IG5vdCBwcm9kdWNlIGFueSByZXN1bHQgdGFncyB0aGF0IGFyZSBub3QgbGlzdGVkIGVpdGhlcgoraGVyZSBvciBpbiB0aGUgdmVuZG9yIHRhZyBsaXN0Ljx3YnIvPjwvcD4KKzxwPlRoZSBwdWJsaWMgY2FtZXJhMiBBUEkgd2lsbCBhbHdheXMgbWFrZSB0aGUgdmVuZG9yIHRhZ3MgdmlzaWJsZSB2aWEgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCNnZXRBdmFpbGFibGVDYXB0dXJlUmVzdWx0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEF2YWlsYWJsZUNhcHR1cmVSZXN1bHRLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNoYXJhY3RlcmlzdGljc0tleXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNoYXJhY3RlcmlzdGljczx3YnIvPktleXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbGlzdCBvZiBhbGwga2V5cyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhdmFpbGFibGUKK3RvIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwiPkNhbWVyYUNoYXJhY3RlcmlzdGljczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBmb2xsb3dzIHRoZSBzYW1lIHJ1bGVzIGFzCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+UmVzdWx0PHdici8+S2V5czwvYT4gKGV4Y2VwdCB0aGF0IGl0IGFwcGxpZXMgZm9yCitDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgaW5zdGVhZCBvZiBDYXB0dXJlUmVzdWx0KS48d2JyLz4gU2VlIGFib3ZlIGZvciBtb3JlCitkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+S2V5cyBsaXN0ZWQgaGVyZSBtdXN0IGFsd2F5cyBoYXZlIGFuIGVudHJ5IGluIHRoZSBzdGF0aWMgaW5mbyBtZXRhZGF0YSw8d2JyLz4KK2V2ZW4gaWYgdGhhdCBzaXplIGlzIDAgZWxlbWVudHMuPHdici8+IE9ubHkgYXJyYXktdHlwZSB0YWdzIChlLjx3YnIvPmcuPHdici8+IGxpc3RzLDx3YnIvPgorbWF0cmljZXMsPHdici8+IHN0cmluZ3MpIGFyZSBhbGxvd2VkIHRvIGhhdmUgMCBlbGVtZW50cy48d2JyLz48L3A+Cis8cD5WZW5kb3IgdGFncyBtdXN0IG5vdCBiZSBsaXN0ZWQgaGVyZS48d2JyLz4gVXNlIHRoZSB2ZW5kb3IgdGFnIG1ldGFkYXRhCitleHRlbnNpb25zIEMgYXBpIGluc3RlYWQgKHJlZmVyIHRvIGNhbWVyYTMuPHdici8+aCBmb3IgbW9yZSBkZXRhaWxzKS48d2JyLz48L3A+Cis8cD5TZXR0aW5nLzx3YnIvPmdldHRpbmcgdmVuZG9yIHRhZ3Mgd2lsbCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIG1ldGFkYXRhCit2ZW5kb3IgZXh0ZW5zaW9ucyBBUEkgYW5kIG5vdCBhZ2FpbnN0IHRoaXMgZmllbGQuPHdici8+PC9wPgorPHA+VGhlIEhBTCBtdXN0IG5vdCBoYXZlIGFueSB0YWdzIGluIGl0cyBzdGF0aWMgaW5mbyB0aGF0IGFyZSBub3QgbGlzdGVkCitlaXRoZXIgaGVyZSBvciBpbiB0aGUgdmVuZG9yIHRhZyBsaXN0Ljx3YnIvPjwvcD4KKzxwPlRoZSBwdWJsaWMgY2FtZXJhMiBBUEkgd2lsbCBhbHdheXMgbWFrZSB0aGUgdmVuZG9yIHRhZ3MgdmlzaWJsZQordmlhIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwjZ2V0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEtleXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+ZnJhbWU8d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBmcmFtZSBjb3VudGVyIHNldCBieSB0aGUgZnJhbWV3b3JrLjx3YnIvPiBUaGlzIHZhbHVlIG1vbm90b25pY2FsbHkKK2luY3JlYXNlcyB3aXRoIGV2ZXJ5IG5ldyByZXN1bHQgKHRoYXQgaXMsPHdici8+IGVhY2ggbmV3IHJlc3VsdCBoYXMgYSB1bmlxdWUKK2ZyYW1lQ291bnQgdmFsdWUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBjb3VudCBvZiBmcmFtZXMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD4mZ3Q7IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlJlc2V0IG9uIHJlbGVhc2UoKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuaWQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmlkCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BbiBhcHBsaWNhdGlvbi1zcGVjaWZpZWQgSUQgZm9yIHRoZSBjdXJyZW50CityZXF1ZXN0Ljx3YnIvPiBNdXN0IGJlIG1haW50YWluZWQgdW5jaGFuZ2VkIGluIG91dHB1dAorZnJhbWU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgYXJiaXRyYXJ5IGludGVnZXIgYXNzaWduZWQgYnkgYXBwbGljYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgaW50PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWV0YWRhdGE8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5PTkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIG1ldGFkYXRhIHNob3VsZCBiZSBwcm9kdWNlZCBvbiBvdXRwdXQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGxpY2F0aW9uLWJvdW5kIGJ1ZmZlciBkYXRhLjx3YnIvPiBJZiBubworYXBwbGljYXRpb24tYm91bmQgc3RyZWFtcyBleGlzdCw8d2JyLz4gbm8gZnJhbWUgc2hvdWxkIGJlCitwbGFjZWQgaW4gdGhlIG91dHB1dCBmcmFtZSBxdWV1ZS48d2JyLz4gSWYgc3VjaCBzdHJlYW1zCitleGlzdCw8d2JyLz4gYSBmcmFtZSBzaG91bGQgYmUgcGxhY2VkIG9uIHRoZSBvdXRwdXQgcXVldWUKK3dpdGggbnVsbCBtZXRhZGF0YSBidXQgd2l0aCB0aGUgbmVjZXNzYXJ5IG91dHB1dCBidWZmZXIKK2luZm9ybWF0aW9uLjx3YnIvPiBUaW1lc3RhbXAgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlCitpbmNsdWRlZCB3aXRoIGFueSBvdXRwdXQgc3RyZWFtIGJ1ZmZlcnM8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GVUxMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbGwgbWV0YWRhdGEgc2hvdWxkIGJlIHByb2R1Y2VkLjx3YnIvPiBTdGF0aXN0aWNzIHdpbGwKK29ubHkgYmUgcHJvZHVjZWQgaWYgdGhleSBhcmUgc2VwYXJhdGVseQorZW5hYmxlZDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkhvdyBtdWNoIG1ldGFkYXRhIHRvIHByb2R1Y2Ugb24KK291dHB1dDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5vdXRwdXQ8d2JyLz5TdHJlYW1zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0cyB3aGljaCBjYW1lcmEgb3V0cHV0IHN0cmVhbXMgaW1hZ2UgZGF0YQorZnJvbSB0aGlzIGNhcHR1cmUgbXVzdCBiZSBzZW50IHRvPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIExpc3Qgb2YgY2FtZXJhIHN0cmVhbSBJRHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5MaXN0IG11c3Qgb25seSBpbmNsdWRlIHN0cmVhbXMgdGhhdCBoYXZlIGJlZW4KK2NyZWF0ZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIG91dHB1dCBzdHJlYW1zIGFyZSBsaXN0ZWQsPHdici8+IHRoZW4gdGhlIGltYWdlCitkYXRhIHNob3VsZCBzaW1wbHkgYmUgZGlzY2FyZGVkLjx3YnIvPiBUaGUgaW1hZ2UgZGF0YSBtdXN0CitzdGlsbCBiZSBjYXB0dXJlZCBmb3IgbWV0YWRhdGEgYW5kIHN0YXRpc3RpY3MgcHJvZHVjdGlvbiw8d2JyLz4KK2FuZCB0aGUgbGVucyBhbmQgZmxhc2ggbXVzdCBvcGVyYXRlIGFzIHJlcXVlc3RlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBpcGVsaW5lPHdici8+RGVwdGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwaXBlbGluZSBzdGFnZXMgdGhlIGZyYW1lIHdlbnQKK3Rocm91Z2ggZnJvbSB3aGVuIGl0IHdhcyBleHBvc2VkIHRvIHdoZW4gdGhlIGZpbmFsIGNvbXBsZXRlZCByZXN1bHQKK3dhcyBhdmFpbGFibGUgdG8gdGhlIGZyYW1ld29yay48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+cGlwZWxpbmU8d2JyLz5NYXg8d2JyLz5EZXB0aDwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkRlcGVuZGluZyBvbiB3aGF0IHNldHRpbmdzIGFyZSB1c2VkIGluIHRoZSByZXF1ZXN0LDx3YnIvPiBhbmQKK3doYXQgc3RyZWFtcyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIGRhdGEgbWF5IHVuZGVyZ28gbGVzcyBwcm9jZXNzaW5nLDx3YnIvPgorYW5kIHNvbWUgcGlwZWxpbmUgc3RhZ2VzIHNraXBwZWQuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPk1heDx3YnIvPkRlcHRoPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBtdXN0IGFsd2F5cyByZXByZXNlbnQgdGhlIGFjY3VyYXRlIGNvdW50IG9mIGhvdyBtYW55CitwaXBlbGluZSBzdGFnZXMgd2VyZSBhY3R1YWxseSB1c2VkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3NjYWxlciIgY2xhc3M9InNlY3Rpb24iPnNjYWxlcjwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHJlZ2lvbiBvZiB0aGUgc2Vuc29yIHRvIHJlYWQgb3V0IGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvCisgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBjYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgZGlnaXRhbCB6b29tLjx3YnIvPjwvcD4KKzxwPlRoZSBjcm9wIHJlZ2lvbiBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvZmYKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gd2l0aCA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGJlaW5nIHRoZQordG9wLWxlZnQgY29ybmVyIG9mIHRoZSBzZW5zb3IgYWN0aXZlIGFycmF5Ljx3YnIvPjwvcD4KKzxwPk91dHB1dCBzdHJlYW1zIHVzZSB0aGlzIHJlY3RhbmdsZSB0byBwcm9kdWNlIHRoZWlyIG91dHB1dCw8d2JyLz4KK2Nyb3BwaW5nIHRvIGEgc21hbGxlciByZWdpb24gaWYgbmVjZXNzYXJ5IHRvIG1haW50YWluIHRoZQorc3RyZWFtJ3MgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGVuIHNjYWxpbmcgdGhlIHNlbnNvciBpbnB1dCB0bworbWF0Y2ggdGhlIG91dHB1dCdzIGNvbmZpZ3VyZWQgcmVzb2x1dGlvbi48d2JyLz48L3A+Cis8cD5UaGUgY3JvcCByZWdpb24gaXMgYXBwbGllZCBhZnRlciB0aGUgUkFXIHRvIG90aGVyIGNvbG9yCitzcGFjZSAoZS48d2JyLz5nLjx3YnIvPiBZVVYpIGNvbnZlcnNpb24uPHdici8+IFNpbmNlIHJhdyBzdHJlYW1zCisoZS48d2JyLz5nLjx3YnIvPiBSQVcxNikgZG9uJ3QgaGF2ZSB0aGUgY29udmVyc2lvbiBzdGFnZSw8d2JyLz4gdGhleSBhcmUgbm90Citjcm9wcGFibGUuPHdici8+IFRoZSBjcm9wIHJlZ2lvbiB3aWxsIGJlIGlnbm9yZWQgYnkgcmF3IHN0cmVhbXMuPHdici8+PC9wPgorPHA+Rm9yIG5vbi1yYXcgc3RyZWFtcyw8d2JyLz4gYW55IGFkZGl0aW9uYWwgcGVyLXN0cmVhbSBjcm9wcGluZyB3aWxsCitiZSBkb25lIHRvIG1heGltaXplIHRoZSBmaW5hbCBwaXhlbCBhcmVhIG9mIHRoZSBzdHJlYW0uPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBjcm9wIHJlZ2lvbiBpcyBzZXQgdG8gYSA0OjMgYXNwZWN0CityYXRpbyw8d2JyLz4gdGhlbiA0OjMgc3RyZWFtcyB3aWxsIHVzZSB0aGUgZXhhY3QgY3JvcAorcmVnaW9uLjx3YnIvPiAxNjo5IHN0cmVhbXMgd2lsbCBmdXJ0aGVyIGNyb3AgdmVydGljYWxseQorKGxldHRlcmJveCkuPHdici8+PC9wPgorPHA+Q29udmVyc2VseSw8d2JyLz4gaWYgdGhlIGNyb3AgcmVnaW9uIGlzIHNldCB0byBhIDE2OjksPHdici8+IHRoZW4gNDozCitvdXRwdXRzIHdpbGwgY3JvcCBob3Jpem9udGFsbHkgKHBpbGxhcmJveCksPHdici8+IGFuZCAxNjo5CitzdHJlYW1zIHdpbGwgbWF0Y2ggZXhhY3RseS48d2JyLz4gVGhlc2UgYWRkaXRpb25hbCBjcm9wcyB3aWxsCitiZSBjZW50ZXJlZCB3aXRoaW4gdGhlIGNyb3AgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBjcm9wIHJlZ2lvbiBjYW5ub3QKK2JlIHNldCB0byBiZSBzbWFsbGVyIHRoYW4KKzxjb2RlPmZsb29yKCBhY3RpdmVBcnJheVNpemUuPHdici8+d2lkdGggLzx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NYXg8d2JyLz5EaWdpdGFsPHdici8+Wm9vbTwvYT4gKTwvY29kZT4gYW5kCis8Y29kZT5mbG9vciggYWN0aXZlQXJyYXlTaXplLjx3YnIvPmhlaWdodCAvPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1heDx3YnIvPkRpZ2l0YWw8d2JyLz5ab29tPC9hPiApPC9jb2RlPiw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIG1heSBhZGp1c3QgdGhlIGNyb3AgcmVnaW9uIHRvIGFjY291bnQKK2ZvciByb3VuZGluZyBhbmQgb3RoZXIgaGFyZHdhcmUgcmVxdWlyZW1lbnRzOyB0aGUgZmluYWwKK2Nyb3AgcmVnaW9uIHVzZWQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0IGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBvdXRwdXQgc3RyZWFtcyBtdXN0IG1haW50YWluIHNxdWFyZSBwaXhlbHMgYXQgYWxsCit0aW1lcyw8d2JyLz4gbm8gbWF0dGVyIHdoYXQgdGhlIHJlbGF0aXZlIGFzcGVjdCByYXRpb3Mgb2YgdGhlCitjcm9wIHJlZ2lvbiBhbmQgdGhlIHN0cmVhbSBhcmUuPHdici8+ICBOZWdhdGl2ZSB2YWx1ZXMgZm9yCitjb3JuZXIgYXJlIGFsbG93ZWQgZm9yIHJhdyBvdXRwdXQgaWYgZnVsbCBwaXhlbCBhcnJheSBpcworbGFyZ2VyIHRoYW4gYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPiBXaWR0aCBhbmQgaGVpZ2h0IG1heSBiZQorcm91bmRlZCB0byBuZWFyZXN0IGxhcmdlciBzdXBwb3J0YWJsZSB3aWR0aCw8d2JyLz4gZXNwZWNpYWxseQorZm9yIHJhdyBvdXRwdXQsPHdici8+IHdoZXJlIG9ubHkgYSBmZXcgZml4ZWQgc2NhbGVzIG1heSBiZQorcG9zc2libGUuPHdici8+PC9wPgorPHA+Rm9yIGEgc2V0IG9mIG91dHB1dCBzdHJlYW1zIGNvbmZpZ3VyZWQsPHdici8+IGlmIHRoZSBzZW5zb3Igb3V0cHV0IGlzIGNyb3BwZWQgdG8gYSBzbWFsbGVyCitzaXplIHRoYW4gYWN0aXZlIGFycmF5IHNpemUsPHdici8+IHRoZSBIQUwgbmVlZCBmb2xsb3cgYmVsb3cgY3JvcHBpbmcgcnVsZXM6PC9wPgorPHVsPgorPGxpPgorPHA+VGhlIEhBTCBuZWVkIGhhbmRsZSB0aGUgY3JvcFJlZ2lvbiBhcyBpZiB0aGUgc2Vuc29yIGNyb3Agc2l6ZSBpcyB0aGUgZWZmZWN0aXZlIGFjdGl2ZQorYXJyYXkgc2l6ZS48d2JyLz5Nb3JlIHNwZWNpZmljYWxseSw8d2JyLz4gdGhlIEhBTCBtdXN0IHRyYW5zZm9ybSB0aGUgcmVxdWVzdCBjcm9wUmVnaW9uIGZyb20KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiB0byB0aGUgc2Vuc29yIGNyb3BwZWQgcGl4ZWwgYXJlYSBzaXplIGluIHRoaXMgd2F5OjwvcD4KKzxvbD4KKzxsaT5UcmFuc2xhdGUgdGhlIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHcuPHdici8+ci48d2JyLz50Liw8d2JyLz4gdGhlIGxlZnQgdG9wIGNvcm5lciBvZiB0aGUgc2Vuc29yCitjcm9wcGVkIHBpeGVsIGFyZWEgYnkgKHR4LDx3YnIvPiB0eSksPHdici8+Cit3aGVyZSA8Y29kZT50eCA9IHNlbnNvckNyb3AuPHdici8+dG9wICogKHNlbnNvckNyb3AuPHdici8+aGVpZ2h0IC88d2JyLz4gYWN0aXZlQXJyYXlTaXplLjx3YnIvPmhlaWdodCk8L2NvZGU+CithbmQgPGNvZGU+dHggPSBzZW5zb3JDcm9wLjx3YnIvPmxlZnQgKiAoc2Vuc29yQ3JvcC48d2JyLz53aWR0aCAvPHdici8+IGFjdGl2ZUFycmF5U2l6ZS48d2JyLz53aWR0aCk8L2NvZGU+Ljx3YnIvPiBUaGUKKyhzZW5zb3JDcm9wLjx3YnIvPnRvcCw8d2JyLz4gc2Vuc29yQ3JvcC48d2JyLz5sZWZ0KSBpcyB0aGUgY29vcmRpbmF0ZSBiYXNlZCBvZmYgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9saT4KKzxsaT5TY2FsZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiB3aXRoIHNjYWxpbmcgZmFjdG9yIG9mCitzZW5zb3I8d2JyLz5Dcm9wLjx3YnIvPndpZHRoLzx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZS48d2JyLz53aWR0aCBhbmQgc2Vuc29yPHdici8+Q3JvcC48d2JyLz5oZWlnaHQvPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplLjx3YnIvPmhlaWdodAorcmVzcGVjdGl2ZWx5Ljx3YnIvPgorT25jZSB0aGlzIG5ldyBjcm9wUmVnaW9uIGlzIGNhbGN1bGF0ZWQsPHdici8+IHRoZSBIQUwgbXVzdCB1c2UgdGhpcyByZWdpb24gdG8gY3JvcCB0aGUgaW1hZ2UKK3dpdGggcmVnYXJkIHRvIHRoZSBzZW5zb3IgY3JvcCBzaXplIChlZmZlY3RpdmUgYWN0aXZlIGFycmF5IHNpemUpLjx3YnIvPiBUaGUgSEFMIHN0aWxsIG5lZWQKK2ZvbGxvdyB0aGUgZ2VuZXJhbCBjcm9wcGluZyBydWxlIGZvciB0aGlzIG5ldyBjcm9wUmVnaW9uIGFuZCBlZmZlY3RpdmUgYWN0aXZlCithcnJheSBzaXplLjx3YnIvPjwvbGk+Cis8L29sPgorPC9saT4KKzxsaT4KKzxwPlRoZSBIQUwgbXVzdCByZXBvcnQgdGhlIGNyb3BSZWdpb24gd2l0aCByZWdhcmQgdG8gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPgorVGhlIEhBTCBuZWVkIGNvbnZlcnQgdGhlIG5ldyBjcm9wUmVnaW9uIGdlbmVyYXRlZCBhYm92ZSB3Ljx3YnIvPnIuPHdici8+dC4sPHdici8+IGZ1bGwgYWN0aXZlIGFycmF5IHNpemUuPHdici8+CitUaGUgcmVwb3J0ZWQgY3JvcFJlZ2lvbiBtYXkgYmUgc2xpZ2h0bHkgZGlmZmVyZW50IHdpdGggdGhlIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHNpbmNlCit0aGUgSEFMIG1heSBhZGp1c3QgdGhlIGNyb3AgcmVnaW9uIHRvIGFjY291bnQgZm9yIHJvdW5kaW5nLDx3YnIvPiBjb252ZXJzaW9uIGVycm9yLDx3YnIvPiBvciBvdGhlcgoraGFyZHdhcmUgbGltaXRhdGlvbnMuPHdici8+PC9wPgorPC9saT4KKzwvdWw+Cis8cD5IQUwyLjx3YnIvPnggdXNlcyBvbmx5ICh4LDx3YnIvPiB5LDx3YnIvPiB3aWR0aCk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUZvcm1hdHMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+Rm9ybWF0cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgaW1hZ2VGb3JtYXRdPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkFXMTY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjB4MjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlJBVzE2IGlzIGEgc3RhbmRhcmQsPHdici8+IGNyb3NzLXBsYXRmb3JtIGZvcm1hdCBmb3IgcmF3IGltYWdlCitidWZmZXJzIHdpdGggMTYtYml0IHBpeGVscy48d2JyLz48L3A+Cis8cD5CdWZmZXJzIG9mIHRoaXMgZm9ybWF0IGFyZSB0eXBpY2FsbHkgZXhwZWN0ZWQgdG8gaGF2ZSBhCitCYXllciBDb2xvciBGaWx0ZXIgQXJyYXkgKENGQSkgbGF5b3V0LDx3YnIvPiB3aGljaCBpcyBnaXZlbiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudDwvYT4uPHdici8+IFNlbnNvcnMgd2l0aAorQ0ZBcyB0aGF0IGFyZSBub3QgcmVwcmVzZW50YWJsZSBieSBhIGZvcm1hdCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudDwvYT4gc2hvdWxkIG5vdAordXNlIHRoaXMgZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPkJ1ZmZlcnMgb2YgdGhpcyBmb3JtYXQgd2lsbCBhbHNvIGZvbGxvdyB0aGUgY29uc3RyYWludHMgZ2l2ZW4gZm9yCitSQVdfPHdici8+T1BBUVVFIGJ1ZmZlcnMsPHdici8+IGJ1dCB3aXRoIHJlbGF4ZWQgcGVyZm9ybWFuY2UgY29uc3RyYWludHMuPHdici8+PC9wPgorPHA+VGhpcyBmb3JtYXQgaXMgaW50ZW5kZWQgdG8gZ2l2ZSB1c2VycyBhY2Nlc3MgdG8gdGhlIGZ1bGwgY29udGVudHMKK29mIHRoZSBidWZmZXJzIGNvbWluZyBkaXJlY3RseSBmcm9tIHRoZSBpbWFnZSBzZW5zb3IgcHJpb3IgdG8gYW55Citjcm9wcGluZyBvciBzY2FsaW5nIG9wZXJhdGlvbnMsPHdici8+IGFuZCBhbGwgY29vcmRpbmF0ZSBzeXN0ZW1zIGZvcgorbWV0YWRhdGEgdXNlZCBmb3IgdGhpcyBmb3JtYXQgYXJlIHJlbGF0aXZlIHRvIHRoZSBzaXplIG9mIHRoZQorYWN0aXZlIHJlZ2lvbiBvZiB0aGUgaW1hZ2Ugc2Vuc29yIGJlZm9yZSBhbnkgZ2VvbWV0cmljIGRpc3RvcnRpb24KK2NvcnJlY3Rpb24gaGFzIGJlZW4gYXBwbGllZCAoaS48d2JyLz5lLjx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pLjx3YnIvPiBTdXBwb3J0ZWQKK2RpbWVuc2lvbnMgZm9yIHRoaXMgZm9ybWF0IGFyZSBsaW1pdGVkIHRvIHRoZSBmdWxsIGRpbWVuc2lvbnMgb2YKK3RoZSBzZW5zb3IgKGUuPHdici8+Zy48d2JyLz4gZWl0aGVyIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gb3IKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IHdpbGwgYmUgdGhlCitvbmx5IHN1cHBvcnRlZCBvdXRwdXQgc2l6ZSkuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5JbnB1dDx3YnIvPk91dHB1dDx3YnIvPkZvcm1hdHM8d2JyLz5NYXA8L2E+IGZvcgordGhlIGZ1bGwgc2V0IG9mIHBlcmZvcm1hbmNlIGd1YXJhbnRlZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkFXX09QQVFVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyNDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UkFXXzx3YnIvPk9QQVFVRSAob3IKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXX1BSSVZBVEUiPlJBV188d2JyLz5QUklWQVRFPC9hPgorYXMgcmVmZXJyZWQgaW4gcHVibGljIEFQSSkgaXMgYSBmb3JtYXQgZm9yIHJhdyBpbWFnZSBidWZmZXJzCitjb21pbmcgZnJvbSBhbiBpbWFnZSBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhlIGFjdHVhbCBzdHJ1Y3R1cmUgb2YgYnVmZmVycyBvZiB0aGlzIGZvcm1hdCBpcworcGxhdGZvcm0tc3BlY2lmaWMsPHdici8+IGJ1dCBtdXN0IGZvbGxvdyBzZXZlcmFsIGNvbnN0cmFpbnRzOjwvcD4KKzxvbD4KKzxsaT5ObyBpbWFnZSBwb3N0LXByb2Nlc3Npbmcgb3BlcmF0aW9ucyBtYXkgaGF2ZSBiZWVuIGFwcGxpZWQgdG8KK2J1ZmZlcnMgb2YgdGhpcyB0eXBlLjx3YnIvPiBUaGVzZSBidWZmZXJzIGNvbnRhaW4gcmF3IGltYWdlIGRhdGEgY29taW5nCitkaXJlY3RseSBmcm9tIHRoZSBpbWFnZSBzZW5zb3IuPHdici8+PC9saT4KKzxsaT5JZiBhIGJ1ZmZlciBvZiB0aGlzIGZvcm1hdCBpcyBwYXNzZWQgdG8gdGhlIGNhbWVyYSBkZXZpY2UgZm9yCityZXByb2Nlc3NpbmcsPHdici8+IHRoZSByZXN1bHRpbmcgaW1hZ2VzIHdpbGwgYmUgaWRlbnRpY2FsIHRvIHRoZSBpbWFnZXMKK3Byb2R1Y2VkIGlmIHRoZSBidWZmZXIgaGFkIGNvbWUgZGlyZWN0bHkgZnJvbSB0aGUgc2Vuc29yIGFuZCB3YXMKK3Byb2Nlc3NlZCB3aXRoIHRoZSBzYW1lIHNldHRpbmdzLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+VGhlIGludGVuZGVkIHVzZSBmb3IgdGhpcyBmb3JtYXQgaXMgdG8gYWxsb3cgYWNjZXNzIHRvIHRoZSBuYXRpdmUKK3JhdyBmb3JtYXQgYnVmZmVycyBjb21pbmcgZGlyZWN0bHkgZnJvbSB0aGUgY2FtZXJhIHNlbnNvciB3aXRob3V0CithbnkgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBvciBkZWNyZWFzZSBpbiBmcmFtZXJhdGUuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5JbnB1dDx3YnIvPk91dHB1dDx3YnIvPkZvcm1hdHM8d2JyLz5NYXA8L2E+IGZvciB0aGUgZnVsbCBzZXQgb2YKK3BlcmZvcm1hbmNlIGd1YXJhbnRlZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WVYxMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgzMjMxNTY1OTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+WUNyQ2IgNDoyOjAgUGxhbmFyPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WUNyQ2JfNDIwX1NQPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDExPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5OVjIxPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SU1QTEVNRU5UQVRJT05fREVGSU5FRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U3lzdGVtIGludGVybmFsIGZvcm1hdCw8d2JyLz4gbm90IGFwcGxpY2F0aW9uLWFjY2Vzc2libGU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ZQ2JDcl80MjBfODg4PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDIzPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5GbGV4aWJsZSBZVVY0MjAgRm9ybWF0PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkxPQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SlBFRyBmb3JtYXQ8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbGlzdCBvZiBpbWFnZSBmb3JtYXRzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzCitjYW1lcmEgZGV2aWNlIGZvciBvdXRwdXQgc3RyZWFtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCBjYW1lcmEgZGV2aWNlcyB3aWxsIHN1cHBvcnQgSlBFRyBhbmQgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggZm9ybWF0cy48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gYXBwbGljYXRpb24gY2FuIGFjY2VzcyB0aGUgWVVWNDIwIGRhdGEgZGlyZWN0bHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGVzZSBmb3JtYXQgdmFsdWVzIGFyZSBmcm9tIEhBTF88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+KiBpbgorc3lzdGVtLzx3YnIvPmNvcmUvPHdici8+aW5jbHVkZS88d2JyLz5zeXN0ZW0vPHdici8+Z3JhcGhpY3MuPHdici8+aC48d2JyLz48L3A+Cis8cD5XaGVuIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgaXMgdXNlZCw8d2JyLz4gdGhlIHBsYXRmb3JtCitncmFsbG9jIG1vZHVsZSB3aWxsIHNlbGVjdCBhIGZvcm1hdCBiYXNlZCBvbiB0aGUgdXNhZ2UgZmxhZ3MgcHJvdmlkZWQKK2J5IHRoZSBjYW1lcmEgSEFMIGRldmljZSBhbmQgdGhlIG90aGVyIGVuZHBvaW50IG9mIHRoZSBzdHJlYW0uPHdici8+IEl0IGlzCit1c3VhbGx5IHVzZWQgYnkgcHJldmlldyBhbmQgcmVjb3JkaW5nIHN0cmVhbXMsPHdici8+IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0CituZWVkIGFjY2VzcyB0aGUgaW1hZ2UgZGF0YS48d2JyLz48L3A+Cis8cD5ZQ2I8d2JyLz5Dcl88d2JyLz40MjBfPHdici8+ODg4IGZvcm1hdCBtdXN0IGJlIHN1cHBvcnRlZCBieSB0aGUgSEFMLjx3YnIvPiBXaGVuIGFuIGltYWdlIHN0cmVhbQorbmVlZHMgQ1BVLzx3YnIvPmFwcGxpY2F0aW9uIGRpcmVjdCBhY2Nlc3MsPHdici8+IHRoaXMgZm9ybWF0IHdpbGwgYmUgdXNlZC48d2JyLz48L3A+Cis8cD5UaGUgQkxPQiBmb3JtYXQgbXVzdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIEhBTC48d2JyLz4gVGhpcyBpcyB1c2VkIGZvciB0aGUgSlBFRyBzdHJlYW0uPHdici8+PC9wPgorPHA+QSBSQVdfPHdici8+T1BBUVVFIGJ1ZmZlciBzaG91bGQgY29udGFpbiBvbmx5IHBpeGVsIGRhdGEuPHdici8+IEl0IGlzIHN0cm9uZ2x5CityZWNvbW1lbmRlZCB0aGF0IGFueSBpbmZvcm1hdGlvbiB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHdoZW4KK3Byb2Nlc3NpbmcgaW1hZ2VzIGlzIGZ1bGx5IGV4cHJlc3NlZCBieSB0aGUgcmVzdWx0IG1ldGFkYXRhCitmb3IgdGhhdCBpbWFnZSBidWZmZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdNaW5EdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SnBlZzx3YnIvPk1pbjx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gdGhhdCBpcyBzdXBwb3J0ZWQKK2ZvciBlYWNoIHJlc29sdXRpb24gaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkpwZWc8d2JyLz5TaXplczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgICAgPHA+VE9ETzogUmVtb3ZlIHByb3BlcnR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBtaW5pbXVtIHN0ZWFkeS1zdGF0ZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkKK3RoYXQgSlBFRyBzdHJlYW0gaXMgYWN0aXZlIGFuZCBjYXB0dXJlZCBpbiBhIGJ1cnN0LDx3YnIvPiB3aXRoIGFsbAorcHJvY2Vzc2luZyAodHlwaWNhbGx5IGluIGFuZHJvaWQuPHdici8+Ki48d2JyLz5tb2RlKSBzZXQgdG8gRkFTVC48d2JyLz48L3A+Cis8cD5XaGVuIG11bHRpcGxlIHN0cmVhbXMgYXJlIGNvbmZpZ3VyZWQsPHdici8+IHRoZSBtaW5pbXVtCitmcmFtZSBkdXJhdGlvbiB3aWxsIGJlICZndDs9IG1heChpbmRpdmlkdWFsIHN0cmVhbSBtaW4KK2R1cmF0aW9ucyk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SnBlZzx3YnIvPlNpemVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgc2l6ZV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgSlBFRyByZXNvbHV0aW9ucyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPlRPRE86IFJlbW92ZSBwcm9wZXJ0eS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHJlc29sdXRpb25zIGFyZSBsaXN0ZWQgYXMgPGNvZGU+KHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPiBwYWlycy48d2JyLz4gQWxsIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydAorc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBtdXN0IGluY2x1ZGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbgorKGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KSw8d2JyLz4KK2FuZCBzaG91bGQgaW5jbHVkZSBoYWxmLzx3YnIvPnF1YXJ0ZXIgb2Ygc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWF4PHdici8+RGlnaXRhbDx3YnIvPlpvb20KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gcmF0aW8gYmV0d2VlbiBib3RoIGFjdGl2ZSBhcmVhIHdpZHRoCithbmQgY3JvcCByZWdpb24gd2lkdGgsPHdici8+IGFuZCBhY3RpdmUgYXJlYSBoZWlnaHQgYW5kCitjcm9wIHJlZ2lvbiBoZWlnaHQsPHdici8+IGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFpvb20gc2NhbGUgZmFjdG9yCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0xPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgcmVwcmVzZW50cyB0aGUgbWF4aW11bSBhbW91bnQgb2Ygem9vbWluZyBwb3NzaWJsZSBieQordGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IG9yIGVxdWl2YWxlbnRseSw8d2JyLz4gdGhlIG1pbmltdW0gY3JvcHBpbmcKK3dpbmRvdyBzaXplLjx3YnIvPjwvcD4KKzxwPkNyb3AgcmVnaW9ucyB0aGF0IGhhdmUgYSB3aWR0aCBvciBoZWlnaHQgdGhhdCBpcyBzbWFsbGVyCit0aGFuIHRoaXMgcmF0aW8gYWxsb3dzIHdpbGwgYmUgcm91bmRlZCB1cCB0byB0aGUgbWluaW11bQorYWxsb3dlZCBzaXplIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5Qcm9jZXNzZWQ8d2JyLz5NaW48d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkZvciBlYWNoIGF2YWlsYWJsZSBwcm9jZXNzZWQgb3V0cHV0IHNpemUgKGRlZmluZWQgaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlByb2Nlc3NlZDx3YnIvPlNpemVzPC9hPiksPHdici8+IHRoaXMgcHJvcGVydHkgbGlzdHMgdGhlCittaW5pbXVtIHN1cHBvcnRhYmxlIGZyYW1lIGR1cmF0aW9uIGZvciB0aGF0IHNpemUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkgdGhhdCBwcm9jZXNzZWQKK3N0cmVhbSBpcyBhY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkKK3NldCB0byBGQVNULjx3YnIvPjwvcD4KKzxwPldoZW4gbXVsdGlwbGUgc3RyZWFtcyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gd2lsbAorYmUgJmd0Oz0gbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbiBkdXJhdGlvbnMpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZFNpemVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlByb2Nlc3NlZDx3YnIvPlNpemVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgc2l6ZV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcmVzb2x1dGlvbnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aAorcHJvY2Vzc2VkIG91dHB1dCBzdHJlYW1zLDx3YnIvPiBzdWNoIGFzIFlWMTIsPHdici8+IE5WMTIsPHdici8+IGFuZAorcGxhdGZvcm0gb3BhcXVlIFlVVi88d2JyLz5SR0Igc3RyZWFtcyB0byB0aGUgR1BVIG9yIHZpZGVvCitlbmNvZGVycy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSByZXNvbHV0aW9ucyBhcmUgbGlzdGVkIGFzIDxjb2RlPih3aWR0aCw8d2JyLz4gaGVpZ2h0KTwvY29kZT4gcGFpcnMuPHdici8+PC9wPgorPHA+Rm9yIGEgZ2l2ZW4gdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgcmVzb2x1dGlvbgorbWF5IGJlIGxvd2VyIHRoYW4gd2hhdCBpcyBsaXN0ZWQgaGVyZSw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbgorU3VyZmFjZSBmb3IgdGhlIGltYWdlIGRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgcmVjb3JkaW5nIHZpZGVvLDx3YnIvPgordGhlIHZpZGVvIGVuY29kZXIgY2hvc2VuIG1heSBoYXZlIGEgbWF4aW11bSBzaXplIGxpbWl0IChlLjx3YnIvPmcuPHdici8+IDEwODBwKQorc21hbGxlciB0aGFuIHdoYXQgdGhlIGNhbWVyYSAoZS48d2JyLz5nLjx3YnIvPiBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI2NHgyNDQ4KQorY2FuIHByb3ZpZGUuPHdici8+PC9wPgorPHA+UGxlYXNlIHJlZmVyZW5jZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGltYWdlIGRhdGEgZGVzdGluYXRpb24gdG8KK2NoZWNrIGlmIGl0IGxpbWl0cyB0aGUgbWF4aW11bSBzaXplIGZvciBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIEZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pLDx3YnIvPgordGhlIEhBTCBtdXN0IGluY2x1ZGUgYWxsIEpQRUcgc2l6ZXMgbGlzdGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ1NpemVzIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5KcGVnPHdici8+U2l6ZXM8L2E+CithbmQgZWFjaCBiZWxvdyByZXNvbHV0aW9uIGlmIGl0IGlzIHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vuc29yCittYXhpbXVtIHJlc29sdXRpb24gKGlmIHRoZXkgYXJlIG5vdCBsaXN0ZWQgaW4gSlBFRyBzaXplcyBhbHJlYWR5KTo8L3A+Cis8dWw+Cis8bGk+MjQwcCAoMzIwIHggMjQwKTwvbGk+Cis8bGk+NDgwcCAoNjQwIHggNDgwKTwvbGk+Cis8bGk+NzIwcCAoMTI4MCB4IDcyMCk8L2xpPgorPGxpPjEwODBwICgxOTIwIHggMTA4MCk8L2xpPgorPC91bD4KKzxwPkZvciBMSU1JVEVEIGNhcGFiaWxpdHkgZGV2aWNlcyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IExJTUlURUQ8L2NvZGU+KSw8d2JyLz4KK3RoZSBIQUwgb25seSBoYXMgdG8gbGlzdCB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3TWluRHVyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlJhdzx3YnIvPk1pbjx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIGVhY2ggYXZhaWxhYmxlIHJhdyBvdXRwdXQgc2l6ZSAoZGVmaW5lZCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdTaXplcyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+UmF3PHdici8+U2l6ZXM8L2E+KSw8d2JyLz4gdGhpcyBwcm9wZXJ0eSBsaXN0cyB0aGUgbWluaW11bQorc3VwcG9ydGFibGUgZnJhbWUgZHVyYXRpb24gZm9yIHRoYXQgc2l6ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkgdGhlIHJhdyBzdHJlYW0gaXMKK2FjdGl2ZS48d2JyLz48L3A+Cis8cD5XaGVuIG11bHRpcGxlIHN0cmVhbXMgYXJlIGNvbmZpZ3VyZWQsPHdici8+IHRoZSBtaW5pbXVtCitmcmFtZSBkdXJhdGlvbiB3aWxsIGJlICZndDs9IG1heChpbmRpdmlkdWFsIHN0cmVhbSBtaW4KK2R1cmF0aW9ucyk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdTaXplcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5SYXc8d2JyLz5TaXplcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtIGFzIHNpemVdPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHJlc29sdXRpb25zIGF2YWlsYWJsZSBmb3IgdXNlIHdpdGggcmF3CitzZW5zb3Igb3V0cHV0IHN0cmVhbXMsPHdici8+IGxpc3RlZCBhcyB3aWR0aCw8d2JyLz4KK2hlaWdodDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SW5wdXQ8d2JyLz5PdXRwdXQ8d2JyLz5Gb3JtYXRzPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyByZXByb2Nlc3NGb3JtYXRzTWFwXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXBwaW5nIG9mIGltYWdlIGZvcm1hdHMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UgZm9yIGlucHV0IHN0cmVhbXMsPHdici8+IHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgb3V0cHV0IGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCBjYW1lcmEgZGV2aWNlcyB3aXRoIGF0IGxlYXN0IDEKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPklucHV0PHdici8+U3RyZWFtczwvYT4gd2lsbCBoYXZlIGF0IGxlYXN0IG9uZQorYXZhaWxhYmxlIGlucHV0IGZvcm1hdC48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBtYXAgb2YgZm9ybWF0cyw8d2JyLz4KK2lmIGl0cyBkZXBlbmRlbnQgY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPikgaXMgc3VwcG9ydGVkOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0ibGVmdCI+SW5wdXQgRm9ybWF0PC90aD4KKzx0aCBhbGlnbj0ibGVmdCI+T3V0cHV0IEZvcm1hdDwvdGg+Cis8dGggYWxpZ249ImxlZnQiPkNhcGFiaWxpdHk8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUFJJVkFURSI+SW1hZ2VGb3JtYXQjUFJJVkFURTwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+UFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPlBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0Ij5ZVVZfPHdici8+UkVQUk9DRVNTSU5HPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPllVVl88d2JyLz5SRVBST0NFU1NJTkc8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+UFJJVkFURSByZWZlcnMgdG8gYSBkZXZpY2UtaW50ZXJuYWwgZm9ybWF0IHRoYXQgaXMgbm90IGRpcmVjdGx5IGFwcGxpY2F0aW9uLXZpc2libGUuPHdici8+ICBBCitQUklWQVRFIGlucHV0IHN1cmZhY2UgY2FuIGJlIGFjcXVpcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0ltYWdlUmVhZGVyLmh0bWwjbmV3SW5zdGFuY2UiPkltYWdlUmVhZGVyI25ld0luc3RhbmNlPC9hPgord2l0aCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IGFzIHRoZSBmb3JtYXQuPHdici8+PC9wPgorPHA+Rm9yIGEgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkctY2FwYWJsZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB1c2luZyB0aGUgUFJJVkFURSBmb3JtYXQgYXMgZWl0aGVyIGlucHV0CitvciBvdXRwdXQgd2lsbCBuZXZlciBodXJ0IG1heGltdW0gZnJhbWUgcmF0ZSAoaS48d2JyLz5lLjx3YnIvPiAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPmdldE91dHB1dFN0YWxsRHVyYXRpb24oSW1hZ2VGb3JtYXQuPHdici8+UFJJVkFURSw8d2JyLz4gc2l6ZSk8L2E+IGlzIGFsd2F5cyAwKSw8d2JyLz48L3A+Cis8cD5BdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBhbiBpbnB1dCBzdHJlYW0gd2l0aCBvdXRwdXQgc3RyZWFtcyBub3QKK2xpc3RlZCBhcyBhdmFpbGFibGUgaW4gdGhpcyBtYXAgaXMgbm90IHZhbGlkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIHRoZSBmb3JtYXRzLDx3YnIvPiBzZWUgPGNvZGU+c3lzdGVtLzx3YnIvPmNvcmUvPHdici8+aW5jbHVkZS88d2JyLz5zeXN0ZW0vPHdici8+Z3JhcGhpY3MuPHdici8+aDwvY29kZT4gZm9yIGEgZGVmaW5pdGlvbgorb2YgdGhlIGltYWdlIGZvcm1hdCBlbnVtZXJhdGlvbnMuPHdici8+IFRoZSBQUklWQVRFIGZvcm1hdCByZWZlcnMgdG8gdGhlCitIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPklNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgZm9ybWF0Ljx3YnIvPiBUaGUgSEFMIGNvdWxkIGRldGVybWluZQordGhlIGFjdHVhbCBmb3JtYXQgYnkgdXNpbmcgdGhlIGdyYWxsb2MgdXNhZ2UgZmxhZ3MuPHdici8+CitGb3IgWlNMIHVzZSBjYXNlIGluIHBhcnRpY3VsYXIsPHdici8+IHRoZSBIQUwgY291bGQgY2hvb3NlIGFwcHJvcHJpYXRlIGZvcm1hdCAocGFydGlhbGx5Citwcm9jZXNzZWQgWVVWIG9yIFJBVyBiYXNlZCBmb3JtYXQpIGJ5IGNoZWNraW5nIHRoZSBmb3JtYXQgYW5kIEdSQUxMT0NfPHdici8+VVNBR0VfPHdici8+SFdfPHdici8+Q0FNRVJBXzx3YnIvPlpTTC48d2JyLz4KK1NlZSBjYW1lcmEzLjx3YnIvPmggZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIGlzIGVuY29kZWQgYXMgYSB2YXJpYWJsZS1zaXplIGFycmF5LW9mLWFycmF5cy48d2JyLz4KK1RoZSBpbm5lciBhcnJheSBhbHdheXMgY29udGFpbnMgPGNvZGU+W2Zvcm1hdCw8d2JyLz4gbGVuZ3RoLDx3YnIvPiAuLi48d2JyLz5dPC9jb2RlPiB3aGVyZQorPGNvZGU+Li4uPHdici8+PC9jb2RlPiBoYXMgPGNvZGU+bGVuZ3RoPC9jb2RlPiBlbGVtZW50cy48d2JyLz4gQW4gaW5uZXIgYXJyYXkgaXMgZm9sbG93ZWQgYnkgYW5vdGhlcgoraW5uZXIgYXJyYXkgaWYgdGhlIHRvdGFsIG1ldGFkYXRhIGVudHJ5IHNpemUgaGFzbid0IHlldCBiZWVuIGV4Y2VlZGVkLjx3YnIvPjwvcD4KKzxwPkEgY29kZSBzYW1wbGUgdG8gcmVhZC88d2JyLz53cml0ZSB0aGlzIGVuY29kaW5nICh3aXRoIGEgZGV2aWNlIHRoYXQKK3N1cHBvcnRzIHJlcHJvY2Vzc2luZyBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVEIHRvIFlVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBhbmQgSlBFRyw8d2JyLz4KK2FuZCByZXByb2Nlc3NpbmcgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggdG8gWVVWXzx3YnIvPjQyMF88d2JyLz44ODggYW5kIEpQRUcpOjwvcD4KKzxwcmU+PGNvZGU+Ly88d2JyLz4gcmVhZGluZworaW50MzJfPHdici8+dCogY29udGVudHMgPSAmYW1wO2VudHJ5Ljx3YnIvPmkzMlswXTsKK2ZvciAoc2l6ZV88d2JyLz50IGkgPSAwOyBpICZsdDsgZW50cnkuPHdici8+Y291bnQ7ICkgeworICAgIGludDMyXzx3YnIvPnQgZm9ybWF0ID0gY29udGVudHNbaSsrXTsKKyAgICBpbnQzMl88d2JyLz50IGxlbmd0aCA9IGNvbnRlbnRzW2krK107CisgICAgaW50MzJfPHdici8+dCBvdXRwdXRfPHdici8+Zm9ybWF0c1tsZW5ndGhdOworICAgIG1lbWNweSgmYW1wO291dHB1dF88d2JyLz5mb3JtYXRzWzBdLDx3YnIvPiAmYW1wO2NvbnRlbnRzW2ldLDx3YnIvPgorICAgICAgICAgICBsZW5ndGggKiBzaXplb2YoaW50MzJfPHdici8+dCkpOworICAgIGkgKz0gbGVuZ3RoOworfQorCisvLzx3YnIvPiB3cml0aW5nIChzdGF0aWMgZXhhbXBsZSw8d2JyLz4gUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgKyBZVVZfPHdici8+UkVQUk9DRVNTSU5HKQoraW50MzJfPHdici8+dFtdIGNvbnRlbnRzID0geworICBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVELDx3YnIvPiAyLDx3YnIvPiBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gQkxPQiw8d2JyLz4KKyAgWVVWXzx3YnIvPjQyMF88d2JyLz44ODgsPHdici8+IDIsPHdici8+IFlVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBCTE9CLDx3YnIvPgorfTsKK3VwZGF0ZV88d2JyLz5jYW1lcmFfPHdici8+bWV0YWRhdGFfPHdici8+ZW50cnkobWV0YWRhdGEsPHdici8+IGluZGV4LDx3YnIvPiAmYW1wO2NvbnRlbnRzWzBdLDx3YnIvPgorICAgICAgc2l6ZW9mKGNvbnRlbnRzKS88d2JyLz5zaXplb2YoY29udGVudHNbMF0pLDx3YnIvPiAmYW1wO3VwZGF0ZWRfPHdici8+ZW50cnkpOworPC9jb2RlPjwvcHJlPgorPHA+SWYgdGhlIEhBTCBjbGFpbXMgdG8gc3VwcG9ydCBhbnkgb2YgdGhlIGNhcGFiaWxpdGllcyBsaXN0ZWQgaW4gdGhlCithYm92ZSBkZXRhaWxzLDx3YnIvPiB0aGVuIGl0IG11c3QgYWxzbyBzdXBwb3J0IGFsbCB0aGUgaW5wdXQtb3V0cHV0Citjb21iaW5hdGlvbnMgbGlzdGVkIGZvciB0aGF0IGNhcGFiaWxpdHkuPHdici8+IEl0IGNhbiBvcHRpb25hbGx5IHN1cHBvcnQKK2FkZGl0aW9uYWwgZm9ybWF0cyBpZiBpdCBzbyBjaG9vc2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJlYW1Db25maWd1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T1VUUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTlBVVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGF2YWlsYWJsZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzCitjYW1lcmEgZGV2aWNlIHN1cHBvcnRzCisoaS48d2JyLz5lLjx3YnIvPiBmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG91dHB1dC88d2JyLz5pbnB1dCBzdHJlYW0pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb25maWd1cmF0aW9ucyBhcmUgbGlzdGVkIGFzIDxjb2RlPihmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IGlucHV0Pyk8L2NvZGU+Cit0dXBsZXMuPHdici8+PC9wPgorPHA+Rm9yIGEgZ2l2ZW4gdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgcmVzb2x1dGlvbgorbWF5IGJlIGxvd2VyIHRoYW4gd2hhdCBpcyBsaXN0ZWQgaGVyZSw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbgorU3VyZmFjZSBmb3IgdGhlIGltYWdlIGRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgcmVjb3JkaW5nIHZpZGVvLDx3YnIvPgordGhlIHZpZGVvIGVuY29kZXIgY2hvc2VuIG1heSBoYXZlIGEgbWF4aW11bSBzaXplIGxpbWl0IChlLjx3YnIvPmcuPHdici8+IDEwODBwKQorc21hbGxlciB0aGFuIHdoYXQgdGhlIGNhbWVyYSAoZS48d2JyLz5nLjx3YnIvPiBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI2NHgyNDQ4KQorY2FuIHByb3ZpZGUuPHdici8+PC9wPgorPHA+UGxlYXNlIHJlZmVyZW5jZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGltYWdlIGRhdGEgZGVzdGluYXRpb24gdG8KK2NoZWNrIGlmIGl0IGxpbWl0cyB0aGUgbWF4aW11bSBzaXplIGZvciBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgb3V0cHV0IGZvcm1hdHMgbWF5IGJlIHN1cHBvcnRlZCBpbiBhIGNvbmZpZ3VyYXRpb24gd2l0aAorYW4gaW5wdXQgc3RyZWFtIG9mIGEgcGFydGljdWxhciBmb3JtYXQuPHdici8+IEZvciBtb3JlIGRldGFpbHMsPHdici8+IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPklucHV0PHdici8+T3V0cHV0PHdici8+Rm9ybWF0czx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+VGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgdGhlIG1pbmltdW0gcmVxdWlyZWQgb3V0cHV0IHN0cmVhbQorY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlIGhhcmR3YXJlIGxldmVsCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+KTo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+Rm9ybWF0PC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5TaXplPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5IYXJkd2FyZSBMZXZlbDwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkpQRUc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjE5MjB4MTA4MCAoMTA4MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDEwODBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkpQRUc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjEyODB4NzIwICg3MjApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDcyMHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+NjQweDQ4MCAoNDgwcCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgNDgwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5KUEVHPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj4zMjB4MjQwICgyNDBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiAyNDBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPllVVl88d2JyLz40MjBfPHdici8+ODg4PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbGwgb3V0cHV0IHNpemVzIGF2YWlsYWJsZSBmb3IgSlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RlVMTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+WVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFsbCBvdXRwdXQgc2l6ZXMgYXZhaWxhYmxlIGZvciBKUEVHLDx3YnIvPiB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MSU1JVEVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5zYW1lIGFzIFlVVl88d2JyLz40MjBfPHdici8+ODg4PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5SZWZlciB0byA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGZvciBhZGRpdGlvbmFsCittYW5kYXRvcnkgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIG9uIGEgcGVyLWNhcGFiaWxpdHkgYmFzaXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JdCBpcyByZWNvbW1lbmRlZCAoYnV0IG5vdCBtYW5kYXRvcnkpIHRvIGFsc28gaW5jbHVkZSBoYWxmLzx3YnIvPnF1YXJ0ZXIKK29mIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gZm9yIEpQRUcgZm9ybWF0cyAocmVnYXJkbGVzcyBvZiBoYXJkd2FyZQorbGV2ZWwpLjx3YnIvPjwvcD4KKzxwPihUaGUgZm9sbG93aW5nIGlzIGEgcmV3b3JkaW5nIG9mIHRoZSBhYm92ZSByZXF1aXJlZCB0YWJsZSk6PC9wPgorPHA+Rm9yIEpQRUcgZm9ybWF0LDx3YnIvPiB0aGUgc2l6ZXMgbWF5IGJlIHJlc3RyaWN0ZWQgYnkgYmVsb3cgY29uZGl0aW9uczo8L3A+Cis8dWw+Cis8bGk+VGhlIEhBTCBtYXkgY2hvb3NlIHRoZSBhc3BlY3QgcmF0aW8gb2YgZWFjaCBKcGVnIHNpemUgdG8gYmUgb25lIG9mIHdlbGwga25vd24gb25lcworKGUuPHdici8+Zy48d2JyLz4gNDozLDx3YnIvPiAxNjo5LDx3YnIvPiAzOjIgZXRjLjx3YnIvPikuPHdici8+IElmIHRoZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uCisoZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pIGhhcyBhbiBhc3BlY3QgcmF0aW8gb3RoZXIgdGhhbiB0aGVzZSw8d2JyLz4KK2l0IGRvZXMgbm90IGhhdmUgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHN1cHBvcnRlZCBKUEVHIHNpemVzLjx3YnIvPjwvbGk+Cis8bGk+U29tZSBoYXJkd2FyZSBKUEVHIGVuY29kZXJzIG1heSBoYXZlIHBpeGVsIGJvdW5kYXJ5IGFsaWdubWVudCByZXF1aXJlbWVudHMsPHdici8+IHN1Y2ggYXMKK3RoZSBkaW1lbnNpb25zIGJlaW5nIGEgbXVsdGlwbGUgb2YgMTYuPHdici8+PC9saT4KKzwvdWw+Cis8cD5UaGVyZWZvcmUsPHdici8+IHRoZSBtYXhpbXVtIEpQRUcgc2l6ZSBtYXkgYmUgc21hbGxlciB0aGFuIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24uPHdici8+CitIb3dldmVyLDx3YnIvPiB0aGUgbGFyZ2VzdCBKUEVHIHNpemUgbXVzdCBiZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aGUgc2Vuc29yIG1heGltdW0KK3Jlc29sdXRpb24gZ2l2ZW4gYWJvdmUgY29uc3RyYWludHMuPHdici8+IEl0IGlzIHJlcXVpcmVkIHRoYXQgYWZ0ZXIgYXNwZWN0IHJhdGlvIGFkanVzdG1lbnRzLDx3YnIvPgorYWRkaXRpb25hbCBzaXplIHJlZHVjdGlvbiBkdWUgdG8gb3RoZXIgaXNzdWVzIG11c3QgYmUgbGVzcyB0aGFuIDMlIGluIGFyZWEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPgoraWYgdGhlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI4MHgyNDY0LDx3YnIvPiBpZiB0aGUgbWF4aW11bSBKUEVHIHNpemUgaGFzIGFzcGVjdAorcmF0aW8gNDozLDx3YnIvPiB0aGUgSlBFRyBlbmNvZGVyIGFsaWdubWVudCByZXF1aXJlbWVudCBpcyAxNiw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIHdpbGwgYmUKKzMyNjR4MjQ0OC48d2JyLz48L3A+Cis8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMPC9jb2RlPiksPHdici8+Cit0aGUgSEFMIG11c3QgaW5jbHVkZSBhbGwgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggc2l6ZXMgdGhhdCBoYXZlIEpQRUcgc2l6ZXMgbGlzdGVkCitoZXJlIGFzIG91dHB1dCBzdHJlYW1zLjx3YnIvPjwvcD4KKzxwPkl0IG11c3QgYWxzbyBpbmNsdWRlIGVhY2ggYmVsb3cgcmVzb2x1dGlvbiBpZiBpdCBpcyBzbWFsbGVyIHRoYW4gb3IKK2VxdWFsIHRvIHRoZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIChmb3IgYm90aCBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBhbmQgSlBFRworZm9ybWF0cyksPHdici8+IGFzIG91dHB1dCBzdHJlYW1zOjwvcD4KKzx1bD4KKzxsaT4yNDBwICgzMjAgeCAyNDApPC9saT4KKzxsaT40ODBwICg2NDAgeCA0ODApPC9saT4KKzxsaT43MjBwICgxMjgwIHggNzIwKTwvbGk+Cis8bGk+MTA4MHAgKDE5MjAgeCAxMDgwKTwvbGk+Cis8L3VsPgorPHA+Rm9yIExJTUlURUQgY2FwYWJpbGl0eSBkZXZpY2VzCisoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IExJTUlURUQ8L2NvZGU+KSw8d2JyLz4KK3RoZSBIQUwgb25seSBoYXMgdG8gbGlzdCB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplCitzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS48d2JyLz48L3A+Cis8cD5SZWdhcmRsZXNzIG9mIGhhcmR3YXJlIGxldmVsLDx3YnIvPiBldmVyeSBvdXRwdXQgcmVzb2x1dGlvbiBhdmFpbGFibGUgZm9yCitZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBtdXN0IGFsc28gYmUgYXZhaWxhYmxlIGZvciBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVELjx3YnIvPjwvcD4KKzxwPlRoaXMgc3VwZXJjZWRlcyB0aGUgZm9sbG93aW5nIGZpZWxkcyw8d2JyLz4gd2hpY2ggYXJlIG5vdyBkZXByZWNhdGVkOjwvcD4KKzx1bD4KKzxsaT5hdmFpbGFibGVGb3JtYXRzPC9saT4KKzxsaT5hdmFpbGFibGVbUHJvY2Vzc2VkLDx3YnIvPlJhdyw8d2JyLz5KcGVnXVNpemVzPC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWluPHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbkR1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0cyB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgZWFjaAorZm9ybWF0Lzx3YnIvPnNpemUgY29tYmluYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIChmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG5zKSB4IG4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gb25seSB0aGF0CitzdHJlYW0gaXMgYWN0aXZlLDx3YnIvPiB3aXRoIGFsbCBwcm9jZXNzaW5nICh0eXBpY2FsbHkgaW4gYW5kcm9pZC48d2JyLz4qLjx3YnIvPm1vZGUpCitzZXQgdG8gZWl0aGVyIE9GRiBvciBGQVNULjx3YnIvPjwvcD4KKzxwPldoZW4gbXVsdGlwbGUgc3RyZWFtcyBhcmUgdXNlZCBpbiBhIHJlcXVlc3QsPHdici8+IHRoZSBtaW5pbXVtIGZyYW1lCitkdXJhdGlvbiB3aWxsIGJlIG1heChpbmRpdmlkdWFsIHN0cmVhbSBtaW4gZHVyYXRpb25zKS48d2JyLz48L3A+Cis8cD5UaGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBvZiBhIHN0cmVhbSAob2YgYSBwYXJ0aWN1bGFyIGZvcm1hdCw8d2JyLz4gc2l6ZSkKK2lzIHRoZSBzYW1lIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgc3RyZWFtIGlzIGlucHV0IG9yIG91dHB1dC48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+IGZvciBtb3JlIGRldGFpbHMgYWJvdXQKK2NhbGN1bGF0aW5nIHRoZSBtYXggZnJhbWUgcmF0ZS48d2JyLz48L3A+Cis8cD4oS2VlcCBpbiBzeW5jIHdpdGgKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb248L2E+KTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0IHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25EdXJhdGlvbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdHMgdGhlIG1heGltdW0gc3RhbGwgZHVyYXRpb24gZm9yIGVhY2gKK291dHB1dCBmb3JtYXQvPHdici8+c2l6ZSBjb21iaW5hdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgKGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gbnMpIHggbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBzdGFsbCBkdXJhdGlvbiBpcyBob3cgbXVjaCBleHRyYSB0aW1lIHdvdWxkIGdldCBhZGRlZAordG8gdGhlIG5vcm1hbCBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZvciBhIHJlcGVhdGluZyByZXF1ZXN0Cit0aGF0IGhhcyBzdHJlYW1zIHdpdGggbm9uLXplcm8gc3RhbGwuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGNvbnNpZGVyIEpQRUcgY2FwdHVyZXMgd2hpY2ggaGF2ZSB0aGUgZm9sbG93aW5nCitjaGFyYWN0ZXJpc3RpY3M6PC9wPgorPHVsPgorPGxpPkpQRUcgc3RyZWFtcyBhY3QgbGlrZSBwcm9jZXNzZWQgWVVWIHN0cmVhbXMgaW4gcmVxdWVzdHMgZm9yIHdoaWNoCit0aGV5IGFyZSBub3QgaW5jbHVkZWQ7IGluIHJlcXVlc3RzIGluIHdoaWNoIHRoZXkgYXJlIGRpcmVjdGx5CityZWZlcmVuY2VkLDx3YnIvPiB0aGV5IGFjdCBhcyBKUEVHIHN0cmVhbXMuPHdici8+IFRoaXMgaXMgYmVjYXVzZSBzdXBwb3J0aW5nIGEKK0pQRUcgc3RyZWFtIHJlcXVpcmVzIHRoZSB1bmRlcmx5aW5nIFlVViBkYXRhIHRvIGFsd2F5cyBiZSByZWFkeSBmb3IKK3VzZSBieSBhIEpQRUcgZW5jb2Rlciw8d2JyLz4gYnV0IHRoZSBlbmNvZGVyIHdpbGwgb25seSBiZSB1c2VkIChhbmQgaW1wYWN0CitmcmFtZSBkdXJhdGlvbikgb24gcmVxdWVzdHMgdGhhdCBhY3R1YWxseSByZWZlcmVuY2UgYSBKUEVHIHN0cmVhbS48d2JyLz48L2xpPgorPGxpPlRoZSBKUEVHIHByb2Nlc3NvciBjYW4gcnVuIGNvbmN1cnJlbnRseSB0byB0aGUgcmVzdCBvZiB0aGUgY2FtZXJhCitwaXBlbGluZSw8d2JyLz4gYnV0IGNhbm5vdCBwcm9jZXNzIG1vcmUgdGhhbiAxIGNhcHR1cmUgYXQgYSB0aW1lLjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+SW4gb3RoZXIgd29yZHMsPHdici8+IHVzaW5nIGEgcmVwZWF0aW5nIFlVViByZXF1ZXN0IHdvdWxkIHJlc3VsdAoraW4gYSBzdGVhZHkgZnJhbWUgcmF0ZSAobGV0J3Mgc2F5IGl0J3MgMzAgRlBTKS48d2JyLz4gSWYgYSBzaW5nbGUKK0pQRUcgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgcGVyaW9kaWNhbGx5LDx3YnIvPiB0aGUgZnJhbWUgcmF0ZSB3aWxsIHN0YXkKK2F0IDMwIEZQUyAoYXMgbG9uZyBhcyB3ZSB3YWl0IGZvciB0aGUgcHJldmlvdXMgSlBFRyB0byByZXR1cm4gZWFjaAordGltZSkuPHdici8+IElmIHdlIHRyeSB0byBzdWJtaXQgYSByZXBlYXRpbmcgWVVWICsgSlBFRyByZXF1ZXN0LDx3YnIvPiB0aGVuCit0aGUgZnJhbWUgcmF0ZSB3aWxsIGRyb3AgZnJvbSAzMCBGUFMuPHdici8+PC9wPgorPHA+SW4gZ2VuZXJhbCw8d2JyLz4gc3VibWl0dGluZyBhIG5ldyByZXF1ZXN0IHdpdGggYSBub24tMCBzdGFsbCB0aW1lCitzdHJlYW0gd2lsbCA8ZW0+bm90PC9lbT4gY2F1c2UgYSBmcmFtZSByYXRlIGRyb3AgdW5sZXNzIHRoZXJlIGFyZSBzdGlsbAorb3V0c3RhbmRpbmcgYnVmZmVycyBmb3IgdGhhdCBzdHJlYW0gZnJvbSBwcmV2aW91cyByZXF1ZXN0cy48d2JyLz48L3A+Cis8cD5TdWJtaXR0aW5nIGEgcmVwZWF0aW5nIHJlcXVlc3Qgd2l0aCBzdHJlYW1zIChjYWxsIHRoaXMgPGNvZGU+UzwvY29kZT4pCitpcyB0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZyb20KK3RoZSBub3JtYWwgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBjb3JyZXNwb25kaW5nIHRvIDxjb2RlPlM8L2NvZGU+LDx3YnIvPiBhZGRlZCB3aXRoCit0aGUgbWF4aW11bSBzdGFsbCBkdXJhdGlvbiBmb3IgPGNvZGU+UzwvY29kZT4uPHdici8+PC9wPgorPHA+SWYgaW50ZXJsZWF2aW5nIHJlcXVlc3RzIHdpdGggYW5kIHdpdGhvdXQgYSBzdGFsbCBkdXJhdGlvbiw8d2JyLz4KK2EgcmVxdWVzdCB3aWxsIHN0YWxsIGJ5IHRoZSBtYXhpbXVtIG9mIHRoZSByZW1haW5pbmcgdGltZXMKK2ZvciBlYWNoIGNhbi1zdGFsbCBzdHJlYW0gd2l0aCBvdXRzdGFuZGluZyBidWZmZXJzLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWVhbnMgdGhhdCBhIHN0YWxsaW5nIHJlcXVlc3Qgd2lsbCBub3QgaGF2ZSBhbiBleHBvc3VyZSBzdGFydAordW50aWwgdGhlIHN0YWxsIGhhcyBjb21wbGV0ZWQuPHdici8+PC9wPgorPHA+VGhpcyBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgc3RhbGwgZHVyYXRpb24gd2hlbiBvbmx5IHRoYXQgc3RyZWFtIGlzCithY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkgc2V0IHRvIEZBU1QKK29yIE9GRi48d2JyLz4gU2V0dGluZyBhbnkgb2YgdGhlIHByb2Nlc3NpbmcgbW9kZXMgdG8gSElHSF88d2JyLz5RVUFMSVRZCitlZmZlY3RpdmVseSByZXN1bHRzIGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhbGwgZHVyYXRpb24gZm9yIGFsbAorc3RyZWFtcyBpbiBhIHJlcXVlc3QgKHRoZSByZWd1bGFyIHN0YWxsIGNhbGN1bGF0aW9uIHJ1bGVzIGFyZQoraWdub3JlZCkuPHdici8+PC9wPgorPHA+VGhlIGZvbGxvd2luZyBmb3JtYXRzIG1heSBhbHdheXMgaGF2ZSBhIHN0YWxsIGR1cmF0aW9uOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBV19TRU5TT1IiPkltYWdlRm9ybWF0I1JBV188d2JyLz5TRU5TT1I8L2E+PC9saT4KKzwvdWw+Cis8cD5UaGUgZm9sbG93aW5nIGZvcm1hdHMgd2lsbCBuZXZlciBoYXZlIGEgc3RhbGwgZHVyYXRpb246PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+SW1hZ2VGb3JtYXQjUkFXMTA8L2E+PC9saT4KKzwvdWw+Cis8cD5BbGwgb3RoZXIgZm9ybWF0cyBtYXkgb3IgbWF5IG5vdCBoYXZlIGFuIGFsbG93ZWQgc3RhbGwgZHVyYXRpb24gb24KK2EgcGVyLWNhcGFiaWxpdHkgYmFzaXM7IHJlZmVyIHRvIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4KK2ZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAorY2FsY3VsYXRpbmcgdGhlIG1heCBmcmFtZSByYXRlIChhYnNlbnQgc3RhbGxzKS48d2JyLz48L3A+Cis8cD4oS2VlcCB1cCB0byBkYXRlIHdpdGgKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+ICk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHBvc3NpYmxlLDx3YnIvPiBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGFsbCBub24tSlBFRyBmb3JtYXRzCisoc3VjaCBhcyBSQVcxNikgc2hvdWxkIG5vdCBoYXZlIGEgc3RhbGwgZHVyYXRpb24uPHdici8+IFJBVzEwLDx3YnIvPiBSQVcxMiw8d2JyLz4gUkFXXzx3YnIvPk9QQVFVRQorYW5kIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgbXVzdCBub3QgaGF2ZSBzdGFsbCBkdXJhdGlvbnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpYyBhcyBzdHJlYW1Db25maWd1cmF0aW9uTWFwXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhdmFpbGFibGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIHRoYXQgdGhpcworY2FtZXJhIGRldmljZSBzdXBwb3J0czsgYWxzbyBpbmNsdWRlcyB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbnMKK2FuZCB0aGUgc3RhbGwgZHVyYXRpb25zIGZvciBlYWNoIGZvcm1hdC88d2JyLz5zaXplIGNvbWJpbmF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCBjYW1lcmEgZGV2aWNlcyB3aWxsIHN1cHBvcnQgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZGVmaW5lZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KSBmb3IgdGhlIEpQRUcgZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPkZvciBhIGdpdmVuIHVzZSBjYXNlLDx3YnIvPiB0aGUgYWN0dWFsIG1heGltdW0gc3VwcG9ydGVkIHJlc29sdXRpb24KK21heSBiZSBsb3dlciB0aGFuIHdoYXQgaXMgbGlzdGVkIGhlcmUsPHdici8+IGRlcGVuZGluZyBvbiB0aGUgZGVzdGluYXRpb24KK1N1cmZhY2UgZm9yIHRoZSBpbWFnZSBkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gZm9yIHJlY29yZGluZyB2aWRlbyw8d2JyLz4KK3RoZSB2aWRlbyBlbmNvZGVyIGNob3NlbiBtYXkgaGF2ZSBhIG1heGltdW0gc2l6ZSBsaW1pdCAoZS48d2JyLz5nLjx3YnIvPiAxMDgwcCkKK3NtYWxsZXIgdGhhbiB3aGF0IHRoZSBjYW1lcmEgKGUuPHdici8+Zy48d2JyLz4gbWF4aW11bSByZXNvbHV0aW9uIGlzIDMyNjR4MjQ0OCkKK2NhbiBwcm92aWRlLjx3YnIvPjwvcD4KKzxwPlBsZWFzZSByZWZlcmVuY2UgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBpbWFnZSBkYXRhIGRlc3RpbmF0aW9uIHRvCitjaGVjayBpZiBpdCBsaW1pdHMgdGhlIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2UgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUgbWluaW11bSByZXF1aXJlZCBvdXRwdXQgc3RyZWFtCitjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0aGUgaGFyZHdhcmUgbGV2ZWwKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4pOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5Gb3JtYXQ8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlNpemU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPkhhcmR3YXJlIExldmVsPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gKCoxKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj4xOTIweDEwODAgKDEwODBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiAxMDgwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj4xMjgweDcyMCAoNzIwcCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgNzIwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj42NDB4NDgwICg0ODBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiA0ODBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjMyMHgyNDAgKDI0MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDI0MHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbGwgb3V0cHV0IHNpemVzIGF2YWlsYWJsZSBmb3IgSlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RlVMTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbGwgb3V0cHV0IHNpemVzIGF2YWlsYWJsZSBmb3IgSlBFRyw8d2JyLz4gdXAgdG8gdGhlIG1heGltdW0gdmlkZW8gc2l6ZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TElNSVRFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+c2FtZSBhcyBZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+UmVmZXIgdG8gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPiBmb3IgYWRkaXRpb25hbCBtYW5kYXRvcnkKK3N0cmVhbSBjb25maWd1cmF0aW9ucyBvbiBhIHBlci1jYXBhYmlsaXR5IGJhc2lzLjx3YnIvPjwvcD4KKzxwPioxOiBGb3IgSlBFRyBmb3JtYXQsPHdici8+IHRoZSBzaXplcyBtYXkgYmUgcmVzdHJpY3RlZCBieSBiZWxvdyBjb25kaXRpb25zOjwvcD4KKzx1bD4KKzxsaT5UaGUgSEFMIG1heSBjaG9vc2UgdGhlIGFzcGVjdCByYXRpbyBvZiBlYWNoIEpwZWcgc2l6ZSB0byBiZSBvbmUgb2Ygd2VsbCBrbm93biBvbmVzCisoZS48d2JyLz5nLjx3YnIvPiA0OjMsPHdici8+IDE2OjksPHdici8+IDM6MiBldGMuPHdici8+KS48d2JyLz4gSWYgdGhlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24KKyhkZWZpbmVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikgaGFzIGFuIGFzcGVjdCByYXRpbyBvdGhlciB0aGFuIHRoZXNlLDx3YnIvPgoraXQgZG9lcyBub3QgaGF2ZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUgc3VwcG9ydGVkIEpQRUcgc2l6ZXMuPHdici8+PC9saT4KKzxsaT5Tb21lIGhhcmR3YXJlIEpQRUcgZW5jb2RlcnMgbWF5IGhhdmUgcGl4ZWwgYm91bmRhcnkgYWxpZ25tZW50IHJlcXVpcmVtZW50cyw8d2JyLz4gc3VjaCBhcwordGhlIGRpbWVuc2lvbnMgYmVpbmcgYSBtdWx0aXBsZSBvZiAxNi48d2JyLz4KK1RoZXJlZm9yZSw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIG1heSBiZSBzbWFsbGVyIHRoYW4gc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbi48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHRoZSBsYXJnZXN0IEpQRUcgc2l6ZSB3aWxsIGJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZSBzZW5zb3IgbWF4aW11bQorcmVzb2x1dGlvbiBnaXZlbiBhYm92ZSBjb25zdHJhaW50cy48d2JyLz4gSXQgaXMgcmVxdWlyZWQgdGhhdCBhZnRlciBhc3BlY3QgcmF0aW8gYWRqdXN0bWVudHMsPHdici8+CithZGRpdGlvbmFsIHNpemUgcmVkdWN0aW9uIGR1ZSB0byBvdGhlciBpc3N1ZXMgbXVzdCBiZSBsZXNzIHRoYW4gMyUgaW4gYXJlYS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+CitpZiB0aGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiBpcyAzMjgweDI0NjQsPHdici8+IGlmIHRoZSBtYXhpbXVtIEpQRUcgc2l6ZSBoYXMgYXNwZWN0CityYXRpbyA0OjMsPHdici8+IGFuZCB0aGUgSlBFRyBlbmNvZGVyIGFsaWdubWVudCByZXF1aXJlbWVudCBpcyAxNiw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIHdpbGwgYmUKKzMyNjR4MjQ0OC48d2JyLz48L2xpPgorPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RG8gbm90IHNldCB0aGlzIHByb3BlcnR5IGRpcmVjdGx5CisoaXQgaXMgc3ludGhldGljIGFuZCB3aWxsIG5vdCBiZSBhdmFpbGFibGUgYXQgdGhlIEhBTCBsYXllcik7CitzZXQgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiBpbnN0ZWFkLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgb3V0cHV0IGZvcm1hdHMgbWF5IGJlIHN1cHBvcnRlZCBpbiBhIGNvbmZpZ3VyYXRpb24gd2l0aAorYW4gaW5wdXQgc3RyZWFtIG9mIGEgcGFydGljdWxhciBmb3JtYXQuPHdici8+IEZvciBtb3JlIGRldGFpbHMsPHdici8+IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPklucHV0PHdici8+T3V0cHV0PHdici8+Rm9ybWF0czx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+SXQgaXMgcmVjb21tZW5kZWQgKGJ1dCBub3QgbWFuZGF0b3J5KSB0byBhbHNvIGluY2x1ZGUgaGFsZi88d2JyLz5xdWFydGVyCitvZiBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIGZvciBKUEVHIGZvcm1hdHMgKHJlZ2FyZGxlc3Mgb2YgaGFyZHdhcmUKK2xldmVsKS48d2JyLz48L3A+Cis8cD4oVGhlIGZvbGxvd2luZyBpcyBhIHJld29yZGluZyBvZiB0aGUgYWJvdmUgcmVxdWlyZWQgdGFibGUpOjwvcD4KKzxwPlRoZSBIQUwgbXVzdCBpbmNsdWRlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gKGRlZmluZWQgYnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikuPHdici8+PC9wPgorPHA+Rm9yIEZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pLDx3YnIvPgordGhlIEhBTCBtdXN0IGluY2x1ZGUgYWxsIFlVVl88d2JyLz40MjBfPHdici8+ODg4IHNpemVzIHRoYXQgaGF2ZSBKUEVHIHNpemVzIGxpc3RlZAoraGVyZSBhcyBvdXRwdXQgc3RyZWFtcy48d2JyLz48L3A+Cis8cD5JdCBtdXN0IGFsc28gaW5jbHVkZSBlYWNoIGJlbG93IHJlc29sdXRpb24gaWYgaXQgaXMgc21hbGxlciB0aGFuIG9yCitlcXVhbCB0byB0aGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZm9yIGJvdGggWVVWXzx3YnIvPjQyMF88d2JyLz44ODggYW5kIEpQRUcKK2Zvcm1hdHMpLDx3YnIvPiBhcyBvdXRwdXQgc3RyZWFtczo8L3A+Cis8dWw+Cis8bGk+MjQwcCAoMzIwIHggMjQwKTwvbGk+Cis8bGk+NDgwcCAoNjQwIHggNDgwKTwvbGk+Cis8bGk+NzIwcCAoMTI4MCB4IDcyMCk8L2xpPgorPGxpPjEwODBwICgxOTIwIHggMTA4MCk8L2xpPgorPC91bD4KKzxwPkZvciBMSU1JVEVEIGNhcGFiaWxpdHkgZGV2aWNlcworKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBMSU1JVEVEPC9jb2RlPiksPHdici8+Cit0aGUgSEFMIG9ubHkgaGFzIHRvIGxpc3QgdXAgdG8gdGhlIG1heGltdW0gdmlkZW8gc2l6ZQorc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UuPHdici8+PC9wPgorPHA+UmVnYXJkbGVzcyBvZiBoYXJkd2FyZSBsZXZlbCw8d2JyLz4gZXZlcnkgb3V0cHV0IHJlc29sdXRpb24gYXZhaWxhYmxlIGZvcgorWVVWXzx3YnIvPjQyMF88d2JyLz44ODggbXVzdCBhbHNvIGJlIGF2YWlsYWJsZSBmb3IgSU1QTEVNRU5UQVRJT05fPHdici8+REVGSU5FRC48d2JyLz48L3A+Cis8cD5UaGlzIHN1cGVyY2VkZXMgdGhlIGZvbGxvd2luZyBmaWVsZHMsPHdici8+IHdoaWNoIGFyZSBub3cgZGVwcmVjYXRlZDo8L3A+Cis8dWw+Cis8bGk+YXZhaWxhYmxlRm9ybWF0czwvbGk+Cis8bGk+YXZhaWxhYmxlW1Byb2Nlc3NlZCw8d2JyLz5SYXcsPHdici8+SnBlZ11TaXplczwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmNyb3BwaW5nVHlwZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wcGluZzx3YnIvPlR5cGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DRU5URVJfT05MWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugb25seSBzdXBwb3J0cyBjZW50ZXJlZCBjcm9wIHJlZ2lvbnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlJFRUZPUk08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGFyYml0cmFyaWx5IGNob3NlbiBjcm9wIHJlZ2lvbnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGNyb3AgdHlwZSB0aGF0IHRoaXMgY2FtZXJhIGRldmljZSBzdXBwb3J0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHBhc3NpbmcgYSBub24tY2VudGVyZWQgY3JvcCByZWdpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPikgdG8gYSBjYW1lcmEKK2RldmljZSB0aGF0IG9ubHkgc3VwcG9ydHMgQ0VOVEVSXzx3YnIvPk9OTFkgY3JvcHBpbmcsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbW92ZSB0aGUKK2Nyb3AgcmVnaW9uIHRvIHRoZSBjZW50ZXIgb2YgdGhlIHNlbnNvciBhY3RpdmUgYXJyYXkgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikKK2FuZCBrZWVwIHRoZSBjcm9wIHJlZ2lvbiB3aWR0aCBhbmQgaGVpZ2h0IHVuY2hhbmdlZC48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXR1cm4gdGhlCitmaW5hbCB1c2VkIGNyb3AgcmVnaW9uIGluIG1ldGFkYXRhIHJlc3VsdCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4uPHdici8+PC9wPgorPHA+Q2FtZXJhIGRldmljZXMgdGhhdCBzdXBwb3J0IEZSRUVGT1JNIGNyb3BwaW5nIHdpbGwgc3VwcG9ydCBhbnkgY3JvcCByZWdpb24gdGhhdAoraXMgaW5zaWRlIG9mIHRoZSBhY3RpdmUgYXJyYXkuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYXBwbHkgdGhlIHNhbWUgY3JvcCByZWdpb24gYW5kCityZXR1cm4gdGhlIGZpbmFsIHVzZWQgY3JvcCByZWdpb24gaW4gY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+Ljx3YnIvPjwvcD4KKzxwPkxFR0FDWSBjYXBhYmlsaXR5IGRldmljZXMgd2lsbCBvbmx5IHN1cHBvcnQgQ0VOVEVSXzx3YnIvPk9OTFkgY3JvcHBpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCByZWdpb24gb2YgdGhlIHNlbnNvciB0byByZWFkIG91dCBmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyByZWxhdGl2ZSB0bworICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGRpZ2l0YWwgem9vbS48d2JyLz48L3A+Cis8cD5UaGUgY3JvcCByZWdpb24gY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb2ZmCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IHdpdGggPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUKK3RvcC1sZWZ0IGNvcm5lciBvZiB0aGUgc2Vuc29yIGFjdGl2ZSBhcnJheS48d2JyLz48L3A+Cis8cD5PdXRwdXQgc3RyZWFtcyB1c2UgdGhpcyByZWN0YW5nbGUgdG8gcHJvZHVjZSB0aGVpciBvdXRwdXQsPHdici8+Citjcm9wcGluZyB0byBhIHNtYWxsZXIgcmVnaW9uIGlmIG5lY2Vzc2FyeSB0byBtYWludGFpbiB0aGUKK3N0cmVhbSdzIGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlbiBzY2FsaW5nIHRoZSBzZW5zb3IgaW5wdXQgdG8KK21hdGNoIHRoZSBvdXRwdXQncyBjb25maWd1cmVkIHJlc29sdXRpb24uPHdici8+PC9wPgorPHA+VGhlIGNyb3AgcmVnaW9uIGlzIGFwcGxpZWQgYWZ0ZXIgdGhlIFJBVyB0byBvdGhlciBjb2xvcgorc3BhY2UgKGUuPHdici8+Zy48d2JyLz4gWVVWKSBjb252ZXJzaW9uLjx3YnIvPiBTaW5jZSByYXcgc3RyZWFtcworKGUuPHdici8+Zy48d2JyLz4gUkFXMTYpIGRvbid0IGhhdmUgdGhlIGNvbnZlcnNpb24gc3RhZ2UsPHdici8+IHRoZXkgYXJlIG5vdAorY3JvcHBhYmxlLjx3YnIvPiBUaGUgY3JvcCByZWdpb24gd2lsbCBiZSBpZ25vcmVkIGJ5IHJhdyBzdHJlYW1zLjx3YnIvPjwvcD4KKzxwPkZvciBub24tcmF3IHN0cmVhbXMsPHdici8+IGFueSBhZGRpdGlvbmFsIHBlci1zdHJlYW0gY3JvcHBpbmcgd2lsbAorYmUgZG9uZSB0byBtYXhpbWl6ZSB0aGUgZmluYWwgcGl4ZWwgYXJlYSBvZiB0aGUgc3RyZWFtLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgY3JvcCByZWdpb24gaXMgc2V0IHRvIGEgNDozIGFzcGVjdAorcmF0aW8sPHdici8+IHRoZW4gNDozIHN0cmVhbXMgd2lsbCB1c2UgdGhlIGV4YWN0IGNyb3AKK3JlZ2lvbi48d2JyLz4gMTY6OSBzdHJlYW1zIHdpbGwgZnVydGhlciBjcm9wIHZlcnRpY2FsbHkKKyhsZXR0ZXJib3gpLjx3YnIvPjwvcD4KKzxwPkNvbnZlcnNlbHksPHdici8+IGlmIHRoZSBjcm9wIHJlZ2lvbiBpcyBzZXQgdG8gYSAxNjo5LDx3YnIvPiB0aGVuIDQ6Mworb3V0cHV0cyB3aWxsIGNyb3AgaG9yaXpvbnRhbGx5IChwaWxsYXJib3gpLDx3YnIvPiBhbmQgMTY6OQorc3RyZWFtcyB3aWxsIG1hdGNoIGV4YWN0bHkuPHdici8+IFRoZXNlIGFkZGl0aW9uYWwgY3JvcHMgd2lsbAorYmUgY2VudGVyZWQgd2l0aGluIHRoZSBjcm9wIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgY3JvcCByZWdpb24gY2Fubm90CitiZSBzZXQgdG8gYmUgc21hbGxlciB0aGFuCis8Y29kZT5mbG9vciggYWN0aXZlQXJyYXlTaXplLjx3YnIvPndpZHRoIC88d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbSI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWF4PHdici8+RGlnaXRhbDx3YnIvPlpvb208L2E+ICk8L2NvZGU+IGFuZAorPGNvZGU+Zmxvb3IoIGFjdGl2ZUFycmF5U2l6ZS48d2JyLz5oZWlnaHQgLzx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NYXg8d2JyLz5EaWdpdGFsPHdici8+Wm9vbTwvYT4gKTwvY29kZT4sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSBtYXkgYWRqdXN0IHRoZSBjcm9wIHJlZ2lvbiB0byBhY2NvdW50Citmb3Igcm91bmRpbmcgYW5kIG90aGVyIGhhcmR3YXJlIHJlcXVpcmVtZW50czsgdGhlIGZpbmFsCitjcm9wIHJlZ2lvbiB1c2VkIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBjYXB0dXJlCityZXN1bHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgb3V0cHV0IHN0cmVhbXMgbXVzdCBtYWludGFpbiBzcXVhcmUgcGl4ZWxzIGF0IGFsbAordGltZXMsPHdici8+IG5vIG1hdHRlciB3aGF0IHRoZSByZWxhdGl2ZSBhc3BlY3QgcmF0aW9zIG9mIHRoZQorY3JvcCByZWdpb24gYW5kIHRoZSBzdHJlYW0gYXJlLjx3YnIvPiAgTmVnYXRpdmUgdmFsdWVzIGZvcgorY29ybmVyIGFyZSBhbGxvd2VkIGZvciByYXcgb3V0cHV0IGlmIGZ1bGwgcGl4ZWwgYXJyYXkgaXMKK2xhcmdlciB0aGFuIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz4gV2lkdGggYW5kIGhlaWdodCBtYXkgYmUKK3JvdW5kZWQgdG8gbmVhcmVzdCBsYXJnZXIgc3VwcG9ydGFibGUgd2lkdGgsPHdici8+IGVzcGVjaWFsbHkKK2ZvciByYXcgb3V0cHV0LDx3YnIvPiB3aGVyZSBvbmx5IGEgZmV3IGZpeGVkIHNjYWxlcyBtYXkgYmUKK3Bvc3NpYmxlLjx3YnIvPjwvcD4KKzxwPkZvciBhIHNldCBvZiBvdXRwdXQgc3RyZWFtcyBjb25maWd1cmVkLDx3YnIvPiBpZiB0aGUgc2Vuc29yIG91dHB1dCBpcyBjcm9wcGVkIHRvIGEgc21hbGxlcgorc2l6ZSB0aGFuIGFjdGl2ZSBhcnJheSBzaXplLDx3YnIvPiB0aGUgSEFMIG5lZWQgZm9sbG93IGJlbG93IGNyb3BwaW5nIHJ1bGVzOjwvcD4KKzx1bD4KKzxsaT4KKzxwPlRoZSBIQUwgbmVlZCBoYW5kbGUgdGhlIGNyb3BSZWdpb24gYXMgaWYgdGhlIHNlbnNvciBjcm9wIHNpemUgaXMgdGhlIGVmZmVjdGl2ZSBhY3RpdmUKK2FycmF5IHNpemUuPHdici8+TW9yZSBzcGVjaWZpY2FsbHksPHdici8+IHRoZSBIQUwgbXVzdCB0cmFuc2Zvcm0gdGhlIHJlcXVlc3QgY3JvcFJlZ2lvbiBmcm9tCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gdG8gdGhlIHNlbnNvciBjcm9wcGVkIHBpeGVsIGFyZWEgc2l6ZSBpbiB0aGlzIHdheTo8L3A+Cis8b2w+Cis8bGk+VHJhbnNsYXRlIHRoZSByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiB3Ljx3YnIvPnIuPHdici8+dC4sPHdici8+IHRoZSBsZWZ0IHRvcCBjb3JuZXIgb2YgdGhlIHNlbnNvcgorY3JvcHBlZCBwaXhlbCBhcmVhIGJ5ICh0eCw8d2JyLz4gdHkpLDx3YnIvPgord2hlcmUgPGNvZGU+dHggPSBzZW5zb3JDcm9wLjx3YnIvPnRvcCAqIChzZW5zb3JDcm9wLjx3YnIvPmhlaWdodCAvPHdici8+IGFjdGl2ZUFycmF5U2l6ZS48d2JyLz5oZWlnaHQpPC9jb2RlPgorYW5kIDxjb2RlPnR4ID0gc2Vuc29yQ3JvcC48d2JyLz5sZWZ0ICogKHNlbnNvckNyb3AuPHdici8+d2lkdGggLzx3YnIvPiBhY3RpdmVBcnJheVNpemUuPHdici8+d2lkdGgpPC9jb2RlPi48d2JyLz4gVGhlCisoc2Vuc29yQ3JvcC48d2JyLz50b3AsPHdici8+IHNlbnNvckNyb3AuPHdici8+bGVmdCkgaXMgdGhlIGNvb3JkaW5hdGUgYmFzZWQgb2ZmIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+U2NhbGUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgcmVxdWVzdGVkIGNyb3BSZWdpb24gd2l0aCBzY2FsaW5nIGZhY3RvciBvZgorc2Vuc29yPHdici8+Q3JvcC48d2JyLz53aWR0aC88d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUuPHdici8+d2lkdGggYW5kIHNlbnNvcjx3YnIvPkNyb3AuPHdici8+aGVpZ2h0Lzx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZS48d2JyLz5oZWlnaHQKK3Jlc3BlY3RpdmVseS48d2JyLz4KK09uY2UgdGhpcyBuZXcgY3JvcFJlZ2lvbiBpcyBjYWxjdWxhdGVkLDx3YnIvPiB0aGUgSEFMIG11c3QgdXNlIHRoaXMgcmVnaW9uIHRvIGNyb3AgdGhlIGltYWdlCit3aXRoIHJlZ2FyZCB0byB0aGUgc2Vuc29yIGNyb3Agc2l6ZSAoZWZmZWN0aXZlIGFjdGl2ZSBhcnJheSBzaXplKS48d2JyLz4gVGhlIEhBTCBzdGlsbCBuZWVkCitmb2xsb3cgdGhlIGdlbmVyYWwgY3JvcHBpbmcgcnVsZSBmb3IgdGhpcyBuZXcgY3JvcFJlZ2lvbiBhbmQgZWZmZWN0aXZlIGFjdGl2ZQorYXJyYXkgc2l6ZS48d2JyLz48L2xpPgorPC9vbD4KKzwvbGk+Cis8bGk+Cis8cD5UaGUgSEFMIG11c3QgcmVwb3J0IHRoZSBjcm9wUmVnaW9uIHdpdGggcmVnYXJkIHRvIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz4KK1RoZSBIQUwgbmVlZCBjb252ZXJ0IHRoZSBuZXcgY3JvcFJlZ2lvbiBnZW5lcmF0ZWQgYWJvdmUgdy48d2JyLz5yLjx3YnIvPnQuLDx3YnIvPiBmdWxsIGFjdGl2ZSBhcnJheSBzaXplLjx3YnIvPgorVGhlIHJlcG9ydGVkIGNyb3BSZWdpb24gbWF5IGJlIHNsaWdodGx5IGRpZmZlcmVudCB3aXRoIHRoZSByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiBzaW5jZQordGhlIEhBTCBtYXkgYWRqdXN0IHRoZSBjcm9wIHJlZ2lvbiB0byBhY2NvdW50IGZvciByb3VuZGluZyw8d2JyLz4gY29udmVyc2lvbiBlcnJvciw8d2JyLz4gb3Igb3RoZXIKK2hhcmR3YXJlIGxpbWl0YXRpb25zLjx3YnIvPjwvcD4KKzwvbGk+Cis8L3VsPgorPHA+SEFMMi48d2JyLz54IHVzZXMgb25seSAoeCw8d2JyLz4geSw8d2JyLz4gd2lkdGgpPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc2Vuc29yIiBjbGFzcz0ic2VjdGlvbiI+c2Vuc29yPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkR1cmF0aW9uIGVhY2ggcGl4ZWwgaXMgZXhwb3NlZCB0bworbGlnaHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmV4cG9zdXJlVGltZVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgc2Vuc29yIGNhbid0IGV4cG9zZSB0aGlzIGV4YWN0IGR1cmF0aW9uLDx3YnIvPiBpdCB3aWxsIHNob3J0ZW4gdGhlCitkdXJhdGlvbiBleHBvc2VkIHRvIHRoZSBuZWFyZXN0IHBvc3NpYmxlIHZhbHVlIChyYXRoZXIgdGhhbiBleHBvc2UgbG9uZ2VyKS48d2JyLz4KK1RoZSBmaW5hbCBleHBvc3VyZSB0aW1lIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RHVyYXRpb24gZnJvbSBzdGFydCBvZiBmcmFtZSBleHBvc3VyZSB0bworc3RhcnQgb2YgbmV4dCBmcmFtZSBleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+Ljx3YnIvPiBUaGUgZHVyYXRpb24KK2lzIGNhcHBlZCB0byA8Y29kZT5tYXgoZHVyYXRpb24sPHdici8+IGV4cG9zdXJlVGltZSArIG92ZXJoZWFkKTwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIGZyYW1lIHJhdGUgdGhhdCBjYW4gYmUgc3VwcG9ydGVkIGJ5IGEgY2FtZXJhIHN1YnN5c3RlbSBpcworYSBmdW5jdGlvbiBvZiBtYW55IGZhY3RvcnM6PC9wPgorPHVsPgorPGxpPlJlcXVlc3RlZCByZXNvbHV0aW9ucyBvZiBvdXRwdXQgaW1hZ2Ugc3RyZWFtczwvbGk+Cis8bGk+QXZhaWxhYmlsaXR5IG9mIGJpbm5pbmcgLzx3YnIvPiBza2lwcGluZyBtb2RlcyBvbiB0aGUgaW1hZ2VyPC9saT4KKzxsaT5UaGUgYmFuZHdpZHRoIG9mIHRoZSBpbWFnZXIgaW50ZXJmYWNlPC9saT4KKzxsaT5UaGUgYmFuZHdpZHRoIG9mIHRoZSB2YXJpb3VzIElTUCBwcm9jZXNzaW5nIGJsb2NrczwvbGk+Cis8L3VsPgorPHA+U2luY2UgdGhlc2UgZmFjdG9ycyBjYW4gdmFyeSBncmVhdGx5IGJldHdlZW4gZGlmZmVyZW50IElTUHMgYW5kCitzZW5zb3JzLDx3YnIvPiB0aGUgY2FtZXJhIGFic3RyYWN0aW9uIHRyaWVzIHRvIHJlcHJlc2VudCB0aGUgYmFuZHdpZHRoCityZXN0cmljdGlvbnMgd2l0aCBhcyBzaW1wbGUgYSBtb2RlbCBhcyBwb3NzaWJsZS48d2JyLz48L3A+Cis8cD5UaGUgbW9kZWwgcHJlc2VudGVkIGhhcyB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczo8L3A+Cis8dWw+Cis8bGk+VGhlIGltYWdlIHNlbnNvciBpcyBhbHdheXMgY29uZmlndXJlZCB0byBvdXRwdXQgdGhlIHNtYWxsZXN0CityZXNvbHV0aW9uIHBvc3NpYmxlIGdpdmVuIHRoZSBhcHBsaWNhdGlvbidzIHJlcXVlc3RlZCBvdXRwdXQgc3RyZWFtCitzaXplcy48d2JyLz4gIFRoZSBzbWFsbGVzdCByZXNvbHV0aW9uIGlzIGRlZmluZWQgYXMgYmVpbmcgYXQgbGVhc3QgYXMgbGFyZ2UKK2FzIHRoZSBsYXJnZXN0IHJlcXVlc3RlZCBvdXRwdXQgc3RyZWFtIHNpemU7IHRoZSBjYW1lcmEgcGlwZWxpbmUgbXVzdAorbmV2ZXIgZGlnaXRhbGx5IHVwc2FtcGxlIHNlbnNvciBkYXRhIHdoZW4gdGhlIGNyb3AgcmVnaW9uIGNvdmVycyB0aGUKK3dob2xlIHNlbnNvci48d2JyLz4gSW4gZ2VuZXJhbCw8d2JyLz4gdGhpcyBtZWFucyB0aGF0IGlmIG9ubHkgc21hbGwgb3V0cHV0IHN0cmVhbQorcmVzb2x1dGlvbnMgYXJlIGNvbmZpZ3VyZWQsPHdici8+IHRoZSBzZW5zb3IgY2FuIHByb3ZpZGUgYSBoaWdoZXIgZnJhbWUKK3JhdGUuPHdici8+PC9saT4KKzxsaT5TaW5jZSBhbnkgcmVxdWVzdCBtYXkgdXNlIGFueSBvciBhbGwgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkCitvdXRwdXQgc3RyZWFtcyw8d2JyLz4gdGhlIHNlbnNvciBhbmQgSVNQIG11c3QgYmUgY29uZmlndXJlZCB0byBzdXBwb3J0CitzY2FsaW5nIGEgc2luZ2xlIGNhcHR1cmUgdG8gYWxsIHRoZSBzdHJlYW1zIGF0IHRoZSBzYW1lIHRpbWUuPHdici8+ICBUaGlzCittZWFucyB0aGUgY2FtZXJhIHBpcGVsaW5lIG11c3QgYmUgcmVhZHkgdG8gcHJvZHVjZSB0aGUgbGFyZ2VzdAorcmVxdWVzdGVkIG91dHB1dCBzaXplIHdpdGhvdXQgYW55IGRlbGF5Ljx3YnIvPiAgVGhlcmVmb3JlLDx3YnIvPiB0aGUgb3ZlcmFsbAorZnJhbWUgcmF0ZSBvZiBhIGdpdmVuIGNvbmZpZ3VyZWQgc3RyZWFtIHNldCBpcyBnb3Zlcm5lZCBvbmx5IGJ5IHRoZQorbGFyZ2VzdCByZXF1ZXN0ZWQgc3RyZWFtIHJlc29sdXRpb24uPHdici8+PC9saT4KKzxsaT5Vc2luZyBtb3JlIHRoYW4gb25lIG91dHB1dCBzdHJlYW0gaW4gYSByZXF1ZXN0IGRvZXMgbm90IGFmZmVjdCB0aGUKK2ZyYW1lIGR1cmF0aW9uLjx3YnIvPjwvbGk+Cis8bGk+Q2VydGFpbiBmb3JtYXQtc3RyZWFtcyBtYXkgbmVlZCB0byBkbyBhZGRpdGlvbmFsIGJhY2tncm91bmQgcHJvY2Vzc2luZworYmVmb3JlIGRhdGEgaXMgY29uc3VtZWQvPHdici8+cHJvZHVjZWQgYnkgdGhhdCBzdHJlYW0uPHdici8+IFRoZXNlIHByb2Nlc3NvcnMKK2NhbiBydW4gY29uY3VycmVudGx5IHRvIHRoZSByZXN0IG9mIHRoZSBjYW1lcmEgcGlwZWxpbmUsPHdici8+IGJ1dAorY2Fubm90IHByb2Nlc3MgbW9yZSB0aGFuIDEgY2FwdHVyZSBhdCBhIHRpbWUuPHdici8+PC9saT4KKzwvdWw+Cis8cD5UaGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24sPHdici8+IGdpdmVuIHRoZSBtb2RlbCBhYm92ZSw8d2JyLz4KK2lzIHByb3ZpZGVkIHZpYSB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiBmaWVsZCB1c2luZworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4uPHdici8+CitUaGVzZSBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1heGltdW0gZnJhbWUgcmF0ZSAvPHdici8+IG1pbmltdW0gZnJhbWUKK2R1cmF0aW9uIHRoYXQgaXMgcG9zc2libGUgZm9yIGEgZ2l2ZW4gc3RyZWFtIGNvbmZpZ3VyYXRpb24uPHdici8+PC9wPgorPHA+U3BlY2lmaWNhbGx5LDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSB0aGUgZm9sbG93aW5nIHJ1bGVzIHRvCitkZXRlcm1pbmUgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gaXQgY2FuIHJlcXVlc3QgZnJvbSB0aGUgY2FtZXJhCitkZXZpY2U6PC9wPgorPG9sPgorPGxpPkxldCB0aGUgc2V0IG9mIGN1cnJlbnRseSBjb25maWd1cmVkIGlucHV0Lzx3YnIvPm91dHB1dCBzdHJlYW1zCitiZSBjYWxsZWQgPGNvZGU+UzwvY29kZT4uPHdici8+PC9saT4KKzxsaT5GaW5kIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9ucyBmb3IgZWFjaCBzdHJlYW0gaW4gPGNvZGU+UzwvY29kZT4sPHdici8+IGJ5IGxvb2tpbmcKK2l0IHVwIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4gdXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4KKyh3aXRoIGl0cyByZXNwZWN0aXZlIHNpemUvPHdici8+Zm9ybWF0KS48d2JyLz4gTGV0IHRoaXMgc2V0IG9mIGZyYW1lIGR1cmF0aW9ucyBiZQorY2FsbGVkIDxjb2RlPkY8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8bGk+Rm9yIGFueSBnaXZlbiByZXF1ZXN0IDxjb2RlPlI8L2NvZGU+LDx3YnIvPiB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBhbGxvd2VkCitmb3IgPGNvZGU+UjwvY29kZT4gaXMgdGhlIG1heGltdW0gb3V0IG9mIGFsbCB2YWx1ZXMgaW4gPGNvZGU+RjwvY29kZT4uPHdici8+IExldCB0aGUgc3RyZWFtcwordXNlZCBpbiA8Y29kZT5SPC9jb2RlPiBiZSBjYWxsZWQgPGNvZGU+U188d2JyLz5yPC9jb2RlPi48d2JyLz48L2xpPgorPC9vbD4KKzxwPklmIG5vbmUgb2YgdGhlIHN0cmVhbXMgaW4gPGNvZGU+U188d2JyLz5yPC9jb2RlPiBoYXZlIGEgc3RhbGwgdGltZSAobGlzdGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+Cit1c2luZyBpdHMgcmVzcGVjdGl2ZSBzaXplLzx3YnIvPmZvcm1hdCksPHdici8+IHRoZW4gdGhlIGZyYW1lIGR1cmF0aW9uIGluIDxjb2RlPkY8L2NvZGU+CitkZXRlcm1pbmVzIHRoZSBzdGVhZHkgc3RhdGUgZnJhbWUgcmF0ZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3aWxsIGdldAoraWYgaXQgdXNlcyA8Y29kZT5SPC9jb2RlPiBhcyBhIHJlcGVhdGluZyByZXF1ZXN0Ljx3YnIvPiBMZXQgdGhpcyBzcGVjaWFsIGtpbmQgb2YKK3JlcXVlc3QgYmUgY2FsbGVkIDxjb2RlPlJzaW1wbGU8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkEgcmVwZWF0aW5nIHJlcXVlc3QgPGNvZGU+UnNpbXBsZTwvY29kZT4gY2FuIGJlIDxlbT5vY2Nhc2lvbmFsbHk8L2VtPiBpbnRlcmxlYXZlZAorYnkgYSBzaW5nbGUgY2FwdHVyZSBvZiBhIG5ldyByZXF1ZXN0IDxjb2RlPlJzdGFsbDwvY29kZT4gKHdoaWNoIGhhcyBhdCBsZWFzdAorb25lIGluLXVzZSBzdHJlYW0gd2l0aCBhIG5vbi0wIHN0YWxsIHRpbWUpIGFuZCBpZiA8Y29kZT5Sc3RhbGw8L2NvZGU+IGhhcyB0aGUKK3NhbWUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiB0aGlzIHdpbGwgbm90IGNhdXNlIGEgZnJhbWUgcmF0ZSBsb3NzCitpZiBhbGwgYnVmZmVycyBmcm9tIHRoZSBwcmV2aW91cyA8Y29kZT5Sc3RhbGw8L2NvZGU+IGhhdmUgYWxyZWFkeSBiZWVuCitkZWxpdmVyZWQuPHdici8+PC9wPgorPHA+Rm9yIG1vcmUgZGV0YWlscyBhYm91dCBzdGFsbGluZyw8d2JyLz4gc2VlCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uPC9hPi48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBtb3JlIGRldGFpbHMgYWJvdXQgc3RhbGxpbmcsPHdici8+IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGdhaW4gYXBwbGllZCB0byBzZW5zb3IgZGF0YQorYmVmb3JlIHByb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIElTTyBhcml0aG1ldGljIHVuaXRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHNlbnNpdGl2aXR5IGlzIHRoZSBzdGFuZGFyZCBJU08gc2Vuc2l0aXZpdHkgdmFsdWUsPHdici8+CithcyBkZWZpbmVkIGluIElTTyAxMjIzMjoyMDA2Ljx3YnIvPjwvcD4KKzxwPlRoZSBzZW5zaXRpdml0eSBtdXN0IGJlIHdpdGhpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiw8d2JyLz4gYW5kCitpZiBpZiBpdCBsZXNzIHRoYW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+bWF4PHdici8+QW5hbG9nPHdici8+U2Vuc2l0aXZpdHk8L2E+LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQoraXMgZ3VhcmFudGVlZCB0byB1c2Ugb25seSBhbmFsb2cgYW1wbGlmaWNhdGlvbiBmb3IgYXBwbHlpbmcgdGhlIGdhaW4uPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGFwcGx5IHRoZSBleGFjdCBzZW5zaXRpdml0eQorcmVxdWVzdGVkLDx3YnIvPiBpdCB3aWxsIHJlZHVjZSB0aGUgZ2FpbiB0byB0aGUgbmVhcmVzdCBzdXBwb3J0ZWQKK3ZhbHVlLjx3YnIvPiBUaGUgZmluYWwgc2Vuc2l0aXZpdHkgdXNlZCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUKK291dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklTTyAxMjIzMjoyMDA2IFJFSSBtZXRob2QgaXMgYWNjZXB0YWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5EYXRhCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIHBpeGVsIDxjb2RlPltSLDx3YnIvPiBHXzx3YnIvPmV2ZW4sPHdici8+IEdfPHdici8+b2RkLDx3YnIvPiBCXTwvY29kZT4gdGhhdCBzdXBwbGllcyB0aGUgdGVzdCBwYXR0ZXJuCit3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZTwvYT4gaXMgU09MSURfPHdici8+Q09MT1IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWFjaCBjb2xvciBjaGFubmVsIGlzIHRyZWF0ZWQgYXMgYW4gdW5zaWduZWQgMzItYml0IGludGVnZXIuPHdici8+CitUaGUgY2FtZXJhIGRldmljZSB0aGVuIHVzZXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgWCBiaXRzCit0aGF0IGNvcnJlc3BvbmQgdG8gaG93IG1hbnkgYml0cyBhcmUgaW4gaXRzIEJheWVyIHJhdyBzZW5zb3IKK291dHB1dC48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gYSBzZW5zb3Igd2l0aCBSQVcxMCBCYXllciBvdXRwdXQgd291bGQgdXNlIHRoZQorMTAgbW9zdCBzaWduaWZpY2FudCBiaXRzIGZyb20gZWFjaCBjb2xvciBjaGFubmVsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIHRlc3QgcGF0dGVybiBtb2RlIGlzIHVzZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhCitkZXZpY2UgcmV0dXJucyBjYXB0dXJlcyBmcm9tIHRoZSBpbWFnZSBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhpcyBpcyB0aGUgZGVmYXVsdCBpZiB0aGUga2V5IGlzIG5vdCBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U09MSURfQ09MT1I8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkVhY2ggcGl4ZWwgaW4gPGNvZGU+W1IsPHdici8+IEdfPHdici8+ZXZlbiw8d2JyLz4gR188d2JyLz5vZGQsPHdici8+IEJdPC9jb2RlPiBpcyByZXBsYWNlZCBieSBpdHMKK3Jlc3BlY3RpdmUgY29sb3IgY2hhbm5lbCBwcm92aWRlZCBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5EYXRhPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZTo8L3A+Cis8cHJlPjxjb2RlPmFuZHJvaWQuPHdici8+dGVzdFBhdHRlcm5EYXRhID0gWzAsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDBdCis8L2NvZGU+PC9wcmU+Cis8cD5BbGwgZ3JlZW4gcGl4ZWxzIGFyZSAxMDAlIGdyZWVuLjx3YnIvPiBBbGwgcmVkLzx3YnIvPmJsdWUgcGl4ZWxzIGFyZSBibGFjay48d2JyLz48L3A+Cis8cHJlPjxjb2RlPmFuZHJvaWQuPHdici8+dGVzdFBhdHRlcm5EYXRhID0gWzB4RkZGRkZGRkYsPHdici8+IDAsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDBdCis8L2NvZGU+PC9wcmU+Cis8cD5BbGwgcmVkIHBpeGVscyBhcmUgMTAwJSByZWQuPHdici8+IE9ubHkgdGhlIG9kZCBncmVlbiBwaXhlbHMKK2FyZSAxMDAlIGdyZWVuLjx3YnIvPiBBbGwgYmx1ZSBwaXhlbHMgYXJlIDEwMCUgYmxhY2suPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09MT1JfQkFSUzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIHBpeGVsIGRhdGEgaXMgcmVwbGFjZWQgd2l0aCBhbiA4LWJhciBjb2xvciBwYXR0ZXJuLjx3YnIvPjwvcD4KKzxwPlRoZSB2ZXJ0aWNhbCBiYXJzIChsZWZ0LXRvLXJpZ2h0KSBhcmUgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+MTAwJSB3aGl0ZTwvbGk+Cis8bGk+eWVsbG93PC9saT4KKzxsaT5jeWFuPC9saT4KKzxsaT5ncmVlbjwvbGk+Cis8bGk+bWFnZW50YTwvbGk+Cis8bGk+cmVkPC9saT4KKzxsaT5ibHVlPC9saT4KKzxsaT5ibGFjazwvbGk+Cis8L3VsPgorPHA+SW4gZ2VuZXJhbCB0aGUgaW1hZ2Ugd291bGQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmc6PC9wPgorPHByZT48Y29kZT5XIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+CisuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4KKy48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPgorCisoQiA9IEJsdWUsPHdici8+IEsgPSBCbGFjaykKKzwvY29kZT48L3ByZT4KKzxwPkVhY2ggYmFyIHNob3VsZCB0YWtlIHVwIDEvPHdici8+OCBvZiB0aGUgc2Vuc29yIHBpeGVsIGFycmF5IHdpZHRoLjx3YnIvPgorV2hlbiB0aGlzIGlzIG5vdCBwb3NzaWJsZSw8d2JyLz4gdGhlIGJhciBzaXplIHNob3VsZCBiZSByb3VuZGVkCitkb3duIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYW5kIHRoZSBwYXR0ZXJuIGNhbiByZXBlYXQKK29uIHRoZSByaWdodCBzaWRlLjx3YnIvPjwvcD4KKzxwPkVhY2ggYmFyJ3MgaGVpZ2h0IG11c3QgYWx3YXlzIHRha2UgdXAgdGhlIGZ1bGwgc2Vuc29yCitwaXhlbCBhcnJheSBoZWlnaHQuPHdici8+PC9wPgorPHA+RWFjaCBwaXhlbCBpbiB0aGlzIHRlc3QgcGF0dGVybiBtdXN0IGJlIHNldCB0byBlaXRoZXIKKzAlIGludGVuc2l0eSBvciAxMDAlIGludGVuc2l0eS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT0xPUl9CQVJTX0ZBREVfVE9fR1JBWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRlc3QgcGF0dGVybiBpcyBzaW1pbGFyIHRvIENPTE9SXzx3YnIvPkJBUlMsPHdici8+IGV4Y2VwdCB0aGF0CitlYWNoIGJhciBzaG91bGQgc3RhcnQgYXQgaXRzIHNwZWNpZmllZCBjb2xvciBhdCB0aGUgdG9wLDx3YnIvPgorYW5kIGZhZGUgdG8gZ3JheSBhdCB0aGUgYm90dG9tLjx3YnIvPjwvcD4KKzxwPkZ1cnRoZXJtb3JlIGVhY2ggYmFyIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBpbnRvIGEgbGVmdCBhbmQKK3JpZ2h0IGhhbGYuPHdici8+IFRoZSBsZWZ0IGhhbGYgc2hvdWxkIGhhdmUgYSBzbW9vdGggZ3JhZGllbnQsPHdici8+CithbmQgdGhlIHJpZ2h0IGhhbGYgc2hvdWxkIGhhdmUgYSBxdWFudGl6ZWQgZ3JhZGllbnQuPHdici8+PC9wPgorPHA+SW4gcGFydGljdWxhciw8d2JyLz4gdGhlIHJpZ2h0IGhhbGYncyBzaG91bGQgY29uc2lzdCBvZiBibG9ja3Mgb2YgdGhlCitzYW1lIGNvbG9yIGZvciAxLzx3YnIvPjE2dGggYWN0aXZlIHNlbnNvciBwaXhlbCBhcnJheSB3aWR0aC48d2JyLz48L3A+Cis8cD5UaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBpbiB0aGUgcXVhbnRpemVkIGdyYWRpZW50IHNob3VsZAorYmUgY29waWVkIGZyb20gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgc21vb3RoIGdyYWRpZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBoZWlnaHQgb2YgZWFjaCBiYXIgc2hvdWxkIGFsd2F5cyBiZSBhIG11bHRpcGxlIG9mIDEyOC48d2JyLz4KK1doZW4gdGhpcyBpcyBub3QgdGhlIGNhc2UsPHdici8+IHRoZSBwYXR0ZXJuIHNob3VsZCByZXBlYXQgYXQgdGhlIGJvdHRvbQorb2YgdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBOOTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIHBpeGVsIGRhdGEgaXMgcmVwbGFjZWQgYnkgYSBwc2V1ZG8tcmFuZG9tIHNlcXVlbmNlCitnZW5lcmF0ZWQgZnJvbSBhIFBOOSA1MTItYml0IHNlcXVlbmNlICh0eXBpY2FsbHkgaW1wbGVtZW50ZWQKK2luIGhhcmR3YXJlIHdpdGggYSBsaW5lYXIgZmVlZGJhY2sgc2hpZnQgcmVnaXN0ZXIpLjx3YnIvPjwvcD4KKzxwPlRoZSBnZW5lcmF0b3Igc2hvdWxkIGJlIHJlc2V0IGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBmcmFtZSw8d2JyLz4KK2FuZCB0aHVzIGVhY2ggc3Vic2VxdWVudCByYXcgZnJhbWUgd2l0aCB0aGlzIHRlc3QgcGF0dGVybiBzaG91bGQKK2JlIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIGxhc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjU2PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZmlyc3QgY3VzdG9tIHRlc3QgcGF0dGVybi48d2JyLz4gQWxsIGN1c3RvbSBwYXR0ZXJucyB0aGF0IGFyZQorYXZhaWxhYmxlIG9ubHkgb24gdGhpcyBjYW1lcmEgZGV2aWNlIGFyZSBhdCBsZWFzdCB0aGlzIG51bWVyaWMKK3ZhbHVlLjx3YnIvPjwvcD4KKzxwPkFsbCBvZiB0aGUgY3VzdG9tIHRlc3QgcGF0dGVybnMgd2lsbCBiZSBzdGF0aWMKKyh0aGF0IGlzIHRoZSByYXcgaW1hZ2UgbXVzdCBub3QgdmFyeSBmcm9tIGZyYW1lIHRvIGZyYW1lKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGVuIGVuYWJsZWQsPHdici8+IHRoZSBzZW5zb3Igc2VuZHMgYSB0ZXN0IHBhdHRlcm4gaW5zdGVhZCBvZgorZG9pbmcgYSByZWFsIGV4cG9zdXJlIGZyb20gdGhlIGNhbWVyYS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGEgdGVzdCBwYXR0ZXJuIGlzIGVuYWJsZWQsPHdici8+IGFsbCBtYW51YWwgc2Vuc29yIGNvbnRyb2xzIHNwZWNpZmllZAorYnkgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+KiB3aWxsIGJlIGlnbm9yZWQuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBzaG91bGQKK3dvcmsgYXMgbm9ybWFsLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBtYW51YWwgZmxhc2ggaXMgZW5hYmxlZCw8d2JyLz4gZmxhc2ggZmlyaW5nIHNob3VsZCBzdGlsbAorb2NjdXIgKGFuZCB0aGF0IHRoZSB0ZXN0IHBhdHRlcm4gcmVtYWluIHVubW9kaWZpZWQsPHdici8+IHNpbmNlIHRoZSBmbGFzaAord291bGQgbm90IGFjdHVhbGx5IGFmZmVjdCBpdCkuPHdici8+PC9wPgorPHA+RGVmYXVsdHMgdG8gT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIHRlc3QgcGF0dGVybnMgYXJlIHNwZWNpZmllZCBpbiB0aGUgQmF5ZXIgZG9tYWluLjx3YnIvPjwvcD4KKzxwPlRoZSBIQUwgbWF5IGNob29zZSB0byBzdWJzdGl0dXRlIHRlc3QgcGF0dGVybnMgZnJvbSB0aGUgc2Vuc29yCit3aXRoIHRlc3QgcGF0dGVybnMgZnJvbSBvbi1kZXZpY2UgbWVtb3J5Ljx3YnIvPiBJbiB0aGF0IGNhc2UsPHdici8+IGl0IHNob3VsZCBiZQoraW5kaXN0aW5ndWlzaGFibGUgdG8gdGhlIElTUCB3aGV0aGVyIHRoZSBkYXRhIGNhbWUgZnJvbSB0aGUKK3NlbnNvciBpbnRlcmNvbm5lY3QgYnVzIChzdWNoIGFzIENTSTIpIG9yIG1lbW9yeS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkZvdXIgaW50cyBkZWZpbmluZyB0aGUgYWN0aXZlIHBpeGVsIHJlY3RhbmdsZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhcmVhIG9mIHRoZSBpbWFnZSBzZW5zb3Igd2hpY2ggY29ycmVzcG9uZHMgdG8gYWN0aXZlIHBpeGVscyBhZnRlciBhbnkgZ2VvbWV0cmljCitkaXN0b3J0aW9uIGNvcnJlY3Rpb24gaGFzIGJlZW4gYXBwbGllZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlIHNlbnNvcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSByZWN0YW5nbGUgcmVwcmVzZW50aW5nIHRoZSBzaXplIG9mIHRoZSBhY3RpdmUgcmVnaW9uIG9mIHRoZSBzZW5zb3IgKGkuPHdici8+ZS48d2JyLz4KK3RoZSByZWdpb24gdGhhdCBhY3R1YWxseSByZWNlaXZlcyBsaWdodCBmcm9tIHRoZSBzY2VuZSkgYWZ0ZXIgYW55IGdlb21ldHJpYyBjb3JyZWN0aW9uCitoYXMgYmVlbiBhcHBsaWVkLDx3YnIvPiBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgdGhlIG1heGltdW0gc2l6ZSBpbiBwaXhlbHMgb2YgYW55IG9mIHRoZQoraW1hZ2Ugb3V0cHV0IGZvcm1hdHMgYXNpZGUgZnJvbSB0aGUgcmF3IGZvcm1hdHMuPHdici8+PC9wPgorPHA+VGhpcyByZWN0YW5nbGUgaXMgZGVmaW5lZCByZWxhdGl2ZSB0byB0aGUgZnVsbCBwaXhlbCBhcnJheTsgKDAsPHdici8+MCkgaXMgdGhlIHRvcC1sZWZ0IG9mCit0aGUgZnVsbCBwaXhlbCBhcnJheSw8d2JyLz4gYW5kIHRoZSBzaXplIG9mIHRoZSBmdWxsIHBpeGVsIGFycmF5IGlzIGdpdmVuIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgbW9zdCBvdGhlciBrZXlzIHRoYXQgbGlzdCBwaXhlbCBjb29yZGluYXRlcyw8d2JyLz4gaW5jbHVkaW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4sPHdici8+IGlzIGRlZmluZWQgcmVsYXRpdmUgdG8gdGhlIGFjdGl2ZSBhcnJheSByZWN0YW5nbGUgZ2l2ZW4gaW4KK3RoaXMgZmllbGQsPHdici8+IHdpdGggPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUgdG9wLWxlZnQgb2YgdGhpcyByZWN0YW5nbGUuPHdici8+PC9wPgorPHA+VGhlIGFjdGl2ZSBhcnJheSBtYXkgYmUgc21hbGxlciB0aGFuIHRoZSBmdWxsIHBpeGVsIGFycmF5LDx3YnIvPiBzaW5jZSB0aGUgZnVsbCBhcnJheSBtYXkKK2luY2x1ZGUgYmxhY2sgY2FsaWJyYXRpb24gcGl4ZWxzIG9yIG90aGVyIGluYWN0aXZlIHJlZ2lvbnMsPHdici8+IGFuZCBnZW9tZXRyaWMgY29ycmVjdGlvbgorcmVzdWx0aW5nIGluIHNjYWxpbmcgb3IgY3JvcHBpbmcgbWF5IGhhdmUgYmVlbiBhcHBsaWVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBhcnJheSBjb250YWlucyA8Y29kZT4oeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCk8L2NvZGU+Ljx3YnIvPiBUaGUgPGNvZGU+KHhtaW4sPHdici8+IHltaW4pPC9jb2RlPiBtdXN0IGJlCismZ3Q7PSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4uPHdici8+CitUaGUgPGNvZGU+KHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPiBtdXN0IGJlICZsdDs9IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L2NvZGU+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5SYW5nZSBvZiBzdXBwb3J0ZWQgc2Vuc2l0aXZpdGllczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlJhbmdlIG9mIHNlbnNpdGl2aXRpZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+IHN1cHBvcnRlZCBieSB0aGlzCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPk1pbiAmbHQ7PSAxMDAsPHdici8+IE1heCAmZ3Q7PSA4MDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdmFsdWVzIGFyZSB0aGUgc3RhbmRhcmQgSVNPIHNlbnNpdGl2aXR5IHZhbHVlcyw8d2JyLz4KK2FzIGRlZmluZWQgaW4gSVNPIDEyMjMyOjIwMDYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SR0dCPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HUkJHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HQlJHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CR0dSPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SR0I8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNlbnNvciBpcyBub3QgQmF5ZXI7IG91dHB1dCBoYXMgMyAxNi1iaXQKK3ZhbHVlcyBmb3IgZWFjaCBwaXhlbCw8d2JyLz4gaW5zdGVhZCBvZiBqdXN0IDEgMTYtYml0IHZhbHVlCitwZXIgcGl4ZWwuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFycmFuZ2VtZW50IG9mIGNvbG9yIGZpbHRlcnMgb24gc2Vuc29yOworcmVwcmVzZW50cyB0aGUgY29sb3JzIGluIHRoZSB0b3AtbGVmdCAyeDIgc2VjdGlvbiBvZgordGhlIHNlbnNvciw8d2JyLz4gaW4gcmVhZGluZyBvcmRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VMb25nXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPm5hbm9zZWNvbmRzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHJhbmdlIG9mIGltYWdlIGV4cG9zdXJlIHRpbWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+IHN1cHBvcnRlZAorYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBOYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtaW5pbXVtIGV4cG9zdXJlIHRpbWUgd2lsbCBiZSBsZXNzIHRoYW4gMTAwIHVzLjx3YnIvPiBGb3IgRlVMTAorY2FwYWJpbGl0eSBkZXZpY2VzICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTCksPHdici8+Cit0aGUgbWF4aW11bSBleHBvc3VyZSB0aW1lIHdpbGwgYmUgZ3JlYXRlciB0aGFuIDEwMG1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMKSw8d2JyLz4KK1RoZSBtYXhpbXVtIG9mIHRoZSByYW5nZSBTSE9VTEQgYmUgYXQgbGVhc3QgMSBzZWNvbmQgKDFlOSksPHdici8+IE1VU1QgYmUgYXQgbGVhc3QKKzEwMG1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBwb3NzaWJsZSBmcmFtZSBkdXJhdGlvbiAobWluaW11bSBmcmFtZSByYXRlKSBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiB0aGF0IGlzIHN1cHBvcnRlZCB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIEZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEwpLDx3YnIvPiBhdCBsZWFzdCAxMDBtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QXR0ZW1wdGluZyB0byB1c2UgZnJhbWUgZHVyYXRpb25zIGJleW9uZCB0aGUgbWF4aW11bSB3aWxsIHJlc3VsdCBpbiB0aGUgZnJhbWUKK2R1cmF0aW9uIGJlaW5nIGNsaXBwZWQgdG8gdGhlIG1heGltdW0uPHdici8+IFNlZSB0aGF0IGNvbnRyb2wgZm9yIGEgZnVsbCBkZWZpbml0aW9uIG9mIGZyYW1lCitkdXJhdGlvbnMuPHdici8+PC9wPgorPHA+UmVmZXIgdG8gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4KK2ZvciB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMKSw8d2JyLz4KK1RoZSBtYXhpbXVtIG9mIHRoZSByYW5nZSBTSE9VTEQgYmUgYXQgbGVhc3QKKzEgc2Vjb25kICgxZTkpLDx3YnIvPiBNVVNUIGJlIGF0IGxlYXN0IDEwMG1zICgxMDBlNikuPHdici8+PC9wPgorPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gbXVzdCBiZSBncmVhdGVyIG9yCitlcXVhbCB0byB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmV4cG9zdXJlVGltZVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlPC9hPiBtYXgKK3ZhbHVlIChzaW5jZSBleHBvc3VyZSB0aW1lIG92ZXJyaWRlcyBmcmFtZSBkdXJhdGlvbikuPHdici8+PC9wPgorPHA+QXZhaWxhYmxlIG1pbmltdW0gZnJhbWUgZHVyYXRpb25zIGZvciBKUEVHIG11c3QgYmUgbm8gZ3JlYXRlcgordGhhbiB0aGF0IG9mIHRoZSBZVVZfPHdici8+NDIwXzx3YnIvPjg4OC88d2JyLz5JTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVECittaW5pbXVtIGZyYW1lIGR1cmF0aW9ucyAoZm9yIHRoYXQgcmVzcGVjdGl2ZSBzaXplKS48d2JyLz48L3A+Cis8cD5TaW5jZSBKUEVHIHByb2Nlc3NpbmcgaXMgY29uc2lkZXJlZCBvZmZsaW5lIGFuZCBjYW4gdGFrZSBsb25nZXIgdGhhbgorYSBzaW5nbGUgdW5jb21wcmVzc2VkIGNhcHR1cmUsPHdici8+IHJlZmVyIHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4KK2ZvciBkZXRhaWxzIGFib3V0IGVuY29kaW5nIHRoaXMgc2NlbmFyaW8uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGh5c2ljYWw8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplRl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPndpZHRoIHggaGVpZ2h0PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHBoeXNpY2FsIGRpbWVuc2lvbnMgb2YgdGhlIGZ1bGwgcGl4ZWwKK2FycmF5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNaWxsaW1ldGVycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSBwaHlzaWNhbCBzaXplIG9mIHRoZSBzZW5zb3IgcGl4ZWwKK2FycmF5IGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5lZWRlZCBmb3IgRk9WIGNhbGN1bGF0aW9uIGZvciBvbGQgQVBJPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgc2l6ZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRpbWVuc2lvbnMgb2YgdGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IHBvc3NpYmx5CitpbmNsdWRpbmcgYmxhY2sgY2FsaWJyYXRpb24gcGl4ZWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgcGl4ZWwgY291bnQgb2YgdGhlIGZ1bGwgcGl4ZWwgYXJyYXkgb2YgdGhlIGltYWdlIHNlbnNvciw8d2JyLz4gd2hpY2ggY292ZXJzCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBoeXNpY2FsPHdici8+U2l6ZTwvYT4gYXJlYS48d2JyLz4gIFRoaXMgcmVwcmVzZW50cyB0aGUgZnVsbCBwaXhlbCBkaW1lbnNpb25zIG9mCit0aGUgcmF3IGJ1ZmZlcnMgcHJvZHVjZWQgYnkgdGhpcyBzZW5zb3IuPHdici8+PC9wPgorPHA+SWYgYSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIHJhdyBzZW5zb3IgZm9ybWF0cyw8d2JyLz4gZWl0aGVyIHRoaXMgb3IKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IGlzIHRoZSBtYXhpbXVtIGRpbWVuc2lvbnMgZm9yIHRoZSByYXcKK291dHB1dCBmb3JtYXRzIGxpc3RlZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+ICh0aGlzIGRlcGVuZHMgb24KK3doZXRoZXIgb3Igbm90IHRoZSBpbWFnZSBzZW5zb3IgcmV0dXJucyBidWZmZXJzIGNvbnRhaW5pbmcgcGl4ZWxzIHRoYXQgYXJlIG5vdAorcGFydCBvZiB0aGUgYWN0aXZlIGFycmF5IHJlZ2lvbiBmb3IgYmxhY2tsZXZlbCBjYWxpYnJhdGlvbiBvciBvdGhlciBwdXJwb3NlcykuPHdici8+PC9wPgorPHA+U29tZSBwYXJ0cyBvZiB0aGUgZnVsbCBwaXhlbCBhcnJheSBtYXkgbm90IHJlY2VpdmUgbGlnaHQgZnJvbSB0aGUgc2NlbmUsPHdici8+CitvciBiZSBvdGhlcndpc2UgaW5hY3RpdmUuPHdici8+ICBUaGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4ga2V5CitkZWZpbmVzIHRoZSByZWN0YW5nbGUgb2YgYWN0aXZlIHBpeGVscyB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgaW4gcHJvY2Vzc2VkIGltYWdlCitmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPndoaXRlPHdici8+TGV2ZWwKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gcmF3IHZhbHVlIG91dHB1dCBieSBzZW5zb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0OyAyNTUgKDgtYml0IG91dHB1dCk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHNwZWNpZmllcyB0aGUgZnVsbHktc2F0dXJhdGVkIGVuY29kaW5nIGxldmVsIGZvciB0aGUgcmF3CitzYW1wbGUgdmFsdWVzIGZyb20gdGhlIHNlbnNvci48d2JyLz4gIFRoaXMgaXMgdHlwaWNhbGx5IGNhdXNlZCBieSB0aGUKK3NlbnNvciBiZWNvbWluZyBoaWdobHkgbm9uLWxpbmVhciBvciBjbGlwcGluZy48d2JyLz4gVGhlIG1pbmltdW0gZm9yCitlYWNoIGNoYW5uZWwgaXMgc3BlY2lmaWVkIGJ5IHRoZSBvZmZzZXQgaW4gdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5ibGFjazx3YnIvPkxldmVsPHdici8+UGF0dGVybjwvYT4ga2V5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBsZXZlbCBpcyB0eXBpY2FsbHkgZGV0ZXJtaW5lZCBlaXRoZXIgYnkgc2Vuc29yIGJpdCBkZXB0aAorKDgtMTQgYml0cyBpcyBleHBlY3RlZCksPHdici8+IG9yIGJ5IHRoZSBwb2ludCB3aGVyZSB0aGUgc2Vuc29yIHJlc3BvbnNlCitiZWNvbWVzIHRvbyBub24tbGluZWFyIHRvIGJlIHVzZWZ1bC48d2JyLz4gIFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGlzIGlzCittYXhpbXVtIHJlcHJlc2VudGFibGUgdmFsdWUgZm9yIGEgMTYtYml0IHJhdyBzYW1wbGUgKDJeMTYgLSAxKS48d2JyLz48L3A+Cis8cD5UaGUgd2hpdGUgbGV2ZWwgdmFsdWVzIG9mIGNhcHR1cmVkIGltYWdlcyBtYXkgdmFyeSBmb3IgZGlmZmVyZW50CitjYXB0dXJlIHNldHRpbmdzIChlLjx3YnIvPmcuLDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikuPHdici8+IFRoaXMga2V5CityZXByZXNlbnRzIGEgY29hcnNlIGFwcHJveGltYXRpb24gZm9yIHN1Y2ggY2FzZS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQKK3RvIHVzZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZHluYW1pYzx3YnIvPldoaXRlPHdici8+TGV2ZWw8L2E+IGZvciBjYXB0dXJlcyB3aGVuIHN1cHBvcnRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHdoaWNoIHByb3ZpZGVzIG1vcmUgYWNjdXJhdGUgd2hpdGUgbGV2ZWwgdmFsdWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZ1bGwgYml0IGRlcHRoIG9mIHRoZSBzZW5zb3IgbXVzdCBiZSBhdmFpbGFibGUgaW4gdGhlIHJhdyBkYXRhLDx3YnIvPgorc28gdGhlIHZhbHVlIGZvciBsaW5lYXIgc2Vuc29ycyBzaG91bGQgbm90IGJlIHNpZ25pZmljYW50bHkgbG93ZXIKK3RoYW4gbWF4aW11bSByYXcgdmFsdWUgc3VwcG9ydGVkLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDJeKHNlbnNvciBiaXRzIHBlciBwaXhlbCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+dGltZXN0YW1wPHdici8+U291cmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VU5LTk9XTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGltZXN0YW1wcyBmcm9tIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGltZXN0YW1wPC9hPiBhcmUgaW4gbmFub3NlY29uZHMgYW5kIG1vbm90b25pYyw8d2JyLz4KK2J1dCBjYW4gbm90IGJlIGNvbXBhcmVkIHRvIHRpbWVzdGFtcHMgZnJvbSBvdGhlciBzdWJzeXN0ZW1zCisoZS48d2JyLz5nLjx3YnIvPiBhY2NlbGVyb21ldGVyLDx3YnIvPiBneXJvIGV0Yy48d2JyLz4pLDx3YnIvPiBvciBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3IgZGlmZmVyZW50CitjYW1lcmEgZGV2aWNlcyBpbiB0aGUgc2FtZSBzeXN0ZW0uPHdici8+IFRpbWVzdGFtcHMgYmV0d2VlbiBzdHJlYW1zIGFuZCByZXN1bHRzIGZvcgorYSBzaW5nbGUgY2FtZXJhIGluc3RhbmNlIGFyZSBjb21wYXJhYmxlLDx3YnIvPiBhbmQgdGhlIHRpbWVzdGFtcHMgZm9yIGFsbCBidWZmZXJzCithbmQgdGhlIHJlc3VsdCBtZXRhZGF0YSBnZW5lcmF0ZWQgYnkgYSBzaW5nbGUgY2FwdHVyZSBhcmUgaWRlbnRpY2FsLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJFQUxUSU1FPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaW1lc3RhbXBzIGZyb20gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGltZXN0YW1wIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50aW1lc3RhbXA8L2E+IGFyZSBpbiB0aGUgc2FtZSB0aW1lYmFzZSBhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvb3MvU3lzdGVtQ2xvY2suaHRtbCNlbGFwc2VkUmVhbHRpbWVOYW5vcyI+U3lzdGVtQ2xvY2sjZWxhcHNlZFJlYWx0aW1lTmFub3M8L2E+LDx3YnIvPgorYW5kIHRoZXkgY2FuIGJlIGNvbXBhcmVkIHRvIG90aGVyIHRpbWVzdGFtcHMgdXNpbmcgdGhhdCBiYXNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSB0aW1lIGJhc2Ugc291cmNlIGZvciBzZW5zb3IgY2FwdHVyZSBzdGFydCB0aW1lc3RhbXBzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHRpbWVzdGFtcHMgcHJvdmlkZWQgZm9yIGNhcHR1cmVzIGFyZSBhbHdheXMgaW4gbmFub3NlY29uZHMgYW5kIG1vbm90b25pYyw8d2JyLz4gYnV0CittYXkgbm90IGJhc2VkIG9uIGEgdGltZSBzb3VyY2UgdGhhdCBjYW4gYmUgY29tcGFyZWQgdG8gb3RoZXIgc3lzdGVtIHRpbWUgc291cmNlcy48d2JyLz48L3A+Cis8cD5UaGlzIGNoYXJhY3RlcmlzdGljIGRlZmluZXMgdGhlIHNvdXJjZSBmb3IgdGhlIHRpbWVzdGFtcHMsPHdici8+IGFuZCB0aGVyZWZvcmUgd2hldGhlciB0aGV5CitjYW4gYmUgY29tcGFyZWQgYWdhaW5zdCBvdGhlciBzeXN0ZW0gdGltZSBzb3VyY2VzLzx3YnIvPnRpbWVzdGFtcHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgY2FtZXJhIGRldmljZXMgaW1wbGVtZW50IFVOS05PV04sPHdici8+IHRoZSBjYW1lcmEgZnJhbWV3b3JrIGV4cGVjdHMgdGhhdCB0aGUgdGltZXN0YW1wCitzb3VyY2UgdG8gYmUgU1lTVEVNXzx3YnIvPlRJTUVfPHdici8+TU9OT1RPTklDLjx3YnIvPiBGb3IgY2FtZXJhIGRldmljZXMgaW1wbGVtZW50IFJFQUxUSU1FLDx3YnIvPiB0aGUgY2FtZXJhCitmcmFtZXdvcmsgZXhwZWN0cyB0aGF0IHRoZSB0aW1lc3RhbXAgc291cmNlIHRvIGJlIFNZU1RFTV88d2JyLz5USU1FXzx3YnIvPkJPT1RUSU1FLjx3YnIvPiBTZWUKK3N5c3RlbS88d2JyLz5jb3JlLzx3YnIvPmluY2x1ZGUvPHdici8+dXRpbHMvPHdici8+VGltZXJzLjx3YnIvPmggZm9yIHRoZSBkZWZpbml0aW9uIG9mIFNZU1RFTV88d2JyLz5USU1FXzx3YnIvPk1PTk9UT05JQyBhbmQKK1NZU1RFTV88d2JyLz5USU1FXzx3YnIvPkJPT1RUSU1FLjx3YnIvPiBOb3RlIHRoYXQgSEFMIG11c3QgZm9sbG93IGFib3ZlIGV4cGVjdGF0aW9uOyBvdGhlcndpc2UgdmlkZW8KK3JlY29yZGluZyBtaWdodCBzdWZmZXIgdW5leHBlY3RlZCBiZWhhdmlvci48d2JyLz48L3A+Cis8cD5BbHNvLDx3YnIvPiBjYW1lcmEgZGV2aWNlcyBpbXBsZW1lbnRzIFJFQUxUSU1FIG11c3QgcGFzcyB0aGUgSVRTIHNlbnNvciBmdXNpb24gdGVzdCB3aGljaAordGVzdHMgdGhlIGFsaWdubWVudCBiZXR3ZWVuIGNhbWVyYSB0aW1lc3RhbXBzIGFuZCBneXJvIHNlbnNvciB0aW1lc3RhbXBzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBSQVcgaW1hZ2VzIG91dHB1dCBmcm9tIHRoaXMgY2FtZXJhIGRldmljZSBhcmUgc3ViamVjdCB0bworbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgVFJVRSw8d2JyLz4gYWxsIGltYWdlcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBpbiB0aGUgUkFXIGltYWdlIGZvcm1hdHMgd2lsbAoraGF2ZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhbHJlYWR5IGFwcGxpZWQgdG8gaXQuPHdici8+IElmIEZBTFNFLDx3YnIvPiB0aGUgaW1hZ2VzIHdpbGwKK25vdCBiZSBhZGp1c3RlZCBmb3IgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24uPHdici8+CitTZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3Ij5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UmF3PC9hPiBmb3IgYSBsaXN0IG9mIFJBVyBpbWFnZSBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGFsbCBkZXZpY2VzIGRvIG5vdCByZXBvcnQgdGhpcyBpbmZvcm1hdGlvbi48d2JyLz4KK0RldmljZXMgd2l0aCBSQVcgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cyByZXBvcnQgdGhpcyBpbmZvcm1hdGlvbiBpbiB0aGlzIGtleS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5Gb3VyIGludHMgZGVmaW5pbmcgdGhlIGFjdGl2ZSBwaXhlbCByZWN0YW5nbGU8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYXJlYSBvZiB0aGUgaW1hZ2Ugc2Vuc29yIHdoaWNoIGNvcnJlc3BvbmRzIHRvIGFjdGl2ZSBwaXhlbHMgcHJpb3IgdG8gdGhlCithcHBsaWNhdGlvbiBvZiBhbnkgZ2VvbWV0cmljIGRpc3RvcnRpb24gY29ycmVjdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlIHNlbnNvcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSByZWN0YW5nbGUgcmVwcmVzZW50aW5nIHRoZSBzaXplIG9mIHRoZSBhY3RpdmUgcmVnaW9uIG9mIHRoZSBzZW5zb3IgKGkuPHdici8+ZS48d2JyLz4KK3RoZSByZWdpb24gdGhhdCBhY3R1YWxseSByZWNlaXZlcyBsaWdodCBmcm9tIHRoZSBzY2VuZSkgYmVmb3JlIGFueSBnZW9tZXRyaWMgY29ycmVjdGlvbgoraGFzIGJlZW4gYXBwbGllZCw8d2JyLz4gYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzIHRoZSBhY3RpdmUgcmVnaW9uIHJlY3RhbmdsZSBmb3IgYW55IG9mIHRoZQorcmF3IGZvcm1hdHMuPHdici8+ICBBbGwgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHJhdyBwcm9jZXNzaW5nIChlLjx3YnIvPmcuPHdici8+IHRoZSBsZW5zIHNoYWRpbmcKK2NvcnJlY3Rpb24gbWFwLDx3YnIvPiBhbmQgcmFkaWFsIGRpc3RvcnRpb24gZmllbGRzKSB0cmVhdHMgdGhlIHRvcCw8d2JyLz4gbGVmdCBvZiB0aGlzIHJlY3RhbmdsZSBhcwordGhlIG9yaWdpbiw8d2JyLz4gKDAsPHdici8+MCkuPHdici8+PC9wPgorPHA+VGhlIHNpemUgb2YgdGhpcyByZWdpb24gZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBmaWVsZCBvZiB2aWV3IGFuZCB0aGUgbWF4aW11bSBudW1iZXIgb2YKK3BpeGVscyB0aGF0IGFuIGltYWdlIGZyb20gdGhpcyBzZW5zb3IgY2FuIGNvbnRhaW4sPHdici8+IHByaW9yIHRvIHRoZSBhcHBsaWNhdGlvbiBvZgorZ2VvbWV0cmljIGRpc3RvcnRpb24gY29ycmVjdGlvbi48d2JyLz4gVGhlIGVmZmVjdGl2ZSBtYXhpbXVtIHBpeGVsIGRpbWVuc2lvbnMgb2YgYQorcG9zdC1kaXN0b3J0aW9uLWNvcnJlY3RlZCBpbWFnZSBpcyBnaXZlbiBieSB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+CitmaWVsZCw8d2JyLz4gYW5kIHRoZSBlZmZlY3RpdmUgbWF4aW11bSBmaWVsZCBvZiB2aWV3IGZvciBhIHBvc3QtZGlzdG9ydGlvbi1jb3JyZWN0ZWQgaW1hZ2UKK2NhbiBiZSBjYWxjdWxhdGVkIGJ5IGFwcGx5aW5nIHRoZSBnZW9tZXRyaWMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGZpZWxkcyB0byB0aGlzCityZWN0YW5nbGUsPHdici8+IGFuZCBjcm9wcGluZyB0byB0aGUgcmVjdGFuZ2xlIGdpdmVuIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5FLjx3YnIvPmcuPHdici8+IHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBvZiBhIHBpeGVsLDx3YnIvPiAoeCw8d2JyLz55KSw8d2JyLz4gaW4gYSBwcm9jZXNzZWQgWVVWIG91dHB1dCBpbWFnZSB3aXRoIHRoZQorZGltZW5zaW9ucyBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gZ2l2ZW4gdGhlIHBvc2l0aW9uIG9mIGEgcGl4ZWwsPHdici8+CisoeCcsPHdici8+IHknKSw8d2JyLz4gaW4gdGhlIHJhdyBwaXhlbCBhcnJheSB3aXRoIGRpbWVuc2lvbnMgZ2l2ZSBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjo8L3A+Cis8b2w+Cis8bGk+Q2hvb3NlIGEgcGl4ZWwgKHgnLDx3YnIvPiB5Jykgd2l0aGluIHRoZSBhY3RpdmUgYXJyYXkgcmVnaW9uIG9mIHRoZSByYXcgYnVmZmVyIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gb3RoZXJ3aXNlIHRoaXMgcGl4ZWwgaXMgY29uc2lkZXJlZAordG8gYmUgb3V0c2lkZSBvZiB0aGUgRk9WLDx3YnIvPiBhbmQgd2lsbCBub3QgYmUgc2hvd24gaW4gdGhlIHByb2Nlc3NlZCBvdXRwdXQgaW1hZ2UuPHdici8+PC9saT4KKzxsaT5BcHBseSBnZW9tZXRyaWMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIHRvIGdldCB0aGUgcG9zdC1kaXN0b3J0aW9uIHBpeGVsIGNvb3JkaW5hdGUsPHdici8+CisoeF88d2JyLz5pLDx3YnIvPiB5Xzx3YnIvPmkpLjx3YnIvPiBXaGVuIGFwcGx5aW5nIGdlb21ldHJpYyBjb3JyZWN0aW9uIG1ldGFkYXRhLDx3YnIvPiBub3RlIHRoYXQgbWV0YWRhdGEgZm9yIHJhdworYnVmZmVycyBpcyBkZWZpbmVkIHJlbGF0aXZlIHRvIHRoZSB0b3AsPHdici8+IGxlZnQgb2YgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiByZWN0YW5nbGUuPHdici8+PC9saT4KKzxsaT5JZiB0aGUgcmVzdWx0aW5nIGNvcnJlY3RlZCBwaXhlbCBjb29yZGluYXRlIGlzIHdpdGhpbiB0aGUgcmVnaW9uIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IHRoZW4gdGhlIHBvc2l0aW9uIG9mIHRoaXMgcGl4ZWwgaW4gdGhlCitwcm9jZXNzZWQgb3V0cHV0IGltYWdlIGJ1ZmZlciBpcyA8Y29kZT4oeF88d2JyLz5pIC0gYWN0aXZlQXJyYXkuPHdici8+bGVmdCw8d2JyLz4geV88d2JyLz5pIC0gYWN0aXZlQXJyYXkuPHdici8+dG9wKTwvY29kZT4sPHdici8+Cit3aGVuIHRoZSB0b3AsPHdici8+IGxlZnQgY29vcmRpbmF0ZSBvZiB0aGF0IGJ1ZmZlciBpcyB0cmVhdGVkIGFzICgwLDx3YnIvPiAwKS48d2JyLz48L2xpPgorPC9vbD4KKzxwPlRodXMsPHdici8+IGZvciBwaXhlbCB4Jyw8d2JyLz55JyA9ICgyNSw8d2JyLz4gMjUpIG9uIGEgc2Vuc29yIHdoZXJlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4KK2lzICgxMDAsPHdici8+MTAwKSw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gaXMgKDEwLDx3YnIvPiAxMCw8d2JyLz4gMTAwLDx3YnIvPiAxMDApLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IGlzICgyMCw8d2JyLz4gMjAsPHdici8+IDgwLDx3YnIvPiA4MCksPHdici8+IGFuZCB0aGUgZ2VvbWV0cmljIGRpc3RvcnRpb24KK2NvcnJlY3Rpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHBpeGVsIGNvb3JkaW5hdGUsPHdici8+IHRoZSByZXN1bHRpbmcgcGl4ZWwgc2VsZWN0ZWQgaW4KK3BpeGVsIGNvb3JkaW5hdGVzIHdvdWxkIGJlIHgsPHdici8+eSA9ICgyNSw8d2JyLz4gMjUpIHJlbGF0aXZlIHRvIHRoZSB0b3AsPHdici8+bGVmdCBvZiB0aGUgcmF3IGJ1ZmZlcgord2l0aCBkaW1lbnNpb25zIGdpdmVuIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IGFuZCB3b3VsZCBiZSAoNSw8d2JyLz4gNSkKK3JlbGF0aXZlIHRvIHRoZSB0b3AsPHdici8+bGVmdCBvZiBwb3N0LXByb2Nlc3NlZCBZVVYgb3V0cHV0IGJ1ZmZlciB3aXRoIGRpbWVuc2lvbnMgZ2l2ZW4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY3VycmVudGx5IHN1cHBvcnRlZCBmaWVsZHMgdGhhdCBjb3JyZWN0IGZvciBnZW9tZXRyaWMgZGlzdG9ydGlvbiBhcmU6PC9wPgorPG9sPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPi48d2JyLz48L2xpPgorPC9vbD4KKzxwPklmIGFsbCBvZiB0aGUgZ2VvbWV0cmljIGRpc3RvcnRpb24gZmllbGRzIGFyZSBuby1vcHMsPHdici8+IHRoaXMgcmVjdGFuZ2xlIHdpbGwgYmUgdGhlIHNhbWUKK2FzIHRoZSBwb3N0LWRpc3RvcnRpb24tY29ycmVjdGVkIHJlY3RhbmdsZSBnaXZlbiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoaXMgcmVjdGFuZ2xlIGlzIGRlZmluZWQgcmVsYXRpdmUgdG8gdGhlIGZ1bGwgcGl4ZWwgYXJyYXk7ICgwLDx3YnIvPjApIGlzIHRoZSB0b3AtbGVmdCBvZgordGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IGFuZCB0aGUgc2l6ZSBvZiB0aGUgZnVsbCBwaXhlbCBhcnJheSBpcyBnaXZlbiBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgcHJlLWNvcnJlY3Rpb24gYWN0aXZlIGFycmF5IG1heSBiZSBzbWFsbGVyIHRoYW4gdGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IHNpbmNlIHRoZQorZnVsbCBhcnJheSBtYXkgaW5jbHVkZSBibGFjayBjYWxpYnJhdGlvbiBwaXhlbHMgb3Igb3RoZXIgaW5hY3RpdmUgcmVnaW9ucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgYXJyYXkgY29udGFpbnMgPGNvZGU+KHhtaW4sPHdici8+IHltaW4sPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPi48d2JyLz4gVGhlIDxjb2RlPih4bWluLDx3YnIvPiB5bWluKTwvY29kZT4gbXVzdCBiZQorJmd0Oz0gPGNvZGU+KDAsPHdici8+MCk8L2NvZGU+Ljx3YnIvPgorVGhlIDxjb2RlPih3aWR0aCw8d2JyLz4gaGVpZ2h0KTwvY29kZT4gbXVzdCBiZSAmbHQ7PSA8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9jb2RlPi48d2JyLz48L3A+Cis8cD5JZiBvbWl0dGVkIGJ5IHRoZSBIQUwgaW1wbGVtZW50YXRpb24sPHdici8+IHRoZSBjYW1lcmEgZnJhbWV3b3JrIHdpbGwgYXNzdW1lIHRoYXQgdGhpcyBpcwordGhlIHNhbWUgYXMgdGhlIHBvc3QtY29ycmVjdGlvbiBhY3RpdmUgYXJyYXkgcmVnaW9uIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5EQVlMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjI8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRVTkdTVEVOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4zPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmNhbmRlc2NlbnQgbGlnaHQ8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GTEFTSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RklORV9XRUFUSEVSPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj45PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DTE9VRFlfV0VBVEhFUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTA8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNIQURFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REFZTElHSFRfRkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjEyPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EIDU3MDAgLSA3MTAwSzwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRBWV9XSElURV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk4gNDYwMCAtIDU0MDBLPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09PTF9XSElURV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlcgMzkwMCAtIDQ1MDBLPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+V0hJVEVfRkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjE1PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5XVyAzMjAwIC0gMzcwMEs8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFOREFSRF9BPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xNzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBTkRBUkRfQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTg8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQU5EQVJEX0M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjE5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENTU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIwPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENjU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIxPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENzU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIyPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ENTA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjIzPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JU09fU1RVRElPX1RVTkdTVEVOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4yNDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHN0YW5kYXJkIHJlZmVyZW5jZSBpbGx1bWluYW50IHVzZWQgYXMgdGhlIHNjZW5lIGxpZ2h0IHNvdXJjZSB3aGVuCitjYWxjdWxhdGluZyB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMTwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0xPC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mb3J3YXJkPHdici8+TWF0cml4MTwvYT4gbWF0cmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZXMgaW4gdGhpcyBrZXkgY29ycmVzcG9uZCB0byB0aGUgdmFsdWVzIGRlZmluZWQgZm9yIHRoZQorRVhJRiBMaWdodFNvdXJjZSB0YWcuPHdici8+IFRoZXNlIGlsbHVtaW5hbnRzIGFyZSBzdGFuZGFyZCBsaWdodCBzb3VyY2VzCit0aGF0IGFyZSBvZnRlbiB1c2VkIGNhbGlicmF0aW5nIGNhbWVyYSBkZXZpY2VzLjx3YnIvPjwvcD4KKzxwPklmIHRoaXMga2V5IGlzIHByZXNlbnQsPHdici8+IHRoZW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMTwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0xPC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mb3J3YXJkPHdici8+TWF0cml4MTwvYT4gd2lsbCBhbHNvIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+U29tZSBkZXZpY2VzIG1heSBjaG9vc2UgdG8gcHJvdmlkZSBhIHNlY29uZCBzZXQgb2YgY2FsaWJyYXRpb24KK2luZm9ybWF0aW9uIGZvciBpbXByb3ZlZCBxdWFsaXR5LDx3YnIvPiBpbmNsdWRpbmcKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQyPC9hPiBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgbWF0cmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZmlyc3QgcmVmZXJlbmNlIGlsbHVtaW5hbnQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPikKK2FuZCBjb3JyZXNwb25kaW5nIG1hdHJpY2VzIG11c3QgYmUgcHJlc2VudCB0byBzdXBwb3J0IHRoZSBSQVcgY2FwYWJpbGl0eQorYW5kIERORyBvdXRwdXQuPHdici8+PC9wPgorPHA+V2hlbiBwcm9kdWNpbmcgcmF3IGltYWdlcyB3aXRoIGEgY29sb3IgcHJvZmlsZSB0aGF0IGhhcyBvbmx5IGJlZW4KK2NhbGlicmF0ZWQgYWdhaW5zdCBhIHNpbmdsZSBsaWdodCBzb3VyY2UsPHdici8+IGl0IGlzIHZhbGlkIHRvIG9taXQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQyPC9hPiBhbG9uZyB3aXRoIHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPgorYW5kIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgyPC9hPiBtYXRyaWNlcy48d2JyLz48L3A+Cis8cD5JZiBvbmx5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPiBpcyBpbmNsdWRlZCw8d2JyLz4gaXQgc2hvdWxkIGJlCitjaG9zZW4gc28gdGhhdCBpdCBpcyByZXByZXNlbnRhdGl2ZSBvZiB0eXBpY2FsIHNjZW5lIGxpZ2h0aW5nLjx3YnIvPiAgSW4KK2dlbmVyYWwsPHdici8+IEQ1MCBvciBEQVlMSUdIVCB3aWxsIGJlIGNob3NlbiBmb3IgdGhpcyBjYXNlLjx3YnIvPjwvcD4KKzxwPklmIGJvdGggPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+IGFyZSBpbmNsdWRlZCw8d2JyLz4gdGhleSBzaG91bGQgYmUKK2Nob3NlbiB0byByZXByZXNlbnQgdGhlIHR5cGljYWwgcmFuZ2Ugb2Ygc2NlbmUgbGlnaHRpbmcgY29uZGl0aW9ucy48d2JyLz4KK0luIGdlbmVyYWwsPHdici8+IGxvdyBjb2xvciB0ZW1wZXJhdHVyZSBpbGx1bWluYW50IHN1Y2ggYXMgU3RhbmRhcmQtQSB3aWxsCitiZSBjaG9zZW4gZm9yIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudCBhbmQgYSBoaWdoZXIgY29sb3IKK3RlbXBlcmF0dXJlIGlsbHVtaW5hbnQgc3VjaCBhcyBENjUgd2lsbCBiZSBjaG9zZW4gZm9yIHRoZSBzZWNvbmQKK3JlZmVyZW5jZSBpbGx1bWluYW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgc3RhbmRhcmQgcmVmZXJlbmNlIGlsbHVtaW5hbnQgdXNlZCBhcyB0aGUgc2NlbmUgbGlnaHQgc291cmNlIHdoZW4KK2NhbGN1bGF0aW5nIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0yPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgyPC9hPiBtYXRyaWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MTwvYT4gZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGtleSBpcyBwcmVzZW50LDx3YnIvPiB0aGVuIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jb2xvcjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNhbGlicmF0aW9uPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Zm9yd2FyZDx3YnIvPk1hdHJpeDI8L2E+IHdpbGwgYWxzbyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBwZXItZGV2aWNlIGNhbGlicmF0aW9uIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIGZyb20gdGhlCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIGFjdHVhbCBkZXZpY2Ugc2Vuc29yIGNvbG9yc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29ycmVjdCBmb3IgcGVyLWRldmljZSB2YXJpYXRpb25zIGluIHRoZQorc2Vuc29yIGNvbG9yc3BhY2UsPHdici8+IGFuZCBpcyB1c2VkIGZvciBwcm9jZXNzaW5nIHJhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQKK2NvbnRhaW5zIGEgcGVyLWRldmljZSBjYWxpYnJhdGlvbiB0cmFuc2Zvcm0gdGhhdCBtYXBzIGNvbG9ycworZnJvbSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIChpLjx3YnIvPmUuPHdici8+IHRoZSAiZ29sZGVuIG1vZHVsZSIKK2NvbG9yc3BhY2UpIGludG8gdGhpcyBjYW1lcmEgZGV2aWNlJ3MgbmF0aXZlIHNlbnNvciBjb2xvcgorc3BhY2UgdW5kZXIgdGhlIGZpcnN0IHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGVyLWRldmljZSBjYWxpYnJhdGlvbiB0cmFuc2Zvcm0gbWF0cml4IHRoYXQgbWFwcyBmcm9tIHRoZQorcmVmZXJlbmNlIHNlbnNvciBjb2xvcnNwYWNlIHRvIHRoZSBhY3R1YWwgZGV2aWNlIHNlbnNvciBjb2xvcnNwYWNlCisodGhpcyBpcyB0aGUgY29sb3JzcGFjZSBvZiB0aGUgcmF3IGJ1ZmZlciBkYXRhKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgdXNlZCB0byBjb3JyZWN0IGZvciBwZXItZGV2aWNlIHZhcmlhdGlvbnMgaW4gdGhlCitzZW5zb3IgY29sb3JzcGFjZSw8d2JyLz4gYW5kIGlzIHVzZWQgZm9yIHByb2Nlc3NpbmcgcmF3IGJ1ZmZlciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaXggaXMgZXhwcmVzc2VkIGFzIGEgM3gzIG1hdHJpeCBpbiByb3ctbWFqb3Itb3JkZXIsPHdici8+IGFuZAorY29udGFpbnMgYSBwZXItZGV2aWNlIGNhbGlicmF0aW9uIHRyYW5zZm9ybSB0aGF0IG1hcHMgY29sb3JzCitmcm9tIHJlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UgKGkuPHdici8+ZS48d2JyLz4gdGhlICJnb2xkZW4gbW9kdWxlIgorY29sb3JzcGFjZSkgaW50byB0aGlzIGNhbWVyYSBkZXZpY2UncyBuYXRpdmUgc2Vuc29yIGNvbG9yCitzcGFjZSB1bmRlciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+KS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCB3aWxsIG9ubHkgYmUgcHJlc2VudCBpZiB0aGUgc2Vjb25kIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpcyBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jb2xvcjx3YnIvPlRyYW5zZm9ybTEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXRyaXggdGhhdCB0cmFuc2Zvcm1zIGNvbG9yIHZhbHVlcyBmcm9tIENJRSBYWVogY29sb3Igc3BhY2UgdG8KK3JlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCBmcm9tIHRoZSBzdGFuZGFyZCBDSUUgWFlaIGNvbG9yCitzcGFjZSB0byB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvcnNwYWNlLDx3YnIvPiBhbmQgaXMgdXNlZCB3aGVuIHByb2Nlc3NpbmcKK3JhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQKK2NvbnRhaW5zIGEgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0aGF0IG1hcHMgY29sb3JzIGZyb20gdGhlIENJRQorWFlaIGNvbG9yIHNwYWNlIHRvIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIChpLjx3YnIvPmUuPHdici8+IHRoZQorImdvbGRlbiBtb2R1bGUiIGNvbG9yc3BhY2UpIHVuZGVyIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPikuPHdici8+PC9wPgorPHA+VGhlIHdoaXRlIHBvaW50cyBjaG9zZW4gaW4gYm90aCB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZQorYW5kIHRoZSBDSUUgWFlaIGNvbG9yc3BhY2Ugd2hlbiBjYWxjdWxhdGluZyB0aGlzIHRyYW5zZm9ybSB3aWxsCittYXRjaCB0aGUgc3RhbmRhcmQgd2hpdGUgcG9pbnQgZm9yIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudAorKGkuPHdici8+ZS48d2JyLz4gbm8gY2hyb21hdGljIGFkYXB0YXRpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoaXMgdHJhbnNmb3JtKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbWF0cml4IHRoYXQgdHJhbnNmb3JtcyBjb2xvciB2YWx1ZXMgZnJvbSBDSUUgWFlaIGNvbG9yIHNwYWNlIHRvCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1hdHJpeCBpcyB1c2VkIHRvIGNvbnZlcnQgZnJvbSB0aGUgc3RhbmRhcmQgQ0lFIFhZWiBjb2xvcgorc3BhY2UgdG8gdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3JzcGFjZSw8d2JyLz4gYW5kIGlzIHVzZWQgd2hlbiBwcm9jZXNzaW5nCityYXcgYnVmZmVyIGRhdGEuPHdici8+PC9wPgorPHA+VGhlIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kCitjb250YWlucyBhIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIGNvbG9ycyBmcm9tIHRoZSBDSUUKK1hZWiBjb2xvciBzcGFjZSB0byB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSAoaS48d2JyLz5lLjx3YnIvPiB0aGUKKyJnb2xkZW4gbW9kdWxlIiBjb2xvcnNwYWNlKSB1bmRlciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+KS48d2JyLz48L3A+Cis8cD5UaGUgd2hpdGUgcG9pbnRzIGNob3NlbiBpbiBib3RoIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlCithbmQgdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aGVuIGNhbGN1bGF0aW5nIHRoaXMgdHJhbnNmb3JtIHdpbGwKK21hdGNoIHRoZSBzdGFuZGFyZCB3aGl0ZSBwb2ludCBmb3IgdGhlIHNlY29uZCByZWZlcmVuY2UgaWxsdW1pbmFudAorKGkuPHdici8+ZS48d2JyLz4gbm8gY2hyb21hdGljIGFkYXB0YXRpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoaXMgdHJhbnNmb3JtKS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCB3aWxsIG9ubHkgYmUgcHJlc2VudCBpZiB0aGUgc2Vjb25kIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpcyBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgxCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbWF0cml4IHRoYXQgdHJhbnNmb3JtcyB3aGl0ZSBiYWxhbmNlZCBjYW1lcmEgY29sb3JzIGZyb20gdGhlIHJlZmVyZW5jZQorc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aXRoIGEgRDUwIHdoaXRlcG9pbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCB0byB0aGUgc3RhbmRhcmQgQ0lFIFhZWiBjb2xvcnNwYWNlLDx3YnIvPiBhbmQKK2lzIHVzZWQgd2hlbiBwcm9jZXNzaW5nIHJhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kIGNvbnRhaW5zCithIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIHdoaXRlIGJhbGFuY2VkIGNvbG9ycyBmcm9tIHRoZQorcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSB0byB0aGUgQ0lFIFhZWiBjb2xvciBzcGFjZSB3aXRoIGEgRDUwIHdoaXRlCitwb2ludC48d2JyLz48L3A+Cis8cD5VbmRlciB0aGUgZmlyc3QgcmVmZXJlbmNlIGlsbHVtaW5hbnQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPikKK3RoaXMgbWF0cml4IGlzIGNob3NlbiBzbyB0aGF0IHRoZSBzdGFuZGFyZCB3aGl0ZSBwb2ludCBmb3IgdGhpcyByZWZlcmVuY2UKK2lsbHVtaW5hbnQgaW4gdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3JzcGFjZSBpcyBtYXBwZWQgdG8gRDUwIGluIHRoZQorQ0lFIFhZWiBjb2xvcnNwYWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgY29sb3JTcGFjZVRyYW5zZm9ybV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4zeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlcjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbWF0cml4IHRoYXQgdHJhbnNmb3JtcyB3aGl0ZSBiYWxhbmNlZCBjYW1lcmEgY29sb3JzIGZyb20gdGhlIHJlZmVyZW5jZQorc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aXRoIGEgRDUwIHdoaXRlcG9pbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCB0byB0aGUgc3RhbmRhcmQgQ0lFIFhZWiBjb2xvcnNwYWNlLDx3YnIvPiBhbmQKK2lzIHVzZWQgd2hlbiBwcm9jZXNzaW5nIHJhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kIGNvbnRhaW5zCithIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIHdoaXRlIGJhbGFuY2VkIGNvbG9ycyBmcm9tIHRoZQorcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSB0byB0aGUgQ0lFIFhZWiBjb2xvciBzcGFjZSB3aXRoIGEgRDUwIHdoaXRlCitwb2ludC48d2JyLz48L3A+Cis8cD5VbmRlciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MjwvYT4pCit0aGlzIG1hdHJpeCBpcyBjaG9zZW4gc28gdGhhdCB0aGUgc3RhbmRhcmQgd2hpdGUgcG9pbnQgZm9yIHRoaXMgcmVmZXJlbmNlCitpbGx1bWluYW50IGluIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yc3BhY2UgaXMgbWFwcGVkIHRvIEQ1MCBpbiB0aGUKK0NJRSBYWVogY29sb3JzcGFjZS48d2JyLz48L3A+Cis8cD5UaGlzIG1hdHJpeCB3aWxsIG9ubHkgYmUgcHJlc2VudCBpZiB0aGUgc2Vjb25kIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpcyBwcmVzZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmJhc2VHYWluRmFjdG9yIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJhc2U8d2JyLz5HYWluPHdici8+RmFjdG9yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HYWluIGZhY3RvciBmcm9tIGVsZWN0cm9ucyB0byByYXcgdW5pdHMgd2hlbgorSVNPPTEwMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YmxhY2s8d2JyLz5MZXZlbDx3YnIvPlBhdHRlcm4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJsYWNrTGV2ZWxQYXR0ZXJuXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjJ4MiByYXcgY291bnQgYmxvY2s8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGZpeGVkIGJsYWNrIGxldmVsIG9mZnNldCBmb3IgZWFjaCBvZiB0aGUgY29sb3IgZmlsdGVyIGFycmFuZ2VtZW50CisoQ0ZBKSBtb3NhaWMgY2hhbm5lbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMCBmb3IgZWFjaC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGtleSBzcGVjaWZpZXMgdGhlIHplcm8gbGlnaHQgdmFsdWUgZm9yIGVhY2ggb2YgdGhlIENGQSBtb3NhaWMKK2NoYW5uZWxzIGluIHRoZSBjYW1lcmEgc2Vuc29yLjx3YnIvPiAgVGhlIG1heGltYWwgdmFsdWUgb3V0cHV0IGJ5IHRoZQorc2Vuc29yIGlzIHJlcHJlc2VudGVkIGJ5IHRoZSB2YWx1ZSBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz53aGl0ZTx3YnIvPkxldmVsPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgdmFsdWVzIGFyZSBnaXZlbiBpbiB0aGUgc2FtZSBvcmRlciBhcyBjaGFubmVscyBsaXN0ZWQgZm9yIHRoZSBDRkEKK2xheW91dCBrZXkgKHNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50PC9hPiksPHdici8+IGkuPHdici8+ZS48d2JyLz4gdGhlCitudGggdmFsdWUgZ2l2ZW4gY29ycmVzcG9uZHMgdG8gdGhlIGJsYWNrIGxldmVsIG9mZnNldCBmb3IgdGhlIG50aAorY29sb3IgY2hhbm5lbCBsaXN0ZWQgaW4gdGhlIENGQS48d2JyLz48L3A+Cis8cD5UaGUgYmxhY2sgbGV2ZWwgdmFsdWVzIG9mIGNhcHR1cmVkIGltYWdlcyBtYXkgdmFyeSBmb3IgZGlmZmVyZW50CitjYXB0dXJlIHNldHRpbmdzIChlLjx3YnIvPmcuLDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikuPHdici8+IFRoaXMga2V5CityZXByZXNlbnRzIGEgY29hcnNlIGFwcHJveGltYXRpb24gZm9yIHN1Y2ggY2FzZS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdG8KK3VzZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZHluYW1pYzx3YnIvPkJsYWNrPHdici8+TGV2ZWw8L2E+IG9yIHVzZSBwaXhlbHMgZnJvbQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcHRpY2FsQmxhY2tSZWdpb25zIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5vcHRpY2FsPHdici8+QmxhY2s8d2JyLz5SZWdpb25zPC9hPiBkaXJlY3RseSBmb3IgY2FwdHVyZXMgd2hlbgorc3VwcG9ydGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB3aGljaCBwcm92aWRlcyBtb3JlIGFjY3VyYXRlIGJsYWNrCitsZXZlbCB2YWx1ZXMuPHdici8+IEZvciByYXcgY2FwdHVyZSBpbiBwYXJ0aWN1bGFyLDx3YnIvPiBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UKK3BpeGVscyBmcm9tIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4gdG8gY2FsY3VsYXRlIGJsYWNrCitsZXZlbCB2YWx1ZXMgZm9yIGVhY2ggZnJhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdmFsdWVzIGFyZSBnaXZlbiBpbiByb3ctY29sdW1uIHNjYW4gb3JkZXIsPHdici8+IHdpdGggdGhlIGZpcnN0IHZhbHVlCitjb3JyZXNwb25kaW5nIHRvIHRoZSBlbGVtZW50IG9mIHRoZSBDRkEgaW4gcm93PTAsPHdici8+IGNvbHVtbj0wLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5tYXg8d2JyLz5BbmFsb2c8d2JyLz5TZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBzZW5zaXRpdml0eSB0aGF0IGlzIGltcGxlbWVudGVkCitwdXJlbHkgdGhyb3VnaCBhbmFsb2cgZ2Fpbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVMTCI+RlVMTDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiB2YWx1ZXMgbGVzcyB0aGFuIG9yCitlcXVhbCB0byB0aGlzLDx3YnIvPiBhbGwgYXBwbGllZCBnYWluIG11c3QgYmUgYW5hbG9nLjx3YnIvPiBGb3IKK3ZhbHVlcyBhYm92ZSB0aGlzLDx3YnIvPiB0aGUgZ2FpbiBhcHBsaWVkIGNhbiBiZSBhIG1peCBvZiBhbmFsb2cgYW5kCitkaWdpdGFsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLm9yaWVudGF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9yaWVudGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNsb2Nrd2lzZSBhbmdsZSB0aHJvdWdoIHdoaWNoIHRoZSBvdXRwdXQgaW1hZ2UgbmVlZHMgdG8gYmUgcm90YXRlZCB0byBiZQordXByaWdodCBvbiB0aGUgZGV2aWNlIHNjcmVlbiBpbiBpdHMgbmF0aXZlIG9yaWVudGF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBEZWdyZWVzIG9mIGNsb2Nrd2lzZSByb3RhdGlvbjsgYWx3YXlzIGEgbXVsdGlwbGUgb2YKKyAgICAgICAgICA5MAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAsPHdici8+IDkwLDx3YnIvPiAxODAsPHdici8+IDI3MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BbHNvIGRlZmluZXMgdGhlIGRpcmVjdGlvbiBvZiByb2xsaW5nIHNodXR0ZXIgcmVhZG91dCw8d2JyLz4gd2hpY2ggaXMgZnJvbSB0b3AgdG8gYm90dG9tIGluCit0aGUgc2Vuc29yJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPkh1ZTx3YnIvPlNhdDx3YnIvPk1hcDx3YnIvPkRpbWVuc2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPk51bWJlciBvZiBzYW1wbGVzIGZvciBodWUsPHdici8+IHNhdHVyYXRpb24sPHdici8+IGFuZCB2YWx1ZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBudW1iZXIgb2YgaW5wdXQgc2FtcGxlcyBmb3IgZWFjaCBkaW1lbnNpb24gb2YKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXAiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnByb2ZpbGU8d2JyLz5IdWU8d2JyLz5TYXQ8d2JyLz5NYXA8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkh1ZSAmZ3Q7PSAxLDx3YnIvPgorU2F0dXJhdGlvbiAmZ3Q7PSAyLDx3YnIvPgorVmFsdWUgJmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBudW1iZXIgb2YgaW5wdXQgc2FtcGxlcyBmb3IgdGhlIGh1ZSw8d2JyLz4gc2F0dXJhdGlvbiw8d2JyLz4gYW5kIHZhbHVlCitkaW1lbnNpb24gb2YgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPkh1ZTx3YnIvPlNhdDx3YnIvPk1hcDwvYT4uPHdici8+IFRoZSBvcmRlciBvZiB0aGUKK2RpbWVuc2lvbnMgZ2l2ZW4gaXMgaHVlLDx3YnIvPiBzYXR1cmF0aW9uLDx3YnIvPiB2YWx1ZTsgd2hlcmUgaHVlIGlzIHRoZSAwdGgKK2VsZW1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYXZhaWxhYmxlVGVzdFBhdHRlcm5Nb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5hdmFpbGFibGU8d2JyLz5UZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBzZW5zb3IgdGVzdCBwYXR0ZXJuIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGU8L2E+CitzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGVmYXVsdHMgdG8gT0ZGLDx3YnIvPiBhbmQgYWx3YXlzIGluY2x1ZGVzIE9GRiBpZiBkZWZpbmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIGN1c3RvbSBtb2RlcyBtdXN0IGJlICZndDs9IENVU1RPTTEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNCB4IG51bV9yZWdpb25zCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBkaXNqb2ludCByZWN0YW5nbGVzIGluZGljYXRpbmcgdGhlIHNlbnNvcgorb3B0aWNhbGx5IHNoaWVsZGVkIGJsYWNrIHBpeGVsIHJlZ2lvbnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SW4gbW9zdCBjYW1lcmEgc2Vuc29ycyw8d2JyLz4gdGhlIGFjdGl2ZSBhcnJheSBpcyBzdXJyb3VuZGVkIGJ5IHNvbWUKK29wdGljYWxseSBzaGllbGRlZCBwaXhlbCBhcmVhcy48d2JyLz4gQnkgYmxvY2tpbmcgbGlnaHQsPHdici8+IHRoZXNlIHBpeGVscworcHJvdmlkZXMgYSByZWxpYWJsZSBibGFjayByZWZlcmVuY2UgZm9yIGJsYWNrIGxldmVsIGNvbXBlbnNhdGlvbgoraW4gYWN0aXZlIGFycmF5IHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGlzIGtleSBwcm92aWRlcyBhIGxpc3Qgb2YgZGlzam9pbnQgcmVjdGFuZ2xlcyBzcGVjaWZ5aW5nIHRoZQorcmVnaW9ucyBvZiBvcHRpY2FsbHkgc2hpZWxkZWQgKHdpdGggbWV0YWwgc2hpZWxkKSBibGFjayBwaXhlbAorcmVnaW9ucyBpZiB0aGUgY2FtZXJhIGRldmljZSBpcyBjYXBhYmxlIG9mIHJlYWRpbmcgb3V0IHRoZXNlIGJsYWNrCitwaXhlbHMgaW4gdGhlIG91dHB1dCByYXcgaW1hZ2VzLjx3YnIvPiBJbiBjb21wYXJpc29uIHRvIHRoZSBmaXhlZCBibGFjaworbGV2ZWwgdmFsdWVzIHJlcG9ydGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiw8d2JyLz4gdGhpcyBrZXkKK21heSBwcm92aWRlIGEgbW9yZSBhY2N1cmF0ZSB3YXkgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBjYWxjdWxhdGUKK2JsYWNrIGxldmVsIG9mIGVhY2ggY2FwdHVyZWQgcmF3IGltYWdlcy48d2JyLz48L3A+Cis8cD5XaGVuIHRoaXMga2V5IGlzIHJlcG9ydGVkLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY0JsYWNrTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmR5bmFtaWM8d2JyLz5CbGFjazx3YnIvPkxldmVsPC9hPiBhbmQKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+V2hpdGU8d2JyLz5MZXZlbDwvYT4gd2lsbCBhbHNvIGJlIHJlcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBhcnJheSBjb250YWlucyAoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCkuPHdici8+IFRoZSAoeG1pbiw8d2JyLz4geW1pbikKK211c3QgYmUgJmd0Oz0gKDAsPHdici8+MCkgYW5kICZsdDs9Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPiBUaGUgKHdpZHRoLDx3YnIvPiBoZWlnaHQpIG11c3QgYmUKKyZsdDs9IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+IEVhY2ggcmVnaW9uIG11c3QgYmUKK291dHNpZGUgdGhlIHJlZ2lvbiByZXBvcnRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIEhBTCBtdXN0IHJlcG9ydCBtaW5pbWFsIG51bWJlciBvZiBkaXNqb2ludCByZWdpb25zIGZvciB0aGUKK29wdGljYWxseSBzaGllbGRlZCBiYWNrIHBpeGVsIHJlZ2lvbnMuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBpZiBhIHJlZ2lvbiBjYW4KK2JlIGNvdmVyZWQgYnkgb25lIHJlY3RhbmdsZSw8d2JyLz4gdGhlIEhBTCBtdXN0IG5vdCBzcGxpdCB0aGlzIHJlZ2lvbiBpbnRvCittdWx0aXBsZSByZWN0YW5nbGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5vcGFxdWVSYXdTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wYXF1ZTx3YnIvPlJhdzx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TaXplIGluIGJ5dGVzIGZvciBhbGwgdGhlIGxpc3RlZCBvcGFxdWUgUkFXIGJ1ZmZlciBzaXplczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPk11c3QgYmUgbGFyZ2UgZW5vdWdoIHRvIGZpdCB0aGUgb3BhcXVlIFJBVyBvZiBjb3JyZXNwb25kaW5nIHNpemUgcHJvZHVjZWQgYnkKK3RoZSBjYW1lcmE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29uZmlndXJhdGlvbnMgYXJlIGxpc3RlZCBhcyA8Y29kZT4od2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gc2l6ZV88d2JyLz5pbl88d2JyLz5ieXRlcyk8L2NvZGU+IHR1cGxlcy48d2JyLz4KK1RoaXMgaXMgdXNlZCBmb3Igc2l6aW5nIHRoZSBncmFsbG9jIGJ1ZmZlcnMgZm9yIG9wYXF1ZSBSQVcgYnVmZmVycy48d2JyLz4KK0FsbCBSQVdfPHdici8+T1BBUVVFIG91dHB1dCBzdHJlYW0gY29uZmlndXJhdGlvbiBsaXN0ZWQgaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiB3aWxsIGhhdmUgYSBjb3JyZXNwb25kaW5nIHR1cGxlIGluCit0aGlzIGtleS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMga2V5IGlzIGFkZGVkIGluIEhBTDMuPHdici8+NC48d2JyLz4KK0ZvciBIQUwzLjx3YnIvPjQgb3IgYWJvdmU6IGRldmljZXMgYWR2ZXJ0aXNpbmcgUkFXXzx3YnIvPk9QQVFVRSBmb3JtYXQgb3V0cHV0IG11c3QgbGlzdCB0aGlzIGtleS48d2JyLz4KK0ZvciBIQUwzLjx3YnIvPjMgb3IgZWFybGllciBkZXZpY2VzOiBpZiBSQVdfPHdici8+T1BBUVVFIG91cHV0IGlzIGFkdmVydGlzZWQsPHdici8+IGNhbWVyYSBmcmFtZXdvcmsKK3dpbGwgZGVyaXZlIHRoaXMga2V5IGJ5IGFzc3VtaW5nIGVhY2ggcGl4ZWwgdGFrZXMgdHdvIGJ5dGVzIGFuZCBubyBwYWRkaW5nIGJ5dGVzCitiZXR3ZWVuIHJvd3MuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkR1cmF0aW9uIGVhY2ggcGl4ZWwgaXMgZXhwb3NlZCB0bworbGlnaHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmV4cG9zdXJlVGltZVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgc2Vuc29yIGNhbid0IGV4cG9zZSB0aGlzIGV4YWN0IGR1cmF0aW9uLDx3YnIvPiBpdCB3aWxsIHNob3J0ZW4gdGhlCitkdXJhdGlvbiBleHBvc2VkIHRvIHRoZSBuZWFyZXN0IHBvc3NpYmxlIHZhbHVlIChyYXRoZXIgdGhhbiBleHBvc2UgbG9uZ2VyKS48d2JyLz4KK1RoZSBmaW5hbCBleHBvc3VyZSB0aW1lIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EdXJhdGlvbiBmcm9tIHN0YXJ0IG9mIGZyYW1lIGV4cG9zdXJlIHRvCitzdGFydCBvZiBuZXh0IGZyYW1lIGV4cG9zdXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBOYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+IFRoZSBkdXJhdGlvbgoraXMgY2FwcGVkIHRvIDxjb2RlPm1heChkdXJhdGlvbiw8d2JyLz4gZXhwb3N1cmVUaW1lICsgb3ZlcmhlYWQpPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gZnJhbWUgcmF0ZSB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQgYnkgYSBjYW1lcmEgc3Vic3lzdGVtIGlzCithIGZ1bmN0aW9uIG9mIG1hbnkgZmFjdG9yczo8L3A+Cis8dWw+Cis8bGk+UmVxdWVzdGVkIHJlc29sdXRpb25zIG9mIG91dHB1dCBpbWFnZSBzdHJlYW1zPC9saT4KKzxsaT5BdmFpbGFiaWxpdHkgb2YgYmlubmluZyAvPHdici8+IHNraXBwaW5nIG1vZGVzIG9uIHRoZSBpbWFnZXI8L2xpPgorPGxpPlRoZSBiYW5kd2lkdGggb2YgdGhlIGltYWdlciBpbnRlcmZhY2U8L2xpPgorPGxpPlRoZSBiYW5kd2lkdGggb2YgdGhlIHZhcmlvdXMgSVNQIHByb2Nlc3NpbmcgYmxvY2tzPC9saT4KKzwvdWw+Cis8cD5TaW5jZSB0aGVzZSBmYWN0b3JzIGNhbiB2YXJ5IGdyZWF0bHkgYmV0d2VlbiBkaWZmZXJlbnQgSVNQcyBhbmQKK3NlbnNvcnMsPHdici8+IHRoZSBjYW1lcmEgYWJzdHJhY3Rpb24gdHJpZXMgdG8gcmVwcmVzZW50IHRoZSBiYW5kd2lkdGgKK3Jlc3RyaWN0aW9ucyB3aXRoIGFzIHNpbXBsZSBhIG1vZGVsIGFzIHBvc3NpYmxlLjx3YnIvPjwvcD4KKzxwPlRoZSBtb2RlbCBwcmVzZW50ZWQgaGFzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyaXN0aWNzOjwvcD4KKzx1bD4KKzxsaT5UaGUgaW1hZ2Ugc2Vuc29yIGlzIGFsd2F5cyBjb25maWd1cmVkIHRvIG91dHB1dCB0aGUgc21hbGxlc3QKK3Jlc29sdXRpb24gcG9zc2libGUgZ2l2ZW4gdGhlIGFwcGxpY2F0aW9uJ3MgcmVxdWVzdGVkIG91dHB1dCBzdHJlYW0KK3NpemVzLjx3YnIvPiAgVGhlIHNtYWxsZXN0IHJlc29sdXRpb24gaXMgZGVmaW5lZCBhcyBiZWluZyBhdCBsZWFzdCBhcyBsYXJnZQorYXMgdGhlIGxhcmdlc3QgcmVxdWVzdGVkIG91dHB1dCBzdHJlYW0gc2l6ZTsgdGhlIGNhbWVyYSBwaXBlbGluZSBtdXN0CituZXZlciBkaWdpdGFsbHkgdXBzYW1wbGUgc2Vuc29yIGRhdGEgd2hlbiB0aGUgY3JvcCByZWdpb24gY292ZXJzIHRoZQord2hvbGUgc2Vuc29yLjx3YnIvPiBJbiBnZW5lcmFsLDx3YnIvPiB0aGlzIG1lYW5zIHRoYXQgaWYgb25seSBzbWFsbCBvdXRwdXQgc3RyZWFtCityZXNvbHV0aW9ucyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIHNlbnNvciBjYW4gcHJvdmlkZSBhIGhpZ2hlciBmcmFtZQorcmF0ZS48d2JyLz48L2xpPgorPGxpPlNpbmNlIGFueSByZXF1ZXN0IG1heSB1c2UgYW55IG9yIGFsbCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQKK291dHB1dCBzdHJlYW1zLDx3YnIvPiB0aGUgc2Vuc29yIGFuZCBJU1AgbXVzdCBiZSBjb25maWd1cmVkIHRvIHN1cHBvcnQKK3NjYWxpbmcgYSBzaW5nbGUgY2FwdHVyZSB0byBhbGwgdGhlIHN0cmVhbXMgYXQgdGhlIHNhbWUgdGltZS48d2JyLz4gIFRoaXMKK21lYW5zIHRoZSBjYW1lcmEgcGlwZWxpbmUgbXVzdCBiZSByZWFkeSB0byBwcm9kdWNlIHRoZSBsYXJnZXN0CityZXF1ZXN0ZWQgb3V0cHV0IHNpemUgd2l0aG91dCBhbnkgZGVsYXkuPHdici8+ICBUaGVyZWZvcmUsPHdici8+IHRoZSBvdmVyYWxsCitmcmFtZSByYXRlIG9mIGEgZ2l2ZW4gY29uZmlndXJlZCBzdHJlYW0gc2V0IGlzIGdvdmVybmVkIG9ubHkgYnkgdGhlCitsYXJnZXN0IHJlcXVlc3RlZCBzdHJlYW0gcmVzb2x1dGlvbi48d2JyLz48L2xpPgorPGxpPlVzaW5nIG1vcmUgdGhhbiBvbmUgb3V0cHV0IHN0cmVhbSBpbiBhIHJlcXVlc3QgZG9lcyBub3QgYWZmZWN0IHRoZQorZnJhbWUgZHVyYXRpb24uPHdici8+PC9saT4KKzxsaT5DZXJ0YWluIGZvcm1hdC1zdHJlYW1zIG1heSBuZWVkIHRvIGRvIGFkZGl0aW9uYWwgYmFja2dyb3VuZCBwcm9jZXNzaW5nCitiZWZvcmUgZGF0YSBpcyBjb25zdW1lZC88d2JyLz5wcm9kdWNlZCBieSB0aGF0IHN0cmVhbS48d2JyLz4gVGhlc2UgcHJvY2Vzc29ycworY2FuIHJ1biBjb25jdXJyZW50bHkgdG8gdGhlIHJlc3Qgb2YgdGhlIGNhbWVyYSBwaXBlbGluZSw8d2JyLz4gYnV0CitjYW5ub3QgcHJvY2VzcyBtb3JlIHRoYW4gMSBjYXB0dXJlIGF0IGEgdGltZS48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbiw8d2JyLz4gZ2l2ZW4gdGhlIG1vZGVsIGFib3ZlLDx3YnIvPgoraXMgcHJvdmlkZWQgdmlhIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+IGZpZWxkIHVzaW5nCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPi48d2JyLz4KK1RoZXNlIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgbWF4aW11bSBmcmFtZSByYXRlIC88d2JyLz4gbWluaW11bSBmcmFtZQorZHVyYXRpb24gdGhhdCBpcyBwb3NzaWJsZSBmb3IgYSBnaXZlbiBzdHJlYW0gY29uZmlndXJhdGlvbi48d2JyLz48L3A+Cis8cD5TcGVjaWZpY2FsbHksPHdici8+IHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgcnVsZXMgdG8KK2RldGVybWluZSB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBpdCBjYW4gcmVxdWVzdCBmcm9tIHRoZSBjYW1lcmEKK2RldmljZTo8L3A+Cis8b2w+Cis8bGk+TGV0IHRoZSBzZXQgb2YgY3VycmVudGx5IGNvbmZpZ3VyZWQgaW5wdXQvPHdici8+b3V0cHV0IHN0cmVhbXMKK2JlIGNhbGxlZCA8Y29kZT5TPC9jb2RlPi48d2JyLz48L2xpPgorPGxpPkZpbmQgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb25zIGZvciBlYWNoIHN0cmVhbSBpbiA8Y29kZT5TPC9jb2RlPiw8d2JyLz4gYnkgbG9va2luZworaXQgdXAgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiB1c2luZyA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPgorKHdpdGggaXRzIHJlc3BlY3RpdmUgc2l6ZS88d2JyLz5mb3JtYXQpLjx3YnIvPiBMZXQgdGhpcyBzZXQgb2YgZnJhbWUgZHVyYXRpb25zIGJlCitjYWxsZWQgPGNvZGU+RjwvY29kZT4uPHdici8+PC9saT4KKzxsaT5Gb3IgYW55IGdpdmVuIHJlcXVlc3QgPGNvZGU+UjwvY29kZT4sPHdici8+IHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGFsbG93ZWQKK2ZvciA8Y29kZT5SPC9jb2RlPiBpcyB0aGUgbWF4aW11bSBvdXQgb2YgYWxsIHZhbHVlcyBpbiA8Y29kZT5GPC9jb2RlPi48d2JyLz4gTGV0IHRoZSBzdHJlYW1zCit1c2VkIGluIDxjb2RlPlI8L2NvZGU+IGJlIGNhbGxlZCA8Y29kZT5TXzx3YnIvPnI8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8L29sPgorPHA+SWYgbm9uZSBvZiB0aGUgc3RyZWFtcyBpbiA8Y29kZT5TXzx3YnIvPnI8L2NvZGU+IGhhdmUgYSBzdGFsbCB0aW1lIChsaXN0ZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4KK3VzaW5nIGl0cyByZXNwZWN0aXZlIHNpemUvPHdici8+Zm9ybWF0KSw8d2JyLz4gdGhlbiB0aGUgZnJhbWUgZHVyYXRpb24gaW4gPGNvZGU+RjwvY29kZT4KK2RldGVybWluZXMgdGhlIHN0ZWFkeSBzdGF0ZSBmcmFtZSByYXRlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdpbGwgZ2V0CitpZiBpdCB1c2VzIDxjb2RlPlI8L2NvZGU+IGFzIGEgcmVwZWF0aW5nIHJlcXVlc3QuPHdici8+IExldCB0aGlzIHNwZWNpYWwga2luZCBvZgorcmVxdWVzdCBiZSBjYWxsZWQgPGNvZGU+UnNpbXBsZTwvY29kZT4uPHdici8+PC9wPgorPHA+QSByZXBlYXRpbmcgcmVxdWVzdCA8Y29kZT5Sc2ltcGxlPC9jb2RlPiBjYW4gYmUgPGVtPm9jY2FzaW9uYWxseTwvZW0+IGludGVybGVhdmVkCitieSBhIHNpbmdsZSBjYXB0dXJlIG9mIGEgbmV3IHJlcXVlc3QgPGNvZGU+UnN0YWxsPC9jb2RlPiAod2hpY2ggaGFzIGF0IGxlYXN0CitvbmUgaW4tdXNlIHN0cmVhbSB3aXRoIGEgbm9uLTAgc3RhbGwgdGltZSkgYW5kIGlmIDxjb2RlPlJzdGFsbDwvY29kZT4gaGFzIHRoZQorc2FtZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIHRoaXMgd2lsbCBub3QgY2F1c2UgYSBmcmFtZSByYXRlIGxvc3MKK2lmIGFsbCBidWZmZXJzIGZyb20gdGhlIHByZXZpb3VzIDxjb2RlPlJzdGFsbDwvY29kZT4gaGF2ZSBhbHJlYWR5IGJlZW4KK2RlbGl2ZXJlZC48d2JyLz48L3A+Cis8cD5Gb3IgbW9yZSBkZXRhaWxzIGFib3V0IHN0YWxsaW5nLDx3YnIvPiBzZWUKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+Ljx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIG1vcmUgZGV0YWlscyBhYm91dCBzdGFsbGluZyw8d2JyLz4gc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBnYWluIGFwcGxpZWQgdG8gc2Vuc29yIGRhdGEKK2JlZm9yZSBwcm9jZXNzaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBJU08gYXJpdGhtZXRpYyB1bml0cworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBzZW5zaXRpdml0eSBpcyB0aGUgc3RhbmRhcmQgSVNPIHNlbnNpdGl2aXR5IHZhbHVlLDx3YnIvPgorYXMgZGVmaW5lZCBpbiBJU08gMTIyMzI6MjAwNi48d2JyLz48L3A+Cis8cD5UaGUgc2Vuc2l0aXZpdHkgbXVzdCBiZSB3aXRoaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT4sPHdici8+IGFuZAoraWYgaWYgaXQgbGVzcyB0aGFuIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IubWF4QW5hbG9nU2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm1heDx3YnIvPkFuYWxvZzx3YnIvPlNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK2lzIGd1YXJhbnRlZWQgdG8gdXNlIG9ubHkgYW5hbG9nIGFtcGxpZmljYXRpb24gZm9yIGFwcGx5aW5nIHRoZSBnYWluLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBhcHBseSB0aGUgZXhhY3Qgc2Vuc2l0aXZpdHkKK3JlcXVlc3RlZCw8d2JyLz4gaXQgd2lsbCByZWR1Y2UgdGhlIGdhaW4gdG8gdGhlIG5lYXJlc3Qgc3VwcG9ydGVkCit2YWx1ZS48d2JyLz4gVGhlIGZpbmFsIHNlbnNpdGl2aXR5IHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlCitvdXRwdXQgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBzZXQgdG8KK09GRjsgb3RoZXJ3aXNlIHRoZSBhdXRvLWV4cG9zdXJlIGFsZ29yaXRobSB3aWxsIG92ZXJyaWRlIHRoaXMgdmFsdWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JU08gMTIyMzI6MjAwNiBSRUkgbWV0aG9kIGlzIGFjY2VwdGFibGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci50aW1lc3RhbXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGltZXN0YW1wCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRpbWUgYXQgc3RhcnQgb2YgZXhwb3N1cmUgb2YgZmlyc3QKK3JvdyBvZiB0aGUgaW1hZ2Ugc2Vuc29yIGFjdGl2ZSBhcnJheSw8d2JyLz4gaW4gbmFub3NlY29uZHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0OyAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0aW1lc3RhbXBzIGFyZSBhbHNvIGluY2x1ZGVkIGluIGFsbCBpbWFnZQorYnVmZmVycyBwcm9kdWNlZCBmb3IgdGhlIHNhbWUgY2FwdHVyZSw8d2JyLz4gYW5kIHdpbGwgYmUgaWRlbnRpY2FsCitvbiBhbGwgdGhlIG91dHB1dHMuPHdici8+PC9wPgorPHA+V2hlbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnRpbWVzdGFtcDx3YnIvPlNvdXJjZTwvYT4gPGNvZGU+PT08L2NvZGU+IFVOS05PV04sPHdici8+Cit0aGUgdGltZXN0YW1wcyBtZWFzdXJlIHRpbWUgc2luY2UgYW4gdW5zcGVjaWZpZWQgc3RhcnRpbmcgcG9pbnQsPHdici8+CithbmQgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZy48d2JyLz4gVGhleSBjYW4gYmUgY29tcGFyZWQgd2l0aCB0aGUKK3RpbWVzdGFtcHMgZm9yIG90aGVyIGNhcHR1cmVzIGZyb20gdGhlIHNhbWUgY2FtZXJhIGRldmljZSw8d2JyLz4gYnV0IGFyZQorbm90IGd1YXJhbnRlZWQgdG8gYmUgY29tcGFyYWJsZSB0byBhbnkgb3RoZXIgdGltZSBzb3VyY2UuPHdici8+PC9wPgorPHA+V2hlbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnRpbWVzdGFtcDx3YnIvPlNvdXJjZTwvYT4gPGNvZGU+PT08L2NvZGU+IFJFQUxUSU1FLDx3YnIvPiB0aGUKK3RpbWVzdGFtcHMgbWVhc3VyZSB0aW1lIGluIHRoZSBzYW1lIHRpbWViYXNlIGFzIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL29zL1N5c3RlbUNsb2NrLmh0bWwjZWxhcHNlZFJlYWx0aW1lTmFub3MiPlN5c3RlbUNsb2NrI2VsYXBzZWRSZWFsdGltZU5hbm9zPC9hPiw8d2JyLz4gYW5kIHRoZXkgY2FuCitiZSBjb21wYXJlZCB0byBvdGhlciB0aW1lc3RhbXBzIGZyb20gb3RoZXIgc3Vic3lzdGVtcyB0aGF0CithcmUgdXNpbmcgdGhhdCBiYXNlLjx3YnIvPjwvcD4KKzxwPkZvciByZXByb2Nlc3NpbmcsPHdici8+IHRoZSB0aW1lc3RhbXAgd2lsbCBtYXRjaCB0aGUgc3RhcnQgb2YgZXhwb3N1cmUgb2YKK3RoZSBpbnB1dCBpbWFnZSw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvQ2FwdHVyZVJlc3VsdC5odG1sI1NFTlNPUl9USU1FU1RBTVAiPnRoZQordGltZXN0YW1wPC9hPiBpbiB0aGUgVG90YWxDYXB0dXJlUmVzdWx0IHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoZQorcmVwcm9jZXNzIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCB0aW1lc3RhbXBzIG11c3QgYmUgaW4gcmVmZXJlbmNlIHRvIHRoZSBrZXJuZWwncworQ0xPQ0tfPHdici8+Qk9PVFRJTUUgbW9ub3RvbmljIGNsb2NrLDx3YnIvPiB3aGljaCBwcm9wZXJseSBhY2NvdW50cyBmb3IKK3RpbWUgc3BlbnQgYXNsZWVwLjx3YnIvPiBUaGlzIGFsbG93cyBmb3Igc3luY2hyb25pemF0aW9uIHdpdGgKK3NlbnNvcnMgdGhhdCBjb250aW51ZSB0byBvcGVyYXRlIHdoaWxlIHRoZSBzeXN0ZW0gaXMKK290aGVyd2lzZSBhc2xlZXAuPHdici8+PC9wPgorPHA+SWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz50aW1lc3RhbXA8d2JyLz5Tb3VyY2U8L2E+IDxjb2RlPj09PC9jb2RlPiBSRUFMVElNRSw8d2JyLz4KK1RoZSB0aW1lc3RhbXAgbXVzdCBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgdGltZXN0YW1wcyBmcm9tIG90aGVyCitzZW5zb3Igc3Vic3lzdGVtcyB0aGF0IGFyZSB1c2luZyB0aGUgc2FtZSB0aW1lYmFzZS48d2JyLz48L3A+Cis8cD5Gb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGUgaW5wdXQgaW1hZ2UncyBzdGFydCBvZiBleHBvc3VyZSBjYW4gYmUgbG9va2VkIHVwCit3aXRoIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGltZXN0YW1wPC9hPiBmcm9tIHRoZSBtZXRhZGF0YSBpbmNsdWRlZCBpbiB0aGUKK2NhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRlbXBlcmF0dXJlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlbXBlcmF0dXJlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgdGVtcGVyYXR1cmUgb2YgdGhlIHNlbnNvciw8d2JyLz4gc2FtcGxlZCBhdCB0aGUgdGltZQorZXhwb3N1cmUgYmVnYW4gZm9yIHRoaXMgZnJhbWUuPHdici8+PC9wPgorPHA+VGhlIHRoZXJtYWwgZGlvZGUgYmVpbmcgcXVlcmllZCBzaG91bGQgYmUgaW5zaWRlIHRoZSBzZW5zb3IgUENCLDx3YnIvPiBvcgorc29tZXdoZXJlIGNsb3NlIHRvIGl0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBDZWxzaXVzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+T3B0aW9uYWwuPHdici8+IFRoaXMgdmFsdWUgaXMgbWlzc2luZyBpZiBubyB0ZW1wZXJhdHVyZSBpcyBhdmFpbGFibGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5uZXV0cmFsPHdici8+Q29sb3I8d2JyLz5Qb2ludAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGVzdGltYXRlZCBjYW1lcmEgbmV1dHJhbCBjb2xvciBpbiB0aGUgbmF0aXZlIHNlbnNvciBjb2xvcnNwYWNlIGF0Cit0aGUgdGltZSBvZiBjYXB0dXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGdpdmVzIHRoZSBuZXV0cmFsIGNvbG9yIHBvaW50IGVuY29kZWQgYXMgYW4gUkdCIHZhbHVlIGluIHRoZQorbmF0aXZlIHNlbnNvciBjb2xvciBzcGFjZS48d2JyLz4gIFRoZSBuZXV0cmFsIGNvbG9yIHBvaW50IGluZGljYXRlcyB0aGUKK2N1cnJlbnRseSBlc3RpbWF0ZWQgd2hpdGUgcG9pbnQgb2YgdGhlIHNjZW5lIGlsbHVtaW5hdGlvbi48d2JyLz4gIEl0IGNhbiBiZQordXNlZCB0byBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBwcm92aWRlZCBjb2xvciB0cmFuc2Zvcm1zIHdoZW4KK3Byb2Nlc3NpbmcgcmF3IHNlbnNvciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBvcmRlciBvZiB0aGUgdmFsdWVzIGlzIFIsPHdici8+IEcsPHdici8+IEI7IHdoZXJlIFIgaXMgaW4gdGhlIGxvd2VzdCBpbmRleC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm5vaXNlPHdici8+UHJvZmlsZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZG91YmxlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIgeCBDRkEgQ2hhbm5lbHMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHBhaXJEb3VibGVEb3VibGVdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+UGFpcnMgb2Ygbm9pc2UgbW9kZWwgY29lZmZpY2llbnRzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Tm9pc2UgbW9kZWwgY29lZmZpY2llbnRzIGZvciBlYWNoIENGQSBtb3NhaWMgY2hhbm5lbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBrZXkgY29udGFpbnMgdHdvIG5vaXNlIG1vZGVsIGNvZWZmaWNpZW50cyBmb3IgZWFjaCBDRkEgY2hhbm5lbAorY29ycmVzcG9uZGluZyB0byB0aGUgc2Vuc29yIGFtcGxpZmljYXRpb24gKFMpIGFuZCBzZW5zb3IgcmVhZG91dAorbm9pc2UgKE8pLjx3YnIvPiAgVGhlc2UgYXJlIGdpdmVuIGFzIHBhaXJzIG9mIGNvZWZmaWNpZW50cyBmb3IgZWFjaCBjaGFubmVsCitpbiB0aGUgc2FtZSBvcmRlciBhcyBjaGFubmVscyBsaXN0ZWQgZm9yIHRoZSBDRkEgbGF5b3V0IGtleQorKHNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50PC9hPikuPHdici8+ICBUaGlzIGlzCityZXByZXNlbnRlZCBhcyBhbiBhcnJheSBvZiBQYWlyJmx0O0RvdWJsZSw8d2JyLz4gRG91YmxlJmd0Oyw8d2JyLz4gd2hlcmUKK3RoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIFBhaXIgYXQgaW5kZXggbiBpcyB0aGUgUyBjb2VmZmljaWVudCBhbmQgdGhlCitzZWNvbmQgbWVtYmVyIGlzIHRoZSBPIGNvZWZmaWNpZW50IGZvciB0aGUgbnRoIGNvbG9yIGNoYW5uZWwgaW4gdGhlIENGQS48d2JyLz48L3A+Cis8cD5UaGVzZSBjb2VmZmljaWVudHMgYXJlIHVzZWQgaW4gYSB0d28gcGFyYW1ldGVyIG5vaXNlIG1vZGVsIHRvIGRlc2NyaWJlCit0aGUgYW1vdW50IG9mIG5vaXNlIHByZXNlbnQgaW4gdGhlIGltYWdlIGZvciBlYWNoIENGQSBjaGFubmVsLjx3YnIvPiAgVGhlCitub2lzZSBtb2RlbCB1c2VkIGhlcmUgaXM6PC9wPgorPHA+Tih4KSA9IHNxcnQoU3ggKyBPKTwvcD4KKzxwPldoZXJlIHggcmVwcmVzZW50cyB0aGUgcmVjb3JkZWQgc2lnbmFsIG9mIGEgQ0ZBIGNoYW5uZWwgbm9ybWFsaXplZCB0bwordGhlIHJhbmdlIFswLDx3YnIvPiAxXSw8d2JyLz4gYW5kIFMgYW5kIE8gYXJlIHRoZSBub2lzZSBtb2RlbCBjb2VmZmllY2llbnRzIGZvcgordGhhdCBjaGFubmVsLjx3YnIvPjwvcD4KKzxwPkEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgbm9pc2UgbW9kZWwgY2FuIGJlIGZvdW5kIGluIHRoZQorQWRvYmUgRE5HIHNwZWNpZmljYXRpb24gZm9yIHRoZSBOb2lzZVByb2ZpbGUgdGFnLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGEgQ0ZBIGxheW91dCBvZiBSR0dCLDx3YnIvPiB0aGUgbGlzdCBvZiBjb2VmZmljaWVudHMgd291bGQgYmUgZ2l2ZW4gYXMKK2FuIGFycmF5IG9mIGRvdWJsZXMgUzAsPHdici8+TzAsPHdici8+UzEsPHdici8+TzEsLi4uLDx3YnIvPiB3aGVyZSBTMCBhbmQgTzAgYXJlIHRoZSBjb2VmZmljaWVudHMKK2ZvciB0aGUgcmVkIGNoYW5uZWwsPHdici8+IFMxIGFuZCBPMSBhcmUgdGhlIGNvZWZmaWNpZW50cyBmb3IgdGhlIGZpcnN0IGdyZWVuCitjaGFubmVsLDx3YnIvPiBldGMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnByb2ZpbGU8d2JyLz5IdWU8d2JyLz5TYXQ8d2JyLz5NYXAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIGh1ZV9zYW1wbGVzIHggc2F0dXJhdGlvbl9zYW1wbGVzIHggdmFsdWVfc2FtcGxlcyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPk1hcHBpbmcgZm9yIGh1ZSw8d2JyLz4gc2F0dXJhdGlvbiw8d2JyLz4gYW5kIHZhbHVlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXBwaW5nIGNvbnRhaW5pbmcgYSBodWUgc2hpZnQsPHdici8+IHNhdHVyYXRpb24gc2NhbGUsPHdici8+IGFuZCB2YWx1ZSBzY2FsZQorZm9yIGVhY2ggcGl4ZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIAorICAgICAgICAgIFRoZSBodWUgc2hpZnQgaXMgZ2l2ZW4gaW4gZGVncmVlczsgc2F0dXJhdGlvbiBhbmQgdmFsdWUgc2NhbGUgZmFjdG9ycyBhcmUKKyAgICAgICAgICB1bml0bGVzcyBhbmQgYXJlIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUKKyAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+aHVlXzx3YnIvPnNhbXBsZXMsPHdici8+IHNhdHVyYXRpb25fPHdici8+c2FtcGxlcyw8d2JyLz4gYW5kIHZhbHVlXzx3YnIvPnNhbXBsZXMgYXJlIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXBEaW1lbnNpb25zIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5wcm9maWxlPHdici8+SHVlPHdici8+U2F0PHdici8+TWFwPHdici8+RGltZW5zaW9uczwvYT4uPHdici8+PC9wPgorPHA+RWFjaCBlbnRyeSBvZiB0aGlzIG1hcCBjb250YWlucyB0aHJlZSBmbG9hdHMgY29ycmVzcG9uZGluZyB0byB0aGUKK2h1ZSBzaGlmdCw8d2JyLz4gc2F0dXJhdGlvbiBzY2FsZSw8d2JyLz4gYW5kIHZhbHVlIHNjYWxlLDx3YnIvPiByZXNwZWN0aXZlbHk7IHdoZXJlIHRoZQoraHVlIHNoaWZ0IGhhcyB0aGUgbG93ZXN0IGluZGV4Ljx3YnIvPiBUaGUgbWFwIGVudHJpZXMgYXJlIHN0b3JlZCBpbiB0aGUga2V5CitpbiBuZXN0ZWQgbG9vcCBvcmRlciw8d2JyLz4gd2l0aCB0aGUgdmFsdWUgZGl2aXNpb25zIGluIHRoZSBvdXRlciBsb29wLDx3YnIvPiB0aGUKK2h1ZSBkaXZpc2lvbnMgaW4gdGhlIG1pZGRsZSBsb29wLDx3YnIvPiBhbmQgdGhlIHNhdHVyYXRpb24gZGl2aXNpb25zIGluIHRoZQoraW5uZXIgbG9vcC48d2JyLz4gQWxsIHplcm8gaW5wdXQgc2F0dXJhdGlvbiBlbnRyaWVzIGFyZSByZXF1aXJlZCB0byBoYXZlIGEKK3ZhbHVlIHNjYWxlIGZhY3RvciBvZiAxLjx3YnIvPjAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPlRvbmU8d2JyLz5DdXJ2ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgc2FtcGxlcyB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlNhbXBsZXMgZGVmaW5pbmcgYSBzcGxpbmUgZm9yIGEgdG9uZS1tYXBwaW5nIGN1cnZlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsaXN0IG9mIHgsPHdici8+eSBzYW1wbGVzIGRlZmluaW5nIGEgdG9uZS1tYXBwaW5nIGN1cnZlIGZvciBnYW1tYSBhZGp1c3RtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggc2FtcGxlIGhhcyBhbiBpbnB1dCByYW5nZSBvZiA8Y29kZT5bMCw8d2JyLz4gMV08L2NvZGU+IGFuZCBhbiBvdXRwdXQgcmFuZ2Ugb2YKKzxjb2RlPlswLDx3YnIvPiAxXTwvY29kZT4uPHdici8+ICBUaGUgZmlyc3Qgc2FtcGxlIGlzIHJlcXVpcmVkIHRvIGJlIDxjb2RlPigwLDx3YnIvPiAwKTwvY29kZT4sPHdici8+IGFuZCB0aGUgbGFzdAorc2FtcGxlIGlzIHJlcXVpcmVkIHRvIGJlIDxjb2RlPigxLDx3YnIvPiAxKTwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBrZXkgY29udGFpbnMgYSBkZWZhdWx0IHRvbmUgY3VydmUgdGhhdCBjYW4gYmUgYXBwbGllZCB3aGlsZQorcHJvY2Vzc2luZyB0aGUgaW1hZ2UgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgdXNlciBhZGp1c3RtZW50cy48d2JyLz4KK1RoZSBjdXJ2ZSBpcyBzcGVjaWZpZWQgYXMgYSBsaXN0IG9mIHZhbHVlIHBhaXJzIGluIGxpbmVhciBnYW1tYS48d2JyLz4KK1RoZSBjdXJ2ZSBpcyBpbnRlcnBvbGF0ZWQgdXNpbmcgYSBjdWJpYyBzcGxpbmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Z3JlZW48d2JyLz5TcGxpdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHdvcnN0LWNhc2UgZGl2ZXJnZW5jZSBiZXR3ZWVuIEJheWVyIGdyZWVuIGNoYW5uZWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGlzIGFuIGVzdGltYXRlIG9mIHRoZSB3b3JzdCBjYXNlIHNwbGl0IGJldHdlZW4gdGhlCitCYXllciBncmVlbiBjaGFubmVscyBpbiB0aGUgcmVkIGFuZCBibHVlIHJvd3MgaW4gdGhlIHNlbnNvciBjb2xvcgorZmlsdGVyIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSBncmVlbiBzcGxpdCBpcyBjYWxjdWxhdGVkIGFzIGZvbGxvd3M6PC9wPgorPG9sPgorPGxpPkEgNXg1IHBpeGVsIChvciBsYXJnZXIpIHdpbmRvdyBXIHdpdGhpbiB0aGUgYWN0aXZlIHNlbnNvciBhcnJheSBpcworY2hvc2VuLjx3YnIvPiBUaGUgdGVybSAncGl4ZWwnIGhlcmUgaXMgdGFrZW4gdG8gbWVhbiBhIGdyb3VwIG9mIDQgQmF5ZXIKK21vc2FpYyBjaGFubmVscyAoUiw8d2JyLz4gR3IsPHdici8+IEdiLDx3YnIvPiBCKS48d2JyLz4gIFRoZSBsb2NhdGlvbiBhbmQgc2l6ZSBvZiB0aGUgd2luZG93CitjaG9zZW4gaXMgaW1wbGVtZW50YXRpb24gZGVmaW5lZCw8d2JyLz4gYW5kIHNob3VsZCBiZSBjaG9zZW4gdG8gcHJvdmlkZSBhCitncmVlbiBzcGxpdCBlc3RpbWF0ZSB0aGF0IGlzIGJvdGggcmVwcmVzZW50YXRpdmUgb2YgdGhlIGVudGlyZSBpbWFnZQorZm9yIHRoaXMgY2FtZXJhIHNlbnNvciw8d2JyLz4gYW5kIGNhbiBiZSBjYWxjdWxhdGVkIHF1aWNrbHkuPHdici8+PC9saT4KKzxsaT5UaGUgYXJpdGhtZXRpYyBtZWFuIG9mIHRoZSBncmVlbiBjaGFubmVscyBmcm9tIHRoZSByZWQKK3Jvd3MgKG1lYW5fPHdici8+R3IpIHdpdGhpbiBXIGlzIGNvbXB1dGVkLjx3YnIvPjwvbGk+Cis8bGk+VGhlIGFyaXRobWV0aWMgbWVhbiBvZiB0aGUgZ3JlZW4gY2hhbm5lbHMgZnJvbSB0aGUgYmx1ZQorcm93cyAobWVhbl88d2JyLz5HYikgd2l0aGluIFcgaXMgY29tcHV0ZWQuPHdici8+PC9saT4KKzxsaT5UaGUgbWF4aW11bSByYXRpbyBSIG9mIHRoZSB0d28gbWVhbnMgaXMgY29tcHV0ZWQgYXMgZm9sbG93czoKKzxjb2RlPlIgPSBtYXgoKG1lYW5fPHdici8+R3IgKyAxKS88d2JyLz4obWVhbl88d2JyLz5HYiArIDEpLDx3YnIvPiAobWVhbl88d2JyLz5HYiArIDEpLzx3YnIvPihtZWFuXzx3YnIvPkdyICsgMSkpPC9jb2RlPjwvbGk+Cis8L29sPgorPHA+VGhlIHJhdGlvIFIgaXMgdGhlIGdyZWVuIHNwbGl0IGRpdmVyZ2VuY2UgcmVwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHksPHdici8+Cit3aGljaCByZXByZXNlbnRzIGhvdyBtdWNoIHRoZSBncmVlbiBjaGFubmVscyBkaWZmZXIgaW4gdGhlIG1vc2FpYworcGF0dGVybi48d2JyLz4gIFRoaXMgdmFsdWUgaXMgdHlwaWNhbGx5IHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0cmVhdG1lbnQgb2YKK3RoZSBncmVlbiBtb3NhaWMgY2hhbm5lbHMgd2hlbiBkZW1vc2FpY2luZy48d2JyLz48L3A+Cis8cD5UaGUgZ3JlZW4gc3BsaXQgdmFsdWUgY2FuIGJlIHJvdWdobHkgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+UiAmbHQ7IDEuPHdici8+MDMgaXMgYSBuZWdsaWdpYmxlIHNwbGl0ICgmbHQ7MyUgZGl2ZXJnZW5jZSkuPHdici8+PC9saT4KKzxsaT4xLjx3YnIvPjIwICZsdDs9IFIgJmd0Oz0gMS48d2JyLz4wMyB3aWxsIHJlcXVpcmUgc29tZSBzb2Z0d2FyZQorY29ycmVjdGlvbiB0byBhdm9pZCBkZW1vc2FpYyBlcnJvcnMgKDMtMjAlIGRpdmVyZ2VuY2UpLjx3YnIvPjwvbGk+Cis8bGk+UiAmZ3Q7IDEuPHdici8+MjAgd2lsbCByZXF1aXJlIHN0cm9uZyBzb2Z0d2FyZSBjb3JyZWN0aW9uIHRvIHByb2R1Y2UKK2EgdXN1YWJsZSBpbWFnZSAoJmd0OzIwJSBkaXZlcmdlbmNlKS48d2JyLz48L2xpPgorPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGdyZWVuIHNwbGl0IGdpdmVuIG1heSBiZSBhIHN0YXRpYyB2YWx1ZSBiYXNlZCBvbiBwcmlvcgorY2hhcmFjdGVyaXphdGlvbiBvZiB0aGUgY2FtZXJhIHNlbnNvciB1c2luZyB0aGUgZ3JlZW4gc3BsaXQKK2NhbGN1bGF0aW9uIG1ldGhvZCBnaXZlbiBoZXJlIG92ZXIgYSBsYXJnZSw8d2JyLz4gcmVwcmVzZW50YXRpdmUsPHdici8+IHNhbXBsZQorc2V0IG9mIGltYWdlcy48d2JyLz4gIE90aGVyIG1ldGhvZHMgb2YgY2FsY3VsYXRpb24gdGhhdCBwcm9kdWNlIGVxdWl2YWxlbnQKK3Jlc3VsdHMsPHdici8+IGFuZCBjYW4gYmUgaW50ZXJwcmV0ZWQgaW4gdGhlIHNhbWUgbWFubmVyLDx3YnIvPiBtYXkgYmUgdXNlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPkRhdGEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGl4ZWwgPGNvZGU+W1IsPHdici8+IEdfPHdici8+ZXZlbiw8d2JyLz4gR188d2JyLz5vZGQsPHdici8+IEJdPC9jb2RlPiB0aGF0IHN1cHBsaWVzIHRoZSB0ZXN0IHBhdHRlcm4KK3doZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlPC9hPiBpcyBTT0xJRF88d2JyLz5DT0xPUi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5FYWNoIGNvbG9yIGNoYW5uZWwgaXMgdHJlYXRlZCBhcyBhbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlci48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHRoZW4gdXNlcyB0aGUgbW9zdCBzaWduaWZpY2FudCBYIGJpdHMKK3RoYXQgY29ycmVzcG9uZCB0byBob3cgbWFueSBiaXRzIGFyZSBpbiBpdHMgQmF5ZXIgcmF3IHNlbnNvcgorb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBhIHNlbnNvciB3aXRoIFJBVzEwIEJheWVyIG91dHB1dCB3b3VsZCB1c2UgdGhlCisxMCBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIGNvbG9yIGNoYW5uZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyB0ZXN0IHBhdHRlcm4gbW9kZSBpcyB1c2VkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYQorZGV2aWNlIHJldHVybnMgY2FwdHVyZXMgZnJvbSB0aGUgaW1hZ2Ugc2Vuc29yLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgdGhlIGRlZmF1bHQgaWYgdGhlIGtleSBpcyBub3Qgc2V0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNPTElEX0NPTE9SPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FYWNoIHBpeGVsIGluIDxjb2RlPltSLDx3YnIvPiBHXzx3YnIvPmV2ZW4sPHdici8+IEdfPHdici8+b2RkLDx3YnIvPiBCXTwvY29kZT4gaXMgcmVwbGFjZWQgYnkgaXRzCityZXNwZWN0aXZlIGNvbG9yIGNoYW5uZWwgcHJvdmlkZWQgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+RGF0YTwvYT4uPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGU6PC9wPgorPHByZT48Y29kZT5hbmRyb2lkLjx3YnIvPnRlc3RQYXR0ZXJuRGF0YSA9IFswLDx3YnIvPiAweEZGRkZGRkZGLDx3YnIvPiAweEZGRkZGRkZGLDx3YnIvPiAwXQorPC9jb2RlPjwvcHJlPgorPHA+QWxsIGdyZWVuIHBpeGVscyBhcmUgMTAwJSBncmVlbi48d2JyLz4gQWxsIHJlZC88d2JyLz5ibHVlIHBpeGVscyBhcmUgYmxhY2suPHdici8+PC9wPgorPHByZT48Y29kZT5hbmRyb2lkLjx3YnIvPnRlc3RQYXR0ZXJuRGF0YSA9IFsweEZGRkZGRkZGLDx3YnIvPiAwLDx3YnIvPiAweEZGRkZGRkZGLDx3YnIvPiAwXQorPC9jb2RlPjwvcHJlPgorPHA+QWxsIHJlZCBwaXhlbHMgYXJlIDEwMCUgcmVkLjx3YnIvPiBPbmx5IHRoZSBvZGQgZ3JlZW4gcGl4ZWxzCithcmUgMTAwJSBncmVlbi48d2JyLz4gQWxsIGJsdWUgcGl4ZWxzIGFyZSAxMDAlIGJsYWNrLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTE9SX0JBUlM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBwaXhlbCBkYXRhIGlzIHJlcGxhY2VkIHdpdGggYW4gOC1iYXIgY29sb3IgcGF0dGVybi48d2JyLz48L3A+Cis8cD5UaGUgdmVydGljYWwgYmFycyAobGVmdC10by1yaWdodCkgYXJlIGFzIGZvbGxvd3M6PC9wPgorPHVsPgorPGxpPjEwMCUgd2hpdGU8L2xpPgorPGxpPnllbGxvdzwvbGk+Cis8bGk+Y3lhbjwvbGk+Cis8bGk+Z3JlZW48L2xpPgorPGxpPm1hZ2VudGE8L2xpPgorPGxpPnJlZDwvbGk+Cis8bGk+Ymx1ZTwvbGk+Cis8bGk+YmxhY2s8L2xpPgorPC91bD4KKzxwPkluIGdlbmVyYWwgdGhlIGltYWdlIHdvdWxkIGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nOjwvcD4KKzxwcmU+PGNvZGU+VyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKKy48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPgorLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+CisuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4KKworKEIgPSBCbHVlLDx3YnIvPiBLID0gQmxhY2spCis8L2NvZGU+PC9wcmU+Cis8cD5FYWNoIGJhciBzaG91bGQgdGFrZSB1cCAxLzx3YnIvPjggb2YgdGhlIHNlbnNvciBwaXhlbCBhcnJheSB3aWR0aC48d2JyLz4KK1doZW4gdGhpcyBpcyBub3QgcG9zc2libGUsPHdici8+IHRoZSBiYXIgc2l6ZSBzaG91bGQgYmUgcm91bmRlZAorZG93biB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIGFuZCB0aGUgcGF0dGVybiBjYW4gcmVwZWF0CitvbiB0aGUgcmlnaHQgc2lkZS48d2JyLz48L3A+Cis8cD5FYWNoIGJhcidzIGhlaWdodCBtdXN0IGFsd2F5cyB0YWtlIHVwIHRoZSBmdWxsIHNlbnNvcgorcGl4ZWwgYXJyYXkgaGVpZ2h0Ljx3YnIvPjwvcD4KKzxwPkVhY2ggcGl4ZWwgaW4gdGhpcyB0ZXN0IHBhdHRlcm4gbXVzdCBiZSBzZXQgdG8gZWl0aGVyCiswJSBpbnRlbnNpdHkgb3IgMTAwJSBpbnRlbnNpdHkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09MT1JfQkFSU19GQURFX1RPX0dSQVk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0ZXN0IHBhdHRlcm4gaXMgc2ltaWxhciB0byBDT0xPUl88d2JyLz5CQVJTLDx3YnIvPiBleGNlcHQgdGhhdAorZWFjaCBiYXIgc2hvdWxkIHN0YXJ0IGF0IGl0cyBzcGVjaWZpZWQgY29sb3IgYXQgdGhlIHRvcCw8d2JyLz4KK2FuZCBmYWRlIHRvIGdyYXkgYXQgdGhlIGJvdHRvbS48d2JyLz48L3A+Cis8cD5GdXJ0aGVybW9yZSBlYWNoIGJhciBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgaW50byBhIGxlZnQgYW5kCityaWdodCBoYWxmLjx3YnIvPiBUaGUgbGVmdCBoYWxmIHNob3VsZCBoYXZlIGEgc21vb3RoIGdyYWRpZW50LDx3YnIvPgorYW5kIHRoZSByaWdodCBoYWxmIHNob3VsZCBoYXZlIGEgcXVhbnRpemVkIGdyYWRpZW50Ljx3YnIvPjwvcD4KKzxwPkluIHBhcnRpY3VsYXIsPHdici8+IHRoZSByaWdodCBoYWxmJ3Mgc2hvdWxkIGNvbnNpc3Qgb2YgYmxvY2tzIG9mIHRoZQorc2FtZSBjb2xvciBmb3IgMS88d2JyLz4xNnRoIGFjdGl2ZSBzZW5zb3IgcGl4ZWwgYXJyYXkgd2lkdGguPHdici8+PC9wPgorPHA+VGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgaW4gdGhlIHF1YW50aXplZCBncmFkaWVudCBzaG91bGQKK2JlIGNvcGllZCBmcm9tIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIHNtb290aCBncmFkaWVudC48d2JyLz48L3A+Cis8cD5UaGUgaGVpZ2h0IG9mIGVhY2ggYmFyIHNob3VsZCBhbHdheXMgYmUgYSBtdWx0aXBsZSBvZiAxMjguPHdici8+CitXaGVuIHRoaXMgaXMgbm90IHRoZSBjYXNlLDx3YnIvPiB0aGUgcGF0dGVybiBzaG91bGQgcmVwZWF0IGF0IHRoZSBib3R0b20KK29mIHRoZSBpbWFnZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QTjk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBwaXhlbCBkYXRhIGlzIHJlcGxhY2VkIGJ5IGEgcHNldWRvLXJhbmRvbSBzZXF1ZW5jZQorZ2VuZXJhdGVkIGZyb20gYSBQTjkgNTEyLWJpdCBzZXF1ZW5jZSAodHlwaWNhbGx5IGltcGxlbWVudGVkCitpbiBoYXJkd2FyZSB3aXRoIGEgbGluZWFyIGZlZWRiYWNrIHNoaWZ0IHJlZ2lzdGVyKS48d2JyLz48L3A+Cis8cD5UaGUgZ2VuZXJhdG9yIHNob3VsZCBiZSByZXNldCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggZnJhbWUsPHdici8+CithbmQgdGh1cyBlYWNoIHN1YnNlcXVlbnQgcmF3IGZyYW1lIHdpdGggdGhpcyB0ZXN0IHBhdHRlcm4gc2hvdWxkCitiZSBleGFjdGx5IHRoZSBzYW1lIGFzIHRoZSBsYXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNVU1RPTTE8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjI1Njwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGZpcnN0IGN1c3RvbSB0ZXN0IHBhdHRlcm4uPHdici8+IEFsbCBjdXN0b20gcGF0dGVybnMgdGhhdCBhcmUKK2F2YWlsYWJsZSBvbmx5IG9uIHRoaXMgY2FtZXJhIGRldmljZSBhcmUgYXQgbGVhc3QgdGhpcyBudW1lcmljCit2YWx1ZS48d2JyLz48L3A+Cis8cD5BbGwgb2YgdGhlIGN1c3RvbSB0ZXN0IHBhdHRlcm5zIHdpbGwgYmUgc3RhdGljCisodGhhdCBpcyB0aGUgcmF3IGltYWdlIG11c3Qgbm90IHZhcnkgZnJvbSBmcmFtZSB0byBmcmFtZSkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hlbiBlbmFibGVkLDx3YnIvPiB0aGUgc2Vuc29yIHNlbmRzIGEgdGVzdCBwYXR0ZXJuIGluc3RlYWQgb2YKK2RvaW5nIGEgcmVhbCBleHBvc3VyZSBmcm9tIHRoZSBjYW1lcmEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5hdmFpbGFibGVUZXN0UGF0dGVybk1vZGVzIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5hdmFpbGFibGU8d2JyLz5UZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhIHRlc3QgcGF0dGVybiBpcyBlbmFibGVkLDx3YnIvPiBhbGwgbWFudWFsIHNlbnNvciBjb250cm9scyBzcGVjaWZpZWQKK2J5IGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPiogd2lsbCBiZSBpZ25vcmVkLjx3YnIvPiBBbGwgb3RoZXIgY29udHJvbHMgc2hvdWxkCit3b3JrIGFzIG5vcm1hbC48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gaWYgbWFudWFsIGZsYXNoIGlzIGVuYWJsZWQsPHdici8+IGZsYXNoIGZpcmluZyBzaG91bGQgc3RpbGwKK29jY3VyIChhbmQgdGhhdCB0aGUgdGVzdCBwYXR0ZXJuIHJlbWFpbiB1bm1vZGlmaWVkLDx3YnIvPiBzaW5jZSB0aGUgZmxhc2gKK3dvdWxkIG5vdCBhY3R1YWxseSBhZmZlY3QgaXQpLjx3YnIvPjwvcD4KKzxwPkRlZmF1bHRzIHRvIE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsbCB0ZXN0IHBhdHRlcm5zIGFyZSBzcGVjaWZpZWQgaW4gdGhlIEJheWVyIGRvbWFpbi48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG1heSBjaG9vc2UgdG8gc3Vic3RpdHV0ZSB0ZXN0IHBhdHRlcm5zIGZyb20gdGhlIHNlbnNvcgord2l0aCB0ZXN0IHBhdHRlcm5zIGZyb20gb24tZGV2aWNlIG1lbW9yeS48d2JyLz4gSW4gdGhhdCBjYXNlLDx3YnIvPiBpdCBzaG91bGQgYmUKK2luZGlzdGluZ3Vpc2hhYmxlIHRvIHRoZSBJU1Agd2hldGhlciB0aGUgZGF0YSBjYW1lIGZyb20gdGhlCitzZW5zb3IgaW50ZXJjb25uZWN0IGJ1cyAoc3VjaCBhcyBDU0kyKSBvciBtZW1vcnkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5yb2xsaW5nU2h1dHRlclNrZXciPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cm9sbGluZzx3YnIvPlNodXR0ZXI8d2JyLz5Ta2V3CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EdXJhdGlvbiBiZXR3ZWVuIHRoZSBzdGFydCBvZiBmaXJzdCByb3cgZXhwb3N1cmUKK2FuZCB0aGUgc3RhcnQgb2YgbGFzdCByb3cgZXhwb3N1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMCBhbmQgJmx0OworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIGV4cG9zdXJlIHRpbWUgc2tldyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgbGFzdAorcm93IGV4cG9zdXJlIHN0YXJ0IHRpbWVzLjx3YnIvPiBUaGUgZmlyc3Qgcm93IGFuZCB0aGUgbGFzdCByb3cgYXJlCit0aGUgZmlyc3QgYW5kIGxhc3Qgcm93cyBpbnNpZGUgb2YgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+Rm9yIHR5cGljYWwgY2FtZXJhIHNlbnNvcnMgdGhhdCB1c2Ugcm9sbGluZyBzaHV0dGVycyw8d2JyLz4gdGhpcyBpcyBhbHNvIGVxdWl2YWxlbnQKK3RvIHRoZSBmcmFtZSByZWFkb3V0IHRpbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3QgcmVwb3J0IDxjb2RlPjA8L2NvZGU+IGlmIHRoZSBzZW5zb3IgaXMgdXNpbmcgZ2xvYmFsIHNodXR0ZXIsPHdici8+IHdoZXJlIGFsbCBwaXhlbHMgYmVnaW4KK2V4cG9zdXJlIGF0IHRoZSBzYW1lIHRpbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+QmxhY2s8d2JyLz5MZXZlbAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MngyIHJhdyBjb3VudCBibG9jazwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGVyLWZyYW1lIGR5bmFtaWMgYmxhY2sgbGV2ZWwgb2Zmc2V0IGZvciBlYWNoIG9mIHRoZSBjb2xvciBmaWx0ZXIKK2FycmFuZ2VtZW50IChDRkEpIG1vc2FpYyBjaGFubmVscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwIGZvciBlYWNoLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNhbWVyYSBzZW5zb3IgYmxhY2sgbGV2ZWxzIG1heSB2YXJ5IGRyYW1hdGljYWxseSBmb3IgZGlmZmVyZW50CitjYXB0dXJlIHNldHRpbmdzIChlLjx3YnIvPmcuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KS48d2JyLz4gVGhlIGZpeGVkIGJsYWNrCitsZXZlbCByZXBvcnRlZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5ibGFjazx3YnIvPkxldmVsPHdici8+UGF0dGVybjwvYT4gbWF5IGJlIHRvbworaW5hY2N1cmF0ZSB0byByZXByZXNlbnQgdGhlIGFjdHVhbCB2YWx1ZSBvbiBhIHBlci1mcmFtZSBiYXNpcy48d2JyLz4gVGhlCitjYW1lcmEgZGV2aWNlIGludGVybmFsIHBpcGVsaW5lIHJlbGllcyBvbiByZWxpYWJsZSBibGFjayBsZXZlbCB2YWx1ZXMKK3RvIHByb2Nlc3MgdGhlIHJhdyBpbWFnZXMgYXBwcm9wcmlhdGVseS48d2JyLz4gVG8gZ2V0IHRoZSBiZXN0IGltYWdlCitxdWFsaXR5LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgY2hvb3NlIHRvIGVzdGltYXRlIHRoZSBwZXIgZnJhbWUgYmxhY2sKK2xldmVsIHZhbHVlcyBlaXRoZXIgYmFzZWQgb24gb3B0aWNhbGx5IHNoaWVsZGVkIGJsYWNrIHJlZ2lvbnMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+KSBvciBpdHMgaW50ZXJuYWwgbW9kZWwuPHdici8+PC9wPgorPHA+VGhpcyBrZXkgcmVwb3J0cyB0aGUgY2FtZXJhIGRldmljZSBlc3RpbWF0ZWQgcGVyLWZyYW1lIHplcm8gbGlnaHQKK3ZhbHVlIGZvciBlYWNoIG9mIHRoZSBDRkEgbW9zYWljIGNoYW5uZWxzIGluIHRoZSBjYW1lcmEgc2Vuc29yLjx3YnIvPiBUaGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiBtYXkgb25seSByZXByZXNlbnQgYSBjb2Fyc2UKK2FwcHJveGltYXRpb24gb2YgdGhlIGFjdHVhbCBibGFjayBsZXZlbCB2YWx1ZXMuPHdici8+IFRoaXMgdmFsdWUgaXMgdGhlCitibGFjayBsZXZlbCB1c2VkIGluIGNhbWVyYSBkZXZpY2UgaW50ZXJuYWwgaW1hZ2UgcHJvY2Vzc2luZyBwaXBlbGluZQorYW5kIGdlbmVyYWxseSBtb3JlIGFjY3VyYXRlIHRoYW4gdGhlIGZpeGVkIGJsYWNrIGxldmVsIHZhbHVlcy48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHNpbmNlIHRoZXkgYXJlIGVzdGltYXRlZCB2YWx1ZXMgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkKK21heSBub3QgYmUgYXMgYWNjdXJhdGUgYXMgdGhlIGJsYWNrIGxldmVsIHZhbHVlcyBjYWxjdWxhdGVkIGZyb20gdGhlCitvcHRpY2FsIGJsYWNrIHBpeGVscyByZXBvcnRlZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHRoZSBzYW1lIG9yZGVyIGFzIGNoYW5uZWxzIGxpc3RlZCBmb3IgdGhlIENGQQorbGF5b3V0IGtleSAoc2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmNvbG9yPHdici8+RmlsdGVyPHdici8+QXJyYW5nZW1lbnQ8L2E+KSw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiB0aGUKK250aCB2YWx1ZSBnaXZlbiBjb3JyZXNwb25kcyB0byB0aGUgYmxhY2sgbGV2ZWwgb2Zmc2V0IGZvciB0aGUgbnRoCitjb2xvciBjaGFubmVsIGxpc3RlZCBpbiB0aGUgQ0ZBLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4gaXMKK2F2YWlsYWJsZSBvciB0aGUgY2FtZXJhIGRldmljZSBhZHZlcnRpc2VzIHRoaXMga2V5IHZpYQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCNnZXRBdmFpbGFibGVDYXB0dXJlUmVzdWx0S2V5cyI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzI2dldEF2YWlsYWJsZUNhcHR1cmVSZXN1bHRLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHJvdy1jb2x1bW4gc2NhbiBvcmRlciw8d2JyLz4gd2l0aCB0aGUgZmlyc3QgdmFsdWUKK2NvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQgb2YgdGhlIENGQSBpbiByb3c9MCw8d2JyLz4gY29sdW1uPTAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+V2hpdGU8d2JyLz5MZXZlbAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSByYXcgdmFsdWUgb3V0cHV0IGJ5IHNlbnNvciBmb3IgdGhpcyBmcmFtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2luY2UgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiBtYXkgY2hhbmdlIGZvciBkaWZmZXJlbnQKK2NhcHR1cmUgc2V0dGluZ3MgKGUuPHdici8+Zy4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KSw8d2JyLz4gdGhlIHdoaXRlCitsZXZlbCB3aWxsIGNoYW5nZSBhY2NvcmRpbmdseS48d2JyLz4gVGhpcyBrZXkgaXMgc2ltaWxhciB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+d2hpdGU8d2JyLz5MZXZlbDwvYT4sPHdici8+IGJ1dCBzcGVjaWZpZXMgdGhlIGNhbWVyYSBkZXZpY2UKK2VzdGltYXRlZCB3aGl0ZSBsZXZlbCBmb3IgZWFjaCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGlzIGtleSB3aWxsIGJlIGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+IGlzCithdmFpbGFibGUgb3IgdGhlIGNhbWVyYSBkZXZpY2UgYWR2ZXJ0aXNlcyB0aGlzIGtleSB2aWEKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlcXVlc3RLZXlzIj5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlcXVlc3RLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBmdWxsIGJpdCBkZXB0aCBvZiB0aGUgc2Vuc29yIG11c3QgYmUgYXZhaWxhYmxlIGluIHRoZSByYXcgZGF0YSw8d2JyLz4KK3NvIHRoZSB2YWx1ZSBmb3IgbGluZWFyIHNlbnNvcnMgc2hvdWxkIG5vdCBiZSBzaWduaWZpY2FudGx5IGxvd2VyCit0aGFuIG1heGltdW0gcmF3IHZhbHVlIHN1cHBvcnRlZCw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiAyXihzZW5zb3IgYml0cyBwZXIgcGl4ZWwpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3NoYWRpbmciIGNsYXNzPSJzZWN0aW9uIj5zaGFkaW5nPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbnMsPHdici8+IHdpdGhvdXQgc2xvd2luZworZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgaGlnaC1xdWFsaXR5IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uLDx3YnIvPiBhdCB0aGUKK2Nvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZSByYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlF1YWxpdHkgb2YgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZAordG8gdGhlIGltYWdlIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIE9GRiBtb2RlLDx3YnIvPiBubyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgYW4gaWRlbnRpdHkgbGVucyBzaGFkaW5nIG1hcCBkYXRhIHdpbGwgYmUgcHJvdmlkZWQKK2lmIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiA9PSBPTjwvY29kZT4uPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgbGVucworc2hhZGluZyBtYXAgd2l0aCBzaXplIG9mIDxjb2RlPlsgNCw8d2JyLz4gMyBdPC9jb2RlPiw8d2JyLz4KK3RoZSBvdXRwdXQgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT4gZm9yIHRoaXMgY2FzZSB3aWxsIGJlIGFuIGlkZW50aXR5CittYXAgc2hvd24gYmVsb3c6PC9wPgorPHByZT48Y29kZT5bIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wIF0KKzwvY29kZT48L3ByZT4KKzxwPldoZW4gc2V0IHRvIG90aGVyIG1vZGVzLDx3YnIvPiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLjx3YnIvPiBBcHBsaWNhdGlvbnMgY2FuIHJlcXVlc3QgbGVucyBzaGFkaW5nIG1hcCBkYXRhIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiB0byBPTiw8d2JyLz4gYW5kIHRoZW4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBwcm92aWRlIGxlbnMKK3NoYWRpbmcgbWFwIGRhdGEgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT47IHRoZSByZXR1cm5lZCBzaGFkaW5nIG1hcAorZGF0YSB3aWxsIGJlIHRoZSBvbmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhpcyBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIGRhdGEgbWF5IGRlcGVuZCBvbiB0aGUgYXV0by1leHBvc3VyZSAoQUUpIGFuZCBBV0Igc3RhdGlzdGljcyw8d2JyLz4gdGhlcmVmb3JlCit0aGUgcmVsaWFiaWxpdHkgb2YgdGhlIG1hcCBkYXRhIG1heSBiZSBhZmZlY3RlZCBieSB0aGUgQUUgYW5kIEFXQiBhbGdvcml0aG1zLjx3YnIvPiBXaGVuIEFFIGFuZAorQVdCIGFyZSBpbiBBVVRPIG1vZGVzKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGIGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4KK09GRiksPHdici8+IHRvIGdldCBiZXN0IHJlc3VsdHMsPHdici8+IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGFwcGxpY2F0aW9ucyB3YWl0IGZvciB0aGUgQUUgYW5kIEFXQgordG8gYmUgY29udmVyZ2VkIGJlZm9yZSB1c2luZyB0aGUgcmV0dXJuZWQgc2hhZGluZyBtYXAgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5zdHJlbmd0aCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNoYWRpbmcuPHdici8+c3RyZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCB0aGUgYW1vdW50IG9mIHNoYWRpbmcgY29ycmVjdGlvbgorYXBwbGllZCB0byB0aGUgaW1hZ2VzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIHVuaXRsZXNzOiAxLTEwOyAxMCBpcyBmdWxsIHNoYWRpbmcKKyAgICAgICAgICBjb21wZW5zYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2hhZGluZy5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbnMsPHdici8+IHdpdGhvdXQgc2xvd2luZworZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgaGlnaC1xdWFsaXR5IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uLDx3YnIvPiBhdCB0aGUKK2Nvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZSByYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlF1YWxpdHkgb2YgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZAordG8gdGhlIGltYWdlIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIE9GRiBtb2RlLDx3YnIvPiBubyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgYW4gaWRlbnRpdHkgbGVucyBzaGFkaW5nIG1hcCBkYXRhIHdpbGwgYmUgcHJvdmlkZWQKK2lmIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiA9PSBPTjwvY29kZT4uPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgbGVucworc2hhZGluZyBtYXAgd2l0aCBzaXplIG9mIDxjb2RlPlsgNCw8d2JyLz4gMyBdPC9jb2RlPiw8d2JyLz4KK3RoZSBvdXRwdXQgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT4gZm9yIHRoaXMgY2FzZSB3aWxsIGJlIGFuIGlkZW50aXR5CittYXAgc2hvd24gYmVsb3c6PC9wPgorPHByZT48Y29kZT5bIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wIF0KKzwvY29kZT48L3ByZT4KKzxwPldoZW4gc2V0IHRvIG90aGVyIG1vZGVzLDx3YnIvPiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLjx3YnIvPiBBcHBsaWNhdGlvbnMgY2FuIHJlcXVlc3QgbGVucyBzaGFkaW5nIG1hcCBkYXRhIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiB0byBPTiw8d2JyLz4gYW5kIHRoZW4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBwcm92aWRlIGxlbnMKK3NoYWRpbmcgbWFwIGRhdGEgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcDwvYT47IHRoZSByZXR1cm5lZCBzaGFkaW5nIG1hcAorZGF0YSB3aWxsIGJlIHRoZSBvbmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhpcyBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIGRhdGEgbWF5IGRlcGVuZCBvbiB0aGUgYXV0by1leHBvc3VyZSAoQUUpIGFuZCBBV0Igc3RhdGlzdGljcyw8d2JyLz4gdGhlcmVmb3JlCit0aGUgcmVsaWFiaWxpdHkgb2YgdGhlIG1hcCBkYXRhIG1heSBiZSBhZmZlY3RlZCBieSB0aGUgQUUgYW5kIEFXQiBhbGdvcml0aG1zLjx3YnIvPiBXaGVuIEFFIGFuZAorQVdCIGFyZSBpbiBBVVRPIG1vZGVzKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGIGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4KK09GRiksPHdici8+IHRvIGdldCBiZXN0IHJlc3VsdHMsPHdici8+IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGFwcGxpY2F0aW9ucyB3YWl0IGZvciB0aGUgQUUgYW5kIEFXQgordG8gYmUgY29udmVyZ2VkIGJlZm9yZSB1c2luZyB0aGUgcmV0dXJuZWQgc2hhZGluZyBtYXAgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zaGFkaW5nLmF2YWlsYWJsZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMgKGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlKS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGxlbnMgc2hhZGluZyBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLjx3YnIvPnNoYWRpbmcuPHdici8+bW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNoYWRpbmcubW9kZSI+YW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3QgY29udGFpbnMgbGVucyBzaGFkaW5nIG1vZGVzIHRoYXQgY2FuIGJlIHNldCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+CitDYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cworbGlzdCBPRkYgYW5kIEZBU1QgbW9kZS48d2JyLz4gVGhpcyBpbmNsdWRlcyBhbGwgRlVMTCBsZXZlbCBkZXZpY2VzLjx3YnIvPgorTEVHQUNZIGRldmljZXMgd2lsbCBhbHdheXMgb25seSBzdXBwb3J0IEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gY29udHJvbCBpcworYXZhaWxhYmxlIG9uIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIHRoZSBzYW1lIGZvcgorYm90aCBtb2Rlcy48d2JyLz4gVGhhdCBpcyw8d2JyLz4gaWYgdGhlIGhpZ2hlc3QgcXVhbGl0eSBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdAorc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSw8d2JyLz4gdGhlbiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBvdXRwdXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc3RhdGlzdGljcyIgY2xhc3M9InNlY3Rpb24iPnN0YXRpc3RpY3M8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGluY2x1ZGUgZmFjZSBkZXRlY3Rpb24gc3RhdGlzdGljcyBpbiBjYXB0dXJlCityZXN1bHRzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNJTVBMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UmV0dXJuIGZhY2UgcmVjdGFuZ2xlIGFuZCBjb25maWRlbmNlIHZhbHVlcyBvbmx5Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlJldHVybiBhbGwgZmFjZQorbWV0YWRhdGEuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiBmYWNlIHJlY3RhbmdsZXMsPHdici8+IHNjb3Jlcyw8d2JyLz4gbGFuZG1hcmtzLDx3YnIvPiBhbmQgZmFjZSBJRHMgYXJlIGFsbCB2YWxpZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgdGhlIGZhY2UgZGV0ZWN0b3IKK3VuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBmYWNlIGRldGVjdGlvbiBpcyBlbmFibGVkLDx3YnIvPiBhbmQgd2hldGhlciBpdAorc2hvdWxkIG91dHB1dCBqdXN0IHRoZSBiYXNpYyBmaWVsZHMgb3IgdGhlIGZ1bGwgc2V0IG9mCitmaWVsZHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TSU1QTEUgbW9kZSBtdXN0IGZpbGwgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlJlY3RhbmdsZXM8L2E+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+U2NvcmVzPC9hPi48d2JyLz4KK0ZVTEwgbW9kZSBtdXN0IGFsc28gZmlsbCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5JZHM8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkxhbmRtYXJrczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhpc3RvZ3JhbTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgaGlzdG9ncmFtCitnZW5lcmF0aW9uPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5zaGFycG5lc3M8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW5nIG1vZGUgZm9yIHNoYXJwbmVzcyBtYXAKK2dlbmVyYXRpb248L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgbWFwIHByb2R1Y3Rpb24gaXMgZGlzYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhvdCBwaXhlbCBtYXAgcHJvZHVjdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciBob3QgcGl4ZWwgbWFwIGdlbmVyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Ib3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LDx3YnIvPiBhIGhvdCBwaXhlbCBtYXAgaXMgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPgorSWYgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiw8d2JyLz4gbm8gaG90IHBpeGVsIG1hcCB3aWxsIGJlIHJldHVybmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGluY2x1ZGUgYSBsZW5zIHNoYWRpbmcgbWFwIGluIHRoZSBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW5jbHVkZSBhIGxlbnMgc2hhZGluZyBtYXAgaW4gdGhlIGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvdXRwdXQgdGhlIGxlbnMKK3NoYWRpbmcgbWFwIGluIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5MZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIE9OLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8L2E+IHdpbGwgYmUgcHJvdmlkZWQgaW4KK3RoZSBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPk9OIGlzIGFsd2F5cyBzdXBwb3J0ZWQgb24gZGV2aWNlcyB3aXRoIHRoZSBSQVcgY2FwYWJpbGl0eS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcyBmcm9tIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgZmFjZSBkZXRlY3Rpb24gbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5PRkYgaXMgYWx3YXlzIHN1cHBvcnRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5oaXN0b2dyYW08d2JyLz5CdWNrZXQ8d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TnVtYmVyIG9mIGhpc3RvZ3JhbSBidWNrZXRzCitzdXBwb3J0ZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSA2NDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RmFjZTx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXNseSBkZXRlY3RhYmxlCitmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wIGZvciBjYW1lcmFzIHdpdGhvdXQgYXZhaWxhYmxlIGZhY2UgZGV0ZWN0aW9uOyBvdGhlcndpc2U6Cis8Y29kZT4mZ3Q7PTQ8L2NvZGU+IGZvciBMSU1JVEVEIG9yIEZVTEwgaHdsZXZlbCBkZXZpY2VzIG9yCis8Y29kZT4mZ3Q7MDwvY29kZT4gZm9yIExFR0FDWSBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4SGlzdG9ncmFtQ291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+SGlzdG9ncmFtPHdici8+Q291bnQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gdmFsdWUgcG9zc2libGUgZm9yIGEgaGlzdG9ncmFtCitidWNrZXQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heFNoYXJwbmVzc01hcFZhbHVlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPlNoYXJwbmVzczx3YnIvPk1hcDx3YnIvPlZhbHVlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXhpbXVtIHZhbHVlIHBvc3NpYmxlIGZvciBhIHNoYXJwbmVzcyBtYXAKK3JlZ2lvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+c2hhcnBuZXNzPHdici8+TWFwPHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgc2l6ZV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj53aWR0aCB4IGhlaWdodDwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRpbWVuc2lvbnMgb2YgdGhlIHNoYXJwbmVzcworbWFwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSBhdCBsZWFzdCAzMiB4IDMyPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+SG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGhvdCBwaXhlbCBtYXAgb3V0cHV0IG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIGhvdHBpeGVsIG1hcCBvdXRwdXQgaXMgYXZhaWxhYmxlIGZvciB0aGlzIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMgd2lsbCBjb250YWluIG9ubHkKKzxjb2RlPmZhbHNlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5PTiBpcyBhbHdheXMgc3VwcG9ydGVkIG9uIGRldmljZXMgd2l0aCB0aGUgUkFXIGNhcGFiaWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlTGVuc1NoYWRpbmdNYXBNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5MZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGxlbnMgc2hhZGluZyBtYXAgb3V0cHV0IG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT4gdGhhdAorYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIGxlbnMgc2hhZGluZyBtYXAgb3V0cHV0IGlzIGF2YWlsYWJsZSBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGlzIGtleSB3aWxsCitjb250YWluIG9ubHkgT0ZGLjx3YnIvPjwvcD4KKzxwPk9OIGlzIGFsd2F5cyBzdXBwb3J0ZWQgb24gZGV2aWNlcyB3aXRoIHRoZSBSQVcgY2FwYWJpbGl0eS48d2JyLz4KK0xFR0FDWSBtb2RlIGRldmljZXMgd2lsbCBhbHdheXMgb25seSBzdXBwb3J0IE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RG8gbm90IGluY2x1ZGUgZmFjZSBkZXRlY3Rpb24gc3RhdGlzdGljcyBpbiBjYXB0dXJlCityZXN1bHRzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNJTVBMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UmV0dXJuIGZhY2UgcmVjdGFuZ2xlIGFuZCBjb25maWRlbmNlIHZhbHVlcyBvbmx5Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlJldHVybiBhbGwgZmFjZQorbWV0YWRhdGEuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiBmYWNlIHJlY3RhbmdsZXMsPHdici8+IHNjb3Jlcyw8d2JyLz4gbGFuZG1hcmtzLDx3YnIvPiBhbmQgZmFjZSBJRHMgYXJlIGFsbCB2YWxpZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgdGhlIGZhY2UgZGV0ZWN0b3IKK3VuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBmYWNlIGRldGVjdGlvbiBpcyBlbmFibGVkLDx3YnIvPiBhbmQgd2hldGhlciBpdAorc2hvdWxkIG91dHB1dCBqdXN0IHRoZSBiYXNpYyBmaWVsZHMgb3IgdGhlIGZ1bGwgc2V0IG9mCitmaWVsZHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TSU1QTEUgbW9kZSBtdXN0IGZpbGwgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlJlY3RhbmdsZXM8L2E+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+U2NvcmVzPC9hPi48d2JyLz4KK0ZVTEwgbW9kZSBtdXN0IGFsc28gZmlsbCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5JZHM8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkxhbmRtYXJrczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPklkcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB1bmlxdWUgSURzIGZvciBkZXRlY3RlZCBmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggZGV0ZWN0ZWQgZmFjZSBpcyBnaXZlbiBhIHVuaXF1ZSBJRCB0aGF0IGlzIHZhbGlkIGZvciBhcyBsb25nIGFzIHRoZSBmYWNlIGlzIHZpc2libGUKK3RvIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiAgQSBmYWNlIHRoYXQgbGVhdmVzIHRoZSBmaWVsZCBvZiB2aWV3IGFuZCBsYXRlciByZXR1cm5zIG1heSBiZQorYXNzaWduZWQgYSBuZXcgSUQuPHdici8+PC9wPgorPHA+T25seSBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiA9PSBGVUxMPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+TGFuZG1hcmtzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggNgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+KGxlZnRFeWVYLDx3YnIvPiBsZWZ0RXllWSw8d2JyLz4gcmlnaHRFeWVYLDx3YnIvPiByaWdodEV5ZVksPHdici8+IG1vdXRoWCw8d2JyLz4gbW91dGhZKTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbGFuZG1hcmtzIGZvciBkZXRlY3RlZAorZmFjZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgdGhhdCBvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4sPHdici8+IHdpdGgKKzxjb2RlPigwLDx3YnIvPiAwKTwvY29kZT4gYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIG9mIHRoZSBhY3RpdmUgYXJyYXkuPHdici8+PC9wPgorPHA+T25seSBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiA9PSBGVUxMPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlUmVjdGFuZ2xlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlJlY3RhbmdsZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgcmVjdGFuZ2xlXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+KHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgpLjx3YnIvPiAoMCw8d2JyLz4wKSBpcyB0b3AtbGVmdCBvZiBhY3RpdmUgcGl4ZWwgYXJlYTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZXMgZm9yIGRldGVjdGVkCitmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyB0aGF0IG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gd2l0aAorPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgb2YgdGhlIGFjdGl2ZSBhcnJheS48d2JyLz48L3A+Cis8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+ICE9IE9GRjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPlNjb3JlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHRoZSBmYWNlIGNvbmZpZGVuY2Ugc2NvcmVzIGZvcgorZGV0ZWN0ZWQgZmFjZXM8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xLTEwMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+ICE9IE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZSBzaG91bGQgYmUgbWVhbmluZ2Z1bCAoZm9yIGV4YW1wbGUsPHdici8+IHNldHRpbmcgMTAwIGF0CithbGwgdGltZXMgaXMgaWxsZWdhbCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2VzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGZhY2VdPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3N5bnRoZXRpYyI+W3N5bnRoZXRpY10gPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB0aGUgZmFjZXMgZGV0ZWN0ZWQgdGhyb3VnaCBjYW1lcmEgZmFjZSBkZXRlY3Rpb24KK2luIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW0iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhpc3RvZ3JhbQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmNvdW50IG9mIHBpeGVscyBmb3IgZWFjaCBjb2xvciBjaGFubmVsIHRoYXQgZmFsbCBpbnRvIGVhY2ggaGlzdG9ncmFtIGJ1Y2tldCw8d2JyLz4gc2NhbGVkIHRvIGJlIGJldHdlZW4gMCBhbmQgbWF4SGlzdG9ncmFtQ291bnQ8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIDMtY2hhbm5lbCBoaXN0b2dyYW0gYmFzZWQgb24gdGhlIHJhdworc2Vuc29yIGRhdGE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGsndGggYnVja2V0ICgwLWJhc2VkKSBjb3ZlcnMgdGhlIGlucHV0IHJhbmdlCisod2l0aCB3ID0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+d2hpdGU8d2JyLz5MZXZlbDwvYT4pIG9mIFsgayAqIHcvPHdici8+Tiw8d2JyLz4KKyhrICsgMSkgKiB3IC88d2JyLz4gTiApLjx3YnIvPiBJZiBvbmx5IGEgbW9ub2Nocm9tZSBzaGFycG5lc3MgbWFwIGlzCitzdXBwb3J0ZWQsPHdici8+IGFsbCBjaGFubmVscyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBkYXRhPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5oaXN0b2dyYW08d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW5nIG1vZGUgZm9yIGhpc3RvZ3JhbQorZ2VuZXJhdGlvbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNoYXJwbmVzczx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IG0geCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5lc3RpbWF0ZWQgc2hhcnBuZXNzIGZvciBlYWNoIHJlZ2lvbiBvZiB0aGUgaW5wdXQgaW1hZ2UuPHdici8+IE5vcm1hbGl6ZWQgdG8gYmUgYmV0d2VlbiAwIGFuZCBtYXhTaGFycG5lc3NNYXBWYWx1ZS48d2JyLz4gSGlnaGVyIHZhbHVlcyBtZWFuIHNoYXJwZXIgKGJldHRlciBmb2N1c2VkKTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgMy1jaGFubmVsIHNoYXJwbmVzcyBtYXAsPHdici8+IGJhc2VkIG9uIHRoZSByYXcKK3NlbnNvciBkYXRhPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG9ubHkgYSBtb25vY2hyb21lIHNoYXJwbmVzcyBtYXAgaXMgc3VwcG9ydGVkLDx3YnIvPgorYWxsIGNoYW5uZWxzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGRhdGE8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNoYXJwbmVzczx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3Igc2hhcnBuZXNzIG1hcAorZ2VuZXJhdGlvbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ0NvcnJlY3Rpb25NYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+Q29ycmVjdGlvbjx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGxlbnNTaGFkaW5nTWFwXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBzaGFkaW5nIG1hcCBpcyBhIGxvdy1yZXNvbHV0aW9uIGZsb2F0aW5nLXBvaW50IG1hcAordGhhdCBsaXN0cyB0aGUgY29lZmZpY2llbnRzIHVzZWQgdG8gY29ycmVjdCBmb3IgdmlnbmV0dGluZyw8d2JyLz4gZm9yIGVhY2gKK0JheWVyIGNvbG9yIGNoYW5uZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+RWFjaCBnYWluIGZhY3RvciBpcyAmZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbWFwIHByb3ZpZGVkIGhlcmUgaXMgdGhlIHNhbWUgbWFwIHRoYXQgaXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSB0bworY29ycmVjdCBib3RoIGNvbG9yIHNoYWRpbmcgYW5kIHZpZ25ldHRpbmcgZm9yIG91dHB1dCBub24tUkFXIGltYWdlcy48d2JyLz48L3A+Cis8cD5XaGVuIHRoZXJlIGlzIG5vIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIGFwcGxpZWQgdG8gUkFXCitvdXRwdXQgaW1hZ2VzICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZDwvYT4gPGNvZGU+PT08L2NvZGU+CitmYWxzZSksPHdici8+IHRoaXMgbWFwIGlzIHRoZSBjb21wbGV0ZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbgorbWFwOyB3aGVuIHRoZXJlIGlzIHNvbWUgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZCB0bwordGhlIFJBVyBvdXRwdXQgaW1hZ2UgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkPC9hPjxjb2RlPj09PC9jb2RlPiB0cnVlKSw8d2JyLz4gdGhpcyBtYXAgcmVwb3J0cyB0aGUgcmVtYWluaW5nIGxlbnMgc2hhZGluZworY29ycmVjdGlvbiBtYXAgdGhhdCBuZWVkcyB0byBiZSBhcHBsaWVkIHRvIGdldCBzaGFkaW5nCitjb3JyZWN0ZWQgaW1hZ2VzIHRoYXQgbWF0Y2ggdGhlIGNhbWVyYSBkZXZpY2UncyBvdXRwdXQgZm9yCitub24tUkFXIGZvcm1hdHMuPHdici8+PC9wPgorPHA+Rm9yIGEgY29tcGxldGUgc2hhZGluZyBjb3JyZWN0aW9uIG1hcCw8d2JyLz4gdGhlIGxlYXN0IHNoYWRlZAorc2VjdGlvbiBvZiB0aGUgaW1hZ2Ugd2lsbCBoYXZlIGEgZ2FpbiBmYWN0b3Igb2YgMTsgYWxsCitvdGhlciBzZWN0aW9ucyB3aWxsIGhhdmUgZ2FpbnMgYWJvdmUgMS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiA9IFRSQU5TRk9STV88d2JyLz5NQVRSSVgsPHdici8+IHRoZSBtYXAKK3dpbGwgdGFrZSBpbnRvIGFjY291bnQgdGhlIGNvbG9yQ29ycmVjdGlvbiBzZXR0aW5ncy48d2JyLz48L3A+Cis8cD5UaGUgc2hhZGluZyBtYXAgaXMgZm9yIHRoZSBlbnRpcmUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQgaXMgbm90CithZmZlY3RlZCBieSB0aGUgY3JvcCByZWdpb24gc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0Ljx3YnIvPiBFYWNoIHNoYWRpbmcgbWFwCitlbnRyeSBpcyB0aGUgdmFsdWUgb2YgdGhlIHNoYWRpbmcgY29tcGVuc2F0aW9uIG1hcCBvdmVyIGEgc3BlY2lmaWMKK3BpeGVsIG9uIHRoZSBzZW5zb3IuPHdici8+ICBTcGVjaWZpY2FsbHksPHdici8+IHdpdGggYSAoTiB4IE0pIHJlc29sdXRpb24gc2hhZGluZworbWFwLDx3YnIvPiBhbmQgYW4gYWN0aXZlIHBpeGVsIGFycmF5IHNpemUgKFcgeCBIKSw8d2JyLz4gc2hhZGluZyBtYXAgZW50cnkKKyh4LDx3YnIvPnkpIM+1ICgwIC4uLjx3YnIvPiBOLTEsPHdici8+IDAgLi4uPHdici8+IE0tMSkgaXMgdGhlIHZhbHVlIG9mIHRoZSBzaGFkaW5nIG1hcCBhdAorcGl4ZWwgKCAoKFctMSkvPHdici8+KE4tMSkpICogeCw8d2JyLz4gKChILTEpLzx3YnIvPihNLTEpKSAqIHkpIGZvciB0aGUgZm91ciBjb2xvciBjaGFubmVscy48d2JyLz4KK1RoZSBtYXAgaXMgYXNzdW1lZCB0byBiZSBiaWxpbmVhcmx5IGludGVycG9sYXRlZCBiZXR3ZWVuIHRoZSBzYW1wbGUgcG9pbnRzLjx3YnIvPjwvcD4KKzxwPlRoZSBjaGFubmVsIG9yZGVyIGlzIFtSLDx3YnIvPiBHZXZlbiw8d2JyLz4gR29kZCw8d2JyLz4gQl0sPHdici8+IHdoZXJlIEdldmVuIGlzIHRoZSBncmVlbgorY2hhbm5lbCBmb3IgdGhlIGV2ZW4gcm93cyBvZiBhIEJheWVyIHBhdHRlcm4sPHdici8+IGFuZCBHb2RkIGlzIHRoZSBvZGQgcm93cy48d2JyLz4KK1RoZSBzaGFkaW5nIG1hcCBpcyBzdG9yZWQgaW4gYSBmdWxseSBpbnRlcmxlYXZlZCBmb3JtYXQuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIHdpbGwgZ2VuZXJhbGx5IGhhdmUgb24gdGhlIG9yZGVyIG9mIDMwLTQwIHJvd3MgYW5kIGNvbHVtbnMsPHdici8+CithbmQgd2lsbCBiZSBzbWFsbGVyIHRoYW4gNjR4NjQuPHdici8+PC9wPgorPHA+QXMgYW4gZXhhbXBsZSw8d2JyLz4gZ2l2ZW4gYSB2ZXJ5IHNtYWxsIG1hcCBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+d2lkdGgsPHdici8+aGVpZ2h0ID0gWyA0LDx3YnIvPiAzIF0KK3ZhbHVlcyA9CitbIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4xNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAgIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Myw8d2JyLz4KKyAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MjUsPHdici8+IDEuPHdici8+MSw8d2JyLz4gIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAgICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+ICAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+Miw8d2JyLz4KKyAgICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4zIF0KKzwvY29kZT48L3ByZT4KKzxwPlRoZSBsb3ctcmVzb2x1dGlvbiBzY2FsaW5nIG1hcCBpbWFnZXMgZm9yIGVhY2ggY2hhbm5lbCBhcmUKKyhkaXNwbGF5ZWQgdXNpbmcgbmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVkIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL3JlZF9zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkdyZWVuIChldmVuIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX2Vfc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJHcmVlbiAob2RkIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX29fc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJCbHVlIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2JsdWVfc2hhZGluZy5wbmciLz48L3A+Cis8cD5BcyBhIHZpc3VhbGl6YXRpb24gb25seSw8d2JyLz4gaW52ZXJ0aW5nIHRoZSBmdWxsLWNvbG9yIG1hcCB0byByZWNvdmVyIGFuCitpbWFnZSBvZiBhIGdyYXkgd2FsbCAodXNpbmcgYmljdWJpYyBpbnRlcnBvbGF0aW9uIGZvciB2aXN1YWwgcXVhbGl0eSkgYXMgY2FwdHVyZWQgYnkgdGhlIHNlbnNvciBnaXZlczo8L3A+Cis8cD48aW1nIGFsdD0iSW1hZ2Ugb2YgYSB1bmlmb3JtIHdoaXRlIHdhbGwgKGludmVyc2Ugc2hhZGluZyBtYXApIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcC9pbnZfc2hhZGluZy5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNCB4IG4geCBtCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MkQgYXJyYXkgb2YgZmxvYXQgZ2FpbiBmYWN0b3JzIHBlciBjaGFubmVsIHRvIGNvcnJlY3QgbGVucyBzaGFkaW5nPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHNoYWRpbmcgbWFwIGlzIGEgbG93LXJlc29sdXRpb24gZmxvYXRpbmctcG9pbnQgbWFwCit0aGF0IGxpc3RzIHRoZSBjb2VmZmljaWVudHMgdXNlZCB0byBjb3JyZWN0IGZvciB2aWduZXR0aW5nIGFuZCBjb2xvciBzaGFkaW5nLDx3YnIvPgorZm9yIGVhY2ggQmF5ZXIgY29sb3IgY2hhbm5lbCBvZiBSQVcgaW1hZ2UgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5FYWNoIGdhaW4gZmFjdG9yIGlzICZndDs9IDE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXAgcHJvdmlkZWQgaGVyZSBpcyB0aGUgc2FtZSBtYXAgdGhhdCBpcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHRvCitjb3JyZWN0IGJvdGggY29sb3Igc2hhZGluZyBhbmQgdmlnbmV0dGluZyBmb3Igb3V0cHV0IG5vbi1SQVcgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlcmUgaXMgbm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZCB0byBSQVcKK291dHB1dCBpbWFnZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkPC9hPiA8Y29kZT49PTwvY29kZT4KK2ZhbHNlKSw8d2JyLz4gdGhpcyBtYXAgaXMgdGhlIGNvbXBsZXRlIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uCittYXA7IHdoZW4gdGhlcmUgaXMgc29tZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhcHBsaWVkIHRvCit0aGUgUkFXIG91dHB1dCBpbWFnZSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPkFwcGxpZWQ8L2E+PGNvZGU+PT08L2NvZGU+IHRydWUpLDx3YnIvPiB0aGlzIG1hcCByZXBvcnRzIHRoZSByZW1haW5pbmcgbGVucyBzaGFkaW5nCitjb3JyZWN0aW9uIG1hcCB0aGF0IG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IHNoYWRpbmcKK2NvcnJlY3RlZCBpbWFnZXMgdGhhdCBtYXRjaCB0aGUgY2FtZXJhIGRldmljZSdzIG91dHB1dCBmb3IKK25vbi1SQVcgZm9ybWF0cy48d2JyLz48L3A+Cis8cD5Gb3IgYSBjb21wbGV0ZSBzaGFkaW5nIGNvcnJlY3Rpb24gbWFwLDx3YnIvPiB0aGUgbGVhc3Qgc2hhZGVkCitzZWN0aW9uIG9mIHRoZSBpbWFnZSB3aWxsIGhhdmUgYSBnYWluIGZhY3RvciBvZiAxOyBhbGwKK290aGVyIHNlY3Rpb25zIHdpbGwgaGF2ZSBnYWlucyBhYm92ZSAxLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+ID0gVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gdGhlIG1hcAord2lsbCB0YWtlIGludG8gYWNjb3VudCB0aGUgY29sb3JDb3JyZWN0aW9uIHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPlRoZSBzaGFkaW5nIG1hcCBpcyBmb3IgdGhlIGVudGlyZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZCBpcyBub3QKK2FmZmVjdGVkIGJ5IHRoZSBjcm9wIHJlZ2lvbiBzcGVjaWZpZWQgaW4gdGhlIHJlcXVlc3QuPHdici8+IEVhY2ggc2hhZGluZyBtYXAKK2VudHJ5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgc2hhZGluZyBjb21wZW5zYXRpb24gbWFwIG92ZXIgYSBzcGVjaWZpYworcGl4ZWwgb24gdGhlIHNlbnNvci48d2JyLz4gIFNwZWNpZmljYWxseSw8d2JyLz4gd2l0aCBhIChOIHggTSkgcmVzb2x1dGlvbiBzaGFkaW5nCittYXAsPHdici8+IGFuZCBhbiBhY3RpdmUgcGl4ZWwgYXJyYXkgc2l6ZSAoVyB4IEgpLDx3YnIvPiBzaGFkaW5nIG1hcCBlbnRyeQorKHgsPHdici8+eSkgz7UgKDAgLi4uPHdici8+IE4tMSw8d2JyLz4gMCAuLi48d2JyLz4gTS0xKSBpcyB0aGUgdmFsdWUgb2YgdGhlIHNoYWRpbmcgbWFwIGF0CitwaXhlbCAoICgoVy0xKS88d2JyLz4oTi0xKSkgKiB4LDx3YnIvPiAoKEgtMSkvPHdici8+KE0tMSkpICogeSkgZm9yIHRoZSBmb3VyIGNvbG9yIGNoYW5uZWxzLjx3YnIvPgorVGhlIG1hcCBpcyBhc3N1bWVkIHRvIGJlIGJpbGluZWFybHkgaW50ZXJwb2xhdGVkIGJldHdlZW4gdGhlIHNhbXBsZSBwb2ludHMuPHdici8+PC9wPgorPHA+VGhlIGNoYW5uZWwgb3JkZXIgaXMgW1IsPHdici8+IEdldmVuLDx3YnIvPiBHb2RkLDx3YnIvPiBCXSw8d2JyLz4gd2hlcmUgR2V2ZW4gaXMgdGhlIGdyZWVuCitjaGFubmVsIGZvciB0aGUgZXZlbiByb3dzIG9mIGEgQmF5ZXIgcGF0dGVybiw8d2JyLz4gYW5kIEdvZGQgaXMgdGhlIG9kZCByb3dzLjx3YnIvPgorVGhlIHNoYWRpbmcgbWFwIGlzIHN0b3JlZCBpbiBhIGZ1bGx5IGludGVybGVhdmVkIGZvcm1hdCw8d2JyLz4gYW5kIGl0cyBzaXplCitpcyBwcm92aWRlZCBpbiB0aGUgY2FtZXJhIHN0YXRpYyBtZXRhZGF0YSBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5zaGFkaW5nPHdici8+TWFwPHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIHdpbGwgZ2VuZXJhbGx5IGhhdmUgb24gdGhlIG9yZGVyIG9mIDMwLTQwIHJvd3MgYW5kIGNvbHVtbnMsPHdici8+CithbmQgd2lsbCBiZSBzbWFsbGVyIHRoYW4gNjR4NjQuPHdici8+PC9wPgorPHA+QXMgYW4gZXhhbXBsZSw8d2JyLz4gZ2l2ZW4gYSB2ZXJ5IHNtYWxsIG1hcCBkZWZpbmVkIGFzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+c2hhZGluZzx3YnIvPk1hcDx3YnIvPlNpemU8L2E+ID0gWyA0LDx3YnIvPiAzIF0KKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPC9hPiA9CitbIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4xNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAgIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Myw8d2JyLz4KKyAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MjUsPHdici8+IDEuPHdici8+MSw8d2JyLz4gIDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAgICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMsPHdici8+ICAgMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+Miw8d2JyLz4KKyAgICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+ICAxLjx3YnIvPjMsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4zIF0KKzwvY29kZT48L3ByZT4KKzxwPlRoZSBsb3ctcmVzb2x1dGlvbiBzY2FsaW5nIG1hcCBpbWFnZXMgZm9yIGVhY2ggY2hhbm5lbCBhcmUKKyhkaXNwbGF5ZWQgdXNpbmcgbmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVkIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL3JlZF9zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkdyZWVuIChldmVuIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX2Vfc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJHcmVlbiAob2RkIHJvd3MpIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2dyZWVuX29fc2hhZGluZy5wbmciLz4KKzxpbWcgYWx0PSJCbHVlIGxlbnMgc2hhZGluZyBtYXAiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2JsdWVfc2hhZGluZy5wbmciLz48L3A+Cis8cD5BcyBhIHZpc3VhbGl6YXRpb24gb25seSw8d2JyLz4gaW52ZXJ0aW5nIHRoZSBmdWxsLWNvbG9yIG1hcCB0byByZWNvdmVyIGFuCitpbWFnZSBvZiBhIGdyYXkgd2FsbCAodXNpbmcgYmljdWJpYyBpbnRlcnBvbGF0aW9uIGZvciB2aXN1YWwgcXVhbGl0eSkKK2FzIGNhcHR1cmVkIGJ5IHRoZSBzZW5zb3IgZ2l2ZXM6PC9wPgorPHA+PGltZyBhbHQ9IkltYWdlIG9mIGEgdW5pZm9ybSB3aGl0ZSB3YWxsIChpbnZlcnNlIHNoYWRpbmcgbWFwKSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvaW52X3NoYWRpbmcucG5nIi8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoZSBSQVcgaW1hZ2UgZGF0YSBtaWdodCBiZSBzdWJqZWN0IHRvIGxlbnMgc2hhZGluZworY29ycmVjdGlvbiBub3QgcmVwb3J0ZWQgb24gdGhpcyBtYXAuPHdici8+IFF1ZXJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZDwvYT4gdG8gc2VlIGlmIFJBVyBpbWFnZSBkYXRhIGhhcyBzdWJqZWN0Cit0byBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbi48d2JyLz4gSWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPkFwcGxpZWQ8L2E+CitpcyBUUlVFLDx3YnIvPiB0aGUgUkFXIGltYWdlIGRhdGEgaXMgc3ViamVjdCB0byBwYXJ0aWFsIG9yIGZ1bGwgbGVucyBzaGFkaW5nCitjb3JyZWN0aW9uLjx3YnIvPiBJbiB0aGUgY2FzZSBmdWxsIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIGlzIGFwcGxpZWQgdG8gUkFXCitpbWFnZXMsPHdici8+IHRoZSBnYWluIGZhY3RvciBtYXAgcmVwb3J0ZWQgaW4gdGhpcyBrZXkgd2lsbCBjb250YWluIGFsbCAxLjx3YnIvPjAgZ2FpbnMuPHdici8+CitJbiBvdGhlciB3b3Jkcyw8d2JyLz4gdGhlIG1hcCByZXBvcnRlZCBpbiB0aGlzIGtleSBpcyB0aGUgcmVtYWluaW5nIGxlbnMgc2hhZGluZwordGhhdCBuZWVkcyB0byBiZSBhcHBsaWVkIG9uIHRoZSBSQVcgaW1hZ2UgdG8gZ2V0IGltYWdlcyB3aXRob3V0IGxlbnMgc2hhZGluZworYXJ0aWZhY3RzLjx3YnIvPiBTZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3Ij5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UmF3PC9hPiBmb3IgYSBsaXN0IG9mIFJBVyBpbWFnZQorZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBsZW5zIHNoYWRpbmcgbWFwIGNhbGN1bGF0aW9uIG1heSBkZXBlbmQgb24gZXhwb3N1cmUgYW5kIHdoaXRlIGJhbGFuY2Ugc3RhdGlzdGljcy48d2JyLz4KK1doZW4gQUUgYW5kIEFXQiBhcmUgaW4gQVVUTyBtb2RlcworKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGIGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGKSw8d2JyLz4gdGhlIEhBTAorbWF5IGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkIHRvIGdlbmVyYXRlIG1vc3QgYWNjdXJhdGUgbGVucyBzaGFkaW5nIG1hcC48d2JyLz4gV2hlbgorQUUgb3IgQVdCIGFyZSBpbiBtYW51YWwgbW9kZQorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT49PTwvY29kZT4gT0ZGIG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBPRkYpLDx3YnIvPiB0aGUgc2hhZGluZyBtYXAKK21heSBiZSBhZHZlcnNlbHkgaW1wYWN0ZWQgYnkgbWFudWFsIGV4cG9zdXJlIG9yIHdoaXRlIGJhbGFuY2UgcGFyYW1ldGVycy48d2JyLz4gVG8gYXZvaWQKK2dlbmVyYXRpbmcgdW5yZWxpYWJsZSBzaGFkaW5nIG1hcCBkYXRhLDx3YnIvPiB0aGUgSEFMIG1heSBjaG9vc2UgdG8gbG9jayB0aGUgc2hhZGluZyBtYXAgd2l0aAordGhlIGxhdGVzdCBrbm93biBnb29kIG1hcCBnZW5lcmF0ZWQgd2hlbiB0aGUgQUUgYW5kIEFXQiBhcmUgaW4gQVVUTyBtb2Rlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvckdhaW5zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5wcmVkaWN0ZWQ8d2JyLz5Db2xvcjx3YnIvPkdhaW5zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5BIDFEIGFycmF5IG9mIGZsb2F0cyBmb3IgNCBjb2xvciBjaGFubmVsIGdhaW5zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGJlc3QtZml0IGNvbG9yIGNoYW5uZWwgZ2FpbnMgY2FsY3VsYXRlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UncyBzdGF0aXN0aWNzIHVuaXRzIGZvciB0aGUgY3VycmVudCBvdXRwdXQgZnJhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXkgYmUgZGlmZmVyZW50IHRoYW4gdGhlIGdhaW5zIHVzZWQgZm9yIHRoaXMgZnJhbWUsPHdici8+CitzaW5jZSBzdGF0aXN0aWNzIHByb2Nlc3Npbmcgb24gZGF0YSBmcm9tIGEgbmV3IGZyYW1lCit0eXBpY2FsbHkgY29tcGxldGVzIGFmdGVyIHRoZSB0cmFuc2Zvcm0gaGFzIGFscmVhZHkgYmVlbgorYXBwbGllZCB0byB0aGF0IGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoZSA0IGNoYW5uZWwgZ2FpbnMgYXJlIGRlZmluZWQgaW4gQmF5ZXIgZG9tYWluLDx3YnIvPgorc2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGZvciBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPlRoaXMgdmFsdWUgc2hvdWxkIGFsd2F5cyBiZSBjYWxjdWxhdGVkIGJ5IHRoZSBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgYmxvY2ssPHdici8+CityZWdhcmRsZXNzIG9mIHRoZSBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBjdXJyZW50IHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yVHJhbnNmb3JtIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5wcmVkaWN0ZWQ8d2JyLz5Db2xvcjx3YnIvPlRyYW5zZm9ybQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyByYXRpb25hbCBtYXRyaXggaW4gcm93LW1ham9yIG9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGJlc3QtZml0IGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggZXN0aW1hdGUKK2NhbGN1bGF0ZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UncyBzdGF0aXN0aWNzIHVuaXRzIGZvciB0aGUgY3VycmVudAorb3V0cHV0IGZyYW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcHJvdmlkZSB0aGUgZXN0aW1hdGUgZnJvbSBpdHMKK3N0YXRpc3RpY3MgdW5pdCBvbiB0aGUgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIHRvIHVzZQorZm9yIHRoZSBuZXh0IGZyYW1lLjx3YnIvPiBUaGVzZSBhcmUgdGhlIHZhbHVlcyB0aGUgY2FtZXJhIGRldmljZSBiZWxpZXZlcworYXJlIHRoZSBiZXN0IGZpdCBmb3IgdGhlIGN1cnJlbnQgb3V0cHV0IGZyYW1lLjx3YnIvPiBUaGlzIG1heQorYmUgZGlmZmVyZW50IHRoYW4gdGhlIHRyYW5zZm9ybSB1c2VkIGZvciB0aGlzIGZyYW1lLDx3YnIvPiBzaW5jZQorc3RhdGlzdGljcyBwcm9jZXNzaW5nIG9uIGRhdGEgZnJvbSBhIG5ldyBmcmFtZSB0eXBpY2FsbHkKK2NvbXBsZXRlcyBhZnRlciB0aGUgdHJhbnNmb3JtIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGllZCB0bwordGhhdCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGVzZSBlc3RpbWF0ZXMgbXVzdCBiZSBwcm92aWRlZCBmb3IgYWxsIGZyYW1lcyw8d2JyLz4gZXZlbiBpZgorY2FwdHVyZSBzZXR0aW5ncyBhbmQgY29sb3IgdHJhbnNmb3JtcyBhcmUgc2V0IGJ5IHRoZSBhcHBsaWNhdGlvbi48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIHNob3VsZCBhbHdheXMgYmUgY2FsY3VsYXRlZCBieSB0aGUgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGJsb2NrLDx3YnIvPgorcmVnYXJkbGVzcyBvZiB0aGUgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogY3VycmVudCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zY2VuZUZsaWNrZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNjZW5lPHdici8+RmxpY2tlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OT05FPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBkZXRlY3QgYW55IGZsaWNrZXJpbmcgaWxsdW1pbmF0aW9uCitpbiB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj41MEhaPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBkZXRlY3RzIGlsbHVtaW5hdGlvbiBmbGlja2VyaW5nIGF0IDUwSHoKK2luIHRoZSBjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjYwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGRldGVjdHMgaWxsdW1pbmF0aW9uIGZsaWNrZXJpbmcgYXQgNjBIegoraW4gdGhlIGN1cnJlbnQgc2NlbmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGNhbWVyYSBkZXZpY2UgZXN0aW1hdGVkIHNjZW5lIGlsbHVtaW5hdGlvbiBsaWdodGluZworZnJlcXVlbmN5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk1hbnkgbGlnaHQgc291cmNlcyw8d2JyLz4gc3VjaCBhcyBtb3N0IGZsdW9yZXNjZW50IGxpZ2h0cyw8d2JyLz4gZmxpY2tlciBhdCBhIHJhdGUKK3RoYXQgZGVwZW5kcyBvbiB0aGUgbG9jYWwgdXRpbGl0eSBwb3dlciBzdGFuZGFyZHMuPHdici8+IFRoaXMgZmxpY2tlciBtdXN0IGJlCithY2NvdW50ZWQgZm9yIGJ5IGF1dG8tZXhwb3N1cmUgcm91dGluZXMgdG8gYXZvaWQgYXJ0aWZhY3RzIGluIGNhcHR1cmVkIGltYWdlcy48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdGhpcyBlbnRyeSB0byB0ZWxsIHRoZSBhcHBsaWNhdGlvbiB3aGF0IHRoZSBzY2VuZQoraWxsdW1pbmFudCBmcmVxdWVuY3kgaXMuPHdici8+PC9wPgorPHA+V2hlbiBtYW51YWwgZXhwb3N1cmUgY29udHJvbCBpcyBlbmFibGVkCisoPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+ID09IE9GRjwvY29kZT4gb3IgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0KK09GRjwvY29kZT4pLDx3YnIvPiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlPC9hPiBkb2Vzbid0IHBlcmZvcm0KK2FudGliYW5kaW5nLDx3YnIvPiBhbmQgdGhlIGFwcGxpY2F0aW9uIGNhbiBlbnN1cmUgaXQgc2VsZWN0cworZXhwb3N1cmUgdGltZXMgdGhhdCBkbyBub3QgY2F1c2UgYmFuZGluZyBpc3N1ZXMgYnkgbG9va2luZworaW50byB0aGlzIG1ldGFkYXRhIGZpZWxkLjx3YnIvPiBTZWUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZTwvYT4gZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5SZXBvcnRzIE5PTkUgaWYgdGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgZmxpY2tlcmluZyBpbGx1bWluYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIG1hcCBwcm9kdWN0aW9uIGlzIGRpc2FibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgbWFwIHByb2R1Y3Rpb24gaXMgZW5hYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgaG90IHBpeGVsIG1hcCBnZW5lcmF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+SG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiw8d2JyLz4gYSBob3QgcGl4ZWwgbWFwIGlzIHJldHVybmVkIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPC9hPi48d2JyLz4KK0lmIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4sPHdici8+IG5vIGhvdCBwaXhlbCBtYXAgd2lsbCBiZSByZXR1cm5lZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMiB4IG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHBvaW50XTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgY29vcmRpbmF0ZXMgYmFzZWQgb24gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIDxjb2RlPih4LDx3YnIvPiB5KTwvY29kZT4gY29vcmRpbmF0ZXMgb2YgaG90Lzx3YnIvPmRlZmVjdGl2ZSBwaXhlbHMgb24gdGhlIHNlbnNvci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5uICZsdDs9IG51bWJlciBvZiBwaXhlbHMgb24gdGhlIHNlbnNvci48d2JyLz4KK1RoZSA8Y29kZT4oeCw8d2JyLz4geSk8L2NvZGU+IGNvb3JkaW5hdGVzIG11c3QgYmUgYm91bmRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgY29vcmRpbmF0ZSA8Y29kZT4oeCw8d2JyLz4geSk8L2NvZGU+IG11c3QgbGllIGJldHdlZW4gPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiw8d2JyLz4gYW5kCis8Y29kZT4od2lkdGggLSAxLDx3YnIvPiBoZWlnaHQgLSAxKTwvY29kZT4gKGluY2x1c2l2ZSksPHdici8+IHdoaWNoIGFyZSB0aGUgdG9wLWxlZnQgYW5kCitib3R0b20tcmlnaHQgb2YgdGhlIHBpeGVsIGFycmF5LDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+IFRoZSB3aWR0aCBhbmQKK2hlaWdodCBkaW1lbnNpb25zIGFyZSBnaXZlbiBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPgorVGhpcyBtYXkgaW5jbHVkZSBob3QgcGl4ZWxzIHRoYXQgbGllIG91dHNpZGUgb2YgdGhlIGFjdGl2ZSBhcnJheQorYm91bmRzIGdpdmVuIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgaG90cGl4ZWwgbWFwIGNvbnRhaW5zIHRoZSBjb29yZGluYXRlcyBvZiBwaXhlbHMgb24gdGhlIGNhbWVyYQorc2Vuc29yIHRoYXQgZG8gcmVwb3J0IHZhbGlkIHZhbHVlcyAodXN1YWxseSBkdWUgdG8gZGVmZWN0cyBpbgordGhlIGNhbWVyYSBzZW5zb3IpLjx3YnIvPiBUaGlzIGluY2x1ZGVzIHBpeGVscyB0aGF0IGFyZSBzdHVjayBhdCBjZXJ0YWluCit2YWx1ZXMsPHdici8+IG9yIGhhdmUgYSByZXNwb25zZSB0aGF0IGRvZXMgbm90IGFjY3VyYWN0bHkgZW5jb2RlIHRoZQoraW5jb21pbmcgbGlnaHQgZnJvbSB0aGUgc2NlbmUuPHdici8+PC9wPgorPHA+VG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzLDx3YnIvPiB0aGVyZSBzaG91bGQgYmUgc2lnbmlmaWNhbnRseSBmZXdlciBob3QKK3BpeGVscyB0aGFuIGFjdHVhbCBwaXhlbHMgb24gdGhlIGNhbWVyYSBzZW5zb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgaW5jbHVkZSBhIGxlbnMgc2hhZGluZyBtYXAgaW4gdGhlIGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmNsdWRlIGEgbGVucyBzaGFkaW5nIG1hcCBpbiB0aGUgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG91dHB1dCB0aGUgbGVucworc2hhZGluZyBtYXAgaW4gb3V0cHV0IHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUxlbnNTaGFkaW5nTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gT04sPHdici8+Cis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDwvYT4gd2lsbCBiZSBwcm92aWRlZCBpbgordGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorPHA+T04gaXMgYWx3YXlzIHN1cHBvcnRlZCBvbiBkZXZpY2VzIHdpdGggdGhlIFJBVyBjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fdG9uZW1hcCIgY2xhc3M9InNlY3Rpb24iPnRvbmVtYXA8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5CbHVlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjFEIGFycmF5IG9mIGZsb2F0IHBhaXJzIChQXzx3YnIvPklOLDx3YnIvPiBQXzx3YnIvPk9VVCkuPHdici8+IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYWlycyBpcyBzcGVjaWZpZWQgYnkgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIC88d2JyLz4gY29udHJhc3QgLzx3YnIvPiBnYW1tYSBjdXJ2ZSBmb3IgdGhlIGJsdWUKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlR3JlZW4iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+R3JlZW4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MUQgYXJyYXkgb2YgZmxvYXQgcGFpcnMgKFBfPHdici8+SU4sPHdici8+IFBfPHdici8+T1VUKS48d2JyLz4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhaXJzIGlzIHNwZWNpZmllZCBieSBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIGZvciB0aGUgZ3JlZW4KK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4xRCBhcnJheSBvZiBmbG9hdCBwYWlycyAoUF88d2JyLz5JTiw8d2JyLz4gUF88d2JyLz5PVVQpLjx3YnIvPiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFpcnMgaXMgc3BlY2lmaWVkIGJ5IGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgZm9yIHRoZSByZWQKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wLTEgb24gYm90aCBpbnB1dCBhbmQgb3V0cHV0IGNvb3JkaW5hdGVzLDx3YnIvPiBub3JtYWxpemVkCithcyBhIGZsb2F0aW5nLXBvaW50IHZhbHVlIHN1Y2ggdGhhdCAwID09IGJsYWNrIGFuZCAxID09IHdoaXRlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPQorICBbIFAwaW4sPHdici8+IFAwb3V0LDx3YnIvPiBQMWluLDx3YnIvPiBQMW91dCw8d2JyLz4gUDJpbiw8d2JyLz4gUDJvdXQsPHdici8+IFAzaW4sPHdici8+IFAzb3V0LDx3YnIvPiAuLi4sPHdici8+IFBOaW4sPHdici8+IFBOb3V0IF0KKzIgJmx0Oz0gTiAmbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzPC9hPjwvY29kZT48L3ByZT4KKzxwPlRoZXNlIGFyZSBzb3J0ZWQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyA8Y29kZT5QaW48L2NvZGU+OyBpdCBpcworcmVxdWlyZWQgdGhhdCBpbnB1dCB2YWx1ZXMgMC48d2JyLz4wIGFuZCAxLjx3YnIvPjAgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0IHRvCitkZWZpbmUgYSBjb21wbGV0ZSBtYXBwaW5nLjx3YnIvPiBGb3IgaW5wdXQgdmFsdWVzIGJldHdlZW4gY29udHJvbCBwb2ludHMsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBtdXN0IGxpbmVhcmx5IGludGVycG9sYXRlIGJldHdlZW4gdGhlIGNvbnRyb2wKK3BvaW50cy48d2JyLz48L3A+Cis8cD5FYWNoIGN1cnZlIGNhbiBoYXZlIGFuIGluZGVwZW5kZW50IG51bWJlciBvZiBwb2ludHMsPHdici8+IGFuZCB0aGUgbnVtYmVyCitvZiBwb2ludHMgY2FuIGJlIGxlc3MgdGhhbiBtYXggKHRoYXQgaXMsPHdici8+IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSB0bworYWx3YXlzIHByb3ZpZGUgYSBjdXJ2ZSB3aXRoIG51bWJlciBvZiBwb2ludHMgZXF1aXZhbGVudCB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT4pLjx3YnIvPjwvcD4KKzxwPkEgZmV3IGV4YW1wbGVzLDx3YnIvPiBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBncmFwaGljYWwgbWFwcGluZ3M7IHRoZXNlCitvbmx5IHNwZWNpZnkgdGhlIHJlZCBjaGFubmVsIGFuZCB0aGUgcHJlY2lzaW9uIGlzIGxpbWl0ZWQgdG8gNAorZGlnaXRzLDx3YnIvPiBmb3IgY29uY2lzZW5lc3MuPHdici8+PC9wPgorPHA+TGluZWFyIG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWyAwLDx3YnIvPiAwLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsgMCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkludmVydGluZyBtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9pbnZlcnNlX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+R2FtbWEgMS88d2JyLz4yLjx3YnIvPjIgbWFwcGluZyw8d2JyLz4gd2l0aCAxNiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbCisgIDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCw8d2JyLz4gMC48d2JyLz4xMzMzLDx3YnIvPiAwLjx3YnIvPjQwMDIsPHdici8+IDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODEyLDx3YnIvPgorICAwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCw8d2JyLz4gMC48d2JyLz4zMzMzLDx3YnIvPiAwLjx3YnIvPjYwNjksPHdici8+IDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NTk0LDx3YnIvPiAwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3Miw8d2JyLz4KKyAgMC48d2JyLz41MzMzLDx3YnIvPiAwLjx3YnIvPjc1MTUsPHdici8+IDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTI4LDx3YnIvPiAwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyw8d2JyLz4gMC48d2JyLz43MzMzLDx3YnIvPiAwLjx3YnIvPjg2ODUsPHdici8+CisgIDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDM1LDx3YnIvPiAwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCw8d2JyLz4gMC48d2JyLz45MzMzLDx3YnIvPiAwLjx3YnIvPjk2OTEsPHdici8+IDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJHYW1tYSA9IDEvMi4yIHRvbmVtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9nYW1tYV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPlN0YW5kYXJkIHNSR0IgZ2FtbWEgbWFwcGluZyw8d2JyLz4gcGVyIElFQyA2MTk2Ni0yLTE6MTk5OSw8d2JyLz4gd2l0aCAxNiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbCisgIDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCw8d2JyLz4gMC48d2JyLz4xMzMzLDx3YnIvPiAwLjx3YnIvPjQwMDcsPHdici8+IDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODQ1LDx3YnIvPgorICAwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiw8d2JyLz4gMC48d2JyLz4zMzMzLDx3YnIvPiAwLjx3YnIvPjYxMjUsPHdici8+IDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NjUyLDx3YnIvPiAwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCw8d2JyLz4KKyAgMC48d2JyLz41MzMzLDx3YnIvPiAwLjx3YnIvPjc1NjksPHdici8+IDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTc3LDx3YnIvPiAwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCw8d2JyLz4gMC48d2JyLz43MzMzLDx3YnIvPiAwLjx3YnIvPjg3MjEsPHdici8+CisgIDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDYzLDx3YnIvPiAwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSw8d2JyLz4gMC48d2JyLz45MzMzLDx3YnIvPiAwLjx3YnIvPjk3MDEsPHdici8+IDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJzUkdCIHRvbmVtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9zcmdiX3RvbmVtYXAucG5nIi8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgZ29vZCBxdWFsaXR5IG9mIG1hcHBpbmcsPHdici8+IGF0IGxlYXN0IDEyOCBjb250cm9sIHBvaW50cyBhcmUKK3ByZWZlcnJlZC48d2JyLz48L3A+Cis8cD5BIHR5cGljYWwgdXNlIGNhc2Ugb2YgdGhpcyB3b3VsZCBiZSBhIGdhbW1hLTEvPHdici8+Mi48d2JyLz4yIGN1cnZlLDx3YnIvPiB3aXRoIGFzIG1hbnkKK2NvbnRyb2wgcG9pbnRzIHVzZWQgYXMgYXJlIGF2YWlsYWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIHRvbmVtYXBDdXJ2ZV08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+CitpcyBDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcEN1cnZlIGNvbnNpc3Qgb2YgdGhyZWUgY3VydmVzIGZvciBlYWNoIG9mIHJlZCw8d2JyLz4gZ3JlZW4sPHdici8+IGFuZCBibHVlCitjaGFubmVscyByZXNwZWN0aXZlbHkuPHdici8+IFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHRoZSByZWQgY2hhbm5lbCBhcyBhbgorZXhhbXBsZS48d2JyLz4gVGhlIHNhbWUgbG9naWMgYXBwbGllcyB0byBncmVlbiBhbmQgYmx1ZSBjaGFubmVsLjx3YnIvPgorRWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPmN1cnZlUmVkID0KKyAgWyBQMChpbiw8d2JyLz4gb3V0KSw8d2JyLz4gUDEoaW4sPHdici8+IG91dCksPHdici8+IFAyKGluLDx3YnIvPiBvdXQpLDx3YnIvPiBQMyhpbiw8d2JyLz4gb3V0KSw8d2JyLz4gLi4uLDx3YnIvPiBQTihpbiw8d2JyLz4gb3V0KSBdCisyICZsdDs9IE4gJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2NvZGU+PC9wcmU+Cis8cD5UaGVzZSBhcmUgc29ydGVkIGluIG9yZGVyIG9mIGluY3JlYXNpbmcgPGNvZGU+UGluPC9jb2RlPjsgaXQgaXMgYWx3YXlzCitndWFyYW50ZWVkIHRoYXQgaW5wdXQgdmFsdWVzIDAuPHdici8+MCBhbmQgMS48d2JyLz4wIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCB0bworZGVmaW5lIGEgY29tcGxldGUgbWFwcGluZy48d2JyLz4gRm9yIGlucHV0IHZhbHVlcyBiZXR3ZWVuIGNvbnRyb2wgcG9pbnRzLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgbXVzdCBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBjb250cm9sCitwb2ludHMuPHdici8+PC9wPgorPHA+RWFjaCBjdXJ2ZSBjYW4gaGF2ZSBhbiBpbmRlcGVuZGVudCBudW1iZXIgb2YgcG9pbnRzLDx3YnIvPiBhbmQgdGhlIG51bWJlcgorb2YgcG9pbnRzIGNhbiBiZSBsZXNzIHRoYW4gbWF4ICh0aGF0IGlzLDx3YnIvPiB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgdG8KK2Fsd2F5cyBwcm92aWRlIGEgY3VydmUgd2l0aCBudW1iZXIgb2YgcG9pbnRzIGVxdWl2YWxlbnQgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+KS48d2JyLz48L3A+Cis8cD5BIGZldyBleGFtcGxlcyw8d2JyLz4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgZ3JhcGhpY2FsIG1hcHBpbmdzOyB0aGVzZQorb25seSBzcGVjaWZ5IHRoZSByZWQgY2hhbm5lbCBhbmQgdGhlIHByZWNpc2lvbiBpcyBsaW1pdGVkIHRvIDQKK2RpZ2l0cyw8d2JyLz4gZm9yIGNvbmNpc2VuZXNzLjx3YnIvPjwvcD4KKzxwPkxpbmVhciBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAwKSw8d2JyLz4gKDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAxLjx3YnIvPjApLDx3YnIvPiAoMS48d2JyLz4wLDx3YnIvPiAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iSW52ZXJ0aW5nIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2ludmVyc2VfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5HYW1tYSAxLzx3YnIvPjIuPHdici8+MiBtYXBwaW5nLDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwMiksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDgxMiksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjA2OSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjU5NCksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3MiksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzUxNSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+NzkyOCksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODY4NSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTAzNSksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTY5MSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkdhbW1hID0gMS8yLjIgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2dhbW1hX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+U3RhbmRhcmQgc1JHQiBnYW1tYSBtYXBwaW5nLDx3YnIvPiBwZXIgSUVDIDYxOTY2LTItMToxOTk5LDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwNyksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDg0NSksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjEyNSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjY1MiksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzU2OSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+Nzk3NyksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODcyMSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTA2MyksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTcwMSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgY3JlYXRlZCBieSB0aGUgZnJhbWV3b3JrIGZyb20gdGhlIGN1cnZlUmVkLDx3YnIvPiBjdXJ2ZUdyZWVuIGFuZAorY3VydmVCbHVlIGVudHJpZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVFJBU1RfQ1VSVkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSB0aGUgdG9uZSBtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBpbgordGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4qIGVudHJpZXMuPHdici8+PC9wPgorPHA+QWxsIGNvbG9yIGVuaGFuY2VtZW50IGFuZCB0b25lbWFwcGluZyBtdXN0IGJlIGRpc2FibGVkLDx3YnIvPiBleGNlcHQKK2ZvciBhcHBseWluZyB0aGUgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGJ5Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdworc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BZHZhbmNlZCBnYW1tYSBtYXBwaW5nIGFuZCBjb2xvciBlbmhhbmNlbWVudCBtYXkgYmUgYXBwbGllZCw8d2JyLz4gd2l0aG91dAorcmVkdWNpbmcgZnJhbWUgcmF0ZSBjb21wYXJlZCB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhpZ2gtcXVhbGl0eSBnYW1tYSBtYXBwaW5nIGFuZCBjb2xvciBlbmhhbmNlbWVudCB3aWxsIGJlIGFwcGxpZWQsPHdici8+IGF0Cit0aGUgY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUgY29tcGFyZWQgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+R0FNTUFfVkFMVUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSB0aGUgZ2FtbWEgdmFsdWUgc3BlY2lmaWVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5nYW1tYTwvYT4gdG8gcGVmb3JtCit0b25lbWFwcGluZy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hPC9hPi48d2JyLz48L3A+Cis8cD5NdXN0IG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QUkVTRVRfQ1VSVkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSB0aGUgcHJlc2V0IHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPnByZXNldDx3YnIvPkN1cnZlPC9hPiB0byBwZWZvcm0gdG9uZW1hcHBpbmcuPHdici8+PC9wPgorPHA+QWxsIGNvbG9yIGVuaGFuY2VtZW50IGFuZCB0b25lbWFwcGluZyBtdXN0IGJlIGRpc2FibGVkLDx3YnIvPiBleGNlcHQKK2ZvciBhcHBseWluZyB0aGUgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGJ5Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkhpZ2gtbGV2ZWwgZ2xvYmFsIGNvbnRyYXN0Lzx3YnIvPmdhbW1hLzx3YnIvPnRvbmVtYXBwaW5nIGNvbnRyb2wuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAuYXZhaWxhYmxlVG9uZU1hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+YXZhaWxhYmxlPHdici8+VG9uZTx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzd2l0Y2hpbmcgdG8gYW4gYXBwbGljYXRpb24tZGVmaW5lZCBjb250cmFzdCBjdXJ2ZSBieSBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiB0byBDT05UUkFTVF88d2JyLz5DVVJWRSw8d2JyLz4gdGhlIGN1cnZlIGlzIGRlZmluZWQKK3Blci1jaGFubmVsIHdpdGggYSBzZXQgb2YgPGNvZGU+KGluLDx3YnIvPiBvdXQpPC9jb2RlPiBwb2ludHMgdGhhdCBzcGVjaWZ5IHRoZQorbWFwcGluZyBmcm9tIGlucHV0IGhpZ2gtYml0LWRlcHRoIHBpeGVsIHZhbHVlIHRvIHRoZSBvdXRwdXQKK2xvdy1iaXQtZGVwdGggdmFsdWUuPHdici8+ICBTaW5jZSB0aGUgYWN0dWFsIHBpeGVsIHJhbmdlcyBvZiBib3RoIGlucHV0CithbmQgb3V0cHV0IG1heSBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZSBjYW1lcmEgcGlwZWxpbmUsPHdici8+IHRoZSB2YWx1ZXMKK2FyZSBzcGVjaWZpZWQgYnkgbm9ybWFsaXplZCBmbG9hdGluZy1wb2ludCBudW1iZXJzLjx3YnIvPjwvcD4KKzxwPk1vcmUtY29tcGxleCBjb2xvciBtYXBwaW5nIG9wZXJhdGlvbnMgc3VjaCBhcyAzRCBjb2xvciBsb29rLXVwCit0YWJsZXMsPHdici8+IHNlbGVjdGl2ZSBjaHJvbWEgZW5oYW5jZW1lbnQsPHdici8+IG9yIG90aGVyIG5vbi1saW5lYXIgY29sb3IKK3RyYW5zZm9ybXMgd2lsbCBiZSBkaXNhYmxlZCB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+Cis8cD5XaGVuIHVzaW5nIGVpdGhlciBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAorZW1pdCBpdHMgb3duIHRvbmVtYXAgY3VydmUgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPi48d2JyLz4KK1RoZXNlIHZhbHVlcyBhcmUgYWx3YXlzIGF2YWlsYWJsZSw8d2JyLz4gYW5kIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZQorYWN0dWFsbHkgdXNlZCBub25saW5lYXIvPHdici8+bm9uZ2xvYmFsIHRyYW5zZm9ybXMuPHdici8+PC9wPgorPHA+SWYgYSByZXF1ZXN0IGlzIHNlbnQgd2l0aCBDT05UUkFTVF88d2JyLz5DVVJWRSB3aXRoIHRoZSBjYW1lcmEgZGV2aWNlJ3MKK3Byb3ZpZGVkIGN1cnZlIGluIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLDx3YnIvPiB0aGUgaW1hZ2UncyB0b25lbWFwIHdpbGwgYmUKK3JvdWdobHkgdGhlIHNhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyBjdXJ2ZSB0byB1c2Ugd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworR0FNTUFfPHdici8+VkFMVUU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgdGhlIGZvbGxvd2luZyBmb3JtdWxhOgorKiBPVVQgPSBwb3coSU4sPHdici8+IDEuPHdici8+MCAvPHdici8+IGdhbW1hKQord2hlcmUgSU4gYW5kIE9VVCBpcyB0aGUgaW5wdXQgcGl4ZWwgdmFsdWUgc2NhbGVkIHRvIHJhbmdlIFswLjx3YnIvPjAsPHdici8+IDEuPHdici8+MF0sPHdici8+Citwb3cgaXMgdGhlIHBvd2VyIGZ1bmN0aW9uIGFuZCBnYW1tYSBpcyB0aGUgZ2FtbWEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoaXMKK2tleS48d2JyLz48L3A+Cis8cD5UaGUgc2FtZSBjdXJ2ZSB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGNvbG9yIGNoYW5uZWxzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZQorbWF5IGNsaXAgdGhlIGlucHV0IGdhbW1hIHZhbHVlIHRvIGl0cyBzdXBwb3J0ZWQgcmFuZ2UuPHdici8+IFRoZSBhY3R1YWwgYXBwbGllZAordmFsdWUgd2lsbCBiZSByZXR1cm5lZCBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZ2FtbWEgdmFsdWUgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQgdmFsdWVzCit3aXRoaW4gWzEuPHdici8+MCw8d2JyLz4gNS48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1JHQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VG9uZW1hcHBpbmcgY3VydmUgaXMgZGVmaW5lZCBieSBzUkdCPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVDNzA5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ub25lbWFwcGluZyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IElUVS1SIEJULjx3YnIvPjcwOTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitQUkVTRVRfPHdici8+Q1VSVkU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgYnkgc3BlY2lmaWVkIHN0YW5kYXJkLjx3YnIvPjwvcD4KKzxwPnNSR0IgKGFwcHJveGltYXRlZCBieSAxNiBjb250cm9sIHBvaW50cyk6PC9wPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5SZWMuPHdici8+IDcwOSAoYXBwcm94aW1hdGVkIGJ5IDE2IGNvbnRyb2wgcG9pbnRzKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVjLiA3MDkgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3JlYzcwOV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPk5vdGUgdGhhdCBhYm92ZSBmaWd1cmVzIHNob3cgYSAxNiBjb250cm9sIHBvaW50cyBhcHByb3hpbWF0aW9uIG9mIHByZXNldAorY3VydmVzLjx3YnIvPiBDYW1lcmEgZGV2aWNlcyBtYXkgYXBwbHkgYSBkaWZmZXJlbnQgYXBwcm94aW1hdGlvbiB0byB0aGUgY3VydmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gbnVtYmVyIG9mIHN1cHBvcnRlZCBwb2ludHMgaW4gdGhlCit0b25lbWFwIGN1cnZlIHRoYXQgY2FuIGJlIHVzZWQgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcG9pbnRzIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiAoaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPiopIGlzCitsZXNzIHRoYW4gdGhpcyBtYXhpbXVtLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlc2FtcGxlIHRoZSBjdXJ2ZSB0byBpdHMgaW50ZXJuYWwKK3JlcHJlc2VudGF0aW9uLDx3YnIvPiB1c2luZyBsaW5lYXIgaW50ZXJwb2xhdGlvbi48d2JyLz48L3A+Cis8cD5UaGUgb3V0cHV0IGN1cnZlcyBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhIG1heSBoYXZlIGEgZGlmZmVyZW50IG51bWJlcgorb2YgcG9pbnRzIHRoYW4gdGhlIGlucHV0IGN1cnZlcyw8d2JyLz4gYW5kIHdpbGwgcmVwcmVzZW50IHRoZSBhY3R1YWwKK2hhcmR3YXJlIGN1cnZlcyB1c2VkIGFzIGNsb3NlbHkgYXMgcG9zc2libGUgd2hlbiBsaW5lYXJseSBpbnRlcnBvbGF0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIG11c3QgYmUgYXQgbGVhc3QgNjQuPHdici8+IFRoaXMgc2hvdWxkIGJlIGF0IGxlYXN0IDEyOC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC50b25lbWFwLmF2YWlsYWJsZVRvbmVNYXBNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+YXZhaWxhYmxlPHdici8+VG9uZTx3YnIvPk1hcDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHRvbmVtYXBwaW5nIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5DYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cyBjb250YWluCithdCBsZWFzdCBvbmUgb2YgYmVsb3cgbW9kZSBjb21iaW5hdGlvbnM6PC9wPgorPHVsPgorPGxpPkNPTlRSQVNUXzx3YnIvPkNVUlZFLDx3YnIvPiBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFk8L2xpPgorPGxpPkdBTU1BXzx3YnIvPlZBTFVFLDx3YnIvPiBQUkVTRVRfPHdici8+Q1VSVkUsPHdici8+IEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWTwvbGk+Cis8L3VsPgorPHA+VGhpcyBpbmNsdWRlcyBhbGwgRlVMTCBsZXZlbCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIG11c3Qgc3VwcG9ydCBib3RoIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBpZiBhdXRvbWF0aWMgdG9uZW1hcCBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5CbHVlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjFEIGFycmF5IG9mIGZsb2F0IHBhaXJzIChQXzx3YnIvPklOLDx3YnIvPiBQXzx3YnIvPk9VVCkuPHdici8+IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYWlycyBpcyBzcGVjaWZpZWQgYnkgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIC88d2JyLz4gY29udHJhc3QgLzx3YnIvPiBnYW1tYSBjdXJ2ZSBmb3IgdGhlIGJsdWUKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5HcmVlbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4xRCBhcnJheSBvZiBmbG9hdCBwYWlycyAoUF88d2JyLz5JTiw8d2JyLz4gUF88d2JyLz5PVVQpLjx3YnIvPiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFpcnMgaXMgc3BlY2lmaWVkIGJ5IGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgZm9yIHRoZSBncmVlbgorY2hhbm5lbCw8d2JyLz4gdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+IGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MUQgYXJyYXkgb2YgZmxvYXQgcGFpcnMgKFBfPHdici8+SU4sPHdici8+IFBfPHdici8+T1VUKS48d2JyLz4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhaXJzIGlzIHNwZWNpZmllZCBieSBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIGZvciB0aGUgcmVkCitjaGFubmVsLDx3YnIvPiB0byB1c2Ugd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworQ09OVFJBU1RfPHdici8+Q1VSVkUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MC0xIG9uIGJvdGggaW5wdXQgYW5kIG91dHB1dCBjb29yZGluYXRlcyw8d2JyLz4gbm9ybWFsaXplZAorYXMgYSBmbG9hdGluZy1wb2ludCB2YWx1ZSBzdWNoIHRoYXQgMCA9PSBibGFjayBhbmQgMSA9PSB3aGl0ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggY2hhbm5lbCdzIGN1cnZlIGlzIGRlZmluZWQgYnkgYW4gYXJyYXkgb2YgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0KKyAgWyBQMGluLDx3YnIvPiBQMG91dCw8d2JyLz4gUDFpbiw8d2JyLz4gUDFvdXQsPHdici8+IFAyaW4sPHdici8+IFAyb3V0LDx3YnIvPiBQM2luLDx3YnIvPiBQM291dCw8d2JyLz4gLi4uLDx3YnIvPiBQTmluLDx3YnIvPiBQTm91dCBdCisyICZsdDs9IE4gJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2NvZGU+PC9wcmU+Cis8cD5UaGVzZSBhcmUgc29ydGVkIGluIG9yZGVyIG9mIGluY3JlYXNpbmcgPGNvZGU+UGluPC9jb2RlPjsgaXQgaXMKK3JlcXVpcmVkIHRoYXQgaW5wdXQgdmFsdWVzIDAuPHdici8+MCBhbmQgMS48d2JyLz4wIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCB0bworZGVmaW5lIGEgY29tcGxldGUgbWFwcGluZy48d2JyLz4gRm9yIGlucHV0IHZhbHVlcyBiZXR3ZWVuIGNvbnRyb2wgcG9pbnRzLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgbXVzdCBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBjb250cm9sCitwb2ludHMuPHdici8+PC9wPgorPHA+RWFjaCBjdXJ2ZSBjYW4gaGF2ZSBhbiBpbmRlcGVuZGVudCBudW1iZXIgb2YgcG9pbnRzLDx3YnIvPiBhbmQgdGhlIG51bWJlcgorb2YgcG9pbnRzIGNhbiBiZSBsZXNzIHRoYW4gbWF4ICh0aGF0IGlzLDx3YnIvPiB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgdG8KK2Fsd2F5cyBwcm92aWRlIGEgY3VydmUgd2l0aCBudW1iZXIgb2YgcG9pbnRzIGVxdWl2YWxlbnQgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+KS48d2JyLz48L3A+Cis8cD5BIGZldyBleGFtcGxlcyw8d2JyLz4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgZ3JhcGhpY2FsIG1hcHBpbmdzOyB0aGVzZQorb25seSBzcGVjaWZ5IHRoZSByZWQgY2hhbm5lbCBhbmQgdGhlIHByZWNpc2lvbiBpcyBsaW1pdGVkIHRvIDQKK2RpZ2l0cyw8d2JyLz4gZm9yIGNvbmNpc2VuZXNzLjx3YnIvPjwvcD4KKzxwPkxpbmVhciBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsgMCw8d2JyLz4gMCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkxpbmVhciBtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9saW5lYXJfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5JbnZlcnQgbWFwcGluZzo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbIDAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJJbnZlcnRpbmcgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvaW52ZXJzZV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkdhbW1hIDEvPHdici8+Mi48d2JyLz4yIG1hcHBpbmcsPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWworICAwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wNjY3LDx3YnIvPiAwLjx3YnIvPjI5MjAsPHdici8+IDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDAyLDx3YnIvPiAwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDgxMiw8d2JyLz4KKyAgMC48d2JyLz4yNjY3LDx3YnIvPiAwLjx3YnIvPjU0ODQsPHdici8+IDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MDY5LDx3YnIvPiAwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjU5NCw8d2JyLz4gMC48d2JyLz40NjY3LDx3YnIvPiAwLjx3YnIvPjcwNzIsPHdici8+CisgIDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTE1LDx3YnIvPiAwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+NzkyOCw8d2JyLz4gMC48d2JyLz42NjY3LDx3YnIvPiAwLjx3YnIvPjgzMTcsPHdici8+IDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44Njg1LDx3YnIvPgorICAwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTAzNSw8d2JyLz4gMC48d2JyLz44NjY3LDx3YnIvPiAwLjx3YnIvPjkzNzAsPHdici8+IDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NjkxLDx3YnIvPiAxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iR2FtbWEgPSAxLzIuMiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvZ2FtbWFfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5TdGFuZGFyZCBzUkdCIGdhbW1hIG1hcHBpbmcsPHdici8+IHBlciBJRUMgNjE5NjYtMi0xOjE5OTksPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWworICAwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wNjY3LDx3YnIvPiAwLjx3YnIvPjI4NjQsPHdici8+IDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDA3LDx3YnIvPiAwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDg0NSw8d2JyLz4KKyAgMC48d2JyLz4yNjY3LDx3YnIvPiAwLjx3YnIvPjU1MzIsPHdici8+IDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MTI1LDx3YnIvPiAwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjY1Miw8d2JyLz4gMC48d2JyLz40NjY3LDx3YnIvPiAwLjx3YnIvPjcxMzAsPHdici8+CisgIDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTY5LDx3YnIvPiAwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+Nzk3Nyw8d2JyLz4gMC48d2JyLz42NjY3LDx3YnIvPiAwLjx3YnIvPjgzNjAsPHdici8+IDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44NzIxLDx3YnIvPgorICAwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTA2Myw8d2JyLz4gMC48d2JyLz44NjY3LDx3YnIvPiAwLjx3YnIvPjkzODksPHdici8+IDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NzAxLDx3YnIvPiAxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0ic1JHQiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvc3JnYl90b25lbWFwLnBuZyIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGdvb2QgcXVhbGl0eSBvZiBtYXBwaW5nLDx3YnIvPiBhdCBsZWFzdCAxMjggY29udHJvbCBwb2ludHMgYXJlCitwcmVmZXJyZWQuPHdici8+PC9wPgorPHA+QSB0eXBpY2FsIHVzZSBjYXNlIG9mIHRoaXMgd291bGQgYmUgYSBnYW1tYS0xLzx3YnIvPjIuPHdici8+MiBjdXJ2ZSw8d2JyLz4gd2l0aCBhcyBtYW55Citjb250cm9sIHBvaW50cyB1c2VkIGFzIGFyZSBhdmFpbGFibGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIHRvbmVtYXBDdXJ2ZV08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+CitpcyBDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcEN1cnZlIGNvbnNpc3Qgb2YgdGhyZWUgY3VydmVzIGZvciBlYWNoIG9mIHJlZCw8d2JyLz4gZ3JlZW4sPHdici8+IGFuZCBibHVlCitjaGFubmVscyByZXNwZWN0aXZlbHkuPHdici8+IFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHRoZSByZWQgY2hhbm5lbCBhcyBhbgorZXhhbXBsZS48d2JyLz4gVGhlIHNhbWUgbG9naWMgYXBwbGllcyB0byBncmVlbiBhbmQgYmx1ZSBjaGFubmVsLjx3YnIvPgorRWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPmN1cnZlUmVkID0KKyAgWyBQMChpbiw8d2JyLz4gb3V0KSw8d2JyLz4gUDEoaW4sPHdici8+IG91dCksPHdici8+IFAyKGluLDx3YnIvPiBvdXQpLDx3YnIvPiBQMyhpbiw8d2JyLz4gb3V0KSw8d2JyLz4gLi4uLDx3YnIvPiBQTihpbiw8d2JyLz4gb3V0KSBdCisyICZsdDs9IE4gJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2NvZGU+PC9wcmU+Cis8cD5UaGVzZSBhcmUgc29ydGVkIGluIG9yZGVyIG9mIGluY3JlYXNpbmcgPGNvZGU+UGluPC9jb2RlPjsgaXQgaXMgYWx3YXlzCitndWFyYW50ZWVkIHRoYXQgaW5wdXQgdmFsdWVzIDAuPHdici8+MCBhbmQgMS48d2JyLz4wIGFyZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCB0bworZGVmaW5lIGEgY29tcGxldGUgbWFwcGluZy48d2JyLz4gRm9yIGlucHV0IHZhbHVlcyBiZXR3ZWVuIGNvbnRyb2wgcG9pbnRzLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgbXVzdCBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSBjb250cm9sCitwb2ludHMuPHdici8+PC9wPgorPHA+RWFjaCBjdXJ2ZSBjYW4gaGF2ZSBhbiBpbmRlcGVuZGVudCBudW1iZXIgb2YgcG9pbnRzLDx3YnIvPiBhbmQgdGhlIG51bWJlcgorb2YgcG9pbnRzIGNhbiBiZSBsZXNzIHRoYW4gbWF4ICh0aGF0IGlzLDx3YnIvPiB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgdG8KK2Fsd2F5cyBwcm92aWRlIGEgY3VydmUgd2l0aCBudW1iZXIgb2YgcG9pbnRzIGVxdWl2YWxlbnQgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+KS48d2JyLz48L3A+Cis8cD5BIGZldyBleGFtcGxlcyw8d2JyLz4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgZ3JhcGhpY2FsIG1hcHBpbmdzOyB0aGVzZQorb25seSBzcGVjaWZ5IHRoZSByZWQgY2hhbm5lbCBhbmQgdGhlIHByZWNpc2lvbiBpcyBsaW1pdGVkIHRvIDQKK2RpZ2l0cyw8d2JyLz4gZm9yIGNvbmNpc2VuZXNzLjx3YnIvPjwvcD4KKzxwPkxpbmVhciBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAwKSw8d2JyLz4gKDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbICgwLDx3YnIvPiAxLjx3YnIvPjApLDx3YnIvPiAoMS48d2JyLz4wLDx3YnIvPiAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iSW52ZXJ0aW5nIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2ludmVyc2VfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5HYW1tYSAxLzx3YnIvPjIuPHdici8+MiBtYXBwaW5nLDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwMiksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDgxMiksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjA2OSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjU5NCksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3MiksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzUxNSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+NzkyOCksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODY4NSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTAzNSksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTY5MSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkdhbW1hID0gMS8yLjIgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2dhbW1hX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+U3RhbmRhcmQgc1JHQiBnYW1tYSBtYXBwaW5nLDx3YnIvPiBwZXIgSUVDIDYxOTY2LTItMToxOTk5LDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPSBbCisgICgwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDAwMCksPHdici8+ICgwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCksPHdici8+ICgwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwNyksPHdici8+ICgwLjx3YnIvPjIwMDAsPHdici8+IDAuPHdici8+NDg0NSksPHdici8+CisgICgwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiksPHdici8+ICgwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjEyNSksPHdici8+ICgwLjx3YnIvPjQwMDAsPHdici8+IDAuPHdici8+NjY1MiksPHdici8+ICgwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCksPHdici8+CisgICgwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzU2OSksPHdici8+ICgwLjx3YnIvPjYwMDAsPHdici8+IDAuPHdici8+Nzk3NyksPHdici8+ICgwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCksPHdici8+ICgwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODcyMSksPHdici8+CisgICgwLjx3YnIvPjgwMDAsPHdici8+IDAuPHdici8+OTA2MyksPHdici8+ICgwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSksPHdici8+ICgwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTcwMSksPHdici8+ICgxLjx3YnIvPjAwMDAsPHdici8+IDEuPHdici8+MDAwMCkgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgY3JlYXRlZCBieSB0aGUgZnJhbWV3b3JrIGZyb20gdGhlIGN1cnZlUmVkLDx3YnIvPiBjdXJ2ZUdyZWVuIGFuZAorY3VydmVCbHVlIGVudHJpZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05UUkFTVF9DVVJWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSB0b25lIG1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGluCit0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPiogZW50cmllcy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3CitzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFkdmFuY2VkIGdhbW1hIG1hcHBpbmcgYW5kIGNvbG9yIGVuaGFuY2VtZW50IG1heSBiZSBhcHBsaWVkLDx3YnIvPiB3aXRob3V0CityZWR1Y2luZyBmcmFtZSByYXRlIGNvbXBhcmVkIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SGlnaC1xdWFsaXR5IGdhbW1hIG1hcHBpbmcgYW5kIGNvbG9yIGVuaGFuY2VtZW50IHdpbGwgYmUgYXBwbGllZCw8d2JyLz4gYXQKK3RoZSBjb3N0IG9mIHBvc3NpYmx5IHJlZHVjZWQgZnJhbWUgcmF0ZSBjb21wYXJlZCB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HQU1NQV9WQUxVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSBnYW1tYSB2YWx1ZSBzcGVjaWZpZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hPC9hPiB0byBwZWZvcm0KK3RvbmVtYXBwaW5nLjx3YnIvPjwvcD4KKzxwPkFsbCBjb2xvciBlbmhhbmNlbWVudCBhbmQgdG9uZW1hcHBpbmcgbXVzdCBiZSBkaXNhYmxlZCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbHlpbmcgdGhlIHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWE8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRVNFVF9DVVJWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSBwcmVzZXQgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+IHRvIHBlZm9ybSB0b25lbWFwcGluZy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SGlnaC1sZXZlbCBnbG9iYWwgY29udHJhc3QvPHdici8+Z2FtbWEvPHdici8+dG9uZW1hcHBpbmcgY29udHJvbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5hdmFpbGFibGU8d2JyLz5Ub25lPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHN3aXRjaGluZyB0byBhbiBhcHBsaWNhdGlvbi1kZWZpbmVkIGNvbnRyYXN0IGN1cnZlIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IHRvIENPTlRSQVNUXzx3YnIvPkNVUlZFLDx3YnIvPiB0aGUgY3VydmUgaXMgZGVmaW5lZAorcGVyLWNoYW5uZWwgd2l0aCBhIHNldCBvZiA8Y29kZT4oaW4sPHdici8+IG91dCk8L2NvZGU+IHBvaW50cyB0aGF0IHNwZWNpZnkgdGhlCittYXBwaW5nIGZyb20gaW5wdXQgaGlnaC1iaXQtZGVwdGggcGl4ZWwgdmFsdWUgdG8gdGhlIG91dHB1dAorbG93LWJpdC1kZXB0aCB2YWx1ZS48d2JyLz4gIFNpbmNlIHRoZSBhY3R1YWwgcGl4ZWwgcmFuZ2VzIG9mIGJvdGggaW5wdXQKK2FuZCBvdXRwdXQgbWF5IGNoYW5nZSBkZXBlbmRpbmcgb24gdGhlIGNhbWVyYSBwaXBlbGluZSw8d2JyLz4gdGhlIHZhbHVlcworYXJlIHNwZWNpZmllZCBieSBub3JtYWxpemVkIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuPHdici8+PC9wPgorPHA+TW9yZS1jb21wbGV4IGNvbG9yIG1hcHBpbmcgb3BlcmF0aW9ucyBzdWNoIGFzIDNEIGNvbG9yIGxvb2stdXAKK3RhYmxlcyw8d2JyLz4gc2VsZWN0aXZlIGNocm9tYSBlbmhhbmNlbWVudCw8d2JyLz4gb3Igb3RoZXIgbm9uLWxpbmVhciBjb2xvcgordHJhbnNmb3JtcyB3aWxsIGJlIGRpc2FibGVkIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKzxwPldoZW4gdXNpbmcgZWl0aGVyIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsCitlbWl0IGl0cyBvd24gdG9uZW1hcCBjdXJ2ZSBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+Ljx3YnIvPgorVGhlc2UgdmFsdWVzIGFyZSBhbHdheXMgYXZhaWxhYmxlLDx3YnIvPiBhbmQgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlCithY3R1YWxseSB1c2VkIG5vbmxpbmVhci88d2JyLz5ub25nbG9iYWwgdHJhbnNmb3Jtcy48d2JyLz48L3A+Cis8cD5JZiBhIHJlcXVlc3QgaXMgc2VudCB3aXRoIENPTlRSQVNUXzx3YnIvPkNVUlZFIHdpdGggdGhlIGNhbWVyYSBkZXZpY2UncworcHJvdmlkZWQgY3VydmUgaW4gRkFTVCBvciBISUdIXzx3YnIvPlFVQUxJVFksPHdici8+IHRoZSBpbWFnZSdzIHRvbmVtYXAgd2lsbCBiZQorcm91Z2hseSB0aGUgc2FtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5nYW1tYQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgY3VydmUgdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0dBTU1BXzx3YnIvPlZBTFVFPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHRvbmVtYXAgY3VydmUgd2lsbCBiZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgZm9ybXVsYToKKyogT1VUID0gcG93KElOLDx3YnIvPiAxLjx3YnIvPjAgLzx3YnIvPiBnYW1tYSkKK3doZXJlIElOIGFuZCBPVVQgaXMgdGhlIGlucHV0IHBpeGVsIHZhbHVlIHNjYWxlZCB0byByYW5nZSBbMC48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjBdLDx3YnIvPgorcG93IGlzIHRoZSBwb3dlciBmdW5jdGlvbiBhbmQgZ2FtbWEgaXMgdGhlIGdhbW1hIHZhbHVlIHNwZWNpZmllZCBieSB0aGlzCitrZXkuPHdici8+PC9wPgorPHA+VGhlIHNhbWUgY3VydmUgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBjb2xvciBjaGFubmVscy48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2UKK21heSBjbGlwIHRoZSBpbnB1dCBnYW1tYSB2YWx1ZSB0byBpdHMgc3VwcG9ydGVkIHJhbmdlLjx3YnIvPiBUaGUgYWN0dWFsIGFwcGxpZWQKK3ZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgaW4gY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHZhbGlkIHJhbmdlIG9mIGdhbW1hIHZhbHVlIHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0IHZhbHVlcword2l0aGluIFsxLjx3YnIvPjAsPHdici8+IDUuPHdici8+MF0gYXJlIGd1YXJhbnRlZWQgbm90IHRvIGJlIGNsaXBwZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1JHQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VG9uZW1hcHBpbmcgY3VydmUgaXMgZGVmaW5lZCBieSBzUkdCPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVDNzA5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ub25lbWFwcGluZyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IElUVS1SIEJULjx3YnIvPjcwOTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitQUkVTRVRfPHdici8+Q1VSVkU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgYnkgc3BlY2lmaWVkIHN0YW5kYXJkLjx3YnIvPjwvcD4KKzxwPnNSR0IgKGFwcHJveGltYXRlZCBieSAxNiBjb250cm9sIHBvaW50cyk6PC9wPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5SZWMuPHdici8+IDcwOSAoYXBwcm94aW1hdGVkIGJ5IDE2IGNvbnRyb2wgcG9pbnRzKTo8L3A+Cis8cD48aW1nIGFsdD0iUmVjLiA3MDkgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3JlYzcwOV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPk5vdGUgdGhhdCBhYm92ZSBmaWd1cmVzIHNob3cgYSAxNiBjb250cm9sIHBvaW50cyBhcHByb3hpbWF0aW9uIG9mIHByZXNldAorY3VydmVzLjx3YnIvPiBDYW1lcmEgZGV2aWNlcyBtYXkgYXBwbHkgYSBkaWZmZXJlbnQgYXBwcm94aW1hdGlvbiB0byB0aGUgY3VydmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9sZWQiIGNsYXNzPSJzZWN0aW9uIj5sZWQ8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZWQudHJhbnNtaXQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZWQuPHdici8+dHJhbnNtaXQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGlzIExFRCBpcyBub21pbmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0byB0aGUgdXNlcgordGhhdCB0aGUgY2FtZXJhIGlzIHBvd2VyZWQgb24gYW5kIG1heSBiZSBzdHJlYW1pbmcgaW1hZ2VzIGJhY2sgdG8gdGhlCitBcHBsaWNhdGlvbiBQcm9jZXNzb3IuPHdici8+IEluIGNlcnRhaW4gcmFyZSBjaXJjdW1zdGFuY2VzLDx3YnIvPiB0aGUgT1MgbWF5CitkaXNhYmxlIHRoaXMgd2hlbiB2aWRlbyBpcyBwcm9jZXNzZWQgbG9jYWxseSBhbmQgbm90IHRyYW5zbWl0dGVkIHRvCithbnkgdW50cnVzdGVkIGFwcGxpY2F0aW9ucy48d2JyLz48L3A+Cis8cD5JbiBwYXJ0aWN1bGFyLDx3YnIvPiB0aGUgTEVEIDxlbT5tdXN0PC9lbT4gYWx3YXlzIGJlIG9uIHdoZW4gdGhlIGRhdGEgY291bGQgYmUKK3RyYW5zbWl0dGVkIG9mZiB0aGUgZGV2aWNlLjx3YnIvPiBUaGUgTEVEIDxlbT5zaG91bGQ8L2VtPiBhbHdheXMgYmUgb24gd2hlbmV2ZXIKK2RhdGEgaXMgc3RvcmVkIGxvY2FsbHkgb24gdGhlIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGUgTEVEIDxlbT5tYXk8L2VtPiBiZSBvZmYgaWYgYSB0cnVzdGVkIGFwcGxpY2F0aW9uIGlzIHVzaW5nIHRoZSBkYXRhIHRoYXQKK2RvZXNuJ3QgdmlvbGF0ZSB0aGUgYWJvdmUgcnVsZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVkLnRyYW5zbWl0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVkLjx3YnIvPnRyYW5zbWl0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhpcyBMRUQgaXMgbm9taW5hbGx5IHVzZWQgdG8gaW5kaWNhdGUgdG8gdGhlIHVzZXIKK3RoYXQgdGhlIGNhbWVyYSBpcyBwb3dlcmVkIG9uIGFuZCBtYXkgYmUgc3RyZWFtaW5nIGltYWdlcyBiYWNrIHRvIHRoZQorQXBwbGljYXRpb24gUHJvY2Vzc29yLjx3YnIvPiBJbiBjZXJ0YWluIHJhcmUgY2lyY3Vtc3RhbmNlcyw8d2JyLz4gdGhlIE9TIG1heQorZGlzYWJsZSB0aGlzIHdoZW4gdmlkZW8gaXMgcHJvY2Vzc2VkIGxvY2FsbHkgYW5kIG5vdCB0cmFuc21pdHRlZCB0bworYW55IHVudHJ1c3RlZCBhcHBsaWNhdGlvbnMuPHdici8+PC9wPgorPHA+SW4gcGFydGljdWxhciw8d2JyLz4gdGhlIExFRCA8ZW0+bXVzdDwvZW0+IGFsd2F5cyBiZSBvbiB3aGVuIHRoZSBkYXRhIGNvdWxkIGJlCit0cmFuc21pdHRlZCBvZmYgdGhlIGRldmljZS48d2JyLz4gVGhlIExFRCA8ZW0+c2hvdWxkPC9lbT4gYWx3YXlzIGJlIG9uIHdoZW5ldmVyCitkYXRhIGlzIHN0b3JlZCBsb2NhbGx5IG9uIHRoZSBkZXZpY2UuPHdici8+PC9wPgorPHA+VGhlIExFRCA8ZW0+bWF5PC9lbT4gYmUgb2ZmIGlmIGEgdHJ1c3RlZCBhcHBsaWNhdGlvbiBpcyB1c2luZyB0aGUgZGF0YSB0aGF0Citkb2Vzbid0IHZpb2xhdGUgdGhlIGFib3ZlIHJ1bGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZWQuYXZhaWxhYmxlTGVkcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlZC48d2JyLz5hdmFpbGFibGU8d2JyLz5MZWRzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRSQU5TTUlUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZWQudHJhbnNtaXQiPmFuZHJvaWQuPHdici8+bGVkLjx3YnIvPnRyYW5zbWl0PC9hPiBjb250cm9sIGlzIHVzZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsaXN0IG9mIGNhbWVyYSBMRURzIHRoYXQgYXJlIGF2YWlsYWJsZSBvbiB0aGlzIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9pbmZvIiBjbGFzcz0ic2VjdGlvbiI+aW5mbzwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TElNSVRFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcGFiaWxpdGllcyB0byBxdWFsaWZ5IGFzIGEgPGNvZGU+RlVMTDwvY29kZT4gZGV2aWNlIG9yCitiZXR0ZXIuPHdici8+PC9wPgorPHA+T25seSB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGxpc3RlZCBpbiB0aGUgPGNvZGU+TEVHQUNZPC9jb2RlPiBhbmQgPGNvZGU+TElNSVRFRDwvY29kZT4gdGFibGVzIGluIHRoZQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Y3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+IGRvY3VtZW50YXRpb24gYXJlIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPkFsbCA8Y29kZT5MSU1JVEVEPC9jb2RlPiBkZXZpY2VzIHN1cHBvcnQgdGhlIDxjb2RlPkJBQ0tXQVJEU188d2JyLz5DT01QQVRJQkxFPC9jb2RlPiBjYXBhYmlsaXR5LDx3YnIvPiBpbmRpY2F0aW5nIGJhc2ljCitzdXBwb3J0IGZvciBjb2xvciBpbWFnZSBjYXB0dXJlLjx3YnIvPiBUaGUgb25seSBleGNlcHRpb24gaXMgdGhhdCB0aGUgZGV2aWNlIG1heQorYWx0ZXJuYXRpdmVseSBzdXBwb3J0IG9ubHkgdGhlIDxjb2RlPkRFUFRIXzx3YnIvPk9VVFBVVDwvY29kZT4gY2FwYWJpbGl0eSw8d2JyLz4gaWYgaXQgY2FuIG9ubHkgb3V0cHV0IGRlcHRoCittZWFzdXJlbWVudHMgYW5kIG5vdCBjb2xvciBpbWFnZXMuPHdici8+PC9wPgorPHA+PGNvZGU+TElNSVRFRDwvY29kZT4gZGV2aWNlcyBhbmQgYWJvdmUgcmVxdWlyZSB0aGUgdXNlIG9mIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+Cit0byBsb2NrIGV4cG9zdXJlIG1ldGVyaW5nIChhbmQgY2FsY3VsYXRlIGZsYXNoIHBvd2VyLDx3YnIvPiBmb3IgY2FtZXJhcyB3aXRoIGZsYXNoKSBiZWZvcmUKK2NhcHR1cmluZyBhIGhpZ2gtcXVhbGl0eSBzdGlsbCBpbWFnZS48d2JyLz48L3A+Cis8cD5BIDxjb2RlPkxJTUlURUQ8L2NvZGU+IGRldmljZSB0aGF0IG9ubHkgbGlzdHMgdGhlIDxjb2RlPkJBQ0tXQVJEU188d2JyLz5DT01QQVRJQkxFPC9jb2RlPiBjYXBhYmlsaXR5IGlzIG9ubHkKK3JlcXVpcmVkIHRvIHN1cHBvcnQgZnVsbC1hdXRvbWF0aWMgb3BlcmF0aW9uIGFuZCBwb3N0LXByb2Nlc3NpbmcgKDxjb2RlPk9GRjwvY29kZT4gaXMgbm90CitzdXBwb3J0ZWQgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4pPC9wPgorPHA+QWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgbWF5IG9wdGlvbmFsbHkgYmUgc3VwcG9ydGVkIGJ5IGEgPGNvZGU+TElNSVRFRDwvY29kZT4tbGV2ZWwgZGV2aWNlLDx3YnIvPiBhbmQKK2NhbiBiZSBjaGVja2VkIGZvciBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgY2FtZXJhIGRldmljZSBpcyBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgYWR2YW5jZWQgaW1hZ2luZyBhcHBsaWNhdGlvbnMuPHdici8+PC9wPgorPHA+VGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBsaXN0ZWQgaW4gdGhlIDxjb2RlPkZVTEw8L2NvZGU+LDx3YnIvPiA8Y29kZT5MRUdBQ1k8L2NvZGU+IGFuZCA8Y29kZT5MSU1JVEVEPC9jb2RlPiB0YWJsZXMgaW4gdGhlCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5jcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4gZG9jdW1lbnRhdGlvbiBhcmUgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQuPHdici8+PC9wPgorPHA+QSA8Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2Ugd2lsbCBzdXBwb3J0IGJlbG93IGNhcGFiaWxpdGllczo8L3A+Cis8dWw+Cis8bGk+PGNvZGU+QlVSU1RfPHdici8+Q0FQVFVSRTwvY29kZT4gY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucworICA8Y29kZT5CVVJTVF88d2JyLz5DQVBUVVJFPC9jb2RlPik8L2xpPgorPGxpPlBlciBmcmFtZSBjb250cm9sICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4gPGNvZGU+PT08L2NvZGU+IFBFUl88d2JyLz5GUkFNRV88d2JyLz5DT05UUk9MKTwvbGk+Cis8bGk+TWFudWFsIHNlbnNvciBjb250cm9sICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIDxjb2RlPk1BTlVBTF88d2JyLz5TRU5TT1I8L2NvZGU+KTwvbGk+Cis8bGk+TWFudWFsIHBvc3QtcHJvY2Vzc2luZyBjb250cm9sICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zCisgIDxjb2RlPk1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkc8L2NvZGU+KTwvbGk+Cis8bGk+VGhlIHJlcXVpcmVkIGV4cG9zdXJlIHRpbWUgcmFuZ2UgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+PC9saT4KKzxsaT5UaGUgcmVxdWlyZWQgbWF4RnJhbWVEdXJhdGlvbiBkZWZpbmVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPkZyYW1lPHdici8+RHVyYXRpb248L2E+PC9saT4KKzwvdWw+Cis8cD5Ob3RlOgorUHJlLUFQSSBsZXZlbCAyMyw8d2JyLz4gRlVMTCBkZXZpY2VzIGFsc28gc3VwcG9ydGVkIGFyYml0cmFyeSBjcm9wcGluZyByZWdpb24KKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmNyb3BwaW5nVHlwZSI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcHBpbmc8d2JyLz5UeXBlPC9hPiA8Y29kZT49PSBGUkVFRk9STTwvY29kZT4pOyB0aGlzIHJlcXVpcmVtZW50IHdhcyByZWxheGVkIGluIEFQSSBsZXZlbAorMjMsPHdici8+IGFuZCA8Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2VzIG1heSBvbmx5IHN1cHBvcnQgPGNvZGU+Q0VOVEVSRUQ8L2NvZGU+IGNyb3BwaW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkxFR0FDWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBjYW1lcmEgZGV2aWNlIGlzIHJ1bm5pbmcgaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBtb2RlLjx3YnIvPjwvcD4KKzxwPk9ubHkgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBsaXN0ZWQgaW4gdGhlIDxjb2RlPkxFR0FDWTwvY29kZT4gdGFibGUgaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPmNyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPgorZG9jdW1lbnRhdGlvbiBhcmUgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPkEgPGNvZGU+TEVHQUNZPC9jb2RlPiBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBwZXItZnJhbWUgY29udHJvbCw8d2JyLz4gbWFudWFsIHNlbnNvciBjb250cm9sLDx3YnIvPiBtYW51YWwKK3Bvc3QtcHJvY2Vzc2luZyw8d2JyLz4gYXJiaXRyYXJ5IGNyb3BwaW5nIHJlZ2lvbnMsPHdici8+IGFuZCBoYXMgcmVsYXhlZCBwZXJmb3JtYW5jZSBjb25zdHJhaW50cy48d2JyLz4KK05vIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIGJleW9uZCA8Y29kZT5CQUNLV0FSRF88d2JyLz5DT01QQVRJQkxFPC9jb2RlPiB3aWxsIGV2ZXIgYmUgbGlzdGVkIGJ5IGEKKzxjb2RlPkxFR0FDWTwvY29kZT4gZGV2aWNlIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPgorPHA+SW4gYWRkaXRpb24sPHdici8+IHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBub3QgZnVuY3Rpb25hbCBvbiA8Y29kZT5MRUdBQ1k8L2NvZGU+CitkZXZpY2VzLjx3YnIvPiBJbnN0ZWFkLDx3YnIvPiBldmVyeSByZXF1ZXN0IHRoYXQgaW5jbHVkZXMgYSBKUEVHLWZvcm1hdCBvdXRwdXQgdGFyZ2V0IGlzIHRyZWF0ZWQKK2FzIHRyaWdnZXJpbmcgYSBzdGlsbCBjYXB0dXJlLDx3YnIvPiBpbnRlcm5hbGx5IGV4ZWN1dGluZyBhIHByZWNhcHR1cmUgdHJpZ2dlci48d2JyLz4gIFRoaXMgbWF5CitmaXJlIHRoZSBmbGFzaCBmb3IgZmxhc2ggcG93ZXIgbWV0ZXJpbmcgZHVyaW5nIHByZWNhcHR1cmUsPHdici8+IGFuZCB0aGVuIGZpcmUgdGhlIGZsYXNoCitmb3IgdGhlIGZpbmFsIGNhcHR1cmUsPHdici8+IGlmIGEgZmxhc2ggaXMgYXZhaWxhYmxlIG9uIHRoZSBkZXZpY2UgYW5kIHRoZSBBRSBtb2RlIGlzIHNldCB0bworZW5hYmxlIHRoZSBmbGFzaC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj4zPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGNhbWVyYSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBZVVYgcmVwcm9jZXNzaW5nIGFuZCBSQVcgZGF0YSBjYXB0dXJlLDx3YnIvPiBpbiBhZGRpdGlvbiB0bworRlVMTC1sZXZlbCBjYXBhYmlsaXRpZXMuPHdici8+PC9wPgorPHA+VGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBsaXN0ZWQgaW4gdGhlIDxjb2RlPkxFVkVMXzx3YnIvPjM8L2NvZGU+LDx3YnIvPiA8Y29kZT5SQVc8L2NvZGU+LDx3YnIvPiA8Y29kZT5GVUxMPC9jb2RlPiw8d2JyLz4gPGNvZGU+TEVHQUNZPC9jb2RlPiBhbmQKKzxjb2RlPkxJTUlURUQ8L2NvZGU+IHRhYmxlcyBpbiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Y3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+Citkb2N1bWVudGF0aW9uIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZDo8L3A+Cis8dWw+Cis8bGk+PGNvZGU+WVVWXzx3YnIvPlJFUFJPQ0VTU0lORzwvY29kZT4gY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucworICA8Y29kZT5ZVVZfPHdici8+UkVQUk9DRVNTSU5HPC9jb2RlPik8L2xpPgorPGxpPjxjb2RlPlJBVzwvY29kZT4gY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucworICA8Y29kZT5SQVc8L2NvZGU+KTwvbGk+Cis8L3VsPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+R2VuZXJhbGx5IGNsYXNzaWZpZXMgdGhlIG92ZXJhbGwgc2V0IG9mIHRoZSBjYW1lcmEgZGV2aWNlIGZ1bmN0aW9uYWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHN1cHBvcnRlZCBoYXJkd2FyZSBsZXZlbCBpcyBhIGhpZ2gtbGV2ZWwgZGVzY3JpcHRpb24gb2YgdGhlIGNhbWVyYSBkZXZpY2UncworY2FwYWJpbGl0aWVzLDx3YnIvPiBzdW1tYXJpemluZyBzZXZlcmFsIGNhcGFiaWxpdGllcyBpbnRvIG9uZSBmaWVsZC48d2JyLz4gIEVhY2ggbGV2ZWwgYWRkcyBhZGRpdGlvbmFsCitmZWF0dXJlcyB0byB0aGUgcHJldmlvdXMgb25lLDx3YnIvPiBhbmQgaXMgYWx3YXlzIGEgc3RyaWN0IHN1cGVyc2V0IG9mIHRoZSBwcmV2aW91cyBsZXZlbC48d2JyLz4KK1RoZSBvcmRlcmluZyBpcyA8Y29kZT5MRUdBQ1kgJmx0OyBMSU1JVEVEICZsdDsgRlVMTCAmbHQ7IExFVkVMXzx3YnIvPjM8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPlN0YXJ0aW5nIGZyb20gPGNvZGU+TEVWRUxfPHdici8+MzwvY29kZT4sPHdici8+IHRoZSBsZXZlbCBlbnVtZXJhdGlvbnMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgaW4gaW5jcmVhc2luZworbnVtZXJpY2FsIHZhbHVlIGFzIHdlbGwuPHdici8+IFRvIGNoZWNrIGlmIGEgZ2l2ZW4gZGV2aWNlIGlzIGF0IGxlYXN0IGF0IGEgZ2l2ZW4gaGFyZHdhcmUgbGV2ZWwsPHdici8+Cit0aGUgZm9sbG93aW5nIGNvZGUgc25pcHBldCBjYW4gYmUgdXNlZDo8L3A+Cis8cHJlPjxjb2RlPi8vPHdici8+IFJldHVybnMgdHJ1ZSBpZiB0aGUgZGV2aWNlIHN1cHBvcnRzIHRoZSByZXF1aXJlZCBoYXJkd2FyZSBsZXZlbCw8d2JyLz4gb3IgYmV0dGVyLjx3YnIvPgorYm9vbGVhbiBpc0hhcmR3YXJlTGV2ZWxTdXBwb3J0ZWQoQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzIGMsPHdici8+IGludCByZXF1aXJlZExldmVsKSB7CisgICAgaW50IGRldmljZUxldmVsID0gYy48d2JyLz5nZXQoQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPklORk9fPHdici8+U1VQUE9SVEVEXzx3YnIvPkhBUkRXQVJFXzx3YnIvPkxFVkVMKTsKKyAgICBpZiAoZGV2aWNlTGV2ZWwgPT0gQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPklORk9fPHdici8+U1VQUE9SVEVEXzx3YnIvPkhBUkRXQVJFXzx3YnIvPkxFVkVMXzx3YnIvPkxFR0FDWSkgeworICAgICAgICByZXR1cm4gcmVxdWlyZWRMZXZlbCA9PSBkZXZpY2VMZXZlbDsKKyAgICB9CisgICAgLy88d2JyLz4gZGV2aWNlTGV2ZWwgaXMgbm90IExFR0FDWSw8d2JyLz4gY2FuIHVzZSBudW1lcmljYWwgc29ydAorICAgIHJldHVybiByZXF1aXJlZExldmVsICZsdDs9IGRldmljZUxldmVsOworfQorPC9jb2RlPjwvcHJlPgorPHA+QXQgYSBoaWdoIGxldmVsLDx3YnIvPiB0aGUgbGV2ZWxzIGFyZTo8L3A+Cis8dWw+Cis8bGk+PGNvZGU+TEVHQUNZPC9jb2RlPiBkZXZpY2VzIG9wZXJhdGUgaW4gYSBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBtb2RlIGZvciBvbGRlcgorICBBbmRyb2lkIGRldmljZXMsPHdici8+IGFuZCBoYXZlIHZlcnkgbGltaXRlZCBjYXBhYmlsaXRpZXMuPHdici8+PC9saT4KKzxsaT48Y29kZT5MSU1JVEVEPC9jb2RlPiBkZXZpY2VzIHJlcHJlc2VudCB0aGUKKyAgYmFzZWxpbmUgZmVhdHVyZSBzZXQsPHdici8+IGFuZCBtYXkgYWxzbyBpbmNsdWRlIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIHRoYXQgYXJlCisgIHN1YnNldHMgb2YgPGNvZGU+RlVMTDwvY29kZT4uPHdici8+PC9saT4KKzxsaT48Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2VzIGFkZGl0aW9uYWxseSBzdXBwb3J0IHBlci1mcmFtZSBtYW51YWwgY29udHJvbCBvZiBzZW5zb3IsPHdici8+IGZsYXNoLDx3YnIvPiBsZW5zIGFuZAorICBwb3N0LXByb2Nlc3Npbmcgc2V0dGluZ3MsPHdici8+IGFuZCBpbWFnZSBjYXB0dXJlIGF0IGEgaGlnaCByYXRlLjx3YnIvPjwvbGk+Cis8bGk+PGNvZGU+TEVWRUxfPHdici8+MzwvY29kZT4gZGV2aWNlcyBhZGRpdGlvbmFsbHkgc3VwcG9ydCBZVVYgcmVwcm9jZXNzaW5nIGFuZCBSQVcgaW1hZ2UgY2FwdHVyZSw8d2JyLz4gYWxvbmcKKyAgd2l0aCBhZGRpdGlvbmFsIG91dHB1dCBzdHJlYW0gY29uZmlndXJhdGlvbnMuPHdici8+PC9saT4KKzwvdWw+Cis8cD5TZWUgdGhlIGluZGl2aWR1YWwgbGV2ZWwgZW51bXMgZm9yIGZ1bGwgZGVzY3JpcHRpb25zIG9mIHRoZSBzdXBwb3J0ZWQgY2FwYWJpbGl0aWVzLjx3YnIvPiAgVGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGVudHJ5IGRlc2NyaWJlcyB0aGUgZGV2aWNlJ3MgY2FwYWJpbGl0aWVzIGF0IGEKK2ZpbmVyLWdyYWluIGxldmVsLDx3YnIvPiBpZiBuZWVkZWQuPHdici8+IEluIGFkZGl0aW9uLDx3YnIvPiBtYW55IGNvbnRyb2xzIGhhdmUgdGhlaXIgYXZhaWxhYmxlIHNldHRpbmdzIG9yCityYW5nZXMgZGVmaW5lZCBpbiBpbmRpdmlkdWFsIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwiPkNhbWVyYUNoYXJhY3RlcmlzdGljczwvYT4gZW50cmllcy48d2JyLz48L3A+Cis8cD5Tb21lIGZlYXR1cmVzIGFyZSBub3QgcGFydCBvZiBhbnkgcGFydGljdWxhciBoYXJkd2FyZSBsZXZlbCBvciBjYXBhYmlsaXR5IGFuZCBtdXN0IGJlCitxdWVyaWVkIHNlcGFyYXRlbHkuPHdici8+IFRoZXNlIGluY2x1ZGU6PC9wPgorPHVsPgorPGxpPkNhbGlicmF0ZWQgdGltZXN0YW1wcyAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz50aW1lc3RhbXA8d2JyLz5Tb3VyY2U8L2E+IDxjb2RlPj09PC9jb2RlPiBSRUFMVElNRSk8L2xpPgorPGxpPlByZWNpc2lvbiBsZW5zIGNvbnRyb2wgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPHdici8+Q2FsaWJyYXRpb248L2E+IDxjb2RlPj09PC9jb2RlPiBDQUxJQlJBVEVEKTwvbGk+Cis8bGk+RmFjZSBkZXRlY3Rpb24gKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlRmFjZURldGVjdE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZXM8L2E+KTwvbGk+Cis8bGk+T3B0aWNhbCBvciBlbGVjdHJpY2FsIGltYWdlIHN0YWJpbGl6YXRpb24KKyAgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPiw8d2JyLz4KKyAgIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVZpZGVvU3RhYmlsaXphdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+VmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZXM8L2E+KTwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgY2FtZXJhIDMgSEFMIGRldmljZSBjYW4gaW1wbGVtZW50IG9uZSBvZiB0aHJlZSBwb3NzaWJsZSBvcGVyYXRpb25hbCBtb2RlczsgTElNSVRFRCw8d2JyLz4KK0ZVTEwsPHdici8+IGFuZCBMRVZFTF88d2JyLz4zLjx3YnIvPjwvcD4KKzxwPkZVTEwgc3VwcG9ydCBvciBiZXR0ZXIgaXMgZXhwZWN0ZWQgZnJvbSBuZXcgaGlnaGVyLWVuZCBkZXZpY2VzLjx3YnIvPiBMaW1pdGVkCittb2RlIGhhcyBoYXJkd2FyZSByZXF1aXJlbWVudHMgcm91Z2hseSBpbiBsaW5lIHdpdGggdGhvc2UgZm9yIGEgY2FtZXJhIEhBTCBkZXZpY2UgdjEKK2ltcGxlbWVudGF0aW9uLDx3YnIvPiBhbmQgaXMgZXhwZWN0ZWQgZnJvbSBvbGRlciBvciBpbmV4cGVuc2l2ZSBkZXZpY2VzLjx3YnIvPiBFYWNoIGxldmVsIGlzIGEgc3RyaWN0CitzdXBlcnNldCBvZiB0aGUgcHJldmlvdXMgbGV2ZWwsPHdici8+IGFuZCB0aGV5IHNoYXJlIHRoZSBzYW1lIGVzc2VudGlhbCBvcGVyYXRpb25hbCBmbG93Ljx3YnIvPjwvcD4KKzxwPkZvciBmdWxsIGRldGFpbHMgcmVmZXIgdG8gIlMzLjx3YnIvPiBPcGVyYXRpb25hbCBNb2RlcyIgaW4gY2FtZXJhMy48d2JyLz5oPC9wPgorPHA+Q2FtZXJhIEhBTDMrIG11c3Qgbm90IGltcGxlbWVudCBMRUdBQ1kgbW9kZS48d2JyLz4gSXQgaXMgdGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGluCit0aGUgPGNvZGU+YW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5jYW1lcmEyPC9jb2RlPiB1c2VyLWZhY2luZyBBUEkgb25seSBvbiBIQUx2MSBkZXZpY2VzLDx3YnIvPiBhbmQgaXMgaW1wbGVtZW50ZWQKK2J5IHRoZSBjYW1lcmEgZnJhbWV3b3JrIGNvZGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fYmxhY2tMZXZlbCIgY2xhc3M9InNlY3Rpb24iPmJsYWNrTGV2ZWw8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5ibGFjazx3YnIvPkxldmVsLjx3YnIvPmxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGJsYWNrLWxldmVsIGNvbXBlbnNhdGlvbiBpcyBsb2NrZWQKK3RvIGl0cyBjdXJyZW50IHZhbHVlcyw8d2JyLz4gb3IgaXMgZnJlZSB0byB2YXJ5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSB2YWx1ZXMgdXNlZCBmb3IgYmxhY2stbGV2ZWwKK2NvbXBlbnNhdGlvbiB3aWxsIG5vdCBjaGFuZ2UgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvCis8Y29kZT5mYWxzZTwvY29kZT4gKE9GRikuPHdici8+PC9wPgorPHA+U2luY2UgY2hhbmdlcyB0byBjZXJ0YWluIGNhcHR1cmUgcGFyYW1ldGVycyAoc3VjaCBhcworZXhwb3N1cmUgdGltZSkgbWF5IHJlcXVpcmUgcmVzZXR0aW5nIG9mIGJsYWNrIGxldmVsCitjb21wZW5zYXRpb24sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG11c3QgcmVwb3J0IHdoZXRoZXIgc2V0dGluZwordGhlIGJsYWNrIGxldmVsIGxvY2sgd2FzIHN1Y2Nlc3NmdWwgaW4gdGhlIG91dHB1dCByZXN1bHQKK21ldGFkYXRhLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBhIHNlcXVlbmNlIG9mIHJlcXVlc3RzIGlzIGFzIGZvbGxvd3M6PC9wPgorPHVsPgorPGxpPlJlcXVlc3QgMTogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT0ZGPC9saT4KKzxsaT5SZXF1ZXN0IDI6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDM6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDQ6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDU6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXF1ZXN0IDY6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzwvdWw+Cis8cD5BbmQgdGhlIGV4cG9zdXJlIGNoYW5nZSBpbiBSZXF1ZXN0IDQgcmVxdWlyZXMgdGhlIGNhbWVyYQorZGV2aWNlIHRvIHJlc2V0IHRoZSBibGFjayBsZXZlbCBvZmZzZXRzLDx3YnIvPiB0aGVuIHRoZSBvdXRwdXQKK3Jlc3VsdCBtZXRhZGF0YSBpcyBleHBlY3RlZCB0byBiZTo8L3A+Cis8dWw+Cis8bGk+UmVzdWx0IDE6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9GRjwvbGk+Cis8bGk+UmVzdWx0IDI6IEV4cG9zdXJlID0gMTBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXN1bHQgMzogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlc3VsdCA0OiBFeHBvc3VyZSA9IDIwbXMsPHdici8+IEJsYWNrIGxldmVsIGxvY2sgPSBPRkY8L2xpPgorPGxpPlJlc3VsdCA1OiBFeHBvc3VyZSA9IDIwbXMsPHdici8+IEJsYWNrIGxldmVsIGxvY2sgPSBPTjwvbGk+Cis8bGk+UmVzdWx0IDY6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzwvdWw+Cis8cD5UaGlzIGluZGljYXRlcyB0byB0aGUgYXBwbGljYXRpb24gdGhhdCBvbiBmcmFtZSA0LDx3YnIvPiBibGFjaworbGV2ZWxzIHdlcmUgcmVzZXQgZHVlIHRvIGV4cG9zdXJlIHZhbHVlIGNoYW5nZXMsPHdici8+IGFuZCBwaXhlbAordmFsdWVzIG1heSBub3QgYmUgY29uc2lzdGVudCBhY3Jvc3MgY2FwdHVyZXMuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBtYWludGFpbiB0aGUgbG9jayB0byB0aGUgZXh0ZW50Citwb3NzaWJsZSw8d2JyLz4gb25seSBvdmVycmlkaW5nIHRoZSBsb2NrIHRvIE9GRiB3aGVuIGNoYW5nZXMgdG8KK290aGVyIHJlcXVlc3QgcGFyYW1ldGVycyByZXF1aXJlIGEgYmxhY2sgbGV2ZWwgcmVjYWxjdWxhdGlvbgorb3IgcmVzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBmb3Igc29tZSByZWFzb24gYmxhY2sgbGV2ZWwgbG9ja2luZyBpcyBubyBsb25nZXIgcG9zc2libGUKKyhmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIGFuYWxvZyBnYWluIGhhcyBjaGFuZ2VkLDx3YnIvPiB3aGljaCBmb3JjZXMKK2JsYWNrIGxldmVsIG9mZnNldHMgdG8gYmUgcmVjYWxjdWxhdGVkKSw8d2JyLz4gdGhlbiB0aGUgSEFMIG11c3QKK292ZXJyaWRlIHRoaXMgcmVxdWVzdCAoYW5kIGl0IG11c3QgcmVwb3J0ICdPRkYnIHdoZW4gdGhpcworZG9lcyBoYXBwZW4pIHVudGlsIHRoZSBuZXh0IGNhcHR1cmUgZm9yIHdoaWNoIGxvY2tpbmcgaXMKK3Bvc3NpYmxlIGFnYWluLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmJsYWNrPHdici8+TGV2ZWwuPHdici8+bG9jaworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYmxhY2stbGV2ZWwgY29tcGVuc2F0aW9uIGlzIGxvY2tlZAordG8gaXRzIGN1cnJlbnQgdmFsdWVzLDx3YnIvPiBvciBpcyBmcmVlIHRvIHZhcnkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgYmxhY2sgbGV2ZWwgb2Zmc2V0IHdhcyBsb2NrZWQgZm9yIHRoaXMgZnJhbWUuPHdici8+ICBTaG91bGQgYmUKK09OIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+YW5kcm9pZC48d2JyLz5ibGFjazx3YnIvPkxldmVsLjx3YnIvPmxvY2s8L2E+IHdhcyBPTiBpbiB0aGUgY2FwdHVyZSByZXF1ZXN0LDx3YnIvPiB1bmxlc3MKK2EgY2hhbmdlIGluIG90aGVyIGNhcHR1cmUgc2V0dGluZ3MgZm9yY2VkIHRoZSBjYW1lcmEgZGV2aWNlIHRvCitwZXJmb3JtIGEgYmxhY2sgbGV2ZWwgcmVzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBmb3Igc29tZSByZWFzb24gYmxhY2sgbGV2ZWwgbG9ja2luZyBpcyBubyBsb25nZXIgcG9zc2libGUKKyhmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIGFuYWxvZyBnYWluIGhhcyBjaGFuZ2VkLDx3YnIvPiB3aGljaCBmb3JjZXMKK2JsYWNrIGxldmVsIG9mZnNldHMgdG8gYmUgcmVjYWxjdWxhdGVkKSw8d2JyLz4gdGhlbiB0aGUgSEFMIG11c3QKK292ZXJyaWRlIHRoaXMgcmVxdWVzdCAoYW5kIGl0IG11c3QgcmVwb3J0ICdPRkYnIHdoZW4gdGhpcworZG9lcyBoYXBwZW4pIHVudGlsIHRoZSBuZXh0IGNhcHR1cmUgZm9yIHdoaWNoIGxvY2tpbmcgaXMKK3Bvc3NpYmxlIGFnYWluLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3N5bmMiIGNsYXNzPSJzZWN0aW9uIj5zeW5jPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05WRVJHSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4tMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGN1cnJlbnQgcmVzdWx0IGlzIG5vdCB5ZXQgZnVsbHkgc3luY2hyb25pemVkIHRvIGFueSByZXF1ZXN0Ljx3YnIvPjwvcD4KKzxwPlN5bmNocm9uaXphdGlvbiBpcyBpbiBwcm9ncmVzcyw8d2JyLz4gYW5kIHJlYWRpbmcgbWV0YWRhdGEgZnJvbSB0aGlzCityZXN1bHQgbWF5IGluY2x1ZGUgYSBtaXggb2YgZGF0YSB0aGF0IGhhdmUgdGFrZW4gZWZmZWN0IHNpbmNlIHRoZQorbGFzdCBzeW5jaHJvbml6YXRpb24gdGltZS48d2JyLz48L3A+Cis8cD5JbiBzb21lIGZ1dHVyZSByZXN1bHQsPHdici8+IHdpdGhpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4gZnJhbWVzLDx3YnIvPgordGhpcyB2YWx1ZSB3aWxsIHVwZGF0ZSB0byB0aGUgYWN0dWFsIGZyYW1lIG51bWJlciBmcmFtZSBudW1iZXIKK3RoZSByZXN1bHQgaXMgZ3VhcmFudGVlZCB0byBiZSBzeW5jaHJvbml6ZWQgdG8gKGFzIGxvbmcgYXMgdGhlCityZXF1ZXN0IHNldHRpbmdzIHJlbWFpbiBjb25zdGFudCkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VU5LTk9XTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+LTI8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjdXJyZW50IHJlc3VsdCdzIHN5bmNocm9uaXphdGlvbiBzdGF0dXMgaXMgdW5rbm93bi48d2JyLz48L3A+Cis8cD5UaGUgcmVzdWx0IG1heSBoYXZlIGFscmVhZHkgY29udmVyZ2VkLDx3YnIvPiBvciBpdCBtYXkgYmUgaW4KK3Byb2dyZXNzLjx3YnIvPiAgUmVhZGluZyBmcm9tIHRoaXMgcmVzdWx0IG1heSBpbmNsdWRlIHNvbWUgbWl4CitvZiBzZXR0aW5ncyBmcm9tIHBhc3QgcmVxdWVzdHMuPHdici8+PC9wPgorPHA+QWZ0ZXIgYSBzZXR0aW5ncyBjaGFuZ2UsPHdici8+IHRoZSBuZXcgc2V0dGluZ3Mgd2lsbCBldmVudHVhbGx5IGFsbAordGFrZSBlZmZlY3QgZm9yIHRoZSBvdXRwdXQgYnVmZmVycyBhbmQgcmVzdWx0cy48d2JyLz4gSG93ZXZlciw8d2JyLz4gdGhpcwordmFsdWUgd2lsbCBub3QgY2hhbmdlIHdoZW4gdGhhdCBoYXBwZW5zLjx3YnIvPiBBbHRlcmluZyBzZXR0aW5ncworcmFwaWRseSBtYXkgcHJvdmlkZSBvdXRjb21lcyB1c2luZyBtaXhlcyBvZiBzZXR0aW5ncyBmcm9tIHJlY2VudAorcmVxdWVzdHMuPHdici8+PC9wPgorPHA+VGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBwcmltYXJpbHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGgKK3RoZSBvbGRlciBjYW1lcmEgaW1wbGVtZW50YXRpb25zIChmb3IgYW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5DYW1lcmEpLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBmcmFtZSBudW1iZXIgY29ycmVzcG9uZGluZyB0byB0aGUgbGFzdCByZXF1ZXN0Cit3aXRoIHdoaWNoIHRoZSBvdXRwdXQgcmVzdWx0IChtZXRhZGF0YSArIGJ1ZmZlcnMpIGhhcyBiZWVuIGZ1bGx5CitzeW5jaHJvbml6ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+RWl0aGVyIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gYQorPGNvZGU+ZnJhbWVfPHdici8+bnVtYmVyPC9jb2RlPiw8d2JyLz4gb3Igb25lIG9mIHRoZSB0d28gZW51bXMgKENPTlZFUkdJTkcgLzx3YnIvPiBVTktOT1dOKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBhIHJlcXVlc3QgaXMgc3VibWl0dGVkIHRvIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGVyZSBpcyB1c3VhbGx5IGEKK2RlbGF5IG9mIHNldmVyYWwgZnJhbWVzIGJlZm9yZSB0aGUgY29udHJvbHMgZ2V0IGFwcGxpZWQuPHdici8+IEEgY2FtZXJhCitkZXZpY2UgbWF5IGVpdGhlciBjaG9vc2UgdG8gYWNjb3VudCBmb3IgdGhpcyBkZWxheSBieSBpbXBsZW1lbnRpbmcgYQorcGlwZWxpbmUgYW5kIGNhcmVmdWxseSBzdWJtaXQgd2VsbC10aW1lZCBhdG9taWMgY29udHJvbCB1cGRhdGVzLDx3YnIvPiBvcgoraXQgbWF5IHN0YXJ0IHN0cmVhbWluZyBjb250cm9sIGNoYW5nZXMgdGhhdCBzcGFuIG92ZXIgc2V2ZXJhbCBmcmFtZQorYm91bmRhcmllcy48d2JyLz48L3A+Cis8cD5JbiB0aGUgbGF0dGVyIGNhc2UsPHdici8+IHdoZW5ldmVyIGEgcmVxdWVzdCdzIHNldHRpbmdzIGNoYW5nZSByZWxhdGl2ZSB0bwordGhlIHByZXZpb3VzIHN1Ym1pdHRlZCByZXF1ZXN0LDx3YnIvPiB0aGUgZnVsbCBzZXQgb2YgY2hhbmdlcyBtYXkgdGFrZQorbXVsdGlwbGUgZnJhbWUgZHVyYXRpb25zIHRvIGZ1bGx5IHRha2UgZWZmZWN0Ljx3YnIvPiBTb21lIHNldHRpbmdzIG1heQordGFrZSBlZmZlY3Qgc29vbmVyIChpbiBsZXNzIGZyYW1lIGR1cmF0aW9ucykgdGhhbiBvdGhlcnMuPHdici8+PC9wPgorPHA+V2hpbGUgYSBzZXQgb2YgY29udHJvbCBjaGFuZ2VzIGFyZSBiZWluZyBwcm9wYWdhdGVkLDx3YnIvPiB0aGlzIHZhbHVlCit3aWxsIGJlIENPTlZFUkdJTkcuPHdici8+PC9wPgorPHA+T25jZSBpdCBpcyBmdWxseSBrbm93biB0aGF0IGEgc2V0IG9mIGNvbnRyb2wgY2hhbmdlcyBoYXZlIGJlZW4KK2ZpbmlzaGVkIHByb3BhZ2F0aW5nLDx3YnIvPiBhbmQgdGhlIHJlc3VsdGluZyB1cGRhdGVkIGNvbnRyb2wgc2V0dGluZ3MKK2hhdmUgYmVlbiByZWFkIGJhY2sgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMgdmFsdWUgd2lsbCBiZSBzZXQKK3RvIGEgbm9uLW5lZ2F0aXZlIGZyYW1lIG51bWJlciAoY29ycmVzcG9uZGluZyB0byB0aGUgcmVxdWVzdCB0bword2hpY2ggdGhlIHJlc3VsdHMgaGF2ZSBzeW5jaHJvbml6ZWQgdG8pLjx3YnIvPjwvcD4KKzxwPk9sZGVyIGNhbWVyYSBkZXZpY2UgaW1wbGVtZW50YXRpb25zIG1heSBub3QgaGF2ZSBhIHdheSB0byBkZXRlY3QKK3doZW4gYWxsIGNhbWVyYSBjb250cm9scyBoYXZlIGJlZW4gYXBwbGllZCw8d2JyLz4gYW5kIHdpbGwgYWx3YXlzIHNldCB0aGlzCit2YWx1ZSB0byBVTktOT1dOLjx3YnIvPjwvcD4KKzxwPkZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzIHdpbGwgYWx3YXlzIGhhdmUgdGhpcyB2YWx1ZSBzZXQgdG8gdGhlCitmcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgY29ycmVzcG9uZGluZyB0byB0aGlzIHJlc3VsdC48d2JyLz48L3A+Cis8cD48ZW0+RnVydGhlciBkZXRhaWxzPC9lbT46PC9wPgorPHVsPgorPGxpPldoZW5ldmVyIGEgcmVxdWVzdCBkaWZmZXJzIGZyb20gdGhlIGxhc3QgcmVxdWVzdCw8d2JyLz4gYW55IGZ1dHVyZQorcmVzdWx0cyBub3QgeWV0IHJldHVybmVkIG1heSBoYXZlIHRoaXMgdmFsdWUgc2V0IHRvIENPTlZFUkdJTkcgKHRoaXMKK2NvdWxkIGluY2x1ZGUgYW55IGluLXByb2dyZXNzIGNhcHR1cmVzIG5vdCB5ZXQgcmV0dXJuZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLDx3YnIvPiBmb3IgbW9yZSBkZXRhaWxzIHNlZSBwaXBlbGluZSBjb25zaWRlcmF0aW9ucyBiZWxvdykuPHdici8+PC9saT4KKzxsaT5TdWJtaXR0aW5nIGEgc2VyaWVzIG9mIG11bHRpcGxlIHJlcXVlc3RzIHRoYXQgZGlmZmVyIGZyb20gdGhlCitwcmV2aW91cyByZXF1ZXN0IChlLjx3YnIvPmcuPHdici8+IHIxLDx3YnIvPiByMiw8d2JyLz4gcjMgcy48d2JyLz50Ljx3YnIvPiByMSAhPSByMiAhPSByMykKK21vdmVzIHRoZSBuZXcgc3luY2hyb25pemF0aW9uIGZyYW1lIHRvIHRoZSBsYXN0IG5vbi1yZXBlYXRpbmcKK3JlcXVlc3QgKHVzaW5nIHRoZSBzbWFsbGVzdCBmcmFtZSBudW1iZXIgZnJvbSB0aGUgY29udGlndW91cyBsaXN0IG9mCityZXBlYXRpbmcgcmVxdWVzdHMpLjx3YnIvPjwvbGk+Cis8bGk+U3VibWl0dGluZyB0aGUgc2FtZSByZXF1ZXN0IHJlcGVhdGVkbHkgd2lsbCBub3QgY2hhbmdlIHRoaXMgdmFsdWUKK3RvIENPTlZFUkdJTkcsPHdici8+IGlmIGl0IHdhcyBhbHJlYWR5IGEgbm9uLW5lZ2F0aXZlIHZhbHVlLjx3YnIvPjwvbGk+Cis8bGk+V2hlbiB0aGlzIHZhbHVlIGNoYW5nZXMgdG8gbm9uLW5lZ2F0aXZlLDx3YnIvPiB0aGF0IG1lYW5zIHRoYXQgYWxsIG9mIHRoZQorbWV0YWRhdGEgY29udHJvbHMgZnJvbSB0aGUgcmVxdWVzdCBoYXZlIGJlZW4gYXBwbGllZCw8d2JyLz4gYWxsIG9mIHRoZQorbWV0YWRhdGEgY29udHJvbHMgZnJvbSB0aGUgY2FtZXJhIGRldmljZSBoYXZlIGJlZW4gcmVhZCB0byB0aGUKK3VwZGF0ZWQgdmFsdWVzIChpbnRvIHRoZSByZXN1bHQpLDx3YnIvPiBhbmQgYWxsIG9mIHRoZSBncmFwaGljcyBidWZmZXJzCitjb3JyZXNwb25kaW5nIHRvIHRoaXMgcmVzdWx0IGFyZSBhbHNvIHN5bmNocm9uaXplZCB0byB0aGUgcmVxdWVzdC48d2JyLz48L2xpPgorPC91bD4KKzxwPjxlbT5QaXBlbGluZSBjb25zaWRlcmF0aW9uczwvZW0+OjwvcD4KKzxwPlN1Ym1pdHRpbmcgYSByZXF1ZXN0IHdpdGggdXBkYXRlZCBjb250cm9scyByZWxhdGl2ZSB0byB0aGUgcHJldmlvdXNseQorc3VibWl0dGVkIHJlcXVlc3RzIG1heSBhbHNvIGludmFsaWRhdGUgdGhlIHN5bmNocm9uaXphdGlvbiBzdGF0ZQorb2YgYWxsIHRoZSByZXN1bHRzIGNvcnJlc3BvbmRpbmcgdG8gY3VycmVudGx5IGluLWZsaWdodCByZXF1ZXN0cy48d2JyLz48L3A+Cis8cD5JbiBvdGhlciB3b3Jkcyw8d2JyLz4gcmVzdWx0cyBmb3IgdGhpcyBjdXJyZW50IHJlcXVlc3QgYW5kIHVwIHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5waXBlbGluZU1heERlcHRoIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+cGlwZWxpbmU8d2JyLz5NYXg8d2JyLz5EZXB0aDwvYT4gcHJpb3IgcmVxdWVzdHMgbWF5IGhhdmUgdGhlaXIKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiBjaGFuZ2UgdG8gQ09OVkVSR0lORy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlVzaW5nIFVOS05PV04gaGVyZSBpcyBpbGxlZ2FsIHVubGVzcyA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4KK2lzIGFsc28gVU5LTk9XTi48d2JyLz48L3A+Cis8cD5GVUxMIGNhcGFiaWxpdHkgZGV2aWNlcyBzaG91bGQgc2ltcGx5IHNldCB0aGlzIHZhbHVlIHRvIHRoZQorPGNvZGU+ZnJhbWVfPHdici8+bnVtYmVyPC9jb2RlPiBvZiB0aGUgcmVxdWVzdCB0aGlzIHJlc3VsdCBjb3JyZXNwb25kcyB0by48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3luYy48d2JyLz5tYXg8d2JyLz5MYXRlbmN5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBFUl9GUkFNRV9DT05UUk9MPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4wPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FdmVyeSBmcmFtZSBoYXMgdGhlIHJlcXVlc3RzIGltbWVkaWF0ZWx5IGFwcGxpZWQuPHdici8+PC9wPgorPHA+Q2hhbmdpbmcgY29udHJvbHMgb3ZlciBtdWx0aXBsZSByZXF1ZXN0cyBvbmUgYWZ0ZXIgYW5vdGhlciB3aWxsCitwcm9kdWNlIHJlc3VsdHMgdGhhdCBoYXZlIHRob3NlIGNvbnRyb2xzIGFwcGxpZWQgYXRvbWljYWxseQorZWFjaCBmcmFtZS48d2JyLz48L3A+Cis8cD5BbGwgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgd2lsbCBoYXZlIHRoaXMgYXMgdGhlaXIgbWF4TGF0ZW5jeS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VTktOT1dOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4tMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RWFjaCBuZXcgZnJhbWUgaGFzIHNvbWUgc3Vic2V0IChwb3RlbnRpYWxseSB0aGUgZW50aXJlIHNldCkKK29mIHRoZSBwYXN0IHJlcXVlc3RzIGFwcGxpZWQgdG8gdGhlIGNhbWVyYSBzZXR0aW5ncy48d2JyLz48L3A+Cis8cD5CeSBzdWJtaXR0aW5nIGEgc2VyaWVzIG9mIGlkZW50aWNhbCByZXF1ZXN0cyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgZXZlbnR1YWxseSBoYXZlIHRoZSBjYW1lcmEgc2V0dGluZ3MgYXBwbGllZCw8d2JyLz4gYnV0IGl0IGlzCit1bmtub3duIHdoZW4gdGhhdCBleGFjdCBwb2ludCB3aWxsIGJlLjx3YnIvPjwvcD4KKzxwPkFsbCBMRUdBQ1kgY2FwYWJpbGl0eSBkZXZpY2VzIHdpbGwgaGF2ZSB0aGlzIGFzIHRoZWlyIG1heExhdGVuY3kuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYW1lcyB0aGF0IGNhbiBvY2N1ciBhZnRlciBhIHJlcXVlc3QKKyhkaWZmZXJlbnQgdGhhbiB0aGUgcHJldmlvdXMpIGhhcyBiZWVuIHN1Ym1pdHRlZCw8d2JyLz4gYW5kIGJlZm9yZSB0aGUKK3Jlc3VsdCdzIHN0YXRlIGJlY29tZXMgc3luY2hyb25pemVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBGcmFtZSBjb3VudHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BIHBvc2l0aXZlIHZhbHVlLDx3YnIvPiBQRVJfPHdici8+RlJBTUVfPHdici8+Q09OVFJPTCw8d2JyLz4gb3IgVU5LTk9XTi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBkZWZpbmVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIChpbiBudW1iZXIgb2YgbWV0YWRhdGEgcmVzdWx0cyksPHdici8+CitiZXR3ZWVuIHRoZSBmcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgdGhhdCBoYXMgbmV3IGNvbnRyb2xzIHRvIGFwcGx5CithbmQgdGhlIGZyYW1lIG51bWJlciBvZiB0aGUgcmVzdWx0IHRoYXQgaGFzIGFsbCB0aGUgY29udHJvbHMgYXBwbGllZC48d2JyLz48L3A+Cis8cD5JbiBvdGhlciB3b3JkcyB0aGlzIGFjdHMgYXMgYW4gdXBwZXIgYm91bmRhcnkgZm9yIGhvdyBtYW55IGZyYW1lcworbXVzdCBvY2N1ciBiZWZvcmUgdGhlIGNhbWVyYSBkZXZpY2Uga25vd3MgZm9yIGEgZmFjdCB0aGF0IHRoZSBuZXcKK3N1Ym1pdHRlZCBjYW1lcmEgc2V0dGluZ3MgaGF2ZSBiZWVuIGFwcGxpZWQgaW4gb3V0Z29pbmcgZnJhbWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGV4YW1wbGUgaWYgbWF4TGF0ZW5jeSB3YXMgMiw8d2JyLz48L3A+Cis8cHJlPjxjb2RlPmluaXRpYWwgcmVxdWVzdCA9IFggKHJlcGVhdGluZykKK3JlcXVlc3QxID0gWAorcmVxdWVzdDIgPSBZCityZXF1ZXN0MyA9IFkKK3JlcXVlc3Q0ID0gWQorCit3aGVyZSByZXF1ZXN0TiBoYXMgZnJhbWVOdW1iZXIgTiw8d2JyLz4gYW5kIHRoZSBmaXJzdCBvZiB0aGUgcmVwZWF0aW5nCitpbml0aWFsIHJlcXVlc3QncyBoYXMgZnJhbWVOdW1iZXIgRiAoYW5kIEYgJmx0OyAxKS48d2JyLz4KKworaW5pdGlhbCByZXN1bHQgPSBYJyArIHsgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+ID09IEYgfQorcmVzdWx0MSA9IFgnICsgeyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5mcmFtZTx3YnIvPk51bWJlcjwvYT4gPT0gRiB9CityZXN1bHQyID0gWCcgKyB7IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiA9PSBDT05WRVJHSU5HIH0KK3Jlc3VsdDMgPSBYJyArIHsgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+ID09IENPTlZFUkdJTkcgfQorcmVzdWx0NCA9IFgnICsgeyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5mcmFtZTx3YnIvPk51bWJlcjwvYT4gPT0gMiB9CisKK3doZXJlIHJlc3VsdE4gaGFzIGZyYW1lTnVtYmVyIE4uPHdici8+Cis8L2NvZGU+PC9wcmU+Cis8cD5TaW5jZSA8Y29kZT5yZXN1bHQ0PC9jb2RlPiBoYXMgYSA8Y29kZT5mcmFtZU51bWJlciA9PSA0PC9jb2RlPiBhbmQKKzxjb2RlPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiA9PSAyPC9jb2RlPiw8d2JyLz4gdGhlIGRpc3RhbmNlIGlzIGNsZWFybHkKKzxjb2RlPjQgLSAyID0gMjwvY29kZT4uPHdici8+PC9wPgorPHA+VXNlIDxjb2RlPmZyYW1lXzx3YnIvPmNvdW50PC9jb2RlPiBmcm9tIGNhbWVyYTNfPHdici8+cmVxdWVzdF88d2JyLz50IGluc3RlYWQgb2YKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudCI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmZyYW1lPHdici8+Q291bnQ8L2E+IG9yCis8Y29kZT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhcHR1cmVSZXN1bHQuaHRtbCNnZXRGcmFtZU51bWJlciI+Q2FwdHVyZVJlc3VsdCNnZXRGcmFtZU51bWJlcjwvYT48L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkxJTUlURUQgZGV2aWNlcyBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byB1c2UgYSBub24tbmVnYXRpdmUKK3ZhbHVlLjx3YnIvPiBJZiBVTktOT1dOIGlzIHVzZWQgaGVyZSB0aGVuIGFwcCBkZXZlbG9wZXJzIGRvIG5vdCBoYXZlIGEgd2F5Cit0byBrbm93IHdoZW4gc2Vuc29yIHNldHRpbmdzIGhhdmUgYmVlbiBhcHBsaWVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX3JlcHJvY2VzcyIgY2xhc3M9InNlY3Rpb24iPnJlcHJvY2VzczwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yIGFwcGxpZWQgdG8gdGhlIG9yaWdpbmFsIG91dHB1dAorZnJhbWUgYnkgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3NpbmcgYmVmb3JlIHNlbmRpbmcgZm9yIHJlcHJvY2Vzc2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUmVsYXRpdmUgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMS48d2JyLz4wPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBpcyBvcHRpb25hbCw8d2JyLz4gYW5kIHdpbGwgYmUgc3VwcG9ydGVkIGlmIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIFlVVl88d2JyLz5SRVBST0NFU1NJTkcKK2NhcGFiaWxpdHkgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORykuPHdici8+PC9wPgorPHA+Rm9yIHNvbWUgWVVWIHJlcHJvY2Vzc2luZyB1c2UgY2FzZXMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgY2hvb3NlIHRvIGZpbHRlciB0aGUgb3JpZ2luYWwKK291dHB1dCBmcmFtZXMgdG8gZWZmZWN0aXZlbHkgcmVkdWNlIHRoZSBub2lzZSB0byB0aGUgc2FtZSBsZXZlbCBhcyBhIGZyYW1lIHRoYXQgd2FzCitjYXB0dXJlZCB3aXRoIGxvbmdlciBleHBvc3VyZSB0aW1lLjx3YnIvPiBUbyBiZSBtb3JlIHNwZWNpZmljLDx3YnIvPiBhc3N1bWluZyB0aGUgb3JpZ2luYWwgY2FwdHVyZWQKK2ltYWdlcyB3ZXJlIGNhcHR1cmVkIHdpdGggYSBzZW5zaXRpdml0eSBvZiBTIGFuZCBhbiBleHBvc3VyZSB0aW1lIG9mIFQsPHdici8+IHRoZSBtb2RlbCBpbgordGhlIGNhbWVyYSBkZXZpY2UgaXMgdGhhdCB0aGUgYW1vdW50IG9mIG5vaXNlIGluIHRoZSBpbWFnZSB3b3VsZCBiZSBhcHByb3hpbWF0ZWx5IHdoYXQKK3dvdWxkIGJlIGV4cGVjdGVkIGlmIHRoZSBvcmlnaW5hbCBjYXB0dXJlIHBhcmFtZXRlcnMgaGFkIGJlZW4gYSBzZW5zaXRpdml0eSBvZgorUy88d2JyLz5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciBhbmQgYW4gZXhwb3N1cmUgdGltZSBvZiBUKmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yLDx3YnIvPiByYXRoZXIKK3RoYW4gUyBhbmQgVCByZXNwZWN0aXZlbHkuPHdici8+IElmIHRoZSBjYXB0dXJlZCBpbWFnZXMgd2VyZSBwcm9jZXNzZWQgYnkgdGhlIGFwcGxpY2F0aW9uCitiZWZvcmUgYmVpbmcgc2VudCBmb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGVuIHRoZSBhcHBsaWNhdGlvbiBtYXkgaGF2ZSB1c2VkIGltYWdlIHByb2Nlc3NpbmcKK2FsZ29yaXRobXMgYW5kLzx3YnIvPm9yIG11bHRpLWZyYW1lIGltYWdlIGZ1c2lvbiB0byByZWR1Y2UgdGhlIG5vaXNlIGluIHRoZQorYXBwbGljYXRpb24tcHJvY2Vzc2VkIGltYWdlcyAoaW5wdXQgaW1hZ2VzKS48d2JyLz4gQnkgdXNpbmcgdGhlIGVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yCitjb250cm9sLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY2FuIGNvbW11bmljYXRlIHRvIHRoZSBjYW1lcmEgZGV2aWNlIHRoZSBhY3R1YWwgbm9pc2UgbGV2ZWwKK2ltcHJvdmVtZW50IGluIHRoZSBhcHBsaWNhdGlvbi1wcm9jZXNzZWQgaW1hZ2UuPHdici8+IFdpdGggdGhpcyBpbmZvcm1hdGlvbiw8d2JyLz4gdGhlIGNhbWVyYQorZGV2aWNlIGNhbiBzZWxlY3QgYXBwcm9wcmlhdGUgbm9pc2UgcmVkdWN0aW9uIGFuZCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgdG8gYXZvaWQKK2V4Y2Vzc2l2ZSBub2lzZSByZWR1Y3Rpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT4pIGFuZCBpbnN1ZmZpY2llbnQgZWRnZQorZW5oYW5jZW1lbnQgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+KSBiZWluZyBhcHBsaWVkIHRvIHRoZSByZXByb2Nlc3NlZCBmcmFtZXMuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciBtdWx0aS1mcmFtZSBpbWFnZSBmdXNpb24gdXNlIGNhc2UsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgZnVzZQorbXVsdGlwbGUgb3V0cHV0IGZyYW1lcyB0b2dldGhlciB0byBhIGZpbmFsIGZyYW1lIGZvciByZXByb2Nlc3NpbmcuPHdici8+IFdoZW4gTiBpbWFnZSBhcmUKK2Z1c2VkIGludG8gMSBpbWFnZSBmb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGUgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IgY291bGQgYmUgdXAgdG8KK3NxdWFyZSByb290IG9mIE4gKGJhc2VkIG9uIGEgc2ltcGxlIHBob3RvbiBzaG90IG5vaXNlIG1vZGVsKS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAorYWRqdXN0IHRoZSByZXByb2Nlc3Npbmcgbm9pc2UgcmVkdWN0aW9uIGFuZCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgYWNjb3JkaW5nbHkgdG8KK3Byb2R1Y2UgdGhlIGJlc3QgcXVhbGl0eSBpbWFnZXMuPHdici8+PC9wPgorPHA+VGhpcyBpcyByZWxhdGl2ZSBmYWN0b3IsPHdici8+IDEuPHdici8+MCBpbmRpY2F0ZXMgdGhlIGFwcGxpY2F0aW9uIGhhc24ndCBwcm9jZXNzZWQgdGhlIGlucHV0CitidWZmZXIgaW4gYSB3YXkgdGhhdCBhZmZlY3RzIGl0cyBlZmZlY3RpdmUgZXhwb3N1cmUgdGltZS48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgZm9yIFlVViByZXByb2Nlc3NpbmcgY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPiBGb3Igbm9pc2UKK3JlZHVjdGlvbiByZXByb2Nlc3NpbmcsPHdici8+IGl0IGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+Ljx3YnIvPgorU2ltaWxhcmx5LDx3YnIvPiBmb3IgZWRnZSBlbmhhbmNlbWVudCByZXByb2Nlc3NpbmcsPHdici8+IGl0IGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4KKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+ICE9IE9GRjwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3IKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBleHBvc3VyZSB0aW1lIGluY3JlYXNlIGZhY3RvciBhcHBsaWVkIHRvIHRoZSBvcmlnaW5hbCBvdXRwdXQKK2ZyYW1lIGJ5IHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzaW5nIGJlZm9yZSBzZW5kaW5nIGZvciByZXByb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFJlbGF0aXZlIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yLjx3YnIvPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDEuPHdici8+MDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgb3B0aW9uYWwsPHdici8+IGFuZCB3aWxsIGJlIHN1cHBvcnRlZCBpZiB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBZVVZfPHdici8+UkVQUk9DRVNTSU5HCitjYXBhYmlsaXR5ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIFlVVl88d2JyLz5SRVBST0NFU1NJTkcpLjx3YnIvPjwvcD4KKzxwPkZvciBzb21lIFlVViByZXByb2Nlc3NpbmcgdXNlIGNhc2VzLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IGNob29zZSB0byBmaWx0ZXIgdGhlIG9yaWdpbmFsCitvdXRwdXQgZnJhbWVzIHRvIGVmZmVjdGl2ZWx5IHJlZHVjZSB0aGUgbm9pc2UgdG8gdGhlIHNhbWUgbGV2ZWwgYXMgYSBmcmFtZSB0aGF0IHdhcworY2FwdHVyZWQgd2l0aCBsb25nZXIgZXhwb3N1cmUgdGltZS48d2JyLz4gVG8gYmUgbW9yZSBzcGVjaWZpYyw8d2JyLz4gYXNzdW1pbmcgdGhlIG9yaWdpbmFsIGNhcHR1cmVkCitpbWFnZXMgd2VyZSBjYXB0dXJlZCB3aXRoIGEgc2Vuc2l0aXZpdHkgb2YgUyBhbmQgYW4gZXhwb3N1cmUgdGltZSBvZiBULDx3YnIvPiB0aGUgbW9kZWwgaW4KK3RoZSBjYW1lcmEgZGV2aWNlIGlzIHRoYXQgdGhlIGFtb3VudCBvZiBub2lzZSBpbiB0aGUgaW1hZ2Ugd291bGQgYmUgYXBwcm94aW1hdGVseSB3aGF0Cit3b3VsZCBiZSBleHBlY3RlZCBpZiB0aGUgb3JpZ2luYWwgY2FwdHVyZSBwYXJhbWV0ZXJzIGhhZCBiZWVuIGEgc2Vuc2l0aXZpdHkgb2YKK1MvPHdici8+ZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IgYW5kIGFuIGV4cG9zdXJlIHRpbWUgb2YgVCplZmZlY3RpdmVFeHBvc3VyZUZhY3Rvciw8d2JyLz4gcmF0aGVyCit0aGFuIFMgYW5kIFQgcmVzcGVjdGl2ZWx5Ljx3YnIvPiBJZiB0aGUgY2FwdHVyZWQgaW1hZ2VzIHdlcmUgcHJvY2Vzc2VkIGJ5IHRoZSBhcHBsaWNhdGlvbgorYmVmb3JlIGJlaW5nIHNlbnQgZm9yIHJlcHJvY2Vzc2luZyw8d2JyLz4gdGhlbiB0aGUgYXBwbGljYXRpb24gbWF5IGhhdmUgdXNlZCBpbWFnZSBwcm9jZXNzaW5nCithbGdvcml0aG1zIGFuZC88d2JyLz5vciBtdWx0aS1mcmFtZSBpbWFnZSBmdXNpb24gdG8gcmVkdWNlIHRoZSBub2lzZSBpbiB0aGUKK2FwcGxpY2F0aW9uLXByb2Nlc3NlZCBpbWFnZXMgKGlucHV0IGltYWdlcykuPHdici8+IEJ5IHVzaW5nIHRoZSBlZmZlY3RpdmVFeHBvc3VyZUZhY3RvcgorY29udHJvbCw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIGNhbiBjb21tdW5pY2F0ZSB0byB0aGUgY2FtZXJhIGRldmljZSB0aGUgYWN0dWFsIG5vaXNlIGxldmVsCitpbXByb3ZlbWVudCBpbiB0aGUgYXBwbGljYXRpb24tcHJvY2Vzc2VkIGltYWdlLjx3YnIvPiBXaXRoIHRoaXMgaW5mb3JtYXRpb24sPHdici8+IHRoZSBjYW1lcmEKK2RldmljZSBjYW4gc2VsZWN0IGFwcHJvcHJpYXRlIG5vaXNlIHJlZHVjdGlvbiBhbmQgZWRnZSBlbmhhbmNlbWVudCBwYXJhbWV0ZXJzIHRvIGF2b2lkCitleGNlc3NpdmUgbm9pc2UgcmVkdWN0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+KSBhbmQgaW5zdWZmaWNpZW50IGVkZ2UKK2VuaGFuY2VtZW50ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPikgYmVpbmcgYXBwbGllZCB0byB0aGUgcmVwcm9jZXNzZWQgZnJhbWVzLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgbXVsdGktZnJhbWUgaW1hZ2UgZnVzaW9uIHVzZSBjYXNlLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IGZ1c2UKK211bHRpcGxlIG91dHB1dCBmcmFtZXMgdG9nZXRoZXIgdG8gYSBmaW5hbCBmcmFtZSBmb3IgcmVwcm9jZXNzaW5nLjx3YnIvPiBXaGVuIE4gaW1hZ2UgYXJlCitmdXNlZCBpbnRvIDEgaW1hZ2UgZm9yIHJlcHJvY2Vzc2luZyw8d2JyLz4gdGhlIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yIGNvdWxkIGJlIHVwIHRvCitzcXVhcmUgcm9vdCBvZiBOIChiYXNlZCBvbiBhIHNpbXBsZSBwaG90b24gc2hvdCBub2lzZSBtb2RlbCkuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwKK2FkanVzdCB0aGUgcmVwcm9jZXNzaW5nIG5vaXNlIHJlZHVjdGlvbiBhbmQgZWRnZSBlbmhhbmNlbWVudCBwYXJhbWV0ZXJzIGFjY29yZGluZ2x5IHRvCitwcm9kdWNlIHRoZSBiZXN0IHF1YWxpdHkgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgcmVsYXRpdmUgZmFjdG9yLDx3YnIvPiAxLjx3YnIvPjAgaW5kaWNhdGVzIHRoZSBhcHBsaWNhdGlvbiBoYXNuJ3QgcHJvY2Vzc2VkIHRoZSBpbnB1dAorYnVmZmVyIGluIGEgd2F5IHRoYXQgYWZmZWN0cyBpdHMgZWZmZWN0aXZlIGV4cG9zdXJlIHRpbWUuPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGZvciBZVVYgcmVwcm9jZXNzaW5nIGNhcHR1cmUgcmVxdWVzdC48d2JyLz4gRm9yIG5vaXNlCityZWR1Y3Rpb24gcmVwcm9jZXNzaW5nLDx3YnIvPiBpdCBpcyBvbmx5IGVmZmVjdGl2ZSB3aGVuIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPi48d2JyLz4KK1NpbWlsYXJseSw8d2JyLz4gZm9yIGVkZ2UgZW5oYW5jZW1lbnQgcmVwcm9jZXNzaW5nLDx3YnIvPiBpdCBpcyBvbmx5IGVmZmVjdGl2ZSB3aGVuCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+bWF4PHdici8+Q2FwdHVyZTx3YnIvPlN0YWxsCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbWFsIGNhbWVyYSBjYXB0dXJlIHBpcGVsaW5lIHN0YWxsIChpbiB1bml0IG9mIGZyYW1lIGNvdW50KSBpbnRyb2R1Y2VkIGJ5IGEKK3JlcHJvY2VzcyBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE51bWJlciBvZiBmcmFtZXMuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmx0Oz0gNDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBrZXkgZGVzY3JpYmVzIHRoZSBtYXhpbWFsIGludGVyZmVyZW5jZSB0aGF0IG9uZSByZXByb2Nlc3MgKGlucHV0KSByZXF1ZXN0CitjYW4gaW50cm9kdWNlIHRvIHRoZSBjYW1lcmEgc2ltdWx0YW5lb3VzIHN0cmVhbWluZyBvZiByZWd1bGFyIChvdXRwdXQpIGNhcHR1cmUKK3JlcXVlc3RzLDx3YnIvPiBpbmNsdWRpbmcgcmVwZWF0aW5nIHJlcXVlc3RzLjx3YnIvPjwvcD4KKzxwPldoZW4gYSByZXByb2Nlc3NpbmcgY2FwdHVyZSByZXF1ZXN0IGlzIHN1Ym1pdHRlZCB3aGlsZSBhIGNhbWVyYSBvdXRwdXQgcmVwZWF0aW5nIHJlcXVlc3QKKyhlLjx3YnIvPmcuPHdici8+IHByZXZpZXcpIGlzIGJlaW5nIHNlcnZlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gaXQgbWF5IHByZWVtcHQgdGhlIGNhbWVyYSBjYXB0dXJlCitwaXBlbGluZSBmb3IgYXQgbGVhc3Qgb25lIGZyYW1lIGR1cmF0aW9uIHNvIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaXMgdW5hYmxlIHRvIHByb2Nlc3MKK3RoZSBmb2xsb3dpbmcgY2FwdHVyZSByZXF1ZXN0IGluIHRpbWUgZm9yIHRoZSBuZXh0IHNlbnNvciBzdGFydCBvZiBleHBvc3VyZSBib3VuZGFyeS48d2JyLz4KK1doZW4gdGhpcyBoYXBwZW5zLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gbWF5IG9ic2VydmUgYSBjYXB0dXJlIHRpbWUgZ2FwIChsb25nZXIgdGhhbiBvbmUgZnJhbWUKK2R1cmF0aW9uKSBiZXR3ZWVuIGFkamFjZW50IGNhcHR1cmUgb3V0cHV0IGZyYW1lcyw8d2JyLz4gd2hpY2ggdXN1YWxseSBleGhpYml0cyBhcyBwcmV2aWV3CitnbGl0Y2ggaWYgdGhlIHJlcGVhdGluZyByZXF1ZXN0IG91dHB1dCB0YXJnZXRzIGluY2x1ZGUgYSBwcmV2aWV3IHN1cmZhY2UuPHdici8+IFRoaXMga2V5IGdpdmVzCit0aGUgd29yc3QtY2FzZSBudW1iZXIgb2YgZnJhbWUgc3RhbGwgaW50cm9kdWNlZCBieSBvbmUgcmVwcm9jZXNzIHJlcXVlc3Qgd2l0aCBhbnkga2luZCBvZgorZm9ybWF0cy88d2JyLz5zaXplcyBjb21iaW5hdGlvbi48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGtleSByZXBvcnRzIDAsPHdici8+IGl0IG1lYW5zIGEgcmVwcm9jZXNzIHJlcXVlc3QgZG9lc24ndCBpbnRyb2R1Y2UgYW55IGdsaXRjaCB0byB0aGUKK29uZ29pbmcgY2FtZXJhIHJlcGVhdGluZyByZXF1ZXN0IG91dHB1dHMsPHdici8+IGFzIGlmIHRoaXMgcmVwcm9jZXNzIHJlcXVlc3QgaXMgbmV2ZXIgaXNzdWVkLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IGlzIHN1cHBvcnRlZCBpZiB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBQUklWQVRFIG9yIFlVViByZXByb2Nlc3NpbmcgKAoraS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIG9yCitZVVZfPHdici8+UkVQUk9DRVNTSU5HKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2RlcHRoIiBjbGFzcz0ic2VjdGlvbiI+ZGVwdGg8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPm1heDx3YnIvPkRlcHRoPHdici8+U2FtcGxlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgYSBkZXB0aCBwb2ludCBjbG91ZCBtYXkgY29udGFpbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIGEgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBvdXRwdXR0aW5nIGRlcHRoIHJhbmdlIGRhdGEgaW4gdGhlIGZvcm0gb2YgYSBkZXB0aCBwb2ludAorY2xvdWQgKDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjREVQVEhfUE9JTlRfQ0xPVUQiPkltYWdlPHdici8+Rm9ybWF0I0RFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEPC9hPiksPHdici8+IHRoaXMgaXMgdGhlIG1heGltdW0KK251bWJlciBvZiBwb2ludHMgYW4gb3V0cHV0IGJ1ZmZlciBtYXkgY29udGFpbi48d2JyLz48L3A+Cis8cD5BbnkgZ2l2ZW4gYnVmZmVyIG1heSBjb250YWluIGJldHdlZW4gMCBhbmQgbWF4RGVwdGhTYW1wbGVzIHBvaW50cyw8d2JyLz4gaW5jbHVzaXZlLjx3YnIvPgorSWYgb3V0cHV0IGluIHRoZSBkZXB0aCBwb2ludCBjbG91ZCBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZCw8d2JyLz4gdGhpcyBlbnRyeSB3aWxsCitub3QgYmUgZGVmaW5lZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T1VUUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTlBVVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGF2YWlsYWJsZSBkZXB0aCBkYXRhc3BhY2Ugc3RyZWFtCitjb25maWd1cmF0aW9ucyB0aGF0IHRoaXMgY2FtZXJhIGRldmljZSBzdXBwb3J0cworKGkuPHdici8+ZS48d2JyLz4gZm9ybWF0LDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBvdXRwdXQvPHdici8+aW5wdXQgc3RyZWFtKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZXNlIGFyZSBvdXRwdXQgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGZvciB1c2Ugd2l0aAorZGF0YVNwYWNlIEhBTF88d2JyLz5EQVRBU1BBQ0VfPHdici8+REVQVEguPHdici8+IFRoZSBjb25maWd1cmF0aW9ucyBhcmUKK2xpc3RlZCBhcyA8Y29kZT4oZm9ybWF0LDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBpbnB1dD8pPC9jb2RlPiB0dXBsZXMuPHdici8+PC9wPgorPHA+T25seSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBkZXB0aCBvdXRwdXQgZm9yIGF0IGxlYXN0Cit0aGUgSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5ZMTYgZGVuc2UgZGVwdGggbWFwIG1heSBpbmNsdWRlCit0aGlzIGVudHJ5Ljx3YnIvPjwvcD4KKzxwPkEgZGV2aWNlIHRoYXQgYWxzbyBzdXBwb3J0cyB0aGUgSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5CTE9CCitzcGFyc2UgZGVwdGggcG9pbnQgY2xvdWQgbXVzdCByZXBvcnQgYSBzaW5nbGUgZW50cnkgZm9yCit0aGUgZm9ybWF0IGluIHRoaXMgbGlzdCBhcyA8Y29kZT4oSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5CTE9CLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlcyI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5tYXg8d2JyLz5EZXB0aDx3YnIvPlNhbXBsZXM8L2E+LDx3YnIvPiAxLDx3YnIvPiBPVVRQVVQpPC9jb2RlPiBpbiBhZGRpdGlvbiB0bwordGhlIGVudHJpZXMgZm9yIEhBTF88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+WTE2Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+TWluPHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbkR1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdHMgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gZm9yIGVhY2gKK2Zvcm1hdC88d2JyLz5zaXplIGNvbWJpbmF0aW9uIGZvciBkZXB0aCBvdXRwdXQgZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgKGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gbnMpIHggbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgZnJhbWUgZHVyYXRpb24gd2hlbiBvbmx5IHRoYXQKK3N0cmVhbSBpcyBhY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkKK3NldCB0byBlaXRoZXIgT0ZGIG9yIEZBU1QuPHdici8+PC9wPgorPHA+V2hlbiBtdWx0aXBsZSBzdHJlYW1zIGFyZSB1c2VkIGluIGEgcmVxdWVzdCw8d2JyLz4gdGhlIG1pbmltdW0gZnJhbWUKK2R1cmF0aW9uIHdpbGwgYmUgbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbiBkdXJhdGlvbnMpLjx3YnIvPjwvcD4KKzxwPlRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIG9mIGEgc3RyZWFtIChvZiBhIHBhcnRpY3VsYXIgZm9ybWF0LDx3YnIvPiBzaXplKQoraXMgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgaW5wdXQgb3Igb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4gZm9yIG1vcmUgZGV0YWlscyBhYm91dAorY2FsY3VsYXRpbmcgdGhlIG1heCBmcmFtZSByYXRlLjx3YnIvPjwvcD4KKzxwPihLZWVwIGluIHN5bmMgd2l0aCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPik8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RhbGxEdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0IHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25EdXJhdGlvbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3RzIHRoZSBtYXhpbXVtIHN0YWxsIGR1cmF0aW9uIGZvciBlYWNoCitvdXRwdXQgZm9ybWF0Lzx3YnIvPnNpemUgY29tYmluYXRpb24gZm9yIGRlcHRoIHN0cmVhbXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIChmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG5zKSB4IG4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkEgc3RhbGwgZHVyYXRpb24gaXMgaG93IG11Y2ggZXh0cmEgdGltZSB3b3VsZCBnZXQgYWRkZWQKK3RvIHRoZSBub3JtYWwgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgYSByZXBlYXRpbmcgcmVxdWVzdAordGhhdCBoYXMgc3RyZWFtcyB3aXRoIG5vbi16ZXJvIHN0YWxsLjx3YnIvPjwvcD4KKzxwPlRoaXMgZnVuY3Rpb25zIHNpbWlsYXJseSB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnM8L2E+IGZvciBkZXB0aAorc3RyZWFtcy48d2JyLz48L3A+Cis8cD5BbGwgZGVwdGggb3V0cHV0IHN0cmVhbSBmb3JtYXRzIG1heSBoYXZlIGEgbm9uemVybyBzdGFsbAorZHVyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5kZXB0aC5kZXB0aElzRXhjbHVzaXZlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+ZGVwdGg8d2JyLz5Jczx3YnIvPkV4Y2x1c2l2ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JbmRpY2F0ZXMgd2hldGhlciBhIGNhcHR1cmUgcmVxdWVzdCBtYXkgdGFyZ2V0IGJvdGggYQorREVQVEgxNiAvPHdici8+IERFUFRIXzx3YnIvPlBPSU5UXzx3YnIvPkNMT1VEIG91dHB1dCw8d2JyLz4gYW5kIG5vcm1hbCBjb2xvciBvdXRwdXRzIChzdWNoIGFzCitZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gSlBFRyw8d2JyLz4gb3IgUkFXKSBzaW11bHRhbmVvdXNseS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBUUlVFLDx3YnIvPiBpbmNsdWRpbmcgYm90aCBkZXB0aCBhbmQgY29sb3Igb3V0cHV0cyBpbiBhIHNpbmdsZQorY2FwdHVyZSByZXF1ZXN0IGlzIG5vdCBzdXBwb3J0ZWQuPHdici8+IEFuIGFwcGxpY2F0aW9uIG11c3QgaW50ZXJsZWF2ZSBjb2xvcgorYW5kIGRlcHRoIHJlcXVlc3RzLjx3YnIvPiAgSWYgRkFMU0UsPHdici8+IGEgc2luZ2xlIHJlcXVlc3QgY2FuIHRhcmdldCBib3RoIHR5cGVzCitvZiBvdXRwdXQuPHdici8+PC9wPgorPHA+VHlwaWNhbGx5LDx3YnIvPiB0aGlzIHJlc3RyaWN0aW9uIGV4aXN0cyBvbiBjYW1lcmEgZGV2aWNlcyB0aGF0CituZWVkIHRvIGVtaXQgYSBzcGVjaWZpYyBwYXR0ZXJuIG9yIHdhdmVsZW5ndGggb2YgbGlnaHQgdG8KK21lYXN1cmUgZGVwdGggdmFsdWVzLDx3YnIvPiB3aGljaCBjYXVzZXMgdGhlIGNvbG9yIGltYWdlIHRvIGJlCitjb3JydXB0ZWQgZHVyaW5nIGRlcHRoIG1lYXN1cmVtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+Cis8IS0tIDwvbmFtZXNwYWNlPiAtLT4KKyAgPC90YWJsZT4KKworICA8ZGl2IGNsYXNzPSJ0YWdzIiBpZD0idGFnX2luZGV4Ij4KKyAgICA8aDI+VGFnczwvaDI+CisgICAgPHVsPgorICAgICAgPGxpIGlkPSJ0YWdfQkMiPkJDIC0gCisgICAgICAgIE5lZWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgSmF2YSBBUEkKKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuY29udHJvbC5hZUxvY2s8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC5jb250cm9sLmFlTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXI8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC5jb250cm9sLmFmTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuY29udHJvbC5hZlRyaWdnZXI8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuY29udHJvbC5hd2JMb2NrPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnM8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC5jb250cm9sLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblJhbmdlIj5hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXA8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFmQXZhaWxhYmxlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUVmZmVjdHM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlVmlkZW9TdGFiaWxpemF0aW9uTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVWaWRlb1N0YWJpbGl6YXRpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnMiPmFuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlcyI+YW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZU92ZXJyaWRlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGUiPmFuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXdiTG9ja0F2YWlsYWJsZSI+YW5kcm9pZC5jb250cm9sLmF3YkxvY2tBdmFpbGFibGU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC5mbGFzaC5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIj5hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXMiPmFuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlczwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+YW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2Q8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcCI+YW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPmFuZHJvaWQuanBlZy5vcmllbnRhdGlvbjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcucXVhbGl0eSI+YW5kcm9pZC5qcGVnLnF1YWxpdHk8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHkiPmFuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj5hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzIj5hbmRyb2lkLmpwZWcuYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2UiPmFuZHJvaWQubGVucy5mb2N1c1JhbmdlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0cyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0czwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdNaW5EdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdTaXplczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkTWluRHVyYXRpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZFNpemVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3TWluRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdNaW5EdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj5hbmRyb2lkLnNlbnNvci5pbmZvLnBoeXNpY2FsU2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbiI+YW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGltZXN0YW1wIj5hbmRyb2lkLnNlbnNvci50aW1lc3RhbXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4RmFjZUNvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VJZHMiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlSWRzPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUxhbmRtYXJrcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VMYW5kbWFya3M8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlUmVjdGFuZ2xlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXM8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2U8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPiA8IS0tIHRhZ19CQyAtLT4KKyAgICAgIDxsaSBpZD0idGFnX1YxIj5WMSAtIAorICAgICAgICBOZXcgZmVhdHVyZXMgZm9yIGZpcnN0IGNhbWVyYSAyIHJlbGVhc2UgKEFQSTEpCisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuZWRnZS5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj5hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC5sZW5zLmFwZXJ0dXJlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQubGVucy5mb2NhbExlbmd0aDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2U8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVBcGVydHVyZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGaWx0ZXJEZW5zaXRpZXMiPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemUiPmFuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uIj5hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLmxlbnMuc3RhdGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pZCI+YW5kcm9pZC5yZXF1ZXN0LmlkPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWluRnJhbWVEdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb248L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2U8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplIj5hbmRyb2lkLnNlbnNvci5pbmZvLnBoeXNpY2FsU2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij5hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5yb2xsaW5nU2h1dHRlclNrZXciPmFuZHJvaWQuc2Vuc29yLnJvbGxpbmdTaHV0dGVyU2tldzwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXMiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLnN5bmMubWF4TGF0ZW5jeTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC5ob3RQaXhlbC5tb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQubGVucy5hcGVydHVyZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5PC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX1YxIC0tPgorICAgICAgPGxpIGlkPSJ0YWdfUkFXIj5SQVcgLSAKKyAgICAgICAgTmVlZGVkIGZvciB1c2VmdWwgUkFXIGltYWdlIHByb2Nlc3NpbmcgYW5kIERORyBmaWxlIHN1cHBvcnQKKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj5hbmRyb2lkLmhvdFBpeGVsLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaG90UGl4ZWwuYXZhaWxhYmxlSG90UGl4ZWxNb2RlcyI+YW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby53aGl0ZUxldmVsIj5hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWw8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMSI+YW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTI8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMiI+YW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgxPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuc2Vuc29yLmJsYWNrTGV2ZWxQYXR0ZXJuPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXBEaW1lbnNpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLm5ldXRyYWxDb2xvclBvaW50Ij5hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlIj5hbmRyb2lkLnNlbnNvci5ub2lzZVByb2ZpbGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXAiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmUiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQiPmFuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQ8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNCbGFja0xldmVsIj5hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY1doaXRlTGV2ZWwiPmFuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX1JBVyAtLT4KKyAgICAgIDxsaSBpZD0idGFnX0hBTDIiPkhBTDIgLSAKKyAgICAgICAgRW50cnkgaXMgb25seSB1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgSEFMIDIueAorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3Qub3V0cHV0U3RyZWFtczwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QudHlwZSI+YW5kcm9pZC5yZXF1ZXN0LnR5cGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtUmVwcm9jZXNzU3RyZWFtczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuYmxhY2tMZXZlbC5sb2NrPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX0hBTDIgLS0+CisgICAgICA8bGkgaWQ9InRhZ19GVUxMIj5GVUxMIC0gCisgICAgICAgIEVudHJ5IGlzIHJlcXVpcmVkIGZvciBmdWxsIGhhcmR3YXJlIGxldmVsIGRldmljZXMsIGFuZCBvcHRpb25hbCBmb3Igb3RoZXIgaGFyZHdhcmUgbGV2ZWxzCisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+YW5kcm9pZC5zZW5zb3IubWF4QW5hbG9nU2Vuc2l0aXZpdHk8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX0ZVTEwgLS0+CisgICAgICA8bGkgaWQ9InRhZ19ERVBUSCI+REVQVEggLSAKKyAgICAgICAgRW50cnkgaXMgcmVxdWlyZWQgZm9yIHRoZSBkZXB0aCBjYXBhYmlsaXR5LgorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj5hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzIj5hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zIj5hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoTWluRnJhbWVEdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdGFsbER1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfREVQVEggLS0+CisgICAgICA8bGkgaWQ9InRhZ19SRVBST0MiPlJFUFJPQyAtIAorICAgICAgICBFbnRyeSBpcyByZXF1aXJlZCBmb3IgdGhlIFlVViBvciBQUklWQVRFIHJlcHJvY2Vzc2luZyBjYXBhYmlsaXR5LgorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1JbnB1dFN0cmVhbXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPmFuZHJvaWQucmVwcm9jZXNzLm1heENhcHR1cmVTdGFsbDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfUkVQUk9DIC0tPgorICAgICAgPGxpIGlkPSJ0YWdfRlVUVVJFIj5GVVRVUkUgLSAKKyAgICAgICAgRW50cnkgaXMgIHVuZGVyLXNwZWNpZmllZCBhbmQgaXMgbm90IHJlcXVpcmVkIGZvciBub3cuIFRoaXMgaXMgZm9yIGJvb2sta2VlcGluZyBwdXJwb3NlLAorICAgICAgICBkbyBub3QgaW1wbGVtZW50IG9yIHVzZSBpdCwgaXQgbWF5IGJlIHJldmlzZWQgZm9yIGZ1dHVyZS4KKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5kZW1vc2FpYy5tb2RlIj5hbmRyb2lkLmRlbW9zYWljLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLnN0cmVuZ3RoIj5hbmRyb2lkLmVkZ2Uuc3RyZW5ndGg8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlciI+YW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlcjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPmFuZHJvaWQuZmxhc2guZmlyaW5nVGltZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmNoYXJnZUR1cmF0aW9uIj5hbmRyb2lkLmZsYXNoLmluZm8uY2hhcmdlRHVyYXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmNvbG9yVGVtcGVyYXR1cmUiPmFuZHJvaWQuZmxhc2guY29sb3JUZW1wZXJhdHVyZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2gubWF4RW5lcmd5Ij5hbmRyb2lkLmZsYXNoLm1heEVuZXJneTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuc2l6ZSI+YW5kcm9pZC5qcGVnLnNpemU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLnN0cmVuZ3RoIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLnN0cmVuZ3RoPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGUiPmFuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJhc2VHYWluRmFjdG9yIj5hbmRyb2lkLnNlbnNvci5iYXNlR2FpbkZhY3RvcjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZW1wZXJhdHVyZSI+YW5kcm9pZC5zZW5zb3IudGVtcGVyYXR1cmU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNoYWRpbmcuc3RyZW5ndGgiPmFuZHJvaWQuc2hhZGluZy5zdHJlbmd0aDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXBNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uaGlzdG9ncmFtQnVja2V0Q291bnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4SGlzdG9ncmFtQ291bnQ8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhTaGFycG5lc3NNYXBWYWx1ZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4U2hhcnBuZXNzTWFwVmFsdWU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5zaGFycG5lc3NNYXBTaXplIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5zaGFycG5lc3NNYXBTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW0iPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW08L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5zaGFycG5lc3NNYXA8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPiA8IS0tIHRhZ19GVVRVUkUgLS0+CisgICAgPC91bD4KKyAgPC9kaXY+CisKKyAgWyA8YSBocmVmPSIjIj50b3A8L2E+IF0KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhLzMuMi90eXBlcy5oYWwgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2QxZDVlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL21ldGFkYXRhLzMuMi90eXBlcy5oYWwKQEAgLTAsMCArMSwxMzE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI7CisKKy8qKgorICogVG9wIGxldmVsIGhpZXJhcmNoeSBkZWZpbml0aW9ucyBmb3IgY2FtZXJhIG1ldGFkYXRhLiAqX0lORk8gc2VjdGlvbnMgYXJlIGZvcgorICogdGhlIHN0YXRpYyBtZXRhZGF0YSB0aGF0IGNhbiBiZSByZXRyaXZlZCB3aXRob3V0IG9wZW5pbmcgdGhlIGNhbWVyYSBkZXZpY2UuCisgKiBOZXcgc2VjdGlvbnMgbXVzdCBiZSBhZGRlZCByaWdodCBiZWZvcmUgQU5EUk9JRF9TRUNUSU9OX0NPVU5UIHRvIG1haW50YWluCisgKiBleGlzdGluZyBlbnVtZXJhdGlvbnMuCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTiwKKworICAgIEFORFJPSURfQ09OVFJPTCwKKworICAgIEFORFJPSURfREVNT1NBSUMsCisKKyAgICBBTkRST0lEX0VER0UsCisKKyAgICBBTkRST0lEX0ZMQVNILAorCisgICAgQU5EUk9JRF9GTEFTSF9JTkZPLAorCisgICAgQU5EUk9JRF9IT1RfUElYRUwsCisKKyAgICBBTkRST0lEX0pQRUcsCisKKyAgICBBTkRST0lEX0xFTlMsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GTywKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OLAorCisgICAgQU5EUk9JRF9RVUlSS1MsCisKKyAgICBBTkRST0lEX1JFUVVFU1QsCisKKyAgICBBTkRST0lEX1NDQUxFUiwKKworICAgIEFORFJPSURfU0VOU09SLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GTywKKworICAgIEFORFJPSURfU0hBRElORywKKworICAgIEFORFJPSURfU1RBVElTVElDUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPLAorCisgICAgQU5EUk9JRF9UT05FTUFQLAorCisgICAgQU5EUk9JRF9MRUQsCisKKyAgICBBTkRST0lEX0lORk8sCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMLAorCisgICAgQU5EUk9JRF9TWU5DLAorCisgICAgQU5EUk9JRF9SRVBST0NFU1MsCisKKyAgICBBTkRST0lEX0RFUFRILAorCisgICAgQU5EUk9JRF9TRUNUSU9OX0NPVU5ULAorCisgICAgVkVORE9SX1NFQ1RJT04gPSAweDgwMDAsCisKK307CisKKy8qKgorICogSGllcmFyY2h5IHBvc2l0aW9ucyBpbiBlbnVtIHNwYWNlLiBBbGwgdmVuZG9yIGV4dGVuc2lvbiB0YWdzIG11c3QgYmUKKyAqIGRlZmluZWQgd2l0aCB0YWcgPj0gVkVORE9SX1NFQ1RJT05fU1RBUlQKKyAqLworZW51bSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydCA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OIDw8IDE2LAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfQ09OVFJPTCA8PCAxNiwKKworICAgIEFORFJPSURfREVNT1NBSUNfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9ERU1PU0FJQyA8PCAxNiwKKworICAgIEFORFJPSURfRURHRV9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0VER0UgPDwgMTYsCisKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfRkxBU0ggPDwgMTYsCisKKyAgICBBTkRST0lEX0ZMQVNIX0lORk9fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9GTEFTSF9JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9IT1RfUElYRUwgPDwgMTYsCisKKyAgICBBTkRST0lEX0pQRUdfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9KUEVHIDw8IDE2LAorCisgICAgQU5EUk9JRF9MRU5TX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfTEVOUyA8PCAxNiwKKworICAgIEFORFJPSURfTEVOU19JTkZPX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfTEVOU19JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9OT0lTRV9SRURVQ1RJT04gPDwgMTYsCisKKyAgICBBTkRST0lEX1FVSVJLU19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1FVSVJLUyA8PCAxNiwKKworICAgIEFORFJPSURfUkVRVUVTVF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1JFUVVFU1QgPDwgMTYsCisKKyAgICBBTkRST0lEX1NDQUxFUl9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NDQUxFUiA8PCAxNiwKKworICAgIEFORFJPSURfU0VOU09SX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU0VOU09SIDw8IDE2LAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NFTlNPUl9JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9TSEFESU5HX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU0hBRElORyA8PCAxNiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NUQVRJU1RJQ1MgPDwgMTYsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NUQVRJU1RJQ1NfSU5GTyA8PCAxNiwKKworICAgIEFORFJPSURfVE9ORU1BUF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1RPTkVNQVAgPDwgMTYsCisKKyAgICBBTkRST0lEX0xFRF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0xFRCA8PCAxNiwKKworICAgIEFORFJPSURfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0lORk8gPDwgMTYsCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfQkxBQ0tfTEVWRUwgPDwgMTYsCisKKyAgICBBTkRST0lEX1NZTkNfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9TWU5DIDw8IDE2LAorCisgICAgQU5EUk9JRF9SRVBST0NFU1NfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9SRVBST0NFU1MgPDwgMTYsCisKKyAgICBBTkRST0lEX0RFUFRIX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfREVQVEggPDwgMTYsCisKKyAgICBWRU5ET1JfU0VDVElPTl9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpWRU5ET1JfU0VDVElPTiA8PCAxNiwKKworfTsKKworLyoqCisgKiBNYWluIGVudW0gZm9yIGRlZmluaW5nIGNhbWVyYSBtZXRhZGF0YSB0YWdzLiBOZXcgZW50cmllcyBtdXN0IGFsd2F5cyBnbworICogYmVmb3JlIHRoZSBzZWN0aW9uIF9FTkQgdGFnIHRvIHByZXNlcnZlIGV4aXN0aW5nIGVudW1lcmF0aW9uIHZhbHVlcy4gSW4KKyAqIGFkZGl0aW9uLCB0aGUgbmFtZSBhbmQgdHlwZSBvZiB0aGUgdGFnIG5lZWRzIHRvIGJlIGFkZGVkIHRvCisgKiBzeXN0ZW0vbWVkaWEvY2FtZXJhL3NyYy9jYW1lcmFfbWV0YWRhdGFfdGFnX2luZm8uYworICovCitlbnVtIENhbWVyYU1ldGFkYXRhVGFnIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9NT0RFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX1NUQVJULAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX1RSQU5TRk9STSwKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9HQUlOUywKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9BQkVSUkFUSU9OX01PREUsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fQVZBSUxBQkxFX0FCRVJSQVRJT05fTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fRU5ELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0NPTlRST0xfU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfRVhQT1NVUkVfQ09NUEVOU0FUSU9OLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0ssCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9SRUdJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1RBUkdFVF9GUFNfUkFOR0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfUFJFQ0FQVFVSRV9UUklHR0VSLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfUkVHSU9OUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9UUklHR0VSLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9SRUdJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5ULAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9WSURFT19TVEFCSUxJWkFUSU9OX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQVZBSUxBQkxFX0FOVElCQU5ESU5HX01PREVTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BVkFJTEFCTEVfVEFSR0VUX0ZQU19SQU5HRVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQ09NUEVOU0FUSU9OX1JBTkdFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0NPTVBFTlNBVElPTl9TVEVQLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfRUZGRUNUUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfU0NFTkVfTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX1ZJREVPX1NUQUJJTElaQVRJT05fTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9NQVhfUkVHSU9OUywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX09WRVJSSURFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX0lELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1RSSUdHRVJfSUQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9ISUdIX1NQRUVEX1ZJREVPX0NPTkZJR1VSQVRJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRU5BQkxFX1pTTCwKKworICAgIEFORFJPSURfQ09OVFJPTF9FTkQsCisKKyAgICBBTkRST0lEX0RFTU9TQUlDX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0RFTU9TQUlDX1NUQVJULAorCisgICAgQU5EUk9JRF9ERU1PU0FJQ19FTkQsCisKKyAgICBBTkRST0lEX0VER0VfTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfRURHRV9TVEFSVCwKKworICAgIEFORFJPSURfRURHRV9TVFJFTkdUSCwKKworICAgIEFORFJPSURfRURHRV9BVkFJTEFCTEVfRURHRV9NT0RFUywKKworICAgIEFORFJPSURfRURHRV9FTkQsCisKKyAgICBBTkRST0lEX0ZMQVNIX0ZJUklOR19QT1dFUiA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfRkxBU0hfU1RBUlQsCisKKyAgICBBTkRST0lEX0ZMQVNIX0ZJUklOR19USU1FLAorCisgICAgQU5EUk9JRF9GTEFTSF9NT0RFLAorCisgICAgQU5EUk9JRF9GTEFTSF9DT0xPUl9URU1QRVJBVFVSRSwKKworICAgIEFORFJPSURfRkxBU0hfTUFYX0VORVJHWSwKKworICAgIEFORFJPSURfRkxBU0hfU1RBVEUsCisKKyAgICBBTkRST0lEX0ZMQVNIX0VORCwKKworICAgIEFORFJPSURfRkxBU0hfSU5GT19BVkFJTEFCTEUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0ZMQVNIX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX0ZMQVNIX0lORk9fQ0hBUkdFX0RVUkFUSU9OLAorCisgICAgQU5EUk9JRF9GTEFTSF9JTkZPX0VORCwKKworICAgIEFORFJPSURfSE9UX1BJWEVMX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0hPVF9QSVhFTF9TVEFSVCwKKworICAgIEFORFJPSURfSE9UX1BJWEVMX0FWQUlMQUJMRV9IT1RfUElYRUxfTU9ERVMsCisKKyAgICBBTkRST0lEX0hPVF9QSVhFTF9FTkQsCisKKyAgICBBTkRST0lEX0pQRUdfR1BTX0NPT1JESU5BVEVTID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9KUEVHX1NUQVJULAorCisgICAgQU5EUk9JRF9KUEVHX0dQU19QUk9DRVNTSU5HX01FVEhPRCwKKworICAgIEFORFJPSURfSlBFR19HUFNfVElNRVNUQU1QLAorCisgICAgQU5EUk9JRF9KUEVHX09SSUVOVEFUSU9OLAorCisgICAgQU5EUk9JRF9KUEVHX1FVQUxJVFksCisKKyAgICBBTkRST0lEX0pQRUdfVEhVTUJOQUlMX1FVQUxJVFksCisKKyAgICBBTkRST0lEX0pQRUdfVEhVTUJOQUlMX1NJWkUsCisKKyAgICBBTkRST0lEX0pQRUdfQVZBSUxBQkxFX1RIVU1CTkFJTF9TSVpFUywKKworICAgIEFORFJPSURfSlBFR19NQVhfU0laRSwKKworICAgIEFORFJPSURfSlBFR19TSVpFLAorCisgICAgQU5EUk9JRF9KUEVHX0VORCwKKworICAgIEFORFJPSURfTEVOU19BUEVSVFVSRSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTEVOU19TVEFSVCwKKworICAgIEFORFJPSURfTEVOU19GSUxURVJfREVOU0lUWSwKKworICAgIEFORFJPSURfTEVOU19GT0NBTF9MRU5HVEgsCisKKyAgICBBTkRST0lEX0xFTlNfRk9DVVNfRElTVEFOQ0UsCisKKyAgICBBTkRST0lEX0xFTlNfT1BUSUNBTF9TVEFCSUxJWkFUSU9OX01PREUsCisKKyAgICBBTkRST0lEX0xFTlNfRkFDSU5HLAorCisgICAgQU5EUk9JRF9MRU5TX1BPU0VfUk9UQVRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfUE9TRV9UUkFOU0xBVElPTiwKKworICAgIEFORFJPSURfTEVOU19GT0NVU19SQU5HRSwKKworICAgIEFORFJPSURfTEVOU19TVEFURSwKKworICAgIEFORFJPSURfTEVOU19JTlRSSU5TSUNfQ0FMSUJSQVRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfUkFESUFMX0RJU1RPUlRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfRU5ELAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fQVZBSUxBQkxFX0FQRVJUVVJFUyA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTEVOU19JTkZPX1NUQVJULAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fQVZBSUxBQkxFX0ZJTFRFUl9ERU5TSVRJRVMsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19BVkFJTEFCTEVfRk9DQUxfTEVOR1RIUywKKworICAgIEFORFJPSURfTEVOU19JTkZPX0FWQUlMQUJMRV9PUFRJQ0FMX1NUQUJJTElaQVRJT04sCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19IWVBFUkZPQ0FMX0RJU1RBTkNFLAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fTUlOSU1VTV9GT0NVU19ESVNUQU5DRSwKKworICAgIEFORFJPSURfTEVOU19JTkZPX1NIQURJTkdfTUFQX1NJWkUsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19GT0NVU19ESVNUQU5DRV9DQUxJQlJBVElPTiwKKworICAgIEFORFJPSURfTEVOU19JTkZPX0VORCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX05PSVNFX1JFRFVDVElPTl9TVEFSVCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX1NUUkVOR1RILAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fQVZBSUxBQkxFX05PSVNFX1JFRFVDVElPTl9NT0RFUywKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX0VORCwKKworICAgIEFORFJPSURfUVVJUktTX01FVEVSSU5HX0NST1BfUkVHSU9OID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9RVUlSS1NfU1RBUlQsCisKKyAgICBBTkRST0lEX1FVSVJLU19UUklHR0VSX0FGX1dJVEhfQVVUTywKKworICAgIEFORFJPSURfUVVJUktTX1VTRV9aU0xfRk9STUFULAorCisgICAgQU5EUk9JRF9RVUlSS1NfVVNFX1BBUlRJQUxfUkVTVUxULAorCisgICAgQU5EUk9JRF9RVUlSS1NfUEFSVElBTF9SRVNVTFQsCisKKyAgICBBTkRST0lEX1FVSVJLU19FTkQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfRlJBTUVfQ09VTlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1JFUVVFU1RfU1RBUlQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfSUQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfSU5QVVRfU1RSRUFNUywKKworICAgIEFORFJPSURfUkVRVUVTVF9NRVRBREFUQV9NT0RFLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX09VVFBVVF9TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX1RZUEUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfTUFYX05VTV9PVVRQVVRfU1RSRUFNUywKKworICAgIEFORFJPSURfUkVRVUVTVF9NQVhfTlVNX1JFUFJPQ0VTU19TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX01BWF9OVU1fSU5QVVRfU1RSRUFNUywKKworICAgIEFORFJPSURfUkVRVUVTVF9QSVBFTElORV9ERVBUSCwKKworICAgIEFORFJPSURfUkVRVUVTVF9QSVBFTElORV9NQVhfREVQVEgsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfUEFSVElBTF9SRVNVTFRfQ09VTlQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFUywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfUkVRVUVTVF9LRVlTLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVNVTFRfS0VZUywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0hBUkFDVEVSSVNUSUNTX0tFWVMsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfRU5ELAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUF9SRUdJT04gPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NDQUxFUl9TVEFSVCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0pQRUdfTUlOX0RVUkFUSU9OUywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9KUEVHX1NJWkVTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX01BWF9ESUdJVEFMX1pPT00sCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfUFJPQ0VTU0VEX01JTl9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfUFJPQ0VTU0VEX1NJWkVTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1JBV19NSU5fRFVSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1JBV19TSVpFUywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9JTlBVVF9PVVRQVVRfRk9STUFUU19NQVAsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX01JTl9GUkFNRV9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RBTExfRFVSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUFBJTkdfVFlQRSwKKworICAgIEFORFJPSURfU0NBTEVSX0VORCwKKworICAgIEFORFJPSURfU0VOU09SX0VYUE9TVVJFX1RJTUUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NFTlNPUl9TVEFSVCwKKworICAgIEFORFJPSURfU0VOU09SX0ZSQU1FX0RVUkFUSU9OLAorCisgICAgQU5EUk9JRF9TRU5TT1JfU0VOU0lUSVZJVFksCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDIsCisKKyAgICBBTkRST0lEX1NFTlNPUl9DQUxJQlJBVElPTl9UUkFOU0ZPUk0xLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQ0FMSUJSQVRJT05fVFJBTlNGT1JNMiwKKworICAgIEFORFJPSURfU0VOU09SX0NPTE9SX1RSQU5TRk9STTEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9DT0xPUl9UUkFOU0ZPUk0yLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRk9SV0FSRF9NQVRSSVgxLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRk9SV0FSRF9NQVRSSVgyLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQkFTRV9HQUlOX0ZBQ1RPUiwKKworICAgIEFORFJPSURfU0VOU09SX0JMQUNLX0xFVkVMX1BBVFRFUk4sCisKKyAgICBBTkRST0lEX1NFTlNPUl9NQVhfQU5BTE9HX1NFTlNJVElWSVRZLAorCisgICAgQU5EUk9JRF9TRU5TT1JfT1JJRU5UQVRJT04sCisKKyAgICBBTkRST0lEX1NFTlNPUl9QUk9GSUxFX0hVRV9TQVRfTUFQX0RJTUVOU0lPTlMsCisKKyAgICBBTkRST0lEX1NFTlNPUl9USU1FU1RBTVAsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URU1QRVJBVFVSRSwKKworICAgIEFORFJPSURfU0VOU09SX05FVVRSQUxfQ09MT1JfUE9JTlQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9OT0lTRV9QUk9GSUxFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUFJPRklMRV9IVUVfU0FUX01BUCwKKworICAgIEFORFJPSURfU0VOU09SX1BST0ZJTEVfVE9ORV9DVVJWRSwKKworICAgIEFORFJPSURfU0VOU09SX0dSRUVOX1NQTElULAorCisgICAgQU5EUk9JRF9TRU5TT1JfVEVTVF9QQVRURVJOX0RBVEEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERSwKKworICAgIEFORFJPSURfU0VOU09SX0FWQUlMQUJMRV9URVNUX1BBVFRFUk5fTU9ERVMsCisKKyAgICBBTkRST0lEX1NFTlNPUl9ST0xMSU5HX1NIVVRURVJfU0tFVywKKworICAgIEFORFJPSURfU0VOU09SX09QVElDQUxfQkxBQ0tfUkVHSU9OUywKKworICAgIEFORFJPSURfU0VOU09SX0RZTkFNSUNfQkxBQ0tfTEVWRUwsCisKKyAgICBBTkRST0lEX1NFTlNPUl9EWU5BTUlDX1dISVRFX0xFVkVMLAorCisgICAgQU5EUk9JRF9TRU5TT1JfT1BBUVVFX1JBV19TSVpFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRU5ELAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19BQ1RJVkVfQVJSQVlfU0laRSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU0VOU09SX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1NFTlNJVElWSVRZX1JBTkdFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19DT0xPUl9GSUxURVJfQVJSQU5HRU1FTlQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0VYUE9TVVJFX1RJTUVfUkFOR0UsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX01BWF9GUkFNRV9EVVJBVElPTiwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fUEhZU0lDQUxfU0laRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fUElYRUxfQVJSQVlfU0laRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fV0hJVEVfTEVWRUwsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1RJTUVTVEFNUF9TT1VSQ0UsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0xFTlNfU0hBRElOR19BUFBMSUVELAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19QUkVfQ09SUkVDVElPTl9BQ1RJVkVfQVJSQVlfU0laRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fRU5ELAorCisgICAgQU5EUk9JRF9TSEFESU5HX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NIQURJTkdfU1RBUlQsCisKKyAgICBBTkRST0lEX1NIQURJTkdfU1RSRU5HVEgsCisKKyAgICBBTkRST0lEX1NIQURJTkdfQVZBSUxBQkxFX01PREVTLAorCisgICAgQU5EUk9JRF9TSEFESU5HX0VORCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9TVEFUSVNUSUNTX1NUQVJULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hJU1RPR1JBTV9NT0RFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NIQVJQTkVTU19NQVBfTU9ERSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19IT1RfUElYRUxfTUFQX01PREUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9JRFMsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9MQU5ETUFSS1MsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9SRUNUQU5HTEVTLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0ZBQ0VfU0NPUkVTLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hJU1RPR1JBTSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TSEFSUE5FU1NfTUFQLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19DT1JSRUNUSU9OX01BUCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1BSRURJQ1RFRF9DT0xPUl9HQUlOUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19QUkVESUNURURfQ09MT1JfVFJBTlNGT1JNLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NDRU5FX0ZMSUNLRVIsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSE9UX1BJWEVMX01BUCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRU5ELAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0ZBQ0VfREVURUNUX01PREVTID0KKyAgICAgICAgICAgIENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU1RBVElTVElDU19JTkZPX1NUQVJULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fSElTVE9HUkFNX0JVQ0tFVF9DT1VOVCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX01BWF9GQUNFX0NPVU5ULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fTUFYX0hJU1RPR1JBTV9DT1VOVCwKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX01BWF9TSEFSUE5FU1NfTUFQX1ZBTFVFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fU0hBUlBORVNTX01BUF9TSVpFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0hPVF9QSVhFTF9NQVBfTU9ERVMsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19BVkFJTEFCTEVfTEVOU19TSEFESU5HX01BUF9NT0RFUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX0VORCwKKworICAgIEFORFJPSURfVE9ORU1BUF9DVVJWRV9CTFVFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9UT05FTUFQX1NUQVJULAorCisgICAgQU5EUk9JRF9UT05FTUFQX0NVUlZFX0dSRUVOLAorCisgICAgQU5EUk9JRF9UT05FTUFQX0NVUlZFX1JFRCwKKworICAgIEFORFJPSURfVE9ORU1BUF9NT0RFLAorCisgICAgQU5EUk9JRF9UT05FTUFQX01BWF9DVVJWRV9QT0lOVFMsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfQVZBSUxBQkxFX1RPTkVfTUFQX01PREVTLAorCisgICAgQU5EUk9JRF9UT05FTUFQX0dBTU1BLAorCisgICAgQU5EUk9JRF9UT05FTUFQX1BSRVNFVF9DVVJWRSwKKworICAgIEFORFJPSURfVE9ORU1BUF9FTkQsCisKKyAgICBBTkRST0lEX0xFRF9UUkFOU01JVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTEVEX1NUQVJULAorCisgICAgQU5EUk9JRF9MRURfQVZBSUxBQkxFX0xFRFMsCisKKyAgICBBTkRST0lEX0xFRF9FTkQsCisKKyAgICBBTkRST0lEX0lORk9fU1VQUE9SVEVEX0hBUkRXQVJFX0xFVkVMID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9JTkZPX1NUQVJULAorCisgICAgQU5EUk9JRF9JTkZPX0VORCwKKworICAgIEFORFJPSURfQkxBQ0tfTEVWRUxfTE9DSyA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfQkxBQ0tfTEVWRUxfU1RBUlQsCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX0VORCwKKworICAgIEFORFJPSURfU1lOQ19GUkFNRV9OVU1CRVIgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NZTkNfU1RBUlQsCisKKyAgICBBTkRST0lEX1NZTkNfTUFYX0xBVEVOQ1ksCisKKyAgICBBTkRST0lEX1NZTkNfRU5ELAorCisgICAgQU5EUk9JRF9SRVBST0NFU1NfRUZGRUNUSVZFX0VYUE9TVVJFX0ZBQ1RPUiA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfUkVQUk9DRVNTX1NUQVJULAorCisgICAgQU5EUk9JRF9SRVBST0NFU1NfTUFYX0NBUFRVUkVfU1RBTEwsCisKKyAgICBBTkRST0lEX1JFUFJPQ0VTU19FTkQsCisKKyAgICBBTkRST0lEX0RFUFRIX01BWF9ERVBUSF9TQU1QTEVTID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9ERVBUSF9TVEFSVCwKKworICAgIEFORFJPSURfREVQVEhfQVZBSUxBQkxFX0RFUFRIX1NUUkVBTV9DT05GSUdVUkFUSU9OUywKKworICAgIEFORFJPSURfREVQVEhfQVZBSUxBQkxFX0RFUFRIX01JTl9GUkFNRV9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX0RFUFRIX0FWQUlMQUJMRV9ERVBUSF9TVEFMTF9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX0RFUFRIX0RFUFRIX0lTX0VYQ0xVU0lWRSwKKworICAgIEFORFJPSURfREVQVEhfRU5ELAorCit9OworCisvKioKKyAqIEVudW1lcmF0aW9uIGRlZmluaXRpb25zIGZvciB0aGUgdmFyaW91cyBlbnRyaWVzIHRoYXQgbmVlZCB0aGVtCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX01PREVfVFJBTlNGT1JNX01BVFJJWCwKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fTU9ERV9ISUdIX1FVQUxJVFksCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9BQkVSUkFUSU9OX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0FCRVJSQVRJT05fTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0FCRVJSQVRJT05fTU9ERV9ISUdIX1FVQUxJVFksCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUFudGliYW5kaW5nTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERV81MEhaLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREVfNjBIWiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BTlRJQkFORElOR19NT0RFX0FVVE8sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2sgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT04sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PTl9BVVRPX0ZMQVNILAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT05fQUxXQVlTX0ZMQVNILAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT05fQVVUT19GTEFTSF9SRURFWUUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfSURMRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0NBTkNFTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9BVVRPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREVfTUFDUk8sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9DT05USU5VT1VTX1ZJREVPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREVfQ09OVElOVU9VU19QSUNUVVJFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX01PREVfRURPRiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlciA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfVFJJR0dFUl9JRExFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1RSSUdHRVJfU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfVFJJR0dFUl9DQU5DRUwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfQVVUTywKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9JTkNBTkRFU0NFTlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfRkxVT1JFU0NFTlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfV0FSTV9GTFVPUkVTQ0VOVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9EQVlMSUdIVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9DTE9VRFlfREFZTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfVFdJTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfU0hBREUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50IDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9DVVNUT00sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQ0FQVFVSRV9JTlRFTlRfUFJFVklFVywKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9TVElMTF9DQVBUVVJFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX1ZJREVPX1JFQ09SRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9WSURFT19TTkFQU0hPVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9aRVJPX1NIVVRURVJfTEFHLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX01BTlVBTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9FRkZFQ1RfTU9ERV9NT05PLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX05FR0FUSVZFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1NPTEFSSVpFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1NFUElBLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1BPU1RFUklaRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9FRkZFQ1RfTU9ERV9XSElURUJPQVJELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX0JMQUNLQk9BUkQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfQVFVQSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfQVVUTywKKworICAgIEFORFJPSURfQ09OVFJPTF9NT0RFX1VTRV9TQ0VORV9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfT0ZGX0tFRVBfU1RBVEUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfRElTQUJMRUQgPSAwLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfRkFDRV9QUklPUklUWSwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0FDVElPTiwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1BPUlRSQUlULAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfTEFORFNDQVBFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfTklHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9OSUdIVF9QT1JUUkFJVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1RIRUFUUkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9CRUFDSCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1NOT1csCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9TVU5TRVQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9TVEVBRFlQSE9UTywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0ZJUkVXT1JLUywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1NQT1JUUywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1BBUlRZLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfQ0FORExFTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9CQVJDT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfSElHSF9TUEVFRF9WSURFTywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0hEUiwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0ZBQ0VfUFJJT1JJVFlfTE9XX0xJR0hULAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfREVWSUNFX0NVU1RPTV9TVEFSVCA9IDEwMCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0RFVklDRV9DVVNUT01fRU5EID0gMTI3LAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfVklERU9fU1RBQklMSVpBVElPTl9NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9WSURFT19TVEFCSUxJWkFUSU9OX01PREVfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9JTkFDVElWRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9TRUFSQ0hJTkcsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfU1RBVEVfQ09OVkVSR0VELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFX0xPQ0tFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9GTEFTSF9SRVFVSVJFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9QUkVDQVBUVVJFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfSU5BQ1RJVkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfUEFTU0lWRV9TQ0FOLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFX1BBU1NJVkVfRk9DVVNFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9BQ1RJVkVfU0NBTiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9GT0NVU0VEX0xPQ0tFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9OT1RfRk9DVVNFRF9MT0NLRUQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfUEFTU0lWRV9VTkZPQ1VTRUQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFX0lOQUNUSVZFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9TVEFURV9TRUFSQ0hJTkcsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFX0NPTlZFUkdFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfU1RBVEVfTE9DS0VELAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRV9GQUxTRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRV9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfQVZBSUxBQkxFX0ZBTFNFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRV9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9FTkFCTEVfWlNMX0ZBTFNFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VOQUJMRV9aU0xfVFJVRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfREVNT1NBSUNfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9ERU1PU0FJQ19NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9FREdFX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9FREdFX01PREVfRkFTVCwKKworICAgIEFORFJPSURfRURHRV9NT0RFX0hJR0hfUVVBTElUWSwKKworICAgIEFORFJPSURfRURHRV9NT0RFX1pFUk9fU0hVVFRFUl9MQUcsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0ZMQVNIX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9GTEFTSF9NT0RFX1NJTkdMRSwKKworICAgIEFORFJPSURfRkxBU0hfTU9ERV9UT1JDSCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVRFX1VOQVZBSUxBQkxFLAorCisgICAgQU5EUk9JRF9GTEFTSF9TVEFURV9DSEFSR0lORywKKworICAgIEFORFJPSURfRkxBU0hfU1RBVEVfUkVBRFksCisKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVRFX0ZJUkVELAorCisgICAgQU5EUk9JRF9GTEFTSF9TVEFURV9QQVJUSUFMLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaEluZm9BdmFpbGFibGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9GTEFTSF9JTkZPX0FWQUlMQUJMRV9GQUxTRSwKKworICAgIEFORFJPSURfRkxBU0hfSU5GT19BVkFJTEFCTEVfVFJVRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfSE9UX1BJWEVMX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfTU9ERV9ISUdIX1FVQUxJVFksCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRU5TX09QVElDQUxfU1RBQklMSVpBVElPTl9NT0RFX09GRiwKKworICAgIEFORFJPSURfTEVOU19PUFRJQ0FMX1NUQUJJTElaQVRJT05fTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0xFTlNfRkFDSU5HX0ZST05ULAorCisgICAgQU5EUk9JRF9MRU5TX0ZBQ0lOR19CQUNLLAorCisgICAgQU5EUk9JRF9MRU5TX0ZBQ0lOR19FWFRFUk5BTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfTEVOU19TVEFURV9TVEFUSU9OQVJZLAorCisgICAgQU5EUk9JRF9MRU5TX1NUQVRFX01PVklORywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24gOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRU5TX0lORk9fRk9DVVNfRElTVEFOQ0VfQ0FMSUJSQVRJT05fVU5DQUxJQlJBVEVELAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fRk9DVVNfRElTVEFOQ0VfQ0FMSUJSQVRJT05fQVBQUk9YSU1BVEUsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19GT0NVU19ESVNUQU5DRV9DQUxJQlJBVElPTl9DQUxJQlJBVEVELAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWROb2lzZVJlZHVjdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9NT0RFX0hJR0hfUVVBTElUWSwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREVfTUlOSU1BTCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREVfWkVST19TSFVUVEVSX0xBRywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdCA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1FVSVJLU19QQVJUSUFMX1JFU1VMVF9GSU5BTCwKKworICAgIEFORFJPSURfUVVJUktTX1BBUlRJQUxfUkVTVUxUX1BBUlRJQUwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9SRVFVRVNUX01FVEFEQVRBX01PREVfTk9ORSwKKworICAgIEFORFJPSURfUkVRVUVTVF9NRVRBREFUQV9NT0RFX0ZVTEwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlIDogdWludDMyX3QgeworICAgIEFORFJPSURfUkVRVUVTVF9UWVBFX0NBUFRVUkUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfVFlQRV9SRVBST0NFU1MsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfQkFDS1dBUkRfQ09NUEFUSUJMRSwKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX01BTlVBTF9TRU5TT1IsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19NQU5VQUxfUE9TVF9QUk9DRVNTSU5HLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUkFXLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUFJJVkFURV9SRVBST0NFU1NJTkcsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19SRUFEX1NFTlNPUl9TRVRUSU5HUywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX0JVUlNUX0NBUFRVUkUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19ZVVZfUkVQUk9DRVNTSU5HLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfREVQVEhfT1VUUFVULAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfQ09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19SQVcxNiA9IDB4MjAsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19SQVdfT1BBUVVFID0gMHgyNCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX1lWMTIgPSAweDMyMzE1NjU5LAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFNfWUNyQ2JfNDIwX1NQID0gMHgxMSwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX0lNUExFTUVOVEFUSU9OX0RFRklORUQgPSAweDIyLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFNfWUNiQ3JfNDIwXzg4OCA9IDB4MjMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19CTE9CID0gMHgyMSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TX0lOUFVULAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJDcm9wcGluZ1R5cGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUFBJTkdfVFlQRV9DRU5URVJfT05MWSwKKworICAgIEFORFJPSURfU0NBTEVSX0NST1BQSU5HX1RZUEVfRlJFRUZPUk0sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxIDogdWludDMyX3QgeworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9EQVlMSUdIVCA9IDEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfRkxVT1JFU0NFTlQgPSAyLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1RVTkdTVEVOID0gMywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9GTEFTSCA9IDQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfRklORV9XRUFUSEVSID0gOSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9DTE9VRFlfV0VBVEhFUiA9IDEwLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1NIQURFID0gMTEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfREFZTElHSFRfRkxVT1JFU0NFTlQgPSAxMiwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9EQVlfV0hJVEVfRkxVT1JFU0NFTlQgPSAxMywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9DT09MX1dISVRFX0ZMVU9SRVNDRU5UID0gMTQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfV0hJVEVfRkxVT1JFU0NFTlQgPSAxNSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9TVEFOREFSRF9BID0gMTcsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfU1RBTkRBUkRfQiA9IDE4LAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1NUQU5EQVJEX0MgPSAxOSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENTUgPSAyMCwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENjUgPSAyMSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENzUgPSAyMiwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9ENTAgPSAyMywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9JU09fU1RVRElPX1RVTkdTVEVOID0gMjQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclRlc3RQYXR0ZXJuTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERV9TT0xJRF9DT0xPUiwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX0NPTE9SX0JBUlMsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fTU9ERV9DT0xPUl9CQVJTX0ZBREVfVE9fR1JBWSwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX1BOOSwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX0NVU1RPTTEgPSAyNTYsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50IDogdWludDMyX3QgeworICAgIEFORFJPSURfU0VOU09SX0lORk9fQ09MT1JfRklMVEVSX0FSUkFOR0VNRU5UX1JHR0IsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0NPTE9SX0ZJTFRFUl9BUlJBTkdFTUVOVF9HUkJHLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19DT0xPUl9GSUxURVJfQVJSQU5HRU1FTlRfR0JSRywKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fQ09MT1JfRklMVEVSX0FSUkFOR0VNRU5UX0JHR1IsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0NPTE9SX0ZJTFRFUl9BUlJBTkdFTUVOVF9SR0IsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19USU1FU1RBTVBfU09VUkNFX1VOS05PV04sCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1RJTUVTVEFNUF9TT1VSQ0VfUkVBTFRJTUUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19MRU5TX1NIQURJTkdfQVBQTElFRF9GQUxTRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fTEVOU19TSEFESU5HX0FQUExJRURfVFJVRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TSEFESU5HX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TSEFESU5HX01PREVfRkFTVCwKKworICAgIEFORFJPSURfU0hBRElOR19NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFX09GRiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFX1NJTVBMRSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFX0ZVTEwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19ISVNUT0dSQU1fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSElTVE9HUkFNX01PREVfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19TSEFSUE5FU1NfTUFQX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NIQVJQTkVTU19NQVBfTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSE9UX1BJWEVMX01BUF9NT0RFX09GRiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19IT1RfUElYRUxfTUFQX01PREVfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NDRU5FX0ZMSUNLRVJfTk9ORSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TQ0VORV9GTElDS0VSXzUwSFosCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfU0NFTkVfRkxJQ0tFUl82MEhaLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVBfTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9UT05FTUFQX01PREVfQ09OVFJBU1RfQ1VSVkUsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9UT05FTUFQX01PREVfSElHSF9RVUFMSVRZLAorCisgICAgQU5EUk9JRF9UT05FTUFQX01PREVfR0FNTUFfVkFMVUUsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9QUkVTRVRfQ1VSVkUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBQcmVzZXRDdXJ2ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1RPTkVNQVBfUFJFU0VUX0NVUlZFX1NSR0IsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfUFJFU0VUX0NVUlZFX1JFQzcwOSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRURfVFJBTlNNSVRfT0ZGLAorCisgICAgQU5EUk9JRF9MRURfVFJBTlNNSVRfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRURfQVZBSUxBQkxFX0xFRFNfVFJBTlNNSVQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsIDogdWludDMyX3QgeworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfTElNSVRFRCwKKworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfRlVMTCwKKworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfTEVHQUNZLAorCisgICAgQU5EUk9JRF9JTkZPX1NVUFBPUlRFRF9IQVJEV0FSRV9MRVZFTF8zLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jayA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX0xPQ0tfT0ZGLAorCisgICAgQU5EUk9JRF9CTEFDS19MRVZFTF9MT0NLX09OLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jRnJhbWVOdW1iZXIgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TWU5DX0ZSQU1FX05VTUJFUl9DT05WRVJHSU5HID0gLTEsCisKKyAgICBBTkRST0lEX1NZTkNfRlJBTUVfTlVNQkVSX1VOS05PV04gPSAtMiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TWU5DX01BWF9MQVRFTkNZX1BFUl9GUkFNRV9DT05UUk9MID0gMCwKKworICAgIEFORFJPSURfU1lOQ19NQVhfTEFURU5DWV9VTktOT1dOID0gLTEsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoQXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0RFUFRIX0FWQUlMQUJMRV9ERVBUSF9TVFJFQU1fQ09ORklHVVJBVElPTlNfT1VUUFVULAorCisgICAgQU5EUk9JRF9ERVBUSF9BVkFJTEFCTEVfREVQVEhfU1RSRUFNX0NPTkZJR1VSQVRJT05TX0lOUFVULAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aERlcHRoSXNFeGNsdXNpdmUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9ERVBUSF9ERVBUSF9JU19FWENMVVNJVkVfRkFMU0UsCisKKyAgICBBTkRST0lEX0RFUFRIX0RFUFRIX0lTX0VYQ0xVU0lWRV9UUlVFLAorCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhL1JFQURNRS5tZCBiL2NhbWVyYS9tZXRhZGF0YS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUyOTczZAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS9SRUFETUUubWQKQEAgLTAsMCArMSwxOSBAQAorIyMgQ2FtZXJhIE1ldGFkYXRhIEludGVyZmFjZSAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLm1ldGFkYXRhIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlLAorY2FtZXJhIHByb3ZpZGVyIGFuZCBjYW1lcmEgZGV2aWNlcyB0byByZXRyaWV2ZSBzdGF0aWMgY2FtZXJhIGluZm9ybWF0aW9uIGFuZCBpc3N1ZQorY2FtZXJhIGNhcHR1cmUgY29udHJvbHMuCisKK1NlZSB0aGUgZG9jcy5odG1sIGZvciBlYWNoIHZlcnNpb24gZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBlYWNoIG1ldGFkYXRhCitzcGVjaWZpY2F0aW9uLgorIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyMgQDMuMjoKKworSElETCB2ZXJzaW9uIG9mIHRoZSBiYXNlbGluZSBjYW1lcmEgbWV0YWRhdGEgaW50ZXJmYWNlLCByZXF1aXJlZCBieQorY2FtZXJhLnByb3ZpZGVyQDIuNCBhbmQgY2FtZXJhLmRldmljZUAzLjIgb253YXJkcy4KKworCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L0FuZHJvaWQuYnAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZhNzI2YQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvQW5kcm9pZC5icApAQCAtMCwwICsxLDc0IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIklDYW1lcmFQcm92aWRlci5oYWwiLAorICAgICAgICAiSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9DYW1lcmFQcm92aWRlckFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0NhbWVyYVByb3ZpZGVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JSHdDYW1lcmFQcm92aWRlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9Cbkh3Q2FtZXJhUHJvdmlkZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvQnBId0NhbWVyYVByb3ZpZGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0JzQ2FtZXJhUHJvdmlkZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUh3Q2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9Cbkh3Q2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9CcEh3Q2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9Cc0NhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaGFsIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMTViN2QKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oYWwKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDsKKworaW1wb3J0IElDYW1lcmFQcm92aWRlckNhbGxiYWNrOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA6OklDYW1lcmFEZXZpY2U7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjo6SUNhbWVyYURldmljZTsKKworLyoqCisgKiBDYW1lcmEgcHJvdmlkZXIgSEFMLCB3aGljaCBlbnVtZXJhdGVzIHRoZSBhdmFpbGFibGUgaW5kaXZpZHVhbCBjYW1lcmEgZGV2aWNlcworICoga25vd24gdG8gdGhlIHByb3ZpZGVyLCBhbmQgcHJvdmlkZXMgdXBkYXRlcyBhYm91dCBjaGFuZ2VzIHRvIGRldmljZSBzdGF0dXMsCisgKiBzdWNoIGFzIGNvbm5lY3Rpb24sIGRpc2Nvbm5lY3Rpb24sIG9yIHRvcmNoIG1vZGUgZW5hYmxlL2Rpc2FibGUuCisgKgorICogVGhlIHByb3ZpZGVyIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIGEgbGlzdCBvZiBjYW1lcmEgZGV2aWNlIHNlcnZpY2UKKyAqIG5hbWVzIHRoYXQgY2FuIHRoZW4gYmUgb3BlbmVkIHZpYSB0aGUgaGFyZHdhcmUgc2VydmljZSBtYW5hZ2VyLgorICoKKyAqIE11bHRpcGxlIGNhbWVyYSBwcm92aWRlciBIQUxzIG1heSBiZSBwcmVzZW50IGluIGEgc2luZ2xlIHN5c3RlbS4KKyAqIEZvciBkaXNjb3ZlcnksIHRoZSBzZXJ2aWNlIG5hbWVzLCBhbmQgcHJvY2VzcyBuYW1lcywgbXVzdCBiZSBvZiB0aGUgZm9ybQorICogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDxtYWpvcj4uPG1pbm9yPi88dHlwZT4vPGluc3RhbmNlPiIKKyAqIHdoZXJlCisgKiAgIC0gPG1ham9yPi88bWlub3I+IGlzIHRoZSBwcm92aWRlciBIQUwgSElETCB2ZXJzaW9uLAorICogICAtIDx0eXBlPiBpcyB0aGUgdHlwZSBvZiBkZXZpY2VzIHRoaXMgcHJvdmlkZXIga25vd3MgYWJvdXQsIHN1Y2ggYXMKKyAqICAgICAiaW50ZXJuYWwiLCAibGVnYWN5IiwgInVzYiIsIG9yICJyZW1vdGUiCisgKiAgIC0gPGluc3RhbmNlPiBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHN0YXJ0aW5nIGZyb20gMCB0byBkaXNhbWJpZ3VhdGUKKyAqICAgICBiZXR3ZWVuIG11bHRpcGxlIEhBTHMgb2YgdGhlIHNhbWUgdHlwZS4KKyAqCisgKiBUaGUgImxlZ2FjeSIgdHlwZSBpcyBvbmx5IHVzZWQgZm9yIHBhc3N0aHJvdWdoIGxlZ2FjeSBIQUwgbW9kZSwgYW5kIG11c3QKKyAqIG5vdCBiZSB1c2VkIGJ5IGEgc3RhbmRhbG9uZSBiaW5kZXJpemVkIEhBTC4KKyAqCisgKiBUaGUgZGV2aWNlIGluc3RhbmNlIG5hbWVzIGVudW1lcmF0ZWQgYnkgdGhlIHByb3ZpZGVyIG11c3QgYmUgb2YgdGhlIGZvcm0KKyAqICJkZXZpY2VAPG1ham9yPi48bWlub3I+Lzx0eXBlPi88aWQ+IiB3aGVyZQorICogPG1ham9yPi88bWlub3I+IGlzIHRoZSBISURMIHZlcnNpb24gb2YgdGhlIGludGVyZmFjZS4gPGlkPiBpcyBlaXRoZXIgYSBzbWFsbAorICogaW5jcmVtZW50aW5nIGludGVnZXIgZm9yICJpbnRlcm5hbCIgZGV2aWNlIHR5cGVzLCB3aXRoIDAgYmVpbmcgdGhlIG1haW4KKyAqIGJhY2stZmFjaW5nIGNhbWVyYSBhbmQgMSBiZWluZyB0aGUgbWFpbiBmcm9udC1mYWNpbmcgY2FtZXJhLCBpZiB0aGV5IGV4aXN0LgorICogT3IsIGZvciBleHRlcm5hbCBkZXZpY2VzIHN1Y2ggYXMgdHlwZSAidXNiIiwgYSB1bmlxdWUgc2VyaWFsIG51bWJlciB0aGF0IGNhbgorICogYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgZGV2aWNlIHJlbGlhYmx5IHdoZW4gaXQgaXMgZGlzY29ubmVjdGVkIGFuZAorICogcmVjb25uZWN0ZWQuIE11bHRpcGxlIHByb3ZpZGVycyBtYXkgbm90IGVudW1lcmF0ZSB0aGUgc2FtZSBkZXZpY2UgSUQuCisgKgorICovCitpbnRlcmZhY2UgSUNhbWVyYVByb3ZpZGVyIHsKKworICAgIC8qKgorICAgICAqIHNldENhbGxiYWNrOgorICAgICAqCisgICAgICogUHJvdmlkZSBhIGNhbGxiYWNrIGludGVyZmFjZSB0byB0aGUgSEFMIHByb3ZpZGVyIHRvIGluZm9ybSBmcmFtZXdvcmsgb2YKKyAgICAgKiBhc3luY2hyb25vdXMgY2FtZXJhIGV2ZW50cy4gVGhlIGZyYW1ld29yayBtdXN0IGNhbGwgdGhpcyBmdW5jdGlvbiBvbmNlCisgICAgICogZHVyaW5nIGNhbWVyYSBzZXJ2aWNlIHN0YXJ0dXAsIGJlZm9yZSBhbnkgb3RoZXIgY2FsbHMgdG8gdGhlIHByb3ZpZGVyCisgICAgICogKG5vdGUgdGhhdCBpbiBjYXNlIHRoZSBjYW1lcmEgc2VydmljZSByZXN0YXJ0cywgdGhpcyBtZXRob2QgbXVzdCBiZQorICAgICAqIGludm9rZWQgYWdhaW4gZHVyaW5nIGl0cyBzdGFydHVwKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjaworICAgICAqICAgICBBIG5vbi1udWxsIGNhbGxiYWNrIGludGVyZmFjZSB0byBpbnZva2Ugd2hlbiBjYW1lcmEgZXZlbnRzIG9jY3VyLgorICAgICAqIEByZXR1cm4gc3RhdHVzCisgICAgICogICAgIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gc3VjY2VzcworICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB0aGUgY2FsbGJhY2tzCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FsbGJhY2sgYXJndW1lbnQgaXMgaW52YWxpZCAoZm9yIGV4YW1wbGUsIG51bGwpLgorICAgICAqCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBnZXRWZW5kb3JUYWdzOgorICAgICAqCisgICAgICogUmV0cmlldmUgYWxsIHZlbmRvciB0YWdzIHN1cHBvcnRlZCBieSBkZXZpY2VzIGRpc2NvdmVyYWJsZSB0aHJvdWdoIHRoaXMKKyAgICAgKiBwcm92aWRlci4gVGhlIHRhZ3MgYXJlIGdyb3VwZWQgaW50byBzZWN0aW9ucy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzCisgICAgICogICAgIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gc3VjY2VzcworICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB0aGUgY2FsbGJhY2tzCisgICAgICogQHJldHVybiBzZWN0aW9ucworICAgICAqICAgICBUaGUgc3VwcG9ydGVkIHZlbmRvciB0YWcgc2VjdGlvbnM7IGVtcHR5IGlmIHRoZXJlIGFyZSBubyBzdXBwb3J0ZWQKKyAgICAgKiAgICAgdmVuZG9yIHRhZ3MsIG9yIHN0YXR1cyBpcyBub3QgT0suCisgICAgICoKKyAgICAgKi8KKyAgICBnZXRWZW5kb3JUYWdzKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8VmVuZG9yVGFnU2VjdGlvbj4gc2VjdGlvbnMpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FtZXJhRGV2aWNlTGlzdDoKKyAgICAgKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgaW50ZXJuYWwgY2FtZXJhIGRldmljZSBpbnRlcmZhY2VzIGtub3duIHRvIHRoaXMKKyAgICAgKiBjYW1lcmEgcHJvdmlkZXIuIFRoZXNlIGRldmljZXMgY2FuIHRoZW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBoYXJkd2FyZQorICAgICAqIHNlcnZpY2UgbWFuYWdlci4KKyAgICAgKgorICAgICAqIEV4dGVybmFsIGNhbWVyYSBkZXZpY2VzIChjYW1lcmEgZmFjaW5nIEVYVEVSTkFMKSBtdXN0IGJlIHJlcG9ydGVkIHRocm91Z2gKKyAgICAgKiB0aGUgZGV2aWNlIHN0YXR1cyBjaGFuZ2UgY2FsbGJhY2ssIG5vdCBpbiB0aGlzIGxpc3QuIE9ubHkgZGV2aWNlcyB3aXRoCisgICAgICogZmFjaW5nIEJBQ0sgb3IgRlJPTlQgbXVzdCBiZSBsaXN0ZWQgaGVyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNmdWwgZ2VuZXJhdGlvbiBvZiBjYW1lcmEgSUQgbGlzdAorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEEgY2FtZXJhIElEIGxpc3QgY2Fubm90IGJlIGNyZWF0ZWQuIFRoaXMgbWF5IGJlIGR1ZSB0bworICAgICAqICAgICAgICAgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUgdGhlIGNhbWVyYSBzdWJzeXN0ZW0sIGZvciBleGFtcGxlLgorICAgICAqIEByZXR1cm4gY2FtZXJhRGV2aWNlU2VydmljZU5hbWVzIFRoZSB2ZWN0b3Igb2YgaW50ZXJuYWwgY2FtZXJhIGRldmljZQorICAgICAqICAgICBuYW1lcyBrbm93biB0byB0aGlzIHByb3ZpZGVyLgorICAgICAqLworICAgIGdldENhbWVyYUlkTGlzdCgpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzxzdHJpbmc+IGNhbWVyYURldmljZU5hbWVzKTsKKworICAgIC8qKgorICAgICAqIGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkOgorICAgICAqCisgICAgICogUmV0dXJucyBpZiB0aGUgY2FtZXJhIGRldmljZXMga25vd24gdG8gdGhpcyBjYW1lcmEgcHJvdmlkZXIgc3VwcG9ydAorICAgICAqIHNldFRvcmNoTW9kZSBBUEkgb3Igbm90LiBJZiB0aGUgcHJvdmlkZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXRUb3JjaE1vZGUKKyAgICAgKiBBUEksIGNhbGxpbmcgdG8gc2V0VG9yY2hNb2RlIHdpbGwgcmV0dXJuIE1FVEhPRF9OT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogTm90ZSB0aGF0IG5vdCBldmVyeSBjYW1lcmEgZGV2aWNlIGhhcyBhIGZsYXNoIHVuaXQsIHNvIGV2ZW4gdGhpcyBBUEkKKyAgICAgKiByZXR1cm5zIHRydWUsIHNldFRvcmNoTW9kZSBjYWxsIG1pZ2h0IHN0aWxsIGZhaWwgZHVlIHRvIHRoZSBjYW1lcmEgZGV2aWNlCisgICAgICogZG9lcyBub3QgaGF2ZSBhIGZsYXNoIHVuaXQuIEluIHN1Y2ggY2FzZSwgdGhlIHJldHVybmVkIHN0YXR1cyB3aWxsIGJlCisgICAgICogT1BFUkFUSU9OX05PVF9TVVBQT1JURUQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2VzZnVsIGNhbGwKKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUb3JjaCBBUEkgc3VwcG9ydCBjYW5ub3QgYmUgcXVlcmllZC4gVGhpcyBtYXkgYmUgZHVlIHRvCisgICAgICogICAgICAgICBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZSB0aGUgY2FtZXJhIHN1YnN5c3RlbSwgZm9yIGV4YW1wbGUuCisgICAgICogQHJldHVybiBzdXBwb3J0IFdoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2VzIGtub3duIHRvIHRoaXMgcHJvdmlkZXIKKyAgICAgKiAgICAgc3VwcG9ydHMgc2V0VG9yY2hNb2RlIEFQSSBvciBub3QuCisgICAgICoKKyAgICAgKi8KKyAgICBpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgYm9vbCBzdXBwb3J0KTsKKworICAgIC8qKgorICAgICAqIGdldENhbWVyYURldmljZUludGVyZmFjZV9WTl94OgorICAgICAqCisgICAgICogUmV0dXJuIGEgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQE4ueC9JQ2FtZXJhRGV2aWNlIGludGVyZmFjZSBmb3IKKyAgICAgKiB0aGUgcmVxdWVzdGVkIGRldmljZSBuYW1lLiBUaGlzIGRvZXMgbm90IHBvd2VyIG9uIHRoZSBjYW1lcmEgZGV2aWNlLCBidXQKKyAgICAgKiBzaW1wbHkgYWNxdWlyZXMgdGhlIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgdGhlIGRldmljZSBzdGF0aWMgaW5mb3JtYXRpb24sCisgICAgICogb3IgdG8gYWRkaXRpb25hbGx5IG9wZW4gdGhlIGRldmljZSBmb3IgYWN0aXZlIHVzZS4KKyAgICAgKgorICAgICAqIEEgc2VwYXJhdGUgbWV0aG9kIGlzIHJlcXVpcmVkIGZvciBlYWNoIG1ham9yIHJldmlzaW9uIG9mIHRoZSBjYW1lcmEgZGV2aWNlCisgICAgICogSEFMIGludGVyZmFjZSwgc2luY2UgdGhleSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBlYWNoIG90aGVyLgorICAgICAqCisgICAgICogVmFsaWQgZGV2aWNlIG5hbWVzIGZvciB0aGlzIHByb3ZpZGVyIGNhbiBiZSBvYnRhaW5lZCB2aWEgZWl0aGVyCisgICAgICogZ2V0Q2FtZXJhSWRMaXN0KCksIG9yIHZpYSBhdmFpbGFiaWxpdHkgY2FsbGJhY2tzIGZyb20KKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKCkuCisgICAgICoKKyAgICAgKiBUaGUgcmV0dXJuZWQgaW50ZXJmYWNlIG11c3QgYmUgb2YgdGhlIGhpZ2hlc3QgZGVmaW5lZCBtaW5vciB2ZXJzaW9uIGZvcgorICAgICAqIHRoZSBtYWpvciB2ZXJzaW9uOyBpdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgSEFMIGNsaWVudCB0byBlbnN1cmUKKyAgICAgKiB0aGV5IGRvIG5vdCB1c2UgbWV0aG9kcy9ldGMgdGhhdCBhcmUgbm90IHZhbGlkIGZvciB0aGUgYWN0dWFsIG1pbm9yCisgICAgICogdmVyc2lvbiBvZiB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbWVyYURldmljZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGRldmljZSB0byBnZXQgYW4gaW50ZXJmYWNlIHRvLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNmdWwgZ2VuZXJhdGlvbiBvZiBjYW1lcmEgSUQgbGlzdAorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhpcyBkZXZpY2UgbmFtZSBpcyB1bmtub3duLCBvciBoYXMgYmVlbiBkaXNjb25uZWN0ZWQKKyAgICAgKiAgICAgT1BFUkFUSU9OX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGUgc3BlY2lmaWVkIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbWFqb3IgdmVyc2lvbiBvZiB0aGUKKyAgICAgKiAgICAgICAgIEhBTCBpbnRlcmZhY2UuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQSBjYW1lcmEgaW50ZXJmYWNlIGNhbm5vdCBiZSByZXR1cm5lZCBkdWUgdG8gYW4gdW5leHBlY3RlZAorICAgICAqICAgICAgICAgaW50ZXJuYWwgZXJyb3IuCisgICAgICogQHJldHVybiBkZXZpY2UgVGhlIGludGVmYWNlIHRvIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgbnVsbCBpbiBjYXNlIG9mCisgICAgICogICAgIGVycm9yLgorICAgICAqLworICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KHN0cmluZyBjYW1lcmFEZXZpY2VOYW1lKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA6OklDYW1lcmFEZXZpY2UgZGV2aWNlKTsKKyAgICBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeChzdHJpbmcgY2FtZXJhRGV2aWNlTmFtZSkgZ2VuZXJhdGVzCisgICAgICAgICAgICAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlIGRldmljZSk7CisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlckNhbGxiYWNrLmhhbCBiL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzZGQzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlckNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQ7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYWxsYmFjayBmdW5jdGlvbnMgZm9yIGEgY2FtZXJhIHByb3ZpZGVyIEhBTCB0byB1c2UgdG8gaW5mb3JtIHRoZSBjYW1lcmEKKyAqIHNlcnZpY2Ugb2YgY2hhbmdlcyB0byB0aGUgY2FtZXJhIHN1YnN5c3RlbS4KKyAqLworaW50ZXJmYWNlIElDYW1lcmFQcm92aWRlckNhbGxiYWNrIHsKKworICAgIC8qKgorICAgICAqIGNhbWVyYURldmljZVN0YXR1c0NoYW5nZToKKyAgICAgKgorICAgICAqIENhbGxiYWNrIHRvIHRoZSBjYW1lcmEgc2VydmljZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBzdGF0ZSBvZiBhIHNwZWNpZmljCisgICAgICogY2FtZXJhIGRldmljZSBoYXMgY2hhbmdlZC4KKyAgICAgKgorICAgICAqIE9uIGNhbWVyYSBzZXJ2aWNlIHN0YXJ0dXAsIHdoZW4gSUNhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjayBpcyBpbnZva2VkLAorICAgICAqIHRoZSBjYW1lcmEgc2VydmljZSBtdXN0IGFzc3VtZSB0aGF0IGFsbCBpbnRlcm5hbCBjYW1lcmEgZGV2aWNlcyBhcmUgaW4KKyAgICAgKiB0aGUgQ0FNRVJBX0RFVklDRV9TVEFUVVNfUFJFU0VOVCBzdGF0ZS4KKyAgICAgKgorICAgICAqIFRoZSBwcm92aWRlciBtdXN0IGNhbGwgdGhpcyBtZXRob2QgdG8gaW5mb3JtIHRoZSBjYW1lcmEgc2VydmljZSBvZiBhbnkKKyAgICAgKiBpbml0aWFsbHkgTk9UX1BSRVNFTlQgZGV2aWNlcywgYW5kIG9mIGFueSBleHRlcm5hbCBjYW1lcmEgZGV2aWNlcyB0aGF0CisgICAgICogYXJlIGFscmVhZHkgcHJlc2VudCwgYXMgc29vbiBhcyB0aGUgY2FsbGJhY2tzIGFyZSBhdmFpbGFibGUgdGhyb3VnaAorICAgICAqIHNldENhbGxiYWNrLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbWVyYURldmljZVNlcnZpY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSBjYW1lcmEgZGV2aWNlIHRoYXQgaGFzIGEKKyAgICAgKiAgICAgbmV3IHN0YXR1cy4KKyAgICAgKiBAcGFyYW0gbmV3U3RhdHVzIFRoZSBuZXcgc3RhdHVzIHRoYXQgZGV2aWNlIGlzIGluLgorICAgICAqCisgICAgICovCisgICAgY2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKHN0cmluZyBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgQ2FtZXJhRGV2aWNlU3RhdHVzIG5ld1N0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiB0b3JjaE1vZGVTdGF0dXNDaGFuZ2U6CisgICAgICoKKyAgICAgKiBDYWxsYmFjayB0byB0aGUgY2FtZXJhIHNlcnZpY2UgdG8gaW5kaWNhdGUgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIHRvcmNoCisgICAgICogbW9kZSBvZiB0aGUgZmxhc2ggdW5pdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBjYW1lcmEgZGV2aWNlIGhhcworICAgICAqIGNoYW5nZWQuIEF0IHByb3ZpZGVyIHJlZ2lzdHJhdGlvbiB0aW1lLCB0aGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBhc3N1bWUKKyAgICAgKiB0aGUgdG9yY2ggbW9kZXMgYXJlIGluIHRoZSBUT1JDSF9NT0RFX1NUQVRVU19BVkFJTEFCTEVfT0ZGIHN0YXRlIGlmCisgICAgICogYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSBpcyByZXBvcnRlZCBhcyB0cnVlIHZpYSB0aGUKKyAgICAgKiBJQ2FtZXJhRGV2aWNlOjpnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYW1lcmFEZXZpY2VTZXJ2aWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgY2FtZXJhIGRldmljZSB0aGF0IGhhcyBhCisgICAgICogICAgIG5ldyBzdGF0dXMuCisgICAgICogQHBhcmFtIG5ld1N0YXR1cyBUaGUgbmV3IHN0YXR1cyB0aGF0IGRldmljZSBpcyBpbi4KKyAgICAgKgorICAgICAqLworICAgIHRvcmNoTW9kZVN0YXR1c0NoYW5nZShzdHJpbmcgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgIFRvcmNoTW9kZVN0YXR1cyBuZXdTdGF0dXMpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODk3ZmM3Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0OSBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkNhbWVyYVByb3ZpZGVyLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiY2FtZXJhLmRldmljZUAxLjAtaW1wbCIsCisgICAgICAgICJjYW1lcmEuZGV2aWNlQDMuMi1pbXBsIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIgorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0KK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorICAgIGNvbXBpbGVfbXVsdGlsaWI6ICIzMiIsCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtc2VydmljZS5yYyJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKwkibGliYmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuY3BwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWY3YmRkCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtUHJvdmlkZXJAMi40LWltcGwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkNhbWVyYVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlXzFfMC5oIgorI2luY2x1ZGUgIkNhbWVyYURldmljZV8zXzIuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBwcm92aWRlciB7CituYW1lc3BhY2UgVjJfNCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCituYW1lc3BhY2UgeworY29uc3QgY2hhciAqa0xlZ2FjeVByb3ZpZGVyTmFtZSA9ICJsZWdhY3kvMCI7CisvLyAiZGV2aWNlQDx2ZXJzaW9uPi9sZWdhY3kvPGlkPiIKK2NvbnN0IHN0ZDo6cmVnZXgga0RldmljZU5hbWVSRSgiZGV2aWNlQChbMC05XStcXC5bMC05XSspL2xlZ2FjeS8oLispIik7Citjb25zdCBjaGFyICprSEFMM18yID0gIjMuMiI7Citjb25zdCBjaGFyICprSEFMMV8wID0gIjEuMCI7Citjb25zdCBpbnQga01heENhbWVyYURldmljZU5hbWVMZW4gPSAxMjg7Citjb25zdCBpbnQga01heENhbWVyYUlkTGVuID0gMTY7CisKK2Jvb2wgbWF0Y2hEZXZpY2VOYW1lKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lLCBzdGQ6OnN0cmluZyogZGV2aWNlVmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKiBjYW1lcmFJZCkgeworICAgIHN0ZDo6c3RyaW5nIGRldmljZU5hbWVTdGQoZGV2aWNlTmFtZS5jX3N0cigpKTsKKyAgICBzdGQ6OnNtYXRjaCBzbTsKKyAgICBpZiAoc3RkOjpyZWdleF9tYXRjaChkZXZpY2VOYW1lU3RkLCBzbSwga0RldmljZU5hbWVSRSkpIHsKKyAgICAgICAgaWYgKGRldmljZVZlcnNpb24gIT0gbnVsbHB0cikgeworICAgICAgICAgICAgKmRldmljZVZlcnNpb24gPSBzbVsxXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2FtZXJhSWQgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgKmNhbWVyYUlkID0gc21bMl07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpDYW1lcmFNZXRhZGF0YVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOworCisvKioKKyAqIHN0YXRpYyBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMgZnJvbSBIQUwgdG8gaW5zdGFuY2UKKyAqLwordm9pZCBDYW1lcmFQcm92aWRlcjo6c0NhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzKiBjYWxsYmFja3MsCisgICAgICAgIGludCBjYW1lcmFfaWQsCisgICAgICAgIGludCBuZXdfc3RhdHVzKSB7CisgICAgQ2FtZXJhUHJvdmlkZXIqIGNwID0gY29uc3RfY2FzdDxDYW1lcmFQcm92aWRlcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQ2FtZXJhUHJvdmlkZXIqPihjYWxsYmFja3MpKTsKKworICAgIGlmIChjcCA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FsbGJhY2sgb3BzIGlzIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGNwLT5tQ2JMb2NrKTsKKyAgICBjaGFyIGNhbWVyYUlkW2tNYXhDYW1lcmFJZExlbl07CisgICAgc25wcmludGYoY2FtZXJhSWQsIHNpemVvZihjYW1lcmFJZCksICIlZCIsIGNhbWVyYV9pZCk7CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWRTdHIoY2FtZXJhSWQpOworICAgIGNwLT5tQ2FtZXJhU3RhdHVzTWFwW2NhbWVyYUlkU3RyXSA9IChjYW1lcmFfZGV2aWNlX3N0YXR1c190KSBuZXdfc3RhdHVzOworICAgIGlmIChjcC0+bUNhbGxiYWNrcyAhPSBudWxscHRyKSB7CisgICAgICAgIENhbWVyYURldmljZVN0YXR1cyBzdGF0dXMgPSAoQ2FtZXJhRGV2aWNlU3RhdHVzKSBuZXdfc3RhdHVzOworICAgICAgICBmb3IgKGF1dG8gY29uc3QmIGRldmljZU5hbWVQYWlyIDogY3AtPm1DYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICAgICAgaWYgKGNhbWVyYUlkU3RyLmNvbXBhcmUoZGV2aWNlTmFtZVBhaXIuZmlyc3QpID09IDApIHsKKyAgICAgICAgICAgICAgICBjcC0+bUNhbGxiYWNrcy0+Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKAorICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlTmFtZVBhaXIuc2Vjb25kLCBzdGF0dXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCit2b2lkIENhbWVyYVByb3ZpZGVyOjpzVG9yY2hNb2RlU3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3MqIGNhbGxiYWNrcywKKyAgICAgICAgY29uc3QgY2hhciogY2FtZXJhX2lkLAorICAgICAgICBpbnQgbmV3X3N0YXR1cykgeworICAgIENhbWVyYVByb3ZpZGVyKiBjcCA9IGNvbnN0X2Nhc3Q8Q2FtZXJhUHJvdmlkZXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IENhbWVyYVByb3ZpZGVyKj4oY2FsbGJhY2tzKSk7CisKKyAgICBpZiAoY3AgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbGxiYWNrIG9wcyBpcyBudWxsIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE11dGV4OjpBdXRvbG9jayBfbChjcC0+bUNiTG9jayk7CisgICAgaWYgKGNwLT5tQ2FsbGJhY2tzICE9IG51bGxwdHIpIHsKKyAgICAgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWRTdHIoY2FtZXJhX2lkKTsKKyAgICAgICAgVG9yY2hNb2RlU3RhdHVzIHN0YXR1cyA9IChUb3JjaE1vZGVTdGF0dXMpIG5ld19zdGF0dXM7CisgICAgICAgIGZvciAoYXV0byBjb25zdCYgZGV2aWNlTmFtZVBhaXIgOiBjcC0+bUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgICAgICBpZiAoY2FtZXJhSWRTdHIuY29tcGFyZShkZXZpY2VOYW1lUGFpci5maXJzdCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGNwLT5tQ2FsbGJhY2tzLT50b3JjaE1vZGVTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VOYW1lUGFpci5zZWNvbmQsIHN0YXR1cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK1N0YXR1cyBDYW1lcmFQcm92aWRlcjo6Z2V0SGlkbFN0YXR1cyhpbnQgc3RhdHVzKSB7CisgICAgc3dpdGNoIChzdGF0dXMpIHsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gU3RhdHVzOjpPSzsKKyAgICAgICAgY2FzZSAtRU5PREVWOiByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgY2FzZSAtRUlOVkFMOiByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIiVzOiB1bmtub3duIEhBTCBzdGF0dXMgY29kZSAlZCIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KK30KKworc3RkOjpzdHJpbmcgQ2FtZXJhUHJvdmlkZXI6OmdldExlZ2FjeUNhbWVyYUlkKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lKSB7CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQ7CisgICAgbWF0Y2hEZXZpY2VOYW1lKGRldmljZU5hbWUsIG51bGxwdHIsICZjYW1lcmFJZCk7CisgICAgcmV0dXJuIGNhbWVyYUlkOworfQorCitpbnQgQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZVZlcnNpb24oY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpIHsKKyAgICBzdGQ6OnN0cmluZyBkZXZpY2VWZXJzaW9uOworICAgIGJvb2wgbWF0Y2ggPSBtYXRjaERldmljZU5hbWUoZGV2aWNlTmFtZSwgJmRldmljZVZlcnNpb24sIG51bGxwdHIpOworICAgIGlmICghbWF0Y2gpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoZGV2aWNlVmVyc2lvbiA9PSBrSEFMM18yKSB7CisgICAgICAgIC8vIG1heWJlIHN3aXRjaGVkIHRvIDMuNCBvciBkZWZpbmUgdGhlIGhpZGwgdmVyc2lvbiBlbnVtIGxhdGVyCisgICAgICAgIHJldHVybiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMjsKKyAgICB9IGVsc2UgaWYgKGRldmljZVZlcnNpb24gPT0ga0hBTDFfMCkgeworICAgICAgICByZXR1cm4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzA7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGQ6OnN0cmluZyBDYW1lcmFQcm92aWRlcjo6Z2V0SGlkbERldmljZU5hbWUoCisgICAgICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkLCBpbnQgZGV2aWNlVmVyc2lvbikgeworICAgIC8vIE1heWJlIGNvbnNpZGVyIGNyZWF0ZSBhIHZlcnNpb24gY2hlY2sgbWV0aG9kIGFuZCBTb3J0ZWRWZWMgdG8gc3BlZWQgdXA/CisgICAgaWYgKGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzAgJiYKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIgJiYKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzMgJiYKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gIT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzQgKSB7CisgICAgICAgIHJldHVybiBoaWRsX3N0cmluZygiIik7CisgICAgfQorICAgIGNvbnN0IGNoYXIqIHZlcnNpb25TdHIgPSAoZGV2aWNlVmVyc2lvbiA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgPyBrSEFMMV8wIDoga0hBTDNfMjsKKyAgICBjaGFyIGRldmljZU5hbWVba01heENhbWVyYURldmljZU5hbWVMZW5dOworICAgIHNucHJpbnRmKGRldmljZU5hbWUsIHNpemVvZihkZXZpY2VOYW1lKSwgImRldmljZUAlcy9sZWdhY3kvJXMiLAorICAgICAgICAgICAgdmVyc2lvblN0ciwgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgcmV0dXJuIGRldmljZU5hbWU7Cit9CisKK0NhbWVyYVByb3ZpZGVyOjpDYW1lcmFQcm92aWRlcigpIDoKKyAgICAgICAgY2FtZXJhX21vZHVsZV9jYWxsYmFja3NfdCh7c0NhbWVyYURldmljZVN0YXR1c0NoYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc1RvcmNoTW9kZVN0YXR1c0NoYW5nZX0pIHsKKyAgICBtSW5pdEZhaWxlZCA9IGluaXRpYWxpemUoKTsKK30KKworQ2FtZXJhUHJvdmlkZXI6On5DYW1lcmFQcm92aWRlcigpIHt9CisKK2Jvb2wgQ2FtZXJhUHJvdmlkZXI6OmluaXRpYWxpemUoKSB7CisgICAgY2FtZXJhX21vZHVsZV90ICpyYXdNb2R1bGU7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoQ0FNRVJBX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIChjb25zdCBod19tb2R1bGVfdCAqKikmcmF3TW9kdWxlKTsKKyAgICBpZiAoZXJyIDwgMCkgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGxvYWQgY2FtZXJhIEhBTCBtb2R1bGU6ICVkICglcykiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgbU1vZHVsZSA9IG5ldyBDYW1lcmFNb2R1bGUocmF3TW9kdWxlKTsKKyAgICBlcnIgPSBtTW9kdWxlLT5pbml0KCk7CisgICAgaWYgKGVyciAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGluaXRpYWxpemUgY2FtZXJhIEhBTCBtb2R1bGU6ICVkICglcykiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTsKKyAgICAgICAgbU1vZHVsZS5jbGVhcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQUxPR0koIkxvYWRlZCBcIiVzXCIgY2FtZXJhIG1vZHVsZSIsIG1Nb2R1bGUtPmdldE1vZHVsZU5hbWUoKSk7CisKKyAgICAvLyBTZXR1cCB2ZW5kb3IgdGFncyBoZXJlIHNvIEhBTCBjYW4gc2V0dXAgdmVuZG9yIGtleXMgaW4gY2FtZXJhIGNoYXJhY3RlcmlzdGljcworICAgIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmNsZWFyR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcigpOworICAgIGlmICghc2V0VXBWZW5kb3JUYWdzKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBWZW5kb3IgdGFnIHNldHVwIGZhaWxlZCwgd2lsbCBub3QgYmUgYXZhaWxhYmxlLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgfQorCisgICAgLy8gU2V0dXAgY2FsbGJhY2sgbm93IGJlY2F1c2Ugd2UgYXJlIGdvaW5nIHRvIHRyeSBvcGVuTGVnYWN5IG5leHQKKyAgICBlcnIgPSBtTW9kdWxlLT5zZXRDYWxsYmFja3ModGhpcyk7CisgICAgaWYgKGVyciAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IHNldCBjYW1lcmEgbW9kdWxlIGNhbGxiYWNrOiAlZCAoJXMpIiwgZXJyLCBzdHJlcnJvcigtZXJyKSk7CisgICAgICAgIG1Nb2R1bGUuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgbU51bWJlck9mTGVnYWN5Q2FtZXJhcyA9IG1Nb2R1bGUtPmdldE51bWJlck9mQ2FtZXJhcygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbU51bWJlck9mTGVnYWN5Q2FtZXJhczsgaSsrKSB7CisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICBhdXRvIHJjID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhpLCAmaW5mbyk7CisgICAgICAgIGlmIChyYyAhPSBOT19FUlJPUikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmEgaW5mbyBxdWVyeSBmYWlsZWQhIiwgX19mdW5jX18pOworICAgICAgICAgICAgbU1vZHVsZS5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2hlY2tDYW1lcmFWZXJzaW9uKGksIGluZm8pICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENhbWVyYSB2ZXJzaW9uIGNoZWNrIGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICBtTW9kdWxlLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgY2FtZXJhSWRba01heENhbWVyYUlkTGVuXTsKKyAgICAgICAgc25wcmludGYoY2FtZXJhSWQsIHNpemVvZihjYW1lcmFJZCksICIlZCIsIGkpOworICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZFN0cihjYW1lcmFJZCk7CisgICAgICAgIG1DYW1lcmFTdGF0dXNNYXBbY2FtZXJhSWRTdHJdID0gQ0FNRVJBX0RFVklDRV9TVEFUVVNfUFJFU0VOVDsKKyAgICAgICAgbUNhbWVyYUlkcy5hZGQoY2FtZXJhSWRTdHIpOworCisgICAgICAgIC8vIGluaXRpYWxpemUgbUNhbWVyYURldmljZU5hbWVzIGFuZCBtT3BlbkxlZ2FjeVN1cHBvcnRlZAorICAgICAgICBtT3BlbkxlZ2FjeVN1cHBvcnRlZFtjYW1lcmFJZFN0cl0gPSBmYWxzZTsKKyAgICAgICAgaW50IGRldmljZVZlcnNpb24gPSBtTW9kdWxlLT5nZXREZXZpY2VWZXJzaW9uKGkpOworICAgICAgICBtQ2FtZXJhRGV2aWNlTmFtZXMuYWRkKAorICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV9wYWlyKGNhbWVyYUlkU3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEhpZGxEZXZpY2VOYW1lKGNhbWVyYUlkU3RyLCBkZXZpY2VWZXJzaW9uKSkpOworICAgICAgICBpZiAoZGV2aWNlVmVyc2lvbiA+PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiAmJgorICAgICAgICAgICAgICAgIG1Nb2R1bGUtPmlzT3BlbkxlZ2FjeURlZmluZWQoKSkgeworICAgICAgICAgICAgLy8gdHJ5IG9wZW5fbGVnYWN5IHRvIHNlZSBpZiBpdCBhY3R1YWxseSB3b3JrcworICAgICAgICAgICAgc3RydWN0IGh3X2RldmljZV90KiBoYWxEZXYgPSBudWxscHRyOworICAgICAgICAgICAgaW50IHJldCA9IG1Nb2R1bGUtPm9wZW5MZWdhY3koY2FtZXJhSWQsIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wLCAmaGFsRGV2KTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIG1PcGVuTGVnYWN5U3VwcG9ydGVkW2NhbWVyYUlkU3RyXSA9IHRydWU7CisgICAgICAgICAgICAgICAgaGFsRGV2LT5jbG9zZShoYWxEZXYpOworICAgICAgICAgICAgICAgIG1DYW1lcmFEZXZpY2VOYW1lcy5hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfcGFpcihjYW1lcmFJZFN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SGlkbERldmljZU5hbWUoY2FtZXJhSWRTdHIsIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgPT0gLUVCVVNZIHx8IHJldCA9PSAtRVVTRVJTKSB7CisgICAgICAgICAgICAgICAgLy8gTG9va3MgbGlrZSB0aGlzIHByb3ZpZGVyIGluc3RhbmNlIGlzIG5vdCBpbml0aWFsaXplZCBkdXJpbmcKKyAgICAgICAgICAgICAgICAvLyBzeXN0ZW0gc3RhcnR1cCBhbmQgdGhlcmUgYXJlIG90aGVyIGNhbWVyYSB1c2VycyBhbHJlYWR5LgorICAgICAgICAgICAgICAgIC8vIE5vdCBhIGdvb2Qgc2lnbiBidXQgbm90IGZhdGFsLgorICAgICAgICAgICAgICAgIEFMT0dXKCIlczogb3Blbl9sZWdhY3kgdHJ5IGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOyAvLyBtSW5pdEZhaWxlZAorfQorCisvKioKKyAqIENoZWNrIHRoYXQgdGhlIGRldmljZSBIQUwgdmVyc2lvbiBpcyBzdGlsbCBpbiBzdXBwb3J0ZWQuCisgKi8KK2ludCBDYW1lcmFQcm92aWRlcjo6Y2hlY2tDYW1lcmFWZXJzaW9uKGludCBpZCwgY2FtZXJhX2luZm8gaW5mbykgeworICAgIGlmIChtTW9kdWxlID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIE5PX0lOSVQ7CisgICAgfQorCisgICAgLy8gZGV2aWNlX3ZlcnNpb24gdW5kZWZpbmVkIGluIENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wLAorICAgIC8vIEFsbCBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzFfMCBkZXZpY2VzIGFyZSBiYWNrd2FyZC1jb21wYXRpYmxlCisgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMCkgeworICAgICAgICAvLyBWZXJpZnkgdGhlIGRldmljZSB2ZXJzaW9uIGlzIGluIHRoZSBzdXBwb3J0ZWQgcmFuZ2UKKyAgICAgICAgc3dpdGNoIChpbmZvLmRldmljZV92ZXJzaW9uKSB7CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wOgorICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMjoKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzM6CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM180OgorICAgICAgICAgICAgICAgIC8vIGluIHN1cHBvcnQKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8yXzA6CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMl8xOgorICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMDoKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzE6CisgICAgICAgICAgICAgICAgLy8gbm8gbG9uZ2VyIHN1cHBvcnRlZAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IERldmljZSAlZCBoYXMgSEFMIHZlcnNpb24gJXgsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBpZCwgaW5mby5kZXZpY2VfdmVyc2lvbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PX0lOSVQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gT0s7Cit9CisKK2Jvb2wgQ2FtZXJhUHJvdmlkZXI6OnNldFVwVmVuZG9yVGFncygpIHsKKyAgICBBVFJBQ0VfQ0FMTCgpOworICAgIHZlbmRvcl90YWdfb3BzX3Qgdk9wcyA9IHZlbmRvcl90YWdfb3BzX3QoKTsKKworICAgIC8vIENoZWNrIGlmIHZlbmRvciBvcGVyYXRpb25zIGhhdmUgYmVlbiBpbXBsZW1lbnRlZAorICAgIGlmICghbU1vZHVsZS0+aXNWZW5kb3JUYWdEZWZpbmVkKCkpIHsKKyAgICAgICAgQUxPR0koIiVzOiBObyB2ZW5kb3IgdGFncyBkZWZpbmVkIGZvciB0aGlzIGRldmljZS4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtTW9kdWxlLT5nZXRWZW5kb3JUYWdPcHMoJnZPcHMpOworCisgICAgLy8gRW5zdXJlIGFsbCB2ZW5kb3Igb3BlcmF0aW9ucyBhcmUgcHJlc2VudAorICAgIGlmICh2T3BzLmdldF90YWdfY291bnQgPT0gbnVsbHB0ciB8fCB2T3BzLmdldF9hbGxfdGFncyA9PSBudWxscHRyIHx8CisgICAgICAgICAgICB2T3BzLmdldF9zZWN0aW9uX25hbWUgPT0gbnVsbHB0ciB8fCB2T3BzLmdldF90YWdfbmFtZSA9PSBudWxscHRyIHx8CisgICAgICAgICAgICB2T3BzLmdldF90YWdfdHlwZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBvcGVyYXRpb25zIG5vdCBmdWxseSBkZWZpbmVkLiBJZ25vcmluZyBkZWZpbml0aW9ucy4iCisgICAgICAgICAgICAgICAsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBSZWFkIGFsbCB2ZW5kb3IgdGFnIGRlZmluaXRpb25zIGludG8gYSBkZXNjcmlwdG9yCisgICAgc3A8VmVuZG9yVGFnRGVzY3JpcHRvcj4gZGVzYzsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKChyZXMgPSBWZW5kb3JUYWdEZXNjcmlwdG9yOjpjcmVhdGVEZXNjcmlwdG9yRnJvbU9wcygmdk9wcywgLypvdXQqL2Rlc2MpKQorICAgICAgICAgICAgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDb3VsZCBub3QgZ2VuZXJhdGUgZGVzY3JpcHRvciBmcm9tIHZlbmRvciB0YWcgb3BlcmF0aW9ucywiCisgICAgICAgICAgICAgICJyZWNlaXZlZCBlcnJvciAlcyAoJWQpLiBDYW1lcmEgY2xpZW50cyB3aWxsIG5vdCBiZSBhYmxlIHRvIHVzZSIKKyAgICAgICAgICAgICAgInZlbmRvciB0YWdzIiwgX19GVU5DVElPTl9fLCBzdHJlcnJvcihyZXMpLCByZXMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gU2V0IHRoZSBnbG9iYWwgZGVzY3JpcHRvciB0byB1c2Ugd2l0aCBjYW1lcmEgbWV0YWRhdGEKKyAgICBWZW5kb3JUYWdEZXNjcmlwdG9yOjpzZXRBc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoZGVzYyk7CisgICAgY29uc3QgU29ydGVkVmVjdG9yPFN0cmluZzg+KiBzZWN0aW9uTmFtZXMgPSBkZXNjLT5nZXRBbGxTZWN0aW9uTmFtZXMoKTsKKyAgICBzaXplX3QgbnVtU2VjdGlvbnMgPSBzZWN0aW9uTmFtZXMtPnNpemUoKTsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxWZW5kb3JUYWc+PiB0YWdzQnlTZWN0aW9uKG51bVNlY3Rpb25zKTsKKyAgICBpbnQgdGFnQ291bnQgPSBkZXNjLT5nZXRUYWdDb3VudCgpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiB0YWdzKHRhZ0NvdW50KTsKKyAgICBkZXNjLT5nZXRUYWdBcnJheSh0YWdzLmRhdGEoKSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdDb3VudDsgaSsrKSB7CisgICAgICAgIFZlbmRvclRhZyB2dDsKKyAgICAgICAgdnQudGFnSWQgPSB0YWdzW2ldOworICAgICAgICB2dC50YWdOYW1lID0gZGVzYy0+Z2V0VGFnTmFtZSh0YWdzW2ldKTsKKyAgICAgICAgdnQudGFnVHlwZSA9IChDYW1lcmFNZXRhZGF0YVR5cGUpIGRlc2MtPmdldFRhZ1R5cGUodGFnc1tpXSk7CisgICAgICAgIHNzaXplX3Qgc2VjdGlvbklkeCA9IGRlc2MtPmdldFNlY3Rpb25JbmRleCh0YWdzW2ldKTsKKyAgICAgICAgdGFnc0J5U2VjdGlvbltzZWN0aW9uSWR4XS5wdXNoX2JhY2sodnQpOworICAgIH0KKyAgICBtVmVuZG9yVGFnU2VjdGlvbnMucmVzaXplKG51bVNlY3Rpb25zKTsKKyAgICBmb3IgKHNpemVfdCBzID0gMDsgcyA8IG51bVNlY3Rpb25zOyBzKyspIHsKKyAgICAgICAgbVZlbmRvclRhZ1NlY3Rpb25zW3NdLnNlY3Rpb25OYW1lID0gKCpzZWN0aW9uTmFtZXMpW3NdLnN0cmluZygpOworICAgICAgICBtVmVuZG9yVGFnU2VjdGlvbnNbc10udGFncyA9IHRhZ3NCeVNlY3Rpb25bc107CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyIGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IENhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtQ2JMb2NrKTsKKyAgICBtQ2FsbGJhY2tzID0gY2FsbGJhY2s7CisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6Z2V0VmVuZG9yVGFncyhnZXRWZW5kb3JUYWdzX2NiIF9oaWRsX2NiKSAgeworICAgIF9oaWRsX2NiKFN0YXR1czo6T0ssIG1WZW5kb3JUYWdTZWN0aW9ucyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFJZExpc3QoZ2V0Q2FtZXJhSWRMaXN0X2NiIF9oaWRsX2NiKSAgeworICAgIHN0ZDo6dmVjdG9yPGhpZGxfc3RyaW5nPiBkZXZpY2VOYW1lTGlzdDsKKyAgICBmb3IgKGF1dG8gY29uc3QmIGRldmljZU5hbWVQYWlyIDogbUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChtQ2FtZXJhU3RhdHVzTWFwW2RldmljZU5hbWVQYWlyLmZpcnN0XSA9PSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UKSB7CisgICAgICAgICAgICBkZXZpY2VOYW1lTGlzdC5wdXNoX2JhY2soZGV2aWNlTmFtZVBhaXIuc2Vjb25kKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gaGlkbERldmljZU5hbWVMaXN0KGRldmljZU5hbWVMaXN0KTsKKyAgICBfaGlkbF9jYihTdGF0dXM6Ok9LLCBoaWRsRGV2aWNlTmFtZUxpc3QpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6aXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQoaXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWRfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHN1cHBvcnQgPSBtTW9kdWxlLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpOworICAgIF9oaWRsX2NiIChTdGF0dXM6Ok9LLCBzdXBwb3J0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3hfY2IgX2hpZGxfY2IpICB7CisgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQsIGRldmljZVZlcnNpb247CisgICAgYm9vbCBtYXRjaCA9IG1hdGNoRGV2aWNlTmFtZShjYW1lcmFEZXZpY2VOYW1lLCAmZGV2aWNlVmVyc2lvbiwgJmNhbWVyYUlkKTsKKyAgICBpZiAoIW1hdGNoKSB7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgZGV2aWNlTmFtZShjYW1lcmFEZXZpY2VOYW1lLmNfc3RyKCkpOworICAgIHNzaXplX3QgaW5kZXggPSBtQ2FtZXJhRGV2aWNlTmFtZXMuaW5kZXhPZihzdGQ6Om1ha2VfcGFpcihjYW1lcmFJZCwgZGV2aWNlTmFtZSkpOworICAgIGlmIChpbmRleCA9PSBOQU1FX05PVF9GT1VORCkgeyAvLyBFaXRoZXIgYW4gaWxsZWdhbCBuYW1lIG9yIGEgZGV2aWNlIHZlcnNpb24gbWlzbWF0Y2gKKyAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgIHNzaXplX3QgaWR4ID0gbUNhbWVyYUlkcy5pbmRleE9mKGNhbWVyYUlkKTsKKyAgICAgICAgaWYgKGlkeCA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3QgZmluZCBjYW1lcmEgJXMhIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgfSBlbHNlIHsgLy8gaW52YWxpZCB2ZXJzaW9uCisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2UgJXMgZG9lcyBub3Qgc3VwcG9ydCB2ZXJzaW9uICVzISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQuY19zdHIoKSwgZGV2aWNlVmVyc2lvbi5jX3N0cigpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgICAgIH0KKyAgICAgICAgX2hpZGxfY2Ioc3RhdHVzLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAobUNhbWVyYVN0YXR1c01hcC5jb3VudChjYW1lcmFJZCkgPT0gMCB8fAorICAgICAgICAgICAgbUNhbWVyYVN0YXR1c01hcFtjYW1lcmFJZF0gIT0gQ0FNRVJBX0RFVklDRV9TVEFUVVNfUFJFU0VOVCkgeworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNwPGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6aW1wbGVtZW50YXRpb246OkNhbWVyYURldmljZT4gZGV2aWNlID0KKyAgICAgICAgICAgIG5ldyBhbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpDYW1lcmFEZXZpY2UoCisgICAgICAgICAgICAgICAgICAgIG1Nb2R1bGUsIGNhbWVyYUlkLCBtQ2FtZXJhRGV2aWNlTmFtZXMpOworCisgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2Fubm90IGFsbG9jYXRlIGNhbWVyYSBkZXZpY2UgZm9yIGlkICVzIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKGRldmljZS0+aXNJbml0RmFpbGVkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlICVzIGluaXQgZmFpbGVkISIsIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGRldmljZSA9IG51bGxwdHI7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIF9oaWRsX2NiIChTdGF0dXM6Ok9LLCBkZXZpY2UpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLCBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeF9jYiBfaGlkbF9jYikgIHsKKyAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZCwgZGV2aWNlVmVyc2lvbjsKKyAgICBib29sIG1hdGNoID0gbWF0Y2hEZXZpY2VOYW1lKGNhbWVyYURldmljZU5hbWUsICZkZXZpY2VWZXJzaW9uLCAmY2FtZXJhSWQpOworICAgIGlmICghbWF0Y2gpIHsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBkZXZpY2VOYW1lKGNhbWVyYURldmljZU5hbWUuY19zdHIoKSk7CisgICAgc3NpemVfdCBpbmRleCA9IG1DYW1lcmFEZXZpY2VOYW1lcy5pbmRleE9mKHN0ZDo6bWFrZV9wYWlyKGNhbWVyYUlkLCBkZXZpY2VOYW1lKSk7CisgICAgaWYgKGluZGV4ID09IE5BTUVfTk9UX0ZPVU5EKSB7IC8vIEVpdGhlciBhbiBpbGxlZ2FsIG5hbWUgb3IgYSBkZXZpY2UgdmVyc2lvbiBtaXNtYXRjaAorICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgc3NpemVfdCBpZHggPSBtQ2FtZXJhSWRzLmluZGV4T2YoY2FtZXJhSWQpOworICAgICAgICBpZiAoaWR4ID09IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBmaW5kIGNhbWVyYSAlcyEiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgICAgICB9IGVsc2UgeyAvLyBpbnZhbGlkIHZlcnNpb24KKyAgICAgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGRldmljZSAlcyBkb2VzIG5vdCBzdXBwb3J0IHZlcnNpb24gJXMhIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpLCBkZXZpY2VWZXJzaW9uLmNfc3RyKCkpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihzdGF0dXMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChtQ2FtZXJhU3RhdHVzTWFwLmNvdW50KGNhbWVyYUlkKSA9PSAwIHx8CisgICAgICAgICAgICBtQ2FtZXJhU3RhdHVzTWFwW2NhbWVyYUlkXSAhPSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UKSB7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3A8YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjppbXBsZW1lbnRhdGlvbjo6Q2FtZXJhRGV2aWNlPiBkZXZpY2UgPQorICAgICAgICAgICAgbmV3IGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6aW1wbGVtZW50YXRpb246OkNhbWVyYURldmljZSgKKyAgICAgICAgICAgICAgICAgICAgbU1vZHVsZSwgY2FtZXJhSWQsIG1DYW1lcmFEZXZpY2VOYW1lcyk7CisKKyAgICBpZiAoZGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3QgYWxsb2NhdGUgY2FtZXJhIGRldmljZSBmb3IgaWQgJXMiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoZGV2aWNlLT5pc0luaXRGYWlsZWQoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2UgJXMgaW5pdCBmYWlsZWQhIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgZGV2aWNlID0gbnVsbHB0cjsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgX2hpZGxfY2IgKFN0YXR1czo6T0ssIGRldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSUNhbWVyYVByb3ZpZGVyKiBISURMX0ZFVENIX0lDYW1lcmFQcm92aWRlcihjb25zdCBjaGFyKiBuYW1lKSB7CisgICAgaWYgKHN0cmNtcChuYW1lLCBrTGVnYWN5UHJvdmlkZXJOYW1lKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBDYW1lcmFQcm92aWRlciogcHJvdmlkZXIgPSBuZXcgQ2FtZXJhUHJvdmlkZXIoKTsKKyAgICBpZiAocHJvdmlkZXIgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBhbGxvY2F0ZSBjYW1lcmEgcHJvdmlkZXIhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlmIChwcm92aWRlci0+aXNJbml0RmFpbGVkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgcHJvdmlkZXIgaW5pdCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgZGVsZXRlIHByb3ZpZGVyOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIHByb3ZpZGVyOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzQKK30gIC8vIG5hbWVzcGFjZSBwcm92aWRlcgorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmggYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTk3MWZhCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L0NhbWVyYVByb3ZpZGVyLmgKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX1BST1ZJREVSX1YyXzRfQ0FNRVJBUFJPVklERVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9QUk9WSURFUl9WMl80X0NBTUVSQVBST1ZJREVSX0gKKworI2luY2x1ZGUgPHJlZ2V4PgorI2luY2x1ZGUgImhhcmR3YXJlL2NhbWVyYV9jb21tb24uaCIKKyNpbmNsdWRlICJ1dGlscy9NdXRleC5oIgorI2luY2x1ZGUgInV0aWxzL1NvcnRlZFZlY3Rvci5oIgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisjaW5jbHVkZSAiVmVuZG9yVGFnRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgcHJvdmlkZXIgeworbmFtZXNwYWNlIFYyXzQgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OkNhbWVyYURldmljZVN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6VG9yY2hNb2RlU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlZlbmRvclRhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpWZW5kb3JUYWdTZWN0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTW9kdWxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6VmVuZG9yVGFnRGVzY3JpcHRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6cHJvdmlkZXI6OlYyXzQ6OklDYW1lcmFQcm92aWRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6cHJvdmlkZXI6OlYyXzQ6OklDYW1lcmFQcm92aWRlckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpNdXRleDsKKworc3RydWN0IENhbWVyYVByb3ZpZGVyIDogcHVibGljIElDYW1lcmFQcm92aWRlciwgcHVibGljIGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzX3QgeworICAgIENhbWVyYVByb3ZpZGVyKCk7CisgICAgfkNhbWVyYVByb3ZpZGVyKCk7CisKKyAgICAvLyBDYWxsZXIgbXVzdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hlY2sgaWYgQ2FtZXJhUHJvdmlkZXIgY3RvciBmYWlsZWQKKyAgICBib29sIGlzSW5pdEZhaWxlZCgpIHsgcmV0dXJuIG1Jbml0RmFpbGVkOyB9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyIGZvbGxvdy4KKyAgICBSZXR1cm48U3RhdHVzPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VmVuZG9yVGFncyhnZXRWZW5kb3JUYWdzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhSWRMaXN0KGdldENhbWVyYUlkTGlzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WM194X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBNdXRleCBtQ2JMb2NrOworICAgIHNwPElDYW1lcmFQcm92aWRlckNhbGxiYWNrPiBtQ2FsbGJhY2tzID0gbnVsbHB0cjsKKworICAgIHNwPENhbWVyYU1vZHVsZT4gbU1vZHVsZTsKKworICAgIGludCBtTnVtYmVyT2ZMZWdhY3lDYW1lcmFzOworICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBjYW1lcmFfZGV2aWNlX3N0YXR1c190PiBtQ2FtZXJhU3RhdHVzTWFwOyAvLyBjYW1lcmEgaWQgLT4gc3RhdHVzCisgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIGJvb2w+IG1PcGVuTGVnYWN5U3VwcG9ydGVkOyAvLyBjYW1lcmEgaWQgLT4gb3Blbl9sZWdhY3kgSEFMMS4wIHN1cHBvcnRlZAorICAgIFNvcnRlZFZlY3RvcjxzdGQ6OnN0cmluZz4gbUNhbWVyYUlkczsgLy8gdGhlICIwIi8iMSIgbGVnYWN5IGNhbWVyYSBJZHMKKyAgICAvLyAoY2FtZXJhSWQgc3RyaW5nLCBoaWRsIGRldmljZSBuYW1lKSBwYWlycworICAgIFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4gbUNhbWVyYURldmljZU5hbWVzOworCisgICAgLy8gTXVzdCBiZSBxdWVyaWVkIGJlZm9yZSB1c2luZyBhbnkgQVBJcy4KKyAgICAvLyBBUElzIHdpbGwgb25seSB3b3JrIHdoZW4gdGhpcyByZXR1cm5zIHRydWUKKyAgICBib29sIG1Jbml0RmFpbGVkOworICAgIGJvb2wgaW5pdGlhbGl6ZSgpOworCisgICAgaGlkbF92ZWM8VmVuZG9yVGFnU2VjdGlvbj4gbVZlbmRvclRhZ1NlY3Rpb25zOworICAgIGJvb2wgc2V0VXBWZW5kb3JUYWdzKCk7CisgICAgaW50IGNoZWNrQ2FtZXJhVmVyc2lvbihpbnQgaWQsIGNhbWVyYV9pbmZvIGluZm8pOworCisgICAgLy8gZXh0cmFjdCBsZWdhY3kgY2FtZXJhIElEL2RldmljZSB2ZXJzaW9uIGZyb20gYSBISURMIGRldmljZSBuYW1lCisgICAgc3RhdGljIHN0ZDo6c3RyaW5nIGdldExlZ2FjeUNhbWVyYUlkKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lKTsKKyAgICBzdGF0aWMgaW50IGdldENhbWVyYURldmljZVZlcnNpb24oY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpOworCisgICAgLy8gY3JlYXRlIEhJREwgZGV2aWNlIG5hbWUgZnJvbSBjYW1lcmEgSUQgYW5kIGRldmljZSB2ZXJzaW9uCisgICAgc3RhdGljIHN0ZDo6c3RyaW5nIGdldEhpZGxEZXZpY2VOYW1lKHN0ZDo6c3RyaW5nIGNhbWVyYUlkLCBpbnQgZGV2aWNlVmVyc2lvbik7CisKKyAgICAvLyBjb252ZXJ0IGNvbnZlbnRpb25hbCBIQUwgc3RhdHVzIHRvIEhJREwgU3RhdHVzCisgICAgc3RhdGljIFN0YXR1cyBnZXRIaWRsU3RhdHVzKGludCk7CisKKyAgICAvLyBzdGF0aWMgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzCisgICAgc3RhdGljIHZvaWQgc0NhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgY29uc3Qgc3RydWN0IGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzKiBjYWxsYmFja3MsCisgICAgICAgIGludCBjYW1lcmFfaWQsCisgICAgICAgIGludCBuZXdfc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBzVG9yY2hNb2RlU3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3MqIGNhbGxiYWNrcywKKyAgICAgICAgY29uc3QgY2hhciogY2FtZXJhX2lkLAorICAgICAgICBpbnQgbmV3X3N0YXR1cyk7Cit9OworCitleHRlcm4gIkMiIElDYW1lcmFQcm92aWRlciogSElETF9GRVRDSF9JQ2FtZXJhUHJvdmlkZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzQKK30gIC8vIG5hbWVzcGFjZSBwcm92aWRlcgorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX1BST1ZJREVSX1YyXzRfQ0FNRVJBUFJPVklERVJfSApkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlLnJjIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiZjMwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UucmMKQEAgLTAsMCArMSw3IEBACitzZXJ2aWNlIGNhbWVyYS1wcm92aWRlci0yLTQgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIGNhbWVyYXNlcnZlcgorICAgIGdyb3VwIGF1ZGlvIGNhbWVyYSBpbnB1dCBkcm1ycGMKKyAgICBpb3ByaW8gcnQgNAorICAgIGNhcGFiaWxpdGllcyBTWVNfTklDRQorICAgIHdyaXRlcGlkIC9kZXYvY3B1c2V0L2NhbWVyYS1kYWVtb24vdGFza3MgL2Rldi9zdHVuZS90b3AtYXBwL3Rhc2tzCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvc2VydmljZS5jcHAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VlYjYzNwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKQoreworICAgIEFMT0dJKCJDYW1lcmEgcHJvdmlkZXIgU2VydmljZSBpcyBzdGFydGluZy4iKTsKKyAgICAvLyBUaGUgY2FtZXJhIEhBTCBtYXkgY29tbXVuaWNhdGUgdG8gb3RoZXIgdmVuZG9yIGNvbXBvbmVudHMgdmlhCisgICAgLy8gL2Rldi92bmRiaW5kZXIKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OmluaXRXaXRoRHJpdmVyKCIvZGV2L3ZuZGJpbmRlciIpOworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUNhbWVyYVByb3ZpZGVyPigibGVnYWN5LzAiLCAvKm1heFRocmVhZHMqLyA2KTsKK30KZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTMxMmMxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDEgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcCIsCisgICAgICAgICAgICJDYW1lcmFQYXJhbWV0ZXJzLmNwcCIgXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIiwKKyAgICAgICAgImxpYmJpbmRlciIsCisgICAgICAgICJsaWJndWkiLAorICAgICAgICAibGlidWkiCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiLCAibGliZ3JhbGxvY3VzYWdlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL0NhbWVyYVBhcmFtZXRlcnMuY3BwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2IyNjNiCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzNyBAQAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworI2RlZmluZSBMT0dfVEFHICJDYW1lcmFQYXJhbXMiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSAiQ2FtZXJhUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPHN5c3RlbS9ncmFwaGljcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisvLyBQYXJhbWV0ZXIga2V5cyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIGNhbWVyYSBhcHBsaWNhdGlvbiBhbmQgZHJpdmVyLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUFJFVklFV19TSVpFW10gPSAicHJldmlldy1zaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX1NJWkVTW10gPSAicHJldmlldy1zaXplLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QUkVWSUVXX0ZPUk1BVFtdID0gInByZXZpZXctZm9ybWF0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZPUk1BVFNbXSA9ICJwcmV2aWV3LWZvcm1hdC12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUFJFVklFV19GUkFNRV9SQVRFW10gPSAicHJldmlldy1mcmFtZS1yYXRlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZSQU1FX1JBVEVTW10gPSAicHJldmlldy1mcmFtZS1yYXRlLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QUkVWSUVXX0ZQU19SQU5HRVtdID0gInByZXZpZXctZnBzLXJhbmdlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZQU19SQU5HRVtdID0gInByZXZpZXctZnBzLXJhbmdlLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QSUNUVVJFX1NJWkVbXSA9ICJwaWN0dXJlLXNpemUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfU0laRVNbXSA9ICJwaWN0dXJlLXNpemUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BJQ1RVUkVfRk9STUFUW10gPSAicGljdHVyZS1mb3JtYXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfRk9STUFUU1tdID0gInBpY3R1cmUtZm9ybWF0LXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1RIVU1CTkFJTF9XSURUSFtdID0gImpwZWctdGh1bWJuYWlsLXdpZHRoIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfVEhVTUJOQUlMX0hFSUdIVFtdID0gImpwZWctdGh1bWJuYWlsLWhlaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfSlBFR19USFVNQk5BSUxfU0laRVNbXSA9ICJqcGVnLXRodW1ibmFpbC1zaXplLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1RIVU1CTkFJTF9RVUFMSVRZW10gPSAianBlZy10aHVtYm5haWwtcXVhbGl0eSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1FVQUxJVFlbXSA9ICJqcGVnLXF1YWxpdHkiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUk9UQVRJT05bXSA9ICJyb3RhdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9HUFNfTEFUSVRVREVbXSA9ICJncHMtbGF0aXR1ZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfR1BTX0xPTkdJVFVERVtdID0gImdwcy1sb25naXR1ZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfR1BTX0FMVElUVURFW10gPSAiZ3BzLWFsdGl0dWRlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0dQU19USU1FU1RBTVBbXSA9ICJncHMtdGltZXN0YW1wIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0dQU19QUk9DRVNTSU5HX01FVEhPRFtdID0gImdwcy1wcm9jZXNzaW5nLW1ldGhvZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9XSElURV9CQUxBTkNFW10gPSAid2hpdGViYWxhbmNlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9XSElURV9CQUxBTkNFW10gPSAid2hpdGViYWxhbmNlLXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9FRkZFQ1RbXSA9ICJlZmZlY3QiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0VGRkVDVFNbXSA9ICJlZmZlY3QtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0FOVElCQU5ESU5HW10gPSAiYW50aWJhbmRpbmciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0FOVElCQU5ESU5HW10gPSAiYW50aWJhbmRpbmctdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NDRU5FX01PREVbXSA9ICJzY2VuZS1tb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9TQ0VORV9NT0RFU1tdID0gInNjZW5lLW1vZGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZMQVNIX01PREVbXSA9ICJmbGFzaC1tb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9GTEFTSF9NT0RFU1tdID0gImZsYXNoLW1vZGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZPQ1VTX01PREVbXSA9ICJmb2N1cy1tb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9GT0NVU19NT0RFU1tdID0gImZvY3VzLW1vZGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9OVU1fRk9DVVNfQVJFQVNbXSA9ICJtYXgtbnVtLWZvY3VzLWFyZWFzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZPQ1VTX0FSRUFTW10gPSAiZm9jdXMtYXJlYXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DQUxfTEVOR1RIW10gPSAiZm9jYWwtbGVuZ3RoIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0hPUklaT05UQUxfVklFV19BTkdMRVtdID0gImhvcml6b250YWwtdmlldy1hbmdsZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WRVJUSUNBTF9WSUVXX0FOR0xFW10gPSAidmVydGljYWwtdmlldy1hbmdsZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9FWFBPU1VSRV9DT01QRU5TQVRJT05bXSA9ICJleHBvc3VyZS1jb21wZW5zYXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdID0gIm1heC1leHBvc3VyZS1jb21wZW5zYXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUlOX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdID0gIm1pbi1leHBvc3VyZS1jb21wZW5zYXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRVhQT1NVUkVfQ09NUEVOU0FUSU9OX1NURVBbXSA9ICJleHBvc3VyZS1jb21wZW5zYXRpb24tc3RlcCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9BVVRPX0VYUE9TVVJFX0xPQ0tbXSA9ICJhdXRvLWV4cG9zdXJlLWxvY2siOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQVVUT19FWFBPU1VSRV9MT0NLX1NVUFBPUlRFRFtdID0gImF1dG8tZXhwb3N1cmUtbG9jay1zdXBwb3J0ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQVVUT19XSElURUJBTEFOQ0VfTE9DS1tdID0gImF1dG8td2hpdGViYWxhbmNlLWxvY2siOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQVVUT19XSElURUJBTEFOQ0VfTE9DS19TVVBQT1JURURbXSA9ICJhdXRvLXdoaXRlYmFsYW5jZS1sb2NrLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX01FVEVSSU5HX0FSRUFTW10gPSAibWF4LW51bS1tZXRlcmluZy1hcmVhcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NRVRFUklOR19BUkVBU1tdID0gIm1ldGVyaW5nLWFyZWFzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1pPT01bXSA9ICJ6b29tIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9aT09NW10gPSAibWF4LXpvb20iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfWk9PTV9SQVRJT1NbXSA9ICJ6b29tLXJhdGlvcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9aT09NX1NVUFBPUlRFRFtdID0gInpvb20tc3VwcG9ydGVkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NNT09USF9aT09NX1NVUFBPUlRFRFtdID0gInNtb290aC16b29tLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GT0NVU19ESVNUQU5DRVNbXSA9ICJmb2N1cy1kaXN0YW5jZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fRlJBTUVfRk9STUFUW10gPSAidmlkZW8tZnJhbWUtZm9ybWF0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1ZJREVPX1NJWkVbXSA9ICJ2aWRlby1zaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9WSURFT19TSVpFU1tdID0gInZpZGVvLXNpemUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BSRUZFUlJFRF9QUkVWSUVXX1NJWkVfRk9SX1ZJREVPW10gPSAicHJlZmVycmVkLXByZXZpZXctc2l6ZS1mb3ItdmlkZW8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19IV1tdID0gIm1heC1udW0tZGV0ZWN0ZWQtZmFjZXMtaHciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19TV1tdID0gIm1heC1udW0tZGV0ZWN0ZWQtZmFjZXMtc3ciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUkVDT1JESU5HX0hJTlRbXSA9ICJyZWNvcmRpbmctaGludCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WSURFT19TTkFQU0hPVF9TVVBQT1JURURbXSA9ICJ2aWRlby1zbmFwc2hvdC1zdXBwb3J0ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fU1RBQklMSVpBVElPTltdID0gInZpZGVvLXN0YWJpbGl6YXRpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fU1RBQklMSVpBVElPTl9TVVBQT1JURURbXSA9ICJ2aWRlby1zdGFiaWxpemF0aW9uLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9MSUdIVEZYW10gPSAibGlnaHQtZngiOworCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlRSVUVbXSA9ICJ0cnVlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RkFMU0VbXSA9ICJmYWxzZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX0RJU1RBTkNFX0lORklOSVRZW10gPSAiSW5maW5pdHkiOworCisvLyBWYWx1ZXMgZm9yIHdoaXRlIGJhbGFuY2Ugc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpXSElURV9CQUxBTkNFX0lOQ0FOREVTQ0VOVFtdID0gImluY2FuZGVzY2VudCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfRkxVT1JFU0NFTlRbXSA9ICJmbHVvcmVzY2VudCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfV0FSTV9GTFVPUkVTQ0VOVFtdID0gIndhcm0tZmx1b3Jlc2NlbnQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpXSElURV9CQUxBTkNFX0RBWUxJR0hUW10gPSAiZGF5bGlnaHQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpXSElURV9CQUxBTkNFX0NMT1VEWV9EQVlMSUdIVFtdID0gImNsb3VkeS1kYXlsaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfVFdJTElHSFRbXSA9ICJ0d2lsaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfU0hBREVbXSA9ICJzaGFkZSI7CisKKy8vIFZhbHVlcyBmb3IgZWZmZWN0IHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfTk9ORVtdID0gIm5vbmUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfTU9OT1tdID0gIm1vbm8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfTkVHQVRJVkVbXSA9ICJuZWdhdGl2ZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9TT0xBUklaRVtdID0gInNvbGFyaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX1NFUElBW10gPSAic2VwaWEiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfUE9TVEVSSVpFW10gPSAicG9zdGVyaXplIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX1dISVRFQk9BUkRbXSA9ICJ3aGl0ZWJvYXJkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX0JMQUNLQk9BUkRbXSA9ICJibGFja2JvYXJkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX0FRVUFbXSA9ICJhcXVhIjsKKworLy8gVmFsdWVzIGZvciBhbnRpYmFuZGluZyBzZXR0aW5ncy4KK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6QU5USUJBTkRJTkdfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpBTlRJQkFORElOR181MEhaW10gPSAiNTBoeiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkFOVElCQU5ESU5HXzYwSFpbXSA9ICI2MGh6IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6QU5USUJBTkRJTkdfT0ZGW10gPSAib2ZmIjsKKworLy8gVmFsdWVzIGZvciBmbGFzaCBtb2RlIHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX09GRltdID0gIm9mZiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZMQVNIX01PREVfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX09OW10gPSAib24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX1JFRF9FWUVbXSA9ICJyZWQtZXllIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RkxBU0hfTU9ERV9UT1JDSFtdID0gInRvcmNoIjsKKworLy8gVmFsdWVzIGZvciBzY2VuZSBtb2RlIHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0FVVE9bXSA9ICJhdXRvIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9BQ1RJT05bXSA9ICJhY3Rpb24iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1BPUlRSQUlUW10gPSAicG9ydHJhaXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0xBTkRTQ0FQRVtdID0gImxhbmRzY2FwZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfTklHSFRbXSA9ICJuaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfTklHSFRfUE9SVFJBSVRbXSA9ICJuaWdodC1wb3J0cmFpdCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfVEhFQVRSRVtdID0gInRoZWF0cmUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0JFQUNIW10gPSAiYmVhY2giOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1NOT1dbXSA9ICJzbm93IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9TVU5TRVRbXSA9ICJzdW5zZXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1NURUFEWVBIT1RPW10gPSAic3RlYWR5cGhvdG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0ZJUkVXT1JLU1tdID0gImZpcmV3b3JrcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfU1BPUlRTW10gPSAic3BvcnRzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9QQVJUWVtdID0gInBhcnR5IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9DQU5ETEVMSUdIVFtdID0gImNhbmRsZWxpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9CQVJDT0RFW10gPSAiYmFyY29kZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfSERSW10gPSAiaGRyIjsKKworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIyU1BbXSA9ICJ5dXY0MjJzcCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9ZVVY0MjBTUFtdID0gInl1djQyMHNwIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX1lVVjQyMklbXSA9ICJ5dXY0MjJpLXl1eXYiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIwUFtdICA9ICJ5dXY0MjBwIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX1JHQjU2NVtdID0gInJnYjU2NSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9SR0JBODg4OFtdID0gInJnYmE4ODg4IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX0pQRUdbXSA9ICJqcGVnIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX0JBWUVSX1JHR0JbXSA9ICJiYXllci1yZ2diIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX0FORFJPSURfT1BBUVVFW10gPSAiYW5kcm9pZC1vcGFxdWUiOworCisvLyBWYWx1ZXMgZm9yIGZvY3VzIG1vZGUgc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0lORklOSVRZW10gPSAiaW5maW5pdHkiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX01BQ1JPW10gPSAibWFjcm8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0ZJWEVEW10gPSAiZml4ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0VET0ZbXSA9ICJlZG9mIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9DT05USU5VT1VTX1ZJREVPW10gPSAiY29udGludW91cy12aWRlbyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQ09OVElOVU9VU19QSUNUVVJFW10gPSAiY29udGludW91cy1waWN0dXJlIjsKKworLy8gVmFsdWVzIGZvciBsaWdodCBmeCBzZXR0aW5ncworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpMSUdIVEZYX0xPV0xJR0hUW10gPSAibG93LWxpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6TElHSFRGWF9IRFJbXSA9ICJoaWdoLWR5bmFtaWMtcmFuZ2UiOworCitDYW1lcmFQYXJhbWV0ZXJzOjpDYW1lcmFQYXJhbWV0ZXJzKCkKKyAgICAgICAgICAgICAgICA6IG1NYXAoKQoreworfQorCitDYW1lcmFQYXJhbWV0ZXJzOjp+Q2FtZXJhUGFyYW1ldGVycygpCit7Cit9CisKK1N0cmluZzggQ2FtZXJhUGFyYW1ldGVyczo6ZmxhdHRlbigpIGNvbnN0Cit7CisgICAgU3RyaW5nOCBmbGF0dGVuZWQoIiIpOworICAgIHNpemVfdCBzaXplID0gbU1hcC5zaXplKCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBTdHJpbmc4IGssIHY7CisgICAgICAgIGsgPSBtTWFwLmtleUF0KGkpOworICAgICAgICB2ID0gbU1hcC52YWx1ZUF0KGkpOworCisgICAgICAgIGZsYXR0ZW5lZCArPSBrOworICAgICAgICBmbGF0dGVuZWQgKz0gIj0iOworICAgICAgICBmbGF0dGVuZWQgKz0gdjsKKyAgICAgICAgaWYgKGkgIT0gc2l6ZS0xKQorICAgICAgICAgICAgZmxhdHRlbmVkICs9ICI7IjsKKyAgICB9CisKKyAgICByZXR1cm4gZmxhdHRlbmVkOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnVuZmxhdHRlbihjb25zdCBTdHJpbmc4ICZwYXJhbXMpCit7CisgICAgY29uc3QgY2hhciAqYSA9IHBhcmFtcy5zdHJpbmcoKTsKKyAgICBjb25zdCBjaGFyICpiOworCisgICAgbU1hcC5jbGVhcigpOworCisgICAgZm9yICg7OykgeworICAgICAgICAvLyBGaW5kIHRoZSBib3VuZHMgb2YgdGhlIGtleSBuYW1lLgorICAgICAgICBiID0gc3RyY2hyKGEsICc9Jyk7CisgICAgICAgIGlmIChiID09IDApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBDcmVhdGUgdGhlIGtleSBzdHJpbmcuCisgICAgICAgIFN0cmluZzggayhhLCAoc2l6ZV90KShiLWEpKTsKKworICAgICAgICAvLyBGaW5kIHRoZSB2YWx1ZS4KKyAgICAgICAgYSA9IGIrMTsKKyAgICAgICAgYiA9IHN0cmNocihhLCAnOycpOworICAgICAgICBpZiAoYiA9PSAwKSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHNlbWljb2xvbiwgdGhpcyBpcyB0aGUgbGFzdCBpdGVtLgorICAgICAgICAgICAgU3RyaW5nOCB2KGEpOworICAgICAgICAgICAgbU1hcC5hZGQoaywgdik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZzggdihhLCAoc2l6ZV90KShiLWEpKTsKKyAgICAgICAgbU1hcC5hZGQoaywgdik7CisgICAgICAgIGEgPSBiKzE7CisgICAgfQorfQorCisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisgICAgLy8gaSB0aGluayBpIGNhbiBkbyB0aGlzIHdpdGggc3Ryc3BuKCkKKyAgICBpZiAoc3RyY2hyKGtleSwgJz0nKSB8fCBzdHJjaHIoa2V5LCAnOycpKSB7CisgICAgICAgIC8vIEFMT0dFKCJLZXkgXCIlc1wiY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIgKD0gb3IgOykiLCBrZXkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN0cmNocih2YWx1ZSwgJz0nKSB8fCBzdHJjaHIodmFsdWUsICc7JykpIHsKKyAgICAgICAgLy8gQUxPR0UoIlZhbHVlIFwiJXNcImNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyICg9IG9yIDspIiwgdmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbU1hcC5yZXBsYWNlVmFsdWVGb3IoU3RyaW5nOChrZXkpLCBTdHJpbmc4KHZhbHVlKSk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0KGNvbnN0IGNoYXIgKmtleSwgaW50IHZhbHVlKQoreworICAgIGNoYXIgc3RyWzE2XTsKKyAgICBzcHJpbnRmKHN0ciwgIiVkIiwgdmFsdWUpOworICAgIHNldChrZXksIHN0cik7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0RmxvYXQoY29uc3QgY2hhciAqa2V5LCBmbG9hdCB2YWx1ZSkKK3sKKyAgICBjaGFyIHN0clsxNl07ICAvLyAxNCBzaG91bGQgYmUgZW5vdWdoLiBXZSBvdmVyZXN0aW1hdGUgdG8gYmUgc2FmZS4KKyAgICBzbnByaW50ZihzdHIsIHNpemVvZihzdHIpLCAiJWciLCB2YWx1ZSk7CisgICAgc2V0KGtleSwgc3RyKTsKK30KKworY29uc3QgY2hhciAqQ2FtZXJhUGFyYW1ldGVyczo6Z2V0KGNvbnN0IGNoYXIgKmtleSkgY29uc3QKK3sKKyAgICBTdHJpbmc4IHYgPSBtTWFwLnZhbHVlRm9yKFN0cmluZzgoa2V5KSk7CisgICAgaWYgKHYubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHYuc3RyaW5nKCk7Cit9CisKK2ludCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRJbnQoY29uc3QgY2hhciAqa2V5KSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnYgPSBnZXQoa2V5KTsKKyAgICBpZiAodiA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHN0cnRvbCh2LCAwLCAwKTsKK30KKworZmxvYXQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0RmxvYXQoY29uc3QgY2hhciAqa2V5KSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnYgPSBnZXQoa2V5KTsKKyAgICBpZiAodiA9PSAwKSByZXR1cm4gLTE7CisgICAgcmV0dXJuIHN0cnRvZih2LCAwKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpyZW1vdmUoY29uc3QgY2hhciAqa2V5KQoreworICAgIG1NYXAucmVtb3ZlSXRlbShTdHJpbmc4KGtleSkpOworfQorCisvLyBQYXJzZSBzdHJpbmcgbGlrZSAiNjQweDQ4MCIgb3IgIjEwMDAwLDIwMDAwIgorc3RhdGljIGludCBwYXJzZV9wYWlyKGNvbnN0IGNoYXIgKnN0ciwgaW50ICpmaXJzdCwgaW50ICpzZWNvbmQsIGNoYXIgZGVsaW0sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKmVuZHB0ciA9IE5VTEwpCit7CisgICAgLy8gRmluZCB0aGUgZmlyc3QgaW50ZWdlci4KKyAgICBjaGFyICplbmQ7CisgICAgaW50IHcgPSAoaW50KXN0cnRvbChzdHIsICZlbmQsIDEwKTsKKyAgICAvLyBJZiBhIGRlbGltZXRlciBkb2VzIG5vdCBpbW1lZGlhdGVseSBmb2xsb3csIGdpdmUgdXAuCisgICAgaWYgKCplbmQgIT0gZGVsaW0pIHsKKyAgICAgICAgQUxPR0UoIkNhbm5vdCBmaW5kIGRlbGltZXRlciAoJWMpIGluIHN0cj0lcyIsIGRlbGltLCBzdHIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLy8gRmluZCB0aGUgc2Vjb25kIGludGVnZXIsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBkZWxpbWV0ZXIuCisgICAgaW50IGggPSAoaW50KXN0cnRvbChlbmQrMSwgJmVuZCwgMTApOworCisgICAgKmZpcnN0ID0gdzsKKyAgICAqc2Vjb25kID0gaDsKKworICAgIGlmIChlbmRwdHIpIHsKKyAgICAgICAgKmVuZHB0ciA9IGVuZDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcGFyc2VTaXplc0xpc3QoY29uc3QgY2hhciAqc2l6ZXNTdHIsIFZlY3RvcjxTaXplPiAmc2l6ZXMpCit7CisgICAgaWYgKHNpemVzU3RyID09IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNoYXIgKnNpemVTdGFydFB0ciA9IChjaGFyICopc2l6ZXNTdHI7CisKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpbnQgd2lkdGgsIGhlaWdodDsKKyAgICAgICAgaW50IHN1Y2Nlc3MgPSBwYXJzZV9wYWlyKHNpemVTdGFydFB0ciwgJndpZHRoLCAmaGVpZ2h0LCAneCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2l6ZVN0YXJ0UHRyKTsKKyAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gLTEgfHwgKCpzaXplU3RhcnRQdHIgIT0gJywnICYmICpzaXplU3RhcnRQdHIgIT0gJ1wwJykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQaWN0dXJlIHNpemVzIHN0cmluZyBcIiVzXCIgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIuIiwgc2l6ZXNTdHIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNpemVzLnB1c2goU2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisKKyAgICAgICAgaWYgKCpzaXplU3RhcnRQdHIgPT0gJ1wwJykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNpemVTdGFydFB0cisrOworICAgIH0KK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQcmV2aWV3U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgY2hhciBzdHJbMzJdOworICAgIHNwcmludGYoc3RyLCAiJWR4JWQiLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBzZXQoS0VZX1BSRVZJRVdfU0laRSwgc3RyKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmV2aWV3U2l6ZShpbnQgKndpZHRoLCBpbnQgKmhlaWdodCkgY29uc3QKK3sKKyAgICAqd2lkdGggPSAqaGVpZ2h0ID0gLTE7CisgICAgLy8gR2V0IHRoZSBjdXJyZW50IHN0cmluZywgaWYgaXQgZG9lc24ndCBleGlzdCwgbGVhdmUgdGhlIC0xeC0xCisgICAgY29uc3QgY2hhciAqcCA9IGdldChLRVlfUFJFVklFV19TSVpFKTsKKyAgICBpZiAocCA9PSAwKSAgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgd2lkdGgsIGhlaWdodCwgJ3gnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmVmZXJyZWRQcmV2aWV3U2l6ZUZvclZpZGVvKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdAoreworICAgICp3aWR0aCA9ICpoZWlnaHQgPSAtMTsKKyAgICBjb25zdCBjaGFyICpwID0gZ2V0KEtFWV9QUkVGRVJSRURfUFJFVklFV19TSVpFX0ZPUl9WSURFTyk7CisgICAgaWYgKHAgPT0gMCkgIHJldHVybjsKKyAgICBwYXJzZV9wYWlyKHAsIHdpZHRoLCBoZWlnaHQsICd4Jyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0U3VwcG9ydGVkUHJldmlld1NpemVzKFZlY3RvcjxTaXplPiAmc2l6ZXMpIGNvbnN0Cit7CisgICAgY29uc3QgY2hhciAqcHJldmlld1NpemVzU3RyID0gZ2V0KEtFWV9TVVBQT1JURURfUFJFVklFV19TSVpFUyk7CisgICAgcGFyc2VTaXplc0xpc3QocHJldmlld1NpemVzU3RyLCBzaXplcyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0VmlkZW9TaXplKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBjaGFyIHN0clszMl07CisgICAgc3ByaW50ZihzdHIsICIlZHglZCIsIHdpZHRoLCBoZWlnaHQpOworICAgIHNldChLRVlfVklERU9fU0laRSwgc3RyKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRWaWRlb1NpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0Cit7CisgICAgKndpZHRoID0gKmhlaWdodCA9IC0xOworICAgIGNvbnN0IGNoYXIgKnAgPSBnZXQoS0VZX1ZJREVPX1NJWkUpOworICAgIGlmIChwID09IDApIHJldHVybjsKKyAgICBwYXJzZV9wYWlyKHAsIHdpZHRoLCBoZWlnaHQsICd4Jyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0U3VwcG9ydGVkVmlkZW9TaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnZpZGVvU2l6ZXNTdHIgPSBnZXQoS0VZX1NVUFBPUlRFRF9WSURFT19TSVpFUyk7CisgICAgcGFyc2VTaXplc0xpc3QodmlkZW9TaXplc1N0ciwgc2l6ZXMpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnNldFByZXZpZXdGcmFtZVJhdGUoaW50IGZwcykKK3sKKyAgICBzZXQoS0VZX1BSRVZJRVdfRlJBTUVfUkFURSwgZnBzKTsKK30KKworaW50IENhbWVyYVBhcmFtZXRlcnM6OmdldFByZXZpZXdGcmFtZVJhdGUoKSBjb25zdAoreworICAgIHJldHVybiBnZXRJbnQoS0VZX1BSRVZJRVdfRlJBTUVfUkFURSk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0UHJldmlld0Zwc1JhbmdlKGludCAqbWluX2ZwcywgaW50ICptYXhfZnBzKSBjb25zdAoreworICAgICptaW5fZnBzID0gKm1heF9mcHMgPSAtMTsKKyAgICBjb25zdCBjaGFyICpwID0gZ2V0KEtFWV9QUkVWSUVXX0ZQU19SQU5HRSk7CisgICAgaWYgKHAgPT0gMCkgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgbWluX2ZwcywgbWF4X2ZwcywgJywnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQcmV2aWV3Rm9ybWF0KGNvbnN0IGNoYXIgKmZvcm1hdCkKK3sKKyAgICBzZXQoS0VZX1BSRVZJRVdfRk9STUFULCBmb3JtYXQpOworfQorCitjb25zdCBjaGFyICpDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmV2aWV3Rm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0KEtFWV9QUkVWSUVXX0ZPUk1BVCk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0UGljdHVyZVNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGNoYXIgc3RyWzMyXTsKKyAgICBzcHJpbnRmKHN0ciwgIiVkeCVkIiwgd2lkdGgsIGhlaWdodCk7CisgICAgc2V0KEtFWV9QSUNUVVJFX1NJWkUsIHN0cik7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0UGljdHVyZVNpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0Cit7CisgICAgKndpZHRoID0gKmhlaWdodCA9IC0xOworICAgIC8vIEdldCB0aGUgY3VycmVudCBzdHJpbmcsIGlmIGl0IGRvZXNuJ3QgZXhpc3QsIGxlYXZlIHRoZSAtMXgtMQorICAgIGNvbnN0IGNoYXIgKnAgPSBnZXQoS0VZX1BJQ1RVUkVfU0laRSk7CisgICAgaWYgKHAgPT0gMCkgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgd2lkdGgsIGhlaWdodCwgJ3gnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRTdXBwb3J0ZWRQaWN0dXJlU2l6ZXMoVmVjdG9yPFNpemU+ICZzaXplcykgY29uc3QKK3sKKyAgICBjb25zdCBjaGFyICpwaWN0dXJlU2l6ZXNTdHIgPSBnZXQoS0VZX1NVUFBPUlRFRF9QSUNUVVJFX1NJWkVTKTsKKyAgICBwYXJzZVNpemVzTGlzdChwaWN0dXJlU2l6ZXNTdHIsIHNpemVzKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQaWN0dXJlRm9ybWF0KGNvbnN0IGNoYXIgKmZvcm1hdCkKK3sKKyAgICBzZXQoS0VZX1BJQ1RVUkVfRk9STUFULCBmb3JtYXQpOworfQorCitjb25zdCBjaGFyICpDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQaWN0dXJlRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0KEtFWV9QSUNUVVJFX0ZPUk1BVCk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6ZHVtcCgpIGNvbnN0Cit7CisgICAgQUxPR0QoImR1bXA6IG1NYXAuc2l6ZSA9ICV6dSIsIG1NYXAuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1NYXAuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgU3RyaW5nOCBrLCB2OworICAgICAgICBrID0gbU1hcC5rZXlBdChpKTsKKyAgICAgICAgdiA9IG1NYXAudmFsdWVBdChpKTsKKyAgICAgICAgQUxPR0QoIiVzOiAlc1xuIiwgay5zdHJpbmcoKSwgdi5zdHJpbmcoKSk7CisgICAgfQorfQorCitzdGF0dXNfdCBDYW1lcmFQYXJhbWV0ZXJzOjpkdW1wKGludCBmZCwgY29uc3QgVmVjdG9yPFN0cmluZzE2PiYgLyphcmdzKi8pIGNvbnN0Cit7CisgICAgY29uc3Qgc2l6ZV90IFNJWkUgPSAyNTY7CisgICAgY2hhciBidWZmZXJbU0laRV07CisgICAgU3RyaW5nOCByZXN1bHQ7CisgICAgc25wcmludGYoYnVmZmVyLCAyNTUsICJDYW1lcmFQYXJhbWV0ZXJzOjpkdW1wOiBtTWFwLnNpemUgPSAlenVcbiIsIG1NYXAuc2l6ZSgpKTsKKyAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtTWFwLnNpemUoKTsgaSsrKSB7CisgICAgICAgIFN0cmluZzggaywgdjsKKyAgICAgICAgayA9IG1NYXAua2V5QXQoaSk7CisgICAgICAgIHYgPSBtTWFwLnZhbHVlQXQoaSk7CisgICAgICAgIHNucHJpbnRmKGJ1ZmZlciwgMjU1LCAiXHQlczogJXNcbiIsIGsuc3RyaW5nKCksIHYuc3RyaW5nKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CisgICAgfQorICAgIHdyaXRlKGZkLCByZXN1bHQuc3RyaW5nKCksIHJlc3VsdC5zaXplKCkpOworICAgIHJldHVybiBOT19FUlJPUjsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRTdXBwb3J0ZWRQcmV2aWV3Rm9ybWF0cyhWZWN0b3I8aW50PiYgZm9ybWF0cykgY29uc3QgeworICAgIGNvbnN0IGNoYXIqIHN1cHBvcnRlZFByZXZpZXdGb3JtYXRzID0KKyAgICAgICAgICBnZXQoQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZPUk1BVFMpOworCisgICAgaWYgKHN1cHBvcnRlZFByZXZpZXdGb3JtYXRzID09IE5VTEwpIHsKKyAgICAgICAgQUxPR1coIiVzOiBObyBzdXBwb3J0ZWQgcHJldmlldyBmb3JtYXRzLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmc4IGZtdFN0cihzdXBwb3J0ZWRQcmV2aWV3Rm9ybWF0cyk7CisgICAgY2hhciogcHJldkZtdHMgPSBmbXRTdHIubG9ja0J1ZmZlcihmbXRTdHIuc2l6ZSgpKTsKKworICAgIGNoYXIqIHNhdmVQdHI7CisgICAgY2hhciogZm10ID0gc3RydG9rX3IocHJldkZtdHMsICIsIiwgJnNhdmVQdHIpOworICAgIHdoaWxlIChmbXQpIHsKKyAgICAgICAgaW50IGFjdHVhbCA9IHByZXZpZXdGb3JtYXRUb0VudW0oZm10KTsKKyAgICAgICAgaWYgKGFjdHVhbCAhPSAtMSkgeworICAgICAgICAgICAgZm9ybWF0cy5hZGQoYWN0dWFsKTsKKyAgICAgICAgfQorICAgICAgICBmbXQgPSBzdHJ0b2tfcihOVUxMLCAiLCIsICZzYXZlUHRyKTsKKyAgICB9CisgICAgZm10U3RyLnVubG9ja0J1ZmZlcihmbXRTdHIuc2l6ZSgpKTsKK30KKworCitpbnQgQ2FtZXJhUGFyYW1ldGVyczo6cHJldmlld0Zvcm1hdFRvRW51bShjb25zdCBjaGFyKiBmb3JtYXQpIHsKKyAgICByZXR1cm4KKyAgICAgICAgIWZvcm1hdCA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lDckNiXzQyMF9TUCA6CisgICAgICAgICFzdHJjbXAoZm9ybWF0LCBQSVhFTF9GT1JNQVRfWVVWNDIyU1ApID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfWUNiQ3JfNDIyX1NQIDogLy8gTlYxNgorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX1lVVjQyMFNQKSA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lDckNiXzQyMF9TUCA6IC8vIE5WMjEKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9ZVVY0MjJJKSA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lDYkNyXzQyMl9JIDogIC8vIFlVWTIKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9ZVVY0MjBQKSA/CisgICAgICAgICAgICBIQUxfUElYRUxfRk9STUFUX1lWMTIgOiAgICAgICAgIC8vIFlWMTIKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9SR0I1NjUpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfUkdCXzU2NSA6ICAgICAgLy8gUkdCNTY1CisgICAgICAgICFzdHJjbXAoZm9ybWF0LCBQSVhFTF9GT1JNQVRfUkdCQTg4ODgpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfUkdCQV84ODg4IDogICAgLy8gUkdCODg4OAorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX0JBWUVSX1JHR0IpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfUkFXMTYgOiAgIC8vIFJhdyBzZW5zb3IgZGF0YQorICAgICAgICAtMTsKK30KKworYm9vbCBDYW1lcmFQYXJhbWV0ZXJzOjppc0VtcHR5KCkgY29uc3QgeworICAgIHJldHVybiBtTWFwLmlzRW1wdHkoKTsKK30KKworfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQ2FtZXJhUGFyYW1ldGVycy5oIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmEzM2ZmZQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQ2FtZXJhUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNjk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9QQVJBTUVURVJTX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfUEFSQU1FVEVSU19ICisKKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCitzdHJ1Y3QgU2l6ZSB7CisgICAgaW50IHdpZHRoOworICAgIGludCBoZWlnaHQ7CisKKyAgICBTaXplKCkgeworICAgICAgICB3aWR0aCA9IDA7CisgICAgICAgIGhlaWdodCA9IDA7CisgICAgfQorCisgICAgU2l6ZShpbnQgdywgaW50IGgpIHsKKyAgICAgICAgd2lkdGggPSB3OworICAgICAgICBoZWlnaHQgPSBoOworICAgIH0KK307CisKK2NsYXNzIENhbWVyYVBhcmFtZXRlcnMKK3sKK3B1YmxpYzoKKyAgICBDYW1lcmFQYXJhbWV0ZXJzKCk7CisgICAgQ2FtZXJhUGFyYW1ldGVycyhjb25zdCBTdHJpbmc4ICZwYXJhbXMpIHsgdW5mbGF0dGVuKHBhcmFtcyk7IH0KKyAgICB+Q2FtZXJhUGFyYW1ldGVycygpOworCisgICAgU3RyaW5nOCBmbGF0dGVuKCkgY29uc3Q7CisgICAgdm9pZCB1bmZsYXR0ZW4oY29uc3QgU3RyaW5nOCAmcGFyYW1zKTsKKworICAgIHZvaWQgc2V0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUpOworICAgIHZvaWQgc2V0KGNvbnN0IGNoYXIgKmtleSwgaW50IHZhbHVlKTsKKyAgICB2b2lkIHNldEZsb2F0KGNvbnN0IGNoYXIgKmtleSwgZmxvYXQgdmFsdWUpOworICAgIGNvbnN0IGNoYXIgKmdldChjb25zdCBjaGFyICprZXkpIGNvbnN0OworICAgIGludCBnZXRJbnQoY29uc3QgY2hhciAqa2V5KSBjb25zdDsKKyAgICBmbG9hdCBnZXRGbG9hdChjb25zdCBjaGFyICprZXkpIGNvbnN0OworCisgICAgdm9pZCByZW1vdmUoY29uc3QgY2hhciAqa2V5KTsKKworICAgIHZvaWQgc2V0UHJldmlld1NpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGdldFByZXZpZXdTaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKyAgICB2b2lkIGdldFN1cHBvcnRlZFByZXZpZXdTaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdDsKKworICAgIC8vIFNldCB0aGUgZGltZW5zaW9ucyBpbiBwaXhlbHMgdG8gdGhlIGdpdmVuIHdpZHRoIGFuZCBoZWlnaHQKKyAgICAvLyBmb3IgdmlkZW8gZnJhbWVzLiBUaGUgZ2l2ZW4gd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIG9uZQorICAgIC8vIG9mIHRoZSBzdXBwb3J0ZWQgZGltZW5zaW9ucyByZXR1cm5lZCBmcm9tCisgICAgLy8gZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpLiBNdXN0IG5vdCBiZSBjYWxsZWQgaWYKKyAgICAvLyBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkgcmV0dXJucyBhbiBlbXB0eSBWZWN0b3Igb2YgU2l6ZS4KKyAgICB2b2lkIHNldFZpZGVvU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIC8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGRpbWVuc2lvbnMgKHdpZHRoIGFuZCBoZWlnaHQpCisgICAgLy8gaW4gcGl4ZWxzIGZvciB2aWRlbyBmcmFtZXMsIHdoaWNoIG11c3QgYmUgb25lIG9mIHRoZQorICAgIC8vIHN1cHBvcnRlZCBkaW1lbnNpb25zIHJldHVybmVkIGZyb20gZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpLgorICAgIC8vIE11c3Qgbm90IGJlIGNhbGxlZCBpZiBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkgcmV0dXJucyBhbgorICAgIC8vIGVtcHR5IFZlY3RvciBvZiBTaXplLgorICAgIHZvaWQgZ2V0VmlkZW9TaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKyAgICAvLyBSZXRyaWV2ZSBhIFZlY3RvciBvZiBzdXBwb3J0ZWQgZGltZW5zaW9ucyAod2lkdGggYW5kIGhlaWdodCkKKyAgICAvLyBpbiBwaXhlbHMgZm9yIHZpZGVvIGZyYW1lcy4gSWYgc2l6ZXMgcmV0dXJuZWQgZnJvbSB0aGUgbWV0aG9kCisgICAgLy8gaXMgZW1wdHksIHRoZSBjYW1lcmEgZG9lcyBub3Qgc3VwcG9ydCBjYWxscyB0byBzZXRWaWRlb1NpemUoKQorICAgIC8vIG9yIGdldFZpZGVvU2l6ZSgpLiBJbiBhZGRkaXRpb24sIGl0IGFsc28gaW5kaWNhdGVzIHRoYXQKKyAgICAvLyB0aGUgY2FtZXJhIG9ubHkgaGFzIGEgc2luZ2xlIG91dHB1dCwgYW5kIGRvZXMgbm90IGhhdmUKKyAgICAvLyBzZXBhcmF0ZSBvdXRwdXQgZm9yIHZpZGVvIGZyYW1lcyBhbmQgcHJldmlldyBmcmFtZS4KKyAgICB2b2lkIGdldFN1cHBvcnRlZFZpZGVvU2l6ZXMoVmVjdG9yPFNpemU+ICZzaXplcykgY29uc3Q7CisgICAgLy8gUmV0cmlldmUgdGhlIHByZWZlcnJlZCBwcmV2aWV3IHNpemUgKHdpZHRoIGFuZCBoZWlnaHQpIGluIHBpeGVscworICAgIC8vIGZvciB2aWRlbyByZWNvcmRpbmcuIFRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lIG9mCisgICAgLy8gc3VwcG9ydGVkIHByZXZpZXcgc2l6ZXMgcmV0dXJuZWQgZnJvbSBnZXRTdXBwb3J0ZWRQcmV2aWV3U2l6ZXMoKS4KKyAgICAvLyBNdXN0IG5vdCBiZSBjYWxsZWQgaWYgZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpIHJldHVybnMgYW4gZW1wdHkKKyAgICAvLyBWZWN0b3Igb2YgU2l6ZS4gSWYgZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpIHJldHVybnMgYW4gZW1wdHkKKyAgICAvLyBWZWN0b3Igb2YgU2l6ZSwgdGhlIHdpZHRoIGFuZCBoZWlnaHQgcmV0dXJuZWQgZnJvbSB0aGlzIG1ldGhvZAorICAgIC8vIGlzIGludmFsaWQsIGFuZCBpcyAiLTF4LTEiLgorICAgIHZvaWQgZ2V0UHJlZmVycmVkUHJldmlld1NpemVGb3JWaWRlbyhpbnQgKndpZHRoLCBpbnQgKmhlaWdodCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFByZXZpZXdGcmFtZVJhdGUoaW50IGZwcyk7CisgICAgaW50IGdldFByZXZpZXdGcmFtZVJhdGUoKSBjb25zdDsKKyAgICB2b2lkIGdldFByZXZpZXdGcHNSYW5nZShpbnQgKm1pbl9mcHMsIGludCAqbWF4X2ZwcykgY29uc3Q7CisgICAgdm9pZCBzZXRQcmV2aWV3Rm9ybWF0KGNvbnN0IGNoYXIgKmZvcm1hdCk7CisgICAgY29uc3QgY2hhciAqZ2V0UHJldmlld0Zvcm1hdCgpIGNvbnN0OworICAgIHZvaWQgc2V0UGljdHVyZVNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGdldFBpY3R1cmVTaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKyAgICB2b2lkIGdldFN1cHBvcnRlZFBpY3R1cmVTaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdDsKKyAgICB2b2lkIHNldFBpY3R1cmVGb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0KTsKKyAgICBjb25zdCBjaGFyICpnZXRQaWN0dXJlRm9ybWF0KCkgY29uc3Q7CisKKyAgICB2b2lkIGR1bXAoKSBjb25zdDsKKyAgICBzdGF0dXNfdCBkdW1wKGludCBmZCwgY29uc3QgVmVjdG9yPFN0cmluZzE2PiYgYXJncykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgVmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1cHBvcnRlZCBwcmV2aWV3IGZvcm1hdHMKKyAgICAgKiBhcyBlbnVtcyBnaXZlbiBpbiBncmFwaGljcy5oLgorICAgICAqLworICAgIHZvaWQgZ2V0U3VwcG9ydGVkUHJldmlld0Zvcm1hdHMoVmVjdG9yPGludD4mIGZvcm1hdHMpIGNvbnN0OworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIG5vIGtleXMgYXJlIHByZXNlbnQKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKKworICAgIC8vIFBhcmFtZXRlciBrZXlzIHRvIGNvbW11bmljYXRlIGJldHdlZW4gY2FtZXJhIGFwcGxpY2F0aW9uIGFuZCBkcml2ZXIuCisgICAgLy8gVGhlIGFjY2VzcyAocmVhZC93cml0ZSwgcmVhZCBvbmx5LCBvciB3cml0ZSBvbmx5KSBpcyB2aWV3ZWQgZnJvbSB0aGUKKyAgICAvLyBwZXJzcGVjdGl2ZSBvZiBhcHBsaWNhdGlvbnMsIG5vdCBkcml2ZXIuCisKKyAgICAvLyBQcmV2aWV3IGZyYW1lIHNpemUgaW4gcGl4ZWxzICh3aWR0aCB4IGhlaWdodCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjQ4MHgzMjAiLiBSZWFkL1dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX1NJWkVbXTsKKyAgICAvLyBTdXBwb3J0ZWQgcHJldmlldyBmcmFtZSBzaXplcyBpbiBwaXhlbHMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjgwMHg2MDAsNDgweDMyMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfU0laRVNbXTsKKyAgICAvLyBUaGUgY3VycmVudCBtaW5pbXVtIGFuZCBtYXhpbXVtIHByZXZpZXcgZnBzLiBUaGlzIGNvbnRyb2xzIHRoZSByYXRlIG9mCisgICAgLy8gcHJldmlldyBmcmFtZXMgcmVjZWl2ZWQgKENBTUVSQV9NU0dfUFJFVklFV19GUkFNRSkuIFRoZSBtaW5pbXVtIGFuZAorICAgIC8vIG1heGltdW0gZnBzIG11c3QgYmUgb25lIG9mIHRoZSBlbGVtZW50cyBmcm9tCisgICAgLy8gS0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZQU19SQU5HRSBwYXJhbWV0ZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEwNTAwLDI2NjIzIgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX0ZQU19SQU5HRVtdOworICAgIC8vIFRoZSBzdXBwb3J0ZWQgcHJldmlldyBmcHMgKGZyYW1lLXBlci1zZWNvbmQpIHJhbmdlcy4gRWFjaCByYW5nZSBjb250YWlucworICAgIC8vIGEgbWluaW11bSBmcHMgYW5kIG1heGltdW0gZnBzLiBJZiBtaW5pbXVtIGZwcyBlcXVhbHMgdG8gbWF4aW11bSBmcHMsIHRoZQorICAgIC8vIGNhbWVyYSBvdXRwdXRzIGZyYW1lcyBpbiBmaXhlZCBmcmFtZSByYXRlLiBJZiBub3QsIHRoZSBjYW1lcmEgb3V0cHV0cworICAgIC8vIGZyYW1lcyBpbiBhdXRvIGZyYW1lIHJhdGUuIFRoZSBhY3R1YWwgZnJhbWUgcmF0ZSBmbHVjdHVhdGVzIGJldHdlZW4gdGhlCisgICAgLy8gbWluaW11bSBhbmQgdGhlIG1heGltdW0uIFRoZSBsaXN0IGhhcyBhdCBsZWFzdCBvbmUgZWxlbWVudC4gVGhlIGxpc3QgaXMKKyAgICAvLyBzb3J0ZWQgZnJvbSBzbWFsbCB0byBsYXJnZSAoZmlyc3QgYnkgbWF4aW11bSBmcHMgYW5kIHRoZW4gbWluaW11bSBmcHMpLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIoMTA1MDAsMjY2MjMpLCgxNTAwMCwyNjYyMyksKDMwMDAwLDMwMDAwKSIKKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRlBTX1JBTkdFW107CisgICAgLy8gVGhlIGltYWdlIGZvcm1hdCBmb3IgcHJldmlldyBmcmFtZXMuIFNlZSBDQU1FUkFfTVNHX1BSRVZJRVdfRlJBTUUgaW4KKyAgICAvLyBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLiBUaGUgZGVmYXVsdCBpcworICAgIC8vIFBJWEVMX0ZPUk1BVF9ZVVY0MjBTUC4gRXhhbXBsZSB2YWx1ZTogInl1djQyMHNwIiBvciBQSVhFTF9GT1JNQVRfWFhYCisgICAgLy8gY29uc3RhbnRzLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX0ZPUk1BVFtdOworICAgIC8vIFN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzIGZvciBwcmV2aWV3IGZyYW1lcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAieXV2NDIwc3AseXV2NDIyaS15dXl2Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfUFJFVklFV19GT1JNQVRTW107CisgICAgLy8gTnVtYmVyIG9mIHByZXZpZXcgZnJhbWVzIHBlciBzZWNvbmQuIFRoaXMgaXMgdGhlIHRhcmdldCBmcmFtZSByYXRlLiBUaGUKKyAgICAvLyBhY3R1YWwgZnJhbWUgcmF0ZSBkZXBlbmRzIG9uIHRoZSBkcml2ZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjE1Ii4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfUFJFVklFV19GUkFNRV9SQVRFW107CisgICAgLy8gU3VwcG9ydGVkIG51bWJlciBvZiBwcmV2aWV3IGZyYW1lcyBwZXIgc2Vjb25kLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIyNCwxNSwxMCIuIFJlYWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZSQU1FX1JBVEVTW107CisgICAgLy8gVGhlIGRpbWVuc2lvbnMgZm9yIGNhcHR1cmVkIHBpY3R1cmVzIGluIHBpeGVscyAod2lkdGggeCBoZWlnaHQpLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIxMDI0eDc2OCIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BJQ1RVUkVfU0laRVtdOworICAgIC8vIFN1cHBvcnRlZCBkaW1lbnNpb25zIGZvciBjYXB0dXJlZCBwaWN0dXJlcyBpbiBwaXhlbHMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjIwNDh4MTUzNiwxMDI0eDc2OCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfU0laRVNbXTsKKyAgICAvLyBUaGUgaW1hZ2UgZm9ybWF0IGZvciBjYXB0dXJlZCBwaWN0dXJlcy4gU2VlIENBTUVSQV9NU0dfQ09NUFJFU1NFRF9JTUFHRQorICAgIC8vIGluIGZyYW1ld29ya3MvYmFzZS9pbmNsdWRlL2NhbWVyYS9DYW1lcmEuaC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAianBlZyIgb3IgUElYRUxfRk9STUFUX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BJQ1RVUkVfRk9STUFUW107CisgICAgLy8gU3VwcG9ydGVkIGltYWdlIGZvcm1hdHMgZm9yIGNhcHR1cmVkIHBpY3R1cmVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJqcGVnLHJnYjU2NSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfRk9STUFUU1tdOworICAgIC8vIFRoZSB3aWR0aCAoaW4gcGl4ZWxzKSBvZiBFWElGIHRodW1ibmFpbCBpbiBKcGVnIHBpY3R1cmUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjUxMiIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0pQRUdfVEhVTUJOQUlMX1dJRFRIW107CisgICAgLy8gVGhlIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBFWElGIHRodW1ibmFpbCBpbiBKcGVnIHBpY3R1cmUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjM4NCIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0pQRUdfVEhVTUJOQUlMX0hFSUdIVFtdOworICAgIC8vIFN1cHBvcnRlZCBFWElGIHRodW1ibmFpbCBzaXplcyAod2lkdGggeCBoZWlnaHQpLiAweDAgbWVhbnMgbm90IHRodW1ibmFpbAorICAgIC8vIGluIEVYSUYuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjUxMngzODQsMzIweDI0MCwweDAiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9KUEVHX1RIVU1CTkFJTF9TSVpFU1tdOworICAgIC8vIFRoZSBxdWFsaXR5IG9mIHRoZSBFWElGIHRodW1ibmFpbCBpbiBKcGVnIHBpY3R1cmUuIFRoZSByYW5nZSBpcyAxIHRvIDEwMCwKKyAgICAvLyB3aXRoIDEwMCBiZWluZyB0aGUgYmVzdC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiOTAiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9KUEVHX1RIVU1CTkFJTF9RVUFMSVRZW107CisgICAgLy8gSnBlZyBxdWFsaXR5IG9mIGNhcHR1cmVkIHBpY3R1cmUuIFRoZSByYW5nZSBpcyAxIHRvIDEwMCwgd2l0aCAxMDAgYmVpbmcKKyAgICAvLyB0aGUgYmVzdC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiOTAiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9KUEVHX1FVQUxJVFlbXTsKKyAgICAvLyBUaGUgcm90YXRpb24gYW5nbGUgaW4gZGVncmVlcyByZWxhdGl2ZSB0byB0aGUgb3JpZW50YXRpb24gb2YgdGhlIGNhbWVyYS4KKyAgICAvLyBUaGlzIGFmZmVjdHMgdGhlIHBpY3R1cmVzIHJldHVybmVkIGZyb20gQ0FNRVJBX01TR19DT01QUkVTU0VEX0lNQUdFLiBUaGUKKyAgICAvLyBjYW1lcmEgZHJpdmVyIG1heSBzZXQgb3JpZW50YXRpb24gaW4gdGhlIEVYSUYgaGVhZGVyIHdpdGhvdXQgcm90YXRpbmcgdGhlCisgICAgLy8gcGljdHVyZS4gT3IgdGhlIGRyaXZlciBtYXkgcm90YXRlIHRoZSBwaWN0dXJlIGFuZCB0aGUgRVhJRiB0aHVtYm5haWwuIElmCisgICAgLy8gdGhlIEpwZWcgcGljdHVyZSBpcyByb3RhdGVkLCB0aGUgb3JpZW50YXRpb24gaW4gdGhlIEVYSUYgaGVhZGVyIHdpbGwgYmUKKyAgICAvLyBtaXNzaW5nIG9yIDEgKHJvdyAjMCBpcyB0b3AgYW5kIGNvbHVtbiAjMCBpcyBsZWZ0IHNpZGUpLgorICAgIC8vCisgICAgLy8gTm90ZSB0aGF0IHRoZSBKUEVHIHBpY3R1cmVzIG9mIGZyb250LWZhY2luZyBjYW1lcmFzIGFyZSBub3QgbWlycm9yZWQKKyAgICAvLyBhcyBpbiBwcmV2aWV3IGRpc3BsYXkuCisgICAgLy8KKyAgICAvLyBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGUgbmF0dXJhbCBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlIGlzIHBvcnRyYWl0LgorICAgIC8vIFRoZSBkZXZpY2UgaXMgcm90YXRlZCAyNzAgZGVncmVlcyBjbG9ja3dpc2UsIHNvIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gaXMKKyAgICAvLyAyNzAuIFN1cHBvc2UgYSBiYWNrLWZhY2luZyBjYW1lcmEgc2Vuc29yIGlzIG1vdW50ZWQgaW4gbGFuZHNjYXBlIGFuZCB0aGUKKyAgICAvLyB0b3Agc2lkZSBvZiB0aGUgY2FtZXJhIHNlbnNvciBpcyBhbGlnbmVkIHdpdGggdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlCisgICAgLy8gZGlzcGxheSBpbiBuYXR1cmFsIG9yaWVudGF0aW9uLiBTbyB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGlzIDkwLiBUaGUKKyAgICAvLyByb3RhdGlvbiBzaG91bGQgYmUgc2V0IHRvIDAgKDI3MCArIDkwKS4KKyAgICAvLworICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwIiBvciAiOTAiIG9yICIxODAiIG9yICIyNzAiLiBXcml0ZSBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9ST1RBVElPTltdOworICAgIC8vIEdQUyBsYXRpdHVkZSBjb29yZGluYXRlLiBHUFNMYXRpdHVkZSBhbmQgR1BTTGF0aXR1ZGVSZWYgd2lsbCBiZSBzdG9yZWQgaW4KKyAgICAvLyBKUEVHIEVYSUYgaGVhZGVyLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIyNS4wMzIxNDYiIG9yICItMzMuNDYyODA5Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX0xBVElUVURFW107CisgICAgLy8gR1BTIGxvbmdpdHVkZSBjb29yZGluYXRlLiBHUFNMb25naXR1ZGUgYW5kIEdQU0xvbmdpdHVkZVJlZiB3aWxsIGJlIHN0b3JlZAorICAgIC8vIGluIEpQRUcgRVhJRiBoZWFkZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEyMS41NjQ0NDgiIG9yICItNzAuNjYwMjg2Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX0xPTkdJVFVERVtdOworICAgIC8vIEdQUyBhbHRpdHVkZS4gR1BTQWx0aXR1ZGUgYW5kIEdQU0FsdGl0dWRlUmVmIHdpbGwgYmUgc3RvcmVkIGluIEpQRUcgRVhJRgorICAgIC8vIGhlYWRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMjEuMCIgb3IgIi01Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX0FMVElUVURFW107CisgICAgLy8gR1BTIHRpbWVzdGFtcCAoVVRDIGluIHNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwKS4gVGhpcyBzaG91bGQgYmUKKyAgICAvLyBzdG9yZWQgaW4gSlBFRyBFWElGIGhlYWRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTI1MTE5Mjc1NyIuIFdyaXRlIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0dQU19USU1FU1RBTVBbXTsKKyAgICAvLyBHUFMgUHJvY2Vzc2luZyBNZXRob2QKKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiR1BTIiBvciAiTkVUV09SSyIuIFdyaXRlIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0dQU19QUk9DRVNTSU5HX01FVEhPRFtdOworICAgIC8vIEN1cnJlbnQgd2hpdGUgYmFsYW5jZSBzZXR0aW5nLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvIiBvciBXSElURV9CQUxBTkNFX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1dISVRFX0JBTEFOQ0VbXTsKKyAgICAvLyBTdXBwb3J0ZWQgd2hpdGUgYmFsYW5jZSBzZXR0aW5ncy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxpbmNhbmRlc2NlbnQsZGF5bGlnaHQiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9XSElURV9CQUxBTkNFW107CisgICAgLy8gQ3VycmVudCBjb2xvciBlZmZlY3Qgc2V0dGluZy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAibm9uZSIgb3IgRUZGRUNUX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0VGRkVDVFtdOworICAgIC8vIFN1cHBvcnRlZCBjb2xvciBlZmZlY3Qgc2V0dGluZ3MuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIm5vbmUsbW9ubyxzZXBpYSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0VGRkVDVFNbXTsKKyAgICAvLyBDdXJyZW50IGFudGliYW5kaW5nIHNldHRpbmcuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIEFOVElCQU5ESU5HX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0FOVElCQU5ESU5HW107CisgICAgLy8gU3VwcG9ydGVkIGFudGliYW5kaW5nIHNldHRpbmdzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvLDUwaHosNjBoeixvZmYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9BTlRJQkFORElOR1tdOworICAgIC8vIEN1cnJlbnQgc2NlbmUgbW9kZS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byIgb3IgU0NFTkVfTU9ERV9YWFggY29uc3RhbnRzLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TQ0VORV9NT0RFW107CisgICAgLy8gU3VwcG9ydGVkIHNjZW5lIG1vZGUgc2V0dGluZ3MuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8sbmlnaHQsZmlyZXdvcmtzIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfU0NFTkVfTU9ERVNbXTsKKyAgICAvLyBDdXJyZW50IGZsYXNoIG1vZGUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIEZMQVNIX01PREVfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRkxBU0hfTU9ERVtdOworICAgIC8vIFN1cHBvcnRlZCBmbGFzaCBtb2Rlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxvbixvZmYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9GTEFTSF9NT0RFU1tdOworICAgIC8vIEN1cnJlbnQgZm9jdXMgbW9kZS4gVGhpcyB3aWxsIG5vdCBiZSBlbXB0eS4gQXBwbGljYXRpb25zIHNob3VsZCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIHRvIHN0YXJ0IHRoZSBmb2N1cyBpZiBmb2N1cyBtb2RlIGlzCisgICAgLy8gRk9DVVNfTU9ERV9BVVRPIG9yIEZPQ1VTX01PREVfTUFDUk8uCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIEZPQ1VTX01PREVfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRk9DVVNfTU9ERVtdOworICAgIC8vIFN1cHBvcnRlZCBmb2N1cyBtb2Rlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxtYWNybyxmaXhlZCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0ZPQ1VTX01PREVTW107CisgICAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGZvY3VzIGFyZWFzIHN1cHBvcnRlZC4gVGhpcyBpcyB0aGUgbWF4aW11bSBsZW5ndGgKKyAgICAvLyBvZiBLRVlfRk9DVVNfQVJFQVMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAiIG9yICIyIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NQVhfTlVNX0ZPQ1VTX0FSRUFTW107CisgICAgLy8gQ3VycmVudCBmb2N1cyBhcmVhcy4KKyAgICAvLworICAgIC8vIEJlZm9yZSBhY2Nlc3NpbmcgdGhpcyBwYXJhbWV0ZXIsIGFwcHMgc2hvdWxkIGNoZWNrCisgICAgLy8gS0VZX01BWF9OVU1fRk9DVVNfQVJFQVMgZmlyc3QgdG8ga25vdyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZm9jdXMgYXJlYXMKKyAgICAvLyBmaXJzdC4gSWYgdGhlIHZhbHVlIGlzIDAsIGZvY3VzIGFyZWEgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLworICAgIC8vIEVhY2ggZm9jdXMgYXJlYSBpcyBhIGZpdmUtZWxlbWVudCBpbnQgYXJyYXkuIFRoZSBmaXJzdCBmb3VyIGVsZW1lbnRzIGFyZQorICAgIC8vIHRoZSByZWN0YW5nbGUgb2YgdGhlIGFyZWEgKGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSkuIFRoZSBkaXJlY3Rpb24gaXMKKyAgICAvLyByZWxhdGl2ZSB0byB0aGUgc2Vuc29yIG9yaWVudGF0aW9uLCB0aGF0IGlzLCB3aGF0IHRoZSBzZW5zb3Igc2Vlcy4gVGhlCisgICAgLy8gZGlyZWN0aW9uIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgcm90YXRpb24gb3IgbWlycm9yaW5nIG9mCisgICAgLy8gQ0FNRVJBX0NNRF9TRVRfRElTUExBWV9PUklFTlRBVElPTi4gQ29vcmRpbmF0ZXMgcmFuZ2UgZnJvbSAtMTAwMCB0byAxMDAwLgorICAgIC8vICgtMTAwMCwtMTAwMCkgaXMgdGhlIHVwcGVyIGxlZnQgcG9pbnQuICgxMDAwLCAxMDAwKSBpcyB0aGUgbG93ZXIgcmlnaHQKKyAgICAvLyBwb2ludC4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgZm9jdXMgYXJlYXMgY2Fubm90IGJlIDAgb3IgbmVnYXRpdmUuCisgICAgLy8KKyAgICAvLyBUaGUgZmlmdGggZWxlbWVudCBpcyB0aGUgd2VpZ2h0LiBWYWx1ZXMgZm9yIHdlaWdodCBtdXN0IHJhbmdlIGZyb20gMSB0bworICAgIC8vIDEwMDAuICBUaGUgd2VpZ2h0IHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHBlci1waXhlbCB3ZWlnaHQgLSBhbGwKKyAgICAvLyBwaXhlbHMgaW4gdGhlIGFyZWEgaGF2ZSB0aGUgc3BlY2lmaWVkIHdlaWdodC4gVGhpcyBtZWFucyBhIHNtYWxsIGFyZWEKKyAgICAvLyB3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIGxhcmdlciBhcmVhIHdpbGwgaGF2ZSBsZXNzIGluZmx1ZW5jZSBvbiB0aGUKKyAgICAvLyBmb2N1c2luZyB0aGFuIHRoZSBsYXJnZXIgYXJlYS4gRm9jdXMgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKKyAgICAvLyBkcml2ZXIgd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLgorICAgIC8vCisgICAgLy8gQSBzcGVjaWFsIGNhc2Ugb2Ygc2luZ2xlIGZvY3VzIGFyZWEgKDAsMCwwLDAsMCkgbWVhbnMgZHJpdmVyIHRvIGRlY2lkZQorICAgIC8vIHRoZSBmb2N1cyBhcmVhLiBGb3IgZXhhbXBsZSwgdGhlIGRyaXZlciBtYXkgdXNlIG1vcmUgc2lnbmFscyB0byBkZWNpZGUKKyAgICAvLyBmb2N1cyBhcmVhcyBhbmQgY2hhbmdlIHRoZW0gZHluYW1pY2FsbHkuIEFwcHMgY2FuIHNldCAoMCwwLDAsMCwwKSBpZiB0aGV5CisgICAgLy8gd2FudCB0aGUgZHJpdmVyIHRvIGRlY2lkZSBmb2N1cyBhcmVhcy4KKyAgICAvLworICAgIC8vIEZvY3VzIGFyZWFzIGFyZSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBmaWVsZCBvZiB2aWV3IChLRVlfWk9PTSkuIE5vCisgICAgLy8gbWF0dGVyIHdoYXQgdGhlIHpvb20gbGV2ZWwgaXMsICgtMTAwMCwtMTAwMCkgcmVwcmVzZW50cyB0aGUgdG9wIG9mIHRoZQorICAgIC8vIGN1cnJlbnRseSB2aXNpYmxlIGNhbWVyYSBmcmFtZS4gVGhlIGZvY3VzIGFyZWEgY2Fubm90IGJlIHNldCB0byBiZQorICAgIC8vIG91dHNpZGUgdGhlIGN1cnJlbnQgZmllbGQgb2YgdmlldywgZXZlbiB3aGVuIHVzaW5nIHpvb20uCisgICAgLy8KKyAgICAvLyBGb2N1cyBhcmVhIG9ubHkgaGFzIGVmZmVjdCBpZiB0aGUgY3VycmVudCBmb2N1cyBtb2RlIGlzIEZPQ1VTX01PREVfQVVUTywKKyAgICAvLyBGT0NVU19NT0RFX01BQ1JPLCBGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU8sIG9yCisgICAgLy8gRk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIigtMTAsLTEwLDAsMCwzMDApLCgwLDAsMTAsMTAsNzAwKSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0ZPQ1VTX0FSRUFTW107CisgICAgLy8gRm9jYWwgbGVuZ3RoIGluIG1pbGxpbWV0ZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjQuMzEiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0ZPQ0FMX0xFTkdUSFtdOworICAgIC8vIEhvcml6b250YWwgYW5nbGUgb2YgdmlldyBpbiBkZWdyZWVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICI1NC44Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9IT1JJWk9OVEFMX1ZJRVdfQU5HTEVbXTsKKyAgICAvLyBWZXJ0aWNhbCBhbmdsZSBvZiB2aWV3IGluIGRlZ3JlZXMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjQyLjUiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZFUlRJQ0FMX1ZJRVdfQU5HTEVbXTsKKyAgICAvLyBFeHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXguIDAgbWVhbnMgZXhwb3N1cmUgaXMgbm90IGFkanVzdGVkLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICItNSIgb3IgIjUiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9FWFBPU1VSRV9DT01QRU5TQVRJT05bXTsKKyAgICAvLyBUaGUgbWF4aW11bSBleHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggKD49MCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9FWFBPU1VSRV9DT01QRU5TQVRJT05bXTsKKyAgICAvLyBUaGUgbWluaW11bSBleHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggKDw9MCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIi02Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NSU5fRVhQT1NVUkVfQ09NUEVOU0FUSU9OW107CisgICAgLy8gVGhlIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiBzdGVwLiBFeHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggbXVsdGlwbHkgYnkKKyAgICAvLyBzdGVwIGVxYWxzIHRvIEVWLiBFeDogaWYgZXhwb3N1cmUgY29tcGVuc2F0aW9uIGluZGV4IGlzIC02IGFuZCBzdGVwIGlzCisgICAgLy8gMC4zMzMzLCBFViBpcyAtMi4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMC4zMzMzMzMzMzMiIG9yICIwLjUiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0VYUE9TVVJFX0NPTVBFTlNBVElPTl9TVEVQW107CisgICAgLy8gVGhlIHN0YXRlIG9mIHRoZSBhdXRvLWV4cG9zdXJlIGxvY2suICJ0cnVlIiBtZWFucyB0aGF0CisgICAgLy8gYXV0by1leHBvc3VyZSBpcyBsb2NrZWQgdG8gaXRzIGN1cnJlbnQgdmFsdWUgYW5kIHdpbGwgbm90CisgICAgLy8gY2hhbmdlLiAiZmFsc2UiIG1lYW5zIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgaXMgZnJlZSB0bworICAgIC8vIGNoYW5nZSBleHBvc3VyZSB2YWx1ZXMuIElmIGF1dG8tZXhwb3N1cmUgaXMgYWxyZWFkeSBsb2NrZWQsCisgICAgLy8gc2V0dGluZyB0aGlzIHRvIHRydWUgYWdhaW4gaGFzIG5vIGVmZmVjdCAodGhlIGRyaXZlciB3aWxsIG5vdAorICAgIC8vIHJlY2FsY3VsYXRlIGV4cG9zdXJlIHZhbHVlcykuIENoYW5naW5nIGV4cG9zdXJlIGNvbXBlbnNhdGlvbgorICAgIC8vIHNldHRpbmdzIHdpbGwgc3RpbGwgYWZmZWN0IHRoZSBleHBvc3VyZSBzZXR0aW5ncyB3aGlsZQorICAgIC8vIGF1dG8tZXhwb3N1cmUgaXMgbG9ja2VkLiBTdG9wcGluZyBwcmV2aWV3IG9yIHRha2luZyBhIHN0aWxsCisgICAgLy8gaW1hZ2Ugd2lsbCBub3QgY2hhbmdlIHRoZSBsb2NrLiBJbiBjb25qdW5jdGlvbiB3aXRoCisgICAgLy8gZXhwb3N1cmUgY29tcGVuc2F0aW9uLCB0aGlzIGFsbG93cyBmb3IgY2FwdHVyaW5nIG11bHRpLWV4cG9zdXJlCisgICAgLy8gYnJhY2tldHMgd2l0aCBrbm93biByZWxhdGl2ZSBleHBvc3VyZSB2YWx1ZXMuIExvY2tpbmcKKyAgICAvLyBhdXRvLWV4cG9zdXJlIGFmdGVyIG9wZW4gYnV0IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0bworICAgIC8vIHN0YXJ0UHJldmlldyBtYXkgcmVzdWx0IGluIHNldmVyZWx5IG92ZXItIG9yIHVuZGVyLWV4cG9zZWQKKyAgICAvLyBpbWFnZXMuICBUaGUgZHJpdmVyIHdpbGwgbm90IGNoYW5nZSB0aGUgQUUgbG9jayBhZnRlcgorICAgIC8vIGF1dG8tZm9jdXMgY29tcGxldGVzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9BVVRPX0VYUE9TVVJFX0xPQ0tbXTsKKyAgICAvLyBXaGV0aGVyIGxvY2tpbmcgdGhlIGF1dG8tZXhwb3N1cmUgaXMgc3VwcG9ydGVkLiAidHJ1ZSIgbWVhbnMgaXQgaXMsIGFuZAorICAgIC8vICJmYWxzZSIgb3IgdGhpcyBrZXkgbm90IGV4aXN0aW5nIG1lYW5zIGl0IGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0FVVE9fRVhQT1NVUkVfTE9DS19TVVBQT1JURURbXTsKKyAgICAvLyBUaGUgc3RhdGUgb2YgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSBsb2NrLiAidHJ1ZSIgbWVhbnMgdGhhdAorICAgIC8vIGF1dG8td2hpdGUgYmFsYW5jZSBpcyBsb2NrZWQgdG8gaXRzIGN1cnJlbnQgdmFsdWUgYW5kIHdpbGwgbm90CisgICAgLy8gY2hhbmdlLiAiZmFsc2UiIG1lYW5zIHRoZSBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBmcmVlIHRvCisgICAgLy8gY2hhbmdlIHdoaXRlIGJhbGFuY2UgdmFsdWVzLiBJZiBhdXRvLXdoaXRlIGJhbGFuY2UgaXMgYWxyZWFkeQorICAgIC8vIGxvY2tlZCwgc2V0dGluZyB0aGlzIHRvIHRydWUgYWdhaW4gaGFzIG5vIGVmZmVjdCAodGhlIGRyaXZlcgorICAgIC8vIHdpbGwgbm90IHJlY2FsY3VsYXRlIHdoaXRlIGJhbGFuY2UgdmFsdWVzKS4gU3RvcHBpbmcgcHJldmlldyBvcgorICAgIC8vIHRha2luZyBhIHN0aWxsIGltYWdlIHdpbGwgbm90IGNoYW5nZSB0aGUgbG9jay4gSW4gY29uanVuY3Rpb24KKyAgICAvLyB3aXRoIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiwgdGhpcyBhbGxvd3MgZm9yIGNhcHR1cmluZworICAgIC8vIG11bHRpLWV4cG9zdXJlIGJyYWNrZXRzIHdpdGggZml4ZWQgd2hpdGUgYmFsYW5jZS4gTG9ja2luZworICAgIC8vIGF1dG8td2hpdGUgYmFsYW5jZSBhZnRlciBvcGVuIGJ1dCBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8KKyAgICAvLyBzdGFydFByZXZpZXcgbWF5IHJlc3VsdCBpbiBzZXZlcmVseSBpbmNvcnJlY3QgY29sb3IuICBUaGUKKyAgICAvLyBkcml2ZXIgd2lsbCBub3QgY2hhbmdlIHRoZSBBV0IgbG9jayBhZnRlciBhdXRvLWZvY3VzCisgICAgLy8gY29tcGxldGVzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9BVVRPX1dISVRFQkFMQU5DRV9MT0NLW107CisgICAgLy8gV2hldGhlciBsb2NraW5nIHRoZSBhdXRvLXdoaXRlIGJhbGFuY2UgaXMgc3VwcG9ydGVkLiAidHJ1ZSIKKyAgICAvLyBtZWFucyBpdCBpcywgYW5kICJmYWxzZSIgb3IgdGhpcyBrZXkgbm90IGV4aXN0aW5nIG1lYW5zIGl0IGlzCisgICAgLy8gbm90IHN1cHBvcnRlZC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfQVVUT19XSElURUJBTEFOQ0VfTE9DS19TVVBQT1JURURbXTsKKworICAgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZyBhcmVhcyBzdXBwb3J0ZWQuIFRoaXMgaXMgdGhlIG1heGltdW0KKyAgICAvLyBsZW5ndGggb2YgS0VZX01FVEVSSU5HX0FSRUFTLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwIiBvciAiMiIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX05VTV9NRVRFUklOR19BUkVBU1tdOworICAgIC8vIEN1cnJlbnQgbWV0ZXJpbmcgYXJlYXMuIENhbWVyYSBkcml2ZXIgdXNlcyB0aGVzZSBhcmVhcyB0byBkZWNpZGUKKyAgICAvLyBleHBvc3VyZS4KKyAgICAvLworICAgIC8vIEJlZm9yZSBhY2Nlc3NpbmcgdGhpcyBwYXJhbWV0ZXIsIGFwcHMgc2hvdWxkIGNoZWNrCisgICAgLy8gS0VZX01BWF9OVU1fTUVURVJJTkdfQVJFQVMgZmlyc3QgdG8ga25vdyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbWV0ZXJpbmcKKyAgICAvLyBhcmVhcyBmaXJzdC4gSWYgdGhlIHZhbHVlIGlzIDAsIG1ldGVyaW5nIGFyZWEgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLworICAgIC8vIEVhY2ggbWV0ZXJpbmcgYXJlYSBpcyBhIHJlY3RhbmdsZSB3aXRoIHNwZWNpZmllZCB3ZWlnaHQuIFRoZSBkaXJlY3Rpb24gaXMKKyAgICAvLyByZWxhdGl2ZSB0byB0aGUgc2Vuc29yIG9yaWVudGF0aW9uLCB0aGF0IGlzLCB3aGF0IHRoZSBzZW5zb3Igc2Vlcy4gVGhlCisgICAgLy8gZGlyZWN0aW9uIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgcm90YXRpb24gb3IgbWlycm9yaW5nIG9mCisgICAgLy8gQ0FNRVJBX0NNRF9TRVRfRElTUExBWV9PUklFTlRBVElPTi4gQ29vcmRpbmF0ZXMgb2YgdGhlIHJlY3RhbmdsZSByYW5nZQorICAgIC8vIGZyb20gLTEwMDAgdG8gMTAwMC4gKC0xMDAwLCAtMTAwMCkgaXMgdGhlIHVwcGVyIGxlZnQgcG9pbnQuICgxMDAwLCAxMDAwKQorICAgIC8vIGlzIHRoZSBsb3dlciByaWdodCBwb2ludC4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgbWV0ZXJpbmcgYXJlYXMgY2Fubm90CisgICAgLy8gYmUgMCBvciBuZWdhdGl2ZS4KKyAgICAvLworICAgIC8vIFRoZSBmaWZ0aCBlbGVtZW50IGlzIHRoZSB3ZWlnaHQuIFZhbHVlcyBmb3Igd2VpZ2h0IG11c3QgcmFuZ2UgZnJvbSAxIHRvCisgICAgLy8gMTAwMC4gIFRoZSB3ZWlnaHQgc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGEgcGVyLXBpeGVsIHdlaWdodCAtIGFsbAorICAgIC8vIHBpeGVscyBpbiB0aGUgYXJlYSBoYXZlIHRoZSBzcGVjaWZpZWQgd2VpZ2h0LiBUaGlzIG1lYW5zIGEgc21hbGwgYXJlYQorICAgIC8vIHdpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgbGFyZ2VyIGFyZWEgd2lsbCBoYXZlIGxlc3MgaW5mbHVlbmNlIG9uIHRoZQorICAgIC8vIG1ldGVyaW5nIHRoYW4gdGhlIGxhcmdlciBhcmVhLiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kCisgICAgLy8gdGhlIGRyaXZlciB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uCisgICAgLy8KKyAgICAvLyBBIHNwZWNpYWwgY2FzZSBvZiBhbGwtemVybyBzaW5nbGUgbWV0ZXJpbmcgYXJlYSBtZWFucyBkcml2ZXIgdG8gZGVjaWRlCisgICAgLy8gdGhlIG1ldGVyaW5nIGFyZWEuIEZvciBleGFtcGxlLCB0aGUgZHJpdmVyIG1heSB1c2UgbW9yZSBzaWduYWxzIHRvIGRlY2lkZQorICAgIC8vIG1ldGVyaW5nIGFyZWFzIGFuZCBjaGFuZ2UgdGhlbSBkeW5hbWljYWxseS4gQXBwcyBjYW4gc2V0IGFsbC16ZXJvIGlmIHRoZXkKKyAgICAvLyB3YW50IHRoZSBkcml2ZXIgdG8gZGVjaWRlIG1ldGVyaW5nIGFyZWFzLgorICAgIC8vCisgICAgLy8gTWV0ZXJpbmcgYXJlYXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGZpZWxkIG9mIHZpZXcgKEtFWV9aT09NKS4KKyAgICAvLyBObyBtYXR0ZXIgd2hhdCB0aGUgem9vbSBsZXZlbCBpcywgKC0xMDAwLC0xMDAwKSByZXByZXNlbnRzIHRoZSB0b3Agb2YgdGhlCisgICAgLy8gY3VycmVudGx5IHZpc2libGUgY2FtZXJhIGZyYW1lLiBUaGUgbWV0ZXJpbmcgYXJlYSBjYW5ub3QgYmUgc2V0IHRvIGJlCisgICAgLy8gb3V0c2lkZSB0aGUgY3VycmVudCBmaWVsZCBvZiB2aWV3LCBldmVuIHdoZW4gdXNpbmcgem9vbS4KKyAgICAvLworICAgIC8vIE5vIG1hdHRlciB3aGF0IG1ldGVyaW5nIGFyZWFzIGFyZSwgdGhlIGZpbmFsIGV4cG9zdXJlIGFyZSBjb21wZW5zYXRlZAorICAgIC8vIGJ5IEtFWV9FWFBPU1VSRV9DT01QRU5TQVRJT04uCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIigtMTAsLTEwLDAsMCwzMDApLCgwLDAsMTAsMTAsNzAwKSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01FVEVSSU5HX0FSRUFTW107CisgICAgLy8gQ3VycmVudCB6b29tIHZhbHVlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwIiBvciAiNiIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1pPT01bXTsKKyAgICAvLyBNYXhpbXVtIHpvb20gdmFsdWUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9aT09NW107CisgICAgLy8gVGhlIHpvb20gcmF0aW9zIG9mIGFsbCB6b29tIHZhbHVlcy4gVGhlIHpvb20gcmF0aW8gaXMgaW4gMS8xMDAKKyAgICAvLyBpbmNyZW1lbnRzLiBFeDogYSB6b29tIG9mIDMuMnggaXMgcmV0dXJuZWQgYXMgMzIwLiBUaGUgbnVtYmVyIG9mIGxpc3QKKyAgICAvLyBlbGVtZW50cyBpcyBLRVlfTUFYX1pPT00gKyAxLiBUaGUgZmlyc3QgZWxlbWVudCBpcyBhbHdheXMgMTAwLiBUaGUgbGFzdAorICAgIC8vIGVsZW1lbnQgaXMgdGhlIHpvb20gcmF0aW8gb2Ygem9vbSB2YWx1ZSBLRVlfTUFYX1pPT00uCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEwMCwxNTAsMjAwLDI1MCwzMDAsMzUwLDQwMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfWk9PTV9SQVRJT1NbXTsKKyAgICAvLyBXaGV0aGVyIHpvb20gaXMgc3VwcG9ydGVkLiBab29tIGlzIHN1cHBvcnRlZCBpZiB0aGUgdmFsdWUgaXMgInRydWUiLiBab29tCisgICAgLy8gaXMgbm90IHN1cHBvcnRlZCBpZiB0aGUgdmFsdWUgaXMgbm90ICJ0cnVlIiBvciB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9aT09NX1NVUFBPUlRFRFtdOworICAgIC8vIFdoZXRoZXIgaWYgc21vb3RoIHpvb20gaXMgc3VwcG9ydGVkLiBTbW9vdGggem9vbSBpcyBzdXBwb3J0ZWQgaWYgdGhlCisgICAgLy8gdmFsdWUgaXMgInRydWUiLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGlmIHRoZSB2YWx1ZSBpcyBub3QgInRydWUiIG9yIHRoZQorICAgIC8vIGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAvLyBTZWUgQ0FNRVJBX0NNRF9TVEFSVF9TTU9PVEhfWk9PTSwgQ0FNRVJBX0NNRF9TVE9QX1NNT09USF9aT09NLCBhbmQKKyAgICAvLyBDQU1FUkFfTVNHX1pPT00gaW4gZnJhbWV3b3Jrcy9iYXNlL2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TTU9PVEhfWk9PTV9TVVBQT1JURURbXTsKKworICAgIC8vIFRoZSBkaXN0YW5jZXMgKGluIG1ldGVycykgZnJvbSB0aGUgY2FtZXJhIHRvIHdoZXJlIGFuIG9iamVjdCBhcHBlYXJzIHRvCisgICAgLy8gYmUgaW4gZm9jdXMuIFRoZSBvYmplY3QgaXMgc2hhcnBlc3QgYXQgdGhlIG9wdGltYWwgZm9jdXMgZGlzdGFuY2UuIFRoZQorICAgIC8vIGRlcHRoIG9mIGZpZWxkIGlzIHRoZSBmYXIgZm9jdXMgZGlzdGFuY2UgbWludXMgbmVhciBmb2N1cyBkaXN0YW5jZS4KKyAgICAvLworICAgIC8vIEZvY3VzIGRpc3RhbmNlcyBtYXkgY2hhbmdlIGFmdGVyIHN0YXJ0aW5nIGF1dG8gZm9jdXMsIGNhbmNlbGluZyBhdXRvCisgICAgLy8gZm9jdXMsIG9yIHN0YXJ0aW5nIHRoZSBwcmV2aWV3LiBBcHBsaWNhdGlvbnMgY2FuIHJlYWQgdGhpcyBhbnl0aW1lIHRvIGdldAorICAgIC8vIHRoZSBsYXRlc3QgZm9jdXMgZGlzdGFuY2VzLiBJZiB0aGUgZm9jdXMgbW9kZSBpcyBGT0NVU19NT0RFX0NPTlRJTlVPVVMsCisgICAgLy8gZm9jdXMgZGlzdGFuY2VzIG1heSBjaGFuZ2UgZnJvbSB0aW1lIHRvIHRpbWUuCisgICAgLy8KKyAgICAvLyBUaGlzIGlzIGludGVuZGVkIHRvIGVzdGltYXRlIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBjYW1lcmEgYW5kIHRoZQorICAgIC8vIHN1YmplY3QuIEFmdGVyIGF1dG9mb2N1cywgdGhlIHN1YmplY3QgZGlzdGFuY2UgbWF5IGJlIHdpdGhpbiBuZWFyIGFuZCBmYXIKKyAgICAvLyBmb2N1cyBkaXN0YW5jZS4gSG93ZXZlciwgdGhlIHByZWNpc2lvbiBkZXBlbmRzIG9uIHRoZSBjYW1lcmEgaGFyZHdhcmUsCisgICAgLy8gYXV0b2ZvY3VzIGFsZ29yaXRobSwgdGhlIGZvY3VzIGFyZWEsIGFuZCB0aGUgc2NlbmUuIFRoZSBlcnJvciBjYW4gYmUKKyAgICAvLyBsYXJnZSBhbmQgaXQgc2hvdWxkIGJlIG9ubHkgdXNlZCBhcyBhIHJlZmVyZW5jZS4KKyAgICAvLworICAgIC8vIEZhciBmb2N1cyBkaXN0YW5jZSA+IG9wdGltYWwgZm9jdXMgZGlzdGFuY2UgPiBuZWFyIGZvY3VzIGRpc3RhbmNlLiBJZgorICAgIC8vIHRoZSBmYXIgZm9jdXMgZGlzdGFuY2UgaXMgaW5maW5pdHksIHRoZSB2YWx1ZSBzaG91bGQgYmUgIkluZmluaXR5IiAoY2FzZQorICAgIC8vIHNlbnNpdGl2ZSkuIFRoZSBmb3JtYXQgaXMgdGhyZWUgZmxvYXQgdmFsdWVzIHNlcGFyYXRlZCBieSBjb21tYXMuIFRoZQorICAgIC8vIGZpcnN0IGlzIG5lYXIgZm9jdXMgZGlzdGFuY2UuIFRoZSBzZWNvbmQgaXMgb3B0aW1hbCBmb2N1cyBkaXN0YW5jZS4gVGhlCisgICAgLy8gdGhpcmQgaXMgZmFyIGZvY3VzIGRpc3RhbmNlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwLjk1LDEuOSxJbmZpbml0eSIgb3IgIjAuMDQ5LDAuMDUsMC4wNTEiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0ZPQ1VTX0RJU1RBTkNFU1tdOworCisgICAgLy8gVGhlIGN1cnJlbnQgZGltZW5zaW9ucyBpbiBwaXhlbHMgKHdpZHRoIHggaGVpZ2h0KSBmb3IgdmlkZW8gZnJhbWVzLgorICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lIG9mIHRoZSBzdXBwb3J0ZWQgc2l6ZXMgcmV0cmlldmVkCisgICAgLy8gdmlhIEtFWV9TVVBQT1JURURfVklERU9fU0laRVMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEyODB4NzIwIi4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfVklERU9fU0laRVtdOworICAgIC8vIEEgbGlzdCBvZiB0aGUgc3VwcG9ydGVkIGRpbWVuc2lvbnMgaW4gcGl4ZWxzICh3aWR0aCB4IGhlaWdodCkKKyAgICAvLyBmb3IgdmlkZW8gZnJhbWVzLiBTZWUgQ0FNRVJBX01TR19WSURFT19GUkFNRSBmb3IgZGV0YWlscyBpbgorICAgIC8vIGZyYW1ld29ya3MvYmFzZS9pbmNsdWRlL2NhbWVyYS9DYW1lcmEuaC4KKyAgICAvLyBFeGFtcGxlOiAiMTc2eDE0NCwxMjgweDcyMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1ZJREVPX1NJWkVTW107CisKKyAgICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGV0ZWN0ZWQgZmFjZXMgc3VwcG9ydGVkIGJ5IGhhcmR3YXJlIGZhY2UKKyAgICAvLyBkZXRlY3Rpb24uIElmIHRoZSB2YWx1ZSBpcyAwLCBoYXJkd2FyZSBmYWNlIGRldGVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIEV4YW1wbGU6ICI1Ii4gUmVhZCBvbmx5CisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9OVU1fREVURUNURURfRkFDRVNfSFdbXTsKKworICAgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXRlY3RlZCBmYWNlcyBzdXBwb3J0ZWQgYnkgc29mdHdhcmUgZmFjZQorICAgIC8vIGRldGVjdGlvbi4gSWYgdGhlIHZhbHVlIGlzIDAsIHNvZnR3YXJlIGZhY2UgZGV0ZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gRXhhbXBsZTogIjUiLiBSZWFkIG9ubHkKKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19TV1tdOworCisgICAgLy8gUHJlZmVycmVkIHByZXZpZXcgZnJhbWUgc2l6ZSBpbiBwaXhlbHMgZm9yIHZpZGVvIHJlY29yZGluZy4KKyAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHNpemVzIHJldHJpZXZlZAorICAgIC8vIHZpYSBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfU0laRVMuIFRoaXMga2V5IGNhbiBiZSB1c2VkIG9ubHkgd2hlbgorICAgIC8vIGdldFN1cHBvcnRlZFZpZGVvU2l6ZXMoKSBkb2VzIG5vdCByZXR1cm4gYW4gZW1wdHkgVmVjdG9yIG9mIFNpemUuCisgICAgLy8gQ2FtY29yZGVyIGFwcGxpY2F0aW9ucyBhcmUgcmVjb21tZW5kZWQgdG8gc2V0IHRoZSBwcmV2aWV3IHNpemUKKyAgICAvLyB0byBhIHZhbHVlIHRoYXQgaXMgbm90IGxhcmdlciB0aGFuIHRoZSBwcmVmZXJyZWQgcHJldmlldyBzaXplLgorICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgcHJvZHVjdCBvZiB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUKKyAgICAvLyBwcmV2aWV3IHNpemUgc2hvdWxkIG5vdCBiZSBsYXJnZXIgdGhhbiB0aGF0IG9mIHRoZSBwcmVmZXJyZWQKKyAgICAvLyBwcmV2aWV3IHNpemUuIEluIGFkZGl0aW9uLCB3ZSByZWNvbW1lbmQgdG8gY2hvb3MgYSBwcmV2aWV3IHNpemUKKyAgICAvLyB0aGF0IGhhcyB0aGUgc2FtZSBhc3BlY3QgcmF0aW8gYXMgdGhlIHJlc29sdXRpb24gb2YgdmlkZW8gdG8gYmUKKyAgICAvLyByZWNvcmRlZC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiODAweDYwMCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfUFJFRkVSUkVEX1BSRVZJRVdfU0laRV9GT1JfVklERU9bXTsKKworICAgIC8vIFRoZSBpbWFnZSBmb3JtYXQgZm9yIHZpZGVvIGZyYW1lcy4gU2VlIENBTUVSQV9NU0dfVklERU9fRlJBTUUgaW4KKyAgICAvLyBmcmFtZXdvcmtzL2Jhc2UvaW5jbHVkZS9jYW1lcmEvQ2FtZXJhLmguCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogInl1djQyMHNwIiBvciBQSVhFTF9GT1JNQVRfWFhYIGNvbnN0YW50cy4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19GUkFNRV9GT1JNQVRbXTsKKworICAgIC8vIFNldHMgdGhlIGhpbnQgb2YgdGhlIHJlY29yZGluZyBtb2RlLiBJZiB0aGlzIGlzIHRydWUsIE1lZGlhUmVjb3JkZXIuc3RhcnQKKyAgICAvLyBtYXkgYmUgZmFzdGVyIG9yIGhhcyBsZXNzIGdsaXRjaGVzLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHN0YXJ0aW5nCisgICAgLy8gdGhlIHByZXZpZXcgZm9yIHRoZSBiZXN0IHJlc3VsdC4gQnV0IGl0IGlzIGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBoaW50CisgICAgLy8gd2hpbGUgdGhlIHByZXZpZXcgaXMgYWN0aXZlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4KKyAgICAvLworICAgIC8vIFRoZSBhcHBzIGNhbiBzdGlsbCBjYWxsIENhbWVyYS50YWtlUGljdHVyZSB3aGVuIHRoZSBoaW50IGlzIHRydWUuIFRoZQorICAgIC8vIGFwcHMgY2FuIGNhbGwgTWVkaWFSZWNvcmRlci5zdGFydCB3aGVuIHRoZSBoaW50IGlzIGZhbHNlLiBCdXQgdGhlCisgICAgLy8gcGVyZm9ybWFuY2UgbWF5IGJlIHdvcnNlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIiBvciAiZmFsc2UiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9SRUNPUkRJTkdfSElOVFtdOworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHZpZGVvIHNuYXBzaG90IGlzIHN1cHBvcnRlZC4gVGhhdCBpcywgYXBwbGljYXRpb25zCisgICAgLy8gY2FuIGNhbGwgQ2FtZXJhLnRha2VQaWN0dXJlIGR1cmluZyByZWNvcmRpbmcuIEFwcGxpY2F0aW9ucyBkbyBub3QgbmVlZCB0bworICAgIC8vIGNhbGwgQ2FtZXJhLnN0YXJ0UHJldmlldyBhZnRlciB0YWtpbmcgYSBwaWN0dXJlLiBUaGUgcHJldmlldyB3aWxsIGJlCisgICAgLy8gc3RpbGwgYWN0aXZlLiBPdGhlciB0aGFuIHRoYXQsIHRha2luZyBhIHBpY3R1cmUgZHVyaW5nIHJlY29yZGluZyBpcworICAgIC8vIGlkZW50aWNhbCB0byB0YWtpbmcgYSBwaWN0dXJlIG5vcm1hbGx5LiBBbGwgc2V0dGluZ3MgYW5kIG1ldGhvZHMgcmVsYXRlZAorICAgIC8vIHRvIHRha2VQaWN0dXJlIHdvcmsgaWRlbnRpY2FsbHkuIEV4OiBLRVlfUElDVFVSRV9TSVpFLAorICAgIC8vIEtFWV9TVVBQT1JURURfUElDVFVSRV9TSVpFUywgS0VZX0pQRUdfUVVBTElUWSwgS0VZX1JPVEFUSU9OLCBhbmQgZXRjLgorICAgIC8vIFRoZSBwaWN0dXJlIHdpbGwgaGF2ZSBhbiBFWElGIGhlYWRlci4gRkxBU0hfTU9ERV9BVVRPIGFuZCBGTEFTSF9NT0RFX09OCisgICAgLy8gYWxzbyBzdGlsbCB3b3JrLCBidXQgdGhlIHZpZGVvIHdpbGwgcmVjb3JkIHRoZSBmbGFzaC4KKyAgICAvLworICAgIC8vIEFwcGxpY2F0aW9ucyBjYW4gc2V0IHNodXR0ZXIgY2FsbGJhY2sgYXMgbnVsbCB0byBhdm9pZCB0aGUgc2h1dHRlcgorICAgIC8vIHNvdW5kLiBJdCBpcyBhbHNvIHJlY29tbWVuZGVkIHRvIHNldCByYXcgcGljdHVyZSBhbmQgcG9zdCB2aWV3IGNhbGxiYWNrcworICAgIC8vIHRvIG51bGwgdG8gYXZvaWQgdGhlIGludGVycnVwdCBvZiBwcmV2aWV3IGRpc3BsYXkuCisgICAgLy8KKyAgICAvLyBGaWVsZC1vZi12aWV3IG9mIHRoZSByZWNvcmRlZCB2aWRlbyBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhhdCBvZiB0aGUKKyAgICAvLyBjYXB0dXJlZCBwaWN0dXJlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAidHJ1ZSIgb3IgImZhbHNlIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TTkFQU0hPVF9TVVBQT1JURURbXTsKKworICAgIC8vIFRoZSBzdGF0ZSBvZiB0aGUgdmlkZW8gc3RhYmlsaXphdGlvbi4gSWYgc2V0IHRvIHRydWUsIGJvdGggdGhlCisgICAgLy8gcHJldmlldyBzdHJlYW0gYW5kIHRoZSByZWNvcmRlZCB2aWRlbyBzdHJlYW0gYXJlIHN0YWJpbGl6ZWQgYnkKKyAgICAvLyB0aGUgY2FtZXJhLiBPbmx5IHZhbGlkIHRvIHNldCBpZiBLRVlfVklERU9fU1RBQklMSVpBVElPTl9TVVBQT1JURUQgaXMKKyAgICAvLyBzZXQgdG8gdHJ1ZS4KKyAgICAvLworICAgIC8vIFRoZSB2YWx1ZSBvZiB0aGlzIGtleSBjYW4gYmUgY2hhbmdlZCBhbnkgdGltZSB0aGUgY2FtZXJhIGlzCisgICAgLy8gb3Blbi4gSWYgcHJldmlldyBvciByZWNvcmRpbmcgaXMgYWN0aXZlLCBpdCBpcyBhY2NlcHRhYmxlIGZvcgorICAgIC8vIHRoZXJlIHRvIGJlIGEgc2xpZ2h0IHZpZGVvIGdsaXRjaCB3aGVuIHZpZGVvIHN0YWJpbGl6YXRpb24gaXMKKyAgICAvLyB0b2dnbGVkIG9uIGFuZCBvZmYuCisgICAgLy8KKyAgICAvLyBUaGlzIG9ubHkgc3RhYmlsaXplcyB2aWRlbyBzdHJlYW1zIChiZXR3ZWVuLWZyYW1lcyBzdGFiaWxpemF0aW9uKSwgYW5kCisgICAgLy8gaGFzIG5vIGVmZmVjdCBvbiBzdGlsbCBpbWFnZSBjYXB0dXJlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TVEFCSUxJWkFUSU9OW107CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdmlkZW8gc3RhYmlsaXphdGlvbiBpcyBzdXBwb3J0ZWQuIFRoYXQgaXMsIGFwcGxpY2F0aW9ucworICAgIC8vIGNhbiBzZXQgS0VZX1ZJREVPX1NUQUJJTElaQVRJT04gdG8gdHJ1ZSBhbmQgaGF2ZSBhIHN0YWJpbGl6ZWQgcHJldmlldworICAgIC8vIHN0cmVhbSBhbmQgcmVjb3JkIHN0YWJpbGl6ZWQgdmlkZW9zLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TVEFCSUxJWkFUSU9OX1NVUFBPUlRFRFtdOworCisgICAgLy8gU3VwcG9ydGVkIG1vZGVzIGZvciBzcGVjaWFsIGVmZmVjdHMgd2l0aCBsaWdodC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlczogImxvd2xpZ2h0LGhkciIuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0xJR0hURlhbXTsKKworICAgIC8vIFZhbHVlIGZvciBLRVlfWk9PTV9TVVBQT1JURUQgb3IgS0VZX1NNT09USF9aT09NX1NVUFBPUlRFRC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBUUlVFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkFMU0VbXTsKKworICAgIC8vIFZhbHVlIGZvciBLRVlfRk9DVVNfRElTVEFOQ0VTLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX0RJU1RBTkNFX0lORklOSVRZW107CisKKyAgICAvLyBWYWx1ZXMgZm9yIHdoaXRlIGJhbGFuY2Ugc2V0dGluZ3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9BVVRPW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9JTkNBTkRFU0NFTlRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0ZMVU9SRVNDRU5UW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9XQVJNX0ZMVU9SRVNDRU5UW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9EQVlMSUdIVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFdISVRFX0JBTEFOQ0VfQ0xPVURZX0RBWUxJR0hUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9UV0lMSUdIVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFdISVRFX0JBTEFOQ0VfU0hBREVbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgZWZmZWN0IHNldHRpbmdzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9OT05FW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX01PTk9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfTkVHQVRJVkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfU09MQVJJWkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfU0VQSUFbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfUE9TVEVSSVpFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX1dISVRFQk9BUkRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfQkxBQ0tCT0FSRFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9BUVVBW107CisKKyAgICAvLyBWYWx1ZXMgZm9yIGFudGliYW5kaW5nIHNldHRpbmdzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEFOVElCQU5ESU5HX0FVVE9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBBTlRJQkFORElOR181MEhaW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgQU5USUJBTkRJTkdfNjBIWltdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEFOVElCQU5ESU5HX09GRltdOworCisgICAgLy8gVmFsdWVzIGZvciBmbGFzaCBtb2RlIHNldHRpbmdzLgorICAgIC8vIEZsYXNoIHdpbGwgbm90IGJlIGZpcmVkLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZMQVNIX01PREVfT0ZGW107CisgICAgLy8gRmxhc2ggd2lsbCBiZSBmaXJlZCBhdXRvbWF0aWNhbGx5IHdoZW4gcmVxdWlyZWQuIFRoZSBmbGFzaCBtYXkgYmUgZmlyZWQKKyAgICAvLyBkdXJpbmcgcHJldmlldywgYXV0by1mb2N1cywgb3Igc25hcHNob3QgZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9BVVRPW107CisgICAgLy8gRmxhc2ggd2lsbCBhbHdheXMgYmUgZmlyZWQgZHVyaW5nIHNuYXBzaG90LiBUaGUgZmxhc2ggbWF5IGFsc28gYmUKKyAgICAvLyBmaXJlZCBkdXJpbmcgcHJldmlldyBvciBhdXRvLWZvY3VzIGRlcGVuZGluZyBvbiB0aGUgZHJpdmVyLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZMQVNIX01PREVfT05bXTsKKyAgICAvLyBGbGFzaCB3aWxsIGJlIGZpcmVkIGluIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9SRURfRVlFW107CisgICAgLy8gQ29uc3RhbnQgZW1pc3Npb24gb2YgbGlnaHQgZHVyaW5nIHByZXZpZXcsIGF1dG8tZm9jdXMgYW5kIHNuYXBzaG90LgorICAgIC8vIFRoaXMgY2FuIGFsc28gYmUgdXNlZCBmb3IgdmlkZW8gcmVjb3JkaW5nLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZMQVNIX01PREVfVE9SQ0hbXTsKKworICAgIC8vIFZhbHVlcyBmb3Igc2NlbmUgbW9kZSBzZXR0aW5ncy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0FVVE9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0FDVElPTltdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfUE9SVFJBSVRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0xBTkRTQ0FQRVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfTklHSFRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX05JR0hUX1BPUlRSQUlUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9USEVBVFJFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9CRUFDSFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfU05PV1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfU1VOU0VUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TVEVBRFlQSE9UT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfRklSRVdPUktTW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TUE9SVFNbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1BBUlRZW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9DQU5ETEVMSUdIVFtdOworICAgIC8vIEFwcGxpY2F0aW9ucyBhcmUgbG9va2luZyBmb3IgYSBiYXJjb2RlLiBDYW1lcmEgZHJpdmVyIHdpbGwgYmUgb3B0aW1pemVkCisgICAgLy8gZm9yIGJhcmNvZGUgcmVhZGluZy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0JBUkNPREVbXTsKKyAgICAvLyBBIGhpZ2gtZHluYW1pYyByYW5nZSBtb2RlLiBJbiB0aGlzIG1vZGUsIHRoZSBIQUwgbW9kdWxlIHdpbGwgdXNlIGEKKyAgICAvLyBjYXB0dXJlIHN0cmF0ZWd5IHRoYXQgZXh0ZW5kcyB0aGUgZHluYW1pYyByYW5nZSBvZiB0aGUgY2FwdHVyZWQKKyAgICAvLyBpbWFnZSBpbiBzb21lIGZhc2hpb24uIE9ubHkgdGhlIGZpbmFsIGltYWdlIGlzIHJldHVybmVkLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfSERSW107CisKKyAgICAvLyBQaXhlbCBjb2xvciBmb3JtYXRzIGZvciBLRVlfUFJFVklFV19GT1JNQVQsIEtFWV9QSUNUVVJFX0ZPUk1BVCwKKyAgICAvLyBhbmQgS0VZX1ZJREVPX0ZSQU1FX0ZPUk1BVAorICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9ZVVY0MjJTUFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9ZVVY0MjBTUFtdOyAvLyBOVjIxCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMklbXTsgLy8gWVVZMgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9ZVVY0MjBQW107IC8vIFlWMTIKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfUkdCNTY1W107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1JHQkE4ODg4W107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX0pQRUdbXTsKKyAgICAvLyBSYXcgYmF5ZXIgZm9ybWF0IHVzZWQgZm9yIGltYWdlcywgd2hpY2ggaXMgMTAgYml0IHByZWNpc2lvbiBzYW1wbGVzCisgICAgLy8gc3RvcmVkIGluIDE2IGJpdCB3b3Jkcy4gVGhlIGZpbHRlciBwYXR0ZXJuIGlzIFJHR0IuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX0JBWUVSX1JHR0JbXTsKKyAgICAvLyBQaXhlbCBmb3JtYXQgaXMgbm90IGtub3duIHRvIHRoZSBmcmFtZXdvcmsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfQU5EUk9JRF9PUEFRVUVbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgZm9jdXMgbW9kZSBzZXR0aW5ncy4KKyAgICAvLyBBdXRvLWZvY3VzIG1vZGUuIEFwcGxpY2F0aW9ucyBzaG91bGQgY2FsbAorICAgIC8vIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyB0byBzdGFydCB0aGUgZm9jdXMgaW4gdGhpcyBtb2RlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX01PREVfQVVUT1tdOworICAgIC8vIEZvY3VzIGlzIHNldCBhdCBpbmZpbml0eS4gQXBwbGljYXRpb25zIHNob3VsZCBub3QgY2FsbAorICAgIC8vIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9JTkZJTklUWVtdOworICAgIC8vIE1hY3JvIChjbG9zZS11cCkgZm9jdXMgbW9kZS4gQXBwbGljYXRpb25zIHNob3VsZCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIHRvIHN0YXJ0IHRoZSBmb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9NQUNST1tdOworICAgIC8vIEZvY3VzIGlzIGZpeGVkLiBUaGUgY2FtZXJhIGlzIGFsd2F5cyBpbiB0aGlzIG1vZGUgaWYgdGhlIGZvY3VzIGlzIG5vdAorICAgIC8vIGFkanVzdGFibGUuIElmIHRoZSBjYW1lcmEgaGFzIGF1dG8tZm9jdXMsIHRoaXMgbW9kZSBjYW4gZml4IHRoZQorICAgIC8vIGZvY3VzLCB3aGljaCBpcyB1c3VhbGx5IGF0IGh5cGVyZm9jYWwgZGlzdGFuY2UuIEFwcGxpY2F0aW9ucyBzaG91bGQKKyAgICAvLyBub3QgY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgaW4gdGhpcyBtb2RlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX01PREVfRklYRURbXTsKKyAgICAvLyBFeHRlbmRlZCBkZXB0aCBvZiBmaWVsZCAoRURPRikuIEZvY3VzaW5nIGlzIGRvbmUgZGlnaXRhbGx5IGFuZAorICAgIC8vIGNvbnRpbnVvdXNseS4gQXBwbGljYXRpb25zIHNob3VsZCBub3QgY2FsbAorICAgIC8vIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9FRE9GW107CisgICAgLy8gQ29udGludW91cyBhdXRvIGZvY3VzIG1vZGUgaW50ZW5kZWQgZm9yIHZpZGVvIHJlY29yZGluZy4gVGhlIGNhbWVyYQorICAgIC8vIGNvbnRpbnVvdXNseSB0cmllcyB0byBmb2N1cy4gVGhpcyBpcyB0aGUgYmVzdCBjaG9pY2UgZm9yIHZpZGVvCisgICAgLy8gcmVjb3JkaW5nIGJlY2F1c2UgdGhlIGZvY3VzIGNoYW5nZXMgc21vb3RobHkgLiBBcHBsaWNhdGlvbnMgc3RpbGwgY2FuCisgICAgLy8gY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS50YWtlUGljdHVyZSBpbiB0aGlzIG1vZGUgYnV0IHRoZSBzdWJqZWN0IG1heQorICAgIC8vIG5vdCBiZSBpbiBmb2N1cy4gQXV0byBmb2N1cyBzdGFydHMgd2hlbiB0aGUgcGFyYW1ldGVyIGlzIHNldC4KKyAgICAvLworICAgIC8vIEFwcGxpY2F0aW9ucyBjYW4gY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgaW4gdGhpcyBtb2RlLiBUaGUKKyAgICAvLyBmb2N1cyBjYWxsYmFjayB3aWxsIGltbWVkaWF0ZWx5IHJldHVybiB3aXRoIGEgYm9vbGVhbiB0aGF0IGluZGljYXRlcworICAgIC8vIHdoZXRoZXIgdGhlIGZvY3VzIGlzIHNoYXJwIG9yIG5vdC4gVGhlIGZvY3VzIHBvc2l0aW9uIGlzIGxvY2tlZCBhZnRlcgorICAgIC8vIGF1dG9Gb2N1cyBjYWxsLiBJZiBhcHBsaWNhdGlvbnMgd2FudCB0byByZXN1bWUgdGhlIGNvbnRpbnVvdXMgZm9jdXMsCisgICAgLy8gY2FuY2VsQXV0b0ZvY3VzIG11c3QgYmUgY2FsbGVkLiBSZXN0YXJ0aW5nIHRoZSBwcmV2aWV3IHdpbGwgbm90IHJlc3VtZQorICAgIC8vIHRoZSBjb250aW51b3VzIGF1dG9mb2N1cy4gVG8gc3RvcCBjb250aW51b3VzIGZvY3VzLCBhcHBsaWNhdGlvbnMgc2hvdWxkCisgICAgLy8gY2hhbmdlIHRoZSBmb2N1cyBtb2RlIHRvIG90aGVyIG1vZGVzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFT1tdOworICAgIC8vIENvbnRpbnVvdXMgYXV0byBmb2N1cyBtb2RlIGludGVuZGVkIGZvciB0YWtpbmcgcGljdHVyZXMuIFRoZSBjYW1lcmEKKyAgICAvLyBjb250aW51b3VzbHkgdHJpZXMgdG8gZm9jdXMuIFRoZSBzcGVlZCBvZiBmb2N1cyBjaGFuZ2UgaXMgbW9yZSBhZ2dyZXNzaXZlCisgICAgLy8gdGhhbiBGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU8uIEF1dG8gZm9jdXMgc3RhcnRzIHdoZW4gdGhlIHBhcmFtZXRlciBpcworICAgIC8vIHNldC4KKyAgICAvLworICAgIC8vIEFwcGxpY2F0aW9ucyBjYW4gY2FsbCBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgaW4gdGhpcyBtb2RlLiBJZgorICAgIC8vIHRoZSBhdXRvZm9jdXMgaXMgaW4gdGhlIG1pZGRsZSBvZiBzY2FubmluZywgdGhlIGZvY3VzIGNhbGxiYWNrIHdpbGwKKyAgICAvLyByZXR1cm4gd2hlbiBpdCBjb21wbGV0ZXMuIElmIHRoZSBhdXRvZm9jdXMgaXMgbm90IHNjYW5uaW5nLCBmb2N1cworICAgIC8vIGNhbGxiYWNrIHdpbGwgaW1tZWRpYXRlbHkgcmV0dXJuIHdpdGggYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIKKyAgICAvLyB0aGUgZm9jdXMgaXMgc2hhcnAgb3Igbm90LiBUaGUgYXBwcyBjYW4gdGhlbiBkZWNpZGUgaWYgdGhleSB3YW50IHRvIHRha2UKKyAgICAvLyBhIHBpY3R1cmUgaW1tZWRpYXRlbHkgb3IgdG8gY2hhbmdlIHRoZSBmb2N1cyBtb2RlIHRvIGF1dG8sIGFuZCBydW4gYSBmdWxsCisgICAgLy8gYXV0b2ZvY3VzIGN5Y2xlLiBUaGUgZm9jdXMgcG9zaXRpb24gaXMgbG9ja2VkIGFmdGVyIGF1dG9Gb2N1cyBjYWxsLiBJZgorICAgIC8vIGFwcGxpY2F0aW9ucyB3YW50IHRvIHJlc3VtZSB0aGUgY29udGludW91cyBmb2N1cywgY2FuY2VsQXV0b0ZvY3VzIG11c3QgYmUKKyAgICAvLyBjYWxsZWQuIFJlc3RhcnRpbmcgdGhlIHByZXZpZXcgd2lsbCBub3QgcmVzdW1lIHRoZSBjb250aW51b3VzIGF1dG9mb2N1cy4KKyAgICAvLyBUbyBzdG9wIGNvbnRpbnVvdXMgZm9jdXMsIGFwcGxpY2F0aW9ucyBzaG91bGQgY2hhbmdlIHRoZSBmb2N1cyBtb2RlIHRvCisgICAgLy8gb3RoZXIgbW9kZXMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkVbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgbGlnaHQgc3BlY2lhbCBlZmZlY3RzCisgICAgLy8gTG93LWxpZ2h0IGVuaGFuY2VtZW50IG1vZGUKKyAgICBzdGF0aWMgY29uc3QgY2hhciBMSUdIVEZYX0xPV0xJR0hUW107CisgICAgLy8gSGlnaC1keW5hbWljIHJhbmdlIG1vZGUKKyAgICBzdGF0aWMgY29uc3QgY2hhciBMSUdIVEZYX0hEUltdOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGhlIHN1cHBvcnRlZCBwcmV2aWV3IGZvcm1hdHMgYXMgYW4gZW51bSBnaXZlbiBpbiBncmFwaGljcy5oCisgICAgICogY29ycnNwb25kaW5nIHRvIHRoZSBmb3JtYXQgZ2l2ZW4gaW4gdGhlIGlucHV0IHN0cmluZyBvciAtMSBpZiBubyBzdWNoCisgICAgICogY29udmVyc2lvbiBleGlzdHMuCisgICAgICovCisgICAgc3RhdGljIGludCBwcmV2aWV3Rm9ybWF0VG9FbnVtKGNvbnN0IGNoYXIqIGZvcm1hdCk7CisKK3ByaXZhdGU6CisgICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsU3RyaW5nOD4gICAgbU1hcDsKK307CisKK307IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcCBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ2FtZXJhUHJvdmlkZXJWMl80VGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlNDRkMwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ2FtZXJhUHJvdmlkZXJWMl80VGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzMjY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJjYW1lcmFfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxiaW5kZXIvTWVtb3J5SGVhcEJhc2UuaD4KKyNpbmNsdWRlIDxncmFsbG9jdXNhZ2UvR3JhbGxvY1VzYWdlQ29udmVyc2lvbi5oPgorI2luY2x1ZGUgPGd1aS9CdWZmZXJJdGVtQ29uc3VtZXIuaD4KKyNpbmNsdWRlIDxndWkvQnVmZmVyUXVldWUuaD4KKyNpbmNsdWRlIDxndWkvU3VyZmFjZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8c3lzdGVtL2NhbWVyYS5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXIuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHJlZ2V4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSAiQ2FtZXJhUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgInN5c3RlbS9jYW1lcmFfbWV0YWRhdGEuaCIKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OndwOwordXNpbmcgOjphbmRyb2lkOjpHcmFwaGljQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOwordXNpbmcgOjphbmRyb2lkOjpJR3JhcGhpY0J1ZmZlckNvbnN1bWVyOwordXNpbmcgOjphbmRyb2lkOjpCdWZmZXJRdWV1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6QnVmZmVySXRlbUNvbnN1bWVyOwordXNpbmcgOjphbmRyb2lkOjpTdXJmYWNlOwordXNpbmcgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6Q2FtZXJhRGV2aWNlU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlRvcmNoTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpUb3JjaE1vZGVTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkJ1ZmZlckNhY2hlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhcHR1cmVSZXF1ZXN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhcHR1cmVSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VTZXNzaW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6Ok5vdGlmeU1zZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpSZXF1ZXN0VGVtcGxhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlN0cmVhbVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtUm90YXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtQ29uZmlndXJhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1Db25maWd1cmF0aW9uTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpDYW1lcmFNZXRhZGF0YTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpIYWxTdHJlYW1Db25maWd1cmF0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkJ1ZmZlclN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6TXNnVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpFcnJvck1zZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpFcnJvckNvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Q2FtZXJhRmFjaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6Ok5vdGlmeUNhbGxiYWNrTXNnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkNvbW1hbmRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkRhdGFDYWxsYmFja01zZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpDYW1lcmFGcmFtZU1ldGFkYXRhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6RnJhbWVDYWxsYmFja0ZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SGFuZGxlVGltZXN0YW1wTWVzc2FnZTsKKworY29uc3QgY2hhciBrQ2FtZXJhUGFzc3Rocm91Z2hTZXJ2aWNlTmFtZVtdID0gImxlZ2FjeS8wIjsKK2NvbnN0IHVpbnQzMl90IGtNYXhQcmV2aWV3V2lkdGggPSAxOTIwOworY29uc3QgdWludDMyX3Qga01heFByZXZpZXdIZWlnaHQgPSAxMDgwOworY29uc3QgdWludDMyX3Qga01heFZpZGVvV2lkdGggPSA0MDk2OworY29uc3QgdWludDMyX3Qga01heFZpZGVvSGVpZ2h0ID0gMjE2MDsKK2NvbnN0IGludDY0X3Qga1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMgPSAzOworY29uc3QgaW50NjRfdCBrQXV0b0ZvY3VzVGltZW91dFNlYyA9IDU7Citjb25zdCBpbnQ2NF90IGtUb3JjaFRpbWVvdXRTZWMgPSAxOworY29uc3QgaW50NjRfdCBrRW1wdHlGbHVzaFRpbWVvdXRNU2VjID0gMjAwOworY29uc3QgY2hhciBrRHVtcE91dHB1dFtdID0gIi9kZXYvbnVsbCI7CisKK3N0cnVjdCBBdmFpbGFibGVTdHJlYW0geworICAgIGludDMyX3Qgd2lkdGg7CisgICAgaW50MzJfdCBoZWlnaHQ7CisgICAgaW50MzJfdCBmb3JtYXQ7Cit9OworCitzdHJ1Y3QgQXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQgeworICAgIGludDMyX3QgaW5wdXRGb3JtYXQ7CisgICAgaW50MzJfdCBvdXRwdXRGb3JtYXQ7Cit9OworCituYW1lc3BhY2UgeworICAgIC8vICJkZXZpY2VAPHZlcnNpb24+L2xlZ2FjeS88aWQ+IgorICAgIGNvbnN0IGNoYXIgKmtEZXZpY2VOYW1lUkUgPSAiZGV2aWNlQChbMC05XStcXC5bMC05XSspL2xlZ2FjeS8oLispIjsKKyAgICBjb25zdCBpbnQgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIgPSAweDMwMjsKKyAgICBjb25zdCBpbnQgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzAgPSAweDEwMDsKKyAgICBjb25zdCBjaGFyICprSEFMM18yID0gIjMuMiI7CisgICAgY29uc3QgY2hhciAqa0hBTDFfMCA9ICIxLjAiOworCisgICAgYm9vbCBtYXRjaERldmljZU5hbWUoY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUsIHN0ZDo6c21hdGNoJiBzbSkgeworICAgICAgICBzdGQ6OnJlZ2V4IGUoa0RldmljZU5hbWVSRSk7CisgICAgICAgIHN0ZDo6c3RyaW5nIGRldmljZU5hbWVTdGQoZGV2aWNlTmFtZS5jX3N0cigpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cmVnZXhfbWF0Y2goZGV2aWNlTmFtZVN0ZCwgc20sIGUpOworICAgIH0KKworICAgIGludCBnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKGNvbnN0IGhpZGxfc3RyaW5nJiBkZXZpY2VOYW1lKSB7CisgICAgICAgIHN0ZDo6c21hdGNoIHNtOworICAgICAgICBib29sIG1hdGNoID0gbWF0Y2hEZXZpY2VOYW1lKGRldmljZU5hbWUsIHNtKTsKKyAgICAgICAgaWYgKCFtYXRjaCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHN0ZDo6c3RyaW5nIHZlcnNpb24gPSBzbVsxXS5zdHIoKTsKKyAgICAgICAgaWYgKHZlcnNpb24uY29tcGFyZShrSEFMM18yKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBtYXliZSBzd2l0Y2hlZCB0byAzLjQgb3IgZGVmaW5lIHRoZSBoaWRsIHZlcnNpb24gZW51bWxhdGVyCisgICAgICAgICAgICByZXR1cm4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzI7CisgICAgICAgIH0gZWxzZSBpZiAodmVyc2lvbi5jb21wYXJlKGtIQUwxXzApID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBTdGF0dXMgbWFwVG9TdGF0dXMoOjphbmRyb2lkOjpzdGF0dXNfdCBzKSAgeworICAgICAgICBzd2l0Y2gocykgeworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6Ok9LOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok9LIDsKKyAgICAgICAgICAgIGNhc2UgOjphbmRyb2lkOjpCQURfVkFMVUU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCA7CisgICAgICAgICAgICBjYXNlIC1FQlVTWToKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpDQU1FUkFfSU5fVVNFOworICAgICAgICAgICAgY2FzZSAtRVVTRVJTOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok1BWF9DQU1FUkFTX0lOX1VTRTsKKyAgICAgICAgICAgIGNhc2UgOjphbmRyb2lkOjpVTktOT1dOX1RSQU5TQUNUSU9OOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6OklOVkFMSURfT1BFUkFUSU9OOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6OkRFQURfT0JKRUNUOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgICAgIH0KKyAgICAgICAgQUxPR1coIlVuZXhwZWN0ZWQgSEFMIHN0YXR1cyBjb2RlICVkIiwgcyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KK30KKworLy8gVGVzdCBlbnZpcm9ubWVudCBmb3IgY2FtZXJhCitjbGFzcyBDYW1lcmFIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CitwdWJsaWM6CisgICAgLy8gZ2V0IHRoZSB0ZXN0IGVudmlyb25tZW50IHNpbmdsZXRvbgorICAgIHN0YXRpYyBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIEluc3RhbmNlKCkgeworICAgICAgICBzdGF0aWMgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBpbnN0YW5jZSA9IG5ldyBDYW1lcmFIaWRsRW52aXJvbm1lbnQ7CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZTsKKworICAgIHNwPElDYW1lcmFQcm92aWRlcj4gbVByb3ZpZGVyOworCitwcml2YXRlOgorICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCgpIHt9CisKKyAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKENhbWVyYUhpZGxFbnZpcm9ubWVudCk7Cit9OworCit2b2lkIENhbWVyYUhpZGxFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisgICAgLy8gVE9ETzogdGVzdCB0aGUgYmluZGVyaXplZCBtb2RlCisgICAgbVByb3ZpZGVyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNhbWVyYVByb3ZpZGVyPihrQ2FtZXJhUGFzc3Rocm91Z2hTZXJ2aWNlTmFtZSk7CisgICAgLy8gVE9ETzogaGFuZGxlIHRoZSBkZXZpY2UgZG9lc24ndCBoYXZlIGFueSBjYW1lcmEgY2FzZQorICAgIEFMT0dJX0lGKG1Qcm92aWRlciwgInByb3ZpZGVyIGlzIG5vdCBudWxscHRyLCAlcCIsIG1Qcm92aWRlci5nZXQoKSk7CisgICAgQVNTRVJUX05FKG1Qcm92aWRlciwgbnVsbHB0cik7Cit9CisKK3ZvaWQgQ2FtZXJhSGlkbEVudmlyb25tZW50OjpUZWFyRG93bigpIHsKKyAgICBBTE9HSSgiVGVhckRvd24gQ2FtZXJhSGlkbEVudmlyb25tZW50Iik7Cit9CisKK3N0cnVjdCBCdWZmZXJJdGVtSGFuZGVyOiBwdWJsaWMgQnVmZmVySXRlbUNvbnN1bWVyOjpGcmFtZUF2YWlsYWJsZUxpc3RlbmVyIHsKKyAgICBCdWZmZXJJdGVtSGFuZGVyKHdwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gY29uc3VtZXIpIDogbUNvbnN1bWVyKGNvbnN1bWVyKSB7fQorCisgICAgdm9pZCBvbkZyYW1lQXZhaWxhYmxlKGNvbnN0IGFuZHJvaWQ6OkJ1ZmZlckl0ZW0mKSBvdmVycmlkZSB7CisgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gY29uc3VtZXIgPSBtQ29uc3VtZXIucHJvbW90ZSgpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgY29uc3VtZXIuZ2V0KCkpOworCisgICAgICAgIGFuZHJvaWQ6OkJ1ZmZlckl0ZW0gYnVmZmVyOworICAgICAgICBBU1NFUlRfRVEoYW5kcm9pZDo6T0ssIGNvbnN1bWVyLT5hY3F1aXJlQnVmZmVyKCZidWZmZXIsIDApKTsKKyAgICAgICAgQVNTRVJUX0VRKGFuZHJvaWQ6Ok9LLCBjb25zdW1lci0+cmVsZWFzZUJ1ZmZlcihidWZmZXIpKTsKKyAgICB9CisKKyBwcml2YXRlOgorICAgIHdwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gbUNvbnN1bWVyOworfTsKKworc3RydWN0IFByZXZpZXdXaW5kb3dDYiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrIHsKKyAgICBQcmV2aWV3V2luZG93Q2Ioc3A8QU5hdGl2ZVdpbmRvdz4gYW53KSA6IG1QcmV2aWV3V2lkdGgoMCksCisgICAgICAgICAgICBtUHJldmlld0hlaWdodCgwKSwgbUZvcm1hdCgwKSwgbVByZXZpZXdVc2FnZSgwKSwKKyAgICAgICAgICAgIG1QcmV2aWV3U3dhcEludGVydmFsKC0xKSwgbUNyb3B7LTEsIC0xLCAtMSwgLTF9LCBtQW53KGFudykge30KKworICAgIHVzaW5nIGRlcXVldWVCdWZmZXJfY2IgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKFN0YXR1cyBzdGF0dXMsIHVpbnQ2NF90IGJ1ZmZlcklkLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYnVmZmVyLCB1aW50MzJfdCBzdHJpZGUpPjsKKyAgICBSZXR1cm48dm9pZD4gZGVxdWV1ZUJ1ZmZlcihkZXF1ZXVlQnVmZmVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IGVucXVldWVCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gY2FuY2VsQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldEJ1ZmZlcnNHZW9tZXRyeSh1aW50MzJfdCB3LAorICAgICAgICAgICAgdWludDMyX3QgaCwgUGl4ZWxGb3JtYXQgZm9ybWF0KSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldENyb3AoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHRvcCwKKyAgICAgICAgICAgIGludDMyX3QgcmlnaHQsIGludDMyX3QgYm90dG9tKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFVzYWdlKEJ1ZmZlclVzYWdlIHVzYWdlKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFN3YXBJbnRlcnZhbChpbnQzMl90IGludGVydmFsKSBvdmVycmlkZTsKKworICAgIHVzaW5nIGdldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudF9jYiA9CisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgY291bnQpPjsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50KAorICAgICAgICAgICAgZ2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFRpbWVzdGFtcChpbnQ2NF90IHRpbWVzdGFtcCkgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICAgIHN0cnVjdCBCdWZmZXJIYXNoZXIgeworICAgICAgICBzaXplX3Qgb3BlcmF0b3IoKShjb25zdCBidWZmZXJfaGFuZGxlX3QmIGJ1ZikgY29uc3QgeworICAgICAgICAgICAgaWYgKGJ1ZiA9PSBudWxscHRyKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgICAgICBzaXplX3QgcmVzdWx0ID0gMTsKKyAgICAgICAgICAgIHJlc3VsdCA9IDMxICogcmVzdWx0ICsgYnVmLT5udW1GZHM7CisgICAgICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArIGJ1Zi0+bnVtSW50czsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBidWYtPm51bUZkcyArIGJ1Zi0+bnVtSW50czsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArIGJ1Zi0+ZGF0YVtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RydWN0IEJ1ZmZlckNvbXBhcmF0b3IgeworICAgICAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgYnVmZmVyX2hhbmRsZV90JiBidWYxLAorICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlcl9oYW5kbGVfdCYgYnVmMikgY29uc3QgeworICAgICAgICAgICAgaWYgKChidWYxLT5udW1GZHMgPT0gYnVmMi0+bnVtRmRzKSAmJgorICAgICAgICAgICAgICAgICAgICAoYnVmMS0+bnVtSW50cyA9PSBidWYyLT5udW1JbnRzKSkgeworICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBidWYxLT5udW1GZHMgKyBidWYxLT5udW1JbnRzOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZjEtPmRhdGFbaV0gIT0gYnVmMi0+ZGF0YVtpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfTsKKworICAgIHN0ZDo6cGFpcjxib29sLCB1aW50NjRfdD4gZ2V0QnVmZmVySWQoQU5hdGl2ZVdpbmRvd0J1ZmZlciogYW5iKTsKKyAgICB2b2lkIGNsZWFudXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKworICAgIHN0ZDo6bXV0ZXggbUJ1ZmZlcklkTWFwTG9jazsgLy8gcHJvdGVjdGluZyBtQnVmZmVySWRNYXAgYW5kIG1OZXh0QnVmZmVySWQKKyAgICB0eXBlZGVmIHN0ZDo6dW5vcmRlcmVkX21hcDxjb25zdCBidWZmZXJfaGFuZGxlX3QsIHVpbnQ2NF90LAorICAgICAgICAgICAgQnVmZmVySGFzaGVyLCBCdWZmZXJDb21wYXJhdG9yPiBCdWZmZXJJZE1hcDsKKworICAgIEJ1ZmZlcklkTWFwIG1CdWZmZXJJZE1hcDsgLy8gc3RyZWFtIElEIC0+IHBlciBzdHJlYW0gYnVmZmVyIElEIG1hcAorICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50NjRfdCwgQU5hdGl2ZVdpbmRvd0J1ZmZlcio+IG1SZXZlcnNlZEJ1Zk1hcDsKKyAgICB1aW50NjRfdCBtTmV4dEJ1ZmZlcklkID0gMTsKKworICAgIHVpbnQzMl90IG1QcmV2aWV3V2lkdGgsIG1QcmV2aWV3SGVpZ2h0OworICAgIGludCBtRm9ybWF0LCBtUHJldmlld1VzYWdlOworICAgIGludDMyX3QgbVByZXZpZXdTd2FwSW50ZXJ2YWw7CisgICAgYW5kcm9pZF9uYXRpdmVfcmVjdF90IG1Dcm9wOworICAgIHNwPEFOYXRpdmVXaW5kb3c+IG1Bbnc7ICAgICAvL05hdGl2ZSB3aW5kb3cgcmVmZXJlbmNlCit9OworCitzdGQ6OnBhaXI8Ym9vbCwgdWludDY0X3Q+IFByZXZpZXdXaW5kb3dDYjo6Z2V0QnVmZmVySWQoCisgICAgICAgIEFOYXRpdmVXaW5kb3dCdWZmZXIqIGFuYikgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1CdWZmZXJJZE1hcExvY2spOworCisgICAgYnVmZmVyX2hhbmRsZV90JiBidWYgPSBhbmItPmhhbmRsZTsKKyAgICBhdXRvIGl0ID0gbUJ1ZmZlcklkTWFwLmZpbmQoYnVmKTsKKyAgICBpZiAoaXQgPT0gbUJ1ZmZlcklkTWFwLmVuZCgpKSB7CisgICAgICAgIHVpbnQ2NF90IGJ1ZklkID0gbU5leHRCdWZmZXJJZCsrOworICAgICAgICBtQnVmZmVySWRNYXBbYnVmXSA9IGJ1ZklkOworICAgICAgICBtUmV2ZXJzZWRCdWZNYXBbYnVmSWRdID0gYW5iOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIodHJ1ZSwgYnVmSWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmYWxzZSwgaXQtPnNlY29uZCk7CisgICAgfQorfQorCit2b2lkIFByZXZpZXdXaW5kb3dDYjo6Y2xlYW51cENpcmN1bGF0aW5nQnVmZmVycygpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVySWRNYXBMb2NrKTsKKyAgICBtQnVmZmVySWRNYXAuY2xlYXIoKTsKKyAgICBtUmV2ZXJzZWRCdWZNYXAuY2xlYXIoKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXZpZXdXaW5kb3dDYjo6ZGVxdWV1ZUJ1ZmZlcihkZXF1ZXVlQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgQU5hdGl2ZVdpbmRvd0J1ZmZlciogYW5iOworICAgIGF1dG8gcmMgPSBuYXRpdmVfd2luZG93X2RlcXVldWVfYnVmZmVyX2FuZF93YWl0KG1BbncuZ2V0KCksICZhbmIpOworICAgIHVpbnQ2NF90IGJ1ZmZlcklkID0gMDsKKyAgICB1aW50MzJfdCBzdHJpZGUgPSAwOworICAgIGhpZGxfaGFuZGxlIGJ1ZiA9IG51bGxwdHI7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgYXV0byBwYWlyID0gZ2V0QnVmZmVySWQoYW5iKTsKKyAgICAgICAgYnVmID0gKHBhaXIuZmlyc3QpID8gYW5iLT5oYW5kbGUgOiBudWxscHRyOworICAgICAgICBidWZmZXJJZCA9IHBhaXIuc2Vjb25kOworICAgICAgICBzdHJpZGUgPSBhbmItPnN0cmlkZTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihtYXBUb1N0YXR1cyhyYyksIGJ1ZmZlcklkLCBidWYsIHN0cmlkZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gUHJldmlld1dpbmRvd0NiOjplbnF1ZXVlQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSB7CisgICAgaWYgKG1SZXZlcnNlZEJ1Zk1hcC5jb3VudChidWZmZXJJZCkgPT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlcklkICUiIFBSSXU2NCAiIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgYnVmZmVySWQpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMobUFudy0+cXVldWVCdWZmZXIobUFudy5nZXQoKSwKKyAgICAgICAgICAgIG1SZXZlcnNlZEJ1Zk1hcC5hdChidWZmZXJJZCksIC0xKSk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6Y2FuY2VsQnVmZmVyKHVpbnQ2NF90IGJ1ZmZlcklkKSB7CisgICAgaWYgKG1SZXZlcnNlZEJ1Zk1hcC5jb3VudChidWZmZXJJZCkgPT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlcklkICUiIFBSSXU2NCAiIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgYnVmZmVySWQpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMobUFudy0+Y2FuY2VsQnVmZmVyKG1BbncuZ2V0KCksCisgICAgICAgICAgICBtUmV2ZXJzZWRCdWZNYXAuYXQoYnVmZmVySWQpLCAtMSkpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSB7CisgICAgaWYgKG1BbncuZ2V0KCkgIT0gbnVsbHB0cikgeworICAgICAgICAvLyBXQVIgZm9yIGIvMjcwMzk3NzUKKyAgICAgICAgbmF0aXZlX3dpbmRvd19hcGlfZGlzY29ubmVjdChtQW53LmdldCgpLCBOQVRJVkVfV0lORE9XX0FQSV9DQU1FUkEpOworICAgICAgICBuYXRpdmVfd2luZG93X2FwaV9jb25uZWN0KG1BbncuZ2V0KCksIE5BVElWRV9XSU5ET1dfQVBJX0NBTUVSQSk7CisgICAgICAgIGlmIChtUHJldmlld1dpZHRoICE9IDApIHsKKyAgICAgICAgICAgIG5hdGl2ZV93aW5kb3dfc2V0X2J1ZmZlcnNfZGltZW5zaW9ucyhtQW53LmdldCgpLAorICAgICAgICAgICAgICAgICAgICBtUHJldmlld1dpZHRoLCBtUHJldmlld0hlaWdodCk7CisgICAgICAgICAgICBuYXRpdmVfd2luZG93X3NldF9idWZmZXJzX2Zvcm1hdChtQW53LmdldCgpLCBtRm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobVByZXZpZXdVc2FnZSAhPSAwKSB7CisgICAgICAgICAgICBuYXRpdmVfd2luZG93X3NldF91c2FnZShtQW53LmdldCgpLCBtUHJldmlld1VzYWdlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobVByZXZpZXdTd2FwSW50ZXJ2YWwgPj0gMCkgeworICAgICAgICAgICAgbUFudy0+c2V0U3dhcEludGVydmFsKG1BbncuZ2V0KCksIG1QcmV2aWV3U3dhcEludGVydmFsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobUNyb3AubGVmdCA+PSAwKSB7CisgICAgICAgICAgICBuYXRpdmVfd2luZG93X3NldF9jcm9wKG1BbncuZ2V0KCksICYobUNyb3ApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gcmMgPSBuYXRpdmVfd2luZG93X3NldF9idWZmZXJfY291bnQobUFudy5nZXQoKSwgY291bnQpOworICAgIGlmIChyYyA9PSA6OmFuZHJvaWQ6Ok9LKSB7CisgICAgICAgIGNsZWFudXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldEJ1ZmZlcnNHZW9tZXRyeSh1aW50MzJfdCB3LCB1aW50MzJfdCBoLAorICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQpIHsKKyAgICBhdXRvIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfYnVmZmVyc19kaW1lbnNpb25zKG1BbncuZ2V0KCksIHcsIGgpOworICAgIGlmIChyYyA9PSA6OmFuZHJvaWQ6Ok9LKSB7CisgICAgICAgIG1QcmV2aWV3V2lkdGggPSB3OworICAgICAgICBtUHJldmlld0hlaWdodCA9IGg7CisgICAgICAgIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfYnVmZmVyc19mb3JtYXQobUFudy5nZXQoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGZvcm1hdCkpOworICAgICAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICAgICAgbUZvcm1hdCA9IHN0YXRpY19jYXN0PGludD4oZm9ybWF0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtYXBUb1N0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0Q3JvcChpbnQzMl90IGxlZnQsIGludDMyX3QgdG9wLAorICAgICAgICBpbnQzMl90IHJpZ2h0LCBpbnQzMl90IGJvdHRvbSkgeworICAgIGFuZHJvaWRfbmF0aXZlX3JlY3RfdCBjcm9wID0geyBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20gfTsKKyAgICBhdXRvIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfY3JvcChtQW53LmdldCgpLCAmY3JvcCk7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgbUNyb3AgPSBjcm9wOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldFVzYWdlKEJ1ZmZlclVzYWdlIHVzYWdlKSB7CisgICAgYXV0byByYyA9IG5hdGl2ZV93aW5kb3dfc2V0X3VzYWdlKG1BbncuZ2V0KCksIHN0YXRpY19jYXN0PGludD4odXNhZ2UpKTsKKyAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICBtUHJldmlld1VzYWdlID0gIHN0YXRpY19jYXN0PGludD4odXNhZ2UpOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OnNldFN3YXBJbnRlcnZhbChpbnQzMl90IGludGVydmFsKSB7CisgICAgYXV0byByYyA9IG1BbnctPnNldFN3YXBJbnRlcnZhbChtQW53LmdldCgpLCBpbnRlcnZhbCk7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgbVByZXZpZXdTd2FwSW50ZXJ2YWwgPSBpbnRlcnZhbDsKKyAgICB9CisgICAgcmV0dXJuIG1hcFRvU3RhdHVzKHJjKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXZpZXdXaW5kb3dDYjo6Z2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50KAorICAgICAgICBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnRfY2IgX2hpZGxfY2IpIHsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGF1dG8gcmMgPSBtQW53LT5xdWVyeShtQW53LmdldCgpLAorICAgICAgICAgICAgTkFUSVZFX1dJTkRPV19NSU5fVU5ERVFVRVVFRF9CVUZGRVJTLCAmY291bnQpOworICAgIF9oaWRsX2NiKG1hcFRvU3RhdHVzKHJjKSwgY291bnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0VGltZXN0YW1wKGludDY0X3QgdGltZXN0YW1wKSB7CisgICAgcmV0dXJuIG1hcFRvU3RhdHVzKG5hdGl2ZV93aW5kb3dfc2V0X2J1ZmZlcnNfdGltZXN0YW1wKG1BbncuZ2V0KCksCisgICAgICAgICAgICB0aW1lc3RhbXApKTsKK30KKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgY2FtZXJhIEhJREwgSEFMLgorY2xhc3MgQ2FtZXJhSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgc3RydWN0IEVtcHR5RGV2aWNlQ2IgOiBwdWJsaWMgSUNhbWVyYURldmljZUNhbGxiYWNrIHsKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIC8qcmVzdWx0cyovKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgicHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCk7IC8vIEVtcHR5IGNhbGxiYWNrIHNob3VsZCBub3QgcmVhY2ggaGVyZQorICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG5vdGlmeShjb25zdCBoaWRsX3ZlYzxOb3RpZnlNc2c+JiAvKm1zZ3MqLykgb3ZlcnJpZGUgeworICAgICAgICAgICAgQUxPR0koIm5vdGlmeSBjYWxsYmFjayIpOworICAgICAgICAgICAgQUREX0ZBSUxVUkUoKTsgLy8gRW1wdHkgY2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCBoZXJlCisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgfTsKKworICAgIHN0cnVjdCBEZXZpY2VDYiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworICAgICAgICBEZXZpY2VDYihDYW1lcmFIaWRsVGVzdCAqcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorICAgICAgICBSZXR1cm48dm9pZD4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIHJlc3VsdHMpIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48dm9pZD4gbm90aWZ5KGNvbnN0IGhpZGxfdmVjPE5vdGlmeU1zZz4mIG1zZ3MpIG92ZXJyaWRlOworCisgICAgIHByaXZhdGU6CisgICAgICAgIENhbWVyYUhpZGxUZXN0ICptUGFyZW50OyAgICAgICAgICAgICAgIC8vIFBhcmVudCBvYmplY3QKKyAgICB9OworCisgICAgc3RydWN0IFRvcmNoUHJvdmlkZXJDYiA6IHB1YmxpYyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjayB7CisgICAgICAgIFRvcmNoUHJvdmlkZXJDYihDYW1lcmFIaWRsVGVzdCAqcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBjYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmLCBDYW1lcmFEZXZpY2VTdGF0dXMpIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmLCBUb3JjaE1vZGVTdGF0dXMgbmV3U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbChtUGFyZW50LT5tVG9yY2hMb2NrKTsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1Ub3JjaFN0YXR1cyA9IG5ld1N0YXR1czsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1Ub3JjaENvbmQubm90aWZ5X29uZSgpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgIHByaXZhdGU6CisgICAgICAgIENhbWVyYUhpZGxUZXN0ICptUGFyZW50OyAgICAgICAgICAgICAgIC8vIFBhcmVudCBvYmplY3QKKyAgICB9OworCisgICAgc3RydWN0IENhbWVyYTFEZXZpY2VDYiA6CisgICAgICAgICAgICBwdWJsaWMgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2VDYWxsYmFjayB7CisgICAgICAgIENhbWVyYTFEZXZpY2VDYihDYW1lcmFIaWRsVGVzdCAqcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorCisgICAgICAgIFJldHVybjx2b2lkPiBub3RpZnlDYWxsYmFjayhOb3RpZnlDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIGludDMyX3QgZXh0MSwgaW50MzJfdCBleHQyKSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dWludDMyX3Q+IHJlZ2lzdGVyTWVtb3J5KGNvbnN0IGhpZGxfaGFuZGxlJiBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgIHVpbnQzMl90IGJ1ZmZlclNpemUsIHVpbnQzMl90IGJ1ZmZlckNvdW50KSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dm9pZD4gdW5yZWdpc3Rlck1lbW9yeSh1aW50MzJfdCBtZW1JZCkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGRhdGFDYWxsYmFjayhEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhLCB1aW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgICAgICAgICAgICBjb25zdCBDYW1lcmFGcmFtZU1ldGFkYXRhJiBtZXRhZGF0YSkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGRhdGFDYWxsYmFja1RpbWVzdGFtcChEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhLCB1aW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgICAgICAgICAgICBpbnQ2NF90IHRpbWVzdGFtcCkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBmcmFtZURhdGEsdWludDMyX3QgZGF0YSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJbmRleCwgaW50NjRfdCB0aW1lc3RhbXApIG92ZXJyaWRlOworCisgICAgICAgIFJldHVybjx2b2lkPiBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+JiBiYXRjaCkgb3ZlcnJpZGU7CisKKworICAgICBwcml2YXRlOgorICAgICAgICBDYW1lcmFIaWRsVGVzdCAqbVBhcmVudDsgICAgICAgICAgICAgICAvLyBQYXJlbnQgb2JqZWN0CisgICAgfTsKKworICAgIHZvaWQgb3BlbkNhbWVyYURldmljZShjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSxjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAqZGV2aWNlIC8qb3V0Ki8pOworICAgIHZvaWQgc2V0dXBQcmV2aWV3V2luZG93KAorICAgICAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UsCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+ICpidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+ICpidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgIHZvaWQgc3RvcFByZXZpZXdBbmRDbG9zZSgKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIHN0YXJ0UHJldmlldygKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIGVuYWJsZU1zZ1R5cGUodW5zaWduZWQgaW50IG1zZ1R5cGUsCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSk7CisgICAgdm9pZCBkaXNhYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnMgKmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKyAgICB2b2lkIHNldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IENhbWVyYVBhcmFtZXRlcnMgJmNhbWVyYVBhcmFtcyk7CisgICAgdm9pZCB3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnIG1zZ0ZyYW1lLAorICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiAmbCk7CisgICAgdm9pZCBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICAgICAgY29uc3QgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYsCisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICoqc3RhdGljTWV0YSAvKm91dCovKTsKKyAgICB2b2lkIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiAqc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgU3RyZWFtICpwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uICpoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisgICAgc3RhdGljIFN0YXR1cyBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiAmb3V0cHV0U3RyZWFtcywKKyAgICAgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqdGhyZXNob2xkID0gbnVsbHB0cik7CisgICAgc3RhdGljIFN0YXR1cyBpc0NvbnN0cmFpbmVkTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSk7CisgICAgc3RhdGljIFN0YXR1cyBwaWNrQ29uc3RyYWluZWRNb2RlU2l6ZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSAmaGZyU3RyZWFtKTsKKyAgICBzdGF0aWMgU3RhdHVzIGlzWlNMTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSk7CisgICAgc3RhdGljIFN0YXR1cyBnZXRaU0xJbnB1dE91dHB1dE1hcChjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVpTTElucHV0T3V0cHV0PiAmaW5wdXRPdXRwdXRNYXApOworICAgIHN0YXRpYyBTdGF0dXMgZmluZExhcmdlc3RTaXplKAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiAmc3RyZWFtU2l6ZXMsCisgICAgICAgICAgICBpbnQzMl90IGZvcm1hdCwgQXZhaWxhYmxlU3RyZWFtICZyZXN1bHQpOworICAgIHN0YXRpYyBTdGF0dXMgaXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKAorICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzICZjYW1lcmFQYXJhbXMsIGNvbnN0IGNoYXIgKm1vZGUpIDsKKworcHJvdGVjdGVkOgorICAgIHN0ZDo6bXV0ZXggbUxvY2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeW5jaHJvbml6ZSBhY2Nlc3MgdG8gbWVtYmVyIHZhcmlhYmxlcworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1SZXN1bHRDb25kaXRpb247ICAvLyBDb25kaXRpb24gdmFyaWFibGUgZm9yIGluY29taW5nIHJlc3VsdHMKKyAgICB1aW50MzJfdCBtUmVzdWx0RnJhbWVOdW1iZXI7ICAgICAgICAgICAgICAgLy8gRXhwZWN0ZWQgcmVzdWx0IGZyYW1lIG51bWJlcgorICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gbVJlc3VsdEJ1ZmZlcnM7ICAvLyBIb2xkcyBzdHJlYW0gYnVmZmVycyBmcm9tIGNhcHR1cmUgcmVzdWx0CisgICAgc3RkOjp2ZWN0b3I8RXJyb3JNc2c+IG1FcnJvcnM7ICAgICAgICAgICAgIC8vIEhvbGRzIGluY29taW5nIGVycm9yIG5vdGlmaWNhdGlvbnMKKyAgICBEYXRhQ2FsbGJhY2tNc2cgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkOyAgLy8gTW9zdCByZWNlbnQgbWVzc2FnZSB0eXBlIHJlY2VpdmVkIHRocm91Z2ggZGF0YSBjYWxsYmFja3MKKyAgICB1aW50MzJfdCBtVmlkZW9CdWZmZXJJbmRleDsgICAgICAgICAgICAgICAgLy8gQnVmZmVyIGluZGV4IG9mIHRoZSBtb3N0IHJlY2VudCB2aWRlbyBidWZmZXIKKyAgICB1aW50MzJfdCBtVmlkZW9EYXRhOyAgICAgICAgICAgICAgICAgICAgICAgLy8gQnVmZmVyIGRhdGEgb2YgdGhlIG1vc3QgcmVjZW50IHZpZGVvIGJ1ZmZlcgorICAgIGhpZGxfaGFuZGxlIG1WaWRlb05hdGl2ZUhhbmRsZTsgICAgICAgICAgICAvLyBNb3N0IHJlY2VudCB2aWRlbyBidWZmZXIgbmF0aXZlIGhhbmRsZQorICAgIE5vdGlmeUNhbGxiYWNrTXNnIG1Ob3RpZnlNZXNzYWdlOyAgICAgICAgICAvLyBDdXJyZW50IG5vdGlmaWNhdGlvbiBtZXNzYWdlCisKKyAgICBzdGQ6Om11dGV4IG1Ub3JjaExvY2s7ICAgICAgICAgICAgICAgICAgICAgLy8gU3luY2hyb25pemUgYWNjZXNzIHRvIHRvcmNoIHN0YXR1cworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1Ub3JjaENvbmQ7ICAgICAgICAvLyBDb25kaXRpb24gdmFyaWFibGUgZm9yIHRvcmNoIHN0YXR1cworICAgIFRvcmNoTW9kZVN0YXR1cyBtVG9yY2hTdGF0dXM7ICAgICAgICAgICAgICAvLyBDdXJyZW50IHRvcmNoIHN0YXR1cworCisgICAgLy8gSG9sZHMgY2FtZXJhIHJlZ2lzdGVyZWQgYnVmZmVycworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50MzJfdCwgc3A8OjphbmRyb2lkOjpNZW1vcnlIZWFwQmFzZT4gPiBtTWVtb3J5UG9vbDsKK307CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjpub3RpZnlDYWxsYmFjaygKKyAgICAgICAgTm90aWZ5Q2FsbGJhY2tNc2cgbXNnVHlwZSwgaW50MzJfdCBleHQxIF9fdW51c2VkLAorICAgICAgICBpbnQzMl90IGV4dDIgX191bnVzZWQpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVBhcmVudC0+bUxvY2spOworICAgIG1QYXJlbnQtPm1Ob3RpZnlNZXNzYWdlID0gbXNnVHlwZTsKKyAgICBtUGFyZW50LT5tUmVzdWx0Q29uZGl0aW9uLm5vdGlmeV9vbmUoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx1aW50MzJfdD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6cmVnaXN0ZXJNZW1vcnkoCisgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBkZXNjcmlwdG9yLCB1aW50MzJfdCBidWZmZXJTaXplLAorICAgICAgICB1aW50MzJfdCBidWZmZXJDb3VudCkgeworICAgIGlmIChkZXNjcmlwdG9yLT5udW1GZHMgIT0gMSkgeworICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJjYW1lcmEgbWVtb3J5IGRlc2NyaXB0b3IgaGFzIgorICAgICAgICAgICAgICAgICIgbnVtRmRzICIgPDwgIGRlc2NyaXB0b3ItPm51bUZkcyA8PCAiIChleHBlY3QgMSkiIDsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChkZXNjcmlwdG9yLT5kYXRhWzBdIDwgMCkgeworICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJjYW1lcmEgbWVtb3J5IGRlc2NyaXB0b3IgaGFzIgorICAgICAgICAgICAgICAgICIgRkQgIiA8PCBkZXNjcmlwdG9yLT5kYXRhWzBdIDw8ICIgKGV4cGVjdCA+PSAwKSI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNwPDo6YW5kcm9pZDo6TWVtb3J5SGVhcEJhc2U+IHBvb2wgPSBuZXcgOjphbmRyb2lkOjpNZW1vcnlIZWFwQmFzZSgKKyAgICAgICAgICAgIGRlc2NyaXB0b3ItPmRhdGFbMF0sIGJ1ZmZlclNpemUqYnVmZmVyQ291bnQsIDAsIDApOworICAgIG1QYXJlbnQtPm1NZW1vcnlQb29sLmVtcGxhY2UocG9vbC0+Z2V0SGVhcElEKCksIHBvb2wpOworCisgICAgcmV0dXJuIHBvb2wtPmdldEhlYXBJRCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6dW5yZWdpc3Rlck1lbW9yeSh1aW50MzJfdCBtZW1JZCkgeworICAgIGlmIChtUGFyZW50LT5tTWVtb3J5UG9vbC5jb3VudChtZW1JZCkgPT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IG1lbW9yeSBwb29sIElEICVkIG5vdCBmb3VuZCIsIF9fRlVOQ1RJT05fXywgbWVtSWQpOworICAgICAgICBBRERfRkFJTFVSRSgpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1QYXJlbnQtPm1NZW1vcnlQb29sLmVyYXNlKG1lbUlkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6ZGF0YUNhbGxiYWNrKAorICAgICAgICBEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSBfX3VudXNlZCwgdWludDMyX3QgZGF0YSBfX3VudXNlZCwKKyAgICAgICAgdWludDMyX3QgYnVmZmVySW5kZXggX191bnVzZWQsCisgICAgICAgIGNvbnN0IENhbWVyYUZyYW1lTWV0YWRhdGEmIG1ldGFkYXRhIF9fdW51c2VkKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICBtUGFyZW50LT5tRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBtc2dUeXBlOworICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYUhpZGxUZXN0OjpDYW1lcmExRGV2aWNlQ2I6OmRhdGFDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIHVpbnQzMl90IGRhdGEsCisgICAgICAgIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBpbnQ2NF90IHRpbWVzdGFtcCBfX3VudXNlZCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgbVBhcmVudC0+bURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gbXNnVHlwZTsKKyAgICBtUGFyZW50LT5tVmlkZW9CdWZmZXJJbmRleCA9IGJ1ZmZlckluZGV4OworICAgIGlmIChtUGFyZW50LT5tTWVtb3J5UG9vbC5jb3VudChkYXRhKSA9PSAwKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIm1lbW9yeSBwb29sIElEICIgPDwgZGF0YSA8PCAibm90IGZvdW5kIjsKKyAgICB9CisgICAgbVBhcmVudC0+bVZpZGVvRGF0YSA9IGRhdGE7CisgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgIERhdGFDYWxsYmFja01zZyBtc2dUeXBlLCBjb25zdCBoaWRsX2hhbmRsZSYgZnJhbWVEYXRhLAorICAgICAgICB1aW50MzJfdCBkYXRhIF9fdW51c2VkLCB1aW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgICAgaW50NjRfdCB0aW1lc3RhbXAgX191bnVzZWQpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVBhcmVudC0+bUxvY2spOworICAgIG1QYXJlbnQtPm1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IG1zZ1R5cGU7CisgICAgbVBhcmVudC0+bVZpZGVvQnVmZmVySW5kZXggPSBidWZmZXJJbmRleDsKKyAgICBpZiAobVBhcmVudC0+bU1lbW9yeVBvb2wuY291bnQoZGF0YSkgPT0gMCkgeworICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJtZW1vcnkgcG9vbCBJRCAiIDw8IGRhdGEgPDwgIiBub3QgZm91bmQiOworICAgIH0KKyAgICBtUGFyZW50LT5tVmlkZW9EYXRhID0gZGF0YTsKKyAgICBtUGFyZW50LT5tVmlkZW9OYXRpdmVIYW5kbGUgPSBmcmFtZURhdGE7CisgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaCgKKyAgICAgICAgRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+JiBiYXRjaCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgZm9yIChhdXRvJiBtc2cgOiBiYXRjaCkgeworICAgICAgICBtUGFyZW50LT5tRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBtc2dUeXBlOworICAgICAgICBtUGFyZW50LT5tVmlkZW9CdWZmZXJJbmRleCA9IG1zZy5idWZmZXJJbmRleDsKKyAgICAgICAgaWYgKG1QYXJlbnQtPm1NZW1vcnlQb29sLmNvdW50KG1zZy5kYXRhKSA9PSAwKSB7CisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJtZW1vcnkgcG9vbCBJRCAiIDw8IG1zZy5kYXRhIDw8ICIgbm90IGZvdW5kIjsKKyAgICAgICAgfQorICAgICAgICBtUGFyZW50LT5tVmlkZW9EYXRhID0gbXNnLmRhdGE7CisgICAgICAgIG1QYXJlbnQtPm1WaWRlb05hdGl2ZUhhbmRsZSA9IG1zZy5mcmFtZURhdGE7CisgICAgICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkRldmljZUNiOjpwcm9jZXNzQ2FwdHVyZVJlc3VsdCgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIHJlc3VsdHMpIHsKKyAgICBpZiAobnVsbHB0ciA9PSBtUGFyZW50KSB7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICBjb25zdCBDYXB0dXJlUmVzdWx0JiByZXN1bHQgPSByZXN1bHRzWzBdOworCisgICAgaWYobVBhcmVudC0+bVJlc3VsdEZyYW1lTnVtYmVyICE9IHJlc3VsdC5mcmFtZU51bWJlcikgeworICAgICAgICBBTE9HRSgiJXM6IFVuZXhwZWN0ZWQgZnJhbWUgbnVtYmVyISBFeHBlY3RlZDogJXUgcmVjZWl2ZWQ6ICV1IiwKKyAgICAgICAgICAgICAgX19mdW5jX18sIG1QYXJlbnQtPm1SZXN1bHRGcmFtZU51bWJlciwgcmVzdWx0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgQUREX0ZBSUxVUkUoKTsKKyAgICB9CisKKyAgICBzaXplX3QgcmVzdWx0TGVuZ3RoID0gcmVzdWx0Lm91dHB1dEJ1ZmZlcnMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgbVBhcmVudC0+bVJlc3VsdEJ1ZmZlcnMucHVzaF9iYWNrKHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldKTsKKyAgICB9CisKKyAgICAvLyBUT0RPKGVwZWV2KTogSGFuZGxlIHBhcnRpYWwgcmVzdWx0cyBpbiBjYXNlIGNsaWVudCBzdXBwb3J0cyB0aGVtIGFuZAorICAgIC8vICAgICAgICAgICAgICB2ZXJpZnkgdGhlIHJlc3VsdCBhZ2FpbnN0IHJlcXVlc3Qgc2V0dGluZ3MuCisKKyAgICBsLnVubG9jaygpOworICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYUhpZGxUZXN0OjpEZXZpY2VDYjo6bm90aWZ5KAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxOb3RpZnlNc2c+JiBtZXNzYWdlcykgeworICAgIGNvbnN0IE5vdGlmeU1zZyYgbWVzc2FnZSA9IG1lc3NhZ2VzWzBdOworCisgICAgaWYgKE1zZ1R5cGU6OkVSUk9SID09IG1lc3NhZ2UudHlwZSkgeworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgICAgICAgICBtUGFyZW50LT5tRXJyb3JzLnB1c2hfYmFjayhtZXNzYWdlLm1zZy5lcnJvcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKEVycm9yQ29kZTo6RVJST1JfUkVRVUVTVCA9PSBtZXNzYWdlLm1zZy5lcnJvci5lcnJvckNvZGUpCisgICAgICAgICAgICAgICAgfHwgKEVycm9yQ29kZTo6RVJST1JfQlVGRkVSID09IG1lc3NhZ2UubXNnLmVycm9yLmVycm9yQ29kZSkpIHsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworaGlkbF92ZWM8aGlkbF9zdHJpbmc+IENhbWVyYUhpZGxUZXN0OjpnZXRDYW1lcmFEZXZpY2VOYW1lcygpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXM7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhSWRMaXN0KAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGlkTGlzdCkgeworICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUlkTGlzdCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQUxPR0koIkNhbWVyYSBJZFslenVdIGlzICVzIiwgaSwgaWRMaXN0W2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBjYW1lcmFEZXZpY2VOYW1lcyA9IGlkTGlzdDsKKyAgICAgICAgfSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCk7CisgICAgfQorICAgIHJldHVybiBjYW1lcmFEZXZpY2VOYW1lczsKK30KKworLy8gVGVzdCBpZiBJQ2FtZXJhUHJvdmlkZXI6OmlzVG9yY2hNb2RlU3VwcG9ydGVkIHJldHVybnMgU3RhdHVzOjpPSworVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBpc1RvcmNoTW9kZVN1cHBvcnRlZCkgeworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5tUHJvdmlkZXItPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGJvb2wgc3VwcG9ydCkgeworICAgICAgICAgICAgQUxPR0koImlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkIHJldHVybnMgc3RhdHVzOiVkIHN1cHBvcnRlZDolZCIsCisgICAgICAgICAgICAgICAgICAgIChpbnQpc3RhdHVzLCBzdXBwb3J0KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVE9ETzogY29uc2lkZXIgcmVtb3ZpbmcgdGhpcyB0ZXN0IGlmIGdldENhbWVyYURldmljZU5hbWVzKCkgaGFzIHRoZSBzYW1lIGNvdmVyYWdlCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldENhbWVyYUlkTGlzdCkgeworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5tUHJvdmlkZXItPmdldENhbWVyYUlkTGlzdCgKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBpZExpc3QpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFJZExpc3QgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlkTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIEFMT0dJKCJDYW1lcmEgSWRbJXp1XSBpcyAlcyIsIGksIGlkTGlzdFtpXS5jX3N0cigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgLy8gVGhpcyBpcyB0cnVlIGZvciBpbnRlcm5hbCBjYW1lcmEgcHJvdmlkZXIuCisgICAgICAgICAgICAvLyBOb3QgbmVjZXNzYXJ5IGhvbGQgZm9yIGV4dGVybmFsIGNhbWVyYXMgcHJvdmlkZXJzCisgICAgICAgICAgICBBU1NFUlRfR1QoaWRMaXN0LnNpemUoKSwgMHUpOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVGVzdCBpZiBJQ2FtZXJhUHJvdmlkZXI6OmdldFZlbmRvclRhZ3MgcmV0dXJucyBTdGF0dXM6Ok9LCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldFZlbmRvclRhZ3MpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworICAgIHJldCA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+bVByb3ZpZGVyLT5nZXRWZW5kb3JUYWdzKAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHZlbmRvclRhZ1NlY3MpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRWZW5kb3JUYWdzIHJldHVybnMgc3RhdHVzOiVkIG51bVNlY3Rpb25zICV6dSIsCisgICAgICAgICAgICAgICAgICAgIChpbnQpc3RhdHVzLCB2ZW5kb3JUYWdTZWNzLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlbmRvclRhZ1NlY3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBBTE9HSSgiVmVuZG9yIHRhZyBzZWN0aW9uICV6dSBuYW1lICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGksIHZlbmRvclRhZ1NlY3NbaV0uc2VjdGlvbk5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB2ZW5kb3JUYWdTZWNzW2ldLnRhZ3Muc2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgdGFnID0gdmVuZG9yVGFnU2Vjc1tpXS50YWdzW2pdOworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiVmVuZG9yIHRhZyBpZCAldSBuYW1lICVzIHR5cGUgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZy50YWdJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcudGFnTmFtZS5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIHRhZy50YWdUeXBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIFRlc3QgaWYgSUNhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjayByZXR1cm5zIFN0YXR1czo6T0sKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc2V0Q2FsbGJhY2spIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBzdHJ1Y3QgUHJvdmlkZXJDYiA6IHB1YmxpYyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjayB7CisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGNhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgICAgICBDYW1lcmFEZXZpY2VTdGF0dXMgbmV3U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgiY2FtZXJhIGRldmljZSBzdGF0dXMgY2FsbGJhY2sgbmFtZSAlcywgc3RhdHVzICVkIiwKKyAgICAgICAgICAgICAgICAgICAgY2FtZXJhRGV2aWNlTmFtZS5jX3N0cigpLCAoaW50KSBuZXdTdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHRvcmNoTW9kZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhRGV2aWNlTmFtZSwKKyAgICAgICAgICAgICAgICBUb3JjaE1vZGVTdGF0dXMgbmV3U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgiVG9yY2ggbW9kZSBzdGF0dXMgY2FsbGJhY2sgbmFtZSAlcywgc3RhdHVzICVkIiwKKyAgICAgICAgICAgICAgICAgICAgY2FtZXJhRGV2aWNlTmFtZS5jX3N0cigpLCAoaW50KSBuZXdTdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgc3A8UHJvdmlkZXJDYj4gY2IgPSBuZXcgUHJvdmlkZXJDYjsKKyAgICBhdXRvIHN0YXR1cyA9IGVudi0+bVByb3ZpZGVyLT5zZXRDYWxsYmFjayhjYik7CisgICAgQVNTRVJUX1RSVUUoc3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7Cit9CisKKy8vIFRlc3QgaWYgSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2UgcmV0dXJucyBTdGF0dXM6Ok9LIGFuZCBub24tbnVsbCBkZXZpY2UKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UzXzIpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZTNfMiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UxKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UxLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCB0aGUgZGV2aWNlIHJlc291cmNlIGNvc3QgY2FuIGJlIHJldHJpZXZlZCBhbmQgdGhlIHZhbHVlcyBhcmUKKy8vIHNhbmUuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldFJlc291cmNlQ29zdCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koImdldFJlc291cmNlQ29zdDogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHJldCA9IGRldmljZTNfMi0+Z2V0UmVzb3VyY2VDb3N0KAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVzb3VyY2VDb3N0KSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRSZXNvdXJjZUNvc3QgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiICAgIFJlc291cmNlIGNvc3QgaXMgJWQiLCByZXNvdXJjZUNvc3QucmVzb3VyY2VDb3N0KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0xFKHJlc291cmNlQ29zdC5yZXNvdXJjZUNvc3QsIDEwMHUpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiByZXNvdXJjZUNvc3QuY29uZmxpY3RpbmdEZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiICAgIENvbmZsaWN0aW5nIGRldmljZTogJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZ2V0UmVzb3VyY2VDb3N0OiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHJldCA9IGRldmljZTEtPmdldFJlc291cmNlQ29zdCgKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHJlc291cmNlQ29zdCkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0UmVzb3VyY2VDb3N0IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koIiAgICBSZXNvdXJjZSBjb3N0IGlzICVkIiwgcmVzb3VyY2VDb3N0LnJlc291cmNlQ29zdCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9MRShyZXNvdXJjZUNvc3QucmVzb3VyY2VDb3N0LCAxMDB1KTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogcmVzb3VyY2VDb3N0LmNvbmZsaWN0aW5nRGV2aWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koIiAgICBDb25mbGljdGluZyBkZXZpY2U6ICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IHRoZSBzdGF0aWMgY2FtZXJhIGluZm8gY2FuIGJlIHJldHJpZXZlZAorLy8gc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRDYW1lcmFJbmZvKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlMSA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5nZXRDYW1lcmFJbmZvKAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgaW5mbykgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhSW5mbyByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChpbmZvLm9yaWVudGF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDkwOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxODA6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI3MDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0V4cGVjdGVkIGNhc2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNhbWVyYSBvcmllbnRhdGlvbjogJWQiLCBpbmZvLm9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGNhbWVyYSBvcmllbnRhdGlvbjoiIDw8IGluZm8ub3JpZW50YXRpb247CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGluZm8uZmFjaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENhbWVyYUZhY2luZzo6QkFDSzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2FtZXJhRmFjaW5nOjpGUk9OVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2FtZXJhRmFjaW5nOjpFWFRFUk5BTDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0V4cGVjdGVkIGNhc2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNhbWVyYSBmYWNpbmc6ICVkIiwgaW5mby5mYWNpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgY2FtZXJhIGZhY2luZzoiIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaW5mby5mYWNpbmcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQ2hlY2sgd2hldGhlciBwcmV2aWV3IHdpbmRvdyBjYW4gYmUgY29uZmlndXJlZAorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRQcmV2aWV3V2luZG93KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IHNldHRpbmcgcHJldmlldyB3aW5kb3cgZmFpbHMgaW4gY2FzZSBkZXZpY2UgaXMgbm90IG9wZW4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc2V0UHJldmlld1dpbmRvd0ludmFsaWQpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFByZXZpZXdXaW5kb3cobnVsbHB0cik7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVELCByZXR1cm5TdGF0dXMpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBTdGFydCBhbmQgc3RvcCBwcmV2aWV3IGNoZWNraW5nIHdoZXRoZXIgaXQgZ2V0cyBlbmFibGVkIGluIGJldHdlZW4uCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHN0YXJ0U3RvcFByZXZpZXcpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLCAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBSZXR1cm48Ym9vbD4gcmV0dXJuQm9vbFN0YXR1cyA9IGRldmljZTEtPnByZXZpZXdFbmFibGVkKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gU3RhcnQgcHJldmlldyB3aXRob3V0IGFjdGl2ZSBwcmV2aWV3IHdpbmRvdy4gUHJldmlldyBzaG91bGQgc3RhcnQgYXMgc29vbgorLy8gYXMgYSB2YWxpZCBhY3RpdmUgd2luZG93IGdldHMgY29uZmlndXJlZC4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc3RhcnRTdG9wUHJldmlld0RlbGF5ZWQpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zZXRQcmV2aWV3V2luZG93KG51bGxwdHIpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgLy9QcmV2aWV3IHNob3VsZCBnZXQgZW5hYmxlZCBub3cKKyAgICAgICAgICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlMS0+cHJldmlld0VuYWJsZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBpbWFnZSBjYXB0dXJlIGJlaGF2ZXMgYXMgZXhwZWN0ZWQgYWxvbmcgd2l0aCBwcmV2aWV3IGNhbGxiYWNrcy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgdGFrZVBpY3R1cmUpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIG1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IERhdGFDYWxsYmFja01zZzo6UkFXX0lNQUdFX05PVElGWTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZW5hYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwgZGV2aWNlMSk7CisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdhaXRGb3JGcmFtZUxvY2tlZChEYXRhQ2FsbGJhY2tNc2c6OlBSRVZJRVdfRlJBTUUsIGwpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UxKTsKKyAgICAgICAgICAgIGVuYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OkNPTVBSRVNTRURfSU1BR0UsCisgICAgICAgICAgICAgICAgICAgIGRldmljZTEpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICBtRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBEYXRhQ2FsbGJhY2tNc2c6OlJBV19JTUFHRV9OT1RJRlk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnRha2VQaWN0dXJlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnOjpDT01QUkVTU0VEX0lNQUdFLCBsKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlzYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OkNPTVBSRVNTRURfSU1BR0UsCisgICAgICAgICAgICAgICAgICAgIGRldmljZTEpOworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gSW1hZ2UgY2FwdHVyZSBzaG91bGQgZmFpbCBpbiBjYXNlIHByZXZpZXcgZGlkbid0IGdldCBlbmFibGVkIGZpcnN0LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCB0YWtlUGljdHVyZUZhaWwpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT50YWtlUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgaW1hZ2UgY2FwdHVyZSBjYW4gYmUgY2FuY2VsbGVkLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjYW5jZWxQaWN0dXJlKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT50YWtlUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+Y2FuY2VsUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gSW1hZ2UgY2FwdHVyZSBjYW5jZWwgc2hvdWxkIGZhaWwgd2hlbiBpbWFnZSBjYXB0dXJlIGlzIG5vdCBydW5uaW5nLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjYW5jZWxQaWN0dXJlRmFpbCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+Y2FuY2VsUGljdHVyZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVGVzdCBiYXNpYyB2aWRlbyByZWNvcmRpbmcuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHN0YXJ0U3RvcFJlY29yZGluZykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gRGF0YUNhbGxiYWNrTXNnOjpSQVdfSU1BR0VfTk9USUZZOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbmFibGVNc2dUeXBlKCh1bnNpZ25lZCBpbnQpRGF0YUNhbGxiYWNrTXNnOjpQUkVWSUVXX0ZSQU1FLCBkZXZpY2UxKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2FpdEZvckZyYW1lTG9ja2VkKERhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwgbCk7CisgICAgICAgICAgICAgICAgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gRGF0YUNhbGxiYWNrTXNnOjpSQVdfSU1BR0VfTk9USUZZOworICAgICAgICAgICAgICAgIG1WaWRlb0J1ZmZlckluZGV4ID0gVUlOVDMyX01BWDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlzYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlBSRVZJRVdfRlJBTUUsIGRldmljZTEpOworCisgICAgICAgICAgICBib29sIHZpZGVvTWV0YUVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnN0b3JlTWV0YURhdGFJbkJ1ZmZlcnModHJ1ZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIC8vIEl0IGlzIGFsbG93ZWQgZm9yIGRldmljZXMgdG8gbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlCisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoU3RhdHVzOjpPSyA9PSByZXR1cm5TdGF0dXMpIHx8CisgICAgICAgICAgICAgICAgICAgIChTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEID09IHJldHVyblN0YXR1cykpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6T0sgPT0gcmV0dXJuU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgdmlkZW9NZXRhRW5hYmxlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVuYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlZJREVPX0ZSQU1FLCBkZXZpY2UxKTsKKyAgICAgICAgICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlMS0+cmVjb3JkaW5nRW5hYmxlZCgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuQm9vbFN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0ZBTFNFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zdGFydFJlY29yZGluZygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2FpdEZvckZyYW1lTG9ja2VkKERhdGFDYWxsYmFja01zZzo6VklERU9fRlJBTUUsIGwpOworICAgICAgICAgICAgICAgIEFTU0VSVF9ORShVSU5UMzJfTUFYLCBtVmlkZW9CdWZmZXJJbmRleCk7CisgICAgICAgICAgICAgICAgZGlzYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlZJREVPX0ZSQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UxLT5yZWNvcmRpbmdFbmFibGVkKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIGlmICh2aWRlb01ldGFFbmFibGVkKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+cmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlKG1WaWRlb0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICBtVmlkZW9CdWZmZXJJbmRleCwgbVZpZGVvTmF0aXZlSGFuZGxlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+cmVsZWFzZVJlY29yZGluZ0ZyYW1lKG1WaWRlb0RhdGEsIG1WaWRlb0J1ZmZlckluZGV4KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+c3RvcFJlY29yZGluZygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEl0IHNob3VsZG4ndCBiZSBwb3NzaWJsZSB0byBzdGFydCByZWNvcmRpbmcgd2l0aG91dCBlbmFibGluZyBwcmV2aWV3IGZpcnN0LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzdGFydFJlY29yZGluZ0ZhaWwpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICBSZXR1cm48Ym9vbD4gcmV0dXJuQm9vbFN0YXR1cyA9IGRldmljZTEtPnJlY29yZGluZ0VuYWJsZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9GQUxTRShyZXR1cm5Cb29sU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c3RhcnRSZWNvcmRpbmcoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIGF1dG9mb2N1cyBzdXBwb3J0IGlmIGF2YWlsYWJsZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgYXV0b0ZvY3VzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyICo+IGZvY3VzTW9kZXMgPSB7Q2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPLAorICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUsCisgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU99OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgY2FtZXJhUGFyYW1zOworICAgICAgICAgICAgZ2V0UGFyYW1ldGVycyhkZXZpY2UxLCAmY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworCisgICAgICAgICAgICBpZiAoU3RhdHVzOjpPSyAhPSBpc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoY2FtZXJhUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0FVVE8pKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworICAgICAgICAgICAgZW5hYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KU5vdGlmeUNhbGxiYWNrTXNnOjpGT0NVUywgZGV2aWNlMSk7CisKKyAgICAgICAgICAgIGZvciAoYXV0byAmaXRlciA6IGZvY3VzTW9kZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoU3RhdHVzOjpPSyAhPSBpc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoY2FtZXJhUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2FtZXJhUGFyYW1zLnNldChDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DVVNfTU9ERSwgaXRlcik7CisgICAgICAgICAgICAgICAgc2V0UGFyYW1ldGVycyhkZXZpY2UxLCBjYW1lcmFQYXJhbXMpOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgbU5vdGlmeU1lc3NhZ2UgPSBOb3RpZnlDYWxsYmFja01zZzo6RVJST1I7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+YXV0b0ZvY3VzKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChOb3RpZnlDYWxsYmFja01zZzo6Rk9DVVMgIT0gbU5vdGlmeU1lc3NhZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa0F1dG9Gb2N1c1RpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUmVzdWx0Q29uZGl0aW9uLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KU5vdGlmeUNhbGxiYWNrTXNnOjpGT0NVUywgZGV2aWNlMSk7CisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBJbiBjYXNlIGF1dG9mb2N1cyBpcyBzdXBwb3J0ZWQgdmVyaWZ5IHRoYXQgaXQgY2FuIGJlIGNhbmNlbGxlZC4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY2FuY2VsQXV0b0ZvY3VzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzIGNhbWVyYVBhcmFtczsKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcnMoZGV2aWNlMSwgJmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKworICAgICAgICAgICAgaWYgKFN0YXR1czo6T0sgIT0gaXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKGNhbWVyYVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPKSkgeworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJdCBzaG91bGQgYmUgZmluZSB0byBjYWxsIGJlZm9yZSBwcmV2aWV3IHN0YXJ0cy4KKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBkZXZpY2UxLT5jYW5jZWxBdXRvRm9jdXMoKSk7CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICAvLyBJdCBzaG91bGQgYmUgZmluZSB0byBjYWxsIGFmdGVyIHByZXZpZXcgc3RhcnRzIHRvby4KKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPmNhbmNlbEF1dG9Gb2N1cygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+YXV0b0ZvY3VzKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5jYW5jZWxBdXRvRm9jdXMoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgZmFjZSBkZXRlY3Rpb24gaXMgYXZhaWxhYmxlIGFuZCB0cnkgdG8gZW5hYmxlJmRpc2FibGUuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHNlbmRDb21tYW5kRmFjZURldGVjdGlvbikgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6Q2FtZXJhUGFyYW1ldGVycyBjYW1lcmFQYXJhbXM7CisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzKGRldmljZTEsICZjYW1lcmFQYXJhbXMgLypvdXQqLyk7CisKKyAgICAgICAgICAgIGludDMyX3QgaHdGYWNlcyA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX0hXKTsKKyAgICAgICAgICAgIGludDMyX3Qgc3dGYWNlcyA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX1NXKTsKKyAgICAgICAgICAgIGlmICgoMCA+PSBod0ZhY2VzKSAmJiAoMCA+PSBzd0ZhY2VzKSkgeworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgaWYgKDAgPCBod0ZhY2VzKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kVHlwZTo6U1RBUlRfRkFDRV9ERVRFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fSFcsIDApOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgICAgIC8vIFRPRE8oZXBlZXYpIDogRW5hYmxlIGFuZCBjaGVjayBmb3IgZmFjZSBub3RpZmljYXRpb25zCisgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kVHlwZTo6U1RPUF9GQUNFX0RFVEVDVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENBTUVSQV9GQUNFX0RFVEVDVElPTl9IVywgMCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgwIDwgc3dGYWNlcykgeworICAgICAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZFR5cGU6OlNUQVJUX0ZBQ0VfREVURUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgQ0FNRVJBX0ZBQ0VfREVURUNUSU9OX1NXLCAwKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPKGVwZWV2KSA6IEVuYWJsZSBhbmQgY2hlY2sgZm9yIGZhY2Ugbm90aWZpY2F0aW9ucworICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZFR5cGU6OlNUT1BfRkFDRV9ERVRFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fU1csIDApOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIHNtb290aCB6b29tIGlzIGF2YWlsYWJsZSBhbmQgdHJ5IHRvIGVuYWJsZSZkaXNhYmxlLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZW5kQ29tbWFuZFNtb290aFpvb20pIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgY2FtZXJhUGFyYW1zOworICAgICAgICAgICAgZ2V0UGFyYW1ldGVycyhkZXZpY2UxLCAmY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworCisgICAgICAgICAgICBjb25zdCBjaGFyICpzbW9vdGhab29tU3RyID0gY2FtZXJhUGFyYW1zLmdldCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NNT09USF9aT09NX1NVUFBPUlRFRCk7CisgICAgICAgICAgICBib29sIHNtb290aFpvb21TdXBwb3J0ZWQgPSAoKG51bGxwdHIgIT0gc21vb3RoWm9vbVN0cikgJiYKKyAgICAgICAgICAgICAgICAgICAgKHN0cmNtcChzbW9vdGhab29tU3RyLCBDYW1lcmFQYXJhbWV0ZXJzOjpUUlVFKSA9PSAwKSkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgOiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghc21vb3RoWm9vbVN1cHBvcnRlZCkgeworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQzMl90IG1heFpvb20gPSBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX1pPT00pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoMCA8IG1heFpvb20pOworCisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKyAgICAgICAgICAgIHNldFBhcmFtZXRlcnMoZGV2aWNlMSwgY2FtZXJhUGFyYW1zKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIENvbW1hbmRUeXBlOjpTVEFSVF9TTU9PVEhfWk9PTSwgbWF4Wm9vbSwgMCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgLy8gVE9ETyhlcGVldikgOiBFbmFibGUgYW5kIGNoZWNrIGZvciBmYWNlIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNlbmRDb21tYW5kKENvbW1hbmRUeXBlOjpTVE9QX1NNT09USF9aT09NLAorICAgICAgICAgICAgICAgICAgICAwLCAwKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEJhc2ljIHNhbml0eSB0ZXN0cyByZWxhdGVkIHRvIGNhbWVyYSBwYXJhbWV0ZXJzLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRTZXRQYXJhbWV0ZXJzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzIGNhbWVyYVBhcmFtczsKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcnMoZGV2aWNlMSwgJmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKworICAgICAgICAgICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFBpY3R1cmVTaXplKCZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IHdpZHRoKSAmJiAoMCA8IGhlaWdodCkpOworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFByZXZpZXdTaXplKCZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IHdpZHRoKSAmJiAoMCA8IGhlaWdodCkpOworICAgICAgICAgICAgaW50MzJfdCBtaW5GcHMsIG1heEZwczsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRQcmV2aWV3RnBzUmFuZ2UoJm1pbkZwcywgJm1heEZwcyk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IG1pbkZwcykgJiYgKDAgPCBtYXhGcHMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMuZ2V0UHJldmlld0Zvcm1hdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMuZ2V0UGljdHVyZUZvcm1hdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHN0cmNtcChDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfSlBFRywKKyAgICAgICAgICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFBpY3R1cmVGb3JtYXQoKSkgPT0gMCk7CisKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZsYXNoTW9kZSA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GTEFTSF9NT0RFKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChudWxscHRyID09IGZsYXNoTW9kZSkgfHwgKHN0cmNtcCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6RkxBU0hfTU9ERV9PRkYsIGZsYXNoTW9kZSkgPT0gMCkpOworCisgICAgICAgICAgICBjb25zdCBjaGFyICp3Yk1vZGUgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfV0hJVEVfQkFMQU5DRSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgobnVsbHB0ciA9PSB3Yk1vZGUpIHx8IChzdHJjbXAoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfQVVUTywgd2JNb2RlKSA9PSAwKSk7CisKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVmZmVjdCA9IGNhbWVyYVBhcmFtcy5nZXQoQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0VGRkVDVCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgobnVsbHB0ciA9PSBlZmZlY3QpIHx8IChzdHJjbXAoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9OT05FLCBlZmZlY3QpID09IDApKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpWZWN0b3I8OjphbmRyb2lkOjpTaXplPiBwcmV2aWV3U2l6ZXM7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0U3VwcG9ydGVkUHJldmlld1NpemVzKHByZXZpZXdTaXplcyk7CisgICAgICAgICAgICBBU1NFUlRfRkFMU0UocHJldmlld1NpemVzLmVtcHR5KCkpOworICAgICAgICAgICAgOjphbmRyb2lkOjpWZWN0b3I8OjphbmRyb2lkOjpTaXplPiBwaWN0dXJlU2l6ZXM7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0U3VwcG9ydGVkUGljdHVyZVNpemVzKHBpY3R1cmVTaXplcyk7CisgICAgICAgICAgICBBU1NFUlRfRkFMU0UocGljdHVyZVNpemVzLmVtcHR5KCkpOworICAgICAgICAgICAgY29uc3QgY2hhciAqcHJldmlld0Zvcm1hdHMgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRk9STUFUUyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgcHJldmlld0Zvcm1hdHMpOworICAgICAgICAgICAgOjphbmRyb2lkOjpTdHJpbmc4IHByZXZpZXdGb3JtYXRzU3RyaW5nKHByZXZpZXdGb3JtYXRzKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHByZXZpZXdGb3JtYXRzU3RyaW5nLmNvbnRhaW5zKAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIwU1ApKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfRk9STUFUUykpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfUFJFVklFV19GUkFNRV9SQVRFUykpOworICAgICAgICAgICAgY29uc3QgY2hhciAqZm9jdXNNb2RlcyA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfRk9DVVNfTU9ERVMpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGZvY3VzTW9kZXMpOworICAgICAgICAgICAgOjphbmRyb2lkOjpTdHJpbmc4IGZvY3VzTW9kZXNTdHJpbmcoZm9jdXNNb2Rlcyk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpmb2N1c01vZGUgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DVVNfTU9ERSk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZm9jdXNNb2RlKTsKKyAgICAgICAgICAgIC8vIEF1dG8gZm9jdXMgbW9kZSBzaG91bGQgYmUgZGVmYXVsdAorICAgICAgICAgICAgaWYgKGZvY3VzTW9kZXNTdHJpbmcuY29udGFpbnMoQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHN0cmNtcCgKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQVVUTywgZm9jdXNNb2RlKSA9PSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKDAgPCBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DQUxfTEVOR1RIKSk7CisgICAgICAgICAgICBpbnQzMl90IGhvcml6b250YWxWaWV3QW5nbGUgPSBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfSE9SSVpPTlRBTF9WSUVXX0FOR0xFKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgwIDwgaG9yaXpvbnRhbFZpZXdBbmdsZSkgJiYgKDM2MCA+PSBob3Jpem9udGFsVmlld0FuZ2xlKSk7CisgICAgICAgICAgICBpbnQzMl90IHZlcnRpY2FsVmlld0FuZ2xlID0gY2FtZXJhUGFyYW1zLmdldEludCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1ZFUlRJQ0FMX1ZJRVdfQU5HTEUpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKDAgPCB2ZXJ0aWNhbFZpZXdBbmdsZSkgJiYgKDM2MCA+PSB2ZXJ0aWNhbFZpZXdBbmdsZSkpOworICAgICAgICAgICAgaW50MzJfdCBqcGVnUXVhbGl0eSA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1FVQUxJVFkpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKDEgPD0ganBlZ1F1YWxpdHkpICYmICgxMDAgPj0ganBlZ1F1YWxpdHkpKTsKKyAgICAgICAgICAgIGludDMyX3QganBlZ1RodW1iUXVhbGl0eSA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9KUEVHX1RIVU1CTkFJTF9RVUFMSVRZKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgxIDw9IGpwZWdUaHVtYlF1YWxpdHkpICYmICgxMDAgPj0ganBlZ1RodW1iUXVhbGl0eSkpOworCisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuc2V0UGljdHVyZVNpemUocGljdHVyZVNpemVzWzBdLndpZHRoLAorICAgICAgICAgICAgICAgICAgICBwaWN0dXJlU2l6ZXNbMF0uaGVpZ2h0KTsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5zZXRQcmV2aWV3U2l6ZShwcmV2aWV3U2l6ZXNbMF0ud2lkdGgsCisgICAgICAgICAgICAgICAgICAgIHByZXZpZXdTaXplc1swXS5oZWlnaHQpOworCisgICAgICAgICAgICBzZXRQYXJhbWV0ZXJzKGRldmljZTEsIGNhbWVyYVBhcmFtcyk7CisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzKGRldmljZTEsICZjYW1lcmFQYXJhbXMgLypvdXQqLyk7CisKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRQaWN0dXJlU2l6ZSgmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKHBpY3R1cmVTaXplc1swXS53aWR0aCA9PSB3aWR0aCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKHBpY3R1cmVTaXplc1swXS5oZWlnaHQgPT0gaGVpZ2h0KSk7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0UHJldmlld1NpemUoJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChwcmV2aWV3U2l6ZXNbMF0ud2lkdGggPT0gd2lkdGgpICYmCisgICAgICAgICAgICAgICAgICAgIChwcmV2aWV3U2l6ZXNbMF0uaGVpZ2h0ID09IGhlaWdodCkpOworCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCB0aGUgc3RhdGljIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3MgY2FuIGJlIHJldHJpZXZlZAorLy8gc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3M6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICByZXQgPSBkZXZpY2UzXzItPmdldENhbWVyYUNoYXJhY3RlcmlzdGljcygKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGNoYXJzKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogbWV0YWRhdGEgPSAoY2FtZXJhX21ldGFkYXRhX3QqKSBjaGFycy5kYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBleHBlY3RlZFNpemUgPSBjaGFycy5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwLCB2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKG1ldGFkYXRhLCAmZXhwZWN0ZWRTaXplKSk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBlbnRyeUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9jb3VudChtZXRhZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHdlIGNhbiBkbyBiZXR0ZXIgdGhhbiAwIGhlcmUuIE5lZWQgdG8gY2hlY2sgaG93IG1hbnkgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyaXN0aWNzIGtleXMgd2UndmUgZGVmaW5lZC4KKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0dUKGVudHJ5Q291bnQsIDB1KTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljcyBtZXRhZGF0YSBlbnRyeSBjb3VudCBpcyAlenUiLCBlbnRyeUNvdW50KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvL0luIGNhc2UgaXQgaXMgc3VwcG9ydGVkIHZlcmlmeSB0aGF0IHRvcmNoIGNhbiBiZSBlbmFibGVkLgorLy9DaGVjayBmb3IgY29ycmVzcG9uZGluZyB0b2NoIGNhbGxiYWNrcyBhcyB3ZWxsLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRUb3JjaE1vZGUpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIGJvb2wgdG9yY2hDb250cm9sU3VwcG9ydGVkID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIHJldCA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+bVByb3ZpZGVyLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBib29sIHN1cHBvcnQpIHsKKyAgICAgICAgICAgIEFMT0dJKCJpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCByZXR1cm5zIHN0YXR1czolZCBzdXBwb3J0ZWQ6JWQiLAorICAgICAgICAgICAgICAgICAgICAoaW50KXN0YXR1cywgc3VwcG9ydCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIHRvcmNoQ29udHJvbFN1cHBvcnRlZCA9IHN1cHBvcnQ7CisgICAgICAgIH0pOworCisKKyAgICBzcDxUb3JjaFByb3ZpZGVyQ2I+IGNiID0gbmV3IFRvcmNoUHJvdmlkZXJDYih0aGlzKTsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBlbnYtPm1Qcm92aWRlci0+c2V0Q2FsbGJhY2soY2IpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIEFMT0dJKCJzZXRUb3JjaE1vZGU6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTNfMi0+c2V0VG9yY2hNb2RlKFRvcmNoTW9kZTo6T04pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBpZiAoIXRvcmNoQ29udHJvbFN1cHBvcnRlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVELCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09OLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoU3RhdHVzID0gVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlM18yLT5zZXRUb3JjaE1vZGUoVG9yY2hNb2RlOjpPRkYpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09GRiwgbVRvcmNoU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImR1bXBTdGF0ZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9OKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgaWYgKCF0b3JjaENvbnRyb2xTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRCwgcmV0dXJuU3RhdHVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0sgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRCk7CisgICAgICAgICAgICAgICAgaWYgKHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtVG9yY2hMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChUb3JjaE1vZGVTdGF0dXM6Ok5PVF9BVkFJTEFCTEUgPT0gbVRvcmNoU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1RvcmNoVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoQ29uZC53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShUb3JjaE1vZGVTdGF0dXM6OkFWQUlMQUJMRV9PTiwgbVRvcmNoU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9GRik7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVRvcmNoTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFID09IG1Ub3JjaFN0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUb3JjaFRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaENvbmQud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoVG9yY2hNb2RlU3RhdHVzOjpBVkFJTEFCTEVfT0ZGLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuU3RhdHVzID0gZW52LT5tUHJvdmlkZXItPnNldENhbGxiYWNrKG51bGxwdHIpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBDaGVjayBkdW1wIGZ1bmN0aW9uYWxpdHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGR1bXBTdGF0ZSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgICAgICAgICBBTE9HSSgiZHVtcFN0YXRlOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIHJhd19oYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIHJhd19oYW5kbGUtPmRhdGFbMF0gPSBvcGVuKGtEdW1wT3V0cHV0LCBPX1JEV1IpOworICAgICAgICAgICAgQVNTRVJUX0dFKHJhd19oYW5kbGUtPmRhdGFbMF0sIDApOworICAgICAgICAgICAgaGlkbF9oYW5kbGUgaGFuZGxlID0gcmF3X2hhbmRsZTsKKyAgICAgICAgICAgIHJldD0gZGV2aWNlM18yLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImR1bXBTdGF0ZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gT3BlbiwgZHVtcFN0YXRlcywgdGhlbiBjbG9zZQorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBvcGVuQ2xvc2UpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIFJldHVybjx2b2lkPiByZXQ7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koIm9wZW5DbG9zZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8RW1wdHlEZXZpY2VDYj4gY2IgPSBuZXcgRW1wdHlEZXZpY2VDYjsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICAgICAgICAgIGNiLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIHJhd19oYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIHJhd19oYW5kbGUtPmRhdGFbMF0gPSBvcGVuKGtEdW1wT3V0cHV0LCBPX1JEV1IpOworICAgICAgICAgICAgQVNTRVJUX0dFKHJhd19oYW5kbGUtPmRhdGFbMF0sIDApOworICAgICAgICAgICAgaGlkbF9oYW5kbGUgaGFuZGxlID0gcmF3X2hhbmRsZTsKKyAgICAgICAgICAgIHJldCA9IGRldmljZTNfMi0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIGNsb3NlKHJhd19oYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUocmF3X2hhbmRsZSk7CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgYWxsIHNlc3Npb24gQVBJIGNhbGxzIHJldHVybiBJTlRFUk5BTF9FUlJPUiBhZnRlciBjbG9zZQorICAgICAgICAgICAgLy8gVE9ETzoga2VlcCBhIHdwIGNvcHkgaGVyZSBhbmQgdmVyaWZ5IHNlc3Npb24gY2Fubm90IGJlIHByb21vdGVkIG91dCBvZiB0aGlzIHNjb3BlCisgICAgICAgIH0gZWxzZSBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIGFsbCBjb21tb24gZGVmYXVsdCByZXF1ZXN0IHNldHRpbmdzIGNhbiBiZSBzdWNlc3NmdWxseQorLy8gY29uc3RydWN0ZWQuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBBTE9HSSgiY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8RW1wdHlEZXZpY2VDYj4gY2IgPSBuZXcgRW1wdHlEZXZpY2VDYjsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICAgICAgICAgIGNiLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IHQgPSAodWludDMyX3QpIFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgICAgICAgICAgdCA8PSAodWludDMyX3QpIFJlcXVlc3RUZW1wbGF0ZTo6TUFOVUFMOyB0KyspIHsKKyAgICAgICAgICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgcmVxVGVtcGxhdGUgPSAoUmVxdWVzdFRlbXBsYXRlKSB0OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoCisgICAgICAgICAgICAgICAgICAgIHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHJlcSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxVGVtcGxhdGUgPT0gUmVxdWVzdFRlbXBsYXRlOjpaRVJPX1NIVVRURVJfTEFHIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVRlbXBsYXRlID09IFJlcXVlc3RUZW1wbGF0ZTo6TUFOVUFMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWwgdGVtcGxhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6T0sgfHwgc3RhdHVzID09IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogbWV0YWRhdGEgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FtZXJhX21ldGFkYXRhX3QqKSByZXEuZGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBleHBlY3RlZFNpemUgPSByZXEuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwLCB2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEsICZleHBlY3RlZFNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZW50cnlDb3VudCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobWV0YWRhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHdlIGNhbiBkbyBiZXR0ZXIgdGhhbiAwIGhlcmUuIE5lZWQgdG8gY2hlY2sgaG93IG1hbnkgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0IGtleXMgd2UndmUgZGVmaW5lZCBmb3IgZWFjaCB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9HVChlbnRyeUNvdW50LCAwdSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koInRlbXBsYXRlICV1IG1ldGFkYXRhIGVudHJ5IGNvdW50IGlzICV6dSIsIHQsIGVudHJ5Q291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoMHUsIHJlcS5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgYWxsIHN1cHBvcnRlZCBzdHJlYW0gZm9ybWF0cyBhbmQgc2l6ZXMgY2FuIGJlIGNvbmZpZ3VyZWQKKy8vIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0F2YWlsYWJsZU91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0U3RyZWFtczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcykpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgZm9yIChhdXRvICZpdCA6IG91dHB1dFN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBTdHJlYW0gc3RyZWFtID0ge3N0cmVhbUlkLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaXQuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7c3RyZWFtfTsKKyAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbENvbmZpZykgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKGhhbENvbmZpZy5zdHJlYW1zWzBdLmlkLCBzdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgc3RyZWFtSWQrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIGZvciBjb3JyZWN0IGhhbmRsaW5nIG9mIGludmFsaWQvaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0ludmFsaWRPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFN0cmVhbXM7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIG91dHB1dFN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFN0cmVhbXMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0U3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIFN0cmVhbSBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKDApLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKDApLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dFN0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0ge3N0cmVhbX07CisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKChTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQgPT0gcykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiA9PSBzKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dFN0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgZm9yIChhdXRvICZpdCA6IG91dHB1dFN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpdC5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgc3RhdGljX2Nhc3Q8U3RyZWFtUm90YXRpb24+IChVSU5UMzJfTUFYKX07CisgICAgICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIGFsbCBzdXBwb3J0ZWQgWlNMIG91dHB1dCBzdHJlYW0gY29tYmluYXRpb25zIGNhbiBiZQorLy8gY29uZmlndXJlZCBzdWNjZXNzZnVsbHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNvbmZpZ3VyZVN0cmVhbXNaU0xJbnB1dE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gaW5wdXRTdHJlYW1zOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVpTTElucHV0T3V0cHV0PiBpbnB1dE91dHB1dE1hcDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgU3RhdHVzIHJjID0gaXNaU0xNb2RlQXZhaWxhYmxlKHN0YXRpY01ldGEpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQgPT0gcmMpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgaW5wdXRTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmVhbXMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGlucHV0T3V0cHV0TWFwLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0WlNMSW5wdXRPdXRwdXRNYXAoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgaW5wdXRPdXRwdXRNYXApKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRPdXRwdXRNYXAuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJmlucHV0SXRlciA6IGlucHV0T3V0cHV0TWFwKSB7CisgICAgICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIGlucHV0OworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgICAgZmluZExhcmdlc3RTaXplKGlucHV0U3RyZWFtcywgaW5wdXRJdGVyLmlucHV0Rm9ybWF0LCBpbnB1dCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgICAgICBBdmFpbGFibGVTdHJlYW0gb3V0cHV0VGhyZXNob2xkID0ge0lOVDMyX01BWCwgSU5UMzJfTUFYLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRJdGVyLm91dHB1dEZvcm1hdH07CisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRTdHJlYW1zOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLCAmb3V0cHV0VGhyZXNob2xkKSk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvICZvdXRwdXRJdGVyIDogb3V0cHV0U3RyZWFtcykgeworICAgICAgICAgICAgICAgICAgICBTdHJlYW0genNsU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpbnB1dC5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfSFdfQ0FNRVJBX1pTTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBpbnB1dFN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpJTlBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpbnB1dC5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIG91dHB1dFN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChvdXRwdXRJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dEl0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dEl0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisKKyAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtLCB6c2xTdHJlYW0sIG91dHB1dFN0cmVhbX07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoM3UsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBhbGwgc3VwcG9ydGVkIHByZXZpZXcgKyBzdGlsbCBjYXB0dXJlIHN0cmVhbSBjb21iaW5hdGlvbnMKKy8vIGNhbiBiZSBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1ByZXZpZXdTdGlsbE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0QmxvYlN0cmVhbXM7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgQXZhaWxhYmxlU3RyZWFtIGJsb2JUaHJlc2hvbGQgPSB7SU5UMzJfTUFYLCBJTlQzMl9NQVgsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6QkxPQil9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgb3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihuYW1lLCBlbnYsICZzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZzdGF0aWNNZXRhIC8qb3V0Ki8pOworCisgICAgICAgICAgICBvdXRwdXRCbG9iU3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMsICZibG9iVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dEJsb2JTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIG91dHB1dFByZXZpZXdTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcywgJnByZXZpZXdUaHJlc2hvbGQpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0UHJldmlld1N0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJmJsb2JJdGVyIDogb3V0cHV0QmxvYlN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8gJnByZXZpZXdJdGVyIDogb3V0cHV0UHJldmlld1N0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIHByZXZpZXdTdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAocHJldmlld0l0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAocHJldmlld0l0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKHByZXZpZXdJdGVyLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgICAgICBTdHJlYW0gYmxvYlN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChibG9iSXRlci53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChibG9iSXRlci5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoYmxvYkl0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLCBibG9iU3RyZWFtfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgydSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEluIGNhc2UgY29uc3RyYWluZWQgbW9kZSBpcyBzdXBwb3J0ZWQsIHRlc3Qgd2hldGhlciBpdCBjYW4gYmUKKy8vIGNvbmZpZ3VyZWQuIEFkZGl0aW9uYWxseSBjaGVjayBmb3IgY29tbW9uIGludmFsaWQgaW5wdXRzIHdoZW4KKy8vIHVzaW5nIHRoaXMgbW9kZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0NvbnN0cmFpbmVkT3V0cHV0cykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFN0YXR1cyByYyA9IGlzQ29uc3RyYWluZWRNb2RlQXZhaWxhYmxlKHN0YXRpY01ldGEpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQgPT0gcmMpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIGhmclN0cmVhbTsKKyAgICAgICAgICAgIHJjID0gcGlja0NvbnN0cmFpbmVkTW9kZVNpemUoc3RhdGljTWV0YSwgaGZyU3RyZWFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByYyk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgU3RyZWFtIHN0cmVhbSA9IHtzdHJlYW1JZCwgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS53aWR0aCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaGZyU3RyZWFtLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaGZyU3RyZWFtLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHtzdHJlYW19OworICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoaGFsQ29uZmlnLnN0cmVhbXNbMF0uaWQsIHN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaGZyU3RyZWFtLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRSgoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UID09IHMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0YXR1czo6SU5URVJOQUxfRVJST1IgPT0gcykpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChVSU5UMzJfTUFYKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChVSU5UMzJfTUFYKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChoZnJTdHJlYW0uZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Q09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFfTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbc3RyZWFtSWRdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChoZnJTdHJlYW0ud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKFVJTlQzMl9NQVgpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICBzdHJlYW1zWzBdID0gc3RyZWFtOworICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShzdGF0aWNNZXRhKTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgYWxsIHN1cHBvcnRlZCB2aWRlbyArIHNuYXBzaG90IHN0cmVhbSBjb21iaW5hdGlvbnMgY2FuCisvLyBiZSBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1ZpZGVvU3RpbGxPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dEJsb2JTdHJlYW1zOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0VmlkZW9TdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSB2aWRlb1RocmVzaG9sZCA9IHtrTWF4VmlkZW9XaWR0aCwga01heFZpZGVvSGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBBdmFpbGFibGVTdHJlYW0gYmxvYlRocmVzaG9sZCA9IHtrTWF4VmlkZW9XaWR0aCwga01heFZpZGVvSGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OkJMT0IpfTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJsb2JTdHJlYW1zLCAmYmxvYlRocmVzaG9sZCkpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRCbG9iU3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBvdXRwdXRWaWRlb1N0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFZpZGVvU3RyZWFtcywgJnZpZGVvVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dFZpZGVvU3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIGZvciAoYXV0byAmYmxvYkl0ZXIgOiBvdXRwdXRCbG9iU3RyZWFtcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byAmdmlkZW9JdGVyIDogb3V0cHV0VmlkZW9TdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSB2aWRlb1N0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+ICh2aWRlb0l0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAodmlkZW9JdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+ICh2aWRlb0l0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBibG9iU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChibG9iSXRlci5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfSFdfVklERU9fRU5DT0RFUiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1N0cmVhbSwgYmxvYlN0cmVhbX07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoMnUsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBHZW5lcmF0ZSBhbmQgdmVyaWZ5IGEgY2FtZXJhIGNhcHR1cmUgcmVxdWVzdAorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RQcmV2aWV3KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IHJlcTsgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGdiLmdldCgpKTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBvdXRwdXRCdWZmZXIgPSB7aGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uaWQsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcklkLCBoaWRsX2hhbmRsZShnYi0+Z2V0TmF0aXZlQnVmZmVyKCktPmhhbmRsZSksCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6T0ssIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzID0geworICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXJ9OworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMCAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJzfTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0RnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXR1cm5TdGF0dXMgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMXUpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoMCA9PSBtUmVzdWx0QnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtTdHJlYW1CdWZmZXJUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1SZXN1bHRDb25kaXRpb24ud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHByZXZpZXdTdHJlYW0uaWQsIG1SZXN1bHRCdWZmZXJzWzBdLnN0cmVhbUlkKTsKKworICAgICAgICAgICAgICAgIHJlcXVlc3QuZnJhbWVOdW1iZXIrKzsKKyAgICAgICAgICAgICAgICAvL0VtcHR5IHNldHRpbmdzIHNob3VsZCBiZSBzdXBwb3J0ZWQgYWZ0ZXIgdGhlIGZpcnN0IGNhbGwKKyAgICAgICAgICAgICAgICAvL2ZvciByZXBlYXRpbmcgcmVxdWVzdHMuCisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXR0aW5ncy5zZXRUb0V4dGVybmFsKG51bGxwdHIsIDAsIHRydWUpOworICAgICAgICAgICAgICAgIG1SZXN1bHRCdWZmZXJzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IHNlc3Npb24tPnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAge3JlcXVlc3R9LAorICAgICAgICAgICAgICAgICAgICBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZudW1SZXF1ZXN0UHJvY2Vzc2VkXSAoYXV0byBzLCB1aW50MzJfdCBuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IG47CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgwID09IG1SZXN1bHRCdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHByZXZpZXdTdHJlYW0uaWQsIG1SZXN1bHRCdWZmZXJzWzBdLnN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBUZXN0IHdoZXRoZXIgYW4gaW5jb3JyZWN0IGNhcHR1cmUgcmVxdWVzdCB3aXRoIG1pc3Npbmcgc2V0dGluZ3Mgd2lsbAorLy8gYmUgcmVwb3J0ZWQgY29ycmVjdGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RJbnZhbGlkU2luZ2xlUHJldmlldykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIHNwPEdyYXBoaWNCdWZmZXI+IGdiID0gbmV3IEdyYXBoaWNCdWZmZXIoCisgICAgICAgICAgICAgICAgcHJldmlld1N0cmVhbS53aWR0aCwgcHJldmlld1N0cmVhbS5oZWlnaHQsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ub3ZlcnJpZGVGb3JtYXQpLAorICAgICAgICAgICAgICAgIDEsIGFuZHJvaWRfY29udmVydEdyYWxsb2MxVG8wVXNhZ2UoCisgICAgICAgICAgICAgICAgICAgICAgIGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLnByb2R1Y2VyVXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLmNvbnN1bWVyVXNhZ2UpKTsKKworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIG91dHB1dEJ1ZmZlciA9IHtoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5pZCwKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySWQsIGhpZGxfaGFuZGxlKGdiLT5nZXROYXRpdmVCdWZmZXIoKS0+aGFuZGxlKSwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpPSywgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnMgPSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlcn07CisgICAgICAgICAgICBTdHJlYW1CdWZmZXIgZW1wdHlJbnB1dEJ1ZmZlciA9IHstMSwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpFUlJPUiwgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICBDYXB0dXJlUmVxdWVzdCByZXF1ZXN0ID0ge2ZyYW1lTnVtYmVyLCAwIC8qIGZtcVNldHRpbmdzU2l6ZSAqLywgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgIGVtcHR5SW5wdXRCdWZmZXIsIG91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICAvL1NldHRpbmdzIHdlcmUgbm90IGNvcnJlY3RseSBpbml0aWFsaXplZCwgd2Ugc2hvdWxkIGZhaWwgaGVyZQorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMHUpOworCisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgYW4gaW52YWxpZCBjYXB0dXJlIHJlcXVlc3Qgd2l0aCBtaXNzaW5nIG91dHB1dCBidWZmZXJzCisvLyB3aWxsIGJlIHJlcG9ydGVkIGNvcnJlY3RseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0SW52YWxpZEJ1ZmZlcikgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRCbG9iU3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSAxOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQ4X3Q+IHNldHRpbmdzOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHJlcVRlbXBsYXRlID0gUmVxdWVzdFRlbXBsYXRlOjpQUkVWSUVXOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MocmVxVGVtcGxhdGUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gcmVxOyB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IGVtcHR5T3V0cHV0QnVmZmVyczsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBlbXB0eUlucHV0QnVmZmVyID0gey0xLCAwLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICBCdWZmZXJTdGF0dXM6OkVSUk9SLCBudWxscHRyLCBudWxscHRyfTsKKyAgICAgICAgICAgIENhcHR1cmVSZXF1ZXN0IHJlcXVlc3QgPSB7ZnJhbWVOdW1iZXIsIDAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBlbXB0eU91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICAvL091dHB1dCBidWZmZXJzIGFyZSBtaXNzaW5nLCB3ZSBzaG91bGQgZmFpbCBoZXJlCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgICAgICAgICAgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+IGNhY2hlc1RvUmVtb3ZlOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+cHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICAgICAgICAgICAgICB7cmVxdWVzdH0sCisgICAgICAgICAgICAgICAgICAgIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICAgICAgICAgICAgICBbJnN0YXR1cywgJm51bVJlcXVlc3RQcm9jZXNzZWRdIChhdXRvIHMsIHVpbnQzMl90IG4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHM7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gbjsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKG51bVJlcXVlc3RQcm9jZXNzZWQsIDB1KTsKKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBHZW5lcmF0ZSwgdHJpZ2dlciBhbmQgZmx1c2ggYSBwcmV2aWV3IHJlcXVlc3QKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZmx1c2hQcmV2aWV3UmVxdWVzdCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IHJlcTsgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGdiLmdldCgpKTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBvdXRwdXRCdWZmZXIgPSB7aGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uaWQsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcklkLCBoaWRsX2hhbmRsZShnYi0+Z2V0TmF0aXZlQnVmZmVyKCktPmhhbmRsZSksCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6T0ssIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzID0geworICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXJ9OworICAgICAgICAgICAgY29uc3QgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMCAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJzfTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtRXJyb3JzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyID0gZnJhbWVOdW1iZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IDA7CisgICAgICAgICAgICBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4gY2FjaGVzVG9SZW1vdmU7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisgICAgICAgICAgICAvL0ZsdXNoIGJlZm9yZSB3YWl0aW5nIGZvciByZXF1ZXN0IHRvIGNvbXBsZXRlLgorICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+Zmx1c2goKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgoMCA9PSBtUmVzdWx0QnVmZmVycy5zaXplKCkpICYmICgwID09IG1FcnJvcnMuc2l6ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobUVycm9ycy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShCdWZmZXJTdGF0dXM6Ok9LLCBtUmVzdWx0QnVmZmVyc1swXS5zdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RyZWFtSWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byAmZXJyb3IgOiBtRXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yLmVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVFVRVNUOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVNVTFQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX0JVRkZFUjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9FeHBlY3RlZCBhcyB3ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShmcmFtZU51bWJlciwgZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgZXJyb3IuZXJyb3JTdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9ERVZJQ0U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFJTCgpIDw8IlVuZXhwZWN0ZWQgZXJyb3I6IiA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGVycm9yLmVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgY2FtZXJhIGZsdXNoZXMgY29ycmVjdGx5IHdpdGhvdXQgYW55IHBlbmRpbmcgcmVxdWVzdHMuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGZsdXNoRW1wdHkpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0UHJldmlld1N0cmVhbXM7CisgICAgQXZhaWxhYmxlU3RyZWFtIHByZXZpZXdUaHJlc2hvbGQgPSB7a01heFByZXZpZXdXaWR0aCwga01heFByZXZpZXdIZWlnaHQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6SU1QTEVNRU5UQVRJT05fREVGSU5FRCl9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtRXJyb3JzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+Zmx1c2goKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoa0VtcHR5Rmx1c2hUaW1lb3V0TVNlYyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShtRXJyb3JzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKG1SZXN1bHRCdWZmZXJzLmVtcHR5KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBSZXRyaWV2ZSBhbGwgdmFsaWQgb3V0cHV0IHN0cmVhbSByZXNvbHV0aW9ucyBmcm9tIHRoZSBjYW1lcmEKKy8vIHN0YXRpYyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGEsCisgICAgICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gJm91dHB1dFN0cmVhbXMsCisgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqdGhyZXNob2xkKSB7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OUywgJmVudHJ5KTsKKyAgICBpZiAoKDAgIT0gcmMpIHx8ICgwICE9IChlbnRyeS5jb3VudCAlIDQpKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrPTQpIHsKKyAgICAgICAgaWYgKEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlNfT1VUUFVUID09CisgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5pMzJbaSArIDNdKSB7CisgICAgICAgICAgICBpZihudWxscHRyID09IHRocmVzaG9sZCkgeworICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBzID0ge2VudHJ5LmRhdGEuaTMyW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLmkzMltpKzJdLCBlbnRyeS5kYXRhLmkzMltpXX07CisgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5wdXNoX2JhY2socyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICgodGhyZXNob2xkLT5mb3JtYXQgPT0gZW50cnkuZGF0YS5pMzJbaV0pICYmCisgICAgICAgICAgICAgICAgICAgICAgICAodGhyZXNob2xkLT53aWR0aCA+PSBlbnRyeS5kYXRhLmkzMltpKzFdKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKHRocmVzaG9sZC0+aGVpZ2h0ID49IGVudHJ5LmRhdGEuaTMyW2krMl0pKSB7CisgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBzID0ge2VudHJ5LmRhdGEuaTMyW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5pMzJbaSsyXSwgdGhyZXNob2xkLT5mb3JtYXR9OworICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLnB1c2hfYmFjayhzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBDaGVjayBpZiBjb25zdHJhaW5lZCBtb2RlIGlzIHN1cHBvcnRlZCBieSB1c2luZyB0aGUgc3RhdGljCisvLyBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0Ojppc0NvbnN0cmFpbmVkTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSkgeworICAgIFN0YXR1cyByZXQgPSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLCAmZW50cnkpOworICAgIGlmICgwICE9IHJjKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGlmIChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19DT05TVFJBSU5FRF9ISUdIX1NQRUVEX1ZJREVPID09CisgICAgICAgICAgICAgICAgZW50cnkuZGF0YS51OFtpXSkgeworICAgICAgICAgICAgcmV0ID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLy8gUGljayB0aGUgbGFyZ2VzdCBzdXBwb3J0ZWQgSEZSIG1vZGUgZnJvbSB0aGUgc3RhdGljIGNhbWVyYQorLy8gY2hhcmFjdGVyaXN0aWNzLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0OjpwaWNrQ29uc3RyYWluZWRNb2RlU2l6ZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgQXZhaWxhYmxlU3RyZWFtICZoZnJTdHJlYW0pIHsKKyAgICBpZiAobnVsbHB0ciA9PSBzdGF0aWNNZXRhKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIGludCByYyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KHN0YXRpY01ldGEsCisgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX0hJR0hfU1BFRURfVklERU9fQ09ORklHVVJBVElPTlMsICZlbnRyeSk7CisgICAgaWYgKDAgIT0gcmMpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfSBlbHNlIGlmICgwICE9IChlbnRyeS5jb3VudCAlIDUpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgaGZyU3RyZWFtID0gezAsIDAsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKz01KSB7CisgICAgICAgIGludDMyX3QgdyA9IGVudHJ5LmRhdGEuaTMyW2ldOworICAgICAgICBpbnQzMl90IGggPSBlbnRyeS5kYXRhLmkzMltpKzFdOworICAgICAgICBpZiAoKGhmclN0cmVhbS53aWR0aCAqIGhmclN0cmVhbS5oZWlnaHQpIDwgKHcgKmgpKSB7CisgICAgICAgICAgICBoZnJTdHJlYW0ud2lkdGggPSB3OworICAgICAgICAgICAgaGZyU3RyZWFtLmhlaWdodCA9IGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworLy8gQ2hlY2sgd2hldGhlciBaU0wgaXMgYXZhaWxhYmxlIHVzaW5nIHRoZSBzdGF0aWMgY2FtZXJhCisvLyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmlzWlNMTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSkgeworICAgIFN0YXR1cyByZXQgPSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLCAmZW50cnkpOworICAgIGlmICgwICE9IHJjKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGlmICgoQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUFJJVkFURV9SRVBST0NFU1NJTkcgPT0KKyAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSB8fAorICAgICAgICAgICAgICAgIChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19ZVVZfUkVQUk9DRVNTSU5HID09CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSApeworICAgICAgICAgICAgcmV0ID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLy8gUmV0cmlldmUgdGhlIHJlcHJvY2VzcyBpbnB1dC1vdXRwdXQgZm9ybWF0IG1hcCBmcm9tIHRoZSBzdGF0aWMKKy8vIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmdldFpTTElucHV0T3V0cHV0TWFwKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVaU0xJbnB1dE91dHB1dD4gJmlucHV0T3V0cHV0TWFwKSB7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0lOUFVUX09VVFBVVF9GT1JNQVRTX01BUCwgJmVudHJ5KTsKKyAgICBpZiAoKDAgIT0gcmMpIHx8ICgwID49IGVudHJ5LmNvdW50KSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNvbnN0IGludDMyX3QqIGNvbnRlbnRzID0gJmVudHJ5LmRhdGEuaTMyWzBdOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7ICkgeworICAgICAgICBpbnQzMl90IGlucHV0Rm9ybWF0ID0gY29udGVudHNbaSsrXTsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSBjb250ZW50c1tpKytdOworICAgICAgICBmb3IgKGludDMyX3QgaiA9IDA7IGogPCBsZW5ndGg7IGorKykgeworICAgICAgICAgICAgaW50MzJfdCBvdXRwdXRGb3JtYXQgPSBjb250ZW50c1tpK2pdOworICAgICAgICAgICAgQXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQgenNsRW50cnkgPSB7aW5wdXRGb3JtYXQsIG91dHB1dEZvcm1hdH07CisgICAgICAgICAgICBpbnB1dE91dHB1dE1hcC5wdXNoX2JhY2soenNsRW50cnkpOworICAgICAgICB9CisgICAgICAgIGkgKz0gbGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBTZWFyY2ggZm9yIHRoZSBsYXJnZXN0IHN0cmVhbSBzaXplIGZvciBhIGdpdmVuIGZvcm1hdC4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6ZmluZExhcmdlc3RTaXplKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+ICZzdHJlYW1TaXplcywgaW50MzJfdCBmb3JtYXQsCisgICAgICAgIEF2YWlsYWJsZVN0cmVhbSAmcmVzdWx0KSB7CisgICAgcmVzdWx0ID0gezAsIDAsIDB9OworICAgIGZvciAoYXV0byAmaXRlciA6IHN0cmVhbVNpemVzKSB7CisgICAgICAgIGlmIChmb3JtYXQgPT0gaXRlci5mb3JtYXQpIHsKKyAgICAgICAgICAgIGlmICgocmVzdWx0LndpZHRoICogcmVzdWx0LmhlaWdodCkgPCAoaXRlci53aWR0aCAqIGl0ZXIuaGVpZ2h0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGl0ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gKHJlc3VsdC5mb3JtYXQgPT0gZm9ybWF0KSA/IFN0YXR1czo6T0sgOiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgc3BlY2lmaWMgZm9jdXMgbW9kZS4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6aXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKAorICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgJmNhbWVyYVBhcmFtcywKKyAgICAgICAgY29uc3QgY2hhciAqbW9kZSkgeworICAgIDo6YW5kcm9pZDo6U3RyaW5nOCBmb2N1c01vZGVzKGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0ZPQ1VTX01PREVTKSk7CisgICAgaWYgKGZvY3VzTW9kZXMuY29udGFpbnMobW9kZSkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T0s7CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7Cit9CisKKy8vIE9wZW4gYSBkZXZpY2Ugc2Vzc2lvbiBhbmQgY29uZmlndXJlIGEgcHJldmlldyBzdHJlYW0uCit2b2lkIENhbWVyYUhpZGxUZXN0Ojpjb25maWd1cmVQcmV2aWV3U3RyZWFtKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgY29uc3QgQXZhaWxhYmxlU3RyZWFtICpwcmV2aWV3VGhyZXNob2xkLAorICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgU3RyZWFtICpwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gKmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVudik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHNlc3Npb24pOworICAgIEFTU0VSVF9ORShudWxscHRyLCBwcmV2aWV3U3RyZWFtKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgaGFsU3RyZWFtQ29uZmlnKTsKKworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0UHJldmlld1N0cmVhbXM7CisgICAgOjphbmRyb2lkOjpzcDxJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgQUxPR0koImNvbmZpZ3VyZVN0cmVhbXM6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIG5hbWUsCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzcDxEZXZpY2VDYj4gY2IgPSBuZXcgRGV2aWNlQ2IodGhpcyk7CisgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICBjYiwKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBuZXdTZXNzaW9uKSB7CisgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobmV3U2Vzc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICAqc2Vzc2lvbiA9IG5ld1Nlc3Npb247CisgICAgICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgcmV0ID0gZGV2aWNlM18yLT5nZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoWyZdIChTdGF0dXMgcywKKyAgICAgICAgICAgIENhbWVyYU1ldGFkYXRhIG1ldGFkYXRhKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgc3RhdGljTWV0YSA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90Kj4obWV0YWRhdGEuZGF0YSgpKSk7CisgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgc3RhdGljTWV0YSk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcy5jbGVhcigpOworICAgIGF1dG8gcmMgPSBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcywgcHJldmlld1RocmVzaG9sZCk7CisgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKyAgICBBU1NFUlRfRkFMU0Uob3V0cHV0UHJldmlld1N0cmVhbXMuZW1wdHkoKSk7CisKKyAgICAqcHJldmlld1N0cmVhbSA9IHswLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dFByZXZpZXdTdHJlYW1zWzBdLndpZHRoKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0uaGVpZ2h0KSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgIDAsIDAsIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7KnByZXZpZXdTdHJlYW19OworICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgIHJldCA9ICgqc2Vzc2lvbiktPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICBBU1NFUlRfRVEoMXUsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICpoYWxTdHJlYW1Db25maWcgPSBoYWxDb25maWc7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIE9wZW4gYSBkZXZpY2Ugc2Vzc2lvbiB3aXRoIGVtcHR5IGNhbGxiYWNrcyBhbmQgcmV0dXJuIHN0YXRpYyBtZXRhZGF0YS4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6Om9wZW5FbXB0eURldmljZVNlc3Npb24oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgIGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKipzdGF0aWNNZXRhIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZW52KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgc2Vzc2lvbik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHN0YXRpY01ldGEpOworCisgICAgOjphbmRyb2lkOjpzcDxJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgQUxPR0koImNvbmZpZ3VyZVN0cmVhbXM6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIG5hbWUsCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzcDxFbXB0eURldmljZUNiPiBjYiA9IG5ldyBFbXB0eURldmljZUNiKCk7CisgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKGNiLCBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIG5ld1Nlc3Npb24pIHsKKyAgICAgICAgICAgIEFMT0dJKCJkZXZpY2U6Om9wZW4gcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShuZXdTZXNzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgICpzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBkZXZpY2UzXzItPmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgQ2FtZXJhTWV0YWRhdGEgbWV0YWRhdGEpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAqc3RhdGljTWV0YSA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90Kj4obWV0YWRhdGEuZGF0YSgpKSk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCAqc3RhdGljTWV0YSk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIE9wZW4gYSBwYXJ0aWN1bGFyIGNhbWVyYSBkZXZpY2UuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpvcGVuQ2FtZXJhRGV2aWNlKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICpkZXZpY2UxIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfVFJVRShudWxscHRyICE9IGVudik7CisgICAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSBkZXZpY2UxKTsKKworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICpkZXZpY2UxID0gZGV2aWNlOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHNwPENhbWVyYTFEZXZpY2VDYj4gZGV2aWNlQ2IgPSBuZXcgQ2FtZXJhMURldmljZUNiKHRoaXMpOworICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9ICgqZGV2aWNlMSktPm9wZW4oZGV2aWNlQ2IpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBJbml0aWFsaXplIGFuZCBjb25maWd1cmUgYSBwcmV2aWV3IHdpbmRvdy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnNldHVwUHJldmlld1dpbmRvdygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UsCisgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gKmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiAqYnVmZmVySGFuZGxlciAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZS5nZXQoKSk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGJ1ZmZlckl0ZW1Db25zdW1lcik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGJ1ZmZlckhhbmRsZXIpOworCisgICAgc3A8SUdyYXBoaWNCdWZmZXJQcm9kdWNlcj4gcHJvZHVjZXI7CisgICAgc3A8SUdyYXBoaWNCdWZmZXJDb25zdW1lcj4gY29uc3VtZXI7CisgICAgQnVmZmVyUXVldWU6OmNyZWF0ZUJ1ZmZlclF1ZXVlKCZwcm9kdWNlciwgJmNvbnN1bWVyKTsKKyAgICAqYnVmZmVySXRlbUNvbnN1bWVyID0gbmV3IEJ1ZmZlckl0ZW1Db25zdW1lcihjb25zdW1lciwKKyAgICAgICAgICAgIEdyYXBoaWNCdWZmZXI6OlVTQUdFX0hXX1RFWFRVUkUpOyAvL1VzZSBHTENvbnN1bWVyIGRlZmF1bHQgdXNhZ2UgZmxhZ3MKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgKCpidWZmZXJJdGVtQ29uc3VtZXIpLmdldCgpKTsKKyAgICAqYnVmZmVySGFuZGxlciA9IG5ldyBCdWZmZXJJdGVtSGFuZGVyKCpidWZmZXJJdGVtQ29uc3VtZXIpOworICAgIEFTU0VSVF9ORShudWxscHRyLCAoKmJ1ZmZlckhhbmRsZXIpLmdldCgpKTsKKyAgICAoKmJ1ZmZlckl0ZW1Db25zdW1lciktPnNldEZyYW1lQXZhaWxhYmxlTGlzdGVuZXIoKmJ1ZmZlckhhbmRsZXIpOworICAgIHNwPFN1cmZhY2U+IHN1cmZhY2UgPSBuZXcgU3VyZmFjZShwcm9kdWNlcik7CisgICAgc3A8UHJldmlld1dpbmRvd0NiPiBwcmV2aWV3Q2IgPSBuZXcgUHJldmlld1dpbmRvd0NiKHN1cmZhY2UpOworCisgICAgYXV0byByYyA9IGRldmljZS0+c2V0UHJldmlld1dpbmRvdyhwcmV2aWV3Q2IpOworICAgIEFTU0VSVF9UUlVFKHJjLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKK30KKworLy8gU3RvcCBjYW1lcmEgcHJldmlldyBhbmQgY2xvc2UgY2FtZXJhLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6c3RvcFByZXZpZXdBbmRDbG9zZSgKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5zdG9wUHJldmlldygpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcmV0ID0gZGV2aWNlLT5jbG9zZSgpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBFbmFibGUgYSBzcGVjaWZpYyBjYW1lcmEgbWVzc2FnZSB0eXBlLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6ZW5hYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5lbmFibGVNc2dUeXBlKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgUmV0dXJuPGJvb2w+IHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UtPm1zZ1R5cGVFbmFibGVkKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKK30KKworLy8gRGlzYWJsZSBhIHNwZWNpZmljIGNhbWVyYSBtZXNzYWdlIHR5cGUuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpkaXNhYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5kaXNhYmxlTXNnVHlwZShtc2dUeXBlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlLT5tc2dUeXBlRW5hYmxlZChtc2dUeXBlKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0ZBTFNFKHJldHVybkJvb2xTdGF0dXMpOworfQorCisvLyBXYWl0IHVudGlsIGEgc3BlY2lmaWMgZnJhbWUgbm90aWZpY2F0aW9uIGFycml2ZXMuCit2b2lkIENhbWVyYUhpZGxUZXN0Ojp3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnIG1zZ0ZyYW1lLAorICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+ICZsKSB7CisgICAgd2hpbGUgKG1zZ0ZyYW1lICE9IG1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCkgeworICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICB9Cit9CisKKy8vIFN0YXJ0IHByZXZpZXcgb24gYSBwYXJ0aWN1bGFyIGNhbWVyYSBkZXZpY2UKK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnN0YXJ0UHJldmlldygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UtPnN0YXJ0UHJldmlldygpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBSZXRyaWV2ZSBjYW1lcmEgcGFyYW1ldGVycy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OmdldFBhcmFtZXRlcnMoCisgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlLAorICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzICpjYW1lcmFQYXJhbXMgLypvdXQqLykgeworICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMpOworCisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBkZXZpY2UtPmdldFBhcmFtZXRlcnMoWyZdIChjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZyYgcGFyYW1zKSB7CisgICAgICAgIEFTU0VSVF9GQUxTRShwYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIDo6YW5kcm9pZDo6U3RyaW5nOCBwYXJhbVN0cmluZyhwYXJhbXMuY19zdHIoKSk7CisgICAgICAgICgqY2FtZXJhUGFyYW1zKS51bmZsYXR0ZW4ocGFyYW1TdHJpbmcpOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBTZXQgY2FtZXJhIHBhcmFtZXRlcnMuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpzZXRQYXJhbWV0ZXJzKAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgY29uc3QgQ2FtZXJhUGFyYW1ldGVycyAmY2FtZXJhUGFyYW1zKSB7CisgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlLT5zZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmZsYXR0ZW4oKS5zdHJpbmcoKSk7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCkpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyL1JFQURNRS5tZCBiL2NhbWVyYS9wcm92aWRlci9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxOGZiMQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci9SRUFETUUubWQKQEAgLTAsMCArMSwzNyBAQAorIyMgQ2FtZXJhIFByb3ZpZGVyIEhBTCAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLnByb3ZpZGVyIEhBTCBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlIHRvIGRpc2NvdmVyLAorcXVlcnksIGFuZCBvcGVuIGluZGl2aWR1YWwgY2FtZXJhIGRldmljZXMuCisKK0l0IGFsc28gYWxsb3dzIGZvciBkaXJlY3QgY29udHJvbCBvZiB0aGUgZmxhc2ggdW5pdCBvZiBjYW1lcmEgZGV2aWNlcyB0aGF0IGhhdmUKK29uZSwgZm9yIHR1cm5pbmcgb24vb2ZmIHRvcmNoIG1vZGUuCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KKworIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyB0eXBlcy5oYWw6ICMjCisKKyMjIyBAMC4wOgorCitDb21tb24gZW51bSBhbmQgc3RydWN0IGRlZmluaXRpb25zIGZvciBhbGwgY2FtZXJhIEhBTCBpbnRlcmZhY2VzLiBEb2VzIG5vdAorZGVmaW5lIGFueSBpbnRlcmZhY2VzIG9mIGl0cyBvd24uCisKKyMjIElDYW1lcmFQcm92aWRlci5oYWw6ICMjCisKKyMjIyBAMi40OgorCitGaXJzdCBISURMIHZlcnNpb24gb2YgdGhlIGNhbWVyYSBwcm92aWRlciBIQUwsIGNsb3NlbHkgbWF0Y2hpbmcgdGhlIGZlYXR1cmUgc2V0CithbmQgb3BlcmF0aW9uIG9mIHRoZSBwcmUtSElETCBjYW1lcmEgSEFMIG1vZHVsZSB2Mi40LgorCisjIyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oYWw6ICMjCisKKyMjIyBAMi40OgorCitGaXJzdCBISURMIHZlcnNpb24gb2YgdGhlIGNhbWFyYSBwcm92aWRlciBIQUwgY2FsbGJhY2sgaW50ZXJmYWNlLCBjbG9zZWx5CittYXRjaGluZyB0aGUgZmVhdHVyZSBzZXQgYW5kIG9wZXJhdGlvbiBvZiB0aGUgcHJlLUhJREwgY2FtZXJhIEhBTCBtb2R1bGUKK2NhbGxiYWNrcyB2Mi40LgpkaWZmIC0tZ2l0IGEvY29tcGF0aWJpbGl0eV9tYXRyaXgueG1sIGIvY29tcGF0aWJpbGl0eV9tYXRyaXgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYTU0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9jb21wYXRpYmlsaXR5X21hdHJpeC54bWwKQEAgLTAsMCArMSwzMjUgQEAKKzxjb21wYXRpYmlsaXR5LW1hdHJpeCB2ZXJzaW9uPSIxLjAiIHR5cGU9ImZyYW1ld29yayI+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXVkaW88L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEZXZpY2VzRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JRWZmZWN0c0ZhY3Rvcnk8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnM8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklFdnNFbnVtZXJhdG9yPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZTwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVZlaGljbGU8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4xPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJpb21ldHJpY3NGaW5nZXJwcmludDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGg8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklCbHVldG9vdGhIY2k8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYm9vdDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJvb3RDb250cm9sPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQnJvYWRjYXN0UmFkaW9GYWN0b3J5PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUNhbWVyYVByb3ZpZGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmxlZ2FjeS8wPC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmU8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMC0xPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVN1cmZhY2VGbGluZ2VyQ29uZmlnczwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ29udGV4dGh1YjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZHJtPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ3J5cHRvRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JRHJtRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGU8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEdW1wc3RhdGVEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklHYXRla2VlcGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmduc3M8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklHbnNzPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3I8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklBbGxvY2F0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjE8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ29tcG9zZXI8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU1hcHBlcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGg8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklIZWFsdGg8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuaXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjMuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklLZXltYXN0ZXJEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUubGlnaHQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklMaWdodDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JT214PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklPbXhTdG9yZTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjazwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU1lbXRyYWNrPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLm5mYzwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU5mYzwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5wb3dlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVBvd2VyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnJhZGlvPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JUmFkaW88L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+c2xvdDE8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklTYXA8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+c2xvdDE8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklPZW1Ib29rPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPnNsb3QxPC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5yZW5kZXJzY3JpcHQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yczwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVNlbnNvcnM8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JU291bmRUcmlnZ2VySHc8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVRoZXJtYWw8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JSGRtaUNlYzwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVR2SW5wdXQ8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudXNiPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVXNiPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVmlicmF0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudnI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklWcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JV2lmaTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklTdXBwbGljYW50PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8a2VybmVsIHZlcnNpb249IjQuOS4wIiAvPgorICAgIDxrZXJuZWwgdmVyc2lvbj0iNC40LjAiIC8+CisgICAgPGtlcm5lbCB2ZXJzaW9uPSIzLjE4LjAiIC8+Cis8L2NvbXBhdGliaWxpdHktbWF0cml4PgpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsIGIvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsCmluZGV4IDQ0MDNhOTAuLjVmOTc1YmQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9JU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbAorKysgYi9jb25maWdzdG9yZS8xLjAvSVN1cmZhY2VGbGluZ2VyQ29uZmlncy5oYWwKQEAgLTE2LDYgKzE2LDEwMiBAQAogcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMDsKIAogaW50ZXJmYWNlIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgeworICAgIC8qKgorICAgICAqIFRoZSBmb2xsb3dpbmcgdHdvIG1ldGhvZHMgZGVmaW5lIChyZXNwZWN0aXZlbHkpOgorICAgICAqCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gYXBwcyBhcmUgd29rZW4gdXAgYnkgdGhlCisgICAgICogICBDaG9yZW9ncmFwaGVyIGNhbGxiYWNrCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gU3VyZmFjZUZsaW5nZXIgd2FrZXMgdXAKKyAgICAgKiAgIHRvIGNvbnN1bWUgaW5wdXQKKyAgICAgKgorICAgICAqIFRoZWlyIHZhbHVlcyBtYXkgYmUgdHVuZWQgdG8gdHJhZGUgb2ZmIGJldHdlZW4gZGlzcGxheSBwaXBlbGluZSBsYXRlbmN5IChib3RoCisgICAgICogb3ZlcmFsbCBsYXRlbmN5IGFuZCB0aGUgbGVuZ3RocyBvZiB0aGUgYXBwIC0tPiBTRiBhbmQgU0YgLS0+IGRpc3BsYXkgcGhhc2VzKQorICAgICAqIGFuZCBmcmFtZSBkZWxpdmVyeSBqaXR0ZXIgKHdoaWNoIHR5cGljYWxseSBtYW5pZmVzdHMgYXMgImphbmsiIG9yICJqZXJraW5lc3MiCisgICAgICogd2hpbGUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZGV2aWNlKS4gVGhlIGRlZmF1bHQgdmFsdWVzIG11c3QgcHJvZHVjZSBhCisgICAgICogcmVsYXRpdmVseSBsb3cgYW1vdW50IG9mIGppdHRlciBhdCB0aGUgZXhwZW5zZSBvZiByb3VnaGx5IHR3byBmcmFtZXMgb2YKKyAgICAgKiBhcHAgLS0+IGRpc3BsYXkgbGF0ZW5jeSwgYW5kIHVubGVzcyBzaWduaWZpY2FudCB0ZXN0aW5nIGlzIHBlcmZvcm1lZCB0byBhdm9pZAorICAgICAqIGluY3JlYXNlZCBkaXNwbGF5IGppdHRlciAoYm90aCBtYW51YWwgaW52ZXN0aWdhdGlvbiB1c2luZyBzeXN0cmFjZSBbMV0gYW5kCisgICAgICogYXV0b21hdGVkIHRlc3RpbmcgdXNpbmcgZHVtcHN5cyBnZnhpbmZvIFsyXSBhcmUgcmVjb21tZW5kZWQpLCB0aGV5IHNob3VsZCBub3QKKyAgICAgKiBiZSBtb2RpZmllZC4KKyAgICAgKgorICAgICAqIFsxXSBodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9zdHVkaW8vcHJvZmlsZS9zeXN0cmFjZS5odG1sCisgICAgICogWzJdIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvcGVyZm9ybWFuY2UuaHRtbAorICAgICAqLwogICAgIHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKLSAgICB1c2VUcmlwbGVGcmFtZWJ1ZmZlcigpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKyAgICB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIEluc3RydWN0IHRoZSBSZW5kZXIgRW5naW5lIHRvIHVzZSBFR0xfSU1HX2NvbnRleHRfcHJpb3JpdHkgaGludCBpZgorICAgICAqIGF2YWlsYWJlLgorICAgICAqLworICAgIHVzZUNvbnRleHRQcmlvcml0eSgpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogaGFzV2lkZUNvbG9yRGlzcGxheSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGhhcworICAgICAqIG9yIGNhbiBzdXBwb3J0IGEgd2lkZS1jb2xvciBkaXNwbGF5LCBlLmcuIGNvbG9yIHNwYWNlCisgICAgICogZ3JlYXRlciB0aGFuIHNSR0IuIFR5cGljYWwgZGlzcGxheSBtYXkgaGF2ZSBzYW1lCisgICAgICogY29sb3IgcHJpbWFyaWVzIGFzIERDSS1QMy4KKyAgICAgKiBJbmRpY2F0ZSBzdXBwb3J0IGZvciB0aGlzIGZlYXR1cmUgYnkgc2V0dGluZworICAgICAqIFRBUkdFVF9IQVNfV0lERV9DT0xPUl9ESVNQTEFZIHRvIHRydWUgaW4gQm9hcmRDb25maWcubWsKKyAgICAgKiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZGV2aWNlIGlzIGNvbG9yIG1hbmFnZWQuCisgICAgICogQSBjb2xvciBtYW5hZ2VkIGRldmljZSB3aWxsIHVzZSB0aGUgYXBwcm9wcmlhdGUKKyAgICAgKiBkaXNwbGF5IG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZW50IG9uIHRoZSBzY3JlZW4uCisgICAgICogRGVmYXVsdCBpcyBzUkdCLgorICAgICAqLworICAgIGhhc1dpZGVDb2xvckRpc3BsYXkoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBod0hkckRpc3BsYXkgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBoYXMKKyAgICAgKiBvciBjYW4gc3VwcG9ydCBhbiBIRFIgKEhpZ2ggRHluYW1pYyBSYW5nZSkgZGlzcGxheS4KKyAgICAgKiBUeXBpY2FsbHkgYW4gSERSIGRpc3BsYXkgaXMgYWxzbyB3aWRlLWNvbG9yLgorICAgICAqIEluZGljYXRlIHN1cHBvcnQgZm9yIHRoaXMgZmVhdHVyZSBieSBzZXR0aW5nCisgICAgICogVEFSR0VUX0hBU19IRFJfRElTUExBWSB0byB0cnVlIGluIEJvYXJkQ29uZmlnLm1rCisgICAgICovCisgICAgaGFzSERSRGlzcGxheSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpZnkgdGhlIG9mZnNldCBpbiBuYW5vc2Vjb25kcyB0byBhZGQgdG8gdnN5bmMgdGltZSB3aGVuIHRpbWVzdGFtcGluZworICAgICAqIHByZXNlbnQgZmVuY2VzLgorICAgICAqLworICAgIHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMoKSBnZW5lcmF0ZXMoT3B0aW9uYWxJbnQ2NCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBTb21lIGhhcmR3YXJlIGNhbiBkbyBSR0ItPllVViBjb252ZXJzaW9uIG1vcmUgZWZmaWNpZW50bHkgaW4gaGFyZHdhcmUKKyAgICAgKiBjb250cm9sbGVkIGJ5IEhXQyB0aGFuIGluIGhhcmR3YXJlIGNvbnRyb2xsZWQgYnkgdGhlIHZpZGVvIGVuY29kZXIuCisgICAgICogVGhpcyBpbnN0cnVjdCBWaXJ0dWFsRGlzcGxheVN1cmZhY2UgdG8gdXNlIEhXQyBmb3Igc3VjaCBjb252ZXJzaW9uIG9uCisgICAgICogR0wgY29tcG9zaXRpb24uCisgICAgICovCisgICAgdXNlSHdjRm9yUkdCdG9ZVVYoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqICBNYXhpbXVtIGRpbWVuc2lvbiBzdXBwb3J0ZWQgYnkgSFdDIGZvciB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogIE11c3QgYmUgZXF1YWxzIHRvIG1pbihtYXhfd2lkdGgsIG1heF9oZWlnaHQpLgorICAgICAqLworICAgIG1heFZpcnR1YWxEaXNwbGF5U2l6ZSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxVSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIGlmIFN5bmMgZnJhbWV3b3JrIGlzIGF2YWlsYWJsZS4gU3luYyBmcmFtZXdvcmsgcHJvdmlkZXMgZmVuY2UKKyAgICAgKiBtZWNoYW5pc20gd2hpY2ggc2lnbmlmaWNhbnRseSByZWR1Y2VzIGJ1ZmZlciBwcm9jZXNzaW5nIGxhdGVuY3kuCisgICAgICovCisgICAgaGFzU3luY0ZyYW1ld29yaygpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgc3VyZmFjZSBmbGluZ2VyIHNob3VsZCB1c2UgdnIgZmxpbmdlciBmb3IgY29tcGF0aWJsZSB2cgorICAgICAqIGFwcHMsIGZhbHNlIG90aGVyd2lzZS4gRGV2aWNlcyB0aGF0IHdpbGwgbmV2ZXIgYmUgcnVubmluZyB2ciBhcHBzIHNob3VsZAorICAgICAqIHJldHVybiBmYWxzZSB0byBhdm9pZCBleHRyYSByZXNvdXJjZSB1c2FnZS4gRGF5ZHJlYW0gcmVhZHkgZGV2aWNlcyBtdXN0CisgICAgICogcmV0dXJuIHRydWUgZm9yIGZ1bGwgdnIgc3VwcG9ydC4KKyAgICAgKi8KKyAgICB1c2VWckZsaW5nZXIoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDb250cm9scyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgU3VyZmFjZUZsaW5nZXIgd2lsbCBhbGxvY2F0ZSBmb3IgdXNlIGluCisgICAgICogRnJhbWVidWZmZXJTdXJmYWNlLgorICAgICAqLworICAgIG1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKCkgZ2VuZXJhdGVzKE9wdGlvbmFsSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHN1cmZhY2UgZmxpbmdlciBzaG91bGQgc3RhcnQKKyAgICAgKiBoYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOjpJQWxsb2NhdG9yIHNlcnZpY2UuCisgICAgICovCisgICAgc3RhcnRHcmFwaGljc0FsbG9jYXRvclNlcnZpY2UoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmNwcAppbmRleCBhY2MzZDFmLi45YzEzNGVmIDEwMDY0NAotLS0gYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5jcHAKQEAgLTEyLDIwICsxMiwxMTMgQEAKIFJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CiAjaWZkZWYgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCiAgICAgX2hpZGxfY2Ioe3RydWUsIFZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOwotICAgIExPRyhJTkZPKSA8PCAidnN5bmMgZXZlbnQgcGhhc2Ugb2Zmc2V0IG5zID0gICIgPDwgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TOwogI2Vsc2UKICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKICNlbmRpZgogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKLVJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVRyaXBsZUZyYW1lYnVmZmVyKHVzZVRyaXBsZUZyYW1lYnVmZmVyX2NiIF9oaWRsX2NiKSB7CitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjp2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CisjaWZkZWYgU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCisgICAgX2hpZGxfY2Ioe3RydWUsIFNGX1ZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZUNvbnRleHRQcmlvcml0eSh1c2VDb250ZXh0UHJpb3JpdHlfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBVU0VfQ09OVEVYVF9QUklPUklUWQorICAgIF9oaWRsX2NiKHt0cnVlLCBVU0VfQ09OVEVYVF9QUklPUklUWX0pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIGZhbHNlfSk7CisjZW5kaWYKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgeworI2lmZGVmIE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMKKyAgICBfaGlkbF9jYih7dHJ1ZSwgTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgewogICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKLSNpZmRlZiBVU0VfVFJJUExFX0ZSQU1FQlVGRkVSCisjaWZkZWYgSEFTX1dJREVfQ09MT1JfRElTUExBWQogICAgIHZhbHVlID0gdHJ1ZTsKICNlbmRpZgogICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwotICAgIExPRyhJTkZPKSA8PCAiU3VyZmFjZUZsaW5nZXIgRnJhbWVCdWZmZXI6ICIgPDwgKHZhbHVlID8gInRyaXBsZSIgOiAiZG91YmxlIik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6aGFzU3luY0ZyYW1ld29yayhoYXNTeW5jRnJhbWV3b3JrX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCB2YWx1ZSA9IHRydWU7CisjaWZkZWYgUlVOTklOR19XSVRIT1VUX1NZTkNfRlJBTUVXT1JLCisgICAgdmFsdWUgPSBmYWxzZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBIQVNfSERSX0RJU1BMQVkKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpwcmVzZW50VGltZU9mZnNldEZyb21WU3luY05zKHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnNfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlMKKyAgICAgIF9oaWRsX2NiKHt0cnVlLCBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlN9KTsKKyNlbHNlCisgICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6dXNlSHdjRm9yUkdCdG9ZVVYodXNlSHdjRm9yUkdCdG9ZVVZfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisjaWZkZWYgRk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhWaXJ0dWFsRGlzcGxheVNpemUobWF4VmlydHVhbERpc3BsYXlTaXplX2NiIF9oaWRsX2NiKSB7CisgIHVpbnQ2NF90IG1heFNpemUgPSAwOworI2lmZGVmIE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OCisgIG1heFNpemUgPSBNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTjsKKyAgX2hpZGxfY2Ioe3RydWUsIG1heFNpemV9KTsKKyNlbHNlCisgIF9oaWRsX2NiKHtmYWxzZSwgbWF4U2l6ZX0pOworI2VuZGlmCisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisgICAgYm9vbCBzcGVjaWZpZWQgPSBmYWxzZTsKKyNpZmRlZiBVU0VfVlJfRkxJTkdFUgorICAgIHZhbHVlID0gdHJ1ZTsKKyAgICBzcGVjaWZpZWQgPSB0cnVlOworI2VuZGlmCisgICAgX2hpZGxfY2Ioe3NwZWNpZmllZCwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZSgKKyAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBTVEFSVF9HUkFQSElDU19BTExPQ0FUT1JfU0VSVklDRQorICAgIHZhbHVlID0gdHJ1ZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5oIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKaW5kZXggNWJkZjdiYi4uMTdhNDI0ZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKQEAgLTI1LDcgKzI1LDE4IEBACiBzdHJ1Y3QgU3VyZmFjZUZsaW5nZXJDb25maWdzIDogcHVibGljIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgewogICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlncyBmb2xsb3cuCiAgICAgUmV0dXJuPHZvaWQ+IHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKLSAgICBSZXR1cm48dm9pZD4gdXNlVHJpcGxlRnJhbWVidWZmZXIodXNlVHJpcGxlRnJhbWVidWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXNlQ29udGV4dFByaW9yaXR5KHVzZUNvbnRleHRQcmlvcml0eV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMocHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZUh3Y0ZvclJHQnRvWVVWKHVzZUh3Y0ZvclJHQnRvWVVWX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbWF4VmlydHVhbERpc3BsYXlTaXplKG1heFZpcnR1YWxEaXNwbGF5U2l6ZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1N5bmNGcmFtZXdvcmsoaGFzU3luY0ZyYW1ld29ya19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZSBmb2xsb3cuCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMgYi9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlLnJjCmluZGV4IDg3NDFiZGQuLjU2M2Q4NTQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAtc2VydmljZS5yYwpAQCAtMSw0ICsxLDQgQEAKIHNlcnZpY2UgY29uZmlnc3RvcmUtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlCi0gICAgY2xhc3MgaGFsCisgICAgY2xhc3MgaGFsIGFuaW1hdGlvbgogICAgIHVzZXIgc3lzdGVtCiAgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9zdXJmYWNlZmxpbmdlci5tayBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCmluZGV4IDVhOTQ2ZjQuLjNjZTc2OGEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCkBAIC01LDYgKzUsNTIgQEAKICAgICBMT0NBTF9DRkxBR1MgKz0gLURWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlM9JChWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlMpCiBlbmRpZgogCi1pZmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLDMpCi0gICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1RSSVBMRV9GUkFNRUJVRkZFUgoraWZuZXEgKCQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TPSQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfQk9BUkRfUExBVEZPUk0pLG9tYXA0KQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0JPQVJEX1BMQVRGT1JNKSxzNXBjMTEwKQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0hBU19XSURFX0NPTE9SX0RJU1BMQVkpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ESEFTX1dJREVfQ09MT1JfRElTUExBWQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfSEFTX0hEUl9ESVNQTEFZKSx0cnVlKQorICAgIExPQ0FMX0NGTEFHUyArPSAtREhBU19IRFJfRElTUExBWQorZW5kaWYKKworaWZuZXEgKCQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TPSQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKQorZWxzZQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFBSRVNFTlRfVElNRV9PRkZTRVRfRlJPTV9WU1lOQ19OUz0wCitlbmRpZgorCitpZmVxICgkKFRBUkdFVF9GT1JDRV9IV0NfRk9SX1ZJUlRVQUxfRElTUExBWVMpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ERk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKK2VuZGlmCisKK2lmbmVxICgkKE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ETUFYX1ZJUlRVQUxfRElTUExBWV9ESU1FTlNJT049JChNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTikKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX1JVTk5JTkdfV0lUSE9VVF9TWU5DX0ZSQU1FV09SSyksdHJ1ZSkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLURSVU5OSU5HX1dJVEhPVVRfU1lOQ19GUkFNRVdPUksKK2VuZGlmCisKK2lmbmVxICgkKFVTRV9WUl9GTElOR0VSKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1ZSX0ZMSU5HRVIKK2VuZGlmCisKK2lmbmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLCkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLUROVU1fRlJBTUVCVUZGRVJfU1VSRkFDRV9CVUZGRVJTPSQoTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSUykKK2VuZGlmCisKK2lmbmVxICgkKFNGX1NUQVJUX0dSQVBISUNTX0FMTE9DQVRPUl9TRVJWSUNFKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU1RBUlRfR1JBUEhJQ1NfQUxMT0NBVE9SX1NFUlZJQ0UKIGVuZGlmCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzU1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KKwpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwIGIvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1Y2QzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNvbmZpZ3N0b3JlSGlkbEhhbFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbmZpZ3N0b3JlLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlnczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbEJvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6T3B0aW9uYWxJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbFVJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgQVNTRVJUX09LKHJldCkgQVNTRVJUX1RSVUUocmV0LmlzT2soKSkKKyNkZWZpbmUgRVhQRUNUX09LKHJldCkgRVhQRUNUX1RSVUUocmV0LmlzT2soKSkKKworY2xhc3MgQ29uZmlnc3RvcmVIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgc3A8SVN1cmZhY2VGbGluZ2VyQ29uZmlncz4gc2ZDb25maWdzOworCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBzZkNvbmZpZ3MgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgIElTdXJmYWNlRmxpbmdlckNvbmZpZ3M+KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KK307CisKKy8qKgorICogRW5zdXJlIGFsbCBJU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbCBmdW5jdGlvbiBjYWxscyBhcmUgc3VjY2Vzc2Z1bC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RGdW5jdGlvbkNhbGxzKSB7CisgICAgYm9vbCB0bXA7CisKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT52c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZUNvbnRleHRQcmlvcml0eSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPmhhc1dpZGVDb2xvckRpc3BsYXkoCisgICAgICAgIFsmdG1wXShPcHRpb25hbEJvb2wgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT5oYXNIRFJEaXNwbGF5KAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+cHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT51c2VId2NGb3JSR0J0b1lVVigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heFZpcnR1YWxEaXNwbGF5U2l6ZSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsVUludDY0IGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+aGFzU3luY0ZyYW1ld29yaygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZVZyRmxpbmdlcigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgcmVwZWF0ZWQgY2FsbCB0byB0aGUgc2FtZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RTYW1lUmV0dXJuVmFsdWUpIHsKKyAgICBpbnQ2NF90IG9yaWdpbmFsX3JldDsKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZvcmlnaW5hbF9yZXRdKE9wdGlvbmFsSW50NjQgYXJnKSB7IG9yaWdpbmFsX3JldCA9IGFyZy52YWx1ZTsgfSk7CisKKyAgICBpbnQ2NF90IG5leHRfcmV0OworICAgIGZvciAoaW50IGNudCA9IDA7IGNudCA8IDEwOyBjbnQrKykgeworICAgICAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICAgICAgWyZuZXh0X3JldF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgbmV4dF9yZXQgPSBhcmcudmFsdWU7IH0pOworICAgICAgICBFWFBFQ1RfRVEob3JpZ2luYWxfcmV0LCBuZXh0X3JldCk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlL0FuZHJvaWQuYnAKaW5kZXggNzliNjNmNi4uYmEzZTYyZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icAorKysgYi9jb25maWdzdG9yZS9BbmRyb2lkLmJwCkBAIC0xLDUgKzEsNiBAQAogLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgogc3ViZGlycyA9IFsKICAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKICAgICAidXRpbHMiLAogXQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oIGIvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oCmluZGV4IGVlODU1NDkuLmIxMDdhMjAgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlL3V0aWxzL2luY2x1ZGUvY29uZmlnc3RvcmUvVXRpbHMuaAorKysgYi9jb25maWdzdG9yZS91dGlscy9pbmNsdWRlL2NvbmZpZ3N0b3JlL1V0aWxzLmgKQEAgLTY3LDcgKzY3LDkgQEAKICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlCiAgICAgICAgICAgICByZXQuc3BlY2lmaWVkID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1cyA9ICgqY29uZmlncy4qZnVuYykoWyZyZXRdKFYgdikgeyByZXQgPSB2OyB9KTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gKCpjb25maWdzLipmdW5jKShbJnJldF0oViB2KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gdjsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgaWYgKCFzdGF0dXMuaXNPaygpKSB7CiAgICAgICAgICAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKICAgICAgICAgICAgICAgICBvc3MgPDwgIkhJREwgY2FsbCBmYWlsZWQgZm9yIHJldHJpZXZpbmcgYSBjb25maWcgaXRlbSBmcm9tICIKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDJlNWMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ29udGV4dGh1Yi5oYWwiLAorICAgICAgICAiSUNvbnRleHRodWJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Db250ZXh0aHViQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0NvbnRleHRodWJDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUh3Q29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0JwSHdDb250ZXh0aHViLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Cc0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnBId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnNDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTYxZTNiCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDY1OCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQXN5bmNFdmVudFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Bc3luY0V2ZW50VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkFzeW5jRXZlbnRUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb250ZXh0SHViKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvQ29udGV4dEh1Yi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkNvbnRleHRIdWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWJNc2cpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViTXNnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1Yk1zZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG9zdEVuZFBvaW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSG9zdEVuZFBvaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSG9zdEVuZFBvaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJBcHBJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViQXBwSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1YkFwcEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1Yk1lbW9yeUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJNZW1vcnlGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViTWVtb3J5RmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW1SYW5nZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL01lbVJhbmdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTWVtUmFuZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE5hbm9BcHBCaW5hcnkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwQmluYXJ5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEJpbmFyeQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTmFub0FwcEZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQaHlzaWNhbFNlbnNvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1BoeXNpY2FsU2Vuc29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUGh5c2ljYWxTZW5zb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vuc29yVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1NlbnNvclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5TZW5zb3JUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUcmFuc2FjdGlvblJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1RyYW5zYWN0aW9uUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuVHJhbnNhY3Rpb25SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1Yi5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0lDb250ZXh0aHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1Yi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWJDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChBc3luY0V2ZW50VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0FzeW5jRXZlbnRUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQXN5bmNFdmVudFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29udGV4dEh1Yk1zZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0NvbnRleHRIdWJNc2cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Db250ZXh0SHViTXNnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIb3N0RW5kUG9pbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Ib3N0RW5kUG9pbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Ib3N0RW5kUG9pbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1YkFwcEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJBcHBJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViQXBwSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJNZW1vcnlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViTWVtb3J5VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1Yk1lbW9yeVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbVJhbmdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTWVtUmFuZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5NZW1SYW5nZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEJpbmFyeSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL05hbm9BcHBCaW5hcnkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwQmluYXJ5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChOYW5vQXBwRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBoeXNpY2FsU2Vuc29yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUGh5c2ljYWxTZW5zb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5QaHlzaWNhbFNlbnNvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZW5zb3JUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvU2Vuc29yVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlNlbnNvclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zYWN0aW9uUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvVHJhbnNhY3Rpb25SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5UcmFuc2FjdGlvblJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjpJQ29udGV4dGh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9JQ29udGV4dGh1YkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWJDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGNjZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaGFsCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbXBvcnQgSUNvbnRleHRodWJDYWxsYmFjazsKKworLyoqCisgKiBUaGUgQ29udGV4dCBIdWIgSEFMIHByb3ZpZGVzIGFuIGludGVyZmFjZSB0byBhIHNlcGFyYXRlIGxvdy1wb3dlciBwcm9jZXNzaW5nCisgKiBkb21haW4gdGhhdCBoYXMgZGlyZWN0IGFjY2VzcyB0byBjb250ZXh0dWFsIGluZm9ybWF0aW9uLCBzdWNoIGFzIHNlbnNvcnMuCisgKiBOYXRpdmUgYXBwbGljYXRpb25zIHRoYXQgcnVuIHdpdGhpbiBhIGNvbnRleHQgaHViIGFyZSBrbm93biBhcyBuYW5vYXBwcywgYW5kCisgKiB0aGV5IGV4ZWN1dGUgd2l0aGluIHRoZSBDb250ZXh0IEh1YiBSdW50aW1lIEVudmlyb25tZW50IChDSFJFKSwgd2hpY2ggaXMKKyAqIHN0YW5kYXJkaXplZCB2aWEgdGhlIENIUkUgQVBJLCBkZWZpbmVkIGVsc2V3aGVyZS4KKyAqLworaW50ZXJmYWNlIElDb250ZXh0aHViIHsKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGUgYWxsIGF2YWlsYWJsZSBjb250ZXh0IGh1YnMgb24gdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaHVicyBsaXN0IG9mIGh1YnMgb24gdGhpcyBzeXN0ZW0uCisgICAgICovCisgICAgZ2V0SHVicygpIGdlbmVyYXRlcyAodmVjPENvbnRleHRIdWI+IGh1YnMpOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0byBzZW5kIGFzeW5jaHJvbm91cworICAgICAqIG1lc3NhZ2VzIHRvIHRoZSBzZXJ2aWNlIGZyb20gYSBjb250ZXh0IGh1Yi4gVGhlcmUgY2FuIGJlIGEgbWF4aW11bSBvZgorICAgICAqIG9uZSBjYWxsYmFjayByZWdpc3RlcmVkIHdpdGggdGhlIEhBTC4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gd2hlbiBhCisgICAgICogY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIG11c3Qgb3ZlcnJpZGUgdGhlIHByZXZpb3VzCisgICAgICogcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkICAgIGlkZW50aWZpZXIgZm9yIHRoZSBodWIKKyAgICAgKiAgICAgICAgY2FsbGJhY2sgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIElDb250ZXh0SHViQ2FsbGJhY2tzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICoKKyAgICAgKi8KKyAgICAgcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwgSUNvbnRleHRodWJDYWxsYmFjayBjYikgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBtZXNzYWdlIHRvIGEgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmllciBmb3IgaHViIHRvIHNlbmQgbWVzc2FnZSB0bworICAgICAqICAgICAgICBtc2cgICBtZXNzYWdlIHRvIGJlIHNlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHN1Y2Nlc3NmdWwsIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIG1lc3NhZ2Ugc2VuZCBmYWlsZWQKKyAgICAgKi8KKyAgICBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLCBDb250ZXh0SHViTXNnIG1zZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkcyBhIG5hbm9BcHAuIEFmdGVyIGxvYWRpbmcsIHRoZSBuYW5vQXBwJ3MgaW5pdCBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhlIGluaXQgbWV0aG9kIGZvciBuYW5vQXBwIHJldHVybnMgc3VjY2VzcywgdGhpcyBtdXN0IGJlIGluZGljYXRlZAorICAgICAqIHRvIHRoZSBzZXJ2aWNlIGJ5IGFuIGFzeW5jaHJvbm91cyBjYWxsIHRvIGhhbmRsZVR4blJlc3VsdC4KKyAgICAgKgorICAgICAqIExvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDMwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCBuYW5vQXBwcyBsb2FkZWQgdmlhIHRoaXMgQVBJIG1heSBvciBtYXkKKyAgICAgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cyBvZiB0aGUgaHViLiBJZiB0aGV5IGRvIHBlcnNpc3QsIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG11c3QgaW5pdGlhbGx5IHBsYWNlIG5hbm9BcHBzIGluIHRoZSBkaXNhYmxlZCBzdGF0ZSB1cG9uIGEKKyAgICAgKiByZWJvb3QsIGFuZCBub3Qgc3RhcnQgdGhlbSB1bnRpbCBhIGNhbGwgaXMgbWFkZSB0byBlbmFibGVOYW5vQXBwKCkuIEluCisgICAgICogdGhpcyBjYXNlLCB0aGUgYXBwIG11c3QgYWxzbyBiZSB1bmxvYWRlZCB1cG9uIGEgZmFjdG9yeSByZXNldCBvZiB0aGUKKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICogICAgICAgIGFwcEJpbmFyeSBjb250YWlucyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW5vQXBwLCBwbHVzCisgICAgICogICAgICAgICAgICAgICAgICBtZXRhZGF0YQorICAgICAqICAgICAgICB0cmFuc2FjdGlvbklkIHRyYW5zYWN0aW9uSWQgZm9yIHRoaXMgY2FsbAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIGxvYWQgZmFpbGVkIHN5bmNocm9ub3VzbHkKKyAgICAgKgorICAgICAqLworICAgIGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgIE5hbm9BcHBCaW5hcnkgYXBwQmluYXJ5LAorICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVW5sb2FkcyBhIG5hbm9BcHAuIEJlZm9yZSB0aGUgdW5sb2FkLCB0aGUgYXBwcyBkZWluaXQgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBBZnRlciB0aGlzLCBzdWNjZXNzIG11c3QgYmUgaW5kaWNhdGVkIHRvIHRoZSBzZXJ2aWNlIHRocm91Z2ggYW4KKyAgICAgKiBhc3luY2hyb25vdXMgY2FsbCB0byBoYW5kbGVUeG5SZXN1bHQuCisgICAgICoKKyAgICAgKiBVbmxvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIHVubG9hZCBmYWlsZWQgc3luY2hyb25vdXNseQorICAgICAqCisgICAgICovCisgICAgdW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRW5hYmxlcyBhIG5hbm9BcHAuIFRoZSBhcHAncyBpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBFbmFibGluZyBhIG5hbm9hcHAgbXVzdCBub3QgdGFrZSBtb3JlIHRoYW4gNSBzZWNvbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkIGlkZW50aWZlciBvZiB0aGUgY29udGV4dEh1YgorICAgICAqICAgICAgICBhcHBJZCBhcHBJZGVudGlmaWVyIHJldHVybmVkIGJ5IHRoZSBIQUwKKyAgICAgKiAgICAgICAgbXNnICAgbWVzc2FnZSB0byBiZSBzZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0cmFuc2F0aW9uIHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBCQURfVkFMVUUgaWYgcGFyYW1ldGVycyBhcmUgbm90IHNhbmUKKyAgICAgKiAgICAgICAgICAgICAgICBUUkFOU0FDVElPTl9QRU5ESU5HIGlmIGh1YiBpcyBidXN5IHdpdGggYW5vdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZC91bmxvYWQgdHJhbnNhY3Rpb24KKyAgICAgKiAgICAgICAgICAgICAgICBGQUlMRURfVFJBTlNBQ1RJT04gaWYgbG9hZCBmYWlscyBpbW1lZGlhdGVseQorICAgICAqCisgICAgICovCisgICAgZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRGlzYWJsZXMgYSBuYW5vQXBwLiBUaGUgYXBwJ3MgZGVpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBEaXNhYmxpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgRkFJTEVEX1RSQU5TQUNUSU9OIGlmIGxvYWQgZmFpbHMgaW1tZWRpYXRlbHkKKyAgICAgKgorICAgICAqLworICAgIGRpc2FibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLCB1aW50NjRfdCBhcHBJZCwgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGZvciBMb2FkZWQgYXBwcyBvbiB0aGUgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcHMgYWxsIG5hbm9BcHBzIG9uIHRoZSBodWIuCisgICAgICogICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBtb2RpZmllZCBieSB0aGUgc2VydmljZSBtdXN0CisgICAgICogICAgICAgICAgICAgIGJlIHJldHVybmVkLiBBIG5vbi1tb2RpZmlhYmxlIG5hbm9hcHBzIG11c3Qgbm90IGJlCisgICAgICogICAgICAgICAgICAgIHJldHVybmVkLiBBIG1vZGlmaWFibGUgbmFub0FwcCBpcyBvbmUgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAgdW5sb2FkZWQvZGlzYWJsZWQvZW5hYmxlZCBieSB0aGUgc2VydmljZS4KKyAgICAgKgorICAgICAqLworICAgIHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGY4NGMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbnRlcmZhY2UgSUNvbnRleHRodWJDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFzeW5jaHJvbm91cyBtZXNzYWdlcyBiYWNrCisgICAgICogdG8gdGhlIHNlcnZpY2UgYW5kIHJlZ2lzdGVyZWQgY2xpZW50cyBvZiB0aGUgQ29udGV4dEh1YiBzZXJ2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtcyBtc2cgOiBtZXNzYWdlCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQ2xpZW50TXNnKENvbnRleHRIdWJNc2cgbXNnKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uIHRvIGFsbG93IHRoZSBIQUwgdG8gc2VuZCB0aGUgcmVzcG9uc2UgZm9yIGEKKyAgICAgKiB0cmFuc2FjdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbXMgdHhuSWQgOiB0cmFuc2FjdGlvbiBpZCB3aG9zZSByZXN1bHQgaXMgYmVpbmcgc2VudAorICAgICAqICAgICAgICAgICAgICAgICBwYXNzZWQgaW4gYnkgdGhlIHNlcnZpY2UgYXQgc3RhcnQgb2YgdHJhbnNhY2F0aW9uLgorICAgICAqICAgICAgICAgcmVzdWx0OiByZXN1bHQgb2YgdHJhbnNhY3Rpb24uCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlVHhuUmVzdWx0KHVpbnQzMl90IHR4bklkLCBUcmFuc2FjdGlvblJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFuIGFzeW5jaHJvbm91cyBldmVudAorICAgICAqIHRvIHRoZSBDb250ZXh0SHViIHNlcnZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW1zIG1zZyA6IG1lc3NhZ2UKKyAgICAgKgorICAgICAqLworICAgICBoYW5kbGVIdWJFdmVudChBc3luY0V2ZW50VHlwZSBldnQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGEgbm90aWZpY2F0aW9uIHRvIHRoZSBzZXJ2aWNlCisgICAgICogdGhhdCBhIG5hbnAtYXBwIGhhcyBhYm9ydGVkLgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHdoZW4gYSBuYW5vYXBwIGludm9rZXMgY2hyZUFib3J0KC4uLikpLgorICAgICAqCisgICAgICogQHBhcmFtcyBhcHBJZCA6IGFwcCBpZGVudGlmaWVyCisgICAgICogICAgICAgICAgICAgICA6IGFib3J0Q29kZSBjb2RlIHBhc3NlZCBieSB0aGUgbmFub0FwcC4KKyAgICAgKgorICAgICAqIEFsc28gc2VlIGNocmVBYm9ydCguLi4pCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAgKiBpbXBsZW1lbnRhdGlvbiB0byBhbGxvdyB0aGUgSEFMIHRvIHNlbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAqIGN1cnJlbnRseSBsb2FkZWQgYW5kIGFjdGl2ZSBuYW5vYXBwcyBvbiB0aGUgaHViLgorICAgICAgKgorICAgICAgKiBAcGFyYW1zIGFwcEluZm8gOiB2ZWN0b3Igb2YgSHViQXBwaW5mbyBzdHJ1Y3R1cmUgZm9yIGVhY2ggbmFub0FwcAorICAgICAgKiAgICAgICAgICAgICAgICAgICBvbiB0aGUgaHViIHRoYXQgY2FuIGJlIGVuYWJsZWQsIGRpc2FibGVkIGFuZAorICAgICAgKiAgICAgICAgICAgICAgICAgICB1bmxvYWRlZCBieSB0aGUgc2VydmljZS4gQW55IG5hbm9BcHBzIHRoYXQgY2Fubm90CisgICAgICAqICAgICAgICAgICAgICAgICAgIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2UgbXVzdCBub3QgYmUgcmVwb3J0ZWQuCisgICAgICAqICAgICAgICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBjb250cm9sbGVkIGJ5IHRoZSBzZXJ2aWNlCisgICAgICAqICAgICAgICAgICAgICAgICAgIG11c3QgYmUgcmVwb3J0ZWQuCisgICAgICAqLworICAgICAgaGFuZGxlQXBwc0luZm8odmVjPEh1YkFwcEluZm8+IGFwcEluZm8pOworfTsKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGQyN2NjCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkNvbnRleHRodWIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2JmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMiBAQAorTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGliYmFzZSBcCisgICAgICAgIGxpYmN1dGlscyBcCisgICAgICAgIGxpYmRsIFwKKyAgICAgICAgbGliaGFyZHdhcmUgXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5jcHAgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmIzZjIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCkBAIC0wLDAgKzEsNTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkNvbnRleHRodWIuaCIKKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvY29udGV4dF9odWIuaD4KKyNpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkNvbnRleHRIdWJIYWxBZGFwdGVyIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljIGNvbnN0ZXhwciB1aW50NjRfdCBBTExfQVBQUyA9IFVJTlQ2NF9DKDB4RkZGRkZGRkZGRkZGRkZGRik7CisKK0NvbnRleHRodWI6OkNvbnRleHRodWIoKQorICAgICAgICA6IG1Jbml0Q2hlY2soTk9fSU5JVCksCisgICAgICAgICAgbUNvbnRleHRIdWJNb2R1bGUobnVsbHB0ciksCisgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nKGZhbHNlKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZHVsZTsKKworICAgIG1Jbml0Q2hlY2sgPSBod19nZXRfbW9kdWxlKENPTlRFWFRfSFVCX01PRFVMRV9JRCwgJm1vZHVsZSk7CisKKyAgICBpZiAobUluaXRDaGVjayAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGxvYWQgJXMgbW9kdWxlOiAlcyIsIENPTlRFWFRfSFVCX01PRFVMRV9JRCwgc3RyZXJyb3IoLW1Jbml0Q2hlY2spKTsKKyAgICB9IGVsc2UgaWYgKG1vZHVsZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJoYWwgcmV0dXJuZWQgc3VjY2VzIGJ1dCBhIG51bGwgbW9kdWxlISIpOworICAgICAgICAvLyBBc3NpZ24gYW4gZXJyb3IsIHRoaXMgc2hvdWxkIG5vdCByZWFsbHkgaGFwcGVuLi4uCisgICAgICAgIG1Jbml0Q2hlY2sgPSBVTktOT1dOX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dJKCJMb2FkZWQgQ29udGV4dCBIdWIgbW9kdWxlIik7CisgICAgICAgIG1Db250ZXh0SHViTW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqPihtb2R1bGUpOworICAgIH0KK30KKworYm9vbCBDb250ZXh0aHViOjpzZXRPc0FwcEFzRGVzdGluYXRpb24oaHViX21lc3NhZ2VfdCAqbXNnLCBpbnQgaHViSWQpIHsKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIiVzOiBIdWIgaW5mb3JtYXRpb24gaXMgbnVsbCBmb3IgaHViSGFuZGxlICVkIiwKKyAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICBodWJJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtc2ctPmFwcF9uYW1lID0gbUNhY2hlZEh1YkluZm9baHViSWRdLm9zQXBwTmFtZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gQ29udGV4dGh1Yjo6Z2V0SHVicyhnZXRIdWJzX2NiIF9oaWRsX2NiKSB7CisgICAgc3RkOjp2ZWN0b3I8Q29udGV4dEh1Yj4gaHViczsKKyAgICBpZiAoaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIGNvbnN0IGNvbnRleHRfaHViX3QgKmh1YkFycmF5ID0gbnVsbHB0cjsKKyAgICAgICAgc2l6ZV90IG51bUh1YnM7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSBkaXNjYXJkaW5nIGNvbnN0LiBIQUwgbWV0aG9kIGRpc2NhcmRzIGl0LgorICAgICAgICBudW1IdWJzID0gbUNvbnRleHRIdWJNb2R1bGUtPmdldF9odWJzKGNvbnN0X2Nhc3Q8Y29udGV4dF9odWJfbW9kdWxlX3QgKj4obUNvbnRleHRIdWJNb2R1bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZodWJBcnJheSk7CisgICAgICAgIEFMT0dJKCJDb250ZXh0IEh1YiBIYWwgQWRhcHRlciByZXBvcnRzICV6dSBodWJzIiwgbnVtSHVicyk7CisKKyAgICAgICAgbUNhY2hlZEh1YkluZm8uY2xlYXIoKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUh1YnM7IGkrKykgeworICAgICAgICAgICAgQ2FjaGVkSHViSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgICAgIENvbnRleHRIdWIgYzsKKworICAgICAgICAgICAgYy5odWJJZCA9IGh1YkFycmF5W2ldLmh1Yl9pZDsKKyAgICAgICAgICAgIGMubmFtZSA9IGh1YkFycmF5W2ldLm5hbWU7CisgICAgICAgICAgICBjLnZlbmRvciA9IGh1YkFycmF5W2ldLnZlbmRvcjsKKyAgICAgICAgICAgIGMudG9vbGNoYWluID0gaHViQXJyYXlbaV0udG9vbGNoYWluOworICAgICAgICAgICAgYy50b29sY2hhaW5WZXJzaW9uID0gaHViQXJyYXlbaV0udG9vbGNoYWluX3ZlcnNpb247CisgICAgICAgICAgICBjLnBsYXRmb3JtVmVyc2lvbiA9IGh1YkFycmF5W2ldLnBsYXRmb3JtX3ZlcnNpb247CisgICAgICAgICAgICBjLm1heFN1cHBvcnRlZE1zZ0xlbiA9IGh1YkFycmF5W2ldLm1heF9zdXBwb3J0ZWRfbXNnX2xlbjsKKyAgICAgICAgICAgIGMucGVha01pcHMgPSBodWJBcnJheVtpXS5wZWFrX21pcHM7CisgICAgICAgICAgICBjLnBlYWtQb3dlckRyYXdNdyA9IGh1YkFycmF5W2ldLnBlYWtfcG93ZXJfZHJhd19tdzsKKyAgICAgICAgICAgIGMuc3RvcHBlZFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc3RvcHBlZF9wb3dlcl9kcmF3X213OworICAgICAgICAgICAgYy5zbGVlcFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc2xlZXBfcG93ZXJfZHJhd19tdzsKKworICAgICAgICAgICAgaW5mby5jYWxsQmFjayA9IG51bGxwdHI7CisgICAgICAgICAgICBpbmZvLm9zQXBwTmFtZSA9IGh1YkFycmF5W2ldLm9zX2FwcF9uYW1lOworICAgICAgICAgICAgbUNhY2hlZEh1YkluZm9baHViQXJyYXlbaV0uaHViX2lkXSA9IGluZm87CisKKyAgICAgICAgICAgIGh1YnMucHVzaF9iYWNrKGMpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1coIkNvbnRleHQgSHViIEhhbCBBZGFwdGVyIG5vdCBpbml0aWFsaXplZCIpOworICAgIH0KKworICAgIF9oaWRsX2NiKGh1YnMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK2Jvb2wgQ29udGV4dGh1Yjo6aXNWYWxpZEh1YklkKHVpbnQzMl90IGh1YklkKSB7CisgICAgaWYgKCFtQ2FjaGVkSHViSW5mby5jb3VudChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIkh1YiBpbmZvcm1hdGlvbiBub3QgZm91bmQgZm9yIGh1YklkICUiIFBSSXUzMiwgaHViSWQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBDb250ZXh0aHViOjpnZXRDYWxsQmFja0Zvckh1YklkKHVpbnQzMl90IGh1YklkKSB7CisgICAgaWYgKCFpc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBtQ2FjaGVkSHViSW5mb1todWJJZF0uY2FsbEJhY2s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb250ZXh0SHViTXNnICZtc2cpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkgfHwgbXNnLm1zZy5zaXplKCkgPiBVSU5UMzJfTUFYKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCB0eE1zZyA9IHsKKyAgICAgICAgLmFwcF9uYW1lLmlkID0gbXNnLmFwcE5hbWUsCisgICAgICAgIC5tZXNzYWdlX3R5cGUgPSBtc2cubXNnVHlwZSwKKyAgICAgICAgLm1lc3NhZ2VfbGVuID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1zZy5tc2cuc2l6ZSgpKSwgLy8gTm90ZSB0aGUgY2hlY2sgYWJvdmUKKyAgICAgICAgLm1lc3NhZ2UgPSBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KG1zZy5tc2cuZGF0YSgpKSwKKyAgICB9OworCisgICAgQUxPR0koIlNlbmRpbmcgbXNnIG9mIHR5cGUgJSIgUFJJdTMyICIsIHNpemUgJSIgUFJJdTMyICIgdG8gYXBwIDB4JSIgUFJJeDY0LAorICAgICAgICAgIHR4TXNnLm1lc3NhZ2VfdHlwZSwKKyAgICAgICAgICB0eE1zZy5tZXNzYWdlX2xlbiwKKyAgICAgICAgICB0eE1zZy5hcHBfbmFtZS5pZCk7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmdHhNc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0KKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpyZWJvb3QodWludDMyX3QgaHViSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9PU19SRUJPT1Q7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gMDsKKyAgICBtc2cubWVzc2FnZSA9IG51bGxwdHI7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnJlZ2lzdGVyQ2FsbGJhY2sodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDb250ZXh0aHViQ2FsbGJhY2s+ICZjYikgeworICAgIFJldHVybjxSZXN1bHQ+IHJldFZhbCA9IFJlc3VsdDo6QkFEX1BBUkFNUzsKKworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIC8vIE5vdCBpbml0aWxhbGl6ZWQKKyAgICAgICAgQUxPR1coIkNvbnRleHQgaHViIG5vdCBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkiKTsKKyAgICAgICAgcmV0VmFsID0gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9IGVsc2UgaWYgKCFpc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIC8vIEluaXRpYWxpemVkLCBidXQgaHViSWQgaXMgIG5vdCB2YWxpZAorICAgICAgICByZXRWYWwgPSBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfSBlbHNlIGlmIChtQ29udGV4dEh1Yk1vZHVsZS0+c3Vic2NyaWJlX21lc3NhZ2VzKGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0SHViQ2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpID09IDApIHsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQgJiYgdmFsaWQgaHViICYmIHN1YnNjcmlwdGlvbiBzdWNjZXNzZnVsCisgICAgICAgIHJldFZhbCA9IFJlc3VsdDo6T0s7CisgICAgICAgIG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsQmFjayA9IGNiOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEluaXRhbGl6ZWQgJiYgdmFsaWQgaHViSWQgLSBidXQgc3Vic2NyaXB0aW9uIHVuc3VjY2Vzc2Z1bAorICAgICAgICAvLyBUaGlzIGlzIGxpa2VseSBhbiBpbnRlcm5hbCBlcnJvciBpbiB0aGUgSEFMIGltcGxlbWVudGF0aW9uLCBidXQgd2UKKyAgICAgICAgLy8gY2Fubm90IGFkZCBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgICBBTE9HVygiQ291bGQgbm90IHN1YnNjcmliZSB0byB0aGUgaHViIGZvciBjYWxsYmFjayIpOworICAgICAgICByZXRWYWwgPSBSZXN1bHQ6OlVOS05PV05fRkFJTFVSRTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0VmFsOworfQorCitzdGF0aWMgYm9vbCBpc1ZhbGlkT3NTdGF0dXMoY29uc3QgdWludDhfdCAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtc2dMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX3Jlc3BvbnNlX3QgKnJzcCkgeworICAgIC8vIFdvcmthcm91bmQgYSBidWcgaW4gc29tZSBIQUxzCisgICAgaWYgKG1zZ0xlbiA9PSAxKSB7CisgICAgICAgIHJzcC0+cmVzdWx0ID0gbXNnWzBdOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobXNnID09IG51bGxwdHIgfHwgbXNnTGVuICE9IHNpemVvZigqcnNwKSkgeworICAgICAgICBBTE9HSSgiUmVjZWl2ZWQgaW52YWxpZCByZXNwb25zZSAoaXMgbnVsbCA6ICVkLCBzaXplICV6dSkiLAorICAgICAgICAgICAgICBtc2cgPT0gbnVsbHB0ciA/IDEgOiAwLAorICAgICAgICAgICAgICBtc2dMZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbWVtY3B5KHJzcCwgbXNnLCBzaXplb2YoKnJzcCkpOworCisgICAgLy8gTm8gc2FuaXR5IGNoZWNrcyBvbiByZXR1cm4gdmFsdWVzCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBDb250ZXh0aHViOjpoYW5kbGVPc01lc3NhZ2Uoc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZ0xlbikgeworICAgIGludCByZXRWYWwgPSAtMTsKKworCisgICAgc3dpdGNoKG1zZ1R5cGUpIHsKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9BUFBTX0VOQUJMRToKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9BUFBTX0RJU0FCTEU6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfTE9BRF9BUFA6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfVU5MT0FEX0FQUDoKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHN0YXR1c19yZXNwb25zZV90IHJzcDsKKyAgICAgICAgICAgIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkT3NTdGF0dXMobXNnLCBtc2dMZW4sICZyc3ApICYmIHJzcC5yZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVHJhbnNhY3Rpb25SZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRyYW5zYWN0aW9uUmVzdWx0OjpGQUlMVVJFOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2IgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIGNiLT5oYW5kbGVUeG5SZXN1bHQobVRyYW5zYWN0aW9uSWQsIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfUVVFUllfQVBQUzoKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SHViQXBwSW5mbz4gYXBwczsKKyAgICAgICAgICAgIGludCBudW1BcHBzID0gbXNnTGVuIC8gc2l6ZW9mKGh1Yl9hcHBfaW5mbyk7CisgICAgICAgICAgICBjb25zdCBodWJfYXBwX2luZm8gKnVuYWxpZ25lZEluZm9BZGRyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBodWJfYXBwX2luZm8gKj4obXNnKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BcHBzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBodWJfYXBwX2luZm8gcXVlcnlfaW5mbzsKKyAgICAgICAgICAgICAgICBtZW1jcHkoJnF1ZXJ5X2luZm8sICZ1bmFsaWduZWRJbmZvQWRkcltpXSwgc2l6ZW9mKHF1ZXJ5X2luZm8pKTsKKyAgICAgICAgICAgICAgICBIdWJBcHBJbmZvIGFwcDsKKyAgICAgICAgICAgICAgICBhcHAuYXBwSWQgPSBxdWVyeV9pbmZvLmFwcF9uYW1lLmlkOworICAgICAgICAgICAgICAgIGFwcC52ZXJzaW9uID0gcXVlcnlfaW5mby52ZXJzaW9uOworICAgICAgICAgICAgICAgIC8vIFRPRE8gOjogQWRkIG1lbW9yeSByYW5nZXMKKworICAgICAgICAgICAgICAgIGFwcHMucHVzaF9iYWNrKGFwcCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjYiAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgY2ItPmhhbmRsZUFwcHNJbmZvKGFwcHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9RVUVSWV9NRU1PUlk6CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERlZmVycmluZyB0aGlzIHVzZQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9PU19SRUJPT1Q6CisgICAgICAgIHsKKyAgICAgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGNiICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBjYi0+aGFuZGxlSHViRXZlbnQoQXN5bmNFdmVudFR5cGU6OlJFU1RBUlRFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICB7CisgICAgICAgICAgICByZXRWYWwgPSAtMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHJldHVybiByZXRWYWw7Cit9CisKK2ludCBDb250ZXh0aHViOjpjb250ZXh0SHViQ2IodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBodWJfbWVzc2FnZV90ICpyeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKSB7CisgICAgQ29udGV4dGh1YiAqb2JqID0gc3RhdGljX2Nhc3Q8Q29udGV4dGh1YiAqPihjb29raWUpOworCisgICAgaWYgKHJ4TXNnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIklnbm9yaW5nIE5VTEwgbWVzc2FnZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKCFvYmotPmlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIkludmFsaWQgaHViIElkICUiIFBSSXUzMiwgaHViSWQpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IgPSBvYmotPmdldENhbGxCYWNrRm9ySHViSWQoaHViSWQpOworCisgICAgaWYgKGNiID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGV2ZXIgaGFwcGVuCisgICAgICAgIEFMT0dXKCJObyBjYWxsYmFjayByZWdpc3RlcmVkLCByZXR1cm5pbmciKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChyeE1zZy0+bWVzc2FnZV90eXBlIDwgQ09OVEVYVF9IVUJfVFlQRV9QUklWQVRFX01TR19CQVNFKSB7CisgICAgICAgIG9iai0+aGFuZGxlT3NNZXNzYWdlKGNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeE1zZy0+bWVzc2FnZV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHJ4TXNnLT5tZXNzYWdlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhNc2ctPm1lc3NhZ2VfbGVuKTsKKyAgICB9IGVsc2UgeworICAgICAgICBDb250ZXh0SHViTXNnIG1zZzsKKworICAgICAgICBtc2cuYXBwTmFtZSA9IHJ4TXNnLT5hcHBfbmFtZS5pZDsKKyAgICAgICAgbXNnLm1zZ1R5cGUgPSByeE1zZy0+bWVzc2FnZV90eXBlOworICAgICAgICBtc2cubXNnID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPihyeE1zZy0+bWVzc2FnZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHJ4TXNnLT5tZXNzYWdlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeE1zZy0+bWVzc2FnZV9sZW4pOworCisgICAgICAgIGNiLT5oYW5kbGVDbGllbnRNc2cobXNnKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6dW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaWYgKG1Jc1RyYW5zYWN0aW9uUGVuZGluZykgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9QRU5ESU5HOworICAgIH0KKworICAgIGh1Yl9tZXNzYWdlX3QgbXNnOworCisgICAgaWYgKHNldE9zQXBwQXNEZXN0aW5hdGlvbigmbXNnLCBodWJJZCkgPT0gZmFsc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBzdHJ1Y3QgYXBwc19kaXNhYmxlX3JlcXVlc3RfdCByZXE7CisKKyAgICBtc2cubWVzc2FnZV90eXBlID0gQ09OVEVYVF9IVUJfVU5MT0FEX0FQUDsKKyAgICBtc2cubWVzc2FnZV9sZW4gPSBzaXplb2YocmVxKTsKKyAgICBtc2cubWVzc2FnZSA9ICZyZXE7CisgICAgcmVxLmFwcF9uYW1lLmlkID0gYXBwSWQ7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICBtVHJhbnNhY3Rpb25JZCA9IHRyYW5zYWN0aW9uSWQ7CisgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IHRydWU7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6bG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOYW5vQXBwQmluYXJ5JiBhcHBCaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSB7CisgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpIHsKKyAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUOworICAgIH0KKworICAgIGlmIChtSXNUcmFuc2FjdGlvblBlbmRpbmcpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fUEVORElORzsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IGh1Yk1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJmh1Yk1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgLy8gRGF0YSBmcm9tIHRoZSBuYW5vYXBwIGhlYWRlciBpcyBwYXNzZWQgdGhyb3VnaCBISURMIGFzIGV4cGxpY2l0IGZpZWxkcywKKyAgICAvLyBidXQgdGhlIGxlZ2FjeSBIQUwgZXhwZWN0cyBpdCBwcmVwZW5kZWQgdG8gdGhlIGJpbmFyeSwgdGhlcmVmb3JlIHdlIG11c3QKKyAgICAvLyByZWNvbnN0cnVjdCBpdCBoZXJlIHByaW9yIHRvIHBhc3NpbmcgdG8gdGhlIGxlZ2FjeSBIQUwuCisgICAgdWludDMyX3QgdGFyZ2V0Q2hyZUFwaVZlcnNpb24gPQorICAgICAgICAoYXBwQmluYXJ5LnRhcmdldENocmVBcGlNYWpvclZlcnNpb24gPDwgMjQpIHwKKyAgICAgICAgKGFwcEJpbmFyeS50YXJnZXRDaHJlQXBpTWlub3JWZXJzaW9uIDw8IDE2KTsKKyAgICBjb25zdCBzdHJ1Y3QgbmFub19hcHBfYmluYXJ5X3QgaGVhZGVyID0geworICAgICAgICAuaGVhZGVyX3ZlcnNpb24gPSBodG9sZTMyKDEpLAorICAgICAgICAubWFnaWMgICAgICAgICAgPSBodG9sZTMyKE5BTk9BUFBfTUFHSUMpLAorICAgICAgICAuYXBwX2lkLmlkICAgICAgPSBodG9sZTY0KGFwcEJpbmFyeS5hcHBJZCksCisgICAgICAgIC5hcHBfdmVyc2lvbiAgICA9IGh0b2xlMzIoYXBwQmluYXJ5LmFwcFZlcnNpb24pLAorICAgICAgICAuZmxhZ3MgICAgICAgICAgPSBodG9sZTMyKGFwcEJpbmFyeS5mbGFncyksCisgICAgICAgIC5od19odWJfdHlwZSAgICA9IGh0b2xlNjQoMCksCisgICAgICAgIC5yZXNlcnZlZFswXSAgICA9IGh0b2xlMzIodGFyZ2V0Q2hyZUFwaVZlcnNpb24pLAorICAgICAgICAucmVzZXJ2ZWRbMV0gICAgPSAwLAorICAgIH07CisgICAgY29uc3QgdWludDhfdCAqaGVhZGVyQnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJmhlYWRlcik7CisKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBiaW5hcnlXaXRoSGVhZGVyKGFwcEJpbmFyeS5jdXN0b21CaW5hcnkpOworICAgIGJpbmFyeVdpdGhIZWFkZXIuaW5zZXJ0KGJpbmFyeVdpdGhIZWFkZXIuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJCeXRlcyArIHNpemVvZihoZWFkZXIpKTsKKworICAgIGh1Yk1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9MT0FEX0FQUDsKKyAgICBodWJNc2cubWVzc2FnZV9sZW4gPSBiaW5hcnlXaXRoSGVhZGVyLnNpemUoKTsKKyAgICBodWJNc2cubWVzc2FnZSA9IGJpbmFyeVdpdGhIZWFkZXIuZGF0YSgpOworCisgICAgaWYgKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZodWJNc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjplbmFibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIHN0cnVjdCBhcHBzX2VuYWJsZV9yZXF1ZXN0X3QgcmVxOworCisgICAgbXNnLm1lc3NhZ2VfdHlwZSA9IENPTlRFWFRfSFVCX0FQUFNfRU5BQkxFOworICAgIG1zZy5tZXNzYWdlX2xlbiA9IHNpemVvZihyZXEpOworICAgIHJlcS5hcHBfbmFtZS5pZCA9IGFwcElkOworICAgIG1zZy5tZXNzYWdlID0gJnJlcTsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZtc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpkaXNhYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIHN0cnVjdCBhcHBzX2Rpc2FibGVfcmVxdWVzdF90IHJlcTsKKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9BUFBTX0RJU0FCTEU7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHJlcSk7CisgICAgcmVxLmFwcF9uYW1lLmlkID0gYXBwSWQ7CisgICAgbXNnLm1lc3NhZ2UgPSAmcmVxOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVRyYW5zYWN0aW9uSWQgPSB0cmFuc2FjdGlvbklkOworICAgICAgICBtSXNUcmFuc2FjdGlvblBlbmRpbmcgPSB0cnVlOworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IG1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJm1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIEFMT0dXKCJDb3VsZCBub3QgZmluZCBodWJJZCAlIiBQUkl1MzIsIGh1YklkKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBxdWVyeV9hcHBzX3JlcXVlc3RfdCBwYXlsb2FkOworICAgIHBheWxvYWQuYXBwX25hbWUuaWQgPSBBTExfQVBQUzsgLy8gVE9ETyA6IFBhc3MgdGhpcyBpbiBhcyBhIHBhcmFtZXRlcgorICAgIG1zZy5tZXNzYWdlID0gJnBheWxvYWQ7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHBheWxvYWQpOworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9RVUVSWV9BUFBTOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICBBTE9HVygiUXVlcnkgQXBwcyBzZW5kTWVzc2FnZSBmYWlsZWQiKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0KKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitib29sIENvbnRleHRodWI6OmlzSW5pdGlhbGl6ZWQoKSB7CisgICAgcmV0dXJuIChtSW5pdENoZWNrID09IE9LICYmIG1Db250ZXh0SHViTW9kdWxlICE9IG51bGxwdHIpOworfQorCitJQ29udGV4dGh1YiAqSElETF9GRVRDSF9JQ29udGV4dGh1Yihjb25zdCBjaGFyICogaGFsTmFtZSkgeworICAgIEFMT0dJKCIlcyBDYWxsZWQgZm9yICVzIiwgX19GVU5DVElPTl9fLCBoYWxOYW1lKTsKKyAgICBDb250ZXh0aHViICpjb250ZXh0aHViID0gbmV3IENvbnRleHRodWI7CisKKyAgICBpZiAoIWNvbnRleHRodWItPmlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgICBkZWxldGUgY29udGV4dGh1YjsKKyAgICAgICAgY29udGV4dGh1YiA9IG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRleHRodWI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBjb250ZXh0aHViCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1ODc5MzAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXworI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NPTlRFWFRIVUJfVjFfMF9DT05URVhUSFVCX0hfCisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9jb250ZXh0X2h1Yi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IENvbnRleHRodWIgOiBwdWJsaWMgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWIgeworICAgIENvbnRleHRodWIoKTsKKworICAgIFJldHVybjx2b2lkPiBnZXRIdWJzKGdldEh1YnNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDb250ZXh0aHViQ2FsbGJhY2s+ICZjYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29udGV4dEh1Yk1zZyAmbXNnKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE5hbm9BcHBCaW5hcnkmIGFwcEJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHVubG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiByZWJvb3QodWludDMyX3QgaHViSWQpOworCisgICAgYm9vbCBpc0luaXRpYWxpemVkKCk7CisKK3ByaXZhdGU6CisKKyAgICBzdHJ1Y3QgQ2FjaGVkSHViSW5mb3JtYXRpb257CisgICAgICAgIHN0cnVjdCBodWJfYXBwX25hbWVfdCBvc0FwcE5hbWU7CisgICAgICAgIHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNhbGxCYWNrOworICAgIH07CisKKyAgICBzdGF0dXNfdCBtSW5pdENoZWNrOworICAgIGNvbnN0IHN0cnVjdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqbUNvbnRleHRIdWJNb2R1bGU7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBDYWNoZWRIdWJJbmZvcm1hdGlvbj4gbUNhY2hlZEh1YkluZm87CisKKyAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBtQ2I7CisgICAgYm9vbCBtSXNUcmFuc2FjdGlvblBlbmRpbmc7CisgICAgdWludDMyX3QgbVRyYW5zYWN0aW9uSWQ7CisKKyAgICBib29sIGlzVmFsaWRIdWJJZCh1aW50MzJfdCBodWJJZCk7CisKKyAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBnZXRDYWxsQmFja0Zvckh1YklkKHVpbnQzMl90IGh1YklkKTsKKworICAgIGludCBoYW5kbGVPc01lc3NhZ2Uoc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtc2dUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZ0xlbik7CisKKyAgICBzdGF0aWMgaW50IGNvbnRleHRIdWJDYih1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaHViX21lc3NhZ2VfdCAqcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKworICAgIGJvb2wgc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKGh1Yl9tZXNzYWdlX3QgKm1zZywgaW50IGh1YklkKTsKKworICAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihDb250ZXh0aHViKTsKK307CisKK2V4dGVybiAiQyIgSUNvbnRleHRodWIgKkhJRExfRkVUQ0hfSUNvbnRleHRodWIoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBjb250ZXh0aHViCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXwpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njc3ZWMyCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGNvbnRleHRodWItaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM2NzZiNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDb250ZXh0aHViPigpOworfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsIGIvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NTA2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA7CisKK2VudW0gUmVzdWx0IDogdWludDMyX3QgeworICAgIE9LLCAgICAgICAgICAgICAgICAgIC8vIFN1Y2Nlc3MKKyAgICBVTktOT1dOX0ZBSUxVUkUsICAgICAvLyBGYWlsdXJlLCB1bmtub3duIHJlYXNvbgorICAgIEJBRF9QQVJBTVMsICAgICAgICAgIC8vIFBhcmFtZXRlcnMgbm90IHNhbmUKKyAgICBOT1RfSU5JVCwgICAgICAgICAgICAvLyBOb3QgaW5pdGlhbGl6ZWQKKyAgICBUUkFOU0FDVElPTl9GQUlMRUQsICAvLyBUcmFuc2FjdGlvbiBmYWlsZWQKKyAgICBUUkFOU0FDVElPTl9QRU5ESU5HLCAvLyBQZW5kaW5nIHRyYW5zYWN0aW9uLCBjYW5ub3QgYWNjZXB0IGEgbmV3IHJlcXVlc3QKK307CisKK2VudW0gTmFub0FwcEZsYWdzIDogdWludDMyX3QgeworICAgIFNJR05FRCAgICA9IDEgPDwgMCwKKyAgICBFTkNSWVBURUQgPSAxIDw8IDEsCit9OworCitzdHJ1Y3QgTmFub0FwcEJpbmFyeSB7CisgICAgdWludDY0X3QgYXBwSWQ7ICAgICAgICAgICAgLy8gTmFub2FwcCBpZGVudGlmaWVyCisgICAgdWludDMyX3QgYXBwVmVyc2lvbjsgICAgICAgLy8gVmVyc2lvbiBvZiB0aGUgYXBwIChzZW1hbnRpY3MgZGVmaW5lZCBieSBhcHApCisgICAgYml0ZmllbGQ8TmFub0FwcEZsYWdzPiBmbGFnczsKKworICAgIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBDSFJFIEFQSSB0aGF0IHRoaXMgbmFub0FwcCB3YXMgY29tcGlsZWQgYWdhaW5zdC4gU2VlCisgICAgLy8gdGhlIENIUkUgQVBJIGhlYWRlciBmaWxlIGNocmUvdmVyc2lvbi5oIGZvciBtb3JlIGluZm9ybWF0aW9uLiBUaGUgaHViCisgICAgLy8gaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgdGhpcyB0byBjb25maXJtIGNvbXBhdGliaWxpdHkgYmVmb3JlIGxvYWRpbmcKKyAgICAvLyB0aGlzIG5hbm9BcHAuCisgICAgdWludDhfdCB0YXJnZXRDaHJlQXBpTWFqb3JWZXJzaW9uOworICAgIHVpbnQ4X3QgdGFyZ2V0Q2hyZUFwaU1pbm9yVmVyc2lvbjsKKworICAgIC8vIEltcGxlbWVudGF0aW9uLXNwZWNpZmljIGJpbmFyeSBuYW5vYXBwIGRhdGEuIFRoaXMgZG9lcyBub3QgaW5jbHVkZSB0aGUKKyAgICAvLyBjb21tb24gbmFub2FwcCBoZWFkZXIgdGhhdCBjb250YWlucyB0aGUgYXBwIElELCBldGMuLCBhcyB0aGlzIGRhdGEgaXMKKyAgICAvLyBleHBsaWNpdGx5IHBhc3NlZCB0aHJvdWdoIHRoZSBvdGhlciBmaWVsZHMgaW4gdGhpcyBzdHJ1Y3QuCisgICAgdmVjPHVpbnQ4X3Q+IGN1c3RvbUJpbmFyeTsKK307CisKK2VudW0gU2Vuc29yVHlwZSA6IHVpbnQzMl90IHsKKyAgICBSRVNFUlZFRCwKKyAgICBBQ0NFTEVST01FVEVSLAorICAgIEdZUk9TQ09QRSwKKyAgICBNQUdORVRPTUVURVIsCisgICAgQkFST01FVEVSLAorICAgIFBST1hJTUlUWV9TRU5TT1IsCisgICAgQU1CSUVOVF9MSUdIVF9TRU5TT1IsCisgICAgU1RBVElPTkFSWV9ERVRFQ1QsCisgICAgSU5TVEFOVF9NT1RJT05fREVURUNULAorCisgICAgR1BTID0gMHgxMDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIEdQUworCisgICAgV0lGSSA9IDB4MjAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBXSUZJCisKKyAgICBBVURJTyA9IDB4MzAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBBdWRpbworCisgICAgQ0FNRVJBID0gMHg0MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIENhbWVyYQorCisgICAgQkxFID0gMHg1MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIEJsdWV0b290aCBMb3cgRW5lcmd5CisKKyAgICBXV0FOID0gMHg2MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIFdXQU4KKworICAgIFBSSVZBVEVfU0VOU09SX0JBU0UgPSAweDEwMDAwLAorICAgIC8vIFNlbnNvciB0eXBlcyBiZXlvbmQgUFJJVkFURV9TRU5TT1JfQkFTRSBhcmUgY3VzdG9tIHR5cGVzCit9OworCitzdHJ1Y3QgUGh5c2ljYWxTZW5zb3J7CisgICAgU2Vuc29yVHlwZSBzZW5zb3JUeXBlOyAgICAgICAvLyBGcm9tIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBlZzogMTAwCisgICAgc3RyaW5nIHR5cGU7ICAgICAgICAgICAgICAgICAvLyBUeXBlIGFzIGEgc3RyaW5nLiBlZzogIkdQUyIKKyAgICBzdHJpbmcgbmFtZTsgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXIgZWc6ICJCb3NjaCBCTUkxNjAiCisgICAgc3RyaW5nIHZlbmRvcjsgICAgICAgICAgICAgICAvLyBWZW5kb3IgOiBlZyAiU1RNIgorICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgICAgICAgLy8gVmVyc2lvbiA6IGVnIDB4MTAwMQorICAgIHVpbnQzMl90IGZpZm9SZXNlcnZlZENvdW50OyAgLy8gQmF0Y2hpbmcgcG9zc2libGUgaW4gaGFyZHdhcmUuIFBsZWFzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZSB0aGF0IGhlcmUgaGFyZHdhcmUgZG9lcyBub3QgaW5jbHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRleHQgaHViIGl0c2VsZi4gVGh1cywgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5pdGlvbiBtYXkgYmUgZGlmZmVyZW50IGZyb20gc2F5IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIGFkdmVydGlzZWQgaW4gdGhlIHNlbnNvcnMgSEFMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBhbGxvd3MgZm9yIGJhdGNoaW5nIGluIGEgaHViLgorICAgIHVpbnQzMl90IGZpZm9NYXhDb3VudDsgICAgICAgLy8gTWF4aW11bSBudW1iZXIgb2YgYmF0Y2hhYmxlIGV2ZW50cy4KKyAgICB1aW50NjRfdCBtaW5EZWxheU1zOyAgICAgICAgIC8vIEluIG1pbGxpc2Vjb25kcywgY29ycmVzcG9uZGluZyB0byBoaWdoZXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1wbGluZyBmcmVxLgorICAgIHVpbnQ2NF90IG1heERlbGF5TXM7ICAgICAgICAgLy8gSW4gbWlsbGlzZWNvbmRzLCBjb3JyZXNwb25kcyB0byBtaW5pbXVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1wbGluZyBmcmVxdWVuY3kKKyAgICBmbG9hdCBwZWFrUG93ZXJNdzsgICAgICAgICAgIC8vIEF0IG1heCBmcmVxdWVuY3kgJiBubyBiYXRjaGluZywgcG93ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIG1pbGxpd2F0dHMKK307CisKK3N0cnVjdCBDb250ZXh0SHViIHsKKyAgICBzdHJpbmcgbmFtZTsgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpdmUgbmFtZSBlZzogIkF3ZXNvbWUgSHViICMxIgorICAgIHN0cmluZyB2ZW5kb3I7ICAgICAgICAgICAgICAvLyBIdWIgaGFyZHdhcmUgdmVuZG9yIGVnOiAiUXVhbGNvbW0iCisgICAgc3RyaW5nIHRvb2xjaGFpbjsgICAgICAgICAgIC8vIFRvb2xjaGFpbiB0byBtYWtlIGJpbmFyaWVzIGVnOiAiZ2NjIEFSTSIKKyAgICB1aW50MzJfdCBwbGF0Zm9ybVZlcnNpb247ICAgLy8gVmVyc2lvbiBvZiB0aGUgaGFyZHdhcmUgOiBlZyAweDIwCisgICAgdWludDMyX3QgdG9vbGNoYWluVmVyc2lvbjsgIC8vIFZlcnNpb24gb2YgdGhlIHRvb2xjaGFpbiA6IGVnOiAweDQ4NAorICAgIHVpbnQzMl90IGh1YklkOyAgICAgICAgICAgICAvLyBBIGRldmljZSB1bmlxdWUgSUQgZm9yIHRoaXMgaHViCisKKyAgICBmbG9hdCBwZWFrTWlwczsgICAgICAgICAgICAgLy8gUGVhayBNSVBTIHBsYXRmb3JtIGNhbiBkZWxpdmVyCisgICAgZmxvYXQgc3RvcHBlZFBvd2VyRHJhd013OyAgIC8vIElmIHN0b3BwZWQsIHJldGVudGlvbiBwb3dlciwgbWlsbGl3YXR0cworICAgIGZsb2F0IHNsZWVwUG93ZXJEcmF3TXc7ICAgICAvLyBJZiBzbGVlcGluZywgcmV0ZW50aW9uIHBvd2VyLCBtaWxsaXdhdHRzCisgICAgZmxvYXQgcGVha1Bvd2VyRHJhd013OyAgICAgIC8vIEZvciBhIGJ1c3kgQ1BVLCBwb3dlciBpbiBtaWxsaXdhdHRzCisKKyAgICB2ZWM8UGh5c2ljYWxTZW5zb3I+IGNvbm5lY3RlZFNlbnNvcnM7IC8vIEFycmF5IG9mIGNvbm5lY3RlZCBzZW5zb3JzCisKKyAgICB1aW50MzJfdCBtYXhTdXBwb3J0ZWRNc2dMZW47Ly8gVGhpcyBpcyB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSBtZXNzYWdlIHRoYXQgY2FuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHNlbnQgdG8gdGhlIGh1YiBpbiBvbmUgY2h1bmsgKGluIGJ5dGVzKQorCisgICAgLy8gTWFjaGluZS1yZWFkYWJsZSBDSFJFIHBsYXRmb3JtIElELCByZXR1cm5lZCB0byBuYW5vYXBwcyBpbiB0aGUgQ0hSRSBBUEkKKyAgICAvLyBmdW5jdGlvbiBjYWxsIGNocmVHZXRQbGF0Zm9ybUlkKCkuIFRoaXMgZmllbGQgcGFpcnMgd2l0aAorICAgIC8vIGNocmVBcGlNYWpvclZlcnNpb24sIGNocmVBcGlNaW5vclZlcnNpb24sIGFuZCBjaHJlUGF0Y2hWZXJzaW9uIHRvIGZ1bGx5CisgICAgLy8gc3BlY2lmeSB0aGUgQ0hSRSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uLiBTZWUgYWxzbyB0aGUgQ0hSRSBBUEkgaGVhZGVyCisgICAgLy8gZmlsZSBjaHJlL3ZlcnNpb24uaC4KKyAgICB1aW50NjRfdCBjaHJlUGxhdGZvcm1JZDsKKworICAgIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBDSFJFIGltcGxlbWVudGF0aW9uIHJldHVybmVkIHRvIG5hbm9BcHBzIGluIHRoZSBDSFJFCisgICAgLy8gQVBJIGZ1bmN0aW9uIGNhbGwgY2hyZUdldFZlcnNpb24oKS4gVGhlIG1ham9yIGFuZCBtaW5vciB2ZXJzaW9uIHNwZWNpZnkKKyAgICAvLyB0aGUgaW1wbGVtZW50ZWQgdmVyc2lvbiBvZiB0aGUgQ0hSRSBBUEksIHdoaWxlIHRoZSBwYXRjaCB2ZXJzaW9uCisgICAgLy8gZGVzY3JpYmVzIHRoZSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIHBsYXRmb3JtCisgICAgLy8gSUQuIFNlZSBhbHNvIHRoZSBDSFJFIEFQSSBoZWFkZXIgZmlsZSBjaHJlL3ZlcnNpb24uaC4KKyAgICB1aW50OF90IGNocmVBcGlNYWpvclZlcnNpb247CisgICAgdWludDhfdCBjaHJlQXBpTWlub3JWZXJzaW9uOworICAgIHVpbnQxNl90IGNocmVQYXRjaFZlcnNpb247Cit9OworCitlbnVtIEhvc3RFbmRQb2ludCA6IHVpbnQxNl90IHsKKyAgICBCUk9BRENBU1QgPSAweEZGRkYsIC8vIFRoZSBtZXNzYWdlIGVuZHBvaW50IGlzIGEgYnJvYWRjYXN0IGVuZCBwb2ludC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgdmFsdWUgbXVzdCBuZXZlciBiZSB1c2VkIGZvciBhIG1lc3NhZ2UgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGhvc3QgdG8gdGhlIGh1Yi4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIEJST0FEQ0FTVCBpcyBzcGVjaWZpZWQgYXMgYSBkZXN0aW5hdGlvbiBmb3IgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVzc2FnZSBmcm9tIHRoZSBjb250ZXh0IGh1YiB0byB0aGUgQ29udGV4dEh1YgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VydmljZSwgdGhlIG1lc3NhZ2UgbXVzdCBiZSBicm9hZGNhc3QgdG8gYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWdpc3RlcmVkIGNsaWVudHMgYnkgdGhlIENvbnRleHQgSHViIHNlcnZpY2UuCisgICAgVU5TUEVDSUZJRUQgPSAweEZGRkUsIC8vIFRoZSBtZXNzYWdlIGVuZHBvaW50IGlzIHVuc3BlY2lmaWVkLiBUaGlzIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11c3Qgbm90IGJlIHVzZWQgZm9yIG1lc3NhZ2VzIGZyb20gdGhlIGh1YiB0byBob3N0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHZhbHVlIG1heSBiZSB1c2VkIGZvciBtZXNzYWdlcyBmcm9tIHRoZSBob3N0CisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBodWIuCit9OworCitzdHJ1Y3QgQ29udGV4dEh1Yk1zZyB7CisgICAgdWludDY0X3QgYXBwTmFtZTsgICAgICAvLyBJbnRlbmRlZCByZWNpcGllbnQgKGFwcElkKQorICAgIHVpbnQxNl90IGhvc3RFbmRQb2ludDsgLy8gaWRlbnRpZmllciBmb3IgdGhlIGVuZHBvaW50LiAoYWxzbyBzZWUgZW51bSBIb3N0RW5kUG9pbnQpCisgICAgdWludDMyX3QgbXNnVHlwZTsgICAgICAvLyBJZGVudGlmaWVyIGZvciBtZXNzYWdlCisgICAgdmVjPHVpbnQ4X3Q+IG1zZzsgICAgICAvLyBNZXNzYWdlIGJvZHkKK307CisKK2VudW0gSHViTWVtb3J5VHlwZSA6IHVpbnQzMl90IHsKKyAgICBNQUlOICAgICAgPSAwLCAvLyBNYWluIG1lbW9yeQorICAgIFNFQ09OREFSWSA9IDEsIC8vIFNlY29uZGFyeSBtZW1vcnkKKyAgICBUQ00gICAgICAgPSAyLCAvLyBUaWdodGx5IGNvdXBsZWQgbWVtb3J5Cit9OworCitlbnVtIEh1Yk1lbW9yeUZsYWcgOiB1aW50MzJfdCB7CisgICAgUkVBRCAgPSAxIDw8IDAsIC8vIFJlYWRhYmxlCisgICAgV1JJVEUgPSAxIDw8IDEsIC8vIFdyaXRhYmxlCisgICAgRVhFQyAgPSAxIDw8IDIsIC8vIEV4ZWN1dGFibGUKK307CisKK3N0cnVjdCBNZW1SYW5nZSB7CisgICAgdWludDMyX3QgdG90YWxCeXRlczsgLy8gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXMKKyAgICB1aW50MzJfdCBmcmVlQnl0ZXM7ICAvLyBGcmVlIGNhcGFjaXR5IGluIGJ5dGVzCisgICAgSHViTWVtb3J5VHlwZSB0eXBlOyAgLy8gVHlwZSBvZiBtZW1vcnksIHNlZSBIdWJNZW1vcnlUeXBlCisgICAgYml0ZmllbGQ8SHViTWVtb3J5RmxhZz4gZmxhZ3M7Cit9OworCitlbnVtIEFzeW5jRXZlbnRUeXBlIDogdWludDMyX3QgeworICAgIFJFU1RBUlRFRCA9IDEsICAgLy8gSHViIHJlc3RhcnRlZCB1bmV4cGVjdGVkbHkKK307CisKK2VudW0gVHJhbnNhY3Rpb25SZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLCAgICAgIC8vIFN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0cmFuc2FjdGlvbgorICAgIEZBSUxVUkUsICAgICAgLy8gRmFpbGVkIHRyYW5zYWN0aW9uCit9OworCitzdHJ1Y3QgSHViQXBwSW5mbyB7CisgICAgdWludDY0X3QgYXBwSWQ7ICAgICAgICAgLy8gSWRlbnRpZmllciBvZiB0aGUgYXBwCisgICAgdWludDMyX3QgdmVyc2lvbjsgICAgICAgLy8gVmVyc2lvbiBvZiB0aGUgYXBwCisgICAgdmVjPE1lbVJhbmdlPiBtZW1Vc2FnZTsgLy8gTWVtb3J5IHVzZWQgYnkgdGhpcyBhcHAKKyAgICBib29sIGVuYWJsZWQ7ICAgICAgICAgICAvLyB0cnVlIGlmIHRoZSBhcHAgaXMgY3VycmVudGx5IGVuYWJsZWQgYW5kIHJ1bm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3IgZmFsc2UgaWYgaW4gdGhlIGxvYWRlZCBidXQgZGlzYWJsZWQgc3RhdGUKK307CisKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNTM4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbENvbnRleHRodWJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QuY3BwIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjcyODI0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDM4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiY29udGV4dGh1Yl9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGZ1dHVyZT4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkFzeW5jRXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6Q29udGV4dEh1YjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkNvbnRleHRIdWJNc2c7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpIdWJBcHBJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpJQ29udGV4dGh1YkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6TmFub0FwcEJpbmFyeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OlRyYW5zYWN0aW9uUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBBU1NFUlRfT0socmVzdWx0KSBBU1NFUlRfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKQorI2RlZmluZSBFWFBFQ1RfT0socmVzdWx0KSBFWFBFQ1RfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKQorCituYW1lc3BhY2UgeworCisvLyBBcHAgSUQgd2l0aCB2ZW5kb3IgIkdvb2dUIiAoR29vZ2xlIFRlc3RpbmcpLCBhcHAgaWRlbnRpZmllciAweDU1NTU1NS4gVGhpcworLy8gYXBwIElEIGlzIHJlc2VydmVkIGFuZCBtdXN0IG5ldmVyIGFwcGVhciBpbiB0aGUgbGlzdCBvZiBsb2FkZWQgYXBwcy4KK2NvbnN0ZXhwciB1aW50NjRfdCBrTm9uRXhpc3RlbnRBcHBJZCA9IDB4NDc2ZjZmNjc1NDU1NTU1NTsKKworLy8gSGVscGVyIHRoYXQgZG9lcyBleHBsaWNpdCBjb252ZXJzaW9uIG9mIGFuIGVudW0gY2xhc3MgdG8gaXRzIHVuZGVybHlpbmcvYmFzZQorLy8gdHlwZS4gVXNlZnVsIGZvciBzdHJlYW0gb3V0cHV0IG9mIGVudW0gdmFsdWVzLgordGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGU+Citjb25zdGV4cHIgdHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8RW51bVR5cGU+Ojp0eXBlIGFzQmFzZVR5cGUoCisgICAgRW51bVR5cGUgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVudW1UeXBlPjo6dHlwZT4odmFsdWUpOworfQorCisvLyBTeW5jaHJvbm91c2x5IHF1ZXJpZXMgSUNvbnRleHRodWI6OmdldEh1YnMoKSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0CitoaWRsX3ZlYzxDb250ZXh0SHViPiBnZXRIdWJzU3luYyhzcDxJQ29udGV4dGh1Yj4gaHViQXBpKSB7CisgIGhpZGxfdmVjPENvbnRleHRIdWI+IGh1Ykxpc3Q7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBiYXJyaWVyOworCisgIGh1YkFwaS0+Z2V0SHVicyhbJmh1Ykxpc3QsICZiYXJyaWVyXShjb25zdCBoaWRsX3ZlYzxDb250ZXh0SHViPiYgaHVicykgeworICAgIGh1Ykxpc3QgPSBodWJzOworICAgIGJhcnJpZXIuc2V0X3ZhbHVlKCk7CisgIH0pOworICBiYXJyaWVyLmdldF9mdXR1cmUoKS53YWl0X2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7CisKKyAgcmV0dXJuIGh1Ykxpc3Q7Cit9CisKKy8vIEdldHMgYSBsaXN0IG9mIHZhbGlkIGh1YiBJRHMgaW4gdGhlIHN5c3RlbQorc3RkOjp2ZWN0b3I8dWludDMyX3Q+IGdldEh1YklkcygpIHsKKyAgc3RhdGljIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBodWJJZHM7CisKKyAgaWYgKGh1Yklkcy5zaXplKCkgPT0gMCkgeworICAgIHNwPElDb250ZXh0aHViPiBodWJBcGkgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ29udGV4dGh1Yj4oKTsKKworICAgIGlmIChodWJBcGkgIT0gbnVsbHB0cikgeworICAgICAgZm9yIChDb250ZXh0SHViIGh1YiA6IGdldEh1YnNTeW5jKGh1YkFwaSkpIHsKKyAgICAgICAgaHViSWRzLnB1c2hfYmFjayhodWIuaHViSWQpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIEFMT0dEKCJSdW5uaW5nIHRlc3RzIGFnYWluc3QgYWxsICV6dSByZXBvcnRlZCBodWJzIiwgaHViSWRzLnNpemUoKSk7CisgIHJldHVybiBodWJJZHM7Cit9CisKKy8vIEJhc2UgdGVzdCBmaXh0dXJlIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIEhBTCBhbmQgbWFrZXMgdGhlIGNvbnRleHQgaHViIEFQSQorLy8gaGFuZGxlIGF2YWlsYWJsZQorY2xhc3MgQ29udGV4dGh1YkhpZGxUZXN0QmFzZSA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgaHViQXBpID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNvbnRleHRodWI+KCk7CisgICAgQVNTRVJUX05FKGh1YkFwaSwgbnVsbHB0cik7CisKKyAgICAvLyBnZXRIdWJzKCkgbXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBmb3IgcHJvcGVyIGluaXRpYWxpemF0aW9uIG9mIHRoZQorICAgIC8vIEhBTCBpbXBsZW1lbnRhdGlvbgorICAgIGdldEh1YnNTeW5jKGh1YkFwaSk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElDb250ZXh0aHViPiBodWJBcGk7Cit9OworCisvLyBUZXN0IGZpeHR1cmUgcGFyYW1ldGVyaXplZCBieSBodWIgSUQKK2NsYXNzIENvbnRleHRodWJIaWRsVGVzdCA6IHB1YmxpYyBDb250ZXh0aHViSGlkbFRlc3RCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPHVpbnQzMl90PiB7CisgcHVibGljOgorICB1aW50MzJfdCBnZXRIdWJJZCgpIHsKKyAgICByZXR1cm4gR2V0UGFyYW0oKTsKKyAgfQorCisgIFJlc3VsdCByZWdpc3RlckNhbGxiYWNrKHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNiKSB7CisgICAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+cmVnaXN0ZXJDYWxsYmFjayhnZXRIdWJJZCgpLCBjYik7CisgICAgQUxPR0QoIlJlZ2lzdGVyZWQgY2FsbGJhY2ssIHJlc3VsdCAlIiBQUkl1MzIsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorfTsKKworLy8gQmFzZSBjYWxsYmFjayBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgbG9ncyBhbGwgY2FsbGJhY2tzIGJ5IGRlZmF1bHQKK2NsYXNzIENvbnRleHRodWJDYWxsYmFja0Jhc2UgOiBwdWJsaWMgSUNvbnRleHRodWJDYWxsYmFjayB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVDbGllbnRNc2coY29uc3QgQ29udGV4dEh1Yk1zZyYgLyptc2cqLykgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgY2xpZW50IG1lc3NhZ2UgY2FsbGJhY2siKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlVHhuUmVzdWx0KAorICAgICAgdWludDMyX3QgdHhuSWQsIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgdHJhbnNhY3Rpb24gcmVzdWx0IGNhbGxiYWNrIGZvciB0eG5JZCAlIiBQUkl1MzIgIiB3aXRoIHJlc3VsdCAlIgorICAgICAgICAgIFBSSWQzMiwgdHhuSWQsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhbmRsZUh1YkV2ZW50KEFzeW5jRXZlbnRUeXBlIGV2dCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgaHViIGV2ZW50IGNhbGxiYWNrIGZvciBldmVudCB0eXBlICUiIFBSSXUzMiwgZXZ0KTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiR290IGFwcCBhYm9ydCBub3RpZmljYXRpb24gZm9yIGFwcElkIDB4JSIgUFJJeDY0ICIgd2l0aCBhYm9ydCBjb2RlICIKKyAgICAgICAgICAiMHglIiBQUkl4MzIsIGFwcElkLCBhYm9ydENvZGUpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVBcHBzSW5mbyhjb25zdCBoaWRsX3ZlYzxIdWJBcHBJbmZvPiYgLyphcHBJbmZvKi8pCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgaW5mbyBjYWxsYmFjayIpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KK307CisKKy8vIFdhaXQgZm9yIGEgY2FsbGJhY2sgdG8gb2NjdXIgKHNpZ25hbGVkIGJ5IHRoZSBnaXZlbiBmdXR1cmUpIHVwIHRvIHRoZQorLy8gcHJvdmlkZWQgdGltZW91dC4gSWYgdGhlIGZ1dHVyZSBpcyBpbnZhbGlkIG9yIHRoZSBjYWxsYmFjayBkb2VzIG5vdCBjb21lCisvLyB3aXRoaW4gdGhlIGdpdmVuIHRpbWUsIHJldHVybnMgZmFsc2UuCit0ZW1wbGF0ZTxjbGFzcyBSZXR1cm5UeXBlPgorYm9vbCB3YWl0Rm9yQ2FsbGJhY2soCisgICAgc3RkOjpmdXR1cmU8UmV0dXJuVHlwZT4gZnV0dXJlLAorICAgIFJldHVyblR5cGUgKnJlc3VsdCwKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSkgeworICBhdXRvIGV4cGlyYXRpb24gPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArIHRpbWVvdXQ7CisKKyAgRVhQRUNUX05FKHJlc3VsdCwgbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGZ1dHVyZS52YWxpZCgpKTsKKyAgaWYgKHJlc3VsdCAhPSBudWxscHRyICYmIGZ1dHVyZS52YWxpZCgpKSB7CisgICAgc3RkOjpmdXR1cmVfc3RhdHVzIHN0YXR1cyA9IGZ1dHVyZS53YWl0X3VudGlsKGV4cGlyYXRpb24pOworICAgIEVYUEVDVF9ORShzdGF0dXMsIHN0ZDo6ZnV0dXJlX3N0YXR1czo6dGltZW91dCkKKyAgICAgICAgPDwgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjYWxsYmFjayI7CisKKyAgICBpZiAoc3RhdHVzID09IHN0ZDo6ZnV0dXJlX3N0YXR1czo6cmVhZHkpIHsKKyAgICAgICpyZXN1bHQgPSBmdXR1cmUuZ2V0KCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEVuc3VyZXMgdGhhdCB0aGUgbWV0YWRhdGEgcmVwb3J0ZWQgaW4gZ2V0SHVicygpIGlzIHNhbmUKK1RFU1RfRihDb250ZXh0aHViSGlkbFRlc3RCYXNlLCBUZXN0R2V0SHVicykgeworICBoaWRsX3ZlYzxDb250ZXh0SHViPiBodWJzID0gZ2V0SHVic1N5bmMoaHViQXBpKTsKKyAgQUxPR0QoIlN5c3RlbSByZXBvcnRzICV6dSBodWJzIiwgaHVicy5zaXplKCkpOworCisgIGZvciAoQ29udGV4dEh1YiBodWIgOiBodWJzKSB7CisgICAgQUxPR0QoIkNoZWNraW5nIGh1YiBJRCAlIiBQUkl1MzIsIGh1Yi5odWJJZCk7CisKKyAgICBFWFBFQ1RfRkFMU0UoaHViLm5hbWUuZW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGh1Yi52ZW5kb3IuZW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGh1Yi50b29sY2hhaW4uZW1wdHkoKSk7CisgICAgRVhQRUNUX0dUKGh1Yi5wZWFrTWlwcywgMCk7CisgICAgRVhQRUNUX0dFKGh1Yi5zdG9wcGVkUG93ZXJEcmF3TXcsIDApOworICAgIEVYUEVDVF9HRShodWIuc2xlZXBQb3dlckRyYXdNdywgMCk7CisgICAgRVhQRUNUX0dUKGh1Yi5wZWFrUG93ZXJEcmF3TXcsIDApOworCisgICAgLy8gTWluaW11bSAxMjggYnl0ZSBNVFUgYXMgcmVxdWlyZWQgYnkgQ0hSRSBBUEkgdjEuMAorICAgIEVYUEVDVF9HRShodWIubWF4U3VwcG9ydGVkTXNnTGVuLCBVSU5UMzJfQygxMjgpKTsKKyAgfQorfQorCitURVNUX1AoQ29udGV4dGh1YkhpZGxUZXN0LCBUZXN0UmVnaXN0ZXJDYWxsYmFjaykgeworICBBTE9HRCgiVGVzdFJlZ2lzdGVyQ2FsbGJhY2sgY2FsbGVkLCBodWJJZCAlIiBQUkl1MzIsIGdldEh1YklkKCkpOworICBBU1NFUlRfT0socmVnaXN0ZXJDYWxsYmFjayhuZXcgQ29udGV4dGh1YkNhbGxiYWNrQmFzZSgpKSk7Cit9CisKK1RFU1RfUChDb250ZXh0aHViSGlkbFRlc3QsIFRlc3RSZWdpc3Rlck51bGxDYWxsYmFjaykgeworICBBTE9HRCgiVGVzdFJlZ2lzdGVyTnVsbENhbGxiYWNrIGNhbGxlZCwgaHViSWQgJSIgUFJJdTMyLCBnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2sobnVsbHB0cikpOworfQorCisvLyBIZWxwZXIgY2FsbGJhY2sgdGhhdCBwdXRzIHRoZSBhc3luYyBhcHBJbmZvIGNhbGxiYWNrIGRhdGEgaW50byBhIHByb21pc2UKK2NsYXNzIFF1ZXJ5QXBwc0NhbGxiYWNrIDogcHVibGljIENvbnRleHRodWJDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwc0luZm8oY29uc3QgaGlkbF92ZWM8SHViQXBwSW5mbz4mIGFwcEluZm8pCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgaW5mbyBjYWxsYmFjayB3aXRoICV6dSBhcHBzIiwgYXBwSW5mby5zaXplKCkpOworICAgIHByb21pc2Uuc2V0X3ZhbHVlKGFwcEluZm8pOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBzdGQ6OnByb21pc2U8aGlkbF92ZWM8SHViQXBwSW5mbz4+IHByb21pc2U7Cit9OworCisvLyBDYWxscyBxdWVyeUFwcHMoKSBhbmQgY2hlY2tzIHRoZSByZXR1cm5lZCBtZXRhZGF0YQorVEVTVF9QKENvbnRleHRodWJIaWRsVGVzdCwgVGVzdFF1ZXJ5QXBwcykgeworICBBTE9HRCgiVGVzdFF1ZXJ5QXBwcyBjYWxsZWQsIGh1YklkICV1IiwgZ2V0SHViSWQoKSk7CisgIHNwPFF1ZXJ5QXBwc0NhbGxiYWNrPiBjYiA9IG5ldyBRdWVyeUFwcHNDYWxsYmFjaygpOworICBBU1NFUlRfT0socmVnaXN0ZXJDYWxsYmFjayhjYikpOworCisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnF1ZXJ5QXBwcyhnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlc3VsdCk7CisKKyAgQUxPR0QoIldhaXRpbmcgZm9yIGFwcCBpbmZvIGNhbGxiYWNrIik7CisgIGhpZGxfdmVjPEh1YkFwcEluZm8+IGFwcExpc3Q7CisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCksICZhcHBMaXN0KSk7CisgIGZvciAoY29uc3QgSHViQXBwSW5mbyAmYXBwSW5mbyA6IGFwcExpc3QpIHsKKyAgICBFWFBFQ1RfTkUoYXBwSW5mby5hcHBJZCwgVUlOVDY0X0MoMCkpOworICAgIEVYUEVDVF9ORShhcHBJbmZvLmFwcElkLCBrTm9uRXhpc3RlbnRBcHBJZCk7CisgIH0KK30KKworLy8gSGVscGVyIGNhbGxiYWNrIHRoYXQgcHV0cyB0aGUgVHJhbnNhY3Rpb25SZXN1bHQgZm9yIHRoZSBleHBlY3RlZFR4bklkIGludG8gYQorLy8gcHJvbWlzZQorY2xhc3MgVHhuUmVzdWx0Q2FsbGJhY2sgOiBwdWJsaWMgQ29udGV4dGh1YkNhbGxiYWNrQmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVUeG5SZXN1bHQoCisgICAgICB1aW50MzJfdCB0eG5JZCwgVHJhbnNhY3Rpb25SZXN1bHQgcmVzdWx0KSBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCB0cmFuc2FjdGlvbiByZXN1bHQgY2FsbGJhY2sgZm9yIHR4bklkICUiIFBSSXUzMiAiIChleHBlY3RpbmcgJSIKKyAgICAgICAgICBQUkl1MzIgIikgd2l0aCByZXN1bHQgJSIgUFJJZDMyLCB0eG5JZCwgZXhwZWN0ZWRUeG5JZCwgcmVzdWx0KTsKKyAgICBpZiAodHhuSWQgPT0gZXhwZWN0ZWRUeG5JZCkgeworICAgICAgcHJvbWlzZS5zZXRfdmFsdWUocmVzdWx0KTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHVpbnQzMl90IGV4cGVjdGVkVHhuSWQgPSAwOworICBzdGQ6OnByb21pc2U8VHJhbnNhY3Rpb25SZXN1bHQ+IHByb21pc2U7Cit9OworCisvLyBQYXJhbWV0ZXJpemVkIGZpeHR1cmUgdGhhdCBzZXRzIHRoZSBjYWxsYmFjayB0byBUeG5SZXN1bHRDYWxsYmFjaworY2xhc3MgQ29udGV4dGh1YlR4blRlc3QgOiBwdWJsaWMgQ29udGV4dGh1YkhpZGxUZXN0IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBDb250ZXh0aHViSGlkbFRlc3Q6OlNldFVwKCk7CisgICAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2soY2IpKTsKKyAgfQorCisgIHNwPFR4blJlc3VsdENhbGxiYWNrPiBjYiA9IG5ldyBUeG5SZXN1bHRDYWxsYmFjaygpOworfTsKKworCisvLyBDaGVja3MgY2FzZXMgd2hlcmUgdGhlIGh1YiBpbXBsZW1lbnRhdGlvbiBpcyBleHBlY3RlZCB0byByZXR1cm4gYW4gZXJyb3IsIGJ1dAorLy8gdGhhdCBlcnJvciBjYW4gYmUgcmV0dXJuZWQgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3IgaW4gdGhlIGFzeW5jaHJvbm91cworLy8gdHJhbnNhY3Rpb24gY2FsbGJhY2suIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0IHRoYXQgY2FuIGJlIHVzZWQgaW4KKy8vIEFTU0VSVC9FWFBFQ1RfVFJVRS4gQWxsb3dzIGNoZWNraW5nIHRoZSBzeW5jIHJlc3VsdCBhZ2FpbnN0IDEgYWRkaXRpb25hbAorLy8gYWxsb3dlZCBlcnJvciBjb2RlIGFwYXJ0IGZyb20gT0sgYW5kIFRSQU5TQUNUSU9OX0ZBSUxFRCwgd2hpY2ggYXJlIGFsd2F5cworLy8gYWxsb3dlZC4KKzo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGNoZWNrRmFpbHVyZVN5bmNPckFzeW5jKAorICAgIFJlc3VsdCByZXN1bHQsIFJlc3VsdCBhbGxvd2VkU3luY1Jlc3VsdCwKKyAgICBzdGQ6OmZ1dHVyZTxUcmFuc2FjdGlvblJlc3VsdD4mJiBmdXR1cmUpIHsKKyAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgLy8gTm8gZXJyb3IgcmVwb3J0ZWQgc3luY2hyb25vdXNseSAtIHRoaXMgaXMgT0ssIGJ1dCB0aGVuIHdlIHNob3VsZCBnZXQgYW4KKyAgICAvLyBhc3luYyBjYWxsYmFjayB3aXRoIGEgZmFpbHVyZSBzdGF0dXMKKyAgICBUcmFuc2FjdGlvblJlc3VsdCBhc3luY1Jlc3VsdDsKKyAgICBpZiAoIXdhaXRGb3JDYWxsYmFjayhzdGQ6OmZvcndhcmQ8c3RkOjpmdXR1cmU8VHJhbnNhY3Rpb25SZXN1bHQ+PihmdXR1cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICZhc3luY1Jlc3VsdCkpIHsKKyAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgIDw8ICJHb3Qgc3VjY2Vzc2Z1bCBzeW5jIHJlc3VsdCwgdGhlbiBmYWlsZWQgdG8gcmVjZWl2ZSBhc3luYyBjYiI7CisgICAgfSBlbHNlIGlmIChhc3luY1Jlc3VsdCA9PSBUcmFuc2FjdGlvblJlc3VsdDo6U1VDQ0VTUykgeworICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAgPDwgIkdvdCBzdWNjZXNzZnVsIHN5bmMgcmVzdWx0LCB0aGVuIHVuZXhwZWN0ZWQgc3VjY2Vzc2Z1bCBhc3luYyAiCisgICAgICAgICAgICAgInJlc3VsdCI7CisgICAgfQorICB9IGVsc2UgaWYgKHJlc3VsdCAhPSBhbGxvd2VkU3luY1Jlc3VsdCAmJgorICAgICAgICAgICAgIHJlc3VsdCAhPSBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCAiR290IHN5bmMgcmVzdWx0ICIKKyAgICAgICAgPDwgYXNCYXNlVHlwZShyZXN1bHQpIDw8ICIsIGV4cGVjdGVkIFRSQU5TQUNUSU9OX0ZBSUxFRCBvciAiCisgICAgICAgIDw8IGFzQmFzZVR5cGUoYWxsb3dlZFN5bmNSZXN1bHQpOworICB9CisKKyAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RTZW5kTWVzc2FnZVRvTm9uRXhpc3RlbnROYW5vQXBwKSB7CisgIENvbnRleHRIdWJNc2cgbXNnOworICBtc2cuYXBwTmFtZSA9IGtOb25FeGlzdGVudEFwcElkOworICBtc2cubXNnVHlwZSA9IDE7CisgIG1zZy5tc2cucmVzaXplKDQpOworICBzdGQ6OmZpbGwobXNnLm1zZy5iZWdpbigpLCBtc2cubXNnLmVuZCgpLCAwKTsKKworICBBTE9HRCgiU2VuZGluZyBtZXNzYWdlIHRvIG5vbi1leGlzdGVudCBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnNlbmRNZXNzYWdlVG9IdWIoZ2V0SHViSWQoKSwgbXNnKTsKKyAgaWYgKHJlc3VsdCAhPSBSZXN1bHQ6Ok9LICYmCisgICAgICByZXN1bHQgIT0gUmVzdWx0OjpCQURfUEFSQU1TICYmCisgICAgICByZXN1bHQgIT0gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQpIHsKKyAgICBGQUlMKCkgPDwgIkdvdCByZXN1bHQgIiA8PCBhc0Jhc2VUeXBlKHJlc3VsdCkgPDwgIiwgZXhwZWN0ZWQgT0ssIEJBRF9QQVJBTVMiCisgICAgICAgIDw8ICIsIG9yIFRSQU5TQUNUSU9OX0ZBSUxFRCI7CisgIH0KK30KKworVEVTVF9QKENvbnRleHRodWJUeG5UZXN0LCBUZXN0TG9hZEVtcHR5TmFub0FwcCkgeworICBjYi0+ZXhwZWN0ZWRUeG5JZCA9IDAxMjM7CisgIE5hbm9BcHBCaW5hcnkgZW1wdHlBcHA7CisKKyAgZW1wdHlBcHAuYXBwSWQgPSBrTm9uRXhpc3RlbnRBcHBJZDsKKyAgZW1wdHlBcHAuYXBwVmVyc2lvbiA9IDE7CisgIGVtcHR5QXBwLmZsYWdzID0gMDsKKyAgZW1wdHlBcHAudGFyZ2V0Q2hyZUFwaU1ham9yVmVyc2lvbiA9IDE7CisgIGVtcHR5QXBwLnRhcmdldENocmVBcGlNaW5vclZlcnNpb24gPSAwOworCisgIEFMT0dEKCJMb2FkaW5nIGVtcHR5IG5hbm9hcHAiKTsKKyAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+bG9hZE5hbm9BcHAoZ2V0SHViSWQoKSwgZW1wdHlBcHAsIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RVbmxvYWROb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAxMjM0OworCisgIEFMT0dEKCJVbmxvYWRpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT51bmxvYWROYW5vQXBwKGdldEh1YklkKCksIGtOb25FeGlzdGVudEFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RFbmFibGVOb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAyMzQ1OworCisgIEFMT0dEKCJFbmFibGluZyBub25leGlzdGVudCBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPmVuYWJsZU5hbm9BcHAoZ2V0SHViSWQoKSwga05vbkV4aXN0ZW50QXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPmV4cGVjdGVkVHhuSWQpOworICBFWFBFQ1RfVFJVRShjaGVja0ZhaWx1cmVTeW5jT3JBc3luYyhyZXN1bHQsIFJlc3VsdDo6QkFEX1BBUkFNUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKK1RFU1RfUChDb250ZXh0aHViVHhuVGVzdCwgVGVzdERpc2FibGVOb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAzNDU2OworCisgIEFMT0dEKCJEaXNhYmxpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT5kaXNhYmxlTmFub0FwcChnZXRIdWJJZCgpLCBrTm9uRXhpc3RlbnRBcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPmV4cGVjdGVkVHhuSWQpOworICBFWFBFQ1RfVFJVRShjaGVja0ZhaWx1cmVTeW5jT3JBc3luYyhyZXN1bHQsIFJlc3VsdDo6QkFEX1BBUkFNUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKKy8vIFBhcmFtZXRlcml6ZSBhbGwgU2luZ2xlQ29udGV4dGh1YlRlc3QgdGVzdHMgYWdhaW5zdCBlYWNoIHZhbGlkIGh1YiBJRAorSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSHViSWRTcGVjaWZpY1Rlc3RzLCBDb250ZXh0aHViSGlkbFRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKGdldEh1YklkcygpKSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUChIdWJJZFNwZWNpZmljVGVzdHMsIENvbnRleHRodWJUeG5UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbihnZXRIdWJJZHMoKSkpOworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQorCmRpZmYgLS1naXQgYS9jb250ZXh0aHViL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL2N1cnJlbnQudHh0IGIvY3VycmVudC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM5ZDM3MgotLS0gL2Rldi9udWxsCisrKyBiL2N1cnJlbnQudHh0CkBAIC0wLDAgKzEsMTg4IEBACisjIERvIG5vdCBjaGFuZ2UgdGhpcyBmaWxlIGV4Y2VwdCB0byBhZGQgbmV3IGludGVyZmFjZXMuIENoYW5naW5nCisjIHByZS1leGlzdGluZyBpbnRlcmZhY2VzIHdpbGwgZmFpbCBWVFMgYW5kIGJyZWFrIGZyYW1ld29yay1vbmx5IE9UQXMKKworIyBIQUxzIHJlbGVhc2VkIGluIEFuZHJvaWQgTworCitmMjE5YzNiNWI4YzZjYjFkNjU5ZDRjNzMyOGY2NzI0NmFiZmUxYTg2MTNmNDY5ODI2ZmQzYjlhZDA5MDQxN2EyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJRGV2aWNlCis0ZDU3OWNhZTFjZDg3YTc4M2ZkNDkyMzNlMTBjZTcyMGJhMTgzY2ZkMWQ1Y2NkODAxNDllNjlkZTVjMWM3MzYyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJRGV2aWNlc0ZhY3RvcnkKKzIwM2UyM2YxODAxMTM5MGI4Y2QxMGMzMDNlMGMxNmM0ZWViYzhmYTE4N2U4MGU0MGQ2YmU0NjI0YzJiMDg0OGEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklQcmltYXJ5RGV2aWNlCithYWY5MzEyM2RlZWMzMzZlYjI0N2FkODA5OTg0OTQ2OWE1NDFjYTBjZjdjMjhjNWY1MzM2Y2ViZTFlZTg2NzQ4IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtCiswNDY4YzU3MjNiMGQ0NGM1YjQ1MWJkZmEwNjE1MzAwMGM2ZjM1MmZkMzMzNmUwYWQyNjk3MTI3YjA0Yjc2NmRmIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtSW4KKzcyOTZmNzA2NGZkM2FiMjQwODJiNDNhMWRhMzRjYzg3NjI2ODA2NTMxMGI3ODU0OTlmYmE1MTc4ZDA2MzY4MGEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklTdHJlYW1PdXQKKzE5ZDI0MWQ3MWMzZTExNDBhZmJhODE0MGRjYjU3NDQ4NDQ2MDI1YTVmYzAzNzM5Nzg4YzRjMjVlOWE5OGI2YzIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklTdHJlYW1PdXRDYWxsYmFjaworYzg0ZGE5ZjU4NjA4NzIyN2RhYTNiOTZkNDJiNDU3NTMyNmJjY2ZkNWJjOGEyYTVhY2Y4NmQ3NzRmOGVhMjY0OCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6dHlwZXMKKzEzMDU3ODZjMDZlMjJiOWIyNGViZGUxMzYwNTRjYzgyN2I2M2M4NmQ4YmY0YTEzNmQ2ZjdmNTQ3NTJiODU2NmIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOjp0eXBlcworZmE4ZmJhZTNkMWRhM2MyNjRlNGYzMTEwNzI4MDc2YWJjMDliNGU2NWYxMmFmNmFlMTM2MzY3MzI4ZGU5ODhhYiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdAorY2E0NzUyNTQ1ZDU0NTQ3ZmYwNjllYWUxNjFhZjc1NTBjYjVmNWE3ZThiNjAzMTZkZGQxMzJhMzA5MDZhNjhlNyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdAorZDJiOGFmOTg4ZGM2NmY1MTRkODg2YmNlZTQ0YjQ0MGQ4MDM0YmMyYTc2MmY3MTYxNzE3ZWYzYzk1NjA3MzA2NyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklCYXNzQm9vc3RFZmZlY3QKKzYxMWJjMDljNzVlNzk2ZjM1MTJiMWNhNmJlNTA4YjBhOWJhOTk2NzU5YjhhMmM2MDUwNzc4NGZmNTgwNzYyMjkgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRG93bm1peEVmZmVjdAorMzZhNTczNjlkZmRjNzUxODBlOGI2NGFlODBiMTk3MGRiOGY2ZDkwODVkYmZmNmNhOTMxNzE1MDM4Y2MwNTZlMSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFZmZlY3QKK2QyYWEyZGY2ZDE4OWM1ODBmNWJlODQ2MGZhMGZmNDEzNGQ5YzA1YTM4M2YzMjA0NjU5YmFlZTQyNmE2ZjBlZGYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaworMjE3ZjkxNjE5ODNhNDhkM2JmM2ZhZWIxNThmODY4YWE4YmYwY2UyNTg4OWU0ZWUzZDJiYWIxYTJlOGQzM2U3NyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFZmZlY3RzRmFjdG9yeQorYzJiMzhiYzA3OTkxZTg4MGM4M2NhOGNiODgxODE0MTFlZWVmNzA4YjhiOTM2YWVkZDJmMmUwYWNhZGU3ZGY2OSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0CisyZmY5Zjk3MDRiZTVmMTY3NzQ1YjRkZTc5MGU5ZGFmYzNjYzQ3MTllMmY2ZTJlNTQ5NzA4NWU2Nzk4NTNjZmU3IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVxdWFsaXplckVmZmVjdAorYzMxNDQ3ZmIwMmRiYzhiNTZjMzU5OTQxZGFkMjJmNDE2NTExODYwMTczYzVjNWZkMjc4ZDFiZjIzMTJiMTNkZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0Cis4MDQ4MzFjYTI1ODgwMmViM2ViNjVhMGE3YjVkNWUzZDM3ZDRhMTViYThjMjgzNmI0Mjc2ZWRhOThiNDdlMWQwIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QKKzc3OGZkNWI5ODM3ZjQ4MWQ4ZTQ3NDI1YjNlMmEzYmQwYzYzNjJhMGI2ODcwMjkxNTE4ZTJkODYzNTMwZmRiNjEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJUHJlc2V0UmV2ZXJiRWZmZWN0CitjOTNjYjI1YTFhOTJkMDdhYTgwYTYxN2MwMWU4ZDIyZmM5N2JmOGNlZmQzOTYyYjZhNWJlMzg2YWQ0NzA0ZDg5IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVZpcnR1YWxpemVyRWZmZWN0Cis5MThmMzMxNzgwYzljN2IwNGYyMTUxYTJlNTYzYWFiMDg4MTk4ZWRlOGU2Zjg2NTMwMmViYWExMzkwNWJkOWNlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVZpc3VhbGl6ZXJFZmZlY3QKKzRjYWFkMDk5ZjhmYzAwMjYyYjZjMDNiYTQxMjcxODA4YjM3Y2VhOTBhYzk4YjUzNDI5OWJiZjRlZTgyM2FmMDIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjp0eXBlcworZjI5MDRhNGMxMDhhZDFiOTNlYjJmYTRlNDNiODJiZDAxY2UxZmYyNjE1NjMxNmU0OWQxZDlmYzgwZGZlY2FhZCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0NhbWVyYQorOTRjYmE2YWQwNGM4M2FhODQwZGUyZWQ1MmI3NGJhMjEyNmEyNmRkOTYwMjI1ZTYxYWMzNjcwMzMxNTI3OWE4MCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0NhbWVyYVN0cmVhbQorNWVhMzZmYjA0M2Q5ZTNiNDEzMjE5ZGUzZGZkN2IwNDZiNDhhZjRmZGEzOWYxNjdmMzUyODY1MmU5ODZjYjc2ZCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0Rpc3BsYXkKKzE0ZWY4ZTk5M2E0YTdjODk5YjE5YmI1ZTM5YjViMGNhZmQyODMxMmVhMmIxMjdlMzViM2JlOGYwOGUyM2ZlOGUgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA6OklFdnNFbnVtZXJhdG9yCiszYjE3YzFmZGZjMzg5ZTBhYmU2MjZjMzcwNTQ5NTRiMDcyMDExMjdkODkwYzJiYzA1ZDQ3NjEzZWMxZjRkZTRmIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOjp0eXBlcworY2RlMDc4N2U0YmY0YjQ1MGE5Y2ViOTAxMWQyNjk4YzAwNjEzMjJlYjg4MjYyMWU4OWI3MDU5NGIwYjdjNjVjNSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCis4MGZiNDE1NmZhOTFjZTg2ZTQ5YmQyY2FiZTIxNTA3OGY2YjY5NTkxZDQxNmEwOWU5MTQ1MzJlYWU2NzEyMDUyIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworMjQ4MDA0ZjA4MzJiNDgxOTk1NThiZDVkMWFhY2MyOWU3ZTY0MjNkZDBmZjYwMTJiZTE0MmUyMzYyMWYwM2Y0YiBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzCisxZmJkYzFmODUyZjhiZDJlNGE2YzVjYjMwYWMyYjc4NjY4Yzk4ZGNlMTE4YTYxNzYyZDQwMzRhZTg1OWY0M2Q4IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQKK2FhYmI1YzNjNTg1NTkyZDcxZWU1N2I3NzI5OGMxNDk5M2Q3NzkxNGRkZWFhNjRiMmM1MTA5YTYwMmIwMmVhNDcgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisxZWM2MGQ0ZWZkZGFlOWE3YjI0NjkyNzhhNTc2OTY3YjQ3NTFlODhkZTViOGQ3ZTlkZjZlZmY2YmMwZGE3YmM5IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzCiszNDdjZTc0NjgxNTYwNzU2N2Y1ZjNiNTNlNDgwMDk5OGNhNWFiOTM1NTE0MWYwODgwZmMwY2YwYzFmYzVjMzU1IGFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMDo6SUJsdWV0b290aEhjaQorODM1ZjQxYmUyMjgxYmZiMjJmM2UzM2M2ZmE4NzBiZGU3YmMyMWUzN2U1Y2ZiYWY5YTM2ZmZmMTcwNjMyZjc1NCBhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjA6OklCbHVldG9vdGhIY2lDYWxsYmFja3MKK2E4ZGZkMGRiZTQ2M2EzY2RiY2YxZDk4NWIzOGEyOGIzZDkzYmEyYWU1YTFkMWRiNGFhZWY0YzM4YTU3ODFiOTEgYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wOjp0eXBlcworNzE5MmQ3NTZhZWJhMDBhYmEzMmY0NTA0OTgxZGY4MTcyZmZjYTgzZTIxMGM0ODM4ZGFiZjI5NWU1M2U5MzU5MCBhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wOjpJQm9vdENvbnRyb2wKK2NlYmFhODAzYjhlMzM4MDdhMGQ2OWY0NjY1MmI2NTBjY2I1NDllOGY5YjE5ZDZiZWNiYmYyNjY5MGU4MjhiNDkgYW5kcm9pZC5oYXJkd2FyZS5ib290QDEuMDo6dHlwZXMKK2E5OGQ0OWYyMzcxMmE3Y2MzMjdkMWUwNjAyZDA1ZjZmM2FkMzJjZmI1Yzc0NzExZDAwOWM3MjY2MTFlZTFjOTMgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA6OklCcm9hZGNhc3RSYWRpbworZWQ4MjU3OWMwYzE2NWZlYWExMmQwZTMzYzA2YjMzNDJhYjQxZWMwYTQzOTI0N2YyMDI3NzVlODM2OWU0NmVmNiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeQorZGE2YWIzMmVlMjc5M2QyYzg2ZDNiNjAzMDc1ZDUzODM4NTJiODlkN2VhYTIwMTg2MWFhMDQ3M2Q0MThmM2M3ZiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SVR1bmVyCiswNGQzY2EwMjJlMjVjMzA4ZDllZmQyZTdlYjc3YjNhN2EyMDY5MDdjZGMxYjllYTkzMjYzNDBiMzc3ODY4MTcyIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOjpJVHVuZXJDYWxsYmFjaworYmQ0MmM4ZDc4MzhjZmVkMTk5OGI0OWMzOTc0NWRlYzExNmQyZDZlZGMyYzExYTRjMDM5OWI4ZjNhMWQxNjU1YSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6dHlwZXMKKzgxMTY0MzIzMTE1ZDY1ODhlMjU5ZTgzMTlmZGRmNzQ4N2FkZmExZjQ5Y2U2MGY3ZTgwYmE3NGUwNzgzMzkyYTQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMKK2MxNzA1ZTlkNjI0MzhhMWQ5NTUyNjk5NjVhZjkxNWFlMjhlNjkyYmQ0ODBhM2IxY2U2NzA1NmZlZjk5MmQ2MmYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZQorNzhlOWI0NGNmODY2MGJkYzFlOThkY2EwNzQ1MTgwNDE1MzgyNGVmY2QyOGRiMjA4YTYyZjVhZDcyOGY0NDA3NiBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sKKzI4ZjAzODZiYTg2ZGRmNDFlNTNhODExN2I0OGEwMzI4ZDdhNGQyNTc0MjEzZTg5ZjRhMTA2MjM5OGEyNDQ1NjYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjaworNGRiNDg0MzljZTlkZGU5N2YxY2ZiM2Q3NDA4ZjZjNzM3ZjYyMWFjMGY3NDk0YWVlYTM1ZWQ1OTliYzIzNTJhMyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOjp0eXBlcworYjMyZjlhZWFmMWM0NDIxOTVlYjA2ZmZjNzYwMDk2OGM5MTlkMDA1YjI3MTg4NzRmMDljNTcyODdmYWU1NTkxOCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlCis2M2JmYzNkYTBmMmQyMzAxZjdhMDUwOGM3YzJiOWZmYzUyMWQ0ZDU0NWVlMDM3MThkYTcwZTlkNjI3M2IzYjIxIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI6OklDYW1lcmFEZXZpY2VDYWxsYmFjaworMGZhM2UxZTY0ODE5MjgzYjg3MzdmYzRlNWFiNzU5ZjBjYjRhYzFhOTk2ZThhNTFjYzRhYTgwMjVhNDU3MjA4ZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbgorMDMwYmUzZDJiMTU5Y2JkZTc5MjA0ODU4MDcxNDBmNmI2MDY0ZWY0YTVkZTRhNDBhNmM0YmM4ZDJjNzJmN2NkMyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjp0eXBlcworNWJhNzk0N2NlZTUxNWQ3YTIzNTliZmNiZmI5Njc4YzFjM2E3NjhjMjg4NDcxOTE5YWMwOTViOTZhZTZmM2Q0MCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzCitmN2UyOTlkODUwMzNhYzUyZDEwOTVhMzU3ODRmY2ZlYWZmNDM2MDNmNThjNzUxZTQxNTNjODViYmFkZTNiMzMwIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDo6SUNhbWVyYVByb3ZpZGVyCithNTAxY2ExYWVjZDA5ZjFiOWZkNzBhOWFmODQyMDU0MzBkYmQ0OWE4MDhlOGZhMzk1ZDM2M2I5OTAyZTZmNThjIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDo6SUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2sKKzdmNWZlOGY0ZjhhMjQwMzcxNTNjNTA0ZDhiNGQzMzEzYzJjZTMzZDgxYzhjNjlmZTUxOTRkZGQyZDQwODBlNzIgYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjA6OklTdXJmYWNlRmxpbmdlckNvbmZpZ3MKKzg3YmVhY2M0ODE4OTdjZjAyZmIxNjI4ZDc1ZTY4MTMzZGU2ZDc0ZDRjZmZlNTgyY2RhMmY1ZTE2YmRkNzQ1MTYgYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjA6OnR5cGVzCithNWFlMGZlODY2N2YwYjFhZjA5YjEzZTcyZDI5NjAwZjRlYjM4NTNiMjU3MDc5YzQ1YTk5YjZmNGEzMzYwNjQ5IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViCisyYWIzMDU0YzJkOTMwMmQ4NDE3ZWU3NDk1MzUzYTI4ODdmZTMzOGY5MTMyNzZmMmViNDFlODBmMTEzOTVlYzJlIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKK2MzYjJiMzdkNTYxZDMxZWEwOTQ0MTFmMjUxYmY3M2JlYTMzNGY0ZmU4NDlhNDM5MGFlZjVlMjBiY2E2Y2FkYmEgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMKK2RmMTc0YzE4NzFjODY0YjRjNzljYTlmNjRhYWU3OTM2ZDI0YTI3MmVjYTMxOTFhMzA0NThjYTJiNzA2ZGVjNzkgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJQ3J5cHRvRmFjdG9yeQorODM2MzllOTBjYWViOTk2YjAyNzRlNDIwZGUzY2Q1NTY3NzlkZTFjYTQ4NDY0YjY4ZWVlNzk5YmVmMzJiMzRjZCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OklDcnlwdG9QbHVnaW4KKzE0NDBjZmZkZmFlYjEyODMwYWMxMGVlNmZmZGIwZjEwODNlNzAxMDU3YjgwNmRmMTFmYjQ3ODdiNGM5MWU3MTggYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtRmFjdG9yeQorNzhiYTMzYjEwOGY2MjBlNmEwZWVjMDFlZjY1NDU0N2U2OWE4NTc1NDU3OGVhNGM5ZWYwM2VjMjA1ZjE2MTIxYyBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OklEcm1QbHVnaW4KKzcwMWQ5ZTUxOTUyMTcyMzY0ZTRlYTcwZGI5YzM5N2YwOGMzYjQ1NzdiYTMzMDUxZjA1MGE2Y2RkNTMyZGUxYjQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtUGx1Z2luTGlzdGVuZXIKKzQyMzhkNjJhZDkwZGY2M2FhMzM4YzZmMWI2MjY0YzA5YzVhMzcwNjk0NWQ1YzQ5ZDExODljMGJlMWRjOWU5NDIgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjp0eXBlcworZjA3YjFlZTNiYTExYTJmYzlmMjAwNDIxYjJlMWFmYjdjMTg1NGVlOTg3MDAwZTQ1Yzk4N2ZiOTUwNzc5NTA1NSBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjA6OklEdW1wc3RhdGVEZXZpY2UKK2M5ZDMxOGRmNzkyMmJkZTNiMjY1OTI3YjUyMWZmNWE5NjUwMDI4MjZmYzBjYWJmY2FlZjUyYTU2NzYwZjJkMzQgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6SUdhdGVrZWVwZXIKK2RhMTNiZDY5MjgyZmIyNzU3NjdhYmIxODcwNGM1N2ZmODAzOGU2YzEzOWFkMTcxNTdkYzcwMjgxMGY3MGQwNmEgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6dHlwZXMKKzM3YzdkYTRmODIzZWM5NThkZmE5Yzk2MGUyZDM0MWM0OGY4NzdlMGJmYTc1OGYzZmE5ZTJkOWMxZTFiZDY2ZDkgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzCis3ZWM5YWZkYjk2NGJmYjgzNjk4NjY5MTNjYWYwMThmMjYzNjU5Mjg4NWJjYjU1OGE2NWRlMmM1NDM2YWI0ZjYwIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc0NhbGxiYWNrCitkMTZlNmEzNTliZTY5NjNlYTc1M2Q3MTM4ZTg0ZWNmMmI5MzA1MjA5NzkzODkzOGM0ZDM2ZDdhNDdlYTJlMmFlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorMmY5MDc3MDhkNzRkOTRiMWUxMjFlZDI3NjUxYzljNzJhZjY1OTUyZDM0N2I1OGZmMDdkYWM1ZDVkN2E3ZjY3OCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NSaWxDYWxsYmFjaworNWFjN2VkYWQwNmQ3NjA2NGI4ODJiZTE2MWYzZjlkOTY5MmE5OTdlYzcyZTlmMzZhZGRiN2ZlODkxOGY0OTk5MiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zcworYjA1Yzk4M2M4N2MzMzc2ZTE0NTIyMzY4OGMzYjU0MWI1ZTExYjgyN2YyMTFlMzhkNWEzMWFmMWNhM2EyZTIyMiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0JhdGNoaW5nCis0OTgxZDJkMmM0ZTcyNWM3NTQ0YmUwOTU2MDk5YTkxZmM3YmJjODA0OGM1NjMzOTQxNTgwODNmZTkyNGU2NTFlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmdDYWxsYmFjaworM2NkMjJkOTJjYzFmOTM1MTUwYzUwNDgzMTBlODQ4ODZmMTRlZWQyNTU2ZThmMDA2MzY3MzNkMjA0MDQ1Y2M0ZiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0NhbGxiYWNrCisxNzUxODVhNWVkYTg3NDc2MTkzY2E1NDYxZGY3NWRkMTZkMzY2NjQ1OTFlODEzMDUzMGRkOGVmMGViMmRkZjZhIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorNDU0MjEyMmI5NmZiZjI3MTAxY2I4MjIyYmFmYjc2ZTdjOGQwMzJkOTc3ZGQxMDU4ZWRkOGU1ODgxY2E1NzUyZiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0RlYnVnCitlNmRkMGM4NDE2ZTUyM2FiOWNiZDE0ZDU2YWI2ZjAxNjQ4MWE4YWVmM2JjOGE3NTAwNTExMjJkMzEwNzVmNmM3IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzR2VvZmVuY2VDYWxsYmFjaworZjkwZTRkZGM2NTI3MDYyOTlkOGUzZDhiYTE4ZTA3NDVjM2JhZTliZjRkMWJlNmJkMDZkOWMxZjUwZWM4ZDI4YSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKzllYTg5ODdiYjEwODljOGM1ZDdiNjc4NjY1NzViODY2ZWY1MTYwNDUwMjFkOWVmY2MzN2M2MzUyYmNlMDcyYTMgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudAorY2YyMDQ5MjY3M2Q2YTQyM2U0YzJlODdmZGZiNWE0YzRhNjAyNDMxNzIxOTc4ZGI4NTJlMjQ2ZjI1OGUyNWVkYiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc01lYXN1cmVtZW50Q2FsbGJhY2sKK2FmODVhYTBmNDhhZTk5YTM5ZjQ2ODhjMzQ0ZTQ0MTkzMDRmNjgxZjlhZjgxOGE1YzhkNzU5Mjg2ZmM0NDE4ZGUgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZQorNzZiMDg3NGVhNGMwNmIyOWY2NjQxOGM1OTgyMGY0Mjg2YjNiZTk2MjljZDg3MjkyM2QwZGZiYjYwMmNkNDMyZCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sKKzI0OGJjZjUxZGE0MjczZDY0ZjM2N2JmNjg3N2JhZWYyZmVlYWNhMzY1NDU5ODQyZmQzYzIxNGEyZGM2ZTAyMjQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaQorYzc4MWI3YjEyNWY2OGJlNWRiOGE4YzNkNDEyZDUyNmFjZGJkZjc3ZGNjNTkyYTRjMGVkNzBiOGNlNGZlNmM0OSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pQ2FsbGJhY2sKK2MxMTQyNjU3ZGUxNmZkYjI5MmE1MDIzNzJmZTkzODYxNGQ2NTI3MGFiODM1OTIxN2Q2ZTEzNjA0ZmU0ZGJjYTQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCitiZDM2NmI4M2Q4ZDU2NWQwZThiZmFiZmYzYWRmY2FiMDI1OWQ3NWI0ZTJhOWY4ZTFiOTFlMTFkMTU5M2EyZmZiIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzWHRyYUNhbGxiYWNrCis4ODFiYzJmOTQwMjY3ODRkMTk0Y2ZmYmZmMTY2YzZlOGJmOTExZGU0ZTAyYWJlOTZmYzdkODllYzc1YjA1NzRhIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzCisxNzk3MWViOGE0ODI4OTNkYWRjZmMxNmUwNTgzZjQ5MmQ0MmEwMzRlZjk1ZDliMGI3MDk0MTdhZjMwODM4Mzk2IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMDo6SUFsbG9jYXRvcgorNjBiZjQyYTQ4OThlNGZiNzBkYmQ3MjBiMjYzYWVhZmQ3ZjM1ZjVlMWE1ZWZmZWFiYjRkNWQ2NTk4NzhhNWYxOCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcgorYjhhNzU2MTdiOWVjMTJiZWE2NDFmM2E3M2Q0MDI1YTMzZThiOWEyZjkxNjlkZDQ2MDk0YWY1NmFkZjkyNDljNSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SVByb2R1Y2VyTGlzdGVuZXIKKzRmNmRlZGJjZGQyMWMzMDlkZmM2NTBhY2VhODFhMDk2ZDZiMjQyNDkzZmZlNDljOGQ2MWJkM2M0M2FhZDM1NGUgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcworYjNhYWM2YzM4MTdmMDM5OTY0ZmNkNjIyNjgyNzRiMzAzOWUxN2JkN2QwZDViNDBiNGQxZDFjN2IxOWExZjg2NiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyCitiMTlkMDBlYjhhOGIzYjAwMzRhMDMyMWYyMmU4ZjMyMTYyYmY0YzJhZWJiY2U2ZGEyMmMwMjVmNTZlNDU5ZWEyIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOjpJQ29tcG9zZXJDYWxsYmFjaworZTk5MjY4NGU2OTBkZmU2N2E4Y2JlYWI1MDA1YmZhM2ZhOWMyYmYzZDRiMGI3NTY1N2ZiMWYwYzJkNWRkMmJhZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyQ2xpZW50CisxYzk4YzJmNTE1NDM0NTMxMmVjMDU0ODcxNzkyYTI5ODJlYzVmM2UyYmMyYWJmYjYxYTEwYzBiNTE3OTc4ZTIwIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOjp0eXBlcworYTY5NTg5ODU4OWUxZWYxNWIyYjI1MTBmMTFlZGQ2YWFmYWM5OTE4ZDljZjhkNzRiNGI2MTQzYjMwOWRlZTU0MiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA6OklNYXBwZXIKKzI4NTA3ZDM4NWEzZGQyMjRiZjNjMzJmMWJmZDlmOTYwOTJjNDcwMWI5YzFjYzY2Y2FhNTc4ZmMzZWZjOTc4NzcgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOjp0eXBlcworOTFlMmJhMzgwNWM5MjNmMDFmYzEyMzFlYzlmZjgzODk0MmFlZTMzNDZmMmQ3NjE0ZWNjMGNhZWFkYmU1N2VkNCBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OklIZWFsdGgKKzEyNzVhYTJlODczMjkwOTEwMWIyNmFlYzQ5ZWQyMjg1NDg5ZTg5ZDk3Yjg2MTBhODkwOGI3ODY4ZTM1YTNjYzUgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcworM2E4ZDM5MjJlMDZlNmQ0ZjhlMGJlZmM2YmU3OGQwZTllMDdhZWQxNTg1YjNkYTY1MjFiZWQ0MDZkMjVhOTQ4MyBhbmRyb2lkLmhhcmR3YXJlLmlyQDEuMDo6SUNvbnN1bWVySXIKKzcwOTBiZDM3OTEyZmNmNzIzYTEyZjRiYzE3NzgzZTM1Mjc1NzdjNDk0NDgwNWEwMjhjMjk2ZmQ3YTk1YmQ2ODIgYW5kcm9pZC5oYXJkd2FyZS5pckAxLjA6OnR5cGVzCitjYzc5MjVhNzhjMGFiMDIyNTE1ZjQ4ODQwZDNkYWU3NmYzODRlZDNhMTI4N2FiYWRjYjQ2MWE1Y2Q1Mzk2MTYzIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMDo6SUtleW1hc3RlckRldmljZQorODIyOTk4ZDdiYjc2ZjBjZDcxOWE0MDkyOTE0MzRmY2I1NmU2ZDUwYmM0NzgwNzg4YmIxNTdhMzM3NGQ2M2I4YyBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA6OnR5cGVzCitkNGVkMmYwZTE0ZjllOTE0ZDBiMTI3NWQyZTAzNjMxOTJmZTMwYWNhOTA1OWM4NGVkYjVmYWQxNTk5NWY5ZWM0IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjpJTGlnaHQKK2Q5NTg0YmZjYWVkZDZlNjJjZjMzNzg4MTc0ODI0NmIyM2UzNmNiYzJiYzNhYTg0YzAxYjZhMWU2MjIwNjE0MDAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzCisxNmMwY2YwZjczZGUxZTUyMDhhOTUwMjBjNmM2NDc0OTAzZTcwOTRmNzZiMmQ3ODI2NTFhZmFjYTBlNWZkODZmIGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjp0eXBlcworOGJjMmY1ZmRjYWQ2ODg1NmViNjFhNjJmZTRjYzA0M2ZhMDY0YmI3ZjFkYWI5NWE3MWQxOTE4ZWMxZWVmN2I1NSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklHcmFwaGljQnVmZmVyU291cmNlCiswZDNkZTljZDg5ZDQ3MThlYTNiNzcyZjJkOGI5M2JlMDA0ZmViM2FiYjdlN2RjNTQwMmUzNzA0N2NjNzMwZDA1IGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDo6SU9teAorMzIwMDJlMWMzNThjNjRkZTEwNmM5NzdhNmRjNmFmN2RhMjdiZTQ4MDNhNWJiNjZmZDZmODkxYTViYTBhMTYxNyBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhCdWZmZXJTb3VyY2UKKzgxYWQ4ZDhiYjFjZjZmNDE5MjNjZjExZGQzOTM1NGE4ZmU0MzNkYjI4NGEyMzRjYzY3NWRlN2U3NWE4MjIyNGMgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJT214Tm9kZQorNDk0YzBjOGJmNjA2NWVkYzgyZWMxMjcyMjhlZDE5ZGQyMjQzZGMxYzJmN2Q2MDFjN2M2YmU3YjcwMTVjMTcxMyBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhPYnNlcnZlcgorMjUyYzJmYzUwYzc4ZmQ2ZGU4MzY1ZTViNjBlNTExNTExOWFjZTEwN2RiMGI5NGIwYjI2ODE1Y2JmM2QyYjY0YSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhTdG9yZQorMTQ4YzFiNTBiMDk1ODk4ODM3MzE0NWZmZGY1ZmEwZTFiNjUzNGUwYTIwMzRhNTcwZTc0YjE1YzEyN2NmN2M1ZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OnR5cGVzCitjNjY5MDJmZTQ4ZDY4N2FjNjc0MGEzZTMyYWU1NWZiNzU1MzJjNDhjMzZjNjM4NjQ2MWMyYjQ0MTZhZDJlMGYxIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjpJTWVtdHJhY2sKKzg2MGJhY2Q4YjExYTI2OWM0MDU2NzU0MmI2MTNmZTRjYTQ0OGQ1Y2I0MzI2ZDAwNTg4OTllNjA4ZTg5ZGZjYTEgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzCiswN2FjMmRjOTUyNzAzMjFlYzdkNGMzM2NkMjVlNTA4NWEwNTdmNDdmZTM1MGQ2NDVhZjZmN2E3YTExZTNjZjU3IGFuZHJvaWQuaGFyZHdhcmUubmZjQDEuMDo6SU5mYworZjJmZTU0NDI2YzA3ZDY3Mzg4ZDQ3NzRhNjA2NDFhZDRjMDUzOGYyMmViNmUxMTExNzIyZjIzMTc3MjY1NWRlNiBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OklOZmNDbGllbnRDYWxsYmFjaworOTYyNmZkMThkYjExM2Q3MDlmYWY1OTNhNzBjYWYxOWJkMDk4MDI5NGQyM2M0NjhjODBjMzAxODZmOWQyOThhNiBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OnR5cGVzCitkZWVlMWRjNDk0OGYzM2FmMjA3ZTEwMDhhYmEwZjZjYzA3YWZiNzkwMGVhYjUzZjMzMTkyYzhjYWMxMzdlZWZjIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjpJUG93ZXIKK2VmYzgzZGYzZjk2MmI5M2M3YzAyOTBkNjkxZDdkMzAwZGFiZTEyNjgzZTJjZGUzNTkxZmIzYzBiZWVkY2UyMGYgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzCis5YjVhYTQ5OWVjM2I0MjI2ZjE1ZjQ4ZjVlZDA4ODk2ZTJmYzA2NzZmOTc4YzllMTk5YzFkYTIxZGFhZjAwMmE2IGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJUmFkaW8KKzVjOGVmYmI5YzQ1MWE1OTczN2VkMmM2YzIwMjMwYWFlNDc0NTgzOWNhMDFkODA4OGQ2ZGNjOTAyMGU1MmQyYzUgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OklSYWRpb0luZGljYXRpb24KK2M1ZjIyMjY0YTMxNTYyZTAwOWJiMjg0Mjg3MDUxYjc5OThmYzQ2Y2QzMjk0ZGY2MWM5ZTZhMWQ2MjIxODQ5OTMgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OklSYWRpb1Jlc3BvbnNlCitkZTNhYjlmNzNiMTA3M2NkNjc3YjE5ZDg4NmZiOTI3ZTkzODFiMzAxNjFhNzA0NzEyZDJiMzBmODc1ODczZjVjIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJU2FwCitkMTgzZTQwNmVmMDg5N2RmMjExN2E5ZGRlMzg0ZThlNmVhNGZhNmFiMWM3ZjZmMjhlNjViODcwMTEyMThjOWVhIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJU2FwQ2FsbGJhY2sKKzk2OTg2ZmJkMjJmMGU2Y2E3NTJlMWZjZGMwYTY0YmRhMjEzOTk1YTgxZjVmMzZiYzRmYWYzNTMyZDkzMDZiOTcgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OnR5cGVzCiswMGY3MDA4NWQ2ZmFlMWQ0ODJmYjcwMGEzZmQ0MmVkNDc1Mzg0Yzk1YjUxYzkyNjliOWFlNTAzN2I3NGFkNGRkIGFuZHJvaWQuaGFyZHdhcmUucmFkaW8uZGVwcmVjYXRlZEAxLjA6OklPZW1Ib29rCiswNjgzN2I2ZDdlODQzY2ZhOWNkMjBmZWQ0MDcwZmVjYTdhOWI1YzgxYTllZDY0M2JmN2QwNjgwMzQ1NWE5ODE2IGFuZHJvaWQuaGFyZHdhcmUucmFkaW8uZGVwcmVjYXRlZEAxLjA6OklPZW1Ib29rSW5kaWNhdGlvbgorNmZkNDg3NGYwZWRkZDQ2MjZhMjc2NThmZDk0ZmFkNTI2YzMxN2YzNTYzNDM5ZTc5NzE4YmRiMWEzYTIzMDlkNSBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWRAMS4wOjpJT2VtSG9va1Jlc3BvbnNlCis2OTgzYTJjYWZlMzlkNWM1N2RmZGMxNzQzMDU1ZmIwZjc1N2EwZGY4Yzc4ZTAwNDIzZDVlMTgxMDgzNjkyN2UxIGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6SUNvbnRleHQKKzdmOTQxN2EwY2NmNzhlYTA0MmVjN2E4YWM4ZTM3NTAzNDZkNGQ5ZDdlNWFlMDFiMWIzNWZkZTMwM2Y0N2MyNGQgYW5kcm9pZC5oYXJkd2FyZS5yZW5kZXJzY3JpcHRAMS4wOjpJRGV2aWNlCitmYzZmMzI1YjI2NmIzMjM1M2Y3ZDE1MzRmYmU1OGUwZDM2ODI2NWExMmI3N2ZhMzk2ZmI1NTZlOGM0NDNmNzM5IGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6dHlwZXMKKzg5NTg1ZmY1NDFjMzE5ZGU0MDkxYTVhMGI2ODdkZDUyNmFjODFjNjM4MmZmZDdiOTc5YTQxNjRiM2Q3NDE5YTYgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDo6SVNlbnNvcnMKK2UwNGFiOTc4ZmMyOGY0YzUxNWY0YTc1NjE3ZGZkYTg2MDc3MzNhNjRmMTM2NjZiZWViMGU2MDRhMDdhMzkzMzMgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDo6dHlwZXMKKzViZWZjMDE5Y2JlOTQ5NTM2NjFlMmNkYjk1ZTNjZjY0ZjVlNTY1YzI5NDAzZTFjMmRhZWNjMmJlNDRlMGE1NWMgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjpJU291bmRUcmlnZ2VySHcKK2Q3ZWM1ZjYxMmE1ZTBhNTllYTRmMmI2MTMxN2UyMDhmZjU2ZGQ1MDkyMGZkNGViNDQxZTBjYmM4Zjk3ZTRmNDkgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjaworNWJlZTllNzBmN2U1ZWM3ZWUyNTI4ODNiMjhmOThmMTJiNTk5NjBmNGMyYTBiNGNjOWE0NTI2ZTQ2NjllYmNkNCBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA6OnR5cGVzCis5N2YxZWM0NDYwNDNiYzVhNjY0NWI3NDUyOWE2Mjc2NDk2YmRiMzVlMGFlZTQxZWRhNTVjYjkyZDUxZWI3ODAyIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OklUaGVybWFsCis4NDk2NWE2OTA4YmNlYjRlZjUxNTQ2YmY4NzMxZjMwOWYxZWE5ZDA5YTAxNzdkY2M3OTc0MTMyZTUyM2RkNmQyIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzCis5Mzg4NTA2MjFjM2M1ZWY0MjZhNGI4OGU3NTJiYTk5YjM1NTkwMzdlNzgyYTNkOTM4NjA0ZjNhZWY1Y2MwZjFiIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKK2U3NWI2ZWVhNzExZDM2ZmFjNjc4YmNlMDcyYjNjZWM2NTQ0YjI3ZmE5ZjRjZDkwMzk5OTQwNGU1YzExMGNhMTAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCis2ZTI1ZjhkYmZhZGI2NjhlMWQ0ZWM4MGViOWFjZDk1ZDhiYzllMGEyNDBjMzZkMjdlNjYyYWRiNDQwMzE0Yjk1IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMKKzBjYWZhM2M4Mzg4ZTk2MzE5MTZkMmQ4MDBmNzhkZWNiY2VjMjkwNGYxMTQxNWIzMmM3MWEzMWQ5YTUxZWJmNzkgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA6OklUdklucHV0CitkZWU4M2U1Yzg2NGZiYmVlOGYwMjQ0OGQwODAwYmUzMmYwNjg1NjM4NmI5ZjkwN2JjNWQ5NTIyMDhjOTQzNGY5IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjpJVHZJbnB1dENhbGxiYWNrCiswN2FhYjMwNDEwYjYxMjM4MTIzNGRjYTZkNDUzZDRhYjk2ZjJlNTM2MzY4NzE1NzE3YzZlMjgxMDFiOTg1MWI1IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjp0eXBlcworNGVmNTc0OTkyNzNmMzhiZGJkZDBjMTVlNTZlZTdhNGJjNWYxOGE1NjQ0MDkyMTcwYTUzMWRmMzU0MWQ5ZTAxNSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKzRiZTc4ODFlNDExYmE0Mjc4NGJmNWI3MzU0YzE0YWUwY2YxNjEwMDRkMzk0MzNhYWVjYWFiMGQxOWVhOTkzNTQgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiQ2FsbGJhY2sKK2Y3ZTZlNzQ3OTEwYTNjZDBhMzU4NDYxNDFlM2I5OTBhNmE2MTJhMjk3YjJiNzBjY2Q1NzQwYjY0NmE0NTBhOGMgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcworMDZlYTY0Y2MzNTY1Nzc3ZjNiMjU5ZTQwMGZmYTcxMDBkMDdmMzgyN2FkOTM1N2IwYzVkM2M2NTEzODRlNTU1MyBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6SVZpYnJhdG9yCiswZmVjZDM0YWU2NGYzMmVmZjZhYTYxNWZkNjYyMzQ5MjQyYzBiOGI2ZTMwM2VmMDVhN2NiNTc3NmM3MzJmNDEzIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcworNGI5NjI5NjhhN2RmNGFiMTA0ZDEzMTVkNjZhMGE3MzQ4YTcxM2ZlY2JiNWQyYzFiMjM2ODg0OTQ0NThmMzdjZSBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCitiOWJlMzY3MTlhOGFkNTM0MDAwYTUxZWEwN2JlOTFiZTk0YzQwNWJmMWUwMzhhZTgyNWFjZjY1MDg3ZmZkMzc4IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpCitlZTAyMjRlZTE4ODEzNTA2ZDlkNmYxM2Q4YzhlNDY3OWYwNTNjMjkwYTQ0M2E1MmE3YzUyYTVkM2M4NTIyNjJiIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpQXBJZmFjZQorZjNlZWNjNDg5ZGViNGM3NDg5MmY1OWViN2FkYjc2OTA2M2JkNWMzNTRhYzEzMmI2MjZhNWY0MmIzNjNkMzZiYyBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUNoaXAKK2ExYjk4ODM3NzY0NWE1OGU1ZTI1NDJjYTJiYWQ0ZTE3YzIxYTRhMzg5MjEzZDA1ZGUyZjBlMzJkNTdiN2QzMzkgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlDaGlwRXZlbnRDYWxsYmFjaworNWVkNjc2MGNlNzdlODRiYzZjNDlkMWFjYjNmN2Q4MTE3YzkxNzZiM2YwNjUxNGJjNDRhZDNhZjg0YzgwZGNmZSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUV2ZW50Q2FsbGJhY2sKKzZiOWFkNDNhNWVmYmU2Y2EyMTRmNzUxZTIyY2U0M2NmNWNkNGQ1ZDVmMmNiYTgwZjI0Y2NkMzc1NWE3MjQwMWMgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlJZmFjZQorYmE1YWE3NGYxYmE3MTRmMDA5Mzg2NDIyNzkyMzQ5MjgwODc5NWJkYTYxOTljNGVhMDg5MTMyMmQyN2Y4YzkzMSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaU5hbklmYWNlCiszMjVjOTRmM2UxYTU2NWI1NmJiYzc0ZmFkZGJkMGJhN2NiODI0ZjI2M2RjY2Y5ZGZmZjJkYWY2MmI4NmVkNzc0IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpTmFuSWZhY2VFdmVudENhbGxiYWNrCitjMmMzZjAzNzJiNDE3ODBmYjZkZmU4M2MwMjIyOTY4MDZjMjAyNGQ3MDQ2NjgyZmQyMDFkZTVhYTliNzkxYzdhIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUDJwSWZhY2UKKzc2NmU5NzY1ZjVjOWM3NTliMmE3NjNjMjI4ODM1M2ZiNWRlZmYzMzg5YzJjYzI4ZjgxZDc5YzkzOTcwNGNlOGIgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlSdHRDb250cm9sbGVyCis3MmFiNmYzZTEyMGNiZjA3YWE2ZjhlODdjYTg5MTEyYmRlYjM2YjdmYmI5NmJjZTVhZjM3MTIzMjNhYjhiOGU2IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUnR0Q29udHJvbGxlckV2ZW50Q2FsbGJhY2sKKzNiODA5M2QzOWVmMWUxMGU0M2M1NTM4YWZiZjVmZjZlMzliOGQ4MTY4ZWJiZTE5OThkOTkzZTg5ZTI1ZjE0YTUgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlTdGFJZmFjZQorN2ZiZmM1NTFjM2UyM2M4YjQzOThjM2UxNmU0NTJiNTE2NDU3ZTY5MjE0MjRhNTM0NzRjYmYzNzNjYTMwNmZhOSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaVN0YUlmYWNlRXZlbnRDYWxsYmFjaworZTIwZDUxMzJkNmQyM2UwNzJjMTVkZTA2NWI1ZTJhYTEzZmY5NjUwMzEyNDZhMmM4MjU4MTczMmJhZTU2YmY2ZCBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjp0eXBlcworZjdlNTVjMDgxODdkOGM4NTUwNjhhMWVlM2QwYzhkYWVlZTc1NzAyOTJkOTY1MDljMjFhODc1NmQ0ZjVjZmI5YiBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50Cis1NmI1YzcyNjdjYjNkMzMzN2Y0NGViOGIwYjM4ZmY0YzYyNjBkY2M3MGUwNzY4N2ZjYWI5NGIxY2NlYThkMTU5IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRDYWxsYmFjaworMzViYTdiY2RmMThmMjRhODY2YTdlNTQyOTU0OGYwNjc2OGJiMjBhMjU3Zjc1YjEwYTM5N2M0ZDgyNWVmODQzOCBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50SWZhY2UKK2NkYTAxMDA4YzA2OTIyZmEzN2MxMjEzZTliYjgzMWExMDliMzE3NDUzMjgwNTYxNmZiNzE2MWVkYzQwMzg2NmYgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudE5ldHdvcmsKKzQ5MDc0MTAzMzhjNWU4ZGJlZWM0YjVlZGMyNjA4ZWEzMjNmNTU2MTk0NWY4ODEwYWY4MTgxMGM0N2IwMTkxODQgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudFAycElmYWNlCis4YjYzZjVlZmEyZTNiZTNhN2NiOGE0Mjg3NjBkODIyODVhNGFiNzliY2JkZWE2ZWY5MGFhNTQ3NTU1ZTU4MmQ0IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBJZmFjZUNhbGxiYWNrCis1NjEyOGY3NDU2MDU3MWI2Nzc3ZDU5NDUzZjM1YzZiMzU2OTNlZTM3N2UyYTIzYzgwNzcwODkwNjkyOGYwOWRlIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBOZXR3b3JrCisyMDY3YzIyMTk3YmNhOTc0M2RhYjY2YTZmNTYxYThhODM3NWM2N2I0Zjc2YWVkMDVmNzc2ODM5NDk5YmQ0YzhmIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBOZXR3b3JrQ2FsbGJhY2sKKzc3NTJlMWRlOTNhYWY1ZmVkMzcwMTFjMjE5YWMyNDcwNjlmNmFmMzIwYjA4MTBkYWE5ODUxMDU4NGExMGU3YjQgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudFN0YUlmYWNlCitkNzgxYzhkN2U3YjNmZTVjY2E4Y2Y2ZTFkODgwNmU3NzA5ODJhZTUzNThjNzgxNmVkNTFiMGYwZWMyNzJlNzBkIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrCitiMTJlZjBiZGQ4YTRkMjQ3YThhNmU5NjBiMjI3ZWQzMjM4M2YyYjAyNDFmNTVkNjdmY2VhNmVmZjZhNjczN2ZhIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrCitkOGYwODc3YWUxZDMyMWMxZDg4NGM3NjMxZGZlMzZjYWIwZWM4YTRiMjg2M2Q0YjY4N2Y4NWQzNTQ5YTYzYmNjIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrQ2FsbGJhY2sKK2ZlM2MzYzJmNTcyYjcyZjE1Zjg1OTRjNTM4YjA1NzdiZDVjMjg3MjJjMzE4NzljZmU2MjMxMzMwY2RkYjY3NDcgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjp0eXBlcwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9BbmRyb2lkLmJwIGIvZHJtLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MjlkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw5MSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUNyeXB0b0ZhY3RvcnkuaGFsIiwKKyAgICAgICAgIklDcnlwdG9QbHVnaW4uaGFsIiwKKyAgICAgICAgIklEcm1GYWN0b3J5LmhhbCIsCisgICAgICAgICJJRHJtUGx1Z2luLmhhbCIsCisgICAgICAgICJJRHJtUGx1Z2luTGlzdGVuZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0NyeXB0b0ZhY3RvcnlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9DcnlwdG9QbHVnaW5BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Ecm1GYWN0b3J5QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvRHJtUGx1Z2luQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvRHJtUGx1Z2luTGlzdGVuZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cbkh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0NyeXB0b0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JSHdDcnlwdG9QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0NyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3Q3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JzQ3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lId0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnNEcm1GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JuSHdEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JwSHdEcm1QbHVnaW5MaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5LmhhbCBiL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYWI5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5LmhhbApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSUNyeXB0b1BsdWdpbjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg6Q3J5cHRvRmFjdG9yeQorICoKKyAqIElDcnlwdG9GYWN0b3J5IGlzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBpbnRlcmFjdGluZyB3aXRoIGEgdmVuZG9yJ3MKKyAqIGNyeXB0byBIQUwgdG8gY3JlYXRlIGNyeXB0byBwbHVnaW5zLiBDcnlwdG8gcGx1Z2lucyBjcmVhdGUgY3J5cHRvIHNlc3Npb25zCisgKiB3aGljaCBhcmUgdXNlZCBieSBhIGNvZGVjIHRvIGRlY3J5cHQgcHJvdGVjdGVkIHZpZGVvIGNvbnRlbnQuCisgKi8KK2ludGVyZmFjZSBJQ3J5cHRvRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY3J5cHRvIHNjaGVtZSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyBIQUwKKyAgICAgKgorICAgICAqIEBwYXJhbSB1dWlkIGlkZW50aWZpZXMgdGhlIGNyeXB0byBzY2hlbWUgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIGlzU3VwcG9ydGVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIHRoZSBzY2hlbWUgaXMgc3VwcG9ydGVkCisgICAgICovCisgICAgaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodWludDhfdFsxNl0gdXVpZCkgZ2VuZXJhdGVzKGJvb2wgaXNTdXBwb3J0ZWQpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgY3J5cHRvIHBsdWdpbiBmb3IgdGhlIHNwZWNpZmllZCB1dWlkIGFuZCBzY2hlbWUtc3BlY2lmaWMKKyAgICAgKiBpbml0aWFsaXphdGlvbiBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIHV1aWQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgZHJtIHNjaGVtZS4gU2VlCisgICAgICogaHR0cDovL2Rhc2hpZi5vcmcvaWRlbnRpZmllcnMvcHJvdGVjdGlvbiBmb3IgdXVpZCBhc3NpZ25tZW50cworICAgICAqIEBwYXJhbSBpbml0RGF0YSBzY2hlbWUtc3BlY2lmaWMgaW5pdCBkYXRhLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCByZXR1cm4KKyAgICAgKiBPSyBpZiB0aGUgcGx1Z2luIGlzIGNyZWF0ZWQgYW5kIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwbHVnaW4KKyAgICAgKiBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgKiBAcmV0dXJuIGNyeXB0b1BsdWdpbiB0aGUgY3JlYXRlZCBJQ3J5cHRvUGx1Z2luCisgICAgICovCisgICAgY3JlYXRlUGx1Z2luKHVpbnQ4X3RbMTZdIHV1aWQsIHZlYzx1aW50OF90PiBpbml0RGF0YSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBJQ3J5cHRvUGx1Z2luIGNyeXB0b1BsdWdpbik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmhhbCBiL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE3ZmQyNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oYWwKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9DcnlwdG9BUEkuaDpDcnlwdG9QbHVnaW4KKyAqCisgKiBJQ3J5cHRvUGx1Z2luIGlzIHRoZSBIQUwgZm9yIHZlbmRvci1wcm92aWRlZCBjcnlwdG8gcGx1Z2lucy4KKyAqIEl0IGFsbG93cyBjcnlwdG8gc2Vzc2lvbnMgdG8gYmUgb3BlbmVkIGFuZCBvcGVyYXRlZCBvbiwgdG8KKyAqIGxvYWQgY3J5cHRvIGtleXMgZm9yIGEgY29kZWMgdG8gZGVjcnlwdCBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworaW50ZXJmYWNlIElDcnlwdG9QbHVnaW4geworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBzcGVjaWZpZWQgbWltZS10eXBlIHJlcXVpcmVzIGEgc2VjdXJlIGRlY29kZXIKKyAgICAgKiBjb21wb25lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWltZSBUaGUgY29udGVudCBtaW1lLXR5cGUKKyAgICAgKiBAcmV0dXJuIHNlY3VyZVJlcXVpcmVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIGEgc2VjdXJlIGRlY29kZXIgaXMgcmVxdWlyZWQKKyAgICAgKiBmb3IgdGhlIHNwZWNpZmllZCBtaW1lLXR5cGUKKyAgICAgKi8KKyAgICByZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoc3RyaW5nIG1pbWUpCisgICAgICAgIGdlbmVyYXRlcyhib29sIHNlY3VyZVJlcXVpcmVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmeSBhIHBsdWdpbiBvZiB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgcmVzb2x1dGlvbgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIC0gdGhlIGRpc3BsYXkgcmVzb2x1dGlvbnMncyB3aWR0aAorICAgICAqIEBwYXJhbSBoZWlnaHQgLSB0aGUgZGlzcGxheSByZXNvbHV0aW9uJ3MgaGVpZ2h0CisgICAgICovCisgICAgbm90aWZ5UmVzb2x1dGlvbih1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KTsKKworICAgIC8qKgorICAgICAqIEFzc29jaWF0ZSBhIG1lZGlhZHJtIHNlc3Npb24gd2l0aCB0aGlzIGNyeXB0byBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBNZWRpYURybSBzZXNzaW9uIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgY3J5cHRvCisgICAgICogc2Vzc2lvbgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwsIHN0YXR1cyBtdXN0IGJlCisgICAgICogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3Qgb3BlbmVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZHJtCisgICAgICogc2NoZW1lLgorICAgICAqLworICAgIHNldE1lZGlhRHJtU2Vzc2lvbih2ZWM8dWludDhfdD4gc2Vzc2lvbklkKSBnZW5lcmF0ZXMoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBzaGFyZWQgbWVtb3J5IGJhc2UgZm9yIHN1YnNlcXVlbnQgZGVjcnlwdCBvcGVyYXRpb25zLiBUaGUgYnVmZmVyCisgICAgICogYmFzZSBpcyBhIGhpZGxfbWVtb3J5IHdoaWNoIG1hcHMgc2hhcmVkIG1lbW9yeSBpbiB0aGUgSEFMIG1vZHVsZS4KKyAgICAgKiBBZnRlciB0aGUgc2hhcmVkIGJ1ZmZlciBiYXNlIGlzIGVzdGFibGlzaGVkLCB0aGUgZGVjcnlwdCgpIG1ldGhvZAorICAgICAqIHJlY2VpdmVzIFNoYXJlZEJ1ZmZlciBpbnN0YW5jZXMgd2hpY2ggc3BlY2lmeSB0aGUgYnVmZmVyIGFkZHJlc3MgcmFuZ2UKKyAgICAgKiBmb3IgZGVjcnlwdCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBzaGFyZWQgYnVmZmVycyBwZXIgY3J5cHRvIHBsdWdpbi4gVGhlIGJ1ZmZlcnMKKyAgICAgKiBhcmUgZGlzdGluZ3Vpc2hlZCBieSB0aGUgYnVmZmVySWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYmFzZSB0aGUgYmFzZSBJTWVtb3J5IG9mIHRoZSBtZW1vcnkgYnVmZmVyIGlkZW50aWZpZWQgYnkKKyAgICAgKiBidWZmZXJJZAorICAgICAqIEBwYXJhbSBidWZmZXJJZCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBzaGFyZWQgYnVmZmVyIGZvciB3aGljaAorICAgICAqIHRoZSBiYXNlIGlzIGJlaW5nIHNldC4KKyAgICAgKi8KKyAgICBzZXRTaGFyZWRCdWZmZXJCYXNlKG1lbW9yeSBiYXNlLCB1aW50MzJfdCBidWZmZXJJZCk7CisKKyAgICAvKioKKyAgICAgKiBEZWNyeXB0IGFuIGFycmF5IG9mIHN1YnNhbXBsZXMgZnJvbSB0aGUgc291cmNlIG1lbW9yeSBidWZmZXIgdG8gdGhlCisgICAgICogZGVzdGluYXRpb24gbWVtb3J5IGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmUgYSBmbGFnIHRvIGluZGljYXRlIGlmIGEgc2VjdXJlIGRlY29kZXIgaXMgYmVpbmcgdXNlZC4gVGhpcworICAgICAqIGVuYWJsZXMgdGhlIHBsdWdpbiB0byBjb25maWd1cmUgYnVmZmVyIG1vZGVzIHRvIHdvcmsgY29uc2lzdGVudGx5IHdpdGgKKyAgICAgKiBhIHNlY3VyZSBkZWNvZGVyLgorICAgICAqIEBwYXJhbSB0aGUga2V5SWQgZm9yIHRoZSBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkbyB0aGUKKyAgICAgKiB0aGUgZGVjcnlwdGlvbi4gVGhlIGtleUlkIHJlZmVycyB0byBhIGtleSBpbiB0aGUgYXNzb2NpYXRlZAorICAgICAqIE1lZGlhRHJtIGluc3RhbmNlLgorICAgICAqIEBwYXJhbSBpdiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBtb2RlIHRoZSBjcnlwdG8gbW9kZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgY3J5cHRvIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHBhcmFtIHN1YlNhbXBsZXMgYSB2ZWN0b3Igb2Ygc3Vic2FtcGxlcyBpbmRpY2F0aW5nIHRoZSBudW1iZXIKKyAgICAgKiBvZiBjbGVhciBhbmQgZW5jcnlwdGVkIGJ5dGVzIHRvIHByb2Nlc3MuIFRoaXMgYWxsb3dzIHRoZSBkZWNyeXB0CisgICAgICogY2FsbCB0byBvcGVyYXRlIG9uIGEgcmFuZ2Ugb2Ygc3Vic2FtcGxlcyBpbiBhIHNpbmdsZSBjYWxsCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgaW5wdXQgYnVmZmVyIGZvciB0aGUgZGVjcnlwdGlvbgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBlbmNyeXB0ZWQgZGF0YSBmcm9tCisgICAgICogdGhlIGJhc2Ugb2YgdGhlIHNvdXJjZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gZGVzdGluYXRpb24gdGhlIG91dHB1dCBidWZmZXIgZm9yIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fTk9fTElDRU5TRSBpZiBubyBsaWNlbnNlIGtleXMgaGF2ZSBiZWVuCisgICAgICogbG9hZGVkLCBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEIGlmIHRoZSBsaWNlbnNlIGtleXMgaGF2ZSBleHBpcmVkLAorICAgICAqIEVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZIGlmIHRoZSByZXNvdXJjZXMgcmVxdWlyZWQgdG8gcGVyZm9ybSB0aGUKKyAgICAgKiBkZWNyeXB0aW9uIGFyZSBub3QgYXZhaWxhYmxlLCBFUlJPUl9EUk1fSU5TVUZGSUNJRU5UX09VVFBVVF9QUk9URUNUSU9OCisgICAgICogaWYgcmVxdWlyZWQgb3V0cHV0IHByb3RlY3Rpb25zIGFyZSBub3QgYWN0aXZlLAorICAgICAqIEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIGRlY3J5cHQgc2Vzc2lvbiBpcyBub3Qgb3BlbmVkLAorICAgICAqIEVSUk9SX0RSTV9ERUNSWVBUIGlmIHRoZSBkZWNyeXB0IG9wZXJhdGlvbiBmYWlscywgYW5kCisgICAgICogRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaW4gb3RoZXIgZmFpbHVyZSBjYXNlcy4KKyAgICAgKiBAcmV0dXJuIGJ5dGVzV3JpdHRlbiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG91dHB1dCBmcm9tIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHJldHVybiBkZXRhaWxlZEVycm9yIGlmIHRoZSBlcnJvciBpcyBhIHZlbmRvci1zcGVjaWZpYyBlcnJvciwgdGhlCisgICAgICogdmVuZG9yJ3MgY3J5cHRvIEhBTCBtYXkgcHJvdmlkZSBhIGRldGFpbGVkIGVycm9yIHN0cmluZyB0byBoZWxwCisgICAgICogZGVzY3JpYmUgdGhlIGVycm9yLgorICAgICAqLworICAgIGRlY3J5cHQoYm9vbCBzZWN1cmUsIHVpbnQ4X3RbMTZdIGtleUlkLCB1aW50OF90WzE2XSBpdiwgTW9kZSBtb2RlLAorICAgICAgICBQYXR0ZXJuIHBhdHRlcm4sIHZlYzxTdWJTYW1wbGU+IHN1YlNhbXBsZXMsCisgICAgICAgICAgICBTaGFyZWRCdWZmZXIgc291cmNlLCB1aW50NjRfdCBvZmZzZXQsIERlc3RpbmF0aW9uQnVmZmVyIGRlc3RpbmF0aW9uKQorICAgICAgICBnZW5lcmF0ZXMoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgYnl0ZXNXcml0dGVuLCBzdHJpbmcgZGV0YWlsZWRFcnJvcik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtRmFjdG9yeS5oYWwgYi9kcm0vMS4wL0lEcm1GYWN0b3J5LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGU0Nzc5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9JRHJtRmFjdG9yeS5oYWwKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDsKKworaW1wb3J0IElEcm1QbHVnaW47CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL2RybS9Ecm1BUEkuaDpEcm1GYWN0b3J5CisgKgorICogSURybUZhY3RvcnkgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIGludGVyYWN0aW5nIHdpdGggYSB2ZW5kb3IncworICogZHJtIEhBTCB0byBjcmVhdGUgZHJtIHBsdWdpbiBpbnN0YW5jZXMuIEEgZHJtIHBsdWdpbiBpbnN0YW5jZQorICogY3JlYXRlcyBkcm0gc2Vzc2lvbnMgd2hpY2ggYXJlIHVzZWQgdG8gb2J0YWluIGtleXMgZm9yIGEgY3J5cHRvCisgKiBzZXNzaW9uIHNvIGl0IGNhbiBkZWNyeXB0KiBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworCitpbnRlcmZhY2UgSURybUZhY3RvcnkgeworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIGNyeXB0byBzY2hlbWUgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgSEFMCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCBpZGVudGlmaWVzIHRoZSBjcnlwdG8gc2NoZW1lIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBpc1N1cHBvcnRlZCBtdXN0IGJlIHRydWUgb25seSBpZiB0aGUgc2NoZW1lIGlzIHN1cHBvcnRlZAorICAgICAqLworICAgIGlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHVpbnQ4X3RbMTZdIHV1aWQpIGdlbmVyYXRlcyhib29sIGlzU3VwcG9ydGVkKTsKKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiB0aGUgSEFMIGZhY3RvcnkgaXMgYWJsZSB0byBjb25zdHJ1Y3QgcGx1Z2lucyB0aGF0IHN1cHBvcnQgYQorICAgICAqIGdpdmVuIG1lZGlhIGNvbnRhaW5lciBmb3JtYXQgc3BlY2lmaWVkIGJ5IG1pbWVUeXBlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWltZVR5cGUgaWRlbnRpZmllcyB0aGUgbWltZSB0eXBlIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBpc1N1cHBvcnRlZCBtdXN0IGJlIHRydWUgb25seSBpZiB0aGUgc2NoZW1lIGlzIHN1cHBvcnRlZAorICAgICAqLworICAgIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoc3RyaW5nIG1pbWVUeXBlKSBnZW5lcmF0ZXMoYm9vbCBpc1N1cHBvcnRlZCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBkcm0gcGx1Z2luIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIHV1aWQgYW5kIHNjaGVtZS1zcGVjaWZpYworICAgICAqIGluaXRpYWxpemF0aW9uIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBkcm0gc2NoZW1lLiBTZWUKKyAgICAgKiBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uIGZvciB1dWlkIGFzc2lnbm1lbnRzCisgICAgICogQHBhcmFtIGFwcFBhY2thZ2VOYW1lIGlkZW50aWZpZXMgdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUgY2FsbGluZworICAgICAqIGFwcGxpY2F0aW9uLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCByZXR1cm4KKyAgICAgKiBPSyBpZiB0aGUgcGx1Z2luIGlzIGNyZWF0ZWQgYW5kIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwbHVnaW4KKyAgICAgKiBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVQbHVnaW4odWludDhfdFsxNl0gdXVpZCwgc3RyaW5nIGFwcFBhY2thZ2VOYW1lKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBJRHJtUGx1Z2luIGRybVBsdWdpbik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtUGx1Z2luLmhhbCBiL2RybS8xLjAvSURybVBsdWdpbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdiMDgzMgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSURybVBsdWdpbi5oYWwKQEAgLTAsMCArMSw1NDIgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSURybVBsdWdpbkxpc3RlbmVyOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9kcm0vRHJtQVBJLmg6RHJtUGx1Z2luCisgKgorICogSURybVBsdWdpbiBpcyB1c2VkIHRvIGludGVyYWN0IHdpdGggYSBzcGVjaWZpYyBkcm0gcGx1Z2luIHRoYXQgd2FzCisgKiBjcmVhdGVkIGJ5IElEcm06OmNyZWF0ZVBsdWdpbi4gQSBkcm0gcGx1Z2luIHByb3ZpZGVzIG1ldGhvZHMgZm9yCisgKiBvYnRhaW5pbmcgZHJtIGtleXMgdGhhdCBtYXkgYmUgdXNlZCBieSBhIGNvZGVjIHRvIGRlY3J5cHQgcHJvdGVjdGVkCisgKiB2aWRlbyBjb250ZW50LgorICovCitpbnRlcmZhY2UgSURybVBsdWdpbiB7CisKKyAgICAvKioKKyAgICAgKiBPcGVuIGEgbmV3IHNlc3Npb24gd2l0aCB0aGUgRHJtUGx1Z2luIG9iamVjdC4gQSBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgICAgICogaW4gdGhlIHNlc3Npb25JZCBwYXJhbWV0ZXIuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEIGlmIHRoZSBkZXZpY2UgcmVxdWlyZXMKKyAgICAgKiBwcm92aXNpb25pbmcgYmVmb3JlIGl0IGNhbiBvcGVuIGEgc2Vzc2lvbiwgRVJST1JfRFJNX1JFU09VUkNFX0JVU1kgaWYKKyAgICAgKiB0aGVyZSBhcmUgaW5zdWZmaWNlbnQgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBvcGVuIGEgc2Vzc2lvbiwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgaWYgb3BlblNlc3Npb24gaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoZSBjYWxsIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSBhCisgICAgICogc2Vzc2lvbiBjYW5ub3QgYmUgb3BlbmVkLgorICAgICAqIEByZXR1cm4gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIElEIGZvciB0aGUgbmV3bHkgb3BlbmVkIHNlc3Npb24KKyAgICAgKi8KKyAgICBvcGVuU2Vzc2lvbigpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgU2Vzc2lvbklkIHNlc3Npb25JZCk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZSBhIHNlc3Npb24gb24gdGhlIERybVBsdWdpbiBvYmplY3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuICBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZXNzaW9uIGNhbm5vdCBiZSBjbG9zZWQuCisgICAgICovCisgICAgY2xvc2VTZXNzaW9uKFNlc3Npb25JZCBzZXNzaW9uSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBBIGtleSByZXF1ZXN0L3Jlc3BvbnNlIGV4Y2hhbmdlIG9jY3VycyBiZXR3ZWVuIHRoZSBhcHAgYW5kIGEgTGljZW5zZQorICAgICAqIFNlcnZlciB0byBvYnRhaW4gdGhlIGtleXMgcmVxdWlyZWQgdG8gZGVjcnlwdCB0aGUgY29udGVudC4KKyAgICAgKiBnZXRLZXlSZXF1ZXN0KCkgaXMgdXNlZCB0byBvYnRhaW4gYW4gb3BhcXVlIGtleSByZXF1ZXN0IGJsb2IgdGhhdCBpcworICAgICAqIGRlbGl2ZXJlZCB0byB0aGUgbGljZW5zZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2NvcGUgbWF5IGJlIGEgc2Vzc2lvbklkIG9yIGEga2V5U2V0SWQsIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQga2V5VHlwZS4gV2hlbiB0aGUga2V5VHlwZSBpcyBPRkZMSU5FIG9yIFNUUkVBTUlORywKKyAgICAgKiBzY29wZSBzaG91bGQgYmUgc2V0IHRvIHRoZSBzZXNzaW9uSWQgdGhlIGtleXMgd2lsbCBiZSBwcm92aWRlZCB0by4KKyAgICAgKiBXaGVuIHRoZSBrZXlUeXBlIGlzIFJFTEVBU0UsIHNjb3BlIHNob3VsZCBiZSBzZXQgdG8gdGhlIGtleVNldElkCisgICAgICogb2YgdGhlIGtleXMgYmVpbmcgcmVsZWFzZWQuCisgICAgICogQHBhcmFtIGluaXREYXRhIGNvbnRhaW5lci1zcGVjaWZpYyBkYXRhLCBpdHMgbWVhbmluZyBpcyBpbnRlcnByZXRlZAorICAgICAqIGJhc2VkIG9uIHRoZSBtaW1lIHR5cGUgcHJvdmlkZWQgaW4gdGhlIG1pbWVUeXBlIHBhcmFtZXRlci4gSXQgY291bGQKKyAgICAgKiBjb250YWluLCBmb3IgZXhhbXBsZSwgdGhlIGNvbnRlbnQgSUQsIGtleSBJRCBvciBvdGhlciBkYXRhIG9idGFpbmVkCisgICAgICogZnJvbSB0aGUgY29udGVudCBtZXRhZGF0YSB0aGF0IGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoZSBrZXkgcmVxdWVzdC4KKyAgICAgKiBpbml0RGF0YSBtYXkgYmUgZW1wdHkgd2hlbiBrZXlUeXBlIGlzIFJFTEVBU0UuCisgICAgICogQHBhcmFtIG1pbWVUeXBlIGlkZW50aWZpZXMgdGhlIG1pbWUgdHlwZSBvZiB0aGUgY29udGVudAorICAgICAqIEBwYXJhbSBrZXlUeXBlIHNwZWNpZmllcyBpZiB0aGUga2V5cyBhcmUgdG8gYmUgdXNlZCBmb3Igc3RyZWFtaW5nLAorICAgICAqIG9mZmxpbmUgb3IgYSByZWxlYXNlCisgICAgICogQHBhcmFtIG9wdGlvbmFsUGFyYW1ldGVycyBpbmNsdWRlZCBpbiB0aGUga2V5IHJlcXVlc3QgbWVzc2FnZSB0bworICAgICAqIGFsbG93IGEgY2xpZW50IGFwcGxpY2F0aW9uIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBtZXNzYWdlIHBhcmFtZXRlcnMgdG8KKyAgICAgKiB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgaWYgdGhlIGRldmljZSByZXF1aXJlcyBwcm92aXNpb25pbmcKKyAgICAgKiBiZWZvcmUgaXQgY2FuIGdlbmVyYXRlIGEga2V5IHJlcXVlc3QsIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmCisgICAgICogZ2V0S2V5UmVxdWVzdCBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLCBCQURfVkFMVUUgaWYgYW55CisgICAgICogcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUKKyAgICAgKiB3aGVyZSBhIGtleSByZXF1ZXN0IGNhbm5vdCBiZSBnZW5lcmF0ZWQuCisgICAgICogQHJldHVybiByZXF1ZXN0IGlmIHN1Y2Nlc3NmdWwsIHRoZSBvcGFxdWUga2V5IHJlcXVlc3QgYmxvYiBpcyByZXR1cm5lZAorICAgICAqIEByZXR1cm4gcmVxdWVzdFR5cGUgaW5kaWNhdGVzIHR5cGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJldHVybmVkCisgICAgICogcmVxdWVzdC4gVGhlIHR5cGUgbWF5IGJlIG9uZSBvZiBJTklUSUFMLCBSRU5FV0FMIG9yIFJFTEVBU0UuIEFuCisgICAgICogSU5JVElBTCByZXF1ZXN0IGlzIHRoZSBmaXJzdCBrZXkgcmVxdWVzdCBmb3IgYSBsaWNlbnNlLiBSRU5FV0FMIGlzIGEKKyAgICAgKiBzdWJzZXF1ZW50IGtleSByZXF1ZXN0IHVzZWQgdG8gcmVmcmVzaCB0aGUga2V5cyBpbiBhIGxpY2Vuc2UuIFJFTEVBU0UKKyAgICAgKiBjb3JyZXNwb25kcyB0byBhIGtleVR5cGUgb2YgUkVMRUFTRSwgd2hpY2ggaW5kaWNhdGVzIGtleXMgYXJlIGJlaW5nCisgICAgICogcmVsZWFzZWQuCisgICAgICogQHJldHVybiBkZWZhdWx0VXJsIHRoZSBVUkwgdGhhdCB0aGUgcmVxdWVzdCBtYXkgYmUgc2VudCB0bywgaWYKKyAgICAgKiBwcm92aWRlZCBieSB0aGUgZHJtIEhBTC4gVGhlIGFwcCBtYXkgY2hvb3NlIHRvIG92ZXJyaWRlIHRoaXMKKyAgICAgKiBVUkwuCisgICAgICovCisgICAgZ2V0S2V5UmVxdWVzdCh2ZWM8dWludDhfdD4gc2NvcGUsIHZlYzx1aW50OF90PiBpbml0RGF0YSwKKyAgICAgICAgICAgIHN0cmluZyBtaW1lVHlwZSwgS2V5VHlwZSBrZXlUeXBlLCBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnMpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUsIHN0cmluZyBkZWZhdWx0VXJsKTsKKworICAgIC8qKgorICAgICAqIEFmdGVyIGEga2V5IHJlc3BvbnNlIGlzIHJlY2VpdmVkIGJ5IHRoZSBhcHAsIGl0IGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAqIERybSBwbHVnaW4gdXNpbmcgcHJvdmlkZUtleVJlc3BvbnNlLgorICAgICAqCisgICAgICogQHBhcmFtIHNjb3BlIG1heSBiZSBhIHNlc3Npb25JZCBvciBhIGtleVNldElkIGRlcGVuZGluZyBvbiB0aGUgdHlwZQorICAgICAqIG9mIHRoZSByZXNwb25zZS4gU2NvcGUgc2hvdWxkIGJlIHNldCB0byB0aGUgc2Vzc2lvbklkIHdoZW4gdGhlIHJlc3BvbnNlCisgICAgICogaXMgZm9yIGVpdGhlciBzdHJlYW1pbmcgb3Igb2ZmbGluZSBrZXkgcmVxdWVzdHMuIFNjb3BlIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgKiB0aGUga2V5U2V0SWQgd2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGEgcmVsZWFzZSByZXF1ZXN0LgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgcmVzcG9uc2UgZnJvbSB0aGUga2V5IHNlcnZlciB0aGF0IGlzIGJlaW5nCisgICAgICogcHJvdmlkZWQgdG8gdGhlIGRybSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgRVJST1JfRFJNX05PVF9QUk9WSVNJT05FRCBpZiB0aGUgZGV2aWNlIHJlcXVpcmVzIHByb3Zpc2lvbmluZworICAgICAqIGJlZm9yZSBpdCBjYW4gaGFuZGxlIHRoZSBrZXkgcmVzcG9uc2UsIEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBpZiB0aGUKKyAgICAgKiBkZXZpY2UgaGFzIGJlZW4gZGlzYWJsZWQgYnkgdGhlIGxpY2Vuc2UgcG9saWN5LCBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRQorICAgICAqIGlmIHByb3ZpZGVLZXlSZXNwb25zZSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLCBCQURfVkFMVUUKKyAgICAgKiBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzCisgICAgICogaW4gYSBzdGF0ZSB3aGVyZSBhIGtleSByZXNwb25zZSBjYW5ub3QgYmUgaGFuZGxlZC4KKyAgICAgKiBAcmV0dXJuIGtleVNldElkIHdoZW4gdGhlIHJlc3BvbnNlIGlzIGZvciBhbiBvZmZsaW5lIGtleSByZXF1ZXN0LCBhCisgICAgICoga2V5U2V0SWQgaXMgcmV0dXJuZWQgaW4gdGhlIGtleVNldElkIHZlY3RvciBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZAorICAgICAqIHRvIGxhdGVyIHJlc3RvcmUgdGhlIGtleXMgdG8gYSBuZXcgc2Vzc2lvbiB3aXRoIHRoZSBtZXRob2QgcmVzdG9yZUtleXMuCisgICAgICogV2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGEgc3RyZWFtaW5nIG9yIHJlbGVhc2UgcmVxdWVzdCwgbm8ga2V5U2V0SWQgaXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcm92aWRlS2V5UmVzcG9uc2UodmVjPHVpbnQ4X3Q+IHNjb3BlLCB2ZWM8dWludDhfdD4gcmVzcG9uc2UpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IGtleVNldElkKTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgY3VycmVudCBrZXlzIGZyb20gYSBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgQkFEX1ZBTFVFIGlmIHRoZSBzZXNzaW9uSWQgaXMgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUga2V5cyBjYW5ub3QgYmUgcmVtb3ZlZC4KKyAgICAgKi8KKyAgICByZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXN0b3JlIHBlcnNpc3RlZCBvZmZsaW5lIGtleXMgaW50byBhIG5ldyBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5U2V0SWQgaWRlbnRpZmllcyB0aGUga2V5cyB0byBsb2FkLCBvYnRhaW5lZCBmcm9tIGEgcHJpb3IKKyAgICAgKiBjYWxsIHRvIHByb3ZpZGVLZXlSZXNwb25zZSgpLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSBrZXlzIGNhbm5vdCBiZSByZXN0b3JlZC4KKyAgICAgKi8KKyAgICByZXN0b3JlS2V5cyhTZXNzaW9uSWQgc2Vzc2lvbklkLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGtleVNldElkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmVxdWVzdCBhbiBpbmZvcm1hdGl2ZSBkZXNjcmlwdGlvbiBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIHNlc3Npb24uIFRoZQorICAgICAqIHN0YXR1cyBpcyBpbiB0aGUgZm9ybSBvZiB7bmFtZSwgdmFsdWV9IHBhaXJzLiBTaW5jZSBEUk0gbGljZW5zZSBwb2xpY2llcworICAgICAqIHZhcnkgYnkgdmVuZG9yLCB0aGUgc3BlY2lmaWMgc3RhdHVzIGZpZWxkIG5hbWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGVhY2gKKyAgICAgKiBEUk0gdmVuZG9yLiBSZWZlciB0byB5b3VyIERSTSBwcm92aWRlciBkb2N1bWVudGF0aW9uIGZvciBkZWZpbml0aW9ucyBvZgorICAgICAqIHRoZSBmaWVsZCBuYW1lcyBmb3IgYSBwYXJ0aWN1bGFyIGRybSBzY2hlbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIGtleSBzdGF0dXMgY2Fubm90IGJlIHF1ZXJpZWQuCisgICAgICogQHJldHVybiBpbmZvTGlzdCBhIGxpc3Qgb2YgbmFtZSB2YWx1ZSBwYWlycyBkZXNjcmliaW5nIHRoZSBsaWNlbnNlCisgICAgICovCisgICAgcXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBLZXllZFZlY3RvciBpbmZvTGlzdCk7CisKKyAgICAvKioKKyAgICAgKiBBIHByb3Zpc2lvbiByZXF1ZXN0L3Jlc3BvbnNlIGV4Y2hhbmdlIG9jY3VycyBiZXR3ZWVuIHRoZSBhcHAgYW5kIGEKKyAgICAgKiBwcm92aXNpb25pbmcgc2VydmVyIHRvIHJldHJpZXZlIGEgZGV2aWNlIGNlcnRpZmljYXRlLiBnZXRQcm92aXNpb25SZXF1ZXN0CisgICAgICogaXMgdXNlZCB0byBvYnRhaW4gYW4gb3BhcXVlIHByb3Zpc2lvbmluZyByZXF1ZXN0IGJsb2IgdGhhdCBpcyBkZWxpdmVyZWQKKyAgICAgKiB0byB0aGUgcHJvdmlzaW9uaW5nIHNlcnZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjZXJ0aWZpY2F0ZVR5cGUgdGhlIHR5cGUgb2YgY2VydGlmaWNhdGUgcmVxdWVzdGVkLCBlLmcuICJYLjUwOSIKKyAgICAgKiBAcGFyYW0gY2VydGlmaWNhdGVBdXRob3JpdHkgaWRlbnRpZmllcyB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5LiBBCisgICAgICogY2VydGlmaWNhdGUgYXV0aG9yaXR5IChDQSkgaXMgYW4gZW50aXR5IHdoaWNoIGlzc3VlcyBkaWdpdGFsIGNlcnRpZmljYXRlcworICAgICAqIGZvciB1c2UgYnkgb3RoZXIgcGFydGllcy4gSXQgaXMgYW4gZXhhbXBsZSBvZiBhIHRydXN0ZWQgdGhpcmQgcGFydHkuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgZHJtIHNjaGVtZSBkb2VzIG5vdAorICAgICAqIHJlcXVpcmUgcHJvdmlzaW9uaW5nIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZQorICAgICAqIHdoZXJlIHRoZSBwcm92aXNpb24gcmVxdWVzdCBjYW5ub3QgYmUgZ2VuZXJhdGVkLgorICAgICAqIEByZXR1cm4gcmVxdWVzdCBpZiBzdWNjZXNzZnVsIHRoZSBvcGFxdWUgY2VydGlmaWNhdGUgcmVxdWVzdCBibG9iCisgICAgICogaXMgcmV0dXJuZWQKKyAgICAgKiBAcmV0dXJuIGRlZmF1bHRVcmwgVVJMIHRoYXQgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0IHNob3VsZCBiZQorICAgICAqIHNlbnQgdG8sIGlmIGtub3duIGJ5IHRoZSBIQUwgaW1wbGVtZW50YXRpb24uICBJZiB0aGUgSEFMIGltcGxlbWVudGF0aW9uCisgICAgICogZG9lcyBub3QgcHJvdmlkZSBhIGRlZmF1bHRVcmwsIHRoZSByZXR1cm5lZCBzdHJpbmcgbXVzdCBiZSBlbXB0eS4KKyAgICAgKi8KKyAgICBnZXRQcm92aXNpb25SZXF1ZXN0KHN0cmluZyBjZXJ0aWZpY2F0ZVR5cGUsIHN0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gcmVxdWVzdCwgc3RyaW5nIGRlZmF1bHRVcmwpOworCisgICAgLyoqCisgICAgICogQWZ0ZXIgYSBwcm92aXNpb24gcmVzcG9uc2UgaXMgcmVjZWl2ZWQgYnkgdGhlIGFwcCBmcm9tIGEgcHJvdmlzaW9uaW5nCisgICAgICogc2VydmVyLCBpdCBpcyBwcm92aWRlZCB0byB0aGUgRHJtIEhBTCB1c2luZyBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UuCisgICAgICogVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJlY2VpdmUgdGhlIHByb3Zpc2lvbiByZXF1ZXN0IGFuZAorICAgICAqIHN0b3JlIHRoZSBwcm92aXNpb25lZCBjcmVkZW50aWFscy4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgb3BhcXVlIHByb3Zpc2lvbmluZyByZXNwb25zZSByZWNlaXZlZCBieSB0aGUKKyAgICAgKiBhcHAgZnJvbSBhIHByb3Zpc2lvbmluZyBzZXJ2ZXIuCisKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBpZiB0aGUgZGV2aWNlIGhhcyBiZWVuCisgICAgICogZGlzYWJsZWQgYnkgdGhlIGxpY2Vuc2UgcG9saWN5LCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQKKyAgICAgKiBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3Zpc2lvbgorICAgICAqIHJlc3BvbnNlIGNhbm5vdCBiZSBoYW5kbGVkLgorICAgICAqIEByZXR1cm4gY2VydGlmaWNhdGUgdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZSByZXN1bHRpbmcgZnJvbSB0aGUgcHJvdmlzaW9uaW5nCisgICAgICogb3BlcmF0aW9uLCBpZiBhbnkuIEFuIGVtcHR5IHZlY3RvciBpbmRpY2F0ZXMgdGhhdCBubyBjZXJ0aWZpY2F0ZSB3YXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHdyYXBwZWRLZXkgYW4gb3BhcXVlIG9iamVjdCBjb250YWluaW5nIGVuY3J5cHRlZCBwcml2YXRlIGtleQorICAgICAqIG1hdGVyaWFsIHRvIGJlIHVzZWQgYnkgc2lnblJTQSB3aGVuIGNvbXB1dGluZyBhbiBSU0Egc2lnbmF0dXJlIG9uIGEKKyAgICAgKiBtZXNzYWdlLCBzZWUgdGhlIHNpZ25SU0EgbWV0aG9kLgorICAgICAqLworICAgIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZSh2ZWM8dWludDhfdD4gcmVzcG9uc2UpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIHZlYzx1aW50OF90PiBjZXJ0aWZpY2F0ZSwgdmVjPHVpbnQ4X3Q+IHdyYXBwZWRLZXkpOworCisgICAgLyoqCisgICAgICogU2VjdXJlU3RvcCBpcyBhIHdheSBvZiBlbmZvcmNpbmcgdGhlIGNvbmN1cnJlbnQgc3RyZWFtIGxpbWl0IHBlcgorICAgICAqIHN1YnNjcmliZXIuIEl0IGNhbiBzZWN1cmVseSBtb25pdG9yIHRoZSBsaWZldGltZSBvZiBzZXNzaW9ucyBhY3Jvc3MKKyAgICAgKiBkZXZpY2UgcmVib290cyBieSBwZXJpb2RpY2FsbHkgcGVyc2lzdGluZyB0aGUgc2Vzc2lvbiBsaWZldGltZQorICAgICAqIHN0YXR1cyBpbiBzZWN1cmUgc3RvcmFnZS4KKyAgICAgKgorICAgICAqIEEgc2lnbmVkIHZlcnNpb24gb2YgdGhlIHNlc3Npb25JRCBpcyB3cml0dGVuIHRvIHBlcnNpc3RlbnQgc3RvcmFnZSBvbiB0aGUKKyAgICAgKiBkZXZpY2Ugd2hlbiBlYWNoIE1lZGlhQ3J5cHRvIG9iamVjdCBpcyBjcmVhdGVkIGFuZCBwZXJpb2RpY2FsbHkgZHVyaW5nCisgICAgICogcGxheWJhY2suIFRoZSBzZXNzaW9uSUQgaXMgc2lnbmVkIGJ5IHRoZSBkZXZpY2UgcHJpdmF0ZSBrZXkgdG8gcHJldmVudAorICAgICAqIHRhbXBlcmluZy4KKyAgICAgKgorICAgICAqIFdoZW4gcGxheWJhY2sgaXMgY29tcGxldGVkIHRoZSBzZXNzaW9uIGlzIGRlc3Ryb3llZCwgYW5kIHRoZSBzZWN1cmUKKyAgICAgKiBzdG9wcyBhcmUgcXVlcmllZCBieSB0aGUgYXBwLiBUaGUgYXBwIHRoZW4gZGVsaXZlcnMgdGhlIHNlY3VyZSBzdG9wCisgICAgICogbWVzc2FnZSB0byBhIHNlcnZlciB3aGljaCB2ZXJpZmllcyB0aGUgc2lnbmF0dXJlIHRvIGNvbmZpcm0gdGhhdCB0aGUKKyAgICAgKiBzZXNzaW9uIGFuZCBpdHMga2V5cyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBkZXZpY2UuIFRoZSBwZXJzaXN0ZWQKKyAgICAgKiByZWNvcmQgb24gdGhlIGRldmljZSBpcyByZW1vdmVkIGFmdGVyIHJlY2VpdmluZyBhbmQgdmVyaWZ5aW5nIHRoZQorICAgICAqIHNpZ25lZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBHZXQgYWxsIHNlY3VyZSBzdG9wcyBvbiB0aGUgZGV2aWNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNlY3VyZSBzdG9wcworICAgICAqIGNhbm5vdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHNlY3VyZVN0b3BzIGEgbGlzdCBvZiB0aGUgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdHMKKyAgICAgKi8KKyAgICBnZXRTZWN1cmVTdG9wcygpIGdlbmVyYXRlcworICAgICAgICAoU3RhdHVzIHN0YXR1cywgdmVjPFNlY3VyZVN0b3A+IHNlY3VyZVN0b3BzKTsKKworICAgIC8qKgorICAgICAqIEdldCBhbGwgc2VjdXJlIHN0b3BzIGJ5IHNlY3VyZSBzdG9wIElECisgICAgICoKKyAgICAgKiBAcGFyYW0gc2VjdXJlU3RvcElkIHRoZSBJRCBvZiB0aGUgc2VjdXJlIHN0b3AgdG8gcmV0dXJuLiBUaGUKKyAgICAgKiBzZWN1cmUgc3RvcCBJRCBpcyBkZWxpdmVyZWQgYnkgdGhlIGtleSBzZXJ2ZXIgYXMgcGFydCBvZiB0aGUga2V5CisgICAgICogcmVzcG9uc2UgYW5kIG11c3QgYWxzbyBiZSBrbm93biBieSB0aGUgYXBwLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHNlY3VyZVN0b3BJZCBpcyBpbnZhbGlkIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUgc3RvcAorICAgICAqIGNhbm5vdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHNlY3VyZVN0b3AgdGhlIHNlY3VyZSBzdG9wIG9wYXF1ZSBvYmplY3QKKyAgICAgKi8KKworICAgIGdldFNlY3VyZVN0b3AoU2VjdXJlU3RvcElkIHNlY3VyZVN0b3BJZCkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBTZWN1cmVTdG9wIHNlY3VyZVN0b3ApOworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhbGwgc2VjdXJlIHN0b3BzIG9uIHRoZSBkZXZpY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc2VjdXJlCisgICAgICogc3RvcHMgY2Fubm90IGJlIHJlbGVhc2VkLgorICAgICAqLworICAgIHJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgc2VjdXJlIHN0b3AgYnkgc2VjdXJlIHN0b3AgSUQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmVTdG9wSWQgdGhlIElEIG9mIHRoZSBzZWN1cmUgc3RvcCB0byByZWxlYXNlLiBUaGUKKyAgICAgKiBzZWN1cmUgc3RvcCBJRCBpcyBkZWxpdmVyZWQgYnkgdGhlIGtleSBzZXJ2ZXIgYXMgcGFydCBvZiB0aGUga2V5CisgICAgICogcmVzcG9uc2UgYW5kIG11c3QgYWxzbyBiZSBrbm93biBieSB0aGUgYXBwLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHNlY3VyZVN0b3BJZCBpcyBpbnZhbGlkIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUgc3RvcAorICAgICAqIGNhbm5vdCBiZSByZWxlYXNlZC4KKyAgICAgKi8KKyAgICByZWxlYXNlU2VjdXJlU3RvcCh2ZWM8dWludDhfdD4gc2VjdXJlU3RvcElkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQSBkcm0gc2NoZW1lIGNhbiBoYXZlIHByb3BlcnRpZXMgdGhhdCBhcmUgc2V0dGFibGUgYW5kIHJlYWRhYmxlCisgICAgICogYnkgYW4gYXBwLiBUaGVyZSBhcmUgYSBmZXcgZm9ybXMgb2YgcHJvcGVydHkgYWNjZXNzIG1ldGhvZHMsCisgICAgICogZGVwZW5kaW5nIG9uIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHByb3BlcnR5LgorICAgICAqCisgICAgICogUHJvcGVydHkgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHB1YmxpYyBBUEkgYXJlOgorICAgICAqICAgInZlbmRvciIgW3N0cmluZ10gaWRlbnRpZmllcyB0aGUgbWFrZXIgb2YgdGhlIGRybSBzY2hlbWUKKyAgICAgKiAgICJ2ZXJzaW9uIiBbc3RyaW5nXSBpZGVudGlmaWVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkcm0gc2NoZW1lCisgICAgICogICAiZGVzY3JpcHRpb24iIFtzdHJpbmddIGRlc2NyaWJlcyB0aGUgZHJtIHNjaGVtZQorICAgICAqICAgJ2RldmljZVVuaXF1ZUlkJyBbYnl0ZSBhcnJheV0gVGhlIGRldmljZSB1bmlxdWUgaWRlbnRpZmllciBpcworICAgICAqICAgZXN0YWJsaXNoZWQgZHVyaW5nIGRldmljZSBwcm92aXNpb25pbmcgYW5kIHByb3ZpZGVzIGEgbWVhbnMgb2YKKyAgICAgKiAgIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGVhY2ggZGV2aWNlLgorICAgICAqCisgICAgICogU2luY2UgZHJtIHNjaGVtZSBwcm9wZXJ0aWVzIG1heSB2YXJ5LCBhZGRpdGlvbmFsIGZpZWxkIG5hbWVzIG1heSBiZQorICAgICAqIGRlZmluZWQgYnkgZWFjaCBEUk0gdmVuZG9yLiBSZWZlciB0byB5b3VyIERSTSBwcm92aWRlciBkb2N1bWVudGF0aW9uCisgICAgICogZm9yIGRlZmluaXRpb25zIG9mIGl0cyBhZGRpdGlvbmFsIGZpZWxkIG5hbWVzLgorICAgICAqLworCisgICAgLyoqCisgICAgICogUmVhZCBhIHN0cmluZyBwcm9wZXJ0eSB2YWx1ZSBnaXZlbiB0aGUgcHJvcGVydHkgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5CisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW52YWxpZCwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCwgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3BlcnR5CisgICAgICogY2Fubm90IGJlIG9idGFpbmVkLgorICAgICAqIEByZXR1cm4gdmFsdWUgdGhlIHByb3BlcnR5IHZhbHVlIHN0cmluZworICAgICAqLworICAgIGdldFByb3BlcnR5U3RyaW5nKHN0cmluZyBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgc3RyaW5nIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFJlYWQgYSBieXRlIGFycmF5IHByb3BlcnR5IHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgb2J0YWluZWQuCisgICAgICogQHJldHVybiB2YWx1ZSB0aGUgcHJvcGVydHkgdmFsdWUgYnl0ZSBhcnJheQorICAgICAqLworICAgIGdldFByb3BlcnR5Qnl0ZUFycmF5KHN0cmluZyBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFdyaXRlIGEgcHJvcGVydHkgc3RyaW5nIHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gd3JpdGUKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldFByb3BlcnR5U3RyaW5nKHN0cmluZyBwcm9wZXJ0eU5hbWUsIHN0cmluZyB2YWx1ZSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFdyaXRlIGEgcHJvcGVydHkgYnl0ZSBhcnJheSB2YWx1ZSBnaXZlbiB0aGUgcHJvcGVydHkgbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIHdyaXRlCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW52YWxpZCwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCwgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3BlcnR5CisgICAgICogY2Fubm90IGJlIHNldC4KKyAgICAgKi8KKyAgICBzZXRQcm9wZXJ0eUJ5dGVBcnJheShzdHJpbmcgcHJvcGVydHlOYW1lLCB2ZWM8dWludDhfdD4gdmFsdWUgKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGZvbGxvd2luZyBtZXRob2RzIGltcGxlbWVudCBvcGVyYXRpb25zIG9uIGEgQ3J5cHRvU2Vzc2lvbiB0byBzdXBwb3J0CisgICAgICogZW5jcnlwdCwgZGVjcnlwdCwgc2lnbiB2ZXJpZnkgb3BlcmF0aW9ucyBvbiBvcGVyYXRvci1wcm92aWRlZAorICAgICAqIHNlc3Npb24ga2V5cy4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2lwaGVyIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciB0aGUgc3BlY2lmaWVkIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlLiBUaGUgc3RyaW5nIGNvbmZvcm1zIHRvIEpDQQorICAgICAqIFN0YW5kYXJkIE5hbWVzIGZvciBDaXBoZXIgVHJhbnNmb3JtcyBhbmQgaXMgY2FzZSBpbnNlbnNpdGl2ZS4gQW4KKyAgICAgKiBleGFtcGxlIGFsZ29yaXRobSBpcyAiQUVTL0NCQy9QS0NTNVBhZGRpbmciLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgYWxnb3JpdGhtIGNhbm5vdCBiZSBzZXQuCisgICAgICovCisgICAgc2V0Q2lwaGVyQWxnb3JpdGhtKFNlc3Npb25JZCBzZXNzaW9uSWQsIHN0cmluZyBhbGdvcml0aG0pCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIE1BQyBhbGdvcml0aG0gdG8gYmUgdXNlZCBmb3IgY29tcHV0aW5nIGhhc2hlcyBpbiBhIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlLiBUaGUgc3RyaW5nIGNvbmZvcm1zIHRvIEpDQQorICAgICAqIFN0YW5kYXJkIE5hbWVzIGZvciBNYWMgQWxnb3JpdGhtcyBhbmQgaXMgY2FzZSBpbnNlbnNpdGl2ZS4gQW4gZXhhbXBsZSBNQUMKKyAgICAgKiBhbGdvcml0aG0gc3RyaW5nIGlzICJIbWFjU0hBMjU2Ii4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mIHRoZQorICAgICAqIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGFsZ29yaXRobSBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldE1hY0FsZ29yaXRobShTZXNzaW9uSWQgc2Vzc2lvbklkLCBzdHJpbmcgYWxnb3JpdGhtKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRW5jcnlwdCB0aGUgcHJvdmlkZWQgaW5wdXQgYnVmZmVyIHdpdGggdGhlIGNpcGhlciBhbGdvcml0aG0gc3BlY2lmaWVkIGJ5CisgICAgICogc2V0Q2lwaGVyQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkLCBhbmQgcmV0dXJuIHRoZQorICAgICAqIGVuY3J5cHRlZCBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGtleUlkIHRoZSBJRCBvZiB0aGUga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbgorICAgICAqIEBwYXJhbSBpbnB1dCB0aGUgaW5wdXQgZGF0YSB0byBlbmNyeXB0CisgICAgICogQHBhcmFtIGl2IHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlIGZvciBlbmNyeXB0aW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZiB0aGUKKyAgICAgKiBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdCBvcGVuZWQsCisgICAgICogQkFEX1ZBTFVFIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBlbmNyeXB0IG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gb3V0cHV0IHRoZSBkZWNyeXB0ZWQgZGF0YQorICAgICAqLworICAgIGVuY3J5cHQoU2Vzc2lvbklkIHNlc3Npb25JZCwgdmVjPHVpbnQ4X3Q+IGtleUlkLCB2ZWM8dWludDhfdD4gaW5wdXQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gaXYpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IG91dHB1dCk7CisKKyAgICAvKioKKyAgICAgKiBEZWNyeXB0IHRoZSBwcm92aWRlZCBpbnB1dCBidWZmZXIgd2l0aCB0aGUgY2lwaGVyIGFsZ29yaXRobQorICAgICAqIHNwZWNpZmllZCBieSBzZXRDaXBoZXJBbGdvcml0aG0gYW5kIHRoZSBrZXkgc2VsZWN0ZWQgYnkga2V5SWQsCisgICAgICogYW5kIHJldHVybiB0aGUgZGVjcnlwdGVkIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5SWQgdGhlIElEIG9mIHRoZSBrZXkgdG8gdXNlIGZvciBkZWNyeXB0aW9uCisgICAgICogQHBhcmFtIGlucHV0IHRoZSBpbnB1dCBkYXRhIHRvIGRlY3J5cHQKKyAgICAgKiBAcGFyYW0gaXYgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGRlY3J5cHQgb3BlcmF0aW9uIGNhbm5vdCBiZQorICAgICAqIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIG91dHB1dCB0aGUgZGVjcnlwdGVkIGRhdGEKKyAgICAgKi8KKyAgICBkZWNyeXB0KFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBrZXlJZCwgdmVjPHVpbnQ4X3Q+IGlucHV0LAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGl2KSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiBvdXRwdXQpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIHNpZ25hdHVyZSBvdmVyIHRoZSBwcm92aWRlZCBtZXNzYWdlIHVzaW5nIHRoZSBtYWMgYWxnb3JpdGhtCisgICAgICogc3BlY2lmaWVkIGJ5IHNldE1hY0FsZ29yaXRobSBhbmQgdGhlIGtleSBzZWxlY3RlZCBieSBrZXlJZCBhbmQgcmV0dXJuCisgICAgICogdGhlIHNpZ25hdHVyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIGEgc2lnbmF0dXJlIG92ZXIKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNpZ24gb3BlcmF0aW9uIGNhbm5vdCBiZQorICAgICAqIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIHNpZ25hdHVyZSB0aGUgY29tcHV0ZWQgc2lnbmF0dXJlCisgICAgICovCisgICAgc2lnbihTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBtZXNzYWdlKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiBzaWduYXR1cmUpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggb2YgdGhlIHByb3ZpZGVkIG1lc3NhZ2UgdXNpbmcgdGhlIG1hYyBhbGdvcml0aG0gc3BlY2lmaWVkCisgICAgICogYnkgc2V0TWFjQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkLCBhbmQgY29tcGFyZSB3aXRoIHRoZQorICAgICAqIGV4cGVjdGVkIHJlc3VsdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIGEgaGFzaCBvZgorICAgICAqIEBwYXJhbSBzaWduYXR1cmUgdGhlIHNpZ25hdHVyZSB0byB2ZXJpZnkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHZlcmlmeSBvcGVyYXRpb24gY2Fubm90IGJlCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gbWF0Y2ggdHJ1ZSBpZiB0aGUgc2lnbmF0dXJlIGlzIHZlcmlmaWVkIHBvc2l0aXZlbHksCisgICAgICogZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHZlcmlmeShTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBtZXNzYWdlLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBib29sIG1hdGNoKTsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYW4gUlNBIHNpZ25hdHVyZSBvbiB0aGUgcHJvdmlkZWQgbWVzc2FnZSB1c2luZyB0aGUgc3BlY2lmaWVkCisgICAgICogYWxnb3JpdGhtLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGFsZ29yaXRobSB0aGUgc2lnbmluZyBhbGdvcml0aG0sIHN1Y2ggYXMgIlJTQVNTQS1QU1MtU0hBMSIKKyAgICAgKiBvciAiUEtDUzEtQmxvY2tUeXBlMSIKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIHRoZSBzaWduYXR1cmUgb24KKyAgICAgKiBAcGFyYW0gd3JhcHBlZEtleSB0aGUgcHJpdmF0ZSBrZXkgcmV0dXJuZWQgZHVyaW5nIHByb3Zpc2lvbmluZyBhcworICAgICAqIHJldHVybmVkIGJ5IHByb3ZpZGVQcm92aXNpb25SZXNwb25zZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMKKyAgICAgKiBub3Qgb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNpZ25SU0EKKyAgICAgKiBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIHNpZ25hdHVyZSB0aGUgUlNBIHNpZ25hdHVyZSBjb21wdXRlZCBvdmVyIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgc2lnblJTQShTZXNzaW9uSWQgc2Vzc2lvbklkLCBzdHJpbmcgYWxnb3JpdGhtLCB2ZWM8dWludDhfdD4gbWVzc2FnZSwKKyAgICAgICAgdmVjPHVpbnQ4X3Q+IHdyYXBwZWRrZXkpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSk7CisKKyAgICAvKioKKyAgICAgKiBQbHVnaW5zIGNhbGwgdGhlIGZvbGxvd2luZyBtZXRob2RzIHRvIGRlbGl2ZXIgZXZlbnRzIHRvIHRoZQorICAgICAqIGphdmEgYXBwLgorICAgICAqLworCisgICAgLyoqCisgICAgICogU2V0IGEgbGlzdGVuZXIgZm9yIGEgZHJtIHNlc3Npb24uIFRoaXMgYWxsb3dzIHRoZSBkcm0gSEFMIHRvCisgICAgICogbWFrZSBhc3luY2hyb25vdXMgY2FsbHMgYmFjayB0byB0aGUgY2xpZW50IG9mIElEcm0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgaW5zdGFuY2Ugb2YgSURybVBsdWdpbkxpc3RlbmVyIHRvIHJlY2VpdmUgdGhlIGV2ZW50cworICAgICAqLworICAgIHNldExpc3RlbmVyKElEcm1QbHVnaW5MaXN0ZW5lciBsaXN0ZW5lcik7CisKKyAgICAvKioKKyAgICAgKiBMZWdhY3kgZXZlbnQgc2VuZGluZyBtZXRob2QsIGl0IHNlbmRzIGV2ZW50cyBvZiB2YXJpb3VzIHR5cGVzIHVzaW5nIGEKKyAgICAgKiBzaW5nbGUgb3ZlcmxvYWRlZCBzZXQgb2YgcGFyYW1ldGVycy4gVGhpcyBmb3JtIGlzIGRlcHJlY2F0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnRUeXBlIHRoZSB0eXBlIG9mIHRoZSBldmVudAorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGRhdGEgZXZlbnQtc3BlY2lmaWMgZGF0YSBibG9iCisgICAgICovCisgICAgc2VuZEV2ZW50KEV2ZW50VHlwZSBldmVudFR5cGUsIFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBsaWNlbnNlIGV4cGlyYXRpb24gdXBkYXRlIHRvIHRoZSBsaXN0ZW5lci4gVGhlIGV4cGlyYXRpb24KKyAgICAgKiB1cGRhdGUgaW5kaWNhdGVzIGhvdyBsb25nIHRoZSBjdXJyZW50IGxpY2Vuc2UgaXMgdmFsaWQgYmVmb3JlIGl0CisgICAgICogbmVlZHMgdG8gYmUgcmVuZXdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGV4cGlyeVRpbWVJbk1TIHRoZSB0aW1lIHdoZW4gdGhlIGtleXMgbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqIFRoZSB0aW1lIGlzIGluIG1pbGxpc2Vjb25kcywgcmVsYXRpdmUgdG8gdGhlIFVuaXggZXBvY2guIEEgdGltZSBvZiAwCisgICAgICogaW5kaWNhdGVzIHRoYXQgdGhlIGtleXMgbmV2ZXIgZXhwaXJlLgorICAgICAqLworICAgICBzZW5kRXhwaXJhdGlvblVwZGF0ZShTZXNzaW9uSWQgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBrZXlzIGNoYW5nZSBldmVudCB0byB0aGUgbGlzdGVuZXIuIFRoZSBrZXlzIGNoYW5nZSBldmVudAorICAgICAqIGluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGVhY2gga2V5IGluIHRoZSBzZXNzaW9uLiBLZXlzIGNhbiBiZQorICAgICAqIGluZGljYXRlZCBhcyBiZWluZyB1c2FibGUsIGV4cGlyZWQsIG91dHB1dG5vdGFsbG93ZWQgb3Igc3RhdHVzcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGtleVN0YXR1c0xpc3QgaW5kaWNhdGVzIHRoZSBzdGF0dXMgZm9yIGVhY2gga2V5IElEIGluIHRoZQorICAgICAqIHNlc3Npb24uCisgICAgICogQHBhcmFtIGhhc05ld1VzYWJsZUtleSBpbmRpY2F0ZXMgaWYgdGhlIGV2ZW50IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQorICAgICAqIGtleSB0aGF0IGhhcyBiZWNvbWUgdXNhYmxlLgorICAgICAqLworICAgIHNlbmRLZXlzQ2hhbmdlKFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3QsCisgICAgICAgICAgICBib29sIGhhc05ld1VzYWJsZUtleSk7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaGFsIGIvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1Y2UwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lEcm1QbHVnaW5MaXN0ZW5lci5oYWwKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjp0eXBlczsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvZHJtL0RybUFQSS5oOkRybVBsdWdpbkxpc3RlbmVyCisgKi8KKworLyoqCisgKiBJRHJtUGx1Z2luTGlzdGVuZXIgaXMgYSBsaXN0ZW5lciBpbnRlcmZhY2UgZm9yIERybSBldmVudHMgc2VudCBmcm9tIGFuCisgKiBJRHJtUGx1Z2luIGluc3RhbmNlLgorICovCitpbnRlcmZhY2UgSURybVBsdWdpbkxpc3RlbmVyIHsKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBldmVudCBzZW5kaW5nIG1ldGhvZCwgaXQgc2VuZHMgZXZlbnRzIG9mIHZhcmlvdXMgdHlwZXMgdXNpbmcgYQorICAgICAqIHNpbmdsZSBvdmVybG9hZGVkIHNldCBvZiBwYXJhbWV0ZXJzLiBUaGlzIGZvcm0gaXMgZGVwcmVjYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudFR5cGUgdGhlIHR5cGUgb2YgdGhlIGV2ZW50CisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0gZGF0YSBldmVudC1zcGVjaWZpYyBkYXRhIGJsb2IKKyAgICAgKi8KKyAgICBvbmV3YXkgc2VuZEV2ZW50KEV2ZW50VHlwZSBldmVudFR5cGUsIFNlc3Npb25JZCBzZXNzaW9uSWQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gZGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgbGljZW5zZSBleHBpcmF0aW9uIHVwZGF0ZSB0byB0aGUgbGlzdGVuZXIuIFRoZSBleHBpcmF0aW9uCisgICAgICogdXBkYXRlIGluZGljYXRlcyBob3cgbG9uZyB0aGUgY3VycmVudCBrZXlzIGFyZSB2YWxpZCBiZWZvcmUgdGhleQorICAgICAqIG5lZWQgdG8gYmUgcmVuZXdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGV4cGlyeVRpbWVJbk1TIHRoZSB0aW1lIHdoZW4gdGhlIGtleXMgbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqIFRoZSB0aW1lIGlzIGluIG1pbGxpc2Vjb25kcywgcmVsYXRpdmUgdG8gdGhlIFVuaXggZXBvY2guIEEgdGltZQorICAgICAqIG9mIDAgaW5kaWNhdGVzIHRoYXQgdGhlIGtleXMgbmV2ZXIgZXhwaXJlLgorICAgICAqLworICAgIG9uZXdheSBzZW5kRXhwaXJhdGlvblVwZGF0ZShTZXNzaW9uSWQgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBrZXlzIGNoYW5nZSBldmVudCB0byB0aGUgbGlzdGVuZXIuIFRoZSBrZXlzIGNoYW5nZSBldmVudAorICAgICAqIGluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGVhY2gga2V5IGluIHRoZSBzZXNzaW9uLiBLZXlzIGNhbiBiZQorICAgICAqIGluZGljYXRlZCBhcyBiZWluZyB1c2FibGUsIGV4cGlyZWQsIG91dHB1dG5vdGFsbG93ZWQgb3Igc3RhdHVzcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGtleVN0YXR1c0xpc3QgaW5kaWNhdGVzIHRoZSBzdGF0dXMgZm9yIGVhY2gga2V5IElEIGluIHRoZQorICAgICAqIHNlc3Npb24uCisgICAgICogQHBhcmFtIGhhc05ld1VzYWJsZUtleSBpbmRpY2F0ZXMgaWYgdGhlIGV2ZW50IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQorICAgICAqIGtleSB0aGF0IGhhcyBiZWNvbWUgdXNhYmxlLgorICAgICAqLworICAgIG9uZXdheSBzZW5kS2V5c0NoYW5nZShTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8S2V5U3RhdHVzPiBrZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpOworfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZHJtLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMwNWRhOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsOTAgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworIyMjIyMjIyMjIyMjIyBCdWlsZCBsZWdhY3kgZHJtIHNlcnZpY2UgIyMjIyMjIyMjIyMjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIFwKKyAgYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAgXAorICBsaWJoaWRsYmFzZSBcCisgIGxpYmhpZGx0cmFuc3BvcnQgXAorICBsaWJoYXJkd2FyZSBcCisgIGxpYmxvZyBcCisgIGxpYnV0aWxzIFwKKyAgbGliYmluZGVyIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgIGhhcmR3YXJlL2ludGVyZmFjZXMvZHJtCisKKyMgVE9ETyhiLzE4OTQ4OTA5KSBTb21lIGxlZ2FjeSBEUk0gcGx1Z2lucyBvbmx5IHN1cHBvcnQgMzItYml0LiBUaGV5IG5lZWQgdG8gYmUKKyMgbWlncmF0ZWQgdG8gNjQtYml0LiBPbmNlIGFsbCBvZiBhIGRldmljZSdzIGxlZ2FjeSBEUk0gcGx1Z2lucyBzdXBwb3J0IDY0LWJpdCwKKyMgdGhhdCBkZXZpY2UgY2FuIHR1cm4gb24gVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCB0byBidWlsZCB0aGlzIHNlcnZpY2UgYXMKKyMgNjQtYml0LgoraWZuZXEgKCQoVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCksIHRydWUpCitMT0NBTF8zMl9CSVRfT05MWSA6PSB0cnVlCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKKworIyMjIyMjIyMjIyMjIyBCdWlsZCBsZWdhY3kgZHJtIGltcGwgbGlicmFyeSAjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBEcm1GYWN0b3J5LmNwcCBcCisgICAgRHJtUGx1Z2luLmNwcCBcCisgICAgQ3J5cHRvRmFjdG9yeS5jcHAgXAorICAgIENyeXB0b1BsdWdpbi5jcHAgXAorICAgIExlZ2FjeVBsdWdpblBhdGguY3BwIFwKKyAgICBUeXBlQ29udmVydC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAgXAorICAgIGFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsbWVtb3J5IFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYm1lZGlhZHJtIFwKKyAgICBsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIFwKKyAgICBsaWJ1dGlscyBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgIGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUgXAorICAgIGZyYW1ld29ya3MvYXYvaW5jbHVkZQorCisjIFRPRE86IFNvbWUgbGVnYWN5IERSTSBwbHVnaW5zIG9ubHkgc3VwcG9ydCAzMi1iaXQuIFRoZXkgbmVlZCB0byBiZSBtaWdyYXRlZCB0bworIyA2NC1iaXQuIChiLzE4OTQ4OTA5KSBPbmNlIGFsbCBvZiBhIGRldmljZSdzIGxlZ2FjeSBEUk0gcGx1Z2lucyBzdXBwb3J0IDY0LWJpdCwKKyMgdGhhdCBkZXZpY2UgY2FuIHR1cm4gb24gVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCB0byBidWlsZCB0aGlzIGltcGwgYXMKKyMgNjQtYml0LgoraWZuZXEgKCQoVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCksIHRydWUpCitMT0NBTF8zMl9CSVRfT05MWSA6PSB0cnVlCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhYjgzYgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwiCisKKyNpbmNsdWRlICJDcnlwdG9GYWN0b3J5LmgiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgIkNyeXB0b1BsdWdpbi5oIgorI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgQ3J5cHRvRmFjdG9yeTo6Q3J5cHRvRmFjdG9yeSgpIDoKKyAgICAgICAgbG9hZGVyKGdldERybVBsdWdpblBhdGgoKSwgImNyZWF0ZUNyeXB0b0ZhY3RvcnkiKSB7CisgICAgfQorCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b0ZhY3RvcnkgZm9sbG93LgorICAgIFJldHVybjxib29sPiBDcnlwdG9GYWN0b3J5Ojppc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodXVpZC5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9GYWN0b3J5OjpjcmVhdGVQbHVnaW4oY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5pdERhdGEsIGNyZWF0ZVBsdWdpbl9jYiBfaGlkbF9jYikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqbGVnYWN5UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBsb2FkZXIuZ2V0RmFjdG9yeShpKS0+Y3JlYXRlUGx1Z2luKHV1aWQuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5zaXplKCksICZsZWdhY3lQbHVnaW4pOworICAgICAgICAgICAgICAgIENyeXB0b1BsdWdpbiAqbmV3UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBpZiAobGVnYWN5UGx1Z2luID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkNyeXB0byBsZWdhY3kgSEFMOiBmYWlsZWQgdG8gY3JlYXRlIGNyeXB0byBwbHVnaW4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdQbHVnaW4gPSBuZXcgQ3J5cHRvUGx1Z2luKGxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG5ld1BsdWdpbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBJQ3J5cHRvRmFjdG9yeSogSElETF9GRVRDSF9JQ3J5cHRvRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3J5cHRvRmFjdG9yeSgpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuaCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyYjU1NwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19DUllQVE9GQUNUT1JZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg+CisjaW5jbHVkZSA8bWVkaWEvUGx1Z2luTG9hZGVyLmg+CisjaW5jbHVkZSA8bWVkaWEvU2hhcmVkTGlicmFyeS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IENyeXB0b0ZhY3RvcnkgOiBwdWJsaWMgSUNyeXB0b0ZhY3RvcnkgeworICAgIENyeXB0b0ZhY3RvcnkoKTsKKyAgICB2aXJ0dWFsIH5DcnlwdG9GYWN0b3J5KCkge30KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5IGZvbGxvdy4KKworICAgIFJldHVybjxib29sPiBpc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgYW5kcm9pZDo6UGx1Z2luTG9hZGVyPGFuZHJvaWQ6OkNyeXB0b0ZhY3Rvcnk+IGxvYWRlcjsKKworICAgIENyeXB0b0ZhY3RvcnkoY29uc3QgQ3J5cHRvRmFjdG9yeSAmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBDcnlwdG9GYWN0b3J5ICYpID0gZGVsZXRlOworfTsKKworZXh0ZXJuICJDIiBJQ3J5cHRvRmFjdG9yeSogSElETF9GRVRDSF9JQ3J5cHRvRmFjdG9yeShjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvUGx1Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTE4NjFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5jcHAKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtaW1wbCIKKworI2luY2x1ZGUgIkNyeXB0b1BsdWdpbi5oIgorI2luY2x1ZGUgIlR5cGVDb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG1lZGlhL3N0YWdlZnJpZ2h0L2ZvdW5kYXRpb24vQVN0cmluZy5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyBhbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luIGZvbGxvdworICAgIFJldHVybjxib29sPiBDcnlwdG9QbHVnaW46OnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lKSB7CisgICAgICAgIHJldHVybiBtTGVnYWN5UGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQobWltZS5jX3N0cigpKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gQ3J5cHRvUGx1Z2luOjpub3RpZnlSZXNvbHV0aW9uKHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgaGVpZ2h0KSB7CisgICAgICAgIG1MZWdhY3lQbHVnaW4tPm5vdGlmeVJlc29sdXRpb24od2lkdGgsIGhlaWdodCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gQ3J5cHRvUGx1Z2luOjpzZXRNZWRpYURybVNlc3Npb24oCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24odG9WZWN0b3Ioc2Vzc2lvbklkKSkpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9QbHVnaW46OnNldFNoYXJlZEJ1ZmZlckJhc2UoY29uc3QgaGlkbF9tZW1vcnkmIGJhc2UsCisgICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJZCkgeworICAgICAgICBtU2hhcmVkQnVmZmVyTWFwW2J1ZmZlcklkXSA9IG1hcE1lbW9yeShiYXNlKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gQ3J5cHRvUGx1Z2luOjpkZWNyeXB0KGJvb2wgc2VjdXJlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGl2LCBNb2RlIG1vZGUsCisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICAgICAgY29uc3QgU2hhcmVkQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90IG9mZnNldCwKKyAgICAgICAgICAgIGNvbnN0IERlc3RpbmF0aW9uQnVmZmVyJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgIGRlY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBpZiAobVNoYXJlZEJ1ZmZlck1hcC5maW5kKHNvdXJjZS5idWZmZXJJZCkgPT0gbVNoYXJlZEJ1ZmZlck1hcC5lbmQoKSkgeworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgInNvdXJjZSBkZWNyeXB0IGJ1ZmZlciBiYXNlIG5vdCBzZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGVzdGluYXRpb24udHlwZSA9PSBCdWZmZXJUeXBlOjpTSEFSRURfTUVNT1JZKSB7CisgICAgICAgICAgICBjb25zdCBTaGFyZWRCdWZmZXImIGRlc3QgPSBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnk7CisgICAgICAgICAgICBpZiAobVNoYXJlZEJ1ZmZlck1hcC5maW5kKGRlc3QuYnVmZmVySWQpID09IG1TaGFyZWRCdWZmZXJNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCAwLCAiZGVzdGluYXRpb24gZGVjcnlwdCBidWZmZXIgYmFzZSBub3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6TW9kZSBsZWdhY3lNb2RlOworICAgICAgICBzd2l0Y2gobW9kZSkgeworICAgICAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfVW5lbmNyeXB0ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX0NUUjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1vZGU6OkFFU19DQkNfQ1RTOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX1dWOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgICAgIGxlZ2FjeU1vZGUgPSBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OmtNb2RlX0FFU19DQkM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlBhdHRlcm4gbGVnYWN5UGF0dGVybjsKKyAgICAgICAgbGVnYWN5UGF0dGVybi5tRW5jcnlwdEJsb2NrcyA9IHBhdHRlcm4uZW5jcnlwdEJsb2NrczsKKyAgICAgICAgbGVnYWN5UGF0dGVybi5tU2tpcEJsb2NrcyA9IHBhdHRlcm4uc2tpcEJsb2NrczsKKworICAgICAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlN1YlNhbXBsZSAqbGVnYWN5U3ViU2FtcGxlcyA9CisgICAgICAgICAgICBuZXcgYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjpTdWJTYW1wbGVbc3ViU2FtcGxlcy5zaXplKCldOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgbGVnYWN5U3ViU2FtcGxlc1tpXS5tTnVtQnl0ZXNPZkNsZWFyRGF0YQorICAgICAgICAgICAgICAgID0gc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mQ2xlYXJEYXRhOworICAgICAgICAgICAgbGVnYWN5U3ViU2FtcGxlc1tpXS5tTnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEKKyAgICAgICAgICAgICAgICA9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7CisgICAgICAgIH0KKworICAgICAgICBBU3RyaW5nIGRldGFpbE1lc3NhZ2U7CisgICAgICAgIHNwPElNZW1vcnk+IHNvdXJjZUJhc2UgPSBtU2hhcmVkQnVmZmVyTWFwW3NvdXJjZS5idWZmZXJJZF07CisKKyAgICAgICAgaWYgKHNvdXJjZS5vZmZzZXQgKyBvZmZzZXQgKyBzb3VyY2Uuc2l6ZSA+IHNvdXJjZUJhc2UtPmdldFNpemUoKSkgeworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgImludmFsaWQgYnVmZmVyIHNpemUiKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB1aW50OF90ICpiYXNlID0gc3RhdGljX2Nhc3Q8dWludDhfdCAqPgorICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDx2b2lkICo+KHNvdXJjZUJhc2UtPmdldFBvaW50ZXIoKSkpOworICAgICAgICB2b2lkICpzcmNQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGJhc2UgKyBzb3VyY2Uub2Zmc2V0ICsgb2Zmc2V0KTsKKworICAgICAgICB2b2lkICpkZXN0UHRyID0gTlVMTDsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnR5cGUgPT0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSkgeworICAgICAgICAgICAgY29uc3QgU2hhcmVkQnVmZmVyJiBkZXN0QnVmZmVyID0gZGVzdGluYXRpb24ubm9uc2VjdXJlTWVtb3J5OworICAgICAgICAgICAgc3A8SU1lbW9yeT4gZGVzdEJhc2UgPSBtU2hhcmVkQnVmZmVyTWFwW2Rlc3RCdWZmZXIuYnVmZmVySWRdOworICAgICAgICAgICAgaWYgKGRlc3RCdWZmZXIub2Zmc2V0ICsgZGVzdEJ1ZmZlci5zaXplID4gZGVzdEJhc2UtPmdldFNpemUoKSkgeworICAgICAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIDAsICJpbnZhbGlkIGJ1ZmZlciBzaXplIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc3RQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGJhc2UgKyBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnkub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIGlmIChkZXN0aW5hdGlvbi50eXBlID09IEJ1ZmZlclR5cGU6Ok5BVElWRV9IQU5ETEUpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCAqaGFuZGxlID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QgKj4oCisgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLnNlY3VyZU1lbW9yeS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgICAgICAgICBkZXN0UHRyID0gc3RhdGljX2Nhc3Q8dm9pZCAqPihoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIHNzaXplX3QgcmVzdWx0ID0gbUxlZ2FjeVBsdWdpbi0+ZGVjcnlwdChzZWN1cmUsIGtleUlkLmRhdGEoKSwgaXYuZGF0YSgpLAorICAgICAgICAgICAgICAgIGxlZ2FjeU1vZGUsIGxlZ2FjeVBhdHRlcm4sIHNyY1B0ciwgbGVnYWN5U3ViU2FtcGxlcywKKyAgICAgICAgICAgICAgICBzdWJTYW1wbGVzLnNpemUoKSwgZGVzdFB0ciwgJmRldGFpbE1lc3NhZ2UpOworCisgICAgICAgIGRlbGV0ZVtdIGxlZ2FjeVN1YlNhbXBsZXM7CisKKyAgICAgICAgdWludDMyX3Qgc3RhdHVzOworICAgICAgICB1aW50MzJfdCBieXRlc1dyaXR0ZW47CisKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBhbmRyb2lkOjpPSzsKKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IHJlc3VsdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHJlc3VsdDsKKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgICAgIH0KKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBieXRlc1dyaXR0ZW4sIGRldGFpbE1lc3NhZ2UuY19zdHIoKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uaCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWNjMmFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9QbHVnaW4uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0NyeXB0b0FQSS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpQYXR0ZXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdWJTYW1wbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBDcnlwdG9QbHVnaW4gOiBwdWJsaWMgSUNyeXB0b1BsdWdpbiB7CisgICAgQ3J5cHRvUGx1Z2luKGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqcGx1Z2luKSA6IG1MZWdhY3lQbHVnaW4ocGx1Z2luKSB7fQorCisgICAgfkNyeXB0b1BsdWdpbigpIHtkZWxldGUgbUxlZ2FjeVBsdWdpbjt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luCisgICAgLy8gZm9sbG93LgorCisgICAgUmV0dXJuPGJvb2w+IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudChjb25zdCBoaWRsX3N0cmluZyYgbWltZSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVJlc29sdXRpb24odWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRNZWRpYURybVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNldFNoYXJlZEJ1ZmZlckJhc2UoY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkmIGJhc2UsCisgICAgICAgIHVpbnQzMl90IGJ1ZmZlcklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBkZWNyeXB0KGJvb2wgc2VjdXJlLCBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYga2V5SWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgaXYsIE1vZGUgbW9kZSwgY29uc3QgUGF0dGVybiYgcGF0dGVybiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgc291cmNlLAorICAgICAgICAgICAgdWludDY0X3Qgb2Zmc2V0LCBjb25zdCBEZXN0aW5hdGlvbkJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgICAgICBkZWNyeXB0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW4gKm1MZWdhY3lQbHVnaW47CisgICAgc3RkOjptYXA8dWludDMyX3QsIHNwPElNZW1vcnk+ID4gbVNoYXJlZEJ1ZmZlck1hcDsKKworICAgIENyeXB0b1BsdWdpbigpID0gZGVsZXRlOworICAgIENyeXB0b1BsdWdpbihjb25zdCBDcnlwdG9QbHVnaW4gJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ3J5cHRvUGx1Z2luICYpID0gZGVsZXRlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U1ZDk5OAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKK2AgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiRHJtRmFjdG9yeS5oIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlICJEcm1QbHVnaW4uaCIKKyNpbmNsdWRlICJMZWdhY3lQbHVnaW5QYXRoLmgiCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworICAgIERybUZhY3Rvcnk6OkRybUZhY3RvcnkoKSA6CisgICAgICAgIGxvYWRlcihnZXREcm1QbHVnaW5QYXRoKCksICJjcmVhdGVEcm1GYWN0b3J5IikgeworICAgIH0KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48Ym9vbD4gRHJtRmFjdG9yeTo6aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQgKAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsb2FkZXIuZmFjdG9yeUNvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGxvYWRlci5nZXRGYWN0b3J5KGkpLT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCh1dWlkLmRhdGEoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmV0dXJuPGJvb2w+IERybUZhY3Rvcnk6OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQgKAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChTdHJpbmc4KG1pbWVUeXBlLmNfc3RyKCkpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtRmFjdG9yeTo6Y3JlYXRlUGx1Z2luKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIC8qIGFwcFBhY2thZ2VOYW1lICovLCBjcmVhdGVQbHVnaW5fY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbiAqbGVnYWN5UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBsb2FkZXIuZ2V0RmFjdG9yeShpKS0+Y3JlYXRlRHJtUGx1Z2luKAorICAgICAgICAgICAgICAgICAgICAgICAgdXVpZC5kYXRhKCksICZsZWdhY3lQbHVnaW4pOworICAgICAgICAgICAgICAgIERybVBsdWdpbiAqbmV3UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBpZiAobGVnYWN5UGx1Z2luID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkRybSBsZWdhY3kgSEFMOiBmYWlsZWQgdG8gY3JlYXRlIGRybSBwbHVnaW4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdQbHVnaW4gPSBuZXcgRHJtUGx1Z2luKGxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG5ld1BsdWdpbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBJRHJtRmFjdG9yeSogSElETF9GRVRDSF9JRHJtRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgICAgIHJldHVybiBuZXcgRHJtRmFjdG9yeSgpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0RybUZhY3RvcnkuaCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwODg0NAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTUZBQ1RPUllfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1GQUNUT1JZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvZHJtL0RybUFQSS5oPgorI2luY2x1ZGUgPG1lZGlhL1BsdWdpbkxvYWRlci5oPgorI2luY2x1ZGUgPG1lZGlhL1NoYXJlZExpYnJhcnkuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEcm1GYWN0b3J5IDogcHVibGljIElEcm1GYWN0b3J5IHsKKyAgICBEcm1GYWN0b3J5KCk7CisgICAgdmlydHVhbCB+RHJtRmFjdG9yeSgpIHt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeSBmb2xsb3cuCisKKyAgICBSZXR1cm48Ym9vbD4gaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjxib29sPiBpc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IGhpZGxfc3RyaW5nICZtaW1lVHlwZSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhcHBQYWNrYWdlTmFtZSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpQbHVnaW5Mb2FkZXI8YW5kcm9pZDo6RHJtRmFjdG9yeT4gbG9hZGVyOworCisgICAgRHJtRmFjdG9yeShjb25zdCBEcm1GYWN0b3J5ICYpID0gZGVsZXRlOworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IERybUZhY3RvcnkgJikgPSBkZWxldGU7Cit9OworCitleHRlcm4gIkMiIElEcm1GYWN0b3J5KiBISURMX0ZFVENIX0lEcm1GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fRFJNRkFDVE9SWV9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmNwcCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTVlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmNwcApAQCAtMCwwICsxLDQzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+CisKKyNpbmNsdWRlICJEcm1QbHVnaW4uaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbiBmb2xsb3cuCisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpvcGVuU2Vzc2lvbihvcGVuU2Vzc2lvbl9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2Vzc2lvbklkOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5vcGVuU2Vzc2lvbihsZWdhY3lTZXNzaW9uSWQpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5U2Vzc2lvbklkKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpjbG9zZVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgeworICAgICAgICByZXR1cm4gdG9TdGF0dXMobUxlZ2FjeVBsdWdpbi0+Y2xvc2VTZXNzaW9uKHRvVmVjdG9yKHNlc3Npb25JZCkpKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRLZXlSZXF1ZXN0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzY29wZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlLAorICAgICAgICAgICAgS2V5VHlwZSBrZXlUeXBlLCBjb25zdCBoaWRsX3ZlYzxLZXlWYWx1ZT4mIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgICAgIGdldEtleVJlcXVlc3RfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBhbmRyb2lkOjpPSzsKKworICAgICAgICBhbmRyb2lkOjpEcm1QbHVnaW46OktleVR5cGUgbGVnYWN5S2V5VHlwZTsKKyAgICAgICAgc3dpdGNoKGtleVR5cGUpIHsKKyAgICAgICAgY2FzZSBLZXlUeXBlOjpPRkZMSU5FOgorICAgICAgICAgICAgbGVnYWN5S2V5VHlwZSA9IGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVR5cGVfT2ZmbGluZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleVR5cGU6OlNUUkVBTUlORzoKKyAgICAgICAgICAgIGxlZ2FjeUtleVR5cGUgPSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlUeXBlX1N0cmVhbWluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleVR5cGU6OlJFTEVBU0U6CisgICAgICAgICAgICBsZWdhY3lLZXlUeXBlID0gYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5VHlwZV9SZWxlYXNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBhbmRyb2lkOjpCQURfVkFMVUU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lSZXF1ZXN0OworICAgICAgICBLZXlSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpVTktOT1dOOworICAgICAgICBTdHJpbmc4IGRlZmF1bHRVcmw7CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpPSykgeworICAgICAgICAgICAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8U3RyaW5nOCwgU3RyaW5nOD4gbGVnYWN5T3B0aW9uYWxQYXJhbWV0ZXJzOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25hbFBhcmFtZXRlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBsZWdhY3lPcHRpb25hbFBhcmFtZXRlcnMuYWRkKFN0cmluZzgob3B0aW9uYWxQYXJhbWV0ZXJzW2ldLmtleS5jX3N0cigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgob3B0aW9uYWxQYXJhbWV0ZXJzW2ldLnZhbHVlLmNfc3RyKCkpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlSZXF1ZXN0VHlwZSBsZWdhY3lSZXF1ZXN0VHlwZSA9CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1Vua25vd247CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldEtleVJlcXVlc3QodG9WZWN0b3Ioc2NvcGUpLAorICAgICAgICAgICAgICAgICAgICB0b1ZlY3Rvcihpbml0RGF0YSksIFN0cmluZzgobWltZVR5cGUuY19zdHIoKSksIGxlZ2FjeUtleVR5cGUsCisgICAgICAgICAgICAgICAgICAgIGxlZ2FjeU9wdGlvbmFsUGFyYW1ldGVycywgbGVnYWN5UmVxdWVzdCwgZGVmYXVsdFVybCwKKyAgICAgICAgICAgICAgICAgICAgJmxlZ2FjeVJlcXVlc3RUeXBlKTsKKworICAgICAgICAgICAgc3dpdGNoKGxlZ2FjeVJlcXVlc3RUeXBlKSB7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX0luaXRpYWw6CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6SU5JVElBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5UmVxdWVzdFR5cGVfUmVuZXdhbDoKKyAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpSRU5FV0FMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlSZXF1ZXN0VHlwZV9SZWxlYXNlOgorICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlID0gS2V5UmVxdWVzdFR5cGU6OlJFTEVBU0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1Vua25vd246CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6VU5LTk9XTjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5UmVxdWVzdCksIHJlcXVlc3RUeXBlLAorICAgICAgICAgICAgICAgICBkZWZhdWx0VXJsLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpwcm92aWRlS2V5UmVzcG9uc2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLCBwcm92aWRlS2V5UmVzcG9uc2VfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4ga2V5U2V0SWQ7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSh0b1ZlY3RvcihzY29wZSksCisgICAgICAgICAgICAgICAgdG9WZWN0b3IocmVzcG9uc2UpLCBrZXlTZXRJZCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhrZXlTZXRJZCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6cmVtb3ZlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5yZW1vdmVLZXlzKHRvVmVjdG9yKHNlc3Npb25JZCkpKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnJlc3RvcmVLZXlzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+cmVzdG9yZUtleXModG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihrZXlTZXRJZCkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpxdWVyeUtleVN0YXR1cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgcXVlcnlLZXlTdGF0dXNfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBhbmRyb2lkOjpLZXllZFZlY3RvcjxTdHJpbmc4LCBTdHJpbmc4PiBsZWdhY3lJbmZvTWFwOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5xdWVyeUtleVN0YXR1cyh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIGxlZ2FjeUluZm9NYXApOworCisgICAgICAgIFZlY3RvcjxLZXlWYWx1ZT4gaW5mb01hcFZlYzsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZWdhY3lJbmZvTWFwLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBLZXlWYWx1ZSBrZXlWYWx1ZVBhaXI7CisgICAgICAgICAgICBrZXlWYWx1ZVBhaXIua2V5ID0gU3RyaW5nOChsZWdhY3lJbmZvTWFwLmtleUF0KGkpKTsKKyAgICAgICAgICAgIGtleVZhbHVlUGFpci52YWx1ZSA9IFN0cmluZzgobGVnYWN5SW5mb01hcC52YWx1ZUF0KGkpKTsKKyAgICAgICAgICAgIGluZm9NYXBWZWMucHVzaF9iYWNrKGtleVZhbHVlUGFpcik7CisgICAgICAgIH0KKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGluZm9NYXBWZWMpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm92aXNpb25SZXF1ZXN0KAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjZXJ0aWZpY2F0ZUF1dGhvcml0eSwKKyAgICAgICAgICAgIGdldFByb3Zpc2lvblJlcXVlc3RfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5UmVxdWVzdDsKKyAgICAgICAgU3RyaW5nOCBsZWdhY3lEZWZhdWx0VXJsOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5nZXRQcm92aXNpb25SZXF1ZXN0KAorICAgICAgICAgICAgICAgIFN0cmluZzgoY2VydGlmaWNhdGVUeXBlLmNfc3RyKCkpLCBTdHJpbmc4KGNlcnRpZmljYXRlQXV0aG9yaXR5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVJlcXVlc3QsIGxlZ2FjeURlZmF1bHRVcmwpOworCisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lSZXF1ZXN0KSwKKyAgICAgICAgICAgICAgICBoaWRsX3N0cmluZyhsZWdhY3lEZWZhdWx0VXJsKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLAorICAgICAgICAgICAgcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRpZmljYXRlOworICAgICAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleTsKKworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgdG9WZWN0b3IocmVzcG9uc2UpLCBjZXJ0aWZpY2F0ZSwgd3JhcHBlZEtleSk7CisKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMobGVnYWN5U3RhdHVzKSwgdG9IaWRsVmVjKGNlcnRpZmljYXRlKSwKKyAgICAgICAgICAgICAgICB0b0hpZGxWZWMod3JhcHBlZEtleSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldFNlY3VyZVN0b3BzKGdldFNlY3VyZVN0b3BzX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIExpc3Q8VmVjdG9yPHVpbnQ4X3Q+ID4gbGVnYWN5U2VjdXJlU3RvcHM7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFNlY3VyZVN0b3BzKGxlZ2FjeVNlY3VyZVN0b3BzKTsKKworICAgICAgICBWZWN0b3I8U2VjdXJlU3RvcD4gc2VjdXJlU3RvcHNWZWM7CisgICAgICAgIExpc3Q8VmVjdG9yPHVpbnQ4X3Q+ID46Oml0ZXJhdG9yIGl0ZXIgPSBsZWdhY3lTZWN1cmVTdG9wcy5iZWdpbigpOworCisgICAgICAgIHdoaWxlIChpdGVyICE9IGxlZ2FjeVNlY3VyZVN0b3BzLmVuZCgpKSB7CisgICAgICAgICAgICBTZWN1cmVTdG9wIHNlY3VyZVN0b3A7CisgICAgICAgICAgICBzZWN1cmVTdG9wLm9wYXF1ZURhdGEgPSB0b0hpZGxWZWMoKml0ZXIrKyk7CisgICAgICAgICAgICBzZWN1cmVTdG9wc1ZlYy5wdXNoX2JhY2soc2VjdXJlU3RvcCk7CisgICAgICAgIH0KKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMoc2VjdXJlU3RvcHNWZWMpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRTZWN1cmVTdG9wKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQsCisgICAgICAgICAgICBnZXRTZWN1cmVTdG9wX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVNlY3VyZVN0b3A7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFNlY3VyZVN0b3AodG9WZWN0b3Ioc2VjdXJlU3RvcElkKSwKKyAgICAgICAgICAgICAgICBsZWdhY3lTZWN1cmVTdG9wKTsKKworICAgICAgICBTZWN1cmVTdG9wIHNlY3VyZVN0b3A7CisgICAgICAgIHNlY3VyZVN0b3Aub3BhcXVlRGF0YSA9IHRvSGlkbFZlYyhsZWdhY3lTZWN1cmVTdG9wKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgc2VjdXJlU3RvcCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZWxlYXNlU2VjdXJlU3RvcCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnJlbGVhc2VTZWN1cmVTdG9wcyh0b1ZlY3RvcihzZWN1cmVTdG9wSWQpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6Z2V0UHJvcGVydHlTdHJpbmcoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5U3RyaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIFN0cmluZzggbGVnYWN5VmFsdWU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgICAgIFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLCBsZWdhY3lWYWx1ZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIGxlZ2FjeVZhbHVlLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm9wZXJ0eUJ5dGVBcnJheShjb25zdCBoaWRsX3N0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgZ2V0UHJvcGVydHlCeXRlQXJyYXlfY2IgX2hpZGxfY2IpIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVZhbHVlOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5nZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgICAgICBTdHJpbmc4KHByb3BlcnR5TmFtZS5jX3N0cigpKSwgbGVnYWN5VmFsdWUpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5VmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHZhbHVlLmNfc3RyKCkpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpzZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0UHJvcGVydHlCeXRlQXJyYXkoU3RyaW5nOChwcm9wZXJ0eU5hbWUuY19zdHIoKSksCisgICAgICAgICAgICAgICAgICAgIHRvVmVjdG9yKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhsZWdhY3lTdGF0dXMpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6c2V0Q2lwaGVyQWxnb3JpdGhtKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgU3RyaW5nOChhbGdvcml0aG0uY19zdHIoKSkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldE1hY0FsZ29yaXRobSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnNldE1hY0FsZ29yaXRobSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIFN0cmluZzgoYWxnb3JpdGhtLmNfc3RyKCkpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6ZW5jcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGVuY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5T3V0cHV0OworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5lbmNyeXB0KHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihpbnB1dCksIHRvVmVjdG9yKGl2KSwgbGVnYWN5T3V0cHV0KTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeU91dHB1dCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmRlY3J5cHQoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGl2LCBkZWNyeXB0X2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeU91dHB1dDsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+ZGVjcnlwdCh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleUlkKSwgdG9WZWN0b3IoaW5wdXQpLCB0b1ZlY3RvcihpdiksIGxlZ2FjeU91dHB1dCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lPdXRwdXQpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzaWduKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgc2lnbl9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2lnbmF0dXJlOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5zaWduKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihtZXNzYWdlKSwgbGVnYWN5U2lnbmF0dXJlKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeVNpZ25hdHVyZSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnZlcmlmeShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbWVzc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIHZlcmlmeV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIGJvb2wgbWF0Y2g7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnZlcmlmeSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleUlkKSwgdG9WZWN0b3IobWVzc2FnZSksIHRvVmVjdG9yKHNpZ25hdHVyZSksCisgICAgICAgICAgICAgICAgbWF0Y2gpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBtYXRjaCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2lnblJTQShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgd3JhcHBlZEtleSwgc2lnblJTQV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lTaWduYXR1cmU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnNpZ25SU0EodG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICBTdHJpbmc4KGFsZ29yaXRobS5jX3N0cigpKSwgdG9WZWN0b3IobWVzc2FnZSksIHRvVmVjdG9yKHdyYXBwZWRLZXkpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVNpZ25hdHVyZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lTaWduYXR1cmUpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZXRMaXN0ZW5lcihjb25zdCBzcDxJRHJtUGx1Z2luTGlzdGVuZXI+JiBsaXN0ZW5lcikgeworICAgICAgICBtTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIgPT0gTlVMTCA/IE5VTEwgOiB0aGlzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXZlbnQoZXZlbnRUeXBlLCBzZXNzaW9uSWQsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2VuZEV4cGlyYXRpb25VcGRhdGUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXhwaXJhdGlvblVwZGF0ZShzZXNzaW9uSWQsIGV4cGlyeVRpbWVJbk1TKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnNlbmRLZXlzQ2hhbmdlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+JiBrZXlTdGF0dXNMaXN0LCBib29sIGhhc05ld1VzYWJsZUtleSkgeworICAgICAgICBpZiAobUxpc3RlbmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIG1MaXN0ZW5lci0+c2VuZEtleXNDaGFuZ2Uoc2Vzc2lvbklkLCBrZXlTdGF0dXNMaXN0LCBoYXNOZXdVc2FibGVLZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisKKyAgICAvLyBNZXRob2RzIGZyb20gYW5kcm9pZDo6RHJtUGx1Z2luTGlzdGVuZXIKKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kRXZlbnQoYW5kcm9pZDo6RHJtUGx1Z2luOjpFdmVudFR5cGUgbGVnYWN5RXZlbnRUeXBlLAorICAgICAgICAgICAgaW50IC8qdW51c2VkKi8sIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpkYXRhKSB7CisKKyAgICAgICAgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKyAgICAgICAgYm9vbCBzZW5kRXZlbnQgPSB0cnVlOworICAgICAgICBzd2l0Y2gobGVnYWN5RXZlbnRUeXBlKSB7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRQcm92aXNpb25SZXF1aXJlZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6UFJPVklTSU9OX1JFUVVJUkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRLZXlOZWVkZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OktFWV9ORUVERUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtEcm1QbHVnaW5FdmVudEtleUV4cGlyZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OktFWV9FWFBJUkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRWZW5kb3JEZWZpbmVkOgorICAgICAgICAgICAgZXZlbnRUeXBlID0gRXZlbnRUeXBlOjpWRU5ET1JfREVGSU5FRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0RybVBsdWdpbkV2ZW50U2Vzc2lvblJlY2xhaW1lZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6U0VTU0lPTl9SRUNMQUlNRUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlbmRFdmVudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlbmRFdmVudCkgeworICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGVtcHR5VmVjdG9yOworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXZlbnQoZXZlbnRUeXBlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxWZWMoc2Vzc2lvbklkID09IE5VTEwgPyBlbXB0eVZlY3RvcjogKnNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgICAgIHRvSGlkbFZlYyhkYXRhID09IE5VTEwgPyBlbXB0eVZlY3RvcjogKmRhdGEpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kRXhwaXJhdGlvblVwZGF0ZShWZWN0b3I8dWludDhfdD4gY29uc3QgKnNlc3Npb25JZCwKKyAgICAgICAgICAgIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIHsKKyAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXhwaXJhdGlvblVwZGF0ZSh0b0hpZGxWZWMoKnNlc3Npb25JZCksIGV4cGlyeVRpbWVJbk1TKTsKKyAgICB9CisKKyAgICB2b2lkIERybVBsdWdpbjo6c2VuZEtleXNDaGFuZ2UoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8YW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXM+IGNvbnN0ICpsZWdhY3lLZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpIHsKKworICAgICAgICBWZWN0b3I8S2V5U3RhdHVzPiBrZXlTdGF0dXNWZWM7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVnYWN5S2V5U3RhdHVzTGlzdC0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnN0IGFuZHJvaWQ6OkRybVBsdWdpbjo6S2V5U3RhdHVzICZsZWdhY3lLZXlTdGF0dXMgPQorICAgICAgICAgICAgICAgIGxlZ2FjeUtleVN0YXR1c0xpc3QtPml0ZW1BdChpKTsKKworICAgICAgICAgICAgS2V5U3RhdHVzIGtleVN0YXR1czsKKworICAgICAgICAgICAgc3dpdGNoKGxlZ2FjeUtleVN0YXR1cy5tVHlwZSkgeworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX1VzYWJsZToKKyAgICAgICAgICAgICAgICBrZXlTdGF0dXMudHlwZSA9IEtleVN0YXR1c1R5cGU6OlVTQUJMRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9FeHBpcmVkOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6RVhQSVJFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9PdXRwdXROb3RBbGxvd2VkOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6T1VUUFVUTk9UQUxMT1dFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9TdGF0dXNQZW5kaW5nOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6U1RBVFVTUEVORElORzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9JbnRlcm5hbEVycm9yOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBrZXlTdGF0dXMudHlwZSA9IEtleVN0YXR1c1R5cGU6OklOVEVSTkFMRVJST1I7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGtleVN0YXR1cy5rZXlJZCA9IHRvSGlkbFZlYyhsZWdhY3lLZXlTdGF0dXMubUtleUlkKTsKKyAgICAgICAgICAgIGtleVN0YXR1c1ZlYy5wdXNoX2JhY2soa2V5U3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBtTGlzdGVuZXItPnNlbmRLZXlzQ2hhbmdlKHRvSGlkbFZlYygqc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b0hpZGxWZWMoa2V5U3RhdHVzVmVjKSwgaGFzTmV3VXNhYmxlS2V5KTsKKyAgICB9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uaCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2U2YzBjCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0RybVBsdWdpbi5oCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1QTFVHSU5fSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1QTFVHSU5fSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9kcm0vRHJtQVBJLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luTGlzdGVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVJlcXVlc3RUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IERybVBsdWdpbiA6IHB1YmxpYyBJRHJtUGx1Z2luLCBhbmRyb2lkOjpEcm1QbHVnaW5MaXN0ZW5lciB7CisKKyAgICBEcm1QbHVnaW4oYW5kcm9pZDo6RHJtUGx1Z2luICpwbHVnaW4pIDogbUxlZ2FjeVBsdWdpbihwbHVnaW4pIHt9CisgICAgfkRybVBsdWdpbigpIHtkZWxldGUgbUxlZ2FjeVBsdWdpbjt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luIGZvbGxvdy4KKworICAgIFJldHVybjx2b2lkPiBvcGVuU2Vzc2lvbihvcGVuU2Vzc2lvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBjbG9zZVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0S2V5UmVxdWVzdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2NvcGUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5pdERhdGEsIGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lVHlwZSwKKyAgICAgICAgICAgIEtleVR5cGUga2V5VHlwZSwgY29uc3QgaGlkbF92ZWM8S2V5VmFsdWU+JiBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBnZXRLZXlSZXF1ZXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBwcm92aWRlS2V5UmVzcG9uc2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLCBwcm92aWRlS2V5UmVzcG9uc2VfY2IgX2hpZGxfY2IpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlbW92ZUtleXMoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiByZXN0b3JlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBxdWVyeUtleVN0YXR1cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgcXVlcnlLZXlTdGF0dXNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3Zpc2lvblJlcXVlc3QoY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjZXJ0aWZpY2F0ZUF1dGhvcml0eSwKKyAgICAgICAgICAgIGdldFByb3Zpc2lvblJlcXVlc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHByb3ZpZGVQcm92aXNpb25SZXNwb25zZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVzcG9uc2UsCisgICAgICAgICAgICBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2VfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFNlY3VyZVN0b3BzKGdldFNlY3VyZVN0b3BzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBnZXRTZWN1cmVTdG9wKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQsCisgICAgICAgICAgICBnZXRTZWN1cmVTdG9wX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gcmVsZWFzZVNlY3VyZVN0b3AoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlY3VyZVN0b3BJZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBnZXRQcm9wZXJ0eVN0cmluZ19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydHlCeXRlQXJyYXkoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5Qnl0ZUFycmF5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UHJvcGVydHlCeXRlQXJyYXkoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRDaXBoZXJBbGdvcml0aG0oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0TWFjQWxnb3JpdGhtKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgYWxnb3JpdGhtKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBlbmNyeXB0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpdiwgZW5jcnlwdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZGVjcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGRlY3J5cHRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNpZ24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBzaWduX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiB2ZXJpZnkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2lnbmF0dXJlLCB2ZXJpZnlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNpZ25SU0EoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0sIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHdyYXBwZWRrZXksIHNpZ25SU0FfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNldExpc3RlbmVyKGNvbnN0IHNwPElEcm1QbHVnaW5MaXN0ZW5lcj4mIGxpc3RlbmVyKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2VuZEV4cGlyYXRpb25VcGRhdGUoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNlbmRLZXlzQ2hhbmdlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+JiBrZXlTdGF0dXNMaXN0LCBib29sIGhhc05ld1VzYWJsZUtleSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIGFuZHJvaWQ6OkRybVBsdWdpbkxpc3RlbmVyIGZvbGxvdworCisgICAgdmlydHVhbCB2b2lkIHNlbmRFdmVudChhbmRyb2lkOjpEcm1QbHVnaW46OkV2ZW50VHlwZSBldmVudFR5cGUsIGludCBleHRyYSwKKyAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLCBWZWN0b3I8dWludDhfdD4gY29uc3QgKmRhdGEpOworCisgICAgdmlydHVhbCB2b2lkIHNlbmRFeHBpcmF0aW9uVXBkYXRlKFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUyk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEtleXNDaGFuZ2UoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8YW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXM+IGNvbnN0ICprZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpOworCitwcml2YXRlOgorICAgIGFuZHJvaWQ6OkRybVBsdWdpbiAqbUxlZ2FjeVBsdWdpbjsKKyAgICBzcDxJRHJtUGx1Z2luTGlzdGVuZXI+IG1MaXN0ZW5lcjsKKworICAgIERybVBsdWdpbigpID0gZGVsZXRlOworICAgIERybVBsdWdpbihjb25zdCBEcm1QbHVnaW4gJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgRHJtUGx1Z2luICYpID0gZGVsZXRlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTVBMVUdJTl9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY5MDU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmNwcApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIqIGdldERybVBsdWdpblBhdGgoKSB7CisgICAgaWYgKHByb3BlcnR5X2dldF9ib29sKCJkcm0uNjRiaXQuZW5hYmxlZCIsIGZhbHNlKSkgeworICAgICAgICByZXR1cm4gIi92ZW5kb3IvbGliNjQvbWVkaWFkcm0iOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAiL3ZlbmRvci9saWIvbWVkaWFkcm0iOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0xlZ2FjeVBsdWdpblBhdGguaCBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0NWYyZQotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgTEVHQUNZX1BMVUdJTl9QQVRIX0hfCisKKyNkZWZpbmUgTEVHQUNZX1BMVUdJTl9QQVRIX0hfCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIqIGdldERybVBsdWdpblBhdGgoKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIExFR0FDWV9QTFVHSU5fUEFUSF9IXwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmNwcCBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EyNjJjMwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworU3RhdHVzIHRvU3RhdHVzKHN0YXR1c190IGxlZ2FjeVN0YXR1cykgeworICAgIFN0YXR1cyBzdGF0dXM7CisgICAgc3dpdGNoKGxlZ2FjeVN0YXR1cykgeworICAgIGNhc2UgYW5kcm9pZDo6T0s6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX05PX0xJQ0VOU0U6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX0xJQ0VOU0VfRVhQSVJFRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fVEFNUEVSX0RFVEVDVEVEOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9JTlZBTElEX1NUQVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkJBRF9WQUxVRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpCQURfVkFMVUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX05PVF9QUk9WSVNJT05FRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT046CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0lOU1VGRklDSUVOVF9PVVRQVVRfUFJPVEVDVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0RFVklDRV9SRVZPS0VEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9ERUNSWVBUOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9ERUNSWVBUOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBTE9HVygiVW5hYmxlIHRvIGNvbnZlcnQgbGVnYWN5IHN0YXR1czogJWQsIGRlZmF1bHRpbmcgdG8gVU5LTk9XTiIsCisgICAgICAgICAgICBsZWdhY3lTdGF0dXMpOworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9VTktOT1dOOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmggYi9kcm0vMS4wL2RlZmF1bHQvVHlwZUNvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDdmZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9UWVBFQ09OVkVSVAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX1RZUEVDT05WRVJUCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9zdGFnZWZyaWdodC9NZWRpYUVycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3QgaGlkbF92ZWM8VD4gdG9IaWRsVmVjKGNvbnN0IFZlY3RvcjxUPiAmVmVjdG9yKSB7CisgICAgaGlkbF92ZWM8VD4gdmVjOworICAgIHZlYy5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8VCAqPihWZWN0b3IuYXJyYXkoKSksIFZlY3Rvci5zaXplKCkpOworICAgIHJldHVybiB2ZWM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGhpZGxfdmVjPFQ+IHRvSGlkbFZlYyhWZWN0b3I8VD4gJlZlY3RvcikgeworICAgIGhpZGxfdmVjPFQ+IHZlYzsKKyAgICB2ZWMuc2V0VG9FeHRlcm5hbChWZWN0b3IuZWRpdEFycmF5KCksIFZlY3Rvci5zaXplKCkpOworICAgIHJldHVybiB2ZWM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0IFZlY3RvcjxUPiB0b1ZlY3Rvcihjb25zdCBoaWRsX3ZlYzxUPiAmdmVjKSB7CisgICAgVmVjdG9yPFQ+IHZlY3RvcjsKKyAgICB2ZWN0b3IuYXBwZW5kQXJyYXkodmVjLmRhdGEoKSwgdmVjLnNpemUoKSk7CisgICAgcmV0dXJuICpjb25zdF9jYXN0PGNvbnN0IFZlY3RvcjxUPiAqPigmdmVjdG9yKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVmVjdG9yPFQ+IHRvVmVjdG9yKGhpZGxfdmVjPFQ+ICZ2ZWMpIHsKKyAgICBWZWN0b3I8VD4gdmVjdG9yOworICAgIHZlY3Rvci5hcHBlbmRBcnJheSh2ZWMuZGF0YSgpLCB2ZWMuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgU0laRT4gY29uc3QgVmVjdG9yPFQ+IHRvVmVjdG9yKAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PFQsIFNJWkU+ICZhcnJheSkgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgU0laRT4gVmVjdG9yPFQ+IHRvVmVjdG9yKAorICAgICAgICBoaWRsX2FycmF5PFQsIFNJWkU+ICZhcnJheSkgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCitTdGF0dXMgdG9TdGF0dXMoc3RhdHVzX3QgbGVnYWN5U3RhdHVzKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9UWVBFQ09OVkVSVApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlLnJjIGIvZHJtLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3YmVjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw2IEBACitzZXJ2aWNlIGRybS1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBtZWRpYQorICAgIGdyb3VwIG1lZGlhZHJtIGRybXJwYworICAgIGlvcHJpbyBydCA0CisgICAgd3JpdGVwaWQgL2Rldi9jcHVzZXQvZm9yZWdyb3VuZC90YXNrcwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZHJtLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNDRjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDwxLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8MS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpyZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5OworCitpbnQgbWFpbigpIHsKKyAgICBBTE9HRCgiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2Ugc3RhcnRpbmcuLi4iKTsKKworICAgIC8vIFRoZSBEUk0gSEFMIG1heSBjb21tdW5pY2F0ZSB0byBvdGhlciB2ZW5kb3IgY29tcG9uZW50cyB2aWEKKyAgICAvLyAvZGV2L3ZuZGJpbmRlcgorICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6aW5pdFdpdGhEcml2ZXIoIi9kZXYvdm5kYmluZGVyIik7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDgsIHRydWUgLyogY2FsbGVyV2lsbEpvaW4gKi8pOworICAgIGFuZHJvaWQ6OnN0YXR1c190IHN0YXR1cyA9CisgICAgICAgIHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SURybUZhY3Rvcnk+KCk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRigKKyAgICAgICAgc3RhdHVzICE9IGFuZHJvaWQ6Ok9LLAorICAgICAgICAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgZHJtIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDcnlwdG9GYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoCisgICAgICAgIHN0YXR1cyAhPSBhbmRyb2lkOjpPSywKKyAgICAgICAgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIGNyeXB0byBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdHlwZXMuaGFsIGIvZHJtLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VhNWIxNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMzQ4IEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBPSyB3aGVuIGFuIG9wZXJhdGlvbiBjb21wbGV0ZXMgd2l0aG91dCBhbnkKKyAgICAgKiBlcnJvcnMuCisgICAgICovCisgICAgT0ssCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fTk9fTElDRU5TRSwgd2hlbiBkZWNyeXB0aW9uIGlzCisgICAgICogYXR0ZW1wdGVkIGFuZCBubyBsaWNlbnNlIGtleXMgaGF2ZSBiZWVuIHByb3ZpZGVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9OT19MSUNFTlNFLAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX0xJQ0VOU0VfRVhQSVJFRCBtdXN0IGJlIHJldHVybmVkIHdoZW4gYW4gYXR0ZW1wdCBpcyBtYWRlCisgICAgICogdG8gdXNlIGEgbGljZW5zZSBhbmQgdGhlIGtleXMgaW4gdGhhdCBsaWNlbnNlIGhhdmUgZXhwaXJlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBwbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCB3aGVuIGFuCisgICAgICogYXR0ZW1wdCBpcyBtYWRlIHRvIHVzZSBhIHNlc3Npb24gdGhhdCBoYXMgbm90IGJlZW4gb3BlbmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSB3aGVuIGFuIHVuc3VwcG9ydGVkCisgICAgICogZGF0YSBmb3JtYXQgb3Igb3BlcmF0aW9uIGlzIGF0dGVtcHRlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKworICAgIC8qKgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIG11c3QgYmUgcmV0dXJuZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGluIGEgc3RhdGUKKyAgICAgKiB3aGVyZSBpdCBpcyBub3QgYWJsZSB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgICAgICovCisgICAgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBCQURfVkFMVUUgd2hlbmV2ZXIgYW4gaWxsZWdhbCBwYXJhbWV0ZXIgaXMKKyAgICAgKiBwYXNzZWQgdG8gb25lIG9mIHRoZSBpbnRlcmZhY2UgZnVuY3Rpb25zLgorICAgICAqLworICAgIEJBRF9WQUxVRSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgZnJvbSBnZXRLZXlSZXF1ZXN0LAorICAgICAqIG9wZW5TZXNzaW9uIG9yIHByb3ZpZGVLZXlSZXNwb25zZSB3aGVuIHRoZSBkZXZpY2UgaGFzIG5vdCB5ZXQgYmVlbgorICAgICAqIHByb3Zpc2lvbmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQsCisKKyAgICAvKioKKyAgICAgKiBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSBtdXN0IGJlIHJldHVybmVkIHdoZW4gcmVzb3VyY2VzLCBzdWNoIGFzIGRybQorICAgICAqIHNlc3Npb25zIG9yIHNlY3VyZSBidWZmZXJzIGFyZSBub3QgYXZhaWxhYmxlIHRvIHBlcmZvcm0gYSByZXF1ZXN0ZWQKKyAgICAgKiBvcGVyYXRpb24gYmVjYXVzZSB0aGV5IGFyZSBhbHJlYWR5IGluIHVzZS4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gUGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04KKyAgICAgKiB3aGVuIHRoZSBvdXRwdXQgcHJvdGVjdGlvbiBsZXZlbCBlbmFibGVkIG9uIHRoZSBkZXZpY2UgaXMgbm90CisgICAgICogc3VmZmljaWVudCB0byBtZWV0IHRoZSByZXF1aXJlbWVudHMgaW4gdGhlIGxpY2Vuc2UgcG9saWN5LiAgSERDUCBpcyBhbgorICAgICAqIGV4YW1wbGUgb2YgYSBmb3JtIG9mIG91dHB1dCBwcm90ZWN0aW9uLgorICAgICAqLworICAgIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04sCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIFBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQgZnJvbQorICAgICAqIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZSBhbmQgcHJvdmlkZUtleVJlc3BvbnNlIGlmIHRoZSByZXNwb25zZSBpbmRpY2F0ZXMKKyAgICAgKiB0aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gcmV2b2tlZC4gRGV2aWNlIHJldm9jYXRpb24gbWVhbnMgdGhhdCB0aGUgZGV2aWNlCisgICAgICogaXMgbm8gbG9uZ2VyIHBlcm1pdHRlZCB0byBwbGF5IGNvbnRlbnQuCisgICAgICovCisgICAgRVJST1JfRFJNX0RFVklDRV9SRVZPS0VELAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBQbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX0RFQ1JZUFQgaWYgdGhlIENyeXB0b1BsdWdpbgorICAgICAqIGRlY3J5cHQgb3BlcmF0aW9uIGZhaWxzLgorICAgICAqLworICAgIEVSUk9SX0RSTV9ERUNSWVBULAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX1VOS05PV04gbXVzdCBiZSByZXR1cm5lZCB3aGVuIGEgZmF0YWwgZmFpbHVyZSBvY2N1cnMgYW5kIG5vCisgICAgICogb3RoZXIgZGVmaW5lZCBlcnJvciBpcyBhcHByb3ByaWF0ZS4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fVU5LTk9XTiwKK307CisKKworLyoqCisgKiBFdmVudFR5cGUgZW51bWVyYXRlcyB0aGUgZXZlbnRzIHRoYXQgY2FuIGJlIGRlbGl2ZXJlZCBieSBzZW5kRXZlbnQKKyAqLworZW51bSBFdmVudFR5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogVGhpcyBldmVudCB0eXBlIGluZGljYXRlcyB0aGF0IHRoZSBhcHAgbmVlZHMgdG8gcmVxdWVzdCBhIGNlcnRpZmljYXRlCisgICAgICogZnJvbSB0aGUgcHJvdmlzaW9uaW5nIHNlcnZlci4gVGhlIHJlcXVlc3QgbWVzc2FnZSBkYXRhIGlzIG9idGFpbmVkIHVzaW5nCisgICAgICogZ2V0UHJvdmlzaW9uUmVxdWVzdCgpLgorICAgICAqLworICAgIFBST1ZJU0lPTl9SRVFVSVJFRCwKKworICAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGFwcCBuZWVkcyB0byByZXF1ZXN0IGtleXMgZnJvbSBhCisgICAgICogbGljZW5zZSBzZXJ2ZXIuIFRoZSByZXF1ZXN0IG1lc3NhZ2UgZGF0YSBpcyBvYnRhaW5lZCB1c2luZyBnZXRLZXlSZXF1ZXN0LgorICAgICAqLworICAgIEtFWV9ORUVERUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGxpY2Vuc2VkIHVzYWdlIGR1cmF0aW9uIGZvciBrZXlzIGluIGEKKyAgICAgKiBzZXNzaW9uIGhhcyBleHBpcmVkLiBUaGUga2V5cyBhcmUgbm8gbG9uZ2VyIHZhbGlkLgorICAgICAqLworICAgIEtFWV9FWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhpcyBldmVudCBtYXkgaW5kaWNhdGUgc29tZSBzcGVjaWZpYyB2ZW5kb3ItZGVmaW5lZCBjb25kaXRpb24sIHNlZSB5b3VyCisgICAgICogRFJNIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgVkVORE9SX0RFRklORUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IGluZGljYXRlcyB0aGF0IGEgc2Vzc2lvbiBvcGVuZWQgYnkgdGhlIGFwcCBoYXMgYmVlbiByZWNsYWltZWQKKyAgICAgKiBieSB0aGUgcmVzb3VyY2UgbWFuYWdlci4KKyAgICAgKi8KKyAgICBTRVNTSU9OX1JFQ0xBSU1FRCwKK307CisKK2VudW0gS2V5VHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEcm0ga2V5cyBjYW4gYmUgZm9yIG9mZmxpbmUgY29udGVudCBvciBmb3Igb25saW5lIHN0cmVhbWluZy4KKyAgICAgKiBPZmZsaW5lIGtleXMgYXJlIHBlcnNpc3RlZCBvbiB0aGUgZGV2aWNlIGFuZCBtYXkgYmUgdXNlZCB3aGVuIHRoZSBkZXZpY2UKKyAgICAgKiBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgbmV0d29yay4KKyAgICAgKi8KKyAgICBPRkZMSU5FLAorCisgICAgLyoqCisgICAgICogS2V5cyBmb3Igc3RyZWFtaW5nIGFyZSBub3QgcGVyc2lzdGVkIGFuZCByZXF1aXJlIHRoZSBkZXZpY2UgdG8gYmUKKyAgICAgKiBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsgZm9yIHBlcmlvZGljIHJlbmV3YWwuCisgICAgICovCisgICAgU1RSRUFNSU5HLAorCisgICAgLyoqCisgICAgICogVGhlIFJlbGVhc2UgdHlwZSBpcyB1c2VkIHRvIHJlcXVlc3QgdGhhdCBvZmZsaW5lIGtleXMgYmUgbm8gbG9uZ2VyCisgICAgICogcmVzdHJpY3RlZCB0byBvZmZsaW5lIHVzZS4KKyAgICAgKi8KKyAgICBSRUxFQVNFLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGUgS2V5UmVxdWVzdFR5cGVzIHRvIGFsbG93IGFuIGFwcCB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBrZXkKKyAqIHJlcXVlc3QgcmV0dXJuZWQgZnJvbSBnZXRLZXlSZXF1ZXN0LgorICovCitlbnVtIEtleVJlcXVlc3RUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEtleSByZXF1ZXN0IHR5cGUgaXMgZm9yIGFuIGluaXRpYWwgbGljZW5zZSByZXF1ZXN0CisgICAgICovCisgICAgSU5JVElBTCwKKworICAgIC8qKgorICAgICAqIEtleSByZXF1ZXN0IHR5cGUgaXMgZm9yIGxpY2Vuc2UgcmVuZXdhbC4gUmVuZXdhbCByZXF1ZXN0cyBhcmUgdXNlZAorICAgICAqIHRvIGV4dGVuZCB0aGUgdmFsaWRpdHkgcGVyaW9kIGZvciBzdHJlYW1pbmcga2V5cy4KKyAgICAgKi8KKyAgICBSRU5FV0FMLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyBhIHJlbGVhc2UuIEEga2V5IHJlbGVhc2UgY2F1c2VzIG9mZmxpbmUga2V5cworICAgICAqIHRvIGJlY29tZSBhdmFpbGFibGUgZm9yIHN0cmVhbWluZy4KKyAgICAgKi8KKyAgICBSRUxFQVNFLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyB1bmtub3duIGR1ZSB0byBzb21lIGVycm9yIGNvbmRpdGlvbi4KKyAgICAgKi8KKyAgICBVTktOT1dOLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGUgS2V5U3RhdHVzVHlwZXMgd2hpY2ggaW5kaWNhdGUgdGhlIHN0YXRlIG9mIGEga2V5CisgKi8KK2VudW0gS2V5U3RhdHVzVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGUga2V5IGlzIGN1cnJlbnRseSB1c2FibGUgdG8gZGVjcnlwdCBtZWRpYSBkYXRhLgorICAgICAqLworICAgIFVTQUJMRSwKKworICAgIC8qKgorICAgICAqIFRoZSBrZXkgaXMgbm8gbG9uZ2VyIHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBpdHMgZXhwaXJhdGlvbgorICAgICAqIHRpbWUgaGFzIHBhc3NlZC4KKyAgICAgKi8KKyAgICBFWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBub3QgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBpdHMgb3V0cHV0CisgICAgICogcmVxdWlyZW1lbnRzIGNhbm5vdCBjdXJyZW50bHkgYmUgbWV0LgorICAgICAqLworICAgIE9VVFBVVE5PVEFMTE9XRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBrZXkgaXMgbm90IHlldCBrbm93biBhbmQgaXMgYmVpbmcgZGV0ZXJtaW5lZC4KKyAgICAgKi8KKyAgICBTVEFUVVNQRU5ESU5HLAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBub3QgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBvZiBhbgorICAgICAqIGludGVybmFsIGVycm9yIGluIHByb2Nlc3NpbmcgdW5yZWxhdGVkIHRvIGlucHV0IHBhcmFtZXRlcnMuCisgICAgICovCisgICAgSU5URVJOQUxFUlJPUiwKK307CisKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IFNlc3Npb25JZDsKKworLyoqCisgKiBVc2VkIGJ5IHNlbmRLZXlzQ2hhbmdlIHRvIHJlcG9ydCB0aGUgdXNhYmlsaXR5IHN0YXR1cyBvZiBlYWNoIGtleSB0byB0aGUKKyAqIGFwcC4KKyAqLworc3RydWN0IEtleVN0YXR1cworeworICAgIHZlYzx1aW50OF90PiBrZXlJZDsKKyAgICBLZXlTdGF0dXNUeXBlIHR5cGU7Cit9OworCisvKioKKyAqIFNpbXVsYXRlcyBhIEtleWVkVmVjdG9yPFN0cmluZzgsIFN0cmluZzg+CisgKi8KK3N0cnVjdCBLZXlWYWx1ZSB7CisgICAgc3RyaW5nIGtleTsKKyAgICBzdHJpbmcgdmFsdWU7Cit9OworCit0eXBlZGVmIHZlYzxLZXlWYWx1ZT4gS2V5ZWRWZWN0b3I7CisKKy8qKgorICogRW5jYXBzdWxhdGVzIGEgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdAorICovCitzdHJ1Y3QgU2VjdXJlU3RvcCB7CisgICAgdmVjPHVpbnQ4X3Q+IG9wYXF1ZURhdGE7Cit9OworCit0eXBlZGVmIHZlYzx1aW50OF90PiBTZWN1cmVTdG9wSWQ7CisKKworLyoqCisgKiBFbnVtZXJhdGUgdGhlIHN1cHBvcnRlZCBjcnlwdG8gbW9kZXMKKyAqLworZW51bSBNb2RlIDogdWludDMyX3QgeworICAgIFVORU5DUllQVEVEID0gMCwgLy8gU2FtcGxlcyBhcmUgdW5lbmNyeXB0ZWQKKyAgICBBRVNfQ1RSICAgICA9IDEsIC8vIFNhbXBsZXMgYXJlIGVuY3J5cHRlZCB3aXRoIEFFUyBDVFIgbW9kZQorICAgIEFFU19DQkNfQ1RTID0gMiwgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENCQyBDVFMgbW9kZQorICAgIEFFU19DQkMgICAgID0gMywgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENCQyBtb2RlCit9OworCisvKioKKyAqIEEgc3Vic2FtcGxlIGNvbnNpc3RzIG9mIHNvbWUgbnVtYmVyIG9mIGJ5dGVzIG9mIGNsZWFyICh1bmVuY3J5cHRlZCkKKyAqIGRhdGEgZm9sbG93ZWQgYnkgYSBudW1iZXIgb2YgYnl0ZXMgb2YgZW5jcnlwdGVkIGRhdGEuCisgKi8KK3N0cnVjdCBTdWJTYW1wbGUgeworICAgIHVpbnQzMl90IG51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgdWludDMyX3QgbnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7Cit9OworCisvKioKKyAqIEEgY3J5cHRvIFBhdHRlcm4gaXMgYSByZXBlYXRpbmcgc2VxdWVuY2Ugb2YgZW5jcnlwdGVkIGFuZCBjbGVhciBibG9ja3MKKyAqIG9jY3VyaW5nIHdpdGhpbiB0aGUgYnl0ZXMgaW5kaWNhdGVkIGJ5IG1OdW1CeXRlc09mRW5jcnlwdGVkRGF0YWQgYnl0ZXMKKyAqIG9mIGEgc3Vic2FtcGxlLiBQYXR0ZXJucyBhcmUgdXNlZCB0byByZWR1Y2UgdGhlIENQVSBvdmVyaGVhZCBvZgorICogZGVjcnlwdGluZyBzYW1wbGVzLiBBcyBhbiBleGFtcGxlLCBITFMgdXNlcyAxOjkgcGF0dGVybnMgd2hlcmUgZXZlcnkKKyAqIDEwdGggYmxvY2sgaXMgZW5jcnlwdGVkLgorICovCitzdHJ1Y3QgUGF0dGVybiB7CisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBibG9ja3MgdG8gYmUgZW5jcnlwdGVkIGluIHRoZSBwYXR0ZXJuLiBJZiB6ZXJvLAorICAgICAqIHBhdHRlcm4gZW5jcnlwdGlvbiBpcyBpbm9wZXJhdGl2ZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBlbmNyeXB0QmxvY2tzOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBibG9ja3MgdG8gYmUgc2tpcHBlZCAobGVmdCBjbGVhcikgaW4gdGhlIHBhdHRlcm4uIElmCisgICAgICogemVybywgcGF0dGVybiBlbmNyeXB0aW9uIGlzIGlub3BlcmF0aXZlLgorICAgICAqLworICAgIHVpbnQzMl90IHNraXBCbG9ja3M7Cit9OworCitlbnVtIEJ1ZmZlclR5cGUgOiB1aW50MzJfdCB7CisgICAgU0hBUkVEX01FTU9SWSA9IDAsCisgICAgTkFUSVZFX0hBTkRMRSA9IDEsCit9OworCisvKioKKyAqIFNoYXJlZEJ1ZmZlciBkZXNjcmliZXMgYSBkZWNyeXB0IGJ1ZmZlciB3aGljaCBpcyBkZWZpbmVkIGJ5IGEgYnVmZmVySWQsIGFuCisgKiBvZmZzZXQgYW5kIGEgc2l6ZS4gIFRoZSBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIHNoYXJlZCBtZW1vcnkgYmFzZSBmb3IgdGhlCisgKiBtZW1vcnkgcmVnaW9uIGlkZW50aWZpZWQgYnkgYnVmZmVySWQsIHdoaWNoIGlzIGVzdGFibGlzaGVkIGJ5CisgKiBzZXRTaGFyZWRNZW1vcnlCYXNlKCkuCisgKi8KK3N0cnVjdCBTaGFyZWRCdWZmZXIgeworICAgIC8qKgorICAgICAqIFRoZSB1bmlxdWUgYnVmZmVyIGlkZW50aWZpZXIKKyAgICAgKi8KKyAgICB1aW50MzJfdCBidWZmZXJJZDsKKworICAgIC8qKgorICAgICAqIFRoZSBvZmZzZXQgZnJvbSB0aGUgc2hhcmVkIG1lbW9yeSBiYXNlCisgICAgICovCisgICAgdWludDY0X3Qgb2Zmc2V0OworCisgICAgLyoqCisgICAgICogVGhlIHNpemUgb2YgdGhlIHNoYXJlZCBidWZmZXIgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICB1aW50NjRfdCBzaXplOworfTsKKworCisvKioKKyAqIEEgZGVjcnlwdCBkZXN0aW5hdGlvbiBidWZmZXIgY2FuIGJlIGVpdGhlciBub3JtYWwgdXNlci1zcGFjZSBzaGFyZWQKKyAqIG1lbW9yeSBmb3IgdGhlIG5vbi1zZWN1cmUgZGVjcnlwdCBjYXNlLCBvciBpdCBjYW4gYmUgYSBzZWN1cmUgYnVmZmVyCisgKiB3aGljaCBpcyByZWZlcmVuY2VkIGJ5IGEgbmF0aXZlLWhhbmRsZS4gVGhlIG5hdGl2ZSBoYW5kbGUgaXMgYWxsb2NhdGVkCisgKiBieSB0aGUgdmVuZG9yJ3MgYnVmZmVyIGFsbG9jYXRvci4KKyAqLworc3RydWN0IERlc3RpbmF0aW9uQnVmZmVyIHsKKyAgICAvKioKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgYnVmZmVyCisgICAgICovCisgICAgQnVmZmVyVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogSWYgdHlwZSA9PSBTSEFSRURfTUVNT1JZLCB0aGUgZGVjcnlwdGVkIGRhdGEgbXVzdCBiZSB3cml0dGVuCisgICAgICogdG8gdXNlci1zcGFjZSBub24tc2VjdXJlIHNoYXJlZCBtZW1vcnkuCisgICAgICovCisgICAgU2hhcmVkQnVmZmVyIG5vbnNlY3VyZU1lbW9yeTsKKworICAgIC8qKgorICAgICAqIElmIHR5cGUgPT0gTkFUSVZFX0hBTkRMRSwgdGhlIGRlY3J5cHRlZCBkYXRhIG11c3QgYmUgd3JpdHRlbgorICAgICAqIHRvIHNlY3VyZSBtZW1vcnkgcmVmZXJlbmNlZCBieSB0aGUgdmVuZG9yJ3MgYnVmZmVyIGFsbG9jYXRvci4KKyAgICAgKi8KKyAgICBoYW5kbGUgc2VjdXJlTWVtb3J5OworfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2RvYy9Ecm1fVmVuZG9yX01vZHVsZXNfdjEucGRmIGIvZHJtLzEuMC92dHMvZG9jL0RybV9WZW5kb3JfTW9kdWxlc192MS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0NGU0ZgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2RvYy9Ecm1fVmVuZG9yX01vZHVsZXNfdjEucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2VhMzcyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDggQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxEcm1WMV8wVGFyZ2V0VGVzdCIsCisgICAgc3JjczogWworICAgICAgICAiZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcCIsCisgICAgICAgICJkcm1faGFsX3ZlbmRvcl90ZXN0LmNwcCIsCisgICAgICAgICJzaGFyZWRfbGlicmFyeS5jcHAiLAorICAgICAgICAidmVuZG9yX21vZHVsZXMuY3BwIgorICAgICAgICBdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3NsIiwKKyAgICAgICAgImxpYmNyeXB0byIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIgorICAgIF0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfY2xlYXJrZXlfdGVzdC5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfY2xlYXJrZXlfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRmMjY1OAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcApAQCAtMCwwICsxLDExNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybV9oYWxfY2xlYXJrZXlfdGVzdEAxLjAiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHJhbmRvbT4KKworI2luY2x1ZGUgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkJ1ZmZlclR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b1BsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleWVkVmVjdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlWYWx1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5UmVxdWVzdFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6Ok1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlBhdHRlcm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3BJZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2Vzc2lvbklkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTaGFyZWRCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U3ViU2FtcGxlOworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp1bmlxdWVfcHRyOwordXNpbmcgc3RkOjpyYW5kb21fZGV2aWNlOwordXNpbmcgc3RkOjptYXA7Cit1c2luZyBzdGQ6Om10MTk5Mzc7Cit1c2luZyBzdGQ6OnZlY3RvcjsKKworLyoqCisgKiBUaGVzZSBjbGVhcmtleSB0ZXN0cyB1c2Ugd2hpdGUgYm94IGtub3dsZWRnZSBvZiB0aGUgbGVnYWN5IGNsZWFya2V5CisgKiBwbHVnaW4gdG8gdmVyaWZ5IHRoYXQgdGhlIEhJREwgSEFMIHNlcnZpY2VzIGFuZCBpbnRlcmZhY2VzIGFyZSB3b3JraW5nLgorICogSXQgaXMgbm90IGludGVuZGVkIHRvIHZlcmlmeSBhbnkgdmVuZG9yJ3MgSEFMIGltcGxlbWVudGF0aW9uLiBJZiB5b3UKKyAqIGFyZSBsb29raW5nIGZvciB2ZW5kb3IgSEFMIHRlc3RzLCBzZWUgZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAKKyAqLworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCitzdGF0aWMgY29uc3QgdWludDhfdCBrQ2xlYXJLZXlVVUlEWzE2XSA9IHsKKyAgICAweDEwLCAweDc3LCAweEVGLCAweEVDLCAweEMwLCAweEIyLCAweDRELCAweDAyLAorICAgIDB4QUMsIDB4RTMsIDB4M0MsIDB4MUUsIDB4NTIsIDB4RTIsIDB4RkIsIDB4NEJ9OworCitzdGF0aWMgY29uc3QgdWludDhfdCBrSW52YWxpZFVVSURbMTZdID0geworICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCisgICAgMHgxMCwgMHgyMCwgMHgzMCwgMHg0MCwgMHg1MCwgMHg2MCwgMHg3MCwgMHg4MH07CisKK2NsYXNzIERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOworICAgICAgICBBTE9HRCgiUnVubmluZyB0ZXN0ICVzLiVzIiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICB0ZXN0X2luZm8tPm5hbWUoKSk7CisKKyAgICAgICAgZHJtRmFjdG9yeSA9CisgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SURybUZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShkcm1GYWN0b3J5LCBudWxscHRyKTsKKyAgICAgICAgY3J5cHRvRmFjdG9yeSA9CisgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNyeXB0b0ZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShjcnlwdG9GYWN0b3J5LCBudWxscHRyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICBwcm90ZWN0ZWQ6CisgICAgc3A8SURybUZhY3Rvcnk+IGRybUZhY3Rvcnk7CisgICAgc3A8SUNyeXB0b0ZhY3Rvcnk+IGNyeXB0b0ZhY3Rvcnk7Cit9OworCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBzdXBwb3J0cyB0aGUgY2xlYXJrZXkgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENsZWFyS2V5UGx1Z2luU3VwcG9ydGVkKSB7CisgICAgRVhQRUNUX1RSVUUoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0NsZWFyS2V5VVVJRCkpOworICAgIEVYUEVDVF9UUlVFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtDbGVhcktleVVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGludmFsaWQgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEludmFsaWRQbHVnaW5Ob3RTdXBwb3J0ZWQpIHsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0ludmFsaWRVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworfQorCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBkb2Vzbid0IHN1cHBvcnQgYW4gZW1wdHkgVVVJRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgRW1wdHlQbHVnaW5VVUlETm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAxNj4gZW1wdHlVVUlEOworICAgIG1lbXNldChlbXB0eVVVSUQuZGF0YSgpLCAwLCAxNik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChlbXB0eVVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgZW1wdHkgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEVtcHR5Q29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBlbXB0eTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChlbXB0eSkpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGNvbnRlbnQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBJbnZhbGlkQ29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBpbnZhbGlkKCJhYmNkYWJjZCIpOworICAgIEVYUEVDVF9GQUxTRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGludmFsaWQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdmFsaWQgY29udGVudCB0eXBlIGlzIHN1cHBvcnRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgVmFsaWRDb250ZW50VHlwZVN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGNlbmNUeXBlKCJjZW5jIik7CisgICAgRVhQRUNUX1RSVUUoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChjZW5jVHlwZSkpOworfQorCisvKioKKyAqIEVuc3VyZSBjbGVhcmtleSBkcm0gcGx1Z2luIGNhbiBiZSBjcmVhdGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBDcmVhdGVDbGVhcktleURybVBsdWdpbikgeworICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgYXV0byByZXMgPSBkcm1GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgY2xlYXJrZXkgY3J5cHRvIHBsdWdpbiBjYW4gYmUgY3JlYXRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgQ3JlYXRlQ2xlYXJLZXlDcnlwdG9QbHVnaW4pIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0NsZWFyS2V5VVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBkcm0gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWREcm1QbHVnaW4pIHsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjcnlwdG8gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWRDcnlwdG9QbHVnaW4pIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitjbGFzcyBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QgOiBwdWJsaWMgRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yaWVzCisgICAgICAgIERybUhhbENsZWFya2V5RmFjdG9yeVRlc3Q6OlNldFVwKCk7CisKKyAgICAgICAgQVNTRVJUX05FKGRybUZhY3RvcnksIG51bGxwdHIpOworICAgICAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgICAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgICAgICBbdGhpc10oU3RhdHVzIHN0YXR1cywgY29uc3Qgc3A8SURybVBsdWdpbj4mIHBsdWdpbikgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRybVBsdWdpbiA9IHBsdWdpbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdFZlYzsKKyAgICAgICAgcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgICAgIGtDbGVhcktleVVVSUQsIGluaXRWZWMsCisgICAgICAgICAgICAgICAgW3RoaXNdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBjcnlwdG9QbHVnaW4gPSBwbHVnaW47CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9PSyhyZXMpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgICBTZXNzaW9uSWQgb3BlblNlc3Npb24oKTsKKyAgICB2b2lkIGNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbG9hZEtleXMoY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQsIGNvbnN0IEtleVR5cGUmIHR5cGUpOworICAgIHNwPElNZW1vcnk+IGdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsIHNpemVfdCBpbmRleCk7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzcDxJRHJtUGx1Z2luPiBkcm1QbHVnaW47CisgICAgc3A8SUNyeXB0b1BsdWdpbj4gY3J5cHRvUGx1Z2luOworfTsKKworLyoqCisgKiAgRHJtUGx1Z2luIHRlc3RzCisgKi8KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiBjYW4gcmV0dXJuIGEgcHJvdmlzaW9uIHJlcXVlc3QuICBTaW5jZQorICogdGhlIGNsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgcHJvdmlzaW9uaW5nLCBpdCBpcworICogZXhwZWN0ZWQgdG8gcmV0dXJuIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFByb3Zpc2lvblJlcXVlc3QpIHsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZVR5cGU7CisgICAgaGlkbF9zdHJpbmcgY2VydGlmaWNhdGVBdXRob3JpdHk7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjZXJ0aWZpY2F0ZVR5cGUsIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgLy8gY2xlYXJrZXkgZG9lc24ndCByZXF1aXJlIHByb3Zpc2lvbmluZworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGhlIERSTSBIQUwgc2hvdWxkIHJldHVybiBCQURfVkFMVUUgaWYgYW4gZW1wdHkgcHJvdmlzaW9uaW5nCisgKiByZXNwb25zZSBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUHJvdmlkZUVtcHR5UHJvdmlzaW9uUmVzcG9uc2UpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gb3BlbiBhIHNlc3Npb24gYW5kIHZlcmlmeSB0aGF0IGEgbm9uLWVtcHR5CisgKiBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgKi8KK1Nlc3Npb25JZCBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6Om9wZW5TZXNzaW9uKCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+b3BlblNlc3Npb24oCisgICAgICAgICAgICBbJnNlc3Npb25JZF0oU3RhdHVzIHN0YXR1cywgY29uc3QgU2Vzc2lvbklkJiBpZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwgaWQuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBpZDsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBzZXNzaW9uSWQ7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBjbG9zZSBhIHNlc3Npb24KKyAqLwordm9pZCBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6OmNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCkgeworICAgIGF1dG8gcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgcmVzdWx0KTsKK30KKworLyoqCisgKiBIZWxwZXIgbWV0aG9kIHRvIGxvYWQga2V5cyBmb3Igc3Vic2VxdWVudCBkZWNyeXB0IHRlc3RzLgorICogVGhlc2UgdGVzdHMgdXNlIHByZWRldGVybWluZWQga2V5IHJlcXVlc3QvcmVzcG9uc2UgdG8KKyAqIGF2b2lkIHJlcXVpcmluZyBhIHJvdW5kIHRyaXAgdG8gYSBsaWNlbnNlIHNlcnZlci4KKyAqLworaGlkbF92ZWM8dWludDhfdD4gRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0Ojpsb2FkS2V5cygKKyAgICBjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgS2V5VHlwZSYgdHlwZSA9IEtleVR5cGU6OlNUUkVBTUlORykgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhID0geworICAgICAgICAvLyBCTUZGIGJveCBoZWFkZXIgKDQgYnl0ZXMgc2l6ZSArICdwc3NoJykKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgzNCwgMHg3MCwgMHg3MywgMHg3MywgMHg2OCwKKyAgICAgICAgLy8gZnVsbCBib3ggaGVhZGVyICh2ZXJzaW9uID0gMSBmbGFncyA9IDApCisgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIC8vIHN5c3RlbSBpZAorICAgICAgICAweDEwLCAweDc3LCAweGVmLCAweGVjLCAweGMwLCAweGIyLCAweDRkLCAweDAyLCAweGFjLCAweGUzLCAweDNjLCAweDFlLAorICAgICAgICAweDUyLCAweGUyLCAweGZiLCAweDRiLAorICAgICAgICAvLyBudW1iZXIgb2Yga2V5IGlkcworICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAxLAorICAgICAgICAvLyBrZXkgaWQKKyAgICAgICAgMHg2MCwgMHgwNiwgMHgxZSwgMHgwMSwgMHg3ZSwgMHg0NywgMHg3ZSwgMHg4NywgMHg3ZSwgMHg1NywgMHhkMCwgMHgwZCwKKyAgICAgICAgMHgxZSwgMHhkMCwgMHgwZCwgMHgxZSwKKyAgICAgICAgLy8gc2l6ZSBvZiBkYXRhLCBtdXN0IGJlIHplcm8KKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH07CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBleHBlY3RlZEtleVJlcXVlc3QgPSB7CisgICAgICAgIDB4N2IsIDB4MjIsIDB4NmIsIDB4NjksIDB4NjQsIDB4NzMsIDB4MjIsIDB4M2EsIDB4NWIsIDB4MjIsIDB4NTksCisgICAgICAgIDB4NDEsIDB4NTksIDB4NjUsIDB4NDEsIDB4NTgsIDB4MzUsIDB4NDgsIDB4NjYsIDB4NmYsIDB4NjQsIDB4MmIsCisgICAgICAgIDB4NTYsIDB4MzksIDB4NDEsIDB4NGUsIDB4NDgsIDB4NzQsIDB4NDEsIDB4NGUsIDB4NDgsIDB4NjcsIDB4MjIsCisgICAgICAgIDB4NWQsIDB4MmMsIDB4MjIsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsIDB4MjIsIDB4M2EsIDB4MjIsIDB4NzQsCisgICAgICAgIDB4NjUsIDB4NmQsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NjEsIDB4NzIsIDB4NzksIDB4MjIsIDB4N2R9OworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga25vd25LZXlSZXNwb25zZSA9IHsKKyAgICAgICAgMHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwgMHg3OSwgMHg3MywgMHgyMiwgMHgzYSwgMHg1YiwgMHg3YiwgMHgyMiwKKyAgICAgICAgMHg2YiwgMHg3NCwgMHg3OSwgMHgyMiwgMHgzYSwgMHgyMiwgMHg2ZiwgMHg2MywgMHg3NCwgMHgyMiwgMHgyYywKKyAgICAgICAgMHgyMiwgMHg2YiwgMHg2OSwgMHg2NCwgMHgyMiwgMHgzYSwgMHgyMiwgMHg1OSwgMHg0MSwgMHg1OSwgMHg2NSwKKyAgICAgICAgMHg0MSwgMHg1OCwgMHgzNSwgMHg0OCwgMHg2NiwgMHg2ZiwgMHg2NCwgMHgyYiwgMHg1NiwgMHgzOSwgMHg0MSwKKyAgICAgICAgMHg0ZSwgMHg0OCwgMHg3NCwgMHg0MSwgMHg0ZSwgMHg0OCwgMHg2NywgMHgyMiwgMHgyYywgMHgyMiwgMHg2YiwKKyAgICAgICAgMHgyMiwgMHgzYSwgMHgyMiwgMHg0NywgMHg2ZiwgMHg2ZiwgMHg2NywgMHg2YywgMHg2NSwgMHg1NCwgMHg2NSwKKyAgICAgICAgMHg3MywgMHg3NCwgMHg0YiwgMHg2NSwgMHg3OSwgMHg0MiwgMHg2MSwgMHg3MywgMHg2NSwgMHgzNiwgMHgzNCwKKyAgICAgICAgMHg2NywgMHg2NywgMHg2NywgMHgyMiwgMHg3ZCwgMHg1ZCwgMHg3ZCwgMHgwYX07CisKKyAgICBoaWRsX3N0cmluZyBtaW1lVHlwZSA9ICJ2aWRlby9tcDQiOworICAgIEtleWVkVmVjdG9yIG9wdGlvbmFsUGFyYW1ldGVyczsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCgKKyAgICAgICAgc2Vzc2lvbklkLCBpbml0RGF0YSwgbWltZVR5cGUsIHR5cGUsIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXF1ZXN0LAorICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoS2V5UmVxdWVzdFR5cGU6OklOSVRJQUwsIHJlcXVlc3RUeXBlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0LCBleHBlY3RlZEtleVJlcXVlc3QpOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkOworICAgIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICBzZXNzaW9uSWQsIGtub3duS2V5UmVzcG9uc2UsCisgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbXlLZXlTZXRJZCkgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIG15S2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIGtleVNldElkID0gbXlLZXlTZXRJZDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIGtleVNldElkOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHNlc3Npb24gY2FuIGJlIG9wZW5lZCBhbmQgY2xvc2VkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIE9wZW5DbG9zZVNlc3Npb24pIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYW4gaW52YWxpZCAoZW1wdHkpIHNlc3Npb25JZAorICogaXMgcHJvaGliaXRlZCB3aXRoIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIENsb3NlSW52YWxpZFNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgaW52YWxpZFNlc3Npb25JZDsKKyAgICBTdGF0dXMgcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oaW52YWxpZFNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCByZXN1bHQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIGNsb3NlIGEgc2Vzc2lvbiB0aGF0IGlzIGFscmVhZHkgY2xvc2VkCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgQ2xvc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHJlc3VsdCA9IGRybVBsdWdpbi0+Y2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgcmVzdWx0KTsKK30KKworLyoqCisgKiBBIGdldCBrZXkgcmVxdWVzdCBzaG91bGQgZmFpbCBpZiBubyBzZXNzaW9uSWQgaXMgcHJvdmlkZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE5vU2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICAgICAgaW52YWxpZFNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOyB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUaGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBvZmZsaW5lIGtleSByZXF1ZXN0cy4KKyAqIFRlc3QgdGhhdCB0aGUgcGx1Z2luIHJldHVybnMgdGhlIGV4cGVjdGVkIGVycm9yIGNvZGUgaW4KKyAqIHRoaXMgY2FzZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE9mZmxpbmVLZXlUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgS2V5VHlwZTo6T0ZGTElORSwgb3B0aW9uYWxQYXJhbWV0ZXJzLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwgS2V5UmVxdWVzdFR5cGUsCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBvZmZsaW5lIGtleSB0eXBlCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGZvciB0aGUKKyAqIGNhc2Ugb2YgYXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBhIGtleSByZXF1ZXN0IHVzaW5nIGFuCisgKiBpbnZhbGlkIG1pbWUgdHlwZQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRLZXlSZXF1ZXN0QmFkTWltZSkgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0RGF0YTsKKyAgICBoaWRsX3N0cmluZyBtaW1lVHlwZSA9ICJ2aWRlby91bmtub3duIjsKKyAgICBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnM7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgS2V5VHlwZTo6U1RSRUFNSU5HLAorICAgICAgICAgICAgb3B0aW9uYWxQYXJhbWV0ZXJzLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGEgY2xvc2VkIHNlc3Npb25JRCByZXR1cm5zIFNFU1NJT05fTk9UX09QRU5FRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0gezB4N2IsIDB4MjIsIDB4NmIsIDB4NjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHg3MywgMHgyMiwgMHgzYX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleVJlc3BvbnNlLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlTZXRJZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IHNlc3Npb25JRCByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VJbnZhbGlkU2Vzc2lvbklkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlSZXNwb25zZSA9IHsweDdiLCAweDIyLCAweDZiLCAweDY1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzksIDB4NzMsIDB4MjIsIDB4M2F9OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IGtleSByZXNwb25zZSByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VFbXB0eVJlc3BvbnNlKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGVtcHR5UmVzcG9uc2U7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGVtcHR5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYSByZW1vdmVLZXlzIG9uIGFuIGVtcHR5IHNlc3Npb25JRCByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZW1vdmVLZXlzRW1wdHlTZXNzaW9uSWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUpOworfQorCisvKioKKyAqIFJlbW92ZSBrZXlzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGNsZWFya2V5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZW1vdmVLZXlzTmV3U2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICAvLyBDbGVhcmtleSBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IHJlbW92ZSBrZXlzCisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IENsZWFyS2V5IGNhbm5vdCBoYW5kbGUga2V5IHJlc3RvcmluZy4KKyAqIEV4cGVjdGVkIG1lc3NhZ2UgaXMgU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVzdG9yZUtleXNDYW5ub3RIYW5kbGUpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIGtleVNldElkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgd2l0aCBhIG51bGwga2V5IHNldCBJRC4KKyAqIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUgU3RhdHVzOjpCQURfVkFMVUUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlc3RvcmVLZXlzTnVsbCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG51bGxLZXlTZXRJZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIG51bGxLZXlTZXRJZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBnZXR0aW5nCisgKiBzZWN1cmUgc3RvcHMuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BzKSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3BzKAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPFNlY3VyZVN0b3A+JikgeworICAgICAgICAgICAgICAgIC8vIENsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgc2VjdXJlIHN0b3BzCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGNsZWFya2V5IHBsdWdpbiByZXR1cm5zIEJBRF9WQUxVRSBpZgorICogYW4gZW1wdHkgc3NpZCBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0U2VjdXJlU3RvcEVtcHR5U1NJRCkgeworICAgIFNlY3VyZVN0b3BJZCBzc2lkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRTZWN1cmVTdG9wKAorICAgICAgICAgICAgc3NpZCwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IFNlY3VyZVN0b3AmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhbGwgc2VjdXJlIHN0b3BzIGlzbid0IGhhbmRsZWQgYnkKKyAqIGNsZWFya2V5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZWxlYXNlQWxsU2VjdXJlU3RvcHMpIHsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgZHJtUGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhIHNwZWNpZmljIHNlY3VyZSBzdG9wIHdpdGggYW4gZW1wdHkKKyAqIFNTSUQgcmV0dXJucyBCQURfVkFMVUUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlbGVhc2VTZWN1cmVTdG9wRW1wdHlTU0lEKSB7CisgICAgU2VjdXJlU3RvcElkIHNzaWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3Aoc3NpZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRoZSBmb2xsb3dpbmcgZm91ciB0ZXN0cyB2ZXJpZnkgdGhhdCB0aGUgcHJvcGVydGllcworICogZGVmaW5lZCBpbiB0aGUgTWVkaWFEcm0gQVBJIGFyZSBzdXBwb3J0ZWQgYnkKKyAqIHRoZSBwbHVnaW4uCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFZlbmRvclByb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlbmRvciIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoIkdvb2dsZSIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRWZXJzaW9uUHJvcGVydHkpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAidmVyc2lvbiIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoIjEuMCIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXREZXNjcmlwdGlvblByb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiQ2xlYXJLZXkgQ0RNIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEFsZ29yaXRobXNQcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJhbGdvcml0aG1zIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gcmVhZCBpbnZhbGlkIHN0cmluZyBhbmQgYnl0ZSBhcnJheQorICogcHJvcGVydGllcyByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEludmFsaWRTdHJpbmdQcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJpbnZhbGlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEJ5dGVBcnJheVByb3BlcnR5Tm90U3VwcG9ydGVkKSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImRldmljZVVuaXF1ZUlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgc3RyaW5nIG9yIGJ5dGUgYXJyYXkgcHJvcGVydGllcywKKyAqIHBhcnRpY3VsYXJseSBhbiB1bmRlZmluZWQgb25lLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRTdHJpbmdQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKCJwcm9wZXJ0eSIsICJ2YWx1ZSIpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRCeXRlQXJyYXlQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHZhbHVlOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldFByb3BlcnR5Qnl0ZUFycmF5KCJwcm9wZXJ0eSIsIHZhbHVlKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBDbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBjaXBoZXIgYWxnb3JpdGhtcywgdmVyaWZ5IGl0CisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldENpcGhlckFsZ29yaXRobU5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiQUVTL0NCQy9Ob1BhZGRpbmciOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGFuIGVtcHR5IGFsZ29yaXRobSBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRDaXBoZXJFbXB0eUFsZ29yaXRobSkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGEgY2lwaGVyIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgbWFjIGFsZ29yaXRobXMsIHZlcmlmeSBpdAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG1Ob3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGFuIGVtcHR5IGFsZ29yaXRobSBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNFbXB0eUFsZ29yaXRobSkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGEgbWFjIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gc2hvdWxkIHJldHVybiBCQURfVkFMVUUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0TWFjQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBUaGUgR2VuZXJpYyogbWV0aG9kcyBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBjcnlwdG8gb3BlcmF0aW9ucworICogdGhhdCBtYXkgYmUgdXNlZCBmb3IgYXBwbGljYXRpb25zIG90aGVyIHRoYW4gRFJNLiBUaGV5IGxldmVyYWdlCisgKiB0aGUgaGFyZHdhcmUgcm9vdCBvZiB0cnVzdCBhbmQgc2VjdXJlIGtleSBkaXN0cmlidXRpb24gbWVjaGFuaXNtcworICogb2YgYSBEUk0gc3lzdGVtIHRvIGVuYWJsZSBhcHAtc3BlY2lmaWMgY3J5cHRvIGZ1bmN0aW9uYWxpdHkgd2hlcmUKKyAqIHRoZSBjcnlwdG8ga2V5cyBhcmUgbm90IGV4cG9zZWQgb3V0c2lkZSBvZiB0aGUgdHJ1c3RlZCBleGVjdXRpb24KKyAqIGVudmlyb25tZW50LgorICoKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBnZW5lcmljIGVuY3J5cHQvZGVjcnlwdC9zaWduL3ZlcmlmeS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY0VuY3J5cHROb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGlucHV0ID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGl2ID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5lbmNyeXB0KHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljRGVjcnlwdE5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbnB1dCA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpdiA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KEFFU19CTE9DS19TSVpFLCAwKTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+ZGVjcnlwdChzZXNzaW9uLCBrZXlJZCwgaW5wdXQsIGl2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25Ob3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG1lc3NhZ2UgPSB7MSwgMiwgMywgNCwgNX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnNpZ24oc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljVmVyaWZ5Tm90U3VwcG9ydGVkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBtZXNzYWdlID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+dmVyaWZ5KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsIHNpZ25hdHVyZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGJvb2wpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25SU0FOb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIlJTQVNTQS1QU1MtU0hBMSI7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB3cmFwcGVkS2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnblJTQShzZXNzaW9uLCBhbGdvcml0aG0sIG1lc3NhZ2UsIHdyYXBwZWRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqICBDcnlwdG9QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBzZWN1cmUgZGVjb2RlciBhbmQgaXMgZXhwZWN0ZWQgdG8KKyAqIHJldHVybiBmYWxzZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVxdWlyZXNTZWN1cmVEZWNvZGVyKSB7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCJjZW5jIikpOworfQorCisvKioKKyAqIFZlcmlmeSB0aGF0IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCBoYW5kbGVzIGVtcHR5IG1pbWV0eXBlCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckVtcHR5TWltZVR5cGUpIHsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoIiIpKTsKK30KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgTm90aWZ5UmVzb2x1dGlvbiBBUEkuIFRoZXJlIGlzIG5vIG9ic2VydmFibGUgcmVzdWx0LAorICoganVzdCBjYWxsIHRoZSBtZXRob2QgZm9yIGNvdmVyYWdlLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBOb3RpZnlSZXNvbHV0aW9uKSB7CisgICAgY3J5cHRvUGx1Z2luLT5ub3RpZnlSZXNvbHV0aW9uKDE5MjAsIDEwODApOworfQorCisvKioKKyAqIGdldERlY3J5cHRNZW1vcnkgYWxsb2NhdGVzIG1lbW9yeSBmb3IgZGVjcnlwdGlvbiwgdGhlbiBzZXRzIGl0CisgKiBhcyBhIHNoYXJlZCBidWZmZXIgYmFzZSBpbiB0aGUgY3J5cHRvIGhhbC4gIFRoZSBhbGxvY2F0ZWQgYW5kCisgKiBtYXBwZWQgSU1lbW9yeSBpcyByZXR1cm5lZC4KKyAqCisgKiBAcGFyYW0gc2l6ZSB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHNlZ21lbnQgdG8gYWxsb2NhdGUKKyAqIEBwYXJhbSB0aGUgaW5kZXggb2YgdGhlIG1lbW9yeSBzZWdtZW50IHdoaWNoIHdpbGwgYmUgdXNlZAorICogdG8gcmVmZXIgdG8gaXQgZm9yIGRlY3J5cHRpb24uCisgKi8KK3NwPElNZW1vcnk+IERybUhhbENsZWFya2V5UGx1Z2luVGVzdDo6Z2V0RGVjcnlwdE1lbW9yeShzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpIHsKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYXNobWVtQWxsb2NhdG9yLCBudWxscHRyKTsKKworICAgIGhpZGxfbWVtb3J5IGhpZGxNZW1vcnk7CisgICAgYXV0byByZXMgPSBhc2htZW1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgc2l6ZSwgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh0cnVlLCBzdWNjZXNzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfT0soY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKG1lbW9yeSwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBoaWRsTWVtb3J5ID0gbWVtb3J5OworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBzcDxJTWVtb3J5PiBtYXBwZWRNZW1vcnkgPSBtYXBNZW1vcnkoaGlkbE1lbW9yeSk7CisgICAgRVhQRUNUX09LKGNyeXB0b1BsdWdpbi0+c2V0U2hhcmVkQnVmZmVyQmFzZShoaWRsTWVtb3J5LCBpbmRleCkpOworICAgIHJldHVybiBtYXBwZWRNZW1vcnk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHNldE1lZGlhRHJtU2Vzc2lvbiBtZXRob2QuIHNldE1lZGlhRHJtU2Vzc2lvbgorICogaXMgdXNlZCB0byBhc3NvY2lhdGUgYSBkcm0gc2Vzc2lvbiB3aXRoIGEgY3J5cHRvIHNlc3Npb24uCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbikgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhIGNsb3NlZCBzZXNzaW9uIGlkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkNsb3NlZFNlc3Npb24pIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhbiBlbXB0eSBzZXNzaW9uIGlkOiBCQURfVkFMVUUuICBBbgorICogZW1wdHkgc2Vzc2lvbiBjbGVhcnMgdGhlIHByZXZpb3VzbHkgc2V0IHNlc3Npb24gYW5kIHNob3VsZAorICogcmV0dXJuIE9LLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNZWRpYURybVNlc3Npb25FbXB0eVNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworfQorCisvKioKKyAqIERlY3J5cHQgdGVzdHMKKyAqLworCitjbGFzcyBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0IDogcHVibGljIERybUhhbENsZWFya2V5UGx1Z2luVGVzdCB7CisgICBwdWJsaWM6CisgICAgdm9pZCBmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpOworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IHRvSGlkbEFycmF5KGNvbnN0IHZlY3Rvcjx1aW50OF90PiYgdmVjKSB7CisgICAgICAgIEVYUEVDVF9FUSgxNnUsIHZlYy5zaXplKCkpOworICAgICAgICByZXR1cm4gaGlkbF9hcnJheTx1aW50OF90LCAxNj4oJnZlY1swXSk7CisgICAgfQorICAgIHVpbnQzMl90IGRlY3J5cHQoTW9kZSBtb2RlLCB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgICAgIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sIFN0YXR1cyBzdGF0dXMpOworICAgIHZvaWQgYWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7CisgICAgdm9pZCBhZXNfY2JjX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KTsKK307CisKK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6ZmlsbFJhbmRvbShjb25zdCBzcDxJTWVtb3J5PiYgbWVtb3J5KSB7CisgICAgcmFuZG9tX2RldmljZSByZDsKKyAgICBtdDE5OTM3IHJhbmQocmQoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZW1vcnktPmdldFNpemUoKSAvIHNpemVvZih1aW50MzJfdCk7IGkrKykgeworICAgICAgICBhdXRvIHAgPSBzdGF0aWNfY2FzdDx1aW50MzJfdCo+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihtZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBwW2ldID0gcmFuZCgpOworICAgIH0KK30KKwordWludDMyX3QgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6ZGVjcnlwdChNb2RlIG1vZGUsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRJbmRleCA9IDA7CisgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+IGtleUlkID0gezB4NjAsIDB4MDYsIDB4MWUsIDB4MDEsIDB4N2UsIDB4NDcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2UsIDB4ODcsIDB4N2UsIDB4NTcsIDB4ZDAsIDB4MGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUsIDB4ZDAsIDB4MGQsIDB4MWV9OworICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiBjb250ZW50S2V5ID0gezB4MWEsIDB4OGEsIDB4MjAsIDB4OTUsIDB4ZTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkZSwgMHhiMiwgMHhkMiwgMHg5ZSwgMHhjOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2LCAweGFjLCAweDdiLCAweGFlLCAweDIwLCAweDgyfTsKKyAgICB1aW50OF90IGxvY2FsSXZbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworCisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KKworICAgIC8vIFRoZSBmaXJzdCB0b3RhbFNpemUgYnl0ZXMgb2Ygc2hhcmVkIG1lbW9yeSBpcyB0aGUgZW5jcnlwdGVkCisgICAgLy8gaW5wdXQsIHRoZSBzZWNvbmQgdG90YWxTaXplIGJ5dGVzIGlzIHRoZSBkZWNyeXB0ZWQgb3V0cHV0LgorICAgIHNwPElNZW1vcnk+IHNoYXJlZE1lbW9yeSA9CisgICAgICAgICAgICBnZXREZWNyeXB0TWVtb3J5KHRvdGFsU2l6ZSAqIDIsIGtTZWdtZW50SW5kZXgpOworCisgICAgY29uc3QgU2hhcmVkQnVmZmVyIHNvdXJjZUJ1ZmZlciA9IHsKKyAgICAgICAgLmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwgLm9mZnNldCA9IDAsIC5zaXplID0gdG90YWxTaXplfTsKKyAgICBmaWxsUmFuZG9tKHNoYXJlZE1lbW9yeSk7CisKKyAgICBjb25zdCBEZXN0aW5hdGlvbkJ1ZmZlciBkZXN0QnVmZmVyID0gey50eXBlID0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuYnVmZmVySWQgPSBrU2VnbWVudEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vZmZzZXQgPSB0b3RhbFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNpemUgPSB0b3RhbFNpemV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlY3VyZU1lbW9yeSA9IG51bGxwdHJ9OworICAgIGNvbnN0IHVpbnQ2NF90IG9mZnNldCA9IDA7CisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZXNXcml0dGVuID0gMDsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b1BsdWdpbi0+ZGVjcnlwdChrTm90U2VjdXJlLCB0b0hpZGxBcnJheShrZXlJZCksIGxvY2FsSXYsIG1vZGUsCisgICAgICAgICAgICBwYXR0ZXJuLCBzdWJTYW1wbGVzLCBzb3VyY2VCdWZmZXIsIG9mZnNldCwgZGVzdEJ1ZmZlciwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBjb3VudCwgc3RyaW5nIGRldGFpbGVkRXJyb3IpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTdGF0dXMsIHN0YXR1cykgPDwgIlVuZXhwZWN0ZWQgZGVjcnlwdCBzdGF0dXMgIiA8PAorICAgICAgICAgICAgICAgIGRldGFpbGVkRXJyb3I7CisgICAgICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gY291bnQ7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gdG90YWxTaXplKSB7CisgICAgICAgIHJldHVybiBieXRlc1dyaXR0ZW47CisgICAgfQorICAgIHVpbnQ4X3QqIGJhc2UgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oc2hhcmVkTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKworICAgIC8vIGdlbmVyYXRlIHJlZmVyZW5jZSB2ZWN0b3IKKyAgICB2ZWN0b3I8dWludDhfdD4gcmVmZXJlbmNlKHRvdGFsU2l6ZSk7CisKKyAgICBtZW1jcHkobG9jYWxJdiwgaXYsIEFFU19CTE9DS19TSVpFKTsKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICBtZW1jcHkoJnJlZmVyZW5jZVswXSwgYmFzZSwgdG90YWxTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICBhZXNfY3RyX2RlY3J5cHQoJnJlZmVyZW5jZVswXSwgYmFzZSwgbG9jYWxJdiwgc3ViU2FtcGxlcywgY29udGVudEtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgYWVzX2NiY19kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGNvbnRlbnRLZXkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vZGU6OkFFU19DQkNfQ1RTOgorICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIkFFU19DQkNfQ1RTIG1vZGUgbm90IHN1cHBvcnRlZCI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIGNvbXBhcmUgcmVmZXJlbmNlIHRvIGRlY3J5cHRlZCBkYXRhIHdoaWNoIGlzIGF0IGJhc2UgKyB0b3RhbCBzaXplCisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChzdGF0aWNfY2FzdDx2b2lkICo+KCZyZWZlcmVuY2VbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KGJhc2UgKyB0b3RhbFNpemUpLCB0b3RhbFNpemUpKQorICAgICAgICAgICAgPDwgImRlY3J5cHQgZGF0YSBtaXNtYXRjaCI7CisgICAgcmV0dXJuIHRvdGFsU2l6ZTsKK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNUUiBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6YWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgYmxvY2tPZmZzZXQgPSAwOworICAgIHVpbnQ4X3QgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyW0FFU19CTE9DS19TSVpFXTsKKyAgICBtZW1zZXQocHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAwLCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3ViU2FtcGxlJiBzdWJTYW1wbGUgPSBzdWJTYW1wbGVzW2ldOworCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPiAwKSB7CisgICAgICAgICAgICBBRVNfY3RyMTI4X2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsICZkZWNyeXB0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICBpdiwgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAmYmxvY2tPZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNCQyBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6YWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICBzaXplX3QgbnVtID0gMDsKKyAgICBzaXplX3QgZWNvdW50X2J1ZiA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkNsZWFyRGF0YSk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisKKyAgICAgICAgQUVTX2NiY19lbmNyeXB0KHNyYyArIG9mZnNldCwgZGVzdCArIG9mZnNldCwgc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSwKKyAgICAgICAgICAgICAgICAmZGVjcnlwdGlvbktleSwgaXYsIDAgLyogZGVjcnlwdCAqLyk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IHF1ZXJ5IGtleSBzdGF0dXMKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIFRlc3RRdWVyeUtleVN0YXR1cykgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cXVlcnlLZXlTdGF0dXMoc2Vzc2lvbklkLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIEtleWVkVmVjdG9yIC8qIGluZm8gKi8pIHsKKyAgICAgICAgICAgICAgICAvLyBjbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBtZXRob2QKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAgIkRlY3J5cHQiIGEgc2luZ2xlIGNsZWFyIHNlZ21lbnQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIENsZWFyU2VnbWVudFRlc3QpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHVpbnQzMl90IGtCeXRlQ291bnQgPSAyNTY7CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga0J5dGVDb3VudCwKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgbG9hZEtleXMoc2Vzc2lvbklkKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpVTkVOQ1JZUFRFRCwgJml2WzBdLCBzdWJTYW1wbGVzLAorICAgICAgICAgICAgbm9QYXR0ZXJuLCBTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEoa0J5dGVDb3VudCwgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFBvc2l0aXZlIGRlY3J5cHQgdGVzdC4gIERlY3J5cHQgYSBzaW5nbGUgc2VnbWVudCB1c2luZyBBRVNfQ1RSLgorICogVmVyaWZ5IGRhdGEgbWF0Y2hlcy4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIEVuY3J5cHRlZEFlc0N0clNlZ21lbnRUZXN0KSB7CisgICAgdmVjdG9yPHVpbnQ4X3Q+IGl2KEFFU19CTE9DS19TSVpFLCAwKTsKKyAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICBjb25zdCB1aW50MzJfdCBrQ2xlYXJCeXRlcyA9IDUxMjsKKyAgICBjb25zdCB1aW50MzJfdCBrRW5jcnlwdGVkQnl0ZXMgPSA1MTI7CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga0NsZWFyQnl0ZXMsCisgICAgICAgICAubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPSBrRW5jcnlwdGVkQnl0ZXMKKyAgICAgICAgfX07CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGxvYWRLZXlzKHNlc3Npb25JZCk7CisKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgIGNvbnN0IGJvb2wga05vdFNlY3VyZSA9IGZhbHNlOworICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwgJml2WzBdLCBzdWJTYW1wbGVzLAorICAgICAgICAgICAgbm9QYXR0ZXJuLCBTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEoa0NsZWFyQnl0ZXMgKyBrRW5jcnlwdGVkQnl0ZXMsIGJ5dGVDb3VudCk7CisKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKy8qKgorICogTmVnYXRpdmUgZGVjcnlwdCB0ZXN0LiBEZWNyeXB0IHdpdGhvdXQgbG9hZGluZyBrZXlzLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3ROb0tleXMpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7CisgICAgICAgIHsubnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCAmaXZbMF0sIHN1YlNhbXBsZXMsCisgICAgICAgICAgICBub1BhdHRlcm4sIFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0UpOworICAgIEVYUEVDVF9FUSgwdSwgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl9tb2R1bGVfYXBpLmggYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGIyMDUyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl9tb2R1bGVfYXBpLmgKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIERSTV9IQUxfVkVORE9SX01PRFVMRV9BUElfSAorI2RlZmluZSBEUk1fSEFMX1ZFTkRPUl9NT0RVTEVfQVBJX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisvKioKKyAqIFRoZSBEUk0gYW5kIENyeXB0byBIQUxzIGludGVyYWN0IHdpdGggdmVuZG9yLXByb3ZpZGVkIEhBTCBpbXBsZW1lbnRhdGlvbnMKKyAqIHRoYXQgaGF2ZSBEUk0tc3BlY2lmaWMgY2FwYWJpbGl0aWVzLiBTaW5jZSB0aGUgVlRTIHRlc3RzIGNhbm5vdCBjb250YWluCisgKiBEUk0tc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSwgc3VwcG9ydGluZyBtb2R1bGVzIGFyZSByZXF1aXJlZCB0byBlbmFibGUgVlRTCisgKiB0byB2YWxpZGF0ZSBIQUwgaW1wbGVtZW50YXRpb25zIGluIGEgZ2VuZXJpYyB3YXkuICBJZiB0aGUgdmVuZG9yLXNwZWNpZmljCisgKiBWVFMgbW9kdWxlIGlzIG5vdCBwcm92aWRlZCBmb3IgYSBnaXZlbiBkcm0gSEFMIGltcGxlbWVudGF0aW9uLCBvbmx5IHZlcnkKKyAqIHNtYWxsIHN1YnNldCBvZiBmdW5jdGlvbmFsaXR5IGNhbiBiZSB2ZXJpZmllZC4KKyAqCisgKiBBcyBhbiBleGFtcGxlLCBhIERSTSBIQUwgaW1wbGVtZW50YXRpb24gaW50ZXJhY3RzIHdpdGggYSBEUk0tc3BlY2lmaWMKKyAqIGxpY2Vuc2Ugc2VydmVyIHRvIG9idGFpbiBsaWNlbnNlcyBmb3IgZGVjcnlwdGluZyBjb250ZW50LiAgVGhlIERSTSBIQUwKKyAqIGltcGxlbWVudGF0aW9uIGdlbmVyYXRlcyBhIGtleSByZXF1ZXN0IG1lc3NhZ2UsIGRlbGl2ZXJzIGl0IHRvIHRoZSBzZXJ2ZXIKKyAqIGFuZCByZWNlaXZlcyBhIGtleSByZXNwb25zZSBtZXNzYWdlIHdoaWNoIGlzIHRoZW4gbG9hZGVkIGludG8gdGhlIEhBTC4gT25jZQorICogdGhlIGtleXMgYXJlIGxvYWRlZCwgdGhlIENyeXB0byBIQUwgZGVjcnlwdGlvbiBmdW5jdGlvbmFsaXR5IGFuZCBwZXJmb3JtYW5jZQorICogYW5kIG90aGVyIGFzc29jaWF0ZWQgQVBJcyBjYW4gYmUgdGVzdGVkIGJ5IHRoZSBjb21tb24gVlRTIHRlc3Qgc3VpdGUuCisgKgorICogVmVuZG9yLXNwZWNpZmljIFZUUyBtb2R1bGVzIGFyZSBzaGFyZWQgbGlicmFyaWVzIHVzZWQgYnkgdGhlIERSTSBWVFMgdGVzdC4KKyAqIFRoZXkgcHJvdmlkZSBhIHNldCBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCBWVFMgdGVzdGluZyBvZiB0aGUgRFJNIEhBTCBtb2R1bGUuCisgKgorICogVGhlIG1vZHVsZXMgYXJlIHBsYWNlZCBpbiBhIGNvbW1vbiBsb2NhdGlvbiBvbiB0aGUgZmlsZSBzeXN0ZW0uIFRoZSBWVFMgdGVzdAorICogc2NhbnMgdGhyb3VnaCBhbGwgdmVuZG9yLXByb3ZpZGVkIHN1cHBvcnQgbGlicmFyaWVzIGFuZCBydW5zIHRoZSBWVFMgdGVzdAorICogc3VpdGUgb24gZWFjaCBsaWJyYXJ5IHRoYXQgaXMgZm91bmQuCisgKgorICogVGhlIHZlbmRvci1zcGVjaWZpYyBtb2R1bGUgZXhwb3NlcyBhbiBleHRlcm4g4oCcQ+KAnSB2ZW5kb3JNb2R1bGVGYWN0b3J5KCkKKyAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIERybUhhbFZUU1ZlbmRvck1vZHVsZSBpbnN0YW5jZS4gRHJtSGFsVlRTVmVuZG9yTW9kdWxlCisgKiBpbnN0YW5jZXMgYXJlIHZlcnNpb25lZCwgd2hlcmUgZWFjaCB2ZXJzaW9uIGlzIHJlcHJlc2VudGVkIGJ5IHN1YmNsYXNzIG9mCisgKiBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgQVBJIHZlcnNpb24uIEZvciBleGFtcGxlLCBhCisgKiB2ZW5kb3Itc3BlY2lmaWMgbW9kdWxlIHRoYXQgaW1wbGVtZW50cyB2ZXJzaW9uIDEgb2YgdGhlIEFQSSB3b3VsZCByZXR1cm4gYQorICogRHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxIGZyb20gdGhlIHZlbmRvck1vZHVsZUZhY3RvcnkoKSBmdW5jdGlvbi4KKyAqLworCitjbGFzcyBEcm1IYWxWVFNWZW5kb3JNb2R1bGU7CisKK2V4dGVybiAiQyIgeworLyoqCisgKiBUaGUgZmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIERybUhhbFZUU1ZlbmRvck1vZHVsZSBpbnN0YW5jZXMuIFRoZSByZXR1cm5lZAorICogaW5zdGFuY2Ugd2lsbCBiZSBhIHN1YmNsYXNzIG9mIERybUhhbFZUU1ZlbmRvck1vZHVsZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZQorICogc3VwcG9ydGVkIEFQSSB2ZXJzaW9uLgorICovCitEcm1IYWxWVFNWZW5kb3JNb2R1bGUqIHZlbmRvck1vZHVsZUZhY3RvcnkoKTsKK307CisKK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZSB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKCkgOiBpbnN0YWxsZWQodHJ1ZSkge30KKyAgICB2aXJ0dWFsIH5Ecm1IYWxWVFNWZW5kb3JNb2R1bGUoKSB7fQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2ZW5kb3Itc3BlY2lmaWMgbW9kdWxlIEFQSSB2ZXJzaW9uLiBUaGUgdmVyc2lvbiBpcyBhbiBpbnRlZ2VyCisgICAgICogdmFsdWUgd2l0aCBpbml0aWFsIHZlcnNpb24gMS4gVGhlIEFQSSB2ZXJzaW9uIGluZGljYXRlcyB3aGljaCBzdWJjbGFzcworICAgICAqIHZlcnNpb24gRHJtSGFsVlRTVmVuZG9yTW9kdWxlIHRoaXMgaW5zdGFuY2UgaXMuCisgICAgICovCisgICAgdmlydHVhbCB1aW50MzJfdCBnZXRBUElWZXJzaW9uKCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVVUlEIGZvciB0aGUgRFJNIEhBTCBpbXBsZW1lbnRhdGlvbi4gUHJvdGVjdGlvbiBTeXN0ZW0KKyAgICAgKiBTcGVjaWZpYworICAgICAqIFVVSUQgKHNlZSBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uLykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGdldFVVSUQoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlcnZpY2UgbmFtZSBmb3IgdGhlIERSTSBIQUwgaW1wbGVtZW50YXRpb24uIElmIHRoZSBoYWwgaXMgYQorICAgICAqIGxlZ2FjeQorICAgICAqIGRybSBwbHVnaW4sIGkuZS4gbm90IHJ1bm5pbmcgYXMgYSBISURMIHNlcnZpY2UsIHJldHVybiB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgZ2V0U2VydmljZU5hbWUoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBmbGFnIGluIHRoZSB2ZW5kb3IgbW9kdWxlIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBkcm0KKyAgICAgKiBzY2hlbWUgY29ycmVzcG9uZGluZyB0byB0aGlzIG1vZHVsZSBpcyBpbnN0YWxsZWQgb24gdGhlIGRldmljZS4KKyAgICAgKi8KKyAgICB2b2lkIHNldEluc3RhbGxlZChib29sIGZsYWcpIHtpbnN0YWxsZWQgPSBmbGFnO30KKyAgICBib29sIGlzSW5zdGFsbGVkKCkgY29uc3Qge3JldHVybiBpbnN0YWxsZWQ7fQorCisgICBwcml2YXRlOgorICAgIGJvb2wgaW5zdGFsbGVkOworICAgIERybUhhbFZUU1ZlbmRvck1vZHVsZShjb25zdCBEcm1IYWxWVFNWZW5kb3JNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBEcm1IYWxWVFNWZW5kb3JNb2R1bGUmKSA9IGRlbGV0ZTsKK307CisKKy8qKgorICogQVBJIFZlcnNpb24gMS4gIFRoaXMgaXMgdGhlIGJhc2VsaW5lIHZlcnNpb24gdGhhdCBzdXBwb3J0cyBhIG1pbmltYWwgc2V0CisgKiBvZiBWVFMgdGVzdHMuCisgKi8KK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSA6IHB1YmxpYyBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgeworICAgcHVibGljOgorICAgIERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSgpIHt9CisgICAgdmlydHVhbCB+RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxKCkge30KKworICAgIHZpcnR1YWwgdWludDMyX3QgZ2V0QVBJVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBhIHByb3Zpc2lvbmluZyByZXF1ZXN0LiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBIQUwKKyAgICAgKiBtb2R1bGUncyBnZXRQcm92aXNpb25SZXF1ZXN0IHJldHVybnMgYSBwcm92aXNpb24gcmVxdWVzdC4gIFRoZSB2ZW5kb3IKKyAgICAgKiBtb2R1bGUgc2hvdWxkIHByb2Nlc3MgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0LCBlaXRoZXIgYnkgc2VuZGluZyBpdAorICAgICAqIHRvIGEgcHJvdmlzaW9uaW5nIHNlcnZlciwgb3IgZ2VuZXJhdGluZyBhIG1vY2sgcmVzcG9uc2UuICBUaGUgcmVzdWx0aW5nCisgICAgICogcHJvdmlzaW9uaW5nIHJlc3BvbnNlIGlzIHJldHVybmVkIHRvIHRoZSBWVFMgdGVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm92aXNpb25pbmdSZXF1ZXN0IHRoZSBwcm92aXNpb25pbmcgcmVxdWVzdCByZWNpZXZlZCBmcm9tCisgICAgICogdGhlIERSTSBIQUwKKyAgICAgKiBAcGFyYW0gdXJsIHRoZSBkZWZhdWx0IHVybCB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIHdpdGggdGhlCisgICAgICogcHJvdmlzaW9uaW5nIHJlcXVlc3QKKyAgICAgKiBAcmV0dXJuIHRoZSBnZW5lcmF0ZWQgcHJvdmlzaW9uaW5nIHJlc3BvbnNlCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYW5kbGVQcm92aXNpb25pbmdSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHByb3Zpc2lvbmluZ1JlcXVlc3QsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgdXJsKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb250ZW50IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVzIGNvbnRlbnQtc3BlY2lmaWMgcGFyYW1ldGVycyBhc3NvY2lhdGVkCisgICAgICogd2l0aCBhIGtleSByZXF1ZXN0L3Jlc3BvbnNlIHRyYW5zYWN0aW9uLiBJdCBhbGxvd3MgdGhlIFZUUyB0ZXN0IHRvCisgICAgICogcmVxdWVzdCBrZXlzIGFuZCB1c2UgdGhlbSB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgICAgICovCisgICAgc3RydWN0IENvbnRlbnRDb25maWd1cmF0aW9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFzc2lnbiBhIG5hbWUgZm9yIHRoaXMgY29uZmlndXJhdGlvbiB0aGF0IHdpbGwgYmUgcmVmZXJyZWQgdG8KKyAgICAgICAgICogaW4gbG9nIG1lc3NhZ2VzLgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2VydmVyIHRvIHVzZSB3aGVuIHJlcXVlc3RpbmcgYSBrZXkgcmVzcG9uc2UuICBUaGlzIHVybCB3aWxsIGJlCisgICAgICAgICAqIHBhc3NlZCBhcyBhIHBhcmFtZXRlciB0byB0aGUgdmVuZG9yIHZ0cyBtb2R1bGUgYWxvbmcgd2l0aCB0aGUKKyAgICAgICAgICoga2V5IHJlcXVlc3QgdG8gcGVyZm9ybSB0aGUga2V5IHJlcXVlc3QgdHJhbnNhY3Rpb24uCisgICAgICAgICAqLworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBzZXJ2ZXJVcmw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEluaXRpYWxpemF0aW9uIGRhdGEgcHJvdmlkZWQgdG8gZ2V0S2V5UmVxdWVzdCwgZS5nLiBQU1NIIGZvciBDRU5DCisgICAgICAgICAqIGNvbnRlbnQKKyAgICAgICAgICovCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGluaXREYXRhOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAgTWltZSB0eXBlIHByb3ZpZGVkIHRvIGdldEtleVJlcXVlc3QsIGUuZy4gInZpZGVvL21wNCIsIG9yICJjZW5jIgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbWltZVR5cGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgcmVxdWVzdAorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBvcHRpb25hbFBhcmFtZXRlcnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqICBEZWZpbmUgbGljZW5zZSBwb2xpY3kgYXR0cmlidXRlcyBmb3IgdGhlIGNvbnRlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgICogIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGFmZmVjdCB3aGljaCB0ZXN0cyBhcmUgYWJsZSB0byBiZSBhcHBsaWVkLgorICAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IFBvbGljeSB7CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEluZGljYXRlIGlmIHRoZSBsaWNlbnNlIHBvbGljeSBhbGxvd3Mgb2ZmbGluZSBwbGF5YmFjay4KKyAgICAgICAgICAgICAqIENvbnRlbnQgY29uZmlndXJhdGVkIHdpdGggdGhpcyBwb2xpY3kgc3VwcG9ydHMgS2V5VHlwZTo6T0ZGTElORQorICAgICAgICAgICAgICoga2V5IHJlcXVlc3RzL3Jlc3BvbnNlcy4gQSB2ZW5kb3IgbW9kdWxlIHNob3VsZCBwcm92aWRlIGF0IGxlYXN0CisgICAgICAgICAgICAgKiBvbmUgY29udGVudCBjb25maWd1cmF0aW9uIHdoZXJlIGFsbG93T2ZmbGluZSBpcyB0cnVlIGlmIHRoZSBkcm0KKyAgICAgICAgICAgICAqIHNjaGVtZSBzdXBwb3J0cyBvZmZsaW5lIGNvbnRlbnQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGJvb2wgYWxsb3dPZmZsaW5lOworICAgICAgICB9IHBvbGljeTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGtleXMgdGhhdCB3aWxsIGJlIGF2YWlsYWJsZSBvbmNlIHRoZSBrZXlzIGFyZSBsb2FkZWQKKyAgICAgICAgICovCisgICAgICAgIHN0cnVjdCBLZXkgeworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBJbmRpY2F0ZSBpZiB0aGUga2V5IGNvbnRlbnQgaXMgY29uZmlndXJlZCB0byByZXF1aXJlIHNlY3VyZQorICAgICAgICAgICAgICogYnVmZmVycywgd2hlcmUgdGhlIG91dHB1dCBidWZmZXJzIGFyZSBwcm90ZWN0ZWQgYW5kIGNhbm5vdCBiZQorICAgICAgICAgICAgICogYWNjZXNzZWQgYnkgdGhlIG5vbi1zZWN1cmUgY3B1LiBBIHZlbmRvciBtb2R1bGUgc2hvdWxkIHByb3ZpZGUKKyAgICAgICAgICAgICAqIGF0IGxlYXN0IG9uZSBjb250ZW50IGNvbmZpZ3VyYXRpb25zIHdoZXJlIGlzU2VjdXJlIGlzIGZhbHNlLCB0bworICAgICAgICAgICAgICogYWxsb3cgZGVjcnlwdCByZXN1bHQgdmVyaWZpY2F0aW9uIHRlc3RzIHRvIGJlIHJ1bi4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYm9vbCBpc1NlY3VyZTsKKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBBIGtleSBJRCBpZGVudGlmaWVzIGEga2V5IHRvIHVzZSBmb3IgZGVjcnlwdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBrZXlJZDsKKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGUgY2xlYXIgY29udGVudCBrZXkgaXMgcHJvdmlkZWQgdG8gZ2VuZXJhdGUgZXhwZWN0ZWQgdmFsdWVzIGZvcgorICAgICAgICAgICAgICogdmFsaWRhdGluZyBkZWNyeXB0aW9uLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBjbGVhckNvbnRlbnRLZXk7CisgICAgICAgIH07CisgICAgICAgIHN0ZDo6dmVjdG9yPEtleT4ga2V5czsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbGlzdCBvZiBjb250ZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGJlIGV4ZXJjaXNlZCBieSB0aGUKKyAgICAgKiBWVFMgdGVzdC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPENvbnRlbnRDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgZ2V0Q29udGVudENvbmZpZ3VyYXRpb25zKCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogSGFuZGxlIGEga2V5IHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgaWYgdGhlIEhBTAorICAgICAqIG1vZHVsZSdzIGdldEtleVJlcXVlc3QgcmV0dXJucyBhIGtleSByZXF1ZXN0LiAgVGhlIHZlbmRvcgorICAgICAqIG1vZHVsZSBzaG91bGQgcHJvY2VzcyB0aGUga2V5IHJlcXVlc3QsIGVpdGhlciBieSBzZW5kaW5nIGl0CisgICAgICogdG8gYSBsaWNlbnNlIHNlcnZlciwgb3IgYnkgZ2VuZXJhdGluZyBhIG1vY2sgcmVzcG9uc2UuICBUaGUgcmVzdWx0aW5nCisgICAgICoga2V5IHJlc3BvbnNlIGlzIHJldHVybmVkIHRvIHRoZSBWVFMgdGVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlSZXF1ZXN0IHRoZSBrZXkgcmVxdWVzdCByZWNpZXZlZCBmcm9tIHRoZSBEUk0gSEFMCisgICAgICogQHBhcmFtIHNlcnZlclVybCB0aGUgdXJsIG9mIHRoZSBrZXkgc2VydmVyIHRoYXQgd2FzIHN1cHBsaWVkCisgICAgICogYnkgdGhlIENvbnRlbnRDb25maWd1cmF0aW9uCisgICAgICogQHJldHVybiB0aGUgZ2VuZXJhdGVkIGtleSByZXNwb25zZQorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFuZGxlS2V5UmVxdWVzdCgKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBrZXlSZXF1ZXN0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHNlcnZlclVybCkgPSAwOworfTsKKworI2VuZGlmICAvLyBEUk1fSEFMX1ZFTkRPUl9NT0RVTEVfQVBJX0gKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZmI2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMTYwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZHJtX2hhbF92ZW5kb3JfdGVzdEAxLjAiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHJhbmRvbT4KKworI2luY2x1ZGUgImRybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaCIKKyNpbmNsdWRlICJ2ZW5kb3JfbW9kdWxlcy5oIgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRDYWxsYmFja0Jhc2UuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpCdWZmZXJUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpEZXN0aW5hdGlvbkJ1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b1BsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW5MaXN0ZW5lcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5ZWRWZWN0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVJlcXVlc3RUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVN0YXR1c1R5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpQYXR0ZXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wSWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlc3Npb25JZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2hhcmVkQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN1YlNhbXBsZTsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgc3RkOjpzdHJpbmc7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7Cit1c2luZyBzdGQ6OnJhbmRvbV9kZXZpY2U7Cit1c2luZyBzdGQ6Om1hcDsKK3VzaW5nIHN0ZDo6bXQxOTkzNzsKK3VzaW5nIHN0ZDo6dmVjdG9yOworCit1c2luZyBDb250ZW50Q29uZmlndXJhdGlvbiA9IDo6RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxOjpDb250ZW50Q29uZmlndXJhdGlvbjsKK3VzaW5nIEtleSA9IDo6RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxOjpDb250ZW50Q29uZmlndXJhdGlvbjo6S2V5OwordXNpbmcgVnRzVGVzdEJhc2UgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTsKKworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCisjZGVmaW5lIFJFVFVSTl9JRl9TS0lQUEVEIFwKKyAgICBpZiAoIXZlbmRvck1vZHVsZS0+aXNJbnN0YWxsZWQoKSkgeyBcCisgICAgICAgIHN0ZDo6Y291dCA8PCAiWyAgU0tJUFBFRCBdIFRoaXMgZHJtIHNjaGVtZSBub3Qgc3VwcG9ydGVkLiIgPDwgXAorICAgICAgICAgICAgICAgICIgbGlicmFyeToiIDw8IEdldFBhcmFtKCkgPDwgIiBzZXJ2aWNlLW5hbWU6IiA8PCBcCisgICAgICAgICAgICAgICAgdmVuZG9yTW9kdWxlLT5nZXRTZXJ2aWNlTmFtZSgpIDw8IHN0ZDo6ZW5kbDsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKK3N0YXRpYyBjb25zdCB1aW50OF90IGtJbnZhbGlkVVVJRFsxNl0gPSB7CisgICAgICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCisgICAgICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCit9OworCitzdGF0aWMgZHJtX3Z0czo6VmVuZG9yTW9kdWxlcyogZ1ZlbmRvck1vZHVsZXMgPSBudWxscHRyOworCitjbGFzcyBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHN0ZDo6c3RyaW5nPiB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QoKQorICAgICAgICA6IHZlbmRvck1vZHVsZShzdGF0aWNfY2FzdDxEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjEqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIGdWZW5kb3JNb2R1bGVzLT5nZXRNb2R1bGUoR2V0UGFyYW0oKSkpKSwKKyAgICAgICAgICBjb250ZW50Q29uZmlndXJhdGlvbnModmVuZG9yTW9kdWxlLT5nZXRDb250ZW50Q29uZmlndXJhdGlvbnMoKSkge30KKworICAgIHZpcnR1YWwgfkRybUhhbFZlbmRvckZhY3RvcnlUZXN0KCkge30KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOworICAgICAgICBBTE9HRCgiUnVubmluZyB0ZXN0ICVzLiVzIGZyb20gdmVuZG9yIG1vZHVsZSAlcyIsCisgICAgICAgICAgICAgIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLT5uYW1lKCksCisgICAgICAgICAgICAgIEdldFBhcmFtKCkuY19zdHIoKSk7CisKKyAgICAgICAgQVNTRVJUX05FKHZlbmRvck1vZHVsZSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gRmlyc3QgdHJ5IHRoZSBiaW5kZXJpemVkIHNlcnZpY2UgbmFtZSBwcm92aWRlZCBieSB0aGUgdmVuZG9yIG1vZHVsZS4KKyAgICAgICAgLy8gSWYgdGhhdCBmYWlscywgd2hpY2ggaXQgY2FuIG9uIG5vbi1iaW5kZXJpemVkIGRldmljZXMsIHRyeSB0aGUgZGVmYXVsdAorICAgICAgICAvLyBzZXJ2aWNlLgorICAgICAgICBzdHJpbmcgbmFtZSA9IHZlbmRvck1vZHVsZS0+Z2V0U2VydmljZU5hbWUoKTsKKyAgICAgICAgZHJtRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElEcm1GYWN0b3J5PihuYW1lKTsKKyAgICAgICAgaWYgKGRybUZhY3RvcnkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgZHJtRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElEcm1GYWN0b3J5PigpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9ORShkcm1GYWN0b3J5LCBudWxscHRyKTsKKworICAgICAgICAvLyBEbyB0aGUgc2FtZSBmb3IgdGhlIGNyeXB0byBmYWN0b3J5CisgICAgICAgIGNyeXB0b0ZhY3RvcnkgPSBWdHNUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ3J5cHRvRmFjdG9yeT4obmFtZSk7CisgICAgICAgIGlmIChjcnlwdG9GYWN0b3J5ID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElDcnlwdG9GYWN0b3J5PigpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9ORShjcnlwdG9GYWN0b3J5LCBudWxscHRyKTsKKworICAgICAgICAvLyBJZiBkcm0gc2NoZW1lIG5vdCBpbnN0YWxsZWQgc2tpcCBzdWJzZXF1ZW50IHRlc3RzCisgICAgICAgIGlmICghZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZ2V0VmVuZG9yVVVJRCgpKSkgeworICAgICAgICAgICAgdmVuZG9yTW9kdWxlLT5zZXRJbnN0YWxsZWQoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgcHJvdGVjdGVkOgorICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IGdldFZlbmRvclVVSUQoKSB7CisgICAgICAgIHZlY3Rvcjx1aW50OF90PiB1dWlkID0gdmVuZG9yTW9kdWxlLT5nZXRVVUlEKCk7CisgICAgICAgIHJldHVybiBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PigmdXVpZFswXSk7CisgICAgfQorCisgICAgc3A8SURybUZhY3Rvcnk+IGRybUZhY3Rvcnk7CisgICAgc3A8SUNyeXB0b0ZhY3Rvcnk+IGNyeXB0b0ZhY3Rvcnk7CisgICAgdW5pcXVlX3B0cjxEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjE+IHZlbmRvck1vZHVsZTsKKyAgICBjb25zdCB2ZWN0b3I8Q29udGVudENvbmZpZ3VyYXRpb24+IGNvbnRlbnRDb25maWd1cmF0aW9uczsKK307CisKK1RFU1RfUChEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwgVmFsaWRhdGVDb25maWd1cmF0aW9ucykgeworICAgIGNvbnN0IGNoYXIqIGtWZW5kb3JTdHIgPSAiVmVuZG9yIG1vZHVsZSAiOworICAgIHNpemVfdCBjb3VudCA9IDA7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBBU1NFUlRfVFJVRShjb25maWcubmFtZS5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyIDw8ICJoYXMgbm8gbmFtZSI7CisgICAgICAgIEFTU0VSVF9UUlVFKGNvbmZpZy5zZXJ2ZXJVcmwuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gc2VydmVyVXJsIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLmluaXREYXRhLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gaW5pdCBkYXRhIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLm1pbWVUeXBlLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gbWltZSB0eXBlIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLmtleXMuc2l6ZSgpID49IDEpIDw8IGtWZW5kb3JTdHIgPDwgImhhcyBubyBrZXlzIjsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShrZXkua2V5SWQuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgaGFzIHplcm8gbGVuZ3RoIGtleUlkIjsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGtleS5rZXlJZC5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBoYXMgemVybyBsZW5ndGgga2V5IHZhbHVlIjsKKyAgICAgICAgfQorICAgICAgICBjb3VudCsrOworICAgIH0KKyAgICBFWFBFQ1RfTkUoMHUsIGNvdW50KTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGludmFsaWQgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBJbnZhbGlkUGx1Z2luTm90U3VwcG9ydGVkKSB7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChrSW52YWxpZFVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGVtcHR5IFVVSUQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBFbXB0eVBsdWdpblVVSUROb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiBlbXB0eVVVSUQ7CisgICAgbWVtc2V0KGVtcHR5VVVJRC5kYXRhKCksIDAsIDE2KTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZW1wdHlVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworfQorCisvKioKKyAqIENoZWNrIGlmIHRoZSBmYWN0b3J5IHN1cHBvcnRzIHRoZSBzY2hlbWUgdXVpZCBpbiB0aGUgY29uZmlnLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIFBsdWdpbkNvbmZpZ1VVSURTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKTsKK30KKworLyoqCisgKiBFbnN1cmUgZW1wdHkgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBFbXB0eUNvbnRlbnRUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9zdHJpbmcgZW1wdHk7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoZW1wdHkpKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjb250ZW50IHR5cGUgaXMgbm90IHN1cHBvcnRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIEludmFsaWRDb250ZW50VHlwZU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGludmFsaWQoImFiY2RhYmNkIik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoaW52YWxpZCkpOworfQorCisvKioKKyAqIEVuc3VyZSB2YWxpZCBjb250ZW50IHR5cGVzIGluIHRoZSBjb25maWdzIGFyZSBzdXBwb3J0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBWYWxpZENvbnRlbnRUeXBlU3VwcG9ydGVkKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbmZpZy5taW1lVHlwZSkpOworICAgIH0KK30KKworLyoqCisgKiBFbnN1cmUgdmVuZG9yIGRybSBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVWZW5kb3JEcm1QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgdmVuZG9yIGNyeXB0byBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVWZW5kb3JDcnlwdG9QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGRybSBwbHVnaW4gY2FuJ3QgYmUgY3JlYXRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWREcm1QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjcnlwdG8gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVJbnZhbGlkQ3J5cHRvUGx1Z2luKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdFZlYzsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b0ZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgIGtJbnZhbGlkVVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworY2xhc3MgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCA6IHB1YmxpYyBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB+RHJtSGFsVmVuZG9yUGx1Z2luVGVzdCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yaWVzCisgICAgICAgIERybUhhbFZlbmRvckZhY3RvcnlUZXN0OjpTZXRVcCgpOworICAgICAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKworICAgICAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgICAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBnZXRWZW5kb3JVVUlEKCksIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZHJtUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKworICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgICAgICByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBpbml0VmVjLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgY3J5cHRvUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICAgU2Vzc2lvbklkIG9wZW5TZXNzaW9uKCk7CisgICAgdm9pZCBjbG9zZVNlc3Npb24oY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQpOworICAgIHNwPElNZW1vcnk+IGdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsIHNpemVfdCBpbmRleCk7CisgICAgS2V5ZWRWZWN0b3IgdG9IaWRsS2V5ZWRWZWN0b3IoY29uc3QgbWFwPHN0cmluZywgc3RyaW5nPiYgcGFyYW1zKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBsb2FkS2V5cyhjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb250ZW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLZXlUeXBlJiB0eXBlKTsKKworICAgcHJvdGVjdGVkOgorICAgIHNwPElEcm1QbHVnaW4+IGRybVBsdWdpbjsKKyAgICBzcDxJQ3J5cHRvUGx1Z2luPiBjcnlwdG9QbHVnaW47Cit9OworCisvKioKKyAqICBEcm1QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIFRlc3QgdGhhdCBhIERSTSBwbHVnaW4gY2FuIGhhbmRsZSBwcm92aXNpb25pbmcuICBXaGlsZQorICogaXQgaXMgbm90IHJlcXVpcmVkIHRoYXQgYSBEUk0gc2NoZW1lIHJlcXVpcmUgcHJvdmlzaW9uaW5nLAorICogaXQgc2hvdWxkIGF0IGxlYXN0IHJldHVybiBhcHByb3ByaWF0ZSBzdGF0dXMgdmFsdWVzLiBJZgorICogYSBwcm92aXNpb25pbmcgcmVxdWVzdCBpcyByZXR1cm5lZCwgaXQgaXMgcGFzc2VkIHRvIHRoZQorICogdmVuZG9yIG1vZHVsZSB3aGljaCBzaG91bGQgcHJvdmlkZSBhIHByb3Zpc2lvbmluZyByZXNwb25zZQorICogdGhhdCBpcyBkZWxpdmVyZWQgYmFjayB0byB0aGUgSEFMLgorICovCisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBEb1Byb3Zpc2lvbmluZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfc3RyaW5nIGNlcnRpZmljYXRlVHlwZTsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBwcm92aXNpb25SZXF1ZXN0OworICAgIGhpZGxfc3RyaW5nIGRlZmF1bHRVcmw7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjZXJ0aWZpY2F0ZVR5cGUsIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXF1ZXN0LAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiB1cmwpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKHJlcXVlc3Quc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgICAgIHByb3Zpc2lvblJlcXVlc3QgPSByZXF1ZXN0OworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VXJsID0gdXJsOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCByZXF1ZXN0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBpZiAocHJvdmlzaW9uUmVxdWVzdC5zaXplKCkgPiAwKSB7CisgICAgICAgIHZlY3Rvcjx1aW50OF90PiByZXNwb25zZSA9IHZlbmRvck1vZHVsZS0+aGFuZGxlUHJvdmlzaW9uaW5nUmVxdWVzdCgKKyAgICAgICAgICAgICAgICBwcm92aXNpb25SZXF1ZXN0LCBkZWZhdWx0VXJsKTsKKyAgICAgICAgQVNTRVJUX05FKDB1LCByZXNwb25zZS5zaXplKCkpOworCisgICAgICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9PSyhyZXMpOworICAgIH0KK30KKworLyoqCisgKiBUaGUgRFJNIEhBTCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRSBpZiBhbiBlbXB0eSBwcm92aXNpb25pbmcKKyAqIHJlc3BvbnNlIGlzIHByb3ZpZGVkLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUHJvdmlkZUVtcHR5UHJvdmlzaW9uUmVzcG9uc2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gb3BlbiBhIHNlc3Npb24gYW5kIHZlcmlmeSB0aGF0IGEgbm9uLWVtcHR5CisgKiBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgKi8KK1Nlc3Npb25JZCBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpvcGVuU2Vzc2lvbigpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPm9wZW5TZXNzaW9uKFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZXNzaW9uSWQmIGlkKSB7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICBFWFBFQ1RfTkUoaWQuc2l6ZSgpLCAwdSk7CisgICAgICAgIHNlc3Npb25JZCA9IGlkOworICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBzZXNzaW9uSWQ7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBjbG9zZSBhIHNlc3Npb24KKyAqLwordm9pZCBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpjbG9zZVNlc3Npb24oY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQpIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKK30KKworS2V5ZWRWZWN0b3IgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdDo6dG9IaWRsS2V5ZWRWZWN0b3IoCisgICAgY29uc3QgbWFwPHN0cmluZywgc3RyaW5nPiYgcGFyYW1zKSB7CisgICAgc3RkOjp2ZWN0b3I8S2V5VmFsdWU+IHN0ZEtleWVkVmVjdG9yOworICAgIGZvciAoYXV0byBpdCA9IHBhcmFtcy5iZWdpbigpOyBpdCAhPSBwYXJhbXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgS2V5VmFsdWUga2V5VmFsdWU7CisgICAgICAgIGtleVZhbHVlLmtleSA9IGl0LT5maXJzdDsKKyAgICAgICAga2V5VmFsdWUudmFsdWUgPSBpdC0+c2Vjb25kOworICAgICAgICBzdGRLZXllZFZlY3Rvci5wdXNoX2JhY2soa2V5VmFsdWUpOworICAgIH0KKyAgICByZXR1cm4gS2V5ZWRWZWN0b3Ioc3RkS2V5ZWRWZWN0b3IpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gbG9hZCBrZXlzIGZvciBzdWJzZXF1ZW50IGRlY3J5cHQgdGVzdHMuCisgKiBUaGVzZSB0ZXN0cyB1c2UgcHJlZGV0ZXJtaW5lZCBrZXkgcmVxdWVzdC9yZXNwb25zZSB0bworICogYXZvaWQgcmVxdWlyaW5nIGEgcm91bmQgdHJpcCB0byBhIGxpY2Vuc2Ugc2VydmVyLgorICovCitoaWRsX3ZlYzx1aW50OF90PiBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Ojpsb2FkS2V5cygKKyAgICBjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgQ29udGVudENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24sCisgICAgY29uc3QgS2V5VHlwZSYgdHlwZSA9IEtleVR5cGU6OlNUUkVBTUlORykgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlcXVlc3Q7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgIHNlc3Npb25JZCwgY29uZmlndXJhdGlvbi5pbml0RGF0YSwgY29uZmlndXJhdGlvbi5taW1lVHlwZSwgdHlwZSwKKyAgICAgICAgdG9IaWRsS2V5ZWRWZWN0b3IoY29uZmlndXJhdGlvbi5vcHRpb25hbFBhcmFtZXRlcnMpLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlcXVlc3QsCisgICAgICAgICAgICBLZXlSZXF1ZXN0VHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpIDw8ICJGYWlsZWQgdG8gZ2V0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgcmVxdWVzdCBmb3IgY29uZmlndXJhdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBjb25maWd1cmF0aW9uLm5hbWU7CisgICAgICAgICAgICBFWFBFQ1RfRVEodHlwZSwgS2V5UmVxdWVzdFR5cGU6OklOSVRJQUwpOworICAgICAgICAgICAgRVhQRUNUX05FKHJlcXVlc3Quc2l6ZSgpLCAwdSkgPDwgIkV4cGVjdGVkIGtleSByZXF1ZXN0IHNpemUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGhhdmUgbGVuZ3RoID4gMCBieXRlcyI7CisgICAgICAgICAgICBrZXlSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQga2V5IHJlc3BvbnNlIGZyb20gdmVuZG9yIG1vZHVsZQorICAgICAqLworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0KKyAgICAgICAgdmVuZG9yTW9kdWxlLT5oYW5kbGVLZXlSZXF1ZXN0KGtleVJlcXVlc3QsIGNvbmZpZ3VyYXRpb24uc2VydmVyVXJsKTsKKworICAgIEVYUEVDVF9ORShrZXlSZXNwb25zZS5zaXplKCksIDB1KSA8PCAiRXhwZWN0ZWQga2V5IHJlc3BvbnNlIHNpemUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG8gaGF2ZSBsZW5ndGggPiAwIGJ5dGVzIjsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkOworICAgIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICBzZXNzaW9uSWQsIGtleVJlc3BvbnNlLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG15S2V5U2V0SWQpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpIDw8ICJGYWlsdXJlIHByb3ZpZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5IHJlc3BvbnNlIGZvciBjb25maWd1cmF0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGNvbmZpZ3VyYXRpb24ubmFtZTsKKyAgICAgICAgICAgIGtleVNldElkID0gbXlLZXlTZXRJZDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIGtleVNldElkOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHNlc3Npb24gY2FuIGJlIG9wZW5lZCBhbmQgY2xvc2VkCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBPcGVuQ2xvc2VTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIGNsb3NlIGFuIGludmFsaWQgKGVtcHR5KSBzZXNzaW9uSWQKKyAqIGlzIHByb2hpYml0ZWQgd2l0aCB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgQ2xvc2VJbnZhbGlkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihpbnZhbGlkU2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYSB2YWxpZCBzZXNzaW9uIHR3aWNlCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIENsb3NlQ2xvc2VkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworfQorCisvKioKKyAqIEEgZ2V0IGtleSByZXF1ZXN0IHNob3VsZCBmYWlsIGlmIG5vIHNlc3Npb25JZCBpcyBwcm92aWRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICAgICAgaW52YWxpZFNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOyB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VFbXB0eVNlc3Npb25JZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5UmVzcG9uc2UgPSB7MHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc5LCAweDczLCAweDIyLCAweDNhfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShrZXlTZXRJZC5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhbiBlbXB0eSBrZXkgcmVzcG9uc2UgcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUVtcHR5UmVzcG9uc2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZW1wdHlSZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwgZW1wdHlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGtleVNldElkLnNpemUoKSwgMHUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHJlbW92ZUtleXMgb24gYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZW1vdmVLZXlzRW1wdHlTZXNzaW9uSWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZW1vdmUga2V5cyByZXR1cm5zIG9rYXkgb24gYW4gaW5pdGlhbGl6ZWQgc2Vzc2lvbgorICogdGhhdCBoYXMgbm8ga2V5cy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlbW92ZUtleXNOZXdTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQga2V5cyBhcmUgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkIHRvIGEgbmV3IHNlc3Npb24KKyAqIGZvciBhbGwgY29udGVudCBoYXZpbmcgYSBwb2xpY3kgdGhhdCBhbGxvd3Mgb2ZmbGluZSB1c2UuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgaWYgKGNvbmZpZy5wb2xpY3kuYWxsb3dPZmZsaW5lKSB7CisgICAgICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9CisgICAgICAgICAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnLCBLZXlUeXBlOjpPRkZMSU5FKTsKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgd2l0aCBhIG51bGwga2V5IHNldCBJRC4KKyAqIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUgU3RhdHVzOjpCQURfVkFMVUUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c051bGwpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBudWxsS2V5U2V0SWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVzdG9yZUtleXMoc2Vzc2lvbklkLCBudWxsS2V5U2V0SWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgdG8gcmVzdG9yZSBrZXlzIHRvIGEgY2xvc2VkCisgKiBzZXNzaW9uLiBFcnJvciBtZXNzYWdlIGlzIGV4cGVjdGVkIHRvIGJlCisgKiBTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c0Nsb3NlZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGlmIChjb25maWcucG9saWN5LmFsbG93T2ZmbGluZSkgeworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5U2V0SWQgPQorICAgICAgICAgICAgICAgICAgICBsb2FkS2V5cyhzZXNzaW9uSWQsIGNvbmZpZywgS2V5VHlwZTo6T0ZGTElORSk7CisgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGtleVNldElkLnNpemUoKSk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiBlaXRoZXIgZG9lc24ndCBzdXBwb3J0IGdldHRpbmcKKyAqIHNlY3VyZSBzdG9wcywgb3IgaGFzIG5vIHNlY3VyZSBzdG9wcyBhdmFpbGFibGUgYWZ0ZXIKKyAqIGNsZWFyaW5nIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRTZWN1cmVTdG9wcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIC8vIFRoZXJlIG1heSBiZSBzZWN1cmUgc3RvcHMsIGRlcGVuZGluZyBvbiBpZiB0aGVyZSB3ZXJlIGtleXMKKyAgICAvLyBsb2FkZWQgYW5kIHVubG9hZGVkIHByZXZpb3VzbHkuIENsZWFyIHRoZW0gdG8gZ2V0IHRvIGEga25vd24KKyAgICAvLyBzdGF0ZSwgdGhlbiBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vbmUuCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3BzKAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPFNlY3VyZVN0b3A+JikgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcHMoCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8U2VjdXJlU3RvcD4mIHNlY3VyZVN0b3BzKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShzZWN1cmVTdG9wcy5zaXplKCksIDB1KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGNsZWFya2V5IHBsdWdpbiByZXR1cm5zIEJBRF9WQUxVRSBpZgorICogYW4gZW1wdHkgc3NpZCBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcCgKKyAgICAgICAgICAgIHNzaWQsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZWN1cmVTdG9wJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZWxlYXNpbmcgYWxsIHNlY3VyZSBzdG9wcyBlaXRoZXIgaXNuJ3Qgc3VwcG9ydGVkCisgKiBvciBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZWxlYXNlQWxsU2VjdXJlU3RvcHMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBSZWxlYXNpbmcgYSBzZWN1cmUgc3RvcCB3aXRob3V0IGZpcnN0IGdldHRpbmcgb25lIGFuZCBzZW5kaW5nIGl0IHRvIHRoZQorICogc2VydmVyIHRvIGdldCBhIHZhbGlkIFNTSUQgc2hvdWxkIHJldHVybiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgQVBJIHNvIGl0IGNhbiBhbHNvIHJldHVybiBDQU5OT1RfSEFORExFLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BTZXF1ZW5jZUVycm9yKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2VjdXJlU3RvcElkIHNzaWQgPSB7MSwgMiwgMywgNH07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3Aoc3NpZCk7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0lOVkFMSURfU1RBVEUgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhIHNwZWNpZmljIHNlY3VyZSBzdG9wIHdpdGggYW4gZW1wdHkgc3NpZAorICogcmV0dXJuIEJBRF9WQUxVRS4gVGhpcyBpcyBhbiBvcHRpb25hbCBBUEkgc28gaXQgY2FuIGFsc28gcmV0dXJuCisgKiBDQU5OT1RfSEFORExFLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlU2VjdXJlU3RvcChzc2lkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKKy8qKgorICogVGhlIGZvbGxvd2luZyBmaXZlIHRlc3RzIHZlcmlmeSB0aGF0IHRoZSBwcm9wZXJ0aWVzCisgKiBkZWZpbmVkIGluIHRoZSBNZWRpYURybSBBUEkgYXJlIHN1cHBvcnRlZCBieQorICogdGhlIHBsdWdpbi4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFZlbmRvclByb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlbmRvciIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFZlcnNpb25Qcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJ2ZXJzaW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSh2YWx1ZS5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0RGVzY3JpcHRpb25Qcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldEFsZ29yaXRobXNQcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJhbGdvcml0aG1zIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRQcm9wZXJ0eVVuaXF1ZURldmljZUlEKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImRldmljZVVuaXF1ZUlkIiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKHZhbHVlLnNpemUoKSwgMHUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIHJlYWQgaW52YWxpZCBzdHJpbmcgYW5kIGJ5dGUgYXJyYXkKKyAqIHByb3BlcnRpZXMgcmV0dXJucyB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0SW52YWxpZFN0cmluZ1Byb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImludmFsaWQiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldEludmFsaWRCeXRlQXJyYXlQcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgICJpbnZhbGlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgaW52YWxpZCBzdHJpbmcgYW5kIGJ5dGUgYXJyYXkgcHJvcGVydGllcyByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0U3RyaW5nUHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfRVEoZHJtUGx1Z2luLT5zZXRQcm9wZXJ0eVN0cmluZygiYXdlZmlqYWVmbGlqd2VmIiwgInZhbHVlIiksCisgICAgICAgICAgICAgIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Qnl0ZUFycmF5UHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB2YWx1ZTsKKyAgICBFWFBFQ1RfRVEoZHJtUGx1Z2luLT5zZXRQcm9wZXJ0eUJ5dGVBcnJheSgiYXdlZmlqYWVmbGlqd2VmIiwgdmFsdWUpLAorICAgICAgICAgICAgICBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBhbiBpbnZhbGlkIGNpcGhlciBhbGdvcml0aG0gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldENpcGhlckludmFsaWRBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSBjaXBoZXIgYWxnb3JpdGhtIHdpdGggbm8gc2Vzc2lvbiByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSB2YWxpZCBjaXBoZXIgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuIEl0IGlzIG5vdCByZXF1aXJlZCB0aGF0IGFsbAorICogdmVuZG9yIG1vZHVsZXMgc3VwcG9ydCB0aGlzIGFsZ29yaXRobSwgYnV0IHRoZXkgbXVzdAorICogZWl0aGVyIGFjY2VwdCBpdCBvciByZXR1cm4gRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldENpcGhlckFsZ29yaXRobSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICA7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYW4gaW52YWxpZCBtYWMgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNYWNJbnZhbGlkQWxnb3JpdGhtKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRNYWNBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGEgbWFjIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1hY051bGxBbGdvcml0aG1Ob1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiSG1hY1NIQTI1NiI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGEgdmFsaWQgbWFjIGFsZ29yaXRobSByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLiBJdCBpcyBub3QgcmVxdWlyZWQgdGhhdCBhbGwKKyAqIHZlbmRvciBtb2R1bGVzIHN1cHBvcnQgdGhpcyBhbGdvcml0aG0sIGJ1dCB0aGV5IG11c3QKKyAqIGVpdGhlciBhY2NlcHQgaXQgb3IgcmV0dXJuIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8CisgICAgICAgICAgICAgICAgc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUaGUgR2VuZXJpYyogbWV0aG9kcyBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBjcnlwdG8gb3BlcmF0aW9ucworICogdGhhdCBtYXkgYmUgdXNlZCBmb3IgYXBwbGljYXRpb25zIG90aGVyIHRoYW4gRFJNLiBUaGV5IGxldmVyYWdlCisgKiB0aGUgaGFyZHdhcmUgcm9vdCBvZiB0cnVzdCBhbmQgc2VjdXJlIGtleSBkaXN0cmlidXRpb24gbWVjaGFuaXNtcworICogb2YgYSBEUk0gc3lzdGVtIHRvIGVuYWJsZSBhcHAtc3BlY2lmaWMgY3J5cHRvIGZ1bmN0aW9uYWxpdHkgd2hlcmUKKyAqIHRoZSBjcnlwdG8ga2V5cyBhcmUgbm90IGV4cG9zZWQgb3V0c2lkZSBvZiB0aGUgdHJ1c3RlZCBleGVjdXRpb24KKyAqIGVudmlyb25tZW50LgorICoKKyAqIEdlbmVyaWMgZW5jcnlwdC9kZWNyeXB0L3NpZ24vdmVyaWZ5IHNob3VsZCBmYWlsIG9uIGludmFsaWQKKyAqIGlucHV0cywgZS5nLiBlbXB0eSBzZXNzaW9uSWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdlbmVyaWNFbmNyeXB0Tm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQsIGlucHV0LCBpdjsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+ZW5jcnlwdCgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY0RlY3J5cHROb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCwgaW5wdXQsIGl2OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5kZWNyeXB0KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIGlucHV0LCBpdiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZW5lcmljU2lnbk5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBtZXNzYWdlOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5zaWduKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY1ZlcmlmeU5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBtZXNzYWdlLCBzaWduYXR1cmU7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnZlcmlmeSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleUlkLCBtZXNzYWdlLCBzaWduYXR1cmUsIFsmXShTdGF0dXMgc3RhdHVzLCBib29sKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25SU0FOb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSwgd3JhcHBlZEtleTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnblJTQShzZXNzaW9uLCBhbGdvcml0aG0sIG1lc3NhZ2UsIHdyYXBwZWRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCBtZXRob2QuIEFkZGl0aW9uYWwgdGVzdHMKKyAqIHdpbGwgdmVyaWZ5IHBvc2l0aXZlIGNhc2VzIHdpdGggc3BlY2lmaWMgdmVuZG9yIGNvbnRlbnQgY29uZmlndXJhdGlvbnMuCisgKiBCZWxvdyB3ZSBqdXN0IHRlc3QgdGhlIG5lZ2F0aXZlIGNhc2VzLgorICovCisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgZW1wdHkgbWltZXR5cGUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXF1aXJlc1NlY3VyZURlY29kZXJFbXB0eU1pbWVUeXBlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCIiKSk7Cit9CisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgaW52YWxpZCBtaW1ldHlwZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckludmFsaWRNaW1lVHlwZSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9QbHVnaW4tPnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgiYmFkIikpOworfQorCisvKioKKyAqIFZlcmlmeSB0aGF0IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCByZXR1cm5zIHRydWUgZm9yIHNlY3VyZQorICogY29uZmlndXJhdGlvbnMKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbmZpZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBpZiAoa2V5LmlzU2VjdXJlKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoY29uZmlnLm1pbWVUeXBlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogIEV2ZW50IEhhbmRsaW5nIHRlc3RzCisgKi8KK3N0cnVjdCBMaXN0ZW5lckV2ZW50QXJncyB7CisgICAgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGRhdGE7CisgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUzsKKyAgICBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3Q7CisgICAgYm9vbCBoYXNOZXdVc2FibGVLZXk7Cit9OworCitjb25zdCBjaGFyICprQ2FsbGJhY2tFdmVudCA9ICJTZW5kRXZlbnQiOworY29uc3QgY2hhciAqa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSA9ICJTZW5kRXhwaXJhdGlvblVwZGF0ZSI7Citjb25zdCBjaGFyICprQ2FsbGJhY2tLZXlzQ2hhbmdlID0gIlNlbmRLZXlzQ2hhbmdlIjsKKworY2xhc3MgVGVzdERybVBsdWdpbkxpc3RlbmVyCisgICAgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0Q2FsbGJhY2tCYXNlPExpc3RlbmVyRXZlbnRBcmdzPiwKKyAgICAgIHB1YmxpYyBJRHJtUGx1Z2luTGlzdGVuZXIgeworcHVibGljOgorICAgIFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpIHsKKyAgICAgICAgU2V0V2FpdFRpbWVvdXREZWZhdWx0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSk7CisgICAgfQorICAgIHZpcnR1YWwgflRlc3REcm1QbHVnaW5MaXN0ZW5lcigpIHt9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3MuZXZlbnRUeXBlID0gZXZlbnRUeXBlOworICAgICAgICBhcmdzLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKKyAgICAgICAgYXJncy5kYXRhID0gZGF0YTsKKyAgICAgICAgTm90aWZ5RnJvbUNhbGxiYWNrKGtDYWxsYmFja0V2ZW50LCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kRXhwaXJhdGlvblVwZGF0ZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUykgb3ZlcnJpZGUgeworICAgICAgICBMaXN0ZW5lckV2ZW50QXJncyBhcmdzOworICAgICAgICBhcmdzLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKKyAgICAgICAgYXJncy5leHBpcnlUaW1lSW5NUyA9IGV4cGlyeVRpbWVJbk1TOworICAgICAgICBOb3RpZnlGcm9tQ2FsbGJhY2soa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSwgYXJncyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gc2VuZEtleXNDaGFuZ2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVN0YXR1cz4mIGtleVN0YXR1c0xpc3QsIGJvb2wgaGFzTmV3VXNhYmxlS2V5KSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3Muc2Vzc2lvbklkID0gc2Vzc2lvbklkOworICAgICAgICBhcmdzLmtleVN0YXR1c0xpc3QgPSBrZXlTdGF0dXNMaXN0OworICAgICAgICBhcmdzLmhhc05ld1VzYWJsZUtleSA9IGhhc05ld1VzYWJsZUtleTsKKyAgICAgICAgTm90aWZ5RnJvbUNhbGxiYWNrKGtDYWxsYmFja0tleXNDaGFuZ2UsIGFyZ3MpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KK307CisKKworLyoqCisgKiBTaW11bGF0ZSB0aGUgcGx1Z2luIHNlbmRpbmcgZXZlbnRzLiBNYWtlIHN1cmUgdGhlIGxpc3RlbmVyCisgKiBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lckV2ZW50cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGRhdGEgPSB7MCwgMSwgMn07CisgICAgRXZlbnRUeXBlIGV2ZW50VHlwZXNbXSA9IHtFdmVudFR5cGU6OlBST1ZJU0lPTl9SRVFVSVJFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6S0VZX05FRURFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6S0VZX0VYUElSRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudFR5cGU6OlZFTkRPUl9ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRUeXBlOjpTRVNTSU9OX1JFQ0xBSU1FRH07CisgICAgZm9yIChhdXRvIGV2ZW50VHlwZSA6IGV2ZW50VHlwZXMpIHsKKyAgICAgICAgZHJtUGx1Z2luLT5zZW5kRXZlbnQoZXZlbnRUeXBlLCBzZXNzaW9uSWQsIGRhdGEpOworICAgICAgICBhdXRvIHJlc3VsdCA9IGxpc3RlbmVyLT5XYWl0Rm9yQ2FsbGJhY2soa0NhbGxiYWNrRXZlbnQpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5hcmdzKTsKKyAgICAgICAgRVhQRUNUX0VRKGV2ZW50VHlwZSwgcmVzdWx0LmFyZ3MtPmV2ZW50VHlwZSk7CisgICAgICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgICAgICBFWFBFQ1RfRVEoZGF0YSwgcmVzdWx0LmFyZ3MtPmRhdGEpOworICAgIH0KKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBTaW11bGF0ZSB0aGUgcGx1Z2luIHNlbmRpbmcgZXhwaXJhdGlvbiB1cGRhdGVzIGFuZCBtYWtlIHN1cmUKKyAqIHRoZSBsaXN0ZW5lciBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lckV4cGlyYXRpb25VcGRhdGUpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBzcDxUZXN0RHJtUGx1Z2luTGlzdGVuZXI+IGxpc3RlbmVyID0gbmV3IFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpOworICAgIGRybVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIpOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBkcm1QbHVnaW4tPnNlbmRFeHBpcmF0aW9uVXBkYXRlKHNlc3Npb25JZCwgMTAwKTsKKyAgICBhdXRvIHJlc3VsdCA9IGxpc3RlbmVyLT5XYWl0Rm9yQ2FsbGJhY2soa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0Lm5vX3RpbWVvdXQpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5hcmdzKTsKKyAgICBFWFBFQ1RfRVEoc2Vzc2lvbklkLCByZXN1bHQuYXJncy0+c2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoMTAwLCByZXN1bHQuYXJncy0+ZXhwaXJ5VGltZUluTVMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFNpbXVsYXRlIHRoZSBwbHVnaW4gc2VuZGluZyBrZXlzIGNoYW5nZSBhbmQgbWFrZSBzdXJlCisgKiB0aGUgbGlzdGVuZXIgZ2V0cyB0aGVtLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTGlzdGVuZXJLZXlzQ2hhbmdlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgc3A8VGVzdERybVBsdWdpbkxpc3RlbmVyPiBsaXN0ZW5lciA9IG5ldyBUZXN0RHJtUGx1Z2luTGlzdGVuZXIoKTsKKyAgICBkcm1QbHVnaW4tPnNldExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY29uc3QgaGlkbF92ZWM8S2V5U3RhdHVzPiBrZXlTdGF0dXNMaXN0ID0geworICAgICAgICB7ezF9LCBLZXlTdGF0dXNUeXBlOjpVU0FCTEV9LAorICAgICAgICB7ezJ9LCBLZXlTdGF0dXNUeXBlOjpFWFBJUkVEfSwKKyAgICAgICAge3szfSwgS2V5U3RhdHVzVHlwZTo6T1VUUFVUTk9UQUxMT1dFRH0sCisgICAgICAgIHt7NH0sIEtleVN0YXR1c1R5cGU6OlNUQVRVU1BFTkRJTkd9LAorICAgICAgICB7ezV9LCBLZXlTdGF0dXNUeXBlOjpJTlRFUk5BTEVSUk9SfSwKKyAgICB9OworCisgICAgZHJtUGx1Z2luLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIHRydWUpOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFjayhrQ2FsbGJhY2tLZXlzQ2hhbmdlKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0LmFyZ3MpOworICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShrZXlTdGF0dXNMaXN0LCByZXN1bHQuYXJncy0+a2V5U3RhdHVzTGlzdCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogTmVnYXRpdmUgbGlzdGVuZXIgdGVzdHMuIENhbGwgc2VuZCBtZXRob2RzIHdpdGggbm8KKyAqIGxpc3RlbmVyIHNldC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIE5vdExpc3RlbmluZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihudWxscHRyKTsKKworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZGF0YTsKKyAgICBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3Q7CisgICAgZHJtUGx1Z2luLT5zZW5kRXZlbnQoRXZlbnRUeXBlOjpQUk9WSVNJT05fUkVRVUlSRUQsIHNlc3Npb25JZCwgZGF0YSk7CisgICAgZHJtUGx1Z2luLT5zZW5kRXhwaXJhdGlvblVwZGF0ZShzZXNzaW9uSWQsIDEwMCk7CisgICAgZHJtUGx1Z2luLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIHRydWUpOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFja0FueSgKKyAgICAgICAgICAgIHtrQ2FsbGJhY2tFdmVudCwga0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSwga0NhbGxiYWNrS2V5c0NoYW5nZX0pOworICAgIEVYUEVDVF9GQUxTRShyZXN1bHQubm9fdGltZW91dCk7Cit9CisKKworLyoqCisgKiAgQ3J5cHRvUGx1Z2luIHRlc3RzCisgKi8KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgTm90aWZ5UmVzb2x1dGlvbiBBUEkuIFRoZXJlIGlzIG5vIG9ic2VydmFibGUgcmVzdWx0LAorICoganVzdCBjYWxsIHRoZSBtZXRob2QgZm9yIGNvdmVyYWdlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTm90aWZ5UmVzb2x1dGlvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGNyeXB0b1BsdWdpbi0+bm90aWZ5UmVzb2x1dGlvbigxOTIwLCAxMDgwKTsKK30KKworLyoqCisgKiBnZXREZWNyeXB0TWVtb3J5IGFsbG9jYXRlcyBtZW1vcnkgZm9yIGRlY3J5cHRpb24sIHRoZW4gc2V0cyBpdAorICogYXMgYSBzaGFyZWQgYnVmZmVyIGJhc2UgaW4gdGhlIGNyeXB0byBoYWwuICBUaGUgYWxsb2NhdGVkIGFuZAorICogbWFwcGVkIElNZW1vcnkgaXMgcmV0dXJuZWQuCisgKgorICogQHBhcmFtIHNpemUgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSBzZWdtZW50IHRvIGFsbG9jYXRlCisgKiBAcGFyYW0gdGhlIGluZGV4IG9mIHRoZSBtZW1vcnkgc2VnbWVudCB3aGljaCB3aWxsIGJlIHVzZWQKKyAqIHRvIHJlZmVyIHRvIGl0IGZvciBkZWNyeXB0aW9uLgorICovCitzcDxJTWVtb3J5PiBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpnZXREZWNyeXB0TWVtb3J5KHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpIHsKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYXNobWVtQWxsb2NhdG9yLCBudWxscHRyKTsKKworICAgIGhpZGxfbWVtb3J5IGhpZGxNZW1vcnk7CisgICAgYXV0byByZXMgPSBhc2htZW1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgc2l6ZSwgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShzdWNjZXNzLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEobWVtb3J5LnNpemUoKSwgc2l6ZSk7CisgICAgICAgICAgICAgICAgaGlkbE1lbW9yeSA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0pOworCisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBzcDxJTWVtb3J5PiBtYXBwZWRNZW1vcnkgPSBtYXBNZW1vcnkoaGlkbE1lbW9yeSk7CisgICAgRVhQRUNUX05FKG1hcHBlZE1lbW9yeSwgbnVsbHB0cik7CisgICAgcmVzID0gY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKGhpZGxNZW1vcnksIGluZGV4KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4gbWFwcGVkTWVtb3J5OworfQorCisvKioKKyAqIEV4ZXJjaXNlIHRoZSBzZXRNZWRpYURybVNlc3Npb24gbWV0aG9kLiBzZXRNZWRpYURybVNlc3Npb24KKyAqIGlzIHVzZWQgdG8gYXNzb2NpYXRlIGEgZHJtIHNlc3Npb24gd2l0aCBhIGNyeXB0byBzZXNzaW9uLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIHNldE1lZGlhRHJtU2Vzc2lvbiB3aXRoIGEgY2xvc2VkIHNlc3Npb24gaWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkNsb3NlZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhIGVtcHR5IHNlc3Npb24gaWQ6IEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uRW1wdHlTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogRGVjcnlwdCB0ZXN0cworICovCisKK2NsYXNzIERybUhhbFZlbmRvckRlY3J5cHRUZXN0IDogcHVibGljIERybUhhbFZlbmRvclBsdWdpblRlc3QgeworICAgcHVibGljOgorICAgIERybUhhbFZlbmRvckRlY3J5cHRUZXN0KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkRybUhhbFZlbmRvckRlY3J5cHRUZXN0KCkge30KKworICAgcHJvdGVjdGVkOgorICAgIHZvaWQgZmlsbFJhbmRvbShjb25zdCBzcDxJTWVtb3J5PiYgbWVtb3J5KTsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiB0b0hpZGxBcnJheShjb25zdCB2ZWN0b3I8dWludDhfdD4mIHZlYykgeworICAgICAgICBFWFBFQ1RfRVEodmVjLnNpemUoKSwgMTZ1KTsKKyAgICAgICAgcmV0dXJuIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+KCZ2ZWNbMF0pOworICAgIH0KKyAgICBoaWRsX3ZlYzxLZXlWYWx1ZT4gcXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCk7CisgICAgdm9pZCByZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpOworICAgIHVpbnQzMl90IGRlY3J5cHQoTW9kZSBtb2RlLCBib29sIGlzU2VjdXJlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sCisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSwgU3RhdHVzIGV4cGVjdGVkU3RhdHVzKTsKKyAgICB2b2lkIGFlc19jdHJfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsIHVpbnQ4X3QqIGl2LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOworICAgIHZvaWQgYWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7Cit9OworCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpIHsKKyAgICByYW5kb21fZGV2aWNlIHJkOworICAgIG10MTk5MzcgcmFuZChyZCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lbW9yeS0+Z2V0U2l6ZSgpIC8gc2l6ZW9mKHVpbnQzMl90KTsgaSsrKSB7CisgICAgICAgIGF1dG8gcCA9IHN0YXRpY19jYXN0PHVpbnQzMl90Kj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KG1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIHBbaV0gPSByYW5kKCk7CisgICAgfQorfQorCitoaWRsX3ZlYzxLZXlWYWx1ZT4gRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OnF1ZXJ5S2V5U3RhdHVzKFNlc3Npb25JZCBzZXNzaW9uSWQpIHsKKyAgICBoaWRsX3ZlYzxLZXlWYWx1ZT4ga2V5U3RhdHVzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgaW5mbykgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGtleVN0YXR1cyA9IGluZm87CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4ga2V5U3RhdHVzOworfQorCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpyZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCit1aW50MzJfdCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdDo6ZGVjcnlwdChNb2RlIG1vZGUsIGJvb2wgaXNTZWN1cmUsCisgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiBrZXlJZCwgdWludDhfdCogaXYsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5LCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRJbmRleCA9IDA7CisKKyAgICB1aW50OF90IGxvY2FsSXZbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworCisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KKworICAgIC8vIFRoZSBmaXJzdCB0b3RhbFNpemUgYnl0ZXMgb2Ygc2hhcmVkIG1lbW9yeSBpcyB0aGUgZW5jcnlwdGVkCisgICAgLy8gaW5wdXQsIHRoZSBzZWNvbmQgdG90YWxTaXplIGJ5dGVzIGlzIHRoZSBkZWNyeXB0ZWQgb3V0cHV0LgorICAgIHNwPElNZW1vcnk+IHNoYXJlZE1lbW9yeSA9CisgICAgICAgICAgICBnZXREZWNyeXB0TWVtb3J5KHRvdGFsU2l6ZSAqIDIsIGtTZWdtZW50SW5kZXgpOworCisgICAgU2hhcmVkQnVmZmVyIHNvdXJjZUJ1ZmZlciA9IHsKKyAgICAgICAgICAgIC5idWZmZXJJZCA9IGtTZWdtZW50SW5kZXgsIC5vZmZzZXQgPSAwLCAuc2l6ZSA9IHRvdGFsU2l6ZX07CisgICAgZmlsbFJhbmRvbShzaGFyZWRNZW1vcnkpOworCisgICAgRGVzdGluYXRpb25CdWZmZXIgZGVzdEJ1ZmZlciA9IHsudHlwZSA9IEJ1ZmZlclR5cGU6OlNIQVJFRF9NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2Zmc2V0ID0gdG90YWxTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaXplID0gdG90YWxTaXplfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWN1cmVNZW1vcnkgPSBudWxscHRyfTsKKyAgICB1aW50NjRfdCBvZmZzZXQgPSAwOworICAgIHVpbnQzMl90IGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgYXV0byByZXMgPSBjcnlwdG9QbHVnaW4tPmRlY3J5cHQoaXNTZWN1cmUsIGtleUlkLCBsb2NhbEl2LCBtb2RlLCBwYXR0ZXJuLAorICAgICAgICAgICAgc3ViU2FtcGxlcywgc291cmNlQnVmZmVyLCBvZmZzZXQsIGRlc3RCdWZmZXIsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgdWludDMyX3QgY291bnQsIHN0cmluZyBkZXRhaWxlZEVycm9yKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkU3RhdHVzLCBzdGF0dXMpIDw8ICJVbmV4cGVjdGVkIGRlY3J5cHQgc3RhdHVzICIgPDwKKyAgICAgICAgICAgICAgICBkZXRhaWxlZEVycm9yOworICAgICAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IGNvdW50OworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBpZiAoYnl0ZXNXcml0dGVuICE9IHRvdGFsU2l6ZSkgeworICAgICAgICByZXR1cm4gYnl0ZXNXcml0dGVuOworICAgIH0KKyAgICB1aW50OF90KiBiYXNlID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KHNoYXJlZE1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisKKyAgICAvLyBnZW5lcmF0ZSByZWZlcmVuY2UgdmVjdG9yCisgICAgdmVjdG9yPHVpbnQ4X3Q+IHJlZmVyZW5jZSh0b3RhbFNpemUpOworCisgICAgbWVtY3B5KGxvY2FsSXYsIGl2LCBBRVNfQkxPQ0tfU0laRSk7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBNb2RlOjpVTkVOQ1JZUFRFRDoKKyAgICAgICAgbWVtY3B5KCZyZWZlcmVuY2VbMF0sIGJhc2UsIHRvdGFsU2l6ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NUUjoKKyAgICAgICAgYWVzX2N0cl9kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgYWVzX2NiY19kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQ19DVFM6CisgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiQUVTX0NCQ19DVFMgbW9kZSBub3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gY29tcGFyZSByZWZlcmVuY2UgdG8gZGVjcnlwdGVkIGRhdGEgd2hpY2ggaXMgYXQgYmFzZSArIHRvdGFsIHNpemUKKyAgICBFWFBFQ1RfRVEoMCwgbWVtY21wKHN0YXRpY19jYXN0PHZvaWQqPigmcmVmZXJlbmNlWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihiYXNlICsgdG90YWxTaXplKSwgdG90YWxTaXplKSkKKyAgICAgICAgICAgIDw8ICJkZWNyeXB0IGRhdGEgbWlzbWF0Y2giOworICAgIHJldHVybiB0b3RhbFNpemU7Cit9CisKKy8qKgorICogRGVjcnlwdCBhIGxpc3Qgb2YgY2xlYXIrZW5jcnlwdGVkIHN1YnNhbXBsZXMgdXNpbmcgdGhlIHNwZWNpZmllZCBrZXkKKyAqIGluIEFFUy1DVFIgbW9kZQorICovCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjphZXNfY3RyX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLAorICAgICAgICB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIHsKKworICAgIEFFU19LRVkgZGVjcnlwdGlvbktleTsKKyAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KCZrZXlbMF0sIDEyOCwgJmRlY3J5cHRpb25LZXkpOworCisgICAgc2l6ZV90IG9mZnNldCA9IDA7CisgICAgdW5zaWduZWQgYmxvY2tPZmZzZXQgPSAwOworICAgIHVpbnQ4X3QgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyW0FFU19CTE9DS19TSVpFXTsKKyAgICBtZW1zZXQocHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAwLCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3ViU2FtcGxlJiBzdWJTYW1wbGUgPSBzdWJTYW1wbGVzW2ldOworCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPiAwKSB7CisgICAgICAgICAgICBBRVNfY3RyMTI4X2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsICZkZWNyeXB0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICBpdiwgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAmYmxvY2tPZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNCQyBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OmFlc19jYmNfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSkgeworICAgIEFFU19LRVkgZGVjcnlwdGlvbktleTsKKyAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KCZrZXlbMF0sIDEyOCwgJmRlY3J5cHRpb25LZXkpOworCisgICAgc2l6ZV90IG9mZnNldCA9IDA7CisgICAgc2l6ZV90IG51bSA9IDA7CisgICAgc2l6ZV90IGVjb3VudF9idWYgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJTYW1wbGUmIHN1YlNhbXBsZSA9IHN1YlNhbXBsZXNbaV07CisKKyAgICAgICAgbWVtY3B5KGRlc3QgKyBvZmZzZXQsIHNyYyArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGEpOworICAgICAgICBvZmZzZXQgKz0gc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisKKyAgICAgICAgQUVTX2NiY19lbmNyeXB0KHNyYyArIG9mZnNldCwgZGVzdCArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhLAorICAgICAgICAgICAgICAgICZkZWNyeXB0aW9uS2V5LCBpdiwgMCAvKiBkZWNyeXB0ICovKTsKKyAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICB9Cit9CisKKworLyoqCisgKiBUZXN0IGtleSBzdGF0dXMgd2l0aCBlbXB0eSBzZXNzaW9uIGlkLCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIFF1ZXJ5S2V5U3RhdHVzSW52YWxpZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgLyogaW5mbyAqLykgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisKKy8qKgorICogVGVzdCBrZXkgc3RhdHVzLiAgVGhlcmUgc2hvdWxkIGJlIG5vIGtleSBzdGF0dXMgcHJpb3IgdG8gbG9hZGluZyBrZXlzCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgUXVlcnlLZXlTdGF0dXNXaXRoTm9LZXlzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGF1dG8ga2V5U3RhdHVzID0gcXVlcnlLZXlTdGF0dXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoMHUsIGtleVN0YXR1cy5zaXplKCkpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisKKy8qKgorICogVGVzdCBrZXkgc3RhdHVzLiAgVGhlcmUgc2hvdWxkIGJlIGtleSBzdGF0dXMgYWZ0ZXIgbG9hZGluZyBrZXlzLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIFF1ZXJ5S2V5U3RhdHVzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKyAgICAgICAgYXV0byBrZXlTdGF0dXMgPSBxdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQpOworICAgICAgICBFWFBFQ1RfTkUoMHUsIGtleVN0YXR1cy5zaXplKCkpOworICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICB9Cit9CisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAiRGVjcnlwdCIgYSBzaW5nbGUgY2xlYXIgc2VnbWVudCBhbmQgdmVyaWZ5LgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIENsZWFyU2VnbWVudFRlc3QpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGZvciAoYXV0byBrZXkgOiBjb25maWcua2V5cykgeworICAgICAgICAgICAgY29uc3Qgc2l6ZV90IGtTZWdtZW50U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IGtTZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpVTkVOQ1JZUFRFRCwga2V5LmlzU2VjdXJlLCB0b0hpZGxBcnJheShrZXkua2V5SWQpLAorICAgICAgICAgICAgICAgICAgICAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpPSyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoa1NlZ21lbnRTaXplLCBieXRlQ291bnQpOworCisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBQb3NpdGl2ZSBkZWNyeXB0IHRlc3QuICBEZWNyeXB0IGEgc2luZ2xlIHNlZ21lbnQgdXNpbmcgYWVzX2N0ci4KKyAqIFZlcmlmeSBkYXRhIG1hdGNoZXMuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3QpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGZvciAoYXV0byBrZXkgOiBjb25maWcua2V5cykgeworICAgICAgICAgICAgY29uc3Qgc2l6ZV90IGtTZWdtZW50U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IGtTZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCBrZXkuaXNTZWN1cmUsIHRvSGlkbEFycmF5KGtleS5rZXlJZCksCisgICAgICAgICAgICAgICAgICAgICZpdlswXSwgc3ViU2FtcGxlcywgbm9QYXR0ZXJuLCBrZXkuY2xlYXJDb250ZW50S2V5LCBTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShrU2VnbWVudFNpemUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIE5lZ2F0aXZlIGRlY3J5cHQgdGVzdC4gRGVjcnlwdCB3aXRob3V0IGxvYWRpbmcga2V5cy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBFbmNyeXB0ZWRBZXNDdHJTZWdtZW50VGVzdE5vS2V5cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OkFFU19DVFIsIGtleS5pc1NlY3VyZSwKKyAgICAgICAgICAgICAgICAgICAgdG9IaWRsQXJyYXkoa2V5LmtleUlkKSwgJml2WzBdLCBzdWJTYW1wbGVzLCBub1BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgIGtleS5jbGVhckNvbnRlbnRLZXksIFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0UpOworICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBieXRlQ291bnQpOworCisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IGtleSByZW1vdmFsLiAgTG9hZCBrZXlzIHRoZW4gcmVtb3ZlIHRoZW0gYW5kIHZlcmlmeSB0aGF0CisgKiBkZWNyeXB0aW9uIGNhbid0IGJlIHBlcmZvcm1lZC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBBdHRlbXB0RGVjcnlwdFdpdGhLZXlzUmVtb3ZlZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICBsb2FkS2V5cyhzZXNzaW9uSWQsIGNvbmZpZyk7CisgICAgICAgICAgICByZW1vdmVLZXlzKHNlc3Npb25JZCk7CisKKyAgICAgICAgICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwga2V5LmlzU2VjdXJlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxBcnJheShrZXkua2V5SWQpLCAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpFUlJPUl9EUk1fTk9fTElDRU5TRSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisKKy8qKgorICogSW5zdGFudGlhdGUgdGhlIHNldCBvZiB0ZXN0IGNhc2VzIGZvciBlYWNoIHZlbmRvciBtb2R1bGUKKyAqLworCitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICAgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3RDYXNlcywgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsCisgICAgICAgIHRlc3Rpbmc6OlZhbHVlc0luKGdWZW5kb3JNb2R1bGVzLT5nZXRQYXRoTGlzdCgpKSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Q2FzZXMsIERybUhhbFZlbmRvclBsdWdpblRlc3QsCisgICAgICAgIHRlc3Rpbmc6OlZhbHVlc0luKGdWZW5kb3JNb2R1bGVzLT5nZXRQYXRoTGlzdCgpKSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdENhc2VzLCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwKKyAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4oZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkpKTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisjaWYgZGVmaW5lZChfX0xQNjRfXykKKyAgICBjb25zdCBjaGFyKiBrTW9kdWxlUGF0aCA9ICIvZGF0YS9sb2NhbC90bXAvNjQvbGliIjsKKyNlbHNlCisgICAgY29uc3QgY2hhcioga01vZHVsZVBhdGggPSAiL2RhdGEvbG9jYWwvdG1wLzMyL2xpYiI7CisjZW5kaWYKKyAgICBnVmVuZG9yTW9kdWxlcyA9IG5ldyBkcm1fdnRzOjpWZW5kb3JNb2R1bGVzKGtNb2R1bGVQYXRoKTsKKyAgICBpZiAoZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkuc2l6ZSgpID09IDApIHsKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJObyB2ZW5kb3IgbW9kdWxlcyBmb3VuZCBpbiAiIDw8IGtNb2R1bGVQYXRoIDw8CisgICAgICAgICAgICAgICAgIiwgZXhpdGluZyIgPDwgc3RkOjplbmRsOworICAgICAgICBleGl0KC0xKTsKKyAgICB9CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuY3BwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY1ODE1MAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybS12dHMtc2hhcmVkLWxpYnJhcnkiCisKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPHNoYXJlZF9saWJyYXJ5Lmg+CisKK3VzaW5nIHN0ZDo6c3RyaW5nOworCituYW1lc3BhY2UgZHJtX3Z0cyB7CisKK1NoYXJlZExpYnJhcnk6OlNoYXJlZExpYnJhcnkoY29uc3Qgc3RyaW5nJiBwYXRoKSB7CisgICAgbUxpYkhhbmRsZSA9IGRsb3BlbihwYXRoLmNfc3RyKCksIFJUTERfTk9XKTsKK30KKworU2hhcmVkTGlicmFyeTo6flNoYXJlZExpYnJhcnkoKSB7CisgICAgaWYgKG1MaWJIYW5kbGUgIT0gTlVMTCkgeworICAgICAgICBkbGNsb3NlKG1MaWJIYW5kbGUpOworICAgICAgICBtTGliSGFuZGxlID0gTlVMTDsKKyAgICB9Cit9CisKK2Jvb2wgU2hhcmVkTGlicmFyeTo6b3BlcmF0b3IhKCkgY29uc3QgeworICAgIHJldHVybiBtTGliSGFuZGxlID09IE5VTEw7Cit9CisKK3ZvaWQqIFNoYXJlZExpYnJhcnk6Omxvb2t1cChjb25zdCBjaGFyKiBzeW1ib2wpIGNvbnN0IHsKKyAgICBpZiAoIW1MaWJIYW5kbGUpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLy8gQ2xlYXIgbGFzdCBlcnJvciBiZWZvcmUgd2UgbG9hZCB0aGUgc3ltYm9sIGFnYWluLAorICAgIC8vIGluIGNhc2UgdGhlIGNhbGxlciBkaWRuJ3QgcmV0cmlldmUgaXQuCisgICAgKHZvaWQpZGxlcnJvcigpOworICAgIHJldHVybiBkbHN5bShtTGliSGFuZGxlLCBzeW1ib2wpOworfQorCitjb25zdCBjaGFyKiBTaGFyZWRMaWJyYXJ5OjpsYXN0RXJyb3IoKSBjb25zdCB7CisgICAgY29uc3QgY2hhciogZXJyb3IgPSBkbGVycm9yKCk7CisgICAgcmV0dXJuIGVycm9yID8gZXJyb3IgOiAiTm8gZXJyb3JzIG9yIHVua25vd24gZXJyb3IiOworfQorfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuaCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjMyMjQzCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFNIQVJFRF9MSUJSQVJZX0hfCisjZGVmaW5lIFNIQVJFRF9MSUJSQVJZX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgZHJtX3Z0cyB7CitjbGFzcyBTaGFyZWRMaWJyYXJ5IHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNpdCBTaGFyZWRMaWJyYXJ5KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKTsKKyAgICB+U2hhcmVkTGlicmFyeSgpOworCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdDsKKyAgICB2b2lkKiBsb29rdXAoY29uc3QgY2hhciogc3ltYm9sKSBjb25zdDsKKyAgICBjb25zdCBjaGFyKiBsYXN0RXJyb3IoKSBjb25zdDsKKworICAgcHJpdmF0ZToKKyAgICB2b2lkKiBtTGliSGFuZGxlOworCisgICAgU2hhcmVkTGlicmFyeShjb25zdCBTaGFyZWRMaWJyYXJ5JikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgU2hhcmVkTGlicmFyeSYpID0gZGVsZXRlOworfTsKK307CisKKyNlbmRpZiAgLy8gU0hBUkVEX0xJQlJBUllfSF8KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuY3BwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJmMGIyOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybS12dHMtdmVuZG9yLW1vZHVsZXMiCisKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJzaGFyZWRfbGlicmFyeS5oIgorI2luY2x1ZGUgInZlbmRvcl9tb2R1bGVzLmgiCisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK3ZvaWQgVmVuZG9yTW9kdWxlczo6c2Nhbk1vZHVsZXMoY29uc3Qgc3RkOjpzdHJpbmcgJmRpcmVjdG9yeSkgeworICAgIERJUiogZGlyID0gb3BlbmRpcihkaXJlY3RvcnkuY19zdHIoKSk7CisgICAgaWYgKGRpciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gb3BlbiBkcm0gVlRTIHZlbmRvciBkaXJlY3RvcnkgJXMiLCBkaXJlY3RvcnkuY19zdHIoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RydWN0IGRpcmVudCogZW50cnk7CisgICAgICAgIHdoaWxlICgoZW50cnkgPSByZWFkZGlyKGRpcikpKSB7CisgICAgICAgICAgICBBTE9HRCgiY2hlY2tpbmcgZmlsZSAlcyIsIGVudHJ5LT5kX25hbWUpOworICAgICAgICAgICAgc3RyaW5nIGZ1bGxwYXRoID0gZGlyZWN0b3J5ICsgIi8iICsgZW50cnktPmRfbmFtZTsKKyAgICAgICAgICAgIGlmIChlbmRzV2l0aChmdWxscGF0aCwgIi5zbyIpKSB7CisgICAgICAgICAgICAgICAgbVBhdGhMaXN0LnB1c2hfYmFjayhmdWxscGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2xvc2VkaXIoZGlyKTsKKyAgICB9Cit9CisKK0RybUhhbFZUU1ZlbmRvck1vZHVsZSogVmVuZG9yTW9kdWxlczo6Z2V0TW9kdWxlKGNvbnN0IHN0cmluZyYgcGF0aCkgeworICAgIGlmIChtT3BlbkxpYnJhcmllcy5maW5kKHBhdGgpID09IG1PcGVuTGlicmFyaWVzLmVuZCgpKSB7CisgICAgICAgIGF1dG8gbGlicmFyeSA9IHN0ZDo6bWFrZV91bmlxdWU8U2hhcmVkTGlicmFyeT4ocGF0aCk7CisgICAgICAgIGlmICghbGlicmFyeSkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBtYXAgc2hhcmVkIGxpYnJhcnkgJXMiLCBwYXRoLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgbU9wZW5MaWJyYXJpZXNbcGF0aF0gPSBzdGQ6Om1vdmUobGlicmFyeSk7CisgICAgfQorICAgIGNvbnN0IHVuaXF1ZV9wdHI8U2hhcmVkTGlicmFyeT4mIGxpYnJhcnkgPSBtT3BlbkxpYnJhcmllc1twYXRoXTsKKyAgICB2b2lkKiBzeW1ib2wgPSBsaWJyYXJ5LT5sb29rdXAoInZlbmRvck1vZHVsZUZhY3RvcnkiKTsKKyAgICBpZiAoc3ltYm9sID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImdldFZlbmRvck1vZHVsZSBmYWlsZWQgdG8gbG9va3VwICd2ZW5kb3JNb2R1bGVGYWN0b3J5JyBpbiAlczogIgorICAgICAgICAgICAgICAiJXMiLCBwYXRoLmNfc3RyKCksIGxpYnJhcnktPmxhc3RFcnJvcigpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHR5cGVkZWYgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiAoKk1vZHVsZUZhY3RvcnkpKCk7CisgICAgTW9kdWxlRmFjdG9yeSBtb2R1bGVGYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxNb2R1bGVGYWN0b3J5PihzeW1ib2wpOworICAgIHJldHVybiAoKm1vZHVsZUZhY3RvcnkpKCk7Cit9Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5oIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNTM4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3ZlbmRvcl9tb2R1bGVzLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVkVORE9SX01PRFVMRVNfSAorI2RlZmluZSBWRU5ET1JfTU9EVUxFU19ICisKKyNpbmNsdWRlIDxtYXA+CisKKyNpbmNsdWRlICJzaGFyZWRfbGlicmFyeS5oIgorCitjbGFzcyBEcm1IYWxWVFNWZW5kb3JNb2R1bGU7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK2NsYXNzIFZlbmRvck1vZHVsZXMgeworICAgcHVibGljOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgd2l0aCBhIGZpbGUgc3lzdGVtIHBhdGggd2hlcmUgdGhlIHNoYXJlZCBsaWJyYXJpZXMKKyAgICAgKiBhcmUgdG8gYmUgZm91bmQuCisgICAgICovCisgICAgZXhwbGljaXQgVmVuZG9yTW9kdWxlcyhjb25zdCBzdGQ6OnN0cmluZyYgZGlyKSB7CisgICAgICAgIHNjYW5Nb2R1bGVzKGRpcik7CisgICAgfQorICAgIH5WZW5kb3JNb2R1bGVzKCkge30KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIGdpdmVuIGl0cyBmdWxsIHBhdGguICBUaGUKKyAgICAgKiBnZXRBUElWZXJzaW9uIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZlcnNpb25lZAorICAgICAqIHN1YmNsYXNzIHR5cGUuCisgICAgICovCisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiBnZXRNb2R1bGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsaXN0IG9mIHBhdGhzIHRvIGF2YWlsYWJsZSB2ZW5kb3IgbW9kdWxlcy4KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZ2V0UGF0aExpc3QoKSBjb25zdCB7cmV0dXJuIG1QYXRoTGlzdDt9CisKKyAgIHByaXZhdGU6CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG1QYXRoTGlzdDsKKyAgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFNoYXJlZExpYnJhcnk+PiBtT3BlbkxpYnJhcmllczsKKworICAgIC8qKgorICAgICAqIFNjYW4gdGhlIGxpc3Qgb2YgcGF0aHMgdG8gYXZhaWxhYmxlIHZlbmRvciBtb2R1bGVzLgorICAgICAqLworICAgIHZvaWQgc2Nhbk1vZHVsZXMoY29uc3Qgc3RkOjpzdHJpbmcmIGRpcik7CisKKyAgICBpbmxpbmUgYm9vbCBlbmRzV2l0aChjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBjb25zdCBzdGQ6OnN0cmluZyYgc3VmZml4KSBjb25zdCB7CisgICAgICAgIGlmIChzdWZmaXguc2l6ZSgpID4gc3RyLnNpemUoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc3RkOjplcXVhbChzdWZmaXgucmJlZ2luKCksIHN1ZmZpeC5yZW5kKCksIHN0ci5yYmVnaW4oKSk7CisgICAgfQorCisgICAgVmVuZG9yTW9kdWxlcyhjb25zdCBWZW5kb3JNb2R1bGVzJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmVuZG9yTW9kdWxlcyYpID0gZGVsZXRlOworfTsKK307CisKKyNlbmRpZiAgLy8gVkVORE9SX01PRFVMRVNfSApkaWZmIC0tZ2l0IGEvZHJtL0FuZHJvaWQuYnAgYi9kcm0vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Y3MGViCi0tLSAvZGV2L251bGwKKysrIGIvZHJtL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlLzEuMC9BbmRyb2lkLmJwIGIvZHVtcHN0YXRlLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MjRjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1OSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJRHVtcHN0YXRlRGV2aWNlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvRHVtcHN0YXRlRGV2aWNlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9JRHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0lId0R1bXBzdGF0ZURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9Cbkh3RHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0JwSHdEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvQnNEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oYWwgYi9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmMxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaGFsCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMDsKKworaW50ZXJmYWNlIElEdW1wc3RhdGVEZXZpY2UgeworICAgIC8qKgorICAgICAqIER1bXBzIGRldmljZS1zcGVjaWZpYyBzdGF0ZSBpbnRvIHRoZSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgZHVtcHN0YXRlQm9hcmQoaGFuZGxlIGgpOworfTsKZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGIwN2Y0OQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjIgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBEdW1wc3RhdGVEZXZpY2UuY3BwIFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZHVtcHN0YXRldXRpbCBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmNwcCBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxM2ZjNjIKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJkdW1wc3RhdGUiCisKKyNpbmNsdWRlICJEdW1wc3RhdGVEZXZpY2UuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkR1bXBzdGF0ZVV0aWwuaCIKKwordXNpbmcgYW5kcm9pZDo6b3M6OmR1bXBzdGF0ZTo6RHVtcEZpbGVUb0ZkOwordXNpbmcgYW5kcm9pZDo6b3M6OmR1bXBzdGF0ZTo6UnVuQ29tbWFuZFRvRmQ7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHVtcHN0YXRlIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IER1bXBzdGF0ZURldmljZTo6ZHVtcHN0YXRlQm9hcmQoY29uc3QgaGlkbF9oYW5kbGUmIGhhbmRsZSkgeworICAgIC8vIE5PVEU6IHRoaXMgaXMganVzdCBhbiBleGFtcGxlIG9uIGhvdyB0byB1c2UgdGhlIER1bXBzdGF0ZVV0aWwuaCBmdW5jdGlvbnMgdG8gaW1wbGVtZW50CisgICAgLy8gdGhpcyBpbnRlcmZhY2UgLSBzaW5jZSBISURMX0ZFVENIX0lEdW1wc3RhdGVEZXZpY2UoKSBpcyBub3QgZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiB3aWxsIG5ldmVyCisgICAgLy8gYmUgY2FsbGVkIGJ5IGR1bXBzdGF0ZS4KKworICAgIGlmIChoYW5kbGUtPm51bUZkcyA8IDEpIHsKKyAgICAgICAgQUxPR0UoIm5vIEZEc1xuIik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGZkID0gaGFuZGxlLT5kYXRhWzBdOworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgRkQ6ICVkXG4iLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBBTE9HRCgiRHVtcHN0YXRlRGV2aWNlOjpkdW1wc3RhdGVCb2FyZCgpIEZEOiAlZFxuIiwgZmQpOworICAgIEFMT0dJKCJEdW1wc3RhdGUgSElETCBub3QgcHJvdmlkZWQgYnkgZGV2aWNlXG4iKTsKKyAgICBkcHJpbnRmKGZkLCAiRHVtcHN0YXRlIEhJREwgbm90IHByb3ZpZGVkIGJ5IGRldmljZTsgcHJvdmlkaW5nIGJvZ3VzIGRhdGEuXG4iKTsKKworICAgIC8vIFNob3dzIHNvbWUgZXhhbXBsZXMgb24gaG93IHRvIHVzZSB0aGUgbGliZHVtcHN0YXRldXRpbCBBUEkuCisgICAgUnVuQ29tbWFuZFRvRmQoZmQsICJEQVRFIiwgeyIvdmVuZG9yL2Jpbi9kYXRlIn0pOworICAgIER1bXBGaWxlVG9GZChmZCwgIkhPU1RTIiwgIi9zeXN0ZW0vZXRjL2hvc3RzIik7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHVtcHN0YXRlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmggYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg1ODVmNQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EVU1QU1RBVEVfVjFfMF9EVU1QU1RBVEVERVZJQ0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkdW1wc3RhdGUgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHVtcHN0YXRlOjpWMV8wOjpJRHVtcHN0YXRlRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRHVtcHN0YXRlRGV2aWNlIDogcHVibGljIElEdW1wc3RhdGVEZXZpY2UgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBkdW1wc3RhdGVCb2FyZChjb25zdCBoaWRsX2hhbmRsZSYgaCkgb3ZlcnJpZGU7CisKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkdW1wc3RhdGUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYyNzI0OAotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgZHVtcHN0YXRlLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYyNzZiNwotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSAiRHVtcHN0YXRlRGV2aWNlLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIDo6YW5kcm9pZDo6T0s7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitpbnQgbWFpbihpbnQgLyogYXJnYyAqLywgY2hhciogLyogYXJndiAqLyBbXSkgeworICAgIHNwPElEdW1wc3RhdGVEZXZpY2U+IGR1bXBzdGF0ZSA9IG5ldyBEdW1wc3RhdGVEZXZpY2U7CisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qIHdpbGwgam9pbiAqLyk7CisgICAgaWYgKGR1bXBzdGF0ZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKSAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IHJlZ2lzdGVyIHNlcnZpY2UuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworCisgICAgQUxPR0UoIlNlcnZpY2UgZXhpdGVkISIpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlL0FuZHJvaWQuYnAgYi9kdW1wc3RhdGUvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmIzZTRiCi0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorXQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5icCBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI3MGMwOQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklHYXRla2VlcGVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0dhdGVrZWVwZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0lId0dhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0JuSHdHYXRla2VlcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9CcEh3R2F0ZWtlZXBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvQnNHYXRla2VlcGVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5tayBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc2ZjcyOQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxNTYgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJSZXNwb25zZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci9WMV8wL0dhdGVrZWVwZXJSZXNwb25zZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJSZXNwb25zZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR2F0ZWtlZXBlclN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUdhdGVrZWVwZXIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9JR2F0ZWtlZXBlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjpJR2F0ZWtlZXBlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHYXRla2VlcGVyUmVzcG9uc2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyUmVzcG9uc2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjp0eXBlcy5HYXRla2VlcGVyUmVzcG9uc2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvR2F0ZWtlZXBlclN0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjp0eXBlcy5HYXRla2VlcGVyU3RhdHVzQ29kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHYXRla2VlcGVyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvSUdhdGVrZWVwZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHYXRla2VlcGVyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6SUdhdGVrZWVwZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHYXRla2VlcGVyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaGFsIGIvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZGQ3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oYWwKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOworCitpbnRlcmZhY2UgSUdhdGVrZWVwZXIgeworCisvKioKKyAqIEVucm9sbHMgZGVzaXJlZFBhc3N3b3JkLCB3aGljaCBtYXkgYmUgZGVyaXZlZCBmcm9tIGEgdXNlciBzZWxlY3RlZCBwaW4KKyAqIG9yIHBhc3N3b3JkLCB3aXRoIHRoZSBwcml2YXRlIGtleSB1c2VkIG9ubHkgZm9yIGVucm9sbGluZyBhdXRoZW50aWNhdGlvbgorICogZmFjdG9yIGRhdGEuCisgKgorICogSWYgdGhlcmUgd2FzIGFscmVhZHkgYSBwYXNzd29yZCBlbnJvbGxlZCwgY3VycmVudCBwYXNzd29yZCBoYW5kbGUgbXVzdCBiZQorICogcGFzc2VkIGluIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwgYW5kIGN1cnJlbnQgcGFzc3dvcmQgbXVzdCBiZSBwYXNzZWQgaW4KKyAqIGN1cnJlbnRQYXNzd29yZC4gVmFsaWQgY3VycmVudFBhc3N3b3JkIG11c3QgdmVyaWZ5KCkgYWdhaW5zdAorICogY3VycmVudFBhc3N3b3JkSGFuZGxlLgorICoKKyAqIEBwYXJhbSB1aWQgVGhlIEFuZHJvaWQgdXNlciBpZGVudGlmaWVyCisgKgorICogQHBhcmFtIGN1cnJlbnRQYXNzd29yZEhhbmRsZSBUaGUgY3VycmVudGx5IGVucm9sbGVkIHBhc3N3b3JkIGhhbmRsZSB0aGUgdXNlcgorICogICAgd2FudHMgdG8gcmVwbGFjZS4gTWF5IGJlIGVtcHR5IG9ubHkgaWYgdGhlcmUncyBubyBjdXJyZW50bHkgZW5yb2xsZWQKKyAqICAgIHBhc3N3b3JkLiBPdGhlcndpc2UgbXVzdCBiZSBub24tZW1wdHkuCisgKgorICogQHBhcmFtIGN1cnJlbnRQYXNzd29yZCBUaGUgdXNlcidzIGN1cnJlbnQgcGFzc3dvcmQgaW4gcGxhaW4gdGV4dC4KKyAqICAgIGl0IE1VU1QgdmVyaWZ5IGFnYWluc3QgY3VycmVudF9wYXNzd29yZF9oYW5kbGUgaWYgdGhlIGxhdHRlciBpcyBub3QtZW1wdHkKKyAqCisgKiBAcGFyYW0gZGVzaXJlZFBhc3N3b3JkIFRoZSBuZXcgcGFzc3dvcmQgdGhlIHVzZXIgd2lzaGVzIHRvIGVucm9sbCBpbgorICogICAgcGxhaW50ZXh0LgorICoKKyAqIEByZXR1cm4gcmVzcG9uc2UKKyAqICAgIE9uIHN1Y2Nlc3MsIGRhdGEgYnVmZmVyIG11c3QgY29udGFpbiB0aGUgbmV3IHBhc3N3b3JkIGhhbmRsZSByZWZlcmVuY2luZworICogICAgdGhlIHBhc3N3b3JkIHByb3ZpZGVkIGluIGRlc2lyZWRQYXNzd29yZC4KKyAqICAgIFRoaXMgYnVmZmVyIGNhbiBiZSB1c2VkIG9uIHN1YnNlcXVlbnQgY2FsbHMgdG8gZW5yb2xsIG9yCisgKiAgICB2ZXJpZnkuIE9uIGVycm9yLCB0aGlzIGJ1ZmZlciBtdXN0IGJlIGVtcHR5LgorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgRVJST1JfUkVUUllfVElNRU9VVCBpcyByZXR1cm5lZCwgcmVzcG9uc2UudGltZW91dCBtdXN0IGJlIG5vbi16ZXJvLgorICovCitlbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgIHZlYzx1aW50OF90PiBjdXJyZW50UGFzc3dvcmRIYW5kbGUsCisgICAgICAgdmVjPHVpbnQ4X3Q+IGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICB2ZWM8dWludDhfdD4gZGVzaXJlZFBhc3N3b3JkKQorICAgIGdlbmVyYXRlcyAoR2F0ZWtlZXBlclJlc3BvbnNlIHJlc3BvbnNlKTsKKworLyoqCisgKiBWZXJpZmllcyB0aGF0IHByb3ZpZGVkUGFzc3dvcmQgbWF0Y2hlcyBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLgorICoKKyAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1vZHVsZSBtYXkgcmV0YWluIHRoZSByZXN1bHQgb2YgdGhpcyBjYWxsCisgKiB0byBhdHRlc3QgdG8gdGhlIHJlY2VuY3kgb2YgYXV0aGVudGljYXRpb24uCisgKgorICogT24gc3VjY2VzcywgcmV0dXJucyB2ZXJpZmljYXRpb24gdG9rZW4gaW4gcmVzcG9uc2UuZGF0YSwgd2hpY2ggc2hhbGwgYmUKKyAqIHVzYWJsZSB0byBhdHRlc3QgcGFzc3dvcmQgdmVyaWZpY2F0aW9uIHRvIG90aGVyIHRydXN0ZWQgc2VydmljZXMuCisgKgorICogQHBhcmFtIHVpZCBUaGUgQW5kcm9pZCB1c2VyIGlkZW50aWZpZXIKKyAqCisgKiBAcGFyYW0gY2hhbGxlbmdlIEFuIG9wdGlvbmFsIGNoYWxsZW5nZSB0byBhdXRoZW50aWNhdGUgYWdhaW5zdCwgb3IgMC4KKyAqICAgIFVzZWQgd2hlbiBhIHNlcGFyYXRlIGF1dGhlbnRpY2F0b3IgcmVxdWVzdHMgcGFzc3dvcmQgdmVyaWZpY2F0aW9uLAorICogICAgb3IgZm9yIHRyYW5zYWN0aW9uYWwgcGFzc3dvcmQgYXV0aGVudGljYXRpb24uCisgKgorICogQHBhcmFtIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUgVGhlIGN1cnJlbnRseSBlbnJvbGxlZCBwYXNzd29yZCBoYW5kbGUgdGhhdAorICogICAgdXNlciB3aXNoZXMgdG8gdmVyaWZ5IGFnYWluc3QuIE11c3QgYmUgbm9uLWVtcHR5LgorICoKKyAqIEBwYXJhbSBwcm92aWRlZFBhc3N3b3JkIFRoZSBwbGFpbnRleHQgcGFzc3dvcmQgdG8gYmUgdmVyaWZpZWQgYWdhaW5zdCB0aGUKKyAqICAgIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUKKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICBPbiBzdWNjZXNzLCBhIG5vbi1lbXB0eSBkYXRhIGJ1ZmZlciBjb250YWluaW5nIHRoZQorICogICAgYXV0aGVudGljYXRpb24gdG9rZW4gcmVzdWx0aW5nIGZyb20gdGhpcyB2ZXJpZmljYXRpb24gaXMgcmV0dXJuZWQuCisgKiAgICBPbiBlcnJvciwgZGF0YSBidWZmZXIgbXVzdCBiZSBlbXB0eS4KKyAqICAgIHJlc3BvbnNlLmNvZGUgbXVzdCBhbHdheXMgY29udGFpbiBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgKiAgICBUaGlzIG1ldGhvZCBtYXkgcmV0dXJuIEVSUk9SX0dFTkVSQUxfRkFJTFVSRSBvciBFUlJPUl9SRVRSWV9USU1FT1VUIG9uCisgKiAgICBmYWlsdXJlLiBJdCBtdXN0IHJldHVybiBTVEFUVVNfT0sgb24gc3VjY2Vzcy4KKyAqICAgIElmIHBhc3N3b3JkIHJlLWVucm9sbG1lbnQgaXMgbmVjZXNzYXJ5LCBpdCBtdXN0IHJldHVybiBTVEFUVVNfUkVFTlJPTEwuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK3ZlcmlmeSh1aW50MzJfdCB1aWQsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICB2ZWM8dWludDhfdD4gZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICB2ZWM8dWludDhfdD4gcHJvdmlkZWRQYXNzd29yZCkKKyAgICBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7CisKKy8qKgorICogRGVsZXRlcyB0aGUgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVpZC4gT25jZSBkZWxldGVkCisgKiB0aGUgdXNlciBjYW5ub3QgYmUgdmVyaWZpZWQgYW55bW9yZS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgbWV0aG9kLgorICoKKyAqIEBwYXJhbSB1aWQgVGhlIEFuZHJvaWQgdXNlciBpZGVudGlmaWVyCisgKgorICogQHJldHVybiByZXNwb25zZQorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgbm90IGltcGxlbWVudGVkLCBpdCBtdXN0IHJldHVybiBFUlJPUl9OT1RfSU1QTEVNRU5URUQuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK2RlbGV0ZVVzZXIodWludDMyX3QgdWlkKSBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7CisKKy8qKgorICogRGVsZXRlcyBhbGwgdGhlIGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZXMgZm9yIGFsbCB1aWQncy4gT25jZSBjYWxsZWQsCisgKiBubyB1c2VycyBtdXN0IGJlIGVucm9sbGVkIG9uIHRoZSBkZXZpY2UuCisgKiBUaGlzIGlzIGFuIG9wdGlvbmFsIG1ldGhvZC4KKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICByZXNwb25zZS5jb2RlIG11c3QgYWx3YXlzIGNvbnRhaW4gb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICogICAgVGhpcyBtZXRob2QgbWF5IHJldHVybiBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgb3IgRVJST1JfUkVUUllfVElNRU9VVCBvbgorICogICAgZmFpbHVyZS4gSXQgbXVzdCByZXR1cm4gU1RBVFVTX09LIG9uIHN1Y2Nlc3MuCisgKiAgICBJZiBub3QgaW1wbGVtZW50ZWQsIGl0IG11c3QgcmV0dXJuIEVSUk9SX05PVF9JTVBMRU1FTlRFRC4KKyAqICAgIElmIEVSUk9SX1JFVFJZX1RJTUVPVVQgaXMgcmV0dXJuZWQsIHJlc3BvbnNlLnRpbWVvdXQgbXVzdCBiZSBub24temVyby4KKyAqLworZGVsZXRlQWxsVXNlcnMoKSBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwODQ1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MCBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1pbXBsCisKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgR2F0ZWtlZXBlci5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjCisKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgICAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5jcHAgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZTA2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuY3BwCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8ZGxmY24uaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkdhdGVrZWVwZXIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnYXRla2VlcGVyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0dhdGVrZWVwZXI6OkdhdGVrZWVwZXIoKQoreworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKEdBVEVLRUVQRVJfSEFSRFdBUkVfTU9EVUxFX0lELCBOVUxMLCAmbW9kdWxlKTsKKyAgICBkZXZpY2UgPSBOVUxMOworCisgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgcmV0ID0gZ2F0ZWtlZXBlcl9vcGVuKG1vZHVsZSwgJmRldmljZSk7CisgICAgfQorICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYocmV0IDwgMCwgIlVuYWJsZSB0byBvcGVuIEdhdGVLZWVwZXIgSEFMIik7CisgICAgfQorfQorCitHYXRla2VlcGVyOjp+R2F0ZWtlZXBlcigpCit7CisgICAgaWYgKGRldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBnYXRla2VlcGVyX2Nsb3NlKGRldmljZSk7CisgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIGNsb3NlIEdhdGVLZWVwZXIgSEFMIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZGxjbG9zZShtb2R1bGUtPmRzbyk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlciBmb2xsb3cuCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6ZW5yb2xsKHVpbnQzMl90IHVpZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRlc2lyZWRQYXNzd29yZCwKKyAgICAgICAgZW5yb2xsX2NiIGNiKQoreworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgdWludDhfdCAqZW5yb2xsZWRfcGFzc3dvcmRfaGFuZGxlID0gbnVsbHB0cjsKKyAgICB1aW50MzJfdCBlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoID0gMDsKKworICAgIGludCByZXQgPSBkZXZpY2UtPmVucm9sbChkZXZpY2UsIHVpZCwKKyAgICAgICAgICAgIGN1cnJlbnRQYXNzd29yZEhhbmRsZS5kYXRhKCksIGN1cnJlbnRQYXNzd29yZEhhbmRsZS5zaXplKCksCisgICAgICAgICAgICBjdXJyZW50UGFzc3dvcmQuZGF0YSgpLCBjdXJyZW50UGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgZGVzaXJlZFBhc3N3b3JkLmRhdGEoKSwgZGVzaXJlZFBhc3N3b3JkLnNpemUoKSwKKyAgICAgICAgICAgICZlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGUsICZlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICByc3AuZGF0YS5zZXRUb0V4dGVybmFsKGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0s7CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgIHJzcC50aW1lb3V0ID0gcmV0OworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUOworICAgIH0gZWxzZSB7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRTsKKyAgICB9CisgICAgY2IocnNwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6dmVyaWZ5KHVpbnQzMl90IHVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY2hhbGxlbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHByb3ZpZGVkUGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeV9jYiBjYikKK3sKKyAgICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICAgIHVpbnQ4X3QgKmF1dGhfdG9rZW4gPSBudWxscHRyOworICAgIHVpbnQzMl90IGF1dGhfdG9rZW5fbGVuZ3RoID0gMDsKKyAgICBib29sIHJlcXVlc3RfcmVlbnJvbGwgPSBmYWxzZTsKKworICAgIGludCByZXQgPSBkZXZpY2UtPnZlcmlmeShkZXZpY2UsIHVpZCwgY2hhbGxlbmdlLAorICAgICAgICAgICAgZW5yb2xsZWRQYXNzd29yZEhhbmRsZS5kYXRhKCksIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUuc2l6ZSgpLAorICAgICAgICAgICAgcHJvdmlkZWRQYXNzd29yZC5kYXRhKCksIHByb3ZpZGVkUGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgJmF1dGhfdG9rZW4sICZhdXRoX3Rva2VuX2xlbmd0aCwKKyAgICAgICAgICAgICZyZXF1ZXN0X3JlZW5yb2xsKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICByc3AuZGF0YS5zZXRUb0V4dGVybmFsKGF1dGhfdG9rZW4sIGF1dGhfdG9rZW5fbGVuZ3RoLCB0cnVlKTsKKyAgICAgICAgaWYgKHJlcXVlc3RfcmVlbnJvbGwpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19SRUVOUk9MTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmV0ID4gMCkgeworICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVDsKKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdhdGVrZWVwZXI6OmRlbGV0ZVVzZXIodWludDMyX3QgdWlkLCBkZWxldGVVc2VyX2NiIGNiKSAgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisKKyAgICBpZiAoZGV2aWNlLT5kZWxldGVfdXNlciAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBkZXZpY2UtPmRlbGV0ZV91c2VyKGRldmljZSwgdWlkKTsKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdhdGVrZWVwZXI6OmRlbGV0ZUFsbFVzZXJzKGRlbGV0ZUFsbFVzZXJzX2NiIGNiKSAgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgaWYgKGRldmljZS0+ZGVsZXRlX2FsbF91c2VycyAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBkZXZpY2UtPmRlbGV0ZV9hbGxfdXNlcnMoZGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSUdhdGVrZWVwZXIqIEhJRExfRkVUQ0hfSUdhdGVrZWVwZXIoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHJldHVybiBuZXcgR2F0ZWtlZXBlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnYXRla2VlcGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuaCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYzAxZjYKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HQVRFS0VFUEVSX1YxXzBfR0FURUtFRVBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR0FURUtFRVBFUl9WMV8wX0dBVEVLRUVQRVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9nYXRla2VlcGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ2F0ZWtlZXBlciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpHYXRla2VlcGVyUmVzcG9uc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgR2F0ZWtlZXBlciA6IHB1YmxpYyBJR2F0ZWtlZXBlciB7CitwdWJsaWM6CisgICAgR2F0ZWtlZXBlcigpOworICAgIH5HYXRla2VlcGVyKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6SUdhdGVrZWVwZXIgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBlbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjdXJyZW50UGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGVzaXJlZFBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgZW5yb2xsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHZlcmlmeSh1aW50MzJfdCB1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwcm92aWRlZFBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZVVzZXIodWludDMyX3QgdWlkLCBkZWxldGVVc2VyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZUFsbFVzZXJzKGRlbGV0ZUFsbFVzZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIGdhdGVrZWVwZXJfZGV2aWNlX3QgKmRldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqbW9kdWxlOworfTsKKworZXh0ZXJuICJDIiBJR2F0ZWtlZXBlciogSElETF9GRVRDSF9JR2F0ZWtlZXBlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGdhdGVrZWVwZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dBVEVLRUVQRVJfVjFfMF9HQVRFS0VFUEVSX0gKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNmNWU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBnYXRla2VlcGVyLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNiZGFmYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJR2F0ZWtlZXBlcj4oKTsKK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmhhbCBiL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjQzNjc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOworCisvKioKKyAqIEdhdGVrZWVwZXIgcmVzcG9uc2UgY29kZXM7IHN1Y2Nlc3MgPj0gMDsgZXJyb3IgPCAwCisgKi8KK2VudW0gR2F0ZWtlZXBlclN0YXR1c0NvZGUgOiBpbnQzMl90IHsKKyAgU1RBVFVTX1JFRU5ST0xMICAgICAgID0gIDEsICAvLyBzdWNjZXNzLCBidXQgdXBwZXIgbGF5ZXJzIHNob3VsZCByZS1lbnJvbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmVyaWZpZWQgcGFzc3dvcmQgZHVlIHRvIGEgdmVyc2lvbiBjaGFuZ2UKKyAgU1RBVFVTX09LICAgICAgICAgICAgID0gIDAsICAvLyBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bAorICBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgPSAtMSwgIC8vIG9wZXJhdGlvbiBmYWlsZWQKKyAgRVJST1JfUkVUUllfVElNRU9VVCAgID0gLTIsICAvLyBvcGVyYXRpb24gc2hvdWxkIGJlIHJldHJpZWQgYWZ0ZXIgdGltZW91dAorICBFUlJPUl9OT1RfSU1QTEVNRU5URUQgPSAtMywgIC8vIG9wZXJhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQKK307CisKKy8qKgorICogR2F0ZWtlZXBlciByZXNwb25zZSB0byBhbnkvYWxsIHJlcXVlc3RzIGhhcyB0aGlzIHN0cnVjdHVyZSBhcyBtYW5kYXRvcnkgcGFydAorICovCitzdHJ1Y3QgR2F0ZWtlZXBlclJlc3BvbnNlIHsKKyAgICAvKiogcmVxdWVzdCBjb21wbGV0aW9uIHN0YXR1cyAqLworICAgIEdhdGVrZWVwZXJTdGF0dXNDb2RlIGNvZGU7CisgICAgLyoqCisgICAgICogcmV0cnkgdGltZW91dCBpbiBtcywgaWYgY29kZSA9PSBFUlJPUl9SRVRSWV9USU1FT1VUCisgICAgICogb3RoZXJ3aXNlIHVudXNlZCAoMCkKKyAgICAgKi8KKyAgICB1aW50MzJfdCB0aW1lb3V0OworICAgIC8qKiBvcHRpb25hbCBjcnlwdG8gYmxvYi4gT3BhcXVlIHRvIEFuZHJvaWQgc3lzdGVtLiAqLworICAgIHZlYzx1aW50OF90PiBkYXRhOworfTsKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwY2I2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YTQ0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJnYXRla2VlcGVyX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9od19hdXRoX3Rva2VuLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6R2F0ZWtlZXBlclJlc3BvbnNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6R2F0ZWtlZXBlclN0YXR1c0NvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEdhdGVrZWVwZXJSZXF1ZXN0IHsKKyAgdWludDMyX3QgdWlkOworICB1aW50NjRfdCBjaGFsbGVuZ2U7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IGN1clB3ZEhhbmRsZTsKKyAgaGlkbF92ZWM8dWludDhfdD4gY3VyUHdkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQd2Q7CisgIEdhdGVrZWVwZXJSZXF1ZXN0KCkgOiB1aWQoMCksIGNoYWxsZW5nZSgwKSB7fQorfTsKKworLy8gQVNTRVJUXyogbWFjcm9zIGdlbmVyYXRlIHJldHVybiAidm9pZCIgaW50ZXJuYWxseQorLy8gd2UgaGF2ZSB0byB1c2UgRVhQRUNUXyogaWYgd2UgcmV0dXJuIGFueXRoaW5nIGJ1dCAidm9pZCIKK3N0YXRpYyBjb25zdCBod19hdXRoX3Rva2VuX3QgKnRvQXV0aFRva2VuKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqYXV0aF90b2tlbiA9CisgICAgICByZWludGVycHJldF9jYXN0PGh3X2F1dGhfdG9rZW5fdCAqPihyc3AuZGF0YS5kYXRhKCkpOworICBjb25zdCBzaXplX3QgYXV0aF90b2tlbl9zaXplID0gcnNwLmRhdGEuc2l6ZSgpOworCisgIEVYUEVDVF9ORShudWxscHRyLCBhdXRoX3Rva2VuKTsKKyAgRVhQRUNUX0VRKHNpemVvZihod19hdXRoX3Rva2VuX3QpLCBhdXRoX3Rva2VuX3NpemUpOworCisgIGlmIChhdXRoX3Rva2VuICE9IG51bGxwdHIgJiYgYXV0aF90b2tlbl9zaXplID49IHNpemVvZigqYXV0aF90b2tlbikpIHsKKyAgICAvLyB0aGVzZSBhcmUgaW4gbmV0d29yayBvcmRlcjogdHJhbnNsYXRlIHRvIGhvc3QKKyAgICB1aW50MzJfdCBhdXRoX3R5cGUgPSBudG9obChhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX3R5cGUpOworICAgIHVpbnQ2NF90IGF1dGhfdHN0YW1wID0gbnRvaHEoYXV0aF90b2tlbi0+dGltZXN0YW1wKTsKKworICAgIEVYUEVDVF9FUShIV19BVVRIX1BBU1NXT1JELCBhdXRoX3R5cGUpOworICAgIEVYUEVDVF9ORShVSU5UNjRfQyh+MCksIGF1dGhfdHN0YW1wKTsKKyAgICBFWFBFQ1RfRVEoSFdfQVVUSF9UT0tFTl9WRVJTSU9OLCBhdXRoX3Rva2VuLT52ZXJzaW9uKTsKKyAgICAvLyAgICAgICAgRVhQRUNUX05FKFVJTlQ2NF9DKDApLCBhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX2lkKTsKKyAgICBBTE9HSSgiQXV0aGVudGljYXRvciBJRDogJTAxNiIgUFJJWDY0LCBhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX2lkKTsKKyAgICBFWFBFQ1RfTkUoVUlOVDMyX0MoMCksIGF1dGhfdG9rZW4tPnVzZXJfaWQpOworICB9CisgIHJldHVybiBhdXRoX3Rva2VuOworfQorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBHYXRla2VlcGVyIEhJREwgSEFMLgorY2xhc3MgR2F0ZWtlZXBlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgc2V0VWlkKHVpbnQzMl90IHVpZCkgeyB1aWRfID0gdWlkOyB9CisKKyAgdm9pZCBkb0Vucm9sbChHYXRla2VlcGVyUmVxdWVzdCAmcmVxLCBHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT5lbnJvbGwoCisgICAgICAgICAgdWlkXywgcmVxLmN1clB3ZEhhbmRsZSwgcmVxLmN1clB3ZCwgcmVxLm5ld1B3ZCwKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYlJzcCkgeyByc3AgPSBjYlJzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9WZXJpZnkoR2F0ZWtlZXBlclJlcXVlc3QgJnJlcSwgR2F0ZWtlZXBlclJlc3BvbnNlICZyc3ApIHsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgYXV0byByZXQgPSBnYXRla2VlcGVyXy0+dmVyaWZ5KAorICAgICAgICAgIHVpZF8sIHJlcS5jaGFsbGVuZ2UsIHJlcS5jdXJQd2RIYW5kbGUsIHJlcS5uZXdQd2QsCisgICAgICAgICAgWyZyc3BdKGNvbnN0IEdhdGVrZWVwZXJSZXNwb25zZSAmY2JfcnNwKSB7IHJzcCA9IGNiX3JzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9EZWxldGVVc2VyKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIGF1dG8gcmV0ID0gZ2F0ZWtlZXBlcl8tPmRlbGV0ZVVzZXIoCisgICAgICAgICAgdWlkXywgWyZyc3BdKGNvbnN0IEdhdGVrZWVwZXJSZXNwb25zZSAmY2JfcnNwKSB7IHJzcCA9IGNiX3JzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9EZWxldGVBbGxVc2VycyhHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT5kZWxldGVBbGxVc2VycygKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYl9yc3ApIHsgcnNwID0gY2JfcnNwOyB9KTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgaWYgKHJzcC5jb2RlICE9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUKSBicmVhazsKKyAgICAgIEFMT0dJKCIlczogZ290IHJldHJ5IGNvZGU7IHJldHJ5aW5nIGluIDEgc2VjIiwgX19mdW5jX18pOworICAgICAgc2xlZXAoMSk7CisgICAgfQorICB9CisKKyAgdm9pZCBnZW5lcmF0ZVBhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwgdWludDhfdCBzZWVkKSB7CisgICAgcGFzc3dvcmQucmVzaXplKDE2KTsKKyAgICBtZW1zZXQocGFzc3dvcmQuZGF0YSgpLCBzZWVkLCBwYXNzd29yZC5zaXplKCkpOworICB9CisKKyAgdm9pZCBjaGVja0Vucm9sbChHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCwgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgaWYgKGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICAgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LLCByc3AuY29kZSk7CisgICAgICBFWFBFQ1RfTkUobnVsbHB0ciwgcnNwLmRhdGEuZGF0YSgpKTsKKyAgICAgIEVYUEVDVF9HVChyc3AuZGF0YS5zaXplKCksIFVJTlQzMl9DKDApKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgcnNwLmRhdGEuc2l6ZSgpKTsKKyAgICB9CisgIH0KKworICB2b2lkIGNoZWNrVmVyaWZ5KEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwLCB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgaWYgKGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICAgIEVYUEVDVF9HRShyc3AuY29kZSwgR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSyk7CisgICAgICBFWFBFQ1RfTEUocnNwLmNvZGUsIEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfUkVFTlJPTEwpOworCisgICAgICBjb25zdCBod19hdXRoX3Rva2VuX3QgKmF1dGhfdG9rZW4gPSB0b0F1dGhUb2tlbihyc3ApOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGF1dGhfdG9rZW4pOworICAgICAgRVhQRUNUX0VRKGNoYWxsZW5nZSwgYXV0aF90b2tlbi0+Y2hhbGxlbmdlKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgcnNwLmRhdGEuc2l6ZSgpKTsKKyAgICB9CisgIH0KKworICB2b2lkIGVucm9sbE5ld1Bhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwgR2F0ZWtlZXBlclJlc3BvbnNlICZyc3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgR2F0ZWtlZXBlclJlcXVlc3QgcmVxOworICAgIHJlcS5uZXdQd2Quc2V0VG9FeHRlcm5hbChwYXNzd29yZC5kYXRhKCksIHBhc3N3b3JkLnNpemUoKSk7CisgICAgZG9FbnJvbGwocmVxLCByc3ApOworICAgIGNoZWNrRW5yb2xsKHJzcCwgZXhwZWN0U3VjY2Vzcyk7CisgIH0KKworICB2b2lkIHZlcmlmeVBhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiAmcGFzc3dvcmRIYW5kbGUsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICBHYXRla2VlcGVyUmVzcG9uc2UgJnZlcmlmeVJzcCwgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgR2F0ZWtlZXBlclJlcXVlc3QgdmVyaWZ5UmVxOworCisgICAgLy8gYnVpbGQgdmVyaWZ5IHJlcXVlc3QgZm9yIHRoZSBzYW1lIHBhc3N3b3JkICh3ZSB3YW50IGl0IHRvIHN1Y2NlZWQpCisgICAgdmVyaWZ5UmVxLm5ld1B3ZCA9IHBhc3N3b3JkOworICAgIC8vIHVzZSBlbnJvbGxlZCBwYXNzd29yZCBoYW5kbGUgd2UndmUgZ290CisgICAgdmVyaWZ5UmVxLmN1clB3ZEhhbmRsZSA9IHBhc3N3b3JkSGFuZGxlOworICAgIHZlcmlmeVJlcS5jaGFsbGVuZ2UgPSBjaGFsbGVuZ2U7CisgICAgZG9WZXJpZnkodmVyaWZ5UmVxLCB2ZXJpZnlSc3ApOworICAgIGNoZWNrVmVyaWZ5KHZlcmlmeVJzcCwgY2hhbGxlbmdlLCBleHBlY3RTdWNjZXNzKTsKKyAgfQorCisgcHJvdGVjdGVkOgorICBzcDxJR2F0ZWtlZXBlcj4gZ2F0ZWtlZXBlcl87CisgIHVpbnQzMl90IHVpZF87CisKKyBwdWJsaWM6CisgIEdhdGVrZWVwZXJIaWRsVGVzdCgpIDogdWlkXygwKSB7fQorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgICBnYXRla2VlcGVyXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElHYXRla2VlcGVyPigpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBnYXRla2VlcGVyXy5nZXQoKSk7CisgICAgZG9EZWxldGVBbGxVc2Vycyhyc3ApOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgZG9EZWxldGVBbGxVc2Vycyhyc3ApOworICB9Cit9OworCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gZW5yb2xsIG5ldyBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBFbnJvbGxTdWNjZXNzKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgcnNwLCB0cnVlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIG5vdCBlbnJvbGwgZW1wdHkgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRW5yb2xsTm9QYXNzd29yZCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIChleHBlY3RlZCBmYWlsdXJlKSIpOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgcnNwLCBmYWxzZSk7CisgIEFMT0dJKCJUZXN0aW5nIEVucm9sbCBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBzdWNjZXNzZnVsbHkgdmVyaWZ5IHByZXZpb3VzbHkgZW5yb2xsZWQgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVmVyaWZ5U3VjY2VzcykgeworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwrVmVyaWZ5IChleHBlY3RlZCBzdWNjZXNzKSIpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMSwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsK1ZlcmlmeSBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBzZWN1cmVseSB1cGRhdGUgcGFzc3dvcmQgKGtlZXAgdGhlIHNhbWUKKyAqIHNlY3VyZSB1c2VyX2lkKSBpZiB3ZSBwcm92ZSB3ZSBrbm93IG9sZCBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBUcnVzdGVkUmVlbnJvbGwpIHsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlcXVlc3QgcmVlbnJvbGxSZXE7CisgIEdhdGVrZWVwZXJSZXNwb25zZSByZWVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsVmVyaWZ5UnNwOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgaGlkbF92ZWM8dWludDhfdD4gbmV3UGFzc3dvcmQ7CisKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisKKyAgQUxPR0koIlRlc3RpbmcgVHJ1c3RlZCBSZWVucm9sbCAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlByaW1hcnkgRW5yb2xsK1ZlcmlmeSBkb25lIik7CisKKyAgZ2VuZXJhdGVQYXNzd29yZChuZXdQYXNzd29yZCwgMSk7CisgIHJlZW5yb2xsUmVxLm5ld1B3ZC5zZXRUb0V4dGVybmFsKG5ld1Bhc3N3b3JkLmRhdGEoKSwgbmV3UGFzc3dvcmQuc2l6ZSgpKTsKKyAgcmVlbnJvbGxSZXEuY3VyUHdkLnNldFRvRXh0ZXJuYWwocGFzc3dvcmQuZGF0YSgpLCBwYXNzd29yZC5zaXplKCkpOworICByZWVucm9sbFJlcS5jdXJQd2RIYW5kbGUuc2V0VG9FeHRlcm5hbChlbnJvbGxSc3AuZGF0YS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVucm9sbFJzcC5kYXRhLnNpemUoKSk7CisKKyAgZG9FbnJvbGwocmVlbnJvbGxSZXEsIHJlZW5yb2xsUnNwKTsKKyAgY2hlY2tFbnJvbGwocmVlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChuZXdQYXNzd29yZCwgcmVlbnJvbGxSc3AuZGF0YSwgMCwgcmVlbnJvbGxWZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiVHJ1c3RlZCBSZUVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqZmlyc3QgPSB0b0F1dGhUb2tlbih2ZXJpZnlSc3ApOworICBjb25zdCBod19hdXRoX3Rva2VuX3QgKnNlY29uZCA9IHRvQXV0aFRva2VuKHJlZW5yb2xsVmVyaWZ5UnNwKTsKKyAgaWYgKGZpcnN0ICE9IG51bGxwdHIgJiYgc2Vjb25kICE9IG51bGxwdHIpIHsKKyAgICBFWFBFQ1RfRVEoZmlyc3QtPnVzZXJfaWQsIHNlY29uZC0+dXNlcl9pZCk7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgVHJ1c3RlZCBSZWVucm9sbCBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiB1cGRhdGUgcGFzc3dvcmQgKGFuZCBnZXQgbmV3CisgKiBzZWN1cmUgdXNlcl9pZCkgaWYgd2UgZG9uJ3Qga25vdyBvbGQgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVW50cnVzdGVkUmVlbnJvbGwpIHsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgcmVlbnJvbGxWZXJpZnlSc3A7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQYXNzd29yZDsKKworICBBTE9HSSgiVGVzdGluZyBVbnRydXN0ZWQgUmVlbnJvbGwgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAwLCB2ZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiUHJpbWFyeSBFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKworICBnZW5lcmF0ZVBhc3N3b3JkKG5ld1Bhc3N3b3JkLCAxKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQobmV3UGFzc3dvcmQsIHJlZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQobmV3UGFzc3dvcmQsIHJlZW5yb2xsUnNwLmRhdGEsIDAsIHJlZW5yb2xsVmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlVudHJ1c3RlZCBSZUVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqZmlyc3QgPSB0b0F1dGhUb2tlbih2ZXJpZnlSc3ApOworICBjb25zdCBod19hdXRoX3Rva2VuX3QgKnNlY29uZCA9IHRvQXV0aFRva2VuKHJlZW5yb2xsVmVyaWZ5UnNwKTsKKyAgaWYgKGZpcnN0ICE9IG51bGxwdHIgJiYgc2Vjb25kICE9IG51bGxwdHIpIHsKKyAgICBFWFBFQ1RfTkUoZmlyc3QtPnVzZXJfaWQsIHNlY29uZC0+dXNlcl9pZCk7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgVW50cnVzdGVkIFJlZW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgZG9udCBnZXQgc3VjY2Vzc2Z1bCB2ZXJpZnkgd2l0aCBpbnZhbGlkIGRhdGEKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVmVyaWZ5Tm9EYXRhKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZEhhbmRsZTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKworICBBTE9HSSgiVGVzdGluZyBWZXJpZnkgKGV4cGVjdGVkIGZhaWx1cmUpIik7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBwYXNzd29yZEhhbmRsZSwgMCwgdmVyaWZ5UnNwLCBmYWxzZSk7CisgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFLCB2ZXJpZnlSc3AuY29kZSk7CisgIEFMT0dJKCJUZXN0aW5nIFZlcmlmeSBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgdmVyaWZ5IHBhc3N3b3JkIGFmdGVyIHdlIGVucm9sbGVkIGl0IGFuZCB0aGVuIGRlbGV0ZWQgdXNlcgorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBEZWxldGVVc2VyVGVzdCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgc2V0VWlkKDEwMDAxKTsKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisgIGVucm9sbE5ld1Bhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLmRhdGEsIDAsIHZlcmlmeVJzcCwgdHJ1ZSk7CisgIEFMT0dJKCJFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKyAgZG9EZWxldGVVc2VyKGRlbFJzcCk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgQUxPR0koIkRlbGV0ZVVzZXIgZG9uZSIpOworICBpZiAoZGVsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSykgeworICAgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCBmYWxzZSk7CisgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHZlcmlmeVJzcC5jb2RlKTsKKyAgICBBTE9HSSgiVmVyaWZ5IGFmdGVyIERlbGV0ZSBkb25lIChtdXN0IGZhaWwpIik7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciBkb25lOiByc3A9JSIgUFJJaTMyLCBkZWxSc3AuY29kZSk7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgZGVsZXRlIGEgdXNlciB0aGF0IGRvZXMgbm90IGV4aXN0CisgKi8KK1RFU1RfRihHYXRla2VlcGVySGlkbFRlc3QsIERlbGV0ZUludmFsaWRVc2VyVGVzdCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDE7CisgIEdhdGVrZWVwZXJSZXNwb25zZSBkZWxSc3AyOworICBBTE9HSSgiVGVzdGluZyBkZWxldGVVc2VyIChleHBlY3RlZCBmYWlsdXJlKSIpOworICBzZXRVaWQoMTAwMDIpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIkVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIC8vIERlbGV0ZSB0aGUgdXNlcgorICBkb0RlbGV0ZVVzZXIoZGVsUnNwMSk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwMS5kYXRhLnNpemUoKSk7CisgIEVYUEVDVF9UUlVFKGRlbFJzcDEuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfTk9UX0lNUExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGRlbFJzcDEuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKworICAvLyBEZWxldGUgdGhlIHVzZXIgYWdhaW4KKyAgZG9EZWxldGVVc2VyKGRlbFJzcDIpOworICBFWFBFQ1RfRVEoVUlOVDMyX0MoMCksIGRlbFJzcDIuZGF0YS5zaXplKCkpOworICBFWFBFQ1RfVFJVRShkZWxSc3AyLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxSc3AyLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRSk7CisgIEFMT0dJKCJEZWxldGVVc2VyIGRvbmUiKTsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciBkb25lOiByc3A9JSIgUFJJaTMyLCBkZWxSc3AyLmNvZGUpOworfQorCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gbm90IHZlcmlmeSBwYXNzd29yZHMgYWZ0ZXIgd2UgZW5yb2xsZWQgdGhlbSBhbmQgdGhlbiBkZWxldGVkCisgKiBhbGwgdXNlcnMKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRGVsZXRlQWxsVXNlcnNUZXN0KSB7CisgIHN0cnVjdCBVc2VyRGF0YSB7CisgICAgdWludDMyX3QgdXNlcklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICAgIEdhdGVrZWVwZXJSZXNwb25zZSBlbnJvbGxSc3A7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgICBVc2VyRGF0YShpbnQgaWQpIHsgdXNlcklkID0gaWQ7IH0KKyAgfSB1c2Vyc1szXXsxMDAwMSwgMTAwMDIsIDEwMDAzfTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbEFsbFJzcDsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlQWxsVXNlcnMgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisKKyAgLy8gZW5yb2xsIG11bHRpcGxlIHVzZXJzCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgIHNldFVpZCh1c2Vyc1tpXS51c2VySWQpOworICAgIGdlbmVyYXRlUGFzc3dvcmQodXNlcnNbaV0ucGFzc3dvcmQsIChpICUgMjU1KSArIDEpOworICAgIGVucm9sbE5ld1Bhc3N3b3JkKHVzZXJzW2ldLnBhc3N3b3JkLCB1c2Vyc1tpXS5lbnJvbGxSc3AsIHRydWUpOworICB9CisgIEFMT0dJKCJNdWx0aXBsZSB1c2VycyBlbnJvbGxlZCIpOworCisgIC8vIHZlcmlmeSBtdWx0aXBsZSB1c2VycworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZih1c2VycykgLyBzaXplb2YodXNlcnNbMF0pOyArK2kpIHsKKyAgICBzZXRVaWQodXNlcnNbaV0udXNlcklkKTsKKyAgICB2ZXJpZnlQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgdXNlcnNbaV0uZW5yb2xsUnNwLmRhdGEsIDAsCisgICAgICAgICAgICAgICAgICAgdXNlcnNbaV0udmVyaWZ5UnNwLCB0cnVlKTsKKyAgfQorICBBTE9HSSgiTXVsdGlwbGUgdXNlcnMgdmVyaWZpZWQiKTsKKworICBkb0RlbGV0ZUFsbFVzZXJzKGRlbEFsbFJzcCk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsQWxsUnNwLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsQWxsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxBbGxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgQUxPR0koIkFsbCB1c2VycyBkZWxldGVkIik7CisKKyAgaWYgKGRlbEFsbFJzcC5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0spIHsKKyAgICAvLyB2ZXJpZnkgbXVsdGlwbGUgdXNlcnMgYWZ0ZXIgdGhleSBhcmUgZGVsZXRlZDsgYWxsIG11c3QgZmFpbAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgICAgc2V0VWlkKHVzZXJzW2ldLnVzZXJJZCk7CisgICAgICB2ZXJpZnlQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgdXNlcnNbaV0uZW5yb2xsUnNwLmRhdGEsIDAsCisgICAgICAgICAgICAgICAgICAgICB1c2Vyc1tpXS52ZXJpZnlSc3AsIGZhbHNlKTsKKyAgICAgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFLAorICAgICAgICAgICAgICAgIHVzZXJzW2ldLnZlcmlmeVJzcC5jb2RlKTsKKyAgICB9CisgICAgQUxPR0koIk11bHRpcGxlIHVzZXJzIHZlcmlmaWVkIGFmdGVyIGRlbGV0ZSAoYWxsIG11c3QgZmFpbCkiKTsKKyAgfQorCisgIEFMT0dJKCJUZXN0aW5nIGRlbGV0ZUFsbFVzZXJzIGRvbmU6IHJzcD0lIiBQUklpMzIsIGRlbEFsbFJzcC5jb2RlKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9nYXRla2VlcGVyL0FuZHJvaWQuYnAgYi9nYXRla2VlcGVyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9BbmRyb2lkLmJwIGIvZ25zcy8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjk4OGRlCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDE5NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklBR25zcy5oYWwiLAorICAgICAgICAiSUFHbnNzQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklBR25zc1JpbC5oYWwiLAorICAgICAgICAiSUFHbnNzUmlsQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzLmhhbCIsCisgICAgICAgICJJR25zc0JhdGNoaW5nLmhhbCIsCisgICAgICAgICJJR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzQ29uZmlndXJhdGlvbi5oYWwiLAorICAgICAgICAiSUduc3NEZWJ1Zy5oYWwiLAorICAgICAgICAiSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc0dlb2ZlbmNpbmcuaGFsIiwKKyAgICAgICAgIklHbnNzTWVhc3VyZW1lbnQuaGFsIiwKKyAgICAgICAgIklHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwiLAorICAgICAgICAiSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc05pLmhhbCIsCisgICAgICAgICJJR25zc05pQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzWHRyYS5oYWwiLAorICAgICAgICAiSUduc3NYdHJhQ2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQUduc3NBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQUduc3NDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc1JpbEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc1JpbENhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0JhdGNoaW5nQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NCYXRjaGluZ0NhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzQ29uZmlndXJhdGlvbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzRGVidWdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0dlb2ZlbmNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0dlb2ZlbmNpbmdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc01lYXN1cmVtZW50QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NNZWFzdXJlbWVudENhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NOYXZpZ2F0aW9uTWVzc2FnZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc05pQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc1h0cmFBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc1h0cmFDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3QUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3QUduc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzUmlsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3QUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3QUduc3NSaWxDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQmF0Y2hpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0JhdGNoaW5nQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NDb25maWd1cmF0aW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NEZWJ1Zy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzR2VvZmVuY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0dlb2ZlbmNpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc01lYXN1cmVtZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NNZWFzdXJlbWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTmkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05pQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NYdHJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc1h0cmFDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvQW5kcm9pZC5tayBiL2duc3MvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxYjc2NQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMTAzIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzQ29uc3RlbGxhdGlvblR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzQ29uc3RlbGxhdGlvblR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcy5HbnNzQ29uc3RlbGxhdGlvblR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NMb2NhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTG9jYXRpb25GbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbkZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTWF4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc01heC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NNYXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3MuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3NSaWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWxDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZ0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDb25maWd1cmF0aW9uLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NDb25maWd1cmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0RlYnVnLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NEZWJ1Zy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzRGVidWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2luZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmkuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05pQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzWHRyYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzQ29uc3RlbGxhdGlvblR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzQ29uc3RlbGxhdGlvblR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcy5HbnNzQ29uc3RlbGxhdGlvblR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NMb2NhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTG9jYXRpb25GbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbkZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTWF4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc01heC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NNYXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3MuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3NSaWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWxDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZ0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDb25maWd1cmF0aW9uLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NDb25maWd1cmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0RlYnVnLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NEZWJ1Zy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzRGVidWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2luZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmkuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05pQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzWHRyYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nbnNzLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zcy5oYWwgYi9nbnNzLzEuMC9JQUduc3MuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMGY2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3MuaGFsCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJQUduc3NDYWxsYmFjazsKKworLyoqCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEFHTlNTIHN1cHBvcnQuCisgKi8KK2ludGVyZmFjZSBJQUduc3MgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBUE5fSVBfIikKKyAgICBlbnVtIEFwbklwVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBJTlZBTElEICA9IDAsCisgICAgICAgIElQVjQgICAgID0gMSwKKyAgICAgICAgSVBWNiAgICAgPSAyLAorICAgICAgICBJUFY0VjYgICA9IDMKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIEFHTlNTIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzIHRvIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEhhbmRsZSB0byB0aGUgQUdOU1Mgc3RhdHVzIGNhbGxiYWNrIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQUduc3NDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGF0IHRoZSBBR05TUyBkYXRhIGNvbm5lY3Rpb24gaGFzIGJlZW4gY2xvc2VkLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGRhdGFDb25uQ2xvc2VkKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhhdCBhIGRhdGEgY29ubmVjdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBBR05TUy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBkYXRhQ29ubkZhaWxlZCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGhvc3RuYW1lIGFuZCBwb3J0IGZvciB0aGUgQUdOU1Mgc2VydmVyLgorICAgICAqCisgICAgICogQHBhcmFtIHR5cGUgU3BlY2lmaWVzIGlmIFNVUEwgb3IgQzJLLgorICAgICAqIEBwYXJhbSBob3N0bmFtZSBIb3N0bmFtZSBvZiB0aGUgQUdOU1Mgc2VydmVyLgorICAgICAqIEBwYXJhbSBwb3J0IFBvcnQgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHNldFNlcnZlcihBR25zc1R5cGUgdHlwZSwgc3RyaW5nIGhvc3RuYW1lLCBpbnQzMl90IHBvcnQpCisgICAgICAgIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoYXQgYSBkYXRhIGNvbm5lY3Rpb24gaXMgYXZhaWxhYmxlIGFuZCBzZXRzIHRoZSBuYW1lIG9mIHRoZQorICAgICAqIEFQTiwgYW5kIGl0cyBJUCB0eXBlLCB0byBiZSB1c2VkIGZvciBTVVBMIGNvbm5lY3Rpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIGFwbiBBY2Nlc3MgUG9pbnQgTmFtZShmb2xsb3dzIHJlZ3VsYXIgQVBOIG5hbWluZyBjb252ZW50aW9uKS4KKyAgICAgKiBAcGFyYW0gYXBuSXBUeXBlIFNwZWNpZmllcyBpZiBTVVBMIG9yIEMySy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBkYXRhQ29ubk9wZW4oc3RyaW5nIGFwbiwgQXBuSXBUeXBlIGFwbklwVHlwZSkKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zc0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lBR25zc0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWYxNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBDYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIHRoZSBBR05TUyBpbnRlcmZhY2UuICovCitpbnRlcmZhY2UgSUFHbnNzQ2FsbGJhY2sgeworICAgIC8qKiBBR05TUyB0eXBlICoqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTXyIpCisgICAgZW51bSBBR25zc1R5cGUgOiB1aW50OF90IHsKKyAgICAgICAgVFlQRV9TVVBMICAgICAgICAgPSAxLAorICAgICAgICBUWVBFX0MySyAgICAgICAgICA9IDIKKyAgICB9OworCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfIikKKyAgICBlbnVtIEFHbnNzU3RhdHVzVmFsdWUgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIEdOU1MgcmVxdWVzdHMgZGF0YSBjb25uZWN0aW9uIGZvciBBR05TUy4gKi8KKyAgICAgICAgUkVRVUVTVF9BR05TU19EQVRBX0NPTk4gID0gMSwKKyAgICAgICAgLyoqIEdOU1MgcmVsZWFzZXMgdGhlIEFHTlNTIGRhdGEgY29ubmVjdGlvbi4gKi8KKyAgICAgICAgUkVMRUFTRV9BR05TU19EQVRBX0NPTk4gID0gMiwKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBpbml0aWF0ZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05ORUNURUQgICAgID0gMywKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBjb21wbGV0ZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05OX0RPTkUgICAgID0gNCwKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBmYWlsZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05OX0ZBSUxFRCAgID0gNQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgQUdOU1MgYXVnbWVudGVkIHRvIHN1cHBvcnQgSVB2NC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTXyIpCisgICAgc3RydWN0IEFHbnNzU3RhdHVzSXBWNCB7CisgICAgICAgIEFHbnNzVHlwZSB0eXBlOworICAgICAgICBBR25zc1N0YXR1c1ZhbHVlIHN0YXR1czsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDMyLWJpdCBJUHY0IGFkZHJlc3MuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBpcFY0QWRkcjsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIEFHTlNTIGF1Z21lbnRlZCB0byBzdXBwb3J0IElQdjYuCisgICAgICovCisgICAgc3RydWN0IEFHbnNzU3RhdHVzSXBWNiB7CisgICAgICAgIEFHbnNzVHlwZSB0eXBlOworICAgICAgICBBR25zc1N0YXR1c1ZhbHVlIHN0YXR1czsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEyOC1iaXQgSVB2NiBhZGRyZXNzLgorICAgICAgICAgKi8KKyAgICAgICAgdWludDhfdFsxNl0gaXBWNkFkZHI7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHdpdGggQUdOU1MoSXBWNCkgc3RhdHVzIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIGJlIG9mIHR5cGUgQUduc3NTdGF0dXNJcFY0LgorICAgICAqLworICAgIGFnbnNzU3RhdHVzSXBWNENiKEFHbnNzU3RhdHVzSXBWNCBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgd2l0aCBBR05TUyhJcFY2KSBzdGF0dXMgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgb2YgdHlwZSBBR25zc1N0YXR1c0lwVjYuCisgICAgICovCisgICAgYWduc3NTdGF0dXNJcFY2Q2IoQUduc3NTdGF0dXNJcFY2IHN0YXR1cyk7CisKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JQUduc3NSaWwuaGFsIGIvZ25zcy8xLjAvSUFHbnNzUmlsLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI4OWY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUFHbnNzUmlsLmhhbApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElBR25zc1JpbENhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgQUdOU1MgUklMIHN1cHBvcnQuIEFuIEFzc2lzdGVkIEdOU1MgUmFkaW8gSW50ZXJmYWNlCisgKiBMYXllciBpbnRlcmZhY2UgYWxsb3dzIHRoZSBHTlNTIGNoaXBzZXQgdG8gcmVxdWVzdCByYWRpbyBpbnRlcmZhY2UgbGF5ZXIKKyAqIGluZm9ybWF0aW9uIGZyb20gQW5kcm9pZCBwbGF0Zm9ybS4gRXhhbXBsZXMgb2Ygc3VjaCBpbmZvcm1hdGlvbiBhcmUgcmVmZXJlbmNlCisgKiBsb2NhdGlvbiwgdW5pcXVlIHN1YnNjcmliZXIgSUQsIHBob25lIG51bWJlciBzdHJpbmcgYW5kIG5ldHdvcmsgYXZhaWxhYmlsaXR5IGNoYW5nZXMuCisgKi8KK2ludGVyZmFjZSBJQUduc3NSaWwgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1NFVElEX1RZUEVfIikKKyAgICBlbnVtIFNldElEVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBOT05FICAgID0gMCwKKyAgICAgICAgSU1TSSAgICA9IDEsCisgICAgICAgIE1TSVNETSAgPSAyCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JJTF9ORVRXT1JLX1RZUEVfIikKKyAgICBlbnVtIE5ldHdvcmtUeXBlIDogdWludDhfdCB7CisgICAgICAgIE1PQklMRSAgPSAwLAorICAgICAgICBXSUZJICAgID0gMSwKKyAgICAgICAgTU1TICAgICA9IDIsCisgICAgICAgIFNVUEwgICAgPSAzLAorICAgICAgICBEVU4gICAgID0gNCwKKyAgICAgICAgSElQUkkgICA9IDUsCisgICAgICAgIFdJTUFYICAgPSA2LAorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQUdQU19SRUZfTE9DQVRJT05fVFlQRV8iKQorICAgIGVudW0gQUduc3NSZWZMb2NhdGlvblR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgR1NNX0NFTExJRCAgID0gMSwKKyAgICAgICAgVU1UU19DRUxMSUQgID0gMiwKKyAgICAgICAgTFRFX0NFTExJRCAgID0gNCwKKyAgICB9OworCisgICAgLyoqIENlbGxJRCBmb3IgMkcsIDNHIGFuZCBMVEUsIHVzZWQgaW4gQUdOU1MuICovCisgICAgc3RydWN0IEFHbnNzUmVmTG9jYXRpb25DZWxsSUQgeworICAgICAgICBBR25zc1JlZkxvY2F0aW9uVHlwZSB0eXBlOworCisgICAgICAgIC8qKiBNb2JpbGUgQ291bnRyeSBDb2RlLiAqLworICAgICAgICB1aW50MTZfdCBtY2M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1vYmlsZSBOZXR3b3JrIENvZGUgLiovCisgICAgICAgIHVpbnQxNl90IG1uYzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTG9jYXRpb24gQXJlYSBDb2RlIGluIDJHLCAzRyBhbmQgTFRFLiBJbiAzRyBsYWMgaXMgZGlzY2FyZGVkLiBJbiBMVEUsCisgICAgICAgICAqIGxhYyBpcyBwb3B1bGF0ZWQgd2l0aCB0YWMsIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGJyZWFrIG9sZCBjbGllbnRzIHRoYXQKKyAgICAgICAgICogbWlnaHQgcmVseSBpbiB0aGUgb2xkICh3cm9uZykgYmVoYXZpb3IuCisgICAgICAgICAqLworICAgICAgICB1aW50MTZfdCBsYWM7CisKKyAgICAgICAgLyoqIENlbGwgaWQgaW4gMkcuIFV0cmFuIENlbGwgaWQgaW4gM0cuIENlbGwgR2xvYmFsIElkIEVVVFJBIGluIExURS4gKi8KKyAgICAgICAgdWludDMyX3QgY2lkOworCisgICAgICAgIC8qKiBUcmFja2luZyBBcmVhIENvZGUgaW4gTFRFLiAqLworICAgICAgICB1aW50MTZfdCB0YWM7CisKKyAgICAgICAgLyoqIFBoeXNpY2FsIENlbGwgaWQgaW4gTFRFIChub3QgdXNlZCBpbiAyRyBhbmQgM0cpICovCisgICAgICAgIHVpbnQxNl90IHBjaWQ7CisgICAgfTsKKworICAgIC8qKiBSZXByZXNlbnRzIHJlZiBsb2NhdGlvbnMgKi8KKyAgICBzdHJ1Y3QgQUduc3NSZWZMb2NhdGlvbiB7CisgICAgICAgIEFHbnNzUmVmTG9jYXRpb25UeXBlIHR5cGU7CisKKyAgICAgICAgQUduc3NSZWZMb2NhdGlvbkNlbGxJRCBjZWxsSUQ7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBBR05TUyBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBJbnRlcmZhY2UgZm9yIEFHbnNzUmlsIGNhbGxiYWNrcy4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQUduc3NSaWxDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByZWZlcmVuY2UgbG9jYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWduc3NSZWZsb2NhdGlvbiBBR05TUyByZWZlcmVuY2UgbG9jYXRpb24gQ2VsbElELgorICAgICAqLworICAgIHNldFJlZkxvY2F0aW9uKEFHbnNzUmVmTG9jYXRpb24gYWduc3NSZWZsb2NhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBTRVQgSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBNdXN0IGJlIHBvcHVsYXRlZCB3aXRoIGVpdGhlciBJTVNJIG9yIE1TSVNETiBvciBOT05FLgorICAgICAqIEBwYXJhbSBzZXRpZCBJZiB0eXBlIGlzIElNU0kgdGhlbiBzZXRpZCBpcyBwb3B1bGF0ZWQgd2l0aAorICAgICAqIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdW5pcXVlIFN1YnNjcmliZXIgSUQsIGZvciBleGFtcGxlLCB0aGUgSU1TSSBmb3IKKyAgICAgKiBhIEdNUyBwaG9uZS4gSWYgdHlwZSBpcyBNU0lTRE4sIHRoZW4gc2V0aWQgbXVzdCBjb250YWluCisgICAgICogdGhlIHBob25lIG51bWJlciBzdHJpbmcgZm9yIGxpbmUgMS4gRm9yIGV4YW1wbGUsIHRoZSBNU0lTRE4gZm9yIGEgR1NNIHBob25lLgorICAgICAqIElmIHRoZSB0eXBlIGlzIE5PTkUsIHRoZW4gdGhlIHN0cmluZyBtdXN0IGJlIGVtcHR5LgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgYWxsIHBhcmFtZXRlcnMgd2VyZSB2YWxpZCBhbmQgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0U2V0SWQoU2V0SURUeXBlIHR5cGUsIHN0cmluZyBzZXRpZCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZ5IEdOU1Mgb2YgbmV0d29yayBzdGF0dXMgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgSW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBjb25uZWN0aXZpdHkgZXhpc3RzIGFuZAorICAgICAqIGl0IGlzIHBvc3NpYmxlIHRvIGVzdGFibGlzaCBjb25uZWN0aW9ucyBhbmQgcGFzcyBkYXRhLgorICAgICAqIEBwYXJhbSB0eXBlIEluZGljYXRlcyB0aGUga2luZCBvZiBuZXR3b3JrLCBmb3IgZWcuIG1vYmlsZSwgd2lmaSBldGMuCisgICAgICogQHBhcmFtIHJvYW1pbmcgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgcm9hbWluZyBvbgorICAgICAqIHRoaXMgbmV0d29yay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlzIGFsbCBwYXJhbWV0ZXJzIHdlcmUgdmFsaWQgYW5kIG9wZXJhdGlvbiB3YXMKKyAgICAgKiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHVwZGF0ZU5ldHdvcmtTdGF0ZShib29sIGNvbm5lY3RlZCwgTmV0d29ya1R5cGUgdHlwZSwgYm9vbCByb2FtaW5nKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgR05TUyBvZiBuZXR3b3JrIHN0YXR1cyBjaGFuZ2VzIGFuZCBjdXJyZW50IEFQTi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhdmFpbGFibGUgSW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBjb25uZWN0aXZpdHkgaXMgYXZhaWxhYmxlLgorICAgICAqIEBwYXJhbSBhcG4gU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRlbGVwaG9ueSBwcmVmZXJyZWQgQWNjZXNzIFBvaW50IE5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBhbGwgcGFyYW1ldGVycyB3ZXJlIHZhbGlkIGFuZCB0aGUgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgdXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgc3RyaW5nIGFwbikgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTFhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3NSaWxDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBDYWxsYmFjayBmb3IgSUFHbnNzUmlsIGludGVyZmFjZS4gVXNlZCB0byByZXF1ZXN0IFNFVCBJRCBhbmQKKyAqIFJlZmVyZW5jZSBMb2NhdGlvbi4KKyAqLworaW50ZXJmYWNlIElBR25zc1JpbENhbGxiYWNrIHsKKyAgICAvKiogS2luZHMgb2YgU0VUIElEIHRoYXQgY2FuIGJlIHJlcXVlc3RlZCAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JJTF9SRVFVRVNUX1NFVElEXyIpCisgICAgZW51bSBJRCA6IHVpbnQzMl90IHsKKyAgICAgICAgSU1TSSAgICA9IDEgPDwgMEwsCisgICAgICAgIE1TSVNETiAgPSAxIDw8IDFMLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgSGFsIHVzZXMgdGhpcyBBUEkgdG8gcmVxdWVzdCBhIFNFVCBJRC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXRJZGZsYWcgU3BlY2lmaWVzIHRoZSBraW5kIG9mIFNFVCBJRCB0aGF0IGlzIHJlcXVpcmVkIGJ5IHRoZSBIQUwuCisgICAgICovCisgICAgcmVxdWVzdFNldElkQ2IoYml0ZmllbGQ8SUQ+IHNldElkZmxhZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgSGFsIHVzZXMgdGhpcyBBUEkgdG8gcmVxdWVzdCBhIHJlZmVyZW5jZSBsb2NhdGlvbi4KKyAgICAgKgorICAgICAqLworICAgIHJlcXVlc3RSZWZMb2NDYigpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3MuaGFsIGIvZ25zcy8xLjAvSUduc3MuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMmM2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zcy5oYWwKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJQUduc3M7CitpbXBvcnQgSUFHbnNzUmlsOworaW1wb3J0IElHbnNzQmF0Y2hpbmc7CitpbXBvcnQgSUduc3NDYWxsYmFjazsKK2ltcG9ydCBJR25zc0NvbmZpZ3VyYXRpb247CitpbXBvcnQgSUduc3NEZWJ1ZzsKK2ltcG9ydCBJR25zc01lYXN1cmVtZW50OworaW1wb3J0IElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U7CitpbXBvcnQgSUduc3NHZW9mZW5jaW5nOworaW1wb3J0IElHbnNzTmk7CitpbXBvcnQgSUduc3NYdHJhOworCisvKiogUmVwcmVzZW50cyB0aGUgc3RhbmRhcmQgR05TUyAoR2xvYmFsIE5hdmlnYXRpb24gU2F0ZWxsaXRlIFN5c3RlbSkgaW50ZXJmYWNlLiAqLworaW50ZXJmYWNlIElHbnNzIHsKKyAgICAvKiogUmVxdWVzdGVkIG9wZXJhdGlvbmFsIG1vZGUgZm9yIEdOU1Mgb3BlcmF0aW9uLiAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfUE9TSVRJT05fTU9ERV8iKQorICAgIGVudW0gR25zc1Bvc2l0aW9uTW9kZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogTW9kZSBmb3IgcnVubmluZyBHTlNTIHN0YW5kYWxvbmUgKG5vIGFzc2lzdGFuY2UpLiAqLworICAgICAgICBTVEFOREFMT05FICA9IDAsCisgICAgICAgIC8qKiBBR05TUyBNUy1CYXNlZCBtb2RlLiAqLworICAgICAgICBNU19CQVNFRCAgICA9IDEsCisgICAgICAgIC8qKgorICAgICAgICAgKiBBR05TUyBNUy1Bc3Npc3RlZCBtb2RlLiBUaGlzIG1vZGUgaXMgbm90IG1haW50YWluZWQgYnkgdGhlIHBsYXRmb3JtIGFueW1vcmUuCisgICAgICAgICAqIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHVzZSBNU19CQVNFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgTVNfQVNTSVNURUQgPSAyLAorICAgIH07CisKKyAgICAvKiogUmVxdWVzdGVkIHJlY3VycmVuY2UgbW9kZSBmb3IgR05TUyBvcGVyYXRpb24uICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19QT1NJVElPTl8iKQorICAgIGVudW0gR25zc1Bvc2l0aW9uUmVjdXJyZW5jZSA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqIFJlY2VpdmUgR05TUyBmaXhlcyBvbiBhIHJlY3VycmluZyBiYXNpcyBhdCBhIHNwZWNpZmllZCBwZXJpb2QuICovCisgICAgICAgIFJFQ1VSUkVOQ0VfUEVSSU9ESUMgID0gMCwKKyAgICAgICAgLyoqIFJlcXVlc3QgYSBzaW5nbGUgc2hvdCBHTlNTIGZpeC4gKi8KKyAgICAgICAgUkVDVVJSRU5DRV9TSU5HTEUgICAgPSAxCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBhaWRpbmcgZGF0YSB0byBkZWxldGUgd2hlbiBjYWxsaW5nCisgICAgICogZGVsZXRlQWlkaW5nRGF0YSgpLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBlbnVtIEduc3NBaWRpbmdEYXRhIDogdWludDE2X3QgeworICAgICAgICBERUxFVEVfRVBIRU1FUklTICAgID0gMHgwMDAxLAorICAgICAgICBERUxFVEVfQUxNQU5BQyAgICAgID0gMHgwMDAyLAorICAgICAgICBERUxFVEVfUE9TSVRJT04gICAgID0gMHgwMDA0LAorICAgICAgICBERUxFVEVfVElNRSAgICAgICAgID0gMHgwMDA4LAorICAgICAgICBERUxFVEVfSU9OTyAgICAgICAgID0gMHgwMDEwLAorICAgICAgICBERUxFVEVfVVRDICAgICAgICAgID0gMHgwMDIwLAorICAgICAgICBERUxFVEVfSEVBTFRIICAgICAgID0gMHgwMDQwLAorICAgICAgICBERUxFVEVfU1ZESVIgICAgICAgID0gMHgwMDgwLAorICAgICAgICBERUxFVEVfU1ZTVEVFUiAgICAgID0gMHgwMTAwLAorICAgICAgICBERUxFVEVfU0FEQVRBICAgICAgID0gMHgwMjAwLAorICAgICAgICBERUxFVEVfUlRJICAgICAgICAgID0gMHgwNDAwLAorICAgICAgICBERUxFVEVfQ0VMTERCX0lORk8gID0gMHg4MDAwLAorICAgICAgICBERUxFVEVfQUxMICAgICAgICAgID0gMHhGRkZGCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBpbnRlcmZhY2UgZm9yIElHbnNzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0cyBhIGxvY2F0aW9uIG91dHB1dCBzdHJlYW0gdXNpbmcgdGhlIElHbnNzQ2FsbGJhY2sKKyAgICAgKiBnbnNzTG9jYXRpb25DYigpLCBmb2xsb3dpbmcgdGhlIHNldHRpbmdzIGZyb20gdGhlIG1vc3QgcmVjZW50IGNhbGwgdG8KKyAgICAgKiBzZXRQb3NpdGlvbk1vZGUoKS4KKyAgICAgKgorICAgICAqIFRoaXMgb3V0cHV0IG11c3Qgb3BlcmF0ZSBpbmRlcGVuZGVudGx5IG9mIGFueSBHTlNTIGxvY2F0aW9uIGJhdGNoaW5nCisgICAgICogb3BlcmF0aW9ucywgc2VlIHRoZSBJR25zc0JhdGNoaW5nLmhhbCBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdGFydCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFN0b3BzIHRoZSBsb2NhdGlvbiBvdXRwdXQgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHN0b3AoKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgdGhlIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBjbGVhbnVwKCk7CisKKyAgICAvKioKKyAgICAgKiBJbmplY3RzIHRoZSBjdXJyZW50IHRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZU1zIFRoaXMgaXMgdGhlIFVUQyB0aW1lIHJlY2VpdmVkIGZyb20gdGhlIE5UUCBzZXJ2ZXIsIGl0cyB2YWx1ZQorICAgICAqIGlzIGdpdmVuIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICogQHBhcmFtIHRpbWVSZWZlcmVuY2VNcyBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZgorICAgICAqIFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpIGZyb20gdGhlIGRldmljZSB3aGVuIHRoZSBOVFAgcmVzcG9uc2Ugd2FzCisgICAgICogcmVjZWl2ZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSB1bmNlcnRhaW50eU1zIFVuY2VydGFpbnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aW1lLiBSZXByZXNlbnRlZCBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBpbmplY3RUaW1lKEduc3NVdGNUaW1lIHRpbWVNcywgaW50NjRfdCB0aW1lUmVmZXJlbmNlTXMsIGludDMyX3QgdW5jZXJ0YWludHlNcykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogSW5qZWN0cyBjdXJyZW50IGxvY2F0aW9uIGZyb20gYW5vdGhlciBsb2NhdGlvbiBwcm92aWRlciAodHlwaWNhbGx5IGNlbGwKKyAgICAgKiBJRCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGVEZWdyZWVzIE1lYXN1cmVkIGluIERlZ3JlZXMuCisgICAgICogQHBhcmFtIGxvbmdpdHVkZURlZ3JlZXMgTWVhc3VyZWQgaW4gRGVncmVlcy4KKyAgICAgKiBAcGFyYW0gYWNjdXJhY3lNZXRlcnMgTWVhc3VyZWQgaW4gbWV0ZXJzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGluamVjdExvY2F0aW9uKGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLCBmbG9hdCBhY2N1cmFjeU1ldGVycykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoYXQgdGhlIG5leHQgY2FsbCB0byBzdGFydCB3aWxsIG5vdCB1c2UgdGhlCisgICAgICogaW5mb3JtYXRpb24gZGVmaW5lZCBpbiB0aGUgZmxhZ3MuIEduc3NBaWRpbmdEYXRhIHZhbHVlIG9mIERFTEVURV9BTEwgaXMKKyAgICAgKiBwYXNzZWQgZm9yIGEgY29sZCBzdGFydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhaWRpbmdEYXRhRmxhZ3MgRmxhZ3Mgc3BlY2lmeWluZyB0aGUgYWlkaW5nIGRhdGEgdG8gYmUgZGVsZXRlZC4KKyAgICAgKi8KKyAgICBkZWxldGVBaWRpbmdEYXRhKEduc3NBaWRpbmdEYXRhIGFpZGluZ0RhdGFGbGFncyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBHbnNzUG9zaXRpb25Nb2RlIHBhcmFtZXRlcixpdHMgYXNzb2NpYXRlZCByZWN1cnJlbmNlIHZhbHVlLAorICAgICAqIHRoZSB0aW1lIGJldHdlZW4gZml4ZXMscmVxdWVzdGVkIGZpeCBhY2N1cmFjeSBhbmQgdGltZSB0byBmaXJzdCBmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSAgUGFyYW1ldGVyIG11c3QgYmUgb25lIG9mIE1TX0JBU0VEIG9yIFNUQU5EQUxPTkUuCisgICAgICogSXQgaXMgYWxsb3dlZCBieSB0aGUgcGxhdGZvcm0gKGFuZCBpdCBpcyByZWNvbW1lbmRlZCkgdG8gZmFsbGJhY2sgdG8KKyAgICAgKiBNU19CQVNFRCBpZiBNU19BU1NJU1RFRCBpcyBwYXNzZWQgaW4sIGFuZCBNU19CQVNFRCBpcyBzdXBwb3J0ZWQuCisgICAgICogQHJlY3VycmVuY2UgR05TUyBwb3N0aW9uIHJlY3VycmVuY2UgdmFsdWUsIGVpdGhlciBwZXJpb2RpYyBvciBzaW5nbGUuCisgICAgICogQHBhcmFtIG1pbkludGVydmFsTXMgUmVwcmVzZW50cyB0aGUgdGltZSBiZXR3ZWVuIGZpeGVzIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0gcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMgUmVwcmVzZW50cyB0aGUgcmVxdWVzdGVkIGZpeCBhY2N1cmFjeSBpbiBtZXRlcnMuCisgICAgICogQHBhcmFtIHByZWZlcnJlZFRpbWVNcyBSZXByZXNlbnRzIHRoZSByZXF1ZXN0ZWQgdGltZSB0byBmaXJzdCBmaXggaW4gbWlsbGlzZWNvbmRzLgorCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHNldFBvc2l0aW9uTW9kZShHbnNzUG9zaXRpb25Nb2RlIG1vZGUsIEduc3NQb3NpdGlvblJlY3VycmVuY2UgcmVjdXJyZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWluSW50ZXJ2YWxNcywgdWludDMyX3QgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZFRpbWVNcykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUFHbnNzUmlsIEludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYUduc3NSaWxJZmFjZSBIYW5kbGUgdG8gdGhlIElBR25zc1JpbCBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uQUduc3NSaWwoKSBnZW5lcmF0ZXMgKElBR25zc1JpbCBhR25zc1JpbElmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzR2VvZmVuY2luZyBJbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NHZW9mZW5jaW5nSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgZ2VuZXJhdGVzKElHbnNzR2VvZmVuY2luZyBnbnNzR2VvZmVuY2luZ0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElBR25zcyBJbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFHbnNzSWZhY2UgSGFuZGxlIHRvIHRoZSBJQUduc3MgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkFHbnNzKCkgZ2VuZXJhdGVzIChJQUduc3MgYUduc3NJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc05pIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZ25zc05pSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc05pIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzTmkoKSBnZW5lcmF0ZXMgKElHbnNzTmkgZ25zc05pSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NNZWFzdXJlbWVudCBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NNZWFzdXJlbWVudElmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NNZWFzdXJlbWVudCBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCkgZ2VuZXJhdGVzIChJR25zc01lYXN1cmVtZW50IGduc3NNZWFzdXJlbWVudElmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzTmF2aWdhdGlvbklmYWNlIGduc3NOYXZpZ2F0aW9uSWZhY2UgdG8gdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NOYXZpZ2F0aW9uTWVzc2FnZSgpIGdlbmVyYXRlcyAoSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSBnbnNzTmF2aWdhdGlvbklmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzWHRyYSBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHh0cmFJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzWHRyYSBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uWHRyYSgpIGdlbmVyYXRlcyAoSUduc3NYdHJhIHh0cmFJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzQ29uZmlnSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NDb25maWd1cmF0aW9uKCkgZ2VuZXJhdGVzIChJR25zc0NvbmZpZ3VyYXRpb24gZ25zc0NvbmZpZ0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzRGVidWcgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0lmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NEZWJ1ZyBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgZ2VuZXJhdGVzIChJR25zc0RlYnVnIGRlYnVnSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NCYXRjaGluZyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJhdGNoaW5nSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0JhdGNoaW5nIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSBnZW5lcmF0ZXMgKElHbnNzQmF0Y2hpbmcgYmF0Y2hpbmdJZmFjZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oYWwgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWUwMWUzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oYWwKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc0JhdGNoaW5nQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIEJhdGNoaW5nIHN1cHBvcnQuCisgKgorICogSWYgdGhpcyBpbnRlcmZhY2UgaXMgc3VwcG9ydGVkLCB0aGlzIGJhdGNoaW5nIHJlcXVlc3QgbXVzdCBiZSBhYmxlIHRvIHJ1biBpbgorICogcGFyYWxsZWwgd2l0aCwgb3Igd2l0aG91dCwgbm9uLWJhdGNoZWQgbG9jYXRpb24gcmVxdWVzdGVkIGJ5IHRoZQorICogSUduc3Mgc3RhcnQoKSAmIHN0b3AoKSAtIGkuZS4gYm90aCByZXF1ZXN0cyBtdXN0IGJlIGhhbmRsZWQgaW5kZXBlbmRlbnRseSwKKyAqIGFuZCBub3QgaW50ZXJmZXJlIHdpdGggZWFjaCBvdGhlci4KKyAqCisgKiBGb3IgZXhhbXBsZSwgaWYgYSAxSHogY29udGludW91cyBvdXRwdXQgaXMgdW5kZXJ3YXkgb24gdGhlIElHbnNzQ2FsbGJhY2ssCisgKiBkdWUgdG8gYW4gSUduc3Mgc3RhcnQoKSBvcGVyYXRpb24sCisgKiBhbmQgdGhlbiBhIElHbnNzQmF0Y2hpbmcgc3RhcnQoKSBpcyBjYWxsZWQgZm9yIGEgbG9jYXRpb24gZXZlcnkgMTAKKyAqIHNlY29uZHMsIHRoZSBuZXdseSBhZGRlZCBiYXRjaGluZyByZXF1ZXN0IG11c3Qgbm90IGRpc3J1cHQgdGhlIDFIegorICogY29udGludW91cyBsb2NhdGlvbiBvdXRwdXQgb24gdGhlIElHbnNzQ2FsbGJhY2suCisgKgorICogQXMgd2l0aCBHTlNTIExvY2F0aW9uIG91dHB1dHMsIHNvdXJjZSBvZiBsb2NhdGlvbiBtdXN0IGJlIEdOU1Mgc2F0ZWxsaXRlCisgKiBtZWFzdXJlbWVudHMsIG9wdGlvbmFsbHkgdXNpbmcgaW50ZXJpYWwgYW5kIGJhcm8gc2Vuc29ycyB0byBpbXByb3ZlCisgKiByZWxhdGl2ZSBtb3Rpb24gZmlsdGVyaW5nLiBObyBhZGRpdGlvbmFsIGFic29sdXRlIHBvc2l0aW9uaW5nIGluZm9ybWF0aW9uLAorICogc3VjaCBhcyBXaUZpIGRlcml2ZWQgbG9jYXRpb24sIG1heSBiZSBtaXhlZCB3aXRoIHRoZSBHTlNTIGluZm9ybWF0aW9uLgorICovCisKK2ludGVyZmFjZSBJR25zc0JhdGNoaW5nIHsKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIGJhdGNoaW5nIGNvbnRyb2wuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkZMUF9CQVRDSF8iKQorICAgIGVudW0gRmxhZyA6IHVpbnQ4X3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uCisgICAgICAgICAqIG11c3Qgd2FrZSB1cCB0aGUgYXBwbGljYXRpb24gcHJvY2Vzc29yIHdoZW4gdGhlIEZJRk8gaXMgZnVsbCwgYW5kCisgICAgICAgICAqIGNhbGwgSUduc3NCYXRjaGluZ0NhbGxiYWNrIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZmxhZyBpcyBub3Qgc2V0LCB0aGUgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gbXVzdCBkcm9wCisgICAgICAgICAqIHRoZSBvbGRlc3QgZGF0YSB3aGVuIHRoZSBGSUZPIGlzIGZ1bGwuCisgICAgICAgICAqLworICAgICAgICBXQUtFVVBfT05fRklGT19GVUxMID0gMHgwMQorICAgIH07CisKKyAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGludGVydmFsIGJldHdlZW4gc2FtcGxlcyBpbiB0aGUgbG9jYXRpb24gYmF0Y2gsIGluIG5hbm8KKyAgICAgICAgICogc2Vjb25kcy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgcGVyaW9kTmFub3M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZsYWdzIGNvbnRyb2xsaW5nIGhvdyBiYXRjaGluZyBzaG91bGQgYmVoYXZlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8RmxhZz4gZmxhZ3M7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBpbnRlcmZhY2UgZm9yIElHbnNzQmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgaW5pdChJR25zc0JhdGNoaW5nQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmF0Y2ggc2l6ZSAoaW4gbnVtYmVyIG9mIEduc3NMb2NhdGlvbiBvYmplY3RzKQorICAgICAqIGF2YWlsYWJsZSBpbiB0aGlzIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogSWYgdGhlIGF2YWlsYWJsZSBzaXplIGlzIHZhcmlhYmxlLCBmb3IgZXhhbXBsZSwgYmFzZWQgb24gb3RoZXIgb3BlcmF0aW9ucworICAgICAqIGNvbnN1bWluZyBtZW1vcnksIHRoaXMgaXMgdGhlIG1pbmltdW0gc2l6ZSBndWFyYW50ZWVkIHRvIGJlIGF2YWlsYWJsZQorICAgICAqIGZvciBiYXRjaGluZyBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogVGhpcyBtYXksIGZvciBleGFtcGxlLCBiZSB1c2VkIGJ5IHRoZSB1cHBlciBsYXllciwgdG8gZGVjaWRlIG9uIHRoZQorICAgICAqIGJhdGNoaW5nIGludGVydmFsIGFuZCB3aGV0aGVyIHRoZSBBUCBzaG91bGQgYmUgd29rZW4gdXAgb3Igbm90LgorICAgICAqCisgICAgICogQHJldHVybiBiYXRjaFNpemUgbnVtYmVyIG9mIGxvY2F0aW9uIG9iamVjdHMgc3VwcG9ydGVkIHBlciBiYXRjaAorICAgICAqLworICAgIGdldEJhdGNoU2l6ZSgpIGdlbmVyYXRlcyAodWludDE2X3QgYmF0Y2hTaXplKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IGJhdGNoaW5nIGxvY2F0aW9ucy4gVGhpcyBBUEkgaXMgcHJpbWFyaWx5IHVzZWQgd2hlbiB0aGUgQVAgaXMKKyAgICAgKiBhc2xlZXAgYW5kIHRoZSBkZXZpY2UgY2FuIGJhdGNoIGxvY2F0aW9ucyBpbiB0aGUgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgaXMgdXNlZCB0byByZXR1cm4gdGhlIGxvY2F0aW9ucy4KKyAgICAgKgorICAgICAqIFdoZW4gdGhlIGJ1ZmZlciBpcyBmdWxsIGFuZCBXQUtFVVBfT05fRklGT19GVUxMIGlzIHVzZWQsCisgICAgICogSUduc3NCYXRjaGluZ0NhbGxiYWNrIG11c3QgYmUgY2FsbGVkIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAqCisgICAgICogV2hlbiB0aGUgYnVmZmVyIGlzIGZ1bGwgYW5kIFdBS0VVUF9PTl9GSUZPX0ZVTEwgaXMgbm90IHNldCwKKyAgICAgKiB0aGUgb2xkZXN0IGxvY2F0aW9uIG9iamVjdCBpcyBkcm9wcGVkLiBJbiB0aGlzIGNhc2UgdGhlIEFQIG11c3Qgbm90IGJlCisgICAgICogd29rZW4gdXAuIFRoZSBBUCB3b3VsZCB0aGVuIGdlbmVyYWxseSBiZSByZXNwb25zaWJsZSBmb3IgdXNpbmcKKyAgICAgKiBmbHVzaEJhdGNoZWRMb2NhdGlvbiB0byBleHBsaWNpdGx5IGFzayBmb3IgdGhlIGxvY2F0aW9uIGFzIG5lZWRlZCwKKyAgICAgKiB0byBhdm9pZCBpdCBiZWluZyBkcm9wcGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgU2VlIHN0cnVjdCBPcHRpb25zIGRlZmluaXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc3RhcnQoT3B0aW9ucyBvcHRpb25zKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhbGwgYmF0Y2hlZCBsb2NhdGlvbnMgY3VycmVudGx5IHN0b3JlZC4KKyAgICAgKgorICAgICAqIElHbnNzQmF0Y2hpbmdDYWxsYmFjayBpcyB1c2VkIHRvIHJldHVybiB0aGUgbG9jYXRpb24uCisgICAgICoKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQgaW4gcmVzcG9uc2UsIGV2ZW4gaWYgdGhlcmUgYXJlCisgICAgICogbm8gbG9jYXRpb25zIHRvIGZsdXNoIChpbiB3aGljaCBjYXNlIHRoZSBMb2NhdGlvbiB2ZWN0b3IgbXVzdCBiZSBlbXB0eSkuCisgICAgICoKKyAgICAgKiBTdWJzZXF1ZW50IGNhbGxzIHRvIGZsdXNoQmF0Y2hlZExvY2F0aW9uCisgICAgICogbXVzdCBub3QgcmV0dXJuIGFueSBvZiB0aGUgbG9jYXRpb25zIHJldHVybmVkIGluIHRoaXMgY2FsbC4KKyAgICAgKi8KKyAgICBmbHVzaCgpOworCisgICAgLyoqCisgICAgICogU3RvcCBiYXRjaGluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdG9wKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogQ2xvc2VzIHRoZSBpbnRlcmZhY2UuIElmIGFueSBiYXRjaCBvcGVyYXRpb25zIGFyZSBpbiBwcm9ncmVzcywKKyAgICAgKiB0aGV5IG11c3QgYmUgc3RvcHBlZC4gIElmIGFueSBsb2NhdGlvbnMgYXJlIGluIHRoZSBoYXJkd2FyZSBiYXRjaCwgdGhleQorICAgICAqIG11c3QgYmUgZGVsZXRlZCAoYW5kIG5vdCBzZW50IHZpYSBjYWxsYmFjay4pCisgICAgICoKKyAgICAgKiBpbml0KCkgbWF5IGJlIGNhbGxlZCBhZ2FpbiwgYWZ0ZXIgdGhpcywgaWYgdGhlIGludGVyZmFjZSBpcyB0byBiZSByZXN0b3JlZAorICAgICAqLworICAgIGNsZWFudXAoKTsKKworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTdjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHJlcG9ydCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgSEFMLiAqLworaW50ZXJmYWNlIElHbnNzQmF0Y2hpbmdDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYSBiYXRjaCBvZiBsb2NhdGlvbnMgaXMgb3V0cHV0LCBieSB2YXJpb3VzIG1lYW5zLCBpbmNsdWRpbmcKKyAgICAgKiBhIGZsdXNoIHJlcXVlc3QsIGFzIHdlbGwgYXMgdGhlIGJ1ZmZlciBiZWNvbWluZyBmdWxsIChpZiBhcHByb3ByaWF0ZSBvcHRpb24KKyAgICAgKiBpcyBzZXQuKQorICAgICAqCisgICAgICogQWxsIGxvY2F0aW9ucyByZXR1cm5lZCBieSB0aGlzIGNhbGxiYWNrIG11c3QgYmUgY2xlYXJlZCBmcm9tIHRoZSBoYXJkd2FyZQorICAgICAqIGJ1ZmZlciwgc3VjaCB0aGUgc2VxdWVudGlhbCBjYWxscyBvZiB0aGlzIGNhbGxiYWNrIGRvIG5vdCByZXR1cm4gYW55CisgICAgICogcmVkdW5kYW50IGxvY2F0aW9ucy4gIChTYW1lIGxhdC9sb24sIGF0IGEgbmV3IHRpbWUsIGlzIGFjY2VwdGFibGUuKQorICAgICAqCisgICAgICogQHBhcmFtIGxvY2F0aW9ucyBHTlNTIExvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gSEFMLgorICAgICAqLworICAgIGduc3NMb2NhdGlvbkJhdGNoQ2IodmVjPEduc3NMb2NhdGlvbj4gbG9jYXRpb25zKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZTVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBUaGUgaW50ZXJmYWNlIGlzIHJlcXVpcmVkIGZvciB0aGUgSEFMIHRvIGNvbW11bmljYXRlIGNlcnRhaW4gaW5mb3JtYXRpb24KKyAqIGxpa2Ugc3RhdHVzIGFuZCBsb2NhdGlvbiBpbmZvIGJhY2sgdG8gdGhlIHBsYXRmb3JtLCB0aGUgcGxhdGZvcm0gaW1wbGVtZW50cworICogdGhlIGludGVyZmFjZXMgYW5kIHBhc3NlcyBhIGhhbmRsZSB0byB0aGUgSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NDYWxsYmFjayB7CisgICAgLyoqIEZsYWdzIGZvciB0aGUgZ25zc1NldENhcGFiaWxpdGllcyBjYWxsYmFjay4gKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0NBUEFCSUxJVFlfIikKKyAgICBlbnVtIENhcGFiaWxpdGllcyA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdOU1MgSEFMIHNjaGVkdWxlcyBmaXhlcyBmb3IgUkVDVVJSRU5DRV9QRVJJT0RJQyBtb2RlLgorICAgICAgICAgKiBJZiB0aGlzIGlzIG5vdCBzZXQsIHRoZW4gdGhlIGZyYW1ld29yayB3aWxsIHVzZSAxMDAwbXMgZm9yCisgICAgICAgICAqIG1pbkludGVydmFsIGFuZCB3aWxsIGNhbGwgc3RhcnQoKSBhbmQgc3RvcCgpIHRvIHNjaGVkdWxlIHRoZSBHTlNTLgorICAgICAgICAgKi8KKyAgICAgICAgU0NIRURVTElORyAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgTVMtQmFzZWQgQUdOU1MgbW9kZSAqLworICAgICAgICBNU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNUy1Bc3Npc3RlZCBBR05TUyBtb2RlICovCisgICAgICAgIE1TQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIHNpbmdsZS1zaG90IGZpeGVzICovCisgICAgICAgIFNJTkdMRV9TSE9UICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIG9uIGRlbWFuZCB0aW1lIGluamVjdGlvbiAqLworICAgICAgICBPTl9ERU1BTkRfVElNRSAgICAgICAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBHZW9mZW5jaW5nICAqLworICAgICAgICBHRU9GRU5DSU5HICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNZWFzdXJlbWVudHMgZm9yIGF0IGxlYXN0IEdQUy4gKi8KKyAgICAgICAgTUVBU1VSRU1FTlRTICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNiwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgTmF2aWdhdGlvbiBNZXNzYWdlcyAqLworICAgICAgICBOQVZfTUVTU0FHRVMgICAgICAgICAgICAgICAgICAgID0gMSA8PCA3CisgICAgfTsKKworICAgIC8qKiBHTlNTIHN0YXR1cyBldmVudCB2YWx1ZXMuICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19TVEFUVVNfIikKKyAgICBlbnVtIEduc3NTdGF0dXNWYWx1ZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogR05TUyBzdGF0dXMgdW5rbm93bi4gKi8KKyAgICAgICAgTk9ORSAgICAgICAgICAgPSAwLAorICAgICAgICAvKiogR05TUyBoYXMgYmVndW4gbmF2aWdhdGluZy4gKi8KKyAgICAgICAgU0VTU0lPTl9CRUdJTiAgPSAxLAorICAgICAgICAvKiogR05TUyBoYXMgc3RvcHBlZCBuYXZpZ2F0aW5nLiAqLworICAgICAgICBTRVNTSU9OX0VORCAgICA9IDIsCisgICAgICAgIC8qKiBHTlNTIGhhcyBwb3dlcmVkIG9uIGJ1dCBpcyBub3QgbmF2aWdhdGluZy4gKi8KKyAgICAgICAgRU5HSU5FX09OICAgICAgPSAzLAorICAgICAgICAvKiogR05TUyBpcyBwb3dlcmVkIG9mZi4gKi8KKyAgICAgICAgRU5HSU5FX09GRiAgICAgPSA0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIHRoYXQgaW5kaWNhdGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNhdGVsbGl0ZQorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX1NWX0ZMQUdTXyIpCisgICAgZW51bSBHbnNzU3ZGbGFncyA6IHVpbnQ4X3QgeworICAgICAgICBOT05FICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICBIQVNfRVBIRU1FUklTX0RBVEEgICAgPSAxIDw8IDAsCisgICAgICAgIEhBU19BTE1BTkFDX0RBVEEgICAgICA9IDEgPDwgMSwKKyAgICAgICAgVVNFRF9JTl9GSVggICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgPSAxIDw8IDMKKyAgICB9OworCisgICAgc3RydWN0IEduc3NTdkluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogUHNldWRvLXJhbmRvbSBudW1iZXIgZm9yIHRoZSBTViwgb3IgRkNOL09TTiBudW1iZXIgZm9yIEdsb25hc3MuIFRoZQorICAgICAgICAgKiBkaXN0aW5jdGlvbiBpcyBtYWRlIGJ5IGxvb2tpbmcgYXQgY29uc3RlbGxhdGlvbiBmaWVsZC4gVmFsdWVzIG11c3QgYmUKKyAgICAgICAgICogaW4gdGhlIHJhbmdlIG9mOgorICAgICAgICAgKgorICAgICAgICAgKiAtIEdOU1M6ICAgIDEtMzIKKyAgICAgICAgICogLSBTQkFTOiAgICAxMjAtMTUxLCAxODMtMTkyCisgICAgICAgICAqIC0gR0xPTkFTUzogMS0yNCwgdGhlIG9yYml0YWwgc2xvdCBudW1iZXIgKE9TTiksIGlmIGtub3duLiAgT3IsIGlmIG5vdDoKKyAgICAgICAgICogICAgICAgICAgICA5My0xMDYsIHRoZSBmcmVxdWVuY3kgY2hhbm5lbCBudW1iZXIgKEZDTikgKC03IHRvICs2KSBvZmZzZXQgYnkKKyAgICAgICAgICogICAgICAgICAgICArIDEwMAorICAgICAgICAgKiAgICAgICAgICAgIGkuZS4gcmVwb3J0IGFuIEZDTiBvZiAtNyBhcyA5MywgRkNOIG9mIDAgYXMgMTAwLCBhbmQgRkNOIG9mICs2CisgICAgICAgICAqICAgICAgICAgICAgYXMgMTA2LgorICAgICAgICAgKiAtIFFaU1M6ICAgIDE5My0yMDAKKyAgICAgICAgICogLSBHYWxpbGVvOiAxLTM2CisgICAgICAgICAqIC0gQmVpZG91OiAgMS0zNworICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBzdmlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBjb25zdGVsbGF0aW9uIG9mIHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyLXRvLW5vaXNlIGRlbnNpdHkgaW4gZEItSHosIHR5cGljYWxseSBpbiB0aGUgcmFuZ2UgWzAsIDYzXS4KKyAgICAgICAgICogSXQgY29udGFpbnMgdGhlIG1lYXN1cmVkIEMvTjAgdmFsdWUgZm9yIHRoZSBzaWduYWwgYXQgdGhlIGFudGVubmEgcG9ydC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNOMERiaHo7CisKKyAgICAgICAgLyoqIEVsZXZhdGlvbiBvZiBTViBpbiBkZWdyZWVzLiAqLworICAgICAgICBmbG9hdCBlbGV2YXRpb25EZWdyZWVzOworCisgICAgICAgIC8qKiBBemltdXRoIG9mIFNWIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGF6aW11dGhEZWdyZWVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyIGZyZXF1ZW5jeSBvZiB0aGUgc2lnbmFsIHRyYWNrZWQsIGZvciBleGFtcGxlIGl0IGNhbiBiZSB0aGUKKyAgICAgICAgICogR1BTIGNlbnRyYWwgZnJlcXVlbmN5IGZvciBMMSA9IDE1NzUuNDUgTUh6LCBvciBMMiA9IDEyMjcuNjAgTUh6LCBMNSA9CisgICAgICAgICAqIDExNzYuNDUgTUh6LCB2YXJ5aW5nIEdMTyBjaGFubmVscywgZXRjLiBJZiB0aGUgZmllbGQgaXMgbm90IHNldCwgaXQKKyAgICAgICAgICogaXMgdGhlIHByaW1hcnkgY29tbW9uIHVzZSBjZW50cmFsIGZyZXF1ZW5jeSwgZS5nLiBMMSA9IDE1NzUuNDUgTUh6CisgICAgICAgICAqIGZvciBHUFMuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBhbiBMMSwgTDUgcmVjZWl2ZXIgdHJhY2tpbmcgYSBzYXRlbGxpdGUgb24gTDEgYW5kIEw1IGF0IHRoZSBzYW1lCisgICAgICAgICAqIHRpbWUsIHR3byBHbnNzU3ZJbmZvIHN0cnVjdHMgbXVzdCBiZSByZXBvcnRlZCBmb3IgdGhpcyBzYW1lCisgICAgICAgICAqIHNhdGVsbGl0ZSwgaW4gb25lIG9mIHRoZSBzdHJ1Y3RzLCBhbGwgdGhlIHZhbHVlcyByZWxhdGVkCisgICAgICAgICAqIHRvIEwxIG11c3QgYmUgZmlsbGVkLCBhbmQgaW4gdGhlIG90aGVyIGFsbCBvZiB0aGUgdmFsdWVzIHJlbGF0ZWQgdG8KKyAgICAgICAgICogTDUgbXVzdCBiZSBmaWxsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0ZSRVFVRU5DWS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNhcnJpZXJGcmVxdWVuY3lIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udGFpbnMgYWRkaXRpb25hbCBkYXRhIGFib3V0IHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NTdkZsYWdzPiBzdkZsYWc7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgU1Ygc3RhdHVzLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzU3ZTdGF0dXMgeworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIEdOU1MgU1ZzIGN1cnJlbnRseSB2aXNpYmxlLCByZWZlcnMgdG8gdGhlIFNWcyBzdG9yZWQgaW4gc3ZfbGlzdAorICAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3QgbnVtU3ZzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQb2ludGVyIHRvIGFuIGFycmF5IG9mIFNWcyBpbmZvcm1hdGlvbiBmb3IgYWxsIEdOU1MgY29uc3RlbGxhdGlvbnMsCisgICAgICAgICAqIGV4Y2VwdCBHTlNTLCB3aGljaCBpcyByZXBvcnRlZCB1c2luZyBzdkxpc3QKKyAgICAgICAgICovCisgICAgICAgIEduc3NTdkluZm9bR25zc01heDpTVlNfQ09VTlRdIGduc3NTdkxpc3Q7CisKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYSBHTlNTIGxvY2F0aW9uIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBMb2NhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIEhBTC4KKyAgICAgKi8KKyAgICBnbnNzTG9jYXRpb25DYihHbnNzTG9jYXRpb24gbG9jYXRpb24pOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIGNvbW11bmljYXRlIHRoZSBzdGF0dXMgb2YgdGhlIEdOU1MgZW5naW5lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyBTdGF0dXMgaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc1N0YXR1c0NiKEduc3NTdGF0dXNWYWx1ZSBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN2SW5mbyBTViBzdGF0dXMgaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc1N2U3RhdHVzQ2IoR25zc1N2U3RhdHVzIHN2SW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBOTUVBIGRhdGEgaXMgYXZhaWxhYmxlLgorICAgICAqIENhbGxiYWNrIGZvciByZXBvcnRpbmcgTk1FQSBzZW50ZW5jZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIE1hcmtzIHRoZSBpbnN0YW5jZSBvZiByZXBvcnRpbmcuCisgICAgICogQHBhcmFtIG5tZWEgRm9sbG93cyBzdGFuZGFyZCBOTUVBIDAxODMuIEVhY2ggc2VudGVuY2UgYmVnaW5zIHdpdGggYSAnJCcKKyAgICAgKiBhbmQgZW5kcyB3aXRoIGEgY2FycmlhZ2UgcmV0dXJuL2xpbmUgZmVlZCBzZXF1ZW5jZSBhbmQgY2FuIGJlIG5vIGxvbmdlcgorICAgICAqIHRoYW4gODAgY2hhcmFjdGVycyBvZiB2aXNpYmxlIHRleHQgKHBsdXMgdGhlIGxpbmUgdGVybWluYXRvcnMpLiBUaGUgZGF0YQorICAgICAqIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBzaW5nbGUgbGluZSB3aXRoIGRhdGEgaXRlbXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiBUaGUgZGF0YSBpdHNlbGYgaXMganVzdCBhc2NpaSB0ZXh0IGFuZCBtYXkgZXh0ZW5kIG92ZXIgbXVsdGlwbGUgc2VudGVuY2VzCisgICAgICogaW4gY2VydGFpbiBzcGVjaWFsaXplZCBpbnN0YW5jZXMgYnV0IGlzIG5vcm1hbGx5IGZ1bGx5IGNvbnRhaW5lZCBpbiBvbmUKKyAgICAgKiB2YXJpYWJsZSBsZW5ndGggc2VudGVuY2UuIFRoZSBkYXRhIG1heSB2YXJ5IGluIHRoZSBhbW91bnQgb2YgcHJlY2lzaW9uCisgICAgICogY29udGFpbmVkIGluIHRoZSBtZXNzYWdlLiBGb3IgZXhhbXBsZSB0aW1lIG1pZ2h0IGJlIGluZGljYXRlZCB0byBkZWNpbWFsCisgICAgICogcGFydHMgb2YgYSBzZWNvbmQgb3IgbG9jYXRpb24gbWF5IGJlIHNob3duIHdpdGggMyBvciBldmVuIDQgZGlnaXRzIGFmdGVyCisgICAgICogdGhlIGRlY2ltYWwgcG9pbnQuIFByb2dyYW1zIHRoYXQgcmVhZCB0aGUgZGF0YSBtdXN0IG9ubHkgdXNlIHRoZSBjb21tYXMKKyAgICAgKiB0byBkZXRlcm1pbmUgdGhlIGZpZWxkIGJvdW5kYXJpZXMgYW5kIG5vdCBkZXBlbmQgb24gY29sdW1uIHBvc2l0aW9ucy4KKyAgICAgKiBUaGVyZSBpcyBhIHByb3Zpc2lvbiBmb3IgYSBjaGVja3N1bSBhdCB0aGUgZW5kIG9mIGVhY2ggc2VudGVuY2Ugd2hpY2ggbWF5CisgICAgICogb3IgbWF5IG5vdCBiZSBjaGVja2VkIGJ5IHRoZSB1bml0IHRoYXQgcmVhZHMgdGhlIGRhdGEuIFRoZSBjaGVja3N1bSBmaWVsZAorICAgICAqIGNvbnNpc3RzIG9mIGEgJyonIGFuZCB0d28gaGV4IGRpZ2l0cyByZXByZXNlbnRpbmcgYW4gOCBiaXQgZXhjbHVzaXZlIE9SCisgICAgICogb2YgYWxsIGNoYXJhY3RlcnMgYmV0d2VlbiwgYnV0IG5vdCBpbmNsdWRpbmcsIHRoZSAnJCcgYW5kICcqJy4KKyAgICAgKi8KKyAgICBnbnNzTm1lYUNiKEduc3NVdGNUaW1lIHRpbWVzdGFtcCwgc3RyaW5nIG5tZWEpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgdG8gaW5mb3JtIGZyYW1ld29yayBvZiB0aGUgR05TUyBlbmdpbmUncyBjYXBhYmlsaXRpZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FwYWJpbGl0aWVzIENhcGFiaWxpdHkgcGFyYW1ldGVyIGlzIGEgYml0IGZpZWxkIG9mCisgICAgICogdGhlIENhcGFiaWxpdGllcyBlbnVtLgorICAgICAqLworICAgIGduc3NTZXRDYXBhYmlsaXRlc0NiKGJpdGZpZWxkPENhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHV0aWxpdHkgZm9yIGFjcXVpcmluZyB0aGUgR05TUyB3YWtlbG9jay4gVGhpcyBjYW4gYmUgdXNlZCB0byBwcmV2ZW50CisgICAgICogdGhlIENQVSBmcm9tIHN1c3BlbmRpbmcgd2hpbGUgaGFuZGxpbmcgR05TUyBldmVudHMuCisgICAgICovCisgICAgZ25zc0FjcXVpcmVXYWtlbG9ja0NiKCk7CisKKyAgICAvKiogQ2FsbGJhY2sgdXRpbGl0eSBmb3IgcmVsZWFzaW5nIHRoZSBHTlNTIHdha2Vsb2NrLiAqLworICAgIGduc3NSZWxlYXNlV2FrZWxvY2tDYigpOworCisgICAgLyoqIENhbGxiYWNrIGZvciByZXF1ZXN0aW5nIE5UUCB0aW1lICovCisgICAgZ25zc1JlcXVlc3RUaW1lQ2IoKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IGhvdyBuZXcgdGhlIHVuZGVybHlpbmcgR1BTL0dOU1MgaGFyZHdhcmUgYW5kCisgICAgICogc29mdHdhcmUgaXMuCisgICAgICoKKyAgICAgKiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBBbmRyb2lkIFRlc3QgQXBwbGljYXRpb25zLiBJZiBhIEdOU1MKKyAgICAgKiBIQUwgZG9lcyBub3QgcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uLCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgIjIwMTUgb3IKKyAgICAgKiBlYXJsaWVyIi4KKyAgICAgKgorICAgICAqIElmIGEgR05TUyBIQUwgZG9lcyBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24sIHRoZW4gbmV3ZXIgeWVhcnMgd2lsbCBuZWVkIHRvCisgICAgICogbWVldCBuZXdlciBDVFMgc3RhbmRhcmRzLiBFLmcuIGlmIHRoZSBkYXRlIGFyZSAyMDE2IG9yIGFib3ZlLCB0aGVuIE4rIGxldmVsCisgICAgICogR25zc01lYXN1cmVtZW50IHN1cHBvcnQgd2lsbCBiZSB2ZXJpZmllZC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgR25zc1N5c3RlbUluZm97CisgICAgICAgIC8qKgorICAgICAgICAgKiB5ZWFyIGluIHdoaWNoIHRoZSBsYXN0IHVwZGF0ZSB3YXMgbWFkZSB0byB0aGUgdW5kZXJseWluZyBoYXJkd2FyZS9maXJtd2FyZQorICAgICAgICAgKiB1c2VkIHRvIGNhcHR1cmUgR05TUyBzaWduYWxzLCBlLmcuIDIwMTYKKyAgICAgICAgICovCisgICAgICAgIHVpbnQxNl90IHllYXJPZkh3OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB0byBpbmZvcm0gZnJhbWV3b3JrIG9mIHRoZSBlbmdpbmUncyBoYXJkd2FyZSB2ZXJzaW9uIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGluZm8gR25zc1N5c3RlbUluZm8gYWJvdXQgdGhlIEdQUy9HTlNTIGhhcmR3YXJlLgorICAgICAqLworICAgIGduc3NTZXRTeXN0ZW1JbmZvQ2IoR25zc1N5c3RlbUluZm8gaW5mbyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NDb25maWd1cmF0aW9uLmhhbCBiL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMxNTI4NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKgorICogSW50ZXJmYWNlIGZvciBwYXNzaW5nIEdOU1MgY29uZmlndXJhdGlvbiBpbmZvIGZyb20gcGxhdGZvcm0gdG8gSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NDb25maWd1cmF0aW9uIHsKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIFNVUExfTU9ERSBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgICAgKi8KKyAgICBlbnVtIFN1cGxNb2RlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBNb2JpbGUgU3RhdGlvbiBCYXNlZCAqLworICAgICAgICBNU0IgPSAweDAxLAorCisgICAgICAgIC8qKiBNb2JpbGUgU3RhdGlvbiBBc3Npc3RlZCAqLworICAgICAgICBNU0EgPSAweDAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEVudW0gd2hpY2ggaG9sZHMgdGhlIGJpdCBtYXNrcyBmb3IgR1BTX0xPQ0sgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgZW51bSBHcHNMb2NrIDogdWludDhfdCB7CisgICAgICAgIC8qKiBMb2NrIE1vYmlsZSBPcmlnaW5hdGVkIEdQUyBmdW5jdGlvbmFsaXR1ZXMuICovCisgICAgICAgIE1PICAgID0gIDB4MDEsCisKKyAgICAgICAgLyoqIExvY2sgTmV0d29yayBpbml0aWF0ZWQgR1BTIGZ1bmN0aW9uYWxpdGllcy4gKi8KKyAgICAgICAgTkkgICAgPSAgMHgwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtIHRoYXQgaG9sZCB0aGUgYml0IG1hc2tzIGZvciB2YXJpb3VzIExURSBQb3NpdGlvbmluZyBQcm9maWxlIHNldHRpbmdzIChMUFBfUFJPRklMRQorICAgICAqIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyKS4gSWYgbm9uZSBvZiB0aGUgYml0cyBpbiB0aGUgZW51bSBhcmUgc2V0LCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzCisgICAgICogUmFkaW8gUmVzb3VyY2UgTG9jYXRpb24gUHJvdG9jb2woUlJMUCkuCisgICAgICovCisgICAgZW51bSBMcHBQcm9maWxlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBFbmFibGUgTFRFIFBvc2l0aW9uaW5nIFByb3RvY29sIHVzZXIgcGxhbmUgKi8KKyAgICAgICAgVVNFUl9QTEFORSAgICAgICAgICA9IDB4MDEsCisKKyAgICAgICAgLyoqIEVuYWJsZSBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgQ29udHJvbCBwbGFuZSAqLworICAgICAgICBDT05UUk9MX1BMQU5FICAgICAgID0gMHgwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIEFfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUCisgICAgICogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgZW51bSBHbG9uYXNzUG9zUHJvdG9jb2wgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIFJhZGlvIFJlc291cmNlIENvbnRyb2woUlJDKSBjb250cm9sLXBsYW5lLiAqLworICAgICAgICBSUkNfQ1BMQU5FICAgICAgICAgICAgICAgICAgPSAweDAxLAorCisgICAgICAgIC8qKiBSYWRpbyBSZXNvdXJjZSBMb2NhdGlvbiB1c2VyLXBsYW5lLiAqLworICAgICAgICBSUkxQX0NQTEFORSAgICAgICAgICAgICAgICAgPSAweDAyLAorCisgICAgICAgIC8qKiBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgVXNlciBwbGFuZSAqLworICAgICAgICBMUFBfVVBMQU5FICAgICAgICAgICAgICAgICAgPSAweDA0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIElNUE9SVEFOVDogR05TUyBIQUwgbXVzdCBleHBlY3QgdGhlIGJlbG93IG1ldGhvZHMgdG8gYmUgY2FsbGVkIG11bHRpcGxlCisgICAgICogdGltZXMuIFRoZXkgY2FuIGJlIGNhbGxlZCBldmVuIHdoZW4gR25zc0xvY2F0aW9uUHJvdmlkZXIgaXMgYWxyZWFkeQorICAgICAqIGNvbnN0cnVjdGVkIGFuZCBlbmFibGVkLiBHTlNTIEhBTCBtdXN0IG1haW50YWluIHRoZSBleGlzdGluZyByZXF1ZXN0cworICAgICAqIGZvciB2YXJpb3VzIGNhbGxiYWNrcyByZWdhcmRsZXNzIHRoZSBjaGFuZ2UgaW4gY29uZmlndXJhdGlvbiBkYXRhLgorICAgICAqLworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBlbmFibGVzIG9yIGRpc2FibGVzIGVtZXJnZW5jeSBTVVBMLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZW5hYmxlZCBUcnVlIGlmIGVtZXJnZW5jeSBTVVBMIGlzIHRvIGJlIGVuYWJsZWQuCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxFcyhib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgU1VQTCB2ZXJzaW9uIHJlcXVlc3RlZCBieSBDYXJyaWVyLiBUaGUgR05TUyBIQUwKKyAgICAgICogbXVzdCB1c2UgdGhpcyB2ZXJzaW9uIG9mIHRoZSBTVVBMIHByb3RvY29sIGlmIHN1cHBvcnRlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIHZlcnNpb24gU1VQTCB2ZXJzaW9uIHJlcXVlc3RlZCBieSBjYXJyaWVyLiBUaGlzIGlzIGEgYml0IG1hc2sKKyAgICAgICogd2l0aCBiaXRzIDA6NyByZXByZXNlbnRpbmcgYSBzZXJ2aWNlIGluZGljYXRvciBmaWVsZCwgYml0cyA4OjE1CisgICAgICAqIHJlcHJlc2VudGluZyB0aGUgbWlub3IgdmVyc2lvbiBhbmQgYml0cyAxNjoyMyByZXByZXNlbnRpbmcgdGhlCisgICAgICAqIG1ham9yIHZlcnNpb24uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgU1VQTCBtb2RlLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gbW9kZSBCaXQgbWFzayB0aGF0IHNwZWNpZmllcyB0aGUgU1VQTCBtb2RlIHdoaWNoIGlzIHNldCB3aXRoIHRoZSBTdXBsTW9kZSBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRTdXBsTW9kZShiaXRmaWVsZDxTdXBsTW9kZT4gbW9kZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIHNldHRpbmcgY29uZmlndXJlcyBob3cgR1BTIGZ1bmN0aW9uYWxpdGllcyBzaG91bGQgYmUgbG9ja2VkIHdoZW4KKyAgICAgICogdXNlciB0dXJucyBvZmYgR1BTIE9uIHNldHRpbmcuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBsb2NrIEJpdG1hc2sgdGhhdCBzcGVjaWZpZXMgdGhlIEdQUyBmdW5jdGlvbmFsaXRpZXMgdG8gYmUgYmUKKyAgICAgICogbG9ja2VkIGFzIHBlciB0aGUgR3BzTG9jayBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRHcHNMb2NrKGJpdGZpZWxkPEdwc0xvY2s+IGxvY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUgY29uZmlndXJhdGlvbi4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGxwcFByb2ZpbGUgQml0bWFzayB0aGF0IHNwZWNpZmllcyB0aGUgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUKKyAgICAgICogY29uZmlndXJhdGlvbiB0byBiZSBzZXQgYXMgcGVyIHRoZSBMcHBQcm9maWxlIGVudW0uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldExwcFByb2ZpbGUoYml0ZmllbGQ8THBwUHJvZmlsZT4gbHBwUHJvZmlsZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBzZWxlY3RzIHBvc2l0aW9uaW5nIHByb3RvY29sIG9uIEEtR2xvbmFzcyBzeXN0ZW0uCisgICAgICAqCisgICAgICAqIEBwYXJhbSBwcm90b2NvbCBCaXRtYXNrIHRoYXQgc3BlY2lmaWVzIHRoZSBwb3NpdGlvbmluZyBwcm90b2NvbCB0byBiZQorICAgICAgKiBzZXQgYXMgcGVyIEdsb25hc3NQb3NQcm90b2NvbCBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRHbG9uYXNzUG9zaXRpb25pbmdQcm90b2NvbChiaXRmaWVsZDxHbG9uYXNzUG9zUHJvdG9jb2w+IHByb3RvY29sKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgd2hpY2ggUEROIHRvIHVzZS4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGVuYWJsZSBVc2UgZW1lcmdlbmN5IFBETiBpZiB0cnVlIGFuZCByZWd1bGFyIFBETiBpZiBmYWxzZS4KKyAgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICAgICAgKi8KKyAgICAgc2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzRGVidWcuaGFsIGIvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM0Y2ZiOAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzRGVidWcuaGFsCkBAIC0wLDAgKzEsMTg4IEBACitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIERFQlVHIHN1cHBvcnQuICovCitpbnRlcmZhY2UgSUduc3NEZWJ1ZyB7CisgICAgZW51bSBTYXRlbGxpdGVFcGhlbWVyaXNUeXBlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBFcGhlbWVyaXMgaXMga25vd24gZm9yIHRoaXMgc2F0ZWxsaXRlLiAqLworICAgICAgICBFUEhFTUVSSVMsCisgICAgICAgIC8qKgorICAgICAgICAgKiBFcGhlbWVyaXMgaXMgbm90IGtub3duLCBidXQgQWxtYW5hYyAoYXBwcm94aW1hdGUgbG9jYXRpb24pIGlzIGtub3duLgorICAgICAgICAgKi8KKyAgICAgICAgQUxNQU5BQ19PTkxZLAorICAgICAgICAvKioKKyAgICAgICAgICogQm90aCBlcGhlbWVyaXMgJiBhbG1hbmFjIGFyZSBub3Qga25vd24gKGUuZy4gZHVyaW5nIGEgY29sZCBzdGFydAorICAgICAgICAgKiBibGluZCBzZWFyY2guKQorICAgICAgICAgKi8KKyAgICAgICAgTk9UX0FWQUlMQUJMRQorICAgIH07CisKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc1NvdXJjZSA6IHVpbnQ4X3QgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgZGVtb2R1bGF0ZWQgZnJvbSB0aGUKKyAgICAgICAgICogc2lnbmFsIHJlY2VpdmVkIG9uIHRoZSBkZXZpY2UKKyAgICAgICAgICovCisgICAgICAgIERFTU9EVUxBVEVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcmVjZWl2ZWQgZnJvbSBhIFNVUEwKKyAgICAgICAgICogc2VydmVyLgorICAgICAgICAgKi8KKyAgICAgICAgU1VQTF9QUk9WSURFRCwKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlcGhlbWVyaXMgKG9yIGFsbWFuYWMgb25seSkgaW5mb3JtYXRpb24gd2FzIHByb3ZpZGVkIGJ5IGFub3RoZXIKKyAgICAgICAgICogc2VydmVyLgorICAgICAgICAgKi8KKyAgICAgICAgT1RIRVJfU0VSVkVSX1BST1ZJREVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcHJvdmlkZWQgYnkgYW5vdGhlcgorICAgICAgICAgKiBtZXRob2QsIGUuZy4gaW5qZWN0ZWQgdmlhIGEgbG9jYWwgZGVidWcgdG9vbCwgZnJvbSBidWlsZCBkZWZhdWx0cworICAgICAgICAgKiAoZS5nLiBhbG1hbmFjKSwgb3IgaXMgZnJvbSBhIHNhdGVsbGl0ZQorICAgICAgICAgKiB3aXRoIFNhdGVsbGl0ZUVwaGVtZXJpc1R5cGU6Ok5PVF9BVkFJTEFCTEUuCisgICAgICAgICAqLworICAgICAgICBPVEhFUgorICAgIH07CisKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc0hlYWx0aCA6IHVpbnQ4X3QgeworICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyBrbm93biBnb29kLiAqLworICAgICAgICBHT09ELAorICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyBrbm93biBiYWQuICovCisgICAgICAgIEJBRCwKKyAgICAgICAgLyoqIFRoZSBlcGhlbWVyaXMgaXMgdW5rbm93biB0byBiZSBnb29kIG9yIGJhZC4gKi8KKyAgICAgICAgVU5LTk9XTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCBiZXN0IGtub3duIHBvc2l0aW9uIGZyb20gYW55CisgICAgICogc291cmNlIChHTlNTIG9yIGluamVjdGVkIGFzc2lzdGFuY2UpLgorICAgICAqLworICAgIHN0cnVjdCBQb3NpdGlvbkRlYnVnIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkaXR5IG9mIHRoZSBkYXRhIGluIHRoaXMgc3RydWN0LiBGYWxzZSBvbmx5IGlmIG5vCisgICAgICAgICAqIGxhdGl0dWRlL2xvbmdpdHVkZSBpbmZvcm1hdGlvbiBpcyBrbm93bi4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgdmFsaWQ7CisgICAgICAgIC8qKiBMYXRpdHVkZSBleHByZXNzZWQgaW4gZGVncmVlcyAqLworICAgICAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzOworICAgICAgICAvKiogTG9uZ2l0dWRlIGV4cHJlc3NlZCBpbiBkZWdyZWVzICovCisgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzOworICAgICAgICAvKiogQWx0aXR1ZGUgYWJvdmUgZWxsaXBzb2lkIGV4cHJlc3NlZCBpbiBtZXRlcnMgKi8KKyAgICAgICAgZmxvYXQgYWx0aXR1ZGVNZXRlcnM7CisgICAgICAgIC8qKiBSZXByZXNlbnRzIGhvcml6b250YWwgc3BlZWQgaW4gbWV0ZXJzIHBlciBzZWNvbmQuICovCisgICAgICAgIGZsb2F0IHNwZWVkTWV0ZXJzUGVyU2VjOworICAgICAgICAvKiogUmVwcmVzZW50cyBoZWFkaW5nIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGJlYXJpbmdEZWdyZWVzOworICAgICAgICAvKioKKyAgICAgICAgICogRXN0aW1hdGVkIGhvcml6b250YWwgYWNjdXJhY3kgb2YgcG9zaXRpb24gZXhwcmVzc2VkIGluIG1ldGVycywKKyAgICAgICAgICogcmFkaWFsLCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBob3Jpem9udGFsQWNjdXJhY3lNZXRlcnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBFc3RpbWF0ZWQgdmVydGljYWwgYWNjdXJhY3kgb2YgcG9zaXRpb24gZXhwcmVzc2VkIGluIG1ldGVycywgd2l0aAorICAgICAgICAgKiA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB2ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzOworICAgICAgICAvKioKKyAgICAgICAgICogRXN0aW1hdGVkIHNwZWVkIGFjY3VyYWN5IGluIG1ldGVycyBwZXIgc2Vjb25kIHdpdGggNjglIGNvbmZpZGVuY2UuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgc3BlZWRBY2N1cmFjeU1ldGVyc1BlclNlY29uZDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIGVzdGltYXRlZCBiZWFyaW5nIGFjY3VyYWN5IGRlZ3JlZXMgd2l0aCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBiZWFyaW5nQWNjdXJhY3lEZWdyZWVzOworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBkdXJhdGlvbiBiZWZvcmUgdGhpcyByZXBvcnQgdGhhdCB0aGlzIHBvc2l0aW9uIGluZm9ybWF0aW9uIHdhcworICAgICAgICAgKiB2YWxpZC4gIFRoaXMgY2FuLCBmb3IgZXhhbXBsZSwgYmUgYSBwcmV2aW91cyBpbmplY3RlZCBsb2NhdGlvbiB3aXRoCisgICAgICAgICAqIGFuIGFnZSBwb3RlbnRpYWxseSB0aG91c2FuZHMgb2Ygc2Vjb25kcyBvbGQsIG9yCisgICAgICAgICAqIGV4dHJhcG9sYXRlZCB0byB0aGUgY3VycmVudCB0aW1lICh3aXRoIGFwcHJvcHJpYXRlbHkgaW5jcmVhc2VkCisgICAgICAgICAqIGFjY3VyYWN5IGVzdGltYXRlcyksIHdpdGggYSAobmVhcikgemVybyBhZ2UuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBhZ2VTZWNvbmRzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCBiZXN0IGtub3duIFVUQyB0aW1lIGVzdGltYXRlLgorICAgICAqIElmIG5vIGZyZXNoIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgZS5nLiBhZnRlciBhIGRlbGV0ZSBhbGwsCisgICAgICogdGhlbiB3aGF0ZXZlciB0aGUgZWZmZWN0aXZlIGRlZmF1bHRzIGFyZSBvbiB0aGUgZGV2aWNlIG11c3QgYmUKKyAgICAgKiBwcm92aWRlZCAoZS5nLiBKYW4uIDEsIDIwMTcsIHdpdGggYW4gdW5jZXJ0YWludHkgb2YgNSB5ZWFycykgZXhwcmVzc2VkCisgICAgICogaW4gdGhlIHNwZWNpZmllZCB1bml0cy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgVGltZURlYnVnIHsKKyAgICAgICAgLyoqIFVUQyB0aW1lIGVzdGltYXRlLiAqLworICAgICAgICBHbnNzVXRjVGltZSB0aW1lRXN0aW1hdGU7CisgICAgICAgIC8qKiA2OCUgZXJyb3IgZXN0aW1hdGUgaW4gdGltZS4gKi8KKyAgICAgICAgZmxvYXQgdGltZVVuY2VydGFpbnR5TnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiA2OCUgZXJyb3IgZXN0aW1hdGUgaW4gbG9jYWwgY2xvY2sgZHJpZnQsCisgICAgICAgICAqIGluIG5hbm9zZWNvbmRzIHBlciBzZWNvbmQgKGFsc28ga25vd24gYXMgcGFydHMgcGVyIGJpbGxpb24gLSBwcGIuKQorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgZnJlcXVlbmN5VW5jZXJ0YWludHlOc1BlclNlYzsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBzaW5nbGUgc2F0ZWxsaXRlIGluZm8gdGhhdCBoYXMgZGVjb2RlZCBuYXZpZ2F0aW9uIGRhdGEuCisgICAgICovCisgICAgc3RydWN0IFNhdGVsbGl0ZURhdGEgeworICAgICAgICAvKiogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKyAgICAgICAgLyoqIERlZmluZXMgdGhlIGNvbnN0ZWxsYXRpb24gdHlwZSBvZiB0aGUgZ2l2ZW4gU1YuICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBicm9hZGNhc3QgZXBoZW1lcmlzIG9yIGFsbWFuYWMgYXZhaWxhYmlsaXR5IGZvcgorICAgICAgICAgKiB0aGUgc2F0ZWxsaXRlLiAgVG8gcmVwb3J0IHN0YXR1cyBvZiBwcmVkaWN0ZWQgb3JiaXQgYW5kIGNsb2NrCisgICAgICAgICAqIGluZm9ybWF0aW9uLCBzZWUgdGhlIHNlcnZlclByZWRpY3Rpb24gZmllbGRzIGJlbG93LgorICAgICAgICAgKi8KKyAgICAgICAgU2F0ZWxsaXRlRXBoZW1lcmlzVHlwZSBlcGhlbWVyaXNUeXBlOworICAgICAgICAvKiogRGVmaW5lcyB0aGUgZXBoZW1lcmlzIHNvdXJjZSBvZiB0aGUgc2F0ZWxsaXRlLiAqLworICAgICAgICBTYXRlbGxpdGVFcGhlbWVyaXNTb3VyY2UgZXBoZW1lcmlzU291cmNlOworICAgICAgICAvKioKKyAgICAgICAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSBzYXRlbGxpdGUgaXMga25vd24gaGVhbHRoeQorICAgICAgICAgKiAoc2FmZSBmb3IgdXNlIGluIGxvY2F0aW9uIGNhbGN1bGF0aW9uLikKKyAgICAgICAgICovCisgICAgICAgIFNhdGVsbGl0ZUVwaGVtZXJpc0hlYWx0aCBlcGhlbWVyaXNIZWFsdGg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGR1cmF0aW9uIGZyb20gdGhpcyByZXBvcnQgKGN1cnJlbnQgdGltZSksIG1pbnVzIHRoZQorICAgICAgICAgKiBlZmZlY3RpdmUgdGltZSBvZiB0aGUgZXBoZW1lcmlzIHNvdXJjZSAoZS5nLiBUT0UsIFRPQS4pCisgICAgICAgICAqIFNldCB0byAwIHdoZW4gZXBoZW1lcmlzVHlwZSBpcyBOT1RfQVZBSUxBQkxFLgorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgZXBoZW1lcmlzQWdlU2Vjb25kczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVHJ1ZSBpZiBhIHNlcnZlciBoYXMgcHJvdmlkZWQgYSBwcmVkaWN0ZWQgb3JiaXQgYW5kIGNsb2NrIG1vZGVsIGZvcgorICAgICAgICAgKiB0aGlzIHNhdGVsbGl0ZS4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgc2VydmVyUHJlZGljdGlvbklzQXZhaWxhYmxlOworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBkdXJhdGlvbiBmcm9tIHRoaXMgcmVwb3J0IChjdXJyZW50IHRpbWUpIG1pbnVzIHRoZSB0aW1lIG9mIHRoZQorICAgICAgICAgKiBzdGFydCBvZiB0aGUgc2VydmVyIHByZWRpY3RlZCBpbmZvcm1hdGlvbi4gIEZvciBleGFtcGxlLCBhIDEgZGF5CisgICAgICAgICAqIG9sZCBwcmVkaWN0aW9uIHdvdWxkIGJlIHJlcG9ydGVkIGFzIDg2NDAwIHNlY29uZHMgaGVyZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IHNlcnZlclByZWRpY3Rpb25BZ2VTZWNvbmRzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIHNldCBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiB0aGF0IGlzIGZpbGxlZCBieSB0aGUgR05TUyBjaGlwc2V0CisgICAgICogd2hlbiB0aGUgbWV0aG9kIGdldERlYnVnRGF0YSgpIGlzIGludm9rZWQuCisgICAgICovCisgICAgc3RydWN0IERlYnVnRGF0YSB7CisgICAgICAgIC8qKiBDdXJyZW50IGJlc3Qga25vd24gcG9zaXRpb24uICovCisgICAgICAgIFBvc2l0aW9uRGVidWcgcG9zaXRpb247CisgICAgICAgIC8qKiBDdXJyZW50IGJlc3Qga25vdyB0aW1lIGVzdGltYXRlICovCisgICAgICAgIFRpbWVEZWJ1ZyB0aW1lOworICAgICAgICAvKioKKyAgICAgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBhdmFpbGFibGUgc2F0ZWxsaXRlIGRhdGEsIGZvciBhbGwKKyAgICAgICAgICogc2F0ZWxsaXRlcyBhbmQgY29uc3RlbGxhdGlvbnMgdGhlIGRldmljZSBjYW4gdHJhY2ssCisgICAgICAgICAqIGluY2x1ZGluZyBHbnNzQ29uc3RlbGxhdGlvblR5cGUgVU5LTk9XTi4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxTYXRlbGxpdGVEYXRhPiBzYXRlbGxpdGVEYXRhQXJyYXk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kcyByZXF1ZXN0cyBwb3NpdGlvbiwgdGltZSBhbmQgc2F0ZWxsaXRlIGVwaGVtZXJpcyBkZWJ1ZyBpbmZvcm1hdGlvbgorICAgICAqIGZyb20gdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0IGRlYnVnRGF0YSBpbmZvcm1hdGlvbiBmcm9tIEdOU1MgSGFsIHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnQgYmVzdAorICAgICAqIGtub3duIHBvc2l0aW9uLCBiZXN0IGtub3duIHRpbWUgZXN0aW1hdGUgYW5kIGEgY29tcGxldGUgbGlzdCBvZgorICAgICAqIGNvbnN0ZWxsYXRpb25zIHRoYXQgdGhlIGRldmljZSBjYW4gdHJhY2suCisgICAgICovCisgICAgZ2V0RGVidWdEYXRhKCkgZ2VuZXJhdGVzIChEZWJ1Z0RhdGEgZGVidWdEYXRhKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzM3OTBhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBHTlNTIEdlb2ZlbmNlLgorICogVGhlcmUgYXJlIDMgc3RhdGVzIGFzc29jaWF0ZWQgd2l0aCBhIEdlb2ZlbmNlOiBJbnNpZGUsIE91dHNpZGUsIFVua25vd24uCisgKiBUaGVyZSBhcmUgMyB0cmFuc2l0aW9uczogRU5URVJFRCwgRVhJVEVELCBVTkNFUlRBSU4uCisgKgorICogQW4gZXhhbXBsZSBzdGF0ZSBkaWFncmFtIHdpdGggY29uZmlkZW5jZSBsZXZlbDogOTUlIGFuZCBVbmtub3duIHRpbWUgbGltaXQKKyAqIHNldCBhcyAzMCBzZWNzIGlzIHNob3duIGJlbG93LiAoY29uZmlkZW5jZSBsZXZlbCBhbmQgVW5rbm93biB0aW1lIGxpbWl0IGFyZQorICogZXhwbGFpbmVkIGxhdHRlcikuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgVW5rbm93biAoMzAgc2VjcykgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIHwgICAgICAgICAgICAgICAgICB8ICBeCisgKiAgICAgICAgICAgICAgICAgICBVTkNFUlRBSU58IHxFTlRFUkVEICAgICBFWElURUR8ICB8VU5DRVJUQUlOCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHYgICAgICAgICAgICAgICAgICB2ICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fICAgIEVYSVRFRCAgICAgX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgfCBJbnNpZGUgfCAtLS0tLS0tLS0tLT4gfCBPdXRzaWRlIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8IDwtLS0tLS0tLS0tLSB8ICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiAgICBFTlRFUkVEICAgICIiIiIiIiIiIgorICoKKyAqIEluc2lkZSBzdGF0ZTogV2UgYXJlIDk1JSBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBpbnNpZGUgdGhlIGdlb2ZlbmNlLgorICogT3V0c2lkZSBzdGF0ZTogV2UgYXJlIDk1JSBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBvdXRzaWRlIHRoZSBnZW9mZW5jZQorICogVW5rbm93biBzdGF0ZTogUmVzdCBvZiB0aGUgdGltZS4KKyAqCisgKiBUaGUgVW5rbm93biBzdGF0ZSBpcyBiZXR0ZXIgZXhwbGFpbmVkIHdpdGggYW4gZXhhbXBsZToKKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBjfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBfX18gICAgIHwgICAgX19fX19fXworICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB8YXwgICAgIHwgICB8ICAgYiAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIiIiICAgICB8ICAgICIiIiIiIiIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiIiCisgKiBJbiB0aGUgZGlhZ3JhbSBhYm92ZSwgImEiIGFuZCAiYiIgYXJlIDIgZ2VvZmVuY2VzIGFuZCAiYyIgaXMgdGhlIGFjY3VyYWN5CisgKiBjaXJjbGUgcmVwb3J0ZWQgYnkgdGhlIEdOU1Mgc3Vic3lzdGVtLiBOb3cgd2l0aCByZWdhcmQgdG8gImIiLCB0aGUgc3lzdGVtIGlzCisgKiBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBvdXRzaWRlLiBCdXQgd2l0aCByZWdhcmQgdG8gImEiIGlzIG5vdCBjb25maWRlbnQKKyAqIHdoZXRoZXIgaXQgaXMgaW5zaWRlIG9yIG91dHNpZGUgdGhlIGdlb2ZlbmNlLiBJZiB0aGUgYWNjdXJhY3kgcmVtYWlucyB0aGUKKyAqIHNhbWUgZm9yIGEgc3VmZmljaWVudCBwZXJpb2Qgb2YgdGltZSwgdGhlIFVOQ0VSVEFJTiB0cmFuc2l0aW9uIG11c3QgYmUKKyAqIHRyaWdnZXJlZCB3aXRoIHRoZSBzdGF0ZSBzZXQgdG8gVW5rbm93bi4gSWYgdGhlIGFjY3VyYWN5IGltcHJvdmVzIGxhdGVyLCBhbgorICogYXBwcm9wcmlhdGUgdHJhbnNpdGlvbiBtdXN0IGJlIHRyaWdnZXJlZC4gIFRoaXMgInN1ZmZpY2llbnQgcGVyaW9kIG9mIHRpbWUiCisgKiBpcyBkZWZpbmVkIGJ5IHRoZSBwYXJhbWV0ZXIgaW4gdGhlIGFkZEdlb2ZlbmNlQXJlYSBBUEkuCisgKiBJbiBvdGhlciB3b3JkcywgVW5rbm93biBzdGF0ZSBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGF0ZSBpbiB3aGljaCB0aGUKKyAqIEdOU1Mgc3Vic3lzdGVtIGlzbid0IGNvbmZpZGVudCBlbm91Z2ggdGhhdCB0aGUgdXNlciBpcyBlaXRoZXIgaW5zaWRlIG9yCisgKiBvdXRzaWRlIHRoZSBHZW9mZW5jZS4gSXQgbW92ZXMgdG8gVW5rbm93biBzdGF0ZSBvbmx5IGFmdGVyIHRoZSBleHBpcnkgb2YgdGhlCisgKiB0aW1lb3V0LgorICoKKyAqIFRoZSBnZW9mZW5jZSBjYWxsYmFjayBuZWVkcyB0byBiZSB0cmlnZ2VyZWQgZm9yIHRoZSBFTlRFUkVEIGFuZCBFWElURUQKKyAqIHRyYW5zaXRpb25zLCB3aGVuIHRoZSBHTlNTIHN5c3RlbSBpcyBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBoYXMgZW50ZXJlZAorICogKEluc2lkZSBzdGF0ZSkgb3IgZXhpdGVkIChPdXRzaWRlIHN0YXRlKSB0aGUgR2VvZmVuY2UuIEFuIGltcGxlbWVudGF0aW9uCisgKiB3aGljaCB1c2VzIGEgdmFsdWUgb2YgOTUlIGFzIHRoZSBjb25maWRlbmNlIGlzIHJlY29tbWVuZGVkLiBUaGUgY2FsbGJhY2sKKyAqIG11c3QgYmUgdHJpZ2dlcmVkIG9ubHkgZm9yIHRoZSB0cmFuc2l0aW9ucyByZXF1ZXN0ZWQgYnkgdGhlCisgKiBhZGRHZW9mZW5jZUFyZWEgbWV0aG9kLgorICoKKyAqIEV2ZW4gdGhvdWdoIHRoZSBkaWFncmFtIGFuZCBleHBsYW5hdGlvbiB0YWxrcyBhYm91dCBzdGF0ZXMgYW5kIHRyYW5zaXRpb25zLAorICogdGhlIGNhbGxlZSBpcyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHRyYW5zaXRpb25zLiBUaGUgc3RhdGVzIGFyZSBtZW50aW9uZWQKKyAqIGhlcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4KKyAqCisgKiBTdGFydHVwIFNjZW5hcmlvOiBXaGVuIHRoZSBkZXZpY2UgYm9vdHMgdXAsIGlmIGFuIGFwcGxpY2F0aW9uIGFkZHMgZ2VvZmVuY2VzLAorICogYW5kIHRoZW4gd2UgZ2V0IGFuIGFjY3VyYXRlIEdOU1MgbG9jYXRpb24gZml4LCBpdCBuZWVkcyB0byB0cmlnZ2VyIHRoZQorICogYXBwcm9wcmlhdGUgKEVOVEVSRUQgb3IgRVhJVEVEKSB0cmFuc2l0aW9uIGZvciBldmVyeSBHZW9mZW5jZSBpdCBrbm93cyBhYm91dC4KKyAqIEJ5IGRlZmF1bHQsIGFsbCB0aGUgR2VvZmVuY2VzIHdpbGwgYmUgaW4gdGhlIFVua25vd24gc3RhdGUuCisgKgorICogV2hlbiB0aGUgR05TUyBzeXN0ZW0gaXMgdW5hdmFpbGFibGUsIGduc3NHZW9mZW5jZVN0YXR1c0NiIG11c3QgYmUKKyAqIGNhbGxlZCB0byBpbmZvcm0gdGhlIHVwcGVyIGxheWVycyBvZiB0aGUgc2FtZS4gU2ltaWxhcmx5LCB3aGVuIGl0IGJlY29tZXMKKyAqIGF2YWlsYWJsZSB0aGUgY2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQuIFRoaXMgaXMgYSBnbG9iYWwgc3RhdGUgd2hpbGUgdGhlCisgKiBVTktOT1dOIHRyYW5zaXRpb24gZGVzY3JpYmVkIGFib3ZlIGlzIHBlciBnZW9mZW5jZS4KKyAqCisgKiBBbiBpbXBvcnRhbnQgYXNwZWN0IHRvIG5vdGUgaXMgdGhhdCB1c2VycyBvZiB0aGlzIEFQSSAoZnJhbWV3b3JrKSwgd2lsbCB1c2UKKyAqIG90aGVyIHN1YnN5c3RlbXMgbGlrZSB3aWZpLCBzZW5zb3JzLCBjZWxsIHRvIGhhbmRsZSBVbmtub3duIGNhc2UgYW5kCisgKiBob3BlZnVsbHkgcHJvdmlkZSBhIGRlZmluaXRpdmUgc3RhdGUgdHJhbnNpdGlvbiB0byB0aGUgdGhpcmQgcGFydHkKKyAqIGFwcGxpY2F0aW9uLiBHTlNTIEdlb2ZlbmNlIHdpbGwganVzdCBiZSBhIHNpZ25hbCBpbmRpY2F0aW5nIHdoYXQgdGhlIEdOU1MKKyAqIHN1YnN5c3RlbSBrbm93cyBhYm91dCB0aGUgR2VvZmVuY2UuCisgKgorICovCisKK2ludGVyZmFjZSBJR25zc0dlb2ZlbmNlQ2FsbGJhY2sgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlVHJhbnNpdGlvbiA6IGludDMyX3QgeworICAgICAgICBFTlRFUkVEICAgPSAoMSA8PCAwTCksCisgICAgICAgIEVYSVRFRCAgICA9ICgxIDw8IDFMKSwKKyAgICAgICAgVU5DRVJUQUlOID0gKDEgPDwgMkwpLAorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0dFT0ZFTkNFXyIpCisgICAgZW51bSBHZW9mZW5jZUF2YWlsYWJpbGl0eSA6IGludDMyX3QgeworICAgICAgICBVTkFWQUlMQUJMRSA9ICgxIDw8IDBMKSwKKyAgICAgICAgQVZBSUxBQkxFICAgPSAoMSA8PCAxTCksCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlU3RhdHVzIDogaW50MzJfdCB7CisgICAgICAgIE9QRVJBVElPTl9TVUNDRVNTICAgICAgICA9IDAsCisgICAgICAgIEVSUk9SX1RPT19NQU5ZX0dFT0ZFTkNFUyA9IC0xMDAsCisgICAgICAgIEVSUk9SX0lEX0VYSVNUUyAgICAgICAgICA9IC0xMDEsCisgICAgICAgIEVSUk9SX0lEX1VOS05PV04gICAgICAgICA9IC0xMDIsCisgICAgICAgIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiA9IC0xMDMsCisgICAgICAgIEVSUk9SX0dFTkVSSUMgICAgICAgICAgICA9IC0xNDkKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2VvZmVuY2UgdHJhbnNpdGlvbi4KKyAgICAgKiBUaGUgY2FsbGJhY2sgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBpbiB0aGF0CisgICAgICogcGFydGljdWxhciB0cmFuc2l0aW9uLiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBvbmx5IGluCisgICAgICogRU5URVJFRCB0cmFuc2l0aW9uLCB0aGVuIHRoZSBjYWxsYmFjayBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCB0aGUgRVhJVEVECisgICAgICogdHJhbnNpdGlvbi4KKyAgICAgKgorICAgICAqIElNUE9SVEFOVDogSWYgYSB0cmFuc2l0aW9uIGlzIHRyaWdnZXJlZCByZXN1bHRpbmcgaW4gdGhpcyBjYWxsYmFjaywgdGhlCisgICAgICogR05TUyBzdWJzeXN0ZW0gd2lsbCB3YWtlIHVwIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzb3IsIGlmIGl0cyBpbiBzdXNwZW5kCisgICAgICogc3RhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBUaGUgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhZGRHZW9mZW5jZUFyZWEuCisgICAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBjdXJyZW50IEdOU1MgbG9jYXRpb24uCisgICAgICogQHBhcmFtIHRyYW5zaXRpb24gQ2FuIGJlIG9uZSBvZiBFTlRFUkVELCBFWElURUQgb3IgVU5DRVJUQUlOLgorICAgICAqIEBwYXJhbSB0aW1lc3RhbXAgVGltZXN0YW1wIHdoZW4gdGhlIHRyYW5zaXRpb24gd2FzIGRldGVjdGVkLgorICAgICAqCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlVHJhbnNpdGlvbkNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR25zc0xvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICBHZW9mZW5jZVRyYW5zaXRpb24gdHJhbnNpdGlvbiwgR25zc1V0Y1RpbWUgdGltZXN0YW1wKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgR05TUyBzeXN0ZW0gZm9yCisgICAgICogZ2VvZmVuY2luZyBtb25pdG9yaW5nLiBJZiB0aGUgR05TUyBzeXN0ZW0gZGV0ZXJtaW5lcyB0aGF0IGl0IGNhbm5vdCBtb25pdG9yCisgICAgICogZ2VvZmVuY2VzIGJlY2F1c2Ugb2YgbGFjayBvZiByZWxpYWJpbGl0eSBvciB1bmF2YWlsYWJpbGl0eSBvZiB0aGUgR05TUworICAgICAqIHNpZ25hbHMsIGl0IHdpbGwgY2FsbCB0aGlzIGNhbGxiYWNrIHdpdGggVU5BVkFJTEFCTEUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyAtIFVOQVZBSUxBQkxFIG9yIEFWQUlMQUJMRS4KKyAgICAgKiBAcGFyYW0gbGFzdExvY2F0aW9uIC0gTGFzdCBrbm93biBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VTdGF0dXNDYihHZW9mZW5jZUF2YWlsYWJpbGl0eSBzdGF0dXMsIEduc3NMb2NhdGlvbiBsYXN0TG9jYXRpb24pOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWRkR2VvZmVuY2UgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgT1BFUkFUSU9OX1NVQ0NFU1MgaWYgdGhlIGdlb2ZlbmNlCisgICAgICogYWRkIHdhcyBzdWNjZXNzZnVsLiBXaWxsIGJlIEVSUk9SX1RPT19NQU5ZX0dFT0ZFTkNFUyBpZiB0aGUKKyAgICAgKiBnZW9mZW5jZSBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfRVhJU1RTIGlmIGdlb2ZlbmNlIHdpdGggaWQgYWxyZWFkeSBleGlzdHMuCisgICAgICogV2lsbCBiZSBFUlJPUl9JTlZBTElEX1RSQU5TSVRJT04gaWYgdGhlIG1vbml0b3JUcmFuc2l0aW9uIGNvbnRhaW5zIGFuCisgICAgICogaW52YWxpZCB0cmFuc2l0aW9uLgorICAgICAqIFdpbGwgYmUgRVJST1JfR0VORVJJQyBmb3Igb3RoZXIgZXJyb3JzLgorICAgICAqLworICAgIGduc3NHZW9mZW5jZUFkZENiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIHJlbW92ZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBJZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIHJldHVybiBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZCBhbmQKKyAgICAgKiBFUlJPUl9HRU5FUklDIGZvciBvdGhlcnMuCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlUmVtb3ZlQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBHZW9mZW5jZVN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGF1c2VHZW9mZW5jZSBjYWxsLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgSWQgb2YgdGhlIGdlb2ZlbmNlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgV2lsbCBiZSBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZC4gV2lsbCBiZQorICAgICAqIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiB3aGVuIG1vbml0b3JUcmFuc2l0aW9ucyBpcyBpbnZhbGlkLgorICAgICAqIFdpbGwgYmUgRVJST1JfR0VORVJJQyBmb3Igb3RoZXIgZXJyIGVycm9ycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VQYXVzZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc3VtZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCAtIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgT1BFUkFUSU9OX1NVQ0NFU1MgaWYgc3VjY2Vzc2Z1bC4KKyAgICAgKiBXaWxsIGJlIEVSUk9SX0lEX1VOS05PV04gZm9yIGludmFsaWQgaWQgYW5kIEVSUk9SX0dFTkVSSUMgZm9yIG90aGVycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VSZXN1bWVDYihpbnQzMl90IGdlb2ZlbmNlSWQsIEdlb2ZlbmNlU3RhdHVzIHN0YXR1cyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmhhbCBiL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYyMzU1YQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oYWwKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElHbnNzR2VvZmVuY2VDYWxsYmFjazsKKworLyoqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBHZW9mZW5jaW5nIHN1cHBvcnQgKi8KK2ludGVyZmFjZSBJR25zc0dlb2ZlbmNpbmcgeworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBnZW9mZW5jZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBJR25zc0dlb2ZlbmNlQ2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzR2VvZmVuY2VDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBnZW9mZW5jZSBhcmVhLiBUaGlzIGFwaSBjdXJyZW50bHkgc3VwcG9ydHMgY2lyY3VsYXIgZ2VvZmVuY2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIGZvciB0aGUgZ2VvZmVuY2UuIElmIGEgZ2VvZmVuY2Ugd2l0aCB0aGlzIGlkCisgICAgICogYWxyZWFkeSBleGlzdHMsIGFuIGVycm9yIHZhbHVlIChFUlJPUl9JRF9FWElTVFMpIG11c3QgYmUgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGxhdGl0dWRlRGVncmVlcyBUaGUgbGF0aXR1ZGUoaW4gZGVncmVlcykgZm9yIHRoZSBnZW9mZW5jZSBsYXN0VHJhbnNpdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9uZ3RpdHVkZURlZ3JlZXMgVGhlIGxvbmdpdHVkZShpbiBkZWdyZWVzKSBmb3IgdGhlIGdlb2ZlbmNlIGxhc3RUcmFuc2l0aW9uLgorICAgICAqIEBwYXJhbSByYWRpdXNNZXRlcnMgVGhlIHJhZGl1cyhpbiBtZXRlcnMpIGZvciB0aGUgZ2VvZmVuY2UgbGFzdFRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGxhc3RUcmFuc2l0aW9uIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBnZW9mZW5jZS4gRm9yIGV4YW1wbGUsIGlmCisgICAgICogdGhlIHN5c3RlbSBhbHJlYWR5IGtub3dzIHRoYXQgdGhlIHVzZXIgaXMgaW5zaWRlIHRoZSBnZW9mZW5jZSwgdGhpcyB3aWxsCisgICAgICogYmUgc2V0IHRvIEVOVEVSRUQuIEluIG1vc3QgY2FzZXMsIGl0IHdpbGwgYmUgVU5DRVJUQUlOLgorICAgICAqIEBwYXJhbSBtb25pdG9yVHJhbnNpdGlvbnMgLSBXaGljaCB0cmFuc2l0aW9ucyB0byBtb25pdG9yLiBCaXR3aXNlIE9SIG9mCisgICAgICogRU5URVJFRCwgRVhJVEVEIGFuZCBVTkNFUlRBSU4uCisgICAgICogQHBhcmFtIG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMgLSBEZWZpbmVzIHRoZSBiZXN0LWVmZm9ydCBkZXNjcmlwdGlvbgorICAgICAqIG9mIGhvdyBzb29uIG11c3QgdGhlIGNhbGxiYWNrIGJlIGNhbGxlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoZSBHZW9mZW5jZSBpcyB0cmlnZ2VyZWQuIEZvciBpbnN0YW5jZSwgaWYgc2V0IHRvIDEwMDAgbWlsbHNlY29uZHMKKyAgICAgKiB3aXRoIEVOVEVSRUQsIHRoZSBjYWxsYmFjayBtdXN0IGJlIGNhbGxlZCAxMDAwIG1pbGxpc2Vjb25kcyB3aXRoaW4gZW50ZXJpbmcKKyAgICAgKiB0aGUgZ2VvZmVuY2UuIFRoaXMgcGFyYW1ldGVyIGlzIGRlZmluZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIE5PVEU6IFRoaXMgaXMgbm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggdGhlIHJhdGUgdGhhdCB0aGUgR05TUyBpcyBwb2xsZWQgYXQuCisgICAgICogSXQgaXMgYWNjZXB0YWJsZSB0byBkeW5hbWljYWxseSB2YXJ5IHRoZSByYXRlIG9mIHNhbXBsaW5nIHRoZSBHTlNTIGZvcgorICAgICAqIHBvd2VyLXNhdmluZyByZWFzb25zOyB0aHVzIHRoZSByYXRlIG9mIHNhbXBsaW5nIG1heSBiZSBmYXN0ZXIgb3Igc2xvd2VyCisgICAgICogdGhhbiB0aGlzLgorICAgICAqIEBwYXJhbSB1bmtub3duVGltZXJNcyAtIFRoZSB0aW1lIGxpbWl0IGFmdGVyIHdoaWNoIHRoZSBVTkNFUlRBSU4gdHJhbnNpdGlvbgorICAgICAqIG11c3QgYmUgdHJpZ2dlcmVkLiBUaGlzIHBhcmFtZXRlciBpcyBkZWZpbmVkIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBhZGRHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgZG91YmxlIHJhZGl1c01ldGVycywgR2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICAgICAgYml0ZmllbGQ8SUduc3NHZW9mZW5jZUNhbGxiYWNrLkdlb2ZlbmNlVHJhbnNpdGlvbj4gbW9uaXRvclRyYW5zaXRpb25zLAorICAgICAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgICAgIHVpbnQzMl90IHVua25vd25UaW1lck1zKTsKKworICAgIC8qKgorICAgICAqIFBhdXNlIG1vbml0b3JpbmcgYSBwYXJ0aWN1bGFyIGdlb2ZlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIGZvciB0aGUgZ2VvZmVuY2UuCisgICAgICovCisgICAgcGF1c2VHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpOworCisgICAgLyoqCisgICAgICogUmVzdW1lIG1vbml0b3JpbmcgYSBwYXJ0aWN1bGFyIGdlb2ZlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgLSBUaGUgaWQgZm9yIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gbW9uaXRvclRyYW5zaXRpb25zIFNwZWNpZmllcyB3aGljaCB0cmFuc2l0aW9ucyB0byBtb25pdG9yLgorICAgICAqIEl0IGNhbiBiZSBhIGJpdHdpc2UgT1Igb2YgRU5URVJFRCwgRVhJVEVEIGFuZAorICAgICAqIFVOQ0VSVEFJTi4gVGhpcyBzdXBlcnNlZGVzIHRoZSB2YWx1ZSBhc3NvY2lhdGVkCisgICAgICogcHJvdmlkZWQgaW4gdGhlIGFkZEdlb2ZlbmNlQXJlYSBjYWxsLgorICAgICAqLworICAgIHJlc3VtZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgIGJpdGZpZWxkPElHbnNzR2VvZmVuY2VDYWxsYmFjay5HZW9mZW5jZVRyYW5zaXRpb24+IG1vbml0b3JUcmFuc2l0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBnZW9mZW5jZSBhcmVhLiBBZnRlciB0aGUgZnVuY3Rpb24gcmV0dXJucywgbm8gbm90aWZpY2F0aW9ucworICAgICAqIG11c3QgYmUgc2VudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIFRoZSBpZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICovCisgICAgcmVtb3ZlR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmhhbCBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZDgzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmhhbApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCitpbXBvcnQgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBNZWFzdXJlbWVudHMgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElHbnNzTWVhc3VyZW1lbnQgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTUVBU1VSRU1FTlRfIikKKyAgICBlbnVtIEduc3NNZWFzdXJlbWVudFN0YXR1cyA6IGludDMyX3QgeworICAgICAgICBTVUNDRVNTID0gMCwKKyAgICAgICAgRVJST1JfQUxSRUFEWV9JTklUID0gLTEwMCwKKyAgICAgICAgRVJST1JfR0VORVJJQyA9IC0xMDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGludGVyZmFjZSBhbmQgcmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcyB3aXRoIHRoZSBIQUwuCisgICAgICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gJ3NldENhbGxiYWNrJyB0aGUgSEFMIG11c3QgYmVnaW4gdG8gcHJvdmlkZSB1cGRhdGVzIGF0CisgICAgICogYW4gYXZlcmFnZSBvdXRwdXQgcmF0ZSBvZiAxSHogKG9jY2FzaW9uYWwKKyAgICAgKiBpbnRyYS1tZWFzdXJlbWVudCB0aW1lIG9mZnNldHMgaW4gdGhlIHJhbmdlIGZyb20gMC0yMDAwbXNlYyBjYW4gYmUKKyAgICAgKiB0b2xlcmF0ZWQuKQorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEhhbmRsZSB0byBHbnNzTWVhc3VyZW1lbnQgY2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBpbml0UmV0IFJldHVybnMgU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFJldHVybnMgRVJST1JfQUxSRUFEWV9JTklUIGlmIGEgY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbgorICAgICAqIHJlZ2lzdGVyZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgY2FsbCB0byAnY2xvc2UnLgorICAgICAqIFJldHVybnMgRVJST1JfR0VORVJJQyBmb3IgYW55IG90aGVyIGVycm9yLiBUaGUgSEFMIG11c3QKKyAgICAgKiBub3QgZ2VuZXJhdGUgYW55IG90aGVyIHVwZGF0ZXMgdXBvbiByZXR1cm5pbmcgdGhpcyBlcnJvciBjb2RlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChHbnNzTWVhc3VyZW1lbnRTdGF0dXMgaW5pdFJldCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyB1cGRhdGVzIGZyb20gdGhlIEhBTCwgYW5kIHVucmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcy4KKyAgICAgKiBBZnRlciBhIGNhbGwgdG8gY2xvc2UoKSwgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MgbXVzdCBiZQorICAgICAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgSEFMLgorICAgICAqIElmIGNsb3NlKCkgaXMgaW52b2tlZCB3aXRob3V0IGEgcHJldmlvdXMgc2V0Q2FsbGJhY2ssIHRoaXMgZnVuY3Rpb24gbXVzdCBwZXJmb3JtCisgICAgICogbm8gd29yay4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAzMTY2NAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw2MDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHJlcG9ydCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgSEFMLiAqLworaW50ZXJmYWNlIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogRmxhZ3MgdG8gaW5kaWNhdGUgd2hhdCBmaWVsZHMgaW4gR25zc0Nsb2NrIGFyZSB2YWxpZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19DTE9DS18iKQorICAgIGVudW0gR25zc0Nsb2NrRmxhZ3MgOiB1aW50MTZfdCB7CisgICAgICAgIC8qKiBBIHZhbGlkICdsZWFwIHNlY29uZCcgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0xFQVBfU0VDT05EICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ3RpbWUgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19USU1FX1VOQ0VSVEFJTlRZICAgPSAxIDw8IDEsCisgICAgICAgIC8qKiBBIHZhbGlkICdmdWxsIGJpYXMnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19GVUxMX0JJQVMgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIC8qKiBBIHZhbGlkICdiaWFzJyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQklBUyAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICAvKiogQSB2YWxpZCAnYmlhcyB1bmNlcnRhaW50eScgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0JJQVNfVU5DRVJUQUlOVFkgICA9IDEgPDwgNCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2RyaWZ0JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfRFJJRlQgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgICAgICAvKiogQSB2YWxpZCAnZHJpZnQgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19EUklGVF9VTkNFUlRBSU5UWSAgPSAxIDw8IDYKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgdG8gaW5kaWNhdGUgd2hhdCBmaWVsZHMgaW4gR25zc01lYXN1cmVtZW50IGFyZSB2YWxpZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19NRUFTVVJFTUVOVF8iKQorICAgIGVudW0gR25zc01lYXN1cmVtZW50RmxhZ3MgOiB1aW50MzJfdCB7CisgICAgICAgIC8qKiBBIHZhbGlkICdzbnInIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19TTlIgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgZnJlcXVlbmN5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgICAgICAgICAgPSAxIDw8IDksCisgICAgICAgIC8qKiBBIHZhbGlkICdjYXJyaWVyIGN5Y2xlcycgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0NBUlJJRVJfQ1lDTEVTICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgcGhhc2UnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19DQVJSSUVSX1BIQVNFICAgICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIC8qKiBBIHZhbGlkICdjYXJyaWVyIHBoYXNlIHVuY2VydGFpbnR5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9QSEFTRV9VTkNFUlRBSU5UWSAgPSAxIDw8IDEyLAorICAgICAgICAvKiogQSB2YWxpZCBhdXRvbWF0aWMgZ2FpbiBjb250cm9sIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19BVVRPTUFUSUNfR0FJTl9DT05UUk9MICAgICA9IDEgPDwgMTMKKyAgICB9OworCisgICAgLyoqCisgICAgICogRW51bWVyYXRpb24gb2YgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIEdOU1MgTWVhc3VyZW1lbnQncyBtdWx0aXBhdGgKKyAgICAgKiBpbmRpY2F0b3IuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfTVVMVElQQVRIXyIpCisgICAgZW51bSBHbnNzTXVsdGlwYXRoSW5kaWNhdG9yIDogdWludDhfdCB7CisgICAgICAgIC8qKiBUaGUgaW5kaWNhdG9yIGlzIG5vdCBhdmFpbGFibGUgb3IgdW5rbm93bi4gKi8KKyAgICAgICAgSU5ESUNBVE9SX1VOS05PV04gICAgICA9IDAsCisgICAgICAgIC8qKiBUaGUgbWVhc3VyZW1lbnQgaXMgaW5kaWNhdGVkIHRvIGJlIGFmZmVjdGVkIGJ5IG11bHRpcGF0aC4gKi8KKyAgICAgICAgSU5ESUNBVE9SX1BSRVNFTlQgICAgICA9IDEsCisgICAgICAgIC8qKiBUaGUgbWVhc3VyZW1lbnQgaXMgaW5kaWNhdGVkIHRvIGJlIG5vdCBhZmZlY3RlZCBieSBtdWx0aXBhdGguICovCisgICAgICAgIElORElDQVRJT1JfTk9UX1BSRVNFTlQgPSAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIEdOU1MgbWVhc3VyZW1lbnQgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgZXhwZWN0ZWQgYmVoYXZpb3IgaGVyZSBpcyBmb3IgR05TUyBIQUwgdG8gc2V0IGFsbCB0aGUgZmxhZ3MgdGhhdCBhcHBsaWVzLgorICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgc3RhdGUgZm9yIGEgc2F0ZWxsaXRlIGlzIG9ubHkgQy9BIGNvZGUgbG9ja2VkIGFuZCBiaXQKKyAgICAgKiBzeW5jaHJvbml6ZWQsIGFuZCB0aGVyZSBpcyBzdGlsbCBtaWxsaXNlY29uZCBhbWJpZ3VpdHksIHRoZSBzdGF0ZSBtdXN0IGJlCisgICAgICogc2V0IGFzOgorICAgICAqCisgICAgICogU1RBVEVfQ09ERV9MT0NLIHwgU1RBVEVfQklUX1NZTkMgfCAgU1RBVEVfTVNFQ19BTUJJR1VPVVMKKyAgICAgKgorICAgICAqIElmIEdOU1MgaXMgc3RpbGwgc2VhcmNoaW5nIGZvciBhIHNhdGVsbGl0ZSwgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUgbXVzdCBiZQorICAgICAqIHNldCB0byBTVEFURV9VTktOT1dOKDApLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01FQVNVUkVNRU5UXyIpCisgICAgZW51bSBHbnNzTWVhc3VyZW1lbnRTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICAgICAgU1RBVEVfVU5LTk9XTiAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgIFNUQVRFX0NPREVfTE9DSyAgICAgICAgICAgICAgPSAxIDw8IDAsCisgICAgICAgIFNUQVRFX0JJVF9TWU5DICAgICAgICAgICAgICAgPSAxIDw8IDEsCisgICAgICAgIFNUQVRFX1NVQkZSQU1FX1NZTkMgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIFNUQVRFX1RPV19ERUNPREVEICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFNUQVRFX01TRUNfQU1CSUdVT1VTICAgICAgICAgPSAxIDw8IDQsCisgICAgICAgIFNUQVRFX1NZTUJPTF9TWU5DICAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIFNUQVRFX0dMT19TVFJJTkdfU1lOQyAgICAgICAgPSAxIDw8IDYsCisgICAgICAgIFNUQVRFX0dMT19UT0RfREVDT0RFRCAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIFNUQVRFX0JEU19EMl9CSVRfU1lOQyAgICAgICAgPSAxIDw8IDgsCisgICAgICAgIFNUQVRFX0JEU19EMl9TVUJGUkFNRV9TWU5DICAgPSAxIDw8IDksCisgICAgICAgIFNUQVRFX0dBTF9FMUJDX0NPREVfTE9DSyAgICAgPSAxIDw8IDEwLAorICAgICAgICBTVEFURV9HQUxfRTFDXzJORF9DT0RFX0xPQ0sgID0gMSA8PCAxMSwKKyAgICAgICAgU1RBVEVfR0FMX0UxQl9QQUdFX1NZTkMgICAgICA9IDEgPDwgMTIsCisgICAgICAgIFNUQVRFX1NCQVNfU1lOQyAgICAgICAgICAgICAgPSAxIDw8IDEzLAorICAgICAgICBTVEFURV9UT1dfS05PV04gICAgICAgICAgICAgID0gMSA8PCAxNCwKKyAgICAgICAgU1RBVEVfR0xPX1RPRF9LTk9XTiAgICAgICAgICA9IDEgPDwgMTUsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIEFjY3VtdWxhdGVkIERlbHRhIFJhbmdlJ3Mgc3RhdGVzLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTXyIpCisgICAgZW51bSBHbnNzQWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgOiB1aW50MTZfdCB7CisgICAgICAgIEFEUl9TVEFURV9VTktOT1dOICAgID0gMCwKKyAgICAgICAgQURSX1NUQVRFX1ZBTElEICAgICAgPSAxIDw8IDAsCisgICAgICAgIEFEUl9TVEFURV9SRVNFVCAgICAgID0gMSA8PCAxLAorICAgICAgICBBRFJfU1RBVEVfQ1lDTEVfU0xJUCA9IDEgPDwgMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhbiBlc3RpbWF0ZSBvZiB0aGUgR05TUyBjbG9jayB0aW1lLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzQ2xvY2sgeworICAgICAgICAvKioKKyAgICAgICAgICogQSBzZXQgb2YgZmxhZ3MgaW5kaWNhdGluZyB0aGUgdmFsaWRpdHkgb2YgdGhlIGZpZWxkcyBpbiB0aGlzIGRhdGEKKyAgICAgICAgICogc3RydWN0dXJlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc0Nsb2NrRmxhZ3M+IGduc3NDbG9ja0ZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBMZWFwIHNlY29uZCBkYXRhLgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIHV0Y1RpbWVOcyA9IHRpbWVOcyAtIChmdWxsQmlhc05zICsgYmlhc05zKSAtIGxlYXBTZWNvbmQgKgorICAgICAgICAgKiAgICAgIDEsMDAwLDAwMCwwMDAKKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhpcyBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19MRUFQX1NFQ09ORC4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3QgbGVhcFNlY29uZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIEdOU1MgcmVjZWl2ZXIgaW50ZXJuYWwgY2xvY2sgdmFsdWUuIFRoaXMgaXMgdGhlIGxvY2FsIGhhcmR3YXJlIGNsb2NrCisgICAgICAgICAqIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgbG9jYWwgaGFyZHdhcmUgY2xvY2ssIHRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgbW9ub3RvbmljYWxseQorICAgICAgICAgKiBpbmNyZWFzaW5nIHdoaWxlIHRoZSBoYXJkd2FyZSBjbG9jayByZW1haW5zIHBvd2VyZWQgb24uIChGb3IgdGhlIGNhc2Ugb2YgYQorICAgICAgICAgKiBIVyBjbG9jayB0aGF0IGlzIG5vdCBjb250aW51b3VzbHkgb24sIHNlZSB0aGUKKyAgICAgICAgICogaHdDbG9ja0Rpc2NvbnRpbnVpdHlDb3VudCBmaWVsZCkuIFRoZSByZWNlaXZlcidzIGVzdGltYXRlIG9mIEdOU1MgdGltZQorICAgICAgICAgKiBjYW4gYmUgZGVyaXZlZCBieSBzdWJ0cmFjdGluZyB0aGUgc3VtIG9mIGZ1bGxCaWFzTnMgYW5kIGJpYXNOcyAod2hlbgorICAgICAgICAgKiBhdmFpbGFibGUpIGZyb20gdGhpcyB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBHTlNTIHRpbWUgbXVzdCBiZSB0aGUgYmVzdCBlc3RpbWF0ZSBvZiBjdXJyZW50IEdOU1MgdGltZQorICAgICAgICAgKiB0aGF0IEdOU1MgcmVjZWl2ZXIgY2FuIGFjaGlldmUuCisgICAgICAgICAqCisgICAgICAgICAqIFN1Yi1uYW5vc2Vjb25kIGFjY3VyYWN5IGNhbiBiZSBwcm92aWRlZCBieSBtZWFucyBvZiB0aGUgJ2JpYXNOcycgZmllbGQuCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgdGltZVVuY2VydGFpbnR5TnMgaW4gaXQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgZmllbGQgaXMgbWFuZGF0b3J5LgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCB0aW1lTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9jaydzIHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqIFRoZSB1bmNlcnRhaW50eSBpcyByZXByZXNlbnRlZCBhcyBhbiBhYnNvbHV0ZSAoc2luZ2xlIHNpZGVkKSB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX1RJTUVfVU5DRVJUQUlOVFkuIFRocyB2YWx1ZSBpcyBpZGVhbGx5IHplcm8sIGFzIHRoZSB0aW1lCisgICAgICAgICAqICdsYXRjaGVkJyBieSB0aW1lTnMgaXMgZGVmaW5lZCBhcyB0aGUgcmVmZXJlbmNlIGNsb2NrIHZzLiB3aGljaCBhbGwKKyAgICAgICAgICogb3RoZXIgdGltZXMgKGFuZCBjb3JyZXNwb25kaW5nIHVuY2VydGFpbnRpZXMpIGFyZSBtZWFzdXJlZC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB0aW1lVW5jZXJ0YWludHlOczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBoYXJkd2FyZSBjbG9jayAoJ3RpbWUnIGZpZWxkKSBpbnNpZGUgR05TUyByZWNlaXZlcgorICAgICAgICAgKiBhbmQgdGhlIHRydWUgR05TUyB0aW1lIHNpbmNlIDAwMDBaLCBKYW51YXJ5IDYsIDE5ODAsIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIGxvY2FsIGVzdGltYXRlIG9mIEdOU1MgdGltZSA9IHRpbWVOcyAtIChmdWxsQmlhc05zICsgYmlhc05zKQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIgaGFzIGVzdGltYXRlZCBHTlNTIHRpbWUuIElmIHRoZQorICAgICAgICAgKiBjb21wdXRlZCB0aW1lIGlzIGZvciBhIG5vbi1HTlNTIGNvbnN0ZWxsYXRpb24sIHRoZSB0aW1lIG9mZnNldCBvZiB0aGF0CisgICAgICAgICAqIGNvbnN0ZWxsYXRpb24gdG8gR05TUyBoYXMgdG8gYmUgYXBwbGllZCB0byBmaWxsIHRoaXMgdmFsdWUuIFRoZSBlcnJvcgorICAgICAgICAgKiBlc3RpbWF0ZSBmb3IgdGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgYmlhc05zIGlzIHRoZSBiaWFzVW5jZXJ0YWludHlOcywKKyAgICAgICAgICogYW5kIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHVzaW5nIHRoaXMgdW5jZXJ0YWludHkgKGl0IGNhbiBiZSB2ZXJ5CisgICAgICAgICAqIGxhcmdlIGJlZm9yZSB0aGUgR05TUyB0aW1lIGhhcyBiZWVuIHNvbHZlZCBmb3IuKSBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUKKyAgICAgICAgICogZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluIEhBU19GVUxMX0JJQVMuCisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IGZ1bGxCaWFzTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1Yi1uYW5vc2Vjb25kIGJpYXMuCisgICAgICAgICAqIFRoZSBlcnJvciBlc3RpbWF0ZSBmb3IgdGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgZnVsbEJpYXNOcyBpcyB0aGUKKyAgICAgICAgICogYmlhc1VuY2VydGFpbnR5TnMuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4gSEFTX0JJQVMuIElmIEdOU1MKKyAgICAgICAgICogaGFzIGNvbXB1dGVkIGEgcG9zaXRpb24gZml4LiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIgaGFzCisgICAgICAgICAqIGVzdGltYXRlZCBHTlNTIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgYmlhc05zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9jYWwgZXN0aW1hdGUgb2YgR05TUyB0aW1lIChjbG9jaworICAgICAgICAgKiBiaWFzKSBpbiBuYW5vc2Vjb25kcy4gVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlCisgICAgICAgICAqIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19CSUFTX1VOQ0VSVEFJTlRZLiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIKKyAgICAgICAgICogaGFzIGVzdGltYXRlZCBHTlNTIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgYmlhc1VuY2VydGFpbnR5TnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbG9jaydzIGRyaWZ0IGluIG5hbm9zZWNvbmRzIChwZXIgc2Vjb25kKS4KKyAgICAgICAgICoKKyAgICAgICAgICogQSBwb3NpdGl2ZSB2YWx1ZSBtZWFucyB0aGF0IHRoZSBmcmVxdWVuY3kgaXMgaGlnaGVyIHRoYW4gdGhlIG5vbWluYWwKKyAgICAgICAgICogZnJlcXVlbmN5LCBhbmQgdGhhdCB0aGUgKGZ1bGxCaWFzTnMgKyBiaWFzTnMpIGlzIGdyb3dpbmcgbW9yZSBwb3NpdGl2ZQorICAgICAgICAgKiBvdmVyIHRpbWUuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgJ2RyaWZ0IHVuY2VydGFpbnR5JyBpbiBpdC4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbiBIQVNfRFJJRlQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgaXMgbWFuZGF0b3J5IGlmIHRoZSByZWNlaXZlciBoYXMgZXN0aW1hdGVkIEdOU1MgdGltZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBkcmlmdE5zcHM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9jaydzIGRyaWZ0IGluIG5hbm9zZWNvbmRzIChwZXIKKyAgICAgICAgICogc2Vjb25kKS4KKyAgICAgICAgICogVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19EUklGVF9VTkNFUlRBSU5UWS4gSWYgR05TUyBoYXMgY29tcHV0ZWQgYSBwb3NpdGlvbiBmaXggdGhpcworICAgICAgICAgKiBmaWVsZCBpcyBtYW5kYXRvcnkgYW5kIG11c3QgYmUgcG9wdWxhdGVkLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGRyaWZ0VW5jZXJ0YWludHlOc3BzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGVuIHRoZXJlIGFyZSBhbnkgZGlzY29udGludWl0aWVzIGluIHRoZSBIVyBjbG9jaywgdGhpcyBmaWVsZCBpcworICAgICAgICAgKiBtYW5kYXRvcnkuCisgICAgICAgICAqCisgICAgICAgICAqIEEgImRpc2NvbnRpbnVpdHkiIGlzIG1lYW50IHRvIGNvdmVyIHRoZSBjYXNlIG9mIGEgc3dpdGNoIGZyb20gb25lIHNvdXJjZQorICAgICAgICAgKiBvZiBjbG9jayB0byBhbm90aGVyLiAgQSBzaW5nbGUgZnJlZS1ydW5uaW5nIGNyeXN0YWwgb3NjaWxsYXRvciAoWE8pCisgICAgICAgICAqIHdpbGwgZ2VuZXJhbGx5IG5vdCBoYXZlIGFueSBkaXNjb250aW51aXRpZXMsIGFuZCB0aGlzIGNhbiBiZSBzZXQgYW5kCisgICAgICAgICAqIGxlZnQgYXQgMC4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYsIGhvd2V2ZXIsIHRoZSB0aW1lTnMgdmFsdWUgKEhXIGNsb2NrKSBpcyBkZXJpdmVkIGZyb20gYSBjb21wb3NpdGUgb2YKKyAgICAgICAgICogc291cmNlcywgdGhhdCBpcyBub3QgYXMgc21vb3RoIGFzIGEgdHlwaWNhbCBYTywgb3IgaXMgb3RoZXJ3aXNlIHN0b3BwZWQgJgorICAgICAgICAgKiByZXN0YXJ0ZWQsIHRoZW4gdGhpcyB2YWx1ZSBzaGFsbCBiZSBpbmNyZW1lbnRlZCBlYWNoIHRpbWUgYSBkaXNjb250aW51aXR5CisgICAgICAgICAqIG9jY3Vycy4gIChFLmcuIHRoaXMgdmFsdWUgY2FuIHN0YXJ0IGF0IHplcm8gYXQgZGV2aWNlIGJvb3QtdXAgYW5kCisgICAgICAgICAqIGluY3JlbWVudCBlYWNoIHRpbWUgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gY2xvY2sgY29udGludWl0eS4gSW4gdGhlCisgICAgICAgICAqIHVubGlrZWx5IGV2ZW50IHRoYXQgdGhpcyB2YWx1ZSByZWFjaGVzIGZ1bGwgc2NhbGUsIHJvbGxvdmVyIChub3QKKyAgICAgICAgICogY2xhbXBpbmcpIGlzIHJlcXVpcmVkLCBzdWNoIHRoYXQgdGhpcyB2YWx1ZSBjb250aW51ZXMgdG8gY2hhbmdlLCBkdXJpbmcKKyAgICAgICAgICogc3Vic2VxdWVudCBkaXNjb250aW51aXR5IGV2ZW50cy4pCisgICAgICAgICAqCisgICAgICAgICAqIFdoaWxlIHRoaXMgbnVtYmVyIHN0YXlzIHRoZSBzYW1lLCBiZXR3ZWVuIEduc3NDbG9jayByZXBvcnRzLCBpdCBjYW4gYmUKKyAgICAgICAgICogc2FmZWx5IGFzc3VtZWQgdGhhdCB0aGUgdGltZU5zIHZhbHVlIGhhcyBiZWVuIHJ1bm5pbmcgY29udGludW91c2x5LCBlLmcuCisgICAgICAgICAqIGRlcml2ZWQgZnJvbSBhIHNpbmdsZSwgaGlnaCBxdWFsaXR5IGNsb2NrIChYTyBsaWtlLCBvciBiZXR0ZXIsIHRoYXQgaXMKKyAgICAgICAgICogdHlwaWNhbGx5IHVzZWQgZHVyaW5nIGNvbnRpbnVvdXMgR05TUyBzaWduYWwgc2FtcGxpbmcuKQorICAgICAgICAgKgorICAgICAgICAgKiBJdCBpcyBleHBlY3RlZCwgZXNwLiBkdXJpbmcgcGVyaW9kcyB3aGVyZSB0aGVyZSBhcmUgZmV3IEdOU1Mgc2lnbmFscworICAgICAgICAgKiBhdmFpbGFibGUsIHRoYXQgdGhlIEhXIGNsb2NrIGJlIGRpc2NvbnRpbnVpdHktZnJlZSBhcyBsb25nIGFzIHBvc3NpYmxlLAorICAgICAgICAgKiBhcyB0aGlzIGF2b2lkcyB0aGUgbmVlZCB0byB1c2UgKHdhc3RlKSBhIEdOU1MgbWVhc3VyZW1lbnQgdG8gZnVsbHkKKyAgICAgICAgICogcmUtc29sdmUgZm9yIHRoZSBHTlNTIGNsb2NrIGJpYXMgYW5kIGRyaWZ0LCB3aGVuIHVzaW5nIHRoZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgICogbWVhc3VyZW1lbnRzLCBmcm9tIGNvbnNlY3V0aXZlIEduc3NEYXRhIHJlcG9ydHMuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBod0Nsb2NrRGlzY29udGludWl0eUNvdW50OworCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSBHTlNTIE1lYXN1cmVtZW50LCBpdCBjb250YWlucyByYXcgYW5kIGNvbXB1dGVkIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQWxsIHNpZ25hbCBtZWFzdXJlbWVudCBpbmZvcm1hdGlvbiAoZS5nLiBzdlRpbWUsCisgICAgICogcHNldWRvcmFuZ2VSYXRlLCBtdWx0aXBhdGhJbmRpY2F0b3IpIHJlcG9ydGVkIGluIHRoaXMgc3RydWN0IG11c3QgYmUKKyAgICAgKiBiYXNlZCBvbiBHTlNTIHNpZ25hbCBtZWFzdXJlbWVudHMgb25seS4gWW91IG11c3Qgbm90IHN5bnRoZXNpemUgbWVhc3VyZW1lbnRzCisgICAgICogYnkgY2FsY3VsYXRpbmcgb3IgcmVwb3J0aW5nIGV4cGVjdGVkIG1lYXN1cmVtZW50cyBiYXNlZCBvbiBrbm93biBvciBlc3RpbWF0ZWQKKyAgICAgKiBwb3NpdGlvbiwgdmVsb2NpdHksIG9yIHRpbWUuCisgICAgICovCisgICAgc3RydWN0IEduc3NNZWFzdXJlbWVudHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgc2V0IG9mIGZsYWdzIGluZGljYXRpbmcgdGhlIHZhbGlkaXR5IG9mIHRoZSBmaWVsZHMgaW4gdGhpcyBkYXRhCisgICAgICAgICAqIHN0cnVjdHVyZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NNZWFzdXJlbWVudEZsYWdzPiBmbGFnczsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyLCBhcyBkZWZpbmVkIGluIEduc3NTdkluZm86OnN2aWQKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGVmaW5lcyB0aGUgY29uc3RlbGxhdGlvbiBvZiB0aGUgZ2l2ZW4gU1YuCisgICAgICAgICAqLworICAgICAgICBHbnNzQ29uc3RlbGxhdGlvblR5cGUgY29uc3RlbGxhdGlvbjsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBvZmZzZXQgYXQgd2hpY2ggdGhlIG1lYXN1cmVtZW50IHdhcyB0YWtlbiBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogVGhlIHJlZmVyZW5jZSByZWNlaXZlcidzIHRpbWUgaXMgc3BlY2lmaWVkIGJ5IEduc3NEYXRhOjpjbG9jazo6dGltZU5zLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aW1lT2Zmc2V0TnMgaXMgZ2l2ZW4gYnkgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKKyAgICAgICAgICogICAgICBtZWFzdXJlbWVudCB0aW1lID0gR25zc0Nsb2NrOjp0aW1lTnMgKyB0aW1lT2Zmc2V0TnMKKyAgICAgICAgICoKKyAgICAgICAgICogSXQgcHJvdmlkZXMgYW4gaW5kaXZpZHVhbCB0aW1lLXN0YW1wIGZvciB0aGUgbWVhc3VyZW1lbnQsIGFuZCBhbGxvd3MKKyAgICAgICAgICogc3ViLW5hbm9zZWNvbmQgYWNjdXJhY3kuCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgdGltZU9mZnNldE5zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQZXIgc2F0ZWxsaXRlIHN5bmMgc3RhdGUuIEl0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3luYyBzdGF0ZSBmb3IgdGhlCisgICAgICAgICAqIGFzc29jaWF0ZWQgc2F0ZWxsaXRlLgorICAgICAgICAgKiBCYXNlZCBvbiB0aGUgc3luYyBzdGF0ZSwgdGhlICdyZWNlaXZlZCBHTlNTIHRvdycgZmllbGQgbXVzdCBiZSBpbnRlcnByZXRlZAorICAgICAgICAgKiBhY2NvcmRpbmdseS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NNZWFzdXJlbWVudFN0YXRlPiBzdGF0ZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJlY2VpdmVkIEdOU1MgVGltZS1vZi1XZWVrIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lLCBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogRm9yIEdOU1MgJiBRWlNTLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHTlNTIFRpbWUtb2YtV2VlayBhdCB0aGUKKyAgICAgICAgICogbWVhc3VyZW1lbnQgdGltZSwgaW4gbmFub3NlY29uZHMuIFRoZSB2YWx1ZSBpcyByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgICogYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IEdOU1Mgd2Vlay4KKyAgICAgICAgICoKKyAgICAgICAgICogR2l2ZW4gdGhlIGhpZ2hlc3Qgc3luYyBzdGF0ZSB0aGF0IGNhbiBiZSBhY2hpZXZlZCwgcGVyIGVhY2ggc2F0ZWxsaXRlLAorICAgICAgICAgKiB2YWxpZCByYW5nZSBmb3IgdGhpcyBmaWVsZCBjYW4gYmU6CisgICAgICAgICAqIFNlYXJjaGluZyAgICAgICA6IFsgMCAgICAgICBdIDogU1RBVEVfVU5LTk9XTgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgOiBbIDAgMW1zICAgXSA6IFNUQVRFX0NPREVfTE9DSyBzZXQKKyAgICAgICAgICogQml0IHN5bmMgICAgICAgIDogWyAwIDIwbXMgIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQKKyAgICAgICAgICogU3ViZnJhbWUgc3luYyAgIDogWyAwICA2cyAgIF0gOiBTVEFURV9TVUJGUkFNRV9TWU5DIHNldAorICAgICAgICAgKiBUT1cgZGVjb2RlZCAgICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19ERUNPREVEIHNldAorICAgICAgICAgKiBUT1cgS25vd24gICAgICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IElmIHRoZXJlIGlzIGFueSBhbWJpZ3VpdHkgaW4gaW50ZWdlciBtaWxsaXNlY29uZCwKKyAgICAgICAgICogR05TU19NRUFTVVJFTUVOVF9TVEFURV9NU0VDX0FNQklHVU9VUyBtdXN0IGJlIHNldCBhY2NvcmRpbmdseSwgaW4gdGhlCisgICAgICAgICAqICdzdGF0ZScgZmllbGQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ3N0YXRlJyAhPSBTVEFURV9VTktOT1dOLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgR2xvbmFzcywgdGhpcyBpcyB0aGUgcmVjZWl2ZWQgR2xvbmFzcyB0aW1lIG9mIGRheSwgYXQgdGhlCisgICAgICAgICAqIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEdpdmVuIHRoZSBoaWdoZXN0IHN5bmMgc3RhdGUgdGhhdCBjYW4gYmUgYWNoaWV2ZWQsIHBlciBlYWNoIHNhdGVsbGl0ZSwKKyAgICAgICAgICogdmFsaWQgcmFuZ2UgZm9yIHRoaXMgZmllbGQgY2FuIGJlOgorICAgICAgICAgKiBTZWFyY2hpbmcgICAgICAgICAgIDogWyAwICAgICAgIF0gOiBTVEFURV9VTktOT1dOIHNldAorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgICAgIDogWyAwICAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgc2V0CisgICAgICAgICAqIFN5bWJvbCBzeW5jICAgICAgICAgOiBbIDAgIDEwbXMgXSA6IFNUQVRFX1NZTUJPTF9TWU5DIHNldAorICAgICAgICAgKiBCaXQgc3luYyAgICAgICAgICAgIDogWyAwICAyMG1zIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQKKyAgICAgICAgICogU3RyaW5nIHN5bmMgICAgICAgICA6IFsgMCAgICAycyBdIDogU1RBVEVfR0xPX1NUUklOR19TWU5DIHNldAorICAgICAgICAgKiBUaW1lIG9mIGRheSBkZWNvZGVkIDogWyAwICAxZGF5IF0gOiBTVEFURV9HTE9fVE9EX0RFQ09ERUQgc2V0CisgICAgICAgICAqIFRpbWUgb2YgZGF5IGtub3duICAgOiBbIDAgIDFkYXkgXSA6IFNUQVRFX0dMT19UT0RfS05PV04gc2V0CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IFRpbWUgb2YgZGF5IGtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBpdCBpcyBwb3NzaWJseSBub3QKKyAgICAgICAgICogZGVjb2RlZCBvdmVyIHRoZSBhaXIgYnV0IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBvdGhlciBzb3VyY2VzLiBJZgorICAgICAgICAgKiBUaW1lIG9mIGRheSBkZWNvZGVkIGlzIHNldCB0aGVuIFRpbWUgb2YgZGF5IGtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBCZWlkb3UsIHRoaXMgaXMgdGhlIHJlY2VpdmVkIEJlaWRvdSB0aW1lIG9mIHdlZWssCisgICAgICAgICAqIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgICAgICAgICAgOiBbIDAgICAgICAgXSA6IFNUQVRFX1VOS05PV04gc2V0LgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgICAgICA6IFsgMCAgIDFtcyBdIDogU1RBVEVfQ09ERV9MT0NLIHNldC4KKyAgICAgICAgICogQml0IHN5bmMgKEQyKSAgICAgICAgOiBbIDAgICAybXMgXSA6IFNUQVRFX0JEU19EMl9CSVRfU1lOQyBzZXQuCisgICAgICAgICAqIEJpdCBzeW5jIChEMSkgICAgICAgIDogWyAwICAyMG1zIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQuCisgICAgICAgICAqIFN1YmZyYW1lIChEMikgICAgICAgIDogWyAwICAwLjZzIF0gOiBTVEFURV9CRFNfRDJfU1VCRlJBTUVfU1lOQyBzZXQuCisgICAgICAgICAqIFN1YmZyYW1lIChEMSkgICAgICAgIDogWyAwICAgIDZzIF0gOiBTVEFURV9TVUJGUkFNRV9TWU5DIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGRlY29kZWQgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19ERUNPREVEIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGtub3duICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBHYWxpbGVvLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHYWxpbGVvIHRpbWUgb2Ygd2VlaywKKyAgICAgICAgICogYXQgdGhlIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEUxQkMgY29kZSBsb2NrICAgICAgIDogWyAwICA0bXMgXSA6IFNUQVRFX0dBTF9FMUJDX0NPREVfTE9DSyBzZXQuCisgICAgICAgICAqIEUxQyAybmQgY29kZSBsb2NrICAgIDogWyAwIDEwMG1zXSA6IFNUQVRFX0dBTF9FMUNfMk5EX0NPREVfTE9DSyBzZXQuCisgICAgICAgICAqIEUxQiBwYWdlICAgICAgICAgICAgIDogWyAwICAgMnMgXSA6IFNUQVRFX0dBTF9FMUJfUEFHRV9TWU5DIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGRlY29kZWQgOiBbIDAgMXdlZWtdIDogU1RBVEVfVE9XX0RFQ09ERUQgaXMgc2V0LgorICAgICAgICAgKiBUaW1lIG9mIHdlZWsga25vd24gICA6IFsgMCAxd2Vla10gOiBTVEFURV9UT1dfS05PV04gc2V0CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IFRPVyBLbm93biByZWZlcnMgdG8gdGhlIGNhc2Ugd2hlcmUgVE9XIGlzIHBvc3NpYmx5IG5vdCBkZWNvZGVkCisgICAgICAgICAqIG92ZXIgdGhlIGFpciBidXQgaGFzIGJlZW4gZGV0ZXJtaW5lZCBmcm9tIG90aGVyIHNvdXJjZXMuIElmIFRPVworICAgICAgICAgKiBkZWNvZGVkIGlzIHNldCB0aGVuIFRPVyBLbm93biBtdXN0IGFsc28gYmUgc2V0LgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgU0JBUywgdGhpcyBpcyByZWNlaXZlZCBTQkFTIHRpbWUsIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lIGluCisgICAgICAgICAqIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgIDogWyAwICAgICBdIDogU1RBVEVfVU5LTk9XTgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrOiBbIDAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgaXMgc2V0CisgICAgICAgICAqIFN5bWJvbCBzeW5jICA6IFsgMCAybXMgXSA6IFNUQVRFX1NZTUJPTF9TWU5DIGlzIHNldAorICAgICAgICAgKiBNZXNzYWdlICAgICAgOiBbIDAgIDFzIF0gOiBTVEFURV9TQkFTX1NZTkMgaXMgc2V0CisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IHJlY2VpdmVkU3ZUaW1lSW5OczsKKworICAgICAgICAvKioKKyAgICAgICAgICogMS1TaWdtYSB1bmNlcnRhaW50eSBvZiB0aGUgUmVjZWl2ZWQgR05TUyBUaW1lLW9mLVdlZWsgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ3N0YXRlJyAhPSBTVEFURV9VTktOT1dOLgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCByZWNlaXZlZFN2VGltZVVuY2VydGFpbnR5SW5OczsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2Fycmllci10by1ub2lzZSBkZW5zaXR5IGluIGRCLUh6LCB0eXBpY2FsbHkgaW4gdGhlIHJhbmdlIFswLCA2M10uCisgICAgICAgICAqIEl0IGNvbnRhaW5zIHRoZSBtZWFzdXJlZCBDL04wIHZhbHVlIGZvciB0aGUgc2lnbmFsIGF0IHRoZSBhbnRlbm5hIHBvcnQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgY04wRGJIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogUHNldWRvcmFuZ2UgcmF0ZSBhdCB0aGUgdGltZXN0YW1wIGluIG0vcy4gVGhlIGNvcnJlY3Rpb24gb2YgYSBnaXZlbgorICAgICAgICAgKiBQc2V1ZG9yYW5nZSBSYXRlIHZhbHVlIGluY2x1ZGVzIGNvcnJlY3Rpb25zIGZvciByZWNlaXZlciBhbmQgc2F0ZWxsaXRlCisgICAgICAgICAqIGNsb2NrIGZyZXF1ZW5jeSBlcnJvcnMuIEVuc3VyZSB0aGF0IHRoaXMgZmllbGQgaXMgaW5kZXBlbmRlbnQgKHNlZQorICAgICAgICAgKiBjb21tZW50IGF0IHRvcCBvZiBHbnNzTWVhc3VyZW1lbnQgc3RydWN0LikKKyAgICAgICAgICoKKyAgICAgICAgICogSXQgaXMgbWFuZGF0b3J5IHRvIHByb3ZpZGUgdGhlICd1bmNvcnJlY3RlZCcgJ3BzZXVkb3JhbmdlIHJhdGUnLCBhbmQKKyAgICAgICAgICogcHJvdmlkZSBHbnNzQ2xvY2sncyAnZHJpZnQnIGZpZWxkIGFzIHdlbGwuIFdoZW4gcHJvdmlkaW5nIHRoZQorICAgICAgICAgKiB1bmNvcnJlY3RlZCBwc2V1ZG9yYW5nZSByYXRlLCBkbyBub3QgYXBwbHkgdGhlIGNvcnJlY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4pCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB2YWx1ZSBpbmNsdWRlcyB0aGUgJ3BzZXVkb3JhbmdlIHJhdGUgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKiBBIHBvc2l0aXZlICd1bmNvcnJlY3RlZCcgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIFNWIGlzIG1vdmluZyBhd2F5IGZyb20KKyAgICAgICAgICogdGhlIHJlY2VpdmVyLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgJ3VuY29ycmVjdGVkJyAncHNldWRvcmFuZ2UgcmF0ZScgYW5kIGl0cyByZWxhdGlvbiB0byB0aGUKKyAgICAgICAgICogc2lnbiBvZiAnZG9wcGxlciBzaGlmdCcgaXMgZ2l2ZW4gYnkgdGhlIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIHBzZXVkb3JhbmdlIHJhdGUgPSAtayAqIGRvcHBsZXIgc2hpZnQgICAod2hlcmUgayBpcyBhIGNvbnN0YW50KQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG11c3QgYmUgdGhlIG1vc3QgYWNjdXJhdGUgcHNldWRvcmFuZ2UgcmF0ZSBhdmFpbGFibGUsIGJhc2VkIG9uCisgICAgICAgICAqIGZyZXNoIHNpZ25hbCBtZWFzdXJlbWVudHMgZnJvbSB0aGlzIGNoYW5uZWwuCisgICAgICAgICAqCisgICAgICAgICAqIEl0IGlzIG1hbmRhdG9yeSB0aGF0IHRoaXMgdmFsdWUgYmUgcHJvdmlkZWQgYXQgdHlwaWNhbCBjYXJyaWVyIHBoYXNlIFBSUgorICAgICAgICAgKiBxdWFsaXR5IChmZXcgY20vc2VjIHBlciBzZWNvbmQgb2YgdW5jZXJ0YWludHksIG9yIGJldHRlcikgLSB3aGVuIHNpZ25hbHMKKyAgICAgICAgICogYXJlIHN1ZmZpY2llbnRseSBzdHJvbmcgJiBzdGFibGUsIGUuZy4gc2lnbmFscyBmcm9tIGEgR05TUyBzaW11bGF0b3IgYXQgPj0KKyAgICAgICAgICogMzUgZEItSHouCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgcHNldWRvcmFuZ2VSYXRlTXBzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBwc2V1ZG9yYW5nZVJhdGVNcHMuCisgICAgICAgICAqIFRoZSB1bmNlcnRhaW50eSBpcyByZXByZXNlbnRlZCBhcyBhbiBhYnNvbHV0ZSAoc2luZ2xlIHNpZGVkKSB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBwc2V1ZG9yYW5nZVJhdGVVbmNlcnRhaW50eU1wczsKKworICAgICAgICAvKioKKyAgICAgICAgICogQWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UncyBzdGF0ZS4gSXQgaW5kaWNhdGVzIHdoZXRoZXIgQURSIGlzIHJlc2V0IG9yCisgICAgICAgICAqIHRoZXJlIGlzIGEgY3ljbGUgc2xpcChpbmRpY2F0aW5nIGxvc3Mgb2YgbG9jaykuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxHbnNzQWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGU+IGFjY3VtdWxhdGVkRGVsdGFSYW5nZVN0YXRlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBzaW5jZSB0aGUgbGFzdCBjaGFubmVsIHJlc2V0IGluIG1ldGVycy4KKyAgICAgICAgICogQSBwb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgU1YgaXMgbW92aW5nIGF3YXkgZnJvbSB0aGUgcmVjZWl2ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRoZSAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UnIGFuZCBpdHMgcmVsYXRpb24gdG8gdGhlIHNpZ24gb2YKKyAgICAgICAgICogJ2NhcnJpZXIgcGhhc2UnIGlzIGdpdmVuIGJ5IHRoZSBlcXVhdGlvbjoKKyAgICAgICAgICogYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UgPSAtayAqIGNhcnJpZXIgcGhhc2UgKHdoZXJlIGsgaXMgYSBjb25zdGFudCkKKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHBvcHVsYXRlZCBpZiAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnICE9CisgICAgICAgICAqIEFEUl9TVEFURV9VTktOT1dOLgorICAgICAgICAgKiBIb3dldmVyLCBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBkYXRhIGlzIG9ubHkgYWNjdXJhdGUgd2hlbjoKKyAgICAgICAgICogICAgICAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnID09IEFEUl9TVEFURV9WQUxJRC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhY2N1bXVsYXRlZERlbHRhUmFuZ2VNOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBhY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBpbiBtZXRlcnMuCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ2FjY3VtdWxhdGVkIGRlbHRhIHJhbmdlIHN0YXRlJyAhPQorICAgICAgICAgKiBBRFJfU1RBVEVfVU5LTk9XTi4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhY2N1bXVsYXRlZERlbHRhUmFuZ2VVbmNlcnRhaW50eU07CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhcnJpZXIgZnJlcXVlbmN5IG9mIHRoZSBzaWduYWwgdHJhY2tlZCwgZm9yIGV4YW1wbGUgaXQgY2FuIGJlIHRoZQorICAgICAgICAgKiBHUFMgY2VudHJhbCBmcmVxdWVuY3kgZm9yIEwxID0gMTU3NS40NSBNSHosIG9yIEwyID0gMTIyNy42MCBNSHosIEw1ID0KKyAgICAgICAgICogMTE3Ni40NSBNSHosIHZhcnlpbmcgR0xPIGNoYW5uZWxzLCBldGMuIElmIHRoZSBmaWVsZCBpcyBub3Qgc2V0LCBpdAorICAgICAgICAgKiBpcyB0aGUgcHJpbWFyeSBjb21tb24gdXNlIGNlbnRyYWwgZnJlcXVlbmN5LCBlLmcuIEwxID0gMTU3NS40NSBNSHoKKyAgICAgICAgICogZm9yIEdQUy4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIGFuIEwxLCBMNSByZWNlaXZlciB0cmFja2luZyBhIHNhdGVsbGl0ZSBvbiBMMSBhbmQgTDUgYXQgdGhlIHNhbWUKKyAgICAgICAgICogdGltZSwgdHdvIHJhdyBtZWFzdXJlbWVudCBzdHJ1Y3RzIG11c3QgYmUgcmVwb3J0ZWQgZm9yIHRoaXMgc2FtZQorICAgICAgICAgKiBzYXRlbGxpdGUsIGluIG9uZSBvZiB0aGUgbWVhc3VyZW1lbnQgc3RydWN0cywgYWxsIHRoZSB2YWx1ZXMgcmVsYXRlZAorICAgICAgICAgKiB0byBMMSBtdXN0IGJlIGZpbGxlZCwgYW5kIGluIHRoZSBvdGhlciBhbGwgb2YgdGhlIHZhbHVlcyByZWxhdGVkIHRvCisgICAgICAgICAqIEw1IG11c3QgYmUgZmlsbGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBjYXJyaWVyRnJlcXVlbmN5SHo7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBudW1iZXIgb2YgZnVsbCBjYXJyaWVyIGN5Y2xlcyBiZXR3ZWVuIHRoZSBzYXRlbGxpdGUgYW5kIHRoZQorICAgICAgICAgKiByZWNlaXZlci4gVGhlIHJlZmVyZW5jZSBmcmVxdWVuY3kgaXMgZ2l2ZW4gYnkgdGhlIGZpZWxkCisgICAgICAgICAqICdjYXJyaWVyRnJlcXVlbmN5SHonLiBJbmRpY2F0aW9ucyBvZiBwb3NzaWJsZSBjeWNsZSBzbGlwcyBhbmQKKyAgICAgICAgICogcmVzZXRzIGluIHRoZSBhY2N1bXVsYXRpb24gb2YgdGhpcyB2YWx1ZSBjYW4gYmUgaW5mZXJyZWQgZnJvbSB0aGUKKyAgICAgICAgICogYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgZmxhZ3MuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0NZQ0xFUy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgY2FycmllckN5Y2xlczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIFJGIHBoYXNlIGRldGVjdGVkIGJ5IHRoZSByZWNlaXZlciwgaW4gdGhlIHJhbmdlIFswLjAsIDEuMF0uCisgICAgICAgICAqIFRoaXMgaXMgdXN1YWxseSB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBjb21wbGV0ZSBjYXJyaWVyIHBoYXNlCisgICAgICAgICAqIG1lYXN1cmVtZW50LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgcmVmZXJlbmNlIGZyZXF1ZW5jeSBpcyBnaXZlbiBieSB0aGUgZmllbGQgJ2NhcnJpZXJGcmVxdWVuY3lIeicuCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgJ2NhcnJpZXItcGhhc2UgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfQ0FSUklFUl9QSEFTRS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBjYXJyaWVyUGhhc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgb2YgdGhlIGNhcnJpZXItcGhhc2UuCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX1BIQVNFX1VOQ0VSVEFJTlRZLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGNhcnJpZXJQaGFzZVVuY2VydGFpbnR5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbiBlbnVtZXJhdGlvbiB0aGF0IGluZGljYXRlcyB0aGUgJ211bHRpcGF0aCcgc3RhdGUgb2YgdGhlIGV2ZW50LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgbXVsdGlwYXRoIEluZGljYXRvciBpcyBpbnRlbmRlZCB0byByZXBvcnQgdGhlIHByZXNlbmNlIG9mIG92ZXJsYXBwaW5nCisgICAgICAgICAqIHNpZ25hbHMgdGhhdCBtYW5pZmVzdCBhcyBkaXN0b3J0ZWQgY29ycmVsYXRpb24gcGVha3MuCisgICAgICAgICAqCisgICAgICAgICAqIC0gaWYgdGhlcmUgaXMgYSBkaXN0b3J0ZWQgY29ycmVsYXRpb24gcGVhayBzaGFwZSwgcmVwb3J0IHRoYXQgbXVsdGlwYXRoCisgICAgICAgICAqICAgaXMgTVVMVElQQVRIX0lORElDQVRPUl9QUkVTRU5ULgorICAgICAgICAgKiAtIGlmIHRoZXJlIGlzIG5vIGRpc3RvcnRlZCBjb3JyZWxhdGlvbiBwZWFrIHNoYXBlLCByZXBvcnQKKyAgICAgICAgICogICBNVUxUSVBBVEhfSU5ESUNBVE9SX05PVF9QUkVTRU5UCisgICAgICAgICAqIC0gaWYgc2lnbmFscyBhcmUgdG9vIHdlYWsgdG8gZGlzY2VybiB0aGlzIGluZm9ybWF0aW9uLCByZXBvcnQKKyAgICAgICAgICogICBNVUxUSVBBVEhfSU5ESUNBVE9SX1VOS05PV04KKyAgICAgICAgICoKKyAgICAgICAgICogRXhhbXBsZTogd2hlbiBkb2luZyB0aGUgc3RhbmRhcmRpemVkIG92ZXJsYXBwaW5nIE11bHRpcGF0aCBQZXJmb3JtYW5jZQorICAgICAgICAgKiB0ZXN0ICgzR1BQIFRTIDM0LjE3MSkgdGhlIE11bHRpcGF0aCBpbmRpY2F0b3IgbXVzdCByZXBvcnQKKyAgICAgICAgICogTVVMVElQQVRIX0lORElDQVRPUl9QUkVTRU5UIGZvciB0aG9zZSBzaWduYWxzIHRoYXQgYXJlIHRyYWNrZWQsIGFuZAorICAgICAgICAgKiBjb250YWluIG11bHRpcGF0aCwgYW5kIE1VTFRJUEFUSF9JTkRJQ0FUT1JfTk9UX1BSRVNFTlQgZm9yIHRob3NlCisgICAgICAgICAqIHNpZ25hbHMgdGhhdCBhcmUgdHJhY2tlZCBhbmQgZG8gbm90IGNvbnRhaW4gbXVsdGlwYXRoLgorICAgICAgICAgKi8KKyAgICAgICAgR25zc011bHRpcGF0aEluZGljYXRvciBtdWx0aXBhdGhJbmRpY2F0b3I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNpZ25hbC10by1ub2lzZSByYXRpbyBhdCBjb3JyZWxhdG9yIG91dHB1dCBpbiBkQi4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBHbnNzTWVhc3VyZW1lbnRGbGFncyBtdXN0IGNvbnRhaW4gSEFTX1NOUi4KKyAgICAgICAgICogVGhpcyBpcyB0aGUgcG93ZXIgcmF0aW8gb2YgdGhlICJjb3JyZWxhdGlvbiBwZWFrIGhlaWdodCBhYm92ZSB0aGUKKyAgICAgICAgICogb2JzZXJ2ZWQgbm9pc2UgZmxvb3IiIHRvICJ0aGUgbm9pc2UgUk1TIi4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBzbnJEYjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQXV0b21hdGljIGdhaW4gY29udHJvbCAoQUdDKSBsZXZlbC4gQUdDIGFjdHMgYXMgYSB2YXJpYWJsZSBnYWluCisgICAgICAgICAqIGFtcGxpZmllciBhZGp1c3RpbmcgdGhlIHBvd2VyIG9mIHRoZSBpbmNvbWluZyBzaWduYWwuIFRoZSBBR0MgbGV2ZWwKKyAgICAgICAgICogbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgcG90ZW50aWFsIGludGVyZmVyZW5jZS4gV2hlbiBBR0MgaXMgYXQgYQorICAgICAgICAgKiBub21pbmFsIGxldmVsLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IGFzIDAuIEhpZ2hlciBnYWluIChhbmQvb3IgbG93ZXIKKyAgICAgICAgICogaW5wdXQgcG93ZXIpIG11c3QgYmUgb3V0cHV0IGFzIGEgcG9zaXRpdmUgbnVtYmVyLiBIZW5jZSBpbiBjYXNlcyBvZgorICAgICAgICAgKiBzdHJvbmcgamFtbWluZywgaW4gdGhlIGJhbmQgb2YgdGhpcyBzaWduYWwsIHRoaXMgdmFsdWUgbXVzdCBnbyBtb3JlCisgICAgICAgICAqIG5lZ2F0aXZlLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiBEaWZmZXJlbnQgaGFyZHdhcmUgZGVzaWducyAoZS5nLiBhbnRlbm5hLCBwcmUtYW1wbGlmaWNhdGlvbiwgb3IKKyAgICAgICAgICogb3RoZXIgUkYgSFcgY29tcG9uZW50cykgbWF5IGFsc28gYWZmZWN0IHRoZSB0eXBpY2FsIG91dHB1dCBvZiBvZiB0aGlzCisgICAgICAgICAqIHZhbHVlIG9uIGFueSBnaXZlbiBoYXJkd2FyZSBkZXNpZ24gaW4gYW4gb3BlbiBza3kgdGVzdCAtIHRoZQorICAgICAgICAgKiBpbXBvcnRhbnQgYXNwZWN0IG9mIHRoaXMgb3V0cHV0IGlzIHRoYXQgY2hhbmdlcyBpbiB0aGlzIHZhbHVlIGFyZQorICAgICAgICAgKiBpbmRpY2F0aXZlIG9mIGNoYW5nZXMgb24gaW5wdXQgc2lnbmFsIHBvd2VyIGluIHRoZSBmcmVxdWVuY3kgYmFuZCBmb3IKKyAgICAgICAgICogdGhpcyBtZWFzdXJlbWVudC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhZ2NMZXZlbERiOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGEgcmVhZGluZyBvZiBHTlNTIG1lYXN1cmVtZW50cy4gRm9yIGRldmljZXMgd2hlcmUgR25zc1N5c3RlbUluZm8ncworICAgICAqIHllYXJPZkh3IGlzIHNldCB0byAyMDE2KywgaXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhlc2UgYmUgcHJvdmlkZWQsIG9uCisgICAgICogcmVxdWVzdCwgd2hlbiB0aGUgR05TUyByZWNlaXZlciBpcyBzZWFyY2hpbmcvdHJhY2tpbmcgc2lnbmFscy4KKyAgICAgKgorICAgICAqIC0gUmVwb3J0aW5nIG9mIEdOU1MgY29uc3RlbGxhdGlvbiBtZWFzdXJlbWVudHMgaXMgbWFuZGF0b3J5LgorICAgICAqIC0gUmVwb3J0aW5nIG9mIGFsbCB0cmFja2VkIGNvbnN0ZWxsYXRpb25zIGFyZSBlbmNvdXJhZ2VkLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzRGF0YSB7CisgICAgICAgIC8qKiBOdW1iZXIgb2YgR25zc01lYXN1cmVtZW50IGVsZW1lbnRzLiAqLworICAgICAgICB1aW50MzJfdCBtZWFzdXJlbWVudENvdW50OworCisgICAgICAgIC8qKiBUaGUgYXJyYXkgb2YgbWVhc3VyZW1lbnRzLiAqLworICAgICAgICBHbnNzTWVhc3VyZW1lbnRbR25zc01heDpTVlNfQ09VTlRdIG1lYXN1cmVtZW50czsKKworICAgICAgICAvKiogVGhlIEdOU1MgY2xvY2sgdGltZSByZWFkaW5nLiAqLworICAgICAgICBHbnNzQ2xvY2sgY2xvY2s7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIGZvciB0aGUgaGFsIHRvIHBhc3MgYSBHbnNzRGF0YSBzdHJ1Y3R1cmUgYmFjayB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgQ29udGFpbnMgYSByZWFkaW5nIG9mIEdOU1MgbWVhc3VyZW1lbnRzLgorICAgICAqLworICAgIEduc3NNZWFzdXJlbWVudENiKEduc3NEYXRhIGRhdGEpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsIGIvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0NmQxMQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIG5hdmlnYXRpb24gbWVzc2FnZSByZXBvcnRpbmcgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTkFWSUdBVElPTl9NRVNTQUdFXyIpCisgICAgZW51bSBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXMgOiBpbnQzMl90IHsKKyAgICAgICAgU1VDQ0VTUyA9IDAsCisgICAgICAgIEVSUk9SX0FMUkVBRFlfSU5JVCA9IC0xMDAsCisgICAgICAgIEVSUk9SX0dFTkVSSUMgPSAtMTAxCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpbnRlcmZhY2UgYW5kIHJlZ2lzdGVycyB0aGUgY2FsbGJhY2sgcm91dGluZXMgd2l0aCB0aGUgSEFMLgorICAgICAqIEFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIHRvICdzZXRDYWxsYmFjaycgdGhlIEhBTCBtdXN0IGJlZ2luIHRvIHByb3ZpZGUgdXBkYXRlcyBhcworICAgICAqIHRoZXkgYmVjb21lIGF2YWlsYWJsZS4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaGFuZGxlIHRvIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYWNrIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW5pdFJldCBSZXR1cm5zIFNVQ0NFU1MgaWYgdGhlIG9wZXJhdGlvbgorICAgICAqIGlzIHN1Y2Nlc3NmdWwuCisgICAgICogUmV0dXJucyBFUlJPUl9BTFJFQURZX0lOSVQgaWYgYSBjYWxsYmFjayBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBjYWxsIHRvIGNsb3NlKCkuCisgICAgICogUmV0dXJucyBFUlJPUl9HRU5FUklDIGlmIGFueSBvdGhlciBlcnJvciBvY2N1cnJlZC4gSXQgaXMKKyAgICAgKiBleHBlY3RlZCB0aGF0IHRoZSBIQUwgd2lsbCBub3QgZ2VuZXJhdGUgYW55IHVwZGF0ZXMgdXBvbiByZXR1cm5pbmcKKyAgICAgKiB0aGlzIGVycm9yIGNvZGUuCisgICAgICovCisgICAgIHNldENhbGxiYWNrKElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXMgaW5pdFJldCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyB1cGRhdGVzIGZyb20gdGhlIEhBTCwgYW5kIHVucmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcy4KKyAgICAgKiBBZnRlciBhIGNhbGwgdG8gY2xvc2UoKSwgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MgbXVzdCBiZQorICAgICAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgSEFMLgorICAgICAqIElmIGNsb3NlKCkgaXMgaW52b2tlZCB3aXRob3V0IGEgcHJldmlvdXMgc2V0Q2FsbGJhY2ssIHRoaXMgZnVuY3Rpb24gbXVzdCBwZXJmb3JtCisgICAgICogbm8gd29yay4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZGFlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCisvKiogUmVwcmVzZW50cyBhIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIChvciBhIGZyYWdtZW50IG9mIGl0KS4gKi8KK2ludGVyZmFjZSBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEVudW1lcmF0aW9uIG9mIGF2YWlsYWJsZSB2YWx1ZXMgdG8gaW5kaWNhdGUgdGhlIEdOU1MgTmF2aWdhdGlvbiBtZXNzYWdlCisgICAgICogdHlwZXMuCisgICAgICoKKyAgICAgKiBGb3IgY29udmVuaWVuY2UsIGZpcnN0IGJ5dGUgaXMgdGhlIEduc3NDb25zdGVsbGF0aW9uVHlwZSBvbiB3aGljaCB0aGF0IHNpZ25hbAorICAgICAqIGlzIHR5cGljYWxseSB0cmFuc21pdHRlZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19OQVZJR0FUSU9OX01FU1NBR0VfVFlQRV8iKQorICAgIGVudW0gR25zc05hdmlnYXRpb25NZXNzYWdlVHlwZSA6IGludDE2X3QgeworICAgICAgICBVTktOT1dOICAgID0gMCwKKyAgICAgICAgLyoqIEdQUyBMMSBDL0EgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gICovCisgICAgICAgIEdQU19MMUNBICAgICAgID0gMHgwMTAxLAorICAgICAgICAvKiogR1BTIEwyLUNOQVYgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR1BTX0wyQ05BViAgICAgPSAweDAxMDIsCisgICAgICAgIC8qKiBHUFMgTDUtQ05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHUFNfTDVDTkFWICAgICA9IDB4MDEwMywKKyAgICAgICAgLyoqIEdQUyBDTkFWLTIgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR1BTX0NOQVYyICAgICAgPSAweDAxMDQsCisgICAgICAgIC8qKiBHbG9uYXNzIEwxIENBIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdMT19MMUNBICAgICAgICA9IDB4MDMwMSwKKyAgICAgICAgLyoqIEJlaWRvdSBEMSBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBCRFNfRDEgICAgICAgICAgPSAweDA1MDEsCisgICAgICAgIC8qKiBCZWlkb3UgRDIgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgQkRTX0QyICAgICAgICAgID0gMHgwNTAyLAorICAgICAgICAvKiogR2FsaWxlbyBJL05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHQUxfSSAgICAgICAgICAgPSAweDA2MDEsCisgICAgICAgIC8qKiBHYWxpbGVvIEYvTkFWIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdBTF9GICAgICAgICAgICA9IDB4MDYwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTdGF0dXMgb2YgTmF2aWdhdGlvbiBNZXNzYWdlCisgICAgICogV2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgcHJvcGVybHkgd2l0aG91dCBhbnkgcGFyaXR5IGVycm9yIGluIGl0cworICAgICAqIG5hdmlnYXRpb24gd29yZHMsIHRoZSBzdGF0dXMgbXVzdCBiZSBzZXQgdG8gUEFSSVRZX1BBU1NFRC4KKyAgICAgKiBJZiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgd2l0aCB3b3JkcyB0aGF0IGZhaWxlZCBhIHBhcml0eSBjaGVjaywgYnV0IHRoZSBHTlNTCisgICAgICogcmVjZWl2ZXIgaGFzIGNvcnJlY3RlZCB0aG9zZSB3b3JkcywgdGhlIHN0YXR1cyBtdXN0IGJlIHNldCB0byBQQVJJVFlfUkVCVUlMVC4KKyAgICAgKiBEbyBub3Qgc2VuZCBhbnkgbmF2aWdhdGlvbiBtZXNzYWdlIHRoYXQgY29udGFpbnMgd29yZHMgd2l0aCBwYXJpdHkgZXJyb3JzCisgICAgICogdGhhdCBjYW5ub3QgYmUgY29ycmVjdGVkLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0ibmF2aWdhdGlvbl9tZXNzYWdlX3N0YXR1cyIsIHZhbHVlX3ByZWZpeD0iTkFWX01FU1NBR0VfU1RBVFVTXyIpCisgICAgZW51bSBOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cyA6IHVpbnQxNl90IHsKKyAgICAgICAgUEFSSVRZX1BBU1NFRCAgPSAoMSA8PCAwKSwKKyAgICAgICAgUEFSSVRZX1JFQlVJTFQgPSAoMSA8PCAxKSwKKyAgICAgICAgVU5LTk9XTiAgPSAwCisgICAgfTsKKworICAgIHN0cnVjdCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgICAgICAvKioKKyAgICAgICAgICogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyLCBhcyBkZWZpbmVkIGluIEduc3NTdkluZm86OnN2aWQKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHR5cGUgb2YgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4KKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZVR5cGUgdHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHN0YXR1cyBvZiB0aGUgcmVjZWl2ZWQgbmF2aWdhdGlvbiBtZXNzYWdlLgorICAgICAgICAgKiBObyBuZWVkIHRvIHNlbmQgYW55IG5hdmlnYXRpb24gbWVzc2FnZSB0aGF0IGNvbnRhaW5zIHdvcmRzIHdpdGggcGFyaXR5CisgICAgICAgICAqIGVycm9ycyB0aGF0IGNhbm5vdCBiZSBjb3JyZWN0ZWQuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cz4gc3RhdHVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNZXNzYWdlIGlkZW50aWZpZXIuIEl0IHByb3ZpZGVzIGFuIGluZGV4IHNvIHRoZSBjb21wbGV0ZSBOYXZpZ2F0aW9uCisgICAgICAgICAqIE1lc3NhZ2UgY2FuIGJlIGFzc2VtYmxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR05TUyBMMSBDL0Egc3ViZnJhbWUgNCBhbmQgNSwgdGhpcyB2YWx1ZSBjb3JyZXNwb25kcyB0byB0aGUgJ2ZyYW1lCisgICAgICAgICAqICAgaWQnIG9mIHRoZSBuYXZpZ2F0aW9uIG1lc3NhZ2UsIGluIHRoZSByYW5nZSBvZiAxLTI1IChTdWJmcmFtZSAxLCAyLCAzCisgICAgICAgICAqICAgZG9lcyBub3QgY29udGFpbiBhICdmcmFtZSBpZCcgYW5kIHRoaXMgdmFsdWUgY2FuIGJlIHNldCB0byAtMS4pCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCB0aGlzIHJlZmVycyB0byB0aGUgZnJhbWUgSUQsIGluIHRoZSByYW5nZSBvZiAxLTUuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEJlaURvdSBEMSwgdGhpcyByZWZlcnMgdG8gdGhlIGZyYW1lIG51bWJlciBpbiB0aGUgcmFuZ2Ugb2YgMS0yNAorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBCZWlkb3UgRDIsIHRoaXMgcmVmZXJzIHRvIHRoZSBmcmFtZSBudW1iZXIsIGluIHRoZSByYW5nZSBvZiAxLTEyMAorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEYvTkFWIG5vbWluYWwgZnJhbWUgc3RydWN0dXJlLCB0aGlzIHJlZmVycyB0byB0aGUgc3ViZnJhbWUKKyAgICAgICAgICogICBudW1iZXIsIGluIHRoZSByYW5nZSBvZiAxLTEyCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gSS9OQVYgbm9taW5hbCBmcmFtZSBzdHJ1Y3R1cmUsIHRoaXMgcmVmZXJzIHRvIHRoZSBzdWJmcmFtZQorICAgICAgICAgKiAgIG51bWJlciBpbiB0aGUgcmFuZ2Ugb2YgMS0yNAorICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBtZXNzYWdlSWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1Yi1tZXNzYWdlIGlkZW50aWZpZXIuIElmIHJlcXVpcmVkIGJ5IHRoZSBtZXNzYWdlICd0eXBlJywgdGhpcyB2YWx1ZQorICAgICAgICAgKiBjb250YWlucyBhIHN1Yi1pbmRleCB3aXRoaW4gdGhlIGN1cnJlbnQgbWVzc2FnZSAob3IgZnJhbWUpIHRoYXQgaXMgYmVpbmcKKyAgICAgICAgICogdHJhbnNtaXR0ZWQuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdOU1MgTDEgQy9BLCBCZWlEb3UgRDEgJiBCZWlEb3UgRDIsIHRoZSBzdWJtZXNzYWdlIGlkIGNvcnJlc3BvbmRzIHRvCisgICAgICAgICAqICAgdGhlIHN1YmZyYW1lIG51bWJlciBvZiB0aGUgbmF2aWdhdGlvbiBtZXNzYWdlLCBpbiB0aGUgcmFuZ2Ugb2YgMS01LgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHbG9uYXNzIEwxIEMvQSwgdGhpcyByZWZlcnMgdG8gdGhlIFN0cmluZyBudW1iZXIsIGluIHRoZSByYW5nZSBmcm9tCisgICAgICAgICAqICAgMS0xNQorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEYvTkFWLCB0aGlzIHJlZmVycyB0byB0aGUgcGFnZSB0eXBlIGluIHRoZSByYW5nZSAxLTYKKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViwgdGhpcyByZWZlcnMgdG8gdGhlIHdvcmQgdHlwZSBpbiB0aGUgcmFuZ2UgMS0xMCsKKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3VibWVzc2FnZUlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGF0YSBvZiB0aGUgcmVwb3J0ZWQgR05TUyBtZXNzYWdlLiBUaGUgYnl0ZXMgKG9yIHdvcmRzKSBhcmUgc3BlY2lmaWVkCisgICAgICAgICAqIHVzaW5nIGJpZyBlbmRpYW4gZm9ybWF0IChNU0IgZmlyc3QpLgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHTlNTIEwxIEMvQSwgQmVpZG91IEQxICYgQmVpZG91IEQyLCBlYWNoIHN1YmZyYW1lIGNvbnRhaW5zIDEwIDMwLWJpdAorICAgICAgICAgKiAgIHdvcmRzLiBFYWNoIHdvcmQgKDMwIGJpdHMpIG11c3QgZml0IGludG8gdGhlIGxhc3QgMzAgYml0cyBpbiBhCisgICAgICAgICAqICAgNC1ieXRlIHdvcmQgKHNraXAgQjMxIGFuZCBCMzIpLCB3aXRoIE1TQiBmaXJzdCwgZm9yIGEgdG90YWwgb2YgNDAKKyAgICAgICAgICogICBieXRlcywgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiA2LCA2LCBhbmQgMC42IHNlY29uZHMsIHJlc3BlY3RpdmVseS4KKyAgICAgICAgICogICBUaGUgc3RhbmRhcmQgZm9sbG93ZWQgaXMgMTk5NSBTUFMgU2lnbmFsIHNwZWNpZmljYXRpb24uCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCBlYWNoIHN0cmluZyBjb250YWlucyA4NSBkYXRhIGJpdHMsIGluY2x1ZGluZyB0aGUKKyAgICAgICAgICogICBjaGVja3N1bS4gIFRoZXNlIGJpdHMgbXVzdCBmaXQgaW50byAxMSBieXRlcywgd2l0aCBNU0IgZmlyc3QgKHNraXAKKyAgICAgICAgICogICBCODYtQjg4KSwgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiAyIHNlY29uZHMuCisgICAgICAgICAqICAgVGhlIHN0YW5kYXJkIGZvbGxvd2VkIGlzIEdsb25hc3MgSW50ZXJmYWNlIENvbnRyb2wgRG9jdW1lbnQgRWRpdGlvbiA1LjEuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gRi9OQVYsIGVhY2ggd29yZCBjb25zaXN0cyBvZiAyMzgtYml0IChzeW5jICYgdGFpbCBzeW1ib2xzCisgICAgICAgICAqICAgZXhjbHVkZWQpLiBFYWNoIHdvcmQgbXVzdCBmaXQgaW50byAzMC1ieXRlcywgd2l0aCBNU0IgZmlyc3QgKHNraXAKKyAgICAgICAgICogICBCMjM5LCBCMjQwKSwgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiAxMCBzZWNvbmRzLiBUaGUgc3RhbmRhcmQKKyAgICAgICAgICogICBmb2xsb3dlZCBpcyBFdXJvcGVhbiBHTlNTKEdhbGlsZW8pIFNpZ25hbCBpbiBTcGFjZSBJbnRlcmZhY2UKKyAgICAgICAgICogICBDb250cm9sIERvY3VtZW50IElzc3VlIDEuMi4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViwgZWFjaCBwYWdlIGNvbnRhaW5zIDIgcGFnZSBwYXJ0cywgZXZlbiBhbmQgb2RkLCB3aXRoCisgICAgICAgICAqICAgYSB0b3RhbCBvZiAyeDExNCA9IDIyOCBiaXRzLCAoc3luYyAmIHRhaWwgZXhjbHVkZWQpIHRoYXQgbXVzdCBmaXQKKyAgICAgICAgICogICBpbnRvIDI5IGJ5dGVzLCB3aXRoIE1TQiBmaXJzdCAoc2tpcCBCMjI5LUIyMzIpLiBUaGUgc3RhbmRhcmQgZm9sbG93ZWQKKyAgICAgICAgICogICBpcyBzYW1lIGFzIGFib3ZlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGF0YSByZXBvcnRlZCBoZXJlIG11c3QgYmUgdGhlIHJhdyBkYXRhIGFzIGRlbW9kdWxhdGVkIGJ5IHRoZSBHTlNTCisgICAgICAgICAqIHJlY2VpdmVyLCBub3QgZGF0YSByZWNlaXZlZCBmcm9tIGFuIGV4dGVybmFsIHNvdXJjZSAoaS5lLiBub3QgZnJvbSBhIHNlcnZlcgorICAgICAgICAgKiBkb3dubG9hZC4pCisgICAgICAgICAqLworICAgICAgICB2ZWM8dWludDhfdD4gZGF0YTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIHRvIHJlcG9ydCBhbiBhdmFpbGFibGUgZnJhZ21lbnQgb2YgYSBHTlNTIG5hdmlnYXRpb24gbWVzc2FnZXMKKyAgICAgKiBmcm9tIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBHTlNTIG5hdmlnYXRpb24gc3VibWVzc2FnZS9zdWJmcmFtZSByZXByZXNlbnRhdGlvbi4KKyAgICAgKi8KKyAgICAgZ25zc05hdmlnYXRpb25NZXNzYWdlQ2IoR25zc05hdmlnYXRpb25NZXNzYWdlIG1lc3NhZ2UpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmkuaGFsIGIvZ25zcy8xLjAvSUduc3NOaS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5OGFiMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmkuaGFsCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CitpbXBvcnQgSUduc3NOaUNhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgTmV0d29yay1pbml0aWF0ZWQgKE5JKSBzdXBwb3J0LiBUaGlzIGludGVyZmFjZSBpcyB1c2VkCisgKiB0byByZXNwb25kIHRvIE5JIG5vdGlmaWNhdGlvbnMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NOaSB7CisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHRoZSBjYWxsYmFja3MgZm9yIEhBTCB0byB1c2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaGFuZGxlIHRvIElHbnNzTmlDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NOaUNhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFNlbmRzIGEgcmVzcG9uc2UgdG8gSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG5vdGlmSWQgQW4gSUQgZ2VuZXJhdGVkIGJ5IEhBTCB0byBhc3NvY2lhdGUgTkkgbm90aWZpY2F0aW9ucyBhbmQKKyAgICAgKiBmcmFtZXdvcmsgcmVzcG9uc2VzLgorICAgICAqIEBwYXJhbSB1c2VyUmVzcG9uc2UgQSBHTlNTIE5pIHJlc3BvbnNlIGluZGljYXRpbmcgaWYgdGhlIG5vdGlmaWNhdGlvbiB3YXMKKyAgICAgKiBhY2NlcHRlZCwgZGVuaWVkIG9yIG5vdCByZXNwb25kZWQgdG8uCisgICAgICovCisgICAgcmVzcG9uZChpbnQzMl90IG5vdGlmSWQsIEduc3NVc2VyUmVzcG9uc2VUeXBlIHVzZXJSZXNwb25zZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NOaUNhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UzMDcxYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBHTlNTIE5ldHdvcmsgSW5pdGlhdGVkIGNhbGxiYWNrIGludGVyZmFjZS4gKi8KK2ludGVyZmFjZSBJR25zc05pQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEduc3NOaVR5cGUgY29uc3RhbnRzCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OSV9UWVBFXyIpCisgICAgZW51bSBHbnNzTmlUeXBlIDogdWludDhfdCB7CisgICAgICAgIFZPSUNFICAgICAgICAgICA9IDEsCisgICAgICAgIFVNVFNfU1VQTCAgICAgICA9IDIsCisgICAgICAgIFVNVFNfQ1RSTF9QTEFORSA9IDMsCisgICAgICAgIEVNRVJHRU5DWV9TVVBMICA9IDQKKyAgICB9OworCisgICAgLyoqCisgICAgICogR25zc05pTm90aWZ5RmxhZ3MgY29uc3RhbnRzCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OSV8iKQorICAgIGVudW0gR25zc05pTm90aWZ5RmxhZ3MgOiB1aW50MzJfdCB7CisgICAgICAgIC8qKiBOSSByZXF1aXJlcyBub3RpZmljYXRpb24gKi8KKyAgICAgICAgTkVFRF9OT1RJRlkgICAgICA9IDB4MDAwMSwKKyAgICAgICAgLyoqIE5JIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiAqLworICAgICAgICBORUVEX1ZFUklGWSAgICAgID0gMHgwMDAyLAorICAgICAgICAvKiogTkkgcmVxdWlyZXMgcHJpdmFjeSBvdmVycmlkZSwgbm8gbm90aWZpY2F0aW9uL21pbmltYWwgdHJhY2UgKi8KKyAgICAgICAgUFJJVkFDWV9PVkVSUklERSA9IDB4MDAwNCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogR05TUyBOSSByZXNwb25zZXMsIHVzZWQgdG8gZGVmaW5lIHRoZSByZXNwb25zZSBpbgorICAgICAqIE5JIHN0cnVjdHVyZXMKKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX05JXyIpCisgICAgZW51bSBHbnNzVXNlclJlc3BvbnNlVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBSRVNQT05TRV9BQ0NFUFQgID0gMSwKKyAgICAgICAgUkVTUE9OU0VfREVOWSAgICA9IDIsCisgICAgICAgIFJFU1BPTlNFX05PUkVTUCAgPSAzLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBOSSBkYXRhIGVuY29kaW5nIHNjaGVtZQorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBlbnVtIEduc3NOaUVuY29kaW5nVHlwZSA6IGludDMyX3QgeworICAgICAgICBFTkNfTk9ORSAgICAgICAgICAgICAgPSAwLAorICAgICAgICBFTkNfU1VQTF9HU01fREVGQVVMVCAgPSAxLAorICAgICAgICBFTkNfU1VQTF9VVEY4ICAgICAgICAgPSAyLAorICAgICAgICBFTkNfU1VQTF9VQ1MyICAgICAgICAgPSAzLAorICAgICAgICBFTkNfVU5LTk9XTiAgICAgICAgICAgPSAtMSwKKyAgICB9OworCisgICAgLyoqIFJlcHJlc2VudHMgYW4gTkkgcmVxdWVzdCAqLworICAgIHN0cnVjdCBHbnNzTmlOb3RpZmljYXRpb257CisgICAgICAgIC8qKgorICAgICAgICAgKiBBbiBJRCBnZW5lcmF0ZWQgYnkgSEFMIHRvIGFzc29jaWF0ZSBOSSBub3RpZmljYXRpb25zIGFuZCBVSQorICAgICAgICAgKiByZXNwb25zZXMuCisgICAgICAgICAqLworICAgICAgICBpbnQzMl90IG5vdGlmaWNhdGlvbklkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHR5cGUgdXNlZCB0byBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgY2F0ZWdvcmllcyBvZiBOSQorICAgICAgICAgKiBldmVudHMsIHN1Y2ggYXMgVk9JQ0UsIFVNVFNfU1VQTCBldGMuCisgICAgICAgICAqLworICAgICAgICBHbnNzTmlUeXBlIG5pVHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm90aWZpY2F0aW9uL3ZlcmlmaWNhdGlvbiBvcHRpb25zLCBjb21iaW5hdGlvbnMgb2YgR25zc05pTm90aWZ5RmxhZ3MKKyAgICAgICAgICogY29uc3RhbnRzLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc05pTm90aWZ5RmxhZ3M+IG5vdGlmeUZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lb3V0IHBlcmlvZCB0byB3YWl0IGZvciB1c2VyIHJlc3BvbnNlLgorICAgICAgICAgKiBTZXQgdG8gMCBmb3Igbm8gdGltZW91dCBsaW1pdC4gU3BlY2lmaWVkIGluIHNlY29uZHMuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCB0aW1lb3V0U2VjOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IHJlc3BvbnNlIHdoZW4gdGltZW91dC4KKyAgICAgICAgICovCisgICAgICAgIEduc3NVc2VyUmVzcG9uc2VUeXBlIGRlZmF1bHRSZXNwb25zZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcmVxdWVzdGVyIG9mIHRoZSBuZXR3b3JrIGluaXRpdGF0ZWQgbG9jYXRpb24KKyAgICAgICAgICogcmVxdWVzdC4KKyAgICAgICAgICovCisgICAgICAgIHN0cmluZyByZXF1ZXN0b3JJZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm90aWZpY2F0aW9uIG1lc3NhZ2UuIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNlcnZpY2UoZm9yIGVnLiBTVVBMLXNlcnZpY2UpCisgICAgICAgICAqIHdobyBzZW50IHRoZSBuZXR3b3JrIGluaXRpYXRlZCBsb2NhdGlvbiByZXF1ZXN0LgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIG5vdGlmaWNhdGlvbk1lc3NhZ2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIHJlcXVlc3RvcklkIGRlY29kaW5nIHNjaGVtZS4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOaUVuY29kaW5nVHlwZSByZXF1ZXN0b3JJZEVuY29kaW5nOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBub3RpZmljYXRpb25JZCBkZWNvZGluZyBzY2hlbWUKKyAgICAgICAgICovCisgICAgICAgIEduc3NOaUVuY29kaW5nVHlwZSBub3RpZmljYXRpb25JZEVuY29kaW5nOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB3aXRoIGEgbmV0d29yayBpbml0aWF0ZWQgcmVxdWVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBub3RpZmljYXRpb24gbmV0d29yayBpbml0aWF0ZWQgcmVxdWVzdC4KKyAgICAgKi8KKyAgICBuaU5vdGlmeUNiKEduc3NOaU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzWHRyYS5oYWwgYi9nbnNzLzEuMC9JR25zc1h0cmEuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYzhmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc1h0cmEuaGFsCkBAIC0wLDAgKzEsMjcgQEAKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKK2ltcG9ydCBJR25zc1h0cmFDYWxsYmFjazsKKworLyoqCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IHRoZSBmcmFtZXdvcmsKKyAqIHRvIGRvd25sb2FkIFhUUkEgZGF0YS4KKyAqLworaW50ZXJmYWNlIElHbnNzWHRyYSB7CisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIFhUUkEgaW50ZXJmYWNlIGFuZCBwcm92aWRlcyB0aGUgY2FsbGJhY2sgcm91dGluZXMKKyAgICAgKiB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBJR25zc1h0cmFDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NYdHJhQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIEluamVjdCB0aGUgZG93bmxvYWRlZCBYVFJBIGRhdGEgaW50byB0aGUgR05TUyByZWNlaXZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB4dHJhRGF0YSBHTlNTIFhUUkEgZGF0YS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBpbmplY3RYdHJhRGF0YShzdHJpbmcgeHRyYURhdGEpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM4ZjFhZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzWHRyYUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDEyIEBACitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgaXMgdXNlZCBieSB0aGUgR05TUyBIQUwgdG8gcmVxdWVzdCBkb3dubG9hZCBvZiBYVFJBIGRhdGEuCisgKi8KK2ludGVyZmFjZSBJR25zc1h0cmFDYWxsYmFjayB7CisgICAvKioKKyAgICAqIENhbGxiYWNrIHRvIHJlcXVlc3QgdGhlIGNsaWVudCB0byBkb3dubG9hZCBYVFJBIGRhdGEuIFRoZSBjbGllbnQgc2hvdWxkCisgICAgKiBkb3dubG9hZCBYVFJBIGRhdGEgYW5kIGluamVjdCBpdCBieSBjYWxsaW5nIGluamVjdFh0cmFEYXRhKCkuCisgICAgKi8KKyAgIGRvd25sb2FkUmVxdWVzdENiKCk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM2ZGRkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5jcHAKQEAgLTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfQUduc3NJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJBR25zcy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gQUduc3M6OnNUaHJlYWRGdW5jQXJnc0xpc3Q7CitzcDxJQUduc3NDYWxsYmFjaz4gQUduc3M6OnNBR25zc0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBBR25zczo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitBR3BzQ2FsbGJhY2tzIEFHbnNzOjpzQUduc3NDYiA9IHsKKyAgICAuc3RhdHVzX2NiID0gc3RhdHVzQ2IsCisgICAgLmNyZWF0ZV90aHJlYWRfY2IgPSBjcmVhdGVUaHJlYWRDYgorfTsKKworQUduc3M6OkFHbnNzKGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFHcHNJZmFjZSkgOiBtQUduc3NJZmFjZShhR3BzSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCitBR25zczo6fkFHbnNzKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3ZvaWQgQUduc3M6OnN0YXR1c0NiKEFHcHNTdGF0dXMqIHN0YXR1cykgeworICAgIGlmIChzQUduc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQUdOU1Mgc3RhdHVzIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogTG9naWMgYmFzZWQgb24gQUduc3NTdGF0dXMgcHJvY2Vzc2luZyBieSBHbnNzTG9jYXRpb25Qcm92aWRlci4gU2l6ZSBvZgorICAgICAqIEFHcHNTdGF0dXMgaXMgY2hlY2tlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBzaW5jZSBzb21lIGRldmljZXMgbWF5CisgICAgICogYmUgc2VuZGluZyBvdXQgYW4gb2xkZXIgdmVyc2lvbiBvZiBBR3BzU3RhdHVzIHRoYXQgb25seSBzdXBwb3J0cyBJUHY0LgorICAgICAqLworICAgIHNpemVfdCBzdGF0dXNTaXplID0gc3RhdHVzLT5zaXplOworICAgIGlmIChzdGF0dXMtPnNpemUgPT0gc2l6ZW9mKEFHcHNTdGF0dXMpKSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzLT5hZGRyLnNzX2ZhbWlseSkKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBBRl9JTkVUOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogc3NfZmFtaWx5IGluZGljYXRlcyBJUHY0LgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2luKiBpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyX2luKj4oJihzdGF0dXMtPmFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgSUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzSXBWNCBhR25zc1N0YXR1c0lwVjQgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAudHlwZSA9IHN0YXRpY19jYXN0PElBR25zc0NhbGxiYWNrOjpBR25zc1R5cGU+KHN0YXR1cy0+dHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KHN0YXR1cy0+c3RhdHVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pcFY0QWRkciA9IGluLT5zaW5fYWRkci5zX2FkZHIsCisgICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY0Q2IuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNENiKGFHbnNzU3RhdHVzSXBWNCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzc19mYW1pbHkgaW5kaWNhdGVzIElQdjYuIENhbGxiYWNrIHRvIGNsaWVudCB3aXRoIGFnbnNzU3RhdHVzSXBWNkNiLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgSUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzSXBWNiBhR25zc1N0YXR1c0lwVjY7CisKKyAgICAgICAgICAgICAgICAgICAgYUduc3NTdGF0dXNJcFY2LnR5cGUgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlPihzdGF0dXMtPnR5cGUpOworICAgICAgICAgICAgICAgICAgICBhR25zc1N0YXR1c0lwVjYuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy0+c3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42KiBpbjYgPSByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb2NrYWRkcl9pbjYgKj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihzdGF0dXMtPmFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCYoYUduc3NTdGF0dXNJcFY2LmlwVjZBZGRyWzBdKSwgaW42LT5zaW42X2FkZHIuczZfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFHbnNzU3RhdHVzSXBWNi5pcFY2QWRkci5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNkNiKGFHbnNzU3RhdHVzSXBWNik7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBBTE9HRSgiSW52YWxpZCBzc19mYW1pbHkgZm91bmQ6ICVkIiwgc3RhdHVzLT5hZGRyLnNzX2ZhbWlseSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHN0YXR1c1NpemUgPj0gc2l6ZW9mKEFHcHNTdGF0dXNfdjIpKSB7CisgICAgICAgIEFHcHNTdGF0dXNfdjIqIHN0YXR1c1YyID0gcmVpbnRlcnByZXRfY2FzdDxBR3BzU3RhdHVzX3YyKj4oc3RhdHVzKTsKKyAgICAgICAgdWludDMyX3QgaXBWNEFkZHIgPSBzdGF0dXNWMi0+aXBhZGRyOworICAgICAgICBJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNJcFY0IGFHbnNzU3RhdHVzSXBWNCA9IHsKKyAgICAgICAgICAgIC50eXBlID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzVHlwZT4oQUZfSU5FVCksCisgICAgICAgICAgICAuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KHN0YXR1cy0+c3RhdHVzKSwKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBGb3Igb2xkZXIgdmVyc2lvbnMgb2YgQUdwc1N0YXR1cywgY2hhbmdlIElQIGFkZHIgdG8gbmV0IG9yZGVyLiBUaGlzCisgICAgICAgICAgICAgKiB3YXMgZWFybGllciBiZWluZyBkb25lIGluIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAuaXBWNEFkZHIgPSBodG9ubChpcFY0QWRkcikKKyAgICAgICAgfTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY0Q2IuCisgICAgICAgICAqLworICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNENiKGFHbnNzU3RhdHVzSXBWNCk7CisgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIHNpemUgZm9yIEFHUFMgU3RhdHVzIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEFHbnNzOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zcyBmb2xsb3cuCisgKi8KK1JldHVybjx2b2lkPiBBR25zczo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNBR25zc0NiSWZhY2UgPSBjYWxsYmFjazsKKworICAgIG1BR25zc0lmYWNlLT5pbml0KCZzQUduc3NDYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubkNsb3NlZCgpICB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fY2xvc2VkKCkgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBBR25zczo6ZGF0YUNvbm5GYWlsZWQoKSAgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtQUduc3NJZmFjZS0+ZGF0YV9jb25uX2ZhaWxlZCgpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gQUduc3M6OnNldFNlcnZlcihJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgaG9zdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvcnQpIHsKKyAgICBpZiAobUFHbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUFHbnNzSWZhY2UtPnNldF9zZXJ2ZXIoc3RhdGljX2Nhc3Q8QUdwc1R5cGU+KHR5cGUpLCBob3N0bmFtZS5jX3N0cigpLCBwb3J0KSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubk9wZW4oY29uc3QgaGlkbF9zdHJpbmcmIGFwbiwgSUFHbnNzOjpBcG5JcFR5cGUgYXBuSXBUeXBlKSB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fb3Blbl93aXRoX2Fwbl9pcF90eXBlKGFwbi5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MTZfdD4oYXBuSXBUeXBlKSkgPT0gMCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE4ZWVkMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3MuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHNfaW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc0NhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBzdXBwb3J0LiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdworICogbWV0aG9kcyBmcm9tIElBR25zc0NhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsCisgKiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBBR25zcyA6IHB1YmxpYyBJQUduc3MgeworICAgIEFHbnNzKGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFncHNJZmFjZSk7CisgICAgfkFHbnNzKCk7CisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzIGludGVyZmFjZSBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUFHbnNzLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uRmFpbGVkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldFNlcnZlcihJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGhvc3RuYW1lLCBpbnQzMl90IHBvcnQpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBkYXRhQ29ubk9wZW4oY29uc3QgaGlkbF9zdHJpbmcmIGFwbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQUduc3M6OkFwbklwVHlwZSBhcG5JcFR5cGUpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElBR25zcyBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisgICAgc3RhdGljIHZvaWQgc3RhdHVzQ2IoQUdwc1N0YXR1cyogc3RhdHVzKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEFHcHNDYWxsYmFja3Mgc0FHbnNzQ2I7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEFHcHNJbnRlcmZhY2UqIG1BR25zc0lmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUFHbnNzQ2FsbGJhY2s+IHNBR25zc0NiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ1ODMyNwotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuY3BwCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0FHbnNzUmlsSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiQUduc3NSaWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEFHbnNzUmlsOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUFHbnNzUmlsQ2FsbGJhY2s+IEFHbnNzUmlsOjpzQUduc3NSaWxDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgQUduc3NSaWw6OnNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKworQUdwc1JpbENhbGxiYWNrcyBBR25zc1JpbDo6c0FHbnNzUmlsQ2IgPSB7CisgICAgLnJlcXVlc3Rfc2V0aWQgPSBBR25zc1JpbDo6cmVxdWVzdFNldElkLAorICAgIC5yZXF1ZXN0X3JlZmxvYyA9IEFHbnNzUmlsOjpyZXF1ZXN0UmVmTG9jLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gQUduc3NSaWw6OmNyZWF0ZVRocmVhZENiCit9OworCitBR25zc1JpbDo6QUduc3NSaWwoY29uc3QgQUdwc1JpbEludGVyZmFjZSogYUdwc1JpbElmYWNlKSA6IG1BR25zc1JpbElmYWNlKGFHcHNSaWxJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0FHbnNzUmlsOjp+QUduc3NSaWwoKSB7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKK30KKwordm9pZCBBR25zc1JpbDo6cmVxdWVzdFNldElkKHVpbnQzMl90IGZsYWdzKSB7CisgICAgaWYgKHNBR25zc1JpbENiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTUmlsIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzQUduc3NSaWxDYklmYWNlLT5yZXF1ZXN0U2V0SWRDYihmbGFncyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgQUduc3NSaWw6OnJlcXVlc3RSZWZMb2ModWludDMyX3QgLypmbGFncyovKSB7CisgICAgaWYgKHNBR25zc1JpbENiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTUmlsIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzQUduc3NSaWxDYklmYWNlLT5yZXF1ZXN0UmVmTG9jQ2IoKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEFHbnNzUmlsOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsIGZvbGxvdy4KK1JldHVybjx2b2lkPiBBR25zc1JpbDo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzUmlsQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzQUduc3NSaWxDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBtQUduc3NSaWxJZmFjZS0+aW5pdCgmc0FHbnNzUmlsQ2IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBBR25zc1JpbDo6c2V0UmVmTG9jYXRpb24oY29uc3QgSUFHbnNzUmlsOjpBR25zc1JlZkxvY2F0aW9uJiBhR25zc1JlZkxvY2F0aW9uKSAgeworICAgIGlmIChtQUduc3NSaWxJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3NSaWwgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEFHcHNSZWZMb2NhdGlvbiBhR25zc1JlZmxvYzsKKyAgICBhR25zc1JlZmxvYy50eXBlID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGFHbnNzUmVmTG9jYXRpb24udHlwZSk7CisKKyAgICBhdXRvJiBjZWxsSUQgPSBhR25zc1JlZkxvY2F0aW9uLmNlbGxJRDsKKyAgICBhR25zc1JlZmxvYy51LmNlbGxJRCA9IHsKKyAgICAgICAgLnR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oY2VsbElELnR5cGUpLAorICAgICAgICAubWNjID0gY2VsbElELm1jYywKKyAgICAgICAgLm1uYyA9IGNlbGxJRC5tbmMsCisgICAgICAgIC5sYWMgPSBjZWxsSUQubGFjLAorICAgICAgICAuY2lkID0gY2VsbElELmNpZCwKKyAgICAgICAgLnRhYyA9IGNlbGxJRC50YWMsCisgICAgICAgIC5wY2lkID0gY2VsbElELnBjaWQKKyAgICB9OworCisgICAgbUFHbnNzUmlsSWZhY2UtPnNldF9yZWZfbG9jYXRpb24oJmFHbnNzUmVmbG9jLCBzaXplb2YoYUduc3NSZWZsb2MpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQUduc3NSaWw6OnNldFNldElkKElBR25zc1JpbDo6U2V0SURUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBzZXRpZCkgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1BR25zc1JpbElmYWNlLT5zZXRfc2V0X2lkKHN0YXRpY19jYXN0PHVpbnQxNl90Pih0eXBlKSwgc2V0aWQuY19zdHIoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBBR25zc1JpbDo6dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFHbnNzUmlsOjpOZXR3b3JrVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByb2FtaW5nKSB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtQUduc3NSaWxJZmFjZS0+dXBkYXRlX25ldHdvcmtfc3RhdGUoY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHR5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2FtaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyIC8qIGV4dHJhX2luZm8gKi8pOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gQUduc3NSaWw6OnVwZGF0ZU5ldHdvcmtBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBhcG4pICB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtQUduc3NSaWxJZmFjZS0+dXBkYXRlX25ldHdvcmtfYXZhaWxhYmlsaXR5KGF2YWlsYWJsZSwgYXBuLmNfc3RyKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5oIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMTVhOWUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzUmlsLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzUmlsLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc1JpbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc1JpbENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBSSUwgc3VwcG9ydC4gQW4gQXNzaXN0ZWQgR05TUyBSYWRpbyBJbnRlcmZhY2UgTGF5ZXIgaW50ZXJmYWNlCisgKiBhbGxvd3MgdGhlIEdOU1MgY2hpcHNldCB0byByZXF1ZXN0IHJhZGlvIGludGVyZmFjZSBsYXllciBpbmZvcm1hdGlvbiBmcm9tIEFuZHJvaWQgcGxhdGZvcm0uCisgKiBFeGFtcGxlcyBvZiBzdWNoIGluZm9ybWF0aW9uIGFyZSByZWZlcmVuY2UgbG9jYXRpb24sIHVuaXF1ZSBzdWJzY3JpYmVyIElELCBwaG9uZSBudW1iZXIgc3RyaW5nCisgKiBhbmQgbmV0d29yayBhdmFpbGFiaWxpdHkgY2hhbmdlcy4gQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tCisgKiBJQUduc3NpUmlsQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgQUduc3NSaWwgOiBwdWJsaWMgSUFHbnNzUmlsIHsKKyAgICBBR25zc1JpbChjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBhR3BzUmlsSWZhY2UpOworICAgIH5BR25zc1JpbCgpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJQUduc3NSaWwuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJQUduc3NSaWxDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0UmVmTG9jYXRpb24oY29uc3QgSUFHbnNzUmlsOjpBR25zc1JlZkxvY2F0aW9uJiBhZ25zc1JlZmxvY2F0aW9uKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U2V0SWQoSUFHbnNzUmlsOjpTZXRJRFR5cGUgdHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmIHNldGlkKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFHbnNzUmlsOjpOZXR3b3JrVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByb2FtaW5nKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gdXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgY29uc3QgaGlkbF9zdHJpbmcmIGFwbikgb3ZlcnJpZGU7CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFNldElkKHVpbnQzMl90IGZsYWdzKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UmVmTG9jKHVpbnQzMl90IGZsYWdzKTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhpcyBtZXRob2QgaXMgbm90IHBhcnQgb2YgdGhlIElBR25zc1JpbCBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBBR3BzUmlsQ2FsbGJhY2tzIHNBR25zc1JpbENiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBtQUduc3NSaWxJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElBR25zc1JpbENhbGxiYWNrPiBzQUduc3NSaWxDYklmYWNlOworICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0FHbnNzUmlsX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9nbnNzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRkYTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDU2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFRocmVhZENyZWF0aW9uV3JhcHBlci5jcHAgXAorICAgIEFHbnNzLmNwcCBcCisgICAgQUduc3NSaWwuY3BwIFwKKyAgICBHbnNzLmNwcCBcCisgICAgR25zc0JhdGNoaW5nLmNwcCBcCisgICAgR25zc0RlYnVnLmNwcCBcCisgICAgR25zc0dlb2ZlbmNpbmcuY3BwIFwKKyAgICBHbnNzTWVhc3VyZW1lbnQuY3BwIFwKKyAgICBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwIFwKKyAgICBHbnNzTmkuY3BwIFwKKyAgICBHbnNzWHRyYS5jcHAgXAorICAgIEduc3NDb25maWd1cmF0aW9uLmNwcCBcCisgICAgR25zc1V0aWxzLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCBcCisgICAgbGliaGFyZHdhcmUKKworTE9DQUxfQ0ZMQUdTICs9IC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliYmluZGVyIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zcy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmY2VlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuY3BwCkBAIC0wLDAgKzEsNzYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzLmgiCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBHbnNzOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NDYWxsYmFjaz4gR25zczo6c0duc3NDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zczo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworYm9vbCBHbnNzOjpzV2FrZWxvY2tIZWxkR25zcyA9IGZhbHNlOworYm9vbCBHbnNzOjpzV2FrZWxvY2tIZWxkRnVzZWQgPSBmYWxzZTsKKworR3BzQ2FsbGJhY2tzIEduc3M6OnNHbnNzQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoR3BzQ2FsbGJhY2tzKSwKKyAgICAubG9jYXRpb25fY2IgPSBsb2NhdGlvbkNiLAorICAgIC5zdGF0dXNfY2IgPSBzdGF0dXNDYiwKKyAgICAuc3Zfc3RhdHVzX2NiID0gZ3BzU3ZTdGF0dXNDYiwKKyAgICAubm1lYV9jYiA9IG5tZWFDYiwKKyAgICAuc2V0X2NhcGFiaWxpdGllc19jYiA9IHNldENhcGFiaWxpdGllc0NiLAorICAgIC5hY3F1aXJlX3dha2Vsb2NrX2NiID0gYWNxdWlyZVdha2Vsb2NrQ2IsCisgICAgLnJlbGVhc2Vfd2FrZWxvY2tfY2IgPSByZWxlYXNlV2FrZWxvY2tDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiLAorICAgIC5yZXF1ZXN0X3V0Y190aW1lX2NiID0gcmVxdWVzdFV0Y1RpbWVDYiwKKyAgICAuc2V0X3N5c3RlbV9pbmZvX2NiID0gc2V0U3lzdGVtSW5mb0NiLAorICAgIC5nbnNzX3N2X3N0YXR1c19jYiA9IGduc3NTdlN0YXR1c0NiLAorfTsKKwordWludDMyX3QgR25zczo6c0NhcGFiaWxpdGllc0NhY2hlZCA9IDA7Cit1aW50MTZfdCBHbnNzOjpzWWVhck9mSHdDYWNoZWQgPSAwOworCitHbnNzOjpHbnNzKGdwc19kZXZpY2VfdCogZ25zc0RldmljZSkgOgorICAgICAgICBtRGVhdGhSZWNpcGllbnQobmV3IEduc3NIaWRsRGVhdGhSZWNpcGllbnQodGhpcykpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworCisgICAgaWYgKGduc3NEZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgZGV2aWNlX3QgaGFuZGxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbUduc3NJZmFjZSA9IGduc3NEZXZpY2UtPmdldF9ncHNfaW50ZXJmYWNlKGduc3NEZXZpY2UpOworfQorCitHbnNzOjp+R25zcygpIHsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworfQorCit2b2lkIEduc3M6OmxvY2F0aW9uQ2IoR3BzTG9jYXRpb24qIGxvY2F0aW9uKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBsb2NhdGlvbiBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6Okduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzTG9jYXRpb25DYihnbnNzTG9jYXRpb24pOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6OnN0YXR1c0NiKEdwc1N0YXR1cyogZ25zc1N0YXR1cykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZ25zc1N0YXR1cyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBHcHNTdGF0dXMgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdGF0dXNWYWx1ZSBzdGF0dXMgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NDYWxsYmFjazo6R25zc1N0YXR1c1ZhbHVlPihnbnNzU3RhdHVzLT5zdGF0dXMpOworCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdGF0dXNDYihzdGF0dXMpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6Omduc3NTdlN0YXR1c0NiKEduc3NTdlN0YXR1cyogc3RhdHVzKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBzdGF0dXMgZnJvbSBHTlNTIEhBTCAlcyIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdlN0YXR1cyBzdlN0YXR1czsKKyAgICBzdlN0YXR1cy5udW1TdnMgPSBzdGF0dXMtPm51bV9zdnM7CisKKyAgICBpZiAoc3ZTdGF0dXMubnVtU3ZzID4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEduc3NNYXg6OlNWU19DT1VOVCkpIHsKKyAgICAgICAgQUxPR1coIlRvbyBtYW55IHNhdGVsbGl0ZXMgJXpkLiBDbGFtcHMgdG8gJWQuIiwgc3ZTdGF0dXMubnVtU3ZzLCBHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgICAgICBzdlN0YXR1cy5udW1TdnMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN2U3RhdHVzLm51bVN2czsgaSsrKSB7CisgICAgICAgIGF1dG8gc3ZJbmZvID0gc3RhdHVzLT5nbnNzX3N2X2xpc3RbaV07CisgICAgICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdkluZm8gZ25zc1N2SW5mbyA9IHsKKyAgICAgICAgICAgIC5zdmlkID0gc3ZJbmZvLnN2aWQsCisgICAgICAgICAgICAuY29uc3RlbGxhdGlvbiA9IHN0YXRpY19jYXN0PAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzQ29uc3RlbGxhdGlvblR5cGU+KAorICAgICAgICAgICAgICAgIHN2SW5mby5jb25zdGVsbGF0aW9uKSwKKyAgICAgICAgICAgIC5jTjBEYmh6ID0gc3ZJbmZvLmNfbjBfZGJoeiwKKyAgICAgICAgICAgIC5lbGV2YXRpb25EZWdyZWVzID0gc3ZJbmZvLmVsZXZhdGlvbiwKKyAgICAgICAgICAgIC5hemltdXRoRGVncmVlcyA9IHN2SW5mby5hemltdXRoLAorICAgICAgICAgICAgLy8gT2xkZXIgY2hpcHNldHMgZG8gbm90IHByb3ZpZGUgY2FycmllciBmcmVxdWVuY3ksIGhlbmNlCisgICAgICAgICAgICAvLyBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgZmxhZyBhbmQgdGhlIGNhcnJpZXJGcmVxdWVuY3lIeiBmaWVsZHMKKyAgICAgICAgICAgIC8vIGFyZSBub3Qgc2V0LiBTbyB3ZSBhcmUgcmVzZXR0aW5nIGJvdGggZmllbGRzIGhlcmUuCisgICAgICAgICAgICAuc3ZGbGFnID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oCisgICAgICAgICAgICAgICAgc3ZJbmZvLmZsYWdzICY9IH4oc3RhdGljX2Nhc3Q8dWludDhfdD4oCisgICAgICAgICAgICAgICAgICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfQ0FSUklFUl9GUkVRVUVOQ1kpKSksCisgICAgICAgICAgICAuY2FycmllckZyZXF1ZW5jeUh6ID0gMH07CisgICAgICAgIHN2U3RhdHVzLmduc3NTdkxpc3RbaV0gPSBnbnNzU3ZJbmZvOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzU3ZTdGF0dXNDYihzdlN0YXR1cyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8qCisgKiBUaGlzIGVudW0gaXMgdXNlZCBieSBncHNTdlN0YXR1c0NiKCkgbWV0aG9kIGJlbG93IHRvIGNvbnZlcnQgR3BzU3ZTdGF0dXMKKyAqIHRvIEduc3NTdlN0YXR1cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gSXQgaXMgb25seSB1c2VkIGJ5IHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCitlbnVtIFN2aWRWYWx1ZXMgOiB1aW50MTZfdCB7CisgICAgR0xPTkFTU19TVklEX09GRlNFVCA9IDY0LAorICAgIEdMT05BU1NfU1ZJRF9DT1VOVCA9IDI0LAorICAgIEJFSURPVV9TVklEX09GRlNFVCA9IDIwMCwKKyAgICBCRUlET1VfU1ZJRF9DT1VOVCA9IDM1LAorICAgIFNCQVNfU1ZJRF9NSU4gPSAzMywKKyAgICBTQkFTX1NWSURfTUFYID0gNjQsCisgICAgU0JBU19TVklEX0FERCA9IDg3LAorICAgIFFaU1NfU1ZJRF9NSU4gPSAxOTMsCisgICAgUVpTU19TVklEX01BWCA9IDIwMAorfTsKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgY29kZSB0aGF0IGNvbnZlcnRzIEdwc1N2U3RhdHVzIHRvIEduc3NTdlN0YXR1cyBpcyBtb3ZlZCBoZXJlIGZyb20KKyAqIEduc3NMb2NhdGlvblByb3ZpZGVyLiBHbnNzTG9jYXRpb25Qcm92aWRlciBkb2VzIG5vdCByZXF1aXJlIGl0IGFueW1vcmUgc2luY2UgR3BzU3ZTdGF0dXMgaXMKKyAqIGJlaW5nIGRlcHJlY2F0ZWQgYW5kIGlzIG5vIGxvbmdlciBwYXJ0IG9mIHRoZSBHTlNTIGludGVyZmFjZS4KKyAqLwordm9pZCBHbnNzOjpncHNTdlN0YXR1c0NiKEdwc1N2U3RhdHVzKiBzdkluZm8pIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN2SW5mbyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIHN0YXR1cyBmcm9tIEdOU1MgSEFMICVzIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzIHN2U3RhdHVzOworICAgIHN2U3RhdHVzLm51bVN2cyA9IHN2SW5mby0+bnVtX3N2czsKKyAgICAvKgorICAgICAqIENsYW1wIHRoZSBsaXN0IHNpemUgc2luY2UgR25zc1N2U3RhdHVzIGNhbiBzdXBwb3J0IGEgbWF4aW11bSBvZgorICAgICAqIEduc3NNYXg6OlNWU19DT1VOVCBlbnRyaWVzLgorICAgICAqLworICAgIGlmIChzdlN0YXR1cy5udW1TdnMgPiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKSkgeworICAgICAgICBBTE9HVygiVG9vIG1hbnkgc2F0ZWxsaXRlcyAlemQuIENsYW1wcyB0byAlZC4iLCBzdlN0YXR1cy5udW1TdnMsIEduc3NNYXg6OlNWU19DT1VOVCk7CisgICAgICAgIHN2U3RhdHVzLm51bVN2cyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgIH0KKworICAgIHVpbnQzMl90IGVwaGVtZXJpc01hc2sgPSBzdkluZm8tPmVwaGVtZXJpc19tYXNrOworICAgIHVpbnQzMl90IGFsbWFuYWNNYXNrID0gc3ZJbmZvLT5hbG1hbmFjX21hc2s7CisgICAgdWludDMyX3QgdXNlZEluRml4TWFzayA9IHN2SW5mby0+dXNlZF9pbl9maXhfbWFzazsKKyAgICAvKgorICAgICAqIENvbnZlcnNpb24gZnJvbSBHcHNTdkluZm8gdG8gSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyBoYXBwZW5zIGJlbG93LgorICAgICAqLworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ZTdGF0dXMubnVtU3ZzOyBpKyspIHsKKyAgICAgICAgSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyYgaW5mbyA9IHN2U3RhdHVzLmduc3NTdkxpc3RbaV07CisgICAgICAgIGluZm8uc3ZpZCA9IHN2SW5mby0+c3ZfbGlzdFtpXS5wcm47CisgICAgICAgIGlmIChpbmZvLnN2aWQgPj0gMSAmJiBpbmZvLnN2aWQgPD0gMzIpIHsKKyAgICAgICAgICAgIGluZm8uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+IEdMT05BU1NfU1ZJRF9PRkZTRVQgJiYKKyAgICAgICAgICAgICAgICAgICBpbmZvLnN2aWQgPD0gR0xPTkFTU19TVklEX09GRlNFVCArIEdMT05BU1NfU1ZJRF9DT1VOVCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpHTE9OQVNTOworICAgICAgICAgICAgaW5mby5zdmlkIC09IEdMT05BU1NfU1ZJRF9PRkZTRVQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zdmlkID4gQkVJRE9VX1NWSURfT0ZGU0VUICYmCisgICAgICAgICAgICAgICAgIGluZm8uc3ZpZCA8PSBCRUlET1VfU1ZJRF9PRkZTRVQgKyBCRUlET1VfU1ZJRF9DT1VOVCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpCRUlET1U7CisgICAgICAgICAgICBpbmZvLnN2aWQgLT0gQkVJRE9VX1NWSURfT0ZGU0VUOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+PSBTQkFTX1NWSURfTUlOICYmIGluZm8uc3ZpZCA8PSBTQkFTX1NWSURfTUFYKSB7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlNCQVM7CisgICAgICAgICAgICBpbmZvLnN2aWQgKz0gU0JBU19TVklEX0FERDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnN2aWQgPj0gUVpTU19TVklEX01JTiAmJiBpbmZvLnN2aWQgPD0gUVpTU19TVklEX01BWCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpRWlNTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0QoIlVua25vd24gY29uc3RlbGxhdGlvbiB0eXBlIHdpdGggU3ZpZCA9ICVkLiIsIGluZm8uc3ZpZCk7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlVOS05PV047CisgICAgICAgIH0KKworICAgICAgICBpbmZvLmNOMERiaHogPSBzdkluZm8tPnN2X2xpc3RbaV0uc25yOworICAgICAgICBpbmZvLmVsZXZhdGlvbkRlZ3JlZXMgPSBzdkluZm8tPnN2X2xpc3RbaV0uZWxldmF0aW9uOworICAgICAgICBpbmZvLmF6aW11dGhEZWdyZWVzID0gc3ZJbmZvLT5zdl9saXN0W2ldLmF6aW11dGg7CisgICAgICAgIC8vIFRPRE86IGIvMzE3MDIyMzYKKyAgICAgICAgaW5mby5zdkZsYWcgPSBzdGF0aWNfY2FzdDx1aW50OF90PihJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6Tk9ORSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogT25seSBHUFMgaW5mbyBpcyB2YWxpZCBmb3IgdGhlc2UgZmllbGRzLCBhcyB0aGVzZSBtYXNrcyBhcmUganVzdCAzMgorICAgICAgICAgKiBiaXRzLCBieSBHUFMgcHJuLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGluZm8uY29uc3RlbGxhdGlvbiA9PSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OkdQUykgeworICAgICAgICAgICAgaW50MzJfdCBzdmlkTWFzayA9ICgxIDw8IChpbmZvLnN2aWQgLSAxKSk7CisgICAgICAgICAgICBpZiAoKGVwaGVtZXJpc01hc2sgJiBzdmlkTWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgIGluZm8uc3ZGbGFnIHw9IElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfRVBIRU1FUklTX0RBVEE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGFsbWFuYWNNYXNrICYgc3ZpZE1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbmZvLnN2RmxhZyB8PSBJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6SEFTX0FMTUFOQUNfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgodXNlZEluRml4TWFzayAmIHN2aWRNYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW5mby5zdkZsYWcgfD0gSUduc3NDYWxsYmFjazo6R25zc1N2RmxhZ3M6OlVTRURfSU5fRklYOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdlN0YXR1c0NiKHN2U3RhdHVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzOjpubWVhQ2IoR3BzVXRjVGltZSB0aW1lc3RhbXAsIGNvbnN0IGNoYXIqIG5tZWEsIGludCBsZW5ndGgpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nIG5tZWFTdHJpbmc7CisgICAgbm1lYVN0cmluZy5zZXRUb0V4dGVybmFsKG5tZWEsIGxlbmd0aCk7CisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NObWVhQ2IodGltZXN0YW1wLCBubWVhU3RyaW5nKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzOjpzZXRDYXBhYmlsaXRpZXNDYih1aW50MzJfdCBjYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTZXRDYXBhYmlsaXRlc0NiKGNhcGFiaWxpdGllcyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9CisKKyAgICAvLyBTYXZlIGZvciByZWNvbm5lY3Rpb24gd2hlbiBzb21lIGxlZ2FjeSBoYWwncyBkb24ndCByZXNlbmQgdGhpcyBpbmZvCisgICAgc0NhcGFiaWxpdGllc0NhY2hlZCA9IGNhcGFiaWxpdGllczsKK30KKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tDYigpIHsKKyAgICBhY3F1aXJlV2FrZWxvY2tHbnNzKCk7Cit9CisKK3ZvaWQgR25zczo6cmVsZWFzZVdha2Vsb2NrQ2IoKSB7CisgICAgcmVsZWFzZVdha2Vsb2NrR25zcygpOworfQorCisKK3ZvaWQgR25zczo6YWNxdWlyZVdha2Vsb2NrR25zcygpIHsKKyAgICBzV2FrZWxvY2tIZWxkR25zcyA9IHRydWU7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjpyZWxlYXNlV2FrZWxvY2tHbnNzKCkgeworICAgIHNXYWtlbG9ja0hlbGRHbnNzID0gZmFsc2U7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tGdXNlZCgpIHsKKyAgICBzV2FrZWxvY2tIZWxkRnVzZWQgPSB0cnVlOworICAgIHVwZGF0ZVdha2Vsb2NrKCk7Cit9CisKK3ZvaWQgR25zczo6cmVsZWFzZVdha2Vsb2NrRnVzZWQoKSB7CisgICAgc1dha2Vsb2NrSGVsZEZ1c2VkID0gZmFsc2U7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjp1cGRhdGVXYWtlbG9jaygpIHsKKyAgICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgdGhlIGxhc3QgcmVxdWVzdCAtIGluIGNhc2UgdGhlIHdha2UgbG9jayBpbiB0aGUgbGF5ZXIgYWJvdmUgaXMgcmVmZXJlbmNlCisgICAgLy8gY291bnRlZC4KKyAgICBzdGF0aWMgYm9vbCBzV2FrZWxvY2tIZWxkID0gZmFsc2U7CisKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHNXYWtlbG9ja0hlbGRHbnNzIHx8IHNXYWtlbG9ja0hlbGRGdXNlZCkgeworICAgICAgICBpZiAoIXNXYWtlbG9ja0hlbGQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogR05TUyBIQUwgV2FrZWxvY2sgYWNxdWlyZWQgZHVlIHRvIGdwczogJWQsIGZ1c2VkOiAlZCIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICBzV2FrZWxvY2tIZWxkR25zcywgc1dha2Vsb2NrSGVsZEZ1c2VkKTsKKyAgICAgICAgICAgIHNXYWtlbG9ja0hlbGQgPSB0cnVlOworICAgICAgICAgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NBY3F1aXJlV2FrZWxvY2tDYigpOworICAgICAgICAgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNXYWtlbG9ja0hlbGQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogR05TUyBIQUwgV2FrZWxvY2sgcmVsZWFzZWQiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSAgeworICAgICAgICAgICAgLy8gVG8gYXZvaWQgYnVybmluZyBwb3dlciwgYWx3YXlzIHJlbGVhc2UsIGV2ZW4gaWYgbG9naWMgZ290IGhlcmUgd2l0aCBzV2FrZWxvY2sgZmFsc2UKKyAgICAgICAgICAgIC8vIHdoaWNoIGl0IHNob3VsZG4ndCwgdW5sZXNzIHVuZGVybHlpbmcgKi5oIGltcGxlbWVudGF0aW9uIG1ha2VzIGR1cGxpY2F0ZSByZXF1ZXN0cy4KKyAgICAgICAgICAgIEFMT0dXKCIlczogR05TUyBIQUwgV2FrZWxvY2sgcmVsZWFzZWQsIGR1cGxpY2F0ZSByZXF1ZXN0IiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgICAgIHNXYWtlbG9ja0hlbGQgPSBmYWxzZTsKKyAgICAgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NSZWxlYXNlV2FrZWxvY2tDYigpOworICAgICAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBHbnNzOjpyZXF1ZXN0VXRjVGltZUNiKCkgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1JlcXVlc3RUaW1lQ2IoKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3B0aHJlYWRfdCBHbnNzOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCit2b2lkIEduc3M6OnNldFN5c3RlbUluZm9DYihjb25zdCBMZWdhY3lHbnNzU3lzdGVtSW5mbyogaW5mbykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5mbyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIEduc3NTeXN0ZW1JbmZvIGZyb20gR05TUyBIQUwgJXMiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyBnbnNzSW5mbyA9IHsKKyAgICAgICAgLnllYXJPZkh3ID0gaW5mby0+eWVhcl9vZl9odworICAgIH07CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1NldFN5c3RlbUluZm9DYihnbnNzSW5mbyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorCisgICAgLy8gU2F2ZSBmb3IgcmVjb25uZWN0aW9uIHdoZW4gc29tZSBsZWdhY3kgaGFsJ3MgZG9uJ3QgcmVzZW5kIHRoaXMgaW5mbworICAgIHNZZWFyT2ZId0NhY2hlZCA9IGluZm8tPnllYXJfb2ZfaHc7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0NhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGNhbGxiYWNrID09IG51bGxwdHIpICB7CisgICAgICAgIEFMT0dFKCIlczogTnVsbCBjYWxsYmFjayBpZ25vcmVkIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHNHbnNzQ2JJZmFjZSAhPSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCIlcyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuIFVuZXhwZWN0ZWQgdW5sZXNzIHRlc3QuIiwgX19mdW5jX18pOworICAgICAgICBzR25zc0NiSWZhY2UtPnVubGlua1RvRGVhdGgobURlYXRoUmVjaXBpZW50KTsKKyAgICB9CisKKyAgICBzR25zc0NiSWZhY2UgPSBjYWxsYmFjazsKKyAgICBjYWxsYmFjay0+bGlua1RvRGVhdGgobURlYXRoUmVjaXBpZW50LCAwIC8qY29va2llKi8pOworCisgICAgLy8gSWYgdGhpcyB3YXMgcmVjZWl2ZWQgaW4gdGhlIHBhc3QsIHNlbmQgaXQgdXAgYWdhaW4gdG8gcmVmcmVzaCBjYWxsZXIuCisgICAgLy8gbUduc3NJZmFjZSB3aWxsIG92ZXJyaWRlIGFmdGVyIGluaXQoKSBpcyBjYWxsZWQgYmVsb3csIGlmIG5lZWRlZAorICAgIC8vICh0aG91Z2ggaXQncyB1bmxpa2VseSB0aGUgZ3BzLmggY2FwYWJpbGl0aWVzIG9yIHN5c3RlbSBpbmZvIHdpbGwgY2hhbmdlLikKKyAgICBpZiAoc0NhcGFiaWxpdGllc0NhY2hlZCAhPSAwKSB7CisgICAgICAgIHNldENhcGFiaWxpdGllc0NiKHNDYXBhYmlsaXRpZXNDYWNoZWQpOworICAgIH0KKyAgICBpZiAoc1llYXJPZkh3Q2FjaGVkICE9IDApIHsKKyAgICAgICAgTGVnYWN5R25zc1N5c3RlbUluZm8gaW5mbzsKKyAgICAgICAgaW5mby55ZWFyX29mX2h3ID0gc1llYXJPZkh3Q2FjaGVkOworICAgICAgICBzZXRTeXN0ZW1JbmZvQ2IoJmluZm8pOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+aW5pdCgmc0duc3NDYikgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzOjpzdGFydCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zdGFydCgpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6c3RvcCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zdG9wKCkgPT0gMCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzOjpjbGVhbnVwKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NJZmFjZS0+Y2xlYW51cCgpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6aW5qZWN0TG9jYXRpb24oZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhY2N1cmFjeU1ldGVycykgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1HbnNzSWZhY2UtPmluamVjdF9sb2NhdGlvbihsYXRpdHVkZURlZ3JlZXMsIGxvbmdpdHVkZURlZ3JlZXMsIGFjY3VyYWN5TWV0ZXJzKSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OmluamVjdFRpbWUoaW50NjRfdCB0aW1lTXMsIGludDY0X3QgdGltZVJlZmVyZW5jZU1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB1bmNlcnRhaW50eU1zKSB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5pbmplY3RfdGltZSh0aW1lTXMsIHRpbWVSZWZlcmVuY2VNcywgdW5jZXJ0YWludHlNcykgPT0gMCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzOjpkZWxldGVBaWRpbmdEYXRhKElHbnNzOjpHbnNzQWlkaW5nRGF0YSBhaWRpbmdEYXRhRmxhZ3MpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzSWZhY2UtPmRlbGV0ZV9haWRpbmdfZGF0YShzdGF0aWNfY2FzdDxHcHNBaWRpbmdEYXRhPihhaWRpbmdEYXRhRmxhZ3MpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OnNldFBvc2l0aW9uTW9kZShJR25zczo6R25zc1Bvc2l0aW9uTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwcmVmZXJyZWRBY2N1cmFjeU1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+c2V0X3Bvc2l0aW9uX21vZGUoc3RhdGljX2Nhc3Q8R3BzUG9zaXRpb25Nb2RlPihtb2RlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdwc1Bvc2l0aW9uUmVjdXJyZW5jZT4ocmVjdXJyZW5jZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXJyZWRUaW1lTXMpID09IDApOworfQorCitSZXR1cm48c3A8SUFHbnNzUmlsPj4gR25zczo6Z2V0RXh0ZW5zaW9uQUduc3NSaWwoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzUmlsID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgQUdwc1JpbEludGVyZmFjZSogYWdwc1JpbElmYWNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQUdwc1JpbEludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oQUdQU19SSUxfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChhZ3BzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NSaWwgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzUmlsID0gbmV3IEFHbnNzUmlsKGFncHNSaWxJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1HbnNzUmlsOworfQorCitSZXR1cm48c3A8SUduc3NDb25maWd1cmF0aW9uPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzQ29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqIGduc3NDb25maWdJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR05TU19DT05GSUdVUkFUSU9OX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChnbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NDb25maWd1cmF0aW9uIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc0NvbmZpZyA9IG5ldyBHbnNzQ29uZmlndXJhdGlvbihnbnNzQ29uZmlnSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc0NvbmZpZzsKK30KKworUmV0dXJuPHNwPElHbnNzR2VvZmVuY2luZz4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc0dlb2ZlbmNpbmdJbnRlcmZhY2UqIGdwc0dlb2ZlbmNpbmdJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfR0VPRkVOQ0lOR19JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBuZXcgR25zc0dlb2ZlbmNpbmcoZ3BzR2VvZmVuY2luZ0lmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc0dlb2ZlbmNpbmdJZmFjZTsKK30KKworUmV0dXJuPHNwPElBR25zcz4+IEduc3M6OmdldEV4dGVuc2lvbkFHbnNzKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFncHNJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEFHcHNJbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEFHUFNfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChhZ3BzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEFHbnNzIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtQUduc3NJZmFjZSA9IG5ldyBBR25zcyhhZ3BzSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtQUduc3NJZmFjZTsKK30KKworUmV0dXJuPHNwPElHbnNzTmk+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzTmkoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzTmkgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEdwc05pSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfTklfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChncHNOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTmkgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzTmkgPSBuZXcgR25zc05pKGdwc05pSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc05pOworfQorCitSZXR1cm48c3A8SUduc3NNZWFzdXJlbWVudD4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NNZWFzdXJlbWVudCgpIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc01lYXN1cmVtZW50ID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzTWVhc3VyZW1lbnRJbnRlcmZhY2UqIGdwc01lYXN1cmVtZW50SWZhY2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19NRUFTVVJFTUVOVF9JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzTWVhc3VyZW1lbnRJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXMgR25zc01lYXN1cmVtZW50IGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc01lYXN1cmVtZW50ID0gbmV3IEduc3NNZWFzdXJlbWVudChncHNNZWFzdXJlbWVudElmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbUduc3NNZWFzdXJlbWVudDsKK30KKworUmV0dXJuPHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKSB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc05hdmlnYXRpb25NZXNzYWdlSW50ZXJmYWNlKiBncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfTkFWSUdBVElPTl9NRVNTQUdFX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsCisgICAgICAgICAgICAgICAgICBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlID0gbmV3IEduc3NOYXZpZ2F0aW9uTWVzc2FnZShncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc05hdmlnYXRpb25NZXNzYWdlOworfQorCitSZXR1cm48c3A8SUduc3NYdHJhPj4gR25zczo6Z2V0RXh0ZW5zaW9uWHRyYSgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNYdHJhSW50ZXJmYWNlKiBncHNYdHJhSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBHcHNYdHJhSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfWFRSQV9JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzWHRyYUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzWHRyYSBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzWHRyYUlmYWNlID0gbmV3IEduc3NYdHJhKGdwc1h0cmFJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbUduc3NYdHJhSWZhY2U7Cit9CisKK1JldHVybjxzcDxJR25zc0RlYnVnPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc0RlYnVnID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzRGVidWdJbnRlcmZhY2UqIGdwc0RlYnVnSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR1BTX0RFQlVHX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNEZWJ1Z0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogR25zc0RlYnVnIGludGVyZmFjZSBpcyBub3QgaW1wbGVtZW50ZWQgYnkgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NEZWJ1ZyA9IG5ldyBHbnNzRGVidWcoZ3BzRGVidWdJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbUduc3NEZWJ1ZzsKK30KKworUmV0dXJuPHNwPElHbnNzQmF0Y2hpbmc+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzQmF0Y2hpbmcgPT0gbnVsbHB0cikgeworICAgICAgICBod19tb2R1bGVfdCogbW9kdWxlOworICAgICAgICBjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSA9IG51bGxwdHI7CisgICAgICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKEZVU0VEX0xPQ0FUSU9OX0hBUkRXQVJFX01PRFVMRV9JRCwgKGh3X21vZHVsZV90IGNvbnN0KiopJm1vZHVsZSk7CisKKyAgICAgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgiZ25zcyBmbHAgaHdfZ2V0X21vZHVsZSBmYWlsZWQ6ICVkIiwgZXJyKTsKKyAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZ1c2VkIExvY2F0aW9uIGh3X2dldF9tb2R1bGUgcmV0dXJuZWQgbnVsbCBtb2R1bGUiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUtPm1ldGhvZHMgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZ1c2VkIExvY2F0aW9uIGh3X2dldF9tb2R1bGUgcmV0dXJuZWQgbnVsbCBtZXRob2RzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBod19kZXZpY2VfdCogZGV2aWNlOworICAgICAgICAgICAgZXJyID0gbW9kdWxlLT5tZXRob2RzLT5vcGVuKG1vZHVsZSwgRlVTRURfTE9DQVRJT05fSEFSRFdBUkVfTU9EVUxFX0lELCAmZGV2aWNlKTsKKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmbHBEZXZpY2Ugb3BlbiBmYWlsZWQ6ICVkIiwgZXJyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmxwX2RldmljZV90ICogZmxwRGV2aWNlID0gcmVpbnRlcnByZXRfY2FzdDxmbHBfZGV2aWNlX3QqPihkZXZpY2UpOworICAgICAgICAgICAgICAgIGZscExvY2F0aW9uSWZhY2UgPSBmbHBEZXZpY2UtPmdldF9mbHBfaW50ZXJmYWNlKGZscERldmljZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IEduc3NCYXRjaGluZyBpbnRlcmZhY2UgaXMgbm90IGltcGxlbWVudGVkIGJ5IEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzQmF0Y2hpbmcgPSBuZXcgR25zc0JhdGNoaW5nKGZscExvY2F0aW9uSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc0JhdGNoaW5nOworfQorCit2b2lkIEduc3M6OmhhbmRsZUhpZGxEZWF0aCgpIHsKKyAgICBBTE9HVygiR05TUyBzZXJ2aWNlIG5vdGljZWQgSElETCBkZWF0aC4gU3RvcHBpbmcgYWxsIEdOU1Mgb3BlcmF0aW9ucy4iKTsKKworICAgIC8vIGNvbW1hbmRzIGRvd24gdG8gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbgorICAgIHN0b3AoKTsgLy8gc3RvcCBvbmdvaW5nIEdQUyB0cmFja2luZworICAgIGlmIChtR25zc01lYXN1cmVtZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgbUduc3NNZWFzdXJlbWVudC0+Y2xvc2UoKTsKKyAgICB9CisgICAgaWYgKG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2UgIT0gbnVsbHB0cikgeworICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlLT5jbG9zZSgpOworICAgIH0KKyAgICBpZiAobUduc3NCYXRjaGluZyAhPSBudWxscHRyKSB7CisgICAgICAgIG1HbnNzQmF0Y2hpbmctPnN0b3AoKTsKKyAgICAgICAgbUduc3NCYXRjaGluZy0+Y2xlYW51cCgpOworICAgIH0KKyAgICBjbGVhbnVwKCk7CisKKyAgICAvKgorICAgICAqIFRoaXMgaGFzIGRpZWQsIHNvIGNsb3NlIGl0IG9mZiBpbiBjYXNlIChyYWNlIGNvbmRpdGlvbikgY2FsbGJhY2tzIGhhcHBlbgorICAgICAqIGJlZm9yZSBIQUwgcHJvY2Vzc2VzIGFib3ZlIG1lc3NhZ2VzLgorICAgICAqLworICAgIHNHbnNzQ2JJZmFjZSA9IG51bGxwdHI7Cit9CisKK0lHbnNzKiBISURMX0ZFVENIX0lHbnNzKGNvbnN0IGNoYXIqIC8qIGhhbCAqLykgeworICAgIGh3X21vZHVsZV90KiBtb2R1bGU7CisgICAgSUduc3MqIGlmYWNlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCAoaHdfbW9kdWxlX3QgY29uc3QqKikmbW9kdWxlKTsKKworICAgIGlmIChlcnIgPT0gMCkgeworICAgICAgICBod19kZXZpY2VfdCogZGV2aWNlOworICAgICAgICBlcnIgPSBtb2R1bGUtPm1ldGhvZHMtPm9wZW4obW9kdWxlLCBHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCAmZGV2aWNlKTsKKyAgICAgICAgaWYgKGVyciA9PSAwKSB7CisgICAgICAgICAgICBpZmFjZSA9IG5ldyBHbnNzKHJlaW50ZXJwcmV0X2Nhc3Q8Z3BzX2RldmljZV90Kj4oZGV2aWNlKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiZ25zc0RldmljZSBvcGVuICVzIGZhaWxlZDogJWQiLCBHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCBlcnIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIEFMT0dFKCJnbnNzIGh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIEdQU19IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgfQorICAgIHJldHVybiBpZmFjZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zcy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFmOTAzYwotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zcy5oCkBAIC0wLDAgKzEsMTg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NfSF8KKworI2luY2x1ZGUgPEFHbnNzLmg+CisjaW5jbHVkZSA8QUduc3NSaWwuaD4KKyNpbmNsdWRlIDxHbnNzQmF0Y2hpbmcuaD4KKyNpbmNsdWRlIDxHbnNzQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPEduc3NEZWJ1Zy5oPgorI2luY2x1ZGUgPEduc3NHZW9mZW5jaW5nLmg+CisjaW5jbHVkZSA8R25zc01lYXN1cmVtZW50Lmg+CisjaW5jbHVkZSA8R25zc05hdmlnYXRpb25NZXNzYWdlLmg+CisjaW5jbHVkZSA8R25zc05pLmg+CisjaW5jbHVkZSA8R25zc1h0cmEuaD4KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIExlZ2FjeUduc3NTeXN0ZW1JbmZvID0gOjpHbnNzU3lzdGVtSW5mbzsKKworLyoKKyAqIFJlcHJlc2VudHMgdGhlIHN0YW5kYXJkIEdOU1MgaW50ZXJmYWNlLiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdyBtZXRob2RzIGZyb20KKyAqIElHbnNzQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitjbGFzcyBHbnNzIDogcHVibGljIElHbnNzIHsKKyAgcHVibGljOgorICAgIEduc3MoZ3BzX2RldmljZV90KiBnbnNzX2RldmljZSk7CisgICAgfkduc3MoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBHbnNzLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48Ym9vbD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0YXJ0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdG9wKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbGVhbnVwKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RMb2NhdGlvbihkb3VibGUgbGF0aXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWNjdXJhY3lNZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gaW5qZWN0VGltZShpbnQ2NF90IHRpbWVNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHRpbWVSZWZlcmVuY2VNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHVuY2VydGFpbnR5TXMpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWxldGVBaWRpbmdEYXRhKElHbnNzOjpHbnNzQWlkaW5nRGF0YSBhaWRpbmdEYXRhRmxhZ3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0UG9zaXRpb25Nb2RlKElHbnNzOjpHbnNzUG9zaXRpb25Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWluSW50ZXJ2YWxNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZEFjY3VyYWN5TWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElBR25zc1JpbD4+IGdldEV4dGVuc2lvbkFHbnNzUmlsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzR2VvZmVuY2luZz4+IGdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElBR25zcz4+IGdldEV4dGVuc2lvbkFHbnNzKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzTmk+PiBnZXRFeHRlbnNpb25HbnNzTmkoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NNZWFzdXJlbWVudD4+IGdldEV4dGVuc2lvbkduc3NNZWFzdXJlbWVudCgpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc05hdmlnYXRpb25NZXNzYWdlPj4gZ2V0RXh0ZW5zaW9uR25zc05hdmlnYXRpb25NZXNzYWdlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzWHRyYT4+IGdldEV4dGVuc2lvblh0cmEoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NDb25maWd1cmF0aW9uPj4gZ2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NEZWJ1Zz4+IGdldEV4dGVuc2lvbkduc3NEZWJ1ZygpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc0JhdGNoaW5nPj4gZ2V0RXh0ZW5zaW9uR25zc0JhdGNoaW5nKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3MgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBsb2NhdGlvbkNiKEdwc0xvY2F0aW9uKiBsb2NhdGlvbik7CisgICAgc3RhdGljIHZvaWQgc3RhdHVzQ2IoR3BzU3RhdHVzKiBnbnNzX3N0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgbm1lYUNiKEdwc1V0Y1RpbWUgdGltZXN0YW1wLCBjb25zdCBjaGFyKiBubWVhLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRDYXBhYmlsaXRpZXNDYih1aW50MzJfdCBjYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGFjcXVpcmVXYWtlbG9ja0NiKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0VXRjVGltZUNiKCk7CisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzU3ZTdGF0dXNDYihHbnNzU3ZTdGF0dXMqIHN0YXR1cyk7CisgICAgLyoKKyAgICAgKiBEZXByZWNhdGVkIGNhbGxiYWNrIGFkZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIGRldmljZXMgdGhhdCBkbworICAgICAqIG5vdCBzdXBwb3J0IEduc3NTdlN0YXR1cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBncHNTdlN0YXR1c0NiKEdwc1N2U3RhdHVzKiBzdGF0dXMpOworICAgIHN0YXRpYyB2b2lkIHNldFN5c3RlbUluZm9DYihjb25zdCBMZWdhY3lHbnNzU3lzdGVtSW5mbyogaW5mbyk7CisKKyAgICAvKgorICAgICAqIFdha2Vsb2NrIGNvbnNvbGlkYXRpb24sIG9ubHkgbmVlZGVkIGZvciBkdWFsIHVzZSBvZiBhIGdwcy5oICYgZnVzZWRfbG9jYXRpb24uaCBIQUwKKyAgICAgKgorICAgICAqIEVuc3VyZXMgdGhhdCBpZiB0aGUgbGFzdCBjYWxsIGZyb20gZWl0aGVyIGxlZ2FjeSAuaCB3YXMgdG8gYWNxdWlyZSBhIHdha2Vsb2NrLCB0aGF0IGEKKyAgICAgKiB3YWtlbG9jayBpcyBoZWxkLiAgT3RoZXJ3aXNlIHJlbGVhc2VzIGl0LgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGFjcXVpcmVXYWtlbG9ja0Z1c2VkKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrRnVzZWQoKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEdwc0NhbGxiYWNrcyBzR25zc0NiOworCisgcHJpdmF0ZToKKyAgICAvKgorICAgICAqIEZvciBoYW5kbGluZyBzeXN0ZW0tc2VydmVyIGRlYXRoIHdoaWxlIEdOU1Mgc2VydmljZSBsaXZlcyBvbi4KKyAgICAgKi8KKyAgICBjbGFzcyBHbnNzSGlkbERlYXRoUmVjaXBpZW50IDogcHVibGljIGhpZGxfZGVhdGhfcmVjaXBpZW50IHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgR25zc0hpZGxEZWF0aFJlY2lwaWVudChjb25zdCBzcDxHbnNzPiBnbnNzKSA6IG1HbnNzKGduc3MpIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlRGllZCh1aW50NjRfdCAvKmNvb2tpZSovLAorICAgICAgICAgICAgICAgIGNvbnN0IHdwPDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U+JiAvKndobyovKSB7CisgICAgICAgICAgICBtR25zcy0+aGFuZGxlSGlkbERlYXRoKCk7CisgICAgICAgIH0KKyAgICAgIHByaXZhdGU6CisgICAgICAgIHNwPEduc3M+IG1HbnNzOworICAgIH07CisKKyAgICAvLyBmb3Igd2FrZWxvY2sgY29uc29saWRhdGlvbiwgc2VlIGFib3ZlCisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrR25zcygpOworICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VXYWtlbG9ja0duc3MoKTsKKyAgICBzdGF0aWMgdm9pZCB1cGRhdGVXYWtlbG9jaygpOworICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGRHbnNzOworICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGRGdXNlZDsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmb3IgZGVhdGggbm90aWZpY2F0aW9uCisgICAgICovCisgICAgdm9pZCBoYW5kbGVIaWRsRGVhdGgoKTsKKworICAgIHNwPEduc3NYdHJhPiBtR25zc1h0cmFJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8QUduc3NSaWw+IG1HbnNzUmlsID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzR2VvZmVuY2luZz4gbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBudWxscHRyOworICAgIHNwPEFHbnNzPiBtQUduc3NJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8R25zc05pPiBtR25zc05pID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzTWVhc3VyZW1lbnQ+IG1HbnNzTWVhc3VyZW1lbnQgPSBudWxscHRyOworICAgIHNwPEduc3NOYXZpZ2F0aW9uTWVzc2FnZT4gbUduc3NOYXZpZ2F0aW9uTWVzc2FnZSA9IG51bGxwdHI7CisgICAgc3A8R25zc0RlYnVnPiBtR25zc0RlYnVnID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzQ29uZmlndXJhdGlvbj4gbUduc3NDb25maWcgPSBudWxscHRyOworICAgIHNwPEduc3NCYXRjaGluZz4gbUduc3NCYXRjaGluZyA9IG51bGxwdHI7CisKKyAgICBzcDxHbnNzSGlkbERlYXRoUmVjaXBpZW50PiBtRGVhdGhSZWNpcGllbnQ7CisKKyAgICBjb25zdCBHcHNJbnRlcmZhY2UqIG1HbnNzSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc0NhbGxiYWNrPiBzR25zc0NiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKKworICAgIC8vIFZhbHVlcyBzYXZlZCBmb3IgcmVzZW5kCisgICAgc3RhdGljIHVpbnQzMl90IHNDYXBhYmlsaXRpZXNDYWNoZWQ7CisgICAgc3RhdGljIHVpbnQxNl90IHNZZWFyT2ZId0NhY2hlZDsKK307CisKK2V4dGVybiAiQyIgSUduc3MqIEhJRExfRkVUQ0hfSUduc3MoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc19IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYjM4Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5jcHAKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0JhdGNoaW5nSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiR25zc0JhdGNoaW5nLmgiCisjaW5jbHVkZSA8R25zcy5oPiAvLyBmb3Igd2FrZWxvY2sgY29uc29saWRhdGlvbgorI2luY2x1ZGUgPEduc3NVdGlscy5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPiAgLy8gZm9yIEFMT0dFCisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiBHbnNzQmF0Y2hpbmc6OnNHbnNzQmF0Y2hpbmdDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc0JhdGNoaW5nOjpzRmxwU3VwcG9ydHNCYXRjaGluZyA9IGZhbHNlOworCitGbHBDYWxsYmFja3MgR25zc0JhdGNoaW5nOjpzRmxwQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoRmxwQ2FsbGJhY2tzKSwKKyAgICAubG9jYXRpb25fY2IgPSBsb2NhdGlvbkNiLAorICAgIC5hY3F1aXJlX3dha2Vsb2NrX2NiID0gYWNxdWlyZVdha2Vsb2NrQ2IsCisgICAgLnJlbGVhc2Vfd2FrZWxvY2tfY2IgPSByZWxlYXNlV2FrZWxvY2tDYiwKKyAgICAuc2V0X3RocmVhZF9ldmVudF9jYiA9IHNldFRocmVhZEV2ZW50Q2IsCisgICAgLmZscF9jYXBhYmlsaXRpZXNfY2IgPSBmbHBDYXBhYmlsaXRpZXNDYiwKKyAgICAuZmxwX3N0YXR1c19jYiA9IGZscFN0YXR1c0NiLAorfTsKKworR25zc0JhdGNoaW5nOjpHbnNzQmF0Y2hpbmcoY29uc3QgRmxwTG9jYXRpb25JbnRlcmZhY2UqIGZscExvY2F0aW9uSWZhY2UpIDoKKyAgICBtRmxwTG9jYXRpb25JZmFjZShmbHBMb2NhdGlvbklmYWNlKSB7Cit9CisKKy8qCisgKiBUaGlzIGVudW0gaXMgdXNlZCBsb2NhbGx5IGJ5IHZhcmlvdXMgbWV0aG9kcyBiZWxvdy4gSXQgaXMgb25seSB1c2VkIGJ5IHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCitlbnVtIEJhdGNoaW5nVmFsdWVzIDogdWludDE2X3QgeworICAgIC8vIE51bWJlcnMgMC0zIHdlcmUgdXNlZCBpbiBlYXJsaWVyIGltcGxlbWVudGF0aW9ucyAtIHVzaW5nIDQgdG8gYmUgZGlzdGluY3QgdG8gdGhlIEhBTAorICAgIEZMUF9HTlNTX0JBVENISU5HX0NMSUVOVF9JRCA9IDQsCisgICAgLy8gVGVjaC4gbWFzayBvZiBHTlNTLCBhbmQgc2Vuc29yIGFpZGluZywgZm9yIGxlZ2FjeSBIQUwgdG8gZml0IHdpdGggR25zc0JhdGNoaW5nIEFQSQorICAgIEZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUyA9IEZMUF9URUNIX01BU0tfR05TUyB8IEZMUF9URUNIX01BU0tfU0VOU09SUywKKyAgICAvLyBQdXR0aW5nIGEgY2FwIHRvIGF2b2lkIHBvc3NpYmxlIG1lbW9yeSBpc3N1ZXMuICBVbmxpa2VseSB2YWx1ZXMgdGhpcyBoaWdoIGFyZSBzdXBwb3J0ZWQuCisgICAgTUFYX0xPQ0FUSU9OU19QRVJfQkFUQ0ggPSAxMDAwCit9OworCit2b2lkIEduc3NCYXRjaGluZzo6bG9jYXRpb25DYihpbnQzMl90IGxvY2F0aW9uc0NvdW50LCBGbHBMb2NhdGlvbioqIGxvY2F0aW9ucykgeworICAgIGlmIChzR25zc0JhdGNoaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBCYXRjaGluZyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbnMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgbG9jYXRpb25zIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb25zQ291bnQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogTmVnYXRpdmUgbG9jYXRpb24gY291bnQ6ICVkIHNldCB0byAwIiwgX19mdW5jX18sIGxvY2F0aW9uc0NvdW50KTsKKyAgICAgICAgbG9jYXRpb25zQ291bnQgPSAwOworICAgIH0gZWxzZSBpZiAobG9jYXRpb25zQ291bnQgPiBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSCkgeworICAgICAgICBBTE9HVygiJXM6IFVuZXhwZWN0ZWQgaGlnaCBsb2NhdGlvbiBjb3VudDogJWQgc2V0IHRvICVkIiwgX19mdW5jX18sIGxvY2F0aW9uc0NvdW50LAorICAgICAgICAgICAgICAgIE1BWF9MT0NBVElPTlNfUEVSX0JBVENIKTsKKyAgICAgICAgbG9jYXRpb25zQ291bnQgPSBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOgorICAgICAqIFNvbWUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zIG1heSBkcm9wIGR1cGxpY2F0ZSBsb2NhdGlvbnMuICBUaGVzZSBjb3VsZCBiZSBleHBhbmRlZCBoZXJlCisgICAgICogYnV0IGFzIHRoZXJlJ3MgYW1iaWd1aXR5IGJldHdlZW4gbm8tR1BTLWZpeCB2cy4gZHJvcHBlZCBkdXBsaWNhdGVzIGluIHRoYXQgaW1wbGVtZW50YXRpb24sCisgICAgICogYW5kIHRoYXQncyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSBmdXNlZF9sb2NhdGlvbi5oLCB0aGF0IGlzbid0IHNhZmUgdG8gZG8gaGVyZS4KKyAgICAgKiBGb3J0dW5hdGVseSwgdGhpcyBzaG91bGRuJ3QgYmUgYSBtYWpvciBpc3N1ZSBpbiBjYXNlcyB3aGVyZSBHTlNTIGJhdGNoaW5nIGlzIHR5cGljYWxseQorICAgICAqIHVzZWQgKGUuZy4gd2hlbiB1c2VyIGlzIGxpa2VseSBpbiB2ZWhpY2xlL2JpY3ljbGUuKQorICAgICAqLworICAgIHN0ZDo6dmVjdG9yPGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb24+IGduc3NMb2NhdGlvbnM7CisgICAgZm9yIChpbnQgaUxvY2F0aW9uID0gMDsgaUxvY2F0aW9uIDwgbG9jYXRpb25zQ291bnQ7IGlMb2NhdGlvbisrKSB7CisgICAgICAgIGlmIChsb2NhdGlvbnNbaUxvY2F0aW9uXSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IE51bGwgbG9jYXRpb24gYXQgc2xvdDogJWQgb2YgJWQsIHNraXBwaW5nIiwgX19mdW5jX18sIGlMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25zQ291bnQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChsb2NhdGlvbnNbaUxvY2F0aW9uXS0+c291cmNlc191c2VkICYgfkZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUykgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbnJlcXVlc3RlZCBsb2NhdGlvbiB0eXBlICVkIGF0IHNsb3Q6ICVkIG9mICVkLCBza2lwcGluZyIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbnNbaUxvY2F0aW9uXS0+c291cmNlc191c2VkLCBpTG9jYXRpb24sIGxvY2F0aW9uc0NvdW50KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGduc3NMb2NhdGlvbnMucHVzaF9iYWNrKGNvbnZlcnRUb0duc3NMb2NhdGlvbihsb2NhdGlvbnNbaUxvY2F0aW9uXSkpOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NCYXRjaGluZ0NiSWZhY2UtPmduc3NMb2NhdGlvbkJhdGNoQ2IoZ25zc0xvY2F0aW9ucyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjphY3F1aXJlV2FrZWxvY2tDYigpIHsKKyAgICBHbnNzOjphY3F1aXJlV2FrZWxvY2tGdXNlZCgpOworfQorCit2b2lkIEduc3NCYXRjaGluZzo6cmVsZWFzZVdha2Vsb2NrQ2IoKSB7CisgICAgR25zczo6cmVsZWFzZVdha2Vsb2NrRnVzZWQoKTsKK30KKworLy8gdGhpcyBjYW4ganVzdCByZXR1cm4gc3VjY2VzcywgYmVjYXVzZSB0aHJlYWRzIGFyZSBub3cgc2V0IHVwIG9uIGRlbWFuZCBpbiB0aGUgam5pIGxheWVyCitpbnQzMl90IEduc3NCYXRjaGluZzo6c2V0VGhyZWFkRXZlbnRDYihUaHJlYWRFdmVudCAvKmV2ZW50Ki8pIHsKKyAgICByZXR1cm4gRkxQX1JFU1VMVF9TVUNDRVNTOworfQorCit2b2lkIEduc3NCYXRjaGluZzo6ZmxwQ2FwYWJpbGl0aWVzQ2IoaW50MzJfdCBjYXBhYmlsaXRpZXMpIHsKKyAgICBBTE9HRCgiJXMgY2FwYWJpbGl0aWVzICVkIiwgX19mdW5jX18sIGNhcGFiaWxpdGllcyk7CisKKyAgICBpZiAoY2FwYWJpbGl0aWVzICYgQ0FQQUJJTElUWV9HTlNTKSB7CisgICAgICAgIC8vIG9uY2UgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgYW5kIGNhcGFiaWxpdGllcyBoaWdoIGVub3VnaCwgd2Uga25vdyB2ZXJzaW9uIGlzCisgICAgICAgIC8vIGhpZ2ggZW5vdWdoIGZvciBmbHVzaCgpCisgICAgICAgIHNGbHBTdXBwb3J0c0JhdGNoaW5nID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjpmbHBTdGF0dXNDYihpbnQzMl90IHN0YXR1cykgeworICAgIEFMT0dEKCIlcyAoZGVmYXVsdCBpbXBsZW1lbnRhdGlvbikgbm90IGZvcndhcmRpbmcgc3RhdHVzOiAlZCIsIF9fZnVuY19fLCBzdGF0dXMpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZyBmb2xsb3cuCitSZXR1cm48Ym9vbD4gR25zc0JhdGNoaW5nOjppbml0KGNvbnN0IHNwPElHbnNzQmF0Y2hpbmdDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzR25zc0JhdGNoaW5nQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIChtRmxwTG9jYXRpb25JZmFjZS0+aW5pdCgmc0ZscENiKSA9PSAwKTsKK30KKworUmV0dXJuPHVpbnQxNl90PiBHbnNzQmF0Y2hpbmc6OmdldEJhdGNoU2l6ZSgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBtRmxwTG9jYXRpb25JZmFjZS0+Z2V0X2JhdGNoX3NpemUoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NCYXRjaGluZzo6c3RhcnQoY29uc3QgSUduc3NCYXRjaGluZzo6T3B0aW9ucyYgb3B0aW9ucykgeworICAgIGlmIChtRmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogRmxwIGJhdGNoaW5nIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghc0ZscFN1cHBvcnRzQmF0Y2hpbmcpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIG5vdCBzdXBwb3J0ZWQsIG5vIGNhcGFiaWxpdGllcyBjYWxsYmFjayByZWNlaXZlZCIsCisgICAgICAgICAgICAgICAgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRmxwQmF0Y2hPcHRpb25zIG9wdGlvbnNIdzsKKyAgICAvLyBMZWdhY3kgY29kZSB1c2VkIDk5OTkgbVcgZm9yIEhpZ2ggYWNjdXJhY3ksIGFuZCAyMSBtVyBmb3IgYmFsYW5jZWQuCisgICAgLy8gTmV3IEdOU1MgQVBJIGp1c3QgZXhwZWN0cyByZWFzb25hYmxlIEdOU1MgY2hpcHNldCBiZWhhdmlvciAtIGRvIHNvbWV0aGluZyBlZmZpY2llbnQKKyAgICAvLyBnaXZlbiB0aGUgaW50ZXJ2YWwuICBUaGlzIDEwMCBtVyBsaW1pdCBzaG91bGQgYmUgcXVpdGUgc3VmZmljaWVudCAoZXNwLiBnaXZlbiBsZWdhY3kgY29kZQorICAgIC8vIGltcGxlbWVudGF0aW9ucyBtYXkgbm90IGV2ZW4gdXNlIHRoaXMgdmFsdWUuKQorICAgIG9wdGlvbnNIdy5tYXhfcG93ZXJfYWxsb2NhdGlvbl9tVyA9IDEwMDsKKyAgICBvcHRpb25zSHcuc291cmNlc190b191c2UgPSBGTFBfVEVDSF9NQVNLX0dOU1NfQU5EX1NFTlNPUlM7CisgICAgb3B0aW9uc0h3LmZsYWdzID0gMDsKKyAgICBpZiAob3B0aW9ucy5mbGFncyAmIEZsYWc6OldBS0VVUF9PTl9GSUZPX0ZVTEwpIHsKKyAgICAgICAgb3B0aW9uc0h3LmZsYWdzIHw9IEZMUF9CQVRDSF9XQUtFVVBfT05fRklGT19GVUxMOworICAgIH0KKyAgICBvcHRpb25zSHcucGVyaW9kX25zID0gb3B0aW9ucy5wZXJpb2ROYW5vczsKKyAgICBvcHRpb25zSHcuc21hbGxlc3RfZGlzcGxhY2VtZW50X21ldGVycyA9IDA7IC8vIFplcm8gb2Zmc2V0IC0ganVzdCB1c2UgdGltZSBpbnRlcnZhbAorCisgICAgcmV0dXJuIChtRmxwTG9jYXRpb25JZmFjZS0+c3RhcnRfYmF0Y2hpbmcoRkxQX0dOU1NfQkFUQ0hJTkdfQ0xJRU5UX0lELCAmb3B0aW9uc0h3KQorICAgICAgICAgICAgPT0gRkxQX1JFU1VMVF9TVUNDRVNTKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NCYXRjaGluZzo6Zmx1c2goKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1GbHBMb2NhdGlvbklmYWNlLT5mbHVzaF9iYXRjaGVkX2xvY2F0aW9ucygpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NCYXRjaGluZzo6c3RvcCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1GbHBMb2NhdGlvbklmYWNlLT5zdG9wX2JhdGNoaW5nKEZMUF9HTlNTX0JBVENISU5HX0NMSUVOVF9JRCkgPT0gRkxQX1JFU1VMVF9TVUNDRVNTKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NCYXRjaGluZzo6Y2xlYW51cCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUZscExvY2F0aW9uSWZhY2UtPmNsZWFudXAoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDFjMjdkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuaApAQCAtMCwwICsxLDY3IEBACisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR05TU19WMV8wX0dOU1NCQVRDSElOR19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR05TU19WMV8wX0dOU1NCQVRDSElOR19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzQmF0Y2hpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0JhdGNoaW5nQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgR25zc0JhdGNoaW5nIDogcHVibGljIElHbnNzQmF0Y2hpbmcgeworICAgIEduc3NCYXRjaGluZyhjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZyBmb2xsb3cuCisgICAgUmV0dXJuPGJvb2w+IGluaXQoY29uc3Qgc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MTZfdD4gZ2V0QmF0Y2hTaXplKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0YXJ0KGNvbnN0IElHbnNzQmF0Y2hpbmc6Ok9wdGlvbnMmIG9wdGlvbnMgKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZmx1c2goKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbGVhbnVwKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBGTFAgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc0JhdGNoaW5nIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgbG9jYXRpb25DYihpbnQzMl90IGxvY2F0aW9uc0NvdW50LCBGbHBMb2NhdGlvbioqIGxvY2F0aW9ucyk7CisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZWxlYXNlV2FrZWxvY2tDYigpOworICAgIHN0YXRpYyBpbnQzMl90IHNldFRocmVhZEV2ZW50Q2IoVGhyZWFkRXZlbnQgZXZlbnQpOworICAgIHN0YXRpYyB2b2lkIGZscENhcGFiaWxpdGllc0NiKGludDMyX3QgY2FwYWJpbGl0aWVzKTsKKyAgICBzdGF0aWMgdm9pZCBmbHBTdGF0dXNDYihpbnQzMl90IHN0YXR1cyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBGbHBDYWxsYmFja3Mgc0ZscENiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogbUZscExvY2F0aW9uSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc0JhdGNoaW5nQ2FsbGJhY2s+IHNHbnNzQmF0Y2hpbmdDYklmYWNlOworICAgIHN0YXRpYyBib29sIHNGbHBTdXBwb3J0c0JhdGNoaW5nOworfTsKKworZXh0ZXJuICJDIiBJR25zc0JhdGNoaW5nKiBISURMX0ZFVENIX0lHbnNzQmF0Y2hpbmcoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1YxXzBfR05TU0JBVENISU5HX0gKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQ29uZmlndXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMxYWE4NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uY3BwCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR25zc0NvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0duc3NDb25maWd1cmF0aW9uOjpHbnNzQ29uZmlndXJhdGlvbihjb25zdCBHbnNzQ29uZmlndXJhdGlvbkludGVyZmFjZSogZ25zc0NvbmZpZ0luZmMpCisgICAgOiBtR25zc0NvbmZpZ0lmYWNlKGduc3NDb25maWdJbmZjKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3BzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb24gZm9sbG93LgorUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsRXMoYm9vbCBlbmFibGVkKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfRVM9IiArIHN0ZDo6dG9fc3RyaW5nKGVuYWJsZWQgPyAxIDogMCkgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfVkVSPSIgKyBzdGQ6OnRvX3N0cmluZyh2ZXJzaW9uKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0U3VwbE1vZGUodWludDhfdCBtb2RlKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfTU9ERT0iICsgc3RkOjp0b19zdHJpbmcobW9kZSkgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRMcHBQcm9maWxlKHVpbnQ4X3QgbHBwUHJvZmlsZSkgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIkxQUF9QUk9GSUxFPSIgKyBzdGQ6OnRvX3N0cmluZyhscHBQcm9maWxlKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldEdsb25hc3NQb3NpdGlvbmluZ1Byb3RvY29sKHVpbnQ4X3QgcHJvdG9jb2wpIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJBX0dMT05BU1NfUE9TX1BST1RPQ09MX1NFTEVDVD0iICsKKyAgICAgICAgICAgIHN0ZDo6dG9fc3RyaW5nKHByb3RvY29sKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldEdwc0xvY2sodWludDhfdCBsb2NrKSB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiR1BTX0xPQ0s9IiArIHN0ZDo6dG9fc3RyaW5nKGxvY2spICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZWQpIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJVU0VfRU1FUkdFTkNZX1BETl9GT1JfRU1FUkdFTkNZX1NVUEw9IiArIHN0ZDo6dG9fc3RyaW5nKGVuYWJsZWQgPyAxIDogMCkKKyAgICAgICAgICAgICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZlY2E4OAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NDb25maWd1cmF0aW9uX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NDb25maWd1cmF0aW9uX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBJbnRlcmZhY2UgZm9yIHBhc3NpbmcgR05TUyBjb25maWd1cmF0aW9uIGluZm8gZnJvbSBwbGF0Zm9ybSB0byBIQUwuCisgKi8KK3N0cnVjdCBHbnNzQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBJR25zc0NvbmZpZ3VyYXRpb24geworICAgIEduc3NDb25maWd1cmF0aW9uKGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBnbnNzQ29uZmlnSWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NDb25maWd1cmF0aW9uIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0NvbmZpZ3VyYXRpb24uaGFsLgorICAgICAqLworICAgIFJldHVybjxib29sPiBzZXRTdXBsVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U3VwbE1vZGUodWludDhfdCBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U3VwbEVzKGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldExwcFByb2ZpbGUodWludDhfdCBscHBQcm9maWxlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0R2xvbmFzc1Bvc2l0aW9uaW5nUHJvdG9jb2wodWludDhfdCBwcm90b2NvbCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldEVtZXJnZW5jeVN1cGxQZG4oYm9vbCBlbmFibGUpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRHcHNMb2NrKHVpbnQ4X3QgbG9jaykgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBtR25zc0NvbmZpZ0lmYWNlID0gbnVsbHB0cjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0NvbmZpZ3VyYXRpb25fSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmMzOGNhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0RlYnVnSW50ZXJmYWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR25zc0RlYnVnLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitHbnNzRGVidWc6Okduc3NEZWJ1Zyhjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogZ3BzRGVidWdJZmFjZSkgOiBtR25zc0RlYnVnSWZhY2UoZ3BzRGVidWdJZmFjZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEduc3NEZWJ1Zzo6Z2V0RGVidWdEYXRhKGdldERlYnVnRGF0YV9jYiBfaGlkbF9jYikgIHsKKyAgICAvKgorICAgICAqIFRoaXMgaXMgYSBuZXcgaW50ZXJmYWNlIGFuZCBoZW5jZSB0aGVyZSBpcyBubyB3YXkgdG8gcmV0cmlldmUgdGhlCisgICAgICogZGVidWcgZGF0YSBmcm9tIHRoZSBIQUwuCisgICAgICovCisgICAgRGVidWdEYXRhIGRhdGEgPSB7fTsKKworICAgIF9oaWRsX2NiKGRhdGEpOworCisgICAgLyoKKyAgICAgKiBMb2cgdGhlIGRlYnVnIGRhdGEgc2VudCBmcm9tIHRoZSBjb252ZW50aW9uYWwgR25zcyBIQUwuIFRoaXMgY29kZSBpcworICAgICAqIG1vdmVkIGhlcmUgZnJvbSBHbnNzTG9jYXRpb25Qcm92aWRlci4KKyAgICAgKi8KKyAgICBpZiAobUduc3NEZWJ1Z0lmYWNlKSB7CisgICAgICAgIGNoYXIgYnVmZmVyW2tNYXhEZWJ1Z1N0ckxlbiArIDFdOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gbUduc3NEZWJ1Z0lmYWNlLT5nZXRfaW50ZXJuYWxfc3RhdGUoYnVmZmVyLCBrTWF4RGVidWdTdHJMZW4pOworICAgICAgICBsZW5ndGggPSBzdGQ6Om1heChsZW5ndGgsIGtNYXhEZWJ1Z1N0ckxlbik7CisgICAgICAgIGJ1ZmZlcltsZW5ndGhdID0gJ1wwJzsKKyAgICAgICAgQUxPR0QoIkduc3MgRGVidWcgRGF0YTogJXMiLCBidWZmZXIpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWExN2RkZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NEZWJ1Z19IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0RlYnVnLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qIEludGVyZmFjZSBmb3IgR05TUyBEZWJ1ZyBzdXBwb3J0LiAqLworc3RydWN0IEduc3NEZWJ1ZyA6IHB1YmxpYyBJR25zc0RlYnVnIHsKKyAgICBHbnNzRGVidWcoY29uc3QgR3BzRGVidWdJbnRlcmZhY2UqIGdwc0RlYnVnSWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NEZWJ1ZyBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUduc3NEZWJ1Zy5oYWwuCisgICAgICovCisgICAgUmV0dXJuPHZvaWQ+IGdldERlYnVnRGF0YShnZXREZWJ1Z0RhdGFfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworIHByaXZhdGU6CisgICAgLyoKKyAgICAgKiBDb25zdGFudCBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byBjb252ZW50aW9uYWwgR1BTIEhhbHMgd2hpY2gKKyAgICAgKiByZXR1cm5lZCBhIGRlYnVnIHN0cmluZy4KKyAgICAgKi8KKyAgICBjb25zdCBzaXplX3Qga01heERlYnVnU3RyTGVuID0gMjA0NzsKKyAgICBjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogbUduc3NEZWJ1Z0lmYWNlID0gbnVsbHB0cjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YzRhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmNwcApAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hhbF9HbnNzR2VvZmVuY2luZyIKKworI2luY2x1ZGUgIkduc3NHZW9mZW5jaW5nLmgiCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBHbnNzR2VvZmVuY2luZzo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElHbnNzR2VvZmVuY2VDYWxsYmFjaz4gR25zc0dlb2ZlbmNpbmc6Om1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBHbnNzR2VvZmVuY2luZzo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNHZW9mZW5jZUNhbGxiYWNrcyBHbnNzR2VvZmVuY2luZzo6c0duc3NHZkNiID0geworICAgIC5nZW9mZW5jZV90cmFuc2l0aW9uX2NhbGxiYWNrID0gZ25zc0dmVHJhbnNpdGlvbkNiLAorICAgIC5nZW9mZW5jZV9zdGF0dXNfY2FsbGJhY2sgPSBnbnNzR2ZTdGF0dXNDYiwKKyAgICAuZ2VvZmVuY2VfYWRkX2NhbGxiYWNrID0gZ25zc0dmQWRkQ2IsCisgICAgLmdlb2ZlbmNlX3JlbW92ZV9jYWxsYmFjayA9IGduc3NHZlJlbW92ZUNiLAorICAgIC5nZW9mZW5jZV9wYXVzZV9jYWxsYmFjayA9IGduc3NHZlBhdXNlQ2IsCisgICAgLmdlb2ZlbmNlX3Jlc3VtZV9jYWxsYmFjayA9IGduc3NHZlJlc3VtZUNiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IKK307CisKK0duc3NHZW9mZW5jaW5nOjpHbnNzR2VvZmVuY2luZyhjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBncHNHZW9mZW5jaW5nSWZhY2UpCisgICAgOiBtR25zc0dlb2ZlbmNpbmdJZmFjZShncHNHZW9mZW5jaW5nSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCitHbnNzR2VvZmVuY2luZzo6fkduc3NHZW9mZW5jaW5nKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9Cit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZUlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdwc0xvY2F0aW9uKiBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRyYW5zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3BzVXRjVGltZSB0aW1lc3RhbXApIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlcyA6IEludmFsaWQgbG9jYXRpb24gZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlVHJhbnNpdGlvbkNiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgIGduc3NMb2NhdGlvbiwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uPih0cmFuc2l0aW9uKSwKKyAgICAgICAgICAgIHRpbWVzdGFtcCk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlN0YXR1c0NiKGludDMyX3Qgc3RhdHVzLCBHcHNMb2NhdGlvbiogbG9jYXRpb24pIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb247CisKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIH0gZWxzZSB7CisgICAgICAgIGduc3NMb2NhdGlvbiA9IHt9OworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlU3RhdHVzQ2IoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlQXZhaWxhYmlsaXR5PihzdGF0dXMpLCBnbnNzTG9jYXRpb24pOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZBZGRDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZUFkZENiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwgc3RhdGljX2Nhc3Q8SUduc3NHZW9mZW5jZUNhbGxiYWNrOjpHZW9mZW5jZVN0YXR1cz4oc3RhdHVzKSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlJlbW92ZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgaW50MzJfdCBzdGF0dXMpIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlUmVtb3ZlQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUGF1c2VDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZVBhdXNlQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUmVzdW1lQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IHN0YXR1cykgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEdlb2ZlbmNlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBtR25zc0dlb2ZlbmNpbmdDYklmYWNlLT5nbnNzR2VvZmVuY2VSZXN1bWVDYigKKyAgICAgICAgICAgIGdlb2ZlbmNlSWQsIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VTdGF0dXM+KHN0YXR1cykpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCitwdGhyZWFkX3QgR25zc0dlb2ZlbmNpbmc6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBtR25zc0dlb2ZlbmNpbmdDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5pbml0KCZzR25zc0dmQ2IpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzR2VvZmVuY2luZzo6YWRkR2VvZmVuY2UoCisgICAgICAgIGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXMsCisgICAgICAgIGRvdWJsZSByYWRpdXNNZXRlcnMsCisgICAgICAgIElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgdWludDMyX3QgdW5rbm93blRpbWVyTXMpICB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc0dlb2ZlbmNpbmdJZmFjZS0+YWRkX2dlb2ZlbmNlX2FyZWEoCisgICAgICAgICAgICAgICAgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgICAgICBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICByYWRpdXNNZXRlcnMsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4obGFzdFRyYW5zaXRpb24pLAorICAgICAgICAgICAgICAgIG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgICAgICAgICBub3RpZmljYXRpb25SZXNwb25zaXZlbmVzc01zLAorICAgICAgICAgICAgICAgIHVua25vd25UaW1lck1zKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpwYXVzZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5wYXVzZV9nZW9mZW5jZShnZW9mZW5jZUlkKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpyZXN1bWVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3QgbW9uaXRvclRyYW5zaXRpb25zKSAgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UtPnJlc3VtZV9nZW9mZW5jZShnZW9mZW5jZUlkLCBtb25pdG9yVHJhbnNpdGlvbnMpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR25zc0dlb2ZlbmNpbmc6OnJlbW92ZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5yZW1vdmVfZ2VvZmVuY2VfYXJlYShnZW9mZW5jZUlkKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjRiODkzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzR2VvZmVuY2luZy5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBJbnRlcmZhY2UgZm9yIEdOU1MgR2VvZmVuY2luZyBzdXBwb3J0LiBJdCBhbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdworICogbWV0aG9kcyBmcm9tIElHbnNzR2VvZmVuY2VDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlCisgKiBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc0dlb2ZlbmNpbmcgOiBwdWJsaWMgSUduc3NHZW9mZW5jaW5nIHsKKyAgICBHbnNzR2VvZmVuY2luZyhjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBncHNHZW9mZW5jaW5nSWZhY2UpOworICAgIH5HbnNzR2VvZmVuY2luZygpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NHZW9mZW5jaW5nIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0dlb2ZlbmNpbmcuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBhZGRHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmFkaXVzTWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlVHJhbnNpdGlvbiBsYXN0VHJhbnNpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBtb25pdG9yVHJhbnNpdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHVua25vd25UaW1lck1zKSAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gcGF1c2VHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVzdW1lR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZW1vdmVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpICBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc0dlb2ZlbmNpbmcgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgR3BzTG9jYXRpb24qIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRyYW5zaXRpb24sIEdwc1V0Y1RpbWUgdGltZXN0YW1wKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZTdGF0dXNDYihpbnQzMl90IHN0YXR1cywgR3BzTG9jYXRpb24qIGxhc3RfbG9jYXRpb24pOworICAgIHN0YXRpYyB2b2lkIGduc3NHZkFkZENiKGludDMyX3QgZ2VvZmVuY2VfaWQsIGludDMyX3Qgc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZSZW1vdmVDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmUGF1c2VDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmUmVzdW1lQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgaW50MzJfdCBzdGF0dXMpOworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNHZW9mZW5jZUNhbGxiYWNrcyBzR25zc0dmQ2I7CisKKyBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2U7CisgICAgY29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSogbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM5YjgzOAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmNwcApAQCAtMCwwICsxLDI2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTWVhc3VyZW1lbnRJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzTWVhc3VyZW1lbnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3NwPElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjaz4gR25zc01lYXN1cmVtZW50OjpzR25zc01lYXN1cmVDYklmYWNlID0gbnVsbHB0cjsKK0dwc01lYXN1cmVtZW50Q2FsbGJhY2tzIEduc3NNZWFzdXJlbWVudDo6c0duc3NNZWFzdXJlbWVudENicyA9IHsKKyAgICAuc2l6ZSA9IHNpemVvZihHcHNNZWFzdXJlbWVudENhbGxiYWNrcyksCisgICAgLm1lYXN1cmVtZW50X2NhbGxiYWNrID0gZ3BzTWVhc3VyZW1lbnRDYiwKKyAgICAuZ25zc19tZWFzdXJlbWVudF9jYWxsYmFjayA9IGduc3NNZWFzdXJlbWVudENiCit9OworCitHbnNzTWVhc3VyZW1lbnQ6Okduc3NNZWFzdXJlbWVudChjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogZ3BzTWVhc3VyZW1lbnRJZmFjZSkKKyAgICA6IG1HbnNzTWVhc3VyZUlmYWNlKGdwc01lYXN1cmVtZW50SWZhY2UpIHt9CisKK3ZvaWQgR25zc01lYXN1cmVtZW50OjpnbnNzTWVhc3VyZW1lbnRDYihMZWdhY3lHbnNzRGF0YSogbGVnYWN5R25zc0RhdGEpIHsKKyAgICBpZiAoc0duc3NNZWFzdXJlQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TU01lYXN1cmVtZW50IENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxlZ2FjeUduc3NEYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEduc3NEYXRhIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NEYXRhIGduc3NEYXRhOworICAgIGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQgPSBzdGQ6Om1pbihsZWdhY3lHbnNzRGF0YS0+bWVhc3VyZW1lbnRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oR25zc01heDo6U1ZTX0NPVU5UKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGVudHJ5ID0gbGVnYWN5R25zc0RhdGEtPm1lYXN1cmVtZW50c1tpXTsKKyAgICAgICAgYXV0byBzdGF0ZSA9IHN0YXRpY19jYXN0PEduc3NNZWFzdXJlbWVudFN0YXRlPihlbnRyeS5zdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZSAmIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX1RPV19ERUNPREVEKSB7CisgICAgICAgICAgc3RhdGUgfD0gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzTWVhc3VyZW1lbnRTdGF0ZTo6U1RBVEVfVE9XX0tOT1dOOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZSAmIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX0dMT19UT0RfREVDT0RFRCkgeworICAgICAgICAgIHN0YXRlIHw9IElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX0dMT19UT0RfS05PV047CisgICAgICAgIH0KKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldID0geworICAgICAgICAgICAgLmZsYWdzID0gZW50cnkuZmxhZ3MsCisgICAgICAgICAgICAuc3ZpZCA9IGVudHJ5LnN2aWQsCisgICAgICAgICAgICAuY29uc3RlbGxhdGlvbiA9IHN0YXRpY19jYXN0PEduc3NDb25zdGVsbGF0aW9uVHlwZT4oZW50cnkuY29uc3RlbGxhdGlvbiksCisgICAgICAgICAgICAudGltZU9mZnNldE5zID0gZW50cnkudGltZV9vZmZzZXRfbnMsCisgICAgICAgICAgICAuc3RhdGUgPSBzdGF0ZSwKKyAgICAgICAgICAgIC5yZWNlaXZlZFN2VGltZUluTnMgPSBlbnRyeS5yZWNlaXZlZF9zdl90aW1lX2luX25zLAorICAgICAgICAgICAgLnJlY2VpdmVkU3ZUaW1lVW5jZXJ0YWludHlJbk5zID0gZW50cnkucmVjZWl2ZWRfc3ZfdGltZV91bmNlcnRhaW50eV9pbl9ucywKKyAgICAgICAgICAgIC5jTjBEYkh6ID0gZW50cnkuY19uMF9kYmh6LAorICAgICAgICAgICAgLnBzZXVkb3JhbmdlUmF0ZU1wcyA9IGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfbXBzLAorICAgICAgICAgICAgLnBzZXVkb3JhbmdlUmF0ZVVuY2VydGFpbnR5TXBzID0gZW50cnkucHNldWRvcmFuZ2VfcmF0ZV91bmNlcnRhaW50eV9tcHMsCisgICAgICAgICAgICAuYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV9zdGF0ZSwKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VNID0gZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfbSwKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VVbmNlcnRhaW50eU0gPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV91bmNlcnRhaW50eV9tLAorICAgICAgICAgICAgLmNhcnJpZXJGcmVxdWVuY3lIeiA9IGVudHJ5LmNhcnJpZXJfZnJlcXVlbmN5X2h6LAorICAgICAgICAgICAgLmNhcnJpZXJDeWNsZXMgPSBlbnRyeS5jYXJyaWVyX2N5Y2xlcywKKyAgICAgICAgICAgIC5jYXJyaWVyUGhhc2UgPSBlbnRyeS5jYXJyaWVyX3BoYXNlLAorICAgICAgICAgICAgLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gZW50cnkuY2Fycmllcl9waGFzZV91bmNlcnRhaW50eSwKKyAgICAgICAgICAgIC5tdWx0aXBhdGhJbmRpY2F0b3IgPSBzdGF0aWNfY2FzdDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNdWx0aXBhdGhJbmRpY2F0b3I+KAorICAgICAgICAgICAgICAgICAgICBlbnRyeS5tdWx0aXBhdGhfaW5kaWNhdG9yKSwKKyAgICAgICAgICAgIC5zbnJEYiA9IGVudHJ5LnNucl9kYgorICAgICAgICB9OworICAgIH0KKworICAgIGF1dG8gY2xvY2tWYWwgPSBsZWdhY3lHbnNzRGF0YS0+Y2xvY2s7CisgICAgZ25zc0RhdGEuY2xvY2sgPSB7CisgICAgICAgIC5nbnNzQ2xvY2tGbGFncyA9IGNsb2NrVmFsLmZsYWdzLAorICAgICAgICAubGVhcFNlY29uZCA9IGNsb2NrVmFsLmxlYXBfc2Vjb25kLAorICAgICAgICAudGltZU5zID0gY2xvY2tWYWwudGltZV9ucywKKyAgICAgICAgLnRpbWVVbmNlcnRhaW50eU5zID0gY2xvY2tWYWwudGltZV91bmNlcnRhaW50eV9ucywKKyAgICAgICAgLmZ1bGxCaWFzTnMgPSBjbG9ja1ZhbC5mdWxsX2JpYXNfbnMsCisgICAgICAgIC5iaWFzTnMgPSBjbG9ja1ZhbC5iaWFzX25zLAorICAgICAgICAuYmlhc1VuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC5iaWFzX3VuY2VydGFpbnR5X25zLAorICAgICAgICAuZHJpZnROc3BzID0gY2xvY2tWYWwuZHJpZnRfbnNwcywKKyAgICAgICAgLmRyaWZ0VW5jZXJ0YWludHlOc3BzID0gY2xvY2tWYWwuZHJpZnRfdW5jZXJ0YWludHlfbnNwcywKKyAgICAgICAgLmh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQgPSBjbG9ja1ZhbC5od19jbG9ja19kaXNjb250aW51aXR5X2NvdW50CisgICAgfTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NNZWFzdXJlQ2JJZmFjZS0+R25zc01lYXN1cmVtZW50Q2IoZ25zc0RhdGEpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvKgorICogVGhlIGNvZGUgaW4gdGhlIGZvbGxvd2luZyBtZXRob2QgaGFzIGJlZW4gbW92ZWQgaGVyZSBmcm9tIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICogSXQgY29udmVydHMgR3BzRGF0YSB0byBHbnNzRGF0YS4gVGhpcyBjb2RlIGlzIG5vIGxvbmdlciByZXF1aXJlZCBpbgorICogR25zc0xvY2F0aW9uUHJvdmlkZXIgc2luY2UgR3BzRGF0YSBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgcGFydCBvZiB0aGUKKyAqIEdOU1MgaW50ZXJmYWNlLgorICovCit2b2lkIEduc3NNZWFzdXJlbWVudDo6Z3BzTWVhc3VyZW1lbnRDYihHcHNEYXRhKiBncHNEYXRhKSB7CisgICAgaWYgKHNHbnNzTWVhc3VyZUNiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1NNZWFzdXJlbWVudCBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChncHNEYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEdwc0RhdGEgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc0RhdGEgZ25zc0RhdGE7CisgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRDb3VudCA9IHN0ZDo6bWluKGdwc0RhdGEtPm1lYXN1cmVtZW50X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KEduc3NNYXg6OlNWU19DT1VOVCkpOworCisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGVudHJ5ID0gZ3BzRGF0YS0+bWVhc3VyZW1lbnRzW2ldOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uZmxhZ3MgPSBlbnRyeS5mbGFnczsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnN2aWQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihlbnRyeS5wcm4pOworICAgICAgICBpZiAoZW50cnkucHJuID49IDEgJiYgZW50cnkucHJuIDw9IDMyKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNvbnN0ZWxsYXRpb24gPQorICAgICAgICAgICAgICAgICAgR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpVTktOT1dOOworICAgICAgICB9CisKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnRpbWVPZmZzZXROcyA9IGVudHJ5LnRpbWVfb2Zmc2V0X25zOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc3RhdGUgPSBlbnRyeS5zdGF0ZTsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnJlY2VpdmVkU3ZUaW1lSW5OcyA9IGVudHJ5LnJlY2VpdmVkX2dwc190b3dfbnM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5yZWNlaXZlZFN2VGltZVVuY2VydGFpbnR5SW5OcyA9CisgICAgICAgICAgICBlbnRyeS5yZWNlaXZlZF9ncHNfdG93X3VuY2VydGFpbnR5X25zOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY04wRGJIeiA9IGVudHJ5LmNfbjBfZGJoejsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnBzZXVkb3JhbmdlUmF0ZU1wcyA9IGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfbXBzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ucHNldWRvcmFuZ2VSYXRlVW5jZXJ0YWludHlNcHMgPQorICAgICAgICAgICAgICAgIGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfdW5jZXJ0YWludHlfbXBzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgPQorICAgICAgICAgICAgICAgIGVudHJ5LmFjY3VtdWxhdGVkX2RlbHRhX3JhbmdlX3N0YXRlOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlTSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfbTsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmFjY3VtdWxhdGVkRGVsdGFSYW5nZVVuY2VydGFpbnR5TSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfdW5jZXJ0YWludHlfbTsKKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX0ZSRVFVRU5DWSkgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJGcmVxdWVuY3lIeiA9IGVudHJ5LmNhcnJpZXJfZnJlcXVlbmN5X2h6OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJGcmVxdWVuY3lIeiA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX1BIQVNFKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY2FycmllclBoYXNlID0gZW50cnkuY2Fycmllcl9waGFzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2UgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVudHJ5LmZsYWdzICYgR05TU19NRUFTVVJFTUVOVF9IQVNfQ0FSUklFUl9QSEFTRV9VTkNFUlRBSU5UWSkgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gZW50cnkuY2Fycmllcl9waGFzZV91bmNlcnRhaW50eTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2VVbmNlcnRhaW50eSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ubXVsdGlwYXRoSW5kaWNhdG9yID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNdWx0aXBhdGhJbmRpY2F0b3I+KAorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkubXVsdGlwYXRoX2luZGljYXRvcik7CisKKyAgICAgICAgaWYgKGVudHJ5LmZsYWdzICYgR05TU19NRUFTVVJFTUVOVF9IQVNfU05SKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc25yRGIgPSBlbnRyeS5zbnJfZGI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc25yRGIgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBjbG9ja1ZhbCA9IGdwc0RhdGEtPmNsb2NrOworICAgIHN0YXRpYyB1aW50MzJfdCBkaXNjb250aW51aXR5X2NvdW50X3RvX2hhbmRsZV9vbGRfY2xvY2tfdHlwZSA9IDA7CisgICAgYXV0byBmbGFncyA9IGNsb2NrVmFsLmZsYWdzOworCisgICAgZ25zc0RhdGEuY2xvY2subGVhcFNlY29uZCA9IGNsb2NrVmFsLmxlYXBfc2Vjb25kOworICAgIC8qCisgICAgICogR25zc0Nsb2NrIG9ubHkgc3VwcG9ydHMgdGhlIG1vcmUgZWZmZWN0aXZlIEhXX0NMT0NLIHR5cGUsIHNvIHR5cGUKKyAgICAgKiBoYW5kbGluZyBhbmQgZG9jdW1lbnRhdGlvbiBjb21wbGV4aXR5IGhhcyBiZWVuIHJlbW92ZWQuICBUbyBjb252ZXJ0IHRoZQorICAgICAqIG9sZCBHUFNfQ0xPQ0sgdHlwZXMgKGFjdGl2ZSBvbmx5IGluIGEgbGltaXRlZCBudW1iZXIgb2Ygb2xkZXIgZGV2aWNlcyksCisgICAgICogdGhlIEdQUyB0aW1lIGluZm9ybWF0aW9uIGlzIGhhbmRsZWQgYXMgYW4gYWx3YXlzIGRpc2NvbnRpbnVvdXMgSFcgY2xvY2ssCisgICAgICogd2l0aCB0aGUgR1BTIHRpbWUgaW5mb3JtYXRpb24gcHV0IGludG8gdGhlIGZ1bGxfYmlhc19ucyBpbnN0ZWFkIC0gc28gdGhhdAorICAgICAqIHRpbWVfbnMgLSBmdWxsX2JpYXNfbnMgPSBsb2NhbCBlc3RpbWF0ZSBvZiBHUFMgdGltZS4gQWRkaXRpb25hbGx5LCB0aGUKKyAgICAgKiBzaWduIG9mIGZ1bGxfYmlhc19ucyBhbmQgYmlhc19ucyBoYXMgZmxpcHBlZCBiZXR3ZWVuIEdwc0Nsb2NrICYKKyAgICAgKiBHbnNzQ2xvY2ssIHNvIHRoYXQgaXMgYWxzbyBoYW5kbGVkIGJlbG93LgorICAgICAqLworICAgIHN3aXRjaCAoY2xvY2tWYWwudHlwZSkgeworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX1VOS05PV046CisgICAgICAgICAgICAvLyBDbG9jayB0eXBlIHVuc3VwcG9ydGVkLgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gY2xvY2sgdHlwZSBwcm92aWRlZC4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX0xPQ0FMX0hXX1RJTUU6CisgICAgICAgICAgICAvLyBBbHJlYWR5IGxvY2FsIGhhcmR3YXJlIHRpbWUuIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHUFNfQ0xPQ0tfVFlQRV9HUFNfVElNRToKKyAgICAgICAgICAgIC8vIEdQUyB0aW1lLCBuZWVkIHRvIGNvbnZlcnQuCisgICAgICAgICAgICBmbGFncyB8PSBHUFNfQ0xPQ0tfSEFTX0ZVTExfQklBUzsKKyAgICAgICAgICAgIGNsb2NrVmFsLmZ1bGxfYmlhc19ucyA9IGNsb2NrVmFsLnRpbWVfbnM7CisgICAgICAgICAgICBjbG9ja1ZhbC50aW1lX25zID0gMDsKKyAgICAgICAgICAgIGduc3NEYXRhLmNsb2NrLmh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQgPQorICAgICAgICAgICAgICAgICAgICBkaXNjb250aW51aXR5X2NvdW50X3RvX2hhbmRsZV9vbGRfY2xvY2tfdHlwZSsrOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZ25zc0RhdGEuY2xvY2sudGltZU5zID0gY2xvY2tWYWwudGltZV9uczsKKyAgICBnbnNzRGF0YS5jbG9jay50aW1lVW5jZXJ0YWludHlOcyA9IGNsb2NrVmFsLnRpbWVfdW5jZXJ0YWludHlfbnM7CisgICAgLyoKKyAgICAgKiBEZWZpbml0aW9uIG9mIHNpZ24gZm9yIGZ1bGxfYmlhc19ucyAmIGJpYXNfbnMgaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSBOLAorICAgICAqIHNvIGZsaXAgc2lnbnMgaGVyZS4KKyAgICAgKi8KKyAgICBnbnNzRGF0YS5jbG9jay5mdWxsQmlhc05zID0gLShjbG9ja1ZhbC5mdWxsX2JpYXNfbnMpOworICAgIGduc3NEYXRhLmNsb2NrLmJpYXNOcyA9IC0oY2xvY2tWYWwuYmlhc19ucyk7CisgICAgZ25zc0RhdGEuY2xvY2suYmlhc1VuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC5iaWFzX3VuY2VydGFpbnR5X25zOworICAgIGduc3NEYXRhLmNsb2NrLmRyaWZ0TnNwcyA9IGNsb2NrVmFsLmRyaWZ0X25zcHM7CisgICAgZ25zc0RhdGEuY2xvY2suZHJpZnRVbmNlcnRhaW50eU5zcHMgPSBjbG9ja1ZhbC5kcmlmdF91bmNlcnRhaW50eV9uc3BzOworICAgIGduc3NEYXRhLmNsb2NrLmduc3NDbG9ja0ZsYWdzID0gY2xvY2tWYWwuZmxhZ3M7CisKKyAgICBhdXRvIHJldCA9IHNHbnNzTWVhc3VyZUNiSWZhY2UtPkduc3NNZWFzdXJlbWVudENiKGduc3NEYXRhKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQgZm9sbG93LgorUmV0dXJuPEduc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50U3RhdHVzPiBHbnNzTWVhc3VyZW1lbnQ6OnNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NNZWFzdXJlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NNZWFzdXJlIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIEduc3NNZWFzdXJlbWVudFN0YXR1czo6RVJST1JfR0VORVJJQzsKKyAgICB9CisgICAgc0duc3NNZWFzdXJlQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEduc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50U3RhdHVzPigKKyAgICAgICAgICAgIG1HbnNzTWVhc3VyZUlmYWNlLT5pbml0KCZzR25zc01lYXN1cmVtZW50Q2JzKSk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTWVhc3VyZW1lbnQ6OmNsb3NlKCkgIHsKKyAgICBpZiAobUduc3NNZWFzdXJlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NNZWFzdXJlIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc01lYXN1cmVJZmFjZS0+Y2xvc2UoKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZjE0MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTWVhc3VyZW1lbnRfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc01lYXN1cmVtZW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCit1c2luZyBMZWdhY3lHbnNzRGF0YSA9IDo6R25zc0RhdGE7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgTWVhc3VyZW1lbnRzIHN1cHBvcnQuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMKKyAqIGZyb20gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZQorICogR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzTWVhc3VyZW1lbnQgOiBwdWJsaWMgSUduc3NNZWFzdXJlbWVudCB7CisgICAgR25zc01lYXN1cmVtZW50KGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKiBncHNNZWFzdXJlbWVudElmYWNlKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTWVhc3VyZW1lbnQuaGFsLgorICAgICAqLworICAgIFJldHVybjxHbnNzTWVhc3VyZW1lbnRTdGF0dXM+IHNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3NNZWFzdXJlbWVudCBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGduc3NNZWFzdXJlbWVudENiKExlZ2FjeUduc3NEYXRhKiBkYXRhKTsKKyAgICAgLyoKKyAgICAgICogRGVwcmVjYXRlZCBjYWxsYmFjayBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpdHkgZm9yIGRldmljZXMgdGhhdCBkbworICAgICAgKiBub3Qgc3VwcG9ydCBHbnNzRGF0YSBtZWFzdXJlbWVudHMuCisgICAgICAqLworICAgIHN0YXRpYyB2b2lkIGdwc01lYXN1cmVtZW50Q2IoR3BzRGF0YSogZGF0YSk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNNZWFzdXJlbWVudENhbGxiYWNrcyBzR25zc01lYXN1cmVtZW50Q2JzOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogbUduc3NNZWFzdXJlSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+IHNHbnNzTWVhc3VyZUNiSWZhY2U7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNTA5ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3NwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjaz4gR25zc05hdmlnYXRpb25NZXNzYWdlOjpzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID0gbnVsbHB0cjsKKworR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3MgR25zc05hdmlnYXRpb25NZXNzYWdlOjpzR25zc05hdmlnYXRpb25NZXNzYWdlQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3MpLAorICAgIC5uYXZpZ2F0aW9uX21lc3NhZ2VfY2FsbGJhY2sgPSBudWxscHRyLAorICAgIC5nbnNzX25hdmlnYXRpb25fbWVzc2FnZV9jYWxsYmFjayA9IGduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiCit9OworCitHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZSgKKyAgICAgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIGdwc05hdmlnYXRpb25NZXNzYWdlSWZhY2UpIDoKKyAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UoZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSkge30KKwordm9pZCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Omduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKExlZ2FjeUduc3NOYXZpZ2F0aW9uTWVzc2FnZSogbWVzc2FnZSkgeworICAgIGlmIChzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbiBNZXNzYWdlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXMsIHJlY2VpdmVkIGludmFsaWQgR25zc05hdmlnYXRpb25NZXNzYWdlIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZSBuYXZpZ2F0aW9uTXNnOworCisgICAgbmF2aWdhdGlvbk1zZy5zdmlkID0gbWVzc2FnZS0+c3ZpZDsKKyAgICBuYXZpZ2F0aW9uTXNnLnR5cGUgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2VUeXBlPihtZXNzYWdlLT50eXBlKTsKKyAgICBuYXZpZ2F0aW9uTXNnLnN0YXR1cyA9IG1lc3NhZ2UtPnN0YXR1czsKKyAgICBuYXZpZ2F0aW9uTXNnLm1lc3NhZ2VJZCA9IG1lc3NhZ2UtPm1lc3NhZ2VfaWQ7CisgICAgbmF2aWdhdGlvbk1zZy5zdWJtZXNzYWdlSWQgPSBtZXNzYWdlLT5zdWJtZXNzYWdlX2lkOworICAgIG5hdmlnYXRpb25Nc2cuZGF0YS5zZXRUb0V4dGVybmFsKG1lc3NhZ2UtPmRhdGEsIG1lc3NhZ2UtPmRhdGFfbGVuZ3RoKTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZS0+Z25zc05hdmlnYXRpb25NZXNzYWdlQ2IobmF2aWdhdGlvbk1zZyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlIGZvbGxvdy4KK1JldHVybjxHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cz4gR25zc05hdmlnYXRpb25NZXNzYWdlOjpzZXRDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgaWYgKG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc05hdmlnYXRpb25NZXNzYWdlIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXM6OkVSUk9SX0dFTkVSSUM7CisgICAgfQorCisgICAgc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEduc3NOYXZpZ2F0aW9uTWVzc2FnZTo6R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPigKKyAgICAgICAgICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZS0+aW5pdCgmc0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKSk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6OmNsb3NlKCkgIHsKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2Ugbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UtPmNsb3NlKCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODI4NTRiCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05hdmlnYXRpb25NZXNzYWdlX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgTGVnYWN5R25zc05hdmlnYXRpb25NZXNzYWdlID0gOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2U7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIHJlcG9ydGluZyBzdXBwb3J0LiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcworICogdG8gYWxsb3cgbWV0aG9kcyBmcm9tIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbAorICogaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc05hdmlnYXRpb25NZXNzYWdlIDogcHVibGljIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZShjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSogZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPiBzZXRDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZSgpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBnbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYihMZWdhY3lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UqIG1lc3NhZ2UpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3Mgc0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNiOworIHByaXZhdGU6CisgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjaz4gc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05hdmlnYXRpb25NZXNzYWdlX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE3ODkxZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmNwcApAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTmlJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzTmkuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NOaTo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElHbnNzTmlDYWxsYmFjaz4gR25zc05pOjpzR25zc05pQ2JJZmFjZSA9IG51bGxwdHI7Citib29sIEduc3NOaTo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNOaUNhbGxiYWNrcyBHbnNzTmk6OnNHbnNzTmlDYiA9IHsKKyAgICAubm90aWZ5X2NiID0gbmlOb3RpZnlDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiCit9OworCitHbnNzTmk6Okduc3NOaShjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSkgOiBtR25zc05pSWZhY2UoZ3BzTmlJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0duc3NOaTo6fkduc3NOaSgpIHsKKyAgICBzVGhyZWFkRnVuY0FyZ3NMaXN0LmNsZWFyKCk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworfQorCitwdGhyZWFkX3QgR25zc05pOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCit2b2lkIEduc3NOaTo6bmlOb3RpZnlDYihHcHNOaU5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKSB7CisgICAgaWYgKHNHbnNzTmlDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIE5JIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBHcHNOb3RpZmljYXRpb24gY2FsbGJhY2sgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTmlDYWxsYmFjazo6R25zc05pTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbkduc3MgPSB7CisgICAgICAgIC5ub3RpZmljYXRpb25JZCA9ICBub3RpZmljYXRpb24tPm5vdGlmaWNhdGlvbl9pZCwKKyAgICAgICAgLm5pVHlwZSA9IHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pVHlwZT4obm90aWZpY2F0aW9uLT5uaV90eXBlKSwKKyAgICAgICAgLm5vdGlmeUZsYWdzID0gbm90aWZpY2F0aW9uLT5ub3RpZnlfZmxhZ3MsCisgICAgICAgIC50aW1lb3V0U2VjID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG5vdGlmaWNhdGlvbi0+dGltZW91dCksCisgICAgICAgIC5kZWZhdWx0UmVzcG9uc2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGU+KG5vdGlmaWNhdGlvbi0+ZGVmYXVsdF9yZXNwb25zZSksCisgICAgICAgIC5yZXF1ZXN0b3JJZCA9IG5vdGlmaWNhdGlvbi0+cmVxdWVzdG9yX2lkLAorICAgICAgICAubm90aWZpY2F0aW9uTWVzc2FnZSA9IG5vdGlmaWNhdGlvbi0+dGV4dCwKKyAgICAgICAgLnJlcXVlc3RvcklkRW5jb2RpbmcgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pRW5jb2RpbmdUeXBlPihub3RpZmljYXRpb24tPnJlcXVlc3Rvcl9pZF9lbmNvZGluZyksCisgICAgICAgIC5ub3RpZmljYXRpb25JZEVuY29kaW5nID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc05pQ2FsbGJhY2s6Okduc3NOaUVuY29kaW5nVHlwZT4obm90aWZpY2F0aW9uLT50ZXh0X2VuY29kaW5nKQorICAgIH07CisKKyAgICBhdXRvIHJldCA9IHNHbnNzTmlDYklmYWNlLT5uaU5vdGlmeUNiKG5vdGlmaWNhdGlvbkduc3MpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaSBmb2xsb3cuCitSZXR1cm48dm9pZD4gR25zc05pOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc05pQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICBBTE9HRSgiJXM6IEduc3NOaSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzR25zc05pQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgbUduc3NOaUlmYWNlLT5pbml0KCZzR25zc05pQ2IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTmk6OnJlc3BvbmQoaW50MzJfdCBub3RpZklkLCBJR25zc05pQ2FsbGJhY2s6Okduc3NVc2VyUmVzcG9uc2VUeXBlIHVzZXJSZXNwb25zZSkgIHsKKyAgICBpZiAobUduc3NOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmkgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzTmlJZmFjZS0+cmVzcG9uZChub3RpZklkLCBzdGF0aWNfY2FzdDxHcHNVc2VyUmVzcG9uc2VUeXBlPih1c2VyUmVzcG9uc2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlODUwYjEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NOaV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmlfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOaS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05pOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBOZXR3b3JrLWluaXRpYXRlZCAoTkkpIHN1cHBvcnQuIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgdG8gcmVzcG9uZCB0bworICogTkkgbm90aWZpY2F0aW9ucyBvcmlnaW5hdGluZyBmcm9tIHRoZSBIQUwuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMgZnJvbQorICogSUduc3NOaUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTlNTIEhBTC4KKyAqLworc3RydWN0IEduc3NOaSA6IHB1YmxpYyBJR25zc05pIHsKKyAgICBHbnNzTmkoY29uc3QgR3BzTmlJbnRlcmZhY2UqIGdwc05pSWZhY2UpOworICAgIH5HbnNzTmkoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmkgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTmkuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc05pQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3BvbmQoaW50MzJfdCBub3RpZklkLAorICAgICAgICAgICAgICAgICAgICAgICAgIElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGUgdXNlclJlc3BvbnNlKSBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc05pIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBuaU5vdGlmeUNiKEdwc05pTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzTmlDYWxsYmFja3Mgc0duc3NOaUNiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNOaUludGVyZmFjZSogbUduc3NOaUlmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUduc3NOaUNhbGxiYWNrPiBzR25zc05pQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmlfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTk1NmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzVXRpbHMuY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiR25zc1V0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uOworCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEdwc0xvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSB7fTsKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSB7CisgICAgICAgICAgICAvLyBCaXQgb3BlcmF0aW9uIEFORCB3aXRoIDFmIGJlbG93IGlzIG5lZWRlZCB0byBjbGVhciB2ZXJ0aWNhbCBhY2N1cmFjeSwKKyAgICAgICAgICAgIC8vIHNwZWVkIGFjY3VyYWN5IGFuZCBiZWFyaW5nIGFjY3VyYWN5IGZsYWdzIGFzIHNvbWUgdmVuZG9ycyBhcmUgZm91bmQKKyAgICAgICAgICAgIC8vIHRvIGJlIHNldHRpbmcgdGhlc2UgYml0cyBpbiBwcmUtQW5kcm9pZC1PIGRldmljZXMKKyAgICAgICAgICAgIC5nbnNzTG9jYXRpb25GbGFncyA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pihsb2NhdGlvbi0+ZmxhZ3MgJiAweDFmKSwKKyAgICAgICAgICAgIC5sYXRpdHVkZURlZ3JlZXMgPSBsb2NhdGlvbi0+bGF0aXR1ZGUsCisgICAgICAgICAgICAubG9uZ2l0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sb25naXR1ZGUsCisgICAgICAgICAgICAuYWx0aXR1ZGVNZXRlcnMgPSBsb2NhdGlvbi0+YWx0aXR1ZGUsCisgICAgICAgICAgICAuc3BlZWRNZXRlcnNQZXJTZWMgPSBsb2NhdGlvbi0+c3BlZWQsCisgICAgICAgICAgICAuYmVhcmluZ0RlZ3JlZXMgPSBsb2NhdGlvbi0+YmVhcmluZywKKyAgICAgICAgICAgIC5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMgPSBsb2NhdGlvbi0+YWNjdXJhY3ksCisgICAgICAgICAgICAvLyBPbGRlciBjaGlwc2V0cyBkbyBub3QgcHJvdmlkZSB0aGUgZm9sbG93aW5nIDMgZmllbGRzLCBoZW5jZSB0aGUgZmxhZ3MKKyAgICAgICAgICAgIC8vIEhBU19WRVJUSUNBTF9BQ0NVUkFDWSwgSEFTX1NQRUVEX0FDQ1VSQUNZIGFuZCBIQVNfQkVBUklOR19BQ0NVUkFDWSBhcmUKKyAgICAgICAgICAgIC8vIG5vdCBzZXQgYW5kIHRoZSBmaWVsZCBhcmUgc2V0IHRvIHplcm9zLgorICAgICAgICAgICAgLnZlcnRpY2FsQWNjdXJhY3lNZXRlcnMgPSAwLAorICAgICAgICAgICAgLnNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQgPSAwLAorICAgICAgICAgICAgLmJlYXJpbmdBY2N1cmFjeURlZ3JlZXMgPSAwLAorICAgICAgICAgICAgLnRpbWVzdGFtcCA9IGxvY2F0aW9uLT50aW1lc3RhbXAKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICByZXR1cm4gZ25zc0xvY2F0aW9uOworfQorCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEZscExvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSB7fTsKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSB7CisgICAgICAgICAgICAvLyBCaXQgbWFzayBhcHBsaWVkIChhbmQgMCdzIGJlbG93KSBmb3Igc2FtZSByZWFzb24gYXMgYWJvdmUgd2l0aCBHcHNMb2NhdGlvbgorICAgICAgICAgICAgLmduc3NMb2NhdGlvbkZsYWdzID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGxvY2F0aW9uLT5mbGFncyAmIDB4MWYpLAorICAgICAgICAgICAgLmxhdGl0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sYXRpdHVkZSwKKyAgICAgICAgICAgIC5sb25naXR1ZGVEZWdyZWVzID0gbG9jYXRpb24tPmxvbmdpdHVkZSwKKyAgICAgICAgICAgIC5hbHRpdHVkZU1ldGVycyA9IGxvY2F0aW9uLT5hbHRpdHVkZSwKKyAgICAgICAgICAgIC5zcGVlZE1ldGVyc1BlclNlYyA9IGxvY2F0aW9uLT5zcGVlZCwKKyAgICAgICAgICAgIC5iZWFyaW5nRGVncmVlcyA9IGxvY2F0aW9uLT5iZWFyaW5nLAorICAgICAgICAgICAgLmhvcml6b250YWxBY2N1cmFjeU1ldGVycyA9IGxvY2F0aW9uLT5hY2N1cmFjeSwKKyAgICAgICAgICAgIC52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzID0gMCwKKyAgICAgICAgICAgIC5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kID0gMCwKKyAgICAgICAgICAgIC5iZWFyaW5nQWNjdXJhY3lEZWdyZWVzID0gMCwKKyAgICAgICAgICAgIC50aW1lc3RhbXAgPSBsb2NhdGlvbi0+dGltZXN0YW1wCisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIGduc3NMb2NhdGlvbjsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZDRiMmQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzVXRpbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzVXRpbF9IXworCisjaW5jbHVkZSA8aGFyZHdhcmUvZnVzZWRfbG9jYXRpb24uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvKgorICogVGhpcyBtZXRob2QgY29udmVydHMgYSBHcHNMb2NhdGlvbiBzdHJ1Y3QgdG8gYSBHbnNzTG9jYXRpb24KKyAqIHN0cnVjdC4KKyAqLworR25zc0xvY2F0aW9uIGNvbnZlcnRUb0duc3NMb2NhdGlvbihHcHNMb2NhdGlvbiogbG9jYXRpb24pOworCisvKgorICogVGhpcyBtZXRob2QgY29udmVydHMgYW4gRmxwTG9jYXRpb24gc3RydWN0IHRvIGEgR25zc0xvY2F0aW9uCisgKiBzdHJ1Y3QuCisgKi8KK0duc3NMb2NhdGlvbiBjb252ZXJ0VG9HbnNzTG9jYXRpb24oRmxwTG9jYXRpb24qIGxvY2F0aW9uKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjRjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NYdHJhSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiR25zc1h0cmEuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NYdHJhOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NYdHJhQ2FsbGJhY2s+IEduc3NYdHJhOjpzR25zc1h0cmFDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc1h0cmE6OnNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKworR3BzWHRyYUNhbGxiYWNrcyBHbnNzWHRyYTo6c0duc3NYdHJhQ2IgPSB7CisgICAgLmRvd25sb2FkX3JlcXVlc3RfY2IgPSBnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IsCit9OworCitHbnNzWHRyYTo6fkduc3NYdHJhKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3B0aHJlYWRfdCBHbnNzWHRyYTo6Y3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgeworICAgIHJldHVybiBjcmVhdGVQdGhyZWFkKG5hbWUsIHN0YXJ0LCBhcmcsICZzVGhyZWFkRnVuY0FyZ3NMaXN0KTsKK30KKworR25zc1h0cmE6Okduc3NYdHJhKGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIHh0cmFJZmFjZSkgOiBtR25zc1h0cmFJZmFjZSh4dHJhSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCit2b2lkIEduc3NYdHJhOjpnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiKCkgeworICAgIGlmIChzR25zc1h0cmFDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc1h0cmFDYklmYWNlLT5kb3dubG9hZFJlcXVlc3RDYigpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzWHRyYTo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NYdHJhQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgWHRyYSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzR25zc1h0cmFDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gKG1HbnNzWHRyYUlmYWNlLT5pbml0KCZzR25zc1h0cmFDYikgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzWHRyYTo6aW5qZWN0WHRyYURhdGEoY29uc3QgaGlkbF9zdHJpbmcmIHh0cmFEYXRhKSAgeworICAgIGlmIChtR25zc1h0cmFJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBYdHJhIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNoYXIqIGJ1ZiA9IG5ldyBjaGFyW3h0cmFEYXRhLnNpemUoKV07CisgICAgY29uc3QgY2hhciogZGF0YSA9IHh0cmFEYXRhLmNfc3RyKCk7CisKKyAgICBtZW1jcHkoYnVmLCBkYXRhLCB4dHJhRGF0YS5zaXplKCkpOworCisgICAgaW50IHJldCA9IG1HbnNzWHRyYUlmYWNlLT5pbmplY3RfeHRyYV9kYXRhKGJ1ZiwgeHRyYURhdGEuc2l6ZSgpKTsKKyAgICBkZWxldGVbXSBidWY7CisgICAgcmV0dXJuIChyZXQgPT0gMCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EwNzMzYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmEuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IHRoZSBmcmFtZXdvcmsgdG8gZG93bmxvYWQgWFRSQSBkYXRhLgorICogQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tIElHbnNzWHRyYUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQKKyAqIGludG8gdGhlIGNvbnZlbnRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzWHRyYSA6IHB1YmxpYyBJR25zc1h0cmEgeworICAgIEduc3NYdHJhKGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIHh0cmFJZmFjZSk7CisgICAgfkduc3NYdHJhKCk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc1h0cmEgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzWHRyYS5oYWwuCisgICAgICovCisgICAgUmV0dXJuPGJvb2w+IHNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzWHRyYUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RYdHJhRGF0YShjb25zdCBoaWRsX3N0cmluZyYgeHRyYURhdGEpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzWHRyYSBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisgICAgc3RhdGljIHZvaWQgZ25zc1h0cmFEb3dubG9hZFJlcXVlc3RDYigpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzWHRyYUNhbGxiYWNrcyBzR25zc1h0cmFDYjsKKworIHByaXZhdGU6CisgICAgY29uc3QgR3BzWHRyYUludGVyZmFjZSogbUduc3NYdHJhSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc1h0cmFDYWxsYmFjaz4gc0duc3NYdHJhQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTYzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L1RocmVhZENyZWF0aW9uV3JhcHBlci5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKwordm9pZCogdGhyZWFkRnVuYyh2b2lkKiBhcmcpIHsKKyAgICBUaHJlYWRGdW5jQXJncyogdGhyZWFkQXJncyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGhyZWFkRnVuY0FyZ3MqPihhcmcpOworICAgIHRocmVhZEFyZ3MtPmZwdHIodGhyZWFkQXJncy0+YXJncyk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3B0aHJlYWRfdCBjcmVhdGVQdGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqc3RhcnQpKHZvaWQqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZywgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gKiBsaXN0QXJncykgeworICAgIHB0aHJlYWRfdCB0aHJlYWRJZDsKKyAgICBhdXRvIHRocmVhZEFyZ3MgPSBuZXcgVGhyZWFkRnVuY0FyZ3Moc3RhcnQsIGFyZyk7CisgICAgYXV0byBhcmdQdHIgPSBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+KHRocmVhZEFyZ3MpOworCisgICAgbGlzdEFyZ3MtPnB1c2hfYmFjayhzdGQ6Om1vdmUoYXJnUHRyKSk7CisKKyAgICBpbnQgcmV0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZElkLCBudWxscHRyLCB0aHJlYWRGdW5jLCByZWludGVycHJldF9jYXN0PHZvaWQqPigKKyAgICAgICAgICAgIHRocmVhZEFyZ3MpKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoInB0aHJlYWQgY3JlYXRpb24gdW5zdWNjZXNzZnVsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHRocmVhZF9zZXRuYW1lX25wKHRocmVhZElkLCBuYW1lKTsKKyAgICB9CisgICAgcmV0dXJuIHRocmVhZElkOworfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuaCBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYwYTllNAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1RIUkVBRENSRUFUSU9OV1JBUFBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR05TU19USFJFQURDUkVBVElPTldSQVBQRVJfSAorCisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+CisKK3R5cGVkZWYgdm9pZCAoKnRocmVhZEVudHJ5RnVuYykodm9pZCogcmV0KTsKKworLyoKKyAqIFRoaXMgY2xhc3MgZmFjaWxpdGF0ZXMgY3JlYXRlVGhyZWFkQ2IgbWV0aG9kcyBpbiB2YXJpb3VzIEdOU1MgaW50ZXJmYWNlcyB0byB3cmFwCisgKiBwdGhyZWFkX2NyZWF0ZSgpIGZyb20gbGliYyBzaW5jZSBpdHMgZnVuY3Rpb24gc2lnbmF0dXJlIGRpZmZlcnMgZnJvbSB3aGF0IGlzIHJlcXVpcmVkIGJ5IHRoZQorICogY29udmVudGlvbmFsIEdOU1MgSEFMLiBUaGUgYXJndW1lbnRzIHBhc3NlZCB0byBwdGhyZWFkX2NyZWF0ZSgpIG5lZWQgdG8gYmUgb24gaGVhcCBhbmQgbm90IG9uCisgKiB0aGUgc3RhY2sgb2YgY3JlYXRlVGhyZWFkQ2IuCisgKi8KK3N0cnVjdCBUaHJlYWRGdW5jQXJncyB7CisgICAgVGhyZWFkRnVuY0FyZ3Modm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgOiBmcHRyKHN0YXJ0KSwgYXJncyhhcmcpIHt9CisKKyAgICAvKiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiBvZiB0eXBlIHZvaWQoKSh2b2lkKikgdGhhdCBuZWVkcyB0byBiZSB3cmFwcGVkICovCisgICAgdGhyZWFkRW50cnlGdW5jIGZwdHI7CisgICAgLyogYXJndW1lbnQgZm9yIGZwdHIgdG8gYmUgY2FsbGVkIHdpdGggKi8KKyAgICB2b2lkKiBhcmdzOworfTsKKworLyoKKyAqIFRoaXMgbWV0aG9kIGlzIHNpbXBseSBhIHdyYXBwZXIuIEl0IGlzIHJlcXVpcmVkIHNpbmNlIHB0aHJlYWRfY3JlYXRlKCkgcmVxdWlyZXMgYW4gZW50cnkKKyAqIGZ1bmN0aW9uIHBvaW50ZXIgb2YgdHlwZSB2b2lkKigpKHZvaWQqKSBhbmQgdGhlIEdOU1MgaGFsIHJlcXVpcmVzIGFzIGlucHV0IGEgZnVuY3Rpb24gcG9pbnRlciBvZgorICogdHlwZSB2b2lkKCkodm9pZCopLgorICovCit2b2lkKiB0aHJlYWRGdW5jKHZvaWQqIGFyZyk7CisKKy8qCisgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgY3JlYXRlVGhyZWFkQ2Igd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHZlY3RvciB0aGF0CisgKiBob2xkcyB0aGUgcG9pbnRlcnMgdG8gdGhlIHRocmVhZCBhcmd1bWVudHMuIFRoZSBhcmcgYW5kIHN0YXJ0IHBhcmFtZXRlcnMgYXJlCisgKiBmaXJzdCB1c2VkIHRvIGNyZWF0ZSBhIFRocmVhZEZ1bmNBcmdzIG9iamVjdCB3aGljaCBpcyB0aGVuIHNhdmVkIGluIHRoZQorICogbGlzdEFyZ3MgcGFyYW1ldGVycy4gVGhlIGNyZWF0ZWQgVGhyZWFkRnVuY0FyZ3Mgb2JqZWN0IGlzIHRoZW4gdXNlZCB0byBpbnZva2UKKyAqIHRocmVhZEZ1bmMoKSBtZXRob2Qgd2hpY2ggaW4tdHVybiBpbnZva2VzIHB0aHJlYWRfY3JlYXRlLgorICovCitwdGhyZWFkX3QgY3JlYXRlUHRocmVhZChjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gKiBsaXN0QXJncyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMgYi9nbnNzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjYzOGEzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGduc3Nfc2VydmljZSAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBtYWluCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0gZ3BzCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzA0ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDE3IEBACisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvLyBUaGUgR05TUyBIQUwgbWF5IGNvbW11bmljYXRlIHRvIG90aGVyIHZlbmRvciBjb21wb25lbnRzIHZpYQorICAgIC8vIC9kZXYvdm5kYmluZGVyCisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjppbml0V2l0aERyaXZlcigiL2Rldi92bmRiaW5kZXIiKTsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElHbnNzPigpOworfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdHlwZXMuaGFsIGIvZ25zcy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMmM3NTYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01BWF8iKQorZW51bSBHbnNzTWF4IDogdWludDMyX3QgeworLyoqIE1heGltdW0gbnVtYmVyIG9mIFNWcyBmb3IgZ25zc1N2U3RhdHVzQ2IoKS4gKi8KKyAgICBTVlNfQ09VTlQgPSA2NCwKK307CisKKy8qKiBNaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwICovCit0eXBlZGVmIGludDY0X3QgR25zc1V0Y1RpbWU7CisKKy8qKgorICogQ29uc3RlbGxhdGlvbiB0eXBlIG9mIEduc3NTdkluZm8KKyAqLworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19DT05TVEVMTEFUSU9OXyIpCitlbnVtIEduc3NDb25zdGVsbGF0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIFVOS05PV04gPSAwLAorICAgIEdQUyAgICAgPSAxLAorICAgIFNCQVMgICAgPSAyLAorICAgIEdMT05BU1MgPSAzLAorICAgIFFaU1MgICAgPSA0LAorICAgIEJFSURPVSAgPSA1LAorICAgIEdBTElMRU8gPSA2LAorfTsKKworLyoqIEJpdCBtYXNrIHRvIGluZGljYXRlIHdoaWNoIHZhbHVlcyBhcmUgdmFsaWQgaW4gYSBHbnNzTG9jYXRpb24gb2JqZWN0LiAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19MT0NBVElPTl8iKQorZW51bSBHbnNzTG9jYXRpb25GbGFncyA6IHVpbnQxNl90IHsKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlLiAqLworICAgIEhBU19MQVRfTE9ORyAgICAgICAgICAgICAgPSAweDAwMDEsCisgICAgLyoqIEduc3NMb2NhdGlvbiBoYXMgdmFsaWQgYWx0aXR1ZGUuICovCisgICAgSEFTX0FMVElUVURFICAgICAgICAgICAgICA9IDB4MDAwMiwKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBzcGVlZC4gKi8KKyAgICBIQVNfU1BFRUQgICAgICAgICAgICAgICAgID0gMHgwMDA0LAorICAgIC8qKiBHbnNzTG9jYXRpb24gaGFzIHZhbGlkIGJlYXJpbmcuICovCisgICAgSEFTX0JFQVJJTkcgICAgICAgICAgICAgICA9IDB4MDAwOCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIGhvcml6b250YWwgYWNjdXJhY3kuICovCisgICAgSEFTX0hPUklaT05UQUxfQUNDVVJBQ1kgICA9IDB4MDAxMCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIHZlcnRpY2FsIGFjY3VyYWN5LiAqLworICAgIEhBU19WRVJUSUNBTF9BQ0NVUkFDWSAgICAgPSAweDAwMjAsCisgICAgLyoqIEdwc0xvY2F0aW9uIGhhcyB2YWxpZCBzcGVlZCBhY2N1cmFjeS4gKi8KKyAgICBIQVNfU1BFRURfQUNDVVJBQ1kgICAgICAgID0gMHgwMDQwLAorICAgIC8qKiBHcHNMb2NhdGlvbiBoYXMgdmFsaWQgYmVhcmluZyBhY2N1cmFjeS4gKi8KKyAgICBIQVNfQkVBUklOR19BQ0NVUkFDWSAgICAgID0gMHgwMDgwCit9OworCisvKiogUmVwcmVzZW50cyBhIGxvY2F0aW9uLiAqLworc3RydWN0IEduc3NMb2NhdGlvbiB7CisgICAgLyoqIENvbnRhaW5zIEduc3NMb2NhdGlvbkZsYWdzIGJpdHMuICovCisgICAgYml0ZmllbGQ8R25zc0xvY2F0aW9uRmxhZ3M+IGduc3NMb2NhdGlvbkZsYWdzOworCisgICAgLyoqIFJlcHJlc2VudHMgbGF0aXR1ZGUgaW4gZGVncmVlcy4gKi8KKyAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzOworCisgICAgLyoqIFJlcHJlc2VudHMgbG9uZ2l0dWRlIGluIGRlZ3JlZXMuICovCisgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXM7CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGFsdGl0dWRlIGluIG1ldGVycyBhYm92ZSB0aGUgV0dTIDg0IHJlZmVyZW5jZSBlbGxpcHNvaWQuCisgICAgICovCisgICAgZG91YmxlIGFsdGl0dWRlTWV0ZXJzOworCisgICAgLyoqIFJlcHJlc2VudHMgc3BlZWQgaW4gbWV0ZXJzIHBlciBzZWNvbmQuICovCisgICAgZmxvYXQgc3BlZWRNZXRlcnNQZXJTZWM7CisKKyAgICAvKiogUmVwcmVzZW50cyBoZWFkaW5nIGluIGRlZ3JlZXMuICovCisgICAgZmxvYXQgYmVhcmluZ0RlZ3JlZXM7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgaG9yaXpvbnRhbCBwb3NpdGlvbiBhY2N1cmFjeSwgcmFkaWFsLCBpbiBtZXRlcnMKKyAgICAqICg2OCUgY29uZmlkZW5jZSkuCisgICAgKi8KKyAgICBmbG9hdCBob3Jpem9udGFsQWNjdXJhY3lNZXRlcnM7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgdmVydGljYWwgcG9zaXRpb24gYWNjdXJhY3kgaW4gbWV0ZXJzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgdmVydGljYWxBY2N1cmFjeU1ldGVyczsKKworICAgIC8qKgorICAgICogUmVwcmVzZW50cyBleHBlY3RlZCBzcGVlZCBhY2N1cmFjeSBpbiBtZXRlciBwZXIgc2Vjb25kcworICAgICogKDY4JSBjb25maWRlbmNlKS4KKyAgICAqLworICAgIGZsb2F0IHNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQ7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgYmVhcmluZyBhY2N1cmFjeSBpbiBkZWdyZWVzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgYmVhcmluZ0FjY3VyYWN5RGVncmVlczsKKworICAgIC8qKiBUaW1lc3RhbXAgZm9yIHRoZSBsb2NhdGlvbiBmaXguICovCisgICAgR25zc1V0Y1RpbWUgdGltZXN0YW1wOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkOTYwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHbnNzVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0LmNwcCBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRlMzE3MQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb247Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uRmxhZ3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NDYWxsYmFjazsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0RlYnVnOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQ7Cit1c2luZyBhbmRyb2lkOjpzcDsKKworI2RlZmluZSBUSU1FT1VUX1NFQyAyICAvLyBmb3IgYmFzaWMgY29tbWFuZHMvcmVzcG9uc2VzCisKKy8vIGZvciBjb21tYW5kIGxpbmUgYXJndW1lbnQgb24gaG93IHN0cmljdGx5IHRvIHJ1biB0aGUgdGVzdAorYm9vbCBzQWdwc0lzUHJlc2VudCA9IGZhbHNlOyAgLy8gaWYgU1VQTCBvciBYVFJBIGFzc2lzdGFuY2UgYXZhaWxhYmxlCitib29sIHNTaWduYWxJc1dlYWsgPSBmYWxzZTsgIC8vIGlmIEdOU1Mgc2lnbmFscyBhcmUgd2VhayAoZS5nLiBsaWdodCBpbmRvb3IpCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEdOU1MgSEFMLgorY2xhc3MgR25zc0hhbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIC8vIENsZWFuIGJldHdlZW4gdGVzdHMKKyAgICBjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XyA9IDA7CisgICAgbG9jYXRpb25fY2FsbGVkX2NvdW50XyA9IDA7CisgICAgaW5mb19jYWxsZWRfY291bnRfID0gMDsKKworICAgIGduc3NfaGFsXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElHbnNzPigpOworICAgIEFTU0VSVF9ORShnbnNzX2hhbF8sIG51bGxwdHIpOworCisgICAgZ25zc19jYl8gPSBuZXcgR25zc0NhbGxiYWNrKCp0aGlzKTsKKyAgICBBU1NFUlRfTkUoZ25zc19jYl8sIG51bGxwdHIpOworCisgICAgYXV0byByZXN1bHQgPSBnbnNzX2hhbF8tPnNldENhbGxiYWNrKGduc3NfY2JfKTsKKyAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgIEFMT0dFKCJyZXN1bHQgb2YgZmFpbGVkIHNldENhbGxiYWNrICVzIiwgcmVzdWx0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgfQorCisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKKworICAgIC8qCisgICAgICogQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHNob3VsZCB0cmlnZ2VyIC0gaXQgbWF5IGJlIGNhcGFiaWxpdGVzLCBvcgorICAgICAqIHN5c3RlbSBpbmZvIGZpcnN0LCBzbyB3YWl0IGFnYWluIGlmIGNhcGFiaWxpdGllcyBub3QgcmVjZWl2ZWQuCisgICAgICovCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KFRJTUVPVVRfU0VDKSk7CisgICAgaWYgKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfID09IDApIHsKKyAgICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdChUSU1FT1VUX1NFQykpOworICAgIH0KKworICAgIC8qCisgICAgICogR2VuZXJhbGx5IHNob3VsZCBiZSAxIGNhcGFiaWxpdGVzIGNhbGxiYWNrIC0KKyAgICAgKiBvciBwb3NzaWJseSAyIGluIHNvbWUgcmVjb3ZlcnkgY2FzZXMgKGRlZmF1bHQgY2FjaGVkICYgcmVmcmVzaGVkKQorICAgICAqLworICAgIEVYUEVDVF9HRShjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XywgMSk7CisgICAgRVhQRUNUX0xFKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfLCAyKTsKKworICAgIC8qCisgICAgICogQ2xlYXIgbm90aWZ5L3dhaXRpbmcgY291bnRlciwgYWxsb3dpbmcgdXAgdGlsbCB0aGUgdGltZW91dCBhZnRlcgorICAgICAqIHRoZSBsYXN0IHJlcGx5IGZvciBmaW5hbCBzdGFydHVwIG1lc3NhZ2VzIHRvIGFycml2ZSAoZXNwLiBzeXN0ZW0KKyAgICAgKiBpbmZvLikKKyAgICAgKi8KKyAgICB3aGlsZSAod2FpdChUSU1FT1VUX1NFQykgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQpIHsKKyAgICB9CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgaWYgKGduc3NfaGFsXyAhPSBudWxscHRyKSB7CisgICAgICBnbnNzX2hhbF8tPmNsZWFudXAoKTsKKyAgICB9CisgIH0KKworICAvKiBVc2VkIGFzIGEgbWVjaGFuaXNtIHRvIGluZm9ybSB0aGUgdGVzdCB0aGF0IGEgY2FsbGJhY2sgaGFzIG9jY3VycmVkICovCisgIGlubGluZSB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisgICAgY291bnQrKzsKKyAgICBjdl8ubm90aWZ5X29uZSgpOworICB9CisKKyAgLyogVGVzdCBjb2RlIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gd2FpdCBmb3IgYSBjYWxsYmFjayAqLworICBpbmxpbmUgc3RkOjpjdl9zdGF0dXMgd2FpdChpbnQgdGltZW91dFNlY29uZHMpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisKKyAgICBzdGQ6OmN2X3N0YXR1cyBzdGF0dXMgPSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dDsKKyAgICBhdXRvIG5vdyA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAgIHdoaWxlIChjb3VudCA9PSAwKSB7CisgICAgICBzdGF0dXMgPSBjdl8ud2FpdF91bnRpbChsb2NrLCBub3cgKyBzdGQ6OmNocm9ubzo6c2Vjb25kcyh0aW1lb3V0U2Vjb25kcykpOworICAgICAgaWYgKHN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6dGltZW91dCkgcmV0dXJuIHN0YXR1czsKKyAgICB9CisgICAgY291bnQtLTsKKyAgICByZXR1cm4gc3RhdHVzOworICB9CisKKyAgLyogQ2FsbGJhY2sgY2xhc3MgZm9yIGRhdGEgJiBFdmVudC4gKi8KKyAgY2xhc3MgR25zc0NhbGxiYWNrIDogcHVibGljIElHbnNzQ2FsbGJhY2sgeworICAgcHVibGljOgorICAgIEduc3NIYWxUZXN0JiBwYXJlbnRfOworCisgICAgR25zc0NhbGxiYWNrKEduc3NIYWxUZXN0JiBwYXJlbnQpIDogcGFyZW50XyhwYXJlbnQpe307CisKKyAgICB2aXJ0dWFsIH5HbnNzQ2FsbGJhY2soKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBEdW1teSBjYWxsYmFjayBoYW5kbGVycworICAgIFJldHVybjx2b2lkPiBnbnNzU3RhdHVzQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTdGF0dXNWYWx1ZSAvKiBzdGF0dXMgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzU3ZTdGF0dXNDYigKKyAgICAgICAgY29uc3QgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzJiAvKiBzdlN0YXR1cyAqLykgb3ZlcnJpZGUgeworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NObWVhQ2IoCisgICAgICAgIGludDY0X3QgLyogdGltZXN0YW1wICovLAorICAgICAgICBjb25zdCBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmcmIC8qIG5tZWEgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzQWNxdWlyZVdha2Vsb2NrQ2IoKSBvdmVycmlkZSB7IHJldHVybiBWb2lkKCk7IH0KKyAgICBSZXR1cm48dm9pZD4gZ25zc1JlbGVhc2VXYWtlbG9ja0NiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NSZXF1ZXN0VGltZUNiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisKKyAgICAvLyBBY3R1YWwgKHRlc3QpIGNhbGxiYWNrIGhhbmRsZXJzCisgICAgUmV0dXJuPHZvaWQ+IGduc3NMb2NhdGlvbkNiKGNvbnN0IEduc3NMb2NhdGlvbiYgbG9jYXRpb24pIG92ZXJyaWRlIHsKKyAgICAgIEFMT0dJKCJMb2NhdGlvbiByZWNlaXZlZCIpOworICAgICAgcGFyZW50Xy5sb2NhdGlvbl9jYWxsZWRfY291bnRfKys7CisgICAgICBwYXJlbnRfLmxhc3RfbG9jYXRpb25fID0gbG9jYXRpb247CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZ25zc1NldENhcGFiaWxpdGVzQ2IodWludDMyX3QgY2FwYWJpbGl0aWVzKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiQ2FwYWJpbGl0aWVzIHJlY2VpdmVkICVkIiwgY2FwYWJpbGl0aWVzKTsKKyAgICAgIHBhcmVudF8uY2FwYWJpbGl0aWVzX2NhbGxlZF9jb3VudF8rKzsKKyAgICAgIHBhcmVudF8ubGFzdF9jYXBhYmlsaXRpZXNfID0gY2FwYWJpbGl0aWVzOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGduc3NTZXRTeXN0ZW1JbmZvQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTeXN0ZW1JbmZvJiBpbmZvKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiSW5mbyByZWNlaXZlZCwgeWVhciAlZCIsIGluZm8ueWVhck9mSHcpOworICAgICAgcGFyZW50Xy5pbmZvX2NhbGxlZF9jb3VudF8rKzsKKyAgICAgIHBhcmVudF8ubGFzdF9pbmZvXyA9IGluZm87CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgIH07CisKKyAgc3A8SUduc3M+IGduc3NfaGFsXzsgICAgICAgICAvLyBHTlNTIEhBTCB0byBjYWxsIGludG8KKyAgc3A8SUduc3NDYWxsYmFjaz4gZ25zc19jYl87ICAvLyBQcmltYXJ5IGNhbGxiYWNrIGludGVyZmFjZQorCisgIC8qIENvdW50IG9mIGNhbGxzIHRvIHNldCB0aGUgZm9sbG93aW5nIGl0ZW1zLCBhbmQgdGhlIGxhdGVzdCBpdGVtICh1c2VkIGJ5CisgICAqIHRlc3QuKQorICAgKi8KKyAgaW50IGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfOworICB1aW50MzJfdCBsYXN0X2NhcGFiaWxpdGllc187CisKKyAgaW50IGxvY2F0aW9uX2NhbGxlZF9jb3VudF87CisgIEduc3NMb2NhdGlvbiBsYXN0X2xvY2F0aW9uXzsKKworICBpbnQgaW5mb19jYWxsZWRfY291bnRfOworICBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyBsYXN0X2luZm9fOworCisgcHJpdmF0ZToKKyAgc3RkOjptdXRleCBtdHhfOworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBjdl87CisgIGludCBjb3VudDsKK307CisKKy8qCisgKiBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXA6CisgKiBTZXRzIHVwIHRoZSBjYWxsYmFjaywgYXdhaXRzIHRoZSBjYXBhYmlsaXRpZXMsIGFuZCBjYWxscyBjbGVhbnVwCisgKgorICogU2luY2UgdGhpcyBpcyBqdXN0IHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgU2V0VXAoKSBhbmQgVGVhckRvd24oKSwKKyAqIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGludGVudGlvbmFsbHkgZW1wdHkKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXApIHt9CisKKy8qCisgKiBDaGVja0xvY2F0aW9uOgorICogSGVscGVyIGZ1bmN0aW9uIHRvIHZldCBMb2NhdGlvbiBmaWVsZHMKKyAqLwordm9pZCBDaGVja0xvY2F0aW9uKEduc3NMb2NhdGlvbiYgbG9jYXRpb24sIGJvb2wgY2hlY2tBY2N1cmFjaWVzKSB7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19MQVRfTE9ORyk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19BTFRJVFVERSk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRCk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19IT1JJWk9OVEFMX0FDQ1VSQUNZKTsKKyAgLy8gTmV3IHVuY2VydGFpbnRpZXMgYXZhaWxhYmxlIGluIE8gbXVzdCBiZSBwcm92aWRlZCwKKyAgLy8gYXQgbGVhc3Qgd2hlbiBwYWlyZWQgd2l0aCBtb2Rlcm4gaGFyZHdhcmUgKDIwMTcrKQorICBpZiAoY2hlY2tBY2N1cmFjaWVzKSB7CisgICAgRVhQRUNUX1RSVUUobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJgorICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfVkVSVElDQUxfQUNDVVJBQ1kpOworICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICBHbnNzTG9jYXRpb25GbGFnczo6SEFTX1NQRUVEX0FDQ1VSQUNZKTsKKyAgICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklOR19BQ0NVUkFDWSk7CisgICAgfQorICB9CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sYXRpdHVkZURlZ3JlZXMsIC05MC4wKTsKKyAgRVhQRUNUX0xFKGxvY2F0aW9uLmxhdGl0dWRlRGVncmVlcywgOTAuMCk7CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sb25naXR1ZGVEZWdyZWVzLCAtMTgwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24ubG9uZ2l0dWRlRGVncmVlcywgMTgwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIC0xMDAwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIDMwMDAwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZE1ldGVyc1BlclNlYywgNS4wKTsgIC8vIFZUUyB0ZXN0cyBhcmUgc3RhdGlvbmFyeS4KKworICAvLyBOb24temVybyBzcGVlZHMgbXVzdCBiZSByZXBvcnRlZCB3aXRoIGFuIGFzc29jaWF0ZWQgYmVhcmluZworICBpZiAobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMgPiAwLjApIHsKKyAgICBFWFBFQ1RfVFJVRShsb2NhdGlvbi5nbnNzTG9jYXRpb25GbGFncyAmIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklORyk7CisgIH0KKworICAvKgorICAgKiBUb2xlcmF0aW5nIHNvbWUgZXNwZWNpYWxseSBoaWdoIHZhbHVlcyBmb3IgYWNjdXJhY3kgZXN0aW1hdGUsIGluIGNhc2Ugb2YKKyAgICogZmlyc3QgZml4IHdpdGggZXNwZWNpYWxseSBwb29yIGdlb21ldHJ5IChoYXBwZW5zIG9jY2FzaW9uYWxseSkKKyAgICovCisgIEVYUEVDVF9HVChsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDI1MC4wKTsKKworICAvKgorICAgKiBTb21lIGRldmljZXMgbWF5IGRlZmluZSBiZWFyaW5nIGFzIC0xODAgdG8gKzE4MCwgb3RoZXJzIGFzIDAgdG8gMzYwLgorICAgKiBCb3RoIGFyZSBva2F5ICYgdW5kZXJzdGFuZGFibGUuCisgICAqLworICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICBFWFBFQ1RfR0UobG9jYXRpb24uYmVhcmluZ0RlZ3JlZXMsIC0xODAuMCk7CisgICAgRVhQRUNUX0xFKGxvY2F0aW9uLmJlYXJpbmdEZWdyZWVzLCAzNjAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19WRVJUSUNBTF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCA1MDAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCA1MC4wKTsKKyAgfQorICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkdfQUNDVVJBQ1kpIHsKKyAgICBFWFBFQ1RfR1QobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMC4wKTsKKyAgICBFWFBFQ1RfTEUobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMzYwLjApOworICB9CisKKyAgLy8gQ2hlY2sgdGltZXN0YW1wID4gMS40OGUxMiAoNDcgeWVhcnMgaW4gbXNlYyAtIDE5NzAtPjIwMTcrKQorICBFWFBFQ1RfR1QobG9jYXRpb24udGltZXN0YW1wLCAxLjQ4ZTEyKTsKK30KKworLyoKKyAqIFN0YXJ0QW5kR2V0U2luZ2xlTG9jYXRpb246CisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IG9uZSBMb2NhdGlvbiBhbmQgY2hlY2sgZmllbGRzCisgKgorICogcmV0dXJucyAgdHJ1ZSBpZiBhIGxvY2F0aW9uIHdhcyBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkCisgKi8KK2Jvb2wgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbihHbnNzSGFsVGVzdCogdGVzdCwgYm9vbCBjaGVja0FjY3VyYWNpZXMpIHsKKyAgYXV0byByZXN1bHQgPSB0ZXN0LT5nbnNzX2hhbF8tPnN0YXJ0KCk7CisKKyAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLyoKKyAgICogR1BTIHNpZ25hbHMgaW5pdGlhbGx5IG9wdGlvbmFsIGZvciB0aGlzIHRlc3QsIHNvIGRvbid0IGV4cGVjdCBmYXN0IGZpeCwKKyAgICogb3Igbm8gdGltZW91dCwgdW5sZXNzIHNpZ25hbCBpcyBwcmVzZW50CisgICAqLworICBpbnQgZmlyc3RHbnNzTG9jYXRpb25UaW1lb3V0U2Vjb25kcyA9IHNBZ3BzSXNQcmVzZW50ID8gMTUgOiA0NTsKKyAgaWYgKHNTaWduYWxJc1dlYWspIHsKKyAgICAvLyBhbGxvdyBtb3JlIHRpbWUgZm9yIHdlYWsgc2lnbmFscworICAgIGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMgKz0gMzA7CisgIH0KKworICB0ZXN0LT53YWl0KGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMpOworICBpZiAoc0FncHNJc1ByZXNlbnQpIHsKKyAgICBFWFBFQ1RfRVEodGVzdC0+bG9jYXRpb25fY2FsbGVkX2NvdW50XywgMSk7CisgIH0KKyAgaWYgKHRlc3QtPmxvY2F0aW9uX2NhbGxlZF9jb3VudF8gPiAwKSB7CisgICAgQ2hlY2tMb2NhdGlvbih0ZXN0LT5sYXN0X2xvY2F0aW9uXywgY2hlY2tBY2N1cmFjaWVzKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBHZXRMb2NhdGlvbjoKKyAqIFR1cm5zIG9uIGxvY2F0aW9uLCB3YWl0cyA0NSBzZWNvbmQgZm9yIGF0IGxlYXN0IDUgbG9jYXRpb25zLAorICogYW5kIGNoZWNrcyB0aGVtIGZvciByZWFzb25hYmxlIHZhbGlkaXR5LgorICovCitURVNUX0YoR25zc0hhbFRlc3QsIEdldExvY2F0aW9uKSB7CisjZGVmaW5lIE1JTl9JTlRFUlZBTF9NU0VDIDUwMAorI2RlZmluZSBQUkVGRVJSRURfQUNDVVJBQ1kgMCAgIC8vIElkZWFsbHkgcGVyZmVjdCAobWF0Y2hlcyBHbnNzTG9jYXRpb25Qcm92aWRlcikKKyNkZWZpbmUgUFJFRkVSUkVEX1RJTUVfTVNFQyAwICAvLyBJZGVhbGx5IGltbWVkaWF0ZQorCisjZGVmaW5lIExPQ0FUSU9OX1RJTUVPVVRfU1VCU0VRVUVOVF9TRUMgMworI2RlZmluZSBMT0NBVElPTlNfVE9fQ0hFQ0sgNQorCisgIGJvb2wgY2hlY2tNb3JlQWNjdXJhY2llcyA9CisgICAgICAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTcpOworCisgIGF1dG8gcmVzdWx0ID0gZ25zc19oYWxfLT5zZXRQb3NpdGlvbk1vZGUoCisgICAgICBJR25zczo6R25zc1Bvc2l0aW9uTW9kZTo6TVNfQkFTRUQsCisgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZTo6UkVDVVJSRU5DRV9QRVJJT0RJQywgTUlOX0lOVEVSVkFMX01TRUMsCisgICAgICBQUkVGRVJSRURfQUNDVVJBQ1ksIFBSRUZFUlJFRF9USU1FX01TRUMpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBFWFBFQ1RfVFJVRShyZXN1bHQpOworCisgIC8qCisgICAqIEdQUyBzaWduYWxzIGluaXRpYWxseSBvcHRpb25hbCBmb3IgdGhpcyB0ZXN0LCBzbyBkb24ndCBleHBlY3Qgbm8gdGltZW91dAorICAgKiB5ZXQKKyAgICovCisgIGJvb2wgZ290TG9jYXRpb24gPSBTdGFydEFuZEdldFNpbmdsZUxvY2F0aW9uKHRoaXMsIGNoZWNrTW9yZUFjY3VyYWNpZXMpOworCisgIGlmIChnb3RMb2NhdGlvbikgeworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgTE9DQVRJT05TX1RPX0NIRUNLOyBpKyspIHsKKyAgICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwKKyAgICAgICAgICB3YWl0KExPQ0FUSU9OX1RJTUVPVVRfU1VCU0VRVUVOVF9TRUMpKTsKKyAgICAgIEVYUEVDVF9FUShsb2NhdGlvbl9jYWxsZWRfY291bnRfLCBpICsgMSk7CisgICAgICBDaGVja0xvY2F0aW9uKGxhc3RfbG9jYXRpb25fLCBjaGVja01vcmVBY2N1cmFjaWVzKTsKKyAgICB9CisgIH0KKworICByZXN1bHQgPSBnbnNzX2hhbF8tPnN0b3AoKTsKKworICBBU1NFUlRfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUocmVzdWx0KTsKK30KKworLyoKKyAqIEluamVjdERlbGV0ZToKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBpbmplY3QgYW5kL29yIGRlbGV0ZSBpbmZvcm1hdGlvbiBzdGF0ZSBhcmUgaGFuZGxlZC4KKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBJbmplY3REZWxldGUpIHsKKyAgLy8gY29uZmlkZW50bHksIHdlbGwgbm9ydGggb2YgQWxhc2thCisgIGF1dG8gcmVzdWx0ID0gZ25zc19oYWxfLT5pbmplY3RMb2NhdGlvbig4MC4wLCAtMTcwLjAsIDEwMDAuMCk7CisKKyAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLy8gZmFrZSB0aW1lLCBidXQgZ2VuZXJhbGx5IHJlYXNvbmFibGUgdmFsdWVzICh0aW1lIGluIEF1Zy4gMjAxOCkKKyAgcmVzdWx0ID0gZ25zc19oYWxfLT5pbmplY3RUaW1lKDE1MzQ1Njc4OTAxMjNMLCAxMjM0NTZMLCAxMDAwMEwpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBFWFBFQ1RfVFJVRShyZXN1bHQpOworCisgIGF1dG8gcmVzdWx0Vm9pZCA9IGduc3NfaGFsXy0+ZGVsZXRlQWlkaW5nRGF0YShJR25zczo6R25zc0FpZGluZ0RhdGE6OkRFTEVURV9BTEwpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdFZvaWQuaXNPaygpKTsKKworICAvLyBFbnN1cmUgd2UgY2FuIGdldCBhIGdvb2QgbG9jYXRpb24gYWZ0ZXIgYSBiYWQgaW5qZWN0aW9uIGhhcyBiZWVuIGRlbGV0ZWQKKyAgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbih0aGlzLCBmYWxzZSk7Cit9CisKKy8qCisgKiBHZXRBbGxFeHRlbnRpb25zOgorICogVHJpZXMgZ2V0dGluZyBhbGwgb3B0aW9uYWwgZXh0ZW5zaW9ucywgYW5kIGVuc3VyZXMgYSB2YWxpZCByZXR1cm4KKyAqICAgbnVsbCBvciBhY3R1YWwgZXh0ZW5zaW9uLCBubyBjcmFzaC4KKyAqIENvbmZpcm1zIHllYXItYmFzZWQgcmVxdWlyZWQgZXh0ZW5zaW9ucyAoTWVhc3VyZW1lbnQgJiBEZWJ1ZykgYXJlIHByZXNlbnQKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBHZXRBbGxFeHRlbnNpb25zKSB7CisgIC8vIEJhc2ljIGNhbGwtaXMtaGFuZGxlZCBjaGVja3MKKyAgYXV0byBnbnNzWHRyYSA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uWHRyYSgpOworICBBU1NFUlRfVFJVRShnbnNzWHRyYS5pc09rKCkpOworCisgIGF1dG8gZ25zc1JpbCA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uQUduc3NSaWwoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc1JpbC5pc09rKCkpOworCisgIGF1dG8gZ25zc0FnbnNzID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25BR25zcygpOworICBBU1NFUlRfVFJVRShnbnNzQWduc3MuaXNPaygpKTsKKworICBhdXRvIGduc3NOaSA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc05pKCk7CisgIEFTU0VSVF9UUlVFKGduc3NOaS5pc09rKCkpOworCisgIGF1dG8gZ25zc05hdmlnYXRpb25NZXNzYWdlID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc05hdmlnYXRpb25NZXNzYWdlLmlzT2soKSk7CisKKyAgYXV0byBnbnNzQ29uZmlndXJhdGlvbiA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKTsKKyAgQVNTRVJUX1RSVUUoZ25zc0NvbmZpZ3VyYXRpb24uaXNPaygpKTsKKworICBhdXRvIGduc3NHZW9mZW5jaW5nID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzR2VvZmVuY2luZygpOworICBBU1NFUlRfVFJVRShnbnNzR2VvZmVuY2luZy5pc09rKCkpOworCisgIGF1dG8gZ25zc0JhdGNoaW5nID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc0JhdGNoaW5nLmlzT2soKSk7CisKKyAgLy8gVmVyaWZ5aW5nLCBpbiBzb21lIGNhc2VzLCB0aGF0IHRoZXNlIHJldHVybiBhY3R1YWwgZXh0ZW5zaW9ucworICBhdXRvIGduc3NNZWFzdXJlbWVudCA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCk7CisgIEFTU0VSVF9UUlVFKGduc3NNZWFzdXJlbWVudC5pc09rKCkpOworICBpZiAobGFzdF9jYXBhYmlsaXRpZXNfICYgSUduc3NDYWxsYmFjazo6Q2FwYWJpbGl0aWVzOjpNRUFTVVJFTUVOVFMpIHsKKyAgICBzcDxJR25zc01lYXN1cmVtZW50PiBpR25zc01lYXMgPSBnbnNzTWVhc3VyZW1lbnQ7CisgICAgRVhQRUNUX05FKGlHbnNzTWVhcywgbnVsbHB0cik7CisgIH0KKworICBhdXRvIGduc3NEZWJ1ZyA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc0RlYnVnKCk7CisgIEFTU0VSVF9UUlVFKGduc3NEZWJ1Zy5pc09rKCkpOworICBpZiAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTcpIHsKKyAgICBzcDxJR25zc0RlYnVnPiBpR25zc0RlYnVnID0gZ25zc0RlYnVnOworICAgIEVYUEVDVF9ORShpR25zc0RlYnVnLCBudWxscHRyKTsKKyAgfQorfQorCisvKgorICogTWVhc3VyZW1lbnRDYXBhYmlsaXRpZXM6CisgKiBWZXJpZmllcyB0aGF0IG1vZGVybiBoYXJkd2FyZSBzdXBwb3J0cyBtZWFzdXJlbWVudCBjYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihHbnNzSGFsVGVzdCwgTWVhc3VyZW1lbnRDYXBhYmlsaXRlcykgeworICBpZiAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTYpIHsKKyAgICBFWFBFQ1RfVFJVRShsYXN0X2NhcGFiaWxpdGllc18gJiBJR25zc0NhbGxiYWNrOjpDYXBhYmlsaXRpZXM6Ok1FQVNVUkVNRU5UUyk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAvKgorICAgKiBUaGVzZSBhcmd1bWVudHMgbm90IHVzZWQgYnkgYXV0b21hdGVkIFZUUyB0ZXN0aW5nLgorICAgKiBPbmx5IGZvciB1c2UgaW4gbWFudWFsIHRlc3RpbmcsIHdoZW4gd2FudGluZyB0byBydW4KKyAgICogc3Ryb25nZXIgdGVzdHMgdGhhdCByZXF1aXJlIHRoZSBwcmVzZW5jZSBvZiBHUFMgc2lnbmFsLgorICAgKi8KKyAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKKyAgICBpZiAoc3RyY21wKGFyZ3ZbaV0sIi1hZ3BzIikgPT0gMCkgeworICAgICAgc0FncHNJc1ByZXNlbnQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sIi13ZWFrIikgPT0gMCkgeworICAgICAgc1NpZ25hbElzV2VhayA9IHRydWU7CisgICAgfQorICB9CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9nbnNzL0FuZHJvaWQuYnAgYi9nbnNzL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9ncmFwaGljcy9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWVhODVmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDEzIEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJhbGxvY2F0b3IvMi4wIiwKKyAgICAiYWxsb2NhdG9yLzIuMC9kZWZhdWx0IiwKKyAgICAiYnVmZmVycXVldWUvMS4wIiwKKyAgICAiY29tbW9uLzEuMCIsCisgICAgImNvbXBvc2VyLzIuMSIsCisgICAgImNvbXBvc2VyLzIuMS9kZWZhdWx0IiwKKyAgICAiY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsIiwKKyAgICAibWFwcGVyLzIuMCIsCisgICAgIm1hcHBlci8yLjAvZGVmYXVsdCIsCisgICAgIm1hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMmEzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJQWxsb2NhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQWxsb2NhdG9yQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0lId0FsbG9jYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9Cbkh3QWxsb2NhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0JwSHdBbGxvY2F0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQnNBbGxvY2F0b3IuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQubWsgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmhhbCBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNhMzkxNgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oYWwKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOworCitpbnRlcmZhY2UgSUFsbG9jYXRvciB7CisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZXMgYnVmZmVycyB3aXRoIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBieSB0aGUgZGVzY3JpcHRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXNjcmlwdG9yIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBvZiB0aGUgYnVmZmVycyB0byBhbGxvY2F0ZS4KKyAgICAgKiBAcGFyYW0gY291bnQgaXMgdGhlIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ERVNDUklQVE9SIHdoZW4gdGhlIGRlc2NyaXB0b3IgaXMgaW52YWxpZC4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBhbGxvY2F0aW9uIGNhbm5vdCBiZSBmdWxmaWxsZWQgYXQgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRpbWUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIGFueSBvZiB0aGUgcHJvcGVydHkgZW5jb2RlZCBpbiB0aGUgZGVzY3JpcHRvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKiBAcmV0dXJuIHN0cmlkZSBpcyB0aGUgbnVtYmVyIG9mIHBpeGVscyBiZXR3ZWVuIHR3byBjb25zZWN1dGl2ZSByb3dzIG9mCisgICAgICogICAgICAgICB0aGUgYnVmZmVycywgd2hlbiB0aGUgY29uY2VwdCBvZiBjb25zZWN1dGl2ZSByb3dzIGlzIGRlZmluZWQuCisgICAgICogICAgICAgICBPdGhlcndpc2UsIGl0IGhhcyBubyBtZWFuaW5nLgorICAgICAqIEByZXR1cm4gYnVmZmVycyBpcyBhbiBhcnJheSBvZiByYXcgaGFuZGxlcyB0byB0aGUgbmV3bHkgYWxsb2NhdGVkCisgICAgICogICAgICAgICBidWZmZXJzLgorICAgICAqLworICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGFsbG9jYXRlKEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3RyaWRlLAorICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGJ1ZmZlcnMpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk2OGY0MQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDggQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJHcmFsbG9jLmNwcCIsICJHcmFsbG9jMEFsbG9jYXRvci5jcHAiLCAiR3JhbGxvYzFBbGxvY2F0b3IuY3BwIl0sCisgICAgY3BwZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgaGVhZGVyX2xpYnM6IFsKKyAgICAgICAgImxpYmdyYWxsb2NtYXBwZXJpbmNsdWRlcyIsCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLXNlcnZpY2UucmMiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc3RhdGljIHsKKyAgICBuYW1lOiAibGliZ3JhbGxvYzEtYWRhcHRlciIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiZ3JhbGxvYzEtYWRhcHRlci5jcHAiLCAiR3JhbGxvYzFPbjBBZGFwdGVyLmNwcCJdLAorICAgIGluY2x1ZGVfZGlyczogWyJzeXN0ZW0vY29yZS9saWJzeW5jL2luY2x1ZGUiXSwKKyAgICBjZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorICAgIHdob2xlX3N0YXRpY19saWJzOiBbImxpYmdyYWxsb2N1c2FnZSJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3M2QzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYy5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlICJHcmFsbG9jLmgiCisjaW5jbHVkZSAiR3JhbGxvYzBBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJHcmFsbG9jMUFsbG9jYXRvci5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworSUFsbG9jYXRvciogSElETF9GRVRDSF9JQWxsb2NhdG9yKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kdWxlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCwgJm1vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGdldCBncmFsbG9jIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICB1aW50OF90IG1ham9yID0gKG1vZHVsZS0+bW9kdWxlX2FwaV92ZXJzaW9uID4+IDgpICYgMHhmZjsKKyAgICBzd2l0Y2ggKG1ham9yKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBuZXcgR3JhbGxvYzFBbGxvY2F0b3IobW9kdWxlKTsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBHcmFsbG9jMEFsbG9jYXRvcihtb2R1bGUpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoInVua25vd24gZ3JhbGxvYyBtb2R1bGUgbWFqb3IgdmVyc2lvbiAlZCIsIG1ham9yKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIGFsbG9jYXRvcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYy5oIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzllZWFhCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQ19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQ19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworZXh0ZXJuICJDIiBJQWxsb2NhdG9yKiBISURMX0ZFVENIX0lBbGxvY2F0b3IoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9HcmFsbG9jMEFsbG9jYXRvci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNjJiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MwQWxsb2NhdG9yIgorCisjaW5jbHVkZSAiR3JhbGxvYzBBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJHcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGFsbG9jYXRvciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6aW1wbGVtZW50YXRpb246OgorICAgIGdyYWxsb2NEZWNvZGVCdWZmZXJEZXNjcmlwdG9yOworCitHcmFsbG9jMEFsbG9jYXRvcjo6R3JhbGxvYzBBbGxvY2F0b3IoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSkgeworICAgIGludCByZXN1bHQgPSBncmFsbG9jX29wZW4obW9kdWxlLCAmbURldmljZSk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gb3BlbiBncmFsbG9jMCBkZXZpY2U6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcigtcmVzdWx0KSk7CisgICAgfQorfQorCitHcmFsbG9jMEFsbG9jYXRvcjo6fkdyYWxsb2MwQWxsb2NhdG9yKCkgeworICAgIGdyYWxsb2NfY2xvc2UobURldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jMEFsbG9jYXRvcjo6ZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpIHsKKyAgICBjaGFyIGJ1Zls0MDk2XSA9IHt9OworICAgIGlmIChtRGV2aWNlLT5kdW1wKSB7CisgICAgICAgIG1EZXZpY2UtPmR1bXAobURldmljZSwgYnVmLCBzaXplb2YoYnVmKSk7CisgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gJ1wwJzsKKyAgICB9CisKKyAgICBoaWRsX2NiKGhpZGxfc3RyaW5nKGJ1ZikpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2MwQWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudCwgYWxsb2NhdGVfY2IgaGlkbF9jYikgeworICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvIGRlc2NyaXB0b3JJbmZvOworICAgIGlmICghZ3JhbGxvY0RlY29kZUJ1ZmZlckRlc2NyaXB0b3IoZGVzY3JpcHRvciwgJmRlc2NyaXB0b3JJbmZvKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfREVTQ1JJUFRPUiwgMCwgaGlkbF92ZWM8aGlkbF9oYW5kbGU+KCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0gRXJyb3I6Ok5PTkU7CisgICAgdWludDMyX3Qgc3RyaWRlID0gMDsKKyAgICBzdGQ6OnZlY3RvcjxoaWRsX2hhbmRsZT4gYnVmZmVyczsKKyAgICBidWZmZXJzLnJlc2VydmUoY291bnQpOworCisgICAgLy8gYWxsb2NhdGUgdGhlIGJ1ZmZlcnMKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICBidWZmZXJfaGFuZGxlX3QgdG1wQnVmZmVyOworICAgICAgICB1aW50MzJfdCB0bXBTdHJpZGU7CisgICAgICAgIGVycm9yID0gYWxsb2NhdGVPbmUoZGVzY3JpcHRvckluZm8sICZ0bXBCdWZmZXIsICZ0bXBTdHJpZGUpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0cmlkZSA9PSAwKSB7CisgICAgICAgICAgICBzdHJpZGUgPSB0bXBTdHJpZGU7CisgICAgICAgIH0gZWxzZSBpZiAoc3RyaWRlICE9IHRtcFN0cmlkZSkgeworICAgICAgICAgICAgLy8gbm9uLXVuaWZvcm0gc3RyaWRlcworICAgICAgICAgICAgbURldmljZS0+ZnJlZShtRGV2aWNlLCB0bXBCdWZmZXIpOworICAgICAgICAgICAgc3RyaWRlID0gMDsKKyAgICAgICAgICAgIGVycm9yID0gRXJyb3I6OlVOU1VQUE9SVEVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXJzLmVtcGxhY2VfYmFjayhoaWRsX2hhbmRsZSh0bXBCdWZmZXIpKTsKKyAgICB9CisKKyAgICAvLyByZXR1cm4gdGhlIGJ1ZmZlcnMKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gaGlkbF9idWZmZXJzOworICAgIGlmIChlcnJvciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBoaWRsX2J1ZmZlcnMuc2V0VG9FeHRlcm5hbChidWZmZXJzLmRhdGEoKSwgYnVmZmVycy5zaXplKCkpOworICAgIH0KKyAgICBoaWRsX2NiKGVycm9yLCBzdHJpZGUsIGhpZGxfYnVmZmVycyk7CisKKyAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgZm9yIChjb25zdCBhdXRvJiBidWZmZXIgOiBidWZmZXJzKSB7CisgICAgICAgIG1EZXZpY2UtPmZyZWUobURldmljZSwgYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitFcnJvciBHcmFsbG9jMEFsbG9jYXRvcjo6YWxsb2NhdGVPbmUoY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIGlmIChpbmZvLmxheWVyQ291bnQgPiAxIHx8IChpbmZvLnVzYWdlID4+IDMyKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX1ZBTFVFOworICAgIH0KKworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIgPSBudWxscHRyOworICAgIGludCBzdHJpZGUgPSAwOworICAgIGludCByZXN1bHQgPSBtRGV2aWNlLT5hbGxvYyhtRGV2aWNlLCBpbmZvLndpZHRoLCBpbmZvLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihpbmZvLmZvcm1hdCksIGluZm8udXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZmZXIsICZzdHJpZGUpOworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqb3V0QnVmZmVyID0gYnVmZmVyOworICAgICpvdXRTdHJpZGUgPSBzdHJpZGU7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MwQWxsb2NhdG9yLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTkwNTI3Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MwQWxsb2NhdG9yLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0FMTE9DQVRPUl9WMl8wX0dSQUxMT0MwQUxMT0NBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMEFMTE9DQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6QnVmZmVyRGVzY3JpcHRvcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjsKKworY2xhc3MgR3JhbGxvYzBBbGxvY2F0b3IgOiBwdWJsaWMgSUFsbG9jYXRvciB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYzBBbGxvY2F0b3IoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgdmlydHVhbCB+R3JhbGxvYzBBbGxvY2F0b3IoKTsKKworICAgIC8vIElBbGxvY2F0b3IgaW50ZXJmYWNlCisgICAgUmV0dXJuPHZvaWQ+IGR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gYWxsb2NhdGUoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIEVycm9yIGFsbG9jYXRlT25lKGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0QnVmZmVyLCB1aW50MzJfdCogb3V0U3RyaWRlKTsKKworICAgIGFsbG9jX2RldmljZV90KiBtRGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGFsbG9jYXRvcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMEFMTE9DQVRPUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFBbGxvY2F0b3IuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGE1ZTFlCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jMUFsbG9jYXRvciIKKworI2luY2x1ZGUgIkdyYWxsb2MxQWxsb2NhdG9yLmgiCisjaW5jbHVkZSAiR3JhbGxvY0J1ZmZlckRlc2NyaXB0b3IuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICBncmFsbG9jRGVjb2RlQnVmZmVyRGVzY3JpcHRvcjsKKworR3JhbGxvYzFBbGxvY2F0b3I6OkdyYWxsb2MxQWxsb2NhdG9yKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtRGV2aWNlKG51bGxwdHIpLCBtQ2FwYWJpbGl0aWVzKCksIG1EaXNwYXRjaCgpIHsKKyAgICBpbnQgcmVzdWx0ID0gZ3JhbGxvYzFfb3Blbihtb2R1bGUsICZtRGV2aWNlKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBvcGVuIGdyYWxsb2MxIGRldmljZTogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKC1yZXN1bHQpKTsKKyAgICB9CisKKyAgICBpbml0Q2FwYWJpbGl0aWVzKCk7CisgICAgaW5pdERpc3BhdGNoKCk7Cit9CisKK0dyYWxsb2MxQWxsb2NhdG9yOjp+R3JhbGxvYzFBbGxvY2F0b3IoKSB7CisgICAgZ3JhbGxvYzFfY2xvc2UobURldmljZSk7Cit9CisKK3ZvaWQgR3JhbGxvYzFBbGxvY2F0b3I6OmluaXRDYXBhYmlsaXRpZXMoKSB7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gY2FwYWJpbGl0aWVzKGNvdW50KTsKKyAgICBtRGV2aWNlLT5nZXRDYXBhYmlsaXRpZXMobURldmljZSwgJmNvdW50LCBjYXBhYmlsaXRpZXMuZGF0YSgpKTsKKyAgICBjYXBhYmlsaXRpZXMucmVzaXplKGNvdW50KTsKKworICAgIGZvciAoYXV0byBjYXBhYmlsaXR5IDogY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGlmIChjYXBhYmlsaXR5ID09IEdSQUxMT0MxX0NBUEFCSUxJVFlfTEFZRVJFRF9CVUZGRVJTKSB7CisgICAgICAgICAgICBtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgR3JhbGxvYzFBbGxvY2F0b3I6OmluaXREaXNwYXRjaChncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUKiBvdXRQZm4pIHsKKyAgICBhdXRvIHBmbiA9IG1EZXZpY2UtPmdldEZ1bmN0aW9uKG1EZXZpY2UsIGRlc2MpOworICAgIGlmICghcGZuKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBnZXQgZ3JhbGxvYzEgZnVuY3Rpb24gJWQiLCBkZXNjKTsKKyAgICB9CisKKyAgICAqb3V0UGZuID0gcmVpbnRlcnByZXRfY2FzdDxUPihwZm4pOworfQorCit2b2lkIEdyYWxsb2MxQWxsb2NhdG9yOjppbml0RGlzcGF0Y2goKSB7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0RVTVAsICZtRGlzcGF0Y2guZHVtcCk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0NSRUFURV9ERVNDUklQVE9SLAorICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLmNyZWF0ZURlc2NyaXB0b3IpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9ERVNUUk9ZX0RFU0NSSVBUT1IsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guZGVzdHJveURlc2NyaXB0b3IpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfRElNRU5TSU9OUywgJm1EaXNwYXRjaC5zZXREaW1lbnNpb25zKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fU0VUX0ZPUk1BVCwgJm1EaXNwYXRjaC5zZXRGb3JtYXQpOworICAgIGlmIChtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzKSB7CisgICAgICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfTEFZRVJfQ09VTlQsCisgICAgICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQ291bnQpOworICAgIH0KKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fU0VUX0NPTlNVTUVSX1VTQUdFLAorICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldENvbnN1bWVyVXNhZ2UpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfUFJPRFVDRVJfVVNBR0UsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0UHJvZHVjZXJVc2FnZSk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9TVFJJREUsICZtRGlzcGF0Y2guZ2V0U3RyaWRlKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fQUxMT0NBVEUsICZtRGlzcGF0Y2guYWxsb2NhdGUpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9SRUxFQVNFLCAmbURpc3BhdGNoLnJlbGVhc2UpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvYzFBbGxvY2F0b3I6OmR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKSB7CisgICAgdWludDMyX3QgbGVuID0gMDsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBudWxscHRyKTsKKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1ZihsZW4gKyAxKTsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBidWYuZGF0YSgpKTsKKyAgICBidWYucmVzaXplKGxlbiArIDEpOworICAgIGJ1ZltsZW5dID0gJ1wwJzsKKworICAgIGhpZGxfc3RyaW5nIHJlcGx5OworICAgIHJlcGx5LnNldFRvRXh0ZXJuYWwoYnVmLmRhdGEoKSwgbGVuKTsKKyAgICBoaWRsX2NiKHJlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jMUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsIGFsbG9jYXRlX2NiIGhpZGxfY2IpIHsKKyAgICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBkZXNjcmlwdG9ySW5mbzsKKyAgICBpZiAoIWdyYWxsb2NEZWNvZGVCdWZmZXJEZXNjcmlwdG9yKGRlc2NyaXB0b3IsICZkZXNjcmlwdG9ySW5mbykpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0RFU0NSSVBUT1IsIDAsIGhpZGxfdmVjPGhpZGxfaGFuZGxlPigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2M7CisgICAgRXJyb3IgZXJyb3IgPSBjcmVhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3JJbmZvLCAmZGVzYyk7CisgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIGhpZGxfY2IoZXJyb3IsIDAsIGhpZGxfdmVjPGhpZGxfaGFuZGxlPigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzdHJpZGUgPSAwOworICAgIHN0ZDo6dmVjdG9yPGhpZGxfaGFuZGxlPiBidWZmZXJzOworICAgIGJ1ZmZlcnMucmVzZXJ2ZShjb3VudCk7CisKKyAgICAvLyBhbGxvY2F0ZSB0aGUgYnVmZmVycworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCB0bXBCdWZmZXI7CisgICAgICAgIHVpbnQzMl90IHRtcFN0cmlkZTsKKyAgICAgICAgZXJyb3IgPSBhbGxvY2F0ZU9uZShkZXNjLCAmdG1wQnVmZmVyLCAmdG1wU3RyaWRlKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdHJpZGUgPT0gMCkgeworICAgICAgICAgICAgc3RyaWRlID0gdG1wU3RyaWRlOworICAgICAgICB9IGVsc2UgaWYgKHN0cmlkZSAhPSB0bXBTdHJpZGUpIHsKKyAgICAgICAgICAgIC8vIG5vbi11bmlmb3JtIHN0cmlkZXMKKyAgICAgICAgICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIHRtcEJ1ZmZlcik7CisgICAgICAgICAgICBzdHJpZGUgPSAwOworICAgICAgICAgICAgZXJyb3IgPSBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGJ1ZmZlcnMuZW1wbGFjZV9iYWNrKGhpZGxfaGFuZGxlKHRtcEJ1ZmZlcikpOworICAgIH0KKworICAgIG1EaXNwYXRjaC5kZXN0cm95RGVzY3JpcHRvcihtRGV2aWNlLCBkZXNjKTsKKworICAgIC8vIHJldHVybiB0aGUgYnVmZmVycworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBoaWRsX2J1ZmZlcnM7CisgICAgaWYgKGVycm9yID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGhpZGxfYnVmZmVycy5zZXRUb0V4dGVybmFsKGJ1ZmZlcnMuZGF0YSgpLCBidWZmZXJzLnNpemUoKSk7CisgICAgfQorICAgIGhpZGxfY2IoZXJyb3IsIHN0cmlkZSwgaGlkbF9idWZmZXJzKTsKKworICAgIC8vIGZyZWUgdGhlIGJ1ZmZlcnMKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ1ZmZlciA6IGJ1ZmZlcnMpIHsKKyAgICAgICAgbURpc3BhdGNoLnJlbGVhc2UobURldmljZSwgYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitFcnJvciBHcmFsbG9jMUFsbG9jYXRvcjo6dG9FcnJvcihpbnQzMl90IGVycm9yKSB7CisgICAgc3dpdGNoIChlcnJvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PTkU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9ERVNDUklQVE9SOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX0JBRF9IQU5ETEU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9CVUZGRVI7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9UX1NIQVJFRDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsgIC8vIHRoaXMgaXMgZmluZQorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PX1JFU09VUkNFUzoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOREVGSU5FRDoKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgfQorfQorCit1aW50NjRfdCBHcmFsbG9jMUFsbG9jYXRvcjo6dG9Qcm9kdWNlclVzYWdlKHVpbnQ2NF90IHVzYWdlKSB7CisgICAgLy8gdGhpcyBpcyBwb3RlbnRpYWxseSBicm9rZW4gYXMgd2UgaGF2ZSBubyBpZGVhIHdoaWNoIHByaXZhdGUgZmxhZ3MKKyAgICAvLyBzaG91bGQgYmUgZmlsdGVyZWQgb3V0CisgICAgdWludDY0X3QgcHJvZHVjZXJVc2FnZSA9CisgICAgICAgIHVzYWdlICYKKyAgICAgICAgfnN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfTUFTSyB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9NQVNLKTsKKworICAgIHN3aXRjaCAodXNhZ2UgJiBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spIHsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9SQVJFTFkpOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfV1JJVEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9PRlRFTik6CisgICAgICAgICAgICBwcm9kdWNlclVzYWdlIHw9IEdSQUxMT0MxX1BST0RVQ0VSX1VTQUdFX0NQVV9XUklURV9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh1c2FnZSAmIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLKSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9SQVJFTFkpOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfUkVBRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfUkVBRF9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHByb2R1Y2VyVXNhZ2U7Cit9CisKK3VpbnQ2NF90IEdyYWxsb2MxQWxsb2NhdG9yOjp0b0NvbnN1bWVyVXNhZ2UodWludDY0X3QgdXNhZ2UpIHsKKyAgICAvLyB0aGlzIGlzIHBvdGVudGlhbGx5IGJyb2tlbiBhcyB3ZSBoYXZlIG5vIGlkZWEgd2hpY2ggcHJpdmF0ZSBmbGFncworICAgIC8vIHNob3VsZCBiZSBmaWx0ZXJlZCBvdXQKKyAgICB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgdXNhZ2UgJgorICAgICAgICB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spOworCisgICAgc3dpdGNoICh1c2FnZSAmIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLKSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9SQVJFTFkpOgorICAgICAgICAgICAgY29uc3VtZXJVc2FnZSB8PSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOgorICAgICAgICAgICAgY29uc3VtZXJVc2FnZSB8PSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRF9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnN1bWVyVXNhZ2U7Cit9CisKK0Vycm9yIEdyYWxsb2MxQWxsb2NhdG9yOjpjcmVhdGVEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBpbmZvLAorICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpIHsKKyAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3I7CisKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLmNyZWF0ZURlc2NyaXB0b3IobURldmljZSwgJmRlc2NyaXB0b3IpOworCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0RGltZW5zaW9ucyhtRGV2aWNlLCBkZXNjcmlwdG9yLCBpbmZvLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uaGVpZ2h0KTsKKyAgICB9CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0Rm9ybWF0KG1EZXZpY2UsIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLmZvcm1hdCkpOworICAgIH0KKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICBpZiAobUNhcGFiaWxpdGllcy5sYXllcmVkQnVmZmVycykgeworICAgICAgICAgICAgZXJyb3IgPQorICAgICAgICAgICAgICAgIG1EaXNwYXRjaC5zZXRMYXllckNvdW50KG1EZXZpY2UsIGRlc2NyaXB0b3IsIGluZm8ubGF5ZXJDb3VudCk7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5sYXllckNvdW50ID4gMSkgeworICAgICAgICAgICAgZXJyb3IgPSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICBlcnJvciA9IG1EaXNwYXRjaC5zZXRQcm9kdWNlclVzYWdlKG1EZXZpY2UsIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Qcm9kdWNlclVzYWdlKGluZm8udXNhZ2UpKTsKKyAgICB9CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0Q29uc3VtZXJVc2FnZShtRGV2aWNlLCBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvQ29uc3VtZXJVc2FnZShpbmZvLnVzYWdlKSk7CisgICAgfQorCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dERlc2NyaXB0b3IgPSBkZXNjcmlwdG9yOworICAgIH0gZWxzZSB7CisgICAgICAgIG1EaXNwYXRjaC5kZXN0cm95RGVzY3JpcHRvcihtRGV2aWNlLCBkZXNjcmlwdG9yKTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxQWxsb2NhdG9yOjphbGxvY2F0ZU9uZShncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIgPSBudWxscHRyOworICAgIGludDMyX3QgZXJyb3IgPSBtRGlzcGF0Y2guYWxsb2NhdGUobURldmljZSwgMSwgJmRlc2NyaXB0b3IsICZidWZmZXIpOworICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FICYmIGVycm9yICE9IEdSQUxMT0MxX0VSUk9SX05PVF9TSEFSRUQpIHsKKyAgICAgICAgcmV0dXJuIHRvRXJyb3IoZXJyb3IpOworICAgIH0KKworICAgIHVpbnQzMl90IHN0cmlkZSA9IDA7CisgICAgZXJyb3IgPSBtRGlzcGF0Y2guZ2V0U3RyaWRlKG1EZXZpY2UsIGJ1ZmZlciwgJnN0cmlkZSk7CisgICAgaWYgKGVycm9yICE9IEdSQUxMT0MxX0VSUk9SX05PTkUgJiYgZXJyb3IgIT0gR1JBTExPQzFfRVJST1JfVU5ERUZJTkVEKSB7CisgICAgICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIGJ1ZmZlcik7CisgICAgICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKKyAgICB9CisKKyAgICAqb3V0QnVmZmVyID0gYnVmZmVyOworICAgICpvdXRTdHJpZGUgPSBzdHJpZGU7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFBbGxvY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjVhOTY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0FMTE9DQVRPUl9WMl8wX0dSQUxMT0MxQUxMT0NBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMUFMTE9DQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgYWxsb2NhdG9yIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkJ1ZmZlckRlc2NyaXB0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKK2NsYXNzIEdyYWxsb2MxQWxsb2NhdG9yIDogcHVibGljIElBbGxvY2F0b3IgeworICAgcHVibGljOgorICAgIEdyYWxsb2MxQWxsb2NhdG9yKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworICAgIHZpcnR1YWwgfkdyYWxsb2MxQWxsb2NhdG9yKCk7CisKKyAgICAvLyBJQWxsb2NhdG9yIGludGVyZmFjZQorICAgIFJldHVybjx2b2lkPiBkdW1wRGVidWdJbmZvKGR1bXBEZWJ1Z0luZm9fY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGFsbG9jYXRlKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworICAgcHJpdmF0ZToKKyAgICB2b2lkIGluaXRDYXBhYmlsaXRpZXMoKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHZvaWQgaW5pdERpc3BhdGNoKGdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCBkZXNjLCBUKiBvdXRQZm4pOworICAgIHZvaWQgaW5pdERpc3BhdGNoKCk7CisKKyAgICBzdGF0aWMgRXJyb3IgdG9FcnJvcihpbnQzMl90IGVycm9yKTsKKyAgICBzdGF0aWMgdWludDY0X3QgdG9Qcm9kdWNlclVzYWdlKHVpbnQ2NF90IHVzYWdlKTsKKyAgICBzdGF0aWMgdWludDY0X3QgdG9Db25zdW1lclVzYWdlKHVpbnQ2NF90IHVzYWdlKTsKKworICAgIEVycm9yIGNyZWF0ZURlc2NyaXB0b3IoY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90KiBvdXREZXNjcmlwdG9yKTsKKyAgICBFcnJvciBhbGxvY2F0ZU9uZShncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsIHVpbnQzMl90KiBvdXRTdHJpZGUpOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29sIGxheWVyZWRCdWZmZXJzOworICAgIH0gbUNhcGFiaWxpdGllczsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEdSQUxMT0MxX1BGTl9EVU1QIGR1bXA7CisgICAgICAgIEdSQUxMT0MxX1BGTl9DUkVBVEVfREVTQ1JJUFRPUiBjcmVhdGVEZXNjcmlwdG9yOworICAgICAgICBHUkFMTE9DMV9QRk5fREVTVFJPWV9ERVNDUklQVE9SIGRlc3Ryb3lEZXNjcmlwdG9yOworICAgICAgICBHUkFMTE9DMV9QRk5fU0VUX0RJTUVOU0lPTlMgc2V0RGltZW5zaW9uczsKKyAgICAgICAgR1JBTExPQzFfUEZOX1NFVF9GT1JNQVQgc2V0Rm9ybWF0OworICAgICAgICBHUkFMTE9DMV9QRk5fU0VUX0xBWUVSX0NPVU5UIHNldExheWVyQ291bnQ7CisgICAgICAgIEdSQUxMT0MxX1BGTl9TRVRfQ09OU1VNRVJfVVNBR0Ugc2V0Q29uc3VtZXJVc2FnZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX1NFVF9QUk9EVUNFUl9VU0FHRSBzZXRQcm9kdWNlclVzYWdlOworICAgICAgICBHUkFMTE9DMV9QRk5fR0VUX1NUUklERSBnZXRTdHJpZGU7CisgICAgICAgIEdSQUxMT0MxX1BGTl9BTExPQ0FURSBhbGxvY2F0ZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFTEVBU0UgcmVsZWFzZTsKKyAgICB9IG1EaXNwYXRjaDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQzFBTExPQ0FUT1JfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxT24wQWRhcHRlci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDFjZTc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxT24wQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MxT24wQWRhcHRlciIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgIkdyYWxsb2MxT24wQWRhcHRlci5oIgorI2luY2x1ZGUgImdyYWxsb2MxLWFkYXB0ZXIuaCIKKworI2luY2x1ZGUgPGdyYWxsb2N1c2FnZS9HcmFsbG9jVXNhZ2VDb252ZXJzaW9uLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3luYy9zeW5jLmg+CisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUEZOLCB0eXBlbmFtZSBUPgorc3RhdGljIGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdCBhc0ZQKFQgZnVuY3Rpb24pCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8UEZOLCBUPjo6dmFsdWUsICJJbmNvbXBhdGlibGUgZnVuY3Rpb24gcG9pbnRlciIpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdD4oZnVuY3Rpb24pOworfQorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCitHcmFsbG9jMU9uMEFkYXB0ZXI6OkdyYWxsb2MxT24wQWRhcHRlcihjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKQorICA6IGdyYWxsb2MxX2RldmljZV90KCksCisgICAgbU1vZHVsZShyZWludGVycHJldF9jYXN0PGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QqPihtb2R1bGUpKSwKKyAgICBtRGV2aWNlKG51bGxwdHIpCit7CisgICAgQUxPR1YoIkNvbnN0cnVjdGluZyIpOworCisgICAgaW50IG1pbm9yID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsCisgICAgICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX1JFQUxfTU9EVUxFX0FQSV9WRVJTSU9OX01JTk9SLAorICAgICAgICAgICAgJm1pbm9yKTsKKyAgICBtTWlub3JWZXJzaW9uID0gbWlub3I7CisKKyAgICBjb21tb24udGFnID0gSEFSRFdBUkVfREVWSUNFX1RBRywKKyAgICBjb21tb24udmVyc2lvbiA9IEhBUkRXQVJFX0RFVklDRV9BUElfVkVSU0lPTigwLCAwKSwKKyAgICBjb21tb24ubW9kdWxlID0gY29uc3RfY2FzdDxzdHJ1Y3QgaHdfbW9kdWxlX3QqPihtb2R1bGUpLAorICAgIGNvbW1vbi5jbG9zZSA9IGNsb3NlSG9vaywKKworICAgIGdldENhcGFiaWxpdGllcyA9IGdldENhcGFiaWxpdGllc0hvb2s7CisgICAgZ2V0RnVuY3Rpb24gPSBnZXRGdW5jdGlvbkhvb2s7CisgICAgaW50IGVycm9yID0gOjpncmFsbG9jX29wZW4oJihtTW9kdWxlLT5jb21tb24pLCAmbURldmljZSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gb3BlbiBncmFsbG9jMCBtb2R1bGU6ICVkIiwgZXJyb3IpOworICAgIH0KKyAgICBBTE9HVigiT3BlbmVkIGdyYWxsb2MwIGRldmljZSAlcCIsIG1EZXZpY2UpOworfQorCitHcmFsbG9jMU9uMEFkYXB0ZXI6On5HcmFsbG9jMU9uMEFkYXB0ZXIoKQoreworICAgIEFMT0dWKCJEZXN0cnVjdGluZyIpOworICAgIGlmIChtRGV2aWNlKSB7CisgICAgICAgIEFMT0dWKCJDbG9zaW5nIGdyYWxsb2MwIGRldmljZSAlcCIsIG1EZXZpY2UpOworICAgICAgICA6OmdyYWxsb2NfY2xvc2UobURldmljZSk7CisgICAgfQorfQorCit2b2lkIEdyYWxsb2MxT24wQWRhcHRlcjo6ZG9HZXRDYXBhYmlsaXRpZXModWludDMyX3QqIG91dENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIC8qb3V0Q2FwYWJpbGl0aWVzKi8pIHsKKyAgICAqb3V0Q291bnQgPSAwOworfQorCitncmFsbG9jMV9mdW5jdGlvbl9wb2ludGVyX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpkb0dldEZ1bmN0aW9uKAorICAgICAgICBpbnQzMl90IGludERlc2NyaXB0b3IpCit7CisgICAgY29uc3RleHByIGF1dG8gbGFzdERlc2NyaXB0b3IgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oR1JBTExPQzFfTEFTVF9GVU5DVElPTik7CisgICAgaWYgKGludERlc2NyaXB0b3IgPCAwIHx8IGludERlc2NyaXB0b3IgPiBsYXN0RGVzY3JpcHRvcikgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBmdW5jdGlvbiBkZXNjcmlwdG9yIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1dG8gZGVzY3JpcHRvciA9CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3Q+KGludERlc2NyaXB0b3IpOworICAgIHN3aXRjaCAoZGVzY3JpcHRvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0RVTVA6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fRFVNUD4oZHVtcEhvb2spOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0NSRUFURV9ERVNDUklQVE9SOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0NSRUFURV9ERVNDUklQVE9SPihjcmVhdGVEZXNjcmlwdG9ySG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fREVTVFJPWV9ERVNDUklQVE9SOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0RFU1RST1lfREVTQ1JJUFRPUj4oZGVzdHJveURlc2NyaXB0b3JIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfQ09OU1VNRVJfVVNBR0U6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX0NPTlNVTUVSX1VTQUdFPihzZXRDb25zdW1lclVzYWdlSG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fU0VUX0RJTUVOU0lPTlM6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX0RJTUVOU0lPTlM+KHNldERpbWVuc2lvbnNIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfRk9STUFUOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX1NFVF9GT1JNQVQ+KHNldEZvcm1hdEhvb2spOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX1NFVF9MQVlFUl9DT1VOVDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9TRVRfTEFZRVJfQ09VTlQ+KHNldExheWVyQ291bnRIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfUFJPRFVDRVJfVVNBR0U6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX1BST0RVQ0VSX1VTQUdFPihzZXRQcm9kdWNlclVzYWdlSG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0JBQ0tJTkdfU1RPUkU6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fR0VUX0JBQ0tJTkdfU1RPUkU+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldEJhY2tpbmdTdG9yZSksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldEJhY2tpbmdTdG9yZSwgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90Kj4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9DT05TVU1FUl9VU0FHRToKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfQ09OU1VNRVJfVVNBR0U+KGdldENvbnN1bWVyVXNhZ2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfRElNRU5TSU9OUzoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfRElNRU5TSU9OUz4oCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhvb2s8ZGVjbHR5cGUoJkJ1ZmZlcjo6Z2V0RGltZW5zaW9ucyksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldERpbWVuc2lvbnMsIHVpbnQzMl90KiwgdWludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0ZPUk1BVDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfRk9STUFUPigKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySG9vazxkZWNsdHlwZSgmQnVmZmVyOjpnZXRGb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRGb3JtYXQsIGludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0xBWUVSX0NPVU5UOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9MQVlFUl9DT1VOVD4oCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhvb2s8ZGVjbHR5cGUoJkJ1ZmZlcjo6Z2V0TGF5ZXJDb3VudCksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldExheWVyQ291bnQsIHVpbnQzMl90Kj4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9QUk9EVUNFUl9VU0FHRToKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfUFJPRFVDRVJfVVNBR0U+KGdldFByb2R1Y2VyVXNhZ2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfU1RSSURFOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9TVFJJREU+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldFN0cmlkZSksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldFN0cmlkZSwgdWludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fQUxMT0NBVEU6CisgICAgICAgICAgICBpZiAobURldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0FMTE9DQVRFPihhbGxvY2F0ZUhvb2spOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9SRVRBSU46CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fUkVUQUlOPihyZXRhaW5Ib29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9SRUxFQVNFOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX1JFTEVBU0U+KHJlbGVhc2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfTlVNX0ZMRVhfUExBTkVTOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9OVU1fRkxFWF9QTEFORVM+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldE51bUZsZXhQbGFuZXMpLAorICAgICAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXROdW1GbGV4UGxhbmVzLCB1aW50MzJfdCo+KTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9MT0NLOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0xPQ0s+KAorICAgICAgICAgICAgICAgICAgICBsb2NrSG9vazx2b2lkKiwgJkdyYWxsb2MxT24wQWRhcHRlcjo6bG9jaz4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0xPQ0tfRkxFWDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9MT0NLX0ZMRVg+KAorICAgICAgICAgICAgICAgICAgICBsb2NrSG9vazxzdHJ1Y3QgYW5kcm9pZF9mbGV4X2xheW91dCwKKyAgICAgICAgICAgICAgICAgICAgJkdyYWxsb2MxT24wQWRhcHRlcjo6bG9ja0ZsZXg+KTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9VTkxPQ0s6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fVU5MT0NLPih1bmxvY2tIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9JTlZBTElEOgorICAgICAgICAgICAgQUxPR0UoIkludmFsaWQgZnVuY3Rpb24gZGVzY3JpcHRvciIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgQUxPR0UoIlVua25vd24gZnVuY3Rpb24gZGVzY3JpcHRvcjogJWQiLCBpbnREZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmR1bXAodWludDMyX3QqIG91dFNpemUsIGNoYXIqIG91dEJ1ZmZlcikKK3sKKyAgICBBTE9HVigiZHVtcCgldSAoJXApLCAlcCIsIG91dFNpemUgPyAqb3V0U2l6ZSA6IDAsIG91dFNpemUsIG91dEJ1ZmZlcik7CisKKyAgICBpZiAoIW1EZXZpY2UtPmR1bXApIHsKKyAgICAgICAgLy8gZHVtcCBpcyBvcHRpb25hbCBvbiBncmFsbG9jMCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgKm91dFNpemUgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFvdXRCdWZmZXIpIHsKKyAgICAgICAgY29uc3RleHByIGludDMyX3QgQlVGRkVSX0xFTkdUSCA9IDQwOTY7CisgICAgICAgIGNoYXIgYnVmZmVyW0JVRkZFUl9MRU5HVEhdID0ge307CisgICAgICAgIG1EZXZpY2UtPmR1bXAobURldmljZSwgYnVmZmVyLCBCVUZGRVJfTEVOR1RIKTsKKyAgICAgICAgYnVmZmVyW0JVRkZFUl9MRU5HVEggLSAxXSA9IDA7IC8vIEVuc3VyZSB0aGUgYnVmZmVyIGlzIG51bGwtdGVybWluYXRlZAorICAgICAgICBzaXplX3QgYWN0dWFsTGVuZ3RoID0gc3RkOjpzdHJsZW4oYnVmZmVyKTsKKyAgICAgICAgbUNhY2hlZER1bXAucmVzaXplKGFjdHVhbExlbmd0aCk7CisgICAgICAgIHN0ZDo6Y29weV9uKGJ1ZmZlciwgYWN0dWFsTGVuZ3RoLCBtQ2FjaGVkRHVtcC5iZWdpbigpKTsKKyAgICAgICAgKm91dFNpemUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWN0dWFsTGVuZ3RoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0U2l6ZSA9IHN0ZDo6bWluKCpvdXRTaXplLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihtQ2FjaGVkRHVtcC5zaXplKCkpKTsKKyAgICAgICAgb3V0QnVmZmVyID0gc3RkOjpjb3B5X24obUNhY2hlZER1bXAuY2JlZ2luKCksICpvdXRTaXplLCBvdXRCdWZmZXIpOworICAgIH0KK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmNyZWF0ZURlc2NyaXB0b3IoCisgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpCit7CisgICAgYXV0byBkZXNjcmlwdG9ySWQgPSBzTmV4dEJ1ZmZlckRlc2NyaXB0b3JJZCsrOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIG1EZXNjcmlwdG9ycy5lbXBsYWNlKGRlc2NyaXB0b3JJZCwgc3RkOjptYWtlX3NoYXJlZDxEZXNjcmlwdG9yPigpKTsKKworICAgIEFMT0dWKCJDcmVhdGVkIGRlc2NyaXB0b3IgJSIgUFJJdTY0LCBkZXNjcmlwdG9ySWQpOworCisgICAgKm91dERlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySWQ7CisgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7Cit9CisKK2dyYWxsb2MxX2Vycm9yX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpkZXN0cm95RGVzY3JpcHRvcigKKyAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9yKQoreworICAgIEFMT0dWKCJEZXN0cm95aW5nIGRlc2NyaXB0b3IgJSIgUFJJdTY0LCBkZXNjcmlwdG9yKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIGlmIChtRGVzY3JpcHRvcnMuY291bnQoZGVzY3JpcHRvcikgPT0gMCkgeworICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I7CisgICAgfQorCisgICAgbURlc2NyaXB0b3JzLmVyYXNlKGRlc2NyaXB0b3IpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitHcmFsbG9jMU9uMEFkYXB0ZXI6OkJ1ZmZlcjo6QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGdyYWxsb2MxX2JhY2tpbmdfc3RvcmVfdCBzdG9yZSwgY29uc3QgRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICAgICAgdWludDMyX3Qgc3RyaWRlLCB1aW50MzJfdCBudW1GbGV4UGxhbmVzLCBib29sIHdhc0FsbG9jYXRlZCkKKyAgOiBtSGFuZGxlKGhhbmRsZSksCisgICAgbVJlZmVyZW5jZUNvdW50KDEpLAorICAgIG1TdG9yZShzdG9yZSksCisgICAgbURlc2NyaXB0b3IoZGVzY3JpcHRvciksCisgICAgbVN0cmlkZShzdHJpZGUpLAorICAgIG1OdW1GbGV4UGxhbmVzKG51bUZsZXhQbGFuZXMpLAorICAgIG1XYXNBbGxvY2F0ZWQod2FzQWxsb2NhdGVkKSB7fQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6YWxsb2NhdGUoCisgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgaWQsCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXJIYW5kbGUpCit7CisgICAgQUxPR1YoImFsbG9jYXRlKCUiIFBSSXU2NCAiKSIsIGlkKTsKKworICAgIC8vIElmIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBpdCdzIGJlY2F1c2Ugd2UgaGFuZGVkIG91dCBpdHMgZnVuY3Rpb24KKyAgICAvLyBwb2ludGVyLCB3aGljaCBvbmx5IG9jY3VycyB3aGVuIG1EZXZpY2UgaGFzIGJlZW4gbG9hZGVkIHN1Y2Nlc3NmdWxseSBhbmQKKyAgICAvLyB3ZSBhcmUgcGVybWl0dGVkIHRvIGFsbG9jYXRlCisKKyAgICBpbnQgdXNhZ2UgPSBhbmRyb2lkX2NvbnZlcnRHcmFsbG9jMVRvMFVzYWdlKAorICAgICAgICAgICAgZGVzY3JpcHRvci0+cHJvZHVjZXJVc2FnZSwgZGVzY3JpcHRvci0+Y29uc3VtZXJVc2FnZSk7CisgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IG51bGxwdHI7CisgICAgaW50IHN0cmlkZSA9IDA7CisgICAgQUxPR1YoIkNhbGxpbmcgYWxsb2MoJXAsICV1LCAldSwgJWksICV1KSIsIG1EZXZpY2UsIGRlc2NyaXB0b3ItPndpZHRoLAorICAgICAgICAgICAgZGVzY3JpcHRvci0+aGVpZ2h0LCBkZXNjcmlwdG9yLT5mb3JtYXQsIHVzYWdlKTsKKyAgICBhdXRvIGVycm9yID0gbURldmljZS0+YWxsb2MobURldmljZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZGVzY3JpcHRvci0+d2lkdGgpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihkZXNjcmlwdG9yLT5oZWlnaHQpLCBkZXNjcmlwdG9yLT5mb3JtYXQsCisgICAgICAgICAgICB1c2FnZSwgJmhhbmRsZSwgJnN0cmlkZSk7CisgICAgaWYgKGVycm9yICE9IDApIHsKKyAgICAgICAgQUxPR0UoImdyYWxsb2MwIGFsbG9jYXRpb24gZmFpbGVkOiAlZCAoJXMpIiwgZXJyb3IsCisgICAgICAgICAgICAgICAgc3RyZXJyb3IoLWVycm9yKSk7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fU0VUX1VTQUdFUywKKyAgICAgICAgICAgIGhhbmRsZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZGVzY3JpcHRvci0+cHJvZHVjZXJVc2FnZSksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGRlc2NyaXB0b3ItPmNvbnN1bWVyVXNhZ2UpKTsKKworICAgIHVpbnQ2NF90IGJhY2tpbmdTdG9yZSA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX0JBQ0tJTkdfU1RPUkUsCisgICAgICAgICAgICBoYW5kbGUsICZiYWNraW5nU3RvcmUpOworICAgIGludCBudW1GbGV4UGxhbmVzID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfTlVNX0ZMRVhfUExBTkVTLAorICAgICAgICAgICAgaGFuZGxlLCAmbnVtRmxleFBsYW5lcyk7CisKKyAgICAqb3V0QnVmZmVySGFuZGxlID0gaGFuZGxlOworICAgIGF1dG8gYnVmZmVyID0gc3RkOjptYWtlX3NoYXJlZDxCdWZmZXI+KGhhbmRsZSwgYmFja2luZ1N0b3JlLAorICAgICAgICAgICAgKmRlc2NyaXB0b3IsIHN0cmlkZSwgbnVtRmxleFBsYW5lcywgdHJ1ZSk7CisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIG1CdWZmZXJzLmVtcGxhY2UoaGFuZGxlLCBzdGQ6Om1vdmUoYnVmZmVyKSk7CisKKyAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKK30KKworaW50MzJfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmFsbG9jYXRlSG9vayhncmFsbG9jMV9kZXZpY2UqIGRldmljZSwKKyAgICAgICAgdWludDMyX3QgbnVtRGVzY3JpcHRvcnMsCisgICAgICAgIGNvbnN0IGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIGRlc2NyaXB0b3JzLAorICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEJ1ZmZlcnMpCit7CisgICAgaWYgKCFvdXRCdWZmZXJzKSB7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTkRFRklORUQ7CisgICAgfQorCisgICAgYXV0byBhZGFwdGVyID0gZ2V0QWRhcHRlcihkZXZpY2UpOworCisgICAgZ3JhbGxvYzFfZXJyb3JfdCBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgdWludDMyX3QgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtRGVzY3JpcHRvcnM7IGkrKykgeworICAgICAgICBhdXRvIGRlc2NyaXB0b3IgPSBhZGFwdGVyLT5nZXREZXNjcmlwdG9yKGRlc2NyaXB0b3JzW2ldKTsKKyAgICAgICAgaWYgKCFkZXNjcmlwdG9yKSB7CisgICAgICAgICAgICBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX0JBRF9ERVNDUklQVE9SOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgZXJyb3IgPSBhZGFwdGVyLT5hbGxvY2F0ZShkZXNjcmlwdG9yc1tpXSwgZGVzY3JpcHRvciwgJmJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIG91dEJ1ZmZlcnNbaV0gPSBidWZmZXJIYW5kbGU7CisgICAgfQorCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgaWYgKG51bURlc2NyaXB0b3JzID4gMSkgeworICAgICAgICAgICAgZXJyb3IgPSBHUkFMTE9DMV9FUlJPUl9OT1RfU0hBUkVEOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yICh1aW50MzJfdCBqID0gMDsgaiA8IGk7IGorKykgeworICAgICAgICAgICAgYWRhcHRlci0+cmVsZWFzZShhZGFwdGVyLT5nZXRCdWZmZXIob3V0QnVmZmVyc1tqXSkpOworICAgICAgICAgICAgb3V0QnVmZmVyc1tqXSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZXJyb3I7Cit9CisKK2dyYWxsb2MxX2Vycm9yX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpyZXRhaW4oCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUJ1ZmZlck11dGV4KTsKKyAgICBidWZmZXItPnJldGFpbigpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6cmVsZWFzZSgKKyAgICAgICAgY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlcikKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIGlmICghYnVmZmVyLT5yZWxlYXNlKCkpIHsKKyAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgfQorCisgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IGJ1ZmZlci0+Z2V0SGFuZGxlKCk7CisgICAgaWYgKGJ1ZmZlci0+d2FzQWxsb2NhdGVkKCkpIHsKKyAgICAgICAgQUxPR1YoIkNhbGxpbmcgZnJlZSglcCkiLCBoYW5kbGUpOworICAgICAgICBpbnQgcmVzdWx0ID0gbURldmljZS0+ZnJlZShtRGV2aWNlLCBoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCBmcmVlIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1YoIkNhbGxpbmcgdW5yZWdpc3RlckJ1ZmZlciglcCkiLCBoYW5kbGUpOworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+dW5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCB1bnJlZ2lzdGVyIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgbUJ1ZmZlcnMuZXJhc2UoaGFuZGxlKTsKKyAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OnJldGFpbihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKQoreworICAgIEFMT0dWKCJyZXRhaW4oJXApIiwgYnVmZmVySGFuZGxlKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1CdWZmZXJNdXRleCk7CisKKyAgICBpZiAobUJ1ZmZlcnMuY291bnQoYnVmZmVySGFuZGxlKSAhPSAwKSB7CisgICAgICAgIG1CdWZmZXJzW2J1ZmZlckhhbmRsZV0tPnJldGFpbigpOworICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICB9CisKKyAgICBBTE9HVigiQ2FsbGluZyByZWdpc3RlckJ1ZmZlciglcCkiLCBidWZmZXJIYW5kbGUpOworICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICBBTE9HRSgiZ3JhbGxvYzAgcmVnaXN0ZXIgZmFpbGVkOiAlZCIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgdWludDY0X3QgYmFja2luZ1N0b3JlID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfQkFDS0lOR19TVE9SRSwKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJmJhY2tpbmdTdG9yZSk7CisKKyAgICBpbnQgbnVtRmxleFBsYW5lcyA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX05VTV9GTEVYX1BMQU5FUywKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJm51bUZsZXhQbGFuZXMpOworCisgICAgaW50IHN0cmlkZSA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX1NUUklERSwKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJnN0cmlkZSk7CisKKyAgICBpbnQgd2lkdGggPSAwOworICAgIGludCBoZWlnaHQgPSAwOworICAgIGludCBmb3JtYXQgPSBIQUxfUElYRUxfRk9STUFUX0lNUExFTUVOVEFUSU9OX0RFRklORUQ7CisgICAgaW50IHByb2R1Y2VyVXNhZ2UgPSAwOworICAgIGludCBjb25zdW1lclVzYWdlID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRElNRU5TSU9OUywKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRk9STUFULAorICAgICAgICAgICAgYnVmZmVySGFuZGxlLCAmZm9ybWF0KTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfUFJPRFVDRVJfVVNBR0UsCisgICAgICAgICAgICBidWZmZXJIYW5kbGUsICZwcm9kdWNlclVzYWdlKTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfQ09OU1VNRVJfVVNBR0UsCisgICAgICAgICAgICBidWZmZXJIYW5kbGUsICZjb25zdW1lclVzYWdlKTsKKworICAgIERlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBkZXNjcmlwdG9yLnNldERpbWVuc2lvbnMod2lkdGgsIGhlaWdodCk7CisgICAgZGVzY3JpcHRvci5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICBkZXNjcmlwdG9yLnNldFByb2R1Y2VyVXNhZ2UoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90Pihwcm9kdWNlclVzYWdlKSk7CisgICAgZGVzY3JpcHRvci5zZXRDb25zdW1lclVzYWdlKAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Z3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdD4oY29uc3VtZXJVc2FnZSkpOworCisgICAgYXV0byBidWZmZXIgPSBzdGQ6Om1ha2Vfc2hhcmVkPEJ1ZmZlcj4oYnVmZmVySGFuZGxlLCBiYWNraW5nU3RvcmUsCisgICAgICAgICAgICBkZXNjcmlwdG9yLCBzdHJpZGUsIG51bUZsZXhQbGFuZXMsIGZhbHNlKTsKKyAgICBtQnVmZmVycy5lbXBsYWNlKGJ1ZmZlckhhbmRsZSwgc3RkOjptb3ZlKGJ1ZmZlcikpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitzdGF0aWMgdm9pZCBzeW5jV2FpdEZvcmV2ZXIoaW50IGZkLCBjb25zdCBjaGFyKiBsb2duYW1lKQoreworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGludCB3YXJuaW5nVGltZW91dCA9IDM1MDA7CisgICAgY29uc3QgaW50IGVycm9yID0gc3luY193YWl0KGZkLCB3YXJuaW5nVGltZW91dCk7CisgICAgaWYgKGVycm9yIDwgMCAmJiBlcnJubyA9PSBFVElNRSkgeworICAgICAgICBBTE9HRSgiJXM6IGZlbmNlICVkIGRpZG4ndCBzaWduYWwgaW4gJXUgbXMiLCBsb2duYW1lLCBmZCwKKyAgICAgICAgICAgICAgICB3YXJuaW5nVGltZW91dCk7CisgICAgICAgIHN5bmNfd2FpdChmZCwgLTEpOworICAgIH0KK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmxvY2soCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIsCisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlLAorICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QmIGFjY2Vzc1JlZ2lvbiwgdm9pZCoqIG91dERhdGEsCisgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCit7CisgICAgaWYgKG1NaW5vclZlcnNpb24gPj0gMykgeworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZShwcm9kdWNlclVzYWdlLCBjb25zdW1lclVzYWdlKSwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsIG91dERhdGEsIGFjcXVpcmVGZW5jZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3luY1dhaXRGb3JldmVyKGFjcXVpcmVGZW5jZSwgIkdyYWxsb2MxT24wQWRhcHRlcjo6bG9jayIpOworCisgICAgICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5sb2NrKG1Nb2R1bGUsIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZShwcm9kdWNlclVzYWdlLCBjb25zdW1lclVzYWdlKSwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsIG91dERhdGEpOworICAgICAgICBBTE9HVigiZ3JhbGxvYzAgbG9jayByZXR1cm5lZCAlZCIsIHJlc3VsdCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOworICAgICAgICB9IGVsc2UgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShhY3F1aXJlRmVuY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6bG9ja0ZsZXgoCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIsCisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlLAorICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgc3RydWN0IGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dEZsZXgsCisgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCit7CisgICAgaWYgKG1NaW5vclZlcnNpb24gPj0gMykgeworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLAorICAgICAgICAgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9MT0NLX0ZMRVgsCisgICAgICAgICAgICAgICAgYnVmZmVyLT5nZXRIYW5kbGUoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHByb2R1Y2VyVXNhZ2UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oY29uc3VtZXJVc2FnZSksCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ud2lkdGgsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmhlaWdodCwKKyAgICAgICAgICAgICAgICBvdXRGbGV4LCBhY3F1aXJlRmVuY2UpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHN5bmNXYWl0Rm9yZXZlcihhY3F1aXJlRmVuY2UsICJHcmFsbG9jMU9uMEFkYXB0ZXI6OmxvY2tGbGV4Iik7CisKKyAgICAgICAgaW50IHJlc3VsdCA9IG1Nb2R1bGUtPnBlcmZvcm0obU1vZHVsZSwKKyAgICAgICAgICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fTE9DS19GTEVYLAorICAgICAgICAgICAgICAgIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pihwcm9kdWNlclVzYWdlKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGNvbnN1bWVyVXNhZ2UpLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5sZWZ0LAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsCisgICAgICAgICAgICAgICAgb3V0RmxleCwgLTEpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfSBlbHNlIGlmIChhY3F1aXJlRmVuY2UgPj0gMCkgeworICAgICAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6dW5sb2NrKAorICAgICAgICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPiYgYnVmZmVyLAorICAgICAgICBpbnQqIG91dFJlbGVhc2VGZW5jZSkKK3sKKyAgICBpZiAobU1pbm9yVmVyc2lvbiA+PSAzKSB7CisgICAgICAgIGludCBmZW5jZUZkID0gLTE7CisgICAgICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT51bmxvY2tBc3luYyhtTW9kdWxlLCBidWZmZXItPmdldEhhbmRsZSgpLAorICAgICAgICAgICAgICAgICZmZW5jZUZkKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCB1bmxvY2tBc3luYyBmYWlsZWQ6ICVkIiwgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICpvdXRSZWxlYXNlRmVuY2UgPSBmZW5jZUZkOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1Nb2R1bGUtPnVubG9jayhtTW9kdWxlLCBidWZmZXItPmdldEhhbmRsZSgpKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgiZ3JhbGxvYzAgdW5sb2NrIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKm91dFJlbGVhc2VGZW5jZSA9IC0xOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitzdGQ6OnNoYXJlZF9wdHI8R3JhbGxvYzFPbjBBZGFwdGVyOjpEZXNjcmlwdG9yPgorR3JhbGxvYzFPbjBBZGFwdGVyOjpnZXREZXNjcmlwdG9yKGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIGlmIChtRGVzY3JpcHRvcnMuY291bnQoZGVzY3JpcHRvcklkKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBtRGVzY3JpcHRvcnNbZGVzY3JpcHRvcklkXTsKK30KKworc3RkOjpzaGFyZWRfcHRyPEdyYWxsb2MxT24wQWRhcHRlcjo6QnVmZmVyPiBHcmFsbG9jMU9uMEFkYXB0ZXI6OmdldEJ1ZmZlcigKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIGlmIChtQnVmZmVycy5jb3VudChidWZmZXJIYW5kbGUpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIG1CdWZmZXJzW2J1ZmZlckhhbmRsZV07Cit9CisKK3N0ZDo6YXRvbWljPGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3Q+CisgICAgICAgIEdyYWxsb2MxT24wQWRhcHRlcjo6c05leHRCdWZmZXJEZXNjcmlwdG9ySWQoMSk7CisKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwMDE1ZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9HcmFsbG9jMU9uMEFkYXB0ZXIuaApAQCAtMCwwICsxLDQ1OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0NfMV9PTl8wX0FEQVBURVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0NfMV9PTl8wX0FEQVBURVJfSAorCisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKK3N0cnVjdCBncmFsbG9jX21vZHVsZV90Oworc3RydWN0IGFsbG9jX2RldmljZV90OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCitjbGFzcyBHcmFsbG9jMU9uMEFkYXB0ZXIgOiBwdWJsaWMgZ3JhbGxvYzFfZGV2aWNlX3QKK3sKK3B1YmxpYzoKKyAgICBHcmFsbG9jMU9uMEFkYXB0ZXIoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfkdyYWxsb2MxT24wQWRhcHRlcigpOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIGdldERldmljZSgpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGdyYWxsb2MxX2RldmljZV90Kj4odGhpcyk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBpbmxpbmUgR3JhbGxvYzFPbjBBZGFwdGVyKiBnZXRBZGFwdGVyKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYWxsb2MxT24wQWRhcHRlcio+KGRldmljZSk7CisgICAgfQorCisgICAgc3RhdGljIGludCBjbG9zZUhvb2soc3RydWN0IGh3X2RldmljZV90KiBkZXZpY2UpIHsKKyAgICAgICAgZGVsZXRlIGdldEFkYXB0ZXIocmVpbnRlcnByZXRfY2FzdDxncmFsbG9jMV9kZXZpY2VfdCo+KGRldmljZSkpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBnZXRDYXBhYmlsaXRpZXMKKworICAgIHZvaWQgZG9HZXRDYXBhYmlsaXRpZXModWludDMyX3QqIG91dENvdW50LAorICAgICAgICAgICAgaW50MzJfdCogLypncmFsbG9jMV9jYXBhYmlsaXR5X3QqLyBvdXRDYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGdldENhcGFiaWxpdGllc0hvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXRDb3VudCwKKyAgICAgICAgICAgIGludDMyX3QqIC8qZ3JhbGxvYzFfY2FwYWJpbGl0eV90Ki8gb3V0Q2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGdldEFkYXB0ZXIoZGV2aWNlKS0+ZG9HZXRDYXBhYmlsaXRpZXMob3V0Q291bnQsIG91dENhcGFiaWxpdGllcyk7CisgICAgfQorCisgICAgLy8gZ2V0RnVuY3Rpb24KKworICAgIGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdCBkb0dldEZ1bmN0aW9uKAorICAgICAgICAgICAgaW50MzJfdCAvKmdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCovIGRlc2NyaXB0b3IpOworICAgIHN0YXRpYyBncmFsbG9jMV9mdW5jdGlvbl9wb2ludGVyX3QgZ2V0RnVuY3Rpb25Ib29rKAorICAgICAgICAgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGludDMyX3QgLypncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QqLyBkZXNjcmlwdG9yKSB7CisgICAgICAgIHJldHVybiBnZXRBZGFwdGVyKGRldmljZSktPmRvR2V0RnVuY3Rpb24oZGVzY3JpcHRvcik7CisgICAgfQorCisgICAgLy8gZHVtcAorCisgICAgdm9pZCBkdW1wKHVpbnQzMl90KiBvdXRTaXplLCBjaGFyKiBvdXRCdWZmZXIpOworICAgIHN0YXRpYyB2b2lkIGR1bXBIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsIHVpbnQzMl90KiBvdXRTaXplLAorICAgICAgICAgICAgY2hhciogb3V0QnVmZmVyKSB7CisgICAgICAgIHJldHVybiBnZXRBZGFwdGVyKGRldmljZSktPmR1bXAob3V0U2l6ZSwgb3V0QnVmZmVyKTsKKyAgICB9CisgICAgc3RkOjpzdHJpbmcgbUNhY2hlZER1bXA7CisKKyAgICAvLyBCdWZmZXIgZGVzY3JpcHRvciBsaWZlY3ljbGUgZnVuY3Rpb25zCisKKyAgICBzdHJ1Y3QgRGVzY3JpcHRvcjsKKworICAgIGdyYWxsb2MxX2Vycm9yX3QgY3JlYXRlRGVzY3JpcHRvcigKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpOworICAgIHN0YXRpYyBpbnQzMl90IGNyZWF0ZURlc2NyaXB0b3JIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90KiBvdXREZXNjcmlwdG9yKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRBZGFwdGVyKGRldmljZSktPmNyZWF0ZURlc2NyaXB0b3Iob3V0RGVzY3JpcHRvcik7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgZ3JhbGxvYzFfZXJyb3JfdCBkZXN0cm95RGVzY3JpcHRvcihncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IpOworICAgIHN0YXRpYyBpbnQzMl90IGRlc3Ryb3lEZXNjcmlwdG9ySG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9yKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRBZGFwdGVyKGRldmljZSktPmRlc3Ryb3lEZXNjcmlwdG9yKGRlc2NyaXB0b3IpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIC8vIEJ1ZmZlciBkZXNjcmlwdG9yIG1vZGlmaWNhdGlvbiBmdW5jdGlvbnMKKworICAgIHN0cnVjdCBEZXNjcmlwdG9yIDogcHVibGljIHN0ZDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM8RGVzY3JpcHRvcj4geworICAgICAgICBEZXNjcmlwdG9yKCkKKyAgICAgICAgICA6IHdpZHRoKDApLAorICAgICAgICAgICAgaGVpZ2h0KDApLAorICAgICAgICAgICAgZm9ybWF0KEhBTF9QSVhFTF9GT1JNQVRfSU1QTEVNRU5UQVRJT05fREVGSU5FRCksCisgICAgICAgICAgICBsYXllckNvdW50KDEpLAorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZShHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9OT05FKSwKKyAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UoR1JBTExPQzFfQ09OU1VNRVJfVVNBR0VfTk9ORSkge30KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IHNldERpbWVuc2lvbnModWludDMyX3QgdywgdWludDMyX3QgaCkgeworICAgICAgICAgICAgd2lkdGggPSB3OworICAgICAgICAgICAgaGVpZ2h0ID0gaDsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRGb3JtYXQoaW50MzJfdCBmKSB7CisgICAgICAgICAgICBmb3JtYXQgPSBmOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IHNldExheWVyQ291bnQodWludDMyX3QgbGMpIHsKKyAgICAgICAgICAgIGxheWVyQ291bnQgPSBsYzsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRQcm9kdWNlclVzYWdlKGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgdXNhZ2UpIHsKKyAgICAgICAgICAgIHByb2R1Y2VyVXNhZ2UgPSB1c2FnZTsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRDb25zdW1lclVzYWdlKGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgdXNhZ2UpIHsKKyAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UgPSB1c2FnZTsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgdWludDMyX3Qgd2lkdGg7CisgICAgICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICAgICAgaW50MzJfdCBmb3JtYXQ7CisgICAgICAgIHVpbnQzMl90IGxheWVyQ291bnQ7CisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZTsKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgLi4uQXJncz4KKyAgICBzdGF0aWMgaW50MzJfdCBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3JJZCwKKyAgICAgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgKERlc2NyaXB0b3I6OiptZW1iZXIpKEFyZ3MuLi4pLCBBcmdzLi4uIGFyZ3MpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdG9yID0gZ2V0QWRhcHRlcihkZXZpY2UpLT5nZXREZXNjcmlwdG9yKGRlc2NyaXB0b3JJZCk7CisgICAgICAgIGlmICghZGVzY3JpcHRvcikgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KEdSQUxMT0MxX0VSUk9SX0JBRF9ERVNDUklQVE9SKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVycm9yID0gKCgqZGVzY3JpcHRvcikuKm1lbWJlcikoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KGVycm9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgaW50MzJfdCBzZXRDb25zdW1lclVzYWdlSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIHVpbnQ2NF90IGludFVzYWdlKSB7CisgICAgICAgIGF1dG8gdXNhZ2UgPSBzdGF0aWNfY2FzdDxncmFsbG9jMV9jb25zdW1lcl91c2FnZV90PihpbnRVc2FnZSk7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRDb25zdW1lclVzYWdlLCB1c2FnZSk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0RGltZW5zaW9uc0hvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkLCB1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgIHVpbnQzMl90IGhlaWdodCkgeworICAgICAgICByZXR1cm4gY2FsbERlc2NyaXB0b3JGdW5jdGlvbihkZXZpY2UsIGRlc2NyaXB0b3JJZCwKKyAgICAgICAgICAgICAgICAmRGVzY3JpcHRvcjo6c2V0RGltZW5zaW9ucywgd2lkdGgsIGhlaWdodCk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0Rm9ybWF0SG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIGludDMyX3QgZm9ybWF0KSB7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRGb3JtYXQsIGZvcm1hdCk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0TGF5ZXJDb3VudEhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkLCB1aW50MzJfdCBsYXllckNvdW50KSB7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRMYXllckNvdW50LCBsYXllckNvdW50KTsKKyAgICB9CisKKyAgICBzdGF0aWMgaW50MzJfdCBzZXRQcm9kdWNlclVzYWdlSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIHVpbnQ2NF90IGludFVzYWdlKSB7CisgICAgICAgIGF1dG8gdXNhZ2UgPSBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90PihpbnRVc2FnZSk7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRQcm9kdWNlclVzYWdlLCB1c2FnZSk7CisgICAgfQorCisgICAgLy8gQnVmZmVyIGhhbmRsZSBxdWVyeSBmdW5jdGlvbnMKKworICAgIGNsYXNzIEJ1ZmZlciB7CisgICAgcHVibGljOgorICAgICAgICBCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90IHN0b3JlLAorICAgICAgICAgICAgICAgIGNvbnN0IERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IHN0cmlkZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBudW1GbGV4UGxhbmVzLCBib29sIHdhc0FsbG9jYXRlZCk7CisKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworICAgICAgICB2b2lkIHJldGFpbigpIHsgKyttUmVmZXJlbmNlQ291bnQ7IH0KKworICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJlZmVyZW5jZSBjb3VudCBoYXMgZHJvcHBlZCB0byAwLCBpbmRpY2F0aW5nIHRoYXQKKyAgICAgICAgLy8gdGhlIGJ1ZmZlciBuZWVkcyB0byBiZSByZWxlYXNlZAorICAgICAgICBib29sIHJlbGVhc2UoKSB7IHJldHVybiAtLW1SZWZlcmVuY2VDb3VudCA9PSAwOyB9CisKKyAgICAgICAgYm9vbCB3YXNBbGxvY2F0ZWQoKSBjb25zdCB7IHJldHVybiBtV2FzQWxsb2NhdGVkOyB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBnZXRCYWNraW5nU3RvcmUoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90KiBvdXRTdG9yZSkgY29uc3QgeworICAgICAgICAgICAgKm91dFN0b3JlID0gbVN0b3JlOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldENvbnN1bWVyVXNhZ2UoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCogb3V0VXNhZ2UpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRVc2FnZSA9IG1EZXNjcmlwdG9yLmNvbnN1bWVyVXNhZ2U7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0RGltZW5zaW9ucyh1aW50MzJfdCogb3V0V2lkdGgsCisgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dEhlaWdodCkgY29uc3QgeworICAgICAgICAgICAgKm91dFdpZHRoID0gbURlc2NyaXB0b3Iud2lkdGg7CisgICAgICAgICAgICAqb3V0SGVpZ2h0ID0gbURlc2NyaXB0b3IuaGVpZ2h0OworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldEZvcm1hdChpbnQzMl90KiBvdXRGb3JtYXQpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRGb3JtYXQgPSBtRGVzY3JpcHRvci5mb3JtYXQ7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0TGF5ZXJDb3VudCh1aW50MzJfdCogb3V0TGF5ZXJDb3VudCkgY29uc3QgeworICAgICAgICAgICAgKm91dExheWVyQ291bnQgPSBtRGVzY3JpcHRvci5sYXllckNvdW50OworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldE51bUZsZXhQbGFuZXModWludDMyX3QqIG91dE51bVBsYW5lcykgY29uc3QgeworICAgICAgICAgICAgKm91dE51bVBsYW5lcyA9IG1OdW1GbGV4UGxhbmVzOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldFByb2R1Y2VyVXNhZ2UoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfcHJvZHVjZXJfdXNhZ2VfdCogb3V0VXNhZ2UpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRVc2FnZSA9IG1EZXNjcmlwdG9yLnByb2R1Y2VyVXNhZ2U7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0U3RyaWRlKHVpbnQzMl90KiBvdXRTdHJpZGUpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRTdHJpZGUgPSBtU3RyaWRlOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisKKyAgICAgICAgY29uc3QgYnVmZmVyX2hhbmRsZV90IG1IYW5kbGU7CisgICAgICAgIHNpemVfdCBtUmVmZXJlbmNlQ291bnQ7CisKKyAgICAgICAgY29uc3QgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90IG1TdG9yZTsKKyAgICAgICAgY29uc3QgRGVzY3JpcHRvciBtRGVzY3JpcHRvcjsKKyAgICAgICAgY29uc3QgdWludDMyX3QgbVN0cmlkZTsKKyAgICAgICAgY29uc3QgdWludDMyX3QgbU51bUZsZXhQbGFuZXM7CisKKyAgICAgICAgLy8gV2hldGhlciB0aGlzIGJ1ZmZlciBhbGxvY2F0ZWQgaW4gdGhpcyBwcm9jZXNzIChhcyBvcHBvc2VkIHRvIGp1c3QKKyAgICAgICAgLy8gYmVpbmcgcmV0YWluZWQgaGVyZSksIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0byBmcmVlIG9yIHVucmVnaXN0ZXIKKyAgICAgICAgLy8gdGhlIGJ1ZmZlciB3aGVuIHRoaXMgQnVmZmVyIGlzIHJlbGVhc2VkCisgICAgICAgIGNvbnN0IGJvb2wgbVdhc0FsbG9jYXRlZDsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIC4uLkFyZ3M+CisgICAgc3RhdGljIGludDMyX3QgY2FsbEJ1ZmZlckZ1bmN0aW9uKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCAoQnVmZmVyOjoqbWVtYmVyKShBcmdzLi4uKSBjb25zdCwgQXJncy4uLiBhcmdzKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gZ2V0QWRhcHRlcihkZXZpY2UpLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVycm9yID0gKCgqYnVmZmVyKS4qbWVtYmVyKShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBNRiwgTUYgbWVtRnVuYywgdHlwZW5hbWUgLi4uQXJncz4KKyAgICBzdGF0aWMgaW50MzJfdCBidWZmZXJIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBBcmdzLi4uIGFyZ3MpIHsKKyAgICAgICAgcmV0dXJuIEdyYWxsb2MxT24wQWRhcHRlcjo6Y2FsbEJ1ZmZlckZ1bmN0aW9uKGRldmljZSwgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgIG1lbUZ1bmMsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3QgZ2V0Q29uc3VtZXJVc2FnZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90KiBvdXRVc2FnZSkgeworICAgICAgICBhdXRvIHVzYWdlID0gR1JBTExPQzFfQ09OU1VNRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYXV0byBlcnJvciA9IGNhbGxCdWZmZXJGdW5jdGlvbihkZXZpY2UsIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRDb25zdW1lclVzYWdlLCAmdXNhZ2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVzYWdlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3QgZ2V0UHJvZHVjZXJVc2FnZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90KiBvdXRVc2FnZSkgeworICAgICAgICBhdXRvIHVzYWdlID0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYXV0byBlcnJvciA9IGNhbGxCdWZmZXJGdW5jdGlvbihkZXZpY2UsIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRQcm9kdWNlclVzYWdlLCAmdXNhZ2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVzYWdlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgLy8gQnVmZmVyIG1hbmFnZW1lbnQgZnVuY3Rpb25zCisKKyAgICBncmFsbG9jMV9lcnJvcl90IGFsbG9jYXRlKAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBpZCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0QnVmZmVySGFuZGxlKTsKKyAgICBzdGF0aWMgaW50MzJfdCBhbGxvY2F0ZUhvb2soZ3JhbGxvYzFfZGV2aWNlKiBkZXZpY2UsCisgICAgICAgICAgICB1aW50MzJfdCBudW1EZXNjcmlwdG9ycywKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIGRlc2NyaXB0b3JzLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXJzKTsKKworICAgIGdyYWxsb2MxX2Vycm9yX3QgcmV0YWluKGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIpOworICAgIGdyYWxsb2MxX2Vycm9yX3QgcmV0YWluKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpOworICAgIHN0YXRpYyBpbnQzMl90IHJldGFpbkhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpCisgICAgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisgICAgICAgIHJldHVybiBhZGFwdGVyLT5yZXRhaW4oYnVmZmVySGFuZGxlKTsKKyAgICB9CisKKyAgICBncmFsbG9jMV9lcnJvcl90IHJlbGVhc2UoY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlcik7CisgICAgc3RhdGljIGludDMyX3QgcmVsZWFzZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgYXV0byBhZGFwdGVyID0gZ2V0QWRhcHRlcihkZXZpY2UpOworCisgICAgICAgIGF1dG8gYnVmZmVyID0gYWRhcHRlci0+Z2V0QnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRSk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGVycm9yID0gYWRhcHRlci0+cmVsZWFzZShidWZmZXIpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIC8vIEJ1ZmZlciBhY2Nlc3MgZnVuY3Rpb25zCisKKyAgICBncmFsbG9jMV9lcnJvcl90IGxvY2soY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX3JlY3RfdCYgYWNjZXNzUmVnaW9uLCB2b2lkKiogb3V0RGF0YSwKKyAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpOworICAgIGdyYWxsb2MxX2Vycm9yX3QgbG9ja0ZsZXgoY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX3JlY3RfdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgc3RydWN0IGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dEZsZXgsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPVVQsIGdyYWxsb2MxX2Vycm9yX3QgKEdyYWxsb2MxT24wQWRhcHRlcjo6Km1lbWJlcikoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPiYsIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QsCisgICAgICAgICAgICBncmFsbG9jMV9jb25zdW1lcl91c2FnZV90LCBjb25zdCBncmFsbG9jMV9yZWN0X3QmLCBPVVQqLAorICAgICAgICAgICAgaW50KT4KKyAgICBzdGF0aWMgaW50MzJfdCBsb2NrSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgIHVpbnQ2NF90IC8qZ3JhbGxvYzFfcHJvZHVjZXJfdXNhZ2VfdCovIHVpbnRQcm9kdWNlclVzYWdlLAorICAgICAgICAgICAgdWludDY0X3QgLypncmFsbG9jMV9jb25zdW1lcl91c2FnZV90Ki8gdWludENvbnN1bWVyVXNhZ2UsCisgICAgICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QqIGFjY2Vzc1JlZ2lvbiwgT1VUKiBvdXREYXRhLAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2VGZCkgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisKKyAgICAgICAgLy8gRXhhY3RseSBvbmUgb2YgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHVzYWdlIG11c3QgYmUgKl9VU0FHRV9OT05FLAorICAgICAgICAvLyBidXQgd2UgY2FuJ3QgY2hlY2sgdGhpcyB1bnRpbCB0aGUgdXBwZXIgbGV2ZWxzIG9mIHRoZSBmcmFtZXdvcmsKKyAgICAgICAgLy8gY29ycmVjdGx5IGRpc3Rpbmd1aXNoIGJldHdlZW4gcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHVzYWdlCisgICAgICAgIC8qCisgICAgICAgIGJvb2wgaGFzUHJvZHVjZXJVc2FnZSA9CisgICAgICAgICAgICAgICAgdWludFByb2R1Y2VyVXNhZ2UgIT0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYm9vbCBoYXNDb25zdW1lclVzYWdlID0KKyAgICAgICAgICAgICAgICB1aW50Q29uc3VtZXJVc2FnZSAhPSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9OT05FOworICAgICAgICBpZiAoaGFzUHJvZHVjZXJVc2FnZSAmJiBoYXNDb25zdW1lclVzYWdlIHx8CisgICAgICAgICAgICAgICAgIWhhc1Byb2R1Y2VyVXNhZ2UgJiYgIWhhc0NvbnN1bWVyVXNhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgYXV0byBwcm9kdWNlclVzYWdlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90Pih1aW50UHJvZHVjZXJVc2FnZSk7CisgICAgICAgIGF1dG8gY29uc3VtZXJVc2FnZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Z3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdD4odWludENvbnN1bWVyVXNhZ2UpOworCisgICAgICAgIGlmICghb3V0RGF0YSkgeworICAgICAgICAgICAgY29uc3QgYXV0byBwcm9kdWNlckNwdVVzYWdlID0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfQ1BVX1JFQUQgfAorICAgICAgICAgICAgICAgICAgICBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfV1JJVEU7CisgICAgICAgICAgICBpZiAoKHByb2R1Y2VyVXNhZ2UgJiBwcm9kdWNlckNwdVVzYWdlKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KEdSQUxMT0MxX0VSUk9SX0JBRF9WQUxVRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGNvbnN1bWVyVXNhZ2UgJiBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBhZGFwdGVyLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYWNjZXNzUmVnaW9uKSB7CisgICAgICAgICAgICBBTE9HRSgiYWNjZXNzUmVnaW9uIGlzIG51bGwiKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBlcnJvciA9ICgoKmFkYXB0ZXIpLiptZW1iZXIpKGJ1ZmZlciwgcHJvZHVjZXJVc2FnZSwgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAqYWNjZXNzUmVnaW9uLCBvdXREYXRhLCBhY3F1aXJlRmVuY2VGZCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgZ3JhbGxvYzFfZXJyb3JfdCB1bmxvY2soY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGludCogb3V0UmVsZWFzZUZlbmNlKTsKKyAgICBzdGF0aWMgaW50MzJfdCB1bmxvY2tIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQzMl90KiBvdXRSZWxlYXNlRmVuY2VGZCkgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBhZGFwdGVyLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZWxlYXNlRmVuY2UgPSAtMTsKKyAgICAgICAgYXV0byBlcnJvciA9IGFkYXB0ZXItPnVubG9jayhidWZmZXIsICZyZWxlYXNlRmVuY2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFJlbGVhc2VGZW5jZUZkID0gcmVsZWFzZUZlbmNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgLy8gQWRhcHRlciBpbnRlcm5hbHMKKyAgICBjb25zdCBncmFsbG9jX21vZHVsZV90KiBtTW9kdWxlOworICAgIHVpbnQ4X3QgbU1pbm9yVmVyc2lvbjsKKyAgICBhbGxvY19kZXZpY2VfdCogbURldmljZTsKKworICAgIHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiBnZXREZXNjcmlwdG9yKAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQpOworICAgIHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+IGdldEJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKTsKKworICAgIHN0YXRpYyBzdGQ6OmF0b21pYzxncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90PiBzTmV4dEJ1ZmZlckRlc2NyaXB0b3JJZDsKKyAgICBzdGQ6Om11dGV4IG1EZXNjcmlwdG9yTXV0ZXg7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QsCisgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8RGVzY3JpcHRvcj4+IG1EZXNjcmlwdG9yczsKKyAgICBzdGQ6Om11dGV4IG1CdWZmZXJNdXRleDsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8YnVmZmVyX2hhbmRsZV90LCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPj4gbUJ1ZmZlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFMTE9DXzFfT05fMF9BREFQVEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZS5yYyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGYyZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNiBAQAorc2VydmljZSBncmFsbG9jLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZQorICAgIGNsYXNzIGhhbCBhbmltYXRpb24KKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIGdyYXBoaWNzIGRybXJwYworICAgIGNhcGFiaWxpdGllcyBTWVNfTklDRQorICAgIG9ucmVzdGFydCByZXN0YXJ0IHN1cmZhY2VmbGluZ2VyCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNjNTljZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9ncmFsbG9jMS1hZGFwdGVyLmNwcApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiR3JhbGxvYzFPbjBBZGFwdGVyLmgiCisjaW5jbHVkZSAiZ3JhbGxvYzEtYWRhcHRlci5oIgorCitpbnQgZ3JhbGxvYzFfYWRhcHRlcl9kZXZpY2Vfb3Blbihjb25zdCBzdHJ1Y3QgaHdfbW9kdWxlX3QqIG1vZHVsZSwKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSkKK3sKKyAgICBpZiAoc3RyY21wKGlkLCBHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCkgIT0gMCkgeworICAgICAgICBBTE9HRSgidW5rbm93biBncmFsbG9jMSBkZXZpY2UgaWQ6ICVzIiwgaWQpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBhdXRvIGFkYXB0ZXJfZGV2aWNlID0gbmV3IGFuZHJvaWQ6OmhhcmR3YXJlOjpHcmFsbG9jMU9uMEFkYXB0ZXIobW9kdWxlKTsKKyAgICAqZGV2aWNlID0gJmFkYXB0ZXJfZGV2aWNlLT5jb21tb247CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9ncmFsbG9jMS1hZGFwdGVyLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MTJlZjYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBTExPQzFfQURBUFRFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBTExPQzFfQURBUFRFUl9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorCitfX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgR1JBTExPQzFfQURBUFRFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wIFwKKyAgICBIQVJEV0FSRV9NT0RVTEVfQVBJX1ZFUlNJT04oMSwgMCkKKworZW51bSB7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUID0gMTAwMDAsCisKKyAgICAvLyB2b2lkIGdldFJlYWxNb2R1bGVBcGlWZXJzaW9uTWlub3IoLi4uLCBpbnQqIG91dE1pbm9yVmVyc2lvbik7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9SRUFMX01PRFVMRV9BUElfVkVSU0lPTl9NSU5PUiA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCwKKworICAgIC8vIHZvaWQgc2V0VXNhZ2VzKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgIGludCBwcm9kdWNlclVzYWdlLAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN1bWVyVXNhZ2UpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9TRVRfVVNBR0VTID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMSwKKworICAgIC8vIHZvaWQgZ2V0RGltZW5zaW9ucyguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRXaWR0aCwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEhlaWdodCk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9ESU1FTlNJT05TID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMiwKKworICAgIC8vIHZvaWQgZ2V0Rm9ybWF0KC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRGb3JtYXQpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRk9STUFUID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMywKKworICAgIC8vIHZvaWQgZ2V0UHJvZHVjZXJVc2FnZSguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludCogb3V0VXNhZ2UpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfUFJPRFVDRVJfVVNBR0UgPQorICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fRklSU1QgKyA0LAorCisgICAgLy8gdm9pZCBnZXRDb25zdW1lclVzYWdlKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRVc2FnZSk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9DT05TVU1FUl9VU0FHRSA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCArIDUsCisKKyAgICAvLyB2b2lkIGdldEJhY2tpbmdTdG9yZSguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCogb3V0QmFja2luZ1N0b3JlKTsKKyAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX0JBQ0tJTkdfU1RPUkUgPQorICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fRklSU1QgKyA2LAorCisgICAgLy8gdm9pZCBnZXROdW1GbGV4UGxhbmVzKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dE51bUZsZXhQbGFuZXMpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfTlVNX0ZMRVhfUExBTkVTID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgNywKKworICAgIC8vIHZvaWQgZ2V0U3RyaWRlKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRTdHJpZGUpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfU1RSSURFID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgOCwKKworICAgIC8vIHZvaWQgbG9ja0ZsZXgoLi4uLCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgcHJvZHVjZXJVc2FnZSwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN1bWVyVXNhZ2UsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCBsZWZ0LAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgdG9wLAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dExheW91dCwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0xPQ0tfRkxFWCA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCArIDksCit9OworCitpbnQgZ3JhbGxvYzFfYWRhcHRlcl9kZXZpY2Vfb3Blbihjb25zdCBzdHJ1Y3QgaHdfbW9kdWxlX3QqIG1vZHVsZSwKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0MxX0FEQVBURVJfSCAqLwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Mzc0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmg+CisKKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElBbGxvY2F0b3I+KCk7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2FsbG9jYXRvci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzczOTYzCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIklHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsIiwKKyAgICAgICAgIklQcm9kdWNlckxpc3RlbmVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9HcmFwaGljQnVmZmVyUHJvZHVjZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL1Byb2R1Y2VyTGlzdGVuZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lId0dyYXBoaWNCdWZmZXJQcm9kdWNlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0JuSHdHcmFwaGljQnVmZmVyUHJvZHVjZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9CcEh3R3JhcGhpY0J1ZmZlclByb2R1Y2VyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQnNHcmFwaGljQnVmZmVyUHJvZHVjZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JUHJvZHVjZXJMaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lId1Byb2R1Y2VyTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9Cbkh3UHJvZHVjZXJMaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0JwSHdQcm9kdWNlckxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQnNQcm9kdWNlckxpc3RlbmVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsIGIvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3YmI4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oYWwKQEAgLTAsMCArMSw3MTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOiAqd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OkZlbmNlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjpBbndCdWZmZXI7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OlJlY3Q7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OlJlZ2lvbjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6RGF0YXNwYWNlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6UGl4ZWxGb3JtYXQ7CisKK2ltcG9ydCBJUHJvZHVjZXJMaXN0ZW5lcjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvZ3VpL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaDoKKyAqICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcgorICogVGhpcyBpcyBhIHdyYXBwZXIvd3JhcHBlZCBIQUwgaW50ZXJmYWNlIGZvciB0aGUgYWN0dWFsIGJpbmRlciBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyIHsKKworICAgIC8qKgorICAgICAqIFR5cGUgZm9yIHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGluIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuCisgICAgICovCisgICAgdHlwZWRlZiBpbnQzMl90IFN0YXR1czsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9GZW5jZVRpbWUuaDogRmVuY2VUaW1lOjpTbmFwc2hvdAorICAgICAqCisgICAgICogQW4gYXRvbWljIHNuYXBzaG90IG9mIHRoZSBGZW5jZVRpbWUgdGhhdCBpcyBmbGF0dGVuYWJsZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRmVuY2VUaW1lU25hcHNob3QgeworICAgICAgICBlbnVtIFN0YXRlIDogaW50MzJfdCB7CisgICAgICAgICAgICBFTVBUWSwKKyAgICAgICAgICAgIEZFTkNFLAorICAgICAgICAgICAgU0lHTkFMX1RJTUUsCisgICAgICAgIH07CisgICAgICAgIFN0YXRlIHN0YXRlOworICAgICAgICBGZW5jZSBmZW5jZTsKKyAgICAgICAgaW50NjRfdCBzaWduYWxUaW1lTnM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvRnJhbWVUaW1lc3RhbXAuaDogRnJhbWVFdmVudHNEZWx0YQorICAgICAqCisgICAgICogQSBzaW5nbGUgZnJhbWUgdXBkYXRlIGZyb20gdGhlIGNvbnN1bWVyIHRvIHByb2R1Y2VyIHRoYXQgY2FuIGJlIHNlbnQKKyAgICAgKiB0aHJvdWdoIGEgSElETCBpbnRlcmZhY2UuIEFsdGhvdWdoIHRoaXMgbWF5IGJlIHNlbnQgbXVsdGlwbGUgdGltZXMgZm9yCisgICAgICogdGhlIHNhbWUgZnJhbWUgYXMgbmV3IHRpbWVzdGFtcHMgYXJlIHNldCwgRmVuY2VzIG9ubHkgbmVlZCB0byBiZSBzZW50CisgICAgICogb25jZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRnJhbWVFdmVudHNEZWx0YSB7CisgICAgICAgIHVpbnQzMl90IGluZGV4OworICAgICAgICB1aW50NjRfdCBmcmFtZU51bWJlcjsKKyAgICAgICAgYm9vbCBhZGRQb3N0Q29tcG9zaXRlQ2FsbGVkOworICAgICAgICBib29sIGFkZFJldGlyZUNhbGxlZDsKKyAgICAgICAgYm9vbCBhZGRSZWxlYXNlQ2FsbGVkOworICAgICAgICBpbnQ2NF90IHBvc3RlZFRpbWVOczsKKyAgICAgICAgaW50NjRfdCByZXF1ZXN0ZWRQcmVzZW50VGltZU5zOworICAgICAgICBpbnQ2NF90IGxhdGNoVGltZU5zOworICAgICAgICBpbnQ2NF90IGZpcnN0UmVmcmVzaFN0YXJ0VGltZU5zOworICAgICAgICBpbnQ2NF90IGxhc3RSZWZyZXNoU3RhcnRUaW1lTnM7CisgICAgICAgIGludDY0X3QgZGVxdWV1ZVJlYWR5VGltZTsKKyAgICAgICAgRmVuY2VUaW1lU25hcHNob3QgZ3B1Q29tcG9zaXRpb25Eb25lRmVuY2U7CisgICAgICAgIEZlbmNlVGltZVNuYXBzaG90IGRpc3BsYXlQcmVzZW50RmVuY2U7CisgICAgICAgIEZlbmNlVGltZVNuYXBzaG90IGRpc3BsYXlSZXRpcmVGZW5jZTsKKyAgICAgICAgRmVuY2VUaW1lU25hcHNob3QgcmVsZWFzZUZlbmNlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvZ3VpL0ZyYW1lVGltZXN0YW1wLmg6IENvbXBvc2l0b3JUaW1pbmcKKyAgICAgKgorICAgICAqIFRoZSBtb3N0IHJlY2VudCBjb21wb3NpdG9yIHRpbWluZyBpbmZvIHNlbnQgZnJvbSBjb25zdW1lciB0byBwcm9kdWNlcgorICAgICAqIHRocm91Z2ggYSBISURMIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29tcG9zaXRvclRpbWluZyB7CisgICAgICAgIGludDY0X3QgZGVhZGxpbmVOczsKKyAgICAgICAgaW50NjRfdCBpbnRlcnZhbE5zOworICAgICAgICBpbnQ2NF90IHByZXNlbnRMYXRlbmN5TnM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvRnJhbWVUaW1lc3RhbXAuaDogRnJhbWVFdmVudEhpc3RvcnlEZWx0YQorICAgICAqCisgICAgICogQSBjb2xsZWN0aW9uIG9mIHVwZGF0ZXMgZnJvbSBjb25zdW1lciB0byBwcm9kdWNlciB0aGF0IGNhbiBiZSBzZW50CisgICAgICogdGhyb3VnaCBhIEhJREwgaW50ZXJmYWNlLgorICAgICAqLworICAgIHN0cnVjdCBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIHsKKyAgICAgICAgdmVjPEZyYW1lRXZlbnRzRGVsdGE+IGRlbHRhczsKKyAgICAgICAgQ29tcG9zaXRvclRpbWluZyBjb21wb3NpdG9yVGltaW5nOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBNb2RlcyBmb3IgZGlzY29ubmVjdGlvbi4KKyAgICAgKi8KKyAgICBlbnVtIERpc2Nvbm5lY3RNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBEaXNjb25uZWN0IG9ubHkgdGhlIHNwZWNpZmllZCBBUEkuICovCisgICAgICAgIEFQSSwKKyAgICAgICAgLyoqIERpc2Nvbm5lY3QgYW55IEFQSSBvcmlnaW5hbGx5IGNvbm5lY3RlZCBmcm9tIHRoZSBwcm9jZXNzIGNhbGxpbmcKKyAgICAgICAgICogIGRpc2Nvbm5lY3QuICovCisgICAgICAgIEFMTF9MT0NBTAorICAgIH07CisKKyAgICBzdHJ1Y3QgUXVldWVCdWZmZXJJbnB1dCB7CisgICAgICAgIC8qKiBBIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyB2YWx1ZSBpbiBuYW5vc2Vjb25kcy4gKi8KKyAgICAgICAgaW50NjRfdCB0aW1lc3RhbXA7CisgICAgICAgIC8qKiBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgd2FzIHN5bnRoZXNpemVkIGF0IHF1ZXVlIHRpbWUuICovCisgICAgICAgIGludDMyX3QgaXNBdXRvVGltZXN0YW1wOworICAgICAgICAvKiogRGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnRzLCBpbnRlcnByZXRhdGlvbiBkZXBlbmRzIG9uIGZvcm1hdC4gKi8KKyAgICAgICAgRGF0YXNwYWNlIGRhdGFTcGFjZTsKKyAgICAgICAgLyoqIEEgY3JvcCByZWN0YW5nbGUgdGhhdCdzIHVzZWQgYXMgYSBoaW50IHRvIHRoZSBjb25zdW1lci4gKi8KKyAgICAgICAgUmVjdCBjcm9wOworICAgICAgICAvKiogQSBzZXQgb2YgZmxhZ3MgZnJvbSBOQVRJVkVfV0lORE9XX1NDQUxJTkdfKiBpbiA8d2luZG93Lmg+LiAqLworICAgICAgICBpbnQzMl90IHNjYWxpbmdNb2RlOworICAgICAgICAvKiogQSBzZXQgb2YgZmxhZ3MgZnJvbSBOQVRJVkVfV0lORE9XX1RSQU5TRk9STV8qIGluIDx3aW5kb3cuaD4uICovCisgICAgICAgIHVpbnQzMl90IHRyYW5zZm9ybTsKKyAgICAgICAgLyoqIFRoZSBzdGlja3kgdHJhbnNmb3JtIHNldCBpbiBTdXJmYWNlIChvbmx5IHVzZWQgYnkgdGhlIExFR0FDWSBjYW1lcmEKKyAgICAgICAgICogIG1vZGUpLiAqLworICAgICAgICB1aW50MzJfdCBzdGlja3lUcmFuc2Zvcm07CisgICAgICAgIC8qKiBBIGZlbmNlIHRoYXQgdGhlIGNvbnN1bWVyIG11c3Qgd2FpdCBvbiBiZWZvcmUgcmVhZGluZyB0aGUgYnVmZmVyOworICAgICAgICAgKiAgc2V0IHRoaXMgdG8gRmVuY2U6Ok5PX0ZFTkNFIGlmIHRoZSBidWZmZXIgaXMgcmVhZHkgaW1tZWRpYXRlbHkuICovCisgICAgICAgIEZlbmNlIGZlbmNlOworICAgICAgICBSZWdpb24gc3VyZmFjZURhbWFnZTsKKyAgICAgICAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSBsYXRlc3QgZnJhbWUgdGltZXN0YW1wcyBzaG91bGQgYmUgcmV0cmlldmVkIGZyb20KKyAgICAgICAgICogIHRoZSBjb25zdW1lci4gKi8KKyAgICAgICAgYm9vbCBnZXRGcmFtZVRpbWVzdGFtcHM7CisgICAgfTsKKworICAgIHN0cnVjdCBRdWV1ZUJ1ZmZlck91dHB1dCB7CisgICAgICAgIHVpbnQzMl90IHdpZHRoOworICAgICAgICB1aW50MzJfdCBoZWlnaHQ7CisgICAgICAgIHVpbnQzMl90IHRyYW5zZm9ybUhpbnQ7CisgICAgICAgIHVpbnQzMl90IG51bVBlbmRpbmdCdWZmZXJzOworICAgICAgICB1aW50NjRfdCBuZXh0RnJhbWVOdW1iZXI7CisgICAgICAgIGJvb2wgYnVmZmVyUmVwbGFjZWQ7CisgICAgICAgIEZyYW1lRXZlbnRIaXN0b3J5RGVsdGEgZnJhbWVUaW1lc3RhbXBzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiByZXF1ZXN0QnVmZmVyIHJlcXVlc3RzIGEgbmV3IGJ1ZmZlciBmb3IgdGhlIGdpdmVuIGluZGV4LiBUaGUgc2VydmVyIChpLmUuCisgICAgICogdGhlIElQcm9kdWNlckxpc3RlbmVyIGltcGxlbWVudGF0aW9uKSBhc3NpZ25zIHRoZSBuZXdseSBjcmVhdGVkCisgICAgICogYnVmZmVyIHRvIHRoZSBnaXZlbiBzbG90IGluZGV4LCBhbmQgdGhlIGNsaWVudCBpcyBleHBlY3RlZCB0byBtaXJyb3IgdGhlCisgICAgICogc2xvdC0+YnVmZmVyIG1hcHBpbmcgc28gdGhhdCBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gdHJhbnNmZXIgYW4KKyAgICAgKiBBbndCdWZmZXIgZm9yIGV2ZXJ5IGRlcXVldWUgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogVGhlIHNsb3QgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIE5VTV9CVUZGRVJfU0xPVFMpLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgdHdvIGNvbmRpdGlvbnMgb2NjdXJyZWQ6CisgICAgICogICAgICAgICAgICAgICogc2xvdCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpCisgICAgICogICAgICAgICAgICAgICogYnVmZmVyIHNwZWNpZmllZCBieSB0aGUgc2xvdCBpcyBub3QgZGVxdWV1ZWQKKyAgICAgKi8KKyAgICByZXF1ZXN0QnVmZmVyKAorICAgICAgICAgICAgaW50MzJfdCBzbG90CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBzZXRNYXhEZXF1ZXVlZEJ1ZmZlckNvdW50IHNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBjYW4gYmUKKyAgICAgKiBkZXF1ZXVlZCBieSB0aGUgcHJvZHVjZXIgYXQgb25lIHRpbWUuIElmIHRoaXMgbWV0aG9kIHN1Y2NlZWRzLCBhbnkgbmV3CisgICAgICogYnVmZmVyIHNsb3RzIHdpbGwgYmUgYm90aCB1bmFsbG9jYXRlZCBhbmQgb3duZWQgYnkgdGhlIEJ1ZmZlclF1ZXVlIG9iamVjdAorICAgICAqIChpLmUuIHRoZXkgYXJlIG5vdCBvd25lZCBieSB0aGUgcHJvZHVjZXIgb3IgY29uc3VtZXIpLiBDYWxsaW5nIHRoaXMgbWF5CisgICAgICogYWxzbyBjYXVzZSBzb21lIGJ1ZmZlciBzbG90cyB0byBiZSBlbXB0aWVkLiBJZiB0aGUgY2FsbGVyIGlzIGNhY2hpbmcgdGhlCisgICAgICogY29udGVudHMgb2YgdGhlIGJ1ZmZlciBzbG90cywgaXQgc2hvdWxkIGVtcHR5IHRoYXQgY2FjaGUgYWZ0ZXIgY2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgdmFsdWUgb2YgbWF4RGVxdWV1ZWRCdWZmZXJzCisgICAgICogdGhhdCBpcyBsZXNzIHRoYW4gdGhlIG51bWJlciBvZiBjdXJyZW50bHkgZGVxdWV1ZWQgYnVmZmVyIHNsb3RzLiBEb2luZyBzbworICAgICAqIHdpbGwgcmVzdWx0IGluIGEgQkFEX1ZBTFVFIGVycm9yLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBjb3VudCBzaG91bGQgYmUgYXQgbGVhc3QgMSAoaW5jbHVzaXZlKSwgYnV0IGF0IG1vc3QKKyAgICAgKiAoTlVNX0JVRkZFUl9TTE9UUyAtIHRoZSBtaW5pbXVtIHVuZGVxdWV1ZWQgYnVmZmVyIGNvdW50KSAoZXhjbHVzaXZlKS4gVGhlCisgICAgICogbWluaW11bSB1bmRlcXVldWVkIGJ1ZmZlciBjb3VudCBjYW4gYmUgb2J0YWluZWQgYnkgY2FsbGluZworICAgICAqIHF1ZXJ5KE5BVElWRV9XSU5ET1dfTUlOX1VOREVRVUVVRURfQlVGRkVSUykuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgYmVsb3cgY29uZGl0aW9ucyBvY2N1cnJlZDoKKyAgICAgKiAgICAgKiBidWZmZXJDb3VudCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpLgorICAgICAqICAgICAqIGNsaWVudCB3b3VsZCBoYXZlIG1vcmUgdGhhbiB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBkZXF1ZXVlZAorICAgICAqICAgICAgIGJ1ZmZlcnMgYWZ0ZXIgdGhpcyBjYWxsLgorICAgICAqICAgICAqIHRoaXMgY2FsbCB3b3VsZCBjYXVzZSB0aGUgbWF4QnVmZmVyQ291bnQgdmFsdWUgdG8gYmUgZXhjZWVkZWQuCisgICAgICogICAgICogZmFpbHVyZSB0byBhZGp1c3QgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2xvdHMuCisgICAgICovCisgICAgc2V0TWF4RGVxdWV1ZWRCdWZmZXJDb3VudCgKKyAgICAgICAgICAgIGludDMyX3QgbWF4RGVxdWV1ZWRCdWZmZXJzCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXN5bmMgZmxhZyBpZiB0aGUgcHJvZHVjZXIgaW50ZW5kcyB0byBhc3luY2hyb25vdXNseSBxdWV1ZQorICAgICAqIGJ1ZmZlcnMgd2l0aG91dCBibG9ja2luZy4gVHlwaWNhbGx5IHRoaXMgaXMgdXNlZCBmb3IgdHJpcGxlLWJ1ZmZlcmluZworICAgICAqIGFuZC9vciB3aGVuIHRoZSBzd2FwIGludGVydmFsIGlzIHNldCB0byB6ZXJvLgorICAgICAqCisgICAgICogRW5hYmxpbmcgYXN5bmMgbW9kZSB3aWxsIGludGVybmFsbHkgYWxsb2NhdGUgYW4gYWRkaXRpb25hbCBidWZmZXIgdG8KKyAgICAgKiBhbGxvdyBmb3IgdGhlIGFzeW5jaHJvbm91cyBiZWhhdmlvci4gSWYgaXQgaXMgbm90IGVuYWJsZWQgcXVldWUvZGVxdWV1ZQorICAgICAqIGNhbGxzIG1heSBibG9jay4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIHZhbHVlIG90aGVyIHRoYW4gTk9fRVJST1IgbWVhbnMgYW4gZXJyb3IgaGFzIG9jY3VycmVkOgorICAgICAqICogTk9fSU5JVCAtIHRoZSBidWZmZXIgcXVldWUgaGFzIGJlZW4gYWJhbmRvbmVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBmb2xsb3dpbmcgaGFzIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhpcyBjYWxsIHdvdWxkIGNhdXNlIHRoZSBtYXhCdWZmZXJDb3VudCB2YWx1ZSB0byBiZQorICAgICAqICAgICAgICAgICAgICAgZXhjZWVkZWQKKyAgICAgKiAgICAgICAgICAgICAqIGZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLgorICAgICAqLworICAgIHNldEFzeW5jTW9kZSgKKyAgICAgICAgICAgIGJvb2wgYXN5bmMKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGVxdWV1ZUJ1ZmZlciByZXF1ZXN0cyBhIG5ldyBidWZmZXIgc2xvdCBmb3IgdGhlIGNsaWVudCB0byB1c2UuIE93bmVyc2hpcAorICAgICAqIG9mIHRoZSBzbG90IGlzIHRyYW5zZmVyZWQgdG8gdGhlIGNsaWVudCwgbWVhbmluZyB0aGF0IHRoZSBzZXJ2ZXIgd2lsbCBub3QKKyAgICAgKiB1c2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoYXQgc2xvdC4KKyAgICAgKgorICAgICAqIFRoZSBzbG90IGluZGV4IHJldHVybmVkIG1heSBvciBtYXkgbm90IGNvbnRhaW4gYSBidWZmZXIgKGNsaWVudC1zaWRlKS4KKyAgICAgKiBJZiB0aGUgc2xvdCBpcyBlbXB0eSB0aGUgY2xpZW50IHNob3VsZCBjYWxsIHJlcXVlc3RCdWZmZXIgdG8gYXNzaWduIGEgbmV3CisgICAgICogYnVmZmVyIHRvIHRoYXQgc2xvdC4KKyAgICAgKgorICAgICAqIE9uY2UgdGhlIGNsaWVudCBpcyBkb25lIGZpbGxpbmcgdGhpcyBidWZmZXIsIGl0IGlzIGV4cGVjdGVkIHRvIHRyYW5zZmVyCisgICAgICogYnVmZmVyIG93bmVyc2hpcCBiYWNrIHRvIHRoZSBzZXJ2ZXIgd2l0aCBlaXRoZXIgY2FuY2VsQnVmZmVyIG9uCisgICAgICogdGhlIGRlcXVldWVkIHNsb3Qgb3IgdG8gZmlsbCBpbiB0aGUgY29udGVudHMgb2YgaXRzIGFzc29jaWF0ZWQgYnVmZmVyCisgICAgICogY29udGVudHMgYW5kIGNhbGwgcXVldWVCdWZmZXIuCisgICAgICoKKyAgICAgKiBJZiBkZXF1ZXVlQnVmZmVyIHJldHVybnMgdGhlIEJVRkZFUl9ORUVEU19SRUFMTE9DQVRJT04gZmxhZywgdGhlIGNsaWVudCBpcworICAgICAqIGV4cGVjdGVkIHRvIGNhbGwgcmVxdWVzdEJ1ZmZlciBpbW1lZGlhdGVseS4KKyAgICAgKgorICAgICAqIElmIGRlcXVldWVCdWZmZXIgcmV0dXJucyB0aGUgUkVMRUFTRV9BTExfQlVGRkVSUyBmbGFnLCB0aGUgY2xpZW50IGlzCisgICAgICogZXhwZWN0ZWQgdG8gcmVsZWFzZSBhbGwgb2YgdGhlIG1pcnJvcmVkIHNsb3QtPmJ1ZmZlciBtYXBwaW5ncy4KKyAgICAgKgorICAgICAqIFRoZSBmZW5jZSBwYXJhbWV0ZXIgd2lsbCBiZSB1cGRhdGVkIHRvIGhvbGQgdGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aAorICAgICAqIHRoZSBidWZmZXIuIFRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIG11c3Qgbm90IGJlIG92ZXJ3cml0dGVuIHVudGlsIHRoZQorICAgICAqIGZlbmNlIHNpZ25hbHMuIElmIHRoZSBmZW5jZSBpcyBGZW5jZTo6Tk9fRkVOQ0UsIHRoZSBidWZmZXIgbWF5IGJlIHdyaXR0ZW4KKyAgICAgKiBpbW1lZGlhdGVseS4KKyAgICAgKgorICAgICAqIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgbXVzdCBiZSBubyBncmVhdGVyIHRoYW4gdGhlIG1pbmltdW0gb2YKKyAgICAgKiBHTF9NQVhfVklFV1BPUlRfRElNUyBhbmQgR0xfTUFYX1RFWFRVUkVfU0laRSAoc2VlOiBnbEdldEludGVnZXJ2KS4KKyAgICAgKiBBbiBlcnJvciBkdWUgdG8gaW52YWxpZCBkaW1lbnNpb25zIG1pZ2h0IG5vdCBiZSByZXBvcnRlZCB1bnRpbAorICAgICAqIHVwZGF0ZVRleEltYWdlKCkgaXMgY2FsbGVkLiAgSWYgd2lkdGggYW5kIGhlaWdodCBhcmUgYm90aCB6ZXJvLCB0aGUKKyAgICAgKiBkZWZhdWx0IHZhbHVlcyBzcGVjaWZpZWQgYnkgc2V0RGVmYXVsdEJ1ZmZlclNpemUoKSBhcmUgdXNlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogSWYgdGhlIGZvcm1hdCBpcyAwLCB0aGUgZGVmYXVsdCBmb3JtYXQgd2lsbCBiZSB1c2VkLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGFyZ3VtZW50IHNwZWNpZmllcyBncmFsbG9jIGJ1ZmZlciB1c2FnZSBmbGFncy4gIFRoZSB2YWx1ZXMKKyAgICAgKiBhcmUgZW51bWVyYXRlZCBpbiA8Z3JhbGxvYy5oPiwgZS5nLiBHUkFMTE9DX1VTQUdFX0hXX1JFTkRFUi4gIFRoZXNlCisgICAgICogd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgdXNhZ2UgZmxhZ3Mgc3BlY2lmaWVkIGJ5CisgICAgICogSUdyYXBoaWNCdWZmZXJDb25zdW1lcjo6c2V0Q29uc3VtZXJVc2FnZUJpdHMuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgd2lsbCBibG9jayB1bnRpbCBhIGJ1ZmZlciBpcyBhdmFpbGFibGUgdG8gYmUgZGVxdWV1ZWQuIElmCisgICAgICogYm90aCB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBhcHAsIHRoZW4gdGhpcyBjYWxsCisgICAgICogY2FuIG5ldmVyIGJsb2NrIGFuZCB3aWxsIHJldHVybiBXT1VMRF9CTE9DSyBpZiBubyBidWZmZXIgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQSBub24tbmVnYXRpdmUgdmFsdWUgd2l0aCBmbGFncyBzZXQgKHNlZSBhYm92ZSkgd2lsbCBiZSByZXR1cm5lZCB1cG9uCisgICAgICogc3VjY2VzcyBhcyBzdGF0dXMuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSBuZWdhdGl2ZSBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIGJvdGggaW4gYXN5bmMgbW9kZSBhbmQgYnVmZmVyIGNvdW50IHdhcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgICBtYXggbnVtYmVycyBvZiBidWZmZXJzIHRoYXQgY2FuIGJlIGFsbG9jYXRlZCBhdCBvbmNlLgorICAgICAqICogSU5WQUxJRF9PUEVSQVRJT04gLSBjYW5ub3QgYXR0YWNoIHRoZSBidWZmZXIgYmVjYXVzZSBpdCB3b3VsZCBjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0b28gbWFueSBidWZmZXJzIHRvIGJlIGRlcXVldWVkLCBlaXRoZXIgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0aGUgcHJvZHVjZXIgYWxyZWFkeSBoYXMgYSBzaW5nbGUgYnVmZmVyIGRlcXVldWVkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFuZCBkaWQgbm90IHNldCBhIGJ1ZmZlciBjb3VudCwgb3IgYmVjYXVzZSBhCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBjb3VudCB3YXMgc2V0IGFuZCB0aGlzIGNhbGwgd291bGQgY2F1c2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaXQgdG8gYmUgZXhjZWVkZWQuCisgICAgICogKiBXT1VMRF9CTE9DSyAtIG5vIGJ1ZmZlciBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLCBhbmQgYmxvY2tpbmcgaXMgZGlzYWJsZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgc2luY2UgYm90aCB0aGUgcHJvZHVjZXIvY29uc3VtZXIgYXJlIGNvbnRyb2xsZWQgYnkgYXBwCisgICAgICogKiBOT19NRU1PUlkgLSBvdXQgb2YgbWVtb3J5LCBjYW5ub3QgYWxsb2NhdGUgdGhlIGdyYXBoaWNzIGJ1ZmZlci4KKyAgICAgKiAqIFRJTUVEX09VVCAtIHRoZSB0aW1lb3V0IHNldCBieSBzZXREZXF1ZXVlVGltZW91dCB3YXMgZXhjZWVkZWQgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgIHdhaXRpbmcgZm9yIGEgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBBbGwgb3RoZXIgbmVnYXRpdmUgdmFsdWVzIGFyZSBhbiB1bmtub3duIGVycm9yIHJldHVybmVkIGRvd25zdHJlYW0KKyAgICAgKiBmcm9tIHRoZSBncmFwaGljcyBhbGxvY2F0b3IgKHR5cGljYWxseSBlcnJubykuCisgICAgICovCisgICAgZGVxdWV1ZUJ1ZmZlcigKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgdWludDMyX3QgdXNhZ2UsCisgICAgICAgICAgICBib29sIGdldEZyYW1lVGltZXN0YW1wcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgaW50MzJfdCBzbG90LAorICAgICAgICAgICAgRmVuY2UgZmVuY2UsCisgICAgICAgICAgICBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIG91dFRpbWVzdGFtcHMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGRldGFjaEJ1ZmZlciBhdHRlbXB0cyB0byByZW1vdmUgYWxsIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIGluIHRoZSBnaXZlbgorICAgICAqIHNsb3QgZnJvbSB0aGUgYnVmZmVyIHF1ZXVlLiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIHRoZSBzbG90IHdpbGwgYmUKKyAgICAgKiBmcmVlZCwgYW5kIHRoZXJlIHdpbGwgYmUgbm8gd2F5IHRvIG9idGFpbiB0aGUgYnVmZmVyIGZyb20gdGhpcyBpbnRlcmZhY2UuCisgICAgICogVGhlIGZyZWVkIHNsb3Qgd2lsbCByZW1haW4gdW5hbGxvY2F0ZWQgdW50aWwgZWl0aGVyIGl0IGlzIHNlbGVjdGVkIHRvCisgICAgICogaG9sZCBhIGZyZXNobHkgYWxsb2NhdGVkIGJ1ZmZlciBpbiBkZXF1ZXVlQnVmZmVyIG9yIGEgYnVmZmVyIGlzIGF0dGFjaGVkCisgICAgICogdG8gdGhlIHNsb3QuIFRoZSBidWZmZXIgbXVzdCBoYXZlIGFscmVhZHkgYmVlbiBkZXF1ZXVlZCwgYW5kIHRoZSBjYWxsZXIKKyAgICAgKiBtdXN0IGFscmVhZHkgcG9zc2Vzc2VzIHRoZSBzcDxBbndCdWZmZXI+IChpLmUuLCBtdXN0IGhhdmUgY2FsbGVkCisgICAgICogcmVxdWVzdEJ1ZmZlcikuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gdGhlIGdpdmVuIHNsb3QgbnVtYmVyIGlzIGludmFsaWQsIGVpdGhlciBiZWNhdXNlIGl0IGlzCisgICAgICogICAgICAgICAgICAgICBvdXQgb2YgdGhlIHJhbmdlIFswLCBOVU1fQlVGRkVSX1NMT1RTKSwgb3IgYmVjYXVzZSB0aGUgc2xvdAorICAgICAqICAgICAgICAgICAgICAgaXQgcmVmZXJzIHRvIGlzIG5vdCBjdXJyZW50bHkgZGVxdWV1ZWQgYW5kIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBkZXRhY2hCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IHNsb3QKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGV0YWNoTmV4dEJ1ZmZlciBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgZGVxdWV1ZUJ1ZmZlciwgcmVxdWVzdEJ1ZmZlciwKKyAgICAgKiBhbmQgZGV0YWNoQnVmZmVyIGluIHNlcXVlbmNlLCBleGNlcHQgZm9yIHR3byB0aGluZ3M6CisgICAgICoKKyAgICAgKiAxKSBJdCBpcyB1bm5lY2Vzc2FyeSB0byBrbm93IHRoZSBkaW1lbnNpb25zLCBmb3JtYXQsIG9yIHVzYWdlIG9mIHRoZQorICAgICAqICAgIG5leHQgYnVmZmVyLgorICAgICAqIDIpIEl0IHdpbGwgbm90IGJsb2NrLCBzaW5jZSBpZiBpdCBjYW5ub3QgZmluZCBhbiBhcHByb3ByaWF0ZSBidWZmZXIgdG8KKyAgICAgKiAgICByZXR1cm4sIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBPbmx5IHNsb3RzIHRoYXQgYXJlIGZyZWUgYnV0IHN0aWxsIGNvbnRhaW4gYW4gQW53QnVmZmVyIHdpbGwgYmUKKyAgICAgKiBjb25zaWRlcmVkLCBhbmQgdGhlIG9sZGVzdCBvZiB0aG9zZSB3aWxsIGJlIHJldHVybmVkLiBidWZmZXIgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGJ1ZmZlciBmcm9tIHRoZSByZXF1ZXN0QnVmZmVyIGNhbGwsIGFuZCBmZW5jZSBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZmVuY2UgZnJvbSB0aGUgZGVxdWV1ZUJ1ZmZlciBjYWxsLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIGVpdGhlciBvdXRCdWZmZXIgb3Igb3V0RmVuY2Ugd2VyZSBOVUxMLgorICAgICAqICogTk9fTUVNT1JZIC0gbm8gc2xvdHMgd2VyZSBmb3VuZCB0aGF0IHdlcmUgYm90aCBmcmVlIGFuZCBjb250YWluZWQgYQorICAgICAqICAgICAgICAgICAgICAgQW53QnVmZmVyLgorICAgICAqLworICAgIGRldGFjaE5leHRCdWZmZXIoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGF0dGFjaEJ1ZmZlciBhdHRlbXB0cyB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgYSBidWZmZXIgdG8gdGhlIGJ1ZmZlcgorICAgICAqIHF1ZXVlLiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIGl0IHdpbGwgYmUgYXMgaWYgdGhpcyBidWZmZXIgd2FzIGRlcXVldWVkCisgICAgICogZnJvbSB0aGUgcmV0dXJuZWQgc2xvdCBudW1iZXIuIEFzIHN1Y2gsIHRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgYXR0YWNoaW5nCisgICAgICogdGhpcyBidWZmZXIgd291bGQgY2F1c2UgdG9vIG1hbnkgYnVmZmVycyB0byBiZSBzaW11bHRhbmVvdXNseSBkZXF1ZXVlZC4KKyAgICAgKgorICAgICAqIElmIGF0dGFjaEJ1ZmZlciByZXR1cm5zIHRoZSBSRUxFQVNFX0FMTF9CVUZGRVJTIGZsYWcsIHRoZSBjYWxsZXIgaXMKKyAgICAgKiBleHBlY3RlZCB0byByZWxlYXNlIGFsbCBvZiB0aGUgbWlycm9yZWQgc2xvdC0+YnVmZmVyIG1hcHBpbmdzLgorICAgICAqCisgICAgICogQSBub24tbmVnYXRpdmUgdmFsdWUgd2l0aCBmbGFncyBzZXQgKHNlZSBhYm92ZSkgd2lsbCBiZSByZXR1cm5lZCB1cG9uCisgICAgICogc3VjY2Vzcy4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIG5lZ2F0aXZlIHZhbHVlIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb3V0U2xvdCBvciBidWZmZXIgd2VyZSBOVUxMLCBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mCisgICAgICogICAgICAgICAgICAgICBhc3luYyBtb2RlIGFuZCBidWZmZXIgY291bnQgb3ZlcnJpZGUsIG9yIHRoZSBnZW5lcmF0aW9uCisgICAgICogICAgICAgICAgICAgICBudW1iZXIgb2YgdGhlIGJ1ZmZlciBkaWQgbm90IG1hdGNoIHRoZSBidWZmZXIgcXVldWUuCisgICAgICogKiBJTlZBTElEX09QRVJBVElPTiAtIGNhbm5vdCBhdHRhY2ggdGhlIGJ1ZmZlciBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHRvbyBtYW55IGJ1ZmZlcnMgdG8gYmUgZGVxdWV1ZWQsIGVpdGhlciBiZWNhdXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHRoZSBwcm9kdWNlciBhbHJlYWR5IGhhcyBhIHNpbmdsZSBidWZmZXIgZGVxdWV1ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRpZCBub3Qgc2V0IGEgYnVmZmVyIGNvdW50LCBvciBiZWNhdXNlIGEKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIGNvdW50IHdhcyBzZXQgYW5kIHRoaXMgY2FsbCB3b3VsZCBjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBpdCB0byBiZSBleGNlZWRlZC4KKyAgICAgKiAqIFdPVUxEX0JMT0NLIC0gbm8gYnVmZmVyIHNsb3QgaXMgY3VycmVudGx5IGF2YWlsYWJsZSwgYW5kIGJsb2NraW5nIGlzCisgICAgICogICAgICAgICAgICAgICAgIGRpc2FibGVkIHNpbmNlIGJvdGggdGhlIHByb2R1Y2VyL2NvbnN1bWVyIGFyZQorICAgICAqICAgICAgICAgICAgICAgICBjb250cm9sbGVkIGJ5IHRoZSBhcHAuCisgICAgICogKiBUSU1FRF9PVVQgLSB0aGUgdGltZW91dCBzZXQgYnkgc2V0RGVxdWV1ZVRpbWVvdXQgd2FzIGV4Y2VlZGVkIHdoaWxlCisgICAgICogICAgICAgICAgICAgICB3YWl0aW5nIGZvciBhIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBhdHRhY2hCdWZmZXIoCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBpbnQzMl90IHNsb3QKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIHF1ZXVlQnVmZmVyIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgaGFzIGZpbmlzaGVkIGZpbGxpbmcgaW4gdGhlCisgICAgICogY29udGVudHMgb2YgdGhlIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggc2xvdCBhbmQgdHJhbnNmZXJzIG93bmVyc2hpcCBvZgorICAgICAqIHRoYXQgc2xvdCBiYWNrIHRvIHRoZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBJdCBpcyBub3QgdmFsaWQgdG8gY2FsbCBxdWV1ZUJ1ZmZlciBvbiBhIHNsb3QgdGhhdCBpcyBub3Qgb3duZWQKKyAgICAgKiBieSB0aGUgY2xpZW50IG9yIG9uZSBmb3Igd2hpY2ggYSBidWZmZXIgYXNzb2NpYXRlZCB2aWEgcmVxdWVzdEJ1ZmZlcgorICAgICAqIChhbiBhdHRlbXB0IHRvIGRvIHNvIHdpbGwgZmFpbCB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIEJBRF9WQUxVRSkuCisgICAgICoKKyAgICAgKiBJbiBhZGRpdGlvbiwgdGhlIGlucHV0IG11c3QgYmUgZGVzY3JpYmVkIGJ5IHRoZSBjbGllbnQgKGFzIGRvY3VtZW50ZWQKKyAgICAgKiBiZWxvdykuIEFueSBvdGhlciBwcm9wZXJ0aWVzICh6ZXJvIHBvaW50LCBldGMpCisgICAgICogYXJlIGNsaWVudC1kZXBlbmRlbnQsIGFuZCBzaG91bGQgYmUgZG9jdW1lbnRlZCBieSB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlIHNsb3QgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIE5VTV9CVUZGRVJfU0xPVFMpLgorICAgICAqCisgICAgICogVXBvbiBzdWNjZXNzLCB0aGUgb3V0cHV0IHdpbGwgYmUgZmlsbGVkIHdpdGggbWVhbmluZ2Z1bCB2YWx1ZXMKKyAgICAgKiAocmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gYmVsb3cpLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgYmVsb3cgY29uZGl0aW9ucyBvY2N1cnJlZDoKKyAgICAgKiAgICAgICAgICAgICAgKiBmZW5jZSB3YXMgTlVMTAorICAgICAqICAgICAgICAgICAgICAqIHNjYWxpbmcgbW9kZSB3YXMgdW5rbm93bgorICAgICAqICAgICAgICAgICAgICAqIGJvdGggaW4gYXN5bmMgbW9kZSBhbmQgYnVmZmVyIGNvdW50IHdhcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgICAgbWF4IG51bWJlcnMgb2YgYnVmZmVycyB0aGF0IGNhbiBiZSBhbGxvY2F0ZWQgYXQgb25jZQorICAgICAqICAgICAgICAgICAgICAqIHNsb3QgaW5kZXggd2FzIG91dCBvZiByYW5nZSAoc2VlIGFib3ZlKS4KKyAgICAgKiAgICAgICAgICAgICAgKiB0aGUgc2xvdCB3YXMgbm90IGluIHRoZSBkZXF1ZXVlZCBzdGF0ZQorICAgICAqICAgICAgICAgICAgICAqIHRoZSBzbG90IHdhcyBlbnF1ZXVlZCB3aXRob3V0IHJlcXVlc3RpbmcgYSBidWZmZXIKKyAgICAgKiAgICAgICAgICAgICAgKiBjcm9wIHJlY3QgaXMgb3V0IG9mIGJvdW5kcyBvZiB0aGUgYnVmZmVyIGRpbWVuc2lvbnMKKyAgICAgKi8KKyAgICBxdWV1ZUJ1ZmZlcigKKyAgICAgICAgICAgIGludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVySW5wdXQgaW5wdXQKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogY2FuY2VsQnVmZmVyIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgZG9lcyBub3Qgd2lzaCB0byBmaWxsIGluIHRoZQorICAgICAqIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggc2xvdCBhbmQgdHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgc2xvdCBiYWNrIHRvCisgICAgICogdGhlIHNlcnZlci4KKyAgICAgKgorICAgICAqIFRoZSBidWZmZXIgaXMgbm90IHF1ZXVlZCBmb3IgdXNlIGJ5IHRoZSBjb25zdW1lci4KKyAgICAgKgorICAgICAqIFRoZSBzbG90IG11c3QgYmUgaW4gdGhlIHJhbmdlIG9mIFswLCBOVU1fQlVGRkVSX1NMT1RTKS4KKyAgICAgKgorICAgICAqIFRoZSBidWZmZXIgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW4gdW50aWwgdGhlIGZlbmNlIHNpZ25hbHMuICBUaGUgZmVuY2UKKyAgICAgKiB3aWxsIHVzdWFsbHkgYmUgdGhlIG9uZSBvYnRhaW5lZCBmcm9tIGRlcXVldWVCdWZmZXIuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBiZWxvdyBjb25kaXRpb25zIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICAqIGZlbmNlIHdhcyBOVUxMCisgICAgICogICAgICAgICAgICAgICogc2xvdCBpbmRleCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpLgorICAgICAqICAgICAgICAgICAgICAqIHRoZSBzbG90IHdhcyBub3QgaW4gdGhlIGRlcXVldWVkIHN0YXRlCisgICAgICovCisgICAgY2FuY2VsQnVmZmVyKAorICAgICAgICAgICAgaW50MzJfdCBzbG90LAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogcXVlcnkgcmV0cmlldmVzIHNvbWUgaW5mb3JtYXRpb24gZm9yIHRoaXMgc3VyZmFjZQorICAgICAqICd3aGF0JyB0b2tlbnMgYWxsb3dlZCBhcmUgdGhhdCBvZiBOQVRJVkVfV0lORE9XXyogaW4gPHdpbmRvdy5oPgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQuCisgICAgICogKiBCQURfVkFMVUUgLSB3aGF0IHdhcyBvdXQgb2YgcmFuZ2UKKyAgICAgKi8KKyAgICBxdWVyeSgKKyAgICAgICAgICAgIGludDMyX3Qgd2hhdAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBpbnQzMl90IHJlc3VsdCwKKyAgICAgICAgICAgIGludDMyX3QgdmFsdWUKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGNvbm5lY3QgYXR0ZW1wdHMgdG8gY29ubmVjdCBhIGNsaWVudCBBUEkgdG8gdGhlIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuCisgICAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgbWV0aG9kcyBhcmUKKyAgICAgKiBjYWxsZWQgZXhjZXB0IGZvciBnZXRBbGxvY2F0b3IuIEEgY29uc3VtZXIgbXVzdCBiZSBhbHJlYWR5IGNvbm5lY3RlZC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZmFpbCBpZiB0aGUgY29ubmVjdCB3YXMgcHJldmlvdXNseSBjYWxsZWQgb24gdGhlCisgICAgICogSUdyYXBoaWNCdWZmZXJQcm9kdWNlciBhbmQgbm8gY29ycmVzcG9uZGluZyBkaXNjb25uZWN0IGNhbGwgd2FzIG1hZGUuCisgICAgICoKKyAgICAgKiBUaGUgbGlzdGVuZXIgaXMgYW4gb3B0aW9uYWwgYmluZGVyIGNhbGxiYWNrIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGlmCisgICAgICogdGhlIHByb2R1Y2VyIHdhbnRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGNvbnN1bWVyIHJlbGVhc2VzIGEgYnVmZmVyCisgICAgICogYmFjayB0byB0aGUgQnVmZmVyUXVldWUuIEl0IGlzIGFsc28gdXNlZCB0byBkZXRlY3QgdGhlIGRlYXRoIG9mIHRoZQorICAgICAqIHByb2R1Y2VyLiBJZiBvbmx5IHRoZSBsYXR0ZXIgZnVuY3Rpb25hbGl0eSBpcyBkZXNpcmVkLCB0aGVyZSBpcyBhCisgICAgICogRHVtbXlQcm9kdWNlckxpc3RlbmVyIGNsYXNzIGluIElQcm9kdWNlckxpc3RlbmVyLmggdGhhdCBjYW4gYmUgdXNlZC4KKyAgICAgKgorICAgICAqIFRoZSBhcGkgc2hvdWxkIGJlIG9uZSBvZiB0aGUgTkFUSVZFX1dJTkRPV19BUElfKiB2YWx1ZXMgaW4gPHdpbmRvdy5oPgorICAgICAqCisgICAgICogVGhlIHByb2R1Y2VyQ29udHJvbGxlZEJ5QXBwIHNob3VsZCBiZSBzZXQgdG8gdHJ1ZSBpZiB0aGUgcHJvZHVjZXIgaXMgaG9zdGVkCisgICAgICogYnkgYW4gdW50cnVzdGVkIHByb2Nlc3MgKHR5cGljYWxseSBhcHBfcHJvY2Vzcy1mb3JrZWQgcHJvY2Vzc2VzKS4gSWYgYm90aAorICAgICAqIHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnN1bWVyIGFyZSBhcHAtY29udHJvbGxlZCB0aGVuIGFsbCBidWZmZXIgcXVldWVzCisgICAgICogd2lsbCBvcGVyYXRlIGluIGFzeW5jIG1vZGUgcmVnYXJkbGVzcyBvZiB0aGUgYXN5bmMgZmxhZy4KKyAgICAgKgorICAgICAqIFVwb24gc3VjY2VzcywgdGhlIG91dHB1dCB3aWxsIGJlIGZpbGxlZCB3aXRoIG1lYW5pbmdmdWwgZGF0YQorICAgICAqIChyZWZlciB0byBRdWV1ZUJ1ZmZlck91dHB1dCBkb2N1bWVudGF0aW9uIGFib3ZlKS4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIHZhbHVlIG90aGVyIHRoYW4gTk9fRVJST1IgbWVhbnMgYW4gZXJyb3IgaGFzIG9jY3VycmVkOgorICAgICAqICogTk9fSU5JVCAtIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhlIGJ1ZmZlciBxdWV1ZSB3YXMgYWJhbmRvbmVkCisgICAgICogICAgICAgICAgICAgKiBubyBjb25zdW1lciBoYXMgeWV0IGNvbm5lY3RlZAorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBmb2xsb3dpbmcgaGFzIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhlIHByb2R1Y2VyIGlzIGFscmVhZHkgY29ubmVjdGVkCisgICAgICogICAgICAgICAgICAgKiBhcGkgd2FzIG91dCBvZiByYW5nZSAoc2VlIGFib3ZlKS4KKyAgICAgKiAgICAgICAgICAgICAqIG91dHB1dCB3YXMgTlVMTC4KKyAgICAgKiAgICAgICAgICAgICAqIEZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLiBUaGlzIGNhbgorICAgICAqICAgICAgICAgICAgICAgaGFwcGVuIGJlY2F1c2Ugb2YgdHJ5aW5nIHRvIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIGFzeW5jCisgICAgICogICAgICAgICAgICAgICBidWZmZXIgaW4gcmVzcG9uc2UgdG8gdGhlIHZhbHVlIG9mIHByb2R1Y2VyQ29udHJvbGxlZEJ5QXBwLgorICAgICAqICogREVBRF9PQkpFQ1QgLSB0aGUgdG9rZW4gaXMgaG9zdGVkIGJ5IGFuIGFscmVhZHktZGVhZCBwcm9jZXNzCisgICAgICoKKyAgICAgKiBBZGRpdGlvbmFsIG5lZ2F0aXZlIGVycm9ycyBtYXkgYmUgcmV0dXJuZWQgYnkgdGhlIGludGVybmFscywgdGhleQorICAgICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIG9wYXF1ZSBmYXRhbCB1bnJlY292ZXJhYmxlIGVycm9ycy4KKyAgICAgKi8KKyAgICBjb25uZWN0KAorICAgICAgICAgICAgSVByb2R1Y2VyTGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICBpbnQzMl90IGFwaSwKKyAgICAgICAgICAgIGJvb2wgcHJvZHVjZXJDb250cm9sbGVkQnlBcHAKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGlzY29ubmVjdCBhdHRlbXB0cyB0byBkaXNjb25uZWN0IGEgY2xpZW50IEFQSSBmcm9tIHRoZQorICAgICAqIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuICBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgY2F1c2UgYW55IHN1YnNlcXVlbnQKKyAgICAgKiBjYWxscyB0byBvdGhlciBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyIG1ldGhvZHMgdG8gZmFpbCBleGNlcHQgZm9yCisgICAgICogZ2V0QWxsb2NhdG9yIGFuZCBjb25uZWN0LiAgU3VjY2Vzc2Z1bGx5IGNhbGxpbmcgY29ubmVjdCBhZnRlciB0aGlzIHdpbGwKKyAgICAgKiBhbGxvdyB0aGUgb3RoZXIgbWV0aG9kcyB0byBzdWNjZWVkIGFnYWluLgorICAgICAqCisgICAgICogVGhlIGFwaSBzaG91bGQgYmUgb25lIG9mIHRoZSBOQVRJVkVfV0lORE9XX0FQSV8qIHZhbHVlcyBpbiA8d2luZG93Lmg+CisgICAgICoKKyAgICAgKiBBbHRlcm5hdGl2ZWx5IGlmIG1vZGUgaXMgQWxsTG9jYWwsIHRoZW4gdGhlIEFQSSB2YWx1ZSBpcyBpZ25vcmVkLCBhbmQgYW55IEFQSQorICAgICAqIGNvbm5lY3RlZCBmcm9tIHRoZSBzYW1lIFBJRCBjYWxsaW5nIGRpc2Nvbm5lY3Qgd2lsbCBiZSBkaXNjb25uZWN0ZWQuCisgICAgICoKKyAgICAgKiBEaXNjb25uZWN0aW5nIGZyb20gYW4gYWJhbmRvbmVkIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgaXMgbGVnYWwgYW5kCisgICAgICogaXMgY29uc2lkZXJlZCBhIG5vLW9wLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBCQURfVkFMVUUgLSBvbmUgb2YgdGhlIGZvbGxvd2luZyBoYXMgb2NjdXJyZWQ6CisgICAgICogICAgICAgICAgICAgKiB0aGUgYXBpIHNwZWNpZmllZCBkb2VzIG5vdCBtYXRjaCB0aGUgb25lIHRoYXQgd2FzIGNvbm5lY3RlZAorICAgICAqICAgICAgICAgICAgICogYXBpIHdhcyBvdXQgb2YgcmFuZ2UgKHNlZSBhYm92ZSkuCisgICAgICogKiBERUFEX09CSkVDVCAtIHRoZSB0b2tlbiBpcyBob3N0ZWQgYnkgYW4gYWxyZWFkeS1kZWFkIHByb2Nlc3MKKyAgICAgKi8KKyAgICBkaXNjb25uZWN0KAorICAgICAgICAgICAgaW50MzJfdCBhcGksCisgICAgICAgICAgICBEaXNjb25uZWN0TW9kZSBtb2RlIC8qKiA9IERpc2Nvbm5lY3RNb2RlOjpBUEkgKi8KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQXR0YWNoZXMgYSBzaWRlYmFuZCBidWZmZXIgc3RyZWFtIHRvIHRoZSBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyLgorICAgICAqCisgICAgICogQSBzaWRlYmFuZCBzdHJlYW0gaXMgYSBkZXZpY2Utc3BlY2lmaWMgbWVjaGFuaXNtIGZvciBwYXNzaW5nIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgY29uc3VtZXIgd2l0aG91dCB1c2luZyBkZXF1ZXVlQnVmZmVyLworICAgICAqIHF1ZXVlQnVmZmVyLiBJZiBhIHNpZGViYW5kIHN0cmVhbSBpcyBwcmVzZW50LCB0aGUgY29uc3VtZXIgY2FuIGNob29zZQorICAgICAqIHdoZXRoZXIgdG8gYWNxdWlyZSBidWZmZXJzIGZyb20gdGhlIHNpZGViYW5kIHN0cmVhbSBvciBmcm9tIHRoZSBxdWV1ZWQKKyAgICAgKiBidWZmZXJzLgorICAgICAqCisgICAgICogUGFzc2luZyBOVUxMIG9yIGEgZGlmZmVyZW50IHN0cmVhbSBoYW5kbGUgd2lsbCBkZXRhY2ggdGhlIHByZXZpb3VzCisgICAgICogaGFuZGxlIGlmIGFueS4KKyAgICAgKi8KKyAgICBzZXRTaWRlYmFuZFN0cmVhbSgKKyAgICAgICAgICAgIGhhbmRsZSBzdHJlYW0KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWxsb2NhdGVzIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGdpdmVuIGRpbWVuc2lvbnMvZm9ybWF0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGFsbG9jYXRlIHVwIHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzCisgICAgICogcGVybWl0dGVkIGJ5IHRoZSBjdXJyZW50IEJ1ZmZlclF1ZXVlIGNvbmZpZ3VyYXRpb24uIEl0IHdpbGwgdXNlIHRoZQorICAgICAqIGdpdmVuIGZvcm1hdCwgZGltZW5zaW9ucywgYW5kIHVzYWdlIGJpdHMsIHdoaWNoIGFyZSBpbnRlcnByZXRlZCBpbiB0aGUKKyAgICAgKiBzYW1lIHdheSBhcyBmb3IgZGVxdWV1ZUJ1ZmZlciwgYW5kIHRoZSBhc3luYyBmbGFnIG11c3QgYmUgc2V0IHRoZSBzYW1lCisgICAgICogd2F5IGFzIGZvciBkZXF1ZXVlQnVmZmVyIHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IG51bWJlciBvZiBidWZmZXJzIGFyZQorICAgICAqIGFsbG9jYXRlZC4gVGhpcyBpcyBtb3N0IHVzZWZ1bCB0byBhdm9pZCBhbiBhbGxvY2F0aW9uIGRlbGF5IGR1cmluZworICAgICAqIGRlcXVldWVCdWZmZXIuIElmIHRoZXJlIGFyZSBhbHJlYWR5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzCisgICAgICogYWxsb2NhdGVkLCB0aGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3QuCisgICAgICovCisgICAgYWxsb2NhdGVCdWZmZXJzKAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICB1aW50MzJfdCB1c2FnZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIGRlcXVldWVCdWZmZXIgaXMgYWxsb3dlZCB0byBhbGxvY2F0ZSBuZXcgYnVmZmVycy4KKyAgICAgKgorICAgICAqIE5vcm1hbGx5IGRlcXVldWVCdWZmZXIgZG9lcyBub3QgZGlzY3JpbWluYXRlIGJldHdlZW4gZnJlZSBzbG90cyB3aGljaAorICAgICAqIGFscmVhZHkgaGF2ZSBhbiBhbGxvY2F0ZWQgYnVmZmVyIGFuZCB0aG9zZSB3aGljaCBkbyBub3QsIGFuZCB3aWxsCisgICAgICogYWxsb2NhdGUgYSBuZXcgYnVmZmVyIGlmIHRoZSBzbG90IGRvZXNuJ3QgaGF2ZSBhIGJ1ZmZlciBvciBpZiB0aGUgc2xvdCdzCisgICAgICogYnVmZmVyIGRvZXNuJ3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzaXplLCBmb3JtYXQsIG9yIHVzYWdlLiBUaGlzIG1ldGhvZAorICAgICAqIGFsbG93cyB0aGUgcHJvZHVjZXIgdG8gcmVzdHJpY3QgdGhlIGVsaWdpYmxlIHNsb3RzIHRvIHRob3NlIHdoaWNoIGFscmVhZHkKKyAgICAgKiBoYXZlIGFuIGFsbG9jYXRlZCBidWZmZXIgb2YgdGhlIGNvcnJlY3Qgc2l6ZSwgZm9ybWF0LCBhbmQgdXNhZ2UuIElmIG5vCisgICAgICogZWxpZ2libGUgc2xvdCBpcyBhdmFpbGFibGUsIGRlcXVldWVCdWZmZXIgd2lsbCBibG9jayBvciByZXR1cm4gYW4gZXJyb3IKKyAgICAgKiBhcyB1c3VhbC4KKyAgICAgKi8KKyAgICBhbGxvd0FsbG9jYXRpb24oCisgICAgICAgICAgICBib29sIGFsbG93CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBudW1iZXIgb2YgdGhlIEJ1ZmZlclF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBnZW5lcmF0aW9uIG51bWJlciB3aWxsIGJlIGluc2VydGVkIGludG8gYW55IGJ1ZmZlcnMgYWxsb2NhdGVkIGJ5IHRoZQorICAgICAqIEJ1ZmZlclF1ZXVlLCBhbmQgYW55IGF0dGVtcHRzIHRvIGF0dGFjaCBhIGJ1ZmZlciB3aXRoIGEgZGlmZmVyZW50CisgICAgICogZ2VuZXJhdGlvbiBudW1iZXIgd2lsbCBmYWlsLiBCdWZmZXJzIGFscmVhZHkgaW4gdGhlIHF1ZXVlIGFyZSBub3QKKyAgICAgKiBhZmZlY3RlZCBhbmQgd2lsbCByZXRhaW4gdGhlaXIgY3VycmVudCBnZW5lcmF0aW9uIG51bWJlci4gVGhlIGdlbmVyYXRpb24KKyAgICAgKiBudW1iZXIgZGVmYXVsdHMgdG8gMC4KKyAgICAgKi8KKyAgICBzZXRHZW5lcmF0aW9uTnVtYmVyKAorICAgICAgICAgICAgdWludDMyX3QgZ2VuZXJhdGlvbk51bWJlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjb25uZWN0ZWQgY29uc3VtZXIuCisgICAgICovCisgICAgZ2V0Q29uc3VtZXJOYW1lKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBzdHJpbmcgbmFtZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogVXNlZCB0byBlbmFibGUvZGlzYWJsZSBzaGFyZWQgYnVmZmVyIG1vZGUuCisgICAgICoKKyAgICAgKiBXaGVuIHNoYXJlZCBidWZmZXIgbW9kZSBpcyBlbmFibGVkIHRoZSBmaXJzdCBidWZmZXIgdGhhdCBpcyBxdWV1ZWQgb3IKKyAgICAgKiBkZXF1ZXVlZCB3aWxsIGJlIGNhY2hlZCBhbmQgcmV0dXJuZWQgdG8gYWxsIHN1YnNlcXVlbnQgY2FsbHMgdG8KKyAgICAgKiBkZXF1ZXVlQnVmZmVyIGFuZCBhY3F1aXJlQnVmZmVyLiBUaGlzIGFsbG93cyB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHRvCisgICAgICogc2ltdWx0YW5lb3VzbHkgYWNjZXNzIHRoZSBzYW1lIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBzZXRTaGFyZWRCdWZmZXJNb2RlKAorICAgICAgICAgICAgYm9vbCBzaGFyZWRCdWZmZXJNb2RlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgYXV0by1yZWZyZXNoLgorICAgICAqCisgICAgICogQXV0byByZWZyZXNoIGhhcyBubyBlZmZlY3Qgb3V0c2lkZSBvZiBzaGFyZWQgYnVmZmVyIG1vZGUuIEluIHNoYXJlZAorICAgICAqIGJ1ZmZlciBtb2RlLCB3aGVuIGVuYWJsZWQsIGl0IGluZGljYXRlcyB0byB0aGUgY29uc3VtZXIgdGhhdCBpdCBzaG91bGQKKyAgICAgKiBhdHRlbXB0IHRvIGFjcXVpcmUgYnVmZmVycyBldmVuIGlmIGl0IGlzIG5vdCBhd2FyZSBvZiBhbnkgYmVpbmcKKyAgICAgKiBhdmFpbGFibGUuCisgICAgICovCisgICAgc2V0QXV0b1JlZnJlc2goCisgICAgICAgICAgICBib29sIGF1dG9SZWZyZXNoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldHMgaG93IGxvbmcgZGVxdWV1ZUJ1ZmZlciB3aWxsIHdhaXQgZm9yIGEgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUKKyAgICAgKiBiZWZvcmUgcmV0dXJuaW5nIGFuIGVycm9yIChUSU1FRF9PVVQpLgorICAgICAqCisgICAgICogVGhpcyB0aW1lb3V0IGFsc28gYWZmZWN0cyB0aGUgYXR0YWNoQnVmZmVyIGNhbGwsIHdoaWNoIHdpbGwgYmxvY2sgaWYKKyAgICAgKiB0aGVyZSBpcyBub3QgYSBmcmVlIHNsb3QgYXZhaWxhYmxlIGludG8gd2hpY2ggdGhlIGF0dGFjaGVkIGJ1ZmZlciBjYW4gYmUKKyAgICAgKiBwbGFjZWQuCisgICAgICoKKyAgICAgKiBCeSBkZWZhdWx0LCB0aGUgQnVmZmVyUXVldWUgd2lsbCB3YWl0IGZvcmV2ZXIsIHdoaWNoIGlzIGluZGljYXRlZCBieSBhCisgICAgICogdGltZW91dCBvZiAtMS4gSWYgc2V0ICh0byBhIHZhbHVlIG90aGVyIHRoYW4gLTEpLCB0aGlzIHdpbGwgZGlzYWJsZQorICAgICAqIG5vbi1ibG9ja2luZyBtb2RlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBzcGFyZSBidWZmZXIgKHdoaWNoIGlzIHVzZWQgdG8KKyAgICAgKiBlbnN1cmUgYSBidWZmZXIgaXMgYWx3YXlzIGF2YWlsYWJsZSkuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIEJBRF9WQUxVRSAtIEZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLiBUaGlzIGNhbgorICAgICAqICAgICAgICAgICAgICAgaGFwcGVuIGJlY2F1c2Ugb2YgdHJ5aW5nIHRvIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIGFzeW5jCisgICAgICogICAgICAgICAgICAgICBidWZmZXIuCisgICAgICovCisgICAgc2V0RGVxdWV1ZVRpbWVvdXQoCisgICAgICAgICAgICBpbnQ2NF90IHRpbWVvdXROcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IHF1ZXVlZCBidWZmZXIgYWxvbmcgd2l0aCBhIGZlbmNlIHdoaWNoIG11c3Qgc2lnbmFsCisgICAgICogYmVmb3JlIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIGFyZSByZWFkLiBJZiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbgorICAgICAqIHRoZSBxdWV1ZSwgYnVmZmVyLm5hdGl2ZUhhbmRsZSBhbmQgZmVuY2Ugd2lsbCBiZSBudWxsIGhhbmRsZXMuCisgICAgICoKKyAgICAgKiB0cmFuc2Zvcm1NYXRyaXggaXMgbWVhbmluZ2xlc3MgaWYgYnVmZmVyLm5hdGl2ZUhhbmRsZSBpcyBudWxsLgorICAgICAqLworICAgIGdldExhc3RRdWV1ZWRCdWZmZXIoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UsCisgICAgICAgICAgICBmbG9hdFsxNl0gdHJhbnNmb3JtTWF0cml4CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmcmFtZSBldmVudHMgdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiByZXRyaWV2ZWQuCisgICAgICovCisgICAgZ2V0RnJhbWVUaW1lc3RhbXBzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIHRpbWVTdGFtcHMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgaWQgZm9yIHRoaXMgQnVmZmVyUXVldWUuCisgICAgICovCisgICAgZ2V0VW5pcXVlSWQoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50NjRfdCBvdXRJZAorICAgICAgICApOworCit9OworCisKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JUHJvZHVjZXJMaXN0ZW5lci5oYWwgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmE1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaGFsCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvSVByb2R1Y2VyTGlzdGVuZXIuaDogSVByb2R1Y2VyTGlzdGVuZXIKKyAqIFRoaXMgaXMgYSB3cmFwcGVyL3dyYXBwZWQgSEFMIGludGVyZmFjZSBmb3IgdGhlIGFjdHVhbCBiaW5kZXIgaW50ZXJmYWNlLgorICovCitpbnRlcmZhY2UgSVByb2R1Y2VyTGlzdGVuZXIgeworICAgIG9uZXdheSBvbkJ1ZmZlclJlbGVhc2VkKCk7CisgICAgbmVlZHNSZWxlYXNlTm90aWZ5KCkgZ2VuZXJhdGVzIChib29sIHJlc3VsdCk7Cit9OworCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21tb24vMS4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9jb21tb24vMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q5YWE5MAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi8xLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjlhNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tbW9uLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzI5IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJ1ZmZlclVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9CdWZmZXJVc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuQnVmZmVyVXNhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbG9yTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvQ29sb3JNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5Db2xvck1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbG9yVHJhbnNmb3JtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db2xvclRyYW5zZm9ybS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuQ29sb3JUcmFuc2Zvcm0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKERhdGFzcGFjZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvRGF0YXNwYWNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5EYXRhc3BhY2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvSGRyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5IZHIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBpeGVsRm9ybWF0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9QaXhlbEZvcm1hdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuUGl4ZWxGb3JtYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zZm9ybSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvVHJhbnNmb3JtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5UcmFuc2Zvcm0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24tVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnVmZmVyVXNhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL0J1ZmZlclVzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5CdWZmZXJVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29sb3JNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db2xvck1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkNvbG9yTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29sb3JUcmFuc2Zvcm0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL0NvbG9yVHJhbnNmb3JtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5Db2xvclRyYW5zZm9ybQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGF0YXNwYWNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9EYXRhc3BhY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkRhdGFzcGFjZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9IZHIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkhkcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUGl4ZWxGb3JtYXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL1BpeGVsRm9ybWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5QaXhlbEZvcm1hdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVHJhbnNmb3JtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9UcmFuc2Zvcm0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLlRyYW5zZm9ybQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24tVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oYWwgYi9ncmFwaGljcy9jb21tb24vMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzY5ZmFkCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA7CisKKy8qKgorICogQ29tbW9uIGVudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBncmFwaGljcyBIQUxzLgorICovCisKKy8qKgorICogUGl4ZWwgZm9ybWF0cyBmb3IgZ3JhcGhpY3MgYnVmZmVycy4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX3BpeGVsX2Zvcm1hdF90IiwgdmFsdWVfcHJlZml4PSJIQUxfUElYRUxfRk9STUFUXyIpCitlbnVtIFBpeGVsRm9ybWF0IDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogMzItYml0IGZvcm1hdCB0aGF0IGhhcyA4LWJpdCBSLCBHLCBCLCBhbmQgQSBjb21wb25lbnRzLCBpbiB0aGF0IG9yZGVyLAorICAgICAqIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQkFfODg4OCAgICAgICAgICA9IDB4MSwKKworICAgIC8qKgorICAgICAqIDMyLWJpdCBmb3JtYXQgdGhhdCBoYXMgOC1iaXQgUiwgRywgQiwgYW5kIHVudXNlZCBjb21wb25lbnRzLCBpbiB0aGF0CisgICAgICogb3JkZXIsIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQlhfODg4OCAgICAgICAgICA9IDB4MiwKKworICAgIC8qKgorICAgICAqIDI0LWJpdCBmb3JtYXQgdGhhdCBoYXMgOC1iaXQgUiwgRywgYW5kIEIgY29tcG9uZW50cywgaW4gdGhhdCBvcmRlciwKKyAgICAgKiBmcm9tIHRoZSBsb3dlc3QgbWVtb3J5IGFkZHJlc3MgdG8gdGhlIGhpZ2hlc3QgbWVtb3J5IGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBUaGUgY29tcG9uZW50IHZhbHVlcyBhcmUgdW5zaWduZWQgbm9ybWFsaXplZCB0byB0aGUgcmFuZ2UgWzAsIDFdLCB3aG9zZQorICAgICAqIGludGVycHJldGF0aW9uIGlzIGRlZmluZWQgYnkgdGhlIGRhdGFzcGFjZS4KKyAgICAgKi8KKyAgICBSR0JfODg4ICAgICAgICAgICAgPSAweDMsCisKKyAgICAvKioKKyAgICAgKiAxNi1iaXQgcGFja2VkIGZvcm1hdCB0aGF0IGhhcyA1LWJpdCBSLCA2LWJpdCBHLCBhbmQgNS1iaXQgQiBjb21wb25lbnRzLAorICAgICAqIGluIHRoYXQgb3JkZXIsIGZyb20gdGhlIG1vc3Qtc2lnZmluaWNhbnQgYml0cyB0byB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKyAgICAgKiBiaXRzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgUkdCXzU2NSAgICAgICAgICAgID0gMHg0LAorCisgICAgLyoqCisgICAgICogMzItYml0IGZvcm1hdCB0aGF0IGhhcyA4LWJpdCBCLCBHLCBSLCBhbmQgQSBjb21wb25lbnRzLCBpbiB0aGF0IG9yZGVyLAorICAgICAqIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIEJHUkFfODg4OCAgICAgICAgICA9IDB4NSwKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBmb3JtYXRzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgWUNCQ1JfNDIwXzg4OC4KKyAgICAgKi8KKyAgICBZQ0JDUl80MjJfU1AgICAgICAgPSAweDEwLCAgLy8gTlYxNgorICAgIFlDUkNCXzQyMF9TUCAgICAgICA9IDB4MTEsICAvLyBOVjIxCisgICAgWUNCQ1JfNDIyX0kgICAgICAgID0gMHgxNCwgIC8vIFlVWTIKKworICAgIC8qKgorICAgICAqIDY0LWJpdCBmb3JtYXQgdGhhdCBoYXMgMTYtYml0IFIsIEcsIEIsIGFuZCBBIGNvbXBvbmVudHMsIGluIHRoYXQgb3JkZXIsCisgICAgICogZnJvbSB0aGUgbG93ZXN0IG1lbW9yeSBhZGRyZXNzIHRvIHRoZSBoaWdoZXN0IG1lbW9yeSBhZGRyZXNzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHNpZ25lZCBmbG9hdHMsIHdob3NlIGludGVycHJldGF0aW9uIGlzIGRlZmluZWQKKyAgICAgKiBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQkFfRlAxNiAgICAgICAgICA9IDB4MTYsCisKKyAgICAvKioKKyAgICAgKiBSQVcxNiBpcyBhIHNpbmdsZS1jaGFubmVsLCAxNi1iaXQsIGxpdHRsZSBlbmRpYW4gZm9ybWF0LCB0eXBpY2FsbHkKKyAgICAgKiByZXByZXNlbnRpbmcgcmF3IEJheWVyLXBhdHRlcm4gaW1hZ2VzIGZyb20gYW4gaW1hZ2Ugc2Vuc29yLCB3aXRoIG1pbmltYWwKKyAgICAgKiBwcm9jZXNzaW5nLgorICAgICAqCisgICAgICogVGhlIGV4YWN0IHBpeGVsIGxheW91dCBvZiB0aGUgZGF0YSBpbiB0aGUgYnVmZmVyIGlzIHNlbnNvci1kZXBlbmRlbnQsIGFuZAorICAgICAqIG5lZWRzIHRvIGJlIHF1ZXJpZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKgorICAgICAqIEdlbmVyYWxseSwgbm90IGFsbCAxNiBiaXRzIGFyZSB1c2VkOyBtb3JlIGNvbW1vbiB2YWx1ZXMgYXJlIDEwIG9yIDEyCisgICAgICogYml0cy4gSWYgbm90IGFsbCBiaXRzIGFyZSB1c2VkLCB0aGUgbG93ZXItb3JkZXIgYml0cyBhcmUgZmlsbGVkIGZpcnN0LgorICAgICAqIEFsbCBwYXJhbWV0ZXJzIHRvIGludGVycHJldCB0aGUgcmF3IGRhdGEgKGJsYWNrIGFuZCB3aGl0ZSBwb2ludHMsCisgICAgICogY29sb3Igc3BhY2UsIGV0YykgbXVzdCBiZSBxdWVyaWVkIGZyb20gdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBhc3N1bWVzCisgICAgICogLSBhbiBldmVuIHdpZHRoCisgICAgICogLSBhbiBldmVuIGhlaWdodAorICAgICAqIC0gYSBob3Jpem9udGFsIHN0cmlkZSBtdWx0aXBsZSBvZiAxNiBwaXhlbHMKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKiAtIHN0cmlkZXMgYXJlIHNwZWNpZmllZCBpbiBwaXhlbHMsIG5vdCBpbiBieXRlcworICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0ICogMgorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgbXVzdCBiZSBhY2NlcHRlZCBieSB0aGUgYWxsb2NhdG9yIHdoZW4gdXNlZCB3aXRoIHRoZQorICAgICAqIGZvbGxvd2luZyB1c2FnZSBmbGFnczoKKyAgICAgKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNBTUVSQV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q1BVXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpSRU5ERVJTQ1JJUFQKKyAgICAgKgorICAgICAqIFRoZSBtYXBwaW5nIG9mIHRoZSBkYXRhc3BhY2UgdG8gYnVmZmVyIGNvbnRlbnRzIGZvciBSQVcxNiBpcyBhcworICAgICAqIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiAgRGF0YXNwYWNlIHZhbHVlICAgICAgICAgICAgICAgfCBCdWZmZXIgY29udGVudHMKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogIERhdGFzcGFjZTo6QVJCSVRSQVJZICAgICAgICAgIHwgUmF3IGltYWdlIHNlbnNvciBkYXRhLCBsYXlvdXQgaXMgYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZpbmVkIGFib3ZlLgorICAgICAqICBEYXRhc3BhY2U6OkRFUFRIICAgICAgICAgICAgICB8IFVucHJvY2Vzc2VkIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCByYXcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZXB0aCBtZWFzdXJlbWVudHMsIG9wYXF1ZSB3aXRoIDE2IGJpdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNhbXBsZXMuCisgICAgICogIE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgVW5zdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQVcxNiAgICAgICAgICAgICAgPSAweDIwLAorCisgICAgLyoqCisgICAgICogQkxPQiBpcyB1c2VkIHRvIGNhcnJ5IHRhc2stc3BlY2lmaWMgZGF0YSB3aGljaCBkb2VzIG5vdCBoYXZlIGEgc3RhbmRhcmQKKyAgICAgKiBpbWFnZSBzdHJ1Y3R1cmUuIFRoZSBkZXRhaWxzIG9mIHRoZSBmb3JtYXQgYXJlIGxlZnQgdG8gdGhlIHR3bworICAgICAqIGVuZHBvaW50cy4KKyAgICAgKgorICAgICAqIEEgdHlwaWNhbCB1c2UgY2FzZSBpcyBmb3IgdHJhbnNwb3J0aW5nIEpQRUctY29tcHJlc3NlZCBpbWFnZXMgZnJvbSB0aGUKKyAgICAgKiBDYW1lcmEgSEFMIHRvIHRoZSBmcmFtZXdvcmsgb3IgdG8gYXBwbGljYXRpb25zLgorICAgICAqCisgICAgICogQnVmZmVycyBvZiB0aGlzIGZvcm1hdCBtdXN0IGhhdmUgYSBoZWlnaHQgb2YgMSwgYW5kIHdpZHRoIGVxdWFsIHRvIHRoZWlyCisgICAgICogc2l6ZSBpbiBieXRlcy4KKyAgICAgKgorICAgICAqIFRoZSBtYXBwaW5nIG9mIHRoZSBkYXRhc3BhY2UgdG8gYnVmZmVyIGNvbnRlbnRzIGZvciBCTE9CIGlzIGFzCisgICAgICogZm9sbG93czoKKyAgICAgKgorICAgICAqICBEYXRhc3BhY2UgdmFsdWUgICAgICAgICAgICAgICB8IEJ1ZmZlciBjb250ZW50cworICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAgRGF0YXNwYWNlOjpKRklGICAgICAgICAgICAgICAgfCBBbiBlbmNvZGVkIEpQRUcgaW1hZ2UKKyAgICAgKiAgRGF0YXNwYWNlOjpERVBUSCAgICAgICAgICAgICAgfCBBbiBhbmRyb2lkX2RlcHRoX3BvaW50cyBidWZmZXIKKyAgICAgKiAgRGF0YXNwYWNlOjpTRU5TT1IgICAgICAgICAgICAgfCBTZW5zb3IgZXZlbnQgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIEJMT0IgICAgICAgICAgICAgICA9IDB4MjEsCisKKyAgICAvKioKKyAgICAgKiBBIGZvcm1hdCBpbmRpY2F0aW5nIHRoYXQgdGhlIGNob2ljZSBvZiBmb3JtYXQgaXMgZW50aXJlbHkgdXAgdG8gdGhlCisgICAgICogYWxsb2NhdG9yLgorICAgICAqCisgICAgICogVGhlIGFsbG9jYXRvciBzaG91bGQgZXhhbWluZSB0aGUgdXNhZ2UgYml0cyBwYXNzZWQgaW4gd2hlbiBhbGxvY2F0aW5nIGEKKyAgICAgKiBidWZmZXIgd2l0aCB0aGlzIGZvcm1hdCwgYW5kIGl0IHNob3VsZCBkZXJpdmUgdGhlIHBpeGVsIGZvcm1hdCBmcm9tCisgICAgICogdGhvc2UgdXNhZ2UgZmxhZ3MuIFRoaXMgZm9ybWF0IG11c3QgbmV2ZXIgYmUgdXNlZCB3aXRoIGFueSBvZiB0aGUKKyAgICAgKiBCdWZmZXJVc2FnZTo6Q1BVXyogdXNhZ2UgZmxhZ3MuCisgICAgICoKKyAgICAgKiBFdmVuIHdoZW4gdGhlIGludGVybmFsbHkgY2hvc2VuIGZvcm1hdCBoYXMgYW4gYWxwaGEgY29tcG9uZW50LCB0aGUKKyAgICAgKiBjbGllbnRzIG11c3QgYXNzdW1lIHRoZSBhbHBoYSB2bGF1ZSB0byBiZSAxLjAuCisgICAgICoKKyAgICAgKiBUaGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGNvbXBvbmVudCB2YWx1ZXMgaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIElNUExFTUVOVEFUSU9OX0RFRklORUQgPSAweDIyLAorCisgICAgLyoqCisgICAgICogVGhpcyBmb3JtYXQgYWxsb3dzIHBsYXRmb3JtcyB0byB1c2UgYW4gZWZmaWNpZW50IFlDYkNyL1lDckNiIDQ6MjowCisgICAgICogYnVmZmVyIGxheW91dCwgd2hpbGUgc3RpbGwgZGVzY3JpYmluZyB0aGUgZ2VuZXJhbCBmb3JtYXQgaW4gYQorICAgICAqIGxheW91dC1pbmRlcGVuZGVudCBtYW5uZXIuIFdoaWxlIGNhbGxlZCBZQ2JDciwgaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgKiBkZXNjcmliZSBmb3JtYXRzIHdpdGggZWl0aGVyIGNocm9tYXRpYyBvcmRlcmluZywgYXMgd2VsbCBhcworICAgICAqIHdob2xlIHBsYW5hciBvciBzZW1pcGxhbmFyIGxheW91dHMuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiBCdWZmZXJVc2FnZTo6Q1BVXyoKKyAgICAgKiBhcmUgc2V0LgorICAgICAqCisgICAgICogQnVmZmVycyB3aXRoIHRoaXMgZm9ybWF0IG11c3QgYmUgbG9ja2VkIHdpdGggSU1hcHBlcjo6bG9ja1lDYkNyLgorICAgICAqIExvY2tpbmcgd2l0aCBJTWFwcGVyOjpsb2NrIG11c3QgcmV0dXJuIGFuIGVycm9yLgorICAgICAqCisgICAgICogVGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBjb21wb25lbnQgdmFsdWVzIGlzIGRlZmluZWQgYnkgdGhlIGRhdGFzcGFjZS4KKyAgICAgKi8KKyAgICBZQ0JDUl80MjBfODg4ICAgICAgPSAweDIzLAorCisgICAgLyoqCisgICAgICogUkFXX09QQVFVRSBpcyBhIGZvcm1hdCBmb3IgdW5wcm9jZXNzZWQgcmF3IGltYWdlIGJ1ZmZlcnMgY29taW5nIGZyb20gYW4KKyAgICAgKiBpbWFnZSBzZW5zb3IuIFRoZSBhY3R1YWwgc3RydWN0dXJlIG9mIGJ1ZmZlcnMgb2YgdGhpcyBmb3JtYXQgaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVAorICAgICAqCisgICAgICogVGhlIG1hcHBpbmcgb2YgdGhlIGRhdGFzcGFjZSB0byBidWZmZXIgY29udGVudHMgZm9yIFJBV19PUEFRVUUgaXMgYXMKKyAgICAgKiBmb2xsb3dzOgorICAgICAqCisgICAgICogIERhdGFzcGFjZSB2YWx1ZSAgICAgICAgICAgICAgIHwgQnVmZmVyIGNvbnRlbnRzCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICBEYXRhc3BhY2U6OkFSQklUUkFSWSAgICAgICAgICB8IFJhdyBpbWFnZSBzZW5zb3IgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIFJBV19PUEFRVUUgICAgICAgICA9IDB4MjQsCisKKyAgICAvKioKKyAgICAgKiBSQVcxMCBpcyBhIHNpbmdsZS1jaGFubmVsLCAxMC1iaXQgcGVyIHBpeGVsLCBkZW5zZWx5IHBhY2tlZCBpbiBlYWNoIHJvdywKKyAgICAgKiB1bnByb2Nlc3NlZCBmb3JtYXQsIHVzdWFsbHkgcmVwcmVzZW50aW5nIHJhdyBCYXllci1wYXR0ZXJuIGltYWdlcyBjb21pbmcgZnJvbQorICAgICAqIGFuIGltYWdlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEluIGFuIGltYWdlIGJ1ZmZlciB3aXRoIHRoaXMgZm9ybWF0LCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwaXhlbCBvZiBlYWNoCisgICAgICogcm93LCBlYWNoIDQgY29uc2VjdXRpdmUgcGl4ZWxzIGFyZSBwYWNrZWQgaW50byA1IGJ5dGVzICg0MCBiaXRzKS4gRWFjaCBvbmUKKyAgICAgKiBvZiB0aGUgZmlyc3QgNCBieXRlcyBjb250YWlucyB0aGUgdG9wIDggYml0cyBvZiBlYWNoIHBpeGVsLCBUaGUgZmlmdGggYnl0ZQorICAgICAqIGNvbnRhaW5zIHRoZSAyIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIDQgcGl4ZWxzLCB0aGUgZXhhY3QgbGF5b3V0IGRhdGEKKyAgICAgKiBmb3IgZWFjaCA0IGNvbnNlY3V0aXZlIHBpeGVscyBpcyBpbGx1c3RyYXRlZCBiZWxvdyAoUGlbal0gc3RhbmRzIGZvciB0aGUganRoCisgICAgICogYml0IG9mIHRoZSBpdGggcGl4ZWwpOgorICAgICAqCisgICAgICogICAgICAgICAgYml0IDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0IDAKKyAgICAgKiAgICAgICAgICA9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXwKKyAgICAgKiBCeXRlIDA6IHxQMFs5XXxQMFs4XXxQMFs3XXxQMFs2XXxQMFs1XXxQMFs0XXxQMFszXXxQMFsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDE6IHxQMVs5XXxQMVs4XXxQMVs3XXxQMVs2XXxQMVs1XXxQMVs0XXxQMVszXXxQMVsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDI6IHxQMls5XXxQMls4XXxQMls3XXxQMls2XXxQMls1XXxQMls0XXxQMlszXXxQMlsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDM6IHxQM1s5XXxQM1s4XXxQM1s3XXxQM1s2XXxQM1s1XXxQM1s0XXxQM1szXXxQM1syXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDQ6IHxQM1sxXXxQM1swXXxQMlsxXXxQMlswXXxQMVsxXXxQMVswXXxQMFsxXXxQMFswXXwKKyAgICAgKiAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgYXNzdW1lcworICAgICAqIC0gYSB3aWR0aCBtdWx0aXBsZSBvZiA0IHBpeGVscworICAgICAqIC0gYW4gZXZlbiBoZWlnaHQKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKiAtIHN0cmlkZXMgYXJlIHNwZWNpZmllZCBpbiBieXRlcywgbm90IGluIHBpeGVscworICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICoKKyAgICAgKiBXaGVuIHN0cmlkZSBpcyBlcXVhbCB0byB3aWR0aCAqICgxMCAvIDgpLCB0aGVyZSB3aWxsIGJlIG5vIHBhZGRpbmcgYnl0ZXMgYXQKKyAgICAgKiB0aGUgZW5kIG9mIGVhY2ggcm93LCB0aGUgZW50aXJlIGltYWdlIGRhdGEgaXMgZGVuc2VseSBwYWNrZWQuIFdoZW4gc3RyaWRlIGlzCisgICAgICogbGFyZ2VyIHRoYW4gd2lkdGggKiAoMTAgLyA4KSwgcGFkZGluZyBieXRlcyB3aWxsIGJlIHByZXNlbnQgYXQgdGhlIGVuZCBvZiBlYWNoCisgICAgICogcm93IChpbmNsdWRpbmcgdGhlIGxhc3Qgcm93KS4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IG11c3QgYmUgYWNjZXB0ZWQgYnkgdGhlIGFsbG9jYXRvciB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgdXNhZ2UgZmxhZ3M6CisgICAgICoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDQU1FUkFfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNQVV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6UkVOREVSU0NSSVBUCisgICAgICoKKyAgICAgKiBUaGUgbWFwcGluZyBvZiB0aGUgZGF0YXNwYWNlIHRvIGJ1ZmZlciBjb250ZW50cyBmb3IgUkFXMTAgaXMgYXMKKyAgICAgKiBmb2xsb3dzOgorICAgICAqCisgICAgICogIERhdGFzcGFjZSB2YWx1ZSAgICAgICAgICAgICAgIHwgQnVmZmVyIGNvbnRlbnRzCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICBEYXRhc3BhY2U6OkFSQklUUkFSWSAgICAgICAgICB8IFJhdyBpbWFnZSBzZW5zb3IgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIFJBVzEwICAgICAgICAgICAgICA9IDB4MjUsCisKKyAgICAvKioKKyAgICAgKiBSQVcxMiBpcyBhIHNpbmdsZS1jaGFubmVsLCAxMi1iaXQgcGVyIHBpeGVsLCBkZW5zZWx5IHBhY2tlZCBpbiBlYWNoIHJvdywKKyAgICAgKiB1bnByb2Nlc3NlZCBmb3JtYXQsIHVzdWFsbHkgcmVwcmVzZW50aW5nIHJhdyBCYXllci1wYXR0ZXJuIGltYWdlcyBjb21pbmcgZnJvbQorICAgICAqIGFuIGltYWdlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEluIGFuIGltYWdlIGJ1ZmZlciB3aXRoIHRoaXMgZm9ybWF0LCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwaXhlbCBvZiBlYWNoCisgICAgICogcm93LCBlYWNoIHR3byBjb25zZWN1dGl2ZSBwaXhlbHMgYXJlIHBhY2tlZCBpbnRvIDMgYnl0ZXMgKDI0IGJpdHMpLiBUaGUgZmlyc3QKKyAgICAgKiBhbmQgc2Vjb25kIGJ5dGUgY29udGFpbnMgdGhlIHRvcCA4IGJpdHMgb2YgZmlyc3QgYW5kIHNlY29uZCBwaXhlbC4gVGhlIHRoaXJkCisgICAgICogYnl0ZSBjb250YWlucyB0aGUgNCBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSB0d28gcGl4ZWxzLCB0aGUgZXhhY3QgbGF5b3V0CisgICAgICogZGF0YSBmb3IgZWFjaCB0d28gY29uc2VjdXRpdmUgcGl4ZWxzIGlzIGlsbHVzdHJhdGVkIGJlbG93IChQaVtqXSBzdGFuZHMgZm9yCisgICAgICogdGhlIGp0aCBiaXQgb2YgdGhlIGl0aCBwaXhlbCk6CisgICAgICoKKyAgICAgKiAgICAgICAgICAgYml0IDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdCAwCisgICAgICogICAgICAgICAgPT09PT09fD09PT09PXw9PT09PT18PT09PT09fD09PT09PXw9PT09PT18PT09PT09fD09PT09PXwKKyAgICAgKiBCeXRlIDA6IHxQMFsxMV18UDBbMTBdfFAwWyA5XXxQMFsgOF18UDBbIDddfFAwWyA2XXxQMFsgNV18UDBbIDRdfAorICAgICAqICAgICAgICAgfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18CisgICAgICogQnl0ZSAxOiB8UDFbMTFdfFAxWzEwXXxQMVsgOV18UDFbIDhdfFAxWyA3XXxQMVsgNl18UDFbIDVdfFAxWyA0XXwKKyAgICAgKiAgICAgICAgIHwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfAorICAgICAqIEJ5dGUgMjogfFAxWyAzXXxQMVsgMl18UDFbIDFdfFAxWyAwXXxQMFsgM118UDBbIDJdfFAwWyAxXXxQMFsgMF18CisgICAgICogICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgYXNzdW1lczoKKyAgICAgKiAtIGEgd2lkdGggbXVsdGlwbGUgb2YgNCBwaXhlbHMKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIHZlcnRpY2FsIHN0cmlkZSBlcXVhbCB0byB0aGUgaGVpZ2h0CisgICAgICogLSBzdHJpZGVzIGFyZSBzcGVjaWZpZWQgaW4gYnl0ZXMsIG5vdCBpbiBwaXhlbHMKKyAgICAgKgorICAgICAqICAgc2l6ZSA9IHN0cmlkZSAqIGhlaWdodAorICAgICAqCisgICAgICogV2hlbiBzdHJpZGUgaXMgZXF1YWwgdG8gd2lkdGggKiAoMTIgLyA4KSwgdGhlcmUgd2lsbCBiZSBubyBwYWRkaW5nIGJ5dGVzIGF0CisgICAgICogdGhlIGVuZCBvZiBlYWNoIHJvdywgdGhlIGVudGlyZSBpbWFnZSBkYXRhIGlzIGRlbnNlbHkgcGFja2VkLiBXaGVuIHN0cmlkZSBpcworICAgICAqIGxhcmdlciB0aGFuIHdpZHRoICogKDEyIC8gOCksIHBhZGRpbmcgYnl0ZXMgd2lsbCBiZSBwcmVzZW50IGF0IHRoZSBlbmQgb2YKKyAgICAgKiBlYWNoIHJvdyAoaW5jbHVkaW5nIHRoZSBsYXN0IHJvdykuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVAorICAgICAqCisgICAgICogVGhlIG1hcHBpbmcgb2YgdGhlIGRhdGFzcGFjZSB0byBidWZmZXIgY29udGVudHMgZm9yIFJBVzEyIGlzIGFzCisgICAgICogZm9sbG93czoKKyAgICAgKgorICAgICAqICBEYXRhc3BhY2UgdmFsdWUgICAgICAgICAgICAgICB8IEJ1ZmZlciBjb250ZW50cworICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAgRGF0YXNwYWNlOjpBUkJJVFJBUlkgICAgICAgICAgfCBSYXcgaW1hZ2Ugc2Vuc29yIGRhdGEuCisgICAgICogIE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgVW5zdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQVcxMiAgICAgICAgICAgICAgPSAweDI2LAorCisgICAgLyoqIDB4MjcgdG8gMHgyQSBhcmUgcmVzZXJ2ZWQgZm9yIGZsZXhpYmxlIGZvcm1hdHMgKi8KKworICAgIC8qKgorICAgICAqIDMyLWJpdCBwYWNrZWQgZm9ybWF0IHRoYXQgaGFzIDItYml0IEEsIDEwLWJpdCBCLCBHLCBhbmQgUiBjb21wb25lbnRzLAorICAgICAqIGluIHRoYXQgb3JkZXIsIGZyb20gdGhlIG1vc3Qtc2lnZmluaWNhbnQgYml0cyB0byB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKyAgICAgKiBiaXRzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgUkdCQV8xMDEwMTAyICAgICAgID0gMHgyQiwKKworICAgIC8qKgorICAgICAqIDB4MTAwIC0gMHgxRkYKKyAgICAgKgorICAgICAqIFRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zLiBGb3JtYXRzIGluIHRoaXMgcmFuZ2UKKyAgICAgKiBtdXN0IHN1cHBvcnQgQnVmZmVyVXNhZ2U6OkdQVV9URVhUVVJFLiBDbGllbnRzIG11c3QgYXNzdW1lIHRoZXkgZG8gbm90CisgICAgICogaGF2ZSBhbiBhbHBoYSBjb21wb25lbnQuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBZOCBpcyBhIFlVViBwbGFuYXIgZm9ybWF0IGNvbXByaXNlZCBvZiBhIFd4SCBZIHBsYW5lLCB3aXRoIGVhY2ggcGl4ZWwKKyAgICAgKiBiZWluZyByZXByZXNlbnRlZCBieSA4IGJpdHMuIEl0IGlzIGVxdWl2YWxlbnQgdG8ganVzdCB0aGUgWSBwbGFuZSBmcm9tCisgICAgICogWVYxMi4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IGFzc3VtZXMKKyAgICAgKiAtIGFuIGV2ZW4gd2lkdGgKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIGhvcml6b250YWwgc3RyaWRlIG11bHRpcGxlIG9mIDE2IHBpeGVscworICAgICAqIC0gYSB2ZXJ0aWNhbCBzdHJpZGUgZXF1YWwgdG8gdGhlIGhlaWdodAorICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgWTggICAgICAgICAgICAgICAgID0gMHgyMDIwMzg1OSwKKworICAgIC8qKgorICAgICAqIFkxNiBpcyBhIFlVViBwbGFuYXIgZm9ybWF0IGNvbXByaXNlZCBvZiBhIFd4SCBZIHBsYW5lLCB3aXRoIGVhY2ggcGl4ZWwKKyAgICAgKiBiZWluZyByZXByZXNlbnRlZCBieSAxNiBiaXRzLiBJdCBpcyBqdXN0IGxpa2UgWTgsIGJ1dCBoYXMgZG91YmxlIHRoZQorICAgICAqIGJpdHMgcGVyIHBpeGVsIChsaXR0bGUgZW5kaWFuKS4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IGFzc3VtZXMKKyAgICAgKiAtIGFuIGV2ZW4gd2lkdGgKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIGhvcml6b250YWwgc3RyaWRlIG11bHRpcGxlIG9mIDE2IHBpeGVscworICAgICAqIC0gYSB2ZXJ0aWNhbCBzdHJpZGUgZXF1YWwgdG8gdGhlIGhlaWdodAorICAgICAqIC0gc3RyaWRlcyBhcmUgc3BlY2lmaWVkIGluIHBpeGVscywgbm90IGluIGJ5dGVzCisgICAgICoKKyAgICAgKiAgIHNpemUgPSBzdHJpZGUgKiBoZWlnaHQgKiAyCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuIFdoZW4gdGhlIGRhdGFzcGFjZSBpcworICAgICAqIERhdGFzcGFjZTo6REVQVEgsIGVhY2ggcGl4ZWwgaXMgYSBkaXN0YW5jZSB2YWx1ZSBtZWFzdXJlZCBieSBhIGRlcHRoCisgICAgICogY2FtZXJhLCBwbHVzIGFuIGFzc29jaWF0ZWQgY29uZmlkZW5jZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBZMTYgICAgICAgICAgICAgICAgPSAweDIwMzYzMTU5LAorCisgICAgLyoqCisgICAgICogWVYxMiBpcyBhIDQ6MjowIFlDckNiIHBsYW5hciBmb3JtYXQgY29tcHJpc2VkIG9mIGEgV3hIIFkgcGxhbmUgZm9sbG93ZWQKKyAgICAgKiBieSAoVy8yKSB4IChILzIpIENyIGFuZCBDYiBwbGFuZXMuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBhc3N1bWVzCisgICAgICogLSBhbiBldmVuIHdpZHRoCisgICAgICogLSBhbiBldmVuIGhlaWdodAorICAgICAqIC0gYSBob3Jpem9udGFsIHN0cmlkZSBtdWx0aXBsZSBvZiAxNiBwaXhlbHMKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKgorICAgICAqICAgeV9zaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICogICBjX3N0cmlkZSA9IEFMSUdOKHN0cmlkZS8yLCAxNikKKyAgICAgKiAgIGNfc2l6ZSA9IGNfc3RyaWRlICogaGVpZ2h0LzIKKyAgICAgKiAgIHNpemUgPSB5X3NpemUgKyBjX3NpemUgKiAyCisgICAgICogICBjcl9vZmZzZXQgPSB5X3NpemUKKyAgICAgKiAgIGNiX29mZnNldCA9IHlfc2l6ZSArIGNfc2l6ZQorICAgICAqCisgICAgICogVGhpcyByYW5nZSBpcyByZXNlcnZlZCBmb3IgdmVuZG9yIGV4dGVuc2lvbnMuIEZvcm1hdHMgaW4gdGhpcyByYW5nZQorICAgICAqIG11c3Qgc3VwcG9ydCBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUuIENsaWVudHMgbXVzdCBhc3N1bWUgdGhleSBkbyBub3QKKyAgICAgKiBoYXZlIGFuIGFscGhhIGNvbXBvbmVudC4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IG11c3QgYmUgYWNjZXB0ZWQgYnkgdGhlIGFsbG9jYXRvciB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgdXNhZ2UgZmxhZ3M6CisgICAgICoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDQU1FUkFfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNQVV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUKKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFlWMTIgICAgICAgICAgICAgICA9IDB4MzIzMTU2NTksIC8vIFlDckNiIDQ6MjowIFBsYW5hcgorfTsKKworLyoqCisgKiBCdWZmZXIgdXNhZ2UgZGVmaW5pdGlvbnMuCisgKi8KK2VudW0gQnVmZmVyVXNhZ2UgOiB1aW50NjRfdCB7CisgICAgLyoqIGJpdCAwLTMgaXMgYW4gZW51bSAqLworICAgIENQVV9SRUFEX01BU0sgICA9IDB4ZlVMTCwKKyAgICAvKiogYnVmZmVyIGlzIG5ldmVyIHJlYWQgYnkgQ1BVICovCisgICAgQ1BVX1JFQURfTkVWRVIgID0gMCwKKyAgICAvKiogYnVmZmVyIGlzIHJhcmVseSByZWFkIGJ5IENQVSAqLworICAgIENQVV9SRUFEX1JBUkVMWSA9IDIsCisgICAgLyoqIGJ1ZmZlciBpcyBvZnRlbiByZWFkIGJ5IENQVSAqLworICAgIENQVV9SRUFEX09GVEVOICA9IDMsCisKKyAgICAvKiogYml0IDQtNyBpcyBhbiBlbnVtICovCisgICAgQ1BVX1dSSVRFX01BU0sgICA9IDB4ZlVMTCA8PCA0LAorICAgIC8qKiBidWZmZXIgaXMgbmV2ZXIgd3JpdHRlbiBieSBDUFUgKi8KKyAgICBDUFVfV1JJVEVfTkVWRVIgID0gMCA8PCA0LAorICAgIC8qKiBidWZmZXIgaXMgcmFyZWx5IHdyaXR0ZW4gYnkgQ1BVICovCisgICAgQ1BVX1dSSVRFX1JBUkVMWSA9IDIgPDwgNCwKKyAgICAvKiogYnVmZmVyIGlzIG9mdGVuIHdyaXR0ZW4gYnkgQ1BVICovCisgICAgQ1BVX1dSSVRFX09GVEVOICA9IDMgPDwgNCwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIEdQVSB0ZXh0dXJlICovCisgICAgR1BVX1RFWFRVUkUgICAgICAgPSAxVUxMIDw8IDgsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBHUFUgcmVuZGVyIHRhcmdldCAqLworICAgIEdQVV9SRU5ERVJfVEFSR0VUID0gMVVMTCA8PCA5LAorCisgICAgLyoqIGJpdCAxMCBtdXN0IGJlIHplcm8gKi8KKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNvbXBvc2VyIEhBTCBvdmVybGF5IGxheWVyICovCisgICAgQ09NUE9TRVJfT1ZFUkxBWSAgPSAxVUxMIDw8IDExLAorICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNvbXBvc2VyIEhBTCBjbGllbnQgdGFyZ2V0ICovCisgICAgQ09NUE9TRVJfQ0xJRU5UX1RBUkdFVCA9IDFVTEwgPDwgMTIsCisKKyAgICAvKiogYml0IDEzIG11c3QgYmUgemVybyAqLworCisgICAgLyoqCisgICAgICogQnVmZmVyIGlzIGFsbG9jYXRlZCB3aXRoIGhhcmR3YXJlLWxldmVsIHByb3RlY3Rpb24gYWdhaW5zdCBjb3B5aW5nIHRoZQorICAgICAqIGNvbnRlbnRzIChvciBpbmZvcm1hdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbnRlbnRzKSBpbnRvIHVucHJvdGVjdGVkCisgICAgICogbWVtb3J5LgorICAgICAqLworICAgIFBST1RFQ1RFRCAgICAgICAgID0gMVVMTCA8PCAxNCwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGh3Y29tcG9zZXIgSEFMIGN1cnNvciBsYXllciAqLworICAgIENPTVBPU0VSX0NVUlNPUiAgID0gMVVMTCA8PCAxNSwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIHZpZGVvIGVuY29kZXIgaW5wdXQgKi8KKyAgICBWSURFT19FTkNPREVSICAgICA9IDFVTEwgPDwgMTYsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBjYW1lcmEgSEFMIG91dHB1dCAqLworICAgIENBTUVSQV9PVVRQVVQgICAgID0gMVVMTCA8PCAxNywKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNhbWVyYSBIQUwgaW5wdXQgKi8KKyAgICBDQU1FUkFfSU5QVVQgICAgICA9IDFVTEwgPDwgMTgsCisKKyAgICAvKiogYml0IDE5IG11c3QgYmUgemVybyAqLworCisgICAgLyoqIGJ1ZmZlciBpcyB1c2VkIGFzIGEgcmVuZGVyc2NyaXB0IGFsbG9jYXRpb24gKi8KKyAgICBSRU5ERVJTQ1JJUFQgICAgICA9IDFVTEwgPDwgMjAsCisKKyAgICAvKiogYml0IDIxIG11c3QgYmUgemVybyAqLworCisgICAgLyoqIGJ1ZmZlciBpcyB1c2VkIGFzIGEgdmlkZW8gZGVjb2RlciBvdXRwdXQgKi8KKyAgICBWSURFT19ERUNPREVSICAgICA9IDFVTEwgPDwgMjIsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBzZW5zb3IgZGlyZWN0IHJlcG9ydCBvdXRwdXQgKi8KKyAgICBTRU5TT1JfRElSRUNUX0RBVEEgPSAxVUxMIDw8IDIzLAorCisgICAgLyoqCisgICAgICogYnVmZmVyIGlzIHVzZWQgYXMgYXMgYW4gT3BlbkdMIHNoYWRlciBzdG9yYWdlIG9yIHVuaWZvcm0KKyAgICAgKiBidWZmZXIgb2JqZWN0CisgICAgICovCisgICAgR1BVX0RBVEFfQlVGRkVSICAgPSAxVUxMIDw8IDI0LAorCisgICAgLyoqIGJpdHMgMjUtMjcgbXVzdCBiZSB6ZXJvIGFuZCBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB2ZXJzaW9ucyAqLworICAgIC8qKiBiaXRzIDI4LTMxIGFyZSByZXNlcnZlZCBmb3IgdmVuZG9yIGV4dGVuc2lvbnMgKi8KKyAgICBWRU5ET1JfTUFTSyAgICAgICA9IDB4ZlVMTCA8PCAyOCwKKworICAgIC8qKiBiaXRzIDMyLTQ3IG11c3QgYmUgemVybyBhbmQgYXJlIHJlc2VydmVkIGZvciBmdXR1cmUgdmVyc2lvbnMgKi8KKyAgICAvKiogYml0cyA0OC02MyBhcmUgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zICovCisgICAgVkVORE9SX01BU0tfSEkgICAgPSAweGZmZmZVTEwgPDwgNDgsCit9OworCisvKioKKyAqIFRyYW5zZm9ybWF0aW9uIGRlZmluaXRpb25zCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX1RSQU5TRk9STV8iKQorZW51bSBUcmFuc2Zvcm0gOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBIb3Jpem9udGFsIGZsaXAuIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIEZMSVBfSCAgICA9IDEgPDwgMCwKKworICAgIC8qKgorICAgICAqIFZlcnRpY2FsIGZsaXAuIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIEZMSVBfViAgICA9IDEgPDwgMSwKKworICAgIC8qKgorICAgICAqIDkwIGRlZ3JlZSBjbG9ja3dpc2Ugcm90YXRpb24uIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIFJPVF85MCAgICA9IDEgPDwgMiwKKworICAgIC8qKgorICAgICAqIENvbW1vbmx5IHVzZWQgY29tYmluYXRpb25zLgorICAgICAqLworICAgIFJPVF8xODAgICA9IEZMSVBfSCB8IEZMSVBfViwKKyAgICBST1RfMjcwICAgPSBGTElQX0ggfCBGTElQX1YgfCBST1RfOTAsCit9OworCisvKioKKyAqIERhdGFzcGFjZSBEZWZpbml0aW9ucworICogPT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIERhdGFzcGFjZSBpcyB0aGUgZGVmaW5pdGlvbiBvZiBob3cgcGl4ZWwgdmFsdWVzIHNob3VsZCBiZSBpbnRlcnByZXRlZC4KKyAqCisgKiBGb3IgbWFueSBmb3JtYXRzLCB0aGlzIGlzIHRoZSBjb2xvcnNwYWNlIG9mIHRoZSBpbWFnZSBkYXRhLCB3aGljaCBpbmNsdWRlcworICogcHJpbWFyaWVzIChpbmNsdWRpbmcgd2hpdGUgcG9pbnQpIGFuZCB0aGUgdHJhbnNmZXIgY2hhcmFjdGVyaXN0aWMgZnVuY3Rpb24sCisgKiB3aGljaCBkZXNjcmliZXMgYm90aCBnYW1tYSBjdXJ2ZSBhbmQgbnVtZXJpYyByYW5nZSAod2l0aGluIHRoZSBiaXQgZGVwdGgpLgorICoKKyAqIE90aGVyIGRhdGFzcGFjZXMgaW5jbHVkZSBkZXB0aCBtZWFzdXJlbWVudCBkYXRhIGZyb20gYSBkZXB0aCBjYW1lcmEuCisgKgorICogQSBkYXRhc3BhY2UgaXMgY29tcHJpc2VkIG9mIGEgbnVtYmVyIG9mIGZpZWxkcy4KKyAqCisgKiBWZXJzaW9uCisgKiAtLS0tLS0tLQorICogVGhlIHRvcCAyIGJpdHMgcmVwcmVzZW50IHRoZSByZXZpc2lvbiBvZiB0aGUgZmllbGQgc3BlY2lmaWNhdGlvbi4gVGhpcyBpcworICogY3VycmVudGx5IGFsd2F5cyAwLgorICoKKyAqCisgKiBiaXRzICAgIDMxLTMwIDI5ICAgICAgICAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAqICAgICAgICArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqIGZpZWxkcyB8IFJldiB8ICAgICAgICAgICAgUmV2aXNpb24gc3BlY2lmaWMgZmllbGRzICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBGaWVsZCBsYXlvdXQgZm9yIHZlcnNpb24gPSAwOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEEgZGF0YXNwYWNlIGlzIGNvbXByaXNlZCBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczoKKyAqICAgICAgU3RhbmRhcmQKKyAqICAgICAgVHJhbnNmZXIgZnVuY3Rpb24KKyAqICAgICAgUmFuZ2UKKyAqCisgKiBiaXRzICAgIDMxLTMwIDI5LTI3IDI2IC0gIDIyIDIxIC0gIDE2IDE1ICAgICAgICAgICAgIC0gICAgICAgICAgIDAKKyAqICAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqIGZpZWxkcyB8ICAwICB8UmFuZ2V8VHJhbnNmZXJ8U3RhbmRhcmR8ICAgIExlZ2FjeSBhbmQgY3VzdG9tICAgICAgIHwKKyAqICAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAgIFZWICAgIFJSUiAgIFRUVFRUICAgIFNTU1NTUyAgICBMTExMTExMTCAgICAgICBMTExMTExMTAorICoKKyAqIElmIHJhbmdlLCB0cmFuc2ZlciBhbmQgc3RhbmRhcmQgZmllbGRzIGFyZSBhbGwgMCAoZS5nLiB0b3AgMTYgYml0cyBhcmUKKyAqIGFsbCB6ZXJvZXMpLCB0aGUgYm90dG9tIDE2IGJpdHMgY29udGFpbiBlaXRoZXIgYSBsZWdhY3kgZGF0YXNwYWNlIHZhbHVlLAorICogb3IgYSBjdXN0b20gdmFsdWUuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9kYXRhc3BhY2VfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0RBVEFTUEFDRV8iKQorZW51bSBEYXRhc3BhY2UgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0LWFzc3VtcHRpb24gZGF0YSBzcGFjZSwgd2hlbiBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQuCisgICAgICoKKyAgICAgKiBJdCBpcyBzYWZlc3QgdG8gYXNzdW1lIHRoZSBidWZmZXIgaXMgYW4gaW1hZ2Ugd2l0aCBzUkdCIHByaW1hcmllcyBhbmQKKyAgICAgKiBlbmNvZGluZyByYW5nZXMsIGJ1dCB0aGUgY29uc3VtZXIgYW5kL29yIHRoZSBwcm9kdWNlciBvZiB0aGUgZGF0YSBtYXkKKyAgICAgKiBzaW1wbHkgYmUgdXNpbmcgZGVmYXVsdHMuIE5vIGF1dG9tYXRpYyBnYW1tYSB0cmFuc2Zvcm0gc2hvdWxkIGJlCisgICAgICogZXhwZWN0ZWQsIGV4Y2VwdCBmb3IgYSBwb3NzaWJsZSBkaXNwbGF5IGdhbW1hIHRyYW5zZm9ybSB3aGVuIGRyYXduIHRvIGEKKyAgICAgKiBzY3JlZW4uCisgICAgICovCisgICAgVU5LTk9XTiA9IDB4MCwKKworICAgIC8qKgorICAgICAqIEFyYml0cmFyeSBkYXRhc3BhY2Ugd2l0aCBtYW51YWxseSBkZWZpbmVkIGNoYXJhY3RlcmlzdGljcy4gIERlZmluaXRpb24KKyAgICAgKiBmb3IgY29sb3JzcGFjZXMgb3Igb3RoZXIgbWVhbmluZyBtdXN0IGJlIGNvbW11bmljYXRlZCBzZXBhcmF0ZWx5LgorICAgICAqCisgICAgICogVGhpcyBpcyB1c2VkIHdoZW4gc3BlY2lmeWluZyBwcmltYXJpZXMsIHRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcywKKyAgICAgKiBldGMuIHNlcGFyYXRlbHkuCisgICAgICoKKyAgICAgKiBBIHR5cGljYWwgdXNlIGNhc2UgaXMgaW4gdmlkZW8gZW5jb2RpbmcgcGFyYW1ldGVycyAoZS5nLiBmb3IgSC4yNjQpLAorICAgICAqIHdoZXJlIGEgY29sb3JzcGFjZSBjYW4gaGF2ZSBzZXBhcmF0ZWx5IGRlZmluZWQgcHJpbWFyaWVzLCB0cmFuc2ZlcgorICAgICAqIGNoYXJhY3RlcmlzdGljcywgZXRjLgorICAgICAqLworICAgIEFSQklUUkFSWSA9IDB4MSwKKworICAgIC8qKgorICAgICAqIENvbG9yLWRlc2NyaXB0aW9uIGFzcGVjdHMKKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgYXNwZWN0cyBkZWZpbmUgdmFyaW91cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGNvbG9yCisgICAgICogc3BlY2lmaWNhdGlvbi4gVGhlc2UgcmVwcmVzZW50IGJpdGZpZWxkcywgc28gdGhhdCBhIGRhdGEgc3BhY2UgdmFsdWUKKyAgICAgKiBjYW4gc3BlY2lmeSBlYWNoIG9mIHRoZW0gaW5kZXBlbmRlbnRseS4KKyAgICAgKi8KKworICAgIFNUQU5EQVJEX1NISUZUID0gMTYsCisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBhc3BlY3QKKyAgICAgKgorICAgICAqIERlZmluZXMgdGhlIGNocm9tYXRpY2l0eSBjb29yZGluYXRlcyBvZiB0aGUgc291cmNlIHByaW1hcmllcyBpbiB0ZXJtcyBvZgorICAgICAqIHRoZSBDSUUgMTkzMSBkZWZpbml0aW9uIG9mIHggYW5kIHkgc3BlY2lmaWVkIGluIElTTyAxMTY2NC0xLgorICAgICAqLworICAgIFNUQU5EQVJEX01BU0sgPSA2MyA8PCBTVEFOREFSRF9TSElGVCwgIC8vIDB4M0YKKworICAgIC8qKgorICAgICAqIENocm9tYWNpdHkgY29vcmRpbmF0ZXMgYXJlIHVua25vd24gb3IgYXJlIGRldGVybWluZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAqIEltcGxlbWVudGF0aW9ucyBzaGFsbCB1c2UgdGhlIGZvbGxvd2luZyBzdWdnZXN0ZWQgc3RhbmRhcmRzOgorICAgICAqCisgICAgICogQWxsIFlDYkNyIGZvcm1hdHM6IEJUNzA5IGlmIHNpemUgaXMgNzIwcCBvciBsYXJnZXIgKHNpbmNlIG1vc3QgdmlkZW8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY29udGVudCBpcyBsZXR0ZXJib3hlZCB0aGlzIGNvcnJlc3BvbmRzIHRvIHdpZHRoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIDEyODAgb3IgZ3JlYXRlciwgb3IgaGVpZ2h0IGlzIDcyMCBvciBncmVhdGVyKS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgQlQ2MDFfNjI1IGlmIHNpemUgaXMgc21hbGxlciB0aGFuIDcyMHAgb3IgaXMgSlBFRy4KKyAgICAgKiBBbGwgUkdCIGZvcm1hdHM6ICAgQlQ3MDkuCisgICAgICoKKyAgICAgKiBGb3IgYWxsIG90aGVyIGZvcm1hdHMgc3RhbmRhcmQgaXMgdW5kZWZpbmVkLCBhbmQgaW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UKKyAgICAgKiBhbiBhcHByb3ByaWF0ZSBzdGFuZGFyZCBmb3IgdGhlIGRhdGEgcmVwcmVzZW50ZWQuCisgICAgICovCisgICAgU1RBTkRBUkRfVU5TUEVDSUZJRUQgPSAwIDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjIxMjYsIEtCID0gMC4wNzIyIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDcwOSA9IDEgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yOTAgICAwLjYwMAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NDAgICAwLjMzMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqICBLUiA9IDAuMjk5LCBLQiA9IDAuMTE0LiBUaGlzIGFkanVzdHMgdGhlIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24gZnJvbSB0aGUgb25lIHB1cmVseSBkZXRlcm1pbmVkIGJ5IHRoZSBwcmltYXJpZXMKKyAgICAgKiAgdG8gbWluaW1pemUgdGhlIGNvbG9yIHNoaWZ0IGludG8gUkdCIHNwYWNlIHRoYXQgdXNlcyBCVC43MDkKKyAgICAgKiAgcHJpbWFyaWVzLgorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzYyNSA9IDIgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yOTAgICAwLjYwMAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NDAgICAwLjMzMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDMgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4zMTAgICAwLjU5NQorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTUgICAwLjA3MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42MzAgICAwLjM0MAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqICBLUiA9IDAuMjk5LCBLQiA9IDAuMTE0LiBUaGlzIGFkanVzdHMgdGhlIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24gZnJvbSB0aGUgb25lIHB1cmVseSBkZXRlcm1pbmVkIGJ5IHRoZSBwcmltYXJpZXMKKyAgICAgKiAgdG8gbWluaW1pemUgdGhlIGNvbG9yIHNoaWZ0IGludG8gUkdCIHNwYWNlIHRoYXQgdXNlcyBCVC43MDkKKyAgICAgKiAgcHJpbWFyaWVzLgorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDQgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4zMTAgICAwLjU5NQorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTUgICAwLjA3MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42MzAgICAwLjM0MAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjEyLCBLQiA9IDAuMDg3IGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICovCisgICAgU1RBTkRBUkRfQlQ2MDFfNTI1X1VOQURKVVNURUQgPSA1IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMTcwICAgMC43OTcKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTMxICAgMC4wNDYKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNzA4ICAgMC4yOTIKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjI2MjcsIEtCID0gMC4wNTkzIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDIwMjAgPSA2IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMTcwICAgMC43OTcKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTMxICAgMC4wNDYKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNzA4ICAgMC4yOTIKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjI2MjcsIEtCID0gMC4wNTkzIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbiB1c2luZyB0aGUgbGluZWFyIGRvbWFpbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDIwMjBfQ09OU1RBTlRfTFVNSU5BTkNFID0gNyA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIFByaW1hcmllczogICAgICAgeCAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEgICAwLjcxCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE0ICAgMC4wOAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NyAgIDAuMzMKKyAgICAgKiAgd2hpdGUgKEMpICAgICAgIDAuMzEwICAwLjMxNgorICAgICAqCisgICAgICogVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4zMCwgS0IgPSAwLjExIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDQ3ME0gPSA4IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjQzICAgMC42OTIKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTQ1ICAgMC4wNDkKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgxICAgMC4zMTkKKyAgICAgKiAgd2hpdGUgKEMpICAgICAgIDAuMzEwICAgMC4zMTYKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjU0LCBLQiA9IDAuMDY4IGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9GSUxNID0gOSA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIFNNUFRFIEVHIDQzMi0xIGFuZCBTTVBURSBSUCA0MzEtMi4gKERDSS1QMykKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKi8KKyAgICBTVEFOREFSRF9EQ0lfUDMgPSAxMCA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFkb2JlIFJHQgorICAgICAqIFByaW1hcmllczogICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjIxMCAgIDAuNzEwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqLworICAgIFNUQU5EQVJEX0FET0JFX1JHQiA9IDExIDw8IFNUQU5EQVJEX1NISUZULAorCisKKworICAgIFRSQU5TRkVSX1NISUZUID0gMjIsCisKKyAgICAvKioKKyAgICAgKiBUcmFuc2ZlciBhc3BlY3QKKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcyBhcmUgdGhlIG9wdG8tZWxlY3Ryb25pYyB0cmFuc2ZlciBjaGFyYWN0ZXJpc3RpYworICAgICAqIGF0IHRoZSBzb3VyY2UgYXMgYSBmdW5jdGlvbiBvZiBsaW5lYXIgb3B0aWNhbCBpbnRlbnNpdHkgKGx1bWluYW5jZSkuCisgICAgICoKKyAgICAgKiBGb3IgZGlnaXRhbCBzaWduYWxzLCBFIGNvcnJlc3BvbmRzIHRvIHRoZSByZWNvcmRlZCB2YWx1ZS4gTm9ybWFsbHksIHRoZQorICAgICAqIHRyYW5zZmVyIGZ1bmN0aW9uIGlzIGFwcGxpZWQgaW4gUkdCIHNwYWNlIHRvIGVhY2ggb2YgdGhlIFIsIEcgYW5kIEIKKyAgICAgKiBjb21wb25lbnRzIGluZGVwZW5kZW50bHkuIFRoaXMgbWF5IHJlc3VsdCBpbiBjb2xvciBzaGlmdCB0aGF0IGNhbiBiZQorICAgICAqIG1pbml6ZWQgYnkgYXBwbHlpbmcgdGhlIHRyYW5zZmVyIGZ1bmN0aW9uIGluIExhYiBzcGFjZSBvbmx5IGZvciB0aGUgTAorICAgICAqIGNvbXBvbmVudC4gSW1wbGVtZW50YXRpb24gbWF5IGFwcGx5IHRoZSB0cmFuc2ZlciBmdW5jdGlvbiBpbiBSR0Igc3BhY2UKKyAgICAgKiBmb3IgYWxsIHBpeGVsIGZvcm1hdHMgaWYgZGVzaXJlZC4KKyAgICAgKi8KKworICAgIFRSQU5TRkVSX01BU0sgPSAzMSA8PCBUUkFOU0ZFUl9TSElGVCwgIC8vIDB4MUYKKworICAgIC8qKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcyBhcmUgdW5rbm93biBvciBhcmUgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbi4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9ucyBzaG91bGQgdXNlIHRoZSBmb2xsb3dpbmcgdHJhbnNmZXIgZnVuY3Rpb25zOgorICAgICAqCisgICAgICogRm9yIFlDYkNyIGZvcm1hdHM6IHVzZSBUUkFOU0ZFUl9TTVBURV8xNzBNCisgICAgICogRm9yIFJHQiBmb3JtYXRzOiB1c2UgVFJBTlNGRVJfU1JHQgorICAgICAqCisgICAgICogRm9yIGFsbCBvdGhlciBmb3JtYXRzIHRyYW5zZmVyIGZ1bmN0aW9uIGlzIHVuZGVmaW5lZCwgYW5kIGltcGxlbWVudGF0aW9ucworICAgICAqIHNob3VsZCB1c2UgYW4gYXBwcm9wcmlhdGUgc3RhbmRhcmQgZm9yIHRoZSBkYXRhIHJlcHJlc2VudGVkLgorICAgICAqLworICAgIFRSQU5TRkVSX1VOU1BFQ0lGSUVEID0gMCA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gTAorICAgICAqICAgICAgTCAtIGx1bWluYW5jZSBvZiBpbWFnZSAwIDw9IEwgPD0gMSBmb3IgY29udmVudGlvbmFsIGNvbG9yaW1ldHJ5CisgICAgICogICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX0xJTkVBUiA9IDEgPDwgVFJBTlNGRVJfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKgorICAgICAqIEUgPSAxLjA1NSAqIExeKDEvMi40KSAtIDAuMDU1ICBmb3IgMC4wMDMxMzA4IDw9IEwgPD0gMQorICAgICAqICAgPSAxMi45MiAqIEwgICAgICAgICAgICAgICAgICBmb3IgMCA8PSBMIDwgMC4wMDMxMzA4CisgICAgICogICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX1NSR0IgPSAyIDw8IFRSQU5TRkVSX1NISUZULAorCisgICAgLyoqCisgICAgICogQlQuNjAxIDUyNSwgQlQuNjAxIDYyNSwgQlQuNzA5LCBCVC4yMDIwCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IDEuMDk5ICogTCBeIDAuNDUgLSAwLjA5OSAgZm9yIDAuMDE4IDw9IEwgPD0gMQorICAgICAqICAgID0gNC41MDAgKiBMICAgICAgICAgICAgICAgICBmb3IgMCA8PSBMIDwgMC4wMTgKKyAgICAgKiAgICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICAgRSAtIGNvcnJlc3BvbmRpbmcgZWxlY3RyaWNhbCBzaWduYWwKKyAgICAgKi8KKyAgICBUUkFOU0ZFUl9TTVBURV8xNzBNID0gMyA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFzc3VtZWQgZGlzcGxheSBnYW1tYSAyLjIuCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IEwgXiAoMS8yLjIpCisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCA8PSAxIGZvciBjb252ZW50aW9uYWwgY29sb3JpbWV0cnkKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfR0FNTUEyXzIgPSA0IDw8IFRSQU5TRkVSX1NISUZULAorCisgICAgLyoqCisgICAgICogIGRpc3BsYXkgZ2FtbWEgMi42LgorICAgICAqCisgICAgICogVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWMgY3VydmU6CisgICAgICogIEUgPSBMIF4gKDEvMi42KQorICAgICAqICAgICAgTCAtIGx1bWluYW5jZSBvZiBpbWFnZSAwIDw9IEwgPD0gMSBmb3IgY29udmVudGlvbmFsIGNvbG9yaW1ldHJ5CisgICAgICogICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX0dBTU1BMl82ID0gNSA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqICBkaXNwbGF5IGdhbW1hIDIuOC4KKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gTCBeICgxLzIuOCkKKyAgICAgKiAgICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICAgRSAtIGNvcnJlc3BvbmRpbmcgZWxlY3RyaWNhbCBzaWduYWwKKyAgICAgKi8KKyAgICBUUkFOU0ZFUl9HQU1NQTJfOCA9IDYgPDwgVFJBTlNGRVJfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBTTVBURSBTVCAyMDg0IChEb2xieSBQZXJjZXB0dWFsIFF1YW50aXplcikKKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gKChjMSArIGMyICogTF5uKSAvICgxICsgYzMgKiBMXm4pKSBeIG0KKyAgICAgKiAgYzEgPSBjMyAtIGMyICsgMSA9IDM0MjQgLyA0MDk2ID0gMC44MzU5Mzc1CisgICAgICogIGMyID0gMzIgKiAyNDEzIC8gNDA5NiA9IDE4Ljg1MTU2MjUKKyAgICAgKiAgYzMgPSAzMiAqIDIzOTIgLyA0MDk2ID0gMTguNjg3NQorICAgICAqICBtID0gMTI4ICogMjUyMyAvIDQwOTYgPSA3OC44NDM3NQorICAgICAqICBuID0gMC4yNSAqIDI2MTAgLyA0MDk2ID0gMC4xNTkzMDE3NTc4MTI1CisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCA8PSAxIGZvciBIRFIgY29sb3JpbWV0cnkuCisgICAgICogICAgICAgICAgTCA9IDEgY29ycmVzcG9uZHMgdG8gMTAwMDAgY2QvbTIKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfU1QyMDg0ID0gNyA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFSSUIgU1RELUI2NyBIeWJyaWQgTG9nIEdhbW1hCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IHIgKiBMXjAuNSAgICAgICAgICAgICAgICAgZm9yIDAgPD0gTCA8PSAxCisgICAgICogICAgPSBhICogbG4oTCAtIGIpICsgYyAgICAgICAgIGZvciAxIDwgTAorICAgICAqICBhID0gMC4xNzg4MzI3NworICAgICAqICBiID0gMC4yODQ2Njg5MgorICAgICAqICBjID0gMC41NTk5MTA3MworICAgICAqICByID0gMC41CisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCBmb3IgSERSIGNvbG9yaW1ldHJ5LiBMID0gMSBjb3JyZXNwb25kcworICAgICAqICAgICAgICAgIHRvIHJlZmVyZW5jZSB3aGl0ZSBsZXZlbCBvZiAxMDAgY2QvbTIKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfSExHID0gOCA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIFJBTkdFX1NISUZUID0gMjcsCisKKyAgICAvKioKKyAgICAgKiBSYW5nZSBhc3BlY3QKKyAgICAgKgorICAgICAqIERlZmluZXMgdGhlIHJhbmdlIG9mIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSB1bml0IHJhbmdlIG9mIDAtMS4KKyAgICAgKiBUaGlzIGlzIGRlZmluZWQgZm9yIFlDYkNyIG9ubHksIGJ1dCBjYW4gYmUgZXhwYW5kZWQgdG8gUkdCIHNwYWNlLgorICAgICAqLworICAgIFJBTkdFX01BU0sgPSA3IDw8IFJBTkdFX1NISUZULCAgLy8gMHg3CisKKyAgICAvKioKKyAgICAgKiBSYW5nZSBpcyB1bmtub3duIG9yIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gIEltcGxlbWVudGF0aW9ucworICAgICAqIHNoYWxsIHVzZSB0aGUgZm9sbG93aW5nIHN1Z2dlc3RlZCByYW5nZXM6CisgICAgICoKKyAgICAgKiBBbGwgWUNiQ3IgZm9ybWF0czogbGltaXRlZCByYW5nZS4KKyAgICAgKiBBbGwgUkdCIG9yIFJHQkEgZm9ybWF0cyAoaW5jbHVkaW5nIFJBVyBhbmQgQmF5ZXIpOiBmdWxsIHJhbmdlLgorICAgICAqIEFsbCBZIGZvcm1hdHM6IGZ1bGwgcmFuZ2UKKyAgICAgKgorICAgICAqIEZvciBhbGwgb3RoZXIgZm9ybWF0cyByYW5nZSBpcyB1bmRlZmluZWQsIGFuZCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHVzZQorICAgICAqIGFuIGFwcHJvcHJpYXRlIHJhbmdlIGZvciB0aGUgZGF0YSByZXByZXNlbnRlZC4KKyAgICAgKi8KKyAgICBSQU5HRV9VTlNQRUNJRklFRCA9IDAgPDwgUkFOR0VfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBGdWxsIHJhbmdlIHVzZXMgYWxsIHZhbHVlcyBmb3IgWSwgQ2IgYW5kIENyIGZyb20KKyAgICAgKiAwIHRvIDJeYi0xLCB3aGVyZSBiIGlzIHRoZSBiaXQgZGVwdGggb2YgdGhlIGNvbG9yIGZvcm1hdC4KKyAgICAgKi8KKyAgICBSQU5HRV9GVUxMID0gMSA8PCBSQU5HRV9TSElGVCwKKworICAgIC8qKgorICAgICAqIExpbWl0ZWQgcmFuZ2UgdXNlcyB2YWx1ZXMgMTYvMjU2KjJeYiB0byAyMzUvMjU2KjJeYiBmb3IgWSwgYW5kCisgICAgICogMS8xNioyXmIgdG8gMTUvMTYqMl5iIGZvciBDYiwgQ3IsIFIsIEcgYW5kIEIsIHdoZXJlIGIgaXMgdGhlIGJpdCBkZXB0aCBvZgorICAgICAqIHRoZSBjb2xvciBmb3JtYXQuCisgICAgICoKKyAgICAgKiBFLmcuIEZvciA4LWJpdC1kZXB0aCBmb3JtYXRzOgorICAgICAqIEx1bWEgKFkpIHNhbXBsZXMgc2hvdWxkIHJhbmdlIGZyb20gMTYgdG8gMjM1LCBpbmNsdXNpdmUKKyAgICAgKiBDaHJvbWEgKENiLCBDcikgc2FtcGxlcyBzaG91bGQgcmFuZ2UgZnJvbSAxNiB0byAyNDAsIGluY2x1c2l2ZQorICAgICAqCisgICAgICogRm9yIDEwLWJpdC1kZXB0aCBmb3JtYXRzOgorICAgICAqIEx1bWEgKFkpIHNhbXBsZXMgc2hvdWxkIHJhbmdlIGZyb20gNjQgdG8gOTQwLCBpbmNsdXNpdmUKKyAgICAgKiBDaHJvbWEgKENiLCBDcikgc2FtcGxlcyBzaG91bGQgcmFuZ2UgZnJvbSA2NCB0byA5NjAsIGluY2x1c2l2ZQorICAgICAqLworICAgIFJBTkdFX0xJTUlURUQgPSAyIDw8IFJBTkdFX1NISUZULAorCisgICAgLyoqCisgICAgICogRXh0ZW5kZWQgcmFuZ2UgaXMgdXNlZCBmb3Igc2NSR0IuIEludGVuZGVkIGZvciB1c2Ugd2l0aAorICAgICAqIGZsb2F0aW5nIHBvaW50IHBpeGVsIGZvcm1hdHMuIFswLjAgLSAxLjBdIGlzIHRoZSBzdGFuZGFyZAorICAgICAqIHNSR0Igc3BhY2UuIFZhbHVlcyBvdXRzaWRlIHRoZSByYW5nZSAwLjAgLSAxLjAgY2FuIGVuY29kZQorICAgICAqIGNvbG9yIG91dHNpZGUgdGhlIHNSR0IgZ2FtdXQuCisgICAgICogVXNlZCB0byBibGVuZCAvIG1lcmdlIG11bHRpcGxlIGRhdGFzcGFjZXMgb24gYSBzaW5nbGUgZGlzcGxheS4KKyAgICAgKi8KKyAgICBSQU5HRV9FWFRFTkRFRCA9IDMgPDwgUkFOR0VfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBMZWdhY3kgZGF0YXNwYWNlcworICAgICAqLworCisgICAgLyoqCisgICAgICogc1JHQiBsaW5lYXIgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiwgYW5kIGJsdWUgY29tcG9uZW50cyBhcmUgc3RvcmVkIGluIHNSR0Igc3BhY2UsIGJ1dAorICAgICAqIGFyZSBsaW5lYXIsIG5vdCBnYW1tYS1lbmNvZGVkLgorICAgICAqIFRoZSBSR0IgcHJpbWFyaWVzIGFuZCB0aGUgd2hpdGUgcG9pbnQgYXJlIHRoZSBzYW1lIGFzIEJULjcwOS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIGVuY29kZWQgdXNpbmcgdGhlIGZ1bGwgcmFuZ2UgKFswLDI1NV0gZm9yIDgtYml0KSBmb3IgYWxsCisgICAgICogY29tcG9uZW50cy4KKyAgICAgKi8KKyAgICBTUkdCX0xJTkVBUiA9IDB4MjAwLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfU1JHQl9MSU5FQVIKKworICAgIFYwX1NSR0JfTElORUFSID0gU1RBTkRBUkRfQlQ3MDkgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBzY1JHQiBsaW5lYXIgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiwgYW5kIGJsdWUgY29tcG9uZW50cyBhcmUgc3RvcmVkIGluIGV4dGVuZGVkIHNSR0Igc3BhY2UsCisgICAgICogYnV0IGFyZSBsaW5lYXIsIG5vdCBnYW1tYS1lbmNvZGVkLgorICAgICAqIFRoZSBSR0IgcHJpbWFyaWVzIGFuZCB0aGUgd2hpdGUgcG9pbnQgYXJlIHRoZSBzYW1lIGFzIEJULjcwOS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIGZsb2F0aW5nIHBvaW50LgorICAgICAqIEEgcGl4ZWwgdmFsdWUgb2YgMS4wLCAxLjAsIDEuMCBjb3JyZXNwb25kcyB0byBzUkdCIHdoaXRlIChENjUpIGF0IDgwIG5pdHMuCisgICAgICogVmFsdWVzIGJleW9uZCB0aGUgcmFuZ2UgWzAuMCAtIDEuMF0gd291bGQgY29ycmVzcG9uZCB0byBvdGhlciBjb2xvcnMKKyAgICAgKiBzcGFjZXMgYW5kL29yIEhEUiBjb250ZW50LgorICAgICAqLworICAgIFYwX1NDUkdCX0xJTkVBUiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfTElORUFSIHwgUkFOR0VfRVhURU5ERUQsCisKKworICAgIC8qKgorICAgICAqIHNSR0IgZ2FtbWEgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiBhbmQgYmx1ZSBjb21wb25lbnRzIGFyZSBzdG9yZWQgaW4gc1JHQiBzcGFjZSwgYW5kCisgICAgICogY29udmVydGVkIHRvIGxpbmVhciBzcGFjZSB3aGVuIHJlYWQsIHVzaW5nIHRoZSBTUkdCIHRyYW5zZmVyIGZ1bmN0aW9uCisgICAgICogZm9yIGVhY2ggb2YgdGhlIFIsIEcgYW5kIEIgY29tcG9uZW50cy4gV2hlbiB3cml0dGVuLCB0aGUgaW52ZXJzZQorICAgICAqIHRyYW5zZm9ybWF0aW9uIGlzIHBlcmZvcm1lZC4KKyAgICAgKgorICAgICAqIFRoZSBhbHBoYSBjb21wb25lbnQsIGlmIHByZXNlbnQsIGlzIGFsd2F5cyBzdG9yZWQgaW4gbGluZWFyIHNwYWNlIGFuZAorICAgICAqIGlzIGxlZnQgdW5tb2RpZmllZCB3aGVuIHJlYWQgb3Igd3JpdHRlbi4KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlIGFuZCBCVC43MDkgc3RhbmRhcmQuCisgICAgICovCisgICAgU1JHQiA9IDB4MjAxLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfU1JHQgorCisgICAgVjBfU1JHQiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0ZVTEwsCisKKworICAgIC8qKgorICAgICAqIHNjUkdCOgorICAgICAqCisgICAgICogVGhlIHJlZCwgZ3JlZW4sIGFuZCBibHVlIGNvbXBvbmVudHMgYXJlIHN0b3JlZCBpbiBleHRlbmRlZCBzUkdCIHNwYWNlLAorICAgICAqIGJ1dCBhcmUgbGluZWFyLCBub3QgZ2FtbWEtZW5jb2RlZC4KKyAgICAgKiBUaGUgUkdCIHByaW1hcmllcyBhbmQgdGhlIHdoaXRlIHBvaW50IGFyZSB0aGUgc2FtZSBhcyBCVC43MDkuCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSBmbG9hdGluZyBwb2ludC4KKyAgICAgKiBBIHBpeGVsIHZhbHVlIG9mIDEuMCwgMS4wLCAxLjAgY29ycmVzcG9uZHMgdG8gc1JHQiB3aGl0ZSAoRDY1KSBhdCA4MCBuaXRzLgorICAgICAqIFZhbHVlcyBiZXlvbmQgdGhlIHJhbmdlIFswLjAgLSAxLjBdIHdvdWxkIGNvcnJlc3BvbmQgdG8gb3RoZXIgY29sb3JzCisgICAgICogc3BhY2VzIGFuZC9vciBIRFIgY29udGVudC4KKyAgICAgKi8KKyAgICBWMF9TQ1JHQiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0VYVEVOREVELAorCisgICAgLyoqCisgICAgICogWUNiQ3IgQ29sb3JzcGFjZXMKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogUHJpbWFyaWVzIGFyZSBnaXZlbiB1c2luZyAoeCx5KSBjb29yZGluYXRlcyBpbiB0aGUgQ0lFIDE5MzEgZGVmaW5pdGlvbgorICAgICAqIG9mIHggYW5kIHkgc3BlY2lmaWVkIGJ5IElTTyAxMTY2NC0xLgorICAgICAqCisgICAgICogVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzIGFyZSB0aGUgb3B0by1lbGVjdHJvbmljIHRyYW5zZmVyIGNoYXJhY3RlcmlzdGljCisgICAgICogYXQgdGhlIHNvdXJjZSBhcyBhIGZ1bmN0aW9uIG9mIGxpbmVhciBvcHRpY2FsIGludGVuc2l0eSAobHVtaW5hbmNlKS4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEpQRUcgRmlsZSBJbnRlcmNoYW5nZSBGb3JtYXQgKEpGSUYpCisgICAgICoKKyAgICAgKiBTYW1lIG1vZGVsIGFzIEJULjYwMS02MjUsIGJ1dCBhbGwgdmFsdWVzIChZLCBDYiwgQ3IpIHJhbmdlIGZyb20gMCB0byAyNTUKKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBCVC42MDEgdHJhbnNmZXIgYW5kIEJULjYwMV82MjUgc3RhbmRhcmQuCisgICAgICovCisgICAgSkZJRiA9IDB4MTAxLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfSkZJRgorCisgICAgVjBfSkZJRiA9IFNUQU5EQVJEX0JUNjAxXzYyNSB8IFRSQU5TRkVSX1NNUFRFXzE3ME0gfCBSQU5HRV9GVUxMLAorCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gNjAxIChCVC42MDEpIC0gNjI1LWxpbmUKKyAgICAgKgorICAgICAqIFN0YW5kYXJkLWRlZmluaXRpb24gdGVsZXZpc2lvbiwgNjI1IExpbmVzIChQQUwpCisgICAgICoKKyAgICAgKiBVc2UgbGltaXRlZCByYW5nZSwgQlQuNjAxIHRyYW5zZmVyIGFuZCBCVC42MDFfNjI1IHN0YW5kYXJkLgorICAgICAqLworICAgIEJUNjAxXzYyNSA9IDB4MTAyLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfQlQ2MDFfNjI1CisKKyAgICBWMF9CVDYwMV82MjUgPSBTVEFOREFSRF9CVDYwMV82MjUgfCBUUkFOU0ZFUl9TTVBURV8xNzBNIHwgUkFOR0VfTElNSVRFRCwKKworCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gNjAxIChCVC42MDEpIC0gNTI1LWxpbmUKKyAgICAgKgorICAgICAqIFN0YW5kYXJkLWRlZmluaXRpb24gdGVsZXZpc2lvbiwgNTI1IExpbmVzIChOVFNDKQorICAgICAqCisgICAgICogVXNlIGxpbWl0ZWQgcmFuZ2UsIEJULjYwMSB0cmFuc2ZlciBhbmQgQlQuNjAxXzUyNSBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBCVDYwMV81MjUgPSAweDEwMywgLy8gZGVwcmVjYXRlZCwgdXNlIFYwX0JUNjAxXzUyNQorCisgICAgVjBfQlQ2MDFfNTI1ID0gU1RBTkRBUkRfQlQ2MDFfNTI1IHwgVFJBTlNGRVJfU01QVEVfMTcwTSB8IFJBTkdFX0xJTUlURUQsCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiA3MDkgKEJULjcwOSkKKyAgICAgKgorICAgICAqIEhpZ2gtZGVmaW5pdGlvbiB0ZWxldmlzaW9uCisgICAgICoKKyAgICAgKiBVc2UgbGltaXRlZCByYW5nZSwgQlQuNzA5IHRyYW5zZmVyIGFuZCBCVC43MDkgc3RhbmRhcmQuCisgICAgICovCisgICAgQlQ3MDkgPSAweDEwNCwgLy8gZGVwcmVjYXRlZCwgdXNlIFYwX0JUNzA5CisKKyAgICBWMF9CVDcwOSA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU01QVEVfMTcwTSB8IFJBTkdFX0xJTUlURUQsCisKKworICAgIC8qKgorICAgICAqIFNNUFRFIEVHIDQzMi0xIGFuZCBTTVBURSBSUCA0MzEtMi4KKyAgICAgKgorICAgICAqIERpZ2l0YWwgQ2luZW1hIERDSS1QMworICAgICAqCisgICAgICogVXNlIGZ1bGwgcmFuZ2UsIGxpbmVhciB0cmFuc2ZlciBhbmQgRDY1IERDSS1QMyBzdGFuZGFyZAorICAgICAqLworICAgIERDSV9QM19MSU5FQVIgPSBTVEFOREFSRF9EQ0lfUDMgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIuCisgICAgICoKKyAgICAgKiBEaWdpdGFsIENpbmVtYSBEQ0ktUDMKKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBnYW1tYSAyLjYgdHJhbnNmZXIgYW5kIEQ2NSBEQ0ktUDMgc3RhbmRhcmQKKyAgICAgKiBOb3RlOiBBcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZ2FtbWEgZW5jb2RpbmcgdGhlIGRhdGEgYXMKKyAgICAgKiBhIDIuNiBnYW1tYSBlbmNvZGluZyBpcyBub3Qgc3VwcG9ydGVkIGluIEhXLgorICAgICAqLworICAgIERDSV9QMyA9IFNUQU5EQVJEX0RDSV9QMyB8IFRSQU5TRkVSX0dBTU1BMl82IHwgUkFOR0VfRlVMTCwKKworCisgICAgLyoqCisgICAgICogRGlzcGxheSBQMworICAgICAqCisgICAgICogRGlzcGxheSBQMyB1c2VzIHNhbWUgcHJpbWFyaWVzIGFuZCB3aGl0ZS1wb2ludCBhcyBEQ0ktUDMKKyAgICAgKiBsaW5lYXIgdHJhbnNmZXIgZnVuY3Rpb24gbWFrZXMgdGhpcyB0aGUgc2FtZSBhcyBEQ0lfUDNfTElORUFSLgorICAgICAqLworICAgIERJU1BMQVlfUDNfTElORUFSID0gU1RBTkRBUkRfRENJX1AzIHwgVFJBTlNGRVJfTElORUFSIHwgUkFOR0VfRlVMTCwKKworCisgICAgLyoqCisgICAgICogRGlzcGxheSBQMworICAgICAqCisgICAgICogVXNlIHNhbWUgcHJpbWFyaWVzIGFuZCB3aGl0ZS1wb2ludCBhcyBEQ0ktUDMKKyAgICAgKiBidXQgc1JHQiB0cmFuc2ZlciBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICBESVNQTEFZX1AzID0gU1RBTkRBUkRfRENJX1AzIHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0ZVTEwsCisKKworICAgIC8qKgorICAgICAqIEFkb2JlIFJHQgorICAgICAqCisgICAgICogVXNlIGZ1bGwgcmFuZ2UsIGdhbW1hIDIuMiB0cmFuc2ZlciBhbmQgQWRvYmUgUkdCIHByaW1hcmllcworICAgICAqIE5vdGU6IEFwcGxpY2F0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBnYW1tYSBlbmNvZGluZyB0aGUgZGF0YSBhcworICAgICAqIGEgMi4yIGdhbW1hIGVuY29kaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSFcuCisgICAgICovCisgICAgQURPQkVfUkdCID0gU1RBTkRBUkRfQURPQkVfUkdCIHwgVFJBTlNGRVJfR0FNTUEyXzIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiAyMDIwIChCVC4yMDIwKQorICAgICAqCisgICAgICogVWx0cmEgSGlnaC1kZWZpbml0aW9uIHRlbGV2aXNpb24KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBsaW5lYXIgdHJhbnNmZXIgYW5kIEJUMjAyMCBzdGFuZGFyZAorICAgICAqLworICAgIEJUMjAyMF9MSU5FQVIgPSBTVEFOREFSRF9CVDIwMjAgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiAyMDIwIChCVC4yMDIwKQorICAgICAqCisgICAgICogVWx0cmEgSGlnaC1kZWZpbml0aW9uIHRlbGV2aXNpb24KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBCVC43MDkgdHJhbnNmZXIgYW5kIEJUMjAyMCBzdGFuZGFyZAorICAgICAqLworICAgIEJUMjAyMCA9IFNUQU5EQVJEX0JUMjAyMCB8IFRSQU5TRkVSX1NNUFRFXzE3ME0gfCBSQU5HRV9GVUxMLAorCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gMjAyMCAoQlQuMjAyMCkKKyAgICAgKgorICAgICAqIFVsdHJhIEhpZ2gtZGVmaW5pdGlvbiB0ZWxldmlzaW9uCisgICAgICoKKyAgICAgKiBVc2UgZnVsbCByYW5nZSwgU01QVEUgMjA4NCAoUFEpIHRyYW5zZmVyIGFuZCBCVDIwMjAgc3RhbmRhcmQKKyAgICAgKi8KKyAgICBCVDIwMjBfUFEgPSBTVEFOREFSRF9CVDIwMjAgfCBUUkFOU0ZFUl9TVDIwODQgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBEYXRhIHNwYWNlcyBmb3Igbm9uLWNvbG9yIGZvcm1hdHMKKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIFRoZSBidWZmZXIgY29udGFpbnMgZGVwdGggcmFuZ2luZyBtZWFzdXJlbWVudHMgZnJvbSBhIGRlcHRoIGNhbWVyYS4KKyAgICAgKiBUaGlzIHZhbHVlIGlzIHZhbGlkIHdpdGggZm9ybWF0czoKKyAgICAgKiAgICBIQUxfUElYRUxfRk9STUFUX1kxNjogMTYtYml0IHNhbXBsZXMsIGNvbnNpc3Rpbmcgb2YgYSBkZXB0aCBtZWFzdXJlbWVudAorICAgICAqICAgICAgIGFuZCBhbiBhc3NvY2lhdGVkIGNvbmZpZGVuY2UgdmFsdWUuIFRoZSAzIE1TQnMgb2YgdGhlIHNhbXBsZSBtYWtlCisgICAgICogICAgICAgdXAgdGhlIGNvbmZpZGVuY2UgdmFsdWUsIGFuZCB0aGUgbG93IDEzIExTQnMgb2YgdGhlIHNhbXBsZSBtYWtlIHVwCisgICAgICogICAgICAgdGhlIGRlcHRoIG1lYXN1cmVtZW50LgorICAgICAqICAgICAgIEZvciB0aGUgY29uZmlkZW5jZSBzZWN0aW9uLCAwIG1lYW5zIDEwMCUgY29uZmlkZW5jZSwgMSBtZWFucyAwJQorICAgICAqICAgICAgIGNvbmZpZGVuY2UuIFRoZSBtYXBwaW5nIHRvIGEgbGluZWFyIGZsb2F0IGNvbmZpZGVuY2UgdmFsdWUgYmV0d2VlbgorICAgICAqICAgICAgIDAuZiBhbmQgMS5mIGNhbiBiZSBvYnRhaW5lZCB3aXRoCisgICAgICogICAgICAgICBmbG9hdCBjb25maWRlbmNlID0gKCgoZGVwdGhTYW1wbGUgPj4gMTMpIC0gMSkgJiAweDcpIC8gNy4wZjsKKyAgICAgKiAgICAgICBUaGUgZGVwdGggbWVhc3VyZW1lbnQgY2FuIGJlIGV4dHJhY3RlZCBzaW1wbHkgd2l0aAorICAgICAqICAgICAgICAgdWludDE2X3QgcmFuZ2UgPSAoZGVwdGhTYW1wbGUgJiAweDFGRkYpOworICAgICAqICAgIEhBTF9QSVhFTF9GT1JNQVRfQkxPQjogQSBkZXB0aCBwb2ludCBjbG91ZCwgYXMKKyAgICAgKiAgICAgICBhIHZhcmlhYmxlLWxlbmd0aCBmbG9hdCAoeCx5LHosIGNvbmZpZGVuY2UpIGNvb3JkaW5hdGUgcG9pbnQgbGlzdC4KKyAgICAgKiAgICAgICBUaGUgcG9pbnQgY2xvdWQgd2lsbCBiZSByZXByZXNlbnRlZCB3aXRoIHRoZSBhbmRyb2lkX2RlcHRoX3BvaW50cworICAgICAqICAgICAgIHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICBERVBUSCA9IDB4MTAwMCwKKworCisgICAgLyoqCisgICAgICogVGhlIGJ1ZmZlciBjb250YWlucyBzZW5zb3IgZXZlbnRzIGZyb20gc2Vuc29yIGRpcmVjdCByZXBvcnQuCisgICAgICogVGhpcyB2YWx1ZSBpcyB2YWxpZCB3aXRoIGZvcm1hdHM6CisgICAgICogICAgSEFMX1BJWEVMX0ZPUk1BVF9CTE9COiBhbiBhcnJheSBvZiBzZW5zb3IgZXZlbnQgc3RydWN0dXJlIHRoYXQgZm9ybXMKKyAgICAgKiAgICAgICBhIGxvY2sgZnJlZSBxdWV1ZS4gRm9ybWF0IG9mIHNlbnNvciBldmVudCBzdHJ1Y3R1cmUgaXMgc3BlY2lmaWVkCisgICAgICogICAgICAgaW4gU2Vuc29ycyBIQUwuCisgICAgICovCisgICAgU0VOU09SID0gMHgxMDAxCit9OworCisvKioKKyAqIENvbG9yIG1vZGVzIHRoYXQgbWF5IGJlIHN1cHBvcnRlZCBieSBhIGRpc3BsYXkuCisgKgorICogRGVmaW5pdGlvbnM6CisgKiBSZW5kZXJpbmcgaW50ZW50IGdlbmVyYWxseSBkZWZpbmVzIHRoZSBnb2FsIGluIG1hcHBpbmcgYSBzb3VyY2UgKGlucHV0KQorICogY29sb3IgdG8gYSBkZXN0aW5hdGlvbiBkZXZpY2UgY29sb3IgZm9yIGEgZ2l2ZW4gY29sb3IgbW9kZS4KKyAqCisgKiAgSXQgaXMgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCB0aHJlZSBjYXNlcyB3aGVyZSBtYXBwaW5nIG1heSBiZSBhcHBsaWVkOgorICogIDEuIFRoZSBzb3VyY2UgZ2FtdXQgaXMgbXVjaCBzbWFsbGVyIHRoYW4gdGhlIGRlc3RpbmF0aW9uIChkaXNwbGF5KSBnYW11dAorICogIDIuIFRoZSBzb3VyY2UgZ2FtdXQgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUgZGVzdGluYXRpb24gZ2FtdXQgKHRoaXMgd2lsbAorICogIG9yZGluYXJpbHkgYmUgaGFuZGxlZCB1c2luZyBjb2xvcmltZXRyaWMgcmVuZGVyaW5nLCBiZWxvdykKKyAqICAzLiBUaGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBnYW11dHMgYXJlIHJvdWdobHkgZXF1YWwsIGFsdGhvdWdoIG5vdAorICogIGNvbXBsZXRlbHkgb3ZlcmxhcHBpbmcKKyAqICBBbHNvLCBhIGNvbW1vbiByZXF1aXJlbWVudCBmb3IgbWFwcGluZ3MgaXMgdGhhdCBza2luIHRvbmVzIHNob3VsZCBiZQorICogIHByZXNlcnZlZCwgb3IgYXQgbGVhc3QgcmVtYWluIG5hdHVyYWwgaW4gYXBwZWFyYW5jZS4KKyAqCisgKiAgQ29sb3JpbWV0cmljIFJlbmRlcmluZyBJbnRlbnQgKEFsbCBjYXNlcyk6CisgKiAgQ29sb3JpbWV0cmljIGluZGljYXRlcyB0aGF0IGNvbG9ycyBzaG91bGQgYmUgcHJlc2VydmVkLiBJbiB0aGUgY2FzZQorICogIHRoYXQgdGhlIHNvdXJjZSBnYW11dCBsaWVzIHdob2xseSB3aXRoaW4gdGhlIGRlc3RpbmF0aW9uIGdhbXV0IG9yIGlzCisgKiAgYWJvdXQgdGhlIHNhbWUgKCMxLCAjMyksIHRoaXMgd2lsbCBzaW1wbHkgbWVhbiB0aGF0IG5vIG1hbmlwdWxhdGlvbnMKKyAqICAobm8gc2F0dXJhdGlvbiBib29zdCwgZm9yIGV4YW1wbGUpIGFyZSBhcHBsaWVkLiBJbiB0aGUgY2FzZSB3aGVyZSBzb21lCisgKiAgc291cmNlIGNvbG9ycyBsaWUgb3V0c2lkZSB0aGUgZGVzdGluYXRpb24gZ2FtdXQgKCMyLCAjMyksIHRob3NlIHdpbGwKKyAqICBuZWVkIHRvIGJlIG1hcHBlZCB0byBjb2xvcnMgdGhhdCBhcmUgd2l0aGluIHRoZSBkZXN0aW5hdGlvbiBnYW11dCwKKyAqICB3aGlsZSB0aGUgYWxyZWFkeSBpbi1nYW11dCBjb2xvcnMgcmVtYWluIHVuY2hhbmdlZC4KKyAqCisgKiAgTm9uLWNvbG9yaW1ldHJpYyB0cmFuc2Zvcm1zIGNhbiB0YWtlIG1hbnkgZm9ybXMuIFRoZXJlIGFyZSBubyBoYXJkCisgKiAgcnVsZXMgYW5kIGl0J3MgbGVmdCB0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gZGVmaW5lLgorICogIFR3byBjb21tb24gaW50ZW50cyBhcmUgZGVzY3JpYmVkIGJlbG93LgorICoKKyAqICBTdHJldGNoZWQtR2FtdXQgRW5oYW5jZW1lbnQgSW50ZW50IChTb3VyY2UgPCBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGVzdGluYXRpb24gZ2FtdXQgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUgc291cmNlIGdhbXV0ICgjMSksIHRoZQorICogIHNvdXJjZSBwcmltYXJpZXMgbWF5IGJlIHJlZGVmaW5lZCB0byByZWZsZWN0IHRoZSBmdWxsIGV4dGVudCBvZiB0aGUKKyAqICBkZXN0aW5hdGlvbiBzcGFjZSwgb3IgdG8gcmVmbGVjdCBhbiBpbnRlcm1lZGlhdGUgZ2FtdXQuCisgKiAgU2tpbi10b25lIHByZXNlcnZhdGlvbiB3b3VsZCBsaWtlbHkgYmUgYXBwbGllZC4gQW4gZXhhbXBsZSBtaWdodCBiZSBzUkdCCisgKiAgaW5wdXQgZGlzcGxheWVkIG9uIGEgRENJLVAzIGNhcGFibGUgZGV2aWNlLCB3aXRoIHNraW4tdG9uZSBwcmVzZXJ2YXRpb24uCisgKgorICogIFdpdGhpbi1HYW11dCBFbmhhbmNlbWVudCBJbnRlbnQgKFNvdXJjZSA+PSBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGV2aWNlIChkZXN0aW5hdGlvbikgZ2FtdXQgaXMgbm90IGxhcmdlciB0aGFuIHRoZSBzb3VyY2UgZ2FtdXQKKyAqICAoIzIgb3IgIzMpLCBidXQgdGhlIGFwcGVhcmFuY2Ugb2YgYSBsYXJnZXIgZ2FtdXQgaXMgZGVzaXJlZCwgdGVjaG5pcXVlcworICogIHN1Y2ggYXMgc2F0dXJhdGlvbiBib29zdCBtYXkgYmUgYXBwbGllZCB0byB0aGUgc291cmNlIGNvbG9ycy4gU2tpbi10b25lCisgKiAgcHJlc2VydmF0aW9uIG1heSBiZSBhcHBsaWVkLiBUaGVyZSBpcyBubyB1bmlxdWUgbWV0aG9kIGZvciB3aXRoaW4tZ2FtdXQKKyAqICBlbmhhbmNlbWVudDsgaXQgd291bGQgYmUgZGVmaW5lZCB3aXRoaW4gYSBmbGV4aWJsZSBjb2xvciBtb2RlLgorICoKKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2NvbG9yX21vZGVfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX01PREVfIikKK2VudW0gQ29sb3JNb2RlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogREVGQVVMVCBpcyB0aGUgIm5hdGl2ZSIgZ2FtdXQgb2YgdGhlIGRpc3BsYXkuCisgICAgICogV2hpdGUgUG9pbnQ6IFZlbmRvci9PRU0gZGVmaW5lZAorICAgICAqIFBhbmVsIEdhbW1hOiBWZW5kb3IvT0VNIGRlZmluZWQgKHR5cGljYWxseSAyLjIpCisgICAgICogUmVuZGVyaW5nIEludGVudDogVmVuZG9yL09FTSBkZWZpbmVkICh0eXBpY2FsbHkgJ2VuaGFuY2VkJykKKyAgICAgKi8KKyAgICBOQVRJVkUgPSAwLAorCisgICAgLyoqCisgICAgICogU1RBTkRBUkRfQlQ2MDFfNjI1IGNvcnJlc3BvbmRzIHdpdGggZGlzcGxheQorICAgICAqIHNldHRpbmdzIHRoYXQgaW1wbGVtZW50IHRoZSBJVFUtUiBSZWNvbW1lbmRhdGlvbiBCVC42MDEKKyAgICAgKiBvciBSZWMgNjAxLiBVc2luZyA2MjUgbGluZSB2ZXJzaW9uCisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIEtSID0gMC4yOTksIEtCID0gMC4xMTQuIFRoaXMgYWRqdXN0cyB0aGUgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiBmcm9tIHRoZSBvbmUgcHVyZWx5IGRldGVybWluZWQgYnkgdGhlIHByaW1hcmllcworICAgICAqICB0byBtaW5pbWl6ZSB0aGUgY29sb3Igc2hpZnQgaW50byBSR0Igc3BhY2UgdGhhdCB1c2VzIEJULjcwOQorICAgICAqICBwcmltYXJpZXMuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjUgPSAxLAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24uCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgS1IgPSAwLjI5OSwgS0IgPSAwLjExNC4gVGhpcyBhZGp1c3RzIHRoZSBsdW1pbmFuY2UgaW50ZXJwcmV0YXRpb24KKyAgICAgKiAgZm9yIFJHQiBjb252ZXJzaW9uIGZyb20gdGhlIG9uZSBwdXJlbHkgZGV0ZXJtaW5lZCBieSB0aGUgcHJpbWFyaWVzCisgICAgICogIHRvIG1pbmltaXplIHRoZSBjb2xvciBzaGlmdCBpbnRvIFJHQiBzcGFjZSB0aGF0IHVzZXMgQlQuNzA5CisgICAgICogIHByaW1hcmllcy4KKyAgICAgKgorICAgICAqIEdhbW1hIENvcnJlY3Rpb24gKEdDKToKKyAgICAgKgorICAgICAqICBpZiBWbGluZWFyIDwgMC4wMTgKKyAgICAgKiAgICBWbm9ubGluZWFyID0gNC41MDAgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcileKDAuNDUpIOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDMsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4yMTIsIEtCID0gMC4wODcgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV81MjVfVU5BREpVU1RFRCA9IDQsCisKKyAgICAvKioKKyAgICAgKiBSRUM3MDkgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIElUVS1SIFJlY29tbWVuZGF0aW9uIEJULjcwOSAvIFJlYy4gNzA5IGZvciBoaWdoLWRlZmluaXRpb24gdGVsZXZpc2lvbi4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBIRFRWIFJFQzcwOSBJbnZlcnNlIEdhbW1hIENvcnJlY3Rpb24gKElHQyk6IFYgcmVwcmVzZW50cyBub3JtYWxpemVkCisgICAgICogKHdpdGggWzAgdG8gMV0gcmFuZ2UpIHZhbHVlIG9mIFIsIEcsIG9yIEIuCisgICAgICoKKyAgICAgKiAgaWYgVm5vbmxpbmVhciA8IDAuMDgxCisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyA0LjUKKyAgICAgKiAgZWxzZQorICAgICAqICAgIFZsaW5lYXIgPSAoKFZub25saW5lYXIgKyAwLjA5OSkgLyAxLjA5OSkgXiAoMS8wLjQ1KQorICAgICAqCisgICAgICogSERUViBSRUM3MDkgR2FtbWEgQ29ycmVjdGlvbiAoR0MpOgorICAgICAqCisgICAgICogIGlmIFZsaW5lYXIgPCAwLjAxOAorICAgICAqICAgIFZub25saW5lYXIgPSA0LjUgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcikgXiAwLjQ1IOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNzA5ID0gNSwKKworICAgIC8qKgorICAgICAqIERDSV9QMyBjb3JyZXNwb25kcyB3aXRoIGRpc3BsYXkgc2V0dGluZ3MgdGhhdCBpbXBsZW1lbnQKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIKKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjY1ICAgMC42OTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgwICAgMC4zMjAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi42CisgICAgICovCisgICAgRENJX1AzID0gNiwKKworICAgIC8qKgorICAgICAqIFNSR0IgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIHNSR0IgY29sb3Igc3BhY2UuIFVzZXMgdGhlIHNhbWUgcHJpbWFyaWVzIGFzIElUVS1SIFJlY29tbWVuZGF0aW9uCisgICAgICogQlQuNzA5CisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjMwMCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogUEMvSW50ZXJuZXQgKHNSR0IpIEludmVyc2UgR2FtbWEgQ29ycmVjdGlvbiAoSUdDKToKKyAgICAgKgorICAgICAqICBpZiBWbm9ubGluZWFyIOKJpCAwLjAzOTI4CisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyAxMi45MgorICAgICAqICBlbHNlCisgICAgICogICAgVmxpbmVhciA9ICgoVm5vbmxpbmVhciArIDAuMDU1KS8xLjA1NSkgXiAyLjQKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMxMzA4CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICovCisgICAgU1JHQiA9IDcsCisKKyAgICAvKioKKyAgICAgKiBBRE9CRV9SR0IgY29ycmVzcG9uZHMgd2l0aCB0aGUgUkdCIGNvbG9yIHNwYWNlIGRldmVsb3BlZAorICAgICAqIGJ5IEFkb2JlIFN5c3RlbXMsIEluYy4gaW4gMTk5OC4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEwICAgMC43MTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi4yCisgICAgICovCisgICAgQURPQkVfUkdCID0gOCwKKworICAgIC8qKgorICAgICAqIERJU1BMQVlfUDMgaXMgYSBjb2xvciBzcGFjZSB0aGF0IHVzZXMgdGhlIERDSV9QMyBwcmltYXJpZXMsCisgICAgICogdGhlIEQ2NSB3aGl0ZSBwb2ludCBhbmQgdGhlIFNSR0IgdHJhbnNmZXIgZnVuY3Rpb25zLgorICAgICAqIFJlbmRlcmluZyBJbnRlbnQ6IENvbG9yaW1ldHJpYworICAgICAqIFByaW1hcmllczoKKyAgICAgKiAgICAgICAgICAgICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMwMTg2CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICoKKyAgICAgKiBOb3RlOiBJbiBtb3N0IGNhc2VzIHNSR0IgdHJhbnNmZXIgZnVuY3Rpb24gd2lsbCBiZSBmaW5lLgorICAgICAqLworICAgIERJU1BMQVlfUDMgPSA5Cit9OworCisvKioKKyAqIENvbG9yIHRyYW5zZm9ybXMgdGhhdCBtYXkgYmUgYXBwbGllZCBieSBoYXJkd2FyZSBjb21wb3NlciB0byB0aGUgd2hvbGUKKyAqIGRpc3BsYXkuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9jb2xvcl90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX1RSQU5TRk9STV8iKQorZW51bSBDb2xvclRyYW5zZm9ybSA6IGludDMyX3QgeworICAgIC8qKiBBcHBsaWVzIG5vIHRyYW5zZm9ybSB0byB0aGUgb3V0cHV0IGNvbG9yICovCisgICAgSURFTlRJVFkgPSAwLAorCisgICAgLyoqIEFwcGxpZXMgYW4gYXJiaXRyYXJ5IHRyYW5zZm9ybSBkZWZpbmVkIGJ5IGEgNHg0IGFmZmluZSBtYXRyaXggKi8KKyAgICBBUkJJVFJBUllfTUFUUklYID0gMSwKKworICAgIC8qKgorICAgICAqIEFwcGxpZXMgYSB0cmFuc2Zvcm0gdGhhdCBpbnZlcnRzIHRoZSB2YWx1ZSBvciBsdW1pbmFuY2Ugb2YgdGhlIGNvbG9yLCBidXQKKyAgICAgKiBkb2VzIG5vdCBtb2RpZnkgaHVlIG9yIHNhdHVyYXRpb24gKi8KKyAgICBWQUxVRV9JTlZFUlNFID0gMiwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHRoYXQgbWFwcyBhbGwgY29sb3JzIHRvIHNoYWRlcyBvZiBncmF5ICovCisgICAgR1JBWVNDQUxFID0gMywKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciBwcm90YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfUFJPVEFOT1BJQSA9IDQsCisKKyAgICAvKiogQXBwbGllcyBhIHRyYW5zZm9ybSB3aGljaCBjb3JyZWN0cyBmb3IgZGV1dGVyYW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfREVVVEVSQU5PUElBID0gNSwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciB0cml0YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfVFJJVEFOT1BJQSA9IDYKK307CisKKy8qKgorICogU3VwcG9ydGVkIEhEUiBmb3JtYXRzLiBNdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGVxdWl2YWxlbnRzIGluIERpc3BsYXkuamF2YS4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2hkcl90IiwgdmFsdWVfcHJlZml4PSJIQUxfSERSXyIpCitlbnVtIEhkciA6IGludDMyX3QgeworICAgIC8qKiBEZXZpY2Ugc3VwcG9ydHMgRG9sYnkgVmlzaW9uIEhEUiAqLworICAgIERPTEJZX1ZJU0lPTiA9IDEsCisKKyAgICAvKiogRGV2aWNlIHN1cHBvcnRzIEhEUjEwICovCisgICAgSERSMTAgPSAyLAorCisgICAgLyoqIERldmljZSBzdXBwb3J0cyBoeWJyaWQgbG9nLWdhbW1hIEhEUiAqLworICAgIEhMRyA9IDMKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5OTU3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDc5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklDb21wb3Nlci5oYWwiLAorICAgICAgICAiSUNvbXBvc2VyQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklDb21wb3NlckNsaWVudC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0NvbXBvc2VyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNsaWVudEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JuSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JzQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lId0NvbXBvc2VyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQnNDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9CcEh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cc0NvbXBvc2VyQ2xpZW50LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJhYTVjZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgSUNvbXBvc2VyQ2xpZW50OworCitpbnRlcmZhY2UgSUNvbXBvc2VyIHsKKyAgICAvKioKKyAgICAgKiBPcHRpb25hbCBjYXBhYmlsaXRpZXMgd2hpY2ggbWF5IGJlIHN1cHBvcnRlZCBieSBzb21lIGRldmljZXMuIFRoZQorICAgICAqIHBhcnRpY3VsYXIgc2V0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgZm9yIGEgZ2l2ZW4gZGV2aWNlIG1heSBiZQorICAgICAqIHJldHJpZXZlZCB1c2luZyBnZXRDYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZW51bSBDYXBhYmlsaXR5IDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzIHNpZGViYW5kIHN0cmVhbSBsYXllcnMsIGZvcgorICAgICAgICAgKiB3aGljaCBidWZmZXIgY29udGVudCB1cGRhdGVzIGFuZCBvdGhlciBzeW5jaHJvbml6YXRpb24gd2lsbCBub3QgYmUKKyAgICAgICAgICogcHJvdmlkZWQgdGhyb3VnaCB0aGUgdXN1YWwgdmFsaWRhdGUvcHJlc2VudCBjeWNsZSBhbmQgbXVzdCBiZQorICAgICAgICAgKiBoYW5kbGVkIGJ5IGFuIGV4dGVybmFsIGltcGxlbWVudGF0aW9uLWRlZmluZWQgbWVjaGFuaXNtLiBPbmx5CisgICAgICAgICAqIGNoYW5nZXMgdG8gbGF5ZXIgc3RhdGUgKHN1Y2ggYXMgcG9zaXRpb24sIHNpemUsIGV0Yy4pIG5lZWQgdG8gYmUKKyAgICAgICAgICogcGVyZm9ybWVkIHRocm91Z2ggdGhlIHZhbGlkYXRlL3ByZXNlbnQgY3ljbGUuCisgICAgICAgICAqLworICAgICAgICBTSURFQkFORF9TVFJFQU0gPSAxLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHdpbGwgYXBwbHkgYSBjb2xvciB0cmFuc2Zvcm0gZXZlbiB3aGVuCisgICAgICAgICAqIGVpdGhlciB0aGUgY2xpZW50IG9yIHRoZSBkZXZpY2UgaGFzIGNob3NlbiB0aGF0IGFsbCBsYXllcnMgc2hvdWxkCisgICAgICAgICAqIGJlIGNvbXBvc2VkIGJ5IHRoZSBjbGllbnQuIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBjbGllbnQgZnJvbQorICAgICAgICAgKiBhcHBseWluZyB0aGUgY29sb3IgdHJhbnNmb3JtIGR1cmluZyBpdHMgY29tcG9zaXRpb24gc3RlcC4KKyAgICAgICAgICovCisgICAgICAgIFNLSVBfQ0xJRU5UX0NPTE9SX1RSQU5TRk9STSA9IDIsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNwZWNpZmllcyB0aGF0IHRoZSBwcmVzZW50IGZlbmNlIG11c3Qgbm90IGJlIHVzZWQgYXMgYW4gYWNjdXJhdGUKKyAgICAgICAgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBwcmVzZW50IHRpbWUgb2YgYSBmcmFtZS4KKyAgICAgICAgICovCisgICAgICAgIFBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFID0gMywKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgKGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgKiBkZWZpbml0aW9uIG9mIENhcGFiaWxpdHkgYWJvdmUpLiBUaGlzIGxpc3QgbXVzdCBub3QgY2hhbmdlIGFmdGVyCisgICAgICogaW5pdGlhbGl6YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNhcGFiaWxpdGllcyBpcyBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRDYXBhYmlsaXRpZXMoKSBnZW5lcmF0ZXMgKHZlYzxDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXMpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY2xpZW50IG9mIHRoZSBjb21wb3Nlci4gQWxsIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoZSBjbGllbnQKKyAgICAgKiBhcmUgb3duZWQgYnkgdGhlIGNsaWVudCBhbmQgYXJlIG9ubHkgdmlzaWJsZSB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlcmUgY2FuIG9ubHkgYmUgb25lIGNsaWVudCBhdCBhbnkgdGltZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIG5vIG1vcmUgY2xpZW50IGNhbiBiZSBjcmVhdGVkIGN1cnJlbnRseS4KKyAgICAgKiBAcmV0dXJuIGNsaWVudCBpcyB0aGUgbmV3bHkgY3JlYXRlZCBjbGllbnQuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGNyZWF0ZUNsaWVudCgpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIElDb21wb3NlckNsaWVudCBjbGllbnQpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oYWwgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNzRjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2FsbGJhY2sgeworICAgIGVudW0gQ29ubmVjdGlvbiA6IGludDMyX3QgeworICAgICAgICBJTlZBTElEID0gMCwKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaGFzIGJlZW4gY29ubmVjdGVkICovCisgICAgICAgIENPTk5FQ1RFRCA9IDEsCisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQgKi8KKyAgICAgICAgRElTQ09OTkVDVEVEID0gMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBnaXZlbiBkaXNwbGF5IGhhcyBlaXRoZXIgYmVlbiBjb25uZWN0ZWQgb3IKKyAgICAgKiBkaXNjb25uZWN0ZWQuIEV2ZXJ5IGFjdGl2ZSBkaXNwbGF5IChldmVuIGEgYnVpbHQtaW4gcGh5c2ljYWwgZGlzcGxheSkKKyAgICAgKiBtdXN0IHRyaWdnZXIgYXQgbGVhc3Qgb25lIGhvdHBsdWcgbm90aWZpY2F0aW9uLCBldmVuIGlmIGl0IG9ubHkgb2NjdXJzCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGJhY2sgcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggaGF2ZSBiZWVuIGNvbm5lY3RlZCBhcmUgYXNzdW1lZCB0byBiZSBpbiBQb3dlck1vZGU6Ok9GRiwKKyAgICAgKiBhbmQgdGhlIG9uVnN5bmMgY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGEgZGlzcGxheSB1bnRpbCB2c3luYworICAgICAqIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCBzZXRWc3luY0VuYWJsZWQuCisgICAgICoKKyAgICAgKiBUaGUgY2xpZW50IG1heSBjYWxsIGJhY2sgaW50byB0aGUgZGV2aWNlIHdoaWxlIHRoZSBjYWxsYmFjayBpcyBpbgorICAgICAqIHByb2dyZXNzLiBUaGUgZGV2aWNlIG11c3Qgc2VyaWFsaXplIGNhbGxzIHRvIHRoaXMgY2FsbGJhY2sgc3VjaCB0aGF0CisgICAgICogb25seSBvbmUgdGhyZWFkIGlzIGNhbGxpbmcgaXQgYXQgYSB0aW1lLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdGhhdCB0cmlnZ2VycyB0aGUgaG90cGx1ZyBldmVudC4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGVkIGluZGljYXRlcyB3aGV0aGVyIHRoZSBkaXNwbGF5IGlzIGNvbm5lY3RlZCBvcgorICAgICAqICAgICAgICBkaXNjb25uZWN0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdG8gdHJpZ2dlciBhIHNjcmVlbiByZWZyZXNoLiBUaGlzIGZvcmNlcyBhbGwgbGF5ZXIKKyAgICAgKiBzdGF0ZSBmb3IgdGhpcyBkaXNwbGF5IHRvIGJlIHJlc2VudCwgYW5kIHRoZSBkaXNwbGF5IHRvIGJlIHZhbGlkYXRlZAorICAgICAqIGFuZCBwcmVzZW50ZWQsIGV2ZW4gaWYgdGhlcmUgaGF2ZSBiZWVuIG5vIGNoYW5nZXMuCisKKyAgICAgKiBUaGlzIHJlZnJlc2ggd2lsbCBvY2N1ciBzb21lIHRpbWUgYWZ0ZXIgdGhlIGNhbGxiYWNrIGlzIGluaXRpYXRlZCwgYnV0CisgICAgICogbm90IG5lY2Vzc2FyaWx5IGJlZm9yZSBpdCByZXR1cm5zLiAgSXQgaXMgc2FmZSB0byB0cmlnZ2VyIHRoaXMgY2FsbGJhY2sKKyAgICAgKiBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aGljaCBjYWxsIGludG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHJlZnJlc2guCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uZXdheSBvblJlZnJlc2goRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCBhIHZzeW5jIGV2ZW50IGhhcyBvY2N1cnJlZC4gVGhpcyBjYWxsYmFjayBtdXN0CisgICAgICogb25seSBiZSB0cmlnZ2VyZWQgd2hlbiB2c3luYyBpcyBlbmFibGVkIGZvciB0aGlzIGRpc3BsYXkgKHRocm91Z2gKKyAgICAgKiBzZXRWc3luY0VuYWJsZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgd2hpY2ggaGFzIHJlY2VpdmVkIGEgdnN5bmMgZXZlbnQKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIGlzIHRoZSBDTE9DS19NT05PVE9OSUMgdGltZSBhdCB3aGljaCB0aGUgdnN5bmMgZXZlbnQKKyAgICAgKiAgICAgICAgb2NjdXJyZWQsIGluIG5hbm9zZWNvbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBvbmV3YXkgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDbGllbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NTcyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbApAQCAtMCwwICsxLDExNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOworaW1wb3J0IElDb21wb3NlckNhbGxiYWNrOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2xpZW50IHsKKyAgICAvKiogRGlzcGxheSBhdHRyaWJ1dGVzIHF1ZXJ5YWJsZSB0aHJvdWdoIGdldERpc3BsYXlBdHRyaWJ1dGUuICovCisgICAgZW51bSBBdHRyaWJ1dGUgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIERpbWVuc2lvbnMgaW4gcGl4ZWxzICovCisgICAgICAgIFdJRFRIID0gMSwKKyAgICAgICAgSEVJR0hUID0gMiwKKworICAgICAgICAvKiogVnN5bmMgcGVyaW9kIGluIG5hbm9zZWNvbmRzICovCisgICAgICAgIFZTWU5DX1BFUklPRCA9IDMsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERvdHMgcGVyIHRob3VzYW5kIGluY2hlcyAoRFBJICogMTAwMCkuIFNjYWxpbmcgYnkgMTAwMCBhbGxvd3MgdGhlc2UKKyAgICAgICAgICogbnVtYmVycyB0byBiZSBzdG9yZWQgaW4gYW4gaW50MzJfdCB3aXRob3V0IGxvc2luZyB0b28gbXVjaAorICAgICAgICAgKiBwcmVjaXNpb24uIElmIHRoZSBEUEkgZm9yIGEgY29uZmlndXJhdGlvbiBpcyB1bmF2YWlsYWJsZSBvciBpcworICAgICAgICAgKiBjb25zaWRlcmVkIHVucmVsaWFibGUsIHRoZSBkZXZpY2UgbWF5IHJldHVybiBVTlNVUFBPUlRFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgRFBJX1ggPSA0LAorICAgICAgICBEUElfWSA9IDUsCisgICAgfTsKKworICAgIC8qKiBEaXNwbGF5IHJlcXVlc3RzIHJldHVybmVkIGJ5IGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIERpc3BsYXlSZXF1ZXN0IDogdWludDMyX3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSW5zdHJ1Y3RzIHRoZSBjbGllbnQgdG8gcHJvdmlkZSBhIG5ldyBjbGllbnQgdGFyZ2V0IGJ1ZmZlciwgZXZlbiBpZgorICAgICAgICAgKiBubyBsYXllcnMgYXJlIG1hcmtlZCBmb3IgY2xpZW50IGNvbXBvc2l0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgRkxJUF9DTElFTlRfVEFSR0VUID0gMSA8PCAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnN0cnVjdHMgdGhlIGNsaWVudCB0byB3cml0ZSB0aGUgcmVzdWx0IG9mIGNsaWVudCBjb21wb3NpdGlvbgorICAgICAgICAgKiBkaXJlY3RseSBpbnRvIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlci4gSWYgYW55IG9mIHRoZQorICAgICAgICAgKiBsYXllcnMgYXJlIG5vdCBtYXJrZWQgYXMgQ29tcG9zaXRpb246OkNMSUVOVCBvciB0aGUgZ2l2ZW4gZGlzcGxheQorICAgICAgICAgKiBpcyBub3QgYSB2aXJ0dWFsIGRpc3BsYXksIHRoaXMgcmVxdWVzdCBoYXMgbm8gZWZmZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgV1JJVEVfQ0xJRU5UX1RBUkdFVF9UT19PVVRQVVQgPSAxIDw8IDEsCisgICAgfTsKKworICAgIC8qKiBMYXllciByZXF1ZXN0cyByZXR1cm5lZCBmcm9tIGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIExheWVyUmVxdWVzdCA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbGllbnQgbXVzdCBjbGVhciBpdHMgdGFyZ2V0IHdpdGggdHJhbnNwYXJlbnQgcGl4ZWxzIHdoZXJlCisgICAgICAgICAqIHRoaXMgbGF5ZXIgd291bGQgYmUuIFRoZSBjbGllbnQgbWF5IGlnbm9yZSB0aGlzIHJlcXVlc3QgaWYgdGhlCisgICAgICAgICAqIGxheWVyIG11c3QgYmUgYmxlbmRlZC4KKyAgICAgICAgICovCisgICAgICAgIENMRUFSX0NMSUVOVF9UQVJHRVQgPSAxIDw8IDAsCisgICAgfTsKKworICAgIC8qKiBQb3dlciBtb2RlcyBmb3IgdXNlIHdpdGggc2V0UG93ZXJNb2RlLiAqLworICAgIGVudW0gUG93ZXJNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBpcyBmdWxseSBvZmYgKGJsYW5rZWQpLiAqLworICAgICAgICBPRkYgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGVzZSBhcmUgb3B0aW9uYWwgbG93IHBvd2VyIG1vZGVzLiBnZXREb3plU3VwcG9ydCBtYXkgYmUgY2FsbGVkIHRvCisgICAgICAgICAqIGRldGVybWluZSB3aGV0aGVyIGEgZ2l2ZW4gZGlzcGxheSBzdXBwb3J0cyB0aGVzZSBtb2Rlcy4KKyAgICAgICAgICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIHR1cm5lZCBvbiBhbmQgY29uZmlndXJlZCBpbiBhIGxvdyBwb3dlciBzdGF0ZSB0aGF0CisgICAgICAgICAqIGlzIHN1aXRhYmxlIGZvciBwcmVzZW50aW5nIGFtYmllbnQgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIsCisgICAgICAgICAqIHBvc3NpYmx5IHdpdGggbG93ZXIgZmlkZWxpdHkgdGhhbiBPTiwgYnV0IHdpdGggZ3JlYXRlciBlZmZpY2llbmN5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRSA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIGNvbmZpZ3VyZWQgYXMgaW4gRE9aRSBidXQgbWF5IHN0b3AgYXBwbHlpbmcgZGlzcGxheQorICAgICAgICAgKiB1cGRhdGVzIGZyb20gdGhlIGNsaWVudC4gVGhpcyBpcyBlZmZlY3RpdmVseSBhIGhpbnQgdG8gdGhlIGRldmljZQorICAgICAgICAgKiB0aGF0IGRyYXdpbmcgdG8gdGhlIGRpc3BsYXkgaGFzIGJlZW4gc3VzcGVuZGVkIGFuZCB0aGF0IHRoZSB0aGUKKyAgICAgICAgICogZGV2aWNlIG11c3QgcmVtYWluIG9uIGluIGEgbG93IHBvd2VyIHN0YXRlIGFuZCBjb250aW51ZQorICAgICAgICAgKiBkaXNwbGF5aW5nIGl0cyBjdXJyZW50IGNvbnRlbnRzIGluZGVmaW5pdGVseSB1bnRpbCB0aGUgcG93ZXIgbW9kZQorICAgICAgICAgKiBjaGFuZ2VzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1vZGUgbWF5IGFsc28gYmUgdXNlZCBhcyBhIHNpZ25hbCB0byBlbmFibGUgaGFyZHdhcmUtYmFzZWQKKyAgICAgICAgICogZG96ZSBmdW5jdGlvbmFsaXR5LiBJbiB0aGlzIGNhc2UsIHRoZSBkZXZpY2UgaXMgZnJlZSB0byB0YWtlIG92ZXIKKyAgICAgICAgICogdGhlIGRpc3BsYXkgYW5kIG1hbmFnZSBpdCBhdXRvbm9tb3VzbHkgdG8gaW1wbGVtZW50IGEgbG93IHBvd2VyCisgICAgICAgICAqIGFsd2F5cy1vbiBkaXNwbGF5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRV9TVVNQRU5EID0gMywKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaXMgZnVsbHkgb24uICovCisgICAgICAgIE9OID0gMiwKKyAgICB9OworCisgICAgLyoqIFZzeW5jIHZhbHVlcyBwYXNzZWQgdG8gc2V0VnN5bmNFbmFibGVkLiAqLworICAgIGVudW0gVnN5bmMgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIEVuYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRU5BQkxFID0gMSwKKworICAgICAgICAvKiogRGlzYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRElTQUJMRSA9IDIsCisgICAgfTsKKworICAgIC8qKiBCbGVuZCBtb2Rlcywgc2V0dGFibGUgcGVyIGxheWVyLiAqLworICAgIGVudW0gQmxlbmRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICovCisgICAgICAgIE5PTkUgPSAxLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBQUkVNVUxUSVBMSUVEID0gMiwKKworICAgICAgICAvKiogY29sb3JPdXQgPSBjb2xvclNyYyAqIGFscGhhU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBDT1ZFUkFHRSA9IDMsCisgICAgfTsKKworICAgIC8qKiBQb3NzaWJsZSBjb21wb3NpdGlvbiB0eXBlcyBmb3IgYSBnaXZlbiBsYXllci4gKi8KKyAgICBlbnVtIENvbXBvc2l0aW9uIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY2xpZW50IG11c3QgY29tcG9zaXRlIHRoaXMgbGF5ZXIgaW50byB0aGUgY2xpZW50IHRhcmdldCBidWZmZXIKKyAgICAgICAgICogKHByb3ZpZGVkIHRvIHRoZSBkZXZpY2UgdGhyb3VnaCBzZXRDbGllbnRUYXJnZXQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGV2aWNlIG11c3Qgbm90IHJlcXVlc3QgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBmb3IgbGF5ZXJzCisgICAgICAgICAqIG9mIHRoaXMgdHlwZS4KKyAgICAgICAgICovCisgICAgICAgIENMSUVOVCA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkZXZpY2UgbXVzdCBoYW5kbGUgdGhlIGNvbXBvc2l0aW9uIG9mIHRoaXMgbGF5ZXIgdGhyb3VnaCBhCisgICAgICAgICAqIGhhcmR3YXJlIG92ZXJsYXkgb3Igb3RoZXIgc2ltaWxhciBtZWFucy4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgREVWSUNFID0gMiwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IHJlbmRlciB0aGlzIGxheWVyIHVzaW5nIHRoZSBjb2xvciBzZXQgdGhyb3VnaAorICAgICAgICAgKiBzZXRMYXllckNvbG9yLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyCisgICAgICAgICAqIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIFNPTElEX0NPTE9SLCB0aGUgZGV2aWNlIG11c3QgcmVxdWVzdCB0aGF0CisgICAgICAgICAqIHRoZSBjb21wb3NpdGlvbiB0eXBlIG9mIHRoYXQgbGF5ZXIgaXMgY2hhbmdlZCB0byBDTElFTlQgdXBvbiB0aGUKKyAgICAgICAgICogbmV4dCBjYWxsIHRvIHZhbGlkYXRlRGlzcGxheS4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgU09MSURfQ09MT1IgPSAzLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTaW1pbGFyIHRvIERFVklDRSwgYnV0IHRoZSBwb3NpdGlvbiBvZiB0aGlzIGxheWVyIG1heSBhbHNvIGJlIHNldAorICAgICAgICAgKiBhc3luY2hyb25vdXNseSB0aHJvdWdoIHNldEN1cnNvclBvc2l0aW9uLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICAgICAgICogbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIENVUlNPUiwgdGhlIGRldmljZQorICAgICAgICAgKiBtdXN0IHJlcXVlc3QgdGhhdCB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGF0IGxheWVyIGlzIGNoYW5nZWQgdG8KKyAgICAgICAgICogQ0xJRU5UIHVwb24gdGhlIG5leHQgY2FsbCB0byB2YWxpZGF0ZURpc3BsYXkuCisgICAgICAgICAqCisgICAgICAgICAqIFVwb24gdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGEgY2hhbmdlIGZyb20gdGhpcworICAgICAgICAgKiB0eXBlIHRvIGVpdGhlciBERVZJQ0Ugb3IgQ0xJRU5ULiAgQ2hhbmdpbmcgdG8gREVWSUNFIHdpbGwgcHJldmVudAorICAgICAgICAgKiB0aGUgdXNlIG9mIHNldEN1cnNvclBvc2l0aW9uIGJ1dCBzdGlsbCBwZXJtaXQgdGhlIGRldmljZSB0bworICAgICAgICAgKiBjb21wb3NpdGUgdGhlIGxheWVyLgorICAgICAgICAgKi8KKyAgICAgICAgQ1VSU09SID0gNCwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IGhhbmRsZSB0aGUgY29tcG9zaXRpb24gb2YgdGhpcyBsYXllciwgYXMgd2VsbCBhcworICAgICAgICAgKiBpdHMgYnVmZmVyIHVwZGF0ZXMgYW5kIGNvbnRlbnQgc3luY2hyb25pemF0aW9uLiBPbmx5IHN1cHBvcnRlZCBvbgorICAgICAgICAgKiBkZXZpY2VzIHdoaWNoIHByb3ZpZGUgQ2FwYWJpbGl0eTo6U0lERUJBTkRfU1RSRUFNLgorICAgICAgICAgKgorICAgICAgICAgKiBVcG9uIHZhbGlkYXRlRGlzcGxheSwgdGhlIGRldmljZSBtYXkgcmVxdWVzdCBhIGNoYW5nZSBmcm9tIHRoaXMKKyAgICAgICAgICogdHlwZSB0byBlaXRoZXIgREVWSUNFIG9yIENMSUVOVCwgYnV0IGl0IGlzIHVubGlrZWx5IHRoYXQgY29udGVudAorICAgICAgICAgKiB3aWxsIGRpc3BsYXkgY29ycmVjdGx5IGluIHRoZXNlIGNhc2VzLgorICAgICAgICAgKi8KKyAgICAgICAgU0lERUJBTkQgPSA1LAorICAgIH07CisKKyAgICAvKiogRGlzcGxheSB0eXBlcyByZXR1cm5lZCBieSBnZXREaXNwbGF5VHlwZS4gKi8KKyAgICBlbnVtIERpc3BsYXlUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbGwgcGh5c2ljYWwgZGlzcGxheXMsIGluY2x1ZGluZyBib3RoIGludGVybmFsIGRpc3BsYXlzIGFuZAorICAgICAgICAgKiBob3RwbHVnZ2FibGUgZXh0ZXJuYWwgZGlzcGxheXMuCisgICAgICAgICAqLworICAgICAgICBQSFlTSUNBTCA9IDEsCisKKyAgICAgICAgLyoqIFZpcnR1YWwgZGlzcGxheXMgY3JlYXRlZCBieSBjcmVhdGVWaXJ0dWFsRGlzcGxheS4gKi8KKyAgICAgICAgVklSVFVBTCA9IDIsCisgICAgfTsKKworICAgIC8qKiBTcGVjaWFsIGluZGV4IHZhbHVlcyAoYWx3YXlzIG5lZ2F0aXZlKSBmb3IgY29tbWFuZCBxdWV1ZSBjb21tYW5kcy4gKi8KKyAgICBlbnVtIEhhbmRsZUluZGV4IDogaW50MzJfdCB7CisgICAgICAgIC8qKiBObyBoYW5kbGUgKi8KKyAgICAgICAgRU1QVFkgPSAtMSwKKworICAgICAgICAvKiogVXNlIGNhY2hlZCBoYW5kbGUgKi8KKyAgICAgICAgQ0FDSEVEID0gLTIsCisgICAgfTsKKworICAgIHN0cnVjdCBSZWN0IHsKKyAgICAgICAgaW50MzJfdCBsZWZ0OworICAgICAgICBpbnQzMl90IHRvcDsKKyAgICAgICAgaW50MzJfdCByaWdodDsKKyAgICAgICAgaW50MzJfdCBib3R0b207CisgICAgfTsKKworICAgIHN0cnVjdCBGUmVjdCB7CisgICAgICAgIGZsb2F0IGxlZnQ7CisgICAgICAgIGZsb2F0IHRvcDsKKyAgICAgICAgZmxvYXQgcmlnaHQ7CisgICAgICAgIGZsb2F0IGJvdHRvbTsKKyAgICB9OworCisgICAgc3RydWN0IENvbG9yIHsKKyAgICAgICAgdWludDhfdCByOworICAgICAgICB1aW50OF90IGc7CisgICAgICAgIHVpbnQ4X3QgYjsKKyAgICAgICAgdWludDhfdCBhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIElDb21wb3NlckNhbGxiYWNrIG9iamVjdCBmb3IgdGhlIGRldmljZSB0byBjYWxsLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaXMgdGhlIElDb21wb3NlckNhbGxiYWNrIG9iamVjdC4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgcmVnaXN0ZXJDYWxsYmFjayhJQ29tcG9zZXJDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2aXJ0dWFsIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZQorICAgICAqICh3aGljaCBtYXkgYmUgMCkuIFRoZSBjbGllbnQgbXVzdCBub3QgYXR0ZW1wdCB0byBjcmVhdGUgbW9yZSB0aGFuIHRoaXMKKyAgICAgKiBtYW55IHZpcnR1YWwgZGlzcGxheXMgb24gdGhpcyBkZXZpY2UuIFRoaXMgbnVtYmVyIG11c3Qgbm90IGNoYW5nZSBmb3IKKyAgICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gY291bnQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZpcnR1YWwgZGlzcGxheXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IHZpcnR1YWwgZGlzcGxheSB3aXRoIHRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0LiBUaGUKKyAgICAgKiBmb3JtYXQgcGFzc2VkIGludG8gdGhpcyBmdW5jdGlvbiBpcyB0aGUgZGVmYXVsdCBmb3JtYXQgcmVxdWVzdGVkIGJ5IHRoZQorICAgICAqIGNvbnN1bWVyIG9mIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBUaGUgZGlzcGxheSBtdXN0IGJlIGFzc3VtZWQgdG8gYmUgb24gZnJvbSB0aGUgdGltZSB0aGUgZmlyc3QgZnJhbWUgaXMKKyAgICAgKiBwcmVzZW50ZWQgdW50aWwgdGhlIGRpc3BsYXkgaXMgZGVzdHJveWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIGlzIHRoZSB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgaGVpZ2h0IGluIHBpeGVscy4KKyAgICAgKiBAcGFyYW0gZm9ybWF0SGludCBpcyB0aGUgZGVmYXVsdCBvdXRwdXQgYnVmZmVyIGZvcm1hdCBzZWxlY3RlZCBieQorICAgICAqICAgICAgICB0aGUgY29uc3VtZXIuCisgICAgICogQHBhcmFtIG91dHB1dEJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIG91dHB1dCBidWZmZXIgc2xvdHMgdG8gYmUKKyAgICAgKiAgICAgICAgcmVzZXJ2ZWQuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiB0aGUgd2lkdGggb3IgaGVpZ2h0IGlzIHRvbyBsYXJnZSBmb3IgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBkZXZpY2UgdG8gYmUgYWJsZSB0byBjcmVhdGUgYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgZGV2aWNlIGlzIHVuYWJsZSB0byBjcmVhdGUgYSBuZXcgdmlydHVhbAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgYXQgdGhpcyB0aW1lLgorICAgICAqIEByZXR1cm4gZGlzcGxheSBpcyB0aGUgbmV3bHktY3JlYXRlZCB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogQHJldHVybiBmb3JtYXQgaXMgdGhlIGZvcm1hdCBvZiB0aGUgYnVmZmVyIHRoZSBkZXZpY2Ugd2lsbCBwcm9kdWNlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cm95cyBhIHZpcnR1YWwgZGlzcGxheS4gQWZ0ZXIgdGhpcyBjYWxsIGFsbCByZXNvdXJjZXMgY29uc3VtZWQgYnkKKyAgICAgKiB0aGlzIGRpc3BsYXkgbWF5IGJlIGZyZWVkIGJ5IHRoZSBkZXZpY2UgYW5kIGFueSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAqIHRoaXMgZGlzcGxheSBtdXN0IGZhaWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgdmlydHVhbCBkaXNwbGF5IHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gdGhlIGRpc3BsYXkgaGFuZGxlIHdoaWNoIHdhcyBwYXNzZWQgaW4gZG9lcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICBub3QgcmVmZXIgdG8gYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBsYXllciBvbiB0aGUgZ2l2ZW4gZGlzcGxheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbGF5ZXIuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGJ1ZmZlciBzbG90IHRvIGJlIHJlc2VydmVkLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGRldmljZSB3YXMgdW5hYmxlIHRvIGNyZWF0ZSBhIGxheWVyIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5ZXIgaXMgdGhlIGhhbmRsZSBvZiB0aGUgbmV3IGxheWVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KQorICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgIExheWVyIGxheWVyKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIHRoZSBnaXZlbiBsYXllci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRoZSBsYXllciB3YXMgY3JlYXRlZC4KKyAgICAgKiBAcGFyYW0gbGF5ZXIgaXMgdGhlIGxheWVyIHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfTEFZRVIgd2hlbiBhbiBpbnZhbGlkIGxheWVyIGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggZGlzcGxheSBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICoKKyAgICAgKiBJZiBubyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gaXMgY3VycmVudGx5IGFjdGl2ZSwgdGhpcyBmdW5jdGlvbiBtdXN0CisgICAgICogcmV0dXJuIEJBRF9DT05GSUcuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2xpZW50IHRvIGNhbGwKKyAgICAgKiBzZXRBY3RpdmVDb25maWcgd2l0aCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gYmVmb3JlIGF0dGVtcHRpbmcgdG8gcHJlc2VudAorICAgICAqIGFueXRoaW5nIG9uIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgcXVlcmllZC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9DT05GSUcgd2hlbiBubyBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICogQHJldHVybiBjb25maWcgaXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZGlzcGxheSBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5KSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBhIGNsaWVudCB0YXJnZXQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydGllcyBjYW4gYmUKKyAgICAgKiBoYW5kbGVkIGJ5IHRoZSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHRydWUgZm9yIGEgY2xpZW50IHRhcmdldCB3aXRoIHdpZHRoIGFuZAorICAgICAqIGhlaWdodCBlcXVhbCB0byB0aGUgYWN0aXZlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBkaW1lbnNpb25zLAorICAgICAqIFBpeGVsRm9ybWF0OjpSR0JBXzg4ODgsIGFuZCBEYXRhc3BhY2U6OlVOS05PV04uIEl0IGlzIG5vdCByZXF1aXJlZCB0bworICAgICAqIHJldHVybiB0cnVlIGZvciBhbnkgb3RoZXIgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSB3aWR0aCBpcyB0aGUgY2xpZW50IHRhcmdldCB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgY2xpZW50IHRhcmdldCBoZWlnaHQgaW4gcGl4ZWxzLgorICAgICAqIEBwYXJhbSBmb3JtYXQgaXMgdGhlIGNsaWVudCB0YXJnZXQgZm9ybWF0LgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGNsaWVudCB0YXJnZXQgZGF0YXNwYWNlLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29sb3IgbW9kZXMgc3VwcG9ydGVkIG9uIHRoaXMgZGlzcGxheS4KKyAgICAgKgorICAgICAqIEFsbCBkZXZpY2VzIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBDb2xvck1vZGU6Ok5BVElWRS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gbW9kZXMgaXMgYW4gYXJyYXkgb2YgY29sb3IgbW9kZXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KQorICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICB2ZWM8Q29sb3JNb2RlPiBtb2Rlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZGlzcGxheSBhdHRyaWJ1dGUgdmFsdWUgZm9yIGEgcGFydGljdWxhciBkaXNwbGF5CisgICAgICogY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBmb3Igd2hpY2ggdG8gcmV0dXJuCisgICAgICogICAgICAgIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gY29uZmlnIGRvZXMgbm90IG5hbWUgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICB0aGlzIGRpc3BsYXkuCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gYXR0cmlidXRlIGlzIHVucmVjb2duaXplZC4KKyAgICAgKiAgICAgICAgIFVOU1VQUE9SVEVEIHdoZW4gYXR0cmlidXRlIGNhbm5vdCBiZSBxdWVyaWVkIGZvciB0aGUgY29uZmlnLgorICAgICAqIEByZXR1cm4gdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUpCisgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBoYW5kbGVzIGZvciBhbGwgb2YgdGhlIHZhbGlkIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgb24gdGhpcworICAgICAqIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byBxdWVyeS4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ3MgaXMgYW4gYXJyYXkgb2YgY29uZmlndXJhdGlvbiBoYW5kbGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpCisgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgdmVjPENvbmZpZz4gY29uZmlncyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgdmVyc2lvbiBvZiB0aGUgZGlzcGxheSdzIG5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIG5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSkgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwgc3RyaW5nIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IGlzIGEgcGh5c2ljYWwgb3IgdmlydHVhbCBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gcXVlcnkuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0eXBlIGlzIHRoZSB0eXBlIG9mIHRoZSBkaXNwbGF5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIERpc3BsYXlUeXBlIHR5cGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IHN1cHBvcnRzIFBvd2VyTW9kZTo6RE9aRSBhbmQKKyAgICAgKiBQb3dlck1vZGU6OkRPWkVfU1VTUEVORC4gRE9aRV9TVVNQRU5EIG1heSBub3QgcHJvdmlkZSBhbnkgYmVuZWZpdCBvdmVyCisgICAgICogRE9aRSAoc2VlIHRoZSBkZWZpbml0aW9uIG9mIFBvd2VyTW9kZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiksIGJ1dCBpZgorICAgICAqIGJvdGggRE9aRSBhbmQgRE9aRV9TVVNQRU5EIGFyZSBubyBkaWZmZXJlbnQgZnJvbSBQb3dlck1vZGU6Ok9OLCB0aGUKKyAgICAgKiBkZXZpY2UgbXVzdCBub3QgY2xhaW0gc3VwcG9ydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gc3VwcG9ydCBpcyB0cnVlIG9ubHkgd2hlbiB0aGUgZGlzcGxheSBzdXBwb3J0cyBkb3plIG1vZGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIGJvb2wgc3VwcG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgY2FwYWJpbGl0aWVzIG9mIHRoZSBnaXZlbiBkaXNwbGF5LAorICAgICAqIHdoaWNoIGFyZSBpbnZhcmlhbnQgd2l0aCByZWdhcmQgdG8gdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggYXJlIG5vdCBIRFItY2FwYWJsZSBtdXN0IHJldHVybiBubyB0eXBlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gdHlwZXMgaXMgYW4gYXJyYXkgb2YgSERSIHR5cGVzLCBtYXkgaGF2ZSAwIGVsZW1lbnRzIGlmIHRoZQorICAgICAqICAgICAgICAgZGlzcGxheSBpcyBub3QgSERSLWNhcGFibGUuCisgICAgICogQHJldHVybiBtYXhMdW1pbmFuY2UgaXMgdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGx1bWluYW5jZSBmb3IgdGhpcworICAgICAqICAgICAgICAgZGlzcGxheSBpbiBjZC9tXjIuCisgICAgICogQHJldHVybiBtYXhBdmVyYWdlTHVtaW5hbmNlIC0gdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGZyYW1lLWF2ZXJhZ2UKKyAgICAgKiAgICAgICAgIGx1bWluYW5jZSBmb3IgdGhpcyBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKiBAcmV0dXJuIG1pbkx1bWluYW5jZSBpcyB0aGUgZGVzaXJlZCBjb250ZW50IG1pbmltdW0gbHVtaW5hbmNlIGZvciB0aGlzCisgICAgICogICAgICAgICBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgIHZlYzxIZHI+IHR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBtYXhMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1pbkx1bWluYW5jZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjbGllbnQgdGFyZ2V0IHNsb3RzIHRvIGJlIHJlc2VydmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHNsb3RzIGFyZSByZXNlcnZlZC4KKyAgICAgKiBAcGFyYW0gY2xpZW50VGFyZ2V0U2xvdENvdW50IGlzIHRoZSBzbG90IGNvdW50IGZvciBjbGllbnQgdGFyZ2V0cy4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHVuYWJsZSB0byByZXNlcnZlIHRoZSBzbG90cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQorICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkaXNwbGF5LiBVcG9uIHJldHVybmluZywgdGhlCisgICAgICogZ2l2ZW4gZGlzcGxheSBjb25maWd1cmF0aW9uIG11c3QgYmUgYWN0aXZlIGFuZCByZW1haW4gc28gdW50aWwgZWl0aGVyCisgICAgICogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWdhaW4gb3IgdGhlIGRpc3BsYXkgaXMgZGlzY29ubmVjdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgc2V0LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIG5ldyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gaGFuZGxlIHBhc3NlZCBpbiBpcyBub3QgdmFsaWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZGlzcGxheS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb2xvciBtb2RlIG9mIHRoZSBnaXZlbiBkaXNwbGF5LgorICAgICAqCisgICAgICogVXBvbiByZXR1cm5pbmcgZnJvbSB0aGlzIGZ1bmN0aW9uLCB0aGUgY29sb3IgbW9kZSBjaGFuZ2UgbXVzdCBoYXZlCisgICAgICogZnVsbHkgdGFrZW4gZWZmZWN0LgorICAgICAqCisgICAgICogQWxsIGRldmljZXMgbXVzdCBzdXBwb3J0IGF0IGxlYXN0IENvbG9yTW9kZTo6TkFUSVZFLCBhbmQgZGlzcGxheXMgYXJlCisgICAgICogYXNzdW1lZCB0byBiZSBpbiB0aGlzIG1vZGUgdXBvbiBob3RwbHVnLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGNvbG9yIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBtb2RlIGlzIHRoZSBtb2RlIHRvIHNldCB0by4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBtb2RlIGlzIG5vdCBhIHZhbGlkIGNvbG9yIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvd2VyIG1vZGUgb2YgdGhlIGdpdmVuIGRpc3BsYXkuIFRoZSB0cmFuc2l0aW9uIG11c3QgYmUKKyAgICAgKiBjb21wbGV0ZSB3aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gSXQgaXMgdmFsaWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uCisgICAgICogbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBwb3dlciBtb2RlLgorICAgICAqCisgICAgICogQWxsIGRpc3BsYXlzIG11c3Qgc3VwcG9ydCBQb3dlck1vZGU6Ok9OIGFuZCBQb3dlck1vZGU6Ok9GRi4gIFdoZXRoZXIgYQorICAgICAqIGRpc3BsYXkgc3VwcG9ydHMgUG93ZXJNb2RlOjpET1pFIG9yIFBvd2VyTW9kZTo6RE9aRV9TVVNQRU5EIG1heSBiZQorICAgICAqIHF1ZXJpZWQgdXNpbmcgZ2V0RG96ZVN1cHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byB3aGljaCB0aGUgcG93ZXIgbW9kZSBpcyBzZXQuCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBwb3dlciBtb2RlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgQkFEX1BBUkFNRVRFUiB3aGVuIG1vZGUgd2FzIG5vdCBhIHZhbGlkIHBvd2VyIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHZzeW5jIHNpZ25hbCBmb3IgdGhlIGdpdmVuIGRpc3BsYXkuIFZpcnR1YWwKKyAgICAgKiBkaXNwbGF5cyBuZXZlciBnZW5lcmF0ZSB2c3luYyBjYWxsYmFja3MsIGFuZCBhbnkgYXR0ZW1wdCB0byBlbmFibGUKKyAgICAgKiB2c3luYyBmb3IgYSB2aXJ0dWFsIGRpc3BsYXkgdGhvdWdoIHRoaXMgZnVuY3Rpb24gbXVzdCBzdWNjZWVkIGFuZCBoYXZlCisgICAgICogbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHZzeW5jIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmFibGVkIGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZzeW5jCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gZW5hYmxlZCB3YXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpbnB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBzZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZXRJbnB1dENvbW1hbmRRdWV1ZShmbXFfc3luYzx1aW50MzJfdD4gZGVzY3JpcHRvcikKKyAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvdXRwdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IG9ubHkgYmUgY2FsbGVkIGluc2lkZSBleGVjdXRlQ29tbWFuZHMgY2xvc3VyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBnZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgb3V0cHV0IGNvbW1hbmQgcXVldWUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZSgpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgZm1xX3N5bmM8dWludDMyX3Q+IGRlc2NyaXB0b3IpOworCisgICAgLyoqCisgICAgICogRXhlY3V0ZXMgY29tbWFuZHMgZnJvbSB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLiBSZXR1cm4gdmFsdWVzCisgICAgICogZ2VuZXJhdGVkIGJ5IHRoZSBpbnB1dCBjb21tYW5kcyBhcmUgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGNvbW1hbmQKKyAgICAgKiBtZXNzYWdlIHF1ZXVlIGluIHRoZSBmb3JtIG9mIHZhbHVlIGNvbW1hbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGluTGVuZ3RoIGlzIHRoZSBsZW5ndGggb2YgaW5wdXQgY29tbWFuZHMuCisgICAgICogQHBhcmFtIGluSGFuZGxlcyBpcyBhbiBhcnJheSBvZiBoYW5kbGVzIHJlZmVyZW5jZWQgYnkgdGhlIGlucHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBpbkxlbmd0aCBpcyBub3QgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kcyBpbiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIG91dHB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUgd2FzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5IGRyYWluZWQuCisgICAgICogQHBhcmFtIG91dFF1ZXVlQ2hhbmdlZCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb3V0cHV0IGNvbW1hbmQgbWVzc2FnZQorICAgICAqICAgICAgICBxdWV1ZSBoYXMgY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gb3V0TGVuZ3RoIGlzIHRoZSBsZW5ndGggb2Ygb3V0cHV0IGNvbW1hbmRzLgorICAgICAqIEBwYXJhbSBvdXRIYW5kbGVzIGlzIGFuIGFycmF5IG9mIGhhbmRsZXMgcmVmZXJlbmNlZCBieSB0aGUgb3V0cHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGluSGFuZGxlcykKKyAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIGJvb2wgb3V0UXVldWVDaGFuZ2VkLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IG91dEhhbmRsZXMpOworCisgICAgLyoqCisgICAgICogU0VMRUNUX0RJU1BMQVkgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisgICAgICoKKyAgICAgKiBTZWxlY3RzIHRoZSBjdXJyZW50IGRpc3BsYXkgaW1wbGllZCBieSBhbGwgb3RoZXIgY29tbWFuZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VMRUNUX0xBWUVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2VsZWN0TGF5ZXIoTGF5ZXIgbGF5ZXIpOworICAgICAqCisgICAgICogU2VsZWN0cyB0aGUgY3VycmVudCBsYXllciBpbXBsaWVkIGJ5IGFsbCBpbXBsaWNpdCBsYXllciBjb21tYW5kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgbGF5ZXIuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9FUlJPUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldEVycm9yKHVpbnQzMl90IGxvY2F0aW9uLCBFcnJvciBlcnJvcik7CisgICAgICoKKyAgICAgKiBJbmRpY2F0ZXMgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5IGEgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBjb21tYW5kIGluIHRoZSBpbnB1dCBjb21tYW5kCisgICAgICogICAgICAgIG1lc3NhZ2UgcXVldWUuCisgICAgICogQHBhcmFtIGVycm9yIGlzIHRoZSBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGNvbW1hbmQuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXModmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM8Q29tcG9zaXRpb24+IHR5cGVzKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGxheWVycyBmb3Igd2hpY2ggdGhlIGRldmljZSByZXF1aXJlcyBhIGRpZmZlcmVudCBjb21wb3NpdGlvbgorICAgICAqIHR5cGUgdGhhbiBoYWQgYmVlbiBzZXQgcHJpb3IgdG8gdGhlIGxhc3QgY2FsbCB0byBWQUxJREFURV9ESVNQTEFZLiBUaGUKKyAgICAgKiBjbGllbnQgbXVzdCBlaXRoZXIgdXBkYXRlIGl0cyBzdGF0ZSB3aXRoIHRoZXNlIHR5cGVzIGFuZCBjYWxsCisgICAgICogQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUywgb3IgbXVzdCBzZXQgbmV3IHR5cGVzIGFuZCBhdHRlbXB0IHRvIHZhbGlkYXRlCisgICAgICogdGhlIGRpc3BsYXkgYWdhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF5ZXJzIGlzIGFuIGFycmF5IG9mIGxheWVyIGhhbmRsZXMuCisgICAgICogQHBhcmFtIHR5cGVzIGlzIGFuIGFycmF5IG9mIGNvbXBvc2l0aW9uIHR5cGVzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiAgICAgICAgIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfRElTUExBWV9SRVFVRVNUUyBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldERpc3BsYXlSZXF1ZXN0cyh1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQzMl90PiBsYXllclJlcXVlc3RNYXNrcyk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGFuZCB0aGUgbGF5ZXIgcmVxdWVzdHMgcmVxdWlyZWQgZm9yIHRoZSBsYXN0CisgICAgICogdmFsaWRhdGVkIGNvbmZpZ3VyYXRpb24uCisgICAgICoKKyAgICAgKiBEaXNwbGF5IHJlcXVlc3RzIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSBjbGllbnQgbXVzdCBoYW5kbGUKKyAgICAgKiB0aGUgY2xpZW50IHRhcmdldC4gTGF5ZXIgcmVxdWVzdHMgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdGhlCisgICAgICogY2xpZW50IG11c3QgaGFuZGxlIGFuIGluZGl2aWR1YWwgbGF5ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheVJlcXVlc3RNYXNrIGlzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGZvciB0aGUgY3VycmVudAorICAgICAqICAgICAgICB2YWxpZGF0ZWQgc3RhdGUuCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllcnMgd2hpY2ggYWxsIGhhdmUgYXQgbGVhc3Qgb25lCisgICAgICogICAgICAgIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGxheWVyUmVxdWVzdE1hc2tzIGlzIHRoZSByZXF1ZXN0cyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZWxlbWVudAorICAgICAqICAgICAgICBvZiBsYXllcnMuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9QUkVTRU5UX0ZFTkNFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UHJlc2VudEZlbmNlKGludDMyX3QgcHJlc2VudEZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcHJlc2VudCBmZW5jZSBhcyBhIHJlc3VsdCBvZiBQUkVTRU5UX0RJU1BMQVkuIEZvciBwaHlzaWNhbAorICAgICAqIGRpc3BsYXlzLCB0aGlzIGZlbmNlIG11c3QgYmUgc2lnbmFsZWQgYXQgdGhlIHZzeW5jIHdoZW4gdGhlIHJlc3VsdAorICAgICAqIG9mIGNvbXBvc2l0aW9uIG9mIHRoaXMgZnJhbWUgc3RhcnRzIHRvIGFwcGVhciAoZm9yIHZpZGVvLW1vZGUgcGFuZWxzKQorICAgICAqIG9yIHN0YXJ0cyB0byB0cmFuc2ZlciB0byBwYW5lbCBtZW1vcnkgKGZvciBjb21tYW5kLW1vZGUgcGFuZWxzKS4gRm9yCisgICAgICogdmlydHVhbCBkaXNwbGF5cywgdGhpcyBmZW5jZSBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gd3JpdGVzIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIgaGF2ZSBjb21wbGV0ZWQgYW5kIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIGl0LgorICAgICAqCisgICAgICogQHBhcmFtIHByZXNlbnRGZW5jZUluZGV4IGlzIGFuIGluZGV4IGludG8gb3V0SGFuZGxlcyBhcnJheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX1JFTEVBU0VfRkVOQ0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UmVsZWFzZUZlbmNlcyh2ZWM8TGF5ZXI+IGxheWVycywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdmVjPGludDMyX3Q+IHJlbGVhc2VGZW5jZUluZGljZXMpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcmVsZWFzZSBmZW5jZXMgZm9yIGRldmljZSBsYXllcnMgb24gdGhpcyBkaXNwbGF5IHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIG5ldyBidWZmZXIgY29udGVudHMgdGhpcyBmcmFtZS4KKyAgICAgKgorICAgICAqIEEgcmVsZWFzZSBmZW5jZSBpcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdAorICAgICAqIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgdGhlIGRldmljZSBoYXMgZmluaXNoZWQgcmVhZGluZyBmcm9tIHRoZQorICAgICAqIGJ1ZmZlciBwcmVzZW50ZWQgaW4gdGhlIHByaW9yIGZyYW1lLiBUaGlzIGluZGljYXRlcyB0aGF0IGl0IGlzIHNhZmUgdG8KKyAgICAgKiBzdGFydCB3cml0aW5nIHRvIHRoZSBidWZmZXIgYWdhaW4uIElmIGEgZ2l2ZW4gbGF5ZXIncyBmZW5jZSBpcyBub3QKKyAgICAgKiByZXR1cm5lZCBmcm9tIHRoaXMgZnVuY3Rpb24sIGl0IG11c3QgYmUgYXNzdW1lZCB0aGF0IHRoZSBidWZmZXIKKyAgICAgKiBwcmVzZW50ZWQgb24gdGhlIHByZXZpb3VzIGZyYW1lIGlzIHJlYWR5IHRvIGJlIHdyaXR0ZW4uCisgICAgICoKKyAgICAgKiBUaGUgZmVuY2VzIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1bmlxdWUgZm9yIGVhY2ggbGF5ZXIKKyAgICAgKiAoZXZlbiBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgc3luYyBvYmplY3QpLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllciBoYW5kbGVzLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRpY2VzIGFyZSBpbmRpY2VzIGludG8gb3V0SGFuZGxlcyBhcnJheSwgZWFjaAorICAgICAqICAgICAgICBjb3JyZXNwb25kaW5nIHRvIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfQ09MT1JfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q29sb3JUcmFuc2Zvcm0oZmxvYXRbMTZdIG1hdHJpeCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIENvbG9yVHJhbnNmb3JtIGhpbnQpOworICAgICAqCisgICAgICogU2V0cyBhIGNvbG9yIHRyYW5zZm9ybSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgYWZ0ZXIgY29tcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBJZiBoaW50IGlzIG5vdCBDb2xvclRyYW5zZm9ybTo6QVJCSVRSQVJZLCB0aGVuIHRoZSBkZXZpY2UgbWF5IHVzZSB0aGUKKyAgICAgKiBoaW50IHRvIGFwcGx5IHRoZSBkZXNpcmVkIGNvbG9yIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBjb2xvcgorICAgICAqIG1hdHJpeCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqIElmIHRoZSBkZXZpY2UgaXMgbm90IGNhcGFibGUgb2YgZWl0aGVyIHVzaW5nIHRoZSBoaW50IG9yIHRoZSBtYXRyaXggdG8KKyAgICAgKiBhcHBseSB0aGUgZGVzaXJlZCBjb2xvciB0cmFuc2Zvcm0sIGl0IG11c3QgZm9yY2UgYWxsIGxheWVycyB0byBjbGllbnQKKyAgICAgKiBjb21wb3NpdGlvbiBkdXJpbmcgVkFMSURBVEVfRElTUExBWS4KKyAgICAgKgorICAgICAqIElmIElDb21wb3Nlcjo6Q2FwYWJpbGl0eTo6U0tJUF9DTElFTlRfQ09MT1JfVFJBTlNGT1JNIGlzIHByZXNlbnQsIHRoZW4KKyAgICAgKiB0aGUgY2xpZW50IG11c3QgbmV2ZXIgYXBwbHkgdGhlIGNvbG9yIHRyYW5zZm9ybSBkdXJpbmcgY2xpZW50CisgICAgICogY29tcG9zaXRpb24sIGV2ZW4gaWYgYWxsIGxheWVycyBhcmUgYmVpbmcgY29tcG9zZWQgYnkgdGhlIGNsaWVudC4KKyAgICAgKgorICAgICAqIFRoZSBtYXRyaXggcHJvdmlkZWQgaXMgYW4gYWZmaW5lIGNvbG9yIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBmb3JtOgorICAgICAqCisgICAgICogfHIuciByLmcgci5iIDB8CisgICAgICogfGcuciBnLmcgZy5iIDB8CisgICAgICogfGIuciBiLmcgYi5iIDB8CisgICAgICogfFRyICBUZyAgVGIgIDF8CisgICAgICoKKyAgICAgKiBUaGlzIG1hdHJpeCBtdXN0IGJlIHByb3ZpZGVkIGluIHJvdy1tYWpvciBmb3JtOgorICAgICAqCisgICAgICoge3Iuciwgci5nLCByLmIsIDAsIGcuciwgLi4ufS4KKyAgICAgKgorICAgICAqIEdpdmVuIGEgbWF0cml4IG9mIHRoaXMgZm9ybSBhbmQgYW4gaW5wdXQgY29sb3IgW1JfaW4sIEdfaW4sIEJfaW5dLCB0aGUKKyAgICAgKiBvdXRwdXQgY29sb3IgW1Jfb3V0LCBHX291dCwgQl9vdXRdIHdpbGwgYmU6CisgICAgICoKKyAgICAgKiBSX291dCA9IFJfaW4gKiByLnIgKyBHX2luICogZy5yICsgQl9pbiAqIGIuciArIFRyCisgICAgICogR19vdXQgPSBSX2luICogci5nICsgR19pbiAqIGcuZyArIEJfaW4gKiBiLmcgKyBUZworICAgICAqIEJfb3V0ID0gUl9pbiAqIHIuYiArIEdfaW4gKiBnLmIgKyBCX2luICogYi5iICsgVGIKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXRyaXggaXMgYSA0eDQgdHJhbnNmb3JtIG1hdHJpeCAoMTYgZmxvYXRzKSBhcyBkZXNjcmliZWQgYWJvdmUuCisgICAgICogQHBhcmFtIGhpbnQgaXMgYSBoaW50IHZhbHVlIHdoaWNoIG1heSBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGdpdmVuCisgICAgICogICAgICAgIG1hdHJpeCB1bmxlc3MgaXQgaXMgQ29sb3JUcmFuc2Zvcm06OkFSQklUUkFSWS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0NMSUVOVF9UQVJHRVQgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRDbGllbnRUYXJnZXQodWludDMyX3QgdGFyZ2V0U2xvdCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRhcmdldEluZGV4LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgRGF0YXNwYWNlIGRhdGFzcGFjZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB2ZWM8UmVjdD4gZGFtYWdlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJ1ZmZlciBoYW5kbGUgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSBvdXRwdXQgb2YgY2xpZW50CisgICAgICogY29tcG9zaXRpb24uICBMYXllcnMgbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkCisgICAgICogaW50byB0aGlzIGJ1ZmZlciBwcmlvciB0byB0aGUgY2FsbCB0byBQUkVTRU5UX0RJU1BMQVksIGFuZCBsYXllcnMgbm90CisgICAgICogbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkIHdpdGggdGhpcyBidWZmZXIgYnkKKyAgICAgKiB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBoYW5kbGUgcHJvdmlkZWQgbWF5IGJlIGVtcHR5IGlmIG5vIGxheWVycyBhcmUgYmVpbmcKKyAgICAgKiBjb21wb3NpdGVkIGJ5IHRoZSBjbGllbnQuIFRoaXMgbXVzdCBub3QgcmVzdWx0IGluIGFuIGVycm9yICh1bmxlc3MgYW4KKyAgICAgKiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIGlzIGFsc28gcHJvdmlkZWQpLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYW4gYWNxdWlyZSBzeW5jIGZlbmNlCisgICAgICogb2JqZWN0LCB3aGljaCBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gaXQgaXMgc2FmZSB0byByZWFkIGZyb20gdGhlIGNsaWVudAorICAgICAqIHRhcmdldCBidWZmZXIuICBJZiBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gcmVhZCBmcm9tIHRoaXMgYnVmZmVyLCBhbgorICAgICAqIGVtcHR5IGhhbmRsZSBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBhYm91dCBkYXRhc3BhY2VzLCBzZWUgU0VUX0xBWUVSX0RBVEFTUEFDRS4KKyAgICAgKgorICAgICAqIFRoZSBkYW1hZ2UgcGFyYW1ldGVyIGRlc2NyaWJlcyBhIHN1cmZhY2UgZGFtYWdlIHJlZ2lvbiBhcyBkZWZpbmVkIGluCisgICAgICogdGhlIGRlc2NyaXB0aW9uIG9mIFNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRS4KKyAgICAgKgorICAgICAqIFdpbGwgYmUgY2FsbGVkIGJlZm9yZSBQUkVTRU5UX0RJU1BMQVkgaWYgYW55IG9mIHRoZSBsYXllcnMgYXJlIG1hcmtlZAorICAgICAqIGFzIENvbXBvc2l0aW9uOjpDTElFTlQuIElmIG5vIGxheWVycyBhcmUgc28gbWFya2VkLCB0aGVuIGl0IGlzIG5vdAorICAgICAqIG5lY2Vzc2FyeSB0byBjYWxsIHRoaXMgZnVuY3Rpb24uIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2FsbAorICAgICAqIHZhbGlkYXRlRGlzcGxheSBhZnRlciBjaGFuZ2luZyB0aGUgdGFyZ2V0IHRocm91Z2ggdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXRTbG90IGlzIHRoZSBjbGllbnQgdGFyZ2V0IGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0SW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIHRoZSBuZXcgdGFyZ2V0CisgICAgICogICAgICAgIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlSW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIGEgc3luYyBmZW5jZQorICAgICAqICAgICAgICBmaWxlIGRlc2NyaXB0b3IgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGRhdGFzcGFjZSBvZiB0aGUgYnVmZmVyLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgc3VyZmFjZSBkYW1hZ2UgcmVnaW9uLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfT1VUUFVUX0JVRkZFUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldE91dHB1dEJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYnVmZmVySW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2VJbmRleCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBvdXRwdXQgYnVmZmVyIGZvciBhIHZpcnR1YWwgZGlzcGxheS4gVGhhdCBpcywgdGhlIGJ1ZmZlciB0bworICAgICAqIHdoaWNoIHRoZSBjb21wb3NpdGlvbiByZXN1bHQgd2lsbCBiZSB3cml0dGVuLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSByZWxlYXNlIHN5bmMgZmVuY2UKKyAgICAgKiBvYmplY3QsIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgd2hlbiBpdCBpcyBzYWZlIHRvIHdyaXRlIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIuIElmIGl0IGlzIGFscmVhZHkgc2FmZSB0byB3cml0ZSB0byB0aGUgb3V0cHV0IGJ1ZmZlciwgYW4gZW1wdHkKKyAgICAgKiBoYW5kbGUgbWF5IGJlIHBhc3NlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogTXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBiZWZvcmUgUFJFU0VOVF9ESVNQTEFZLCBidXQgZG9lcyBub3QgaGF2ZQorICAgICAqIGFueSBpbnRlcmFjdGlvbiB3aXRoIGxheWVyIHN0YXRlIG9yIGRpc3BsYXkgdmFsaWRhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJTbG90IGlzIHRoZSBuZXcgb3V0cHV0IGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIG5ldyBvdXRwdXQgYnVmZmVyLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZAorICAgICAqICAgICAgICBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogVkFMSURBVEVfRElTUExBWSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHZhbGlkYXRlRGlzcGxheSgpOworICAgICAqCisgICAgICogSW5zdHJ1Y3RzIHRoZSBkZXZpY2UgdG8gaW5zcGVjdCBhbGwgb2YgdGhlIGxheWVyIHN0YXRlIGFuZCBkZXRlcm1pbmUgaWYKKyAgICAgKiB0aGVyZSBhcmUgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBuZWNlc3NhcnkgYmVmb3JlIHByZXNlbnRpbmcgdGhlCisgICAgICogZGlzcGxheS4gUGVybWl0dGVkIGNoYW5nZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZgorICAgICAqIENvbXBvc2l0aW9uIGFib3ZlLgorICAgICAqCisgICAgICoKKyAgICAgKiBBQ0NFUFRfRElTUExBWV9DSEFOR0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgYWNjZXB0RGlzcGxheUNoYW5nZXMoKTsKKyAgICAgKgorICAgICAqIEFjY2VwdHMgdGhlIGNoYW5nZXMgcmVxdWlyZWQgYnkgdGhlIGRldmljZSBmcm9tIHRoZSBwcmV2aW91cworICAgICAqIHZhbGlkYXRlRGlzcGxheSBjYWxsICh3aGljaCBtYXkgYmUgcXVlcmllZCB1c2luZworICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKSBhbmQgcmV2YWxpZGF0ZXMgdGhlIGRpc3BsYXkuIFRoaXMgZnVuY3Rpb24KKyAgICAgKiBpcyBlcXVpdmFsZW50IHRvIHJlcXVlc3RpbmcgdGhlIGNoYW5nZWQgdHlwZXMgZnJvbQorICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzLCBzZXR0aW5nIHRob3NlIHR5cGVzIG9uIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogbGF5ZXJzLCBhbmQgdGhlbiBjYWxsaW5nIHZhbGlkYXRlRGlzcGxheSBhZ2Fpbi4KKyAgICAgKgorICAgICAqIEFmdGVyIHRoaXMgY2FsbCBpdCBtdXN0IGJlIHZhbGlkIHRvIHByZXNlbnQgdGhpcyBkaXNwbGF5LiBDYWxsaW5nIHRoaXMKKyAgICAgKiBhZnRlciB2YWxpZGF0ZURpc3BsYXkgcmV0dXJucyAwIGNoYW5nZXMgbXVzdCBzdWNjZWVkIHdpdGggTk9ORSwgYnV0CisgICAgICogbXVzdCBoYXZlIG5vIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqCisgICAgICogUFJFU0VOVF9ESVNQTEFZIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgcHJlc2VudERpc3BsYXkoKTsKKyAgICAgKgorICAgICAqIFByZXNlbnRzIHRoZSBjdXJyZW50IGRpc3BsYXkgY29udGVudHMgb24gdGhlIHNjcmVlbiAob3IgaW4gdGhlIGNhc2Ugb2YKKyAgICAgKiB2aXJ0dWFsIGRpc3BsYXlzLCBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyKS4KKyAgICAgKgorICAgICAqIFByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIGRpc3BsYXkgbXVzdCBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiB2YWxpZGF0ZWQgd2l0aCB2YWxpZGF0ZURpc3BsYXkuIE5vdGUgdGhhdCBzZXRMYXllckJ1ZmZlciBhbmQKKyAgICAgKiBzZXRMYXllclN1cmZhY2VEYW1hZ2Ugc3BlY2lmaWNhbGx5IGRvIG5vdCBjb3VudCBhcyBsYXllciBzdGF0ZSwgc28gaWYKKyAgICAgKiB0aGVyZSBhcmUgbm8gb3RoZXIgY2hhbmdlcyB0byB0aGUgbGF5ZXIgc3RhdGUgKG9yIHRvIHRoZSBidWZmZXIncworICAgICAqIHByb3BlcnRpZXMgYXMgZGVzY3JpYmVkIGluIHNldExheWVyQnVmZmVyKSwgdGhlbiBpdCBpcyBzYWZlIHRvIGNhbGwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgZmlyc3QgdmFsaWRhdGluZyB0aGUgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ3Vyc29yUG9zaXRpb24oaW50MzJfdCB4LCBpbnQzMl90IHkpOworICAgICAqCisgICAgICogQXN5bmNocm9ub3VzbHkgc2V0cyB0aGUgcG9zaXRpb24gb2YgYSBjdXJzb3IgbGF5ZXIuCisgICAgICoKKyAgICAgKiBQcmlvciB0byB2YWxpZGF0ZURpc3BsYXksIGEgbGF5ZXIgbWF5IGJlIG1hcmtlZCBhcyBDb21wb3NpdGlvbjo6Q1VSU09SLgorICAgICAqIElmIHZhbGlkYXRpb24gc3VjY2VlZHMgKGkuZS4sIHRoZSBkZXZpY2UgZG9lcyBub3QgcmVxdWVzdCBhIGNvbXBvc2l0aW9uCisgICAgICogY2hhbmdlIGZvciB0aGF0IGxheWVyKSwgdGhlbiBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHNldCBmb3IgdGhlIGxheWVyCisgICAgICogYW5kIGl0IGhhcyBiZWVuIHByZXNlbnRlZCwgaXRzIHBvc2l0aW9uIG1heSBiZSBzZXQgYnkgdGhpcyBmdW5jdGlvbiBhdAorICAgICAqIGFueSB0aW1lIGJldHdlZW4gcHJlc2VudERpc3BsYXkgYW5kIGFueSBzdWJzZXF1ZW50IHZhbGlkYXRlRGlzcGxheQorICAgICAqIGNhbGxzIGZvciB0aGlzIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBPbmNlIHZhbGlkYXRlRGlzcGxheSBpcyBjYWxsZWQsIHRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIGFnYWluCisgICAgICogdW50aWwgdGhlIHZhbGlkYXRlL3ByZXNlbnQgc2VxdWVuY2UgaXMgY29tcGxldGVkLgorICAgICAqCisgICAgICogTWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQgc28gbG9uZyBhcyBpdCBpcyBub3QgaW50ZXJsZWF2ZWQgd2l0aCB0aGUKKyAgICAgKiB2YWxpZGF0ZS9wcmVzZW50IHNlcXVlbmNlIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIHBvc2l0aW9uIGlzIHNldC4KKyAgICAgKiBAcGFyYW0geCBpcyB0aGUgbmV3IHggY29vcmRpbmF0ZSAoaW4gcGl4ZWxzIGZyb20gdGhlIGxlZnQgb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICogQHBhcmFtIHkgaXMgdGhlIG5ldyB5IGNvb3JkaW5hdGUgKGluIHBpeGVscyBmcm9tIHRoZSB0b3Agb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9CVUZGRVIgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgaW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgYnVmZmVyIGhhbmRsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoaXMgbGF5ZXIuIElmIHRoZSBidWZmZXIKKyAgICAgKiBwcm9wZXJ0aWVzIHNldCBhdCBhbGxvY2F0aW9uIHRpbWUgKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgYW5kIHVzYWdlKQorICAgICAqIGhhdmUgbm90IGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIGZyYW1lLCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNhbGwKKyAgICAgKiB2YWxpZGF0ZURpc3BsYXkgYmVmb3JlIGNhbGxpbmcgcHJlc2VudERpc3BsYXkgdW5sZXNzIG5ldyBzdGF0ZSBuZWVkcyB0bworICAgICAqIGJlIHZhbGlkYXRlZCBpbiB0aGUgaW50ZXJpbS4KKyAgICAgKgorICAgICAqIEFsc28gcHJvdmlkZXMgYSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGFuIGFjcXVpcmUgc3luYyBmZW5jZQorICAgICAqIG9iamVjdCwgd2hpY2ggbXVzdCBiZSBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIHRoZSBnaXZlbgorICAgICAqIGJ1ZmZlci4gSWYgaXQgaXMgYWxyZWFkeSBzYWZlIHRvIHJlYWQgZnJvbSB0aGUgYnVmZmVyLCBhbiBlbXB0eSBoYW5kbGUKKyAgICAgKiBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIE5PTkUgYW5kIGhhdmUgbm8gb3RoZXIgZWZmZWN0IGlmIGNhbGxlZCBmb3IgYQorICAgICAqIGxheWVyIHdpdGggYSBjb21wb3NpdGlvbiB0eXBlIG9mIENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiAoYmVjYXVzZSBpdAorICAgICAqIGhhcyBubyBidWZmZXIpIG9yIENvbXBvc2l0aW9uOjpTSURFQkFORCBvciBDb21wb3NpdGlvbjo6Q0xJRU5UIChiZWNhdXNlCisgICAgICogc3luY2hyb25pemF0aW9uIGFuZCBidWZmZXIgdXBkYXRlcyBmb3IgdGhlc2UgbGF5ZXJzIGFyZSBoYW5kbGVkCisgICAgICogZWxzZXdoZXJlKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIGJ1ZmZlciBpcyBzZXQuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3QgaXMgdGhlIGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIGJ1ZmZlciBoYW5kbGUgdG8gc2V0LgorICAgICAqIEBwYXJhbSBhY3F1aXJlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHZlYzxSZWN0PiBkYW1hZ2UpOworICAgICAqCisgICAgICogUHJvdmlkZXMgdGhlIHJlZ2lvbiBvZiB0aGUgc291cmNlIGJ1ZmZlciB3aGljaCBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZQorICAgICAqIHRoZSBsYXN0IGZyYW1lLiBUaGlzIHJlZ2lvbiBkb2VzIG5vdCBuZWVkIHRvIGJlIHZhbGlkYXRlZCBiZWZvcmUKKyAgICAgKiBjYWxsaW5nIHByZXNlbnREaXNwbGF5LgorICAgICAqCisgICAgICogT25jZSBzZXQgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLCB0aGUgZGFtYWdlIHJlZ2lvbiByZW1haW5zIHRoZSBzYW1lCisgICAgICogdW50aWwgYSBzdWJzZXF1ZW50IGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIElmIGRhbWFnZSBpcyBub24tZW1wdHksIHRoZW4gaXQgbWF5IGJlIGFzc3VtZWQgdGhhdCBhbnkgcG9ydGlvbiBvZiB0aGUKKyAgICAgKiBzb3VyY2UgYnVmZmVyIG5vdCBjb3ZlcmVkIGJ5IG9uZSBvZiB0aGUgcmVjdHMgaGFzIG5vdCBiZWVuIG1vZGlmaWVkCisgICAgICogdGhpcyBmcmFtZS4gSWYgZGFtYWdlIGlzIGVtcHR5LCB0aGVuIHRoZSB3aG9sZSBzb3VyY2UgYnVmZmVyIG11c3QgYmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIGl0IGhhcyBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogSWYgdGhlIGxheWVyJ3MgY29udGVudHMgYXJlIG5vdCBtb2RpZmllZCByZWxhdGl2ZSB0byB0aGUgcHJpb3IgZnJhbWUsCisgICAgICogZGFtYWdlIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBlbXB0eSByZWN0KFswLCAwLCAwLCAwXSkuCisgICAgICoKKyAgICAgKiBUaGUgZGFtYWdlIHJlY3RzIGFyZSByZWxhdGl2ZSB0byB0aGUgcHJlLXRyYW5zZm9ybWVkIGJ1ZmZlciwgYW5kIHRoZWlyCisgICAgICogb3JpZ2luIGlzIHRoZSB0b3AtbGVmdCBjb3JuZXIuIFRoZXkgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mCisgICAgICogdGhlIGxhdGNoZWQgYnVmZmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVyIGlzIHRoZSBsYXllciB0byB3aGljaCB0aGUgZGFtYWdlIHJlZ2lvbiBpcyBzZXQuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgbmV3IHN1cmZhY2UgZGFtYWdlIHJlZ2lvbi4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0JMRU5EX01PREUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJsZW5kTW9kZShCbGVuZE1vZGUgbW9kZSkKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJsZW5kIG1vZGUgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBibGVuZCBtb2RlLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09MT1IgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckNvbG9yKENvbG9yIGNvbG9yKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBnaXZlbiBsYXllci4gSWYgdGhlIGNvbXBvc2l0aW9uIHR5cGUgb2YgdGhlIGxheWVyCisgICAgICogaXMgbm90IENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiwgdGhpcyBjYWxsIG11c3Qgc3VjY2VlZCBhbmQgaGF2ZSBubworICAgICAqIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBpcyB0aGUgbmV3IGNvbG9yLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ29tcG9zaXRpb25UeXBlKENvbXBvc2l0aW9uIHR5cGUpOworICAgICAqCisgICAgICogU2V0cyB0aGUgZGVzaXJlZCBjb21wb3NpdGlvbiB0eXBlIG9mIHRoZSBnaXZlbiBsYXllci4gRHVyaW5nCisgICAgICogdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGNoYW5nZXMgdG8gdGhlIGNvbXBvc2l0aW9uCisgICAgICogdHlwZXMgb2YgYW55IG9mIHRoZSBsYXllcnMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICogQ29tcG9zaXRpb24gYWJvdmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBpcyB0aGUgbmV3IGNvbXBvc2l0aW9uIHR5cGUuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9EQVRBU1BBQ0UgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRhdGFzcGFjZShEYXRhc3BhY2UgZGF0YXNwYWNlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRhdGFzcGFjZSB0aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciBvbiB0aGlzIGxheWVyIGlzIGluLgorICAgICAqCisgICAgICogVGhlIGRhdGFzcGFjZSBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byBpbnRlcnByZXQgdGhlCisgICAgICogYnVmZmVyIGNvbnRlbnRzLCBzdWNoIGFzIHRoZSBlbmNvZGluZyBzdGFuZGFyZCBhbmQgY29sb3IgdHJhbnNmb3JtLgorICAgICAqCisgICAgICogU2VlIHRoZSB2YWx1ZXMgb2YgRGF0YXNwYWNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGFzcGFjZSBpcyB0aGUgbmV3IGRhdGFzcGFjZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRpc3BsYXlGcmFtZShSZWN0IGZyYW1lKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRpc3BsYXkgZnJhbWUgKHRoZSBwb3J0aW9uIG9mIHRoZSBkaXNwbGF5IGNvdmVyZWQgYnkgYSBsYXllcikKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gbGF5ZXIuIFRoaXMgZnJhbWUgbXVzdCBub3QgZXhjZWVkIHRoZSBkaXNwbGF5IGRpbWVuc2lvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWUgaXMgdGhlIG5ldyBkaXNwbGF5IGZyYW1lLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfUExBTkVfQUxQSEEgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclBsYW5lQWxwaGEoZmxvYXQgYWxwaGEpOworICAgICAqCisgICAgICogU2V0cyBhbiBhbHBoYSB2YWx1ZSAoYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAuMCwgMS4wXSkKKyAgICAgKiB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHdob2xlIGxheWVyLiBJdCBjYW4gYmUgY29uY2VwdHVhbGl6ZWQgYXMgYQorICAgICAqIHByZXByb2Nlc3Npbmcgc3RlcCB3aGljaCBhcHBsaWVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CisgICAgICogICBpZiAoYmxlbmRNb2RlID09IEJsZW5kTW9kZTo6UFJFTVVMVElQTElFRCkKKyAgICAgKiAgICAgICBvdXQucmdiID0gaW4ucmdiICogcGxhbmVBbHBoYQorICAgICAqICAgb3V0LmEgPSBpbi5hICogcGxhbmVBbHBoYQorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIG9uIGEgbGF5ZXIgd2hpY2ggaXMKKyAgICAgKiBtYXJrZWQgQ29tcG9zaXRpb246OkRFVklDRSwgaXQgbXVzdCByZXF1ZXN0IGEgY29tcG9zaXRpb24gdHlwZSBjaGFuZ2UKKyAgICAgKiB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHVwb24gdGhlIG5leHQgdmFsaWRhdGVEaXNwbGF5IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWxwaGEgaXMgdGhlIHBsYW5lIGFscGhhIHZhbHVlIHRvIGFwcGx5LgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShpbnQzMl90IHN0cmVhbUluZGV4KQorICAgICAqCisgICAgICogU2V0cyB0aGUgc2lkZWJhbmQgc3RyZWFtIGZvciB0aGlzIGxheWVyLiBJZiB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGUKKyAgICAgKiBnaXZlbiBsYXllciBpcyBub3QgQ29tcG9zaXRpb246OlNJREVCQU5ELCB0aGlzIGNhbGwgbXVzdCBzdWNjZWVkIGFuZAorICAgICAqIGhhdmUgbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVhbUluZGV4IGlzIHRoZSBuZXcgc2lkZWJhbmQgc3RyZWFtLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU09VUkNFX0NST1AgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclNvdXJjZUNyb3AoRlJlY3QgY3JvcCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzb3VyY2UgY3JvcCAodGhlIHBvcnRpb24gb2YgdGhlIHNvdXJjZSBidWZmZXIgd2hpY2ggd2lsbCBmaWxsCisgICAgICogdGhlIGRpc3BsYXkgZnJhbWUpIG9mIHRoZSBnaXZlbiBsYXllci4gVGhpcyBjcm9wIHJlY3RhbmdsZSBtdXN0IG5vdAorICAgICAqIGV4Y2VlZCB0aGUgZGltZW5zaW9ucyBvZiB0aGUgbGF0Y2hlZCBidWZmZXIuCisgICAgICoKKyAgICAgKiBJZiB0aGUgZGV2aWNlIGlzIG5vdCBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgYSB0cnVlIGZsb2F0IHNvdXJjZSBjcm9wCisgICAgICogKGkuZS4sIGl0IHdpbGwgdHJ1bmNhdGUgb3Igcm91bmQgdGhlIGZsb2F0cyB0byBpbnRlZ2VycyksIGl0IG11c3Qgc2V0CisgICAgICogdGhpcyBsYXllciB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHdoZW4gY3JvcCBpcyBub24taW50ZWdyYWwgZm9yIHRoZQorICAgICAqIG1vc3QgYWNjdXJhdGUgcmVuZGVyaW5nLgorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBjYW5ub3Qgc3VwcG9ydCBmbG9hdCBzb3VyY2UgY3JvcHMsIGJ1dCBzdGlsbCB3YW50cyB0bworICAgICAqIGhhbmRsZSB0aGUgbGF5ZXIsIGl0IG11c3QgdXNlIHRoZSBmb2xsb3dpbmcgY29kZSAob3Igc2ltaWxhcikgdG8KKyAgICAgKiBjb252ZXJ0IHRvIGFuIGludGVnZXIgY3JvcDoKKyAgICAgKiAgIGludENyb3AubGVmdCA9IChpbnQpIGNlaWxmKGNyb3AubGVmdCk7CisgICAgICogICBpbnRDcm9wLnRvcCA9IChpbnQpIGNlaWxmKGNyb3AudG9wKTsKKyAgICAgKiAgIGludENyb3AucmlnaHQgPSAoaW50KSBmbG9vcmYoY3JvcC5yaWdodCk7CisgICAgICogICBpbnRDcm9wLmJvdHRvbSA9IChpbnQpIGZsb29yZihjcm9wLmJvdHRvbSk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gY3JvcCBpcyB0aGUgbmV3IHNvdXJjZSBjcm9wLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqIFNldHMgdGhlIHRyYW5zZm9ybSAocm90YXRpb24vZmxpcCkgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogICBzZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB0cmFuc2Zvcm0gaXMgdGhlIG5ldyB0cmFuc2Zvcm0uCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyVmlzaWJsZVJlZ2lvbih2ZWM8UmVjdD4gdmlzaWJsZSk7CisgICAgICoKKyAgICAgKiBTcGVjaWZpZXMgdGhlIHBvcnRpb24gb2YgdGhlIGxheWVyIHRoYXQgaXMgdmlzaWJsZSwgaW5jbHVkaW5nIHBvcnRpb25zCisgICAgICogdW5kZXIgdHJhbnNsdWNlbnQgYXJlYXMgb2Ygb3RoZXIgbGF5ZXJzLiBUaGUgcmVnaW9uIGlzIGluIHNjcmVlbiBzcGFjZSwKKyAgICAgKiBhbmQgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBzY3JlZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmlzaWJsZSBpcyB0aGUgbmV3IHZpc2libGUgcmVnaW9uLCBpbiBzY3JlZW4gc3BhY2UuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9aX09SREVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJaT3JkZXIodWludDMyX3Qgeik7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkZXNpcmVkIFogb3JkZXIgKGhlaWdodCkgb2YgdGhlIGdpdmVuIGxheWVyLiBBIGxheWVyIHdpdGggYQorICAgICAqIGdyZWF0ZXIgWiB2YWx1ZSBvY2NsdWRlcyBhIGxheWVyIHdpdGggYSBsZXNzZXIgWiB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6IGlzIHRoZSBuZXcgWiBvcmRlci4KKyAgICAgKi8KKyAgICBlbnVtIENvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4ZmZmZiwKKyAgICAgICAgT1BDT0RFX1NISUZUICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgICBPUENPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgID0gMHhmZmZmIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogc3BlY2lhbCBjb21tYW5kcyAqLworICAgICAgICBTRUxFQ1RfRElTUExBWSAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRUxFQ1RfTEFZRVIgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDEgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiB2YWx1ZSBjb21tYW5kcyAoZm9yIHJldHVybiB2YWx1ZXMpICovCisgICAgICAgIFNFVF9FUlJPUiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwMCA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTICAgICAgPSAweDEwMSA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9ESVNQTEFZX1JFUVVFU1RTICAgICAgICAgICAgICAgPSAweDEwMiA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9QUkVTRU5UX0ZFTkNFICAgICAgICAgICAgICAgICAgPSAweDEwMyA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9SRUxFQVNFX0ZFTkNFUyAgICAgICAgICAgICAgICAgPSAweDEwNCA8PCBPUENPREVfU0hJRlQsCisKKyAgICAgICAgLyoqIGRpc3BsYXkgY29tbWFuZHMgKi8KKyAgICAgICAgU0VUX0NPTE9SX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4MjAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0NMSUVOVF9UQVJHRVQgICAgICAgICAgICAgICAgICA9IDB4MjAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX09VVFBVVF9CVUZGRVIgICAgICAgICAgICAgICAgICA9IDB4MjAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgVkFMSURBVEVfRElTUExBWSAgICAgICAgICAgICAgICAgICA9IDB4MjAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUyAgICAgICAgICAgICA9IDB4MjA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgUFJFU0VOVF9ESVNQTEFZICAgICAgICAgICAgICAgICAgICA9IDB4MjA1IDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogbGF5ZXIgY29tbWFuZHMgKFZBTElEQVRFX0RJU1BMQVkgbm90IHJlcXVpcmVkKSAqLworICAgICAgICBTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OICAgICAgICAgID0gMHgzMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfQlVGRkVSICAgICAgICAgICAgICAgICAgID0gMHgzMDEgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UgICAgICAgICAgID0gMHgzMDIgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiBsYXllciBzdGF0ZSBjb21tYW5kcyAoVkFMSURBVEVfRElTUExBWSByZXF1aXJlZCkgKi8KKyAgICAgICAgU0VUX0xBWUVSX0JMRU5EX01PREUgICAgICAgICAgICAgICA9IDB4NDAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTE9SICAgICAgICAgICAgICAgICAgICA9IDB4NDAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUgICAgICAgICA9IDB4NDAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RBVEFTUEFDRSAgICAgICAgICAgICAgICA9IDB4NDAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgICAgICAgICAgICA9IDB4NDA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1BMQU5FX0FMUEhBICAgICAgICAgICAgICA9IDB4NDA1IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSAgICAgICAgICA9IDB4NDA2IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NPVVJDRV9DUk9QICAgICAgICAgICAgICA9IDB4NDA3IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4NDA4IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OICAgICAgICAgICA9IDB4NDA5IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1pfT1JERVIgICAgICAgICAgICAgICAgICA9IDB4NDBhIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogMHg4MDAgLSAweGZmZiBhcmUgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zICovCisgICAgICAgIC8qKiAweDEwMDAgLSAweGZmZmYgYXJlIHJlc2VydmVkICovCisgICAgfTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzdmODEwCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDczIEBACitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYmh3Y29tcG9zZXItY2xpZW50IiwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKKyAgICBzcmNzOiBbIkNvbXBvc2VyQ2xpZW50LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliZm1xIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkh3Yy5jcHAiXSwKKyAgICBzdGF0aWNfbGliczogWyJsaWJod2NvbXBvc2VyLWNsaWVudCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliZm1xIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaHdjMm9uMWFkYXB0ZXIiCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlLnJjIl0sCisgICAgc3RhdGljX2xpYnM6IFsibGliaHdjb21wb3Nlci1jbGllbnQiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJiaW5kZXIiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJzeW5jIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYmh3Y29tcG9zZXItY29tbWFuZC1idWZmZXIiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzaGFyZWRfbGliczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIxYTRkCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0JBU0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQkFTRV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9od2NvbXBvc2VyMi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvck1vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6SGRyOworCitjbGFzcyBDb21wb3NlckJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNvbXBvc2VyQmFzZSgpIHt9OworCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQ2FsbGJhY2soYm9vbCBlbmFibGUpID0gMDsKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICBQaXhlbEZvcm1hdCogZm9ybWF0LCBEaXNwbGF5KiBvdXREaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyKiBvdXRMYXllcikgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpID0gMDsKKworICAgIHZpcnR1YWwgRXJyb3IgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnKiBvdXRDb25maWcpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0Q29sb3JNb2RlcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2RlcykgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb25maWc+KiBvdXRDb25maWdzKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5TmFtZShEaXNwbGF5IGRpc3BsYXksIGhpZGxfc3RyaW5nKiBvdXROYW1lKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlKiBvdXRUeXBlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIGJvb2wqIG91dFN1cHBvcnQpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPEhkcj4qIG91dFR5cGVzLAorICAgICAgICAgICAgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEVycm9yIHNldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRQb3dlck1vZGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRDb2xvclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIGNvbnN0IGZsb2F0KiBtYXRyaXgsCisgICAgICAgICAgICBpbnQzMl90IGhpbnQpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldENsaWVudFRhcmdldChEaXNwbGF5IGRpc3BsYXksIGJ1ZmZlcl9oYW5kbGVfdCB0YXJnZXQsCisgICAgICAgICAgICBpbnQzMl90IGFjcXVpcmVGZW5jZSwgaW50MzJfdCBkYXRhc3BhY2UsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHZhbGlkYXRlRGlzcGxheShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPiogb3V0Q29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXREaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90Piogb3V0UmVxdWVzdE1hc2tzKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBhY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90Piogb3V0UmVsZWFzZUZlbmNlcykgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckN1cnNvclBvc2l0aW9uKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHgsIGludDMyX3QgeSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludDMyX3QgYWNxdWlyZUZlbmNlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclN1cmZhY2VEYW1hZ2UoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQmxlbmRNb2RlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQ29sb3IoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHR5cGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyRGF0YXNwYWNlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJEaXNwbGF5RnJhbWUoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGZsb2F0IGFscGhhKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3Qgc3RyZWFtKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclNvdXJjZUNyb3AoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19mcmVjdF90JiBjcm9wKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0cmFuc2Zvcm0pID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIHZpc2libGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyWk9yZGVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB6KSA9IDA7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9CQVNFX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTRlMTdmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsMTE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJId2NQYXNzdGhyb3VnaCIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiQ29tcG9zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJDb21wb3NlckJhc2UuaCIKKyNpbmNsdWRlICJJQ29tcG9zZXJDb21tYW5kQnVmZmVyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIE1hcHBlckVycm9yID0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7CisKK2NsYXNzIEhhbmRsZUltcG9ydGVyIHsKK3B1YmxpYzoKKyAgICBib29sIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAgLy8gYWxsb3cgb25seSBvbmUgY2xpZW50CisgICAgICAgIGlmIChtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIG1NYXBwZXIgPSBJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisKKyAgICAgICAgbUluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBjbGVhbnVwKCkKKyAgICB7CisgICAgICAgIG1NYXBwZXIuY2xlYXIoKTsKKyAgICAgICAgbUluaXRpYWxpemVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gSW4gSUNvbXBvc2VyLCBhbnkgYnVmZmVyX2hhbmRsZV90IGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIHdlIG5lZWQgdG8KKyAgICAvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKyAgICAvLyB0byBudWxscHRyLiAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoYXQsIGluLXBsYWNlLgorICAgIGJvb2wgaW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCYgaGFuZGxlKQorICAgIHsKKyAgICAgICAgaWYgKCFoYW5kbGUpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFoYW5kbGUtPm51bUZkcyAmJiAhaGFuZGxlLT5udW1JbnRzKSB7CisgICAgICAgICAgICBoYW5kbGUgPSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBNYXBwZXJFcnJvciBlcnJvcjsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGltcG9ydGVkSGFuZGxlOworICAgICAgICBtTWFwcGVyLT5pbXBvcnRCdWZmZXIoCisgICAgICAgICAgICBoaWRsX2hhbmRsZShoYW5kbGUpLAorICAgICAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBCdWZmZXJIYW5kbGUpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IHRtcEVycm9yOworICAgICAgICAgICAgICAgIGltcG9ydGVkSGFuZGxlID0gc3RhdGljX2Nhc3Q8YnVmZmVyX2hhbmRsZV90Pih0bXBCdWZmZXJIYW5kbGUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIGlmIChlcnJvciAhPSBNYXBwZXJFcnJvcjo6Tk9ORSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaGFuZGxlID0gaW1wb3J0ZWRIYW5kbGU7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBmcmVlQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCisgICAgeworICAgICAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbU1hcHBlci0+ZnJlZUJ1ZmZlcihjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGhhbmRsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyBib29sIG1Jbml0aWFsaXplZCA9IGZhbHNlOworIHNwPElNYXBwZXI+IG1NYXBwZXI7Cit9OworCitIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitCdWZmZXJDYWNoZUVudHJ5OjpCdWZmZXJDYWNoZUVudHJ5KCkKKyAgICA6IG1IYW5kbGUobnVsbHB0cikKK3sKK30KKworQnVmZmVyQ2FjaGVFbnRyeTo6QnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpCit7CisgICAgbUhhbmRsZSA9IG90aGVyLm1IYW5kbGU7CisgICAgb3RoZXIubUhhbmRsZSA9IG51bGxwdHI7Cit9CisKK0J1ZmZlckNhY2hlRW50cnkmIEJ1ZmZlckNhY2hlRW50cnk6Om9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQoreworICAgIGNsZWFyKCk7CisgICAgbUhhbmRsZSA9IGhhbmRsZTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0J1ZmZlckNhY2hlRW50cnk6On5CdWZmZXJDYWNoZUVudHJ5KCkKK3sKKyAgICBjbGVhcigpOworfQorCit2b2lkIEJ1ZmZlckNhY2hlRW50cnk6OmNsZWFyKCkKK3sKKyAgICBpZiAobUhhbmRsZSkgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihtSGFuZGxlKTsKKyAgICB9Cit9CisKK0NvbXBvc2VyQ2xpZW50OjpDb21wb3NlckNsaWVudChDb21wb3NlckJhc2UmIGhhbCkKKyAgICA6IG1IYWwoaGFsKSwgbVdyaXRlcihrV3JpdGVySW5pdGlhbFNpemUpCit7Cit9CisKK0NvbXBvc2VyQ2xpZW50Ojp+Q29tcG9zZXJDbGllbnQoKQoreworICAgIC8vIFdlIHdhbnQgdG8gY2FsbCBod2MyX2Nsb3NlIGhlcmUgKGFuZCBtb3ZlIGh3YzJfb3BlbiB0byB0aGUKKyAgICAvLyBjb25zdHJ1Y3RvciksIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBod2MyX2Nsb3NlIHdvdWxkCisgICAgLy8KKyAgICAvLyAgLSBjbGVhbiB1cCBhbGwgcmVzb3VyY2VzIG93bmVkIGJ5IHRoZSBjbGllbnQKKyAgICAvLyAgLSBtYWtlIHN1cmUgYWxsIGRpc3BsYXlzIGFyZSBibGFuayAoc2luY2UgdGhlcmUgaXMgbm8gbGF5ZXIpCisgICAgLy8KKyAgICAvLyBCdXQgc2luY2UgU0YgdXNlZCB0byBjcmFzaCBhdCB0aGlzIHBvaW50LCBkaWZmZXJlbnQgaHdjb21wb3NlcjIKKyAgICAvLyBpbXBsZW1lbnRhdGlvbnMgYmVoYXZlIGRpZmZlcmVudGx5IG9uIGh3YzJfY2xvc2UuICBPdXIgb25seSBwb3J0YWJsZQorICAgIC8vIGNob2ljZSByZWFsbHkgaXMgdG8gYWJvcnQoKS4gIEJ1dCB0aGF0IGlzIG5vdCBhbiBvcHRpb24gYW55bW9yZQorICAgIC8vIGJlY2F1c2Ugd2UgbWlnaHQgYWxzbyBoYXZlIFZUUyBvciBWUiBhcyBjbGllbnRzIHRoYXQgY2FuIGNvbWUgYW5kIGdvLgorICAgIC8vCisgICAgLy8gQmVsb3cgd2UgbWFudWFsbHkgY2xlYW4gYWxsIHJlc291cmNlcyAobGF5ZXJzIGFuZCB2aXJ0dWFsCisgICAgLy8gZGlzcGxheXMpLCBhbmQgcGVyZm9ybSBhIHByZXNlbnREaXNwbGF5IGFmdGVyd2FyZHMuCisgICAgQUxPR1coImRlc3Ryb3lpbmcgY29tcG9zZXIgY2xpZW50Iik7CisKKyAgICBtSGFsLmVuYWJsZUNhbGxiYWNrKGZhbHNlKTsKKworICAgIC8vIG5vIG5lZWQgdG8gZ3JhYiB0aGUgbXV0ZXggYXMgYW55IGluLWZsaWdodCBod2JpbmRlciBjYWxsIHdvdWxkIGhhdmUKKyAgICAvLyBrZXB0IHRoZSBjbGllbnQgYWxpdmUKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGRweSA6IG1EaXNwbGF5RGF0YSkgeworICAgICAgICBBTE9HVygiZGVzdHJveWluZyBjbGllbnQgcmVzb3VyY2VzIGZvciBkaXNwbGF5ICUiIFBSSXU2NCwgZHB5LmZpcnN0KTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGx5IDogZHB5LnNlY29uZC5MYXllcnMpIHsKKyAgICAgICAgICAgIG1IYWwuZGVzdHJveUxheWVyKGRweS5maXJzdCwgbHkuZmlyc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRweS5zZWNvbmQuSXNWaXJ0dWFsKSB7CisgICAgICAgICAgICBtSGFsLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShkcHkuZmlyc3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR1coInBlcmZvcm1pbmcgYSBmaW5hbCBwcmVzZW50RGlzcGxheSIpOworCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4gY2hhbmdlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uVHlwZXM7CisgICAgICAgICAgICB1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2sgPSAwOworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IHJlcXVlc3RlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiByZXF1ZXN0TWFza3M7CisgICAgICAgICAgICBtSGFsLnZhbGlkYXRlRGlzcGxheShkcHkuZmlyc3QsICZjaGFuZ2VkTGF5ZXJzLCAmY29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgICAgICAgICAgJmRpc3BsYXlSZXF1ZXN0TWFzaywgJnJlcXVlc3RlZExheWVycywgJnJlcXVlc3RNYXNrcyk7CisKKyAgICAgICAgICAgIG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMoZHB5LmZpcnN0KTsKKworICAgICAgICAgICAgaW50MzJfdCBwcmVzZW50RmVuY2UgPSAtMTsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZWxlYXNlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHJlbGVhc2VGZW5jZXM7CisgICAgICAgICAgICBtSGFsLnByZXNlbnREaXNwbGF5KGRweS5maXJzdCwgJnByZXNlbnRGZW5jZSwgJnJlbGVhc2VkTGF5ZXJzLCAmcmVsZWFzZUZlbmNlcyk7CisgICAgICAgICAgICBpZiAocHJlc2VudEZlbmNlID49IDApIHsKKyAgICAgICAgICAgICAgICBjbG9zZShwcmVzZW50RmVuY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGZlbmNlIDogcmVsZWFzZUZlbmNlcykgeworICAgICAgICAgICAgICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtRGlzcGxheURhdGEuY2xlYXIoKTsKKworICAgIHNIYW5kbGVJbXBvcnRlci5jbGVhbnVwKCk7CisKKyAgICBtSGFsLnJlbW92ZUNsaWVudCgpOworCisgICAgQUxPR1coInJlbW92ZWQgY29tcG9zZXIgY2xpZW50Iik7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OmluaXRpYWxpemUoKQoreworICAgIG1SZWFkZXIgPSBjcmVhdGVDb21tYW5kUmVhZGVyKCk7CisgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW5pdGlhbGl6ZSgpKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBpbml0aWFsaXplIGhhbmRsZSBpbXBvcnRlciIpOworICAgIH0KK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGlmIChjb25uZWN0ZWQgPT0gSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb246OkNPTk5FQ1RFRCkgeworICAgICAgICAgICAgbURpc3BsYXlEYXRhLmVtcGxhY2UoZGlzcGxheSwgRGlzcGxheURhdGEoZmFsc2UpKTsKKyAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0ZWQgPT0gSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb246OkRJU0NPTk5FQ1RFRCkgeworICAgICAgICAgICAgbURpc3BsYXlEYXRhLmVyYXNlKGRpc3BsYXkpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByZXQgPSBtQ2FsbGJhY2stPm9uSG90cGx1ZyhkaXNwbGF5LCBjb25uZWN0ZWQpOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25Ib3RwbHVnOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25SZWZyZXNoKERpc3BsYXkgZGlzcGxheSkKK3sKKyAgICBhdXRvIHJldCA9IG1DYWxsYmFjay0+b25SZWZyZXNoKGRpc3BsYXkpOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25SZWZyZXNoOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKQoreworICAgIGF1dG8gcmV0ID0gbUNhbGxiYWNrLT5vblZzeW5jKGRpc3BsYXksIHRpbWVzdGFtcCk7CisgICAgQUxPR0VfSUYoIXJldC5pc09rKCksICJmYWlsZWQgdG8gc2VuZCBvblZzeW5jOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpyZWdpc3RlckNhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJQ29tcG9zZXJDYWxsYmFjaz4mIGNhbGxiYWNrKQoreworICAgIC8vIG5vIGxvY2tpbmcgYXMgd2UgcmVxdWlyZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbmx5IG9uY2UKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBtSGFsLmVuYWJsZUNhbGxiYWNrKGNhbGxiYWNrICE9IG51bGxwdHIpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBDb21wb3NlckNsaWVudDo6Z2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpCit7CisgICAgcmV0dXJuIG1IYWwuZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLAorICAgICAgICB1aW50MzJfdCBoZWlnaHQsIFBpeGVsRm9ybWF0IGZvcm1hdEhpbnQsIHVpbnQzMl90IG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikKK3sKKyAgICBEaXNwbGF5IGRpc3BsYXkgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuY3JlYXRlVmlydHVhbERpc3BsYXkod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICZmb3JtYXRIaW50LCAmZGlzcGxheSk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgYXV0byBkcHkgPSBtRGlzcGxheURhdGEuZW1wbGFjZShkaXNwbGF5LCBEaXNwbGF5RGF0YSh0cnVlKSkuZmlyc3Q7CisgICAgICAgIGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMucmVzaXplKG91dHB1dEJ1ZmZlclNsb3RDb3VudCk7CisgICAgfQorCisgICAgaGlkbF9jYihlcnIsIGRpc3BsYXksIGZvcm1hdEhpbnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5kZXN0cm95VmlydHVhbERpc3BsYXkoZGlzcGxheSk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgbURpc3BsYXlEYXRhLmVyYXNlKGRpc3BsYXkpOworICAgIH0KKworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Y3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsIGNyZWF0ZUxheWVyX2NiIGhpZGxfY2IpCit7CisgICAgTGF5ZXIgbGF5ZXIgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuY3JlYXRlTGF5ZXIoZGlzcGxheSwgJmxheWVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBhdXRvIGRweSA9IG1EaXNwbGF5RGF0YS5maW5kKGRpc3BsYXkpOworICAgICAgICBhdXRvIGx5ID0gZHB5LT5zZWNvbmQuTGF5ZXJzLmVtcGxhY2UobGF5ZXIsIExheWVyQnVmZmVycygpKS5maXJzdDsKKyAgICAgICAgbHktPnNlY29uZC5CdWZmZXJzLnJlc2l6ZShidWZmZXJTbG90Q291bnQpOworICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBsYXllcik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6ZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmZpbmQoZGlzcGxheSk7CisgICAgICAgIGRweS0+c2Vjb25kLkxheWVycy5lcmFzZShsYXllcik7CisgICAgfQorCisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXRBY3RpdmVDb25maWdfY2IgaGlkbF9jYikKK3sKKyAgICBDb25maWcgY29uZmlnID0gMDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldEFjdGl2ZUNvbmZpZyhkaXNwbGF5LCAmY29uZmlnKTsKKworICAgIGhpZGxfY2IoZXJyLCBjb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KGRpc3BsYXksCisgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIGRhdGFzcGFjZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRDb2xvck1vZGVzKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICBnZXRDb2xvck1vZGVzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiBtb2RlczsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldENvbG9yTW9kZXMoZGlzcGxheSwgJm1vZGVzKTsKKworICAgIGhpZGxfY2IoZXJyLCBtb2Rlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgQ29uZmlnIGNvbmZpZywgQXR0cmlidXRlIGF0dHJpYnV0ZSwKKyAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKQoreworICAgIGludDMyX3QgdmFsdWUgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheUF0dHJpYnV0ZShkaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwgJnZhbHVlKTsKKworICAgIGhpZGxfY2IoZXJyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldERpc3BsYXlDb25maWdzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8Q29uZmlnPiBjb25maWdzOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheUNvbmZpZ3MoZGlzcGxheSwgJmNvbmZpZ3MpOworCisgICAgaGlkbF9jYihlcnIsIGNvbmZpZ3MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREaXNwbGF5TmFtZV9jYiBoaWRsX2NiKQoreworICAgIGhpZGxfc3RyaW5nIG5hbWU7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXREaXNwbGF5TmFtZShkaXNwbGF5LCAmbmFtZSk7CisKKyAgICBoaWRsX2NiKGVyciwgbmFtZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldERpc3BsYXlUeXBlX2NiIGhpZGxfY2IpCit7CisgICAgRGlzcGxheVR5cGUgdHlwZSA9IERpc3BsYXlUeXBlOjpJTlZBTElEOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheVR5cGUoZGlzcGxheSwgJnR5cGUpOworCisgICAgaGlkbF9jYihlcnIsIHR5cGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREb3plU3VwcG9ydF9jYiBoaWRsX2NiKQoreworICAgIGJvb2wgc3VwcG9ydCA9IGZhbHNlOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RG96ZVN1cHBvcnQoZGlzcGxheSwgJnN1cHBvcnQpOworCisgICAgaGlkbF9jYihlcnIsIHN1cHBvcnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8SGRyPiB0eXBlczsKKyAgICBmbG9hdCBtYXhfbHVtaSA9IDAuMGY7CisgICAgZmxvYXQgbWF4X2F2Z19sdW1pID0gMC4wZjsKKyAgICBmbG9hdCBtaW5fbHVtaSA9IDAuMGY7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRIZHJDYXBhYmlsaXRpZXMoZGlzcGxheSwgJnR5cGVzLAorICAgICAgICAgICAgJm1heF9sdW1pLCAmbWF4X2F2Z19sdW1pLCAmbWluX2x1bWkpOworCisgICAgaGlkbF9jYihlcnIsIHR5cGVzLCBtYXhfbHVtaSwgbWF4X2F2Z19sdW1pLCBtaW5fbHVtaSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmZpbmQoZGlzcGxheSk7CisgICAgaWYgKGRweSA9PSBtRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzLnJlc2l6ZShjbGllbnRUYXJnZXRTbG90Q291bnQpOworCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuc2V0QWN0aXZlQ29uZmlnKGRpc3BsYXksIGNvbmZpZyk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRDb2xvck1vZGUoZGlzcGxheSwgbW9kZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgUG93ZXJNb2RlIG1vZGUpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRQb3dlck1vZGUoZGlzcGxheSwgbW9kZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkKK3sKKyAgICBFcnJvciBlcnIgPSBtSGFsLnNldFZzeW5jRW5hYmxlZChkaXNwbGF5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gZXJyOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4mIGRlc2NyaXB0b3IpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNvbW1hbmRNdXRleCk7CisgICAgcmV0dXJuIG1SZWFkZXItPnNldE1RRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA/CisgICAgICAgIEVycm9yOjpOT05FIDogRXJyb3I6Ok5PX1JFU09VUkNFUzsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRPdXRwdXRDb21tYW5kUXVldWUoCisgICAgICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZV9jYiBoaWRsX2NiKQoreworICAgIC8vIG5vIGxvY2tpbmcgYXMgd2UgcmVxdWlyZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBpbnNpZGUKKyAgICAvLyBleGVjdXRlQ29tbWFuZHNfY2IKKworICAgIGF1dG8gb3V0RGVzY3JpcHRvciA9IG1Xcml0ZXIuZ2V0TVFEZXNjcmlwdG9yKCk7CisgICAgaWYgKG91dERlc2NyaXB0b3IpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgKm91dERlc2NyaXB0b3IpOworICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PX1JFU09VUkNFUywgQ29tbWFuZFF1ZXVlVHlwZTo6RGVzY3JpcHRvcigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmV4ZWN1dGVDb21tYW5kcyh1aW50MzJfdCBpbkxlbmd0aCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9oYW5kbGU+JiBpbkhhbmRsZXMsCisgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Db21tYW5kTXV0ZXgpOworCisgICAgYm9vbCBvdXRDaGFuZ2VkID0gZmFsc2U7CisgICAgdWludDMyX3Qgb3V0TGVuZ3RoID0gMDsKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gb3V0SGFuZGxlczsKKworICAgIGlmICghbVJlYWRlci0+cmVhZFF1ZXVlKGluTGVuZ3RoLCBpbkhhbmRsZXMpKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9QQVJBTUVURVIsIG91dENoYW5nZWQsIG91dExlbmd0aCwgb3V0SGFuZGxlcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgRXJyb3IgZXJyID0gbVJlYWRlci0+cGFyc2UoKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FICYmCisgICAgICAgICAgICAhbVdyaXRlci53cml0ZVF1ZXVlKCZvdXRDaGFuZ2VkLCAmb3V0TGVuZ3RoLCAmb3V0SGFuZGxlcykpIHsKKyAgICAgICAgZXJyID0gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICB9CisKKyAgICBoaWRsX2NiKGVyciwgb3V0Q2hhbmdlZCwgb3V0TGVuZ3RoLCBvdXRIYW5kbGVzKTsKKworICAgIG1SZWFkZXItPnJlc2V0KCk7CisgICAgbVdyaXRlci5yZXNldCgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyPgorQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUNvbW1hbmRSZWFkZXIoKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI+KAorICAgICAgICBuZXcgQ29tbWFuZFJlYWRlcigqdGhpcykpOworfQorCitDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6Q29tbWFuZFJlYWRlcihDb21wb3NlckNsaWVudCYgY2xpZW50KQorICAgIDogbUNsaWVudChjbGllbnQpLCBtSGFsKGNsaWVudC5tSGFsKSwgbVdyaXRlcihjbGllbnQubVdyaXRlcikKK3sKK30KKworQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6On5Db21tYW5kUmVhZGVyKCkKK3sKK30KKworRXJyb3IgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlKCkKK3sKKyAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZDsKKyAgICB1aW50MTZfdCBsZW5ndGggPSAwOworCisgICAgd2hpbGUgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFiZWdpbkNvbW1hbmQoJmNvbW1hbmQsICZsZW5ndGgpKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgcGFyc2VkID0gcGFyc2VDb21tYW5kKGNvbW1hbmQsIGxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICBpZiAoIXBhcnNlZCkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBwYXJzZSBjb21tYW5kIDB4JXgsIGxlbmd0aCAlIiBQUkl1MTYsCisgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQsIGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAoaXNFbXB0eSgpKSA/IEVycm9yOjpOT05FIDogRXJyb3I6OkJBRF9QQVJBTUVURVI7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlQ29tbWFuZCgKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kIGNvbW1hbmQsIHVpbnQxNl90IGxlbmd0aCkgeworICAgIHN3aXRjaCAoY29tbWFuZCkgeworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfRElTUExBWToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2VsZWN0RGlzcGxheShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfTEFZRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNlbGVjdExheWVyKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk06CisgICAgICAgIHJldHVybiBwYXJzZVNldENvbG9yVHJhbnNmb3JtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VUOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRDbGllbnRUYXJnZXQobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNldE91dHB1dEJ1ZmZlcihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpWQUxJREFURV9ESVNQTEFZOgorICAgICAgICByZXR1cm4gcGFyc2VWYWxpZGF0ZURpc3BsYXkobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6QUNDRVBUX0RJU1BMQVlfQ0hBTkdFUzoKKyAgICAgICAgcmV0dXJuIHBhcnNlQWNjZXB0RGlzcGxheUNoYW5nZXMobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZOgorICAgICAgICByZXR1cm4gcGFyc2VQcmVzZW50RGlzcGxheShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckN1cnNvclBvc2l0aW9uKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CVUZGRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQnVmZmVyKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTdXJmYWNlRGFtYWdlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CTEVORF9NT0RFOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckJsZW5kTW9kZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1I6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQ29sb3IobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEU6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9EQVRBU1BBQ0U6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyRGF0YXNwYWNlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckRpc3BsYXlGcmFtZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfUExBTkVfQUxQSEE6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyUGxhbmVBbHBoYShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclNpZGViYW5kU3RyZWFtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TT1VSQ0VfQ1JPUDoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTb3VyY2VDcm9wKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk06CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyVHJhbnNmb3JtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTjoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJWaXNpYmxlUmVnaW9uKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9aX09SREVSOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclpPcmRlcihsZW5ndGgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2VsZWN0RGlzcGxheSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NlbGVjdERpc3BsYXlMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1EaXNwbGF5ID0gcmVhZDY0KCk7CisgICAgbVdyaXRlci5zZWxlY3REaXNwbGF5KG1EaXNwbGF5KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNlbGVjdExheWVyKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2VsZWN0TGF5ZXJMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1MYXllciA9IHJlYWQ2NCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZmxvYXQgbWF0cml4WzE2XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgbWF0cml4W2ldID0gcmVhZEZsb2F0KCk7CisgICAgfQorICAgIGF1dG8gdHJhbnNmb3JtID0gcmVhZFNpZ25lZCgpOworCisgICAgYXV0byBlcnIgPSBtSGFsLnNldENvbG9yVHJhbnNmb3JtKG1EaXNwbGF5LCBtYXRyaXgsIHRyYW5zZm9ybSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRDbGllbnRUYXJnZXQodWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIDQgcGFyYW1ldGVycyBmb2xsb3dlZCBieSBOIHJlY3RhbmdsZXMKKyAgICBpZiAoKGxlbmd0aCAtIDQpICUgNCAhPSAwKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gY2xpZW50VGFyZ2V0ID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBhdXRvIGRhdGFzcGFjZSA9IHJlYWRTaWduZWQoKTsKKyAgICBhdXRvIGRhbWFnZSA9IHJlYWRSZWdpb24oKGxlbmd0aCAtIDQpIC8gNCk7CisgICAgYm9vbCBjbG9zZUZlbmNlID0gdHJ1ZTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwQnVmZmVyKEJ1ZmZlckNhY2hlOjpDTElFTlRfVEFSR0VUUywKKyAgICAgICAgICAgIHNsb3QsIHVzZUNhY2hlLCBjbGllbnRUYXJnZXQsICZjbGllbnRUYXJnZXQpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRDbGllbnRUYXJnZXQobURpc3BsYXksIGNsaWVudFRhcmdldCwgZmVuY2UsCisgICAgICAgICAgICAgICAgZGF0YXNwYWNlLCBkYW1hZ2UpOworICAgICAgICBhdXRvIHVwZGF0ZUJ1ZkVyciA9IHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZTo6Q0xJRU5UX1RBUkdFVFMsIHNsb3QsCisgICAgICAgICAgICAgICAgdXNlQ2FjaGUsIGNsaWVudFRhcmdldCk7CisgICAgICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGNsb3NlRmVuY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGVyciA9IHVwZGF0ZUJ1ZkVycjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY2xvc2VGZW5jZSkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0T3V0cHV0QnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gb3V0cHV0QnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTLAorICAgICAgICAgICAgc2xvdCwgdXNlQ2FjaGUsIG91dHB1dEJ1ZmZlciwgJm91dHB1dEJ1ZmZlcik7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBlcnIgPSBtSGFsLnNldE91dHB1dEJ1ZmZlcihtRGlzcGxheSwgb3V0cHV0QnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpPVVRQVVRfQlVGRkVSUywKKyAgICAgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgb3V0cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICAgICAgY2xvc2VGZW5jZSA9IGZhbHNlOworICAgICAgICAgICAgZXJyID0gdXBkYXRlQnVmRXJyOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjbG9zZUZlbmNlKSB7CisgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtWYWxpZGF0ZURpc3BsYXlMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBjaGFuZ2VkTGF5ZXJzOworICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uVHlwZXM7CisgICAgdWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrID0gMHgwOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZXF1ZXN0ZWRMYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHJlcXVlc3RNYXNrczsKKworICAgIGF1dG8gZXJyID0gbUhhbC52YWxpZGF0ZURpc3BsYXkobURpc3BsYXksICZjaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgJmNvbXBvc2l0aW9uVHlwZXMsICZkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICAmcmVxdWVzdGVkTGF5ZXJzLCAmcmVxdWVzdE1hc2tzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXMoY2hhbmdlZExheWVycywKKyAgICAgICAgICAgICAgICBjb21wb3NpdGlvblR5cGVzKTsKKyAgICAgICAgbVdyaXRlci5zZXREaXNwbGF5UmVxdWVzdHMoZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgICAgIHJlcXVlc3RlZExheWVycywgcmVxdWVzdE1hc2tzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VBY2NlcHREaXNwbGF5Q2hhbmdlcyh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a0FjY2VwdERpc3BsYXlDaGFuZ2VzTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMobURpc3BsYXkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlUHJlc2VudERpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtQcmVzZW50RGlzcGxheUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaW50IHByZXNlbnRGZW5jZSA9IC0xOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBsYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8aW50PiBmZW5jZXM7CisgICAgYXV0byBlcnIgPSBtSGFsLnByZXNlbnREaXNwbGF5KG1EaXNwbGF5LCAmcHJlc2VudEZlbmNlLCAmbGF5ZXJzLCAmZmVuY2VzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0UHJlc2VudEZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIG1Xcml0ZXIuc2V0UmVsZWFzZUZlbmNlcyhsYXllcnMsIGZlbmNlcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckN1cnNvclBvc2l0aW9uKG1EaXNwbGF5LCBtTGF5ZXIsCisgICAgICAgICAgICByZWFkU2lnbmVkKCksIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllckJ1ZmZlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gYnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlMsCisgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgYnVmZmVyLCAmYnVmZmVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGVyciA9IG1IYWwuc2V0TGF5ZXJCdWZmZXIobURpc3BsYXksIG1MYXllciwgYnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9CVUZGRVJTLCBzbG90LAorICAgICAgICAgICAgICAgIHVzZUNhY2hlLCBidWZmZXIpOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBjbG9zZUZlbmNlID0gZmFsc2U7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVCdWZFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNsb3NlRmVuY2UpIHsKKyAgICAgICAgY2xvc2UoZmVuY2UpOworICAgIH0KKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgLy8gTiByZWN0YW5nbGVzCisgICAgaWYgKGxlbmd0aCAlIDQgIT0gMCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBkYW1hZ2UgPSByZWFkUmVnaW9uKGxlbmd0aCAvIDQpOworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURpc3BsYXksIG1MYXllciwgZGFtYWdlKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQmxlbmRNb2RlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJCbGVuZE1vZGVMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckJsZW5kTW9kZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDb2xvcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29sb3JMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckNvbG9yKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRDb2xvcigpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKAorICAgICAgICB1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJDb21wb3NpdGlvblR5cGUobURpc3BsYXksIG1MYXllciwgcmVhZFNpZ25lZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyRGF0YXNwYWNlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJEYXRhc3BhY2VMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckRhdGFzcGFjZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyRGlzcGxheUZyYW1lKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJQbGFuZUFscGhhKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJQbGFuZUFscGhhTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJQbGFuZUFscGhhKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRGbG9hdCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU2lkZWJhbmRTdHJlYW0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNpZGViYW5kU3RyZWFtTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIHN0cmVhbSA9IHJlYWRIYW5kbGUoKTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0sICZzdHJlYW0pOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRMYXllclNpZGViYW5kU3RyZWFtKG1EaXNwbGF5LCBtTGF5ZXIsIHN0cmVhbSk7CisgICAgICAgIGF1dG8gdXBkYXRlRXJyID0gdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0pOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclNvdXJjZUNyb3AodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclNvdXJjZUNyb3AobURpc3BsYXksIG1MYXllciwgcmVhZEZSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyVHJhbnNmb3JtKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclZpc2libGVSZWdpb24odWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIE4gcmVjdGFuZ2xlcworICAgIGlmIChsZW5ndGggJSA0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gcmVnaW9uID0gcmVhZFJlZ2lvbihsZW5ndGggLyA0KTsKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJWaXNpYmxlUmVnaW9uKG1EaXNwbGF5LCBtTGF5ZXIsIHJlZ2lvbik7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyWk9yZGVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJaT3JkZXIobURpc3BsYXksIG1MYXllciwgcmVhZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitod2NfcmVjdF90IENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpyZWFkUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19yZWN0X3R7CisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICAgICAgcmVhZFNpZ25lZCgpLAorICAgICAgICByZWFkU2lnbmVkKCksCisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICB9OworfQorCitzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cmVhZFJlZ2lvbihzaXplX3QgY291bnQpCit7CisgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVnaW9uOworICAgIHJlZ2lvbi5yZXNlcnZlKGNvdW50KTsKKyAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgIHJlZ2lvbi5lbXBsYWNlX2JhY2socmVhZFJlY3QoKSk7CisgICAgICAgIGNvdW50LS07CisgICAgfQorCisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKworaHdjX2ZyZWN0X3QgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnJlYWRGUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19mcmVjdF90eworICAgICAgICByZWFkRmxvYXQoKSwKKyAgICAgICAgcmVhZEZsb2F0KCksCisgICAgICAgIHJlYWRGbG9hdCgpLAorICAgICAgICByZWFkRmxvYXQoKSwKKyAgICB9OworfQorCitFcnJvciBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6bG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZCgKKyAgICAgICAgQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsIEJ1ZmZlckNhY2hlRW50cnkqKiBvdXRFbnRyeSkKK3sKKyAgICBhdXRvIGRweSA9IG1DbGllbnQubURpc3BsYXlEYXRhLmZpbmQobURpc3BsYXkpOworICAgIGlmIChkcHkgPT0gbUNsaWVudC5tRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgc3dpdGNoIChjYWNoZSkgeworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkNMSUVOVF9UQVJHRVRTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLkNsaWVudFRhcmdldHMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5PdXRwdXRCdWZmZXJzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPCBseS0+c2Vjb25kLkJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZW50cnkgPSAmbHktPnNlY29uZC5CdWZmZXJzW3Nsb3RdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPT0gMCkgeworICAgICAgICAgICAgICAgIGVudHJ5ID0gJmx5LT5zZWNvbmQuU2lkZWJhbmRTdHJlYW07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCFlbnRyeSkgeworICAgICAgICBBTE9HVygiaW52YWxpZCBidWZmZXIgc2xvdCAlIiBQUkl1MzIsIHNsb3QpOworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9QQVJBTUVURVI7CisgICAgfQorCisgICAgKm91dEVudHJ5ID0gZW50cnk7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0SGFuZGxlKQoreworICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50Lm1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeTsKKyAgICAgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlucHV0IGhhbmRsZSBpcyBpZ25vcmVkCisgICAgICAgICpvdXRIYW5kbGUgPSBlbnRyeS0+Z2V0SGFuZGxlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0QnVmZmVyKGhhbmRsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisKKyAgICAgICAgKm91dEhhbmRsZSA9IGhhbmRsZTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjp1cGRhdGVCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCit7CisgICAgLy8gaGFuZGxlIHdhcyBsb29rZWQgdXAgZnJvbSBjYWNoZQorICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudC5tRGlzcGxheURhdGFNdXRleCk7CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgIGlmIChlcnJvciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgICplbnRyeSA9IGhhbmRsZTsKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckNsaWVudC5oIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDEwZjgwCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQ0xJRU5UX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0NMSUVOVF9ICisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2h3Y29tcG9zZXIyLmg+CisjaW5jbHVkZSAiSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBCdWZmZXJDYWNoZUVudHJ5IHsKK3B1YmxpYzoKKyAgICBCdWZmZXJDYWNoZUVudHJ5KCk7CisgICAgQnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpOworCisgICAgQnVmZmVyQ2FjaGVFbnRyeShjb25zdCBCdWZmZXJDYWNoZUVudHJ5JiBvdGhlcikgPSBkZWxldGU7CisgICAgQnVmZmVyQ2FjaGVFbnRyeSYgb3BlcmF0b3I9KGNvbnN0IEJ1ZmZlckNhY2hlRW50cnkmIG90aGVyKSA9IGRlbGV0ZTsKKworICAgIEJ1ZmZlckNhY2hlRW50cnkmIG9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKyAgICB+QnVmZmVyQ2FjaGVFbnRyeSgpOworCisgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICBidWZmZXJfaGFuZGxlX3QgbUhhbmRsZTsKK307CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50IDogcHVibGljIElDb21wb3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgQ29tcG9zZXJDbGllbnQoQ29tcG9zZXJCYXNlJiBoYWwpOworICAgIHZpcnR1YWwgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKworICAgIHZvaWQgb25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKTsKKyAgICB2b2lkIG9uUmVmcmVzaChEaXNwbGF5IGRpc3BsYXkpOworICAgIHZvaWQgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIC8vIElDb21wb3NlckNsaWVudCBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gcmVnaXN0ZXJDYWxsYmFjaygKKyAgICAgICAgICAgIGNvbnN0IHNwPElDb21wb3NlckNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICBjcmVhdGVMYXllcl9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldEFjdGl2ZUNvbmZpZ19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0Q29sb3JNb2Rlc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBDb25maWcgY29uZmlnLCBBdHRyaWJ1dGUgYXR0cmlidXRlLAorICAgICAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RGlzcGxheUNvbmZpZ3NfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldERpc3BsYXlOYW1lX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXREaXNwbGF5VHlwZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RG96ZVN1cHBvcnRfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXRIZHJDYXBhYmlsaXRpZXNfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIFZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgICAgIGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8dWludDMyX3Q+JiBkZXNjcmlwdG9yKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4mIGluSGFuZGxlcywKKyAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHN0cnVjdCBMYXllckJ1ZmZlcnMgeworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBCdWZmZXJzOworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5IFNpZGViYW5kU3RyZWFtOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGlzcGxheURhdGEgeworICAgICAgICBib29sIElzVmlydHVhbDsKKworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBDbGllbnRUYXJnZXRzOworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBPdXRwdXRCdWZmZXJzOworCisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxMYXllciwgTGF5ZXJCdWZmZXJzPiBMYXllcnM7CisKKyAgICAgICAgRGlzcGxheURhdGEoYm9vbCBpc1ZpcnR1YWwpIDogSXNWaXJ0dWFsKGlzVmlydHVhbCkge30KKyAgICB9OworCisgICAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBDb21tYW5kUmVhZGVyKENvbXBvc2VyQ2xpZW50JiBjbGllbnQpOworICAgICAgICB2aXJ0dWFsIH5Db21tYW5kUmVhZGVyKCk7CisKKyAgICAgICAgRXJyb3IgcGFyc2UoKTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBib29sIHBhcnNlQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZCwKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3REaXNwbGF5KHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3RMYXllcih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldENsaWVudFRhcmdldCh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZUFjY2VwdERpc3BsYXlDaGFuZ2VzKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VQcmVzZW50RGlzcGxheSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJCdWZmZXIodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJCbGVuZE1vZGUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyQ29sb3IodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckRhdGFzcGFjZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyUGxhbmVBbHBoYSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTaWRlYmFuZFN0cmVhbSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTb3VyY2VDcm9wKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclRyYW5zZm9ybSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJWaXNpYmxlUmVnaW9uKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGh3Y19yZWN0X3QgcmVhZFJlY3QoKTsKKyAgICAgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVhZFJlZ2lvbihzaXplX3QgY291bnQpOworICAgICAgICBod2NfZnJlY3RfdCByZWFkRlJlY3QoKTsKKworICAgICAgICBlbnVtIGNsYXNzIEJ1ZmZlckNhY2hlIHsKKyAgICAgICAgICAgIENMSUVOVF9UQVJHRVRTLAorICAgICAgICAgICAgT1VUUFVUX0JVRkZFUlMsCisgICAgICAgICAgICBMQVlFUl9CVUZGRVJTLAorICAgICAgICAgICAgTEFZRVJfU0lERUJBTkRfU1RSRUFNUywKKyAgICAgICAgfTsKKyAgICAgICAgRXJyb3IgbG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZChCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBCdWZmZXJDYWNoZUVudHJ5Kiogb3V0RW50cnkpOworICAgICAgICBFcnJvciBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsCisgICAgICAgICAgICAgICAgYm9vbCB1c2VDYWNoZSwgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwKKyAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEhhbmRsZSk7CisgICAgICAgIEVycm9yIHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBib29sIHVzZUNhY2hlLCBidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgICAgICBFcnJvciBsb29rdXBMYXllclNpZGViYW5kU3RyZWFtKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRIYW5kbGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVMsCisgICAgICAgICAgICAgICAgICAgIDAsIGZhbHNlLCBoYW5kbGUsIG91dEhhbmRsZSk7CisgICAgICAgIH0KKyAgICAgICAgRXJyb3IgdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9TSURFQkFORF9TVFJFQU1TLAorICAgICAgICAgICAgICAgICAgICAwLCBmYWxzZSwgaGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIENvbXBvc2VyQ2xpZW50JiBtQ2xpZW50OworICAgICAgICBDb21wb3NlckJhc2UmIG1IYWw7CisgICAgICAgIENvbW1hbmRXcml0ZXJCYXNlJiBtV3JpdGVyOworCisgICAgICAgIERpc3BsYXkgbURpc3BsYXk7CisgICAgICAgIExheWVyIG1MYXllcjsKKyAgICB9OworCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFJlYWRlcj4gY3JlYXRlQ29tbWFuZFJlYWRlcigpOworCisgICAgQ29tcG9zZXJCYXNlJiBtSGFsOworCisgICAgLy8gNjRLaUIgbWludXMgYSBzbWFsbCBzcGFjZSBmb3IgbWV0YWRhdGEgc3VjaCBhcyByZWFkL3dyaXRlIHBvaW50ZXJzCisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga1dyaXRlckluaXRpYWxTaXplID0KKyAgICAgICAgNjQgKiAxMDI0IC8gc2l6ZW9mKHVpbnQzMl90KSAtIDE2OworICAgIHN0ZDo6bXV0ZXggbUNvbW1hbmRNdXRleDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFJlYWRlcj4gbVJlYWRlcjsKKyAgICBDb21tYW5kV3JpdGVyQmFzZSBtV3JpdGVyOworCisgICAgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+IG1DYWxsYmFjazsKKworICAgIHN0ZDo6bXV0ZXggbURpc3BsYXlEYXRhTXV0ZXg7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPERpc3BsYXksIERpc3BsYXlEYXRhPiBtRGlzcGxheURhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMQorfSAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9DTElFTlRfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNhMGViMwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5jcHAKQEAgLTAsMCArMSw3NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiSHdjUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlICJId2MuaCIKKworI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkNvbXBvc2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiaGFyZHdhcmUvaHdjb21wb3Nlci5oIgorI2luY2x1ZGUgImh3YzJvbjFhZGFwdGVyL0hXQzJPbjFBZGFwdGVyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworSHdjSGFsOjpId2NIYWwoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSkKKyAgICA6IG1EZXZpY2UobnVsbHB0ciksIG1EaXNwYXRjaCgpLCBtQWRhcHRlcigpCit7CisgICAgLy8gRGV0ZXJtaW5lIHdoYXQga2luZCBvZiBtb2R1bGUgaXMgYXZhaWxhYmxlIChIV0MyIHZzIEhXQzEuWCkuCisgICAgaHdfZGV2aWNlX3QqIGRldmljZSA9IG51bGxwdHI7CisgICAgaW50IGVycm9yID0gbW9kdWxlLT5tZXRob2RzLT5vcGVuKG1vZHVsZSwgSFdDX0hBUkRXQVJFX0NPTVBPU0VSLCAmZGV2aWNlKTsKKyAgICBpZiAoZXJyb3IgIT0gMCkgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gSFdDIGRldmljZSAoJXMpLCBhYm9ydGluZyIsIHN0cmVycm9yKC1lcnJvcikpOworICAgICAgICBhYm9ydCgpOworICAgIH0KKyAgICB1aW50MzJfdCBtYWpvclZlcnNpb24gPSAoZGV2aWNlLT52ZXJzaW9uID4+IDI0KSAmIDB4RjsKKworICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBIV0MyLCB3ZSBuZWVkIHRvIHdyYXAgd2hhdGV2ZXIgd2UgaGF2ZSBpbiBhbiBhZGFwdGVyLgorICAgIGlmIChtYWpvclZlcnNpb24gIT0gMikgeworICAgICAgICB1aW50MzJfdCBtaW5vclZlcnNpb24gPSBkZXZpY2UtPnZlcnNpb24gJiBIQVJEV0FSRV9BUElfVkVSU0lPTl8yX01BSl9NSU5fTUFTSzsKKyAgICAgICAgbWlub3JWZXJzaW9uID0gKG1pbm9yVmVyc2lvbiA+PiAxNikgJiAweEY7CisgICAgICAgIEFMT0dJKCJGb3VuZCBIV0MgaW1wbGVtZW50YXRpb24gdiVkLiVkIiwgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb24pOworICAgICAgICBpZiAobWlub3JWZXJzaW9uIDwgMSkgeworICAgICAgICAgICAgQUxPR0UoIkNhbm5vdCBhZGFwdCB0byBIV0MgdmVyc2lvbiAlZC4lZC4gTWluaW11bSBzdXBwb3J0ZWQgaXMgMS4xIiwKKyAgICAgICAgICAgICAgICAgIG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9uKTsKKyAgICAgICAgICAgIGFib3J0KCk7CisgICAgICAgIH0KKyAgICAgICAgbUFkYXB0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEhXQzJPbjFBZGFwdGVyPigKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3Y19jb21wb3Nlcl9kZXZpY2VfMSo+KGRldmljZSkpOworCisgICAgICAgIC8vIFBsYWNlIHRoZSBhZGFwdGVyIGluIGZyb250IG9mIHRoZSBkZXZpY2UgbW9kdWxlLgorICAgICAgICBtRGV2aWNlID0gbUFkYXB0ZXIuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbURldmljZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9kZXZpY2VfdCo+KGRldmljZSk7CisgICAgfQorCisgICAgaW5pdENhcGFiaWxpdGllcygpOworICAgIGlmIChtYWpvclZlcnNpb24gPj0gMiAmJgorICAgICAgICBoYXNDYXBhYmlsaXR5KENhcGFiaWxpdHk6OlBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFKSkgeworICAgICAgICBBTE9HRSgiUHJlc2VudCBmZW5jZSBtdXN0IGJlIHJlbGlhYmxlIGZyb20gSFdDMiBvbi4iKTsKKyAgICAgICAgYWJvcnQoKTsKKyAgICB9CisKKyAgICBpbml0RGlzcGF0Y2goKTsKK30KKworSHdjSGFsOjp+SHdjSGFsKCkKK3sKKyAgICBod2MyX2Nsb3NlKG1EZXZpY2UpOworfQorCit2b2lkIEh3Y0hhbDo6aW5pdENhcGFiaWxpdGllcygpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8Q2FwYWJpbGl0eT4gY2Fwcyhjb3VudCk7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgcmVpbnRlcnByZXRfY2FzdDwKKyAgICAgICAgICAgICAgc3RkOjp1bmRlcmx5aW5nX3R5cGU8Q2FwYWJpbGl0eT46OnR5cGUqPihjYXBzLmRhdGEoKSkpOworICAgIGNhcHMucmVzaXplKGNvdW50KTsKKworICAgIG1DYXBhYmlsaXRpZXMuaW5zZXJ0KGNhcHMuY2JlZ2luKCksIGNhcHMuY2VuZCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgSHdjSGFsOjppbml0RGlzcGF0Y2goaHdjMl9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKQoreworICAgIGF1dG8gcGZuID0gbURldmljZS0+Z2V0RnVuY3Rpb24obURldmljZSwgZGVzYyk7CisgICAgaWYgKCFwZm4pIHsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiZmFpbGVkIHRvIGdldCBod2NvbXBvc2VyMiBmdW5jdGlvbiAlZCIsIGRlc2MpOworICAgIH0KKworICAgICpvdXRQZm4gPSByZWludGVycHJldF9jYXN0PFQ+KHBmbik7Cit9CisKK3ZvaWQgSHdjSGFsOjppbml0RGlzcGF0Y2goKQoreworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0FDQ0VQVF9ESVNQTEFZX0NIQU5HRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmFjY2VwdERpc3BsYXlDaGFuZ2VzKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9DUkVBVEVfTEFZRVIsICZtRGlzcGF0Y2guY3JlYXRlTGF5ZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0NSRUFURV9WSVJUVUFMX0RJU1BMQVksCisgICAgICAgICAgICAmbURpc3BhdGNoLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9ERVNUUk9ZX0xBWUVSLCAmbURpc3BhdGNoLmRlc3Ryb3lMYXllcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fREVTVFJPWV9WSVJUVUFMX0RJU1BMQVksCisgICAgICAgICAgICAmbURpc3BhdGNoLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fRFVNUCwgJm1EaXNwYXRjaC5kdW1wKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfQUNUSVZFX0NPTkZJRywgJm1EaXNwYXRjaC5nZXRBY3RpdmVDb25maWcpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NMSUVOVF9UQVJHRVRfU1VQUE9SVCwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NPTE9SX01PREVTLCAmbURpc3BhdGNoLmdldENvbG9yTW9kZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX0FUVFJJQlVURSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0RGlzcGxheUF0dHJpYnV0ZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfQ09ORklHUywKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0RGlzcGxheUNvbmZpZ3MpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX05BTUUsICZtRGlzcGF0Y2guZ2V0RGlzcGxheU5hbWUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX1JFUVVFU1RTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXREaXNwbGF5UmVxdWVzdHMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX1RZUEUsICZtRGlzcGF0Y2guZ2V0RGlzcGxheVR5cGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ET1pFX1NVUFBPUlQsICZtRGlzcGF0Y2guZ2V0RG96ZVN1cHBvcnQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9IRFJfQ0FQQUJJTElUSUVTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRIZHJDYXBhYmlsaXRpZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9NQVhfVklSVFVBTF9ESVNQTEFZX0NPVU5ULAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfUkVMRUFTRV9GRU5DRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldFJlbGVhc2VGZW5jZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1BSRVNFTlRfRElTUExBWSwgJm1EaXNwYXRjaC5wcmVzZW50RGlzcGxheSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fUkVHSVNURVJfQ0FMTEJBQ0ssCisgICAgICAgICAgICAmbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2spOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9BQ1RJVkVfQ09ORklHLCAmbURpc3BhdGNoLnNldEFjdGl2ZUNvbmZpZyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0NMSUVOVF9UQVJHRVQsICZtRGlzcGF0Y2guc2V0Q2xpZW50VGFyZ2V0KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ09MT1JfTU9ERSwgJm1EaXNwYXRjaC5zZXRDb2xvck1vZGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldENvbG9yVHJhbnNmb3JtKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ1VSU09SX1BPU0lUSU9OLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRDdXJzb3JQb3NpdGlvbik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0JMRU5EX01PREUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQmxlbmRNb2RlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQlVGRkVSLCAmbURpc3BhdGNoLnNldExheWVyQnVmZmVyKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQ09MT1IsICZtRGlzcGF0Y2guc2V0TGF5ZXJDb2xvcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQ29tcG9zaXRpb25UeXBlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfREFUQVNQQUNFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllckRhdGFzcGFjZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyRGlzcGxheUZyYW1lKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfUExBTkVfQUxQSEEsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyUGxhbmVBbHBoYSk7CisKKyAgICBpZiAoaGFzQ2FwYWJpbGl0eShDYXBhYmlsaXR5OjpTSURFQkFORF9TVFJFQU0pKSB7CisgICAgICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0sCisgICAgICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllclNpZGViYW5kU3RyZWFtKTsKKyAgICB9CisKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfU09VUkNFX0NST1AsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyU291cmNlQ3JvcCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllclN1cmZhY2VEYW1hZ2UpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyVHJhbnNmb3JtKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfVklTSUJMRV9SRUdJT04sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyVmlzaWJsZVJlZ2lvbik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1pfT1JERVIsICZtRGlzcGF0Y2guc2V0TGF5ZXJaT3JkZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9PVVRQVVRfQlVGRkVSLCAmbURpc3BhdGNoLnNldE91dHB1dEJ1ZmZlcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX1BPV0VSX01PREUsICZtRGlzcGF0Y2guc2V0UG93ZXJNb2RlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfVlNZTkNfRU5BQkxFRCwgJm1EaXNwYXRjaC5zZXRWc3luY0VuYWJsZWQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1ZBTElEQVRFX0RJU1BMQVksICZtRGlzcGF0Y2gudmFsaWRhdGVEaXNwbGF5KTsKK30KKworYm9vbCBId2NIYWw6Omhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eSBjYXBhYmlsaXR5KSBjb25zdAoreworICAgIHJldHVybiAobUNhcGFiaWxpdGllcy5jb3VudChjYXBhYmlsaXR5KSA+IDApOworfQorCitSZXR1cm48dm9pZD4gSHdjSGFsOjpnZXRDYXBhYmlsaXRpZXMoZ2V0Q2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpCit7CisgICAgc3RkOjp2ZWN0b3I8Q2FwYWJpbGl0eT4gY2FwcygKKyAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMuY2JlZ2luKCksIG1DYXBhYmlsaXRpZXMuY2VuZCgpKTsKKworICAgIGhpZGxfdmVjPENhcGFiaWxpdHk+IGNhcHNfcmVwbHk7CisgICAgY2Fwc19yZXBseS5zZXRUb0V4dGVybmFsKGNhcHMuZGF0YSgpLCBjYXBzLnNpemUoKSk7CisgICAgaGlkbF9jYihjYXBzX3JlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBId2NIYWw6OmR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKQoreworICAgIHVpbnQzMl90IGxlbiA9IDA7CisgICAgbURpc3BhdGNoLmR1bXAobURldmljZSwgJmxlbiwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxjaGFyPiBidWYobGVuICsgMSk7CisgICAgbURpc3BhdGNoLmR1bXAobURldmljZSwgJmxlbiwgYnVmLmRhdGEoKSk7CisgICAgYnVmLnJlc2l6ZShsZW4gKyAxKTsKKyAgICBidWZbbGVuXSA9ICdcMCc7CisKKyAgICBoaWRsX3N0cmluZyBidWZfcmVwbHk7CisgICAgYnVmX3JlcGx5LnNldFRvRXh0ZXJuYWwoYnVmLmRhdGEoKSwgbGVuKTsKKyAgICBoaWRsX2NiKGJ1Zl9yZXBseSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSHdjSGFsOjpjcmVhdGVDbGllbnQoY3JlYXRlQ2xpZW50X2NiIGhpZGxfY2IpCit7CisgICAgRXJyb3IgZXJyID0gRXJyb3I6Ok5PTkU7CisgICAgc3A8Q29tcG9zZXJDbGllbnQ+IGNsaWVudDsKKworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudE11dGV4KTsKKworICAgICAgICAvLyBvbmx5IG9uZSBjbGllbnQgaXMgYWxsb3dlZAorICAgICAgICBpZiAobUNsaWVudCA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBjbGllbnQgPSBuZXcgQ29tcG9zZXJDbGllbnQoKnRoaXMpOworICAgICAgICAgICAgY2xpZW50LT5pbml0aWFsaXplKCk7CisgICAgICAgICAgICBtQ2xpZW50ID0gY2xpZW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJyID0gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBjbGllbnQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworc3A8Q29tcG9zZXJDbGllbnQ+IEh3Y0hhbDo6Z2V0Q2xpZW50KCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50TXV0ZXgpOworICAgIHJldHVybiAobUNsaWVudCAhPSBudWxscHRyKSA/IG1DbGllbnQucHJvbW90ZSgpIDogbnVsbHB0cjsKK30KKwordm9pZCBId2NIYWw6OnJlbW92ZUNsaWVudCgpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudE11dGV4KTsKKyAgICBtQ2xpZW50ID0gbnVsbHB0cjsKK30KKwordm9pZCBId2NIYWw6OmhvdHBsdWdIb29rKGh3YzJfY2FsbGJhY2tfZGF0YV90IGNhbGxiYWNrRGF0YSwKKyAgICAgICAgaHdjMl9kaXNwbGF5X3QgZGlzcGxheSwgaW50MzJfdCBjb25uZWN0ZWQpCit7CisgICAgYXV0byBoYWwgPSByZWludGVycHJldF9jYXN0PEh3Y0hhbCo+KGNhbGxiYWNrRGF0YSk7CisgICAgYXV0byBjbGllbnQgPSBoYWwtPmdldENsaWVudCgpOworICAgIGlmIChjbGllbnQgIT0gbnVsbHB0cikgeworICAgICAgICBjbGllbnQtPm9uSG90cGx1ZyhkaXNwbGF5LAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElDb21wb3NlckNhbGxiYWNrOjpDb25uZWN0aW9uPihjb25uZWN0ZWQpKTsKKyAgICB9Cit9CisKK3ZvaWQgSHdjSGFsOjpyZWZyZXNoSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXkpCit7CisgICAgYXV0byBoYWwgPSByZWludGVycHJldF9jYXN0PEh3Y0hhbCo+KGNhbGxiYWNrRGF0YSk7CisgICAgYXV0byBjbGllbnQgPSBoYWwtPmdldENsaWVudCgpOworICAgIGlmIChjbGllbnQgIT0gbnVsbHB0cikgeworICAgICAgICBjbGllbnQtPm9uUmVmcmVzaChkaXNwbGF5KTsKKyAgICB9Cit9CisKK3ZvaWQgSHdjSGFsOjp2c3luY0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCkKK3sKKyAgICBhdXRvIGhhbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SHdjSGFsKj4oY2FsbGJhY2tEYXRhKTsKKyAgICBhdXRvIGNsaWVudCA9IGhhbC0+Z2V0Q2xpZW50KCk7CisgICAgaWYgKGNsaWVudCAhPSBudWxscHRyKSB7CisgICAgICAgIGNsaWVudC0+b25Wc3luYyhkaXNwbGF5LCB0aW1lc3RhbXApOworICAgIH0KK30KKwordm9pZCBId2NIYWw6OmVuYWJsZUNhbGxiYWNrKGJvb2wgZW5hYmxlKQoreworICAgIGlmIChlbmFibGUpIHsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19IT1RQTFVHLCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KGhvdHBsdWdIb29rKSk7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfUkVGUkVTSCwgdGhpcywKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3YzJfZnVuY3Rpb25fcG9pbnRlcl90PihyZWZyZXNoSG9vaykpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1ZTWU5DLCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KHZzeW5jSG9vaykpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfSE9UUExVRywgdGhpcywKKyAgICAgICAgICAgICAgICBudWxscHRyKTsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19SRUZSRVNILCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1ZTWU5DLCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgIH0KK30KKwordWludDMyX3QgSHdjSGFsOjpnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkKK3sKKyAgICByZXR1cm4gbURpc3BhdGNoLmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQobURldmljZSk7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Y3JlYXRlVmlydHVhbERpc3BsYXkodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICBQaXhlbEZvcm1hdCogZm9ybWF0LCBEaXNwbGF5KiBvdXREaXNwbGF5KQoreworICAgIGludDMyX3QgaHdjX2Zvcm1hdCA9IHN0YXRpY19jYXN0PGludDMyX3Q+KCpmb3JtYXQpOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KG1EZXZpY2UsIHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAmaHdjX2Zvcm1hdCwgb3V0RGlzcGxheSk7CisgICAgKmZvcm1hdCA9IHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0Pihod2NfZm9ybWF0KTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShtRGV2aWNlLCBkaXNwbGF5KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Y3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guY3JlYXRlTGF5ZXIobURldmljZSwgZGlzcGxheSwgb3V0TGF5ZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5kZXN0cm95TGF5ZXIobURldmljZSwgZGlzcGxheSwgbGF5ZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcqIG91dENvbmZpZykKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRBY3RpdmVDb25maWcobURldmljZSwgZGlzcGxheSwgb3V0Q29uZmlnKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBzdGF0aWNfY2FzdDxpbnQzMl90Pihmb3JtYXQpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGF0YXNwYWNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2RlcykKK3sKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZ2V0Q29sb3JNb2RlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRNb2Rlcy0+cmVzaXplKGNvdW50KTsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0Q29sb3JNb2RlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPENvbG9yTW9kZT46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRNb2Rlcy0+ZGF0YSgpKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dE1vZGVzID0gaGlkbF92ZWM8Q29sb3JNb2RlPigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlBdHRyaWJ1dGUobURldmljZSwgZGlzcGxheSwgY29uZmlnLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oYXR0cmlidXRlKSwgb3V0VmFsdWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPENvbmZpZz4qIG91dENvbmZpZ3MpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlDb25maWdzKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmY291bnQsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRDb25maWdzLT5yZXNpemUoY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5Q29uZmlncyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJmNvdW50LCBvdXRDb25maWdzLT5kYXRhKCkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRDb25maWdzID0gaGlkbF92ZWM8Q29uZmlnPigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwgaGlkbF9zdHJpbmcqIG91dE5hbWUpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlOYW1lKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwgbnVsbHB0cik7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1Zihjb3VudCArIDEpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5TmFtZShtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsIGJ1Zi5kYXRhKCkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisgICAgYnVmLnJlc2l6ZShjb3VudCArIDEpOworICAgIGJ1Zltjb3VudF0gPSAnXDAnOworCisgICAgKm91dE5hbWUgPSBidWYuZGF0YSgpOworCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlUeXBlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkKK3sKKyAgICBpbnQzMl90IGh3Y190eXBlID0gSFdDMl9ESVNQTEFZX1RZUEVfSU5WQUxJRDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5VHlwZShtRGV2aWNlLCBkaXNwbGF5LCAmaHdjX3R5cGUpOworICAgICpvdXRUeXBlID0gc3RhdGljX2Nhc3Q8SUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZT4oaHdjX3R5cGUpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwgYm9vbCogb3V0U3VwcG9ydCkKK3sKKyAgICBpbnQzMl90IGh3Y19zdXBwb3J0ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXREb3plU3VwcG9ydChtRGV2aWNlLCBkaXNwbGF5LCAmaHdjX3N1cHBvcnQpOworICAgICpvdXRTdXBwb3J0ID0gaHdjX3N1cHBvcnQ7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwgaGlkbF92ZWM8SGRyPiogb3V0VHlwZXMsCisgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKQoreworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRIZHJDYXBhYmlsaXRpZXMobURldmljZSwgZGlzcGxheSwgJmNvdW50LAorICAgICAgICAgICAgbnVsbHB0ciwgb3V0TWF4THVtaW5hbmNlLCBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgb3V0TWluTHVtaW5hbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0VHlwZXMtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldEhkckNhcGFiaWxpdGllcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPEhkcj46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRUeXBlcy0+ZGF0YSgpKSwgb3V0TWF4THVtaW5hbmNlLAorICAgICAgICAgICAgb3V0TWF4QXZlcmFnZUx1bWluYW5jZSwgb3V0TWluTHVtaW5hbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICAqb3V0VHlwZXMgPSBoaWRsX3ZlYzxIZHI+KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRBY3RpdmVDb25maWcobURldmljZSwgZGlzcGxheSwgY29uZmlnKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q29sb3JNb2RlKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Pihtb2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0UG93ZXJNb2RlKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Pihtb2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRWc3luY0VuYWJsZWQobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KGVuYWJsZWQpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICBpbnQzMl90IGhpbnQpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q29sb3JUcmFuc2Zvcm0obURldmljZSwgZGlzcGxheSwgbWF0cml4LCBoaW50KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q2xpZW50VGFyZ2V0KERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IHRhcmdldCwKKyAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKQoreworICAgIGh3Y19yZWdpb24gcmVnaW9uID0geyBkYW1hZ2Uuc2l6ZSgpLCBkYW1hZ2UuZGF0YSgpIH07CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q2xpZW50VGFyZ2V0KG1EZXZpY2UsIGRpc3BsYXksIHRhcmdldCwKKyAgICAgICAgICAgIGFjcXVpcmVGZW5jZSwgZGF0YXNwYWNlLCByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICBpbnQzMl90IHJlbGVhc2VGZW5jZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRPdXRwdXRCdWZmZXIobURldmljZSwgZGlzcGxheSwgYnVmZmVyLAorICAgICAgICAgICAgcmVsZWFzZUZlbmNlKTsKKyAgICAvLyB1bmxpa2UgaW4gc2V0Q2xpZW50VGFyZ2V0LCByZWxlYXNlRmVuY2UgaXMgb3duZWQgYnkgdXMKKyAgICBpZiAoZXJyID09IEhXQzJfRVJST1JfTk9ORSAmJiByZWxlYXNlRmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShyZWxlYXNlRmVuY2UpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjp2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+KiBvdXRDb21wb3NpdGlvblR5cGVzLAorICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+KiBvdXRSZXF1ZXN0TWFza3MpCit7CisgICAgdWludDMyX3QgdHlwZXNfY291bnQgPSAwOworICAgIHVpbnQzMl90IHJlcXNfY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnZhbGlkYXRlRGlzcGxheShtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCAmcmVxc19jb3VudCk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUgJiYgZXJyICE9IEhXQzJfRVJST1JfSEFTX0NIQU5HRVMpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0Q2hhbmdlZExheWVycy0+cmVzaXplKHR5cGVzX2NvdW50KTsKKyAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5yZXNpemUodHlwZXNfY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCBvdXRDaGFuZ2VkTGF5ZXJzLT5kYXRhKCksCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PAorICAgICAgICAgICAgc3RkOjp1bmRlcmx5aW5nX3R5cGU8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgaW50MzJfdCBkaXNwbGF5X3JlcXMgPSAwOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5UmVxdWVzdHMobURldmljZSwgZGlzcGxheSwgJmRpc3BsYXlfcmVxcywKKyAgICAgICAgICAgICZyZXFzX2NvdW50LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0UmVxdWVzdGVkTGF5ZXJzLT5yZXNpemUocmVxc19jb3VudCk7CisgICAgb3V0UmVxdWVzdE1hc2tzLT5yZXNpemUocmVxc19jb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlSZXF1ZXN0cyhtRGV2aWNlLCBkaXNwbGF5LCAmZGlzcGxheV9yZXFzLAorICAgICAgICAgICAgJnJlcXNfY291bnQsIG91dFJlcXVlc3RlZExheWVycy0+ZGF0YSgpLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4ob3V0UmVxdWVzdE1hc2tzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworCisgICAgICAgIG91dFJlcXVlc3RlZExheWVycy0+Y2xlYXIoKTsKKyAgICAgICAgb3V0UmVxdWVzdE1hc2tzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgKm91dERpc3BsYXlSZXF1ZXN0TWFzayA9IGRpc3BsYXlfcmVxczsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjphY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guYWNjZXB0RGlzcGxheUNoYW5nZXMobURldmljZSwgZGlzcGxheSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dExheWVycywgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpCit7CisgICAgKm91dFByZXNlbnRGZW5jZSA9IC0xOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnByZXNlbnREaXNwbGF5KG1EZXZpY2UsIGRpc3BsYXksIG91dFByZXNlbnRGZW5jZSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0UmVsZWFzZUZlbmNlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGdldCByZWxlYXNlIGZlbmNlcyIpOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgb3V0TGF5ZXJzLT5yZXNpemUoY291bnQpOworICAgIG91dFJlbGVhc2VGZW5jZXMtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldFJlbGVhc2VGZW5jZXMobURldmljZSwgZGlzcGxheSwgJmNvdW50LAorICAgICAgICAgICAgb3V0TGF5ZXJzLT5kYXRhKCksIG91dFJlbGVhc2VGZW5jZXMtPmRhdGEoKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBnZXQgcmVsZWFzZSBmZW5jZXMiKTsKKyAgICAgICAgb3V0TGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRSZWxlYXNlRmVuY2VzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ3Vyc29yUG9zaXRpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q3Vyc29yUG9zaXRpb24obURldmljZSwgZGlzcGxheSwgbGF5ZXIsIHgsIHkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckJ1ZmZlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckJ1ZmZlcihtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlciwgYWNxdWlyZUZlbmNlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpCit7CisgICAgaHdjX3JlZ2lvbiByZWdpb24gPSB7IGRhbWFnZS5zaXplKCksIGRhbWFnZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCBpbnQzMl90IG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJCbGVuZE1vZGUobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIG1vZGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpCit7CisgICAgaHdjX2NvbG9yX3QgaHdjX2NvbG9ye2NvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIsIGNvbG9yLmF9OworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyQ29sb3IobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIGh3Y19jb2xvcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGludDMyX3QgdHlwZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckNvbXBvc2l0aW9uVHlwZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckRhdGFzcGFjZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIGRhdGFzcGFjZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyRGlzcGxheUZyYW1lKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgZnJhbWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwgZmxvYXQgYWxwaGEpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJQbGFuZUFscGhhKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgYWxwaGEpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBzdHJlYW0pCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHN0cmVhbSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyU291cmNlQ3JvcChEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclNvdXJjZUNyb3AobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIGNyb3ApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IHRyYW5zZm9ybSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclRyYW5zZm9ybShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHRyYW5zZm9ybSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgdmlzaWJsZSkKK3sKKyAgICBod2NfcmVnaW9uX3QgcmVnaW9uID0geyB2aXNpYmxlLnNpemUoKSwgdmlzaWJsZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclZpc2libGVSZWdpb24obURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCB1aW50MzJfdCB6KQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyWk9yZGVyKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLCB6KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0lDb21wb3NlciogSElETF9GRVRDSF9JQ29tcG9zZXIoY29uc3QgY2hhciopCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoSFdDX0hBUkRXQVJFX01PRFVMRV9JRCwgJm1vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGdldCBod2NvbXBvc2VyIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IEh3Y0hhbChtb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMQorfSAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Id2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDUzODlhCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmgKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9IV0NfSAorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjZGVmaW5lIEhXQzJfSU5DTFVERV9TVFJJTkdJRklDQVRJT04KKyNkZWZpbmUgSFdDMl9VU0VfQ1BQMTEKKyNpbmNsdWRlIDxoYXJkd2FyZS9od2NvbXBvc2VyMi5oPgorI3VuZGVmIEhXQzJfSU5DTFVERV9TVFJJTkdJRklDQVRJT04KKyN1bmRlZiBIV0MyX1VTRV9DUFAxMQorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisgICAgY2xhc3MgSFdDMk9uMUFkYXB0ZXI7Cit9CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpIZHI7CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50OworCitjbGFzcyBId2NIYWwgOiBwdWJsaWMgSUNvbXBvc2VyLCBwdWJsaWMgQ29tcG9zZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBId2NIYWwoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgdmlydHVhbCB+SHdjSGFsKCk7CisKKyAgICBib29sIGhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eSBjYXBhYmlsaXR5KSBjb25zdDsKKworICAgIC8vIElDb21wb3NlciBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwYWJpbGl0aWVzKGdldENhcGFiaWxpdGllc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVDbGllbnQoY3JlYXRlQ2xpZW50X2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICAgLy8gQ29tcG9zZXJCYXNlIGludGVyZmFjZQorICAgIHZvaWQgcmVtb3ZlQ2xpZW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmFibGVDYWxsYmFjayhib29sIGVuYWJsZSkgb3ZlcnJpZGU7CisgICAgdWludDMyX3QgZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIEVycm9yIGNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgIFBpeGVsRm9ybWF0KiBmb3JtYXQsIERpc3BsYXkqIG91dERpc3BsYXkpIG92ZXJyaWRlOworICAgIEVycm9yIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIG92ZXJyaWRlOworCisgICAgRXJyb3IgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpIG92ZXJyaWRlOworICAgIEVycm9yIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKworICAgIEVycm9yIGdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyogb3V0Q29uZmlnKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpIG92ZXJyaWRlOworICAgIEVycm9yIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiogb3V0TW9kZXMpIG92ZXJyaWRlOworICAgIEVycm9yIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUgYXR0cmlidXRlLCBpbnQzMl90KiBvdXRWYWx1ZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29uZmlnPiogb3V0Q29uZmlncykgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3N0cmluZyogb3V0TmFtZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LCBib29sKiBvdXRTdXBwb3J0KSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXRIZHJDYXBhYmlsaXRpZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxIZHI+KiBvdXRUeXBlcywKKyAgICAgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgb3ZlcnJpZGU7CisKKyAgICBFcnJvciBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpIG92ZXJyaWRlOworICAgIEVycm9yIHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworCisgICAgRXJyb3Igc2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICAgICAgaW50MzJfdCBoaW50KSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRDbGllbnRUYXJnZXQoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgdGFyZ2V0LAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIGRhbWFnZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0T3V0cHV0QnVmZmVyKERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAgICAgICAgIGludDMyX3QgcmVsZWFzZUZlbmNlKSBvdmVycmlkZTsKKyAgICBFcnJvciB2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRDaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4qIG91dENvbXBvc2l0aW9uVHlwZXMsCisgICAgICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRSZXF1ZXN0ZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4qIG91dFJlcXVlc3RNYXNrcykgb3ZlcnJpZGU7CisgICAgRXJyb3IgYWNjZXB0RGlzcGxheUNoYW5nZXMoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBFcnJvciBwcmVzZW50RGlzcGxheShEaXNwbGF5IGRpc3BsYXksIGludDMyX3QqIG91dFByZXNlbnRGZW5jZSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0TGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpIG92ZXJyaWRlOworCisgICAgRXJyb3Igc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyQnVmZmVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBtb2RlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbG9yIGNvbG9yKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckNvbXBvc2l0aW9uVHlwZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0eXBlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBkYXRhc3BhY2UpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfcmVjdF90JiBmcmFtZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJQbGFuZUFscGhhKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBmbG9hdCBhbHBoYSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IHN0cmVhbSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTb3VyY2VDcm9wKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGludDMyX3QgdHJhbnNmb3JtKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclZpc2libGVSZWdpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiB2aXNpYmxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCB1aW50MzJfdCB6KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRDYXBhYmlsaXRpZXMoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBpbml0RGlzcGF0Y2goaHdjMl9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKTsKKyAgICB2b2lkIGluaXREaXNwYXRjaCgpOworCisgICAgc3A8Q29tcG9zZXJDbGllbnQ+IGdldENsaWVudCgpOworCisgICAgc3RhdGljIHZvaWQgaG90cGx1Z0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQzMl90IGNvbm5lY3RlZCk7CisgICAgc3RhdGljIHZvaWQgcmVmcmVzaEhvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5KTsKKyAgICBzdGF0aWMgdm9pZCB2c3luY0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCk7CisKKyAgICBod2MyX2RldmljZV90KiBtRGV2aWNlOworCisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PENhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBIV0MyX1BGTl9BQ0NFUFRfRElTUExBWV9DSEFOR0VTIGFjY2VwdERpc3BsYXlDaGFuZ2VzOworICAgICAgICBIV0MyX1BGTl9DUkVBVEVfTEFZRVIgY3JlYXRlTGF5ZXI7CisgICAgICAgIEhXQzJfUEZOX0NSRUFURV9WSVJUVUFMX0RJU1BMQVkgY3JlYXRlVmlydHVhbERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX0RFU1RST1lfTEFZRVIgZGVzdHJveUxheWVyOworICAgICAgICBIV0MyX1BGTl9ERVNUUk9ZX1ZJUlRVQUxfRElTUExBWSBkZXN0cm95VmlydHVhbERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX0RVTVAgZHVtcDsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0FDVElWRV9DT05GSUcgZ2V0QWN0aXZlQ29uZmlnOworICAgICAgICBIV0MyX1BGTl9HRVRfQ0hBTkdFRF9DT01QT1NJVElPTl9UWVBFUyBnZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0NMSUVOVF9UQVJHRVRfU1VQUE9SVCBnZXRDbGllbnRUYXJnZXRTdXBwb3J0OworICAgICAgICBIV0MyX1BGTl9HRVRfQ09MT1JfTU9ERVMgZ2V0Q29sb3JNb2RlczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfQVRUUklCVVRFIGdldERpc3BsYXlBdHRyaWJ1dGU7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX0NPTkZJR1MgZ2V0RGlzcGxheUNvbmZpZ3M7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX05BTUUgZ2V0RGlzcGxheU5hbWU7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX1JFUVVFU1RTIGdldERpc3BsYXlSZXF1ZXN0czsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfVFlQRSBnZXREaXNwbGF5VHlwZTsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RPWkVfU1VQUE9SVCBnZXREb3plU3VwcG9ydDsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0hEUl9DQVBBQklMSVRJRVMgZ2V0SGRyQ2FwYWJpbGl0aWVzOworICAgICAgICBIV0MyX1BGTl9HRVRfTUFYX1ZJUlRVQUxfRElTUExBWV9DT1VOVCBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50OworICAgICAgICBIV0MyX1BGTl9HRVRfUkVMRUFTRV9GRU5DRVMgZ2V0UmVsZWFzZUZlbmNlczsKKyAgICAgICAgSFdDMl9QRk5fUFJFU0VOVF9ESVNQTEFZIHByZXNlbnREaXNwbGF5OworICAgICAgICBIV0MyX1BGTl9SRUdJU1RFUl9DQUxMQkFDSyByZWdpc3RlckNhbGxiYWNrOworICAgICAgICBIV0MyX1BGTl9TRVRfQUNUSVZFX0NPTkZJRyBzZXRBY3RpdmVDb25maWc7CisgICAgICAgIEhXQzJfUEZOX1NFVF9DTElFTlRfVEFSR0VUIHNldENsaWVudFRhcmdldDsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0NPTE9SX01PREUgc2V0Q29sb3JNb2RlOworICAgICAgICBIV0MyX1BGTl9TRVRfQ09MT1JfVFJBTlNGT1JNIHNldENvbG9yVHJhbnNmb3JtOworICAgICAgICBIV0MyX1BGTl9TRVRfQ1VSU09SX1BPU0lUSU9OIHNldEN1cnNvclBvc2l0aW9uOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfQkxFTkRfTU9ERSBzZXRMYXllckJsZW5kTW9kZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0JVRkZFUiBzZXRMYXllckJ1ZmZlcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0NPTE9SIHNldExheWVyQ29sb3I7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFIHNldExheWVyQ29tcG9zaXRpb25UeXBlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfREFUQVNQQUNFIHNldExheWVyRGF0YXNwYWNlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfRElTUExBWV9GUkFNRSBzZXRMYXllckRpc3BsYXlGcmFtZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX1BMQU5FX0FMUEhBIHNldExheWVyUGxhbmVBbHBoYTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSBzZXRMYXllclNpZGViYW5kU3RyZWFtOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU09VUkNFX0NST1Agc2V0TGF5ZXJTb3VyY2VDcm9wOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0Ugc2V0TGF5ZXJTdXJmYWNlRGFtYWdlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfVFJBTlNGT1JNIHNldExheWVyVHJhbnNmb3JtOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfVklTSUJMRV9SRUdJT04gc2V0TGF5ZXJWaXNpYmxlUmVnaW9uOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfWl9PUkRFUiBzZXRMYXllclpPcmRlcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX09VVFBVVF9CVUZGRVIgc2V0T3V0cHV0QnVmZmVyOworICAgICAgICBIV0MyX1BGTl9TRVRfUE9XRVJfTU9ERSBzZXRQb3dlck1vZGU7CisgICAgICAgIEhXQzJfUEZOX1NFVF9WU1lOQ19FTkFCTEVEIHNldFZzeW5jRW5hYmxlZDsKKyAgICAgICAgSFdDMl9QRk5fVkFMSURBVEVfRElTUExBWSB2YWxpZGF0ZURpc3BsYXk7CisgICAgfSBtRGlzcGF0Y2g7CisKKyAgICBzdGQ6Om11dGV4IG1DbGllbnRNdXRleDsKKyAgICB3cDxDb21wb3NlckNsaWVudD4gbUNsaWVudDsKKworICAgIC8vIElmIHRoZSBIV0MgaW1wbGVtZW50YXRpb24gdmVyc2lvbiBpcyA8IDIuMCwgdXNlIGFuIGFkYXB0ZXIgdG8gaW50ZXJmYWNlCisgICAgLy8gYmV0d2VlbiBIV0MgMi4wIDwtPiBIV0MgMS5YLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxIV0MyT24xQWRhcHRlcj4gbUFkYXB0ZXI7Cit9OworCitleHRlcm4gIkMiIElDb21wb3NlciogSElETF9GRVRDSF9JQ29tcG9zZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9JQ29tcG9zZXJDb21tYW5kQnVmZmVyLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9JQ29tcG9zZXJDb21tYW5kQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI3OGVmOAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0lDb21wb3NlckNvbW1hbmRCdWZmZXIuaApAQCAtMCwwICsxLDg0OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX0NPTU1BTkRfQlVGRkVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9DT01NQU5EX0JVRkZFUl9ICisKKyNpZm5kZWYgTE9HX1RBRworI3dhcm4gIklDb21wb3NlckNvbW1hbmRCdWZmZXIuaCBpbmNsdWRlZCB3aXRob3V0IExPR19UQUciCisjZW5kaWYKKworI3VuZGVmIExPR19OREVCVUcKKyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpNZXNzYWdlUXVldWU7CisKK3VzaW5nIENvbW1hbmRRdWV1ZVR5cGUgPSBNZXNzYWdlUXVldWU8dWludDMyX3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+OworCisvLyBUaGlzIGNsYXNzIGhlbHBzIGJ1aWxkIGEgY29tbWFuZCBxdWV1ZS4gIE5vdGUgdGhhdCBhbGwgc2l6ZXMvbGVuZ3RocyBhcmUgaW4KKy8vIHVuaXRzIG9mIHVpbnQzMl90J3MuCitjbGFzcyBDb21tYW5kV3JpdGVyQmFzZSB7CitwdWJsaWM6CisgICAgQ29tbWFuZFdyaXRlckJhc2UodWludDMyX3QgaW5pdGlhbE1heFNpemUpCisgICAgICAgIDogbURhdGFNYXhTaXplKGluaXRpYWxNYXhTaXplKQorICAgIHsKKyAgICAgICAgbURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPHVpbnQzMl90W10+KG1EYXRhTWF4U2l6ZSk7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgdmlydHVhbCB+Q29tbWFuZFdyaXRlckJhc2UoKQorICAgIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1EYXRhV3JpdHRlbiA9IDA7CisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKworICAgICAgICAvLyBoYW5kbGVzIGluIG1EYXRhSGFuZGxlcyBhcmUgb3duZWQgYnkgdGhlIGNhbGxlcgorICAgICAgICBtRGF0YUhhbmRsZXMuY2xlYXIoKTsKKworICAgICAgICAvLyBoYW5kbGVzIGluIG1UZW1wb3JhcnlIYW5kbGVzIGFyZSBvd25lZCBieSB0aGUgd3JpdGVyCisgICAgICAgIGZvciAoYXV0byBoYW5kbGUgOiBtVGVtcG9yYXJ5SGFuZGxlcykgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBtVGVtcG9yYXJ5SGFuZGxlcy5jbGVhcigpOworICAgIH0KKworICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBnZXRDb21tYW5kKHVpbnQzMl90IG9mZnNldCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHZhbCA9IChvZmZzZXQgPCBtRGF0YVdyaXR0ZW4pID8gbURhdGFbb2Zmc2V0XSA6IDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ+KHZhbCAmCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6T1BDT0RFX01BU0spKTsKKyAgICB9CisKKyAgICBib29sIHdyaXRlUXVldWUoYm9vbCogb3V0UXVldWVDaGFuZ2VkLCB1aW50MzJfdCogb3V0Q29tbWFuZExlbmd0aCwKKyAgICAgICAgICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiogb3V0Q29tbWFuZEhhbmRsZXMpCisgICAgeworICAgICAgICAvLyB3cml0ZSBkYXRhIHRvIHF1ZXVlLCBvcHRpb25hbGx5IHJlc2l6aW5nIGl0CisgICAgICAgIGlmIChtUXVldWUgJiYgKG1EYXRhTWF4U2l6ZSA8PSBtUXVldWUtPmdldFF1YW50dW1Db3VudCgpKSkgeworICAgICAgICAgICAgaWYgKCFtUXVldWUtPndyaXRlKG1EYXRhLmdldCgpLCBtRGF0YVdyaXR0ZW4pKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byB3cml0ZSBjb21tYW5kcyB0byBtZXNzYWdlIHF1ZXVlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAqb3V0UXVldWVDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIG5ld1F1ZXVlID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUXVldWVUeXBlPihtRGF0YU1heFNpemUpOworICAgICAgICAgICAgaWYgKCFuZXdRdWV1ZS0+aXNWYWxpZCgpIHx8CisgICAgICAgICAgICAgICAgICAgICFuZXdRdWV1ZS0+d3JpdGUobURhdGEuZ2V0KCksIG1EYXRhV3JpdHRlbikpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIHByZXBhcmUgYSBuZXcgbWVzc2FnZSBxdWV1ZSAiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1RdWV1ZSA9IHN0ZDo6bW92ZShuZXdRdWV1ZSk7CisgICAgICAgICAgICAqb3V0UXVldWVDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgICpvdXRDb21tYW5kTGVuZ3RoID0gbURhdGFXcml0dGVuOworICAgICAgICBvdXRDb21tYW5kSGFuZGxlcy0+c2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGhpZGxfaGFuZGxlKj4obURhdGFIYW5kbGVzLmRhdGEoKSksCisgICAgICAgICAgICAgICAgbURhdGFIYW5kbGVzLnNpemUoKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4qIGdldE1RRGVzY3JpcHRvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1RdWV1ZSkgPyBtUXVldWUtPmdldERlc2MoKSA6IG51bGxwdHI7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2VsZWN0RGlzcGxheUxlbmd0aCA9IDI7CisgICAgdm9pZCBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFTEVDVF9ESVNQTEFZLAorICAgICAgICAgICAgICAgIGtTZWxlY3REaXNwbGF5TGVuZ3RoKTsKKyAgICAgICAgd3JpdGU2NChkaXNwbGF5KTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NlbGVjdExheWVyTGVuZ3RoID0gMjsKKyAgICB2b2lkIHNlbGVjdExheWVyKExheWVyIGxheWVyKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VMRUNUX0xBWUVSLAorICAgICAgICAgICAgICAgIGtTZWxlY3RMYXllckxlbmd0aCk7CisgICAgICAgIHdyaXRlNjQobGF5ZXIpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0RXJyb3JMZW5ndGggPSAyOworICAgIHZvaWQgc2V0RXJyb3IodWludDMyX3QgbG9jYXRpb24sIEVycm9yIGVycm9yKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0VSUk9SLCBrU2V0RXJyb3JMZW5ndGgpOworICAgICAgICB3cml0ZShsb2NhdGlvbik7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KGVycm9yKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKGNvbnN0IHN0ZDo6dmVjdG9yPExheWVyPiYgbGF5ZXJzLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4mIHR5cGVzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgdHlwZXMuc2l6ZSgpKTsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRMYXllciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGN1cnJlbnRMYXllciA8IHRvdGFsTGF5ZXJzKSB7CisgICAgICAgICAgICBzaXplX3QgY291bnQgPSBzdGQ6Om1pbih0b3RhbExheWVycyAtIGN1cnJlbnRMYXllciwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihrTWF4TGVuZ3RoKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NIQU5HRURfQ09NUE9TSVRJT05fVFlQRVMsCisgICAgICAgICAgICAgICAgICAgIGNvdW50ICogMyk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZTY0KGxheWVyc1tjdXJyZW50TGF5ZXIgKyBpXSk7CisgICAgICAgICAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZXNbY3VycmVudExheWVyICsgaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICAgICAgY3VycmVudExheWVyICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBzZXREaXNwbGF5UmVxdWVzdHModWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4mIGxheWVyUmVxdWVzdE1hc2tzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwKKyAgICAgICAgICAgICAgICBsYXllclJlcXVlc3RNYXNrcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGggLSAxKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfRElTUExBWV9SRVFVRVNUUywKKyAgICAgICAgICAgICAgICAgICAgMSArIGNvdW50ICogMyk7CisgICAgICAgICAgICB3cml0ZShkaXNwbGF5UmVxdWVzdE1hc2spOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGU2NChsYXllcnNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGludDMyX3Q+KGxheWVyUmVxdWVzdE1hc2tzW2N1cnJlbnRMYXllciArIGldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbmRDb21tYW5kKCk7CisKKyAgICAgICAgICAgIGN1cnJlbnRMYXllciArPSBjb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldFByZXNlbnRGZW5jZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRQcmVzZW50RmVuY2UoaW50IHByZXNlbnRGZW5jZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFLAorICAgICAgICAgICAgICAgIGtTZXRQcmVzZW50RmVuY2VMZW5ndGgpOworICAgICAgICB3cml0ZUZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJlbGVhc2VGZW5jZXMoY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiByZWxlYXNlRmVuY2VzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgcmVsZWFzZUZlbmNlcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGgpIC8gMyk7CisKKyAgICAgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9SRUxFQVNFX0ZFTkNFUywKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKiAzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlNjQobGF5ZXJzW2N1cnJlbnRMYXllciArIGldKTsKKyAgICAgICAgICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZXNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kQ29tbWFuZCgpOworCisgICAgICAgICAgICBjdXJyZW50TGF5ZXIgKz0gY291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCA9IDE3OworICAgIHZvaWQgc2V0Q29sb3JUcmFuc2Zvcm0oY29uc3QgZmxvYXQqIG1hdHJpeCwgQ29sb3JUcmFuc2Zvcm0gaGludCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldENvbG9yVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisgICAgICAgICAgICB3cml0ZUZsb2F0KG1hdHJpeFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGludCkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRDbGllbnRUYXJnZXQodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiB0YXJnZXQsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlLCBEYXRhc3BhY2UgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PiYgZGFtYWdlKQorICAgIHsKKyAgICAgICAgYm9vbCBkb1dyaXRlID0gKGRhbWFnZS5zaXplKCkgPD0gKGtNYXhMZW5ndGggLSA0KSAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gNCArICgoZG9Xcml0ZSkgPyBkYW1hZ2Uuc2l6ZSgpICogNCA6IDApOworCisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VULCBsZW5ndGgpOworICAgICAgICB3cml0ZShzbG90KTsKKyAgICAgICAgd3JpdGVIYW5kbGUodGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgd3JpdGVGZW5jZShhY3F1aXJlRmVuY2UpOworICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PihkYXRhc3BhY2UpKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGNsaWVudCB0YXJnZXQgaXMgZGFtYWdlZC4KKyAgICAgICAgaWYgKGRvV3JpdGUpIHsKKyAgICAgICAgICAgIHdyaXRlUmVnaW9uKGRhbWFnZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldE91dHB1dEJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRPdXRwdXRCdWZmZXIodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXIsCisgICAgICAgICAgICBpbnQgcmVsZWFzZUZlbmNlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIsCisgICAgICAgICAgICAgICAga1NldE91dHB1dEJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtWYWxpZGF0ZURpc3BsYXlMZW5ndGggPSAwOworICAgIHZvaWQgdmFsaWRhdGVEaXNwbGF5KCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlZBTElEQVRFX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ZhbGlkYXRlRGlzcGxheUxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtBY2NlcHREaXNwbGF5Q2hhbmdlc0xlbmd0aCA9IDA7CisgICAgdm9pZCBhY2NlcHREaXNwbGF5Q2hhbmdlcygpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpBQ0NFUFRfRElTUExBWV9DSEFOR0VTLAorICAgICAgICAgICAgICAgIGtBY2NlcHREaXNwbGF5Q2hhbmdlc0xlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtQcmVzZW50RGlzcGxheUxlbmd0aCA9IDA7CisgICAgdm9pZCBwcmVzZW50RGlzcGxheSgpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpQUkVTRU5UX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ByZXNlbnREaXNwbGF5TGVuZ3RoKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGggPSAyOworICAgIHZvaWQgc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihpbnQzMl90IHgsIGludDMyX3QgeSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04sCisgICAgICAgICAgICAgICAga1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpOworICAgICAgICB3cml0ZVNpZ25lZCh4KTsKKyAgICAgICAgd3JpdGVTaWduZWQoeSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBzbG90LCBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlciwKKyAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQlVGRkVSLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKGFjcXVpcmVGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldExheWVyU3VyZmFjZURhbWFnZSgKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIGRhbWFnZSkKKyAgICB7CisgICAgICAgIGJvb2wgZG9Xcml0ZSA9IChkYW1hZ2Uuc2l6ZSgpIDw9IGtNYXhMZW5ndGggLyA0KTsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IChkb1dyaXRlKSA/IGRhbWFnZS5zaXplKCkgKiA0IDogMDsKKworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UsCisgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGxheWVyIGlzIGRhbWFnZWQuCisgICAgICAgIGlmIChkb1dyaXRlKSB7CisgICAgICAgICAgICB3cml0ZVJlZ2lvbihkYW1hZ2UpOworICAgICAgICB9CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckJsZW5kTW9kZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZSBtb2RlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JMRU5EX01PREUsCisgICAgICAgICAgICAgICAga1NldExheWVyQmxlbmRNb2RlTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4obW9kZSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJDb2xvckxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckNvbG9yKElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1IsCisgICAgICAgICAgICAgICAga1NldExheWVyQ29sb3JMZW5ndGgpOworICAgICAgICB3cml0ZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24gdHlwZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckNvbXBvc2l0aW9uVHlwZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KHR5cGUpKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyRGF0YXNwYWNlTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyRGF0YXNwYWNlKERhdGFzcGFjZSBkYXRhc3BhY2UpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckRhdGFzcGFjZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KGRhdGFzcGFjZSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJEaXNwbGF5RnJhbWVMZW5ndGggPSA0OworICAgIHZvaWQgc2V0TGF5ZXJEaXNwbGF5RnJhbWUoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpSZWN0JiBmcmFtZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCk7CisgICAgICAgIHdyaXRlUmVjdChmcmFtZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllclBsYW5lQWxwaGFMZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJQbGFuZUFscGhhKGZsb2F0IGFscGhhKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclBsYW5lQWxwaGFMZW5ndGgpOworICAgICAgICB3cml0ZUZsb2F0KGFscGhhKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyU2lkZWJhbmRTdHJlYW1MZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHN0cmVhbSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0sCisgICAgICAgICAgICAgICAga1NldExheWVyU2lkZWJhbmRTdHJlYW1MZW5ndGgpOworICAgICAgICB3cml0ZUhhbmRsZShzdHJlYW0pOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJTb3VyY2VDcm9wTGVuZ3RoID0gNDsKKyAgICB2b2lkIHNldExheWVyU291cmNlQ3JvcChjb25zdCBJQ29tcG9zZXJDbGllbnQ6OkZSZWN0JiBjcm9wKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NPVVJDRV9DUk9QLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpOworICAgICAgICB3cml0ZUZSZWN0KGNyb3ApOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJUcmFuc2Zvcm1MZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtIHRyYW5zZm9ybSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldExheWVyVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHJhbnNmb3JtKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldExheWVyVmlzaWJsZVJlZ2lvbigKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIHZpc2libGUpCisgICAgeworICAgICAgICBib29sIGRvV3JpdGUgPSAodmlzaWJsZS5zaXplKCkgPD0ga01heExlbmd0aCAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gKGRvV3JpdGUpID8gdmlzaWJsZS5zaXplKCkgKiA0IDogMDsKKworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04sCisgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgdmlzaWJsZSByZWdpb24gYW5kCisgICAgICAgIC8vIGRvV3JpdGUgaXMgZmFsc2UsIHdlIHdyaXRlIG5vIHJlY3RhbmdsZSBhdCBhbGwgd2hpY2ggbWVhbnMgdGhlCisgICAgICAgIC8vIGVudGlyZSBsYXllciBpcyB2aXNpYmxlLgorICAgICAgICBpZiAoZG9Xcml0ZSkgeworICAgICAgICAgICAgd3JpdGVSZWdpb24odmlzaWJsZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyWk9yZGVyTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyWk9yZGVyKHVpbnQzMl90IHopCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfWl9PUkRFUiwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJaT3JkZXJMZW5ndGgpOworICAgICAgICB3cml0ZSh6KTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIHZvaWQgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBjb21tYW5kLCB1aW50MTZfdCBsZW5ndGgpCisgICAgeworICAgICAgICBpZiAobUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiZW5kQ29tbWFuZCB3YXMgbm90IGNhbGxlZCBiZWZvcmUgY29tbWFuZCAweCV4IiwKKyAgICAgICAgICAgICAgICAgICAgY29tbWFuZCk7CisgICAgICAgIH0KKworICAgICAgICBncm93RGF0YSgxICsgbGVuZ3RoKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvbW1hbmQpIHwgbGVuZ3RoKTsKKworICAgICAgICBtQ29tbWFuZEVuZCA9IG1EYXRhV3JpdHRlbiArIGxlbmd0aDsKKyAgICB9CisKKyAgICB2b2lkIGVuZENvbW1hbmQoKQorICAgIHsKKyAgICAgICAgaWYgKCFtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJiZWdpbkNvbW1hbmQgd2FzIG5vdCBjYWxsZWQiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtRGF0YVdyaXR0ZW4gPiBtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJ0b28gbXVjaCBkYXRhIHdyaXR0ZW4iKTsKKyAgICAgICAgICAgIG1EYXRhV3JpdHRlbiA9IG1Db21tYW5kRW5kOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhV3JpdHRlbiA8IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBsaXR0bGUgZGF0YSB3cml0dGVuIik7CisgICAgICAgICAgICB3aGlsZSAobURhdGFXcml0dGVuIDwgbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlKHVpbnQzMl90IHZhbCkKKyAgICB7CisgICAgICAgIG1EYXRhW21EYXRhV3JpdHRlbisrXSA9IHZhbDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlU2lnbmVkKGludDMyX3QgdmFsKQorICAgIHsKKyAgICAgICAgbWVtY3B5KCZtRGF0YVttRGF0YVdyaXR0ZW4rK10sICZ2YWwsIHNpemVvZih2YWwpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlRmxvYXQoZmxvYXQgdmFsKQorICAgIHsKKyAgICAgICAgbWVtY3B5KCZtRGF0YVttRGF0YVdyaXR0ZW4rK10sICZ2YWwsIHNpemVvZih2YWwpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlNjQodWludDY0X3QgdmFsKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgbG8gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsICYgMHhmZmZmZmZmZik7CisgICAgICAgIHVpbnQzMl90IGhpID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbCA+PiAzMik7CisgICAgICAgIHdyaXRlKGxvKTsKKyAgICAgICAgd3JpdGUoaGkpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVSZWN0KGNvbnN0IElDb21wb3NlckNsaWVudDo6UmVjdCYgcmVjdCkKKyAgICB7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QubGVmdCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QudG9wKTsKKyAgICAgICAgd3JpdGVTaWduZWQocmVjdC5yaWdodCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QuYm90dG9tKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlUmVnaW9uKGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIHJlZ2lvbikKKyAgICB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJlZ2lvbikgeworICAgICAgICAgICAgd3JpdGVSZWN0KHJlY3QpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3cml0ZUZSZWN0KGNvbnN0IElDb21wb3NlckNsaWVudDo6RlJlY3QmIHJlY3QpCisgICAgeworICAgICAgICB3cml0ZUZsb2F0KHJlY3QubGVmdCk7CisgICAgICAgIHdyaXRlRmxvYXQocmVjdC50b3ApOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QucmlnaHQpOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QuYm90dG9tKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQ29sb3IoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpDb2xvciYgY29sb3IpCisgICAgeworICAgICAgICB3cml0ZSgoY29sb3IuciA8PCAgMCkgfAorICAgICAgICAgICAgICAoY29sb3IuZyA8PCAgOCkgfAorICAgICAgICAgICAgICAoY29sb3IuYiA8PCAxNikgfAorICAgICAgICAgICAgICAoY29sb3IuYSA8PCAyNCkpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBoYW5kbGUgaXMgbm90IHRyYW5zZmVycmVkCisgICAgdm9pZCB3cml0ZUhhbmRsZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgYm9vbCB1c2VDYWNoZSkKKyAgICB7CisgICAgICAgIGlmICghaGFuZGxlKSB7CisgICAgICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PigodXNlQ2FjaGUpID8KKyAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6SGFuZGxlSW5kZXg6OkNBQ0hFRCA6CisgICAgICAgICAgICAgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpFTVBUWSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbURhdGFIYW5kbGVzLnB1c2hfYmFjayhoYW5kbGUpOworICAgICAgICB3cml0ZVNpZ25lZChtRGF0YUhhbmRsZXMuc2l6ZSgpIC0gMSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUhhbmRsZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSkKKyAgICB7CisgICAgICAgIHdyaXRlSGFuZGxlKGhhbmRsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBmZW5jZSBpcyB0cmFuc2ZlcnJlZAorICAgIHZvaWQgd3JpdGVGZW5jZShpbnQgZmVuY2UpCisgICAgeworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgICAgICBoYW5kbGUgPSBnZXRUZW1wb3JhcnlIYW5kbGUoMSwgMCk7CisgICAgICAgICAgICBpZiAoaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gZmVuY2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gZ2V0IHRlbXBvcmFyeSBoYW5kbGUgZm9yIGZlbmNlICVkIiwgZmVuY2UpOworICAgICAgICAgICAgICAgIHN5bmNfd2FpdChmZW5jZSwgLTEpOworICAgICAgICAgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdyaXRlSGFuZGxlKGhhbmRsZSk7CisgICAgfQorCisgICAgbmF0aXZlX2hhbmRsZV90KiBnZXRUZW1wb3JhcnlIYW5kbGUoaW50IG51bUZkcywgaW50IG51bUludHMpCisgICAgeworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKG51bUZkcywgbnVtSW50cyk7CisgICAgICAgIGlmIChoYW5kbGUpIHsKKyAgICAgICAgICAgIG1UZW1wb3JhcnlIYW5kbGVzLnB1c2hfYmFjayhoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGU7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrTWF4TGVuZ3RoID0KKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MTZfdD46Om1heCgpOworCitwcml2YXRlOgorICAgIHZvaWQgZ3Jvd0RhdGEodWludDMyX3QgZ3JvdykKKyAgICB7CisgICAgICAgIHVpbnQzMl90IG5ld1dyaXR0ZW4gPSBtRGF0YVdyaXR0ZW4gKyBncm93OworICAgICAgICBpZiAobmV3V3JpdHRlbiA8IG1EYXRhV3JpdHRlbikgeworICAgICAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiYnVmZmVyIG92ZXJmbG93ZWQ7IGRhdGEgd3JpdHRlbiAlIiBQUkl1MzIKKyAgICAgICAgICAgICAgICAgICAgIiwgZ3Jvd2luZyBieSAlIiBQUkl1MzIsIG1EYXRhV3JpdHRlbiwgZ3Jvdyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobmV3V3JpdHRlbiA8PSBtRGF0YU1heFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IG5ld01heFNpemUgPSBtRGF0YU1heFNpemUgPDwgMTsKKyAgICAgICAgaWYgKG5ld01heFNpemUgPCBuZXdXcml0dGVuKSB7CisgICAgICAgICAgICBuZXdNYXhTaXplID0gbmV3V3JpdHRlbjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gbmV3RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8dWludDMyX3RbXT4obmV3TWF4U2l6ZSk7CisgICAgICAgIHN0ZDo6Y29weV9uKG1EYXRhLmdldCgpLCBtRGF0YVdyaXR0ZW4sIG5ld0RhdGEuZ2V0KCkpOworICAgICAgICBtRGF0YU1heFNpemUgPSBuZXdNYXhTaXplOworICAgICAgICBtRGF0YSA9IHN0ZDo6bW92ZShuZXdEYXRhKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBtRGF0YU1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQzMl90W10+IG1EYXRhOworCisgICAgdWludDMyX3QgbURhdGFXcml0dGVuOworICAgIC8vIGVuZCBvZmZzZXQgb2YgdGhlIGN1cnJlbnQgY29tbWFuZAorICAgIHVpbnQzMl90IG1Db21tYW5kRW5kOworCisgICAgc3RkOjp2ZWN0b3I8aGlkbF9oYW5kbGU+IG1EYXRhSGFuZGxlczsKKyAgICBzdGQ6OnZlY3RvcjxuYXRpdmVfaGFuZGxlX3QgKj4gbVRlbXBvcmFyeUhhbmRsZXM7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFF1ZXVlVHlwZT4gbVF1ZXVlOworfTsKKworLy8gVGhpcyBjbGFzcyBoZWxwcyBwYXJzZSBhIGNvbW1hbmQgcXVldWUuICBOb3RlIHRoYXQgYWxsIHNpemVzL2xlbmd0aHMgYXJlIGluCisvLyB1bml0cyBvZiB1aW50MzJfdCdzLgorY2xhc3MgQ29tbWFuZFJlYWRlckJhc2UgeworcHVibGljOgorICAgIENvbW1hbmRSZWFkZXJCYXNlKCkgOiBtRGF0YU1heFNpemUoMCkKKyAgICB7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgYm9vbCBzZXRNUURlc2NyaXB0b3IoY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4mIGRlc2NyaXB0b3IpCisgICAgeworICAgICAgICBtUXVldWUgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRRdWV1ZVR5cGU+KGRlc2NyaXB0b3IsIGZhbHNlKTsKKyAgICAgICAgaWYgKG1RdWV1ZS0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1RdWV1ZSA9IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIHJlYWRRdWV1ZSh1aW50MzJfdCBjb21tYW5kTGVuZ3RoLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9oYW5kbGU+JiBjb21tYW5kSGFuZGxlcykKKyAgICB7CisgICAgICAgIGlmICghbVF1ZXVlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHF1YW50dW1Db3VudCA9IG1RdWV1ZS0+Z2V0UXVhbnR1bUNvdW50KCk7CisgICAgICAgIGlmIChtRGF0YU1heFNpemUgPCBxdWFudHVtQ291bnQpIHsKKyAgICAgICAgICAgIG1EYXRhTWF4U2l6ZSA9IHF1YW50dW1Db3VudDsKKyAgICAgICAgICAgIG1EYXRhID0gc3RkOjptYWtlX3VuaXF1ZTx1aW50MzJfdFtdPihtRGF0YU1heFNpemUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbW1hbmRMZW5ndGggPiBtRGF0YU1heFNpemUgfHwKKyAgICAgICAgICAgICAgICAhbVF1ZXVlLT5yZWFkKG1EYXRhLmdldCgpLCBjb21tYW5kTGVuZ3RoKSkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byByZWFkIGNvbW1hbmRzIGZyb20gbWVzc2FnZSBxdWV1ZSIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbURhdGFTaXplID0gY29tbWFuZExlbmd0aDsKKyAgICAgICAgbURhdGFSZWFkID0gMDsKKyAgICAgICAgbUNvbW1hbmRCZWdpbiA9IDA7CisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKyAgICAgICAgbURhdGFIYW5kbGVzLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxoaWRsX2hhbmRsZSo+KGNvbW1hbmRIYW5kbGVzLmRhdGEoKSksCisgICAgICAgICAgICAgICAgY29tbWFuZEhhbmRsZXMuc2l6ZSgpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1EYXRhU2l6ZSA9IDA7CisgICAgICAgIG1EYXRhUmVhZCA9IDA7CisgICAgICAgIG1Db21tYW5kQmVnaW4gPSAwOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgICAgIG1EYXRhSGFuZGxlcy5zZXRUb0V4dGVybmFsKG51bGxwdHIsIDApOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1EYXRhUmVhZCA+PSBtRGF0YVNpemUpOworICAgIH0KKworICAgIGJvb2wgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZCogb3V0Q29tbWFuZCwKKyAgICAgICAgICAgIHVpbnQxNl90KiBvdXRMZW5ndGgpCisgICAgeworICAgICAgICBpZiAobUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiZW5kQ29tbWFuZCB3YXMgbm90IGNhbGxlZCBmb3IgbGFzdCBjb21tYW5kIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdGV4cHIgdWludDMyX3Qgb3Bjb2RlX21hc2sgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6T1BDT0RFX01BU0spOworICAgICAgICBjb25zdGV4cHIgdWludDMyX3QgbGVuZ3RoX21hc2sgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6TEVOR1RIX01BU0spOworCisgICAgICAgIHVpbnQzMl90IHZhbCA9IHJlYWQoKTsKKyAgICAgICAgKm91dENvbW1hbmQgPSBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ+KAorICAgICAgICAgICAgICAgIHZhbCAmIG9wY29kZV9tYXNrKTsKKyAgICAgICAgKm91dExlbmd0aCA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pih2YWwgJiBsZW5ndGhfbWFzayk7CisKKyAgICAgICAgaWYgKG1EYXRhUmVhZCArICpvdXRMZW5ndGggPiBtRGF0YVNpemUpIHsKKyAgICAgICAgICAgIEFMT0dFKCJjb21tYW5kIDB4JXggaGFzIGludmFsaWQgY29tbWFuZCBsZW5ndGggJSIgUFJJdTE2LAorICAgICAgICAgICAgICAgICAgICAqb3V0Q29tbWFuZCwgKm91dExlbmd0aCk7CisgICAgICAgICAgICAvLyB1bmRvIHRoZSByZWFkKCkgYWJvdmUKKyAgICAgICAgICAgIG1EYXRhUmVhZC0tOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbUNvbW1hbmRFbmQgPSBtRGF0YVJlYWQgKyAqb3V0TGVuZ3RoOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgZW5kQ29tbWFuZCgpCisgICAgeworICAgICAgICBpZiAoIW1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoImJlZ2luQ29tbWFuZCB3YXMgbm90IGNhbGxlZCIpOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhUmVhZCA+IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBtdWNoIGRhdGEgcmVhZCIpOworICAgICAgICAgICAgbURhdGFSZWFkID0gbUNvbW1hbmRFbmQ7CisgICAgICAgIH0gZWxzZSBpZiAobURhdGFSZWFkIDwgbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgidG9vIGxpdHRsZSBkYXRhIHJlYWQiKTsKKyAgICAgICAgICAgIG1EYXRhUmVhZCA9IG1Db21tYW5kRW5kOworICAgICAgICB9CisKKyAgICAgICAgbUNvbW1hbmRCZWdpbiA9IG1Db21tYW5kRW5kOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgfQorCisgICAgdWludDMyX3QgZ2V0Q29tbWFuZExvYygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbUNvbW1hbmRCZWdpbjsKKyAgICB9CisKKyAgICB1aW50MzJfdCByZWFkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtRGF0YVttRGF0YVJlYWQrK107CisgICAgfQorCisgICAgaW50MzJfdCByZWFkU2lnbmVkKCkKKyAgICB7CisgICAgICAgIGludDMyX3QgdmFsOworICAgICAgICBtZW1jcHkoJnZhbCwgJm1EYXRhW21EYXRhUmVhZCsrXSwgc2l6ZW9mKHZhbCkpOworICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKworICAgIGZsb2F0IHJlYWRGbG9hdCgpCisgICAgeworICAgICAgICBmbG9hdCB2YWw7CisgICAgICAgIG1lbWNweSgmdmFsLCAmbURhdGFbbURhdGFSZWFkKytdLCBzaXplb2YodmFsKSk7CisgICAgICAgIHJldHVybiB2YWw7CisgICAgfQorCisgICAgdWludDY0X3QgcmVhZDY0KCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGxvID0gcmVhZCgpOworICAgICAgICB1aW50MzJfdCBoaSA9IHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGkpIDw8IDMyKSB8IGxvOworICAgIH0KKworICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgcmVhZENvbG9yKCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHZhbCA9IHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIElDb21wb3NlckNsaWVudDo6Q29sb3J7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+ICAwKSAmIDB4ZmYpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oKHZhbCA+PiAgOCkgJiAweGZmKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCh2YWwgPj4gMTYpICYgMHhmZiksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+IDI0KSAmIDB4ZmYpLAorICAgICAgICB9OworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBoYW5kbGUgaXMgbm90IHRyYW5zZmVycmVkCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiByZWFkSGFuZGxlKGJvb2wqIG91dFVzZUNhY2hlKQorICAgIHsKKyAgICAgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworCisgICAgICAgIGludDMyX3QgaW5kZXggPSByZWFkU2lnbmVkKCk7CisgICAgICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQzMl90PihJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpFTVBUWSk6CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PGludDMyX3Q+KElDb21wb3NlckNsaWVudDo6SGFuZGxlSW5kZXg6OkNBQ0hFRCk6CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtRGF0YUhhbmRsZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlID0gbURhdGFIYW5kbGVzW2luZGV4XS5nZXROYXRpdmVIYW5kbGUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImludmFsaWQgaGFuZGxlIGluZGV4ICV6dSIsIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICpvdXRVc2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFuZGxlOworICAgIH0KKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogcmVhZEhhbmRsZSgpCisgICAgeworICAgICAgICBib29sIHVzZUNhY2hlOworICAgICAgICByZXR1cm4gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBmZW5jZSBpcyB0cmFuc2ZlcnJlZAorICAgIGludCByZWFkRmVuY2UoKQorICAgIHsKKyAgICAgICAgYXV0byBoYW5kbGUgPSByZWFkSGFuZGxlKCk7CisgICAgICAgIGlmICghaGFuZGxlIHx8IGhhbmRsZS0+bnVtRmRzID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxKSB7CisgICAgICAgICAgICBBTE9HRSgiaW52YWxpZCBmZW5jZSBoYW5kbGUgd2l0aCAlZCBmZHMiLCBoYW5kbGUtPm51bUZkcyk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZmQgPSBkdXAoaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgaWYgKGZkIDwgMCkgeworICAgICAgICAgICAgQUxPR1coImZhaWxlZCB0byBkdXAgZmVuY2UgJWQiLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgc3luY193YWl0KGhhbmRsZS0+ZGF0YVswXSwgLTEpOworICAgICAgICAgICAgZmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmZDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRRdWV1ZVR5cGU+IG1RdWV1ZTsKKyAgICB1aW50MzJfdCBtRGF0YU1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQzMl90W10+IG1EYXRhOworCisgICAgdWludDMyX3QgbURhdGFTaXplOworICAgIHVpbnQzMl90IG1EYXRhUmVhZDsKKworICAgIC8vIGJlZ2luL2VuZCBvZmZzZXRzIG9mIHRoZSBjdXJyZW50IGNvbW1hbmQKKyAgICB1aW50MzJfdCBtQ29tbWFuZEJlZ2luOworICAgIHVpbnQzMl90IG1Db21tYW5kRW5kOworCisgICAgaGlkbF92ZWM8aGlkbF9oYW5kbGU+IG1EYXRhSGFuZGxlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFYyXzEKK30gLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9IC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfQ09NTUFORF9CVUZGRVJfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZS5yYyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFiMGUzYgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMKQEAgLTAsMCArMSw2IEBACitzZXJ2aWNlIGh3Y29tcG9zZXItMi0xIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwgYW5pbWF0aW9uCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBncmFwaGljcyBkcm1ycGMKKyAgICBjYXBhYmlsaXRpZXMgU1lTX05JQ0UKKyAgICBvbnJlc3RhcnQgcmVzdGFydCBzdXJmYWNlZmxpbmdlcgpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmEzM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlIgorCisjaW5jbHVkZSA8c2NoZWQuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbXBvc2VyOjpWMl8xOjpJQ29tcG9zZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvLyB0aGUgY29udmVudGlvbmFsIEhBTCBtaWdodCBzdGFydCBiaW5kZXIgc2VydmljZXMKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OmluaXRXaXRoRHJpdmVyKCIvZGV2L3ZuZGJpbmRlciIpOworICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6c2VsZigpLT5zZXRUaHJlYWRQb29sTWF4VGhyZWFkQ291bnQoNCk7CisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjpzZWxmKCktPnN0YXJ0VGhyZWFkUG9vbCgpOworCisgICAgLy8gc2FtZSBhcyBTRiBtYWluIHRocmVhZAorICAgIHN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHswfTsKKyAgICBwYXJhbS5zY2hlZF9wcmlvcml0eSA9IDI7CisgICAgaWYgKHNjaGVkX3NldHNjaGVkdWxlcigwLCBTQ0hFRF9GSUZPIHwgU0NIRURfUkVTRVRfT05fRk9SSywKKyAgICAgICAgICAgICAgICAmcGFyYW0pICE9IDApIHsKKyAgICAgICAgQUxPR0UoIkNvdWxkbid0IHNldCBTQ0hFRF9GSUZPOiAlZCIsIGVycm5vKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDb21wb3Nlcj4oNCk7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjBkZDhiCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTsKKworLyoqIFJldHVybiBjb2RlcyBmcm9tIGFsbCBmdW5jdGlvbnMuICovCitlbnVtIEVycm9yIDogaW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgICAgID0gMCwgLyoqIG5vIGVycm9yICovCisgICAgQkFEX0NPTkZJRyAgICAgID0gMSwgLyoqIGludmFsaWQgQ29uZmlnICovCisgICAgQkFEX0RJU1BMQVkgICAgID0gMiwgLyoqIGludmFsaWQgRGlzcGxheSAqLworICAgIEJBRF9MQVlFUiAgICAgICA9IDMsIC8qKiBpbnZhbGlkIExheWVyICovCisgICAgQkFEX1BBUkFNRVRFUiAgID0gNCwgLyoqIGludmFsaWQgd2lkdGgsIGhlaWdodCwgZXRjLiAqLworICAgIC8qKiA1IGlzIHJlc2VydmVkICovCisgICAgTk9fUkVTT1VSQ0VTICAgID0gNiwgLyoqIHRlbXBvcmFyeSBmYWlsdXJlIGR1ZSB0byByZXNvdXJjZSBjb250ZW50aW9uICovCisgICAgTk9UX1ZBTElEQVRFRCAgID0gNywgLyoqIHZhbGlkYXRlRGlzcGxheSBoYXMgbm90IGJlZW4gY2FsbGVkICovCisgICAgVU5TVVBQT1JURUQgICAgID0gOCwgLyoqIHBlcm1hbmVudCBmYWlsdXJlICovCit9OworCit0eXBlZGVmIHVpbnQzMl90IENvbmZpZzsKK3R5cGVkZWYgdWludDY0X3QgRGlzcGxheTsKK3R5cGVkZWYgdWludDY0X3QgTGF5ZXI7CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MzIzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDY2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICBdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKK30KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJWMl8xVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAibGliaHdjb21wb3Nlci1jb21tYW5kLWJ1ZmZlciIsCisgICAgICAgICJsaWJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzIiwKKyAgICAgICAgImxpYlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzIiwKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2NmODRjCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuY3BwCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSAiVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworCitDb21wb3Nlcjo6Q29tcG9zZXIoKSB7IGluaXQoKTsgfQorCit2b2lkIENvbXBvc2VyOjppbml0KCkgeworICBtQ29tcG9zZXIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ29tcG9zZXI+KCk7CisgIEFTU0VSVF9ORShudWxscHRyLCBtQ29tcG9zZXIuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IGNvbXBvc2VyIHNlcnZpY2UiOworCisgIHN0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gY2FwYWJpbGl0aWVzID0gZ2V0Q2FwYWJpbGl0aWVzKCk7CisgIG1DYXBhYmlsaXRpZXMuaW5zZXJ0KGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCkpOworfQorCitzcDxJQ29tcG9zZXI+IENvbXBvc2VyOjpnZXRSYXcoKSBjb25zdCB7IHJldHVybiBtQ29tcG9zZXI7IH0KKworYm9vbCBDb21wb3Nlcjo6aGFzQ2FwYWJpbGl0eShJQ29tcG9zZXI6OkNhcGFiaWxpdHkgY2FwYWJpbGl0eSkgY29uc3QgeworICByZXR1cm4gbUNhcGFiaWxpdGllcy5jb3VudChjYXBhYmlsaXR5KSA+IDA7Cit9CisKK3N0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcygpIHsKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXM7CisgIG1Db21wb3Nlci0+Z2V0Q2FwYWJpbGl0aWVzKAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcENhcGFiaWxpdGllcykgeyBjYXBhYmlsaXRpZXMgPSB0bXBDYXBhYmlsaXRpZXM7IH0pOworCisgIHJldHVybiBjYXBhYmlsaXRpZXM7Cit9CisKK3N0ZDo6c3RyaW5nIENvbXBvc2VyOjpkdW1wRGVidWdJbmZvKCkgeworICBzdGQ6OnN0cmluZyBkZWJ1Z0luZm87CisgIG1Db21wb3Nlci0+ZHVtcERlYnVnSW5mbygKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBEZWJ1Z0luZm8pIHsgZGVidWdJbmZvID0gdG1wRGVidWdJbmZvLmNfc3RyKCk7IH0pOworCisgIHJldHVybiBkZWJ1Z0luZm87Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDb21wb3NlckNsaWVudD4gQ29tcG9zZXI6OmNyZWF0ZUNsaWVudCgpIHsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBjbGllbnQ7CisgIG1Db21wb3Nlci0+Y3JlYXRlQ2xpZW50KFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ2xpZW50KSB7CisgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBjcmVhdGUgY2xpZW50IjsKKyAgICBjbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2VyQ2xpZW50Pih0bXBDbGllbnQpOworICB9KTsKKworICByZXR1cm4gY2xpZW50OworfQorCitDb21wb3NlckNsaWVudDo6Q29tcG9zZXJDbGllbnQoY29uc3Qgc3A8SUNvbXBvc2VyQ2xpZW50PiYgY2xpZW50KQorICAgIDogbUNsaWVudChjbGllbnQpIHt9CisKK0NvbXBvc2VyQ2xpZW50Ojp+Q29tcG9zZXJDbGllbnQoKSB7CisgIGZvciAoYXV0byBpdCA6IG1EaXNwbGF5UmVzb3VyY2VzKSB7CisgICAgRGlzcGxheSBkaXNwbGF5ID0gaXQuZmlyc3Q7CisgICAgRGlzcGxheVJlc291cmNlJiByZXNvdXJjZSA9IGl0LnNlY29uZDsKKworICAgIGZvciAoYXV0byBsYXllciA6IHJlc291cmNlLmxheWVycykgeworICAgICAgRVhQRUNUX0VRKEVycm9yOjpOT05FLCBtQ2xpZW50LT5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpKQorICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZGVzdHJveSBsYXllciAiIDw8IGxheWVyOworICAgIH0KKworICAgIGlmIChyZXNvdXJjZS5pc1ZpcnR1YWwpIHsKKyAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbUNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpKQorICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZGVzdHJveSB2aXJ0dWFsIGRpc3BsYXkgIiA8PCBkaXNwbGF5OworICAgIH0KKyAgfQorICBtRGlzcGxheVJlc291cmNlcy5jbGVhcigpOworfQorCitzcDxJQ29tcG9zZXJDbGllbnQ+IENvbXBvc2VyQ2xpZW50OjpnZXRSYXcoKSBjb25zdCB7IHJldHVybiBtQ2xpZW50OyB9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnJlZ2lzdGVyQ2FsbGJhY2soY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICBtQ2xpZW50LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwordWludDMyX3QgQ29tcG9zZXJDbGllbnQ6OmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKSB7CisgIHJldHVybiBtQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCk7Cit9CisKK0Rpc3BsYXkgQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXRIaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQqIG91dEZvcm1hdCkgeworICBEaXNwbGF5IGRpc3BsYXkgPSAwOworICBtQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgIHdpZHRoLCBoZWlnaHQsIGZvcm1hdEhpbnQsIG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGlzcGxheSwgY29uc3QgYXV0byYgdG1wRm9ybWF0KSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIHZpcnR1YWwgZGlzcGxheSI7CisgICAgICAgIGRpc3BsYXkgPSB0bXBEaXNwbGF5OworICAgICAgICAqb3V0Rm9ybWF0ID0gdG1wRm9ybWF0OworCisgICAgICAgIEFTU0VSVF9UUlVFKAorICAgICAgICAgICAgbURpc3BsYXlSZXNvdXJjZXMuaW5zZXJ0KHtkaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2UodHJ1ZSl9KS5zZWNvbmQpCisgICAgICAgICAgICA8PCAiZHVwbGljYXRlZCB2aXJ0dWFsIGRpc3BsYXkgaWQgIiA8PCBkaXNwbGF5OworICAgICAgfSk7CisKKyAgcmV0dXJuIGRpc3BsYXk7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIHsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5kZXN0cm95VmlydHVhbERpc3BsYXkoZGlzcGxheSk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpCisgICAgICA8PCAiZmFpbGVkIHRvIGRlc3Ryb3kgdmlydHVhbCBkaXNwbGF5ICIgPDwgZGlzcGxheTsKKworICBtRGlzcGxheVJlc291cmNlcy5lcmFzZShkaXNwbGF5KTsKK30KKworTGF5ZXIgQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUxheWVyKERpc3BsYXkgZGlzcGxheSwgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KSB7CisgIExheWVyIGxheWVyID0gMDsKKyAgbUNsaWVudC0+Y3JlYXRlTGF5ZXIoCisgICAgICBkaXNwbGF5LCBidWZmZXJTbG90Q291bnQsCisgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcExheWVyKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIGxheWVyIjsKKyAgICAgICAgbGF5ZXIgPSB0bXBMYXllcjsKKworICAgICAgICBhdXRvIHJlc291cmNlSXQgPSBtRGlzcGxheVJlc291cmNlcy5maW5kKGRpc3BsYXkpOworICAgICAgICBpZiAocmVzb3VyY2VJdCA9PSBtRGlzcGxheVJlc291cmNlcy5lbmQoKSkgeworICAgICAgICAgIHJlc291cmNlSXQgPQorICAgICAgICAgICAgICBtRGlzcGxheVJlc291cmNlcy5pbnNlcnQoe2Rpc3BsYXksIERpc3BsYXlSZXNvdXJjZShmYWxzZSl9KS5maXJzdDsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVF9UUlVFKHJlc291cmNlSXQtPnNlY29uZC5sYXllcnMuaW5zZXJ0KGxheWVyKS5zZWNvbmQpCisgICAgICAgICAgICA8PCAiZHVwbGljYXRlZCBsYXllciBpZCAiIDw8IGxheWVyOworICAgICAgfSk7CisKKyAgcmV0dXJuIGxheWVyOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPmRlc3Ryb3lMYXllcihkaXNwbGF5LCBsYXllcik7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gZGVzdHJveSBsYXllciAiIDw8IGxheWVyOworCisgIGF1dG8gcmVzb3VyY2VJdCA9IG1EaXNwbGF5UmVzb3VyY2VzLmZpbmQoZGlzcGxheSk7CisgIEFTU0VSVF9ORShtRGlzcGxheVJlc291cmNlcy5lbmQoKSwgcmVzb3VyY2VJdCk7CisgIHJlc291cmNlSXQtPnNlY29uZC5sYXllcnMuZXJhc2UobGF5ZXIpOworfQorCitDb25maWcgQ29tcG9zZXJDbGllbnQ6OmdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXkpIHsKKyAgQ29uZmlnIGNvbmZpZyA9IDA7CisgIG1DbGllbnQtPmdldEFjdGl2ZUNvbmZpZygKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ29uZmlnKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGFjdGl2ZSBjb25maWciOworICAgICAgICBjb25maWcgPSB0bXBDb25maWc7CisgICAgICB9KTsKKworICByZXR1cm4gY29uZmlnOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGhlaWdodCwgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChkaXNwbGF5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc3BhY2UpOworICByZXR1cm4gZXJyb3IgPT0gRXJyb3I6Ok5PTkU7Cit9CisKK3N0ZDo6dmVjdG9yPENvbG9yTW9kZT4gQ29tcG9zZXJDbGllbnQ6OmdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6dmVjdG9yPENvbG9yTW9kZT4gbW9kZXM7CisgIG1DbGllbnQtPmdldENvbG9yTW9kZXMoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcE1vZGUpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgY29sb3IgbW9kZSI7CisgICAgICAgIG1vZGVzID0gdG1wTW9kZTsKKyAgICAgIH0pOworCisgIHJldHVybiBtb2RlczsKK30KKworaW50MzJfdCBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICBEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSkgeworICBpbnQzMl90IHZhbHVlID0gMDsKKyAgbUNsaWVudC0+Z2V0RGlzcGxheUF0dHJpYnV0ZShkaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgYXR0cmlidXRlIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgcmV0dXJuIHZhbHVlOworfQorCitzdGQ6OnZlY3RvcjxDb25maWc+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzOworICBtQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncygKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ29uZmlncykgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBkaXNwbGF5IGNvbmZpZ3MiOworICAgICAgICBjb25maWdzID0gdG1wQ29uZmlnczsKKyAgICAgIH0pOworCisgIHJldHVybiBjb25maWdzOworfQorCitzdGQ6OnN0cmluZyBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIG1DbGllbnQtPmdldERpc3BsYXlOYW1lKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBOYW1lKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgbmFtZSI7CisgICAgICAgIG5hbWUgPSB0bXBOYW1lLmNfc3RyKCk7CisgICAgICB9KTsKKworICByZXR1cm4gbmFtZTsKK30KKworSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5KSB7CisgIElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGUgdHlwZSA9IElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OklOVkFMSUQ7CisgIG1DbGllbnQtPmdldERpc3BsYXlUeXBlKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBUeXBlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgdHlwZSI7CisgICAgICAgIHR5cGUgPSB0bXBUeXBlOworICAgICAgfSk7CisKKyAgcmV0dXJuIHR5cGU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSkgeworICBib29sIHN1cHBvcnQgPSBmYWxzZTsKKyAgbUNsaWVudC0+Z2V0RG96ZVN1cHBvcnQoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFN1cHBvcnQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgZG96ZSBzdXBwb3J0IjsKKyAgICAgICAgc3VwcG9ydCA9IHRtcFN1cHBvcnQ7CisgICAgICB9KTsKKworICByZXR1cm4gc3VwcG9ydDsKK30KKworc3RkOjp2ZWN0b3I8SGRyPiBDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKAorICAgIERpc3BsYXkgZGlzcGxheSwgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgeworICBzdGQ6OnZlY3RvcjxIZHI+IHR5cGVzOworICBtQ2xpZW50LT5nZXRIZHJDYXBhYmlsaXRpZXMoCisgICAgICBkaXNwbGF5LAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBUeXBlcywKKyAgICAgICAgICBjb25zdCBhdXRvJiB0bXBNYXhMdW1pbmFuY2UsIGNvbnN0IGF1dG8mIHRtcE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgY29uc3QgYXV0byYgdG1wTWluTHVtaW5hbmNlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IEhEUiBjYXBhYmlsaXRpZXMiOworICAgICAgICB0eXBlcyA9IHRtcFR5cGVzOworICAgICAgICAqb3V0TWF4THVtaW5hbmNlID0gdG1wTWF4THVtaW5hbmNlOworICAgICAgICAqb3V0TWF4QXZlcmFnZUx1bWluYW5jZSA9IHRtcE1heEF2ZXJhZ2VMdW1pbmFuY2U7CisgICAgICAgICpvdXRNaW5MdW1pbmFuY2UgPSB0bXBNaW5MdW1pbmFuY2U7CisgICAgICB9KTsKKworICByZXR1cm4gdHlwZXM7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KSB7CisgIEVycm9yIGVycm9yID0KKyAgICAgIG1DbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChkaXNwbGF5LCBjbGllbnRUYXJnZXRTbG90Q291bnQpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIHNldCBjbGllbnQgdGFyZ2V0IHNsb3QgY291bnQiOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+c2V0QWN0aXZlQ29uZmlnKGRpc3BsYXksIGNvbmZpZyk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IGFjdGl2ZSBjb25maWciOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldENvbG9yTW9kZShkaXNwbGF5LCBtb2RlKTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgY29sb3IgbW9kZSI7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldFBvd2VyTW9kZShkaXNwbGF5LCBtb2RlKTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgcG93ZXIgbW9kZSI7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIGJvb2wgZW5hYmxlZCkgeworICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIHZzeW5jID0gKGVuYWJsZWQpID8gSUNvbXBvc2VyQ2xpZW50OjpWc3luYzo6RU5BQkxFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jOjpESVNBQkxFOworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldFZzeW5jRW5hYmxlZChkaXNwbGF5LCB2c3luYyk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IHZzeW5jIG1vZGUiOworfQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI1NzI2NAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFZUU19IQUxfR1JBUEhJQ1NfQ09NUE9TRVJfVVRJTFMKKyNkZWZpbmUgVlRTX0hBTF9HUkFQSElDU19DT01QT1NFUl9VVElMUworCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8dXRpbHMvU3Ryb25nUG9pbnRlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JNb2RlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpIZHI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50OworCisvLyBBIHdyYXBwZXIgdG8gSUNvbXBvc2VyLgorY2xhc3MgQ29tcG9zZXIgeworIHB1YmxpYzoKKyAgQ29tcG9zZXIoKTsKKworICBzcDxJQ29tcG9zZXI+IGdldFJhdygpIGNvbnN0OworCisgIC8vIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBjb21wb3NlciBzdXBwb3J0cyB0aGUgc3BlY2lmaWVkIGNhcGFiaWxpdHkuCisgIGJvb2wgaGFzQ2FwYWJpbGl0eShJQ29tcG9zZXI6OkNhcGFiaWxpdHkgY2FwYWJpbGl0eSkgY29uc3Q7CisKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBnZXRDYXBhYmlsaXRpZXMoKTsKKyAgc3RkOjpzdHJpbmcgZHVtcERlYnVnSW5mbygpOworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ+IGNyZWF0ZUNsaWVudCgpOworCisgcHJpdmF0ZToKKyAgdm9pZCBpbml0KCk7CisKKyAgc3A8SUNvbXBvc2VyPiBtQ29tcG9zZXI7CisgIHN0ZDo6dW5vcmRlcmVkX3NldDxJQ29tcG9zZXI6OkNhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7Cit9OworCisvLyBBIHdyYXBwZXIgdG8gSUNvbXBvc2VyQ2xpZW50LgorY2xhc3MgQ29tcG9zZXJDbGllbnQgeworIHB1YmxpYzoKKyAgQ29tcG9zZXJDbGllbnQoY29uc3Qgc3A8SUNvbXBvc2VyQ2xpZW50PiYgY2xpZW50KTsKKyAgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgc3A8SUNvbXBvc2VyQ2xpZW50PiBnZXRSYXcoKSBjb25zdDsKKworICB2b2lkIHJlZ2lzdGVyQ2FsbGJhY2soY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjayk7CisgIHVpbnQzMl90IGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKTsKKworICBEaXNwbGF5IGNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQqIG91dEZvcm1hdCk7CisgIHZvaWQgZGVzdHJveVZpcnR1YWxEaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisKKyAgTGF5ZXIgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQpOworICB2b2lkIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKTsKKworICBDb25maWcgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSk7CisgIGJvb2wgZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpOworICBzdGQ6OnZlY3RvcjxDb2xvck1vZGU+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KTsKKyAgaW50MzJfdCBnZXREaXNwbGF5QXR0cmlidXRlKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSk7CisgIHN0ZDo6dmVjdG9yPENvbmZpZz4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5KTsKKyAgc3RkOjpzdHJpbmcgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5KTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpOworICBib29sIGdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSk7CisgIHN0ZDo6dmVjdG9yPEhkcj4gZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwgZmxvYXQqIG91dE1heEx1bWluYW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KiBvdXRNaW5MdW1pbmFuY2UpOworCisgIHZvaWQgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KTsKKyAgdm9pZCBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKTsKKyAgdm9pZCBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSk7CisgIHZvaWQgc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSk7CisgIHZvaWQgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgYm9vbCBlbmFibGVkKTsKKworIHByaXZhdGU6CisgIHNwPElDb21wb3NlckNsaWVudD4gbUNsaWVudDsKKworICAvLyBLZWVwIHRyYWNrIG9mIGFsbCB2aXJ0dWFsIGRpc3BsYXlzIGFuZCBsYXllcnMuICBXaGVuIGEgdGVzdCBmYWlscyB3aXRoCisgIC8vIEFTU0VSVF8qLCB0aGUgZGVzdHJ1Y3RvciB3aWxsIGNsZWFuIHVwIHRoZSByZXNvdXJjZXMgZm9yIHRoZSB0ZXN0LgorICBzdHJ1Y3QgRGlzcGxheVJlc291cmNlIHsKKyAgICBEaXNwbGF5UmVzb3VyY2UoYm9vbCBpc1ZpcnR1YWxfKSA6IGlzVmlydHVhbChpc1ZpcnR1YWxfKSB7fQorCisgICAgYm9vbCBpc1ZpcnR1YWw7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PExheWVyPiBsYXllcnM7CisgIH07CisgIHN0ZDo6dW5vcmRlcmVkX21hcDxEaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2U+IG1EaXNwbGF5UmVzb3VyY2VzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBWVFNfSEFMX0dSQVBISUNTX0NPTVBPU0VSX1VUSUxTCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVjJfMVRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NzIyMmYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZ3JhcGhpY3NfY29tcG9zZXJfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPElDb21wb3NlckNvbW1hbmRCdWZmZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCIKKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6dGVzdHM6OkdyYWxsb2M7Cit1c2luZyBHcmFsbG9jRXJyb3IgPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKKy8vIElDb21wb3NlckNhbGxiYWNrIHRvIGJlIGluc3RhbGxlZCB3aXRoIElDb21wb3NlckNsaWVudDo6cmVnaXN0ZXJDYWxsYmFjay4KK2NsYXNzIEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjayA6IHB1YmxpYyBJQ29tcG9zZXJDYWxsYmFjayB7CisgcHVibGljOgorICB2b2lkIHNldFZzeW5jQWxsb3dlZChib29sIGFsbG93ZWQpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIG1Wc3luY0FsbG93ZWQgPSBhbGxvd2VkOworICB9CisKKyAgc3RkOjp2ZWN0b3I8RGlzcGxheT4gZ2V0RGlzcGxheXMoKSBjb25zdCB7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICByZXR1cm4gc3RkOjp2ZWN0b3I8RGlzcGxheT4obURpc3BsYXlzLmJlZ2luKCksIG1EaXNwbGF5cy5lbmQoKSk7CisgIH0KKworICBpbnQgZ2V0SW52YWxpZEhvdHBsdWdDb3VudCgpIGNvbnN0IHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIHJldHVybiBtSW52YWxpZEhvdHBsdWdDb3VudDsKKyAgfQorCisgIGludCBnZXRJbnZhbGlkUmVmcmVzaENvdW50KCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIG1JbnZhbGlkUmVmcmVzaENvdW50OworICB9CisKKyAgaW50IGdldEludmFsaWRWc3luY0NvdW50KCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIG1JbnZhbGlkVnN5bmNDb3VudDsKKyAgfQorCisgcHJpdmF0ZToKKyAgUmV0dXJuPHZvaWQ+IG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGlvbikgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAoY29ubmVjdGlvbiA9PSBDb25uZWN0aW9uOjpDT05ORUNURUQpIHsKKyAgICAgIGlmICghbURpc3BsYXlzLmluc2VydChkaXNwbGF5KS5zZWNvbmQpIHsKKyAgICAgICAgbUludmFsaWRIb3RwbHVnQ291bnQrKzsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGNvbm5lY3Rpb24gPT0gQ29ubmVjdGlvbjo6RElTQ09OTkVDVEVEKSB7CisgICAgICBpZiAoIW1EaXNwbGF5cy5lcmFzZShkaXNwbGF5KSkgeworICAgICAgICBtSW52YWxpZEhvdHBsdWdDb3VudCsrOworICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBSZXR1cm48dm9pZD4gb25SZWZyZXNoKERpc3BsYXkgZGlzcGxheSkgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAobURpc3BsYXlzLmNvdW50KGRpc3BsYXkpID09IDApIHsKKyAgICAgIG1JbnZhbGlkUmVmcmVzaENvdW50Kys7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBvblZzeW5jKERpc3BsYXkgZGlzcGxheSwgaW50NjRfdCkgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAoIW1Wc3luY0FsbG93ZWQgfHwgbURpc3BsYXlzLmNvdW50KGRpc3BsYXkpID09IDApIHsKKyAgICAgIG1JbnZhbGlkVnN5bmNDb3VudCsrOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBtdXRhYmxlIHN0ZDo6bXV0ZXggbU11dGV4OworICAvLyB0aGUgc2V0IG9mIGFsbCBjdXJyZW50bHkgY29ubmVjdGVkIGRpc3BsYXlzCisgIHN0ZDo6dW5vcmRlcmVkX3NldDxEaXNwbGF5PiBtRGlzcGxheXM7CisgIC8vIHRydWUgb25seSB3aGVuIHZzeW5jIGlzIGVuYWJsZWQKKyAgYm9vbCBtVnN5bmNBbGxvd2VkID0gZmFsc2U7CisKKyAgLy8gdHJhY2sgaW52YWxpZCBjYWxsYmFja3MKKyAgaW50IG1JbnZhbGlkSG90cGx1Z0NvdW50ID0gMDsKKyAgaW50IG1JbnZhbGlkUmVmcmVzaENvdW50ID0gMDsKKyAgaW50IG1JbnZhbGlkVnN5bmNDb3VudCA9IDA7Cit9OworCitjbGFzcyBHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtQ29tcG9zZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2VyPigpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtQ29tcG9zZXJDbGllbnQgPSBtQ29tcG9zZXItPmNyZWF0ZUNsaWVudCgpKTsKKworICAgIG1Db21wb3NlckNhbGxiYWNrID0gbmV3IEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjazsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnJlZ2lzdGVyQ2FsbGJhY2sobUNvbXBvc2VyQ2FsbGJhY2spOworCisgICAgLy8gYXNzdW1lIHRoZSBmaXJzdCBkaXNwbGF5IGlzIHByaW1hcnkgYW5kIGlzIG5ldmVyIHJlbW92ZWQKKyAgICBtUHJpbWFyeURpc3BsYXkgPSB3YWl0Rm9yRmlyc3REaXNwbGF5KCk7CisgIH0KKworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIGlmIChtQ29tcG9zZXJDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRIb3RwbHVnQ291bnQoKSk7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRSZWZyZXNoQ291bnQoKSk7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRWc3luY0NvdW50KCkpOworICAgIH0KKyAgfQorCisgIC8vIHVzZSB0aGUgc2xvdCBjb3VudCB1c3VhbGx5IHNldCBieSBTRgorICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtCdWZmZXJTbG90Q291bnQgPSA2NDsKKworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXI+IG1Db21wb3NlcjsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBtQ29tcG9zZXJDbGllbnQ7CisgIHNwPEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjaz4gbUNvbXBvc2VyQ2FsbGJhY2s7CisgIC8vIHRoZSBmaXJzdCBkaXNwbGF5IGFuZCBpcyBhc3N1bWVkIG5ldmVyIHRvIGJlIHJlbW92ZWQKKyAgRGlzcGxheSBtUHJpbWFyeURpc3BsYXk7CisKKyBwcml2YXRlOgorICBEaXNwbGF5IHdhaXRGb3JGaXJzdERpc3BsYXkoKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIHN0ZDo6dmVjdG9yPERpc3BsYXk+IGRpc3BsYXlzID0gbUNvbXBvc2VyQ2FsbGJhY2stPmdldERpc3BsYXlzKCk7CisgICAgICBpZiAoZGlzcGxheXMuZW1wdHkoKSkgeworICAgICAgICB1c2xlZXAoNSAqIDEwMDApOworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIGRpc3BsYXlzWzBdOworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBUZXN0IElDb21wb3Nlcjo6Z2V0Q2FwYWJpbGl0aWVzLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcyByZXR1cm5zIG5vIGludmFsaWQgY2FwYWJpbGl0aWVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXRDYXBhYmlsaXRpZXMpIHsKKyAgYXV0byBjYXBhYmlsaXRpZXMgPSBtQ29tcG9zZXItPmdldENhcGFiaWxpdGllcygpOworICBBU1NFUlRfRVEoY2FwYWJpbGl0aWVzLmVuZCgpLAorICAgICAgICAgICAgc3RkOjpmaW5kKGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyOjpDYXBhYmlsaXR5OjpJTlZBTElEKSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXI6OmR1bXBEZWJ1Z0luZm8uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIER1bXBEZWJ1Z0luZm8pIHsgbUNvbXBvc2VyLT5kdW1wRGVidWdJbmZvKCk7IH0KKworLyoqCisgKiBUZXN0IElDb21wb3Nlcjo6Y3JlYXRlQ2xpZW50LgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQgaXMgYSBzaW5nbGV0b24uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIENyZWF0ZUNsaWVudFNpbmdsZXRvbikgeworICBtQ29tcG9zZXItPmdldFJhdygpLT5jcmVhdGVDbGllbnQoWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9fUkVTT1VSQ0VTLCB0bXBFcnJvcik7CisgIH0pOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpjcmVhdGVWaXJ0dWFsRGlzcGxheSBhbmQKKyAqIElDb21wb3NlckNsaWVudDo6ZGVzdHJveVZpcnR1YWxEaXNwbGF5LgorICoKKyAqIFRlc3QgdGhhdCB2aXJ0dWFsIGRpc3BsYXlzIGNhbiBiZSBjcmVhdGVkIGFuZCBoYXMgdGhlIGNvcnJlY3QgZGlzcGxheSB0eXBlLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVWaXJ0dWFsRGlzcGxheSkgeworICBpZiAobUNvbXBvc2VyQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPT0gMCkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gdmlydHVhbCBkaXNwbGF5IHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIERpc3BsYXkgZGlzcGxheTsKKyAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkaXNwbGF5ID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LCA2NCwgUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVmZmVyU2xvdENvdW50LCAmZm9ybWF0KSk7CisKKyAgLy8gdGVzdCBkaXNwbGF5IHR5cGUKKyAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSB0eXBlID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5VHlwZShkaXNwbGF5KTsKKyAgRVhQRUNUX0VRKElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OlZJUlRVQUwsIHR5cGUpOworCisgIG1Db21wb3NlckNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpjcmVhdGVMYXllciBhbmQgSUNvbXBvc2VyQ2xpZW50OjpkZXN0cm95TGF5ZXIuCisgKgorICogVGVzdCB0aGF0IGxheWVycyBjYW4gYmUgY3JlYXRlZCBhbmQgZGVzdHJveWVkLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVMYXllcikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbUNvbXBvc2VyQ2xpZW50LT5kZXN0cm95TGF5ZXIobVByaW1hcnlEaXNwbGF5LCBsYXllcik7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlOYW1lLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXREaXNwbGF5TmFtZSkgeworICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlOYW1lKG1QcmltYXJ5RGlzcGxheSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlIHJldHVybnMgdGhlIGNvcnJlY3QgZGlzcGxheSB0eXBlCisgKiBmb3IgdGhlIHByaW1hcnkgZGlzcGxheS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheVR5cGUpIHsKKyAgQVNTRVJUX0VRKElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OlBIWVNJQ0FMLAorICAgICAgICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5VHlwZShtUHJpbWFyeURpc3BsYXkpKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0IHJldHVybnMgdHJ1ZSBmb3IgdGhlCisgKiByZXF1aXJlZCBjbGllbnQgdGFyZ2V0cy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCkgeworICBzdGQ6OnZlY3RvcjxDb25maWc+IGNvbmZpZ3MgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncyhtUHJpbWFyeURpc3BsYXkpOworICBmb3IgKGF1dG8gY29uZmlnIDogY29uZmlncykgeworICAgIGludDMyX3Qgd2lkdGggPSBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUoCisgICAgICAgIG1QcmltYXJ5RGlzcGxheSwgY29uZmlnLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6V0lEVEgpOworICAgIGludDMyX3QgaGVpZ2h0ID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5QXR0cmlidXRlKAorICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkhFSUdIVCk7CisgICAgQVNTRVJUX0xUKDAsIHdpZHRoKTsKKyAgICBBU1NFUlRfTFQoMCwgaGVpZ2h0KTsKKworICAgIG1Db21wb3NlckNsaWVudC0+c2V0QWN0aXZlQ29uZmlnKG1QcmltYXJ5RGlzcGxheSwgY29uZmlnKTsKKworICAgIEFTU0VSVF9UUlVFKG1Db21wb3NlckNsaWVudC0+Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCgKKyAgICAgICAgbVByaW1hcnlEaXNwbGF5LCB3aWR0aCwgaGVpZ2h0LCBQaXhlbEZvcm1hdDo6UkdCQV84ODg4LAorICAgICAgICBEYXRhc3BhY2U6OlVOS05PV04pKTsKKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlBdHRyaWJ1dGUgc3VjY2VlZHMgZm9yIHRoZSByZXF1aXJlZAorICogZm9ybWF0cywgYW5kIHN1Y2NlZWRzIG9yIGZhaWxzIGNvcnJlY3RseSBmb3Igb3B0aW9uYWwgYXR0cmlidXRlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheUF0dHJpYnV0ZSkgeworICBzdGQ6OnZlY3RvcjxDb25maWc+IGNvbmZpZ3MgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncyhtUHJpbWFyeURpc3BsYXkpOworICBmb3IgKGF1dG8gY29uZmlnIDogY29uZmlncykgeworICAgIGNvbnN0IHN0ZDo6YXJyYXk8SUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUsIDM+IHJlcXVpcmVkQXR0cmlidXRlcyA9IHt7CisgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpXSURUSCwgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkhFSUdIVCwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OlZTWU5DX1BFUklPRCwKKyAgICB9fTsKKyAgICBmb3IgKGF1dG8gYXR0cmlidXRlIDogcmVxdWlyZWRBdHRyaWJ1dGVzKSB7CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUobVByaW1hcnlEaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjphcnJheTxJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSwgMj4gb3B0aW9uYWxBdHRyaWJ1dGVzID0ge3sKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkRQSV9YLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6RFBJX1ksCisgICAgfX07CisgICAgZm9yIChhdXRvIGF0dHJpYnV0ZSA6IG9wdGlvbmFsQXR0cmlidXRlcykgeworICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgYXR0cmlidXRlLAorICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRtcEVycm9yID09IEVycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICAgICAgICB0bXBFcnJvciA9PSBFcnJvcjo6VU5TVVBQT1JURUQpOworICAgICAgICAgIH0pOworICAgIH0KKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXRIZHJDYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIEdldEhkckNhcGFiaWxpdGllcykgeworICBmbG9hdCBtYXhMdW1pbmFuY2U7CisgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2U7CisgIGZsb2F0IG1pbkx1bWluYW5jZTsKKyAgbUNvbXBvc2VyQ2xpZW50LT5nZXRIZHJDYXBhYmlsaXRpZXMobVByaW1hcnlEaXNwbGF5LCAmbWF4THVtaW5hbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4QXZlcmFnZUx1bWluYW5jZSwgJm1pbkx1bWluYW5jZSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudC4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgU2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KSB7CisgIG1Db21wb3NlckNsaWVudC0+c2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldEFjdGl2ZUNvbmZpZy4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcgc3VjY2VlZHMgZm9yIGFsbCBkaXNwbGF5CisgKiBjb25maWdzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRBY3RpdmVDb25maWcpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzID0KKyAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheUNvbmZpZ3MobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldEFjdGl2ZUNvbmZpZyhtUHJpbWFyeURpc3BsYXksIGNvbmZpZyk7CisgICAgQVNTRVJUX0VRKGNvbmZpZywgbUNvbXBvc2VyQ2xpZW50LT5nZXRBY3RpdmVDb25maWcobVByaW1hcnlEaXNwbGF5KSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OnNldENvbG9yTW9kZSBzdWNjZWVkcyBmb3IgYWxsIGNvbG9yIG1vZGVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRDb2xvck1vZGUpIHsKKyAgc3RkOjp2ZWN0b3I8Q29sb3JNb2RlPiBtb2RlcyA9CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldENvbG9yTW9kZXMobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIG1vZGUgOiBtb2RlcykgeworICAgIG1Db21wb3NlckNsaWVudC0+c2V0Q29sb3JNb2RlKG1QcmltYXJ5RGlzcGxheSwgbW9kZSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6c2V0UG93ZXJNb2RlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZSBzdWNjZWVkcyBmb3IgYWxsIHBvd2VyIG1vZGVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRQb3dlck1vZGUpIHsKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU+IG1vZGVzOworICBtb2Rlcy5wdXNoX2JhY2soSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU6Ok9GRik7CisKKyAgaWYgKG1Db21wb3NlckNsaWVudC0+Z2V0RG96ZVN1cHBvcnQobVByaW1hcnlEaXNwbGF5KSkgeworICAgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6RE9aRSk7CisgICAgbW9kZXMucHVzaF9iYWNrKElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlOjpET1pFX1NVU1BFTkQpOworICB9CisKKyAgLy8gcHVzaCBPTiBsYXN0CisgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6T04pOworCisgIGZvciAoYXV0byBtb2RlIDogbW9kZXMpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldFBvd2VyTW9kZShtUHJpbWFyeURpc3BsYXksIG1vZGUpOworICB9Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRWc3luY0VuYWJsZWQgc3VjY2VlZHMgYW5kIHRoZXJlIGlzIG5vCisgKiBzcHVyaW91cyB2c3luYyBldmVudHMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIFNldFZzeW5jRW5hYmxlZCkgeworICBtQ29tcG9zZXJDYWxsYmFjay0+c2V0VnN5bmNBbGxvd2VkKHRydWUpOworCisgIG1Db21wb3NlckNsaWVudC0+c2V0VnN5bmNFbmFibGVkKG1QcmltYXJ5RGlzcGxheSwgdHJ1ZSk7CisgIHVzbGVlcCg2MCAqIDEwMDApOworICBtQ29tcG9zZXJDbGllbnQtPnNldFZzeW5jRW5hYmxlZChtUHJpbWFyeURpc3BsYXksIGZhbHNlKTsKKworICBtQ29tcG9zZXJDYWxsYmFjay0+c2V0VnN5bmNBbGxvd2VkKGZhbHNlKTsKK30KKworLy8gVGVzdHMgZm9yIElDb21wb3NlckNsaWVudDo6Q29tbWFuZC4KK2NsYXNzIEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QgOiBwdWJsaWMgR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0IHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0OjpTZXRVcCgpKTsKKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFsbG9jPigpKTsKKworICAgIG1Xcml0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRXcml0ZXJCYXNlPigxMDI0KTsKKyAgICBtUmVhZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUmVhZGVyPigpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShHcmFwaGljc0NvbXBvc2VySGlkbFRlc3Q6OlRlYXJEb3duKCkpOworICB9CisKKyAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBhbGxvY2F0ZSgpIHsKKyAgICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvIGluZm97fTsKKyAgICAgIGluZm8ud2lkdGggPSA2NDsKKyAgICAgIGluZm8uaGVpZ2h0ID0gNjQ7CisgICAgICBpbmZvLmxheWVyQ291bnQgPSAxOworICAgICAgaW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6UkdCQV84ODg4OworICAgICAgaW5mby51c2FnZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX09GVEVOIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9SRUFEX09GVEVOKTsKKworICAgICAgcmV0dXJuIG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvKTsKKyAgfQorCisgIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICBib29sIHF1ZXVlQ2hhbmdlZCA9IGZhbHNlOworICAgIHVpbnQzMl90IGNvbW1hbmRMZW5ndGggPSAwOworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBjb21tYW5kSGFuZGxlczsKKyAgICBBU1NFUlRfVFJVRSgKKyAgICAgICAgbVdyaXRlci0+d3JpdGVRdWV1ZSgmcXVldWVDaGFuZ2VkLCAmY29tbWFuZExlbmd0aCwgJmNvbW1hbmRIYW5kbGVzKSk7CisKKyAgICBpZiAocXVldWVDaGFuZ2VkKSB7CisgICAgICBhdXRvIHJldCA9IG1Db21wb3NlckNsaWVudC0+Z2V0UmF3KCktPnNldElucHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICptV3JpdGVyLT5nZXRNUURlc2NyaXB0b3IoKSk7CisgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHN0YXRpY19jYXN0PEVycm9yPihyZXQpKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtQ29tcG9zZXJDbGllbnQtPmdldFJhdygpLT5leGVjdXRlQ29tbWFuZHMoCisgICAgICAgIGNvbW1hbmRMZW5ndGgsIGNvbW1hbmRIYW5kbGVzLAorICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcE91dFF1ZXVlQ2hhbmdlZCwKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHRtcE91dExlbmd0aCwgY29uc3QgYXV0byYgdG1wT3V0SGFuZGxlcykgeworICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworCisgICAgICAgICAgaWYgKHRtcE91dFF1ZXVlQ2hhbmdlZCkgeworICAgICAgICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+Z2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGVzY3JpcHRvcikgeworICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcik7CisgICAgICAgICAgICAgICAgICBtUmVhZGVyLT5zZXRNUURlc2NyaXB0b3IodG1wRGVzY3JpcHRvcik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgQVNTRVJUX1RSVUUobVJlYWRlci0+cmVhZFF1ZXVlKHRtcE91dExlbmd0aCwgdG1wT3V0SGFuZGxlcykpOworICAgICAgICAgIG1SZWFkZXItPnBhcnNlKCk7CisgICAgICAgIH0pOworICB9CisKKyAgLy8gQSBjb21tYW5kIHBhcnNlciB0aGF0IGNoZWNrcyB0aGF0IG5vIGVycm9yIG5vciB1bmV4cGVjdGVkIGNvbW1hbmRzIGFyZQorICAvLyByZXR1cm5lZC4KKyAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICBwdWJsaWM6CisgICAgLy8gUGFyc2UgYWxsIGNvbW1hbmRzIGluIHRoZSByZXR1cm4gY29tbWFuZCBxdWV1ZS4gIENhbGwgR1RFU1RfRkFJTCgpIGZvcgorICAgIC8vIHVuZXhwZWN0ZWQgZXJyb3JzIG9yIGNvbW1hbmRzLgorICAgIHZvaWQgcGFyc2UoKSB7CisgICAgICB3aGlsZSAoIWlzRW1wdHkoKSkgeworICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZDsKKyAgICAgICAgdWludDE2X3QgbGVuZ3RoOworICAgICAgICBBU1NFUlRfVFJVRShiZWdpbkNvbW1hbmQoJmNvbW1hbmQsICZsZW5ndGgpKTsKKworICAgICAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0VSUk9SOiB7CisgICAgICAgICAgICBBU1NFUlRfRVEoMiwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGF1dG8gbG9jID0gcmVhZCgpOworICAgICAgICAgICAgYXV0byBlcnIgPSByZWFkU2lnbmVkKCk7CisgICAgICAgICAgICBHVEVTVF9GQUlMKCkgPDwgInVuZXhwZWN0ZWQgZXJyb3IgIiA8PCBlcnIgPDwgIiBhdCBsb2NhdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgPDwgbG9jOworICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFTEVDVF9ESVNQTEFZOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ0hBTkdFRF9DT01QT1NJVElPTl9UWVBFUzoKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0RJU1BMQVlfUkVRVUVTVFM6CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfUkVMRUFTRV9GRU5DRVM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgR1RFU1RfRkFJTCgpIDw8ICJ1bmV4cGVjdGVkIHJldHVybiBjb21tYW5kICIgPDwgc3RkOjpoZXgKKyAgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0aWNfY2FzdDxpbnQ+KGNvbW1hbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgICB9CisgICAgfQorICB9OworCisgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kV3JpdGVyQmFzZT4gbVdyaXRlcjsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRSZWFkZXI+IG1SZWFkZXI7CisKKyBwcml2YXRlOgorICBzdGQ6OnVuaXF1ZV9wdHI8R3JhbGxvYz4gbUdyYWxsb2M7Cit9OworCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ09MT1JfVFJBTlNGT1JNLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0NPTE9SX1RSQU5TRk9STSkgeworICBjb25zdCBzdGQ6OmFycmF5PGZsb2F0LCAxNj4gaWRlbnRpdHkgPSB7eworICAgICAgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiwgMC4wZiwKKyAgICAgIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYsCisgIH19OworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2V0Q29sb3JUcmFuc2Zvcm0oaWRlbnRpdHkuZGF0YSgpLCBDb2xvclRyYW5zZm9ybTo6SURFTlRJVFkpOworCisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NMSUVOVF9UQVJHRVQuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfQ0xJRU5UX1RBUkdFVCkgeworICBtQ29tcG9zZXJDbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2V0Q2xpZW50VGFyZ2V0KDAsIG51bGxwdHIsIC0xLCBEYXRhc3BhY2U6OlVOS05PV04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KCkpOworCisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfT1VUUFVUX0JVRkZFUikgeworICBpZiAobUNvbXBvc2VyQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPT0gMCkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gdmlydHVhbCBkaXNwbGF5IHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIERpc3BsYXkgZGlzcGxheTsKKyAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkaXNwbGF5ID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LCA2NCwgUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVmZmVyU2xvdENvdW50LCAmZm9ybWF0KSk7CisKKyAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGU7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGhhbmRsZSA9IGFsbG9jYXRlKCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkoZGlzcGxheSk7CisgIG1Xcml0ZXItPnNldE91dHB1dEJ1ZmZlcigwLCBoYW5kbGUsIC0xKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpWQUxJREFURV9ESVNQTEFZLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgVkFMSURBVEVfRElTUExBWSkgeworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnZhbGlkYXRlRGlzcGxheSgpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OkFDQ0VQVF9ESVNQTEFZX0NIQU5HRVMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBBQ0NFUFRfRElTUExBWV9DSEFOR0VTKSB7CisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+dmFsaWRhdGVEaXNwbGF5KCk7CisgIG1Xcml0ZXItPmFjY2VwdERpc3BsYXlDaGFuZ2VzKCk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgUFJFU0VOVF9ESVNQTEFZKSB7CisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+dmFsaWRhdGVEaXNwbGF5KCk7CisgIG1Xcml0ZXItPnByZXNlbnREaXNwbGF5KCk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTi4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckN1cnNvclBvc2l0aW9uKDEsIDEpOworICBtV3JpdGVyLT5zZXRMYXllckN1cnNvclBvc2l0aW9uKDAsIDApOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CVUZGRVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQlVGRkVSKSB7CisgIGF1dG8gaGFuZGxlID0gYWxsb2NhdGUoKTsKKyAgQVNTRVJUX05FKG51bGxwdHIsIGhhbmRsZSk7CisKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckJ1ZmZlcigwLCBoYW5kbGUsIC0xKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIElDb21wb3NlckNsaWVudDo6UmVjdCBlbXB0eXswLCAwLCAwLCAwfTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpSZWN0IHVuaXR7MCwgMCwgMSwgMX07CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIGVtcHR5KSk7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIHVuaXQpKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4oKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JMRU5EX01PREUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQkxFTkRfTU9ERSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQmxlbmRNb2RlKElDb21wb3NlckNsaWVudDo6QmxlbmRNb2RlOjpOT05FKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJCbGVuZE1vZGUoSUNvbXBvc2VyQ2xpZW50OjpCbGVuZE1vZGU6OlBSRU1VTFRJUExJRUQpOworICBtV3JpdGVyLT5zZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZTo6Q09WRVJBR0UpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT0xPUi4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9DT0xPUikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQ29sb3IoSUNvbXBvc2VyQ2xpZW50OjpDb2xvcnsweGZmLCAweGZmLCAweGZmLCAweGZmfSk7CisgIG1Xcml0ZXItPnNldExheWVyQ29sb3IoSUNvbXBvc2VyQ2xpZW50OjpDb2xvcnswLCAwLCAwLCAwfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkNMSUVOVCk7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkRFVklDRSk7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OlNPTElEX0NPTE9SKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJDb21wb3NpdGlvblR5cGUoSUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbjo6Q1VSU09SKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0RBVEFTUEFDRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyRGF0YXNwYWNlKERhdGFzcGFjZTo6VU5LTk9XTik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfRElTUExBWV9GUkFNRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyRGlzcGxheUZyYW1lKElDb21wb3NlckNsaWVudDo6UmVjdHswLCAwLCAxLCAxfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1BMQU5FX0FMUEhBKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJQbGFuZUFscGhhKDAuMGYpOworICBtV3JpdGVyLT5zZXRMYXllclBsYW5lQWxwaGEoMS4wZik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0pIHsKKyAgaWYgKCFtQ29tcG9zZXItPmhhc0NhcGFiaWxpdHkoSUNvbXBvc2VyOjpDYXBhYmlsaXR5OjpTSURFQkFORF9TVFJFQU0pKSB7CisgICAgR1RFU1RfU1VDQ0VFRCgpIDw8ICJubyBzaWRlYmFuZCBzdHJlYW0gc3VwcG9ydCI7CisgICAgcmV0dXJuOworICB9CisKKyAgYXV0byBoYW5kbGUgPSBhbGxvY2F0ZSgpOworICBBU1NFUlRfTkUobnVsbHB0ciwgaGFuZGxlKTsKKworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyU2lkZWJhbmRTdHJlYW0oaGFuZGxlKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU09VUkNFX0NST1AuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU09VUkNFX0NST1ApIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclNvdXJjZUNyb3AoSUNvbXBvc2VyQ2xpZW50OjpGUmVjdHswLjBmLCAwLjBmLCAxLjBmLCAxLjBmfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1RSQU5TRk9STS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9UUkFOU0ZPUk0pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KDApKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpGTElQX0gpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm06OkZMSVBfVik7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybTo6Uk9UXzkwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpST1RfMTgwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpST1RfMjcwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oCisgICAgICBzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KFRyYW5zZm9ybTo6RkxJUF9IIHwgVHJhbnNmb3JtOjpST1RfOTApKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oCisgICAgICBzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KFRyYW5zZm9ybTo6RkxJUF9WIHwgVHJhbnNmb3JtOjpST1RfOTApKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIElDb21wb3NlckNsaWVudDo6UmVjdCBlbXB0eXswLCAwLCAwLCAwfTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpSZWN0IHVuaXR7MCwgMCwgMSwgMX07CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIGVtcHR5KSk7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIHVuaXQpKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJWaXNpYmxlUmVnaW9uKHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4oKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1pfT1JERVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfWl9PUkRFUikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyWk9yZGVyKDEwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJaT3JkZXIoMCk7CisgIGV4ZWN1dGUoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworCisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icCBiL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDhkNThmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjUgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklNYXBwZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL01hcHBlckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lId01hcHBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9Cbkh3TWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0JwSHdNYXBwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvQnNNYXBwZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oYWwgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZTIwNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsCkBAIC0wLDAgKzEsMjMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA7CisKK2ludGVyZmFjZSBJTWFwcGVyIHsKKyAgICBzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvckluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHdpZHRoIHNwZWNpZmllcyBob3cgbWFueSBjb2x1bW5zIG9mIHBpeGVscyBtdXN0IGJlIGluIHRoZQorICAgICAgICAgKiBhbGxvY2F0ZWQgYnVmZmVyLCBidXQgZG9lcyBub3QgbmVjZXNzYXJpbHkgcmVwcmVzZW50IHRoZSBvZmZzZXQgaW4KKyAgICAgICAgICogY29sdW1ucyBiZXR3ZWVuIHRoZSBzYW1lIGNvbHVtbiBpbiBhZGphY2VudCByb3dzLiBUaGUgcm93cyBtYXkgYmUKKyAgICAgICAgICogcGFkZGVkLgorICAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3Qgd2lkdGg7CisKKyAgICAgICAvKioKKyAgICAgICAgKiBUaGUgaGVpZ2h0IHNwZWNpZmllcyBob3cgbWFueSByb3dzIG9mIHBpeGVscyBtdXN0IGJlIGluIHRoZQorICAgICAgICAqIGFsbG9jYXRlZCBidWZmZXIuCisgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IGhlaWdodDsKKworICAgICAgIC8qKgorICAgICAgICAqIFRoZSBudW1iZXIgb2YgaW1hZ2UgbGF5ZXJzIHRoYXQgbXVzdCBiZSBpbiB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4KKyAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3QgbGF5ZXJDb3VudDsKKworICAgICAgICAvKiogQnVmZmVyIHBpeGVsIGZvcm1hdC4gKi8KKyAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBCdWZmZXIgdXNhZ2UgbWFzazsgdmFsaWQgZmxhZ3MgY2FuIGJlIGZvdW5kIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICAgICAqIEJ1ZmZlclVzYWdlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IHVzYWdlOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVjdCB7CisgICAgICAgIGludDMyX3QgbGVmdDsKKyAgICAgICAgaW50MzJfdCB0b3A7CisgICAgICAgIGludDMyX3Qgd2lkdGg7CisgICAgICAgIGludDMyX3QgaGVpZ2h0OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgYnVmZmVyIGRlc2NyaXB0b3IuIFRoZSBkZXNjcmlwdG9yIGNhbiBiZSB1c2VkIHdpdGggSUFsbG9jYXRvcgorICAgICAqIHRvIGFsbG9jYXRlIGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBTaW5jZSB0aGUgYnVmZmVyIGRlc2NyaXB0b3IgZnVsbHkgZGVzY3JpYmVzIGEgYnVmZmVyLCBhbnkgZGV2aWNlCisgICAgICogZGVwZW5kZW50IG9yIGRldmljZSBpbmRlcGVuZGVudCBjaGVja3MgbXVzdCBiZSBwZXJmb3JtZWQgaGVyZSB3aGVuZXZlcgorICAgICAqIHBvc3NpYmxlLiBTcGVjaWZpY2FsbHksIHdoZW4gbGF5ZXJlZCBidWZmZXJzIGFyZSBub3Qgc3VwcG9ydGVkLCB0aGlzCisgICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gVU5TVVBQT1JURUQgaWYgbGF5ZXJDb3VudCBpcyBncmVhdCB0aGFuIDEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvckluZm8gc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkZXNjcmlwdG9yLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGFueSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkIG9yIGNvbmZsaWN0aW5nLgorICAgICAqICAgICAgICAgICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGNyZWF0aW9uIGNhbm5vdCBiZSBmdWxsZmlsbGVkIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB0aW1lLgorICAgICAqICAgICAgICAgICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgbmV3bHkgY3JlYXRlZCBidWZmZXIgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgY3JlYXRlRGVzY3JpcHRvcihCdWZmZXJEZXNjcmlwdG9ySW5mbyBkZXNjcmlwdG9ySW5mbykKKyAgICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSByYXcgYnVmZmVyIGhhbmRsZSB0byBjcmVhdGUgYW4gaW1wb3J0ZWQgYnVmZmVyIGhhbmRsZSBmb3IgdXNlCisgICAgICogd2l0aCB0aGUgcmVzdCBvZiB0aGUgbWFwcGVyIG9yIHdpdGggb3RoZXIgaW4tcHJvY2VzcyBsaWJyYXJpZXMuCisgICAgICoKKyAgICAgKiBBIGJ1ZmZlciBoYW5kbGUgaXMgY29uc2lkZXJlZCByYXcgd2hlbiBpdCBpcyBjbG9uZWQgKGUuZy4sIHdpdGgKKyAgICAgKiBuYXRpdmVfaGFuZGxlX2Nsb25lKSBmcm9tIGFub3RoZXIgYnVmZmVyIGhhbmRsZSBsb2NhbGx5LCBvciB3aGVuIGl0IGlzCisgICAgICogcmVjZWl2ZWQgZnJvbSBhbm90aGVyIEhBTCBzZXJ2ZXIvY2xpZW50IG9yIGFub3RoZXIgcHJvY2Vzcy4gQSByYXcKKyAgICAgKiBidWZmZXIgaGFuZGxlIG11c3Qgbm90IGJlIHVzZWQgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzCisgICAgICogYnVmZmVyLiBJdCBtdXN0IGJlIGltcG9ydGVkIHRvIGNyZWF0ZSBhbiBpbXBvcnRlZCBoYW5kbGUgZmlyc3QuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYXQgbGVhc3QgdmFsaWRhdGUgdGhlIHJhdyBoYW5kbGUgYmVmb3JlIGNyZWF0aW5nIHRoZQorICAgICAqIGltcG9ydGVkIGhhbmRsZS4gSXQgbXVzdCBhbHNvIHN1cHBvcnQgaW1wb3J0aW5nIHRoZSBzYW1lIHJhdyBoYW5kbGUKKyAgICAgKiBtdWx0aXBsZSB0aW1lcyB0byBjcmVhdGUgbXVsdGlwbGUgaW1wb3J0ZWQgaGFuZGxlcy4gVGhlIGltcG9ydGVkIGhhbmRsZQorICAgICAqIG11c3QgYmUgY29uc2lkZXJlZCB2YWxpZCBldmVyeXdoZXJlIGluIHRoZSBwcm9jZXNzLCBpbmNsdWRpbmcgaW4KKyAgICAgKiBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBtYXBwZXIuCisgICAgICoKKyAgICAgKiBCZWNhdXNlIG9mIHBhc3N0aHJvdWdoIEhBTHMsIGEgcmF3IGJ1ZmZlciBoYW5kbGUgcmVjZWl2ZWQgZnJvbSBhIEhBTAorICAgICAqIG1heSBhY3R1YWxseSBoYXZlIGJlZW4gaW1wb3J0ZWQgaW4gdGhlIHByb2Nlc3MuIGltcG9ydEJ1ZmZlciBtdXN0IHRyZWF0CisgICAgICogc3VjaCBhIGhhbmRsZSBhcyBpZiBpdCBpcyByYXcgYW5kIG11c3Qgbm90IHJldHVybiBCQURfQlVGRkVSLiBUaGUKKyAgICAgKiByZXR1cm5lZCBoYW5kbGUgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgaW5wdXQgaGFuZGxlIGFzIHVzdWFsLCBhbmQKKyAgICAgKiBmcmVlQnVmZmVyIG11c3QgYmUgY2FsbGVkIG9uIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByYXdIYW5kbGUgaXMgdGhlIHJhdyBidWZmZXIgaGFuZGxlIHRvIGltcG9ydC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIHJhdyBoYW5kbGUgaXMgaW52YWxpZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSByYXcgaGFuZGxlIGNhbm5vdCBiZSBpbXBvcnRlZCBhdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdGltZS4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBpcyB0aGUgaW1wb3J0ZWQgYnVmZmVyIGhhbmRsZSBhbmQgaGFzIHRoZSB0eXBlCisgICAgICogICAgICAgICBidWZmZXJfaGFuZGxlX3QuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGltcG9ydEJ1ZmZlcihoYW5kbGUgcmF3SGFuZGxlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBwb2ludGVyIGJ1ZmZlcik7CisKKyAgICAvKioKKyAgICAgKiBGcmVlcyBhIGJ1ZmZlciBoYW5kbGUuIEJ1ZmZlciBoYW5kbGVzIHJldHVybmVkIGJ5IGltcG9ydEJ1ZmZlciBtdXN0IGJlCisgICAgICogZnJlZWQgd2l0aCB0aGlzIGZ1bmN0aW9uIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBmcmVlIHVwIGFsbCByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IGltcG9ydEJ1ZmZlciBmb3IKKyAgICAgKiB0aGUgaW1wb3J0ZWQgaGFuZGxlLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGltcG9ydGVkIGhhbmRsZSB3YXMgY3JlYXRlZAorICAgICAqIHdpdGggbmF0aXZlX2hhbmRsZV9jcmVhdGUsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYWxsIG5hdGl2ZV9oYW5kbGVfY2xvc2UKKyAgICAgKiBhbmQgbmF0aXZlX2hhbmRsZV9kZWxldGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIGJ1ZmZlciBpcyBpbnZhbGlkLgorICAgICAqLworICAgIEBleGl0CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGZyZWVCdWZmZXIocG9pbnRlciBidWZmZXIpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogTG9ja3MgdGhlIGdpdmVuIGJ1ZmZlciBmb3IgdGhlIHNwZWNpZmllZCBDUFUgdXNhZ2UuCisgICAgICoKKyAgICAgKiBMb2NraW5nIHRoZSBzYW1lIGJ1ZmZlciBzaW11bHRhbmVvdXNseSBmcm9tIG11bHRpcGxlIHRocmVhZHMgaXMKKyAgICAgKiBwZXJtaXR0ZWQsIGJ1dCBpZiBhbnkgb2YgdGhlIHRocmVhZHMgYXR0ZW1wdCB0byBsb2NrIHRoZSBidWZmZXIgZm9yCisgICAgICogd3JpdGluZywgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCwgZXhjZXB0IHRoYXQgaXQgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBwcm9jZXNzIHRlcm1pbmF0aW9uIG9yIGJsb2NrIHRoZSBjbGllbnQgaW5kZWZpbml0ZWx5LiBMZWF2aW5nIHRoZQorICAgICAqIGJ1ZmZlciBjb250ZW50IGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUgb3IgcmV0dXJuaW5nIGFuIGVycm9yIGFyZSBib3RoCisgICAgICogYWNjZXB0YWJsZS4KKyAgICAgKgorICAgICAqIFRoZSBjbGllbnQgbXVzdCBub3QgbW9kaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBidWZmZXIgb3V0c2lkZSBvZgorICAgICAqIGFjY2Vzc1JlZ2lvbiwgYW5kIHRoZSBkZXZpY2UgbmVlZCBub3QgZ3VhcmFudGVlIHRoYXQgY29udGVudCBvdXRzaWRlIG9mCisgICAgICogYWNjZXNzUmVnaW9uIGlzIHZhbGlkIGZvciByZWFkaW5nLiBUaGUgcmVzdWx0IG9mIHJlYWRpbmcgb3Igd3JpdGluZworICAgICAqIG91dHNpZGUgb2YgYWNjZXNzUmVnaW9uIGlzIHVuZGVmaW5lZCwgZXhjZXB0IHRoYXQgaXQgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBwcm9jZXNzIHRlcm1pbmF0aW9uLgorICAgICAqCisgICAgICogZGF0YSB3aWxsIGJlIGZpbGxlZCB3aXRoIGEgcG9pbnRlciB0byB0aGUgbG9ja2VkIGJ1ZmZlciBtZW1vcnkuIFRoaXMKKyAgICAgKiBhZGRyZXNzIHdpbGwgcmVwcmVzZW50IHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGVudGlyZSBidWZmZXIsIGV2ZW4KKyAgICAgKiBpZiBhY2Nlc3NSZWdpb24gZG9lcyBub3QgYmVnaW4gYXQgdGhlIHRvcC1sZWZ0IGNvcm5lci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byBsb2NrLgorICAgICAqIEBwYXJhbSBjcHVVc2FnZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUgQ1BVIHVzYWdlIGZsYWdzIHRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGFjY2Vzc1JlZ2lvbiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyIHRoYXQgdGhlIGNsaWVudAorICAgICAqICAgICAgICBpbnRlbmRzIHRvIGFjY2Vzcy4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdCwgd2hpY2ggd2lsbCBiZQorICAgICAqICAgICAgICBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgZm9yIHRoZSBtYXBwZXIgdG8gbG9jayB0aGUgYnVmZmVyLiBJZgorICAgICAqICAgICAgICBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gbG9jaywgYWNxdWlyZUZlbmNlIGlzIGVtcHR5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGNwdVVzYWdlIGlzIDAsIGNvbnRhaW5zIG5vbi1DUFUgdXNhZ2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBidWZmZXIgY2Fubm90IGJlIGxvY2tlZCBhdCB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwgYnV0IGxvY2tpbmcgbWF5IHN1Y2NlZWQgYXQgYSBmdXR1cmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gZGF0YSBpcyBhIENQVS1hY2Nlc3NpYmxlIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBkYXRhLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJ1bmxvY2siKQorICAgIGxvY2socG9pbnRlciBidWZmZXIsCisgICAgICAgICBiaXRmaWVsZDxCdWZmZXJVc2FnZT4gY3B1VXNhZ2UsCisgICAgICAgICBSZWN0IGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgIGhhbmRsZSBhY3F1aXJlRmVuY2UpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgcG9pbnRlciBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgbGFyZ2VseSB0aGUgc2FtZSBhcyBsb2NrKCksIGV4Y2VwdCB0aGF0IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEKKyAgICAgKiBwb2ludGVyIGRpcmVjdGx5IHRvIHRoZSBidWZmZXIgZGF0YSwgaXQgcmV0dXJucyBhbiBZQ2JDckxheW91dCBzdHJ1Y3QKKyAgICAgKiBkZXNjcmliaW5nIGhvdyB0byBhY2Nlc3MgdGhlIGRhdGEgcGxhbmVzLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IHdvcmsgb24gYnVmZmVycyB3aXRoIFBpeGVsRm9ybWF0OjpZQ2JDcl8qXzg4OCBpZgorICAgICAqIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLCBhcyB3ZWxsIGFzIHdpdGggYW55IG90aGVyIGZvcm1hdHMgcmVxdWVzdGVkIGJ5CisgICAgICogbXVsdGltZWRpYSBjb2RlY3Mgd2hlbiB0aGV5IGFyZSBjb25maWd1cmVkIHdpdGggYQorICAgICAqIGZsZXhpYmxlLVlVVi1jb21wYXRpYmxlIGNvbG9yIGZvcm1hdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byBsb2NrLgorICAgICAqIEBwYXJhbSBjcHVVc2FnZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUgQ1BVIHVzYWdlIGZsYWdzIHRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGFjY2Vzc1JlZ2lvbiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyIHRoYXQgdGhlIGNsaWVudAorICAgICAqICAgICAgICBpbnRlbmRzIHRvIGFjY2Vzcy4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdCwgd2hpY2ggd2lsbCBiZQorICAgICAqICAgICAgICBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgZm9yIHRoZSBtYXBwZXIgdG8gbG9jayB0aGUgYnVmZmVyLiBJZgorICAgICAqICAgICAgICBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gbG9jaywgYWNxdWlyZUZlbmNlIGlzIGVtcHR5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGNwdVVzYWdlIGlzIDAsIGNvbnRhaW5zIG5vbi1DUFUgdXNhZ2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBidWZmZXIgY2Fubm90IGJlIGxvY2tlZCBhdCB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwgYnV0IGxvY2tpbmcgbWF5IHN1Y2NlZWQgYXQgYSBmdXR1cmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5b3V0IGlzIHRoZSBkYXRhIGxheW91dCBvZiB0aGUgYnVmZmVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJ1bmxvY2siKQorICAgIGxvY2tZQ2JDcihwb2ludGVyIGJ1ZmZlciwKKyAgICAgICAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IGNwdVVzYWdlLAorICAgICAgICAgICAgICBSZWN0IGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgaGFuZGxlIGFjcXVpcmVGZW5jZSkKKyAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCBsYXlvdXQpOworCisgICAgLyoqCisgICAgICogVW5sb2NrcyBhIGJ1ZmZlciB0byBpbmRpY2F0ZSBhbGwgQ1BVIGFjY2Vzc2VzIHRvIHRoZSBidWZmZXIgaGF2ZQorICAgICAqIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byB1bmxvY2suCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgICAgICAgICAgQkFEX0JVRkZFUiB3aGVuIHRoZSBidWZmZXIgaXMgaW52YWxpZCBvciBub3QgbG9ja2VkLgorICAgICAqIEByZXR1cm4gcmVsZWFzZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGEgc3luYyBmZW5jZSBvYmplY3QuIFRoZSBzeW5jIGZlbmNlCisgICAgICogICAgICAgICBvYmplY3Qgd2lsbCBiZSBzaWduYWxlZCB3aGVuIHRoZSBtYXBwZXIgaGFzIGNvbXBsZXRlZCBhbnkKKyAgICAgKiAgICAgICAgIHBlbmRpbmcgd29yay4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgdW5sb2NrKHBvaW50ZXIgYnVmZmVyKQorICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgIGhhbmRsZSByZWxlYXNlRmVuY2UpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3ZDk2NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDAgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHZlbmRvcjogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJHcmFsbG9jTWFwcGVyLmNwcCIsICJHcmFsbG9jME1hcHBlci5jcHAiLCAiR3JhbGxvYzFNYXBwZXIuY3BwIl0sCisgICAgY3BwZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9oZWFkZXJzIHsKKyAgICBuYW1lOiAibGliZ3JhbGxvY21hcHBlcmluY2x1ZGVzIiwKKyAgICB2ZW5kb3I6IHRydWUsCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzBNYXBwZXIuY3BwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGY1MDE2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR3JhbGxvYzBNYXBwZXIiCisKKyNpbmNsdWRlICJHcmFsbG9jME1hcHBlci5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworR3JhbGxvYzBNYXBwZXI6OkdyYWxsb2MwTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtTW9kdWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3JhbGxvY19tb2R1bGVfdCo+KG1vZHVsZSkpLAorICAgICAgbU1pbm9yKG1vZHVsZS0+bW9kdWxlX2FwaV92ZXJzaW9uICYgMHhmZikgeworICAgIG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA9IGZhbHNlOworICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSBmYWxzZTsKKyAgICBtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSA9IGZhbHNlOworfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6cmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIHJldHVybiByZXN1bHQgPyBFcnJvcjo6QkFEX0JVRkZFUiA6IEVycm9yOjpOT05FOworfQorCit2b2lkIEdyYWxsb2MwTWFwcGVyOjp1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICBtTW9kdWxlLT51bnJlZ2lzdGVyQnVmZmVyKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSk7Cit9CisKK0Vycm9yIEdyYWxsb2MwTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgeworICAgIGludCByZXN1bHQ7CisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPmxvY2tBc3luYykgeworICAgICAgICAvLyBEdXAgZmVuY2VGZCBhcyBpdCBpcyBnb2luZyB0byBiZSBvd25lZCBieSBncmFsbG9jLiAgTm90ZSB0aGF0IGl0IGlzCisgICAgICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgZmVuY2VGZCA9IGR1cChmZW5jZUZkKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwgYWNjZXNzUmVnaW9uLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhLCBmZW5jZUZkKTsKKyAgICB9IGVsc2UgeworICAgICAgICB3YWl0RmVuY2VGZChmZW5jZUZkLCAiR3JhbGxvYzBNYXBwZXI6OmxvY2siKTsKKworICAgICAgICByZXN1bHQgPSBtTW9kdWxlLT5sb2NrKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLCBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmZGF0YSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0RGF0YSA9IGRhdGE7CisgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICB9Cit9CisKK0Vycm9yIEdyYWxsb2MwTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSB7CisgICAgaW50IHJlc3VsdDsKKyAgICBhbmRyb2lkX3ljYmNyIHljYmNyID0ge307CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPmxvY2tBc3luY195Y2JjcikgeworICAgICAgICAvLyBEdXAgZmVuY2VGZCBhcyBpdCBpcyBnb2luZyB0byBiZSBvd25lZCBieSBncmFsbG9jLiAgTm90ZSB0aGF0IGl0IGlzCisgICAgICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgZmVuY2VGZCA9IGR1cChmZW5jZUZkKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jX3ljYmNyKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsICZ5Y2JjciwgZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2FpdEZlbmNlRmQoZmVuY2VGZCwgIkdyYWxsb2MwTWFwcGVyOjpsb2NrWUNiQ3IiKTsKKworICAgICAgICBpZiAobU1vZHVsZS0+bG9ja195Y2JjcikgeworICAgICAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja195Y2JjcihtTW9kdWxlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmeWNiY3IpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gLUVJTlZBTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0TGF5b3V0LT55ID0geWNiY3IueTsKKyAgICAgICAgb3V0TGF5b3V0LT5jYiA9IHljYmNyLmNiOworICAgICAgICBvdXRMYXlvdXQtPmNyID0geWNiY3IuY3I7CisgICAgICAgIG91dExheW91dC0+eVN0cmlkZSA9IHljYmNyLnlzdHJpZGU7CisgICAgICAgIG91dExheW91dC0+Y1N0cmlkZSA9IHljYmNyLmNzdHJpZGU7CisgICAgICAgIG91dExheW91dC0+Y2hyb21hU3RlcCA9IHljYmNyLmNocm9tYV9zdGVwOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6dW5sb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGludCByZXN1bHQ7CisgICAgaW50IGZlbmNlRmQgPSAtMTsKKyAgICBpZiAobU1pbm9yID49IDMgJiYgbU1vZHVsZS0+dW5sb2NrQXN5bmMpIHsKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+dW5sb2NrQXN5bmMobU1vZHVsZSwgYnVmZmVySGFuZGxlLCAmZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+dW5sb2NrKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAvLyB3ZSBhbHdheXMgb3duIHRoZSBmZW5jZUZkIGV2ZW4gd2hlbiB1bmxvY2sgZmFpbGVkCisgICAgICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgICAgIGNsb3NlKGZlbmNlRmQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgKm91dEZlbmNlRmQgPSBmZW5jZUZkOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5MmE2OQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzBNQVBQRVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MwTUFQUEVSX0gKKworI2luY2x1ZGUgIkdyYWxsb2NNYXBwZXIuaCIKKworI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NsYXNzIEdyYWxsb2MwTWFwcGVyIDogcHVibGljIEdyYWxsb2NNYXBwZXIgeworICAgcHVibGljOgorICAgIEdyYWxsb2MwTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworCisgICBwcml2YXRlOgorICAgIEVycm9yIHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIG92ZXJyaWRlOworICAgIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIG92ZXJyaWRlOworICAgIEVycm9yIHVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpIG92ZXJyaWRlOworCisgICAgY29uc3QgZ3JhbGxvY19tb2R1bGVfdCogbU1vZHVsZTsKKyAgICB1aW50OF90IG1NaW5vcjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzBNQVBQRVJfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MxTWFwcGVyLmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlNWFkYwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MxTWFwcGVyIgorCisjaW5jbHVkZSAiR3JhbGxvYzFNYXBwZXIuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKKworR3JhbGxvYzFNYXBwZXI6OkdyYWxsb2MxTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtRGV2aWNlKG51bGxwdHIpLCBtRGlzcGF0Y2goKSB7CisgICAgaW50IHJlc3VsdCA9IGdyYWxsb2MxX29wZW4obW9kdWxlLCAmbURldmljZSk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gb3BlbiBncmFsbG9jMSBkZXZpY2U6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcigtcmVzdWx0KSk7CisgICAgfQorCisgICAgaW5pdENhcGFiaWxpdGllcygpOworICAgIGluaXREaXNwYXRjaCgpOworfQorCitHcmFsbG9jMU1hcHBlcjo6fkdyYWxsb2MxTWFwcGVyKCkgeworICAgIGdyYWxsb2MxX2Nsb3NlKG1EZXZpY2UpOworfQorCit2b2lkIEdyYWxsb2MxTWFwcGVyOjppbml0Q2FwYWJpbGl0aWVzKCkgeworICAgIG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA9IHRydWU7CisgICAgbUNhcGFiaWxpdGllcy5sYXllcmVkQnVmZmVycyA9IGZhbHNlOworICAgIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlID0gZmFsc2U7CisKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBjYXBhYmlsaXRpZXMoY291bnQpOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIGNhcGFiaWxpdGllcy5kYXRhKCkpOworICAgIGNhcGFiaWxpdGllcy5yZXNpemUoY291bnQpOworCisgICAgZm9yIChhdXRvIGNhcGFiaWxpdHkgOiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgc3dpdGNoIChjYXBhYmlsaXR5KSB7CisgICAgICAgICAgICBjYXNlIEdSQUxMT0MxX0NBUEFCSUxJVFlfTEFZRVJFRF9CVUZGRVJTOgorICAgICAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBHUkFMTE9DMV9DQVBBQklMSVRZX1JFTEVBU0VfSU1QTFlfREVMRVRFOgorICAgICAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIEdyYWxsb2MxTWFwcGVyOjppbml0RGlzcGF0Y2goZ3JhbGxvYzFfZnVuY3Rpb25fZGVzY3JpcHRvcl90IGRlc2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCogb3V0UGZuKSB7CisgICAgYXV0byBwZm4gPSBtRGV2aWNlLT5nZXRGdW5jdGlvbihtRGV2aWNlLCBkZXNjKTsKKyAgICBpZiAoIXBmbikgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gZ2V0IGdyYWxsb2MxIGZ1bmN0aW9uICVkIiwgZGVzYyk7CisgICAgfQorCisgICAgKm91dFBmbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8VD4ocGZuKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6aW5pdERpc3BhdGNoKCkgeworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9SRVRBSU4sICZtRGlzcGF0Y2gucmV0YWluKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fUkVMRUFTRSwgJm1EaXNwYXRjaC5yZWxlYXNlKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fR0VUX05VTV9GTEVYX1BMQU5FUywKKyAgICAgICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXROdW1GbGV4UGxhbmVzKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fTE9DSywgJm1EaXNwYXRjaC5sb2NrKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fTE9DS19GTEVYLCAmbURpc3BhdGNoLmxvY2tGbGV4KTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fVU5MT0NLLCAmbURpc3BhdGNoLnVubG9jayk7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjp0b0Vycm9yKGludDMyX3QgZXJyb3IpIHsKKyAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9ORToKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9CQURfREVTQ1JJUFRPUjoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0RFU0NSSVBUT1I7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRToKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0JVRkZFUjsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9OT1RfU0hBUkVEOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT05FOyAgLy8gdGhpcyBpcyBmaW5lCisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9fUkVTT1VSQ0VTOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfVU5ERUZJTkVEOgorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpVTlNVUFBPUlRFRDsKKyAgICB9Cit9CisKK2Jvb2wgR3JhbGxvYzFNYXBwZXI6OnRvWUNiQ3JMYXlvdXQoY29uc3QgYW5kcm9pZF9mbGV4X2xheW91dCYgZmxleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgeworICAgIC8vIG11c3QgYmUgWUNiQ3IKKyAgICBpZiAoZmxleC5mb3JtYXQgIT0gRkxFWF9GT1JNQVRfWUNiQ3IgfHwgZmxleC5udW1fcGxhbmVzIDwgMykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgY29uc3QgYXV0byYgcGxhbmUgPSBmbGV4LnBsYW5lc1tpXTsKKyAgICAgICAgLy8gbXVzdCBoYXZlIDgtYml0IGRlcHRoCisgICAgICAgIGlmIChwbGFuZS5iaXRzX3Blcl9jb21wb25lbnQgIT0gOCB8fCBwbGFuZS5iaXRzX3VzZWQgIT0gOCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW5lLmNvbXBvbmVudCA9PSBGTEVYX0NPTVBPTkVOVF9ZKSB7CisgICAgICAgICAgICAvLyBZIG11c3Qgbm90IGJlIGludGVybGVhdmVkCisgICAgICAgICAgICBpZiAocGxhbmUuaF9pbmNyZW1lbnQgIT0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENiIGFuZCBDciBjYW4gYmUgaW50ZXJsZWF2ZWQKKyAgICAgICAgICAgIGlmIChwbGFuZS5oX2luY3JlbWVudCAhPSAxICYmIHBsYW5lLmhfaW5jcmVtZW50ICE9IDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBsYW5lLnZfaW5jcmVtZW50KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZmxleC5wbGFuZXNbMF0uY29tcG9uZW50ICE9IEZMRVhfQ09NUE9ORU5UX1kgfHwKKyAgICAgICAgZmxleC5wbGFuZXNbMV0uY29tcG9uZW50ICE9IEZMRVhfQ09NUE9ORU5UX0NiIHx8CisgICAgICAgIGZsZXgucGxhbmVzWzJdLmNvbXBvbmVudCAhPSBGTEVYX0NPTVBPTkVOVF9DcikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3QgYXV0byYgeSA9IGZsZXgucGxhbmVzWzBdOworICAgIGNvbnN0IGF1dG8mIGNiID0gZmxleC5wbGFuZXNbMV07CisgICAgY29uc3QgYXV0byYgY3IgPSBmbGV4LnBsYW5lc1syXTsKKworICAgIGlmIChjYi5oX2luY3JlbWVudCAhPSBjci5oX2luY3JlbWVudCB8fCBjYi52X2luY3JlbWVudCAhPSBjci52X2luY3JlbWVudCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgb3V0TGF5b3V0LT55ID0geS50b3BfbGVmdDsKKyAgICBvdXRMYXlvdXQtPmNiID0gY2IudG9wX2xlZnQ7CisgICAgb3V0TGF5b3V0LT5jciA9IGNyLnRvcF9sZWZ0OworICAgIG91dExheW91dC0+eVN0cmlkZSA9IHkudl9pbmNyZW1lbnQ7CisgICAgb3V0TGF5b3V0LT5jU3RyaWRlID0gY2Iudl9pbmNyZW1lbnQ7CisgICAgb3V0TGF5b3V0LT5jaHJvbWFTdGVwID0gY2IuaF9pbmNyZW1lbnQ7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZ3JhbGxvYzFfcmVjdF90IEdyYWxsb2MxTWFwcGVyOjphc0dyYWxsb2MxUmVjdChjb25zdCBJTWFwcGVyOjpSZWN0JiByZWN0KSB7CisgICAgcmV0dXJuIGdyYWxsb2MxX3JlY3RfdHtyZWN0LmxlZnQsIHJlY3QudG9wLCByZWN0LndpZHRoLCByZWN0LmhlaWdodH07Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpyZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgcmV0dXJuIHRvRXJyb3IobURpc3BhdGNoLnJldGFpbihtRGV2aWNlLCBidWZmZXJIYW5kbGUpKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6dW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgbURpc3BhdGNoLnJlbGVhc2UobURldmljZSwgYnVmZmVySGFuZGxlKTsKK30KKworRXJyb3IgR3JhbGxvYzFNYXBwZXI6OmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSB7CisgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25zdCB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgY3B1VXNhZ2UgJiB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyk7CisgICAgY29uc3QgYXV0byBhY2Nlc3NSZWN0ID0gYXNHcmFsbG9jMVJlY3QoYWNjZXNzUmVnaW9uKTsKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLmxvY2sobURldmljZSwgYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXJVc2FnZSwgJmFjY2Vzc1JlY3QsICZkYXRhLCBmZW5jZUZkKTsKKworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXREYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSB7CisgICAgLy8gcHJlcGFyZSBmbGV4IGxheW91dAorICAgIGFuZHJvaWRfZmxleF9sYXlvdXQgZmxleCA9IHt9OworICAgIGludDMyX3QgZXJyb3IgPQorICAgICAgICBtRGlzcGF0Y2guZ2V0TnVtRmxleFBsYW5lcyhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmbGV4Lm51bV9wbGFuZXMpOworICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKKyAgICB9CisgICAgc3RkOjp2ZWN0b3I8YW5kcm9pZF9mbGV4X3BsYW5lX3Q+IGZsZXhQbGFuZXMoZmxleC5udW1fcGxhbmVzKTsKKyAgICBmbGV4LnBsYW5lcyA9IGZsZXhQbGFuZXMuZGF0YSgpOworCisgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25zdCB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgY3B1VXNhZ2UgJiB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyk7CisgICAgY29uc3QgYXV0byBhY2Nlc3NSZWN0ID0gYXNHcmFsbG9jMVJlY3QoYWNjZXNzUmVnaW9uKTsKKyAgICBlcnJvciA9IG1EaXNwYXRjaC5sb2NrRmxleChtRGV2aWNlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBjb25zdW1lclVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhY2Nlc3NSZWN0LCAmZmxleCwgZmVuY2VGZCk7CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUgJiYgIXRvWUNiQ3JMYXlvdXQoZmxleCwgb3V0TGF5b3V0KSkgeworICAgICAgICBBTE9HRCgidW5hYmxlIHRvIGNvbnZlcnQgYW5kcm9pZF9mbGV4X2xheW91dCB0byBZQ2JDckxheW91dCIpOworCisgICAgICAgIC8vIHVuZG8gdGhlIGxvY2sKKyAgICAgICAgZmVuY2VGZCA9IC0xOworICAgICAgICBtRGlzcGF0Y2gudW5sb2NrKG1EZXZpY2UsIGJ1ZmZlckhhbmRsZSwgJmZlbmNlRmQpOworICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yID0gR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjp1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRGZW5jZUZkKSB7CisgICAgaW50IGZlbmNlRmQgPSAtMTsKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLnVubG9jayhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRGZW5jZUZkID0gZmVuY2VGZDsKKyAgICB9IGVsc2UgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAvLyB3ZSBhbHdheXMgb3duIHRoZSBmZW5jZUZkIGV2ZW4gd2hlbiB1bmxvY2sgZmFpbGVkCisgICAgICAgIGNsb3NlKGZlbmNlRmQpOworICAgIH0KKworICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MmFmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MxTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DMU1BUFBFUl9ICisKKyNpbmNsdWRlICJHcmFsbG9jTWFwcGVyLmgiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgR3JhbGxvYzFNYXBwZXIgOiBwdWJsaWMgR3JhbGxvY01hcHBlciB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYzFNYXBwZXIoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfkdyYWxsb2MxTWFwcGVyKCk7CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBpbml0Q2FwYWJpbGl0aWVzKCk7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGluaXREaXNwYXRjaChncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKTsKKyAgICB2b2lkIGluaXREaXNwYXRjaCgpOworCisgICAgc3RhdGljIEVycm9yIHRvRXJyb3IoaW50MzJfdCBlcnJvcik7CisgICAgc3RhdGljIGJvb2wgdG9ZQ2JDckxheW91dChjb25zdCBhbmRyb2lkX2ZsZXhfbGF5b3V0JiBmbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCk7CisgICAgc3RhdGljIGdyYWxsb2MxX3JlY3RfdCBhc0dyYWxsb2MxUmVjdChjb25zdCBJTWFwcGVyOjpSZWN0JiByZWN0KTsKKworICAgIEVycm9yIHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIG92ZXJyaWRlOworICAgIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIG92ZXJyaWRlOworICAgIEVycm9yIHVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpIG92ZXJyaWRlOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBHUkFMTE9DMV9QRk5fUkVUQUlOIHJldGFpbjsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFTEVBU0UgcmVsZWFzZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX0dFVF9OVU1fRkxFWF9QTEFORVMgZ2V0TnVtRmxleFBsYW5lczsKKyAgICAgICAgR1JBTExPQzFfUEZOX0xPQ0sgbG9jazsKKyAgICAgICAgR1JBTExPQzFfUEZOX0xPQ0tfRkxFWCBsb2NrRmxleDsKKyAgICAgICAgR1JBTExPQzFfUEZOX1VOTE9DSyB1bmxvY2s7CisgICAgfSBtRGlzcGF0Y2g7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MxTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NCdWZmZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1YWIwNAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DQlVGRkVSREVTQ1JJUFRPUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQ0JVRkZFUkRFU0NSSVBUT1JfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworLyoqCisgKiBCdWZmZXJEZXNjcmlwdG9yIGlzIGNyZWF0ZWQgYnkgSU1hcHBlciBhbmQgY29uc3VtZWQgYnkgSUFsbG9jYXRvci4gSXQgaXMKKyAqIHZlcnNpb25lZCBzbyB0aGF0IElNYXBwZXIgYW5kIElBbGxvY2F0b3IgY2FuIGJlIHVwZGF0ZWQgaW5kZXBlbmRlbnRseS4KKyAqLworY29uc3RleHByIHVpbnQzMl90IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yU2l6ZSA9IDc7Citjb25zdGV4cHIgdWludDMyX3QgZ3JhbGxvY0J1ZmZlckRlc2NyaXB0b3JNYWdpY1ZlcnNpb24gPSAoKDB4OTQ4NyA8PCAxNikgfCAwKTsKKworaW5saW5lIEJ1ZmZlckRlc2NyaXB0b3IgZ3JhbGxvY0VuY29kZUJ1ZmZlckRlc2NyaXB0b3IoCisgICAgY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSB7CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIGRlc2NyaXB0b3IucmVzaXplKGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yU2l6ZSk7CisgICAgZGVzY3JpcHRvclswXSA9IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yTWFnaWNWZXJzaW9uOworICAgIGRlc2NyaXB0b3JbMV0gPSBkZXNjcmlwdG9ySW5mby53aWR0aDsKKyAgICBkZXNjcmlwdG9yWzJdID0gZGVzY3JpcHRvckluZm8uaGVpZ2h0OworICAgIGRlc2NyaXB0b3JbM10gPSBkZXNjcmlwdG9ySW5mby5sYXllckNvdW50OworICAgIGRlc2NyaXB0b3JbNF0gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGVzY3JpcHRvckluZm8uZm9ybWF0KTsKKyAgICBkZXNjcmlwdG9yWzVdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLnVzYWdlKTsKKyAgICBkZXNjcmlwdG9yWzZdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLnVzYWdlID4+IDMyKTsKKworICAgIHJldHVybiBkZXNjcmlwdG9yOworfQorCitpbmxpbmUgYm9vbCBncmFsbG9jRGVjb2RlQnVmZmVyRGVzY3JpcHRvcigKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLAorICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvKiBvdXREZXNjcmlwdG9ySW5mbykgeworICAgIGlmIChkZXNjcmlwdG9yLnNpemUoKSAhPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvclNpemUgfHwKKyAgICAgICAgZGVzY3JpcHRvclswXSAhPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvck1hZ2ljVmVyc2lvbikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgKm91dERlc2NyaXB0b3JJbmZvID0gSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm97CisgICAgICAgIGRlc2NyaXB0b3JbMV0sCisgICAgICAgIGRlc2NyaXB0b3JbMl0sCisgICAgICAgIGRlc2NyaXB0b3JbM10sCisgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PihkZXNjcmlwdG9yWzRdKSwKKyAgICAgICAgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihkZXNjcmlwdG9yWzZdKSA8PCAzMikgfCBkZXNjcmlwdG9yWzVdLAorICAgIH07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DQlVGRkVSREVTQ1JJUFRPUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE2MTQzZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR3JhbGxvY01hcHBlclBhc3N0aHJvdWdoIgorCisjaW5jbHVkZSAiR3JhbGxvY01hcHBlci5oIgorCisjaW5jbHVkZSAiR3JhbGxvYzBNYXBwZXIuaCIKKyNpbmNsdWRlICJHcmFsbG9jMU1hcHBlci5oIgorI2luY2x1ZGUgIkdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCituYW1lc3BhY2UgeworCitjbGFzcyBSZWdpc3RlcmVkSGFuZGxlUG9vbCB7CisgICBwdWJsaWM6CisgICAgYm9vbCBhZGQoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICByZXR1cm4gbUhhbmRsZXMuaW5zZXJ0KGJ1ZmZlckhhbmRsZSkuc2Vjb25kOworICAgIH0KKworICAgIG5hdGl2ZV9oYW5kbGVfdCogcG9wKHZvaWQqIGJ1ZmZlcikgeworICAgICAgICBhdXRvIGJ1ZmZlckhhbmRsZSA9IHN0YXRpY19jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlcik7CisKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmVyYXNlKGJ1ZmZlckhhbmRsZSkgPT0gMSA/IGJ1ZmZlckhhbmRsZSA6IG51bGxwdHI7CisgICAgfQorCisgICAgYnVmZmVyX2hhbmRsZV90IGdldChjb25zdCB2b2lkKiBidWZmZXIpIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBzdGF0aWNfY2FzdDxidWZmZXJfaGFuZGxlX3Q+KGJ1ZmZlcik7CisKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmNvdW50KGJ1ZmZlckhhbmRsZSkgPT0gMSA/IGJ1ZmZlckhhbmRsZSA6IG51bGxwdHI7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIHN0ZDo6bXV0ZXggbU11dGV4OworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxidWZmZXJfaGFuZGxlX3Q+IG1IYW5kbGVzOworfTsKKworLy8gR3JhcGhpY0J1ZmZlck1hcHBlciBpcyBleHBlY3RlZCB0byBiZSB2YWxpZCAoYW5kIGxlYWtlZCkgZHVyaW5nIHByb2Nlc3MKKy8vIHRlcm1pbmF0aW9uLiAgV2UgbmVlZCB0byBtYWtlIHN1cmUgSU1hcHBlciwgYW5kIGluIHR1cm4sIGdSZWdpc3RlcmVkSGFuZGxlcworLy8gYXJlIHZhbGlkIGFzIHdlbGwuICBDcmVhdGUgdGhlIHJlZ2lzdGVyZWQgaGFuZGxlIHBvb2wgb24gdGhlIGhlYXAsIGFuZCBsZXQKKy8vIGl0IGxlYWsgZm9yIHNpbXBsaWNpdHkuCisvLworLy8gSG93ZXZlciwgdGhlcmUgaXMgbm8gd2F5IHRvIG1ha2Ugc3VyZSBncmFsbG9jMC9ncmFsbG9jMSBhcmUgdmFsaWQuICBBbnkgdXNlCisvLyBvZiBzdGF0aWMvZ2xvYmFsIG9iamVjdCBpbiBncmFsbG9jMC9ncmFsbG9jMSB0aGF0IG1heSBoYXZlIGJlZW4gZGVzdHJ1Y3RlZAorLy8gaXMgcG90ZW50aWFsbHkgYnJva2VuLgorUmVnaXN0ZXJlZEhhbmRsZVBvb2wqIGdSZWdpc3RlcmVkSGFuZGxlcyA9IG5ldyBSZWdpc3RlcmVkSGFuZGxlUG9vbDsKKworfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitib29sIEdyYWxsb2NNYXBwZXI6OnZhbGlkYXRlRGVzY3JpcHRvckluZm8oCisgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSBjb25zdCB7CisgICAgY29uc3QgdWludDY0X3QgdmFsaWRVc2FnZUJpdHMgPQorICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfTUFTSyB8IEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpHUFVfVEVYVFVSRSB8IEJ1ZmZlclVzYWdlOjpHUFVfUkVOREVSX1RBUkdFVCB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpDT01QT1NFUl9PVkVSTEFZIHwgQnVmZmVyVXNhZ2U6OkNPTVBPU0VSX0NMSUVOVF9UQVJHRVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6UFJPVEVDVEVEIHwgQnVmZmVyVXNhZ2U6OkNPTVBPU0VSX0NVUlNPUiB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpWSURFT19FTkNPREVSIHwgQnVmZmVyVXNhZ2U6OkNBTUVSQV9PVVRQVVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6Q0FNRVJBX0lOUFVUIHwgQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVCB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpWSURFT19ERUNPREVSIHwgQnVmZmVyVXNhZ2U6OlNFTlNPUl9ESVJFQ1RfREFUQSB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpHUFVfREFUQV9CVUZGRVIgfCBCdWZmZXJVc2FnZTo6VkVORE9SX01BU0sgfAorICAgICAgICAobUNhcGFiaWxpdGllcy5oaWdoVXNhZ2VCaXRzID8gQnVmZmVyVXNhZ2U6OlZFTkRPUl9NQVNLX0hJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxCdWZmZXJVc2FnZT4oMCkpOworCisgICAgaWYgKCFkZXNjcmlwdG9ySW5mby53aWR0aCB8fCAhZGVzY3JpcHRvckluZm8uaGVpZ2h0IHx8CisgICAgICAgICFkZXNjcmlwdG9ySW5mby5sYXllckNvdW50KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgJiYgZGVzY3JpcHRvckluZm8ubGF5ZXJDb3VudCA+IDEpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChkZXNjcmlwdG9ySW5mby5mb3JtYXQgPT0gc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+KDApKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZGVzY3JpcHRvckluZm8udXNhZ2UgJiB+dmFsaWRVc2FnZUJpdHMpIHsKKyAgICAgICAgLy8gY291bGQgbm90IGZhaWwgYXMgZ3JhbGxvYyBtYXkgdXNlIHRoZSByZXNlcnZlZCBiaXRzLi4uCisgICAgICAgIEFMT0dXKCJidWZmZXIgZGVzY3JpcHRvciB3aXRoIGludmFsaWQgdXNhZ2UgYml0cyAweCUiIFBSSXg2NCwKKyAgICAgICAgICAgICAgZGVzY3JpcHRvckluZm8udXNhZ2UgJiB+dmFsaWRVc2FnZUJpdHMpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6Y3JlYXRlRGVzY3JpcHRvcigKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGNyZWF0ZURlc2NyaXB0b3JfY2IgaGlkbF9jYikgeworICAgIGlmICh2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKGRlc2NyaXB0b3JJbmZvKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT05FLCBncmFsbG9jRW5jb2RlQnVmZmVyRGVzY3JpcHRvcihkZXNjcmlwdG9ySW5mbykpOworICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9WQUxVRSwgQnVmZmVyRGVzY3JpcHRvcigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6aW1wb3J0QnVmZmVyKGNvbnN0IGhpZGxfaGFuZGxlJiByYXdIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydEJ1ZmZlcl9jYiBoaWRsX2NiKSB7CisgICAgLy8gYmVjYXVzZSBvZiBwYXNzdGhyb3VnaCBIQUxzLCB3ZSBtdXN0IG5vdCBnZW5lcmF0ZSBhbiBlcnJvciB3aGVuCisgICAgLy8gcmF3SGFuZGxlIGhhcyBiZWVuIGltcG9ydGVkCisKKyAgICBpZiAoIXJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSA9CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvbmUocmF3SGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT19SRVNPVVJDRVMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0gcmVnaXN0ZXJCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXJIYW5kbGUpOworCisgICAgICAgIGhpZGxfY2IoZXJyb3IsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIFRoZSBuZXdseSBjbG9uZWQgaGFuZGxlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZD8gIFRoaXMgY2FuIG9ubHkgaGFwcGVuCisgICAgLy8gd2hlbiBhIGhhbmRsZSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2FzIG5hdGl2ZV9oYW5kbGVfZGVsZXRlJ2QgaW5zdGVhZAorICAgIC8vIG9mIGZyZWVCdWZmZXInZC4KKyAgICBpZiAoIWdSZWdpc3RlcmVkSGFuZGxlcy0+YWRkKGJ1ZmZlckhhbmRsZSkpIHsKKyAgICAgICAgQUxPR0UoImhhbmRsZSAlcCBoYXMgYWxyZWFkeSBiZWVuIGltcG9ydGVkOyBwb3RlbnRpYWwgZmQgbGVha2luZyIsCisgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIHVucmVnaXN0ZXJCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSkgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PX1JFU09VUkNFUywgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgYnVmZmVySGFuZGxlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3I+IEdyYWxsb2NNYXBwZXI6OmZyZWVCdWZmZXIodm9pZCogYnVmZmVyKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPnBvcChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0JVRkZFUjsKKyAgICB9CisKKyAgICB1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSkgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCit2b2lkIEdyYWxsb2NNYXBwZXI6OndhaXRGZW5jZUZkKGludCBmZW5jZUZkLCBjb25zdCBjaGFyKiBsb2duYW1lKSB7CisgICAgaWYgKGZlbmNlRmQgPCAwKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBpbnQgd2FybmluZ1RpbWVvdXQgPSAzNTAwOworICAgIGNvbnN0IGludCBlcnJvciA9IHN5bmNfd2FpdChmZW5jZUZkLCB3YXJuaW5nVGltZW91dCk7CisgICAgaWYgKGVycm9yIDwgMCAmJiBlcnJubyA9PSBFVElNRSkgeworICAgICAgICBBTE9HRSgiJXM6IGZlbmNlICVkIGRpZG4ndCBzaWduYWwgaW4gJXUgbXMiLCBsb2duYW1lLCBmZW5jZUZkLAorICAgICAgICAgICAgICB3YXJuaW5nVGltZW91dCk7CisgICAgICAgIHN5bmNfd2FpdChmZW5jZUZkLCAtMSk7CisgICAgfQorfQorCitib29sIEdyYWxsb2NNYXBwZXI6OmdldEZlbmNlRmQoY29uc3QgaGlkbF9oYW5kbGUmIGZlbmNlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGF1dG8gaGFuZGxlID0gZmVuY2VIYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgaWYgKGhhbmRsZSAmJiBoYW5kbGUtPm51bUZkcyA+IDEpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgZmVuY2UgaGFuZGxlIHdpdGggJWQgZmRzIiwgaGFuZGxlLT5udW1GZHMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgKm91dEZlbmNlRmQgPSAoaGFuZGxlICYmIGhhbmRsZS0+bnVtRmRzID09IDEpID8gaGFuZGxlLT5kYXRhWzBdIDogLTE7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2hpZGxfaGFuZGxlIEdyYWxsb2NNYXBwZXI6OmdldEZlbmNlSGFuZGxlKGludCBmZW5jZUZkLCBjaGFyKiBoYW5kbGVTdG9yYWdlKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9pbml0KGhhbmRsZVN0b3JhZ2UsIDEsIDApOworICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBmZW5jZUZkOworICAgIH0KKworICAgIHJldHVybiBoaWRsX2hhbmRsZShoYW5kbGUpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6bG9jayh2b2lkKiBidWZmZXIsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGFjcXVpcmVGZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tfY2IgaGlkbF9jYikgeworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPmdldChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9CVUZGRVIsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGludCBmZW5jZUZkOworICAgIGlmICghZ2V0RmVuY2VGZChhY3F1aXJlRmVuY2UsICZmZW5jZUZkKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfVkFMVUUsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIEVycm9yIGVycm9yID0KKyAgICAgICAgbG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBhY2Nlc3NSZWdpb24sIGZlbmNlRmQsICZkYXRhKTsKKworICAgIGhpZGxfY2IoZXJyb3IsIGRhdGEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jTWFwcGVyOjpsb2NrWUNiQ3Iodm9pZCogYnVmZmVyLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrWUNiQ3JfY2IgaGlkbF9jYikgeworICAgIFlDYkNyTGF5b3V0IGxheW91dCA9IHt9OworCisgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSA9IGdSZWdpc3RlcmVkSGFuZGxlcy0+Z2V0KGJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0JVRkZFUiwgbGF5b3V0KTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBpZiAoIWdldEZlbmNlRmQoYWNxdWlyZUZlbmNlLCAmZmVuY2VGZCkpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX1ZBTFVFLCBsYXlvdXQpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0KKyAgICAgICAgbG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBhY2Nlc3NSZWdpb24sIGZlbmNlRmQsICZsYXlvdXQpOworCisgICAgaGlkbF9jYihlcnJvciwgbGF5b3V0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6dW5sb2NrKHZvaWQqIGJ1ZmZlciwgdW5sb2NrX2NiIGhpZGxfY2IpIHsKKyAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gZ1JlZ2lzdGVyZWRIYW5kbGVzLT5nZXQoYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBFcnJvciBlcnJvciA9IHVubG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKyAgICBpZiAoZXJyb3IgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgTkFUSVZFX0hBTkRMRV9ERUNMQVJFX1NUT1JBR0UoZmVuY2VTdG9yYWdlLCAxLCAwKTsKKworICAgICAgICBoaWRsX2NiKGVycm9yLCBnZXRGZW5jZUhhbmRsZShmZW5jZUZkLCBmZW5jZVN0b3JhZ2UpKTsKKworICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoZXJyb3IsIG51bGxwdHIpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lNYXBwZXIqIEhJRExfRkVUQ0hfSU1hcHBlcihjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoR1JBTExPQ19IQVJEV0FSRV9NT0RVTEVfSUQsICZtb2R1bGUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCB0byBnZXQgZ3JhbGxvYyBtb2R1bGUiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgdWludDhfdCBtYWpvciA9IChtb2R1bGUtPm1vZHVsZV9hcGlfdmVyc2lvbiA+PiA4KSAmIDB4ZmY7CisgICAgc3dpdGNoIChtYWpvcikgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gbmV3IEdyYWxsb2MxTWFwcGVyKG1vZHVsZSk7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBuZXcgR3JhbGxvYzBNYXBwZXIobW9kdWxlKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCJ1bmtub3duIGdyYWxsb2MgbW9kdWxlIG1ham9yIHZlcnNpb24gJWQiLCBtYWpvcik7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExYWVhYQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NfTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DX01BUFBFUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPHN5c3RlbS93aW5kb3cuaD4KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBHcmFsbG9jTWFwcGVyIDogcHVibGljIElNYXBwZXIgeworICAgcHVibGljOgorICAgIC8vIElNYXBwZXIgaW50ZXJmYWNlCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZURlc2NyaXB0b3IoY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURlc2NyaXB0b3JfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0QnVmZmVyX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gZnJlZUJ1ZmZlcih2b2lkKiBidWZmZXIpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBsb2NrKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBhY3F1aXJlRmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgbG9ja19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbG9ja1lDYkNyKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja1lDYkNyX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB1bmxvY2sodm9pZCogYnVmZmVyLCB1bmxvY2tfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCB3YWl0RmVuY2VGZChpbnQgZmVuY2VGZCwgY29uc3QgY2hhciogbG9nbmFtZSk7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29sIGhpZ2hVc2FnZUJpdHM7CisgICAgICAgIGJvb2wgbGF5ZXJlZEJ1ZmZlcnM7CisgICAgICAgIGJvb2wgdW5yZWdpc3RlckltcGx5RGVsZXRlOworICAgIH0gbUNhcGFiaWxpdGllcyA9IHt9OworCisgICBwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCB2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKAorICAgICAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pIGNvbnN0OworCisgICAgLy8gUmVnaXN0ZXIgYSBidWZmZXIuICBUaGUgaGFuZGxlIGlzIGFscmVhZHkgY2xvbmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciByZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSA9IDA7CisKKyAgICAvLyBVbnJlZ2lzdGVyIGEgYnVmZmVyLiAgVGhlIGhhbmRsZSBpcyBjbG9zZWQgYW5kIGRlbGV0ZWQgYnkgdGhlCisgICAgLy8gY2FsbGVlIGlmIGFuZCBvbmx5IGlmIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlIGlzIHNldC4KKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSA9IDA7CisKKyAgICAvLyBMb2NrIGEgYnVmZmVyLiAgVGhlIGZlbmNlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBmZW5jZUZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgPSAwOworCisgICAgLy8gVW5sb2NrIGEgYnVmZmVyLiAgVGhlIHJldHVybmVkIGZlbmNlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciB1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEZlbmNlRmQpID0gMDsKKworICAgIHN0YXRpYyBib29sIGdldEZlbmNlRmQoY29uc3QgaGlkbF9oYW5kbGUmIGZlbmNlSGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpOworICAgIHN0YXRpYyBoaWRsX2hhbmRsZSBnZXRGZW5jZUhhbmRsZShpbnQgZmVuY2VGZCwgY2hhciogaGFuZGxlU3RvcmFnZSk7Cit9OworCitleHRlcm4gIkMiIElNYXBwZXIqIEhJRExfRkVUQ0hfSU1hcHBlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NfTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTliMmYzYQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMDsKKworZW51bSBFcnJvciA6IGludDMyX3QgeworICAgIE5PTkUgICAgICAgICAgICA9IDAsIC8qKiBubyBlcnJvciAqLworICAgIEJBRF9ERVNDUklQVE9SICA9IDEsIC8qKiBpbnZhbGlkIEJ1ZmZlckRlc2NyaXB0b3IgKi8KKyAgICBCQURfQlVGRkVSICAgICAgPSAyLCAvKiogaW52YWxpZCBidWZmZXIgaGFuZGxlICovCisgICAgQkFEX1ZBTFVFICAgICAgID0gMywgLyoqIGludmFsaWQgd2lkdGgsIGhlaWdodCwgZXRjLiAqLworICAgIC8qIDQgaXMgcmVzZXJ2ZWQgKi8KKyAgICBOT19SRVNPVVJDRVMgICAgPSA1LCAvKiogdGVtcG9yYXJ5IGZhaWx1cmUgZHVlIHRvIHJlc291cmNlIGNvbnRlbnRpb24gKi8KKyAgICAvKiA2IGlzIHJlc2VydmVkICovCisgICAgVU5TVVBQT1JURUQgICAgID0gNywgLyoqIHBlcm1hbmVudCBmYWlsdXJlICovCit9OworCisvKioKKyAqIEEgYnVmZmVyIGRlc2NyaXB0b3IgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBvcGFxdWUgZGF0YSByZXR1cm5lZCBieQorICogY3JlYXRlRGVzY3JpcHRvci4gSXQgZGVzY3JpYmVzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgYnVmZmVyIGFuZCBpcyBjb25zdW1lZAorICogYnkgdGhlIGFsbG9jYXRvci4KKyAqLwordHlwZWRlZiB2ZWM8dWludDMyX3Q+IEJ1ZmZlckRlc2NyaXB0b3I7CisKKy8qKgorICogU3RydWN0dXJlIGZvciBkZXNjcmliaW5nIFlDYkNyIGZvcm1hdHMgZm9yIGNvbnN1bXB0aW9uIGJ5IGFwcGxpY2F0aW9ucy4KKyAqIFRoaXMgaXMgdXNlZCB3aXRoIFBpeGVsRm9ybWF0OjpZQ0JDUl8qXzg4OC4KKyAqCisgKiBCdWZmZXIgY2hyb21hIHN1YnNhbXBsaW5nIGlzIGRlZmluZWQgaW4gdGhlIGZvcm1hdC4KKyAqIGUuZy4gUGl4ZWxGb3JtYXQ6OllDQkNSXzQyMF84ODggaGFzIHN1YnNhbXBsaW5nIDQ6MjowLgorICoKKyAqIEJ1ZmZlcnMgbXVzdCBoYXZlIGEgOCBiaXQgZGVwdGguCisgKgorICogeSwgY2IsIGFuZCBjciBwb2ludCB0byB0aGUgZmlyc3QgYnl0ZSBvZiB0aGVpciByZXNwZWN0aXZlIHBsYW5lcy4KKyAqCisgKiBTdHJpZGUgZGVzY3JpYmVzIHRoZSBkaXN0YW5jZSBpbiBieXRlcyBmcm9tIHRoZSBmaXJzdCB2YWx1ZSBvZiBvbmUgcm93IG9mCisgKiB0aGUgaW1hZ2UgdG8gdGhlIGZpcnN0IHZhbHVlIG9mIHRoZSBuZXh0IHJvdy4gSXQgaW5jbHVkZXMgdGhlIHdpZHRoIG9mIHRoZQorICogaW1hZ2UgcGx1cyBwYWRkaW5nLgorICogeVN0cmlkZSBpcyB0aGUgc3RyaWRlIG9mIHRoZSBsdW1hIHBsYW5lLgorICogY1N0cmlkZSBpcyB0aGUgc3RyaWRlIG9mIHRoZSBjaHJvbWEgcGxhbmVzLgorICoKKyAqIGNocm9tYVN0ZXAgaXMgdGhlIGRpc3RhbmNlIGluIGJ5dGVzIGZyb20gb25lIGNocm9tYSBwaXhlbCB2YWx1ZSB0byB0aGUKKyAqIG5leHQuIFRoaXMgaXMgMiBieXRlcyBmb3Igc2VtaXBsYW5hciAoYmVjYXVzZSBjaHJvbWEgdmFsdWVzIGFyZSBpbnRlcmxlYXZlZAorICogYW5kIGVhY2ggY2hyb21hIHZhbHVlIGlzIG9uZSBieXRlKSBhbmQgMSBmb3IgcGxhbmFyLgorICovCitzdHJ1Y3QgWUNiQ3JMYXlvdXQgeworICAgIHBvaW50ZXIgeTsKKyAgICBwb2ludGVyIGNiOworICAgIHBvaW50ZXIgY3I7CisgICAgdWludDMyX3QgeVN0cmlkZTsKKyAgICB1aW50MzJfdCBjU3RyaWRlOworICAgIHVpbnQzMl90IGNocm9tYVN0ZXA7Cit9OwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMGU0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJsaWJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAibGliVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMiLAorICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICBdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTM0ODg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAKQEAgLTAsMCArMSwyNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKKworR3JhbGxvYzo6R3JhbGxvYygpIHsKKyAgICBpbml0KCk7Cit9CisKK3ZvaWQgR3JhbGxvYzo6aW5pdCgpIHsKKyAgICBtQWxsb2NhdG9yID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUFsbG9jYXRvcj4oKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgbUFsbG9jYXRvci5nZXQoKSkgPDwgImZhaWxlZCB0byBnZXQgYWxsb2NhdG9yIHNlcnZpY2UiOworCisgICAgbU1hcHBlciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElNYXBwZXI+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIG1NYXBwZXIuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IG1hcHBlciBzZXJ2aWNlIjsKKyAgICBBU1NFUlRfRkFMU0UobU1hcHBlci0+aXNSZW1vdGUoKSkgPDwgIm1hcHBlciBpcyBub3QgaW4gcGFzc3Rocm91Z2ggbW9kZSI7Cit9CisKK0dyYWxsb2M6On5HcmFsbG9jKCkgeworICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBtQ2xvbmVkQnVmZmVycykgeworICAgICAgICBhdXRvIGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVySGFuZGxlKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXIpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXIpOworICAgIH0KKyAgICBtQ2xvbmVkQnVmZmVycy5jbGVhcigpOworCisgICAgZm9yIChhdXRvIGJ1ZmZlckhhbmRsZSA6IG1JbXBvcnRlZEJ1ZmZlcnMpIHsKKyAgICAgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbU1hcHBlci0+ZnJlZUJ1ZmZlcihidWZmZXIpKQorICAgICAgICAgICAgPDwgImZhaWxlZCB0byBmcmVlIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICB9CisgICAgbUltcG9ydGVkQnVmZmVycy5jbGVhcigpOworfQorCitzcDxJQWxsb2NhdG9yPiBHcmFsbG9jOjpnZXRBbGxvY2F0b3IoKSBjb25zdCB7CisgICAgcmV0dXJuIG1BbGxvY2F0b3I7Cit9CisKK3N0ZDo6c3RyaW5nIEdyYWxsb2M6OmR1bXBEZWJ1Z0luZm8oKSB7CisgICAgc3RkOjpzdHJpbmcgZGVidWdJbmZvOworICAgIG1BbGxvY2F0b3ItPmR1bXBEZWJ1Z0luZm8oCisgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBEZWJ1Z0luZm8pIHsgZGVidWdJbmZvID0gdG1wRGVidWdJbmZvLmNfc3RyKCk7IH0pOworCisgICAgcmV0dXJuIGRlYnVnSW5mbzsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjpjbG9uZUJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPQorICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb25lKHJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgRVhQRUNUX05FKG51bGxwdHIsIGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpZiAoYnVmZmVySGFuZGxlKSB7CisgICAgICAgIG1DbG9uZWRCdWZmZXJzLmluc2VydChidWZmZXJIYW5kbGUpOworICAgIH0KKworICAgIHJldHVybiBidWZmZXJIYW5kbGU7Cit9CisKK3N0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IEdyYWxsb2M6OmFsbG9jYXRlKAorICAgIGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LCBib29sIGltcG9ydCwKKyAgICB1aW50MzJfdCogb3V0U3RyaWRlKSB7CisgICAgc3RkOjp2ZWN0b3I8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gYnVmZmVySGFuZGxlczsKKyAgICBidWZmZXJIYW5kbGVzLnJlc2VydmUoY291bnQpOworICAgIG1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICBkZXNjcmlwdG9yLCBjb3VudCwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBTdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgdG1wQnVmZmVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXJzIjsKKyAgICAgICAgICAgIEFTU0VSVF9FUShjb3VudCwgdG1wQnVmZmVycy5zaXplKCkpIDw8ICJpbnZhbGlkIGJ1ZmZlciBhcnJheSI7CisKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGltcG9ydCkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZXMucHVzaF9iYWNrKGltcG9ydEJ1ZmZlcih0bXBCdWZmZXJzW2ldKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVySGFuZGxlcy5wdXNoX2JhY2soY2xvbmVCdWZmZXIodG1wQnVmZmVyc1tpXSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChvdXRTdHJpZGUpIHsKKyAgICAgICAgICAgICAgICAqb3V0U3RyaWRlID0gdG1wU3RyaWRlOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIGlmICg6OnRlc3Rpbmc6OlRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIGJ1ZmZlckhhbmRsZXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gYnVmZmVySGFuZGxlczsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjphbGxvY2F0ZSgKKyAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGJvb2wgaW1wb3J0LAorICAgIHVpbnQzMl90KiBvdXRTdHJpZGUpIHsKKyAgICBCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IgPSBjcmVhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3JJbmZvKTsKKyAgICBpZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgeworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIGJ1ZmZlcnMgPSBhbGxvY2F0ZShkZXNjcmlwdG9yLCAxLCBpbXBvcnQsIG91dFN0cmlkZSk7CisgICAgaWYgKDo6dGVzdGluZzo6VGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlcnNbMF07Cit9CisKK3NwPElNYXBwZXI+IEdyYWxsb2M6OmdldE1hcHBlcigpIGNvbnN0IHsKKyAgICByZXR1cm4gbU1hcHBlcjsKK30KKworQnVmZmVyRGVzY3JpcHRvciBHcmFsbG9jOjpjcmVhdGVEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbykgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBtTWFwcGVyLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBkZXNjcmlwdG9ySW5mbywgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBEZXNjcmlwdG9yKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSBkZXNjcmlwdG9yIjsKKyAgICAgICAgICAgIGRlc2NyaXB0b3IgPSB0bXBEZXNjcmlwdG9yOworICAgICAgICB9KTsKKworICAgIHJldHVybiBkZXNjcmlwdG9yOworfQorCitjb25zdCBuYXRpdmVfaGFuZGxlX3QqIEdyYWxsb2M6OmltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPSBudWxscHRyOworICAgIG1NYXBwZXItPmltcG9ydEJ1ZmZlcigKKyAgICAgICAgcmF3SGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcEJ1ZmZlcikgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBpbXBvcnQgYnVmZmVyICVwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgcmF3SGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICAgICAgYnVmZmVySGFuZGxlID0gc3RhdGljX2Nhc3Q8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4odG1wQnVmZmVyKTsKKyAgICAgICAgfSk7CisKKyAgICBpZiAoYnVmZmVySGFuZGxlKSB7CisgICAgICAgIG1JbXBvcnRlZEJ1ZmZlcnMuaW5zZXJ0KGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlckhhbmRsZTsKK30KKwordm9pZCBHcmFsbG9jOjpmcmVlQnVmZmVyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpZiAobUltcG9ydGVkQnVmZmVycy5lcmFzZShidWZmZXJIYW5kbGUpKSB7CisgICAgICAgIEVycm9yIGVycm9yID0gbU1hcHBlci0+ZnJlZUJ1ZmZlcihidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIGZyZWUgYnVmZmVyICIgPDwgYnVmZmVyOworICAgIH0gZWxzZSB7CisgICAgICAgIG1DbG9uZWRCdWZmZXJzLmVyYXNlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoYnVmZmVyKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVyKTsKKyAgICB9Cit9CisKK3ZvaWQqIEdyYWxsb2M6OmxvY2soY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBhY3F1aXJlRmVuY2UpIHsKKyAgICBhdXRvIGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVySGFuZGxlKTsKKworICAgIE5BVElWRV9IQU5ETEVfREVDTEFSRV9TVE9SQUdFKGFjcXVpcmVGZW5jZVN0b3JhZ2UsIDEsIDApOworICAgIGhpZGxfaGFuZGxlIGFjcXVpcmVGZW5jZUhhbmRsZTsKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgYXV0byBoID0gbmF0aXZlX2hhbmRsZV9pbml0KGFjcXVpcmVGZW5jZVN0b3JhZ2UsIDEsIDApOworICAgICAgICBoLT5kYXRhWzBdID0gYWNxdWlyZUZlbmNlOworICAgICAgICBhY3F1aXJlRmVuY2VIYW5kbGUgPSBoOworICAgIH0KKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIG1NYXBwZXItPmxvY2soYnVmZmVyLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBhY3F1aXJlRmVuY2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcERhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiZmFpbGVkIHRvIGxvY2sgYnVmZmVyICIgPDwgYnVmZmVyOworICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSB0bXBEYXRhOworICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGF0YTsKK30KKworWUNiQ3JMYXlvdXQgR3JhbGxvYzo6bG9ja1lDYkNyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBOQVRJVkVfSEFORExFX0RFQ0xBUkVfU1RPUkFHRShhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICBoaWRsX2hhbmRsZSBhY3F1aXJlRmVuY2VIYW5kbGU7CisgICAgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgIGF1dG8gaCA9IG5hdGl2ZV9oYW5kbGVfaW5pdChhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICAgICAgaC0+ZGF0YVswXSA9IGFjcXVpcmVGZW5jZTsKKyAgICAgICAgYWNxdWlyZUZlbmNlSGFuZGxlID0gaDsKKyAgICB9CisKKyAgICBZQ2JDckxheW91dCBsYXlvdXQgPSB7fTsKKyAgICBtTWFwcGVyLT5sb2NrWUNiQ3IoYnVmZmVyLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBhY3F1aXJlRmVuY2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wTGF5b3V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gbG9ja1lDYkNyIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dCA9IHRtcExheW91dDsKKyAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGF5b3V0OworfQorCitpbnQgR3JhbGxvYzo6dW5sb2NrKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpbnQgcmVsZWFzZUZlbmNlID0gLTE7CisgICAgbU1hcHBlci0+dW5sb2NrKAorICAgICAgICBidWZmZXIsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wUmVsZWFzZUZlbmNlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIHVubG9jayBidWZmZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgYnVmZmVyOworCisgICAgICAgICAgICBhdXRvIGZlbmNlSGFuZGxlID0gdG1wUmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICAgICAgaWYgKGZlbmNlSGFuZGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIGZlbmNlSGFuZGxlLT5udW1JbnRzKSA8PCAiaW52YWxpZCBmZW5jZSBoYW5kbGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZmVuY2VIYW5kbGU7CisgICAgICAgICAgICAgICAgaWYgKGZlbmNlSGFuZGxlLT5udW1GZHMgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICByZWxlYXNlRmVuY2UgPSBkdXAoZmVuY2VIYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTFQoMCwgcmVsZWFzZUZlbmNlKSA8PCAiZmFpbGVkIHRvIGR1cCBmZW5jZSBmZCI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIGZlbmNlSGFuZGxlLT5udW1GZHMpCisgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGludmFsaWQgZmVuY2UgaGFuZGxlICIgPDwgZmVuY2VIYW5kbGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIHJldHVybiByZWxlYXNlRmVuY2U7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1N2YyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKKyNkZWZpbmUgVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKKworI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8dXRpbHMvU3Ryb25nUG9pbnRlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I7CisKKy8vIEEgd3JhcHBlciB0byBJQWxsb2NhdG9yIGFuZCBJTWFwcGVyLgorY2xhc3MgR3JhbGxvYyB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYygpOworICAgIH5HcmFsbG9jKCk7CisKKyAgICAvLyBJQWxsb2NhdG9yIG1ldGhvZHMKKworICAgIHNwPElBbGxvY2F0b3I+IGdldEFsbG9jYXRvcigpIGNvbnN0OworCisgICAgc3RkOjpzdHJpbmcgZHVtcERlYnVnSW5mbygpOworCisgICAgLy8gV2hlbiBpbXBvcnQgaXMgZmFsc2UsIHRoaXMgc2ltcGx5IGNhbGxzIElBbGxvY2F0b3I6OmFsbG9jYXRlLiBXaGVuIGltcG9ydAorICAgIC8vIGlzIHRydWUsIHRoZSByZXR1cm5lZCBidWZmZXJzIGFyZSBhbHNvIGltcG9ydGVkIGludG8gdGhlIG1hcHBlci4KKyAgICAvLworICAgIC8vIEVpdGhlciBjYXNlLCB0aGUgcmV0dXJuZWQgYnVmZmVycyBtdXN0IGJlIGZyZWVkIHdpdGggZnJlZUJ1ZmZlci4KKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBuYXRpdmVfaGFuZGxlX3QqPiBhbGxvY2F0ZSgKKyAgICAgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQsIGJvb2wgaW1wb3J0ID0gdHJ1ZSwKKyAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSA9IG51bGxwdHIpOworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYWxsb2NhdGUoCisgICAgICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbywgYm9vbCBpbXBvcnQgPSB0cnVlLAorICAgICAgICB1aW50MzJfdCogb3V0U3RyaWRlID0gbnVsbHB0cik7CisKKyAgICAvLyBJTWFwcGVyIG1ldGhvZHMKKworICAgIHNwPElNYXBwZXI+IGdldE1hcHBlcigpIGNvbnN0OworCisgICAgQnVmZmVyRGVzY3JpcHRvciBjcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSk7CisgICAgdm9pZCBmcmVlQnVmZmVyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKTsKKworICAgIC8vIFdlIHVzZSBmZCBpbnN0ZWFkIG9mIGhpZGxfaGFuZGxlIGluIHRoZXNlIGZ1bmN0aW9ucyB0byBwYXNzIGZlbmNlcworICAgIC8vIGluIGFuZCBvdXQgb2YgdGhlIG1hcHBlci4gIFRoZSBvd25lcnNoaXAgb2YgdGhlIGZkIGlzIGFsd2F5cyB0cmFuc2ZlcnJlZAorICAgIC8vIHdpdGggZWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMuCisgICAgdm9pZCogbG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBhY3F1aXJlRmVuY2UpOworICAgIFlDYkNyTGF5b3V0IGxvY2tZQ2JDcihjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY3B1VXNhZ2UsIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSk7CisgICAgaW50IHVubG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSk7CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBpbml0KCk7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZUJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKTsKKworICAgIHNwPElBbGxvY2F0b3I+IG1BbGxvY2F0b3I7CisgICAgc3A8SU1hcHBlcj4gbU1hcHBlcjsKKworICAgIC8vIEtlZXAgdHJhY2sgb2YgYWxsIGNsb25lZCBhbmQgaW1wb3J0ZWQgaGFuZGxlcy4gIFdoZW4gYSB0ZXN0IGZhaWxzIHdpdGgKKyAgICAvLyBBU1NFUlRfKiwgdGhlIGRlc3RydWN0b3Igd2lsbCBmcmVlIHRoZSBoYW5kbGVzIGZvciB0aGUgdGVzdC4KKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gbUNsb25lZEJ1ZmZlcnM7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IG1JbXBvcnRlZEJ1ZmZlcnM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBWVFNfSEFMX0dSQVBISUNTX01BUFBFUl9VVElMUwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0LmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MDEzYgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0MTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVjJfMFRhcmdldFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCitjbGFzcyBHcmFwaGljc01hcHBlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYyA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhbGxvYz4oKSk7CisKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLndpZHRoID0gNjQ7CisgICAgICBtRHVtbXlEZXNjcmlwdG9ySW5mby5oZWlnaHQgPSA2NDsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLmxheWVyQ291bnQgPSAxOworICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8uZm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OlJHQkFfODg4ODsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLnVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KAorICAgICAgICAgIEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfT0ZURU4gfCBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IG1HcmFsbG9jOworICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBtRHVtbXlEZXNjcmlwdG9ySW5mb3t9OworfTsKKworLyoqCisgKiBUZXN0IElBbGxvY2F0b3I6OmR1bXBEZWJ1Z0luZm8gYnkgY2FsbGluZyBpdC4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckR1bXBEZWJ1Z0luZm8pIHsKKyAgICBtR3JhbGxvYy0+ZHVtcERlYnVnSW5mbygpOworfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgd2l0aCB2YWxpZCBidWZmZXIgZGVzY3JpcHRvcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBBbGxvY2F0b3JBbGxvY2F0ZSkgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgZGVzY3JpcHRvciA9IG1HcmFsbG9jLT5jcmVhdGVEZXNjcmlwdG9yKG1EdW1teURlc2NyaXB0b3JJbmZvKSk7CisKKyAgICBmb3IgKHVpbnQzMl90IGNvdW50ID0gMDsgY291bnQgPCA1OyBjb3VudCsrKSB7CisgICAgICAgIHN0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IGJ1ZmZlckhhbmRsZXM7CisgICAgICAgIHVpbnQzMl90IHN0cmlkZTsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlcyA9IG1HcmFsbG9jLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IsIGNvdW50LCBmYWxzZSwgJnN0cmlkZSkpOworCisgICAgICAgIGlmIChjb3VudCA+PSAxKSB7CisgICAgICAgICAgICBFWFBFQ1RfTEUobUR1bW15RGVzY3JpcHRvckluZm8ud2lkdGgsIHN0cmlkZSkKKyAgICAgICAgICAgICAgICA8PCAiaW52YWxpZCBidWZmZXIgc3RyaWRlIjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBidWZmZXJIYW5kbGVzKSB7CisgICAgICAgICAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgd2l0aCBpbnZhbGlkIGJ1ZmZlciBkZXNjcmlwdG9ycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckFsbG9jYXRlTmVnYXRpdmUpIHsKKyAgICAvLyB0aGlzIGFzc3VtZXMgYW55IHZhbGlkIGRlc2NyaXB0b3IgaXMgbm9uLWVtcHR5CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIG1HcmFsbG9jLT5nZXRBbGxvY2F0b3IoKS0+YWxsb2NhdGUoCisgICAgICAgIGRlc2NyaXB0b3IsIDEsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9ERVNDUklQVE9SLCB0bXBFcnJvcik7CisgICAgICAgIH0pOworfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgZG9lcyBub3QgbGVhay4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckFsbG9jYXRlTm9MZWFrKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDEwMjQ7CisgICAgaW5mby5oZWlnaHQgPSAxMDI0OworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDQ4OyBpKyspIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgZmFsc2UpOworICAgICAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmNyZWF0ZURlc2NyaXB0b3Igd2l0aCB2YWxpZCBkZXNjcmlwdG9yIGluZm8uCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBDcmVhdGVEZXNjcmlwdG9yQmFzaWMpIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+Y3JlYXRlRGVzY3JpcHRvcihtRHVtbXlEZXNjcmlwdG9ySW5mbykpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6Y3JlYXRlRGVzY3JpcHRvciB3aXRoIGludmFsaWQgZGVzY3JpcHRvciBpbmZvLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgQ3JlYXRlRGVzY3JpcHRvck5lZ2F0aXZlKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDA7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBpbmZvLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9WQUxVRSwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgImNyZWF0ZURlc2NyaXB0b3IgZGlkIG5vdCBmYWlsIHdpdGggQkFEX1ZBTFVFIjsKKyAgICAgICAgfSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgd2l0aCBhbGxvY2F0ZWQgYnVmZmVycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJCYXNpYykgeworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGJ1ZmZlckhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgdHJ1ZSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGJ1ZmZlckhhbmRsZSkpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6aW1wb3J0QnVmZmVyIGFuZCBJTWFwcGVyOjpmcmVlQnVmZmVyIHdpdGggY2xvbmVkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRGcmVlQnVmZmVyQ2xvbmUpIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGNsb25lZEJ1ZmZlckhhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgY2xvbmVkQnVmZmVySGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpOworCisgICAgLy8gQSBjbG9uZWQgaGFuZGxlIGlzIGEgcmF3IGhhbmRsZS4gQ2hlY2sgdGhhdCB3ZSBjYW4gaW1wb3J0IGl0IG11bHRpcGxlCisgICAgLy8gdGltZXMuCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMl07CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW1wb3J0ZWRCdWZmZXJIYW5kbGVzWzBdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmltcG9ydEJ1ZmZlcihjbG9uZWRCdWZmZXJIYW5kbGUpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMV0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+aW1wb3J0QnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGltcG9ydGVkQnVmZmVySGFuZGxlc1swXSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGltcG9ydGVkQnVmZmVySGFuZGxlc1sxXSkpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUdyYWxsb2MtPmZyZWVCdWZmZXIoY2xvbmVkQnVmZmVySGFuZGxlKSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgY3Jvc3MgbWFwcGVyIGluc3RhbmNlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJTaW5nbGV0b24pIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHJhd0hhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgcmF3SGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpOworCisgICAgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRlZEhhbmRsZSA9IG51bGxwdHI7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIHJhd0hhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiBidWZmZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworICAgICAgICAgICAgaW1wb3J0ZWRIYW5kbGUgPSBzdGF0aWNfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXIpOworICAgICAgICB9KTsKKworICAgIC8vIGZyZWUgdGhlIGltcG9ydGVkIGhhbmRsZSB3aXRoIGFub3RoZXIgbWFwcGVyCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IGFub3RoZXJHcmFsbG9jOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGFub3RoZXJHcmFsbG9jID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFsbG9jPigpKTsKKyAgICBFcnJvciBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbXBvcnRlZEhhbmRsZSk7CisgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcik7CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihyYXdIYW5kbGUpKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmltcG9ydEJ1ZmZlciBhbmQgSU1hcHBlcjo6ZnJlZUJ1ZmZlciBkbyBub3QgbGVhay4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJOb0xlYWspIHsKKyAgICBhdXRvIGluZm8gPSBtRHVtbXlEZXNjcmlwdG9ySW5mbzsKKyAgICBpbmZvLndpZHRoID0gMTAyNDsKKyAgICBpbmZvLmhlaWdodCA9IDEwMjQ7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwNDg7IGkrKykgeworICAgICAgICBhdXRvIGJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvLCB0cnVlKTsKKyAgICAgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgd2l0aCBpbnZhbGlkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRCdWZmZXJOZWdhdGl2ZSkgeworICAgIG5hdGl2ZV9oYW5kbGVfdCogaW52YWxpZEhhbmRsZSA9IG51bGxwdHI7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgImltcG9ydEJ1ZmZlciB3aXRoIG51bGxwdHIgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICAgIH0pOworCisgICAgaW52YWxpZEhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+aW1wb3J0QnVmZmVyKGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJpbXBvcnRCdWZmZXIgd2l0aCBpbnZhbGlkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICB9KTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShpbnZhbGlkSGFuZGxlKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmZyZWVCdWZmZXIgd2l0aCBpbnZhbGlkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBGcmVlQnVmZmVyTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIEVycm9yIGVycm9yID0gbUdyYWxsb2MtPmdldE1hcHBlcigpLT5mcmVlQnVmZmVyKGludmFsaWRIYW5kbGUpOworICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgZXJyb3IpCisgICAgICAgIDw8ICJmcmVlQnVmZmVyIHdpdGggbnVsbHB0ciBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIGludmFsaWQgaGFuZGxlIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGludmFsaWRIYW5kbGUpOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZWRCdWZmZXJIYW5kbGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGNsb25lZEJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgZmFsc2UpKTsKKyAgICBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIHVuLWltcG9ydGVkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKworICAgIG1HcmFsbG9jLT5mcmVlQnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpsb2NrIGFuZCBJTWFwcGVyOjp1bmxvY2suCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBMb2NrVW5sb2NrQmFzaWMpIHsKKyAgICBjb25zdCBhdXRvJiBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZTsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmFsbG9jYXRlKGluZm8sIHRydWUsICZzdHJpZGUpKTsKKworICAgIC8vIGxvY2sgYnVmZmVyIGZvciB3cml0aW5nCisgICAgY29uc3QgSU1hcHBlcjo6UmVjdCByZWdpb257MCwgMCwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby5oZWlnaHQpfTsKKyAgICBpbnQgZmVuY2UgPSAtMTsKKyAgICB1aW50OF90KiBkYXRhOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obUdyYWxsb2MtPmxvY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgaW5mby51c2FnZSwgcmVnaW9uLCBmZW5jZSkpKTsKKworICAgIC8vIFJHQkFfODg4OAorICAgIHNpemVfdCBzdHJpZGVJbkJ5dGVzID0gc3RyaWRlICogNDsKKyAgICBzaXplX3Qgd3JpdGVJbkJ5dGVzID0gaW5mby53aWR0aCAqIDQ7CisKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBtZW1zZXQoZGF0YSwgeSwgd3JpdGVJbkJ5dGVzKTsKKyAgICAgICAgZGF0YSArPSBzdHJpZGVJbkJ5dGVzOworICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKworICAgIC8vIGxvY2sgYWdhaW4gZm9yIHJlYWRpbmcKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1HcmFsbG9jLT5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKSk7CisgICAgZm9yICh1aW50MzJfdCB5ID0gMDsgeSA8IGluZm8uaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3cml0ZUluQnl0ZXM7IGkrKykgeworICAgICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHkpLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgICAgICBkYXRhICs9IHN0cmlkZUluQnl0ZXM7CisgICAgfQorCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoZmVuY2UgPSBtR3JhbGxvYy0+dW5sb2NrKGJ1ZmZlckhhbmRsZSkpOworICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpsb2NrWUNiQ3IuICBUaGlzIGxvY2tzIGEgWVYxMiBidWZmZXIsIGFuZCBtYWtlcyBzdXJlIHdlIGNhbgorICogd3JpdGUgdG8gYW5kIHJlYWQgZnJvbSBpdC4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIExvY2tZQ2JDckJhc2ljKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6WVYxMjsKKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlOworICAgIHVpbnQzMl90IHN0cmlkZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShidWZmZXJIYW5kbGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgdHJ1ZSwgJnN0cmlkZSkpOworCisgICAgLy8gbG9jayBidWZmZXIgZm9yIHdyaXRpbmcKKyAgICBjb25zdCBJTWFwcGVyOjpSZWN0IHJlZ2lvbnswLCAwLCBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLmhlaWdodCl9OworICAgIGludCBmZW5jZSA9IC0xOworICAgIFlDYkNyTGF5b3V0IGxheW91dDsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgbGF5b3V0ID0gbUdyYWxsb2MtPmxvY2tZQ2JDcihidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKTsKKworICAgIGF1dG8geURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LnkpOworICAgIGF1dG8gY2JEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC5jYik7CisgICAgYXV0byBjckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNyKTsKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBmb3IgKHVpbnQzMl90IHggPSAwOyB4IDwgaW5mby53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBhdXRvIHZhbCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGluZm8uaGVpZ2h0ICogeSArIHgpOworCisgICAgICAgICAgICB5RGF0YVtsYXlvdXQueVN0cmlkZSAqIHkgKyB4XSA9IHZhbDsKKyAgICAgICAgICAgIGlmICh5ICUgMiA9PSAwICYmIHggJSAyID09IDApIHsKKyAgICAgICAgICAgICAgICBjYkRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSA9IHZhbDsKKyAgICAgICAgICAgICAgICBjckRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSA9IHZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKworICAgIC8vIGxvY2sgYWdhaW4gZm9yIHJlYWRpbmcKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgbGF5b3V0ID0gbUdyYWxsb2MtPmxvY2tZQ2JDcihidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKTsKKworICAgIHlEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC55KTsKKyAgICBjYkRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNiKTsKKyAgICBjckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNyKTsKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBmb3IgKHVpbnQzMl90IHggPSAwOyB4IDwgaW5mby53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBhdXRvIHZhbCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGluZm8uaGVpZ2h0ICogeSArIHgpOworCisgICAgICAgICAgICBFWFBFQ1RfRVEodmFsLCB5RGF0YVtsYXlvdXQueVN0cmlkZSAqIHkgKyB4XSk7CisgICAgICAgICAgICBpZiAoeSAlIDIgPT0gMCAmJiB4ICUgMiA9PSAwKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHZhbCwgY2JEYXRhW2xheW91dC5jU3RyaWRlICogeSAvIDIgKyB4IC8gMl0pOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh2YWwsIGNyRGF0YVtsYXlvdXQuY1N0cmlkZSAqIHkgLyAyICsgeCAvIDJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKyAgICBpZiAoZmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6dW5sb2NrIHdpdGggaW52YWxpZCBidWZmZXJzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgVW5sb2NrTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKAorICAgICAgICBpbnZhbGlkSGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCBudWxscHRyIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgICAgICB9KTsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPnVubG9jaygKKyAgICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICA8PCAidW5sb2NrIHdpdGggaW52YWxpZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICAgIH0pOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGludmFsaWRIYW5kbGUpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW52YWxpZEhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4obUdyYWxsb2MtPmFsbG9jYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8sIGZhbHNlKSkpOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCB1bi1pbXBvcnRlZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgfSk7CisgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoaW52YWxpZEhhbmRsZSk7CisKKy8vIGRpc2FibGVkIGFzIGl0IGZhaWxzIG9uIG1hbnkgZXhpc3RpbmcgZHJpdmVycworI2lmIDAKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW52YWxpZEhhbmRsZSA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUobUR1bW15RGVzY3JpcHRvckluZm8sIHRydWUpKSk7CisgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKAorICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgPDwgInVubG9jayB3aXRoIHVubG9ja2VkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICAgIH0pOworICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyNlbmRpZgorfQorCit9ICAvLyBuYW1lc3BhY2UKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworCisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tayBiL2dyYXBoaWNzL21hcHBlci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9BbmRyb2lkLmJwIGIvaGVhbHRoLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYjJkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUhlYWx0aC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSGVhbHRoQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUh3SGVhbHRoLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0JuSHdIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvQnBId0hlYWx0aC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9Cc0hlYWx0aC5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9BbmRyb2lkLm1rIGIvaGVhbHRoLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwM2I4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzMDQgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQmF0dGVyeUhlYWx0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQmF0dGVyeUhlYWx0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuQmF0dGVyeUhlYWx0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQmF0dGVyeVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQmF0dGVyeVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuQmF0dGVyeVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGVhbHRoQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9IZWFsdGhDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aENvbmZpZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGVhbHRoSW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuSGVhbHRoSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZWFsdGguaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0lIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OklIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aC1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlIZWFsdGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoQ29uZmlnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5IZWFsdGhDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0hlYWx0aEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGVhbHRoLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9JSGVhbHRoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjpJSGVhbHRoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9JSGVhbHRoLmhhbCBiL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyODU4OQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOworCitpbnRlcmZhY2UgSUhlYWx0aCB7CisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBsZXRzIHlvdSBjaGFuZ2UgaGVhbHRoZCBjb25maWd1cmF0aW9uIGZyb20gZGVmYXVsdCBpZgorICAgICAqIGRlc2lyZWQuIEl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBhdCBzdGFydHVwIHRpbWUuCisgICAgICoKKyAgICAgKiBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiAnc3RydWN0IEhlYWx0aENvbmZpZycuCisgICAgICogVG8gdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgc2ltcGx5IHJldHVybiB3aXRob3V0IG1vZGlmeWluZyB0aGUKKyAgICAgKiBmaWVsZHMgb2YgdGhlIGNvbmZpZyBwYXJhbWV0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVmYXVsdCBoZWFsdGhkIGNvbmZpZ3VyYXRpb24uCisgICAgICovCisgICAgaW5pdChIZWFsdGhDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKEhlYWx0aENvbmZpZyBjb25maWdPdXQpOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhIGhvb2sgdG8gdXBkYXRlL2NoYW5nZSBkZXZpY2UncyBIZWFsdGhJbmZvIChhcyBkZXNjcmliZWQKKyAgICAgKiBpbiAnc3RydWN0IEhlYWx0aEluZm8nKS4KKyAgICAgKgorICAgICAqICdIZWFsdGhJbmZvJyBkZXNjcmliZXMgZGV2aWNlJ3MgYmF0dGVyeSBhbmQgY2hhcmdpbmcgc3RhdHVzLCB0eXBpY2FsbHkKKyAgICAgKiByZWFkIGZyb20ga2VybmVsLiBUaGVzZSB2YWx1ZXMgbWF5IGJlIG1vZGlmaWVkIGluIHRoaXMgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIERldmljZSBIZWFsdGggaW5mbyBhcyBkZXNjcmliZWQgaW4gJ3N0cnVjdCBIZWFsdGhJbmZvJy4KKyAgICAgKiBAcmV0dXJuICBza2lwTG9nZ2luZyBJbmRpY2F0aW9uIHRvIHRoZSBjYWxsZXIgdG8gYWRkICdvcicgc2tpcCBsb2dnaW5nIHRoZSBoZWFsdGgKKyAgICAgKiAgICAgICAgICBpbmZvcm1hdGlvbi4gUmV0dXJuICd0cnVlJyB0byBza2lwIGxvZ2dpbmcgdGhlIHVwZGF0ZS4KKyAgICAgKiBAcmV0dXJuICBpbmZvT3V0IEhlYWx0aEluZm8gdG8gYmUgc2VudCB0byBjbGllbnQgY29kZS4gKE1heSBvciBtYXkKKyAgICAgKiAgICAgICAgICBub3QgYmUgbW9kaWZpZWQpLgorICAgICAqLworICAgIHVwZGF0ZShIZWFsdGhJbmZvIGluZm8pIGdlbmVyYXRlcyAoYm9vbCBza2lwTG9nZ2luZywgSGVhbHRoSW5mbyBpbmZvT3V0KTsKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGhlYWx0aGQgd2hlbiBmcmFtZXdvcmsgcXVlcmllcyBmb3IgcmVtYWluaW5nCisgICAgICogZW5lcmd5IGluIHRoZSBCYXR0ZXJ5IHRocm91Z2ggQmF0dGVyeU1hbmFnZXIgQVBJcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBSZXN1bHQgb2YgcXVlcnlpbmcgZW5lcnkgY291bnRlciBmb3IgdGhlIGJhdHRlcnkuCisgICAgICogQHJldHVybiAgZW5lcmd5IEJhdHRlcnkgcmVtYWluaW5nIGVuZXJneSBpbiBuYW5vd2F0dC1ob3Vycy4KKyAgICAgKiAgICAgICAgICBNdXN0IGJlICcwJyBpZiByZXN1bHQgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBSZXN1bHQ6OlNVQ0NFU1MuCisgICAgICovCisgICAgZW5lcmd5Q291bnRlcigpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgaW50NjRfdCBlbmVyZ3kpOworfTsKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZmZjkxZgotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTkgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfQ19JTkNMVURFUyA6PSBzeXN0ZW0vY29yZS9oZWFsdGhkL2luY2x1ZGUgc3lzdGVtL2NvcmUvYmFzZS9pbmNsdWRlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEhlYWx0aC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1jb252ZXJ0CisKK0xPQ0FMX0hBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGxpYmhlYWx0aGQKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtY29udmVydAorTE9DQUxfU1JDX0ZJTEVTIDo9IGNvbnZlcnQuY3BwCitMT0NBTF9DX0lOQ0xVREVTIDo9IHN5c3RlbS9jb3JlL2hlYWx0aGQvaW5jbHVkZSBzeXN0ZW0vY29yZS9iYXNlL2luY2x1ZGUKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSAkKExPQ0FMX1BBVEgpL2luY2x1ZGUKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgSGVhbHRoU2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCisKK2luY2x1ZGUgJChjYWxsIGZpcnN0LW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAgYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTAyOTU2Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiaGVhbHRoLWhhbCIKKworI2luY2x1ZGUgPEhlYWx0aC5oPgorI2luY2x1ZGUgPGluY2x1ZGUvaGFsX2NvbnZlcnNpb24uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBoZWFsdGggeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydFRvSGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydEZyb21IZWFsdGhDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OmhhbF9jb252ZXJzaW9uOjpjb252ZXJ0VG9IZWFsdGhJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydEZyb21IZWFsdGhJbmZvOworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoIGZvbGxvdy4KK1JldHVybjx2b2lkPiBIZWFsdGg6OmluaXQoY29uc3QgSGVhbHRoQ29uZmlnJiBjb25maWcsIGluaXRfY2IgX2hpZGxfY2IpICB7CisgICAgc3RydWN0IGhlYWx0aGRfY29uZmlnIGhlYWx0aGRfY29uZmlnID0ge307CisgICAgSGVhbHRoQ29uZmlnIGNvbmZpZ091dDsKKworICAgIC8vIFRvIGtlZXAgd29ya2luZyB3aXRoIGV4aXN0aW5nIGhlYWx0aGQgc3RhdGljIEhBTHMsCisgICAgLy8gY29udmVydCB0aGUgbmV3IEhlYWx0aENvbmZpZyB0byB0aGUgb2xkIGhlYWx0aGRfY29uZmlnCisgICAgLy8gYW5kIGJhY2suCisKKyAgICBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25maWcsICZoZWFsdGhkX2NvbmZpZyk7CisgICAgaGVhbHRoZF9ib2FyZF9pbml0KCZoZWFsdGhkX2NvbmZpZyk7CisgICAgbUdldEVuZXJneUNvdW50ZXIgPSBoZWFsdGhkX2NvbmZpZy5lbmVyZ3lDb3VudGVyOworICAgIGNvbnZlcnRUb0hlYWx0aENvbmZpZygmaGVhbHRoZF9jb25maWcsIGNvbmZpZ091dCk7CisKKyAgICBfaGlkbF9jYihjb25maWdPdXQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhlYWx0aDo6dXBkYXRlKGNvbnN0IEhlYWx0aEluZm8mIGluZm8sIHVwZGF0ZV9jYiBfaGlkbF9jYikgIHsKKyAgICBzdHJ1Y3QgYW5kcm9pZDo6QmF0dGVyeVByb3BlcnRpZXMgcCA9IHt9OworICAgIEhlYWx0aEluZm8gaW5mb091dDsKKworICAgIC8vIFRvIGtlZXAgd29ya2luZyB3aXRoIGV4aXN0aW5nIGhlYWx0aGQgc3RhdGljIEhBTHMsCisgICAgLy8gY29udmVydCB0aGUgbmV3IEhlYWx0aEluZm8gdG8gYW5kcm9pZDo6QmF0dGVyeXByb3BlcnRpZXMKKyAgICAvLyBhbmQgYmFjay4KKworICAgIGNvbnZlcnRGcm9tSGVhbHRoSW5mbyhpbmZvLCAmcCk7CisgICAgaW50IHNraXBMb2dnaW5nID0gaGVhbHRoZF9ib2FyZF9iYXR0ZXJ5X3VwZGF0ZSgmcCk7CisgICAgY29udmVydFRvSGVhbHRoSW5mbygmcCwgaW5mb091dCk7CisKKyAgICBfaGlkbF9jYighIXNraXBMb2dnaW5nLCBpbmZvT3V0KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBIZWFsdGg6OmVuZXJneUNvdW50ZXIoZW5lcmd5Q291bnRlcl9jYiBfaGlkbF9jYikgeworICAgIGludDY0X3QgZW5lcmd5ID0gMDsKKyAgICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworCisgICAgaWYgKG1HZXRFbmVyZ3lDb3VudGVyKSB7CisgICAgICAgIGludCBzdGF0dXMgPSBtR2V0RW5lcmd5Q291bnRlcigmZW5lcmd5KTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBSZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkbF9jYihyZXN1bHQsIGVuZXJneSk7CisKKyAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lIZWFsdGgqIEhJRExfRkVUQ0hfSUhlYWx0aChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBIZWFsdGgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgaGVhbHRoCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmggYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzNjRjMQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGguaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9IRUFMVEhfVjFfMF9IRUFMVEhfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0hFQUxUSF9WMV8wX0hFQUxUSF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoZWFsdGhkL2hlYWx0aGQuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgSGVhbHRoIDogcHVibGljIElIZWFsdGggeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OklIZWFsdGggZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpbml0KGNvbnN0IEhlYWx0aENvbmZpZyYgY29uZmlnLCBpbml0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZGF0ZShjb25zdCBIZWFsdGhJbmZvJiBpbmZvLCB1cGRhdGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5lcmd5Q291bnRlcihlbmVyZ3lDb3VudGVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKK3ByaXZhdGU6CisgICAgc3RkOjpmdW5jdGlvbjxpbnQoaW50NjRfdCAqKT4gbUdldEVuZXJneUNvdW50ZXI7Cit9OworCitleHRlcm4gIkMiIElIZWFsdGgqIEhJRExfRkVUQ0hfSUhlYWx0aChjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGhlYWx0aAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfSEVBTFRIX1YxXzBfSEVBTFRIX0gKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTg0OGQyCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aFNlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJSGVhbHRoPigpOworfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzY2Q3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGhlYWx0aC1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjFlM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgImluY2x1ZGUvaGFsX2NvbnZlcnNpb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBoZWFsdGggeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhhbF9jb252ZXJzaW9uIHsKKwordm9pZCBjb252ZXJ0VG9IZWFsdGhDb25maWcoY29uc3Qgc3RydWN0IGhlYWx0aGRfY29uZmlnICpoYywgSGVhbHRoQ29uZmlnJiBjb25maWcpIHsKKyAgICBjb25maWcucGVyaW9kaWNDaG9yZXNJbnRlcnZhbEZhc3QgPSBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX2Zhc3Q7CisgICAgY29uZmlnLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxTbG93ID0gaGMtPnBlcmlvZGljX2Nob3Jlc19pbnRlcnZhbF9zbG93OworCisgICAgY29uZmlnLmJhdHRlcnlTdGF0dXNQYXRoICAgICAgICA9IGhjLT5iYXR0ZXJ5U3RhdHVzUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeUhlYWx0aFBhdGggICAgICAgID0gaGMtPmJhdHRlcnlIZWFsdGhQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5UHJlc2VudFBhdGggICAgICAgPSBoYy0+YmF0dGVyeVByZXNlbnRQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoICAgICAgPSBoYy0+YmF0dGVyeUNhcGFjaXR5UGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVZvbHRhZ2VQYXRoICAgICAgID0gaGMtPmJhdHRlcnlWb2x0YWdlUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVRlbXBlcmF0dXJlUGF0aCAgID0gaGMtPmJhdHRlcnlUZW1wZXJhdHVyZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlUZWNobm9sb2d5UGF0aCAgICA9IGhjLT5iYXR0ZXJ5VGVjaG5vbG9neVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDdXJyZW50Tm93UGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3VycmVudE5vd1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDdXJyZW50QXZnUGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3VycmVudEF2Z1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCA9IGhjLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlclBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aCAgICA9IGhjLT5iYXR0ZXJ5RnVsbENoYXJnZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDeWNsZUNvdW50UGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3ljbGVDb3VudFBhdGguc3RyaW5nKCk7CisKK30KKwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25zdCBIZWFsdGhDb25maWcmIGMsIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMpIHsKKyAgICBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX2Zhc3QgPSBjLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0OworICAgIGhjLT5wZXJpb2RpY19jaG9yZXNfaW50ZXJ2YWxfc2xvdyA9IGMucGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3c7CisKKyAgICBoYy0+YmF0dGVyeVN0YXR1c1BhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeVN0YXR1c1BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlTdGF0dXNQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUhlYWx0aFBhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeUhlYWx0aFBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlIZWFsdGhQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVByZXNlbnRQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlQcmVzZW50UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVByZXNlbnRQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUNhcGFjaXR5UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVZvbHRhZ2VQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlWb2x0YWdlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVZvbHRhZ2VQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVRlbXBlcmF0dXJlUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVRlY2hub2xvZ3lQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlUZWNobm9sb2d5UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVRlY2hub2xvZ3lQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN1cnJlbnROb3dQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDdXJyZW50Tm93UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN1cnJlbnROb3dQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN1cnJlbnRBdmdQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDdXJyZW50QXZnUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN1cnJlbnROb3dQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUZ1bGxDaGFyZ2VQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUZ1bGxDaGFyZ2VQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN5Y2xlQ291bnRQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDeWNsZUNvdW50UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN5Y2xlQ291bnRQYXRoLnNpemUoKSk7CisKKyAgICAvLyBlbmVyZ3lDb3VudGVyIGlzIGhhbmRsZWQgdGhyb3VnaCBzcGVjaWFsIG1lYW5zIHNvIGFsbCBjYWxscyB0bworICAgIC8vIHRoZSBmdW5jdGlvbiBnbyBhY3Jvc3MgdGhlIEhBTHMKKworICAgIC8vIGJvb3RfbWluX2NhcCAtIG5ldmVyIHVzZWQgaW4gQW5kcm9pZCAob25seSBpbiBjaGFyZ2VyLW1vZGUpLgorCisgICAgLy8gc2NyZWVuX29uIC0gbmV2ZXIgdXNlZCBpbiBBbmRyb2lkIChvbmx5IGluIGNoYXJnZXIgbW9kZSkuCit9CisKK3ZvaWQgY29udmVydFRvSGVhbHRoSW5mbyhjb25zdCBzdHJ1Y3QgYW5kcm9pZDo6QmF0dGVyeVByb3BlcnRpZXMgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFsdGhJbmZvJiBpbmZvKSB7CisgICAgaW5mby5jaGFyZ2VyQWNPbmxpbmUgICAgICAgID0gcC0+Y2hhcmdlckFjT25saW5lOworICAgIGluZm8uY2hhcmdlclVzYk9ubGluZSAgICAgICA9IHAtPmNoYXJnZXJVc2JPbmxpbmU7CisgICAgaW5mby5jaGFyZ2VyV2lyZWxlc3NPbmxpbmUgID0gcC0+Y2hhcmdlcldpcmVsZXNzT25saW5lOworICAgIGluZm8ubWF4Q2hhcmdpbmdDdXJyZW50ICAgICA9IHAtPm1heENoYXJnaW5nQ3VycmVudDsKKyAgICBpbmZvLm1heENoYXJnaW5nVm9sdGFnZSAgICAgPSBwLT5tYXhDaGFyZ2luZ1ZvbHRhZ2U7CisgICAgaW5mby5iYXR0ZXJ5U3RhdHVzICAgICAgICAgID0gc3RhdGljX2Nhc3Q8QmF0dGVyeVN0YXR1cz4ocC0+YmF0dGVyeVN0YXR1cyk7CisgICAgaW5mby5iYXR0ZXJ5SGVhbHRoICAgICAgICAgID0gc3RhdGljX2Nhc3Q8QmF0dGVyeUhlYWx0aD4ocC0+YmF0dGVyeUhlYWx0aCk7CisgICAgaW5mby5iYXR0ZXJ5UHJlc2VudCAgICAgICAgID0gcC0+YmF0dGVyeVByZXNlbnQ7CisgICAgaW5mby5iYXR0ZXJ5TGV2ZWwgICAgICAgICAgID0gcC0+YmF0dGVyeUxldmVsOworICAgIGluZm8uYmF0dGVyeVZvbHRhZ2UgICAgICAgICA9IHAtPmJhdHRlcnlWb2x0YWdlOworICAgIGluZm8uYmF0dGVyeVRlbXBlcmF0dXJlICAgICA9IHAtPmJhdHRlcnlUZW1wZXJhdHVyZTsKKyAgICBpbmZvLmJhdHRlcnlDdXJyZW50ICAgICAgICAgPSBwLT5iYXR0ZXJ5Q3VycmVudDsKKyAgICBpbmZvLmJhdHRlcnlDeWNsZUNvdW50ICAgICAgPSBwLT5iYXR0ZXJ5Q3ljbGVDb3VudDsKKyAgICBpbmZvLmJhdHRlcnlGdWxsQ2hhcmdlICAgICAgPSBwLT5iYXR0ZXJ5RnVsbENoYXJnZTsKKyAgICBpbmZvLmJhdHRlcnlDaGFyZ2VDb3VudGVyICAgPSBwLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlcjsKKyAgICBpbmZvLmJhdHRlcnlUZWNobm9sb2d5ICAgICAgPSBwLT5iYXR0ZXJ5VGVjaG5vbG9neTsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aEluZm8oY29uc3QgSGVhbHRoSW5mbyYgaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwKSB7CisgICAgcC0+Y2hhcmdlckFjT25saW5lICAgICAgICAgID0gaW5mby5jaGFyZ2VyQWNPbmxpbmU7CisgICAgcC0+Y2hhcmdlclVzYk9ubGluZSAgICAgICAgID0gaW5mby5jaGFyZ2VyVXNiT25saW5lOworICAgIHAtPmNoYXJnZXJXaXJlbGVzc09ubGluZSAgICA9IGluZm8uY2hhcmdlcldpcmVsZXNzT25saW5lOworICAgIHAtPm1heENoYXJnaW5nQ3VycmVudCAgICAgICA9IGluZm8ubWF4Q2hhcmdpbmdDdXJyZW50OworICAgIHAtPm1heENoYXJnaW5nVm9sdGFnZSAgICAgICA9IGluZm8ubWF4Q2hhcmdpbmdWb2x0YWdlOworICAgIHAtPmJhdHRlcnlTdGF0dXMgICAgICAgICAgICA9IHN0YXRpY19jYXN0PGludD4oaW5mby5iYXR0ZXJ5U3RhdHVzKTsKKyAgICBwLT5iYXR0ZXJ5SGVhbHRoICAgICAgICAgICAgPSBzdGF0aWNfY2FzdDxpbnQ+KGluZm8uYmF0dGVyeUhlYWx0aCk7CisgICAgcC0+YmF0dGVyeVByZXNlbnQgICAgICAgICAgID0gaW5mby5iYXR0ZXJ5UHJlc2VudDsKKyAgICBwLT5iYXR0ZXJ5TGV2ZWwgICAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlMZXZlbDsKKyAgICBwLT5iYXR0ZXJ5Vm9sdGFnZSAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlWb2x0YWdlOworICAgIHAtPmJhdHRlcnlUZW1wZXJhdHVyZSAgICAgICA9IGluZm8uYmF0dGVyeVRlbXBlcmF0dXJlOworICAgIHAtPmJhdHRlcnlDdXJyZW50ICAgICAgICAgICA9IGluZm8uYmF0dGVyeUN1cnJlbnQ7CisgICAgcC0+YmF0dGVyeUN5Y2xlQ291bnQgICAgICAgID0gaW5mby5iYXR0ZXJ5Q3ljbGVDb3VudDsKKyAgICBwLT5iYXR0ZXJ5RnVsbENoYXJnZSAgICAgICAgPSBpbmZvLmJhdHRlcnlGdWxsQ2hhcmdlOworICAgIHAtPmJhdHRlcnlDaGFyZ2VDb3VudGVyICAgICA9IGluZm8uYmF0dGVyeUNoYXJnZUNvdW50ZXI7CisgICAgcC0+YmF0dGVyeVRlY2hub2xvZ3kgICAgICAgID0gYW5kcm9pZDo6U3RyaW5nOChpbmZvLmJhdHRlcnlUZWNobm9sb2d5LmNfc3RyKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBoYWxfY29udmVyc2lvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgaGVhbHRoCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2luY2x1ZGUvaGFsX2NvbnZlcnNpb24uaCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyYjIwOAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9JSGVhbHRoLmg+CisjaW5jbHVkZSA8aGVhbHRoZC9oZWFsdGhkLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoYWxfY29udmVyc2lvbiB7CisKK3ZvaWQgY29udmVydFRvSGVhbHRoQ29uZmlnKGNvbnN0IHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoQ29uZmlnJiBjb25maWcpOwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25zdCBIZWFsdGhDb25maWcmIGMsIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMpOworCit2b2lkIGNvbnZlcnRUb0hlYWx0aEluZm8oY29uc3Qgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoSW5mbyYgaW5mbyk7Cit2b2lkIGNvbnZlcnRGcm9tSGVhbHRoSW5mbyhjb25zdCBIZWFsdGhJbmZvJiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwKTsKKworfSAgLy8gbmFtZXNwYWNlIGhhbF9jb252ZXJzaW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBIQVJEV0FSRV9JTlRFUkZBQ0VTX0hFQUxUSF9WMV8wX0RFRkFVTFRfSU5DTFVERV9IQUxfQ09OVkVSU0lPTl9IXwpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2xpYmhlYWx0aGQvQW5kcm9pZC5tayBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVmNDQ0NQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMCBAQAorIyBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9TUkNfRklMRVMgOj0gaGVhbHRoZF9ib2FyZF9kZWZhdWx0LmNwcAorTE9DQUxfTU9EVUxFIDo9IGxpYmhlYWx0aGQuZGVmYXVsdAorTE9DQUxfQ0ZMQUdTIDo9IC1XZXJyb3IKK0xPQ0FMX0NfSU5DTFVERVMgOj0gc3lzdGVtL2NvcmUvaGVhbHRoZC9pbmNsdWRlIHN5c3RlbS9jb3JlL2Jhc2UvaW5jbHVkZQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2xpYmhlYWx0aGQvaGVhbHRoZF9ib2FyZF9kZWZhdWx0LmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3Zjk4ZQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxoZWFsdGhkL2hlYWx0aGQuaD4KKwordm9pZCBoZWFsdGhkX2JvYXJkX2luaXQoc3RydWN0IGhlYWx0aGRfY29uZmlnKikKK3sKKyAgICAvLyB1c2UgZGVmYXVsdHMKK30KKworaW50IGhlYWx0aGRfYm9hcmRfYmF0dGVyeV91cGRhdGUoc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzKikKK3sKKyAgICAvLyByZXR1cm4gMCB0byBsb2cgcGVyaW9kaWMgcG9sbGVkIGJhdHRlcnkgc3RhdHVzIHRvIGtlcm5lbCBsb2cKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvdHlwZXMuaGFsIGIvaGVhbHRoLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc3ZDFiZAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA7CisKKy8qKgorICogUG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3Igb3B0aW9uYWwgSEFMIG1ldGhvZChzKSBsaWtlCisgKiBJSGVhbHRoOjplbmVyZ3lDb3VudGVyKCkKKyAqLworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLAorICAgIE5PVF9TVVBQT1JURUQsCisgICAgVU5LTk9XTiwKK307CisKKy8qKgorICogUG9zc2libGUgdmFsdWVzIGZvciBCYXR0ZXJ5IFN0YXR1cy4KKyAqIE5vdGU6IFRoZXNlIGFyZSBjdXJyZW50bHkgaW4gc3luYyB3aXRoIEJhdHRlcnlNYW5hZ2VyIGFuZCBtdXN0IG5vdAorICogYmUgZXh0ZW5kZWQgLyBhbHRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQkFUVEVSWV9TVEFUVVNfIikKK2VudW0gQmF0dGVyeVN0YXR1cyA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAxLAorICAgIENIQVJHSU5HID0gMiwKKyAgICBESVNDSEFSR0lORyA9IDMsCisgICAgLyoqCisgICAgICogQmF0dGVyeSBpcyAqbm90KiBjaGFyZ2luZyAtIHNwZWNpYWwgY2FzZSB3aGVuIGNoYXJnZXIgaXMgcHJlc2VudAorICAgICAqIGJ1dCBiYXR0ZXJ5IGlzbid0IGNoYXJnaW5nCisgICAgICovCisgICAgTk9UX0NIQVJHSU5HID0gNCwKKyAgICBGVUxMID0gNSwKK307CisKKy8qKgorICogUG9zc2libGUgdmFsdWVzIGZvciBCYXR0ZXJ5IEhlYWx0aC4KKyAqIE5vdGU6IFRoZXNlIGFyZSBjdXJyZW50bHkgaW4gc3luYyB3aXRoIEJhdHRlcnlNYW5hZ2VyIGFuZCBtdXN0IG5vdAorICogYmUgZXh0ZW5kZWQgLyBhbHRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQkFUVEVSWV9IRUFMVEhfIikKK2VudW0gQmF0dGVyeUhlYWx0aCA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAxLAorICAgIEdPT0QgPSAyLAorICAgIE9WRVJIRUFUID0gMywKKyAgICBERUFEID0gNCwKKyAgICBPVkVSX1ZPTFRBR0UgPSA1LAorICAgIC8qKgorICAgICAqIEJhdHRlcnkgZXhwZXJpZW5jZWQgYW4gdW5rbm93bi91bnNwZWNpZmlkIGZhaWx1cmUuCisgICAgICovCisgICAgVU5TUEVDSUZJRURfRkFJTFVSRSA9IDYsCisgICAgQ09MRCA9IDcsCit9OworCitzdHJ1Y3QgSGVhbHRoQ29uZmlnIHsKKworICAgIC8qKgorICAgICAqIHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0IGlzIHVzZWQgd2hpbGUgdGhlIGRldmljZSBpcyBub3QgaW4KKyAgICAgKiBzdXNwZW5kLCBvciBpbiBzdXNwZW5kIGFuZCBjb25uZWN0ZWQgdG8gYSBjaGFyZ2VyICh0byB3YXRjaCBmb3IgYmF0dGVyeQorICAgICAqIG92ZXJoZWF0IGR1ZSB0byBjaGFyZ2luZykKKyAgICAgKi8KKyAgICBpbnQzMl90IHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0OworCisgICAgLyoqCisgICAgICogcGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3cgaXMgdXNlZCB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gc3VzcGVuZCBhbmQKKyAgICAgKiBub3QgY29ubmVjdGVkIHRvIGEgY2hhcmdlciAodG8gd2F0Y2ggZm9yIGEgYmF0dGVyeSBkcmFpbmVkIHRvIHplcm8KKyAgICAgKiByZW1haW5pbmcgY2FwYWNpdHkpLgorICAgICAqLworICAgIGludDMyX3QgcGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3c7CisKKyAgICAvKioKKyAgICAgKiBwb3dlcl9zdXBwbHkgc3lzZnMgYXR0cmlidXRlIGZpbGUgcGF0aHMuIFNldCB0aGVzZSB0byBzcGVjaWZpYyBwYXRocworICAgICAqIHRvIHVzZSBmb3IgdGhlIGFzc29jaWF0ZWQgYmF0dGVyeSBwYXJhbWV0ZXJzLiBDbGllbnRzIG11c3Qgc2VhcmNoCisgICAgICogZm9yIGFwcHJvcHJpYXRlIHBvd2VyX3N1cHBseSBhdHRyaWJ1dGUgZmlsZXMgdG8gdXNlLCBmb3IgYW55IHBhdGhzCisgICAgICogbGVmdCBlbXB0eSBhZnRlciB0aGUgSEFMIGlzIGluaXRpYWxpemVkLgorICAgICAqLworCisgICAgLyoqCisgICAgICogYmF0dGVyeVN0YXR1c1BhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGNoYXJnaW5nIHN0YXR1cy4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfU1RBVFVTKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5U3RhdHVzUGF0aDsKKworCisgICAgLyoqCisgICAgICogYmF0dGVyeUhlYWx0aFBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGhlYWx0aC4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfSEVBTFRIKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5SGVhbHRoUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlQcmVzZW50UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgcHJlc2VudCBzdGF0dXMuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX1BSRVNFTlQpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlQcmVzZW50UGF0aDsKKworCisgICAgLyoqCisgICAgICogYmF0dGVyeUNhcGFjaXR5UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIHJlbWFpbmluZyBiYXR0ZXJ5IGNhcGFjaXR5LgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DQVBBQ0lUWSkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUNhcGFjaXR5UGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlWb2x0YWdlUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgdm9sdGFnZS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfVk9MVEFHRV9OT1cpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlWb2x0YWdlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlUZW1wZXJhdHVyZVBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IHRlbXBlcmF0dXJlIGluIHRlbnRocworICAgICAqIG9mIGRlZ3JlZSBjZWxjaXVzLiAoUE9XRVJfU1VQUExZX1BST1BfVEVNUCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlbXBlcmF0dXJlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlUZWNobm9sb2d5UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgdGVjaG5vbG9neS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfVEVDSE5PTE9HWSkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlY2hub2xvZ3lQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN1cnJlbnROb3dQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBpbnN0YW50YW5lb3VzIGN1cnJlbnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NVUlJFTlRfTk9XKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3VycmVudE5vd1BhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5Q3VycmVudEF2Z1BhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGF2ZXJhZ2UgY3VycmVudC4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfQ1VSUkVOVF9BVkcpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlDdXJyZW50QXZnUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgYWNjdW11bGF0ZWQgY2hhcmdlLgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DSEFSR0VfQ09VTlRFUikKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUZ1bGxDaGFyZ2VyUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgY2hhcmdlIHZhbHVlIHdoZW4gaXQKKyAgICAgKiBpcyBjb25zaWRlcmVkIHRvIGJlIGZ1bGwuIChQT1dFUl9TVVBQTFlfUFJPUF9DSEFSR0VfRlVMTCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUZ1bGxDaGFyZ2VQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN5Y2xlQ291bnRQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBjaGFyZ2UgY3ljbGUgY291bnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NZQ0xFX0NPVU5UKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3ljbGVDb3VudFBhdGg7Cit9OworCisvKioKKyAqIFRoZSBwYXJhbWV0ZXIgdG8gaGVhbHRoZCBtYWlubG9vcCB1cGRhdGUgY2FsbHMKKyAqLworc3RydWN0IEhlYWx0aEluZm8geworICAgIC8qKiBBQyBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlckFjT25saW5lOworCisgICAgLyoqIFVTQiBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlclVzYk9ubGluZTsKKworICAgIC8qKiBXaXJlbGVzcyBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlcldpcmVsZXNzT25saW5lOworCisgICAgLyoqIE1heGltdW0gY2hhcmdpbmcgY3VycmVudCBzdXBwb3J0ZWQgYnkgY2hhcmdlciBpbiB1QSAqLworICAgIGludDMyX3QgbWF4Q2hhcmdpbmdDdXJyZW50OworCisgICAgLyoqIE1heGltdW0gY2hhcmdpbmcgdm9sdGFnZSBzdXBwb3J0ZWQgYnkgY2hhcmdlciBpbiB1ViAqLworICAgIGludDMyX3QgbWF4Q2hhcmdpbmdWb2x0YWdlOworCisgICAgQmF0dGVyeVN0YXR1cyBiYXR0ZXJ5U3RhdHVzOworCisgICAgQmF0dGVyeUhlYWx0aCBiYXR0ZXJ5SGVhbHRoOworCisgICAgLyoqICd0cnVlJyBpZiBiYXR0ZXJ5IGlzIHByZXNlbnQgKi8KKyAgICBib29sIGJhdHRlcnlQcmVzZW50OworCisgICAgLyoqIFJlbWFpbmluZyBiYXR0ZXJ5IGNhcGFjaXR5IGluIHBlcmNlbnQgKi8KKyAgICBpbnQzMl90IGJhdHRlcnlMZXZlbDsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgdm9sdGFnZSBpbiB1ViAqLworICAgIGludDMyX3QgYmF0dGVyeVZvbHRhZ2U7CisKKyAgICAvKiogSW5zdGFudGFuZW91cyBiYXR0ZXJ5IHRlbXBlcmF0dXJlIGluIHRlbnRocyBvZiBkZWdyZWUgY2VsY2l1cyAqLworICAgIGludDMyX3QgYmF0dGVyeVRlbXBlcmF0dXJlOworCisgICAgLyoqIEluc3RhbnRhbmVvdXMgYmF0dGVyeSBjdXJyZW50IGluIHVBICovCisgICAgaW50MzJfdCBiYXR0ZXJ5Q3VycmVudDsKKworICAgIC8qKiBCYXR0ZXJ5IGNoYXJnZSBjeWNsZSBjb3VudCAqLworICAgIGludDMyX3QgYmF0dGVyeUN5Y2xlQ291bnQ7CisKKyAgICAvKiogQmF0dGVyeSBjaGFyZ2UgdmFsdWUgd2hlbiBpdCBpcyBjb25zaWRlcmVkIHRvIGJlICJmdWxsIiBpbiB1QS1oICovCisgICAgaW50MzJfdCBiYXR0ZXJ5RnVsbENoYXJnZTsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgY2FwYWNpdHkgaW4gdUEtaCAqLworICAgIGludDMyX3QgYmF0dGVyeUNoYXJnZUNvdW50ZXI7CisKKyAgICAvKiogQmF0dGVyeSB0ZWNobm9sb2d5LCBlLmcuICJMaS1pb24sIExpLVBvbHkiIGV0Yy4gKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlY2hub2xvZ3k7Cit9OwpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNGM4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzMiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEhlYWx0aFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAgYi9oZWFsdGgvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEhlYWx0aFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjRlYjlmCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiaGVhbHRoX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgSGVhbHRoQ29uZmlnID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpIZWFsdGhDb25maWc7Cit1c2luZyBIZWFsdGhJbmZvID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpIZWFsdGhJbmZvOwordXNpbmcgSUhlYWx0aCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SUhlYWx0aDsKK3VzaW5nIFJlc3VsdCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6UmVzdWx0OworCit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitjbGFzcyBIZWFsdGhIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBoZWFsdGggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJSGVhbHRoPigpOworICAgICAgICBBU1NFUlRfTkUoaGVhbHRoLCBudWxscHRyKTsKKyAgICAgICAgaGVhbHRoLT5pbml0KGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiBoYWxDb25maWdPdXQpIHsgY29uZmlnID0gaGFsQ29uZmlnT3V0OyB9KTsKKyAgICB9CisKKyAgICBzcDxJSGVhbHRoPiBoZWFsdGg7CisgICAgSGVhbHRoQ29uZmlnIGNvbmZpZzsKK307CisKKy8qKgorICogRW5zdXJlIEVuZXJneUNvdW50ZXIgY2FsbCByZXR1cm5zIHBvc2l0aXZlIGVuZXJneSBjb3VudGVyIG9yIE5PVF9TVVBQT1JURUQKKyAqLworVEVTVF9GKEhlYWx0aEhpZGxUZXN0LCBUZXN0RW5lcmd5Q291bnRlcikgeworICAgIFJlc3VsdCByZXN1bHQ7CisgICAgaW50NjRfdCBlbmVyZ3kgPSAwOworICAgIGhlYWx0aC0+ZW5lcmd5Q291bnRlcihbJl0oUmVzdWx0IHJldCwgaW50NjRfdCBlbmVyZ3lPdXQpIHsKKyAgICAgICAgcmVzdWx0ID0gcmV0OworICAgICAgICBlbmVyZ3kgPSBlbmVyZ3lPdXQ7CisgICAgfSk7CisKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQgPT0gUmVzdWx0OjpTVUNDRVNTIHx8IHJlc3VsdCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIEFTU0VSVF9UUlVFKHJlc3VsdCAhPSBSZXN1bHQ6OlNVQ0NFU1MgfHwgZW5lcmd5ID4gMCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9oZWFsdGgvQW5kcm9pZC5icCBiL2hlYWx0aC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZjcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAgYi9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg0NjIwMAotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJS2V5bWFzdGVyRGV2aWNlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9LZXltYXN0ZXJEZXZpY2VBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JSHdLZXltYXN0ZXJEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvQm5Id0tleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9CcEh3S2V5bWFzdGVyRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0JzS2V5bWFzdGVyRGV2aWNlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaGFsIGIva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY0NzY1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbApAQCAtMCwwICsxLDM0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wOworCisvKioKKyAqIEtleW1hc3RlciBkZXZpY2UgZGVmaW5pdGlvbi4gIEZvciB0aG9yb3VnaCBkb2N1bWVudGF0aW9uIHNlZSB0aGUgaW1wbGVtZW50ZXIncyByZWZlcmVuY2UsIGF0CisgKiBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9zZWN1cml0eS9rZXlzdG9yZS9pbXBsZW1lbnRlci1yZWYuaHRtbAorICovCitpbnRlcmZhY2UgSUtleW1hc3RlckRldmljZSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1bmRlcmx5aW5nIGtleW1hc3RlciBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaXNTZWN1cmUgaXMgdHJ1ZSBpZiBrZXlzIGFyZSBzdG9yZWQgYW5kIG5ldmVyIGxlYXZlIHNlY3VyZSBoYXJkd2FyZSAoVHJ1c3RlZAorICAgICAqICAgICAgICAgICAgIEV4ZWN1dGlvbiBFbnZpcm9ubWVudCBvciBzaW1pbGFyKS4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5CisgICAgICogICAgICAgICAgICAgbGF1bmNoZWQgd2l0aCBNYXJzaG1hbGxvdyBvciBsYXRlciBtdXN0IGhhdmUgc2VjdXJlIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0VsbGlwdGljQ3VydmUgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgRWxsaXB0aWMgQ3VydmUgY3J5cHRvZ3JhcGh5CisgICAgICogICAgICAgICAgICAgd2l0aCB0aGUgTklTVCBjdXJ2ZXMgKFAtMjI0LCBQLTI1NiwgUC0zODQsIGFuZCBQLTUyMSkuIENERCByZXF1aXJlcyB0aGF0IGFsbAorICAgICAqICAgICAgICAgICAgIGRldmljZXMgaW5pdGlhbGx5IGxhdW5jaGVkIHdpdGggTm91Z2F0IG9yIGxhdGVyIG11c3Qgc3VwcG9ydCBFbGxpcHRpYyBDdXJ2ZQorICAgICAqICAgICAgICAgICAgIGNyeXB0b2dyYXBoeS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNTeW1tZXRyaWNDcnlwdG9ncmFwaHkgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgc3ltbWV0cmljCisgICAgICogICAgICAgICAgICAgY3J5cHRvZ3JhcGh5LCBpbmNsdWRpbmcgQUVTIGFuZCBITUFDLiBDREQgcmVxdWlyZXMgdGhhdCBhbGwgZGV2aWNlcyBpbml0aWFsbHkKKyAgICAgKiAgICAgICAgICAgICBsYXVuY2hlZCB3aXRoIE5vdWdhdCBvciBsYXRlciBtdXN0IHN1cHBvcnQgaGFyZHdhcmUgZW5mb3JjZW1lbnQgb2YgS2V5bWFzdGVyCisgICAgICogICAgICAgICAgICAgYXV0aG9yaXphdGlvbnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1cHBvcnRzQXR0ZXN0YXRpb24gaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZ2VuZXJhdGlvbiBvZiBLZXltYXN0ZXIgcHVibGljCisgICAgICogICAgICAgICAgICAga2V5IGF0dGVzdGF0aW9uIGNlcnRpZmljYXRlcywgc2lnbmVkIHdpdGggYSBrZXkgaW5qZWN0ZWQgaW4gYSBzZWN1cmUKKyAgICAgKiAgICAgICAgICAgICBlbnZpcm9ubWVudC4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5IGxhdW5jaGVkIHdpdGggQW5kcm9pZCBPIG9yCisgICAgICogICAgICAgICAgICAgbGF0ZXIgbXVzdCBzdXBwb3J0IGhhcmR3YXJlIGF0dGVzdGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0FsbERpZ2VzdHMgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgYWxsIGtleW1hc3RlciBkaWdlc3QgZnVuY3Rpb25zLAorICAgICAqICAgICAgICAgICAgIG5hbWVseSBORC01LCBTSEEtMSwgU0hBLTIyNCwgU0hBLTI1NiwgU0hBLTM4NCBhbmQgU0hBLTUxMi4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsCisgICAgICogICAgICAgICAgICAgZGV2aWNlcyBsYXVuY2hlZCBpbml0aWFsbHkgd2l0aCBBbmRyb2lkIE8gb3IgbGF0ZXIgbXVzdCBzdXBwb3J0IGFsbCBkaWdlc3RzLgorICAgICAqCisgICAgICogQHJldHVybiBrZXltYXN0ZXJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBrZXltYXN0ZXIgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleW1hc3RlckF1dGhvck5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGF1dGhvciBvZiB0aGUga2V5bWFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgKGdlbmVyYWxseSB0aGlzIHNob3VsZCBiZSB0aGUgbmFtZSBvZiBhbiBvcmdhbml6YXRpb24sIG5vdCBhbiBpbmRpdmlkdWFsLikKKyAgICAgKi8KKyAgICBnZXRIYXJkd2FyZUZlYXR1cmVzKCkKKyAgICAgICAgZ2VuZXJhdGVzKGJvb2wgaXNTZWN1cmUsIGJvb2wgc3VwcG9ydHNFbGxpcHRpY0N1cnZlLCBib29sIHN1cHBvcnRzU3ltbWV0cmljQ3J5cHRvZ3JhcGh5LAorICAgICAgICAgICAgICAgICAgYm9vbCBzdXBwb3J0c0F0dGVzdGF0aW9uLCBib29sIHN1cHBvcnRzQWxsRGlnZXN0cywgc3RyaW5nIGtleW1hc3Rlck5hbWUsCisgICAgICAgICAgICAgICAgICBzdHJpbmcga2V5bWFzdGVyQXV0aG9yTmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGVudHJvcHkgdG8gdGhlIFJORyB1c2VkIGJ5IGtleW1hc3Rlci4gRW50cm9weSBhZGRlZCB0aHJvdWdoIHRoaXMgbWV0aG9kIGlzIGd1YXJhbnRlZWQKKyAgICAgKiBub3QgdG8gYmUgdGhlIG9ubHkgc291cmNlIG9mIGVudHJvcHkgdXNlZCwgYW5kIHRoZSBtaXhpbmcgZnVuY3Rpb24gaXMgcmVxdWlyZWQgdG8gYmUgc2VjdXJlLAorICAgICAqIGluIHRoZSBzZW5zZSB0aGF0IGlmIHRoZSBSTkcgaXMgc2VlZGVkIChmcm9tIGFueSBzb3VyY2UpIHdpdGggYW55IGRhdGEgdGhlIGF0dGFja2VyIGNhbm5vdAorICAgICAqIHByZWRpY3QgKG9yIGNvbnRyb2wpLCB0aGVuIHRoZSBSTkcgb3V0cHV0IGlzIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gcmFuZG9tLiBUaHVzLCBpZiB0aGUKKyAgICAgKiBlbnRyb3B5IGZyb20gYW55IHNvdXJjZSBpcyBnb29kLCB0aGUgb3V0cHV0IG11c3QgYmUgZ29vZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhIEJ5dGVzIHRvIGJlIG1peGVkIGludG8gdGhlIFJORy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYWRkUm5nRW50cm9weSh2ZWM8dWludDhfdD4gZGF0YSkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBrZXksIG9yIGtleSBwYWlyLCByZXR1cm5pbmcgYSBrZXkgYmxvYiBhbmQvb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVBhcmFtcyBLZXkgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGFzIGtleW1hc3RlciB0YWcvdmFsdWUgcGFpcnMsIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaW4gcGFyYW1zLiBTZWUgVGFnIGluIHR5cGVzLmhhbCBmb3IgdGhlIGZ1bGwgbGlzdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUJsb2IgT3BhcXVlLCBlbmNyeXB0ZWQgZGVzY3JpcHRvciBvZiB0aGUgZ2VuZXJhdGVkIGtleSwgd2hpY2ggZ2VuZXJhbGx5IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgICAgICBjb3B5IG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHdyYXBwZWQgaW4gYSBrZXkgdW5hdmFpbGFibGUgb3V0c2lkZSBzZWN1cmUgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZXNjcmlwdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIGtleS4gIFNlZSBLZXlDaGFyYWN0ZXJpc3RpcyBpbgorICAgICAqICAgICAgICAgICAgIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBnZW5lcmF0ZUtleSh2ZWM8S2V5UGFyYW1ldGVyPiBrZXlQYXJhbXMpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlCbG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSBrZXksIG9yIGtleSBwYWlyLCByZXR1cm5pbmcgYSBrZXkgYmxvYiBhbmQvb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVBhcmFtcyBLZXkgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGFzIGtleW1hc3RlciB0YWcvdmFsdWUgcGFpcnMsIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaW4gcGFyYW1zLiAgU2VlIFRhZyBmb3IgdGhlIGZ1bGwgbGlzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlGb3JtYXQgVGhlIGZvcm1hdCBvZiB0aGUga2V5IG1hdGVyaWFsIHRvIGltcG9ydC4gU2VlIEtleUZvcm1hdCBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcHJhbSBrZXlEYXRhIFRoZSBrZXkgbWF0ZXJpYWwgdG8gaW1wb3J0LCBpbiB0aGUgZm9ybWF0IHNwZWNpZmVkIGluIGtleUZvcm1hdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5QmxvYiBPcGFxdWUsIGVuY3J5cHRlZCBkZXNjcmlwdG9yIG9mIHRoZSBnZW5lcmF0ZWQga2V5LCB3aGljaCB3aWxsIGdlbmVyYWxseQorICAgICAqICAgICAgICAgICAgIGNvbnRhaW4gYSBjb3B5IG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHdyYXBwZWQgaW4gYSBrZXkgdW5hdmFpbGFibGUgb3V0c2lkZSBzZWN1cmUKKyAgICAgKiAgICAgICAgICAgICBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5Q2hhcmFjdGVyaXN0aWNzIERlY3JpcHRpb24gb2YgdGhlIGdlbmVyYXRlZCBrZXkuICBTZWUgS2V5Q2hhcmFjdGVyaXN0aXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgaW1wb3J0S2V5KHZlYzxLZXlQYXJhbWV0ZXI+IHBhcmFtcywgS2V5Rm9ybWF0IGtleUZvcm1hdCwgdmVjPHVpbnQ4X3Q+IGtleURhdGEpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlCbG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgc3BlY2lmaWVkIGtleSwgaWYgdGhlIGtleUJsb2IgaXMgdmFsaWQgKGltcGxlbWVudGF0aW9ucworICAgICAqIG11c3QgZnVsbHkgdmFsaWRhdGUgdGhlIGludGVncml0eSBvZiB0aGUga2V5KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlCbG9iIFRoZSBvcGFxdWUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBnZW5lcmF0ZUtleSgpIG9yIGltcG9ydEtleSgpOworICAgICAqCisgICAgICogQHBhcmFtIGNsaWVudElkIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgY2xpZW50LiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9JRCBkYXRhIHByb3ZpZGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvbi9pbXBvcnQuICBXaXRob3V0IHRoZQorICAgICAqICAgICAgICAgICAgIGNvcnJlY3QgdmFsdWUgaXQgbXVzdCBiZSBjcnlwdG9ncmFwaGljYWxseSBpbXBvc3NpYmxlIGZvciB0aGUgc2VjdXJlIGhhcmR3YXJlIHRvCisgICAgICogICAgICAgICAgICAgb2J0YWluIHRoZSBrZXkgbWF0ZXJpYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXBwRGF0YSBBbiBvcGFxdWUgYnl0ZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9EQVRBIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZWNyaXB0aW9uIG9mIHRoZSBnZW5lcmF0ZWQga2V5LiAgU2VlIEtleUNoYXJhY3RlcmlzdGlzIGluCisgICAgICogICAgICAgICAgICAgdHlwZXMuaGFsLgorICAgICAqLworICAgIGdldEtleUNoYXJhY3RlcmlzdGljcyh2ZWM8dWludDhfdD4ga2V5QmxvYiwgdmVjPHVpbnQ4X3Q+IGNsaWVudElkLCB2ZWM8dWludDhfdD4gYXBwRGF0YSkKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBFeHBvcnRzIGEgcHVibGljIGtleSwgcmV0dXJuaW5nIHRoZSBrZXkgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXQuCisgICAgICoKKyAgICAgKiBAcGFybSBrZXlGb3JtYXQgVGhlIGZvcm1hdCB1c2VkIGZvciBleHBvcnQuIFNlZSBLZXlGb3JtYXQgaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHBhcmFtIGtleUJsb2IgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUKKyAgICAgKiAgICAgICAgICAgICByZWZlcmVuY2VkIGtleSBtdXN0IGJlIGFzeW1tZXRyaWMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2xpZW50SWQgQW4gb3BhcXVlIGJ5dGUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSBjbGllbnQuIFRoaXMgdmFsdWUgbXVzdCBtYXRjaCB0aGUKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0lEIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcHBEYXRhIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24uIFRoaXMgdmFsdWUgbXVzdCBtYXRjaCB0aGUKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0RBVEEgZGF0YSBwcm92aWRlZCBkdXJpbmcga2V5IGdlbmVyYXRpb24vaW1wb3J0LiAgV2l0aG91dCB0aGUKKyAgICAgKiAgICAgICAgICAgICBjb3JyZWN0IHZhbHVlIGl0IG11c3QgYmUgY3J5cHRvZ3JhcGhpY2FsbHkgaW1wb3NzaWJsZSBmb3IgdGhlIHNlY3VyZSBoYXJkd2FyZSB0bworICAgICAqICAgICAgICAgICAgIG9idGFpbiB0aGUga2V5IG1hdGVyaWFsLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5TWF0ZXJpYWwgVGhlIHB1YmxpYyBrZXkgbWF0ZXJpYWwgaW4gUEtDUyM4IGZvcm1hdC4KKyAgICAgKi8KKyAgICBleHBvcnRLZXkoS2V5Rm9ybWF0IGtleUZvcm1hdCwgdmVjPHVpbnQ4X3Q+IGtleUJsb2IsIHZlYzx1aW50OF90PiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGFwcERhdGEpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlNYXRlcmlhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBzaWduZWQgWC41MDkgY2VydGlmaWNhdGUgY2hhaW4gYXR0ZXN0aW5nIHRvIHRoZSBwcmVzZW5jZSBvZiBrZXlUb0F0dGVzdCBpbgorICAgICAqIGtleW1hc3Rlci4gVGhlIGNlcnRpZmljYXRlIHdpbGwgY29udGFpbiBhbiBleHRlbnNpb24gd2l0aCBPSUQgMS4zLjYuMS40LjEuMTExMjkuMi4xLjE3IGFuZAorICAgICAqIHZhbHVlIGRlZmluZWQgaW46CisgICAgICoKKyAgICAgKiAgICAgaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvYXJ0aWNsZXMvc2VjdXJpdHkta2V5LWF0dGVzdGF0aW9uLmh0bWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5VG9BdHRlc3QgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUKKyAgICAgKiAgICAgICAgICAgICByZWZlcmVuY2VkIGtleSBtdXN0IGJlIGFzeW1tZXRyaWMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXR0ZXN0UGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhdHRlc3RhdGlvbiwgbm90YWJseSBUYWc6OkFUVEVTVEFUSU9OX0NIQUxMRU5HRS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYXR0ZXN0S2V5KHZlYzx1aW50OF90PiBrZXlUb0F0dGVzdCwgdmVjPEtleVBhcmFtZXRlcj4gYXR0ZXN0UGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dmVjPHVpbnQ4X3Q+PiBjZXJ0Q2hhaW4pOworCisgICAgLyoqCisgICAgICogVXBncmFkZXMgYW4gb2xkIGtleS4gS2V5cyBjYW4gYmVjb21lICJvbGQiIGluIHR3byB3YXlzOiBLZXltYXN0ZXIgY2FuIGJlIHVwZ3JhZGVkIHRvIGEgbmV3CisgICAgICogdmVyc2lvbiwgb3IgdGhlIHN5c3RlbSBjYW4gYmUgdXBkYXRlZCB0byBpbnZhbGlkYXRlIHRoZSBPUyB2ZXJzaW9uIGFuZC9vciBwYXRjaCBsZXZlbC4gSW4KKyAgICAgKiBlaXRoZXIgY2FzZSwgYXR0ZW1wdHMgdG8gdXNlIGFuIG9sZCBrZXkgd2l0aCBnZXRLZXlDaGFyYWN0ZXJpc3RpY3MoKSwgZXhwb3J0S2V5KCksCisgICAgICogYXR0ZXN0S2V5KCkgb3IgYmVnaW4oKSB3aWxsIHJlc3VsdCBpbiBrZXltYXN0ZXIgcmV0dXJuaW5nCisgICAgICogRXJyb3JDb2RlOjpLRVlfUkVRVUlSRVNfVVBHUkFERS4gVGhpcyBtZXRob2QgbXVzdCB0aGVuIGJlIGNhbGxlZCB0byB1cGdyYWRlIHRoZSBrZXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYlRvVXBncmFkZSBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB1cGdyYWRlUGFyYW1zIEEgcGFyYW1ldGVyIGxpc3QgY29udGFpbmluZyBhbnkgcGFyYW1ldGVycyBuZWVkZWQgdG8gY29tcGxldGUgdGhlCisgICAgICogICAgICAgICAgICAgdXBncmFkZSwgaW5jbHVkaW5nIFRhZzo6QVBQTElDQVRJT05fSUQgYW5kIFRhZzo6QVBQTElDQVRJT05fREFUQS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICB1cGdyYWRlS2V5KHZlYzx1aW50OF90PiBrZXlCbG9iVG9VcGdyYWRlLCB2ZWM8S2V5UGFyYW1ldGVyPiB1cGdyYWRlUGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dWludDhfdD4gdXBncmFkZWRLZXlCbG9iKTsKKworICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGtleSwgb3Iga2V5IHBhaXIsIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5IGJsb2IuIEFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpdAorICAgICAqIHdpbGwgYmUgaW1wb3NzaWJsZSB0byB1c2UgdGhlIGtleSBmb3IgYW55IG90aGVyIG9wZXJhdGlvbnMuIE1heSBiZSBhcHBsaWVkIHRvIGtleXMgZnJvbQorICAgICAqIGZvcmVpZ24gcm9vdHMgb2YgdHJ1c3QgKGtleXMgbm90IHVzYWJsZSB1bmRlciB0aGUgY3VycmVudCByb290IG9mIHRydXN0KS4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBOT1AgZm9yIGtleXMgdGhhdCBkb24ndCBoYXZlIHJvbGxiYWNrIHByb3RlY3Rpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYlRvVXBncmFkZSBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICBkZWxldGVLZXkodmVjPHVpbnQ4X3Q+IGtleUJsb2IpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IpOworCisgICAgLyoqCisgICAgICogRGVsZXRlcyBhbGwga2V5cyBpbiB0aGUgaGFyZHdhcmUga2V5c3RvcmUuIFVzZWQgd2hlbiBrZXlzdG9yZSBpcyByZXNldCBjb21wbGV0ZWx5LiBBZnRlcgorICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpdCB3aWxsIGJlIGltcG9zc2libGUgdG8gdXNlIGFueSBwcmV2aW91c2x5IGdlbmVyYXRlZCBvciBpbXBvcnRlZCBrZXkKKyAgICAgKiBibG9icyBmb3IgYW55IG9wZXJhdGlvbnMuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgTk9QIGlmIGtleXMgZG9uJ3QgaGF2ZSByb2xsYmFjayBwcm90ZWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtLgorICAgICAqLworICAgIGRlbGV0ZUFsbEtleXMoKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIGtub3dsZWRnZSBvZiB0aGUgZGV2aWNlJ3MgaWRzLiBUaGlzIHByZXZlbnRzIGFsbCBkZXZpY2UgaWQgYXR0ZXN0YXRpb24gaW4gdGhlCisgICAgICogZnV0dXJlLiBUaGUgZGVzdHJ1Y3Rpb24gbXVzdCBiZSBwZXJtYW5lbnQgc28gdGhhdCBub3QgZXZlbiBhIGZhY3RvcnkgcmVzZXQgd2lsbCByZXN0b3JlIHRoZQorICAgICAqIGRldmljZSBpZHMuCisgICAgICoKKyAgICAgKiBEZXZpY2UgaWQgYXR0ZXN0YXRpb24gbWF5IGJlIHByb3ZpZGVkIG9ubHkgaWYgdGhpcyBtZXRob2QgaXMgZnVsbHkgaW1wbGVtZW50ZWQsIGFsbG93aW5nIHRoZQorICAgICAqIHVzZXIgdG8gcGVybWFuZW50bHkgZGlzYWJsZSBkZXZpY2UgaWQgYXR0ZXN0YXRpb24uIElmIHRoaXMgY2Fubm90IGJlIGd1YXJhbnRlZWQsIHRoZSBkZXZpY2UKKyAgICAgKiBtdXN0IG5ldmVyIGF0dGVzdCBhbnkgZGV2aWNlIGlkcy4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBOT1AgaWYgZGV2aWNlIGlkIGF0dGVzdGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgZGVzdHJveUF0dGVzdGF0aW9uSWRzKCkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBCZWdpbnMgYSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiB1c2luZyB0aGUgc3BlY2lmaWVkIGtleS4gSWYgYWxsIGlzIHdlbGwsIGJlZ2luKCkgd2lsbCByZXR1cm4KKyAgICAgKiBFcnJvckNvZGU6Ok9LIGFuZCBjcmVhdGUgYW4gb3BlcmF0aW9uIGhhbmRsZSB3aGljaCBtdXN0IGJlIHBhc3NlZCB0byBzdWJzZXF1ZW50IGNhbGxzIHRvCisgICAgICogdXBkYXRlKCksIGZpbmlzaCgpIG9yIGFib3J0KCkuCisgICAgICoKKyAgICAgKiBJdCBpcyBjcml0aWNhbCB0aGF0IGVhY2ggY2FsbCB0byBiZWdpbigpIGJlIHBhaXJlZCB3aXRoIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZpbmlzaCgpIG9yCisgICAgICogYWJvcnQoKSwgdG8gYWxsb3cgdGhlIGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbiB0byBjbGVhbiB1cCBhbnkgaW50ZXJuYWwgb3BlcmF0aW9uIHN0YXRlLgorICAgICAqIEZhaWx1cmUgdG8gZG8gdGhpcyBtYXkgbGVhayBpbnRlcm5hbCBzdGF0ZSBzcGFjZSBvciBvdGhlciBpbnRlcm5hbCByZXNvdXJjZXMgYW5kIG1heQorICAgICAqIGV2ZW50dWFsbHkgY2F1c2UgYmVnaW4oKSB0byByZXR1cm4gRXJyb3JDb2RlOjpUT09fTUFOWV9PUEVSQVRJT05TIHdoZW4gaXQgcnVucyBvdXQgb2Ygc3BhY2UKKyAgICAgKiBmb3Igb3BlcmF0aW9ucy4gQW55IHJlc3VsdCBvdGhlciB0aGFuIEVycm9yQ29kZTo6T0sgZnJvbSBiZWdpbigpLCB1cGRhdGUoKSBvciBmaW5pc2goKQorICAgICAqIGltcGxpY2l0bHkgYWJvcnRzIHRoZSBvcGVyYXRpb24sIGluIHdoaWNoIGNhc2UgYWJvcnQoKSBuZWVkIG5vdCBiZSBjYWxsZWQgKGFuZCB3aWxsIHJldHVybgorICAgICAqIEVycm9yQ29kZTo6SU5WQUxJRF9PUEVSQVRJT05fSEFORExFIGlmIGNhbGxlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHVycG9zZSBUaGUgcHVycG9zZSBvZiB0aGUgb3BlcmF0aW9uLCBvbmUgb2YgS2V5UHVycG9zZTo6RU5DUllQVCwgS2V5UHVycG9zZTo6REVDUllQVCwKKyAgICAgKiAgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOIG9yIEtleVB1cnBvc2U6OlZFUklGWS4gTm90ZSB0aGF0IGZvciBBRUFEIG1vZGVzLCBlbmNyeXB0aW9uIGFuZAorICAgICAqICAgICAgICAgICAgIGRlY3J5cHRpb24gaW1wbHkgc2lnbmluZyBhbmQgdmVyaWZpY2F0aW9uLCByZXNwZWN0aXZlbHksIGJ1dCBtdXN0IGJlIHNwZWNpZmllZCBhcworICAgICAqICAgICAgICAgICAgIEtleVB1cnBvc2U6OkVOQ1JZUFQgYW5kIEtleVB1cnBvc2U6OkRFQ1JZUFQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYiBUaGUgb3BhcXVlIGtleSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUga2V5CisgICAgICogICAgICAgICAgICAgbXVzdCBoYXZlIGEgcHVycG9zZSBjb21wYXRpYmxlIHdpdGggcHVycG9zZSBhbmQgYWxsIG9mIGl0cyB1c2FnZSByZXF1aXJlbWVudHMKKyAgICAgKiAgICAgICAgICAgICBtdXN0IGJlIHNhdGlzZmllZCwgb3IgYmVnaW4oKSB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluUGFyYW1zIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi4gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBwcm92aWRlCisgICAgICogICAgICAgICAgICAgYXV0aGVudGljYXRpb24gZGF0YSwgd2l0aCBUYWc6OkFVVEhfVE9LRU4uIElmIFRhZzo6QVBQTElDQVRJT05fSUQgb3IKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0RBVEEgd2VyZSBwcm92aWRlZCBkdXJpbmcgZ2VuZXJhdGlvbiwgdGhleSBtdXN0IGJlIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaGVyZSwgb3IgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IuIEZvciBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgdGhhdCByZXF1aXJlIGEgbm9uY2Ugb3IgSVYsIG9uIGtleXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCB3aXRoIFRhZzo6Q0FMTEVSX05PTkNFLAorICAgICAqICAgICAgICAgICAgIGluUGFyYW1zIG1heSBjb250YWluIGEgdGFnIFRhZzo6Tk9OQ0UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRQYXJhbXMgT3V0cHV0IHBhcmFtZXRlcnMuIFVzZWQgdG8gcmV0dXJuIGFkZGl0aW9uYWwgZGF0YSBmcm9tIHRoZSBvcGVyYXRpb24KKyAgICAgKiAgICAgICAgICAgICBpbml0aWFsaXphdGlvbiwgbm90YWJseSB0byByZXR1cm4gdGhlIElWIG9yIG5vbmNlIGZyb20gb3BlcmF0aW9ucyB0aGF0IGdlbmVyYXRlCisgICAgICogICAgICAgICAgICAgYW4gSVYgb3Igbm9uY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG9wZXJhdGlvbkhhbmRsZSBUaGUgbmV3bHktY3JlYXRlZCBvcGVyYXRpb24gaGFuZGxlIHdoaWNoIG11c3QgYmUgcGFzc2VkIHRvIHVwZGF0ZSgpLAorICAgICAqICAgICAgICAgICAgIGZpbmlzaCgpIG9yIGFib3J0KCkuCisgICAgICovCisgICAgYmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCB2ZWM8dWludDhfdD4ga2V5LCB2ZWM8S2V5UGFyYW1ldGVyPiBpblBhcmFtcykKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPEtleVBhcmFtZXRlcj4gb3V0UGFyYW1zLCBPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGRhdGEgdG8sIGFuZCBwb3NzaWJseSByZWNlaXZlcyBvdXRwdXQgZnJvbSwgYW4gb25nb2luZyBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiBiZWd1bgorICAgICAqIHdpdGggYmVnaW4oKS4KKyAgICAgKgorICAgICAqIElmIG9wZXJhdGlvbkhhbmRsZSBpcyBpbnZhbGlkLCB1cGRhdGUoKSB3aWxsIHJldHVybiBFcnJvckNvZGU6OklOVkFMSURfT1BFUkFUSU9OX0hBTkRMRS4KKyAgICAgKgorICAgICAqIHVwZGF0ZSgpIG1heSBub3QgY29uc3VtZSBhbGwgb2YgdGhlIGRhdGEgcHJvdmlkZWQgaW4gdGhlIGRhdGEgYnVmZmVyLiB1cGRhdGUoKSB3aWxsIHJldHVybgorICAgICAqIHRoZSBhbW91bnQgY29uc3VtZWQgaW4gaW5wdXRDb25zdW1lZC4gVGhlIGNhbGxlciBtYXkgcHJvdmlkZSB0aGUgdW5jb25zdW1lZCBkYXRhIGluIGEKKyAgICAgKiBzdWJzZXF1ZW50IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5QYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLiBGb3IgQUVBRCBtb2RlcywgdGhpcyBpcyB1c2VkIHRvCisgICAgICogICAgICAgICAgICAgc3BlY2lmeSBUYWc6OkFERElUSU9OQUxfREFUQS4gTm90ZSB0aGF0IGFkZGl0aW9uYWwgZGF0YSBtYXkgYmUgcHJvdmlkZWQgaW4KKyAgICAgKiAgICAgICAgICAgICBtdWx0aXBsZSBjYWxscyB0byB1cGRhdGUoKSwgYnV0IG9ubHkgdW50aWwgaW5wdXQgZGF0YSBoYXMgYmVlbiBwcm92aWRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCBEYXRhIHRvIGJlIHByb2Nlc3NlZCwgcGVyIHRoZSBwYXJhbWV0ZXJzIGVzdGFibGlzaGVkIGluIHRoZSBjYWxsIHRvIGJlZ2luKCkuCisgICAgICogICAgICAgICAgICAgTm90ZSB0aGF0IHVwZGF0ZSgpIG1heSBvciBtYXkgbm90IGNvbnN1bWUgYWxsIG9mIHRoZSBkYXRhIHByb3ZpZGVkLiBTZWUKKyAgICAgKiAgICAgICAgICAgICBpbnB1dENvbnN1bWVkLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW5wdXRDb25zdW1lZCBBbW91bnQgb2YgZGF0YSB0aGF0IHdhcyBjb25zdW1lZCBieSB1cGRhdGUoKS4gSWYgdGhpcyBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgYW1vdW50IHByb3ZpZGVkLCB0aGUgY2FsbGVyIG1heSBwcm92aWRlIHRoZSByZW1haW5kZXIgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8KKyAgICAgKiAgICAgICAgICAgICB1cGRhdGUoKSBvciBmaW5pc2goKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIE91dHB1dCBwYXJhbWV0ZXJzLCB1c2VkIHRvIHJldHVybiBhZGRpdGlvbmFsIGRhdGEgZnJvbSB0aGUgb3BlcmF0aW9uIFRoZQorICAgICAqICAgICAgICAgICAgIGNhbGxlciB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIGFycmF5IGFuZCBtdXN0IGZyZWUgaXQgd2l0aAorICAgICAqICAgICAgICAgICAgIGtleW1hc3Rlcl9mcmVlX3BhcmFtX3NldCgpLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRwdXQgVGhlIG91dHB1dCBkYXRhLCBpZiBhbnkuCisgICAgICovCisgICAgdXBkYXRlKE9wZXJhdGlvbkhhbmRsZSBvcGVyYXRpb25IYW5kbGUsIHZlYzxLZXlQYXJhbWV0ZXI+IGluUGFyYW1zLCB2ZWM8dWludDhfdD4gaW5wdXQpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHVpbnQzMl90IGlucHV0Q29uc3VtZWQsIHZlYzxLZXlQYXJhbWV0ZXI+IG91dFBhcmFtcywKKyAgICAgICAgICAgICAgICAgIHZlYzx1aW50OF90PiBvdXRwdXQpOworCisgICAgLyoqCisgICAgICogRmluYWxpemVzIGEgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24gYmVndW4gd2l0aCBiZWdpbigpIGFuZCBpbnZhbGlkYXRlcyBvcGVyYXRpb25IYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuIFRoaXMgaGFuZGxlIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICBpbnZhbGlkIHdoZW4gZmluaXNoKCkgcmV0dXJucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24uIEZvciBBRUFEIG1vZGVzLCB0aGlzIGlzIHVzZWQgdG8KKyAgICAgKiAgICAgICAgICAgICBzcGVjaWZ5IFRhZzo6QURESVRJT05BTF9EQVRBLCBidXQgb25seSBpZiBubyBpbnB1dCBkYXRhIHdhcyBwcm92aWRlZCB0byB1cGRhdGUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCBEYXRhIHRvIGJlIHByb2Nlc3NlZCwgcGVyIHRoZSBwYXJhbWV0ZXJzIGVzdGFibGlzaGVkIGluIHRoZSBjYWxsIHRvCisgICAgICogICAgICAgICAgICAgYmVnaW4oKS4gZmluaXNoKCkgbXVzdCBjb25zdW1lIGFsbCBwcm92aWRlZCBkYXRhIG9yIHJldHVybgorICAgICAqICAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYmUgdmVyaWZpZWQgaWYgdGhlIHB1cnBvc2Ugc3BlY2lmaWVkIGluIHRoZSBiZWdpbigpIGNhbGwKKyAgICAgKiAgICAgICAgICAgICB3YXMgS2V5UHVycG9zZTo6VkVSSUZZLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIEFueSBvdXRwdXQgcGFyYW1ldGVycyBnZW5lcmF0ZWQgYnkgZmluaXNoKCkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG91dHB1dCBUaGUgb3V0cHV0IGRhdGEsIGlmIGFueS4KKyAgICAgKi8KKyAgICBmaW5pc2goT3BlcmF0aW9uSGFuZGxlIG9wZXJhdGlvbkhhbmRsZSwgdmVjPEtleVBhcmFtZXRlcj4gaW5QYXJhbXMsIHZlYzx1aW50OF90PiBpbnB1dCwKKyAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSkKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPEtleVBhcmFtZXRlcj4gb3V0UGFyYW1zLCB2ZWM8dWludDhfdD4gb3V0cHV0KTsKKworICAgIC8qKgorICAgICAqIEFib3J0cyBhIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9uIGJlZ3VuIHdpdGggYmVnaW4oKSwgZnJlZWluZyBhbGwgaW50ZXJuYWwgcmVzb3VyY2VzIGFuZAorICAgICAqIGludmFsaWRhdGluZyBvcGVyYXRpb25IYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuIFRoaXMgaGFuZGxlIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICBpbnZhbGlkIHdoZW4gYWJvcnQoKSByZXR1cm5zLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBhYm9ydChPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKK307CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZjViZjgKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQyIEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgS2V5bWFzdGVyRGV2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGlic29mdGtleW1hc3RlcmRldmljZSBcCisgICAgbGliY3J5cHRvIFwKKyAgICBsaWJrZXltYXN0ZXIxIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkbCBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvS2V5bWFzdGVyRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2RkMzI5Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAKQEAgLTAsMCArMSw3NTEgQEAKKy8qCisgKioKKyAqKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoqCisgKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoqCisgKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoqCisgKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLWltcGwiCisKKyNpbmNsdWRlICJLZXltYXN0ZXJEZXZpY2UuaCIKKworI2luY2x1ZGUgPGN1dGlscy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2tleW1hc3Rlcl9kZWZzLmg+CisjaW5jbHVkZSA8a2V5bWFzdGVyL2tleW1hc3Rlcl9jb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8a2V5bWFzdGVyL3NvZnRfa2V5bWFzdGVyX2RldmljZS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmtleW1hc3Rlcjo6U29mdEtleW1hc3RlckRldmljZTsKKworY2xhc3MgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckVuZm9yY2VtZW50IDogcHVibGljIDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudCB7CisgIHB1YmxpYzoKKyAgICBTb2Z0d2FyZU9ubHlIaWRsS2V5bWFzdGVyRW5mb3JjZW1lbnQoKSA6IEtleW1hc3RlckVuZm9yY2VtZW50KDY0LCA2NCkge30KKworICAgIHVpbnQzMl90IGdldF9jdXJyZW50X3RpbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0cDsKKyAgICAgICAgaW50IGVyciA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHApOworICAgICAgICBpZiAoZXJyIHx8IHRwLnR2X3NlYyA8IDApIHJldHVybiAwOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRwLnR2X3NlYyk7CisgICAgfQorCisgICAgYm9vbCBhY3RpdmF0aW9uX2RhdGVfdmFsaWQodWludDY0X3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGV4cGlyYXRpb25fZGF0ZV9wYXNzZWQodWludDY0X3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBhdXRoX3Rva2VuX3RpbWVkX291dChjb25zdCBod19hdXRoX3Rva2VuX3QmLCB1aW50MzJfdCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIFZhbGlkYXRlVG9rZW5TaWduYXR1cmUoY29uc3QgaHdfYXV0aF90b2tlbl90JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworY2xhc3MgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckNvbnRleHQgOiBwdWJsaWMgOjprZXltYXN0ZXI6OlNvZnRLZXltYXN0ZXJDb250ZXh0IHsKKyAgcHVibGljOgorICAgIFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KCkgOiBlbmZvcmNlbWVudF8obmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJFbmZvcmNlbWVudCkge30KKworICAgIDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudCogZW5mb3JjZW1lbnRfcG9saWN5KCkgb3ZlcnJpZGUgeyByZXR1cm4gZW5mb3JjZW1lbnRfLmdldCgpOyB9CisKKyAgcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8OjprZXltYXN0ZXI6OktleW1hc3RlckVuZm9yY2VtZW50PiBlbmZvcmNlbWVudF87Cit9OworCitzdGF0aWMgaW50IGtleW1hc3RlcjBfZGV2aWNlX2luaXRpYWxpemUoY29uc3QgaHdfbW9kdWxlX3QqIG1vZCwga2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldikgeworICAgIGFzc2VydChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA8IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMCBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIFVuaXF1ZVB0cjxTb2Z0S2V5bWFzdGVyRGV2aWNlPiBzb2Z0X2tleW1hc3RlcihuZXcgU29mdEtleW1hc3RlckRldmljZSk7CisgICAga2V5bWFzdGVyMF9kZXZpY2VfdCoga20wX2RldmljZSA9IE5VTEw7CisgICAga2V5bWFzdGVyX2Vycm9yX3QgZXJyb3IgPSBLTV9FUlJPUl9PSzsKKworICAgIGludCByYyA9IGtleW1hc3RlcjBfb3Blbihtb2QsICZrbTBfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMCBkZXZpY2UuIik7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIGlmIChrbTBfZGV2aWNlLT5mbGFncyAmIEtFWU1BU1RFUl9TT0ZUV0FSRV9PTkxZKSB7CisgICAgICAgIEFMT0dJKCJLZXltYXN0ZXIwIG1vZHVsZSBpcyBzb2Z0d2FyZS1vbmx5LiAgVXNpbmcgU29mdEtleW1hc3RlckRldmljZSBpbnN0ZWFkLiIpOworICAgICAgICBrbTBfZGV2aWNlLT5jb21tb24uY2xvc2UoJmttMF9kZXZpY2UtPmNvbW1vbik7CisgICAgICAgIGttMF9kZXZpY2UgPSBOVUxMOworICAgICAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSBrZXltYXN0ZXJfZGV2aWNlX3JlbGVhc2UoKQorICAgICAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBBTE9HRCgiV3JhcHBpbmcga2V5bWFzdGVyMCBtb2R1bGUgJXMgd2l0aCBTb2Z0S2V5bWFzdGVyRGV2aWNlIiwgbW9kLT5uYW1lKTsKKyAgICBlcnJvciA9IHNvZnRfa2V5bWFzdGVyLT5TZXRIYXJkd2FyZURldmljZShrbTBfZGV2aWNlKTsKKyAgICBrbTBfZGV2aWNlID0gTlVMTDsgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2UgaGFzIHRha2VuIG93bmVyc2hpcC4KKyAgICBpZiAoZXJyb3IgIT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgQUxPR0UoIkdvdCBlcnJvciAlZCBmcm9tIFNldEhhcmR3YXJlRGV2aWNlIiwgZXJyb3IpOworICAgICAgICByYyA9IGVycm9yOworICAgICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSAga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMF9kZXZpY2UpIGttMF9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20wX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyMV9kZXZpY2VfaW5pdGlhbGl6ZShjb25zdCBod19tb2R1bGVfdCogbW9kLCBrZXltYXN0ZXIyX2RldmljZV90KiogZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHN1cHBvcnRzX2FsbF9kaWdlc3RzKSB7CisgICAgYXNzZXJ0KG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID49IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMSBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIFVuaXF1ZVB0cjxTb2Z0S2V5bWFzdGVyRGV2aWNlPiBzb2Z0X2tleW1hc3RlcihuZXcgU29mdEtleW1hc3RlckRldmljZSk7CisgICAga2V5bWFzdGVyMV9kZXZpY2VfdCoga20xX2RldmljZSA9IG51bGxwdHI7CisgICAga2V5bWFzdGVyX2Vycm9yX3QgZXJyb3IgPSBLTV9FUlJPUl9PSzsKKworICAgIGludCByYyA9IGtleW1hc3RlcjFfb3Blbihtb2QsICZrbTFfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yICVkIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMSBkZXZpY2UiLCByYyk7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIEFMT0dEKCJXcmFwcGluZyBrZXltYXN0ZXIxIG1vZHVsZSAlcyB3aXRoIFNvZktleW1hc3RlckRldmljZSIsIG1vZC0+bmFtZSk7CisgICAgZXJyb3IgPSBzb2Z0X2tleW1hc3Rlci0+U2V0SGFyZHdhcmVEZXZpY2Uoa20xX2RldmljZSk7CisgICAga20xX2RldmljZSA9IG51bGxwdHI7ICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIGhhcyB0YWtlbiBvd25lcnNoaXAuCisgICAgaWYgKGVycm9yICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIEFMT0dFKCJHb3QgZXJyb3IgJWQgZnJvbSBTZXRIYXJkd2FyZURldmljZSIsIGVycm9yKTsKKyAgICAgICAgcmMgPSBlcnJvcjsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgLy8gU29mdEtleW1hc3RlckRldmljZSB3aWxsIGJlIGRlbGV0ZWQgYnkga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAqc3VwcG9ydHNfYWxsX2RpZ2VzdHMgPSBzb2Z0X2tleW1hc3Rlci0+c3VwcG9ydHNfYWxsX2RpZ2VzdHMoKTsKKyAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMV9kZXZpY2UpIGttMV9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20xX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyMl9kZXZpY2VfaW5pdGlhbGl6ZShjb25zdCBod19tb2R1bGVfdCogbW9kLCBrZXltYXN0ZXIyX2RldmljZV90KiogZGV2KSB7CisgICAgYXNzZXJ0KG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID49IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMl8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMiBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGttMl9kZXZpY2UgPSBudWxscHRyOworCisgICAgaW50IHJjID0ga2V5bWFzdGVyMl9vcGVuKG1vZCwgJmttMl9kZXZpY2UpOworICAgIGlmIChyYykgeworICAgICAgICBBTE9HRSgiRXJyb3IgJWQgb3BlbmluZyBrZXlzdG9yZSBrZXltYXN0ZXIyIGRldmljZSIsIHJjKTsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgKmRldiA9IGttMl9kZXZpY2U7CisgICAgcmV0dXJuIDA7CisKK2VycjoKKyAgICBpZiAoa20yX2RldmljZSkga20yX2RldmljZS0+Y29tbW9uLmNsb3NlKCZrbTJfZGV2aWNlLT5jb21tb24pOworICAgICpkZXYgPSBudWxscHRyOworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBrZXltYXN0ZXJfZGV2aWNlX2luaXRpYWxpemUoa2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldiwgdWludDMyX3QqIHZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBzdXBwb3J0c19lYywgYm9vbCogc3VwcG9ydHNfYWxsX2RpZ2VzdHMpIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kOworCisgICAgKnN1cHBvcnRzX2VjID0gdHJ1ZTsKKworICAgIGludCByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoS0VZU1RPUkVfSEFSRFdBUkVfTU9EVUxFX0lELCBOVUxMLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0koIkNvdWxkIG5vdCBmaW5kIGFueSBrZXlzdG9yZSBtb2R1bGUsIHVzaW5nIHNvZnR3YXJlLW9ubHkgaW1wbGVtZW50YXRpb24uIik7CisgICAgICAgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2Ugd2lsbCBiZSBkZWxldGVkIGJ5IGtleW1hc3Rlcl9kZXZpY2VfcmVsZWFzZSgpCisgICAgICAgICpkZXYgPSAobmV3IFNvZnRLZXltYXN0ZXJEZXZpY2UobmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KSktPmtleW1hc3RlcjJfZGV2aWNlKCk7CisgICAgICAgICp2ZXJzaW9uID0gLTE7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA8IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICp2ZXJzaW9uID0gMDsKKyAgICAgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gZmFsc2U7CisgICAgICAgIGludCByYyA9IGtleW1hc3RlcjBfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYpOworICAgICAgICBpZiAocmMgPT0gMCAmJiAoKCpkZXYpLT5mbGFncyAmIEtFWU1BU1RFUl9TVVBQT1JUU19FQykgPT0gMCkgeworICAgICAgICAgICAgKnN1cHBvcnRzX2VjID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJjOworICAgIH0gZWxzZSBpZiAobW9kLT5tb2R1bGVfYXBpX3ZlcnNpb24gPT0gS0VZTUFTVEVSX01PRFVMRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgKnZlcnNpb24gPSAxOworICAgICAgICByZXR1cm4ga2V5bWFzdGVyMV9kZXZpY2VfaW5pdGlhbGl6ZShtb2QsIGRldiwgc3VwcG9ydHNfYWxsX2RpZ2VzdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgICp2ZXJzaW9uID0gMjsKKyAgICAgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGtleW1hc3RlcjJfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYpOworICAgIH0KK30KKworS2V5bWFzdGVyRGV2aWNlOjp+S2V5bWFzdGVyRGV2aWNlKCkgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXykga2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbi5jbG9zZSgma2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbik7Cit9CisKK3N0YXRpYyBpbmxpbmUga2V5bWFzdGVyX3RhZ190eXBlX3QgdHlwZUZyb21UYWcoY29uc3Qga2V5bWFzdGVyX3RhZ190IHRhZykgeworICAgIHJldHVybiBrZXltYXN0ZXJfdGFnX2dldF90eXBlKHRhZyk7Cit9CisKKy8qKgorICogbGVnYWN5X2VudW1fY29udmVyc2lvbiBjb252ZXJ0cyBlbnVtcyBmcm9tIGhpZGwgdG8ga2V5bWFzdGVyIGFuZCBiYWNrLiBDdXJyZW50bHksIHRoaXMgaXMganVzdCBhCisgKiBjYXN0IHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBPbmUgb2YgdHdvIHRoaWdzIHNob3VsZCBoYXBwZW4gdGhvdWdoOgorICogVE9ETyBUaGUga2V5bWFzdGVyIGVudW1zIHNob3VsZCBiZWNvbWUgYWxpYXNlcyBmb3IgdGhlIGhpZGwgZ2VuZXJhdGVkIGVudW1zIHNvIHRoYXQgd2UgaGF2ZSBhCisgKiAgICAgIHNpbmdsZSBwb2ludCBvZiB0cnV0aC4gVGhlbiB0aGlzIGNhc3QgZnVuY3Rpb24gY2FuIGdvIGF3YXkuCisgKi8KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX3RhZ190IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3QgVGFnIHZhbHVlKSB7CisgICAgcmV0dXJuIGtleW1hc3Rlcl90YWdfdCh2YWx1ZSk7Cit9CitpbmxpbmUgc3RhdGljIFRhZyBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IGtleW1hc3Rlcl90YWdfdCB2YWx1ZSkgeworICAgIHJldHVybiBUYWcodmFsdWUpOworfQoraW5saW5lIHN0YXRpYyBrZXltYXN0ZXJfcHVycG9zZV90IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3QgS2V5UHVycG9zZSB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfcHVycG9zZV90KHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2tleV9mb3JtYXRfdCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IEtleUZvcm1hdCB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfa2V5X2Zvcm1hdF90KHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMgRXJyb3JDb2RlIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3Qga2V5bWFzdGVyX2Vycm9yX3QgdmFsdWUpIHsKKyAgICByZXR1cm4gRXJyb3JDb2RlKHZhbHVlKTsKK30KKworY2xhc3MgS21QYXJhbVNldCA6IHB1YmxpYyBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90IHsKKyAgcHVibGljOgorICAgIEttUGFyYW1TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zKSB7CisgICAgICAgIHBhcmFtcyA9IG5ldyBrZXltYXN0ZXJfa2V5X3BhcmFtX3Rba2V5UGFyYW1zLnNpemUoKV07CisgICAgICAgIGxlbmd0aCA9IGtleVBhcmFtcy5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5UGFyYW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvIHRhZyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oa2V5UGFyYW1zW2ldLnRhZyk7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKHRhZykpIHsKKyAgICAgICAgICAgIGNhc2UgS01fRU5VTToKKyAgICAgICAgICAgIGNhc2UgS01fRU5VTV9SRVA6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0ga2V5bWFzdGVyX3BhcmFtX2VudW0odGFnLCBrZXlQYXJhbXNbaV0uZi5pbnRlZ2VyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS01fVUlOVDoKKyAgICAgICAgICAgIGNhc2UgS01fVUlOVF9SRVA6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0ga2V5bWFzdGVyX3BhcmFtX2ludCh0YWcsIGtleVBhcmFtc1tpXS5mLmludGVnZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9VTE9ORzoKKyAgICAgICAgICAgIGNhc2UgS01fVUxPTkdfUkVQOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9sb25nKHRhZywga2V5UGFyYW1zW2ldLmYubG9uZ0ludGVnZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9EQVRFOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9kYXRlKHRhZywga2V5UGFyYW1zW2ldLmYuZGF0ZVRpbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9CT09MOgorICAgICAgICAgICAgICAgIGlmIChrZXlQYXJhbXNbaV0uZi5ib29sVmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9ib29sKHRhZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBwYXJhbXNbaV0udGFnID0gS01fVEFHX0lOVkFMSUQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX0JJR05VTToKKyAgICAgICAgICAgIGNhc2UgS01fQllURVM6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0KKyAgICAgICAgICAgICAgICAgICAga2V5bWFzdGVyX3BhcmFtX2Jsb2IodGFnLCAma2V5UGFyYW1zW2ldLmJsb2JbMF0sIGtleVBhcmFtc1tpXS5ibG9iLnNpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX0lOVkFMSUQ6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXS50YWcgPSBLTV9UQUdfSU5WQUxJRDsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IHNraXAgKi8KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBLbVBhcmFtU2V0KEttUGFyYW1TZXQmJiBvdGhlcikgOiBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90e290aGVyLnBhcmFtcywgb3RoZXIubGVuZ3RofSB7CisgICAgICAgIG90aGVyLmxlbmd0aCA9IDA7CisgICAgICAgIG90aGVyLnBhcmFtcyA9IG51bGxwdHI7CisgICAgfQorICAgIEttUGFyYW1TZXQoY29uc3QgS21QYXJhbVNldCYpID0gZGVsZXRlOworICAgIH5LbVBhcmFtU2V0KCkgeyBkZWxldGVbXSBwYXJhbXM7IH0KK307CisKK2lubGluZSBzdGF0aWMgS21QYXJhbVNldCBoaWRsUGFyYW1zMkttUGFyYW1TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zKSB7CisgICAgcmV0dXJuIEttUGFyYW1TZXQocGFyYW1zKTsKK30KKworaW5saW5lIHN0YXRpYyBrZXltYXN0ZXJfYmxvYl90IGhpZGxWZWMyS21CbG9iKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgLyogaGlkbCB1bm1hcnNoYWxzIGZ1bm55IHBvaW50ZXJzIGlmIHRoZSB0aGUgYmxvYiBpcyBlbXB0eSAqLworICAgIGlmIChibG9iLnNpemUoKSkgcmV0dXJuIHsmYmxvYlswXSwgYmxvYi5zaXplKCl9OworICAgIHJldHVybiB7bnVsbHB0ciwgMH07Cit9CisKK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2tleV9ibG9iX3QgaGlkbFZlYzJLbUtleUJsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICAvKiBoaWRsIHVubWFyc2hhbHMgZnVubnkgcG9pbnRlcnMgaWYgdGhlIHRoZSBibG9iIGlzIGVtcHR5ICovCisgICAgaWYgKGJsb2Iuc2l6ZSgpKSByZXR1cm4geyZibG9iWzBdLCBibG9iLnNpemUoKX07CisgICAgcmV0dXJuIHtudWxscHRyLCAwfTsKK30KKworaW5saW5lIHN0YXRpYyBoaWRsX3ZlYzx1aW50OF90PiBrbUJsb2IyaGlkbFZlYyhjb25zdCBrZXltYXN0ZXJfa2V5X2Jsb2JfdCYgYmxvYikgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICByZXN1bHQuc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihibG9iLmtleV9tYXRlcmlhbCksIGJsb2Iua2V5X21hdGVyaWFsX3NpemUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbmxpbmUgc3RhdGljIGhpZGxfdmVjPHVpbnQ4X3Q+IGttQmxvYjJoaWRsVmVjKGNvbnN0IGtleW1hc3Rlcl9ibG9iX3QmIGJsb2IpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oYmxvYi5kYXRhKSwgYmxvYi5kYXRhX2xlbmd0aCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW5saW5lIHN0YXRpYyBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4KK2ttQ2VydENoYWluMkhpZGwoY29uc3Qga2V5bWFzdGVyX2NlcnRfY2hhaW5fdCogY2VydF9jaGFpbikgeworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiByZXN1bHQ7CisgICAgaWYgKCFjZXJ0X2NoYWluIHx8IGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50ID09IDAgfHwgIWNlcnRfY2hhaW4tPmVudHJpZXMpIHJldHVybiByZXN1bHQ7CisKKyAgICByZXN1bHQucmVzaXplKGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50OyArK2kpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSBjZXJ0X2NoYWluLT5lbnRyaWVzW2ldOworICAgICAgICByZXN1bHRbaV0gPSBrbUJsb2IyaGlkbFZlYyhlbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IGttUGFyYW1TZXQySGlkbChjb25zdCBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90JiBzZXQpIHsKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdDsKKyAgICBpZiAoc2V0Lmxlbmd0aCA9PSAwIHx8IHNldC5wYXJhbXMgPT0gbnVsbHB0cikgcmV0dXJuIHJlc3VsdDsKKworICAgIHJlc3VsdC5yZXNpemUoc2V0Lmxlbmd0aCk7CisgICAga2V5bWFzdGVyX2tleV9wYXJhbV90KiBwYXJhbXMgPSBzZXQucGFyYW1zOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2V0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8gdGFnID0gcGFyYW1zW2ldLnRhZzsKKyAgICAgICAgcmVzdWx0W2ldLnRhZyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24odGFnKTsKKyAgICAgICAgc3dpdGNoICh0eXBlRnJvbVRhZyh0YWcpKSB7CisgICAgICAgIGNhc2UgS01fRU5VTToKKyAgICAgICAgY2FzZSBLTV9FTlVNX1JFUDoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmludGVnZXIgPSBwYXJhbXNbaV0uZW51bWVyYXRlZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtNX1VJTlQ6CisgICAgICAgIGNhc2UgS01fVUlOVF9SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5pbnRlZ2VyID0gcGFyYW1zW2ldLmludGVnZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9VTE9ORzoKKyAgICAgICAgY2FzZSBLTV9VTE9OR19SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5sb25nSW50ZWdlciA9IHBhcmFtc1tpXS5sb25nX2ludGVnZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9EQVRFOgorICAgICAgICAgICAgcmVzdWx0W2ldLmYuZGF0ZVRpbWUgPSBwYXJhbXNbaV0uZGF0ZV90aW1lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fQk9PTDoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmJvb2xWYWx1ZSA9IHBhcmFtc1tpXS5ib29sZWFuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fQklHTlVNOgorICAgICAgICBjYXNlIEtNX0JZVEVTOgorICAgICAgICAgICAgcmVzdWx0W2ldLmJsb2Iuc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihwYXJhbXNbaV0uYmxvYi5kYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2ldLmJsb2IuZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fSU5WQUxJRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHBhcmFtc1tpXS50YWcgPSBLTV9UQUdfSU5WQUxJRDsKKyAgICAgICAgICAgIC8qIGp1c3Qgc2tpcCAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjpnZXRIYXJkd2FyZUZlYXR1cmVzKGdldEhhcmR3YXJlRmVhdHVyZXNfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIGlzX3NlY3VyZSA9ICEoa2V5bWFzdGVyX2RldmljZV8tPmZsYWdzICYgS0VZTUFTVEVSX1NPRlRXQVJFX09OTFkpOworICAgIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljX2NyeXB0b2dyYXBoeSA9IGZhbHNlOworICAgIGJvb2wgc3VwcG9ydHNfYXR0ZXN0YXRpb24gPSBmYWxzZTsKKworICAgIHN3aXRjaCAoaGFyZHdhcmVfdmVyc2lvbl8pIHsKKyAgICBjYXNlIDI6CisgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uID0gdHJ1ZTsKKyAgICAvKiBGYWxscyB0aHJvdWdoICovCisgICAgY2FzZSAxOgorICAgICAgICBzdXBwb3J0c19zeW1tZXRyaWNfY3J5cHRvZ3JhcGh5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIF9oaWRsX2NiKGlzX3NlY3VyZSwgaGFyZHdhcmVfc3VwcG9ydHNfZWNfLCBzdXBwb3J0c19zeW1tZXRyaWNfY3J5cHRvZ3JhcGh5LAorICAgICAgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uLCBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0c18sCisgICAgICAgICAgICAga2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbi5tb2R1bGUtPm5hbWUsIGtleW1hc3Rlcl9kZXZpY2VfLT5jb21tb24ubW9kdWxlLT5hdXRob3IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvckNvZGU+IEtleW1hc3RlckRldmljZTo6YWRkUm5nRW50cm9weShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSkgeworICAgIGlmICghZGF0YS5zaXplKCkpIHJldHVybiBFcnJvckNvZGU6Ok9LOworICAgIHJldHVybiBsZWdhY3lfZW51bV9jb252ZXJzaW9uKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXy0+YWRkX3JuZ19lbnRyb3B5KGtleW1hc3Rlcl9kZXZpY2VfLCAmZGF0YVswXSwgZGF0YS5zaXplKCkpKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2VuZXJhdGVLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVLZXlfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfa2V5X2NoYXJhY3RlcmlzdGljc190IGtleV9jaGFyYWN0ZXJpc3RpY3N7e251bGxwdHIsIDB9LCB7bnVsbHB0ciwgMH19OworCisgICAgLy8gY29udmVydCB0aGUgcGFyYW1ldGVyIHNldCB0byBzb21ldGhpbmcgb3VyIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBhdXRvIGttUGFyYW1zID0gaGlkbFBhcmFtczJLbVBhcmFtU2V0KGtleVBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmdlbmVyYXRlX2tleShrZXltYXN0ZXJfZGV2aWNlXywgJmttUGFyYW1zLCAma2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIC8vIG9uIHN1Y2Nlc3MgY29udmVydCB0aGUgcmVzdWx0IHRvIHdpcmUgZm9ybWF0CisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhrZXlfYmxvYik7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgLy8gc2VuZCByZXN1bHRzIG9mZiB0byB0aGUgY2xpZW50CisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IsIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKGtleV9ibG9iLmtleV9tYXRlcmlhbCkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpKTsKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2V0S2V5Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXBwRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9jaGFyYWN0ZXJpc3RpY3NfdCBrZXlfY2hhcmFjdGVyaXN0aWNze3tudWxscHRyLCAwfSwge251bGxwdHIsIDB9fTsKKworICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byBrbUNsaWVudElkID0gaGlkbFZlYzJLbUJsb2IoY2xpZW50SWQpOworICAgIGF1dG8ga21BcHBEYXRhID0gaGlkbFZlYzJLbUJsb2IoYXBwRGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmdldF9rZXlfY2hhcmFjdGVyaXN0aWNzKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXywga2V5QmxvYi5zaXplKCkgPyAma21LZXlCbG9iIDogbnVsbHB0ciwKKyAgICAgICAgY2xpZW50SWQuc2l6ZSgpID8gJmttQ2xpZW50SWQgOiBudWxscHRyLCBhcHBEYXRhLnNpemUoKSA/ICZrbUFwcERhdGEgOiBudWxscHRyLAorICAgICAgICAma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzLnNvZnR3YXJlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5zd19lbmZvcmNlZCk7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZCA9IGttUGFyYW1TZXQySGlkbChrZXlfY2hhcmFjdGVyaXN0aWNzLmh3X2VuZm9yY2VkKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGtleW1hc3Rlcl9mcmVlX2NoYXJhY3RlcmlzdGljcygma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjppbXBvcnRLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zLCBLZXlGb3JtYXQga2V5Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlEYXRhLCBpbXBvcnRLZXlfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfa2V5X2NoYXJhY3RlcmlzdGljc190IGtleV9jaGFyYWN0ZXJpc3RpY3N7e251bGxwdHIsIDB9LCB7bnVsbHB0ciwgMH19OworCisgICAgYXV0byBrbVBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChwYXJhbXMpOworICAgIGF1dG8ga21LZXlEYXRhID0gaGlkbFZlYzJLbUJsb2Ioa2V5RGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmltcG9ydF9rZXkoa2V5bWFzdGVyX2RldmljZV8sICZrbVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXlGb3JtYXQpLCAma21LZXlEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICAvLyAoQ2FuIHdlIGFzc3VtZSB0aGF0IGtleV9ibG9iIGlzIHtudWxscHRyLCAwfSBvciBhIHZhbGlkIGJ1ZmZlciBkZXNjcmlwdGlvbj8pCisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhrZXlfYmxvYik7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IsIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKGtleV9ibG9iLmtleV9tYXRlcmlhbCkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpKTsKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6ZXhwb3J0S2V5KEtleUZvcm1hdCBleHBvcnRGb3JtYXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXBwRGF0YSwgZXhwb3J0S2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEtleUJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2Jsb2JfdCBvdXRfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byBrbUNsaWVudElkID0gaGlkbFZlYzJLbUJsb2IoY2xpZW50SWQpOworICAgIGF1dG8ga21BcHBEYXRhID0gaGlkbFZlYzJLbUJsb2IoYXBwRGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmV4cG9ydF9rZXkoa2V5bWFzdGVyX2RldmljZV8sIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oZXhwb3J0Rm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmxvYi5zaXplKCkgPyAma21LZXlCbG9iIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQuc2l6ZSgpID8gJmttQ2xpZW50SWQgOiBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBEYXRhLnNpemUoKSA/ICZrbUFwcERhdGEgOiBudWxscHRyLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIC8vIG9uIHN1Y2Nlc3MgY29udmVydCB0aGUgcmVzdWx0IHRvIHdpcmUgZm9ybWF0CisgICAgICAgIC8vIChDYW4gd2UgYXNzdW1lIHRoYXQga2V5X2Jsb2IgaXMge251bGxwdHIsIDB9IG9yIGEgdmFsaWQgYnVmZmVyIGRlc2NyaXB0aW9uPykKKyAgICAgICAgcmVzdWx0S2V5QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0S2V5QmxvYik7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKG91dF9ibG9iLmRhdGEpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4ob3V0X2Jsb2IuZGF0YSkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6YXR0ZXN0S2V5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlUb0F0dGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBhdHRlc3RQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0S2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gcmVzdWx0Q2VydENoYWluOworCisgICAgYm9vbCBmb3VuZEF0dGVzdGF0aW9uQXBwbGljYXRpb25JZCA9IGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXR0ZXN0UGFyYW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIHN3aXRjaCAoYXR0ZXN0UGFyYW1zW2ldLnRhZykgeworICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfQlJBTkQ6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9ERVZJQ0U6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9QUk9EVUNUOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfU0VSSUFMOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfSU1FSToKKyAgICAgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX01FSUQ6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVI6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NT0RFTDoKKyAgICAgICAgICAgIC8vIERldmljZSBpZCBhdHRlc3RhdGlvbiBtYXkgb25seSBiZSBzdXBwb3J0ZWQgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIHBlcm1hbmVudGx5CisgICAgICAgICAgICAvLyBkZXN0cm95IGl0cyBrbm93bGVkZ2Ugb2YgdGhlIGlkcy4gVGhpcyBkZXZpY2UgaXMgdW5hYmxlIHRvIGRvIHRoaXMsIHNvIGl0IG11c3QKKyAgICAgICAgICAgIC8vIG5ldmVyIHBlcmZvcm0gYW55IGRldmljZSBpZCBhdHRlc3RhdGlvbi4KKyAgICAgICAgICAgIF9oaWRsX2NiKEVycm9yQ29kZTo6Q0FOTk9UX0FUVEVTVF9JRFMsIHJlc3VsdENlcnRDaGFpbik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworCisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRDoKKyAgICAgICAgICAgIGZvdW5kQXR0ZXN0YXRpb25BcHBsaWNhdGlvbklkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEtNMyBkZXZpY2VzIHJlamVjdCBtaXNzaW5nIGF0dGVzdCBhcHBsaWNhdGlvbiBJRHMuIEtNMiBkZXZpY2VzIGRvIG5vdC4KKyAgICBpZiAoIWZvdW5kQXR0ZXN0YXRpb25BcHBsaWNhdGlvbklkKSB7CisgICAgICAgIF9oaWRsX2NiKEVycm9yQ29kZTo6QVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgcmVzdWx0Q2VydENoYWluKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBrZXltYXN0ZXJfY2VydF9jaGFpbl90IGNlcnRfY2hhaW57bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttS2V5VG9BdHRlc3QgPSBoaWRsVmVjMkttS2V5QmxvYihrZXlUb0F0dGVzdCk7CisgICAgYXV0byBrbUF0dGVzdFBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChhdHRlc3RQYXJhbXMpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5hdHRlc3Rfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlUb0F0dGVzdCwgJmttQXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2VydF9jaGFpbik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0Q2VydENoYWluID0ga21DZXJ0Q2hhaW4ySGlkbCgmY2VydF9jaGFpbik7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdENlcnRDaGFpbik7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9jZXJ0X2NoYWluKCZjZXJ0X2NoYWluKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OnVwZ3JhZGVLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2JUb1VwZ3JhZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHVwZ3JhZGVQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZ3JhZGVLZXlfY2IgX2hpZGxfY2IpIHsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21LZXlCbG9iVG9VcGdyYWRlID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYlRvVXBncmFkZSk7CisgICAgYXV0byBrbVVwZ3JhZGVQYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQodXBncmFkZVBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPnVwZ3JhZGVfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlCbG9iVG9VcGdyYWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmttVXBncmFkZVBhcmFtcywgJmtleV9ibG9iKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICByZXN1bHRLZXlCbG9iID0ga21CbG9iMmhpZGxWZWMoa2V5X2Jsb2IpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRLZXlCbG9iKTsKKworICAgIGlmIChrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4oa2V5X2Jsb2Iua2V5X21hdGVyaWFsKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlbGV0ZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYikgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2tleSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byByYyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oCisgICAgICAgIGtleW1hc3Rlcl9kZXZpY2VfLT5kZWxldGVfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlCbG9iKSk7CisgICAgLy8gS2V5bWFzdGVyIDMuMCByZXF1aXJlcyBkZWxldGVLZXkgdG8gcmV0dXJuIEVycm9yQ29kZTo6T0sgaWYgdGhlIGtleQorICAgIC8vIGJsb2IgaXMgdW51c2FibGUgYWZ0ZXIgdGhlIGNhbGwuIFRoaXMgaXMgZXF1YWxseSB0cnVlIGlmIHRoZSBrZXkgYmxvYiB3YXMKKyAgICAvLyB1bnVzYWJsZSBiZWZvcmUuCisgICAgaWYgKHJjID09IEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQikgcmV0dXJuIEVycm9yQ29kZTo6T0s7CisgICAgcmV0dXJuIHJjOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlbGV0ZUFsbEtleXMoKSB7CisgICAgaWYgKGtleW1hc3Rlcl9kZXZpY2VfLT5kZWxldGVfYWxsX2tleXMgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gRXJyb3JDb2RlOjpVTklNUExFTUVOVEVEOworICAgIH0KKyAgICByZXR1cm4gbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2FsbF9rZXlzKGtleW1hc3Rlcl9kZXZpY2VfKSk7Cit9CisKK1JldHVybjxFcnJvckNvZGU+IEtleW1hc3RlckRldmljZTo6ZGVzdHJveUF0dGVzdGF0aW9uSWRzKCkgeworICAgIHJldHVybiBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQ7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmJlZ2luKEtleVB1cnBvc2UgcHVycG9zZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLCBiZWdpbl9jYiBfaGlkbF9jYikgeworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdFBhcmFtczsKKyAgICB1aW50NjRfdCByZXN1bHRPcEhhbmRsZSA9IDA7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9vcGVyYXRpb25faGFuZGxlX3QmIG9wZXJhdGlvbl9oYW5kbGUgPSByZXN1bHRPcEhhbmRsZTsKKworICAgIGF1dG8ga21LZXkgPSBoaWRsVmVjMkttS2V5QmxvYihrZXkpOworICAgIGF1dG8ga21JblBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChpblBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmJlZ2luKGtleW1hc3Rlcl9kZXZpY2VfLCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKHB1cnBvc2UpLCAma21LZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma21JblBhcmFtcywgJm91dF9wYXJhbXMsICZvcGVyYXRpb25faGFuZGxlKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgcmVzdWx0UGFyYW1zID0ga21QYXJhbVNldDJIaWRsKG91dF9wYXJhbXMpOworCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdFBhcmFtcywgcmVzdWx0T3BIYW5kbGUpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OnVwZGF0ZSh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LCB1cGRhdGVfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIHVpbnQzMl90IHJlc3VsdENvbnN1bWVkID0gMDsKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdFBhcmFtczsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHRCbG9iOworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyB0aGUgYmFja2VuZCB1bmRlcnN0YW5kcworICAgIHNpemVfdCBjb25zdW1lZCA9IDA7CisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9ibG9iX3Qgb3V0X2Jsb2J7bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttSW5QYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQoaW5QYXJhbXMpOworICAgIGF1dG8ga21JbnB1dCA9IGhpZGxWZWMyS21CbG9iKGlucHV0KTsKKworICAgIGF1dG8gcmMgPSBrZXltYXN0ZXJfZGV2aWNlXy0+dXBkYXRlKGtleW1hc3Rlcl9kZXZpY2VfLCBvcGVyYXRpb25IYW5kbGUsICZrbUluUGFyYW1zLCAma21JbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29uc3VtZWQsICZvdXRfcGFyYW1zLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIHJlc3VsdENvbnN1bWVkID0gY29uc3VtZWQ7CisgICAgICAgIHJlc3VsdFBhcmFtcyA9IGttUGFyYW1TZXQySGlkbChvdXRfcGFyYW1zKTsKKyAgICAgICAgcmVzdWx0QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0Q29uc3VtZWQsIHJlc3VsdFBhcmFtcywgcmVzdWx0QmxvYik7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9wYXJhbV9zZXQoJm91dF9wYXJhbXMpOworICAgIGlmIChvdXRfYmxvYi5kYXRhKSBmcmVlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KG91dF9ibG9iLmRhdGEpKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmZpbmlzaCh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIGZpbmlzaF9jYiBfaGlkbF9jYikgeworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHRQYXJhbXM7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90IG91dF9wYXJhbXN7bnVsbHB0ciwgMH07CisgICAga2V5bWFzdGVyX2Jsb2JfdCBvdXRfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21JblBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChpblBhcmFtcyk7CisgICAgYXV0byBrbUlucHV0ID0gaGlkbFZlYzJLbUJsb2IoaW5wdXQpOworICAgIGF1dG8ga21TaWduYXR1cmUgPSBoaWRsVmVjMkttQmxvYihzaWduYXR1cmUpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5maW5pc2goa2V5bWFzdGVyX2RldmljZV8sIG9wZXJhdGlvbkhhbmRsZSwgJmttSW5QYXJhbXMsICZrbUlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrbVNpZ25hdHVyZSwgJm91dF9wYXJhbXMsICZvdXRfYmxvYik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0UGFyYW1zID0ga21QYXJhbVNldDJIaWRsKG91dF9wYXJhbXMpOworICAgICAgICByZXN1bHRCbG9iID0ga21CbG9iMmhpZGxWZWMob3V0X2Jsb2IpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRQYXJhbXMsIHJlc3VsdEJsb2IpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKyAgICBpZiAob3V0X2Jsb2IuZGF0YSkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihvdXRfYmxvYi5kYXRhKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmFib3J0KHVpbnQ2NF90IG9wZXJhdGlvbkhhbmRsZSkgeworICAgIHJldHVybiBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGtleW1hc3Rlcl9kZXZpY2VfLT5hYm9ydChrZXltYXN0ZXJfZGV2aWNlXywgb3BlcmF0aW9uSGFuZGxlKSk7Cit9CisKK0lLZXltYXN0ZXJEZXZpY2UqIEhJRExfRkVUQ0hfSUtleW1hc3RlckRldmljZShjb25zdCBjaGFyKiBuYW1lKSB7CisgICAga2V5bWFzdGVyMl9kZXZpY2VfdCogZGV2ID0gbnVsbHB0cjsKKworICAgIEFMT0dJKCJGZXRjaGluZyBrZXltYXN0ZXIgZGV2aWNlIG5hbWUgJXMiLCBuYW1lKTsKKworICAgIHVpbnQzMl90IHZlcnNpb24gPSAtMTsKKyAgICBib29sIHN1cHBvcnRzX2VjID0gZmFsc2U7CisgICAgYm9vbCBzdXBwb3J0c19hbGxfZGlnZXN0cyA9IGZhbHNlOworCisgICAgaWYgKG5hbWUgJiYgc3RyY21wKG5hbWUsICJzb2Z0d2FyZW9ubHkiKSA9PSAwKSB7CisgICAgICAgIGRldiA9IChuZXcgU29mdEtleW1hc3RlckRldmljZShuZXcgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckNvbnRleHQpKS0+a2V5bWFzdGVyMl9kZXZpY2UoKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgJiYgc3RyY21wKG5hbWUsICJkZWZhdWx0IikgPT0gMCkgeworICAgICAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV9pbml0aWFsaXplKCZkZXYsICZ2ZXJzaW9uLCAmc3VwcG9ydHNfZWMsICZzdXBwb3J0c19hbGxfZGlnZXN0cyk7CisgICAgICAgIGlmIChyYykgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byBrbXJjID0gOjprZXltYXN0ZXI6OkNvbmZpZ3VyZURldmljZShkZXYpOworICAgIGlmIChrbXJjICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIGRldi0+Y29tbW9uLmNsb3NlKCZkZXYtPmNvbW1vbik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBuZXcgS2V5bWFzdGVyRGV2aWNlKGRldiwgdmVyc2lvbiwgc3VwcG9ydHNfZWMsIHN1cHBvcnRzX2FsbF9kaWdlc3RzKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNDhkNWIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvS2V5bWFzdGVyRGV2aWNlLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKioKKyAqKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoqCisgKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoqCisgKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoqCisgKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KKyNkZWZpbmUgSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KKworI2luY2x1ZGUgPGhhcmR3YXJlL2tleW1hc3RlcjIuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkVycm9yQ29kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5Q2hhcmFjdGVyaXN0aWNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpLZXlGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OktleVBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5UHVycG9zZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgS2V5bWFzdGVyRGV2aWNlIDogcHVibGljIElLZXltYXN0ZXJEZXZpY2UgeworICBwdWJsaWM6CisgICAgS2V5bWFzdGVyRGV2aWNlKGtleW1hc3RlcjJfZGV2aWNlX3QqIGRldiwgdWludDMyX3QgaGFyZHdhcmVfdmVyc2lvbiwgYm9vbCBoYXJkd2FyZV9zdXBwb3J0c19lYywKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0cykKKyAgICAgICAgOiBrZXltYXN0ZXJfZGV2aWNlXyhkZXYpLCBoYXJkd2FyZV92ZXJzaW9uXyhoYXJkd2FyZV92ZXJzaW9uKSwKKyAgICAgICAgICBoYXJkd2FyZV9zdXBwb3J0c19lY18oaGFyZHdhcmVfc3VwcG9ydHNfZWMpLAorICAgICAgICAgIGhhcmR3YXJlX3N1cHBvcnRzX2FsbF9kaWdlc3RzXyhoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0cykge30KKyAgICB2aXJ0dWFsIH5LZXltYXN0ZXJEZXZpY2UoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OklLZXltYXN0ZXJEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXRIYXJkd2FyZUZlYXR1cmVzKGdldEhhcmR3YXJlRmVhdHVyZXNfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjxFcnJvckNvZGU+IGFkZFJuZ0VudHJvcHkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBrZXlQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlS2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0S2V5Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNsaWVudElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zLCBLZXlGb3JtYXQga2V5Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleURhdGEsIGltcG9ydEtleV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGV4cG9ydEtleShLZXlGb3JtYXQgZXhwb3J0Rm9ybWF0LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvcnRLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBhdHRlc3RLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVRvQXR0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgYXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0S2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXBncmFkZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYlRvVXBncmFkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiB1cGdyYWRlUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZ3JhZGVLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlbGV0ZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yQ29kZT4gZGVsZXRlQWxsS2V5cygpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlc3Ryb3lBdHRlc3RhdGlvbklkcygpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBiZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLCBiZWdpbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZGF0ZSh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LCB1cGRhdGVfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBmaW5pc2godWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBpblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yQ29kZT4gYWJvcnQodWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlKSBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGtleW1hc3Rlcl9kZXZpY2VfOworICAgIHVpbnQzMl90IGhhcmR3YXJlX3ZlcnNpb25fOworICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfZWNfOworICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworfTsKKworZXh0ZXJuICJDIiBJS2V5bWFzdGVyRGV2aWNlKiBISURMX0ZFVENIX0lLZXltYXN0ZXJEZXZpY2UoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBISURMX0dFTkVSQVRFRF9hbmRyb2lkX2hhcmR3YXJlX2tleW1hc3Rlcl9WM18wX0tleW1hc3RlckRldmljZV9IXwpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OWQyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGtleW1hc3Rlci0zLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UKKyAgICBjbGFzcyBlYXJseV9oYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbSBkcm1ycGMKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmE5YTkzCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUtleW1hc3RlckRldmljZT4oKTsKK30KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsIGIva2V5bWFzdGVyLzMuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRhZDIzZQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA7CisKK2VudW0gVGFnVHlwZSA6IHVpbnQzMl90IHsKKyAgICBJTlZBTElEID0gMCA8PCAyOCwgLyoqIEludmFsaWQgdHlwZSwgdXNlZCB0byBkZXNpZ25hdGUgYSB0YWcgYXMgdW5pbml0aWFsaXplZCAqLworICAgIEVOVU0gPSAxIDw8IDI4LAorICAgIEVOVU1fUkVQID0gMiA8PCAyOCwgLyoqIFJlcGVhdGFibGUgZW51bWVyYXRpb24gdmFsdWUuICovCisgICAgVUlOVCA9IDMgPDwgMjgsCisgICAgVUlOVF9SRVAgPSA0IDw8IDI4LCAvKiogUmVwZWF0YWJsZSBpbnRlZ2VyIHZhbHVlICovCisgICAgVUxPTkcgPSA1IDw8IDI4LAorICAgIERBVEUgPSA2IDw8IDI4LAorICAgIEJPT0wgPSA3IDw8IDI4LAorICAgIEJJR05VTSA9IDggPDwgMjgsCisgICAgQllURVMgPSA5IDw8IDI4LAorICAgIFVMT05HX1JFUCA9IDEwIDw8IDI4LCAvKiogUmVwZWF0YWJsZSBsb25nIHZhbHVlICovCit9OworCitlbnVtIFRhZyA6IHVpbnQzMl90IHsKKyAgICBJTlZBTElEID0gVGFnVHlwZTpJTlZBTElEIHwgMCwKKworICAgIC8qKgorICAgICAqIFRhZ3MgdGhhdCBtdXN0IGJlIHNlbWFudGljYWxseSBlbmZvcmNlZCBieSBoYXJkd2FyZSBhbmQgc29mdHdhcmUgaW1wbGVtZW50YXRpb25zLgorICAgICAqLworCisgICAgLyoqIENyeXB0byBwYXJhbWV0ZXJzICovCisgICAgUFVSUE9TRSA9IFRhZ1R5cGU6RU5VTV9SRVAgfCAxLCAgICAvKiogS2V5UHVycG9zZS4gKi8KKyAgICBBTEdPUklUSE0gPSBUYWdUeXBlOkVOVU0gfCAyLCAgICAgIC8qKiBBbGdvcml0aG0uICovCisgICAgS0VZX1NJWkUgPSBUYWdUeXBlOlVJTlQgfCAzLCAgICAgICAvKiogS2V5IHNpemUgaW4gYml0cy4gKi8KKyAgICBCTE9DS19NT0RFID0gVGFnVHlwZTpFTlVNX1JFUCB8IDQsIC8qKiBCbG9ja01vZGUuICovCisgICAgRElHRVNUID0gVGFnVHlwZTpFTlVNX1JFUCB8IDUsICAgICAvKiogRGlnZXN0LiAqLworICAgIFBBRERJTkcgPSBUYWdUeXBlOkVOVU1fUkVQIHwgNiwgICAgLyoqIFBhZGRpbmdNb2RlLiAqLworICAgIENBTExFUl9OT05DRSA9IFRhZ1R5cGU6Qk9PTCB8IDcsICAgLyoqIEFsbG93IGNhbGxlciB0byBzcGVjaWZ5IG5vbmNlIG9yIElWLiAqLworICAgIE1JTl9NQUNfTEVOR1RIID0gVGFnVHlwZTpVSU5UIHwgOCwgLyogTWluaW11bSBsZW5ndGggb2YgTUFDIG9yIEFFQUQgYXV0aGVudGljYXRpb24gdGFnIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiaXRzLiAqLworICAgIEtERiA9IFRhZ1R5cGU6RU5VTV9SRVAgfCA5LCAgICAgICAgLyoqIEtleURlcml2YXRpb25GdW5jdGlvbi4gKi8KKyAgICBFQ19DVVJWRSA9IFRhZ1R5cGU6RU5VTSB8IDEwLCAgICAgIC8qKiBFY0N1cnZlLiAqLworCisgICAgLyoqIEFsZ29yaXRobS1zcGVjaWZpYy4gKi8KKyAgICBSU0FfUFVCTElDX0VYUE9ORU5UID0gVGFnVHlwZTpVTE9ORyB8IDIwMCwKKyAgICBFQ0lFU19TSU5HTEVfSEFTSF9NT0RFID0gVGFnVHlwZTpCT09MIHwgMjAxLCAvKiBXaGV0aGVyIHRoZSBlcGhlbWVyYWwgcHVibGljIGtleSBpcyBmZWQgaW50byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBLREYuICovCisgICAgSU5DTFVERV9VTklRVUVfSUQgPSBUYWdUeXBlOkJPT0wgfCAyMDIsICAgICAgLyogSWYgdHJ1ZSwgYXR0ZXN0YXRpb24gY2VydGlmaWNhdGVzIGZvciB0aGlzIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdpbGwgY29udGFpbiBhbiBhcHBsaWNhdGlvbi1zY29wZWQgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGltZS1ib3VuZGVkIGRldmljZS11bmlxdWUgSUQuKi8KKworICAgIC8qKiBPdGhlciBoYXJkd2FyZS1lbmZvcmNlZC4gKi8KKyAgICBCTE9CX1VTQUdFX1JFUVVJUkVNRU5UUyA9IFRhZ1R5cGU6RU5VTSB8IDMwMSwgLyoqIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cy4gKi8KKyAgICBCT09UTE9BREVSX09OTFkgPSBUYWdUeXBlOkJPT0wgfCAzMDIsICAgICAgICAgLyoqIFVzYWJsZSBvbmx5IGJ5IGJvb3Rsb2FkZXIuICovCisKKyAgICAvKioKKyAgICAgKiBUYWdzIHRoYXQgc2hvdWxkIGJlIHNlbWFudGljYWxseSBlbmZvcmNlZCBieSBoYXJkd2FyZSBpZiBwb3NzaWJsZSBhbmQgd2lsbCBvdGhlcndpc2UgYmUKKyAgICAgKiBlbmZvcmNlZCBieSBzb2Z0d2FyZSAoa2V5c3RvcmUpLgorICAgICAqLworCisgICAgLyoqIEtleSB2YWxpZGl0eSBwZXJpb2QgKi8KKyAgICBBQ1RJVkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDAsICAgICAgICAgICAgIC8qKiBTdGFydCBvZiB2YWxpZGl0eS4gKi8KKyAgICBPUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDEsIC8qIERhdGUgd2hlbiBuZXcgIm1lc3NhZ2VzIiBzaG91bGQgbm8gbG9uZ2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiZSBjcmVhdGVkLiAqLworICAgIFVTQUdFX0VYUElSRV9EQVRFVElNRSA9IFRhZ1R5cGU6REFURSB8IDQwMiwgICAgICAgLyogRGF0ZSB3aGVuIGV4aXN0aW5nICJtZXNzYWdlcyIgc2hvdWxkIG5vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBsb25nZXIgYmUgdHJ1c3RlZC4gKi8KKyAgICBNSU5fU0VDT05EU19CRVRXRUVOX09QUyA9IFRhZ1R5cGU6VUlOVCB8IDQwMywgICAgIC8qIE1pbmltdW0gZWxhcHNlZCB0aW1lIGJldHdlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB3aXRoIHRoZSBrZXkuICovCisgICAgTUFYX1VTRVNfUEVSX0JPT1QgPSBUYWdUeXBlOlVJTlQgfCA0MDQsICAgICAgICAgICAvKiBOdW1iZXIgb2YgdGltZXMgdGhlIGtleSBjYW4gYmUgdXNlZCBwZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJvb3QuICovCisKKyAgICAvKiogVXNlciBhdXRoZW50aWNhdGlvbiAqLworICAgIEFMTF9VU0VSUyA9IFRhZ1R5cGU6Qk9PTCB8IDUwMCwgICAgICAgICAgIC8qKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAtLSBpZ25vcmUuICovCisgICAgVVNFUl9JRCA9IFRhZ1R5cGU6VUlOVCB8IDUwMSwgICAgICAgICAgICAgLyoqIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIC0tIGlnbm9yZS4gKi8KKyAgICBVU0VSX1NFQ1VSRV9JRCA9IFRhZ1R5cGU6VUxPTkdfUkVQIHwgNTAyLCAvKiBTZWN1cmUgSUQgb2YgYXV0aG9yaXplZCB1c2VyIG9yIGF1dGhlbnRpY2F0b3IocykuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRGlzYWxsb3dlZCBpZiBBTExfVVNFUlMgb3IgTk9fQVVUSF9SRVFVSVJFRCBpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHByZXNlbnQuICovCisgICAgTk9fQVVUSF9SRVFVSVJFRCA9IFRhZ1R5cGU6Qk9PTCB8IDUwMywgICAgLyoqIElmIGtleSBpcyB1c2FibGUgd2l0aG91dCBhdXRoZW50aWNhdGlvbi4gKi8KKyAgICBVU0VSX0FVVEhfVFlQRSA9IFRhZ1R5cGU6RU5VTSB8IDUwNCwgICAgICAvKiBCaXRtYXNrIG9mIGF1dGhlbnRpY2F0b3IgdHlwZXMgYWxsb3dlZCB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVVNFUl9TRUNVUkVfSUQgY29udGFpbnMgYSBzZWN1cmUgdXNlciBJRCwgcmF0aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhhbiBhIHNlY3VyZSBhdXRoZW50aWNhdG9yIElELiAgRGVmaW5lZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUuICovCisgICAgQVVUSF9USU1FT1VUID0gVGFnVHlwZTpVSU5UIHwgNTA1LCAgICAgICAgLyogUmVxdWlyZWQgZnJlc2huZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24gZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcHJpdmF0ZS9zZWNyZXQga2V5IG9wZXJhdGlvbnMsIGluIHNlY29uZHMuICBQdWJsaWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXkgb3BlcmF0aW9ucyByZXF1aXJlIG5vIGF1dGhlbnRpY2F0aW9uLiAgSWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhYnNlbnQsIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBldmVyeSB1c2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQXV0aGVudGljYXRpb24gc3RhdGUgaXMgbG9zdCB3aGVuIHRoZSBkZXZpY2UgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwb3dlcmVkIG9mZi4gKi8KKyAgICBBTExPV19XSElMRV9PTl9CT0RZID0gVGFnVHlwZTpCT09MIHwgNTA2LCAvKiBBbGxvdyBrZXkgdG8gYmUgdXNlZCBhZnRlciBhdXRoZW50aWNhdGlvbiB0aW1lb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgZGV2aWNlIGlzIHN0aWxsIG9uLWJvZHkgKHJlcXVpcmVzIHNlY3VyZSBvbi1ib2R5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2Vuc29yLiAqLworCisgICAgLyoqIEFwcGxpY2F0aW9uIGFjY2VzcyBjb250cm9sICovCisgICAgQUxMX0FQUExJQ0FUSU9OUyA9IFRhZ1R5cGU6Qk9PTCB8IDYwMCwgLyogU3BlY2lmaWVkIHRvIGluZGljYXRlIGtleSBpcyB1c2FibGUgYnkgYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXBwbGljYXRpb25zLiAqLworICAgIEFQUExJQ0FUSU9OX0lEID0gVGFnVHlwZTpCWVRFUyB8IDYwMSwgIC8qKiBCeXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgYXV0aG9yaXplZCBhcHBsaWNhdGlvbi4gKi8KKyAgICBFWFBPUlRBQkxFID0gVGFnVHlwZTpCT09MIHwgNjAyLCAgICAgICAvKiBJZiB0cnVlLCBwcml2YXRlL3NlY3JldCBrZXkgY2FuIGJlIGV4cG9ydGVkLCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIGFsbCBhY2Nlc3MgY29udHJvbCByZXF1aXJlbWVudHMgZm9yIHVzZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtZXQuIChrZXltYXN0ZXIyKSAqLworCisgICAgLyoqCisgICAgICogU2VtYW50aWNhbGx5IHVuZW5mb3JjZWFibGUgdGFncywgZWl0aGVyIGJlY2F1c2UgdGhleSBoYXZlIG5vIHNwZWNpZmljIG1lYW5pbmcgb3IgYmVjYXVzZQorICAgICAqIHRoZXkncmUgaW5mb3JtYXRpb25hbCBvbmx5LgorICAgICAqLworICAgIEFQUExJQ0FUSU9OX0RBVEEgPSBUYWdUeXBlOkJZVEVTIHwgNzAwLCAgICAgIC8qKiBEYXRhIHByb3ZpZGVkIGJ5IGF1dGhvcml6ZWQgYXBwbGljYXRpb24uICovCisgICAgQ1JFQVRJT05fREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA3MDEsICAgICAgLyoqIEtleSBjcmVhdGlvbiB0aW1lICovCisgICAgT1JJR0lOID0gVGFnVHlwZTpFTlVNIHwgNzAyLCAgICAgICAgICAgICAgICAgLyoqIGtleW1hc3Rlcl9rZXlfb3JpZ2luX3QuICovCisgICAgUk9MTEJBQ0tfUkVTSVNUQU5UID0gVGFnVHlwZTpCT09MIHwgNzAzLCAgICAgLyoqIFdoZXRoZXIga2V5IGlzIHJvbGxiYWNrLXJlc2lzdGFudC4gKi8KKyAgICBST09UX09GX1RSVVNUID0gVGFnVHlwZTpCWVRFUyB8IDcwNCwgICAgICAgICAvKiogUm9vdCBvZiB0cnVzdCBJRC4gKi8KKyAgICBPU19WRVJTSU9OID0gVGFnVHlwZTpVSU5UIHwgNzA1LCAgICAgICAgICAgICAvKiogVmVyc2lvbiBvZiBzeXN0ZW0gKGtleW1hc3RlcjIpICovCisgICAgT1NfUEFUQ0hMRVZFTCA9IFRhZ1R5cGU6VUlOVCB8IDcwNiwgICAgICAgICAgLyoqIFBhdGNoIGxldmVsIG9mIHN5c3RlbSAoa2V5bWFzdGVyMikgKi8KKyAgICBVTklRVUVfSUQgPSBUYWdUeXBlOkJZVEVTIHwgNzA3LCAgICAgICAgICAgICAvKiogVXNlZCB0byBwcm92aWRlIHVuaXF1ZSBJRCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0NIQUxMRU5HRSA9IFRhZ1R5cGU6QllURVMgfCA3MDgsIC8qKiBVc2VkIHRvIHByb3ZpZGUgY2hhbGxlbmdlIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQgPSBUYWdUeXBlOkJZVEVTIHwgNzA5LCAvKiBVc2VkIHRvIGlkZW50aWZ5IHRoZSBzZXQgb2YgcG9zc2libGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9ucyBvZiB3aGljaCBvbmUgaGFzIGluaXRpYXRlZCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXkgYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9CUkFORCA9IFRhZ1R5cGU6QllURVMgfCA3MTAsICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIGJyYW5kIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX0RFVklDRSA9IFRhZ1R5cGU6QllURVMgfCA3MTEsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgZGV2aWNlIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX1BST0RVQ1QgPSBUYWdUeXBlOkJZVEVTIHwgNzEyLCAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIHByb2R1Y3QgbmFtZSB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX1NFUklBTCA9IFRhZ1R5cGU6QllURVMgfCA3MTMsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3Mgc2VyaWFsIG51bWJlciB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fSURfSU1FSSA9IFRhZ1R5cGU6QllURVMgfCA3MTQsICAgLyogVXNlZCB0byBwcm92aWRlIHRoZSBkZXZpY2UncyBJTUVJIHRvIGJlIGluY2x1ZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9NRUlEID0gVGFnVHlwZTpCWVRFUyB8IDcxNSwgICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIE1FSUQgdG8gYmUgaW5jbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX01BTlVGQUNUVVJFUiA9IFRhZ1R5cGU6QllURVMgfCA3MTYsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgbWFudWZhY3R1cmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSB0byBiZSBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX01PREVMID0gVGFnVHlwZTpCWVRFUyB8IDcxNywgIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgbW9kZWwgbmFtZSB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGluIGF0dGVzdGF0aW9uICovCisKKyAgICAvKiogVGFncyB1c2VkIG9ubHkgdG8gcHJvdmlkZSBkYXRhIHRvIG9yIHJlY2VpdmUgZGF0YSBmcm9tIG9wZXJhdGlvbnMgKi8KKyAgICBBU1NPQ0lBVEVEX0RBVEEgPSBUYWdUeXBlOkJZVEVTIHwgMTAwMCwgLyoqIFVzZWQgdG8gcHJvdmlkZSBhc3NvY2lhdGVkIGRhdGEgZm9yIEFFQUQgbW9kZXMuICovCisgICAgTk9OQ0UgPSBUYWdUeXBlOkJZVEVTIHwgMTAwMSwgICAgICAgICAgIC8qKiBOb25jZSBvciBJbml0aWFsaXphdGlvbiBWZWN0b3IgKi8KKyAgICBBVVRIX1RPS0VOID0gVGFnVHlwZTpCWVRFUyB8IDEwMDIsICAgICAgLyogQXV0aGVudGljYXRpb24gdG9rZW4gdGhhdCBwcm92ZXMgc2VjdXJlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXV0aGVudGljYXRpb24gaGFzIGJlZW4gcGVyZm9ybWVkLiAgU3RydWN0dXJlIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW4gaHdfYXV0aF90b2tlbl90IGluIGh3X2F1dGhfdG9rZW4uaC4gKi8KKyAgICBNQUNfTEVOR1RIID0gVGFnVHlwZTpVSU5UIHwgMTAwMywgICAgICAgLyoqIE1BQyBvciBBRUFEIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGggaW4gYml0cy4gKi8KKworICAgIFJFU0VUX1NJTkNFX0lEX1JPVEFUSU9OID0gVGFnVHlwZTpCT09MIHwgMTAwNCwgLyogV2hldGhlciB0aGUgZGV2aWNlIGhhcyBiZWVlbiBmYWN0b3J5IHJlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaW5jZSB0aGUgbGFzdCB1bmlxdWUgSUQgcm90YXRpb24uICBVc2VkIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoga2V5IGF0dGVzdGF0aW9uLiAqLworfTsKKworZW51bSBBbGdvcml0aG0gOiB1aW50MzJfdCB7CisgICAgLyoqIEFzeW1tZXRyaWMgYWxnb3JpdGhtcy4gKi8KKyAgICBSU0EgPSAxLAorICAgIC8vIERTQSA9IDIsIC0tIFJlbW92ZWQsIGRvIG5vdCByZS11c2UgdmFsdWUgMi4KKyAgICBFQyA9IDMsCisKKyAgICAvKiogQmxvY2sgY2lwaGVycyBhbGdvcml0aG1zICovCisgICAgQUVTID0gMzIsCisKKyAgICAvKiogTUFDIGFsZ29yaXRobXMgKi8KKyAgICBITUFDID0gMTI4LAorfTsKKworLyoqCisgKiBTeW1tZXRyaWMgYmxvY2sgY2lwaGVyIG1vZGVzIHByb3ZpZGVkIGJ5IGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2VudW0gQmxvY2tNb2RlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFVuYXV0aGVudGljYXRlZCBtb2RlcywgdXNhYmxlIG9ubHkgZm9yIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBhbmQgbm90IGdlbmVyYWxseSByZWNvbW1lbmRlZAorICAgICAqIGV4Y2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIG90aGVyIHByb3RvY29scy4gKi8KKyAgICBFQ0IgPSAxLAorICAgIENCQyA9IDIsCisgICAgQ1RSID0gMywKKworICAgIC8qKgorICAgICAqIEF1dGhlbnRpY2F0ZWQgbW9kZXMsIHVzYWJsZSBmb3IgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIGFuZCBzaWduaW5nL3ZlcmlmaWNhdGlvbi4gIFJlY29tbWVuZGVkCisgICAgICogb3ZlciB1bmF1dGhlbnRpY2F0ZWQgbW9kZXMgZm9yIGFsbCBwdXJwb3Nlcy4gKi8KKyAgICBHQ00gPSAzMiwKK307CisKKy8qKgorICogUGFkZGluZyBtb2RlcyB0aGF0IG1heSBiZSBhcHBsaWVkIHRvIHBsYWludGV4dCBmb3IgZW5jcnlwdGlvbiBvcGVyYXRpb25zLiAgVGhpcyBsaXN0IGluY2x1ZGVzCisgKiBwYWRkaW5nIG1vZGVzIGZvciBib3RoIHN5bW1ldHJpYyBhbmQgYXN5bW1ldHJpYyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBzaG91bGQgbm90CisgKiBwcm92aWRlIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgYWxnb3JpdGhtIGFuZCBwYWRkaW5nLCBvbmx5IHRoZQorICogY3J5cHRvZ3JhcGhpY2FsbHktYXBwcm9wcmlhdGUgcGFpcnMuCisgKi8KK2VudW0gUGFkZGluZ01vZGUgOiB1aW50MzJfdCB7CisgICAgTk9ORSA9IDEsIC8qKiBkZXByZWNhdGVkICovCisgICAgUlNBX09BRVAgPSAyLAorICAgIFJTQV9QU1MgPSAzLAorICAgIFJTQV9QS0NTMV8xXzVfRU5DUllQVCA9IDQsCisgICAgUlNBX1BLQ1MxXzFfNV9TSUdOID0gNSwKKyAgICBQS0NTNyA9IDY0LAorfTsKKworLyoqCisgKiBEaWdlc3RzIHByb3ZpZGVkIGJ5IGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2VudW0gRGlnZXN0IDogdWludDMyX3QgeworICAgIE5PTkUgPSAwLAorICAgIE1ENSA9IDEsIC8qIE9wdGlvbmFsLCBtYXkgbm90IGJlIGltcGxlbWVudGVkIGluIGhhcmR3YXJlLCB3aWxsIGJlIGhhbmRsZWQgaW4gc29mdHdhcmUgaWYKKyAgICAgICAgICAgICAgKiBuZWVkZWQuICovCisgICAgU0hBMSA9IDIsCisgICAgU0hBXzJfMjI0ID0gMywKKyAgICBTSEFfMl8yNTYgPSA0LAorICAgIFNIQV8yXzM4NCA9IDUsCisgICAgU0hBXzJfNTEyID0gNiwKK307CisKKy8qKgorICogU3VwcG9ydGVkIEVDIGN1cnZlcywgdXNlZCBpbiBFQ0RTQQorICovCitlbnVtIEVjQ3VydmUgOiB1aW50MzJfdCB7CisgICAgUF8yMjQgPSAwLAorICAgIFBfMjU2ID0gMSwKKyAgICBQXzM4NCA9IDIsCisgICAgUF81MjEgPSAzLAorfTsKKworLyoqCisgKiBUaGUgb3JpZ2luIG9mIGEga2V5IChvciBwYWlyKSwgaS5lLiB3aGVyZSBpdCB3YXMgZ2VuZXJhdGVkLiAgTm90ZSB0aGF0IE9SSUdJTiBjYW4gYmUgZm91bmQgaW4KKyAqIGVpdGhlciB0aGUgaGFyZHdhcmUtZW5mb3JjZWQgb3Igc29mdHdhcmUtZW5mb3JjZWQgbGlzdCBmb3IgYSBrZXksIGluZGljYXRpbmcgd2hldGhlciB0aGUga2V5IGlzCisgKiBoYXJkd2FyZSBvciBzb2Z0d2FyZS1iYXNlZC4gIFNwZWNpZmljYWxseSwgYSBrZXkgd2l0aCBHRU5FUkFURUQgaW4gdGhlIGhhcmR3YXJlLWVuZm9yY2VkIGxpc3QgaXMKKyAqIGd1YXJhbnRlZWQgbmV2ZXIgdG8gaGF2ZSBleGlzdGVkIG91dGlkZSB0aGUgc2VjdXJlIGhhcmR3YXJlLgorICovCitlbnVtIEtleU9yaWdpbiA6IHVpbnQzMl90IHsKKyAgICBHRU5FUkFURUQgPSAwLCAvKiogR2VuZXJhdGVkIGluIGtleW1hc3Rlci4gIFNob3VsZCBub3QgZXhpc3Qgb3V0c2lkZSB0aGUgVEVFLiAqLworICAgIERFUklWRUQgPSAxLCAgIC8qKiBEZXJpdmVkIGluc2lkZSBrZXltYXN0ZXIuICBMaWtlbHkgZXhpc3RzIG9mZi1kZXZpY2UuICovCisgICAgSU1QT1JURUQgPSAyLCAgLyoqIEltcG9ydGVkIGludG8ga2V5bWFzdGVyLiAgRXhpc3RlZCBhcyBjbGVhcnRleHQgaW4gQW5kcm9pZC4gKi8KKyAgICBVTktOT1dOID0gMywgICAvKiBLZXltYXN0ZXIgZGlkIG5vdCByZWNvcmQgb3JpZ2luLiAgVGhpcyB2YWx1ZSBjYW4gb25seSBiZSBzZWVuIG9uIGtleXMgaW4gYQorICAgICAgICAgICAgICAgICAgICAqIGtleW1hc3RlcjAgaW1wbGVtZW50YXRpb24uICBUaGUga2V5bWFzdGVyMCBhZGFwdGVyIHVzZXMgdGhpcyB2YWx1ZSB0byBkb2N1bWVudAorICAgICAgICAgICAgICAgICAgICAqIHRoZSBmYWN0IHRoYXQgaXQgaXMgdW5rb3duIHdoZXRoZXIgdGhlIGtleSB3YXMgZ2VuZXJhdGVkIGluc2lkZSBvciBpbXBvcnRlZAorICAgICAgICAgICAgICAgICAgICAqIGludG8ga2V5bWFzdGVyLiAqLworfTsKKworLyoqCisgKiBVc2FiaWxpdHkgcmVxdWlyZW1lbnRzIG9mIGtleSBibG9icy4gIFRoaXMgZGVmaW5lcyB3aGF0IHN5c3RlbSBmdW5jdGlvbmFsaXR5IG11c3QgYmUgYXZhaWxhYmxlCisgKiBmb3IgdGhlIGtleSB0byBmdW5jdGlvbi4gIEZvciBleGFtcGxlLCBrZXkgImJsb2JzIiB3aGljaCBhcmUgYWN0dWFsbHkgaGFuZGxlcyByZWZlcmVuY2luZworICogZW5jcnlwdGVkIGtleSBtYXRlcmlhbCBzdG9yZWQgaW4gdGhlIGZpbGUgc3lzdGVtIGNhbm5vdCBiZSB1c2VkIHVudGlsIHRoZSBmaWxlIHN5c3RlbSBpcworICogYXZhaWxhYmxlLCBhbmQgc2hvdWxkIGhhdmUgQkxPQl9SRVFVSVJFU19GSUxFX1NZU1RFTS4gIE90aGVyIHJlcXVpcmVtZW50cyBlbnRyaWVzIHdpbGwgYmUgYWRkZWQKKyAqIGFzIG5lZWRlZCBmb3IgaW1wbGVtZW50YXRpb25zLgorICovCitlbnVtIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyA6IHVpbnQzMl90IHsKKyAgICBTVEFOREFMT05FID0gMCwKKyAgICBSRVFVSVJFU19GSUxFX1NZU1RFTSA9IDEsCit9OworCisvKioKKyAqIFBvc3NpYmxlIHB1cnBvc2VzIG9mIGEga2V5IChvciBwYWlyKS4KKyAqLworZW51bSBLZXlQdXJwb3NlIDogdWludDMyX3QgeworICAgIEVOQ1JZUFQgPSAwLCAgICAvKiogVXNhYmxlIHdpdGggUlNBLCBFQyBhbmQgQUVTIGtleXMuICovCisgICAgREVDUllQVCA9IDEsICAgIC8qKiBVc2FibGUgd2l0aCBSU0EsIEVDIGFuZCBBRVMga2V5cy4gKi8KKyAgICBTSUdOID0gMiwgICAgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEhNQUMga2V5cy4gKi8KKyAgICBWRVJJRlkgPSAzLCAgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEhNQUMga2V5cy4gKi8KKyAgICBERVJJVkVfS0VZID0gNCwgLyoqIFVzYWJsZSB3aXRoIEVDIGtleXMuICovCisgICAgV1JBUF9LRVkgPSA1LCAgIC8qKiBVc2FibGUgd2l0aCB3cmFwcGluZyBrZXlzLiAqLworfTsKKworLyoqCisgKiBLZXltYXN0ZXIgZXJyb3IgY29kZXMuCisgKi8KK2VudW0gRXJyb3JDb2RlIDogdWludDMyX3QgeworICAgIE9LID0gMCwKKyAgICBST09UX09GX1RSVVNUX0FMUkVBRFlfU0VUID0gLTEsCisgICAgVU5TVVBQT1JURURfUFVSUE9TRSA9IC0yLAorICAgIElOQ09NUEFUSUJMRV9QVVJQT1NFID0gLTMsCisgICAgVU5TVVBQT1JURURfQUxHT1JJVEhNID0gLTQsCisgICAgSU5DT01QQVRJQkxFX0FMR09SSVRITSA9IC01LAorICAgIFVOU1VQUE9SVEVEX0tFWV9TSVpFID0gLTYsCisgICAgVU5TVVBQT1JURURfQkxPQ0tfTU9ERSA9IC03LAorICAgIElOQ09NUEFUSUJMRV9CTE9DS19NT0RFID0gLTgsCisgICAgVU5TVVBQT1JURURfTUFDX0xFTkdUSCA9IC05LAorICAgIFVOU1VQUE9SVEVEX1BBRERJTkdfTU9ERSA9IC0xMCwKKyAgICBJTkNPTVBBVElCTEVfUEFERElOR19NT0RFID0gLTExLAorICAgIFVOU1VQUE9SVEVEX0RJR0VTVCA9IC0xMiwKKyAgICBJTkNPTVBBVElCTEVfRElHRVNUID0gLTEzLAorICAgIElOVkFMSURfRVhQSVJBVElPTl9USU1FID0gLTE0LAorICAgIElOVkFMSURfVVNFUl9JRCA9IC0xNSwKKyAgICBJTlZBTElEX0FVVEhPUklaQVRJT05fVElNRU9VVCA9IC0xNiwKKyAgICBVTlNVUFBPUlRFRF9LRVlfRk9STUFUID0gLTE3LAorICAgIElOQ09NUEFUSUJMRV9LRVlfRk9STUFUID0gLTE4LAorICAgIFVOU1VQUE9SVEVEX0tFWV9FTkNSWVBUSU9OX0FMR09SSVRITSA9IC0xOSwgICAvKiogRm9yIFBLQ1M4ICYgUEtDUzEyICovCisgICAgVU5TVVBQT1JURURfS0VZX1ZFUklGSUNBVElPTl9BTEdPUklUSE0gPSAtMjAsIC8qKiBGb3IgUEtDUzggJiBQS0NTMTIgKi8KKyAgICBJTlZBTElEX0lOUFVUX0xFTkdUSCA9IC0yMSwKKyAgICBLRVlfRVhQT1JUX09QVElPTlNfSU5WQUxJRCA9IC0yMiwKKyAgICBERUxFR0FUSU9OX05PVF9BTExPV0VEID0gLTIzLAorICAgIEtFWV9OT1RfWUVUX1ZBTElEID0gLTI0LAorICAgIEtFWV9FWFBJUkVEID0gLTI1LAorICAgIEtFWV9VU0VSX05PVF9BVVRIRU5USUNBVEVEID0gLTI2LAorICAgIE9VVFBVVF9QQVJBTUVURVJfTlVMTCA9IC0yNywKKyAgICBJTlZBTElEX09QRVJBVElPTl9IQU5ETEUgPSAtMjgsCisgICAgSU5TVUZGSUNJRU5UX0JVRkZFUl9TUEFDRSA9IC0yOSwKKyAgICBWRVJJRklDQVRJT05fRkFJTEVEID0gLTMwLAorICAgIFRPT19NQU5ZX09QRVJBVElPTlMgPSAtMzEsCisgICAgVU5FWFBFQ1RFRF9OVUxMX1BPSU5URVIgPSAtMzIsCisgICAgSU5WQUxJRF9LRVlfQkxPQiA9IC0zMywKKyAgICBJTVBPUlRFRF9LRVlfTk9UX0VOQ1JZUFRFRCA9IC0zNCwKKyAgICBJTVBPUlRFRF9LRVlfREVDUllQVElPTl9GQUlMRUQgPSAtMzUsCisgICAgSU1QT1JURURfS0VZX05PVF9TSUdORUQgPSAtMzYsCisgICAgSU1QT1JURURfS0VZX1ZFUklGSUNBVElPTl9GQUlMRUQgPSAtMzcsCisgICAgSU5WQUxJRF9BUkdVTUVOVCA9IC0zOCwKKyAgICBVTlNVUFBPUlRFRF9UQUcgPSAtMzksCisgICAgSU5WQUxJRF9UQUcgPSAtNDAsCisgICAgTUVNT1JZX0FMTE9DQVRJT05fRkFJTEVEID0gLTQxLAorICAgIElNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0ggPSAtNDQsCisgICAgU0VDVVJFX0hXX0FDQ0VTU19ERU5JRUQgPSAtNDUsCisgICAgT1BFUkFUSU9OX0NBTkNFTExFRCA9IC00NiwKKyAgICBDT05DVVJSRU5UX0FDQ0VTU19DT05GTElDVCA9IC00NywKKyAgICBTRUNVUkVfSFdfQlVTWSA9IC00OCwKKyAgICBTRUNVUkVfSFdfQ09NTVVOSUNBVElPTl9GQUlMRUQgPSAtNDksCisgICAgVU5TVVBQT1JURURfRUNfRklFTEQgPSAtNTAsCisgICAgTUlTU0lOR19OT05DRSA9IC01MSwKKyAgICBJTlZBTElEX05PTkNFID0gLTUyLAorICAgIE1JU1NJTkdfTUFDX0xFTkdUSCA9IC01MywKKyAgICBLRVlfUkFURV9MSU1JVF9FWENFRURFRCA9IC01NCwKKyAgICBDQUxMRVJfTk9OQ0VfUFJPSElCSVRFRCA9IC01NSwKKyAgICBLRVlfTUFYX09QU19FWENFRURFRCA9IC01NiwKKyAgICBJTlZBTElEX01BQ19MRU5HVEggPSAtNTcsCisgICAgTUlTU0lOR19NSU5fTUFDX0xFTkdUSCA9IC01OCwKKyAgICBVTlNVUFBPUlRFRF9NSU5fTUFDX0xFTkdUSCA9IC01OSwKKyAgICBVTlNVUFBPUlRFRF9LREYgPSAtNjAsCisgICAgVU5TVVBQT1JURURfRUNfQ1VSVkUgPSAtNjEsCisgICAgS0VZX1JFUVVJUkVTX1VQR1JBREUgPSAtNjIsCisgICAgQVRURVNUQVRJT05fQ0hBTExFTkdFX01JU1NJTkcgPSAtNjMsCisgICAgS0VZTUFTVEVSX05PVF9DT05GSUdVUkVEID0gLTY0LAorICAgIEFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcgPSAtNjUsCisgICAgQ0FOTk9UX0FUVEVTVF9JRFMgPSAtNjYsCisKKyAgICBVTklNUExFTUVOVEVEID0gLTEwMCwKKyAgICBWRVJTSU9OX01JU01BVENIID0gLTEwMSwKKworICAgIFVOS05PV05fRVJST1IgPSAtMTAwMCwKK307CisKKy8qKgorICogS2V5IGRlcml2YXRpb24gZnVuY3Rpb25zLCBtb3N0bHkgdXNlZCBpbiBFQ0lFUy4KKyAqLworZW51bSBLZXlEZXJpdmF0aW9uRnVuY3Rpb24gOiB1aW50MzJfdCB7CisgICAgLyoqIERvIG5vdCBhcHBseSBhIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uOyB1c2UgdGhlIHJhdyBhZ3JlZWQga2V5ICovCisgICAgTk9ORSA9IDAsCisgICAgLyoqIEhLREYgZGVmaW5lZCBpbiBSRkMgNTg2OSB3aXRoIFNIQTI1NiAqLworICAgIFJGQzU4NjlfU0hBMjU2ID0gMSwKKyAgICAvKiogS0RGMSBkZWZpbmVkIGluIElTTyAxODAzMy0yIHdpdGggU0hBMSAqLworICAgIElTTzE4MDMzXzJfS0RGMV9TSEExID0gMiwKKyAgICAvKiogS0RGMSBkZWZpbmVkIGluIElTTyAxODAzMy0yIHdpdGggU0hBMjU2ICovCisgICAgSVNPMTgwMzNfMl9LREYxX1NIQTI1NiA9IDMsCisgICAgLyoqIEtERjIgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTEgKi8KKyAgICBJU08xODAzM18yX0tERjJfU0hBMSA9IDQsCisgICAgLyoqIEtERjIgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTI1NiAqLworICAgIElTTzE4MDMzXzJfS0RGMl9TSEEyNTYgPSA1LAorfTsKKworLyoqCisgKiBIYXJkd2FyZSBhdXRoZW50aWNhdGlvbiB0eXBlLCB1c2VkIGJ5IEhhcmR3YXJlQXV0aFRva2VucyB0byBzcGVjaWZ5IHRoZSBtZWNoYW5pc20gdXNlZCB0bworICogYXV0aGVudGlhdGUgdGhlIHVzZXIsIGFuZCBpbiBLZXlDaGFyYWN0ZXJpc3RpY3MgdG8gc3BlY2lmeSB0aGUgYWxsb3dhYmxlIG1lY2hhbmlzbXMgZm9yCisgKiBhdXRoZW50aWNhdGluZyB0byBhY3RpdmF0ZSBhIGtleS4KKyAqLworZW51bSBIYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlIDogdWludDMyX3QgeworICAgIE5PTkUgPSAwLAorICAgIFBBU1NXT1JEID0gMSA8PCAwLAorICAgIEZJTkdFUlBSSU5UID0gMSA8PCAxLAorICAgIC8vIEFkZGl0aW9uYWwgZW50cmllcyBtdXN0IGJlIHBvd2VycyBvZiAyLgorICAgIEFOWSA9IDB4RkZGRkZGRkYsCit9OworCitzdHJ1Y3QgS2V5UGFyYW1ldGVyIHsKKyAgICAvKioKKyAgICAgKiBEaXNjcmltaW5hdGVzIHRoZSB1aW5vbi9ibG9iIGZpZWxkIHVzZWQuICBUaGUgYmxvYiBjYW5ub3QgYmUgY29pbmNpZGVkIHdpdGggdGhlIHVuaW9uLCBidXQKKyAgICAgKiBvbmx5IG9uZSBvZiAiZiIgYW5kICJibG9iIiBpcyBldmVyIHVzZWQgYXQgYSB0aW1lLiAqLworICAgIFRhZyB0YWc7CisgICAgdW5pb24gSW50ZWdlclBhcmFtcyB7CisgICAgICAgIC8qKiBFbnVtIHR5cGVzICovCisgICAgICAgIEFsZ29yaXRobSBhbGdvcml0aG07CisgICAgICAgIEJsb2NrTW9kZSBibG9ja01vZGU7CisgICAgICAgIFBhZGRpbmdNb2RlIHBhZGRpbmdNb2RlOworICAgICAgICBEaWdlc3QgZGlnZXN0OworICAgICAgICBFY0N1cnZlIGVjQ3VydmU7CisgICAgICAgIEtleU9yaWdpbiBvcmlnaW47CisgICAgICAgIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyBrZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgICAgIEtleVB1cnBvc2UgcHVycG9zZTsKKyAgICAgICAgS2V5RGVyaXZhdGlvbkZ1bmN0aW9uIGtleURlcml2YXRpb25GdW5jdGlvbjsKKyAgICAgICAgSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSBoYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlOworCisgICAgICAgIC8qKiBPdGhlciB0eXBlcyAqLworICAgICAgICBib29sIGJvb2xWYWx1ZTsgIC8vIEFsd2F5cyB0cnVlLCBpZiBhIGJvb2xlYW4gdGFnIGlzIHByZXNlbnQuCisgICAgICAgIHVpbnQzMl90IGludGVnZXI7CisgICAgICAgIHVpbnQ2NF90IGxvbmdJbnRlZ2VyOworICAgICAgICB1aW50NjRfdCBkYXRlVGltZTsKKyAgICB9OworICAgIEludGVnZXJQYXJhbXMgZjsgIC8vIEhpZGwgZG9lcyBub3Qgc3VwcG9ydCBhbm9ueW1vdXMgdW5pb25zLCBzbyB3ZSBoYXZlIHRvIG5hbWUgaXQuCisgICAgdmVjPHVpbnQ4X3Q+IGJsb2I7Cit9OworCitzdHJ1Y3QgS2V5Q2hhcmFjdGVyaXN0aWNzIHsKKyAgICB2ZWM8S2V5UGFyYW1ldGVyPiBzb2Z0d2FyZUVuZm9yY2VkOworICAgIHZlYzxLZXlQYXJhbWV0ZXI+IHRlZUVuZm9yY2VkOworfTsKKworLyoqCisgKiBEYXRhIHVzZWQgdG8gcHJvdmUgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4KKyAqLworc3RydWN0IEhhcmR3YXJlQXV0aFRva2VuIHsKKyAgICB1aW50NjRfdCBjaGFsbGVuZ2U7CisgICAgdWludDY0X3QgdXNlcklkOyAgICAgICAgICAgICAvLyBTZWN1cmUgVXNlciBJRCwgbm90IEFuZHJvaWQgdXNlciBJRC4KKyAgICB1aW50NjRfdCBhdXRoZW50aWNhdG9ySWQ7ICAgIC8vIFNlY3VyZSBhdXRoZW50aWNhdG9yIElELgorICAgIHVpbnQzMl90IGF1dGhlbnRpY2F0b3JUeXBlOyAgLy8gSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSwgaW4gbmV0d29yayBvcmRlci4KKyAgICB1aW50NjRfdCB0aW1lc3RhbXA7ICAgICAgICAgIC8vIEluIG5ldHdvcmsgb3JkZXIuCisgICAgdWludDhfdFszMl0gaG1hYzsgICAgICAgICAgICAvLyBITUFDIGlzIGNvbXB1dGVkIG92ZXIgMCB8fCBjaGFsbGVuZ2UgfHwgdXNlcl9pZCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXV0aGVudGljYXRvcl9pZCB8fCBhdXRoZW50aWNhdG9yX3R5cGUgfHwgdGltZXN0YW1wLCB3aXRoIGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeGVkIDAgYnl0ZSAod2hpY2ggd2FzIGEgdmVyc2lvbiBmaWVsZCBpbiBLZXltYXN0ZXIxIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gS2V5bWFzdGVyMikgYW5kIHRoZSBmaWVsZHMgcGFja2VkIChubyBwYWRkaW5nOyBzbyB5b3UgcHJvYmFibHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbid0IGp1c3QgY29tcHV0ZSBvdmVyIHRoZSBieXRlcyBvZiB0aGUgc3RydWN0KS4KK307CisKK2VudW0gU2VjdXJpdHlMZXZlbCA6IHVpbnQzMl90IHsKKyAgICBTT0ZUV0FSRSA9IDAsCisgICAgVFJVU1RFRF9FTlZJUk9OTUVOVCA9IDEsCit9OworCisvKioKKyAqIEZvcm1hdHMgZm9yIGtleSBpbXBvcnQgYW5kIGV4cG9ydC4KKyAqLworZW51bSBLZXlGb3JtYXQgOiB1aW50MzJfdCB7CisgICAgWDUwOSA9IDAsICAvKiogZm9yIHB1YmxpYyBrZXkgZXhwb3J0ICovCisgICAgUEtDUzggPSAxLCAvKiogZm9yIGFzeW1tZXRyaWMga2V5IHBhaXIgaW1wb3J0ICovCisgICAgUkFXID0gMywgICAvKiBmb3Igc3ltbWV0cmljIGtleSBpbXBvcnQgYW5kIGV4cG9ydCovCit9OworCit0eXBlZGVmIHVpbnQ2NF90IE9wZXJhdGlvbkhhbmRsZTsKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tayBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDk4NjY0Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gVnRzSGFsS2V5bWFzdGVyVjNfMFRhcmdldFRlc3QKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgICAgIGF1dGhvcml6YXRpb25fc2V0LmNwcCBcCisgICAgICAgIGF0dGVzdGF0aW9uX3JlY29yZC5jcHAgXAorICAgICAgICBrZXlfcGFyYW1fb3V0cHV0LmNwcCBcCisgICAgICAgIGtleW1hc3Rlcl9oaWRsX2hhbF90ZXN0LmNwcCBcCisgICAgICAgIGtleXN0b3JlX3RhZ3NfdXRpbHMuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCBcCisgICAgICAgIGxpYmNyeXB0byBcCisgICAgICAgIGxpYmhpZGxiYXNlIFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGlic29mdGtleW1hc3RlcmRldmljZSBcCisgICAgICAgIGxpYnV0aWxzIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgICAgIFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSBcCisKK0xPQ0FMX0NGTEFHUyA6PSAtV2FsbCAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9OQVRJVkVfVEVTVCkKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDk2ZmZmCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuY3BwCkBAIC0wLDAgKzEsMjkxIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiYXR0ZXN0YXRpb25fcmVjb3JkLmgiCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworI2luY2x1ZGUgPG9wZW5zc2wvYXNuMXQuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KKworI2luY2x1ZGUgIm9wZW5zc2xfdXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitzdHJ1Y3Qgc3RhY2tfc3RfQVNOMV9UWVBFX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKHN0YWNrX3N0X0FTTjFfVFlQRSogcCkgeyBza19BU04xX1RZUEVfZnJlZShwKTsgfQorfTsKKworc3RydWN0IEFTTjFfU1RSSU5HX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKEFTTjFfU1RSSU5HKiBwKSB7IEFTTjFfU1RSSU5HX2ZyZWUocCk7IH0KK307CisKK3N0cnVjdCBBU04xX1RZUEVfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoQVNOMV9UWVBFKiBwKSB7IEFTTjFfVFlQRV9mcmVlKHApOyB9Cit9OworCisjZGVmaW5lIEFTTjFfSU5URUdFUl9TRVQgU1RBQ0tfT0YoQVNOMV9JTlRFR0VSKQorCit0eXBlZGVmIHN0cnVjdCBrbV9yb290X29mX3RydXN0IHsKKyAgICBBU04xX09DVEVUX1NUUklORyogdmVyaWZpZWRfYm9vdF9rZXk7CisgICAgQVNOMV9CT09MRUFOKiBkZXZpY2VfbG9ja2VkOworICAgIEFTTjFfRU5VTUVSQVRFRCogdmVyaWZpZWRfYm9vdF9zdGF0ZTsKK30gS01fUk9PVF9PRl9UUlVTVDsKKworQVNOMV9TRVFVRU5DRShLTV9ST09UX09GX1RSVVNUKSA9IHsKKyAgICBBU04xX1NJTVBMRShLTV9ST09UX09GX1RSVVNULCB2ZXJpZmllZF9ib290X2tleSwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX1JPT1RfT0ZfVFJVU1QsIGRldmljZV9sb2NrZWQsIEFTTjFfQk9PTEVBTiksCisgICAgQVNOMV9TSU1QTEUoS01fUk9PVF9PRl9UUlVTVCwgdmVyaWZpZWRfYm9vdF9zdGF0ZSwgQVNOMV9FTlVNRVJBVEVEKSwKK30gQVNOMV9TRVFVRU5DRV9FTkQoS01fUk9PVF9PRl9UUlVTVCk7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fUk9PVF9PRl9UUlVTVCk7CisKK3R5cGVkZWYgc3RydWN0IGttX2F1dGhfbGlzdCB7CisgICAgQVNOMV9JTlRFR0VSX1NFVCogcHVycG9zZTsKKyAgICBBU04xX0lOVEVHRVIqIGFsZ29yaXRobTsKKyAgICBBU04xX0lOVEVHRVIqIGtleV9zaXplOworICAgIEFTTjFfSU5URUdFUl9TRVQqIGRpZ2VzdDsKKyAgICBBU04xX0lOVEVHRVJfU0VUKiBwYWRkaW5nOworICAgIEFTTjFfSU5URUdFUl9TRVQqIGtkZjsKKyAgICBBU04xX0lOVEVHRVIqIGVjX2N1cnZlOworICAgIEFTTjFfSU5URUdFUiogcnNhX3B1YmxpY19leHBvbmVudDsKKyAgICBBU04xX0lOVEVHRVIqIGFjdGl2ZV9kYXRlX3RpbWU7CisgICAgQVNOMV9JTlRFR0VSKiBvcmlnaW5hdGlvbl9leHBpcmVfZGF0ZV90aW1lOworICAgIEFTTjFfSU5URUdFUiogdXNhZ2VfZXhwaXJlX2RhdGVfdGltZTsKKyAgICBBU04xX05VTEwqIG5vX2F1dGhfcmVxdWlyZWQ7CisgICAgQVNOMV9JTlRFR0VSKiB1c2VyX2F1dGhfdHlwZTsKKyAgICBBU04xX0lOVEVHRVIqIGF1dGhfdGltZW91dDsKKyAgICBBU04xX05VTEwqIGFsbG93X3doaWxlX29uX2JvZHk7CisgICAgQVNOMV9OVUxMKiBhbGxfYXBwbGljYXRpb25zOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhcHBsaWNhdGlvbl9pZDsKKyAgICBBU04xX0lOVEVHRVIqIGNyZWF0aW9uX2RhdGVfdGltZTsKKyAgICBBU04xX0lOVEVHRVIqIG9yaWdpbjsKKyAgICBBU04xX05VTEwqIHJvbGxiYWNrX3Jlc2lzdGFudDsKKyAgICBLTV9ST09UX09GX1RSVVNUKiByb290X29mX3RydXN0OworICAgIEFTTjFfSU5URUdFUiogb3NfdmVyc2lvbjsKKyAgICBBU04xX0lOVEVHRVIqIG9zX3BhdGNobGV2ZWw7CisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdGF0aW9uX2FwcGxpY2F0aW9uX2lkOworfSBLTV9BVVRIX0xJU1Q7CisKK0FTTjFfU0VRVUVOQ0UoS01fQVVUSF9MSVNUKSA9IHsKKyAgICBBU04xX0VYUF9TRVRfT0ZfT1BUKEtNX0FVVEhfTElTVCwgcHVycG9zZSwgQVNOMV9JTlRFR0VSLCBUQUdfUFVSUE9TRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYWxnb3JpdGhtLCBBU04xX0lOVEVHRVIsIFRBR19BTEdPUklUSE0ubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGtleV9zaXplLCBBU04xX0lOVEVHRVIsIFRBR19LRVlfU0laRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIGRpZ2VzdCwgQVNOMV9JTlRFR0VSLCBUQUdfRElHRVNULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9TRVRfT0ZfT1BUKEtNX0FVVEhfTElTVCwgcGFkZGluZywgQVNOMV9JTlRFR0VSLCBUQUdfUEFERElORy5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIGtkZiwgQVNOMV9JTlRFR0VSLCBUQUdfS0RGLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBlY19jdXJ2ZSwgQVNOMV9JTlRFR0VSLCBUQUdfRUNfQ1VSVkUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJzYV9wdWJsaWNfZXhwb25lbnQsIEFTTjFfSU5URUdFUiwKKyAgICAgICAgICAgICAgICAgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFjdGl2ZV9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwgVEFHX0FDVElWRV9EQVRFVElNRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgb3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZSwgQVNOMV9JTlRFR0VSLAorICAgICAgICAgICAgICAgICBUQUdfT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCB1c2FnZV9leHBpcmVfZGF0ZV90aW1lLCBBU04xX0lOVEVHRVIsCisgICAgICAgICAgICAgICAgIFRBR19VU0FHRV9FWFBJUkVfREFURVRJTUUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIG5vX2F1dGhfcmVxdWlyZWQsIEFTTjFfTlVMTCwgVEFHX05PX0FVVEhfUkVRVUlSRUQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHVzZXJfYXV0aF90eXBlLCBBU04xX0lOVEVHRVIsIFRBR19VU0VSX0FVVEhfVFlQRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYXV0aF90aW1lb3V0LCBBU04xX0lOVEVHRVIsIFRBR19BVVRIX1RJTUVPVVQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsbG93X3doaWxlX29uX2JvZHksIEFTTjFfTlVMTCwgVEFHX0FMTE9XX1dISUxFX09OX0JPRFkubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsbF9hcHBsaWNhdGlvbnMsIEFTTjFfTlVMTCwgVEFHX0FMTF9BUFBMSUNBVElPTlMubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFwcGxpY2F0aW9uX2lkLCBBU04xX09DVEVUX1NUUklORywgVEFHX0FQUExJQ0FUSU9OX0lELm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBjcmVhdGlvbl9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwgVEFHX0NSRUFUSU9OX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvcmlnaW4sIEFTTjFfSU5URUdFUiwgVEFHX09SSUdJTi5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgcm9sbGJhY2tfcmVzaXN0YW50LCBBU04xX05VTEwsIFRBR19ST0xMQkFDS19SRVNJU1RBTlQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJvb3Rfb2ZfdHJ1c3QsIEtNX1JPT1RfT0ZfVFJVU1QsIFRBR19ST09UX09GX1RSVVNULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvc192ZXJzaW9uLCBBU04xX0lOVEVHRVIsIFRBR19PU19WRVJTSU9OLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvc19wYXRjaGxldmVsLCBBU04xX0lOVEVHRVIsIFRBR19PU19QQVRDSExFVkVMLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhdHRlc3RhdGlvbl9hcHBsaWNhdGlvbl9pZCwgQVNOMV9PQ1RFVF9TVFJJTkcsCisgICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRC5tYXNrZWRUYWcoKSksCit9IEFTTjFfU0VRVUVOQ0VfRU5EKEtNX0FVVEhfTElTVCk7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fQVVUSF9MSVNUKTsKKwordHlwZWRlZiBzdHJ1Y3Qga21fa2V5X2Rlc2NyaXB0aW9uIHsKKyAgICBBU04xX0lOVEVHRVIqIGF0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgQVNOMV9FTlVNRVJBVEVEKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbDsKKyAgICBBU04xX0lOVEVHRVIqIGtleW1hc3Rlcl92ZXJzaW9uOworICAgIEFTTjFfRU5VTUVSQVRFRCoga2V5bWFzdGVyX3NlY3VyaXR5X2xldmVsOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2U7CisgICAgS01fQVVUSF9MSVNUKiBzb2Z0d2FyZV9lbmZvcmNlZDsKKyAgICBLTV9BVVRIX0xJU1QqIHRlZV9lbmZvcmNlZDsKKyAgICBBU04xX0lOVEVHRVIqIHVuaXF1ZV9pZDsKK30gS01fS0VZX0RFU0NSSVBUSU9OOworCitBU04xX1NFUVVFTkNFKEtNX0tFWV9ERVNDUklQVElPTikgPSB7CisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBhdHRlc3RhdGlvbl92ZXJzaW9uLCBBU04xX0lOVEVHRVIpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsIEFTTjFfRU5VTUVSQVRFRCksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBrZXltYXN0ZXJfdmVyc2lvbiwgQVNOMV9JTlRFR0VSKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgQVNOMV9FTlVNRVJBVEVEKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGF0dGVzdGF0aW9uX2NoYWxsZW5nZSwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgdW5pcXVlX2lkLCBBU04xX09DVEVUX1NUUklORyksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBzb2Z0d2FyZV9lbmZvcmNlZCwgS01fQVVUSF9MSVNUKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIHRlZV9lbmZvcmNlZCwgS01fQVVUSF9MSVNUKSwKK30gQVNOMV9TRVFVRU5DRV9FTkQoS01fS0VZX0RFU0NSSVBUSU9OKTsKK0lNUExFTUVOVF9BU04xX0ZVTkNUSU9OUyhLTV9LRVlfREVTQ1JJUFRJT04pOworCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3Qgc3RhY2tfc3RfQVNOMV9JTlRFR0VSKiBzdGFjaywgVHlwZWRUYWc8VGFnVHlwZTo6RU5VTV9SRVAsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlZFRhZzJWYWx1ZVR5cGU8ZGVjbHR5cGUodHRhZyk+Ojp0eXBlIFZhbHVlVDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNrX0FTTjFfSU5URUdFUl9udW0oc3RhY2spOyArK2kpIHsKKyAgICAgICAgYXV0aF9saXN0LT5wdXNoX2JhY2soCisgICAgICAgICAgICB0dGFnLCBzdGF0aWNfY2FzdDxWYWx1ZVQ+KEFTTjFfSU5URUdFUl9nZXQoc2tfQVNOMV9JTlRFR0VSX3ZhbHVlKHN0YWNrLCBpKSkpKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX0lOVEVHRVIqIGFzbjFfaW50LCBUeXBlZFRhZzxUYWdUeXBlOjpFTlVNLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHlwZWRUYWcyVmFsdWVUeXBlPGRlY2x0eXBlKHR0YWcpPjo6dHlwZSBWYWx1ZVQ7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIHN0YXRpY19jYXN0PFZhbHVlVD4oQVNOMV9JTlRFR0VSX2dldChhc24xX2ludCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OlVJTlQsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIEFTTjFfSU5URUdFUl9nZXQoYXNuMV9pbnQpKTsKK30KKworQklHTlVNKiBjb25zdHJ1Y3RfdWludF9tYXgoKSB7CisgICAgQklHTlVNKiB2YWx1ZSA9IEJOX25ldygpOworICAgIEJJR05VTV9QdHIgb25lKEJOX25ldygpKTsKKyAgICBCTl9vbmUob25lLmdldCgpKTsKKyAgICBCTl9sc2hpZnQodmFsdWUsIG9uZS5nZXQoKSwgMzIpOworICAgIHJldHVybiB2YWx1ZTsKK30KKwordWludDY0X3QgQmlnbnVtVG9VaW50NjQoQklHTlVNKiBudW0pIHsKKyAgICBzdGF0aWNfYXNzZXJ0KChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50MzJfdCkpIHx8IChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50NjRfdCkpLAorICAgICAgICAgICAgICAgICAgIlRoaXMgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyAzMiBhbmQgNjQtYml0IEJOX1VMT05HIik7CisgICAgaWYgKHNpemVvZihCTl9VTE9ORykgPT0gc2l6ZW9mKHVpbnQzMl90KSkgeworICAgICAgICBCSUdOVU1fUHRyIHVpbnRfbWF4KGNvbnN0cnVjdF91aW50X21heCgpKTsKKyAgICAgICAgQklHTlVNX1B0ciBoaShCTl9uZXcoKSksIGxvKEJOX25ldygpKTsKKyAgICAgICAgQk5fQ1RYX1B0ciBjdHgoQk5fQ1RYX25ldygpKTsKKyAgICAgICAgQk5fZGl2KGhpLmdldCgpLCBsby5nZXQoKSwgbnVtLCB1aW50X21heC5nZXQoKSwgY3R4LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCTl9nZXRfd29yZChoaS5nZXQoKSkpIDw8IDMyIHwgQk5fZ2V0X3dvcmQobG8uZ2V0KCkpOworICAgIH0gZWxzZSBpZiAoc2l6ZW9mKEJOX1VMT05HKSA9PSBzaXplb2YodWludDY0X3QpKSB7CisgICAgICAgIHJldHVybiBCTl9nZXRfd29yZChudW0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OlVMT05HLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9pbnQpIHJldHVybjsKKyAgICBCSUdOVU1fUHRyIG51bShBU04xX0lOVEVHRVJfdG9fQk4oYXNuMV9pbnQsIG51bGxwdHIpKTsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnLCBCaWdudW1Ub1VpbnQ2NChudW0uZ2V0KCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OkRBVEUsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIEJJR05VTV9QdHIgbnVtKEFTTjFfSU5URUdFUl90b19CTihhc24xX2ludCwgbnVsbHB0cikpOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIEJpZ251bVRvVWludDY0KG51bS5nZXQoKSkpOworfQorCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3QgQVNOMV9OVUxMKiBhc24xX251bGwsIFR5cGVkVGFnPFRhZ1R5cGU6OkJPT0wsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX251bGwpIHJldHVybjsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBhc24xX3N0cmluZywgVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX3N0cmluZykgcmV0dXJuOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGJ1ZjsKKyAgICBidWYuc2V0VG9FeHRlcm5hbChhc24xX3N0cmluZy0+ZGF0YSwgYXNuMV9zdHJpbmctPmxlbmd0aCk7CisgICAgYXV0aF9saXN0LT5wdXNoX2JhY2sodHRhZywgYnVmKTsKK30KKworLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIHNwZWNpZmllZCBBU04uMSByZWNvcmQgYW5kIHBsYWNlIHRoZW0gaW4gYXV0aF9saXN0Lgorc3RhdGljIEVycm9yQ29kZSBleHRyYWN0X2F1dGhfbGlzdChjb25zdCBLTV9BVVRIX0xJU1QqIHJlY29yZCwgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFyZWNvcmQpIHJldHVybiBFcnJvckNvZGU6Ok9LOworCisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hY3RpdmVfZGF0ZV90aW1lLCBUQUdfQUNUSVZFX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWxnb3JpdGhtLCBUQUdfQUxHT1JJVEhNLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWxsX2FwcGxpY2F0aW9ucywgVEFHX0FMTF9BUFBMSUNBVElPTlMsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hcHBsaWNhdGlvbl9pZCwgVEFHX0FQUExJQ0FUSU9OX0lELCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YXV0aF90aW1lb3V0LCBUQUdfQVVUSF9USU1FT1VULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+Y3JlYXRpb25fZGF0ZV90aW1lLCBUQUdfQ1JFQVRJT05fREFURVRJTUUsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5kaWdlc3QsIFRBR19ESUdFU1QsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5lY19jdXJ2ZSwgVEFHX0VDX0NVUlZFLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+a2V5X3NpemUsIFRBR19LRVlfU0laRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm5vX2F1dGhfcmVxdWlyZWQsIFRBR19OT19BVVRIX1JFUVVJUkVELCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3JpZ2luLCBUQUdfT1JJR0lOLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZSwgVEFHX09SSUdJTkFUSU9OX0VYUElSRV9EQVRFVElNRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm9zX3BhdGNobGV2ZWwsIFRBR19PU19QQVRDSExFVkVMLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3NfdmVyc2lvbiwgVEFHX09TX1ZFUlNJT04sIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5wYWRkaW5nLCBUQUdfUEFERElORywgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPnB1cnBvc2UsIFRBR19QVVJQT1NFLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cm9sbGJhY2tfcmVzaXN0YW50LCBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5ULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cnNhX3B1YmxpY19leHBvbmVudCwgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT51c2FnZV9leHBpcmVfZGF0ZV90aW1lLCBUQUdfVVNBR0VfRVhQSVJFX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+dXNlcl9hdXRoX3R5cGUsIFRBR19VU0VSX0FVVEhfVFlQRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmF0dGVzdGF0aW9uX2FwcGxpY2F0aW9uX2lkLAorICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgYXV0aF9saXN0KTsKKworICAgIHJldHVybiBFcnJvckNvZGU6Ok9LOworfQorCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoS01fS0VZX0RFU0NSSVBUSU9OKQorCisvLyBQYXJzZSB0aGUgREVSLWVuY29kZWQgYXR0ZXN0YXRpb24gcmVjb3JkLCBwbGFjaW5nIHRoZSByZXN1bHRzIGluIGtleW1hc3Rlcl92ZXJzaW9uLAorLy8gYXR0ZXN0YXRpb25fY2hhbGxlbmdlLCBzb2Z0d2FyZV9lbmZvcmNlZCwgdGVlX2VuZm9yY2VkIGFuZCB1bmlxdWVfaWQuCitFcnJvckNvZGUgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGNvbnN0IHVpbnQ4X3QqIGFzbjFfa2V5X2Rlc2MsIHNpemVfdCBhc24xX2tleV9kZXNjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGF0dGVzdGF0aW9uX3ZlcnNpb24sICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGtleW1hc3Rlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIHNvZnR3YXJlX2VuZm9yY2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiB0ZWVfZW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogdW5pcXVlX2lkKSB7CisgICAgY29uc3QgdWludDhfdCogcCA9IGFzbjFfa2V5X2Rlc2M7CisgICAgS01fS0VZX0RFU0NSSVBUSU9OX1B0ciByZWNvcmQoZDJpX0tNX0tFWV9ERVNDUklQVElPTihudWxscHRyLCAmcCwgYXNuMV9rZXlfZGVzY19sZW4pKTsKKyAgICBpZiAoIXJlY29yZC5nZXQoKSkgcmV0dXJuIEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUjsKKworICAgICphdHRlc3RhdGlvbl92ZXJzaW9uID0gQVNOMV9JTlRFR0VSX2dldChyZWNvcmQtPmF0dGVzdGF0aW9uX3ZlcnNpb24pOworICAgICphdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCA9CisgICAgICAgIHN0YXRpY19jYXN0PFNlY3VyaXR5TGV2ZWw+KEFTTjFfRU5VTUVSQVRFRF9nZXQocmVjb3JkLT5hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCkpOworICAgICprZXltYXN0ZXJfdmVyc2lvbiA9IEFTTjFfSU5URUdFUl9nZXQocmVjb3JkLT5rZXltYXN0ZXJfdmVyc2lvbik7CisgICAgKmtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCA9CisgICAgICAgIHN0YXRpY19jYXN0PFNlY3VyaXR5TGV2ZWw+KEFTTjFfRU5VTUVSQVRFRF9nZXQocmVjb3JkLT5rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpKTsKKworICAgIGF0dGVzdGF0aW9uX2NoYWxsZW5nZS0+c2V0VG9FeHRlcm5hbChyZWNvcmQtPmF0dGVzdGF0aW9uX2NoYWxsZW5nZS0+ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLT5hdHRlc3RhdGlvbl9jaGFsbGVuZ2UtPmxlbmd0aCk7CisKKyAgICB1bmlxdWVfaWQtPnNldFRvRXh0ZXJuYWwocmVjb3JkLT51bmlxdWVfaWQtPmRhdGEsIHJlY29yZC0+dW5pcXVlX2lkLT5sZW5ndGgpOworCisgICAgRXJyb3JDb2RlIGVycm9yID0gZXh0cmFjdF9hdXRoX2xpc3QocmVjb3JkLT5zb2Z0d2FyZV9lbmZvcmNlZCwgc29mdHdhcmVfZW5mb3JjZWQpOworICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSByZXR1cm4gZXJyb3I7CisKKyAgICByZXR1cm4gZXh0cmFjdF9hdXRoX2xpc3QocmVjb3JkLT50ZWVfZW5mb3JjZWQsIHRlZV9lbmZvcmNlZCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F0dGVzdGF0aW9uX3JlY29yZC5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDQyMDU1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FUVEVTVEFUSU9OX1JFQ09SRF9IXworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVFRFU1RBVElPTl9SRUNPUkRfSF8KKworI2luY2x1ZGUgImF1dGhvcml6YXRpb25fc2V0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworLyoqCisgKiBUaGUgT0lEIGZvciBBbmRyb2lkIGF0dGVzdGF0aW9uIHJlY29yZHMuICBGb3IgdGhlIGN1cmlvdXMsIGl0IGJyZWFrcyBkb3duIGFzIGZvbGxvd3M6CisgKgorICogMSA9IElTTworICogMyA9IG9yZworICogNiA9IERvRCAoSHVoPyBPSURzIGFyZSB3ZWlyZC4pCisgKiAxID0gSUFOQQorICogNCA9IFByaXZhdGUKKyAqIDEgPSBFbnRlcnByaXNlcworICogMTExMjkgPSBHb29nbGUKKyAqIDIgPSBHb29nbGUgc2VjdXJpdHkKKyAqIDEgPSBjZXJ0aWZpY2F0ZSBleHRlbnNpb24KKyAqIDE3ID0gQW5kcm9pZCBhdHRlc3RhdGlvbiBleHRlbnNpb24uCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyIGtBdHRlc3Rpb25SZWNvcmRPaWRbXSA9ICIxLjMuNi4xLjQuMS4xMTEyOS4yLjEuMTciOworCitFcnJvckNvZGUgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGNvbnN0IHVpbnQ4X3QqIGFzbjFfa2V5X2Rlc2MsIHNpemVfdCBhc24xX2tleV9kZXNjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGF0dGVzdGF0aW9uX3ZlcnNpb24sICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGtleW1hc3Rlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIHNvZnR3YXJlX2VuZm9yY2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiB0ZWVfZW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogdW5pcXVlX2lkKTsKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19LRVlNQVNURVJfMzBfVlRTX0ZVTkNUSU9OQUxfQVRURVNUQVRJT05fUkVDT1JEX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXV0aG9yaXphdGlvbl9zZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwM2Y3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcApAQCAtMCwwICsxLDQyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJhdXRob3JpemF0aW9uX3NldC5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPG5ldz4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitpbmxpbmUgYm9vbCBrZXlQYXJhbUxlc3MoY29uc3QgS2V5UGFyYW1ldGVyJiBhLCBjb25zdCBLZXlQYXJhbWV0ZXImIGIpIHsKKyAgICBpZiAoYS50YWcgIT0gYi50YWcpIHJldHVybiBhLnRhZyA8IGIudGFnOworICAgIGludCByZXR2YWw7CisgICAgc3dpdGNoICh0eXBlRnJvbVRhZyhhLnRhZykpIHsKKyAgICBjYXNlIFRhZ1R5cGU6OklOVkFMSUQ6CisgICAgY2FzZSBUYWdUeXBlOjpCT09MOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA8IGIuZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6VUxPTkc6CisgICAgY2FzZSBUYWdUeXBlOjpVTE9OR19SRVA6CisgICAgICAgIHJldHVybiBhLmYubG9uZ0ludGVnZXIgPCBiLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lIDwgYi5mLmRhdGVUaW1lOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6QllURVM6CisgICAgICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgY2FzZXMuCisgICAgICAgIGlmIChhLmJsb2Iuc2l6ZSgpID09IDApIHJldHVybiBiLmJsb2Iuc2l6ZSgpICE9IDA7CisgICAgICAgIGlmIChiLmJsb2Iuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR2YWwgPSBtZW1jbXAoJmEuYmxvYlswXSwgJmIuYmxvYlswXSwgc3RkOjptaW4oYS5ibG9iLnNpemUoKSwgYi5ibG9iLnNpemUoKSkpOworICAgICAgICBpZiAocmV0dmFsID09IDApIHsKKyAgICAgICAgICAgIC8vIE9uZSBpcyB0aGUgcHJlZml4IG9mIHRoZSBvdGhlciwgc28gdGhlIGxvbmdlciB3aW5zCisgICAgICAgICAgICByZXR1cm4gYS5ibG9iLnNpemUoKSA8IGIuYmxvYi5zaXplKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gcmV0dmFsIDwgMDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBib29sIGtleVBhcmFtRXF1YWwoY29uc3QgS2V5UGFyYW1ldGVyJiBhLCBjb25zdCBLZXlQYXJhbWV0ZXImIGIpIHsKKyAgICBpZiAoYS50YWcgIT0gYi50YWcpIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAodHlwZUZyb21UYWcoYS50YWcpKSB7CisgICAgY2FzZSBUYWdUeXBlOjpJTlZBTElEOgorICAgIGNhc2UgVGFnVHlwZTo6Qk9PTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA9PSBiLmYuaW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OlVMT05HOgorICAgIGNhc2UgVGFnVHlwZTo6VUxPTkdfUkVQOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyID09IGIuZi5sb25nSW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OkRBVEU6CisgICAgICAgIHJldHVybiBhLmYuZGF0ZVRpbWUgPT0gYi5mLmRhdGVUaW1lOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6QllURVM6CisgICAgICAgIGlmIChhLmJsb2Iuc2l6ZSgpICE9IGIuYmxvYi5zaXplKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGEuYmxvYi5zaXplKCkgPT0gMCB8fCBtZW1jbXAoJmEuYmxvYlswXSwgJmIuYmxvYlswXSwgYS5ibG9iLnNpemUoKSkgPT0gMDsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlNvcnQoKSB7CisgICAgc3RkOjpzb3J0KGRhdGFfLmJlZ2luKCksIGRhdGFfLmVuZCgpLCBrZXlQYXJhbUxlc3MpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkRlZHVwbGljYXRlKCkgeworICAgIGlmIChkYXRhXy5lbXB0eSgpKSByZXR1cm47CisKKyAgICBTb3J0KCk7CisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiByZXN1bHQ7CisKKyAgICBhdXRvIGN1cnIgPSBkYXRhXy5iZWdpbigpOworICAgIGF1dG8gcHJldiA9IGN1cnIrKzsKKyAgICBmb3IgKDsgY3VyciAhPSBkYXRhXy5lbmQoKTsgKytwcmV2LCArK2N1cnIpIHsKKyAgICAgICAgaWYgKHByZXYtPnRhZyA9PSBUYWc6OklOVkFMSUQpIGNvbnRpbnVlOworCisgICAgICAgIGlmICgha2V5UGFyYW1FcXVhbCgqcHJldiwgKmN1cnIpKSB7CisgICAgICAgICAgICByZXN1bHQuZW1wbGFjZV9iYWNrKHN0ZDo6bW92ZSgqcHJldikpOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdC5lbXBsYWNlX2JhY2soc3RkOjptb3ZlKCpwcmV2KSk7CisKKyAgICBzdGQ6OnN3YXAoZGF0YV8sIHJlc3VsdCk7Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6VW5pb24oY29uc3QgQXV0aG9yaXphdGlvblNldCYgb3RoZXIpIHsKKyAgICBkYXRhXy5pbnNlcnQoZGF0YV8uZW5kKCksIG90aGVyLmRhdGFfLmJlZ2luKCksIG90aGVyLmRhdGFfLmVuZCgpKTsKKyAgICBEZWR1cGxpY2F0ZSgpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlN1YnRyYWN0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgRGVkdXBsaWNhdGUoKTsKKworICAgIGF1dG8gaSA9IG90aGVyLmJlZ2luKCk7CisgICAgd2hpbGUgKGkgIT0gb3RoZXIuZW5kKCkpIHsKKyAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICBkbyB7CisgICAgICAgICAgICBwb3MgPSBmaW5kKGktPnRhZywgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgIT0gLTEgJiYga2V5UGFyYW1FcXVhbCgqaSwgZGF0YV9bcG9zXSkpIHsKKyAgICAgICAgICAgICAgICBkYXRhXy5lcmFzZShkYXRhXy5iZWdpbigpICsgcG9zKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAocG9zICE9IC0xKTsKKyAgICAgICAgKytpOworICAgIH0KK30KKworaW50IEF1dGhvcml6YXRpb25TZXQ6OmZpbmQoVGFnIHRhZywgaW50IGJlZ2luKSBjb25zdCB7CisgICAgYXV0byBpdGVyID0gZGF0YV8uYmVnaW4oKSArICgxICsgYmVnaW4pOworCisgICAgd2hpbGUgKGl0ZXIgIT0gZGF0YV8uZW5kKCkgJiYgaXRlci0+dGFnICE9IHRhZykKKyAgICAgICAgKytpdGVyOworCisgICAgaWYgKGl0ZXIgIT0gZGF0YV8uZW5kKCkpIHJldHVybiBpdGVyIC0gZGF0YV8uYmVnaW4oKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK2Jvb2wgQXV0aG9yaXphdGlvblNldDo6ZXJhc2UoaW50IGluZGV4KSB7CisgICAgYXV0byBwb3MgPSBkYXRhXy5iZWdpbigpICsgaW5kZXg7CisgICAgaWYgKHBvcyAhPSBkYXRhXy5lbmQoKSkgeworICAgICAgICBkYXRhXy5lcmFzZShwb3MpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitLZXlQYXJhbWV0ZXImIEF1dGhvcml6YXRpb25TZXQ6Om9wZXJhdG9yW10oaW50IGF0KSB7CisgICAgcmV0dXJuIGRhdGFfW2F0XTsKK30KKworY29uc3QgS2V5UGFyYW1ldGVyJiBBdXRob3JpemF0aW9uU2V0OjpvcGVyYXRvcltdKGludCBhdCkgY29uc3QgeworICAgIHJldHVybiBkYXRhX1thdF07Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6Q2xlYXIoKSB7CisgICAgZGF0YV8uY2xlYXIoKTsKK30KKworc2l6ZV90IEF1dGhvcml6YXRpb25TZXQ6OkdldFRhZ0NvdW50KFRhZyB0YWcpIGNvbnN0IHsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAgIGZvciAoaW50IHBvcyA9IC0xOyAocG9zID0gZmluZCh0YWcsIHBvcykpICE9IC0xOykKKyAgICAgICAgKytjb3VudDsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKK051bGxPcjxjb25zdCBLZXlQYXJhbWV0ZXImPiBBdXRob3JpemF0aW9uU2V0OjpHZXRFbnRyeShUYWcgdGFnKSBjb25zdCB7CisgICAgaW50IHBvcyA9IGZpbmQodGFnKTsKKyAgICBpZiAocG9zID09IC0xKSByZXR1cm4ge307CisgICAgcmV0dXJuIGRhdGFfW3Bvc107Cit9CisKKy8qKgorICogUGVyc2lzdGVudCBmb3JtYXQgaXM6CisgKiB8IDMyIGJpdCBpbmRpcmVjdF9zaXplICAgICAgICAgfAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5kaXJlY3Rfc2l6ZSBieXRlcyBvZiBkYXRhICB8IHRoaXMgaXMgd2hlcmUgdGhlIGJsb2IgZGF0YSBpcyBzdG9yZWQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IDMyIGJpdCBlbGVtZW50X2NvdW50ICAgICAgICAgfCBudW1iZXIgb2YgZW50cmllcworICogfCAzMiBiaXQgZWxlbWVudHNfc2l6ZSAgICAgICAgIHwgdG90YWwgYnl0ZXMgdXNlZCBieSBlbnRyaWVzIChlbnRyaWVzIGhhdmUgdmFyaWFibGUgbGVuZ3RoKQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZWxlbWVudGVzX3NpemUgYnl0ZXMgb2YgZGF0YSB8IHdoZXJlIHRoZSBlbGVtZW50cyBhcmUgc3RvcmVkCisgKi8KKworLyoqCisgKiBQZXJzaXN0ZW50IGZvcm1hdCBvZiBibG9icyBhbmQgYmlnbnVtczoKKyAqIHwgMzIgYml0IHRhZyAgICAgICAgICAgICB8CisgKiB8IDMyIGJpdCBibG9iX2xlbmd0aCAgICAgfAorICogfCAzMiBiaXQgaW5kaXJlY3Rfb2Zmc2V0IHwKKyAqLworCitzdHJ1Y3QgT3V0U3RyZWFtcyB7CisgICAgc3RkOjpvc3RyZWFtJiBpbmRpcmVjdDsKKyAgICBzdGQ6Om9zdHJlYW0mIGVsZW1lbnRzOworfTsKKworT3V0U3RyZWFtcyYgc2VyaWFsaXplUGFyYW1WYWx1ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgdWludDMyX3QgYnVmZmVyOworCisgICAgLy8gd3JpdGUgYmxvYl9sZW5ndGgKKyAgICBhdXRvIGJsb2JfbGVuZ3RoID0gYmxvYi5zaXplKCk7CisgICAgaWYgKGJsb2JfbGVuZ3RoID4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSB7CisgICAgICAgIG91dC5lbGVtZW50cy5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICBidWZmZXIgPSBibG9iX2xlbmd0aDsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJ1ZmZlciksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgLy8gd3JpdGUgaW5kaXJlY3Rfb2Zmc2V0CisgICAgYXV0byBvZmZzZXQgPSBvdXQuaW5kaXJlY3QudGVsbHAoKTsKKyAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgfHwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSBvZmZzZXQpKSA8CisgICAgICAgICAgICBibG9iX2xlbmd0aCkgeyAgLy8gb3ZlcmZsb3cgY2hlY2sKKyAgICAgICAgb3V0LmVsZW1lbnRzLnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIGJ1ZmZlciA9IG9mZnNldDsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJ1ZmZlciksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgLy8gd3JpdGUgYmxvYiB0byBpbmRpcmVjdCBzdHJlYW0KKyAgICBpZiAoYmxvYl9sZW5ndGgpIG91dC5pbmRpcmVjdC53cml0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmYmxvYlswXSksIGJsb2JfbGVuZ3RoKTsKKworICAgIHJldHVybiBvdXQ7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBPdXRTdHJlYW1zJiBzZXJpYWxpemVQYXJhbVZhbHVlKE91dFN0cmVhbXMmIG91dCwgY29uc3QgVCYgdmFsdWUpIHsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJnZhbHVlKSwgc2l6ZW9mKFQpKTsKKyAgICByZXR1cm4gb3V0OworfQorCitPdXRTdHJlYW1zJiBzZXJpYWxpemUoVEFHX0lOVkFMSURfdCYmLCBPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYpIHsKKyAgICAvLyBza2lwIGludmFsaWQgZW50cmllcy4KKyAgICByZXR1cm4gb3V0OworfQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IE91dFN0cmVhbXMmIHNlcmlhbGl6ZShUIHR0YWcsIE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIG91dC5lbGVtZW50cy53cml0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmcGFyYW0udGFnKSwgc2l6ZW9mKGludDMyX3QpKTsKKyAgICByZXR1cm4gc2VyaWFsaXplUGFyYW1WYWx1ZShvdXQsIGFjY2Vzc1RhZ1ZhbHVlKHR0YWcsIHBhcmFtKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVGFncz4gc3RydWN0IGNob29zZV9zZXJpYWxpemVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgc3RhdGljIE91dFN0cmVhbXMmIHNlcmlhbGl6ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICAgICAgcmV0dXJuIGNob29zZV9zZXJpYWxpemVyPFRhZ3MuLi4+OjpzZXJpYWxpemUob3V0LCBwYXJhbSk7CisgICAgfQorfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBjaG9vc2Vfc2VyaWFsaXplcjw+IHsKKyAgICBzdGF0aWMgT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJikgeyByZXR1cm4gb3V0OyB9Cit9OwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lLi4uIFRhaWw+CitzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI8VHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4sIFRhaWwuLi4+IHsKKyAgICBzdGF0aWMgT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgICAgICBpZiAocGFyYW0udGFnID09IHRhZykgeworICAgICAgICAgICAgcmV0dXJuIFYzXzA6OnNlcmlhbGl6ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPigpLCBvdXQsIHBhcmFtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxUYWlsLi4uPjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworICAgICAgICB9CisgICAgfQorfTsKKworT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxhbGxfdGFnc190Pjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworfQorCitzdGQ6Om9zdHJlYW0mIHNlcmlhbGl6ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3Qgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiYgcGFyYW1zKSB7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gaW5kaXJlY3Q7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gZWxlbWVudHM7CisgICAgT3V0U3RyZWFtcyBzdHJlYW1zID0ge2luZGlyZWN0LCBlbGVtZW50c307CisgICAgZm9yIChjb25zdCBhdXRvJiBwYXJhbSA6IHBhcmFtcykgeworICAgICAgICBzZXJpYWxpemUoc3RyZWFtcywgcGFyYW0pOworICAgIH0KKyAgICBpZiAoaW5kaXJlY3QuYmFkKCkgfHwgZWxlbWVudHMuYmFkKCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIGF1dG8gcG9zID0gaW5kaXJlY3QudGVsbHAoKTsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIHVpbnQzMl90IGluZGlyZWN0X3NpemUgPSBwb3M7CisgICAgcG9zID0gZWxlbWVudHMudGVsbHAoKTsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIHVpbnQzMl90IGVsZW1lbnRzX3NpemUgPSBwb3M7CisgICAgdWludDMyX3QgZWxlbWVudF9jb3VudCA9IHBhcmFtcy5zaXplKCk7CisKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmluZGlyZWN0X3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHBvcyA9IG91dC50ZWxscCgpOworICAgIGlmIChpbmRpcmVjdF9zaXplKSBvdXQgPDwgaW5kaXJlY3QucmRidWYoKTsKKyAgICBhc3NlcnQob3V0LnRlbGxwKCkgLSBwb3MgPT0gaW5kaXJlY3Rfc2l6ZSk7CisKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmVsZW1lbnRfY291bnQpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmVsZW1lbnRzX3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHBvcyA9IG91dC50ZWxscCgpOworICAgIGlmIChlbGVtZW50c19zaXplKSBvdXQgPDwgZWxlbWVudHMucmRidWYoKTsKKyAgICBhc3NlcnQob3V0LnRlbGxwKCkgLSBwb3MgPT0gZWxlbWVudHNfc2l6ZSk7CisKKyAgICByZXR1cm4gb3V0OworfQorCitzdHJ1Y3QgSW5TdHJlYW1zIHsKKyAgICBzdGQ6OmlzdHJlYW0mIGluZGlyZWN0OworICAgIHN0ZDo6aXN0cmVhbSYgZWxlbWVudHM7Cit9OworCitJblN0cmVhbXMmIGRlc2VyaWFsaXplUGFyYW1WYWx1ZShJblN0cmVhbXMmIGluLCBoaWRsX3ZlYzx1aW50OF90PiogYmxvYikgeworICAgIHVpbnQzMl90IGJsb2JfbGVuZ3RoID0gMDsKKyAgICB1aW50MzJfdCBvZmZzZXQgPSAwOworICAgIGluLmVsZW1lbnRzLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmJsb2JfbGVuZ3RoKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgYmxvYi0+cmVzaXplKGJsb2JfbGVuZ3RoKTsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZvZmZzZXQpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBpbi5pbmRpcmVjdC5zZWVrZyhvZmZzZXQpOworICAgIGluLmluZGlyZWN0LnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJigqYmxvYilbMF0pLCBibG9iLT5zaXplKCkpOworICAgIHJldHVybiBpbjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEluU3RyZWFtcyYgZGVzZXJpYWxpemVQYXJhbVZhbHVlKEluU3RyZWFtcyYgaW4sIFQqIHZhbHVlKSB7CisgICAgaW4uZWxlbWVudHMucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPih2YWx1ZSksIHNpemVvZihUKSk7CisgICAgcmV0dXJuIGluOworfQorCitJblN0cmVhbXMmIGRlc2VyaWFsaXplKFRBR19JTlZBTElEX3QmJiwgSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKikgeworICAgIC8vIHRoZXJlIHNob3VsZCBiZSBubyBpbnZhbGlkIEtleVBhcmFtYXRlcnMgYnV0IGlmIGhhbmRsZSB0aGVtIGFzIHplcm8gc2l6ZWQuCisgICAgcmV0dXJuIGluOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSW5TdHJlYW1zJiBkZXNlcmlhbGl6ZShUJiYgdHRhZywgSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgIHJldHVybiBkZXNlcmlhbGl6ZVBhcmFtVmFsdWUoaW4sICZhY2Nlc3NUYWdWYWx1ZSh0dGFnLCAqcGFyYW0pKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyOwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRhZ3M+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgICAgICByZXR1cm4gY2hvb3NlX2Rlc2VyaWFsaXplcjxUYWdzLi4uPjo6ZGVzZXJpYWxpemUoaW4sIHBhcmFtKTsKKyAgICB9Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IGNob29zZV9kZXNlcmlhbGl6ZXI8PiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKikgeworICAgICAgICAvLyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIHRhZyAtPiBmYWlsIHBhcnNpbmcKKyAgICAgICAgaW4uZWxlbWVudHMuc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KK307Cit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUuLi4gVGFpbD4KK3N0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+LCBUYWlsLi4uPiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgICAgICBpZiAocGFyYW0tPnRhZyA9PSB0YWcpIHsKKyAgICAgICAgICAgIHJldHVybiBWM18wOjpkZXNlcmlhbGl6ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPigpLCBpbiwgcGFyYW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNob29zZV9kZXNlcmlhbGl6ZXI8VGFpbC4uLj46OmRlc2VyaWFsaXplKGluLCBwYXJhbSk7CisgICAgICAgIH0KKyAgICB9Cit9OworCitJblN0cmVhbXMmIGRlc2VyaWFsaXplKEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciogcGFyYW0pIHsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZwYXJhbS0+dGFnKSwgc2l6ZW9mKFRhZykpOworICAgIHJldHVybiBjaG9vc2VfZGVzZXJpYWxpemVyPGFsbF90YWdzX3Q+OjpkZXNlcmlhbGl6ZShpbiwgcGFyYW0pOworfQorCitzdGQ6OmlzdHJlYW0mIGRlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSYgaW4sIHN0ZDo6dmVjdG9yPEtleVBhcmFtZXRlcj4qIHBhcmFtcykgeworICAgIHVpbnQzMl90IGluZGlyZWN0X3NpemUgPSAwOworICAgIGluLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmluZGlyZWN0X3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBzdGQ6OnN0cmluZyBpbmRpcmVjdF9idWZmZXIoaW5kaXJlY3Rfc2l6ZSwgJ1wwJyk7CisgICAgaWYgKGluZGlyZWN0X2J1ZmZlci5zaXplKCkgIT0gaW5kaXJlY3Rfc2l6ZSkgeworICAgICAgICBpbi5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gaW47CisgICAgfQorICAgIGluLnJlYWQoJmluZGlyZWN0X2J1ZmZlclswXSwgaW5kaXJlY3RfYnVmZmVyLnNpemUoKSk7CisKKyAgICB1aW50MzJfdCBlbGVtZW50X2NvdW50ID0gMDsKKyAgICBpbi5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZlbGVtZW50X2NvdW50KSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgdWludDMyX3QgZWxlbWVudHNfc2l6ZSA9IDA7CisgICAgaW4ucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPigmZWxlbWVudHNfc2l6ZSksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgc3RkOjpzdHJpbmcgZWxlbWVudHNfYnVmZmVyKGVsZW1lbnRzX3NpemUsICdcMCcpOworICAgIGlmIChlbGVtZW50c19idWZmZXIuc2l6ZSgpICE9IGVsZW1lbnRzX3NpemUpIHsKKyAgICAgICAgaW4uc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KKyAgICBpbi5yZWFkKCZlbGVtZW50c19idWZmZXJbMF0sIGVsZW1lbnRzX2J1ZmZlci5zaXplKCkpOworCisgICAgaWYgKGluLmJhZCgpKSByZXR1cm4gaW47CisKKyAgICAvLyBUT0RPIHdyaXRlIG9uZS1zaG90IHN0cmVhbSBidWZmZXIgdG8gYXZvaWQgY29weWluZyBoZXJlCisgICAgc3RkOjpzdHJpbmdzdHJlYW0gaW5kaXJlY3QoaW5kaXJlY3RfYnVmZmVyKTsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBlbGVtZW50cyhlbGVtZW50c19idWZmZXIpOworICAgIEluU3RyZWFtcyBzdHJlYW1zID0ge2luZGlyZWN0LCBlbGVtZW50c307CisKKyAgICBwYXJhbXMtPnJlc2l6ZShlbGVtZW50X2NvdW50KTsKKworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBlbGVtZW50X2NvdW50OyArK2kpIHsKKyAgICAgICAgZGVzZXJpYWxpemUoc3RyZWFtcywgJigqcGFyYW1zKVtpXSk7CisgICAgfQorICAgIHJldHVybiBpbjsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpTZXJpYWxpemUoc3RkOjpvc3RyZWFtKiBvdXQpIGNvbnN0IHsKKyAgICBzZXJpYWxpemUoKm91dCwgZGF0YV8pOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkRlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSogaW4pIHsKKyAgICBkZXNlcmlhbGl6ZSgqaW4sICZkYXRhXyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5MmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXV0aG9yaXphdGlvbl9zZXQuaApAQCAtMCwwICsxLDQyMCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXworCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK2NsYXNzIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOworCisvKioKKyAqIEFuIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBLZXlQYXJhbWV0ZXJzLiBJdCBwcm92aWRlcyBtZW1vcnkgb3duZXJzaGlwIGFuZCBzb21lIGNvbnZlbmllbnQKKyAqIGZ1bmN0aW9uYWxpdHkgZm9yIHNvcnRpbmcsIGRlZHVwbGljYXRpbmcsIGpvaW5pbmcsIGFuZCBzdWJ0cmFjdGluZyBzZXRzIG9mIEtleVBhcmFtZXRlcnMuCisgKiBGb3Igc2VyaWFsaXphdGlvbiwgd3JhcCB0aGUgYmFja2luZyBzdG9yZSBvZiB0aGlzIHN0cnVjdHVyZSBpbiBhIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4uCisgKi8KK2NsYXNzIEF1dGhvcml6YXRpb25TZXQgeworICBwdWJsaWM6CisgICAgdHlwZWRlZiBLZXlQYXJhbWV0ZXIgdmFsdWVfdHlwZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBlbXB0eSwgZHluYW1pY2FsbHktYWxsb2NhdGVkLCBncm93YWJsZSBBdXRob3JpemF0aW9uU2V0LgorICAgICAqLworICAgIEF1dGhvcml6YXRpb25TZXQoKXt9OworCisgICAgLy8gQ29weSBjb25zdHJ1Y3Rvci4KKyAgICBBdXRob3JpemF0aW9uU2V0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSA6IGRhdGFfKG90aGVyLmRhdGFfKSB7fQorCisgICAgLy8gTW92ZSBjb25zdHJ1Y3Rvci4KKyAgICBBdXRob3JpemF0aW9uU2V0KEF1dGhvcml6YXRpb25TZXQmJiBvdGhlcikgOiBkYXRhXyhzdGQ6Om1vdmUob3RoZXIuZGF0YV8pKSB7fQorCisgICAgLy8gQ29uc3RydWN0b3IgZnJvbSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+CisgICAgQXV0aG9yaXphdGlvblNldChjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBvdGhlcikgeyAqdGhpcyA9IG90aGVyOyB9CisKKyAgICAvLyBDb3B5IGFzc2lnbm1lbnQuCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgICAgIGRhdGFfID0gb3RoZXIuZGF0YV87CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvLyBNb3ZlIGFzc2lnbm1lbnQuCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KEF1dGhvcml6YXRpb25TZXQmJiBvdGhlcikgeworICAgICAgICBkYXRhXyA9IHN0ZDo6bW92ZShvdGhlci5kYXRhXyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBBdXRob3JpemF0aW9uU2V0JiBvcGVyYXRvcj0oY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIGRhdGFfLnJlc2l6ZShvdGhlci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhXy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIC8qIFRoaXMgbWFrZXMgYSBkZWVwIGNvcHkgZXZlbiBvZiBlbWJlZGRlZCBibG9icy4KKyAgICAgICAgICAgICAgICAgKiBTZWUgYXNzaWdubWVudCBvcGVyYXRvci9jb3B5IGNvbnN0cnVjdG9yIG9mIGhpZGxfdmVjLiovCisgICAgICAgICAgICAgICAgZGF0YV9baV0gPSBvdGhlcltpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXIgZXhpc3RpbmcgYXV0aG9yaXphdGlvbiBzZXQgZGF0YQorICAgICAqLworICAgIHZvaWQgQ2xlYXIoKTsKKworICAgIH5BdXRob3JpemF0aW9uU2V0KCkgPSBkZWZhdWx0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgc2V0LgorICAgICAqLworICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gZGF0YV8uc2l6ZSgpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNldCBpcyBlbXB0eS4KKyAgICAgKi8KKyAgICBib29sIGVtcHR5KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpID09IDA7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRhdGEgaW4gdGhlIHNldCwgZGlyZWN0bHkuIEJlIGNhcmVmdWwgd2l0aCB0aGlzLgorICAgICAqLworICAgIGNvbnN0IEtleVBhcmFtZXRlciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLmRhdGEoKTsgfQorCisgICAgLyoqCisgICAgICogU29ydHMgdGhlIHNldAorICAgICAqLworICAgIHZvaWQgU29ydCgpOworCisgICAgLyoqCisgICAgICogU29ydHMgdGhlIHNldCBhbmQgcmVtb3ZlcyBkdXBsaWNhdGVzIChpbmFkdmVydGVudGx5IGR1cGxpY2F0aW5nIHRhZ3MgaXMgZWFzeSB0byBkbyB3aXRoIHRoZQorICAgICAqIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKS4KKyAgICAgKi8KKyAgICB2b2lkIERlZHVwbGljYXRlKCk7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBlbGVtZW50cyBmcm9tIFxwIHNldCB0aGF0IGFyZSBub3QgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgQXV0aG9yaXphdGlvblNldC4gIEFzIGEKKyAgICAgKiBzaWRlLWVmZmVjdCwgaWYgXHAgc2V0IGlzIG5vdCBudWxsIHRoaXMgQXV0aG9yaXphdGlvblNldCB3aWxsIGVuZCB1cCBzb3J0ZWQuCisgICAgICovCisgICAgdm9pZCBVbmlvbihjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpOworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyBhbGwgZWxlbWVudHMgaW4gXHAgc2V0IGZyb20gdGhpcyBBdXRob3JpemF0aW9uU2V0LgorICAgICAqLworICAgIHZvaWQgU3VidHJhY3QoY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBlbnRyeSB0aGF0IG1hdGNoZXMgXHAgdGFnLCBzdGFydGluZyBmcm9tIHRoZSBlbGVtZW50IGFmdGVyIFxwCisgICAgICogYmVnaW4uICBJZiBub3QgZm91bmQsIHJldHVybnMgLTEuCisgICAgICovCisgICAgaW50IGZpbmQoVGFnIHRhZywgaW50IGJlZ2luID0gLTEpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgZW50cnkgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIGlmIHRoZSBpbmRleCB3YXMKKyAgICAgKiBvdXQgb2YgYm91bmRzLgorICAgICAqLworICAgIGJvb2wgZXJhc2UoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgaXRlcmF0b3IgKHBvaW50ZXIpIHRvIGJlZ2lubmluZyBvZiBlbGVtcyBhcnJheSwgdG8gZW5hYmxlIFNUTC1zdHlsZSBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+Ojpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLmJlZ2luKCk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgaXRlcmF0b3IgKHBvaW50ZXIpIG9uZSBwYXN0IGVuZCBvZiBlbGVtcyBhcnJheSwgdG8gZW5hYmxlIFNUTC1zdHlsZSBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+Ojpjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBkYXRhXy5lbmQoKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIHNldC4KKyAgICAgKiBMaWtlIGZvciBzdGQ6OnZlY3Rvcjo6b3BlcmF0b3JbXSB0aGVyZSBpcyBubyByYW5nZSBjaGVjayBwZXJmb3JtZWQuIFVzZSBvZiBvdXQgb2YgcmFuZ2UKKyAgICAgKiBpbmRpY2VzIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBLZXlQYXJhbWV0ZXImIG9wZXJhdG9yW10oaW50IG4pOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIHNldC4KKyAgICAgKiBMaWtlIGZvciBzdGQ6OnZlY3Rvcjo6b3BlcmF0b3JbXSB0aGVyZSBpcyBubyByYW5nZSBjaGVjayBwZXJmb3JtZWQuIFVzZSBvZiBvdXQgb2YgcmFuZ2UKKyAgICAgKiBpbmRpY2VzIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBjb25zdCBLZXlQYXJhbWV0ZXImIG9wZXJhdG9yW10oaW50IG4pIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzZXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIGluc3RhbmNlIG9mIFxwIHRhZworICAgICAqLworICAgIGJvb2wgQ29udGFpbnMoVGFnIHRhZykgY29uc3QgeyByZXR1cm4gZmluZCh0YWcpICE9IC0xOyB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYm9vbCBDb250YWlucyhUIHRhZykgY29uc3QgeyByZXR1cm4gZmluZCh0YWcpICE9IC0xOyB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIGJvb2wgQ29udGFpbnMoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgY29uc3QgVmFsdWVUJiB2YWx1ZSkgY29uc3QgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcmFtIDogZGF0YV8pIHsKKyAgICAgICAgICAgIGF1dG8gZW50cnkgPSBhdXRob3JpemF0aW9uVmFsdWUodHRhZywgcGFyYW0pOworICAgICAgICAgICAgaWYgKGVudHJ5LmlzT2soKSAmJiBzdGF0aWNfY2FzdDxWYWx1ZVQ+KGVudHJ5LnZhbHVlKCkpID09IHZhbHVlKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBccCB0YWcgZW50cmllcy4KKyAgICAgKi8KKyAgICBzaXplX3QgR2V0VGFnQ291bnQoVGFnIHRhZykgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgTnVsbE9yPGNvbnN0IHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUPjo6dHlwZSY+IEdldFRhZ1ZhbHVlKFQgdGFnKSBjb25zdCB7CisgICAgICAgIGF1dG8gZW50cnkgPSBHZXRFbnRyeSh0YWcpOworICAgICAgICBpZiAoZW50cnkuaXNPaygpKSByZXR1cm4gYXV0aG9yaXphdGlvblZhbHVlKHRhZywgZW50cnkudmFsdWUoKSk7CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisKKyAgICB2b2lkIHB1c2hfYmFjayhjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7IGRhdGFfLnB1c2hfYmFjayhwYXJhbSk7IH0KKyAgICB2b2lkIHB1c2hfYmFjayhLZXlQYXJhbWV0ZXImJiBwYXJhbSkgeyBkYXRhXy5wdXNoX2JhY2soc3RkOjptb3ZlKHBhcmFtKSk7IH0KKworICAgIHZvaWQgcHVzaF9iYWNrKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogc2V0KSB7CisgICAgICAgICAgICBwdXNoX2JhY2soZW50cnkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBwdXNoX2JhY2soQXV0aG9yaXphdGlvblNldCYmIHNldCkgeworICAgICAgICBtb3ZlKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgICAgICBzZXQuQ2xlYXIoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4KKyAgICB2b2lkIHB1c2hfYmFjayhUeXBlZFRhZzxUYWdUeXBlOjpCWVRFUywgdGFnPiB0dGFnLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gbmV3X2Jsb2I7CisgICAgICAgIG5ld19ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHVzaF9iYWNrKHR0YWcsIHN0ZDo6bW92ZShuZXdfYmxvYikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdGFnIGFuZCBlbnVtZXJhdGVkIHZhbHVlIHRvIHRoZSBzZXQuCisgICAgICogInZhbCIgbWF5IGJlIGV4YWN0bHkgb25lIHBhcmFtZXRlciB1bmxlc3MgYSBib29sZWFuIHBhcmFtZXRlciBpcyBhZGRlZC4KKyAgICAgKiBJbiB0aGlzIGNhc2UgInZhbCIgaXMgb21pdHRlZC4gVGhpcyBjb25kaXRpb24gaXMgY2hlY2tlZCBhdCBjb21waWxlIHRpbWUgYnkgQXV0aG9yaXphdGlvbigpCisgICAgICovCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVkVGFnVCwgdHlwZW5hbWUuLi4gVmFsdWU+IHZvaWQgcHVzaF9iYWNrKFR5cGVkVGFnVCB0YWcsIFZhbHVlJiYuLi4gdmFsKSB7CisgICAgICAgIHB1c2hfYmFjayhBdXRob3JpemF0aW9uKHRhZywgc3RkOjpmb3J3YXJkPFZhbHVlPih2YWwpLi4uKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEl0ZXJhdG9yPiB2b2lkIHB1c2hfYmFjayhJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKSB7CisgICAgICAgIHdoaWxlIChiZWdpbiAhPSBlbmQpIHsKKyAgICAgICAgICAgIHB1c2hfYmFjaygqYmVnaW4pOworICAgICAgICAgICAgKytiZWdpbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBtb3ZlKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpIHsKKyAgICAgICAgc3RkOjptb3ZlKGJlZ2luLCBlbmQsIHN0ZDo6YmFja19pbnNlcnRlcihkYXRhXykpOworICAgIH0KKworICAgIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4gaGlkbF9kYXRhKCkgY29uc3QgeworICAgICAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDxLZXlQYXJhbWV0ZXIqPihkYXRhKCkpLCBzaXplKCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHZvaWQgU2VyaWFsaXplKHN0ZDo6b3N0cmVhbSogb3V0KSBjb25zdDsKKyAgICB2b2lkIERlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSogaW4pOworCisgIHByaXZhdGU6CisgICAgTnVsbE9yPGNvbnN0IEtleVBhcmFtZXRlciY+IEdldEVudHJ5KFRhZyB0YWcpIGNvbnN0OworCisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiBkYXRhXzsKK307CisKK2NsYXNzIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIDogcHVibGljIEF1dGhvcml6YXRpb25TZXQgeworICBwdWJsaWM6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhZ1R5cGUsIHR5cGVuYW1lLi4uIFZhbHVlVHlwZT4KKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvbihUYWdUeXBlIHR0YWcsIFZhbHVlVHlwZSYmLi4uIHZhbHVlKSB7CisgICAgICAgIHB1c2hfYmFjayh0dGFnLCBzdGQ6OmZvcndhcmQ8VmFsdWVUeXBlPih2YWx1ZSkuLi4pOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gbmV3X2Jsb2I7CisgICAgICAgIG5ld19ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHVzaF9iYWNrKHR0YWcsIHN0ZDo6bW92ZShuZXdfYmxvYikpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgY2hhciogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIEF1dGhvcml6YXRpb24odHRhZywgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICB9CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvbnMoQXV0aG9yaXphdGlvblNldCYmIHNldCk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25zKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUnNhS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYUtleSh1aW50MzJfdCBrZXlfc2l6ZSk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEVjZHNhS2V5KEVjQ3VydmUgY3VydmUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBZXNLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBIbWFjS2V5KHVpbnQzMl90IGtleV9zaXplKTsKKworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBSc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBSc2FFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYVNpZ25pbmdLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZSBjdXJ2ZSk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEFlc0VuY3J5cHRpb25LZXkodWludDMyX3Qga2V5X3NpemUpOworCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIFNpZ25pbmdLZXkoKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRW5jcnlwdGlvbktleSgpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBOb0RpZ2VzdE9yUGFkZGluZygpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2JNb2RlKCk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQmxvY2tNb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxCbG9ja01vZGU+IGJsb2NrX21vZGVzKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRGlnZXN0KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxEaWdlc3Q+IGRpZ2VzdHMpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBQYWRkaW5nKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxQYWRkaW5nTW9kZT4gcGFkZGluZ19tb2Rlcyk7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIGZvcndhcmRpbmcgdGVtcGxhdGVzIGVuYWJsZSBCbG9ja01vZGUsRGlnZXN0IGFuZCBQYWRkaW5nIHRvIGJlIGNhbGxlZCB3aXRoIGEKKyAgICAvLyB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzOyBubyBuZWVkIHRvIHdyYXAgdGhlbSBpbiBicmFjZXMgdG8gbWFrZSB0aGVtIGFuIGluaXRhbGl6ZXJfbGlzdC4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEJsb2NrTW9kZShUJiYuLi4gYSkgeworICAgICAgICByZXR1cm4gQmxvY2tNb2RlKHtzdGQ6OmZvcndhcmQ8VD4oYSkuLi59KTsKKyAgICB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBEaWdlc3QoVCYmLi4uIGEpIHsKKyAgICAgICAgcmV0dXJuIERpZ2VzdCh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUGFkZGluZyhUJiYuLi4gYSkgeworICAgICAgICByZXR1cm4gUGFkZGluZyh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorfTsKKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6QXV0aG9yaXphdGlvbnMoQXV0aG9yaXphdGlvblNldCYmIHNldCkgeworICAgIG1vdmUoc2V0LmJlZ2luKCksIHNldC5lbmQoKSk7CisgICAgc2V0LkNsZWFyKCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImCitBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6QXV0aG9yaXphdGlvbnMoY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KSB7CisgICAgcHVzaF9iYWNrKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhS2V5KHVpbnQzMl90IGtleV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHB1YmxpY19leHBvbmVudCkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgcHVibGljX2V4cG9uZW50KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkVDKTsKKyAgICBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNkc2FLZXkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfRUNfQ1VSVkUsIGN1cnZlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkFlc0tleSh1aW50MzJfdCBrZXlfc2l6ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpBRVMpOworICAgIHJldHVybiBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpIbWFjS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSk7CisgICAgcmV0dXJuIFNpZ25pbmdLZXkoKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhU2lnbmluZ0tleSh1aW50MzJfdCBrZXlfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgcHVibGljX2V4cG9uZW50KSB7CisgICAgUnNhS2V5KGtleV9zaXplLCBwdWJsaWNfZXhwb25lbnQpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpSc2FFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpIHsKKyAgICBSc2FLZXkoa2V5X3NpemUsIHB1YmxpY19leHBvbmVudCk7CisgICAgcmV0dXJuIEVuY3J5cHRpb25LZXkoKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNkc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgRWNkc2FLZXkoa2V5X3NpemUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhU2lnbmluZ0tleShFY0N1cnZlIGN1cnZlKSB7CisgICAgRWNkc2FLZXkoY3VydmUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkFlc0VuY3J5cHRpb25LZXkodWludDMyX3Qga2V5X3NpemUpIHsKKyAgICBBZXNLZXkoa2V5X3NpemUpOworICAgIHJldHVybiBFbmNyeXB0aW9uS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OlNpZ25pbmdLZXkoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6U0lHTik7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVuY3J5cHRpb25LZXkoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCk7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpOb0RpZ2VzdE9yUGFkZGluZygpIHsKKyAgICBBdXRob3JpemF0aW9uKFRBR19ESUdFU1QsIERpZ2VzdDo6Tk9ORSk7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BBRERJTkcsIFBhZGRpbmdNb2RlOjpOT05FKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNiTW9kZSgpIHsKKyAgICByZXR1cm4gQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkJsb2NrTW9kZShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6QmxvY2tNb2RlPiBibG9ja19tb2RlcykgeworICAgIGZvciAoYXV0byBibG9ja19tb2RlIDogYmxvY2tfbW9kZXMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgYmxvY2tfbW9kZSk7CisgICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkRpZ2VzdChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6RGlnZXN0PiBkaWdlc3RzKSB7CisgICAgZm9yIChhdXRvIGRpZ2VzdCA6IGRpZ2VzdHMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfRElHRVNULCBkaWdlc3QpOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpQYWRkaW5nKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxWM18wOjpQYWRkaW5nTW9kZT4gcGFkZGluZ19tb2RlcykgeworICAgIGZvciAoYXV0byBwYWRkaW5nIDogcGFkZGluZ19tb2RlcykgeworICAgICAgICBBdXRob3JpemF0aW9uKFRBR19QQURESU5HLCBwYWRkaW5nKTsKKyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FVVEhPUklaQVRJT05fU0VUX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleV9wYXJhbV9vdXRwdXQuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzlmNjg1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJrZXlfcGFyYW1fb3V0cHV0LmgiCisKKyNpbmNsdWRlIDxpb21hbmlwPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQpIHsKKyAgICBpZiAoc2V0LnNpemUoKSA9PSAwKSB7CisgICAgICAgIG9zIDw8ICIoRW1wdHkpIiA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9IGVsc2UgeworICAgICAgICBvcyA8PCAiXG4iOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNldC5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG9zIDw8IHNldFtpXSA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVycm9yQ29kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCAoaW50KXZhbHVlOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIERpZ2VzdCB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEFsZ29yaXRobSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEJsb2NrTW9kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIFBhZGRpbmdNb2RlIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgS2V5T3JpZ2luIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgS2V5UHVycG9zZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVjQ3VydmUgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgb3MgPDwgc3RyaW5naWZ5VGFnKHBhcmFtLnRhZykgPDwgIjogIjsKKyAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKHBhcmFtLnRhZykpIHsKKyAgICBjYXNlIFRhZ1R5cGU6OklOVkFMSUQ6CisgICAgICAgIHJldHVybiBvcyA8PCAiIEludmFsaWQiOworICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgICAgICBzd2l0Y2ggKHBhcmFtLnRhZykgeworICAgICAgICBjYXNlIFRhZzo6QUxHT1JJVEhNOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYuYWxnb3JpdGhtOworICAgICAgICBjYXNlIFRhZzo6QkxPQ0tfTU9ERToKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmJsb2NrTW9kZTsKKyAgICAgICAgY2FzZSBUYWc6OlBBRERJTkc6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5wYWRkaW5nTW9kZTsKKyAgICAgICAgY2FzZSBUYWc6OkRJR0VTVDoKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmRpZ2VzdDsKKyAgICAgICAgY2FzZSBUYWc6OkVDX0NVUlZFOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IChpbnQpcGFyYW0uZi5lY0N1cnZlOworICAgICAgICBjYXNlIFRhZzo6T1JJR0lOOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYub3JpZ2luOworICAgICAgICBjYXNlIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFM6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgKGludClwYXJhbS5mLmtleUJsb2JVc2FnZVJlcXVpcmVtZW50czsKKyAgICAgICAgY2FzZSBUYWc6OlBVUlBPU0U6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5wdXJwb3NlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8ICIgVU5LTk9XTiBFTlVNICIgPDwgcGFyYW0uZi5pbnRlZ2VyOworICAgICAgICB9CisgICAgY2FzZSBUYWdUeXBlOjpVTE9OR19SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVTE9ORzoKKyAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5kYXRlVGltZTsKKyAgICBjYXNlIFRhZ1R5cGU6OkJPT0w6CisgICAgICAgIHJldHVybiBvcyA8PCAidHJ1ZSI7CisgICAgY2FzZSBUYWdUeXBlOjpCSUdOVU06CisgICAgICAgIG9zIDw8ICIgQmlnbnVtOiAiOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtLmJsb2Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG9zIDw8IDo6c3RkOjpoZXggPDwgOjpzdGQ6OnNldHcoMikgPDwgc3RhdGljX2Nhc3Q8aW50PihwYXJhbS5ibG9iW2ldKSA8PCA6OnN0ZDo6ZGVjOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvczsKKyAgICBjYXNlIFRhZ1R5cGU6OkJZVEVTOgorICAgICAgICBvcyA8PCAiIEJ5dGVzOiAiOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtLmJsb2Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG9zIDw8IDo6c3RkOjpoZXggPDwgOjpzdGQ6OnNldHcoMikgPDwgc3RhdGljX2Nhc3Q8aW50PihwYXJhbS5ibG9iW2ldKSA8PCA6OnN0ZDo6ZGVjOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvczsKKyAgICB9CisgICAgcmV0dXJuIG9zIDw8ICJVTktOT1dOIFRBRyBUWVBFISI7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBjaGFycykgeworICAgIHJldHVybiBvcyA8PCAiU1c6ICIgPDwgY2hhcnMuc29mdHdhcmVFbmZvcmNlZCA8PCA6OnN0ZDo6ZW5kbAorICAgICAgICAgICAgICA8PCAiVEVFOiAiIDw8IGNoYXJzLnRlZUVuZm9yY2VkIDw8IDo6c3RkOjplbmRsOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleV9wYXJhbV9vdXRwdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWRlYzJkCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC90eXBlcy5oPgorCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVmFsdWVUPgorOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBOdWxsT3I8VmFsdWVUPiYgdmFsdWUpIHsKKyAgICBpZiAoIXZhbHVlLmlzT2soKSkgeworICAgICAgICBvcyA8PCAiKHZhbHVlIG5vdCBwcmVzZW50KSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3MgPDwgdmFsdWUudmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHNldCk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEJsb2NrTW9kZSB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIERpZ2VzdCB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVjQ3VydmUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBFcnJvckNvZGUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBQYWRkaW5nTW9kZSB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlQYXJhbWV0ZXImIHZhbHVlKTsKKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXltYXN0ZXJfaGlkbF9oYWxfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNkNGRlYwotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwCkBAIC0wLDAgKzEsNDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAia2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QiCisjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorI2luY2x1ZGUgPG9wZW5zc2wveDUwOS5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKKyNpbmNsdWRlIDxrZXltYXN0ZXIva2V5bWFzdGVyX2NvbmZpZ3VyYXRpb24uaD4KKworI2luY2x1ZGUgImF1dGhvcml6YXRpb25fc2V0LmgiCisjaW5jbHVkZSAia2V5X3BhcmFtX291dHB1dC5oIgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlICJhdHRlc3RhdGlvbl9yZWNvcmQuaCIKKyNpbmNsdWRlICJvcGVuc3NsX3V0aWxzLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIDo6c3RkOjpzdHJpbmc7CisKKy8vIFRoaXMgc2VydmljZV9uYW1lIHdpbGwgYmUgcGFzc2VkIHRvIGdldFNlcnZpY2Ugd2hlbiByZXRyaWV2aW5nIHRoZSBrZXltYXN0ZXIgc2VydmljZSB0byB0ZXN0LiAgVG8KKy8vIGNoYW5nZSBpdCBmcm9tICJkZWZhdWx0IiBzcGVjaWZ5IHRoZSBzZWxlY3RlZCBzZXJ2aWNlIG5hbWUgb24gdGhlIGNvbW1hbmQgbGluZS4gIFRoZSBmaXJzdAorLy8gbm9uLWd0ZXN0IGFyZ3VtZW50IHdpbGwgYmUgdXNlZCBhcyB0aGUgc2VydmljZSBuYW1lLgorc3RyaW5nIHNlcnZpY2VfbmFtZSA9ICJkZWZhdWx0IjsKKworc3RhdGljIGJvb2wgYXJtX2RlbGV0ZUFsbEtleXMgPSBmYWxzZTsKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBoaWRsX3ZlYzxUPiYgYSwgY29uc3QgaGlkbF92ZWM8VD4mIGIpIHsKKyAgICBpZiAoYS5zaXplKCkgIT0gYi5zaXplKCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGEuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gYltpXSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtleVBhcmFtZXRlciYgYSwgY29uc3QgS2V5UGFyYW1ldGVyJiBiKSB7CisgICAgaWYgKGEudGFnICE9IGIudGFnKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGEudGFnKSB7CisKKyAgICAvKiBCb29sZWFuIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6SU5WQUxJRDoKKyAgICBjYXNlIFRhZzo6Q0FMTEVSX05PTkNFOgorICAgIGNhc2UgVGFnOjpJTkNMVURFX1VOSVFVRV9JRDoKKyAgICBjYXNlIFRhZzo6RUNJRVNfU0lOR0xFX0hBU0hfTU9ERToKKyAgICBjYXNlIFRhZzo6Qk9PVExPQURFUl9PTkxZOgorICAgIGNhc2UgVGFnOjpOT19BVVRIX1JFUVVJUkVEOgorICAgIGNhc2UgVGFnOjpBTExPV19XSElMRV9PTl9CT0RZOgorICAgIGNhc2UgVGFnOjpFWFBPUlRBQkxFOgorICAgIGNhc2UgVGFnOjpBTExfQVBQTElDQVRJT05TOgorICAgIGNhc2UgVGFnOjpST0xMQkFDS19SRVNJU1RBTlQ6CisgICAgY2FzZSBUYWc6OlJFU0VUX1NJTkNFX0lEX1JPVEFUSU9OOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8qIEludGVnZXIgdGFncyAqLworICAgIGNhc2UgVGFnOjpLRVlfU0laRToKKyAgICBjYXNlIFRhZzo6TUlOX01BQ19MRU5HVEg6CisgICAgY2FzZSBUYWc6Ok1JTl9TRUNPTkRTX0JFVFdFRU5fT1BTOgorICAgIGNhc2UgVGFnOjpNQVhfVVNFU19QRVJfQk9PVDoKKyAgICBjYXNlIFRhZzo6QUxMX1VTRVJTOgorICAgIGNhc2UgVGFnOjpVU0VSX0lEOgorICAgIGNhc2UgVGFnOjpPU19WRVJTSU9OOgorICAgIGNhc2UgVGFnOjpPU19QQVRDSExFVkVMOgorICAgIGNhc2UgVGFnOjpNQUNfTEVOR1RIOgorICAgIGNhc2UgVGFnOjpBVVRIX1RJTUVPVVQ6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA9PSBiLmYuaW50ZWdlcjsKKworICAgIC8qIExvbmcgaW50ZWdlciB0YWdzICovCisgICAgY2FzZSBUYWc6OlJTQV9QVUJMSUNfRVhQT05FTlQ6CisgICAgY2FzZSBUYWc6OlVTRVJfU0VDVVJFX0lEOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyID09IGIuZi5sb25nSW50ZWdlcjsKKworICAgIC8qIERhdGUtdGltZSB0YWdzICovCisgICAgY2FzZSBUYWc6OkFDVElWRV9EQVRFVElNRToKKyAgICBjYXNlIFRhZzo6T1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FOgorICAgIGNhc2UgVGFnOjpVU0FHRV9FWFBJUkVfREFURVRJTUU6CisgICAgY2FzZSBUYWc6OkNSRUFUSU9OX0RBVEVUSU1FOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lID09IGIuZi5kYXRlVGltZTsKKworICAgIC8qIEJ5dGVzIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6QVBQTElDQVRJT05fSUQ6CisgICAgY2FzZSBUYWc6OkFQUExJQ0FUSU9OX0RBVEE6CisgICAgY2FzZSBUYWc6OlJPT1RfT0ZfVFJVU1Q6CisgICAgY2FzZSBUYWc6OlVOSVFVRV9JRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fQ0hBTExFTkdFOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfQlJBTkQ6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX0RFVklDRToKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfUFJPRFVDVDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfU0VSSUFMOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9JTUVJOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NRUlEOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVI6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX01PREVMOgorICAgIGNhc2UgVGFnOjpBU1NPQ0lBVEVEX0RBVEE6CisgICAgY2FzZSBUYWc6Ok5PTkNFOgorICAgIGNhc2UgVGFnOjpBVVRIX1RPS0VOOgorICAgICAgICByZXR1cm4gYS5ibG9iID09IGIuYmxvYjsKKworICAgIC8qIEVudW0gdGFncyAqLworICAgIGNhc2UgVGFnOjpQVVJQT1NFOgorICAgICAgICByZXR1cm4gYS5mLnB1cnBvc2UgPT0gYi5mLnB1cnBvc2U7CisgICAgY2FzZSBUYWc6OkFMR09SSVRITToKKyAgICAgICAgcmV0dXJuIGEuZi5hbGdvcml0aG0gPT0gYi5mLmFsZ29yaXRobTsKKyAgICBjYXNlIFRhZzo6QkxPQ0tfTU9ERToKKyAgICAgICAgcmV0dXJuIGEuZi5ibG9ja01vZGUgPT0gYi5mLmJsb2NrTW9kZTsKKyAgICBjYXNlIFRhZzo6RElHRVNUOgorICAgICAgICByZXR1cm4gYS5mLmRpZ2VzdCA9PSBiLmYuZGlnZXN0OworICAgIGNhc2UgVGFnOjpQQURESU5HOgorICAgICAgICByZXR1cm4gYS5mLnBhZGRpbmdNb2RlID09IGIuZi5wYWRkaW5nTW9kZTsKKyAgICBjYXNlIFRhZzo6RUNfQ1VSVkU6CisgICAgICAgIHJldHVybiBhLmYuZWNDdXJ2ZSA9PSBiLmYuZWNDdXJ2ZTsKKyAgICBjYXNlIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFM6CisgICAgICAgIHJldHVybiBhLmYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzID09IGIuZi5rZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgY2FzZSBUYWc6OlVTRVJfQVVUSF9UWVBFOgorICAgICAgICByZXR1cm4gYS5mLmludGVnZXIgPT0gYi5mLmludGVnZXI7CisgICAgY2FzZSBUYWc6Ok9SSUdJTjoKKyAgICAgICAgcmV0dXJuIGEuZi5vcmlnaW4gPT0gYi5mLm9yaWdpbjsKKworICAgIC8qIFVuc3VwcG9ydGVkIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6S0RGOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitib29sIG9wZXJhdG9yPT0oY29uc3QgQXV0aG9yaXphdGlvblNldCYgYSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgYikgeworICAgIHJldHVybiBhLnNpemUoKSA9PSBiLnNpemUoKSAmJiBzdGQ6OmVxdWFsKGEuYmVnaW4oKSwgYS5lbmQoKSwgYi5iZWdpbigpKTsKK30KKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgYSwgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBiKSB7CisgICAgLy8gVGhpcyBpc24ndCB2ZXJ5IGVmZmljaWVudC4gT2gsIHdlbGwuCisgICAgQXV0aG9yaXphdGlvblNldCBhX3N3KGEuc29mdHdhcmVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBiX3N3KGIuc29mdHdhcmVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBhX3RlZShiLnRlZUVuZm9yY2VkKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJfdGVlKGIudGVlRW5mb3JjZWQpOworCisgICAgYV9zdy5Tb3J0KCk7CisgICAgYl9zdy5Tb3J0KCk7CisgICAgYV90ZWUuU29ydCgpOworICAgIGJfdGVlLlNvcnQoKTsKKworICAgIHJldHVybiBhX3N3ID09IGJfc3cgJiYgYV90ZWUgPT0gYl9zdzsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpIHsKKyAgICBpZiAoc2V0LnNpemUoKSA9PSAwKQorICAgICAgICBvcyA8PCAiKEVtcHR5KSIgPDwgOjpzdGQ6OmVuZGw7CisgICAgZWxzZSB7CisgICAgICAgIG9zIDw8ICJcbiI7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2V0LnNpemUoKTsgKytpKQorICAgICAgICAgICAgb3MgPDwgc2V0W2ldIDw8IDo6c3RkOjplbmRsOworICAgIH0KKyAgICByZXR1cm4gb3M7Cit9CisKK25hbWVzcGFjZSB0ZXN0IHsKK25hbWVzcGFjZSB7CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZSBWYWx1ZVQ+Citib29sIGNvbnRhaW5zKGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHNldCwgVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkX3ZhbHVlKSB7CisgICAgc2l6ZV90IGNvdW50ID0gc3RkOjpjb3VudF9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBbJl0oY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgICAgICByZXR1cm4gcGFyYW0udGFnID09IHRhZyAmJiBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSkgPT0gZXhwZWN0ZWRfdmFsdWU7CisgICAgfSk7CisgICAgcmV0dXJuIGNvdW50ID09IDE7Cit9CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnPgorYm9vbCBjb250YWlucyhoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQsIFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+KSB7CisgICAgc2l6ZV90IGNvdW50ID0gc3RkOjpjb3VudF9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsgcmV0dXJuIHBhcmFtLnRhZyA9PSB0YWc7IH0pOworICAgIHJldHVybiBjb3VudCA+IDA7Cit9CisKK2NvbnN0ZXhwciBjaGFyIGhleF92YWx1ZVsyNTZdID0gezAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsICAyLCAgMywgIDQsICA1LCAgNiwgIDcsIDgsIDksIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnMCcuLic5JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vICdBJy4uJ0YnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnYScuLidmJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworCitzdHJpbmcgaGV4MnN0cihzdHJpbmcgYSkgeworICAgIHN0cmluZyBiOworICAgIHNpemVfdCBudW0gPSBhLnNpemUoKSAvIDI7CisgICAgYi5yZXNpemUobnVtKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bTsgaSsrKSB7CisgICAgICAgIGJbaV0gPSAoaGV4X3ZhbHVlW2FbaSAqIDJdICYgMHhGRl0gPDwgNCkgKyAoaGV4X3ZhbHVlW2FbaSAqIDIgKyAxXSAmIDB4RkZdKTsKKyAgICB9CisgICAgcmV0dXJuIGI7Cit9CisKK3N0cmluZyByc2Ffa2V5ID0gaGV4MnN0cigiMzA4MjAyNzUwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDI1ZjMwODIwMjViIgorICAgICAgICAgICAgICAgICAgICAgICAgICIwMjAxMDAwMjgxODEwMGM2MDk1NDA5MDQ3ZDg2MzQ4MTJkNWEyMTgxNzZlNDVjNDFkNjBhNzViMTM5MDEiCisgICAgICAgICAgICAgICAgICAgICAgICAgImYyMzQyMjZjZmZlNzc2NTIxYzVhNzdiOWUzODk0MTdiNzFjMGI2YTQ0ZDEzYWZlNGU0YTI4MDVkNDZjOSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGEyOTM1YWRiMWZmMGMxZjI0ZWEwNmU2MmIyMGQ3NzY0MzBhNGQ0MzUxNTcyMzNjNmY5MTY3ODNjMzBlIgorICAgICAgICAgICAgICAgICAgICAgICAgICIzMTBmY2JkODliODVjMmQ1Njc3MTE2OTc4NWFjMTJiY2EyNDRhYmRhNzJiZmIxOWZjNDRkMjdjODFlMWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjkyZGUyODRmNDA2MWVkZmQ5OTI4MDc0NWVhNmQyNTAyMDMwMTAwMDEwMjgxODAxYmUwZjA0ZDljYWUzNyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMTg2OTFmMDM1MzM4MzA4ZTkxNTY0YjU1ODk5ZmZiNTA4NGQyNDYwZTY2MzAyNTdlMDViM2NlYWIwMjk3IgorICAgICAgICAgICAgICAgICAgICAgICAgICIyZGZhYmNkNmNlNWY2ZWUyNTg5ZWI2NzkxMWVkMGZhYzE2ZTQzYTQ0NGI4Yzg2MWU1NDRhMDU5MzM2NTciCisgICAgICAgICAgICAgICAgICAgICAgICAgIjcyZjhiYWY2YjIyZmM5ZTNjNWYxMDI0YjA2M2FjMDgwYTdiMjIzNGNmOGFlZThmNmM0N2JiZjRmZDNhYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZTcyNDAyOTBiZWYxNmMwYjNmN2YzY2RkNjRjZTNhYjU5MTJjZjZlMzJmMzlhYjE4ODM1OGFmY2NjZDgwIgorICAgICAgICAgICAgICAgICAgICAgICAgICI4MTAyNDEwMGU0YjQ5ZWY1MGY3NjVkM2IyNGRkZTAxYWNlYWFmMTMwZjJjNzY2NzBhOTFhNjFhZTA4YWYiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjQ5N2I0YTgyYmU2ZGVlOGZjZGQ1ZTNmN2JhMWNmYjFmMGM5MjZiODhmODhjOTJiZmFiMTM3ZmJhMjI4NSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMjI3YjgzYzM0MmZmN2M1NTAyNDEwMGRkYWJiNTgzOWM0YzdmNmJmM2Q0MTgzMjMxZjAwNWIzMWFhNThhIgorICAgICAgICAgICAgICAgICAgICAgICAgICJmZmRkYTVjNzllNGNjZTIxN2Y2YmM5MzBkYmU1NjNkNDgwNzA2YzI0ZTllYmZjYWIyOGE2Y2RlZmQzMjQiCisgICAgICAgICAgICAgICAgICAgICAgICAgImI3N2UxYmY3MjUxYjcwOTA5MmMyNGZmNTAxZmQ5MTAyNDAyM2Q0MzQwZWRhMzQ0NWQ4Y2QyNmMxNDQxMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGE2ZmRjYTYzYzFjY2Q0YjgwYTk4YWQ1MmI3OGNjOGFkOGJlYjI4NDJjMWQyODA0MDViYzJmNmMxYmVhIgorICAgICAgICAgICAgICAgICAgICAgICAgICIyMTRhMWQ3NDJhYjk5NmIzNWI2M2E4MmE1ZTQ3MGZhODhkYmY4MjNjZGQwMjQwMWI3YjU3NDQ5YWQzMGQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjE1MTgyNDlhNWY1NmJiOTgyOTRkNGI2YWMxMmZmYzg2OTQwNDk3YTVhNTgzN2E2Y2Y5NDYyNjJiNDk0NSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMjZkMzI4YzExZTExMjYzODBmZGUwNGMyNGY5MTZkZWMyNTA4OTJkYjA5YTZkNzdjZGJhMzUxMDI0MDc3IgorICAgICAgICAgICAgICAgICAgICAgICAgICI2MmNkOGY0ZDA1MGRhNTZiZDU5MWFkYjUxNWQyNGQ3Y2NkMzJjY2EwZDA1Zjg2NmQ1ODM1MTRiZDczMjQiCisgICAgICAgICAgICAgICAgICAgICAgICAgImQ1ZjMzNjQ1ZThlZDhiNGExY2IzY2M0YTFkNjc5ODczOTlmMmEwOWY1YjNmYjY4Yzg4ZDVlNWQ5MGFjMyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMzQ5MmQ2Iik7CisKK3N0cmluZyBlY19rZXkgPSBoZXgyc3RyKCIzMDgxODcwMjAxMDAzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcwNDZkMzAiCisgICAgICAgICAgICAgICAgICAgICAgICAiNmIwMjAxMDEwNDIwNzM3YzJlY2Q3YjhkMTk0MGJmMjkzMGFhOWI0ZWQzZmY5NDFlZWQwOTM2NmJjMDMyIgorICAgICAgICAgICAgICAgICAgICAgICAgIjk5OTg2NDgxZjNhNGQ4NTlhMTQ0MDM0MjAwMDRiZjg1ZDc3MjBkMDdjMjU0NjE2ODNiYzY0OGI0Nzc4YSIKKyAgICAgICAgICAgICAgICAgICAgICAgICI5YTE0ZGQ4YTAyNGUzYmRkOGM3ZGRkOWFiMmI1MjhiYmM3YWExYjUxZjE0ZWJiYmIwYmQwY2UyMWJjYzQiCisgICAgICAgICAgICAgICAgICAgICAgICAiMWM2ZWIwMDA4M2NmMzM3NmQxMWZkNDQ5NDllMGIyMTgzYmZlIik7CisKK3N0cnVjdCBSU0FfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoUlNBKiBwKSB7IFJTQV9mcmVlKHApOyB9Cit9OworCitYNTA5KiBwYXJzZV9jZXJ0X2Jsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICBjb25zdCB1aW50OF90KiBwID0gYmxvYi5kYXRhKCk7CisgICAgcmV0dXJuIGQyaV9YNTA5KG51bGxwdHIsICZwLCBibG9iLnNpemUoKSk7Cit9CisKK2Jvb2wgdmVyaWZ5X2NoYWluKGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgY2hhaW4pIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoYWluLnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICBhdXRvJiBrZXlfY2VydF9ibG9iID0gY2hhaW5baV07CisgICAgICAgIGF1dG8mIHNpZ25pbmdfY2VydF9ibG9iID0gY2hhaW5baSArIDFdOworCisgICAgICAgIFg1MDlfUHRyIGtleV9jZXJ0KHBhcnNlX2NlcnRfYmxvYihrZXlfY2VydF9ibG9iKSk7CisgICAgICAgIFg1MDlfUHRyIHNpZ25pbmdfY2VydChwYXJzZV9jZXJ0X2Jsb2Ioc2lnbmluZ19jZXJ0X2Jsb2IpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoISFrZXlfY2VydC5nZXQoKSAmJiAhIXNpZ25pbmdfY2VydC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5X2NlcnQuZ2V0KCkgfHwgIXNpZ25pbmdfY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEVWUF9QS0VZX1B0ciBzaWduaW5nX3B1YmtleShYNTA5X2dldF9wdWJrZXkoc2lnbmluZ19jZXJ0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKCEhc2lnbmluZ19wdWJrZXkuZ2V0KCkpOworICAgICAgICBpZiAoIXNpZ25pbmdfcHVia2V5LmdldCgpKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgRVhQRUNUX0VRKDEsIFg1MDlfdmVyaWZ5KGtleV9jZXJ0LmdldCgpLCBzaWduaW5nX3B1YmtleS5nZXQoKSkpCisgICAgICAgICAgICA8PCAiVmVyaWZpY2F0aW9uIG9mIGNlcnRpZmljYXRlICIgPDwgaSA8PCAiIGZhaWxlZCI7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIEV4dHJhY3QgYXR0ZXN0YXRpb24gcmVjb3JkIGZyb20gY2VydC4gUmV0dXJuZWQgb2JqZWN0IGlzIHN0aWxsIHBhcnQgb2YgY2VydDsgZG9uJ3QgZnJlZSBpdAorLy8gc2VwYXJhdGVseS4KK0FTTjFfT0NURVRfU1RSSU5HKiBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKFg1MDkqIGNlcnRpZmljYXRlKSB7CisgICAgQVNOMV9PQkpFQ1RfUHRyIG9pZChPQkpfdHh0Mm9iaihrQXR0ZXN0aW9uUmVjb3JkT2lkLCAxIC8qIGRvdHRlZCBzdHJpbmcgZm9ybWF0ICovKSk7CisgICAgRVhQRUNUX1RSVUUoISFvaWQuZ2V0KCkpOworICAgIGlmICghb2lkLmdldCgpKSByZXR1cm4gbnVsbHB0cjsKKworICAgIGludCBsb2NhdGlvbiA9IFg1MDlfZ2V0X2V4dF9ieV9PQkooY2VydGlmaWNhdGUsIG9pZC5nZXQoKSwgLTEgLyogc2VhcmNoIGZyb20gYmVnaW5uaW5nICovKTsKKyAgICBFWFBFQ1RfTkUoLTEsIGxvY2F0aW9uKTsKKyAgICBpZiAobG9jYXRpb24gPT0gLTEpIHJldHVybiBudWxscHRyOworCisgICAgWDUwOV9FWFRFTlNJT04qIGF0dGVzdF9yZWNfZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnRpZmljYXRlLCBsb2NhdGlvbik7CisgICAgRVhQRUNUX1RSVUUoISFhdHRlc3RfcmVjX2V4dCk7CisgICAgaWYgKCFhdHRlc3RfcmVjX2V4dCkgcmV0dXJuIG51bGxwdHI7CisKKyAgICBBU04xX09DVEVUX1NUUklORyogYXR0ZXN0X3JlYyA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGF0dGVzdF9yZWNfZXh0KTsKKyAgICBFWFBFQ1RfVFJVRSghIWF0dGVzdF9yZWMpOworICAgIHJldHVybiBhdHRlc3RfcmVjOworfQorCitib29sIHRhZ19pbl9saXN0KGNvbnN0IEtleVBhcmFtZXRlciYgZW50cnkpIHsKKyAgICAvLyBBdHRlc3RhdGlvbnMgZG9uJ3QgY29udGFpbiBldmVyeXRoaW5nIGluIGtleSBhdXRob3JpemF0aW9uIGxpc3RzLCBzbyB3ZSBuZWVkIHRvIGZpbHRlcgorICAgIC8vIHRoZSBrZXkgbGlzdHMgdG8gcHJvZHVjZSB0aGUgbGlzdHMgdGhhdCB3ZSBleHBlY3QgdG8gbWF0Y2ggdGhlIGF0dGVzdGF0aW9ucy4KKyAgICBhdXRvIHRhZ19saXN0ID0geworICAgICAgICBUYWc6OlVTRVJfSUQsIFRhZzo6SU5DTFVERV9VTklRVUVfSUQsIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsCisgICAgICAgIFRhZzo6RUNfQ1VSVkUgLyogVGFnOjpFQ19DVVJWRSB3aWxsIGJlIGluY2x1ZGVkIGJ5IEtNMiBpbXBsZW1lbnRhdGlvbnMgKi8sCisgICAgfTsKKyAgICByZXR1cm4gc3RkOjpmaW5kKHRhZ19saXN0LmJlZ2luKCksIHRhZ19saXN0LmVuZCgpLCBlbnRyeS50YWcpICE9IHRhZ19saXN0LmVuZCgpOworfQorCitBdXRob3JpemF0aW9uU2V0IGZpbHRlcl90YWdzKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIEF1dGhvcml6YXRpb25TZXQgZmlsdGVyZWQ7CisgICAgc3RkOjpyZW1vdmVfY29weV9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIoZmlsdGVyZWQpLCB0YWdfaW5fbGlzdCk7CisgICAgcmV0dXJuIGZpbHRlcmVkOworfQorCitzdGQ6OnN0cmluZyBtYWtlX3N0cmluZyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOworfQorCit0ZW1wbGF0ZSA8c2l6ZV90IE4+IHN0ZDo6c3RyaW5nIG1ha2Vfc3RyaW5nKGNvbnN0IHVpbnQ4X3QgKCZhKVtOXSkgeworICAgIHJldHVybiBtYWtlX3N0cmluZyhhLCBOKTsKK30KKworY2xhc3MgSGlkbEJ1ZiA6IHB1YmxpYyBoaWRsX3ZlYzx1aW50OF90PiB7CisgICAgdHlwZWRlZiBoaWRsX3ZlYzx1aW50OF90PiBzdXBlcjsKKworICBwdWJsaWM6CisgICAgSGlkbEJ1ZigpIHt9CisgICAgSGlkbEJ1Zihjb25zdCBzdXBlciYgb3RoZXIpIDogc3VwZXIob3RoZXIpIHt9CisgICAgSGlkbEJ1ZihzdXBlciYmIG90aGVyKSA6IHN1cGVyKHN0ZDo6bW92ZShvdGhlcikpIHt9CisgICAgZXhwbGljaXQgSGlkbEJ1Zihjb25zdCBzdGQ6OnN0cmluZyYgb3RoZXIpIDogSGlkbEJ1ZigpIHsgKnRoaXMgPSBvdGhlcjsgfQorCisgICAgSGlkbEJ1ZiYgb3BlcmF0b3I9KGNvbnN0IHN1cGVyJiBvdGhlcikgeworICAgICAgICBzdXBlcjo6b3BlcmF0b3I9KG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIEhpZGxCdWYmIG9wZXJhdG9yPShzdXBlciYmIG90aGVyKSB7CisgICAgICAgIHN1cGVyOjpvcGVyYXRvcj0oc3RkOjptb3ZlKG90aGVyKSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBIaWRsQnVmJiBvcGVyYXRvcj0oY29uc3Qgc3RyaW5nJiBvdGhlcikgeworICAgICAgICByZXNpemUob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlci5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgKCp0aGlzKVtpXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG90aGVyW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgc3RyaW5nIHRvX3N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKCkpLCBzaXplKCkpOyB9Cit9OworCitjb25zdGV4cHIgdWludDY0X3Qga09wSGFuZGxlU2VudGluZWwgPSAweEZGRkZGRkZGRkZGRkZGRkY7CisKK30gIC8vIG5hbWVzcGFjZQorCitjbGFzcyBLZXltYXN0ZXJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgIHB1YmxpYzoKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAoa2V5X2Jsb2JfLnNpemUoKSkgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBBYm9ydElmTmVlZGVkKCk7CisgICAgfQorCisgICAgLy8gU2V0VXBUZXN0Q2FzZSBydW5zIG9ubHkgb25jZSBwZXIgdGVzdCBjYXNlLCBub3Qgb25jZSBwZXIgdGVzdC4KKyAgICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICAgICAgICBrZXltYXN0ZXJfID0gSUtleW1hc3RlckRldmljZTo6Z2V0U2VydmljZShzZXJ2aWNlX25hbWUpOworICAgICAgICBBU1NFUlRfTkUoa2V5bWFzdGVyXywgbnVsbHB0cik7CisKKyAgICAgICAgQVNTRVJUX1RSVUUoCisgICAgICAgICAgICBrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgLT5nZXRIYXJkd2FyZUZlYXR1cmVzKFsmXShib29sIGlzU2VjdXJlLCBib29sIHN1cHBvcnRzRWMsIGJvb2wgc3VwcG9ydHNTeW1tZXRyaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN1cHBvcnRzQXR0ZXN0YXRpb24sIGJvb2wgc3VwcG9ydHNBbGxEaWdlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG5hbWUsIGNvbnN0IGhpZGxfc3RyaW5nJiBhdXRob3IpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNfc2VjdXJlXyA9IGlzU2VjdXJlOworICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19lY18gPSBzdXBwb3J0c0VjOworICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19zeW1tZXRyaWNfID0gc3VwcG9ydHNTeW1tZXRyaWM7CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uXyA9IHN1cHBvcnRzQXR0ZXN0YXRpb247CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2FsbF9kaWdlc3RzXyA9IHN1cHBvcnRzQWxsRGlnZXN0czsKKyAgICAgICAgICAgICAgICAgICAgbmFtZV8gPSBuYW1lOworICAgICAgICAgICAgICAgICAgICBhdXRob3JfID0gYXV0aG9yOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmlzT2soKSk7CisKKyAgICAgICAgb3NfdmVyc2lvbl8gPSA6OmtleW1hc3Rlcjo6R2V0T3NWZXJzaW9uKCk7CisgICAgICAgIG9zX3BhdGNoX2xldmVsXyA9IDo6a2V5bWFzdGVyOjpHZXRPc1BhdGNobGV2ZWwoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeyBrZXltYXN0ZXJfLmNsZWFyKCk7IH0KKworICAgIHN0YXRpYyBJS2V5bWFzdGVyRGV2aWNlJiBrZXltYXN0ZXIoKSB7IHJldHVybiAqa2V5bWFzdGVyXzsgfQorICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uKCkgeyByZXR1cm4gb3NfdmVyc2lvbl87IH0KKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWwoKSB7IHJldHVybiBvc19wYXRjaF9sZXZlbF87IH0KKworICAgIEF1dGhvcml6YXRpb25TZXQgVXNlckF1dGhzKCkgeyByZXR1cm4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19VU0VSX0lELCA3KTsgfQorCisgICAgRXJyb3JDb2RlIEdlbmVyYXRlS2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGtleV9kZXNjLCBIaWRsQnVmKiBrZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzKiBrZXlfY2hhcmFjdGVyaXN0aWNzKSB7CisgICAgICAgIEVYUEVDVF9ORShrZXlfYmxvYiwgbnVsbHB0cik7CisgICAgICAgIEVYUEVDVF9ORShrZXlfY2hhcmFjdGVyaXN0aWNzLCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKGtleW1hc3Rlcl8KKyAgICAgICAgICAgICAgICAgICAgICAgIC0+Z2VuZXJhdGVLZXkoa2V5X2Rlc2MuaGlkbF9kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgSGlkbEJ1ZiYgaGlkbF9rZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2Jsb2IgPSBoaWRsX2tleV9ibG9iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmtleV9jaGFyYWN0ZXJpc3RpY3MgPSBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2IgJiBjaGFyYWN0ZXJpc3RpY3Mgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgKGtleV9jaGFyYWN0ZXJpc3RpY3MtPnNvZnR3YXJlRW5mb3JjZWQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3MtPnRlZUVuZm9yY2VkLnNpemUoKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgR2VuZXJhdGVLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MpIHsKKyAgICAgICAgcmV0dXJuIEdlbmVyYXRlS2V5KGtleV9kZXNjLCAma2V5X2Jsb2JfLCAma2V5X2NoYXJhY3RlcmlzdGljc18pOworICAgIH0KKworICAgIEVycm9yQ29kZSBJbXBvcnRLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MsIEtleUZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGtleV9tYXRlcmlhbCwgSGlkbEJ1Zioga2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBFWFBFQ1RfVFJVRShrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgICAtPmltcG9ydEtleShrZXlfZGVzYy5oaWRsX2RhdGEoKSwgZm9ybWF0LCBIaWRsQnVmKGtleV9tYXRlcmlhbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIGNvbnN0IEhpZGxCdWYmIGhpZGxfa2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmtleV9ibG9iID0gaGlkbF9rZXlfYmxvYjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2NoYXJhY3RlcmlzdGljcyA9IGhpZGxfa2V5X2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2IgJiBjaGFyYWN0ZXJpc3RpY3Mgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgKGtleV9jaGFyYWN0ZXJpc3RpY3MtPnNvZnR3YXJlRW5mb3JjZWQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3MtPnRlZUVuZm9yY2VkLnNpemUoKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgSW1wb3J0S2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGtleV9kZXNjLCBLZXlGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBrZXlfbWF0ZXJpYWwpIHsKKyAgICAgICAgcmV0dXJuIEltcG9ydEtleShrZXlfZGVzYywgZm9ybWF0LCBrZXlfbWF0ZXJpYWwsICZrZXlfYmxvYl8sICZrZXlfY2hhcmFjdGVyaXN0aWNzXyk7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgSGlkbEJ1ZiYgY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGlkbEJ1ZiYgYXBwX2RhdGEsIEhpZGxCdWYqIGtleV9tYXRlcmlhbCkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+ZXhwb3J0S2V5KGZvcm1hdCwga2V5X2Jsb2IsIGNsaWVudF9pZCwgYXBwX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yX2NvZGUsIGNvbnN0IEhpZGxCdWYmIGhpZGxfa2V5X21hdGVyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvcl9jb2RlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X21hdGVyaWFsID0gaGlkbF9rZXlfbWF0ZXJpYWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2Igc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfbWF0ZXJpYWwtPnNpemUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBFeHBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgSGlkbEJ1Zioga2V5X21hdGVyaWFsKSB7CisgICAgICAgIEhpZGxCdWYgY2xpZW50X2lkLCBhcHBfZGF0YTsKKyAgICAgICAgcmV0dXJuIEV4cG9ydEtleShmb3JtYXQsIGtleV9ibG9iXywgY2xpZW50X2lkLCBhcHBfZGF0YSwga2V5X21hdGVyaWFsKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlS2V5KEhpZGxCdWYqIGtleV9ibG9iLCBib29sIGtlZXBfa2V5X2Jsb2IgPSBmYWxzZSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBrZXltYXN0ZXJfLT5kZWxldGVLZXkoKmtleV9ibG9iKTsKKyAgICAgICAgaWYgKCFrZWVwX2tleV9ibG9iKSAqa2V5X2Jsb2IgPSBIaWRsQnVmKCk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlS2V5KGJvb2wga2VlcF9rZXlfYmxvYiA9IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBEZWxldGVLZXkoJmtleV9ibG9iXywga2VlcF9rZXlfYmxvYik7CisgICAgfQorCisgICAgRXJyb3JDb2RlIERlbGV0ZUFsbEtleXMoKSB7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IGtleW1hc3Rlcl8tPmRlbGV0ZUFsbEtleXMoKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBHZXRDaGFyYWN0ZXJpc3RpY3MoY29uc3QgSGlkbEJ1ZiYga2V5X2Jsb2IsIGNvbnN0IEhpZGxCdWYmIGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGFwcF9kYXRhLCBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBrZXltYXN0ZXJfLT5nZXRLZXlDaGFyYWN0ZXJpc3RpY3MoCisgICAgICAgICAgICBrZXlfYmxvYiwgY2xpZW50X2lkLCBhcHBfZGF0YSwKKyAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3IsICprZXlfY2hhcmFjdGVyaXN0aWNzID0gaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgR2V0Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgSGlkbEJ1ZiBjbGllbnRfaWQsIGFwcF9kYXRhOworICAgICAgICByZXR1cm4gR2V0Q2hhcmFjdGVyaXN0aWNzKGtleV9ibG9iLCBjbGllbnRfaWQsIGFwcF9kYXRhLCBrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zLCBPcGVyYXRpb25IYW5kbGUqIG9wX2hhbmRsZSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkJlZ2luIik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgT3BlcmF0aW9uSGFuZGxlIHNhdmVkX2hhbmRsZSA9ICpvcF9oYW5kbGU7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+YmVnaW4ocHVycG9zZSwga2V5X2Jsb2IsIGluX3BhcmFtcy5oaWRsX2RhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGhpZGxfb3BfaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRfcGFyYW1zID0gaGlkbF9vdXRfcGFyYW1zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvcF9oYW5kbGUgPSBoaWRsX29wX2hhbmRsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICAvLyBTb21lIGltcGxlbWVudGF0aW9ucyBtYXkgbW9kaWZ5ICpvcF9oYW5kbGUgb24gZXJyb3IuCisgICAgICAgICAgICAqb3BfaGFuZGxlID0gc2F2ZWRfaGFuZGxlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJCZWdpbiIpOworICAgICAgICBFWFBFQ1RfRVEoa09wSGFuZGxlU2VudGluZWwsIG9wX2hhbmRsZV8pOworICAgICAgICByZXR1cm4gQmVnaW4ocHVycG9zZSwga2V5X2Jsb2JfLCBpbl9wYXJhbXMsIG91dF9wYXJhbXMsICZvcF9oYW5kbGVfKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJCZWdpbiIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEJlZ2luKHB1cnBvc2UsIGluX3BhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIFVwZGF0ZShPcGVyYXRpb25IYW5kbGUgb3BfaGFuZGxlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGlucHV0LCBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zLCBzdHJpbmcqIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVfdCogaW5wdXRfY29uc3VtZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJVcGRhdGUiKTsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBFWFBFQ1RfVFJVRShrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgICAtPnVwZGF0ZShvcF9oYW5kbGUsIGluX3BhcmFtcy5oaWRsX2RhdGEoKSwgSGlkbEJ1ZihpbnB1dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIHVpbnQzMl90IGhpZGxfaW5wdXRfY29uc3VtZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGhpZGxfb3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9wYXJhbXMtPnB1c2hfYmFjayhBdXRob3JpemF0aW9uU2V0KGhpZGxfb3V0X3BhcmFtcykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC0+YXBwZW5kKGhpZGxfb3V0cHV0LnRvX3N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqaW5wdXRfY29uc3VtZWQgPSBoaWRsX2lucHV0X2NvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIFVwZGF0ZShjb25zdCBzdHJpbmcmIGlucHV0LCBzdHJpbmcqIG91dCwgc2l6ZV90KiBpbnB1dF9jb25zdW1lZCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIlVwZGF0ZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IFVwZGF0ZShvcF9oYW5kbGVfLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCBpbnB1dCwgJm91dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQsIGlucHV0X2NvbnN1bWVkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob3V0X3BhcmFtcy5lbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBGaW5pc2goT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBpbnB1dCwgY29uc3Qgc3RyaW5nJiBzaWduYXR1cmUsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+ZmluaXNoKG9wX2hhbmRsZSwgaW5fcGFyYW1zLmhpZGxfZGF0YSgpLCBIaWRsQnVmKGlucHV0KSwgSGlkbEJ1ZihzaWduYXR1cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIaWRsQnVmJiBoaWRsX291dHB1dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRfcGFyYW1zID0gaGlkbF9vdXRfcGFyYW1zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtPmFwcGVuZChoaWRsX291dHB1dC50b19zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOyAgLy8gU28gZHRvciBkb2Vzbid0IEFib3J0KCkuCisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRmluaXNoKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgc3RyaW5nKiBvdXRwdXQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJGaW5pc2giKTsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgICAgICBzdHJpbmcgZmluaXNoX291dHB1dDsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gRmluaXNoKG9wX2hhbmRsZV8sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiAvKiBzaWduYXR1cmUgKi8sICZvdXRfcGFyYW1zLCBvdXRwdXQpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgcmV0dXJuIGVycm9yOworICAgICAgICB9CisgICAgICAgIEVYUEVDVF9FUSgwVSwgb3V0X3BhcmFtcy5zaXplKCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEZpbmlzaChjb25zdCBzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IHN0cmluZyYgc2lnbmF0dXJlLCBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEZpbmlzaChvcF9oYW5kbGVfLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgb3V0cHV0KTsKKyAgICAgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOyAgLy8gU28gZHRvciBkb2Vzbid0IEFib3J0KCkuCisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKDBVLCBvdXRfcGFyYW1zLnNpemUoKSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQWJvcnQoT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkFib3J0Iik7CisgICAgICAgIGF1dG8gcmV0dmFsID0ga2V5bWFzdGVyXy0+YWJvcnQob3BfaGFuZGxlKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmV0dmFsLmlzT2soKSk7CisgICAgICAgIHJldHVybiByZXR2YWw7CisgICAgfQorCisgICAgdm9pZCBBYm9ydElmTmVlZGVkKCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkFib3J0SWZOZWVkZWQiKTsKKyAgICAgICAgaWYgKG9wX2hhbmRsZV8gIT0ga09wSGFuZGxlU2VudGluZWwpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBBYm9ydChvcF9oYW5kbGVfKSk7CisgICAgICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFcnJvckNvZGUgQXR0ZXN0S2V5KGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBhdHRlc3RfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+KiBjZXJ0X2NoYWluKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQXR0ZXN0S2V5Iik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAga2V5bWFzdGVyXy0+YXR0ZXN0S2V5KAorICAgICAgICAgICAga2V5X2Jsb2IsIGF0dGVzdF9wYXJhbXMuaGlkbF9kYXRhKCksCisgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgaGlkbF9jZXJ0X2NoYWluKSB7CisgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICpjZXJ0X2NoYWluID0gaGlkbF9jZXJ0X2NoYWluOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQXR0ZXN0S2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGF0dGVzdF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4qIGNlcnRfY2hhaW4pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJBdHRlc3RLZXkiKTsKKyAgICAgICAgcmV0dXJuIEF0dGVzdEtleShrZXlfYmxvYl8sIGF0dGVzdF9wYXJhbXMsIGNlcnRfY2hhaW4pOworICAgIH0KKworICAgIHN0cmluZyBQcm9jZXNzTWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgS2V5UHVycG9zZSBvcGVyYXRpb24sIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLCBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiUHJvY2Vzc01lc3NhZ2UiKTsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgIEJlZ2luKG9wZXJhdGlvbiwga2V5X2Jsb2IsIGluX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7CisKKyAgICAgICAgc3RyaW5nIHVudXNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBmaW5pc2hfcGFyYW1zOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgICAgICBzdHJpbmcgb3V0cHV0OworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCB1bnVzZWQsICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisKKyAgICAgICAgb3V0X3BhcmFtcy0+cHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworICAgICAgICBvdXRfcGFyYW1zLT5wdXNoX2JhY2soZmluaXNoX291dF9wYXJhbXMpOworICAgICAgICByZXR1cm4gb3V0cHV0OworICAgIH0KKworICAgIHN0cmluZyBTaWduTWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJTaWduTWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPSBQcm9jZXNzTWVzc2FnZShrZXlfYmxvYiwgS2V5UHVycG9zZTo6U0lHTiwgbWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIHJldHVybiBzaWduYXR1cmU7CisgICAgfQorCisgICAgc3RyaW5nIFNpZ25NZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiU2lnbk1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIFNpZ25NZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgTWFjTWVzc2FnZShjb25zdCBzdHJpbmcmIG1lc3NhZ2UsIERpZ2VzdCBkaWdlc3QsIHNpemVfdCBtYWNfbGVuZ3RoKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiTWFjTWVzc2FnZSIpOworICAgICAgICByZXR1cm4gU2lnbk1lc3NhZ2UoCisgICAgICAgICAgICBrZXlfYmxvYl8sIG1lc3NhZ2UsCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIG1hY19sZW5ndGgpKTsKKyAgICB9CisKKyAgICB2b2lkIENoZWNrSG1hY1Rlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgRGlnZXN0IGRpZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBleHBlY3RlZF9tYWMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0htYWNUZXN0VmVjdG9yIik7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIGV4cGVjdGVkX21hYy5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0gTWFjTWVzc2FnZShtZXNzYWdlLCBkaWdlc3QsIGV4cGVjdGVkX21hYy5zaXplKCkgKiA4KTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX21hYywgc2lnbmF0dXJlKSA8PCAiVGVzdCB2ZWN0b3IgZGlkbid0IG1hdGNoIGZvciBkaWdlc3QgIiA8PCAoaW50KWRpZ2VzdDsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorCisgICAgdm9pZCBDaGVja0Flc0N0clRlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbm9uY2UsIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGV4cGVjdGVkX2NpcGhlcnRleHQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0Flc0N0clRlc3RWZWN0b3IiKTsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleShrZXkuc2l6ZSgpICogOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKworICAgICAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBub25jZS5kYXRhKCksIG5vbmNlLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2Uoa2V5X2Jsb2JfLCBtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2NpcGhlcnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KKworICAgIHZvaWQgVmVyaWZ5TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBrZXlfYmxvYiwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgICAgICBzdHJpbmcgdW51c2VkOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9wYXJhbXM7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBvdXRwdXQ7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dHB1dC5lbXB0eSgpKTsKKyAgICB9CisKKyAgICB2b2lkIFZlcmlmeU1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBWZXJpZnlNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworICAgIH0KKworICAgIHN0cmluZyBFbmNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICByZXR1cm4gUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkVOQ1JZUFQsIG1lc3NhZ2UsIGluX3BhcmFtcywgb3V0X3BhcmFtcyk7CisgICAgfQorCisgICAgc3RyaW5nIEVuY3J5cHRNZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiRW5jcnlwdE1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIEVuY3J5cHRNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zLCBvdXRfcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgRW5jcnlwdE1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSkKKyAgICAgICAgICAgIDw8ICJPdXRwdXQgcGFyYW1zIHNob3VsZCBiZSBlbXB0eS4gQ29udGFpbmVkOiAiIDw8IG91dF9wYXJhbXM7CisgICAgICAgIHJldHVybiBjaXBoZXJ0ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBjaXBoZXJ0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJEZWNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPQorICAgICAgICAgICAgUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkRFQ1JZUFQsIGNpcGhlcnRleHQsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gcGxhaW50ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBzdHJpbmcmIGNpcGhlcnRleHQsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHBhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkRlY3J5cHRNZXNzYWdlIik7CisgICAgICAgIHJldHVybiBEZWNyeXB0TWVzc2FnZShrZXlfYmxvYl8sIGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20wQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTBDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsIHR0YWcsIGV4cGVjdGVkKSk7CisgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20xQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTFDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIHZvaWQgQ2hlY2tLbTJDcnlwdG9QYXJhbShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBWYWx1ZVQgZXhwZWN0ZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0ttMkNyeXB0b1BhcmFtIik7CisgICAgICAgIGlmIChzdXBwb3J0c19hdHRlc3RhdGlvbl8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIHR0YWcpKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3VwcG9ydHNfc3ltbWV0cmljXyAvKiBLTSB2ZXJzaW9uIDwgMSBvciBTVyAqLykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBDaGVja09yaWdpbigpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja09yaWdpbiIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgICAgICAgICBjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgVEFHX09SSUdJTiwgS2V5T3JpZ2luOjpJTVBPUlRFRCkpOworICAgICAgICB9IGVsc2UgaWYgKGlzX3NlY3VyZV8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCBUQUdfT1JJR0lOLCBLZXlPcmlnaW46OlVOS05PV04pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAgICAgIGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIFRBR19PUklHSU4sIEtleU9yaWdpbjo6SU1QT1JURUQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBib29sIElzU2VjdXJlKCkgeyByZXR1cm4gaXNfc2VjdXJlXzsgfQorICAgIHN0YXRpYyBib29sIFN1cHBvcnRzRWMoKSB7IHJldHVybiBzdXBwb3J0c19lY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c1N5bW1ldHJpYygpIHsgcmV0dXJuIHN1cHBvcnRzX3N5bW1ldHJpY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0FsbERpZ2VzdHMoKSB7IHJldHVybiBzdXBwb3J0c19hbGxfZGlnZXN0c187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgeyByZXR1cm4gc3VwcG9ydHNfYXR0ZXN0YXRpb25fOyB9CisKKyAgICBzdGF0aWMgYm9vbCBLbTJQcm9maWxlKCkgeworICAgICAgICByZXR1cm4gU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzQWxsRGlnZXN0cygpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYKKyAgICAgICAgICAgICAgIFN1cHBvcnRzRWMoKSAmJiBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIEttMVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYgU3VwcG9ydHNFYygpICYmIElzU2VjdXJlKCk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgS20wUHJvZmlsZSgpIHsKKyAgICAgICAgcmV0dXJuICFTdXBwb3J0c0F0dGVzdGF0aW9uKCkgJiYgIVN1cHBvcnRzQWxsRGlnZXN0cygpICYmICFTdXBwb3J0c1N5bW1ldHJpYygpICYmCisgICAgICAgICAgICAgICBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIFN3T25seVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmICFTdXBwb3J0c0FsbERpZ2VzdHMoKSAmJiAhU3VwcG9ydHNTeW1tZXRyaWMoKSAmJgorICAgICAgICAgICAgICAgIVN1cHBvcnRzRWMoKSAmJiAhSXNTZWN1cmUoKTsKKyAgICB9CisKKyAgICBIaWRsQnVmIGtleV9ibG9iXzsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5X2NoYXJhY3RlcmlzdGljc187CisgICAgT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBzcDxJS2V5bWFzdGVyRGV2aWNlPiBrZXltYXN0ZXJfOworICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uXzsKKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWxfOworCisgICAgc3RhdGljIGJvb2wgaXNfc2VjdXJlXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19lY187CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19hdHRlc3RhdGlvbl87CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworICAgIHN0YXRpYyBoaWRsX3N0cmluZyBuYW1lXzsKKyAgICBzdGF0aWMgaGlkbF9zdHJpbmcgYXV0aG9yXzsKK307CisKK2Jvb2wgdmVyaWZ5X2F0dGVzdGF0aW9uX3JlY29yZChjb25zdCBzdHJpbmcmIGNoYWxsZW5nZSwgY29uc3Qgc3RyaW5nJiBhcHBfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCBleHBlY3RlZF9zd19lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0IGV4cGVjdGVkX3RlZV9lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXR0ZXN0YXRpb25fY2VydCkgeworICAgIFg1MDlfUHRyIGNlcnQocGFyc2VfY2VydF9ibG9iKGF0dGVzdGF0aW9uX2NlcnQpKTsKKyAgICBFWFBFQ1RfVFJVRSghIWNlcnQuZ2V0KCkpOworICAgIGlmICghY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdF9yZWMgPSBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKGNlcnQuZ2V0KCkpOworICAgIEVYUEVDVF9UUlVFKCEhYXR0ZXN0X3JlYyk7CisgICAgaWYgKCFhdHRlc3RfcmVjKSByZXR1cm4gZmFsc2U7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF9zd19lbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF90ZWVfZW5mb3JjZWQ7CisgICAgdWludDMyX3QgYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgdWludDMyX3QgYXR0X2tleW1hc3Rlcl92ZXJzaW9uOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2F0dGVzdGF0aW9uX3NlY3VyaXR5X2xldmVsOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbDsKKyAgICBIaWRsQnVmIGF0dF9jaGFsbGVuZ2U7CisgICAgSGlkbEJ1ZiBhdHRfdW5pcXVlX2lkOworICAgIEhpZGxCdWYgYXR0X2FwcF9pZDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGF0dGVzdF9yZWMtPmRhdGEsICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0X3JlYy0+bGVuZ3RoLCAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb24sICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfY2hhbGxlbmdlLCAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9zd19lbmZvcmNlZCwgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X3RlZV9lbmZvcmNlZCwgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfdW5pcXVlX2lkKSk7CisKKyAgICBpZiAoYXR0X2tleW1hc3Rlcl92ZXJzaW9uID09IDMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDJVLCBhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDFVLCBhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbik7CisgICAgfQorCisgICAgZXhwZWN0ZWRfc3dfZW5mb3JjZWQucHVzaF9iYWNrKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkbEJ1ZihhcHBfaWQpKTsKKworICAgIGlmICghS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkpIHsKKyAgICAgICAgLy8gU1cgaXMgS00yCisgICAgICAgIEVYUEVDVF9FUShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBpZiAoS2V5bWFzdGVySGlkbFRlc3Q6OlN1cHBvcnRzU3ltbWV0cmljKCkpIHsKKyAgICAgICAgRVhQRUNUX0dFKGF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgMVUpOworICAgIH0KKworICAgIGlmIChLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIEVYUEVDVF9HRShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEoS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkgPyBTZWN1cml0eUxldmVsOjpUUlVTVEVEX0VOVklST05NRU5UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpOworICAgIEVYUEVDVF9FUShLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpID8gU2VjdXJpdHlMZXZlbDo6VFJVU1RFRF9FTlZJUk9OTUVOVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCk7CisKKyAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLmxlbmd0aCgpLCBhdHRfY2hhbGxlbmdlLnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChjaGFsbGVuZ2UuZGF0YSgpLCBhdHRfY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisKKyAgICBhdHRfc3dfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3N3X2VuZm9yY2VkLlNvcnQoKTsKKyAgICBFWFBFQ1RfRVEoZmlsdGVyX3RhZ3MoZXhwZWN0ZWRfc3dfZW5mb3JjZWQpLCBmaWx0ZXJfdGFncyhhdHRfc3dfZW5mb3JjZWQpKTsKKworICAgIGF0dF90ZWVfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3RlZV9lbmZvcmNlZC5Tb3J0KCk7CisgICAgRVhQRUNUX0VRKGZpbHRlcl90YWdzKGV4cGVjdGVkX3RlZV9lbmZvcmNlZCksIGZpbHRlcl90YWdzKGF0dF90ZWVfZW5mb3JjZWQpKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitzcDxJS2V5bWFzdGVyRGV2aWNlPiBLZXltYXN0ZXJIaWRsVGVzdDo6a2V5bWFzdGVyXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc192ZXJzaW9uXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc19wYXRjaF9sZXZlbF87Citib29sIEtleW1hc3RlckhpZGxUZXN0Ojppc19zZWN1cmVfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfZWNfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfc3ltbWV0cmljXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2FsbF9kaWdlc3RzXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2F0dGVzdGF0aW9uXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjpuYW1lXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjphdXRob3JfOworCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEtleW1hc3RlclZlcnNpb25UZXN0OworCisvKgorICogS2V5bWFzdGVyVmVyc2lvblRlc3QuU2Vuc2libGVGZWF0dXJlczoKKyAqCisgKiBRdWVyaWVzIGtleW1hc3RlciB0byBmaW5kIHRoZSBzZXQgb2YgZmVhdHVyZXMgaXQgc3VwcG9ydHMuIEZhaWxzIGlmIHRoZSBjb21iaW5hdGlvbiBkb2Vzbid0CisgKiBjb3JyZXNwb25kIHRvIGFueSB3ZWxsLWRlZmluZWQga2V5bWFzdGVyIHZlcnNpb24uCisgKi8KK1RFU1RfRihLZXltYXN0ZXJWZXJzaW9uVGVzdCwgU2Vuc2libGVGZWF0dXJlcykgeworICAgIEVYUEVDVF9UUlVFKEttMlByb2ZpbGUoKSB8fCBLbTFQcm9maWxlKCkgfHwgS20wUHJvZmlsZSgpIHx8IFN3T25seVByb2ZpbGUoKSkKKyAgICAgICAgPDwgIktleW1hc3RlciBmZWF0dXJlIHNldCBkb2Vzbid0IGZpdCBhbnkgcmVhc29uYWJsZSBwcm9maWxlLiAgUmVwb3J0ZWQgZmVhdHVyZXM6IgorICAgICAgICA8PCAiU3VwcG9ydHNBdHRlc3RhdGlvbiBbIiA8PCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzU3ltbWV0cmljIFsiIDw8IFN1cHBvcnRzU3ltbWV0cmljKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzQWxsRGlnZXN0cyBbIiA8PCBTdXBwb3J0c0FsbERpZ2VzdHMoKSA8PCAiXSwgIgorICAgICAgICA8PCAiU3VwcG9ydHNFYyBbIiA8PCBTdXBwb3J0c0VjKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIklzU2VjdXJlIFsiIDw8IElzU2VjdXJlKCkgPDwgIl0iOworfQorCitjbGFzcyBOZXdLZXlHZW5lcmF0aW9uVGVzdCA6IHB1YmxpYyBLZXltYXN0ZXJIaWRsVGVzdCB7CisgIHByb3RlY3RlZDoKKyAgICB2b2lkIENoZWNrQmFzZVBhcmFtcyhjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGtleUNoYXJhY3RlcmlzdGljcykgeworICAgICAgICAvLyBUT0RPKHN3aWxsZGVuKTogRGlzdGluZ3Vpc2ggd2hpY2ggcGFyYW1zIHNob3VsZCBiZSBpbiB3aGljaCBhdXRoIGxpc3QuCisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBhdXRocyhrZXlDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQpOworICAgICAgICBhdXRocy5wdXNoX2JhY2soQXV0aG9yaXphdGlvblNldChrZXlDaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZCkpOworCisgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PUklHSU4sIEtleU9yaWdpbjo6R0VORVJBVEVEKSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlNJR04pKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSkpOworICAgICAgICBFWFBFQ1RfVFJVRShhdXRocy5Db250YWlucyhUQUdfVVNFUl9JRCwgNykpCisgICAgICAgICAgICA8PCAiVXNlciBJRCBzaG91bGQgYmUgNywgd2FzICIgPDwgYXV0aHMuR2V0VGFnVmFsdWUoVEFHX1VTRVJfSUQpOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IEFwcCBJRCwgQXBwIGRhdGEgYW5kIFJPVCBhcmUgTk9UIGluY2x1ZGVkLgorICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1JPT1RfT0ZfVFJVU1QpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BUFBMSUNBVElPTl9JRCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX0FQUExJQ0FUSU9OX0RBVEEpKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHNvbWUgdW5leHBlY3RlZCB0YWdzL3ZhbHVlcyBhcmUgTk9UIHByZXNlbnQuCisgICAgICAgIEVYUEVDVF9GQUxTRShhdXRocy5Db250YWlucyhUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BVVRIX1RJTUVPVVQsIDMwMSkpOworCisgICAgICAgIC8vIE5vdyBjaGVjayB0aGF0IHVuc3BlY2lmaWVkLCBkZWZhdWx0ZWQgdGFncyBhcmUgY29ycmVjdC4KKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX0NSRUFUSU9OX0RBVEVUSU1FKSk7CisKKyAgICAgICAgaWYgKFN1cHBvcnRzQXR0ZXN0YXRpb24oKSkgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX09TX1ZFUlNJT04sIG9zX3ZlcnNpb24oKSkpCisgICAgICAgICAgICAgICAgPDwgIk9TIHZlcnNpb24gaXMgIiA8PCBvc192ZXJzaW9uKCkgPDwgIiBrZXkgcmVwb3J0ZWQgIgorICAgICAgICAgICAgICAgIDw8IGF1dGhzLkdldFRhZ1ZhbHVlKFRBR19PU19WRVJTSU9OKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PU19QQVRDSExFVkVMLCBvc19wYXRjaF9sZXZlbCgpKSkKKyAgICAgICAgICAgICAgICA8PCAiT1MgcGF0Y2ggbGV2ZWwgaXMgIiA8PCBvc19wYXRjaF9sZXZlbCgpIDw8ICIga2V5IHJlcG9ydGVkICIKKyAgICAgICAgICAgICAgICA8PCBhdXRocy5HZXRUYWdWYWx1ZShUQUdfT1NfUEFUQ0hMRVZFTCk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuUnNhCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgY2FuIGdlbmVyYXRlIGFsbCByZXF1aXJlZCBSU0Ega2V5IHNpemVzLCBhbmQgdGhhdCB0aGUgcmVzdWx0aW5nIGtleXMgaGF2ZQorICogY29ycmVjdCBjaGFyYWN0ZXJpc3RpY3MuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezEwMjQsIDIwNDgsIDMwNzIsIDQwOTZ9KSB7CisgICAgICAgIEhpZGxCdWYga2V5X2Jsb2I7CisgICAgICAgIEtleUNoYXJhY3RlcmlzdGljcyBrZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KGtleV9zaXplLCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9ucyhVc2VyQXV0aHMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKSk7CisKKyAgICAgICAgQVNTRVJUX0dUKGtleV9ibG9iLnNpemUoKSwgMFUpOworICAgICAgICBDaGVja0Jhc2VQYXJhbXMoa2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBjcnlwdG9fcGFyYW1zOworICAgICAgICBpZiAoSXNTZWN1cmUoKSkgeworICAgICAgICAgICAgY3J5cHRvX3BhcmFtcyA9IGtleV9jaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICB9CisKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBLTV9BTEdPUklUSE1fUlNBKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNyeXB0b19wYXJhbXMuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkpOworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgma2V5X2Jsb2IpKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5Sc2FOb0RlZmF1bHRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYSBrZXkgc2l6ZSBmb3IgUlNBIGtleSBnZW5lcmF0aW9uIHJldHVybnMgVU5TVVBQT1JURURfS0VZX1NJWkUuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhTm9EZWZhdWx0U2l6ZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9TSVpFLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OlJTQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKSkpOworfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2EKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBjYW4gZ2VuZXJhdGUgYWxsIHJlcXVpcmVkIEVDIGtleSBzaXplcywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUKKyAqIGNvcnJlY3QgY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezIyNCwgMjU2LCAzODQsIDUyMX0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbnMoVXNlckF1dGhzKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9ibG9iLCAma2V5X2NoYXJhY3RlcmlzdGljcykpOworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGNyeXB0b19wYXJhbXM7CisgICAgICAgIGlmIChJc1NlY3VyZSgpKSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNyeXB0b19wYXJhbXMgPSBrZXlfY2hhcmFjdGVyaXN0aWNzLnNvZnR3YXJlRW5mb3JjZWQ7CisgICAgICAgIH0KKworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgma2V5X2Jsb2IpKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYURlZmF1bHRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYSBrZXkgc2l6ZSBmb3IgRUMga2V5IGdlbmVyYXRpb24gcmV0dXJucyBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYURlZmF1bHRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuU2lnbmluZ0tleSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkVjZHNhSW52YWxpZFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGZhaWxpbmcgdG8gc3BlY2lmeSBhbiBpbnZhbGlkIGtleSBzaXplIGZvciBFQyBrZXkgZ2VuZXJhdGlvbiByZXR1cm5zCisgKiBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYUludmFsaWRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRWNkc2FTaWduaW5nS2V5KDE5MCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkVjZHNhTWlzbWF0Y2hLZXlTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBzcGVjaWZ5aW5nIG1pc21hdGNoZWQga2V5IHNpemUgYW5kIGN1cnZlIGZvciBFQyBrZXkgZ2VuZXJhdGlvbiByZXR1cm5zCisgKiBJTlZBTElEX0FSR1VNRU5ULgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhTWlzbWF0Y2hLZXlTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfRUNfQ1VSVkUsIEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMzQzKSI7Cit9CisKK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FBbGxWYWxpZFNpemVzKSB7CisgICAgc2l6ZV90IHZhbGlkX3NpemVzW10gPSB7MjI0LCAyNTYsIDM4NCwgNTIxfTsKKyAgICBmb3IgKHNpemVfdCBzaXplIDogdmFsaWRfc2l6ZXMpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkVjZHNhU2lnbmluZ0tleShzaXplKS5EaWdlc3QoRGlnZXN0OjpOT05FKSkpCisgICAgICAgICAgICA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIHNpemU6ICIgPDwgc2l6ZTsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2FBbGxWYWxpZEN1cnZlcworICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHN1cHBvcnRzIGFsbCByZXF1aXJlZCBFQyBjdXJ2ZXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FBbGxWYWxpZEN1cnZlcykgeworICAgIEVjQ3VydmUgY3VydmVzW10gPSB7RWNDdXJ2ZTo6UF8yMjQsIEVjQ3VydmU6OlBfMjU2LCBFY0N1cnZlOjpQXzM4NCwgRWNDdXJ2ZTo6UF81MjF9OworICAgIGZvciAoYXV0byBjdXJ2ZSA6IGN1cnZlcykgeworICAgICAgICBFWFBFQ1RfRVEoCisgICAgICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2RzYVNpZ25pbmdLZXkoY3VydmUpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzUxMikpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgb24gY3VydmU6ICIgPDwgY3VydmU7CisgICAgICAgIERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgZGlnZXN0cywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUgY29ycmVjdAorICogY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6TUQ1LCBEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LCBEaWdlc3Q6OlNIQV8yXzI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3Qga2V5X3NpemUgPSAxMjg7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5X3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb25zKFVzZXJBdXRocygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfYmxvYiwgJmtleV9jaGFyYWN0ZXJpc3RpY3MpKTsKKworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IHRlZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBzb2Z0d2FyZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICBpZiAoU3VwcG9ydHNBdHRlc3RhdGlvbigpIHx8IFN1cHBvcnRzQWxsRGlnZXN0cygpKSB7CisgICAgICAgICAgICAvLyBFaXRoZXIgS00yLCB3aGljaCBtdXN0IHN1cHBvcnQgYWxsLCBvciBLTTEgdGhhdCBjbGFpbXMgZnVsbCBzdXBwb3J0CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSh0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgfSBlbHNlIGlmIChTdXBwb3J0c1N5bW1ldHJpYygpKSB7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6U0hBMSB8fCBkaWdlc3QgPT0gRGlnZXN0OjpTSEFfMl8yNTYpIHsKKyAgICAgICAgICAgICAgICAvLyBLTTEgbXVzdCBzdXBwb3J0IFNIQTEgYW5kIFNIQTI1NiBpbiBoYXJkd2FyZQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gT3RoZXJlIGRpZ2VzdHMgbWF5IG9yIG1heSBub3QgYmUgc3VwcG9ydGVkCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEtNMCBhbmQgU1cgS00gZG8gYWxsIGRpZ2VzdHMgaW4gU1cuCisgICAgICAgICAgICBFWFBFQ1RfVFJVRShzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc29mdHdhcmVFbmZvcmNlZC5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisgICAgICAgIH0KKworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCZrZXlfYmxvYikpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja0tleVNpemVzCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgc3VwcG9ydHMgYWxsIGtleSBzaXplcywgYW5kIHJlamVjdHMgYWxsIGludmFsaWQga2V5IHNpemVzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWNDaGVja0tleVNpemVzKSB7CisgICAgZm9yIChzaXplX3Qga2V5X3NpemUgPSAwOyBrZXlfc2l6ZSA8PSA1MTI7ICsra2V5X3NpemUpIHsKKyAgICAgICAgaWYgKGtleV9zaXplIDwgNjQgfHwga2V5X3NpemUgJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBzbG93LCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGtleSBzaXplcy4gIFdlIHRlc3Qgb25seSB+MTAlIG9mIHN1Y2ggY2FzZXMuIFNpbmNlIHRoZXJlIGFyZSAzOTIgb2YgdGhlbSwgd2UgZXhwZWN0CisgICAgICAgICAgICAvLyB0byBydW4gfjQwIG9mIHRoZW0gaW4gZWFjaCBydW4uCisgICAgICAgICAgICBpZiAoa2V5X3NpemUgJSA4ID09IDAgfHwgcmFuZG9tKCkgJSAxMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleV9zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMjU2KSkpCisgICAgICAgICAgICAgICAgICAgIDw8ICJITUFDIGtleSBzaXplICIgPDwga2V5X3NpemUgPDwgIiBpbnZhbGlkIChQb3NzaWJseSBiLzMzNDYyMzQ2KSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAyNTYpKSk7CisgICAgICAgICAgICBEZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja01pbk1hY0xlbmd0aHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgTUFDIGxlbmd0aHMgYW5kIHJlamVjdHMgYWxsIGludmFsaWQgbGVuZ3Rocy4gIFRoaXMKKyAqIHRlc3QgaXMgcHJvYmFiaWxpc3RpYyBpbiBvcmRlciB0byBrZWVwIHRoZSBydW50aW1lIGRvd24sIGJ1dCBhbnkgZmFpbHVyZSBwcmludHMgb3V0IHRoZSBzcGVjaWZpYworICogTUFDIGxlbmd0aCB0aGF0IGZhaWxlZCwgc28gcmVwcm9kdWNpbmcgYSBmYWlsZWQgcnVuIHdpbGwgYmUgZWFzeS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjQ2hlY2tNaW5NYWNMZW5ndGhzKSB7CisgICAgZm9yIChzaXplX3QgbWluX21hY19sZW5ndGggPSAwOyBtaW5fbWFjX2xlbmd0aCA8PSAyNTY7ICsrbWluX21hY19sZW5ndGgpIHsKKyAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoIDwgNjQgfHwgbWluX21hY19sZW5ndGggJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBsb25nLCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGxlbmd0aHMuICBXZSB0ZXN0IG9ubHkgfjEwJSBvZiBzdWNoIGNhc2VzLiBTaW5jZSB0aGVyZSBhcmUgMTcyIG9mIHRoZW0sIHdlIGV4cGVjdCB0bworICAgICAgICAgICAgLy8gcnVuIH4xNyBvZiB0aGVtIGluIGVhY2ggcnVuLgorICAgICAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoICUgOCA9PSAwIHx8IHJhbmRvbSgpICUgMTAgPT0gMCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX01JTl9NQUNfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCBtaW5fbWFjX2xlbmd0aCkpKQorICAgICAgICAgICAgICAgICAgICA8PCAiSE1BQyBtaW4gbWFjIGxlbmd0aCAiIDw8IG1pbl9tYWNfbGVuZ3RoIDw8ICIgaW52YWxpZC4iOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgbWluX21hY19sZW5ndGgpKSk7CisgICAgICAgICAgICBEZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNNdWx0aXBsZURpZ2VzdHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciByZWplY3RzIEhNQUMga2V5IGdlbmVyYXRpb24gd2l0aCBtdWx0aXBsZSBzcGVjaWZpZWQgZGlnZXN0IGFsZ29yaXRobXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgSG1hY011bHRpcGxlRGlnZXN0cykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0RJR0VTVCwKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5IbWFjRGlnZXN0Tm9uZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHJlamVjdHMgSE1BQyBrZXkgZ2VuZXJhdGlvbiB3aXRoIG5vIGRpZ2VzdCBvciBEaWdlc3Q6Ok5PTkUKKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjRGlnZXN0Tm9uZSkgeworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuSG1hY0tleSgxMjgpLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgR2V0S2V5Q2hhcmFjdGVyaXN0aWNzVGVzdDsKKworLyoKKyAqIEdldEtleUNoYXJhY3RlcmlzdGljc1Rlc3QuSG1hY0RpZ2VzdE5vbmUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGdldEtleUNoYXJhY3RlcmlzdGljcyBmdW5jdGlvbnMsIGFuZCB0aGF0IGdlbmVyYXRlZCBhbmQgcmV0cmlldmVkIGtleQorICogY2hhcmFjdGVyaXN0aWNzIG1hdGNoLgorICovCitURVNUX0YoR2V0S2V5Q2hhcmFjdGVyaXN0aWNzVGVzdCwgU2ltcGxlUnNhKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDI1NiwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3MgcmV0cmlldmVkX2NoYXJzOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZXRDaGFyYWN0ZXJpc3RpY3Moa2V5X2Jsb2JfLCAmcmV0cmlldmVkX2NoYXJzKSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGdlbl9zdyA9IGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCBnZW5fdGVlID0ga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCByZXRyaWV2ZWRfc3cgPSByZXRyaWV2ZWRfY2hhcnMuc29mdHdhcmVFbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHJldHJpZXZlZF90ZWUgPSByZXRyaWV2ZWRfY2hhcnMudGVlRW5mb3JjZWQ7CisKKyAgICBFWFBFQ1RfRVEoZ2VuX3N3LCByZXRyaWV2ZWRfc3cpOworICAgIEVYUEVDVF9FUShnZW5fdGVlLCByZXRyaWV2ZWRfdGVlKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBTaWduaW5nT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzU2hhMjU2U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLVBTUyBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQc3NTaGEyNTZTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKyAgICAvLyBVc2UgbGFyZ2UgbWVzc2FnZSwgd2hpY2ggd29uJ3Qgd29yayB3aXRob3V0IGRpZ2VzdGluZy4KKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0LCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQYWRkaW5nTm9uZURvZXNOb3RBbGxvd090aGVyCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgcmVqZWN0cyBzaWduYXR1cmUgb3BlcmF0aW9ucyB0aGF0IHNwZWNpZnkgYSBwYWRkaW5nIG1vZGUgd2hlbiB0aGUga2V5CisgKiBzdXBwb3J0cyBvbmx5IHVucGFkZGVkIG9wZXJhdGlvbnMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBhZGRpbmdOb25lRG9lc05vdEFsbG93T3RoZXIpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgc3RyaW5nIHNpZ25hdHVyZTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QQURESU5HX01PREUsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMVNoYTI1NlN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGRpZ2VzdGVkIFJTQS1QS0NTMSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQa2NzMVNoYTI1NlN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlID0gU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMU5vRGlnZXN0U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUEtDUzEgc2lnbmF0dXJlIG9wZXJhdGlvbnMgc3VjY2VlZC4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGtjczFOb0RpZ2VzdFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDUzLCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMU5vRGlnZXN0VG9vTGFyZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHVuZGlnZXN0ZWQgUlNBLVBLQ1MxIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIGdpdmVuIGEgdG9vLWxvbmcgbWVzc2FnZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGtjczFOb0RpZ2VzdFRvb0xvbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDEyOSwgJ2EnKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIHNpZ25hdHVyZTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZzaWduYXR1cmUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQc3NTaGE1MTJUb29TbWFsbEtleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUFNTIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIHVzZWQgd2l0aCBhIGtleSB0aGF0IGlzIHRvbyBzbWFsbCBmb3IgdGhlIG1lc3NhZ2UuCisgKgorICogQSBQU1MtcGFkZGVkIG1lc3NhZ2UgaXMgb2YgbGVuZ3RoIHNhbHRfc2l6ZSArIGRpZ2VzdF9zaXplICsgMTYgKHNpemVzIGluIGJpdHMpLCBhbmQgdGhlIGtleW1hc3RlcgorICogc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGF0IHNhbHRfc2l6ZSA9PSBkaWdlc3Rfc2l6ZSwgc28gdGhlIG1lc3NhZ2Ugd2lsbCBiZSBkaWdlc3Rfc2l6ZSAqIDIgKworICogMTYuIFN1Y2ggYSBtZXNzYWdlIGNhbiBvbmx5IGJlIHNpZ25lZCBieSBhIGdpdmVuIGtleSBpZiB0aGUga2V5IGlzIGF0IGxlYXN0IHRoYXQgc2l6ZS4gVGhpcyB0ZXN0CisgKiB1c2VzIFNIQTUxMiwgd2hpY2ggaGFzIGEgZGlnZXN0X3NpemUgPT0gNTEyLCBzbyB0aGUgbWVzc2FnZSBzaXplIGlzIDEwNDAgYml0cywgdG9vIGxhcmdlIGZvciBhCisgKiAxMDI0LWJpdCBrZXkuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBzc1NoYTUxMlRvb1NtYWxsS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl81MTIpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzMzQ2NzUwKSI7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nVG9vTG9uZworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucyBmYWlsIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgY29kZSB3aGVuCisgKiBnaXZlbiBhIHRvby1sb25nIG1lc3NhZ2UuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Rvb0xvbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIC8vIE9uZSBieXRlIHRvbyBsb25nCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggKyAxLCAnYScpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKworICAgIC8vIFZlcnkgbGFyZ2UgbWVzc2FnZSB0aGF0IHNob3VsZCBleGNlZWQgdGhlIHRyYW5zZmVyIGJ1ZmZlciBzaXplIG9mIGFueSByZWFzb25hYmxlIFRFRS4KKyAgICBtZXNzYWdlID0gc3RyaW5nKDEyOCAqIDEwMjQsICdhJyk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FBYm9ydAorICoKKyAqIFZlcmlmaWVzIHRoYXQgb3BlcmF0aW9ucyBjYW4gYmUgYWJvcnRlZCBjb3JyZWN0bHkuICBVc2VzIGFuIFJTQSBzaWduaW5nIG9wZXJhdGlvbiBmb3IgdGhlIHRlc3QsCisgKiBidXQgdGhlIGJlaGF2aW9yIHNob3VsZCBiZSBhbGdvcml0aG0gYW5kIHB1cnBvc2UtaW5kZXBlbmRlbnQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYUFib3J0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBBYm9ydChvcF9oYW5kbGVfKSk7CisKKyAgICAvLyBBbm90aGVyIGFib3J0IHNob3VsZCBmYWlsCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9PUEVSQVRJT05fSEFORExFLCBBYm9ydChvcF9oYW5kbGVfKSk7CisKKyAgICAvLyBTZXQgdG8gc2VudGluZWwsIHNvIFRlYXJEb3duKCkgZG9lc24ndCB0cnkgdG8gYWJvcnQgYWdhaW4uCisgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVVuc3VwcG9ydGVkUGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIG9wZXJhdGlvbnMgZmFpbCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIChidXQga2V5IGdlbiBzdWNjZWVkcykgd2hlbiB1c2VkIHdpdGggYQorICogcGFkZGluZyBtb2RlIGluYXBwcm9wcmlhdGUgZm9yIFJTQS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhVW5zdXBwb3J0ZWRQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYgLyogc3VwcG9ydGVkIGRpZ2VzdCAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfUEFERElOR19NT0RFLAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzTm9EaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQU1Mgb3BlcmF0aW9ucyBmYWlsIHdoZW4gbm8gZGlnZXN0IGlzIHVzZWQuICBQU1MgcmVxdWlyZXMgYSBkaWdlc3QuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vRGlnZXN0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSkpOworCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfRElHRVNULAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzTm9EaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBvcGVyYXRpb25zIGZhaWwgd2hlbiBubyBwYWRkaW5nIG1vZGUgaXMgc3BlY2lmaWVkLiAgUGFkZGluZ01vZGU6Ok5PTkUgaXMKKyAqIHN1cHBvcnRlZCBpbiBzb21lIGNhc2VzIChhcyB2YWxpZGF0ZWQgaW4gb3RoZXIgdGVzdHMpLCBidXQgYSBtb2RlIG11c3QgYmUgc3BlY2lmaWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmcpIHsKKyAgICAvLyBQYWRkaW5nIG11c3QgYmUgc3BlY2lmaWVkCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfUEFERElOR19NT0RFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhU2hvcnRNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIHNpZ25hdHVyZXMgc3VjY2VlZCB3aXRoIGEgbWVzc2FnZSBzaG9ydGVyIHRoYW4gdGhlIGtleSBzaXplLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FUb29TaG9ydE1lc3NhZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIC8vIEJhcmVseSBzaG9ydGVyCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggLSAxLCAnYScpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpOworCisgICAgLy8gTXVjaCBzaG9ydGVyCisgICAgbWVzc2FnZSA9ICJhIjsKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaWduV2l0aEVuY3J5cHRpb25LZXkKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBlbmNyeXB0aW9uIGtleXMgY2Fubm90IGJlIHVzZWQgdG8gc2lnbi4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhU2lnbldpdGhFbmNyeXB0aW9uS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX1BVUlBPU0UsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaWduVG9vTGFyZ2VNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIGEgcmF3IHNpZ25hdHVyZSBvZiBhIG1lc3NhZ2Ugd2hpY2ggaXMgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBrZXksIGJ1dAorICogbnVtZXJpY2FsbHkgbGFyZ2VyIHRoYW4gdGhlIHB1YmxpYyBtb2R1bHVzLCBmYWlscyB3aXRoIHRoZSBjb3JyZWN0IGVycm9yLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTaWduVG9vTGFyZ2VNZXNzYWdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICAvLyBMYXJnZXN0IHBvc3NpYmxlIG1lc3NhZ2Ugd2lsbCBhbHdheXMgYmUgbGFyZ2VyIHRoYW4gdGhlIHB1YmxpYyBtb2R1bHVzLgorICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCBzdGF0aWNfY2FzdDxjaGFyPigweGZmKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklOVkFMSURfQVJHVU1FTlQsIEZpbmlzaChtZXNzYWdlLCAmc2lnbmF0dXJlKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxTaXplc0FuZEhhc2hlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgRUNEU0Egb3BlcmF0aW9ucyBzdWNjZWVkIHdpdGggYWxsIHBvc3NpYmxlIGtleSBzaXplcyBhbmQgaGFzaGVzLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBFY2RzYUFsbFNpemVzQW5kSGFzaGVzKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezIyNCwgMjU2LCAzODQsIDUyMX0pIHsKKyAgICAgICAgZm9yIChhdXRvIGRpZ2VzdCA6IHsKKyAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LAorICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzUxMiwKKyAgICAgICAgICAgICB9KSB7CisgICAgICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCkpOworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGVycm9yKSA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIEVDRFNBIGtleSB3aXRoIHNpemUgIiA8PCBrZXlfc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGFuZCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlKDEwMjQsICdhJyk7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6Tk9ORSkgbWVzc2FnZS5yZXNpemUoa2V5X3NpemUgLyA4KTsKKyAgICAgICAgICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkpOworICAgICAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxDdXJ2ZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEVDRFNBIG9wZXJhdGlvbnMgc3VjY2VlZCB3aXRoIGFsbCBwb3NzaWJsZSBjdXJ2ZXMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhQWxsQ3VydmVzKSB7CisgICAgZm9yIChhdXRvIGN1cnZlIDoge0VjQ3VydmU6OlBfMjI0LCBFY0N1cnZlOjpQXzI1NiwgRWNDdXJ2ZTo6UF8zODQsIEVjQ3VydmU6OlBfNTIxfSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoY3VydmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBFQ0RTQSBrZXkgd2l0aCBjdXJ2ZSAiIDw8IGN1cnZlOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICAgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpKTsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkVjZHNhTm9EaWdlc3RIdWdlRGF0YQorICoKKyAqIFZlcmlmaWVzIHRoYXQgRUNEU0Egb3BlcmF0aW9ucyBzdXBwb3J0IHZlcnkgbGFyZ2UgbWVzc2FnZXMsIGV2ZW4gd2l0aG91dCBkaWdlc3RpbmcuICBUaGlzIHNob3VsZAorICogd29yayBiZWNhdXNlIEVDRFNBIGFjdHVhbGx5IG9ubHkgc2lnbnMgdGhlIGxlZnRtb3N0IExfbiBiaXRzIG9mIHRoZSBtZXNzYWdlLCBob3dldmVyIGxhcmdlIGl0IG1heQorICogYmUuICBOb3QgdXNpbmcgZGlnZXN0aW5nIGlzIGEgYmFkIGlkZWEsIGJ1dCBpbiBzb21lIGNhc2VzIGRpZ2VzdGluZyBpcyBkb25lIGJ5IHRoZSBmcmFtZXdvcmsuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhTm9EaWdlc3RIdWdlRGF0YSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoNjQgKiAxMDI0LCAnYScpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkFlc0VjYlNpZ24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRzIHRvIHVzZSBBRVMga2V5cyB0byBzaWduIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBBZXNFY2JTaWduKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKSkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjI1Mjk1NykiOworCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sICZvdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMTg3KSI7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sICZvdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMTg3KSI7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuSG1hY0FsbERpZ2VzdHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEhNQUMgd29ya3Mgd2l0aCBhbGwgZGlnZXN0cy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY0FsbERpZ2VzdHMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6U0hBMSwgRGlnZXN0OjpTSEFfMl8yMjQsIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfNTEyfSkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDE2MCkpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBjcmVhdGUgSE1BQyBrZXkgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICAgICAgc3RyaW5nIHNpZ25hdHVyZSA9IE1hY01lc3NhZ2UobWVzc2FnZSwgZGlnZXN0LCAxNjApOworICAgICAgICBFWFBFQ1RfRVEoMTYwVSAvIDhVLCBzaWduYXR1cmUuc2l6ZSgpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBzaWduIHdpdGggSE1BQyBrZXkgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjU2hhMjU2VG9vTGFyZ2VNYWNMZW5ndGgKKyAqCisgKiBWZXJpZmllcyB0aGF0IEhNQUMgZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZ2VuZXJhdGUgYSBNQUMgbGFyZ2VyIHRoYW4gdGhlIGRpZ2VzdAorICogc2l6ZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1NoYTI1NlRvb0xhcmdlTWFjTGVuZ3RoKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMjU2KSkpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0cHV0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfTUFDX0xFTkdUSCwKKyAgICAgICAgQmVnaW4oCisgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMjY0KSwKKyAgICAgICAgICAgICZvdXRwdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNTaGEyNTZUb29TbWFsbE1hY0xlbmd0aAorICoKKyAqIFZlcmlmaWVzIHRoYXQgSE1BQyBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBnZW5lcmF0ZSBhIE1BQyBzbWFsbGVyIHRoYW4gdGhlCisgKiBzcGVjaWZpZWQgbWluaW11bSBNQUMgbGVuZ3RoLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjU2hhMjU2VG9vU21hbGxNYWNMZW5ndGgpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisgICAgQXV0aG9yaXphdGlvblNldCBvdXRwdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX01BQ19MRU5HVEgsCisgICAgICAgIEJlZ2luKAorICAgICAgICAgICAgS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyMCksCisgICAgICAgICAgICAmb3V0cHV0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlMworICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgMy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTMpIHsKKyAgICBzdHJpbmcga2V5KDIwLCAweGFhKTsKKyAgICBzdHJpbmcgbWVzc2FnZSg1MCwgMHhkZCk7CisgICAgdWludDhfdCBzaGFfMjI0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4N2YsIDB4YjMsIDB4Y2IsIDB4MzUsIDB4ODgsIDB4YzYsIDB4YzEsIDB4ZjYsIDB4ZmYsIDB4YTksIDB4NjksIDB4NGQsIDB4N2QsIDB4NmEsCisgICAgICAgIDB4ZDIsIDB4NjQsIDB4OTMsIDB4NjUsIDB4YjAsIDB4YzEsIDB4ZjYsIDB4NWQsIDB4NjksIDB4ZDEsIDB4ZWMsIDB4ODMsIDB4MzMsIDB4ZWEsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8yNTZfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg3NywgMHgzZSwgMHhhOSwgMHgxZSwgMHgzNiwgMHg4MCwgMHgwZSwgMHg0NiwgMHg4NSwgMHg0ZCwgMHhiOCwKKyAgICAgICAgMHhlYiwgMHhkMCwgMHg5MSwgMHg4MSwgMHhhNywgMHgyOSwgMHg1OSwgMHgwOSwgMHg4YiwgMHgzZSwgMHhmOCwKKyAgICAgICAgMHhjMSwgMHgyMiwgMHhkOSwgMHg2MywgMHg1NSwgMHgxNCwgMHhjZSwgMHhkNSwgMHg2NSwgMHhmZSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzM4NF9leHBlY3RlZFtdID0geworICAgICAgICAweDg4LCAweDA2LCAweDI2LCAweDA4LCAweGQzLCAweGU2LCAweGFkLCAweDhhLCAweDBhLCAweGEyLCAweGFjLCAweGUwLAorICAgICAgICAweDE0LCAweGM4LCAweGE4LCAweDZmLCAweDBhLCAweGE2LCAweDM1LCAweGQ5LCAweDQ3LCAweGFjLCAweDlmLCAweGViLAorICAgICAgICAweGU4LCAweDNlLCAweGY0LCAweGU1LCAweDU5LCAweDY2LCAweDE0LCAweDRiLCAweDJhLCAweDVhLCAweGIzLCAweDlkLAorICAgICAgICAweGMxLCAweDM4LCAweDE0LCAweGI5LCAweDRlLCAweDNhLCAweGI2LCAweGUxLCAweDAxLCAweGEzLCAweDRmLCAweDI3LAorICAgIH07CisgICAgdWludDhfdCBzaGFfNTEyX2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4ZmEsIDB4NzMsIDB4YjAsIDB4MDgsIDB4OWQsIDB4NTYsIDB4YTIsIDB4ODQsIDB4ZWYsIDB4YjAsIDB4ZjAsIDB4NzUsIDB4NmMsCisgICAgICAgIDB4ODksIDB4MGIsIDB4ZTksIDB4YjEsIDB4YjUsIDB4ZGIsIDB4ZGQsIDB4OGUsIDB4ZTgsIDB4MWEsIDB4MzYsIDB4NTUsIDB4ZjgsCisgICAgICAgIDB4M2UsIDB4MzMsIDB4YjIsIDB4MjcsIDB4OWQsIDB4MzksIDB4YmYsIDB4M2UsIDB4ODQsIDB4ODIsIDB4NzksIDB4YTcsIDB4MjIsCisgICAgICAgIDB4YzgsIDB4MDYsIDB4YjQsIDB4ODUsIDB4YTQsIDB4N2UsIDB4NjcsIDB4YzgsIDB4MDcsIDB4YjksIDB4NDYsIDB4YTMsIDB4MzcsCisgICAgICAgIDB4YmUsIDB4ZTgsIDB4OTQsIDB4MjYsIDB4NzQsIDB4MjcsIDB4ODgsIDB4NTksIDB4ZTEsIDB4MzIsIDB4OTIsIDB4ZmIsCisgICAgfTsKKworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzIyNCwgbWFrZV9zdHJpbmcoc2hhXzIyNF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzI1NiwgbWFrZV9zdHJpbmcoc2hhXzI1Nl9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzM4NCwgbWFrZV9zdHJpbmcoc2hhXzM4NF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzUxMiwgbWFrZV9zdHJpbmcoc2hhXzUxMl9leHBlY3RlZCkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNSZmM0MjMxVGVzdENhc2U1CisgKgorICogVmFsaWRhdGVzIGFnYWluc3QgdGhlIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0MjMxIHRlc3QgY2FzZSA1LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjUmZjNDIzMVRlc3RDYXNlNSkgeworICAgIHN0cmluZyBrZXkoMjAsIDB4MGMpOworICAgIHN0cmluZyBtZXNzYWdlID0gIlRlc3QgV2l0aCBUcnVuY2F0aW9uIjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDBlLCAweDJhLCAweGVhLCAweDY4LCAweGE5LCAweDBjLCAweDhkLCAweDM3LAorICAgICAgICAweGM5LCAweDg4LCAweGJjLCAweGRiLCAweDlmLCAweGNhLCAweDZmLCAweGE4LAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4YTMsIDB4YjYsIDB4MTYsIDB4NzQsIDB4NzMsIDB4MTAsIDB4MGUsIDB4ZTAsCisgICAgICAgIDB4NmUsIDB4MGMsIDB4NzksIDB4NmMsIDB4MjksIDB4NTUsIDB4NTUsIDB4MmIsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHgzYSwgMHhiZiwgMHgzNCwgMHhjMywgMHg1MCwgMHgzYiwgMHgyYSwgMHgyMywKKyAgICAgICAgMHhhNCwgMHg2ZSwgMHhmYywgMHg2MSwgMHg5YiwgMHhhZSwgMHhmOCwgMHg5NywKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweDQxLCAweDVmLCAweGFkLCAweDYyLCAweDcxLCAweDU4LCAweDBhLCAweDUzLAorICAgICAgICAweDFkLCAweDQxLCAweDc5LCAweGJjLCAweDg5LCAweDFkLCAweDg3LCAweGE2LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlNgorICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgNi4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTYpIHsKKyAgICBzdHJpbmcga2V5KDEzMSwgMHhhYSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSAtIEhhc2ggS2V5IEZpcnN0IjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDk1LCAweGU5LCAweGEwLCAweGRiLCAweDk2LCAweDIwLCAweDk1LCAweGFkLCAweGFlLCAweGJlLCAweDliLCAweDJkLCAweDZmLCAweDBkLAorICAgICAgICAweGJjLCAweGUyLCAweGQ0LCAweDk5LCAweGYxLCAweDEyLCAweGYyLCAweGQyLCAweGI3LCAweDI3LCAweDNmLCAweGE2LCAweDg3LCAweDBlLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NjAsIDB4ZTQsIDB4MzEsIDB4NTksIDB4MWUsIDB4ZTAsIDB4YjYsIDB4N2YsIDB4MGQsIDB4OGEsIDB4MjYsCisgICAgICAgIDB4YWEsIDB4Y2IsIDB4ZjUsIDB4YjcsIDB4N2YsIDB4OGUsIDB4MGIsIDB4YzYsIDB4MjEsIDB4MzcsIDB4MjgsCisgICAgICAgIDB4YzUsIDB4MTQsIDB4MDUsIDB4NDYsIDB4MDQsIDB4MGYsIDB4MGUsIDB4ZTMsIDB4N2YsIDB4NTQsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg0ZSwgMHhjZSwgMHgwOCwgMHg0NCwgMHg4NSwgMHg4MSwgMHgzZSwgMHg5MCwgMHg4OCwgMHhkMiwgMHhjNiwgMHgzYSwKKyAgICAgICAgMHgwNCwgMHgxYiwgMHhjNSwgMHhiNCwgMHg0ZiwgMHg5ZSwgMHhmMSwgMHgwMSwgMHgyYSwgMHgyYiwgMHg1OCwgMHg4ZiwKKyAgICAgICAgMHgzYywgMHhkMSwgMHgxZiwgMHgwNSwgMHgwMywgMHgzYSwgMHhjNCwgMHhjNiwgMHgwYywgMHgyZSwgMHhmNiwgMHhhYiwKKyAgICAgICAgMHg0MCwgMHgzMCwgMHhmZSwgMHg4MiwgMHg5NiwgMHgyNCwgMHg4ZCwgMHhmMSwgMHg2MywgMHhmNCwgMHg0OSwgMHg1MiwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweDgwLCAweGIyLCAweDQyLCAweDYzLCAweGM3LCAweGMxLCAweGEzLCAweGViLCAweGI3LCAweDE0LCAweDkzLCAweGMxLCAweGRkLAorICAgICAgICAweDdiLCAweGU4LCAweGI0LCAweDliLCAweDQ2LCAweGQxLCAweGY0LCAweDFiLCAweDRhLCAweGVlLCAweGMxLCAweDEyLCAweDFiLAorICAgICAgICAweDAxLCAweDM3LCAweDgzLCAweGY4LCAweGYzLCAweDUyLCAweDZiLCAweDU2LCAweGQwLCAweDM3LCAweGUwLCAweDVmLCAweDI1LAorICAgICAgICAweDk4LCAweGJkLCAweDBmLCAweGQyLCAweDIxLCAweDVkLCAweDZhLCAweDFlLCAweDUyLCAweDk1LCAweGU2LCAweDRmLCAweDczLAorICAgICAgICAweGY2LCAweDNmLCAweDBhLCAweGVjLCAweDhiLCAweDkxLCAweDVhLCAweDk4LCAweDVkLCAweDc4LCAweDY1LCAweDk4LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlNworICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgNy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTcpIHsKKyAgICBzdHJpbmcga2V5KDEzMSwgMHhhYSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGhpcyBpcyBhIHRlc3QgdXNpbmcgYSBsYXJnZXIgdGhhbiBibG9jay1zaXplIGtleSBhbmQgYSBsYXJnZXIgdGhhbiAiCisgICAgICAgICAgICAgICAgICAgICAiYmxvY2stc2l6ZSBkYXRhLiBUaGUga2V5IG5lZWRzIHRvIGJlIGhhc2hlZCBiZWZvcmUgYmVpbmcgdXNlZCBieSB0aGUgSE1BQyAiCisgICAgICAgICAgICAgICAgICAgICAiYWxnb3JpdGhtLiI7CisKKyAgICB1aW50OF90IHNoYV8yMjRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHgzYSwgMHg4NSwgMHg0MSwgMHg2NiwgMHhhYywgMHg1ZCwgMHg5ZiwgMHgwMiwgMHgzZiwgMHg1NCwgMHhkNSwgMHgxNywgMHhkMCwgMHhiMywKKyAgICAgICAgMHg5ZCwgMHhiZCwgMHg5NCwgMHg2NywgMHg3MCwgMHhkYiwgMHg5YywgMHgyYiwgMHg5NSwgMHhjOSwgMHhmNiwgMHhmNSwgMHg2NSwgMHhkMSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzI1Nl9leHBlY3RlZFtdID0geworICAgICAgICAweDliLCAweDA5LCAweGZmLCAweGE3LCAweDFiLCAweDk0LCAweDJmLCAweGNiLCAweDI3LCAweDYzLCAweDVmLAorICAgICAgICAweGJjLCAweGQ1LCAweGIwLCAweGU5LCAweDQ0LCAweGJmLCAweGRjLCAweDYzLCAweDY0LCAweDRmLCAweDA3LAorICAgICAgICAweDEzLCAweDkzLCAweDhhLCAweDdmLCAweDUxLCAweDUzLCAweDVjLCAweDNhLCAweDM1LCAweGUyLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMzg0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NjYsIDB4MTcsIDB4MTcsIDB4OGUsIDB4OTQsIDB4MWYsIDB4MDIsIDB4MGQsIDB4MzUsIDB4MWUsIDB4MmYsIDB4MjUsCisgICAgICAgIDB4NGUsIDB4OGYsIDB4ZDMsIDB4MmMsIDB4NjAsIDB4MjQsIDB4MjAsIDB4ZmUsIDB4YjAsIDB4YjgsIDB4ZmIsIDB4OWEsCisgICAgICAgIDB4ZGMsIDB4Y2UsIDB4YmIsIDB4ODIsIDB4NDYsIDB4MWUsIDB4OTksIDB4YzUsIDB4YTYsIDB4NzgsIDB4Y2MsIDB4MzEsCisgICAgICAgIDB4ZTcsIDB4OTksIDB4MTcsIDB4NmQsIDB4MzgsIDB4NjAsIDB4ZTYsIDB4MTEsIDB4MGMsIDB4NDYsIDB4NTIsIDB4M2UsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV81MTJfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHhlMywgMHg3YiwgMHg2YSwgMHg3NywgMHg1ZCwgMHhjOCwgMHg3ZCwgMHhiYSwgMHhhNCwgMHhkZiwgMHhhOSwgMHhmOSwgMHg2ZSwKKyAgICAgICAgMHg1ZSwgMHgzZiwgMHhmZCwgMHhkZSwgMHhiZCwgMHg3MSwgMHhmOCwgMHg4NiwgMHg3MiwgMHg4OSwgMHg4NiwgMHg1ZCwgMHhmNSwKKyAgICAgICAgMHhhMywgMHgyZCwgMHgyMCwgMHhjZCwgMHhjOSwgMHg0NCwgMHhiNiwgMHgwMiwgMHgyYywgMHhhYywgMHgzYywgMHg0OSwgMHg4MiwKKyAgICAgICAgMHhiMSwgMHgwZCwgMHg1ZSwgMHhlYiwgMHg1NSwgMHhjMywgMHhlNCwgMHhkZSwgMHgxNSwgMHgxMywgMHg0NiwgMHg3NiwgMHhmYiwKKyAgICAgICAgMHg2ZCwgMHhlMCwgMHg0NCwgMHg2MCwgMHg2NSwgMHhjOSwgMHg3NCwgMHg0MCwgMHhmYSwgMHg4YywgMHg2YSwgMHg1OCwKKyAgICB9OworCisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjI0LCBtYWtlX3N0cmluZyhzaGFfMjI0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCBtYWtlX3N0cmluZyhzaGFfMjU2X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMzg0LCBtYWtlX3N0cmluZyhzaGFfMzg0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfNTEyLCBtYWtlX3N0cmluZyhzaGFfNTEyX2V4cGVjdGVkKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdC5Sc2FTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBhIHNpbXBsZSBSU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBzZXF1ZW5jZSBzdWNjZWVkcy4KKyAqLworVEVTVF9GKFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7CisgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyBSU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBmb3IgYWxsIHBhZGRpbmcgbW9kZXMgYW5kIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdCwgUnNhQWxsUGFkZGluZ3NBbmREaWdlc3RzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FLCBEaWdlc3Q6Ok1ENSwgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMTI4LCAnYScpOworICAgIHN0cmluZyBjb3JydXB0X21lc3NhZ2UobWVzc2FnZSk7CisgICAgKytjb3JydXB0X21lc3NhZ2VbY29ycnVwdF9tZXNzYWdlLnNpemUoKSAvIDJdOworCisgICAgZm9yIChhdXRvIHBhZGRpbmcgOgorICAgICAgICAge1BhZGRpbmdNb2RlOjpOT05FLCBQYWRkaW5nTW9kZTo6UlNBX1BTUywgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTn0pIHsKKworICAgICAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6Tk9ORSwgRGlnZXN0OjpNRDUsIERpZ2VzdDo6U0hBMSwgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgICAgIGlmIChwYWRkaW5nID09IFBhZGRpbmdNb2RlOjpOT05FICYmIGRpZ2VzdCAhPSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBEaWdlc3Rpbmcgb25seSBtYWtlcyBzZW5zZSB3aXRoIHBhZGRpbmcuCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwYWRkaW5nID09IFBhZGRpbmdNb2RlOjpSU0FfUFNTICYmIGRpZ2VzdCA9PSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBQU1MgcmVxdWlyZXMgZGlnZXN0aW5nLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0KKyAgICAgICAgICAgICAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpOworICAgICAgICAgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhwYWRkaW5nKSk7CisKKyAgICAgICAgICAgIGlmIChkaWdlc3QgIT0gRGlnZXN0OjpOT05FKSB7CisgICAgICAgICAgICAgICAgLy8gVmVyaWZ5IHdpdGggT3BlblNTTC4KKyAgICAgICAgICAgICAgICBIaWRsQnVmIHB1YmtleTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJnB1YmtleSkpOworCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcCA9IHB1YmtleS5kYXRhKCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfUHRyIHBrZXkoZDJpX1BVQktFWShudWxscHRyIC8qIGFsbG9jIG5ldyAqLywgJnAsIHB1YmtleS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShwa2V5LmdldCgpKTsKKworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFggZGlnZXN0X2N0eDsKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2luaXQoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgICAgIEVWUF9QS0VZX0NUWCogcGtleV9jdHg7CisgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EKiBtZCA9IG9wZW5zc2xfZGlnZXN0KGRpZ2VzdCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX05FKG1kLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUluaXQoJmRpZ2VzdF9jdHgsICZwa2V5X2N0eCwgbWQsIG51bGxwdHIgLyogZW5naW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2V5LmdldCgpKSk7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhZGRpbmcpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUFNTOgorICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfR1QoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGluZyhwa2V5X2N0eCwgUlNBX1BLQ1MxX1BTU19QQURESU5HKSwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9HVChFVlBfUEtFWV9DVFhfc2V0X3JzYV9wc3Nfc2FsdGxlbihwa2V5X2N0eCwgRVZQX01EX3NpemUobWQpKSwgMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTjoKKyAgICAgICAgICAgICAgICAgICAgLy8gUEtDUzEgaXMgdGhlIGRlZmF1bHQ7IGRvbid0IG5lZWQgdG8gc2V0IGFueXRoaW5nLgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5VXBkYXRlKCZkaWdlc3RfY3R4LCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUZpbmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRpZ2VzdF9jdHgsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNpZ25hdHVyZS5kYXRhKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLnNpemUoKSkpOworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFhfY2xlYW51cCgmZGlnZXN0X2N0eCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENvcnJ1cHQgc2lnbmF0dXJlIHNob3VsZG4ndCB2ZXJpZnkuCisgICAgICAgICAgICBzdHJpbmcgY29ycnVwdF9zaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgICAgICAgICsrY29ycnVwdF9zaWduYXR1cmVbY29ycnVwdF9zaWduYXR1cmUuc2l6ZSgpIC8gMl07CisKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpKTsKKyAgICAgICAgICAgIHN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2gobWVzc2FnZSwgY29ycnVwdF9zaWduYXR1cmUsICZyZXN1bHQpKTsKKworICAgICAgICAgICAgLy8gQ29ycnVwdCBtZXNzYWdlIHNob3VsZG4ndCB2ZXJpZnkKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsIEZpbmlzaChjb3JydXB0X21lc3NhZ2UsIHNpZ25hdHVyZSwgJnJlc3VsdCkpOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIEVDRFNBIHNpZ25hdHVyZS92ZXJpZmljYXRpb24gZm9yIGFsbCBkaWdlc3RzIGFuZCBjdXJ2ZXMuCisgKi8KK1RFU1RfRihWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdCwgRWNkc2FBbGxEaWdlc3RzQW5kQ3VydmVzKSB7CisgICAgYXV0byBkaWdlc3RzID0geworICAgICAgICBEaWdlc3Q6Ok5PTkUsICAgICAgRGlnZXN0OjpTSEExLCAgICAgIERpZ2VzdDo6U0hBXzJfMjI0LAorICAgICAgICBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsIERpZ2VzdDo6U0hBXzJfNTEyLAorICAgIH07CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwIjsKKyAgICBzdHJpbmcgY29ycnVwdF9tZXNzYWdlID0gIjIyMzQ1Njc4OTAiOworICAgIGZvciAoYXV0byBjdXJ2ZSA6IHtFY0N1cnZlOjpQXzIyNCwgRWNDdXJ2ZTo6UF8yNTYsIEVjQ3VydmU6OlBfMzg0LCBFY0N1cnZlOjpQXzUyMX0pIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KGN1cnZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3RzKSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgZm9yIEVDIGN1cnZlICIgPDwgY3VydmU7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0gU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisgICAgICAgICAgICBWZXJpZnlNZXNzYWdlKG1lc3NhZ2UsIHNpZ25hdHVyZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisKKyAgICAgICAgICAgIC8vIFZlcmlmeSB3aXRoIE9wZW5TU0wKKyAgICAgICAgICAgIGlmIChkaWdlc3QgIT0gRGlnZXN0OjpOT05FKSB7CisgICAgICAgICAgICAgICAgSGlkbEJ1ZiBwdWJrZXk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEV4cG9ydEtleShLZXlGb3JtYXQ6Olg1MDksICZwdWJrZXkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcCA9IHB1YmtleS5kYXRhKCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfUHRyIHBrZXkoZDJpX1BVQktFWShudWxscHRyIC8qIGFsbG9jIG5ldyAqLywgJnAsIHB1YmtleS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShwa2V5LmdldCgpKTsKKworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFggZGlnZXN0X2N0eDsKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2luaXQoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgICAgIEVWUF9QS0VZX0NUWCogcGtleV9jdHg7CisgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EKiBtZCA9IG9wZW5zc2xfZGlnZXN0KGRpZ2VzdCk7CisKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUluaXQoJmRpZ2VzdF9jdHgsICZwa2V5X2N0eCwgbWQsIG51bGxwdHIgLyogZW5naW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2V5LmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgPDwgY3VydmUgPDwgJyAnIDw8IGRpZ2VzdDsKKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5VXBkYXRlKCZkaWdlc3RfY3R4LCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDEsIEVWUF9EaWdlc3RWZXJpZnlGaW5hbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkaWdlc3RfY3R4LCByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzaWduYXR1cmUuZGF0YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZS5zaXplKCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVZQX01EX0NUWF9jbGVhbnVwKCZkaWdlc3RfY3R4KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ29ycnVwdCBzaWduYXR1cmUgc2hvdWxkbid0IHZlcmlmeS4KKyAgICAgICAgICAgIHN0cmluZyBjb3JydXB0X3NpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgICAgICAgKytjb3JydXB0X3NpZ25hdHVyZVtjb3JydXB0X3NpZ25hdHVyZS5zaXplKCkgLyAyXTsKKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICBzdHJpbmcgcmVzdWx0OworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKG1lc3NhZ2UsIGNvcnJ1cHRfc2lnbmF0dXJlLCAmcmVzdWx0KSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAvLyBDb3JydXB0IG1lc3NhZ2Ugc2hvdWxkbid0IHZlcmlmeQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2goY29ycnVwdF9tZXNzYWdlLCBzaWduYXR1cmUsICZyZXN1bHQpKQorICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCkpOworICAgIH0KK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5CisgKgorICogVmVyaWZpZXMgSE1BQyBzaWduaW5nIGFuZCB2ZXJpZmljYXRpb24sIGJ1dCB0aGF0IGEgc2lnbmluZyBrZXkgY2Fubm90IGJlIHVzZWQgdG8gdmVyaWZ5LgorICovCitURVNUX0YoVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5KSB7CisgICAgc3RyaW5nIGtleV9tYXRlcmlhbCA9ICJIZWxsb1RoaXNJc0FLZXkiOworCisgICAgSGlkbEJ1ZiBzaWduaW5nX2tleSwgdmVyaWZpY2F0aW9uX2tleTsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mgc2lnbmluZ19rZXlfY2hhcnMsIHZlcmlmaWNhdGlvbl9rZXlfY2hhcnM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpTSUdOKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEExKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTYwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXlfbWF0ZXJpYWwsICZzaWduaW5nX2tleSwgJnNpZ25pbmdfa2V5X2NoYXJzKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpWRVJJRlkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxNjApLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleV9tYXRlcmlhbCwgJnZlcmlmaWNhdGlvbl9rZXksICZ2ZXJpZmljYXRpb25fa2V5X2NoYXJzKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJUaGlzIGlzIGEgbWVzc2FnZS4iOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgc2lnbmluZ19rZXksIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBMSkuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTYwKSk7CisKKyAgICAvLyBTaWduaW5nIGtleSBzaG91bGQgbm90IHdvcmsuCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIHNpZ25pbmdfa2V5LCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpLAorICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgIC8vIFZlcmlmaWNhdGlvbiBrZXkgc2hvdWxkIHdvcmsuCisgICAgVmVyaWZ5TWVzc2FnZSh2ZXJpZmljYXRpb25fa2V5LCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoJnNpZ25pbmdfa2V5KSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgmdmVyaWZpY2F0aW9uX2tleSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEV4cG9ydEtleVRlc3Q7CisKKy8qCisgKiBFeHBvcnRLZXlUZXN0LlJzYVVuc3VwcG9ydGVkS2V5Rm9ybWF0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBSU0Ega2V5cyBpbiBQS0NTIzggZm9ybWF0IGZhaWxzIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBSc2FVbnN1cHBvcnRlZEtleUZvcm1hdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyNTYsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBSU0Ega2V5cyBmcm9tIGNvcnJ1cHRlZCBrZXkgYmxvYnMgZmFpbHMuICBUaGlzIGlzIGVzc2VudGlhbGx5CisgKiBhIHBvb3ItbWFuJ3Mga2V5IGJsb2IgZnV6emVyLgorICovCisvLyBEaXNhYmxlZCBkdWUgdG8gYi8zMzM4NTIwNgorVEVTVF9GKEV4cG9ydEtleVRlc3QsIERJU0FCTEVEX1JzYUNvcnJ1cHRlZEtleUJsb2IpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyNTYsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBFQ0RTQSBrZXlzIGZyb20gY29ycnVwdGVkIGtleSBibG9icyBmYWlscy4gIFRoaXMgaXMKKyAqIGVzc2VudGlhbGx5IGEgcG9vci1tYW4ncyBrZXkgYmxvYiBmdXp6ZXIuCisgKi8KKy8vIERpc2FibGVkIGR1ZSB0byBiLzMzMzg1MjA2CitURVNUX0YoRXhwb3J0S2V5VGVzdCwgRElTQUJMRURfRWNDb3JydXB0ZWRLZXlCbG9iKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5BZXNLZXlVbmV4cG9ydGFibGUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gZXhwb3J0IEFFUyBrZXlzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBBZXNLZXlVbmV4cG9ydGFibGUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydF9kYXRhKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9GT1JNQVQsIEV4cG9ydEtleShLZXlGb3JtYXQ6OlJBVywgJmV4cG9ydF9kYXRhKSk7Cit9Cit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEltcG9ydEtleVRlc3Q7CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gUlNBIGtleSBwYWlyIHdvcmtzIGNvcnJlY3RseS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCA2NTUzNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UEtDUzgsIHJzYV9rZXkpKTsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAxMDI0VSk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgNjU1MzdVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19QQURESU5HLCBQYWRkaW5nTW9kZTo6UlNBX1BTUyk7CisgICAgQ2hlY2tPcmlnaW4oKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCAnYScpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FLZXlTaXplTWlzbWF0Y2gKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbiBSU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYUtleVNpemVNaXNtYXRjaCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0gsCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLywgNjU1MzcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FQdWJsaWNFeHBvbmVudE1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBwYWlyIHdpdGggYSBwdWJsaWMgZXhwb25lbnQgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMKKyAqIGluIHRoZSBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVB1YmxpY0V4cG9uZW50TWlzbWF0Y2gpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd29ya3MgY29ycmVjdGx5LgorICovCitURVNUX0YoSW1wb3J0S2V5VGVzdCwgRWNkc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY19rZXkpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM5NDUxMTQpIjsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDI1NlUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0RJR0VTVCwgRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIENoZWNrS20yQ3J5cHRvUGFyYW0oVEFHX0VDX0NVUlZFLCBFY0N1cnZlOjpQXzI1Nik7CisKKyAgICBDaGVja09yaWdpbigpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMzIsICdhJyk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1Nik7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsIHBhcmFtcyk7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkVjZHNhU2l6ZU1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEVjZHNhU2l6ZU1pc21hdGNoKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU1QT1JUX1BBUkFNRVRFUl9NSVNNQVRDSCwKKyAgICAgICAgICAgICAgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KDIyNCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY19rZXkpKTsKK30KKworLyoKKyAqIEltcG9ydEtleVRlc3QuRWNkc2FDdXJ2ZU1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd2l0aCBhIGN1cnZlIHRoYXQgZG9lc24ndCBtYXRjaCB0aGUga2V5IGZhaWxzIGluIHRoZQorICogY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBFY2RzYUN1cnZlTWlzbWF0Y2gpIHsKKyAgICBpZiAoU3VwcG9ydHNTeW1tZXRyaWMoKSAmJiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIC8vIEtNMSBoYXJkd2FyZSBkb2Vzbid0IGtub3cgYWJvdXQgY3VydmVzCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZTo6UF8yMjQgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgZWNfa2V5KSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMjQxKSI7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkFlc1N1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gQUVTIGtleSB3b3Jrcy4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEFlc1N1Y2Nlc3MpIHsKKyAgICBzdHJpbmcga2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworCisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkFFUyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDEyOFUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX1BBRERJTkcsIFBhZGRpbmdNb2RlOjpQS0NTNyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpOworICAgIENoZWNrT3JpZ2luKCk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkFlc1N1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gSE1BQyBrZXkgd29ya3MuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBIbWFjS2V5U3VjY2VzcykgeworICAgIHN0cmluZyBrZXkgPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5LnNpemUoKSAqIDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlJBVywga2V5KSk7CisKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDEyOFUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0RJR0VTVCwgRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIENoZWNrT3JpZ2luKCk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBNYWNNZXNzYWdlKG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCAyNTYpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdDsKKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIGVuY3J5cHRpb24gd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1N1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9IHN0cmluZygxMDI0IC8gOCwgJ2EnKTsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQxID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0Mi5zaXplKCkpOworCisgICAgLy8gVW5wYWRkZWQgUlNBIGlzIGRldGVybWluaXN0aWMKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdTaG9ydE1lc3NhZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiBzaG9ydCBtZXNzYWdlcyB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhTm9QYWRkaW5nU2hvcnRNZXNzYWdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMSI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUSgxMDI0VSAvIDgsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKworICAgIHN0cmluZyBleHBlY3RlZF9wbGFpbnRleHQgPSBzdHJpbmcoMTAyNCAvIDggLSAxLCAwKSArIG1lc3NhZ2U7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGxhaW50ZXh0LCBwbGFpbnRleHQpOworCisgICAgLy8gRGVnZW5lcmF0ZSBjYXNlLCBlbmNyeXB0aW5nIGEgbnVtZXJpYyAxIHlpZWxkcyAweDAwLi4wMSBhcyB0aGUgY2lwaGVydGV4dC4KKyAgICBtZXNzYWdlID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMSk7CisgICAgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9FUShjaXBoZXJ0ZXh0LCBzdHJpbmcoMTAyNCAvIDggLSAxLCAwKSArIG1lc3NhZ2UpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU5vUGFkZGluZ1Rvb0xvbmcKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiB0b28tbG9uZyBtZXNzYWdlcyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmdUb29Mb25nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggKyAxLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nVG9vTG9uZworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBlbmNyeXB0aW9uIG9mIHRvby1sYXJnZSAobnVtZXJpY2FsbHkpIG1lc3NhZ2VzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Rvb0xhcmdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgSGlkbEJ1ZiBleHBvcnRlZDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydGVkKSk7CisKKyAgICBjb25zdCB1aW50OF90KiBwID0gZXhwb3J0ZWQuZGF0YSgpOworICAgIEVWUF9QS0VZX1B0ciBwa2V5KGQyaV9QVUJLRVkobnVsbHB0ciAvKiBhbGxvYyBuZXcgKi8sICZwLCBleHBvcnRlZC5zaXplKCkpKTsKKyAgICBSU0FfUHRyIHJzYShFVlBfUEtFWV9nZXQxX1JTQShwa2V5LmdldCgpKSk7CisKKyAgICBzaXplX3QgbW9kdWx1c19sZW4gPSBCTl9udW1fYnl0ZXMocnNhLT5uKTsKKyAgICBBU1NFUlRfRVEoMTAyNFUgLyA4LCBtb2R1bHVzX2xlbik7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbW9kdWx1c19idWYobmV3IHVpbnQ4X3RbbW9kdWx1c19sZW5dKTsKKyAgICBCTl9ibjJiaW4ocnNhLT5uLCBtb2R1bHVzX2J1Zi5nZXQoKSk7CisKKyAgICAvLyBUaGUgbW9kdWx1cyBpcyB0b28gYmlnIHRvIGVuY3J5cHQuCisgICAgc3RyaW5nIG1lc3NhZ2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4obW9kdWx1c19idWYuZ2V0KCkpLCBtb2R1bHVzX2xlbik7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0FSR1VNRU5ULCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworCisgICAgLy8gT25lIHNtYWxsZXIgdGhhbiB0aGUgbW9kdWx1cyBpcyBva2F5LgorICAgIEJOX3N1Yihyc2EtPm4sIHJzYS0+biwgQk5fdmFsdWVfb25lKCkpOworICAgIG1vZHVsdXNfbGVuID0gQk5fbnVtX2J5dGVzKHJzYS0+bik7CisgICAgQVNTRVJUX0VRKDEwMjRVIC8gOCwgbW9kdWx1c19sZW4pOworICAgIEJOX2JuMmJpbihyc2EtPm4sIG1vZHVsdXNfYnVmLmdldCgpKTsKKyAgICBtZXNzYWdlID0gc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KG1vZHVsdXNfYnVmLmdldCgpKSwgbW9kdWx1c19sZW4pOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIHdvcmssIHdpdGggYWxsIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU9hZXBTdWNjZXNzKSB7CisgICAgYXV0byBkaWdlc3RzID0ge0RpZ2VzdDo6TUQ1LCAgICAgICBEaWdlc3Q6OlNIQTEsICAgICAgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwgRGlnZXN0OjpTSEFfMl81MTJ9OworCisgICAgc2l6ZV90IGtleV9zaXplID0gMjA0ODsgIC8vIE5lZWQgbGFyZ2lzaCBrZXkgZm9yIFNIQS01MTIgdGVzdC4KKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleShrZXlfc2l6ZSwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoZGlnZXN0cykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIkhlbGxvIjsKKworICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCk7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgICAgIGlmIChIYXNOb25mYXRhbEZhaWx1cmUoKSkgc3RkOjpjb3V0IDw8ICItLT4iIDw8IGRpZ2VzdCA8PCBzdGQ6OmVuZGw7CisgICAgICAgIEVYUEVDVF9FUShrZXlfc2l6ZSAvIDgsIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICAgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGtleV9zaXplIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgICAgICAvLyBPQUVQIHJhbmRvbWl6ZXMgcGFkZGluZyBzbyBldmVyeSByZXN1bHQgc2hvdWxkIGJlIGRpZmZlcmVudCAod2l0aCBhc3Ryb25vbWljYWxseSBoaWdoCisgICAgICAgIC8vIHByb2JhYmlsaXR5KS4KKyAgICAgICAgRVhQRUNUX05FKGNpcGhlcnRleHQxLCBjaXBoZXJ0ZXh0Mik7CisKKyAgICAgICAgc3RyaW5nIHBsYWludGV4dDEgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dDEpIDw8ICJSU0EtT0FFUCBmYWlsZWQgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQyID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtcyk7CisgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQyKSA8PCAiUlNBLU9BRVAgZmFpbGVkIHdpdGggZGlnZXN0ICIgPDwgZGlnZXN0OworCisgICAgICAgIC8vIERlY3J5cHRpbmcgY29ycnVwdGVkIGNpcGhlcnRleHQgc2hvdWxkIGZhaWwuCisgICAgICAgIHNpemVfdCBvZmZzZXRfdG9fY29ycnVwdCA9IHJhbmRvbSgpICUgY2lwaGVydGV4dDEuc2l6ZSgpOworICAgICAgICBjaGFyIGNvcnJ1cHRfYnl0ZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgY29ycnVwdF9ieXRlID0gc3RhdGljX2Nhc3Q8Y2hhcj4ocmFuZG9tKCkgJSAyNTYpOworICAgICAgICB9IHdoaWxlIChjb3JydXB0X2J5dGUgPT0gY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdKTsKKyAgICAgICAgY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdID0gY29ycnVwdF9ieXRlOworCisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKTsKKyAgICAgICAgc3RyaW5nIHJlc3VsdDsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUiwgRmluaXNoKGNpcGhlcnRleHQxLCAmcmVzdWx0KSk7CisgICAgICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7CisgICAgfQorfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU9hZXBJbnZhbGlkRGlnZXN0CisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtT0FFUCBlbmNyeXB0aW9uIG9wZXJhdGlvbnMgZmFpbCBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBvcGVyYXRlCisgKiB3aXRob3V0IGEgZGlnZXN0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwSW52YWxpZERpZ2VzdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKS5EaWdlc3QoRGlnZXN0OjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfRElHRVNULCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwSW52YWxpZERpZ2VzdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZGVjcnlwdCB3aXRoIGEKKyAqIGRpZmZlcmVudCBkaWdlc3QgdGhhbiB3YXMgdXNlZCB0byBlbmNyeXB0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwRGVjcnlwdFdpdGhXcm9uZ0RpZ2VzdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzIyNCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UoCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjI0KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkpOworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTktOT1dOX0VSUk9SLCBGaW5pc2goY2lwaGVydGV4dCwgJnJlc3VsdCkpOworICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhT2FlcFRvb0xhcmdlCisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtT0FFUCBlbmNyeXB0aW9uIG9wZXJhdGlvbnMgZmFpbCBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBlbmNyeXB0IGEKKyAqIHRvby1sYXJnZSBtZXNzYWdlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwVG9vTGFyZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKSk7CisgICAgY29uc3RleHByIHNpemVfdCBkaWdlc3Rfc2l6ZSA9IDE2MCAvKiBTSEExICovIC8gODsKKyAgICBjb25zdGV4cHIgc2l6ZV90IG9hZXBfb3ZlcmhlYWQgPSAyICogZGlnZXN0X3NpemUgKyAyOworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4IC0gb2FlcF9vdmVyaGVhZCArIDEsICdhJyk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVBrY3MxU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIFBLQ1MgZW5jcnlwdGlvbi9kZWNyeXB0cyB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhUGtjczFTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MiA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIFBLQ1MxIHYxLjUgcmFuZG9taXplcyBwYWRkaW5nIHNvIGV2ZXJ5IHJlc3VsdCBzaG91bGQgYmUgZGlmZmVyZW50LgorICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gRGVjcnlwdGluZyBjb3JydXB0ZWQgY2lwaGVydGV4dCBzaG91bGQgZmFpbC4KKyAgICBzaXplX3Qgb2Zmc2V0X3RvX2NvcnJ1cHQgPSByYW5kb20oKSAlIGNpcGhlcnRleHQxLnNpemUoKTsKKyAgICBjaGFyIGNvcnJ1cHRfYnl0ZTsKKyAgICBkbyB7CisgICAgICAgIGNvcnJ1cHRfYnl0ZSA9IHN0YXRpY19jYXN0PGNoYXI+KHJhbmRvbSgpICUgMjU2KTsKKyAgICB9IHdoaWxlIChjb3JydXB0X2J5dGUgPT0gY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdKTsKKyAgICBjaXBoZXJ0ZXh0MVtvZmZzZXRfdG9fY29ycnVwdF0gPSBjb3JydXB0X2J5dGU7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTktOT1dOX0VSUk9SLCBGaW5pc2goY2lwaGVydGV4dDEsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVBrY3MxVG9vTGFyZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQS0NTIGVuY3J5cHRpb24gZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gdGhlIG1zc2FnZSBpcyB0b28gbGFyZ2UuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYVBrY3MxVG9vTGFyZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0IC8gOCAtIDEwLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVCk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7CisgICAgRVhQRUNUX0VRKDBVLCByZXN1bHQuc2l6ZSgpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5FY2RzYUVuY3J5cHQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gdXNlIEVDRFNBIGtleXMgdG8gZW5jcnlwdCBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEVjZHNhRW5jcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzU0MzYyNSkiOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzU0MzYyNSkiOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNFbmNyeXB0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHVzZSBITUFDIGtleXMgdG8gZW5jcnlwdCBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNFbmNyeXB0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNFY2JSb3VuZFRyaXBTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgRUNCIG1vZGUgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlJvdW5kVHJpcFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2Uoc3RyaW5nKG1lc3NhZ2UpLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIEVDQiBpcyBkZXRlcm1pbmlzdGljLgorICAgIEVYUEVDVF9FUShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFuIHVuYXV0aG9yaXplZCBtb2RlIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzV3JvbmdNb2RlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQkxPQ0tfTU9ERSwKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiTm9QYWRkaW5nV3JvbmdJbnB1dFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIHByb3ZpZGVkIGFuIGlucHV0IHRoYXQgaXMgbm90IGEKKyAqIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplIGFuZCBubyBwYWRkaW5nIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiTm9QYWRkaW5nV3JvbmdJbnB1dFNpemUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICAvLyBNZXNzYWdlIGlzIHNsaWdodGx5IHNob3J0ZXIgdGhhbiB0d28gYmxvY2tzLgorICAgIHN0cmluZyBtZXNzYWdlKDE2ICogMiAtIDEsICdhJyk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmY2lwaGVydGV4dCkpOworICAgIEVYUEVDVF9FUSgwVSwgY2lwaGVydGV4dC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlBrY3M3UGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIFBLQ1M3IHBhZGRpbmcgd29ya3MgZm9yIGFueSBtZXNzYWdlIGxlbmd0aC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiUGtjczdQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkVDQikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpOworCisgICAgLy8gVHJ5IHZhcmlvdXMgbWVzc2FnZSBsZW5ndGhzOyBhbGwgc2hvdWxkIHdvcmsuCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAzMjsgKytpKSB7CisgICAgICAgIHN0cmluZyBtZXNzYWdlKGksICdhJyk7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGkgKyAxNiAtIChpICUgMTYpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgICAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiV3JvbmdQYWRkaW5nCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZW5yeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFuIHVuYXV0aG9yaXplZCBwYWRkaW5nIG1vZGUgaXMKKyAqIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiV3JvbmdQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNyk7CisKKyAgICAvLyBUcnkgdmFyaW91cyBtZXNzYWdlIGxlbmd0aHM7IGFsbCBzaG91bGQgZmFpbAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzI7ICsraSkgeworICAgICAgICBzdHJpbmcgbWVzc2FnZShpLCAnYScpOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfUEFERElOR19NT0RFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiUGtjczdQYWRkaW5nQ29ycnVwdGVkCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZGVjcnlwdGlvbiBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiB0aGUgcGFkZGluZyBpcyBjb3JydXB0ZWQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlBrY3M3UGFkZGluZ0NvcnJ1cHRlZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkVDQikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gImEiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX05FKGNpcGhlcnRleHQsIG1lc3NhZ2UpOworICAgICsrY2lwaGVydGV4dFtjaXBoZXJ0ZXh0LnNpemUoKSAvIDJdOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyBwbGFpbnRleHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcGxhaW50ZXh0KSk7Cit9CisKK0hpZGxCdWYgQ29weUl2KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIGF1dG8gaXYgPSBzZXQuR2V0VGFnVmFsdWUoVEFHX05PTkNFKTsKKyAgICBFWFBFQ1RfVFJVRShpdi5pc09rKCkpOworICAgIHJldHVybiBpdi52YWx1ZSgpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0clJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBDVFIgbW9kZSB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ3RyUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjMiOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MSA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBpdjEuc2l6ZSgpKTsKKworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MiA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBpdjIuc2l6ZSgpKTsKKworICAgIC8vIElWcyBzaG91bGQgYmUgcmFuZG9tLCBzbyBjaXBoZXJ0ZXh0cyBzaG91bGQgZGlmZmVyLgorICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgYXV0byBwYXJhbXNfaXYxID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9ucyhwYXJhbXMpLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBpdjEpOworICAgIGF1dG8gcGFyYW1zX2l2MiA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbnMocGFyYW1zKS5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgaXYyKTsKKworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zX2l2MSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtc19pdjIpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gVXNpbmcgdGhlIHdyb25nIElWIHdpbGwgcmVzdWx0IGluIGEgInZhbGlkIiBkZWNyeXB0aW9uLCBidXQgdGhlIGRhdGEgd2lsbCBiZSBnYXJiYWdlLgorICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXNfaXYyKTsKKyAgICBFWFBFQ1RfTkUobWVzc2FnZSwgcGxhaW50ZXh0KTsKKyAgICBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MiwgcGFyYW1zX2l2MSk7CisgICAgRVhQRUNUX05FKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzSW5jcmVtZW50YWwKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyB3b3JrcywgYWxsIG1vZGVzLCB3aGVuIHByb3ZpZGVkIGRhdGEgaW4gdmFyaW91cyBzaXplIGluY3JlbWVudHMuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0luY3JlbWVudGFsKSB7CisgICAgYXV0byBibG9ja19tb2RlcyA9IHsKKyAgICAgICAgQmxvY2tNb2RlOjpFQ0IsIEJsb2NrTW9kZTo6Q0JDLCBCbG9ja01vZGU6OkNUUiwgQmxvY2tNb2RlOjpHQ00sCisgICAgfTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoYmxvY2tfbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgZm9yIChpbnQgaW5jcmVtZW50ID0gMTsgaW5jcmVtZW50IDw9IDI0MDsgKytpbmNyZW1lbnQpIHsKKyAgICAgICAgZm9yIChhdXRvIGJsb2NrX21vZGUgOiBibG9ja19tb2RlcykgeworICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMjQwLCAnYScpOworICAgICAgICAgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKGJsb2NrX21vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpIC8qIGZvciBHQ00gKi87CisKKyAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0cHV0X3BhcmFtczsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZvdXRwdXRfcGFyYW1zKSk7CisKKyAgICAgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgICAgICAgICAgc2l6ZV90IGlucHV0X2NvbnN1bWVkOworICAgICAgICAgICAgc3RyaW5nIHRvX3NlbmQ7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lc3NhZ2Uuc2l6ZSgpOyBpICs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgICAgIHRvX3NlbmQuYXBwZW5kKG1lc3NhZ2Uuc3Vic3RyKGksIGluY3JlbWVudCkpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBVcGRhdGUodG9fc2VuZCwgJmNpcGhlcnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworICAgICAgICAgICAgICAgIHRvX3NlbmQgPSB0b19zZW5kLnN1YnN0cihpbnB1dF9jb25zdW1lZCk7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrX21vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDQkM6CisgICAgICAgICAgICAgICAgICAgIC8vIEltcGxlbWVudGF0aW9ucyBtdXN0IHRha2UgYXMgbWFueSBibG9ja3MgYXMgcG9zc2libGUsIGxlYXZpbmcgbGVzcyB0aGFuCisgICAgICAgICAgICAgICAgICAgIC8vIGEgYmxvY2suCisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRSh0b19zZW5kLmxlbmd0aCgpLCAxNlUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgICAgICAgICAgICAgIC8vIEltcGxlbWVudGF0aW9ucyBtdXN0IGFsd2F5cyB0YWtlIGFsbCB0aGUgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCB0b19zZW5kLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaCh0b19zZW5kLCAmY2lwaGVydGV4dCkpIDw8ICJFcnJvciBzZW5kaW5nICIgPDwgdG9fc2VuZDsKKworICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSArIDE2LCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q1RSOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpFQ0I6CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpICsgbWVzc2FnZS5zaXplKCkgJSAxNiwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIGl2ID0gb3V0cHV0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpOworICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q0JDOgorICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkdDTToKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoaXYuaXNPaygpKSA8PCAiTm8gSVYgZm9yIGJsb2NrIG1vZGUgIiA8PCBibG9ja19tb2RlOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShibG9ja19tb2RlID09IEJsb2NrTW9kZTo6R0NNID8gMTJVIDogMTZVLCBpdi52YWx1ZSgpLnNpemUoKSk7CisgICAgICAgICAgICAgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIGl2LnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShpdi5pc09rKCkpIDw8ICJFQ0IgbW9kZSBzaG91bGQgbm90IGdlbmVyYXRlIElWIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpCisgICAgICAgICAgICAgICAgPDwgIkRlY3J5cHQgYmVnaW4oKSBmYWlsZWQgZm9yIGJsb2NrIG1vZGUgIiA8PCBibG9ja19tb2RlOworCisgICAgICAgICAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaXBoZXJ0ZXh0LnNpemUoKTsgaSArPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0b19zZW5kLmFwcGVuZChjaXBoZXJ0ZXh0LnN1YnN0cihpLCBpbmNyZW1lbnQpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKHRvX3NlbmQsICZwbGFpbnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworICAgICAgICAgICAgICAgIHRvX3NlbmQgPSB0b19zZW5kLnN1YnN0cihpbnB1dF9jb25zdW1lZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBGaW5pc2godG9fc2VuZCwgJnBsYWludGV4dCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgZXJyb3IpCisgICAgICAgICAgICAgICAgPDwgIkRlY3J5cHRpb24gZmFpbGVkIGZvciBibG9jayBtb2RlICIgPDwgYmxvY2tfbW9kZSA8PCAiIGFuZCBpbmNyZW1lbnQgIgorICAgICAgICAgICAgICAgIDw8IGluY3JlbWVudCA8PCAiIChQb3NzaWJseSBiLzMzNTg0NjIyKSI7CisgICAgICAgICAgICBpZiAoZXJyb3IgPT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpIDw8ICJEZWNyeXB0aW9uIGRpZG4ndCBtYXRjaCBmb3IgYmxvY2sgbW9kZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgYmxvY2tfbW9kZSA8PCAiIGFuZCBpbmNyZW1lbnQgIiA8PCBpbmNyZW1lbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0cnVjdCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IgeworICAgIGNvbnN0IGNoYXIqIGtleTsKKyAgICBjb25zdCBjaGFyKiBub25jZTsKKyAgICBjb25zdCBjaGFyKiBwbGFpbnRleHQ7CisgICAgY29uc3QgY2hhciogY2lwaGVydGV4dDsKK307CisKKy8vIFRoZXNlIHRlc3QgdmVjdG9ycyBhcmUgdGFrZW4gZnJvbQorLy8gaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOGEvc3A4MDAtMzhhLnBkZiwgc2VjdGlvbiBGLjUuCitzdGF0aWMgY29uc3QgQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yIGtBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3JzW10gPSB7CisgICAgLy8gQUVTLTEyOAorICAgIHsKKyAgICAgICAgIjJiN2UxNTE2MjhhZWQyYTZhYmY3MTU4ODA5Y2Y0ZjNjIiwgImYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIiwKKyAgICAgICAgIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEiCisgICAgICAgICIzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIiwKKyAgICAgICAgIjg3NGQ2MTkxYjYyMGUzMjYxYmVmNjg2NDk5MGRiNmNlOTgwNmY2NmI3OTcwZmRmZjg2MTcxODdiYjlmZmZkZmYiCisgICAgICAgICI1YWU0ZGYzZWRiZDVkMzVlNWI0ZjA5MDIwZGIwM2VhYjFlMDMxZGRhMmZiZTAzZDE3OTIxNzBhMGYzMDA5Y2VlIiwKKyAgICB9LAorICAgIC8vIEFFUy0xOTIKKyAgICB7CisgICAgICAgICI4ZTczYjBmN2RhMGU2NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2IiLCAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNmZGZlZmYiLAorICAgICAgICAiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MSIKKyAgICAgICAgIjMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiLAorICAgICAgICAiMWFiYzkzMjQxNzUyMWNhMjRmMmIwNDU5ZmU3ZTZlMGIwOTAzMzllYzBhYTZmYWVmZDVjY2MyYzZmNGNlOGU5NCIKKyAgICAgICAgIjFlMzZiMjZiZDFlYmM2NzBkMWJkMWQ2NjU2MjBhYmY3NGY3OGE3ZjZkMjk4MDk1ODVhOTdkYWVjNThjNmIwNTAiLAorICAgIH0sCisgICAgLy8gQUVTLTI1NgorICAgIHsKKyAgICAgICAgIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiLAorICAgICAgICAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNmZGZlZmYiLAorICAgICAgICAiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MSIKKyAgICAgICAgIjMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiLAorICAgICAgICAiNjAxZWMzMTM3NzU3ODlhNWI3YTdmNTA0YmJmM2QyMjhmNDQzZTNjYTRkNjJiNTlhY2E4NGU5OTBjYWNhZjVjNSIKKyAgICAgICAgIjJiMDkzMGRhYTIzZGU5NGNlODcwMTdiYTJkODQ5ODhkZGZjOWM1OGRiNjdhYWRhNjEzYzJkZDA4NDU3OTQxYTYiLAorICAgIH0sCit9OworCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0clNwODAwMzhhVGVzdFZlY3RvcgorICoKKyAqIFZlcmlmaWVzIEFFUyBDVFIgaW1wbGVtZW50YXRpb24gYWdhaW5zdCBTUDgwMC0zOEEgdGVzdCB2ZWN0b3JzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICBjb25zdCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3ImIHRlc3Qoa0Flc0N0clNwODAwMzhhVGVzdFZlY3RvcnNbaV0pOworICAgICAgICBjb25zdCBzdHJpbmcga2V5ID0gaGV4MnN0cih0ZXN0LmtleSk7CisgICAgICAgIGNvbnN0IHN0cmluZyBub25jZSA9IGhleDJzdHIodGVzdC5ub25jZSk7CisgICAgICAgIGNvbnN0IHN0cmluZyBwbGFpbnRleHQgPSBoZXgyc3RyKHRlc3QucGxhaW50ZXh0KTsKKyAgICAgICAgY29uc3Qgc3RyaW5nIGNpcGhlcnRleHQgPSBoZXgyc3RyKHRlc3QuY2lwaGVydGV4dCk7CisgICAgICAgIENoZWNrQWVzQ3RyVGVzdFZlY3RvcihrZXksIG5vbmNlLCBwbGFpbnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJJbmNvbXBhdGlibGVQYWRkaW5nTW9kZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHJlamVjdHMgdXNlIG9mIENUUiBtb2RlIHdpdGggUEtDUzcgcGFkZGluZyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0N0ckluY29tcGF0aWJsZVBhZGRpbmdNb2RlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDVFIpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QQURESU5HX01PREUsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0ckludmFsaWRDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGluY29ycmVjdC1zaXplIG5vbmNlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJJbnZhbGlkQ2FsbGVyTm9uY2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDVFIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQ0FMTEVSX05PTkNFKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgSGlkbEJ1ZihzdHJpbmcoMSwgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKHN0cmluZygxNSwgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKHN0cmluZygxNywgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0ckludmFsaWRDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGluY29ycmVjdC1zaXplIG5vbmNlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYmNSb3VuZFRyaXBTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MSA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICBvdXRfcGFyYW1zLkNsZWFyKCk7CisKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MiA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQyLnNpemUoKSk7CisKKyAgICAvLyBJVnMgc2hvdWxkIGJlIHJhbmRvbSwgc28gY2lwaGVydGV4dHMgc2hvdWxkIGRpZmZlci4KKyAgICBFWFBFQ1RfTkUoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKKworICAgIHBhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBpdjEpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIGNhbGxlci1wcm92aWRlZCBub25jZXMgd29yayBjb3JyZWN0bHkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0NhbGxlck5vbmNlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworCisgICAgLy8gRG9uJ3Qgc3BlY2lmeSBub25jZSwgc2hvdWxkIGdldCBhIHJhbmRvbSBvbmUuCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIgcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9FUSgxNlUsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpLnNpemUoKSk7CisKKyAgICBwYXJhbXMucHVzaF9iYWNrKFRBR19OT05DRSwgb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLnZhbHVlKCkpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gTm93IHNwZWNpZnkgYSBub25jZSwgc2hvdWxkIGFsc28gd29yay4KKyAgICBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoImFiY2RlZmdoaWprbG1ub3AiKSk7CisgICAgb3V0X3BhcmFtcy5DbGVhcigpOworICAgIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKworICAgIC8vIERlY3J5cHQgd2l0aCBjb3JyZWN0IG5vbmNlLgorICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisKKyAgICAvLyBUcnkgd2l0aCB3cm9uZyBub25jZS4KKyAgICBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoImFhYWFhYWFhYWFhYWFhYWEiKSk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfTkUobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDYWxsZXJOb25jZVByb2hpYml0ZWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGNhbGxlci1wcm92aWRlZCBub25jZXMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiBub3Qgc3BlY2lmaWVkIGluIHRoZSBrZXkKKyAqIGF1dGhvcml6YXRpb25zLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYWxsZXJOb25jZVByb2hpYml0ZWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKworICAgIC8vIERvbid0IHNwZWNpZnkgbm9uY2UsIHNob3VsZCBnZXQgYSByYW5kb20gb25lLgorICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIHBhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBvdXRfcGFyYW1zLkdldFRhZ1ZhbHVlKFRBR19OT05DRSkudmFsdWUoKS5zaXplKCkpOworCisgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKworICAgIC8vIE5vdyBzcGVjaWZ5IGEgbm9uY2UsIHNob3VsZCBmYWlsCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKCJhYmNkZWZnaGlqa2xtbm9wIikpOworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpDQUxMRVJfTk9OQ0VfUFJPSElCSVRFRCwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmb3V0X3BhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbVJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgYWFkID0gImZvb2JhciI7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gYmVnaW5fcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIHVwZGF0ZV9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIkJlZ2luIGVuY3J5cHQiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgdXBkYXRlX291dF9wYXJhbXM7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAiIiwgJnVwZGF0ZV9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMpKSA8PCAiQmVnaW4gZGVjcnlwdCI7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBjaXBoZXJ0ZXh0LCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dC5zaXplKCksIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKCIiLCAmcGxhaW50ZXh0KSk7CisKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Ub29TaG9ydFRhZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGEgdG9vLXNob3J0IHRhZyBsZW5ndGggaXMgc3BlY2lmaWVkLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Ub29TaG9ydFRhZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgOTYpOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9NQUNfTEVOR1RILCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Ub29TaG9ydFRhZ09uRGVjcnlwdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGEgdG9vLXNob3J0IHRhZyBpcyBwcm92aWRlZCB0byBkZWNyeXB0aW9uLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Ub29TaG9ydFRhZ09uRGVjcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIHN0cmluZyBhYWQgPSAiZm9vYmFyIjsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTYiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIGZpbmlzaF9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKDFVLCBiZWdpbl9vdXRfcGFyYW1zLnNpemUoKSk7CisgICAgQVNTRVJUX1RSVUUoYmVnaW5fb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLmlzT2soKSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbnMoYmVnaW5fb3V0X3BhcmFtcykKKyAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCA5Nik7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTUFDX0xFTkdUSCwgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtQ29ycnVwdEtleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSBkZWNyeXB0aW9uIGtleSBpcyBpbmNvcnJlY3QuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbUNvcnJ1cHRLZXkpIHsKKyAgICBjb25zdCB1aW50OF90IG5vbmNlX2J5dGVzW10gPSB7CisgICAgICAgIDB4YjcsIDB4OTQsIDB4MzcsIDB4YWUsIDB4MDgsIDB4ZmYsIDB4MzUsIDB4NWQsIDB4N2QsIDB4OGEsIDB4NGQsIDB4MGYsCisgICAgfTsKKyAgICBzdHJpbmcgbm9uY2UgPSBtYWtlX3N0cmluZyhub25jZV9ieXRlcyk7CisgICAgY29uc3QgdWludDhfdCBjaXBoZXJ0ZXh0X2J5dGVzW10gPSB7CisgICAgICAgIDB4YjMsIDB4ZjYsIDB4NzksIDB4OWUsIDB4OGYsIDB4OTMsIDB4MjYsIDB4ZjIsIDB4ZGYsIDB4MWUsIDB4ODAsIDB4ZmMsIDB4ZDIsIDB4Y2IsIDB4MTYsCisgICAgICAgIDB4ZDcsIDB4OGMsIDB4OWQsIDB4YzcsIDB4Y2MsIDB4MTQsIDB4YmIsIDB4NjcsIDB4NzgsIDB4NjIsIDB4ZGMsIDB4NmMsIDB4NjMsIDB4OWIsIDB4M2EsCisgICAgICAgIDB4NjMsIDB4MzgsIDB4ZDIsIDB4NGIsIDB4MzEsIDB4MmQsIDB4MzksIDB4ODksIDB4ZTUsIDB4OTIsIDB4MGIsIDB4NWQsIDB4YmYsIDB4YzksIDB4NzYsCisgICAgICAgIDB4NzYsIDB4NWUsIDB4ZmIsIDB4ZmUsIDB4NTcsIDB4YmIsIDB4MzgsIDB4NTksIDB4NDAsIDB4YTcsIDB4YTQsIDB4M2IsIDB4ZGYsIDB4MDUsIDB4YmQsCisgICAgICAgIDB4ZGEsIDB4ZTMsIDB4YzksIDB4ZDYsIDB4YTIsIDB4ZmIsIDB4YmQsIDB4ZmMsIDB4YzAsIDB4Y2IsIDB4YTAsCisgICAgfTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IG1ha2Vfc3RyaW5nKGNpcGhlcnRleHRfYnl0ZXMpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgbm9uY2UuZGF0YSgpLCBub25jZS5zaXplKCkpOworCisgICAgYXV0byBpbXBvcnRfcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpOworCisgICAgLy8gSW1wb3J0IGNvcnJlY3Qga2V5IGFuZCBkZWNyeXB0CisgICAgY29uc3QgdWludDhfdCBrZXlfYnl0ZXNbXSA9IHsKKyAgICAgICAgMHhiYSwgMHg3NiwgMHgzNSwgMHg0ZiwgMHgwYSwgMHhlZCwgMHg2ZSwgMHg4ZCwKKyAgICAgICAgMHg5MSwgMHhmNCwgMHg1YywgMHg0ZiwgMHhmNSwgMHhhMCwgMHg2MiwgMHhkYiwKKyAgICB9OworICAgIHN0cmluZyBrZXkgPSBtYWtlX3N0cmluZyhrZXlfYnl0ZXMpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoaW1wb3J0X3BhcmFtcywgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoKSk7CisKKyAgICAvLyBDb3JydXB0IGtleSBhbmQgYXR0ZW1wdCB0byBkZWNyeXB0CisgICAga2V5WzBdID0gMDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KGltcG9ydF9wYXJhbXMsIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKGNpcGhlcnRleHQsICZwbGFpbnRleHQpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUFhZE5vRGF0YQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIHdvcmtzIHdoZW4gcHJvdmlkZWQgYWRkaXRpb25hbCBhdXRoZW50aWNhdGVkIGRhdGEsIGJ1dCBubyBkYXRhIHRvCisgKiBlbmNyeXB0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21BYWROb0RhdGEpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBhYWQgPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIGF1dG8gZmluaXNoX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCBhYWQuZGF0YSgpLCBhYWQuc2l6ZSgpKTsKKworICAgIC8vIEVuY3J5cHQKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgIiIgLyogaW5wdXQgKi8sICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKyAgICBFWFBFQ1RfVFJVRShmaW5pc2hfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBwYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIGNpcGhlcnRleHQsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJnBsYWludGV4dCkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzYxNTAzMikiOworCisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoIiIsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtTXVsdGlQYXJ0QWFkCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgR0NNIG1vZGUgd29ya3Mgd2hlbiBwcm92aWRlZCBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YSBpbiBtdWx0aXBsZSBjaHVua3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbU11bHRpUGFydEFhZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGF1dG8gdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vIiwgKHNpemVfdCkzKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisKKyAgICAvLyBObyBkYXRhLCBBQUQgb25seS4KKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCB1cGRhdGVfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsICIiIC8qIGlucHV0ICovLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKDBVLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKDBVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBBQUQgYW5kIGRhdGEuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKCIiIC8qIGlucHV0ICovLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZS4KKyAgICBiZWdpbl9wYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdAorICAgIHVwZGF0ZV9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgImZvb2ZvbyIsIChzaXplX3QpNik7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgYmVnaW5fcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsIGNpcGhlcnRleHQsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cGRhdGVfb3V0X3BhcmFtcywgJnBsYWludGV4dCkpOworICAgIEVYUEVDVF9UUlVFKHVwZGF0ZV9vdXRfcGFyYW1zLmVtcHR5KCkpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUFhZE91dE9mT3JkZXIKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSBmYWlscyBjb3JyZWN0bHkgd2hlbiBnaXZlbiBBQUQgYWZ0ZXIgZGF0YSB0byBlbmNpcGhlci4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtQWFkT3V0T2ZPcmRlcikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGF1dG8gdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vIiwgKHNpemVfdCkzKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisKKyAgICAvLyBObyBkYXRhLCBBQUQgb25seS4KKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCB1cGRhdGVfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsICIiIC8qIGlucHV0ICovLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKDBVLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKDBVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBBQUQgYW5kIGRhdGEuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBNb3JlIEFBRAorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfVEFHLCBVcGRhdGUob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgIiIsICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKworICAgIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21CYWRBYWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gZGVjcnlwdGlvbiBmYWlscyBjb3JyZWN0bHkgd2hlbiBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0ZSBpcyB3cm9uZy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtQmFkQWFkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgYXV0byBiZWdpbl9wYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIGF1dG8gZmluaXNoX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vYmFyIiwgKHNpemVfdCk2KTsKKworICAgIC8vIEVuY3J5cHQKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICBmaW5pc2hfcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFyZm9vIiAvKiBXcm9uZyBBQUQgKi8sIChzaXplX3QpNik7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtV3JvbmdOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBkZWNyeXB0aW9uIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSBub25jZSBpcyBpbmNvcnJlY3QuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbVdyb25nTm9uY2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsICJmb29iYXIiLCAoc2l6ZV90KTYpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgYmVnaW5fcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisKKyAgICAvLyBXcm9uZyBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBIaWRsQnVmKCIxMjM0NTY3ODkwMTIiKSk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7CisKKyAgICAvLyBXaXRoIHdyb25nIG5vbmNlLCBzaG91bGQgaGF2ZSBnb3R0ZW4gZ2FyYmFnZSBwbGFpbnRleHQgKG9yIG5vbmUpLgorICAgIEVYUEVDVF9ORShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUNvcnJ1cHRUYWcKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gZGVjcnlwdGlvbiBmYWlscyBjb3JyZWN0bHkgd2hlbiB0aGUgdGFnIGlzIHdyb25nLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Db3JydXB0VGFnKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgYWFkID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsIGFhZC5kYXRhKCksIGFhZC5zaXplKCkpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBDb3JydXB0IHRhZworICAgICsrKCpjaXBoZXJ0ZXh0LnJiZWdpbigpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBwYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgTWF4T3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBNYXhPcGVyYXRpb25zVGVzdC5UZXN0TGltaXRBZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBtYXggdXNlcyBwZXIgYm9vdCB0YWcgd29ya3MgY29ycmVjdGx5IHdpdGggQUVTIGtleXMuCisgKi8KK1RFU1RfRihNYXhPcGVyYXRpb25zVGVzdCwgVGVzdExpbWl0QWVzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjYk1vZGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFYX1VTRVNfUEVSX0JPT1QsIDMpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2JNb2RlKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisKKyAgICBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKworICAgIC8vIEZvdXJ0aCB0aW1lIHNob3VsZCBmYWlsLgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OktFWV9NQVhfT1BTX0VYQ0VFREVELCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIE1heE9wZXJhdGlvbnNUZXN0LlRlc3RMaW1pdEFlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIG1heCB1c2VzIHBlciBib290IHRhZyB3b3JrcyBjb3JyZWN0bHkgd2l0aCBSU0Ega2V5cy4KKyAqLworVEVTVF9GKE1heE9wZXJhdGlvbnNUZXN0LCBUZXN0TGltaXRSc2EpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLk5vRGlnZXN0T3JQYWRkaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQVhfVVNFU19QRVJfQk9PVCwgMykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLk5vRGlnZXN0T3JQYWRkaW5nKCk7CisKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKworICAgIC8vIEZvdXJ0aCB0aW1lIHNob3VsZCBmYWlsLgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OktFWV9NQVhfT1BTX0VYQ0VFREVELCBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBwYXJhbXMpKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBBZGRFbnRyb3B5VGVzdDsKKworLyoKKyAqIEFkZEVudHJvcHlUZXN0LkFkZEVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAuICBUaGVyZSdzIG5vIHdheSB0byB0ZXN0IHRoYXQgZW50cm9weSBpcworICogYWN0dWFsbHkgYWRkZWQuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkRW50cm9weSkgeworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBrZXltYXN0ZXIoKS5hZGRSbmdFbnRyb3B5KEhpZGxCdWYoImZvbyIpKSk7Cit9CisKKy8qCisgKiBBZGRFbnRyb3B5VGVzdC5BZGRFbXB0eUVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAgd2hlbiBnaXZlbiBhbiBlbXB0eSBidWZmZXIuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkRW1wdHlFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZigpKSk7Cit9CisKKy8qCisgKiBBZGRFbnRyb3B5VGVzdC5BZGRMYXJnZUVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAgd2hlbiBnaXZlbiBhIGxhcmdpc2ggYW1vdW50IG9mIGRhdGEuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkTGFyZ2VFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZihzdHJpbmcoMTYgKiAxMDI0LCAnYScpKSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEF0dGVzdGF0aW9uVGVzdDsKKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5Sc2FBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIFJTQSBrZXlzIHdvcmtzIGFuZCBnZW5lcmF0ZXMgdGhlIGV4cGVjdGVkIG91dHB1dC4KKyAqLworVEVTVF9GKEF0dGVzdGF0aW9uVGVzdCwgUnNhQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKKyAgICBFWFBFQ1RfR0UoY2VydF9jaGFpbi5zaXplKCksIDJVKTsKKyAgICBFWFBFQ1RfVFJVRSh2ZXJpZnlfY2hhaW4oY2VydF9jaGFpbikpOworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICB2ZXJpZnlfYXR0ZXN0YXRpb25fcmVjb3JkKCJjaGFsbGVuZ2UiLCAiZm9vIiwgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRfY2hhaW5bMF0pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5Sc2FBdHRlc3RhdGlvblJlcXVpcmVzQXBwSWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBSU0EgcmVxdWlyZXMgYXBwIElELgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBSc2FBdHRlc3RhdGlvblJlcXVpcmVzQXBwSWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OkFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcsCisgICAgICAgICAgICAgIEF0dGVzdEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5FY0F0dGVzdGF0aW9uCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlc3RpbmcgdG8gRUMga2V5cyB3b3JrcyBhbmQgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBvdXRwdXQuCisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIEVjQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKKyAgICBFWFBFQ1RfR0UoY2VydF9jaGFpbi5zaXplKCksIDJVKTsKKyAgICBFWFBFQ1RfVFJVRSh2ZXJpZnlfY2hhaW4oY2VydF9jaGFpbikpOworCisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIHZlcmlmeV9hdHRlc3RhdGlvbl9yZWNvcmQoImNoYWxsZW5nZSIsICJmb28iLCAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9jaGFpblswXSkpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkVjQXR0ZXN0YXRpb25SZXF1aXJlc0F0dGVzdGF0aW9uQXBwSWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBFQyBrZXlzIHJlcXVpcmVzIGFwcCBJRAorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBFY0F0dGVzdGF0aW9uUmVxdWlyZXNBdHRlc3RhdGlvbkFwcElkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfSU5DTFVERV9VTklRVUVfSUQpKSk7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gY2VydF9jaGFpbjsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRF9NSVNTSU5HLAorICAgICAgICAgICAgICBBdHRlc3RLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZjZXJ0X2NoYWluKSk7Cit9CisKKy8qCisgKiBBdHRlc3RhdGlvblRlc3QuQWVzQXR0ZXN0YXRpb24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBBRVMga2V5cyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBBZXNBdHRlc3RhdGlvbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQUxHT1JJVEhNLAorICAgICAgICBBdHRlc3RLZXkoCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lELCBIaWRsQnVmKCJmb28iKSksCisgICAgICAgICAgICAmY2VydF9jaGFpbikpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkhtYWNBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIEhNQUMga2V5cyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBIbWFjQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gY2VydF9jaGFpbjsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0FMR09SSVRITSwKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBLZXlEZWxldGlvblRlc3Q7CisKKy8qKgorICogS2V5RGVsZXRpb25UZXN0LkRlbGV0ZUtleQorICoKKyAqIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkLCBEZWxldGVLZXkgaW52YWxpZGF0ZXMgYSBmb3JtZXJseQorICogdmFsaWQga2V5IGJsb2IuCisgKi8KK1RFU1RfRihLZXlEZWxldGlvblRlc3QsIERlbGV0ZUtleSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworCisgICAgLy8gRGVsZXRlIG11c3Qgd29yayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQXV0aG9yaXphdGlvblNldCB0ZWVFbmZvcmNlZChrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCk7CisgICAgYm9vbCByb2xsYmFja19wcm90ZWN0ZWQgPSB0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UKTsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSh0cnVlIC8qIGtlZXAga2V5IGJsb2IgKi8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGRlbGV0ZV9yZXN1bHQgPSBEZWxldGVLZXkodHJ1ZSAvKiBrZWVwIGtleSBibG9iICovKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6Ok9LIHwgZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisKKyAgICBpZiAocm9sbGJhY2tfcHJvdGVjdGVkKSB7CisgICAgICAgIEVYUEVDVF9FUSgKKyAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQiwKKyAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIGtleV9ibG9iXywgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0KKyAgICBBYm9ydElmTmVlZGVkKCk7CisgICAga2V5X2Jsb2JfID0gSGlkbEJ1ZigpOworfQorCisvKioKKyAqIEtleURlbGV0aW9uVGVzdC5EZWxldGVJbnZhbGlkS2V5CisgKgorICogVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBIQUwgZXhjZXB0cyBpbnZhbGlkIGtleSBibG9icy4KKyAqLworVEVTVF9GKEtleURlbGV0aW9uVGVzdCwgRGVsZXRlSW52YWxpZEtleSkgeworICAgIC8vIEdlbmVyYXRlIGtleSBqdXN0IHRvIGNoZWNrIGlmIHJvbGxiYWNrIHByb3RlY3Rpb24gaXMgaW1wbGVtZW50ZWQKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKworICAgIC8vIERlbGV0ZSBtdXN0IHdvcmsgaWYgcm9sbGJhY2sgcHJvdGVjdGlvbiBpcyBpbXBsZW1lbnRlZAorICAgIEF1dGhvcml6YXRpb25TZXQgdGVlRW5mb3JjZWQoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQpOworICAgIGJvb2wgcm9sbGJhY2tfcHJvdGVjdGVkID0gdGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX1JPTExCQUNLX1JFU0lTVEFOVCk7CisKKyAgICAvLyBEZWxldGUgdGhlIGtleSB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXN1bHQgYXQgdGhpcyBwb2ludC4KKyAgICBEZWxldGVLZXkoKTsKKworICAgIC8vIE5vdyBjcmVhdGUgYW4gaW52YWxpZCBrZXkgYmxvYiBhbmQgZGVsZXRlIGl0LgorICAgIGtleV9ibG9iXyA9IEhpZGxCdWYoImp1c3Qgc29tZSBnYXJiYWdlIGRhdGEgd2hpY2ggaXMgbm90IGEgdmFsaWQga2V5IGJsb2IiKTsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGRlbGV0ZV9yZXN1bHQgPSBEZWxldGVLZXkoKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6Ok9LIHwgZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KK30KKworLyoqCisgKiBLZXlEZWxldGlvblRlc3QuRGVsZXRlQWxsS2V5cworICoKKyAqIFRoaXMgdGVzdCBpcyBkaXNhcm1lZCBieSBkZWZhdWx0LiBUbyBhcm0gaXQgdXNlIC0tYXJtX2RlbGV0ZUFsbEtleXMuCisgKgorICogQkVXQVJFOiBUaGlzIHRlc3QgaGFzIHNlcmlvdXMgc2lkZSBlZmZlY3RzLiBBbGwgdXNlciBrZXlzIHdpbGwgYmUgbG9zdCEgVGhpcyBpbmNsdWRlcworICogRkJFL0ZERSBlbmNyeXB0aW9uIGtleXMsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGRldmljZSB3aWxsIG5vdCBldmVuIGJvb3QgdW50aWwgYWZ0ZXIgdGhlCisgKiBkZXZpY2UgaGFzIGJlZW4gd2lwZWQgbWFudWFsbHkgKGUuZy4sIGZhc3Rib290IGZsYXNoYWxsIC13KSwgYW5kIG5ldyBGQkUvRkRFIGtleXMgaGF2ZQorICogYmVlbiBwcm92aXNpb25lZC4gVXNlIHRoaXMgdGVzdCBvbmx5IG9uIGRlZGljYXRlZCB0ZXN0aW5nIGRldmljZXMgdGhhdCBoYXZlIG5vIHZhbHVhYmxlCisgKiBjcmVkZW50aWFscyBzdG9yZWQgaW4gS2V5c3RvcmUvS2V5bWFzdGVyLgorICovCitURVNUX0YoS2V5RGVsZXRpb25UZXN0LCBEZWxldGVBbGxLZXlzKSB7CisgICAgaWYgKCFhcm1fZGVsZXRlQWxsS2V5cykgcmV0dXJuOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworCisgICAgLy8gRGVsZXRlIG11c3Qgd29yayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQXV0aG9yaXphdGlvblNldCB0ZWVFbmZvcmNlZChrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCk7CisgICAgYm9vbCByb2xsYmFja19wcm90ZWN0ZWQgPSB0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UKTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVBbGxLZXlzKCkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKAorICAgICAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX0tFWV9CTE9CLAorICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJlZ2luX291dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7CisgICAgfQorICAgIEFib3J0SWZOZWVkZWQoKTsKKyAgICBrZXlfYmxvYl8gPSBIaWRsQnVmKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0Cit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcG9zaXRpb25hbF9hcmdzOworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgKytpKSB7CisgICAgICAgIGlmIChhcmd2W2ldWzBdID09ICctJykgeworICAgICAgICAgICAgaWYgKHN0ZDo6c3RyaW5nKGFyZ3ZbaV0pID09ICItLWFybV9kZWxldGVBbGxLZXlzIikgeworICAgICAgICAgICAgICAgIGFybV9kZWxldGVBbGxLZXlzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uYWxfYXJncy5wdXNoX2JhY2soYXJndltpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHBvc2l0aW9uYWxfYXJncy5zaXplKCkpIHsKKyAgICAgICAgQUxPR0koIlJ1bm5pbmcga2V5bWFzdGVyIFZUUyBhZ2FpbnN0IHNlcnZpY2UgXCIlc1wiIiwgcG9zaXRpb25hbF9hcmdzWzBdLmNfc3RyKCkpOworICAgICAgICBzZXJ2aWNlX25hbWUgPSBwb3NpdGlvbmFsX2FyZ3NbMF07CisgICAgfQorICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI0MWVmMQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX3RhZ3MuaApAQCAtMCwwICsxLDQ1MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE0IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBTWVNURU1fU0VDVVJJVFlfS0VZU1RPUkVfS0VZTUFTVEVSX1RBR1NfSF8KKyNkZWZpbmUgU1lTVEVNX1NFQ1VSSVRZX0tFWVNUT1JFX0tFWU1BU1RFUl9UQUdTX0hfCisKKy8qKgorICogVGhpcyBoZWFkZXIgY29udGFpbnMgdmFyaW91cyBkZWZpbml0aW9ucyB0aGF0IG1ha2Ugd29ya2luZyB3aXRoIGtleW1hc3RlciB0YWdzIHNhZmVyIGFuZCBlYXNpZXIuCisgKgorICogSXQgbWFrZXMgdXNlIG9mIGEgZmFpciBhbW91bnQgb2YgdGVtcGxhdGUgbWV0YXByb2dyYW1taW5nLiBUaGUgbWV0YXByb2dyYW1taW5nIHNlcnZlcyB0aGUgcHVycG9zZQorICogb2YgbWFraW5nIGl0IGltcG9zc2libGUgdG8gbWFrZSBjZXJ0YWluIGNsYXNzZXMgb2YgbWlzdGFrZXMgd2hlbiBvcGVyYXRpbmcgb24ga2V5bWFzdGVyCisgKiBhdXRob3JpemF0aW9ucy4gIEZvciBleGFtcGxlLCBpdCdzIGFuIGVycm9yIHRvIGNyZWF0ZSBhIEtleVBhcmFtZXRlciB3aXRoIHRhZyA9PSBUYWc6OlBVUlBPU0UKKyAqIGFuZCB0aGVuIHRvIGFzc2lnbiBBbGdvcml0aG06OlJTQSB0byBhbGdvcml0aG0gZWxlbWVudCBvZiBpdHMgdW5pb24uIEJ1dCBiZWNhdXNlIHRoZSB1c2VyCisgKiBtdXN0IGNob29zZSB0aGUgdW5pb24gZmllbGQsIHRoZXJlIGNvdWxkIGJlIGEgbWlzbWF0Y2ggd2hpY2ggdGhlIGNvbXBpbGVyIGhhcyBub3cgd2F5IHRvCisgKiBkaWFnbm9zZS4KKyAqCisgKiBUaGUgbWFjaGluZXJ5IGluIHRoaXMgaGVhZGVyIHNvbHZlcyB0aGVzZSBwcm9ibGVtcyBieSBkZXNjcmliaW5nIHdoaWNoIHVuaW9uIGZpZWxkIGNvcnJlc3BvbmRzCisgKiB0byB3aGljaCBUYWcuIENlbnRyYWwgdG8gdGhpcyBtZWNoYW5pc20gaXMgdGhlIHRlbXBsYXRlIFR5cGVkVGFnLiBJdCBoYXMgemVybyBzaXplIGFuZCBiaW5kcyBhCisgKiBudW1lcmljIFRhZyB0byBhIHR5cGUgdGhhdCB0aGUgY29tcGlsZXIgdW5kZXJzdGFuZHMuIEJ5IG1lYW5zIG9mIHRoZSBtYWNybyBERUNMQVJFX1RZUEVEX1RBRywKKyAqIHdlIGRlY2xhcmUgdHlwZXMgZm9yIGVhY2ggb2YgdGhlIHRhZ3MgZGVmaW5lZCBpbiBoYXJkd2FyZS9pbnRlcmZhY2VzL2tleW1hc3Rlci8yLjAvdHlwZXMuaGFsLgorICoKKyAqIFRoZSBtYWNybyBERUNMQVJFX1RZUEVEX1RBRyhuYW1lKSBnZW5lcmF0ZXMgYSB0eXBlbmFtZSBUQUdfbmFtZV90IGFuZCBhIHplcm8gc2l6ZWQgaW5zdGFuY2UKKyAqIFRBR19uYW1lLiBPbmNlIHRoZXNlIHR5cGVkIHRhZ3MgaGF2ZSBiZWVuIGRlY2xhcmVkIHdlIGRlZmluZSBtZXRhZnVuY3Rpb25zIG1hcHBpbmcgdGhlIGVhY2ggdGFnCisgKiB0byBpdHMgdmFsdWUgYysrIHR5cGUgYW5kIHRoZSBjb3JyZWN0IHVuaW9uIGVsZW1lbnQgb2YgS2V5UGFyYW1ldGVyLiBUaGlzIGlzIGRvbmUgYnkgbWVhbnMgb2YKKyAqIHRoZSBtYWNyb3MgTUFLRV9UQUdfKlZBTFVFX0FDQ0VTU09SLCB3aGljaCBnZW5lcmF0ZXMgVHlwZWRUYWcyVmFsdWVUeXBlLCBhIG1ldGFmdW5jdGlvbiBtYXBwaW5nCisgKiBhIHR5cGVkIHRhZyB0byB0aGUgY29ycmVzcG9uZGluZyBjKysgdHlwZSwgYW5kIGFjY2VzcyBmdW5jdGlvbiwgYWNjZXNzVGFnVmFsdWUgcmV0dXJuaW5nIGEKKyAqIHJlZmVyZW5jZSB0byB0aGUgY29ycmVjdCBlbGVtZW50IG9mIEtleVBhcmFtZXRlci4KKyAqIEUuZy46CisgKiAgICAgIGdpdmVuICJLZXlQYXJhbWV0ZXIgcGFyYW07IiB0aGVuICJhY2Nlc3NUYWdWYWx1ZShUQUdfUFVSUE9TRSwgcGFyYW0pIgorICogICAgICB5aWVsZHMgYSByZWZlcmVuY2UgdG8gcGFyYW0uZi5wdXJwb3NlCisgKiBJZiB1c2VkIGluIGFuIGFzc2lnbm1lbnQgdGhlIGNvbXBpbGVyIGNhbiBub3cgY2hlY2sgdGhlIGNvbXBhdGliaWxpdHkgb2YgdGhlIGFzc2lnbmVkIHZhbHVlLgorICoKKyAqIEZvciBjb252ZW5pZW5jZSB3ZSBhbHNvIHByb3ZpZGUgdGhlIGNvbnN0cnVjdG9yIGxpa2UgZnVuY3Rpb24gQXV0aG9yaXphdGlvbigpLgorICogQXV0aG9yaXphdGlvbiB0YWtlcyBhIHR5cGVkIHRhZyBhbmQgYSB2YWx1ZSBhbmQgY2hlY2tzIGF0IGNvbXBpbGUgdGltZSB3aGV0aGVyIHRoZSB2YWx1ZSBnaXZlbgorICogaXMgc3VpdGFibGUgZm9yIHRoZSBnaXZlbiB0YWcuIEF0IHJ1bnRpbWUgaXQgY3JlYXRlcyBhIG5ldyBLZXlQYXJhbWV0ZXIgaW5pdGlhbGl6ZWQgd2l0aCB0aGUKKyAqIGdpdmVuIHRhZyBhbmQgdmFsdWUgYW5kIHJldHVybnMgaXQgYnkgdmFsdWUuCisgKgorICogVGhlIHNlY29uZCBjb252ZW5pZW5jZSBmdW5jdGlvbiwgYXV0aG9yaXphdGlvblZhbHVlLCBhbGxvd3MgYWNjZXNzIHRvIHRoZSBLZXlQYXJhbWV0ZXIgdmFsdWUgaW4KKyAqIGEgc2FmZSB3YXkuIEl0IHRha2VzIGEgdHlwZWQgdGFnIGFuZCBhIEtleVBhcmFtZXRlciBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFsdWUgd3JhcHBlZAorICogYnkgTnVsbE9yLiBOdWxsT3IgaGFzIG91dC1vZi1iYW5kIGluZm9ybWF0aW9uIGFib3V0IHdoZXRoZXIgaXQgaXMgc2F2ZSB0byBhY2Nlc3MgdGhlIHdyYXBwZWQKKyAqIHJlZmVyZW5jZS4KKyAqIEUuZy46CisgKiAgICAgIGF1dG8gcGFyYW0gPSBBdXRob3JpemF0aW9uKFRBR19BTEdPUklUTSwgQWxnb3JpdGhtOjpSU0EpOworICogICAgICBhdXRvIHZhbHVlMSA9IGF1dGhvcml6YXRpb25WYWx1ZShUQUdfUFVSUE9TRSwgcGFyYW0pOworICogICAgICBhdXRvIHZhbHVlMiA9IGF1dGhvcml6YXRpb25WYWx1ZShUQUdfQUxHT1JJVE0sIHBhcmFtKTsKKyAqIHZhbHVlMS5pc09rKCkgeWllbGRzIGZhbHNlLCBidXQgdmFsdWUyLmlzT2soKSB5aWVsZHMgdHJ1ZSwgdGh1cyB2YWx1ZTIudmFsdWUoKSBpcyBzYXZlIHRvIGFjY2Vzcy4KKyAqLworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lId0tleW1hc3RlckRldmljZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2h3X2F1dGhfdG9rZW4uaD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCisvLyBUaGUgZm9sbG93aW5nIGNyZWF0ZSB0aGUgbnVtZXJpYyB2YWx1ZXMgdGhhdCBLTV9UQUdfUEFERElORyBhbmQgS01fVEFHX0RJR0VTVCB1c2VkIHRvIGhhdmUuICBXZQorLy8gbmVlZCB0aGVzZSBvbGQgdmFsdWVzIHRvIGJlIGFibGUgdG8gc3VwcG9ydCBvbGQga2V5cyB0aGF0IHVzZSB0aGVtLgorc3RhdGljIGNvbnN0IGludDMyX3QgS01fVEFHX0RJR0VTVF9PTEQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihUYWdUeXBlOjpFTlVNKSB8IDU7CitzdGF0aWMgY29uc3QgaW50MzJfdCBLTV9UQUdfUEFERElOR19PTEQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihUYWdUeXBlOjpFTlVNKSB8IDc7CisKK2NvbnN0ZXhwciBUYWdUeXBlIHR5cGVGcm9tVGFnKFRhZyB0YWcpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGFnVHlwZT4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZykgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMHhmMDAwMDAwMCkpOworfQorCisvKioKKyAqIFR5cGVkVGFnIGlzIGEgdGVtcGxhdGl6ZWQgdmVyc2lvbiBvZiBUYWcsIHdoaWNoIHByb3ZpZGVzIGNvbXBpbGUtdGltZSBjaGVja2luZyBvZiBrZXltYXN0ZXIgdGFnCisgKiB0eXBlcy4gSW5zdGFuY2VzIGFyZSBjb252ZXJ0aWJsZSB0byBUYWcsIHNvIHRoZXkgY2FuIGJlIHVzZWQgd2hlcmV2ZXIgVGFnIGlzIGV4cGVjdGVkLCBhbmQKKyAqIGJlY2F1c2UgdGhleSBlbmNvZGUgdGhlIHRhZyB0eXBlIGl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGZ1bmN0aW9uIG92ZXJsb2FkcyB0aGF0IG9ubHkgb3BlcmF0ZSBvbgorICogdGFncyB3aXRoIGEgcGFydGljdWxhciB0eXBlLgorICovCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4gc3RydWN0IFR5cGVkVGFnIHsKKyAgICBpbmxpbmUgVHlwZWRUYWcoKSB7CisgICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0J3MgaW1wb3NzaWJsZSB0byBjcmVhdGUgYSBUeXBlZFRhZyBpbnN0YW5jZSB3aG9zZSAndGFnJyBkb2Vzbid0IGhhdmUgdHlwZQorICAgICAgICAvLyAndGFnX3R5cGUnLiAgQXR0ZW1wdGluZyB0byBpbnN0YW50aWF0ZSBhIHRhZyB3aXRoIHRoZSB3cm9uZyB0eXBlIHdpbGwgcmVzdWx0IGluIGEgY29tcGlsZQorICAgICAgICAvLyBlcnJvciAobm8gbWF0Y2ggZm9yIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIFN0YXRpY0Fzc2VydDxmYWxzZT4pLCB3aXRoIG5vIHJ1bi10aW1lIGNvc3QuCisgICAgICAgIHN0YXRpY19hc3NlcnQodHlwZUZyb21UYWcodGFnKSA9PSB0YWdfdHlwZSwgIm1pc21hdGNoIGJldHdlZW4gdGFnIGFuZCB0YWdfdHlwZSIpOworICAgIH0KKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgVGFnKCkgeyByZXR1cm4gdGFnOyB9CisgICAgY29uc3RleHByIGxvbmcgbWFza2VkVGFnKCkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZykgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMHgwZmZmZmZmZikpOworICAgIH0KK307CisKK3RlbXBsYXRlIDxUYWcgdGFnPiBzdHJ1Y3QgVGFnMlR5cGVkVGFnIHsgdHlwZWRlZiBUeXBlZFRhZzx0eXBlRnJvbVRhZyh0YWcpLCB0YWc+IHR5cGU7IH07CisKK3RlbXBsYXRlIDxUYWcgdGFnPiBzdHJ1Y3QgVGFnMlN0cmluZzsKKworI2RlZmluZSBfVEFHU19TVFJJTkdJRlkoeCkgI3gKKyNkZWZpbmUgVEFHU19TVFJJTkdJRlkoeCkgX1RBR1NfU1RSSU5HSUZZKHgpCisKKyNkZWZpbmUgREVDTEFSRV9UWVBFRF9UQUcobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFRhZzJUeXBlZFRhZzxUYWc6Om5hbWU+Ojp0eXBlIFRBR18jI25hbWUjI190OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBleHRlcm4gVEFHXyMjbmFtZSMjX3QgVEFHXyMjbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVGFnMlN0cmluZzxUYWc6Om5hbWU+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHZhbHVlKCkgeyByZXR1cm4gIlRhZzo6IiBUQUdTX1NUUklOR0lGWShuYW1lKTsgfSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKK0RFQ0xBUkVfVFlQRURfVEFHKElOVkFMSUQpOworREVDTEFSRV9UWVBFRF9UQUcoS0VZX1NJWkUpOworREVDTEFSRV9UWVBFRF9UQUcoTUFDX0xFTkdUSCk7CitERUNMQVJFX1RZUEVEX1RBRyhDQUxMRVJfTk9OQ0UpOworREVDTEFSRV9UWVBFRF9UQUcoTUlOX01BQ19MRU5HVEgpOworREVDTEFSRV9UWVBFRF9UQUcoUlNBX1BVQkxJQ19FWFBPTkVOVCk7CitERUNMQVJFX1RZUEVEX1RBRyhFQ0lFU19TSU5HTEVfSEFTSF9NT0RFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKElOQ0xVREVfVU5JUVVFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFDVElWRV9EQVRFVElNRSk7CitERUNMQVJFX1RZUEVEX1RBRyhPUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUpOworREVDTEFSRV9UWVBFRF9UQUcoVVNBR0VfRVhQSVJFX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1JTl9TRUNPTkRTX0JFVFdFRU5fT1BTKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1BWF9VU0VTX1BFUl9CT09UKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTF9VU0VSUyk7CitERUNMQVJFX1RZUEVEX1RBRyhVU0VSX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTRVJfU0VDVVJFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE5PX0FVVEhfUkVRVUlSRUQpOworREVDTEFSRV9UWVBFRF9UQUcoQVVUSF9USU1FT1VUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTE9XX1dISUxFX09OX0JPRFkpOworREVDTEFSRV9UWVBFRF9UQUcoQUxMX0FQUExJQ0FUSU9OUyk7CitERUNMQVJFX1RZUEVEX1RBRyhBUFBMSUNBVElPTl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhBUFBMSUNBVElPTl9EQVRBKTsKK0RFQ0xBUkVfVFlQRURfVEFHKENSRUFUSU9OX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFJPTExCQUNLX1JFU0lTVEFOVCk7CitERUNMQVJFX1RZUEVEX1RBRyhST09UX09GX1RSVVNUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFTU09DSUFURURfREFUQSk7CitERUNMQVJFX1RZUEVEX1RBRyhOT05DRSk7CitERUNMQVJFX1RZUEVEX1RBRyhBVVRIX1RPS0VOKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJPT1RMT0FERVJfT05MWSk7CitERUNMQVJFX1RZUEVEX1RBRyhPU19WRVJTSU9OKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE9TX1BBVENITEVWRUwpOworREVDTEFSRV9UWVBFRF9UQUcoVU5JUVVFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFUVEVTVEFUSU9OX0NIQUxMRU5HRSk7CitERUNMQVJFX1RZUEVEX1RBRyhBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhSRVNFVF9TSU5DRV9JRF9ST1RBVElPTik7CisKK0RFQ0xBUkVfVFlQRURfVEFHKFBVUlBPU0UpOworREVDTEFSRV9UWVBFRF9UQUcoQUxHT1JJVEhNKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJMT0NLX01PREUpOworREVDTEFSRV9UWVBFRF9UQUcoRElHRVNUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFBBRERJTkcpOworREVDTEFSRV9UWVBFRF9UQUcoQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMpOworREVDTEFSRV9UWVBFRF9UQUcoT1JJR0lOKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTRVJfQVVUSF9UWVBFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEtERik7CitERUNMQVJFX1RZUEVEX1RBRyhFQ19DVVJWRSk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBFbGVtcz4gc3RydWN0IE1ldGFMaXN0IHt9OworCit1c2luZyBhbGxfdGFnc190ID0gTWV0YUxpc3Q8CisgICAgVEFHX0lOVkFMSURfdCwgVEFHX0tFWV9TSVpFX3QsIFRBR19NQUNfTEVOR1RIX3QsIFRBR19DQUxMRVJfTk9OQ0VfdCwgVEFHX01JTl9NQUNfTEVOR1RIX3QsCisgICAgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlRfdCwgVEFHX0VDSUVTX1NJTkdMRV9IQVNIX01PREVfdCwgVEFHX0lOQ0xVREVfVU5JUVVFX0lEX3QsCisgICAgVEFHX0FDVElWRV9EQVRFVElNRV90LCBUQUdfT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FX3QsIFRBR19VU0FHRV9FWFBJUkVfREFURVRJTUVfdCwKKyAgICBUQUdfTUlOX1NFQ09ORFNfQkVUV0VFTl9PUFNfdCwgVEFHX01BWF9VU0VTX1BFUl9CT09UX3QsIFRBR19BTExfVVNFUlNfdCwgVEFHX1VTRVJfSURfdCwKKyAgICBUQUdfVVNFUl9TRUNVUkVfSURfdCwgVEFHX05PX0FVVEhfUkVRVUlSRURfdCwgVEFHX0FVVEhfVElNRU9VVF90LCBUQUdfQUxMT1dfV0hJTEVfT05fQk9EWV90LAorICAgIFRBR19BTExfQVBQTElDQVRJT05TX3QsIFRBR19BUFBMSUNBVElPTl9JRF90LCBUQUdfQVBQTElDQVRJT05fREFUQV90LCBUQUdfQ1JFQVRJT05fREFURVRJTUVfdCwKKyAgICBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UX3QsIFRBR19ST09UX09GX1RSVVNUX3QsIFRBR19BU1NPQ0lBVEVEX0RBVEFfdCwgVEFHX05PTkNFX3QsCisgICAgVEFHX0FVVEhfVE9LRU5fdCwgVEFHX0JPT1RMT0FERVJfT05MWV90LCBUQUdfT1NfVkVSU0lPTl90LCBUQUdfT1NfUEFUQ0hMRVZFTF90LCBUQUdfVU5JUVVFX0lEX3QsCisgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV90LCBUQUdfQVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfdCwgVEFHX1JFU0VUX1NJTkNFX0lEX1JPVEFUSU9OX3QsCisgICAgVEFHX1BVUlBPU0VfdCwgVEFHX0FMR09SSVRITV90LCBUQUdfQkxPQ0tfTU9ERV90LCBUQUdfRElHRVNUX3QsIFRBR19QQURESU5HX3QsCisgICAgVEFHX0JMT0JfVVNBR0VfUkVRVUlSRU1FTlRTX3QsIFRBR19PUklHSU5fdCwgVEFHX1VTRVJfQVVUSF9UWVBFX3QsIFRBR19LREZfdCwgVEFHX0VDX0NVUlZFX3Q+OworCisvKiBpbXBsZW1lbnRhdGlvbiBpbiBrZXlzdG9yZV91dGlscy5jcHAgKi8KK2V4dGVybiBjb25zdCBjaGFyKiBzdHJpbmdpZnlUYWcoVGFnIHRhZyk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUeXBlZFRhZ1R5cGU+IHN0cnVjdCBUeXBlZFRhZzJWYWx1ZVR5cGU7CisKKyNkZWZpbmUgTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IodGFnX3R5cGUsIGZpZWxkX25hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gc3RydWN0IFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj4geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdHlwZWRlZiBkZWNsdHlwZShzdGF0aWNfY2FzdDxLZXlQYXJhbWV0ZXIqPihudWxscHRyKS0+ZmllbGRfbmFtZSkgdHlwZTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbmxpbmUgYXV0byBhY2Nlc3NUYWdWYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLT5jb25zdCBkZWNsdHlwZShwYXJhbS5maWVsZF9uYW1lKSYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHBhcmFtLmZpZWxkX25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbmxpbmUgYXV0byBhY2Nlc3NUYWdWYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLT5kZWNsdHlwZShwYXJhbS5maWVsZF9uYW1lKSYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHBhcmFtLmZpZWxkX25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVMT05HLCBmLmxvbmdJbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6VUxPTkdfUkVQLCBmLmxvbmdJbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6REFURSwgZi5kYXRlVGltZSkKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVJTlQsIGYuaW50ZWdlcikKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVJTlRfUkVQLCBmLmludGVnZXIpCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpCT09MLCBmLmJvb2xWYWx1ZSkKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OkJZVEVTLCBibG9iKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6QklHTlVNLCBibG9iKQorCisjZGVmaW5lIE1BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IodHlwZWRfdGFnLCBmaWVsZF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPD4gc3RydWN0IFR5cGVkVGFnMlZhbHVlVHlwZTxkZWNsdHlwZSh0eXBlZF90YWcpPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgZGVjbHR5cGUoc3RhdGljX2Nhc3Q8S2V5UGFyYW1ldGVyKj4obnVsbHB0ciktPmZpZWxkX25hbWUpIHR5cGU7ICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoZGVjbHR5cGUodHlwZWRfdGFnKSwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+Y29uc3QgZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoZGVjbHR5cGUodHlwZWRfdGFnKSwgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+ZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19BTEdPUklUSE0sIGYuYWxnb3JpdGhtKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsIGYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQkxPQ0tfTU9ERSwgZi5ibG9ja01vZGUpCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19ESUdFU1QsIGYuZGlnZXN0KQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfRUNfQ1VSVkUsIGYuZWNDdXJ2ZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX0tERiwgZi5rZXlEZXJpdmF0aW9uRnVuY3Rpb24pCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19PUklHSU4sIGYub3JpZ2luKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfUEFERElORywgZi5wYWRkaW5nTW9kZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1BVUlBPU0UsIGYucHVycG9zZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1VTRVJfQVVUSF9UWVBFLCBmLmhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUpCisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZSBWYWx1ZVQ+CitpbmxpbmUgS2V5UGFyYW1ldGVyIG1ha2VLZXlQYXJhbWV0ZXIoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUJiYgdmFsdWUpIHsKKyAgICBLZXlQYXJhbWV0ZXIgcGFyYW07CisgICAgcGFyYW0udGFnID0gdGFnOworICAgIHBhcmFtLmYubG9uZ0ludGVnZXIgPSAwOworICAgIGFjY2Vzc1RhZ1ZhbHVlKHR0YWcsIHBhcmFtKSA9IHN0ZDo6Zm9yd2FyZDxWYWx1ZVQ+KHZhbHVlKTsKKyAgICByZXR1cm4gcGFyYW07Cit9CisKKy8vIHRoZSBib29sZWFuIGNhc2UKK3RlbXBsYXRlIDxUYWcgdGFnPiBpbmxpbmUgS2V5UGFyYW1ldGVyIG1ha2VLZXlQYXJhbWV0ZXIoVHlwZWRUYWc8VGFnVHlwZTo6Qk9PTCwgdGFnPikgeworICAgIEtleVBhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS50YWcgPSB0YWc7CisgICAgcGFyYW0uZi5ib29sVmFsdWUgPSB0cnVlOworICAgIHJldHVybiBwYXJhbTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFBhY2s+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjsKK3RlbXBsYXRlIDx0eXBlbmFtZSBGaXJzdD4gc3RydWN0IEZpcnN0T3JOb25lSGVscGVyPEZpcnN0PiB7IHR5cGVkZWYgRmlyc3QgdHlwZTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjw+IHsKKyAgICBzdHJ1Y3QgdHlwZSB7fTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBQYWNrPiB1c2luZyBGaXJzdE9yTm9uZSA9IHR5cGVuYW1lIEZpcnN0T3JOb25lSGVscGVyPFBhY2suLi4+Ojp0eXBlOworCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUuLi4gQXJncz4KK2lubGluZSBLZXlQYXJhbWV0ZXIgQXV0aG9yaXphdGlvbihUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBBcmdzJiYuLi4gYXJncykgeworICAgIHN0YXRpY19hc3NlcnQodGFnX3R5cGUgIT0gVGFnVHlwZTo6Qk9PTCB8fCAoc2l6ZW9mLi4uKGFyZ3MpID09IDApLAorICAgICAgICAgICAgICAgICAgIlRhZ1R5cGU6OkJPT0wgQXV0aG9yaXphdGlvbnMgZG8gbm90IHRha2UgcGFyYW1ldGVycy4gUHJlc2VuY2UgaXMgdHJ1dGguIik7CisgICAgc3RhdGljX2Fzc2VydCh0YWdfdHlwZSA9PSBUYWdUeXBlOjpCT09MIHx8IChzaXplb2YuLi4oYXJncykgPT0gMSksCisgICAgICAgICAgICAgICAgICAiQXV0aG9yaXphdGlvbiBvdGhlciB0aGVuIFRhZ1R5cGU6OkJPT0wgdGFrZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXIuIik7CisgICAgc3RhdGljX2Fzc2VydCgKKyAgICAgICAgdGFnX3R5cGUgPT0gVGFnVHlwZTo6Qk9PTCB8fAorICAgICAgICAgICAgc3RkOjppc19jb252ZXJ0aWJsZTxzdGQ6OnJlbW92ZV9jdl90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PEZpcnN0T3JOb25lPEFyZ3MuLi4+Pj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj46OnR5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkludmFsaWQgYXJndW1lbnQgdHlwZSBmb3IgZ2l2ZW4gdGFnLiIpOworCisgICAgcmV0dXJuIG1ha2VLZXlQYXJhbWV0ZXIodHRhZywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKK30KKworLyoqCisgKiBUaGlzIGNsYXNzIHdyYXBzIGEgKG1vc3RseSByZXR1cm4pIHZhbHVlIGFuZCBzdG9yZXMgd2hldGhlciBvciBub3QgdGhlIHdyYXBwZWQgdmFsdWUgaXMgdmFsaWQgb3V0CisgKiBvZiBiYW5kLiBOb3RlIHRoYXQgaWYgdGhlIHdyYXBwZWQgdmFsdWUgaXMgYSByZWZlcmVuY2UgaXQgaXMgdW5zYWZlIHRvIGFjY2VzcyB0aGUgdmFsdWUgaWYKKyAqICFpc09rKCkuIElmIHRoZSB3cmFwcGVkIHR5cGUgaXMgYSBwb2ludGVyIG9yIHZhbHVlIGFuZCAhaXNPaygpLCBpdCBpcyBzdGlsbCBzYWZlIHRvIGFjY2VzcyB0aGUKKyAqIHdyYXBwZWQgdmFsdWUuIEluIHRoaXMgY2FzZSB0aGUgcG9pbnRlciB3aWxsIGJlIE5VTEwgdGhvdWdoLCBhbmQgdGhlIHZhbHVlIHdpbGwgYmUgZGVmYXVsdAorICogY29uc3RydWN0ZWQuCisgKi8KK3RlbXBsYXRlIDx0eXBlbmFtZSBWYWx1ZVQ+IGNsYXNzIE51bGxPciB7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZWZlcmVuY2VfaW5pdGlhbGl6ZXIgeworICAgICAgICBzdGF0aWMgVCYmIGluaXQoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4qPihudWxscHRyKTsgfQorICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBwb2ludGVyX2luaXRpYWxpemVyIHsKKyAgICAgICAgc3RhdGljIFQgaW5pdCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgdmFsdWVfaW5pdGlhbGl6ZXIgeworICAgICAgICBzdGF0aWMgVCBpbml0KCkgeyByZXR1cm4gVCgpOyB9CisgICAgfTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB1c2luZyBpbml0aWFsaXplcl90ID0KKyAgICAgICAgc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfbHZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUsIHJlZmVyZW5jZV9pbml0aWFsaXplcjxUPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX3BvaW50ZXI8VD46OnZhbHVlLCBwb2ludGVyX2luaXRpYWxpemVyPFQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlX2luaXRpYWxpemVyPFQ+Pj47CisKKyAgcHVibGljOgorICAgIE51bGxPcigpIDogdmFsdWVfKGluaXRpYWxpemVyX3Q8VmFsdWVUPjo6aW5pdCgpKSwgbnVsbF8odHJ1ZSkge30KKyAgICBOdWxsT3IoVmFsdWVUJiYgdmFsdWUpIDogdmFsdWVfKHN0ZDo6Zm9yd2FyZDxWYWx1ZVQ+KHZhbHVlKSksIG51bGxfKGZhbHNlKSB7fQorCisgICAgYm9vbCBpc09rKCkgY29uc3QgeyByZXR1cm4gIW51bGxfOyB9CisKKyAgICBjb25zdCBWYWx1ZVQmIHZhbHVlKCkgY29uc3QgJiB7IHJldHVybiB2YWx1ZV87IH0KKyAgICBWYWx1ZVQmIHZhbHVlKCkgJiB7IHJldHVybiB2YWx1ZV87IH0KKyAgICBWYWx1ZVQmJiB2YWx1ZSgpICYmIHsgcmV0dXJuIHN0ZDo6bW92ZSh2YWx1ZV8pOyB9CisKKyAgcHJpdmF0ZToKKyAgICBWYWx1ZVQgdmFsdWVfOworICAgIGJvb2wgbnVsbF87Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4gTnVsbE9yT3IoTnVsbE9yPFQ+JiYgdikgeworICAgIGlmICh2LmlzT2soKSkgcmV0dXJuIHY7CisgICAgcmV0dXJuIHt9OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUuLi4gVGFpbD4KK3N0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PEhlYWQ+IE51bGxPck9yKEhlYWQmJiBoZWFkLCBUYWlsJiYuLi4gdGFpbCkgeworICAgIGlmIChoZWFkLmlzT2soKSkgcmV0dXJuIGhlYWQ7CisgICAgcmV0dXJuIE51bGxPck9yKHN0ZDo6Zm9yd2FyZDxUYWlsPih0YWlsKS4uLik7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEZWZhdWx0LCB0eXBlbmFtZSBXcmFwcGVkPgorc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8V3JhcHBlZD4gZGVmYXVsdE9yKE51bGxPcjxXcmFwcGVkPiYmIG9wdGlvbmFsLCBEZWZhdWx0JiYgZGVmKSB7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2NvbnZlcnRpYmxlPHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PERlZmF1bHQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxXcmFwcGVkPj46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgIlR5cGUgb2YgZGVmYXVsdCB2YWx1ZSBtdXN0IG1hdGNoIHRoZSB0eXBlIHdyYXBwZWQgYnkgTnVsbE9yIik7CisgICAgaWYgKG9wdGlvbmFsLmlzT2soKSkgcmV0dXJuIG9wdGlvbmFsLnZhbHVlKCk7CisgICAgcmV0dXJuIGRlZjsKK30KKwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWc+CitpbmxpbmUgTnVsbE9yPGNvbnN0IHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj46OnR5cGUmPgorYXV0aG9yaXphdGlvblZhbHVlKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICBpZiAodGFnICE9IHBhcmFtLnRhZykgcmV0dXJuIHt9OworICAgIHJldHVybiBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoRGlnZXN0IGRpZ2VzdCkgeworICAgIHN3aXRjaCAoZGlnZXN0KSB7CisgICAgY2FzZSBEaWdlc3Q6Ok5PTkU6CisgICAgICAgIHJldHVybiAiTm9uZSI7CisgICAgY2FzZSBEaWdlc3Q6Ok1ENToKKyAgICAgICAgcmV0dXJuICJNZDUiOworICAgIGNhc2UgRGlnZXN0OjpTSEExOgorICAgICAgICByZXR1cm4gIlNoYTEiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl8yMjQ6CisgICAgICAgIHJldHVybiAiU2hhMjI0IjsKKyAgICBjYXNlIERpZ2VzdDo6U0hBXzJfMjU2OgorICAgICAgICByZXR1cm4gIlNoYTI1NiI7CisgICAgY2FzZSBEaWdlc3Q6OlNIQV8yXzM4NDoKKyAgICAgICAgcmV0dXJuICJTaGEzODQiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl81MTI6CisgICAgICAgIHJldHVybiAiU2hhNTEyIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIERJR0VTVCEiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEFsZ29yaXRobSBhbGdvcml0aG0pIHsKKyAgICBzd2l0Y2ggKGFsZ29yaXRobSkgeworICAgIGNhc2UgQWxnb3JpdGhtOjpSU0E6CisgICAgICAgIHJldHVybiAiUnNhIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6RUM6CisgICAgICAgIHJldHVybiAiRWMiOworICAgIGNhc2UgQWxnb3JpdGhtOjpBRVM6CisgICAgICAgIHJldHVybiAiQWVzIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6SE1BQzoKKyAgICAgICAgcmV0dXJuICJIbWFjIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIEFMR09SSVRITSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoQmxvY2tNb2RlIGJsb2NrX21vZGUpIHsKKyAgICBzd2l0Y2ggKGJsb2NrX21vZGUpIHsKKyAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICByZXR1cm4gIkVjYiI7CisgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgcmV0dXJuICJDYmMiOworICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgIHJldHVybiAiQ3RyIjsKKyAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICByZXR1cm4gIkdjbSI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBCTE9DSyBNT0RFIjsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShQYWRkaW5nTW9kZSBwYWRkaW5nKSB7CisgICAgc3dpdGNoIChwYWRkaW5nKSB7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6Tk9ORToKKyAgICAgICAgcmV0dXJuICJOb25lIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfT0FFUDoKKyAgICAgICAgcmV0dXJuICJSc2FPYWVwIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUFNTOgorICAgICAgICByZXR1cm4gIlJzYVBzcyI7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9FTkNSWVBUOgorICAgICAgICByZXR1cm4gIlJzYVBrY3MxMTVFbmNyeXB0IjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR046CisgICAgICAgIHJldHVybiAiUnNhUGtjczExNVNpZ24iOworICAgIGNhc2UgUGFkZGluZ01vZGU6OlBLQ1M3OgorICAgICAgICByZXR1cm4gIlBrY3M3IjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIFBBRERJTkcgTU9ERSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoS2V5T3JpZ2luIG9yaWdpbikgeworICAgIHN3aXRjaCAob3JpZ2luKSB7CisgICAgY2FzZSBLZXlPcmlnaW46OkdFTkVSQVRFRDoKKyAgICAgICAgcmV0dXJuICJHZW5lcmF0ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpERVJJVkVEOgorICAgICAgICByZXR1cm4gIkRlcml2ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpJTVBPUlRFRDoKKyAgICAgICAgcmV0dXJuICJJbXBvcnRlZCI7CisgICAgY2FzZSBLZXlPcmlnaW46OlVOS05PV046CisgICAgICAgIHJldHVybiAiVU5LTk9XTiAoa2V5bWFzdGVyMCBkaWRuJ3QgcmVjb3JkIGl0KSI7CisgICAgfQorICAgIHJldHVybiAiVU5LT1dOIEtFWSBPUklHSU4gVkFMVUUiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEtleVB1cnBvc2UgcHVycG9zZSkgeworICAgIHN3aXRjaCAocHVycG9zZSkgeworICAgIGNhc2UgS2V5UHVycG9zZTo6RU5DUllQVDoKKyAgICAgICAgcmV0dXJuICJFbmNyeXB0IjsKKyAgICBjYXNlIEtleVB1cnBvc2U6OkRFQ1JZUFQ6CisgICAgICAgIHJldHVybiAiRGVjcnlwdCI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpTSUdOOgorICAgICAgICByZXR1cm4gIlNpZ24iOworICAgIGNhc2UgS2V5UHVycG9zZTo6VkVSSUZZOgorICAgICAgICByZXR1cm4gIlZlcmlmeSI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpERVJJVkVfS0VZOgorICAgICAgICByZXR1cm4gIkRlcml2ZUtleSI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpXUkFQX0tFWToKKyAgICAgICAgcmV0dXJuICJXcmFwS2V5IjsKKyAgICB9OworICAgIHJldHVybiAiVU5LTk9XTiBLRVkgUFVSUE9TRSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIHN3aXRjaCAoY3VydmUpIHsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMjI0OgorICAgICAgICByZXR1cm4gIlBfMjI0IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMjU2OgorICAgICAgICByZXR1cm4gIlBfMjU2IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMzg0OgorICAgICAgICByZXR1cm4gIlBfMzg0IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfNTIxOgorICAgICAgICByZXR1cm4gIlBfNTIxIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIEVDIENVUlZFIjsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBTWVNURU1fU0VDVVJJVFlfS0VZU1RPUkVfS0VZTUFTVEVSX1RBR1NfSF8KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5c3RvcmVfdGFnc191dGlscy5jcHAgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZDk5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKKyNpbmNsdWRlICJrZXltYXN0ZXJfdGFncy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUYWdMaXN0PiBzdHJ1Y3QgVGFnU3RyaW5naWZpZXI7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUYWdzPiBzdHJ1Y3QgVGFnU3RyaW5naWZpZXI8TWV0YUxpc3Q8VGFncy4uLj4+IHsKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4KKyAgICBzdGF0aWMgVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gY2hvb3NlU3RyaW5nKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIFRhZyBydW50aW1lX3RhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqKiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHRhZyA9PSBydW50aW1lX3RhZykgeworICAgICAgICAgICAgKnJlc3VsdCA9IFRhZzJTdHJpbmc8dGFnPjo6dmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHRhZzsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShUYWcgdGFnKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9ICJ1bmtub3duIHRhZyI7CisgICAgICAgIFtdKFRhZ3MmJi4uLikge30oY2hvb3NlU3RyaW5nKFRhZ3MoKSwgdGFnLCAmcmVzdWx0KS4uLik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfTsKKworY29uc3QgY2hhciogc3RyaW5naWZ5VGFnKFRhZyB0YWcpIHsKKyAgICByZXR1cm4gVGFnU3RyaW5naWZpZXI8YWxsX3RhZ3NfdD46OnN0cmluZ2lmeSh0YWcpOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL29wZW5zc2xfdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWJhOWJhCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHZvaWQgKCpGKShUKik+IHN0cnVjdCBVbmlxdWVQdHJEZWxldGVyIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCogcCkgY29uc3QgeyBGKHApOyB9Cit9OworCit0eXBlZGVmIFVuaXF1ZVB0ckRlbGV0ZXI8RVZQX1BLRVksIEVWUF9QS0VZX2ZyZWU+IEVWUF9QS0VZX0RlbGV0ZTsKKworI2RlZmluZSBNQUtFX09QRU5TU0xfUFRSX1RZUEUodHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPHR5cGUsIFVuaXF1ZVB0ckRlbGV0ZXI8dHlwZSwgdHlwZSMjX2ZyZWU+PiB0eXBlIyNfUHRyOworCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoQVNOMV9PQkpFQ1QpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoRVZQX1BLRVkpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoUlNBKQorTUFLRV9PUEVOU1NMX1BUUl9UWVBFKFg1MDkpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoQk5fQ1RYKQorCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxCSUdOVU0sIFVuaXF1ZVB0ckRlbGV0ZXI8QklHTlVNLCBCTl9mcmVlPj4gQklHTlVNX1B0cjsKKworaW5saW5lIGNvbnN0IEVWUF9NRCogb3BlbnNzbF9kaWdlc3QoYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0IGRpZ2VzdCkgeworICAgIHN3aXRjaCAoZGlnZXN0KSB7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6Ok5PTkU6CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpNRDU6CisgICAgICAgIHJldHVybiBFVlBfbWQ1KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQTE6CisgICAgICAgIHJldHVybiBFVlBfc2hhMSgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl8yMjQ6CisgICAgICAgIHJldHVybiBFVlBfc2hhMjI0KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQV8yXzI1NjoKKyAgICAgICAgcmV0dXJuIEVWUF9zaGEyNTYoKTsKKyAgICBjYXNlIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdDo6U0hBXzJfMzg0OgorICAgICAgICByZXR1cm4gRVZQX3NoYTM4NCgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl81MTI6CisgICAgICAgIHJldHVybiBFVlBfc2hhNTEyKCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyL0FuZHJvaWQuYnAgYi9rZXltYXN0ZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWI4Y2IyCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIzLjAiLAorXQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0FuZHJvaWQuYnAgYi9saWdodC8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmZkYmUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJTGlnaHQuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9MaWdodEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JuSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JwSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JzTGlnaHQuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0FuZHJvaWQubWsgYi9saWdodC8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGQ3YWIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwyNzAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChCcmlnaHRuZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0JyaWdodG5lc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuQnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmxhc2gpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvRmxhc2guamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuRmxhc2gKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKExpZ2h0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvTGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5MaWdodFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9UeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLlR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTGlnaHQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvSUxpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6SUxpZ2h0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTGlnaHQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0LVYyLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9CcmlnaHRuZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkJyaWdodG5lc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZsYXNoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0ZsYXNoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkZsYXNoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChMaWdodFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0xpZ2h0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuTGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5UeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUxpZ2h0LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0lMaWdodC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OklMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0lMaWdodC5oYWwgYi9saWdodC8yLjAvSUxpZ2h0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2NkNjg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0lMaWdodC5oYWwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2ludGVyZmFjZSBJTGlnaHQgeworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm92aWRlZCBsaWdodHMgdG8gdGhlIHByb3ZpZGVkIHZhbHVlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIGxvZ2ljYWwgbGlnaHQgdG8gc2V0CisgICAgICogQHBhcmFtIHN0YXRlIGRlc2NyaWJlcyB3aGF0IHRoZSBsaWdodCBzaG91bGQgbG9vayBsaWtlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHJlc3VsdCBvZiBhcHBseWluZyBzdGF0ZSB0cmFuc2Zvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBzZXRMaWdodChUeXBlIHR5cGUsIExpZ2h0U3RhdGUgc3RhdGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBEaXNjb3ZlciB3aGF0IGluZGljYXRvciBsaWdodHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHlwZXMgbGlzdCBvZiBhdmFpbGFibGUgbGlnaHRzCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkVHlwZXMoKSBnZW5lcmF0ZXMgKHZlYzxUeXBlPiB0eXBlcyk7CisKK307CmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjQ0ZTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBMaWdodC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliYmFzZSBcCisgICAgbGliY3V0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZTE1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5jcHAKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImxpZ2h0IgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiTGlnaHQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBsaWdodCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGF0aWNfYXNzZXJ0KExJR0hUX0ZMQVNIX05PTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6Tk9ORSksCisgICAgIkZsYXNoOjpOT05FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChMSUdIVF9GTEFTSF9USU1FRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEZsYXNoOjpUSU1FRCksCisgICAgIkZsYXNoOjpUSU1FRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoTElHSFRfRkxBU0hfSEFSRFdBUkUgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6SEFSRFdBUkUpLAorICAgICJGbGFzaDo6SEFSRFdBUkUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX1VTRVIgPT0gc3RhdGljX2Nhc3Q8aW50PihCcmlnaHRuZXNzOjpVU0VSKSwKKyAgICAiQnJpZ2h0bmVzczo6VVNFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX1NFTlNPUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KEJyaWdodG5lc3M6OlNFTlNPUiksCisgICAgIkJyaWdodG5lc3M6OlNFTlNPUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX0xPV19QRVJTSVNURU5DRSA9PQorICAgIHN0YXRpY19jYXN0PGludD4oQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFKSwKKyAgICAiQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitMaWdodDo6TGlnaHQoc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiAmJmxpZ2h0cykKKyAgOiBtTGlnaHRzKHN0ZDo6bW92ZShsaWdodHMpKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCitSZXR1cm48U3RhdHVzPiBMaWdodDo6c2V0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBMaWdodFN0YXRlJiBzdGF0ZSkgIHsKKyAgICBhdXRvIGl0ID0gbUxpZ2h0cy5maW5kKHR5cGUpOworCisgICAgaWYgKGl0ID09IG1MaWdodHMuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TElHSFRfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBsaWdodF9kZXZpY2VfdCogaHdMaWdodCA9IGl0LT5zZWNvbmQ7CisKKyAgICBsaWdodF9zdGF0ZV90IGxlZ2FjeVN0YXRlIHsKKyAgICAgICAgLmNvbG9yID0gc3RhdGUuY29sb3IsCisgICAgICAgIC5mbGFzaE1vZGUgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRlLmZsYXNoTW9kZSksCisgICAgICAgIC5mbGFzaE9uTVMgPSBzdGF0ZS5mbGFzaE9uTXMsCisgICAgICAgIC5mbGFzaE9mZk1TID0gc3RhdGUuZmxhc2hPZmZNcywKKyAgICAgICAgLmJyaWdodG5lc3NNb2RlID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0ZS5icmlnaHRuZXNzTW9kZSksCisgICAgfTsKKworICAgIGludCByZXQgPSBod0xpZ2h0LT5zZXRfbGlnaHQoaHdMaWdodCwgJmxlZ2FjeVN0YXRlKTsKKworICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgIGNhc2UgLUVOT1NZUzoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OkJSSUdIVE5FU1NfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV047CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gTGlnaHQ6OmdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzX2NiIF9oaWRsX2NiKSAgeworICAgIFR5cGUgKnR5cGVzID0gbmV3IFR5cGVbbUxpZ2h0cy5zaXplKCldOworCisgICAgaW50IGlkeCA9IDA7CisgICAgZm9yKGF1dG8gY29uc3QgJnBhaXIgOiBtTGlnaHRzKSB7CisgICAgICAgIFR5cGUgdHlwZSA9IHBhaXIuZmlyc3Q7CisKKyAgICAgICAgdHlwZXNbaWR4KytdID0gdHlwZTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGhpZGxfdmVjPFR5cGU+IGhpZGxfdHlwZXN7fTsKKyAgICAgICAgaGlkbF90eXBlcy5zZXRUb0V4dGVybmFsKHR5cGVzLCBtTGlnaHRzLnNpemUoKSk7CisKKyAgICAgICAgX2hpZGxfY2IoaGlkbF90eXBlcyk7CisgICAgfQorCisgICAgZGVsZXRlW10gdHlwZXM7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitjb25zdCBzdGF0aWMgc3RkOjptYXA8VHlwZSwgY29uc3QgY2hhcio+IGtMb2dpY2FsTGlnaHRzID0geworICAgIHtUeXBlOjpCQUNLTElHSFQsICAgICBMSUdIVF9JRF9CQUNLTElHSFR9LAorICAgIHtUeXBlOjpLRVlCT0FSRCwgICAgICBMSUdIVF9JRF9LRVlCT0FSRH0sCisgICAge1R5cGU6OkJVVFRPTlMsICAgICAgIExJR0hUX0lEX0JVVFRPTlN9LAorICAgIHtUeXBlOjpCQVRURVJZLCAgICAgICBMSUdIVF9JRF9CQVRURVJZfSwKKyAgICB7VHlwZTo6Tk9USUZJQ0FUSU9OUywgTElHSFRfSURfTk9USUZJQ0FUSU9OU30sCisgICAge1R5cGU6OkFUVEVOVElPTiwgICAgIExJR0hUX0lEX0FUVEVOVElPTn0sCisgICAge1R5cGU6OkJMVUVUT09USCwgICAgIExJR0hUX0lEX0JMVUVUT09USH0sCisgICAge1R5cGU6OldJRkksICAgICAgICAgIExJR0hUX0lEX1dJRkl9Cit9OworCitsaWdodF9kZXZpY2VfdCogZ2V0TGlnaHREZXZpY2UoY29uc3QgY2hhciogbmFtZSkgeworICAgIGxpZ2h0X2RldmljZV90KiBsaWdodERldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCogaHdNb2R1bGUgPSBOVUxMOworCisgICAgaW50IHJldCA9IGh3X2dldF9tb2R1bGUgKExJR0hUU19IQVJEV0FSRV9NT0RVTEVfSUQsICZod01vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldCA9IGh3TW9kdWxlLT5tZXRob2RzLT5vcGVuKGh3TW9kdWxlLCBuYW1lLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmbGlnaHREZXZpY2UpKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgibGlnaHRfb3BlbiAlcyAlcyBmYWlsZWQ6ICVkIiwgTElHSFRTX0hBUkRXQVJFX01PRFVMRV9JRCwgbmFtZSwgcmV0KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzICVzIGZhaWxlZDogJWQiLCBMSUdIVFNfSEFSRFdBUkVfTU9EVUxFX0lELCBuYW1lLCByZXQpOworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbGlnaHREZXZpY2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIkxpZ2h0IHBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworSUxpZ2h0KiBISURMX0ZFVENIX0lMaWdodChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiBsaWdodHM7CisKKyAgICBmb3IoYXV0byBjb25zdCAmcGFpciA6IGtMb2dpY2FsTGlnaHRzKSB7CisgICAgICAgIFR5cGUgdHlwZSA9IHBhaXIuZmlyc3Q7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBwYWlyLnNlY29uZDsKKworICAgICAgICBsaWdodF9kZXZpY2VfdCogbGlnaHQgPSBnZXRMaWdodERldmljZShuYW1lKTsKKworICAgICAgICBpZiAobGlnaHQgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbGlnaHRzW3R5cGVdID0gbGlnaHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobGlnaHRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgIC8vIExvZyBpbmZvcm1hdGlvbiwgYnV0IHN0aWxsIHJldHVybiBuZXcgTGlnaHQuCisgICAgICAgIC8vIFNvbWUgZGV2aWNlcyBtYXkgbm90IGhhdmUgYW55IGxpZ2h0cy4KKyAgICAgICAgQUxPR0koIkNvdWxkIG5vdCBvcGVuIGFueSBsaWdodHMuIik7CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBMaWdodChzdGQ6Om1vdmUobGlnaHRzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTg3MDM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9MSUdIVF9WMl8wX0xJR0hUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9MSUdIVF9WMl8wX0xJR0hUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0lMaWdodC5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvbGlnaHRzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPG1hcD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBsaWdodCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkxpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBMaWdodCA6IHB1YmxpYyBJTGlnaHQgeworICAgIExpZ2h0KHN0ZDo6bWFwPFR5cGUsIGxpZ2h0X2RldmljZV90Kj4gJiZsaWdodHMpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGQ6Om1hcDxUeXBlLCBsaWdodF9kZXZpY2VfdCo+IG1MaWdodHM7Cit9OworCitleHRlcm4gIkMiIElMaWdodCogSElETF9GRVRDSF9JTGlnaHQoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBsaWdodAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfTElHSFRfVjJfMF9MSUdIVF9ICmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjIGIvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzI4NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgbGlnaHQtaGFsLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2xpZ2h0LzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYWU1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElMaWdodD4oKTsKK30KZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC90eXBlcy5oYWwgYi9saWdodC8yLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjY3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDsKKworZW51bSBTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLAorICAgIExJR0hUX05PVF9TVVBQT1JURUQsCisgICAgQlJJR0hUTkVTU19OT1RfU1VQUE9SVEVELAorICAgIFVOS05PV04sCit9OworCitlbnVtIEZsYXNoIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogS2VlcCB0aGUgbGlnaHQgc3RlYWR5IG9uIG9yIG9mZi4KKyAgICAgKi8KKyAgICBOT05FLAorCisgICAgLyoqCisgICAgICogRmxhc2ggdGhlIGxpZ2h0IGF0IHNwZWNpZmllZCByYXRlLgorICAgICAqLworICAgIFRJTUVELAorCisgICAgLyoqCisgICAgICogRmxhc2ggdGhlIGxpZ2h0IHVzaW5nIGhhcmR3YXJlIGFzc2lzdC4KKyAgICAgKi8KKyAgICBIQVJEV0FSRSwKK307CisKK2VudW0gQnJpZ2h0bmVzcyA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIExpZ2h0IGJyaWdodG5lc3MgaXMgbWFuYWdlZCBieSBhIHVzZXIgc2V0dGluZy4KKyAgICAgKi8KKyAgICBVU0VSLAorCisgICAgLyoqCisgICAgICogTGlnaHQgYnJpZ2h0bmVzcyBpcyBtYW5hZ2VkIGJ5IGEgbGlnaHQgc2Vuc29yLgorICAgICAqLworICAgIFNFTlNPUiwKKworICAgIC8qKgorICAgICAqIFVzZSBhIGxvdy1wZXJzaXN0ZW5jZSBtb2RlIGZvciBkaXNwbGF5IGJhY2tsaWdodHMuCisgICAgICoKKyAgICAgKiBXaGVuIHNldCwgdGhlIGRldmljZSBkcml2ZXIgbXVzdCBzd2l0Y2ggdG8gYSBtb2RlIG9wdGltaXplZCBmb3IgbG93IGRpc3BsYXkKKyAgICAgKiBwZXJzaXN0ZW5jZSB0aGF0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGJlaW5nIHRyZWF0ZWQgYXMgYQorICAgICAqIGhlYWQgbW91bnRlZCBkaXNwbGF5IChITUQpLiBUaGUgYWN0dWFsIGRpc3BsYXkgYnJpZ2h0bmVzcyBpbiB0aGlzIG1vZGUgaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQsIGFuZCBhbnkgdmFsdWUgc2V0IGZvciBjb2xvciBpbiBMaWdodFN0YXRlIG1heSBiZQorICAgICAqIG92ZXJyaWRkZW4gYnkgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIEZvciBhbiBvcHRpbWFsIEhNRCB2aWV3aW5nIGV4cGVyaWVuY2UsIHRoZSBkaXNwbGF5IG11c3QgbWVldCB0aGUgZm9sbG93aW5nCisgICAgICogY3JpdGVyaWEgaW4gdGhpcyBtb2RlOgorICAgICAqIC0gR3JheS10by1HcmF5LCBXaGl0ZS10by1CbGFjaywgYW5kIEJsYWNrLXRvLVdoaXRlIHN3aXRjaGluZyB0aW1lIG11c3QgYmUg4omkIDMgbXMuCisgICAgICogLSBUaGUgZGlzcGxheSBtdXN0IHN1cHBvcnQgbG93LXBlcnNpc3RlbmNlIHdpdGgg4omkIDMuNSBtcyBwZXJzaXN0ZW5jZS4KKyAgICAgKiAgIFBlcnNpc3RlbmNlIGlzIGRlZmluZWQgYXMgdGhlIGFtb3VudCBvZiB0aW1lIGZvciB3aGljaCBhIHBpeGVsIGlzCisgICAgICogICBlbWl0dGluZyBsaWdodCBmb3IgYSBzaW5nbGUgZnJhbWUuCisgICAgICogLSBBbnkgInNtYXJ0IHBhbmVsIiBvciBvdGhlciBmcmFtZSBidWZmZXJpbmcgb3B0aW9ucyB0aGF0IGluY3JlYXNlIGRpc3BsYXkKKyAgICAgKiAgIGxhdGVuY3kgYXJlIGRpc2FibGVkLgorICAgICAqIC0gRGlzcGxheSBicmlnaHRuZXNzIGlzIHNldCBzbyB0aGF0IHRoZSBkaXNwbGF5IGlzIHN0aWxsIHZpc2libGUgdG8gdGhlIHVzZXIKKyAgICAgKiAgIHVuZGVyIG5vcm1hbCBpbmRvb3IgbGlnaHRpbmcuCisgICAgICogLSBUaGUgZGlzcGxheSBtdXN0IHVwZGF0ZSBhdCA2MCBIeiBhdCBsZWFzdCwgYnV0IGhpZ2hlciByZWZyZXNoIHJhdGVzIGFyZQorICAgICAqICAgcmVjb21tZW5kZWQgZm9yIGxvdyBsYXRlbmN5LgorICAgICAqCisgICAgICovCisgICAgTE9XX1BFUlNJU1RFTkNFLAorfTsKKworLyoqCisgKiBUaGVzZSBsaWdodCBJRHMgY29ycmVzcG9uZCB0byBsb2dpY2FsIGxpZ2h0cywgbm90IHBoeXNpY2FsLgorICogU28gZm9yIGV4YW1wbGUsIGlmIHlvdXIgSU5ESUNBVE9SIGxpZ2h0IGlzIGluIGxpbmUgd2l0aCB5b3VyCisgKiBCVVRUT05TLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGFsc28gbGlnaHQgdGhlIElORElDQVRPUgorICogbGlnaHQgdG8gYSByZWFzb25hYmxlIGNvbG9yIHdoZW4gdGhlIEJVVFRPTlMgYXJlIGxpdC4KKyAqLworZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgQkFDS0xJR0hULAorICAgIEtFWUJPQVJELAorICAgIEJVVFRPTlMsCisgICAgQkFUVEVSWSwKKyAgICBOT1RJRklDQVRJT05TLAorICAgIEFUVEVOVElPTiwKKyAgICBCTFVFVE9PVEgsCisgICAgV0lGSSwKKworICAgIENPVU5ULAorfTsKKworLyoqCisgKiBUaGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSBzZXQgZm9yIGEgZ2l2ZW4gbGlnaHQuCisgKgorICogTm90IGFsbCBsaWdodHMgbXVzdCBzdXBwb3J0IGFsbCBwYXJhbWV0ZXJzLiBJZiB5b3UKKyAqIGNhbiBkbyBzb21ldGhpbmcgYmFja3dhcmQtY29tcGF0aWJsZSwgZG8gaXQuCisgKi8KK3N0cnVjdCBMaWdodFN0YXRlIHsKKyAgICAvKioKKyAgICAgKiBUaGUgY29sb3Igb2YgdGhlIExFRCBpbiBBUkdCLgorICAgICAqCisgICAgICogRG8geW91ciBiZXN0IGhlcmUuCisgICAgICogICAtIElmIHlvdXIgbGlnaHQgY2FuIG9ubHkgZG8gcmVkIG9yIGdyZWVuLCBpZiB0aGV5IGFzayBmb3IgYmx1ZSwKKyAgICAgKiAgICAgeW91IHNob3VsZCBkbyBncmVlbi4KKyAgICAgKiAgIC0gSWYgeW91IGNhbiBvbmx5IGRvIGEgYnJpZ2h0bmVzcyByYW1wLCB0aGVuIHVzZSB0aGlzIGZvcm11bGE6CisgICAgICogICAgICB1bnNpZ25lZCBjaGFyIGJyaWdodG5lc3MgPSAoKDc3KigoY29sb3I+PjE2KSYweDAwZmYpKQorICAgICAqICAgICAgICAgICAgICArICgxNTAqKChjb2xvcj4+OCkmMHgwMGZmKSkgKyAoMjkqKGNvbG9yJjB4MDBmZikpKSA+PiA4OworICAgICAqICAgLSBJZiB5b3UgY2FuIG9ubHkgZG8gb24gb3Igb2ZmLCAwIGlzIG9mZiwgYW55dGhpbmcgZWxzZSBpcyBvbi4KKyAgICAgKgorICAgICAqIFRoZSBoaWdoIGJ5dGUgc2hvdWxkIGJlIGlnbm9yZWQuIENhbGxlcnMgd2lsbCBzZXQgaXQgdG8gMHhmZiAod2hpY2gKKyAgICAgKiB3b3VsZCBjb3JyZXNwb25kIHRvIDI1NSBhbHBoYSkuCisgICAgICovCisgICAgdWludDMyX3QgY29sb3I7CisKKyAgICAvKioKKyAgICAgKiBUbyBmbGFzaCB0aGUgbGlnaHQgYXQgYSBnaXZlbiByYXRlLCBzZXQgZmxhc2hNb2RlIHRvIExJR0hUX0ZMQVNIX1RJTUVELAorICAgICAqIGFuZCB0aGVuIGZsYXNoT25NUyBzaG91bGQgYmUgc2V0IHRvIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHR1cm4KKyAgICAgKiB0aGUgbGlnaHQgb24sIGZvbGxvd2VkIGJ5IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHR1cm4gdGhlIGxpZ2h0CisgICAgICogb2ZmLgorICAgICAqLworICAgIEZsYXNoIGZsYXNoTW9kZTsKKworICAgIGludDMyX3QgZmxhc2hPbk1zOworICAgIGludDMyX3QgZmxhc2hPZmZNczsKKworICAgIEJyaWdodG5lc3MgYnJpZ2h0bmVzc01vZGU7Cit9OwpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OTUwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9saWdodC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTU4ZmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CisKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcCBiL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDA1NDIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJsaWdodF9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkJyaWdodG5lc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6Rmxhc2g7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkxpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpCisjZGVmaW5lIEVYUEVDVF9PSyhyZXQpIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpCisKK2NvbnN0IHN0YXRpYyBMaWdodFN0YXRlIGtXaGl0ZSA9IHsKKyAgICAuY29sb3IgPSAweEZGRkZGRkZGLAorICAgIC5mbGFzaE1vZGUgPSBGbGFzaDo6VElNRUQsCisgICAgLmZsYXNoT25NcyA9IDEwMCwKKyAgICAuZmxhc2hPZmZNcyA9IDUwLAorICAgIC5icmlnaHRuZXNzTW9kZSA9IEJyaWdodG5lc3M6OlVTRVIsCit9OworCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrTG93UGVyc2lzdGFuY2UgPSB7CisgICAgLmNvbG9yID0gMHhGRjEyMzQ1NiwKKyAgICAuZmxhc2hNb2RlID0gRmxhc2g6OlRJTUVELAorICAgIC5mbGFzaE9uTXMgPSAxMDAsCisgICAgLmZsYXNoT2ZmTXMgPSA1MCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpMT1dfUEVSU0lTVEVOQ0UsCit9OworCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrT2ZmID0geworICAgIC5jb2xvciA9IDB4MDAwMDAwMDAsCisgICAgLmZsYXNoTW9kZSA9IEZsYXNoOjpOT05FLAorICAgIC5mbGFzaE9uTXMgPSAwLAorICAgIC5mbGFzaE9mZk1zID0gMCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpVU0VSLAorfTsKKworY29uc3Qgc3RhdGljIHN0ZDo6c2V0PFR5cGU+IGtBbGxUeXBlcyA9IHsKKyAgICBUeXBlOjpCQUNLTElHSFQsCisgICAgVHlwZTo6S0VZQk9BUkQsCisgICAgVHlwZTo6QlVUVE9OUywKKyAgICBUeXBlOjpCQVRURVJZLAorICAgIFR5cGU6Ok5PVElGSUNBVElPTlMsCisgICAgVHlwZTo6QVRURU5USU9OLAorICAgIFR5cGU6OkJMVUVUT09USCwKKyAgICBUeXBlOjpXSUZJCit9OworCitjbGFzcyBMaWdodEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGxpZ2h0ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUxpZ2h0PigpOworCisgICAgICAgIEFTU0VSVF9ORShsaWdodCwgbnVsbHB0cik7CisgICAgICAgIExPRyhJTkZPKSA8PCAiVGVzdCBpcyByZW1vdGUgIiA8PCBsaWdodC0+aXNSZW1vdGUoKTsKKworICAgICAgICBBU1NFUlRfT0sobGlnaHQtPmdldFN1cHBvcnRlZFR5cGVzKFt0aGlzXShjb25zdCBoaWRsX3ZlYzxUeXBlPiAmdHlwZXMpIHsKKyAgICAgICAgICAgIHN1cHBvcnRlZFR5cGVzID0gdHlwZXM7CisgICAgICAgIH0pKTsKKyAgICB9CisKKyAgICBzcDxJTGlnaHQ+IGxpZ2h0OworICAgIHN0ZDo6dmVjdG9yPFR5cGU+IHN1cHBvcnRlZFR5cGVzOworCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga09mZik7CisgICAgICAgICAgICBFWFBFQ1RfT0socmV0KTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBtdXN0IGxlYXZlIHRoZSBkZXZpY2UgaW4gYSB1c2VhYmxlIGNvbmRpdGlvbgorICAgICAgICBpZiAoc3RkOjpmaW5kKHN1cHBvcnRlZFR5cGVzLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkVHlwZXMuZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgVHlwZTo6QkFDS0xJR0hUKSAhPSBzdXBwb3J0ZWRUeXBlcy5lbmQoKSkgeworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0ID0gbGlnaHQtPnNldExpZ2h0KFR5cGU6OkJBQ0tMSUdIVCwga1doaXRlKTsKKyAgICAgICAgICAgIEVYUEVDVF9PSyhyZXQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6U1VDQ0VTUywgc3RhdGljX2Nhc3Q8U3RhdHVzPihyZXQpKTsKKyAgICAgICAgfQorICAgIH0KKworfTsKKworLyoqCisgKiBFbnN1cmUgYWxsIGxpZ2h0cyB3aGljaCBhcmUgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIHdvcmsuCisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0U3VwcG9ydGVkKSB7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga1doaXRlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSBCUklHSFRORVNTX05PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQgaWYgTE9XX1BFUlNJU1RBTkNFIGlzIG5vdCBzdXBwb3J0ZWQuCisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0TG93UGVyc2lzdGFuY2UpIHsKKyAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgIFJldHVybjxTdGF0dXM+IHJldCA9IGxpZ2h0LT5zZXRMaWdodCh0eXBlLCBrTG93UGVyc2lzdGFuY2UpOworICAgICAgICBFWFBFQ1RfT0socmV0KTsKKworICAgICAgICBTdGF0dXMgc3RhdHVzID0gcmV0OworICAgICAgICBFWFBFQ1RfVFJVRShTdGF0dXM6OlNVQ0NFU1MgPT0gc3RhdHVzIHx8CisgICAgICAgICAgICAgICAgICAgIFN0YXR1czo6QlJJR0hUTkVTU19OT1RfU1VQUE9SVEVEID09IHN0YXR1cyk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSBsaWdodHMgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgcmV0dXJuIExJR0hUX05PVF9TVVBQT1JURUQKKyAqLworVEVTVF9GKExpZ2h0SGlkbFRlc3QsIFRlc3RVbnN1cHBvcnRlZCkgeworICAgIHN0ZDo6c2V0PFR5cGU+IHVuc3VwcG9ydGVkVHlwZXMgPSBrQWxsVHlwZXM7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICB1bnN1cHBvcnRlZFR5cGVzLmVyYXNlKHR5cGUpOworICAgIH0KKworICAgIGZvciAoY29uc3QgVHlwZSYgdHlwZTogdW5zdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga1doaXRlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkxJR0hUX05PVF9TVVBQT1JURUQsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbGlnaHQvQW5kcm9pZC5icCBiL2xpZ2h0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQyYzk4NgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIyLjAiLAorICAgICIyLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL0FuZHJvaWQuYnAgYi9tZWRpYS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWVlYjNmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1OCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC90eXBlcy5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZWRpYS8xLjAvQW5kcm9pZC5tayBiL21lZGlhLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNDRiOWUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBtZWRpYV9wcm9maWxlc19WMV8wLmR0ZAorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFIDo9IG1lZGlhX3Byb2ZpbGVzX1YxXzAuZHRkCitMT0NBTF9TUkNfRklMRVMgOj0gbWVkaWFfcHJvZmlsZXMuZHRkCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gRVRDCitMT0NBTF9NT0RVTEVfUEFUSCA6PSAkKFRBUkdFVF9PVVRfRVRDKQorCitpbmNsdWRlICQoQlVJTERfUFJFQlVJTFQpCisKZGlmZiAtLWdpdCBhL21lZGlhLzEuMC9tZWRpYV9wcm9maWxlcy5kdGQgYi9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOTAwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkCkBAIC0wLDAgKzEsNTYgQEAKKzwhRUxFTUVOVCBNZWRpYVNldHRpbmdzIChDYW1jb3JkZXJQcm9maWxlcyssCisgICAgICAgICAgICAgICAgICAgICAgICAgRW5jb2Rlck91dHB1dEZpbGVGb3JtYXQrLAorICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvRW5jb2RlckNhcCssCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9FbmNvZGVyQ2FwKywKKyAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlb0RlY29kZXJDYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9EZWNvZGVyQ2FwKT4KKzwhRUxFTUVOVCBDYW1jb3JkZXJQcm9maWxlcyAoRW5jb2RlclByb2ZpbGV8SW1hZ2VFbmNvZGluZ3xJbWFnZURlY29kaW5nfENhbWVyYSkrPgorPCFBVFRMSVNUIENhbWNvcmRlclByb2ZpbGVzIGNhbWVyYUlkICgwfDEpICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBFbmNvZGVyUHJvZmlsZSAoVmlkZW8sIEF1ZGlvKT4KKzwhQVRUTElTVCBFbmNvZGVyUHJvZmlsZSBxdWFsaXR5IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBFbmNvZGVyUHJvZmlsZSBmaWxlRm9ybWF0IChtcDR8M2dwKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgRW5jb2RlclByb2ZpbGUgZHVyYXRpb24gKDMwfDYwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgVmlkZW8gRU1QVFk+Cis8IUFUVExJU1QgVmlkZW8gY29kZWMgKGgyNjR8aDI2M3xtNHYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyBiaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyB3aWR0aCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW8gaGVpZ2h0IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyBmcmFtZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEF1ZGlvIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvIGNvZGVjIChhbXJuYnxhbXJ3YnxhYWMpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBiaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBzYW1wbGVSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBjaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgSW1hZ2VFbmNvZGluZyBFTVBUWT4KKzwhQVRUTElTVCBJbWFnZUVuY29kaW5nIHF1YWxpdHkgKDk1fDkwfDgwfDcwfDYwfDUwfDQwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgSW1hZ2VEZWNvZGluZyBFTVBUWT4KKzwhQVRUTElTVCBJbWFnZURlY29kaW5nIG1lbUNhcCBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQ2FtZXJhIEVNUFRZPgorPCFFTEVNRU5UIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0IEVNUFRZPgorPCFBVFRMSVNUIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0IG5hbWUgKG1wNHwzZ3ApICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBWaWRlb0VuY29kZXJDYXAgRU1QVFk+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG5hbWUgKGhldmN8aDI2NHxoMjYzfG00dnx3bXYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtaW5CaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWF4Qml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lV2lkdGggQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZVdpZHRoIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWluRnJhbWVIZWlnaHQgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZUhlaWdodCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1heEZyYW1lUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQXVkaW9FbmNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBuYW1lIChhbXJuYnxhbXJ3YnxhYWN8d21hfGhlYWFjfGFhY2VsZCkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBlbmFibGVkICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1pbkJpdFJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtYXhCaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgbWluU2FtcGxlUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1heFNhbXBsZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtaW5DaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1heENoYW5uZWxzICgxfDIpICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBWaWRlb0RlY29kZXJDYXAgRU1QVFk+Cis8IUFUVExJU1QgVmlkZW9EZWNvZGVyQ2FwIG5hbWUgKHdtdikgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRGVjb2RlckNhcCBlbmFibGVkICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQXVkaW9EZWNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvRGVjb2RlckNhcCBuYW1lICh3bWEpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0RlY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL3R5cGVzLmhhbCBiL21lZGlhLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxYTczYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0OworCisvKioKKyAqIEFsaWFzZXMKKyAqLwordHlwZWRlZiBoYW5kbGUgRmlsZURlc2NyaXB0b3I7IC8vIFRoaXMgbXVzdCBoYXZlIG5vIG1vcmUgdGhhbiBvbmUgZmQuCit0eXBlZGVmIEZpbGVEZXNjcmlwdG9yIEZlbmNlOwordHlwZWRlZiB2ZWM8dWludDhfdD4gQnl0ZXM7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL0dyYXBoaWNCdWZmZXIuaAorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS93aW5kb3cuaDogQU5hdGl2ZVdpbmRvd0J1ZmZlcgorICovCisKKy8qKgorICogVGhpcyBzdHJ1Y3QgY29udGFpbnMgYXR0cmlidXRlcyBmb3IgYSBncmFsbG9jIGJ1ZmZlciB0aGF0IGNhbiBiZSBwdXQgaW50byBhCisgKiB1bmlvbi4KKyAqLworc3RydWN0IEFud0J1ZmZlckF0dHJpYnV0ZXMgeworICAgIHVpbnQzMl90IHdpZHRoOworICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICAgIHVpbnQzMl90IHVzYWdlOyAvLyBUT0RPOiBjb252ZXJ0IHRvIGFuIGVudW0KKyAgICB1aW50MzJfdCBnZW5lcmF0aW9uTnVtYmVyOworICAgIHVpbnQ2NF90IGxheWVyQ291bnQ7CisgICAgdWludDY0X3QgaWQ7Cit9OworCisvKioKKyAqIEFuIEFud0J1ZmZlciBpcyBzaW1wbHkgQW53QnVmZmVyQXR0cmlidXRlcyBwbHVzIGEgbmF0aXZlIGhhbmRsZS4KKyAqLworc3RydWN0IEFud0J1ZmZlciB7CisgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZTsKKyAgICBBbndCdWZmZXJBdHRyaWJ1dGVzIGF0dHI7Cit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL1JlY3QuaAorICovCitzdHJ1Y3QgUmVjdCB7CisgICAgaW50MzJfdCBsZWZ0OworICAgIGludDMyX3QgdG9wOworICAgIGludDMyX3QgcmlnaHQ7CisgICAgaW50MzJfdCBib3R0b207Cit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9SZWdpb24uaAorICovCit0eXBlZGVmIHZlYzxSZWN0PiBSZWdpb247CisKZGlmZiAtLWdpdCBhL21lZGlhL0FuZHJvaWQuYnAgYi9tZWRpYS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZTgyYmQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTAgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIm9teC8xLjAiLAorICAgICJvbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvIiwKKyAgICAib214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgICJvbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudCIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyIiwKKyAgICAib214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlbyIsCitdCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU1NTI3ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDEwNCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsIiwKKyAgICAgICAgIklPbXguaGFsIiwKKyAgICAgICAgIklPbXhCdWZmZXJTb3VyY2UuaGFsIiwKKyAgICAgICAgIklPbXhOb2RlLmhhbCIsCisgICAgICAgICJJT214T2JzZXJ2ZXIuaGFsIiwKKyAgICAgICAgIklPbXhTdG9yZS5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvR3JhcGhpY0J1ZmZlclNvdXJjZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teEJ1ZmZlclNvdXJjZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teE5vZGVBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhPYnNlcnZlckFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teFN0b3JlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teEJ1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214T2JzZXJ2ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id09teFN0b3JlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXhTdG9yZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teFN0b3JlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsIGIvbWVkaWEvb214LzEuMC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0ZDBjYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6RGF0YXNwYWNlOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCitpbXBvcnQgSU9teE5vZGU7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L21lZGlhL2xpYm1lZGlhL2FpZGwvYW5kcm9pZC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5haWRsCisgKgorICogVE9ETzogQWRkIGRvY3VtZW50YXRpb25zLgorICovCitpbnRlcmZhY2UgSUdyYXBoaWNCdWZmZXJTb3VyY2UgeworCisgICAgY29uZmlndXJlKElPbXhOb2RlIG9teE5vZGUsIERhdGFzcGFjZSBkYXRhc3BhY2UpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRTdXNwZW5kKGJvb2wgc3VzcGVuZCwgaW50NjRfdCB0aW1lVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRSZXBlYXRQcmV2aW91c0ZyYW1lRGVsYXlVcyhpbnQ2NF90IHJlcGVhdEFmdGVyVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRNYXhGcHMoZmxvYXQgbWF4RnBzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0VGltZUxhcHNlQ29uZmlnKGRvdWJsZSBmcHMsIGRvdWJsZSBjYXB0dXJlRnBzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0U3RhcnRUaW1lVXMoaW50NjRfdCBzdGFydFRpbWVVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFN0b3BUaW1lVXMoaW50NjRfdCBzdG9wVGltZVVzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgZ2V0U3RvcFRpbWVPZmZzZXRVcygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgaW50NjRfdCBzdG9wVGltZU9mZnNldFVzKTsKKworICAgIHNldENvbG9yQXNwZWN0cyhDb2xvckFzcGVjdHMgYXNwZWN0cykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFRpbWVPZmZzZXRVcyhpbnQ2NF90IHRpbWVPZmZzZXRVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNpZ25hbEVuZE9mSW5wdXRTdHJlYW0oKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXguaGFsIGIvbWVkaWEvb214LzEuMC9JT214LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWZjNDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC9JT214LmhhbApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcjsKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXM7CisKK2ltcG9ydCBJT214Tm9kZTsKK2ltcG9ydCBJT214T2JzZXJ2ZXI7CitpbXBvcnQgSUdyYXBoaWNCdWZmZXJTb3VyY2U7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oOiBJT01YCisgKgorICogSU9teCBoYXMgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIE9NWCBub2Rlcy4KKyAqLworaW50ZXJmYWNlIElPbXggeworCisgICAgLyoqCisgICAgICogSW5mb3JtYXRpb24gZm9yIGFuIElPbXhOb2RlIGNvbXBvbmVudC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29tcG9uZW50SW5mbyB7CisgICAgICAgIHN0cmluZyBtTmFtZTsKKyAgICAgICAgdmVjPHN0cmluZz4gbVJvbGVzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBMaXN0IGF2YWlsYWJsZSBjb21wb25lbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG5vZGVMaXN0IFRoZSBsaXN0IG9mIENvbXBvbmVudEluZm8uCisgICAgICovCisgICAgbGlzdE5vZGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPENvbXBvbmVudEluZm8+IG5vZGVMaXN0CisgICAgICAgICk7CisKKworICAgIC8qKgorICAgICAqIEFsbG9jYXRlIGFuIElPbXhOb2RlIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBub2RlIG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgbm9kZSB0byBjcmVhdGUuCisgICAgICogQHBhcmFtIG9ic2VydmVyIEFuIG9ic2VydmVyIG9iamVjdCB0aGF0IHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyBmcm9tCisgICAgICogdGhlIGNyZWF0ZWQgaW5zdGFuY2UuCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG9teE5vZGUgVGhlIGFsbG9jYXRlZCBpbnN0YW5jZSBvZiBgSU9teE5vZGVgLgorICAgICAqLworICAgIGFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgIHN0cmluZyBuYW1lLAorICAgICAgICAgICAgSU9teE9ic2VydmVyIG9ic2VydmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBJT214Tm9kZSBvbXhOb2RlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gaW5wdXQgc3VyZmFjZSBmb3IgcmVjb3JkaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHByb2R1Y2VyIFRoZSBhc3NvY2lhdGVkIHByb2R1Y2VyIGVuZCBvZiB0aGUgYnVmZmVyIHF1ZXVlLgorICAgICAqIEByZXR1cm4gc291cmNlIFRoZSBhc3NvY2lhdGVkIGBJR3JhcGhpY0J1ZmZlclNvdXJjZWAuCisgICAgICovCisgICAgY3JlYXRlSW5wdXRTdXJmYWNlKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlciBwcm9kdWNlciwKKyAgICAgICAgICAgIElHcmFwaGljQnVmZmVyU291cmNlIHNvdXJjZQorICAgICAgICApOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214QnVmZmVyU291cmNlLmhhbCBiL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRjNDNmYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJtZWRpYS9haWRsL2FuZHJvaWQvSU9NWEJ1ZmZlclNvdXJjZS5haWRsCisgKgorICogSU9teEJ1ZmZlclNvdXJjZSBpcyBhbiBpbnRlcmZhY2UgZm9yIGEgbGlzdGVuZXIgZm9yIGNlcnRhaW4gZXZlbnRzIGZyb20gYW4KKyAqIElPbXhOb2RlIGluc3RhbmNlLiBVc2UgSU9teE5vZGU6OnNldElucHV0U3VyZmFjZSgpIHRvIGF0dGFjaCBhbgorICogSU9teEJ1ZmZlclNvdXJjZSBpbnN0YW5jZSB0byBhbiBJT214Tm9kZSBpbnN0YW5jZS4KKyAqCisgKiBAc2VlIE9NWF9TVEFURVRZUEUgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgKi8KK2ludGVyZmFjZSBJT214QnVmZmVyU291cmNlIHsKKworICAgIC8qKgorICAgICAqIG9uT214RXhlY3V0aW5nKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHN0YXRlIGNoYW5nZXMgdG8KKyAgICAgKiBPTVhfU3RhdGVFeGVjdXRpbmcgc3RhdGUuCisgICAgICovCisgICAgb25ld2F5IG9uT214RXhlY3V0aW5nKCk7CisKKyAgICAvKioKKyAgICAgKiBvbk9teElkbGUoKSBpcyBpbnZva2VkIHdoZW4gdGhlIG5vZGUgdHJhbnNpdGlvbnMgZnJvbSBPTVhfU3RhdGVFeGVjdXRpbmcKKyAgICAgKiB0byBPTVhfU3RhdGVJZGxlLgorICAgICAqLworICAgIG9uZXdheSBvbk9teElkbGUoKTsKKworICAgIC8qKgorICAgICAqIG9uT214TG9hZGVkKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHRyYW5zaXRpb25zIGZyb20gT01YX1N0YXRlSWRsZSBvcgorICAgICAqIE9NWF9TdGF0ZUV4ZWN1dGluZyB0byBPTVhfU3RhdGVMb2FkZWQuCisgICAgICovCisgICAgb25ld2F5IG9uT214TG9hZGVkKCk7CisKKyAgICAvKioKKyAgICAgKiBvbklucHV0QnVmZmVyQWRkZWQoKSBpcyBpbnZva2VkIGFmdGVyIGEgbmV3IGlucHV0IGJ1ZmZlciBpcyBhZGRlZCB0byB0aGUKKyAgICAgKiBub2RlLiBUaGlzIG1heSBoYXBwZW4gd2l0aGluIElPbXhOb2RlOjphbGxvY2F0ZVNlY3VyZUJ1ZmZlcigpIG9yCisgICAgICogSU9teE5vZGU6OnVzZUJ1ZmZlcigpLgorICAgICAqCisgICAgICogQHBhcmFtW2luXSBidWZmZXIgaXMgdGhlIGlkIG9mIHRoZSBhZGRlZCBidWZmZXIuCisgICAgICovCisgICAgb25ld2F5IG9uSW5wdXRCdWZmZXJBZGRlZChCdWZmZXJJZCBidWZmZXIpOworCisgICAgLyoqCisgICAgICogb25JbnB1dEJ1ZmZlckVtcHRpZWQoKSBpcyBpbnZva2VkIGFmdGVyIGFuIGlucHV0IGJ1ZmZlciBpcyBlbXB0aWVkLiBUaGlzCisgICAgICogbWF5IGhhcHBlbiB3aXRoaW4gSU9teE5vZGU6OmVtcHR5QnVmZmVyKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW1baW5dIGJ1ZmZlciBpcyB0aGUgaWQgb2YgdGhlIGVtcHRpZWQgYnVmZmVyLgorICAgICAqIEBwYXJhbVtpbl0gZmVuY2UgaXMgdGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyLgorICAgICAqLworICAgIG9uZXdheSBvbklucHV0QnVmZmVyRW1wdGllZChCdWZmZXJJZCBidWZmZXIsIEZlbmNlIGZlbmNlKTsKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsIGIvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjMGRhMwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsCkBAIC0wLDAgKzEsMzU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBJT214QnVmZmVyU291cmNlOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWE5vZGUKKyAqIFJlZjogaHR0cHM6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvb214aWwvc3BlY3MvT3Blbk1BWF9JTF8xXzFfMl9TcGVjaWZpY2F0aW9uLnBkZgorICovCisKKy8qKgorICogSU9teE5vZGUgaXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggYW4gT01YIGNvbXBvbmVudCAoY2FsbGVkCisgKiAibm9kZSIgaGVyZSkgdGhhdCBoYXMgYmVlbiBwcmV2aW91c2x5IG9idGFpbmVkIGJ5IGNhbGxpbmcKKyAqIElPbXg6OmFsbG9jYXRlTm9kZSgpLgorICovCitpbnRlcmZhY2UgSU9teE5vZGUgeworCisgICAgLyoqCisgICAgICogRnJlZSB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKi8KKyAgICBmcmVlTm9kZSgKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogSW52b2tlIGEgY29tbWFuZCBvbiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbWQgVHlwZSBvZiB0aGUgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gcGFyYW0gUGFyYW1ldGVyIGZvciB0aGUgY29tbWFuZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9TZW5kQ29tbWFuZCgpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY21kLAorICAgICAgICAgICAgaW50MzJfdCBwYXJhbQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhIHBhcmFtZXRlciBzZXR0aW5nIGZyb20gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXggVHlwZSBvZiB0aGUgcGFyYW1ldGVyIHRvIHJldHJpZXZlLgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmV0cmlldmFsLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG91dFBhcmFtcyBDdXJyZW50IHBhcmFtZXRlciBzZXR0aW5nLgorICAgICAqCisgICAgICogQHNlZSBPTVhfR2V0UGFyYW1ldGVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgdWludDMyX3QgaW5kZXgsCisgICAgICAgICAgICBCeXRlcyBpblBhcmFtcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgQnl0ZXMgb3V0UGFyYW1zCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgYSBwYXJhbWV0ZXIgc2V0dGluZyBvZiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBwYXJhbWV0ZXIgdG8gY2hhbmdlLgorICAgICAqIEBwYXJhbSBwYXJhbXMgTmV3IHBhcmFtZXRlciBzZXR0aW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX1NldFBhcmFtZXRlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgcGFyYW1zCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBub2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IFR5cGUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gdG8gcmV0cmlldmUuCisgICAgICogQHBhcmFtIGluQ29uZmlnIEluZm9ybWF0aW9uIGFib3V0IHRoZSByZXRyaWV2YWwuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gb3V0Q29uZmlnIEN1cnJlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0dldENvbmZpZygpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGdldENvbmZpZygKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgaW5Db25maWcKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ5dGVzIG91dENvbmZpZworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIGEgY29uZmlndXJhdGlvbiBvZiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gY29uZmlnIE5ldyBjb25maWd1cmF0aW9uLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX1NldENvbmZpZygpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNldENvbmZpZygKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgY29uZmlnCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kZSBvZiBhIHBvcnQgb24gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBtb2RlIFRhcmdldCBtb2RlIG9uIHRoZSBzcGVjaWZpZWQgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICovCisgICAgc2V0UG9ydE1vZGUoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBQb3J0TW9kZSBtb2RlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFByZXBhcmUgYSBwb3J0IGZvciBhZGFwdGl2ZSBwbGF5YmFjay4gVGhpcyBpcyBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uCisgICAgICogIk9NWC5nb29nbGUuYW5kcm9pZC5pbmRleC5wcmVwYXJlRm9yQWRhcHRpdmVQbGF5YmFjayIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0aGUgYWRhcHRpdmUgcGxheWJhY2sgaXMgZW5hYmxlZCBvciBub3QuCisgICAgICogQHBhcmFtIG1heEZyYW1lV2lkdGggTWF4aW11bSBmcmFtZSB3aWR0aC4KKyAgICAgKiBAcGFyYW0gbWF4RnJhbWVIZWlnaHQgTWF4aW11bSBmcmFtZSBoZWlnaHQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqLworICAgIHByZXBhcmVGb3JBZGFwdGl2ZVBsYXliYWNrKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgYm9vbCBlbmFibGUsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhGcmFtZVdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgbWF4RnJhbWVIZWlnaHQKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJlIGEgcG9ydCBmb3IgYSB0dW5uZWxlZCBwbGF5YmFjayBtb2RlLiBUaGlzIGlzIGJhc2VkIG9uIHRoZQorICAgICAqIGV4dGVuc2lvbiAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LmNvbmZpZ3VyZVZpZGVvVHVubmVsTW9kZSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSB0dW5uZWxlZCBXaGV0aGVyIHRoZSB0dW5uZWxlZCBtb2RlIGlzIHVzZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBhdWRpb0h3U3luYyBIVyBTWU5DIElEIG9mIHRoZSBhdWRpbyBIQUwgb3V0cHV0IHN0cmVhbSB0byBzeW5jCisgICAgICogdGhlIHZpZGVvIHdpdGguCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gc2lkZWJhbmRIYW5kbGUgQ29kZWMtYWxsb2NhdGVkIHNpZGViYW5kIHdpbmRvdyBoYW5kbGUuCisgICAgICovCisgICAgY29uZmlndXJlVmlkZW9UdW5uZWxNb2RlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgYm9vbCB0dW5uZWxlZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGF1ZGlvSHdTeW5jCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBoYW5kbGUgc2lkZWJhbmRIYW5kbGUKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBidWZmZXIgdXNhZ2Ugb24gYSBwb3J0LiBUaGlzIGlzIGJhc2VkIG9uIHRoZSBleHRlbnNpb24KKyAgICAgKiAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LmdldEFuZHJvaWROYXRpdmVCdWZmZXJVc2FnZSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHVzYWdlIEN1cnJlbnQgZ3JhcGhpYyBidWZmZXIgdXNhZ2UuCisgICAgICovCisgICAgZ2V0R3JhcGhpY0J1ZmZlclVzYWdlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50MzJfdCB1c2FnZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogU2V0IHVwIGEgbGlzdGVuZXIgdG8gZXZlbnRzIHJlbGF0ZWQgdG8gdGhlIGlucHV0IHN1cmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyU291cmNlIExpc3RlbmVyIG9iamVjdCB0aGF0IGltcGxlbWVudHMKKyAgICAgKiBJT214QnVmZmVyU291cmNlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgSU9teEJ1ZmZlclNvdXJjZS4KKyAgICAgKi8KKyAgICBzZXRJbnB1dFN1cmZhY2UoCisgICAgICAgICAgICBJT214QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZSBhbiBvcGFxdWUgYnVmZmVyIG9uIGEgcG9ydCBhcyBhIG5hdGl2ZSBoYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBzaXplIERlc2lyZWQgc2l6ZSBvZiB0aGUgYnVmZmVyLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBJZCBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgaW4KKyAgICAgKiBvdGhlciBidWZmZXItcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICogQHJldHVybiBuYXRpdmVIYW5kbGUgTmF0aXZlIGhhbmRsZSBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0FsbG9jYXRlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgYWxsb2NhdGVTZWN1cmVCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICB1aW50NjRfdCBzaXplCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIsCisgICAgICAgICAgICBoYW5kbGUgbmF0aXZlSGFuZGxlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ24gYSBidWZmZXIgdG8gYSBwb3J0LgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gb214QnVmZmVyIEJ1ZmZlciB0byBiZSBhc3NpZ25lZCB0byB0aGUgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBidWZmZXIgSWQgb2YgdGhlIGFzc2lnbmVkIGJ1ZmZlciwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgaW4KKyAgICAgKiBvdGhlciBidWZmZXItcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9Vc2VCdWZmZXIoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICB1c2VCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBDb2RlY0J1ZmZlciBvbXhCdWZmZXIKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlcgorICAgICAgICApOworCisgICAgLyoqCisgICAgICogRnJlZSBhIGJ1ZmZlciBwcmV2aW91c2x5IGFzc2lnbmVkIHRvIGEgcG9ydCBieSBhbGxvY2F0ZVNlY3VyZUJ1ZmZlcigpIG9yCisgICAgICogdXNlQnVmZmVyKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBiZSBmcmVlZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9GcmVlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZnJlZUJ1ZmZlcigKKyAgICAgICAgICAgIHVpbnQzMl90IHBvcnRJbmRleCwKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQYXNzIFxwIGZlbmNlIHRvIHRoZSBub2RlIGlmIGl0IHN1cHBvcnRzIGZlbmNlcy4gT3RoZXJ3aXNlLCBpdCB3YWl0cyBvbgorICAgICAqIFxwIGZlbmNlIGJlZm9yZSBjYWxsaW5nIE9NWF9GaWxsVGhpc0J1ZmZlcigpLiBUaGUgbm9kZSB3aWxsIHRha2UKKyAgICAgKiBvd25lcnNoaXAgb2YgdGhlIGZlbmNlIGV2ZW4gaWYgdGhpcyBjYWxsIGZhaWxzLgorICAgICAqCisgICAgICogSWYgdGhlIHBvcnQgaXMgaW4gbWV0YWRhdGEgbW9kZSwgdGhlIGJ1ZmZlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgdG8KKyAgICAgKiB0aGUgbmV3IGJ1ZmZlciBwYXNzZWQgaW4gdmlhIFxwIG9teEJ1ZmZlciBiZWZvcmUgT01YX0ZpbGxUaGlzQnVmZmVyKCkgaXMKKyAgICAgKiBjYWxsZWQuIE90aGVyd2lzZSwgXHAgb214QnVmZmVyIGlzIG5vdCB1c2VkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlciBJZCBvZiB0aGUgYnVmZmVyIHRvIGZpbGwuCisgICAgICogQHBhcmFtIG9teEJ1ZmZlciBOZXcgYnVmZmVyIGluZm9ybWF0aW9uIChpbiBtZXRhZGF0YSBtb2RlKS4KKyAgICAgKiBAcGFyYW0gZmVuY2UgRmVuY2UgdG8gd2FpdCBmb3IgKGlmIG5vdCBudWxsKS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9GaWxsVGhpc0J1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGZpbGxCdWZmZXIoCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIsCisgICAgICAgICAgICBDb2RlY0J1ZmZlciBvbXhCdWZmZXIsCisgICAgICAgICAgICBGZW5jZSBmZW5jZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQYXNzIFxwIGZlbmNlIHRvIHRoZSBub2RlIGlmIGl0IHN1cHBvcnRzIGZlbmNlcy4gT3RoZXJ3aXNlLCB3YWl0IG9uCisgICAgICogXHAgZmVuY2UgYmVmb3JlIGNhbGxpbmcgT01YX0VtcHR5VGhpc0J1ZmZlcigpLiBUaGUgbm9kZSB3aWxsIHRha2UKKyAgICAgKiBvd25lcnNoaXAgb2YgdGhlIGZlbmNlIGV2ZW4gaWYgdGhpcyBjYWxsIGZhaWxzLgorICAgICAqCisgICAgICogSWYgdGhlIHBvcnQgaXMgaW4gbWV0YWRhdGEgbW9kZSwgdGhlIGJ1ZmZlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgdG8KKyAgICAgKiB0aGUgbmV3IGJ1ZmZlciBwYXNzZWQgaW4gdmlhIFxwIG9teEJ1ZmZlciBiZWZvcmUgT01YX0VtcHR5VGhpc0J1ZmZlcigpIGlzCisgICAgICogY2FsbGVkLiBPdGhlcndpc2UsIFxwIG9teEJ1ZmZlciBpcyBub3QgdXNlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBmaWxsLgorICAgICAqIEBwYXJhbSBvbXhCdWZmZXIgTmV3IGJ1ZmZlciBpbmZvcm1hdGlvbiAoaW4gbWV0YWRhdGEgbW9kZSkuCisgICAgICogQHBhcmFtIGZsYWdzIEZsYWdzIHRvIGJlIHBhc3NlZCB0byBPTVhfRW1wdHlCdWZmZXIoKS4KKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wVXMgVGltZXN0YW1wIE9NWF9FbXB0eUJ1ZmZlcigpLgorICAgICAqIEBwYXJhbSBmZW5jZSBGZW5jZSB0byB3YWl0IGZvciAoaWYgbm90IG51bGwpLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0VtcHR5VGhpc0J1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGVtcHR5QnVmZmVyKAorICAgICAgICAgICAgQnVmZmVySWQgYnVmZmVyLAorICAgICAgICAgICAgQ29kZWNCdWZmZXIgb214QnVmZmVyLAorICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCisgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXBVcywKKyAgICAgICAgICAgIEZlbmNlIGZlbmNlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgdGhlIG5vZGUgdG8gdHJhbnNsYXRlIGFuIGV4dGVuc2lvbiBzdHJpbmcgdG8gYW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyTmFtZSBSZXF1ZXN0ZWQgZXh0ZW5zaW9uIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBpbmRleCBUcmFuc2xhdGVkIGluZGV4LgorICAgICAqCisgICAgICogQHNlZSBPTVhfR2V0RXh0ZW5zaW9uSW5kZXgoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25JbmRleCgKKyAgICAgICAgICAgIHN0cmluZyBwYXJhbWV0ZXJOYW1lCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50MzJfdCBpbmRleAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWRkIGFuIE9NWCBtZXNzYWdlIG9uIHRoZSBub2RlJ3MgbWVzc2FnZSBxdWV1ZS4gVGhlIGluc3RhbmNlIG9mCisgICAgICogSU9teE9ic2VydmVyIHRoYXQgd2FzIG9idGFpbmVkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIG5vZGUgd2lsbAorICAgICAqIHJlY2VpdmUgdGhlIG1lc3NhZ2UgaW4gYmF0Y2hlcyBieSB0aGUgY2FsbGJhY2sKKyAgICAgKiBJT214T2JzZXJ2ZXI6Om9uTWVzc2FnZXMoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2cgTWVzc2FnZSB0byBzZW5kLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgSU9teE9ic2VydmVyOjpvbk1lc3NhZ2VzKCkuCisgICAgICovCisgICAgZGlzcGF0Y2hNZXNzYWdlKAorICAgICAgICAgICAgTWVzc2FnZSBtc2cKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsIGIvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNmE5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oYWwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWE9ic2VydmVyCisgKi8KKworLyoqCisgKiBJT214T2JzZXJ2ZXIgaXMgYSBsaXN0ZW5lciBpbnRlcmZhY2UgZm9yIE9NWCBtZXNzYWdlcyBzZW50IGZyb20gYW4gSU9teE5vZGUKKyAqIHN0YW5jZS4KKyAqLworaW50ZXJmYWNlIElPbXhPYnNlcnZlciB7CisKKyAgICAvKioKKyAgICAgKiBJbnZva2VkIHRvIHByb2Nlc3MgbWVzc2FnZXMgZnJvbSBhbiBJT214Tm9kZSBpbnN0YW5jZS4gTm90ZSB0aGF0IG1lc3NhZ2VzCisgICAgICogY29tZSBpbiBiYXRjaGVzLgorICAgICAqLworICAgIG9uZXdheSBvbk1lc3NhZ2VzKHZlYzxNZXNzYWdlPiBtZXNzYWdlcyk7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwgYi9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIyNGIwZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teFN0b3JlLmhhbApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgSU9teDsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IElPTVgKKyAqCisgKiBUaGVyZSB3aWxsIGJlIHR3byBpbnN0YW5jZXMgb2YgSU9teFN0b3JlOiAicGxhdGZvcm0iIGFuZCAidmVuZG9yIi4KKyAqCisgKiBUaGUgSU9teFN0b3JlIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhlIHBsYXRmb3JtIG11c3QgcHJlc2VudCAicGxhdGZvcm0iIGFzIHRoZQorICogaW50ZXJmYWNlIG5hbWUuCisgKgorICogVGhlIElPbXhTdG9yZSBzZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSB2ZW5kb3IgbXVzdCBwcmVzZW50ICJ2ZW5kb3IiIGFzIHRoZQorICogaW5zdGFuY2UgbmFtZS4KKyAqLworaW50ZXJmYWNlIElPbXhTdG9yZSB7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUgaXMgYSBrZXktdmFsdWUgcGFpciBvZiBzdHJpbmdzLiBUaGUgYHZhbHVlYCBtZW1iZXIgaXMgZ2VuZXJhbGx5CisgICAgICogYSBzdHJpbmdpZmllZCB2YWx1ZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqICAgZW51bTx2MSx2MiwuLi4sdm4+OiAgICB2MSB8IHYyIHwgLi4uIHwgdm4KKyAgICAgKiAgIG51bTogICAgICAgICAgICAgICAgICAgMCB8IFsxLTldWzAtOV0qCisgICAgICogICBzdHJpbmc6ICAgICAgICAgICAgICAgIGFyYml0cmFyeSBzdHJpbmcKKyAgICAgKiAgIHNpemU6ICAgICAgICAgICAgICAgICAgPG51bT54PG51bT4KKyAgICAgKiAgIHJhdGlvOiAgICAgICAgICAgICAgICAgPG51bT46PG51bT4KKyAgICAgKiAgIHJhbmdlPHR5cGU+OiAgICAgICAgICAgPHR5cGU+LTx0eXBlPgorICAgICAqICAgbGlzdDx0eXBlPjogICAgICAgICAgICA8dHlwZT4gfCA8dHlwZT4sPGxpc3Q8dHlwZT4+CisgICAgICovCisgICAgc3RydWN0IEF0dHJpYnV0ZSB7CisgICAgICAgIHN0cmluZyBrZXk7CisgICAgICAgIHN0cmluZyB2YWx1ZTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2VydmljZSBhdHRyaWJ1dGUKKyAgICAgKgorICAgICAqIE9wdGlvbmFsIHNlcnZpY2UgYXR0cmlidXRlczoKKyAgICAgKiAgIGtleTogJ21heC12aWRlby1lbmNvZGVyLWlucHV0LWJ1ZmZlcnMnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3N1cHBvcnRzLW11bHRpcGxlLXNlY3VyZS1jb2RlY3MnLCB2YWx1ZS10eXBlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ3N1cHBvcnRzLXNlY3VyZS13aXRoLW5vbi1zZWN1cmUtY29kZWMnLCB2YWx1ZS10eXBlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIEZvciBrZXlzIHdpdGggcHJlZml4ICdzdXBwb3J0cy0nLCB0aGUgdmFsdWUgb2YgMCBtZWFucyAibm8iIChub3QKKyAgICAgKiBzdXBwb3J0ZWQpIHdoaWxlIHRoZSB2YWx1ZSBvZiAxIG1lYW5zICJ5ZXMiIChzdXBwb3J0ZWQpLgorICAgICAqLworICAgIHR5cGVkZWYgQXR0cmlidXRlIFNlcnZpY2VBdHRyaWJ1dGU7CisKKyAgICAvKioKKyAgICAgKiBMaXN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VydmljZS1zcGVjaWZpYyAobm90IG5vZGUtc3BlY2lmaWMpLgorICAgICAqCisgICAgICogQHJldHVybiBhdHRyaWJ1dGVzIFRoZSBsaXN0IG9mIGBBdHRyaWJ1dGVgcyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIHNlcnZpY2UuCisgICAgICovCisgICAgbGlzdFNlcnZpY2VBdHRyaWJ1dGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPFNlcnZpY2VBdHRyaWJ1dGU+IGF0dHJpYnV0ZXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIE5vZGUgYXR0cmlidXRlCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2JpdHJhdGUtcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdtYXgtY29uY3VycmVudC1pbnN0YW5jZXMnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ21heC1zdXBwb3J0ZWQtaW5zdGFuY2VzJywgdmFsdWUtdHlwZTogbnVtCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgZm9yIGF1ZGlvIG5vZGVzIHRvIGRlc2NyaWJlIHN1cHBvcnRlZCB2YWx1ZXM6CisgICAgICogICBrZXk6ICdtYXgtY2hhbm5lbC1jb3VudCcsIHZhbHVlLXR5cGU6IG51bQorICAgICAqICAga2V5OiAnc2FtcGxlLXJhdGUtcmFuZ2VzJywgdmFsdWUtdHlwZTogbGlzdDxyYW5nZTxudW0+PgorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciB2aWRlbyBub2RlcyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnYWxpZ25tZW50JywgdmFsdWUtdHlwZTogc2l6ZQorICAgICAqICAga2V5OiAnYmxvY2stYXNwZWN0LXJhdGlvLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8cmF0aW8+CisgICAgICogICBrZXk6ICdibG9jay1jb3VudC1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2Jsb2NrLXNpemUnLCB2YWx1ZS10eXBlOiBzaXplCisgICAgICogICBrZXk6ICdibG9ja3MtcGVyLXNlY29uZC1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtY2FuLXN3YXAtd2lkdGgtaGVpZ2h0JywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdmcmFtZS1yYXRlLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8bnVtPgorICAgICAqICAga2V5OiAncGl4ZWwtYXNwZWN0LXJhdGlvLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8cmF0aW8+CisgICAgICogICBrZXk6ICdzaXplLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8c2l6ZT4KKyAgICAgKgorICAgICAqIFJlcXVpcmVkIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gbm9kZXMgdGhhdCBhcmUgcmVxdWlyZWQgYnkgQW5kcm9pZCB0bworICAgICAqIGRlc2NyaWJlIG1lYXN1cmVkIHZhbHVlcyBmb3IgdGhpcyBkZXZpY2U6CisgICAgICogICBrZXk6ICdtZWFzdXJlZC1mcmFtZS1yYXRlLTx3aWR0aD4tPGhlaWdodD4tcmFuZ2UnLAorICAgICAqICAgICB2YWx1ZS10eXBlOiByYW5nZTxudW0+OyB3aGVyZSB3aWR0aDogbnVtLCBoZWlnaHQ6IG51bQorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciBkZWNvZGVycyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnZmVhdHVyZS1hZGFwdGl2ZS1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtc2VjdXJlLXBsYXliYWNrJywgdmFsdWU6IGVudW08MCwxPgorICAgICAqICAga2V5OiAnZmVhdHVyZS10dW5uZWxlZC1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gZGVjb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtcGFydGlhbC1mcmFtZScsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgZW5jb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2NvbXBsZXhpdHktZGVmYXVsdCcsIHZhbHVlLXR5cGU6IG51bQorICAgICAqICAga2V5OiAnY29tcGxleGl0eS1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtYml0cmF0ZS1jb250cm9sJywgdmFsdWUtdHlwZTogbGlzdDxlbnVtPFZCUixDQlIsQ1E+PgorICAgICAqICAga2V5OiAnZmVhdHVyZS1pbnRyYS1yZWZyZXNoJywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdxdWFsaXR5LWRlZmF1bHQnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3F1YWxpdHktcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdxdWFsaXR5LXNjYWxlJywgdmFsdWUtdHlwZTogc3RyaW5nCisgICAgICoKKyAgICAgKiBGb3Iga2V5cyB3aXRoIHByZWZpeCAnZmVhdHVyZS0nIGFuZCB2YWx1ZSB0eXBlIGVudW08MCwxPiwgdGhlIHZhbHVlIG9mIDAKKyAgICAgKiBtZWFucyAib3B0aW9uYWwiLCB3aGlsZSB0aGUgdmFsdWUgb2YgMSBtZWFucyAicmVxdWlyZWQiLgorICAgICAqLworICAgIHR5cGVkZWYgQXR0cmlidXRlIE5vZGVBdHRyaWJ1dGU7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1hdGlvbiBmb3IgYW4gSU9teE5vZGUgbm9kZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgTm9kZUluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogTmFtZSBvZiB0aGlzIG5vZGUuCisgICAgICAgICAqCisgICAgICAgICAqIGBuYW1lYCBjYW4gYmUgc3VwcGxpZWQgdG8gYElPbXg6OmFsbG9jYXRlTm9kZWAgb2YgYQorICAgICAgICAgKiBjb3JyZXNwb25kaW5nIGBJT214YCBpbnN0YW5jZSB0byBjcmVhdGUgdGhlIG5vZGUuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgbmFtZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5hbWUgb2YgdGhlIGBJT214YCBpbnN0YW5jZSB0aGF0IGNhbiBjcmVhdGUgdGhpcyBub2RlLgorICAgICAgICAgKgorICAgICAgICAgKiBUbyBvYnRhaW4gdGhlIGBJT214YCBpbnN0YW5jZSwgY2FsbCBgZ2V0T214KG93bmVyKWAuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgb3duZXI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBMaXN0IG9mIG5vZGUgYXR0cmlidXRlcy4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxOb2RlQXR0cmlidXRlPiBhdHRyaWJ1dGVzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1hdGlvbiBhYm91dCBub2RlcyBwcm92aWRlZCBmb3IgYSBzdXBwb3J0ZWQgbm9kZSByb2xlCisgICAgICovCisgICAgc3RydWN0IFJvbGVJbmZvIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN0YW5kYXJkIE9NWCBub2RlIHJvbGUuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgcm9sZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcnJlc3BvbmRpbmcgbWVkaWEgdHlwZSAoYXMgZGVmaW5lZCBpbiBNZWRpYUZvcm1hdC5NSU1FVFlQRV8qCisgICAgICAgICAqIGNvbnN0YW50cyBmb3IgdHlwZXMgcmVxdWlyZWQgYnkgQW5kcm9pZCkuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgdHlwZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGZvciBhbiBlbmNvZGVyIG9yIGEgZGVjb2Rlci4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgaXNFbmNvZGVyOworICAgICAgICAvKioKKyAgICAgICAgICogV2hldGhlciB0byBwcmVmZXIgcGxhdGZvcm0gbm9kZXMgZm9yIHRoaXMgcm9sZS4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgcHJlZmVyUGxhdGZvcm1Ob2RlczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIExpc3Qgb2Ygbm9kZXMgdGhhdCBzdXBwb3J0IHRoaXMgcm9sZSwgb3JkZXJlZCBieSBwcmVmZXJlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgdmVjPE5vZGVJbmZvPiBub2RlczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcmVmaXggb2YgbmFtZXMgb2Ygc3VwcG9ydGVkIG5vZGVzLgorICAgICAqCisgICAgICogQHJldHVybiBwcmVmaXggVGhlIHByZWZpeCBvZiB0aGUgbmFtZXMgb2YgYWxsIG5vZGVzIHN1cHBvcnRlZCBieSB0aGlzCisgICAgICogICAgICAgICAgICAgICAgc2VydmljZS4KKyAgICAgKi8KKyAgICBnZXROb2RlUHJlZml4KAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBzdHJpbmcgcHJlZml4CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBMaXN0IHJvbGVzIG9mIHN1cHBvcnRlZCBub2Rlcy4KKyAgICAgKgorICAgICAqIFRoZSBuYW1lIG9mIGVhY2ggbm9kZSBpbnNpZGUgYE5vZGVJbmZvYCBtdXN0IHN0YXJ0IHdpdGggdGhlIHByZWZpeAorICAgICAqIHJldHVybmVkIGJ5IGBnZXROb2RlUHJlZml4KClgLgorICAgICAqCisgICAgICogQHJldHVybiByb2xlTGlzdCBUaGUgbGlzdCBvZiBgUm9sZUluZm9gcy4KKyAgICAgKgorICAgICAqIEBzZWUgUm9sZUluZm8KKyAgICAgKi8KKyAgICBsaXN0Um9sZXMoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHZlYzxSb2xlSW5mbz4gcm9sZUxpc3QKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIE9idGFpbiBhbiBgSU9teGAgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlLgorICAgICAqIEByZXR1cm4gb214IFRoZSBgSU9teGAgaW50ZXJmYWNlIGFzc29jaWF0ZWQgd2l0aCBgbmFtZWAuIFRoaXMgbXVzdCBiZQorICAgICAqIG51bGwgaWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLgorICAgICAqLworICAgIGdldE9teCgKKyAgICAgICAgICAgIHN0cmluZyBuYW1lCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIElPbXggb214CisgICAgICAgICk7CisKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdHlwZXMuaGFsIGIvbWVkaWEvb214LzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZhNjAwNwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXM7CisKKy8vIEFsaWFzZXMKK3R5cGVkZWYgdWludDMyX3QgQnVmZmVySWQ7CisKKy8qKgorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3V0aWxzL0Vycm9ycy5oCisgKiBSZWY6IGJpb25pYy9saWJjL2tlcm5lbC91YXBpL2FzbS1nZW5lcmljL2Vycm5vLWJhc2UuaAorICogUmVmOiBiaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tZ2VuZXJpYy9lcnJuby5oCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9zdGFnZWZyaWdodC9NZWRpYUVycm9yLmgKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJzdGFnZWZyaWdodC9vbXgvT01YVXRpbHMuY3BwOiBTdGF0dXNGcm9tT01YRXJyb3IKKyAqLworZW51bSBTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBPSyAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgTk9fRVJST1IgICAgICAgICAgICAgICAgPSAwLAorCisgICAgTkFNRV9OT1RfRk9VTkQgICAgICAgICAgPSAtMiwKKyAgICBXT1VMRF9CTE9DSyAgICAgICAgICAgICA9IC0xMSwKKyAgICBOT19NRU1PUlkgICAgICAgICAgICAgICA9IC0xMiwKKyAgICBBTFJFQURZX0VYSVNUUyAgICAgICAgICA9IC0xNywKKyAgICBOT19JTklUICAgICAgICAgICAgICAgICA9IC0xOSwKKyAgICBCQURfVkFMVUUgICAgICAgICAgICAgICA9IC0yMiwKKyAgICBERUFEX09CSkVDVCAgICAgICAgICAgICA9IC0zMiwKKyAgICBJTlZBTElEX09QRVJBVElPTiAgICAgICA9IC0zOCwKKyAgICBUSU1FRF9PVVQgICAgICAgICAgICAgICA9IC0xMTAsCisgICAgRVJST1JfVU5TVVBQT1JURUQgICAgICAgPSAtMTAxMCwKKyAgICBVTktOT1dOX0VSUk9SICAgICAgICAgICA9IC0yMTQ3NDgzNjQ4LAorCisgICAgQlVGRkVSX05FRURTX1JFQUxMT0NBVElPTiA9IDB4MSwKKyAgICBSRUxFQVNFX0FMTF9CVUZGRVJTICAgICAgID0gMHgyLAorfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IG9teF9tZXNzYWdlCisgKgorICogRGF0YSBzdHJ1Y3R1cmUgZm9yIGFuIE9NWCBtZXNzYWdlLiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgdW5pb24gb2YgZGlmZmVyZW50CisgKiBtZXNzYWdlIHR5cGVzLgorICovCitzdHJ1Y3QgTWVzc2FnZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgZm91ciBtYWluIHR5cGVzIG9mIG1lc3NhZ2VzLgorICAgICAqLworICAgIGVudW0gVHlwZSA6IHVpbnQzMl90IHsKKyAgICAgICAgRVZFTlQsCisgICAgICAgIEVNUFRZX0JVRkZFUl9ET05FLAorICAgICAgICBGSUxMX0JVRkZFUl9ET05FLAorICAgICAgICBGUkFNRV9SRU5ERVJFRCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQHNlZSBPTVhfRVZFTlRUWVBFIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHN0cnVjdCBFdmVudERhdGEgeworICAgICAgICB1aW50MzJfdCBldmVudDsgLy8gVE9ETzogaWYgdGhlcmUgYXJlIGNvbW1vbiBjb3JlIGV2ZW50cywgY29udmVydCB0byBhbiBlbnVtIG9yIHBvaW50IHRvIHN0ZAorICAgICAgICB1aW50MzJfdCBkYXRhMTsKKyAgICAgICAgdWludDMyX3QgZGF0YTI7CisgICAgICAgIHVpbnQzMl90IGRhdGEzOworICAgICAgICB1aW50MzJfdCBkYXRhNDsKKyAgICB9OworCisgICAgc3RydWN0IEJ1ZmZlckRhdGEgeworICAgICAgICBCdWZmZXJJZCBidWZmZXI7CisgICAgfTsKKworICAgIHN0cnVjdCBFeHRlbmRlZEJ1ZmZlckRhdGEgeworICAgICAgICBCdWZmZXJJZCBidWZmZXI7CisgICAgICAgIHVpbnQzMl90IHJhbmdlT2Zmc2V0OworICAgICAgICB1aW50MzJfdCByYW5nZUxlbmd0aDsKKyAgICAgICAgdWludDMyX3QgZmxhZ3M7IC8vIFRPRE86IGlmIGNvbW1vbiBmbGFncyBleGlzdCwgZGVmaW5lIGFuIGVudW0gb2YgcG9pbnQgdG8gc3RkCisgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVuZGVyRGF0YSB7CisgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgICAgICBpbnQ2NF90IHN5c3RlbVRpbWVOczsKKyAgICB9OworCisgICAgdW5pb24gRGF0YSB7CisgICAgICAgIC8vIGlmIHR5cGUgPT0gRVZFTlQKKyAgICAgICAgRXZlbnREYXRhIGV2ZW50RGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEVNUFRZX0JVRkZFUl9ET05FCisgICAgICAgIEJ1ZmZlckRhdGEgYnVmZmVyRGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEZJTExfQlVGRkVSX0RPTkUKKyAgICAgICAgRXh0ZW5kZWRCdWZmZXJEYXRhIGV4dGVuZGVkQnVmZmVyRGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEZSQU1FX1JFTkRFUkVECisgICAgICAgIFJlbmRlckRhdGEgcmVuZGVyRGF0YTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UuCisgICAgICovCisgICAgVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogVGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBGZW5jZSBmZW5jZTsKKworICAgIC8qKgorICAgICAqIFRoZSB1bmlvbiBvZiBkYXRhLCBkaXNjcmltaW5hdGVkIGJ5IHR5cGUuCisgICAgICovCisgICAgRGF0YSBkYXRhOworfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvdWkvR3JhcGhpY0J1ZmZlci5oCisgKiBSZWY6IHN5c3RlbS9jb3JlL2luY2x1ZGUvc3lzdGVtL3dpbmRvdy5oCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvYmluZGVyL0lNZW1vcnkuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9saWJzL2JpbmRlci9JTWVtb3J5LmNwcAorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvT01YQnVmZmVyLmgKKyAqCisgKiBEYXRhIHN0cnVjdHVyZSBmb3IgYnVmZmVyIGluZm9ybWF0aW9uLiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgdW5pb24gb2YKKyAqIGRpZmZlcmVudCBidWZmZXIgdHlwZXMuCisgKi8KK3N0cnVjdCBDb2RlY0J1ZmZlciB7CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgZm91ciBtYWluIHR5cGVzIG9mIGJ1ZmZlcnMuCisgICAgICovCisgICAgZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorICAgICAgICBQUkVTRVQsCisgICAgICAgIFNIQVJFRF9NRU0sCisgICAgICAgIEFOV19CVUZGRVIsCisgICAgICAgIE5BVElWRV9IQU5ETEUsCisgICAgfTsKKworICAgIHN0cnVjdCBQcmVzZXRBdHRyaWJ1dGVzIHsKKyAgICAgICAgdWludDMyX3QgcmFuZ2VPZmZzZXQ7CisgICAgICAgIHVpbnQzMl90IHJhbmdlTGVuZ3RoOworICAgIH07CisKKyAgICB1bmlvbiBBdHRyaWJ1dGVzIHsKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBQUkVTRVQKKyAgICAgICAgUHJlc2V0QXR0cmlidXRlcyBwcmVzZXQ7CisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBTSEFSRURfTUVNCisgICAgICAgIC8vIE5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy4KKworICAgICAgICAvLyBpZiBidWZmZXJUeXBlID09IEFOV19CVUZGRVIKKyAgICAgICAgQW53QnVmZmVyQXR0cmlidXRlcyBhbndCdWZmZXI7CisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBOQVRJVkVfSEFORExFCisgICAgICAgIC8vIE5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy4KKyAgICB9OworCisgICAgLyoqCisgICAgICogVHlwZSBvZiB0aGUgYnVmZmVyLgorICAgICAqLworICAgIFR5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgcHV0IGludG8gYSB1bmlvbi4KKyAgICAgKi8KKyAgICBBdHRyaWJ1dGVzIGF0dHI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIG9ubHkgZm9yIHR5cGVzIEFOV19CVUZGRVIgYW5kIE5BVElWRV9IQU5ETEUuCisgICAgICoKKyAgICAgKiAoQSBuYXRpdmUgaGFuZGxlIGNhbm5vdCBiZSBwdXQgaW50byBhIHVuaW9uIGFzIEhJREwgY3VycmVudGx5IGRvZXMgbm90CisgICAgICogc3VwcG9ydCBkaXNjcmltaW5hdGVkIHVuaW9ucy4pCisgICAgICovCisgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZTsKKworICAgIC8qKgorICAgICAqIFVzZWQgb25seSBmb3IgdHlwZSBTSEFSRURfTUVNLgorICAgICAqLworICAgIG1lbW9yeSBzaGFyZWRNZW1vcnk7CisKK307CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oCisgKgorICogRW51bWVyYXRpb24gb2YgcG9ydCBtb2Rlcy4KKyAqLworZW51bSBQb3J0TW9kZSA6IGludDMyX3QgeworICAgIFBSRVNFVF9TVEFSVCA9IDAsCisgICAgUFJFU0VUX0JZVEVfQlVGRkVSLAorICAgIFBSRVNFVF9BTldfQlVGRkVSLAorICAgIFBSRVNFVF9TRUNVUkVfQlVGRkVSLAorICAgIFBSRVNFVF9FTkQsCisgICAgRFlOQU1JQ19TVEFSVCA9IDEwMCwKKyAgICBEWU5BTUlDX0FOV19CVUZGRVIsCisgICAgRFlOQU1JQ19OQVRJVkVfSEFORExFLAorICAgIERZTkFNSUNfRU5ECit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9WaWRlb0FQSS5oCisgKgorICogRnJhbWV3b3JrIGRlZmluZWQgY29sb3IgYXNwZWN0cy4gVGhlc2UgYXJlIGJhc2VkIG1haW5seSBvbiBJU08gMjMwMDEtOCBzcGVjLiBBcyB0aGlzIHN0YW5kYXJkCisgKiBjb250aW51ZXMgdG8gZXZvbHZlLCBuZXcgdmFsdWVzIG1heSBiZSBkZWZpbmVkIGluIHRoZSBmdXR1cmUuIFVzZSBPVEhFUiBmb3IgdGhlc2UgZnV0dXJlIHZhbHVlcworICogYXMgd2VsbCBhcyBmb3IgdmFsdWVzIG5vdCBsaXN0ZWQgaGVyZSwgYXMgdGhvc2UgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGZyYW1ld29yay4KKyAqLworc3RydWN0IENvbG9yQXNwZWN0cyB7CisgICAgZW51bSBSYW5nZSA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBGVUxMLCAgICAgICAgIC8vIEZ1bGwgcmFuZ2UKKyAgICAgICAgTElNSVRFRCwgICAgICAvLyBMaW1pdGVkIHJhbmdlIChpZiBkZWZpbmVkKSwgb3Igbm90IGZ1bGwgcmFuZ2UKKworICAgICAgICBPVEhFUiA9IDB4ZmYsIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICAvLyBDb2xvciBwcmltYXJpZXMKKyAgICBlbnVtIFByaW1hcmllcyA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBCVDcwOV81LCAgICAgIC8vIFJlYy5JVFUtUiBCVC43MDktNSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNDcwXzZNLCAgICAgLy8gUmVjLklUVS1SIEJULjQ3MC02IFN5c3RlbSBNIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ2MDFfNl82MjUsICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNjI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ2MDFfNl81MjUsICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNTI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgR0VORVJJQ19GSUxNLCAvLyBHZW5lcmljIEZpbG0KKyAgICAgICAgQlQyMDIwLCAgICAgICAvLyBSZWMuSVRVLVIgQlQuMjAyMCBvciBlcXVpdmFsZW50CisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAvLyBOb3Qgb25lIG9mIHRoZSBhYm92ZSB2YWx1ZXMKKyAgICB9OworCisgICAgLy8gVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzCisgICAgZW51bSBUcmFuc2ZlciA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBMSU5FQVIsICAgICAgIC8vIExpbmVhciB0cmFuc2ZlciBjaGFyYWN0ZXJpc3RpY3MKKyAgICAgICAgU1JHQiwgICAgICAgICAvLyBzUkdCIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgU01QVEUxNzBNLCAgICAvLyBTTVBURSAxNzBNIG9yIGVxdWl2YWxlbnQgKGUuZy4gQlQuNjAxLzcwOS8yMDIwKQorICAgICAgICBHQU1NQTIyLCAgICAgIC8vIEFzc3VtZWQgZGlzcGxheSBnYW1tYSAyLjIKKyAgICAgICAgR0FNTUEyOCwgICAgICAvLyBBc3N1bWVkIGRpc3BsYXkgZ2FtbWEgMi44CisgICAgICAgIFNUMjA4NCwgICAgICAgLy8gU01QVEUgU1QgMjA4NCBmb3IgMTAvMTIvMTQvMTYgYml0IHN5c3RlbXMKKyAgICAgICAgSExHLCAgICAgICAgICAvLyBBUklCIFNURC1CNjcgaHlicmlkLWxvZy1nYW1tYQorCisgICAgICAgIC8vIHZhbHVlcyB1bmxpa2VseSB0byBiZSByZXF1aXJlZCBieSBBbmRyb2lkIGZvbGxvdyBoZXJlCisgICAgICAgIFNNUFRFMjQwTSA9IDB4NDAsIC8vIFNNUFRFIDI0ME0KKyAgICAgICAgWFZZQ0MsICAgICAgICAvLyBJRUMgNjE5NjYtMi00CisgICAgICAgIEJUMTM2MSwgICAgICAgLy8gUmVjLklUVS1SIEJULjEzNjEgZXh0ZW5kZWQgZ2FtdXQKKyAgICAgICAgU1Q0MjgsICAgICAgICAvLyBTTVBURSBTVCA0MjgtMQorCisgICAgICAgIE9USEVSID0gMHhmZiwgLy8gTm90IG9uZSBvZiB0aGUgYWJvdmUgdmFsdWVzCisgICAgfTsKKworICAgIC8vIFlVViA8LT4gUkdCIGNvbnZlcnNpb24KKyAgICBlbnVtIE1hdHJpeENvZWZmcyA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAgIC8vIFVuc3BlY2lmaWVkCisgICAgICAgIEJUNzA5XzUsICAgICAgICAvLyBSZWMuSVRVLVIgQlQuNzA5LTUgb3IgZXF1aXZhbGVudAorICAgICAgICBCVDQ3MF82TSwgICAgICAgLy8gS1I9MC4zMCwgS0I9MC4xMSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNjAxXzYsICAgICAgICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNjI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgU01QVEUyNDBNLCAgICAgIC8vIFNNUFRFIDI0ME0gb3IgZXF1aXZhbGVudAorICAgICAgICBCVDIwMjAsICAgICAgICAgLy8gUmVjLklUVS1SIEJULjIwMjAgbm9uLWNvbnN0YW50IGx1bWluYW5jZQorICAgICAgICBCVDIwMjBDT05TVEFOVCwgLy8gUmVjLklUVS1SIEJULjIwMjAgY29uc3RhbnQgbHVtaW5hbmNlCisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAgIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICBSYW5nZSByYW5nZTsKKyAgICBQcmltYXJpZXMgcHJpbWFyaWVzOworICAgIFRyYW5zZmVyIHRyYW5zZmVyOworICAgIE1hdHJpeENvZWZmcyBtYXRyaXhDb2VmZnM7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhODg4MTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZApAQCAtMCwwICsxLDMzIEBACisjIyBPbXggSGFsIEAgMS4wIHRlc3RzICMjCistLS0KKyMjIE92ZXJ2aWV3IDoKK1RoZSBzY29wZSBvZiB0aGUgdGVzdHMgcHJlc2VudGVkIGhlcmUgaXMgbm90IHJlc3RyaWN0ZWQgc29sZWx5IHRvIHRlc3Rpbmcgb214IGhhbCBAIDEuMCBBUEkgYnV0IGFsc28gdGVzdCB0byBvbXggY29yZSBmdW5jdGlvbmFsaXR5IGFuZCB0byBhbiBleHRlbnQgb214IGNvbXBvbmVudHMgYXMgd2VsbC4gVGhlIGN1cnJlbnQgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZm9sZGVyczogYXVkaW8sIGNvbW1vbiwgY29tcG9uZW50LCBtYXN0ZXIgYW5kIHZpZGVvLiBCZXNpZGVzIGNvbW1vbiBhbGwgb3RoZXIgZm9sZGVycyBjb250YWluIHRlc3QgZml4dHVyZXMgZm9yIHRlc3RpbmcgQVYgZGVjb2RlciwgZW5jb2RlciBjb21wb25lbnRzLiBDb21tb24gY29uc3RpdHV0ZXMgZmlsZXMgdGhhdCBhcmUgdXNlZCBhY3Jvc3MgYnkgdGhlc2UgdGVzdCBhcHBsaWNhdGlvbnMuCisKKyMjIyMgbWFzdGVyIDoKK0Z1bmN0aW9uYWxpdHkgb2YgbWFzdGVyIGlzIHRvIGVudW1lcmF0ZSBhbGwgdGhlIG9teCBjb21wb25lbnRzIChhbmQgdGhlIHJvbGVzIGl0IHN1cHBvcnRzKSBhdmFpbGFibGUgaW4gYW5kcm9pZCBtZWRpYSBmcmFtZXdvcmsuCisKK3VzYWdlOiBWdHNIYWxNZWRpYU9teFYxXF8wVGFyZ2V0TWFzdGVyVGVzdCAtSSBkZWZhdWx0CisKKyMjIyMgY29tcG9uZW50IDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgdGhhdCB0ZXN0cyBhc3BlY3RzIGNvbW1vbiB0byBhbGwgb214IGNvbXBhdGlibGUgY29tcG9uZW50cy4gRm9yIGluc3RhbmNlLCBwb3J0IGVuYWJsaW5nL2Rpc2FibGluZywgZW51bWVyYXRpbmcgcG9ydCBmb3JtYXRzLCBzdGF0ZSB0cmFuc2l0aW9ucywgZmx1c2gsIC4uLiwgc3RheSBjb21tb24gdG8gYWxsIGNvbXBvbmVudHMgaXJyZXNwZWN0aXZlIG9mIHRoZSBzZXJ2aWNlIHRoZXkgb2ZmZXIuIFRlc3QgZml4dHVyZXMgYXJlIGRpcmVjdGVkIHRvd2FyZHMgdGVzdGluZyB0aGUgb214IGNvcmUuIEV2ZXJ5IHN0YW5kYXJkIE9NWCBjb21wYXRpYmxlIGNvbXBvbmVudCBpcyBleHBlY3RlZCB0byBwYXNzIHRoZXNlIHRlc3RzLgorCit1c2FnZTogVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldENvbXBvbmVudFRlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiA8Y29tcCByb2xlPgorCisjIyMjIGF1ZGlvIDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRlc3RpbmcgYXVkaW8gZW5jb2RlciBhbmQgZGVjb2RlciBjb21wb25lbnRzIHN1Y2ggYXMgc2ltcGxlIGVuY29kaW5nIG9mIGEgcmF3IGNsaXAgb3IgZGVjb2Rpbmcgb2YgYW4gZWxlbWVudGFyeSBzdHJlYW0sIGVuZCBvZiBzdHJlYW0gdGVzdCwgdGltZXN0YW1wIGRldmlhdGlvbnMgdGVzdCwgZmx1c2ggdGVzdCBhbmQgc28gb24uIFRoZXNlIHRlc3RzIGFyZSBhaW1lZCB0b3dhcmRzIHRlc3RpbmcgdGhlIHBsdWdpbiB0aGF0IGNvbm5lY3RzIHRoZSBjb21wb25lbnQgdG8gdGhlIG9teCBjb3JlLgorCit1c2FnZToKKworVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldEF1ZGlvRGVjVGVzdCAtSSBkZWZhdWx0IC1DIDxjb21wIG5hbWU+IC1SIGF1ZGlvX2RlY29kZXIuPGNvbXAgY2xhc3M+IC1QIC9zZGNhcmQvbWVkaWEvCisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRBdWRpb0VuY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiBhdWRpb19lbmNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCisjIyMjIHZpZGVvIDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRlc3RpbmcgdmlkZW8gZW5jb2RlciBhbmQgZGVjb2RlciBjb21wb25lbnRzIHN1Y2ggYXMgc2ltcGxlIGVuY29kaW5nIG9mIGEgcmF3IGNsaXAgb3IgZGVjb2Rpbmcgb2YgYW4gZWxlbWVudGFyeSBzdHJlYW0sIGVuZCBvZiBzdHJlYW0gdGVzdCwgdGltZXN0YW1wIGRldmlhdGlvbnMgdGVzdCwgZmx1c2ggdGVzdCBhbmQgc28gb24uIFRoZXNlIHRlc3RzIGFyZSBhaW1lZCB0b3dhcmRzIHRlc3RpbmcgdGhlIHBsdWdpbiB0aGF0IGNvbm5lY3RzIHRoZSBjb21wb25lbnQgdG8gdGhlIG9teCBjb3JlLgorCit1c2FnZToKKworVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldFZpZGVvRGVjVGVzdCAtSSBkZWZhdWx0IC1DIDxjb21wIG5hbWU+IC1SIHZpZGVvX2RlY29kZXIuPGNvbXAgY2xhc3M+IC1QIC9zZGNhcmQvbWVkaWEvCisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRWaWRlb0VuY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiB2aWRlb19lbmNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZmZDIwYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDgxIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgICAgICAgICAgICAgICAiVnRzSGFsTWVkaWFPbXhWMV8wQ29tbW9uVXRpbCJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgICAgICAgICAgICAgICAiVnRzSGFsTWVkaWFPbXhWMV8wQ29tbW9uVXRpbCJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmExOTVlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwCkBAIC0wLDAgKzEsMTEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfYXVkaW9fZGVjX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSwgcmVzKCIvc2RjYXJkL21lZGlhLyIpIHt9CisKKyAgICB2b2lkIHNldEluc3RhbmNlKGNvbnN0IGNoYXIqIF9pbnN0YW5jZSkgeyBpbnN0YW5jZSA9IF9pbnN0YW5jZTsgfQorCisgICAgdm9pZCBzZXRDb21wb25lbnQoY29uc3QgY2hhciogX2NvbXBvbmVudCkgeyBjb21wb25lbnQgPSBfY29tcG9uZW50OyB9CisKKyAgICB2b2lkIHNldFJvbGUoY29uc3QgY2hhciogX3JvbGUpIHsgcm9sZSA9IF9yb2xlOyB9CisKKyAgICB2b2lkIHNldFJlcyhjb25zdCBjaGFyKiBfcmVzKSB7IHJlcyA9IF9yZXM7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldEluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaW5zdGFuY2U7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldENvbXBvbmVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbXBvbmVudDsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Um9sZSgpIGNvbnN0IHsgcmV0dXJuIHJvbGU7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJlcygpIGNvbnN0IHsgcmV0dXJuIHJlczsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgeyJyZXMiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1AnfSwKKyAgICAgICAgICAgIHswLCAwLCAwLCAwfX07CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJJOkM6UjpQOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdQJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVzKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInVucmVjb2duaXplZCBvcHRpb246ICVzXG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInVzYWdlOiAlcyA8Z3Rlc3Qgb3B0aW9ucz4gPHRlc3Qgb3B0aW9ucz5cblxuIgorICAgICAgICAgICAgICAgICAgICAidGVzdCBvcHRpb25zIGFyZTpcblxuIgorICAgICAgICAgICAgICAgICAgICAiLUksIC0taW5zdGFuY2U6IEhBTCBpbnN0YW5jZSB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItQywgLS1jb21wb25lbnQ6IE9NWCBjb21wb25lbnQgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLVIsIC0tcm9sZTogT01YIGNvbXBvbmVudCBSb2xlXG4iCisgICAgICAgICAgICAgICAgICAgICItUCwgLS1yZXM6IFJlc291cmNlIGZpbGVzIGRpcmVjdG9yeSBsb2NhdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworICAgIGhpZGxfc3RyaW5nIHJlczsKK307CisKK3N0YXRpYyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQqIGdFbnYgPSBudWxscHRyOworCisvLyBhdWRpbyBkZWNvZGVyIHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQXVkaW9EZWNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBkaXNhYmxlVGVzdCA9IGZhbHNlOworICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICAgICAgb214ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU9teD4oCisgICAgICAgICAgICBnRW52LT5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teCwgbnVsbHB0cik7CisgICAgICAgIG9ic2VydmVyID0KKyAgICAgICAgICAgIG5ldyBDb2RlY09ic2VydmVyKFt0aGlzXShNZXNzYWdlIG1zZywgY29uc3QgQnVmZmVySW5mbyogYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlTWVzc2FnZShtc2csIGJ1ZmZlcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJtcDMiLCBtcDN9LCB7ImFtcm5iIiwgYW1ybmJ9LCAgICAgICB7ImFtcndiIiwgYW1yd2J9LAorICAgICAgICAgICAgeyJhYWMiLCBhYWN9LCB7InZvcmJpcyIsIHZvcmJpc30sICAgICB7Im9wdXMiLCBvcHVzfSwKKyAgICAgICAgICAgIHsicGNtIiwgcGNtfSwgeyJnNzExYWxhdyIsIGc3MTFhbGF3fSwgeyJnNzExbWxhdyIsIGc3MTFtbGF3fSwKKyAgICAgICAgICAgIHsiZ3NtIiwgZ3NtfSwgeyJyYXciLCByYXd9LAorICAgICAgICB9OworICAgICAgICBjb25zdCBzaXplX3Qga051bVN0cmluZ1RvTmFtZSA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvTmFtZSkgLyBzaXplb2Yoa1N0cmluZ1RvTmFtZVswXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBjaDsKKyAgICAgICAgY2hhciBzdWJzdHJpbmdbT01YX01BWF9TVFJJTkdOQU1FX1NJWkVdOworICAgICAgICBzdHJjcHkoc3Vic3RyaW5nLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgICAgIHBjaCA9IHN0cmNocihzdWJzdHJpbmcsICcuJyk7CisgICAgICAgIEFTU0VSVF9ORShwY2gsIG51bGxwdHIpOworICAgICAgICBjb21wTmFtZSA9IHVua25vd25fY29tcDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtU3RyaW5nVG9OYW1lOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghc3RyY2FzZWNtcChwY2ggKyAxLCBrU3RyaW5nVG9OYW1lW2ldLk5hbWUpKSB7CisgICAgICAgICAgICAgICAgY29tcE5hbWUgPSBrU3RyaW5nVG9OYW1lW2ldLkNvbXBOYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wTmFtZSA9PSB1bmtub3duX2NvbXApIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc3RydWN0IENvbXBUb0NvZGluZyB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2Rpbmc7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db2Rpbmcga0NvbXBUb0NvZGluZ1tdID0geworICAgICAgICAgICAge21wMywgT01YX0FVRElPX0NvZGluZ01QM30sCisgICAgICAgICAgICB7YW1ybmIsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FtcndiLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthYWMsIE9NWF9BVURJT19Db2RpbmdBQUN9LAorICAgICAgICAgICAge3ZvcmJpcywgT01YX0FVRElPX0NvZGluZ1ZPUkJJU30sCisgICAgICAgICAgICB7cGNtLCBPTVhfQVVESU9fQ29kaW5nUENNfSwKKyAgICAgICAgICAgIHtvcHVzLCAoT01YX0FVRElPX0NPRElOR1RZUEUpT01YX0FVRElPX0NvZGluZ0FuZHJvaWRPUFVTfSwKKyAgICAgICAgICAgIHtnNzExYWxhdywgT01YX0FVRElPX0NvZGluZ0c3MTF9LAorICAgICAgICAgICAge2c3MTFtbGF3LCBPTVhfQVVESU9fQ29kaW5nRzcxMX0sCisgICAgICAgICAgICB7Z3NtLCBPTVhfQVVESU9fQ29kaW5nR1NNRlJ9LAorICAgICAgICAgICAge3JhdywgT01YX0FVRElPX0NvZGluZ1BDTX0sCisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga051bUNvbXBUb0NvZGluZyA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvZGluZykgLyBzaXplb2Yoa0NvbXBUb0NvZGluZ1swXSk7CisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga051bUNvbXBUb0NvZGluZzsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvZGluZ1tpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVFbmNvZGluZyA9IGtDb21wVG9Db2RpbmdbaV0uZUVuY29kaW5nOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpID09IGtOdW1Db21wVG9Db2RpbmcpIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgZW9zRmxhZyA9IGZhbHNlOworICAgICAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIHRpbWVzdGFtcFVzID0gMDsKKyAgICAgICAgdGltZXN0YW1wRGV2VGVzdCA9IGZhbHNlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBjYWxsYmFjayBmdW5jdGlvbiB0byBwcm9jZXNzIG1lc3NhZ2VzIHJlY2VpdmVkIGJ5IG9uTWVzc2FnZXMoKSBmcm9tIElMCisgICAgLy8gY2xpZW50LgorICAgIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlIG1zZywgY29uc3QgQnVmZmVySW5mbyogYnVmZmVyKSB7CisgICAgICAgICh2b2lkKWJ1ZmZlcjsKKyAgICAgICAgaWYgKG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkZJTExfQlVGRkVSX0RPTkUpIHsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEuZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19FT1MpIHsKKyAgICAgICAgICAgICAgICBlb3NGbGFnID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEucmFuZ2VMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgIGZyYW1lc1JlY2VpdmVkICs9IDE7CisgICAgICAgICAgICAgICAgLy8gRm9yIGRlY29kZXIgY29tcG9uZW50cyBjdXJyZW50IHRpbWVzdGFtcCBhbHdheXMgZXhjZWVkcworICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIHRpbWVzdGFtcAorICAgICAgICAgICAgICAgIEVYUEVDVF9HRShtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEudGltZXN0YW1wVXMsIHRpbWVzdGFtcFVzKTsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVczsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IGlmIGN1cnJlbnQgdGltZXN0YW1wIGlzIGFtb25nIHRoZSBsaXN0IG9mIHF1ZXVlZAorICAgICAgICAgICAgICAgIC8vIHRpbWVzdGFtcHMKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wRGV2VGVzdCkgeworICAgICAgICAgICAgICAgICAgICBib29sIHRzSGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+OjppdGVyYXRvciBpdCA9CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9IHRpbWVzdGFtcFVzbGlzdC5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCppdCA9PSB0aW1lc3RhbXBVcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHNIaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaXQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodHNIaXQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh0c0hpdCwgdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlRpbWVTdGFtcCBub3QgcmVjb2duaXplZCI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2VycgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBSZWNlaXZlZCBub24temVybyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXRwdXQgLyBUaW1lU3RhbXAgbm90IHJlY29nbml6ZWQgXG4iOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorI2RlZmluZSBXUklURV9PVVRQVVQgMAorI2lmIFdSSVRFX09VVFBVVAorICAgICAgICAgICAgICAgIHN0YXRpYyBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgIEZJTEUqIG9mcCA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50KQorICAgICAgICAgICAgICAgICAgICBvZnAgPSBmb3Blbigib3V0LmJpbiIsICJhYiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgb2ZwID0gZm9wZW4oIm91dC5iaW4iLCAid2IiKTsKKyAgICAgICAgICAgICAgICBpZiAob2ZwICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICAgICAgZndyaXRlKHN0YXRpY19jYXN0PHZvaWQqPihidWZmZXItPm1NZW1vcnktPmdldFBvaW50ZXIoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY2hhciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEucmFuZ2VMZW5ndGgsIG9mcCk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9zZShvZnApOworICAgICAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgZW51bSBzdGFuZGFyZENvbXAgeworICAgICAgICBtcDMsCisgICAgICAgIGFtcm5iLAorICAgICAgICBhbXJ3YiwKKyAgICAgICAgYWFjLAorICAgICAgICB2b3JiaXMsCisgICAgICAgIG9wdXMsCisgICAgICAgIHBjbSwKKyAgICAgICAgZzcxMWFsYXcsCisgICAgICAgIGc3MTFtbGF3LAorICAgICAgICBnc20sCisgICAgICAgIHJhdywKKyAgICAgICAgdW5rbm93bl9jb21wLAorICAgIH07CisKKyAgICBzcDxJT214PiBvbXg7CisgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3A8SU9teE5vZGU+IG9teE5vZGU7CisgICAgc3RhbmRhcmRDb21wIGNvbXBOYW1lOworICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICBib29sIGRpc2FibGVUZXN0OworICAgIGJvb2wgZW9zRmxhZzsKKyAgICB1aW50MzJfdCBmcmFtZXNSZWNlaXZlZDsKKyAgICB1aW50NjRfdCB0aW1lc3RhbXBVczsKKyAgICA6OmFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+IHRpbWVzdGFtcFVzbGlzdDsKKyAgICBib29sIHRpbWVzdGFtcERldlRlc3Q7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgaW50MzJfdCBuQ2hhbm5lbHMgPSAyLCBpbnQzMl90IG5TYW1wbGVSYXRlID0gNDQxMDAsCisgICAgT01YX0FVRElPX1BDTU1PREVUWVBFIGVQQ01Nb2RlID0gT01YX0FVRElPX1BDTU1vZGVMaW5lYXIsCisgICAgT01YX05VTUVSSUNBTERBVEFUWVBFIGVOdW1EYXRhID0gT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgaW50MzJfdCBuQml0UGVyU2FtcGxlID0gMTYpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwb3J0RGVmLmZvcm1hdC5hdWRpby5iRmxhZ0Vycm9yQ29uY2VhbG1lbnQgPSBPTVhfVFJVRTsKKyAgICBwb3J0RGVmLmZvcm1hdC5hdWRpby5lRW5jb2RpbmcgPSBlRW5jb2Rpbmc7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3dpdGNoICgoaW50KWVFbmNvZGluZykgeworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdQQ006CisgICAgICAgICAgICBzZXR1cFBDTVBvcnQob214Tm9kZSwgcG9ydEluZGV4LCBuQ2hhbm5lbHMsIGVOdW1EYXRhLCBuQml0UGVyU2FtcGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5TYW1wbGVSYXRlLCBlUENNTW9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nQUFDOgorICAgICAgICAgICAgc2V0dXBBQUNQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwgT01YX0FVRElPX0FBQ09iamVjdE51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0FBQ1N0cmVhbUZvcm1hdE1QNEZGLCBuQ2hhbm5lbHMsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgblNhbXBsZVJhdGUpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBJbiBkZWNvZGVyIGNvbXBvbmVudHMsIG9mdGVuIHRoZSBpbnB1dCBwb3J0IHBhcmFtZXRlcnMgZ2V0IHVwZGF0ZWQgdXBvbgorLy8gcGFyc2luZyB0aGUgaGVhZGVyIG9mIGVsZW1lbnRhcnkgc3RyZWFtLiBDbGllbnQgbmVlZHMgdG8gY29sbGVjdCB0aGlzCisvLyBpbmZvcm1hdGlvbiB0byByZWNvbmZpZ3VyZSBvdGhlciBwb3J0cyB0aGF0IHNoYXJlIGRhdGEgd2l0aCB0aGlzIGlucHV0CisvLyBwb3J0Lgordm9pZCBnZXRJbnB1dENoYW5uZWxJbmZvKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsIGludDMyX3QqIG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90KiBuU2FtcGxlUmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICpuQ2hhbm5lbHMgPSAwOworICAgICpuU2FtcGxlUmF0ZSA9IDA7CisKKyAgICBzd2l0Y2ggKChpbnQpZUVuY29kaW5nKSB7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0dTTUZSOgorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdHNzExOgorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdQQ006IHsKKyAgICAgICAgICAgIE9NWF9BVURJT19QQVJBTV9QQ01NT0RFVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gcGFyYW0ublNhbXBsaW5nUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ01QMzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX01QM1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb01wMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwYXJhbSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgKm5DaGFubmVscyA9IHBhcmFtLm5DaGFubmVsczsKKyAgICAgICAgICAgICpuU2FtcGxlUmF0ZSA9IHBhcmFtLm5TYW1wbGVSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nQW5kcm9pZE9QVVM6IHsKKyAgICAgICAgICAgIE9NWF9BVURJT19QQVJBTV9BTkRST0lEX09QVVNUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1BdWRpb0FuZHJvaWRPcHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gcGFyYW0ublNhbXBsZVJhdGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdWT1JCSVM6IHsKKyAgICAgICAgICAgIE9NWF9BVURJT19QQVJBTV9WT1JCSVNUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Wb3JiaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FNUjogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FNUlRZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0FtciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwYXJhbSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgKm5DaGFubmVscyA9IHBhcmFtLm5DaGFubmVsczsKKyAgICAgICAgICAgICpuU2FtcGxlUmF0ZSA9IDgwMDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6IHsKKyAgICAgICAgICAgIE9NWF9BVURJT19QQVJBTV9BQUNQUk9GSUxFVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gcGFyYW0ublNhbXBsZVJhdGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgY2hhciogbVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIqIGluZm8pIHsKKyAgICBzdHJ1Y3QgQ29tcFRvVVJMIHsKKyAgICAgICAgQXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXA7CisgICAgICAgIGNvbnN0IGNoYXIqIG1VUkw7CisgICAgICAgIGNvbnN0IGNoYXIqIGluZm87CisgICAgfTsKKyAgICBzdGF0aWMgY29uc3QgQ29tcFRvVVJMIGtDb21wVG9VUkxbXSA9IHsKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6bXAzLAorICAgICAgICAgImJiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMiLAorICAgICAgICAgImJiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmFhYywKKyAgICAgICAgICJiYmJfYWFjX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouYWFjIiwKKyAgICAgICAgICJiYmJfYWFjX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJuYiwKKyAgICAgICAgICJzaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmFtcm5iIiwKKyAgICAgICAgICJzaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1yd2IsCisgICAgICAgICAiYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5hbXJ3YiIsCisgICAgICAgICAiYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OnZvcmJpcywKKyAgICAgICAgICJiYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzIiwKKyAgICAgICAgICJiYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpvcHVzLAorICAgICAgICAgImJiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cyIsCisgICAgICAgICAiYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6Omc3MTFhbGF3LCAiYmJiX2c3MTFhbGF3XzFjaF84a2h6LnJhdyIsCisgICAgICAgICAiYmJiX2c3MTFhbGF3XzFjaF84a2h6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6ZzcxMW1sYXcsICJiYmJfZzcxMW11bGF3XzFjaF84a2h6LnJhdyIsCisgICAgICAgICAiYmJiX2c3MTFtdWxhd18xY2hfOGtoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmdzbSwgImJiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdyIsCisgICAgICAgICAiYmJiX2dzbV8xY2hfOGtoel8xM2ticHMuaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpyYXcsICJiYmJfcmF3XzFjaF84a2h6X3MzMmxlLnJhdyIsCisgICAgICAgICAiYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5pbmZvIn0sCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGtDb21wVG9VUkwpIC8gc2l6ZW9mKGtDb21wVG9VUkxbMF0pOyArK2kpIHsKKyAgICAgICAgaWYgKGtDb21wVG9VUkxbaV0uY29tcCA9PSBjb21wKSB7CisgICAgICAgICAgICBzdHJjYXQobVVSTCwga0NvbXBUb1VSTFtpXS5tVVJMKTsKKyAgICAgICAgICAgIHN0cmNhdChpbmZvLCBrQ29tcFRvVVJMW2ldLmluZm8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCisvLyBwb3J0IHNldHRpbmdzIHJlY29uZmlndXJhdGlvbiBkdXJpbmcgcnVudGltZS4gcmVjb25maWd1cmVzIHNhbXBsZSByYXRlIGFuZAorLy8gbnVtYmVyCit2b2lkIHBvcnRSZWNvbmZpZ3VyYXRpb24oc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSBtc2cpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICAgICAgICAgICAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgICAgICAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgICAgICAgICAgb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9CdWZmZXIpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgICAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICAgICAgICAgIGludDMyX3QgbkNoYW5uZWxzOworICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuU2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9BVURJT19Db2RpbmdQQ00sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0bworICAgICAgICAgICAgLy8gZW5hYmxlCisgICAgICAgICAgICAvLyBpdCBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAvLyBkbyBub3QgZW5hYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgc3VwcGxpZWQKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAgICAgICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgb0J1ZmZlciwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9CdWZmZXIpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKKy8vIGJsb2NraW5nIGNhbGwgdG8gZW5zdXJlcyBhcHBsaWNhdGlvbiB0byBXYWl0IHRpbGwgYWxsIHRoZSBpbnB1dHMgYXJlIGNvbnN1bWVkCit2b2lkIHdhaXRPbklucHV0Q29uc3VtcHRpb24oc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKworICAgIHdoaWxlICh0aW1lT3V0LS0pIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhdHVzID09IFRJTUVEX09VVCwgaXQgY291bGQgYmUgZHVlIHRvIHByb2Nlc3MgdGltZSBiZWluZyBsYXJnZQorICAgICAgICAvLyB0aGFuIERFRkFVTFRfVElNRU9VVCBvciBjb21wb25lbnQgbmVlZHMgb3V0cHV0IGJ1ZmZlcnMgdG8gc3RhcnQKKyAgICAgICAgLy8gcHJvY2Vzc2luZy4KKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGFuIG91dHB1dCBidWZmZXIgYXNzdW1pbmcgb3V0UXVldWUuZW1wdHkoKSBpcyB0cnVlCisgICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgdGltZU91dC0tOworICAgIH0KK30KKworLy8gRGVjb2RlIE4gRnJhbWVzCit2b2lkIGRlY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nLCBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiogSW5mbywgaW50IG9mZnNldCwgaW50IHJhbmdlLAorICAgICAgICAgICAgICAgICAgIGJvb2wgc2lnbmFsRU9TID0gdHJ1ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBkaXNwYXRjaCBpbnB1dCBidWZmZXJzCisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIGludCBmcmFtZUlEID0gb2Zmc2V0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyAoaSA8IGlCdWZmZXItPnNpemUoKSkgJiYgKGZyYW1lSUQgPCAoaW50KUluZm8tPnNpemUoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPCAob2Zmc2V0ICsgcmFuZ2UpKTsKKyAgICAgICAgIGkrKykgeworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBBU1NFUlRfTEUoKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5nY291bnQoKSwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgZmxhZ3MgPSAoKkluZm8pW2ZyYW1lSURdLmZsYWdzOworICAgICAgICBpZiAoc2lnbmFsRU9TICYmICgoZnJhbWVJRCA9PSAoaW50KUluZm8tPnNpemUoKSAtIDEpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEID09IChvZmZzZXQgKyByYW5nZSAtIDEpKSkpCisgICAgICAgICAgICBmbGFncyB8PSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAoKkluZm8pW2ZyYW1lSURdLnRpbWVzdGFtcCk7CisgICAgICAgIGZyYW1lSUQrKzsKKyAgICB9CisKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICBib29sIHN0YWxsID0gZmFsc2U7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIC8vIFBvcnQgUmVjb25maWd1cmF0aW9uCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0sgJiYKKyAgICAgICAgICAgIG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkVWRU5UKSB7CisgICAgICAgICAgICBwb3J0UmVjb25maWd1cmF0aW9uKG9teE5vZGUsIG9ic2VydmVyLCBpQnVmZmVyLCBvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgbXNnKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIHx8IGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmdjb3VudCgpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICAgICAgZmxhZ3MgPSAoKkluZm8pW2ZyYW1lSURdLmZsYWdzOworICAgICAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlIC0gMSkpKSkKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLnRpbWVzdGFtcCk7CisgICAgICAgICAgICBmcmFtZUlEKys7CisgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgaWYgKHN0YWxsKQorICAgICAgICAgICAgdGltZU91dC0tOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworICAgICAgICBpZiAodGltZU91dCA9PSAwKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIldhaXQgb24gSW5wdXQvT3V0cHV0IGlzIGZvdW5kIGluZGVmaW5pdGUiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihBdWRpb0RlY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gdGVzdCBwb3J0IHNldHRpbmdzIHJlY29uZmlndXJhdGlvbiwgZWxlbWVudGFyeSBzdHJlYW0gZGVjb2RlIGFuZCB0aW1lc3RhbXAKKy8vIGRldmlhdGlvbgorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIERlY29kZVRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgUG9ydCBSZWNvbmZpZ3VyYXRpb24sIERlY29kZSBhbmQgdGltZXN0YW1wIGRldmlhdGlvbiIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgdGltZXN0YW1wRGV2VGVzdCA9IHRydWU7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgICAgICBpZiAoZmxhZ3MgIT0gT01YX0JVRkZFUkZMQUdfQ09ERUNDT05GSUcpCisgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QucHVzaF9iYWNrKHRpbWVzdGFtcCk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIGludDMyX3QgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZTsKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIGlmIChjb21wTmFtZSA9PSByYXcpCisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsIDEsIDgwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX1BDTU1vZGVMaW5lYXIsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKTsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAmbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9BVURJT19Db2RpbmdQQ00sCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGZhbHNlLCBlb3NGbGFnKTsKKyAgICBFWFBFQ1RfRVEodGltZXN0YW1wVXNsaXN0LmVtcHR5KCksIHRydWUpOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgRU9TVGVzdF9NKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZW5kIG9mIHN0cmVhbSBtb25rZXlpbmciKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBpbnQzMl90IG5DaGFubmVscywgblNhbXBsZVJhdGU7CisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nKTsKKyAgICBpZiAoY29tcE5hbWUgPT0gcmF3KQorICAgICAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAxLCA4MDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19QQ01Nb2RlTGluZWFyLCBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMik7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgJm5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICZuU2FtcGxlUmF0ZSk7CisgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNLAorICAgICAgICAgICAgICAgICAgICAgICAgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZSk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gcmVxdWVzdCBFT1MgYXQgdGhlIHN0YXJ0CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLCBlb3NGbGFnKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMFUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIFRodW1ibmFpbFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBSZXF1ZXN0IGZvciB0aHVtYm5haWwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGZvciB0aHVtYm5haWwKKyAgICAvLyBzaWduYWwgRU9TIGZsYWcgd2l0aCBsYXN0IGZyYW1lCisgICAgc2l6ZV90IGkgPSAwOworICAgIHdoaWxlICghKEluZm9baV0uZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19TWU5DRlJBTUUpKSBpKys7CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsCisgICAgICAgICAgICAgICAgICBpICsgMSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZmFsc2UsIGVvc0ZsYWcpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNpZ25hbCBFT1MgZmxhZyBhZnRlciBsYXN0IGZyYW1lCisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIGkgKyAxLAorICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIHRydWUsIGVvc0ZsYWcpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgU2ltcGxlRU9TVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGVuZCBvZiBzdHJlYW0iKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBlbmQKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGZhbHNlLCBlb3NGbGFnKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyB0ZXN0IGlucHV0L291dHB1dCBwb3J0IGZsdXNoCitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgRmx1c2hUZXN0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgRmx1c2giKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIERlY29kZSAxMjggZnJhbWVzIGFuZCBmbHVzaC4gaGVyZSAxMjggaXMgY2hvc2VuIHRvIGVuc3VyZSB0aGVyZSBpcyBhIGtleQorICAgIC8vIGZyYW1lIGFmdGVyIHRoaXMgc28gdGhhdCB0aGUgYmVsb3cgc2VjdGlvbiBjYW4gYmUgY29udmVyZWQgZm9yIGFsbAorICAgIC8vIGNvbXBvbmVudHMKKyAgICBpbnQgbkZyYW1lcyA9IDEyODsKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIG5GcmFtZXMsIGZhbHNlKTsKKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gU2VlayB0byBuZXh0IGtleSBmcmFtZSBhbmQgc3RhcnQgZGVjb2RpbmcgdGlsbCB0aGUgZW5kCisgICAgaW50IGluZGV4ID0gbkZyYW1lczsKKyAgICBib29sIGtleUZyYW1lID0gZmFsc2U7CisgICAgd2hpbGUgKGluZGV4IDwgKGludClJbmZvLnNpemUoKSkgeworICAgICAgICBpZiAoKEluZm9baW5kZXhdLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSA9PQorICAgICAgICAgICAgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSB7CisgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IEluZm9baW5kZXggLSAxXS50aW1lc3RhbXA7CisgICAgICAgICAgICBrZXlGcmFtZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBlbGVTdHJlYW0uaWdub3JlKEluZm9baW5kZXhdLmJ5dGVzQ291bnQpOworICAgICAgICBpbmRleCsrOworICAgIH0KKyAgICBpZiAoa2V5RnJhbWUpIHsKKyAgICAgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBJbmZvLnNpemUoKSAtIGluZGV4LCBmYWxzZSk7CisgICAgfQorICAgIC8vIE5vdGU6IEFzc3VtZXMgMjAwIG1zIGlzIGVub3VnaCB0byBlbmQgYW55IGRlY29kZSBjYWxsIHRoYXQgc3RhcnRlZAorICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgMjAwMDAwKTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZDllZjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldEF1ZGlvRW5jVGVzdC5jcHAKQEAgLTAsMCArMSw1NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX2F1ZGlvX2VuY190ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6UG9ydE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0IiksIHJlcygiL3NkY2FyZC9tZWRpYS8iKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgdm9pZCBzZXRSZXMoY29uc3QgY2hhciogX3JlcykgeyByZXMgPSBfcmVzOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRDb21wb25lbnQoKSBjb25zdCB7IHJldHVybiBjb21wb25lbnQ7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJvbGUoKSBjb25zdCB7IHJldHVybiByb2xlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSZXMoKSBjb25zdCB7IHJldHVybiByZXM7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwKKyAgICAgICAgICAgIHsiY29tcG9uZW50IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdDJ30sCisgICAgICAgICAgICB7InJvbGUiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1InfSwKKyAgICAgICAgICAgIHsicmVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdQJ30sCisgICAgICAgICAgICB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSTpDOlI6UDoiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICAgICAgICAgICAgICBzZXRDb21wb25lbnQob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIHNldFJvbGUob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICAgICAgICAgIHNldFJlcyhvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLXJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIgorICAgICAgICAgICAgICAgICAgICAiLVAsIC0tcmVzOiBSZXNvdXJjZSBmaWxlcyBkaXJlY3RvcnkgbG9jYXRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKKyAgICBoaWRsX3N0cmluZyBjb21wb25lbnQ7CisgICAgaGlkbF9zdHJpbmcgcm9sZTsKKyAgICBoaWRsX3N0cmluZyByZXM7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworLy8gYXVkaW8gZW5jb2RlciB0ZXN0IGZpeHR1cmUgY2xhc3MKK2NsYXNzIEF1ZGlvRW5jSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9CisgICAgICAgICAgICBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2csIGNvbnN0IEJ1ZmZlckluZm8qIGJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGhhbmRsZU1lc3NhZ2UobXNnLCBidWZmZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9ORShvYnNlcnZlciwgbnVsbHB0cik7CisgICAgICAgIGlmIChzdHJuY21wKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCksICJPTVguIiwgNCkgIT0gMCkKKyAgICAgICAgICAgIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1RSVUUob214LT5hbGxvY2F0ZU5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnRW52LT5nZXRDb21wb25lbnQoKSwgb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJT214Tm9kZT4gY29uc3QmIF9ubCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPm9teE5vZGUgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXhOb2RlLCBudWxscHRyKTsKKyAgICAgICAgQVNTRVJUX05FKGdFbnYtPmdldFJvbGUoKS5lbXB0eSgpLCB0cnVlKSA8PCAiSW52YWxpZCBDb21wb25lbnQgUm9sZSI7CisgICAgICAgIHN0cnVjdCBTdHJpbmdUb05hbWUgeworICAgICAgICAgICAgY29uc3QgY2hhciogTmFtZTsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9OYW1lIGtTdHJpbmdUb05hbWVbXSA9IHsKKyAgICAgICAgICAgIHsiYW1ybmIiLCBhbXJuYn0sIHsiYW1yd2IiLCBhbXJ3Yn0sIHsiYWFjIiwgYWFjfSwgeyJmbGFjIiwgZmxhY30sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9OYW1lID0KKyAgICAgICAgICAgIHNpemVvZihrU3RyaW5nVG9OYW1lKSAvIHNpemVvZihrU3RyaW5nVG9OYW1lWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cik7CisgICAgICAgIGNvbXBOYW1lID0gdW5rbm93bl9jb21wOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtOdW1TdHJpbmdUb05hbWU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHBjaCArIDEsIGtTdHJpbmdUb05hbWVbaV0uTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wTmFtZSA9IGtTdHJpbmdUb05hbWVbaV0uQ29tcE5hbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBOYW1lID09IHVua25vd25fY29tcCkgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBzdHJ1Y3QgQ29tcFRvQ29kaW5nIHsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IENvbXBUb0NvZGluZyBrQ29tcFRvQ29kaW5nW10gPSB7CisgICAgICAgICAgICB7YW1ybmIsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FtcndiLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthYWMsIE9NWF9BVURJT19Db2RpbmdBQUN9LAorICAgICAgICAgICAge2ZsYWMsIE9NWF9BVURJT19Db2RpbmdGTEFDfSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29kaW5nID0KKyAgICAgICAgICAgIHNpemVvZihrQ29tcFRvQ29kaW5nKSAvIHNpemVvZihrQ29tcFRvQ29kaW5nWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29kaW5nOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChrQ29tcFRvQ29kaW5nW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUVuY29kaW5nID0ga0NvbXBUb0NvZGluZ1tpXS5lRW5jb2Rpbmc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvZGluZykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBlb3NGbGFnID0gZmFsc2U7CisgICAgICAgIGlmIChkaXNhYmxlVGVzdCkgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhICBUZXN0IERpc2FibGVkXG4iOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgaWYgKG9teE5vZGUgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoKG9teE5vZGUtPmZyZWVOb2RlKCkpLmlzT2soKSk7CisgICAgICAgICAgICBvbXhOb2RlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHByb2Nlc3MgbWVzc2FnZXMgcmVjZWl2ZWQgYnkgb25NZXNzYWdlcygpIGZyb20gSUwKKyAgICAvLyBjbGllbnQuCisgICAgdm9pZCBoYW5kbGVNZXNzYWdlKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgKHZvaWQpYnVmZmVyOworCisgICAgICAgIGlmIChtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpGSUxMX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfRU9TKSB7CisgICAgICAgICAgICAgICAgZW9zRmxhZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoICE9IDApIHsKKyNkZWZpbmUgV1JJVEVfT1VUUFVUIDAKKyNpZiBXUklURV9PVVRQVVQKKyAgICAgICAgICAgICAgICBzdGF0aWMgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBGSUxFKiBvZnAgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgb2ZwID0gZm9wZW4oIm91dC5iaW4iLCAiYWIiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgIndiIik7CisgICAgICAgICAgICAgICAgaWYgKG9mcCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgIGZ3cml0ZShzdGF0aWNfY2FzdDx2b2lkKj4oYnVmZmVyLT5tTWVtb3J5LT5nZXRQb2ludGVyKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNoYXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoLCBvZnApOworICAgICAgICAgICAgICAgICAgICBmY2xvc2Uob2ZwKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGVudW0gc3RhbmRhcmRDb21wIHsKKyAgICAgICAgYW1ybmIsCisgICAgICAgIGFtcndiLAorICAgICAgICBhYWMsCisgICAgICAgIGZsYWMsCisgICAgICAgIHVua25vd25fY29tcCwKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcCBjb21wTmFtZTsKKyAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2Rpbmc7CisgICAgYm9vbCBkaXNhYmxlVGVzdDsKKyAgICBib29sIGVvc0ZsYWc7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuQml0UmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmVFbmNvZGluZyA9IGVFbmNvZGluZzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBhcnJQcm9maWxlOworICAgIGludDMyX3QgcHJvZmlsZTsKKyAgICBpZiAoKGludCllRW5jb2RpbmcgPT0gT01YX0FVRElPX0NvZGluZ0FBQykgeworICAgICAgICBlbnVtZXJhdGVQcm9maWxlKG9teE5vZGUsIHBvcnRJbmRleCwgJmFyclByb2ZpbGUpOworICAgICAgICBpZiAoYXJyUHJvZmlsZS5lbXB0eSgpID09IHRydWUpIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgcHJvZmlsZSA9IGFyclByb2ZpbGVbMF07CisgICAgfQorCisgICAgc3dpdGNoICgoaW50KWVFbmNvZGluZykgeworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdGTEFDOgorICAgICAgICAgICAgc2V0dXBGTEFDUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5DaGFubmVscywgblNhbXBsZVJhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDUgLyogbkNvbXByZXNzaW9uTGV2ZWwgKi8pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FNUjoKKyAgICAgICAgICAgIHNldHVwQU1SUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIChjb21wID09IEF1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1yd2IpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6CisgICAgICAgICAgICBzZXR1cEFBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9BVURJT19BQUNQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0FBQ1N0cmVhbUZvcm1hdE1QNEZGLCBuQ2hhbm5lbHMsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgY2hhciogbVVSTCkgeworICAgIHN0cnVjdCBDb21wVG9VUkwgeworICAgICAgICBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcDsKKyAgICAgICAgY29uc3QgY2hhciogbVVSTDsKKyAgICB9OworICAgIHN0YXRpYyBjb25zdCBDb21wVG9VUkwga0NvbXBUb1VSTFtdID0geworICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphYWMsICJiYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcifSwKKyAgICAgICAge0F1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1ybmIsICJiYmJfcmF3XzFjaF84a2h6X3MxNmxlLnJhdyJ9LAorICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJ3YiwgImJiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdyJ9LAorICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpmbGFjLCAiYmJiX3Jhd18yY2hfNDhraHpfczE2bGUucmF3In0sCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGtDb21wVG9VUkwpIC8gc2l6ZW9mKGtDb21wVG9VUkxbMF0pOyArK2kpIHsKKyAgICAgICAgaWYgKGtDb21wVG9VUkxbaV0uY29tcCA9PSBjb21wKSB7CisgICAgICAgICAgICBzdHJjYXQobVVSTCwga0NvbXBUb1VSTFtpXS5tVVJMKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gYmxvY2tpbmcgY2FsbCB0byBlbnN1cmVzIGFwcGxpY2F0aW9uIHRvIFdhaXQgdGlsbCBhbGwgdGhlIGlucHV0cyBhcmUgY29uc3VtZWQKK3ZvaWQgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworICAgIGludCB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworCisgICAgd2hpbGUgKHRpbWVPdXQtLSkgeworICAgICAgICBzaXplX3QgaSA9IDA7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisgICAgICAgIC8vIHN0YXR1cyA9PSBUSU1FRF9PVVQsIGl0IGNvdWxkIGJlIGR1ZSB0byBwcm9jZXNzIHRpbWUgYmVpbmcgbGFyZ2UKKyAgICAgICAgLy8gdGhhbiBERUZBVUxUX1RJTUVPVVQgb3IgY29tcG9uZW50IG5lZWRzIG91dHB1dCBidWZmZXJzIHRvIHN0YXJ0CisgICAgICAgIC8vIHByb2Nlc3NpbmcuCisgICAgICAgIGZvciAoOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICgoKmlCdWZmZXIpW2ldLm93bmVyICE9IGNsaWVudCkgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gaUJ1ZmZlci0+c2l6ZSgpKSBicmVhazsKKworICAgICAgICAvLyBEaXNwYXRjaCBhbiBvdXRwdXQgYnVmZmVyIGFzc3VtaW5nIG91dFF1ZXVlLmVtcHR5KCkgaXMgdHJ1ZQorICAgICAgICBzaXplX3QgaW5kZXg7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgpOworICAgICAgICB9CisgICAgICAgIHRpbWVPdXQtLTsKKyAgICB9Cit9CisKKy8vIEVuY29kZSBOIEZyYW1lcwordm9pZCBlbmNvZGVORnJhbWVzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCB1aW50MzJfdCBuRnJhbWVzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc2FtcGxlc1BlckZyYW1lLCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGVSYXRlLCBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgYm9vbCBzaWduYWxFT1MgPSB0cnVlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBkaXNwYXRjaCBvdXRwdXQgYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgfQorICAgIC8vIGRpc3BhdGNoIGlucHV0IGJ1ZmZlcnMKKyAgICBpbnQgYnl0ZXNDb3VudCA9IHNhbXBsZXNQZXJGcmFtZSAqIG5DaGFubmVscyAqIDI7CisgICAgaW50MzJfdCB0aW1lc3RhbXBJbmNyID0KKyAgICAgICAgKGludCkoKChmbG9hdClzYW1wbGVzUGVyRnJhbWUgLyBuU2FtcGxlUmF0ZSkgKiAxMDAwMDAwKTsKKyAgICB1aW50NjRfdCB0aW1lc3RhbXAgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKSAmJiBuRnJhbWVzICE9IDA7IGkrKykgeworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBBU1NFUlRfTEUoYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsIGJ5dGVzQ291bnQpOworICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICBpZiAoc2lnbmFsRU9TICYmIChuRnJhbWVzID09IDEpKSBmbGFncyA9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpLCBieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wKTsKKyAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgIG5GcmFtZXMtLTsKKyAgICB9CisKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICBib29sIHN0YWxsID0gZmFsc2U7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisKKyAgICAgICAgaWYgKG5GcmFtZXMgPT0gMCkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCBieXRlc0NvdW50KTsKKyAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gYnl0ZXNDb3VudCkgYnJlYWs7CisgICAgICAgICAgICBpZiAoc2lnbmFsRU9TICYmIChuRnJhbWVzID09IDEpKSBmbGFncyA9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaW5kZXgsIGJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXApOworICAgICAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgLy8gRGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcgorICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgICAgIHN0YWxsID0gZmFsc2U7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhbGwgPSB0cnVlOworICAgICAgICBpZiAoc3RhbGwpCisgICAgICAgICAgICB0aW1lT3V0LS07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgICAgIGlmICh0aW1lT3V0ID09IDApIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiV2FpdCBvbiBJbnB1dC9PdXRwdXQgaXMgZm91bmQgaW5kZWZpbml0ZSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitURVNUX0YoQXVkaW9FbmNIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKEF1ZGlvRW5jSGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9BVURJT19Db2RpbmdQQ00pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBlRW5jb2RpbmcpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlCitURVNUX0YoQXVkaW9FbmNIaWRsVGVzdCwgU2ltcGxlRW5jb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBCYXNpYyBlbmNvZGluZyBhbmQgRU9TIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwpOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW07CisKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIGludDMyX3QgbkNoYW5uZWxzID0gMjsKKyAgICBpbnQzMl90IG5TYW1wbGVSYXRlID0gNDQxMDA7CisgICAgaW50MzJfdCBzYW1wbGVzUGVyRnJhbWUgPSAxMDI0OworICAgIGludDMyX3QgbkJpdFJhdGUgPSAxMjgwMDA7CisgICAgc3dpdGNoIChjb21wTmFtZSkgeworICAgICAgICBjYXNlIGFtcm5iOgorICAgICAgICAgICAgbkNoYW5uZWxzID0gMTsKKyAgICAgICAgICAgIG5TYW1wbGVSYXRlID0gODAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDE2MDsKKyAgICAgICAgICAgIG5CaXRSYXRlID0gNzQwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFtcndiOgorICAgICAgICAgICAgbkNoYW5uZWxzID0gMTsKKyAgICAgICAgICAgIG5TYW1wbGVSYXRlID0gMTYwMDA7CisgICAgICAgICAgICBzYW1wbGVzUGVyRnJhbWUgPSAxNjA7CisgICAgICAgICAgICBuQml0UmF0ZSA9IDE1ODUwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYWFjOgorICAgICAgICAgICAgbkNoYW5uZWxzID0gMjsKKyAgICAgICAgICAgIG5TYW1wbGVSYXRlID0gNDgwMDA7CisgICAgICAgICAgICBzYW1wbGVzUGVyRnJhbWUgPSAxMDI0OworICAgICAgICAgICAgbkJpdFJhdGUgPSAxMjgwMDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBmbGFjOgorICAgICAgICAgICAgbkNoYW5uZWxzID0gMjsKKyAgICAgICAgICAgIG5TYW1wbGVSYXRlID0gNDgwMDA7CisgICAgICAgICAgICBzYW1wbGVzUGVyRnJhbWUgPSAxMTUyOworICAgICAgICAgICAgbkJpdFJhdGUgPSAxMjgwMDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICB9CisgICAgc2V0dXBQQ01Qb3J0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgbkNoYW5uZWxzLCBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICAgICAgICAgICAgICAgMTYsIG5TYW1wbGVSYXRlLCBPTVhfQVVESU9fUENNTW9kZUxpbmVhcik7CisgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBlRW5jb2RpbmcsIGNvbXBOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZSwgbkJpdFJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGVuY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgMTI4LCBzYW1wbGVzUGVyRnJhbWUsCisgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlLCBlbGVTdHJlYW0pOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBmYWxzZSwgZW9zRmxhZyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9tZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJkMDQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAKQEAgLTAsMCArMSwyNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX2F1ZGlvX3Rlc3RfY29tbW9uIgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6UG9ydE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxoaWRsbWVtb3J5L21hcHBpbmcuaD4KKyNpbmNsdWRlIDxtZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldEF1ZGlvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZykgeworICAgIE9NWF9VMzIgaW5kZXggPSAwOworICAgIE9NWF9BVURJT19QQVJBTV9QT1JURk9STUFUVFlQRSBwb3J0Rm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9BVURJT19DT0RJTkdUWVBFPiBhcnJFbmNvZGluZzsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHBvcnRGb3JtYXQubkluZGV4ID0gaW5kZXg7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIGJyZWFrOworICAgICAgICBhcnJFbmNvZGluZy5wdXNoX2JhY2socG9ydEZvcm1hdC5lRW5jb2RpbmcpOworICAgICAgICBpbmRleCsrOworICAgICAgICBpZiAoaW5kZXggPT0gNTEyKSB7CisgICAgICAgICAgICAvLyBlbnVtZXJhdGVkIHdheSB0b28gbWFueSBmb3JtYXRzLCBoaWdobHkgdW51c3VhbCBmb3IgdGhpcyB0bworICAgICAgICAgICAgLy8gaGFwcGVuLgorICAgICAgICAgICAgRVhQRUNUX0xFKGluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFpbmRleCkgcmV0dXJuIHN0YXR1czsKKyAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJFbmNvZGluZy5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgaWYgKGFyckVuY29kaW5nW2luZGV4XSA9PSBlRW5jb2RpbmcpIHsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUVuY29kaW5nID0gYXJyRW5jb2RpbmdbaW5kZXhdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGluZGV4ID09IGFyckVuY29kaW5nLnNpemUoKSkgeworICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IFBvcnQgZm9ybWF0ICV4IiwgKGludClhcnJFbmNvZGluZ1swXSk7CisgICAgICAgIHBvcnRGb3JtYXQuZUVuY29kaW5nID0gYXJyRW5jb2RpbmdbMF07CisgICAgfQorICAgIC8vIEluIHNldFBhcmFtIGNhbGwgbkluZGV4IHNoYWxsIGJlIGlnbm9yZWQgYXMgcGVyIG9teC1pbCBzcGVjaWZpY2F0aW9uLgorICAgIC8vIHNlZSBob3cgdGhpcyBob2xkcyB1cCBieSBjb3JydXB0aW5nIG5JbmRleAorICAgIHBvcnRGb3JtYXQubkluZGV4ID0gUkFORE9NX0lOREVYOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldFJvbGUoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIGNvbnN0IGNoYXIqIHJvbGUpIHsKKyAgICBPTVhfUEFSQU1fQ09NUE9ORU5UUk9MRVRZUEUgcGFyYW1zOworICAgIHN0cmNweSgoY2hhciopcGFyYW1zLmNSb2xlLCByb2xlKTsKKyAgICByZXR1cm4gc2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1TdGFuZGFyZENvbXBvbmVudFJvbGUsICZwYXJhbXMpOworfQorCit2b2lkIGVudW1lcmF0ZVByb2ZpbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+KiBhcnJQcm9maWxlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0FORFJPSURfUFJPRklMRVRZUEUgcGFyYW07CisgICAgcGFyYW0ublByb2ZpbGVJbmRleCA9IDA7CisgICAgYXJyUHJvZmlsZS0+Y2xlYXIoKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0oCisgICAgICAgICAgICBvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbUF1ZGlvUHJvZmlsZVF1ZXJ5U3VwcG9ydGVkLAorICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIGJyZWFrOworICAgICAgICBhcnJQcm9maWxlLT5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50MzJfdD4ocGFyYW0uZVByb2ZpbGUpKTsKKyAgICAgICAgcGFyYW0ublByb2ZpbGVJbmRleCsrOworICAgICAgICBpZiAocGFyYW0ublByb2ZpbGVJbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55LCBoaWdobHkgdW51c3VhbCBmb3IgdGhpcyB0byBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUocGFyYW0ublByb2ZpbGVJbmRleCwgNTEyVSkKKyAgICAgICAgICAgICAgICA8PCAiRXhwZWN0aW5nIE9NWF9FcnJvck5vTW9yZSBidXQgbm90IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIHNldHVwUENNUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgT01YX05VTUVSSUNBTERBVEFUWVBFIGVOdW1EYXRhLCBpbnQzMl90IG5CaXRQZXJTYW1wbGUsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGluZ1JhdGUsIE9NWF9BVURJT19QQ01NT0RFVFlQRSBlUENNTW9kZSkgeworICAgIE9NWF9BVURJT19QQVJBTV9QQ01NT0RFVFlQRSBwYXJhbTsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BjbSwgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5lTnVtRGF0YSA9IGVOdW1EYXRhOworICAgIHBhcmFtLmVFbmRpYW4gPSBPTVhfRW5kaWFuTGl0dGxlOworICAgIHBhcmFtLmJJbnRlcmxlYXZlZCA9IE9NWF9UUlVFOworICAgIHBhcmFtLm5CaXRQZXJTYW1wbGUgPSBuQml0UGVyU2FtcGxlOworICAgIHBhcmFtLm5TYW1wbGluZ1JhdGUgPSBuU2FtcGxpbmdSYXRlOworICAgIHBhcmFtLmVQQ01Nb2RlID0gZVBDTU1vZGU7CisgICAgc3dpdGNoIChuQ2hhbm5lbHMpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcGFyYW0uZUNoYW5uZWxNYXBwaW5nWzBdID0gT01YX0FVRElPX0NoYW5uZWxDRjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMF0gPSBPTVhfQVVESU9fQ2hhbm5lbExGOworICAgICAgICAgICAgcGFyYW0uZUNoYW5uZWxNYXBwaW5nWzFdID0gT01YX0FVRElPX0NoYW5uZWxSRjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgIH0KKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BjbSwgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwTVAzUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fTVAzU1RSRUFNRk9STUFUVFlQRSBlRm9ybWF0LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBPTVhfQVVESU9fUEFSQU1fTVAzVFlQRSBwYXJhbTsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb01wMywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgcGFyYW0ubkF1ZGlvQmFuZFdpZHRoID0gMDsKKyAgICBwYXJhbS5lQ2hhbm5lbE1vZGUgPSAobkNoYW5uZWxzID09IDEpID8gT01YX0FVRElPX0NoYW5uZWxNb2RlTW9ubworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBPTVhfQVVESU9fQ2hhbm5lbE1vZGVTdGVyZW87CisgICAgcGFyYW0uZUZvcm1hdCA9IGVGb3JtYXQ7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9NcDMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEZMQUNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuQ29tcHJlc3Npb25MZXZlbCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9BVURJT19QQVJBTV9GTEFDVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0ZsYWMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSBuQ2hhbm5lbHM7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQ29tcHJlc3Npb25MZXZlbCA9IG5Db21wcmVzc2lvbkxldmVsOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvRmxhYywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwT1BVU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0FORFJPSURfT1BVU1RZUEUgcGFyYW07CisgICAgc3RhdHVzID0KKyAgICAgICAgZ2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9BbmRyb2lkT3B1cywKKyAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSBuQ2hhbm5lbHM7CisgICAgcGFyYW0ubkJpdFJhdGUgPSBuQml0UmF0ZTsKKyAgICBwYXJhbS5uU2FtcGxlUmF0ZSA9IG5TYW1wbGVSYXRlOworICAgIHN0YXR1cyA9CisgICAgICAgIHNldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbUF1ZGlvQW5kcm9pZE9wdXMsCisgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK09NWF9BVURJT19BTVJCQU5ETU9ERVRZUEUgcGlja01vZGVGcm9tQml0UmF0ZShib29sIGlzQU1SV0IsIGludDMyX3QgYnBzKSB7CisgICAgaWYgKGlzQU1SV0IpIHsKKyAgICAgICAgaWYgKGJwcyA8PSA2NjAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlV0IwOworICAgICAgICBpZiAoYnBzIDw9IDg4NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjE7CisgICAgICAgIGlmIChicHMgPD0gMTI2NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjI7CisgICAgICAgIGlmIChicHMgPD0gMTQyNTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjM7CisgICAgICAgIGlmIChicHMgPD0gMTU4NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjQ7CisgICAgICAgIGlmIChicHMgPD0gMTgyNTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjU7CisgICAgICAgIGlmIChicHMgPD0gMTk4NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjY7CisgICAgICAgIGlmIChicHMgPD0gMjMwNTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjc7CisgICAgICAgIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGJwcyA8PSA0NzUwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkIwOworICAgICAgICBpZiAoYnBzIDw9IDUxNTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjE7CisgICAgICAgIGlmIChicHMgPD0gNTkwMCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CMjsKKyAgICAgICAgaWYgKGJwcyA8PSA2NzAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkIzOworICAgICAgICBpZiAoYnBzIDw9IDc0MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjQ7CisgICAgICAgIGlmIChicHMgPD0gNzk1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CNTsKKyAgICAgICAgaWYgKGJwcyA8PSAxMDIwMCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CNjsKKyAgICAgICAgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CNzsKKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBBTVJQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQml0UmF0ZSwKKyAgICAgICAgICAgICAgICAgIGJvb2wgaXNBTVJXQikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9BVURJT19QQVJBTV9BTVJUWVBFIHBhcmFtOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQW1yLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gMTsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLmVBTVJCYW5kTW9kZSA9IHBpY2tNb2RlRnJvbUJpdFJhdGUoaXNBTVJXQiwgbkJpdFJhdGUpOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQW1yLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBWT1JCSVNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlLCBpbnQzMl90IG5RdWFsaXR5KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX1ZPUkJJU1RZUEUgcGFyYW07CisgICAgc3RhdHVzID0KKyAgICAgICAgZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Wb3JiaXMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSBuQ2hhbm5lbHM7CisgICAgcGFyYW0ubkJpdFJhdGUgPSBuQml0UmF0ZTsKKyAgICBwYXJhbS5uU2FtcGxlUmF0ZSA9IG5TYW1wbGVSYXRlOworICAgIHBhcmFtLm5RdWFsaXR5ID0gblF1YWxpdHk7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Wb3JiaXMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEFBQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0FBQ1BST0ZJTEVUWVBFIGVBQUNQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0FBQ1NUUkVBTUZPUk1BVFRZUEUgZUFBQ1N0cmVhbUZvcm1hdCwKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgbkNoYW5uZWxzLCBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0FBQ1BST0ZJTEVUWVBFIHBhcmFtOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQWFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgcGFyYW0ubkJpdFJhdGUgPSBuQml0UmF0ZTsKKyAgICBwYXJhbS5lQUFDUHJvZmlsZSA9IGVBQUNQcm9maWxlOworICAgIHBhcmFtLmVBQUNTdHJlYW1Gb3JtYXQgPSBlQUFDU3RyZWFtRm9ybWF0OworICAgIHBhcmFtLmVDaGFubmVsTW9kZSA9IChuQ2hhbm5lbHMgPT0gMSkgPyBPTVhfQVVESU9fQ2hhbm5lbE1vZGVNb25vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE9NWF9BVURJT19DaGFubmVsTW9kZVN0ZXJlbzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0FhYywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9tZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmggYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzYyNDM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9tZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgTUVESUFfQVVESU9fSElETF9URVNUX0NPTU1PTl9ICisjZGVmaW5lIE1FRElBX0FVRElPX0hJRExfVEVTVF9DT01NT05fSAorCisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorCisvKgorICogUmFuZG9tIEluZGV4IHVzZWQgZm9yIG1vbmtleSB0ZXN0aW5nIHdoaWxlIGdldC9zZXQgcGFyYW1ldGVycworICovCisjZGVmaW5lIFJBTkRPTV9JTkRFWCAxNzI5CisKKy8qCisgKiBDb21tb24gYXVkaW8gdXRpbHMKKyAqLworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldEF1ZGlvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZyk7CisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRSb2xlKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBjb25zdCBjaGFyKiByb2xlKTsKKwordm9pZCBlbnVtZXJhdGVQcm9maWxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiogYXJyUHJvZmlsZSk7CisKK3ZvaWQgc2V0dXBQQ01Qb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEsIGludDMyX3QgbkJpdFBlclNhbXBsZSwKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsaW5nUmF0ZSwgT01YX0FVRElPX1BDTU1PREVUWVBFIGVQQ01Nb2RlKTsKKwordm9pZCBzZXR1cE1QM1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX0FVRElPX01QM1NUUkVBTUZPUk1BVFRZUEUgZUZvcm1hdCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlKTsKKwordm9pZCBzZXR1cEZMQUNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuQ29tcHJlc3Npb25MZXZlbCk7CisKK3ZvaWQgc2V0dXBPUFVTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpOworCit2b2lkIHNldHVwQU1SUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkJpdFJhdGUsCisgICAgICAgICAgICAgICAgICBib29sIGlzQU1SV0IpOworCit2b2lkIHNldHVwVk9SQklTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuUXVhbGl0eSk7CisKK3ZvaWQgc2V0dXBBQUNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19BQUNQUk9GSUxFVFlQRSBlQUFDUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19BQUNTVFJFQU1GT1JNQVRUWVBFIGVBQUNTdHJlYW1Gb3JtYXQsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5DaGFubmVscywgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSk7CisKKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fSElETF9URVNUX0NPTU1PTl9ICmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzI1MWZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vQW5kcm9pZC5icApAQCAtMCwwICsxLDMzIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMENvbW1vblV0aWwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIm1lZGlhX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsgIi1PMCIsICItZyIsIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9tZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMDM0NGExCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5jcHAKQEAgLTAsMCArMSw0MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX3ZpZGVvX3Rlc3RfY29tbW9uIgorCisjaWZkZWYgX19MUDY0X18KKyNkZWZpbmUgT01YX0FORFJPSURfQ09NUElMRV9BU18zMkJJVF9PTl82NEJJVF9QTEFURk9STVMKKyNlbmRpZgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0hhcmR3YXJlQVBJLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworLy8gYWxsb2NhdGUgYnVmZmVycyBuZWVkZWQgb24gYSBjb21wb25lbnQgcG9ydAordm9pZCBhbGxvY2F0ZVBvcnRCdWZmZXJzKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4LCBQb3J0TW9kZSBwb3J0TW9kZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKworICAgIGJ1ZmZBcnJheS0+Y2xlYXIoKTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGlmIChwb3J0TW9kZSA9PSBQb3J0TW9kZTo6UFJFU0VUX1NFQ1VSRV9CVUZGRVIpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgICAgICBCdWZmZXJJbmZvIGJ1ZmZlcjsKKyAgICAgICAgICAgIGJ1ZmZlci5vd25lciA9IGNsaWVudDsKKyAgICAgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpOQVRJVkVfSEFORExFOworICAgICAgICAgICAgb214Tm9kZS0+YWxsb2NhdGVTZWN1cmVCdWZmZXIoCisgICAgICAgICAgICAgICAgcG9ydEluZGV4LCBwb3J0RGVmLm5CdWZmZXJTaXplLAorICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXSgKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywgdWludDMyX3QgaWQsCisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlIGNvbnN0JiBuYXRpdmVIYW5kbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5pZCA9IGlkOworICAgICAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLm5hdGl2ZUhhbmRsZSA9IG5hdGl2ZUhhbmRsZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJ1ZmZBcnJheS0+cHVzaChidWZmZXIpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocG9ydE1vZGUgPT0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUiB8fAorICAgICAgICAgICAgICAgcG9ydE1vZGUgPT0gUG9ydE1vZGU6OkRZTkFNSUNfQU5XX0JVRkZFUikgeworICAgICAgICBzcDxJQWxsb2NhdG9yPiBhbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICAgICAgRVhQRUNUX05FKGFsbG9jYXRvci5nZXQoKSwgbnVsbHB0cik7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgICAgICBCdWZmZXJJbmZvIGJ1ZmZlcjsKKyAgICAgICAgICAgIGJ1ZmZlci5vd25lciA9IGNsaWVudDsKKyAgICAgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gMDsKKyAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKHBvcnRNb2RlICE9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVIpIHsKKyAgICAgICAgICAgICAgICBwb3J0RGVmLm5CdWZmZXJTaXplID0gc2l6ZW9mKGFuZHJvaWQ6OlZpZGVvTmF0aXZlTWV0YWRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxsb2NhdG9yLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgICAgICBwb3J0RGVmLm5CdWZmZXJTaXplLAorICAgICAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oCisgICAgICAgICAgICAgICAgICAgIGJvb2wgX3MsIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5IGNvbnN0JiBtZW0pIHsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IF9zOworICAgICAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdWNjZXNzLCB0cnVlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksCisgICAgICAgICAgICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBidWZmZXIubU1lbW9yeSA9IG1hcE1lbW9yeShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoYnVmZmVyLm1NZW1vcnksIG51bGxwdHIpOworICAgICAgICAgICAgaWYgKHBvcnRNb2RlID09IFBvcnRNb2RlOjpEWU5BTUlDX0FOV19CVUZGRVIpIHsKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWaWRlb05hdGl2ZU1ldGFkYXRhKiBtZXRhRGF0YSA9CisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGFuZHJvaWQ6OlZpZGVvTmF0aXZlTWV0YWRhdGEqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihidWZmZXIubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgICAgICAgICAgbWV0YURhdGEtPm5GZW5jZUZkID0gLTE7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNsb3QgPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9teE5vZGUtPnVzZUJ1ZmZlcigKKyAgICAgICAgICAgICAgICBwb3J0SW5kZXgsIGJ1ZmZlci5vbXhCdWZmZXIsCisgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZidWZmZXJdKAorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZCkgeworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBidWZmQXJyYXktPnB1c2goYnVmZmVyKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBMb2FkZWQgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0TW9kZSogcG9ydE1vZGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBQb3J0TW9kZSBkZWZhdWx0UG9ydE1vZGVbMl0sICpwbTsKKworICAgIGRlZmF1bHRQb3J0TW9kZVswXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgZGVmYXVsdFBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBwbSA9IHBvcnRNb2RlID8gcG9ydE1vZGUgOiBkZWZhdWx0UG9ydE1vZGU7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gaW5wdXQgcG9ydAorICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgaUJ1ZmZlciwga1BvcnRJbmRleElucHV0LCBwbVswXSk7CisKKyAgICAvLyBEb250IHN3aXRjaCBzdGF0ZXMgdW50aWwgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgLy8gYWxsb2NhdGUgYnVmZmVycyBvbiBvdXRwdXQgcG9ydAorICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgb0J1ZmZlciwga1BvcnRJbmRleE91dHB1dCwgcG1bMV0pOworCisgICAgLy8gQXMgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFN0YXRlU2V0KTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBPTVhfU3RhdGVJZGxlKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gTG9hZGVkCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4SW5wdXQsICgqaUJ1ZmZlcilbaV0uaWQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlTG9hZGVkKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gRXhlY3V0ZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlRXhlY3V0aW5nKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IEV4ZWN1dGUgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZ2V0IGVtcHR5IGJ1ZmZlciBpbmRleAorc2l6ZV90IGdldEVtcHR5QnVmZmVySUQoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXkpIHsKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz46Oml0ZXJhdG9yIGl0ID0gYnVmZkFycmF5LT5iZWdpbigpOworICAgIHdoaWxlIChpdCAhPSBidWZmQXJyYXktPmVuZCgpKSB7CisgICAgICAgIGlmIChpdC0+b3duZXIgPT0gY2xpZW50KSB7CisgICAgICAgICAgICAvLyBUaGlzIGJsb2NrIG9mIGNvZGUgZW5zdXJlcyB0aGF0IGFsbCBidWZmZXJzIGFsbG9jYXRlZCBhdCBpbml0CisgICAgICAgICAgICAvLyB0aW1lIGFyZSB1dGlsaXplZAorICAgICAgICAgICAgQnVmZmVySW5mbyBiYWNrdXAgPSAqaXQ7CisgICAgICAgICAgICBidWZmQXJyYXktPmVyYXNlKGl0KTsKKyAgICAgICAgICAgIGJ1ZmZBcnJheS0+cHVzaF9iYWNrKGJhY2t1cCk7CisgICAgICAgICAgICByZXR1cm4gYnVmZkFycmF5LT5zaXplKCkgLSAxOworICAgICAgICB9CisgICAgICAgIGl0Kys7CisgICAgfQorICAgIHJldHVybiBidWZmQXJyYXktPnNpemUoKTsKK30KKworLy8gZGlzcGF0Y2ggYnVmZmVyIHRvIG91dHB1dCBwb3J0Cit2b2lkIGRpc3BhdGNoT3V0cHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4LCBQb3J0TW9kZSBwb3J0TW9kZSkgeworICAgIGlmIChwb3J0TW9kZSA9PSBQb3J0TW9kZTo6RFlOQU1JQ19BTldfQlVGRkVSKSB7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBDb2RlY0J1ZmZlciB0ID0gKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5vbXhCdWZmZXI7CisgICAgICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpBTldfQlVGRkVSOworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGZlbmNlTmggPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICAgICAgQVNTRVJUX05FKGZlbmNlTmgsIG51bGxwdHIpOworICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5maWxsQnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZlbmNlTmgpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworICAgIH0gZWxzZSB7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBDb2RlY0J1ZmZlciB0OworICAgICAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgICAgICB0Lm5hdGl2ZUhhbmRsZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgICAgICB0LnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6UFJFU0VUOworICAgICAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgdC5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgICAgICBBU1NFUlRfTkUoZmVuY2VOaCwgbnVsbHB0cik7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZpbGxCdWZmZXIoKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5pZCwgdCwgZmVuY2VOaCk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoZmVuY2VOaCk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChidWZmZXJJbmRleCkub3duZXIgPSBjb21wb25lbnQ7CisgICAgfQorfQorCisvLyBkaXNwYXRjaCBidWZmZXIgdG8gaW5wdXQgcG9ydAordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIENvZGVjQnVmZmVyIHQ7CisgICAgdC5zaGFyZWRNZW1vcnkgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkoKTsKKyAgICB0Lm5hdGl2ZUhhbmRsZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IGJ5dGVzQ291bnQ7CisgICAgbmF0aXZlX2hhbmRsZV90KiBmZW5jZU5oID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgQVNTRVJUX05FKGZlbmNlTmgsIG51bGxwdHIpOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmVtcHR5QnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwgZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGJ1ZmZlckluZGV4KS5vd25lciA9IGNvbXBvbmVudDsKK30KKworLy8gRmx1c2ggaW5wdXQgYW5kIG91dHB1dCBwb3J0cwordm9pZCBmbHVzaFBvcnRzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsIGludDY0X3QgdGltZW91dFVzKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBGbHVzaCBpbnB1dCBwb3J0CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZEZsdXNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgdGltZW91dFVzLCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kRmx1c2gpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhJbnB1dCk7CisgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCppQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9CisKKyAgICAvLyBGbHVzaCBvdXRwdXQgcG9ydAorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRGbHVzaCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCB0aW1lb3V0VXMsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRGbHVzaCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9Cit9CisKKy8vIGRpc3BhdGNoIGFuIGVtcHR5IGlucHV0IGJ1ZmZlciB3aXRoIGVvcyBmbGFnIHNldCBpZiByZXF1ZXN0ZWQuCisvLyBUaGlzIGNhbGwgYXNzdW1lcyB0aGF0IGFsbCBpbnB1dCBidWZmZXJzIGFyZSBwcm9jZXNzZWQgY29tcGxldGVseS4KKy8vIGZlZWQgb3V0cHV0IGJ1ZmZlcnMgdGlsbCB3ZSByZWNlaXZlIGEgYnVmZmVyIHdpdGggZW9zIGZsYWcgc2V0Cit2b2lkIHRlc3RFT1Moc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIGJvb2wgc2lnbmFsRU9TLAorICAgICAgICAgICAgIGJvb2wmIGVvc0ZsYWcsIFBvcnRNb2RlKiBwb3J0TW9kZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIFBvcnRNb2RlIGRlZmF1bHRQb3J0TW9kZVsyXSwgKnBtOworCisgICAgZGVmYXVsdFBvcnRNb2RlWzBdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBkZWZhdWx0UG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHBtID0gcG9ydE1vZGUgPyBwb3J0TW9kZSA6IGRlZmF1bHRQb3J0TW9kZTsKKworICAgIHNpemVfdCBpID0gMDsKKyAgICBpZiAoc2lnbmFsRU9TKSB7CisgICAgICAgIGlmICgoaSA9IGdldEVtcHR5QnVmZmVySUQoaUJ1ZmZlcikpIDwgaUJ1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICAvLyBzaWduYWwgYW4gZW1wdHkgYnVmZmVyIHdpdGggZmxhZyBzZXQgdG8gRU9TCisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksIDAsIE9NWF9CVUZGRVJGTEFHX0VPUywgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICB3aGlsZSAodGltZU91dC0tKSB7CisgICAgICAgIC8vIERpc3BhdGNoIGFsbCBjbGllbnQgb3duZWQgb3V0cHV0IGJ1ZmZlcnMgdG8gcmVjb3ZlciByZW1haW5pbmcgZnJhbWVzCisgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICBpZiAoKGkgPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGksIHBtWzFdKTsKKyAgICAgICAgICAgICAgICAvLyBpZiBkaXNwYXRjaCBpcyBzdWNjZXNzZnVsLCBwZXJoYXBzIHRoZXJlIGlzIGEgbGF0ZW5jeQorICAgICAgICAgICAgICAgIC8vIGluIHRoZSBjb21wb25lbnQuIERvbnQgYmUgaW4gYSBoYXN0ZSB0byBsZWF2ZS4gcmVzZXQgdGltZW91dAorICAgICAgICAgICAgICAgIC8vIGNvdW50ZXIKKyAgICAgICAgICAgICAgICB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE1lc3NhZ2UgbXNnOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworICAgICAgICBpZiAoZW9zRmxhZyA9PSB0cnVlKSBicmVhazsKKyAgICB9CisgICAgLy8gdGVzdCBmb3IgZmxhZworICAgIEVYUEVDVF9FUShlb3NGbGFnLCB0cnVlKTsKKyAgICBlb3NGbGFnID0gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9tZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmggYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9tZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQwMjUzMgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uL21lZGlhX2hpZGxfdGVzdF9jb21tb24uaApAQCAtMCwwICsxLDMwMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgTUVESUFfSElETF9URVNUX0NPTU1PTl9ICisjZGVmaW5lIE1FRElBX0hJRExfVEVTVF9DT01NT05fSAorCisjaWZkZWYgX19MUDY0X18KKyNkZWZpbmUgT01YX0FORFJPSURfQ09NUElMRV9BU18zMkJJVF9PTl82NEJJVF9QTEFURk9STVMKKyNlbmRpZgorCisjaW5jbHVkZSA8bWVkaWEvc3RhZ2VmcmlnaHQvZm91bmRhdGlvbi9BTG9vcGVyLmg+CisjaW5jbHVkZSA8dXRpbHMvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8dXRpbHMvTGlzdC5oPgorI2luY2x1ZGUgPHV0aWxzL011dGV4Lmg+CisKKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9JbmRleC5oPgorI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX0NvcmUuaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9Db21wb25lbnQuaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9JbmRleEV4dC5oPgorI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX0F1ZGlvRXh0Lmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfVmlkZW9FeHQuaD4KKworI2RlZmluZSBERUZBVUxUX1RJTUVPVVQgNDAwMDAKKyNkZWZpbmUgVElNRU9VVF9DT1VOVEVSICgxMDAwMDAwMCAvIERFRkFVTFRfVElNRU9VVCkKKworZW51bSBidWZmZXJPd25lciB7CisgICAgY2xpZW50LAorICAgIGNvbXBvbmVudCwKKyAgICB1bmtub3duLAorfTsKKworLyoKKyAqIFRPRE86IGJlbG93IGRlZmluaXRpb25zIGFyZSBib3Jyb3dlZCBmcm9tIENvbnZlcnNpb24uaC4KKyAqIFRoaXMgaXMgbm90IHRoZSBpZGVhbCB3YXkgdG8gZG8gaXQuIExvb3NlIHRoZXNlIGRlZmluaXRpb25zIG9uY2UgeW91CisgKiBpbmNsdWRlIENvbnZlcnNpb24uaAorICovCitpbmxpbmUgdWludDMyX3QgdG9SYXdJbmRleFR5cGUoT01YX0lOREVYVFlQRSBsKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKTsKK30KKworaW5saW5lIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgdG9TdGF0dXMoCisgICAgYW5kcm9pZDo6c3RhdHVzX3QgbCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPihsKTsKK30KKworaW5saW5lIGhpZGxfdmVjPHVpbnQ4X3Q+IGluSGlkbEJ5dGVzKHZvaWQgY29uc3QqIGwsIHNpemVfdCBzaXplKSB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gdDsKKyAgICB0LnNldFRvRXh0ZXJuYWwoc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGwpKSwgc2l6ZSwgZmFsc2UpOworICAgIHJldHVybiB0OworfQorCitpbmxpbmUgdWludDMyX3QgdG9SYXdDb21tYW5kVHlwZShPTVhfQ09NTUFORFRZUEUgbCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4obCk7Cit9CisKKy8qCisgKiBzdHJ1Y3QgZGVmaW5pdGlvbnMKKyAqLworc3RydWN0IEJ1ZmZlckluZm8geworICAgIHVpbnQzMl90IGlkOworICAgIGJ1ZmZlck93bmVyIG93bmVyOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlciBvbXhCdWZmZXI7CisgICAgOjphbmRyb2lkOjpzcDxJTWVtb3J5PiBtTWVtb3J5OworICAgIGludDMyX3Qgc2xvdDsKK307CisKK3N0cnVjdCBGcmFtZURhdGEgeworICAgIGludCBieXRlc0NvdW50OworICAgIHVpbnQzMl90IGZsYWdzOworICAgIHVpbnQzMl90IHRpbWVzdGFtcDsKK307CisKKy8qCisgKiBIYW5kbGUgQ2FsbGJhY2sgZnVuY3Rpb25zIEVtcHR5dGhpc0J1ZmZlcigpLCBGaWxsdGhpc0J1ZmZlcigpLAorICogRXZlbnRIYW5kbGVyKCkKKyAqLworc3RydWN0IENvZGVjT2JzZXJ2ZXIgOiBwdWJsaWMgSU9teE9ic2VydmVyIHsKKyAgIHB1YmxpYzoKKyAgICBDb2RlY09ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZChNZXNzYWdlLCBjb25zdCBCdWZmZXJJbmZvKik+IGZuKQorICAgICAgICA6IGNhbGxCYWNrKGZuKSB7fQorICAgIFJldHVybjx2b2lkPiBvbk1lc3NhZ2VzKGNvbnN0IGhpZGxfdmVjPE1lc3NhZ2U+JiBtZXNzYWdlcykgb3ZlcnJpZGUgeworICAgICAgICBhbmRyb2lkOjpNdXRleDo6QXV0b2xvY2sgYXV0b0xvY2sobXNnTG9jayk7CisgICAgICAgIGZvciAoaGlkbF92ZWM8TWVzc2FnZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWVzc2FnZXMuYmVnaW4oKTsKKyAgICAgICAgICAgICBpdCAhPSBtZXNzYWdlcy5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgbXNnUXVldWUucHVzaF9iYWNrKCppdCk7CisgICAgICAgIH0KKyAgICAgICAgbXNnQ29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIGRlcXVldWVNZXNzYWdlKAorICAgICAgICBNZXNzYWdlKiBtc2csIGludDY0X3QgdGltZW91dFVzLAorICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXJzID0gbnVsbHB0ciwKKyAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVycyA9IG51bGxwdHIpIHsKKyAgICAgICAgaW50NjRfdCBmaW5pc2hCeSA9IGFuZHJvaWQ6OkFMb29wZXI6OkdldE5vd1VzKCkgKyB0aW1lb3V0VXM7CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGFuZHJvaWQ6Ok11dGV4OjpBdXRvbG9jayBhdXRvTG9jayhtc2dMb2NrKTsKKyAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8TWVzc2FnZT46Oml0ZXJhdG9yIGl0ID0gbXNnUXVldWUuYmVnaW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChpdCAhPSBtc2dRdWV1ZS5lbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC0+dHlwZSA9PQorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTo6VHlwZTo6RVZFTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgKm1zZyA9ICppdDsKKyAgICAgICAgICAgICAgICAgICAgbXNnUXVldWUuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0LT50eXBlID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlOjpUeXBlOjpGSUxMX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChvQnVmZmVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb0J1ZmZlcnMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgqb0J1ZmZlcnMpW2ldLmlkID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LT5kYXRhLmJ1ZmZlckRhdGEuYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsQmFjaykgY2FsbEJhY2soKml0LCAmKCpvQnVmZmVycylbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVycy0+ZWRpdEl0ZW1BdChpKS5vd25lciA9IGNsaWVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnUXVldWUuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTEUoaSwgb0J1ZmZlcnMtPnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0LT50eXBlID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlOjpUeXBlOjpFTVBUWV9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaUJ1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGlCdWZmZXJzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKmlCdWZmZXJzKVtpXS5pZCA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+ZGF0YS5idWZmZXJEYXRhLmJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCppdCwgJigqaUJ1ZmZlcnMpW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlcnMtPmVkaXRJdGVtQXQoaSkub3duZXIgPSBjbGllbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ1F1ZXVlLmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0xFKGksIGlCdWZmZXJzLT5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsraXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmluaXNoQnkgLSBhbmRyb2lkOjpBTG9vcGVyOjpHZXROb3dVcygpIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9TdGF0dXMoYW5kcm9pZDo6VElNRURfT1VUKTsKKyAgICAgICAgICAgIGFuZHJvaWQ6OnN0YXR1c190IGVyciA9CisgICAgICAgICAgICAgICAgKHRpbWVvdXRVcyA8IDApCisgICAgICAgICAgICAgICAgICAgID8gbXNnQ29uZGl0aW9uLndhaXQobXNnTG9jaykKKyAgICAgICAgICAgICAgICAgICAgOiBtc2dDb25kaXRpb24ud2FpdFJlbGF0aXZlKAorICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dMb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZmluaXNoQnkgLSBhbmRyb2lkOjpBTG9vcGVyOjpHZXROb3dVcygpKSAqIDEwMDBsbCk7CisgICAgICAgICAgICBpZiAoZXJyID09IGFuZHJvaWQ6OlRJTUVEX09VVCkgcmV0dXJuIHRvU3RhdHVzKGVycik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhbmRyb2lkOjpMaXN0PE1lc3NhZ2U+IG1zZ1F1ZXVlOworICAgIGFuZHJvaWQ6Ok11dGV4IG1zZ0xvY2s7CisgICAgYW5kcm9pZDo6Q29uZGl0aW9uIG1zZ0NvbmRpdGlvbjsKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoTWVzc2FnZSwgY29uc3QgQnVmZmVySW5mbyopPiBjYWxsQmFjazsKK307CisKKy8qCisgKiBVc2VmdWwgV3JhcHBlciB1dGlsaXRpZXMKKyAqLwordGVtcGxhdGUgPGNsYXNzIFQ+Cit2b2lkIEluaXRPTVhQYXJhbXMoVCogcGFyYW1zKSB7CisgICAgcGFyYW1zLT5uU2l6ZSA9IHNpemVvZihUKTsKKyAgICBwYXJhbXMtPm5WZXJzaW9uLnMublZlcnNpb25NYWpvciA9IDE7CisgICAgcGFyYW1zLT5uVmVyc2lvbi5zLm5WZXJzaW9uTWlub3IgPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uUmV2aXNpb24gPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uU3RlcCA9IDA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBhcmFtKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgVCogcGFyYW1zKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgSW5pdE9NWFBhcmFtcyhwYXJhbXMpOworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX0lOREVYVFlQRSBvbXhJZHgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0UGFyYW1ldGVyKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBnZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIHJldHVybiBvbXhOb2RlLT5zZXRQYXJhbWV0ZXIodG9SYXdJbmRleFR5cGUob214SWR4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluSGlkbEJ5dGVzKHBhcmFtcywgc2l6ZW9mKCpwYXJhbXMpKSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBvcnRDb25maWcoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldENvbmZpZygKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0Q29uZmlnKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgT01YX1UzMiBuUG9ydEluZGV4LCBUKiBwYXJhbXMpIHsKKyAgICBJbml0T01YUGFyYW1zKHBhcmFtcyk7CisgICAgcGFyYW1zLT5uUG9ydEluZGV4ID0gblBvcnRJbmRleDsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0Q29uZmlnKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCisvKgorICogY29tbW9uIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMKKyAqLwordm9pZCBhbGxvY2F0ZVBvcnRCdWZmZXJzKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRNb2RlIHBvcnRNb2RlID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUik7CisKK3ZvaWQgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydE1vZGUqIHBvcnRNb2RlID0gbnVsbHB0cik7CisKK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcik7CisKK3ZvaWQgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcik7CisKK3NpemVfdCBnZXRFbXB0eUJ1ZmZlcklEKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5KTsKKwordm9pZCBkaXNwYXRjaE91dHB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydE1vZGUgcG9ydE1vZGUgPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSKTsKKwordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCk7CisKK3ZvaWQgZmx1c2hQb3J0cyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBpbnQ2NF90IHRpbWVvdXRVcyA9IERFRkFVTFRfVElNRU9VVCk7CisKK3ZvaWQgdGVzdEVPUyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgYm9vbCBzaWduYWxFT1MsCisgICAgICAgICAgICAgYm9vbCYgZW9zRmxhZywgUG9ydE1vZGUqIHBvcnRNb2RlID0gbnVsbHB0cik7CisKKyNlbmRpZiAgLy8gTUVESUFfSElETF9URVNUX0NPTU1PTl9ICmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudC9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDMyMTBmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvQW5kcm9pZC5icApAQCAtMCwwICsxLDQ3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlic3RhZ2VmcmlnaHRfZm91bmRhdGlvbiIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICAgICAgICAgICAgICAgICJWdHNIYWxNZWRpYU9teFYxXzBDb21tb25VdGlsIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICAgICAgImhhcmR3YXJlL2ludGVyZmFjZXMvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzllODg2NAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QuY3BwCkBAIC0wLDAgKzEsMTE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfY29tcG9uZW50X3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLVJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIGdlbmVyaWMgY29tcG9uZW50IHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQ29tcG9uZW50SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9IG5ldyBDb2RlY09ic2VydmVyKG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9DbGFzcyB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBDbGFzczsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcENsYXNzIENvbXBDbGFzczsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9DbGFzcyBrU3RyaW5nVG9DbGFzc1tdID0geworICAgICAgICAgICAgeyJhdWRpb19kZWNvZGVyIiwgYXVkaW9fZGVjb2Rlcn0sCisgICAgICAgICAgICB7ImF1ZGlvX2VuY29kZXIiLCBhdWRpb19lbmNvZGVyfSwKKyAgICAgICAgICAgIHsidmlkZW9fZGVjb2RlciIsIHZpZGVvX2RlY29kZXJ9LAorICAgICAgICAgICAgeyJ2aWRlb19lbmNvZGVyIiwgdmlkZW9fZW5jb2Rlcn0sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9DbGFzcyA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvQ2xhc3MpIC8gc2l6ZW9mKGtTdHJpbmdUb0NsYXNzWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cikgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdWJzdHJpbmdbcGNoIC0gc3Vic3RyaW5nXSA9ICdcMCc7CisgICAgICAgIGNvbXBDbGFzcyA9IHVua25vd25fY2xhc3M7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvQ2xhc3M7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHN1YnN0cmluZywga1N0cmluZ1RvQ2xhc3NbaV0uQ2xhc3MpKSB7CisgICAgICAgICAgICAgICAgY29tcENsYXNzID0ga1N0cmluZ1RvQ2xhc3NbaV0uQ29tcENsYXNzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gdW5rbm93bl9jbGFzcykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcENsYXNzIHsKKyAgICAgICAgYXVkaW9fZGVjb2RlciwKKyAgICAgICAgYXVkaW9fZW5jb2RlciwKKyAgICAgICAgdmlkZW9fZGVjb2RlciwKKyAgICAgICAgdmlkZW9fZW5jb2RlciwKKyAgICAgICAgdW5rbm93bl9jbGFzcywKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcENsYXNzIGNvbXBDbGFzczsKKyAgICBib29sIGRpc2FibGVUZXN0OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyBSYW5kb20gSW5kZXggdXNlZCBmb3IgbW9ua2V5IHRlc3Rpbmcgd2hpbGUgZ2V0L3NldCBwYXJhbWV0ZXJzCisjZGVmaW5lIFJBTkRPTV9JTkRFWCAxNzI5CisKKy8vIGdldC9zZXQgdmlkZW8gY29tcG9uZW50IHBvcnQgZm9ybWF0CitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0VmlkZW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCwKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfVklERU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQ09MT1JfRk9STUFUVFlQRT4gYXJyQ29sb3JGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX1ZJREVPX0NPRElOR1RZUEU+IGFyckNvbXByZXNzaW9uRm9ybWF0OworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBpbmRleDsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkKKyAgICAgICAgICAgIGFyckNvbG9yRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFyckNvbXByZXNzaW9uRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCk7CisgICAgICAgIGluZGV4Kys7CisgICAgICAgIGlmIChpbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55IGZvcm1hdHMsIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvCisgICAgICAgICAgICAvLyBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUoaW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWluZGV4KSByZXR1cm4gc3RhdHVzOworICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJDb2xvckZvcm1hdC5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChhcnJDb2xvckZvcm1hdFtpbmRleF0gPT0gZUNvbG9yRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBhcnJDb2xvckZvcm1hdFtpbmRleF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID09IGFyckNvbG9yRm9ybWF0LnNpemUoKSkgeworICAgICAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBjb2xvciBmb3JtYXQgJXgiLCAoaW50KWFyckNvbG9yRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gYXJyQ29sb3JGb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBPTVhfVklERU9fQ29kaW5nVW51c2VkOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckNvbXByZXNzaW9uRm9ybWF0LnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XSA9PSBlQ29tcHJlc3Npb25Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT0gYXJyQ29tcHJlc3Npb25Gb3JtYXQuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IGNvbXByZXNzaW9uIGZvcm1hdCAleCIsCisgICAgICAgICAgICAgICAgICAoaW50KWFyckNvbXByZXNzaW9uRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gYXJyQ29tcHJlc3Npb25Gb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0VW51c2VkOworICAgIH0KKyAgICAvLyBJbiBzZXRQYXJhbSBjYWxsIG5JbmRleCBzaGFsbCBiZSBpZ25vcmVkIGFzIHBlciBvbXgtaWwgc3BlY2lmaWNhdGlvbi4KKyAgICAvLyBzZWUgaG93IHRoaXMgaG9sZHMgdXAgYnkgY29ycnVwdGluZyBuSW5kZXgKKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IFJBTkRPTV9JTkRFWDsKKyAgICBwb3J0Rm9ybWF0LnhGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLy8gZ2V0L3NldCBhdWRpbyBjb21wb25lbnQgcG9ydCBmb3JtYXQKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRBdWRpb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfQVVESU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQVVESU9fQ09ESU5HVFlQRT4gYXJyRW5jb2Rpbmc7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IGluZGV4OworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSBicmVhazsKKyAgICAgICAgYXJyRW5jb2RpbmcucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUVuY29kaW5nKTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgaWYgKGluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnkgZm9ybWF0cywgaGlnaGx5IHVudXN1YWwgZm9yIHRoaXMgdG8KKyAgICAgICAgICAgIC8vIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShpbmRleCwgNTEyVSkKKyAgICAgICAgICAgICAgICA8PCAiRXhwZWN0aW5nIE9NWF9FcnJvck5vTW9yZSBidXQgbm90IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghaW5kZXgpIHJldHVybiBzdGF0dXM7CisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyRW5jb2Rpbmcuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgIGlmIChhcnJFbmNvZGluZ1tpbmRleF0gPT0gZUVuY29kaW5nKSB7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVFbmNvZGluZyA9IGFyckVuY29kaW5nW2luZGV4XTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmIChpbmRleCA9PSBhcnJFbmNvZGluZy5zaXplKCkpIHsKKyAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBQb3J0IGZvcm1hdCAleCIsIChpbnQpYXJyRW5jb2RpbmdbMF0pOworICAgICAgICBwb3J0Rm9ybWF0LmVFbmNvZGluZyA9IGFyckVuY29kaW5nWzBdOworICAgIH0KKyAgICAvLyBJbiBzZXRQYXJhbSBjYWxsIG5JbmRleCBzaGFsbCBiZSBpZ25vcmVkIGFzIHBlciBvbXgtaWwgc3BlY2lmaWNhdGlvbi4KKyAgICAvLyBzZWUgaG93IHRoaXMgaG9sZHMgdXAgYnkgY29ycnVwdGluZyBuSW5kZXgKKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IFJBTkRPTV9JTkRFWDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldFJvbGUoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIGNvbnN0IGNoYXIqIHJvbGUpIHsKKyAgICBPTVhfUEFSQU1fQ09NUE9ORU5UUk9MRVRZUEUgcGFyYW1zOworICAgIHN0cmNweSgoY2hhciopcGFyYW1zLmNSb2xlLCByb2xlKTsKKyAgICByZXR1cm4gc2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1TdGFuZGFyZENvbXBvbmVudFJvbGUsICZwYXJhbXMpOworfQorCisvLyB0ZXN0IGRpc3BhdGNoIG1lc3NhZ2UgQVBJIGNhbGwKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgZGlzcGF0Y2hNc2cpIHsKKyAgICBkZXNjcmlwdGlvbigidGVzdCBkaXNwYXRjaCBtZXNzYWdlIEFQSSBjYWxsIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2dpbiwgbXNnb3V0OworCisgICAgbXNnaW4udHlwZSA9IE1lc3NhZ2U6OlR5cGU6OkVWRU5UOworCisgICAgLy8gZGlzcGF0Y2ggRU9TIGV2ZW50LCBub3JtYWxseSB0aGlzIGlzIGJ5IGNvbXBvbmVudCB3aGVuIGl0IHJlY2VpdmVzIGEKKyAgICAvLyBFT1MgZmxhZworICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmV2ZW50ID0gT01YX0V2ZW50QnVmZmVyRmxhZzsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSA9IDBVOworICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGEyID0gKHVpbnQzMl90KU9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5kaXNwYXRjaE1lc3NhZ2UobXNnaW4pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnb3V0LCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LnR5cGUsIG1zZ2luLnR5cGUpOworICAgIEFTU0VSVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZXZlbnQsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGExLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSk7CisgICAgQVNTRVJUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIpOworCisgICAgLy8gZGlzcGF0Y2ggZGF0YXNwYWNlIGNoYW5nZWQgZXZlbnQKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5ldmVudCA9IE9NWF9FdmVudERhdGFTcGFjZUNoYW5nZWQ7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTEgPSAyODExNDk0NDBVOyAgLy8gVjBfQlQ2MDFfNjI1OworICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGEyID0gMHgxMTExOworICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGEzID0gMHgyNDsgIC8vIFJBV19PUEFRVUUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5kaXNwYXRjaE1lc3NhZ2UobXNnaW4pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnb3V0LCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LnR5cGUsIG1zZ2luLnR5cGUpOworICAgIEFTU0VSVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZXZlbnQsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGExLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSk7CisgICAgQVNTRVJUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIpOworfQorCisvLyBzZXQgY29tcG9uZW50IHJvbGUKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGluZGljZXMgZW51bWVyYXRpb24KK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgR2V0UG9ydEluZGljZXMpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBJbmRpY2VzKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBHZXQgTnVtYmVyIG9mIFBvcnRzIGFuZCB0aGVpciBJbmRpY2VzIGZvciBhbGwgRG9tYWlucworICAgIC8vIChBdWRpby9WaWRlby9JbWFnZS9PdGhlcikKKyAgICAvLyBBbGwgc3RhbmRhcmQgT01YIGNvbXBvbmVudHMgc2hhbGwgc3VwcG9ydCBmb2xsb3dpbmcgT01YIEluZGV4IHR5cGVzCisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUltYWdlSW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1PdGhlckluaXQsICZwYXJhbXMpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUgPSAyNFUgPDwgMTY7CisKKyAgICAvLyBFbnVtZXJhdGUgUG9ydCBGb3JtYXQKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9BVURJT19Db2RpbmdQQ00pOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0QXVkaW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ29kaW5nQXV0b0RldGVjdCk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0gZWxzZSBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gc2V0QXVkaW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19Db2RpbmdBdXRvRGV0ZWN0KTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0gZWxzZSBpZiAoY29tcENsYXNzID09IHZpZGVvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCB4RnJhbWVyYXRlKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0NvZGluZ0F1dG9EZXRlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRm9ybWF0VW51c2VkLCAwVSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nQXV0b0RldGVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQsIDBVKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwgZUNvbG9yRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KK30KKworLy8gZ2V0L3NldCBkZWZhdWx0IHBvcnQgc2V0dGluZ3Mgb2YgYSBjb21wb25lbnQKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgU2V0RGVmYXVsdFBvcnRQYXJhbXMpIHsKKyAgICBkZXNjcmlwdGlvbigKKyAgICAgICAgIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRGVmaW5pdGlvbikiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIC8vIHIvdyBkZWZhdWx0IGkvbyBwb3J0IHBhcmFtZXRlcnMKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIGlQb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBFWFBFQ1RfRVEoaVBvcnREZWYuZURpciwgT01YX0RpcklucHV0KTsKKyAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLmJFbmFibGVkLCBPTVhfVFJVRSk7CisgICAgICAgIEVYUEVDVF9FUShpUG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworICAgICAgICBFWFBFQ1RfR0UoaVBvcnREZWYubkJ1ZmZlckNvdW50TWluLCAxVSk7CisgICAgICAgIEVYUEVDVF9HRShpUG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwsIGlQb3J0RGVmLm5CdWZmZXJDb3VudE1pbik7CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluQXVkaW8pOworICAgICAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyKSB7CisgICAgICAgICAgICAgICAgaVBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY29tcENsYXNzID09IHZpZGVvX2VuY29kZXIgfHwgY29tcENsYXNzID09IHZpZGVvX2RlY29kZXIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShpUG9ydERlZi5lRG9tYWluLCBPTVhfUG9ydERvbWFpblZpZGVvKTsKKyAgICAgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZGVjb2RlcikgeworICAgICAgICAgICAgICAgIGlQb3J0RGVmLmZvcm1hdC52aWRlby5iRmxhZ0Vycm9yQ29uY2VhbG1lbnQgPSBPTVhfVFJVRTsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmaVBvcnREZWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIGR1bW15ID0gaVBvcnREZWY7CisgICAgICAgIGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IGlQb3J0RGVmLm5CdWZmZXJDb3VudE1pbiAtIDE7CisgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmaVBvcnREZWYpOworICAgICAgICBFWFBFQ1RfTkUoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgLy8gRWRpdCBSZWFkLU9ubHkgZmllbGRzLgorICAgICAgICBpUG9ydERlZi5lRGlyID0gT01YX0Rpck91dHB1dDsgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBpUG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwgPSBkdW1teS5uQnVmZmVyQ291bnRBY3R1YWwgPDwgMTsKKyAgICAgICAgaVBvcnREZWYubkJ1ZmZlckNvdW50TWluID0gZHVtbXkubkJ1ZmZlckNvdW50TWluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDE7ICAgICAgICAgICAgICAgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBpUG9ydERlZi5uQnVmZmVyU2l6ZSA9IGR1bW15Lm5CdWZmZXJTaXplIDw8IDE7ICAvLyBSZWFkIE9ubHkgZmllbGQKKyAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIEVYUEVDVF9FUShpUG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwsIGR1bW15Lm5CdWZmZXJDb3VudEFjdHVhbCA8PCAxKTsKKyAgICAgICAgaWYgKChpUG9ydERlZi5lRGlyICE9IE9NWF9EaXJJbnB1dCkgfHwKKyAgICAgICAgICAgIChpUG9ydERlZi5uQnVmZmVyQ291bnRNaW4gIT0gZHVtbXkubkJ1ZmZlckNvdW50TWluKSB8fAorICAgICAgICAgICAgKGlQb3J0RGVmLm5CdWZmZXJTaXplICE9IGR1bW15Lm5CdWZmZXJTaXplKSkgeworICAgICAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIENvbXBvbmVudCBpbnB1dCBwb3J0IGRvZXMgbm90ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicHJlc2VydmUgUmVhZC1Pbmx5IGZpZWxkcyBcbiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIG9Qb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBFWFBFQ1RfRVEob1BvcnREZWYuZURpciwgT01YX0Rpck91dHB1dCk7CisgICAgICAgIEVYUEVDVF9FUShvUG9ydERlZi5iRW5hYmxlZCwgT01YX1RSVUUpOworICAgICAgICBFWFBFQ1RfRVEob1BvcnREZWYuYlBvcHVsYXRlZCwgT01YX0ZBTFNFKTsKKyAgICAgICAgRVhQRUNUX0dFKG9Qb3J0RGVmLm5CdWZmZXJDb3VudE1pbiwgMVUpOworICAgICAgICBFWFBFQ1RfR0Uob1BvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLCBvUG9ydERlZi5uQnVmZmVyQ291bnRNaW4pOworICAgICAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShvUG9ydERlZi5lRG9tYWluLCBPTVhfUG9ydERvbWFpbkF1ZGlvKTsKKyAgICAgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICAgICAgICAgIG9Qb3J0RGVmLmZvcm1hdC5hdWRpby5iRmxhZ0Vycm9yQ29uY2VhbG1lbnQgPSBPTVhfVFJVRTsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgJm9Qb3J0RGVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gdmlkZW9fZGVjb2RlcikgeworICAgICAgICAgICAgRVhQRUNUX0VRKG9Qb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluVmlkZW8pOworICAgICAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSB2aWRlb19lbmNvZGVyKSB7CisgICAgICAgICAgICAgICAgb1BvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIGR1bW15ID0gb1BvcnREZWY7CisgICAgICAgIG9Qb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IG9Qb3J0RGVmLm5CdWZmZXJDb3VudE1pbiAtIDE7CisgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgJm9Qb3J0RGVmKTsKKyAgICAgICAgRVhQRUNUX05FKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIC8vIEVkaXQgUmVhZC1Pbmx5IGZpZWxkcy4KKyAgICAgICAgb1BvcnREZWYuZURpciA9IE9NWF9EaXJJbnB1dDsgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBvUG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwgPSBkdW1teS5uQnVmZmVyQ291bnRBY3R1YWwgPDwgMTsKKyAgICAgICAgb1BvcnREZWYubkJ1ZmZlckNvdW50TWluID0gZHVtbXkubkJ1ZmZlckNvdW50TWluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDE7ICAgICAgICAgICAgICAgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBvUG9ydERlZi5uQnVmZmVyU2l6ZSA9IGR1bW15Lm5CdWZmZXJTaXplIDw8IDE7ICAvLyBSZWFkIE9ubHkgZmllbGQKKyAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgRVhQRUNUX0VRKG9Qb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCwgZHVtbXkubkJ1ZmZlckNvdW50QWN0dWFsIDw8IDEpOworICAgICAgICBpZiAoKG9Qb3J0RGVmLmVEaXIgIT0gT01YX0Rpck91dHB1dCkgfHwKKyAgICAgICAgICAgIChvUG9ydERlZi5uQnVmZmVyQ291bnRNaW4gIT0gZHVtbXkubkJ1ZmZlckNvdW50TWluKSB8fAorICAgICAgICAgICAgKG9Qb3J0RGVmLm5CdWZmZXJTaXplICE9IGR1bW15Lm5CdWZmZXJTaXplKSkgeworICAgICAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIENvbXBvbmVudCBvdXRwdXQgcG9ydCBkb2VzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAibm90IHByZXNlcnZlIFJlYWQtT25seSBmaWVsZHMgXG4iOworICAgICAgICB9CisgICAgfQorfQorCisvLyBwb3B1bGF0ZSBwb3J0IHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgUG9wdWxhdGVQb3J0KSB7CisgICAgZGVzY3JpcHRpb24oIlZlcmlmeSBiUG9wdWxhdGVkIGZpZWxkIG9mIGEgY29tcG9uZW50IHBvcnQiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVTMyIHBvcnRCYXNlID0gMDsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisKKyAgICBzcDxJQWxsb2NhdG9yPiBhbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYWxsb2NhdG9yLmdldCgpLCBudWxscHRyKTsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEJhc2UsICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEocG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IHBCdWZmZXI7CisgICAgcEJ1ZmZlci5jbGVhcigpOworICAgIHVpbnQzMl90IG5CdWZmZXJTaXplID0gcG9ydERlZi5uQnVmZmVyU2l6ZSA+PiAxOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgbkJ1ZmZlclNpemUsCisgICAgICAgICAgICBbJnN1Y2Nlc3MsICZidWZmZXJdKGJvb2wgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5IGNvbnN0JiBtZW0pIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkgPSBtZW07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX0VRKHN1Y2Nlc3MsIHRydWUpOworICAgICAgICBBU1NFUlRfRVEoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkuc2l6ZSgpLCBuQnVmZmVyU2l6ZSk7CisKKyAgICAgICAgb214Tm9kZS0+dXNlQnVmZmVyKAorICAgICAgICAgICAgcG9ydEJhc2UsIGJ1ZmZlci5vbXhCdWZmZXIsCisgICAgICAgICAgICBbJnN0YXR1cywgJmJ1ZmZlcl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZCkgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgIGJ1ZmZlci5pZCA9IGlkOworICAgICAgICAgICAgfSk7CisgICAgICAgIHBCdWZmZXIucHVzaChidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEJhc2UsICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAvLyBBIHBvcnQgaXMgcG9wdWxhdGVkIHdoZW4gYWxsIG9mIHRoZSBidWZmZXJzIGluZGljYXRlZCBieQorICAgIC8vIG5CdWZmZXJDb3VudEFjdHVhbCB3aXRoIGEgc2l6ZSBvZiBhdCBsZWFzdCBuQnVmZmVyU2l6ZWhhdmUgYmVlbgorICAgIC8vIGFsbG9jYXRlZCBvbiB0aGUgcG9ydC4KKyAgICBBU1NFUlRfRVEocG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworfQorCisvLyBGbHVzaCB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIEZsdXNoKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgRmx1c2giKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gZGlzcGF0Y2ggYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCAmb0J1ZmZlciwgaSk7CisgICAgfQorICAgIC8vIGZsdXNoIHBvcnQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCAmaUJ1ZmZlciwgaSwgMCwgMCwgMCk7CisgICAgfQorICAgIC8vIGZsdXNoIHBvcnRzCisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gbG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBzdGF0ZSB0cmFuc2l0aW9ucyB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFN0YXRlVHJhbnNpdGlvbnMpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTdGF0ZSBUcmFuc2l0aW9ucyBMb2FkZWQ8LT5JZGxlPC0+RXhlY3V0ZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsICZvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gZGlzcGF0Y2ggYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsICZpQnVmZmVyLCBpLCAwLCAwLCAwKTsKKyAgICB9CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGxvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gc3RhdGUgdHJhbnNpdGlvbnMgdGVzdCAtIG1vbmtleWluZworVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTdGF0ZVRyYW5zaXRpb25zX00pIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTdGF0ZSBUcmFuc2l0aW9ucyBtb25rZXlpbmciKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGxvYWRlZCA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9yU2FtZVN0YXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcgOyByZWNlaXZlIGVycm9yIE9NWF9FcnJvckluY29ycmVjdFN0YXRlVHJhbnNpdGlvbgorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlRXhlY3V0aW5nKTsKKyAgICBFWFBFQ1RfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlIDsgcmVjZWl2ZSBlcnJvciBPTVhfRXJyb3JTYW1lU3RhdGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUlkbGUpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZyA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9yU2FtZVN0YXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQgOyByZWNlaXZlIGVycm9yIE9NWF9FcnJvckluY29ycmVjdFN0YXRlVHJhbnNpdGlvbgorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlTG9hZGVkKTsKKyAgICBFWFBFQ1RfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHBvcnQgZW5hYmxlIGRpc2FibGUgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBQb3J0RW5hYmxlRGlzYWJsZV9Mb2FkZWQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSAoQ29tcG9uZW50IFN0YXRlIDo6IExvYWRlZCkiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVTMyIHBvcnRCYXNlID0gMDsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIHBvcnRCYXNlID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IHBvcnRCYXNlOyBpIDwgcG9ydEJhc2UgKyAyOyBpKyspIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIGkpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZW5hYmxlIGl0CisgICAgICAgICAgICAvLyBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGkpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKyAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQb3J0ICVkIERpc2FibGluZyBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIChpbnQpaSwKKyAgICAgICAgICAgICAgICAgIChpbnQpbXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgZW5hYmxlIGRpc2FibGUgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBQb3J0RW5hYmxlRGlzYWJsZV9JZGxlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgUG9ydCBFbmFibGUgYW5kIERpc2FibGUgKENvbXBvbmVudCBTdGF0ZSA6OiBJZGxlKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisgICAga1BvcnRJbmRleElucHV0ID0gcG9ydEJhc2U7CisgICAga1BvcnRJbmRleE91dHB1dCA9IHBvcnRCYXNlICsgMTsKKworICAgIC8vIENvbXBvbmVudCBTdGF0ZSA6OiBJZGxlCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IHBCdWZmZXJbMl07CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSBwb3J0QmFzZTsgaSA8IHBvcnRCYXNlICsgMjsgaSsrKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBpKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsICZwQnVmZmVyWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMV0pOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBub3QgZGlzYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiUG9ydCAlZCBEaXNhYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT0KKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcEJ1ZmZlcltpIC0gcG9ydEJhc2VdLnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihpLCBwQnVmZmVyW2kgLSBwb3J0QmFzZV1bal0uaWQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworCisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0byBlbmFibGUgaXQKKyAgICAgICAgICAgIC8vIGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgaSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIC8vIGRvIG5vdCBlbmFibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBzdXBwbGllZAorICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgICAgICAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsICZwQnVmZmVyW2kgLSBwb3J0QmFzZV0sIGkpOworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFBvcnRFbmFibGVEaXNhYmxlX0V4ZWN1dGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSAoQ29tcG9uZW50IFN0YXRlIDo6IEV4ZWN1dGUpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgT01YX1UzMiBwb3J0QmFzZSA9IDA7CisgICAgTWVzc2FnZSBtc2c7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKyAgICBrUG9ydEluZGV4SW5wdXQgPSBwb3J0QmFzZTsKKyAgICBrUG9ydEluZGV4T3V0cHV0ID0gcG9ydEJhc2UgKyAxOworCisgICAgLy8gQ29tcG9uZW50IFN0YXRlIDo6IElkbGUKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gcEJ1ZmZlclsyXTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwQnVmZmVyWzFdLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsICZwQnVmZmVyWzFdLCBpKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gcG9ydEJhc2U7IGkgPCBwb3J0QmFzZSArIDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwgaSk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCAmcEJ1ZmZlclswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzFdKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gbm90IGRpc2FibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBmcmVlZAorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgICAgIChpbnQpbXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09CisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHBCdWZmZXJbaSAtIHBvcnRCYXNlXS5zaXplKCk7ICsraikgeworICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShwQnVmZmVyW2kgLSBwb3J0QmFzZV1bal0ub3duZXIsIGNsaWVudCk7CisgICAgICAgICAgICAgICAgLy8gZnJlZSB0aGUgYnVmZmVycworICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoaSwgcEJ1ZmZlcltpIC0gcG9ydEJhc2VdW2pdLmlkKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKworICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZW5hYmxlIGl0CisgICAgICAgICAgICAvLyBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGkpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAvLyBkbyBub3QgZW5hYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgc3VwcGxpZWQKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgICAgICAgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCAmcEJ1ZmZlcltpIC0gcG9ydEJhc2VdLCBpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHNldCBzdGF0ZSB0byBJZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0IC0gbW9ua2V5aW5nCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFBvcnRFbmFibGVEaXNhYmxlX00pIHsKKyAgICBkZXNjcmlwdGlvbigKKyAgICAgICAgIlRlc3QgUG9ydCBFbmFibGUgYW5kIERpc2FibGUgTW9ua2V5aW5nIChDb21wb25lbnQgU3RhdGUgOjogTG9hZGVkKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisKKyAgICAvLyBkaXNhYmxlIGludmFsaWQgcG9ydCwgZXhwZWN0aW5nIE9NWF9FcnJvckJhZFBvcnRJbmRleAorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFORE9NX0lOREVYKTsKKyAgICBBU1NFUlRfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBlbmFibGUgaW52YWxpZCBwb3J0LCBleHBlY3RpbmcgT01YX0Vycm9yQmFkUG9ydEluZGV4CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnRFbmFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJBTkRPTV9JTkRFWCk7CisgICAgQVNTRVJUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZGlzYWJsZSBhbGwgcG9ydHMKKyAgICBzdGF0dXMgPQorICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBPTVhfQUxMKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSB8fAorICAgICAgICAgICAgICAgIG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSArIDEpCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGVuYWJsZSBhbGwgcG9ydHMKKyAgICBzdGF0dXMgPQorICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIE9NWF9BTEwpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRDbWRDb21wbGV0ZSkgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgIT0gcG9ydEJhc2UgfHwKKyAgICAgICAgICAgICAgICBtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgIT0gcG9ydEJhc2UgKyAxKQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQb3J0ICVkIEVuYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZGJmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzggQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNjZjMjUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0LmNwcApAQCAtMCwwICsxLDE4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfbWFzdGVyX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teFN0b3JlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldEluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaW5zdGFuY2U7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKK2NsYXNzIE1hc3RlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIG9teFN0b3JlID0gbnVsbHB0cjsKKyAgICAgICAgb214U3RvcmUgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214U3RvcmU+KCk7CisgICAgICAgIEFTU0VSVF9ORShvbXhTdG9yZSwgbnVsbHB0cik7CisgICAgICAgIG9teCA9IG51bGxwdHI7CisgICAgICAgIG9teCA9IG9teFN0b3JlLT5nZXRPbXgoZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgICBzcDxJT214U3RvcmU+IG9teFN0b3JlOworICAgIHNwPElPbXg+IG9teDsKKworICAgcHJvdGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgICAgICBSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCBkZXNjcmlwdGlvbik7CisgICAgfQorfTsKKwordm9pZCBkaXNwbGF5Q29tcG9uZW50SW5mbyhoaWRsX3ZlYzxJT214OjpDb21wb25lbnRJbmZvPiYgbm9kZUxpc3QpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5vZGVMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgIHByaW50ZigiJXMgfCAiLCBub2RlTGlzdFtpXS5tTmFtZS5jX3N0cigpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCAoKG5vZGVMaXN0W2ldKS5tUm9sZXMpLnNpemUoKTsgaisrKSB7CisgICAgICAgICAgICBwcmludGYoIiVzICIsIG5vZGVMaXN0W2ldLm1Sb2xlc1tqXS5jX3N0cigpKTsKKyAgICAgICAgfQorICAgICAgICBwcmludGYoIlxuIik7CisgICAgfQorfQorCisvLyBsaXN0IHNlcnZpY2UgYXR0cmlidXRlcworVEVTVF9GKE1hc3RlckhpZGxUZXN0LCBMaXN0U2VydmljZUF0dHIpIHsKKyAgICBkZXNjcmlwdGlvbigibGlzdCBzZXJ2aWNlIGF0dHJpYnV0ZXMiKTsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBoaWRsX3ZlYzxJT214U3RvcmU6OkF0dHJpYnV0ZT4gYXR0cmlidXRlczsKKyAgICBFWFBFQ1RfVFJVRShvbXhTdG9yZQorICAgICAgICAgICAgICAgICAgICAtPmxpc3RTZXJ2aWNlQXR0cmlidXRlcyhbJnN0YXR1cywgJmF0dHJpYnV0ZXNdKAorICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPElPbXhTdG9yZTo6QXR0cmlidXRlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgIGlmIChhdHRyaWJ1dGVzLnNpemUoKSA9PSAwKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgQXR0cmlidXRlIGxpc3QgZW1wdHkgXG4iOworfQorCisvLyBnZXQgbm9kZSBwcmVmaXgKK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgZ2V0Tm9kZVByZWZpeCkgeworICAgIGRlc2NyaXB0aW9uKCJnZXQgbm9kZSBwcmVmaXgiKTsKKyAgICBoaWRsX3N0cmluZyBwcmVmaXg7CisgICAgb214U3RvcmUtPmdldE5vZGVQcmVmaXgoCisgICAgICAgIFsmcHJlZml4XShoaWRsX3N0cmluZyBjb25zdCYgX25sKSB7IHByZWZpeCA9IF9ubDsgfSk7CisgICAgaWYgKHByZWZpeC5lbXB0eSgpKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgTm9kZSBQcmVmaXggZW1wdHkgXG4iOworfQorCisvLyBsaXN0IHJvbGVzCitURVNUX0YoTWFzdGVySGlkbFRlc3QsIExpc3RSb2xlcykgeworICAgIGRlc2NyaXB0aW9uKCJsaXN0IHJvbGVzIik7CisgICAgaGlkbF92ZWM8SU9teFN0b3JlOjpSb2xlSW5mbz4gcm9sZUxpc3Q7CisgICAgb214U3RvcmUtPmxpc3RSb2xlcyhbJnJvbGVMaXN0XShoaWRsX3ZlYzxJT214U3RvcmU6OlJvbGVJbmZvPiBjb25zdCYgX25sKSB7CisgICAgICAgIHJvbGVMaXN0ID0gX25sOworICAgIH0pOworICAgIGlmIChyb2xlTGlzdC5zaXplKCkgPT0gMCkKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIFJvbGVJbmZvIGxpc3QgZW1wdHkgXG4iOworfQorCisvLyBsaXN0IGNvbXBvbmVudHMgYW5kIHJvbGVzCitURVNUX0YoTWFzdGVySGlkbFRlc3QsIExpc3ROb2RlcykgeworICAgIGRlc2NyaXB0aW9uKCJlbnVtZXJhdGUgY29tcG9uZW50IGFuZCByb2xlcyIpOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIGhpZGxfdmVjPElPbXg6OkNvbXBvbmVudEluZm8+IG5vZGVMaXN0OworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICBvbXgtPmxpc3ROb2RlcyhbJnN0YXR1cywgJm5vZGVMaXN0XSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxJT214OjpDb21wb25lbnRJbmZvPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgIG5vZGVMaXN0ID0gX25sOworICAgICAgICAgICB9KQorICAgICAgICAgICAgLmlzT2soKSk7CisgICAgaWYgKG5vZGVMaXN0LnNpemUoKSA9PSAwKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgQ29tcG9uZW50SW5mbyBsaXN0IGVtcHR5IFxuIjsKKyAgICBlbHNlCisgICAgICAgIGRpc3BsYXlDb21wb25lbnRJbmZvKG5vZGVMaXN0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vQW5kcm9pZC5icCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTk0ZjNiCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODUgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0RlY1Rlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRGVjVGVzdC5jcHAiLAorICAgICAgICAgICAibWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlic3RhZ2VmcmlnaHRfZm91bmRhdGlvbiIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICAgICAgICAgICAgICAgICJWdHNIYWxNZWRpYU9teFYxXzBDb21tb25VdGlsIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICAgICAgImhhcmR3YXJlL2ludGVyZmFjZXMvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgIF0sCit9CisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0VuY1Rlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRW5jVGVzdC5jcHAiLAorICAgICAgICAgICAibWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlibmF0aXZld2luZG93IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiLAorICAgICAgICAgICAgICAgICAgIlZ0c0hhbE1lZGlhT214VjFfMENvbW1vblV0aWwiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2FmNjk3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0RlY1Rlc3QuY3BwCkBAIC0wLDAgKzEsMTE4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfdmlkZW9fZGVjX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpLCByZXMoIi9zZGNhcmQvbWVkaWEvIikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICB2b2lkIHNldENvbXBvbmVudChjb25zdCBjaGFyKiBfY29tcG9uZW50KSB7IGNvbXBvbmVudCA9IF9jb21wb25lbnQ7IH0KKworICAgIHZvaWQgc2V0Um9sZShjb25zdCBjaGFyKiBfcm9sZSkgeyByb2xlID0gX3JvbGU7IH0KKworICAgIHZvaWQgc2V0UmVzKGNvbnN0IGNoYXIqIF9yZXMpIHsgcmVzID0gX3JlczsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0UmVzKCkgY29uc3QgeyByZXR1cm4gcmVzOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sCisgICAgICAgICAgICB7ImNvbXBvbmVudCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnQyd9LAorICAgICAgICAgICAgeyJyb2xlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdSJ30sCisgICAgICAgICAgICB7InJlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUCd9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOlA6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9uZW50KG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBzZXRSb2xlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICAgICAgICAgICAgICBzZXRSZXMob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1DLCAtLWNvbXBvbmVudDogT01YIGNvbXBvbmVudCB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItUiwgLS1yb2xlOiBPTVggY29tcG9uZW50IFJvbGVcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1QLCAtLXJlczogUmVzb3VyY2UgZmlsZXMgZGlyZWN0b3J5IGxvY2F0aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7CisgICAgaGlkbF9zdHJpbmcgY29tcG9uZW50OworICAgIGhpZGxfc3RyaW5nIHJvbGU7CisgICAgaGlkbF9zdHJpbmcgcmVzOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIHZpZGVvIGRlY29kZXIgdGVzdCBmaXh0dXJlIGNsYXNzCitjbGFzcyBWaWRlb0RlY0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGRpc2FibGVUZXN0ID0gZmFsc2U7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBvbXggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214PigKKyAgICAgICAgICAgIGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICAgICAgb2JzZXJ2ZXIgPQorICAgICAgICAgICAgbmV3IENvZGVjT2JzZXJ2ZXIoW3RoaXNdKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVNZXNzYWdlKG1zZywgYnVmZmVyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9OYW1lIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIE5hbWU7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgIH07CisgICAgICAgIGNvbnN0IFN0cmluZ1RvTmFtZSBrU3RyaW5nVG9OYW1lW10gPSB7CisgICAgICAgICAgICB7ImgyNjMiLCBoMjYzfSwgeyJhdmMiLCBhdmN9LCB7Im1wZWcyIiwgbXBlZzJ9LCB7Im1wZWc0IiwgbXBlZzR9LAorICAgICAgICAgICAgeyJoZXZjIiwgaGV2Y30sIHsidnA4IiwgdnA4fSwgeyJ2cDkiLCB2cDl9LAorICAgICAgICB9OworICAgICAgICBjb25zdCBzaXplX3Qga051bVN0cmluZ1RvTmFtZSA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvTmFtZSkgLyBzaXplb2Yoa1N0cmluZ1RvTmFtZVswXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBjaDsKKyAgICAgICAgY2hhciBzdWJzdHJpbmdbT01YX01BWF9TVFJJTkdOQU1FX1NJWkVdOworICAgICAgICBzdHJjcHkoc3Vic3RyaW5nLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgICAgIHBjaCA9IHN0cmNocihzdWJzdHJpbmcsICcuJyk7CisgICAgICAgIEFTU0VSVF9ORShwY2gsIG51bGxwdHIpOworICAgICAgICBjb21wTmFtZSA9IHVua25vd25fY29tcDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtU3RyaW5nVG9OYW1lOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghc3RyY2FzZWNtcChwY2ggKyAxLCBrU3RyaW5nVG9OYW1lW2ldLk5hbWUpKSB7CisgICAgICAgICAgICAgICAgY29tcE5hbWUgPSBrU3RyaW5nVG9OYW1lW2ldLkNvbXBOYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wTmFtZSA9PSB1bmtub3duX2NvbXApIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc3RydWN0IENvbXBUb0NvbXByZXNzaW9uIHsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IENvbXBUb0NvbXByZXNzaW9uIGtDb21wVG9Db21wcmVzc2lvbltdID0geworICAgICAgICAgICAge2gyNjMsIE9NWF9WSURFT19Db2RpbmdIMjYzfSwgICB7YXZjLCBPTVhfVklERU9fQ29kaW5nQVZDfSwKKyAgICAgICAgICAgIHttcGVnMiwgT01YX1ZJREVPX0NvZGluZ01QRUcyfSwge21wZWc0LCBPTVhfVklERU9fQ29kaW5nTVBFRzR9LAorICAgICAgICAgICAge2hldmMsIE9NWF9WSURFT19Db2RpbmdIRVZDfSwgICB7dnA4LCBPTVhfVklERU9fQ29kaW5nVlA4fSwKKyAgICAgICAgICAgIHt2cDksIE9NWF9WSURFT19Db2RpbmdWUDl9LAorICAgICAgICB9OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtOdW1Db21wVG9Db21wcmVzc2lvbiA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uKSAvIHNpemVvZihrQ29tcFRvQ29tcHJlc3Npb25bMF0pOworICAgICAgICBzaXplX3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGtOdW1Db21wVG9Db21wcmVzc2lvbjsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvbXByZXNzaW9uW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUNvbXByZXNzaW9uRm9ybWF0ID0ga0NvbXBUb0NvbXByZXNzaW9uW2ldLmVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBrTnVtQ29tcFRvQ29tcHJlc3Npb24pIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgcG9ydE1vZGVbMF0gPSBwb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgICAgIGVvc0ZsYWcgPSBmYWxzZTsKKyAgICAgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgICAgICB0aW1lc3RhbXBVcyA9IDA7CisgICAgICAgIHRpbWVzdGFtcERldlRlc3QgPSBmYWxzZTsKKyAgICAgICAgaXNTZWN1cmUgPSBmYWxzZTsKKyAgICAgICAgc2l6ZV90IHN1ZmZpeExlbiA9IHN0cmxlbigiLnNlY3VyZSIpOworICAgICAgICBpZiAoc3RybGVuKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCkpID49IHN1ZmZpeExlbikgeworICAgICAgICB9CisgICAgICAgIGlzU2VjdXJlID0gIXN0cmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSkgLSBzdWZmaXhMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiLnNlY3VyZSIpOworICAgICAgICBpZiAoaXNTZWN1cmUpIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGRpc2FibGVUZXN0KSBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgIFRlc3QgRGlzYWJsZWRcbiI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob214Tm9kZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgIG9teE5vZGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gY2FsbGJhY2sgZnVuY3Rpb24gdG8gcHJvY2VzcyBtZXNzYWdlcyByZWNlaXZlZCBieSBvbk1lc3NhZ2VzKCkgZnJvbSBJTAorICAgIC8vIGNsaWVudC4KKyAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZSBtc2csIGNvbnN0IEJ1ZmZlckluZm8qIGJ1ZmZlcikgeworICAgICAgICAodm9pZClidWZmZXI7CisgICAgICAgIGlmIChtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpGSUxMX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfRU9TKSB7CisgICAgICAgICAgICAgICAgZW9zRmxhZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgICAgICBmcmFtZXNSZWNlaXZlZCArPSAxOworICAgICAgICAgICAgICAgIC8vIEZvciBkZWNvZGVyIGNvbXBvbmVudHMgY3VycmVudCB0aW1lc3RhbXAgYWx3YXlzIGV4Y2VlZHMKKyAgICAgICAgICAgICAgICAvLyBwcmV2aW91cyB0aW1lc3RhbXAKKyAgICAgICAgICAgICAgICBFWFBFQ1RfR0UobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnRpbWVzdGFtcFVzLCB0aW1lc3RhbXBVcyk7CisgICAgICAgICAgICAgICAgdGltZXN0YW1wVXMgPSBtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEudGltZXN0YW1wVXM7CisgICAgICAgICAgICAgICAgLy8gVGVzdCBpZiBjdXJyZW50IHRpbWVzdGFtcCBpcyBhbW9uZyB0aGUgbGlzdCBvZiBxdWV1ZWQKKyAgICAgICAgICAgICAgICAvLyB0aW1lc3RhbXBzCisgICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcERldlRlc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCB0c0hpdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpMaXN0PHVpbnQ2NF90Pjo6aXRlcmF0b3IgaXQgPQorICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wVXNsaXN0LmJlZ2luKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdCAhPSB0aW1lc3RhbXBVc2xpc3QuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgqaXQgPT0gdGltZXN0YW1wVXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzSGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGl0Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRzSGl0ID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wVXNsaXN0LmVtcHR5KCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEodHNIaXQsIHRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJUaW1lU3RhbXAgbm90IHJlY29nbml6ZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNlcnIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgUmVjZWl2ZWQgbm9uLXplcm8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3V0cHV0IC8gVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIFxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyNkZWZpbmUgV1JJVEVfT1VUUFVUIDAKKyNpZiBXUklURV9PVVRQVVQKKyAgICAgICAgICAgICAgICBzdGF0aWMgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBGSUxFKiBvZnAgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgb2ZwID0gZm9wZW4oIm91dC5iaW4iLCAiYWIiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgIndiIik7CisgICAgICAgICAgICAgICAgaWYgKG9mcCAhPSBudWxscHRyICYmCisgICAgICAgICAgICAgICAgICAgIHBvcnRNb2RlWzFdID09IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZndyaXRlKHN0YXRpY19jYXN0PHZvaWQqPihidWZmZXItPm1NZW1vcnktPmdldFBvaW50ZXIoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY2hhciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEucmFuZ2VMZW5ndGgsIG9mcCk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9zZShvZnApOworICAgICAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgZW51bSBzdGFuZGFyZENvbXAgeworICAgICAgICBoMjYzLAorICAgICAgICBhdmMsCisgICAgICAgIG1wZWcyLAorICAgICAgICBtcGVnNCwKKyAgICAgICAgaGV2YywKKyAgICAgICAgdnA4LAorICAgICAgICB2cDksCisgICAgICAgIHVua25vd25fY29tcCwKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcCBjb21wTmFtZTsKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgYm9vbCBkaXNhYmxlVGVzdDsKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBib29sIGVvc0ZsYWc7CisgICAgdWludDMyX3QgZnJhbWVzUmVjZWl2ZWQ7CisgICAgdWludDY0X3QgdGltZXN0YW1wVXM7CisgICAgOjphbmRyb2lkOjpMaXN0PHVpbnQ2NF90PiB0aW1lc3RhbXBVc2xpc3Q7CisgICAgYm9vbCB0aW1lc3RhbXBEZXZUZXN0OworICAgIGJvb2wgaXNTZWN1cmU7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBuRnJhbWVXaWR0aCA9IDM1MiwgT01YX1UzMiBuRnJhbWVIZWlnaHQgPSAyODgsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBuQml0cmF0ZSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiB4RnJhbWVyYXRlID0gKDI0VSA8PCAxNikpIHsKKyAgICBzd2l0Y2ggKChpbnQpZUNvbXByZXNzaW9uRm9ybWF0KSB7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ1VudXNlZDoKKyAgICAgICAgICAgIHNldHVwUkFXUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgbkJpdHJhdGUsIHhGcmFtZXJhdGUsIGVDb2xvckZvcm1hdCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy8gSW4gZGVjb2RlciBjb21wb25lbnRzLCBvZnRlbiB0aGUgaW5wdXQgcG9ydCBwYXJhbWV0ZXJzIGdldCB1cGRhdGVkIHVwb24KKy8vIHBhcnNpbmcgdGhlIGhlYWRlciBvZiBlbGVtZW50YXJ5IHN0cmVhbS4gQ2xpZW50IG5lZWRzIHRvIGNvbGxlY3QgdGhpcworLy8gaW5mb3JtYXRpb24gdG8gcmVjb25maWd1cmUgb3RoZXIgcG9ydHMgdGhhdCBzaGFyZSBkYXRhIHdpdGggdGhpcyBpbnB1dAorLy8gcG9ydC4KK3ZvaWQgZ2V0SW5wdXRDaGFubmVsSW5mbyhzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG5GcmFtZVdpZHRoLCB1aW50MzJfdCogbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgKm5GcmFtZVdpZHRoID0gMzUyOworICAgICpuRnJhbWVIZWlnaHQgPSAyODg7CisgICAgKnhGcmFtZXJhdGUgPSAoMjRVIDw8IDE2KTsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICpuRnJhbWVXaWR0aCA9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZVdpZHRoOworICAgICAgICAqbkZyYW1lSGVpZ2h0ID0gcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lSGVpZ2h0OworICAgICAgICAqeEZyYW1lcmF0ZSA9IHBvcnREZWYuZm9ybWF0LnZpZGVvLnhGcmFtZXJhdGU7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgY2hhciogbVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIqIGluZm8pIHsKKyAgICBzdHJ1Y3QgQ29tcFRvVVJMIHsKKyAgICAgICAgVmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXA7CisgICAgICAgIGNvbnN0IGNoYXIqIG1VUkw7CisgICAgICAgIGNvbnN0IGNoYXIqIGluZm87CisgICAgfTsKKyAgICBzdGF0aWMgY29uc3QgQ29tcFRvVVJMIGtDb21wVG9VUkxbXSA9IHsKKyAgICAgICAge1ZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YXZjLAorICAgICAgICAgImJiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmgyNjQiLAorICAgICAgICAgImJiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICAgICAge1ZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6aGV2YywKKyAgICAgICAgICJiYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMiLAorICAgICAgICAgImJiYl9oZXZjXzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcGVnMiwKKyAgICAgICAgICJiYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLm0ydiIsCisgICAgICAgICAiYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmgyNjMsCisgICAgICAgICAiYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMiLAorICAgICAgICAgImJiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6Om1wZWc0LAorICAgICAgICAgImJiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5tNHYiLAorICAgICAgICAgImJiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OnZwOCwgImJiYl92cDhfNjQweDM2MF8ybWJwc18zMGZwcy52cDgiLAorICAgICAgICAgImJiYl92cDhfNjQweDM2MF8ybWJwc18zMGZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OnZwOSwKKyAgICAgICAgICJiYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMudnA5IiwKKyAgICAgICAgICJiYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbyJ9LAorICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihrQ29tcFRvVVJMKSAvIHNpemVvZihrQ29tcFRvVVJMWzBdKTsgKytpKSB7CisgICAgICAgIGlmIChrQ29tcFRvVVJMW2ldLmNvbXAgPT0gY29tcCkgeworICAgICAgICAgICAgc3RyY2F0KG1VUkwsIGtDb21wVG9VUkxbaV0ubVVSTCk7CisgICAgICAgICAgICBzdHJjYXQoaW5mbywga0NvbXBUb1VSTFtpXS5pbmZvKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBhbGxvY2F0ZUdyYXBoaWNCdWZmZXJzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgdWludDMyX3QgbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIG5TdHJpZGUsIHVpbnQzMl90IGNvdW50KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc3A8YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I+IGFsbG9jYXRvciA9CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6YWxsb2NhdG9yOjpWMl8wOjpJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGFsbG9jYXRvci5nZXQoKSk7CisKKyAgICBzcDxhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6SU1hcHBlcj4gbWFwcGVyID0KKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI6OmdldFNlcnZpY2UoKTsKKyAgICBBU1NFUlRfTkUobWFwcGVyLmdldCgpLCBudWxscHRyKTsKKworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbworICAgICAgICBkZXNjcmlwdG9ySW5mbzsKKyAgICB1aW50MzJfdCB1c2FnZTsKKworICAgIGRlc2NyaXB0b3JJbmZvLndpZHRoID0gbkZyYW1lV2lkdGg7CisgICAgZGVzY3JpcHRvckluZm8uaGVpZ2h0ID0gbkZyYW1lSGVpZ2h0OworICAgIGRlc2NyaXB0b3JJbmZvLmxheWVyQ291bnQgPSAxOworICAgIGRlc2NyaXB0b3JJbmZvLmZvcm1hdCA9IFBpeGVsRm9ybWF0OjpSR0JBXzg4ODg7CisgICAgZGVzY3JpcHRvckluZm8udXNhZ2UgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9SRUFEX09GVEVOKTsKKyAgICBvbXhOb2RlLT5nZXRHcmFwaGljQnVmZmVyVXNhZ2UoCisgICAgICAgIHBvcnRJbmRleCwKKyAgICAgICAgWyZzdGF0dXMsICZ1c2FnZV0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX24xKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgIHVzYWdlID0gX24xOworICAgICAgICB9KTsKKyAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIGRlc2NyaXB0b3JJbmZvLnVzYWdlIHw9IHVzYWdlOworICAgIH0KKworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQzMl90PiBkZXNjcmlwdG9yOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBlcnJvcjsKKyAgICBtYXBwZXItPmNyZWF0ZURlc2NyaXB0b3IoCisgICAgICAgIGRlc2NyaXB0b3JJbmZvLCBbJmVycm9yLCAmZGVzY3JpcHRvcl0oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQzMl90PiBfbjEpIHsKKyAgICAgICAgICAgIGVycm9yID0gX3M7CisgICAgICAgICAgICBkZXNjcmlwdG9yID0gX24xOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfRVEoZXJyb3IsIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSk7CisKKyAgICBFWFBFQ1RfRVEoYnVmZkFycmF5LT5zaXplKCksIGNvdW50KTsKKyAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICBkZXNjcmlwdG9yLCBjb3VudCwKKyAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfcywgdWludDMyX3QgX24xLAorICAgICAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8CisgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGU+JiBfbjIpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUsCisgICAgICAgICAgICAgICAgICAgICAgX3MpOworICAgICAgICAgICAgKm5TdHJpZGUgPSBfbjE7CisgICAgICAgICAgICBBU1NFUlRfRVEoY291bnQsIF9uMi5zaXplKCkpOworICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoaSkub214QnVmZmVyLm5hdGl2ZUhhbmRsZSA9IF9uMltpXTsKKyAgICAgICAgICAgICAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoaSkub214QnVmZmVyLmF0dHIuYW53QnVmZmVyLndpZHRoID0KKyAgICAgICAgICAgICAgICAgICAgbkZyYW1lV2lkdGg7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci5oZWlnaHQgPQorICAgICAgICAgICAgICAgICAgICBuRnJhbWVIZWlnaHQ7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci5zdHJpZGUgPSBfbjE7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci5mb3JtYXQgPQorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9ySW5mby5mb3JtYXQ7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci51c2FnZSA9CisgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JJbmZvLnVzYWdlOworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIubGF5ZXJDb3VudCA9CisgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JJbmZvLmxheWVyQ291bnQ7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci5pZCA9CisgICAgICAgICAgICAgICAgICAgICgqYnVmZkFycmF5KVtpXS5pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7Cit9CisKKy8vIHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uIGR1cmluZyBydW50aW1lLiByZWNvbmZpZ3VyZXMgZnJhbWUgZGltZW5zaW9ucwordm9pZCBwb3J0UmVjb25maWd1cmF0aW9uKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSBtc2csIFBvcnRNb2RlIG9Qb3J0TW9kZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkKSB7CisgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyID09IDApIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9CdWZmZXIpOworICAgICAgICAgICAgaWYgKHN0YXR1cyA9PQorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCkgeworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgICAgICAgICAgICAgICAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICAgICAgICAgICAgICBvbXhOb2RlLT5mcmVlQnVmZmVyKGtQb3J0SW5kZXhPdXRwdXQsICgqb0J1ZmZlcilbaV0uaWQpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgICAgICAgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgICAgICAgICAgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPQorICAgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgICAgICAgICAgICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbkZyYW1lSGVpZ2h0LCAmeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwgZUNvbG9yRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0bworICAgICAgICAgICAgICAgIC8vIGVuYWJsZQorICAgICAgICAgICAgICAgIC8vIGl0IGFzIHdlbGwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICAgICAgdG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnRFbmFibGUpLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgICAgICAvLyBkbyBub3QgZW5hYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgc3VwcGxpZWQKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgICAgICAgICAgICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgb0J1ZmZlciwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9Qb3J0TW9kZSk7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgICAgICAgICAvLyBkaXNwYXRjaCBvdXRwdXQgYnVmZmVycworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSwgb1BvcnRNb2RlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgPT0KKyAgICAgICAgICAgICAgICAgICBPTVhfSW5kZXhDb25maWdDb21tb25PdXRwdXRDcm9wKSB7CisgICAgICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZC8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICJPTVhfSW5kZXhDb25maWdDb21tb25PdXRwdXRDcm9wIG5vdCBoYW5kbGVkIFxuIjsKKyAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgPT0gT01YX0luZGV4VmVuZG9yU3RhcnRVbnVzZWQgKyAzKSB7CisgICAgICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZC8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICJrRGVzY3JpYmVDb2xvckFzcGVjdHNJbmRleCBub3QgaGFuZGxlZCBcbiI7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgT01YX0V2ZW50RXJyb3IvICIKKyAgICAgICAgICAgICAgICAgICAgICJEZWNvZGUgRnJhbWUgQ2FsbCBtaWdodCBiZSBmYWlsZWQgXG4iOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgIH0KK30KKworLy8gYmxvY2tpbmcgY2FsbCB0byBlbnN1cmVzIGFwcGxpY2F0aW9uIHRvIFdhaXQgdGlsbCBhbGwgdGhlIGlucHV0cyBhcmUgY29uc3VtZWQKK3ZvaWQgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRNb2RlIG9Qb3J0TW9kZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworICAgIGludCB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworCisgICAgd2hpbGUgKHRpbWVPdXQtLSkgeworICAgICAgICBzaXplX3QgaSA9IDA7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBwb3J0UmVjb25maWd1cmF0aW9uKG9teE5vZGUsIG9ic2VydmVyLCBpQnVmZmVyLCBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb1BvcnRNb2RlKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGF0dXMgPT0gVElNRURfT1VULCBpdCBjb3VsZCBiZSBkdWUgdG8gcHJvY2VzcyB0aW1lIGJlaW5nIGxhcmdlCisgICAgICAgIC8vIHRoYW4gREVGQVVMVF9USU1FT1VUIG9yIGNvbXBvbmVudCBuZWVkcyBvdXRwdXQgYnVmZmVycyB0byBzdGFydAorICAgICAgICAvLyBwcm9jZXNzaW5nLgorICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggYW4gb3V0cHV0IGJ1ZmZlciBhc3N1bWluZyBvdXRRdWV1ZS5lbXB0eSgpIGlzIHRydWUKKyAgICAgICAgc2l6ZV90IGluZGV4OworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4LCBvUG9ydE1vZGUpOworICAgICAgICB9CisgICAgICAgIHRpbWVPdXQtLTsKKyAgICB9Cit9CisKKy8vIERlY29kZSBOIEZyYW1lcwordm9pZCBkZWNvZGVORnJhbWVzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgc3RkOjppZnN0cmVhbSYgZWxlU3RyZWFtLCBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiogSW5mbywKKyAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBpbnQgcmFuZ2UsIFBvcnRNb2RlIG9Qb3J0TW9kZSwKKyAgICAgICAgICAgICAgICAgICBib29sIHNpZ25hbEVPUyA9IHRydWUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpLCBvUG9ydE1vZGUpOworICAgIH0KKyAgICAvLyBkaXNwYXRjaCBpbnB1dCBidWZmZXJzCisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIGludCBmcmFtZUlEID0gb2Zmc2V0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyAoaSA8IGlCdWZmZXItPnNpemUoKSkgJiYgKGZyYW1lSUQgPCAoaW50KUluZm8tPnNpemUoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPCAob2Zmc2V0ICsgcmFuZ2UpKTsKKyAgICAgICAgIGkrKykgeworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBBU1NFUlRfTEUoKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5nY291bnQoKSwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgZmxhZ3MgPSAoKkluZm8pW2ZyYW1lSURdLmZsYWdzOworICAgICAgICBpZiAoc2lnbmFsRU9TICYmICgoZnJhbWVJRCA9PSAoaW50KUluZm8tPnNpemUoKSAtIDEpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEID09IChvZmZzZXQgKyByYW5nZSAtIDEpKSkpCisgICAgICAgICAgICBmbGFncyB8PSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAoKkluZm8pW2ZyYW1lSURdLnRpbWVzdGFtcCk7CisgICAgICAgIGZyYW1lSUQrKzsKKyAgICB9CisKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICBib29sIHN0YWxsID0gZmFsc2U7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIC8vIFBvcnQgUmVjb25maWd1cmF0aW9uCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0sgJiYKKyAgICAgICAgICAgIG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkVWRU5UKSB7CisgICAgICAgICAgICBwb3J0UmVjb25maWd1cmF0aW9uKG9teE5vZGUsIG9ic2VydmVyLCBpQnVmZmVyLCBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb1BvcnRNb2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIHx8IGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmdjb3VudCgpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICAgICAgZmxhZ3MgPSAoKkluZm8pW2ZyYW1lSURdLmZsYWdzOworICAgICAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlIC0gMSkpKSkKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLnRpbWVzdGFtcCk7CisgICAgICAgICAgICBmcmFtZUlEKys7CisgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCwgb1BvcnRNb2RlKTsKKyAgICAgICAgICAgIHN0YWxsID0gZmFsc2U7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhbGwgPSB0cnVlOworICAgICAgICBpZiAoc3RhbGwpCisgICAgICAgICAgICB0aW1lT3V0LS07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgICAgIGlmICh0aW1lT3V0ID09IDApIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiV2FpdCBvbiBJbnB1dC9PdXRwdXQgaXMgZm91bmQgaW5kZWZpbml0ZSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUgPSAoMjRVIDw8IDE2KTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUNvbXByZXNzaW9uRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRm9ybWF0VW51c2VkLCAwVSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uLCBlbGVtZW50YXJ5IHN0cmVhbSBkZWNvZGUgYW5kIHRpbWVzdGFtcAorLy8gZGV2aWF0aW9uCitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgRGVjb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBQb3J0IFJlY29uZmlndXJhdGlvbiwgRGVjb2RlIGFuZCB0aW1lc3RhbXAgZGV2aWF0aW9uIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB0aW1lc3RhbXBEZXZUZXN0ID0gdHJ1ZTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgICAgIGlmIChmbGFncyAhPSBPTVhfQlVGRkVSRkxBR19DT0RFQ0NPTkZJRykKKyAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5wdXNoX2JhY2sodGltZXN0YW1wKTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIGlmIChpc1NlY3VyZSkgeworICAgICAgICBwb3J0TW9kZVswXSA9IFBvcnRNb2RlOjpQUkVTRVRfU0VDVVJFX0JVRkZFUjsKKyAgICAgICAgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6RFlOQU1JQ19BTldfQlVGRkVSOworICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcG9ydE1vZGVbMF0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgICAgICBwb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpEWU5BTUlDX0FOV19CVUZGRVI7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIHBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwgJm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICZ4RnJhbWVyYXRlKTsKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworICAgIG9teE5vZGUtPnByZXBhcmVGb3JBZGFwdGl2ZVBsYXliYWNrKGtQb3J0SW5kZXhPdXRwdXQsIGZhbHNlLCAxOTIwLCAxMDgwKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgaWYgKHBvcnRNb2RlWzFdICE9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVIpIHsKKyAgICAgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworCisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgJnBvcnREZWYpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgYWxsb2NhdGVHcmFwaGljQnVmZmVycygKKyAgICAgICAgICAgIG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsICZvQnVmZmVyLAorICAgICAgICAgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGgsIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICZwb3J0RGVmLmZvcm1hdC52aWRlby5uU3RyaWRlLCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCk7CisgICAgfQorCisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIChpbnQpSW5mby5zaXplKCksCisgICAgICAgICAgICAgICAgICBwb3J0TW9kZVsxXSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBmYWxzZSwgZW9zRmxhZywgcG9ydE1vZGUpOworICAgIEVYUEVDVF9FUSh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSwgdHJ1ZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gZW5kIG9mIHNlcXVlbmNlIHRlc3QKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBFT1NUZXN0X00pIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFbmQgb2Ygc3RyZWFtIG1vbmtleWluZyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisKKyAgICAvLyBzZXQgcG9ydCBtb2RlCisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgcG9ydE1vZGVbMF0gPSBwb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyByZXF1ZXN0IEVPUyBhdCB0aGUgc3RhcnQKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIHRydWUsIGVvc0ZsYWcsIHBvcnRNb2RlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMFUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIFRodW1ibmFpbFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBSZXF1ZXN0IGZvciB0aHVtYm5haWwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IHBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGZvciB0aHVtYm5haWwKKyAgICBzaXplX3QgaSA9IDA7CisgICAgd2hpbGUgKCEoSW5mb1tpXS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkpIGkrKzsKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIGkgKyAxLCBwb3J0TW9kZVsxXSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBmYWxzZSwgZW9zRmxhZywgcG9ydE1vZGUpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEsIHBvcnRNb2RlWzFdLAorICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgdHJ1ZSwgZW9zRmxhZywgcG9ydE1vZGUpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgU2ltcGxlRU9TVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVuZCBvZiBzdHJlYW0iKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IHBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBlbmQKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIChpbnQpSW5mby5zaXplKCksCisgICAgICAgICAgICAgICAgICBwb3J0TW9kZVsxXSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBmYWxzZSwgZW9zRmxhZywgcG9ydE1vZGUpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHRlc3QgaW5wdXQvb3V0cHV0IHBvcnQgZmx1c2gKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBGbHVzaFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBGbHVzaCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwgJm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICZ4RnJhbWVyYXRlKTsKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIFBvcnRNb2RlIHBvcnRNb2RlWzJdOworICAgIHBvcnRNb2RlWzBdID0gcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gRGVjb2RlIDEyOCBmcmFtZXMgYW5kIGZsdXNoLiBoZXJlIDEyOCBpcyBjaG9zZW4gdG8gZW5zdXJlIHRoZXJlIGlzIGEga2V5CisgICAgLy8gZnJhbWUgYWZ0ZXIgdGhpcyBzbyB0aGF0IHRoZSBiZWxvdyBzZWN0aW9uIGNhbiBiZSBjb252ZXJlZCBmb3IgYWxsCisgICAgLy8gY29tcG9uZW50cworICAgIGludCBuRnJhbWVzID0gMTI4OworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgbkZyYW1lcywgcG9ydE1vZGVbMV0sCisgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgLy8gTm90ZTogQXNzdW1lcyAyMDAgbXMgaXMgZW5vdWdoIHRvIGVuZCBhbnkgZGVjb2RlIGNhbGwgdGhhdCBzdGFydGVkCisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAyMDAwMDApOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKworICAgIC8vIFNlZWsgdG8gbmV4dCBrZXkgZnJhbWUgYW5kIHN0YXJ0IGRlY29kaW5nIHRpbGwgdGhlIGVuZAorICAgIGludCBpbmRleCA9IG5GcmFtZXM7CisgICAgYm9vbCBrZXlGcmFtZSA9IGZhbHNlOworICAgIHdoaWxlIChpbmRleCA8IChpbnQpSW5mby5zaXplKCkpIHsKKyAgICAgICAgaWYgKChJbmZvW2luZGV4XS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkgPT0KKyAgICAgICAgICAgIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkgeworICAgICAgICAgICAgdGltZXN0YW1wVXMgPSBJbmZvW2luZGV4IC0gMV0udGltZXN0YW1wOworICAgICAgICAgICAga2V5RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZWxlU3RyZWFtLmlnbm9yZShJbmZvW2luZGV4XS5ieXRlc0NvdW50KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICB9CisgICAgaWYgKGtleUZyYW1lKSB7CisgICAgICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgIEluZm8uc2l6ZSgpIC0gaW5kZXgsIHBvcnRNb2RlWzFdLCBmYWxzZSk7CisgICAgfQorICAgIC8vIE5vdGU6IEFzc3VtZXMgMjAwIG1zIGlzIGVub3VnaCB0byBlbmQgYW55IGRlY29kZSBjYWxsIHRoYXQgc3RhcnRlZAorICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgMjAwMDAwKTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0VuY1Rlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0VuY1Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiYzk1Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRW5jVGVzdC5jcHAKQEAgLTAsMCArMSwxMzE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb19lbmNfdGVzdCIKKyNpZmRlZiBfX0xQNjRfXworI2RlZmluZSBPTVhfQU5EUk9JRF9DT01QSUxFX0FTXzMyQklUX09OXzY0QklUX1BMQVRGT1JNUworI2VuZGlmCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lQcm9kdWNlckxpc3RlbmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmJ1ZmZlcnF1ZXVlOjpWMV8wOjpJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmJ1ZmZlcnF1ZXVlOjpWMV8wOjpJUHJvZHVjZXJMaXN0ZW5lcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJR3JhcGhpY0J1ZmZlclNvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvSGFyZHdhcmVBUEkuaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPHN5c3RlbS93aW5kb3cuaD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpLCByZXMoIi9zZGNhcmQvbWVkaWEvIikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICB2b2lkIHNldENvbXBvbmVudChjb25zdCBjaGFyKiBfY29tcG9uZW50KSB7IGNvbXBvbmVudCA9IF9jb21wb25lbnQ7IH0KKworICAgIHZvaWQgc2V0Um9sZShjb25zdCBjaGFyKiBfcm9sZSkgeyByb2xlID0gX3JvbGU7IH0KKworICAgIHZvaWQgc2V0UmVzKGNvbnN0IGNoYXIqIF9yZXMpIHsgcmVzID0gX3JlczsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0UmVzKCkgY29uc3QgeyByZXR1cm4gcmVzOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sCisgICAgICAgICAgICB7ImNvbXBvbmVudCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnQyd9LAorICAgICAgICAgICAgeyJyb2xlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdSJ30sCisgICAgICAgICAgICB7InJlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUCd9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOlA6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9uZW50KG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBzZXRSb2xlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICAgICAgICAgICAgICBzZXRSZXMob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1DLCAtLWNvbXBvbmVudDogT01YIGNvbXBvbmVudCB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItUiwgLS1yb2xlOiBPTVggY29tcG9uZW50IFJvbGVcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1QLCAtLXJlczogUmVzb3VyY2UgZmlsZXMgZGlyZWN0b3J5IGxvY2F0aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7CisgICAgaGlkbF9zdHJpbmcgY29tcG9uZW50OworICAgIGhpZGxfc3RyaW5nIHJvbGU7CisgICAgaGlkbF9zdHJpbmcgcmVzOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIHZpZGVvIGVuY29kZXIgdGVzdCBmaXh0dXJlIGNsYXNzCitjbGFzcyBWaWRlb0VuY0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGRpc2FibGVUZXN0ID0gZmFsc2U7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBvbXggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214PigKKyAgICAgICAgICAgIGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICAgICAgb2JzZXJ2ZXIgPQorICAgICAgICAgICAgbmV3IENvZGVjT2JzZXJ2ZXIoW3RoaXNdKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVNZXNzYWdlKG1zZywgYnVmZmVyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9OYW1lIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIE5hbWU7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgIH07CisgICAgICAgIGNvbnN0IFN0cmluZ1RvTmFtZSBrU3RyaW5nVG9OYW1lW10gPSB7CisgICAgICAgICAgICB7ImgyNjMiLCBoMjYzfSwgeyJhdmMiLCBhdmN9LCB7Im1wZWc0IiwgbXBlZzR9LAorICAgICAgICAgICAgeyJoZXZjIiwgaGV2Y30sIHsidnA4IiwgdnA4fSwgeyJ2cDkiLCB2cDl9LAorICAgICAgICB9OworICAgICAgICBjb25zdCBzaXplX3Qga051bVN0cmluZ1RvTmFtZSA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvTmFtZSkgLyBzaXplb2Yoa1N0cmluZ1RvTmFtZVswXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBjaDsKKyAgICAgICAgY2hhciBzdWJzdHJpbmdbT01YX01BWF9TVFJJTkdOQU1FX1NJWkVdOworICAgICAgICBzdHJjcHkoc3Vic3RyaW5nLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgICAgIHBjaCA9IHN0cmNocihzdWJzdHJpbmcsICcuJyk7CisgICAgICAgIEFTU0VSVF9ORShwY2gsIG51bGxwdHIpOworICAgICAgICBjb21wTmFtZSA9IHVua25vd25fY29tcDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtU3RyaW5nVG9OYW1lOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghc3RyY2FzZWNtcChwY2ggKyAxLCBrU3RyaW5nVG9OYW1lW2ldLk5hbWUpKSB7CisgICAgICAgICAgICAgICAgY29tcE5hbWUgPSBrU3RyaW5nVG9OYW1lW2ldLkNvbXBOYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wTmFtZSA9PSB1bmtub3duX2NvbXApIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc3RydWN0IENvbXBUb0NvbXByZXNzaW9uIHsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IENvbXBUb0NvbXByZXNzaW9uIGtDb21wVG9Db21wcmVzc2lvbltdID0geworICAgICAgICAgICAge2gyNjMsIE9NWF9WSURFT19Db2RpbmdIMjYzfSwgICB7YXZjLCBPTVhfVklERU9fQ29kaW5nQVZDfSwKKyAgICAgICAgICAgIHttcGVnNCwgT01YX1ZJREVPX0NvZGluZ01QRUc0fSwge2hldmMsIE9NWF9WSURFT19Db2RpbmdIRVZDfSwKKyAgICAgICAgICAgIHt2cDgsIE9NWF9WSURFT19Db2RpbmdWUDh9LCAgICAge3ZwOSwgT01YX1ZJREVPX0NvZGluZ1ZQOX0sCisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga051bUNvbXBUb0NvbXByZXNzaW9uID0KKyAgICAgICAgICAgIHNpemVvZihrQ29tcFRvQ29tcHJlc3Npb24pIC8gc2l6ZW9mKGtDb21wVG9Db21wcmVzc2lvblswXSk7CisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga051bUNvbXBUb0NvbXByZXNzaW9uOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChrQ29tcFRvQ29tcHJlc3Npb25baV0uQ29tcE5hbWUgPT0gY29tcE5hbWUpIHsKKyAgICAgICAgICAgICAgICBlQ29tcHJlc3Npb25Gb3JtYXQgPSBrQ29tcFRvQ29tcHJlc3Npb25baV0uZUNvbXByZXNzaW9uRm9ybWF0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpID09IGtOdW1Db21wVG9Db21wcmVzc2lvbikgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBlb3NGbGFnID0gZmFsc2U7CisgICAgICAgIHByZXBlbmRTUFNQUFMgPSBmYWxzZTsKKyAgICAgICAgdGltZXN0YW1wRGV2VGVzdCA9IGZhbHNlOworICAgICAgICBwcm9kdWNlciA9IG51bGxwdHI7CisgICAgICAgIHNvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIGlzU2VjdXJlID0gZmFsc2U7CisgICAgICAgIHNpemVfdCBzdWZmaXhMZW4gPSBzdHJsZW4oIi5zZWN1cmUiKTsKKyAgICAgICAgaWYgKHN0cmxlbihnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpKSA+PSBzdWZmaXhMZW4pIHsKKyAgICAgICAgfQorICAgICAgICBpc1NlY3VyZSA9ICFzdHJjbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCkpIC0gc3VmZml4TGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5zZWN1cmUiKTsKKyAgICAgICAgaWYgKGlzU2VjdXJlKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIGlmIChkaXNhYmxlVGVzdCkgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhICBUZXN0IERpc2FibGVkXG4iOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgaWYgKG9teE5vZGUgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoKG9teE5vZGUtPmZyZWVOb2RlKCkpLmlzT2soKSk7CisgICAgICAgICAgICBvbXhOb2RlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHByb2Nlc3MgbWVzc2FnZXMgcmVjZWl2ZWQgYnkgb25NZXNzYWdlcygpIGZyb20gSUwKKyAgICAvLyBjbGllbnQuCisgICAgdm9pZCBoYW5kbGVNZXNzYWdlKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgKHZvaWQpYnVmZmVyOworCisgICAgICAgIGlmIChtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpGSUxMX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfRU9TKSB7CisgICAgICAgICAgICAgICAgZW9zRmxhZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IGlmIGN1cnJlbnQgdGltZXN0YW1wIGlzIGFtb25nIHRoZSBsaXN0IG9mIHF1ZXVlZAorICAgICAgICAgICAgICAgIC8vIHRpbWVzdGFtcHMKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wRGV2VGVzdCAmJiAocHJlcGVuZFNQU1BQUyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLmZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9CVUZGRVJGTEFHX0NPREVDQ09ORklHKSA9PSAwKSkgeworICAgICAgICAgICAgICAgICAgICBib29sIHRzSGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+OjppdGVyYXRvciBpdCA9CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9IHRpbWVzdGFtcFVzbGlzdC5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCppdCA9PSBtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEudGltZXN0YW1wVXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzSGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGl0Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRzSGl0ID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wVXNsaXN0LmVtcHR5KCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEodHNIaXQsIHRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJUaW1lU3RhbXAgbm90IHJlY29nbml6ZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNlcnIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgUmVjZWl2ZWQgbm9uLXplcm8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3V0cHV0IC8gVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIFxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyNkZWZpbmUgV1JJVEVfT1VUUFVUIDAKKyNpZiBXUklURV9PVVRQVVQKKyAgICAgICAgICAgICAgICBzdGF0aWMgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBGSUxFKiBvZnAgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgb2ZwID0gZm9wZW4oIm91dC5iaW4iLCAiYWIiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgIndiIik7CisgICAgICAgICAgICAgICAgaWYgKG9mcCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgIGZ3cml0ZShzdGF0aWNfY2FzdDx2b2lkKj4oYnVmZmVyLT5tTWVtb3J5LT5nZXRQb2ludGVyKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNoYXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoLCBvZnApOworICAgICAgICAgICAgICAgICAgICBmY2xvc2Uob2ZwKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGVudW0gc3RhbmRhcmRDb21wIHsKKyAgICAgICAgaDI2MywKKyAgICAgICAgYXZjLAorICAgICAgICBtcGVnNCwKKyAgICAgICAgaGV2YywKKyAgICAgICAgdnA4LAorICAgICAgICB2cDksCisgICAgICAgIHVua25vd25fY29tcCwKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcCBjb21wTmFtZTsKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgYm9vbCBkaXNhYmxlVGVzdDsKKyAgICBib29sIGVvc0ZsYWc7CisgICAgYm9vbCBwcmVwZW5kU1BTUFBTOworICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4gdGltZXN0YW1wVXNsaXN0OworICAgIGJvb2wgdGltZXN0YW1wRGV2VGVzdDsKKyAgICBib29sIGlzU2VjdXJlOworICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IHByb2R1Y2VyOworICAgIHNwPElHcmFwaGljQnVmZmVyU291cmNlPiBzb3VyY2U7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIENvZGVjUHJvZHVjZXJMaXN0ZW5lciBjbGFzcworc3RydWN0IENvZGVjUHJvZHVjZXJMaXN0ZW5lciA6IHB1YmxpYyBJUHJvZHVjZXJMaXN0ZW5lciB7CisgICBwdWJsaWM6CisgICAgQ29kZWNQcm9kdWNlckxpc3RlbmVyKGludCBhLCBpbnQgYikKKyAgICAgICAgOiBmcmVlQnVmZmVycyhhKSwgbWluVW5EZXF1ZXVlZENvdW50KGIpIHt9CisgICAgdmlydHVhbCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm48dm9pZD4gb25CdWZmZXJSZWxlYXNlZCgpIG92ZXJyaWRlIHsKKyAgICAgICAgYW5kcm9pZDo6TXV0ZXg6OkF1dG9sb2NrIGF1dG9Mb2NrKGJ1ZmZlckxvY2spOworICAgICAgICBmcmVlQnVmZmVycyArPSAxOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICB2aXJ0dWFsIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjxib29sPiBuZWVkc1JlbGVhc2VOb3RpZnkoKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICB2b2lkIHJlZHVjZUNvdW50KCkgeworICAgICAgICBhbmRyb2lkOjpNdXRleDo6QXV0b2xvY2sgYXV0b0xvY2soYnVmZmVyTG9jayk7CisgICAgICAgIGZyZWVCdWZmZXJzIC09IDE7CisgICAgICAgIEVYUEVDVF9HRShmcmVlQnVmZmVycywgbWluVW5EZXF1ZXVlZENvdW50KTsKKyAgICB9CisKKyAgICBzaXplX3QgZnJlZUJ1ZmZlcnM7CisgICAgc2l6ZV90IG1pblVuRGVxdWV1ZWRDb3VudDsKKyAgICBhbmRyb2lkOjpNdXRleCBidWZmZXJMb2NrOworfTsKKworLy8gcmVxdWVzdCBWT1AgcmVmcmVzaAordm9pZCByZXF1ZXN0SURSKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9DT05GSUdfSU5UUkFSRUZSRVNIVk9QVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5JbnRyYVJlZnJlc2hWT1AgPSBPTVhfVFJVRTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0Q29uZmlnKG9teE5vZGUsIE9NWF9JbmRleENvbmZpZ1ZpZGVvSW50cmFWT1BSZWZyZXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byByZXF1ZXN0IElEUiBcbiI7Cit9CisKKy8vIG1vZGlmeSBiaXRyYXRlCit2b2lkIGNoYW5nZUJpdHJhdGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCB1aW50MzJfdCBuQml0cmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19DT05GSUdfQklUUkFURVRZUEUgcGFyYW07CisgICAgcGFyYW0ubkVuY29kZUJpdHJhdGUgPSBuQml0cmF0ZTsKKyAgICBzdGF0dXMgPQorICAgICAgICBzZXRQb3J0Q29uZmlnKG9teE5vZGUsIE9NWF9JbmRleENvbmZpZ1ZpZGVvQml0cmF0ZSwgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byBjaGFuZ2UgQml0cmF0ZSBcbiI7Cit9CisKKy8vIG1vZGlmeSBmcmFtZXJhdGUKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBjaGFuZ2VGcmFtZVJhdGUoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCB1aW50MzJfdCB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0NPTkZJR19GUkFNRVJBVEVUWVBFIHBhcmFtOworICAgIHBhcmFtLnhFbmNvZGVGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHN0YXR1cyA9IHNldFBvcnRDb25maWcob214Tm9kZSwgT01YX0luZGV4Q29uZmlnVmlkZW9GcmFtZXJhdGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIGNoYW5nZSBGcmFtZXJhdGUgXG4iOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8vIG1vZGlmeSBpbnRyYSByZWZyZXNoIGludGVydmFsCit2b2lkIGNoYW5nZVJlZnJlc2hQZXJpb2Qoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5SZWZyZXNoUGVyaW9kKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX0NPTkZJR19BTkRST0lEX0lOVFJBUkVGUkVTSFRZUEUgcGFyYW07CisgICAgcGFyYW0ublJlZnJlc2hQZXJpb2QgPSBuUmVmcmVzaFBlcmlvZDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0Q29uZmlnKG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhDb25maWdBbmRyb2lkSW50cmFSZWZyZXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byBjaGFuZ2UgUmVmcmVzaCBQZXJpb2RcbiI7Cit9CisKKy8vIHNldCBpbnRyYSByZWZyZXNoIGludGVydmFsCit2b2lkIHNldFJlZnJlc2hQZXJpb2Qoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5SZWZyZXNoUGVyaW9kKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX0lOVFJBUkVGUkVTSFRZUEUgcGFyYW07CisgICAgcGFyYW0uZVJlZnJlc2hNb2RlID0gT01YX1ZJREVPX0ludHJhUmVmcmVzaEN5Y2xpYzsKKyAgICBwYXJhbS5uQ2lyTUJzID0gMDsKKyAgICBpZiAoblJlZnJlc2hQZXJpb2QgPT0gMCkKKyAgICAgICAgcGFyYW0ubkNpck1CcyA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBwYXJhbS5uQ2lyTUJzID0KKyAgICAgICAgICAgICAgICAoKHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZVdpZHRoICsgMTUpID4+CisgICAgICAgICAgICAgICAgIDQgKiAocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lSGVpZ2h0ICsgMTUpID4+IDQpIC8KKyAgICAgICAgICAgICAgICBuUmVmcmVzaFBlcmlvZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0ludHJhUmVmcmVzaCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFyYW0pOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byBzZXQgUmVmcmVzaCBQZXJpb2QgXG4iOworfQorCisvLyBTZXQgRGVmYXVsdCBwb3J0IHBhcmFtLgordm9pZCBzZXREZWZhdWx0UG9ydFBhcmFtKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBuQml0cmF0ZSwgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uQml0cmF0ZSA9IG5CaXRyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLnhGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb21wcmVzc2lvbkZvcm1hdCA9IGVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5lQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0VW51c2VkOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGFyclByb2ZpbGU7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gYXJyTGV2ZWw7CisgICAgZW51bWVyYXRlUHJvZmlsZUFuZExldmVsKG9teE5vZGUsIHBvcnRJbmRleCwgJmFyclByb2ZpbGUsICZhcnJMZXZlbCk7CisgICAgaWYgKGFyclByb2ZpbGUuZW1wdHkoKSA9PSB0cnVlIHx8IGFyckxldmVsLmVtcHR5KCkgPT0gdHJ1ZSkKKyAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgIGludDMyX3QgcHJvZmlsZSA9IGFyclByb2ZpbGVbMF07CisgICAgaW50MzJfdCBsZXZlbCA9IGFyckxldmVsWzBdOworCisgICAgc3dpdGNoICgoaW50KWVDb21wcmVzc2lvbkZvcm1hdCkgeworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdBVkM6CisgICAgICAgICAgICBzZXR1cEFWQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19BVkNQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0FWQ0xFVkVMVFlQRT4obGV2ZWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ0hFVkM6CisgICAgICAgICAgICBzZXR1cEhFVkNQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0hFVkNQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19IRVZDTEVWRUxUWVBFPihsZXZlbCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ0gyNjM6CisgICAgICAgICAgICBzZXR1cEgyNjNQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0gyNjNQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19IMjYzTEVWRUxUWVBFPihsZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ01QRUc0OgorICAgICAgICAgICAgc2V0dXBNUEVHNFBvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX01QRUc0UFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX01QRUc0TEVWRUxUWVBFPihsZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdWUDg6CisgICAgICAgICAgICBzZXR1cFZQWFBvcnQob214Tm9kZSwgcG9ydEluZGV4LCB4RnJhbWVyYXRlKTsKKyAgICAgICAgICAgIHNldHVwVlA4UG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX1ZQOFBST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fVlA4TEVWRUxUWVBFPihsZXZlbCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ1ZQOToKKyAgICAgICAgICAgIHNldHVwVlBYUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgc2V0dXBWUDlQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fVlA5UFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19WUDlMRVZFTFRZUEU+KGxldmVsKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy8gTG9va1VwVGFibGUgb2YgY2xpcHMgYW5kIG1ldGFkYXRhIGZvciBjb21wb25lbnQgdGVzdGluZwordm9pZCBHZXRVUkxGb3JDb21wb25lbnQoY2hhciogVVJMKSB7CisgICAgc3RyY2F0KFVSTCwgImJiYl8zNTJ4Mjg4XzQyMHBfMzBmcHNfMzJmcmFtZXMueXV2Iik7Cit9CisKKy8vIGJsb2NraW5nIGNhbGwgdG8gZW5zdXJlcyBhcHBsaWNhdGlvbiB0byBXYWl0IHRpbGwgYWxsIHRoZSBpbnB1dHMgYXJlIGNvbnN1bWVkCit2b2lkIHdhaXRPbklucHV0Q29uc3VtcHRpb24oc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpbnB1dERhdGFJc01ldGEgPSBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY1Byb2R1Y2VyTGlzdGVuZXI+IGxpc3RlbmVyID0gbnVsbHB0cikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworICAgIGludCB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworCisgICAgd2hpbGUgKHRpbWVPdXQtLSkgeworICAgICAgICBzaXplX3QgaSA9IDA7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisgICAgICAgIC8vIHN0YXR1cyA9PSBUSU1FRF9PVVQsIGl0IGNvdWxkIGJlIGR1ZSB0byBwcm9jZXNzIHRpbWUgYmVpbmcgbGFyZ2UKKyAgICAgICAgLy8gdGhhbiBERUZBVUxUX1RJTUVPVVQgb3IgY29tcG9uZW50IG5lZWRzIG91dHB1dCBidWZmZXJzIHRvIHN0YXJ0CisgICAgICAgIC8vIHByb2Nlc3NpbmcuCisgICAgICAgIGlmIChpbnB1dERhdGFJc01ldGEpIHsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lci0+ZnJlZUJ1ZmZlcnMgPT0gaUJ1ZmZlci0+c2l6ZSgpKSBicmVhazsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPT0gaUJ1ZmZlci0+c2l6ZSgpKSBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERpc3BhdGNoIGFuIG91dHB1dCBidWZmZXIgYXNzdW1pbmcgb3V0UXVldWUuZW1wdHkoKSBpcyB0cnVlCisgICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2ludCBjb2xvckZvcm1hdENvbnZlcnNpb24oQnVmZmVySW5mbyogYnVmZmVyLCB2b2lkKiBidWZmLCBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSkgeworICAgIHNwPGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyPiBtYXBwZXIgPQorICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6SU1hcHBlcjo6Z2V0U2VydmljZSgpOworICAgIEVYUEVDVF9ORShtYXBwZXIuZ2V0KCksIG51bGxwdHIpOworICAgIGlmIChtYXBwZXIuZ2V0KCkgPT0gbnVsbHB0cikgcmV0dXJuIDE7CisKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUgZmVuY2U7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI6OlJlY3QgcmVjdDsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6WUNiQ3JMYXlvdXQgeWNiY3JMYXlvdXQ7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yIGVycm9yOworICAgIHJlY3QubGVmdCA9IDA7CisgICAgcmVjdC50b3AgPSAwOworICAgIHJlY3Qud2lkdGggPSBidWZmZXItPm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci53aWR0aDsKKyAgICByZWN0LmhlaWdodCA9IGJ1ZmZlci0+b214QnVmZmVyLmF0dHIuYW53QnVmZmVyLmhlaWdodDsKKworICAgIGlmIChmb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OllWMTIpIHsKKyAgICAgICAgbWFwcGVyLT5sb2NrWUNiQ3IoCisgICAgICAgICAgICBidWZmLCBidWZmZXItPm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci51c2FnZSwgcmVjdCwgZmVuY2UsCisgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yIF9lLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpZQ2JDckxheW91dCBfbjEpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IF9lOworICAgICAgICAgICAgICAgIHljYmNyTGF5b3V0ID0gX24xOworICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUShlcnJvciwKKyAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSk7CisgICAgICAgIGlmIChlcnJvciAhPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpCisgICAgICAgICAgICByZXR1cm4gMTsKKworICAgICAgICBFWFBFQ1RfRVEoeWNiY3JMYXlvdXQuY2hyb21hU3RlcCwgMVUpOworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPih5Y2JjckxheW91dC55KTsKKyAgICAgICAgZm9yIChzaXplX3QgeSA9IHJlY3QuaGVpZ2h0OyB5ID4gMDsgLS15KSB7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgcmVjdC53aWR0aCk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IHJlY3Qud2lkdGgpIHJldHVybiAxOworICAgICAgICAgICAgaXBCdWZmZXIgKz0geWNiY3JMYXlvdXQueVN0cmlkZTsKKyAgICAgICAgfQorICAgICAgICBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPih5Y2JjckxheW91dC5jYik7CisgICAgICAgIGZvciAoc2l6ZV90IHkgPSByZWN0LmhlaWdodCA+PiAxOyB5ID4gMDsgLS15KSB7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgcmVjdC53aWR0aCA+PiAxKTsKKyAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gcmVjdC53aWR0aCA+PiAxKSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlwQnVmZmVyICs9IHljYmNyTGF5b3V0LmNTdHJpZGU7CisgICAgICAgIH0KKyAgICAgICAgaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oeWNiY3JMYXlvdXQuY3IpOworICAgICAgICBmb3IgKHNpemVfdCB5ID0gcmVjdC5oZWlnaHQgPj4gMTsgeSA+IDA7IC0teSkgeworICAgICAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsIHJlY3Qud2lkdGggPj4gMSk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IHJlY3Qud2lkdGggPj4gMSkgcmV0dXJuIDE7CisgICAgICAgICAgICBpcEJ1ZmZlciArPSB5Y2JjckxheW91dC5jU3RyaWRlOworICAgICAgICB9CisKKyAgICAgICAgbWFwcGVyLT51bmxvY2soYnVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSBfbjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gX2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZSA9IF9uMTsKKyAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUShlcnJvciwKKyAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSk7CisgICAgICAgIGlmIChlcnJvciAhPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6WUNCQ1JfNDIwXzg4OCkgeworICAgICAgICB2b2lkKiBkYXRhOworICAgICAgICBtYXBwZXItPmxvY2soYnVmZiwgYnVmZmVyLT5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIudXNhZ2UsIHJlY3QsIGZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBfbjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IF9lOworICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBfbjE7CisgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLAorICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKTsKKyAgICAgICAgaWYgKGVycm9yICE9IGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSkKKyAgICAgICAgICAgIHJldHVybiAxOworCisgICAgICAgIHljYmNyTGF5b3V0LmNocm9tYVN0ZXAgPSAxOworICAgICAgICB5Y2JjckxheW91dC55U3RyaWRlID0gYnVmZmVyLT5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIuc3RyaWRlOworICAgICAgICB5Y2JjckxheW91dC5jU3RyaWRlID0geWNiY3JMYXlvdXQueVN0cmlkZSA+PiAxOworICAgICAgICB5Y2JjckxheW91dC55ID0gZGF0YTsKKyAgICAgICAgeWNiY3JMYXlvdXQuY2IgPSBzdGF0aWNfY2FzdDxjaGFyKj4oeWNiY3JMYXlvdXQueSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICh5Y2JjckxheW91dC55U3RyaWRlICogcmVjdC5oZWlnaHQpOworICAgICAgICB5Y2JjckxheW91dC5jciA9IHN0YXRpY19jYXN0PGNoYXIqPih5Y2JjckxheW91dC5jYikgKworICAgICAgICAgICAgICAgICAgICAgICAgICgoeWNiY3JMYXlvdXQueVN0cmlkZSAqIHJlY3QuaGVpZ2h0KSA+PiAyKTsKKworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPih5Y2JjckxheW91dC55KTsKKyAgICAgICAgZm9yIChzaXplX3QgeSA9IHJlY3QuaGVpZ2h0OyB5ID4gMDsgLS15KSB7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgcmVjdC53aWR0aCk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IHJlY3Qud2lkdGgpIHJldHVybiAxOworICAgICAgICAgICAgaXBCdWZmZXIgKz0geWNiY3JMYXlvdXQueVN0cmlkZTsKKyAgICAgICAgfQorICAgICAgICBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPih5Y2JjckxheW91dC5jYik7CisgICAgICAgIGZvciAoc2l6ZV90IHkgPSByZWN0LmhlaWdodCA+PiAxOyB5ID4gMDsgLS15KSB7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgcmVjdC53aWR0aCA+PiAxKTsKKyAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gcmVjdC53aWR0aCA+PiAxKSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlwQnVmZmVyICs9IHljYmNyTGF5b3V0LmNTdHJpZGU7CisgICAgICAgIH0KKyAgICAgICAgaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oeWNiY3JMYXlvdXQuY3IpOworICAgICAgICBmb3IgKHNpemVfdCB5ID0gcmVjdC5oZWlnaHQgPj4gMTsgeSA+IDA7IC0teSkgeworICAgICAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsIHJlY3Qud2lkdGggPj4gMSk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IHJlY3Qud2lkdGggPj4gMSkgcmV0dXJuIDE7CisgICAgICAgICAgICBpcEJ1ZmZlciArPSB5Y2JjckxheW91dC5jU3RyaWRlOworICAgICAgICB9CisKKyAgICAgICAgbWFwcGVyLT51bmxvY2soYnVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSBfbjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gX2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZSA9IF9uMTsKKyAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUShlcnJvciwKKyAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSk7CisgICAgICAgIGlmIChlcnJvciAhPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgInVuIGV4cGVjdGVkIHBpeGVsIGZvcm1hdCI7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgZmlsbEdyYXBoaWNCdWZmZXIoQnVmZmVySW5mbyogYnVmZmVyLCBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgc3RkOjppZnN0cmVhbSYgZWxlU3RyZWFtKSB7CisgICAgc3A8YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI+IG1hcHBlciA9CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisgICAgRVhQRUNUX05FKG1hcHBlci5nZXQoKSwgbnVsbHB0cik7CisgICAgaWYgKG1hcHBlci5nZXQoKSA9PSBudWxscHRyKSByZXR1cm4gMTsKKworICAgIHZvaWQqIGJ1ZmYgPSBudWxscHRyOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBlcnJvcjsKKyAgICBtYXBwZXItPmltcG9ydEJ1ZmZlcigKKyAgICAgICAgYnVmZmVyLT5vbXhCdWZmZXIubmF0aXZlSGFuZGxlLAorICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yIF9lLCB2b2lkKiBfbjEpIHsKKyAgICAgICAgICAgIGVycm9yID0gX2U7CisgICAgICAgICAgICBidWZmID0gX24xOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfRVEoZXJyb3IsIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSk7CisgICAgaWYgKGVycm9yICE9IGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSkKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBpZiAoY29sb3JGb3JtYXRDb252ZXJzaW9uKGJ1ZmZlciwgYnVmZiwgZm9ybWF0LCBlbGVTdHJlYW0pKSByZXR1cm4gMTsKKworICAgIGVycm9yID0gbWFwcGVyLT5mcmVlQnVmZmVyKGJ1ZmYpOworICAgIEVYUEVDVF9FUShlcnJvciwgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKTsKKyAgICBpZiAoZXJyb3IgIT0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKQorICAgICAgICByZXR1cm4gMTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgZGlzcGF0Y2hHcmFwaGljQnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJR3JhcGhpY0J1ZmZlclByb2R1Y2VyPiBwcm9kdWNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8Q29kZWNQcm9kdWNlckxpc3RlbmVyPiBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4LCBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHJldHVybiAxOworCisgICAgZW51bSB7CisgICAgICAgIC8vIEEgZmxhZyByZXR1cm5lZCBieSBkZXF1ZXVlQnVmZmVyIHdoZW4gdGhlIGNsaWVudCBuZWVkcyB0byBjYWxsCisgICAgICAgIC8vIHJlcXVlc3RCdWZmZXIgaW1tZWRpYXRlbHkgdGhlcmVhZnRlci4KKyAgICAgICAgQlVGRkVSX05FRURTX1JFQUxMT0NBVElPTiA9IDB4MSwKKyAgICAgICAgLy8gQSBmbGFnIHJldHVybmVkIGJ5IGRlcXVldWVCdWZmZXIgd2hlbiBhbGwgbWlycm9yZWQgc2xvdHMgc2hvdWxkIGJlCisgICAgICAgIC8vIHJlbGVhc2VkIGJ5IHRoZSBjbGllbnQuIFRoaXMgZmxhZyBzaG91bGQgYWx3YXlzIGJlIHByb2Nlc3NlZCBmaXJzdC4KKyAgICAgICAgUkVMRUFTRV9BTExfQlVGRkVSUyA9IDB4MiwKKyAgICB9OworCisgICAgaW50MzJfdCBzbG90OworICAgIGludDMyX3QgcmVzdWx0OworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlIGZlbmNlOworICAgIElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OkZyYW1lRXZlbnRIaXN0b3J5RGVsdGEgb3V0VGltZXN0YW1wczsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6VjFfMDo6QW53QnVmZmVyIEFud0J1ZmZlcjsKKyAgICBQaXhlbEZvcm1hdCBmb3JtYXQgPSBQaXhlbEZvcm1hdDo6WVYxMjsKKyAgICBwcm9kdWNlci0+ZGVxdWV1ZUJ1ZmZlcigKKyAgICAgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGgsIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCwKKyAgICAgICAgZm9ybWF0LCBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4gfCBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX09GVEVOLAorICAgICAgICB0cnVlLCBbJl0oaW50MzJfdCBfcywgaW50MzJfdCBjb25zdCYgX24xLAorICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUgY29uc3QmIF9uMiwKKyAgICAgICAgICAgICAgICAgIElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OkZyYW1lRXZlbnRIaXN0b3J5RGVsdGEgY29uc3QmIF9uMykgeworICAgICAgICAgICAgcmVzdWx0ID0gX3M7CisgICAgICAgICAgICBzbG90ID0gX24xOworICAgICAgICAgICAgZmVuY2UgPSBfbjI7CisgICAgICAgICAgICBvdXRUaW1lc3RhbXBzID0gX24zOworICAgICAgICB9KTsKKyAgICBpZiAocmVzdWx0ICYgQlVGRkVSX05FRURTX1JFQUxMT0NBVElPTikgeworICAgICAgICBwcm9kdWNlci0+cmVxdWVzdEJ1ZmZlcigKKyAgICAgICAgICAgIHNsb3QsIFsmXShpbnQzMl90IF9zLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpWMV8wOjpBbndCdWZmZXIgY29uc3QmIF9uMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9zOworICAgICAgICAgICAgICAgIEFud0J1ZmZlciA9IF9uMTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBFWFBFQ1RfRVEocmVzdWx0LCAwKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSByZXR1cm4gMTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBidWZmQXJyYXktPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCpidWZmQXJyYXkpW2ldLnNsb3QgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoaSkuc2xvdCA9IHNsb3Q7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5uYXRpdmVIYW5kbGUgPQorICAgICAgICAgICAgICAgICAgICBBbndCdWZmZXIubmF0aXZlSGFuZGxlOworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIgPQorICAgICAgICAgICAgICAgICAgICBBbndCdWZmZXIuYXR0cjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBFWFBFQ1RfTkUoaSwgYnVmZkFycmF5LT5zaXplKCkpOworICAgICAgICBpZiAoaSA9PSBidWZmQXJyYXktPnNpemUoKSkgcmV0dXJuIDE7CisgICAgfQorICAgIEVYUEVDVF9FUShyZXN1bHQsIDApOworICAgIGlmIChyZXN1bHQgIT0gMCkgcmV0dXJuIDE7CisKKyAgICAvLyBmaWxsIEJ1ZmZlcgorICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgIHNpemVfdCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBidWZmQXJyYXktPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGlmICgoKmJ1ZmZBcnJheSlbaV0uc2xvdCA9PSBzbG90KSB7CisgICAgICAgICAgICBidWZmZXIgPSAoKmJ1ZmZBcnJheSlbaV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBFWFBFQ1RfTkUoaSwgYnVmZkFycmF5LT5zaXplKCkpOworICAgIGlmIChpID09IGJ1ZmZBcnJheS0+c2l6ZSgpKSByZXR1cm4gMTsKKyAgICBpZiAoZmlsbEdyYXBoaWNCdWZmZXIoJmJ1ZmZlciwgZm9ybWF0LCBlbGVTdHJlYW0pKSByZXR1cm4gMTsKKworICAgIC8vIHF1ZXVlIEJ1ZmZlcgorICAgIElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OlF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dDsKKyAgICBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpRdWV1ZUJ1ZmZlcklucHV0IGlucHV0OworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6VjFfMDo6UmVjdCByZWN0OworICAgIHJlY3QubGVmdCA9IDA7CisgICAgcmVjdC50b3AgPSAwOworICAgIHJlY3QucmlnaHQgPSBidWZmZXIub214QnVmZmVyLmF0dHIuYW53QnVmZmVyLndpZHRoOworICAgIHJlY3QuYm90dG9tID0gYnVmZmVyLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci5oZWlnaHQ7CisgICAgaW5wdXQudGltZXN0YW1wID0gdGltZXN0YW1wOworICAgIGlucHV0LmlzQXV0b1RpbWVzdGFtcCA9IGZhbHNlOworICAgIGlucHV0LmRhdGFTcGFjZSA9CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U6OlVOS05PV047CisgICAgaW5wdXQuY3JvcCA9IHJlY3Q7CisgICAgaW5wdXQuc2NhbGluZ01vZGUgPSAwOworICAgIGlucHV0LnRyYW5zZm9ybSA9IDA7CisgICAgaW5wdXQuc3RpY2t5VHJhbnNmb3JtID0gMDsKKyAgICBpbnB1dC5mZW5jZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgIGlucHV0LnN1cmZhY2VEYW1hZ2UgPQorICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpWMV8wOjpSZWN0PntyZWN0fTsKKyAgICBpbnB1dC5nZXRGcmFtZVRpbWVzdGFtcHMgPSBmYWxzZTsKKyAgICBwcm9kdWNlci0+cXVldWVCdWZmZXIoCisgICAgICAgIGJ1ZmZlci5zbG90LCBpbnB1dCwKKyAgICAgICAgWyZdKGludDMyX3QgX3MsIGNvbnN0IElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OlF1ZXVlQnVmZmVyT3V0cHV0JiBfbjEpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IF9zOworICAgICAgICAgICAgb3V0cHV0ID0gX24xOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LCAwKTsKKyAgICBpZiAocmVzdWx0ICE9IDApIHJldHVybiAxOworCisgICAgbGlzdGVuZXItPnJlZHVjZUNvdW50KCk7CisKKyAgICByZXR1cm4gMDsKK30KKworLy8gRW5jb2RlIE4gRnJhbWVzCit2b2lkIGVuY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4SW5wdXQsIE9NWF9VMzIgcG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIHVpbnQzMl90IG5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeEZyYW1lcmF0ZSwgaW50IGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgc3RkOjppZnN0cmVhbSYgZWxlU3RyZWFtLAorICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4qIHRpbWVzdGFtcFVzbGlzdCA9IG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgYm9vbCBzaWduYWxFT1MgPSB0cnVlLCBib29sIGlucHV0RGF0YUlzTWV0YSA9IGZhbHNlLAorICAgICAgICAgICAgICAgICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IHByb2R1Y2VyID0gbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICBzcDxDb2RlY1Byb2R1Y2VyTGlzdGVuZXI+IGxpc3RlbmVyID0gbnVsbHB0cikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworICAgIHVpbnQzMl90IGlwQ291bnQgPSAwOworCisgICAgaWYgKGlwQ291bnQgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBjaGFuZ2VGcmFtZVJhdGUob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0LCAoMjRVIDw8IDE2KSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgICAgIHhGcmFtZXJhdGUgPSAoMjRVIDw8IDE2KTsKKyAgICB9CisKKyAgICAvLyBkaXNwYXRjaCBvdXRwdXQgYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgfQorICAgIC8vIGRpc3BhdGNoIGlucHV0IGJ1ZmZlcnMKKyAgICBpbnQzMl90IHRpbWVzdGFtcEluY3IgPSAoaW50KSgoZmxvYXQpMTAwMDAwMCAvICh4RnJhbWVyYXRlID4+IDE2KSk7CisgICAgLy8gdGltZXN0YW1wIHNjYWxlID0gTmFubyBzZWMKKyAgICBpZiAoaW5wdXREYXRhSXNNZXRhKSB0aW1lc3RhbXBJbmNyICo9IDEwMDA7CisgICAgdWludDY0X3QgdGltZXN0YW1wID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLT5zaXplKCkgJiYgbkZyYW1lcyAhPSAwOyBpKyspIHsKKyAgICAgICAgaWYgKGlucHV0RGF0YUlzTWV0YSkgeworICAgICAgICAgICAgaWYgKGxpc3RlbmVyLT5mcmVlQnVmZmVycyA+IGxpc3RlbmVyLT5taW5VbkRlcXVldWVkQ291bnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGlzcGF0Y2hHcmFwaGljQnVmZmVyKG9teE5vZGUsIHByb2R1Y2VyLCBsaXN0ZW5lciwgaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleElucHV0LCBlbGVTdHJlYW0sIHRpbWVzdGFtcCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICAgICAgICAgIG5GcmFtZXMtLTsKKyAgICAgICAgICAgICAgICBpcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9MRShieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCBieXRlc0NvdW50KTsKKyAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gYnl0ZXNDb3VudCkgYnJlYWs7CisgICAgICAgICAgICBpZiAoc2lnbmFsRU9TICYmIChuRnJhbWVzID09IDEpKSBmbGFncyA9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgYnl0ZXNDb3VudCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCk7CisgICAgICAgICAgICBpZiAodGltZXN0YW1wVXNsaXN0KSB0aW1lc3RhbXBVc2xpc3QtPnB1c2hfYmFjayh0aW1lc3RhbXApOworICAgICAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgICAgICBpcENvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICBib29sIHN0YWxsID0gZmFsc2U7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgcG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfSW5kZXhDb25maWdBbmRyb2lkSW50cmFSZWZyZXNoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpIDw8ICJSZWNlaXZlZCBPTVhfRXZlbnRFcnJvciwgbm90IHN1cmUgd2h5IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5GcmFtZXMgPT0gMCkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmIChpbnB1dERhdGFJc01ldGEpIHsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lci0+ZnJlZUJ1ZmZlcnMgPiBsaXN0ZW5lci0+bWluVW5EZXF1ZXVlZENvdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGRpc3BhdGNoR3JhcGhpY0J1ZmZlcihvbXhOb2RlLCBwcm9kdWNlciwgbGlzdGVuZXIsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXhJbnB1dCwgZWxlU3RyZWFtLCB0aW1lc3RhbXApKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXAgKz0gdGltZXN0YW1wSW5jcjsKKyAgICAgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgICAgICAgICAgaXBDb3VudCsrOworICAgICAgICAgICAgICAgIHN0YWxsID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXRpY19jYXN0PHZvaWQqPigKKyAgICAgICAgICAgICAgICAgICAgKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0xFKAorICAgICAgICAgICAgICAgICAgICBieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCBieXRlc0NvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICAgICAgICAgIGlmIChzaWduYWxFT1MgJiYgKG5GcmFtZXMgPT0gMSkpIGZsYWdzID0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaW5kZXgsIGJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKTsKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wVXNsaXN0KSB0aW1lc3RhbXBVc2xpc3QtPnB1c2hfYmFjayh0aW1lc3RhbXApOworICAgICAgICAgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICAgICAgICAgIG5GcmFtZXMtLTsKKyAgICAgICAgICAgICAgICBpcENvdW50Kys7CisgICAgICAgICAgICAgICAgc3RhbGwgPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhbGwgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgpOworICAgICAgICAgICAgc3RhbGwgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdGFsbCA9IHRydWU7CisgICAgICAgIGlmIChzdGFsbCkKKyAgICAgICAgICAgIHRpbWVPdXQtLTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICAgICAgaWYgKHRpbWVPdXQgPT0gMCkgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpIDw8ICJXYWl0IG9uIElucHV0L091dHB1dCBpcyBmb3VuZCBpbmRlZmluaXRlIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpcENvdW50ID09IDE1KSB7CisgICAgICAgICAgICBjaGFuZ2VCaXRyYXRlKG9teE5vZGUsIHBvcnRJbmRleE91dHB1dCwgNzY4MDAwKTsKKyAgICAgICAgICAgIHJlcXVlc3RJRFIob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIGNoYW5nZVJlZnJlc2hQZXJpb2Qob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0LCAxNSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKFZpZGVvRW5jSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihWaWRlb0VuY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgT01YX1UzMiB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9CisgICAgICAgIHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlIChpbnB1dCBpcyBieXRlIGJ1ZmZlcnMpCitURVNUX0YoVmlkZW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVuY29kZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KG1VUkwpOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW07CisKKyAgICB0aW1lc3RhbXBEZXZUZXN0ID0gdHJ1ZTsKKworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgdWludDMyX3QgbkZyYW1lV2lkdGggPSAzNTI7CisgICAgdWludDMyX3QgbkZyYW1lSGVpZ2h0ID0gMjg4OworICAgIHVpbnQzMl90IHhGcmFtZXJhdGUgPSAoMzBVIDw8IDE2KTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIHNldHVwUkFXUG9ydChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsCisgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUsIGVDb2xvckZvcm1hdCk7CisgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgdWludDMyX3QgbkJpdFJhdGUgPSA1MTIwMDA7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBlQ29tcHJlc3Npb25Gb3JtYXQsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgc2V0UmVmcmVzaFBlcmlvZChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCAwKTsKKworICAgIHVuc2lnbmVkIGludCBpbmRleDsKKyAgICBvbXhOb2RlLT5nZXRFeHRlbnNpb25JbmRleCgKKyAgICAgICAgIk9NWC5nb29nbGUuYW5kcm9pZC5pbmRleC5wcmVwZW5kU1BTUFBTVG9JRFJGcmFtZXMiLAorICAgICAgICBbJnN0YXR1cywgJmluZGV4XShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX25sKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgIGluZGV4ID0gX25sOworICAgICAgICB9KTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgYW5kcm9pZDo6UHJlcGVuZFNQU1BQU1RvSURSRnJhbWVzUGFyYW1zIHBhcmFtOworICAgICAgICBwYXJhbS5iRW5hYmxlID0gT01YX1RSVUU7CisgICAgICAgIHN0YXR1cyA9IHNldFBhcmFtKG9teE5vZGUsIHN0YXRpY19jYXN0PE9NWF9JTkRFWFRZUEU+KGluZGV4KSwgJnBhcmFtKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIKKyAgICAgICAgICAgIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byBwcmVwZW5kU1BTUFBTVG9JRFJGcmFtZXNcbiI7CisgICAgZWxzZQorICAgICAgICBwcmVwZW5kU1BTUFBTID0gdHJ1ZTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IHBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBpZiAoaXNTZWN1cmUgJiYgcHJlcGVuZFNQU1BQUykgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX1NFQ1VSRV9CVUZGRVI7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBlbmNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAmaUJ1ZmZlciwgJm9CdWZmZXIsIDMyLCB4RnJhbWVyYXRlLAorICAgICAgICAgICAgICAgICAgKG5GcmFtZVdpZHRoICogbkZyYW1lSGVpZ2h0ICogMykgPj4gMSwgZWxlU3RyZWFtLAorICAgICAgICAgICAgICAgICAgJnRpbWVzdGFtcFVzbGlzdCk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGZhbHNlLCBlb3NGbGFnKTsKKyAgICBFWFBFQ1RfRVEodGltZXN0YW1wVXNsaXN0LmVtcHR5KCksIHRydWUpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gdGVzdCByYXcgc3RyZWFtIGVuY29kZSAoaW5wdXQgaXMgQU5XIGJ1ZmZlcnMpCitURVNUX0YoVmlkZW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdEJ1ZmZlck1ldGFNb2RlcykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVuY29kZSBJbnB1dCBidWZmZXIgbWV0YW1vZGVzIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCA9IDM1MjsKKyAgICB1aW50MzJfdCBuRnJhbWVIZWlnaHQgPSAyODg7CisgICAgdWludDMyX3QgeEZyYW1lcmF0ZSA9ICgzMFUgPDwgMTYpOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRBbmRyb2lkT3BhcXVlOworICAgIHNldHVwUkFXUG9ydChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsCisgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUsIGVDb2xvckZvcm1hdCk7CisKKyAgICAvLyBDcmVhdGVJbnB1dFN1cmZhY2UKKyAgICBFWFBFQ1RfVFJVRShvbXgtPmNyZWF0ZUlucHV0U3VyZmFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJR3JhcGhpY0J1ZmZlclByb2R1Y2VyPiBjb25zdCYgX25sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SUdyYXBoaWNCdWZmZXJTb3VyY2U+IGNvbnN0JiBfbjIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXIgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBfbjI7CisgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgIEFTU0VSVF9ORShwcm9kdWNlciwgbnVsbHB0cik7CisgICAgQVNTRVJUX05FKHNvdXJjZSwgbnVsbHB0cik7CisKKyAgICAvLyBEbyBzZXRJbnB1dFN1cmZhY2UoKQorICAgIC8vIGVuYWJsZSBNZXRhTW9kZSBvbiBpbnB1dCBwb3J0CisgICAgc3RhdHVzID0gc291cmNlLT5jb25maWd1cmUoCisgICAgICAgIG9teE5vZGUsIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U6OlVOS05PV04pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0TWF4RGVxdWV1ZWRCdWZmZXJDb3VudAorICAgIGludDMyX3QgcmV0dXJudmFsOworICAgIGludDMyX3QgdmFsdWU7CisgICAgcHJvZHVjZXItPnF1ZXJ5KE5BVElWRV9XSU5ET1dfTUlOX1VOREVRVUVVRURfQlVGRkVSUywKKyAgICAgICAgICAgICAgICAgICAgWyZyZXR1cm52YWwsICZ2YWx1ZV0oaW50MzJfdCBfcywgaW50MzJfdCBfbjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybnZhbCA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBfbjE7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgIEFTU0VSVF9FUShyZXR1cm52YWwsIDApOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcG9ydERlZik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKDo6YW5kcm9pZDo6T0ssCisgICAgICAgICAgICAgIHByb2R1Y2VyLT5zZXRNYXhEZXF1ZXVlZEJ1ZmZlckNvdW50KHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsKSk7CisKKyAgICAvLyBDb25uZWN0IDo6IE1vY2sgUHJvZHVjZXIgTGlzdGVuZXIKKyAgICBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpRdWV1ZUJ1ZmZlck91dHB1dCBxYm87CisgICAgc3A8Q29kZWNQcm9kdWNlckxpc3RlbmVyPiBsaXN0ZW5lciA9CisgICAgICAgIG5ldyBDb2RlY1Byb2R1Y2VyTGlzdGVuZXIocG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwgKyB2YWx1ZSwgdmFsdWUpOworICAgIHByb2R1Y2VyLT5jb25uZWN0KAorICAgICAgICBsaXN0ZW5lciwgTkFUSVZFX1dJTkRPV19BUElfQ1BVLCBmYWxzZSwKKyAgICAgICAgWyZdKGludDMyX3QgX3MsIElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OlF1ZXVlQnVmZmVyT3V0cHV0IGNvbnN0JiBfbjEpIHsKKyAgICAgICAgICAgIHJldHVybnZhbCA9IF9zOworICAgICAgICAgICAgcWJvID0gX24xOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfRVEocmV0dXJudmFsLCAwKTsKKworICAgIHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsID0gcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwgKyB2YWx1ZTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcG9ydERlZik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgcG9ydCBtb2RlCisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgcG9ydE1vZGVbMF0gPSBQb3J0TW9kZTo6RFlOQU1JQ19BTldfQlVGRkVSOworICAgIHBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBjaGFyIG1VUkxbNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KG1VUkwpOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW07CisKKyAgICBzdGF0dXMgPSBzb3VyY2UtPnNldFN1c3BlbmQoZmFsc2UsIDApOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNvdXJjZS0+c2V0UmVwZWF0UHJldmlvdXNGcmFtZURlbGF5VXMoMTAwMDAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBzb3VyY2UtPnNldE1heEZwcygyNC4wZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gc291cmNlLT5zZXRUaW1lTGFwc2VDb25maWcoMjQuMCwgMjQuMCk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gc291cmNlLT5zZXRUaW1lT2Zmc2V0VXMoLTEwMCk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gc291cmNlLT5zZXRTdGFydFRpbWVVcygxMCk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gc291cmNlLT5zZXRTdG9wVGltZVVzKDEwMDAwMDApOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvbG9yQXNwZWN0cyBhc3BlY3RzOworICAgIGFzcGVjdHMucmFuZ2UgPQorICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2xvckFzcGVjdHM6OlJhbmdlOjpVTlNQRUNJRklFRDsKKyAgICBhc3BlY3RzLnByaW1hcmllcyA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvbG9yQXNwZWN0czo6CisgICAgICAgIFByaW1hcmllczo6VU5TUEVDSUZJRUQ7CisgICAgYXNwZWN0cy50cmFuc2ZlciA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvbG9yQXNwZWN0czo6CisgICAgICAgIFRyYW5zZmVyOjpVTlNQRUNJRklFRDsKKyAgICBhc3BlY3RzLm1hdHJpeENvZWZmcyA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvbG9yQXNwZWN0czo6CisgICAgICAgIE1hdHJpeENvZWZmczo6VU5TUEVDSUZJRUQ7CisgICAgc3RhdHVzID0gc291cmNlLT5zZXRDb2xvckFzcGVjdHMoYXNwZWN0cyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgaW50NjRfdCBzdG9wVGltZU9mZnNldFVzOworICAgIHNvdXJjZS0+Z2V0U3RvcFRpbWVPZmZzZXRVcygKKyAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsIGludDY0X3QgX24xKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgIHN0b3BUaW1lT2Zmc2V0VXMgPSBfbjE7CisgICAgICAgIH0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZW5jb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgJmlCdWZmZXIsICZvQnVmZmVyLCAxMDI0LCB4RnJhbWVyYXRlLAorICAgICAgICAgICAgICAgICAgKG5GcmFtZVdpZHRoICogbkZyYW1lSGVpZ2h0ICogMykgPj4gMSwgZWxlU3RyZWFtLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgZmFsc2UsIHRydWUsIHByb2R1Y2VyLCBsaXN0ZW5lcik7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZmFsc2UsIGVvc0ZsYWcpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgRVhQRUNUX0VRKHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLCBsaXN0ZW5lci0+ZnJlZUJ1ZmZlcnMpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICByZXR1cm52YWwgPSBwcm9kdWNlci0+ZGlzY29ubmVjdCgKKyAgICAgICAgTkFUSVZFX1dJTkRPV19BUElfQ1BVLCBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpEaXNjb25uZWN0TW9kZTo6QVBJKTsKKyAgICBBU1NFUlRfRVEocmV0dXJudmFsLCAwKTsKK30KKworLy8gVGVzdCBlbmQgb2Ygc3RyZWFtCitURVNUX0YoVmlkZW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdEVPUykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVPUyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIC8vIENyZWF0ZUlucHV0U3VyZmFjZQorICAgIEVYUEVDVF9UUlVFKG9teC0+Y3JlYXRlSW5wdXRTdXJmYWNlKAorICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IGNvbnN0JiBfbmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJR3JhcGhpY0J1ZmZlclNvdXJjZT4gY29uc3QmIF9uMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWNlciA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IF9uMjsKKyAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgQVNTRVJUX05FKHByb2R1Y2VyLCBudWxscHRyKTsKKyAgICBBU1NFUlRfTkUoc291cmNlLCBudWxscHRyKTsKKworICAgIC8vIERvIHNldElucHV0U3VyZmFjZSgpCisgICAgLy8gZW5hYmxlIE1ldGFNb2RlIG9uIGlucHV0IHBvcnQKKyAgICBzdGF0dXMgPSBzb3VyY2UtPmNvbmZpZ3VyZSgKKyAgICAgICAgb214Tm9kZSwgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTo6VU5LTk9XTik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXRNYXhEZXF1ZXVlZEJ1ZmZlckNvdW50CisgICAgaW50MzJfdCByZXR1cm52YWw7CisgICAgaW50MzJfdCB2YWx1ZTsKKyAgICBwcm9kdWNlci0+cXVlcnkoTkFUSVZFX1dJTkRPV19NSU5fVU5ERVFVRVVFRF9CVUZGRVJTLAorICAgICAgICAgICAgICAgICAgICBbJnJldHVybnZhbCwgJnZhbHVlXShpbnQzMl90IF9zLCBpbnQzMl90IF9uMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJudmFsID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IF9uMTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgQVNTRVJUX0VRKHJldHVybnZhbCwgMCk7CisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEoOjphbmRyb2lkOjpPSywKKyAgICAgICAgICAgICAgcHJvZHVjZXItPnNldE1heERlcXVldWVkQnVmZmVyQ291bnQocG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwpKTsKKworICAgIC8vIENvbm5lY3QgOjogTW9jayBQcm9kdWNlciBMaXN0ZW5lcgorICAgIElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OlF1ZXVlQnVmZmVyT3V0cHV0IHFibzsKKyAgICBzcDxDb2RlY1Byb2R1Y2VyTGlzdGVuZXI+IGxpc3RlbmVyID0KKyAgICAgICAgbmV3IENvZGVjUHJvZHVjZXJMaXN0ZW5lcihwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCArIHZhbHVlLCB2YWx1ZSk7CisgICAgcHJvZHVjZXItPmNvbm5lY3QoCisgICAgICAgIGxpc3RlbmVyLCBOQVRJVkVfV0lORE9XX0FQSV9DUFUsIGZhbHNlLAorICAgICAgICBbJl0oaW50MzJfdCBfcywgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6UXVldWVCdWZmZXJPdXRwdXQgY29uc3QmIF9uMSkgeworICAgICAgICAgICAgcmV0dXJudmFsID0gX3M7CisgICAgICAgICAgICBxYm8gPSBfbjE7CisgICAgICAgIH0pOworICAgIEFTU0VSVF9FUShyZXR1cm52YWwsIDApOworCisgICAgcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwgPSBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCArIHZhbHVlOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IFBvcnRNb2RlOjpEWU5BTUlDX0FOV19CVUZGRVI7CisgICAgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHNlbmQgRU9TCisgICAgc3RhdHVzID0gc291cmNlLT5zaWduYWxFbmRPZklucHV0U3RyZWFtKCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZmFsc2UsIGVvc0ZsYWcpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgRVhQRUNUX0VRKHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLCBsaXN0ZW5lci0+ZnJlZUJ1ZmZlcnMpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICByZXR1cm52YWwgPSBwcm9kdWNlci0+ZGlzY29ubmVjdCgKKyAgICAgICAgTkFUSVZFX1dJTkRPV19BUElfQ1BVLCBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpEaXNjb25uZWN0TW9kZTo6QVBJKTsKKyAgICBBU1NFUlRfRVEocmV0dXJudmFsLCAwKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MWI0ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCkBAIC0wLDAgKzEsMzI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb190ZXN0X2NvbW1vbiIKKworI2lmZGVmIF9fTFA2NF9fCisjZGVmaW5lIE9NWF9BTkRST0lEX0NPTVBJTEVfQVNfMzJCSVRfT05fNjRCSVRfUExBVEZPUk1TCisjZW5kaWYKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6UG9ydE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxoaWRsbWVtb3J5L21hcHBpbmcuaD4KKyNpbmNsdWRlIDxtZWRpYS9oYXJkd2FyZS9IYXJkd2FyZUFQSS5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0VmlkZW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCwKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfVklERU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQ09MT1JfRk9STUFUVFlQRT4gYXJyQ29sb3JGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX1ZJREVPX0NPRElOR1RZUEU+IGFyckNvbXByZXNzaW9uRm9ybWF0OworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBpbmRleDsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkKKyAgICAgICAgICAgIGFyckNvbG9yRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFyckNvbXByZXNzaW9uRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCk7CisgICAgICAgIGluZGV4Kys7CisgICAgICAgIGlmIChpbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55IGZvcm1hdHMsIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvCisgICAgICAgICAgICAvLyBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUoaW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWluZGV4KSByZXR1cm4gc3RhdHVzOworICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJDb2xvckZvcm1hdC5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChhcnJDb2xvckZvcm1hdFtpbmRleF0gPT0gZUNvbG9yRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBhcnJDb2xvckZvcm1hdFtpbmRleF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID09IGFyckNvbG9yRm9ybWF0LnNpemUoKSkgeworICAgICAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBjb2xvciBmb3JtYXQgJXgiLCAoaW50KWFyckNvbG9yRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gYXJyQ29sb3JGb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBPTVhfVklERU9fQ29kaW5nVW51c2VkOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckNvbXByZXNzaW9uRm9ybWF0LnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XSA9PSBlQ29tcHJlc3Npb25Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT0gYXJyQ29tcHJlc3Npb25Gb3JtYXQuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IGNvbXByZXNzaW9uIGZvcm1hdCAleCIsCisgICAgICAgICAgICAgICAgICAoaW50KWFyckNvbXByZXNzaW9uRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gYXJyQ29tcHJlc3Npb25Gb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0VW51c2VkOworICAgIH0KKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IDA7CisgICAgcG9ydEZvcm1hdC54RnJhbWVyYXRlID0geEZyYW1lcmF0ZTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRSb2xlKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBjb25zdCBjaGFyKiByb2xlKSB7CisgICAgT01YX1BBUkFNX0NPTVBPTkVOVFJPTEVUWVBFIHBhcmFtczsKKyAgICBzdHJjcHkoKGNoYXIqKXBhcmFtcy5jUm9sZSwgcm9sZSk7CisgICAgcmV0dXJuIHNldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtU3RhbmRhcmRDb21wb25lbnRSb2xlLCAmcGFyYW1zKTsKK30KKwordm9pZCBlbnVtZXJhdGVQcm9maWxlQW5kTGV2ZWwoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiogYXJyTGV2ZWwpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fUFJPRklMRUxFVkVMVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uUHJvZmlsZUluZGV4ID0gMDsKKyAgICBhcnJQcm9maWxlLT5jbGVhcigpOworICAgIGFyckxldmVsLT5jbGVhcigpOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb1Byb2ZpbGVMZXZlbFF1ZXJ5U3VwcG9ydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSBicmVhazsKKyAgICAgICAgYXJyUHJvZmlsZS0+cHVzaF9iYWNrKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtLmVQcm9maWxlKSk7CisgICAgICAgIGFyckxldmVsLT5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50MzJfdD4ocGFyYW0uZUxldmVsKSk7CisgICAgICAgIHBhcmFtLm5Qcm9maWxlSW5kZXgrKzsKKyAgICAgICAgaWYgKHBhcmFtLm5Qcm9maWxlSW5kZXggPT0gNTEyKSB7CisgICAgICAgICAgICAvLyBlbnVtZXJhdGVkIHdheSB0b28gbWFueSwgaGlnaGx5IHVudXN1YWwgZm9yIHRoaXMgdG8gaGFwcGVuLgorICAgICAgICAgICAgRVhQRUNUX0xFKHBhcmFtLm5Qcm9maWxlSW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBzZXR1cFJBV1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfVTMyIG5GcmFtZVdpZHRoLAorICAgICAgICAgICAgICAgICAgT01YX1UzMiBuRnJhbWVIZWlnaHQsIE9NWF9VMzIgbkJpdHJhdGUsIE9NWF9VMzIgeEZyYW1lcmF0ZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCA9IG5GcmFtZVdpZHRoOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCA9IG5GcmFtZUhlaWdodDsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uU3RyaWRlID0gKCgobkZyYW1lV2lkdGggKyAxNSkgPj4gNCkgPDwgNCk7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ublNsaWNlSGVpZ2h0ID0gKCgobkZyYW1lSGVpZ2h0ICsgMTUpID4+IDQpIDw8IDQpOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5CaXRyYXRlID0gbkJpdHJhdGU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbXByZXNzaW9uRm9ybWF0ID0gT01YX1ZJREVPX0NvZGluZ1VudXNlZDsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5lQ29sb3JGb3JtYXQgPSBlQ29sb3JGb3JtYXQ7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwQVZDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQVZDUFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQVZDTEVWRUxUWVBFIGVMZXZlbCwgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX0FWQ1RZUEUgcGFyYW07CisgICAgKHZvaWQpeEZyYW1lcmF0ZTsgIC8vIG5lY2Vzc2FyeSBmb3IgaW50cmEgZnJhbWUgc3BhY2luZworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9BdmMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uU2xpY2VIZWFkZXJTcGFjaW5nID0gMDsKKyAgICBwYXJhbS5uUEZyYW1lcyA9IDB4RkZGRkZGRkU7CisgICAgcGFyYW0ubkJGcmFtZXMgPSAwOworICAgIHBhcmFtLmJVc2VIYWRhbWFyZCA9IE9NWF9UUlVFOworICAgIHBhcmFtLm5SZWZGcmFtZXMgPSAxOworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLm5BbGxvd2VkUGljdHVyZVR5cGVzID0KKyAgICAgICAgT01YX1ZJREVPX1BpY3R1cmVUeXBlSSB8IE9NWF9WSURFT19QaWN0dXJlVHlwZVA7CisgICAgcGFyYW0uYkZyYW1lTUJzT25seSA9IE9NWF9UUlVFOworICAgIHBhcmFtLmJFbnRyb3B5Q29kaW5nQ0FCQUMgPSBPTVhfRkFMU0U7CisgICAgcGFyYW0uYldlaWdodGVkUFByZWRpY3Rpb24gPSBPTVhfRkFMU0U7CisgICAgcGFyYW0uZUxvb3BGaWx0ZXJNb2RlID0gT01YX1ZJREVPX0FWQ0xvb3BGaWx0ZXJFbmFibGU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9BdmMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEhFVkNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSEVWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IRVZDTEVWRUxUWVBFIGVMZXZlbCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9IRVZDVFlQRSBwYXJhbTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvSGV2YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLm5LZXlGcmFtZUludGVydmFsID0gMHhGRkZGRkZGRTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb0hldmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cE1QRUc0UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19NUEVHNFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fTVBFRzRMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fTVBFRzRUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvTXBlZzQsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLm5TbGljZUhlYWRlclNwYWNpbmcgPSAwOworICAgIHBhcmFtLmJTVkggPSBPTVhfRkFMU0U7CisgICAgcGFyYW0uYkdvdiA9IE9NWF9GQUxTRTsKKyAgICBwYXJhbS5uUEZyYW1lcyA9IDB4RkZGRkZGRkU7CisgICAgcGFyYW0ubkJGcmFtZXMgPSAwOworICAgIHBhcmFtLm5JRENWTENUaHJlc2hvbGQgPSAwOworICAgIHBhcmFtLmJBQ1ByZWQgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5uTWF4UGFja2V0U2l6ZSA9IDI1NjsKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uQWxsb3dlZFBpY3R1cmVUeXBlcyA9CisgICAgICAgIE9NWF9WSURFT19QaWN0dXJlVHlwZUkgfCBPTVhfVklERU9fUGljdHVyZVR5cGVQOworICAgIHBhcmFtLm5IZWFkZXJFeHRlbnNpb24gPSAwOworICAgIHBhcmFtLmJSZXZlcnNpYmxlVkxDID0gT01YX0ZBTFNFOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvTXBlZzQsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEgyNjNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSDI2M1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IMjYzTEVWRUxUWVBFIGVMZXZlbCwgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX0gyNjNUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSDI2MywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgcGFyYW0ublBGcmFtZXMgPSAweEZGRkZGRkZFOworICAgIHBhcmFtLm5CRnJhbWVzID0gMDsKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uQWxsb3dlZFBpY3R1cmVUeXBlcyA9CisgICAgICAgIE9NWF9WSURFT19QaWN0dXJlVHlwZUkgfCBPTVhfVklERU9fUGljdHVyZVR5cGVQOworICAgIHBhcmFtLmJQTFVTUFRZUEVBbGxvd2VkID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmJGb3JjZVJvdW5kaW5nVHlwZVRvWmVybyA9IE9NWF9GQUxTRTsKKyAgICBwYXJhbS5uUGljdHVyZUhlYWRlclJlcGV0aXRpb24gPSAwOworICAgIHBhcmFtLm5HT0JIZWFkZXJJbnRlcnZhbCA9IDA7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9IMjYzLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBWUFhQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX0FORFJPSURfVlA4RU5DT0RFUlRZUEUgcGFyYW07CisgICAgKHZvaWQpeEZyYW1lcmF0ZTsgIC8vIG5lY2Vzc2FyeSBmb3IgaW50cmEgZnJhbWUgc3BhY2luZworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9BbmRyb2lkVnA4RW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgcGFyYW0ubktleUZyYW1lSW50ZXJ2YWwgPSAweEZGRkZGRkZFOworICAgIHBhcmFtLmVUZW1wb3JhbFBhdHRlcm4gPSBPTVhfVklERU9fVlBYVGVtcG9yYWxMYXllclBhdHRlcm5Ob25lOworICAgIHBhcmFtLm5NaW5RdWFudGl6ZXIgPSAyOworICAgIHBhcmFtLm5NYXhRdWFudGl6ZXIgPSA2MzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb0FuZHJvaWRWcDhFbmNvZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBWUDhQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDhQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDhMRVZFTFRZUEUgZUxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX1ZQOFRZUEUgcGFyYW07CisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb1ZwOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0uYkVycm9yUmVzaWxpZW50TW9kZSA9IE9NWF9UUlVFOworICAgIHBhcmFtLm5EQ1RQYXJ0aXRpb25zID0gMTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb1ZwOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwVlA5UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA5UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA5TEVWRUxUWVBFIGVMZXZlbCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9WUDlUWVBFIHBhcmFtOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9WcDksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLmJFcnJvclJlc2lsaWVudE1vZGUgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5uVGlsZVJvd3MgPSAxOworICAgIHBhcmFtLm5UaWxlQ29sdW1ucyA9IDE7CisgICAgcGFyYW0uYkVuYWJsZUZyYW1lUGFyYWxsZWxEZWNvZGluZyA9IE9NWF9UUlVFOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvVnA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNDI3MmMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBNRURJQV9WSURFT19ISURMX1RFU1RfQ09NTU9OX0gKKyNkZWZpbmUgTUVESUFfVklERU9fSElETF9URVNUX0NPTU1PTl9ICisKKy8qCisgKiBSYW5kb20gSW5kZXggdXNlZCBmb3IgbW9ua2V5IHRlc3Rpbmcgd2hpbGUgZ2V0L3NldCBwYXJhbWV0ZXJzCisgKi8KKyNkZWZpbmUgUkFORE9NX0lOREVYIDE3MjkKKworLyoKKyAqIENvbW1vbiB2aWRlbyB1dGlscworICovCisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRWaWRlb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdCwgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0LAorICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRSb2xlKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBjb25zdCBjaGFyKiByb2xlKTsKKwordm9pZCBlbnVtZXJhdGVQcm9maWxlQW5kTGV2ZWwoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiogYXJyTGV2ZWwpOworCit2b2lkIHNldHVwUkFXUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgbkZyYW1lV2lkdGgsCisgICAgICAgICAgICAgICAgICBPTVhfVTMyIG5GcmFtZUhlaWdodCwgT01YX1UzMiBuQml0cmF0ZSwgT01YX1UzMiB4RnJhbWVyYXRlLAorICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0KTsKKwordm9pZCBzZXR1cEFWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBIRVZDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0hFVkNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSEVWQ0xFVkVMVFlQRSBlTGV2ZWwpOworCit2b2lkIHNldHVwTVBFRzRQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX01QRUc0UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19NUEVHNExFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBIMjYzUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSDI2M0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBWUFhQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX1UzMiB4RnJhbWVyYXRlKTsKKwordm9pZCBzZXR1cFZQOFBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOExFVkVMVFlQRSBlTGV2ZWwpOworCit2b2lkIHNldHVwVlA5UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA5UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA5TEVWRUxUWVBFIGVMZXZlbCk7CisKKyNlbmRpZiAgLy8gTUVESUFfVklERU9fSElETF9URVNUX0NPTU1PTl9ICmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYgYi9tZWRpYS9yZXMvYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVhM2U0YgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfMzUyeDI4OF80MjBwXzMwZnBzXzMyZnJhbWVzLnl1dgpAQCAtMCwwICsxIEBACivKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tLT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Ozw/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9EREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PDs+Oj06Ojo4ODo7Ozg4Ojo7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj47RDw9Ojw8OTg6OTo6OTs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEFBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vMy8vLy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vMzMvLy8vLy8vLy8vLy8rKy8vLy8zMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2trb29vZ2dnZ2dnZ2dra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vb3Nzc3Nzc3Nzd3Nvb29va1NPT09PT09PT09PU1NbV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhkSUlMTkA5OTozO0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NjZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKi4eBgoKCgoKCgoGBgYF/kdPT09PT09PS0tLS09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5SYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uvr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU1RNQ0RERERERENDQ0RDP13R09PT09PT0tLS0tLS0t/q6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8NztAQz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dYUUlJSUlJSUlJSEhISERg0NPS0tLS0tLS0tLS0tHf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183Nz9HR0tLS0tLS0dLR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYWJiYmJiYl6MrKmpqampqampqampqqNnYWJiYmJiYmJiYmJiYlxUVFRUVFRUVFRUVFVRa9DS0tLS0tLS0tLS0tLR3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc3Ozs7Ozs7Ozs7NzMzMzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7Ny8zMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxcbGxsvMy8zLzMzMzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vKysrKysrKysvLysrLy83V1dXW1tbW1tbW1tbW1dfY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0tPPz8/S1M/P0tTV1M/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDQ0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1dbW1tbW1tfX19fX19fX1tbW1tbW1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrMz87Ozs7O0qucz9DTuZ/R0JyChIrIz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tbV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQkA9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaPVspeYtbaTuLmvotLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGdw52ipqvSkX1+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjk2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipiq1M/Pz9G/mKCbsq3Ihpmt1dLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+Pz46OEVAP0I7NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2YqtTPz8/TtJmWqrik26OYrdXTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqOPoNihmK3V1bCiqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLlqHZoZit1dSjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tfX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OT06Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZmp2qGYrtbNnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZabtNqjmK/Ywp+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLT09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoqukmszYoZmt2rKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iRjbTV1LGEw9a5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0g9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0dLRw9XS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExAPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEQ0k7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/f4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERD4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4ODk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERT48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE8Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk5Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb2tra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUQ/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcXR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHV8dn2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NDM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tra2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODQ3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5uLi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NDY4ODY4Njs6OTw9PTs6ODY2ODg6NzY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2ur7O0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY2OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubq5ubi3t7a1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5ydoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS1tLa2t7e2tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmZmpmXl5eXl5aZm5iZmZmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CQD9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6yvsLGvr7CytbW2t7W1trW1tbW1trW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6trqunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmZqbnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEFBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKuqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NjU3Mzg6Ojo6Ojw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKWmpqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpqWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6KhoJ+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpaioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mYl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJycm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaSlpKWlpqiop6inpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGjo6OjoqOlpqamp6enpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZm5yhpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenp6WkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqCioqKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn5+fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc5OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZ2dnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKTkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk5ODk8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubmpydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnJydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg2Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmZycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKhoaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njo3NTY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnaChoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnZ2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuamZqZqIREf5+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuam5qbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uZmJmZmJeXlpWUlJORkZCQkZKTk5OSk5OUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRR4OgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJqbm5ubmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ojs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoJycnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw+OTo6Oz47PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJubm5ydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD89Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTIGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1+op6enp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VOgKKfn5+enZ6hoJ6dnp2enZ2fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9QUoaem52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz4+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xWUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTE9jhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6Oz88Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/P0BEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5/bJallZ+AiX9fcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTk5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT4/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot8blJ1nIyMWnF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44OTg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3WE9McJSGgkxgb3F3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVS8wPXeHd3ZBRF5rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0FaSDt3eWtnRS84W2xzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0tvoXhBe3djYlBQWkdgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLS0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgv9amQ3uMgHVPbY51UmR/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73Ar3eeo5qUZUxheG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV1BeZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QDw+PDk5PEFCRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo+m0KGZsahYTKyTU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooZ3fn1yzsmxm6eva1WqsGJah6afpaKhnZ+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk+PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrq2PhoNuj825lZCil3RUb3pzbnuVpqqno5+eo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqejoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjYB3cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQj5DPTs5PjlAQEA/QkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWgiHlkWZ+3wKaonYh3a3FveHh6fYaOkpicoqWmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGop6alo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaBdnh5eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7PkNDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkkHNmUkSLl4mJiH54cW5nZmxpa3FycXFydHyMqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaGkp6ehn52elpOcoJeZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8r6SXiHRZWlFDaXpsb3Vua2VlWVdeWFxjaWloZWBoibTAwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GenaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozo8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV6MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3R1cq5p52UhnJeUVRLRFtmXmRrZWFgaFlUWFJWWFlcWFp0mba7q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTNbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLeUdWVVUE9USD5ea15fZWJgXWRhU1ZWVVNUV3Kbq7CqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMzY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjw4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2ViYWhjYFtjX1dRTk9PVX+0uqyupaSip6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyXl5ybn56jnJ6WmJeTlpyZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo7Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01bX2VrZV9bYFlYUk1Uf6KqubWzq6mjoa2qrKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTjJWWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZpamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIzMrCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/R15jYmpgWlhXU1V2mba+u7y6vKytpqm7urm3v7O1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZpamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwcPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1VmYVNOT3CpyMjCxMbAvL60sbCwwb6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaWlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem52elpyjoKGipKOkop6amZubm52enIN9cn14cGdga2p3bWlmdm90Y11jVVdVVE1HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oj05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/TnZ+iVZMb6TL1MW2v7/Av7q6vbWzs8C/ub/CucG3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJyfnqOgppl5enmAc3BmZWdka2Via25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDw8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2qDkJhvqcjIx9HBr729uLm7u764tbG6v7S8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2wp6alp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdo6CanqCkoqOcoqGjoJ6cnp6ppaiVfXqDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7O0A9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI9OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NlfZGLidHFv7/Jv7DBv7q3u765tri0uLy1vbi1tK+zvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9UTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1o23v7vDtbrHtrW4ury4ubaqo5iOf4PJv7+7wb65xr3Cv7zFuLe3tbi2try7uba0uLq1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdvamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3p8y9x7e5t622tLe5s7WxvMnDlUt6yr6/vr28v8jDxcW+x7i1s7O+uLm4vru6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZjbmBcVUhLSkRKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiTvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNavdH+6yM/CwLiutLS7vbe5sb3Dyo9DdM3Dwr++vbzHzMfHxMe8trW3wb27vMDDu7/Cv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsam91b3hkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmnFyq9LRzMrEtbq/xMi+vrS/wMB5Um3LxsK+wby/w8zKx8XGwbm+vcS/wL/CyL3HxsXFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xNDDur68xL63vMC/yc/HyMrKwodyc6PLzMvNysbCw8vOwby4vbqxcGNiu8jEwMC/xMDKycPDw8O5w76+ucC9w8bCys7Hxr26xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdpqGfm4J7eoh7bW14fGBxZFxfYGBUST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V6dniaxMfLyMHDwMDJysG/u7mxoX1zaq3IxcS/wMG/y8fDwMjAu8K7ubS7u8PDwc3QysS9tby7ub+5urW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenbC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeXRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Ozw/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S5bazOvba5wLyrfm5obmxygZWYc3d8l72/xsC5wLy+xcS9vbixsJmQfoCbysLDvL2/v8PDvr/Ivb7AuMi+q6Ghoaa5wcnFuLK4uLe9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNtHaAs722tcKlh2laXWBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmYiRfsDEw768v7u7uLbBwrbAu8isvK26uJ+TkZujt7SwtLS1vLm+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnd4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeImgr7Wea2VmVlhfSUlNUFNsd4WlsLe+ubK1sru5vLa5vrSVnKeWoXCuycTAvb+5s66yvbuuu7uUj87c5uLRuJqShn+dra+us7q3ur67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WriHx2jKCZYFRDV1ZIYWtWT0ZJYI2gq6+2urW0sqy8ubi1uMG9i5myo6ZypcvCv7m6ta6lrLOwprO5mujj29XX1c+6iXVqbJisp6+2s7K6tbu7u7W4trC1xLK+vL68ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIiPb05KP2NaQU53gJRrTUFcgbC1s7WytK+su7q4trm/xnaEqp+bZae/uLWysa2tn6Snp52ror3Lq6i1ys/Py5l0a2xyoKSqra6nsKyvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6PTg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6GWkpKWHaNgGNAUqK5s7SysLGtsLm4tru3ur2QorKspHOrsKmrraujqKCdnp2Ymq6zWjhLearFysaigIWSiIieo6mooKanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xrKqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVNETkM9ODg3NTo3PD06Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7G7qpmZlWlOQFJ4cVBJSUtnm4FZRVGtu7Gss6+urK22trK0ta6ppp+am52fpqieoKipn6GnlpuWl4ysfTJSaFZ0r7WxnoyaoqKblp2jop+epKCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHmDfHZ/emN4bW5cUWlVUE9HUE1NQ1BSQD87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovMKrpL5pRVKcglFXSUlfS1OOYWRigK61qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+dqJOZlJWLoGNehod0WoyjmZuYnaGkp6adnp+gnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5ibmpukmZeUlZqdoJ2nqKWgo6Kho5+coKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn59gHV2fW5se2RoVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoarGv8qhUEFynnhPbktLYmV1c2BbXnCPsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWlpaUj4huh7q/o2Nnk4eUkY6eo6Kmop2fpp6dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpycl5uhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoZ+gpaKmoIl8gH53eX1leXlhYlNWYUlJS0xTVUpTUU05PkE2Nz02NTs6PDw5Ozs4Ojw9Ozs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg1NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2jx8ePV1NJZKNdZX5vcl1Qa2NbZF9da4+0sLC4rKahnJ2alJiamZCOkZWRjI6Nk5minJeimJmWlpmIeqTH1tWfT2x/iYCDlJqYm6ujobCjmqOmpqqioaqiqaSosquxsqu5qKarp6urqKysp6Ggo7GusrG0qrKvo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaiip6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ1dXFidnZYV2NgY2dZWFdlrK6sr6efnqKhl5GUnKCcmZiSk5+coaOanpqWnpmdlpqXj3efytqysmdGZnp4f4OBe4q1r6azrKGtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlqCcm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYN/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThFPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NR5esqqmloJ+akZKUmJiWlpWMiIuOlZ2cnZyelp2YpZ2gmpNwhr2yU4p1eXFlaWplXlBrrLqstLSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xuLe8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZqKCfn6iopaWfnaqiop6bn6igpKetmaCjnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYaFfnZybWl3bWhuXVhbQ1dOSkdOR0NHTj0+TD41PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXioramqpqCen6Gjnp+em52clJOVlZ6emJSFnZmfmamirKCSgnuIg3qBkKWHc1pLX1pJQKfBtbm7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWuo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtrdXJxaFdcUUZVSERKUEk/RkI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ozo5Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPUM/RTw/OTZOf6qzp6SkoqCepaymn5idlZKanpmVjIqGiIZ4bIafoqGpqbSReYyHh5ajpKaIYm5rka6ATES3xL/EyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DCvcfHwrjEysnEwce/urS6u7S7t7C2squ7sq67t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2ZaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojo/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66noqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8cGJCPVyOrqyhmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxvjaSrrbKnc3Z5bmxsgoR7hVlWeYzAp2FuzMTEy9DS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM+/ydHNx8bJxsK9xMG+vr+1vrOtv8DDxMjFyMSvv7myuL3EwsG7vLy1rqenrqigoqmkmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2dfWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uFnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanaht7WZl29lZlxNVoOAcJB6aG9ftKdsn9PPxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysvCx8zHycnGv8Ozs8jFy8vMz8fKv76/vcHHxczMycnAw8CusLOonqGqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2Nnd2plV1hSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGdY1NMSkRDP0JSrdG9sq+mnJycoKShnZuUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJtg6yYi5ppV2NYX2RwgG1+j3JPc5uZgMbQ0cLP09bY1dXSy8nO0MvGzdLJ0tXX2dbY09bYzdLKztHMz9HN09DAycjLxMzNzM/QxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXNjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCio1tJQEFEQUZQdbGvppqUl5+cmqCgnpudmpWJd2lkYV9gYF9eX19dYWx1c3BvbmtwbnKGjYuOYk9cVFxgUWZeWGVaTWp3eYfV0dDL0M3T19bT1dDP0tPRydPRx9DX19jS2NLX2dTWzM/Pyc3SzM/RwMfEycfPztLR0cjMzcDLzcbUz83PyMXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0ZDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjw6PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1qbW9zdH97cWtlVEdJUVBHRT1KUFxfdVtz1dTQyc7M0tbS0dbNz9XV0cXR08rQ1NXWztPR2NfX18zIzsTKz83KzcDKwcnKzs/QzNDOzszP0MjM0dHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZFTVlFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXVxibXJubXFxcnF3aU9+jWpRWEtXT0tgQEtbUm1idtHSzsbNzM3Uy87SzMrW1tDM0NPLzNDS08rO0dXS1dbKwMrCxs3DycrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzc7M0MXHwbi5vcTCvcO5srK+sLvDw7WqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdNSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb292j5qNjJeVkJORkZWWlZCLe2ViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbnBmfYt6ZmdbSlZdYzxBVkthaXfOzcbExs3K0cfKzc3F0NLPzczUysfKzs/Hxs7Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwL28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoahqZONjZaPhYODg4F9hIR/c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lqdoORkn1oaFRXZlBCRVxWV115ysS/wr/Cx8nIyMnHv8TLxcfKzMnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKx8jG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlNANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp7nZGKkpaGeoCEhX91eHVycF9aW1xgYGJjZGRlZGBbXF5dXl1fW1laXGFucW1pZmdraGx/kp2Oc2VaW1NBQkVPUlNWkcK3uLu5t8DBwcO9vbi8vrjDycTGwbzGv7e6w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszHssfJw87MwMXCv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FGQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1tTV183Kz8XJxcfBusW9rK6nYGN3gJKLiIuEeH+Ghn99g3t0dGNcXF1eX2BiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWlrcomikn9mWVFRU05AO0dMcKCzrrKysrKyurS7sLavs66xusG7wMS7v7q0sbq+wLjHuLS8tsHCvbi9xsHDu7Wvs7W7v7TFuLu1rLm9vsC9sbq2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/FxrvHy7/PycfDxcHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhYiJenh+hYZ2d4F8c2hdXV1dXmBfYGRhXmNlY19eXFteXF1eWltbXV9rb2xmY2ZoZ2p1kY+DbV9TWGRdT0REXZWYo6atqqiqp7KstK+xp62mq7K6ubXCubm5r6q0ubqzwbmvwLG9vLu1u8e5w7atqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwL66w7/Gw8XAvMbBx8q4xcfFv8fDwrnExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE7Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFzdLLw8XBxM/GzcHDxr/ExMPDysLJyr/AvMK6s7W1w6+qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZnaniHfm9oXGNsaXFzhJSXj5KdpKqhpqGpqKupr6KlnqmstLWwvLivtq6nrbezs7u3s7yvuLm1srvBssGvpamjq7Gzs6i9qquoq6yutbSmqK6hpLCps6anqK6mqLessbO3urq7sry+vr7Ev7XBwMfIt76/xbfEw7+7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq4wcPCtba8trGvtbyuqKuTY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhtendxcWh0f39oa5OakI2GmJukoKCeo6Olpayem5qjpauwr7a2pq+rpqmzq7O5sLW1rba5srC6urG2paCkoKaxqKypuaqlp6eop7OtoKemn5ykpayfn6ekoaGxra2ssrWzs7C1vLa7wcCyur7DwbG5ucKzwL3Atbi7vb68wsfEw8S/v8SghHhxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTs6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBhYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZml2eHRvfIN8UmeNlYqKgJSZnKKZnJ2ho6GlnJmhmp2prqywtKKoqKmrq6S0uKy2r6yytK6zta+wqp+en6SisqSmqritoqamoKitqpmfn56ZnZ+lmpmjnJyesKmsqKqrrK2wsrivuLm6sLa8u7qrs7K5s720t7KxtbS/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2RkbXpybnd+Zz1ljJKGioKRmZqim5eaoaSgopqdn5mXrKysrbCgpKGsqqahtK+wsayor7KnurOmtaCin5yjoq2joqq2qqKjpp6mpqOWmJ2XmZqdoJqXnZydnK2hrKijpKatq7KzqrWwsquyubWvqq+ysrO3s6+pra6xt7G6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxr/FtsHAx863wMO9s7m5ssC2sbm7rbK1r5+apKqglJuQeH+DhH94b3F0cWhlZGhkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGZycGtye1A5W32NhoyFjJiWmpmSnJ2moZydpZuamKmkra6pmqGhtqign62otammp62wpLewo7ego5yZmaqmoZqtua+joaScoqCfk5WhlJaWnJmYlpeclZ+pnqqkop2jqqqwrai0rKqmrbKwpauts7GvsK+vp6insq2xtLC7tLq3rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMyMXCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGqlZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1tZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2BiZ3Bpbm45LjBMgImNh4qTmJaakZuao6KgpKSdm52knamtpJ6gobWmoKCip7Khpaelr6Wxrau1nqCdlZWpoaKUrbGxn6Kjnp6Zm5OLoJORk5iYkpeYmJeep5unoaKapKWlq6SlsKeloqusraaprq+vq6iqqrOmpquvtLGuvLaxsK+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ozc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wvLG3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmgpIyKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1dYGFoa2thLh8rTHWEioWIjpqTmpGXm6GeqaKhoaGioJqnqKKYnKKwqaCgnKSpnaeinqysqqmtraKhoZWYopqcj6uosJyfop+el5mTip2RjZKTlZCYmJOcoaOcpKGilaCipKWbo6uloqSqpKutpa2yqaalpqa1pqmorbO1tLm6r6usnoxzcXBhW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1yb2xvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlBYXFpbXFxcXVxfYmlqYj0rPUxugIeDh4iSk5uVlZqkpKakqKSnpKCWo6uik5ejraefm5ian56umZyqs5+lpp+jo6GUlJuWlpKpqa2anJ+hoJuUkIyZjYuRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6Crr6OtuKWjpKKsraqoq6+0t7K9tbOrrpiFdXRpXFlZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs6Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUFhZWVlcW1pbXV5jbnNTRFBbYHyCfYmGjpCZmJSZpqSiqqilraGllpypnZOToqelnJePjpmdrZaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6XjoyLk4WIjYOPi5GVkaCeoaSZlp+VmqGinpSbpaWoqKigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRf3N0YldUVU5SSkdWUFJSTExYTktMT1NHTktBQ0ZEQz5CNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGppZm5fblxqf3iIf4qKkJORl6OWmqWjoqibpJWdopmQjJ2hmZaWhYSRmqOPlaOclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBi42AkIuSkpKhmqCilpSZmJWippqNmaWnqKehoLSyqLO4oZ2jtqyqraSysqa1vLSrrLGiinp0bl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhEPzk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg1ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrLq9tLjAr62psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSUlNQUVRRU1VRTk1LS1NXV1ZXV1dXWlxhZVlfXGxfXnhvg3qEgIuJi5abipWXn56glqOTnpmTioSXmYtzjIJ9jZaVhZKZkJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+c4qOepCHk5CQnZuampKWkJ6OoqOOiZqgoaOkm6K0r6yvrZ+YprimpbChsa6csbuqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz44NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaamprKnprTBuK+0sMnEuLnAzsa+s627waytxK2noaaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZmJcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5PTk9PUFNUUU1NSkdOU1NTVFRTVVhaXGhYWldpbWVkRU9piHmNfoWVkIaOjJuVmpSVlJGMlIh+koheO1Zue4qTiYCMkYyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cW+GjX6JgZCOkJiamZOLkIqdiJ+YiIiWnpqhoJenrqmtqamelq2zoqWtma2rmKi0o6mtopN/dG5gW05TUldMRFRKUExMRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgp6mno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVV1lgYFRSYm5jRTg3eY2Jh3WAjYaAhYiWiZSViZGFg5KEd4d+X0lQbXeKkYN9hIyKhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqJlYSbjYKEkpuWnp2UpKOoqaWlnpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVVLUVJQR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaenr6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+KlKmWlYt/joSDfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1NVWmZcVGBnV1hQSoh8jIBsd397d3+Hjn6PmYuOeIONfnN+d3FtdHB0jY2Aen6JqoR6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYuIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoKCWnp6kgnNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTFJVTkZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJyftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1dTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZeYl5cYVVlfo2SiYpzYHJ5cHN5g4t4gJiSfm6EjXp0eW5qfa18dJCKfnqGkoB8f3RmdXyGbG9oc3yKjYiAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHlvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pRT0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS0uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrqunqbCvsau7uKu6vrizrKebsKesm4+WnKWppKGYmo6EknqJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFRT1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWFxcW1dWd5ebu3prb1tzcGh2c4KLdXiIg2xpiY92cndoaH6BcZaRioB9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe31+e3dwdXSGgnmBeXB8jouKk4OWlpiakJOWlpmWnZaMg4mfkouSjYaQloBvam9vb1lWWFRSUllPUlVUU1hVTU9ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ian6Ssr6Ktqqi1r66ss7+rvMK/pqKalaSYno2Ei5ShopiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkJGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9KTU5PUlZaUVZSUJh6V5BfaG9ddmlneXSFhHF9g4FxapaPcnF6aGicjkx5hJGIhI1mMXaHcmt9fYN0ZmV1foSEhYBmaWx1a3CAfGhxcXxuk42Pe3R9fXFxb3Ztg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkYyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz88Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FIUEZdpamXZnFuZHVma3x7f3x2f4KCdm+ckXF3fnFzkoY1cZynnI2goYSihXZwhnuGfHOMrY2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58dHJxbWBcXV5cWllhX1JOW1pYV0xISUZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSh5WRnaSnnq+VpbSprbGuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4V1g4NslYiIfHV4eG14bndkal5JUEc+Pzc0NDg7Ojs9PkBCRUhLTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU1QTDdDTVBRQkZ7aXRycm12ZnCBgXZ4f357iHpznpZ3fIR/g5iDmpxghamenIuDkI56dod+iYiOc4qXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUFRYW1VHSkpFTEc/RkBERD9BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCroLGor8Cyu8W6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHdrUlhMQEUyMTEyNzY2ODg6PD5BRUZGR0lLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNTlFLSlNaVk5GX3d9cX9xdGp1iIV1d4SCepGDdJ2WhoSMkJOkjKypSIasr66KgYCUioGKgYSRqYeBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkdtgHdyeXZobWtfdn2CiH+HhIt5lJybiYqIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYSHkY6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTE1PV19WaVdYWmF/h3uKeHx5fYqMeYCEjHyVkn+dnpWSmZmkrJKZu7GmusfDp4uMoaWOk4mBkXxxg56fkZ1/d4WFio+HkGlocISBdIyGhIpyhoJ3h4B7doR8bXZ1Zn+UjoaIiIaHh6CqopaIjpd/eoGIenlvZ2t4fnyAdWxmXlpbXmpeYWdgWlBMTldSUUlQSkROR0NKRENARERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudW9md4J6f4x/gZCOipqapJyhrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkE0Li0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IRUI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTVVfXndjYmdsj4+Cj4iLg4aIk4ONi5mHnJyPn6aioamSp7Shp8HCrceveLmUmnyNoZ6YhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHKIoJWGkYmNj5aktKibjJSigoeSg31/a2pqfIKDg3VjXmVgW2hsXW1sX1dLSE5SUE5MTEZJUENETkZCQ0VGQz46OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcHaRhn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImGeHh/Z01SPi8vLiwvLi0vMDAwMjEyNTY3Oj9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExLTU5RXWmBd216dZKQjpybmZKZkJyQl5qkmqOmnKWop6izlqq9qrTGyLbI0M++m6Bwaaqpn4STkoWcoJqbmaaRkYiVo5uad3p+lJiToZOXl4GUnnt3lZKqsoiMlp58k52bjZGVmKOhpbWvnJGYp4aWj42AiGxzc32BfnNqYl5iYGJoZWBnZ1xSRUpLUE9JSkxGR01DSExGRkNCR0VCOzg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jX17k46Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3ZeYlA1NjAtMS8sLjAvLi8uLjAwMTU+QUFNUFJTUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSU1OUFlpfolyjIKVm52qtLCdp6Wno6Swp62yrq6quK+xvJuxw6q4ycu3w7+3paKws6ysqqOLlpiEpaago5eBppmNoqqopYiFlKShoaqgpKmPm7CLlaOmt7qboKKvkqKcoZ2PoqGrrquytKGUpKmHmYiSiZV5en6GgWliaV1mY19kZF9nZ19bT0NJSFNORkhLRkpHRkZIQUtGQ0ZGQjs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeYR2gZOFh4Kcg5GQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi40PkNBTVVQUlNVVVZVTltQR0hEPD4+RkhDREE3Ozw1Qzs9RktJRkhRTlBXfYuYf6WbpqCnt8C8pa7As6ivvK+0urK8sr+0ubmit8SntcjHtb24tKijs62wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK+2urK6rK+1orGrsbW7trSttJ+mp6KmmaivrLG4t7enmrWoi6SNkJKehniChXhbY2ZXZ2NiZGFhZ2FbVEpERExUUEhJSURJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cYGTfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkXt4bl1XQEROPDY6NDZBQjc2NDAvNkNIQ1FbT1FVV1VcV1BfVUlLS0E/PkdLRkVEOz5AN0Q3P0JKSkVGVlNPXoqdp56rrLirr7jFxLG3wbqwsL60tb6xvK61c6+ypLnEo6/GuLCzsbOnpLW2qrCgopabopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7irq7Ckr6isva+8usHBq5i5p5StjpeXqYh9g35tWGVjWWxma2ZXXGRZVlNJR0ZMUEdDSElBSEQ+P0JCTEA/TUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2anB+jYSAjoVuenN4h2K5oZmjiZSUlpKUk42Pl5KHh3uGgY2VioCEgYp6fIqHhn2Kg4KLhJZ9eHp1ZlBcZEdFTDtRY2FbXlNHPztIUERaY1FRWVhaZ1lUYF9MUk9EQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2PqLGvtbLBt7O3xcm3ub+6tbO5uLW8sriwxF9zsKSxmp2qvKikqKuqo6KytaGqqJ+Vlp6YoK6lp6aln6SUo6ixtKiys722wr7TycnTxsLFzMLKw8C9vL67u7a0r7i2tsK5xb3Cx6+euKmhq42kp7WIgYF0YWRjX1ljYGpnU1hhVlJVSUVFTUpAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhZBza3Jyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g4CCeHuLg4d7i3qBioKXfnR9emxlcHVZXlxQZWRiYGVkXVxYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEdCSTpEP0hLU1RVXFpbkLS7tLmxwbq1tcfIt7S4tLe4sbWzsq20tZhjdKecrXBeoqybl6Cim6SeqqWUn5+Qk46VmJionqafnpqZg6SdraWqsK24sL251NHP19DKzNLMz83Kxr++wcm8wLzAwMTExMm+x82yo7qwtK6aq7e7mIB8bl9iXltgY1pkY1FcYFNRSkNBRUZFPEBGP0FIQj9DPDpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1lpX2+WkpCUbmtvdHWHtKyhoZ+LmZyZjI2VkZuShYqKfoiGjJCLiHyBg3N8ioOFe4l0gYqGlX9ze3lsbXV7aHJlaWxpZmpqaWBmaWlsWm1zlq2kvIiGZ1xvZ11ZWVRIS05QSktQS1NRSUxBSkZKT19eYWZpYJazwq21r7e5sq/CxLOut6+vuaqxsKWqtquLtaecmqaaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloefmqebrK+psKi0tNTU1NbTzNDT1c3Sz8zEwcnQvcnJysnRxszNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhOUEFCSEVCSDtAQz5BRz8/QTc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZyj5CYgmdxb3h5g6GqnqaXjJqbl4uNlZGajn2Ji4WNioqKkId8hIJwf4eBhnuHcoOSi459cXh2bHB4fnF6bXhzbWmBcW1jam1weGl3fH7LvsHfp21jeG5jW2FgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGVrLWpsaSts6irur6vqbOlo7elqq2gq7OijbCtmZeYjI6RkYSOm4GNppGciYOLhIuJhIuElJaYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cbN0tPT1szR0cTR1sXAzsfHwqi9ts6efHFoYGRfWGFUX1tQUVRRT0g+QEZBQkU8QEE+REM+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adIaFindsd3B9fn+hnp6hjIyYk5OLjJOPlYV5hY+QjYuJiJCGfoJ7cX6AgYd6hHWFk5CIf292c2xzfXt3e3OCeHJrgXNyaXBxenlyer7Lmn2LsYR2coR2Z2FqXUNaWVtWZWNYY2pTWFxdYGNdY3d6fYuBl6ijo5+dn6akqa63qaWyoaGsoKKtoaaxnoimmpOSkYmOjYiBk4hqlaKMmYSBhn6Rg4OTl62LlY2UmY6GkpGel6iwoqGhpaSpyc3PyMPM0dXS1NLO083G1tLM1NjW1tjU19XJ1NrNyNfX0cqrwsLLjXVxZWJhWlZbVF1RS0dKSkpAOzo7REFEPEJDPkdCPkJCOjw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1ocnhygoqAnZWdlIWLlYmOiYiNho5/eIOTmIqMiIiLiH6CeHN7fYKId396hpGVgINud3Btdn92eHx0hnx6bYd2dG99doR1eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG2AgoeRipydn5yQlpedoqOksKOjsZ6hpJyfqJ+isZuFnZGRkpCKioqGg4+Dfpybi42ChIV5lH+CqZWjjZKKl5KMfpiLmpKrs5ibnKicp77Dxrm3x87S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfW1RXU1xYRkdLSUVFPTo3OkBAQjlHRD9EQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfZeRnYt+h5KDiYaEiYGHfHiFlpaJjoKHhYd6hHlxenuDhXV5hY6NnHmLcHxwcHqAcXuAcYOHgW6OenV3fHyCdX58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF5i4aNk5GalZ+UhouSmp+anKieoKuaoZmYnaSdn6uZipmLj5GNhHuHh4OEi42fmZOIg4d+bJl6hJmGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prr7HzMnKzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUypZ8fmtrXVxRVVRhSkNGSkg+QT49Nzo9Pzs9Rzw/QUFBREE+Pzo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKBgYR+g3t8hJiNh4t9hYeAd4J5b3t7hoF0eZKejqB2j3WCdHWBfnSAg2+BkIJvkoR1fIGFenaGe4m3xaTBybmBlpuPd3BlT2ZjgXqBd4aikIp4eXZ7g397hHZtk5aTlI6XkIKJjpWZlpWkm5aelZ2SkZainZiqlZCQiYyRgouDiIiBhY+RnZqZiIWLgYWXeoiJn5eQiI2Ji4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucjKzs7EzcrR1tXV2dXX29TX2drb19va2djO28aIfXxqbGhiVllXWE5MRU5DOz09PDg6Oz05PUA2PT8/PD49PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM5NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0lQXVtSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+f36AfIR6fYGRiYSFeoSHe3V9dG18fYZ/c36SnpGegpB7hn54j355iopugpqAdJmGfYGJhXx+kHqPqY6Pw6G9jJyjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJGEiIqQkpSNnJmSk4+VjIuUnpuTn5SQjY2Pin6OjY2Kg4iSlpmenoiLlJGdkYGKf6WYiISNgYWEgaWGioy3mJ2RlZaip6Genp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x7bmxoWmJdVFFPSURMQjw8Pjk5Ozo5OTs8Nj89Pjw9OTk7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlyeXNtgH6EfneFnKGbnZSRf4yIgJiIgJySb4iohXqhi3yRjYOIhJx9mpCJjKOjoJCkr6CKkIuFi4GShldyrYufq5uPg5ibj4+OXIKikYKMn5OUi4aHi5KSi5OTk46LjomHlZmbjpSVkIqRk4V/ioeRjIqJnJaYoaGGkp2Vn4qJiI2bkIOHjn+Ch4akhYyRspidkpWXoaKfmZKcnaiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1tnZoHKAd2ppX2BaVVhZQ0BJQz8+Pjo0ODo7Nzo7OjM7Oz89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2N6bWF+koNubXeLeHl+eoF8hnt7d4aEf3NwhYJ6dXZ2dISChH5/kqajn6WiloqdkJWXi4qnl3OKso2EqJKEmZOFmYyilZ+YkoianqOTqbCgkJSQjY6IloxujbeFmsTIspuhpZucmJaQsZFkpM3IlY6Gh4iPkoyMkZOIhImIhZWYmY6Pk5KGk5aDfo+LmYeNkKqWlqKhiJielpqIjoeXl4mEjoyBf4ePpYmOk6ial5OXmaGZn5mTnZujs7Wmo7zCvsjFxcnIycLL1M3N1KnS0dbV1tja1NLZzoV1g2tmYWBgUUtWXEJCR0M7QT04Mzc7PDo5PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG19iHh6fnqBgYN+dnaAgntsbop+eXx3eHyEhot+i6O0qKSrs6GWp6CmpJaVr6KDkLiVkbOajKGgjKSbr6OknZiQqJepma6wpJeUlZSQi5ialqDAjqPJuKuao6WtmZGbnLKdhoWoopyXhYiIjZSLipKOhoCFhoiRl5OLipOShpOXhYOQj5tzkJiylZajoIebmpOPipCKlpqIipaNhn2MmJ6KkJCcmpmTmZiflKCdlJ6bobGuo6S4v7TEx8S9w8O/x87LydKnz8zT0tDW2NLP2Lx1fXpgY1hjWVJJS09GQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8Szw+OzxCQTc1PDs1Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXVlKaGE7SISLentthYZ5fIR4gISBfXB4fH18b3KMeX2Be3iGi4mGhJOovK2ps72wpa6ztKmjorCtipq1nqO5pZWso5eprbimpKOfmamYqqSwsaqZmJyUlZGXoJeau7utyqFptriqsJWYnqOrkpe9o16psoKJiYyUhpB8jo18g4WNj5OTiIaSlYuOlYyKjJaYkZuZs5aUqp2Km5SRjJCRi5iaiZGdj4qJlZ+hjpWNl5mdkpyYnpShoJScnaauqKKks7irwsjEtbq9u8bIyMLQocbJzc3E19bQytSjc31sX11WYlNRSEQ+PENBQTc/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZ0hhYGJwSkCLiX6Ac4eHfIGJdYGKg35tfXx8fnB3h3eNgYd7jY+Mhoyaq8PAsL3GvLO0wb20rayzt4yosq6uvaubuqOorbm4q6emoqGjo6qvsrGrnZyjmZuYl56ipaWSo7muqL+7rK2yuaWjp32Ihp2tvLCCi4uKkIOPg5GOeoGGkIyNm4eHjZaMipSWk5CZlpunmbCZkKqcjpqPkY6VkI+Vlo6QoJCIlZujrJWWj5ScnpSgnZuYn6CUmp+op6Sio7CzpsDGw7Cwu7bFxcO/zafHw8fDvNbQzMTKind2ZV9dYl5PTENMQEVHP0E+Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJNPkdAQ05DQT1DPDs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGlGX2lnW11ck4yMiHuHi4aDjHWFkIqBbn57gX5xfoF6lHqSlJWYkJOWqLTGycDCzMLDuci9urCrubuYsra5ssCupcCjq7C8vaquq6Ojnqesr7WxqpugqpyinJafr7OnjKO6urXBvKuonLKko6iUhI6qxMOkgouOhoeEhpWUjHqDjJCOkaCLi5OQjoeXn5eSmJSWpZ+unIupm42Wj5GRlJWNkJSRjqGThpefn7OflJuUn6GapJ+aoJuglJiep6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXh8cF9bX21UTklETExMSkBBPUJEPDVBRDs6Mz04QjMzMjI2MkExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmhdTWVcZlRjapqNloqLiJKPhol5hZOPgXKAe41/d4eCgY95jaGWqJqbmLq+ycjKwtLJy8LNvcGzrby/p7q/vbzEuKzBqayzvL6qsKqkpaOsrrWut7agn66fpqOYo7O8qZyovMGjtrevq5OwrKqsl4aaqqelkIKMkqSViYB1iZF5hI2Rj52fkY6Sio6Lk6KXlpqUk6GdqZ6QpJmLjo+PlZaIfI6VkpGimpSgopy2ppCfl6Wko6WfnqaYnpWXm6WjqKiisqyou7/Dr6Wzt8zAuq7Ds7u9wbmswsLBv5pxfGRcWV5dTE1OS0dFQ0hBQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0VFOkVMQjw3RVY9PD04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSl9YYVpkZViekJ2Nlo6ekomKf4iekoR3hX+Ufn+QiImQgJagmq6npJjEvsjEyMbSzc7Ny7zCuLC6vLS9y7vDwre2vK20v7q8rq+ooamotq6vqrK4mp6soqiinau3t6qlr77Esb25s6eqtLOtrpaVpa2poJGOkrHFp5SOfJGVfYeRmI+pmJeSko6SlJKknJKcmJOgoaGbmJ6XiouPjp6IWo+Wl5KWpJlmmaSfs6WWo5WrrKuonJ+ml5mWmJWipKimnrWrqbq8wrSmtLXLwbiqtqyzu7iuqLi6vLeEb3FdW1dYUEdLVE5LP0FHRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclaGXqJWMkIOGpZKIgYeCmoSDlZCQk46aoZ+vvq6hyL7FxcjHzs7P0sq+vLaxu7u8v8+2xL64ubezs7azuLSsp5yrrLmrqaivsJijrqWopKW1wLCrrLS+w7nAuLOnuLS3sq+VpK2wsKWLk5SgjXPBmXyWmYSOlpqLsJWZmZSRkZmYpKKUnpqVmaecmqCfmIqMj5WdX0qWnJqUmaWXVJawn6+dn6WVr6+tppuhppSTmZiOnaCmoZm0qaqzvLu7q7Cyx8C4paurrbGxo6GysrSlc3JoX11RU01GUVFQUTtISkhGR0FDPTlLVD9BOj1GTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUZBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pVzw6QkNAPVJFV1N0YlZGSKqXmZ+hqK6YkZeHiqeWjoiShJ+HhJ2Xjp2gmqOltcm1qce8w8TJy8nIzM7Hv7uzr7q5wMLNtci7wbm2urKvr7S1p6Scq7S1q6qmrqyapK2mpamsur+oq7e3vsHAvriyssKwt7yso661rbqmiJqWpZt1vp+EmJyOkpiai66WoJualpSZnp+onaafmJmpmaCmnZePjJCdgm11kqKalZyin5CusqKrlqqrmKuvpaWhpaqSkpmciZWcop6WsKapqrq2vrOyrr65tqCjpqilppycrampjWZpZGJUTU5ISU9KVkw9TERNSUpAQ0Q8UVU8QUFCRU8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ7Zlc8Oj0uLlNhTFZIfmVeSEaslJuhn7uumJSei5Kqm5GSk4iqjYeinoyjrZSjpLbHvbTBu8LCyMnGws7Iwr66sq+5tcHDyrbGssG8tbusqa2tsaSjmaq1u6eqp6yqnaivqKSrq767qK29tLe+x7y2tbjAsL3As6q1tqy/po+ilpCgn7ueiZqfmZadnY+2nqibpKKam6CZp6SxoJqdpZynqZyXk46Um4qWiIykoZScop6hta+lpZOyrJqrrZ+fpaSrkpaVoISQnp+claikoaGztLq2rai1srKdnaOlmpeVmaqhnnhkYGJgTElHSE5RSU1FRkZCUUpIQERHQVZTREg8QUdRMTpCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdEqJeknp7DrJuXpJeYqJuVmZqOqpaVqKaVrK2Zoau3xcG7v7jBwsDIxL/Nx7y+urKwuLS/w8i2wLC8trq3p6SrrK2hoZurq8Sipaispp6rr62iqqi+uKatv7C3t8e3tLm4v7G+wba0srWwvqSWo5WSmpOtn5ChoqSiop6QvqSonairnJygmqWfvKKXo56hqKqgnJSMlJ2TnYaOhI2TnqSgnbaspZyXs6easKmgm6ufoo6alqCFjqGanJKlpJqXq7G2squlqq2snJigoJKOkJapn5RpZlxjX1FKSEtPTUhFRElAPU9IQDtGSUhbUk9LPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1NGPEt4ZmNYTqKbo5uexaygnqudnK2fkaKelqSgpqqrl7exo6qztsXCvcC2v8G8ycK/ysi2uLa0sbS0t8LGt7+xuLW6tqCnrautn56fpaTBpaGqrqCkqa2woqaovbWlsby3trbEsrO3ur6yw8C3uK20tbWjnKSUkZOgrJ6YoZyoqKqimsKsqJ2rrZqanZiln72hnKSXqqurpaCYjZqfkp2Ijld/lp6loaC5q6eTmbejn7OioZyxmKGQm5aego+gl5eOoqOVkKWusqypoqKlpJWVnZiLj5KTpJ+JY2dcZWJOSktLT0ZFQUdLPj1JQTo4SkpOXVFRST1MVlw5Rkk9RU1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCen6GYnsOnpaKzoJuxppKpo5+jn62pq528samstbLIw8HDs8LDvcfEvcXKvbCxtq6xtbC/xbW6sbC6tq2bqbCqq5yepqGowa2crbGcqaKusaqkqL23pra7va+3xK2ztMK/ssazurertbatqqKllZSToqugn5+ap6qur6+7saWfqamYmJeSoaO4oKCjka6vq6SlnZGgnZSdjpCMlJ2aop+otaenjZm1nKOwm6CdsJGhlZmVm4GSopaQjqCgk4ulrLClpqKdoJ6SkpqThouSjZyfgGRoXWlnS0pNSlNBQ0BJRzs7Rj45OU5NVV9SU0o+T15ePUhQQk1NSThOZFxMRUxSVFlbU1VPXGJIQT9aUUFIQUtBN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA7dl1eP1tVX2dyQDg8SJZ3ZUE0n6Sem5/Cp6OpsaCjtKmUsaqmoqSyrK2pu7OtsLS0x7/Ew7W/xL7KxbbBycK2rLWpsbiswMS0uK+ttrqlmauyrKuZoaeYrbu0nKiwm6yfrrSyqKu6sqe5tLeyucGqt7PDvbTFp76urbe1qaisoZaVkaWjoqKXl6Sut62xtLafnqikmZSUk6OgtqKkpZWtsbGlqKSgnZqZmZWXqKCfmaKer7Oipo2Yr5qlrZiboKeTnpCWmpuGl6CUjZCdnpOLqKmroaegmp6WjY+ZkIKGlomVn3pla15ta05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQVdhXUJJU0hXS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbY1ozMzkwNnBbYkgwNUpxaldEV0aMeWZDO6SknKClv6Worq6gqbWpnLevq6OqtLaxsLi3sLe3uMW8w8e9vMPCyMG6wsbCu6q2pa27rsHDuLirrrK8o5Wusa6zl6aokaq6qaGnsJ2qoK+0s6uqtrWsu6yzsrq3rLmwwrq+v6bDqrC3r6mrq6admJiqoKGgkZegsK6zqrC4mZuqn5mWkpemn7aopKKir7Czq7Gmqp+bn5+bnaWdoZido7SwnJ+RlKaboaqclqSimJuMl5qUlpeelImRm5mUjqmop5+jm5mbk4ePmYt9jJeGj5psaW5ibm9YUVJaVEFDRFVAOzpJQTc6WFBkXlBXV0VZX15NTFNOXkxKP1pkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPURGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtlQDE3NDdnWWFGKEA4bX1pXFY7iXtjQz2on5yhqbyhqq+qorC3qKSzsquhrLW9rrO5vbu9t7bBwr/Jw7nEw8HBucW+wbmwtqist7K8v7+1qq+yuJ+XrK2pr5ipqY6nu56lrbOfq6KxsLOsqrWztbytr7G1rLC1ssC6xberva+xt6ytqaKxpZ6lqJ6jlo+Yn7Kpsqmpspmdp5ualIygpqS0rqeirKytsKeyqrCpopueqKOelKGZnKi3qZiak5Kfmp+ioJKtoZubiJeajJ6anZSLj5eXmpempaOgnZaWlpOAkJWEe4+ThIyXZ21yaHFzX0dZZlZEQ05YRFo5SEI1Pl1RaFxOWl1IW19eTk1TWGRKS0NdY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTE9YFZfOClDM1lVXGhLNYx6ZkxApZqgpKy1o6yopa6ttaiusrimp7C3xbext7/Bwra1usW+y8S5w8G7wLrFuMG6s7Ssqrq3u7u+tauvsbeZmaisrKydrauPq72eq6+xo6mfsa2zr662sbm2qq2vsqi2sLS6vMqyqrW0sbSwr6ehs5+aqKyfpJWVmpmxoq2gpa+WoqSZmZKMoqWnsqmhprGrqbSlrq+zrqOYna2nm5eempqsuaOYlJGPmZ2hmZiVrqKgl4OWm4+enZmXkYqUk56apaKjoZmWk5KVe4yQhXqNi4OLk2xueW92fWFGYGpaSUhaXD17SkdFNkFjVGlbTVxhS1xdW1JSU2JhTEtFYGFgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRMRZqWn7CosKmspKOurbWotrK3o6yzt8m7tbu8wL61tLfDwMzHvMO9uL/AwLjAvbK9rqi6uri3w7esrrK6lpenr62opLKqlK+7pKyysqeno7K0sbKxtbC3s6murLKnuK+2tMPFtqm1tauwraqno7aen6exn6OUm5iUsZ6nm5+pjamjnZyVl6WlpLenorGzq6ewp62vtKykmKCsqJycnZyVqrmclY+PjJmdopiRmamlopmGlJiRnpyYl5eJl5CXmqidpKCSlpKQlXaEkIZ7hoOEjIxucXh2fIBcTGVsXEtOY10+YntHSThHaFdlW0xeYk1ZWldUWFVqXVBQSGFeX1BLR1FWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcWpMRUSRmKStpKytqqWjsLGzqbavtZ+rtLnIuq7CvcO4s7K1wsPOxMDCvrW+wcC7v720xKmrurG3uMC8sK20tJ6hp7GupqaxpZ2xtaypsrCrqKm1uqy1srWrs6yqq6msqbmusrDHv7ikua+pra2mp62xpaSjrqOonJ2bmq6Zo6Kio5Csn6Ogn6GppqW4pKu0tKSqq6msrrauop2jqKqcoJqbk6S0mY+KjoiRo6GWj5Wfo5eWh5CVlZ6bmZaViJiTlZmnnaGfjZORjpB3fo+EfH1+h4qKcnRzf359XFNjbl9OWWdcRkSWW0c6TW5YYltOYWJPVldWV1RZaF5RU01jW1tVS0ZPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGU7NipIZEhKKzpJPzNDSVMsPo9sQEhJkJqoqaGor6SmorOzsLO0r7Cgq629zLuuwb3HsbSutMLD0cTFv8Kzv8LDvL+4vcWorbestLm9wLGss66ipKeuqqilsKOpsKqtqrGurqyrs7untrCyqbOpq6alpK66rKqxw7m0q7mpqaitqaexpamko62pqKKem6KslaSdl56ZrJ2ip6ihrKajray3sbCgqaKgqq6wrJ2ep6ipmqOYmZChqJiHhI+Li5+hkI2PmJ+TkoiJk5ehnZaZloeXk5OXpZydnYySkI2Jf3+IhHt3gIeFh3R0col3bF9ZYG5jUXNyXEs7hHxGPld1WGFZT2RcTlZWVVdRXGJfU1BPaFlXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk4OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMj1eSzAuSWdERjg8QjA1RUtYMUCUXUFORpWWrKegqbGcp6iwtay3tK2qpKuqvcm8sb+5w6+xrbPEw83Ow7/AtMDDxLrBtMnErK+3rrO6wL60r6+sp6iqsamnqLGls6yqr62tsa6yrbO7pbizrKuup6ugo56xuKuqrbq2pLW1pKqnrKyqraCop6ewsaOmpaGhrJaqoZOboKaepKKqo6yinqaxtqysoaWimqmqrqqcoaWkpJmgmZaQmJ6UgoOQiYWdoY2MkI6ckpSOhY+apZuTkpuMk5KSlKOanJqLj4uLfIaBgoF6dYGDgX91eIqihnhqXmBuZldlh2ROQGeSTERieldiWFJmVU1WVlZUT1xdYVVLT2lXVlZISkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LjIsJjA3WFouMEpnQUE8PEMrOkpPXjREh0NKSUSWkK+koaqvl6inrbWqtbCqpKuqqLzBwLm6tLy1prKvxMnL0b/Bu7i/wMO6wrrCxK6ytbK0vMG9s7Kvraytp7aqpq2vqretp7CwrrGrtaq2tqe1t6uspKmpnKSetLOpqKSztJ+1raGqqKqorKefq6ypuLWpqaqpoamgrZuRqqGdoKSjpqOqnZymtK6npKmio5ekpqeqnKKko6CamKCRj4+Zjn+IjYeEnp6JhoyMkZGTj4WJl6Oajo2bkZKQj5KgmJqXjYuEf3SGgn9+eHWDf3t4fn+HnI9wcWZncXhcYXSIak9dmFZIbXlVZVZTZFBNVlVVUU9YW2JWSVBqVVdUR09YVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzo3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMi8yMiUvM1JjMDI/Zj1OWD9DLD9MVF8vSWw4UkY7lYyvoKSqq5mpo62usrSvqaWvqai7v7zBsrC5raK2r8jHx9DAv727vMO+u8TCv7+vsrOytr68wrGytKu0qaW1qaWtsrK3rqKstLGvsbmruK6prresqp6qq6CjobatqaGfr7KhtKqfqKeqoqqhoaytqL2uq66toaenn6yZj7CimKKhqKeep5uZqbCpop6roaGSoaKjp5iZqaWYmJmdj4uHlYh9joaEhaSXhoOEjYiRkJKGh5ahl4iSnpKTkI2RnZWXj4uGh3h0gYB8dHd5gHt1dHtrgoekdmleZWyBdWeIjHxSVm9eS3hzVGRTUl9NTVNaZ05NV1llWUdTaVJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hPO1lEM4+NsaCkpamjpKKsprOysKiksKequL7BvLGpuaqnrrDJxsfQw77Avrm/wL3JvMG4sbC1srq8ucCztLysuayjtKamq7C1t7Glprm0rLO7r7ylra22q62cqa+kn6SsqqicnqqypLOomqunqqSonaKpp6q9qrSwrp2ppKCunJqzo5alnKWkn6WamqirpZ6aqKGbkZugpJ2Zl6mqkpmakpCLg4+Ffo+Cf4ifj4eBf42Ik5GRhoOVm5SFk6OOlJGLkZuTloeKf4Bxenl9fGh2fHp1cXJ+aoZ5hYhkX2djcoV7bWh5XV5VQVd7bVRhUFJZTExOcHRdSVpbaFpGVmZQQz5KT0RDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0ZdQCqNkbCYnp+opKKhq6S2sbGkqbCmrbnBvbaxpLmsqKiwwsjIzMK3vb+1uMG5yLbCtbWztbK9ubq9tq+5tr+sorOmqqqutLazqJu5u6iwvrK6oK60tqmrn62xo5ylqKmjnZulsKavoJ+rqaehqZujqKCtvKeusK6hqqKkrp6eraaYn5qhopyfm5mjqqKamqKklZaUn6GWm5alrIyfkZCRjIKKgICPgHualY2KfYCNiJKRjYuGk5iRhpSji5KRiJCZkJSBiX15a312eHhienpxb3F0eGuCdWuCZ2NnYm5zjm1iam9gb0BceWxVXk5RUktKTVRZVk1cXm1XRVlgUF5PSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXj4jkZasmJ6Xp6Kgn6ejt6+toa+vqKy4w7u0rqC5r6uotLrHyse/uMG9r7S/t8S3w7OwurGywLa7vrequbi+qqS1p6ipr6y4r6eYubujrb60tKCtt7Wnpqews6CepaanoKSZnqynqJ6gqq+noKaWoqifsbifpLGvoKuhrKScpqeompucn6OVnJuanammlpueqJGYk5mdk5mWoaqRm4qOkId9h3+Cjn18oY2NiXqEjoaMjo2GipOajoiVn4mRlYKMl42SfYV8c3B8cXN0X3h3aW5xcXBrgHRlemxnZWRiZoaAYFtyanJNTYBpWFpNUUxLSFBTUEdMW2BvVEZZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZVxGTz1SWmdIKj8wXVw1KJWbppiblayenaGjoLaqr6O0s6mpucW3s66gt62trLC1xcfAt7/BubC1vbe/u76wrL6ws7+yvMK4qru6uKeotaenqq+qsa6kl7u1o6q6ta+esbivqaWnr7GboaSgpKOglpuvpaGeoqivoaChkqOkorewoaaxq5+ro66YnaqlqJ+Ym52kk5mbmp2lqZmbm6WVlJeVnI6TmKKpopGKi5CGeoR+hIt6jpeKjod7g4mEio6PhpCTmIyOlZmLj5d+hpeMkHqBe3Byd25vc153d2RsbGxraoVvZ3JpamVpXWRzgWBba3ZpWkp/XltZTk9LSEhTVkczOF5fbFBFWVZaZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDGUoaGWlJuqm6OhoqG2qa2gu7elrL3FtLCvo7awrKyutMPDvLO+uraws7m4ure6r67As7O5r7/At6y9urWlorKppqixqauwn5m/tKSntLWonrK8qailqa+rmaKnnKOllJegsaSZnqSpqJyhn5KkoKS4qaSnrqedpKGok6CpoqGhmZucn5KZm5afoqqbmpiglJGVl5qNk5OkqaSQiYqPhnqEe4SFfJ2NiouHe4KFiImKkYaXkpKLkJSUjY6UeoOXkIt3fnxsdHJsa3Ngd3RoaGpnZ3CHaGhoZGZpamBqY2poW2Z7YmBTdFRcW1JMSkdJUFRAISpoX2lNRVhVX2BMSkhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RoW0pXR1VgaEIzNzlnUCcynqKkkY6jp5mcnp2js6ynqrq2pqzDwbixrKO2rqetrra/v7yywbawrbK2tri2tq2qvbOusrG8vrevvLuxpZ+1qaSks6aorZ2cwKqnpK+zqay1u56pqaywpZidqZ2mpJGYpayhmJ2kqaGboZuWn52ntaawqq6goJ2doZWgpqCioJqbmZuSmJ2TpZ2soZeWnZSTjZWYi46Ym6mgkomKi4l5hXaBgoGdh4uDiX6AhomHh5GEl5SPjo+RkZGMk3qDlY+Gc35+ZnlvamprZXRza2JnZGR2gWNlZmZlampja3JbX1ldbGNhTmlYWmBWSkdIS01TVz45XmxoSERWVF1bSUpHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVtMWkpWYmZAOjNCaEglNZqjoI+Mq6GWlqCWpLKxorK9tqGxxby6srGjt6yqram4vLq6rcCxrq6utq+yuLOpq7mxr66ztbq1sLi9rKaetKmfoLCiqK2bor+fsKOusa+3rrWera+traKZnaaopZ+Vmqeln5ikoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY2UlJuqp46OioqPfIJzgYGKmIWHfYmKhoaLjYuThZWbk5KOj5GWjpB/gI2Og2+Bf2Z5bWdraWZwcmtcZ2NjdIJiZmdqbmxnamppbl1sbHJwYFRjaWNmWklGTU1PWFFQVWFlgFVBV1NZVEdJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUExLSsuMzw7SzYwLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNjq+dmZOhmqmxr564v7WgtMG7vrqxprewp62kt7i3tqy7rqyqq7eqs7euprK1sq6psLW1sLK1uaaon7SnnJ2ooKermqe9l6yjrrC1ta2toLGtsKihm5yjq6eblJumo52aqaKklZqfm5CbpKqrqrugp6SgmJqZnaGPa6KWmZxwgpWZo4B1kqmnnpSUnpCJmJqAloqikHmHlI2DbWp/d4NxbIaLhn6FjIdxX2RhZ4SYhWuKjZSSdHeLhH6DkIBnh4BndWhlV1xoc25NUGljZ3KFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KSFFRVVVMSFNhcHRlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwsMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5qToJuqrKqjvcWuqbfCt728rae3sKSqorezsbKwuayppqy0pa+0o6m3tbWop6u2sq20rbOhqJ+yqZ2ho5mkpZiruZOlpa+zt62vpaquqqykoZ6coKamm5agpaSbm6emnZOenpePnaippLawpKOinJaYl5ejiKGOkpqGoIeSnKB/pX+mqp6SkpqRiIRzeI2OhYihdomNaZeJZn5zeKBviIeEfo99f6GgoJmAfYeec4aOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFviFleaVtsbFuIcm56coVmhoRaX0dOP0dfTkZSVlZRUVJXVWddTVZJUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi4oLTQ1NzMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnloOdq52YmJ2fqqmnqr/DrrG6vLfAv6qlt7CorKWytK6us7aqqKSwraW0spyutba0pqensrCssqitnamgsKefo6KYn6GarbKTo6Wltb2mraerqqyopaCfmJ+mo5mYpaKjmJykqJaTopuTk6OlpqG4pKSgo5iVk5eTnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBnMZ5eLGlt5dlgMCcv3mEhXqShH2QkJHKcpe7nMV6crWmu5B7gG2XsauweWhsWLGubmVpvJK8bmd6bnKP2H5Ta2O2sn6Bc5RzmqGqkFdPV2JPVk5GVVtYUVBTjV1XW1FBXURQTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OVeDdzIxVGtcT1tNXmdcPkwxW100MSGLp5OBp6mfl5ydpayxqLDCvbK1wLW2vsGrprOsrKimrrOprrazpqeltKWnt62cs7G1q6akp7CtrLCmqZymo6+ioJ+dlZmenK2rk52in7O6o6upoq2upaGbmpmhp5+XmqefnpeepqeRnKaZk52hpqKhsaOfn6OXlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRwrqGkfni7fWyhkHaxX2q0W6WAZZyQYWeDe2eAa3lrqWW+cWemi3WxanuxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWmCMq2iAlXh5aqc3Sq9cWFNsZFtLT1hgXFdWO06LT1dXL0lUU0pERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0wMy4zM0U0Li41My8rLyguMC46Ni8nJDIwM0IvPjtVgnYyLVZqXE9ZTF9nWTpNNV9YMzAbkKKVg62npZ6jpKqxt6y1vb6wtsSxt7rBpqiwqq6oqK+uo7C6r6OkrbKjqbennrKysKOloamsrquvpqadoqGvmqGblpSWmpuspJWaoZ6zs6KsnKOtraCdmZafoaicmJ6jn5uZoaakj5yimZagn6qep6ahmqChlZWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUf2uBpnuChoiTlJN3q2drsVyreo2GlHSJco+HgYGJkJd4goGLl4uDoI6DsHZ3n3FsbGx8i06kWEhiYpl+Y2imX3lydVOTh15RqW1jcX2GgGKcLlGhb1tTa2hgTEpcZVlcWkI+sntYWEEjTWhGQ0VBQEExOT44ODo4NDs5OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpARkJAQUQ8RkQ7MDIwMTtGLTAuOTQwLC4oLzMsPjgzMR8vMi1EMT08U31uMytYalxPWE1fZ1g3SjhhVTUwG5SglYezpqahr6mosqypu7bCsLvBrbi3v6msra2tpayxqaCuu6qgp7Oto6q0o6aysqejop6mqrGnr6eknZ+frpWemZSUlJidrKCZmaSota+iqo+qqKqbnZSXoKWnmp6cop6bn6KkopWbnpeZnaKpm6aanJuioZeTkZKTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WDeqx5j51Wr3qIfp9ruVu6d4eEfqaClHuXeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGhaZGFKSE1xUVxRT1lmWkNFP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0g6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7C1tLqytKewr6KvsqWfrbWomqe4raKvsJ+ztLCgpJ6fpqmwqLOoo5ucnaqVmJeVlpOWoKmcmZanrbCpo5+PraKolp2Vm6CloJihoKGgmqGhp5qeoZ6UmJqmoJynlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2ifpGhpn+xd4OR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnezZZd0hJ5vnmeUUciLWsJcoHliX6xgdXOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQVBrYGxoUFZHSjk9VVJaV1hJRD9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT8vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWBMNjIwop2SpLGto6u8raa0pqe1uryyur62tbO5uLKktLKgsLGinquvo5emuK2ksbCctLepoKWeoamksaesqaOZm5mnnZWTl5eQkqGnn5WTpaqwpqKXk62gppKTn5ujpZ6VmqWmoJqin62ZoZ6dkJWboZ2cpZWdlZminpWYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGKkpuLon+TmomuhICCs1xys1KufYKCo39y2H54hn6PnYaamXavhoeRnId2tGGaZZqCgpVtklqwWEuadZh5ZmCsXnV3iGiYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbWBwbVZWTS5mZWlTWVA7QkVATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0JfSDo5OaCelaC5sZe0wq6osqipsrq3s7e+uLextLq0pLeynrOsn5+oq56Up7WrqLCxqq2zo5upoJ+nobWmpamimJyUpKCTkpuXkZSipJqSkKatr6ahlpmpoKKOkKGZp6SflZmkqJ2cpJ6snKGcn4yTn5qdoZmZm5aXoqCTl4+mnYapfX2leKGOjYKqcK2LgaeGlp+hiZiYiKODkoiUq32Ai515b7FaqIKCiJ96dNmAd4h0qIGOm4ySpHuUj5+EerJenWSgfoOVbZJdq1tak4CRf2hnqmNxe4FrmIdzXataiaCOa29lT0pDoVxbTHRdYmdNW2FfcXNfS1c3SpyYWEdFPUhHQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZIXkIyPzijnpmawauXtMKuq6ypprSwt7C1vrm4sbC1uqi6s5+vpJ2kpqaek6mvqK6otauprqGYoKCmpKO5oaKroJaakKGflJOemZOYnp+QjIypsLCnnpebqKagjJGjl6eqppSXqKeenqCiraShnqGMk6GYn6CSnpeclZ2hlZaNqpyPrm1ytHOpi3WKp3O0eHOzgJGko5Gdjomkh5B3uHCNe4uiamu2WqGFZZeXaaCip26UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXa1gTaF8hpJSc6NreX9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWWNdYXB7Y1RbUz49bnEzQ0JAP0w6ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnryhnLLAr62rq6e3qbeutb+0uq+ut7aqwLWoqaCbpaOhnJGpqae0orKnramgl5ynn6SruJ2irJqVmI6jopWMnaCbmJyfkZOUq7axqJmVnKypl4yTpZikrKKRlaqxo5+epquxmaGjkJiilqCblpyWoZOcqZyUkKqZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIuMp4h6pLZ1fnd2woKasmCDunnAfXa4Y7WBjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHWHq32+b3O8dLKDdHiBim6aiHFujaR0vV53fVphebxrWlZcanleamBmZ2NteG9ZXFpDQEB0QENHKzRHIic7PzEwPD83OkI5OT1DNDxATlpeYGBgX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaibnqO9oZeyw7Ctqaqssaa3r7bDsLiwrbiurcCwq6OinaOhnJuQqKOqsqS0payknpWaqpimrLicoq2XlJ+QpJ+SjJyinpedmpGVk6+5sqyWmKSop5SQlqSco6ydkJ+oq56an6iis5+jpY6noZSim52YlaOYj6+fkZSpnoWQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHCAc5G5g32Hho2HjXyKh42YfKS7ub2cdHm0o3R3l3Z0sHWZnmaHao22dHJxeLaMXn96fYlog3luemOLrHB1hX9YW6dqRWRaVGZgY15jUWdncGx1Q05RTEM6Wk0/SzI7LyA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzyonqGiwKWWtcS0rKqorKqpua6wxa2zsq21prS4rKmhoaWeoJ2Zk6qjrKqltaemn5uVoKOdrKS8paCplpObkKGbko+hp6GSnZeUmJWytbetmZ6kpKKLkpGlm6Sqm5WopKWbmaGopqekqqGSrZ6XpJ6Yl5edno+vqJObpaGNan1pmqV3hnJ9mo50eWSHe72+wLpvk4Nylohhc2taX5uKYWOIj5VrYICWZG6ed2OWbIGalZRlXmBicJmIaXKLfYaVZ2t/cnR4fX9iXHh0gWhQXW6DfXuLa1hreoJzSkpvhnBOdExFWF1nYUxbWGZjX09bbXVpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NfVjQpUF9MKDI9W08nPzI+qaCoosKjm7W7tqKspa6np7SxrMerr7Kqs6K9sLCln6KnnaObmZmrpq6jpLSppJuYlaCapq2ovaeopJSTmpWfmZKWpKmokJ6RkJidsLO/rJunnqeiiJORqZqno5uaqqCjmZqjp6yjoKyjm7GblKegl5Wdn52WsKSXoKeYmpCbm6Ghl6ShmZyZmZmPlYFnbX1xd5KYlJKGjLarjYeYlo6KjJiWh5SVi4STlJKJjpOUmZSYlpmfoZmak6CcjYJ6pYVta32QfYB1i4qBcYJ4eXZ1iX98iWpzgXSDdWV2fXdrb3ptX2RdcGhNWVpmal9XWm95bW1mVU9GUjlOWU1STygrOktCNjM1PUBBOjpDPjxFTlNTVFZXWFpaXFxgYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MTApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOhs6PAoaSysregqaWyp6WvtKrHqqyvpLOkwKezoJ2kpJyjlZWfqqasoqO2q5+YlpWfl62ppcCeqqOVkZqXnpiSk6GenqKnk5KaqaizxLCaq52rn4+Wlqidqpycn6uYoJqboqSvp6KmqKCvmJennZmZoJ6dnK+gnKCllJaRl5Oen5ShnZegjpaTioqNjpeukHyWnIOSgourqYWBmZeJhI+eiHqEkIiGmpKIh4qWj5uXjZCXnaOVmJKQnI1/jmehs6+FioV2e5KKfXd5em9meY+BgYlrdYF5iHNpc397doOGgmp1ZHpmYGplY2Rma1lre29pal1TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpbX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVFxRMDVOWzE3RTNbRzU8LEC0obmwv6yrr7KxoKqnsq2irLKvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrSelJOdmZmwpa2+oKuikJCdmZmUkZWhnJeonYSerKyjtMi0oKqkq5eVl5qmnaianqOqk56fnaCqr6qmpKyjr5ufoKCYpJ6cnpyuo5iep5KWlpuQopeWp5yalmWCknxlfo2akGN5jm1oa3uSpatqZZuYfWeGimVlaWh7jqKPbGiNmJGjd2tqipiinpdza216hI6IelhmXoaDXm2MioF2XGhzd3aRf4iCbXeBeH9zbnmEdHaJh46DfGqHWV5sdWVdc4lpa3twa2NfUk5XSWRYQUo0PkY3P0ZENzE8PT9BRDs7REdISElMTlBSUlVXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49paC6vLqvrLSxqqWora6wpq2ssLuwqKajrK2wnqyWn6OdopmZpqqcraOlp6iyrp6Uoo+ir6W1uKWtoo6NmaCZk5KboJmZpZZ8pa+jqLXFuKWip6+enJSeop6jm6KoqJGeoJ2hqrCrrKSroaqbp5+nn6uWoJulr6OWm6iVn5yakaKVnKmXnX29g4hytHKEnYataHi5xLhxlKOjeqaZmXKrgnzLwMC7cYyjiIOefJaYiZ3AvYGWnZ2MnMHBfIJ8k42aw8B+bKWyb4yBb8p6f5t2kIOOgXV5gIB5cXp/h3B3hYyTeW14lGJnYHhkX2WCYl5zZ2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5RU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1VBQjsvOJajucO1sLDBqqiUo6+osK6tpbKzrqmkpaWvq56qmJqin5yaqqahnauipKikpLSknKKSpa2rt7OnraKRkJicpZKQoKGYnJ+diKetpayuwcCxoamuqZaSnp2hmaGiqaOSoKCdnqyvq66npKSooaalnayokaOaqKypmpynmqqflZajlJ+hlZt+zpR4eqSBeZWWm1+uj16OqIKjoXynlptzq4OAr15jjap7qIeFoHSXk4izY4KrhqCNjbNqhK91fZeIt2KDrVqjzW6Qdnvae3+ZcH2IknZ9ZXqHdnZrfIdufYWQkX5tg5BgcWxwaGBfeWVccWdqZGdgUlRSV11LT0Q1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqqK2zq6WyqquqoqumrqmfppuZpZicoq+foJ+op6OloJ6wq5qdlaatq7CqqKuflJGan6SSj5+ll56no5+vpq2xqcDHs6ipsa6Wkp2boZefqKmelKCfnZ2tsKmsq5yoqKWiq5KrspakoaqpnaKlpJ+un5GYpZeemZKTkJegcYWMl3WFqIZxsX2ecqx/op+BpZCfdquCfa1/nHOtf6yHhp92mZJ7fJd+qoihi5GLnX2re4mVkKCBe61XncV7j3CTwX2BlWx1cIxtZXZlhW9hd25yb4mKko6DbpOSZnB1dXFhZ21mX29oaW5nZFdUXWFaUlNDOUpJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPTEpM1dARiEcRzpDMS4rsNPGxrKzn5yijqOioqyutq6osaWoqaatqqqnoaOdmaKVn6Wrn6Gln6ioop6dsKyXmpapp66rqKannpeUmaOhkpShrZudp6OvraWutqu6zrGtpq6rlpWcnaKYnq2rnJagmZ2fqbOrq6ucraulo6yarrGhp6utpZekqaenr6CQlKKimJOQhKRqpHWJeql0erJwgqaKmYxxiaCahqRgYVKshX+ug5t2rYKohoWfe5mXhXpmgKOJpJiGgqN9qX6BloiuX3ypVp6jkoF6o5+Ae8OuxItyr7OzuXFiqa/CdGiMjJiOgW6clXFvenh5cGxmZmVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU1KjJQS0wjIEE5RDQsJ8PJ1tS/oZmrp6Cuop6vtLCuqayip6WpqqqopKagm6Senaanp6Ocq5mirKGjn6+hnZqSq6S0rq6gp5qdlZOmopGboqigoKadsaamqbKtt8mytaqrqZaRnJyimJ+ls5yZoJSdn6esraWwm62ro6OqobKtoamysKGZqKesrbOhkZShpZaZkHupbJ6Eh3WreXywb4KljImflpaglYHSuLS3yYGBsl9glKmDpYiHoHqZlZp4qsl0maSUqamQkpuNgJ2KmsbGeWehgqV0gZ+Ogn2vXW+0YrB1S6OHbadHgpNkjpCeknxxmZWBcXt1fnxuXGZqc3FmgWtfYVlkblxfWUlNTUtFREFCPkE8Qj9JOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spKKbsrisqqClmqikqauqp5+mppiqo6Cvq56loKyanqmlnae1nqKXk6mqtbGsm6ScoJSPpayRmpyno6Gqp66ipqiqsbXDsrOqrKiTiZecpJqho66ll6GVmZylpq2csZ6uqaefq6K2rKCwuK6dmq2msLGwopKWpqGYno2CnU54moF/n3qEo32DpIWHpp+dn5SEuHt8ebmCf8zGwrZ4m6GRi55+mpaXinafl4qll6Spf7CFnYaghKx9mpVjpm2kcI+FkIF8loJyrGCjcnCAmmC8fVJVdI6So5Z7fpSTjHZ7c4eAcV1tbnhyaoJvW2Rfam9jZV1LTVFUQUlIRkk6OUs/QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eYqaukqriqrqCboKyys6WeoJWlra2tqqecpqebo6ihs6+jqaeyoJiopJSitaKilZeiqbS4o5uhnKOSj6GxmZ6cp6ahorCunaapo7azxbCtqaypkYeQnKecoqScpZaemJmapqWrnLGir6WmmK+ku62htbWsnJyzsLavsKSVnK6eopyFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWCinGqhoW1bnJpmqSclYqffZiZhoePc6+CppujjqaLk52LlZCbbnGyXaV0k3qcbJh/e5l8balhonFxfp9ic7K4aHePlKaYfY2OlY56fXmQg25qeWl6c2+BdV5lZW9uZmhgSltYWDxISEBVNEBGPjwqKTYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYF9dW1pbWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVVVUU9RW1UlITJBSCQpJZJzjIqtvb68ubSelqekrbWhoZiVo6emrausmaajn6ahobaoo6mnsKOUq6OOpa2jnZCZmqqzs6Sco5yokZSXrp+gnqeknaidtpqjq6S2rcSwqaupooyEjpyioKailZmZnJmbmaemqJmtqK+jpZuspr2slLyvrJ2hrrC3qbCkmKevoaaWeaiQfXywd4qApKWInG2ycKGHrXyhj4OolZiArImFroWglaqgopeGn4GalYB7kn6rgJ2al4uqd52gkoqUkoF6r16kgX2mp2Sdf3yXcmqvXaRqcIaZXWBbjKBtlZGmmYKVj5qOfHyEmoBrboBjf3RugHpgZ2Zxb2loZ0NaYVs9S1UzVThCQkM4JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pXU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqMXBtsCznpqsoK23paOOm6SioLCwq5+loJ6tmZ+5oaOroK+pmq2hkKuopJaJm5CtsKymnqWbrZeYj6yhoZ2loZqlna+Zoqmnt6rBr6WopJ6LgI2bmp+mnpKUmJqUm5qmpaabqqytpKSeqai+pZbBqqmhoKqwt6mrpJ6yraaol3WvfpCLnIWHfrqtipllsI1lla19oY+Dp5WagayKhLCFppqkoaKRhaFdbGuBs2B/rXt7g4GxbWdumZmNibFbfrVcpIRryKJkn4B7u1d2tVmyfVKugHqsV4ChbZePqJuMmJKamXx6kaB/ZHV/Y4Z4dYF9Ymtocm5nZmVQVWRcQVZgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dXV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysba9urPBsqKcrKaktaigipqgnZyzs6qfpKGetpmhtKiqrJ6wrZ6rnJWvp6GOiJuPr6uopqGlma6SmI+omaKdpZ+apKOmmqGjqrOqva+kqJ6djn2Lm5WgoJmPkZmbkpqYqaCjmqmuqKWloqSoup6fxKWjp5+psrOqrKSduauqq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviaecm6arkX7WvcKqYqS/vX1+o4KD17u4tYaWlISevb6EbaOCb6uEbJyAerKwx4Npq7C8rHd2ob68c4CWjqadkZySmqB7g5OefGN+e2WPZ3qDfGFsZm1rY1FhW1NqXEBVYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3ODs+QUNFR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Owv7ixvLKinK2mpbKmnYuYpcCquLKoosCnqLOdn7Kduqifrq+lppWUsKuXjIKbka6loqygo5yqn5eKo5Onnqecm6GppJmgoqyuqrqtqKObl5J8iJmRpZuSjpCXmY+Yk6maoZmqqaGqp6CjqrqdqMOin6yhqbCyqK2nnrilrKyZc3aqpLiGZImgcGiukYuQbm53pJCZn4F1rpmUcI+LcZaopJuYr6RzbW1tZot4b26CmXCBempxaWeKmJaZcmlqhYhncYZkXYhiam9ZXGZ9dqZfYXCNkG5lZX+Mk4+hmZmak5mhfYmRmHdmiHhpj2x7gHplbWRobWNLZFhKa1o7UWZGUSdLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRGSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16playzqLm4sbOqqaGtnqOyqpiSv7PFy763q5/Bra6koqmtoLqjpK6sraWNlq6pj4uFlpasnqaqoJ2ko6CRi6STp5mpmpekq6KXn6emqLC7q6yam5KSfISXjaWYjZGQmJSOmJWolaCZqaObsKadoqu5n6+/p6OxpKqur6irqaW1oqy2lYqhqaa3nYmWo5mIqpuRlZ2SqbOZmqKqoLKWoqGdn6KdoaWilaynjZOTjYeTnJyVkZmTmZGPloaBpZuZlo+MlJSMkIeEfmeJfnSCdXOHinCnbHqTj5ORgIGNjpCPnZWil5qZpYSJl5F0a5F3cox4eH16am1mZXBlVWBZQGpbSGRiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVXWV5gYWNdXlRRS0VDPjk9QEFTWFtcWldYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppapqaS0ta6uorCjrZ+gtbGQjazIvsa7uqujpp+dp5+yqqS3p52ptaenkZitoouHiY+bp5WspJ+ZqJ+ekpSjl6iaqJqVp6KkkZyomqG2u6eqmZqQjXyBlYuglIqVkZaQj5SXppGgm6mgnLWjnaaqtqeuwK2itaStra6qp6awtp+supiRpaOntqKSnqegjqqgjpOfo6uwmqCjsKiwl6OgnKOqn56enZesnpOaopyUkJarmo6ZmZeRl6CSiKGel5WHk42RjpWLgX5li4V1hnR3h4JznGqGjpKTj4l9i5WSkpiUo5SfmaSFiZuKfXSXdHyMgHN8gGpvZl9xamBbYFpuZFBhZlFaOkdHRT4yPT45LyomKykmHSYzMTY2NTg5PT0/QUFDSUpHSktMTVNTVFVaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiYmFhYWBiYmJkYlxbY5eVo6air7GrrqOppqyfp7WqkJCdpLW9sK2to6SbfJ+ks6WmsamXm7imo5SZqpyOhoqJnKKPrp6ilaifoJKWmZuui6qWj6qaqY2aqZCfubakpZmcjYh5gZOLmpOKlJGTkI2Sl6ONn5+onp+4on+DrrWirq50oruhsJ52eJ6nr7iTdKujnol/q39kXGJ2oI6ln4SYfW2Ss52ipq2qo2Wdn5JzeZqXcYGZqZhtf6OoimWcpp2Sl5iWjJOdkYaem5GWhJOIkJCSiYV3ao6GdoVweoV/f2Boh4qTkYpadZSQZ2iPj3N8qJycZnubioV6mWqGjIRweoBrcWZgd3Bsa2lcZmZiY3FUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWVxgaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaWioK6vq6uppaitoqatpZKVq7exs6ebrKitmHSNn7GgqKunlJe5oKCPnKSekX+JiJuejKuZopWnoZ2Ol5KdhXatj4mnnKqSmaSKnLuzp6CZmIuIdXeSjZaTiZORkJSMkJShj5yhp5mcsZWBjJu0nLOMko25pZ99p6J5oKy0f42NpZ6Di4aQsaqvjYuXpJt6gYushZyeoaaop4eVhZh3pZt6h5yBl6eDgnuds3qKhqGYmpWYloKRl5eEm5pjeoeRhY+QkouDbXCOh3l/cH+AhH2Fc4WDlJF3lmiSdKCadH2ZhKOgiZh/lY6HhpprkI6HbHl8cnFoZnlwamxrXGVsamd1XV5JVExSQEU2LltVVTcpITA5Pj43NDM0Njg7Oj0+PkBEST9JRUpMR1NYW1lcYmFoZllRSDlFTDs+YVZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJeinqWsrKunrKCnsKamqaaZk6/JwLKil6iqt5+RhZ+tnKeioI6Qvp6ajZ+aoJB9ho6Zl4ernKKWoKGRjZOKhYCSp42Ho56llZmeh6C6saeem5KOhXB2kImVkIqUj4+bi4+SoJKYoaSWnquHn7SJtJmtisqGqKyItoWMr4Guq4KojKaYjZ19qI9ze3ecj6eXaJWkebSLoJ2lp5KYwoB/q4iYoXKegJqlfpeFlbOBoX2hlKGQmJeBj5Sci5mSjH2Fk4eOlpKKg21zj4V+eXGGgIN7g3SEgJWAj8Vmf6mHj6NrnoWknYWagY+RiYyacZCVhmp5dnx4aGl2cWhobF5kcG1nbllnR11RTTNFNTdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TkpKTENQWl1cV2Jeam1cUUU9S01ASWNYXWNmaGdiYmJiZGNgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWoZ6vpqeopaufpLewqaunmpWgo6WspZimrLmksIGiqZ2mnp2KlLyak42hkp6PeoSWlpGHq5mbm5qihY6Md5qcj5+QiJ+lnJiamYijua2kmZyNjH5ibY+Kk5CNkIyNl4yQkqCPlKCgmaGnfqGnh62dn5Wtj5ybnJCEf6CMqKyFo42pmYyaf6J1gZmUa4Ktdk2reIeNnJGap6aAqat9g6F7eqdqnn+SbGeYhpi3iZ5+bmBkWYOXgI18ZGiLcpl9eZZsXX2Xbl9ScINcX2t4gl9YZIB8g3+WcKeqa4OjbnKlcJ+FoGpnoG1ccI5+Z1pghIFjWFFwd2ZudnRsanBfa3FubGpZaU9dWEY5QTVIRV9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmN2YE1EOk1PTlRhXFxmZmlpYmJkYmRkYmFiYGNkY2FjamtkYmRkZ2RiZ2VhY2iXlZyfuJ+po6askaG1u6quo5mYoaKlra6hnrC2pKmToqGgp5yajpm0mpCLnoyVi3WBlJKNiqeVlZmen36ThYWspYebkIuaqpmbm5KJprGnoZWaiImAaW6Ih4uOjomLjZKLkJOjjJSfn5uhpH+TgY+ioJOgdpyUjqeBn6V+haeqgqV4iXyEmn6icHOUiJZ8n415bYabjJmPmqiZjoede4Kic3amZp5+d6RfmHp9lHSibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2NzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYJ2atJdzfZifs3V0XJ6yg2tjcHV4cmlwWWttdHNnXWpeYkxFPUQ2UkJaczM9U0dgSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkZGBhYmBkY19gY2tuY2NkZGhkYmdmY2hok5aUoreYqpuTn42kt7StrKCaop2kpKavnZyzr62UmaKboaWam5Weq5uLiJJ5i4VxgZaOipCgj5KUnph9kYqOqKGHl46KkqSVnZuNjKmopZ6Pl4eEfmp7hn59j42Ci5CQiY+UoYOXnp+cn56LiXecmKGMn3Ghioaph5qjjZSlqHytjH56oJl6o5N4gXSWiI2cfZafhpuOmJqlhaJkoXyIlpCbjW2eaJuOb5qZe4CLp35zaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqG+BnGCVjF6ndnWHiH6dZ5p1hpOSl46An2+akW+oml6pf3m8bH+qXI6EXbRoXW9ye3hsalxxa3p6ZGBnWGJCUUZPN1dEUm81S1tbX05aREAxNTE8OzdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlxeWWRmWGZnbm1iYmVfYWFfX2BgZWJeYmRvcWBkZWVrZWNpaGdraZWbiKmzmqaIY5Sbq7qxsKyeppycqaCfr5yesqmun5ilnKGgmZeWoKOZhomNaomAcnuXiIuWloORlJmQeouElaScipWPho2fk56diZCpo6CajJKKgIBpgYZ4f5aMeoiOjoiPlpt/k6Ken6CTmHJon4mejotwkoyAqYaXnaCknqV7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6ZtaOkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yomlxe45sgIiDmXWbeIaJsbN/gJuTp3eDnm50fpVwmnRrpF6VdkhlZGF0cn9/b2ZhbGl3fGVlYlFfV15VV0BaRlFoRVRXXWJYXklEPUI4QEE6SUY4TEVYQVdSW1dERmJcWmBLYG19ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2VkdmxdZWdma2RlbGlpa2mTnICvrJiDU16gprO5srKpmqOMnKycnaqVoq2lo6mQoJ+dm5qWmKGdloiHiXeGgm95lYWRm4t8kZOXiHKBiZGhm3ORkIGJmpahnIaPqpyblYuLinyDbISFcYGhi3iFjYiHk5mWfJOjn52iiK2GfbWEjZ2ce6WVeamAlJqOiJ6ae6dod21+mXShc3J8noaZcJODrn2jg6WdmICjb16oZ3WiY2+lYZzTkH17mXhzdGKihpF/o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZxte3CWbX9yonFdpGdzpmBopm2b1Jp9hptwe3uYbJx9eJhzbqmkZ2FmenKBhWxoZmVvd3hpYWNTXGdSUmJIWEpVYVhUXGZrXGVRRUNLTUpLQktFOE9AUU5YU1lPU1FgZmVqUmR3eXdJRkVjXmZaaGpUaWhqb2NqZ2BjX11dXV9oYmFpZXxkXmRnZGtkamxmaGxol5p/r6tUW0p+qa+xs6+yo5uZhZmqoKKlj6apoZqri5uZmZSZk5OhmI6IhntwfYRofY+DlZuBd5GOj4lvf4aPk5Jsl5R8ipOUpZeDj6ublJKLhol5g3aIgG6Bn4Z3gJKGiJmjl3qUoqKZn4mzoaK2i3msp6SupW+of5mNhYCZj3qkf6GZhphynoSkrq+Kl4yAjaSNlYKtoJN2tba1yaFzlIuBn2Cel6ltepWHoZx1ooh3oH6TmIuBcE1mo5JwmodzpXt5dGGDgWt9oGtxZF+ccX1zlmh6abO1s8amcph9ep1rnJurdoWbbnh5mGqafHaZc1FFfbNfandseohna2hjdXZxb1dfVFlpUVNpSldNWVRWXmlsb1ZnV01LQUpNS0hLT0JRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxnbGZjZV9dXV1eaWJkaWt7X11kaGNqZm9tZWlsZaCbh66lg2Q/k6Gyqq6vtaKikICYqqKjpo2mqJ+ep4SbmJeOl5CQnJOOiIN6anmHZYONf5igeXWPiYyCaYSFkYOMhZ2Neo2Ml6eUhJiqmIyRi4KJeoB9i3hwkKGGeYKVh4mWoJV/lKSmm5WVg2ZueJxsomR7cKV3m5dwZaaAlIl6pHmfloOXc553gYqVl4+5bpGKomJ9mKCUiG1yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdW+IYmigZZ5+aZt1b2NmiIFtcaJZXlpioWxdiItten1zcWSlbXiiZGenaJlzjJlwonBViZBwoGBmqFWLXlSYbm50bHODbnFpa3l0a3BSWVdXZlpUbUpaUF1JWGlpc2pZa1ZRUkZWXUxYU2JVaWtfeHR7fXB8fHKDe4Bzdo2AhHZeUnJiZ2JwZ1BqaGhsbG5oZGdfXV5dYGpiaml2dF1cY2hjampzbGZrbWOco5eleWRzbIqmraOpsLGmn4yAmKyen6eNo6KcpKOBlpmUjpqQjJiQjop7h3GAiGiLi3yZm3N1iX6Qe2WDhpSKiZWagnyJiJiokoGjrZGGkIuCin6AgI5yaY+mhH2Hk42JmKCPh5OppZyIpniVm36liJaKsZedj4Kulp6kdpOFeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wbn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN4q5GmiGuRsGt2s4ypa4qFbW2fnpGUX32ri6p2fX6KpJ12n3yDpJWdoGqbiHisaJ+ujLZ1eL6NpJNag6eOq2F2c3VyfHVxY2t/b2htVFdbVmFiXWxNXVJeSl5tb3dgW3FZXGBbZ3Vlbm9yYnJ0YHh6fnlyeYNzhH6Be3uMgYOAdmJ4ZGRuc2RSa2dob2xyamZpYV9eXGFrYmxsem9cXGJpYmxqd21nbG5ilaSpm4B/naOWqamdqKatpJmKg5ism5+mipymnquehY2bkIeckYaSjYyNdId7iIRwjYV+mZN0dIZykYNuf4uRh4WUj318g4eZp4+Ap6ePgY6JhZV2goeSbmyLqYCDi5SOiZyfiYyTqaKfjn90k5eIfoF4k66ifoGacI+Fdo6Jgn17cqeMcX59epiWm4SQeXt/foeUlZOKdpCYnaCDe32Ja4yFW3l5cnpxaW5+kopygHWBj5SUcYeEg2WMf2CBgIt3dXOUdW95bm2HbIOGXnVnd45lf4CFjKeZfXR7lWqJiHCBdn2Hd25uaY10enyYeIVcbFh5j2lveHNzcHh4cF1sh29qaFdbYFddZmtkV2NVX1JgcHl5bWt3Z2pra3d9cnN1c2FvdmJ0e4J4dXmCdn+AgIF5i4WDfntuf2xkeW5eVm5naXVreGppaWVcYFpjaWVscXRuWltibGRsbHluaGxvYY6TtqemiqChmqajmKWcq6KhhISYrZKeooqbqJuqmIOCnIx/l5SHjoqJjXKDfI99fo+Ee5iPdHKEcZWFe3yRi4aGkIV5foCJm6WOfKihi4WPkIWVgoaOmHZyhKmGjpKdkImfnoiMmqaen6qDiI2Vmn5+iJasp46RpY93bpuOgXiQbn2ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GCfn+MaV1qZXuGhIqAYGl5e5t7gouCdYGFgWd3ioZqYG9xgHVecYmAiI6lk4Rli42DbneLhHGGj3pxaGlmfYR7lltda2hudlx8enh2b3Rzg2hdbotsbGNaWl9aWW1yXGBiWl9eZnR/fHZwdWRra2t8fnN8eXVkbnVobXx+dnp8e3l6gIF+b4WJhHt9dH55c39pVFxxaWx2cHVna2dkXWFYamhra3FybldbZW5sZ3N5b2hqbWCLiqivoI+ioJmenZeemKijon6Dma6OoJWInaORppWAfJmGfZKZiomHh4tzfoGMdoWLgoSXinJvgHKYhoR+kYOEhoqBe4GFjZyhkYOoooh4jpeJlYqLnJeEg3mtgpGYmpWKnp2IiKCpnqGho4qHk5ucopmVqaCmpJ6RmoWTi3l2jI2Dp35/kpCTlJ2yppuVn5CNsZKXg6SLjJSan4mQm4KIkYprfI53eGWDh5GLfImehIeMkYmJgYWFkHd8enSaoImGip2JhJN+fYqAf3Ruc4SBfXaFhomOo4+ChIyGgoyQjH2HjIuRhHpuhYZ+eplrc2lhdItxfnt3d3B3dYJdXm+HaG5hX1pdXVNpcVZlXV1ibWh2fH10b3Bla2ppgH1ueYByanBxbWeBe3OCgXh/fX+Fem2CjIZ8enh7fXqEeU5kdmpzbnB6ZWtlY2JgW3RlcGdycW1WXmx0bWh5enFnaWtkjIecuJ6WoaCXlJiZlJikoJ58gJqsj5+OhqGdjJ6WfnmVhHyOmoqHhISHbnmBgXOBiH6JlIRta356l4eEg49+gIaEhn2IhY+cn5SIrKCEc4qQhpKRi5yRfY16qoSOk5iXj5yWh4abpJ6hmZyFgpKamZiPmaafpJybj5V+jod0eoWNg6V7fY+QkYaYq6GelJ2QjqmNkICdi4iTmZ6Cj5d+ho6DcHiGcnVgf4SQhnWNmYGDkIOHhX+GhZVueXZ0kqKKjIWahIOMc3+JfHtxcHqGgnp2iI2DkaSOhIKOgIOKiYp3homLjX5yboCCfW9pbG5oXnqAaH59d3Z3dXx4XWBxfm51YWRbXV9SZ25UZlxeYmtpd3t/cmxtZGtqaIF/bHSCbG11cHpwhnluh4B2goB9hXZxgo2Ifnt8fH98gotgaHtqdWlpgmRqY2BpXGR1aG9idW1sVWNxeWVwentzZWptbYuInrWZoKKekpGVmIqan5+fe3mfp5Gci4emlYyYmXp7jYZ9iZKDjYOCg258gHlzgIV+i5J9a2h9gpeJgYiNfH2GhYd9kIORnZ2TiqmdgXGLi4yShqChiYWMfKeRiZCTmJSWk3iMop6fnZWYfoCQmpiSi5qioKKYlZCZfIuCd3+Cjoagf36MjY98mKSiopOakZCmjI6BmpGJkpabfpOSfoeOgXV0gnF3YX6BjoZyi5d9iYxyjX+DhoePaXhyeIyYkY9/ln6HiXKBhnt7b3d6iYN5eI6LgZSjkoqEj3qGhoeEdoOEiYl8aHR+gXp8cm1saF9+c2l9dnZ1fnOBa19hdHdxeGVkWV9fUmtpVmZaYGFoand6gnJnbGRsaGaAgWtufmhvcmx/eYd7bIyBc4GBfoJ0doKNhn98e3+Bfn+PaXKDbnRpYYdobGJfcVZ0b2xuYHhobVdqdHZjdXp7cmJqb3qJjJ6wkaSknI6Pl4+GnKCbnnx3paGOmIGNo4uJmpZ5fIaIf4OKf4mDgX9ygHt0doKFfouReGdjfYaXioKKi3h9gI6EeZeDlpmYjpehnH9wi4GRk4Wlm4iNiYOmlYWTjJeYkpJ3kZ2foJeTlnl+jpeXjZaanKOcl5GTmXeNg4F2g5WNnX6CiY2Mc5ejn6KUmY+PoYyKgpaXg5KVmX6YjXyIjYF2cX5ue2SBfYuFcYiUgJKCbImEgoGKhWZ2b3uFkZiMfJJ4i4d7f4Z7enB9d4iEeIKOh4mWn5SBgop2iIODgnd8g4qHeGJ6en91f3hobWZif2preHR1d35yfWRkYXNudXNuYVphX1ttZVNkWWFhaWt2eodyY2tjbWZofYJsaXVpbnBpgH2Cem6QhnJ/g4N/dHyDjIF/fnqCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brJamp56NjJeHhp+Tl5l+eKqdi5l7mJ6MjJmQeXyBjH59hHyBg4F4dHp6dH2AhICJi4BkX32LlId/hIZ0fX6LgH6ZhpeWmY6lo5mAc4d7k5KJpo+MjoqSoJGEkpCVl5GLgY6XnpqRj5Byf42Rk4icnJ6ll5aLk5Vxi4uJa4SXj5l6iIiPiW+XnpuklJWLjJ6LhYGRnH+SkpWGmYh7ioqBenF6bHVsfH+Mfm6Gk4SVeHCDhH5/i4Blcmp7f5aXg36NdI+HgniGfHR2fnyEf3uBioKKkqGPeIOBdImHfYB0dYKJhXFjfHZ7cn5wYnBkZXxjb3B3c3l4dHVid2BwbHZucF1cYF5ea15RXlljYWludHyKbGBqZWpjaHeHbmdtaWttaIF9e3hvkIhzgIOFfXSBhol7g316goR9fY5yeYp4eG1sh2toX2lyY4dncW9ld2dubGF6aWp9e3hwYXhti4CYmKmfo6idiYqShoqdi5WZfnivmY2Xfp+UkZeUiHd+fIp9fIB3eICAcHV0fHCGfIGBin98YVx+j5GGgIOCcnqAiHuQk4qTk56Up52Vgn2BfY2KkaOJjoqNmJqNhpKZlJWOiYeLkZuSjoyMbYSQj5GInpmhoJaUiJWPbIaXgmWEmI6TeomEkIpwlpuUo5OSiYuZjIF/kJ59ko6SjJmOe4qFh3RzdmxxbnZ9i3RvhpKPk3F1gXyCg4l9ZnFteXyZk3yDiHSQiYBzh3htfnx/hHuDioaBi5Omi3qGe32KhHd+cXCBh4RmaXp1dnF8Y19xYWt0X3Fre3p6bXNxZnpeb21zbXNYW19gYmxbUVhZZWNncXKAiGddamlnYmdxjW9kamhlaWmBend2b46FdIGCg3x1goiGeIV8eISFen+Jd36Le3tzeIJqa19waHSAa3JvbXJnb2xlfGNugHp2cWx3d4p+opehp6Gmm4aLi4GPnIeTnXaCrJaTjoehjZaUkIB0fHeFeHl/c3N7hmxzcHtuinaAgYdvcFtZfpGNh4B/f3Z1gYGBoYeSi5WemaKWmHmKf4CMiJydio+GkpiWhYmVmpCWi4uLjYubiY2Pgm2Ji5CQiZyWoZuWk4SWhmiCoYFlhJuJkH6Lg4uBd5OZk5+SkYmIlIx+fY6Xe5CMj46aknyKgIJvdnBsbW9xfIZqdISPmYtxd4B1gomDemdzbnWAmY56h4R5k5B5dYdzb4d6hIp4iYSAhoyZoYZ7g3WBin94eG5rgYSDX3R1dHJyeVtfcWFxa19wa358cW5ua253YXBwa3JtWVliYWJvWFFUW2ZnY3VwhYNjXWttZGJma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHiFf3iIhneDhXyGjH97d4p/anFjfGOGfG5xbXRqaG9sdnhgcX95fHR1dICDfqSVmayep5aEjYR/l5SDkKB2jKCVk4aLm42Wjot6cnh1gnByhXRyd4lscG52bYh2g36AbW1VUYGqlIaDd353coR7g6KElIOWlJmdk5t5knuDjJKjmZOOiZWZkoSHl5qMk4qIjY6GnIOPiXtyi4WKjoecmp+alJN+knxmg5qFZoWfh5GEkYKJcYOQl5Ccj4+Mi4+Md3qRkHqOioySlox8iHyAa3Zrb2tsbXt/YXp+kJiCd3uCeIONfXpodGxzhpWKfYeFe5KOcXmDb3aLeYeLeId8f4mOnJuDe3p2gYp8dnBqbIKEe2F5cW9tc3RWX3BjcmJgbW96cmlwZmd1dWlybGJ3ZV1XZmFhc1RRT11nZV55cIl9YF1pcmJiZmaRal9oZVtncH5wbHF0in12fYaAdXZ+jHl7hYF4iINzhoV/jIyDe3qUeGZxa4NgiH1vb2t6YGpudX91X3R9eYd4dHOFfXigj5mwnKWOgot/g5qIgI2fgIyalI+FiJiOj4+Ed3R3dIBxcIV0cHKEcGxqd26Dbn19bXRzUk2C38iS1pJ7cHWFd4WihJV4lpKanZGafJRzhZCeoZKTkImTnJSGf5eWiIyNh5CMh5t+jYB3eox+iYyJnJucmpSSeIx0ZYaQhWuHoYSRiJeDhmOMkZmPlouXjI2KinF6k4h7joiKk5GJeYV7f218ZXJva217elyBepGQgXt+gICHj3t7aXNqc4qOiICFhHyUimx+fm1/iX2KhnuDeH+MkpiYiXx1d4OPeHJtZ3GAhW5rdXBqa3ZuVF9wZXBaYG1zeWhsa2NneXNxcWRgeGFgVmxgX3dRTkxiZ2NdenGKdl1cZXZhYmZljmRhZ2JZaXNzbmtyd4x9dHqGgnV2fotzf4Z/e4l/comIgpCKh3x+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNd3N3ind5nouarpqfkIKFd4iVfn2LnoiGoJKPhYyYhJOPh4F1eHB5cW+FcG1vf3NlZXlxfW15fWpoa2OkmsHcrvCgcmx2hXeGpYeTb5iSl6KWnIKScoaLopeIjZWKkJ2Wg4GWkIWJj4CQiYiVfYZ6dH+Jd4eEjZuamJiNjnWJdWyEh4l8iaKEkYmchIVei5OYi4+JjouKhIlte5WBfYiFiZGPhnaFfX5rfWR4dmtveXNYiXuSiIZ6f4GBhox/emZyaX+JjYmBgn+KlYRrgHVtho+AjoJ8gXh9jZOQl490cneHjHVzcWd1eoRjdW5xY2t3aFNhcmhsVmBvdXphc2RgaX9xc29bZHNhYlduW155Tk1NZWdiXnd0im5cXWV5X2BlZYVgY2NfWWpza25rc3iMfnR3hIF4d3uJcYOEfX6Je3SLiYiWhot/fpdzaHVxeWyMe250cYFXcXp2eXJkd3mHjGl3gIpyf5yGmKeco5KEfXGMlHh5jJ6FhqGNj3yWjYCaiIR7c3hwdGpwgmxqbX11X2F5d3txdXtnYGR869q1ycPch3JsdIN3i52Lj2uakZGelpSCiXGEiJ+NhIuVioyYlHyNk4iDiJB7j4uFjoB/dXiDhHKIgZOblpSXhYt1hn1ug4CHhpehgpOMnoOJYYOUj4eKhoqNh4GHaXyTf32Dg4mOjYJxhn5/cXdodnNqdXhsWo19koSGfoKFgoWLg3dhcmuHgY6JgH5+kI98bYFrd4SNhJCBeoB7fY6QjpSHbXB5jIV0a3FrcnmCYXVqcF5sd2FSZXNpZlNgcXd1YXBhXWiEcnRrWGhpY2lZbldcdk1LTWZnXmJzdIZrXFxleV9eZGd7YWRfXVlrb2VuanR4in5zdIF+e3Z6iHOFgn1/iHd2ioaPmIGMgnuTdWx3dnl4k3RueHt9WHqGcX9vZ3h3koJkdoaGcImWhZmhmqKKh3Rvkoxxd4+dfouaiYp9oH+EmoCBeHJ0bm9kcn9pZ214eFxgeXt7cXGAaWFnYX/Vto+RpnducXh9cpSSjolsm5CKnZOMh3tph4uYhoGSkYaHmI58jY2BgYmNe46MfYiEenN6g3pwh4CVmY6TkoCHdIKEdIF+iJGbnoaVj59+iGJ/k4eFiYWLjX9/gmd8kIB+f4KMj5B+bYN8g3VsbXd1dHd2bGOOgpCBhn99hoCFiYBwX3FvhHuNioB7fpCHenCDZXmBiIWKgXqEfH2RjI+Rgm1ueYt+dW1uamx8f2RpbGtabndZU2pzaWJRY3N4bWNmXlprhW91Y1xoX2VtYG9VXHBPSU9nZlxob3KAbVpcY3NgW2Nsd2VlXV1abG1jbWp0d4d/cXB/fH10eIZ4hYJ9gIh1eYmBkpV8iIZ2iIBveHl7g5NvbnuBd16Df3SCbWl6dJRzZ3OIfHGRkIOan5ughoh2dpR/bXeUmH+IkYSLjpp9jJp3fXZxb2xqYXV9Z2JqdXpaYHh8emxwfmVjZ2dXnY9fcnSXvsWFeHKWi5GAdJmNh56UjYlzaoiPlYB7lIuBhJuMfIqGfXyIjH6Sh3SHhXZ2fYFxdYaBnpSGlI6CgnF+hnOCeoiWm5aFko2dgIhmfZOCgYaEiolygX1nfYt7eX9/h4uPfWmAfYR2ZnB5eHN4dGxrj4aLgoyAeoOChISAa15wdnp9i4eEe4COf35ygGh3gYaJhIF3gnp+lIqOi3xta3qIfHZ0b2hofnhlXXJjWXF0VFRvc2liTmh1eWdhXl1YcIFwdVplY15rbmFxUFpsU0RUaGJabG9ufHBaW15tY1pjb3dkZ1xdYGtqY2xpc3eCg3Fvfnt/dHWDeoOCfIKGdn6JgZaQeIOKdIGHcnl5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb32Mdmp5mY+Ag4uDlpiKeY+Wb3lzcWxqZGB0e2lfZnJ7W2FzfXpmcHphZWSOsbJ3S2NapdvSmHN8k42SeoCXjYaako2Hb2yFkpF5eZOGgISZinyHgHl4iIqDlH9uiYZxc317anmGg6WQhJKMgn5ufYF0gXeEmZeTiZKPlIWIcHqShH6Eg4mDboF4aICFeHJ/f4OKh3xlfH6EdmNxc4BpenFvdpqNh4SMfXh5gYV7g2tcb3xyf4aDiHyEh3qIcYBtb4KFjYKCcYN3f5aKjIJ2bGx9hH52emVoan9yYVp4XFpybk9YcnRnYEtud3ViXlxbWXZ/dHBYZ15na3Jgb09YaVM/WmdfW3FrZ3pyXFtZbGVZZHF5X2hdXmVsaGZraXF3f4hvbH9+gXVwgnqAgX+DgHaBhYiXinGCjXF7hXx6eYSUjHVren9scH51f35vcnx7k3BvgX94Z5GKgqGYnZKDhmeHhHBnepeKf4CFgpqKgnyNjWl4cmxsZl9hb3puX2NweV1kbIN6YHB2X2Rl1eu+izM6PoyPgHN6h4uRj3iFmY6AlI+Nf25thYyLdXyPf4WClYl8g3hudoaFgpV2bYeEa3R7dWV5g4SnjIOOi4J8bX5ydIJ4hJqPio+Rko2Mh397koh5gIWOg2yAcmmAf3htfHyBioN3YXmEgnJkcWl/bnZydYOdjYKBh4B0dn6Ac4FwW2t8c3eIgYl6hn98iHh5cGqGgo6CiHCAd32TiIl9c21qdYCAdXVcaWl5cVlXflRbcmZNW3NyZlxKcnlxXlxbWl12gHZqWmJbaGZvZGpOWGdSPl9mXF52ZmB1cVtZVW9kWmVxeVtoXmBmbWhqa2hweH6ObWqBhH95boB7fYF/gnt2goKMk4VwgItueH2Ae3uIk4mAaXt+anR8coZ7c3d+f4x6eIR+fGuLjIObnZaMgoBtjX5saX+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BibHVhaHCJemFzc15iZJugkG5dNluwtnVrgYt/lIh3iJmIdZCMindwbYWChnR5iXiJfZOIen9zZ3WHfXyWbm+FfWh2eW5leomFpIeAhoyJfW19dH1/e4qXhoCTkJiJi4WKfI+KcXx+hnxpfm1rgHt5anp3goeBcl93gn5yZHJodoNudXyGlpOCfoOBcHh6fHV/bVdtfXVziYCFdoZ1gYl6d3Jsh3+Of4NxfXt8kIaHeW1taGyCgXRuXGhmdXJSXHxPXXJdT1xzcGRWS3R5a1haWVphcoF2Yl5dYWdkaWpmT1ppTkFiZVxhd2FcdW5YWFN1Ylplb3NYal9iaGtnbWxpcHd8k2xphIp9fXB/fnyBf4J7d4CAioyEcXuHb3J3g397iY2PhGp+e254eXaLd314gIKHgIN+fnpthIyImKONhYR7dot5a22FipJ5fnyCkoCAfouDcHJwY2ZeWGdfcHBgYWhxZmpviXRhc29bYWNqdnt/v52opcq5coeGdJV+eomVhHWSjodyc3CDeoJzdYZ0iHeUiXl5cWN2hXh/kmhxg3ZmdnVjanyEiJ6Cf36OjXxxfXKCd32PjoJ2lY2UkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWdgd4d9a2p0aHyBanaBjZKWf3x/f3J9d3x1f2JVdXtxcoeBgXuCcIaJd3dvboGAi318d3x6c4yEgHRncGdriIFxb11oY3RvTGZ3TV9vVlVadG5iUVB1eWNTWFhdYnKDdF1iXGllZWRsZVFccUlEZWJcZHJfXXhoVVdWeF5bZm5pV2xeYWpnZW9uaXB3epNuaYiMeX5ze355goGCfHZ9g4iGg3B3g3Nud4KCfomLlH9xgHx4enqBi3WDeH+BgYKEeoB1bn2Ji5ueiH6Ge3eHfGh1h42Ren+AfIqGhHePgGdwbmBlXFhlWm5zYWFhcW1saIluYHNpWF5jbYB3qdqpyIeIs3OLenGPd32JkYJ7lIuAdXR1fXZ/b3B/boV0lIZ4dWxgeYB4h41kcYJuZ3VtW219gZCTgIB4kpF8d3pshXN9j4qDcpWKkY+IhoZ7f4ZudXd/bWh3ZW18dm1rd3d/f3xgYniGemh1dmN+fGh1h4+Ol312gXdygHt9boBaVnF8b3OBhX1/d2uIhnN4anN+goJ8eXt3enGJf3pyZnJkbIuDbHNaamB2Zklvb01dY1hXVnluYlBTdXdaUVZYXmFzhXBdYWNuZWReb2NVXnNHQ2dgXmdpXVp8Y1JWXXZbW2dsYldrYGFuZmZscGhwdniPdGuOjXZ/d3h9d4GEgXx1fYOIiINvcX91cXV+hYGJjYt7d394hHx9hYd4iHx9gX2EgHt+cnV4i46fjIl7ind1g3pefoeajXmHhHSGh4V3iXtibm1cYltbYVZqdGRhXGhvcGeHcWFxZldcY2t/fMrOh7qia25vjG5zhnN+hoyAe5KFenl0eXR0empsdmOEdpKCdnBnXnyAeIqHZHGAampxY1hte4aciIKBcpeTdn16bYZvf4iKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHJ4fXx5XWR5gHhpdXlngndodYiMj5Z+c4hrcH+AeW59XVdvfGxyfYh6gG1uiYBwdmZ2fn9+gHR6b3lyhXp3cGRxYG2MgWtyV2tfeV1JcGxOWFZfVFV8a2JPVHZzUlJUV15jdoZqXmFra2ZjWm9iWWRxSEFpXWFnX1xWfF5PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulIp1f3t4fnmDiIB1dH+GhY6DcG97eHd1eoaFhoyGenx/dYt/fYaEhId/fn59hn98eHZ5dpGUn36NfYtudYB6ZISImIZzkotwhYWCeoN1Y25qWWBaXV5UaHNlYVlkcnJngXJha2VXWl9pf3i+rnugt25jdYhpdn1ze4WIe36NgHd4c3duenZlam9gh3WOgXNqYl59dniKgmVwfWdra1pWb3iLo4GFf3CZknB/dnOAbH6Aj4ZylIiNiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1pmfX14ZXJ+boV0ZnaGjYeXgHGMaGx7g3VtdWJbbXpqcnmJeoBldIZ9bXBndH12fX5wemp5eX93dm9ka2Bsin1sbVVqYHhWTGxtUFNQaE5ZfWhiT1V2bE1RVFVfaHeEZ15hcWlnYFdqXV1sakpFa1tjZVdZVnpaTldva1ldbGVcWmVjXnVmbGVxZ3NwdIF4cJmFdn9/eH98hod9dnSCiICVg25zeXt7c3OFhoiIhHmBfXaPf32FiY6EgYN6fouDe3d8dnaZnZh6ioOHanZ+fW2FhZWBco+CcYaCfoKAcGZsZ1hdWlxbVGVxZV9YY3N1aXZwZWVjV1tbaH9wb3KAc4plZnqAa3Z3dHWFhniChXp3dHZuanpwYWhrZ4Z0jYRuZl5ee215iHxnbHdmamRVV3NwjqZ8hHt2lo9ze3F6eGx5eY+DdZd8iIaEh4R9dXFzbWh1XW1pYGx1ZGdnaXpve3JZZ4F2dWhwgHiCdmJ3hYt9loJvjGxufIFxZnNlYGp4ZnB1iHl8YXSDdmlrcHN5b3l4cntlfX19dnVtYmRgbIZ8bGpVaWJyVExrbFBNT3BIXnxmYU5WdWVLT1NYYmx4f2ZeZ3NrZWBXZFhjcl5MTGxYZGJVVFZ0V01Zd2VaX2xhXFtkZV92Z21icGp0b3F+dXSZgXh/gHiAfoaEen12goN+mIVucnR8e3RxhYWPgoB6i3Z0kYB8gZWOgYWEfH6Mhnp+gHZ6o6aKeYmGhWx1fXx2hIONe2+Gc3qFfYKDdW9qaWVWXVtbWlNjb2VbWWF0e2pobWhgYVheWmmAaWxvgGhtYml7emt1dXVwh4J6gX53dm56aGp5al9lbmiBd5CEZ2VYYXZofYZ4bmlvZmZdVVhvaI+odoF6fJCNeHRufW1xdHiNfneUdIaDgIaJdmp0d2hpb1xtZV5uc19nYmp4aHttW22DcnRqb4F+enhid4WFeZGGdIlzcHp/cmNxaFttdWRvcYZ6d2Fyf3BnaXdzcWt3dnN1YoJ5fHV0b2NiYWx8fGtrVWliZ1RMbmlQSFNrRmJ5ZmJNVHJeSk5VWmZteHtmX25yamRdVmFWb29YS1RpWGdeWE5WbFRLXXpgXF9sXV1bYmZgemhsYW9vdm5vd3V6l313gIF5gICHhnp5eoN9gZOEcXN0fnp2dIWIkH6BfZFsc5WBfIOfhX+HfYF/hoKAint2hKuff3qIiIVscYJ7doGAgnVviG59gHSKgGpwbmVkWF9aWlpVYmtnXFpfdYJpXm1sXGFXW1xrgWVydH1qa15teHdpdnhzb4d8fn56dnJsemhpd2ddZHNoeneSgGNiVGNuZYGEdXZmaGlhV1ZZaGSQp25+d4CLjXlwbntld215inp2jnGEfn+Ah25kd3RlaGldbGJecG9baF9sdWV6aF10gG5ya3F7f3Z2Y3WGjHyJiIGAeXN2fnRhcGxYcHFhbm+CenNjcYBsYWx5bmloeXhzcGSEc3h4c29jYGNsc31pa1RoXl9VTHVkUUhWYkhjd2ZiTFRxWUtNWFlpbHd7ZWVucmdjWlheWXhnVUpdZFhpWVlJV2ZQSWN5W15fbVteXWJkXn9pamBvdHltb252g5d5coGAfX+JjIZ+dnaGeIaMfXN1dYJ5enqCjI59f4WJanSXgXuLnX5+hnqAe358holzcY+tjHt8h49+ZnGJe3R+fXdzcIZsfH5tkHpjcHBiZV5lVlpZV2RmbGBdXXSFaFhwbVteWFpcbHtjcXd2bmNcb3V1aXZ3cm+GeX+Bendub3RlaHRlW2d1ZnZ2kXlfXVJlZWmBgXN8YWJpXFRYXmNkkKRoeHSChZB3bG14ZnZse4N5dIdygXl9eYBpZndtYWdhX2pgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzhJOAiYSJe3dwc31yYXhjWW5uYG5vf3pyZXGAZF5tdWhjZnd6cmxtgXNxe3FwYV1kbG58ZWlTZ1laVU56YFJLWllIY3VkYUpVblVLTVpXam1ze2RsbXRjYVlaXGJ4XVRMZF5ZalRXSFlhTkhrd1lfYW5cXF9iY1yFaWhibnh6bW9qdoGQeW2CfoCBkoiEgXd1iXSLhnRydnaBeH19foyPgX+TfnB4loN9mZN5gIF3eX5/c4iEc3CZoXt7f4mVeWV1iXpzeXdsdXB/bHl8cJJzXnBvYWhibFRbWldpZG5mXFxyiWVTcm5bWllXYGx2Y2p1a2tfW291cm51dXVrh31/gXx3b25sZGlwY1trcmR0do5zXFZTY19wfn1wgFxhY15TWmFcZJKeZXJxhYOQc2tpeGtubnl5enGAdn9ze3p7ZGZ2aF5iW2FoXF93aFdiX3BoYXdhW3x2ampybnh0dHVpcYKWhIiAhnZ0a3B8bGZ3V1tpbGFvcH53c2VvfVtgb3BiXmlwfWtqcn1wb3Zpbl9aZGtsemFmU2ZVWFNReF1TUFlSSGR0YmFHVmxRSVBaVmxsbHxlbW9yYVxaWFptcVhTUWdXV2pUVUZaXU9Jc3ZZYGNuY1lhYWFejGpjZW16eWxvaXZ5hntrg32AhJp8goR5fYhuj4ZxbnZ6fXSCgn2Lj4ODl3R4gpSFgZ+JdYGAgXN/gXCHg3Zvopdze4aMh3tmd4tvbnxwZ3lye2xzdnONa150b2JnZmtTXlxWaGJtbVtccYxkTm9tXVZYVWZpc2hjdWVlXltwd29xdnZ6bIh9f32Id49zY2Rrb2Fcbm1jc3iHa1pUVmFidnt7b4RcY15jU1pgWmOWlGNucIKFiXJpZnhtZHJ1cXpreXR1b3t/dl9nc2RbXldiZFlidWVVYGFtZGFxXVx+b2hpc3F0cXV3bG2FlYOKfYZyc2dvfG9xb1JaZWlkb3F+dHJibHVVYnFqWl5uZHtka3R7cHFxaGxeWGNpanheZVNkVVdRVm9YUldUUEhlc2BiRlhrT0lYVFduaWV8aWx5a2JXXVZcdWVUU1hpUlpnVVRJW1pQTnl3W19lbWlaYmFfXo9uYmdreXZub2l2dn9+bIOAfYaYe3+HgYp/a5OIcmdzgHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1jZ2dpVGBfVWdgbXBcXm6OaE1pbGBVVlNvZ3NrZnhlZl5acnZuc3x5dG6Je393nHp5a2FlbG1eYG9qZXF5fmdaVVdfa3Z6eW6CXmFdaFZZYFhknIhia3CBhnx2a2l1a1t1cGp5aXVybm98gXNZa25gWV5WYmRYZXFjVF9iaWFibFpgfmtmbHR1b214d2xoho2AinyIbnFmcHtscWxhWF9nZm1xf3JyXmlsU2VwZFVibWF4YW90enRpbmppXldgZmh1XGRVYVZUT1lnU09cT1BJZXBdY0daak5KYExZbWVgeGlvgGVgVV9VXnZcVVNhaE9eY1VUS11aUVp2dl1fZm1oWGNhW16OcWNoanhxc21ndnR5gnOCg3qIj398ioiOem6QinRsc4F0f3+IhYeShJWPen2Mj4iRm4SAe4yEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fH5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fH19fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIyTk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Oj42MjY2Njo+Pjo6Ojo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTAvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOFd2VnZmZmaFxDRERERENHZGhnZ2dnZ2tvbm1ubnFKKy4uLi4rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMji4aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKCgoNyXV9fX19hUjQ1NTU1NDlcYF9fX19fZWdnZ2dnajwYHBwcHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmKioqKioqJhYODg4ODg4WKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkYuQjY6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo6NjY2NjY2Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYmJiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3d3h7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFh42JkImMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt9e3d2d3t8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWIjImPh46Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhIqMiI6Hj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf313eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+Kjo2LjYyPj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICAgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aAe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKi4eHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9+f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5OTlJWVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+Pj4+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+QkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhJCPkHx0iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fn5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYWFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ha3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZFRUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWVmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZGSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd2xibnJqYllZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tya2FtdHJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWGlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViZ2xvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdWlxlbG5qb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtbaW1ub2pvbWtqbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5sa2xoVUM+Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzc3BoVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9akA6Oz49Pj9AQEA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQEJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9PkFBPz9AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSktIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0g4Ozo9PkE7SGQ9PD08ODo7QD89PD08PEA9PTw8Pjs9PD0+QUBCQUBAQEJEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlgcHBycnJ0dXZ5e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPTw9SUxGRXV2Tjc4ODo7Pj9XakE7PDw6Ojs+Pj49PTc5Pz09Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnpKO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT5OU1VSTENAQD8+QT07P0JAQkNCQEJDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VFP0FHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyemtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUJBR2ZobGhhX09DQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSUlXampoaWhmZ09ER0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHt9f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTVNtd3BpbW9xZUtKSUhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE5NVHJ4eHJub29sTUdJR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSElJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshYeGhoaHiIiHfFBMTUpbd3qCcW5tbWxLQ0NCQ0ZGRUJAPj5AQUJAQkQ/Pj9ERkhERkdJS0lKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BycnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoWFhISGhoaHh4aKdUpKR1tnaGpmaXN6cUM9Ozo8QUFAPjw5OTg8PDw7Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPZ0VWZGpsYWVseIBlNzk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42KZWJvcGxoa3FteFEzODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5ODY2OjxAR0ZJR0lGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKi4uIcXV2cHB1cGpuSzQ4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnl7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgICAgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi46Idnh3dnhybW1KODs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY2CdXh7eHJxakhBQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo6Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjIx/eHt6emtXTEhISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZERkRFRkRAQj49QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOjc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIyMjIx+eXp3WU5TTUtLSUpKSklFRERHSEZEREVGREJISUtHSEdGSEdFS0lLSUpLSkNFQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0FCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjYyMjol6enVdUVRPTE5LSktIS0dER0lJSUVGSUZGRUxMTUlKR0dISUpOTU9MTE5LR0ZHR0VFQ0ZFRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjIyNjYR5enReUVBOTkxKSUZKSUVLSUdLSklKR0dHS0xOTExISElKTVFOT05MT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SFhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIyMjXZ2eG1UU1BNTElHREhLSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyOf2RnbVlYVVFPTUxFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOSEdKRkVISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1RGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMb2Fjb2RIVVNTUks7O1NUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFMTEtISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4GAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uIc2JqWT5bW1pVUj9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUtMSklJTE1LT01Tb3R2eHl4eHp6ent6enx9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYuMfXRzW15eXVRVU1dXVltbdYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFFPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeJioFuhomIh4SKgGpdXV5bVldVWFRTWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQTk1LSkVDP0A7UFBaWltTU1FQUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoF9YFVZW1ZUV1RSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXempYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4h6cHNaTk9RUU1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNWVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZRTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYXN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZhYFBIQkVFREREQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNU2RydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1BVWVNVUVFUUk9WX2tscnZ7e3h5dXJuc3RzeXh9f4OAg4OCgIKAg4GCbE9JQkM9PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01SVUlCRT8+PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnR0dXN0dnh6fHt8fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSkpQUE5LTFFSUVRVVVdRUVdVUFhbYV1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlRUJCQz47Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEI8Ojc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV2dXZ3eXx8fH18fH19fn18fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpcV1ldXl5fZV9dXnF2a15gZ2t3b29sam9ubmxlYllIR0hIQ0JHSUZGRkRNUk9hV1NXUVBTU1JVW09PUVZQTUlDRj86OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fXt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFdYVFRZUk1YWVpWWFhWWFldV1dYaHNrXVZhdGthYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1pXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHp7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVFdUVVJdbl9STlpgW1dZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pPT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWldYVVRXVFJYWFlZWVNVT0pHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSU1LT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaGlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhKSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE5OUFFRTlBPSkxNTUtHRUVDQTs9PDw6PUc2Njc3RG1wdHZ5e3t9fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE1NT01LTEtMTk9PUUxPT01ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt7e317fHt5fHp7fn58e3V0dXJ2dnp7eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTkxRU0xUVVRXV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhGQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFJQUk9TT09QTE1PTUxNTU5PTltXS01RT0dJSENJSkxMS0ZGRkU/QkM+PEJHP0I/QWRwc3Z6ent7fHt6end7d3l+fnx7cXN0cHJzd3N4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESkVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE5NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODk6P0I/PEFCQUFERUdKRkRISEdHSENEP0I/P0BBPkNFQ0tOUlRMSklNVEZJSUpMSktMSUpNTU9QUlBKR0NMR0NCSklMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb21wb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISUdKS0lKS0RGQj0+PTo5OjtAQj89QUJDQ0dGSUtKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTEpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkZHRUZGR0VHQkNAPjw9OTo6O0BDQD5BQ0VFSUVJSkxGSUlHRkZDQjtBQkM+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtJSElPUlJTTlJmZmZyb3N4dnt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERCPj8+Ojs7PTo8PkNBPkFDREZKRklITEhHR0dGRUNAPUREQj5BQ0NDRUdJSUdNUUpGRkdLTk9LRkhJRkVERUlKSEtJRkhPS0NJTEtPTU9OT09OSkpJTFJVVVNPV2RgYG1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oj49QEI+QEFER0pGSUZJSEZGR0RDQkFBRkZDQkJDREVFR0dIRkxRTElPSkpNTElHSEVHRURDSUlIS0pHS1JNQk5OTE9OT09NTk9LS0tPVVdWVVNYX15caWFuam5ocnNiZGZlZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3Fya2tyTUdHRkhCQkFERTxBQEBDPDg6PD45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSU1LSVFNSktISElFRkhIRUNJSklLTEtQU05EUVJPUFFOT01OUE1MTVNXVlhYVVhdWl1kYGljamlna19kZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzs9Pjo+OkBCPj8/QkVGREdERUhFREZDREZFRkpFRUlHQ0dIRkhHRUNGS0pITktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVFJQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYWBeaGVjYGRlaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEhJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRkNESURERUVGR0dHSUZHS0hESEhHSUdGREhLSUdLSU1LSktMSExLTEtKTktPTk9SVVZPS1VWU1BTUVJMT1FQT1RZWllcWllbXV5dYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8PkA/Pj9CQjxAPkJBRkNFRUVJRkZFR0ZHSEZISElLSkZKSEhLSEZGTElIR0pHTExNTExJTUtNTU1QTFBQUVVWV09LVlVUUlNRUkxPUlJRVlpaXV5bXF5eXmBgYWRdY2BlZmBlaGpkc3Nmamdma29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZGR0lGSkZHRElIR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTE5OTlBLT1BSVVhWTU1UVVRSUVFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdsb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnVud0tMTExNR0RDQUU8P0VFRUM9QUFDQkJDREFDRUFBRUdDSEhJSEdKR0NHSUdISkZJTUhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOUlBXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nY2hoaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0lKSUlMSEpKTkxPS0lMSEtMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZCP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdmxtcHNycHJxcHFycXJycnRybW1zbm5vcHN1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0NGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwb2pqbm9wcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZIQ0dESUZFRUJGSUhIRUhMS0dNTU9MTU5HTE1JTEtJSk1JS0pKSk5QT05MTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eGtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0ZESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9xdHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRURFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1FLR0tKSk5KSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2NnYGBqbXFwbnR5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXF1dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxaUEpFSEhLTUlISkpLS0lISUZLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPTlFOT1FKSk9QUWRxaVRZVlxbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbmltdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0RHRUVBRUNAREhERkdDSUtMSEZDR0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cnhyeHNxcnVydE9CQ0RMTUJEREJFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUklHRUBIRktJS0xKTEpIRkRJRkRGR0VGSkhDSk1MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVJKSk1JRUNCQ0dIRkhHSUtKSklERktLS0VGSUpOS05LSExOR0dFPkdHS0lLTEpLS0lHRElEQ0RFQUZKRUFLTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhZUUtGREdFQkVHSEZHSEhGR0lHSEdIS0lMRERLS05NTEtISkpISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQEpLSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QT1xfYWNjY2NiXWRjYmRjZlhRVlRRWldaYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNTEtPTUpLSUdHRUQ/RUNJSUNDSEdFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYVJRX19iYmBgYmJgY2JhZGRiWE9RUFFaUltdXV1dXl9fY2hnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtLSUlHREhLUU9NTVBMTEtLSElDREFFRElHQ0NIRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU5YYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeX2FmZmVsZW9vd3x7gHt9f4CEhISEhISFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35KTkZERkZIRElSYlBDVl5JR0dIREZNSlBQRUlJSktOTEtKTEtJSkdFSk5RUU5PT01OTE1IS0FEQkNER0RDQ0ZHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NQS09TUlVaWVdZWFhkV09TVFBQTk1OVFJaWFhaXVxgYGRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGhoeHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVBIS0tLS05NVU5PSkpLR0dLUFNTTlBPTk9OTkdLRmBFRF9MRWdkRk5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BfYWJhYl9maGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFR0ZIRUVLT1NJSkZgU0dKT0pJT01SUExNTExPUlVST09JS05HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19ablhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbXmBhYWFdX2FnbXBsX3B3dHiBgYKDg4J+fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFVTEtOSUtSWFdRTk5PTVFUTk9RT0tLTkdNT1NbWlRRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3Jxcm9vb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbHd+gYCCfXt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05MR2BdR0FFTE1HSkpHSU9OTU1KTlZeWVVMUVNOWFpNU1NSTUtPSFFSVFlXV1BUUFBQUUtIZ3hsY3hybVtMTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4d2lXclFoem1panp6fWx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhWl1iZGdpaWRnYmNkbGxwcHN0c3NzenFyeGJsdWdyeXtycnZ5foFzdXpufH15eHJuTktTdU5DQkZQUEhKS0lLUE5OT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGlhV25McXBeRmh5V3ZUS2h5fXhgeXtzbmFdbW9jUmdxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5cX2RkaWdnZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5f25xcGt7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFlVTVVZVWVYUlJZXVNMTklUVFdXWVdPU05OTlFJUm1IaXdLYGR2d1ZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsX3Z1a2l1e3ptfnhrfHBcXl5iW15hZGRmZWVlYlpjY2lra3JzcnZnbGloZGdhYWthZ3NybGdtbXJ9a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NSlRTVFFWVk5OTE1PUEtIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYV1pPU1VXWFhSXllXXldVUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUElLTExNS0pTUU1RUU9MVlVUUFRVWFVaVVFaXVVVVFdVWVdPT0tNVlRRTlVTTk9NTFFQTEpSUUtRTUtMUFJVU1FSU1NJSExOT1FSUVBRVFZSWFdcV1NSUFJUVVVTWlFOU1JYVlRZV1VaVlRSVlRUVVdYVlxZXWBdW1paXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXFpkXGFtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUE1YV1VUVVdXV1lVU1xgVldWWVVYUlBQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpWWFpVU1JYVlVXW1hZXlxVWF5cXlxbXWBgXVtiYmNnZmVkYlhfYWJeYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmZ2ZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYWllYWVZdamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVRVVVRUUlRXVltdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTU1lXVlpeWVxeXlVeXF5gXFtfX19eWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVxfXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tYVVVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbW1dSU1dWV1hWVFlbVVRTWlhXXF5aXl9fVGFcYGFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWlpZWFdcWlxbYF5fW15eYWBfYlxZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlteanF3eYBjXFtVVVdQTU9WU05RUU9SVFJMUlRUWVtXVU9ST1NYV1RTVVJSWk9QUlJWW1ZXV1NWWlhcXVtbXVZSTVRVVVtcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYF9WYVtjYl1hZF5cYmFiXmNmaWRmXVtkYGFgYGNlX2JeWVpeW1xaWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnW1RXV1FOUlpTUlFUUlRVVEtSV1ZbWVpTT1NRVlZWVE9XUlJaUlRUVFhdV1hZU1hdWF5dWVpdVFROVVZXXltYUlVVWVlZVVdaXFZUV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FdZWZpZGZdXWRhYGFhYmRgYl5YWl9aXFtYWFhXV1tZW2BcW1tcW1hZW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVFlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSVlFZWFlfW1pUVVZaWVpXWFpcV1VbXl1eYGFfY2NcXl1dZWFhZmReXmRjYFxnZGhlZGFfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BWWVFdVVZZV1dVWF9fYWFgY11fVV1eYmVldYF6aFdYWVNVU1ZbWFdXVlZXXVhPVV1aXl1cVFJYU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFaXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJhW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVhdWltbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVpZVFdUV1taWltZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWV1eWV1VUlhXWVldYlpeV1hbXFtcW1taXFpaX19gYGRiY2RkYmRaYWViZmZlXmFiYGNdYmNpZGNnX2deYWFjYWFgXl9YVFtaWltbWFtYWFxbWltYVllYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXFpWV1hZXFxdX1tZW2JWVVheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXldVWFhbWl9gXF9ZWVxcXV5fXFtdWVtgYV5gZGNkZWVlYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVpZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVVltcYF5dX1taXl1eXmFdW1taXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFloaGJmaWNlXmJiY2FgYF9dXFpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdcXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWFRXXV5fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJbY2dfXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldWWE9YWl1hY2Vmcmt/SllXXFpaX1xbXltYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFplZ11hZ2hjaGhmY2BiYWNiX19fXV1bWltZWFhYVlpWXFtaVlZVTVhXXGhpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5ent7e3t7e3t6enp6enp6ent7e3t6ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp7e3t7e3p6e3x7e3x8fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1ryGiYmJiYiQzNPS0tLT08S9vr++vsCiioyMjY2OiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eTl08zMzMzMz6qNj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5eXl6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYOEhISEg4OCgoKCgoKCfnx9fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2d3p3eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXl5eXl5eXp7e3t8fHx8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx8e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fHp7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e317eXt4fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXp5e3l8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHl6eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgX58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqIhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKCgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKBgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3RzdHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3FwcXBwb25ubm5ub25vcHBxcXFxcXBwcXJvb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycHBwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFwbnyCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycW9ymIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgnByb4uefG5wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxdZ2hd3F3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh3d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKCdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSoqJd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGBgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtauso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqGyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJyOoK+gn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYeHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsaGYlpyFfH5+foB+fn5/f35/gICBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+gIF+fp+rpZakm5uWoJ+Gf359f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIqKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho2fsqiioJidnaaoraigmZCHgYCAgYCAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4uXmZeWmKCbnZ2dmZqXkImGhoeGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4ODhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICBgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCTj5WYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeHhYaGhoeIkZORkI6QjpGRjImIhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAh5uIi4eCgoKBgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOj4+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iIh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OBf39/gYCAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOBgYGCgoODg4KDg4ODg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4ODgoSEhYSDg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDg4GLnJqhmoqCgoKDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGhoaGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKBiZKQjJajo4+BgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYWFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4KTlJaYkpeenImBgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19f4KEg4OEhIuZlJqZl5aVkoSEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f35/gIOEg4SEkZWDiZaYlpWUiISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYWEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWdk4GBmJmYmJaLhYaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn1+gH9/f39/gIB/f4B/f4WFiKGgm5ufnpKNkIqHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoaFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYGCgYGBgYB/gH9/fnt6gIiaoJqao6KbjIGMioiKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKDg4KCgH9+fX19fX5+fHt7lKGXlpmfn5uYi4uJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDgoSHiIiIh4WCgoKDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uIhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoODgX59fX5+fn5+fn1+fX2BlZOQl5iTmJqXjYeHh4iHh4mHh4aIh4aJiYSDhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCg4OEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eFhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqAkY6PkI6TmJmKg4aFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaDg4OFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enqFkI2Mj5SXlISAgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhISCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+ChISCg4KDgn59fn+AgIGAfn19fX1+fXx6e3uIj42Nj4+Gf35/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYCCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fHx9fn19foCAfn1/fn1+gIODg4KCgYF/fX1+f4CAgH99fX19fHt7e3p6enuLj42Qhn5+fn5/f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH99fn9+fX5/f4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX+OjpSKf39/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYOQjZWMgYKAgIGAf4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19fHp6eXl5e4eIlJWEg4GCg4GAgoCCgYGDgoODgYGBgIGAf4CBg4GEgoCAgYCBgYGAgYCCgX+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl5fIKHkYSDgoSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6fYGHf4KKhIOEhISXl4ODhIF9foGBgoGBgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXp7fX98hZGDg4OEhJSTgIGBf39/fn6EjIB/gICEhpCJhYSCgoGFhYuCgYKFhYaGhISFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp6ent/goCBgYOCgH59f397iJF8fI6WgH1+f4KGioWDg4SDgoOMiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eHx9foB/gH99e3t/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODg4SEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn5+f35+fn19fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY6Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8en2Fg4OBgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f318fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aFg4GAgH1+fX5/fouEgYd+fXx8f36Cgn99fH19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6AgH5/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fX18e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/f4B/f39/f3+Af4GBgH99gH9/fn9+fn5+f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3x7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fXx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj42JioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9+f39/gIB/fn5+fX+Af39/f4CAf4CDgoB/gIGAgIB/f4CAgH58eXx+fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX19fH17fXx9fX59fn19fn18e3t7fHt8fHt6e3t6enp7fn2ChoiHiIqKi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoODgYCAgYGAgX+AgYKBf39+f35+gH57foGRjHx9f4qAjYx+fn19fX59fX59fXx8fX19fXx9fX1+fX1+fnx7e3t8e318e3p7e3l6enl6e35/g4OEiImKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GAgX9/gH+AgX+AgIGCgYGEg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkYSEg4F/fn18jYd9fX59fX1+fnx9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp6eXl5ent+foCBg4eEiI+Oi4qHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYKBgoGAgIKEgX9+gX99foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp6e3x9fn1/goCJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGAgYKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af35+gH59fn6AgH6Bfn+Af39/gH99f39/fn+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e31+fXx8e3x8e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAf4CAg4F+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhIOEg4KDhISEg4WEgYGAgH6Agn9+f36Bf35+f4B9foB9fX19gIB/gYCBgYCAgIGBfn6Af4GAgIGBgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhYOBf3+Af4CBfn19fn9+fn5+gH19f3x9fX6Bf4CAgIKAgIGAg4KAf4B+gIF/gIF/gH9+fn1+fn5/fX6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Afnx6e3p8e3yCgX+Cf3+BgIKCgYF/f3+CgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhIOChIOBg4GAgIF/f39/gHx9fX6AfX5/f39/fX98fn5+gX+Bf39+f4B/gYOCg4B/f4GBgYKBgYGAgIGAgIB/gIGBgYKDgYF/gISAfYGDhICAgX+BgYKAfXp7e3x8fH99f4B8f399fYGAgH59fX9+foKAgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WEgYSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f31/f3+BgIF/f3x+gH6AgYKDgYCAgYOFgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFhIODgoOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f319fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIGCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICBgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISFg4KDhISDgoKCg4GCgoF/gYF9gIB+gH1+fX5/gIB/f39/fnx+gH+BgIGAf399f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH99f4F/f4CCgoCBg4KEhYaEgH59fH18fHt5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0dYaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fH9/f4GAgYCAf3yAf35+foB+fX5+gYGCgn5/fn1+fn5+f3+Af32AgYB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKCgYKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgYB/fYB+fn5/f319fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx7e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHyAf4B/f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/f3+Af36ChIKCg4WFgoJ+fXx7e3t8eXd7eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX1+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgYGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+Bf39/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l8fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f39+fX9+gICBgYJ/goF9foF/f4CBf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYGBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKBgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKCgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoGAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fHx8fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4CAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX54d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODhIGChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX+AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/fHt3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgn9/gYSEgYN/goKBg4KCgoGEg4OEgIKDgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCgoB/gYOCf4CChIODgoGCgoGDgoKDg4ODg4SAgoOCg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gH58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGBgICAgIKBgIB/fX18fX18dnJ3eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgX+Cg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OCgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhYODhIaEgYKGhoWEhIODhISChIWEgoKDg4SCg4KDgoKBfoCAgoKDgoKDg4SDgYKCg4ODg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4OCgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gICAf4CEhISDhIWDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4iEhYSEhYWDh4aGhISEhIWEhISEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOBg4SDhISFg4SFhoSEhn2Den1+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOGhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICEanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYSCaHpyc3N8gHKChH6Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fXx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSCgoSGhoOFhIaIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4WEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ptfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKDhYeFhoCChYODhYeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gX9/e39+fYB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhXluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYF/fn5/f396fn18fn1/f359gIGDg4CCg4GChIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODh4SEhIWHhoWFhYWHhoiFhYaFh4eGhoSGhomIhYSJioiFhIWFhoWDhYWEhoaGhoaGg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGEgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaDhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOBgX5/fnt8e357fH1+f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeGhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeHhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIaEhoaEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIaFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhoSFhYOGhoWGhYSGh4WEhIWFg4SHhoSCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fn19fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhYSGhoeGiIaEhISHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgHt7fX18fHx+fXx8fH1+fH18fn18fH18fHx8fXx+fXt8gH99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOEhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhYeHh4WHhoiIh4eGh4aHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae3x+fXx8fH59fHx9fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIeHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCfn98f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoaFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoSEhoaHhoWEg4WFhoaGhoaFhoeGhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ+fn6Afn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhYeFhYSDhYWGhoeGhoWGhoaFhoeEg4SFgoGCgYCEg4KCfYGBgH+DgX5/f4B9f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIGBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aGiImGhYiHiYeGh4eFhIaFhYaFhIeEhIWEiIaGiIWFhIKFhYaFhoaHhIaGhoWFhoKDg4WAgIGAgISAg4B8gYB+foOAfX9/gX2AfH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoGAgoGAgICDgX5+f4B5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoWEhYSHhoaGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCEgHyBf31+gn5+gH6Afn99fX59fnt/fXt6eXp6eXp8fXl6e3t7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhoSEhIKFg4OGgoOFhYSGhIeGhYaFhYODhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIR/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5eXp5ent8eXp6ent7fHp7e3t8fX19fYB9fXx7fYB/fXyGg4aGhYaGg4SChYKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4SEhYaEhoaGh4aFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF+gYB9foN8fn59fX57fnt7enl6enl6ent5enp6e3t8enx8e3x+fn1/gHx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+Afn9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eFhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf31/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fn1/gICAhoOEhYSFgoSCgoSCgYCCgH59fn9+f36AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWDhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHhoWFhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fX17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH9/gH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEFBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU1NTT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vc2dfX19fX19fX1tbW1tbX2tva2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhkSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMg21wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiKG/vb29vb29vLy8vLy9tIuKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5SYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzU4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU056rqqqqqqqqqqpqamprJtUU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy81SLDExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTfbCrq6urq6urq6qqqq2dWVhYV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zOXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoWzr6+vr6+vr6+vr6+xoWNiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzcTCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7Ny8zMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vO0tLS0tLS0tLS0tLT09HMzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0tPPz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dXW1tbW1dbW1tbW19bW19jY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz9HIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQkA9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaTRmqycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGevJWInJ7EkoadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbsq7ByZiYxbzJl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqrik1pSWn87Rkpmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqOPpLOfw5varaO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLlaHQipKex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tfX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZmq0dulmbPQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZadq5KnmqCtkKeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoquknbGkpaigr6eiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iRjbTWnZKNutWako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0g9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV09O5x9XT07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExAPjc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEQ0k7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4ODk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk5Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcXR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHV8dn2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NDM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODQ3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6NzY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY2OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubq5ubi3t7a1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e2tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CQD9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6yvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEFBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NjU3Mzg6Ojo6Ojw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6KhoJ+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXmJeWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenp6WkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc5OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKTkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk5ODk8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg2Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoJ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKhoaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njo3NTY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuamZqZqIREf5+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRR4OgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ojs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoJycnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw+OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTIGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1+op6enp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzk4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VOgKKfn5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9QUoaem52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xWUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTE9jhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5/bJallZ+AiX9fcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot8blJ1nIyMWnF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3WE9McJSGgkxgcHF3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVS8wPXeHd3ZBRV5rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVUYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0FaSDt3eWtnRTA4WWxzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVF9NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0pvoXhBe3dkYVBRW0dgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgwNamQ3uMgHVPbY52U2R/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73Ar3eeo5qUZUxheG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo+m0KGZsahYTKyTU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooZ3fn1yz8mxm6eva1WqsGJah6afpaKhnZ+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrq2PhoNuj825lZGjl3RUb3pzbnuVpqqno5+eo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEA/QkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWgiHlkWZ+3wKapnYh3a3FveHh6fYaOkpicoqWmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkkHNmUkSLl4mJiH54cW5nZmxpa3FycXFydHyMqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8r6SXiHRZWlFDaXpsb3Vua2VlWVdeWFxjaWloZWBoibTAwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3R1cq5p52UhnJeUVRLRFtmXmRrZWFgaFlUWFJWWFlcWFp0mba7q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLeUdWVVUE9USD5ea15fZWJgXWRhU1ZWVVNUV3Kbq7CqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2ViYWhjYFtjX1dRTk9PVX+0uqyupaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01bX2VrZV9bYFlYUk1Uf6KqubWyrKmjoa2qrKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/R15jYmpgWlhXU1V2mba+u7y6vKytpqm7urm3v7O1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1VmYVNOT3CpyMjCxMbAvL60sbCwwb6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/T3Z+iVZMb6TL1MW2v7/Av7q7vbWzs8C/ub/CucG3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2uDkJhvqcjIx9HBr729uLm7u763tLG6v7S8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXqDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NlfZGLidHFv7/Jv7DBv7q3u765tbi0uLy1vbi1tK+zvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1o23v7vDtbrHtrW4ury4ubaqo5iOf4PJv7+7wb65xr3Cv7zFuLe3tLi2try7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdvamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3p8y9x7e5t622tLe5s7WxvMnDlUt6yr6/vr28v8jDxcW+x7i2s7W9uLi4vru6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZjbmBcVUhLSkRKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNavdH+6yM/CwLiutLS7vbe5sb3Dyo9DdM3Dwr++vbzHzMfHxMe8tMDBwL27vMDDusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsam91b3hkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmnFyq9LRzMrEtbq/xMi+vrS/wMB5Um3LxsK+wby/w8zKx8XGwbnCusW/wL/CyL3Hx8bFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xNDDur68xL63vMC/yc/HyMrKwodyc6PLzMvNysbCw8vOwby4vbqxcGNiu8jEwMC/xMDKycPDw8O7t7TBucC9wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdpqGfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V6dniaxMfLyMHDwMDJysG/u7mxoX1zaq3IxcS/wMG/y8fDwMjAvayrwLO7u8G+wMrOysS9tby7ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeXRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S5bazOvba5wLyrfm5obmxygZWYc3d8l72/xsC5wLy+xcS9vbixsJmQfoCbysLDvL2/v8PDvr/Ivb+llcO0trW9vr7OzMzCuLK4uLe9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNtHaAs722tcKlh2laXWBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmYiRfsDEw768v7u7uLbBwrbCoIGntqqwvsK60snIw7GwtLS1vLm+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnd4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeImgr7Wea2VmVlhfSUlNUFNsd4WlsLe+ubK1sru5vLa5vrSVnKeWoXCuycTAvb+5s66yvbuuv59yeqONk5yfpcPCv72sqq+tsrq3ur67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WriHx2jKCZYFRDV1ZIYWtWT0ZJYI2gq6+2urW0sqy8ubi1uMG9i5myo6ZypcvCv7m6ta6lrLOwprSheYSnl5GPkI6OmbC0paiprsG1s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIiPb05KP2NaQU53gJRrTUFcgbC1s7WytK+su7q4trm/xnaEqp+bZae/uLWysa2tn6Snp52nqrrFy9PApJCUl4KDoKCkpbzErK6nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6GWkpKWHaNgGNAUqK5s7SysLGtsLm4tru3ur2QorKspHOrsKmrraujqKCdnp2YmM7m4eHf1cankYl5bXGXoanBpqiooaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xrKqprq+wraWmqqSos66tq6impqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7G7qpmZlWlOQFJ4cVBJSUtnm4FZRVGtu7Gss6+urK22trK0ta6ppp+am52fpqieoKipn6GnlpuWlZvbz8bGzM/Mv5t9bGple6XGqpeiop+fpaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHmDfHZ/emN4bW5cUWlVUE9HUE1NQ1BSQD47PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovMKrpL5pRVKcglFXSUlfS1OOYGNigK61qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+dqJOZlJOunGNykLTGx8erfGlpbmaUtYubnp+hnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5ibmpukmZeUlZqdoJ2nqKWgo6Kho5+coKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn59gHV2fW5se2RoVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoarGv8qhUEFynnhPbktLYmV1c19aXnCPsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWlpaXoUstSFqIs8LBq4Bxg4mDeH2Uop6fpp6dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpycl5uhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoZ+gpaKmoIl8gH53eXxleXlhYlNWYUlJS0xTVUpTUU05PkE2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2jx8ePV1NJZKNcZX5vcl1Qa2NbZF9da4+0sLC4rKahnJ2alJiamZCOkZWRjI6Nk5minJeimJmVnIRSa39pYJSvrp6DgZ2eo5p/qqqlobCjmqOmpqqioaqiqaSosquxsqu5qKarp6urqKysp6Ggo7GusrG0qrKvo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaiip6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaHJ1dXFidnZYV2NgY2dZWFdlrK6sr6efnqKhl5GUnKCcmZiSk5+coaOanpqWnpmdlph8a5Cii15wmZiPi42eo6Wnp7e1sKazrKGtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlqCcm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYN/fHh2and2Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NR5esqqmloJ+akZKUmJiWlpWMiIuOlZ2cnZyelp2YpZ+RgYCzysqTYoOFho+IlaCjoa68vristLSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xuLe8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZqKCfn6iopaWfnaqiop6bn6igpKetmaCjnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYaFfnZybWl3bWhuXVhbQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXioramqpqCen6Gjnp+em52clJOVlZ6emJSFnZmfmaqljX6BsNTSsXRhc3uDeI2WmZWlwMC+tbm7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWuo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPUM/RTw/OTZOf6qzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bIafoqGprZB9cKTVlHuHS1pwdHGCg3p4k73Iwr/EyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DCvcfHwrjEysnEwce/urS6u7W7t7C2squ7sq67t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2ZaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66noqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8cGJCPVyOrqyhmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxvjaSrrq6OhWaDqH98dl9iYGRpaGNbUnbAysTEy9DS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM+/ydHNx8bJxsK9xMG/v7+1vrOtv8DDxMjFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2dfWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uFnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanaitrKXdH18enp+eXuShGVcUGxpWjxuzs/QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysvCx8zHycnGv8Ozs8jFy8vMz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2Nnd2plV1hSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njk6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGdY1NMSkRDP0JSrdG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJthKSZhmV8eHd/j5eckGloZmSopXU/pNjP0cLP09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKztHMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXNjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCio1tJQEFEQUZQdbGvppqUl5+cmqCgnpudmpWJd2lkYV9gYF9eX19dYWx1c3BvbmtwbnKEkIZeX15ZV3GDfXxcU3FVireJY8/V0tDM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dTWzM/Pyc3SzM/RwMfEycfPztLR0sjMzcDLzcbUz83PyMXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0ZDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjw6PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1qbW9zdIZ+T09SSlFve2x+bFNyWpKsgpHQ1dTQyc/M0tbS0dbNz9XV0cXR08rQ1NXWztPR2NfX18zIzsTKz83KzcDKwcnKzs/QzNDOzszP0MjM0dHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZFTVlFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXJubXFxcnJ2cVRPTk1cYXVmeoV2WWeDjHSezNLRzcbOzM3Uy87SzMrW1tDM0NPLzNDS08rO0dXS1dbKwMrCxs3DycrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzc3M0MXHwbi5vcPCvcO5srK+sLvDw7WqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdNSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb292j5qNjJeVkJORkZWWlZCLe2ViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbXJxXUpDTU5dW2BxYkhdb2dWkcbNzcbExs3K0cfKzc3F0NLPzczUysfKzs/Hxs7Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDExci7x8PJycLPwL28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoahqZONjZaPhYODg4F9hIR/c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lpd4NgRkRIR0I/TUxRVGdeTpe9x8TAwr/Cx8nIyMnHv8TLxcfKzMnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKx8jG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp7nZGKkpaGeoCEhX91eHVycF9aW1xgYGJjZGRlZGBbXF5dXl1fW1laXGFucW1pZmdraGx+cVtNSUc4Rj9DU0pUZFiUr7+4uLu5t8DBwcO9vbi8vrjDycTGwbzGv7e6w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszHssfJw87MwMXCv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQDk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6nYGN3gJKLiIuEeH+Ghn99g3t0dGNcXF1eX2BiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWlrdIFtWEtDTlc5Ok1GSFtUlaKzsLOysrKyurS7sLavs66xusG7wMS7v7q0sbq+wLjHuLS8tsHCvbi9xsHDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPFwMTGxsfMxb/FxrvHy7/PycfDxcHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFERj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhYiJenh+hYZ2d4F8c2hdXV1dXmBfYGRhXmNlY19eXFteXF1eWltbXV9rb2xmY2ZoaGp3e19PUVlFOThGSURKYZ+XpKeuqqiqp7KstK+xp62mq7K7ubXCubm5r6q0ubuzwbqvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDwrnExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFzdLLw8XBxM/GzcHCxr/ExMPDysLJyr/AvMK6s7W1w6+qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZnanpsT1pbREA7Njo9TYqakZSfpKqhpqGpqKupr6KlnqmstLWwvLivtq6nrbe0s7u3s7yvuLm1srvBssCvpamjq7Gzs6i9qquoq6yutbSmqK6hpbCps6enqK6mqLessbO3urq7sry+vr7Ev7XBwMfIt76/xbfFw7+7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq4wcPCtba8trGvtbyuqKuTY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhtd11MSlZWUVE+QnqdkY6HmZyloKCeo6Olpayem5qjpKuxrra2pq+rpqmzq7O5sLW1rba5srC6urG2paCloKaxqKypuaqlp6eop7OtoKemn5ykpayfn6ekoaGxra2ssrWzs7C1vLa7wcCyur7DwbG5ucKzwL3Atbi7vb68wsfEw8S/v8SghHhxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZmtyV1BgZ29qWnyPloyLgpaanKKanJ2ho6GlnJmhmp2prqywtKKoqKmrq6S0uKy2r6yytK6zta+wqp+en6SisqSmqritoqamn6itqpmfn56ZnZ+lmpmjnJyesKmsqKqrrK2wsrivuLm7sLa8u7qrs7K5s720t7KxtbW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2Rkb2xldHxvSk+CkJSKjIWTmpujm5eZoqSgopqdn5mXrKusrbCgpKGsqqahtK+wsayor7KnurOmtaCin5yjoq2joqq2qqKjpp6mpqOWmJ2XmZqdoJqXnZydnK2hrKijpKatq7KzqrWwsquyubWvqq+ysrO3s66pra6xt7G6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxr/FtsHAx863wMO9s7m5ssC2sbm7rbK1r5+apKqglJuQeH+DhH94b3F0cWhlZGhkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGZxcXZ5YD5MYHKNiY6IjpiXm5mSnZ2moZydppuamKmkra6pmqGitqign62otammp62wpLewo7ego5yZmaqmoZqtua+joaScoqCfk5WhlJaWm5mYlpeclZ+pnqqkop2jqqqwrai0rKqmrbKwpauts7GwsK+vp6insq2xtLC8tLq3rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72tnaenoqq7wL3Aua60uMHMyMXCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGqlZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2BiZ3BvdFIxLCk/eI6OiYyUmJaakZubpKKgpKSdm52knamtpJ6gobWmoKCip7Khpaelr6Wxrqu1nqCdlZWpoaKUrbGxn6Kjnp6Ym5OLoJORk5iYkpaYmJeep5unoqKapKWlq6SlsKeloqusraaprq+vq6iqqrOmpquvtLGuvLaxsK+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wvLG3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmgpIyKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1dYGFob25JKx8pRW+TjYeKjpuTm5KXm6GeqaKhoqGhoJqnqaKYnKKwqaCgnKSpnaeinqysqqmtraKhoZWYopqcj6uosJyfop+fl5mTip2RjZKTlpCYmJOcoaOcpaGilaCipKWbo6uloqSqpKqtpa2yqaalpqa1pqmorbO1tLm6r6usnoxzcXBhW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1yb2xvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlBYXFpbXFxcXVxfYmtqSjsvPUlch46FiYmTlJyWlpukpKakqaSnpKGWo6uik5ejraefm5ian56umZyqs5+lpp+jo6GUlJuWlpKpqa2anJ+hoJuUkIyZjYuRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6Crr6SuuKWjpKKsraqoq6+0t7K9tbOrrpiFdXRpXFlZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUFhZWVlcW1pbXV5jcGxNQk90bGuEgIuHj5GamZWapqSiqqilraKllpypnZOToqelnJePjpmdrZaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6WjoyLk4WIjYOPi5GVkaCeoaSZlp+VmqGinpSbpaWoqKigsLCnsb2nn6OstKqup6+0sLm1wLGusKuRf3N0YldUVU5SSkdWUFJSTExYTktMT1NHTktBQ0ZEQz5CNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGlqZmxkdXZhe3yLgYyLkJSSl6OWm6ajoqibpJWdopiQjJ2hmZaWhYSRmqOPlaOclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBi42AkIuSkpKhmqCilpSZmJWippqNmaWnqKehoLSyqLO4oZ2jtqyqraSysqa1u7SrrLGiinp0bl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg1ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrLq9tLjAr62psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSUlJQUVRRU1VRTk1LS1NXV1ZXV1dXWlxhZVpgW254ZXZyhXqFgYyJjJebipWXoJ6gl6OTnpmTi4WXmYtzjIJ9jZeVhZKZkJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+c4qOepCHk5CQnZuampKWkJ6Oo6OOiZqgoaOkm6K0r6yvraCYprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz44NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaamprKnprTBuK+0sMnEuLnAzsa+s627waytxK2ooaaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVhaXGhYWlhpcWtmRlBpiXqOf4WWkYaOjJuVmpWVlJGMlIh+koheO1Zue4uTiYCMkYyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cW+GjX6JgZCOkJeamZOLkIqdiJ+YiIiWnpqhoJenrqmtqaielq2zoqWtma2rmKi0o6mtopN/dG5gW05TUldMRFRKUExMRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgp6mno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVV1lgYFVTZGxjRjk4eo6KiHaBjYd/hYiXipSViZGFg5KEd4d+X0lQbXeKkYN9hIyKhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlYSbjYKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5NTVVLUVJQR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaenr6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joSDfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1NVWmZdVmFpWlpRS4h9jYBsd397d4CHj36QmYuOeYONfXN+d3FtdHB0jY2Aen6JqoR6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYuIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoKCWnp6kgnNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSUxRTVJVTkZJQj03ODs5OT49Ojs8OThAPzo6Pjw3PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJyftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1dTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZeYmFgY1ZogY6SiYt0YHJ6cHN6hIx5gZiSfm+EjXp1eW5qfa18dJCKfnqGkoB8f3RmdXyGbG9oc3yKjYeAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHlvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pRT0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrqunqbCvsau7uKu6vrizrKebsKesm4+WnKWppKGYmo6EknmJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFRT1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWFxeYFxZeZmcvHttcFx0cWl2c4OMdnmJg21qiZB3cndoaX+BcZaRioB9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe31+e3dwdXSGgnmBeXB8joyKk4OWlpiakJOWlpmWnZaMg4mfkouSjYaQloBvam9vb1lWWFRSUllPUlVUUlhVTU9ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ian6Ssr6Ktqqi1r66ss7+rvMK/pqKalaSYno2Ei5ShopiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkJGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9KTU5PUlZaUVdVU5t7WJBganBed2poeXWGhXJ+hIFxapaPcnF6aWmcjkx5hJGIhI1mMXaHcmt9fYN0ZmV1foSEhYBmaWx1a3CAfGhxcXxuk42Pe3R9fXFxb3Ztg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz88Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FIT0depqqYZ3JvZXZnbH18gH12gIKCdm+dknJ3fnFzkoY1cZynnI2goYSihXZwhnuGfHOMrY2JgWhmYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58dHJxbWBcXV5cWllhX1JOW1pYV0xISUZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGTh5WRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4V1g4NslYiIfHV4eG14bndkal5JUEc+Pzc0NDg7Ojs9PkBCRUhLTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU1QTDdDTVBRQkZ8anVycm53Z3CBgnd5gH97iHtznpd4fIR+g5iDmpxghamenIuDkI56dod+iYiOc4qXj4R7XGRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUFRYW1VHSkpFTEc/RkBEQz9BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCroLGor8Cyu8W6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHdrUlhMQEUyMTEyNzY2ODg6PD5BRUZGR0lLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNTlFLSlNaVk9HYHh/coBydGt2iYZ1eISDepKDdZ2WhoSMkJOkjKypSIasr66KgYCUioGKgYWSqYeBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkdtgHdyeXZobWtfdn2CiH+HhIt5lJybiYqIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0E/Q0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O8s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTE1PV19Wa1dZWmKBiXyLeXx6f4uMeoGEjH2WkX+dnpWSmZmkrJKZu7GmusfDp4uMoaWOk4mBkXxxg56fkZ1/d4WFio+HkGlocISBdIyGhIpyhoJ3h4B7doR8bXZ1Zn+UjoaIiIaHh6CqopaIjpd/eoGIenlvZ2t4fnyAdWxmXlpbXmpeYWdgWk9MTldSUUhQSkROR0NKRENBRENCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudW9md4J6f4x/gZCOipqapJyhrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkE0Li0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IRUI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTlZfX3pkY2htkI+DkIqLhIeIlIOOi5mHnJyPoKeioamSp7Shp8HCrceveLmUmnyNoZ6YhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHKIoJWGkYmNj5aktKibjJSigoeSg31/a2pqfIKDg3VjXmVgW2hsXW1sX1dLSE5SUE5MTEZJUENETkZCQ0VGQz46OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcHaRhn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImGeHh/Z01SPi8vLiwvLi0vMDAwMjEyNTY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExLTU5RXmqEeG97dpOSj56cmpObkJ2RmJqkmqSnnKapp6izlqq9qrXHyLbI0M++m6Bwaaqpn4STkoWcoJqbmaaRkYiVo5ubeHp+lJiToZOXl4GUnnt3lZKqsoiMlp58k52bjZGVmKOhpbWvnJGYp4aWj42AiGxzc32BfnNqYl5iYGJoZWBnZ1xSRUpLT05JSUxGR01DSE1GRkNCR0VCOzg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jn17k46Oip+Sl52Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3ZeYlA1NjAtMS8sLjAvLi8uLjAwMTU+QUFNUFJTUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSU1OUFlqgYpzjYOXnJ+rtbGeqKaoo6SwqK2zrq6quK+xvJuxw6q5ycu3w7+3paKws6ysqqOLlpiEpaago5eBppmNoqqopYiFlKShoaqgpKmPm7CLlaOmt7qboKKvkqKcoZ2PoqGrrquytKGUpKmHmYiSiZV5en6GgWliaV1mY19kZF9nZ19bT0NJSFNORkhLRkpHRkZIQUtGREZGQjs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaG9YeYR2gZOFh4Kcg5GQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTVtQR0hEPD4+RkhDREE3Ozw1Qzs9RktJRkhRTlBXfo6agKacqKCouMG9pa/Bs6mwvbC1urO8sr+0ubmit8SntcjHtb24tKijs62wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK+2urK6rK+1orGrsbW7trSttJ+mp6KmmaivrLG4t7enmrWoi6SNkJKehniChXhbY2ZXZ2NiZGFhZ2FbVEpERExUUEhJSURJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWFiV3l0cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkXt4bl1XQEROPDY6NDVBQjc2NDAvNkNIQ1FbT1FVV1VcV09fVUlLS0E/PkdLRkVEOz5AN0Q3P0JKSkVGVlNPXoueqJ+srbmssLnGxLK4wbuxsb60tb+yvK61c6+ypLnEo6/GuLCzsbOnpLW2qrCgopebopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7irq7Ckr6isva+8usHBq5i5p5StjpeXqYh9g35tWGVjWWxma2ZXXGRZVlNJR0ZMUEdDSElBSEQ+P0JCTEA/TUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2anB+joSAjoVuenN4h2K5oZmjiZSUlpKUk42Pl5KHh3uGgY2VioCEgYp6fIqHhnyKgoKLhJZ9eHp1ZVBcZEdFTDtRY2FbXlNHPztIUERaY1FRWVhaZ1lTYF9MU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2QqrKwtrLCt7S3xcq4ub+6trO5ubW8sriwxF9zsKSxmp6qvKikqKuqo6KytaGqqJ+Vlp6YoK6lp6aln6SUo6extKiys722wr7TycnTxsLFzMLKw8C9vL67u7a0r7i2tsK5xb3Cx6+euKmhq42kp7WIgYF0YWRkX1ljYGpnU1hhVlJVSUVFTUpBPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhZBza3Jyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g4CCeHuLg4d7i3mBioKXfnR9emtlcHVZXlxQZWRiYGVkXVxYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEdCSTpEP0hLU1RVXFpbkLS7tLqxwbq2tcfIt7S4tLe4sbWzsq20tZdjdKecrW9eoqybl6Cim6SeqqWUn5+Qk46VmJionqagnpqZg6SeraWqsK24sL251NHP19DKzNLMz87Kxr++wcm8wLzAwMTExMm+x82yo7qwtK6aq7e7mIB8bl9iXlpgY1pkZFFcYFNRSkNBRUZFPEBGPkFIQj9DPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmtvdHWHtKyhoZ+LmZyZjI2VkZqShoqKfoiGi5CLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZmpqaGBmaWlsWm1zlq2kvIiGZ1xvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYJa0w661rri5sq/CxLOut6+vuqqxsKWqtquLtaecmqaaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5uVloefmqebrK+psKi0tNTU1NbTzNDT1c3Sz8zEwcnQvcnJysnRxszNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZlpRXVhOUEFCSEVCSDtBQz5BRz8/QTc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3h5g6GqnqaXjJqbl4uNlZGajn2Ji4WNiomKkId8hIJwf4eBhnuHcoOSi459cXh1bHB4fnF6bXhzbWmAcG1jam1weGh3fH7LvsHfp21jeG5jW2FgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGVrLWqsaSts6irur6vqbOlo7elqq2gq7OijbCtmZeYjI6RkYSOm4GNppGciYOLhIuJhIuElJaYl5ObkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cbN0tPT18zR0cTR1sXAzsfHwqi9ts6efHFoYGRfWGJTX1tQUVRRT0g+QEZBQkU8QEE+REM+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hZCQjYuJiJCGfoJ7cX6AgId6hHWFk5CIf292c2xzfXt3e3OCeHJrgHNyaXBxenlyer7Lmn2LsYR2coR2aGFqXUNaWVtWZWNYY2pTWFxdYGNdY3d6fYuBl6ijo5+en6akqa63qaWyoaGtoKKtoaaxnoimmpOSkYmOjYiBk4lqlKKMmYSBhn6Rg4OTl62LlY2UmY6Gk5Gel6iwoqGhpaSpyc3PyMPM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNyNfX0cqrwsLLjXVxZWJhWlZaVF1RS0dKSkpAOzo7REFEPEJDPkdCPkJCOjw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1ocnhygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMiIiLiH6CeHN7fYKHd396hpGVgINud3Btdn92eH10hXx6bYd2dW99doR1eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG2AgoeRipydn5yQlpedoqOksKKjsZ6hpJyfqJ+isZuFnZGRkY+KioqGg4+Dfpybi42ChIV5lH+CqZWjjZKKl5KMfpiLm5Krs5ibnKicp77Dxrm3x87S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfW1RXUlxYRkdLSUVFPTo3OkBAQjpHRD9EQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFlpaIjoKHhYd6hHlxenuDhXV5hY6NnHmLb3xwcHqAcXuAcYOHgW6OenV3fHyCdX58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF5i4aNk5GalZ+UhouSmp+anaieoKuboZmYnaSdnquZipmLj5GNhHuHh4OEi42fmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prr7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUypZ8fmtrXVxRVVRhSkNGSkg+QT49Nzo9Pzs9Rzw/QUFBREE+Pzo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKBgYR+g3t8hJiNh4t9hYeAd4J5b3t7hoF0eZKejqB2jnWCdHWBfnSAhG+BkIJvkoR1fIGFenaGe4m3xaTBybmBlpqPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aTlI6XkIKJjpaZlpWkm5eelZ2SkZainZmqlZCQiYyRgouDiIiBhY+RnZuZiYWLgYWYeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucjKzs7FzcnR1tXV2dXX29TX2drb19va2djO28aIfXxqbGhiVllXWE5MRU5DOz09PDg6Oz05PUA2PT8/PD49PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0lQXVtSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+f36AfIR6fYGRiYSFeoSHe3V9dG18fYZ+c36SnpGeg5F7hn54j355iopugpqAdJmGfYGJhXx+kHqPqY6Pw6G9jJyjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJGEiIqQkpONnJmSk4+VjIuUnpyTn5SQjY2Pin6OjY2Kg4iSlpqenoiLlJGdkYGLf6WYiISNgoWEgaWGioy3mJ2RlZaip6Genp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x7bmxoWmJdVFFPSURMQjw8Pjk5Ojo5OTs8Nj89Pjw9OTk7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlyeXNtgH6EfneFm6GbnZSSf4yIgJiIgJySboiohXqhi3yRjYOIhJx9mpCJjKOjoJCkr5+KkIuFi4GShldyrYufq5uPg5ibj4+OXIKikYKMn5OUi4aHi5KSi5OTk46LjomHlZqcjpSWkIqRk4V/ioeRjIqJnJaYoqKGkp2VoIqJiI2bkIOHjn+Dh4akhYyRspidkpSXoaKfmZKcnaizua2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHKAd2ppX2BaVVhZQ0BJQz8+Pjo0ODo7Nzo7OjM7Oz89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl+eoF9hnt7d4aEf3NwhYJ6dXZ2dISChH5/kqajn6WiloqdkJWXi4qnl3KKso2EqJKEmZOFmYyilZ+XkombnqOTqrCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQsZFkpM3IlY6Gh4iPkoyMkZOIhImIhZWZmo6Pk5KGk5aDfo+LmYeNkKqXlqKiiJielpqIjoaXl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mTnZujs7Wmo7zCvsfFxcnIycLL1M3N1KnS0dbV1tja1NLazoV1g2tnYWBgUUtWXEJCR0M7QT04Mzc7PDo5PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYN+dnaAgntsbop+eXx3eHyEhot+i6O0qKSrs6GWp6CmpJaVr6KDkLiVkbOajKGgjKSbr6OlnZiQp5epma6wpJeUlZSQi5ialqDAjqPJuKuao6WtmZGbnLKdhoWoopyXhYiIjZSLipKPhoCFhoiSl5OLipOShpOXhYOQj5tzkJiylZajoYicmZOPipCKlpqIipaNhn2MmJ+KkJCcmpmTmZiglKCdlJ6bobGuo6S4v7TEx8S9w8O/x87LydKnz8zT0tDW2NLP2Lx1fXpgY1djWFJJS09GQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8Szw+OzxCQTc1PDs1Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXVlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3KMeX2Be3iGi4mGhJKovK2ps72wpa6ztKmjorCtipq1nqO5pZWspJeprbimpaOfmamYqqSwsaqZmJyUlZGXoJeau7utyqFptriqsJWYnqKrkpe9o16psoKJiYyUhpB8jo18g4WNj5OTiIaSlYuOlIyKjJaYkZuZtJaUqp2Lm5SRjZCSi5iaiZGdj4uKlp+ijZWNmJmdkpyYnpShoJScnaaup6Kks7irwsjEtbq9vMbIyMLQocbJzc3E19bQytOjc31sYF1WYlRRR0Q+PENBQTc/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZ0hhYGJwSkCLiX6AcoeHfIGJdYKKg39tfXx8fnB3h3eNgYd7jY+Mhoyaq8PAsL3GvLO0wb20rayztoyosq2uvaubu6Oorbm4q6emoqGjo6qvsrGqnZyjmJuYl56ipqWSo7mvqL+8rK2yuaWjp32Ihp2tvLCCi4uKkIOPg5GOeYGGkIyNm4eHjZaMipSWk5CZlpunmrGZkKqcjpqPkY6VkI+Vlo6QoJCIlJujrJWWj5ScnpSgnpuYn6CUmp+op6Sio7CzpsDGw7Cwu7bFxMO+zKfHw8fDvNbQzMTKind2ZV9dYl5PTENMQEVHP0E+Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJNPkdAQ05DQT1DPDs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGlGX2lnW11ck4yMiHuHi4aDjHWGkIqBb357gX5xfoF6lHqSlJWYkJOVqLTGycDCzMLDuci9urCrubuXsra5ssCupcCkq7C8vaquq6Ojnqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6qxMOkgouOhoeEhpWUjHmDjJCOkaCLi5OQjoeXn5eSmJSWpaCunIypnI2Wj5GRlJWNkJSRjqGThpefn7OflJuUn6GZpJ+aoJuglJifpqSlp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXh8cF9bX21UTklETExMSkBBPUJEPDVBRDs6Mz04QjMzMjI2MkExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmhdTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgY95jaGWqJqbmLq+ycjKwtLJy8LNvcGzrby/p7rAvbzEuKzBqa2zvL6qsaqkpaOsrrSut7Wgn66fpqKYo7S8qZyovMGjtravq5OwrKqsl4aaqqelkIKMkqSViYB1iZF5hIyRkJ2fkY6Sio6Lk6KXlpqUk6GeqZ6QpJmLj4+PlZaIfI6VkpGimpSgopy2ppCfl6Sko6WfnqaYnpWXm6WjqKiisqyou8DEr6Wzt8zAuq7Ds7u9wbmswsLBv5pxfGRbWl5dTE1OS0dFQ0hBQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0VFOkVMQjw3RVY9PD04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSl9YYVpkZViej52Olo6ekomKf4mfkoR4hX+Ufn+QiImQgJagmq6npJjDvsjEyMbSzc7Ny7zCuLC6vbS9y7vEwra2vK20v7q8rq+ooaiotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZeVpa2poJGOkrHFp5SOfJGVfIaQmI+pmJeSko6SlJKknJKcmJOgoaGbmJ6XioyPj56IWo+Wl5KWpJlmmaOes6WWo5arraunnJ+ml5mWmJWhpKimnrWrqbq8wrSmtLXLwbiqtayzu7iuqLi6vLeEcHFdW1dYUEdLVE5LP0FHRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclaGXqJaMkIOGpZKIgYeCmoODlZCQk46aoZ+vvq6hx77FxcjHzs7O0sq+u7axu7u8v8+2xL63ubezsrWzuLSsp5yrrLmrqaiwsJijrqWopKW0wLCrrLS+wrnAubOnuLS3sq+VpK2wsKWLk5SgjXPBmX2WmYSOlpmLsJWZmZSRkZmYpKKUnpqVmaicmqGfmIqMj5WdX0qWnJqUmaSXVJawn6+dn6WVr7CtpZuhpZSTmZiOnZ+moZm0qaqzvLu7q7Cyx8C4pqurrbGxo6GysrSlc3JoX11RU01GUVFQUTtISkhGR0FDPTlLVD9BOj1FTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUZBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkZeHiqeWjYiShJ+HhJ2Xjp2gmqOltcm1qce8w8TJy8nIzc3Hv7uzr7q4wMLNtci7wbm2urKvr7S1p6Scq7S1q6qmrqyapK2mpamsur+oq7e3vsHAvreyssOwt72so661rbqmiJqWpZt1vp+EmZ2Okpiai66WoJualpSanp+onaafmZmpmaCmnZaPjJCdgm11kqKalZyin5CusqKrlqqqmKuvpaWhpaqSkpmciZWcop6WsKapqrq2vrOyrr65tqCjp6ilppycrampjWZpY2JUTU5ISU9KVUw9TERNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTFZIfmVeSEaslZyhn7uumJSei5Oqm5GRk4iqjYeinoyjrZSjpLbHvbTBu8LCyMnFws7Iwr66sq+5tcDCyrbGssG8tbusqa2tsaOjmaq1u6aqp6yqnaivqKSrqr27qKy9tLe+x7y2tbjAsL3As6q1t6y/po+ilpCgn7ueiZqgmJadnY62nqibpKKam6CZp6SxoJqdpZynqZyXk46Um4qWiIykoZScop6gtbCkpZOyq5qrrZ+fpaSqkpaVoISQnp+clamloaGztLq2rai1srKenKOlmpeVmaqhnnhkYGFgTElHSE5RSU1FRkZCUUpIQERHQVZTREg8QUdRMTpCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdEqJeknp/DrJuXpJeZqJuVmZqOqpaVqKaVrK2Zoqu3xcK8v7jBwsDIxL/Nxry+ubKwubS/wsi2wLC8t7q3p6SrrK2hoZurq8Sipaispp6rr62iqqi+uKatvrC3t8e3tLm4v7C+wbe1srWwvqSWo5WSmpOtn5ChoqSiop6QvaSonairnJygmqWfvKKXo56hqKqgnJSMlJ2TnYaOhI2TnqSgnbasppyXs6easKignKufoo2alqCFjqGanJKlpZqXq7G2sqqlqq2snJigoJKOkJapn5RpZlxjX1FKSEtPTEdFRElAPU9IQDtGSUhbUlBLPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1NGPEt4ZmNYTqKbo5uexaugnqudnK2fkaKelqSfpqqrl7axo6qztsXDvcC2v8G8ycK/ysi2ubW0sbS0t8LGt7+xuLW6taCnrKusnp6fpaTBpaCqrqCkqa2woqaovbWlsby3trbDsrO3ur6yw8C3uK60tbWjnKSUkZOgrJ6YoZyoqKqimsGsqJ2rrZqanZiln72hnKSXqqqrpaCYjZqfkp2IjVd/lp6loaC5qqeTmbejn7OioZywmKGPm5Wego+gl5eOoqOVkKWusqypoqKlpJWVnJiLj5KTpJ+JY2dcZWJOSktLTkZFQUdLPj1JQTo4SkpOXVFRST1MVlw5Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCeoKCYnsOnpKKzoJuxppKpo5+jnq2pq527samstbHIxMHDs8LDvcfEvcXKvbCxtq6xta+/xbW6sbG6tqybqbCqqpufpqGnwa2brLGcqaKusaqkqL23pra7va+3xK2ztMK/ssazurertbauq6KllZWToqugnp+ap6qurq+7saWfqKmZmJeSoqO3oKGjka2uq6SlnZGgnZSdjpCMlJ2aop+otaenjZm1nKOvm5+csJGhlZmVm4CSopaQjqChk4umrLClp6KdoJ6SkpqThYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj45OU5NVV9SU0o+T15ePUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtBN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6SemqDCp6OpsaCjtKmVsaumoqSyrK2pu7OtsLW0x7/Ew7W/xL7KxbbBycK1rLWpsLmsv8S0uK+ttrqmmauyrKuYoaeYrbu0nKiwm6yfrrSyp6q6sqe5tLiyucGqt7PDvbTFp76urbe1qaisoZaWkaWjoaGXl6Sut62xtLafnqikmZOUk6OgtqKkpZWtsbGlqKSgnZqZmpWXqKCfmaKer7Oipo2Yr5qlrJibn6eTnpCVmZuGl6CUjZCdnpOLqamroaegmp6WjY+ZkIKGlomVn3pla15sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQldgXUJKU0hXS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxaldEV0aMeWZDO6SknKClvqWorq6gqbWqnbevq6OqtLaxsLi3sLe4uMW9w8e9vMPCyMG6wsbCuqq2pa27rcHDuLiqrbK8o5WusK6zl6aokaq6qqCmsJ2qoK+0s6qqtrWsu6yzsrq3rLmwwrq9v6bDqrC3r6mrq6admJiqoKGgkZegsK6zqrC4mZupn5mWkZemoLaopaKir7Czq7Gmqp+bn5+anaWdoZido7SwnJ+RlKaboamclqOimJqMl5qUlpeelImRm5mUjqmpp5+jnJmbk4ePmYt+jJeFj5tsaW5ibm9YUVFaVEFDRFVAOzpJQTc6WFBkXlFXV0VZX15NTFNPXkxKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPURGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1pXFY7iXtjQz2on5yhqbygqq+qorC3qKSzsquhrbW9r7O5vbu9t7fBwr/Jw7nEw8HAucW+wbiwtqirt7K8v7+0qq+yuJ+Xq62prpipqY6nu5+lrbOfq6KxsLOsqrWztbytsLG1rLC1ssC6xbarva+xt6ytqqOxpZ6lqJ6jlo+Yn7Kpsqmpspmdp5ualIyfpqS0rqeirKytsKeyqrCpopuep6OelaGZnKi2qZiakpKfmZ6hoJKtoZuaiJeajJ6anZSLj5eXmpempqOgnpaWlpOAkJWEe4+Tg4yXZ21yaHFzX0dZZlZEQ01YRFo5SEI1Pl1RaFxPWl1HW19eTk1TWGNKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGhLNYx6ZkxApZmfpKy1o6yopK6ttaius7imp7C3xrext7/Bwra1usW+zMW5w8G6wLrFuMG6s7Ssqrq3u7q+tauvsbeYmKisq6ycrquPq72dq66xo6mfsa2zrq61sbm2qq2vsqi2sLS6vMmyqrW0sbSwr6ehs5+aqKufpJWVmpmxoq2gpa+WoqSZmZKMoqWnsqmhprGrqbSlrq+zrqOYna2nm5eempqsuKKYk5GPmJyhmZiVrqGfl4OVmo6enZqXkYqUk56apaOjoZmWk5KVe4yQhXuNi4OLk2xueW92fWFGYGpaSUhaWz17SkdFNkFjVGlbTV1hS1xdW1JSU2JhTEtFYGFgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRMRZqWn7CosKmspKOurbWotrO3o6yzt8m7tbu7v761tLfDwMzHvMO9t7+/wbjAvbK9rqi6uri3wresrrG6lpenrq2ppLKplK+7pKyysqanorK0sbKxtbC3s6murLKnuK+2tMPFtqm1tauwraqno7afn6ewn6OUm5iUsZ6nm5+pjaminZuVl6WlpLenorGzq6ewp62vtKykmKCsqJycnZyVqrmclY6PjJidopiRmaikoZmGlJiRnpyYl5eJl5CXm6idpaGSlpKQlXaEkIZ7hoKEjY1ucXh2fIBcTGVsXEtPZF0/YntHSThHaFdlXExeYk1ZWldUWFVqXU9QSGFeX1BLR1FWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmpMRUSRmaStpKytqqWisLGyqbevtZ+rtLnIua7BvMO4s7K1wsPOxMDCvrW+wMC7v720xKmqubG2t8C8sKy0tJ6hp7GvpqexpZ2xtayqsrCrqKi1uqy1srWrs6yqq6msqbmusrHIv7ikubCpra2mqK2xpaSjrqOonJ2bmq6Zo6Kio5Csn6Ogn6GppqW4pKu0tKSqq6msrrWuop2jqKqcoJqbk6S1mo+JjoiRo6GWj5afo5eWh5GVlZ6bmZeViJiTlZmnnaGgjZORjpB3fo+EfXx9h4qKcnRzf359XFNjbl5OWmddRkSWW0c6TW5YYVtNYWJOVldWV1VZaF5RU01jW1tUS0ZPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGU7NipIZEhKKzpJPzNDSVMsPo9rQEhJkJqoqaGor6Smo7OzsLO0sLCgq629zLuuwr3HsrSutMLD0cTFv8KzvsLDvL+4vcWorbess7m9wLGssq2ipKeuq6ilsKOqsKquqrGurqyrs7unt7CxqLKqq6Wlo6+6rKqxwrm0rLmpqaitqaexpamkoq2pqKKem6KslaWdl56ZrJ2hp6ihrKajray2sLGgqaKgqq2wrJ2ep6epmqSYmZChqJiGhI+Lip+hkI2PmJ6SkoiJkpahnZaZloeXk5OXpZ2dnYySkI2Jf3+IhHx3f4eFhnV0col3bF9ZX25iUXNxXEs7hHxGPld1V2FZT2RcTlZWVVdRXGJfU1BOaFlYV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk4OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMj1eSzAuSWdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGcp6iwtay4ta2ppKuqvcm8sb+5w6+wrbPEw83Ow7/As8DDxLrBtMnErK+3rrO6wL60rq6sp6mqsamnqLGls62qr62tsK6yrbO7pbezrKyuqKufo56xt6uqrbq2pLW1pKqnq6yqraCopqawsaOnpaGhq5aqoZOboKaeo6Kqo6yinqaxtqysoqWimqmqrqmcoaWkpJmgmZaQmJ2TgYKQiYWdoI2LkI6ckZONhY+apZuTkpuMk5KRlKOanJqLj4uLfIaCgoF6dYGDgX51eIqihnhqXV9uZldlh2ROQGeSTERieldiWFJmVU1WVlZUT1xdYVZLT2lYVlZISkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LjIsJjA3WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koaqvl6morbWqtbGqpKuqqbzBwLi6tLy1prOvxMnL0r/Bu7i/v8O6wrrBxK6xtbK0vMG+s7Kvraytp7eqpq2vqreup7CvrrGqtaq2tqe0t6uspKmqnKSetLOoqKSztJ+1raGqqKuoq6efq6youLWpqqmpoqifrZuRqqGdoKSipqKqnZymtK6npamio5ekpqeqnKKko6CamJ+Rj4+ZjX+HjIeEnp6JhoyMkZGTj4WIl6Oajo6bkpKQj5KgmJmXjYuEf3SGgn9+eHWDf3t4fn+HnY9wcWZmcHdcYXSIak9dmFZIbXlVZFZSY1BNVlRVUU9YW2JVSVFqVVdUR09YVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzo3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMi8yMiUvM1JjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lYyvoKSqrJmpo62usrSvqaSvqai7v7zBsrC5raK2r8jHyNDAv726vMO+u8TCv7+vsrOytb28wbKytKu0qaW1qaWts7K4rqGstLGvsbmrua6qrrerqp6qq6CjobatqaGfrrKgtKqfqKeqoqqhoaytqL2uq66toaenn6yZj7CimKKgqKeep5uZqbCoop+roqGSoaKip5mZqaWYmJmdj4uHlYh9joaEhaSXhoOEjYiRkJKGh5ahl4iRnpKTkI2RnZWYj4uGhnh0gX98dHd5gHt1dHtrg4ekdmleZWuAdWeIjHxSVm9eS3hzVGRTUV9NTVNaZ05NV1llWUdTalJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+NsaCjpaqjo6KsprOysaiksKequL7BvbGpuqqnrrDJxsjQw76/vbm/wL3JvMG4sbC1srq8ub+ztLysuayjtKamq7G1t7Glprm0rLO8r7ylra21q62cqa+kn6Ssqqicnaqyo7OomqunqaSonaKpp6m9qrSwrp2ppKCunJqzopaknKWkn6WamqiqpZ6aqaGbkZugpJ2ZlqipkZmakpCLgo+Ffo+Cf4ifj4eBf42Ik5GRhoOVm5SFk6KOlJGLkZuTloeKf4Bxenl9e2d2fHp1cXJ+aoZ5hYhkX2djcoV7bWh5XV5VQVd7bVRiUFJZS0xOcHRdSVpbaFpGVmZQQz5KT0RDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkbCYnp+opKGhq6S2sbGkqbCmrbnBvbexpLmsqKivw8nIzMK3vb+1uMG6yLbCtbSytbK9ubq9tq65tr+sorOmqqqutLazqJu5u6iwvrK6oK60tqmrn62wo5ylqamjnZuksKavoJ+qqaehqZujqKCtvKeusK6hqqKkrp6eraaYn5uhopyfm5mjqqKamaOjlZaUoKGWm5alrIyfkpCRjIKKgICPgHualY2KfYCNiJKRjYuGk5iRhpSkipOSiJCakJSBiX15a312eHhienpxb3F0eGqCdWuCZ2NnYW5zjm1iam9gb0BceWtWXk5RUktJTVRZVk1cXm1XRVlgUF5PSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXj4jkZasmJ6Xp6Kgn6ejt6+toq+vqKy4w7u0rqC5r6uos7rHyse/uMG9r7S/t8S2w7KvurGywLa7vbequbi+qqS0pqipr624r6eXuLyjrb60tKCtuLWnpqews5+epaaooKWYnqynqJ6gqq+noKaXoqifsLifpLGvoKuhrKScpqeompubnqOVnJuanammlpueqJGYkpmdk5mWoaqRmoqNkId9h36Cjnx8oY2NiXqEjYaMj42GipOajoiUoIqRlYKMl42SfYV8c3B9cXNzX3h3aW5xcXBrgHNkemxnZWNhZoaAYFtyanJNTYBpWFpNUUxLSFBTUEdMW2BvVEZZWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVw1KJWbpZiblayfnaGjoLarsKO0s6mpucW3s66huK2trK+1xcfAt7/BubC1vbe/u76wrL6ws7+yvMK4qru6uKentKenqq+rsq+kl7u1pKu6ta+esbmvqaWnr7GboaSgpKOglpuvpqGeoqivoaChkqSkobewoaaxq5+ro66YnaqlqJ+Ymp2kk5mbmp2lqZmbm6SVlJeVnI6Tl6KpopGKipCGeoR+hIt5j5eKjYd7g4mFio6PhpCTmIyOlZmLkJd+hpeMkHqBe3Byd25vc153dmRsbGxraoVuZnJpamVoXWRzgWBba3ZpWkp/XltYT09LSEhTVkczOV5fbFBFWVZZZk1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDGUoaGWlJuqm6OhoqG2qq2gu7elrL3FtLCvo7WvrKyvtMPDvLO+uraws7m4ure6r63As7O4r7/At6y9urWlorKpp6mxqauwn5m/tKSntLWonrK8qailqa+rmaKnnKOllJegsqSZnqSpqZyin5KkoKS4qaWnrqedpaGok6CpoqGhmZucn5GZm5afoaqbmpiglJGUl5qOk5OkqKSQiYqPhnqEe4SGfZ2NiouHe4KFiImKkoaXkpKLkJWUjo6Ue4OXkIt3fnxsdHJsa3Nhd3RoaGpoZ3CGaGhpZGZpaWBqY2poW2Z7YmBTdFRcW1JMSkdJUFRAISpoX2lNRFdVXmBMSkhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6jp5mcnp2js6ynqrq2p6zDwbixrKO2rqetr7e/v7yywbawrrK2tri2tq2qvbOusrC8vrevu7uxpZ+1qaWks6aorZycwKqnpa+zqqy1u56pqaywpZidqZ2mpJGYpayimJ2kqaGboZuWn52ntaawqq6goJ2eoZWgpqCioJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mgkomKi4l5hXaBgoGdh4uDiX6AhomHhpGEl5SPjo+RkZGMk3uDlY+Gc35+ZnlvamprZnRza2JnZGR2gWNlZmZlamlja3JbX1ldbGNhTmlYWmBWSkdJS01TWD45X2xoSENWVFxbSUpHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+MrKGWlqCVpLKxorK9tqGxxby6srGjt6yqram4vLq6rcCxrq6utq+zuLOpq7mxr66ztbq1sLi8q6aetKmfn6+iqK2bob+fsKOusa+3rrWera+traKZnaaopZ+Vmqeln5ikoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY2UlJuqp46OioqPe4JzgYGKmIWHfYmKhoaLjIqThZWbk5KOj5GXjpB/gI2Og2+Bf2Z5bWdraWZwcmtcZ2NjdIFiZmdqbmxnampobl1sbHJwYFRjaWNmWklGTE1PWFFRVWFlgFVBV1NZVEZJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUExLSsuMzw7SzYwLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNjq+dmJOhmqmxr564v7WgtMK7vrqxprevp62ktre3tqy7rqyqq7aqs7euprK1sa6psLW1sLO1uaaon7WnnJ2ooKermqe9l6yjrrC1ta2toLGtsKihm5yjq6eblJumo52aqaKklpqfm5CbpKqrqbugp6SgmJqZnaGPa6KWmZxwgpWZo391kamnnpSUnpCJmJqAloqikHmHlI2DbWl/d4NxbIaLhn6FjIdxX2RhZ4SYhWuKjZSSdHeLhH6DkIBnh4BndWhlV1xoc25NUGljZ3KFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KSFFQVVVMSFNhcHRlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwsMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5uToJuqrKqjvcWvqbfCt728raa3sKWqorazsrKwuayppqy0pa+0o6m3tbWop6u2sq20rbKhqJ6yqZ2ho5mkpZiruZOlpa+zt62vpaquqqykoZ6coKamm5agpaSbm6emnZOenpePnaeppLawpKKinZaYl5ejiKGOkpqGoIeSnKB/pX+lqp6SkpqRiIRzeI2OhYihdomNaZeIZn5zeKBviIeEfo99f6GgoJmAfYeec4aOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFleaVtsbFuIcm56coVmhoRaX0dOP0dfTkZSVlZRUVJXVWddTVZJUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi4oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq52YmJ2eqqmnqr/Dr7G6vLbAvqqlt7CorKWytK6us7aqqKSwraW0spyutba0pqensrCssqetnamgsKefo6KYn6GarLOTo6Wltb2mraerqqyopKGgmJ+mo5mYpaKjmJykqJaTopuTkqOlpqG3pKSgo5iVk5eTnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBnMZ5eLGlt5dlgMCcv3mEhXqShH2QkJHKcpe7nMV6crWnupB7gG2XsauweWhsWLGubmVpvJK8bmd6bnKP2H5Ta2O2sn6BcpRzmqGqkFdPV2JPVk5GVVtYUVFTjV1XW1FBXURRTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OVeDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5ydpayxqLDCvbK1wLW2vsGqprOsrKimrrOprrWzpqeltKWnuK2cs7G1q6akp7GtrbCmqpymo6+ioJ+dlZmenK2rk52in7O6o6upoq2upaGcmpmhp5+XmqefnpeepqeRnKaZk52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRwrqGkfni7fWyhkHaxX2q0W6WAZZyQYWeDe2eAa3lrqWW+cWemi3WxanuxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWmCMq2iAlHh5aqc3Sq9cWFNsZFtLT1hfXFdWO06KT1dXL0lUU0pERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0wMy4zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9YMzAbkKKVg62npZ6jpKqxt6y1vb6wtsSyt7rBpqiwqq6oqK+uo7C6r6OkrbKjqbinnrKysKOloamsrquvpqaeoqGvmqGblpSWmpqrpZWaoZ6zs6KsnKOtrKCdmZafoaicmJ6jn5uZoaakj5yimZagn6qep6ahmqChlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUf2uBpnuChoiTlJN3q2drsVyreo2GlHSJco+HgYGJkJd4goGLl4uDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15RqW1jcX2GgGKcLlGhb1tTa2hgTEpbZFhcWkI+sntYWEEjTWhGQ0VBQEExOT44ODo4NDs5OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpARkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5SglYizpqahr6mos6ypu7bCsLvBrbi3v6msra2tpayxqaCuu6qgp7Oso6u0o6aysqejop6mqrGnr6eknZ+frpWemZSUlJedrKCZmaSota+iqo+qqKqbnZSXoKWnmp6cop6bn6KkopWbnpeZnKKpmqaanJuioZeTkZKTnYPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WDeqx5j51Wr3qIfp9ruVu6d4eEfqaClHuXeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGhaZGFKSE1xUFxRT1lmWkNFP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0g6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7C1tLqytKewr6KvsqWfrbWnmqe4raKvsZ+ztLCgpJ6fpqmwqLOoo5ucnaqVmJeVlZOVoKmcmZanrbCpo5+PraKolp2Vm6CloJehoKGgmqGhp5ueoZ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2ifpGhpn+xd4OR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnezZZd0hJ5vnmeUUciLWsJcoHliX6xgdXOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQVBrYGxoUFZHSjk9VVJaV1hJRD9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWBMNjIwop2SpbGto6u8raa0pqe1uryxur62tbO5uLKktLKgsLGinquvo5emuK2ksbCctLepoKWeoamksaesqaOZm5mnnZWTl5eQkaGmn5WTpaqwpqKWk62gppKTn5ujpZ6VmqWmoJqin62ZoZ6dkJSboZ2cpZWdlZminpWYlZGahax7d6h2o42IhqlvrYqCp4OYmKGKkpuLon+TmomuhICCs1xys1KufYKCo39y2H54hn6PnYaamXavhoeRnId2tGGaZZqCgpVtklqwWEuadZh5ZmCsXnV3iGiYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZWlTWVA7QkVATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0JfSDo5OaCelaC5sJe0wq6os6ipsrq3s7e+uLextLq0pLeynrOsn5+oq56Up7WrqLCxqq2zo5upoJ+nobWmpamimJyUpKCTkpuXkZShpJqSkKatr6ahlZmqoKKOkKGZp6SflJmlqJycpJ6snKGcn4yTn5qdoZiZm5aXoqCTl4+mnYapfX2leKGOjYKqcK2LgaeGlp+hiZiYiKODkoiUq32Ai515b7FaqIKCiJ96dNmAd4h0qIGOm4ySpHuUj5+EerJenWSgfoOVbZJdq1tak4CRf2hnqmNxfIJrmIdzXataiaCOa29lT0pDoVxbTHRdYmdOW2FfcXNfS1c3SpyYWEdFPUhHQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS46PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZIX0MyPziinpqawauXtMKuq62ppbSwt7C1vrm4sbC1uqi6s5+vpJ2kpqaek6mvqK6otKuprqGYoKCmpKO5oaKroJaakKGflJOemZOXnp+QjIyosLCnnpebqKagjJGjl6eqppSXqKednqCiraShnqGMlKGYn6CSnpeclZ2hlZaNqpyPrm1ytHOpi3WKp3O0eHOzgJGko5Gdjomkh5B3uHCNe4uiamu2WqGFZZeXaaCip26UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXa1gTaF8hpJSc6NreH9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWWNdYXB7Y1RbUj49bnEzQ0JAP0w6ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTF44MUM4ppybnryhm7LAr62rq6e3qbeutb+0uq+ut7aqwLWoqaGbpaOhnJGpqae0orKnramgl5ynn6SruJ2jrJqVmI6jopWMnaCbmJyfkZOUqrawqJmVnKypl4yTpZikrKKRlaqxo5+epquxmaGjj5iilp+blpyWoZOcqZyUj6qZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIuMp4h6pLZ1fnd2woKasmCDunnAfXa4Y7WBjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHWHqn2+b3O8dLKDdHiBim6aiHFujaR0vV53fVphebxrWlZcanleamFmZ2Ntd29ZXFpDQEB0QENHKzRHIic7PzEwPD83OkI5OT1DNDxATlpeYGBgX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqqrsaa3r7bDr7iwrbiurcCwq6OinaOhnJuQqKOpsqS0payknpWaqpimrLicoa2YlJ+PpJ6SjJyinZedmZGVkq+5sqyWmKSop5SQlqSbo6ydkJ+oq5+an6ijtJ+jpY6noZSimpyYlaOYj6+fkpSpnoWQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHCAc5G5g32Hho2HjXyKh42YfKS7ub2cdHm0o3R3l3Z0sHWZnmaHao21dHJxeLaMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05RTUQ6W00/SjM7LyA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzynnqGiwKWWtcO0q6qorKqpua6wxa2zsq21prO3q6mhoaSeoJ2Zk6qjrKqltaemn5uVoKOdq6S9pqCplpObkKGakY6hp6GSnJeUmJSxtbeumZ6kpKKLkpGmmqWqm5WnpKWbmaGopaekqqGSrZ6XpJ6Xl5edno+vqJObpaGNan1pmqV3hnJ9mo50eWSHe72+wLpvk4Nylohhc2taX5uKYWOIj5VrYICWZG6ed2OWbICalZRlXmBicJmIaXKLfYaVZ2t/cnR4fX9iW3d0gWhQXW2DfXuLa1hreoJzSkpvhnBOdExFWF1nYUxbV2djX09bbXRpcVJRREVNO0dJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NfVjQpUF9MKDI9W08nPzI+qaCoosKjm7W7tqOspa6np7SxrMirrrKqs6K9sLGln6KnnaObmZmrpq6jpLSopJuYlKCapa2nvqeopJSTmpWfmZKXpKmokJ6RkJicsLO/rZynnqeiiZORqZqoo5qaqqCjmZqjp6yjoKyjmrGblKeglpWdn52WsKSXoKeYmpCbm6Ghl6ShmZyZmZmPlYFnbX1xd5KYlJKGjLarjYaYlo6KjJiWh5SVi4STlJKJjpOUmJSYlpmfoZmak6CcjYJ6pYVta32QfYB1ioqBcYJ4eXZ1iX98impzgXSDdWV3fXdrb3ptX2RdcGhNWVpmamBXWm94bW1mVU9GUjlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXFxgYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOgs6LAoaSysregqaWyp6WvtKrHqquvpbOkwKezoJ2jpJyjlZWfqqasoqK2q5+YlpWfl62ppMCeq6OUkZqWnZiSlKGenqKnk5GZqKezxLCaq52rn4+Wlqidqpucn6uYoZqcoqSvp6KmqJ+umJennZmZoJ6dm6+gnKGllJaRl5Oen5ShnZegjpaTioqNjpeukHyWnIOSgourqYWAmZeJhI+eiHqEkIiGmpKIh4qWj5uXjZCXnaOVmJKQnI1/jmehs6+FioV2e5KKfXd5em9meY+BgIlqdYF5iHNpc397doOGgmp1ZHpmYGplY2Rma1lse29pal1TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpbX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVFxRMDVOWzE3RTNbRzU8LEC0oLmwv6ysr7KxoKqnsqyirLKvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrSelJOdmZmvpa2+oKuikJCdmZmUkJWhnJeonISeq6yjtMi0oKqkqpaVl5qmnaianaOqlJ6fnaCqr6qmpKyjr5ufoKGXpJ6cnpyuo5iep5KWlpuQopeWp5yalmWCknxlfo2akGN5jm1oa3uSpatqZZuYfWeGimVlaWh7jqKPbGiNmJGjd2tqipiinpdza216hI6IelhmXoaDXm2MioF2XGhzd3aRgIiCbniCeH9zbnmEdHaJh46DfGqHWV5sdGRdc4lpa3xwa2NfUk5XSWRYQUo0PkY3P0ZENzE8PT9BRDs7REdISElMTlBSUlVXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pqC6vLqvrLSxqqWora6wpq2ssLuwqKajra2wnquWn6OdoZmZpqqcraOlp6myrp6Uo4+ir6W1uaWtoo6NmaCYk5KaoJmZpZV8pq6jqLTFuKWip6+enJWeop6jm6KoqJGeoZ2hqrCsrKWroaqbp5+ooKyWoJulr6OWm6iUn5yakaKVnKmXnX29g4hytHKEnYataHi5xLhxlKOjeqaZmXKrgnzLwMC7cYyjiIOefJeZiZ3AvYGWnZ2MnMHBfIJ8k42aw8B9bKWyb4yBb8p6f5t3kIOOgXV5gH95cXp/h3B3hYyTeW14lGNnYHhkYGWCYl5zZ2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5RU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1VBQjsvOJajucO1sLDBqqiUo6+psK6tpbKzrqmkpaWvqp+rmJqin5yaqqahnKuipKijpLSknKKSpa2qtrOnraGRkJmcpJKQn6GYm6CdiKetpayuwMCxoamvqZaSn52hmaKjqaOSoKGdnq2vq66opKSooaalnayokaOaqKypmpynmqqflZajlJ+hlZt+zpR4eqSBeZWWm1+uj16OqIKjoXynlptzq4OAr15jjap7qIeFoHSXk4izY4KrhqCNjbNqhK91fZeIt2KDrVqjzW6Qdnvae3+ZcH2IknZ9ZXuHdnZrfIdufYWQkX5tg5Bgcm1waGBfeWVccWdpZGdgUlRTV11LT0Q1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqqK20q6Wyq6uqoqumrqqfppuZpZecoq+foJ6op6KloJ+wq5qdlaauq7CqqKuflJGan6SSj56lmJ6no5+upqyxqL/Hs6ipsa6Wkp2coZefqaqelKCfnZ2usKmsq5ypqKWiq5KsspakoaqpnaKlpJ+un5GYpZeemZKTkJegcYWMl3WFqIZxsX2ecqx/op+BpZCfdquCfa1/nHOtf6yHhp92mZJ7fJd+qoihi5GMnX2re4mVkKCBe61XncV7j3CTwX2BlWx1cIxtZXZkhm5hd25yb4mKko+DbpKRZnB1dXFhZ21mX29oaW5nZFdUXWFaUlNDOUlJQEQ8Pj1ARkVDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPTEpM1dARiEcRzpDMS4rsNPGxrKzoJyijqKioqyutq6osaWoqaatq6umoaOdmKKVn6Wrn6Gln6ioop6dsKyXmpaop66rqKannpeUmaKhkpSgrZudp6OwraWttau6zbGtpq6rlpWcnaKYnq6snJagmZ6fqbOrq6ucraulo6yarrGhp6utpZekqaenr6CRlaKimJOQhKRqpHWJeql0erJwgqaKmYxxiaCahqRgYVKshX+ug5t2rYKohoWfe5mXhXpmgKOJpJiGgqN9qX6CloiuX3ypVp6jkoF6o5+Ae8OuxItyr7OzuXFiqa/CdGiMjJiOgW6clXFvenh5cGxmZmVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU1KjJQS0wjIEE5RDQsJ8PJ1tS/oZmrp6Cuop6vtLCuqKyip6WoqquppKagm6SenaWnp6Ocq5mirKCjn6+hnJqSq6S0rq6gp5qdlZOmopGboqigoKadsaamqbKtt8iytaqrqZaRnZyimJ+ls52ZoZSdn6esraWwm62ro6OqobKtoamysKGZqKesrbOhkZShpZaZkHupbJ6Eh3WreXywb4KljImflpaglYHSuLS3yYGBsl9glKmDpYiHoHqZlZp4qsl0maSUqKmQkpuNgZ2KmsbGeWehgqV0gZ+Ogn2vXW+0YrB1S6OHbadHgpNkjpCdknxxmZWBcXt1fnxuXGZqc3FmgWtfYVlkblxfWUlNTUtFREFCPkE8Qj9JOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2psqyspaKbsrirqqGlmqekqauqpp+mppiqo5+uq52loKyanqmlnKe1nqKXk6mqtbGsm6WcoJSPpayRmpyno6Gqp66ipaeqsLXDsbOqrKiUipecpZqho66ll6GVmZympq2csZ6uqaefrKO2rKCxuK6dma2msLGwopKWpqGYno2CnU54moF/n3qEo32DpIWHpp+dn5SEuHt8ebmCf8zGwrZ4m6GRi55+mpaXinafl4qll6Spf7CFnYaghKx9mpVjpm2kcI+FkIF8loJyrGCjcnGAmmC8fVJVdI6So5d7fpSTjHZ7c4eAcV1tbnhyaoJvW2RgaW9jZF1LTFFUQUlIRkk6OUs/QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eYqaukq7iqrqCboKyzsqWeoJWlra2uqqecpqebo6ihs66iqaayoJippJSjtaKilZeiqbS4o5uhnKKSj6GxmZ6cp6ahorCunaapo7azxbGtqaypkYeQnKecoqScpZeemZqapqWrnLGir6WmmK+ku62htrWsnZyzsLavsKSWnK6eopyFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWCinGqhoW1bnJpmqSclYqffZiZhoePc6+CppujjqaLk52LlZCbbnGyXaV0k3qcbJh/e5l8balhonFxf59ic7K4aHePlKaYfY2OlY56fXmQg25qeWl6c2+BdV5lZW9uZmhgSltYWDxIR0BVNEBGPjwqKTYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYF9dW1pbWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVVVUU9RW1UlITJBSCQpJZJzjIqtvr68ubSelqekrbShoZmUoqemrqqrmKajn6WhoLano6insKOUq6OOpK2jnZCamqqzs6ScpJyokZSWrp+fnqeknaidtpujq6S2rMSwqauooYyEjpyioKailZmZnJmcmaemqJmtqK+jppuspr2slLyvrJ6hrrG3qbCkmaevoaaWeaiQfXywd4qApKWInG2ycKGHrXyhj4OolZiArImFroWglaqgopeGn4GalYB7kn6rgJ2al4uqd52gkoqUkoF6r16kgX2mp2Sdf3yXcmqvXaRrcIaZXWBbjKBtlZGmmYKVj5qOfHyEmYBrboBjf3RugHpgaGZxb2loZ0NZYVs9S1QzVThCQkM4JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV1dW1pXU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqMXCtsCznpqsoK23paOOm6SioLCvqp+loJ6tmZ65oaOroK+pmq6hkKuopJaJmpCtr6ymnqWbrJeYj6yhoZ2loZqlna+Zoqmnt6rBr6Spo56LgI2bmp+mnpKUmZqUm5qmpaabqqytpKWfqai+pJbBqqmhoKqwt6mrpJ2yraaol3WvfpCLnIWHfrqtipllsI1lla19oY+Dp5WagayKhLCGp5qkoaKRhaFdbGuBs2B/rXt7g4GxbWdumZmNibFbfrVcpIRryKJkn4B7u1d2tVmyfFKugHqsV4ChbZePqJuMmJKamXx6kaB/ZHV/Y4Z4dYF9YmpncW5nZmVQVWRbQVZgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5PUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1hYV1dXV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysba9urPBsqKcrKaktaigipqgnZyzs6mfpKGetpmhtKiqrJ6vrZ6rm5Wvp6GOiJuOr6uopqGlma6SmI+omaGdpZ+apKOmmqGjqrOqva+kp56cjn2Lm5WgoJmPkZqbkpqYqaCjmqmuqKWmoqSou56fxaWjp5+psrOqrKSduauqq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviaecm6arkX/WvcKqYqS/vX1+o4KD17u4tYaWlISevb6EbaOCb6uEbJyAerKwx4Npq7C8rHd2ob68c4CWjqadkZySmqB7g5OefGN+e2WPZ3qDfGFsZmtrY1FhW1NqXEBVYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Owv7ixvLKinK2lpbKmnYuYpcCquLKoosCnqLOdn7Kduqifra+lppWUsKuXjIObka6loqygo5yqn5eKo5Kmnqebm6GppJmgoqyuqrqtqKOblpJ8iJmRpZuSj5GYmY+Yk6mboZmqqaGqp6CjqrqeqMOin6yhqbGyp62nnrilrKyZc3aqpLiGZImgcGiukYuQbm53pJCZn4F1rpmUcI+LcZaopJyYr6RzbW1tZot4b26CmXCBempxaWeKmJaZcmlqhYhncYZkXYhiam9ZXGZ9dqZfYXCNkG5lZX+Mk4+hmZmak5mhfYmRmHdmiHhpj2x6gHplbWRnbWNLZFhKa1o6UWZFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16playzqLm4sbOqqaGtnqOyqpiSv7PFyr63qp/Bra6koqisn7qjpK6sraWNlq6pj4uFlpasnaaqoJ2ko6CRi6STp5mpmpekq6KXnqemqLC7q6yam5KSfISXjaWXjZGQmJWOmJWplqCZqaObsaadoqu5n6/ApqOxpKuur6irqaW1oqy2lYqhqaa3nYmWo5mIqpuRlZ2SqbOZmqKqoLKWoqGdn6KdoaWilaynjZOTjYeTnJyVkZmTmZGPlYWBpZuZlo+MlJSMkIeEfmeJfnSCdXOHinCnbHqTj5ORgIGNjpCPnZWil5qZpYSJl5B0apF3cox4eH16am1lZHBlVWBZQGpcSGRiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVXWV5gYWNdXlRRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppapqaS0ta6uorCjrZ+ftbGQjazIvsa7uqujpp+dp5+xqaO2p52ptaenkZitoouHiY+bp5WspJ+ZqJ+ekpSjl6iaqJqVp6KkkZyomaK2uqiqmJqQjXyBlYuglIqVkZaRkJSXppGgm6mgnLajnaart6euwK2itaSura6qp6extp+supiRpaOntqKSnqegjqqgjpOfo6uwmqCjsKiwl6OgnKOqn56enZesnpOaopyUkJarmo6ZmZeQl6CSiKGel5WHk42RjpWLgX5li4V1hnR3h4JznGqFj5KTj4l9i5WSkpiUo5SfmaSFiZuKfXOXc3uMgHN8f2pvZV9xamBbYFpuZFFhZVFaOkdHRT4yPT45LyomKykmHSYzMTY2Njg6PT0/QUFDSUpHSktMTVNTVFVaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiYmFhYWBiYmJkYlxbY5eVo6air7GrrqOppqyfp7WqkI+dpLW9sK2to6SbfJ+ksqSlsamXm7imo5SZqpyOhoqJnKKPrp6ilaifoJKWmZuui6mWj6maqo2aqZCfubekpZmcjYh5gZOMmpOKlJGUkI6Sl6OOn5+onp+4o3+Dr7Wirq50oruhsJ52eJ6nr7iTdKujnol/q39kXGJ2oI6ln4SYfW2Ss52ip62qo2Wen5JzeZqYcYGZqZhtf6KpimWcpp2Sl5iWjJOckYaem5GWhJOIj5CSiYV3ao6GdoVweoV/f2Boh4mTkYpadZSQZ2iPj3N8qJycZnubioV5mWqFjIRveoBrcWVgd3Bsa2lcZmViYnFUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWVxgaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaWioK6vq6uppaitoqetpJKWq7axs6ebq6itmHSNn7GgqKunlJe5oKCPnKSekX+JiJuejKyZopWnoZ2Ol5KdhXatj4mnm6mSmKWKnLu0p6CZmIuJdXeTjZaTiZORkJSNkJShj5yhp5mcsZWAjJu0nLKMko25pZ99p6J5oKy1f42NpZ6Di4aQsKqvjYuXpJt6gYushZyeoaaop4eVhZh3pZt6iJyBl6eDgnucs3qKhqGYmpWYloKRl5eEm5ljeoiQhY+QkouDbXCOh3l/cH+AhH2Fc4WDlJF3lmiSdKCadH2ZhKOgiZh/lY2GhZprj46HbHl8cnFoZXlwamxrXGVsa2Z1XV5JVExSQEU2LltVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lbYmFoZllRSDlFTDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJeinqWsrKunrKCnsKamqaWZlK/Iv7Gil6iqt5+RhZ6tnKeioI6Qvp6ajJ+aoJB9ho+Yl4esnKGWn6GRjZOJhYCSp42Ho56klZmfh5+6sqedm5KOhXF2kImVkIqUj4+bjI+SoJKYoaSWnquHn7SJtJmtisqGqKyItoWMr4Guq4KojKaYjZ19qI9ze3ecj6eXaJWkebSMoJ2lp5KYwoF/q4iYoXKegJqlfpeFlbOBoX2hk6GQmJeBj5Sci5mSjH2Fk4eNlpKJg21zj4V+eXGGgIN7g3SEgJWAj8Vmf6mHj6NrnoWknYSagY6QiYyacY+Uhml5dnx4aGl2cmhobF5kcG1nbllnR11STTNFNTdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TkpKTENQWl1cV2FeaWxcUUU9S01ASWNYXWNmaGdiYmJiZGNgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWoZ6vpqeopaufpLewqaummpSgo6SspZimrLmksIGiqZ2mnp2JlLyZk42hkZ6PeoSXlpGHq5mbnJqihI+Md5qcj5+QiJ+lnJeamYejua2kmpyMjH5ibY+Kk5CNkIyNmIyQkqCPlaGhmaCnfqGnh62dn5atj5ybnJCEf6CMqKyFo42pmYyaf6J1gZmUa4Ktdk2reIeNnJGap6aAqat9g6F7eqdqnn+SbGeYhpi3iZ5+bmBkWYOXgI18ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIB8g3+WcKeqa4OjbnKlcJ+FoGpnoG1ccI5+Z1pghIFjWFFwd2ZudXNranBea3FubGpZaU9dWUY5QTVIRV9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRhXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZyfuJ+po6askaG1u6quopmYoaKlra+hnrC2pKmToqGgp5yajpm0mZCLn4yVi3WClJKMiqaVlZien36ThYWspIebkIuaq5mbm5KIprGnoZWaiImAaW6Ih4uOjomLjZKMkJOjjZSfn5yhpH+TgY+ioJOfdpyUjqeBn6V+haeqgqV4iXyEmn6icHOUiJZ8n415bYabjJmPmqiZjoede4Kic3amZp5+d6RfmHp9lHSibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2NzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2ZtJdzfZifs3V0XJ6yg2tjcHV3cmlwWWxtc3NnXWpeYkxFPUQ2UkJaczM9U0dgSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkZGBhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5aUoreYqpuTn42kt7SsraCaop2ko6avnZyzr62UmaKaoaWZmpWfq5uLiJJ4i4VxgJaNiZChj5OUnZh9kYqNqKGHl46Jk6SVnJuNjKmopZ6Pl4eEfmp7h359kI2Ci5CQiZCUoYOXnqCdn56LiXecmKGMn3Ghioaph5qkjZSlqHytjH56oJl6o5N4gXSWiI2cfZafhpuOmJqlhaJkoXyIlpCbjW2eaJuOb5qZe4CLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6dZ5p1hpOSl46An2+akW6nml6pf3m7a36qXI6EXbRoXW5yenhsalxxa3l6ZGFnWGJCUkZPN1dEUm81S1tbX05aREEyNTE8OzdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlxeWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiKmzmqaIY5Sbq7qxr6yeppycqaCfr5yesqmun5ikm6GgmZeWoKOZhomNaYiAcnuXiIuWloSRlZiQeouElaScipSPho2fk56diZGpo6CajJKKgIBpgYZ4f5aMeomOjoiQl5t/lKKen6CTmHJon4mejotwkoyAqYaYnaCknqV7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6ZtaOkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yomlxe45sgIiDmXWbeIaJsbN/gJuTp3eDnm50fpVwmnRrpF6VdkhlZGF0cn5/b2ZhbGl3fGVlYlFfV11VV0BaRlFoRVRXXWJYXklEPUI4QEE6SUY4TEVYQVdSW1dERmJcWmBLYG19ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2VjdmxdZWdma2RlbGlpa2mTnICvrJiDU16gprO5sbKomqKMnKycnKqVoq2lo6mQn56em5qWmKGdloiHiXeGgW95lYWRm4t8kZOXiHKBiZGhm3ORkIGJmpahm4WPqpyblYuLinyDbISFcYGhi3iGjYiHk5mWfJOkoJ6iiK2GfbWEjZ2ce6WVeamAlJqOiJ6ae6dod21+mXShc3J8noaZcJODrn2jg6WdmICjb16oZ3WiY2+lYZzTkH17mXhzdGKihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZxte3CWbX9yonFdpGdzpmBopm2b1Jp+hptwe3uYbJx8eJhzbqmkZ2FlenKAhWxoZmRvdnhoYWNTXGZRUmJIWEpVYVhUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmR3eXdJRkVjXmZaaGpUaWhqb2NqZ2BjX11dXV9oYmFpZXxkXmRnZGtkamxmaGxol5p/r6tUW0p+qa+xs6+yo5uZhZmqoKKlj6apoZqri5uZmZSZk5OhmI6IhXtwfYRofY+DlZuBd5GOj4pvf4aPk5Jsl5R8ipOUpZeDj6ublJKLhol5g3aIgG2Bn4Z3gJOGiJmjmHuUoqOZn4mzoaK2i3msp6SupW+of5mNhYCZj3qkf6GZhphynoSkrq+Kl4yAjaSNlYKtoJN2tba1yaFzlIuBn2Cel6ltepWHoZx1ooh3oH6Sl4uBcE1mo5JwmodzpXt5dGGDgWt9oGtxZF+ccX1zlmh6abO1s8amcph9ep1rnJurdoWbbnd5mGqafHaYc1FFfbNfandseohna2hjdXZxb1dfVFlpUFNpSldNWVRWXmlsb1ZoV01LQUpNS0hKT0JRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxnbGZjZV9dXV1eaWJkaWt7X11kaGNqZm9tZWlsZaCbh66lg2Q/k6Gyqq6utKKikICYqqKjpo2mqJ+ep4SbmJeOl5CQnJOOiIN6anmHZYONf5igeXWOiYyBaYSFkYOMhZ2Neo2Ml6aUhJiqmIyRi4GJeoB9i3hwkKGGeYKVh4mWoJZ/lKWnm5WVg2ZueJxsomR7cKV3m5dwZaaAlIl6pHmfloOXc553gYqVl4+5bpGKomJ9mKCUiG1yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJZXlpioWxdiItten1zcWSlbXiiZGenaJlzjJlwonBViZBwoGBmqFWLXlSYbm50bHODbnFpa3l0a3BSWVdXZlpUbUpaUF1JWGlpc2pZbFdRUkZWXExYU2JVaWtfeHR7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhsbG5oZGdfXV5dYGpiaml2dF1cY2hjampzbGZrbWOco5eleWRzbIqmraOpsLGmn4uAmKyen6eNo6KcpKOBlpmUjpqQjJiQjop7h3GAiGiLi3yYm3N0iX6Qe2WDhpSKipaagnyJiJiokoGjrZGGkIuCiX6AgI5yaY+mhH2Hk42JmKCPiJOppZyIpniVm36liJaKsZedj4Kulp6kdZOFeKlzpY+Emm6kooyShI2Du259pa+DhoWGkpWcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpGUX32ri6p2fX6KpJ12n3yDpJWdoGqbiHisaJ+ujbZ1eL6NpJNag6eOq2F1c3VyfHVxY2t/b2htVFdbVmFiXWxNXVJeSl5tb3dgW3FZW2BbZ3Rlbm9yYnJ0YHh6fnlyeYNzhH6Be3uMgYOAdmJ4ZGNucmRSa2dob2xyamZpYV9eXGFrYm1se29cXGJpYmxqd21nbG5ilaSpm4B/naOWqamdqKatpJmKgpism5+mipymnquehY2bkIeckYaSjYyNdId7iIRwjYV+mJN0dIZykYNuf4uRh4aUj318g4eZp4+Ap6ePgY6JhZR2goeSbmyLqYCDjJSOiZ2fiY2TqaKfjn90k5eIfoF4k66ifoGacI+Fdo6Jgn17cqeMcX59epiWm4SQeXt/foeUlZOKdpCYnqCDe36Ja4yFW3l5cnpxaW5+kopygHWBj5STcYeEg2WMf1+BgIt3dXOUdW95bm2HbIOGXnVnd45lf4CFjaiafXR7lWqJiHCBdn2Hd25uaI10enyYeIVcbFh5j2lveHNycHh4cF1sh29qaFdbYFddZ2tkV2NVX1JgcHl5bWt3Zmtra3d9cnJ1c2FvdmJ0e4J4dXqCdYCAgIF5i4WDfXtuf2xkeW5eVm5naHVreGppaWVcYFpjaWVscXVuWltibGRsbHluaGtvYY6TtqemiqChmqajmKWcq6KhhISYrZKeooqbqJuqmIOCnIx/l5SHjoqJjXKDfI99fo+Ee5iPdHOEcZWFe3yRi4aGkIV5foCJm6WPfKihi4WPkIWVgoaOmHZyhKmGjpKdkImfnoiMm6aen6qDiI2Vmn5+iJasp46RpY93bpuOgXiQbn2ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GCfn+Mal1qZXuGhIqAYGl5e5t7gouCdYGFgWd3ioZqYG9xgHVecYmAiY6lk4Rli42DbneLhHGGj3pxaGlmfYV7lltda2hudlx8enh2b3Rzg2hdbotsbGNaWl9aWW1yXGBiWl9eZnR/fHZwdWRra2t8fXN8eXVkbnVobXx+dnp9e3l6gIF+b4WJhHt9dH55c39pVFxxaWx2cHVna2dkXWFYamhra3FybldbZW5sZ3N5b2hqbGCLiqivoI+ioJmenZeemKijon6Dma6OoJWInaORppWAfJmGfZKZiomHh4tzfoGMdoWLgoSXinJvgHKYhoR+kYODhoqBe4GFjZyhkYOoooh4jpeIlIqLnJeEg3msgpGYmpWKnp2IiKGpnqGho4qHk5ucopmVqaCmpJ6RmoWTi3p2jY2Dp35/kpCTlJ2yppuVn5CNsZKXg6WMjJWan4mRm4KIkYprfI53eGWDh5GLfImehIeMkImJgYWFkHd8enSaoImGip2JhJN+fYqAf3Ruc4SBfXaFhomOpI+ChIyGgoyQjH2Hi4qRhHpuhIZ+eplrc2lhdItxfnt4d3B4dYJdXm+HaW9gX1pdXVNpclZlXV1ibWh2fH10b3Bla2ppgH1ueYByanBxbWeBe3OCgXd/fn+Fem2CjIZ8enh7fXqEeU5kdmpzbnB6ZWtlY2JgW3RlcGZycW1WXmx0bWh5enFnaWtljIecuJ6WoaCXlJiZlJikoJ58f5qsj5+OhqGdjJ6WfnmVhHyOmoqHhISHbnmBgXOBiH6JlIRta356l4eEg49+gIaEhn2IhY+cn5SIrKCEcoqQhpKRi52RfY16qYSOk5iXj5yWh4abpJ6hmZyFgpKamZiPmKafpJybj5V+jod0eoaNg6V7fY+QkYaYq6GelJ2QjqmNkICdjIiTmZ6Cj5d+ho6DcHiGcnVgf4SQhnWNmYGDj4OHhX+GhZVueXZ0kqKKjIWahIOMc3+JfHxxcXqGgnp2iI2DkaSOhIKOgIOKiYp3homLjX5ybYCCfW9pbG5oXnqAaH59d3Z3dnt4XWBxfm51YWRbXV9SZ25VZlxeYmtpd3t/cmxtZGtqaIF/bHSCbGx1cHpwhnluh4F2goB9hXZxgo2Ifnt8fH97gopgaHtqdWhpgmRqY2BpXGR1aG9idW1sVWNxeWVwentzZWptbYuInrWZoKKfkpGVmIqan5+fe3ifp5Gci4emlYyYmXp7jYZ9iZKDjYOCg258gHlzgIV+i5J9a2h9gpeJgYiNfH2GhId9j4ORnZ2TiqmdgXCLi4yShp+hioWMfKeRiJCTmJSWk3iMop6fnZWYfoCQmpiSi5mioKOYlZCZfIuCd3+Cjoagf36MjY98mKSiopOakZCmjI6BmpCJkpabfpOSfoeOgXV0gnF3YX6BjoZyi5d9iYxyjICDhYaPaXhyeIyYkY9/ln6HiXKBhnt7b3d6iYN5eI6LgpSjkoqEj3qGhoeEdoKEiYl9aHN+gXp8cm1saF9+c2l9dnZ0fXSAa19gdHdxeGVkWV9fUmtpVmZaYGFpand6gnJnbGRsaGaAgWtufmhvcWx/eYd7bIyBc4CBfoJ0doKNhn98e3+BfX+PaXKDbnRpYYdobGJfcVZ0b2xuYHhobVdqdHZjdXp7cmJqb3qJjJ6wkaSknI6Pl4+GnKCbnnx3paGOmICNo4qJmpZ5fIaIf4OKf4mDgX9ygHt0doKFfouReGdjfYaXioKKi3h9gI6EeZeDlpmYjpehm39wi4KRk4Wlm4eMiYOmlYWTjJeYkpJ3kZyfoJeTlnl+jpeXjZaanKOcl5GTmXeNg4F2g5WNnX6CiY2Mc5ejn6KUmY+PoYyKgpaXg5KVmX6YjXyIjYF2cX5ue2SBfYuFcYeTgJGCbIiDgoCJhWZ2b3uFkZiLfJJ4i4d7f4Z7enB9d4iEeIKOh4qXn5SBgot2iIODgnd8g4qHeGF6en91f3hobWZif2preHR0d35yfWNkYXNudXNuYVphXlttZVNkWWFhaWx2eodyY2tjbWZofYJsaXVobnBqgH2Cem6QhnKAg4N/dHyDjIF/fnqCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brJamp56NjJeHhp+Tl5l+eKqdi5l6mJ2MjJmQeXyBjH59hHyBg4F4dHp6dH2AhICJi4BkX32LlId/hIZ0fX6LgH6ZhpeVmI6lopiAc4d7k5GJpo+MjoqSoJGEkpCVl5GLgY+XnpqRj5Byf42Rk4icnJ6ll5aLk5Vxi4uJa4SXj5l6iIiPiW+XnpuklJWLjJ6LhYGRnH+SkpWGmYh7ioqBenF6bHVsfH+Mfm6Gk4OVd3CDhH5/i4Blcmp7f5aXg36NdI+HgniGfHR2fnyEf3uBioKLkqGPeIOBdImHfYB0dYKJhXFifHZ7cn5wYnBkZXxjb3B3c3l4dHVid2BwbHZucF1cYF5ea15RXlljYWludHyKbGBqZWtjaHeHbmdtaWttaYJ9e3hvkIh0gYSEfXSBhol7g316gYR9fY5yeYt4eG1sh2poX2lyY4dncW9ld2dubGF6aWp9e3hwYXhti4CYmKmfo6idiYqShoqdi5WZfnivmY2Xfp+UkZeUiHd+fIp9fIB3eICAcHV0fHCGfYGBin98YVx+j5GGgIOCcnqAiHuQk4qTk52Upp2Vgn2BfY2KkaOJjoqNmJqNhpKZlJWOiYiMkZuSjoyMbYSQj5GInpmioJaUiJWPbIaXgmWEmI6TeomEkIpwlpuVo5OSiYuZjIF/kJ59ko6SjJmOe4qFh3RzdmxxbnZ9i3Rvh5GPk3F1gXyCg4h8ZnFteXyZk3yDiHSQiYBzh3htfnx/hHuDioaBi5Smi3qGe36KhHd+cXCBhoRmaXp1dnF8Y19xYWt0X3Fre3p6bXNxZnpeb21zbXNYW19gYmxbUFhZZWNocnKAiGddamlnYmdxjW9kamhlaWmBend2cI6FdIGCg3x1goiFeIV8eISFen+Jd36Le3tzeINqa19waHSAa3JvbXJnb2xlfGNugHp2cWx3d4p+opehp6Cmm4aLi4GPnIeTnXaCq5WTjoehjZaUkIB0fHeFeHl/c3N7hmxzcHtui3aAgYdvcFtZfpGNh4B/f3Z1gYGBoYeSi5SemaKVmHmKf4GMiJydio+GkpiWhYmVmpCXjIuMjYubiY2Pgm2Ji5CQiZyWoZuXlISWhmiCoYFlhJuJkH6Lg4uBd5OZk5+TkYmIlIx+fY6Xe5GMj46aknyKgIJvdnBsbW9xfIZqdISPmYtxd4B1gomCeWdzbnWAmY57h4R5k5B5dYdybod6hIp4iYSAho2aoYZ7g3WBin94eG5rgYSDX3R1dHJyeVtfcWFwa19wa358cW5ua253YXBwa3JtWVliYWJvWFFUW2ZnY3VwhYNjXWttZGJma5JuYGdnX2hrgXVyc3GLgHV/g4F5doCLgHiFf3iIhneDhXyGi397d4p/anFjfGOGfG5xbXRqaG9sdnhgcX95fHR1dICDfqSVmayep5aEjYR/l5SDkKB2jKCUk4aLm42Wjot6cnh1gnByhXRyd4lscG52bYh2g36AbW1VUYGqlIaDd353coN6g6KDlIKWlJmdk5t5kXuDjJKjmZOOiZSZkoSHl5qMlIuJjo6GnIOPiXtyi4WKjoecmp+alZN+knxmg5qFZoWfh5GEkYKJcYOQl5Ccj5CNi4+Md3qRkHqOi4ySlox8iHyAa3Zrb2tsbXt/YXp+kJeCd3qCeIOMfHpodGxzhpWLfYeFe5KPcXmDb3WLeYiLeId8f4mOnZuDe3p2gop8d3BqbIKEfGF5cW9tc3RWX3BicmJgbW96cmlwZmd1dWlybGJ3ZV1XZmFgc1RRT11nZV55cIl9YFxpcmJiZmaRal9oZVtncH5wbHF0in12fYWAdXV+jHl7hYF4iINzhoV/jIyEfHqUeGZxa4NgiH1vb2t6YGpudH91X3R9eYd4dHOFfXigj5mwnKWOgot/g5qIgI2fgIyalI+FiJiOj4+Ed3R3dIBxcIV0cHKEcGxqd26Dbn19bXRyUk2C38iS1pJ7cHWEdoWhhJR4l5KZnZGafJRzhY+eoZOTkIqTnJSGf5eWiI2Nh5GMh5t+jYB3eox+iYyJnJucmpSSeIx0ZYaQhWuHooSRiJeDhmOMkZmPlouXjI2KinF6k4h7joiKk5GJeYV8f218ZXJva2x7elyBepCQgXt9gICGjnp6aXNqc4qPiYGFhHyUimx+fm1/in2KhXuDeH+Nk5mYinx1d4OPeHNtZ3CAhW5rdXBpa3VuVF9wZXBaYG1zeWhsa2NneXNwcWRgeGFgVmxfX3dRTkxiZ2NdenGKdl1cZXZhYmZljmRhZ2JZaXNzbmtyd4x9dHqGgnV2fYtzf4Z/e4l+comIgpCKiHx+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNdnJ3ind5nouarpqfkIKFd4iVfn2LnoiGoJKPhYyYhJOPh4F1eHB5cW+EcG1vf3NlZXlxfW15fWpna2OkmsHcrvCgcmx2hXeGpIaTb5iSlqGVnIKScYaKopeJjZWKkJ2Wg4GWkIWJj4CQiYiVfYZ6dH+Jd4eEjZyamJiNjnWJdWyEh4l8iaKEkYmchIVei5OYi5CJjouKhIhse5WBfYiFiZGPhnaFfX5rfWR4dmpueXNYiXuSiIZ6f4GBhox/emZyaX+JjYmCgX+KlYRrgXVth4+BjoJ9gXh9jpSRl490cneHjHVzcWd1eoRjdW5xY2t3aFJhcmhsVmBvdXphcmRgaX9xc29bZHJhYlduW115Tk1NZWdiXndzim5cXWR5XmBlZYVgY2NfWWpza25rc3iMfnR3hIF4d3uJcYOEfX6JenSLiYiVhox/fpdzaHVxeWyMe250cYFXcXp2eXJkd3mGjGl2gIlyf5yGmKebo5KEfXGMlHh5jJ6FhqGNj3yVjYCaiIR7c3hwc2pwgmxqbX11X2F4d3txdXtnYGR869q1ycPch3JsdIJ3i5yKj2uakZCelpSBiXGEiJ+NhIuVioyYlHyNk4iDiJB7j4uFjoB/dXiDhHKIgZOblpSXhYt1hn1ug4CHhpehgpOMnoOJYYOUj4eKhoqNh4GHaXyTf32DhImOjYJxhn5/cXdodnNqdXdsWo18koOGfoGEgYWKgnZhcmuHgY6JgX5+kZB9boFrd4SOhJCBeoB7fY+RjpSIbXB5jIV0a3BrcnmCYXVqcF1sd2FSZXNpZlNgcXd1YXBgXWiEcnRrWGhpY2lZbldcdk1LTWZnXmJzdIZrXFxleV5eZGd7YWRfXVlrb2VuanR4in5zdIF+e3Z6iHOFg3x/iHZ2ioaPmIGMgnuTdWx3dnl4k3RueHt9WHmGcX9vZ3h3koJkdoaFcImWhZmhmqKKh3Rvkoxxd4+dfouaiYp9oH+EmoCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto+RpnducXh9cZSSjohrm5CKnZOMh3toh4qZhoGSkYaHmI58jY2BgYmNe4+MfYiEenN6g3pwh4CVmY6Tk4CHdIKEdIF+iJGbnYaVj59+iGKAk4eFiIWLjX9/gmd8kIB+f4KMj5B+bYN8g3VsbXd1dHd2bGOOgo+Ahn99hoCFiX9wX3FvhHuOi4F8fpCIenCDZXmBiIWKgHqEfH2RjY+Rgm1ueYt+dW1ua2t7f2RpbGtabndaU2pzaWJRY3N4bWNmXlprhG50YlxoX2VtYG9VXHBPSU9nZlxob3KAbVpcY3NgXGNsd2VlXV1abG1jbWp0d4aAcnB/fH10eIZ4hYJ9gIh1eImBk5V8iIZ2iIBveHl7g5NvbnuBd16Df3SBbWl6dJRzZ3OIfHGRkIOan5ughoh2dpR/bXeUmH+IkYSKjpp9jJp3fXZxb2xqYXV9Z2JqdXpaYHh8emxwf2VjZ2dXnY9fcnOWvcWFd3KVi5GAdJmNh56UjYlzaoiOlYB7lIyBhJuMfIqGfXyIjH6Th3SHhXZ2fYFxdYaBnpSGlI6CgnF+hnOCeoiWm5aGk42dgIhmfpODgYaEiolygn5nfYt7eX9/h4uPfWmAfYR2ZnB5eHN4dGxrj4aLgouAeYOBhISAa15wdnp9i4eEe4COf35ygGh3gYWJhIF3gnp+lYqOi3xta3qJfHZ0b2hofndlXXJkWXF0VFRvc2liTmh1eWdhXl1ZcIFwdFplY15rbmFxUFpsU0RUaGJabG9ufHBaW15tY1pjb3dkZ1xdYGtqY2xqc3eCg3Fvfnt/dHWDeoOCfIKGdn6JgZaReIOKdIGHcnl5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgouClpiKeY+Wb3lzcWxqZGB0e2lgZnJ7W2FyfXpmcHphZWSOsbJ3S2JapdvSmHN8ko2ReX+XjIWako2Hb2yFkpF6eZOGgISZinyHgHl4iYqDlX9uiYZxc317anmGg6WQhJKMgn5ufYF0gXeEmZeSipOPlIWIcHuThH6Eg4mDboF4aICFeHJ/f4OKh3xlfH6EdmNxc4BpenFvdpqNhoSLfXd5gYV7g2tcb3xyf4eDiHyEh3qIcYBtb4KFjIKCcYN3fpaKjIN3bWx9hH52emVoan5yYVp4W1pzbk9YcnRnYEtud3ViXlxbWXV+dG9YZ15ma3Ffb09YaVM/WmdfW3FrZ3pyXFtZbGVZZHF5X2hdXmVsaGZraXF3f4dvbH9+gXVwgnqAgX+DgHaBhYiXinGCjXF7hXx6eYSUjHVren9scH51f31vcnx7k3BvgX94ZpGKgqGZnZKDhmeHhHBnepeKf4CFgpqKgXyNjWl4cmxsZl9hb3puX2NweVxkbIN6YHB2X2Rl1eu+izM6PoyPgHN6hoqQjneFmY5/lI6Nf25thYyLdXyPf4WClYl8g3hudoaEgpV2bYeEa3V7dWV5g4SnjIOOi4J8bX5ydIJ4g5qPio+Rko2Mh397koh5gIWOg2yAcmmAf3htfHyBioN4YnmEgnJkcWl/bnZydYKdjIGAhn9zdn6Bc4FwW2t8c3iIgYp7hn98iHh5cGqGgo6CiHCAd32TiYp9c21qdoCAdXVcaWl5cVlXflRbcmZNW3NyZlxKcnlwXVxbWl12gHZqWmJbaGZvY2pOWGdSPl9mXV52ZmB1cVtZVW9kWmVxeVtoXmBmbWhqa2hweH6ObWqBhH95boF7fYF/gnp1gYGMk4VwgItueH2Ae3uIk4mAaXt+anR8coZ7c3Z+f4x6eIR+fGuLjIObnpeMgoFtjX5saX+Pjnx+gIOUgn99iohrdXFnaWNbY2dzb2BibHRhaHCJemFzc15iY5ugkG5dNluwtnVrgYp+lId3iJmHdZCMindwbYWChnR5iXiJfZOIen9zZ3WIfXyWbm+FfWh2eW5leomFpIeAhoyJfW19dH1/e4qXhoCTkJiJi4WKfJCKcXx+hnxpfm1rgHt5anp3goeBcmB3gn5yZHJndoNudXyGlZKCfoOAcHd6fHV/bVdtfXVziYCFdoZ0gol6d3Jsh3+Of4NxfXt8kIeHeW1taGyCgXRuXGhmdXJSXH1PXXJdT1xzcGRWS3R5a1haWlphcoF2Yl5dYWdkaWpmT1ppTkFiZVxhd2FcdW5YWFN1Yltlb3NYal9iaGtnbWxpcHd8k2xphIp9fHB/fnuBf4J7d4CAiYyEcnuHb3J3g397iY2PhGp+e254eXaKd314gIKHgIN+fnpthIyImKONhYR7dot5a22FiZJ5fnyCkoCAfoqEcHJwY2ZeWWdfcHBgYGhxZmpviXRhc29bYGRqdnt/v52opcq5coaFdJV+eomVhHSSjodyc3CDeoJzdYZ0iHeUiXl5cWN2hXl/kmhxg3VmdnVjanyEiJ6Cf36OjXxxfXKCd36QjoJ2lY2UkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWhgd4d9a2p0aHuBanaBjZKVf3x/f3J8d3x0f2JVdXtxcoeCgXuBcIaKd3hvboKBi318d3x6c4yEgHVncGdsiIFxb11oY3RvTGZ3TV9vVlRadG5jUVB1eWJSWFhdYnKDdF1iXGllZWNrZFJccUlEZWJcZHFeXXhoVldWeF5cZm5pV2xeYWpnZW9uaHB3epNuaYiMeX1ze355goGCfXZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3WDeH+BgYKEeoB1bn2Ji5ueiH6Ge3eHfGh1ho2Ren+AfImGhHaQgGdvbmBlXFhmWW5zYWFhcWxsaIluYHNpWV5jbYB3qdqpyIeIs3OLenGPdn2JkYF7lIuAdXR1fXZ/b3B/bYV0lIZ4dWxgeYB4h41lcYJuZ3VtW219gZCTgIB4kpF8d3pshXN+j4qDcpWKkY+IhoZ7f4ZtdXd/bWh3ZW18dm1rd3d/f3xhYniGemh1dmN+fGh1h4+Oln12gXZygHp9bYBaVXF8b3OBhX1/d2uIhnN4anN/goJ8eXt3enGJf3tyZnNkbYuDbHNaamB2Zklvb01cY1hXVnluYlBTdXdZUVZYXmFzhXBdYWNtZWNeb2NVXnNHQ2dgXmdpXVp8Y1JWXXZbW2dsYldrYGFuZmZscGhwdniPdGuOjXZ/dnh9d4GEgXt0fYOIiINvcX91cXV+hYGIjYt7d394hHx9hYd4iHx9gX2EgHt+cnV4i46fjIl7ind1g3pefoeajXmHhHSGh4V3iXtibm1cYltbYVZqdGRhXGhvcGeHcWFwZldcY2t/fMrOh7qia25vjG5yhXN+hox/e5OFenl0eXR0empsdmOEdpKCdnBnXnyAeIqHZHGAampxY1hte4aciIKBcpeTdn16bYZvf4iKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHJ4fXx5XWV5gHhpdXlngndodYiMj5Z+c4hqcH6AeG59XVdvfGxzfoh6gG5uiX9wdmZ2fn9+gHV6b3lyhXp4cWVxYG2MgWtyV2tfeV1JcGxOWFZfVVZ8a2JPVHZzUlJUV15jdoZqXmFra2ZjWm9iWWNxSEFpXWFnX1xWfF5PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulYp1f3t4fnmDiIB1c3+FhY6DcG97eHd1eoaFhoyGenx/dYt/fYaDhId/fn59hn98eHZ5dpGUn36NfYtudYB6ZISImIZzkopvhYWCeoN1ZG5qWV9bXV1UaHNmYVlkcnJngXJha2RXWl9pf3i+rnugt25jdYhpdX1ze4WIe36NgHd4c3duenZlam9gh3WOgXNqYl59dniKgmVwfWdra1pWb3iLo4GFfnCZknF/dnOAbH6Aj4ZxlIiNiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1pmfX14ZXJ+boV0ZnaGjYaXgHGMaGx7gnRtdWJbbXpqc3qJeoBldId9bXBndH12fX5wemp5eX94dm9ka2BtiX1sbVVqYHhWTGxtUFNQaU5ZfGhiT1V2bE1RVFVfZ3eEZ15hcWlnYVdpXV1sakpFa1tjZVdZVnpaTldva1ldbGVcWmVjXnVmbGVxZ3NwdIF4cJmFdn9/eH98hod9dnOCh3+Vg25zeXt7c3OFhoiJhHmBfXaPf32FiY6EgYN6fouDe3d8dnaZnZh6ioOHaXZ+fW2FhZWBco+CcYaCfoKAcGZsZ1hdW1xbU2VxZV9YY3N1aXZwZGViV1tbaH9wb3KAc4plZnqAa3Z3dHWFhniChXp3dHZuanpwYWhrZ4Z0jYRuZl5ee255iHxnbHdmamRWV3NwjqZ8hHt2lpBze3F6eGx5eo+DdZd8iIaEh4R9dXFzbWh1XW1pYG11ZGdnaXpve3JZZ4F3dWhwgHiCdmJ3hYt9lYJvjGtue4FxZXNlYGp4ZnB1iHl8YXWDdmprcHR5b3l4cntlfX19dnVtY2RgbIZ8bGpVamJyVExrbFBNT3FIXnxmYU5WdWVLTlRYYWt4f2ZeZ3NqZWBXZFhjcl5MTGxZZGJVVFV0V01Zd2VaX2xhXFtkZV93Z21ib2p0b3F+dXSZgXh/gHiAfoaEen12goN+l4VucnR8e3RxhYWPgoF6i3Z0kYB8gZWOgIWEfH6Mhnp+gHZ7o6aKeYmGhWx1fXx2hIONe2+Gc3qFfYKDdW5qaWVWXVtbWlNjb2VbWGF0e2pobWhgYVheWmmAaWtwgGhtYml7emt1dXVwh4J6gX53dm56aGp5al9lbmiBd5CEZ2VYYXZofYZ5bmlvZmZdVVhvaI+od4B6fJCNeHRufW1xdHiNfneUdIaDgIaJdmpzd2hpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+enhid4WFeZGGc4hycHp/cmNxaFttdWRucYZ6d2FzgHBnaXdzcWt3dnN1YoJ5fXV0b2NiYmx9fGtrVWliZ1RMbmlQSFNsRmJ5ZmJNVHJeSk1VWmZteHtmX21xamRdVmBWb29YS1RpWGdeWE5WbFRLXXpgXF9sXV1bYmVgemhsYW9wdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIiIRscoN7doGAgnVviG59gHSKgGpvbmVkWF9aWlpVYmtnXFpfdoJpXm1sXGFXW1xrgWVydH1qal5teHdpdXhzb4d8fn56dnJsemhpd2ddZHNoeneSgGNiVGNuZYGEdXZmaGlhV1ZZaGSQqG9+d4CLjXlwbntmd215inp2jnGEfn+Ah25kd3RlaGldbGJecG9baF9tdWV6aF10gG5ya3F7f3Z2Y3WGjHyJiIGAeHJ2fnRhcGxYcHFhbm+CenNjcYBsYW16bmpoeXhzcGSEdHh4dG9jYGNtc31pa1RoXl9VTHVkUUhXYkhjd2ZiTFRxWUtMWFlpbHd7ZWVucmZjWlheWXdnVUpdZFhpWVlJV2VRSWN5W15fbVteXWJkXn9pamBudHhtb252g5d5coGAfX+JjIZ+dnaGeIaMfXR1dYJ5enqCi419f4WJanSXgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGJe3R+fXdzcIZtfH5tkHpjcHBiZV1lVlpZV2RmbGBdXXSGaFlwbVteWFpcbHticXd2bWNcb3V1aXZ3cm+GeX+Bendub3RlaHRlW2d0ZnZ2kXlfXVJlZWmBgXN8YWJpXFRYXmNkkKVoeHSChZB3bG14Zndse4N5dIdygXl9eYBpZXdtYGdhX2pgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzhJSAiYOJe3dwcn1yYXhjWm1uYG5vf3pzZXGAZF5udWhjZnd6cmttgXNxe3FwYV1kbW99ZGlTaFlaVU56YFJLWllIY3VkYUpVblVKTFpXam1ze2RsbHRjYVlaXGJ3XFRMZF5ZalRXSFlhTkhrd1lfYW5bW19iY12FaWhibnh5bW9qdoGQeW2CfoCBkoiEgXd1iXSMh3RydnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZoXt7f4mWeWV1iXpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG5mXFxyiWVTcm1bWVhXYGx2Y2p1ampfW291cm51dHVrh31/gXx3b25sZGlwY1trcmR0do5zXFZTY19wfn5wgFxhY15TWmFcZJKfZXJxhYOQc2tpeGtubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF93aFdiX3BoYXdhW3x2ampybnh0dHVpcYKWhIh/hXZza3B7bGZ3V1tpbGFvcX54c2VvfltgcHBhXmlwfWtqcn1wb3Zpb2BaZGtte2FmU2ZVWFNReF1TUFpSSGR0YmFHVmxRSVBaVmxsbHxlbW9yYVtaWFptcVhTUGdYV2pUVUZaXU9Jc3ZZYGNuY1hhYWFejGpjZW16eWxvaXZ5hntrg32AhJp8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSGgZ+JdYGAgXR/gnCHg3Zvopdze4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJtbVtccYxkTm9tXFZXVWZpc2hjdGVlXltwd29xdnZ6bIh9f32Id5BzY2Rrb2Fcbm1jc3iHa1pUVmFid3t8b4RcY15jU1pgWmOWlGNucIKFiXJpZnhtZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlidWVVYGFtZGFxXV1+b2hpc3F0cXV3bG2FlIOKfIZycmdue29xb1JaZGlkb3F+dHNibXVVYnFqW15uZXxka3V8cHFxaGxeWGNpanheZlRkVVdRVm9YUldUUEhlc2BiRlhrT0lZVVduaWV8aWx5a2JXXFZcdWVUU1dpUlpnVVRJW1pQTnl3W19lbWpaYmFeXo9uYmdsenZub2l2dn9+bYOAfYaYe3+HgYp/a5OIcmd0gHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1jZ2doU2BfVWdgbXBcXm6OaE5qbGBVVlNvZ3NrZnhlZl5acnZuc3x5dG6Je4B3nHt6a2FlbG1eYG9qZXF5fmdaVVdfa3d6em6CXmFdaFZZYFhknIhia3CBhnx2a2l1a1t1cGp5aXVybm98gXNZa25gWV5WYmRYZXFjVF9iaWFibFpgfmtmbHR1b214d2xoho2AinuIbnFmcHtscWxhWF9nZ21xf3JyXmlsU2VxZFVibWF4YW90enRpbmppXldgZmh1XGRVYVZUT1lnU09dT1BJZXBdY0daak5KYExZbWVgeGlvgGVgVV5UXnZcVVNhZ09eY1VUS11aUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnR5gnOCg3qIj398ioiOem6QinRsc4F0f3+IhYeShJWPen2Mj4eRm4SAfI2Ecn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2NjY2NjY2NjY6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnZZCioKCgoKOAZGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX19dkaakpKSkp3xdX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmNj4+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQkJCQkIuOkZGJh46KkJKTkYuQjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo2MjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYmKho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhoqFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt9e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWIjIaMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhIiHhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf313eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoqLjYqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aAe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9+f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5OTlJWVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhJCPkHx0iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fn5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ha3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWVmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZGSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd2xibnJqYllZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tya2FtdHJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWGlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViZ2xvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdWlxlbG5qb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtbaW1ub2pvbWtqbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5sa2xoVUM+Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzc3BoVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9akA6Oz49Pj8/QUA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9P0FBPz9AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSktIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0g4Ozo9PkE7SGQ9PD08ODo7REQ8PD08PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlgcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPTw9SUxGRXV2Tjc4ODo7Pj9XakE7PDw6OjtMUj09PTk6Pzw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnpKO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PE9oS0A8ODxBPz4+QT07P0JAQkNCQEJDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VFP0FHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyemtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUJBUG5eVFBIQUNDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSklUaGdlX2BYRk1NRkVFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHt9f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTVxpaGplYmdaYU5JSUhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE5NZnZvaGtpbG5hR0hIR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshYeGhoaHiIiHfFBMTU5seHZubW9xcFE/RENCQ0ZGRUJAPj5AQUJAQkQ/Pj9ERkhERkdJS0lKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoWFhISGhoaHh4aKdUpJUnR6g3dwbWxuVjs/Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPZ0VZa296bmxvcXNPNjk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42KZ2RqbGNlaXWBczw0ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJR0lGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKi4uHc3FvZmdwcn1lNDY4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnl7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi42HeHNub3NtcWE5Ojs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY6Ed3V5cm9vXUJCQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjY2Be3t2c3FWS0hISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIyMjIx/ent0Xk9STEtLSUpKSklGRERHSEZEREVGREJISUtHSEdGSEdFS0lLSUpLSkNFQ0NEQkFCQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjY2Mjol7enBcUVJOTE5LSktJS0dER0lJSUVGSUZGRUxMTUlKR0dISUpOTU9MTE5LR0ZHR0VFQ0ZFRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjYyNjYR6enhkUE9NTkxKSUZKSUVLSUdLSklKR0dHS0xOTExISElKTVFOT05MT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SFhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIyMjHZ3dHFVUlBNTElHREhKSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyOfmRgaF1XVVFPTUxFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOSEdKRkVISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMb19eb2RIVVNTUks7O1NUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFMTEtISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uIc2JpWT1bWllUUj9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUtMSklJTE1LT01Tb3R2eHl4eHp6ent6enx9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYuMfXNzW15dXFNVU1dXVVtadYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeJioFuhomIh4SLgGlcXF1bVldVWFRSWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FQUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB9YFRYW1ZUVlNSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4h6b3NaTk5RUU1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYXN7fH+AgYKBgX99enuAf4OChYaHgoaGhoGEgYaFhnZhXk9HQUVFRERDQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNU2RydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1BVWVNVUVFUUk9WX2tscnZ7e3h5dHJuc3RzeXh9f4OAg4OCgIKAg4GCbE9JQkI8PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01SVUlCRT8+PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnR0dXN0dnh6fHt8fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSkpQUU5LTFFSUVRVVVdRUVdVUFhbYV1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJCQj47Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEI8Ojc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpcV1ldXl5fZV9dXnF2a15gZ2t3b29sam9ubmxlYllIR0hIQ0JHSUZGRkRNUk9hV1NXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3enl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFdYVFRZUk1YWVpWWFhWWFldV1dYaHNrXVZhdGthYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1pXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHp7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVFdUVVJdbl9STlpgW1dZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pz06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWldYVVRXVFJYWFlZWVNVT0pHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaGlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhKSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ5e3t9fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE1NT01LTEtMTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp7eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTkxRU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTE1PTkxNTU5PTltXS01RT0dJSENISkxMS0ZGRkU/QkM+PEJHP0I/QWRwdHZ6enp7fHt6end7d3l+fnx7cXN0cHJzd3N4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkFESkVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE5NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODk6P0I/PEFCQUFERUdLRkNISEdHSENEP0I/P0BBPkNFQ0tOUlRMSklNVEdJSUpMSktMSUpNTU9QUlBKR0NMR0NCSklMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb21wb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RGQj0+PTo5OjtAQj89QUJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQ0VDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6O0BDQD5BQ0RFSUVJSkxGSUlHRkZDQjtBQkM+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlJTTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERCPj8+Ojs7PTo8PkNBPkFDREZKRklITEhHR0dGRUNAPUREQj5BQ0NDREdISUdNUUlGRkdLTk9LRkhJRkVERUlKSEtJRkhPS0NJTEtPTE5NT09OSkpJTFJVVVJPV2RgYW1ncXJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ8QkE+QT06Oj0/Oz4+QEI+QEFER0pFSUZJSEdGR0RDQkFBRkZDQkJCREVER0dIRkxRTElPSkpNTElHSEVHRURDSUlIS0pHS1JNQk5OTFBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZGZlZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PD45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSU1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJPUFFOT01OUE1MTVNXVlhYVVhdWl1kYGliamlna19kZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzs9Pjo+OkBCPj8/QkVGREdERUhFREVDREVGR0pFRUlHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVFJQUk9RTU5RTk1QV1pWWllWWl1aWGFgYWBeaGVjYGRlaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVDRT04OT4+PTw8QUI8Pz5BQUZDRkNESURERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTEtJTUtPTk9SVVZPS1VWU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkJBRkNFRUVJRUZFR0ZISEZISElLSkZKSEhLSEZGTEhISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlVUUlJRUkxPUlJRVltbXV5bXF5eXmBgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QkBAQERBP0I/QUNIQ0ZGR0lGSkZHRElIR0lISkxISEpKSUxKRkpMSElLSkdLS01NSkpNTE5OTVBLT1BSVFhWTU1UVVRSUlFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnVud0tMTExNR0RDQUQ8P0VFRUM9QUFDQkJDREFDRUFBRUdDSEhJSEdKR0NHSkdISkZJTUhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOUlBXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0lKSUlMSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdmxtcHNycHJxcHFycXJycnRybW1zbm5vcHN1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0NGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwb2pqbm9wcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZIQ0dESUZFRUJGSUhIRUhMS0dNTU9MTU5HTE1JTEtJSk1JS0pKS09QT05MTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eGtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0ZESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9xdHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBqbXFwbnR5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXF2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUZLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPTlFOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbmltdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRUVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cnhyeHNxcnVydE9CQ0RMTUJEREJFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUkhHRUFIRkpJS0xKTEpIRkRJRkRGR0VGS0hDSk1MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVJKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKRUFLTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhZUUtGREdFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQEpLSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXWRjYmRjZlhRVlRRWldaYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhJRkJISFFNTEtPTUpLSUdHRUQ/RUNJSUNDSEdFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYVJRX19iYmBgYmJgY2JhZGRiWE9RUFFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUlIREhLUU9NTVBMTEtLSElDREFFRElHQ0NIRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU5YYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhISFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35KTkZERkZIRElSYlBDVl5JR0dIREZNSlBQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01NTE1IS0FEQUNER0RDQ0ZHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NQS09TUlVaWVdZWFhkV09TVFBQTk1OVFJaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGhoeHhYWFhISEgoGAfUtJRUVIRkdES01dTEZHWExHSEpIR01MUVBIS0tLS01NVU5PSkpLR0dLUFNTTlBPTU5OTkdLRmBFRF9MRWdkRk5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYl9maGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUxNTExPUlVST09JTE5HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19ablhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYWFdX2FnbXBsX3B3dHiBgYKDg4J+fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFVTEtOSUtSWFdRTk5PTVFUTk9RT0tLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3Jxcm9vb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCCfXt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05MR2BdR0FFTU1ISkpHSU9OTU1KTlZeWVVMUVNOWFpNU1NSTUtPSFFSVFlXV1FUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUlmdnFtd2+AamZ4d2lXclFoem1panp6fWx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhWl1iZGdpaWRnYmNkbGxwcHN0c3NzenFyeGJsdWdyeXtzcnZ5foFzdXpufH15eHJuTktTdU5DQkZQUEhKS0lLUE5OT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmdxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5cX2RkaWdnZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5f25xcGt7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFlVTVVZVWVYUlJZXVNMTklUVFdXWVdPU05OTlFJUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsX3Z1a2l1e3ptfnhrfHBcXl5iW15hZGRmZWVlYlpjY2lra3JzcnZnbGloZGdhYWthZ3NybGdtbXJ9a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlVUVGFfUE5NSlRTVFFWVk5OTE1PUEtIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYV1pPU1VXWFhSXllXXldVUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUElLTExNS0pTUU1RUU9MVlVUUFRVWFVaVVFaXVVVVFdVWVdPT0tNVlRRTlVTTk9NTFFQTEpSUUtRTUtMUFJVU1FSU1NJSExOT1FSUVBRVFZSWFdcV1NSUFJUVVVTWlFOU1JYVlRZV1VaVlRSVlRUVVdYVlxZXWBdW1paXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUE1YV1VUVVdXV1lVU1xgVldWWVVYUlBQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpWWFpVU1JYVlVXW1hZXlxVWF5cXlxbXWBgXVtiYmNnZmVkYlhfYWJeYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmZ2ZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYWllYWVZdamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVRVVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTUllXVlpeWVxeXlVeXF5gXFtfX19eWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVxfXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tYVVVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbW1dSU1dWV1hWVFlbVVRSWlhXXF5aXl9fVGFcYGFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBfY1xZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVdQTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QUlJWW1ZXV1NWWlhcXVtbXVZSTVRVVVtcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYF9WYVtjYl1hZF5cYmFiXmNmaWRmXVtkYGFgYGNlX2JeWVpeW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnW1RXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hdWF5dWVpdVFROVVZXXltYUlVVWVlZVVdaXFZTV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FdZWZpZGZdXWRhYGFhYmRgYl5YWl9aXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVFlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSVlFZWFlfW1pUVVZaWVpXWFpcV1VbXl1eYGFfY2NcXl1dZWFhZmReXmRjYFxnZGhlZGFfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BWWVFdVVZZV1dVWF9fYWFgY11fVV1eYmVldYF6aFdYWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJYU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFaXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJhW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVhdWltbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVpZVVdUV1taWlxZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUlhXWVldYlpeV1hbXFtcXFtaXFpaX19gYGRiY2RlYmRaYWVjZmZlXWFiYGNdYmNpZGNnX2deYWFjYWFgXl9YVFtaWltbWFtYWFxbWltYVllYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXldVV1dbW19gXF9YWVxcXV5eXFtdWVtgYV5gZGNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVpZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVVltcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFloaGJmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbW11aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdcXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWFRYXV1fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJbY2dfXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldWWE9YWl1hY2Zmcmt/SllXXFpaX1xbXltYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBhY2RkZmVnZWZmZV5lZmhoZ2RkYFplZ11hZ2hjaGhmY2BiYWNiX19fXF1bWltZWFhYVlpWXFtaVlZWTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5ent7e3t7enp6enp6enp8fX18fHx9fHt6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1ryGiYmJiYiQzNPS0tLT2FolKioqKiKM29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eXrVBMaGhobEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYOEhISEg4R4c3Nzc3NzfYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXt7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fHt+eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e318eXx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXt7fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKBgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFxb3yCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycXBzmIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgnByb4uefG5wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxdZ2hd3F3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh3d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKCdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSoqJd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtauso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqGyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJyOoK+gn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsaGYlpyFfH5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+gIF+fp+rpZakm5uWoJ+Gf359f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho2fsqiioJidnaaoraigmZCHgYCAgYCAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4uXmZeWmKCanZ2dmZqXkImGhoeGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCTjpSYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZORkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAh5uHi4eCgoKBgIGAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOj4+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OBgIGAgYCAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOCh4iCgoSDg4KDg4ODg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4KMkYGBhIWEg4SDgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDgY6biYODg4ODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKBjp2hpaCRhIKDhIKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4OLko+ZpqWXhIqIgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19f4KEg4OEho+UlZKYoKCYlIaDhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f35/gIOEg4SHmJebmJaZmJqThoSFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYWEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFg4ybiY2ZmZaUk42HhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn1+gH9/f39/gIB/f4B/f4aElpmAfZGYmJeVj4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoaFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYGCgYGBgYB/gH9/fnt6gIufoZONmpuXlZKNiYiKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKDg4KCgH9+fX19fX5+fHt7laOcm6Ghn5CCiouJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDgoSHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoODgX59fX5+fn5+fn1+fX2Bk5WWoKGblIeJiIeHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHp/j5SZm5qalY6DhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaDg4OFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enqDj5GOlZeYj4GBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhISCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+ChISCg4ODgn59fn+AgIGAfn19fX1+fXx6e3uGjI2RlJaFf39/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYCCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAfn1/fn1+gIODg4KCgYF/fX1+f4CAgH99fX19fHt7e3p6enuJjY2SiX5/f35+f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX5/f4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX+OjpSKgn9/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/fn5/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYOPi5SUgoKAgIGAf4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19fHp6eXl5eoeIj5aHg4GCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYGAgYCCgX+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl5fIKEjYeCgoSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6foGDf4KKhIOEhISXl4ODhIF9foGBgoGBgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXp7fX98hZGDg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuCgYKFhYaGhISFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp6e3t/goCBgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX9+f4OEhYWDhIaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eHx9foB/gH99e3x/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn5+f35+fn19fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY6Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f318fHx9fn18fHx9fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/f4B/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKAgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fXx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj42JioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9+f39/gIB/fn5+fX+Af39/f4CAf4CDgoB/gIGAgIB/f4CAgH58eXx+fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX19fH17fXx9fX59fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChoiHiIuKi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f35+gH57foGSjHx9f4qAjYx+fn19fX59fX59fXx8fX19fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fX1+fnx9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYKBgoGAgIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp6e3x9fn1/goCJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGAgYKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e31+fXx8e3x8e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAf4CAg4F+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEg4WEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhYOBf3+Af4CBfn19fn9+fn5+gH19f3x9fX6Bf4CAgIKAgIGAg4KAf4B+gIF/gIGAgH9+fn1+fn5/fX6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gH+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB9f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWChISFhIODgoOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f319fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4aFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICBgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISGg4KEhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgH9/gYKBgH99f4F+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fH9/f4GAgYCAf3yAf35+foB+fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgYB/fYB+fn5/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B/f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3t8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgYGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l8fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f39+fX9+gICBgYJ/goF9foF/f4CBf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKBgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKCgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoGAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fHx8fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4CAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX54d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgICAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/fHt3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoOCg4SBhIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgn9/gYSEgYN/goKBg4KCgoGEg4OEgIKDgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5ent9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoOCg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gH58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGBgICAgIKBgIB/fX18fH18dnJ3eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWEgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gICAf4CEhISDhIWDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWDh4aGhISEhIWEhISEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOCg4SDhISFg4SFhoSFhn2Den1+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYSCaHpyc3N8gHKChH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fXx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSCgoSGhoOFhIaIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ptfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKDhYeFhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fYB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn19fn1/f359gIGDg4CCg4GChIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODh4SEhIWHhoWFhYWHhoiFhYaFh4eGhoSGhomIhYSJioiFhIWFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGEgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaDhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fH1+f399fH9+gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeHhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIaEhoaEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIaFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhoSFhYOGhoWGhYSGh4WEhIWFg4SHhoSCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhYSGhoeGiIaEhISHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIh4eHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgXt7fn18fHx+fXx8fH1+fH18fn18fH18fHx8fXx+fXt8gH99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhYeHh4WHhoiIh4eGh4aHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fHx9fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoaFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhoiFhYSDhYWGhoeGh4WGhoaFhoaEg4SFgoGCgYCEg4OCfYGBgH+DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIGBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aGiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGiIWFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgISAg4B8gYB+foOAfX9/gX2AfH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoWFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoaGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6e3t7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYaFhYODhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5eXp5ent8eXp6ent7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SChYKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4SEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3x+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5e3p5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgYCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWDhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCAf35/fXx8fX17e3p5enl5e3l6enl6ent7e3p7fX18f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaWBkU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vc2dfX19fX19fX1tbW1tbW09LS09PT09PT1NXU1NbV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMlYWGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiKG/vb29vb29vby8vLy7v9LS0tPT09PS0tPU09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzG5QU1NTU1NUVFRUVFRMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU056rqqqqqqqqqqpqampqLDS0tLT09PT0tLS0tLS0t/r6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy8xxVVhXV1dYWFhYWFhYUaHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTfbCrq6urq6urq6qqqqmy0tLS0tLS0tLS0tLS0tHf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zNeF5hYGBgYGFhYWFhYVqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoWzr6+vr6+vr6+vr6+uttLS0tLS0tLS0tLS0tLR3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzMfFxcXFxcXFxcXFxcXFytDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vO0tLS0tLS0tLS0tLT09LV09TW1tbW1tbW1tbW1dfY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O0tPPztHU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dXW1tbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9WSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz9Ktg4OVz9GlotDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaTKm7y4mbWzoKKq0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGes6aNgY3GnpiWnMfPzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbtZijiqvWupiinq+x0s/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/PT49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqruKraubpbGZlrCzqdTQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDw8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqORjaWclqeQmYSdk6PV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLlqKotKqef6CphZml1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZmrz9jBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZadp5Ghnp6ZqJaYmrrV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoquknLikq6Oew6CrpJvQ0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iSjbTZqY+QrNfCj4271NHS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0tXAv9bS1cXE1dHS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz8+PkFETExBPjc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEQ0k7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NTM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEJEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurq6+wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojo7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw+OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QT88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXmJeWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpqWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk4OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs9Ojo7Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpaalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Njg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKioaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbm5qbmpiZmJiYmJiYlZSTkZCRkJCQkpKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuampqZqIREgJ+fnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozk6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRSISgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoZydnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTYGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enp6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VPgaKfn5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9QU4aem56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM5Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xWUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mlo6KZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTE9jhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5/a5allZ9/iX9fcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot8blJ1nIyMWXF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTs/Ojg8OTk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3WE9McZSGgktfcHF3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVC8wPXiHd3dARF1rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0JbSDt4eWtnRTE4WmxzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0pyonlBfHhkYlFTXUlgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgwdalQ3yNgnVPbY52U2R/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQERCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73Arnigo5qVZUxheG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo+o0aKas6hYTKyTU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooZ3fn1yz8iwmqeva1WqsGNbh6WfpaKhnqCimJWem5+fpKGclZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrq2PhoNukcy7lJOklnRUb3pzcH2WpqqnpKCfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQ0M7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWgiHlkWJ+2vaanmoh3a3FveHl7foaOkpido6Wmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkkHNmUkSLlYaGhn14cW5nZmxpbHJycXJydX2NqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8r6SXiHRZWlFEaXhrbnRua2VlWVddWFxjamppZmFpirXBwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3S1cq5p52UhnJeUVRLRFtlXmNqZWFgaFlUWFNWWVpdWVt1mre8rLSyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLeUdWVVUE9USD5ebF5fZWJgXWRhU1VXVlVVWHOcrbGqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2ViYmljYFtjX1dST1BQVoC0uqyupaSjqKSgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01bX2VrZV9bYFlZU05VgKOrubWyrKmjoa2prKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/R15jYmpgWlhXVFZ3mrfAu7y6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1VmYVNOUHGpyMjCxMfAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/T3Z+iVZMb6XL1MW2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2uDkJdvqsnIx9HBr729uLm7u763tLC5vrO8vrG5tbi8tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NlfZGKitHFv7/Jv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y24v7vDtbrHtrW4ury4ubaqpJiOfoTJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3qMy9x7e5t622tLe5s7WxvcnElUp7yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNaudIC7yM/CwLiutLS7vbe5sb3Dyo5Ddc3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcmZsam91b3hkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmXFyq9HRzMrEtbq/xMi+vrS/wMB5Um7LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDDur68xL63vMC/yc/HyMrKwoZyc6PMzMvNysbCw8vOwby4vbqycGNiu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V5dXiZxMfLyMHDwMDJysG/u7mxoX1za63IxcS/wMG/y8fDwMjAusG/w7O6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S5bazOvba5wLysfW5obm1ygZWYc3d8l72/xsC5wLy+xcS9vbixsJiQfYCbysLDvL2/v8PDv7/HvLzCtayutLS8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDOtHaAs722tcKlh2laXmBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmIeRfsDEw768v7u7uLbBwrXBuoCgsKyvvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeImgr7WdamVnVllgSUlNUFNsd4alsLe+ubK1sru5vLa5vrSVnKWWoXCuycTAvb+5s66yvLquwX5woqumrLq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WriHx2i6CZYFRDWFVHYWpWT0VKYI2grK+2urW0sqy8ubi1uMG9i5iwoqVypcvCv7m6ta6lrLOwqaRUgJahnqWttrTBtrWzpaeqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxwdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIePb05KP2RZQk53gJRqTkFdgbC1s7WytK+su7q4trm/xnaDqp6aZKe/uLWysa2tn6Smp6WISYOPmZiZn6mtuKuqqp6kqaSrrq+nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7eVjIiEe1hGQU6HWUpKWHeNgWNBU6O5s7SysLGtsLm4tru3ur2QorKro3KrsKmrraujqKCdnp2kb0p7homIhY+bqK2joqOeq6+ho6mooaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qpmZlWlOQFJ4cVBJSUtmm4FZRVKuu7Gss6+urK22trK0ta+ppp+am52epqieoKipn6GnlpuVp3pibmx7g36AiJuon56fobqkpZ2jo6CepaCkrKWmqKWio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJaVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BSQT87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb5pRVKdglFXSUpfSVOOYGNigK61qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+dqJSalaC1noN+jZGLg3p7jJmdnKeqkqqcn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho5+doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5sfGRpVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8uhUEFznnhPbktLYmV0c2BaXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWlpXD2sO6tqGRjIyEc2t6mZ+xgZuroZ+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXlhYlNWYUlJS0xTVUpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8ePV1NJZKRcZX5vcl1Qa2NbZF9da4+0sLC4rKahnJ2alJiamZCOkZWRjI6Nk5minJeimJaq4d3V1dG5oYqKi3VmYI68oXKqrqumorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ2dXBjdnZYV2NgY2dZWFdmra6sr6efnqKglpCTm6CcmZeSk5+coaOanpuWnpmdvbWyvsPEwbGUgHhsaWGNtHGGt7i2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NSJisqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZ2elp2XrJdPWoOjt7y2on9uZWhpcoFfqrq9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaWfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ+em52blJOVlJ6emJSFnZmfmaxmQVJaeqOyt6iCaGFocXBggce+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmaoqCmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bIafoqSbbG97amGDpq6mf2ZoeYiMfrPHxMLHwcDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfHwrjEysnEwce/urS6u7W7t7C2squ7sq+8t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn5zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxvjaStjXR8opVlZpSemXlofJCdoqnBzcvGyMTFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK9xMG/v7+1vrOtv8DDw8fFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanaisYhyj7jFm2J7ioV0cYiUoaWluNHMzM3PxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT45Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1NMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJthZ+FaYS115dqbHZyeHeDkJubm7bU09LP0sPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpudmpWJd2lkYV9fX19eX19dYWx1c3BvbmtwbnOCiWZsp7VofGNfZXRweIiKiYqn1dPT0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztHR0sjMzcDLzcbUz83PycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX19hYF5gYF9gZW1wcG1qbW9zdYBoXoOYioNZTFpnYnF4cmpol9TM1dTRys/M09bS0dXNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTKz83KzMDJwcnKzs/QzNDOzszP0MjM0NHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGBgYGBgXmBfXlxibXJubXBwcnJ2c2dpcHFkWFBRV1hhYlxXS6fQydLSzsbOzM3Uy87SzMrW1tDM0NPLzNDR08rO0dXS1dbKv8rCxs3DyMrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDw7WqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbXVuZXFzcnhwVk9OVHl3VW7BwMPOzsfFx83K0cfKzc3F0NLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoaiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lqc19lfIaFaFdaTlaglmWbura7x8XBw8DDyMnIyMnHv8TLxcfKzMnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKx8jG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp8npGKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl1fW1laXGFucW1pZmdraG5yW21wb1lLXV55oYltoLGurcC5ubu5uMDBwcO9vbi8vrjDycTGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6nYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWlrdndmYGhgRmZid4FvXpeqqKK0sbSzsrKzu7S7sLavs66xusG7wMS8v7q0srq+wLjHuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMXLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXF9rb2xmY2ZoaGp4cFNlbmRdV2JdTFqZpqKYpqivq6mrqLKstK+xp62mq7K7ubXCubq5sKq0ubuzwbmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZnbHlZUmhjRUtaUz5dmJ+ak5agpquipqGqqKuqr6KlnqmstLWwvLivt6+orbi0s7u3s7yvuLm1srzBssCupamjq7Gzs6i9qquoq6yutbSmqa6hpbCps6anqK6mqLessbO3uru7sry+vr7Ev7XBwMfIt76/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcPCtba8trGvtbytqauTY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhuckJGRURERlNJXpack5CKm56loaGepKSmpayfnJqjpayysLa2p7Crp6q0q7O5sLW1rba5srC6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ylpqyfn6ekoaGxra2ssrWztLC1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozw4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZW1mMzVCPTVHQ26Vmo+NhJecnaObnZ2ipKKmnZqhmp6qrqyxtKOoqamrrKS0uKy2r6yytK6zta+wqp+en6SisqWmqritoqamn6itq5mfoJ+ZnZ+lmpmjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2RlcVIxOjQvOEJeY4yWjYeVnJ2lnJibo6Who5uen5iYraytrrGgpKKtq6ehtbCxsayor7KnurOntqGin5yjoa2joqq2qqKjpp6mpqOWmZ2XmZqdoJqXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxsDFtsHAx863wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGdwUFE/LDErJDprpZWJkJqZnJqTnp6nopydppuamaqmrrCpm6Kit6mhoK6otaqmp62wpLewpLego5yZmaqmoZqtubCjoaScoqCgk5WhlJaWnJmYlpeclZ+pnqqkop6jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJhYGFfX2BiaHBoSjEiHCZKSX+Wi46VmpeckpycpKOhpKWdm56lnqqupZ+goranoaGiqLOipaelr6Wxrqu1n6GdlpWpoaKUrbGxn6Ojnp6YnJOMoJSRk5iYkpaYmJeep5unoqKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1eX2FqaUc6NC86aXxwhIuMkJ2VnJOYnKKfqaOioqGioZuoqqOZnaOwqaGgnaSqnqiinqysqqmuraKiopWYopqckKupsJyfop+fl5mTip2RjZKUlpCYmJOcoaOcpaGilqCipKWbo6uloqSqpKutpa6yqaalp6a1pqqorbO1tLm6r6qsnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlpbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJTTlBZXFtbXFxcXVxfYmtLNUJCUn2Gd3uKi4uVlZ2Xl52kpaelqaWopaGXpKyilJikraifm5ian56umZyqs5+lpp+jo6GUlJuWlpKpqa2bnJ+hoJuUkIyZjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1lZU1VSRlhMUVtYTVVPUExRUklPSkI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVhZWVlcW1pbXV5mY1VYbG18gXqAgo2JkZOcm5abp6Wjq6mmrqOml52qnpSUo6elnJePjpmdrZaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRfnJ0Y1ZUVU5RSkdWUFJSTExYTktMT1NHTktBQ0ZFQz5CNzU4ODk7OTo3Ojo3PD06Oz8+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGpwanBld314g32Ngo6NkZaTmaSXnKekpKmcpZeeo5qRjZ6hmZaWhYSRmqOPlaKclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jtqyqrqSysqa1u7SrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LS1NXV1ZXV1dXWl1hZ19jXnJ4c3x0h32Hg46Ljpmdi5aZoZ+hl6SUn5qUjIaYmYtzjYJ9jZaWhpKakJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ6Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz44NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVlaXWhcXltsdW1pR1JrinyQgYeXkoeQjZ2Wm5WVlZKNlYh/k4lfO1dve4uTiYCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqWtma2rmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVWFlhY1pWaHBlSDs6e5CMiniCj4iAhomYi5WViZGGhJOFeIh/YEpRbneKkYN+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlYSbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVJJTEtPSUhGSk5NTVVLUVJQR0pEPTc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joSDfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU9RU1NVWmhmXGRtXF1TTYqAj4JveYF8eIGJkH+QmYuPeoSNfnR/eHJudXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoKCWnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSUxRTVJVTUZJQj03ODs5OT49Ojs8OThAPzo6Pjw3PT03OTk0Nzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1ZTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZeaG1paFlrg4+Ui4x2YnR7cnV7hY16gpiSf3CFjXp2em5rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pRT0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrqunqbCvsau7uKu7vrizrKebsKesm4+WnKWppaGYmo6EknmJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFST1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1hZ2NefJygvXxucl52c2p3dIWNd3qJhG5ripB3c3hpan+CcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8joyKk4OWlpiakJOWlpmWnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU9ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66ss7+rvMO/pqKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkFGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVdYV51+W5NibHJgeWtpe3aHhXN/hYNya5ePcnJ7aWqdjkx5hZOJhI1mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz88Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FJUEhfqa2aanRxZ3hobX59gX53gYODd3CeknJ3gHJ0k4c1cJ2onY2goYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISUZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs5Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4Z1goRslYiIfHV4eG14bndkal5JUEc+Pzc0NDg7Ojs9PkBCRUhMTExMTlBRU1RVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJSQ0h+bXh1dHB5aHKDhHh6gYB8iXt0n5d4fYWAhJmEmpxhhqqenIuDkI56d4h+iYiOdIuXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpFTEc/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6lkaCroLGor8Cyu8S6lo6Rk4d6hnZrf4uRg32Kg46MeIOBc6CEin19gX9wgX56aHdrUlhMQEUyMTEzNzY2ODg6PD5BRUZGR0lLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNT1FLSlRbV1BIYnuBdIJ0dm14i4d2eYWEe5OEdZ6XhoaNkZSljKypSIatr66KgYCUi4KLgoSSqYiBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2CiH+HhIt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2VcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/OTQuXZZwc6NVRklLTE1PV2BXbFhaW2SEi36Ne358gIyOe4KFjX6XkoCen5aTmpmlrZKZu7GmusfDp4uMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXZ1Zn+UjoaIiIaHh6CqopaJjpd/eoGIeXlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTldSUUhQSkROR0NKRENARENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZGOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkA0LS0vLy4vMDIyMzQ3Nzk7PT9CREhJTlFSVFJTU1RSUE9IRUI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTVZfYXtlZGlvk5KGk4yNhomKlYSPjJqInZ2QoKijoqqTqLWhp8HCrceveLmUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHKIoJWGkYmNj5aktKibjJSig4eSg31/a2pqfIKDg3VjX2VgW2hsXmxsXldLSE5SUE5MTEZJUENETkZCQ0VGQz46OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48ODUyPD9SNUhISExLTU5SXmuGeXB9eJaUkqCfnJWckp6RmZulm6WonaaqqKm0lqu+q7XHyLbI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVo5ubeHp+lJiToZOXl4GUnnt3lZKqsoiMlp58k52bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLT05JSUxGR01DSExGRkNCR0VCOzg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMi8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk1OUVlrgox0j4WZn6Gtt7OgqaippKaxqa60r6+rubCyvZuyw6u5ycu3w7+3paKws6ytqqOLlpiEpaago5eBppmNoqqopYiFlKShoaqgpKiPnLGLlaOmt7qboKKvkqKcoZ2PoqGrrquytKGUpKmImYiSiZV5en6GgWliaV1mY19lZF5nZ19bT0NJSFNORkhLRkpHRkZIQUtGREZGQjs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwzLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0hEPD4+RkhDREE4Ozw1Qzs9RktJRkhRTlBXf4+bgaieqqOqusK/p7DCtKqxvrG2u7O9s8C1u7qiuMWotcjHtb24tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK+2urK6rLC1orGssbW7trSttJ+mp6KmmaivrLG4t7immrWojKSOkJKfhniChXhbY2VXZ2NiZGFhZ2BbVEpERExUUEhJSURJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkHp4bl1XQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLS0E/PkdLRkVEOz5AN0Q3P0JKSkVGVlNQXoygqqCurruvsrvIxbO5w7uysr+1tsCzva+2dLCzpbrEo6/GuLCzsbOnpLW2qrGgopebopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7irq7Ckr6isva+8usHBq5i5p5StjpeXqYh+g35tWGRiWWxma2ZYXGNZVlNJR0ZMUEdDSElBSEQ+P0JCTEA/TUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNYVVp2anB+joOAjoRuenN4h2K5oZmjiZSUlpKUk42Pl5KHh3uGgY2VioCEgYp6fIqHhnyKgoGLg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FRWVhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2Rq7Oxt7PEuba5x8q5usC7trS6ubW8s7mxxWB0saSxmp6qvamlqKuqo6KytaGrqJ+Vlp+ZoK6lp6aln6SUo6extKiys722wr7TycnTxsPFzMLKw8C9vL67u7a0r7i2tsK5xb3Cx6+euKmhq42kp7WIgYF0YWNjX1hjYGpnU1hgVlJVSUVFTUpBPkdEPUtBPUJAPUc+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g4CCeHuLg4d7i3mBioKXfnN9emtmcHVZXlxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbkra9tbuzwry3tsjJuLW6tbe4srazsq21tphkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SeraWqsK24sL251NHP19DKzNLMz83Kxr++wcm8wLzAwMTExMm+x82yo7qwtK6aq7e7mIB8bV9iXlpgY1pkY1FbYFNQS0NBRUZFPEBGP0FIQj9DPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHtKyhoZ+LmZyZjI2VkZqShoqKfoiGi5CLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZmpqaWBmaWlsWm1zlq2kvIiGZ1xvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZe1xK62sLm6s6/CxbSuuLCwu6uysKWqt6uMtaedmqeaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVl4efmqebrK+osKi0tNTU1NbTzNDT1c3Sz8zEwcnQvcnJysnRxszNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhPUEJCSEVCSDtAQz5BRz8/QTc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6GqnqaXjJqbl4uNlZGajn2Ji4WNiomKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bXhzbWmAcG1jaW1weGl3fH7LvsHfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrLarsqWvtKmru7+wqrSmpLimq62fq7SjjrCtmpeYjI+SkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTQ1NHOx8PU0cbN0tPT18zR0cTS1sXBzsfHwqi9t86efHFoYGVfWGJTX1tQUVRRT0g+QEZBQkU8QEE+REM+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hZCQjYuJiJCGfoJ7cX6AgId6hHWFk5CIf292cmtzfXt3e3OCeHJrgHNyaW9xenlxer7Lmn2LsYR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmjpKCeoKelqq+4qqWzoqGtoaOtoaaxnoimmpOSkYmPjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVxZWJhWlZaVFxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOjw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMiIiLiH6CeHN7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bYd2dG59doR0eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJyQl5ieo6OlsaOksp+hpZ2gqJ+isZuFnpKRkY+KjIqGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLm5Krs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfW1RXUlxXRkdKSUVFPTo3OkBAQjlHRD9EQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFl5aIjoKHhYd6hHlxenuDhXV5hY6NnHmLcHxvb3p/cXuAcYOHgW6OenV3fXyCdH58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4uTm6CanameoKuboZqYnqSen6uZipqLkJGNhHyHh4OFi46fmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2NfY19Xb19Pa29XQ2trR1sjUy5Z8fmtrXVxRVVRhSUNGSUg+QT49Nzo9Pzs9Rzw/QUFBREE+Pzo4N0RCNzU1NDc5LzU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYeAd4J5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlI6XkIKJjpaZlpWkm5eelZ2SkZainZmrlZCQiYyRgoyEiIiBhY+RnZuZiYWLgYWYeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZyppqaun6i2v8DBucjKzs7FzcnR1tXV2dXX29TW2drb19ra2djO28aIfXxqbGhiVllXV05MRU5DOz09PDg6Oz05PUA2PT8/PD49PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0lQXVtTVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6foKRiYSFeYSHe3V9dG18fYZ+c36SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJGEiIqQkpONnJmSk4+VjIuUnpyUoJSQjY2Pi36PjY2Kg4iSlpqenoiLlJGdkYGLf6WYiISNgoWEgaWGioy4mJ2RlZaip6Genp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x7bmxoWmJdVFBPSURMQjw8Pjk5Ozo5OTs8Nj89Pjw9OTk7OzM3REA4Mzc4PjYwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlzenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboiohXqhi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OUi4aHi5KSi5OTk46LjomHlZqcj5SWkIqRk4aAi4iRjIqJnJaYoqKGkp2VoIqJiI2bkIOHjn+Dh4akhYyRs5idkpSXoaKfmpKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHKAd2ppX2BaVVlZQ0FJQz8+Pjo0ODo7Nzo7OjM7Oz89Pjc7OjoxOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI6ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXd2dISChH5/kqakn6Wil4qdkJSXi4qol3OKso2EqJKEmZOFmYyilZ+YkoibnqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3IlY6Gh4iPkoyMkZOIhImIhZWZmo+PlJKGk5aDf4+LmYeNkKqXlqKiiJielpqIjoaXl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mUnZujs7Smo7zCvsfGxcnIycLL083N1KnS0dbW1tja1NLazoV1g2tnYWBgUUtWXEJCR0M7QT04Mzc7PDo5PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsbot+eXx3eHyEhot+i6O0qKSrs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyXhYiIjZSLipKPhoCFhoiSmJSMipOShpOXhoSRkJxzkJiylZajoYicmZOPipCKlpqIipaNhn2MmJ+KkJCcmpmTmZiglKCdlZ+bobGto6S4v7TEx8S9w8O/xs7KydKnz8zT0dDW2NLP2Lx1fXlgY1djWFJJS09FQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs1Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3KMen2Be3iGi4mGhJKovK2ps72wpa6zs6mjorCtipq1naO5pZWtpJeprbempKOfmamYqqSvsaqamZyUlZGYoJeau7utyqFptreqsJWYnqKrkpe9pF6psoKJiYyUhpB8jo18g4WNj5SUiIeSlouOlY2LjJeYkZuZtJaUqp2LnJSRjJCSi5iaiZGdj4uKlp+ijZWNl5mdk5yYnpShoJScnaauqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31sYF1WYlRRR0Q+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLiX+AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8PAsL3GvLO0wby0rKuztoyosq2uvaubu6Oorbm4q6amoqKko6qvsrGqnZyjmJuYmJ6ipqWTo7mvqL+8rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeYGGkIyNm4eHjZaMipSWk5CZlpunmrGZkKqcjpqPkY6VkI+Vlo6QoJCIlJujrJWWj5ScnpSgnZuYn6CVm5+np6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKind2ZV9dYl5PTENMQEVHP0E/Qjw6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBb357gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra5ssGupcCkq7C8vKquq6Ojnqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6pxMSkgouOh4iEhpWUjHmDjJCOkaCLi5OQjoeXn5eSmJSWpaCunIypnI6Wj5GQlJWNkJSRjqGThpefoLKflJuUoKGZpJ+aoJuglJmfp6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXh8cF9bX21UTklETExMSkBBPUJEPDVBRDs6Mz04QjMzMjI2M0ExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgY95jaGWqJqbmLq+ycjKwtLJy8LNvcGzrby/p7q/vbzEuKzBqa2zvL2qsKqkpaOsrrSut7Wgn66fpqKZo7S9qZyovMGjtravq5OwrKqsloaaqqelkYKMkqSViYB1iZF5hIyRkJ2fkY6Sio6Lk6KXlpqUk6GeqZ6QpJmMj46PlZaIfI6VkpGimpSgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAuq7Ds7u9wbmtwsLBv5pxfGRbWl9eTE1OS0dFQ0hBQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZViej52Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq2npJjDvsnEyMbTzc7Ny7zCt7C6vbS9y7vEwra2vK20v7m8rq+ooamotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZaVpa2ooJGOkrHFp5WOfJGVfIaQmI+pmJeSko6SlJKknJKcmJOgoaGbmJ6XiouOjp2IWo+Wl5KWpJlmmaOes6WWopasraynnJ+ml5iWmJWho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEcHFdW1ZXUEdLVE5LP0FHRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQk46aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+2xL63ubezsrWzuLOsp5yrrLmrqaiwsJijrqWopKW1wbCrrbS+w7nAubOnuLS3sq+VpK2wr6WLk5SgjXPBmX2WmYSOlpmLsJWZmZSRkZmYpKKUnpqVmaicmqGfmImLjpScX0qWnJqUmaSXVJawn6+cn6WVr6+tppuhppSTmZiOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3JoX11RUkxGUVFQUTtISkhGR0FDPTlLVD9BOj1FTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJ2Xjp2gmqOktcm1qce8xMTJy8nIzM7Hvrqzr7q4wMHNtci7wbm2urKvr7O0p6Scq7S1q6qmrqyapK2mpamsur+oq7e3vsHAvreyssOwt72so661rbqmiJuXpZt1vp+EmZ2Okpiai66WoJualpSanp+onaafmZmpmaCmnZaPjJCcgm11kqKalZyin5CusqKrlamqmKqvpqWhpaqSkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrampjWZpY2JUTU1HSU9KVUw9TERNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjYeinoyjrZSjpLbHvbTBu8LCyMnFws7Iwr25sq+5tcDDyrbGssG8tbusqa2tsaOjmaq1u6aqp6yqnaivqKSrqr67qK29tLe+x7y2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmJadnY62nqibpaKam6CZp6SxoJqdpZynqZyXk46Tm4qWiYykoZScop+gtbClppSxq5qrrZ+fpaSqkpaVoISQnp+clqmloaGztLu2rai1srKenKOlmpeVmaqhnnhkX2FgTElGSE5RSU5FRkZCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdEqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7jBwsDIxL/Nxru+ubKwubS+w8i2wLC8trq3p6SrrK2hoZurq8Sipaispp6rr62iqqi+uKatvrC3t8e3tLi4vrG+wLa0srWvvqOWo5WSmpOtn5ChoaSiop6QvqSonairnJygmqWfvKKXo56hqKqgnJWNlZ6TnoeOhI2TnqSgnbaspp2Xs6easKignKufoo2alZ+EjqGanJKlpZqXq7G2sqqlqq2snJigoJKPkJapn5RpZlxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUlBLPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqKbo5uexaugnqudnK2fkaKelqSfpqqrl7axo6qztsXDvcC2v8G8ycK/ysi2uLW0sbS0t8LGt7+xubW6tqCnrKusnp+gpaTBpaGqrqCkqa2woqaovbWlsby3trbDsrK3ur6yw8C4uK20tLWjnaSUkZOgrJ+YoZ2oqKqimsKsqJ2rrZqanZiln72hnKSXq6urpaCZjZqgkp6Ijlh/lp+moaC5qqeUmbejn7OioZywmKGPmpWego+gl5aOoqOVkKWusqypoqKlpJWVnJiLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVl05Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCeoKCYnsOnpKKzoJuxp5Kqo5+jnq2prJ27samstbHIxMHDs8LDvcfEvcTKvbCxtq6xtbDAxbW6sbG6tq2aqbCqqpufpqGnwq2crbGcqaKusaqkqL23prW7va+3xK2zs8K/ssazurertLatqqKmlZWToquhn5+Zp6qurq+7saWfqamZmJeSoqO3oKGjka6uq6SlnpGhnpSdjpCNlJ2ao5+otaenjZm1nKOvm6CcsJGhlZiVm4CSopaPjqChk4umrLClp6KdoJ6SkpqThYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj44OU5NVV9SU0o+T15ePUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6SemqDCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0x7/Ew7W/xL7KxbbAycK1rLWpsLmswMS0uK+ttrqlmauyrKuYoaeYrbu0nKiwm6yfrrSyp6q6sqa4s7iyucGqt7LDvbTFp76urbe1qaesoZaWkaWjoaGXl6Sut62xtLafnqikmZOUk6OgtqKkpZWtsbGlqKShnZmZmpWYqKCfmaKer7Oipo2Yr5qlrJibn6eTnpCVmZqGlqCVjJCdnpOLqamroaehmp6WjY+ZkIKGlYmVn3pla15sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQldgXUJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKClv6aorq6gqbWqnbevq6OqtLawsLi3sLe4uMW9w8e9vMPCyMG6wcbBuqq2pa27rcHDuLiqrbK8o5WtsK6zl6aokaq5qqGnsJ2qoK+0s6qqtrWsuquzsrq3rLiwwbq9v6bDqrC2rqmrq6admJiqoKGgkZegsK6zqrC4mZupn5mWkZemoLaopaKir7Czq7Gnq5+an5+bnqWdoZido7SwnJ+RlKaaoamclqSimJqMlpmUlpedlImRm5mUjqmpp5+jnJmbk4ePmYt+jZeGj5psaW5ibm5YUVFaVEFDRFVAOztIQDc6WFBkXlFXV0VZX15OTFNPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbygqq+qorC3qaW0squhrbW9r7O4vLu9t7fBwr/Jw7nEw8HAucW9wbivtqirt7K8v7+0qq+yuJ+Xq62prpipqY6nu5+lrbOfq6KxsLOsqrWztbusr7G1rLC1ssC6xbarvK+xt6ytqqOxpZ6lqJ6jlo+Yn7Kpsqmpspmdp5ualIyfpqS0rqeirKytsKeyq7GpopueqKSelaGZnKi2qZiakpKfmZ+hoJKuoZuaiJeZjJ2anZSLj5eXmpempqOgnpeWlpSAkJWEe4+Tg4yXZ21yaHFzYEdZZlZEQ01YRFo5SEI2Pl1RaFxPWl1HW15eT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApZmfpKu2o6yopK6ttamvs7mmp7C3xrext7/Bwra1usW+zMW5w8G6wLrFuMG6s7Ssqrq4u7q+tauvsbeYmKirq6ycrquPq72dq66xo6qfsa2zrq61sbm3qq2vsqi2r7O6vMmzqrW1sbSwr6ehs5+aqKygpZWWmpmxoq2gpa+WoqSZmZKMoqWnsqmhprGrqbSlrq+zrqOZnq2nm5eempmsuKKYk5GPmJyhmZiVrqGfloKVmY6enZqXkYqUk56apaOjoJmXk5KWe4yRhXuNi4OLk2xueW92fWJGYGpaSUhaWz17SkdFNkFjVGlbTVxhS1xcWlJSUmJhTEtFYGFhUU1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRMRZqWn7CosamspKOurbWot7O3o6y0t8m7tbu7wL61tLfDwMzHvMO9t7+/wbjAvbK9rqi6ubi3wresrrG6lpenrqyopLKplK+7pKyysqano7K0sbKxtbC3s6murLKnuK+1s8TFtqm1tauwrqqno7afn6awoKOUm5mUsJ6nm5+pjaminZuVl6WlpLenorCzq6ewp62vtKykmKGsqJycnZyUqrmclY+PjJidopiRmaikoZiFlJeRnZyYl5eJl5CXm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBdTGVsXEtPZF0/YntHSThHaFdlW01eYk1ZWVdVWFVqXU9QSGFeX1BLR1FWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmpMRUSRmaStpKytqqaisLGyqrewtZ+rtbnJua7BvMO4s7K1wsPOxMDCvrW+wMC7v720xKmqubG2t8C8r6y0tJ6hp7GupaaxpZ6ytayqsrCrqKi1uqy1srWrtK2qq6msqbmtsrDHv7ilubCpra2mqK2xpaSjrqOonJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6msrrWuopyjqKucoJmbkqS1mo+JjoiRo6GWj5afo5eVhpCVlJ6bmZeViJiTlZmnnKCgjZOSjpF4fo+FfXx9h4qKcnRzf35+XVNjbl5OWmddRkSWW0c6TW5YYVtOYWJOVlZWV1VZaF5RU01jWltUS0ZPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9rQEhJkJqoqaGpsKSno7OzsLS1sLCgq629zLuuwr3HsrSutMLD0cTFv8KzvsLDvL+4vcWorbestLi8wLGssq2ipKeuqqilsaOqsaquqrGurqyrs7unt7CyqbKqq6alpK66rKqwwrm0rLmpqaitqaexpamkoq6pqKKenKKslaWdmJ6ZrJ2hp6ihrKajray2sLGgqaKgqq2wrJ2ep6epmqOYmZCgqJiGhI+Li5+hkI2PmJ6SkoiIkpahnZaZloeXk5OXpZ2enYySkI6Kf3+IhXx3f4eFh3V0col3bF9ZX25iUXNxXEs7hHxGPld1V2FZT2NcTlVWVVdRXGJfU09PaFhYV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk4OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSmdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGcp6iwtay4ta2qpKqqvcm8sb+5w6+wrbPEw83Ow7/As8DDxLrBtMnErK+3rrO6wL60rq6sp6mqsammqbGmtK2qr62tsa6yrbS7pbezrKyuqKugo56xt6uqrbm2pLW1pKqnrKyqraCopqexsaSnpaGhrJaqoZOboKaeo6Kqo6yinqaxtqysoqWimqmqrqmcoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI6ckZONhY6ZpZuTkpuMk5KRlKOanJqLj4uMfIaCgoF6dYGDgX51d4uih3hqXl9uZldlh2ROQGeSTEVieldiWFJmVU1WVlVUT1xdYVZMT2pYVlZISkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koaqvmKiorbWqtbGqpauqqb3AwLi6tLy1prOvxMnL0r/Bu7i/v8O6wrrBxK6xtbK0vMG+s7Gvraytp7eqpa2wq7iup7CvrrGrtaq2tae0t6uspKqqnKSetLOoqKSztJ+1raGqqKuoq6efq6uoubapqqqqoqmfrZuRqqGdoKSipqKqnpymtK6npamio5ikpqeqnKKko6CZmJ+Rjo+ZjX+HjIeEnp6JhoyMkZGTj4WIlqOajo6bkpKQj5KfmJmXjYuEgHSHgn9+eHWDf3t4fn+InY9wcWZmcHdcYXSIak9dmFZIbXlVZFZTZFBNVVVVUU9YW2JWSVFqVVdUR09YVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzo3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDJAZj1OWD9DLD9MVF8vSWs3UkY7lYyvoKSqrJmpo62usrSvqqSvqai7v7zBsrC5raK2r8jHx9DAv726vMO+u8TCwL+usrOztr28wbGytKu0qaW1qaWts7K4rqGstLGvsbmrua6qrrerqp6qq6CjobWtqKGfr7KhtKqfqKeqoqqhoaytqL2uq66toaeon6yZj7CimKKgqKeep5uZqbCpop+soqGSoaKip5mZqaaYmJmdj4uHlYh9joaEhaSXhoOEjYeQkJKFhpahl4iRnZGTkI2RnZWYj4uGhnh0gX99dHh6gHt1dHtrgoekdmleZWuAdWeIi3xSVnBfS3hzVGRTUV9NTVNaZk5NV1llWUdTalJSPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+NsaCkpaqjpKKsprOysaiksKequL/BvbGpuqqnrbDJxsfQw77Avbm/wL3JvMK4sbC1srq8ucCztbysuayjtKamq7G1t7Glprm0rbS8r7ylra22q62cqa+kn6SsqqicnaqypLOomqunqaSonaKpp6m9q7Swrp2ppKCvnJqzopakm6Wkn6WamqiqpZ6aqaGbkZugpJ2ZlqmqkZmak5CLgo+FfpCDgIifj4eBf42IkpCQhYKVm5SGk6GNlJGLkZuTloeKf4Byenl9e2d2fHt1cXJ+aoZ5hYhkX2djcoV7bWd5XV5WQld7bVRiUFJZS0xOcHRdSVpbaFlGVmdPQz5LT0RDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkbCYn5+ppKKhq6S2srGkqbCmrbnCvbexpLmsqaiwwsjIzMK3vb+1uMG6yLbDtbSztbK9ubq9tq65tr+sorOmqqqutLazqJu5u6ixvrK6oK60tqmrn62xo5ylqKmjnZulsKavoJ+qqaehqZujqKCtvKeusa6hqqKkrp6eraaYn5qhopufm5mjqqKamaOjlZaUoKGWm5amrIyfko+RjIKKgICPgXualY2KfYCMh5GQjYqFk5iRhpOjipKRh5CZkJSBiH16bH12eHhienpycHF0eGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZasmJ+Xp6Ohn6ejt6+toq+vqKy4w7u0rqC5r6uns7rHyse/uMK9r7S/t8S2w7KwurGywLa7vbequbi+qqS0pqipr624r6eXuLyjrb60tKGtuLWnpqiws6CepaWnoKWZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScp6eompubn6KVnJyanammlpueqJGYkpmdk5mWoaqRm4qOkId9h36Cjnx8oY2NiXqEjYWLjo2FiZOajoiUn4mQlYKMl42RfIV8dHB8cXNzX3h4am9xcXBrgHNkemxnZWNhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGjoLarsKO0s6mpusW3s66huK2tq6+1xcfAt7/CubC1vbe/u76wrL6ws7+yvMK4qru6uKentKenqq+rsq+kl7u1pKu6ta+esbmvqaWnr7KcoaSgpKOglpuvpaGeoqivoaChkqOkorawoaaxq5+so66YnaqlqJ+Ymp2jk5qbmp2lqpqbm6WVlJeVnI6Tl6KpopGKi5CGeoR+hIt6j5eKjYd7g4iEiY2PhY+TmIyOlZmLj5Z+hpeMj3qBe3Bydm5vc154d2VsbGxraoVuZnJpamVoXWRzgWBba3ZpWkp/XltYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDKUoaGWlJuqnKOhoqG2qa2gu7elrL7FtLCvo7WvrKyutMPDvLO/urexs7m4uri6r67As7O4r7/At629urWlorKpp6mxqauwn5m/tKSntLWonrK8qailqa+smaKnnKSllJegsaSZnqSpqZyin5KkoKS4qaSnrqaepaGok6CpoqGhmZudn5GZm5afoaqbmpiglJGUl5qOk5OkqKSQiYqPhnqEe4SGfZ2NiouHe4KFh4iKkoWWkpKLkJWUjo2Ue4OYj4t3fnxsdHJsa3Nhd3VoaGpoZ3CGaGhpZGZpaWBqY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6kp5mcnp2jtKynqrq2p6zDwbixrKO2rqetrrfAv7yywrawrrK2trm2tq2qvbOusrG8v7evu7uxpZ+1qaWks6aorZycwKqnpa+zqqy1u56pqquxpZieqp2mpJGYpayhmJ2kqaGboZuWn52ntaawqq6hoZ2eoZWgpqCioJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mgkomKi4l5hXeBgoGdh4uDiX6AhYiHhpGEl5SPjo+RkZGMk3uDlY+Gc35+ZnlvamprZnRza2NnZGR2gWNlZmZlamlja3JbX1ldbGRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRkEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKywwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+MrKGWlqCWpLOxorK9tqGxxby7srGjt6yqram4vLu6rcCxrq6utq+zuLOpq7mxr66ztrq2r7i9rKaetKmfn6+iqK2bob+fsKOusa+3rrWera+traKZnaeppZ+Vmqeln5ikoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY2UlJuqp46OioqPe4JzgYGKmIWHfImKhoaKjImShZWbk5KOj5GXjpB/gI2Og2+Bf2Z5bWdraWZwcmtcZ2NjdIFiZmdqbmxnampobl1sbHJwYFRjaWNmWUlGTE1PWFJRVWFlgFVBV1NZVEdJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUExLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNjq+dmJOhmqmxr5+5v7WgtMK7vrqxprevp62kt7i3t6y7rqyqq7eqs7euprK1sq6psLa2sLO1uqapn7WnnJ2ooKermqe9l6ykrrC2taytn7GtsKmim5yjq6iblJumo52aqaKklpqfm5CbpKqrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCImJqAloqikHmHlI2DbWl/d4NxbIaLhn2FjIdxXmNhZ4SYhWuKjZSSdHeLhH6DkIBnh4BndWhlV1xoc25NUGljZ3OFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KR1BQVVVMSFNhcHRlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwsMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5qToJuqraqjvcWvqbfCt729raa3sKWqorezsrKwuayppqy0pq+0oqm3traop6y2sq60rbOhqZ+yqZ2ho5mkpZiruZOlpa+zt62upamuq6yloZ6coaemm5agpaSbm6emnZOenpePnaeppLawpKOinZaYl5ejiKGOkpqGoYeTnKB/pX+lqp6SkpqRiIRzeI2OhYihdoqNaZeIZn5zeKBviIeEfo99f6GgoJmAfYeec4aOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFleaVtsbFuIcm56coVmhoRaX0dOP0dfTUVSVlZRUVJXVWddTVZIUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq52YmJ2fqqmnqr/Dr7G6vLbAv6qlt7CorKWytK6usrWpqKWwraW0sputtba1pqeosrCssqetnamgsKefo6KYn6GarLOTo6Wltr2mraerqqyopaGgmKCmo5mYpaKjmJykqJaTopuTkqOlpqG3pKSgo5iVk5eTnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBnMZ5eLGlt5dlgMCcv3mEhXqShHyQkJHKcpe7nMV6crWnupB7gG2WsauweWhsWLGubmVpvJK8bmd6b3KP2H5Ta2O2sn6BcpRzmqGqkFdPV2JPVk5GVVtYUVFTjV1XW1FBXERRTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5yepayyqbDCvbK1wLW2vsGrp7SsrKimrrOpr7WypqeltKWnuK2cs7K2q6Wkp7GtrLCmqp2mo6+ioJ+dlZmenK2rk52in7O6o6qpoq2upaGcmpqip5+XmqefnpeepqeRnKaZk52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWyhkHaxX2q0W6WAZZyRYGeDe2d/anhrqWW+cWemi3WxanuxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWmCMq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06KT1dXL0lUU0pERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0wMy4zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVg62npZ6jpKqxt6y1vb+wtsSyt7rBpqmwqq6oqLCuo7C5rqOkrbKjqbinnrOzsKOloKmsr6uvpqeeo6GvmqGblpSWmpqrpJWaoZ+0s6KrnKOtraCemZagoqicmJ2jn5uZoaakj5yimZegn6qepqagmqChlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuCpnuChoiTlJN3q2drsVyreo2GlHSJco+HgH+IkJd4goGLl4uDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15RqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sntYWEEjTWhGQ0VBQEExOT44ODo4NDs5OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMT08U31uMytYalxPWE1fZ1c3SjhhVTUwG5SglYizpqahr6mnsqypu7bCsLvBrbi3v6msra2tpayxqaCuu6qgp7Oso6u0o6aysqejop6nqrGnsKelnZ6erpWemZSUlJedrKGZmaSota+iqo+qqKqbnZWXoKWnmZ6do5+bn6Olo5WbnpeZnKKpm6aanJuioJeTkZKTnYPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WCeqx5j51Wr3qIfp9quVq5doaEfqaClHuXeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1xUFxRT1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7G1tLqytKewr6KvsqWfrbWomqe4raKvsJ+ztLCgpJ6fpqmwqLSoo5qcnaqVmJeVlZOVoKmcmZanrbCpo5+PraOolp2Wm6Gln5ehoaKhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2if5Ghpn+xdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnizZZd0hJ5vnmeUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSjk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwop2SpbGto6u8raa0pqe2u7yyur62trS5uLKktLKgsLGinquvo5emuK2ksbCctLepoKWeoamksaesqaOZmpmnnZWTl5eQkaGmn5WTpaqwpqKWk62gppKUoJukpZ6UmqWnoZqjn62ZoJ6ekJWboZ2cpZWdlZqin5WYlZGahax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6PnYaamXavhoeRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZWlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+ubextLq0pLeynrOsn5+oq56Up7WrqK+xqq2zo5upoJ+nobWmpqmimJ2UpKCTkpuXkZShpJqSkKatr6ahlZmqoKOPkaGYp6SglJqlqJ2cpJ6tnaGcn4yTnpqdoJeZm5aXoqCUl4+mnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/doh0qIGOm4ySpHuUj5+Ee7JenWSgfoOVbZJdq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1c3SpuWWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS46PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqawauXtMKuq62ppbSwt7C1vrm5sbC0uai6s5+vpJ2kpqaek6mwqa+ptKuprqGYoKCmpKO5oqKroJabkaGflJOemZOXnp+QjIyosLCnnpebqKagjJKklqaqp5SYqaednqCiraShnqCMlKGYn5+RnZeclZ6hlZaNqpyPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uHCNe4uiamu2WqGFZZeXaaGip22UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXa1gTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RbUj49bnAzQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnryhm7LArq2rrKe3qbevtb+0u6+utrWqwLWoqaGbpaOhnJGpqae1orKnramgl5ynn6SruJ2irJqVmY6jopWMnaCbmJyfkZOUqrawqJmVnKypl4yUpZejrKKRlquxo5+epquxmaGij5iilp+blZyWoZOdqZyUj6qZh9SSmrtzsMOAw4Z91ZabuHiIkJiMl4uMp4h6pLZ1fnd2woKasmCDunnAfHW4Y7WBjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHWHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2NteG9ZXFpDQEBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bDsLiwrbmurcCwq6OinqOhnJuQqKOqsqS0payknpWaqpimrLicoq2XlJ+PpJ+SjJyinZedmpGWkq+5sqyWmKSop5SQlqSbo62ekaCoq5+an6ijtJ+ipI6nopSimpyXlaOYkK+fkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHGAc5G5g32HhoyHjXyKh42YfKS7ub2cdHm0o3R3l3Z0sHWZnmaHao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05RTUQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOSpPXl09KzpWVSc+OzynnqGiwKWWtcO0rKuorKupuq6wxa2zsq22prO3q6mhoaWeoJ2Zk6qjrKmltaenn5uVoKOdq6S9pqGplpObkKGbkY+hp6GSnJeUmJSxtbetmZ6kpKKLkpKmm6Wqm5WppaWbmaGopaekqqCRrZ6XpJ6Xl5edno+vqJObpaGNan1pm6V3hnJ9mo50eWSHe72+wLpvk4Nylohhc2taXpuJYGOIj5VrYICWZG6ed2OWbICalZRlXmBicJmIaXKLfYaVZ2t/cnR4fX9iW3d0gWhQXG2DfXuLa1hreoJzSkpvhnBOdExFWF1nYUxbV2djX09bbXRpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NfVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGln6KnnaObmZmrpq6jpLSopZuXlKCapa2ovaeopJSTm5WfmZKXpKmokJ6RkJicsLK/rJynnqeiiZORqZqoo5qaq6CjmZqjp6yjoKuimrGblKeglpSdn52WsKSXoKeYm5CcnKGhl6ShmZyZmZmPlYFnbX1xd5KYlJKGjLarjYaYlY6KjJiWh5SVi4STlJKJjpOUmJSYlpmfoZmak6CcjYJ6pYVta32QfYB1ioqBcYJ4eXZ1iX98impzgXSDdWV3fXdrb3ptX2RdcGhNWVpmamBXWm94bW1mVVBGUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOhs6LAoaSysragqaWyp6WwtKrIqqyvpbSlwKezoJ2kpJyjlZWfqqasoqO2q5+YlpWfl62ppcCeq6OUkZuXnZeSlKGenqKnk5KZqKeyxLCbq52rn5CWlqidqpycn6yYoZucoqSvp6Klp5+umJennZmZoJ6dnK+gnKGllJaRl5Oen5ShnZegjpaTioqNjpeukHyWnIOSgourqYWAmZeJhJCeiHqEkIiGmpKIh4qWj5uXjZCXnaOVmJKQnI1/jmehs6+FioV2e5KKfXd5em9meY+BgIlqdYF5iHNpc397doOHgmp1ZHpmYGplY2Rma1lse29pa11TTFBEXlRGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVFxRMDVOWzE3RTRbRzU8LEC0oLmwv6ysr7KxoKqmsq2irLOvxK+pqqKxrbuis5ufpqKhnJiXp6WppaSlsrWelJOdmZmvpa2+oKuikJGdmZmUkZWhnJeonISfq6yjtMi0oKqkq5eWl5qmnambn6SrlJ6fnaCqr6mlo6uir5ufoKCYpJ6cnpyuo5iep5KWlZuRo5eWp5yalmWCknxlfo2akGN5jm1oa3uSpatqZZuYfWeGimVlaWh7jqKPbGiNmJGjd2tqipiinpdza216hI6IelhmXoaDXm2MioF2XGhzd3aRgIiCbXeBeH9zbXmEdHaJiI+DfGqHWV5sdGRec4lpa3xwa2RfUk5YSWRYQUo0PkY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pqC6vbqvrLSxqqWora6wpq2tsLywqKajra6wnquWn6OdoZmZpqqcraOlp6myrZ6Uo4+ir6W2uaWuoo6OmqGZk5KaoJmZpZV8pq6jqLTEuKWip6+fnZWeop6jnKOpqJKfoZ2hqrCrq6SqoKqbp5+noKyWoJulr6OWm6mUn5uZkaOVnKmXnX29g4hytHKEnYataHi5xLhxlKOjeqaZmXKrgnzLwMC7cYyjiIOefJeZiZ3AvYGWnZ2MnMHBfIJ8k42aw8B9bKWyb4yBb8p6f5t2kIOOgXV5gIB5cXp/h3B3hYyTeW14lGNnYHhkYGWCYl5zZ2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OENDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavqp6rmJqin5yaqqahnKuipKijpLSknKKSpa2rt7OnrqKRkJmcpZKRn6GYm6CdiKetpauuwMCxoamvqZaSn52imaKkqqOToKKdnq2vqq2no6OooaWlnayokaOaqKypmpynm6qflJajlJ+hlZt/zpR4eqSBeZWWm1+uj16OqIKjoXynlptzq4OAr15jjap7qIeFoHSXk4izY4KrhqCNjbNqhK91fZeIt2GDrVqjzW6Qdnvae3+ZcH2HknZ9ZXqHdnZrfIdufYaRkX5tg5Bgcm1waGBgemRccWdpZGdgUlRTV11LT0Q1QUhERDg+NjtAP0E7PTdAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqoqumrqqfppuZpZecoq+foJ6op6KloJ+wq5qdlaaurLCqqKuflJGan6SSj56kl56no5+upqyxqL/Hs6ipsa6Wkp2coZefqaqflaGfnZ2usKmsqpyoqKWiq5KsspakoaqpnaKlpJ+un5GYpZeemZOTkZegcYWMl3WFqIZxsX2ecqx/op+BpY+edquCfa1/nHOtf6yHhp92mZJ7fJd+qoeijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZkhW5hd25yb4mKko+DbpKRZnB1dXFhZ21lX29paW9nZFhUXWFaUlNDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXFtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPjEpM1dARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaWoqaatq6umoaOdmaKVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaKhkpSgrZudp6SwraWttau6zbGtpq6rlpWcnaKZnq6snJegmp6fqbOrq6ubrKulo6yarrGhp6utpZekqaenr6CRlaKimJOQhKRqpHWJeql0erJwgqaKmYxxiaCbh6RgYFKrhX+ug5t2rYKohoWfe5mXhXpmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjJQS0wjIEE5RDQsJ8PJ1tS/oZmrp6Cvop6wtLCuqayip6WoqquppKagm6SenaWnp6Ocq5mirKCjn6+hnJqSq6S1r66gp5qdlZOmopGboqigoKadsaamqbKtt8iytaqrqZaRnZyimaCls52aoZSdn6esraSwm62ro6OqobKtoamysKGZqKesrbOhkZShpZaZkHuqbJ6Eh3WreXywb4KljImflpaglYHSuLS4yYGBsl9glKmDpYiHoHqZlZp4qsl0maSVqKmRk5qNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OHbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWtfYVlkblxfWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqekqauqpp+mppiqo5+uq52loKyanqmlnKe2nqKXk6mqtbKsm6WcoJSPpayRmpyno6Gqp66ipaeqsLXDsbOqrKiUipecpZuho66ll6GVmZympq2csZ6uqaefrKO2rKCxuK6dmq2msLGwopKWpqGYno2CnU54moF/n3qEo32DpIWHpp+dn5SEuHt7ebmCf8zGwrZ4m6GRi59+mpaXinafl4qlmKSpf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjXd7c4Z/cVxubnhyaoJvW2RgaW9jZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eYqaukq7mqrp+boayys6WeoJWlra2uqqecpqebo6ihs66iqaayoJippJSjtqKilZeiqbS4o5uhnKKSj6GxmZ6cp6ahorCunaapo7azxbGtqaypkYeQnKidoqScpZeemZqapqWrm7Cir6WmmK+ku62htrWsnJyzsLavsKSWnK6eopyFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWBinGqhoW0bnJqmqSclYqffZiZhoePc6+CppyjjqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY56fnmQg25qeWl6c2+BdV5lZW9uZmhgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJyjIqtvr+8urSelqekrbWhopmUoqemrqqrmKajn6Whobano6insKOUq6OOpK2inZCamqqzs6ScpJyokZSWrp+fnqeknaidtpujq6S2rMSwqauooYyEjpyioKajlpmanZmcmaemp5mtqK+jpZuspr2slLyvrJ6hrrG3qbCkmaevoaaWeaiRfXywd4qApKWInG2ycKGHrXyhj4OolZiArImFrYWglaqgopeGn4GalYB7kn6rgJ2bloureJ2hkoqUkoF6r16kgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpqOfHyEmYBrbn9jf3RugHpgaGZxb2loZ0NZYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGBhYV5dW1pYU1BPTkk3MDQyLiosQVRWVlZVVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK23paOOm6SioLCvqp+loJ6tmZ65oaOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoZ2loJqlna6Yoqmnt6rBr6Spo56LgY6bmp+mnpKUmZuVm5qmpaabqqytpKWfqai+pJbCq6mhoKqwt6mrpJ6yraaol3WvfpCLnIWHfrqtipllsI1lla19oY+Ep5WagayKhLCFppqkoaKRhaFcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tFmyfVKugHqsWIChbpiPqJyMmJKamnx6kaB/ZHV/Y4Z4dYF9YmpncW5nZmVQVWRcQVVgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYGBgYGJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktamgipqgnpyzs6mfpKGetpmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+pmaKdpJ6Zo6OlmaGjqrOqva+kp56dj36Lm5ahoJiPkZqckpqYqaCjmqmuqKamoqWou56fxaajp5+ps7OqrKOduquqq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviKecm6arkX/WvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqedkZySmqB7g5OefGN+e2WPZ3qDfGFsZmtrY1FhW1NqXEBVYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpbKmnYuYpcCquLKoosCnqLOdn7Kduqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnqabmqGpo5mgoqyuqrqtqKObl5N9iJmRppuSj5GYmY+YlKmboZmqqaGrp6CjqrqeqMOin62iqbKyqK2nnrilrKyZc3aqpbiGZImgcGiukYuRbm53pJCZn4F1rpmUcI+LcZWopJyYr6RzbW1sZot4b26CmXGBempxaWeKl5aYcWlphohncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZH+Nk4+imZmak5mhfYmRmHdmiHhpj2x7gHplbWRnbWNLZFhKa1o6UWZFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOzqpiSv7PFyr+3qp/Bra6koqisn7qjpK6rraaOl66pj4uFlZatnqWpoJ2ko6CRi6WSp5momZejq6GXnaamqLC7q6yam5KSfISWjaWYjZGRmZWOmJaplqCZqqOcsaadoqu5n6/ApqOxpKuur6irqaW1oqy2lYqhqKa3nYmWo5mIqpuRlZ2SqbOZmqOqoLKWoqGdn6KcoaWilaynjZOTjIeTnJ2VkZmTmZGPlYWBpZuYlo6LlJSMkIeEfmeJfnSCdXOHinCnbHqTkJOSgIGNj5CPnZWil5qZpYSJl5B0apF3cox4eH16am1lZHBlVWBZQGpcSGRiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVXWV5gYWNdXlRRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtrGQjqzIvsa8uqujpp+dp5+xqaO2p52ptKaokZisoouHiY+cp5Wro5+Yp56ekpSjl6iap5mUpqKlkZunmaK2uqiqmJqPjHyBlIuhlIqVkZaRkJSYppCgm6qgnbajnaart6euwK2itaWura6qp6extp+supiRpaSmtqKSnqegjqqgjpOfo6uwmqCjsKiwl6OgnKOqnp6enJasnpOaopuUkJarmo6ZmZeRlp+RiKGelpWGko2RjpWLgX5li4V1hnV4h4JznGqFj5KTkIl9i5WSkpiUo5SfmaSFiZuKfXOXdHyMgHN8f2pvZV9xamBbYFpuZFFhZVFaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTVFVaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiY2FhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW9sK6to6SbfJ+ksqSlsamXm7mmo5OZqpyOhoqJnKOPrZ2ilaifoJKWmZuui6iVj6iaqo2ZqZCfubekpZmcjIh5gpSMm5OKlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wirq50oruhsZ52d56or7iTdKujnomAq39kXGJ2oI+ln4SYfW2Ss5yjp62qo2Wen5JzeZqYcICYqZhtf6KoimWcpp2SmJiWjZKckIaem5GXhJKHj5CSiYV3ao6GdoZwe4V/f2Boh4mTkYtadZSQZ2iQj3N8qJycZnubioV5mWqGjIRveoBrcmVgd3Bsa2lcZmViYnFUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1VVWV1gaGZnWFFKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6vrKuppaitoqetpJKWq7axs6ebq6itmHSNn7GgqKunlJe5oKCPnKSdkX+JiJuejKuZopWnoZ2OlpKehXWtj4inm6qSmKWKnLu0p6CZmIuJdXeTjZaTipORkZSNkJShj5yhp5mcspWAjJu0nLKMko66pZ99p6F5oKy1f42NpZ6Di4aQsKqvjYuXpJt6gYushZydoaeop4eVhZh3pZt6iJyAl6eCgXucs3qKhqGYmpWYloKRl5eEm5lje4eQhY+QkouDbXCOh3mAcH+AhH6Fc4WDlJF4lmiSdKCadX2ZhKOgiZh/lY2GhZprj46HbHl8cnFoZXlwamxrXGVsa2Z1XV5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lcYmFoZlpRSDlFTDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6asrauorKCnsKamqaWZlK/Iv7Gil6iqt5+RhZ6tnKeioI6Qvp6ajJ+aoJB8ho+Yl4esnKKWn6CRjJOJhYCSp42Ho56klZmfh5+6sqedm5KOhXF2kImVkIqUkI+bjJCSoJKYoaSWnquHn7SJtJmtisqHqayItoWMr4Guq4KojKaYjZ19qI9ze3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbOBoX2hlKGQmJeBj5Sci5mSi32Fk4eNlpKJg21zj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYSagY6QiYyacY+Uhml5dnx4aGl2cmhobF5kcG1nbllnR11STTNFNTdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiZGNgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufpLewqaummpSgo6SspZimrLmksIGiqZ2mnp2JlL2Zk42hkp6PeYSXlpGHq5mbm5mhhI6Md5qcj5+QiJ6lnJeamYejua2kmpyMjH5ibY+Lk5CNkI2NmIyRk6CPlaGhmaGnfqGnh62dn5atj52cnJCEf6CMqKyFo42pmYyaf6J1gZmUa4Ktdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpi3iZ5+bmBkWYOXgI18ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpnoG1ccI5+Z1pghIFjWFFwd2ZudXNranBea3FubGpZaU9dWUY5QTVIRF9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaG1u6quopmYoaKlra+hnrC2pKmToqGgp5yajpm0mZCLn4yVi3WBlJKMiqaVlZmenn6ShYWspIebkIqZqpmbm5KIprGnoZWaiImAaW6Ih4uOjoqLjZKMkZOjjZSfn5yipH+TgY+ioJOfdpyVj6eBn6V+haeqgqV4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9lHSibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2NzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2ZtJdzfZifs3V0XJ6yg2tjcHV3cmlwWWxtc3NnXWpeYkxFPUQ2UUJaczM9U0dgSlI9PDM5NTo5NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkZGBhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42kt7StraCaop2ko6avnZyzr62UmaKaoaWZm5Wfq5uLiJJ4i4VxgJaNiZChj5KUnZh9kImNqKGHl46JkqSVnJuNjKmopZ6Pl4eEfmp7h359kI2Di5GRiZCUoYOXnqCdn56LiXecmKGMn3Ghioeph5qkjpWlqHytjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml6pf3m7a36qXI6EXbRoXW5yenhsalxxa3l6ZGFnWGJCUkZPN1dDUm81TFtbX05aREEyNTE8OjdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7qxr6yeppycqaCfr5yesqmun5ilm6GgmZeXoKOZhomNaoiAcnuXiIuWloSRlZiQeoqElaScipSPhoyfk56diZGpo6CajJKKgIBpgYZ5f5eMe4mOjoiQl5t/lKKen6GTmHJon4mejotwkoyBqYaYnaGlnqV7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm50fpVwmnRrpF6VdkhlZGF0cn9/b2ZhbGl3fGVlYlFfV11VV0BaRlFoRVRXXWJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2VjdmxdZWdma2RlbGlpa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqVoq2lo6mQoJ+em5qWmaGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJGhm3OQkIGJmpahm4WPqpyblYuLinyDbISFcYKhjHiGjYiIk5mWfJOkoJ6iiK2GfbWEjZ2ce6WWeqmAlJqPiZ6ae6dod21+mXShc3J8noaZcJODrn2kg6WdmYCjb16pZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZttfHCWbX9yonJdpGdzpmBopm2b1Jp+hptwe3uYbJx8eJhzbqmkZ2FlenKAhWxoZmRvdnhoYWNTXGZRUmJIWUpVYVdUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjX11dXV9oYmFpZXxkXmRnZGtkamxmaGxol5p/r6pUXEt+qa+xs6+yo5uZhZmpoKKlj6apoZqri5uZmZSZk5KhmI6HhXtwfYRofY+DlZuAd5GOj4lvf4WOkpJsl5N8iZKUpZeDj6ublJKLhol5g3aIgG6Cn4Z3gJOGiJmjmHuUoqOZn4mzoaK2i3qsp6SupXCpgJmOhYCZj3qkgKGZhphynoSkrq+Kl4yAjaSNlYOtoJN2tba1yaFzlIuBn2Cel6lteZaHoJt0ooh3oH6Tl4uBcE1mo5Jwm4dzpXt5dGGDgWt+oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbnd5mGqae3aYc1FFfbNfandseohna2hjdXZxb1dfVFlpUFNoSVdNWVRWXmlsb1ZoV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxnbGZjZV9cXV1eaWJkaWt7X11kZ2NqZm9tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICXqqKjpo2mqJ+ep4SbmJeOl5CPnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkYKMhZ2NeY2Ml6aUhJmqmI2Ri4GJeoB9i3hwkKGGeoGVh4mWoJZ/lKSmm5WVg2ZueJxsomR7caV3m5hwZqaAlIl6pHqfloOXc553gYqVl4+5bpGKomJ9mKCViG5yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJZXlpioWxdiItuen1zcmSlbXiiZGenaJlzjJlwonBViZBvoF9mqFWLXlSYbm50a3ODbnFpbHl0a3BSWVdXZlpUbUlaUF1JWGlpc2pZbFdRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbGZrbWOco5eleWRzbYumraOpsLGmn4uAmKudn6eNo6KcpKOBlpmUjpqQi5iQjop7h3GAiGmLi3yYm3N1iX6Qe2SDh5SJipWZgnyIh5iokoGjrZGGkIuCiX6AgI5yaZCmhH2Hk42ImaCPiJOppZyIpniVm36kiJaLsZidkIKvl5+kdZOFeKlzpY+Emm6kooyShI2Du259pa+Dh4WGk5Wcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpGUX32ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ+ujLZ0d76NpJNag6eOq2F2c3VyfHVxY2t/b2htVFdbVmFiXWtNXVJeSl5tb3dgW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYOAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYmxqd21nbG5ilaSpnIF/naOWqamdqKaupJmKgpismp+mipymnquehY2bkIeckYWSjYyNdId7iIRvjYV+mJN0dIZzkoJtf4uRh4aTjn17goeZp4+Ap6ePgY6JhZR2goeSbmyLqYGDjJSOiZ2fiYyUqaKfjn90k5eIfoF5lK6if4GacY+Gd46Jgn17cqeMcn59epiWm4SQeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+AgIt3dXOUdW95bm2HbIOGXnVnd45lf4CEjKiafXR7lWqJiHCBdn2Hd25uaI10enyYeIVcbFh5j2lveHNycHh4cF1sh29qaFdbYFddZmtkVmNVX1JgcHl5bWt3Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF5i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGtvYY2Tt6imiaCimqajmKWcq6KhhISYrZKeooqbqJuqmIOCnIx/lpSHjoqJjXKDfI99fo+Ee5iPdHKEcZWFe32Si4aGj4R5foCIm6WPfKiijIaQkIWVgoaOmHZyhKmGjpKdkImfnoiMm6aen6qDiI2Vmn5+iZatp4+SpY93b5uOgXiQbn6ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GBfn+Mal1qZXuGhImAYGl4ept7gouCdYGFgWd3ioZqYG9xgHVecYmAiI6mlIVli42DbneLhHGGj3pxaGlmfIR7lltda2hudlx8enh2b3Rzg2hdbotsbGNaWl9bWWxxXF9hWl9eZnR/fHZwdWRra2t8fXN8eXVlbnVobXx+d3p8e3l6gIB+b4WJhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N5b2hqbGCLiqmwoY+ioZqenZeemKijon6Dma6OoJWJnaORppWAfJiGfZKZiYmGh4pzfoGMdoWLgoSXinJvgHKYhoN+koOEhomAeoGEjZyhkYOoooh5jpeIlIqLnJeEg3qtgpGYmpWKnp2HiKGpnqGho4qHk5uco5mVqqGnpp+SmoaUi3p2jY2Dp35/k5CSlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDhpGLfImehIeMkImJgYWEkHd8enSaoImGip2JhJN+fYqAf3RucoSBfXaFhYmOpZCChYyGgoyQjH2IjIqRhHpuhIV+eplrc2lhdItxfnt4d3B4dYJdXm+IaW9gX1pdXVNoclZkXV1ibWh2fH10b3Bla2ppf31ueYByanBxbGeBe3KCgHh/fX+Eem2CjIZ8enh7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWh5enFnaWtljIecuZ6WoaCYlJiZlJikoZ98f5qsj5+OhqCdjJ6WfXmVhHyOmYqGg4SHbnmBgXOBiH6JlIRta356l4eDg49+gIeEhXyHhY+cn5OIrKCEc4qQhpKRi52RfY17qoSOk5iWj5yXh4ebpJ6hmZyFgpKamZiPmaafpJybj5V/jod0eoaNhKV7fI6QkYaZq6KelJ2QjqmNkICdjIiTmZ6Cj5d+h46Db3iGcnVgf4SQhnSMmYGDj4OHhX+FhJVueXZ0kqKKjIWahISMc3+JfHtxcXqGgnp3iI2DkaaPhYOOgIOKiYp3homLjX5ybYCCfW9pbG5oXnqAaX59d3Z3dnt4XWBxfm51YGNbXV9SZ25VZlteYmtpdnp/cmxtZGtqaIF/bHSCbGx1cHpwhnluh4B2goB+hXZxgo2Ifnt8fH97gopgaHtqdWlpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuan5+fe3ifp5Gci4ellYyZmXp7jYZ9iZGEjIKCg258gHlzgYV+i5J9a2h9gpeJgYiNe32GhIZ8j4KQnZ2TiamdgXGLi4yShqChioWMfKiRiZCSl5OWk3iMop6fnZWYfoCQmpiSi5mioKOYlZCZfIuCd3+Cjoagf36MjI98mKWiopOakZCmjI+BmpCJkpabfpOSfoeOgXV0gnF3YX6BjoZxi5d9iYxyjH+ChYaPaHhyeIyYkY9/ln6IiXKBhnt7b3d6ioN5eI+LgpWkk4qFj3uGhoeEdoOEiYl9aHN+gXp8cm1saF9+dGl9dnZ0fXOBa19gdHZwd2RjWV9fUmtpVmZaYGFpanZ5gnJnbGRsaGaAgWtufmhvcWx/eYd6bIyBc4GBfoF0doKNhn98e3+BfX+PaXKDbnRpYYdobGJfcVZ0b2xtYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnnx3paGOmICNo4uJmpZ5fIaIf4OJf4mCgX9yf3t0doOFfouReGdjfYaXioKKi3h8gI2DeZaClpmYjpehm39wjIKRk4alm4eMiYOmloWTi5aXk5J2kZ2foJeTlnl+jpeXjZaanKOcl5GTmXeNg4F2g5aNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KVmX6YjXyIjYF2cX5ue2SAfIuFcIeTgJGCbIiDgYCJhWZ1b3uFkZiLfJN4i4h7f4Z7enB9d4iFeIOPh4qXoZWBg4t2iISDgnd8g4qGeGF6en91gHlobWZif2preHR0d35yfWNkYXNudXJtYVphXlttZVNkWWFhaWt1eYZyY2tjbWZofYJsaXVobnBqgH2DeW2QhnKAg4N+dHyDjIF/fnqCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5l6l52MjJmQeXyBjH58hHyBg4F4dHl6dH2AhICJi4BkX32LlId/hIZ0fH6Lf32YhpeVmI2kopiAc4d7k5GJpo+MjoqToJKEkpCUl5GLgY+XnpqRj5Byf42Rk4icnJ6ll5aLk5Vxi4uJa4SXj5l6h4iPiW+XnpuklJaLjJ6LhoGRnH+SkpWGmYh7ioqBeXJ6bHVsfH+Lfm2Fk4OVd3CDhH5+i4Blcml7f5aXg36NdJCHgniGfXR2fnyEgHuBi4KLk6OPeIOBdImHfYB0doKJhXFifHZ7cn5wY3BkZXxjb3B3c3l4dHVidmBwbHZub1xcYF5ea15RXlljYWludHuKbGBqZWtjaHeHbmdtaWttaYJ9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfpKidioqShoqdi5WZfnivmY2XfZ+UkZeUiHd+fIp9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGgIOCcnqAh3qPkomTkp2Tpp2Vgn2BfY6KkaOJjoqNmJqNhpKZlJaOioiMkZuSjoyMbYSQj5GInpmioJaUiJWPbIaXgmWEmI6TeomEkIpwlpuVo5STiYuZjIF/kJ59ko6SjJmOe4qFh3NzdmxxbnV8inRvh5GPk3F1gXyBgYh8ZXBseXyZk3yDiHSQiYBzh3huf3yAhXuEioaBi5SnjHqGe36LhXh+cXCBh4VmaXp1dnF8Y19xYWt0X3Fre3p5bHNxZXleb2xzbXJYW19gYmxbUFhZZWNocnJ/iGddamlnYmdxjW9kamhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp2cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTjoehjZaUkIB0fHeFeHl/cnN7hmtzcHpui3aAgYdvcFtZfpGNh4B/f3V0gYCAoIeSi5SemKKVmHmKf4GNiJydio+GkpiWhYmVmpCXjIyNjYubiY2Pgm2Ji5CQiZyWoZuXlISWhmiCoYFlhJyJkH6Lg4uBd5OZk6CTkomJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdISPmYtxd4F1goiDeWZybnWAmY57h4R5k5B5dYdzb4h6hIp5ioSAho2bood7g3WCi394eW5sgYWDX3R1dHJyeVtfcWFwa19wa358cW5ua212YXBva3FtWVliYWJvWFFUW2ZnY3VwhYNjXWttZGJma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHiFf3iIhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHR1dICDfqSVmq2ep5aFjYR/l5SDkKB2jKCUk4aLm42Wjot6cnl1gnByhXRxdohscG52bYh2g36AbW1VUYGqlIaCd392cYN6g6GDk4KVlJmdk5t4kXuDjJKjmZOOiZWZkoSHl5mMlIuJjo+GnIOPiXtyi4WKjoecmp+alJN+knxmg5qFZoWfh5GEkYKJcYORmJCcj5CNjI+Md3uRkHqOi4ySlox8iHyAa3dqbmtsbHt/YXp+j5eCd3uCeIOMfXlnc2xzhpWLfYeFepOPcXmDb3WLeYiKeYh7gIqOnZyEe3p2got8d3FqbIKEe2F5cW9uc3RWX3BicmJgbW96cWlwZmdzdWlybGJ3ZV1XZmFhc1RRT11nZV55cIl9YF1pcmJiZmaRal9oZVtncH5wbHF0in12fIaAdXZ+jHl7hYF4iINzhoV+jIyEfHmVeGZyaoNgiH5vb2t6YGpudH91X3R9eYd4dHOFfXigj5mxnKWOgot/g5qIgIyfgIualI+FiJiOj4+Ed3R3dIBxb4V0cHKEcGtpd26Dbn19bXRyUk2C38iS1pN7cHWEdoWhhJR4l5KZnZGZe5RzhZCeoZOUkYqTnJSGf5eWiI2Nh5GMh5t+jYB3eox+iYyKnJucmpOReIx0ZYaPhWuHooSRiJaDhmOMkZmPlouXjIyKinF6lIh7joiKk5GJeYV8f218ZXNva2x6eluBeZCQgXp+f4CGjnt7aXNqc4qPiYGFhHyUimt9fm1/in2KhXyEeICNk5mYiXx1d4OPeHJtZ3GAhW5sdXBpa3ZvU19wZXBaYG1zeWhsa2NneHJwcWRgeGFgVmxfX3dRTkxiZ2NdenKKdl5dZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fYtzf4Z/e4l/comIgZGLiHx+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOPh4F0eHB5cW+EcG1vf3NlZXlxfW15fWpna2OkmsHcrvChc2x2hXeGpIaTb5iSlqKWnIGScoaLopeIjpaLkJ2Wg4GWkIWJj4CQiYiVfYZ6dH+Jd4eEjpyamJiNjnWJdWyEh4l8iaKDkYmchIVei5OYi5CJj4uLhIlte5aBfYiFiZGPhnaFfX5rfWR4dmpueXNYiXuSiIV6foGBhox/eWZyaX+JjYmCgX6LlYRrgXVtho+BjoJ9gXh+jpSRl490cneHjHVzcWd2eoRjdW5xY2t4aFJhcmhsVmBvdXphcmRgaX1wc29bZHJhYlduW115T01MZWdiXnd0im5dXWR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJkd3mGjGl2gIlyf5yGmKebo5KEfXGMlHd5jJ6FhaGNj3yWjYCaiIR7c3dwdGpwgmxqbXx1X2F4d3txdXtnYGR869q1ycPch3NsdIJ3i5yKj2uakZCelpSBiXGFiJ+NhIuWi4yYlHyNk4iDiZB7j4uFjoB/dXiDhHKIgpOclpSXhIt1hn1ugoCHhpihgpOMnoOJYYOUj4eKhoqOh4GHaXyTf32DhImOjYJxhn5/cXdodnNqdHdsWo19k4OFfYCEgYSKgnZhcmuHgY6JgX5+kZB9bYFrd4WOhJCBe4B7fY+RjpSIbXB5jIV0a3Fsc3mCYXVqcF5teGFSZXNpZlNgcXd1YXBgXWiDcXRrWGhpY2lZbldcdk1LTGZnXmJzdIZrXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHSFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHmGcX9vZ3h3koJkdoaFcIqWhZmhmqKKiHRvkoxxd4+cfouaiYl9oH+EmoCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto6RpnhvcXh9cZSSjohrm5CKnZOMhntph4uZhoGSkYaHmI58jY2BgYmNe4+MfYiEenN6g3pwhoCWmo6Tk4CHdIKEdIF9iJCbnoaVj59+iGKAk4eFiYWLjYCAg2d8kIB+f4KMj5B+bYN8gnRsbXd1dHd2bGOOgY+AhX59hn+EiX9wX3FvhHuOi4F7fpCIeXCDZXmBiIWKgHqEfH6SjY+Rgm1ueYt+dW1ua2x7f2RpbGtab3haU2pzaWJRY3N4bWNmXlprhG50YlxoX2VtYG9VXHBPSE9nZlxob3GAbltcY3NgXGNsd2VlXV1abG1jbWpzd4Z/cnGAfH10eIZ4hYJ9gIh1eYmBk5V8iYZ2iIFweHl7hJNvbnuBd16DgHSBbWl6dJRzZ3OIfHGSkYOZn5ughoh2dpR/bXeUmH+IkISLjpp9jJp3fnZycGxqYXV9Z2JqdXpbYHh8emxwf2VjZ2dXnY9fcXOWvcWFd3KVi5GAdJmNh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH6Th3SHhXZ2fYFxdYaBnpWGlI6BgXF+hnOCeYeVm5aGk42dgIhmfpODgYaEiolygX1nfYt7eX9/h4uPfWmAfIN2ZnB5eHN3dGxrj4aLgot/eYOBhISAa15wdnp9i4eEe4COf35ygGh4gYWJhIF3gnt/lYqOi3xta3qJfHZ0b2lofndlXXJkWXF1VFRvc2liTmh1eWdhXl1Zb4FwdFplY15rbmFxUFpsUkRUaGJabG9te3BaW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Jvfnt/dHWDeoOCfIKGdn6JgZaReIOKdIGIc3l5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeY+Wb3pzcWxqZGB0e2lgZnJ7W2FyfXpmcHphZWSOsbJ3S2JapdrSmHN8ko2Ren+XjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqDlX9uiYZxc317anmGg6WRhJKMgn5ufYF0gXaDmZeSipOPlIWIcHuThH6Eg4mDb4F4aICFeHJ/f4OKh3xlfH6DdWNxc4BpeXFvdZmNhoSLfHd5gIR6gmtcb3xyf4eDiH2Fh3qIcYBtcIKFjIKCcYN3f5aKjIN3bWx+hH92emVoan5yYVp4W1pzb09YcnRnYEtud3ZiXlxbWXV+c3BYZ15ma3Jfb09YaVM/WWdfW3FrZ3lyXFtZbGVaY3B5X2hdXmVsaGZsaXJ4f4dwboB9gXZwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9scH51f31vcnx7k3BvgX95ZpKKgqGYnZGDhmeHhHBnepeKf4CFgpqKgXyNjWl4cmxsZl9hb3ltYGNveVxkbIN6YXF2X2Rl1eu+izM6PouPgHJ5hoqQjniGmY5/lI6Nf25thYyLdX2Pf4WClYl8g3hudoeEgpV2bYeEa3V7dWV5g4SnjIOOi4J8bH5ydIF4g5qPio+Rko2Mh397koh5gIWOg2yAcmmAf3htfHyBioN4YnmEgnJkcWl/bnVydYKcjIGAhn90dn6Ac4FwW2t8c3iIgYp7hn98iHd5cGuHg4+CiHCAd32TiYp9c21qdoCAdXVdaWl5cVpXflRbcmZNW3NyZlxKcnlxXVtbWl52gHZpWmJbaGZvY2pOWGdSPl5mXV52Zl91cVtZVW9kWmVxeVtoXmBnbWhqa2lweH6ObWqChIB5boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt9a3R8coZ7c3Z9fox6eIR+fGuMjISbnZaMgoFtjX5saX+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5dNluwtnVqgIl+lId4iJmHdZCMindwbYWChnR5iXiJfZOIen9zZ3aIfXyWbm+FfWh2eW5leomFpYeAhoyJfW19dH1/e4qXhoCTkJiJi4WKfJCKcXx+hnxpfm1rgHt5anp3goeBcmB3gn5yZHJndoNudXuGlZKCfYKAcHd6fHV/bVdtfXVziYCFdoZ0gol6d3JtiICOf4NxfXt8kIeHeW5taG2CgXVuXWhndXJSXH1PXXJdT1xzcGRWS3R5a1hZWVpicoF2YV5dYWdkaWpmT1ppTkFiZFxgd2FddW5YWFN1Yltlb3NYal9iaGtnbWxpcHd8k2xohIp9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXaKd314f4GHf4R+fnpthIyImKONhYR8dot6a22FiZN6fXuCkoCAfoqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/v52opcm4coWEdJV+eomVhHSSjodyc3CEeoJzdYZ0iHeUiXl5cWR3hnl/kmhxg3Vmd3ZkanyEiJ6Cf36OjXxxfXKCd36QjoJ2lY2UkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWhgd4h9a2p0aHuAanaBjZGVf3x+fnF8d3x0f2JVdXtxcoeCgXuBcIaJd3hvb4KCi318d3x6c4yEgHVocGdsiIFycF1oY3RvTGZ3TV9vVlRadG5iUU91eWJSWFhdYnGDdFxiXWllZWNrZFJccUlEZWJcZHFeXXhoVldWeF5cZm5pVmxeYWpnZW9uaHB3epNuaYiMeX1ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3WDeH6AgYKEeoB1b32Ki5ueiH6Ge3eGfGh1h42Sen+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpyIeIs3KKeXGPdn2JkYF7lIuAdXR1fnZ/b3B/bYV0lIZ4dWxgeYB4h41lcYJuZ3VuW219gZCTgIB4kpF8d3pshXN+j4qDcpWKkY+IhoZ7f4ZtdXd/bWh3ZW18dm1rd3d/f3xgYniGemh1dmN+e2h1ho+Oln11gHZygHt9bYBaVXF8b3OBhX1/d2uIhnN4anR/g4J8eXt3enGJf3tyZ3NkbYuEbHNbamB2Zklvb01cY1hXVnltYlBTdXdZUVZYXmFyhXBdYWNtZWNeb2NVXnNHQ2dgXmdpXVp7Y1JWXXZbW2dsYlZrYGBuZmZscGhwdniPdGuOjXZ/dnh9d4GDgXt0fYOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4iHx9gX2EgHt+cnZ4i46fjIl7ind1g3pefoeajXqHhHSGh4V3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi25yhXN+hox/e5OFenl0enV0empsdmOEdpKCdm9nX3yAeIqHZHGAampxY1hte4aciYOBcpeTdn16bYZvf4iKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHJ4fXx5XWV6gHhpdXlngndodYeMjpV9c4dqb36AeG59XVdvfGxzfoh6gG5uin9wdmZ2f4B+gHV6b3lyhXp4cWVyYG2MgWtyWGtfeV1JcGxPWFZfVVZ8a2JPVHZzUlJUV15jdYZqXWFra2ZjWm9iWWNxSEFpXWFnX1xVe15PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulYp1f3t4fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt/fYaDhId/fn59hn98eHZ5dpKUn36NfYtudYB6ZISImIZ0kopvhYaCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnugt25idIdpdX1ze4WIe36NgHd4c3dvenZlam9hh3WOgXNqYl59d3iKgmVwfWdra1tWb3iLpIGFf3CZknF/dnOAbH6Aj4ZylIiNiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1tnfXx5ZnJ+boV0ZnWGjYaWgHCLZ2t7gnRtdWJbbXpqc3qJeoBldIZ8bXBndH53fX5wemp5eX94dm9kbGFsiX1sblZqYXhWTGxtUFNQaU5ZfWhiT1V2bE1RVFVfaHeEZ15hcWlnYVdpXV1sakpFbFtiZVdZVHlaTldva1ldbGVcWmVjXnRmbGVxZ3NwdIF4cJmFdn9/eH98hYd9dXOCh3+Vg25zeXt7c3KFhoiJhHmBfXaPf32FiY6EgYN6fouDe3d8d3aanZh6ioOHanZ+fW2FhZWBc4+CcYaCf4KAcGZsZ1ddW1xbU2VwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anZ3dXWFhniChXp3dHZua3pwYWhrZ4Z0jYRuZ15ffG55iHxnbHdmamRWV3Nwjqd9hHt2lpB0e3F6eGx5eo+DdZd8iIaEh4R9dXFzbWh1XW1pYG11ZGdnaXpve3NZZ4F2dWhwgXiCdmJ3hYt9lYJvjGtte4FxZXNlYGp3ZnB1iHl8YXWDdmprcXR6cHl3cntlfX19dnVtY2VgbIZ8bWtWamNyVExrbFBNT3BHXnxmYU5WdWVLTlRYYWx4f2ZeZ3NqZWBXZFhjcl5MTGxYZGJVVFVzV01Zd2VaX2xhXFtkZV93Z21ib2p0b3F+dXSZgXh/gHiAfoaEen12goN+mIVucnR8e3VxhYWPgoF6i3V0kYB8gZWOgYWEfH6Mhnp+gXZ7o6aKeYmGhWx1fHx1hIONe2+GdHqFfYKDdW5qaWVWXVtbWlNjbmVcWWJ0e2pobWhgYVddWmmAaWtwgGhtYml7emt1dXVwh4J6gX53dm57aGp5al9lbmiBd5CEZ2VYYXZpfYZ5bmlvZmZdVVhvaI+od4F7fJCOeHRufW1xdHiNfneUdIaDgIaJdmp0d2hpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+endhd4WFepGGc4hycHp/cmNxaFttdWRucYZ6d2FzgHBoanh0cWt3dnN1YoJ5fXV0b2NiYmx9fGtrVWliZ1RMbmlQSFJsRWF5ZmJOVHJeSk1VWmZteHtmX21xamRdVmBWcG9XSlRpWGdeWE5WbFRLXXpgXF9sXV1bYmVgemhsYW5wdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0f3p2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGAgnVviG99gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFWWltrgWVydH1qal5teHdodXhzb4d8fn56dnNsemhpd2ddZHNneneSgGNjVGRvZoGEdXZmaGlhV1ZZaGSQqG9/d3+Kjnpwbntmd215inp2jnGEfn+Ah25kd3RlaGldbGJecG9baF9tdWV6aF10gG5ya3F7f3Z1YnWGjHyJiIB/eHJ1fnRhcGxYcHFhbm+CenNjcYBsYW17cGpneXdzcGSEdHh4dG9jYGNtc31qbFRpXl9VTHVkUUhXYkdjd2ZiTFRxWUtMWFlpbHd7ZWVucmZjWlheWXdmVEldZFhpWVlJV2VRSWN5W15fbVteXWJkXn9pamBudHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCi419f4WJanSWgXuKnX1+hXmAe358holzcY+ujHx8h5B+ZnGIenR+fXdzcIZtfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXSGaFlwbVteV1lbbHticXd2bWNcbnR1aHZ3cm+GeX+Bendvb3RlaHRlW2d1ZnZ2kXlfXVNlZWqBgXN8YWJpXFRYXmNkkKVpeXSChZB3bG14Zndse4N5dIdygXl9eYBpZndtYWdhX2tgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzg5OAiYOJenZvcn1yYXhjWW5uYG9wf3pzZXGAZF9udmpjZnh6cmxtgXNxe3FwYV1kbW99ZWlUaFlaVU56YFJLWllIY3VkYUpVblVKTFpXam1ze2RsbHRjYVlaXGJ3XFRLZF5ZalRXSFlhTkhrd1lfYW5bW19iY12FaWhibnh5bW9qdoGQeW6DfoCCkoiEgXZ1iXSLhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZont7f4mWeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxyiWVTcm1bWVhXYGx2Y2p1ampfW250cm11dHVrh31/gXx3b25sZGlwY1trcmR0do5zXFdUZGBxfn5wgFxhY15TWmFcZJOfZXJxhYOQc2tpeGtubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF93aFdiX3BoYXdhW3x2ampybnh0dHRpcYKWhId/hXZzanB8bWZ3V1tpbGFvcX94c2VvflthcXFiX2lvfGtqcn1wb3ZqcGBaZGtte2FnVGdVWFNReF1TUFlSSGR0YmFHVmxRSVBaVmxsbHxlbW9yYVtaWFptcVhTUGdYV2pUVUZaXU9Jc3ZZYGNuY1hhYWFejGpjZW16eWxvaXZ5hntrhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSFgZ+JdYGAgXR/gnCHg3Zvopd0e4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWZpc2hjdGVlXlpwdm9xdnZ6bIh9f32Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJjd3t8b4RcY15jVFtgWmOXlWNucIKFiXJpZnhtZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlidWVVYGFtZGFxXV1+b2hpc3F0cXV2bG2FlIOKfIVxcmdufG9xb1JaZWlkcHJ/dHNibXVVY3JrXF5uZHtka3V8cHFxaW1fWGNpanheZlVkVVdRVm9YUldUUEhlc2BiRlhrT0lZVVduaWV8aWx5a2JXXFZcdWVUU1dpUlpnVVRJW1pQTnl3W19lbWpaYmFeXo9uYmdsenZub2l2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt2gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1jZ2doU2BfVWdgbG9cXm6OaE5qbGBVVlNvZ3NrZnhlZl5acnZuc3x5dG6Je4B3nHt6a2FlbG1eYG5qZXF5fmdaVlhfbHh6em6CXmFdaFZYYFhknIhia3CBhnx2a2l1a1t1cGp5aXVybm98gXNZa25gWV5WY2RZZXFjVF9iaWFibFpgfmtmbHR1b214dmxoho2AinuIbXFmcHtscWxhWF9nZm5yf3JyXmlsU2ZxZVZibWF4YW90enRpbmtqX1dgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYExZbWVgeGlvgGVgVV5UXnZcVVNhZ09eY1VUS11aUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfI2Ecn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2NjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2NjY2NjY2NjY6Pjo6Ojo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnZZCioKCgoKVeKi4uLi4rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX19dkaakpKSkqlYVHBwcHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eGiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmNj4+Pj4+PiIKDg4KDgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkYuPioqQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo2MjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYeGi4qFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhYWIh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWIjYmEhomPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin58dnZ4fHx7fH19fX19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhImIh4iDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp8enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoqLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f4B/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f3+AgIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f4CAf39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX1+fn5/f35+fX5+fn5+f39/fn9/gH9/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf35/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhZCPkHx1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+Pj5CQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fH5+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZFSEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f35+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ha3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/fn5+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWZmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd21ibnNqYVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tybGFudXJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWWlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViaGxvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIJvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdW1xlbG5rb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4en19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4CAgICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtcaW1ub2pvbWtqbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5sa2xpVUM+Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzc3BoVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9akA6Oz49Pj9AQUA/P0FAQEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpHVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0k4Ozo9PkE7SGQ9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPTw9SUxGRXV2Tjc4ODo7Pj9XakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3pKO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PEFTRD88OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wb3F0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyemtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFAWWFHQz09QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV0d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW90fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSklqZlFNRUNHRkdFR0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpMTmlnW1tWTEhOTUhJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEZIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1WZWRiYGVgTl9JR0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshYeGhoaHiIiHfFBMTWNqaWhjZmhnX0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERkdJSklKSEhIR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlNbXVtamlpaWtJOjw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNS0dJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPZlF1eHRtbW5vbEQ3ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42KbXZ8hHFvcG9uSzI2ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKi4uIcnN8cnFub25EMzY4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYODhISEhYaJioqIh4eIiIqKjIuKi42FbGhsb3l9Zj47Ozs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3V4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY9/ZmxveX5eRUNCQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjY15cHJvdl1LTEhISEVGSEdFQ0FAQ0VEQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaHiYmIh4aGhoeJiYqLjI2MjIyMjI18c3JwWExSTEtLSUpKSklGRERHSEdEREVGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENAPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjY2MjYp5d3VvY1FOTE5LSktIS0dER0lJSUVGSUZGRUxMTUlKR0dISUpOTU9MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs7PTo+QD4/QENGSUlQX4GDhYWFhoaHiIiIiIiIh4eIiIiJioyNjYyMjYyMjoV5fHhyWU5NTkxKSUZKSUZLSUdLSklKR0dHS0xOTE1ISElKTVFOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMjIyMjHlyYl1bUFBNTElHREhKSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVBQUU9PSkhKSkxKTEZHSEdGRkhGRUVCQUJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyNf2BcV1dXVVFPTUxFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUxOR0dKRkZISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyLbl9bbWRIVVNTUks7O1NUU2B1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLTEtISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uIcmFoWD1bWllUUj9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4eHp5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIaFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYuMfHJzW15dXFNVU1dXVVtadYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeJioFuhomIh4SLgGlcXF1bVldVWFRSWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn19fX9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FQUlJSVlNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIiIeIh4ORjomJiIaFiIiGfoB9YFRYW1ZUVlNSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d6b3NaTU5RUU1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZhXk9GQUVFRERDQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNU2RydHZ1c3R1enx7e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCbE9JQkI8PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01RVUlBRT8/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnV0dXN0dnh7fHt8fHx8fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSkpQUU5LTFFSUVRWVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJCQj47Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fX58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIR0hIQ0JHSUZGRkRNUlBhV1NYUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFdYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1tXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUdtcnR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STlpfW1ZZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaGlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE9OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc3RG1wdHZ5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE1NT01LTEtMTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp7eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTE1PTkxNTU5PTltXS01RT0dJSENISkxMS0ZGRkU/QkM+PEJHP0I/QWRwdHZ6enp7fHt6end7d3l+fnx7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESUVDR0dKR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE5NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEFCQUFERUdLRkNISEdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEZJSUpMSktMSUpNTU9QUlBKR0NLR0NCSUlMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RGQj0+PTo5OjtAQj89QUJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0RHQkNAPjw9OTo6OkBDQD5BQ0RFSUVJSkxGSEhHRkZDQjtBQkM+QENEQ0RHTE5IS05IREhFSU1OTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlJTTlJmZmZxb3N4dXt5fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0NFQERCPj8+Ojs7PTo8PkNBPkFDRUZKRklITEhHR0dGRUNAPUREQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0RJTEtPTU9OT09OSkpJTFJVVVJPV2RgYW1ncXJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ8QkE+QT06Oj0/Oz0+QEI+QEJER0pFSUZJSEdGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpNTElHSEVHRURDSUlIS0pHS1JNQk5OTFBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PD45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJPUFFOT01OUE1MTVNXVlhYVVhdWl1kYGliamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzs9PTo+OkBCPj8/Q0VGREZERUhFREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVFNQUk9RTU5RTk1QV1pWWllWWl1aWGFgYWBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRkNESURERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtJTUtPTk9SVVZPS1VWU1BTUVJMT1FQT1RZWllcWllbXl5dYGJeXGFja2JgZGZncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkJBRkNFRUVJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1JRUkxPUlJQVltbXV5bXF5eXmBgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZGR0lGSkZHRElIR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTE5OTVBLT1BSVFhWTU5UVVRSUlFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTExNR0NDQUQ8P0VFRUM9QUFDQkNDREFDREFBRUdDSEhJSEdKR0NISUdISkZJTUhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlMSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHN1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0NGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwb2pqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZIQ0dESUZFRUJGSUhIRUhMSkdNTU9MTU5HTE1JTEtJSk1JS0pKS09QT05MTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0ZESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9xdHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXFwbnR5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXF2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGQ0dLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUZLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPTlFOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0RHRUVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lISElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cnhyeHNxcnVydE9CQ0RMTUJEREJFSUVIR0ZLSktIRUZJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTUpIRkRJRkRGR0VGS0hDSk5MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHZyeXZ4cnF4dnV2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKRUFLTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhZUUtGQ0dFQkVISUZHSEhGRklHSEdJS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQEpLSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9dXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdHSUdGRklMSk5GREtKTU5KTElLSkhJRkJISFFNTEtPTUpLSUdHRUQ/RUNJSUNDSEdFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUlpdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eIh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0lNUEVGSUpLTkxMSUtMSUlIREhLUU9NTVBMTEpLSElDREFFRElHQ0NIRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXYF9UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhISFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQ0ZHQk1IQktLT09OTEZNRkdJSkhHTExNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1OVFJaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGhoeHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PSkpLR0dLUFNTTlBPTk5OTkhLRmBFRF9MRWdkRk5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUtNTExPUlVST09JTE1HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19ablhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYGFdYGFnbXBsYHB3dHiBgYKDhIJ/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMR0lLRVJWTEtOSUtSWFdRTU9PTFFUTk9RT0tLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3Jxcm9vb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCCfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LR2BdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTkxPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4d2lXclFoem1panp6fmx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnV5foFzdXpufH15eHJuTktTdU5DQkZQT0hKS0lLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5cX2RkaWdoZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5fm5xcGt7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFdXWVdPU05OTlFJUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVUxsYHZ1a2l1e3ptfnhrfHBcXl5iW15hZGRnZWVlYlpjY2lra3JzcnZnbGloZGdhYWthZ3NybGdsbXJ8a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NS1RTVFFWVk5OTE1PUEtIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQTEpSUUtRTUtMUFNVU1FSU1NJSExOT1FSUVBRVFZSWFdcV1NSUFJUVVZTWlFOU1JYVlRZVlVaVlRSVVNUVVdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBgXVtiYmNnZmVkYlhfYWJeYGdkZmVhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWFZdamRWWFlaV1ZTU09KTlZUUE9VUFBQTk1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVNWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTUllXVlpeWV1fXlVeXF5gXFtfX19eWmJiZGhnZGRiWGFgYl5eZmNkYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVhYW15dW1tWUU5VVlVbXFdSU1dWV1hWVFlbVVRSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeYlxZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeV1xeanF3eYBjXFtVVVdQTU9WU05RUU9SVFFMUlRUWVtXVU9ST1NYV1RTVVJSWk9QUlJWW1ZXV1RWWlhcXVtbXVZTTVRVVVtcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFjX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZVldaWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FPUlpTUlFUUlRVVEtSV1ZbWVpTT1NRVlZXVE9XUlNaUlRUVFhdV1hZU1hcWF5dWVpdVFVOVVZXXltYUlVVWVlZVVdaXFZTV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZUVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1pVWl5YX15ZXFlRV1JZWVlfW1pUVVZaWVpXWFpdV1VbXl1eYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJYU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFaXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeV1hbXFtcW1taXFpaX19gYGRiY2RkYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWFjYWFgXl9YVFtaWltbWFtYWFxbWltYV1lYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWVtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFpoaGJmaWNlXmJiY2FgYF9dXVpYW1lZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJbY2dgXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBhY2RkZmVnZWZmZV5lZmhoZ2RkYFplZ15hZ2hjaGhmY2BiYWNiX19fXF1bWltZWFhYVlpWXFtaVlZWTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp8fX19fXx8fHt8fHt7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiQzNPS0tLT2FolKysrKiVjko2NjIyNiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eXrVBMbGxsbFF2WkZCQj5GMf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5eXl7eHBvb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYSFhISEg4R4c3Nzc3NzeX18fH19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2d3p4enp5fnl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXx9fX19fX18e3t7fHx8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx9ent+e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fXx9fH58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDhISCgoKCgYGCgoKCgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e318eXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXt8fXx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp7eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t7fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgoKCgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgoGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJxcnFxcXFxcXFxcHBwcHBxb29ubm5tbW5ubm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgIGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFxb3yCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoGBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycXBzmIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgnByb4uefG9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXJxdJ2hdnF3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJzc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKCdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d3eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSoqJd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtauso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqKyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af36AgH9/fn9/gICBgICBgIGBnJyOoLCgn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsqGYlpyFfH5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gIF+fp+rpJakm5uWoJ+Gf35+f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho2fsqiioJidnaaoraigmZGHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpGPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCg4uXmpeWmKCanZ2dmpqYkImGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCTjpSYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGBgYKDgYKCgoGAh5uHi4eCg4KBgICAgIGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OAf3+AgICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOBgYCCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OChYKBhIWEg4ODgoODhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChZSUjIGCgYKDgoWTg4GDhYODhIODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSTk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKCkZSBgYODgoODg4KCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4aWlZCMgoKDhISDg4ODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDhISEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yEfYaJgH6FhYWEhYJ/fX19gIOEg4SEi5mgqqibioSOiYOEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5ORko2KiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEhIWKk5igpaSbjZaHhYSFhYWEhYSGhYWFhYaGhoWGhYWGhYWGhoaHhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWCf39/f39/f36AgISEhpWXlZefn56dkoeIhoaFhoWFhoeHh4iGh4eGhoaHhoeGhoeHhoaGhYODhIWFhoSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WMnJual5qcm5mOh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6f5mXipSZmZiVlIyJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8mpV/gZaYl5WTjYmJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDg4SHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX2Bl4+MmJaYl5OJh4eHh4iHh4mGh4aIh4eJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqCmp+cmI2Ki4OEhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enmHoJ6ajIeIgIKBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+ChIOCg4ODgX59fn+AgIGAfn19fX1+fXx6e3qPm5eWkol+gH9/gIB+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYCDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19fn+Af31/fn1+gIODgoKCgYF/fX1+f4CAgH9+fX19fHt7e3p6enuOl5WXhn5+f35+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f39/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX+QkI+RkX9/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/fn5/f4CAfn6Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYKNiY+Wh4GAgIGAf4F/gICAgYGCgoB+gH5/fn5/foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoWEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKBgoKCgH9+fX19fn6AfX19fX19fX19fHp6eXl5e4iJh4eIg4GCg4GAgoCCgYGDg4ODgYGBgIGAf4CBg4GEgoCAgYCBgYGAgYCCgX+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl5fIKChIWDgoSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6foGCf4KLhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODhIOCg4OCgoKCg4OCgpGQi4iJh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXp8f4B9hpODg4OEhJSTgICBf39/fn6Ei4B/gYCEhpCJhYSCgoGFhYuDgYKFhYaGhISFhYOEhIODhIOEhYSIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp6e32AgoGCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX99f4OEhYWDhIaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX1+f4B/gX99e3x/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8f36Kgnt6e3p4ent7fH17fn5/f35+fn59fICBgH6Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgoGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8e32Fg4OAgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/f4B/f319fHx9fn18fX19fX19fH18fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8fn6Cgn99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+Ni4qGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH19fX5+gYGCg4B6fn58fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx9gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/f4B/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiRj42JioeFhYOCgoODhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+Af39/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX1+fH18fXx9fX59fn19fX18e3t7fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX19fXx8fX19fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXh5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36CkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKBgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYKBg4GAgIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx9e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoODhIOFhoOCgX9/gIKAf4CAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KCgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCgoKDhYOEg4KDhISEg4WEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhISDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhYOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Bf4CAgIKAgIGAg4KAf4B+gIF/gIGAgH9+fn1+fn1/fn6FhYGBgX+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f39/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+CgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn1+e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWFhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gIODg4F/f4GBgIKBgYGAgIGAgICAgIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB+f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEg4GDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z3dnN0hoSEhYWChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f319fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHx+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GBgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gH9/gYKBgH9+gIF+f4CCgoCBg4KEhYaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359fH99gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgYGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35+foB/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn5/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3t8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt9fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKBgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l8fHt9fHt8fHx9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKCgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoGAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fH18fH19fn19fX5+f3+Af317fHx8fHx7enl7e3l5c3J1bnZycHhxdnaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCf4CAgIB/gH+AgIB/fn2Af39/f4B/gH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx9eHh1eHh5e3x8fXt7fHx8fX5/f39/fn19foB/f4GAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp7fHx8fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cnZ5hYWCg4KDg4KChISAgIOAhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCBgIGBgYGBg4B/gYOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFg4KDgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/foCDgoCBf4CCg4KAgYKBg4KDgYGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/fHt3fHl5eXt6fX59fH18fH1+fn+BgYCAgIGBgYOEgH2Af39/f357e3t6e3p0cXhxeXR2eHR2e4SCg4KDg4SChIODgYKChIWEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4GCgoGDg4OEgIKDgoOCgoGCgoOBg4SDhIOEhYSFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCgoB/gYKCgICChIODgoGCgoGDgoKDg4SDg4SAgoOCg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGBgICAgIGBgIB/fX18fH17dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoSDhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODg4SDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn1+fX5+fn5+f3+AfH2AgYKCg4OFg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODgoGEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36Bg4B9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gYCAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFiomEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4J9hH5+cnWDgoF2foOFgH2BdYF6hH9/f3+EhIKDgoKBg4SDhISFg4SFhoSFhn2Een1+f4N7hYOBhIOBf31+f35+goOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKChH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fXx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSCgoSGhoOFhIaIhoaFgoaGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKDhYeGhoCChYODhYeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fYB+gIB+foCAgYB+fn9+foF/gIB+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEhIOFh4aEhYWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn19f31/f359gIGDg4CCg4GBhIKAf4GCgH1/f4F+f359foGAfn6BgoCAgoSHhoODhoSFhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJioiFhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cHl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWGhoaFhIWFhYWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSDgYSDhIOFg4WEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYSEhIOCgX5/fnt8e358fH1+f399fX9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhISEhIaEhoaEhYWDhoaFhYWEhoaGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+fnx9fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFg4OFhoaEhIOEhIOEhoSGhoWFhYOGhoWGhYSGh4WEhIWFg4SIhoSDg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fn19fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaHhYSDhISDhIeDhIGChIWDgYCAgHt7fn58fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhYeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31+fnx8fH59fHx9fH17fHx8fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIaFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/f35/fn58fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWGhoeGh4WGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e359fH16enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhIODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aGiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhYWGhoWFhoKDg4WBgIGAgISAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoWFhYSFhYSEgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6e3t7enx7e3t7fH19fXx/fn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhYODhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl6enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5e3p5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fX17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vMy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU1NPT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vMzMvLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vb2dfX19fX19fX19fX19bX2tva2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiJ+7ubm5ubm5uLi4uLi5sIuLi4qKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU093qKSko6Ojo6Ojo6OjpZVTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTeqmlpaWkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183Nz9HR0tLS0tLS0dLR0dHc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoKtqampqampqampqamrnmNhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc3Ozs7Ozs7Ozs7Ozc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vN0tLS0tLS0tLS0tLS0tHNzM3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0tPPz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9WSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys7Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz8/SuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaPUwJSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGdxaSgi5HDk31+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbs6edh5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/PT49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqrmXnJCfoNLTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDw8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P1KuafqOSiqyvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8P0A8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLmIqhmq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZubmqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZacr56cm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoqukms+mq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iSjbTWzJOQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0dTKvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExBPjc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj08PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NTM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurq6+wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojo7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmampqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QT88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6KhoJ+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXmJeWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpaXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpaalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Njg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKioaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njo3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuamZqZqIREgJ+fnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXl5WUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRSISgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoZydnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTYGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VPgaKfn5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7ODc5Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9RU4aem56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xXUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mlo6KZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTVBjhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5+apSllZ19iIBfcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot7bVF1nIyMWnF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3V05LcpOGg01fb3F3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVC8vPXiHd3ZBRF1rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0JbSDt4eWtnRTE4WmxzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0pyonlBfHhkYlFUXklgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgwdalQ3yOg3VPbo52U2R/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73ArnmhpJqVZUxfeG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo6p0aKas6hYTK2TU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooV3fn1yzsavmaava1WqsGNbh6WfpaKhnqCimJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrqyOhoNukcy8lJSllnRUb3pzcH2WpqqnpKCfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWfh3lkWJ+1u6anmYh3a3FveHl7foWOkpido6Wmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkj3JmUkSLlYWFhX14cW5nZmxpbHJycXJydX2NqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8rqOViHRZWlFEaXdqbnRua2VlWVddWFxjamppZmFpi7bBwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3S1cq5ppyThXJeUVRLRFtlXmNqZWFgaFlUWFNXWVpdWVt1mre8rLSyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLaTdGNVUE9USD5ebF9fZWJgXWRhU1VXVlVVWHOcrbGqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2VhYmljYFtjX1dST1BQV4G0uqyupaSjqKSgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01aXWVsZV9bYFlZU05VgKOrubWyrKmjoa2prKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/Rl1iYWpgWlhXVFZ3mre/u7y6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1ZlYVNOUHGpyMjCxMfAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/T3eAilZMb6XL1MW2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2uCkJdvq8jIx9HBr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NkfZGKitHFv7/Jv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y24v7vDtbrHtrW4ury4ubaqpJiNfoTJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3qMy9x7e5t622tLe5s7WxvcnElEl7yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNaudIC7yM/CwLiutLS7vbe5sb3Dyo1Ddc3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcmZsam91b3lkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmXFyq9HRzMrEtbq/xMi+vrS/wMF4Um7LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDDur68xL63vMC/yc/HyMrKwoZyc6PMzMvNysbCw8vOwby4vbqxb2Niu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur28O+tr7Avr66ppypsrbDv6V5dXiZxMfLyMHDwMDJysG/u7mxoHxybK3IxcS/wMG/y8fDwMjAusK7ubO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S4ba3Ovba5wLysfW5obm1ygZWYc3d8l72/xsC5wLy+xcS9vbixsJiQfYCbysLDvL2/v8PDv7/HvLzAtLOutLS8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNs3aBs722tcKlh2laXmBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmIeQfsDEw768v7u7uLbBwrW/urStrqyvvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeIqgr7WdamVnVllgSUlNUFNsd4alsLe+ubK1sru5vLa5vrSWnKWVoXGuycTAvb+5s66yvLquu7SzpaqmrLq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx1jKCZYFRDWFVHYWpWT0VKYI2grK+2urW0sqy8ubi1uMG9i5iwoaVypcvCv7m6ta6lrLOxprKwqJ2gnqSttrTBtrWzpaeqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxwdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIiPb05KP2RZQk53gJRqTkFdgbC1s7WytK+su7q4trm/xXWDqp6ZY6m/uLWysa2tn6SnpqKuppyVmJeZnqituKuqqp6kqKSrrq+nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6HWUpKWHeNgWNBU6O5s7SysLGtsLm4tru3uryPobKro3KssKmrraujqKCdnaWahZ+UkJSWjpadp62joqOfoaaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZmZlWlOQFJ4cVBJSUtnnIFZRVKuu7Gss6+urK22trK0ta6opp+am52epqieoKipn6Gnlp+RVYGekYyOlIuVmaKnn5+hoqGlpZyjo6CepaCkrKWmqKWio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BSQT87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb5pRVKdglFXSUpgSlSOYGNigK61qrK0rqqrr7Cys62lnZGXk4+XoJ+hoJyjpJ+eqJSjVVaHlY+LjJSQlpqgp56fn6Cjpaicn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho5+doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5se2RpVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8uhUEFynndPbktLY2Z1c2BaXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSakzpkhI2Mi46XlJmeoqmdoaCcpqerop+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXlhYlNWYUlJS0xTVUpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8eOV1NJZaNbZX5vcl1Ra2NbZF9da4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJeio4A9ZICBe3l/lJido6Onnqarn6eurqqmorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ2dXBjdnZYV2NgY2dZWFdmra6sr6efnqKglpCTm6CcmZeSk5+coaOanpuWnqCDamNmcHp4dX6Mm6apq6W1sp+ttLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NSJisqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZyelp2etqt/Z3+GfXV5e4GdtK6zwZipt7i9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaWfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ+em52blJOVlJ6emJSFnZmgvNW5lYWIjIV6cXBsgKm7xJyQucO+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bYefs9vUvKuciYaLgnJoXV2QzrZzrcfFxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfHwrjEysnEwce/urS6u7W7t7C2squ7sq+8t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn5zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycG1wkbvDx8TAt5aDgoSEcmBXhbmAgNDMzMzHysXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK9xMG/v7+1vrOtv8DDw8fFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXJvbHuIZ46ttrWhjn16emtoZXGEX7rU0dHNzc7QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1NMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcXFweVFZfJiko5Z+b2pjZmpmXZPY0dLT1NLP0cPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpudmpWJd2lkYV9fX19eX19dYWx1c3Bwbmxxb3WAY1p3kpuZhWlhX2NpY3nM1M3P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztHR0sjMzcDLzcbUz8zPycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1rbnFydnxgXYCUmIpnWVlebXWXx9TOy9LN1dTRys/M09bS0dbNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTKz83KzMDJwcnKzs/QzNDOzszP0MjM0NHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXFubnFxcnF3d1tnh4+KYlVZaoKRnbPNzsTNytLSzsbOzM3Uy87SzcvX1tDM0dTLzNDR08rO0dXS1dbKwMrCxs3DyMrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDxLWqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcXBxcW1pbXhoVXiDfFtUaX+Sm5+uxca/wcTOzsfFx83K0cfKzc3G0dLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByce5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lrcV9lb2pYXHeCkZeXore6uri7yMXBw8DDyMnIyMnHwcXLxcfKzcnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKxsjG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp8npGKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl1fW1laXGJucW5pZmdraW52XFpaXGBzfoaGgpKur7GvrsC5uru5uMDBwcO9vbm8v7nEycXGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6nYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3Jwa2RjaWpqdXBIT1xZaHNvaWSTpaaqqKO1sbWzsrKzu7W8sLavs6+yu8K7wcS8v7q0srq+wLjIuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMXLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXF9rb2xmY2ZoZ2p5X0NQTFxcVlJzoZqepqKap6mvq6mrqLOtta+xp62mrLO7urbDubq5sKq0ubuzwrmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpdY21tZmRkZGVnbHhRPUVMWF9al6WWnZ+blZehp6uipqGqqauqr6Klnqqttbaxvbivt6+orbi0s7y3s7ywuLm1srzBssCupamjq7Gzs6i9qquoq6yutbSmqa6hpbCps6anqK6mqLessbO3uru7sry+vr7Ev7XBwMfIt76/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcPCtba8trGvtbytqauTZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhuc0ZEZIFwXZSZh5yulpKMnJ6moaGfpKWmpayfnJukpayysLa2p7Crp6q0q7O5sLW1rra5s7C6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ylpqyfn6ekoaGxra2ssrWztLC1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozw4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZWxrWXt5X1RcRF5ik6SRh5idnqSbnZ6ipKKmnZqim56qrqyxtKOoqamrrKS0uKy2r62zta+zta+wqp+en6SisqWmqritoqamn6itq5mfoJ+ZnZ+lmpmjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2Rlb2ZZWEgyISJcWF+OlImWnZ6lnJmbo6WhpJueoJqYra2trrGgpKKtq6ehtbCxsaypr7OourOntqGin5yjoa2joqq2qqKjpp6mpqOWmZ2XmZqdoJqXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxsDFtsHAx863wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGZxUTozIRoraJSPeJGMkZuZnZqUn5+oop2ep5yamaqmrrCqm6Kjt6mhoK6otaqmp66xpLiwpLego5yZmaqmoZqtubCjoaScoqCgk5WhlJaWnJmYlpeclZ+pnqqkop6jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2BiaWk9My0yTn+Nk4yTjo+Wm5ick52dpaSipaaenJ6ln6qupZ+ho7anoaGiqbOipailsKaxrqu1n6GdlpWpoaKUrbGxn6Ojnp6YnJOMoJSRk5iYkpeYmJeep5unoqKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1dYGFrWDQ/TXSEiomMkoyOkZ6VnZSZnaOgq6Sjo6KjoZupqqOZnaSxqaGgnaWqnqiin62sqqmuraKiopWYopqckKypsJyfop+fl5mTip2RjZKUlpCYmJOcoaOcpaGilaCipKWbo6uloqSqpKutpa6yqaalpqa1pqqorbO1tLm6r6qsnoxzcXBhW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJTTlBZXVtbXFxcXVxfY2hAUnGHe4WGhY+KjIyXlp6YmJ6lpqmmqqaopaKYpK2jlJikrqmgnJmboJ+umZyqs5+lpp+jo6GUlJuWlpKpqa2bnJ+hoJuUkIyYjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1lZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVhZWVlcW1pbXV5lcXl2f3OAhYGJhI+LkpSdm5ecqKekrKqnr6OmmJ6rn5SUo6imnZeRj5qerpaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRfnJ0Y1ZUVU5SSkdWUFJSTExYTktMT1NHTktBQ0ZFQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGp0bHJpe4J8hn+PhI+Ok5eVmqWYnailpKqdppeepJqRjp6impeXhoWSm6SPlaKclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jtqyqrqSysqa1u7SrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LS1NXV1ZXV1dWWl1haWRoY3Z8dn53iX6IhY+Nj5qdjJeaoqCimKSVoJqUjIaYmotzjYN+jpeWhpKakJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csLuqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVlaXWhfY2BxeHFrSVNti32RgoiYk4iRjp6XnJWVlZONlYl/k4lfO1ZvfIyUioCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqWtma2smKezo6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVWFlgZV5bbXVpSj07fJKNi3mEkImCh4qZjJWUiZGGhJSFeIh/YEpRbniLkoR+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlIWbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpahqZyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVVLUVJQR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joSDfnhxb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1NVWmt0ZGhxYF9VT4yDkIRweoJ9eYKKkYCRmYuPeoWOf3R/eHJudXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoJ+Wnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTVJVTUZJQjw3ODs5OT49Ojs8OThAPzo6Pjw3PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1dTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZecXpwa1xuhpGVjIx3Y3V9c3V8ho57gpiSf3CGjnt2em5rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0tST0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKu7vrizrKebsKesm4+WnKWppaGYmo6EknmJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFRT1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1kbWlif5+jvnxwdF93dGt4dYaOeHqKhG5ri5F4c3hpan+CcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWlpiakJOWlpmXnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66stL+rvMO/pqKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkFGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVhaWqCBXZVjbXRhemxqfHeIhnSAhYRza5iQc3J7aWqdjkx5hZOJhI1mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz48Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FJUUhgqq6cbHVyaHlpbn9+gn94goSEeHGfk3N3gHJ0k4c1cJ2onY2goYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISkZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4Z1goRslYiIfHV4eG14bndkal5JUEc9Pzc0NDk7Ojs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVFSQ0iAb3p3dnF6aXOEhXl7goF9inx0oJh5fYWAhJmEmpxhhqqenIuDkI56d4h+iYiOdIuXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCqoLGor8Cyu8S6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHdrUlhMQEUyMTEzNzY2ODg6PD5BRUZGR0pLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNT1FLSlRbV1FJZH2DdoR1d255i4h3eoaEfZSFdp+Yh4aNkZSljKypSIatr66KgYCUi4KLgoSSqYiBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+HhYt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2VcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0ZDPzgwLCOHWz8/ODQuXZZwc6NVRklLTE1PV2BYbVhaXGWGjYCPfIB9gY2PfIOGjn+Yk4CfoJeUmpmlrZKZu7Gnu8fDp4uMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXV1Zn+UjoaIiIeIh6CqopaJjpd/eoGIenlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTlhSUUhQSkROR0NKRENBRERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZGOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTVZfYXxlZWpxlZSIlY6Ph4qLloWQjZuJnp6QoamkoqqTqLWhp8HCrceveLmUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHGIoJaGkYmNj5aktKibjJSig4eSg31/a2pqfIKDg3VjX2VgW2hsXmxsXldLSE5SUU5MTEZJUENETkZCQ0VGQz06OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExLTU5SXmyHenF+eZiWlaKgnZadk5+SmpymnKapnaerqKm0lqu+q7bHyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVo5ubeHp+lJiTopKXl4GUnnt3lZKqsoiMl598lJ2bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLUE9JSUxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMi8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSU1PUVlsg411kIacoKOvubSgqqmqpaayqa60sLCsurCyvZuyw6u6ycu4w7+3paKws6ytqqOLlpiEpaago5eBppmNoqqopYiFlKShoKuhpKiPnLGLlaOmt7qboKKvkqKcoZ2Po6GrrquytKGUpKmImYiSiZV5en6GgWliaV1mY19lZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwzLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0dEPD4+RkhDRUE3Ozw1Qzs9RktJRkhRTlBXgJCdgqqfraWsvMTAp7DDtaqxvrG2vLS9s8C1u7qiuMWotcnHtb24tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rLC1orGssbW7trSutJ+mp6GmmqmvrLG4t7immrWojKSOkJKfhniChXhbY2VXZ2NiZGFhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkHp4bl1XQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLSkE/PkdLRkVEOz5AN0Q3P0JKSkVGVlNQXo2hqqGusL2ws7zJxrS5w7yysr+1tsCzvq+2dLCzpbrEpK/GubCzsbOnpLW2qrGgopebopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7msq7Ckr6mtvbC8usHBq5i5p5StjpeXqYh+g35tWGRiWWxma2ZYXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2anB+joOAjoRuenN4h2K5oZmjiZSUlpKUk42PlpGHhnuGgY2VioCEgYp6fIqHhnyKgoGLg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2SrLSyuLXFu7a6x8u5usC7trS6uba9s7mxxWB0saSxmp6qvamlqKuqo6KytaCrqJ+Vlp+ZoK6lp6aln6SUo6extKiys722wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euKmhq42kp7WIgYF0YWNjX1ljYGpnU1hgVlJVSUVFTktBPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoKy0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g3+CeHuLg4d7i3mBioKXfnR9emtmcHVZXlxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbkra+tru0w7y4t8jJubW5tbe4sra0s661tZhkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SeraWqsK24sL251NHP19DKzNLMz87Kxr++wsm9wbzBwMTExcq+x82yo7qwtK6aq7e7mIB8bV9iXlpfY1pkY1FbYFNQS0NBRUZFPEBGPkFIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHtKyhoZ+LmZyZjI2VkZqRhYqKfoiGjJCLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2pqaWBmaWlsWm1zlq2kvIiGZ1tvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZe1xa+3sbm7s7DDxbSvuLCwu6uysKaqt6uMtaedmqeaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVl4efmqebrK+osKi0tNTU1NbTzNDT1c3Sz8zFwsnQvsnJysnRx8zNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6GqnqaXjJqbl4uNlZGajn2Ji4SNioqKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bXhzbWmBcG1jaW1weGl3fH7Lv8Hfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrbersqWvtKmru7+wqrSmpLimq66gq7SjjrCtmpeYjI+SkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cfN0tPT18zR0cTS1sXBzsfHwqi9t86efHFoYGVfWGJTX1tQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hY+QjYqKiJCGfoJ7cn6AgId6hHWFk5CIf292cmtzfXt3e3OCeHJrgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmjpKCeoKelqq+4qqWzoqGtoaOtoaexn4immpOSkYmQjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVxZWJhWlZaVVxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMh4iLiH6Cd3N7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJyQl5ieo6OlsaOksp+hpZ2gqKCjsZyFnpKRkY+KjIqGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLm5Krs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfXFRXUl1XRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjc5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFl5aIjoOHhYd6hHhxenuDhXV5hY6NnHmLcHxvb3p/cXuAcYOHgW6OenV3fXyCdH58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4uTm6CanameoayboZqYnqWen6uZi5qLkJGNhHyHh4OFi46fmZOIhId+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUy5Z8fWtqXVxRVVRhSUNGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYaAd4J5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlI6XkIOJj5aZlpWlnJeflZ6TkZeinZmrlZCQioyRgoyEiIiBhY+RnZuZiYaMgYWYeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucfKzs7FzcnR1tXV2dXX29TX2drb19va2djO28aIfXxpa2dhVllXV05MRU5DOz09PDg6Oz05PUA2PT9APD89PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVtTVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6foKRiYSFeoSHe3V9dG18fYZ+c36SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiIqQkpONnJmSk5CWjYuVn5yUoJSRjY2Pi36Pjo2Kg4iSlpqenoiMlZKdkYGLf6WZiISNgoWEgaWGioy4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x6bmtoWWJdVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlzenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboiohXqhi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OUjIaIi5KSi5OTk46Lj4qHlpqcj5SWkIqRk4aAi4iRjIqJnJaYoqKGk52WoIqJiI2bkIOIjn+Dh4akhYyRs5idkpSXoaGempKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHKAd2poX19aVVlZQ0FJQz8+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI6ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXd2dISChH5/kqakn6Wil4qdkJSXi4qol3OKso2EqJKEmZOFmYyilZ+YkoibnqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3IlY6Gh4iPkoyMkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYeNkKqXlqKiiJmelpqIjoaXl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NLazoV1g2tmYGBfUUtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsbot+eXx3eHyEhot+i6O0qKSrs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiIjZSLi5OPh4CGh4iSmJSMipOThpSYhoSRkJxzkJiylZajoYicmZOPipCKlpqJipaNhn2MmJ+KkJCcmpmTmZiglKGdlZ+bobGto6S3vrPFx8S9w8O/xs7KydKnz8zT0dDW2NLP2Lx1fXlgYldiWFJJS09FQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3ONen2Be3iGi4mGhJKovK2ps72wpa6zs6mjorCtipq1naO5pZWtpJeprbempKOfmamYqqSvsaqamZyUlZGYoJeau7utyqFptreqsJWYnqKrkpe9pF6qsoKJiYyUhpB8jo59g4aOj5SUiIeSlouPlY2LjJeYkZuZtJaVqp2LnJSSjZCSi5iaipKdj4uKlp+ijZWNl5mdk5yYnpShoJScnaauqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31sX1xVYVNRSEQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLiX+AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8LAsL3GvLO0wby0rKuztoyosq2tvaubu6Oorbm4q6amoqKko6qvsrGqnZykmJuYmJ6ipqWTo7mvqL+8rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeoGHkI2OnIiIj5eNipSXlJCalpunmrGakaudjpqPko6VkI+Vlo6QoJCIlZykrJSWj5ScnpSgnZuYn6CVm5+op6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKinZ1ZF9dYl1PTENMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra6ssCvpcCjq7C8vKquq6Ojnqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6pxMSkgouOh4iEhpWUjHqDjJGOkaGMjJSRjoeXoJiTmZWWpaCunYyqnI6Wj5KRlZWNkJSRjqGThpefoLKflJuUoKGZpJ+aoJuglJmfp6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycfBtXd7b15bX21UTklETUtLSkBBPUJEPDVBRDs6Mz04QjMzMjI2M0ExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgY95jaGWqJqamLu+ycjKwtLJysLNvcGzrby/p7q/vbzEuK3BqayzvL2qsKqkpaOsrrSutrWgn66fpqKZo7S9qZyovMGjtravq5OwrKqsloaaqqelkYKMkqSViYB1iZF5hY2RkJ6fko+Ui4+Lk6OZl5uUk6GeqZ+RpZqMj4+QlZaIfI6VkpGimpWgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAuq7Ds7u9wbmtwsLCv5lwe2NbWV9eTE1OS0dEQ0hCQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZViej52Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq6no5jDvsnEyMbTzc7Ny7zCt7C6vbS9y7vDwba3vK20wLm8rq+ooamotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZeTk4+TlJKlnZOdmZOgoaGcmJ+Yi4yPkJ6IWo+Wl5KWpJlmmaOes6WWopasraynnJ+ml5iWmJWho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEb3BcWlZXUEdMVE5LP0FIRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQlI6aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+1xL23ubezsrazuLOsp5yrrLmrqaivr5ejrqWopKW1wbCrrbS+wrnAubOnuLS3sq+VpK2wr6WLk5SgjXPBmX2XmYSOlpqLsZWamZWSkpmYpaOVn5qVmaicm6GgmYqMj5adYEqWnJqUmaSXVJawn6+cn6WVr6+tppuhppSTmZiOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQUk1GUVFQUTtIS0hGR0FDPTlLVD9BOj1FTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJ2Xjp6gmqOktcm0qce8w8TJy8nIzM7Gvrqzr7q4wMHNtci6wbm1urKvr7O0p6Scq7S1q6qnrayZpK6mpamsur+oq7e3vsHAvreyssOwt72so660rbqmiJuXpZp1vp+EmJ2Okpiai66WoZybl5SanqCpnqegmJmpmaGnnZeQjZGdg211k6KalZyin5CusqKrlamqmKqvpqWhpaqSkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrampjWZoY2BTTU1HSU9KVUw9TEVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjYeinoyjrJSjpLbHvbTCu8PCyMnFws7Iwr25sq+5tcDDyrbGssG8tbusqa2ssKOjmaq1u6aqp6yqnaivqKSrq768qK28tLe+xry2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmZednY+3nqicpaOam6Cap6WyoZqdpZynqZ2YlI+Um4uWiYykoZScop+gtbClppSxq5qrrZ+fpaSqkpaVoISQnp+clqmloaG0tLq2rai1srKenKOlmpeVmaqhnnhjX2FfTElGSE5RSU5FRkZCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7fBwsDIxL/Nxru+ubKwubS+w8i1wLC8trq3p6Srq62hoZurq8Sipaispp6rr6yiqqi+uKatvrC3t8a3tLi4vrG+wLa0srWwvqOWo5WTmpOtn5ChoaSio56QvqSonairnJygm6afvaKYpJ6iqaugnZWNlZ6TnoeOhI2TnqSgnbaspp2Xs6easKignKufoo2alZ+EjqGanJKlpJqYq7G1saqlqq2snJigoJKPkJapn5RpZVxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUlBLPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqKbo5uexaugnqudnK2fkaKelqSfpqqrl7axo6mztsXCvcC2wMK8ycK/ysi2uLW0sbS0t8LGt7+xubW6tqCnrKusnp+gpaTBpaGqraCkqa2woqeovbWlsbu3trXDsrK3ur6yw8C4uK20tbWjnaSUkZOgrZ+YoZ2oqKqimsKsqJ2rrZqanZimoL2hnaSYq6uspqGZjZqfkp6Ijlh/lp+moaC5qqeUmbejn7OioZywmKGPmpWego+gl5eOoqOVkKWus6upoqKlpJWVnJiLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVl05Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCeoKCYnsOnpKKzoJyyp5Kqo5+jnq2prJ27samstbHIw8HDs8LDvsfEvcTKvbCxtq6xtbDAxbW6sbG6tq2aqbCpqpufpqGnwq2crbGcqqKusaqkqL23pra7va+3w62zs8K/ssazurertbauqqKmlZWUoquhn5+Zp6uvr6+7saWfqamZmJeToqS4oKGjkq6vq6SlnpGhnpSdjpCNlJ2ao5+otaenjZm1nKOvm6CcsJGhlZiVm4CSopaQjp+gk4umrLClp6KdoJ6SkpqThYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj44OU5NVV9SU0o+T15ePUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6SemqDCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0xr/ExLa/xL7KxbbAycK1rLWpsLmswMS0uK+ttrqlmauyrKqYoaeYrbu0nKiwm62frrWyp6q7s6e5s7iyuMCqt7LDvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62xtLafnqikmZOUk6Ogt6OkpZWusbGlqaWhnpuZmpWYqKCfmaKer7Oipo2Yr5qlrJibn6eTnpCVmZqGl6CVjZCdnpSLqamqoqehmp6WjY+ZkIKGlYmVn3plal1sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQldgXUJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKClv6aorq6gqbWqnbevq6OqtLawsLi3sLe4t8S9w8e9vMPCx8G6wcbBuqq2pa27rcHDuLiqrbK8o5Wtsa2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmrq6admJiqoaGgkZegsK+zq7C4mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoZido7SwnJ+RlKaaoamclqSimJqMlpmUlpeelImSm5mUjqmpp6CjnJmbk4ePmYt+jZeGj5tsaW1ibm5YUVFaVEFDRFVAOztIQDc6WFBkXlFXV0VZX15OTFNPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbygqq+qo7G3qaW0squhrbW9r7O4vLu9t7bAwr/JxLnEw8DAucW9wbivtqirt7K8v7+0qq+yuJ+XrK2orpipqY6nu5+lrbOeq6KxsLOsqraztbytsLG1rLC1ssC6xbarvK+xt6ytqqOxpZ6lqJ6jlo+Yn7Kqs6mqspmdp5ualIygpqS0rqehrKytsaezq7Gpo5ueqKSelaGanKi2qZiakpKfmZ+hoJKtoZuaiJeZjJ2anpSLj5eXmpenpaOgnpeWlpSAkJWEe4+ThI2XZ21yaHFzYEdZZlZEQ01YRFo5SEI1Pl1RaFxPWl1HW15eT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApZmfpKu2o6yopa6ttamvs7mmp7C3xrext7/Cwra1usW+zMW5w8G6wLrFuMG6s7Ssqrq4u7q+tauvsbeZmKirq6ycrquPq76eq6+xo6qfsa2zrq61sbm3qq2usae1sLO6vMmyqrW1sbSwrqags6CaqKygpZWWmpmxoq2gpa+WoaSamZKNoqWnsqmhprGsqrWlrrC0r6OZna2nm5eem5qsuKKYk5GPmJyhmZiVrqGfl4OWm46enJqXkYuUk56ZpaOjoZmXk5KWe4yRhXuNi4OMk2xueW92fWJGYGpaSUhaWz17SkdFNkFiVWlbTVxhS1xcWlJTU2JhTEtFYGFgUE1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWVRMRZqWn7CosamspKOurbWot7O3o6y0t8m7tbu7wL61tLfDwMzHu8S9t7+/wbjAvbK9rqi6ubi3wresrrK6lpenr6yopLKplK+7pKyysqano7K0sbKxtbC3s6muq7KmuK+1s8TFtqm1tauwrqmnoraen6awoKOUm5mUsJ6nm5+pjaminpuVl6WlpLenorCzq6ewp62vtKykmaGsqJycnZ2VqrmclY+PjJido5iRmKikoZmGlZiRnZyYl5aIl4+Xm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBdTGVsXEpPZF0/YntHSThHZ1dmW01eYk1ZWVdVWFVpXU9QSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRUSRmaStpKytqqajsLKyqrewtZ+rtbnJua7BvMO4s7K1wsPPxMDCvrW+wMC7v720xKmqubG2t8C8r6y0tJ6hp7GupaaxpZ6yta2qsrGrqKi1uqy1srWrtK2qq6isqbmtsrDHv7ilubCpra2mp62wpaSjrqOonJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6msrrauop2jqKucoJmbk6S1mo+JjoiRo6GWj5afo5eWh5GWlJ6bmZaVh5iSlZmnnKCgjZOSjpF4fo+FfX19h4qKcnRzf35+XVNjbl5OWmddRkSWW0c6Tm1YYltOYWJOVlZWV1VZaF5RU01jWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9sQEhJkJqoqaGpsKSno7O0sLS0sLCgq629zLuuwr3HsrSutMHD0cTGv8GyvsLDvL+4vcWorbestLi8wLGssq6ho6euqqilsaOqsKquq7Gurqyrs7unt7CyqbKqq6alo626rauwwrm0rLmpqaitqaexpamkoq6pqKKenKKslaWdmJ6ZrJ6ip6ihrKajray2sLGgqaOgqq2wrJ2ep6epmqOYmZCgqJiGhI+Li5+gkIyOl56SkoiJkpahnZaZloaXk5SXpZyenYySkI6Kf3+IhHx3gIeFh3V0col3bF9ZYG5jUXNxXEs7hHxGPld1WGBZT2NcTlVWVVdRXGJfU09PaFlXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSmdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGcp6iwtay4ta2qpKqqvcm8sb+5w6+wrbPDxM7Ow7/AtMDDxLrBtMnErK+3rrO6wL60rq6spqiqsammqbKmtK2qr62tsa6yrbS7pbezrKyuqKugo56wt6yqrbm2pLW1pKqnrKyqraCopqexsaSnpaGhq5aqoZOboKaepKOqo6yinqaxtqysoqWjmqmrrqmdoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI2ckZONhY6ZpZuTkZuMk5KSlKOanJqLj4uMfIaCgoF6dYGEgX51d4uih3hqXmBuZldmh2ROQGeSTEVieldiWFJmVU1WVlVUT1xdYVZMT2pXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI7OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koaqvmKmorbWqtbGqpauqqbzAwLm6tLy1prOvw8nL0b/Bu7m/v8O6wrrBxK6xtbK0vMG+s7Gvraysp7eqpa2wq7iuqLCvrrGrtaq2tae0t6uspKqqnKSes7OpqKSztJ+1raGqqKuoq6efq6uoubapqqqpoqmfrZuRqqGdoKSjpqKqnpymtK6npamipJilpqeqnKKko6CZmJ+Rjo+ZjX+HjIeEnp6JhoyMkJCTj4WIlqOajo2bkZKQj5KfmJmXjYuEgHSHgn9+eHWDgHp4fn+InY9wcWZncXhcYXSIak9dmFZIbXlVZFZTY1BNVVVVUU9YW2JWSVFqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDJAZj1OWD9DLD9MVF8vSWs3UkY7lY2voKWqrJmqo62usrSvqqSvqai7v7zBsrC5raK2r8jHyNHAv726vMO+u8TCwL+vsrOztr28wbGytKu0qaW2qaWts7K4r6KttLGvsbmrua6qrrerqp6qq6CjobWtqaGfrrKhtKqeqKero6qhoaytqL2uq66toaeon6yZj7ChmKKgqKaep5uZqbCpop+soqGSoqKjp5maqaaYmJmdj4uHlYh9joaEhaSWhoOEjYiRkJKGh5ahl4mRnpGTkI2RnJWYj4uGhnh0gYB9dHh6gHt0dHtqgoikdmleZWuBdWeIi3xSVnBfS3hzVGRTUV9NTVNaZk5NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+OsKCkpaqjpKOsprSzsaiksKequL/BvbGpuqqnrbDJxsjQw77Avbm/wL3JvMK4sbC1srq8ucCztbysuayjtaenrLG2uLKlp7m1rbS8r7ylra22q62cqa+kn6SsqqicnaqypLOomqqnqqSpnaKpp6m9q7Swrp2ppKCvnJqzopalm6Wkn6WamqiqpZ6aqaGbkZugpJ6Zl6mqkZmakpCLgo+FfpCDgIifj4eBf42Jk5CRhoOVm5SGk6KOlJGLkZuTloeKf4Byenl+fGh2fHt1cXF+aoZ6hYhkX2djcoV7bWd5XV5WQld7bVRhUFJZS0xOcHRdSVpbaFlGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppKKhq6S2srGkqbCmrbnCvbewpLmsqaiwwsjJzMK3vb+1uMG6yLbDtbSztbK9ubq9tq65tr+sorSmqquutbe0qZy5u6ixvrK6oK60tqmrn62xo5ylqKmjnZuksKavoZ+qqaeiqpyjqKCtvKeusa6hqqKkrp6erKaYn5qhopufm5mjqqKamaOjlZaUn6GWnJamrIyfko+RjIKKgICPgXualYyJfYCNiJKQjYuHk5iRh5SkipKRh5CZkJSBiH16bH12eXhienpycHFzeGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZarmJ+Xp6Khn6ikt6+toq+vqKy4w7q0rqC5r6uns7rHyse/uMK9r7S/t8S2w7KwurGywLa7vbequbi+qqS1p6iqr624r6iYuLykrb60tKGtuLWnpqiws6CepaWnoaWZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScp6aompubn6KVnJyanammlpueqJGYkpmdk5mWoaqRm4qOkId9h36Cjnx8oY2MiXqEjYaMjo2GipOaj4mVoImQlYKMl42RfIV8dHB8cXN0YHh4am9xcXBrf3NkemxoZWNhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0s6mpusW3s66huK2tq6+1xcfAt7/CubC1vbe/u76wrL6ws7+yvMK4qru6uKeotainq6+rsq+kmLu2pKu6ta+esbmvqaWnr7KcoaSgpKOglpuvpqGfoqivoaCik6Okorawoaaxq5+so66YnaqlqJ+Ymp2jk5qbmp2lqpqbm6WVlJeVnI6Tl6KpopGKi5CGeoR+hIt6j5eKjYd6goiFio2PhpCTmIyOlpmLj5Z+hpeMj3qBe3Bydm5vc194d2VsbGxqaoVuZnJpa2VoXWRzgWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDKUoaGXlJuqnKOhoqG3qq2gu7elrL3FtLGvo7WvrKyutMPDvLO/urexs7m4uri6r67As7O4r7/At629urWlorKpp6mxqq2xn5m/taSntLWonrK8qailqa+smaKnnKSllJegsqSZnqOoqZyin5KkoKS4qaSnrqaepaGok6CpoqGhmZudn5GZm5afoaqbmpiglJGUl5qNlJOkqKSQiYqPhnqEe4SGfZ2NiouHeoGFiImKkoaXkpKLkJWUjo2Ue4OYj4t3fnxsdHJsbHNhd3VoaGpnZ3CHaGhpZGZpaWBqY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6kppqdnp2jtK2nqrq2p6zEwbixrKO2rqetrrfAv7yywrewrrK2trm2tq2qvbOusrG8v7euu7uxpZ+2qqWls6eprZ2cwKunpa+zqqy1u56pqquxpZieqp2mpJGYpayimJ6kqaGcoZuWn52ntaawqq6hoZ2eoZWgpp+hoJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mfkomKi4l5hXeBgoGdh4uCin2AhYiHhpGEl5SQjo+RkZGMk3uDlY+Gc35+ZnlvamprZnRza2NnZGR2gWJlZmZmamlja3JbX1lebWRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWUpWYmZAOjNCaEglNZqjoI+MraGXl6CWpLOxorK9tqGxxry6srGjt6yqram4vLu6rcCyrq6utq+zuLOpq7mxr66ztrq2r7i9rKaetaqfoK+jqa6bob+gsKOusa+3rrWera+traKZnaeppZ+Vmqeln5mkoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY6UlJqppo6OioqPe4JzgYGKmIWHfImKhoaKjImShZWbk5KPkJGXjpB/gI2Og2+Bf2Z5bWdraWZxcmtcaGNjdIFiZmdqbmxnampobl1sbHNwYFRjaWNmWUlGTE1PWFJRVWFlgFVBV1NZVEdJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNj7CdmZOhmqmxr5+5v7WgtMK7vrqxprevp62kt7i3t627rq2qq7eqs7euprK1sq6psLa2sLO1uqapn7WonJ2ooKismqe9mKykrq+2taytn7GtsKmim5yjq6iclJyno52aqaKklpqfm5CbpKqrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCImJqAloqhkHmHlI2DbWl/d4NxbIaLhn2FjIdxXmNhZ4SYhmuLjpSSdHeLhH6DkIBnh4BndWhlV1xoc21OUGpjZ3OFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KR1BQVVVMSFJgb3RlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5uToJuqraqjvcWvqbfCt729raa3sKWqorezsrKxuayppqy0pq+0oqm3traop6y2sq60rbOhqZ+zqZ2ho5ulppiruZSlpa+zt62upamuq6yloZ6coaemm5egpaWbm6emnZOenpePnaeppLawpKOinZaYl5ejiKGOkpqGoYeTnKB/pX+lqp6SkpqRiIRzeI2OhYihdomNaZeIZn5zeKBviIeEfo99f6GgoJmAfYiedIeOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFheaVtsbFuIcm56coVnhoRaX0dOP0dfTUVSVlZRUVNXVGddTVZIUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq5yYmJ2fqqmnqr/Dr7G6vLfAv6qlt7CprKSytK6us7eqqKWwraW0sputtba1pqeosrCssqetnamgsaefo6KZn6GarLOUo6Wltr2mraerqqyopaGgmKCmo5mZpaOkmJykqZaUopuTkqOlpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dlgMCcv3mEhXqShHyQkJHKcpe8nMV6crWmu5B7gG2WsauweWhsWLGubmVpvZK8bmd6b3KP2H5Ta2O2sn6BcpRzmqGqkFdPV2JPVk5GVVtYUVFTjFxXW1BBXERRTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5yepayyqbDCvrK1v7W2vsGrp7SsrKmmrrOpr7azp6emtKWnuK2cs7K2q6Wkp7GtrLCmqp2mpLCioZ+dlpqenK2rk52in7O6o6qpoq2upaGcmpqip5+Xm6egn5iep6eRnKaak52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhkHaxX2q0W6WAZZyRYGeDe2d/anhrqWW+cmemjHWxanyxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWl+Mq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1dXL0lUU0pDRkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVg62npZ6jpKqxt6y1vb+wtsSyt7rBpqmwqq6oqK+uo7C6r6OkrbKjqbinnrOzsKOloKmsr6uvpqeeo6Gvm6KblpWWmpqrpZWaoZ+0s6KrnKOtraCemZagoqicmJ2jn5uZoaakj5yimZegn6qepqagmqChlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuCpnuChoiTlJN3q2drsVyreo2GlHSJco+HgH+IkJd4goGLmIuDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlXWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw4OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMT08U31uMytYalxPWE1fZ1c3SjhhVTUwG5SglYizpqahr6mns6ypu7bCsLvBrbi3v6msra2tpq2xqaCuu6qgp7Sso6u0pKays6ejop6nqrGnsKelnZ+frpWemZSUlZidrKCZmaSota+iqo+qqKqbnZWXoKWomp6cop6bn6Olo5WbnpeZnKKpm6aZnJuioJeTkZOTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WCeqx5j51Wr3qIfp9quVq5doaEfqaClHuYeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1uTlxRT1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7G1tLqytKexr6KwsqafrbWnmqe5raKvsJ+ztLChpJ6fpqmwqLSoo5udnaqVmJeVlZSWoKmcmZanrbCpo5+PraOolp2Wm6GloZihoaGhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2if5Ghpn+xdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnizZZd0hJ5vnmaUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSTk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwop2SpbCso6u8raa0pqe2u7yyur62trS5uLKltLOgsbGinquvpJemua2ksbCbtLiqoKWeoamksaesqaOZnJmnnZWTl5eRkqGmn5WTpaqwpqKWk62gppKUoJukpp+VmqWmoZqjn62ZoJ6ekJWboZ2cpZWdlZqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6PnYaamXavhoeRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZGlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+ubextLq0pLeyn7Osn56oq5+Up7WrqK+xqq20pJupoJ+nobWmpqmimJ2UpKCTkpuXkZShpJqSkKatr6ahlZmqoKOPkaGZqKSglZmlqJ2cpJ6tnaGdoI2TnpqdoZiZm5aXoqCUl5CmnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/doh0qIGOm4ySpHuUj5+Ee7JenWSgfoOVbZJcq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1Y3SpuVWUdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqawKuYtMKuq62ppbSwt7C1vrm5sbC1uqi6tJ+vpJ2kp6eek6mwqa+ptKuqrqGYoKCmpKO5oqKroJabkaGflJOemZOXnp+QjIyosLCnnpebqKagjJKkl6iqp5SXqaeenqCiraShnqKMlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uHCNe4uiamu2WqGFZZeXaaGip22UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXK1fTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUj4/bnAzQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnryhm7LArq2rrKe3qbevtb+0u6+ut7aqwLWoqaCapaOhnJGqqae1orKnrqmgl5ynn6SruJ2irJqVmY6jopWMnaCbmJyfkZOUqrawqJmVnKypl4yUpZmlrKKRlqqyo5+epquxmaGjj5iilp+blpyWoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6pLZ1fnd2woKasmCDunnAfHW4Y7WCjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHSHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2NteG9aXFlDQUFzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bEsLiwrbmurcCwq6OhnqOhnJuQqKOqsqS0paylnpWaqpimrLicoq2XlJ+PpJ+SjJyinZedmpGWkq+5sqyWmKSop5SQlqScpKyekKCoq5+an6ijs5+jpY6nopSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHGAc5G5g3yGhoyHjXyKh42YfKS7ub2cdHq0o3R3l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05QTUQ7Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXV09KzpWVSc+OzynnqGiv6WWtMO0rKuorKupuq6wxa2zsq22prO4q6mhoaWeoJ2Zk6qjrKmltaenn5uVoKOdq6S9pqGplpObkKGbkY+hp6GTnJeUmJSxtbetmZ6kpKKLkpKmm6Wqm5WppaWbmaGopaekqaGRrZ+WpJ6Xl5edno+vqJSbpqGNan1pm6Z3h3J9mY50eWSHe72+wLpvk4NylohgcmpaXpuJYGOIj5VrYICVY22dd2KVbICalZRlXmBjcJqKaXKLfYaVZ2t/cnV4fX5iW3d0gWhQXG2DfXuLa1hreoJzSkpvhnBOdE1FWF1nYUxbV2djX09bbXVpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVLT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGmn6KnnaObmZmrpq6jpLSopZuXlKCbpq2ovaeopJSTm5WfmZKXpKiokJ2RkJicsLK/rJynnqeiiZORqZqoo5qaq6CjmZqjp6yjoKujmrCblaeglpSdn52XsKWYoaeZm5CcnKKimKWhmZuZmZmPlYFnbX1xd5KYlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpOUmJSYlpqgoZqblKCcjYJ6pYVta32RfIB1ioqBcYJ4eXZ1iX98impzgXSDdWV3fXdrb3ptYGNdcGhNWVpmamBXWm95bW1mVFBGUzlPWk1RTygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOhs6LAoaSysragqaWyp6WwtKrIqqyvpbSlwKazoJ2kpJyjlZWfqqasoqO2q5+YlpWflq2ppcCeq6OUkZuXnZeSlKGenqKnk5KZqKeyxLCbq52rn5CWlqidqpycn6yYoZucoqSvp6KlqJ+umJennZmZoJ6dnK+gnKGmlZeSl5OfoJSinZegjpaTioqNjpeukHyWnIOSgouqqYWAmZeJhJCeiHqEkIeGmpKIhoqWj5uXjZGYnaSWmZOQnI1/jmehs6+FioR2e5KKfXd5em9meY+BgIlqdYF5iHNpc397doOHgmt1ZHlmYGplY2Rma1lse29pa11TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9dXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLmwv6yrrrKxoKqmsq2irLOvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrWelJOdmZmvpa2+oKuikJGdmZmUkZWhnJeonISfq6yjtMi0oKqkq5eWl5qmnambn6SrlJ6fnaCqr6qmpKuirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1oa3uSpKpqZZuYfWeGimVlaWh7jqGPa2eNmJGjd2tqi5mjn5hzbG16hI6IelhmXoaDXm2MioF2XGhzd3aRgIiCbXeBeH9zbXmEdHaJiI+DfGuHWV5sdGRec4lpa3xxa2RfUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pqC6vbqvrLSxqqWora6wpq2tsLywqKajra6wnqyWn6OdoZmZpqqcraOlp6myrZ6Uo4+ir6W2uaWuoo6OmqGZk5KaoJmZpJV8pq6jqLTEuKWip6+fnZWeop6jnKOpqJKfoZ2hqrCrq6SroKqcp5+noKyWoZulsKSXm6mVoJ2akaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqaZmXKrgnzLwMC7cYyjiIKffZeZiZ3AvYKXnZ6NncLBfIJ8k42aw8B9bKWyb4yBb8p6f5t2kIOOgXV5gIB5cXp/h3B3hYyTeW54lGNnYHhkYGWCY150Z2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OENDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavq5+qmJqin5yaqqahnKuipKikpLSknKKSpq2rt7OnrqKRkJmcpZKRn6GYm5+diKetpayuwMCxoamvqZaSn52imqKkqqOToKKdnq2vqq2npKSooaalnayokaOaqK2pmpyom6uglZaklZ+ilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjap7qIeFoHWXk4izY4KrhqGOjbNqhK90fZeIt2GDrVqjzW6Qdnvae3+ZcH2HknZ9ZXqHdnZrfIdufYaRkX5tg5Bhcm1waGBgemRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqo6qmr6mfppuZpZecoq+foJ+op6KloJ+wq5qdlaeurLCqqKuflJGan6SSj56lmJ6no5+upqyxqcDHs6ipsa6Wkp2copefqaqflaGfnZ2usKmsqpyoqKWiq5KsspaloqqqnaKlpKCun5GYppifmZOTkZegcYWMl3WFqIZxsX2ecqx+op+BpY+edquCfa1/nHOtf6yHhp92mZJ7fJd+qoiijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbpKRZnB1dXFhZ21lX29paW9nZFhUXWFaUlNEOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXFtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1dARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaaoqqatq6umoaOdmaKVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaOhkZSgrZudp6OwraWttqu6zrKtpq6sl5WcnaKZnq6snJegmp6fqbOrq6ubraulo6uarrGhp6utpZikqaior6GRlaKjmZORhKRqpHWJeql0erJwgqaKmYxxiaCbh6RgYFKrhX+ug5t2rYKohoWfepmXhntmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXJiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjJQS0wjIEE5RDQsJ8LJ1dS/oZmrp6Cvop6wtLCuqayip6aoqquppKagm6SenaWnp6Ocq5qirKGjn6+hnJqSq6S1r66gp5qdlZOmopCaoqigoKacsaamqbKut8iytaqsqZaRnZyimaCls52aoZSdn6esraSwm62ro6OqobOtoaqzsaGaqKetrrShkZSippeakXuqbJ6Eh3WreXywb4KljImflpaglYHSuLS4yYGBsl9glKmDpYiHoHqYlpp4qsl0mqSVqKmRk5qNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OHbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWtfYVlkblxfWUlOTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqikqquqpp+mppiqo5+uq52loKyanqmlnKe2nqKXk6mrtbKsm6WcoJSPpayRmZyoo6Gqp66ipaepsLXDsrOqraiTipecpZuho66ll6GVmZympq2csZ6vqaefrKO3rKGxuK+dmq6msbKxo5OWpqKYno6CnU54moF/n3qEo32DpIWHpp+dn5SEuHt7ebmCf8zGwrZ4m6GRi59+mpaXinaemIqkl6Opf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjXd7c4Z/cVxubnhyaoJwW2RgaW9jZF1MTVFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlra2uqqecpqebo6ihs66iqaayoJippJSjtqKilZeiqbS4o5uhnKKSj6GxmZ6bp6ahorCunaaporayxbGtqa2pkYeQnKidoqScpZeemZqapqWrm7Cir6WnmK+ku6yhtratnZy0sbevsaWXnK6fop2Fj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWBinGqhoW0bnJpmqSclYqffJiZhoePc6+CpZuijqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY56fnmQg25qeWl6c2+BdV5lZW9uZmhgS1tYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIqtvr+8urSelqekrbWhopmUoqimrqurmKajn6Whobano6insKOUrKOOpK2inZCamqqzs6ScpJyokZSXrp+fnqeknaidtpujq6S2rMSwqaupooyEjpyioKailpmanZmcmaemp5mtqK+kpputpr2slL2vrJ+hr7K3qbKlmqiwoqeXeaiRfXywd4qApKWInG2ycKGHrXyhj4OnlZiArImFrYWglaqgopeGn4CZlYB7kn6rgJ2aloureJ2hkoqUkoF6r16kgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpqOfHyEmYBrbn9jf3RugHpgaGZxb2loaENaYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDQyLiosQVRWVlZVVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK23paOOm6Sin7Cwqp+loJ6tmZ65oaOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoZ2moZqlna6Yoaint6nBr6SppJ6LgY6bmp+nn5KUmZuVm5qmpaabqqytpKWfqai+pJbCrKqioKqxt6ispZ6yraeol3WvfpCLnIWHfrqtipllsI1lla19oY+EppWagayKhLCFppqkoaGRhaFcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tFmyfVKugHqsWIChbZiPqJuMmJKamnx6kZ9/ZXV/Y4Z4dIF9YmpncW5nZmZQVWRcQVVgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1dYV1dXV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktamgipqgnpyzs6mfpKGetpmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+pmaKepZ+ao6OlmaCiqrOpva+kqJ6dj36Lm5ahoZqQkZqckpqYqaCimqmuqKamoqSpu56gxqakqKCps7OqraWeuqyrq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KE17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqedkZuSmqB7g5Ode2R+e2WPZ3mCfGFsZmtrY1FiW1NqXD9VYkNNKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpbKmnYuYpcCquLKoosCnqLOdn7Kduqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnqecmqGpo5mfoayuqrqtp6Oal5N9iJmRppyTj5GYmY+YlKmboZmqqaGrp6CjqrueqMSin62iqLKyp66pn7mmra2Zc3aqpbiGZImgcGiukYuQbm53pJCZn4F1rpiUcI+LcZWoo5qXrqRybGxsZot4b26CmXGBempxaWeKl5aYcWlphohncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZH+Nk4+imZmZk5qifomRmHdniXhpj2t5gHplbWRnbWNLZVhKa1o6UWZGUSdLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOzqpiSv7PFyr+3qp/Bra6koqisn7qjpK6rraaOl66pj4uFlZatnqaqoJ2ko6CRi6WSp5mpmpejqqGWnqanqLC7q6uam5OTfISWjqaZjpKRmZWOmJaplqCZqaOcsaadoqu5n6/Bp6OypaqusKmrqaW1oqy2lYqhqKa3nYmWo5mIqpuRlZ2SqbOZmqOqoLKWoqGdn6KcoaWilaunjZKSjIeTnJ2VkZmTmZGPlYWBpZuYlo6LlJSMkIeFfmeJfnSCdXOHinCnbHqTkJOSgIGNj5CPnZWil5qapYSJl5Bza5F3cYx4d316am1lZHBlVWFZQGpcSGNiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlRRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtrGQjqzIvsa8uqujpp+dp5+xqaO2p52ptKaokZisoouHiY+cp5WspJ+Yp56ekpSjl6iaqJqUpqGkkZypmqK2u6eqmJqQjX2BlYyilYuVkZaRkJSYppCgm6qgnbajnaart6euwK2itqWurq+rp6extp+tu5iRpaSmtqKSnqegjqqgjpOfo6uwmqCjsKivmKOgnKOqnp6enZesnZOZoZuUkJarmo6ZmZeRlp+RiKGelpWFko2RjpWLgX5mi4V1hnV4h4JznGqFj5KTkIl9i5WSkpiUo5OfmaSFipuKfXSXdHuMgHN8f2pvZV9xamBbYFpuZFBhZlFaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiYmFhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW9sK6to6SbfJ+ksqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmZuui6mWj6iZqI2aqpCfurekpJicjYl6gpSNnJSLlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wir650o7yisJ53eJ6nr7iUdayjnomAq39kXGJ2oI+ln4SYfW2Ss5yjp62qomWen5JzeZqXcYGZqJhtf6KoimWcpp2SmJiWjZKckIaem5CWhJKHj5CSiYV3ao6HdoZwe4V/f2Boh4mTkYtadZSQZ2iQj3N7qJycZnubioV6mWqFjIRveoBrcmVgd3Bsa2lcZmZiYnFUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnWFFKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6vrKuppaitoqetpJKWq7exs6ebq6itmHSNnrGgqKunlJe5oKCPnKSdkX+JiJqejKuZoZSnoZ2OlpKehHatj4inm6mSmaWKnbu0qKCZmIuJdXeTjZeTipSRkZSNkJShj5yhp5mcspWAjJu1nbOMko66pp99p6J5oKy0f46NpZ6Di4aQsKqvjYuXpJt6gYushZydoaeop4eVhZh3pZt6h5yBl6eCgnucsnqKhqGYmpWYloKRl5eEm5lieoeQhY+QkouDbXCNh3mAcH+AhH6Fc4WDlJF4lmiSdKCadX2ZhaOgiZh/lIyFhZprj46GbHl8cXFoZXhwamxrXGVsamZ1XV5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lcYmFoZlpRSDlFTDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6asrauorKCnr6amqaWZlK/JwLGil6iqt5+RhZ6tnKeioI6Qvp6ajJ+aoJB8hY6Yl4eqm6CVn6CRjJOJhoCRp42Ho56klZmfiJ+6sqiempKOhXF2kImVkIqUkI+bjJCSoJKYoaSWnquHn7SJtJqtisqHqayItoWNsIGvrIKojKaYjZ19qI9ze3edj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hlKGQmJeBj5Sci5mSi32Fk4eNlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYWagY6Ph4uacZCUhml5dXx4aGl2cmhobF5kcG1nbllnR11STTNFNDdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaummpSgpKWspZimrLmksIGiqZ2mnp2JlL2Zk42hkp6PeYSWlZGHqpiampmhhI6Ld5ucj5+QiJ6lnJeamYikua6lmpyMjH5ibY+Lk5CNkI2NmIyRk6CPlaGhmaGnfqGnh62doJatj52cnJCFgKCMqayFo42pmYyaf6J1gZmUbIKtdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXgI17ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpnoG1bb4x9Z1pghIFjWFFwd2ZudXNram9danFubGpZaU9dWUY5QTVIRF9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6quopmYoaOmra+hnrC2pKmToqGgp5yajpm0mZCLn4yVi3WBk5KMiqaUlJidnn6ShYWspIebkIqZqpmbm5KJp7GnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfn5yipH+TgY+ioZSgdpyVj6eCoKZ/haerg6V4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2JzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2Zs5ZyfZifs3V0XJ6yg2tjcHV3cmlvWGttc3NnXWleYkxFPUQ2UUJaczM9U0dgSlI9PDM5NTo5NkQ7O0BKUD9VTU9RQERfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42ktrStraCaop2ko6avnZyzr62UmaKaoaWZm5Wfq5uLiJJ4i4VxgZaNio+gjpKUnZh9kImNqKCHl46JkqSVnJuNi6mopZ6Ql4eFfmp7h359kI2Di5GRiZCUoYOXnqCdn56LiXecmKKNn3Ghioeph5uljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml2pf3m7a36qXI6EXbRoXW5yenhraVxxa3l6ZGBmWGJCUUZPN1dDUm81TFtbX05aREEyNTE8OzdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7mxr6yeppycqaCfr5yesqmun5ilm6GgmZeXoKOZhomNaoiAcnuXiIuWlYORlZiQeoqElaScipSPhoyfk56diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKKen6GTmHJon4mfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm5zfZVwmnRrpF6VdkhlZGF0cn9/b2ZgbGl3fGVlYVFfV11UV0BaRlFoRVRXXWJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2Vjdm1dZWdma2RlbGlpa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqVoq2lo6mQoJ+dm5qWmaGdloiHiXeGgW95lYWRm4p7kZOWiHKAiJKhnHORkIGJmpahnIWPqZyblYuLi32DbISFcYKhjHiGjYiIk5mWfJOjoJ6iiK2GfbWEjp6de6WWeqmAlZuPiZ+bfKdod21+mXShc3J8noaZcJODrn2kg6WdmYCjb16oZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZttfHCWbX9yonJdpGdzpmBopm2b1Jp+hptwenuXbJx8eJdzbqmkZ2FlenKAhWxoZmRvdnhoYGNTXGZRUWJIWUpVYVdUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFpZXxkXmRnZGtkamxnaGxol5p/r6pUXEt+qa+xs6+yo5uZhZmqoaKlj6apoZqri5uZmZSZk5OhmI6HhXtwfYRofY+DlJqAd5GOj4lvf4WOkpJsl5N8ipOUpZeDj6ublJOLhol5g3aIgW6Cn4Z4gZKGiJmjmHuUoqOZn4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSkrq+Kl4yAjaSNlYOtoJN2tba1yaFzlIuBn2Cel6lteZaHoJt0ooh3oH6Tl4uBcE1mo5Jwm4dzpHt5dGGDgWt+oGtxZF+ccX1zlmh5aLK1tMamc5h9ep1rnJurdoWbbnd5mGqae3WYclFFfbNfandseohna2hjdXVxbldfVFlpUFNoSVdNWVRWXmlsb1ZoV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxobGZjZV9cXV1eaWJkaWt7X11kZ2NqZm9tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICYq6Ojpo2mqJ+ep4SbmJeOl5CQnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkYKMhZ2Neo6Ml6aUhJmqmI2Si4GJeoB9jHlwkKGGeoKVh4mWoJZ/lKWonJWVg2ZueJxsomR7caV3m5hwZ6aAlYp6pHqfloOXc553gYqVl4+5bpGKomJ9maCViG5yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJaXltioWxdiItuen1xcWSlbXiiZGenaJlzjJlwonBViZBvoF9mqFSLXlSYbm50a3ODbnFpbHl0a3BSWVdXZlpUbUlaUF1JWGlpc2pZbFdRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbWZrbWOco5eleWRzbYumraOpsLGmn4uAmKyen6eNo6KcpKOBlpmUjpqQjJiQjop7h3GAiGmLi3yYm3N1iX6Qe2SDh5SJipWZgnyJiJiokoGjrZGGkIuCin6AgI90aZCmhH2HlI2ImaCPiJOppp2IpniVm36kiJaLsZidkIKvl5+ldpSGeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpKVYH6ri6p2fn6KpJ53n3yDpJWdoGqbiHisaJ+ujLZ0d76NpJNag6eOq2F2c3VyfHVxY2t/b2ltU1dbVmFiXWtNXVJeSl5tb3dgW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYOAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYmxqeG1nbG5ilaSpnIF/naOWqamdqKaupJmKgpism5+mipymnquehY2bkIeckYaSjYyMc4Z6iIRvjIR9mZN0dIZzkoJtf4uRh4aTjn17goeZp4+Ap6ePgY6JhZV2goeSb2yLqYGDjJSOiZ2fiYyUqqKfj4B1lJeIfoF5lK6if4GacY+Gd46Jgn17cqeMcn59epiWm4SQeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+Bf4t3dHKUdW95bm2HbIOFXXVnd45lf4CEjKeZfXR7lWqJiHCBdn2Hd25uaI10enyYeIVcbFh5j2lveHNycHh4cF1sh25qZ1ZbYFddZmtkVmNVX1JgcHl5bWt3Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF4i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2Tt6imiaCimqajmKScq6KhhISYrZKeooqbqJuqmYOCnIx/l5SHjoqJjXGCfI99fo6Ee5iPdHKEcZWFe32Si4aGj4R5foCIm6WPfKiijIaQkIWVg4aOmHZyhKmGjpKdkImfnoiMm6efn6qDiY6Vmn5+iZatp4+RpY93b5uPgXiQbn6ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GBfn+Mal1qZXuGhImAYGl4epp7goqBdYGFgWd3ioZqX29xgXVecYmAiI2klIVli42DbneLhHGGj3pxaGlmfIR7lltca2hudlt8eXh2b3Rzg2hdbotra2JaWl9bWWxxXF9hWl9eZnR/fHZwdWRra2t8fXN8eXVkbnVobXx+d3p8e3l6gIB+b4aKhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N6b2hqbWCLiqmwoY+ioZqenZeemKijon6Dma6OoJWJnaORppWAfJiGfZKZiomHh4pyfYGMdoWLgYSXinJvgHKYhoN+koOEhomAeoGEjZyhkYOoooh5jpeJlYuLnJeEg3qtgpGYmpWKnp2HiKGqn6GipIuIk5uco5mVqqGnpp+SmoaUjHp2jY2Dp35/kpCSlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDh5GLfImehIeMkImJgYWEkHd8enSZoIiGiZ2JhJN+fYqAf3RucoSBfXaFhYmOpI+ChYyGgoyQjH2IjIqRhHpuhIV+eplrc2lhdIpxfnt4d3B4dYJdXm+HaG5fXlpdXVNoclZkXV1ibWh2fH10b3Bla2ppgH1ueYByanBxbGeBe3KCgHh/fX+Ee22CjIZ8enh7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWl5enFnaWtkjIecuZ6WoaCYlJiZlJikoZ58f5qsj5+Oh6CdjJ6WfXmVhHyOmYqGhISGbnmBgXOBh32JlIRta356l4eDg49+gIeEhXyIhY+cn5OIrKCEc4uQhpKRi52RfY17qoSOk5iWj5yXh4ebpZ+imZyFgpKamZiPmqefpZ2cj5V/j4h1e4aNhKV7fI6QkYaZq6KelJ2QjqmNkICdjIiTmZ6Cj5d+ho6Db3iGcnVgf4SQhnWNmYGDkIOHhX+FhJVueXZ0kqGKi4WahISMc3+Je3xxcXqHgnp3iI2DkaWOhYOOgIOKiYp3homLjX5ybYCCfW9pbG5oXnp/aX59d3Z3dnt4XWBxfm50YGNbXV9SZ25UZlteYmtpdnp/cmxtZGtqaIF/bHSCbGx1b3pwhnpuh4B2goB+hXZxgo2Ifnt8fH97gopgaHtqdWlpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuanp+ee3ifp5Gci4ellYyZmXp6jYZ9iZGEjIKCg258gHlzgYR9i5J9a2h9gpeJgYiNe32GhIZ8kIORnZ2TiamdgXGMi4yShqChioWMfKiRiZCSl5OWk3iNo5+gnZWYfoCQmpiSjJujoaOZlpCafYyDd3+Cjoagf36MjI98mKWiopOakZCmjI+BmpGJkpebfpOSfoeOgXV0gnF3YX6AjoZyi5Z9iIxyjH+ChYaPaHhyeIuYkY9/ln6IiXKBhnt8cHd6ioN5eI+LgpWkk4qFj3uGhoeEdoOEiYl9aHN+gXp8cm1saF9+dGl9dnZ0fXOBa19gdHZwd2RjWV9fUmtpVmZaYGFoanZ5gnFna2RsaGaAgGtufmhvcWx+eId7bIyBc4GBfoF0doKNhn98e4CBfX+PaXKDbnRpYYdobGJfcVZ0b2xtYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnX13paGOmICNo4uJmpZ5fIaIf4OJf4mCgX9yf3t0doOFfYqRd2djfoaXioKKi3h8gI2DeZeDlpmYjZehnH9wjIKRk4alm4eMiYOmloWTi5aXk5J2kZ2goZeTlXh+jpeXjZabnaSdmJKUmniNhIJ3g5WNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KWmX6YjXyIjYF2cX5ue2SAfIuFcYeTgJGCbIeDgYCJhWZ1b3uGkZeLfJN4i4h7f4Z7enF9d4iFeIOPh4qXoZWBg4t2iISDgnd8g4qGeGF6en91gHlobWZif2preHR0d35yfWNkYXNudXJtYVphXltsZVNkWWFhaGt2eYZxY2tjbWZofINtaXVobnBpgH2Dem6QhnKAg4N+dHyDjIGAfnuCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5p7l52MjJmQeXyBjH58hHyBg4F4dHl6dH2AhH+Ji4BkX32LlId/hIZ0fX6Lf32ZhpeVmI2kopmAc4d7k5GJpo+MjoqToJKEkpCUl5GLgY+Xn5qRj49yf42Rk4mdnZ6ml5eMlJVyi4yJa4SXj5l6h4iPiW+XnpuklJWLjJ6LhoGRnH+SkpWGmYh7ioqBeXF6bHVsfH+Lfm6Gk4OVeHGChH5+i4Blcml7f5WWg36NdJCHgniGfXV3f3yEgHuCi4KLk6OPeIOBdImHfYB0doKJhXFifHZ7cn5wY3BkZXxjb3B3c3l4dHVid2BwbHZub1xcX15ea15QXlljYWhudHuJbGBpZWtjaXeHbmdtaWttaIF9e3hvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfpKidioqShoqdi5WYfnivmY2Yfp+UkZeUiHd+fIp9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGgIOCc3uAh3qPkomTkp2VppyWgn2BfY6KkaOJjoqNmJqNhpKZlJaOioiMkpySj4uLbYSQj5GInpmioJaViJaQbYeYg2WFmI6TeomEkIpwlpuVo5OSiYuZjIF/kJ19ko6SjJmOe4qFh3NzdmxxbnV8inRuhpGPk3F1gXyBgYh8ZXBseXuYk3yDiHSQiYBzh3huf3yAhXuEi4eCi5SnjHqGe36LhXh+cXCBh4VmaXp1dnF8Y19xYWt0X3Fre3p5bHNxZnpeb2xzbXJYW19gYWxcUFdYZWNncXF/iGddaWlnYmdxjW9kamhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTj4ihjZaUkIB0fHeFeHl/cnN7hmtzcHpui3aAgYdvcFtZfpGNh4B/f3Z1gICAoIeSi5SemqKVmHiKf4GNiJydio+GkpiWhYmVmpCXjIyNjYyciY6QgmyJi5GRip2WoZuXlISXhmmDooFlhJyJkH6Lg4uBd5OZk5+SkYmJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdIOPmYtxd4B1goiDeWZybnV/mI57h4R5k5B5dYdzb4h6hIp5ioWBho2bood7g3WCi394eW5sgYWDX3R1dHJyeVtfcWFwa19wa358cW5ua253YXBva3FtWVliYWJvWVFUWmZnY3VwhINjXWtuZGNma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHmFf3iIhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHR1dICDfqSVmqyep5aFjYR/l5SDkKB2jKCUk4eMm42Wjot6cnl1gnByhXRxdohscG52bYh2g36AbW1VUYGrlIaCd393coN6g6GDk4KVlJqdk5t4knuDjJKjmZOOiZWZkoSHl5mMlIuJj4+HnYSQintyi4WKjoicmp+blZN/k31nhJuGZ4Wfh5GEkYKJcYORmJCcj4+MjI+Md3uRkHqOi4ySlox8iHyAa3dqbmtsbHt/Ynp+j5eBdnuBeIOMfXlnc2xzhpSLfoeFepKPcXmDb3WLeYiKeYh8gIqOnZyEe3p2got8d3FqbIKEe2F5cW9tc3RWX3BicmJgbW96cWlwZmd1dWlybGJ3ZV1XZmFgc1RRT1xmZV15cIh9YFxpcmJiZWaRal9oZVtncH5wa3F0in12fIaAdXZ+jHl7hYF4iINzhoV+jIyEfHmVeGZyaoNgiH5vb2t6YGpudH91X3R9eYd4dHOFfXigj5mwnKWOgot/g5qHgIyfgIualI+FiJiOj4+Ed3R3dIBxcIV0cHKEcGtpd26Dbn19bXRzUk2C38iS1pN7cHWEdoWhhJR3lpGZnZGZe5RzhZCeoZKTkYuTnJSGf5eWiI2Nh5GNh5t+jYB3eo1+iYyKnJucmpSSeYx1ZoeQhWuHooSRiJaDhmOMkZmPlYuXjIyKinF6lIh7joiKk5GJeoZ8f218ZXNva2x6eluBeZCQgXp+f4CGjnt7aXNqc4qPiYGFhHyUimt9fm1/in2KhXyEeYCNk5mYiXx1d4OPeHNtZ3GAhW5sdXBpanVuU19wZXBaYG1zeWhsa2NneXNwcWRgeGFgVmxfX3ZQTkxiZ2NdenGJdV1cZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fYtzgIZ/e4l/comIgZGLiHx+mHZlc258ZYh+bnBsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOPh4F0eHB5cW+EcG1vf3NlZXlxfW15fWpoa2OkmsHcrvChc2x2hXeGpIaTcJeRlqGVnIGScoaLopeJjZaLkJ2Wg4GWkIWJj4CRi4mVfYZ6dX+JeIeEjpyamJiOj3aJdW2FiIl8iaKDkYmchIVei5OXi4+Jj4uLhIlte5aBfYiFiZGPhnaGfn5rfWR4dmpueXNYiXuSiIV6foGBhox/eWZyaX+JjYmCgX6LlYRrgXVtho+BjoJ9gXh+jpSRl490cneHjHVzcWd2eoRjdW5xY2p2aFJhcmhsVmBvdXphcmRgaX9xc29bZHJhYlduW114Tk1MZWdiXndziW5cXGR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJkd3mGjGl2gIlyf5yGmKebo5KEfXGMlHd5jJ6FhaGNj3yWjYCaiIR7c3dwdGpwgmxqbXx1X2F4d3txdXtnYGR869q1ycPch3NsdIJ3i5yKj2qZkZCelpSBiXGFiJ+NhIuWi4yYlHyNk4iDiZB7kIuFjoB/dXiDhHKIgpOclpSXhYx1hn1vg4GHhpihgpOMnoOJYYOUj4eKhoqOh4GHaXyTf32DhImOjYJyh39/cXdodnNqdHdsWo19k4OFfYCEgYSKgnZhcmuIgY6JgX5+kZB9bYFrd4WOhJCBe4B8fY+RjpSIbXB5jIV0a3Bsc3mCYXVqcF5sd2FSZXNpZlNgcXd1YXBgXWiEcnRrWGhoY2lZbVdcdUxLTGZnXmJzc4VqXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHOFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHmGcX9vZ3h3koJkdoaFcIqWhZmhmqKKiHRvkoxxd4+cfouaiYl9oH+EmoCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAaWFnYX/Vto6RpnhvcXh9cZSSjohrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYmNe46MfYiEenN6g3txhoCWmo6Tk4GIdIKFdYJ/iZGcnYaVj59+iGJ/k4eFiIWLjYCAg2d8kIB+f4KMj5B+bYN8g3VsbXd1dXh2bGOOgY+AhX59hn+EiX9wX3FwhHuOi4F7fpCIeXCDZXmBiIWKgHqEfH6SjY+Rgm1ueYt+dW1ua2x7f2RpbGtabndaU2pzaWJRY3N4bWNmXlprhG50YlxoX2VtYG9VXHBPSE9nZlxob3KAbltcY3NgXGNsd2VlXV1abG1jbWpzd4Z/cXB/fH10eIZ4hYJ8gId1eYmBk5V8iYZ2iIFweHl7hJNvbnuBd16DgHSBbWl6dJRzZ3OIfHGSkYOZn5ughoh2dpR/bXeUmH+IkISLjpp9jJp3fnZycGxqYXV9Z2JqdXpbYHh8emxwfmVjZ2dXnY9fcXOWvcWFd3KVi5GAdJiMh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH6Th3SHhXZ2fYJxdYaBnpWGlI+CgnF+h3ODeoiWm5aGk42dgIhmfZOCgIaEiolygX1nfYt7eX9/h4uPfWmAfYR2ZnB5eHR4dGxrj4aLgot/eYOBhISAa15wdnp9i4eEe4COf35ygGh4gYWJhIF3gnt/lYqOi3xta3qJfHZ0b2hofndlXXJkWXB0U1Rvc2liTmh1eWdhXl1Zb4FwdFplY11rbmFxUFpsUkRUaGJabG9ufHBaW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeY+Wb3pzcWxqZGB0e2lgZnJ7W2FyfXpmcHphZWSOsbJ3S2JapdrSmHN8ko2Ren+WjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqDlX9uiYZxc317anmGg6WRhJOMgn9ufoJ1gneEmpeSipOPlIWIcHqShH6DhImDb4F4aICFeHJ/f4OKh3xlfH6EdmNxc4BqenFvdZmNhoSLfHd5gIR6gmtccHxyf4eDiH2Fh3qIcYBtcIKFjYKCcYN3f5aKjIN3bWx9hH52emVoan5yYVp4W1pybk5YcnRnYEtud3ZiXlxbWXV+c3BYZ15ma3Ffb09YaVM/WWdfW3FraHpyXFtZa2VZY3B5X2hdXmVsaGZsaXF4f4dvbX99gXVwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9scH50f31vcnx7k3BvgX95ZpKKgqGYnZGDhmeHhHBnepeKf4CFgpqKgXyNjWl4cmxsZl9hb3ltX2JveVxkbIN6YXF2X2Rl1eu+izM6PouPgHJ5hoqQjniFmY5/lI6Nf25thYyLdX2Pf4WClYl8g3hudoeEgpV2bYeEa3V7dWV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyMh397koh5gIWOg2yAcmmAfnhtfHuBioN4YnmEgnJkcWl/bnZydYKcjIGAhn90dn6Ac4FvW2t9c3iIgYp7hn98iHd5cGuHgo6CiHCAd32TiYp9c21qdoCAdXVdaWl5cVpXflRbcmZNW3NyZlxKcnlxXVtbWl52gHZpWmJbZ2ZvY2pOWGZRPV5mXV52Zl91cVtZVW9kWmRxelxoXmBnbWdqa2lweH2ObWqChIB5boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt9a3R8coZ7c3Z9f4x6eIR+fGuMjISbnZaMgoFtjX5saX+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5dNluwtnVqgIl+lId3iJmHdZCMindwbYWChnR5iXiJfZOIen9zZ3aIfXyWbm+FfWh2eW5leomFpYeAh42JfW19dH5/e4qXhoGSkJiJi4WKfJCKcXx+hnxpfm1rgHt5anp2goeBcmB3gn5yZHJndoNudXyGlZKCfYKAcHd6fHV+bVdtfXVziYCFdoZ0gol6d3JtiH+Of4NxfXt8kIeHeW1taGyCgXVuXWhndXJSXH1PXXJdT1xzcGRWS3R5a1hZWVpicoF2YV5dYWdkaWpmT1poTkFhZFxgd2FcdW1YWFN1Ylplb3NYal9iaGtnbWxpcHd8k2xphIp9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXeKd314gIKHf4R+fnpthIyImKONhYR8dot6a22FiZN6fXuCkoCAfoqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/v52opcm4coWEdJV+eomVhHSSjodyc3CEeoJzdYZ0iHeUiXl5cWR3hnl/kmhxg3Vmd3ZkanyEiJ6CgH+Ojn1xfnKDeH6QjoJ3lYyUkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWhgd4h9a2p0aHuBanaCjZGVf3x+fnF8dnx0fmJVdXtxcoeCgXuBcIaJd3hvb4KBi318d3x6c4yEgHVncGdsiIFycF1oY3RvTGZ3TV9vVlRadG5iUU91eWJSWFhdYnGDdFxiXWllZWNrZFJccUlEZGJcZHFeXHhoVVdWeF5cZm5pV2xeYWpnZW5uaHB3epNuaYiMeX5ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3WDeH+BgYKEeoB1b32Ki5ueiH6Ge3eGfGh1h42Sen+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpyIeIs3KKeXGPdn2JkYF7lIuAdXR1fnZ/b3B/bYV0lIZ4dWxgeYF5iI1lcYJuZ3VuW219gZCTgIF5kpJ9d3pshXR/j4qDcpWJkY+IhoZ7f4ZtdXd/bWh3ZW18dm1qd3Z/f3xgYniGemh1dmN+fGh1h4+Oln11gHZygHp9bYBZVnJ9b3OBhX1/d2uIhnN4anR/goJ8eXt3enGJf3tyZnNkbYuEbHNbamB2Zklvb01cY1hXVnltYlBTdXdZUVZYXmFyhXBdYWNtZWNeb2NVXnJHQmZfXmdpXVp7Y1JWXXZbW2drYVdrYGBuZmZscWhwdniPdGuOjXZ/d3h9d4GDgXt0fYOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4iHx9gX2EgHt+cnZ4i46fjIl7ind1g3pefoeajXqHhHSGh4V3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi25yhXN+hox/e5OFenl0enV0empsdmOEdpKCdm9nX3yBeYuIZHGAampxY1hte4aciYOCcpeTd317bYZvgImKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHF3fXx5XWV6gHhpdXlngndodYiMjpV9c4dqb36AeG59XVdwfW1zfoh6gG5uin9wdmZ2fn9+gHV6b3lyhXp4cWVxYG2MgWtyWGtfeV1JcGxPWFZfVVZ8a2JPVHZzUlJUV15jdYZqXWFra2ZjWm9iWWNwR0FoXWFnX1xWfF5PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulYp1gHt3fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt+fYaDhId/fn59hn98eHZ5dpKUn36NfYtudYB6ZISImIZ0kopvhYaCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnufuG5idIdpdX1ze4WIe36NgHd4c3dvenZlam9hh3WOgXNqYl59d3mLgmVwfWdra1tWb3iLpIGFf3CZknF/d3SAbH+Aj4Zyk4eMiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1tnfXx5ZnJ+boV0ZnaGjYaWgHCLZ2t7g3RsdWJbbnpqc3qJeoBldIZ8bXBndH12fH5wemp5eX94dm9ka2BtiX1sblZqYXhWTGxtUFNQaU5ZfWhiT1V2bE1RVFVfaHeEZ15hcWlnYVdpXV1saUpEalpiZVdZVXlaTldva1ldbGVdWmVjXnRmbGVxZnNwdIF4cJmFdoB/eH98hYd9dXOCh3+Vg25zeXt7c3KFhoiJhHmBfXaPf32EiY6EgYN6fouDe3d8d3aanZh6ioOHanZ+fW2FhZWBc4+CcYaCf4KAcGZsZ1hdW1xbVGVwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anZ3dHSFhniChXp3dHZua3pwYWhrZ4Z0jYNtZ15ffG96iXxobHdmamRWV3Nwjqd9hHx2lpBze3F7eGx5eo+DdZd7iIaEh4R9dXFzbWh1XW1pYGx1ZGdmaXpve3JZZ4F2dWhwgXiCd2N4hYt9lYJvjGtte4FxZnNlYGt4ZnB1iHl8YXWDdWlrcXR5b3h3cntlfX19dnVtY2RgbIZ8bWtWamNyVExrbFBNT3BHXnxmYU5WdWVLTlRYYWx4f2ZeZ3NqZWBXZFhjcl5MS2tZZGJWVFVzVk1Zd2VaX2xgXFtkZV93Z21ib2l0b3F+dXSZgXiAgXiAf4aEen12goN+mIVucnR8e3VxhYWOgoF6i3V0kIB9gZWOgIWEfH6Mhnp+gXZ7o6aKeYmGhWx1fHx1hIONe2+GdHqFfYKDdW5qaWVWXVtbWlNjbmVcWWJ0e2pobWhgYVdeWmmAaWtwgGhtYml7emt1dXVwh4J6gX53dm57aGp5al9lbmiBd5CEZ2VYYXZpfYZ5bmlvZmZdVVhvaI+od4F6fJCOeHRufW1xdHiNfneUdIaDgIaJdmpzd2hpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+enhid4WFepGGc4hycHp/cmNxaFttdWRucYZ6d2FygG9naXhzcWt3dnN1YoJ5fXV0b2NiYmx9fGtrVWliZ1RMbmhQSFJsRWF5ZmJNVHJeSk1VWmZteXtmX21xamRdVmBWb29YS1RpWGdfWU5VbFRLXXpfXF9sXV1bYmVgemhsYW5wdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0f3p2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGAgnVviG99gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFXW1xrgWVydH1qal5teHdodXhzb4d8fn56dnNsemhpd2ddZHNneneSgGNjVGRvZoGEdnZmaGlhV1ZZaGSQqG9/d3+Kjnpwb3tmd215inp2jnGEfn+Ah25kd3RlaGldbGJecHBbZ19tdWV6aF10gG5ya3F7f3Z2ZHWGjHyJiIB/eHJ1fnRhcGxYcHFhbm+CenNjcYBrYGx6bmloeXdzcGSEdHh4dG9jYGNtc31qbFRpXl9VTHVjUUdXYkdjd2ZhTFRxWUtMWFlpbXd7ZWVucmZjWlheWXdmVUtdZFhpWFpJV2VRSWN4W11fbVteXGJkXn9pamBudHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59f4WJanSWgXuKnX1+hXmAe358holzcY+ujHx8h5B+ZnGIenR+fXdzcIZtfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXSGaFhwbVteWFpcbHticXd2bWNcbnR1aXZ3cm6GeX+Bendvb3RlaHRlW2d1ZnZ2kXlfXVNlZWqCgXN8YWJpXFRYXmNkkKVpeXSChZB4bG15Zndse4N5dIdygXl9eYBpZXdtYGdhX2tgXnVrWWZdb29iemVbd3xrbm9weHl0dWZzg5OAiYOJenZvcn1yYXhjWW5uYG9wgHpzZXGAZF5tdWhjZnh6cmxtgXNxe3FwYV1kbW99ZWlUaFlaVU55X1JKWllIY3VkYUpVblVKTFtXam1ze2RsbHVjYVlaXGJ3XFRMZF5ZalRXSFlhTkhqdlhfYW5bW19iY12FaWhibnh5bW9qdoGQeW6DfoCCkoiEgXZ1iXSMhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZont7f4mWeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxyiWVTcm5bWVhXYGx2Y2p1ampfW251c251dHVrh31/gXx3b25sZGlwY1trcmR0do5zXFdUZGBxf35xgVxhY15TWmFcZJOfZXJxhYOQc2tqeGxubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF93aFdiXnBoYXdhW3x2ampybnh0dHVqcoKWhId/hXZzanB8bWZ3V1tpbGFvcX95c2VvflpgcHBhXmlvfGtqcn1wb3ZqcGBaZGtte2FnVGdVWFNRd1xSUFlSSGRzYmBHVmxRSVBaVWtsa3xlbW9yYVtaWFptcVhTUGdYV2lUVUdaXE9Jc3VYYGNuY1hhYWFejGpjZW16eWxvaXZ5hntrhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSFgZ+JdYGAgXR/gnCHg3Zvopd0e4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWdpc2hjdGVlXlpwdnBydnZ6bIh9f32Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJjd3x8cIRcY15jVFtgWmOXlWNucIKFiXJpZnluZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlidWVVX2BtZGFxXV1+b2hpc3F0cXV3bW2FlIOKfIVxcmdufG9xb1JaZWlkcHJ/dXNibHVVYnFqW15uZHtka3V8cHFxaW1fWGNpanheZlVkVVdRVm9YUVdUUEhlcl9hRlhrT0lZVFZuaWR8aWx5a2JXXFZcdWVUUlZpUllnVVRJWltQTnl3W19lbWpaYmFeXo9uYmdsenZub2l2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1kZ2doU2BfVWdgbG9cXm6OaE1pbGBVVlNvZ3NrZnhlZl5acnZvdHx5dG6Ke393nHt6a2FlbG1eYG5qZXF5fmdaVlhfbHh7em+DXmFdaFZYYFhknIhia3CBhnx2a2p2bFt1cGp5aXVybm98gXNZa25gWV5WY2RZZXFjVF9iaWFibFpgfmtmbHR1b214d21pho2AinuIbXFmcHtscWxhWF9nZm5ygHNyXmlsU2VwZFVibWF4YW90enRpbmtqX1dgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYEtYbWVfeGlvf2VgVV5UXnZcVVJgZ1BeYlVUS1xaUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOeW6PinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfI2Ecn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySlJOTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Ojo6Ojo6OjY2Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA/LzExMTAvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnaE1CQ0NERENYaGZnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX2BhQTU2NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eHh4eGiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmHhYWFhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkYuQjouNhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo6Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYiHio6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhYWIj4mMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWHh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin58dnZ4fHx7fH19fX19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhImIhYyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoyLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl5e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX1+fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTkpOTlJWVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf35/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhZCPkHx1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39/f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZFSEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ibHFmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWZmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd21ibnJqYVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tybGFtdXJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWWlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViaGtvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+Af4CAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdWlxlbG5rb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtbaW1ub2pvbWtpbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5samtoVUM+Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzdHBnVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx8aj85Oz49Pj9AQEA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpHVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0k4Ozo9PkE7SGQ9PD08ODo7Pz89PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRXV2Tjc4ODo7Pj9XakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyeWtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW90fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSUxRTU1LRUNGR0dFR0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpOaVpPUE5JR0lISElJSEhHR0hIRUNFRUVGRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dIS1ZzXlZRS0hISEhER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshIeGhoaHiIiHfFBKWW5lXl1UR0NNRkBAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERkdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUpgYmFhY2VTTlg8PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOcWhoZ2VnaWZoRjY4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yMeG1saWhpalk1NjU1ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKiouJdm1tbWxsVTc4NTY4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi42Icm5vb3BlQD46Ozs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY6CcnJxcWNHRkNCQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjY1+cnNyU0tKS0hISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIyMjIt7enReZ11QS0tLSUpKSklGRERHSEdEQ0VGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjY2Mjol7eHtvZ1VNTE1KSktIS0dER0lISUVFSEZGRUxMTUlKR0dISUpOTU9MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjYyNjoJ4clVSUk9NTktJSUZKSUVLSUdLSklKR0dHS0xOTExISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIyMjHNbVlRRUU9MS0hHQ0hKSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKTEZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyNfFxbV1ZXVVFOTEtFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUlBMSk1NTUtOR0dKRkZISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIuLbF1abWJHVVNSUUs7O1NUU2B1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uHb19nWDxZWllUUT9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYuMe3FyWl1dXFNVU1dXVVtadYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SLgGhbXF1aVVdVWFNSWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FQUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB9X1NXWlZTVlRSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d6b3JZTE1QUE1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZgXk5FQERERERDQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCbE5IQUE8PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01RVUlBRT8/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnV0dXN0dnh7fHt8fHx8fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRWVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJBQj07Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fX58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9cWklIUFJRT01QUU5RUlRWWFNTWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIR0hIQ0JHSUZGRURNUlBhV1NYUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFhYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1tXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkdtcnR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STlpfW1ZZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pPT1VTVFxWUlVTUk9NTElISEY/Pjw6Nzg3NjU5OTY3Njc1V29wc3d5ent8fX19fXx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxLT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE5NTk1LTEtMTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e317fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTExPTUxNTU5PTltXS01RT0dJSENISkxMS0ZGRkU/QkM+PEJHP0I/QWRwc3d6enp7fHt6end7d3l+fnx7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE1NTUxMT05TZE5KTFJISUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEFCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEZJSUpMSktMSUpNTU9QUlBKR0NMR0NCSklMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RGQj0+PTk5OjtAQj89QUJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5BQ0RFSUVJSkxGSUlHRkZEQjtBQ0M+QENEQ0RHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlJTTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0NFQERCPj8+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0NJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oz0+QEI+QEJER0pFSUZJSEdGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpNTElHSEVHRkRDSUlIS0pHS1JNQk5OTVBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUFFOT01OUE1MTVNXVlhYVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzo+PTo+OkBCPj8/Q0VGREZERUhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYWBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRkNESUVERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTktPTk9SVVZPS1VXU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGdncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkFBRkNFRUVJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtOTU1QTFBQUVVWV09LVlZVU1NRUkxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QkBAQENBP0I/QUNIQ0ZGR0lGSUZHRElIR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTU5OTlBLT1FSVFhWTU5UVlRSUlFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tMTExNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEhJSEdKR0NISUdISkZJTEhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNISktJSUtHREtKR0hKSUlLSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRkVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUZFRUJGSUhJRUhMSkdNTU9MTU5HTE1JTEtJSk1JS0pKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hKSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJEQ0JFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VGS0hDSk5MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5fXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKRUBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQElKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNS0tPTUpLSUdHRUQ/RUNJSUJCR0ZFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUhHREhLUU9NTVBMTEpLSElDREFFRElHQ0JHRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXYF9UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQkVHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFNaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFIS0tLS05NVU5PSkpLR0dLUFNTTlBPTk5OTkdLRmBFRF9MRWZkRU5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWAg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUxNTExPUlVST09JS01HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYGFdYGFnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVJWTEtOSUtSWFdRTU9PTVFUTk9RT0tLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCCfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LR2BdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15eHJvTktTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RWWFdXT1VQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdnZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5fm5xcGt7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlJJUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ptfnhrfHBcXl5iW15iZGRnZWVlYlpjY2lra3JzcnZnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW5rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NS1RTVFFWVk5OTE1PUEtIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQTEpRUUtRTUtMUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NSUFJUVVZTWlFOU1JYVlRZVlVaVlRSVVRUVVdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWFhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWmBaX2dgXl1dYmhrYWdmaGZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWVZdamRWWFlaV1ZTU09KTlZUUE9VUFBQTU1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVRWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTUllXVlpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbXFdSU1dWV1hWVFlbVVRSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeYlxZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVdRTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZXV1NWWlhcXVtbXVZTTVRVVVxcV1JVVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFjX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hdWF5dWVpdVFVOVVZXXltZUlVVWVlZVVdaXFZTV15aXV1gXGJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlRV1JZWFlfW1pUVVZaWVpXWFpdV1VbXl1eYGFfZGNcXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFZXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeV1hbXFtcW1taXFpaX19gYGRiY2RkYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltYV1lYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWVtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFppaGJmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBhY2RkZmVnZWZmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXF1bWltZWFhYVlpWXFtaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp7e3t7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiQzNPS0tLT1Z6GiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eTnpYmMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5eXl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYSFhISEhIR+fHx8fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2d3p3eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXp7e3p7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx8enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fX59eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDhISCgoKCgYGCgoKCgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e318fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXt8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t7fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgoKCgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgoGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5ubm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGBgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFxb3yCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoGBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycXBzmIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYGBgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgm9yb4uefG9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoGBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXJxdZ2hdnF3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGCgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKGefHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSnqZd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtaqso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqKyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af36AgH9/fn9/gICBgICBgIGBnJyOoLCgn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsaGYlZyFfH5+fn9+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+gIF+fp+rpJekm5uWoZ+Gf319f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho6fsqiioJmdnaaorKigmZGHgYCAgYCAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpGPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4uXmpeWmKCbnZ2dmZqXkImGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIOEiJCTj5SYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAh5uIi4eCgoKBgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIKBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDgoGBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODhIOEg4KGlJSSk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKBg4KDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoODgoqPgoODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yEfYaJgH6FhYWEhYJ/fX19gIOEg4OGmI+Cg4SEhISFg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg42ZlZKIhIWEhYWEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFlJujq6KTh4WQh4aHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4mSnaWmpqKTkJKIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt5iZiXnKGgnZ2ajIiJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX59fHt+kpuZnZ6cnZOHiImJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDg4SHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX2AlZqZm5qZkoWGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqAlpmZmJWSgoKEhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17e3qGl5eVlo+BgYKBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+ChISCg4KDgn59fn+AgIGAfn19fX1+fXx6fHuKlpaThIB/gH9/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p7e3yNjIqLl4x9f35+f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX6MjYqRj4F/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn6Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYaOh4KCg4KAgIGAf4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19fHp6eXl5e4WEgoKEg4GCg4GAgoCCgYGDg4ODgYGCgIGAf4CBg4GEgoCAgYCBgYGAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl4fIKDhIWDgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6f4KCf4OLhIOEhISXl4ODhIF9foGBgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODhIOCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gIB9h5SDg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH2BgoGCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX99f4OEhYWDhYaGhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX1+f4B/gX99e3x/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn5/f35+fn59fICBgH6Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKAgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6BlJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt8fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8f36Cgn99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiIqJhYiSj42JioeFhYOCgoODhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fn+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX1+fH17fXx9fX59fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn19fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6enl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAf4CAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+f3x9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4qHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYKBgoF/gIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx9e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4GAgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF/gIGAgH9+fn5+fn1/fn6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB9f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f4CBgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en15e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgH9/gYKBgH9+gIF+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35/fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn9/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHyAf4B+f4GAf399gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICBgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5fHx8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x9eHh1eHh5e3x8fXt8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fHx8fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKCgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhIOEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGBgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICCg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODgoGEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5+f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIOEhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f36EhIKDgoKBg4SDhISFg4SFhoSFhn2EeX1+f4N7hYOAhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBhH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFhIaIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgYCBgICAgYGAgIKDgoKDhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fYF+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYSFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn19f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f359foGAfn6BgoCAgoSHhoODhoSEhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iFhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cHl9fW19dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODhIOFg4WEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fH1+f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGh4WFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhoeIiIiIhoWHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIaEhoWEhYWDhoaFhYWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFg4OFhoaEhIOEhIOEhoSGhoWFhYOGhoWGhYSGh4WEhIWFg4SIhoSDg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4aHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgXt7fn18fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4iIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/f35/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhoeFhYSDhYWGhoeGh4WGhoaFhoaEg4SFgoGCgYCEg4KCfYGBf36DgX5/f4B8f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhIODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhYWGhoWFhoKDg4WBgIGAgISAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18e3l6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoWFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWGh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhYOEhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChIWDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5e3p5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTw+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT09PT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vb2dfX19fX19fX19fX19fW1NPT09PT09PT09PU1NbV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMg21wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiJ+7ubm5ubm5uLi4uLi3vdPT09PT09PS0tLS09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzU4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU093qKSko6Ojo6Ojo6OjoqvT0tLT09PT0tLS0tLS0t/r6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy81SLDExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTeqmlpaWkpKSkpKSkpKOs0tLS0tLS0tLS0tLS0tHf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zOXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoKtqampqampqampqamosNLS0tLS0tLS0tLS0tLR3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzcTCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vN0tLS0tLS0tLS0tLS0tLU09TW1tbW1tbW1tbW1dfY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0tPPz8/T08/P0NPSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9WSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz9DQoZbL08eSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaPWp6Crn8+ZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGeuZ6WkKG0lYadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbtZefoKiZtb/Jl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqrmcpqCLn8TTkZmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqOPpZvHyZTYraO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLl5SflZWku82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw8PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZ2Gnq+znaXQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZagj6ObopyckaeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoquknL6eqKGjnqiiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlJRS0tAPj1EPD9DRj01NTc7OTY6Ozo7PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iRjbTZr42RpdSako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpUTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojs9OT45ODo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0tXAvdbU07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExBPjc3NTo4ODg5OTo8Pjw+Nzo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJES0lNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NTU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDs6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hERUA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8ODc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ozg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk5Ojg2ODg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+GgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1MzU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njk9Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm5uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njw6OTw9PTs6ODY2ODg6NzY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjg5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY2OD8+QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurq6+wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM6PT5AP0A6QEJCQj8/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLezsLCtrKuqqamop6ipqamoqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmJmZmZmampqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk5MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqiop6iopaaoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmYmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw+OjpBPDc8ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKysq6qpqKWjpKWmpqWmp6eqqKamp6enqKinp6iop6WkpKKhoaGgn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwraupqa6rqKWlpqanpaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJmampmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8Pz0/QT88P0JDP0JCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWjoqOlpqalpaWmqaqppqWjpKWmpqSjo6Kio6Khn5+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mYl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj4+Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaSkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OD07PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjoqOjpKSlpqalpKSioaGjo6OjoqOlpqampqenpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo9Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoKGgpKenpqWjoqGjp6ampaOjpqampqanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKjpaSlpaWlpaWlpKOko6KioqGgoKGgnp+fn5+fnp6foJ+cm5qZl5WUlJSTkZCQkZKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmpydnqGmpqalpKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXm52YlpeXmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOjpKWko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnZ+em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojg2NTg0Njc4OT04ODs6Oz87Ojs8Ojo6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWl5iXl5qeoqKhoqOkpKOjpqalpKanpqWlpaalpaOgoKGhoJmSkI+Wm5qenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkZCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampaWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp+foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZOVmZyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Njg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJydnJ6enp+goaCfn6CgoKGio6OkpKSkoqGhnpyamZejt5+ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmYmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoJ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKGgoaGgoKGhoqahoqKioaCenJubm5mhqZacm5uZnJ6alpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CRkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPT07Ojo7Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+PDo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipaGeoKGioqKhoKWyraCgn5+enJmZmpqcrmZ4nZ2em5manJmXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTkpCRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoJ+mk5isn6CfnZuampqZqoBEgZ+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgn56dm5qampuamJmZmJeXlpWUlJORkZCQkZKSk5OSk5OUl5mYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8PTk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ojk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpubn6KinpucnZycnJ2eoJ9hmaifnpyampuco6FPSISgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6ChoJ2cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fnpyZm5qcnJuampmWlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtCQzk8Pz87Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QTw6PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJeYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qnalyioJuZmZudnK9ySkyGoZycnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZiYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpYJTd6KZmZqdm6CjX1dOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpuanJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlpaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCKXGCTm5qbnZyjj2VaTYGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj5COkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmemV1edZaanJ2dooFlWk1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5ubm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw5PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2cnJ2cm5ubm5ucmpiZmZthYmB+lZ6cnpd0Y1VPgaKen5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJmamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKZmJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTo9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enZ2dnJqbm5ybm5uYmZmfaV1bY32cnJ6LaV5QU4efm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjJCOkIuLj4+WiIiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKqsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ojk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYaNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmbmpqXk3ZuZlZ5lJidiVtUUFmLko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6ODs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPjJGPi4yPkJGRjpOdn5J/oqWYpp10T1Bkh4eCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6OkA8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgIWim4x8ZpKlk5x7iINjdICAgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6Co4l5bFFznI2LWHB7fH9+fIWOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzk6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mZl1U0tLc5OFgkxeb3F3iYWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6PTg4Ozo5Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0uAgomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/g4KFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjqOLUDAvO3iGdnVAQltqboKQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzo8ODk1ODc1Nzk1Ojo6OTw4Ojw9Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqecY0NfSzx4eGlmRzE2V21ykI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQz44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqaqujkl4qn5AfHhlYlFWY0peb4qhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0U+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoonZjwtSlRX2QhHhPbY14VmKAo6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQERCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaeqqaSnp5mdpKWjop5jgbvArnyko5qXbElce3BSdJWjoqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9O0BBQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgoqehpq6mppyfbIOYuYus06ObtKxcTa+aVWWQoZ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6ujo4d3fnpz0cSwmaOtbFanrmZdh6agpaKhnZ+imJWem5+fpKGclZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7W1trKtsK2Ph4Ftksu9lZWmlXRWbXd1c3+VpqqnpKGfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsri7vLy6usK5tbSehnZhVp61u6anmYd4bXJweHl6fYSMkZaboaanrKalmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbjCyM7S0MzIvbGjjXBlUkSIlIWFhX14cm9mZWtoa3FzcXFydHuLqcbGu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Tj2cm7rqOVhnJZWlFEZndqbnRua2VlWVhdWFxiaWpoZWFrj7jBwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvszQ1Mq5ppqRhHBcUVRLRFtmXmNqZWJhaFtVWVRXWVpcWV15nri6q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ1cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL7DwcfLybiVdGFUT09TSD5fbF9fZWNiX2RiVFZXVlRVW3mirrCqqKutrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w59mS0RHS0Q9WmRiYmpkYVxkX1hTUFBSXIe2uqyupaSjqKSgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpncnhzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBsIpTR01FO0taX2ZsZ19cYFlaVE9Zh6esuLWyrKmjoa2prKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea29ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LHnXFcSD8/RF5iYWtiW1hXU1mAobm/u7y6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp0bnlsXmRbVWBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7GxsbAr3pVTi9WVFdoYVJOVHqyycjCxMfAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCwsLDwZVDTnmDjlZQea3N08W2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vMemeW2CkZZytMzIx9HBr729uLm7u763tLC5vrO8vrG5tbi8tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXqDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zJz8C6v8C8u8W9usDEv72/rnBhfJGKi9HFv7/Jv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66srKemnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Iy4v7vDtbrHtrW4ury4ubarpZiNfITJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8N2qMy9x7e5t622tLe5s7WxvcnFlUh8yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNetc4C7yM/CwLiutLS7vbe5sb3Dyo1Eds3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcmZsam51b3lkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnRmHBzrNHRzMrEtbq/xMi+vrS/wMB3UW/LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbWx0bG1vYGNfYmJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdHDur68xL63vMC/yc/HyMrJwYVxc6XMzMvNysbCw8vOwby4vbqwbmNjvMjEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur28O+tr7Avr66ppypsrbDv6V4dXibxMbLyMHDwL/JysG/u7mxoHxya67IxcS/wMG/y8fDwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSknp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wLysfW5obm1ygZWYc3d8l72/xsC5wLy+xcS9vbixsJiPfICbysLDvL2/v8PDv7/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtwb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnaBs722tcKlh2laXmBNUltabnN3gZ+4uMK6s7u3u72/uru7rqSal4aQfsDEw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0sayjqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnJhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeFeIqgr7WdamVnVllgSUlNUFNsd4alsLe+ubK1sru5vLa5vrSWm6WVoHGuycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx1jKCYYFRDWFVHYWpWT0VKYY2grK+2urW0sqy8ubi1uMG9i5evoaVypcvCv7m6ta6lrLOwpq+tqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi+tJCCeIiPb05KP2RZQk53gJRqTkFdgbC1s7WytK+su7q4trm/xXWCqJ2ZY6m/uLWysa2tn6SmppyjpZyWmZman6muuayrq5+lqKSrrq+nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1ReXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6HWUpKWHeNgWNBU6O4s7SysLGtsLm4tru3uryPobGqo3KssKmrraujqKCdnp2Wl6GVkZWXj5eeqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0b2VVYWRXXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qpmZlWlNQFJ4cVBJSUtnnIFZRFKuu7Gss6+urK22trK0ta6opp6am52epqieoKipn6GnlpqWl42bkoyOlIyWmqOooJ+hoqGmpZyjo6CepaCkrKWmqKWio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BSQT87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb5pRVKdglFXSUpgS1SOYWNiga61qrK0rqqrr7Cys62lnZGXk4+XoJ+hoJyjpJ+eqJSZlJWKlI6KjZWRl5uhqZ6en6Cjpaicn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho5+doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5se2RpVlJkTklIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8uhUEFznXdQbktMY2Z1c2BaXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSVnZqUjY+Pj5CXlpqeo6mdoKCepqerop+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXlhYlNWYUhJS0xTVUpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8eOV1NKZaNaZX5vcl1Ra2NbZF9ca4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJanpaGVlZaRlpaUm5mdo6Son6WjnqeurqqmorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUUtPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ2dXBjdnZYV2NgY2dZWFdnra6sr6efnqKglpCTm6CcmZeSk5+coaOanpqYo259l5mgm6KenKKcoqarraerqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NSJisqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZyfmUhHj5+fpqOup6SsoKirtbC0sLCttri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaWfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+diWFXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ+em52blJOVlJ6emJSFpnYqYJKeo6uuuK+vrq+vuLy7u7i1uMO+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flXxfXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bItXNWaFfHmAlry8vLC5wcPCxr++wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfGwrjEysnEwce/urS6u7W7t7C2squ7sq+8t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxwbFRga3BybnOPrsS+wczN0MjEyNDMzMzHysXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK9xMG/v7+1vrOtv8DDw8fFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanuAZFh3d3Jucn+dvs/N08qz0dDQ0dHNzc7QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcnTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1RMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJvhHt2gH10cnVvdJ7P0NOZttfT0dLU1NLP0cPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpudmpWJd2lkYV9fX19eX19dYWx1c3Bvbmtwb3ODgHuBeW1paF5tvtOjf9LW1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztHR0sjMzcDLzcbUz8zPycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xmQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1qbG9zdn1yeYByYlxTWaOtcqvaz9POy9LN1dTRys/M09bS0dbNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTJz83KzMDJwcnKzs/QzNDOzszP0MjM0NHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSye0hGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXJubnBxcnF2dG93eXRjW1x7d4jR1MnMzcTNytLSzsbOzM3Uy87SzcvX1tDM0dTLzNDS08rO0dXS1dbKwMrCxs3DyMrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDxLWqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbXNwaHJ0Z2ZjXXfCxcfHxMS9wcXOzsfFxs3K0cjLzc3G0dLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByce5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw6Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lqdWpjYl5iZV2oxri/wbm5uLi9yMXBw8DDx8rIyMnIwcXMxsjKzcnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsa8v8rDxcfSxcHJwMrKxsjG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl1gW1laXGFucW1pZmdraW53XFhWXWFpqsGttbiwsLGvr8G6uru6uMDBwcS+vbm9wLnEysXGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6mYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWprd3JPUVdicZq0q66upKerqaS1srWzsrO0u7W9sbewta+yu8K7wcS8v7q0srq+wLjIuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMXLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4iPhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXV9rb2xmY2ZoaGx7ZUlcdYeUqKioo5ufp6SbqKmwrKmrqbOttbCyqK2nrLO7urbDubq5sKq0ubuzwrmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srGquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsJJbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZobXlkbYSQk5uipa6am6GdlpmiqKyjp6GrqaursKOmn6mttbaxvbivt6+orbi0s7y3s72wuLm1srzBssCvpamjq7Gzs6i9qquoq6yutbSmqa6hpa+ps6aoqK6mqLessbO3uru7sry+vr7Ev7XBwMfIt7+/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcTBtLa8trGvtbytqauTZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhteXmAh4aTmJGVraagmJSOnqCnoqKfpKSmpa2fnJujpayysLa3p7CsqKq0q7O5sLa2rra6s7C6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ykpqyfn6ekoaGxra2ssrWztLC1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZmx5c3FqWFtvRXugn5SSiZqen6Wbnp6ipKKnnZuim56qrqyxtaSoqqmsrKS0uKy3sKyzta+zta+wqp+en6SisqWmqritoqamn6itq5mfoJ6ZnZ+lmpmjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1dYV1pdYWJjY2JiY2RlcGpYQSI6cWhph5ySkoyXnp6mnZqbo6WhpJufoJmYrq2tr7KgpKKtq6ehtbCxsqypsLOourOntqGin5yjoa2joqq2q6Kjpp6mpqOWmZ2XmZqdn5qXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxsDFtsHAx863wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldWVlhXWFdVV2BiY2FhYmBgZGZyRBkcSIqUkI6ZkZSOk5yanpuVn5+nop2dp5uamqunr7CqnKOjt6mhoK6otaqnp66xpLiwpLego5yZmaqmoZqtubCjoaScoqCgk5WhlJaWnJmYlpeclZ+pnqqkop6jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2Bial8lN26Hi46OlJKWkJGYnJmdlJ6dpaSipaaenJ+moKuvpp+ho7anoaGiqbOipailsKaxrqu1n6GdlpWpoaKUrbGxn6Ojnp6YnJOMoJSRk5iYkpeYmJeep5unoqKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZWUlRSVF9fXV5fXF1dYGFsV1yHg4mHjYuNlY6Qk6CXnpWanqOgq6Sjo6Kkopyqq6SanqWxqqGhnqWqnqiin62sqqmuraKiopWYopqckKupsJyfop+fl5mTip2RjZKUlpCYmJOcoaOcpaGilaCipKWbo6uloqSqpKutpa6yqaalpqa1pqqorbO1tLm6r6qsnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Njo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTTlBZXVtbXFxcXVxfYmuDiX2Kf4iIh5KMj46YmKCZmZ+mp6qnq6eppaKYpK6klZikr6mgnJmboJ+umZyqs5+mpp+jo6GVlJuWlpKpqa2bnJ+hoZuUkIyYjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1lZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaGZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVhZWVlcW1pbXV5keoR6g3eEiIOLh5GMk5aenZieqailraupsKOnmZ6soJSUo6innZiQj5qerpaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6XjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRfnJ0Y1ZUVU5RSkdWUFJSTExYTktMT1NHTktBQ0ZFQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJNTk1SV1hZWFhXWltbYGl3cHZtf4V/iIKRhpCQlJiWm6aZnqmmpaudppiepZuSjp6impeXhoWSm6SPlaKclpaVh6Kam5OMjoqQmqWnnJWVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jtqyqrqSysqa1u7WrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissO1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LS1NXV1ZXV1dWWl1hbGltZ3t/eoF6jICKhpGNkJufjZibo6GjmKSWoZuUjYeZmoxzjYN+jpeWhpKakJSOjXuZj52MgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVhbXWlkZ2R1fHRtS1VujH+Tg4qalYmSkJ6YnZWUlpONlYmAlIlfO1ZvfIyUioCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqWtma2rmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wbmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVWFlgaWRecXlsTD89fZOPjXqFkoqDiIuajZaUiZGGhJOFeYl/YEpRbniLkoR+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlIWbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVJJTEtPSUhGSk5MTVVLUVJQR0pEPTc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor6yqtry2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joOCfnhxb1hNS01NTktNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1RVWm19am12Y2NYUo6GkoVxfIR+eoOLkoGSmYuOeoWPf3V/eHNvdXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6OToJ+Wnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTVJVTUZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+d4Z3fHdwb2pZS0hJSEdFSEhQVFRUV1dTVFVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1Zec352cmFxiZSXjY15ZHd+dHZ9h498g5iRf3CGj3t2e29rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2bnZ6hnJaNi6Wajp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKu7vrizrKebsKesm4+WnKWppaGYmo6EknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1lb29ng6WpwH1xdmB5dmx5d4aPeXuLhW5ri5J4c3hpaoCCcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66stL+rvMO/pqKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxwbWVra1lOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVhbXqWGYZhlb3VifG1rfXiJh3WBh4Vza5mRdHN8aWqdjkx5hZOJhI5mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzMzUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSIjIZ6cHNxb3BkcGdfVEZJQz48Ozk6P0BBRENFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEJJUUlirrKebnd0aXpqb4B/g4B5g4WFeXKglHR4gHN0lIc1cJ2onY+hoYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISkZJRz9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTExMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3V4eGx3bndkal5JUEc9Pzc0NDg7Ojs9PkBCRUhMTExMTlBRU1RVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDhETlJTREqEc3x5eXN7anSFhnp8g4J+i311oZl5foWAhJmEmpxhhqqfnYqDkI56d4h+iYiOc4uXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCqoLGor8Cyu8S6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6GEin19gX9wgX56aHdrUlhMQEUyMTEzNzY2ODg6PD5BRUZGR0pLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RcWFJLZ4GFeIZ3eW96jYl4e4eFfpaHdqCZh4aOkpSljaypSIausK6LgYCUi4KLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+HhYt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4iAgoiFeIeJfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/OTQuXZZwc6NVRklLTU1QV2BYb1lbXWeJj4ORfoF/g4+PfISHj4CZlIGfoJeUm5qmrZOZu7Gnu8fDqIuMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXV1Zn+UjoaIiIeIh6CqopaJjpd/eoGIeXlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTlhSUUlQSkROR0NKRENBRERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZCOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhKTExLTlZfYn5mZmtymJaLl5CQiIuMl4aRjpyKn5+Roqmko6uTqbaiqMHCrceveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHGIoJaGkYmNj5aktKibjJSig4eSg31/a2pqfIKDg3VjX2VgW2hsXmxsXldLSE5SUU1MTEZJUENETkZCQ0VGQz06OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQg4CAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48ODUyPD9SNUhISExMTU5SXm2Je3J/e5uZl6Sin5eelKCTm52nnaeqnqerqaq1l6u/q7bHyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopKXl4GUnnt3lZKqsoiMl598lJ2bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLUE9JSUxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMS8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlshI52koieoqaxu7airKqrpqezqq+1sbGturGzvZuyw6u6ycu3w7+4paKws6ytqqOLlpiEpaago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKvkqOdop2Po6GrrquytKGUpKmImYiSiZV5en6GgWliaV1mY19lZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0dEPD4+RkhDRUE4Ozw1Qzs9RktJR0hRT1FXgJGeg6uhr6euvsXBqLHEtauyv7K3vbW+tMG2u7qjuMWotcjHtb25tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rLC1orGssbW7trSutKCnqKOnmqmvrLG4t7immrWojKSOkJKfhniChXhbY2VXZ2NiZGFhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw5Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkHp4bl1WQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLSkE/PkdLRkZEOz5AN0Q3P0JKSkVGVlRQXo6jrKKwsb+ytb7Kx7W6xL2ys8C2t8G0vrC3dLGzprrEpLDGubCysbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7msrLGlsKmtvbC8usHBq5i5p5StjpeXqYh+g35tWGRiWWxma2ZYXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joOAjoRuenN4h2K5oZmjiZSUlpKUk42PlpGHhnuGgY2VioCEgYp6fIqHhnyKgoGLg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWFhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNZVF2SrbazubbHvLi7ycy6u8C7t7W7ura9s7mxxWB1sqSxmp6qvamlqKuqpKKytaCrqJ+Vlp+ZoK6lp6aln6OTo6extKiys722wb7TycnTxsPFzMLKw8C9vL67vLe0r7i3tsO5xb3Cx6+euKmhq42kp7WIgYF0YWNjX1ljYGpnU1hgVlJVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUFJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g3+CeHuLg4d7i3mBioKXfnR9emtmcHVZXlxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbkre+t7y1xL65uMnKura5tbe5sre0s661tphkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SerKWqsK24sL251NHP19DKzNLMz87Kxr++wsq9wbzBwMTExcq+x82yo7qwtK6aq7i7mIB8bV9iXlpfY1pkY1FbYFNQS0NBRUZFPEBFPkFIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHtKyhoZ+LmZyZjI2VkZqRhYqKfoiGjJCLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2pqaWBmaWlsWm1zlq2kvIiGZ1tvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZa1xbC4srq7s7DExrWvuLCwu6uysaaqt6uMtaedmqeaTpmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloeemqebrK+osKi0tNTU1NbTzNDT1c3Sz8zEwsnQvsnJysnRx8zNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6GqnqaXjJqbl4uNlZGajn2Ji4SNioqKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bXhzbWmBcG1jaW1weGl3fH7Lv8Hfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrLers6avtamru7+wqrSlpLimq66gq7SjjrCtmpeYjJCTkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cfN0tPT18zR0cTS1sXBzsfHwqi9t86efHFoYGVfWGJTX1tQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hY+QjYqKiJCGfoJ7cn6AgId6hHWFk5CIf292cmtzfXt3e3OCeHJrgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmkpKGfoKelqq+4qqWyoaGtoaOtoaexn4immpOSkYmRjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVxZWJhWlZaVVxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMh4eLiH6Cd3N7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJ2Ql5ieo6OlsaOjsZ6hpZ2gqKCjsZyFnpKRkY+LjYuGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLmpKrs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfXFRXUl1XRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjc5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFlpaIjoKHhYd6hHhxenuDhXV5hY6NnHmLcHxvb3p/cXuAcYOHgG6OenV3fXyCdH58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4yTmqCanqmfoKyboZqYn6Wen6uZi5qLkJKNhX2Ih4OFi46gmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUy5Z7fWtqXVxRVFVgSUNGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4N0RCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYaAd4J5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlI6XkYOJj5aalpalnJeflp6SkZeinZmrlZCQioyRgoyFiIiBhpCRnpuZiIaMgYWXeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucfKzs7FzcnR1tXV2dXX29TW2drb19va2djO28aIfXtpa2dhVVlWV05MRU5DOz09PDg6Oz05PUA2PT9APD89PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6fYKRiYSFeoSHe3V9dG18fYZ+dH+SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiIqQk5SOnJmSlJCWjYyVn5yUoJSRjY2Pi36Qjo6KhImSlpqen4mMlJKdkYKLgKWZiISNgoWEgaWGioy4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bmtoWWJdVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlzenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboiohXqgi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKSi5SUk46Lj4qHlpqcj5SWkIqRk4aAi4iSjYqKnJaYoqKGk52WoIqJiI2bkIOIjoCDh4akhYyRs5idkpSXoaGempKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2poX15ZVVlZQ0FJQz8+Pjo0OTo7Nzo7OjM7Oz89Pjc7OTowOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hXt7doWEf3NwhYJ6dXd2dISChH5/kqakn6Wil4qdkJSXi4qol3OKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3Ilo+Gh4iQko2NkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYiNkKqWl6OjiJmelpqIjoaWl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NLazoR1gmtmYGBfUEtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsbot+eXx3eHyEhop+i6O0qKSqs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiIjpSMipOPh4CGh4iTmJSMipOThpSYhoSRkJx0kJiylZakoYicmZOPipCKlpqJipaNhn2MmJ+KkJCcmpmTmZiglKGdlZ+bobGto6S3vrPFx8S9w8O/xs7KydKnzszT0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3ONen2Be3iGi4mGhJKovK2psr2wpa6zs6mjorCtipq1naK4pZWtpJeprbempKOfmamYqqSvsaqamZyUlZGYoJeau7utyqFptreqsJWYnqKrkpe9pF6qsoKJioyUh5B8jo59g4aOkJSUiIeSlouPlY2LjJeZkpyZtJaVq56LnJSSjZCSi5iaipKdj4uJlqCijZWNl5mdk5yYnpShoJScnaauqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31rX1tVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBRUA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLiX+AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8LAsL3GvLO0wby0rKuztoyosq2tvaubu6Oorbm4q6amoqKko6qvsrGqnZykmJuYmJ6ipqWTo7mvqL+8rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeoGHkI2OnIiIj5eNipSXlJCalpynmrCakaudjpqPko6WkY+Vl46RoJCIlJukrJSWj5ScnpShnpuYoKCVmp6np6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKinZ2ZF9cYl1PTENMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra6ssCvpcCjq7C8vKquq6Oinqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6pxMSkgouOhoiEhpWUjHqDjJGPkaGMjJSRj4iXoJiTmZSWpaCunIyqnI6Wj5KRlZWNkJSRj6GThpefoLKflJuUoKGZpKCaoJuglJiep6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycfBtXd7b15bXmxUTklETUtLSkBBPUJEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgo95jaGWqJqamLu+ycjKwtLJysLNvcGzrby/p7q/vbzEuK3BqayzvL2qsKqkpaOsrrSutrWgn66fpqKZo7S9qZyovMGjtravq5OwrKqsloaaqqelkYKMkqSViYB1iZF5hY2RkJ6fko+Ui4+MlKOZl5uUk6KeqZ+RpZqMj4+QlZaIfI6VkpKjmpWgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisqyou8DEr6Wzt8zAuq7Ds7u9wbmtwsLCv5lwe2NbWV5dTU1OS0dEQ0hCQUFESzo0REg6OzQ8N0YuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZViej52Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq6no5jDvsnEyMbTzc7Ny7zCt7C6vbS9y7vDwba3vK20wLm8rq+ooamotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZeTk46TlZOlnZOdmZOgoqGcmJ+Yi4yPkJ6IWpCWl5KWpJlmmaOes6WWopasraynnJ+nl5iWmJaho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEb3BcWlZXUEdMVE5LP0FIRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQlI6aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+1xL23ubezsrazuLOsp5yrq7mrqaivr5ejrqWopKW1wbCrrbS+wrnAubOnuLS3sq+VpK2wr6WLk5SgjXPBmX2XmYSOlpmLsZWamZWSkpmZpaOVn5uWmqicm6GgmYqMj5adYEqWnJqVmaWXVJawn6+cn6WVr6+tppuhppSTmZmOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQU01GUVFQUTtIS0hGR0FDPTlLVD9BOj1FTS83NTM0OkIzNE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJyXjp6gmqOktcm0qce8w8TJy8nIzM7Gvrqzr7q4wMHNtci6wbm1urKvr7O0p6ScqrS1q6qnrayZpK6mpamsusCoq7e3vsHAvreyssOwt72so661rbqmiJuXpZp1vp+EmJ2Okpiai66WoZybl5San6CpnqegmZqqmaGnnpeQjZGdg211k6KalZyin5CtsqKrlamqmKqvpqWhpaqTkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrampjWZoY2BTTU1HSU9KVUw9TUVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjIahnoyjrJSjpLbHvbTCu8PCyMnFws7Iwr25sq+5tcDDyrbGscG8tbusqa2ssKOjmaq0u6aqp6yqnaivqKSrq768qK28tLe+xry2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmZednY+3n6mcpaOanKGap6SzoZudpZynqZ2YlI+Um4uWiYykopSco5+gtbClppOxq5qrrZ+fpaSqkpaVoISQnp+clqmkoaG0tbq2rai1srKenKKmmpeVmauhnnhjX2FfTElGSE5RSU5FRkdCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7fBwsDIxL/Nxru+ubKwubS+w8i1v7C8trq3p6Srq62hoZurqsSipaispp6rr6yiqqi+uKatvrC3t8a3tLi4vrG+wLa0srWvvqOWo5WTmpOtn5ChoaSio56QvqSpnamsnZ2hm6afvaKYo56iqaugnZWNlZ6TnoeOhI2TnqSgnbasppyWsqaZsKignKufoY2alZ+EjqGanJKlpJqYq7G1saqlqq2sm5igoZKOkJapn5RpZVxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUk9LPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqObo5uexaugnqudnK2fkaKelqSfpqqrl7axo6mztsXCvcC2wMK8ycK/ysi2uLW0sbS0t8LGt76xuLS6tqCnrKqrnp6fpaTBpaGqraCkqa2woqeovbWlsbu3trXDsrK3ur6yw8C4uK20tLWjnaSUkZOgrJ+YoZ2oqKqimsKsqJ2srZubnpimoL2hnaSYq6uspqGZjZqfkp6Ijlh/lp+moaC5qqeUmLajnrOioZyxmKCPmpWego+gl5aOoqOVkKWus6upoqKlpJWVnJmLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCfoKCYnsOnpKKzoJyyp5Kqo5+jnq2prJ27samstbHIw8HDs8LDvsfEvcTKvbCxtq6xtbDAxbW6sbC6tq2aqbCpqZuepqGnwq2crbGcqqKusaqkqL23pra7va+3w62zs8K/ssazurertLatqqKmlZWUoquhn5+Zp6uvr6+7sqWfqamZmZeToqS4oKGjkq6vq6SlnpGhnpSdjpCNlJ2ao5+otaenjZi0nKOvm6CcsJGhlJiVm4CSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj44OU5NVV9SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6Sfm6DCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0xr/ExLa/xL7KxbbAycK1rLWpsLmswMS0t6+ttrqlmauyrKqYoaeYrbu0nKiwm62frrWyp6q7s6e5s7iyuMCqt7LDvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62xtLafn6mkmZOUk6Ogt6OkpZWusbGlqaWhnpuZmpWXqKCfmaKfr7OjpoyXr5qlq5ebn6eTnY+VmZqGlqCVjJCdnpSLqamqoqehmp6WjI+ZkIGGlYiVn3plal1sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxaVZDV0aMeWZDO6SknKGlv6aorq6gqbWqnbevq6OqtLaxsLi3sLe4t8S9w8e9vMPCx8G6wcbBuqq2pa27rcHDt7eqrbK8o5Wtsa2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmrq6admJiqoaGgkZegsK+zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoZidpLSwnJ+Qk6aaoamblqOhmJqLlpmUlpedlImSm5mUjqmpp6CjnJmbk4ePmYt+jJeGj5tsaW1ibm5YUVFaVEFDRFVAOztIQDc6WFBkXlBXV0RZXl5OTFNOX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bH1oXFY6iXtjQz2on5yhqbygqq+qo7G3qaW0squhrbW9r7O4vLu9t7bAwr/JxLnEw8DAucW9wbivtqirt7K8v7+0qq6yuJ+XrK2orpioqY6nu5+lrbOeq6KxsLOsqraztbytsLG1rLC1ssC6xbarvK+xt6ytqqOxpZ6kqJ6jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaezq7Gpo5ueqKSelaGZnKi2qZiakpGemZ6hn5KtoJqah5eZjJ2anZSLj5eXmpenpqOgnpeWlpSBkJWFe4+Tg4yXZ21yaHFzYEdZZlZEQ01YRFo5SEI1Pl1RaFxOWl1HW15dT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApZmfpKu2o6uopa6ttamus7imp7C3xrawt7/Bwra0usW+zMW5w8G6wLrEuMG6s7Wsqrq4u7q+tauvsbeZmKirq6ycrquPq76eq6+xo6qfsa2zrq62sbi2qq2usae1sLO6vMmyqrW1sbSwrqags6CaqKygpJWVmpmxoq2gpa+WoqSamZKMoqWnsqmhprGsqrWkrrC0r6OZna2nm5eempmsuKKXk5GPmJyhmZiVrqGfloKVmY6enJqXkYuUk56ZpaOjoZmXk5KWe4yRhXuNi4OMk2xueW92fWJGYGpaSUhaWz17SkdFNkFiVWlbTVxhSlxcWlJTU2JhTEtFYGFgUE1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWVRMRZqWn7CosamspKOurbWot7O3o6y0t8m6tLu7wL60s7fDwMzHu8S9t7/AwLjAvbK9rqi6ubi3wresrrK6lpenr6yopLOplK+7pKyysqano7K0sbKxtbC3sqmuq7KmuK+1s8TFtqm1tauwrqmnoraen6awoKOUm5mUsJ6nm5+pjaminZuVl6WlpLenorCzq6exp62vtaykmaCsqJycnZyUqrmclY+PjJido5iRmKikoJiFk5eRnZyYl5aIl4+Xm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBcTGVsXEpPZF0/YntHSThHZ1dmW0xeYkxZWVdVWFVpXU9QSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRUSRmaStpKytqqajsLKyqrewtZ+rtbnJuK7BvMO3s7G1wsPPxMDCvrW+wcC7v7y0xKiqubG2t8C8r6y0tJ6hp7GupaaxpZ6ytayqsrGrqKi1uqy1srWrs6yqq6isqbmtsrDHv7ilubCpra2mp62wpaSjrqOom52bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKucoJmbkqS1mo+JjoiRo6GWj5afopaVhpCVlJ6bmZaVh5iSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFNjbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1VZaF5RU01jWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9sQEhJkJqoqaGpr6Sno7O0sLS0sLCgq629zLquwbzHsbSts8HD0cTGv8GyvsPCvL+4vcWorbestLi8wLGssq6ho6euqqilsaOqsKquq7Gurqyrs7unt7CyqbKpqqalo626rauwwrm0rLmpqaitqaexpamkoq6qqKGem6OslaWdmJ6Zq52hp6ihrKajray2sLGgqaKfqq2wq52ep6epmqOYmZCgqJiGg4+Li5+gkIyOl56SkYiIkpahnZaZloaXk5SXpZyenYySkI6Kf3+IhH13gIeFh3V0col3bF9ZYG5jUXNxXEs7hHxGP1d1WGBZT2NcTVVWVVdRXGJfU09PaFlXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSmdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGbqKiwtay4ta2ppKuqvcm8sb64w6+wrLPDxM7Ow7/AtMDExLrBtcnErK+3rrO6wL60rq6spqiqsammqbKmtK2qr62tsa6yrbS7pbizrKytp6ugo56wt6yqrbm2pLW1pKqnrKyqraCopqexsaSmpaGhq5aqoZOboKWeo6Oqo6yinqaxtqysoqWjmqmrramdoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI2bkJKNhY6ZpZuTkZuMk5KSlKOanJqLj4uMfIeBgoJ7dYGEgX51d4ujh3hqXmBuZldmh2ROQGeSTEVieldiWFJlVU1WVlVUT1xdYVZMT2pXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI7OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koamvmKmorbWqtbCqpKuqqbzAwLm5tLy1prKvw8nL0b/Bu7nAwMK6wbrCxK6xtbK0vMG+s7Gvraysp7eqpa2wq7iuqLCvrrGrtaq2tae1t6yspKmqnKSes7OpqKSztJ+1raGqqKuoq6efq6uoubapqqqpoamfrZuRqqGdoKOjpqKqnpymtK6npamipJekpqeqnKKko6CZmJ+Rjo+ZjX6HjIeFnp6JhYyLkI+SjoWIl6Oajo2bkZKQj5KfmJmXjYuEgHSHgX9+eHWDgHp4fn+InY9wcWZncXhcYXSIak9dmFZIbXlVZFZSYk9MVVVVUU9YW2JWSVFqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDJAZj1OWD9DLD9MVF8vSWs3UkY7lY2voKWprJmqo62usrSvqqSvqai7v7zBsrC5raK2r8jHyNHAv726vMO+u8TBwL+vsrOztr28wbKytKu0qaW2qaWts7K4r6KttbGvsbmrua6qrrerqp6qq6CjobWtqaGfrrKhtKqeqKero6qhoaytqL2uq66toaeon6yZj7ChmKKgqKeep5uYqbCpop+soqGSoaKjp5iaqaaYmJmdj4uHlYh8jYaEhaSWhoODjIeQkJKFh5WglomRnZGTkI2RnJWYj4uGhnh0gX99dHh6gHt0dHtqgoikdmleZWyBdWeIi3xSVnBeS3hzVGRTUV9NTVNaZk5NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+OsKCkpaqipaOsprSzsaiksKequL/BvbGpuqqnrbDJxsjQw77Avbm/wL3JvMK4sbC1srq8ucCztbytuayjtaanrLG2uLKmp7m1rbS8r7ylra21q62cqa+kn6SsqqicnaqypLOomqqnqqSpnaKpp6m9q7Owrp2ppKCvnJqzopalm6Wkn6WamaiqpZ6aqaGbkZugpJ2Zl6mqkZmakpCLgo+FfY+DgIiej4eAfoyIkpCRhYKUmpOGk6KNlJGLkZuTloeKf4Byenl+fGh2fHt1cXF+aoZ6hYhkX2hjcoV7bWd5XV5WQld7bVRhUFJZS0xOcHRdSVpbaFlGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppKKhq6S2srGkqbCmrbnCvbewpLmsqaiwwsjJzMK3vb+1uMG6yLbDtbSztbK9ubq9tq65tr+torOmqquutLe0qZy5u6ixvrK6oK60tqmrnq2xo5ylqKmjnZuksKavoZ+qqaeiqpyjqKCtvKeusa6hqqKkrp6erKaYn5qhopufm5mjqqKamaOjlZaUn6GWnJamrIyfko+RjIKKgICPgXualIyJfX+Mh5GQjYqGkpeRh5SjipKRh5CZkJSBiH16bH12eXhienpycHFzeGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZarmJ+Xp6Khn6ikt6+toq+vqKy4w7q0rqC5r6uns7rHyse/uMK9r7S/t8S2w7KwurGywLa7vbequri+qqS1p6iqr624sKiYuLyjrb60tKGtt7Wmpqiws6CepaWnoaSZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScp6aompubn6KVnJuanammlpueqJGYkpmdk5mWoaqRm4qOkId9h3+Cjnx8oYyMiXqEjYWLjo2FiZOajomVn4mQlYKMl42RfIV8dHB8cXN0YHh4am9xcXBrf3NkemxoZWRhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0s6mpusW3s66huK2tq6+1xcfAt7/CubC1vbe/u76wrL6ws7+yvMK4qru6uKeotainq6+rsq+kmLu2pKu6ta+esbivqaWnr7KcoaSgpKOglpuvpqGfoqivoaCik6Okorawoaaxq5+so66YnaqlqJ+Ymp2jk5qbmp2lqpqbm6WVlJeVnI6Tl6KpopGKi5CGeoN+hIt5j5eKjYd6goiEiY2PhY+TmIyOlpmLj5Z+hpeMj3qBe3Bydm5vc194d2VsbGxqaoVvZnJpa2ZoXmRzgWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnKOhoqG3qq2gu7elrL3FtLGvo7WvrKyutMPDvLO/urexs7m4uri6r67As7O4r7/At629urWmorKpp6mxqq2xoJm/taSntLWonrK8qailqbCsmaKnnKSllJegsqSZnqOoqZyin5KkoKS4qaSnrqaepaGok6CpoqGhmZudn5GZm5afoaqbmpiglJGUlpmNlJOkqKSQiYqPhnmEe4SGfZ2NiYqHeoGEh4iKkoWWk5OLkJaUjo2Ue4OYj4t3fnxsdHJsbHNhd3VoaGpnZ3CHaGhpY2ZqamBrY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6kppqdnp2jtK2nqrq2p6zEwbiwrKO2rqetrrbAv7yywrawrrK2tbi2tq2qvbOusrG8v7evvLuxpZ+2qqWls6eprZ2cwKunpa+zqqy1u56oqquxpZieqp2mpJGYpayimJ6kqaGcopyWn52ntaawqq6hoZ2eoZWgpp+hoJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mfkoiKi4h4hXaBgoGdh4qCin1/hYiHhpGElpSQjo+RkZGMk3uDlY+Gc35+Znlva2prZnVza2NnZGR2gWJlZmZmampja3JbX1lebWRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKywwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWUpWYmZAOjNCaEglNZqjoI+MraGXl6CWpLOxorK9tqGxxry6sbGjt6yqram4vLu6rcCyrq6utq6yuLOpq7mxr66ztrq2r7i9rKaetamfn6+jqa6cob+gsKOusa+3rrWera+trqKZnaeppZ+Vmqeln5mkoqidmp+alJyerK+muqiuoqGam56ZnqSapJ2Xnpebk5ifkqiVqqeak5qakoyVmY6UlJqppo6NiomOe4FzgYGKmIWHfImJhYWKjImShJSbk5KPkJGXjpB/gI2Og2+Bf2Z5bWhraWZxcmtcaGNjdIFiZmdqbmxna2pobl1sbHNwYFRjaWNmWUlGTE1PWFFRVWFlgFVBV1NZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNj7CdmZOhmqmxr5+5v7WgtMK7vbqxprevp62kt7e2t627rqyqq7aps7euprK1sq6psLa2sLO2uqapn7WonJ2ooKismqe9mKykrq+2taytn7GtsKmim5yjq6iclJynpJ2aqaKklpqfm5CbpKqrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCImJqAloqhkHmHlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLjpSSdHeLhH6DkIBnh4BndWhlV1xoc21OUGpjZ3OFaF9lZm5tal5fYYqPg4RlTktEOUdUaF5KR1FQVFVMSFJgb3RlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5uToJuqraqjvcWvqbfCt729raa3sKWqorazsbKxuayppqy0pa+0oqm3traop6y2sq60rbOhqZ+zqp6go5ulpperuZSlpa+zt62upamuq6yloZ6coaemm5egpaWbm6emnZOen5iQnqippLawpKOinZaYl5ejiKGOkpqGoIeTnKB/pX+lqp6SkpqRiIRzeI2OhYihdoiMaZeIZn1zeKBviIeDfo58f6GgoJmAfIeedIeOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFheaVtsbFuIcm56coVnhoRaX0dOP0dfTUVSVlZRUVNXVGddTVZIUlJPRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq5yYmJ2fqamnqr/Dr7G6vLbAv6qlt6+prKSytK6us7aqqKWwraW0sputtba1pqeosrCssqetnaqgsaefoqKZoKGarLOUo6Wltr2mraerqqyopqGgmKCmo5mZpaOkmJykqZaUopyTk6OlpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmRhHyQkJHKcpe8nMV6crWmu5B7gG2WsauweWhsWLGubmVpvZK8bmd6b3KP2H5Ta2O2sn+BcpRzmqGqkFdPV2JPVk5GVVtYUVBSjFxXW1BBXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5yepayyqLDCvrK1v7W2vsGrp7OsrKmmrrOprrazp6emtKWnt62cs7K2q6Wkp7GtrLCmqp2mo7CioZ+dlpqenK2rk52in7S6o6qpoq2upaGdmpqip5+Xm6egn5iep6eRnKaak52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWW+cmemjHWxanyxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWl+Mq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1dXL0lUU0pDRkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVg62npZ6jpKqxt6y1vb+wtsSyt7rBpqmwqq6oqK+uorC6r6OkrbKjqLinnrOzsKOloKmsr6uvpqeeo6Gvm6KalpWWmZqrpZWaoZ+0s6KrnKOtraCempagoqicmJ2jn5uZoaakj5yimZegn6qepqagmp+hlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuCpnuChoiSlJJ3q2drsVyreo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlXWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwG5WglYizpqahr6mns6ypu7bCsLvBrbi3v6msra2tpq2xqaCuu6qgp7Sso6u0pKays6ejop6nqrGnsKelnp+frpWemZSVlZedq6CZmaSota+iqY+pqKqbnZWXoKWomp6cop6bn6Olo5WbnpeZnKKpm6aZnJuioJeTkZOTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joekgqWCeqx5j51Wr3qIfp9quVq5doaDfaaCk3yYeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqWJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1uTlxRT1lmWUNEP0U/MD08NTk7NzQ8PDg9OjxDOkY6Oj82OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSZsqioprSqpbSppLy3wbC5v7G1tLqytKexr6KwsqafrbWnmqe5raKvsJ+ztLChpJ6fpqmwqLSoo5udnaqVmJaVlpSWoKicmZaorbCpo56PraKolp2Xm6CloZihoaGhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2if5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuGhHytfZeZjnuwcpKdjnizZZd0hJ5vnmaUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSTk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwop2TpbCso6u8raa0pqe2u7yyur62trS5uLKltLOgsbGinquvpJemua2ksbCbtLiqoKWdoamksaesqaOZnJmnnZWTl5eRkaGmn5WSpauwpqKWk62gpZKUoJukpp+VmqWmoZqjn62ZoJ6ekJWboZ2cpZWdlZqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6OnYWamnavhomRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZGlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+ubextLq0pLeyn7Osn56oq5+Up7WrqK+xqq20pJupoJ+nobWmpqmimJ2UpKCTkpuYkZShpJqSkKatr6aglZmpoKKPkaGZqKSglZmlqJ2cpJ6tnaGdoI2TnpqdoZiZm5aXoqCUl5CmnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/dodzqIGOm42SpHyWkJ+Ee7JenWSgfoOVbZJcq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1Y3SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqawKuYtMKuq62ppbSwt7C1vrm5sbC1uqi6tJ+vpJ2kp6eek6mwqa+ptauqrqGYoJ+mpKO5oqOroJabkKGflJOemZOXnp+PjIuosLCnnZebqKafjJKkl6iqp5SXqaeenqCiraShnqKMlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uG+Me4uiamu2WqGFZZeXaaGip22TcrR0k5h/smqFkoitanWzYZ1mom+Hk2uXXK1fTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUj4+bW8zQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybn7yhm7LArq2rrKe3qbevtb+0u6+ut7aqwLWoqaCapaOhnJGqqae1orKnrqmgl5unn6SruJ2irJqVmY6jopWMnKCbmJyfkZOUqrawqJmUm6yql4yUpZilrKKRlqqyo5+epquxmaGjj5iilp+blpyWoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6pLZ1fXd2woKasmCDunnAfHW4Y7WCjIepfJWBrKlxe390vIinoGmdYaaOr6F+jHSHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2NteG9aXFlDQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bEsLiwrbmurcCwq6OhnqOhnJuQqaOqsqS0paylnpWZqpimrLicoq2XlJ+PpJ+SjJyinZedmpGVkq+5sqyWmKSop5SQlqScpK2ekaCoq5+bn6ijs5+jpY6nopSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHGAc5G5g3yGhoyHjXyKh4yXfKS7ub2cdXq0o3R3l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05QTUQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzynnqCiv6WWtMO0rKuorKupuq6wxa2zsq21prO4q6mhoaWeoJ2Zk6ukrKmltaenn5uVoKOdq6S9pqGplpObkKGakY+hp6GTnJeTl5SxtbetmZ6kpKKLkpKmm6Wqm5WppKWcmqGopaekqaGRrZ+WpJ6Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylohgcmpaXpuJYGOIj5VrYICVY22dd2KVbICalZRlXmBjcZqKaXKLfYaVZ2t/cnV4fX5iW3d0gWhQXG6DfXuLa1hreoJzSkpvhnBOdE1FWF1nYUxbWGdjX09bbXVpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGmn6KnnaObmZmrpq6jpLSopJuXlKCbpq2ovaeopJSTmpWfmZKXpKiokJ2RkJicsLK/rJynnqeiiZORqZqoo5uaq6CjmZujp6yjoKujmrCblaeglpSdn52XsKWYoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KYlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpOUmJSYlpqgoZqclKGdjoJ6pYVta32RfIB1ioqBcYJ4eXZ2ioB8imtzgXSDdWV3fXdrb3ptYGNdcGhNWVpmamBXWm95bW1mVFBGUzlPWk1RTygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOgs6LAoaSysragqaWyp6WwtKrIqqyvpLSlwKazoJ2kpJyjlZWfqqasoqO2q5+YlpWflq2ppcCeq6OUkZuXnZeSk6GenqKnkpKZqKeyxLCbq52rn5CWlqedqpucn6yYoZucoqSvp6KlqJ+umJennZmZoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWnIOSgouqqYWAmZeJhJCeiHqEkIeGmpKIhoqWj5uXjZGYnaSWmpORnY1/jmehs6+FioR2e5KKfXd5em9meZCBgIlrdYF6iHNpc397doOHgmt1ZHlmYGpmY2Rma1lse29pa11TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9dXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLmvv6yrrrKxoKqmsq2irLOvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrWdlJOdmZmvpa2+oKuikJGdmZiUkJShnJeonISeqqujtMi0oKqkq5eWl5mlnamanqOrlJ6fnqCpr6qmpKuirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1oa3uSpKpqZZuYfWeGimVlaWh7jqGPa2eNmJGjd2tqi5mjn5hzbG56hI6IelhmXoaDXm2LiYF2XGhzd3aSgIiCbniCeIBzbXmEdHaJiI+DfGuHWV5sdGRec4lpa3xxa2RfUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLqvrLSxqqWora6wpq2tsLywqKajra6wnqyWn6OdoZmZpqqcrKOlp6iyrZ6Uo4+ir6W2uaWuoo6OmqGZk5KaoJmZpJV7pa2iqLTEuKWip6+fnZSdoZ6jm6KpqJKfoZ6gqbCrq6SroKqcp5+noKyWoZulsKSXm6mVoJ2akaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqaZmXKrgnzLwMC7cYyjiIKffZeZiZ3AvYKXnZ6NncLBfIJ8k42aw8B9bKWyb4yBb8p6f5t3kYOOgXZ5gYB5cXp/h3B3hYyTeW54lGNnYHhkYGWCY150Z2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXlxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavq5+qmJqin5yaqqeinauipKikpLSjnKKSpq2rt7OnrqKRkZmcpZKRn6GXm5+diKaspKytwMCxoamvqZeRnpyimaGjqqOToaKdnayuqq2npKSnoaalnayokaOaqK2pmpyom6uglZWklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjKp7qIeFoHWYk4izY4KrhqGOjbNqhK91fZeIt2GDrVqjzW6Qdnvae3+ZcH6HknZ+ZXuIdnZrfIdufYaRkX5tg5Bhcm1waGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqo6qmr6mfppuZpJecoq+foJ+op6KloJ+wrJqdlaeurLCqqKuflJGan6SSj56kl52no5+tpauwqMDHs6ipsa6WkpyaoZefqamflaGfnZysrqisqpyoqKSiq5KsspaloqqqnaKlpKCun5GYppmfmZOTkJegcYWMl3WFqIZxsX2ecqx+op+BpY+edquCfa1/nHKtfquHhp92mZJ7fJd+qoiijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbpORZnB1dXFhZ21lX29paW5nZFhTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1dARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaaoqqatq6umoaOdmaGVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaOhkZSgrJqdpqOvrKSstaq6zrKtpq6sl5SbnKKZnq6snJegmp6fqLGqq6ubraulo6uarrGhqKuupZikqaior6GRlaKjmZORhKRqpHWJeql0erJwgqaKmYxxiaCbh6RgYFKrhX+ug5t2rYGnhoWfepmXhntmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXJiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dS/oZmrp6Cvop6wtLCuqayip6aoqquppKWfm6SenaWnp6Ocq5qirKGjn6+hnJqSq6O1r66gp5qdlZOmopCaoqefn6WcsaWkqLGtt8iytaqsqZaSnJuimZ+ls52aoZSdn6asraSwm62qo6OqobOtoaqzsaGaqKetrrShkZSippeakXypbJ6Eh3WreXywb4KljImflpaglYHSuLS4yYGBsl9glKmDpImHoHqYlpp4qsl0mqSVqKmRk5qNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OHbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqikqquqpp+mpZiqo5+uq52loKyanqmlnKe2nqKXk6iqtbKsm6WcoJSPpayRmZyno5+pp66hpaepsLXDsrOqraiTipecpZuho6+ll6GVmZylpq2csZ6uqKafrKO3rKGyuK+dmq6msbKxo5OWpqKZno6CnU54moF/n3qEo32DpIWHpp+dn5SEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjHZ7c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlra2uqqecpqaao6ehs66iqaayoJippJSjtqKilZehqbS4o5uhnKKSj6GxmZ6bpqWgoa+unKWoorayxbGtqa2pkYeQnKicoqScpZeemJqapqSrm7CirqSmmK+ku6yhtratnZy0sbevsaWXnK6go5yFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CppyjjqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY55fnmQg25qeWl6c2+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIqtvr+8urSelqekrbWhopmUoqimrqurmKain6agoLano6insKOUrKOOpK2inZCamqqzs6ScpJyokZSXrp+fnqainKedtZqiqqS2rMSwqaupoYyEjpyioKailZmanZmbmaalqJmtqK6jpZutpr2slL2vrJ+hr7K4qbKlmqiwoqeXeaiRfXywd4qApKWInG2ycKGHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2bloureJ2hkoqUkoF6r16kgX2mp2SdgH2Xc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpmOfHyEmYBrbn9jf3RugHpgZ2ZxbmhnaENZYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK24paOOm6Sin7Cwqp+kn52tmZ65oKOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoJ2moZqkna6Yoaint6nBr6WppJ6LgI6bmp+mnpKUmZuUm5qmpaabqqyspKWfqai+pJbCrKqioKuyuKmspZ6yraeol3WvfpCLnIWHfrqtipllsI1lla19oI+DppWagayKhLCFppqkoaGQhKBcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tVmyfVKugHqsWIChbZiQqJuMmJKamnx6kZ9/ZXV+Y4Z4dIF8YWpncG1nZWZPVWRcQVVfPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYF9gYWFeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktaigipqgnpyzs6mfo6CetZmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+omaGdpZ+ao6OlmaCiqrOpvbClqJ6cjn2Lm5ahoJiPkZqckpqYqaCimqmuqKamoqWpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bgIekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqadkZuSmqB7g5Oce2R+e2WPZ3mCe2FsZWtqY1BiW1NqXD9UYUNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpLKmnYuYpcCquLKoob+mp7KcnrGcuqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnaecmqGpo5mfoaytqrquqKOalpJ8iJmRppuSj5GYmY+YlKmboZmqqaGrp6CjqrueqMSin62iqbOzqa6on7mmra2Zc3aqpbiGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybGxsZot4b26CmXGBempxaWeKl5aYcWlphYhncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZH+Nk4+hmJmZk5qifomRlnZniHhpj2t5gHllbWNmbGJLZVhKbFo6UGVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunaOyqZeSv7PFyr+3q57ArK2koqesn7qjpK6rraaOl66pj4uFlZatnqaqoJ2ko6CRi6SSppipmpejqqGWnaamp6+6rKyam5KRe4SWjaWYjZGRmZWOmJaplqCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa1oqy2lYqhqKa3nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJ2VkZmTmZGPloaBpZuYlo6LlJSMkIaEfWeJfnSCdXOHinCnbHqUkZOSgYGNj5CPnZWil5qapYSJl49zapF3cYx4d316am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlRRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaXFxeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtbGQjqzIvsa8uqujpZ6cp5+xqaO2p52ptKaokZisoouHiY+cp5WspJ+Yp56ekpSjlqeZqJqUpqGkkJuomaG1uqirmZqPjHyBlIuhlIqVkZaRkJSYppCgm6qfnLajnaart6euwK2itqWur6+rqKixt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6uvmqCjr6ivmKOgnKOqnp6enJarnZOZoZuUkJarmo6ZmZeRlp+SiaGelpWFko2RjpWLgH1mi4V1hnV4h4JznGqFj5STkIl9i5WSkpiUo5OfmaSFipqJfHOXc3uMgHN8f2pvZF5wamBbYFpuZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYWVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fX2FhYmFhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW9sK6toqOaep6jsqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmZutiqmWj6iZqY2ZqY+eubakpZmcjIh5gpSMm5OKlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wir650o7yisZ93eJ+osLmUdayjnomAq39kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZqXcICYqJhtf6KoimWcpp2SmJiWjZKckoaem5CWhJKHj4+SiYV3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7qJycZnubiYR5mWqFjIRveoBrcmVfdnFsa2hcZmZiYnBTWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZoWFBKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6wrKuppaitoqetpJKWq7axs6ebq6esl3OMnbCgqKunlJe5oKCPnKSdkX+JiJuejKyaopWnoZ2OlpKehHWtj4inm6mRl6SJnLqzqKCZmIuJdXeTjZaTipSRkZSNkJShj5yhp5mcspWAjJu1nbOMko66pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpudoaeop4eVhZh3pZt6h5yBl6eCgnucsnqKhqGYmpWYloORl5eFm5lieoeQhY+QkouDbXCOh3mAcH+AhH6Fc4WElZF4lmiSdKCadX2ZhaOgiZh/lIyFhZprj46GbHh7cXFnZHdvamxrXGVramZ0XF5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lcYmFoZlpRSDlETDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6asrauorKCnr6amqaWZlK/Iv7Gil6iptp6QhJ2snKeioI6Qvp6ajJ+aoJB8ho+Zl4esnKGWn6CRjJOJhoCRp42Ho52klJiehp66sqiempKOhXF2kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqayItoWNsIGvrIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hlKGQmZeBj5Sci5mSi32Fk4eOlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYWagY6Ph4uacY+UhWh4dXx4aGh2cGhobF5kcGxnbllnR11STTNFNDdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaummpSgo6SrpJemq7ijr4ChqJ2mnp2JlL2Zk42hkp6PeYSWlpGHq5mbnJmhhI6Ld5ucj5+QiJ6knJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj52cnJCFgKCMqa2Fo42pmYyaf6J1gJmUa4Ktdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXgI17ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+WcKeqa4OjbnKlcJ+FoGpnoG1bb4x9Z1pghIBiWFBvd2ZtdHJram9danBsbGpZaU9dWUY5QTVIRF9sNSxJRFJNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6quopmYoaKlra6hnq+1o6iSoaCgp5yajpm0mZCLn4yVi3WBlJKMiqaVlZmenn6ShYWspIebkIqZqZmam5KIprGnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfoJyhpH+TgY+ioZSgdpyVj6eCoKZ/haerg6V4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2JzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2Zs5ZyfZifs3VzW56yg2pib3R2cWlvWGtscnNnXWleYkxFPUQ2UUJaczM9U0dgSlI9PDM5NTo5NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42ktrStraCaop2ko6aunZyyrqyTmKKaoaSZm5Wfq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNqKCHl46JkqSUnJuNi6mopZ6Ql4eFfmp7h359kI2Di5GRiZCUoYOXnqCdoJ6LiXecmKKNn3Ghioeph5uljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml2pf3m7a36qXI6EXbRnXG5yenhraVxxanh5ZGBmWGJCUUZPN1dDUm81TFtbX05aREEyNTE8OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7mxsKyeppycqaCfr5yesamtnpekm6GgmZeXoKOZhomNaoiAcnuXiIyWloSRlZiQeoqElaOcipSPhoyfkp2diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKOfoKGTmHJon4mfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6Ozo6SAiJR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm5zfZVwmnRrpF2VdkhlZGB0cX5+b2ZgbGl2fGVlYVFfV11UV0BaRlFoRVRXXWJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqUoqyko6iPoJ6dm5qWmaGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKhnHORkIGJmpWhm4WPqZyblYuLi3yDbISFcYKhjHiGjYiIk5mWfJOkoJ6iiK2GfbWEjp6de6WWeqmBlZuPiZ+bfKdod21+mXShc3J8nYaZcJODrn2kg6WdmYCjb16pZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZtufHCWbX9yonJdpGdzpmBopm2b1Jp+hptwenuYbJx8eJdzbqmkZ2BlenGAhWxoZmRudXhoYGNTXGZRUWJIWUpVYVdUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFpZXxkXmRnZGtkam1naGxol5p/r6pUXEt+qa+xs6+yo5uZhZmpoKGkjqapoZmqi5uZmZSZk5KhmI6HhXtwfYRofY+DlJqAd5GOj4lvf4aPk5Jsl5N8iZKTpZeDj6ublJOLhol5g3aHgG6Cn4Z3gJKGiJmjmHuUo6SZn4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSkrq+Kl4yAjaSNlYOtoJN2tba1yaFzlIuBn2Cel6lteZaHoJt0ooh3oH6Tl4uBcE1mo5Jwm4dzpHt5dGGDgWt+oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclFFfbNfanZreohma2hjdXVxbldfVFlpUFNoSVdNWVRWXmlsb1ZoV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxobGZjZV9cXV1eaWJkaWt7X11kaGNqZm9tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICXqqKjpYylp56dpoObmJeOl5CPnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkoOMhZ2NeY2LlqaThJmqmI2Si4GJeoB9i3lwkKGGeYCVh4mWoJZ/lKWonJWVg2ZueJxsomR7caV3m5hwZ6aAlYp6pHqfloOXc553gYqVl4+5bpGKomJ9maCViG5yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJaXltioW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHl0a3BSWVdXZlpUbUlZT11JWGlpc2tZbFdRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbWZrbWOco5eleWRzbYumraOpsLGmn4uAmKudn6aMo6Kbo6KBlpmUjpqQi5iQjop7h3GAiGmLi3yYm3N1iX6Qe2SDh5WKipWZgnyIh5eokYGjrZGGkIuCin6AgI5zaZCmhH2Gk42ImaCPiJOppp2IpniVm36kiJaLsZidkIKvl5+ldpSGeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNag6eOq2F1cnRwfHVxY2t/b2ltU1dbVmFiXWtNXVJdSl5tb3dgW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYmxqeG1nbG5ilaSpnIF/naOWqamdqKaupJmKgpismp+lipumnamdhY2bkIeckYWSjYyNdId7iIRvjYV+mJN0dIZzkoJtf4uRh4aTjn17goaYpo5/p6ePgY6JhZV2goeSb2yLqYGDjJSOiZ2fiYyUqqKfj4B1lJeIfoF5lK6if4GbcY+Gd46Jgn17cqeMcn59epiWm4SQeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+Bf4t3dHKUdW95bm2HbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25uaIxzenyYeIVcbFh5j2lveHJxb3h4cF1rh25qZ1ZbYFddZmtkVmNVX1FfcHl5bWt3Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF4i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2Tt6imiaCimqajmKScq6KhhISYrZKeoYmbp5upmIOCnIx/lpSHjoqJjXKDfI99fo+Fe5iPdHKEcZWFe32Si4aGj4R5foCHmqWOfKiijIaQkIWVg4aOmHdyhKmGjpKdkImfnoiMm6efn6qEiY6Vmn5+iZatp4+Rpo93b5uPgXiQbn6ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GBfn+Mal1qZHuGhImAYGl4epp7goqBdYGFgWd3ioZqYXBxgXRecYqBiI6llIVli42DbneLhHGGj3pxaGhlfIR7lltca2hudlt8eXh1bnNzg2dcbYtra2JaWl9bWWxxXF9hWl9dZXR/fHZwdWRra2t8fXN8eXVkbnVobXx+d3p8e3l6gIB+b4aKhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N6b2hqbWCLiqmwoY+ioZqenZeemKijon6Dma6OoJWInKKRpZV/fJiGfZKZiYmGh4pzfoGMdoWMgoSXinJvgHKYhoN+koOEhomAeoGEjJyhkYOnooh5jpeJlYuLnJeEg3qtgpGYmpWKnp2HiKGqn6Gio4uIk5uco5mVqqGnpp+SmoeVjHp2jY2Dp35/kpCTlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDh5GLfImehIeMkImIgYWEkHd8enSZoIiGiZ2JhJN+fYqAgHVvcoSCfneFhoqPpZCChYyGgoyQjH2IjIqRhHptg4V+eplrc2lhdIpxfnp3d293dIJdXm+HaG5fXlpdXVNoclZkXV1ibGh2fH10b3Bla2ppgH1ueYByanBxbGeBe3KCgHh/fX+Ee22CjIZ8enh7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWl5enFnaWtkjIecuZ6WoaCYlJiZlJikoJ58f5qsj5+OhqCdi56WfXmVhHyOmYqGg4SHbnmBgXOBiH6JlIRta356l4eEg5B/gIeEhXyHhY+cn5OIrKCEc4uQhpKRi52RfY17qoSOk5iWj5yWh4ebpZ+imp2FgpKampiPmaafpZ2cj5V/j4h1e4aNhKV7fI6QkYaZq6KelJ2QjqmNkICdjIiTmZ6Cj5d+h46Db3iGcnVgf4SQhnWNmYGDkIOHhX+FhJVueXZ0kqGKi4Wag4SMc3+Je3xycXqHgnp3iY2DkaaPhYOOgIOKiYp3homLjH5xbX+CfG9obG1oX3p/aH58dnV2dXt4XF9xfm50YGNbXV9SZ25UZVteYmtpdnp/cmxtZGtqaIF/bHSBbGx1b3pwhnluh4B2goB+hXZygo2Ifnt8fH97gopgaHtqdWlpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuanp+ee3ifp5Gci4ellYuYmXl6jYV8iZGEjIKCg258gHlzgYV+i5F9a2h9gpeJgYiOfH6GhIZ8j4KQnZ2TiamdgXGMi4yShqChioWMfKiRiJCSl5OWk3iNo5+gnZaZf4CQm5mSjJqioKOZl5CafYyDd3+Cjoagf36MjI98mKShopOakZCmjI+BmpGJkpebfpOSfoeOgXV0gnF3YX6AjoZyi5Z9iIxyjH+ChYaPaHhyeIuYkY9/ln2IinKBhnt8cHd6ioJ4eI+LgZSlkouFj3uFhoeEdoOEiYl8Z3N9gHl7cW1rZ19+c2h8dXZ0fHOAal5gdHZwd2RjWV9fUmtpVWVZYGFoanZ5gnFna2RsaGaAgGtufmhvcWx+eYd6bIyBc4GBfoF0doKNhn98e4CBfX+PaXKDbnRpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnX13paGOmICNo4uImpZ5e4aHfoOJf4mCgX9yf3t0doOFfoqReGdjfoaXioKKjHl9gI2DeZaClpmYjZehnH9wjIKRk4alm4eMiYOmlYWTi5aYk5J3kZ2goZeUlnl+jpiYjpaanKOdmJKUmniNhIJ3g5WNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KWmX6YjXyIjYF2cX5ue2SAfIuFcYeTgJGCbIeDgYCJhWZ1b3uFkZeLfJJ3i4h7f4Z7enF9d4iDeIOPh4mXoZWBg4t2iISDgnd8g4qHeGB6eX50f3hnbWVhf2pqd3N0dn5xfGNjYHNudXJtYVphXltsZVJjWWFhaGt2eYZxY2tjbWZofINtaXVobnBpgH2CeW2QhnKAg4N+dHyDjIGAfnuCg358kG12iXN1bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5l6l52LjJiQeXyBjH58hHyBg4F4dHl6dH2AhICJi4BkX32LlYd/hYZ1fX6Lf32YhpeVmI2kopmAc4d7k5GJpo+MjoqToJGDkpCVl5GLgY+Xn5qRkJBzf42SlImdnZ6ml5eMlJVyi4yJa4SXj5l6h4iPiW+XnZqklJWLjJ6MhoGRnH+SkpWGmYh7ioqBeXF6bHVsfH+Lfm6Gk4OVeHGChH5+i4Blcml7f5aXg36Nc4+HgniGfXV3f3yEf3uCi4OKk6OPeIOBdImHfYB0doKJhXBifHZ7cn1wYm9jZHxjbnB2c3h3c3RidmBvbHZub1xcX15eal5QXVljYWhudHuJbGBpZWtjaXeHbmdsaWttaIF9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfpKidioqShoqdi5WYfnivmY2XfZ+UkZeTiHd+e4p9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGgIODc3uAh3qPkomTkp2VppyWgn2BfY6KkaOIjoqNmJqNhpKZlJaOioiMkpySj4yMboSQj5GInpmioJaViZaQbYeYg2WFmI6TeomEkIpwlpqUo5OSiYuZjIF/kJ19ko6SjJmOe4qFh3NzdmxxbnV8inRuhpGPk3F1gXyBgYh8ZXBseXyZk3yDiHSQiYBzh3huf3yAhXuEi4eCi5SnjHqGe36KhXd+cXCBh4VmaXp1dnF8Yl9wYWt0X3Fqe3l5bHNwZXlebmxzbXJYW19gYWtbUFdYZWNncXF/iGddaWlnYmdxjW9kaWhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTjoehjZaUj39zfHaFeHl/c3N7hmtzcHpui3aAgYhvcVtZfpGNh4B/f3Z1gICAoIeSi5SemqKVmHiKf4GNiJydio+GkpiWhYmVmpCXi4uNjYyciY2Qg22Ji5CRip2WoZuXlIWXh2mDooFlhJyJkH6Lg4uBd5OYkp+TkYmJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdIOPmYtxd4B1goiDeWZybnWAmY57h4N5k5B5dYdzb4d6hIp5ioWBh42aooZ7g3WCi393eW5sgYWDX3R1c3FxeVpfcWFwa15wan17cW1tam12YG9va3FtWVliYWJuWFFUWmZnY3VwhINjXWtuZGNma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHmFf3iIhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmqyep5aFjYR/l5SDkKB2jKCUk4eLm42Wjot5cXh0gnByhXRxdohscG52bYh2g36Abm5VUYGrlYeDeH93coN6g6CCk4KVlJqdk5t4knuDjJKjmZOOiZWZkoSHl5mMlIuJj4+HnYSQinxzi4WKjoicmp+blZN/k31ohJuGZ4Wfh5GEkYKJcYORmJCcj4+MjI+Md3uRkHqOi4yRlox8iHyAa3dqbmtsbHt/Ynp+j5eBdnuBeIOMfXlnc2xzhpWLfoeFepOPcXmDb3aLeYiKeYh8gYqPnZ2Ee3p2got8d3FqbIKEe2F5cW5tcnRWX3BicmFgbW96cWhvZmZzdGlxa2J3ZV1XZmBgclNRT1xmZV15cIh9YFxpcmJiZWaRal9oZVtncH5wa3F0in12fIaAdXZ+jHl7hYF4iINzhoV+jIyEfHmVeGZya4NgiH5vb2t6YGpudH91X3R9eYZ4dHOFfXigj5mwm6WOgot/g5qIgIyfgIualI+FiJiOj4+EdnR3dIBxcIV0cHKEcGtpd26Dbn19bXVzUk2C38iS1pN7cHWEdoSgg5R3lpGZnZGZe5RzhZCeoZOTkImTnJSGf5eWiI2NiJGMh5t/joB3eo1+iYyKnJucmpSSeYx1ZoeQhWuHooSRiJeDhmOMkZmPlYuXjIyKinF6lIh7joiKkpGJeoZ8f218ZXNva2x6eluBeZCQgXp+f4CGjnt6aHJqc4qPiYGFhHyUimt9fm1/i32KhXyDeICOlJmZinx1d4OPeHJtZ3GAhW5rdXBoanVuU19vZXBaYGxyeGdramJmeHJwcWNfd2BgVmtfXnZQTkxhZ2NdenGJdV1cZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fotzgIZ/e4l/comIgZGLiHx+mHZlc258ZYh+bnBsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOOh4F0eHB5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChc2x2hHaFo4aTcJeRlqGVnIGScoaLopeJjZWKkJ2Wg4GWkIWJj4CRiYmWfod6dX+JeIeEjpyamJiOj3aJdW2FiIl8iaKDkYmchIVei5OXi4+Jj4uLhIlte5aBfYiFiZGPhnaGfn5rfWR4dmpueXNYiXuSiIV6foGBhox/eWVyaX+JjYmCgX6LlYRrgXVth4+BjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xY2p2aFJhcWdsVl9vdHphcmRgaX1wc29bY3JgYlZuWVx4Tk1MZGZiXndziW5cXGR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJld3mHjWl2gIlyf5yGmKabo5KEfXGMlHd5jJ6FhaGNj3yWjYCZiIR7c3dwdGpwgWxpbXx1X2F4d3xxdXxoYGR869q1ycPch3NsdIJ3i5uJj2qZkZCelpSBiXGFiJ+NhIuVioyYlHyNk4iDiY97j4qFj4F/dniDhHKIgpOclpSXhYx1hn5vg4GHhpihgpOMnoOJYYOUj4eKhoqOh4GHaXyTf32DhImOjYJyh39/cXdodnNqdHdsWo19k4OFfYCEgYSKgnZhcmuIgY6JgX5+kZB9bYFrd4SOhJCCe4B8fo+Rj5WIbnB5jIV0a3Fsc3mCYXVqb11sd2FSZXJpZlNgcHZ1YXBgXWiDcXNrV2doYmlYbVZbdUxLTGVnXmJzc4VqXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHOFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHmGcYBvZ3l3koNkdoaFcIqWhZmgmqKKh3Rvkoxxd4+cfouaiYl9oH+DmYCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto6RpnhucXd8cZORjYhrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6Tk4GIdYKFdIJ/iZGcnYaUj59+iGJ/k4eFiIWLjYCAg2d8kIB+f4KMj5B+bYN8g3VsbXd1dXh2bGOOgY+AhX59hn+EiX9wX3FvhHuOi4F7fpCIeXCDZXmBiYWKgXqEfH6SjY+Rg21ueYt+dW1ua2x7f2RpbGpZbndaU2pzaWJRY3J4bWNmXlpqg250YlxoX2RsX25VW3BPSE9nZVxnb3GAbVpcY3NgXGNsd2VlXV1aa2xjbWpzd4Z/cXB/fH10eIZ4hYJ8gId1eYmBkpV8iYZ2iIFweHl7hJNvbnuBd16DgHSCbWl6dJRzZ3OIfHGSkYOZnpughoh2dpR/bXeUmH+IkISLjpp8i5p3fnZxcGxqYXV8Z2JqdXpbYHh8em1xf2VjaGdXnY9fcXOWvMSEd3GUipCAdJiMh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH+Th3SIhXZ2fYJxdYaBnpWGlI+CgnF+h3ODeoiWm5aGko2cgIhmfZOCgIaEiolygX1nfYt7eX9/h4uPfWmAfYR2ZnB5eHR4dGxrj4aLgot/eYOBhISAa15wd3p9i4eFe4COf35ygGh4gYaJhIJ3gnp/louOi3xta3qIfHZ0b2lofndlXXFjWHB0U1Rvc2liTmh1eWdhXl1Yb4BvdFllY11qbWBwT1lsUkRUaGJabG9te29ZW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFqgnl6fm5tfHaWa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeY6Wb3pzcWxqZGB0e2lgZnJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqElYBviodxdH17anmGg6WRhJOMgn9ufoJ1gneEmpeSipOPlIWHcHqShH6DhIqDb4F4aICFeHJ/f4OKh3xlfH6EdmNxc4BqenFvdZmNhoSLfHd5gIR6gmtcb3xyf4aDiH2Fh3qIcYBtcIKFjYKDcYN3f5eLjYN3bW1+g392emVoan5yYVp4Wllybk5YcnRmYEttd3ViXlxbWXV9cnBXZ15manFfb05XaVM/WWdfW3BrZ3lxW1tZa2VZY3B5X2hdXmVsaGZsaXF4f4dvbX99gXZwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9scH50f31vcnx7lHBvgH95ZpKKgqGYnZGDhmeHhHBnepeKfoCFgpmKgXyNjWl4cmxsZl9hb3ltX2JveVxkbIN6YXF2X2Rl1eu+izI6PouOgHJ5homPjXeFmY5/lI6Nf25thYyLdX2Pf4WClYl8g3hudoeFgpZ3boeEa3V7dGV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLh397kod4gIWNg2yAc2mAfnhtfHuBioN4YnmEgnJkcWl/bnZydYKcjIGAhn90dn6Ac4FvWmt9c3iIgYp7hn98iHd5cGuHgo6CiXGAd32UiYp9dG1qdoCAdXVcaWl5cVpXfVNacmZNW3NyZlxKcXhwXVtbWl11f3VpWWJbZ2VuYmlNV2ZRPV5mXV52Zl91cVtZVW9kWmRweVtoXmBnbWdqa2lweH2ObWqChIB5boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt+a3R8coZ7c3d9f4x6eIR+fGuMjISbnZaMgoFsjX5raH+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4d3iJiHdZCMindwbYWChnR5iXiJfZOIen9zZ3WIfn2Xb3GFfWh2eW5leomFpYeAh42JfW19dH5/e4qXhoGSkJiJi4WKfI+Jcnx+hXxpfm1rgXt5anp2goeBcmB3gn5yZHJndoNudXyGlZKCfYKAcHd6fHV+bVhtfXVzin+GdoZ0gol6d3JtiH+Of4NxfXt8kYeIem1taG2CgXVuXWhmdHJSXHxOXHFdT1xzcGRWS3R5a1hZWVphcYF1YV1dYGZkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3JXal9iaGtnbWxpcHd8k2xphIp9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot6a22FiZJ5fXuCkoCAfYqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMm4coWEc5R9eYiUhHSSjodyc3CEeoJzdYZ0iHeUiXl5cWR3hnqAkmhxhHVmd3ZkanyEiJ6CgH+Ojn1xfnKDeH6QjoJ3lYyUkIiCiHqJiWx5en91aHppbH95c2l6doCDfWhgeIh9a2p0aHuBanaCjZGVf3x+fnF8dnx0fmJVdXtxcoiCgnuBcIaJd3hvb4KBi318d3x7dI2EgXVocGdsiIJycF1oY3RvTGZ2TF5vVlRadG5iUU90eWJSWFhdYXCCc1thXWhlZWNqZFFbcUlEZGJcZHFeXHhoVVdWd15cZm5oVmxeYWpnZW5uaHB3epNuaYiMeX1ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3SDeH+BgYKEeoB1b32Ki5ueiH6Ge3eGe2d1h42Ren+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpx4aIs3KKeXCOdn2IkIF7lIuAdXR1fnZ/b3B/bYV0lIZ4dWxgeYF5iI5lcYNvZ3VuW219gZCTgIF5kpJ9d3pshXR/j4qDcpWJkY+IhoZ7f4ZtdXZ/bWh3Zm18dm1qd3Z/f3xgYniGemh1dmN+fGh1h4+Oln11gHZygHp9bYBZVnJ9b3OChn5/d2uIhnN4anR/goJ8eXt3eXGKf3tyZ3NkbYuEbHNbal92Zklvb0xbY1hXVnltYlBTdXZZUVZYXmByhG9cYGNtZGNdb2NUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniPdGuOjXZ/dnh9d4GDgXt0foOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4h3x9gX2EgHt+cnZ4i46fjIl7ind1g3pefoeajXmHhHSGh4R3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi21yhHJ+hot/e5KFenl0enV0empsdmOEdpKCdm9nX3yBeYuIZXGAampxY1hte4aciYOCcpeTd317bYZvgImKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHF3fXx5XWV6gHhpdXlngndodYiMjpV9c4dqb36AeG59XVdwfW1zfol7gG1uin9wdmZ2fn9+gHV7cHhyhXt4cWVyYG2LgWtyWGtfeF1JcGxOV1ZfVFV8a2JPVHZyUVJUV15idIZpXWBramZiWW5hWGNwR0FoXWFmX1xWfF5PVmVxWVtqaF1YaGFfcmZqaHFncXN3h3lulYp1f3t3fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt+fYaEhId/fn59hn98eHZ5dpKUn36NfYtudYB6ZISImIZ0kopvhYWCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqfuG5idIdpdXxyeoSHe36NgHd4c3dvenZlam9hh3WOgXNqYl59d3iKgmVwfWhra1pWb3iLpIGFf3CZknF/d3SAbH+Aj4Zyk4eMiIWJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfXx5ZnJ+boV0ZnaGjYaWgHCLZ2t7g3RsdWJbbnpqc3qKe4BldId8bXBndH12fH5wemp4eX94d29lbGFsiX1sblZqYXhWS2tsT1JPaU5ZfWhiT1V1a01RVFVeZnaEZ11hcWhnYVdpXFxraUpFalpiZVdYVXlaTldualldbGVcWmVjXnRmbGVxZnNwdIF4cJmFdn9/eH98hYd9dXSCh3+Vg25zeXt7c3KFhoiIhHmBfXaPf32EiY6EgYN6fouDe3d8d3aanZh6ioOHanZ+fWyEhpWBco+CcYaCfoKAb2ZsZ1hdW1xbVGVwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anV3dHSEhniChXp3dHZua3pwYWhrZ4Z0jYRuZl5ffG96iX1obXdmamRWV3Nwjqd9hHx2lpBze3F7eGx5eo+DdZd8iIaDh4R9dXFzbWh1XW1pYG11ZGdmaXpve3NZZ4F2dWhwgXiCdmJ3hYt9lYJvjGtte4FxZnNlX2t4ZnF1iXp9YXWDdWlrcXR5b3h3cntlfH1+d3VuY2VgbIZ8bWtWamNyVExqa1BMT3BIXnxmYU5WdGRLT1RYYWt3fmZdZ3NpZV9XY1djcV1LS2tYZGJVVFVzVk1ZdmVaX2xgXFtkZV93Z21icGl0b3F+dXSZgXh/gHiAf4aEen12goN+mIVucnR8e3RxhYWOgYF6i3V0kIB9gZSOgIWEfH6Mhnp+gXZ7o6aKeYmGhWx1fHx1hIONe2+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGJ0e2ppbWhgYVdeWmmAaWxvgGdtYml7emt0dXVvhoJ6gX53dm57aGp5al9lbmiBd5CEZ2VYYXZpfYZ5bmlvZmZdVVhvaY+od4F6fJCOeHRufW1xdHiNfneUdIaDgIWJdmpzdmhpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+endhd4WFepGGc4hycHp/cmNxaFttdmRvcod6d2FygG9naXhzcWt3dnN1YoJ6fXZ1b2NiYm18fGtrVWliZ1RMbmhQSFJsRWF5ZmJNVHJfSk1VWWVseHtmX21wamNdVmBWcG9XSlNoWGdeWE1VbFRLXXpfXF9sXV1bYmVgemhsYW9vdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGBgnVuh299gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFXW1xrgWVxdX1pal5teHdodXhzbod8fn56dnNsemhpd2ddZHNneneSgWNjVGRvZoGEdnZmaGphV1ZZaGOQqG9/d3+Kjnpwb3tmd215inp2jnGEfX9/h25kd3RlaGldbGJecHBbZ19tdWV6aF10gG5ya3F7f3Z1YnWGjHyJiIB/eHJ1fnRhcGxYcHJhb3CDenRjcYBrYGx6bmloeXdzcGSDdHh4dHBkYGNtcn1qbFRpXl9VTHVjUUdXYkdjd2ZhTFRxWUtMWFhobHZ6ZWRtcWZjWlhdWHdnVEpcY1hpWFhIV2VRSWN4W11fbVteXGJkXn9pamBvdHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59f4WJanSWgXuKnX1+hXmAe358holzcY+ujHx8h5B+ZnGIenR+fXZyb4ZsfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXOGaVlxblteWFpcbHticXd2bGNcbnR1aHV3cW6GeX+Bendvb3RlaHRlW2d1ZnZ2knpfXVNlZWqCgXN8YWNpXFRXXmJkkKVpeXSChZB4bG15Zndse4N5dIdygXh8eYBpZXdtYGdhX2tgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzg5OAiYOJenZvcn1yYXhjWm5vYG9wgHpzZXGAZF5tdWhjZnh6cmttgHNye3FxYV5lbW59ZGlUaFlaVU55X1JKWllIY3VkYUpVblVKTFpXaWxye2RsbHNiYVlaW2F3XVRLY11ZalNWR1lhTkhqdlhfYW5bW19iY12FaWhibnh5bW9qdoGQeW6DfoCCkoiEgXZ1iXSMhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZont7f4mWeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxxiWVTcm5bWVhXYGt1ZGp1ampfW250cm10dHVrh31/gX13b25sZGlwY1trcmR0do5zXFdUY19wf35xgVxiY15TWmFcZJOfZXJxhYOQc2tqeGxubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF53aFdiXnBoYXdhW3x2ampybnh0dHRpcYKWhId/hXZzanB8bWZ3V1tpbGFwcX94c2VvflpgcHBhXmlvfGtqcn1xb3Zpb2BbZGtse2FmVGdVWFNRd1xSUFlSSGRzYmBHVmxRSVBaVWtsa3xlbW9yYVtaWFlscFdTUGZXV2lTVEZaXE9Jc3VYYGNuY1hhYWFejGpjZW16eWxuaXZ5hntrhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSFgZ+JdYF/gXR/gnCHg3Zvopd0e4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJsbFtccY1kT29tXFZXVWZoc2hjdGVlXlpwdm9xdnZ6bIh9gH2Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJidnx8cIRcY19jVFpgWmOXlWNucIKFiXJpZnluZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlhdWVVX2BtZGFxXV1+b2hpc3F0cXV2bG2FlIOKfIVxcmdufG9xb1JaZWlkcHJ/dXNibHVVYnFqW15uZHtka3R8cXFxaWxfWGRpanheZlVkVVdRVm9YUVdUUEhlcl9hRlhrT0lZVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnl3W19lbWpaYmFeXo9uYmdseXZubml2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHlsbXF3g2dkfG1kZ2doU2BfVWdgbG9cXm6OaE1pbGBVVlNvZXJrZnhlZV1acnZuc3t5c26Ke4B3nHt6a2FlbG1eYG5qZXB5fmdaVlhfand7em+DX2JeZ1ZZYFhknIhia3CBhnx3a2p2bFt1cGp5aXVybm97gXNYa29gWV5WY2RYZXFjVF9iaWFibFpgfmtmbHR1b214dmxoho2AinuIbXFmcHtscWxhWF9nZ25yf3NyXmlsU2VwZFVibWF4YW90enRpbmtqXldgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYEtYbWVfeGhufmRgVV5UXXVbVFJgZ05eYlVTSlxaUVp2dl1fZm1oWGNhW16OcWNoanhyc21odnN5g3OCg3uIjn58ioiOeW6PinRsc4Jzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2Njo6Ojo6Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Ojo6Ojo6Ojo6Pjo6Ojo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnaE1CQ0NEREU5Li4uLi4rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX2BhQTU2NTU1NycbHBwcHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmHhYWFhYWFhIODg4KDgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQkJCQkIuOkZGJh46KkJKTkYuQjYyPh4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo6Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYeHh4yGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhYaFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWGhoeMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin58dnZ4fHx7fH19fX19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhIiGhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp8enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoqKjIqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f4B/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f3+AgIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f4CAf39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/gH9/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlZWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTkpKSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fX59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkJKRkZKSk4eFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgZKRkZKOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf35/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhJGPkHx1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+Pj5CQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX19fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+JcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNdm57j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbW6DenR2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZFSEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f35+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ia3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/fn5+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXmxsXWZnZ2ViY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSElKSEhISUlISVZwc3V5ent5dnZ5enp7fX59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtZVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlprd21ibnNqYlpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent9fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tybGFtdHJnUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5cZG9rWWlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgH+BbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJFSVZjZ2tvcG5tbFpNTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIJvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNHSElOW2dpZ3JubmlmZGBfX1hMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdW11mbG5rb21tbGtpaWtjUkdFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4CAgICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUpbaW5ub2pvbWtqbGxlUEdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk6Oj1HYm5zbm5sa2xnVEI/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUZFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk8SV9zdHFmUj86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9aT46Oz49Pj9AQEA+P0FAQEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBBREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFPz9BRF9kPD09Ozs9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkNFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PkE6SWU9PD08ODo7Pz89PD07PEA9PTw9PTs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJR0hISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPDw9SUxGRnV3TTc4ODo7Pj9XakE7PDw6Ozs+Pz89PTg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnlJO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT9BQ0A8OTtBPz4+QT07P0FAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyeWtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSkpJTU1LRUNGRkdFR0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpMTk9QUE1JR0lHSElJSEhHR0hIRUNFRUVGRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dISk9OT09NS0dHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshIeGhoaHiIiHfE9YZExJSUdHRERDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERkdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdm9pU01APkE/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOfmxiYVI+OD9ANzc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42Mb2BkZVlBVz01NjU1ODczNTY4Ojg3NjU2NTY3Njc3Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomKiomJioqKiouKi4yGamZraWZRNzg4NTU4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi46Ea2xrYj88Pj85OTs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY6AbWxgRURGRkJBQUI/QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoOCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjI17bWtPS01LSkdISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj49QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIyMjYt4bWFtZE1PS0tLSUlKSklGRERHSEdEQ0VGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjYyMjId5eWVhT09NTE1KSUpIS0dER0lISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjIuMjYZpUlJPTk5NTkpISEVKSUVLSUdLSklKR0dHS0xOTE1ISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiIiJjIyLjIyMjIyMjGFUVVNQUE9MS0hHQ0hKR0xLR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKTEZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyOfVpYVVVWVVBOTEtFRkZMT05QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUlBMSk1NTUtOR0dKRkZISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMalpYbGNHVFJSUUs7O1JTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMiouMfmGKi4uHbl1lVjtZWllUUT9AVlVYXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9e35/fn1+fX19fn5/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqMem9wWlxdXFNVU1ZWVVtadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/f4B/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SLfmdaWlxaVVdVV1JRV1ZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltTU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB8XlJXWVZTVlNSUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f39/fn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFOXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d5b3JYS01PUE1PTEpLREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZgXk1FQERERERDQUVQQkNBQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCbE5IQEE7PD5AQD9AP2tQSmBFRkhJRUI/R0xOR01RVUlBRT4/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnV0dXN0dnh7fHt8fHx9fX19fH59fXx+fn9/f4CAf39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRWVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJBQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIR0hIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUxUVFNQUVVPTFJTVFhYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllUUU5PTkxJSEpMSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUdtcnR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STlpfW1ZZO0RWWFRbZkpMUFNST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pjw6Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdVUVBRUFFOUU9RUExKTExPUE9OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE5NTk1LTEtLTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTExPTUxNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwc3d6ent7fHt6end7d3l+fnx7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QUBAPkBESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE1LTE1NTUxMT05TZE5LTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEdJSUpMSUtMSUpNTU9QUlBLR0NLR0NCSUlMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RGQj0+PTk5OjtAQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtBQ0M+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERBPj8+Ojs7PTo8PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0NJTUtPTU9OT09OSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oj0+QEI+QEJER0pFSUZJSEZGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5OTVBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dXZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUFFOT01OUE1MTVNXVlhYVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZERUhFREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYWBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3Rub3JyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRUNDSURERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTktPTk9SVVZPS1VXU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGZncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkFBRkNFRURJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtOTU1PTFBQUVVWV09LVlZVU1JRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpjc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZHRElJR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTU5OTlBLT1BSVFhWTU5UVlRSUlFQTE5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtbnNxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tMTExNR0NDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0NISUdISkZJTEhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1uc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUtGRUpNTEtMTEdHTUlHSktIS0tJS0tOTE5MTExJTExMW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE5OTE1MRkpOSEpLSklMSkpKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwcGppb3BwcnNwcXBxcHJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUZFRUJGSUhIRUhMSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxFT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJEQ0JFSUVHR0ZLSktIRUZJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VGSkhDSk5LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5fXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNS0tPTEpLSUdHRUQ/RUNJSUJCR0ZFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eIh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUhHREhLUU9NTVBMTEpLSElDREFFRElHQ0JHRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXYF9UUE9PT1hRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTExLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQkVHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFNaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PSkpLR0dLUFNTTlBPTk5OTkdLRmBFRF9MRWZkRU5cSV5bcm1PTVVtWUxEUWBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUxNTExPUlVST09JTE1HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYGFdYGFnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFWTEtOSUtSWFdRTk9PTVFUTk9RT0tLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LR2BdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4eGlXclFoem1panp6fmx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15eHJuTktTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RWWFdXT1VQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5f25xcGt7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ptfnhrfHBcXl5iW15iZGRnZWVlYlpjY2lra3JzcnZnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW5rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NS1RTVFFWVk5OTE1PUEpIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQTEpRUUtRTUtLUFNVU1FRU1NJSExOT1FSUVFRVFZSWFdcV1NSUFJUVVZTWlFOU1JXVlRZVlVaVlRSVVRUVFdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWmBaX2dgXl1dYmhrYWdmaGZkYGJjYU9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWFZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NT1NWT1hSVFVVT05NUVRWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFZTUllXVVpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRhWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RV1dSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbXFdSVFdWV1hWVFhbVVRSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeY1xZYFpRTk9OVlFQVFFPVFRTUFdcXFxYXlxeV1xeanF3eYBjXFtVVVdRTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZXV1RWW1hcXVtbXVZTTVRVVVxcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFiX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hdWF5dWVpdVFVOVVZXXltYUlVVWVlZVVdaXFZUV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlRV1JZWFlfW1pUVVZaWVpXWFpcV1VbXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFZXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxaWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeVldbXFtcXFtaXFpaX19gYGRiY2RkYmRZYWZiZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWVxgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFppaGJmaWNlXmJiY2FgYF9dXFpYW1lZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmBjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGloYmhpZWRgYmFjYV9gX11dXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYWBeW2BhYmZjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFpmZ15haGhiaGhmY2BiYGNiX19fXF1bWltZWFhYVlpWXFtaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp7e3t7e3t7e3t7e3t7fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiQzNPS0tLT1Z6GiYmJiYmLjYyMjIyOiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eTnpYmMjIyMjI+Qj4+Pj5CLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYOEhISEhIR+fHx8fHx8fH18fH19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enp5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXp7e3p7e3t7e3t7fHx8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx9fXp8e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fX19eXx6d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDhISCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e3x9fHt6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXx9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp7eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKCgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWEg4SDg4KBgYGBgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSCg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKCgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgoGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJxcnFxcXFxcXFxcHBwcHBxb29ubm5tbW5ubm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgIGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdHFycnFxb36CbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHiHBycXB0moFucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2ig29yb42ffG9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXJxdZ6id3F3oJx9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKmQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR7iaGdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d3eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eaC0qaapqZd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f39/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uKr6Shtaqso397enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZmllqKxoJmnlH2Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJyNoLCgn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXm5CYsaGYlZ2FfX5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjI6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35/f39/f39/gH5+gIF+f6GrpZakm5uYoqCHf35+f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSBgYGDg4GBgYKDgoSEh4+hsqehoJmdnaaorKmhmpGHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2frbGmm5qgm56cnJ6hpKOdlIiDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCg4qXmZeWmKCbnZ6dmpqXkImGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnZyVj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCUjpSYkYeCgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGBgYKDgYKCgoGAh5uIjIeCg4KBgICAf4GAgICAgH9/gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgYB/g4mOgIGCg4OAf39/gICAgICAgICCg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKloiEgoSCgX9/jJWCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWGhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OCg4GBhIWEg4ODgoKDhISDhIODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChZSUjIGCgYKDgoKCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKCgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoODg4KCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19gIOEg4KDhIOEg4OEhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSko2KiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4ODhIuGhISEhIWFhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgIOPl4aFhoWFhYWFhoeHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/gZWWko+IiIeHhoeIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6ip2npJiMiYuLiImJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt9maekopiPlYuIiIqJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDg4SHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fXyBnKCdnZyPhoWGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqDnJuclYSDgoODhIaFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enmJm5uXhYCBgYGBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+ChISCg4KDgn59fn+AgIGAfn19fX1+fXx6enuNmpWFgoB/f39/gIB+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enuPk5Gaj35+f35+f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enp6eYCMjIyLgX9/fn9/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn6Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eX+FgICBgYKAgIB/f4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX18fHp6eXl5eoGCgoKFg4GCg4GAgoCCgYGDg4ODgYGCgIGAf4CBg4GEgoCAgYCBgYGAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl5fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl5gIKDf4OMhIOEhISXl4ODhIF9foGBgoGCgYKBhIaIjIWDgoKBhIKEg4KDhYSEhYODhIOCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJWDg4OEhJSTgICBf39/fn6Ei4B/gYCEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH6Bg4GCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYGCgoKDhIODg4GBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX19f4B/gX99e3t/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYOBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8f36Kgnt6e3p4ent7fH18fn5/f35+fn59fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfn17ioJ9gH9+gYCAgYKAgoCAgIGAf4uUj4yMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhYSAhpSIgIKBgYGBgH9/f3+Afn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8e32Fg4OAgYF+gH9/gH+FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/foyEgYd+fXx8f36Cgn99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2OjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx9gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKAgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x6e3x7fH16fX5+f4CAg4eJiYmKiYqJhYiSj42JioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3t7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4qHhYSEhIKBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYKBgoF/gIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fX2KhX1+f31+foB+fH18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSEgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bf3+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x9e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59gn2AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhISDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX1+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgX+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gIOCg4F/f4GBgYKBgYGBgIGAgICAgIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEg4GDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en15e3l4f357fHx+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35/fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn9/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B+f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKAgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+gIB/f39/gH+AgICAgH+BgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5fHx8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt9fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fX19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x9eHh1eHh5e3x8fXt8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOAhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXt9f3t6dnp4eXt7fH19e3x9fX19fn+AgYCAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIWEgoODg4SBhIOAg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhIOEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn1+fX5+fn5+f3+AfH2AgYKCg4OFg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF6hH9/f36FhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFhIaIhoaFgoaGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ1ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f359foGAfn6BgoCAgoSHhoODhoSEhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iFhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cHl9fW19dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fH9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYSDhIOFg4WEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e358fHx9f399fX9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeJhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhYWHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhISEhIaEhoWEhYWDhoaFhYWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX1/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFg4OFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iJiIWGiIWGh4aHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhYaGhoWGhIaFhoaFhYaHhYSDhISDhIeDhIGChIWDgYCAgHt7fn58fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeGh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31+fnx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4iIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoSDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn58fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaCgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhYWIg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4KCfYGBf36DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18e3l6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWGh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyAf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhYOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB+fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhYaGg4SDhYKFgYGAf3+AgH5/gYF8fn9/foCAgoKChISDgoGChIGAg4KBgIOFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnt7enl6enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ29zc3Nzc3Nzd3Nvb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMlYWGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enqZeAgoKCgoKCgoGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzG5QU1NTU1NUVFRUVFRMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Ogh4SEhISEhISEhISEhIhnQERERERERENDQ0REQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy8xxVVhXV1dYWFhYWFhYUaHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlooqGh4eHh4eHh4eHh4eKakZJSUlJSUlJSEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zNeF5hYGBgYGFhYWFhYVqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NkHNRVFRUVFRUVFRUVFVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzMfFxcXFxcXFxcXFxcXFytDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Ozs/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz8/NysrKysrKysvLysvLy8vNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz87S0s/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz8/Sp57Qz9GlotDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PWs56jptawoKKq0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqu0J2ak53AnpiWnMfPzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeatMCYoZy0mJyinq+x0s/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbW2mZatuYaelrCzqdTQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/Pz8/VpZm2rZiBoJZ4m4Sek6PV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZtq6bqIiceZ+phZml1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmra3ta+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2OTk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DWppq0xqOXl52lp5aYmrrV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS16Wbsdifq6Sb0J+rpJvQ0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dS1gsPVxZCNt9fCj4271NHS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cPU0dTHw9XR1cXE1dHS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExBPTc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnZ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cn6Gfl5GRkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZOVmZyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGioqOkpKSkoqGhnpuamZamuZ+ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgo6ahoqGioaCenJubm5mjppGcm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKaxrqCgn5+enJmZmpqdrWF5nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6CgoJ+mkpWtn6CgnpuamZqZq3tDgZ+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2en6FhlqienpyampubpJ9NSYSgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5mnbFqgoJuampudnK9uS0yGoZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpYRUdKKamZqdm6GhYFhOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCLXWCRmpmbnZyjjmVaTICinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmemV5fc5WanJ2doYBlWk1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmJthYmB8lJ6cnpZzY1VPgaGen5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZigalxaYXubnJ6JaV5QVIiem56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWknhza1h8lZieiltUUFmLko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpWfn5KApKeZppp5VU9kh4eCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgIWkmYt6Yo6jkphzhYVodX+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6Eood2alBxm42KV255e39+fIWOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mZhyTkdJc5KDgEpcbm92iYWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRj6OITDMyO3mEdXI/PVZqbYGQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqebX0VkTj15d2dkSDU2VG5xj4+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamujEuCtoZAe3toY1JfcVFbb4qhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoonRoxdKoSYCVjH1PbIp7WmCAo6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop5igri/qoWvo5qdd0dXgXJSc5SioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mppyeb4KUs4i21qacuLFiULSjVmSQoZ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6ujo4l3f3V407upk56obFWhqmhfh6egpaKhnZ+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7W0trKssK2QiH9smMfEl5yqknZaaXN1dX+SpamnpKCfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCqsre7vLy6usK5tLOdhHReUZ2wr6SikYR3bnNxd3h5fIKJjpSZoKWnrKalmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbjDydDU0czHvK+hjG1jUkODjX5+gHl1b21kZGlnanFycXFxcnmJqcfHvKKnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8TH2+Tj18e5raKUhG9XWFBEYXJna3JraGNlWFdcV1tgaGlnZGBskrrAv7mpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvsvP1Mu5pZiPgm5aUFRKQ1xmXWFoZGFhaVxUWFVXWFlbWF99obi5q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ251cnJ1cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL7DwcfLybqXdF9STk9SRz1ebGBfZWNhXmRjVFVXVlRVXX+nrq+qqKutrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m3xKNqTENFSkQ9WWFhZGxkYVxlX1lTUFBVYYu3uayupaSjp6SgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpncnhzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBs5BWSE1GO0lYX2htaF9cX1laVFBdjaqsuLWyrKmjoa2prKetn6y0tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ1ZWZqamhea29ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LIo3dgSD8/QV5dXGtkW1hWUl2IqLq+ury6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp0bnlsXmRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3GxsfCtYFdVC9VWV1sX1FNV4S5ysfCxMbAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwsLFxpxOUoCJlVVUg7XO0sW2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vMWnfHSAkZR1vM7Hx9DAr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNkZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zJz8C6v8C8u8W9usDEv72+sXNhgJGJis/Ev8DJvrDBv7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2dqZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Iy4v7vDtbrHtrW4ury4ubaztp6NdITJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8N2qMy9x7e5t622tLe5s7Wxu8bHlkJ8yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNetc4C7yM/CwLiutLS7vbe5sL3DyIxGds3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnRmHBzrNHRzMrEtbq/xMi+vrS/wL93U2/LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbWx0bGxuX2NfYmJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrJwYZxc6XMzMvNysbCw8vOwby4vbqwb2Rju8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1tfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V4dXibxMbLyMHDwMDJysG/u7mxoH5zbK3IxcS/wMG/y8fDwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7W4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wLysfW5obm1ygZWYcnd8l72/xsC5wLy+xcS9vbixsJmPfoKcysLDvL2/v8PDv7/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGxt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtwb2pcYGFaU1FBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnWBs722tcKlh2laXmBNUltabnN2gZ+4uMK6s7u3u72/uru7r6Sal4iSfsDEw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnJhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeEeIqgr7WdamVnVllgSUlNUFNsdoalsLe+ubK1sru5vLa5vrSVnKaXoXKuycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx1jKCYYFRDWFVHYWpWT0VKYI2grK+2urW0sqy8ubi1uMG9ipewoaZzpcvCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC2xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1eU09OQT9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi+tJCCeIiPb05KP2RZQk53gJRqTkBcga+1s7WytK+su7q4trm/xXWBqZ2aZKe/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cndzbXVqbF1ca1ReXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6HWUpKWHeNgWNAU6O5s7SysLGtsLm4tru3uryPobGrpHOrsKmrraujqKCdnp6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0b2VVYWRXXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qpmZlWhOQFJ4cFBJSUtnnIBZRFKuu7Gss6+urK22trK0ta6opp6am52fpqieoKipn6GnlpqWl46dk46Qlo2Xm6SooKCioqGlpZyjo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN3bW5dUWlVUE9HUE1NQ1BSQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb1oRVKdglFXSUpgSlSNYGNiga61qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSalZaLlpGNj5eSmJ2iqp+fn6Cjpaicn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5re2RpVlJkTklIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8ugUEFznXdQbktLY2Z0c19aXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWl5eVj5GRkZKal5ugpKqeoaGepqerop+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXpgYlNWYUhJS0tTVEpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8eOV1NKZaNaZX5vclxRa2NbZF9cao+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJeimJmXl5iUmZiWnZufpaWpoKaknqeurqqmorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJsZltTW1pNUUtPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjHlVaXJ2dXBjdnZYV2NgY2dYV1Znra6sr6efnqKglpCTm6CcmZeSk5+coaOanpuWnpqel5qinaSgnqOepKisraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2anh1Xm1bUmFJUlZIRlZXSkNNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKOAboJwYGNYTFtTWk1MUFhSR0xMR5isqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZyelp2Zpp+gp6WwqaatoqqttrC1srCttri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimFXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ6emp2blJOVlJ6emJSFnp2gmaujq7GvubGxsLGwur28vLm2uMO+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDJv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq6jnqyotrKto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSEVKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flXxfXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymnpeclJGanpmVjIqGiIZ4bIqloqKrq7K8tsO9vrK7wcPCxb+/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfGwrjEysnEwce/urS6u7W7t7C2squ7sq+8t7+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYko2Pl5eUj42QjIKDgnZycG1wh6WsrbS4xLrNx8u+wszNzczHyNDMzMzHysXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK8w8G/v7+1vrOtv8DDw8fFx8Svv7myuL3EwsK6vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRVBJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCPjIeEhIiGg4CBgYB5cXJva3iitru5vMrB09LSyM3O0dPR0dDQ0dHNzc7QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcnTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1RMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin14cWtlYmhycHJ7hYqAdXBtcXJvhJytvMfR0dfW1dHWzdTW1tPT0dLU1NLP0cPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysjAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fX19eX19dYWx1c3Bwbmxwb3WAd5i41dfW19bT18/V1NnU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztLR0sjMzcDLzcbUz8zOycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU01APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xmQzg9PkRYgqqon5eVl5manJ+dmJuck31xZWNiX19hX15hYF5hYF9gZW1wcG1rbnB0eXZpfKnN1NjY2NHF09LXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTJz83KzMDJwcnKzs7QzNDOzszPz8jM0NHLzsvDycfKzcvM0tPO09LR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSye0hGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXFubnJydHV6cWJtnsfV1NCkys/O08rNzsTNytLSzsbOzM3Uy87SzcrW1tDM0dTLzNDR08rO0dXS1dbKwMrBxs3DyMrDzcTGycvLz8vOzdDO1MzGydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDxLWqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcXBxcm9rcXl0ZW6fz82bl9bJw8jIxca+wsXOzsfFxs3K0cjLzc3F0NLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3KzNDIxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByce5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3Jwbm5pam1uemdVgMCiebvPw7i/wrq6uri9yMXBw8DDx8rIyMnHwMXLxsjKzcnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsa8v8rDxcfSxcHJwMrKxsjG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0JHRExERlJANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl5gW1laXGJucW5qaGlubXN5VmqUe6vDxcCutbiwsbKwsMG7u7u5uMDBwcS+vbm9v7nEycXGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6mYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3JwbGZlbG1ve3heZpLHub+3rK+upaisqqW3s7WzsrO0u7W9sbewta6yu8K7wcS8v7q0srq+wLjIuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfLxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4iOhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXF9rb21nZWhrbG9+bWi6uLazrqirpZygp6WcqaqxrKmrqbOttbCyqK2mrLO7urbDubq5sKq0ubuzwrmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srGquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsJJbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcZG1uZmVmZ2lrcHqJt6+0rKOipKSYnqKemJqjqayjp6GrqayrsKOmn6qttLaxvbivt6+orbi0s7y3s72wuLm1srzBssCvpamjq7Gzs6i9qquoq6yutbSmqa6hpa+ps6aoqK6mqLessbO3urq7sry+v77Ev7XBwMfIt7+/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcTBtLa8trGvtbytqauSY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9ma2VjZWRmaGxxgqWkqqKamZ6hkZqimJWPn6CnoqKfpaWnpa2fnJukpqyysLa3p7CsqKq0q7O5sLa2rra6s7C6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ykpqyfn6ekoaGxra2ssrWzs7C1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFtdXmRiYWRlZWRoamyGnKelopaXnZOYn5WTiZufoKWbnp+jpaKnnZqim5+qr62xtaSoqqmsrKS0uKy3sKyzta+zta+wqp+en6SisqWmqritoqamoKitq5mfoJ6ZnZ+lmpmjnJyesKmsqKqrrK2wsrmvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i4v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1dYV1pdYWNjZGRlZmdpcYmQgpOrl5aTl52Sk42Zn5+mnZucpKahpJufoZuYrq2trrKgpKKtq6ehtbCxsqypsLOourOntqGin5yjoa2joqq2q6Kjpp2mpqOWmZ2XmZqdn5qXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenVmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wczIxr/FtsHAx862wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldWVlhXWFdVV2FjZGJiY2NjZmlzc0dNfZCQkpOak5aRlJ2bn5uWoKCoo56eqJybmqunrrCqnKOjt6mhoK6otaqnp66xpLiwpLego5yZmaqmoZqtubCjoaSco6Cgk5WhlJaWnJmYlpeclZ+pnqqkop2jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp2ZV9hV1lYU1JUS01eTFBMR0hMS0U9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJhYWJgYWNka3JlZ26Ijo+PlpSYkpKYnZqdlZ+epqWjpqefnZ+moKqvpp+ho7anoaGiqbOipailsKaxrqu1n6GdlpWpoaKUrbGxn6KjnZ6YnJOMoJSRk5iYkpeYmJeep5unoaKapKWlq6SlsKelo6usraaorq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bFxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXl9gXV9fYWNpgY+FhYuJj42Ol5CRk6GXnpWbnqShrKWkpKOjopyqq6SanqWxqqGhnqWqnqiin62sqqmuraKiopWYopqckKupsJufop+fl5mTip2RjZKUlpCYmJOcoaOcpKCilaCipKWbo6uloqSqpKutpa6yqaalpqa0pqqorbO1tLm6r6qsnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdJQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTTlBZXVtcXV1dXl5hY2yIin6LgYqLiZSPkI+ZmaGamp+nqKqoq6eppqOZpa+klZmlr6mgnJmboJ+umZyqs5+mpp+jo6GUlJuWlpKpqa2bnJ+hoZuUkIyYjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1hZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlZWVlcXFxdXl9keoZ8hHmGi4WNiZONlJefnpmeqqimrqypsKSomp+soJWVpKinnZiQj5qerpaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6XjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKuup6+0sLm1wLGusKuRfnJ0Y1ZUVU5RSkdWUFJSTExYTktNT1JHTktBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFlYW1tcYGl6dHlvgoeCi4WTh5GRlZiXnKean6qmpqudp5mgpZuSj5+jmpeXhoWSm6SPlaKclpaVh6Kam5OMjoqQmqWnnJWVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jt6yqrqSysqa1u7WrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissO1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZXWFhXWl1hbGxwan6CfYN8jYGLh5KOkZygjpmco6GjmKSXoZyVjYeZmoxzjYN+jpeWhpKakJSOjXuZj52MgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFVUVlhaXWlma2d5f3dwTFZvjYCUhIualomSkJ6YnZWUlpSPloqAlIlfO1ZvfIyUioCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqatma2rmKi0o6mtopN/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wbmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUU1PUlRVWFlgamhidXxvTUA+fpWQjnuGk4uDiYyajZaUiZKHhZWGeYl/YEpRbniLkoR+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlIWbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPRkpEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqadn6Guoaeopaeor6yqtry2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joOCfnhxb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1RVWm6BbnB4ZWVZUo6Ik4ZyfYV/e4SLk4GSmYuPe4aPgHV/eHNvdXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6OToJ+Wnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTVJUTUZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+d4Z3fHdwb2pZS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZedYF5dGJzipSXjY16ZXh/dXd+iJB8g5iSgHGGj3t2e29rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2bnZ6hnJaNi6Wajp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKu7vrizrKebsKesm4+WnKWppKGYmY6EknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1mcHBphaWpwH1yd2F6d216d4ePeXuLhW9sjJJ4c3hpaoCCcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66stL+rvMO/paKZlaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxwbGVsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVlbX6aGYZhmcHdjfG5sfnmKiHWBh4V0bJmRdHN8aWqdjkx5hZOJhI5mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtgn93eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWj5WZi46FeoSQmJWNkIyQh3GHgnSIjIZ6cHNxb3BkcGdfVEZJQz48Ozk6P0BBRENFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEJJUUlirrKecHl1antrcIKAhIB6hIWFeXKglHR4gHN0lIc1cJ2onY+hoYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISkZJRz9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3V4eGx3bndjal5JUEc9Pzc0NDk7Ojs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDhETlJTREqEc356enR9a3WGh3t8hIN+i311oZl5foWAhJmEmpxhhqqfnYqDkI56d4h+iYiOc4uXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCqoLGor8Cyu8W6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHZrUlhMQEUyMTEzNzY2ODg6PD5BRUdGR0pLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RcWFJLZ4GHeoh4enB7jop5e4iGfpaHdqGZh4aOkpSljaypSIausK6LgYCUi4KLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+HhYt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTU1QV2BYb1lbXWiLkYWTf4KAg5CRfYWIkICZlIGgoZiUm5qmrZOZu7Gnu8fDqIuMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXV1Zn+UjoaIiIeIh6CqopaJjpd/eoGIenlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTlhSUUlQSkROR0NKRENBRERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZCOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46DgIGMioKJjYN/in9scGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJTExLTlZgY39mZmx0mpiNmJGRiYyNmIeSj52LoJ+Ro6qlo6uTqbaiqMHCrceveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHGIoJaGkYmNj5aktKibjJSig4eSg31/a2pqfIGCg3VjX2VgW2hsXmxsXldLSE5SUU1MTEZJUENETkZCQ0VGQz06OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExMTU5SXm6Ke3KAfJ2amqWkoJiflqGUnJ6nnaiqn6isqaq1l6u/q7bHyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopKXl4GUnnt3lZKqsoiMl598lJ2bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLUE9JSUxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMS8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlthY92lImgpKeyvLejraurpqizq6+1sbGtu7GzvZuyw6u6ycu3w7+4paKws6ytqqOLlpiEpaago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKvkqGdop2Po6GrrquytKGUpKmImYiSiZV5en6GgGliaV1mY19lZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0dEPD4+RkhDRUE3Ozw1Qzs9RktJR0hRT1BXgJKfg6yisamwv8bCqbLFtauyv7K3vbW/tMG2u7qjuMWotcjHtb25tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rLC1orGssbW7trSutJ+mp6OnmqmvrLG4t7immrWojKSOkJKfhniBhXdbY2VXZ2NiZGFhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+Gf4aIhoqHkHp4bl1WQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLSkE/PkdLRkZEOz5AN0Q3P0JKSkVGVlRQXo6jrKKxs8G0tsDLyLW7xL2ys7+2t8G0v7C3dLGzprrEpLDGubCysbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7msq7ClsKmtvbC8usHBq5i5p5StjpeXqYh+g35sWGRiWWxma2ZYXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joOAjoRuenN4h2K5oZmjiZSUlpKUk42PlpGHhnuGgY2VioCEgYp6fIqHhn2KgoGLg5V9d3p1ZVBcZEdFSztRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNZVF2Trre0ubfIvri8ycy6u8C7t7W7ura9s7mxxWB1saSxmp6qvamlqKuqpKKytaCrqJ+Vlp+ZoK6lp6aln6OTo6extKiys722wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euKmhq42kp7WIgYFzYWNjX1ljYGpnU1hgVlJVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g3+CeHuKg4d7i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbk7i/uL22xb+6uMnKura5tbe5sre0s661tphkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SerKWqsK24sL251NHP19DKzNLMz87Kxr++wsq9wbzBwMTExcq+x82yo7qwtK6aq7i6mIB7bV9hXVpfYlpkY1FbYFNQS0NBRUZFPEBFPkFIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHs6ugoZ+LmZyZjIyVkZqRhYqKfoiGjJCLiHyBg3N7ioKFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2pqaWBmaWlsWm1zlq2kvIiGZ1tvZ11ZWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZe2xrC4srq8tLDExrWvuLCwu6uysaaqt6uMtaedmqeaTpmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloeemqebrK+osKi0tNTU1NbTzNDT1c3Sz8zFwsnQvsnJysnRx8zNws/Rt6/DvMO5pLW5waKDcGVeX19aYVhaZ1pRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6CpnqaXjJqbl4uNlZGajn2Ji4SNioqKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bnhzbWmBcG1jaW1weGl3fH7Lv8Hfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrbers6avtamsu7+wqrSmpLimq66gq7SjjrCtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cfN0tPT18zR0cTS1sXBzsfHwqi9t86efHBnX2RfV2FTX1tQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hY+QjYqKiJCGfoJ7cn6AgYd6hHWFk5CIf292cmtzfXt3e3OBeHJrgHNyaW9xenlxer7Lmn6LsYR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmkpKGfoKelqq+4qqWzoqGtoaOtoaexn4immpOSkYmSj4iBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVwZWJhWVVaVFxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnJSdlIWLlYmOiYiNho5/eIOTmIqMh4iLiH6Cd3N7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR0eHudtYw7QIvFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJ2Ql5ieo6OlsaOksp+hpZ2gqKCjsZyFnpKRkY+LjouGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLmpKrs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGZfW1NXUlxXRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeQnYt+h5KDiYaEiYGHfHiFlpaIjoOHhYZ6hHhxenuDhnV5hY6NnHmLcHxvb3p/cXuAcYOHgG6OenV3fXyCdH58hoevc1iqwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4yTmqCanqmfoayboZqYn6Wen6uZi5qLkJGNhX2Ih4OFi46gmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSPrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUy5Z7fWpqXVxRVFRgSUNGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aTlI6XkYOJj5aalpalnJeflp6SkZeinZmrlZCQioyRgoyFiIiBhpCRnpuZiIaMgYWXeoiJn5eQiI2Ki4J9oYmRi7yhmJOYmZ2ppqaun6i2v8DBucfKzs7FzcnR1tXV2dXX29TX2drb19va2djO28aIfXtpa2dhVVlWV05MRU5DOz09PDg6Oz05PUA2PT9APD89PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6fYKRiYSFeoSHenV9dG18fYZ+dH+SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYuLkJKFiIqQk5SOnJmSlJCWjYyVn5yUoJSRjY2Pi36Qjo6LhImSlpqen4mMlJKdkYKLgKWZiISNgoWEgaSHi4u4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bmtoWWJdVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboeohXqgi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKSi5SUk46Lj4qHlpqcj5SWkIqRk4aAi4iSjYqKnJaYoqKGk52WoIqJiI2bkIOIjoCDh4WkhoyQs5idkpSXoaGemZKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2poX15ZVVlZQ0FJQz8+Pjo0OTo7Nzo7OjM7Oz89Pjc7OTowOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hXt7doWEf3NwhYF6dXZ2dISChH5/kqakn6Wil4qdkJSXi4qol3KKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3HlY+Gh4iQko2NkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYiNkKqWl6OjiJmelpqIjoaWl4mEjoyBf4ePpImOlKial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NLazoR1gmtmYGBfUEtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsb4p+eXx3eHyEhop+i6O0qKSqs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiIjpSMipOPh4CGh4iTmJSMipOThpSYhoSRkJx0kZiylZakoYicmZOPipCKlpqJipaNhn2MmJ+KkJCcmpmTmZiglKGdlZ+bobGto6S3vrPFx8S9w8O/xs7KydKnzszT0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3OMeX2Be3iGi4mGhJKovK2psr2wpa6zs6mjorCsipq1naK4pZWtpJeprbempKOfmamYqqSvsamZmJuUlZGYoJeZu7utyqFptreqsJWYnqOrkpe9pF6qs4KJioyUh5B8jo59g4aOkJSUiIeSlouPlY2LjJeZk5yZtJaVq56LnJSSjZCSi5iaipKdj4uJlaCijZWNl5mdk5yYnpShoJScnaWuqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31rX1tVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLin6AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8PAsL3GvLO0wby0rKuztoyosq2tvaubu6Oorbm4q6amoqKko6qvsrGqnZyjmJuYmJ6ipaWTo7mvqMC7rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeoGHkI2OnIiIj5eNipSXlJCal52nmrCakaudjpqPko6VkY+Vl46RoJCIlJukrJSWj5ScnpShnpuYn6CVmp6np6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKinZ2ZF9cYl1PTENMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra6ssCvpcCjq7C8vKquq6Oinqesr7WxqZugqpyinJafsLOnjKK6urXBu6uonLKko6iUhI6pxMSkgouOhoiEhpWUjHqDjJGPkaGMjJSRj4iXoJiTmZWXpaCunIyqnI6Wj5KRlZWNkJSRj6GThpefoLKflJuUoKGZpKCaoJuglJiep6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXd7b15bXmxUTklETUtLSUBBPUJEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAe4x/d4aBgo95jaGWqJqamLu+ycjKwtLJysLNvcGzrby/p7q/vbzEuK3BqayzvL2qsKqkpaOsrrSutrWgn66fpqKZo7S8qZupvMGjtravq5Ovq6qsloaaqqelkYKMkqSViYB1iZF5hY2RkJ6fko+Ui4+MlKOZl5uVlKKeqZ+RpZqMj4+QlZaIfI6VkpKjmpWgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisqyou8DEr6Wzt8zAuq7Ds7u9wbmtwsLCv5lwe2NbWV5dTU1OS0dEQ0hCQUFDSzo0REg6OzQ8N0YuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZVeekJ2Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq6no5jDvsnEyMbTzc7Ny7zCt7C6vbS9y7vDwba3vK20wLm8rq+ooamotq6uqbK3mp6soqiinau3t6mlr77Esb24s6eqtLOtrpaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZeTk46TlZOlnZOdmZSgoqGcmJ+Yi4yPkJ6IWo+Wl5KWpJlmmaOes6WWopasraynnJ+nl5iWmJaho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEb3BcWlZXUEdMVE5LP0FIRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmY01GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQlI6aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+1xL23ubezsrazuLOsp5yrq7mrqaivr5ejrqWopKW1wbCrrLS+w7nAuLOnuLS3sq+VpK2wr6SLk5SgjXPBmX2XmYSOlpmLsZWamZWSkpmZpaOVn5uWmqicm6GgmYqMj5adYEqWnJqVmaWXVJawn6+cn6WVr6+tppuhppSTmZmOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQU01GUVFQUTtIS0hGR0FDPTlLVD9BOj1FTS83NTQ0OkIzNE5XTjxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1NzYlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJyXjp2gmqOktcm0qce8w8TJy8nIzM7Hvrqzr7q4wMHNtci6wbm1urKvr7O0p6ScqrS1q6qnrayZpK6mpamsusCoq7e2vsHAvreyssOwt7yso661rbqliJuXpZp1vp+EmJ2Okpiai66WoZybl5San6CpnqegmZqqmaGnnpeQjZGdg211k6KalJyjn5CtsqKrlamqmKqvpqWhpaqTkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrKmpjWZoY2BTTU1HSU9KVUw9TUVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjIahnoyjrJSjpLbHvbTCu8PCyMnFws7Iwr25sq+5tcDDyrbGscG8tbusqa2ssKOjmaq0u6aqp6yqnaivqKSrqr68qK28tLe+xry2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmZednY+2n6mcpaOam6Cap6WzoZudpZyoqp2YlI+Um4uWiYykoZScop+gtbClppOxq5qrrZ+fpaSqkpaVoISQnp+clqmkoaG0tbq2rai1srKenKKmmpeVmaqhnnhjX2FfTElGSE5RSU5FRkdCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7fBwsDIxL/Nxru+ubKwubS+w8i1v7C8trq3p6Srq62hoZurqsSipaispp6rr6yiqqi+uKatvrC3t8a3tLi4vrG+wLa0srWvvqOWo5WTmpOtn5ChoaSio56QvqSonamsnJygm6afvaKYo56iqaugnZWNlZ6TnoeOhI2TnqSgnbasppyWsqaZsKignKufoY2alZ+EjqGanJKlpJqYq7G1saqlqq2sm5igoZKOkJapn5RpZVxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUk9LPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqObo5uexaugnqudnK2fkaKelqSfpqqrl7axo6mztsXCvcC2wMK8ycK/ysi2uLW0sbS0t8LGt76xuLS6tqCnrKqrnp6fpaTBpaGqraCkqa2woqaovbWlsbu3trXDsrK3ur6yw8C4uK20tLWjnaSUkZOgrJ+YoZ2oqKqimsKsqJ2srZqanZimoL2hnaSYq6urpqCZjZqfkp6Ijlh/lp+moaC5qqaUmLajnrOioZyxmKCPmpWego+gl5aOoqOVkKWus6upoqKlpJWVnJmLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCfn6CYnsOnpKKzoJyyp5Kpo5+jnq2prJ27samstbHIw8HDs8LDvsfEvcTKvbCxtq6xtbDAxbW6sbC6tq2aqbCpqZuepqGnwq2crbGcqqKusamkp723pra7va+3w62zs8K/ssazurertLatqqKmlZWUoquhn5+Zp6uvr6+7sqWfqamZmJeSoqS4oKGjkq6vq6SlnpGhnpSdjpCNlJ2ao5+otaenjZi0nKOvm6CcsJGhlJiVm4CSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NBQ0BIRzs7Rj44OU5NVV9SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6Sem6DCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0xr/ExLa/xL7KxbbAycK1rLWpsLmswMS0t6+ttrqlmauyrKqYoaeYrbu0nKiwm62frrSxp6q6s6e5s7iyuMCqt7LDvbTFp76urbe1qaeroJaWkaWkoaGXl6Sut62xtLafn6mkmZOUk6Ogt6OkpZWusbKlqaWhnpuZmpWXqJ+emaKfr7Oipo2Yr5qlq5ebn6eTnY+VmZqGlqCVjJCdnpSLqamqoqehmZ6WjI+ZkIGGlYiVn3plal1sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxaVZDV0aMeWZDO6SknKClv6aorq6gqbWqnbevq6OqtLaxsLi3sLe4t8S9w8e9vMPCx8G6wcbBuqq2pa27rcHDt7eqrbK8o5Wtsa2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmrq6admJiqoaGgkZegsK+zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoZido7Swm5+RlKaaoamblqOhmJqLlpmUlpedlImSm5mUjqmpp6CjnJibk4ePmYt+jJeGj5tsaW1ibm5YUVFaVEFDRFRAOztIQDc6WFBkXlBXV0RZXl5OTFNOX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bH1oXFY6iXtjQz2on5yhqLygqa+qorG3qKS0saqhrbW9r7O4vLu9t7bAwr/JxLnEw8DAucW9wbivtqirt7K8v7+0qq6yuJ+XrK2orpioqY6nu5+lrbOeq6KxsLOsqraztbytsLG1rLC0ssC6xbarvK+xt6ytqaOxpZ6kqJ6jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaeyq7Gpo5ueqKSelKCZnKi2qZeak5KfmZ6hn5KtoJqah5eZjJ2anZSLj5eXmpenpqOgnpaWlpSBkJWFe4+Tg4yXZ21yaHFzYEdZZlZEQ01YRFo5SEI1Pl1RaFxOWl1HW15dT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApJqgpKu2o6uopK6ttamus7imp7C3xrawt7/Bwra0usW+zMW5w8G6wLrEuMG6s7Wsqrq4u7q+tauvsbaZmKirq6ycrquPq76eq6+xo6qfsa2zrq62sbi2qq2usae1sLO6vMmyqrW0sLSwrqags6CaqKygpJWVmpmxoq2gpa+WoqSamZKMoqWnsqmhprGsqrWkrrC0r6OZna2nm5eempmsuKKXk5GPmJyhmZiVrqGfloKVmY6enJqXkYuUk56ZpaOjoZmXk5KWe4yRhXuNi4OMk2xueW92fWJGYGpaSUhaWz17SkdFNkFiVWlbTVxhSlxcWlJTU2JhTEtFYGFgUE1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRLRZqWoLCnsamspKOurbSot7O3o6y0t8m6tLu7wL60s7fDwMzHu8S9t7/AwLjAvbK9rqi6ubi3wresrrG5lZenr6yopLOplK+7pKyysqano7K0sLKxtLC3sqmuq7KmuK+1s8TFtqm1tauwramnoraen6awoKOUm5mUsJ6nm5+pjaminZuVl6WlpLenorCzq6exp62vtaykmaCsqJycnZyUqrmclY+PjJido5iRmKikoJiFk5eRnZyYl5aIl4+Xm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBcTGVsXEpPZF0/YntHSThHZ1dmW0xeYkxZWVdVWFVpXU9QSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRESRmaSto6ytqqajsLKyqrewtZ+rtbnJuK7BvMO3s7G1wsPPxMDCvrW+wcC7v7y0xKiqubG2t8C8r6y0tJ6hp7GupaaxpZ6ytayqsrGrqKi0uqy0srSrs6yqq6isqbmtsrDHv7ikubCpra2mp62wpaSjrqOom52bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKucoJmbkqS1mo+JjoiRo6GWj5afopaVhpCVlJ6bmZaVh5iSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFNjbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1VZaF5RU01jWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9rP0hJkJupqaGpr6Sno7OzsLS0sLCgq629zLquwbzHsbSts8HD0cTGv8GyvsPCvL+4vcWorbestLi8wLGssq2ho6euqqilsaOqsKquq7Gurqyrs7qmt7CyqbKpqqalo626rKqwwrm0rLmoqKitqaexpamkoq6qqKGem6OslaWdmJ6Zq52hp6ihrKajray2sLGgqaKfqq2wq52ep6epmqOYmZCgqJiGg4+Li5+gkIyOl56SkYiIkpahnZaZloaXk5SXpZyenYySkI6Kf3+IhH13gIeFh3V0col3bF9ZYG5jUXNxXEs7hHtGP1d1WGBZT2NcTVVWVVdRXGJfU09PaFlXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGbqKiwtay4ta2ppKuqvcm8sb64w6+wrLPDxM7Ow7/AtMDExLrBtcnErK+3rrO6wL60rq6spqipsammqbKmtK2qr62tsa6yrbO6pLizrKytp6ugo56wt6uqrbm2pLW1o6mnrKyqraCopqexsaSmpaGhq5aqoZOboKWeo6Oqo6yinqaxtqysoqWjmqmrramdoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI2bkJKNhY6ZpZuTkZuMk5KSlKOanJqLj4uMfIeBgoJ7dYGEgX51d4ujh3hqXmBuZldmh2ROQGeSTERieldiWFJlVU1WVlVUT1xdYVZMT2pXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkJJSUSWka+koqmvmKmorbWqtbCqpKuqqbzAwLm5tLy1prKvw8nL0b/Bu7nAwMK6wbrCxK6xtbK0vMG+s7Guraysp7eqpa2wq7iuqLCvrrGrtaq2taa0t6yspKmqnKSes7OoqKSztJ+1raGpqKuoq6efq6uoubapqqqpoamfrZuRqqGdoKOjpqKqnpymtK6npamipJekpqeqnKKko6CZmJ+Rjo+ZjX6HjIeFnp6JhYyLkI+SjoWIlqOajo2bkZKQj5KfmJmXjYuEgHSHgX9+eHWDgHp4fn+InY9wcWZncXhcYXSIak9dmFZIbXlVZFZSYk9MVVVVUU9YW2JWSVFqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lY2voKWprJmqo6yusrSvqqSvqai7v7zCsq+5raK2r8jHyNHAv726vMO9u8PBv7+vsbOytr28wbKytKu0qaW2qaWts7K4r6KttbGvsbmquK6qrrerqp6qq6CjobWtqaGfrrKhtKqeqKero6qhoaytqL2uq66toaenn6uZj7CimKKgqKeep5uYqbCpop+soaGSoaKjp5iaqKWYmJicj4uHlYh8jYaEhaSWhoODjIeQkJKFh5WhlomRnpGTkI2RnJWYj4uGhnh0gX99dHh5gHt0dHtqgoikdmleZWyBdWeIi3xSVnBeSnhzVGRTUV9NTVNaZk5NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+OsKCkpaqipaOsprSzsaiksKequL7BvbCouaqnrbDJxsjQwr2/vbm/v73JvMK4sbC1sbq8ucCztLytuayjtaanrLG2uLKmp7m1rbS8r7ulra21q62cqa+kn6SsqqicnaqypLOomqqnqqSpnaKpp6m9q7Owrp2po6Cum5qzopalm6Wkn6WamaiqpZ6aqaCbkZqgpJ2Zl6mpkZmakpCLgo+FfY+DgIiej4eAfoyIkpCRhYKUm5SGk6KNlJGLkZuTloeKf4Byenl+fGh2fHt1cHJ+aoZ6hYhkX2hjcoV7bWd5XV5WQld7bVRhUFJZS0xOcHRdSVpbaFlGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppKKhq6S2srGkqbCmrbnCvbewpLmsqaiwwsjJzMG3vb+1uMG6yLXDtbSztbK9ubq9tq65tr+torOmqquutLe0qZy5u6ixvrK6oK60tqmrnq2xo5ylqKmjnZuksKavoZ+qqaeiqpyjqKCtvKeusa6hqqKjrp6erKaYn5qhopufm5mjqqKamqOjlZaTn6GWnJamrIufkY+RjIKLgICPgXualIyJfX+Mh5GQjYqGk5iRh5SjipKRh5CZkJSBiH16bH12eXhienpycHBzeGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZarmJ+Xp6Khn6ejt6+toq+vqKu4wrqzraC5r6uns7rHyse/t8K9r7S+t8S2wrKwubGywLa7vbequbi+qqS1p6iqr624sKiYuLyjrb60tKGtt7Wmpqiws6CepaWnoaSZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScpqaompubn6KVnJuanammlpueqJGYkpidk5mWoaqQmomNkId9h3+Cjnx8oYyMiXqEjYWLjo2FiZOajomVn4mQlYKMl42RfIV8dHB8cXN0YHh4aW9wcXBrf3NkemxoZWRhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0s6mpusS3sq6huK2tq6+1xcfAt7/BubC0vbe/u76wrL6ws7+xvMK4qbu6uKeotainq6+rsq+kmLu2pKu6ta+esbivqaWnr7KcoaSgpKOglpuvpqGfoqivoaCik6Okorawoaaxq5+so66XnKqlqJ+Ymp2jk5qbmp2lqpqbm6WUlJeVnI6Tl6KooZCJio+GeoN+hIt5j5eKjYd6goiEiY2PhY+TmIyOlpmLj5Z+hpeMj3qBe3Bydm5vc194d2RsbGxqaoVvZnJpa2ZoXmRzgWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnKOhoqG3qq2gu7elrL3FtLGvo7WvrKyutMPDvLO/urexs7m4ure6r67As7S5r7/At6y9urWmorKpp6mxqq2xoJm/taSntLWonrK8qailqbCsmaKnnKSllJegsqSZnqOoqZyin5KkoKS4qaSnrqaepaGokp+poqGhmZudn5GZm5afoaqbmpihlJGUlpmNlJOkqKSQiYmOhnmEe4SGfZ2NiYqHeoGEh4iKkoWWk5OLkJaUjo2Ue4OYj4t3fnxsdHJsbHNhd3RoaGpnZ3CHaGhpY2ZpaWBqY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKjkI2kppqdnp2jtK2nqrq2p6zEwbexrKO2rqetrrbAv7yywrawrrK2tbi2tq2qvbOusrG8v7euvLuxpZ+2qqWls6eprZ2cwKunpK+yqay1u56oqquxpZieqp2mpJGYpayimJ6kqaGcopuWn52ntaawqq6hoZ2eoZSgpp+hoJqbmZuSmJ2TpZ2soZeWnZOTjZWXi4+Ym6ifkYiJi4h4hXaBgoGdh4qCin1/hYiHhpGElpSQjo+RkZGMk3uDlY+Gc35+Znlva2prZnRza2NnZGR2gWJlZmZmampja3JbX1lebWRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+MraGXl6CWpLOxorK9tqGxxry6sbGjt6yqram4vLu6rcCyrq6utq6yuLOpq7mxr66ztrq2sLi9rKadtamfn6+jqa6cob+gsKOusK63rrWera+trqKZnaeppZ+Vmqeln5mkoqidmp+alJyerK+muqiuoqGam56ZnqSapJ2Xnpebk5ifkqiVqqeak5qakoyVmY2UlJqppo6NiomOe4FzgYGKmIWHfImJhYWKjImShJSbk5KPkJGXjpB/gI2Og2+Bf2Z5bWhraWZxcmtcaGNjdIFiZmdqbmxna2pobl1sbHNwYFRjaWNmWUlGTE1PWFFRVWFlgFVBV1NZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNj7CdmZOhmqmxr5+5v7WgtMK7vbqxprevp62kt7e2t627rqyqq7aps7euprK1sq6psLa2sLO2uqeon7WonJ2ooKismqe9mKyjrq+1ta2tn7GtsKmim5yjq6iclJympJ2aqaKklpqfm5Cbo6qrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHmHlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLjpSSdHeLhH6DkIBnh4BndWhlV1xoc21OUGpjZ3OFaF9lZm5tal5fYYqPg4RlTktEOUdUaF5KR1FQVFVMSFJgb3RlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSouiqOZhZWwm5uToJuqraqjvcWvqbfCt729raa3sKWqorazsbKxuayppqy0pa+0oqm3traop6y2sq60rbOhqZ6zqp6go5ulpperuZSlpa+zt62upamuq6yloZ6coaemm5egpaWam6emnZOen5eQnaippLawpKOinZaYl5ejiKGOkpqGoIeTnKB/pX+lqp6SkpqRiIRyeI2OhYihdoiMaZeIZn1zeKBviIeDfo58f6GgoJmAfIeedIeOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFheaVtsbFuIcm56coVnhoRaX0dOP0dfTUVSVlZRUVNXVGddTVZIUlJPRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqmloKcq5yYmJ2fqamnqr/DrrG6vLbAv6qlt6+prKSytK6us7aqqKWwraW0sputtba1pqeosrCssqetnamfsaefoqKZoKGarLOUo6SltbymraerqqyopqGgmKCmo5mZpaOkmJykqZaTopyTkqOlpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmRhHyQkJHKcpe8nMV6crWmu5B7gG2WsauweWhsWLGubmVpvZK8bmd6b3KP2H5Ta2O2sn+BcpRzmqGqkFdPV2JPVk5GVVtYUVBSjFxXW1BBXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMppKAp6qfl5yepayyqLDCvbG1v7W2vsGrp7OsrKmmrrOprrazp6emtKWnt62cs7K2q6Wkp7GtrLCmqp2mo7CioZ+dlpqenK2rk52in7S6o6qpoq2upaGdmpqip5+Xm6egn5iep6eRnKaak52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWW+cmemjHWxanyxeHSSlGNubaduW4SgRWhmh5ZFdZxgfmd8pKeCWl+Mq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1dXL0lUU0pDRkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgq2npZ6jpKqxt6y0vb+vtsSyt7rBpqmwqq6oqK+uorC6r6OkrbKjqLinnrOzsKOloKmsr6uvpqeeo6Gvm6KalpWWmZqrpZWaoZ60s6KrnKOtraCemZagoqicmJ2jn5uZoaakj5yimZagn6qepqagmp+hlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuBpnuChoiSlJJ3q2drsVyreo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlXWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVDUwG5WglYizpqahr6mns6ypu7bCsLvBrbi3v6msra2tpq2xqaCuu6qgp7Sso6u0pKays6ejop6nqrGnsKeknp+frpWemZSVlZedq6CZmaSotK+iqY+pqKqbnZWXoKWomp6cop6bn6Olo5WbnpeZnKKpm6aZnJuioJeTkZOTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joejgqWCeqx5j51Wr3qIfp9quVq5doaDfaaCk3yYeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqWJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1uTlxRT1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSZsqioprSqpbSppLy3wbC5v7G1tLqytKexr6KwsqafrbWnmqe5raKvsJ+ztLChpJ6fpqmwqLSoo5udnaqVmJaVlpSWoKicmZanrbCpo56PraKolp2Xm6CloZihoaGhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuGhHytfZeZjnuwcpKdjnizZZd0hJ5vnmaUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSTk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwoZ2SpbCso6u8raa0pqe2u7yyur62trS5uLKltLOgsbGinquvpJemua2ksbCbtLiqoKWdoamksaesqaOZnJmnnZWTl5eRkaGmn5WSpaqwpqKWk62gpZKUoJukpp+VmqWmoZqin6yZoJ6ekJWboZ2cpZWdlZqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6OnYWamnavhomRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbF9wbVZWTS5mZGlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+uLextLq0pLeyn7Osn56oq56Up7WrqK+xqq20pJupoJ+nobWmpqmimJ2UpKCTkpuYkZShpJqSkKatr6aglZmpoKKPkaGZqKSglZmlqJ2cpJ6snKGdoI2TnpqdoZiZm5aXoqCUl5CmnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/dodzqIGOm42SpHyWkJ+Ee7JenWSgfoOVbZJcq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1Y3SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqav6uYtMKuq62ppbSwt7C1vri4sbC1uqi6tJ+vpJ2kp6edk6mwqa+ptKuqrqGYoJ+mpKO5oqOroJabkKGflJOemZOXnp+PjIuosK+nnZebqKafjJKkl6iqp5SXqaeenqCiraShnqKMlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uG+Me4uiamu2WqGFZZeXaaGip22TcrR0k5h/smqFkoitanWzYZ1mom+Hk2uXXK1fTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYHB7Y1RaUj4+bW8zQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnruhm7LArq2rrKe3qbevtb+0uq+ut7aqwLWoqaCapaOhnJGqqae1orKnrqmgl5unn6SruJ2irJqVmY6jopWMnKCbmJyfkZOUqrawqJmUnKyql4yUpZilrKKRlqqyo5+dpquxmaGjj5iilp+blpyWoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6pLZ1fXd2woKasmCDunnAfHW4Y7WCjIepfJWBrKlxe390vIinoGmdYaaOr6F+jHSHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2JteG9aXFlDQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bDsLiwrbmurcCwq6OhnaKhm5uQqaOqsqS0paylnpWZqpimrLicoq2Xk5+PpJ+SjJyinZedmpGVkq+5sqyVl6Onp5SQlqScpKyekKCoq5+bn6ijs5+jpY6nopSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHCAc5G5g3yGhoyHjXyKh4yXfKS7ub2cdXq0o3R3l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdmcGx1Q05QTUQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzynnqCiv6WWtMO0rKuorKupuq6wxa2zsq21prO4q6mioaWeoJ2Zk6ujrKmltaenn5uVoKOdq6S9pqGplpObkKGakY+hp6GTnJeTl5SxtbetmZ6kpKKLkpKmm6Wqm5WppKWcmqGopaekqaGRrZ+WpJ6Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylYdgcmpaXpuJYGOIjpVrYICVY22dd2KVa4CalZRlXmBjcJqKaHKLfYaVZ2t/cnV4fX5iW3d0gWhQXG6DfXuLa1hreoJzSkpvhnBOdE1FWF1nYUxaWGdjX09bbXVpcVJQREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGmn6KnnKObmZmrpq6jpLSopJuXlKCbpq2ovaeopJSTmpWfmZKXpKiokJ2RkJicsLK/rJunnqeiiZORqZqoo5uaq6CjmZujp6yjoKujmrCblaeglpSdn52XsKWYoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KXlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpKUmJOYlpqgoZqclKCdjoJ6pYVta32RfIB1ioqBcYJ4eXZ2ioB8impzgXSDdWV3fXdrb3ptYGNdcGhNWFpmamBXWm95bW1mVE9GUzlPWk1RTygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOgs6LAoaSysragqaWyp6WwtKrIqqyvpLSlwKazoJ2kpJyjlZWfqqasoqO2q5+YlpWflq2ppcCeq6OUkZuXnZeSk6GenqKnkpKZqKeyxLCaq52qn5CWlqidqpucn6yYoZucoqSvp6KlqJ+umJennZmZoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWm4OSgouqqYWAmZeJg4+eiHqEkIeGmpKIhoqWjpuXjZGYnaSWmpORnY1/jmehs6+FioR2e5KKfXd5em9meZCBgIlrdYF6iHNpc397doOHgmt1ZHlmYGplY2Rma1lse29pa1xTTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLmvv6yrrrKxoKqmsq2irLOvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrWdlJOdmZmvpa2+oKuikJGdmZiUkJShnJeonISeqqujtMi0n6qkqpaWl5qmnamanqOrlJ6fnqCpr6qmpKuirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1pa3uSpKpqZZuYfWeGimVlaWh7jqGPa2eNmJGjd2tqi5mjn5hzbG56hI6IelhmXoaDXm2LiYF2XGhzd3aSgIeCbneCeIBzbXmEdHaIiI+DfGuHWV5sdGRec4lpa3xxa2RfUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLqvrLSxqqWora6wpq2tsLywqKajra6wnqyWn6OdoZmZpqqcrKOlp6iyrZ6Uo4+ir6W2uaWuoo6OmaGZk5KaoJmZpJV7pa2iqLTEuKWip6+fnZSeop6jm6KpqJKfoZ6gqbCrq6SroKqcp5+noKyWoZulsKSXm6mVoJ2akaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqaZmXKrgnzLwMC7cYyjiIKffZaYiZ3AvYKXnZ6NncLBfIJ8k42aw8B9bKWyb4yBb8p6f5t3kYOOgXZ5gIB5cXp/h3B3hYyTeW54lGNnYHhkYGWCY150Z2xkY1hMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavq5+qmJqin5yaqqeinKuipKikpLSjnKKSpq2rt7OnrqGRkZmcpZKQn6GYm5+diKaspKytwMCxoamvqZeRn52imaGjqqOToaKdnqyvqq2npKSnoaalnayokaOaqK2pmpyom6uglZaklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjKp7qIeFoHSXk4izY4KrhqGOjbNqhK91fZeIt2GDrVqjzW6Qdnvae3+ZcH6HknZ+ZXuIdnZrfIdufYaRkX5tg5Bhcm1waGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqo6qmr6mfppuZpJecoq+foJ6op6KloJ+wrJqdlaeurLCqqKuflJGan6SSj56lmJ6no5+tpauwqMDHs6ipsa6Wkp2bopefqamflaGfnZ2tr6msqpyoqKWiq5KsspaloqqqnaKlpKCun5GYppmfmZOTkJegcYWMl3WFqIZxsX2ecqx+oZ6BpY+edquCfa1/nHKtfquHhp92mZJ7fJd+qoiijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZlhm9hd25ybomKko+DbpORZnB1dXFhZ21lX29paW5nZFhTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaaoqqatq6umoaOdmaGVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaOhkZSgrZudpqOvrKSstaq6zrKtpq6sl5WcnaKZnq6snJegmp6fqbKrq6ubraulo6uarrGhqKuupZikqaior6GRlaKjmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKshX+ug5t2rYGnhoWfepmXhntmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dS/oZmrp6Cvop6wtLCuqayip6aoqquppKWfm6SenaWnp6Ocq5qirKGjn6+hnJqSq6O1r66gp5qdlZOmopCaoqign6WcsaWkqLGtt8iytaqsqZaRnZyimZ+ls52aoZSdn6esraSwm62qo6OqobOtoaqzsaGaqKetrrShkZSippeakXypbJ6Eh3WreXywb4KljImflpaflIHSuLS4yYGBsl9glKmDpImHoHqYlpp4qsl0mqSVqKmRkpqNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OGbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqikqquqpp+mpZiqo5+uq52loKyanqmlnKe2nqKXk6iqtbKsm6WcoJSPpayRmZyoo6Cqp66hpaepsLXDsrOqraiTipecpZuho6+ll6GVmZylpq2csZ6vqaefrKO3rKGxuK+dmq6msbKxo5OWpqKZno6CnU54moF/n3qEo32DpIWHpp+cnpOEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjHZ7c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlra2uqqecpqaao6ehs66iqaayoJippJSjtqKilZehqbS4o5uhnKKSj6GxmZ6bp6ahorCunKWoorayxbGtqa2pkYeQnKicoqScpZeemJqapqSrm7Cir6WnmK+ku6yhtrWtnZy0sbevsaWXnK6go5yFj9G1w7d5h46FkZOQgKZ5lKF3jKCRhKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CppyjjqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY55fnmQg25qeWl6c2+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIqtvr+8urSelqekrbWhopmUoqimrqurmKain6agoLano6insKOUrKOOpK2inZCamqqzs6ScpJyokZSXrp+fnqeknaidtZqiqqS2rMSwqaupoYyEjpyioKailZmanZmbmaalqJmtqK+kpputpr2slL2vrJ6hr7K4qbKlmqiwoqeXeaiRfXywd4qApKWInG2ycKGHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2bloureJ2hkoqUkoF6r16kgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpmOfHyEmYBrbn9jf3RugHpgZ2ZxbmhnaENZYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK24paOOm6Sin6+wqp+kn52tmZ65oKOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoJ2moZqlna6Yoaint6nBr6WppJ6LgI6bmp+mnpKUmZuUm5qmpaabqqytpKWfqai+pJbDrKmioKuyuKmspZ6yraeol3WvfpCLnIWHfbqtipllsI1lla19oI+DppWagayKhLCFppqkoaGQhKBcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tVmyfVKugHqsWIChbZiQqJuMmJKZmXx6kJ9/ZXV+Y4Z4dIF8YWpncG1nZWZPVWRcQVVfPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktaigipqgnpyzs6mfo6CetZmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+omaGdpZ+ao6OlmaCiqrOpvbClqJ6cjn2Lm5ahoJiPkZqckpqYqaCimqmuqKamoqSpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bf4ekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqadkZuSmp97gpKce2R+e2WPZ3mCe2FsZWtqY1BiW1NqXD9UYUNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpLKmnYuYpcCquLKoob+mp7KcnrGcuqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnaecmqGpo5mfoaytqrquqKOalpJ8iJmRppuSj5GYmY+YlKmboZmqqaGrp6CjqrueqMSin62iqbOzqa6on7mmra2Zc3aqpbiGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybGxsZot4b26CmXGBempxaWeKl5aYcWlphYhncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZX+Nk4+hmJmZk5mhfoiRlndniHhpj2t5gHllbWNmbGJLZVhKbFo6UGVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunaOyqZeSv7PFyr+3qp7ArK2koqesn7qjpK6rraaOl66pj4uFlZatnqaqoJ2ko6CRi6SSp5ipmpejqqGWnaamp7C7rKyam5KRe4SWjaWYjZGRmZWOmJaplqCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa1oqy2lYqhqKa3nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJ2VkZmTmZGPlYaBpZuYlo6LlJSMkIaEfWeJfnSCdXOHinCnbHqUkZOSgYGNj5CPnZWil5qapISJlo9zapF3cYx4d316am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaXFxeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtbGQjqzIvsW7uauipZ6cp5+xqaO2p52ptKaokZisoouHiY+cp5WspJ+Yp56ekpSjlqiaqJqUpqGkkJuomaG2u6irmZqPjHyBlIuhlIqVkZaRkJSYppCgm6qfnLajnaart6euwK2itqWur6+rqKixt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6uvmqCjr6ivmKOgnKOqnp6enJarnZOZoZuUkJarmo6ZmZeRlp+SiaGelpWFko2RjpWLgH1mi4V1hnV4h4JznGqFj5STkIl8i5WSkpiUo5OfmaSFipqJfHOXc3uMgHN8f2pvZF5wamBbYFpuZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fX2FhYmFhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW8sK2toqOaep6jsqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmZuui6qWj6iZqY2ZqY+furekpZmcjIh5gpSMm5OKlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wir650o7yisZ93eJ+osLmUdayjnomAq39kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZqXcICYqJhtf6KoimWcpp2SmJiWjZKckoaem5CWhJKHj4+SiYV3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7qJybZnqaiYR5mWqFjIRveoBrcmVfdnFsa2hcZmZiYnBTWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnWFBKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6vrKuppaitoqetpJKWq7axs6ebq6esl3OMnbCgqKunlJe5oKCPnKSdkX+JiJuejKyaopWnoZ2OlpKehHWtj4inm6mRl6SJnLu0qKCZmIuJdXeTjZaTipSRkZSNkJShj5yhp5mcspWAjJu1nbOMko66pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpudoaeop4eVhZh3pZt6h5yBl6eCgnucsnqKhqGYmpWYloORl5eFm5lieoeQhY+QkouDbXCOhnmAcH+AhH6Fc4WElZF4lmeSdKCadX2ZhaOgiJh/lIyFhZprj46GbHh7cXFnZHdvamxrXGVramV0XF5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lbYWFoZlpRSDlETDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6WsrKuorKCnr6amqaWZlK/Iv7Gil6iptp6QhJ2snKeioI2Qvp6ajJ+aoJB8ho+Zl4esnKGWn6CRjJOJhoCRp42Ho52klJiehp66sqiempKOhXF2kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqayItoWNsIGvrIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hlKGQmJeBj5Sci5mSi32Fk4eOlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYSagY6Ph4uacY+UhWh4dXx4aGh2cGhobF5kcGxmbFhnR11STTNFNDZOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaummpSgo6SrpJemq7ijr4ChqJ2mnp2JlL2Zk42hkp6PeYSWlpGHq5mbnJmhhI6Ld5ucj5+QiJ6knJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj52cnJCFgKCMqa2Fo42pmYyaf6J1gJmUa4Ktdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXgI17ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpnoG1bb4x9Z1pghIBiWFBvd2ZtdHJram9danFta2lYaU9dWUY5QTVIRF9sNSxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6quopmYoaKlra6hnq+1o6iSoaCgp5yajpm0mZCLn4yVi3WBlJKMiqaVlZmenn6ShYWspIebkIqZqZmam5KIprGnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfoJyhpH+TgY+ioZSgdpyVj6eCoKZ/haerg6V4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2JzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2Zs5ZyfZifs3VzW56yg2pib3R2cWlvWGttc3JmXWleYkxFPUQ2UUJaczM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42ktrSsraCaop2ko6aunZyyrqyTmKKaoaSZmpSeq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNqKCHl46JkqSUnJuNi6mopZ6QloeFfmp7h359kI2Di5GRiZCUoYOXnqCdoJ6LiXecmKKNn3Ghioeph5uljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml2pf3m7a36qXI6EXbRnXG5yenhraVxxa3l5Y2BmWGJCUUZPN1dDUm81S1taX05aREEyNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7mxr6yeppycqaCfr5yesamtnpekm6GgmZaWoKOZhomNaoiAcnuXiIyWloSRlZiQeoqElaOcipSPhoyfkp2diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKOfoKGTmHJon4mfj4twkoyAqYeYnqGlnqZ7sK2joriXd6Ozo6SAiJR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm5zfZVwmnRrpF2VdkhlZGB0cX5+b2ZgbGl2fGRlYlFfV11UV0BaRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKomqKMnKycnKqUoqyko6iPoJ6dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKhnHORkIGJmpWhm4WPqZyblYuLi3yDbISFcYKhjHiGjYiIk5mWfJOkoJ6iiK2GfbWEjp6ce6WWeqmBlZuPiZ+bfKdod21+mXShc3J8nYaZcJODrn2kg6WdmYCjb16oZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZxtfHCWbX9yonJdpGdzpmBopm2b1Jp+hptweXuXbJx8eJdzbqmkZ2BlenGAhWxoZmRudnhnYGNTXGZRUWJIWEpVYVdUW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFpZXxkXmRnZGtkam1naGxol5p/r6pUXEt+qa+xs6+yo5uZhZmpoKGkjqapoZmqipqYmJOZk5KhmI6HhXtwfYRofY+DlJqBd5GOj4lvf4aPk5Jsl5N8iZKTpZeDj6ublJOLhol5g3aHgG6Cn4Z4gZKGiJmjmHuUo6SZn4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSkrq+Kl4yAjaSNlYKtoJN2tba1yaFzlIuBn2Cdl6ltepWHoJt0ooh3oH6Tl4uBcE1mo5JwmodzpHt5dGGDgWt9oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclFFfbNfanZreohma2hjdXVxbldfVFlpUFNoSVZNWVRWXWhrblZnV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFBObF5pXGtpUmpoaWxobGZjZWBcXV1eaWJkaWt7X11kaGNqZm5tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICXqqKjpYylp56dpoOal5aOl5CPnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkoOMhZ2NeY2LlqaTg5iqmI2Si4GJeoB9i3lwkKGGeoKVh4mWoJZ/lKWonJWVg2ZueJxsomR7caV3m5hwZ6aAlYp6pHqfloOXcp53gYqVl4+5bpGKomJ9mKCViG1yaaprdaBtb6ZfmmmLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJaXltioW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHl0a3BSWVdXZlpUbUlZT11JWGlpc2pZa1ZRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUXJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbWZrbWOco5eleWRzbYumraOpsLGmn4uAmKudn6aMo6Kbo6KBlpiTjpqQi5iQjop7h3GAiGmLi3yYm3N1iX2Qe2SDh5WKipWZgnyIh5eokYGjrJCGkYuCin6AgI5zaZCmhH2HlI2ImaCPiJOppp2IpniVm36kiJaLsZidkIKvl56ldpSGeKlzpY+Emm6kooyShI2Du259pa+ChoWGk5Wcn3ylenKolaCWZp5+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNag6eOq2F1cnRwfHVxY2t/b2ltU1dbVmFiXWtNXVJdSl5tbndfW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYm1qeG1nbG5ilaSpnIF/naOWqamdqKaupJmKgpismp+lipumnamdhYyaj4ackYWSjYyNdId7iIRvjYV+mJN0dIZykYJtf4uRh4aTjn17goaYpo5/pqeOgY6JhZV2goeSb2yLqYGDjJSOiZ2fiYyUqqKfj4B1lJeIfoF5lK6if4GbcY+Gd46Jgn17cqeMcX19epiWm4SPeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+Bf4t3dHKUdW95bm2HbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25uaIxzenyYeIVcbFh5j2lveHJxb3h4cF1rh25qZ1ZbYFddZmtkVmNVX1FfcHh5bGt2Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF4i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2Tt6imiaCimqajmKScq6KhhISYrZKeoYmbp5upmIOBm4t/lpSHjoqJjXKDfI99fo+Fe5iPdHKEcJWFe32Si4aGj4R5foCHmqWOfKihi4aQkIWVg4aOmHdyhKmGjpKdkImfnoiMm6efn6qDiI6Vmn5+iZatp4+Rpo93b5uPgXiQbn6ohXB9lXFrcH2BoI2Ak46LaGxcgouLm5qejnOVi4hxdGuBdnSBWXJuh5GBfn+Mal1qZHuGhImAYGl4epp7goqBdYGFgWd3ioZqYXBxgXRecYqBiI6llIVli42DbneLhHGGj3pxaGhlfIR7lltca2hudlt8eXh1bnNzg2dcbYtra2JaWl9bWWxxXF9hWl9dZXR/e3VwdGRra2t8fXN8eXVkbnVobXx+d3p8e3l6gIB+b4aKhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N6b2hqbWCLiqmwoY+ioZqenZeemKijon6Dma6OoJWInKKRpZV/e5iFfZKZiYmGh4pzfoGMdoWMgoSXinJvgHKYhoN+koOEhomAeoGEjJyhkYOnooh5jpeJlYuLnJeEg3qtgpGYmpWKnp2HiKGqn6Gio4uHk5uco5mVqqGnpp+SmoeVjHp2jY2Dp35/kpCTlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDh5GLfImehIeMkImIgYWEkHd8enSZoIiGiZ2JhJN+fYqAgHVvcoSCfneGhoqPpZCChYyGgoyQjH2IjIqRhHptg4V+eplrc2lhdIpxfnp3d293dIJdXm+HaG5fXlpdXVNoclZkXV1ibGh1fHxzb3Bka2ppgH1ueYByanBxbGeBe3KCgHh/fX+Ee22CjIZ8enl7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWh5enFnaWtkjIecuZ6WoaCYlJiZlJikoJ58f5qsj5+OhqCdi56WfXmUg3uOmYqGg4SHbnmBgXOBiH6JlIRta356l4eEg5B/gIeEhXyHhY+cn5OHq6CEc4uQhpKRi52RfY17qoSOk5iWj5yWh4ecpZ+imp2FgpKamZiPmaafpZ2cj5V/j4h1e4aNhKV7fI6QkYaZq6GelJ2QjqmNkICdjIiTmZ6Cj5d+ho6Db3iGcXVgf4SQhnWNmYGDkIOHhX+FhJVueXZ0kqGKi4Wag4SMc3+Je3xycXqHg3p3iY6DkaaPhYOOgIOKiYp3homLjH5xbX+CfG9obG1oX3p/aH58dnV2dXt4XF9xfm50YGNbXV9SZ25UZVteYmtpdnl/cWxtZGtqaIF/bHSBbGx1b3pwhnluh4B2goB+hXZxgo2Ifnt7fH97gopgaHtqdWhpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuanp+ee3ifp5Gci4ellYuYmXl6jYV8iZGEjIKCg258gHlzgYV+i5F9a2h9gpeJgYiOfH6GhIZ8j4KQnZ2TiaidgHCMi4yShqChioWMfKiRiJCSl5OWk3iNo5+gnZaZf4CQmpiSjJqioKOZl5CafYyDd3+Cjoagf36MjI98mKShopOakZCmjI+BmpGJkpebfpOSfoeOgXVzgnB3YX6AjoZyi5Z9iIxyjH+ChYaPaHhyeIuYkY9/ln2IinGBhnt8cHd6ioN5eY+MgpSkkouFj3uFhoeEdoOEiYl8Z3N9gHl7cW1rZ19+c2h8dXZ0fHOAal5gdHZwd2RjWV9fUmtpVWVZYGFoanZ5gnFna2RsaGaAgGtufmhvcWx+eYd6bIyBc4GBfoF0doKNhn98en+BfX+PaXKDbnRpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnX13paGOmICNo4uImpZ5e4aHfoOJf4mCgX9yf3t0doOFfoqReGdjfoaXioKKjHl9gI2DeZaClpmYjpehnH5wjIKRk4alm4eMiYOmlYWTi5aYk5J3kZ2goZeUlnl+jpeXjZaanKOdmJKUmniNhIJ3g5WNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KWmX6YjXyIjYF2cX1ue2SAfIuFcYeTgJGCbIeDgYCJhWZ1b3uFkZeLfJJ3i4h7f4V7enF9d4iEeYOPiIqXoZWBg4t2iISDgnd8g4qHeGB6eX50f3hnbWVhf2pqd3N0dn5xfGNjYHNudXJtYVphXltsZVJjWWFhaGt2eYZxY2tjbWZofINtaXVobnBpgH2CeW2QhnKAg4N/dHyDjIGAfXqCg358kG12iXN1bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5l6l52LjJiQeXyBjH58hHyBg4F4dHl6dH2AhICJi4BkX32LlYd+hIZ1fX6Lf32YhpeVmI2kopl/cod7k5GJpo+MjoqToJGDkpCVl5GLgY+Yn5qRkJBzf42Rk4mdnZ6ml5eMlJVyi4yJa4SXj5l6h4iPiW+XnZqklJWLjJ6LhoGRnH+SkpWGmYh7ioqBeXF5a3VsfH+Lfm6Gk4OVeHGChH5+i4Blcml7f5aXg36Nc4+Hg3iGfHV3f3yEf3uCi4OLk6OPeIOBdImHfYB0doKJhXBhfHZ7cn1wYm9jZHxjbnB2c3h3c3RidmBvbHZub1xcX15eal5QXVljYWhudHuJa2BpZWtjaXeHbmdsaWttaIF9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfo6idioqShYqdi5WYfnivmY2XfZ+UkZeTiHd+e4p9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGf4ODc3uAh3qPkomTkp2TppyWgn2BfY6KkaOIjoqNmJqNhpKZlJaOioiMkpySj4yMboSQj5GInpmioJaViZaQbYeYg2WFmI6TeomEkIpwlpqUo5OSiYuZjIF/kJ19ko6SjJmOe4qFh3NzdmtwbnV8inRuhpGPk3F1gXyBgYh8ZXBseXyZk3yDiHSQiYBzh3huf3yAhXuEi4eCi5SnjHqGe36KhXd+cXCBh4RlaHl1dnF8Yl9wYWt0X3Fqe3l5bHNwZXlebmxzbXJYW19gYWtbUFdYZWNncXF/h2ZdaWlnYmdxjW9kaWhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTjoehjZaUj39zfHaFeHl/c3N7hmtzcHpui3aAgYhvcVtZfpGNh4B/f3Z1gICAoIeSi5SemKKVmHiKf4GNiJydio+GkpiWhYmVmpCXi4uMjYyciY6Qg22Ji5CRip2WoZuXlIWXh2mDooFlhJyJkH6Lg4uBd5OYkp+TkYmJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdIOPmYtxd4B1goiDeWZybnWAmY57h4N5k5B5dYdzb4d6hIp5ioWCh42aooZ7g3WCi393eW5sgYWDXnN1c3FxeVpfcWFwa15wan17cW1tam12YHBva3FtWVliYWJuWFFUWmZnY3VwhIJiXWtuZGNma5JuYGdnX2hrgXVyc3CLgHV/g4B4dYCLgHmFf3iHhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmqyep5aFjYR/l5SDkKB2jKCUk4aLm42Wjot5cXh0gnByhXRxdohscG52bYh2g36Abm5VUYGrlIeDeH93coN6g6CCk4KVlJmck5t4knuDjJKjmZOOiZWZkoSHl5mMlIuJj4+HnYSQinxzi4WKjoicmp+blZN/k31ohJuGZ4Wfh5GEkYKJcYORmJCbj4+MjI+Md3uRkHqOi4yRlox8iHyAa3ZqbmtsbHt/Ynp+j5eBdnuBeIOMfXlnc2xzhpWLfYeFepOPcHmDb3aLeYiKeYh8gYuPnZ2Ee3p2got8d3FqbIKEe2B4cW5tcnRWX3BicmFgbW96cWhvZmZzdGlxa2J3ZV1XZmBgclNRT1xmZV15cIh8YFxpcmJiZWaRal9oZVtncH5wa3F0in12fIaAdXV+jHl7hYF4iINzhoV+jIyEfHmVeGZya4NgiH1vb2t6YGpudX91X3R9eYZ4dHOFfXigj5mwm6WOgot/g5mHgIyfgIualI+FiJiPj4+EdnR3dIBxcIV0cHKEcGtpd26Dbn19bXVzUk2C38iS1pN7cHWEdoSgg5R3lpGZnZGZe5RzhZCeoZOTkImTnJSGf5eWiI2NiJKNiJt/joB3eo1+iYyKnJucmpSSeYx1ZoeQhWuHooSRiJeDhmOMkZmPlYuXjIyKi3F6lIh7joiKkpGJeYV8f2x7ZXNwa2x6eluBeZCQgXp+f4CGjnt6aHJqc4qOiYGEhHyUimt9fm1/i32KhXyDeICOlJmZinx1d4OPeHJtZ3GAhW5rdXBoanVuU19vZXBaYGxyeGdramJmeHJwcGNgd2BgVmtfXnZQTkxhZ2JdenGJdV1cZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fotzgIZ/e4l/comIgZGLiHx+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOOh4F0eHB5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChc2x2hHaFo4aTcJeRlqGVnIGScoaLopeJjZWKkJ2Wg4GWkIWJj4CRiomWfod6dX+JeIeEjpyamJiOj3aJdG2FiIl8iaKDkYmchIVei5OXi4+Jj4uLhIlte5aBfYiFiZGPhnaFfX5rfWR4dWpueXNYiXuSiIV6foGBhox/eWVyaX+JjYmBgn6LlYRrgXVtho+BjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xY2p2aFJhcWdsVl9vdHphcmRgaX1wcm5bY3JgYlZuWVx4Tk1MZGZiXndziW5cXGR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJld3mHjWl2gIlyf5yGmKabo5KEfXGMlHd5jJ6FhaGNj3yWjYCZiIR7c3dwdGpwgWxpbXx1X2F4d3xxdXxoYGR869q1ycPch3NsdIJ3i5uJj2qZkZCelpSBiXGFiJ+NhIuVioyYlHyNk4iDiY97kIuFj4F/dniDhHKIgpOclpSXhYx1hn5vg4GHhpihgpOMnoOJYYOUj4eKhomNh4GHaXyTf32DhImOjYJxhn5/cXdodnJpdHdsWo19k4OFfYCEgYSKgnZhcmuIgI6JgX5+kZB9bYFrd4SNhJCCe4B8fo+Rj5WIbnB5jIV0a3Fsc3mCYXVqb11sd2FSZXJpZlNgcHZ1YXBgXWiDcXNqV2doYmlYbVZbdUxLTGVnXmJzc4VqXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHOFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHqGcYBvZ3l3koNkdoaFcIqWhZmgmqKKh3Rvkoxxd4+cfouaiYl8oH+EmYCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto6RpnhucXd8cZORjYhrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6Tk4GIdIKFdIJ/iZGcnYaUj59+iGJ/k4eFiISKjYCAg2d8kIB+f4KMj5B+bYN8gnRrbXd1dHd2bGOOgY+AhX59hn+EiX9wX3FvhHuOi4F7fpCIeXCDZXmBiYWKgXqEfH6SjY+Rg21ueYt+dW1ua2x7f2RpbGpZbndaU2pzaWJRY3J4bWNmXlpqg25zYltnX2RsX25VW3BPSE9nZVxnb3GAbVpcY3NgXGNsd2VlXV1aa2xjbWpzd4Z/cXB/fH10eIZ4hYJ8gId1eYmBkpV8iYZ2iIFweHl7hJNvbnuBd16DgHSCbWl6dJRzZ3OIfHGSkYOZnpughoh2dpR/bXeUmH+IkISLjpp9jJp2fnZxcGxqYXV8Z2JqdXpbYHh8em1xf2VjaGdXnY9fcXOWvMSEd3GUipCAdJiMh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH+Th3SJhXZ2fYJxdYaBnpWGlI+CgnF+h3ODeoiWm5aGko2cgIhmfZOCgIaDiYlygX1nfYt7eX9/h4uPfWmAfIN2Zm95eHN3dGxrj4aLgot/eYOBhISAa15wd3p9i4eEe4COf35ygGh4gYaJhIJ3gnp/louOi3xta3qIfHZ0b2lofndlXXFjWHB0U1Rvc2liTmh1eWdhXl1Yb4BvdFlkYV1qbWBwT1lsUkRUaGJabG9te29ZW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFpgnl6fm5tfHaWa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeo+Wb3pzcWxqZGB0e2lgZnJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqElYBviodxdH17anmGg6WRhJOMgn5ufoJ1gneEmpeSipOPlIWHcHqShH6Dg4mDb4F4aICFeHJ/f4OKh3xlfH6DdmNwc4BpeXFvdZmNhoSLfHd5gIR6gmtcb3xyf4eDiH2Fh3qIcYBtcIKFjYKDcYN3f5iLjYN3bW1+g392emVoan5yYVp4Wllybk5YcnRmYEttd3ViXlxbWXV9cnBXZl1manFfb05XaVM/WWdfW3BrZ3lxW1tZa2VZY3B5X2hdXmVsaGZsaXF4f4dvbX99gXVwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9rb350f31vcnx7lHBvgH95ZpKJgqGYnZGDhmeHhHBnepeKfoCFgpmKgXyNjWl4cmxsZl9hb3ltYGJveVxkbIN6YXF2X2Rl1eu+izI6PouOgHJ5homPjXeFmY5/lI+Nf25thYyLdX2Pf4WClYl8g3hudoeFgpZ3boeEa3V7dGV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLhn57kod4gIWNg2yAcml/fnhtfHuBioN4YnmEgnFkcWh+bnVydYKcjIGAhn90dn6Ac4FvW2t9c3iIgYp7hn98iHd5cGuHgo6CiXGAd32UiYp9dG1qdoCAdXVcaWl5cVpXfVNacmZNW3NyZlxKcXhwXVtbWl11f3VpWWJbZ2VuYmlNV2ZRPV5mXV52Zl91cVtZVW9kWmRweVtoXmBnbWdqa2hweH2ObWqBhH95boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt+anR8coZ7c3d9f4x6eIR+fGuMjIObnZaMgoFsjX5raH+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4d3iJiHdZCMindwbYWChnR5iXiJfZOIen5zZ3WIfn2Xb3GGfWh2eW5leomFpYeAh42JfW19dH5/e4qXhoGSkJiIi4SJfI+Jcnx+hXxpfm1rgHt5anp2goeAcmB3gX5xZHJndYJudXuGlZKCfYKAcHd6fHV+bVdtfXVzin+GdoZ0gol6d3JtiH+Of4NxfXt8kYeIem1taG2CgXVuXWhmdHJSXHxOXHFdT1xzcGRWS3N5alhZWVphcYF1YV1dYGZkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3JXal9iaGtnbWxpcHd8k2xohIl9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot6a22FiZJ5fXuCkoCAfYqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMm4coWEc5R9eYiUhHSSjYdyc3CEeoJzdYZ0iHeUiXl5cWR3hnqAkmhxhHVmd3ZkanyEiJ6CgH+Ojn1xfnKDeH6QjoJ3lYyUj4iCiHqJiWx5en91aHppbH95c2l6doCDfWhgeId9amp0aHuAanaBjZGVf3x+fnF8dnx0fmJVdXtxcoiCgnuBcIaJd3hvb4KBi318d3x7c42EgXVocGdsiIJycF1oY3RvTGZ2TF5vVlRadG5iUU90eWJSWFhdYXCCc1thXWhlZWNqZFFbcUlEZGJcZHFeXHhoVVdWd15cZm5oVmxeYWpnZW5uaHB3epNuaYiMeX1ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3SDeH+BgYKEeoB1b32Ji5ueiH6Ge3eGe2d1h42Ren+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpx4aIs3KKeXCOdn2IkIF7lIuAdXR1fnZ/b3B/bYV0lIZ4dGxgeYF5iI5lcYNvZ3VuW219gZCTgIF5kpJ9d3pshXR/j4qDcpWJkY+HhYV7f4ZtdXZ/bWh3Zm18dm1qd3Z/f3xgYniGemh1dmN+e2h1ho+Oln11gHZygHp9bYBZVnJ9b3OChn5/d2uIhnN4anR/goJ8eXt3enGKf3tyZ3NkbYuEbHNbal92Zklvb0xbY1hXVnltYlBTdXdZUVZYXmByhG9cYGNtZGNdb2NUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniOdGuOjHV/dnh9d4GDgXt0foOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4h3x9gX6FgHt+cnZ4i46fjIl7ind1g3pefoeajXmHhHSGh4R3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi21yhHJ+hot/e5KFenl0eXV0empsdmOEdpKCdm9nX3yBeYuIZXGAampxY1hte4aciYOCcpeTd317bYZvgImKhnCWjpCIhoyEe3l/cnJwfmdocmNteHFqbHF3fXx5XWV5gHdpdXhmgndodYeMjpV9c4dqb36AeG59XVdwfW1zfol7gG1uin9wdmZ2fn9+gHV7cHlzhXt4cWVyYG2LgWtyWGtfeF1JcGxOV1ZfVFV8a2JPVHZzUlJVV15idIZpXWBramZiWW5hWGNwR0FoXWFmX1xWfF5PVmVxWVtqaF1YaGFfcmZqaHFncXN2hnlulYp0f3t3fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt+fYaEhId/fn99h398eHZ5dpGTn36NfYtudYB6ZISImIZ0kopvhYWCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqfuG5idIdpdXxyeoSHe36NgHd4cndvenZlam9hh3WOgXNqYl59d3iKgmVwfWhra1pWb3iLpIGFf3CZknF/d3SAbH+Aj4Zyk4eMiIWJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfXx4ZXJ9boR0ZnWGjYaWgHCLZ2t7g3RsdWJbbnpqc3qKe4BldId8bXBndH12fH5wemp5eoB4dm9lbGFsiX1sblZqYXhWS2tsT1JPaU5ZfWhiT1V2bE1RVFVeZnaEZ11hcWhnYVdpXFxraUpFa1piZVdYVXlaTldualldbGVdWmVjXnRmbGVxZnNwdIF4cJmFdn9/eH98hYd9dXOCh3+Vg25zeXt7c3KFhoiIhHmBfXaPf32EiY6EgYN7fouDe3d8d3aanZd6ioOHanZ+fWyEhpWBco+CcYWCfoKAb2ZsZ1hdW1xbVGVwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anV3dHSEhXiBhXp3dHVua3pwYWhrZ4Z0jYRuZl5ffG96iX1obXdmamRWV3Nwjqd9hHx2lpBze3F7eGx5eo+DdZd8h4aDh4R9dXFzbWh1XW1pYG11ZGdmaXpve3JZZ4F2dWhwgHiCdmJ3hYt8lYJvjGtte4FxZnNlYGt4ZnF1iXp9YXWDdWlrcXR5b3h3cntlfX1+d3VuYmVgbIZ8bWtWamNyVExqa1BMT3BIXnxmYU5WdWVKT1NYYWt3fmZdZ3NpZV9XY1dicV1LS2tYZGJVVFVzVk1ZdmVaX2xgXFtjZV93Z21icGl0b3F+dXSZgXd/gHiAf4aEen12goN+mIVucnR8e3RxhYWOgYB6i3V0kIB9gZSOgIWEfX6Mhnp+gXZ7o6WKeYmGhWx1fHx1hIONe2+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGJ0e2ppbWhgYVdeWmmAaWxvgGdtYml7emt0dXVvhoJ6gX52dW56aGp5al9lbmiBd5CEaGVYYXZpfYZ5bmlvZmddVVhvaY+od4F6fJCOeHRufW1xdHiNfneUdIWDgIWJdmpzdmhpb1xtZV5uc19nYmp4aHttW22DcnRqb4B+eXdhd4WEeJCGc4hycHp/cmNxaFttdmRvcod6d2FygG9naXhzcWt3dnN1YoJ6fXZ1b2NiYm18fGtrVWliZ1RMbmhQSFJsRWF5ZmJNVHJeSk1VWWVseHtmX21wamNdVmBVb25XSlNoWGdeWE1VbFRLXXpfXF9sXV1bYmVgemhsYW9vdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH6BfZBsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGBgnVuh299gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFXW1xrgWVxdX1pal5teHdodXhzbod8fn56dnNsemdpd2ddZHNneneSgWNjVGRvZoGEdnZmaGphV1ZZaGOQqG9/d3+Kjnpwb3tmd215inp2jnGDfX9/h25kd3RlaGldbGJecHBbZ19tdWV6aF10gG5ya3F7fnV1YnWGjHuIiIB/eHJ1fnRhcGxYcHJhb3CDenRjcYBrYGx6bmloeXdzcGSDdHh4dHBkYGNtcn1qbFRpXl9VTHVjUUdXYkdjd2ZhTFRwWUtMWFhobHZ6ZWRtcWZjWlhdWHZmVEpcY1hpWFhIV2VRSWN4W11fbVteXGJjXn9pamBudHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59foWJanSWgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGIenR+fXZyb4ZsfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXOGaFlxblteWFpcbHticXd2bGNcbnR1aHV3cW6FeX+Bendvb3RlaHRlW2d1ZnZ2knpfXVNlZWqCgXN8YWNpXFRXXmJkkKVpeXSChZB4bG15Zndse4N5dIdygHh8eYBpZXdtYGdhX2tgXnVrWWZdb29iemVbd3xrbm5weHl0dWVzg5N/iIOJenZvcn1yYXhjWm5vYG9wgHpzZXGAZF5tdWhjZnh6cmttgHNye3FxYV5lbW59ZGlUaFlaVU55X1JKWllIY3VkYUpUbVVKTFpXaWxye2RsbHNiYVlaW2F2XFRLY11ZalNWR1lhTkhqdlhfYW5bW19iY12FaWhibnd5bW9qdoGQeG2DfoCCkoiEgXZ1iXSMhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZonp7gImVeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxxiWVTcm5bWVhXYGx2ZGp1ampfW250cm10dHVrhn1/gH13b25sZGlwY1trcmR0do5zXFdUZGBxf35xgVxiY15TWmFcZJOfZXJxhYOQc2tqeGxubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF53aFdiXnBoYXdhW3x2ampyb3h0c3RpcYKVg4d/hXZzanB8bWZ3V1tpbGFwcX94c2VvflpgcHBhXmlvfGtqcn1xb3Zpb2BbZGtse2FmVGdVWFNRd1xSUFlSSGRzYmBHVmtRSVBaVWtsa3xlbW9yYVtaWFlscFdTUGZXV2lTVEZaXE9Jc3VYYGNuY1hhYWJdjGpjZW16eWxuaXZ5hnprhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4OCl3R4gpSFgZ+JdYF/gXR/gnCHg3Zvopdze4aLh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZWtTXlxWaGJsbFtccY1kTm9tXFZXVWdpdGhjdGVlXlpwdm9xdnZ6bIh9gH2Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJjd3x8cIRcY19jVFpgWmOXlWNucIKFiXJpZnluZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlhdWVVX2BtZGFxXV1+b2hpc3F0cHV2bG2FlIKJfIVxcmdufG9xb1JaZWlkcHJ/dXNibHVVYnFqW15uZHtka3R8cXFxaWxfWGRpanheZlVkVVdRVm9YUVdUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnl3W19lbWpaYmBfXo9uYWdreXZubml2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt1gIN+iY5/i5NzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnqNYGV9cWd6dHlsbXF3g2dkfG1jZ2doU2BfVWdgbG9cXm6OaE1pbGBVVlNvZnNrZnhlZV1acnZuc3t5c26Je4B3nHt6a2FlbG1eYG5qZXB5fmdaVlhfbHh7em+DX2JeZ1ZZYFhknIhia3CBhnx3a2p2bFt1cGp5aXVybm98gXNYa29gWV5WY2RYZXFjVF9iaWFibFpgfmtmbHN1b214dmxohox/iXuIbXFmcHtscWxhWF9nZ25yf3NyXmlsU2VwZFVibWF4YW90enRpbmtqXldgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYEtYbWVfeGhufmRgVV5UXXVbVFJgZ05eYlVTSlxaUVp2dl1fZm1oWGNhW16OcGNoandyc21odnR5gnOCg3qIjn58ioiOeW6PinRsc4Jzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo2MjY2Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmnpsbm1ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJydd2VnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6LioqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkYuSjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY2HhomGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIi4aFhIWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiLhIeEhomPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIyGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp8enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+LjoyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OSkpKSkpOTk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpGRkZGSk5KSkpOSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSj5KRkZKSk4aFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGCgJKQkZKNdYeRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwgpCPkHt1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNuiY+JcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyMdm16j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbW2CeXR1gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGFeZF9ianBmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhhX21sXWZnZ2ViY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlprd2xib3NqYlpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2pya19sdHNnUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5cY25rWmlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRUNFSVZiZmtxcG5tbFpNTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNHSElOW2doZ3FubmlmZGBfX1hMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw9SFlcW15mbG5rb21tbGtpaWpiUUdFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUpaaG5ucGpubWtqbGxkT0dFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1FYG5zbm5sbGxmUUI/Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk8SFx0dXFlUD46Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6QWp8aT05Oz49Pj9AQEA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFP0BBQVtjPD09Ozo9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PkE6SWQ9PD08ODo7Pz89PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnV3TTc4ODo7Pj5WakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnlJO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT9BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyeWtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6e3t+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVGRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p8fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1MTU5MSUZHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtISEZGRERDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaDgoaFhISGhoaHh4aKdUtKRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPaENBPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yJYEM3NTU1NzY2NjU1ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJR0lGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouJioqHZkk1OUA1ODg3NDU3ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKioyDZVBaQzo8PT45OTo7ODo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESElNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qLi4x9alM9QkRFRUJBQEI/QENBQD49Pj5APz8/QD4/PT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4uMiot0RUNHSkxKSkdHSEVGSEdFQkFAQ0VEQ0FCQkI/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIyLi4laSlBOTkxPSkpLSUlKSklFQ0RGR0ZEQ0VGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjIyLjIFsbVVOTU9MSkxKSUpISkZER0lISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjIuLjn1gWFBPTk1MTUpISEVJSUVLSUdKSklKR0dHS0xOTExISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIuLil9UVFJPT05LSkdGQkdKR0xLRktPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRkhGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMi4uOfVpYVFRWVE9NS0pERUdMT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMaVlYa2JGVFFRUEo7O1JTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uHbVxlVjpZWVhTUT9AVlVYXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3R2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqMem9wWVtcW1JUUlZWVVtadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SLfmdZWVxZVFZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB8XVFWWFVSVVNRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFXSkxOT0tOS0lKREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUxEP0NDQ0NCQERQQkNBQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh9f4OAg4OCgIKAgoGCa01HP0A7Oz4/Pz8/PmtQSmBFRkhJRUI/R0xOR01SVUlCRT8/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnR0dXN0dnh6fHt8fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS01XTUhHQEI8OTc3NTk5PTs7Ozg5ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNSWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFhYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllUUU5PTkxJSEpMSUlGQ1FQU1tXVFROUVNZU1xlVU9TU1FOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFNTT01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdTUVNBR1VQT1FRUE5NTk1LTEtLTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk9TT09QTExPTUxNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwc3d6enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE1LTE1NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEdJSUpMSktMSUpNTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RGQj0+PTk5OjtAQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtBQ0M+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERCPj8+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0NJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVHQ0JBQkQ9QkE+QT06Oj0/Oj0+QEI+QEJERkpFSUZJSEZGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5OTVBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUFFOT01OUE1MTVNXVlhYVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzo+PTo+OkBCPj8/Q0VGREZERUhFREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYGBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI9Pz5BQkZDRUNDSURDRUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTktPTk9SVVZPS1VXU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGdncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkFBRkNFRURJRUZFR0ZISEZISElLSkZKSEhLSEZGTElIR0pHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QkBAQENBP0I/QUNIQ0ZFRklGSUZHRElJR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTE5OTlBLT1FSVFhWTU5UVlRSUlFQTE5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tMTExNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0NISUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxOS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUtGRUpNTEtMTEdHTUlHSktIS0tJS0tOTE5MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE5OS01NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUhMSkdNTU5LTU5HTE1JTEtJSk1JS0lKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxFT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTElQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJEQ0JFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VGSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNS0tPTEpLSUdHRUQ/RUNJSUJCR0ZFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUhHREhLUU9NTVBMTEpLSElDREFFRElHQ0JHRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQkVHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFNaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PSkpLR0dLT1NTTlBPTk5OTkdLRmBFRF9MRWZkRU5bSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUtNTExPUlVST09JTE1HSExQW1lPUFBOT09PSUpRf1FJfFlZcXRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYWFdYGFnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFWTEtOSUtSWFdRTU9PTVFUTk9RT0tLTkdNT1JbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUlmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgF9yZn1pbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15eHJuTkpTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5fm5xcGt7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNNTUlUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ptfnhrfHBcXl5iW15iZGRnZWVlYlpjY2lra3JzcnZnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NSlRTVFFWVk5OTE1PUEpIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQS0pRUUtRTUtLUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NSUFJUVVZTWlFOU1JXVlRZVlRaVlRSVVRUVFdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYU9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NT1NWT1hSVFVVT05NUVNWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFVTUllXVVpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVhYW15dW1tWUU5VVlVbXFdSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVdRTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZXV1RWWlhcXVtbXVZTTVRVVVxcVlJUVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFiX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hcWF5dWVpdVFVOVVZXXltYUlVVWVlZVVdaXFZUV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUE9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlRV1JZWFlfW1pUVVZaWVpXWFpcVlVbXlxeYGFeZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFZXFZXWFtaW1lZWltYV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxZWFlgV1BWXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeVldbXFtcW1taXFlaX19gYGRiY2RkYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWFtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFppaGJmaWNlXmJiY2FgYF9dXFpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYWBeW2BhYmZjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFpmZ15haGhiaGhmY2BiYGNiX19fXF1bWltZWFhYVlpWXFtaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5ent7e3t7e3t7e3t7e3t7e3t7e3t7enp6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx6e3t7e3p7e3t6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1ryGiYmJiYqCRT4/Pz8/O5vDvr++vr3K1NLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMuodLMzMzMy9nl5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enp6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV+g4KCgoKCg4SEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2d3p4enp5fnp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHp5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl9fXx9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en19fH19eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6fXt8fXx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4fHp9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh6eXp6eHt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnJzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdHFycnFxbn+DbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCIiHBxcXB0moBucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXyihHBycI6efG5wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxdZ6jeHB4oJx9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKmRb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3Nzc3KTqqV8iqGdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h4eaGzqaepqpd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uKr6KhtamrpH97enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZmklqGxn5imlX2Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJuMn7ChoKKegICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXm5CXsKCYlJyGfH5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/f4B+gKGspZeimpyZoqGIgH5+f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoSEiJCisqagoZmdnaanrKmhm5KHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2fra+kmpqgm52cnZ2gpKKck4eDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4mVmJaVmJ+bnZ6dmpmXj4iGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGFjZSTlpmcnZyVj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODh4+VjZSYkIaDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAhpmIjIaCgoKBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/gomOgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDgoKBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKCgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4KCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19gIOEg4OEg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5ORkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg4SEhISEhISEhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISEhIWGhoaFhYWGhoeHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/gImFhoiIiIeHhoaIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt7goaHiYqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt7i4yIi4qLiomIiImJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDgoSHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX2Bl5CIjI6Hh4WGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqEmpOWioODgYKDhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gIODg4ODgoKAfX1/gICBf31+fn18fX17enqInY2DgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSBg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn59fn+AgIGAfn19fX1+fXx6e3uKhYKAf39/f35/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9+fn+AgH+AgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enuDhIN+gH9+fn1/f35/gH9+f3+Af4CAf359fn9/fn18fn+Afn5+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enp6eX6Wk4N/gH9/fn9/foCAf35/f4B/goB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6enp5eYKLhICBgYGAgIB/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19fHp6eXl5eoCCgoKFg4GCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl4fYKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl5gIODf4OMhIOEhISXl4ODhIF9foGBgoGBgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJaDg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH6Bg4GCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWFhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX19f4B/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4OCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH18fn5+f35+fX19fH+BgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf3+AfX9+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH5/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4qHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYKBgoF/gIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fXyKhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fX2Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99fn5/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e31+fXx8e3x9e3t7fHt8fHx9fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGBgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB9f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/goCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en15e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35/fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn9/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B+f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKAgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fHx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoODg4SBhIOAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYSFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKChH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFhIaIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODh4SEhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iFhIWFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fH9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaDhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fHx9f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8gH58fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIaEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoSChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgXt7fn18fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4KCfYGBf36DgX5/f4B8f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18e3l6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWGh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYF8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0E9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1dXU0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU9IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ29zc3Nzc3Nzd3Nvb29za09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enqZeAgoKCgoKCgoGBgYGAj9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIhnQERERERERENDQ0RDP1zT09LS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA4PDo9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eKakZJSUlJSUlJSEhISENg0tPS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NkHNRVFRUVFRUVFRUVFVRatLT0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz8/NysrKysrKysvLysvMzMzT1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0dTPz87R0s7P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfW1tbW1tbW1tXV1dXV1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz8/TuJ7P0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PVspeZubqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqu1JyjqLLRkn1+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeasdXDhpq11dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbHU1qOYtNTTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/UpJmx1NWimbTU1bCiqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1KSZstXVopm11NSjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWkmrPV1aKattTNnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2OTk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpJqz1dajmrbXw5+g0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qObsdbXopu02rKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPT1bGDxta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cPU0tLQw9XR0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz8+PkFFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw7OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo5Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urm6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqKmqp6Wko6KioqOioKKioaGhoKChoaKjpKOjpaWmqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKalpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT43NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKCgoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampqanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWnp6amop6cn6Gfl5GQkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnZybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2Njg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSj46Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bmJWVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblJmqnJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGioqOkpKSkoqGhnpuamZqtqp6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgorCnoaKioqCenJubm5queXqbm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKSlraefoKCenJmZmpmmk0uBnZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+jonmqpKCgnpuampudqFpJhJ+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KkpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enqhtb6uin5yampycrIJLT4efnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJqkiFSEqJuamZucnqpkVFGIoJ2dnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ucmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZoJNiYpudmJudm6KWZl1Rh6GdnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZyZZWN9nJibnZykh2dcUYKinZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmapGhnZoiXnJyenHlmWlSDop6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmJ9uZWJshp2dn5BvY1ZXh6GfoJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfeXNyXniZnKGOYVlTWo6dm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM5Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWkpuflHmaqKGqlHxiUmCQko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjqCfjn1iiamYmm6Dh2twiIeCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDf4yojXhpUnCdj4xWbXl7gn5/gpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6QoHpPQ0l2lIODSVdvc3eCe4aOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIGAoJRTNDQ7eYV1ckM4TmtvgIeKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRj6FuRmRVP3p6Z2RMPDlNbnWNiomQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqSYUXSwkUh7h3htUml/WVdxiJCMmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamshF+/2KxGkqOakF1rgnteXoOioaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeopm96vcCqmsyonrOaSFaEcFJ4n6mnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSop5qdpKWjoqJygZmujsnOsp6wsm5TvqBUbJSjoqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq6mppygjX2Fe4bQvZiXqJxyUpqsZ2OOo52goJ6doKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqaKgoqiqrrGyrqukqZiIe2qdvcOrrp6JdmRweHp2h6Okp6OhnaCimZWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3trSztrKwsqeJdV5Olp+Qj42Ae3Nwc3F4fH6Fkp2hpKOipJudoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsra7vr/Av8W/tauTcGZYR3eAc3V6cW5paGJiaWlvdnd4fYONmKOorKakmaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbrI0tnc1ce6rZ+QeFxbT0Vea2VqcGhkYmdZV11ZXmZubm1tbG6BqMjGu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8TF2eLfz72wqJyNeGJVV01FXmxhY2plYWJpXVVcV1laXmNhXGOAqcXAvbipr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvMfHztDEq417b1xTVFZLQF5sZWZuZWJeZmFVWFpYVldXYoOltru5q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/EwsbJycCkiFpMSEpOSD5aYGJscWhhX2VcWFVTVFFWgLbDr6yqqqqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjHxsTEw7izwbqgd0xKUUk9TVRiamluY19fWlxVU1p/mq23tKuupaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpmcnhzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW9u76RZVZLQko9XlZYa2dbWllYVnCQsLGruLWzrKmjoa2prKetoKy1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIyL/GxragbEtZQVJye4BaUlBTa5++wLq9u7y6vKytpqm7urm3wLO1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXmRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXEycCqjXhvjJmdU09xn8LSx8TBxMfBvL60sbCwwr6+wcbAv7i2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bGlmdW90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwcDCzrxzaoWZl1qRy8vNz8W2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWZja2Ria21vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMLBmYCOmYh/0svEyNHBr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C7v8C8u8S9usDEv729tr7IpJRmj83Ev8DJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dqZWpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y26v7vDtbrHt7a5u7y4ubW6xMmmQovJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVsaFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R4qcy9x7e5uK22tLe5s7WyusXKmkaAyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNeudIG7yM/CwLiutbW7vbe5sb7Dx45Me83Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjaGJcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nSmXF0rtHRzMrEtbq/xMi+vrS+wMB7WXPLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0bGxuX2NfYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYZydKbMzMvNysbCw8vOwby4vLqxcmlmu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1tfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDwKV5dnmcxMbLyMHDwMDJysG/u7mxoYF4ca7IxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7W4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wL2rfW5obm1ygZWYc3h9mL2/xsC5wLy+xcS9vbixr5yVg4icysLDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGxt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGBaU1BBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnaBs722tcKlh2laXmBNUltbbnR3gqG4uMK6s7u3u72/uru7rqOenY6Zf7/Ew768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3FhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeFeIqgr7WdamZnVllgSUlNUFRsd4emsLe+ubK1sry5vLa5vrWVoKudqHSuycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WblY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx2jKGYYFRDWFVHYWpWT0VKYY6hrK+2urW0sqy8ubi1uMG9i5qzpqp0psvCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC2xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT9KQ0FKSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCCeYiQb09KP2RZQk53gJRqTkFcgrC1s7WytK+su7q4trm/xnaErKCcZam/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cndzbXVqbF1ca1VeXFBOSERHTUJHTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEfFhGQU+HWUpKWHeNgWNBU6O5s7SysLGtsLm4tru3u7yQorGrpHOssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0bmVVYWRXXVJPTUlASVNFTkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlGhNP1J4cVBJSUtnnIBaRVOvu7Gss6+urK22trK0ta6ppp6am52fpqieoKipn6GnlpuWl46dk4+Qlo2Xm6SooKCioqGlpZyjo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJaVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bW5dUWlVUE9HUE1NQ1BSQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpb1oRFKdglFXSUpgSlWNYWRjga61qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpaMl5GNkJeTmJ2jqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5se2RpVlJkTkpIR09TTktOSDxFQDwyQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKrGv8qgUEFznXZPbUpLY2Z0c2BbYHGQsa+us7Wqpqyso5uZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkpOal5ugpKqeoaGepqerop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqumq6qgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXpgYlNVYUhJSktTVEpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykxsaMV1NKZaRaZX1vclxRa2NbZWBea4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKaknqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpeZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJsZlxTWlpNUUtPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF2dXBjdnZYWGNgY2haWVdnra6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitramsqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2anh1Xm1bUmFJUlVIRlVXSkNNRz1LSThFPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKOAb4JwYGNYTFtSWk1MUFhSSE1NR5isqqmloJ+akpGUmJiWlpaMiIuOlZ2dnZyel56Zpp+gqKWxqqeuo6uutrC1srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWluXFhcQ1dOSkdNSENGTj0+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco56dimJXXmVgV01RRz0/QENDPz5CUXipramqpp+en6KjnZ6dmp2blJOVlJ6emJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDJv7C5ub25wr64tLvGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUdFPEM+Rjw+OTZOfqqzp6OjoqCepaumnpeclJGanpmVjIqGiIZ4bYigpKKrrLS8tsO9vrO7wcPCxcC/wsbFxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDysnDwce/urS6u7W7t7C2sqq6sq68uL+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQ0U3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXT0U+SVp8b2JCPVyOrqygmZubnp6Zl5eXko2Pl5eUj42QjIKDgndycW1wj6atrrS5xbvNx8u+wczNzczIyNDMzMzHysXGzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM/AydHNx8bIxsK8xMG+v7+2vrOtv8DDw8fEx8Svv7myuL3EwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2deWlpET01ERVBJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnZVqZl1USURBP0uGnqWZhKCyraOenJ+amJeUkpSWkZCPjIeEhIiGg4CBgYB5cXJvbHmktrq5vsvB09HTyM3O0dPR0tDQ0dHNzs/Qxc3U1djR183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5GQElRQz5CPToyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcYlRMSkRDP0NSr9G9sq+mnJycoKShnZqUk5WUiX14cWtlYmhycHJ7hYqAdXBucXNwhbPDvsXR0NfW1dLWzdTW1tTT0dLT1NLP0sPQ09bY1dXSy8rO0cvGzdLK0tXW2dbY09bYzdLKz9HMz9HM09DAycjLxMzNzM/PxcfItsDLwNLNzNDGysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJjXVJcSktHQUVJSj47QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVpJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fX19eX19dYWx1c3Bwb2xxcXWSxMjH1NbX19bT1tDV1NnU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDY19jR2NLX2dTWzM/Pyc3Sy87RwMbEycfPztHR0sjMzcDLzcbUz8zPyMTLx8fIzMvU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1iY2ltX1ZRYEpKQ0VDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6xmQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J2d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dXNz9XV0cXR1MrQ1NXWztPR2NfX18vIzsTJz8zKzMDJwcnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits767sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtKRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufo6efuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXmBfXlxibXJvb3N0dXZ5pL/M1dHW09PY1s7O08vOzsXOytLSz8fOzc3Uy87SzcvX1tDM0dTLy9DS08rO0dXS1dXKwMrBxs3CycrDzcTGycvLz8rOzdDO1MzGydDNycfLxcfCxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO5s7K+sbvDxLaqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVBRQjtEPzs2ODo4Ojs1Nz09QDs6PD05PD05PT06Pjo8Nzs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLe2ViYmJgXV5hY2JgX2BgYWFfX11bXWdycnByc3Btcnmlx9POzNDP09TJxMjIxca/w8XPzsfFx83K0cjLzs3G0dLQzszUysfKzs/Hx8/Sy9DPxbrEv8bKvcPIys7Fw8fAx83IxMzKzM/IxMTQycbCxsnFv8HHzMvMz8LLzMnHy9DFxce7x8PJycLPwb28v7DByce6vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c2BbXl1eYF5gY2RjX11dXl9gYF9bWlxgbHJxbm9rbG9vfbnRy8LCz8vNxLq/w7q7urm+yMbCw8DDyMrJyMrIwcXMxsjKzcnEwcrJwcHL0MXLyL+5wbzGx77Axs/LxMDDu8nHybzJx8XKwb7Cy8bFxL7Gvb3Bw8XMxca8wMnDxcfSxMHJv8rKxsjG0cPDxsOuxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0JHRUxERlNANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCFhX91eHVycF9bW11gYGJkZGRlZGBcXF5dXl5gW1laXGJvcm5raWtwb3OPyLuYwMzAxsGwtrmxsbOxsMG7u7y6uMHBwcS+vbm9v7nEysXGwr3GwLe7w8m/wcm7tru6xsO/vMLOw8a+vrXBvcO7vce8w7q0vcbEwsO3wLa2vr+7zMO9trrIu7++y8PBxsPGycfJxtDGwszHssfJw87NwcXDv72yt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FGQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183KzsXJxcfBusW9rK6mYGN1gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZuOn8TDusC4rbCwpqmtq6W3s7W0s7O0u7a9srewtK6yu8K8wcS8v7q0srq+wLjIuLS8tsHCvbi9x8HEu7WvsrW6v7TFuLu1rLm9vsC9sbu2sLe6s8a8t6+7v7W3tcW8v8PGwMTFxsfMxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4mOhoiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXV9scG5pZmptbnN7ir+/uLi0r6qrpp2hqKadqaqxraqsqbSttrCzqa6nrLO7urbDubq5sKu0ubu0wrmvwLG+vLu2vMi5w7etqqiwssC2uL2wsaixs7W7vKyutqautq67srGqubCuu668uLzAwL66w7/Gw8XAvMbCyMu4xcfFv8fEw7rExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxLTUpFQUNAR0E7Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMG6s7W1w66qsJJbaX6SiI6Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2JjZGJgX15aW1paXVpaWlpcZW5vaGZnaWtucoStubC1raSjpaWZn6OfmJqkqq2kqKKrqqyrsKOmn6qttbaxvbivt6+orri0tLy4s7ywuLm2srzBssGvpqmjq7GztKi9qquoq62utbSmqK2hpK+psqaoqK6lqLessbO3urq7sry+vr/Fv7XCwcfIt7/AxbfEw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwsu+u8m2vcO+usq3wcPBtLa8trGvtbytqauSY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZkZmVoa29yhamlq6Ocmp+jk5ujmZaPoKGoo6OfpaWnpq6gnZukpqyysLe3p7CsqKq0q7S6sba2rra6s7C7urG3paCkoKexqKypuqqlpqeop7OtoKinn5ykpqyfn6ekoKGxra2ssrWztLG1vba7wcCyu77DwbK5ucKzwL3Atbi8vb68wsfEw8S/wMSghHhxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrAur21oJ6UnaGmurars7O7s8TPycvCxri3x8DMv7jKt7vFuLPFuLO/wKy1vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFtdX2RjY2ZnZ2drbW6Hnaidk5OXnpSZoJaUi5ygoaacn5+jpaOnnpuinJ+rsK2xtaSpqqqsrKW0uK23sKyzta+ztq+xqp+en6SisqWmqrmtoqamoKitq5mgoJ6ZnZ+lmpqjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qss7O5s720t7GxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astbfFz8jIwMa7u8PDz765x7i4v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpdYmRkZmZmaGlrcoynmpCRkZiUmJ6TlI6aoKCnnpudpaaipZufoZqZr66ur7KhpaOuq6iitbCysqypsLOou7OntqGjn5yjoq6joqq2q6Ojpp6mpqOWmZ2XmZudoJqXnZydnK2hrKijpKatq7O0qrWwsquzubSvqrCysrO3s66pra6yt7C6trq9wLizsZSGeXVmX2ZfW1pWU1pVS1tRTEpFSEtJQz0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHDtba9rbS5wczIxr/FtsHAx862wMO9s7m5sr+2sbm7rbK0r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJmQkI2Rk5SclJeSlZ6coJyWoaGpo56eqJyamqunr7CrnKOkuKqhoK+ot6unp66xpLiwpLego5yZmaumoZqtubCjoaScoqCfk5ShlJaWm5mYlpeclZ+pnqqkop2jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6xtLC8tLq4r6OVgnp2ZV9hV1lYU1JUS01eTFBMR0hMS0U9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiYmNmaYCSjpGJjpCRl5WZk5SZnpuelaCfpqWjpqefnJ+moKuvpqCio7eooaGiqbOipailsKaxrqy1n6GdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoaKapKWlq6SlsKelo6usraaprrCvq6iqqrOmpquvtLGuvLaxsK+gk3t4c2ViXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy3u7zBxbqyubXEycnAw8bFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZWUlRSVWBhX2BhX2BgYmRpfo6Oho2LkI6QmZGTlaKYn5acoKWhrKWkpKOko52rq6Wan6WxqqGhnqWqnqiin66sqqmuraKiopWYopuckKupsJyfop+fl5iTiZ6RjZKTlpCYmJOcoaOcpKCilaCipKWbo6uloqOrpKutpa6yqqalpqa0pqqorbO1tLm6sKusnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdKRDg7Oz48OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tsCvxcjMusHJzMi1ybyxvcPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJSTlFZXVxdXV5eX19iZG2Ji3+NgouNi5aQkZCbmqGbm6CoqauorKeppqSZpa+klZmlr6mgnJmboJ+umpyrs6Cmpp+ipKGUlJuWlpKpqq2bnZ+hoZuUkIyZjoyRjJKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKajpKOsramoq6+0t7K9tbOrr5iFdXRpW1hZUlVSRlhMUVtYTVVPUUxRUklOSkI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Hs8S6t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlaWlpdXFxdX2Bke4h9hnqIjIaPipSPlZegn5qfq6mmr6yosKWpmp+toZWWpKinnZiQj5qer5eZp6qZoJ2UpaGfkpGSkZOVqKulmpmZnp6XjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2ooKOstKqup7C0sLm1wLGusauQfnJ0Y1ZUVk5SSkdWUFJSTExYTktNT1JITktBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrK2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnJqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJOTk5SV1haWVlYXFxdYWp8dntxhImDjYaViJKSlpqYnaiboKumpqyeqJmgppyTj5+jmpeXhoWSm6SQlaOdlpaWiKKbm5SMjoqQmqWnnJWVl5uRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jt6ypraSzsqa1u7WrrLGjinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa3usPKzMazrLm9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHZxam5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYWl1hbm5ybICEf4V9j4KNiJKQkp2hjpqdo6KkmKWWopyVjYiZmoxzjYN+jpeWhpKakJSOjnuZj52NgomAipigo56Qk5iWhY6DlH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+qmYN4dGRWTVJQUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkJaXkpB+eH9mV1ZfZ2ZpZ2hvY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOVFNTVFVVV1lbXWlobWh7gXlxTVZwjoGVhYybl4qTkZ+YnZWUlpSPloqAlIlfO1ZvfIyUioCMkoyQhoZzi4WXgXmBe4aUnZWDlo6RkIOGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+YiIiWnpqhoJenrqmtqamelq2zoqaumaysmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqmgpqmno6qwqKe0wbmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamIeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0lGSE5RUU1PUlRWWFpga2pkdn5xTkE/f5WRkHyHlIyEio2bjpaViZKIhpWHeYl/YEpRbniLkoR+hI2LhYB/bX9/lHh2dniEjZpwUY2IioZ8fniUdmh3hoh+ioiVi46Rk5eMhIqIlYSbjYOEkpuWnp2UpKKoqaWknpuwqqGkpJKmqpaiqpyhpqiJdm5nXlxIUVFTTUlVTVJJTEtPSUhGSk5MTVRLUVFPR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Guoaeopaeor6yqtry2uLezwbu2qLnIuLaoqLW2qrK8p56VjX+JlKmWlYt/joOCfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWVhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtFRENJTk9oWU9RU1RVWm6BcHN6Z2ZaU4+JlIdzfoaAfIWMk4KSmYuPe4aPgHaAeHNvdXF0jo6Ben6Kq4V6e2l2e45wcm14gYuNknh7gHuAd3NzknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6goZ2gqaWenZiNp6SToJ+Wnp+kgXNpYl1dSldQUkdLWFJPSk1MUkpKSkxQSExRTFJUTUZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/doZ3fHZvb2pZS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYJ6dmR0i5WYjY57ZnmAdnh/iJB8g5iSgHGHj3x3e29rfq19dJCLf3qGkoF9f3RmdnyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lb3BqhqWqwH5zeGJ7d257eIePeXuLhm9tjJJ5dHlqaoCCcZaRjIF9lYBKk5luaHd+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWHe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Wtr6Ktqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVhbX6aHYZlncnhkfW9sf3mKiHWBh4V0bJqSdHR8amqdjk15hZOJhI5nMXaHc2x+foN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42PfHR+fXFxbnVtgn93eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS8qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSIjIZ6cHJwb29kcWdfVEZJQz48Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEFJUUlir7KfcHp2a3xscYKBhIB6hIWFeXKglXR4gHN1lIc1cZ2onY6hoYSjhXZwh3yHfHSMro2JgWhnYmpucm1wg3VpcFh1cI6bkXZtf3t9bXJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5cWllhX1JOW1pYV0xISkZJRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJWRnaSnnq+VpbSprrCuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3V4eG13bndkal5JUEc9Pzc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0hMTU5QTDdDTVFTREuFdH97e3V+bHaHh3t8hIN+i311opp6foaBhJmEmpxhhqqfnYqDkI56d4l+iYiOc4uXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYR6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWZnYFtbXlNcZ15XUFRYW1VHSkpFS0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJicnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XI14in+TjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2Kg46MeIOAc6CEin19gX9wgX56aHZsUlhMQEUyMTEzNzY2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RdWVJLaIKHeol5e3F8j4t5fIiGfpaHdqGaiIePkpSlja2pSIaur66LgYCUi4KLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+IhIt5lZybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5bY2RYZ2VcVFBQVllQRExLRk9JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KWoJ6soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzMzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTU1QV2BZb1lcXmmMkoaUgIOBhJGSfoWIkYGalYKhoZiVm5qmrZOZu7Gnu8fDqIuMoaWOlImBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bnZ1Zn+UjoeIiYeIh6GropaJjpd/eoGIeXlwZ2t4f3x/dWxlXltbXmpeYmdgWk9MTldSUUlQSkROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N6f4x/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzk7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUElJTExLTlZgY39mZ210m5mOmZKSio2OmYiSj52LoKCSo6qlpKyTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJaGkomNj5aktKmbjJSig4eSg31/a2pqfIGCg3VjXmRgW2dsXWxsXldLSE5SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpGHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExMTU5SXm6KfHOBfJ6cm6eloZmglqKUnJ6onqirn6isqaq2l6u/q7bIyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopOXl4GUnnt3lZKrsomNl598lJ2bjZKVmKOhprWvnJCYqIeWj42AiGxzc32BfnNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0NCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioSShYOHiYGAh3ZeYlA0NjAtMS8sLjAvLy8uLjAwMTU+QUFNUVJTUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlthY93lImhpaizvLekrqurpqi0q7C2srGtu7Gzvpyzw6u6ycq3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKwkqKdop2Qo6Grr6yytaKUpKqImYiSiZV5en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW9YeoV2gZOFiIKbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaDhYmHiIeHcW5hQEU2NDwzLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hFPD4+RkhDRUE3Ozw1Qzs9RktJR0hRT1BXgZKfhK2isamxwMbCqrPFtquzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqa62u7K6rLC1orGssbW7t7WutKCnqKOnmqmvrLK5t7imm7apjKSOkZOfhniBhXdbY2VXZ2NiZGBhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJjV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+HgIaIhYqHkXp4bl1WQEVNPDY6NTZBQjc2NC8vNkNIQlFcUFFVV1VcVlBfVUlMS0E/PkdLRkZEOz5AN0Q3P0JKSkVGVlNQXo+kraOxs8G1t8HMyLW7xL2zs8C2uMG1v6+3dLGzpbrEpLDGubGzsbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7q3vre6t7msrLClsKmtvbC8usHBq5i5p5StjpeXqoh+g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joSAjYRuenN4h2K5oZmjiZSUlpKUk42PlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGLhJV9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWFhaZ1lUYGBMU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2Trri0urjIv7m9ycy7vMG7t7W7ura9tLqxxmB1sqSxmp6rvamlqKuqpKKytaCrqJ+Vlp+ZoK6lp6aln6SToqextKeysr22wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euamhq46kqLWIgYFzYGNjX1hjYGpnUlhgVlJVSUVFTktAPkdEPUpBPUJAPUY+O0hBNzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+MhI9zbHJyc4fVwLWZoI2VmJmRjpeSlpaOhod9hoONlop+g3+DeHuLg4d8i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tJRkhISEhCSTpEP0hLVFRWXFpbkrnAuL22xb+6uMnKura5tbe5sre1s662tphkdaicrXBeoqycmKCim6SeqqWUn6CQk46WmZion6agnpqZg6SerKWqsK24sL251NHP1tDKzNLMz87Kxr++wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mH97bV5hXVpfYlpkY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzM3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkZCUbmxvdHWHs6ugoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2ppaGBmaWlsWm1zlq2kvIiGZ1tvaF1aWlRIS05QSktQS1NRSExBSkZKT19eYmdpYZe3x7C5srq9tbHExrWvuLGwu6uysaert6uMtqedmqeaTpqdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloeemqebrK+osKi0tNTV1dbTy9DU1c3Tz83FwsnQvsnJysnRx8zNwtDRt6/DvMS5pbW6wqKDcGVeXl9ZYVhaZlpRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmhxb3l5g6CpnqaXjJqbl4uNlZGajn2Ji4SNioqLkIh8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bnhzbGmBcG1jam1weGl3fH7Lv8Hfp21jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKawtaqsvL+wqrSmpLimq66gq7SjjrGumpeYjJGTkYSOm4GNppGciYOLhIqJhIuElJWYl5ObkJyYmZqfnquspaiirK3P0tXSzszT1NTQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t86ee3BnX2ReWGFTXlpQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd299fn+hnp6hjIyYk5OLjJKPloR5hY+QjYqJiJGGf4J7cn6AgYd6hHWFk5CIf292cmtzfXt3e3OBeHJqgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNZZGpUWFxdYGReY3d6fouBmKmjpaGfoKilqrC4qqWzo6GtoqOtoaexn4immpOSkYmRjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2Umo6Gk5Gel6ewoaGhpaSpyM3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjHRwZWJhWVVaVFxQS0dJSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnJSdlIWLlYmPioiNh45/eIOTmIqMiIiLiX6DeHN7fYOHd396hpGVf4Nud3BtdX92eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqZG53W15maGtuaW6Ag4iQi5ydoJ2Ql5ieo6OlsaOks5+hpZ2gqKCjsZyFnpKSkpCKjouGg4+EfpybjI2ChIV6lH+CqZWjjJGKl5KLfpiLmpKrs5ibnKicp73Dxrm2xs7S0dLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvLtXp4cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxc4WNfJeQnYt/h5KDiYaFiYGHfHiFlpaIjoKHhYZ6hHlxe3uDhnV6hY6NnHmLcHxvb3p/cXuBcYOHgG6OenR3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6i4aOk5GblZ+Vh4yTm6CanqmfoayboZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bJl6hJmGiJOMjZSMhnyciZSPrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2NfY19Xb19PZ29XQ29rR1sjUy5Z7fWpqXFtRVFRfSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pzo4N0VCNzU1NDc5LzU2NjQzNTU0MjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSal5tZGJma3aAiHGRj5qAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5b3t7hoF0epKejqB2jnWCdHWBfXOAhG+BkIJvkoR1fIGFenaGe4i3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkYSJj5aZl5alnJiflp6TkpejnZmrlZCQiYyRgoyFiIiBhpCRnpuZiIaMgYWXeoiJn5eQiI2Ki4J9oYqRi7yhmJSYmZyppqaun6i2v8DAucfKzs7FzcrR1tXV2dXX29TW2drb19va2tjO28aIfXtpa2diVVhWVk5MRU5DOz09PDg6PD44PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsiYySd3Z6int+gH5/fIR6fYKRiYSFeoSHenV9dG18fYZ+dH+TnpGeg5F8hn54j354iopugpqAdJmGfoGJhXx9kHqPqY6Pw6G9jJyjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYuQkpSOnZqSlJCWjYyVn5yUoJSRjY2Pi36Qjo6LhImSlpqen4mMlJKdkYKLgKaZiISNgoWEgKWHiou4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bWtnWWJcVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjYwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlheVVhmbW1taYGOinFzeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFnKKbnZSSgIyIf5iHgJyRboeohXqgi3yRjYOIhJt9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKTi5SUk46Lj4qHlpucj5SWkIqSk4aAi4iSjYqKnZaZoqKGk52WoIqJiI2ckIOIjn+Dh4WkhoyQs5idkpWXoaKfmZKcnaiyuaymvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2loX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MTY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2N6bWF+kYNvbXeLeHl/eoF8hXt7doWEf3NwhYF6dXZ2dISDhX5/kqakn6ailoqdkJSXi4qol3OKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqbCgkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3Ilo+Gh4iPko2NkpOJhYqJhZaZm4+PlJOGlJeDf4+LmYiNkKqWl6OjiJmflpqIjoaWl4qEjo2Bf4iPpImNk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NPazoR1gmtmYGBfUEtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go59fG19iHh6fnqBgYJ+dnaAgntsb4t+eXx3eHyEh4t+i6O0qKSrs6GWp6ClpJaVr6KDkLiVkrOZjaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuauaoqWtmZGbnLKdhoWoop2YhYiIjpWMi5OPh4GGh4iTmJSMipOThpSYhoSRkJx0kZmylZakoYicmpOPipCKl5qJi5aNhn2MmZ6KkI+cmpmTmZiglaGdlZ+bobGuo6S3vrPFx8S9w8O/xs7KydKnz83T0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01bXFlJaGE7SISKentthYZ5fIR4gIWBfXB4fH18b3OMen2Ce3iFi4mGg5KovK2ps72vpa6zs6mjorCsipq1naK4pZWtpJeprbempKOfmamYqqSvsaqamJuUlZGYoJeZu7utyqFptreqsJWYnqKrkpe9pF6psoKJioyUh5F8j459g4aOkJSUiIeSlouPlY2LjZaZk52atJaVq56LnJSSjZCSi5ibipKdj4uJlaChjZWNl5mdk5yZnpWioJScnaWvqKGls7irwsjEtru9vMXIyMLQocbJzc3E19bQy9Ojc31rX1xVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSUCLiX+AcoaHfIGJdYKKg35tfX18fnB3h3eNgYd7jY+Mhoyaq8PAsL3Gu7O0wby0rKuzt4yosq2tvaubuqSorbm3qqamoqKko6qvsrGqnZyjmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ihpytva+Ci4uKkIOOg5GOeYGHkI2OnIiIj5eNipSXlJCal52nmrCakaudjpqPko6VkI+Vl46RoJCIlJujrJWWj5ScnpSgnpuYoKGUmp6np6SipLCzpsHGw7Cwu7bFxMO/zafHw8fDvNbQzMTKinZ1ZF9cYl1PS0NMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJOP0dAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnWl1ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lXqSlJSYkZOVqLTHycDCzMHDuse8uq+rubuXsra6s8CupcCkq7C8vKquq6Ojnqisr7WwqpugqpyinJafsLSni6K6urXBu6uonLKkpKiUhI6pxMOkgouOh4iEhpWUjHmDjJGPkqGMjJSRj4iXoJeSmZWXpqCunIyqnI6Wj5KRlZWOkJWRj6GThpefoLKflJuUoKGZpKCaoJyglJiep6Smp6SvraW/xMKuqbe1ycO+ts+yxb7DvLPRycfBtXd7b19aXmxUTklETUtLSUBBPUJEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNl4mLiJKPhol5hpOQgXKAe41/d4aBgpB6jaGWqJqamLu+ycjKwtLJysLNvMGzrby/p7q/vrzEuKzBqayzu72qsKqkpaOsrrSttrWgoK6fpaKYo7S8qZuovMGjtbavq5KvrKqrloaaqqelkYKMk6SVioB1iZJ5hY2RkJ6gko6Ui4+MlKOZlpuUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAua7Ds7u9wbmtwsLCv5lwe2NbWF5cTU1OSkdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZFeekJ2Nl46ekomKf4ifkoR4hX+Vfn+QiIqQgJWgma6no5jDvsnEyMbSzc7Ny7zCt7C6vbS9y7vDwba3vK2zwLm8rq+ooamotq2uqbK3mp6soqehnau3t6mlr77Esb25s6eps7OtrpaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZiTk46TlZOlnpOdmZOhoqGcmJ+Yi4yPj56IWpCWl5KWpZllmKOes6WWoparraunnJ+nl5iWmJWhpKmnn7asqbq8w7WmtLXLwbiqtqyzu7iuqLi6vLeEbnBcWlZXUEdLU01LP0FIRURIRkY4NUZNOz43PkFKLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJlY0xGpZSclaGXqJaMkIOHpZKIgYeCm4SDlZCRlI6aop+vvq6hx77GxcjHzs7O0sq+u7axuru8v8+1xL23ubeysrazt7Osppyrq7mrqaivsJejrqSnpKW0wbCrrLO+wrnAubOnuLS3s6+VpK2wr6WLk5WhjXPBmX2WmYSOlpmLsZWampWSkpmZpqOVoJuWmqmcm6GgmYqMj5adYEqWnJqVmaWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnoZm0qaqzvby7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQUk1FUVFQUTtIS0lGR0FDPTlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1NzYlZGSKuXmZ+hqK6YkJeHiqeWjoiThaCIhJyXj56gm6Oltcm0qca8w8TIy8nIzM7Hvrqzrrm5wcHNtci7wbm1urGvr7K0p6ScqrS1q6mmrayZpK6lpaisusCoq7a2v8HAv7iyssOwt72ro661rbqliJuXppt2vp+EmJyOkpiai66WoZybl5San6GpnqigmpuqmaGnnpeQjZGdg211k6KalZ2jn5CusqOrlamqmKuvpaWhpaqTkpmciZWcop6Wsaapq7q3vbOyrr65tqCjp6mlppycrKmpjWZoYmBTTE1HSE5KVUw9TUVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslZyhn7uumZSei5Oqm5GSk4mqjYahnoyjrJSkpLbHvbTBu8LCx8nFws7Iwr25sq+5tcDCyrbGscG8tburqa2ssKOjmaq0uqaqp6yqnaivp6Srqr68qK28tLi+xry2tbjAsL3As6m1tqu/pY+jl5Ghn7ueiZqgmZednY+2nqmcpaObnKGap6WzopuepZyoqp2YlY+Um4uWiYykoZScop+hta+lppOxq5qrrZ+fpaSqkZaVoISQnp+clqmkoaG0tLq1rai1srKenKOmmpeVmaqhnnhjX2FfTElGSE5RSU1ERkZCUUtIQURHQVZSREg8QUdRMTtBNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFp5eknp7DrJuXpJeZqJuVmpqPqpaVqKaVrayZoqq2xcK8v7jAwsDIxL/Nxru+ubKwuLS/w8i1v7C8t7q3p6Srq6yhoZurqsSipamspp6rr6yiqqi/uKatvrC3t8a2tLm4vrK/wba0srSvvaOWo5WSm5Otn5ChoaSio56QvqSpnamsnZ2gm6afvaKYo56iqaugnZaNlZ6TnoeOhI2TnqShnbWsppyWsqaZsKmgm6ufoY2alZ+EjqGam5KlpJqYq7G1saqlqq2snJigoZKOkJWon5RqZVxiXlBKSEtPTUhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRTg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqKbpJuexayhn6ydnK2fkqKelqWgpqmsl7axo6qztsXCvcC2v8G7ycK/ysi2uLW1sbS0t8LGt76xuLW6tqCnraqrnZ6fpaTBpaCprqCkqa2woqaovbWmsry3trXDsrO3ur6zxMC4uK60tLSjnaSUkZOgrJ+YoZ2oqKqimsKtqZ2srZubnpimoL2hnaSYq6urpqCZjZmfkp6Ijlh/lp6moaC4qqaUmLajnrKioZywmKCPmpSego+gl5aOoqOVkKWus6upoqKlpZWVnJmLj5GTpJ+JY2dcZWFNSktLT0ZFQUZLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTE+eoKGYnsOnpaKzoJyyp5Oqo5+jn6yprJ27samstbHIw8HDs8LDvsfEvcTKvbCwtq6xtbDAxbW6sbC6tq2aqbCpqZuepqGowq2brLGcqqKusaqkp723pre7va+3w62zs8K/ssezurertLatqqKmlZWUoquhn5+Zp6uvr6+7sqafqamZmZeToqS4oaGjkq6vq6SlnpKhnpSdjpCNlJ2ao5+ntKenjZi0nKOvm5+cr5GglJiUmoCSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NCQ0BJRzs7Rj44OU5NVV9SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2ZyQDg8SJZ3ZUE0n6Sfm5/CqKOqsaCjtKmVsqumoqSyrK2pu7KtsLS0xr/ExLXAxL7KxbbAycK1q7WpsbmswMW0uK6ttrqlmauyq6qYoaeXrbu1m6iwm62frrSyp6q6s6e5sriyuMCquLLCvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62ytbafnqikmZSUk6Ogt6OkpZWusbKlqaShnpqZmpWYqJ+emKKfr7Kip42Xr5ilq5ibn6aSnY+VmJqGlqCVjJCdnpSLqamqoqehmZ2WjI+ZkIGGlomVn3pmal1sa09RTk5UPUJBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKGlv6aorq6gqbWqnbivq6SqtLexsLi3sLe4t8W9w8e9vMTCx8G5wcbBuqq2pa27rcHDt7iqrbK8o5WtsK2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmqq6admJiqoaGgkZegsK6zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoJedpLSwm5+QlKaaoKmblqOgl5mLlpmUlpedlImSm5mUjqmpp6CjnJibk4ePmYt+jJeGj5psam1ibm5YUVFaVEFDRVVAOztIQDc6WFBkXlBXV0RZXl5OTFNPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbyhqq+qorG3qaW0squhrbW9r7O4vbu9t7bBw7/JxLnFw8DAucW+wbivtqirt7K8v7+0qq6yuJ+XrK2orpioqY6nu5+lrbOfq6KxsLOsqraztbytsLG1rLC1scC6xbarvK+xt6ysqaKxpZ6kqJ+jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaeyq7Gpo5ueqKSelKCZm6m2qZeakpKfmZ6hn5KtoJqZh5eYjJ2anZSLj5aXmpempqOgnpaWl5SBkJWFe4+Tg4yXZ21zaHBzX0dZZlZEQ05YRFo5SEI1Pl1RaFxOWl1HW15dT01SWGRLS0NdY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApJqfpKy2o6yopK6ttamus7imprC4xrawt7/Bwra0usW+zMW5w8G6wLrEuMG5srWsqrq4u7q+tauvsbeZmKirq6ucrquPq76eq6+xo6qfsa2yrq62sri2qq2usae1r7S6vMmyqrW0sbSvrqags5+aqKygpJWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGsqrWkrrC0r6OZna2nm5edmZmsuKKXk5GPmZyhmJiUraGfloKVmY6enZqWkYqUk56apaOjoZmXk5KWe4yRhXuNi4OLk2xueW91fGFGYGpaSUhaWz17SkdFNkFiVWlbTVxhSltcWlNTU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRLRZqWn6+osamspaOurrWpt7O3o6y0t8q6tLu7wL60s7fEwMzHvMS9t7/AwLjAvbK9rqi6ubi3wresrrK5lZenrqynpLKqlK+7pKyysqanorGzsLKxtbC3sqmuq7KmuK+1s8TFtqm1tauwramnorafn6axoKSUm5iUsJ6nm5+pjaminZuVl6WlpLanorCzq6exp62wtaykmaGsqJycnZuUqrmclY+PjJidopiRmKikoJiFk5eRnZyYl5eIlo+Xm6icpKGSlpKQlneEkYZ8hoKEjI1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dmW0xeYk1YWVdVWFVpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRESRmaStpKytq6ajsLKyqrewtZ+rtbrJuK7BvMO3s7G1wsPPxMDCvrS9wcC7v7y0xKiqubG2t8C8r6y0tJ2hp7GtpaaxpZ6ytayqsrGrqKi0uay0srWss6yqq6isqbmtsrDHv7ikubCpra2mp6ywpaSjrqOpnJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKqcoJmakqS0mY+JjoiRo6CWjpWfopaVhpCVlJ6bmZaVh5eSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFNkbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1RZaF5RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9rP0hJkJupqqGpr6Sno7O0sLS1sbCgq629zLquwbzHsbSttMLD0cTFv8GyvsPCvL+4vcWorbestLi8wLGssq6ho6euqqelsaOrsaquq7Gurqyrsrqnt7GyqbKpqqalo626rKqwwrm0rLmoqaitqaewpamkoq6qqKKenKKslaWdl56Yq52hp6ihrKairKy2sLGgqaKfqq2wrJ2epqepmqOXmJCgqJiGg4+Li5+gkIyOl56SkYiIkpahnZaYloaWk5OXpZydnYySkI2Kf3+IhH13gIeFh3V0col2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTVVWVVdRXGJfU09PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXUBORpWXrKehqbGcqKivtay4ta6ppKurvcm7sL64w6+wrLLExM7Ow7+/tMHExLrBtMnErK+3rrO6wL60rq6spqepsammqLKmtK2qsK2tsa+yrLO6pLizrKytp6ugo56wt6uqrbm2pLW1o6morKyqrKCopqexsaOmpaGhq5aqoZSboKWeo6Kqo6yinqaxtqysoqWjmqmrrqmdoaWkpJmfmZWPmJ2TgYKQiYWdoI2Lj42bkJONhY6ZpZuSkZuLk5GRlKOam5qLj4uLfIeBgoJ7dYGEgX51eIujh3hrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkJJSUSXka+koqmvmKmorbWqtrCqpKupqbzBwLi5tLy1prKvxMrL0b/Bu7jAwMK6wbrCxK6xtbK0vMG+s7GvraysqLeqpq2wq7iuqLGwrrGrtaq1tqe1t6uspKmqnKSes7OoqKSztJ+1raGpqKuoq6afq6uoubapqqmpoamfrZuRqaGdoKOipqKqnZumtK6npamipJelpqeqnKKjo5+ZmJ+Rjo+YjX6HjIeFnp6IhYuLkJCSjoWIlqOajo2akZKQjpKfl5mWjYuEf3SHgX9+eHWDgHp4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSYk9MVlRVUU9YW2JWSFBqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lY2vn6WqrJmqpK2usrSvqqWvqam7vrvBsbC5raK2r8nHyNHAv726vMO9u8PBv7+vsrOytr28wbGys6uzqaW1qKSss7K4r6KttbGvsbmquK6qr7erqp6qq6CjobWtqaGfr7KhtaqeqKeqo6qhoaytqL2vq66toaenn6uZj6+imKKgqKaep5uYqbCpop+soqGSoaKjp5iaqKWYmJidj4uHlIh8jYaEhaSWhoOCjIeQj5KFh5WhlomSnZGTkI2RnJSXj4qGhnh0gX99dHh6gXt0dHtqgoijdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDNI+OsJ6kpaqipaOsprSzsamksKequL7BvLCouaqnrrDJx8jRwr3Avrm/v73JvMK4sbC1srq8ucCztLytuayjtaanrLG2uLKmp7m1rbS8r7ulra22qq2cqa+kn6Wsq6icnaqypLSpmqqnqaSpnaOpqKm9q7Owrp2po6Cum5qyopakm6Wkn6WamaeqpZ6aqaGbkZugpJ2ZlqipkZmakpCLgo+FfY+Cf4iej4eAfoyIkpCRhYKUm5SGk6KNk5GLkZqSlYeKf4Byenh+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWh5XV5WQ1h7bVRhUFJZS0tNcHRdSVpbZ1pGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkq+Yn56ppKOhqqS3srGkqbGnrbnBvbWwpLmsqKiww8nJzMG3vb+1uMG6yLXDtbSztbK9ubq9tq65tr+torOmqquutbe0qZy6u6ixv7K6oK+0tqmsnq2xo5ylp6mjnZykr6avoZ+rqaeiqpyjqaCtu6eusa6hqqKjrp6erKaXn5qhopufmpmiqqKamqOjlZaTn6GWnJalrIufkY+RjIKKf3+PgHqalIyJfX+Mh5GQjYqGk5iRh5SjipGRh5CZkJOBiH15bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1ianBgb0JdeWtWXk5RUUtJTVNZVk1cXm1XRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT0jkZermJ+Xp6Ohn6ejt6+uoq+wqau5wrqzraC5r6uns7rHysi/t8G+r7S+t8S2wrKwurGywLa7vrequbi9qqS0pqiqr625sKiYuLyjrb60s6GuuLWnpqiws6CepKWooaSZnqyoqJ6gqq+noKaXoqigsLifo7GvoauhrKScpqapmpqbn6KVnJuZnammlpueqJCXkpidk5mWoamQmomNkId9h36CjXx7oYyNiHmEjYaLjo2GiZOajomVn4mQlYOMlo2RfYV8dHB8cXN0YHl4am9wcXBqf3NkemxoZWRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNXF9vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0tKmpusW3s66guK2urLC1xcfAtr/CubC0vbe/u76wrL6ws7+yvcK5qru6uKeotainq6+rs7ClmLu2pKu6ta6esbivqaWnr7KcoaSgpKShlpuvpqGfo6ivoaCik6Skorewoaaxq5+so6+XnKqlqJ+Ymp2jk5qbmZylqpqbm6SUlJeVnI6Tl6KooZCJio+GeoN9g4p5jpeKjYd6goiEiY2PhY+TmIyOlpmLjpZ/hpeMj3mBe3Bydm5vdF94d2VtbGxqaoRvZnJpa2ZoXmR0gWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFFFWVVZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJyqnKShoqC3qq6gu7ilrL3FtLGvo7WwrKyutcPDvLO/urexs7m4ure6r67As7S5sL/AuK29urWlorKpp6mxq62xoJm/taSntbWonrK8qailqbCsmaOnnKSllJihsaWZn6OoqZyin5OloKS4qKSnrqaepaGokp+ooqGhmZudn5Gam5afoaqbmpiglJCTlpmNlJOjp6SQiYmOhnmEeoSFfJ2NiYqHeoGEh4mKkoWWk5OLkJaUjY2UfIOXjot3fnxsdHJsbHNhd3VpaWpnZ2+GaGhpY2ZpaWBqY2poXGZ7Y2BTdFRcW1NMSkdJT1NAISpoXmpNRFdVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynaKkkI2kppqdnp2jtK2nqrq2p6zEwbexrKO2rqeurra/vryywbewrrK2tri2tq2qvbOusrG9v7euvLuxpJ+2qqWls6iqrZ2cwKunpa+yqay1u56oqauxpZieqZ2mpJGZpqyimJ6kqaGboZyWn52ntaawqq6hoZ2eoZSgpp+hoJqbmZuSmJyTpZ2soZeWnJSSjZWXi4+Ym6mfkYiJi4h4hXaBgoGdh4qCiX1/hYiHhpGElpSQjpCRkZGMknuDlY6Gc319Znhva2prZnVza2NnZGR2gWNlZmZmampja3NbX1pdbWRhTmlYWmBWSkdIS01TWD45X2xpSENVVF1bSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+LrKGYl6CWpLOxorK9tqGxxry6sbGktqyqrqi4u7q5rcCyrq6utq6yuLOprLmxr66ztrq2sLi9rKaetamfn6+jqa6cosCgsaOusK63rbWera6traKanaappZ+Vmqeln5mloqidmp+blJyerK+muqiuoqGam56ZnqSapJ2Xnpebk5ifkqiVqqeak5qakoyVmY2UlJqppo6NiomOe4F0gYGKmIWHfImJhYWKjIqShJSbk5KPkJCWjpB/gIyOgnCAfmZ5bWhraWZxcmtcaGNjdIFiZmdqbmxnampobl1sbHRwYVRjaWRmWklGTE1PWVFQVmFlgVVBV1NZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZuNjrCempOhmqmxr5+5v7WgtMK7vbqxpravqK2ktre2tqy8r6yqq7aqs7iuprO1sq6psLa2sbO1uqapn7WonJ2ooaismqe9mKyjrq+1taysn7Gtr6mim5yiq6iclJympJ2aqqKklpqfnJCbpKqqqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCJl5mAloqhkHmHlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFaF9lZm5tal1gYYqPhIRmTktEOUdUZ15KR1BQVVVMSFNhcHRmRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhZWwm5uToJuqraqjvcWvqbjCuL28rae2sKWro7aysbKwua2ppqy0pq+1o6m4traop6y2sq60rbOhqZ+zqp6go5ulppiruZSlpa+zt62upamtqqyloZ6coKemm5egpaWbm6emnZOfn5iQnqippLawpKOinZaYl5ejiKCOkpmGoIeTnKB/pH+lqp6SkpqSiIRyeI2OhYihdoiMaZeIZn1zeKBviIeDfo58f6GgoJmAfIeedIeOdZuKbIeBg2xoZWN6bHFhU4VtYmxpmHFYaXFwiFheaVtsbFuIcW56coVnhoRaXkdOP0dfTUVSVlZRUVJXVWdeTVdJUlJQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIqmloOcq5yZmJ2fqqqnqr/DrrG6vbfAvqqlt7CprKWytK6vsraqqaWwraW0s5yttba1pqeos7CtsqeunaqfsaefoqKZoaGarbOUo6Wltb2mrKerqqyopaGgmJ+mo5mZpaOkmJykqZaUo5yUk6OkpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmRhHyQkJHKcpe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmd6b3KP2H5Ta2O2sn+BcpV0mqGqkFdPV2JQVk5GVVtYUVBSjVxXW1FBXURRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMppKAp6qfl5ydpayyqLDCvbG1v7W3vsGqp7OsrKmnrrOpr7WzpqemtKWnuK+cs7K2q6Wkp7GurrCmqp2no7CioZ+dlpqenK2rk56in7S6oqqpoa2upaGdmpqhp5+Xm6egn5iep6eRnKealJ2hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWW+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmd8pKeCWl+Lq2mAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JUFdXL0lUU0pERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqyopZ6jpKqxt6y0vb+vtsSyt7rBpqmwq66oqa+uo7C6rqOkrbKjqLionrOzsKOloKqtr6yvpqefo6Gvm6KalpWWmpqspZaboZ+0s6KrnKKtraCdmpegoaicmJ2jn5yZoaakj52imZehn6qepqagmp+hlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUf2uBpnuChoiSlJJ3q2drsVyreo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3Fra2x8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI/snlYWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYizpqahr6mns6ypu7bCsLvCrbi2v6qsra2tpq2xqaCuvKqgp7Sso6u1pKays6ekop6nqrKosKelnp+frZWfmJSVlZedq6CZmaSotK6iqY+pqKqbnZWYoKSnmp6cop+boKOko5WbnpeZnaKpm6aZnJyioJeTkZOTnYPVk5m5cLDBfsaGfNaUm7t8mpWlj42djaR7joekgqWCeqx5j51Wr3qIfp9quVu6d4eEfaaCk3yYeql4jZ2Pe7FujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5uTlxST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKC4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopSZsqioprSqpbSppLy3wbC5wLG1tLqztaexr6Kwsqafrbaomqe5raOvsaCztLGhpJ6fp6mwqLSopJudnamVmJeVl5WWoKicmZanrbCpo5+PraKolp6Xm6GloZihoaGhmqGippueoZ6UmZumn5unlZucn6GYkJGUkZ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZeZjnuwcpKdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVISTk9VlJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2SpbCso6u8raa0pqe2u7yyur+3trO5ubKktLOgsbGinquwpJemua2ksbCctLiqoKadoamksaisqaSZm5mmnZWTl5iSkqGmn5WSpaqwpqKWk62gpZKUoJukpp+Vm6amoZqin62ZoJ6ekJWboZ2cppWdlpqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmYmuhX+Cs1xys1KufYKCpH9y2H54hn6PnYWamnavhomRnId3tGGaZZqCgpRsklqwWEuadZh5ZmCtXnZ3iGiYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZWTS5mZGlTWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+elKC5sJe0wq2os6ipsrq3s7i+ubextLu1pLeyn7Osn56orJ+Up7WrqLCxq620pJupoJ+oobWmpqmimZ2Uo6GTkpuYkZShpJqSkKatr6ahlZmpn6KOkaGZqKWhlZmlqZ2cpJ6snaGdoI2TnpqdoZiZm5aXoqCTl5CmnoapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNmAd4h0qIGOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak4CRf2hnqmRye4FrmIdzXataiaCOa29lT0pDoVxbTHRdYmdNW2FfcnRfS1Y3SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqav6uYtMKuq62ppbSwt7G1vrm5srC2uqi6tJ+vpJ2kp6eek6qwqa+ptayqr6GYoaCmpKS5oqOroJabkKGflJOemZOXnp6PjIuosK+nnZebqKafjJKjl6irp5WXqaeenqCjraShnqKNlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uG+Me4uiamu2WqGFZZeXaaCip26UcrR0k5h/smqFkoita3WzYZ1mom+Hk2qXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUj4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppubnbuhm7LAr62rrKe3qbevtcC0u6+ut7aqwLWoqaCapaOhnJGqqae1o7Korqqgl5ynoKWruZ2jrZuWmY6kopWMnaCbmJyfkZOUqrawqJmUnKypl4yTpZmlraORlqqypJ+epquxmaGjkJmilqCblpyXoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6o7Z1fXd2woKasmCDunnAfHW4Y7WBjIepfZWBrKlxe390vIinoGmdYaaOr6J+jHSHqn2+b3O8dLKDdXiBim6aiHFujaR0vV53fVphebxrWlZcanleamFlZ2NteG9aXFpEQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqK8oZeyw7Ctqqursae4r7bEsLmwrLmurcCxq6OinqOhm5uQqaSqsqO0pq2ln5aaqpmnrLmdo62YlKCQpZ+SjJyinZidmpGVkq+5sqyVl6Onp5SQlqScpK2ekaCoq5+bn6ijs5+jpY6ooZSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ7Bu72ZeoGxqHCAc5G5g3yGhoyHjXyKh42XfKS7ub2cdXq0o3R2l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3lueWKLrHB1hX9YW6dqRWVaVGZgY15jUWhncW11Qk5QTUQ7Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcwN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMO0rKuorKupuq6wxa60say2prS4rKmhoaWeoJ2Zk6ukramltKenn5uWoKOdrKS+pqGqlpOckKGakY+hp6GTnJeTl5SxtbetmZ6kpKKLkpKmm6Wqm5appaWcmqGopaekqaGSrZ6Wo56Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylYdhc2paXZqJYWOIjpVrYICVY22dd2KVa4CalZRlXmBjcJqKaHKLfYWVZ2p+cnV4fX5iW3d0gWhQXG6DfXyLa1hre4JySkpvhnBOdE1FWF1nYUxaWGdjX09bbnVpclJQREVOO0hJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6taOspa6np7WxrMirr7Gps6K9sbGmoKKonKKbmZmspq+jo7SppZuXlaGbpq2ovqeopZSTm5WfmZKXpKiokJ6RkJicsLK/rJunnqeiiZORqZqoo5qarKCjmZujp6yjoKujmrGblKeglpSdn52XsKWXoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KXlJKFi7WqjIWXlY6KjJiWh5SVioSTlJGJjpKUmJSYlpqgoZqclKCdjYJ6pYZsanyRfIB1ioqBcYJ4eXZ2ioB8impzgXWDdWV3fXdrb3ptYGNdcGhNWFpmamBXWnB6bm1mVE9GUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6LAoaSysragqqayp6WwtKrIqqyvpLSlwKezoJ2kpJyjlZWgqqeso6K2q5+Zlpafl62qpcGeq6OVkZuXnZeSk6GenaGnk5KZqKeyxLCaq52rn5CXlqidqpucn62ZoZudoqSvp6KlqJ+umJennJmaoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWm4OSgouqqYWAmJeJg4+eiHqEkIeGmpKIhoqWj5uXjZGYnaOWmpORnY1/jmahs6+FioR2e5KKfXZ5em9meZCBgIlrdYF6iHJpc397doOHgmt1ZHlmYGplY2Rma1lse3BpalxTTFBEXlRGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLqvv6yrrrKxoKumsa2irLOvxK+qq6Kyrbyjs5ufpqKhnJmXqKWppqSlsrSelZSdmZmwpa6+oKyikJGdmZmUkZShnJeonISfqqujtMi0n6qkq5aWl5qmnamanqOslJ6fnqCpr6qmpKyirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1pa3uSpKpqZJqXfWeGimVlaWh7jqGPbGiNmJGjd2tqi5mjnplzbG56g42HelhlXoaDXm2LiYF2XGhzd3eSgIeCbniCeIBzbXmEdHaIiI+DfGuHWV5sdWRec4lpa3xxa2NeUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLmvrLSxqqWora2wpq2tsLywqaajra6wnqyWoKOdopmZpqqcraOlqKmyrZ6Vo4+ir6W2uaauo46OmqGZk5Kan5mZpJV7pa2iqLTEuKWip6+fnpSeop6jm6KpqZKfoZ6gqrCrrKSroKqbp5+noKuVoZulsKSXm6qVoJyakaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqWZmHOrgnzLwMC7cYyiiIOffZaYiZ3AvYKXnZ2NncLBfIJ7ko2aw8B+bKWyboyBb8p6f5t3kYOOgXZ5gYB5cXp/h3B3hYyTeW54lGNmX3lkYGWCY150aGxkY1hMV0lRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpaawq5+rmJqin5yaqqeinayipaikpLSknaKSpq2rt7OnrqKRkZmcpZKRn6CYm5+dh6aspKutwMCxoamvqZeRn52imqGjqqOToKKenq2vqq2npKSnoaalna2okaSaqK2pmpypm6uglZWklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjap7p4eFoHWXk4izY4KrhqGNjbNqhK50fZeIt2GCrVqjzW2QdXvae3+ZcH6IknZ+ZXuIdnZrfIhufYaRkX9tg5BhcmxwaGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU0NzcxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayrKyqoqqnr6mgp5uZpZecoq+foJ6op6OmoZ+wrJqdlaeurLCqqKyflJKbn6STj56kl52no56upauwqL/Hs6ipsa6Wkp2bopefqaqflaCfnZ2tr6msqp2oqKSiq5KsspaloqqqnaOmpKGvn5GYppifmZOTkZegcYWMl3WFqIZxsX2ecqx+oZ6BpY+ed6qCfa1/nHOtfquHhp92mZJ7fJd+qoiijJGMnX6reoiUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+EbpKRZnB1dXFhZ21lX29paW5nZFhTXWFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPjEpM1ZARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osKaoqqatq6umoaSdmaGVoKWrn6KloKioo5+dsKyXmpapp66sqKeonpeUmqOhkpSgrZudpqKvrKSstaq5zbKtpq6sl5WcnaKYnq2snZegmZ6fqbKrq6ucrKuko6ybr7GiqKuupZilqqipsKGRlaKkmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKrhH+ug5t2rYGnhoafepmXhntmgKOJpJmGgqN9qX6BloeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm6clXFuenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1dW/oZmrp6Cvop6wtLCuqayip6aoqquppKafm6Senaanp6OcrJqirKGjn6+inJuTq6S1r66gqJqdlpSmo5CaoqifoKWcsKakqLGstsiytaqsqZaRnZyhmJ+ks52aoZSdn6esraWwm62qo6KqobOtoaqzsKGaqKeurrSikpWippiakXuqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDpImHoHqYlpp4qsl0mqSVqKmRk5qMgJyKmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxmZWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqClmqilqquppp+mppiqo6Cuq52moKyanqmlnae2n6KXk6mqtrKtm6WcoJSPpayRmZynoqCppq6hpKepsLXDsrOqraiTiZedpZqho66ll6GVmZylpq2csZ6vqaeerKO3rKGxuK+dmq6msrKyo5OWp6KZno6CnU54moF/n3qEo32DpISHpp6cnpOEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSof7CFnYaghKx9mpRipWykcI+EkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjHZ8c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXVpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlrq2uq6ecpqaao6ehs6+iqaeyoJmqpZSitaKilZehqbS4pJuinaOSj6GxmZ6bpqShoq+unKWoorayxLGtqa2pkYeQnKecoqScpZeemJqapqSrm7Cir6WmmK+ku6yhtratnZy0sbewsaWXnK6fo5yFj9G1w7d5h46FkZOQgKZ4lKF3jKCRhKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CpZuijaaLk52LlpCbbXGyXaVzk3qba5l/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY15fnmQg25qeWl5cm+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6imrqusmaain6agobano6mnsaOUrKOOpa2jnZCamqqzs6ScpJypkZSXrp+fnqajnKectZmiqqS2q8OwqaupoYyEjpyioKajlZqanJmbmaelqJmtqa+jpZutpr2slL2wrJ6hr7K5qrKlmqiwoqeXeaiQfXywd4qApKWInG2yb6CHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2aloureJ2gkoqUkoF6r16jgX2mp2OdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpmNfHyEmIBrbn9jf3RugHphZ2ZxbmhnaENaYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGBhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZVVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9k5qDqcbCtsGzn5qsoK24paOOm6Sjn7Cwqp+kn52tmZ+5oKOroK+pmq6hkKuopJaJm5CusKymnqabrJeXj6yhoJ2loZmknK6Yoaint6nBr6WppJ6LgI6bmp+mnpKVmpuUm5qmpaWbqqytpKWfqqi+pJbCq6mioKuyuKmtpZ+yraeol3avfpCLnIWHfbqtipllsY1lla19oI+DppWagayKhLCFppqkoaGRhaBbbGqBs2B/rXt7g4GxbWdvmZiMiLFbfrVdpIRryKJkn4B7vFh2tVmyfVKugHqsWIChbZiQqJuMmJKZmHx6kJ5/ZXV/Y4V4dIB8YmpncW1nZWZPVmRcQVVfPkkoPjo9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9urPBs6OcrKaktqigipqgn52zs6mfo6CetZmgtKiqrJ6vrZ6sm5WvqKKOiJuOr6yop6Gmma6SmI+omaGdpJ+Zo6OmmaCiqrOpva+kqJ6dj32Lm5ahoJmQkpqckpqYqaCimqmuqKamoqWpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bf4ekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbKOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqadkZuSmp97gpKce2R+fGWOZ3mCe2FsZWtqY1BhW1NqXD9VYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Oxv7myvbKhnK6mpbKmnYyYpb+quLKoor+np7KcnrGcuqifra+mp5SUsKyXjIObka6loqygo5yqoJeKopKmnaecmqGoopmfoayuqrqtqKOal5N8h5mRppuSj5GYmI+YlKmboZmqqaGqp6CjqrudqMWioK6jqbOzqa6on7mmra2Zc3WqpLeGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybWxsZot4b26CmXGBempxaWeKl5aYcWlphYhncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZX+Nk4+hmJmZk5mhfomRlndniHhpjmt6f3llbGNmbGJLZFhKbFo6UGVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWVdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOyqZeSvrLEyr+3qp/ArK2koaesoLqjpK6srqeOl66pj4uFlpetnaaqoJ2jo6CRi6SSppmomZajqqCWnaamp7C7rKyam5OSe4SWjaWYjZGRmZSOmJaplqCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa2oqy2lYqgqKW2nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJ2VkZmTmZGOlYaBpZuYlo6LlJSLkIaEfWeJfnSCdXOGinCnbHqUkZOSgYGNj5CPnZWil5qZpISJlo9zapF3cYx4d3x6am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbXFxeX19gXl5eX19gYGBfWVlgppaoqqW0tq6uorCjrZ+gtbGQjqzHvsa7uaujpZ6cpp+xqaS3p52ptaeokZitoouHiY+cp5WspJ+Yp56ekpSjlqeaqJmUpqGkkJuomaG2u6irmZqQjHyBlIuhlIqVkZaQkJSYppCfm6qfnLajnqert6euwa2jtqWur6+rqKiyt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6yvmqCjr6ivmKOgnKOqnp6dnJarnZOZoZuUkJarmo6ZmZaQlp+SiaGelZWFko2RjpWLgH1mi4V1hnV4h4JznGqFj5STkIl8i5WSkpiUo5OfmaSFipqJfHOXc3qLgHN8f2pvZF5wamBbYFluZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVo6ejr7KsrqOppq2fp7WqkJCdpbW8sK2toqOae56jsqSlsamXm7mno5OZqpyOhoqJnKKPrp6ilaifoJKWmJqti6mWj6iZqY2ZqY+eurekpZmbjYh5gZSMm5OKlZKUkY2Sl6ONnp+pnp+4o4CEr7Wir690o72jsZ93eZ+psLmUdayjnomAqn9kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZqXcICYqJdtf6KoimWcpp2SmJiWjJKckoaempCWhJKHj4+SiYV3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7qJybZnqaiYR5mWqEi4RveYBrcmVfdnBsa2hbZ2ZiYnBTXD5OTk5TRz5AVUQ5MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6wrKuppaiuoqatpJKWq7axs6ebq6esl3SMnbCgqKunlJe5oKCPnKSdkX+JiJuejayaopWnoZ2OlpGehHWtj4imm6mRl6SJnLu0qKCZmIuJdXeTjZaTipORkZSMkJShj5uhp5mcspaAjJu1nLOMko67pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpydoaeop4eVhZh3pZt6h5uBmKeCgnucsnqKhqGYmpWYloKRl5eFm5ljeoeQhY+QkouDbXCOhnmAcH+AhH6Fc4WElZF4lmeSdKCadX2ZhaOfiJh/lIyFhZprjo6GbHh7cXFnZHhvamxrW2VsamV0XF5JVExSQEU1LlpVVTYpITA5PT43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lbYWFoZllRSDlFTDw+YlZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6WsrKuorJ+osKamqaWZlK/Iv7Gil6iptZ6QhZ2snKeioI2Qvp6ajZ+aoJB8ho+ZmIisnKKWn6GRjJOJhoCRp42Hop2klJieh5+6sqiempKOhXF2kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqa2It4WNsIGurIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hk6CQmJeBjpOci5mSjH2Fk4eOlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoSknYSagY6Ph4uacZCUhWh4dXx4aGh2cWhobF5kcG1nbVhnR11STTJENDZOYmU3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaqmmpSgo6SrpJemq7ijsIGhqJ2mnp2JlL2ak42hkp6PeYSWlpGIq5mbm5mihY6Ld5ucj5+QiJ6lnJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKChmaGnfqGnh62doJatj56cnZGFgKCMqa2Fo42pmYyaf6N1gJmUa4Ktdk2reIeNnJGaqKeAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXf4x7ZGiLc5l9eZZsXX2XbV9TcINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpmoG1bb4x9Z1pghIBiWFBvd2ZtdHNram9ea3Fta2lYaU9eWUY5QTRIRF9sNSxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6utopmYoaKlra6hnq+1o6iToaCgp5yajpm0mpCLn4yVi3WBlJKNiqeWlZien3+ShYWspIeakIqZqZmam5KIprGnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfoJyhpH+TgY+joZSgd5yVj6eDoaZ/haerg6V4iXyEmn6icHOUiJZ8n415bYebjJmPm6iaj4ede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4eCf7WoZIHGuHtwlbaMcoCapGNzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYJ2Zs5ZxfZifs3VzW56yg2pjb3R2cWhvWGttc3JmXWleY0xFPUQ2UkJaczM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfXltaWGBgfGRIQzhMV1VXY2FaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuToI2kt7StraCaop2ko6aunZyyrqyTmKGaoaSZmpSfq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNqKCHl46JkqOUnJuNi6mopZ6Ql4eFfmp7h359kI2Di5CRiZCUoYOXn6CdoJ6LiXecmKKMn3Khi4epiJuljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhqJkoXyIlpCbjW2eaJuOb5qZe4CLp31yaHSrg56DdKpolZpdm4V2hZ1nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp0hZOSl46An2+akG6nml2ofni7a36qXI6EXbRnXG5yenhraVxxa3l5Y2BmWGJCUUZPN1dEU281S1taX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWVnWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7qxr6yeppycqaCfr5yesamtnZekm6GgmZaWoaSZhomNaoiAcnuXiIuWloSRlZiQeoqElaScipSPhoyekp2diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKOfoKGTmHJon4qfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6Ozo6SAiJR5nXuqmn+ijpyaloiXcaF8hY2vtX1rmpGheX6ZtaOkq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnW5zfZVwmnRrpF2VdkhlZGB0cX5+bmZgbGl2e2RkYlFfWF1VV0BaRlFoRVNXXGJYXklEPUI4P0E6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqUoqykoqiPoJ6dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKhm3OQkIGJmpWhm4WPqZyblYuLi32DbISFcYKhjHiGjYiIk5mWfJSkoZ6iiK2GfbWEjp6ce6WWeqmBlZuPiZ+bfKdod21+mXShc3J8nYaZcJODrn2kg6admYGkb16oZ3WiY2+lYZzTkH17mXhzdGKihpB+o3Okj3Vrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZtufHCWbX9yonJdpGdzpmBopm2b1Jp9hptwenuYbJx8eJdzbqmkZ2BlenGAhGxnZmRvdXdnYWNTXGZRUWJJWEpVYVdTW2VqW2VRRkRLTUpLQktFOE9AUU5YU1lPU1FhZWVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5qAsKtUXEt+qa+xtK+zo5uZhZmpoKGkjqWpoZmqipqYmJOZk5KhmI+IhntwfYVofY+DlJqBd5CNj4lvf4WPk5Jsl5N8iZKTpZaDj6ublJOLhop5g3aIgG6Cn4Z3gJKGiJqjmHuUo6San4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSjrq+Kl4yAjaSNlYOtoJR2tbW1yaFzlIuBn2Cdl6lteZWHoJt0ood3oH6Tl4uBb01mo5JwmodzpHt6dGGDgWt9oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclBFfbNfanZreYdma2hjdXVwbldfVFlpUVNoSVZNWVRWXWhrblZnV05LQkpNS0hKT0FRS1BlY2ptZXRzc355fG51iXt7VFBPbF5pXGtpUmpoaWxnbGZjZWBcXV1eaWJkaWt7X11kaGNqZm5tZWlsZaGbiK6mhGU/k6Gyqq6vtaKikICXqqKjpYylp56dpoObl5aOl5CPnJOOiIN6anmHZYONf5igeXWPiIyBaYSFkYOMhZ2Neo2LlqaTg5mqmI2Si4GJen99i3lwkKGGeoGVh4mWoJZ/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlYp6pHqfloOXcp93gYqVl4+5bpGKomJ9maCViG1yaaprdaBtb6ZfmmmLkGmWh5uVdKKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcaJaXltjoW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHlza29SWVdXZlpUbUlZT11JWGlpc2pZa1ZRUkZWXE1YU2FVaWtfd3R7fXB9fHKDe4Bzdo2AhHZeUXJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpjaml2dV1cY2ljampzbWZrbWOcpJilemR0bYunrqOpsLGmn4yAmKudn6aMo6Kbo6KBlpiTjpqQi5iQjop8h3GAiWmLi3yYnHN0iX2QfGSCh5SJiZWZgnyIh5eokYGjrJCGkYuCin6AgI9zaZCmhH2GlI2ImaCPiJOppp2IpniVm36liJaMspiekIKvl5+ldpSGeKlzpY+Emm6looyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZp5+b6xjlYqWk3eobaqigYl2iIN3q5GmiGuRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNZg6eOq2F1cnRxfHVxY2t/b2hsU1dbVmFiXWtNXVJdSl5tbndfW3FZXGBbZ3Rlbm9yYnF0YHd6fnlyeYNzg3+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqeG1nbG5ilaWqnIB/naOWqaqdqKaupJmKgpismp+lipumnamdhYyaj4eckYWSjYyNdId7iYRwjYV+mJR0dIVykoNtf4uRh4aTjn17goaYpo5/pqeOgY6JhZV2goeTb2yLqYGDjJSOiZ2fioyUq6Ogj4B1lJeIfoF5lK6jf4GbcY+Gd46Jgn17cqeMcX19epiWm4SPeXt/foeTlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYaEgmWMf1+Af4t3dHKUdW95bm6HbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25tZ4xzenyYeIVca1h5j2lveHJyb3h4cF1rh25qZ1ZbYFddZmtkVmJVX1FfcHh5bGt2ZmprbHd9cnJ1c2FvdWJ0e4F4dXqDdX+Af4B4ioWDfXttf2xkeW5fV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2UuKimiaCimqakmKWcq6KhhISYrZKeoYmbp5upmIOBm4t/lpSHjoqJjXKDfI99fo+Fe5iPdHKDcJWFe3ySi4aGj4V5foCHmqWOfKihi4aQkIWVg4aOmHdyhKmGjpKdkImfnoiMm6ifoKqDiI6Vmn5+iZatqI+Rpo93b5uPgXiQbn6ohXB9lXFrcH2BoI2Ak46MaG1dg4uLm5qejnOVi4hxdGuBdnSBWXJuhpGBfn6Mal1qZHuFhImAYGl4epp7goqBdYGFgmd3ioZqYXBxgXVecYqAiI6llIVli42DbneLhHGGkHpxZ2hlfIR7lltcamdudlt8eXh1bnNzg2dcbYtra2JaWl9bWmxxXF9hWl9dZnR+e3VwdGNra2t8fnN8eHVkbXVobXx+dnp8e3l6gIB+b4aKhHt9c355c39oVVxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N6b2hqbWCLi6qwoI+ioZqenZeemKijon6Dma6OoJWInKKRpZV/e5iFfZKZiYmGh4pzfoGMdoWMgoWXinFvgHKYhoN+koOEhoqBeoGFjJyhkYOnooh5jpeJlYuLnJiEg3qtgpGXmpWKnp2IiKGqn6Gio4uHk5uco5mWqqGnpp+SmoaUjHp2jY2Dp35/kpCSk5yyppuVn5CNspOXg6WMjJWan4mQm4KIkYprfI53eGWChpCLfImdhIeMkIiIgISEkHd8enSZoIiGiZ2JhJN+fYqAgHVvcoSBfXeGhoqPpZCChYyGgoyQjH2HjIqRhHltg4V+eplrcmhhdIpxfnp3d3B3dIJdXm+HaG5fXlpdXVNoclZkXF1ibGh1e3xzb3Bka2tqgH1ueYByanBwbGeBe3KCgHh/fX+Ee22CjYZ8eXh7fXqDeE5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIecuZ6WoqCYlJiYlJikoJ58f5qsj5+OhqCdi56WfXiUg3yOmYqGg4SHbnmBgXOBiH6JlIRta356l4aDgo9/gIeEhn2HhY6cnpOHq6CEc4uQhpKRi52SfY17qoSOk5iWj5yWh4ecpZ+imp2FgpKamZmQmqafpZ2dj5V/j4h1e4aNhKV7fI6QkYaYq6GelJ2QjqqNkICdjIiTmZ6Cj5d+ho6Db3eGcXVgfoOPhnWMmICDj4KGhX6FhJRueXV0kaGKi4WahISMc3+JfHxycXqHgnp3io6DkaaPhYOOgIOKiYp3homLjX5wbH+CfG5obG1oX3p/aX58dnV2dXt4XF9wfm51YGNbXV9SZ25UZVteYmtpdnp+cWxtZGtqaIGAbHOBbGx1b3lvhnluh4B2goB+hXZxgo2Ifnt6fH97gopgaXxqdWhpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnreaoaOfkZGVl4uanp+ee3ifp5Gci4ellIuYmXl6jYV8iZGEjIKCg258gHlzgYV+i5F9amh9gpeIf4eNfX6GhIZ9j4KQnJ2SiaidgHCMi4ySh6ChioWMfaiRiZCSl5OWk3iMo6CgnZaZf4CQmpiSjJujoaSZl5GafYyDd3+Cjoaff36MjI98mKWhopOakZCmjI+BmpGJkpebfpOSfoeOgXV0gnB3YX2AjYZxi5V8iIxxjH+ChYaPaHdxeIuYkY9/ln2HinGBhnt8cHd6ioN5eY+MgpSlkouFj3uGhoeEdoOEiYl8Z3N9gHl7cWxrZ19+c2h8dXZ0fXOAal5gdHZwd2RjWV9fUmtpVWVZX2FoanZ5gnFna2RtaGaAgWtufWhvcmx+eYd6bIyBc4GBfoF0doKNhn98en+BfX+PaXKDbnNpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qJjJ6ykqWlnI6Pl4+GnKCbnXx2paGOmICNo4uImpZ5e4aHfoOJf4mCgX9yf3t0doOFfoqReGdjfYaXiYCJi3l9gI2DeZeClpmXjZehnH5wjIKRlIamm4iMiYOmlYWTi5aXk5J3kZ2goZeTlnl/jpiXjpaanKSdmJKUmniOhIJ3g5WNnX6BiY2Mc5ejn6KTmY+PooyLg5aYg5KWmX6YjHyIjYF2cX1ue2SAfIqFcIeTf5GCbIeDgoCJhWV1bnuFkZeLfJN3i4h7f4V8enF9d4iEeISPiIqXoZWBg4t2iISDgnd8g4qHeGF6eX50f3hnbWVhf2pqd3N0dX1xfGJjYHRudXJtYVphXltsZVJjWWBhaGt2eYZxY2pjbWVofYNsaHRobnBpgH2CeW2QhnGAhIN/dHyDjIGAfXqCg358kG12iXR0bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+crZemqJ6NjJeHhp+Tl5l+eKqdi5l6l52Li5iQeXyBjH58g3yBg4F4dHl7dH2BhICJi4BkX32LlIZ+hIZ1fX6Kf32ZhZeVmI2ko5l/c4d7lJKKpo+MjoqToZKDkZCVl5GLgY+Xn5qSj5Bzf42SlImdnZ6ml5eMlJVyi42Ja4SXj5l6h4iPiW+XnZqklJWLjJ+MhoKSnH+SkpWHmYh8ioqBenF5a3Vse36Lfm2FkoKUeHCBg35+i4BkcWl7f5aXhH6Mc4+Hg3iGfHV3f3yEf3uCi4SLk6OPeIOBdImHfYB0doKJhXBhfHZ6cX1vYm9jZHxjbm92c3h3c3RhdmBvbHVtb1xcX15eal5QXVljYWhtdHuJbGBpZmpjaXeIbmZsaWptaIF9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG5sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmaqgo6idioqRhoqdi5WYfnivmY2XfZ+UkZaTiHd+fIp9fIB3eICAcHV0fG+GfYGBin98YVx+j5KGf4ODc3uAh3uPkomTkp2TppyWgn2BfY6KkqSJjoqNmJuNhpGYlJaPioiMkpySj4uMbYOPj5GJnpmioZeViJaQbYeYg2aFmI6TeoiEkIpwlpqUo5OSiYuZjIJ/kJ19ko+SjJmOe4qFh3NydWtwbnV8inRuhpCOknF1gHyBgoh8ZHBseXyZk32DiHOQiYBzh3huf3x/hXuEi4eDi5SnjHuHe36LhXd+cXCBh4RlaHl1dXB8Yl9wYWt0XnFqe3l5bHNwZXhdbmxzbXJYW19gYWtbUFdYZWNncXF/h2ZdamlnYmdxjW9kaWdlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa2BwaHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGQnIeTnXaCq5WTjoehjZaTj390fHeFeHl/c3N7hmtzcHpui3eAgYhvcVtZfpGNiIB/f3d1gYGAoIaRi5OdmKGVmHiKf4GNiZydio+GkpiWhYmVmZCXi4uMjYyciY2Pgm2Ji5CRip2WoZyXlIWXh2mDooJlhJyJkH6Lg4uBd5OYkp+TkYmJlY1/fo+XfJGNj46akXyKgINvdXBsbW9we4Vpc4OOmItxd4B1gomDeWZybnWAmo57h4N5k5B5dodzb4h6hIt5ioWCh42aood7g3WCi393eW5sgoWDXnN1c3FweVpfcWFwa15wan17cW1tamx2YG9vanFtWVliYWJuWFFUWmZnY3ZwhIJiXWtuZGJma5JuYGdmYGhrgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97d4p/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmq2eppaFjYN/l5SDkKB2jKCUk4aLm42Wjot6cnh0gnByhXRxdohscG52bYl3g36Abm5VUYGrlIeCeIB3coN6gqGCk4KVlJmck5t4knuDjJKkmpOOiZWZkoSHl5mMlIuJj4+HnYSQinxyi4WJjoicmp+blZR/k31ohJuGZ4Wfh5KEkYKJcYORmJCcj5CMjI+Nd3uSkXqOi4yRlox8iHyAa3ZqbmtsbHt/YXp+jpaCdnqAeIOMfHlmc2tzhpWLfoeFepOOcHmEb3aLeYiLeYd8gYuPnZ2EfHt2got9d3BqbIKEe2F5cW5tc3RWX3BicmFgbG56cWhwZmZzdGhxa2F3ZV1XZmFgclNRT1xmZV15cIh8YFxpcmJiZWaRal9oZVtncH5wbHF0in12fIWAdXV+jHl7hYF4iINzhoV+jI2EfHmVeGZya4NgiH5vb2t6YGpudH91X3R9eYZ4dHOFfXigj5mwnKWOgop/g5qIgIyegIualI+FiJiPj4+Ed3R3dIBxcIV0cHKEcGtpd26Dbn19bnVzUk2C38iS1pN7cHWDdYSgg5R3lpKZnJGZe5RzhZCfoZOTkYmTnJSGf5eWiY6NiJKNiJx/joF3eox+iYyKnJucm5WSeYx1ZoeQhmuHooSRiJeDhmOMkZmPlYuXjIyKi3F6lIh7joiKkpGJeYV8fmx7ZXNwa2t6eVuAeY+PgXp9fn+Gjnt6Z3JqcoqOiYGFhHyUimt9fm1/i36KhXyDeYCOlJmZiXx1d4OQeHJtZ3GAhW5rdXBoanVuVF9vZXBaYGxyeGdra2JmeHJwcGNfd2BgVmtfXnZQTkthZ2NdenGKdV1cZXZhYmVlj2RhZmJZaXNzbmtyd4x9dHqGgnV2fotzgIZ/e4l/comIgZGLiHx+mHZlc259ZYh+bnBsgFlsbnl5dGF2e3uNdnJ3ind5n4ubrpufkIKFd4iVfn2KnYiGoJGPhYyYhJOOh4F0eHB5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChcmx2hHaFo4aSb5eRlqGWnIGScoaLo5eJjpWKkZ2Wg4GWkIaKkICRiomWfod6dX+JeIeEjpyamJmOj3aJdW2FiIp8iaKDkYmchIVei5OXi4+Jj4uLhYlte5aBfYiFiZGPhnaFfX1rfWR4dWpueXNXiHqSh4V5foCBhox/eWVyaX+JjomBgn6LloRrgXVth5CBjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xY2p3aFJhcWdsVl9vdHphcmRfaH5wcm5aY3JgYlZuWVx4Tk1MZGdiXndziW5cXGR5XmBkZYVgY2NfWWpya25rc3eMfnR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyLe250cYFXcXp2eXJld3mHjGl2gIlyf5yHmKeco5KFfXGMlHh5jJ6EhaGNjnyWjYCZh4R7cndwdGpwgWxpbXx1X2F4d3txdXxoYGR869q1ycPch3JsdIF2i5uJjmqZkJCdlpSBiXGFiaCOhYuVioyYlHyNk4iDiZB7kIuFj4F/dniDhHKIgpOclpSXhox1hn1ug4GIhpihgpOMnoOJYYOUj4eKhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpdHdrWox8koKFfX+DgISKgnVhcmqHgI+KgX5+kZB8bYFrd4WOhZGCe4B8fo+Rj5WIbnB5jIZ1a3Fsc3mCYHVqb11rd2BSZXJpZlNgcHZ0YXBgXWiDcXNqV2doYmlYbVZbdUxLTGVnX2Jzc4VqXFxleV5eZGd7YWRfXVlrbmVvanR4in5zc4F+e3Z6h3OFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHp9WHqGcYBvZ3l3koJkdoaFcIqWhZmhmqKKh3Rvk4tyd4+cfouaiYl8oH+EmX+BeHJ0bm9kcn9pZm14eFxfeXt7cXGAamFmYX/Vto6RpnhucXd8cZORjYdrmo+JnJOMhntph4uZh4GSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6TlIGIdYOFdYJ/iZGcnoaUj59+iGJ/k4eFiISKjYCAg2d9kYB+f4KMj5B+bYJ8gnRrbXd1dHd2a2ONgY6AhX58hX+EiX9wX3FvhHuOi4F7fpCHeXCDZXmBiYaLgnqDfH6SjY+Rg25ueYt+dW1ua2x7fmRpbGpZbndaUmpzaWJRY3N4bGJlXlpqg25zYlxoX2RsYG5VW3BOSE9nZVxnb3GAbVpcY3NgXGNsd2RlXV1abGxjbWpzd4d/cXCAe310eIZ4hYJ8gIh1eYmBkpZ8iYZ2iYFweHl7hJNvbnyBd16Df3SCbWl6c5RzZ3OIfHKSkYOan5ughoh2dpV/bXeVmH6IkISKjZp9jJp2fnZxcGxqYXV8Z2JqdXpbYHh8em1xf2VjZ2dXnY9fcXOWvMSEd3GUipB/c5iMh52UjYh0a4iPlYB7lIyBhJuMfIqGfXyJjH+TiHWJhXZ2fYFxdYaBnpWGlI+CgnF/h3ODeoiWm5eGk42cgIhmfZOCgIaDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN3c2xqjoWKgYp/eIKBhISAa11wd3p9i4iFe4COf31xgGh4gYaKhYN3gnp/louOi3xta3qJfHZ0b2lofXdlXXFjWHB0U1Rvc2liTmh0eGZhXl1Yb4BvdFllY11qbWBwT1lsUkRUaGJabG9te29ZW15tY1pjcHZkZ1xdYGxqY2xpc3eBgnFufnt/dHWDeoSCfIKGdn6JgZaReIOKdIGIc3l5fo2Qb297gXFpgXl6fm5tfHaWa2p4hHRrlI2FnpigmYWIb36Mdmp5mY9/goqClZeKeo+Wb3pzcGxqZGB0e2lgZnJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWZko2Gb2yGkpF6eZOHgYSZinyHf3l4iYqElYBviodxdH17anmGg6WRhZONg39ufoJ1gneFmZeTipOPlIWHcHuShH6Dg4mDb4F4aICFeHJ/f4OKh3xlfH6EdmNwc4BoeXFvdZmMhoOKe3Z4gIR6gmtbb3xyf4eDiH2FiHqIcYBtcIKFjYOEcYN3f5iLjYN3bW19g392emVoan5yYVp4W1lybk5YcnNmYEttd3ViXltbWXV9cnBYaF5manFfb05XaVI/WWdfW3BrZ3lxW1tZa2VZY3F5X2hdXmVsaGZsaXF4f4dvbX99gXVwgXuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9sb350gH1vcnx7lHBvgH95ZpKKgqGYnZKDhWeHg3BnepeKfoCFgpqKgXyNjWl4cmtrZl9hb3ltX2JveV1kbIN6YXF2X2Rl1eu+izI6PouOgHJ5homPjXeFmI1/k4+Nf25thYyMdX2Pf4WClYl8g3hudoeFg5Z3boeEa3V7dWV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLhn57kod4gIWNg2yAcmmAfnhtfHuBioN4YnmEgXFkcWh+bXVxdYGbi4F/hX5zdX2AcoBvWmt8c3iIgYp7hn98h3d5cGuGgo6CiXGAd36Viop+dG1qdoCAdXVcaWl4cVpXflNacmVMW3NyZltKcXhwXltaWVx1f3VpWWJbZ2VuYmlNWGZRPV5mXV52Zl91cVtZVW9kWmVxeVtoXmBnbWdpa2lweH2ObWqBhH95boB7fYF/gnp1goGMk4VwgItud36Be3uIk4l/aXt9a3R8coZ7c3d9f4x6eIR+fGuMjISbnZaMgoBsjX5raH+Pjnt+f4OVgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4Z3h5iHdY+MinhwbYWDh3R5iXiJfZOIen5yZ3aIfn2Xb3GGfWh2eW5leomFpYeAh42JfW19dX5/e4qXhoGTkJeIi4SJfI+JcXx+hXxpfm1rgXt5anp2goeAcmB3gn5xZHJndYJtdXuGlJGBfYF/b3d5e3R9bFdtfXVzioCGd4Z1gYl6d3JtiH+Of4NxfXt8kYeIem5taW2CgnVuXWhmdHJSXHxOXHFcT1xzb2RWS3N5a1hZWFlgcYB1YV1dYGdkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3NXal9iaGtnbWxpcHd8k2xohIl9fHB+fnyBf4J6d4CAiYuEcnuHb3F3hH97iY2Pg2p+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot5a22FiZJ5fXuCkoCAfYqDcHJwYmZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMm4coWEc5N9eYiUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cGN3hnmAkmlyhHVmd3ZjanyEiJ6CgH+Oj31xfnODeH6QjoJ3lY2Uj4iCiHuJiWx5en92aHppbH95c2l6doCDfWhgeIh9ampzaHuAanaBjJGUfnp9fnF7dntzfWFVdXtxc4iCgXuCcIaJd3dvb4KBi318d3x7dI2EgXVocWhsiIJycF1oY3RvTGZ2TF5vVVRZc25iUU90eWJTV1dcYXCCc1thXWhlZWNqZFFbcUlEZGJcZHFeXHhoVVdWd15cZm5pVmxeYWpnZW5uaHB3epNuaYiMeX1ye355goGCfHZ9g4iGg3B2g3Ntd4KCfomLlH9xgHx4enqBi3SDeH+BgYKEeoB1b32Ji5ueiH6Ge3eHfGh1ho2Ren+AfImGhHaPgGdwbl9kXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdmpx4aIs3KKeXCOdn2IkIF6lIuAdXR1fnd/cHB/boV0lIZ4dGxgeoF5iI5lcYNvZ3VuW219gZCTgIF5kZJ9d3pshXR+j4qDcpWKkI6HhYV7f4ZtdXZ/bmh3ZW18dm1qd3Z/f3xgYniGemh1dWN+e2d1ho6NlXx0f3VxgHp8bH5ZVnJ8b3SChn5/d2uIhnN4anR/goJ8eXt3enGKf3xyZ3RkbYuEbXRba2B2Zklvb0xbY1hXVnhtYlBTdXZZUVVXXWByhG9cYGNtZGNdb2NUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniPdGuOjHV/dnh9d4GDgXt0foOIiINvcYB1cXV+hoKJjYt7d394hHx9hYd4h3x9gX6FgHt+c3Z4i46fjYl7ind1g3pefoeajXmHhHSGh4R3iXpibmxbYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOhrmia25ui21yhXJ+hYt/e5KGenl0enV1e2psdmOEdpKCdm9nX3yBeYuIZXGAampxY1hse4aciYOCcpeUdn17bYdwgImKhnCWjpCIhYuEe3l/cnJwfmdocmNueHFqbHF3fX16XWV6gHdpdXlmgnZndIeLjZR9coZqb36AeG17XFhwfWxzfol7gW1uiX9wdmZ2foB+gHV6cHlzhXt4cWVyYG2LgWtzWGtfeV1JcGxOV1ZfVFV8a2JPVHZzUVJUVl1idIZpXGBramZiWW5hWGNwR0FoXWFmX1xWfF5PVmVxWVtqaF1YZ2FfcmZqaHFncXN3h3lulYp0f3t3fnmDh4B1c3+GhY6DcHB8eHd1eYeGh4yGenx/dYt+fYaEhId/fn59h398eHZ5dpGTn36NfYtudYB6ZISIl4ZzkopvhYWCeoN1ZG5qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqft25idIdpdHxyeoSHe36NgHh4c3dve3dlam9gh3WOgXNqYl5+eHiKgmVwfWhra1pWb3eLpIGFf3GZknF/d3SBbH+Bj4Zyk4eMh4SJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfnx4ZXN+boR0ZnaGjYaVf2+LZmt6gnRsdGJbbnpqc3qKeoFldIZ9bXBndH53fH5wemp5eoB4d29lbGFsiX1sblZrYXhWTGtsT1JPaU5ZfWdiT1V2bE1RVFVeZnaEZ15hcWhnYVdpXVxraUpFa1piZVdYVXlaTldualldbGVdWmVjXnVmbGVxZnNwdIF4cJmFdn9/eH98hYd9dnSCh4CVg25zeXt7c3OFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3aanZd6ioOHanZ+fWyEhpSAco+CcYaCfoKAcGZsZ1ddW1xbU2VwZV9YY3J1aXZwZGViV1tbaH9wb3J/c4llZnp/anV2dHSEhXiBhXp3dHVua3pxYmhrZ4Z0jYNtZl5ffG96iX1obXdmamRWV3Nwjqd9hHx2lpBze3J7eWx6eo+Ddpd8h4aDh4R9dXFzbWh1XW1pX2x1ZGdmaXpve3JZZ4F3dWhwgHiCdmJ3hYt8lIFui2pte4BwZXJlX2t4ZnF1iXp9YXWDdmlrcXR6b3h4cntlfX5+d3VuY2VhbIZ8bWtWamNyVExrbFBMT3BIXntlYU5WdWVLT1NXYGt3fmZdZ3NpZV9XY1dicV1MS2tYZGJVVFVzV01ZdmVaX2xgXFtjZV93Z21icGl0b3F+dXSZgXd/gHiAf4aEen12goN+mIVucnR8e3RxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gXZ7o6WKeYmGhWx1fXt1hIONem+Fc3qFfYKEdW5qaWVWXVtbWlNjbmVbWGJ0e2pobWhgYVdfWmmAaWtvf2dsYml7emt0dXVvhoJ7gX12dm56aGp5al9lbmmBd5CEZ2VYYndpfoZ5bmlvZmZdVVlwaY+od4F6fJCOeHVvfW5ydHiOfneUdIWCgIaIdmpzdmhpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdhdoWEeZCGc4hxb3l/cWJwaFttdmNwcod6d2FygG9naXhzcWt3dnR1YoJ6fXZ1b2NjYm18fGtrVWliZ1RMbmhQSFJsRWF4ZWFNVHNeSk1VWWVseHtmX21wamRdVmBVb29XSlNoWGdeWE1VbFRLXHpfXF9rXV1bYmVgemhsYW9vdm5vd3V6l313gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH2BfJBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIiIRscoJ6doGBgnRuh299gHSKgGpvbmRkWF9aWlpVYmpnXFpfdYJpXm1sXGFWW1xrgWVxdHxpal1teHdodXhzboZ8fn56dnNsemhpeGddZHNoeneSgWNjVGRvZ4GEdnZmaGlhV1ZZaGSQqG9/eICLjnpwb3tmeG55inp2jnGDfX9/hm5kd3NkaWldbGJecG9bZ19tdWV6aF10gG9ya3F7fnV2YnWFi3uIiIB/d3J1fnNgcGxYcHJhcHCDe3NjcYBrYGx6b2lneXd0cGSDdHl5dHFkYWRtcn5qa1RpXl9VTHVjUUdXYkdjdmVhTFRxWUtMWFhnbHZ6ZWVtcWZjWlhdWHdmVEpcY1hpWFhIV2VRSWJ4W11fbVteXWJjXoBpa2BvdHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59f4SJanSWgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGIenR+fXZyb4Zse35tkHpjcG9iZV1lVlpZV2Nma2BdXXOGaVhwbVteV1pcbHticXd1bGJbbnR1aHV3cm6GeX+Bendvb3RlaHRlW2d1ZnZ2knpgXVNlZmqCgXN8YWNpXFRYXmJkkKVpeXSChZB4bG54Zndse4N5dIhygHh8eIBpZndtYGhhX2tgXnVrWWZdb29iemVbd3xrbm5weHl0dGVzg5J/iIOIenZvcXxxYXdjWm5vYG9wgHtyZXGAZF5tdWljZnh6cmxtgHRyfHJxYV5lbW59ZWlUaFlaVU55YFJLWllIYnRjYEpVblVKTFpWaWxye2NsbHNjYVpaW2F3XFRLY11ZalNWR1lhTkhqdlhfYW1bW19iY12FaWhibnh5bG9qdoGQeG2CfoCBkoiEgXZ1iXSLhnRxdnaCd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4iEc3CZont7f4mWeGR1iXlzeXZrdHB/bHl8cJFyXnBvYGdibFRbWldpZG1mXFxyiWZScm1bWVhXYGx2ZGp1amlfW251cm10dXVrhn1/gHx3b25sZWlxY1trcmR0do5zXFdUZGBxf35xgVxiY15TWmFcZJOfZXJxhIOQc2tqeGxub3l5enGAdn9zenp7ZGZ2aF5jW2FoXF53aVdiXnBoYXdhW3x2ampyb3h0c3RocYKVg4d/hHVyanB7bGV2V1tpbGFwcX95c2Vvflpgb3FiXmlvfGtqcn1xb3Zpb2BbZGtse2FnVGdVWFJRd1xTUFlSSGNzYmBHVmxRSVBaVmtsa3xlbW9yYVtaWFlscFdTUGZXV2lTVEZaXE9Jc3VYYGRtY1hgYWJdjGpkZW16eGtvaXV5hXtrhH2AhJl9goR5fYhtj4Zxb3Z6fXSCgn2Lj4OCl3R4gpOGgZ+JdYF/gXR/gnCHgnVvopdze4aMh3tmd4tvbnxwZ3hxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWZpdGhjdGVlXVpwdm9xdnZ6bIh9gH2Id5BzY2Vrb2Fdbm1kc3iIa1pUVmJjd3x8cIRcY19jVFpgWmOXlWNucIOEiXJqZ3luZXJ1cXpreXR1b3p+dl9nc2RcX1diZFlhdWZWX2BtZGFxXV1+cGhpc3F0cXV2a22Fk4KJfIVxcWZue29wblJaZWlkcHJ/dXNibHVVYnFrW15uZHtka3R8cXFxaWxfWGRpanheZlVlVVZQVW9YUldUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFZbdGRTUldoUVlnVFNIWltQTnh3W19mbWpaYmBfXo9uYmdreXZubml2dn5+bYSAfoaXe3+HgYp+a5OIcmd0gHt1gIN+iY5/i5NzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNjHd4bnqNYGV9cWd6dHlsbXF3g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbGBVVlNuZnNrZnhkZV1acnZuc3t5dG6Je4F3nHt6bGJlbG1eYG9qZXF5f2daVlhfbHh7em+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybm97gHNYa29fWV5XY2RYZXFjVF9iaWFibFpgfmtmbHN1b214dmtohYx/iXqIbXBlb3tscWxiWF9nZ25yf3NyXmlsU2VwZFVibWF4Ym91enRqbmtqX1hgZmh1XWRXYlZTT1lnU09dT09IZW9dY0daak5KX0tYbWVfeGhufmRgVV5UXXVbVFNgZ05eYlVTSlxaUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4J0f3+IhYeRhJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo2MjY2Njo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmnpsbm1ubnFJLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJydd2VnZ2dnazwYHBwdHRg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeIiIiIho2QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6LioqKiomJhoKCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKTkYuSjo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY6JiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjo2JkYmMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkImOjImQiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fHx9fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4uQiI2MiY6Hj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+Mjo2LjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl5e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8e3t7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHt9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4eIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX1+fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5STk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5ORj5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkZKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSjpCRkZGSk3+Ek5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKEeZCRkJKIc4mRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkI1we5CPj3d2iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6OjnVshZCHcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNeG11joF0doaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4hwYmd4c291goWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3clxiaVxiZGtnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhgY3RsXmpuZ2RiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWltrc2thbXRuZVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2Vva1ppc3RrUlFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5YYmhtbm9wcW5TTE9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRUNGSVZjZmdxbm1oZ11RTk5OT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUVLTU1SX2ptaG5tbWpoZmNjY1pMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+RVRdX2NpbG5pbWxsampramdeT0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7O0dWX25wcWtta2ppbWdYSUVFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Ozw9UWVxcnNvbGhYRUA/Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk5PEtue3FWQTg6PD1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PT08O0psZTk6Oz09Pj9AQUA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFPz9BOkZfPj49Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE8S2Q9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPDw9SU1GRnV3TTc4ODo7Pj5XakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g396fHdXPD0/PT0+Rmh0TDo9Pj89PT9BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtig4SDg4OAfV4+QENAQT1KcntZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYV2TUFDRUA/Pll7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEZIRlFubnBxcnV2eXt7e3p8fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISEtNTEdJSk1NTk1KSktLSkxMU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU1Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yJVDo4NjU2NzY2NjU2NzczNTY4Ojg3NjU2NTY3Njc2ODo2Nzg4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZQU1JTU1JPUFBSVGVxcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f39/fn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmWFg4GAgYODg4ODhYmLiomJioqKiouJioqBRzU2NjQ2ODg3NDU3ODU2NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4Nzc3OTo5ODg3ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+f39/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYODhISEhYaJioqIh4iIiIqKjIqJiYx6Pjw6ODs8PT45Ojo7ODo7OTo7Ojo5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTo8ODo6Ojo5OTk8Pzw8QUJESUpMS0lLTFdvcnN1c3V4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxvTz4+QkRFRUJBQEI/QEJBQD49Pj5APz8/QD8/PT0/Qj9BQT9APz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiYxjPkRGSkxKSkZHSEVGR0dFQkFAQ0VDQ0FCQ0I/QERIRENFQ0VFQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiodWSE1NTkxPSkpLSUlKSklFQ0RGR0ZEQ0VGREJISUtISEdGSEdFSklLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0FCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjIuKjH9QTlBPTU9MSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0ZISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo+QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMi4uKjXJOU1FPTk1MTUpIR0VJSUVKSEdKSklKR0dHS0xOTE1ISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi2BUVFJPT05LSkhGQkdKR0xKRktPTEtKSktNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRkhGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMi4uOfVlYVFRVVE9NS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uMaVlXa2FGVFFRUEk7O1JTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbVxlVTpZWVhTUT9AVlVZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLeW9wWVtcW1JUUlZWVFtadYNZVX2QYV1YXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SKfmdZWVxZVFZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltTU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB8XFFWWFVSVVJRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bnFWSkxOT0tNS0hKREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUxEP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQ0RIR0hLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PT0xRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCa01HP0A7Oz5AQD8/PmtQS2FFRkhJRUI/R0xOR01RVUlBRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTkdVbnR0dXN0dnh6fHt9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5MTFFSUVRWVFdSUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNCQkRCXF1Pe05PTk5LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUxUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1hYaHNrXVZhc2tiYV9eZGFfXllUUU5OTkxJSEpMSUlGQ1FQU1tXVFROUVNZU1xlVU9TU1FOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUdtcXR3eHl7e3x9fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBwbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTUpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hGRkhKTUxFR0NPUkM4RU5TXWdTUFNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk9TT09QTExPTUxNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwc3d6ent7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESkVDR0dJRklFQkI/Pj1DQkFHSUVOT2JlUU1PTldLTE1LTE1NTUxLT05TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnZyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdKRkNISUdHSENDP0I/P0BBPkRFQ0xOUlRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NMR0NCSklMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RHQj0+PTo5OjtBQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQ0VESU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQURKSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl8en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6O0BDQD5CQ0VFSUVJSkxGSUlHRkZEQjtBQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhDR01LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam9la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0JFQERBPj8+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhQS0RJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oj0+QEI+QEJER0pFSUZJSEZGR0VDQkFBRkZDQkJCREVFR0dJRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5PTVFOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVJRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUVFOUE1OUE1MTVNXVlhXVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREdERUhGREVEREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUtMS0hKTEZJSUtIRUtLTExOT1JUUEhTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRT05Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hESEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPT09SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKSkxKTEdDRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRUlJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RISUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5oY2loaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRUNJSkpJSUtHRUtKR0hKSUlLSEpKTkxOS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUpFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE5MTExJTE1MW3NiZHBebG1VTU5mc11nZnFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpxeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ2dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0lKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTUhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0RISU1JRkNGSkxJR0ZKTUxFT0pLV1JLR0tLSk5JSUpMSUtKSUhKTU1NTUlLS0tTa2NbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHh0dW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlIS0pLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZW11YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAREhERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTElQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEQ0JFSUVHR0ZLSktIRUZJSktGRUhIUEpNTUpNUklIRUFIRkpJS0xKTUpIRkRJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiYmFjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRkhHSEtJSUlER0tLS0VGSUpOS05MSExOR0hFPkdHTElLTEtLS0lHRElEQ0RFQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZWlBaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRkpHSEdJS0lMRERLSk1NTExISkpISkY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtLTE5KTElLSkhJRkJISVFNTEtPTEpLSUdHRUQ/RUNISEFCR0dFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRhWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SEhIWFhYWEhIWDhIWHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSElHREhLUU5NTFBMTEpLSElDREFFREhHQkFHRURXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTExMTUtKSkdFSk5RUU5PT01OTE1IS0FEQUNERkRDQkVGQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFJaWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWE1ISEpIR01MUVFITEtLS05NVU5PS0tLR0dLUFNTTlBPTk9OTkdLRmBFRF9MRWZkRU1bSV5bcm1PTVVtWUxEUGBVa1dnSl1YVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJiYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KBg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUtNTExPUlVST09JS01HSE1RW1lPUFBOT09PSUpRf1FJfFlZcXRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbW2ZbX2BhYWFdYGJnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMR0lMRVFWTEtOSUtSWFdRTU9PTVFUTk9RUEtLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfnhugHJfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISktHSlBPTU1KTlZeWVVMUVNOWVpNU1NSTktPSFFSU1lXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZn1pbHh8b15fX2JhW11jZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15d3JuTkpTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSkxyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmY293eG9tcHN5fm5xcGp7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ttfnhrfHBcXl9iW15iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9HS0tJSkhIUVBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFfUE5NS1RTVFFVVk5OTE1PUEpIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXllXXlZUUFlSV1dXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTE1NS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0tNVlRRTlVTTk9NTFFQS0pSUUtRTUtLUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NTUFJUVVZTWlFOU1JYVlRZVlRaVlRSVVRUVVdYVl1ZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktLT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BMT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBMTUxQUUxPVE9PU1FPUVtaWFdYW1lYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTkxRUVBSWFRRUU9NT1NWT1dSVFVVT05NUVNWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFZTUllXVlpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXWBdY2BjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpZWFdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVhRTU9WU05RUVBSVFJLUVRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZWV1NWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYVtjYl1hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSVlZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVUV15ZXV1gXWJiXllfW2VhX2RkXl5jY2FeZWZpZGZdXWRhYGBhYmRgYl5YWl9bXFtYWFhXV1taXGBcW1tcW1haW15WXlldUE9PUlpQW1RVVlZUVFReXmBeXmJcYFVdXmJreXRsfWtaVVlVUVFTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWVlfW1pUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFcVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFhZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dWVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF9jYmFkZF1iXGBmYWRmZF5fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFlWU1xUVldZVlZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdUV1taWVxZWFlgV1BWXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWV1eWV5VU1lXWVldYlpeVldbXFtcW1taW1lZX19gYGRjY2RlYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZTVVRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWVxcXV5eXFtdWFtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNdZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnY19jXmFmZFppaWNmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZV11bXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXV9dYF9dW2BkXVxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVRYXV5fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGlpYmhpZWRgYmFjYV9gX11dXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJjYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVxaW1tjYGJiY2BiZGFgY15gXF5eXlpYVltfXl1hYWBeW2BhYmVjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFtbVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx6e3t7e3p6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/O5vDvr++vsGiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMuodLMzMzMz6qNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh5eHh4eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV+g4KCgoKCgHx8fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ1dXl2dnZ6e3h7eHd2d3p3eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHp5eXl5eXp6fHt7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl7e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGBgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d7eXl7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3t5ent3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp3e3l6fHl8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh6eXl6eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISFhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSCg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1tbW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d3Bwb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnJzc3JycXBydXBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFyd3RxcnJxbomGbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcnCFk3JxcW97nn5ucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXejkHBxcZWffW9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFyc5yogW97op5+cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxlKubcIOjn35wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHd4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3KTsaqLlaade3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHh4fKmvo7Gtr598e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHx8fHuPq5mhtKSfqYh6e3p4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZmhlaOvn5yjmn5/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBmZuJmLChnZ2dg4CBgH9/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgX+XpJ2Uo5uZkZ2Ie31+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/f4B+hqivpp6ZnZ+mqaaPhYF/f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoWGjZqrr6Cbo52fnqKkqquln5SHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SDhoyfq6mgmZminZ6en52eoaCakIaDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgoaPkpSVl5ycnp+emZiTjYiGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkY+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYCDiJCVlJCXnZqRioaHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIOCg4ybh5CUioSCg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKBgYiHjYOCg4KBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/f4mRgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AjJWCgoGChIKBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChZSUjIGCgYKDg4KCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCPlIyQgYKBgoKCgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODg4KDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19gIKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWGhoeHhoaFhoWFhoeHh4iGh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoWFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaGhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiImHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhYSCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKiomIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mHh4aIh4eJiYODhIOFhISFhYeIiIaFg4OCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgoKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4iIhoSDgoKDhIaFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFhoeHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYODg4ODgoKAfX1/gICBf31+fn18fX17enqBkISEgoGBgIGAgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn59fn+AgIGAfn19fX1+fXx6eXyDgoKBf39/f35/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgYB/foCAgICAgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODgoKCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB/f39+fn1/f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46PjIuHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+AgH9/fn9/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAfn2Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYGAgIB/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p6eXl5eoGCgoKFg4GCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChoSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXh4fYODhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9f4GCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iJh4mHhoaEhoaFhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhIOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH+Bg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYWFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenl6e3x5eX19f4B/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYKDgoODgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH18fn5+f35+fX19fH+BgH2Gj4F9fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7enp8goCBf3+BfX9+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH5/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/foyEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+NjIqGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx6e3p9f4CAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fXx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6enh5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36CkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEhIKBgoKCgoGBgYGCgoKBgoKBgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fH18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSEgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgIGDgX+AgYSBfn6Af35+gH59fn6AgX+Bf3+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHt8e3t7fHt8fH19fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoODhIOFhoOCgX9/gIOBgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn5+gn2AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAf4CBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgH+Af4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4SEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WEgoSEhYSEg4GDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgYGAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgX9/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35/foB/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgICAgIB8gH6AgH+BgIB/fYF/fn9/f359fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAgICAgHx/f4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4B/gH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8eHh1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGBgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYGBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXt9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGBgoKBgIGBgYKCgoOAfoGDgX+AgYSEgYN/goKBg4GCgoGDg4OEgIKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgYJ/gYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoCCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCf4OBgoSEgoSDhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH1/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSEg4OCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OFg4SDhoSBgoiHhYSDgoSEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhIWEhIWEhYSEg4SDgYKCg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f36EhIKDgoKBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBhH6Dg32BfX5/fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV+f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fH9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX14hYOEhIOCgX5/fnt8e357fHx9f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIaEhoaEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4eHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B9f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gn2AfH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f35+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU1NTT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19fX1tbW1tbX2tva2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enprG+vb29vb29vby8vLy9tIuKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKVrKqqqqqqqqqpqamprJtUU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFl62rq6urq6urq6qqqq2dWVhYV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2Ni5yxr6+vr6+vr6+vr6+xoWNiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q09LS0tLS0tLS0tLT09HMzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz9HIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7TRmqycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqvzZOInJ7EkoadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeasde9yZiYxbzJl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbHV0pSWn87Rkpmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZmx2bCfw5varaO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZstbNipKex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrPWzdulmbPQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2OTk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DWppq0zY6nmqCtkKeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS16WbtLyjpaigr6eiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dS1gsTVnZKNutWako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cPU09O5x9XT07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPTc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop6cn6GgmJKRj5SXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqempaOgoKGhn5mSlaSampmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6WkpaWlpKSjoqGhnZyalqmqnZuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGipqSjpKSkoqGhnpuamap9fpyZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoLG1pKCioaCenJuamqKXUIOcm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKGnkrGin5+enJmZmpuqYkyHnZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCfqoF9rqKgnpuZmpqnjE5Tip+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enqKXWYmtnpyZm5ydq2pVVYqenZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJudom1jnqCZmZydoZppYFiMoJydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZm6JzaX+imJucnKOLal9YhqCcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZmpdXBqi5ecnZ2bfGhfXIehnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmYo3tsa2+HnJyelHBlW1+KoZ6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZ+Ji5J0fpygo5F4ZVVgkKGfoJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZqgppyNbIixp6R4ioZjYZecm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWpaCIeFtrp5aWW3SBfHaUko2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQkqiPa1RQcpyKi05ddHiAiIeCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDf5OoejsvPHiPenlHOlNvdYGAgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+emU9PVD97hG5mTjs1UHB6foWOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIGApHVTgXhQfJWJeVJofFJcdYSKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjZ9hjdbAX6avpKZwcYp/VmiGi4mQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqORZb/QrZXbt6bAsVRed2lVhJCLmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqaqygXOzr53RxaKYrK1xasWHUHufoqSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeorI1+k4SKyM6ws6qSdEausVtwnamnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKWjoqWhjINvmLGjnpyHgXRjeox1bZSkoqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq6mppyonYFrUYySgH6CdnRvcHN0foCQo6Ghn56doKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyrqyrqYNwX0hvdW5xdmtpZWhmZ3F2foqWoaSln6CimZWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3tbO2ur27r5RqY1dIXGtmanFnY2NlWlphYmt1en6IlJ2jppydoJqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre+xc3Qx8C1ppN3Xl1TR1x0a2pxZWBjaVpYXlleZW5wcXR4hZimrqelmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbzQ3ODZyruvoJF5Y1xeU0FfbGpxd2diXmdeVVxcW1teZWRiY26JssnCuaGnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8TAztfYzrqjj3xvXVZYWEw9XmJodHJtYmFmW1dXWFhWWFhdcZKwxcu6uLepr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGusTAx8/Sx6aFXU9LT1NMPVZXaGJgcWhhX1haV1hWVF6HscS9s7S2qrWyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbadx7OMXFNWUENWU1xhZnBlWFtaXlhZZ5Cvv7q2pqmpqaqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPExLm0v7m7yq55XVBOV3x0kJeWVVRYV1lhgbC3qauytKyupaWjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodlpmcnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+t73Dw7J9Vkxwd5elnU5RU1t0oLW3sq2suLWzrKmjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8PHyLCAYFiRppJITG2Xs8K8vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXCxcXN0MeTi6iLRW25xcnNxsXBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlmdW90Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwcDBxcbJzrGMXmnE0MfLz8W2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZja2Ria21ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMHBv8DJkz+U0szFyNHBr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zJzsG7v8C8u8S9usDEv728uLvAxatIlczEwMDJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dqZWpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1I26v7vDtbrHt7a5u7y4ubW6w8mpTI/Jv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVsaFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R4qsu9x7e5uK22tLe5s7WyusXJnE2Eyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNeudYK8yM/CwLiutbW7vbe5sb7Dx5FUf83Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjaGJcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nSmXJ0rtHRzMrEtbq/xMi+vrS+wL9/YXbLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0bGxuX2NfYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYZzdKbMzMvNysbCw8vOwby4vLqweHFpu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1tfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppyqsrbDwKV5d3qcxMbLyMHDwMDJysG/u7myoop/da7IxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wLyqfW5obm1ygZaYdHh9mb2/xsC5wLy+xcS9vbixrqCfjI6dysLDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGBaU1BBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnWBs722tcGkhmlaXmBNUltbb3R4g6K4uMK6s7u3u72/uru7rqKippefgL7Ew768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3FhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEeIqgr7WcamZnVllgSUlNUFRteIinsLe+ubK1sry5vLa5vrWVpbWlrXatycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8apiHx2jKGYX1NDWFVHYWpWT0VKYY6ira+2urW0sqy8ubi1uMG9i565q651psvCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT5KQkBKSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCCeYiQbk5LP2RZQk53gJRpTUFdg7C1s7WytK+su7q4trm/xnaHsKScZqm/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1VeXFBOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEfFhGQU+HWUpKWHeNgWJAU6O5s7SysLGtsLm4tru3u7yRo7OtpHSssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0bmVVYWRXXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlGhNP1J4cVBJSUtonIBaRVKuu7Gss6+urK22trK0ta6pp5+am52fpqieoKipn6GnlpuWl46dlI+Qlo2Xm6SooKCioqGlpZyjo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpb1oRFKdglFXSUpgSlWNYWRjga61qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpaMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW1re2RoVlJkTkpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKrGv8qgUEFznXZPbUpLY2Z0c2BcYHKQsa+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqerop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqumq6qgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXpgYlNVYUhJSktTVEpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykxsaMV1NKZaRaZX1vcltRa2NbZWFea4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpeZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJsZltTWlpNUUtPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF2dXBjdnZYV2NgY2haWVdnra6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2anh1XW1bUmFJUlVIRlVXSkNNRz1LSThFPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKOAb4JwYGNYTFtSWkxLUFhSSE1NR5isqqmkn5+ZkpKUmJiWlpaMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC1srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWltXFhcQ1dOSkdNSENGTj0+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56dimJXXmVgV01RRz0+P0NDPz5CUXipramqpZ+en6KjnZ6dmp2blJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDJv7C5ub25wr64tLvGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoaOwsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUZEO0M+Rjw/OTZOfqqzp6OjoqCepaumnpeclJGanpmVjIqGiIZ4bYigpKKrrLS8tsO9vrO7wcPCxcC/wsbFxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDysnDwce/urS6u7W7t7C2sqq6sq68uL+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94amVaW0ZMTUVEVE1FQ0U3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8b2FCPVyOrqygmZubnp6Zl5eXko2Pl5eUj42QjIKDgndycW1wj6atrrS5xbvNx8u+wczNzczIyNDMzMzHysXGzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM/AydHNx8bIxsK8xMG+v7+2vrOtv8DDw8fEx8Svv7myuL3EwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpET01ERVBJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnZVqZl1USURAP0qFnqSZg6CyraOenJ+amJeUkpSWkZCPjIeEhIiGg4CBgYB5cXJvbHmktrq5vsvB09HTyM3O0dPR0tDQ0dHNzs/Qxc3U1djR183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmpkVldSRE5GQElRQz5CPToyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYlRMSkRDP0NSr9G9sq+mnJycoKShnZqUk5WUiX14cWtlYmhycHJ7hYqAdXBucXNwhbPDvsXR0NfW1dLWzdTW1tTT0dLT1NLP0sPQ09bY1dXSy8rO0cvGzdHK0tXW2dbY09bYzdLKz9HMz9HM09DAycjKxMzMzM/PxcfItsDLwNLNzNDGysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJjXVJcSUtHQUVJSj47QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVpJQEFEQUZRdrGvppqUl5+cmqCgnpucmpWJd2ljYV9fX19eX19dYWx1c3Bwb2xxcXWSxMjH1NbX19bT1tDV1NnU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDY19jR2NLX2dTWzM/Pyc3Sy87RwMbDyMbPztHR0sjMzcDLzcbUz8zPyMTLx8fIzMvU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1iY2ltX1ZRYEpKQ0VDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tmQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF5hYF9gZW1wcG5rb3J2d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR1MrQ1NXWztPR2NfX18vIzsTJz8zKzMDKwMnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFpKRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxe0hGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGFgXl9fXlxibXJvb3N0dXZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc3Uy87SzcvX1tDM0dTLy9DS08rO0dXS1dXKwMrBxs3CyMrDzMTGyMvLz8rOzdDO1MzGyc/NycfLxcfCxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO5s7K+sbvDxLWqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYGBgYWFfX11bXWdycnByc3Btcnmlx9PPy9DQ09TJxMjJxca/w8XPzsfFx83K0cjLzs3G0dLQzszUysfKzs/Hx8/Sy9DPxbrEv8bKvcPIyc7Fw8fAx83IxMzKzM/IxMTQycbCxsnFv8HHzMvMz8LLzMnHy9DFxce7x8PJycLPwb28v7DByce5vKqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11dXl9gYF9bWlxgbHJxbm9rbG9vfbnRyMnKz8vNxLq/w7q7urm9yMbCw8DDyMrIyMrIwcXMxsjKzcnEwcrJwcHL0MXLyL+5wbzGx77Axs/LxMDDu8nHybzJx8XKwb7Cy8bFxL7Gvb3Bw8XMxca8wMnDxcfSxMHJv8rKxsjG0cPDxsOuxMvHxMq3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0JHRUxERlNANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCFhX91eHVycF9aW11gYGJjZGRlZGBcXF5dXl5gW1laXGJvcm5raWtwb3OPx73JxcvAxsGwtrmxsbOyscK8vLy6uMDBwcS+vbm9v7nEysXGwr3GwLe7w8m/wcm7tru6xsO/vMLOw8a+vrXBvcO7vce8w7q0vcbEwsO3wLa2vr+7zMO9trrIu7++y8PBxsPGycfJxtDGwszHssfJw87MwcXDv72yt7Cyp6ioubClrbCqrayUenZ4a2VoYGhvZFZeWUpGSkZIS0FGQkZJQDk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183KzsXJxcfBusW9rK6mYGN1gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29y8HDusC4rbCwpqmtq6a4tLa0s7Ozu7a9sbewtK6yu8K8wcS8v7q0srq+wLjIuLS8tsHCvbi9x8HEu7WvsrW6v7TFuLu1rLm9vsC9sbu2sLe6s8a8t6+7v7W3tcW8v8PGwMTFxsfLxcDGxrvHy8DOycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4mOhoiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteW11eWltbXV9scG5pZmptbnJ8pMa/uLi0r6qrp56hqaaeqqyyraqsqbSttrGzqa6nrLO7urbDubq5sKu0ubu0wrmvwLG+vLu2vMe5w7etqqiwssC2uL2wsaixs7W7vKyutqautq67srGqubCuu668uLzAwL66w7/Gw8XAvMbCyMu4xcfFv8fEw7rExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxLTUpFQUNARkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMG6s7W1w66qsJJbaX6SiI6Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2JjZGJgX15aW1paXVpaWVpcZW5vaGZnaWtucoGturC1raWjpqaZn6SfmZukqq6kqKKrqqyqsKOmn6qttbaxvLivt6+orri0tLy4s7yvuLm1srzBssGvpamjq7Gys6i9qquoq62utbSmqK2hpK+psqaoqK6lqLessbO3urq7sry+vr7Ev7XBwcfIt77AxbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwsu+u8m2vcO+usq3wcPBtLa8trGvtbytqauSY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZkZmVoa29yhamlq6Sdm6Cjk5yjmpeQoKKpo6Kfpaanpq2gnZukpqyyr7e3p7CsqKq0q7S6sba2rra5srC6urG3pKCkoKaxqKypuqqlp6eop7OtoKinn5ykpqyfn6ekoKGxra2ssrWztLG1vba7wcCyu77DwbG5ucKzwb3Atbi8vb68wsfEw8S/wMSghHhxbGJmYGtvYFRZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrAur21oJ6UnaGmurars7O7s8TPycvCxri3x8DMv7jKt7vFuLPFuLO/wKy1vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFtdX2RjY2ZnZ2drbW6HnaielJSZn5SZoZeVi52goaacn5+kpaKnnpuim5+rsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6SisqWmqrmtoqamoKitq5mgoJ6ZnZ+lmpqjnJyesKmsqKqsra2ws7mvuLm6sLa8u7qrs7O5s720t7GxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpdYmRkZmZmaGlrcoynm5GSkpmVmZ+UlY+boaGonpudpaaipZugoZqZr66tr7KhpaOuq6iitbCysqypr7OnurOmtqGjn5yjoa2joqq2q6Ojpp6mpqOWmZ2XmZudoJqXnZydnK2hrKijpKatq7O0qrWwsquzubSvq6+ysrO4s66pra6yt7C6trq9wLizsZSGeXVmX2ZfW1lWU1pVS1tRTEpFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx862wMO9s7m5sr+2sbm7rbK0r5+ao6qglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJqRkY6SlJWdlZeTlp+doJyWoaGopJ+fqZ2bm6umr7CrnKOkuKmgoK+ot6unp62wpLewpLego5yZmaqmoZutubCjoaScoqCfk5ShlJaWm5mYlpeclZ+pnqqkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6iosq6xtLC8tLq4rqOVgnp2ZV9hV1lYU1JUS01eTFBMR0hMS0U9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiYmNmaYCTj5KKj5GSmJabk5San5uelZ+fp6akp6ignZ+moKuvpqCio7eooaGiqbOipailsKaxrqy1nqGdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5uooaKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxsK+gknt4c2ViXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlRSVWBhX2BhX2BgYmRpf4+Ph46LkY+RmpKTlaOZoJacoKWhraalpaSko52qq6Wan6WxqqGhnqWqnqiin66sqqmtraKiopWXopqckKupsJyfop+fl5iTiZ6RjZKTlpCYmJOcoaOcpKGilaCipKWbo6uloqOrpKutpa6yqqalpqa0pqqorbO1tLm6sKusnoxzcXBgW1dWVlJGUE9IWlxPUkpUS1NMRUdKRDg7Oz48OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvcPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5eX19iZG2KjIGOg42NjJeRkpGcmqGcm6CoqauorKeppqSZpa+klZmlr6mgnJmboJ6umpyrtKCmpp+jpKGUk5uWlpKpqq2bnaChoZuUkIyZjoyRjJKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKajpKOsramoq6+0t7K9tbOrr5iFdXRpW1hZUlVSRVhMUVtYTVVPUUxRUklOSkI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Hs8S6t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlaWlpdXFxdX2BkfIl/iHyJjYeQi5WPlpihn5qgq6qmr6yosKWpmp+toZWWpKinnZiQj5qer5eZp6qZoJ2UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2ooKOstKqup7C0sLm1wLGusauQfnJ0Y1ZUVk5SSkdWUFJSTExYTkpMT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52pp6mysKS2xrS5urPKxbm6wcvQyrK2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnJqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJOTk5SV1haWVlYXFxdYWp9d3xyhYuEjoeViJOSl5qYnqibn6umpqyeqJmgppyTj5+jmpeXhoWSm6SQlaOdlpaWiKKbm5OMjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKhmqCilpSYmJWippqNmaSnqaehoLSyqLO4oZyjt6ypraSzsqa1u7WrrLGjinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYWl1hbm9zbYGFf4V+j4KNiZOQkp2hjpqco6KkmKWWopyVjYiZmoxzjYN+jpeWhpKakJSOjnuZj52MgomAipigo56Qk5iWhY6DlH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+qmYN4dGRWTVJQUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEt7nBzsa+s6y6waytxK2ooqaSnaa3raOgkJaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOVFNTVFVVV1lbXWlpb2p8gnpyTVdxjoGWhYycl4uTkZ+YnZWUlpSPloqAlIlfO1ZvfIyUioCMkoyQhoZzi4WXgXmBe4aUnZWDlY6RkIOGfZN4cXCGjX2JgZCOkJeamZOLkIqciJ+YiIiWnpqhoJenrqmtqKielq2zoqaumaysmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqmgpqmno6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsSqop2Yg5ScsaOamIeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0lGSE5RUU1PUlRWWFpga2xmeH9yT0E/f5WRkHyIlIyEio2bjpaViZKIhpWHeYl/YEpRbniLkoR+hI2LhYB/bX9/lHd1dniEjZpwUY2IioZ8fniUdmh3hoh+ioiVi46Rk5eMhIqIlISbjYOEkpuWnp2UpKKoqaWknpuwqqGkpJKmqpaiqpyhpqiJdm5nXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Guoaeopaeor6yqtry2uLezwbu2qLnIuLaoqLW2qrK8p56VjX+JlKmWlYt/joOCfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1RWWm6CcXR8aGdbU4+JlIhzfoaBfIWMk4KSmYuPe4aPgHaAeHNvdXF0jo6Ben6Kq4V6emh2e45wcm14gYuNknh7gHuAd3NzknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foZ2gqaWenZiNp6SToJ+Wnp+kgXNpYl1dSldQUkdLWFJPSk1MUkpKSkxQSExRTFJUTUZJQjw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/doZ3fHZvb2pZS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7d2V1i5WYjY58Z3iAdnh/iZB9hJiSgHGHj3x3e29rfq19dJCLf3qGkoB8f3RmdnyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHFrh6aqwH50eGJ7d257eYiQeXyLhm9tjJJ5dHlqaoCCcZaRjIF9lX9JkpluaHd+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Str6Ktqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVlcX6eHYZlocnlkfm9sf3qLiXaCiIZ0bJqSdHR8amqdjk15hZOJhI5mMXaHc2x+foN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxbnVtgn93eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUlpYWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqQmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcWdfVEZJQz48Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEFJUUlir7KfcXp3a3xscYKBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihXZwh3yHfHOLrY2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bXJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5cWllhX1JOW1pYV0tISkZJRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJWRnaSnnq+VpbSprrCuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eG13bndkal5JUEc9Pzc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVFTREuGdX98e3V+bHaIiHx9hIN/jH51opp6foaBhJmEmpxhhqqfnYqDkI56d4l+iYiOc4qXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWZnYFtbXlNcZ15XUFRYW1VHSkpFS0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2Kg46MeIOAc6CEinx8gX9wgX16aHZsUlhMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RdWVJLaIOIe4l5e3F8j4x6fImHfpeHdqGaiIePkpSlja2pSIaur66LgYCTioKLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2CiH+HhIt5lJybiYuIkX96dYp2fHhtb3d+gHV1c21cXl5bY2NYZ2ZcVFBQV1lQRExLRk9JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KWoJ6soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTU1QV2BYcFlcXmmMk4aUgISBhZGSfoWIkYCalYKhoZiVm5qmrZOZu7Gnu8fDqIuMoaWPlImBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3h397doR8bnZ1Zn+UjoeIiIeIh6CqopaJjpd/eoGIenlwZ2t4f3t/dWxlXltbXmpeYmdgWk9MTldSUUlQSkROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N6f4x/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJTExLTlZgY39mZ210m5qOmZKSio2OmYiSj52LoKCSo6qlpKyTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomNj5aktKmbjJSig4eSg31/a2pqfIGCg3VjXmRgW2dsXWxsXldLSE5SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExMTU5SXm6KfHOBfZ+cm6eloZmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopOXl4GUnnt3lZKrsomNl598lJ2bjZKVmKOhprWvnJCYqIeWj42AiGxzc32BfXNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0NCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAvLy8uLjAwMTU+QUFNUVJUUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlthY93lIqipqm0vLikrayspqi0q7C2srGtu7Gzvpyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKwkqKdop2Qo6Grr6yytaKUpKqImYiSiZV5en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW9YeoV2gZOFiIKbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaChImHiIeHcW5hQEU2NDwzLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hFPD4+RkhDRUE3Ozw1Qzs9RktJR0hRT1BXgZKfhK2jsqmxwMbCqrPFtquzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqa62u7K6rLC1orGrsbW7t7WutKCnqKOnmqmvrLK5t7imm7apjKSOkZOfhniBhXdaY2VXZ2NiZGBhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJjV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+HgIaIhYqHkXp4bl1WQEVOPDY6NTZBQjc2NC8vNkNIQlFcUFFVV1VcVlBfVUlLS0E/PkdLRkZEOz5AN0Q3P0JKSkVGVlNQXo+kraOxtMK1t8HLyLW7xL2zs8C2uMG1v6+3dLGzpbrEpLDGubGzsbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7m3vre6t7msrLClsKmtvbC8usLBq5i5p5StjpeXqoh+g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joSAjYRuenN4h2K5oZmjiZSUlpKUk42PlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGLhJV9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1JSWVhaZ1lUYGBMU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2Trri0urjIv7m9ycy7u8C7t7W7ura9tLqxxmB1sqSxmp6rvamlqKuqpKKytaCrqJ6Vlp+Zn66lp6aln6SToqextKeysr22wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euamhq46kqLWIgYFzYGNjX1hjYGpnUlhgVlJVSUVFTktAPkdEPUtBPUJAPUY+O0hBNzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+MhI9zbHJyc4fVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop+g3+DeHuLg4d8i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEhCSTpEP0hLVFRWXFpbkrnAuL22xb+6uMnKura5tbe5sre1s662tphkdaicrXBeoqycmKCim6SeqqWUn6CQk46WmZennqagnpqZg6SerKWqsK24sL251NHP1tDKzNLMz87Kxr++wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mH97bV5hXVpfYlpkY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzM3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkZCUbmxvdHWHs6ugoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2ppaGBmaWlsWm1zlq2kvIiGZ1tvaF1aWlRIS05PSktQS1NRSExBSkZKT19eYmdpYZe3x7C4srq9tbHExrWvuLCwu6uysaert6uMtqedmqeaTpqdjI6flpGmmKWVipOTiJCJj5GRnZuhl5qVloeemqebrK+osKi0tNTV1dbTzNDT1c3Tz83FwsnQvsnJysnRx8zNwtDRt6/DvMS5pbW6wqKDcGVeXl9ZYVhaZlpRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmhxb3l5g6CpnqaXjJqbl4uNlZGajn2Ji4SNioqLkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bnhzbGmBcG1jam1weGl3fH7Lv8Hfp21jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKawtaqsvL+wq7SmpLimq66gq7SjjrGumpeYjJGTkYSOm4GNppGciYOLhIqJhIuElJWXl5ObkJyYmZqfnquspaiirK3P0tXSzszS1NTQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t86ee3BnX2ReWGFTXlpQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd299fn+hnp6hjIyYk5OLjJKPloR5hY+QjYqJh5GGfoF7cn5/gYd6hHWFk5CIf292cmtzfXt2e3OBeHJqgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNZZGpUWFxdYGReY3d6fouBmKmjpKGfoKilqrC4qqWzo6GtoqOtoaexn4immpOSkYmRjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2Umo6Gk5Gel6ewoaGhpaSpyM3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjHRwZWJhWVVaVFxQS0dJSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnJSdlIWLlYmPioiNh45/eIOTmIqMiIiLiH6CeHN7fYOHd396hpGVf4Nud3BtdX92eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqY253W15maGtuaW6Ag4iQi5ydoJ2Ql5ieo6OlsaOjsp+hpZ2gqKCjsZyFnpKSkpCKjouGg4+EfpybjI2ChIV6lH+CqZWjjJGKl5KLfpiLmpKrs5ibnKicp73Dxrm2xs7S0NLQy9LLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvLtXp4cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxc4WNfJeQnYt/h5KDiYaFiYGHfHiFlpaIjoOHhYZ6hHlxenuDhnV6hY6NnHmLcHxvb3p/cXuBcYOHgG6OenR3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6i4aOk5GblZ+Vh4yTm6CanqmeoKyboZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bJl6hJmGiJOMjZSMhnyciZSPrqqUlpifmaevtr2prb7Hy8nJzMvPycTSytTX2dfY19Xb19PZ29XQ29rR1sjUy5Z7fWpqXFtRVFRfSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSal5tZGJma3aAiHGRj5qAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5bnt7hoF0epKejaB2jnWCdHWBfXOAhG+BkIJvkoR1fIGFenaGe4i3xaTBybiBlpqPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkYSJj5aZl5alnJeflp6TkpeinZmrlZCQiYyRgoyFiIiBhpCRnpuZiIWMgYWXeoiJn5eQiI2Ki4J9oYqRi7ygmJOXmZ2ppqaun6i2v8DAucfJzc7FzcrR1tXV2dXX29TX2drb19va2tjO28aIfXtpa2diVVhWVk5MRE1COz09PDg6PD44PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsiYySd3Z6int+gH5/fIR6fYKRiYSFeoSHenV9dG18fYZ+dH+SnpGeg5F8hn54j354iopugpqAdJmGfoGJhXx9kHqPqY6Pw6G9i5yjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYuQkpSOnJmSlJCWjYyVn5yUoJSRjY2Pi36Qjo6LhImSlpqen4mMlJGdkYKLf6WZiISNgoWEgKWHiou4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bWtnWWJcVFBPSUNMQTw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlheVVhmbW1taYGOinFzeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFnKGanZSSgIyIf5iHgJyRboeohXqgi3yRjYOIhJt9mpCKjKOioJCkrp+KkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKTi5SUk46Lj4qHlpucj5SWkIqSk4aAi4iSjYqKnJaZoqKGk52WoIqJiI2ckIOIjn+Dh4WkhoyQs5idkpWXoaGfmZKcnaiyuaymvcHHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2loX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWF+kYNvbXeLeHl/eoF8hXt7doWEf3NwhIF6dXZ2dISDhX5/kqakn6WiloqdkJSXi4qol3OKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqa+fkZSQjY6IloxujbeFmsTIsZuhpZucmJaQspFkpM3Ilo+Gh4iPko2NkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYiNkKqWl6OjiJmflpqIjoaWl4qEjo2Bf4iPpImNk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NPazoR1gmtmYGBfUEtWXEJCRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJkg0d1go59fG19iHh6fnqBgYJ+dnaAgntsbop+eXx3eHyEh4t+i6OzqKSrsqGWp6ClpJaVr6KDkLiVkrOZjaGgjKSbr6KknZiQp5epma2vpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoop2YhYiIjpWMi5OPh4GGh4iSmJSMipOThpSYhoORkJx0kZmylZakoYicmpOPipCKl5qJipaNhn2MmJ6KkI+cmpmTmZiflKCdlZ+bobGuo6S3vrPFx8S9w8O/xs7KydKnz83T0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01bXFlJaGE7SISKentthYZ5fIR4gIWAfXB4fH18b3OMen2Ce3iFi4mGg5KovK2psr2vpa6zs6mjorCsipq1naK4pZWtpJeprbempKOfmamYqqSvsKmamZuUlZGYoJeZu7utyaFptreqsJWYnqKrkpe9o16psoKJioyUh5F8jo59g4aNj5SUiIeSlouPlY2LjJeZkp2atJaVq56LnJSSjZCSi5iaipKdj4uJlZ+hjZWNl5mdk5yYnpWioJScnaWvqKGls7irwsjEtru9vMXIyMLQocbJzc3E19bQytOjc31rX1xVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSUCLiX+AcoaHfIGJdYKKgn5tfX18fnB3h3eNgYd7jY+Mhoyaq8PAsL3Gu7O0wby0rKuzt4yosq2tvaubuqSorbm3qqamoaKjo6qvsrGqnZyjmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ihpytva+Ci4uKkIOOg5GOeoGHkI2OnIiIj5eNipSXlJCal52nmrCakaudjpqPko6VkI+Vl46RoJCIlJujrJWWj5ScnpSgnpuYoKGUmp6np6SipLCzpsHGw7Cwu7bFxMO/zafHw8fDvNbQzMTKinZ1ZF9cYl1PS0NMQEVGPkE/QTw6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnWl1ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lXqSlJSYkZOVqLTHycDCzMHDuse8uq+rubuXsra6s8CupcCkq7C8vKquq6Kinqesr7WwqpugqpyinJafsLSni6K6urXBu6uonLKkpKiUhI6pxMOkgouOh4iEhpWUjHmDjJGPkqGMjJSRj4iXoJeSmZWXpqCunIyqnI6Wj5KRlZWOkJWRj6GThpefoLKflJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxL7Du7PRycfBtXd7b19aXmxUTklETUtLSUBBPUJEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNl4mLiJKPhol5hpOQgXJ/e41+d4eBgpB6jaGWqJqamLu+ycjKwtLJysLNvMGzrbu/p7q/vrzEuKzBqayzu72qsKqkpaOsrrSttrWgoK6fpaKYo7S8qZuovMGjtbavq5KvrKqrloaaqaelkYKMk6SVioB1iZJ5hY2RkJ6gko6Ui4+MlKOZlpuUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAua7Ds7u+wbitwsLCv5lwe2NbWF5cTU1OSkdEREhCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZFeekJ2Nl46ekomKf4ifkoR4hX+Vfn+QiIqQgJWgma6no5jDvsnEyMbSzc7Ny7zCt7C6vbS8y7vDwba3vK2zwLm8rq+ooamotq2uqbK3mp6soqehnau3t6mlr77Esb25s6eps7OtrpaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZiTk46TlZOlnpOdmZOhoqGcmJ+Yi4yPj56IWpCWl5KWpZllmKOes6WWoparraunnJ+nl5iWmJWhpKinn7asqbq8w7WmtLXLwbiqtqyzu7iuqLi6vLeEbnBcWlZXUEdLU01LP0FIRERIRkY4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJlY0xGpZSclaGXqJaMkIOHpZKIgYeCm4SDlZCRlI6aop+vvq6hx77GxcjHzs7O0sq+u7axuru8v8+1xL23ubeysrazt7Ospp2rq7irqaivsJejrqSnpKW0wbCrrLO+wrnAubOnuLS3s6+VpK2wrqSLk5WhjXPBmX2WmYSOlpmLsZWampWSkpmZpqOVoJuWmqmcm6GgmYqMj5WcYEqWnJqUmqWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqyrrbKxo6GysrSlc3FnXlxQUk1FUVFQUTtIS0lGR0FDPTlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1NzYlZGSKuXmZ+hqK6YkJeHiqeWjoiShZ+IhJyXj56gm6Oltcm0qca8w8TIy8nIzM7Hvrqzrrm5wMHNtci7wbm1urGvr7K0p6ObqrS0q6mmrayZpK6lpaisusCoq7a2v8HAv7iyssOwt72ro660rbmliJuXppt2vp+EmJyOkpiai66WoZybl5San6GpnqigmpuqmaGnnpeQjZCdg211k6KalZyin5CusqOrlamqmKuvpaWgpaqTkpmciZWcop6Wsaapq7q3vbOyrr65tqCjp6mlppycrKmpjWZoYmBTTE1HSE5KVUw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslZyhn7uumJSei5Oqm5GRk4mqjYahnoyjrJSkpLbHvbTBu8LDyMnFws7Iwr25sq+5tMDCyrbGscG8tburqa2ssKOjmaq0uqaqp6yqnaivp6Srq768qK28tLi+xry2tbjAsL2/s6m1tqu+pI+il5Ghn7ueiZqgmZednY+2nqmcpaObnKGap6WzopuepZyoqp2YlY+Um4uWiYykoZScop6hta+lppOxq5qrrZ+fpaSqkZaVoISQnp+clqmkoaG0tLq1rai1srKenKOmmpeVmaqhnnhjX2FfTElHSE1RSU1ERkZBUUtJQURHQVZSREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7DrJuXpJeZqJuVmpqPqpaVqKaVrayZoqq2xcG8v7jBw8HIxL/Nxru+ubKwuLS/w8i1v7C8t7q3p6Srq6yhoZurqsSipamspp6rr6yiqqi/uKasvbC3t8a2tLm4vrC+wba0srSvvaOWo5WSm5Otn5ChoaSio56QvqSpnamsnZ2gm6afvaKYo56iqaugnZaNlZ6TnoeOhI2TnqShnbWsppyWsqaZsKmgm6ufoY2alZ+EjqGam5KlpJqYq7G1saqlqq2snJigoZKOkJWon5RpZVtiXlBKSEtPTEhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRTg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNXTaKbpJuexauhn6udnK2fkqKelqWgpqmsl7axo6qztsXCvcC2wMK8ycK/ysi2uLW1sbS0t8LGt76xuLW6tqCnraqrnZ6fpaTBpaCprqCkqa2voqaovbWlsbu3trXDsrO3ur6xw8C4uK60tLSjnKSUkZOgrJ+YoZ2oqKqimsKtqZ2srZubnpimoL2hnaSYq6urpqCZjZmfkp6Ijlh/lp6moaC4qqaUmLajnrKioZywmKCPmpSego+gl5aOoqOVkKWus6upoqKlpZWVnJmLj5GTpJ+JY2dcZWFNSktLT0ZFQUZLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTE+eoKGYnsOnpaKzoJyyp5Oqo5+jn6yprJ27samstbHIw8HDs8LEvsfEvcTKvbCwtq6xta/AxbW6sbC6tq2aqbCpqZuepqGowq2brLGcqqKusKmkp723pra6va+3w62zs8K/scazurertLauqqKmlZWUoquhn5+Zp6uvr6+7sqafqamZmZeToqS4oaGjkq6vq6SlnpKhnpSdjpCNlJ2ao5+ntKenjZi0nKOvm5+cr5GglJiUmoCSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NCQ0BJRzs7Rj44OU5NVV5SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2ZyQDg8SJZ3ZUE0n6Sfm5/CqKOpsaCjtKmVsqumoqSyrK2pu7KtsLS0xr/ExLW/xL7KxbbAycK1q7WpsbiswMW0uK6ttrqlmauyq6qYoaeXrbu1m6iwm62frrSyp6q6s6e5s7iyuMCquLLCvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62ytbafnqikmZSVk6Ogt6OkpZWusbKlqaShnpqZmpWYqJ+emKKfr7Kip42Xr5ilq5ibn6aSnY+VmJqGlqCVjJCdnpSLqamqoqehmZ2WjI+ZkIGGlomVn3plal1sa09RTk5UPUJBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKGlv6aorq6gqLWqnbivq6SqtLexsLi3sLe4t8W9w8e9vMTCx8G5wcbBuqq2pa27rcHDt7iqrbK8o5WtsK2yl6aokaq5qqGnsJ2rn6+0s6qqt7Wsu6uzsrm3rLiwwbq9v6bDqrC2rqmqq6admJiqoaGgkZegsK6zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoJedpLSwm5+QlKaaoKmblqSgl5mLlpmUlpedlImSm5mUjqmpp6CjnJibk4ePmYt+jJeGj5psam1ibm5YUVFaVEFDRVVAOztIQDc6WFBkXlBXV0RZXl5OTFJPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbyhqq+qorG3qKW0squhrbW9r7O4vLu9t7bBw7/JxLnFw8DAucW+wbivtqirt7K8v7+0qa+yuJ+XrK2orpioqY6nu5+lrbOfq6KxsLOsqraztbytr7G1rLC1sb+6xbarvK+xt6ysqaKxpZ6kqJ+jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaeyq7Gpo5ueqKSelKCZm6m2qZeakpKfmZ6hn5KtoJqZh5aZjJ2anZSLj5aXmpempqOgnpaWl5SBkJWFe4+Tg4yXZ21zaHBzX0dZZlZEQ05YRFo5SEI1Pl1RaFxOWl1HW15dT01SWGRKS0NdY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApJqfpKy2o6yopK6ttamus7imprC4xrawt7/CwrW0usW+zMW5w8G6wLrEuMG5srWsqrq3u7q+tauusbeZmKirq6ucrauPq76eq6+xo6qfsa2yrq61sbi2qq2usae1r7S6vMmyqrW0sbSvrqags5+aqKygpJWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC0rqOZna2nm5edmZmsuKKXk5CPmJyhmZiUraCelYKUmY6enZqWkYqUk56apaOjoZmXk5KWe4yRhXuNi4OLk2xveW91fGFGYGpaSUhaWz17SkdFNkFiVWlbTVxhSltcWlJTU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRLRZqWn6+osamspaOurrWpt7O3o6y0t8q6tLu7wL+1s7fEwMzHvMS9t7/AwLjAvbK9rqi6ube3wresrrK5lZenrqynpLKqlK+7pKyysqanorGzsLKxtLC3sqmuq7KmuK+1s8TFtqm1tauwramnorafn6axoKSUm5iUsJ6nm5+pjaminZuVl6WlpLanorCzq6exp62vtaykmaGsqJycnZuUqrmclY6Oi5icopiRmKijoJiFk5eRnpyYl5eIlo+Xm6icpKGSlpKQlneEkYZ8hoKEjI1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dmW0xeYk1YWVdVWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRESRmaStpKytq6ajsLKyqrewtZ+rtbrJuK7BvMO3s7G1wsPPxMDCvrS9wcC7v7y0xKirurG2t7+9r6y0tJ2hp7GtpaaxpZ6ytayqsrGrqKi0uay0srWss6yqq6isqbmtsbDHv7ikua+pra2mp6ywpaSjrqOpnJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKuztKSqq6isrrauop2jqKqcoJmakqS0mY+JjYeRo6CWjpWfopaVhpCUlJ6bmZaVh5eSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFJkbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1RZaF5RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rP0hJkJqpqqGpr6Sno7O0sLS1sbCgq629zLquwbzHsbSutMLD0cTFv8GyvsPCvL+4vcWorbettLm8wLCssq6ho6euqqelsaOrsaquqrCurqyrsrqnt7GyqbKpqqWlo626rKqwwrm0rLmoqaitqaewpamkoq6qqKKenKKslaWdl56Yq52hp6ihrKairKy3sLGgqaKfqq2wq52epqepmqOXmJCgqJiGg46Ki5+gkIyOl56SkYeIkZWhnZaYloaWk5OXpZydnYySkI2Kf3+IhH13gIeFh3V0col2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTVVWVVdRXGJfVE9PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXUBNRpWWrKehqbGcqKivtay4ta6ppKurvcm7sL64w6+wrbLExM7Ow7+/tMHExLrBtMnErK+4rrO5wL+0rq6spqepsammqLKmtK2qsK2tsa+yrLO6pLizrKytp6ufo56wt6uqrbm2pLW1o6morKyqrKCopqexsaOmpaGhq5aqoZSboKWeo6Kqo6yinqaxt6ysoqWimqmqramdoaWkpJmfmZWPmJ2TgYKQiYWdoI2Lj42bkJKMhY6ZpJuSkZuLk5GRlKOam5qLj4uLfIeBgoJ7dYGEgX51eIujh3hrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYlZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkJJSESWkK+koqmvmKmorbWqtrCqpKupqbzBwLi5tLy1prKvxMrL0b/Bu7jAwMK6wbrCxK6xtrK0u8G+s7KvraysqLeqpq2wq7iup7CwrrGrtaq1tqe1t6uspKmqnKOes7OoqKSztJ+1raGpqKuoq6afq6uoubapqqmpoamfrZuRqaGdoKOipqKqnZumtK6npamio5elpqapnKKjo5+ZmJ+Rjo+YjX6HjIeFnp6IhYuLj5CSjYWHlqOajo2akZKQjpKfl5mWjYuEf3SHgX9+eHWDgHp4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSYk9MVlRVUU9YW2JWSFBqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lY2voKWprJmqpK2usrSvqqWvqam7vrvBsbC5raK2r8nHyNDAv726vMO9u8PBwL+vsrOytr28wbGys6uzqaW1qKSss7K4r6KttLGvsbmquK6qr7erqp6pq6CjobWtqaGer7KhtaqeqKeqo6qhoaytqL2vq66soaenn6uZj6+imKKgqKaep5uYqbCoop+soaGSoaKippiZqKWYmJidj4qHlIh8jYaEhaSWhoOCjIeQj5GFhpShlomRnZCTkI2RnJSXj4qGhnh0gX99dHh6gXt0dHtqgoijdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDNI+OsZ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJxsjQwr3Avrm/v73JvMK5sbC1srq8ucCztLytuayjtaanrLG2uLKmp7q1rbS8r7ulra21qq2cqa+kn6WsqqecnaqypLSpmqqnqqSpnaKoqKm9q7OwrZ2po6CunJqyopakm6Skn6SamaeqpZ6aqaGbkZugpJ2YlqipkZmZkpCLgo+FfY+Cf4iej4eAfoyIkpCQhYGUm5SGk6KMk5GLkZqSlYeJfoByenh+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWd5XV5WQ1h7bVRhUFJZS0tNcHRdSVpbZ1pFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn56ppKOhqqS2srGkqbGnrbnBvbawpLmsqKiww8nIzMG3vb+1uMG6yLbEtrSztbK9ubq9tq65tr+torOmqquutbe0qZy6u6ixv7K6oK60taisnq6xo5ylp6mjnZykr6avoZ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKaYn5uhopufmpmiqqKamqOjlZaTnqGWm5WlrIuekY+RjIKKf3+PgHqalIyJfX+Mh5CPjIqGk5iRh5SjiZGRh5CZkJOBiHx5bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1iaXBgb0JdeWtWXk5RUUtJTVNZVk1cXm1XRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT0jkZesmJ+XpqOhn6ejt6+toq+wqau5wrqzraC5r6uns7rHysi/t8G+r7S+t8S2w7KwurGywLa7vrequbi9qqS0pqiqr624sKiYuLyjrb60s6Gut7Smpqews6CepKWnoaSZnqyoqJ6gqq+noKaXoqifsLifo7GvoauhraSbpqapmpqbnqKVnJuZnammlpueqJCXkpidk5mWoamQmomNj4d9h36CjXx7oYyNiHmEjYWKjY2FiZOajomVn4iQlYKMlo2RfYR7c3B8cXN0YHl4am9wcXBqf3NkemxoZWRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNXF9vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKOztKmpusW2sq6guK2urLC1xcfAtr/CubC0vbe/u76wrL6ws7+yvcK5qru6uKeotainq6+rs6+lmLu2pKu6ta6esLiuqaWnr7KcoaSgpKShlpuvpqGfo6ivoaCik6Okobewoaawq5+ro6+Xm6qlqJ+Ymp2jk5qbmZylqZmbm6SUlJeVnI6Tl6KooZCJio+GeoN9g4p5jpeKjYd6goiEiY2PhY+TmIyOlpmKjpZ+hZeMj3qAenBxdm5vdF94d2VtbGxqaoRvZnJpa2ZoXmR0gWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFFFWVVZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnKShoqC3qq6gu7ilrL3Fs7Cuo7WwrKyutMPDvLO/urexs7m4uri7r67As7S5sL/AuK29urWlorKpp6myqq2xn5m/taSntbWonbK8qKelqa+smaOnnKSllJihsaWZn6OoqZyin5Kkn6O4qKSnraadpaGokp+ooqGhmZucn5Gam5afoambmpiglJCTlpmNk5Ojp6SQiYmOhnmEeoSFfJ2NiYqHeoGEh4mJkoWWk5KLkJWTjI2Ue4KXjot3fntsdHFsbHNhd3VpaWpnZ2+GaGhpY2ZpaWBqY2poXGZ7Y2BTdFRcW1NMSkdJT1NAISpoXmpNRFdVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynaKkkI2kppqdnp2jtKynqrq3p6zEwbawrKO2rqeurre/v7yywbewrrK2tri2tq6qvbOusrG9v7euvLuxpJ+2qqWls6iqrZ2cwKqnpa+yqay1u56oqauxpZieqZ2mpJGZpq2imJ6kqaGboZyWn52ntaavqq6hoZ2doZSgpp+hoJqbmZuSmJyTpZyroZeWnJSSjJWXi4+YmqifkYiJioh4hXaBgoGdh4qCiX2AhYiHhpCElpSQjpCRkJGMknuDlY6Gc319Znhva2prZnVza2NnZGR2gWNlZmZmampja3NaX1pdbWRhTmlYWmBWSkdIS01TWD45X2xpSENVVF1bSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+LrKGYl6CWpLOxorK9tqGxxry6sbGktqyqrqm5vLu6rcCyrq6utq6yuLOprLmxr66ztrq2sLi9rKaetaqgn6+jqa6cor+gsaOusK63rbWera6traKanaappZ+Vmqeln5mloqidmp+blJyerK+luqeuoqGamp2ZnqSapJ2Xnpebk5ifkqiVqaeak5qakYuVmY2UlJqopo6NiomOe4F0gYGKmIWHfImJhYWKjIqShJSbk5KPkJGWjpB/gIyOgnCAfmZ5bWhraWZxcmtcaGNjdIFiZmdqbmxnampobl1sbHRwYVRjaWRlWklGTE1PWVFQVmFlgVVBVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZuNjrCempOhmamxr5+5v7WgtMK7vbqxpravqK2lt7i3t627rqyqq7aqs7itprO1sq6psLa2sbO1uqapn7WonZ2ooaismqe9mKyjrq+1taysn7Gtr6mim5yiq6iclJympJ2aqqKklpqfnJCbpKqqqbufp6SgmJmZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFaF9lZm5tal1gYYqPhIRmTktEOUdUZ15KR1BQVVVMSFJhb3RmRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg9RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhZWwm5uSoJuqraqjvcWvqbjCuL28rae2sKWro7ezsrOxua2ppqy0pq+1oqm4traop6y2sq60rbOhqZ+zqp6ho5ulppiruZSlpa+zt62upamtqqyloZ6coKemm5egpaWbm6ennZOfn5iQnqepo7Wvo6KinZaXl5ejiKCOkpmGoIeTnKB/pX+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKBviIeEfo59f6GgoJmAfIeedIeOdZuKbIeBg2xoZWN6bHFhU4VtYmxpmHFYanFwiFleaVtsbFuIcW56coVnhoRaXkdOP0dfTUVSVlZRUVJXVWdeTVdJUlJQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIqmloOcq5yZmJ2fqqqnqr/Dr7G6vbfAvqqlt7CprKWytK6vs7eqqaWwraW0s5yttba1pqeos7CtsqeunaqgsqifoqKZoaGarbOTo6SltbymrKerqqyopaGgmJ+mo5mZpaOkmJykqZaUo5yTk6OkpqG3o6Sgo5iVkpeTnIivkJeUiamLlqGbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkf8Ccv3mEhHmRhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmd6b3KP2H5Ta2O2sn+BcpV0mqGqkFdPV2JQVk5GVVtYUVBSjVxXXFBBXURRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMppKAp6qfl5ydpayyqLHCvbK1v7W3vsGqp7OsrKmnrrOpr7a0p6eltKWnuK+cs7K2q6Wkp7GurrCmqp2npLCjoZ+dlpqenK2rk56in7O6oqqpoa2upaGdmpqhp5+Xm6egn5iep6eRnKealJ2hpqGhsKKfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCcnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmh8pKeCWV+Lq2mAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JUFdXL0lUU0pERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqyopZ2jpKqxt6y1vb+wtsSyt7rBpqmwq66oqbCuo7C6r6OkrbKjqLionrOzsKOloKqtr6yvpqefo6Kwm6KalpWWmpqrpZWboZ6zs6GrnKKtraCdmpegoaicmJ2jn5yZoaakj52imZehn6qepqafmp+hlZWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmuBpnuChoiSlJJ3q2drsVureo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3Fra2x8i06kWEhiYpl+Y2imYHlzdlOSh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI/snlYWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYizpqagr6mnsqyqu7bCsLvCrbi2v6qsra2tpq2xqaGuvKqgp7Sso6u1paays6ekop2nqrKosKelnp+frpafmJSVlZedrKCZmaSotK6hqY+pqKqbnZWYoKSnmp6cop+boKOko5WbnpeZnaKom6WZnJyioJaTkZOTnYPVk5m5cLDBfsWGfNaUm7t8mpWkj42cjaR7joejgqWCeqx5j51Wr3qIfp9quVu6d4eEfaaCk3yYeql4jZ2Pe7FujoR0kbyFb5RQr6fFilGgemNgqWJzc4htl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5uTlxST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopSZsqiopbSqpbSppLy3wrC5wLG1tLqztaexsKKwsqafrbaomqe5raOvsaCztLChpJ6fp6mwqLSopJudnaqWmJeVl5WWoKmcmZanrbCoop+PrKKolp2Wm6GloZihoaGhmqGippueoZ6UmZumn5unlZubn6CYkJGUkZ2Ism5otXGrh26OpnK0c3K2e5qXo4uPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZeZjnuwcpKdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnSHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVISTk9VlJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2SpbCto6q8raa0pqe2u7yyur+3trO5ubKltLOhsbGin6uwpJemua2ksbCctLiqoKadoamksaisqaSZm5monpWTl5iSkqGmn5aSpaqwpqGVk62fpZKToJukpp+VmqWmoZqin62ZoJ6dkJWboZ2cpZSdlZminpWYlZGbhax7d6h2o42IhqlvrYqCp4OYmKCJkpqKon+TmYmuhX+Cs1xys1KufYKCpH9y2H54hn6PnYaZmXavhomRnId3tGGaZZqCgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZWTi5lZGlTWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+elKC5sJa0wq2os6ipsrq3s7i+ubextLu1pLiynrSsn56orJ+Up7WrqLGxq620pJupoJ+oobWmpqmimZ2UpKGTkpuYkZSipJqSj6atr6aglZmpn6KOkaGaqKSglZmlqJ2cpJ6snKGdoI2TnpqdoJiZm5aXoaCTl5CmnoapfX2leKGOjYKqcK2LgaeGlp+giZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNmAd4h0qIGOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak4CRf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmdNW2FfcnNfS1Y2SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqav6uYtMKuq62ppbSwt7G1vrm5srC2uqi7tJ+wpJ6kp6eek6qwqa+ptayqr6GYoaCmpKS5oqOroJabkKGflJOemZOXnp+PjIuosK+mnZabqKafjJKjl6iqppSWqaeenqCjraOhnqKNlKGYn5+SnpeclZ2hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5KcjYmkh5B3uG+Me4uiamu2WqGFZZeXaaCip26UcrR0k5h/smqFkoita3WzYZ1mom+Hk2qXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppubnbuhm7LArq2rrKe3qbivtcC0u6+ut7arwLWoqaCbpaShnJGqqae1o7Knrqqgl5ynoKSruZ2jrZuWmY6kopWMnaCbmJyekZKUqrawp5iUnKypl4yTpZmlrKKRlqqyo5+epquwmaGjkJmilqCblpyXoZKcqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4qMp4h6o7Z1fXd2woKasmCDunnAfHW4Y7WBjIepfZWBrKlxe390vIinoGmdYaaOr6J+jHSHqn2+b3O8dLKDdXiBi26aiHFujaR0vV53fVphebxrWlZcanleamFlZ2JteG9ZW1lEQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqK8oZeyw7Csqqursae4r7bEsLmwrbmurcCxq6OinqOhm5uQqaOqsqS1pq2lnpaaqpmmrLmdo62YlKCQpZ+SjJyinZidmpGVkq65sqyVl6Onp5SQlqScpKyekKCoq5+bn6ijs5+jpY6noZSimpyXlaOXj6+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ7Bu72ae4GxqHCAc5G5g3yGhoyHjXyKh42XfKS7ub2cdXq0o3R2l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3lueWKLrHB1hX9YW6dqRWVaVGZgY15jUWhncW11Qk5QTUQ7Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqCiv6WWtMO0rKuorKupuq6wxa60sq22prS4rKmhoaWeoJ2Zk6ukraqmtaenn5uWoKOdrKS+pqGqlpOckKGakY+hp6GTnJeTl5SxtbetmJ2kpKKKkpKlm6Wqm5aopaWcmqGopaekqaGSrZ6Wo56Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylYdhc2paXpuJYWOIjpVrYICVY22dd2KVa4CalZRlXmBjcJqKaHKLfYWVZ2p+cnR4fX5iW3d0gWhQXG6DfXyLa1hseoJySkpvhnBOdExFV11nYUxaWGdjX09bbnVpclJQREVOO0hJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosGim7W6taOspa6np7WxrMirr7KqtKK9sbGmoKKonKKbmZmspq+kpLWppZuXlaGbpq2ovqeopZSTm5WfmZKXpKiokJ2RkJicr7K/rJunnqeiiJORqZqoo5qarKCjmpujp6yjoKujmrGblKeglpSdn52XsKWXoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KXlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpKUmJOYlpqgoZqclKCdjYJ6pYZsanyQfIB1ioqBcYJ4eXZ2ioB8impzgXWDdWV3fXdrb3ptYGNdcGhNWFpmamBXWnB6bm1mVE9GUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6LAoaSysregqqayp6WwtKrIqqywpLSlwKezoJ2kpJyjlZWgqqeso6O2q5+Zlpafl62qpcGeq6OVkZuXnZeSk6GenaGnk5KZqKeyxK+aq52qn5CXlqedqpucn62ZoZudoqSvp6KlqJ+umJennJmaoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWm4OSgouqqYWAmZeJg4+eiHqEkIeGmpKIhoqVj5uXjZGYnaOWmpORnY1/jmahs6+FioR2e5KKfXZ5em9meZCBgIlrdYF5iHJpc397doOGgmt1ZHlmYGplY2Rma1lse3BpalxTTFBEXlRGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLqvv62rrrKyoKumsa2irLOvxK+qq6Kyrbyjs5ufpqKhnJmXqKWppqSlsrSelZSdmZmwpa6+oKyikJGdmZmUkZShnJeonISfqquis8izn6qkqpaWl5qmnaianqOrlJ6fnqCpr6qmpKyirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1pa3uSpKpqZJqXfWeGimVlaWh7jqGPbGiMl5Gjd2tqi5mjnplzbG56g42HelhlXoaCXm2LiYF2XGhzd3eSgIeCbneCeH9zbXmEdHaIiI6DfGqHWV5sdWRec4lpa3xxa2NeUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLqvrLSxqqWora2wpq2tsLywqaajra6wnqyWoKOdopmZpqqcraOlqKmyrZ6Vo4+ir6W2uaWto46OmqGZk5Kan5mZpJV7pa2iqLTEuKWip6+enZSeop6jm6KpqZKeoZ6gqrCrrKSroKqbp5+noKuVoZulsKSXm6qVoJyakaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqWZmHOrgnzLwMC7cYyiiIOffZaYiZ3AvYKXnZ2NncLBfIJ7ko2aw8B9a6WyboyBb8p6f5t3kYOOgXZ5gYB5cXp/h3B3hYyTeW54lGNmX3lkYGWCY150aGxkY1hMV0lRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+psK6tprO0r6mlpaawq5+rmJqin5yaqqeinayipaikpLSknaKSpq2rt7OnrqKRkZmcpZKQn6CYm5+ch6aspKutwMCxoKmvqZeRnp2hmaGjqqSToKGenq2vqq2npKSnoaalna2okaSaqK2pmpypm6uglZWklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjap7p4eFoHWXk4izY4KrhqGNjbNqhK50fZeIt2GDrVmjzW2QdXvae3+ZcH6IknZ+ZXuHdnZrfIhufYWQkX9tg5BhcmxwaGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqqK2zq6ayrKyqoqqnr6mgp5uZpJecoq+foJ6op6OloZ+wrJqdlaeurLCqqKyflJKbn6SSj56kl52no56upauwqL/Hs6ipsa6Wkp2bopefqaqflaCfnZ2tsKisqpyoqKSiq5KsspaloqqqnaOmpKGvn5GYppifmZOTkZegcYWMl3WFqIZxsX2ecqx+oZ6BpY+ed6qCfa1/nHOtfqqGhp92mJJ7fJd+qoiijJGMnX6reoiUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+EbpKRZnB1dXFhZ21lX29paW5nZFhTXWFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNPGxrK0oJ2jjqOjoqyvtq6osKaoqqatq6umoaSdmaGVoKWrn6KloKioop6dsKyXmpapp66sqKeonpeUmqOhkZOgrJudpqKvrKSstaq5zbKtpq2sl5WcnaKYnq2snZegmZ6eqbKqq6qcrKuko6ybr7GiqKuupZilqqipsKGRlaKkmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKrhH+ug5t2rYGnhoafepmXhntmgKOJpJmGgqN9qX6ClYeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm2blXFuenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1dW/oZmrp6Cvop6wtLCuqayip6aoqquppKafm6Senaanp6OcrJqirKGjn6+inJuTq6S1r66gqJqdlpSmopCaoqifoKWcsKakqLGstsiytaqrqZaRnZyhmJ+ks52aoZSdnqesrKWvm62qo6KqobOtoaqzsKGaqKeurrSikpWippiakXuqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDpIiHoHqYlpp4qsl0maOVqKmRk5qMgJyJmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxmJWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqClmqilqquppp+mppiqo5+uq52moKyanqmlnae1n6KXk6mqtrKtm6WcoJSPpayRmZynoqCppq6hpKepsLXDsrKprKiTiZecpZqho66ll6GVmZylpqybsJ6uqaeerKO3rKGxuK+dmq6msrKyo5OWpqKZno6CnU54moF/n3qEo32DpISHpp6cnpOEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSof7CFnIWfhKx9mpRipWykcI+EkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpOTjHZ8c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayys6WeoJWlrq2uq6ecpqaao6ehs6+iqaeyoJippJSitaKilZehqbS4pJuinaOSj6GxmJ6bpqShoq+unKWoorayxLGtqa2pkYeQnKecoqScpZeemZmapqSqm7Cir6WmmK+ku6yhtratnZy0sbewsaWXnK6fop2Fj9G1w7d5h46FkZOQgKZ4lKF3jKCRhKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CpZuijaaLk52KlZCbbXCyXaVzk3qba5l/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY15fnmQg25qeWl5cm+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6imrqusmaain6agoLano6mnsaOUrKOOpK2jnZCamqqzs6ScpJypkZSXrZ+fnaajnKectZmiqqS2q8OwqaqpoYyEjpuioKajlZqanJmbmaelp5mtqK+jpZutpr2slL2wrJ6hr7K5qrKlmqiwoqaXeaiQfXywd4qApKWInG2yb6CHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2aloureJ2fkYmUkoB5r16jgX2mp2OdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOVjpmNfHyEmIBrbn9jf3RugHpgZ2VxbmhnaENaYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqcbCtsG0n5qsoK24paOOm6Sjn7Cwqp+kn52tmZ+5oKOroK+pmq6hkKuopJaJmpCusKymnqabrJeXj6yhoJ2loZmknK6YoaimtqnAr6Wpo56LgI2bmp+mnpKVmpuUm5qmpaWbqqytpKWfqqi+pJbCq6mioKuyuKmtpZ+yraeol3avfpCLnIWHfbqtipllsY1lla19oI+DppWagayKhLCFppqkoaGQhaBbbGqBs2B/rXt7g4GxbWdvmZiMiLFbfbRcpINryKJkn4B7vFh2tVmyfVKugHqsWIChbZiPp5uMl5GYmHx6kJ5/ZXV/Y4V4dIB8YWpncW1nZWZPVmRcQVVfPkkoPjo9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9urPBs6OcrKaktqigipqgn5yztKmfo6CetZmgtKiqrJ6vrZ6sm5WvqaKOiJuOr6yop6Gmma6SmI+omaGdpJ+Zo6OmmaCiqbKpva+lqJ6dj32Mm5agoJmQkpqckpqYqaCimqmuqKamoqWpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bf4ekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6KBb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqackZuRmZ57gpKce2R+fGWOZ3mCe2FsZWtqY1BhW1NqXD9VYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Oxv7myvbKhnK6mpbKmnYyYpb+quLKoor+np7KcnrGcuqifra+mp5SUsKyXjIObka6loqygo5yqoJeKopKmnaecmqGoopmfoaytqbmtqKOal5N8h5mRppqSj5GYmI+YlKmboZmqqaGqp6CjqrudqMWioK6jqbOzqa6on7mmra2Zc3WqpLeGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybWxsZot4b26CmXGBempxaWeJlpaYcWlphIdmcIZkXYhiam9ZXGZ9dqZfYXGOkW5lZX+Nk4+hmJmZkpihfoiQlndniHhpjmt6f3llbGNmbGJLZFhKbFo6UGVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOyqZeSvrLEyb63qp/ArK2koaesoLqjpK6srqeOl66pj4uFlpetnaaqoJ2jo6CRi6SSppmomZajqqCWnaamp7C6q6yam5OSe4SWjaWYjZGRmZSOmJaolaCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa2oqy2lYqgqKW2nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJyUkJmTmZGOlYWBpJqXlo6Lk5OLj4aEfWeJfnSCdXOGinCnbHqUkZOSgYGNj5CPnJShlpqYo4OJlo9zapF3cYx4d3x6am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbXFxeX19gXl5eX19gYGBfWVlgppaoqqW0tq6uoa+jrZ+gtbGQjqzHvsa7uaujpZ6cpp+xqaS3p52ptaeokZitoouHiY+cp5WspJ+Yp56ekpSjlqeaqJmUpqGkkJunmaG2u6irmZqQjHyBlIuhlIqVkZaQkJSYppCfm6qfnLajnqert6euwa2jtqWur6+rqKiyt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6yvmqCjr6ivmKOgnKOqnZ6dnJarnZOZoZuUkJaqmY2YmZeQlp6RiKCdlZWFkoyQjZSKgH1mi4V1hnV4h4JznGqFj5STkIl8i5WSkpeUopOemKOFipqJfHOXc3qLgHN8f2pvZF5wamBbYFluZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVo6ejr7KsrqOppq2fp7WqkJCdpbW8sK2toqOae56jsqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmJqti6mWj6iZqY2ZqY+eurakpZmbjYh5gZSMmpOKlZKUkY2Sl6ONnp+pnp+4o4CEr7Wir690o72jsZ93eZ+psLmUdayjnomAqn9kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZmXcICYqJdtf6KoimWcpZyRl5iWjJKckYadmo+Vg5KHjo6SiYR3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7p5ubZnqaiYR5mWqEi4RveYBrcmVfdnBsa2hbZ2ZiYnBTXD5OTk5TRz5AVUQ5MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6wrKuppaiuoqatpJKWq7axsqebq6esl3SMnbCfqKunlJe5oKCPnKSdkX+JiJuejayaopSnoZ2OlpGehHWtj4imm6mRl6SJnLu0p6CZmIuJdHeTjZaTipORkZSNkJSgj5uhp5mcspaAjJu1nLOMko67pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpydoaeop4eVhZh3pZt6h5uBmKeCgnucsnqKhqCXmZSYloKRl5eEmplieYeQhI2PkYqDbXCOhnmAcH+AhH6Fc4WElZF4lmeSdKCadX2ZhKKfiJh/lIyFhZprjo2GbHh7cXFnZHhvamxrW2VsamV0XF5JVExSQEU1LlpVVTcpITA5PT43NDM1Njg7Oj0+PkBEST9JRUpLR1NYW1lbYWFoZllRSDlFTDw+YlZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6asrauorJ+osKamqaWZlK/Iv7Gil6iptZ6QhJ2snKeioI2Qvp6ajZ+aoJB8ho+ZmIisnKKVn6GRjJKJhoCRp42Hop2klJieh5+6sqedm5KOhXB1kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqa2It4WNsIGvrIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hk6CQmJeBjpObipiRi3yFk4aNlZKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoSjnISagY6Ph4uacY+ThWh3dHx4aGh2cWhobF5kcG1nbVhnR11STTJENDZOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWoqCwp6iopaufo7ewqaqmmpSgo6SrpJemq7ijsIChqJ2lnp2JlLyalI2hkp6PeYSWlpGIq5mbm5mihY6Ld5qcj5+QiJ6lnJaamIejua2kmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj56cnZGFgKCMqq2Fo42pmYyaf6N1gJmUa4Ktdk2reIeNnJGaqKeAqat9g6F7eqdpnn+Sa2eXhZe3iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpmoG1bb4x9Z1pghIBiV1Bvd2ZtdHNram9ea3Fta2lYaU9eWEY5QTRIRF9rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6utopmYoaKlra6hnq+1o6iToaCgp5yajpm0mpCLn4yVi3WBlJKNiqeWlZien3+ShYWrpIeakIqZqZmam5KIprGnoZWaiImAaW6IiIuOjoqLjZKMkJKjjJSfoJyhpH+TgY+joZSgd5yVj6eDoaZ/hqirg6V4iXyEmn6icHOUiJZ8n415bYebjJmPm6iaj4ede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4eCf7WoZIHGuHtwlbaMcX+apGJzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYJ2Zs5ZxfZifs3VzW56yg2pjb3R2cWhvWGttc3JmXGleY0xEPUQ2UUJacjM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltaWGBgfGRIQzhMV1VXY2BaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5aUo7eZq5uToI2kt7StraCaop2ko6aunZyyrqyTmKGZoaSZmpSfq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNp6CHl46JkqOUnJuNi6mopZ6Pl4eEfmp7h399kI2Di5CRiZCUoIOXnqCdoJ6LiXecmKKMn3Khi4epiJulj5WmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhqJkoXyIlpCbjWyeaJqNbpqZeoCLp31yaHSrg56DdKpolZpdm4V2hJ1nqmqAuGZcqHCBnGCVjF6ndnWHiH6eaJp0hZOSl46An2+akW6nml2ofni7a36qXI6EXbRnXG5yenhraVxxa3l5Y19mWGJCUUZPN1dDUm81S1taX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam1m6eIY5Saq7mxr6yeppycqaCfr5yesamtnZekm6GgmZaWoaSZhomNaoiAcnuXiIuWloSRlZiQeoqDlaOcipSPhoyekp2diZCpo6CajJGKgIBpgId5f5eMe4mOjoiPlpt/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6OzoqSAiJR5nXuqmn+ijpyaloiXcaF8hY2vtX1rmpGheH6YtKKjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH57eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnW5zfZVwmnRrpF2VdkhlZGB0cX5+bmZgbGl2e2RkYVFfV11VV0BZRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqUoqykoqiPoJ6dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKgm3ORkIGJmpWhm4WPqZyblYuLinyDbISGcYGhjHiGjYiIk5mWfJOjoJ6iiK2GfbWEjp6ce6WWeqmBlZuPiZ+bfKdod21+mXShc3F8noaZcJODrn2kg6admYCkb16oZ3WiY2+lYZzTkHx7mXhyc2OihpB+o3Okj3VrkLOMYIKYiXOqsqe8f3eDbX6+pqm0XZtufHCWbX9yonJdpGdzpmBopm2b1Jp9hptwenuYbJx8eJdzbqmkZ2BlenGAhGtnZmRvdXdnYGNTXGZRUWJJV0pUYVdTW2VqW2VRRkNLTUpLQktFOE9AUU5YU1lPU1FhZWVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5qAsKtUXEt+qa+xtK+zo5uZhZmpoKGkjqWpoJmqipqYmJOZk5KhmI+IhntwfYRofY+DlJqBd5CNj4lvf4WPkpJsl5N8iZKTpZaDj6qblJKLhYl5g3aIgG6Cn4Z3gJOGiJmil3qUo6San4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSjrq+Kl4yAjaSNlYOtoJR2tLW1yaFzlIuBn2Cdl6lteZWHoJt0ood3oH6Sl4uBb0xmo5Jwm4dzpHt6dGGDgWt+oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclBFfbRfanZreYdmamdjdXVwblZeVFlpUFJoSVZNWVRWXWhrblZnV05LQUpNS0hKT0FRS1BlY2ptZXRzc355fG51iXt7VFBPbF5pXGtpUmpoaWxnbGZjZWBcXV1eaWJkaWt7X11kaGNqZm5tZWlsZaGbiK6mhGU/k6Gyqq6vtaKikICXqqKjpYylp56dpoObl5aOl5CPnJOOiIN6anmHZYONf5igeXWPiIyBaYSFkYOMhZ2Neo2LlqaTg5ipmI2Ri4GIen99i3lwkKGGeoGVh4mWoJZ/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlYp6pHqfloOXcp52gYqVl4+5bpGKomJ9maCViG1yaaprdaBtb6ZfmmmLkGmWh5uVdKKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcaJaX1tioW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHlza29SWVdXZ1pTbUlZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe4Bzdo2AhHZeUXJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpjaml2dV1cY2ljampzbWZrbWOcpJilemR0bYunrqOpsLGmn4yAmKudn6aMo6Kbo6KBlpiTjpqQi5iQjop7hnGAiGiLi3yYnHN0iX2QfGSCh5SJiZWZgnyIh5eokYGirJGGkIqCin6AgI9zaZCmhH2GlI2JmaCPiJOppp2IpniVm36liJaMspiekIKvl5+ldpSGeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZp5+b6xjlYqWk3epbKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNZg6aNq2F1cnRxfHVxY2t/b2hsU1dbVmFiXWtNXVJdSl5tbndfW3FZXGBbZnRlbm9yYnF0YHd6fnlyeYNzg3+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqeG1nbG5ilaWqnIB/naOWqaqdqKaupJmKgpismp+lipulnamdhYyaj4eckYWSjYyNdIZ6iIRwjYV+mJR0dIVykoNtf4uRh4aTjn17goaZpo5/pqaOgY6JhZR2goeTb2yLqYGDjJSOiZ2fioyUq6Ogj4B1lJeIfoF5lK6jf4GbcY+Gd46Jgn17cqeMcX19epiWm4SPeXt/foeTlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYaEgmWMf16Af4t3dHKUdW55bm2GbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25tZ4xzeXyYeIVca1h5j2lueHJyb3h4cF1rh25qZ1ZbYFdcZmtkVmJVX1FfcHh5bGt2Zmpra3Z9cXJ1c2FvdWJ0e4F4dXqDdX+Af4B4ioWDfXttf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2UuKimiaCimqakmKWcq6KhhISYrZKeoYmbp5qpmIOBm4t/lpSHjoqJjXKDfI99fo+Fe5iPdHKDcJWFe3ySi4aGj4V5foCHmqWOfKehi4aQkIWVg4aOmHdyhKqGjZKdkImfnoiMm6ifoKqDiI6Vmn5+iZatqI+Rpo93b5uPgXiQbn6ohXB9lXFrcH2BoI2Ak46MaG1dg4uLm5qejnOVi4hxdGuBdnSBWXJuhpGBfn6Mal1qZHuFhImAYGl3epp7goqBdYGFgmd3iYVqYXBxgXVecYqAiI6llIVli42DbneLhHGGkHpxZ2hlfIR6lltcamdudlt7eXh1bnNzgmdcbYtra2JaWl9aWWxxXF9hWl9dZnR+e3VwdGNra2t8fXN8eHVkbXVobXx+dnp8e3l6gIB+b4aKhHt9c355c39oVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N6b2hqbWCLi6qwoI+ioZqenZeemKijon6Dma6OoJWInKKRpZV/e5iFfZKZiYmGh4pzfYGMdoWLgoWXinFvgHKYhoN9koOEhoqBeoGFjJyhkYOmooh4jpeJlYqLnJiEg3qtgpGXmpWKnp2IiKGrn6Gio4uHk5uco5mWqqGnpp+SmoaUjHp2jY2Dp35/kpCTlJyyppuVn5CNspOXg6WMjJWan4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoIiGiZ2JhJN+fYp/f3VvcoSBfXeGhoqPpZCChYyGgoyQjH2HjIqRhHltg4V9eplrcmhhdIpxfnp3d3B3dIFdXm+HaG5fXlpdXVRoclZkXFxibGh1e3xzb3Bka2tpgHxueYByanBwbGeBe3KCgHh/fX+Ee22CjYZ8eXh7fXqDeE5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIecuZ6WoqCYlJiYlJikoJ58f5qsj5+OhqCdi56WfXiUg3uOmYmGg4SHbnmBgHKBiH6JlIRta356l4eEg5B/gIaEhn2HhY6cnpOHq5+EcouQhpKRi52SfY57qoSOk5iWj5yWh4abpZ+imp2FgpKamZmQmqafpZ2dj5V/j4h1e4aNg6R6fI6QkYaYq6GelJ2QjqqNkH+djIiTmZ6Cjpd+ho6Db3eGcXVgfoOPhnWMmICDj4KGhH6FhJRueHV0kaGKi4Wag4SMc3+Ie3xycXqHgnp3io2DkaaOhYOOgIOKiYp3homKjH5wbH+CfG5obG1oX3p/aX18dnV2dXt3XF9wfm51YGNbXV5SZ25UZVteYmtpdnp+cWxtZGtqZ4GAbHOBbGx1b3lwhXluh4B2goB+hXZxgo2Ifnt6fH97gopgaXxqdWhpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYqJnreaoaOfkZGVl4uanp+ee3ifp5Gci4ellIuYmXl6jYV8iZGDjYKCg258f3lzgYV+i5F9amh9gpiJgYiOfH2GhIZ9j4KQnJ2SiaidgHCMi4ySh6ChioWMfaiRiZCSl5OWk3iMo6CgnZaZf4CQmpiSjJujoaSZl5GafYyDd3+Cjoaff36MjI98mKWhopOakZCmjI+BmpGJkpebfpOSfoeOgXR0gnB3YX2AjYZxi5V8iIxxjH+ChYaOaHdxeIuXkY9/ln2HinGBhnp8cHd6ioN5eY+LgpSlkouEj3qGhoeFdoKEiYl8Z3N9gHl7cWxrZ19+c2h8dXZ0fXOAal5gdHZwd2RjWV9eUmtpVWVZX2FoanZ5gXFna2RtaGaAgWtufWhvcWx+eId6bIyBc4GBfoF0doKNhn98en+BfX+PaXKDbnNpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qIjJ6ykqWlnI6Pl4+GnKCbnXx2paGOmICNo4uImpZ5e4aHfoOKf4mCgX9yf3t0doOFfoqReGdjfYaXioGKjHh9gI2DeZeClpmXjZegnH5wjIKRlIamm4iMiYOmlYWTi5aXk5J3kZ2goZeTlnl/jpiXjpaanKSdmJKUmniOhIJ3g5WNnH2BiY2Mc5ejn6KTmY+PooyLg5aYg5KWmX6YjHyIjYB2cX1ue2SAfIqFcIeTf5GCbIeCgYCJhGV1bnuFkZeLfJJ3i4h7f4V7enF9d4iEeIOPiIqXoZSBgop2iISCgnd8g4qGeGF6eX50f3hnbWVhf2pqd3N0dX1xfGJjYHRudXJtYVphXltsZVJjWWBhaGt2eYZxYmpjbWVofYNsaHRobnBpgH2CeW2QhnGAhIN/dHyDjIGAfXqCg358j212iXR0bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+crpemqJ6NjJeHhp+Tl5l+eKqdi5l6l52Li5iQeXyBi318hHyBg4F4dHl6c32AhICJi4BkX32LlYd+hIZ0fX6Kf32ZhZeVmI2kopl/c4d7k5KKpo+MjoqToZKDkZCVl5GLgY+Xn5qSj5Bzf42SlImdnZ6ml5eMlJVyi42Ja4SXj5h6h4iPiW+XnZqklJWLjJ6MhoKSnH+SkpWHmYh8iomBenF5a3Vse36Lfm2FkoKUeHCBg31+in9kcWl7f5aXhH6Mc4+HgniFfHV3f3yEf3uCi4OLkqOPeIOBdImHfYB0doKJhXBhfHZ6cX1vYm9jZHxjbm92c3h3c3RhdmBvbHVtb1xcX15eal5QXVljYWhudHuIa2BpZmpjaXeIbmZsaWptaIF9e3dvkIhzgISEfXSBhol7g316gYR9fI5yeot4eG5sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmaqgo6idioqRhoqdi5WYfnivmY2XfZ+UkZaTiHd+e4p8e4B3eICAcHV0fG+GfYGBin98YVx+j5KGf4ODc3qAh3qPkomTkp2Tpp2Vgn2BfY2KkqSJjoqNmJuNhpGYlJaPioiMkpySj4uMbYOPj5GJnpmioZeViJaQbYeYg2aFmI6TeoiEkIpwlpqUo5OSiYuZjIJ/kJ19ko+SjJmOe4qFh3NydWtwbnV8inRuhpCOknF1gHuBgYd7ZHBseXyZk32DiHOQiYBzh3huf3x/hXuEi4eDi5SnjHqHe32LhXd+cXCBhoRlaHl1dXB8Yl9wYWt0XnFqe3l5bHNwZXhdbmxzbXJYWl9fYWtaUFdYZWNncXF/h2ZdamlnYmdxjW9kaWdlaWiBend1b46FdIGCg3t1gomFeIV8eISFen+Jd3+Le3tyeINqa2BwaHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGQnIeTnXaCq5WTjoehjZaTj390fHaFeHl/c3N7hmtzcHptinaAgYhvcVtZfpGNh4B/f3Z1gICAoIaRi5OdmKGVmHiKf4CMiZydio+GkpiWhYmVmZCXi4uMjYyciY2Pgm2Ji5CRip2WoZyXlIWXh2mDooJlhJyJkH6Lg4uBd5OYkp+TkYmJlY1/fo+XfJGNj42akXyKgINudXBsbW9we4Vpc4OOmItxd4B1goiCeGZybnWAmY57h4N5k5B5dYdzb4h6hIt5ioWCh42aood7g3WBi393eW5sgoSCXnN1c3FweVpfcWFwa15wan17cW1tamx2YG9vanFtWVhhYGFuWFFUWmZnY3VwhIJiXWtuZGJma5JuYGdmYGdrgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97d4p/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmq2eppaFjYN/l5SDkKB2jKCUk4aLm42Wjot6cnh0gnByhXRxdohscG12bYh2g36Abm1VUYGrlIeCeIB3coN6gqGCk4KVlJmck5t4knuDjJKkmpOOiZWZkoSHl5mMlIuJj4+HnYSPinxyi4WJjoicmp+blZR/k31ohJuGZ4Wfh5GDkYKJcYORmJCcj5CMjI+Nd3uSkXqOi4ySlox8iHyAa3ZqbmtsbHt/YXp+jpaCdnqAeIOMfHlmc2tzhpWLfoeFepOOcHmDb3WLeYiLeYd8gIuPnZ2EfHp2gYt8d3BqbIKEe2B5cW5tc3RWXnBicmFgbG56cWhwZmZzdGhxa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xpcmJiZWaRal9oZVtncH1wbHF0in12fIWAdXV+i3p7hYB4iINzhoV+jI2EfHmVeGZyaoNgiH1vb2t6YGpudH91X3R9eYZ4dHOFfXigj5mwnKWOgop/g5qIgIyegIualI+FiJiPj4+Ed3R3dIBwcIV0cHKEb2tpd26Dbn19bnVzUk2C38iS1pN7cHWDdYSgg5R3lpKZnJGZe5RzhZCfoZOTkYmTnJSGfpaWiY2NiJKNiJx/joB3eox+iYyKnJucm5WSeYx2ZoeQhmuHooSRiJeDhmOMkZmPlYuXjI2Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t6eVuAeY+PgXp9fn+Gjnp6Z3JqcoqOiYGFhHyUimt9fm1/in2KhXyDeYCOlJmZinx1d4OQeHJtZ3GAhW5rdXBoanVuVF9wZXBaYGxyeGdra2JmeHJwcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVlj2RhZ2JYaXNzbmtyd4x9dHqGgnV2fotzgIZ/eol/comHgZGLiHx+mHZlc259ZYh+b3BsgFlsbnl5c2F2e3uNdnJ3ind5n4ubrpufkIKFd4iVfn2KnYiGoJGPhYyYhJOOh4F0d3B5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChcmx2hHaFo4aSb5eRlqGWnIGScoWLo5eJjpWKkZ2Wg4CVkIWJkICRiomWfod6dX+JeIeEjpyamJmOj3aJdW2FiIp8iaKDkImchIVei5OXi4+Jj4uLhYlte5aBfYiFiZGPhnaFfX1rfWR4dWpueXNXiHqSh4V5foCAhYx+eGVyaX+JjomBgn6LloRrgXVtho+BjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xYmp3aFJhcWdrVl9vdHphcmRfaH1wcm5aY3JgYlZuWVx4Tk1MZGdhXndziW5cXGR5Xl9kZYVgY2NfWWpya25rc3eMfnR3hIF4d3uJcYOEfH6Ie3SLiYeWhox/fpdzZ3VxeW2Le250cYFXcXp2eXJkd3mHjGl2gIlyf5yHmKeco5KFfXGMlHh5jJ6EhaGNjnyWjYCZh4R7cndwdGpwgWxqbXx1X2F4d3txdXxoYGR869q1ycPch3JsdIF2i5uJjmqZkJCdlpSBiXGFiaCOhYuVioyYlHyNkoiDiZB7kIuFj4F/dniDhHKIgpOclpSXhox1hn1ug4GIhpihgpOLnoOJYYOVj4eKhomNiIGHan2UgH2DhImOjYJxhn5/cXdodnJpdHdrWox8koKFfX+DgISKgnVhcmqHgI+KgX5+kZB8bYFrd4SNhZGCe4B8fo+Rj5WIbnB5jIZ1a3Fsc3mCYHVqb11rd2BSZXJoZlNgcHZ0YXBgXWiDcXNqV2doYmlYbVZbdUxLTGZnXmJyc4VqW1xleV5eZGd7YWRfXVlrbmVvanR4in5zc4F+e3Z6h3OFg3x/h3Z2ioaOmYGMgnuTdWx3dXl4k3RueHp9WHqGcYBvZ3l3koJkdoaFcIqWhZmhmqKKh3Rvk4tyd4+cfouaiYl8oH+EmX+BeHJ0bm9kcn9pZm14eFxfeXt7cXGAamFmYX/Vto6RpnhucXd8cZORjYdrmo+JnJOMhntph4uZhoGSkYaHmI58jYyAgYqNfI+MfYmEenR6g3txhoCWmo6Tk4GIdYOFdYJ/iZGcnYWUjp9+iGKAk4iFiISKjoCAg2d9kYB+f4KMj5B+bYJ8gnRrbXd1dHd2a2ONgY6AhX58hX+EiH5vX3FvhHuOi4F7fpCHeXCDZXmBiYWKgXqDfH6SjY+ShG5ueYt+dW1ua2x7fmRpbGpZbndaUmpzaWJRY3N4bGJlXlpqg25zYVtnX2RsX25VW3BOSE9nZVxnbnGAbFpbY3NgXGNsd2RlXV1abGxjbWpzd4d/cXCAe310eIZ4hYJ8gId1eYmBkpZ8iYZ2iYFweHl7hJNvbnyBd16Df3SBbWl6c5RzZ3OIfHKSkYOan5ughoh2dpV/bXeVmH6IkISKjZp9jJp2fnZxcGxqYXV8Z2JqdXpaYHh8em1xf2VjZ2dXnY9fcXOWvMSEd3GUipB/c5iMh52UjYh0a4iPlYB7lIyBhJuMfIqGfXyJjH+TiHWJhXZ2fYFxdYaBnpWGlI+CgnF/h3ODeoiWm5aGk42cgIhmfZOCgIaEiolygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN3c2xqjoWKgYp/eIKAhIN/al1wd3p9i4iFe4COf31xgGh4gYaJhIJ3gnp/louPjH1ta3qJfHZ0b2lofXdlXXFjWHB0U1Rvc2hiTmh0eGZhXl1Yb4Bvc1llYl1qbWBwT1lsUkRUZ2FabG5te29ZW15sY1pjcHZkZ1xdYGxqY2xpc3eBgnFufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFpgXl6fm5tfHaWa2p4hHRrlI2FnpigmYWIb36Mdmp5mY9/goqClZeKeo+Wb3pzcGxqZGB0e2lgZXJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWako2Gb2yGkpF6eZOHgYSZinyGf3h4iYqElYBviodxdH17anmGg6WRhZOMg35ufoJ1gneFmZiTipKPlIWHcHuSg32DhIqEb4F4aICFeHJ/f4OKh3xlfH6EdmNwc4BoeXFvdZmMhoOKe3Z4gIR5gWpbb3xyf4eDiH2FiHqIcYBtcIKFjYKDcYN3f5iLjIR3bW19hH92emVoan5yYVp4W1lybk5YcnNmYEttd3ViXltbWXV9cm9XZ11manBfb05XaVI/WWdfWnBrZ3lxW1tZa2VZY3F5X2hdXmVsaGZsaXF4f4dvbX99gXVwgXuAgX+Cf3aBhYmXinGCjXF7hnx6eYSUjHVren9rb350gH1vcnx7lHBvgH95ZpKKgqGYnZKDhWeHg3BnepeKfn+FgpmKgXyNjWl4cmtrZl9hb3ltX2JveV1kbIN6YHF2X2Rl1eu+izI6PouOgHJ5homPjXeFmI1/k46Nf25shY2MdX2Pf4WClYl8gnhudoeFg5Z3boeEa3V7dWV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLhn57kod4gIWNg2yAcmmAfnhtfHuBioN4YnmEgXFkcWh+bXVxdYGbi4F/hX5zdX2AcoBuWmt8c3iIgYp7hn98h3d5cGuGgo6CiXGAd36Viop+dG1qdoCAdXVcaWl4cVpXflNacmVMW3NyZltKcXhwXltbWVx1f3VpWWJbZ2VuYmlMV2ZRPV5mXV12Zl91cVtZVW9kWmVxeVtoXmBnbWdqa2lweH2ObWqBhH95boB7fYB/gnp1goGMk4VwgItud36Be3uIk4l/aXt9a3R8coZ7c3d9f4x6eIR+fGuMjISbnZaMgoBsjX5raH+Pjnt+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4Z3h5iHdY+MindwbIWDh3R5iXiJfZOIeX5yZ3aIfn2Xb3CGfWh2eW5leomFpYeAh42JfW19dX5/e4qXhoGTkJeIi4SJfI+JcXx+hXxpfm1rgXt6anp2goeAcmB3gn5xZHJndYJtdXuGlJGBfYF/b3d5e3R9bFdtfXVzioCGd4Z1gYl6d3JtiH+Of4NxfXt8kYeIem5taW2CgXRuXWhmdHJSXHxOXHFcT1xzb2RWS3N5a1hZWVpgcYB1YV1dYWdkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3NXal9iaGtnbWxpcHd8k2xohIl9fHB+fnyBf4J6d4CAiYuEcnuHb3F3hH97iY2Pg2p+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot5a22FiZJ5fXuCkoCAfYqDcHJwYmZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMi4coWEc5N9eYiUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cGN3hnmAkmlyhHVmd3ZjanyEiJ6CgH+Oj31xfnODeH6QjoJ3lY2Uj4iCiHuJiWx5eX92aHppbH95c2l6doCDfWhgeIh9ampzaHuAanaBjJGUfnp9fnF7dntzfWFVdXtxc4iCgXuCcIaJd3dvb4KBi318d3x7dI2EgXVocWhsiIJycF1oY3RvS2Z2TF5vVVRZc25iUU90eWJTWFhcYXCCc1thXGhlZGNqZFFbcUlEZGJcY3FeXHhoVVdWd15cZm5pVmxeYWpnZW5uaHB3epNuaYiMeX1ye355goCCfHZ9g4iGg3B2g3Ntd4KCfomLlH9xgHx4eXqBi3SDeH+BgYKEeoB1b32Ji5ueiH6Ge3eHfGh1ho2Ren+AfImGhHaPgGdwbl9kXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdmpx4aHs3KKeXCOdn2IkIF6lIqAdXR1fneAb3B/boV0lIZ4dGxgeoF5iI5lcYJvZ3VuW219gZCTgIF5kZJ9d3pshXR+j4qDcpWKkI6HhYV7f4ZtdXZ/bmh3ZW18dm1qd3Z/f3xgYniGemh1dWN+e2d1ho6NlXx0f3VxgHp8bH5ZVnJ8b3SChn5/d2uIhnN4anR/goJ8eXt3enGKf3xyZ3RkbYuEbXRba2B2Zklvb0xbY1hXVnhtYlBTdXZZUVZYXWByhG9cYGNtZGNdbmJUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniPdGuOjHV/dnh9d4GDgXt0fYOIiINvcYB1cXV+hoKJjYt7d394hHx9hYd4h3x9gX6EgHt+c3Z4i46fjYl7ind1g3pefoeajXmHhHSGh4R3iXpibmxbYltbYVVqdGRgW2hvcGaHcmFxZldcY2t/fMrOhrmia25ui21yhXJ+hYt/e5KFenl0eXV1e2psdmOEdpKCdm9nX3yBeYuIZXGAampxY1hse4aciYOCcpeUdn17bYdwgImKhnCWjpCIhYuEe3l/cnJwfmdocmNueHFqbHF3fXx6XWV6gHdpdXlmgnZndIeLjZR9coZqb36AeG17XFhwfWxzfol7gW1uiX9wdmZ2foB+gHV6cHlzhXt4cWVyYG2LgWtzWGtfeV1JcGxOV1ZfVFV8a2JPVHZzUVJUVl1idIZpXGBramZiWW5hWGNwR0FoXWBmX1xWfF5PVmVwWVtqaF1YZ2FfcmZraHFncXN3h3lulYp0f3t3fnmDh4B1c3+GhY6DcHB7eHd1eYeGh4yGenx/dYt+fYaEhId/fn59h398eHZ5dpGTn36NfYtudYB5ZISIl4ZzkopvhYWCeoN1ZG5qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqft25idIdpdHxyeoSHe36NgHd3c3dve3Zlam9gh3WOgXNqYl5+eHiKgmVwfWhra1pWb3iLpIGFf3GZknF/d3SBbH+Bj4Zyk4eMh4SJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfnx4ZXN+boR0ZnaGjYaVf2+LZmt6gnRsdGJbbXpqc3qKeoFldIZ9bXBndH53fH5wemp5eoB4d29lbGFsiX1sblZrYXhWTGtsT1JPaU5ZfWdiT1V2bE1RVFVeZnaEZ15hcGhnYVdpXVxraUpEa1piZFZYVXlaTldualldbGVdWmVjXnVmbWRyZnNwdIF4cJmFdn9/eH98hYd9dXSCh4CVgm5zeXt7c3OFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3aanZd6ioOHanZ+fGyEhpSAco+CcYWCfoKAcGZsZ1ddW1xbVGVwZV9YY3J1aXVwZGViV1tbaH9wb3J/c4lkZXl/anR2dHSEhXiBhHp3c3Vua3pwYWhrZ4Z0jYNtZl5ffG96iX1obXdmamRWV3Jwjqd9hHx2lpBze3J7eWx6eo+DdpZ7h4aDh4R9dXFzbWh1XW1pX211ZGdmaXpve3JZZ4F2dWhwgHiCdmJ3hYt8lIFui2pte4BwZXJlX2t4ZnF1iXp9YXWDdmlrcXR6b3h3cXtlfX5+d3VuY2VhbIZ8bWtWamNyVExqa1BMTnBIXntmYk5WdWVLT1NXYGt3fmZdZ3NpZV9WYldicF1LS2tYZGFVVFVzVk1ZdmVaX2xgXFtjZV93Z21icGl0b3F+dXSZgXd/gHiAf4aEen12goN+mIVucnR8enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gXZ7o6WKeYmGhWx1fXt1hIONem+Fc3qFfYKEdW5qaWVWXVtbWlNjbmVbWGJ0e2pobWhgYVdfWml/aWxvf2dsYWl6emt0dXRvhoJ7gX12dW56aGp5al9lbmmBd5CEZ2VYYndpfoZ5bmlvZmZdVVhvaI+od4F6fJCOeHVvfW5ydHiOfneUdIWCgIaIdmpzdmhpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdhdoWEeI+Fc4hxb3l/cWJwaFttdmNwcod6d2FygG9naXhzcWt3dnN1YoJ6fXZ1b2NjYm18fGtrVWliZ1RMbWhQR1JsRWF4ZmJNVHNeSk1VWWVseHtmX21xamNcVl9Vbm9XSlNoWGdeWE1VbFRLXHpfXF9rXV1bYmVgemhsYW9vdm5vd3V6l313gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH2BfJBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIiIRscoJ6doGBgnRuh299gHSKgGpvbmRkWF9aWlpVYmpnXFpfdYJpXm1sXGFWW1xrgWVydHxpal1seHdodXdybod8fn56dnNsemhpeGddZHNoeneSgWNjVGRvZ4GEdnZmaGlhV1ZZaGSQqG9/eICLjnpwb3tmeG55inp2jnGDfX9/hm5kd3NkaWldbGJecG9bZ19tdWV6aF10gG9ya3F7fnV2YnWFi3uHh4B/d3J1fnNgcGxYcHJhcHCDe3NjcYBrYGx6b2loeXdzcGSDdHl5dHFkYWRtcn5qbFRpXl9VTHRjUUdXYkdjd2ZhTFRxWUtMWFhnbHZ6ZWVtcWZjWlhdWHZmVEpcY1hpWFhIV2VRSWJ4W11fbVteXWJjXoBpamBudHhtb252g5d5coGAfX+JjIZ+dnaGeIaMfXR1dYF5enqCjI59f4SJanSWgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGIenR+fXZyb4Zse35tkHpjcG9iZV1lVlpZV2Nma2BdXXOGaVhwbVteV1pcbHtjcXd1bGJbbnR1aHV2cW2FeX+BeXdub3RlaHRlW2d1ZnZ2knpgXVNlZmqCgXN8YWNpXFRYXmJkkKVpeXSChZB4bG54Zndse4N5dIhygHh8eIBpZndtYGhhX2tgXnVrWWZdb29iemVbd3xrbm5weHl0dGVzg5J/h4KIenZvcXxxYXdjWW5vYG9wgHtyZXGAZF5tdWljZnd5cmttgHRye3JxYV5lbW59ZWlUaFlaVU55YFJLWllIYnVkYUpVblRKTFpWaWxye2NsbHNjYVlaW2F3XFRLY11ZalNWR1lhTkhqdlhfYW1bW19iY12FaWhhbnd5bG9qdoGQeG2CfoCBkoiEgXZ1iXSLhnRxdnaBd3x9foyPgX+TfnB4loN9mZJ5gIB4eX5/c4iEc3CZont7f4mWeGR1iXlzeXZrdHB/bHl8cJFyXnBvYGdibFRbWldpZG1mXFxyiWZScm1bWVhXYGt2Y2p1amlfW210cm10dHRrhn1/gHx3b25sZGlxY1trcmR0do5zXFdTZGBxf35xgVxiY15TWmFcZJOfZXJxhIOQc2tqeGxub3l5enGAdn9yenp7ZGZ2aF5jW2FoXF53aVdiXnBoYXdhW3t2ampyb3h0c3RocYKVg4Z+hHVyanB7bGV2V1tpbGFwcX95c2Vvflpgb3FiXmlvfGtqcn1xb3Zpb2BbZGtse2FnVGdVWFJRd1xTUFlSSGNzYmFHVmxRSVBaVmtsa3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9JcnVYYGRtY1hgYWJdjGpkZG15eGtvaXV5hXtrhH2AhJl9goR5fYhtj4Zxb3Z6fXSBgn2Lj4OCl3R4gpOGgZ+JdYF/gXR/gnCHgnVvopdze4aMh3tmd4tvbnxwZ3hxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWZpc2hjdGVlXVpvdm9xdXV6bIh9gH2Id5BzY2Vrb2Fdbm1kc3iIa1pUVmJjd3x8cIRcY19jVFpgWmOXlWNucIOEiXJqZ3luZXJ1cXpreXN1b3p+dl9nc2RcX1diZFlhdWZWX2BtZGFxXV1+b2hpc3F0cXV2a22Fk4GJe4VxcWZue29wblJaZWlkcHJ/dXNibHVVYnFrW15uZHtka3R8cXFxaWxfWGRpanheZlRlVVZQVW9YUVdUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnh3W19mbWpaYmBfXo9uYmdreXZubml2dn5+bYSAfoaXe3+HgYl+a5OIcmd0gHt1f4N+iY5/i5NzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNjHd4bnqNYGV9cWd6dHlsbXF3g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbGBVVlNuZnNrZnhkZV1acXVuc3t4c26Je4F3nHt6bGJlbG1eYG9qZXF5f2daVlhfbHh7em+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybW97gHNYa29fWV5XY2RYZXFjVF9iaWFibFpgfmtma3N1b214dmtohYx/iXqHbXBlb3tscWxiWF9nZ25yf3NyXmlsU2VwZFVibWF4YW90enRqbmtqX1hgZmh1XWRWYlZTT1lnU09dT09IZW9dY0daak5KX0tYbWVfeGhufmRgVV5UXXRbVFNgZk5dYlVTSlxaUVl1dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4J0f3+IhYeRhJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2NjY6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmZ6goKCgoKOAZGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJuboqSkpKSkp3xdX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6Pj4+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkYuRjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjYyMjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY6Kho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjoqFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiNjIaMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fHx9fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIuHhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+LjYqLjYqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl5e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkZGSkpOKh5SSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSjIuSkZGSkXeGk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGJcoqSkJKAc4mRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj49zcIyQjHR3iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj3drepCGdHeHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOe2Vrhn5xdYaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4doXmhlZ2NugoWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3b15ybFxpbWdlaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGheaHVsXW11bmZiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl1nb21fa3N1bFlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NVmJobXNwcHNuUlFUUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5UYWVlbm1taWhUTU5PUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRENGTFpobGhtbG1pZ2NbVVJPTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUVQVFVaZGttZ2xsa2pqaWhpZ1tMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+QkpZY2hsa29sbWxqaWpraV9USUVFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7OkZOTWFtcHB0cGpraVhLQkVFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz07O0tgbXtzaltHPUBAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk6OThCam1IOTc8PD1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTw9PDtHXDk8PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFPz5BPEVePT49Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE8S2M9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnV3TTc4ODo7Pj5XakE7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g4B6fHdWPD0/PT0+Rml0TDo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfF0+QENAQD1KcntZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/Pll7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlSBg4SEgoKFhoaDgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU1Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yJVDo4NjU2NzY2NjU2NzczNTY4Ojg3NjU2NTY3Njc2ODo2Nzg4OTs3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmWFg4GAgoODg4ODhYmLiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8Pj45Ojo7ODk7OTo7Ojo5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTk8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQEI+QEJBQD49Pj5APz8/QD8/PT0/Qj9BQT9APz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUxKSkZHR0RGR0dFQkFAQ0VDQ0FCQ0I/QERIRENFQ0VFQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTkxOSklLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFSklLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjIuKjH9QTlBOTE9MSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0ZISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo+QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMi4uKjXJOUlBOTU1MTEpIR0VJSUVKSEdKSklKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l6eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19TU1FOT01LSkdFQkdKR0xKRktOS0tKSktNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMi4uNfFhXU1NVU05MS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFhXa2FFUlFRUEk7O1JTUmB1XFVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbVxkVTpYWFhTUT9AVlVZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLeW5wWVpbW1JTUlZWVFtadYNZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUxEP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQ0RIR0hLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCa01HP0A7Oz5AQD8/PmtQS2FFRkhJRUI/R0xNR01SVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTkdVbnR0dXN0dnh6fHt9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNCQkRCXF1Pe05PTk5LTE1PT1BMS01XTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkdIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TU1FOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBwbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdTUFNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk9TTk9QTExPTUtNTE1PTltXS01RT0dJSENISkxMSkZGRkQ/QkM+PEJHP0I/QWRwc3d6enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESkVDR0dJR0lFQkI/Pj1DQkFHSUVOT2JlUU1PTldLS01LTE1NTUxLT05TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0xOUlRMSklNVEZJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RHQj0+PTo5OjtBQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQ0VESU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQURKSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl8en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPjw9OTo6O0BDQD5CQ0VFSUVJSkxGSUlHRkZEQjtBQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhDR01LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam9la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0JFQERCPkA+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhQS0RJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pFSUZJSEZGR0VDQkFBRkZDQkJCREVFR0dJRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVFOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERDxBQEBDPDg6PT45Pzw/QkBAQERGSEVJRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUVFOUE1OUE1MTVNXVlhXVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREdERUhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUtMS0hKTEZJSUtIRUtLTE1OT1JUUEhTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdpaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRTw4Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hESEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKSkxKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRElJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RISUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRUNJSkpJSUtHRUtKR0hKSUlLSEpKTkxOS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUpFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE5MTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpxeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JSklKS09QT05NS05OTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTUhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+RERCR0RISU1JRkNGSkxJR0ZKTUxFT0pLV1JLR0tLSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2NbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZW11YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSUxKSEZHR0lHSElFRkxJSkxPTElQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEQ0JFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRkhHSEtJSUlERktLS0VGSUpOS05MSExOR0hFPkdHTElLTEtLS0lHRElEQ0RFQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRkpHSEdIS0lMRERLSk1NTExISkpISkY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdGSUZGRklMSk5GREtLTE5KTElLSkhJRkJISFFNS0tPTEpLSUdHRUQ/RUNISEFCR0dFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSElHREhLUU5NTVBMTEpLSElDREFFREhHQkFHRURXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXX19UUE5PT1dRXFtbXFxeX2JmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTExMTUtKSkdFSk5RUU5PT01OTE1IS0FEQUNERkRDQkVGQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFJaWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PS0tLR0dLUFNTTlBPTk9OTkdLRmBFRF9MRWZkRU1bSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJiYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09JS01HSE1RW1lPUFBOT09PSUpRf1FJfFlZcXRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbW2ZbX2BhYWFdYGJnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklMRVFWTEtOSUtSWFdRTU9PTVFUTk9RUEtLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1RSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfnhugHJfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISktHSlBPTU1KTlZeWVVMUVNOWVpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZn1pbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15d3JuTktTdU5DQkZQUEhKS0lLUE9PT01PWmBaV0tUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmY293eG9tcHN5fm5xcGp7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ttfnhrfHBcXl9iW15iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9IS0tJSUhIUVBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFfUE5NS1RTVFFVVk5OTE1PUEpIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXllXXlZUUFlSVldXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTE1NS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0tNVlRRTlVTTk9NTFFQS0pSUUtRTUtLUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NTUFJUVVZTWlFOU1JYVlRZVlRaVlRSVVRUVVdYVl1ZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktLT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BMT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYW1lYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTkxRUVBSWFRRUU9NT1NWT1dSVFVVT05NUVNVVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFZTUllXVlpdWV1fXlVeXV5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUE1QWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXWBdY2BjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpZWFdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVhRTU9WU05RUVBSVFJLUVRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZWV1NWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYVtjYl1hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSVlZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVUV15ZXV1gXWJiXllfW2VhX2RkXl5jY2FeZWZpZGZdXWRhYGBhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQW1RVVlZUVFReXmBeXmJcYFVdXmJreXRsfWtaVVlVUVFTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfW1pUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFcVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFhZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dWVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFlWU1xUVldZVlZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdUV1taWVxZWFlgV1BWXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWV1eWV5VU1lXWVldYlpeVldbXFtcW1taW1lZX19gYGRiY2RlYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZTVVRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWVxcXV5eXFtdWFtgYV5gZGNkZWVmYlhjZWRoZ2ReY2BgZWNdZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JkY2VmZWZiWmRmZmlnY19jXmFmZFppaWNmamNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZV11bXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVRYXV5fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGlpYmhqZWRgYmFjYV9gX11dXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJjYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXlpYVltfXl1hYWBeW2BhYmVjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFtbVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx9fX19fXx9fHt6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb29veX59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/QDAqKysrKiKM29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb255gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzM0IRobGxsbEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5enl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV0c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGBgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8eXt+eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x5eXx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4fHp7fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh6eXp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcHBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnJyc3NycW96f29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxeXtwcnFwcZeDbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcnF9nnpwcW+GoHxvcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXKdn3ZwdJyffW9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycJeskG5/o59+cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjrGoeoimoH1wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3Ocs6akp7GidnNzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHd3gaudobamoqeEenl5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHx8fHuSppmjsaGbpJR6e3p4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZWeipSsnp6fmoB/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGAlKOclJybl46bg3+BgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CBgH6asqmjm5+fpaeRfXx9foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gIGEla+mnqWfn56kqK2fkYeBf4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoaJlqaxqZ6bpZ+en6Cfo6ioo5eHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODhYqZo5+ZmJidnZ6hn5ucnZmTjIWDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGHjJGVmJmNlZ2bmJSNh4aGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGBg4uWnIeOm5qMh4aIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCgYSLipKOhYSDg4WFhYOEhIWFg4GCgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGBgYCIkYKCg4GCgICAf4GAgIB/gH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgImRgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AjJWCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCSmoaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyNgIKBgYKChZSTjIGCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYCPk4yQgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hi36EhIOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5ORkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWGhoeHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiImHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKiomIiIqJiImLiomJiIiIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYeIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGhoSDgYKDhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gIODg4ODgoKAfX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgYKCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/gIB+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/fn+AgICAgICAf4CCf4CCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fnx/f35/gH9+f3+Af4GAf359fn9/fn18fn+Afn5+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+AgH9/fn5/foCAf35/f4B/goB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAfn2Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5/foGAgYF/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChoSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXh4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGBgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWFhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhIOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH+Bg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYWFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fH+BgH2Gj4F+fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBfn+AfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9f4CAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fX2Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICCgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHt8e3t7fHt8fHx9fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3t+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgH+Af4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4SEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/f3x9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGChICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgYGAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgX9/gYKBgH9+f4F+f4CCgYCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYF/fn5/f359fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAgICAgHx/f4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXt8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5e3x8fXx8e3x8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fHx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKDg4OEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYOCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5/fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV+f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fH9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fHx9f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOBgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enprG+vb29vb29vby8vLy7v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKVrKqqqqqqqqqpqampqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFl62rq6urq6urq6qqqqmy0tLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2Ni5yxr6+vr6+vr6+vr6+uttLS0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q09LS0tLS0tLS0tLT09LV1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz9HU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz9Ktg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7XKmry4mbWzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqwxKKMgI3FnZeVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeas8CeiKzWupehnbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbW7p6ubpbKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZm0waCdlqeQmoSdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZstajtKuff6CphZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrPWydjBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpZm0yY2hn5+ZqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qOas8KkqqOhw6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPYqY+QrNfCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cLU0tXBv9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0JHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29zc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODU2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojo7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqysraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW0tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6imoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXk5KRl5qcmpaXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWnp6amop6cn6GgmZGSmpaXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWlp6empaOgoKGgn5qTpq+bmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWkpqampKSjoqKhnp2ao4qHm5yam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGipq6kpKSkoqGhnpubn6BbhpyZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKq0sKKjoqCenJuamqlwUIubm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCrk5yuoKCenZqZmqKZU1qPnJ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCgo6Fol6yfnZuam5yqc1Zfj56enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp2odGiko5ubm5yfoWtiYpGenZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJuap4Jsgaebm5ycopJsZGONn5ydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZmqaEdnCTmpucnZ2CamVljKCcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZmmjXV8fI6anZ+WeGZfZY2hnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmZnJWUnXt/nKKghox/YGaRoJ6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZ+pnIprba6qoWd/i3pnl5+goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZempYhwX2qklJhWZ3t9fJ2cm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXqZlnRUh0mYOFT0VgdYCUkY2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQlq2EPTo8eIx2blE5NV52goeCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDfpijWl5sUHmhloNTY2pGZ3iBgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6djFmYo2+2vLG8gnmafU51foWOjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqEf4J9oHiM3Myz1rGeuLxlYnJhYIiLjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjYyLi4iSippos8m0yNSvrrqndIupaliIi4qQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp6co6OTb6mbkcK+trGYjXddyppVgo+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqqmzoIeQeZSslIyPfXlyZ52cY3idoqSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqaenqaqOeFeDjXt6gHBua3N2fH12oKmnoKKirqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKaioamefGhLaXRucHhqaGRqa256hJako6Chn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kho6ehpq6mp6evhGxiS11zbm93Z2JjZV9eanR+jpuioZ+doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqaKgoaiprbCztbyylm9lXEdWdnJzfGdhZGpaWmBjbXh/ipmioqGimZaem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6uqqK62uLzBw72vmXtlZFtAXWxueHtrYV9nW1hgXmFmcHN5gZOiqJ2eoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrs7rG0NrVxrioln1nYmNVPV5qbHZxcmRiY1lXXF9dXWFoamtue5KlrqelmaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWl2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tb3S4OHQuqWSg3JhWVtbTz9XcmleW25sXl1XWVhaWlhZWVtkcoadusi+t6Gnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O8w8jO1NDAo35hVVNVWFFGSYJueoN/XlZYV1xbXVpXYHycsrzAxse3t7epr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TBxcjIxb/FrYplVlhVUUlrdaOso09VXF9hXF1skLHEvL2uqbK3q7WyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QkJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Ew8bGwLGUxMjSu4tmVVZRVmairp1OVldYW2eHs7eusK2ypqqqqqutrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG96amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm0wLazvsbIsIBaVFNQmbGRR09WWXGOprywpa20tayvpaWjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodlpncnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+uL3AwsLDoW5VSo22hUVLWn6hoqe0sq2suLWzrKmjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8TEyMvGrHNfdl9LV5a3ucC9vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXDxsXIzNTMhklMV6DJwcjNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlmdW90Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8HCxsbGysx7R4XOzcfM0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRia21ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vcHAv8DHpUqf0szFydHBr729uLm7u763tLG5vrO8vrG5tbi7try0tbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv728uLzAxa9Pmc3EwMHJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y67v7vDtbrHt7a5u7y4ubW6xMiqUJHJv7+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1mZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8V5rMy9x7e5uK22tLe5s7WyusXKnlKIyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNeudoS9yM/CwLiutbW7vbe5sb7Dx5NYg87Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjZ2JcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRmXN2sNHRzMrEtbq/xMi+vrS+wL+CZnjLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgnRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwod1dqfMzMvNysbCw8vOwby4vLqwfXdrvMjEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFteX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7us28O+tr7Avr66ppyqs7fDwKZ7eXuexMbLyMHDwMDJysG/u7mxo5GFeq/IxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF5cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W3ba7Ovba5wLyqfW5obm10gpeZdHp+mr6/xsC5wLy+xcS9vbiyrqSnkpKdysPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdntxb2pcYGBZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnaCs722tcGkhmlaXmBOU1tccHV5hKO4t8K6s7u3u72/uru7r6KorZ6kgb7Fw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3JhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeEeIuhsLWcamZnVllfSUlNUFRueYmpsLe+ubK1sry5vLa5vrWWqryrsXesysTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdXd0d3JsYGNhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aph3t2jKGYX1NDWVVIYmpVT0VKY5Ckrq+2urW0sqy8ubi1uMG9jaK+r7B2p8vCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT5KQkBKSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCBeYiQbk5LP2VZQk94gZNoTUJehLG1s7WytK+su7q4trm/xXeKtKeeZqq/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1VdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEfFhGQU+HWEpKWXiOg2NBVKO5s7SysLGtsLm4tru3u72So7OupHSssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0b2VVYWRXXVFPTUhASVJETUM9ODg3NTo3PD46Oz04OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlWhNQFN5cVBJSUtonIBaRVSvu7Gss6+urK22trK0ta6pp5+am56fpqieoKipn6GnlpuWl46dlI+Qlo2Xm6SooKCioqGlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlVUE9HUE1MQ1BRQD47PjQ5OjU7OT07Ojk8OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpbxnRFObf1FYSUthSlaOYmVkgq+1qrK0rqqrr7Cys62lnZGXk46XoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2jqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTkpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKrGv8qfT0FzmHNQbkpMY2Z1dGBcYnORsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNWYUhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylxsaMV1NKZqRaZn1vcltRa2NcZmJgbJG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXJ3dXBjd3ZYV2NgZGlaWldnra6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2and1Xm1bUmFJUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKR/b4JwYGNYTFtSWkxMUVlSSE5OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco56ciWJXXmVgV01RRz0+QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/tru7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUZEO0M/Rjw+OTZOfqqzp6OjoqCepaumnpiclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO9vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDysrDwce/urS6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VZW0ZLTEVEVE1FQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVp8b2FBPVyOrqygmZubnp6Zl5eYko2Pl5eTjo2QjIKDgndycW1wj6atrrS5xbvNx8u+wczNzczHydHMzMzHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxsK8w8G/v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0uGnqSYg6CyraOenJ+amJeUkpSWkZCPjIiEg4iHg4CBgYB5cXJvbHmktrq5vsvB09HTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmpkVldRRE5GQElRQz5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NSsNK9sq+mnJycoKShnZqUk5WUiX14cWtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1dLWzdTW19TT0dPU1NPP0sTQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAycjKxMzMzM/PxcfItsDLwNLNzNDGysnAxMPIzs3Q0c/Ny8jNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJjXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NbX19bT1tDV1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR2NLX2dTVzM/Pys3Sy8/RwMbDyMbPztHR0sjMzcDLzcbTz8zOyMTLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1iY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J3d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRy8/N09bS0dXNz9XV0cXR1MrQ1NXWztPR2NfX2MvIzsTJz8zKzMDKwMnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcrM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycrLz8vOzdDO08zGydDNyMfLxcfCxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/Ozw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5j5qNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgX19gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcPIyc7Fw8fAx83IxMzLzM/IxMTQycbCxsnFv8HHzMvMz8LLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn5og4Wkq5ONjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybzJx8XKwL7Cy8bFxL7Gvb3Bw8XMxca8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWlxYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2tjZz8vSzc3OyMG1w76xr7ZsXnp9oZGKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u6xsO/vMLOw8a+vrXBvcS7vce7w7q0vcbEwsO3wLa2vr+7zMO9trrIu7++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvZFZeWUpGSkZIS0FGQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDG1dTV183KzsXJxcfBucW9q66mYGR1g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra7v7TFt7u1q7m9vsC9sbu2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxNDN0s/NxcfBxsC/urfJtqqwmVtncIqPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmptbnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMe5w7atqqiwssC2uL2wsaexs7W7vKyutqautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzdnZraWBibGlZV1dbQUxLTUpFQUNARkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJJban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWlpcZW5vaGZoaWtucoGturC1rqWkpqaaoKSgmZylq66kqKKrqqyrsKOmn6qttLaxvbmvt7Corri0s7y4tLyvuLm2srzBssGupaijq7Gys6i9qquoq62utbSmqK2hpK+psqaoqK6mqLessbO3urq7sry+vr7Ev7XCwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9kV1ZYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voa29yhaqlq6WenKCklJ2kmpeRoaKpo6Ofpaanpq2gnZykpq2ysLa3p7GtqKq0q7S6sba2rra5s7C6urG3paCkn6axqKypuqqkp6eop7KtoKinn5ykpqyfn6ekoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSghHhxbGJmYGtvYFRZX0hOZ09USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPFuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYV5cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflZWaoJWaopiVjJ2hoqecoJ+kpaKnnpujnKCrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqrmtoqamoKitq5mgoJ6ZnZ+lmpqjnJyer6mrqKqsra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr3AvsPCu7q9l4R7c2tfZV5kZFhUV15JV1xLUEdKSkdBPD8/QDs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZmZmaGlrco2nnJKTk5qWmqCVlZCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqGjn5ujoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnp2dnK2hq6ijpKatq7KzqrWwsquyubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSGenVmX2ZeW1lWU1pVS1tRTEpFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5sr+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuSk4+TlZaelpiTl5+doZyWoaGppJ+fqZ2cm6unr7CrnKOkuKqhoK6otqqnqK2xpLiwpLego5yZmaqnoZutubCjoaScoqCgk5ShlJaWm5mYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6iosq6ytbC8tLq4rqOVgnp3ZV9hVllYU1JUS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYCUkZOLkJKTmZeclZWbn5yflqCgp6akp6ignaCmoKqvpp+io7eooaGiqLOipailsKaxray1nqGdlpWpoqKUrbKxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6usraaorq+vq6iqqrOmpquvtLGvvLaxr6+gknt4c2VhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlaW1dVWFdUVFZVUlRSVWBhX2BhX2BhY2RpgJGRh4+NkpCSnJOVlqSZoJecoKWiraalpaSko52qq6Wan6WxqqChnqWrnqiin66tqamuraKiopWYopuckKupsZyfop+fl5iTiZ6RjZKTlpCYmJScoaOdpKGilaCipaabo6uloqSqo6uupa6yqaalpqa0pqqorbO1tLm6sKqsnoxzcXBgW1dWVlJGUE9IWlxPUkpUTFNMRUdKRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMm6tcCvxcjMusHKzMi1ybyxvcPJrbG4wbW8wLy0taqsppWZm5uIgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxcXV5eX19iZG2MjYKPhI6PjZiSk5KcmqKcm6GpqauprKeppqSZpa+llZqlr6mgnJmboZ6vmpyrtKCmpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnqKgo52co5WboKOhl6Koo6Ooq6Crr6SuuKajpKOsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVVPUUxRUklOSkM9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+op6+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLGtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlaWlpdXFxeX2BlfYqAiX2Kj4iQjJaRl5mioJugq6qmr6yosaWpmqCtoZWWpKinnZiQj5qerpeZp6qZoJ2UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaaoqKigsbCmsb2ooKOstKuup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExYTkpMT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjEtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxsLG3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJOTk5SV1haWVlZXFxdYWp+eH1zh4yFjoiXiZSTmJuYnqmboKumpqyeqJqhppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5SMjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqCilpSZmZWippmNmaSmqaahoLSyqLO4oZyjt6yqrqSysqa1vLWrrLGjiXlzbl1OUVFMT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlId7g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnB0boKGgYd/kIOOipORk52hj5qco6KkmaWXopyVjYiZmoxzjYN+jpeWhpKakJSOjnuZj52Mgol/ipigo56Qk5iWhY6DlH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+ZprimprGhsK6csLyqqa+qmYN3c2NWTVJPUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62ooqaSnaa2raOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOVFNTVFVVVllbXWpqcGt9g3tzTlhyj4KXho2cl4uUkaCZnZWUlpWPl4qAlIlfO1ZvfIyUiYCMkoyQhoZzi4WXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjX2KgZGNj5eamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqKiel66zoqaumayrmKi0o6mto5N/c25fW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0lGSE5RUU1PUlRWWFpgbG1neYBzUEI/f5WSkX2IlYyEio2bjpaVipKIhpWHeYl/YEpRbniLkoR+hI2LhYB/bX9/lHd1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46Rk5eMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpyxqqGkpJGmqZaiqpyipqiJdm1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPR0pEPTc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK8p56WjX+KlKiWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUpFRENJTk9oWU9RU1RVWm6CcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4R6emh2e45wcm14gYuNknh7gHuAdnNyknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlZyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYV1dSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUZJQjw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoB8f3RmdnyGbG9oc3yJjIeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUVZLTktPT0pST0lOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkpluaHd+gm1qZGx5hZCShmxybHxucnyGaW5wf3ONiYWGe35/e3dwdHSGgnmBeXB8joyKlIOWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHR8amqdj015hZOJhI5nMXaHc2x+foN0ZmV1f4SEhYBnaWx1a3GAfGhxcXxuk42PfHR+fXFxbnZtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2twaGZYUlpXWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYKChYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgWhnYmpucm1wgnVpb1h1cI6bkndtf3t9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBcXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opp6foaBhJmEm5xhhqqfnYuDkI56d4l+iYiOc4uXj4R7XWVxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEin18gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGaiIePkpSlja2qSIaur6+LgYCTioKLgoSSqYeAmJiKnHRtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtcHd+gHR0cmxbXl5cY2NYZ2VcVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6toaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU1QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGlocISBdI2HhIpxhoJ3h397doV9bnZ1Zn+UjoeIiIeIh6CropaJjpd/eoKIeXlvZ2t4f3t/dGxlXltbXmpeYmdgWk9LTldSUUlQSkROR0NKRENARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJTExLTlZgY39nZ211nZuPmpKTi42OmoiTj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJaGkomOj5aktambjZSig4eTg31/a2prfYGCg3VjXmRgW2dsXWxsXldLR05SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsomNl598lJ2bjZKVmKOipravnZGZqIeWj42BiGxzc32BfXNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKmPm7CLlaOmt7uboaOwkqKdop2Qo6Grr6yytaKUpKqImYmSiZV6en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaChImGiIeHcW5hQEU2NDwzLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hEPD4+RkhDRUE4Ozw1Qzs9RktJR0hRT1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rK+1orGrsbW7t7WutKCnqKOnmqmvrbK5t7inm7aojKSOkZOfhniChHdaY2VXZ2JiZGBhZmBbVUpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+HgIaIhYmHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVlBfVUlLS0FAP0dLRkVEOz5AN0Q3P0JKSkVGVlNQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7m3v7e6t7msrLClsKmtvbC8usLCrJm6qJOtj5eXqoh9g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2am9+joSAjYRuenN4h2K5oZmiiJSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGKg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWFhaZ1lUYGBMU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC8t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8PFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euaqhq46kqLaIgYFzYGNjX1hiYGpnUlhgVlFVSUVFTktAPkdEPUpBPUJAPUY+PEhANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJzc4fVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop+g3+DeHuLg4d8i3mBioKXfnN9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0pIRkhISEdBSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura5tbi5sre1tK62tplkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1s/JzNLMz87Kxr++wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mH97bV5hXVpfYVpkY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzM3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTREM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkpCUbmxvdXWHs6yhoJ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2ppaGBmaWlsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6uNtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy9DT1c3Tz83FwsnQvsnJysnRx8zNwtDRt6/DvMS5pbW6wqKDcGVeXl5ZYVhaZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4SNioqLkId8hIJwf4iBhnuHcoOSi459cXh1bHF4fnF7bnhzbGmBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SjjrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzczS1NTQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t86ee3BnX2ReWGFTXlpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd3B9fn+hnp6hi4yYk5OLjJKPloR5hZCQjYqJh5GGfoF7cn6AgYd6hHWFk5CIf292cmtzfXt2e3OBeHJqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3h6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjHRwZWJhWVVaVFxQS0dJSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiNh4+AeISUmIqMiIiLiH6CeHN7fYOHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR1eHydtYw7QYvFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs7S0NLQy9LLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvLtXp4cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfZeRnYt+h5KDiYaFiYGHfHiFlpaIjoOHhYZ6hHlxenuEhnV6hY6NnHmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6jIeOk5GblZ+Vh4yTm6CbnqqfoKycoZqYn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSMhnyciZSPrqqUlZifmaevtb2prb7Hy8nJzMvQycPSytTX2NfY19Xb19PZ29XQ2trR1sjUy5Z7fWppXFtRVFRfSENGSUg+QT09Nzo9Pzs9Rz0/QUFBREE+Pzo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSal5tZGJma3aAiHKRj5qAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5bnt7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4i3xaTBybiBlpqPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkIOJjpaZl5alnJeflp6TkZejnZmrlZCQiYyRgoyFiIiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYqRjLyhmJOXmZ2ppqaun6i2v8DAucfKzs7FzcnR1tXV2dXX29TW2drb19va2tjO3MaHfXtpa2dhVVhWVk5MRE1COz09PDg6PD45PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiYySd3Z6inx+gH5/fIR6fYKRiYSFeoSHenV+dW18fYZ+c36SnpGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqY6Pw6G9i5yjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYqQkpWPnZqTlJCWjYyVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNgoWEgaWHi4u4mJ2RlZaiqKGdnp2jr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4ent6bWtnWGJcVFBPSUNMQTw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlhfVlhmbW1taYGOinFzeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFnKGanZSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOioJCkrqCLkYuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OUjIaIjJKTjJSUlI+Lj4qHlpudj5WWkIqSk4WAi4iSjYqKnJaZoqOHk52WoIqJiI2ckIOIjn+Dh4akhoyQs5idkpWXoaGfmZKcnaiyuaymvcLHzcjGz8zQzM/X0NHUrtbV2NrY2trX1tnZn3F/dmloX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+kYNvbXiLeHp/eoF8hXt7doWEf3NwhIF6dXZ2dISDhX1+kqakn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4ianqOSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3HlY6Gh4mQko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjo2Bf4iPpYmNk6mal5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NPazoNzgWllYF9fUEtWXEJCRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go59fG1+iHh6fnqBgYJ+dnaAgntsbop+eXx3eHyEh4t+i6OzqKSrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5epma2vpJeVlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmpOPipCLl5qJipaOhn2MmZ+KkJCcmpmTmZiflKCdlZ+bobKuo6W3vrPFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYldiWFFJSk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISKentthYZ5fIR4gIWAfXB4fH18b3OMen2Ce3iGi4mFhJKnvK2psr2vpa6zs6ijorCsipq1nqK4pZWtpJeprbempKOfmamYqqSvsKmamZyUlZGYoJeZu7utyaBptrirsJWYn6Krkpe9o16qsoKJio2Vh5F8j459g4aOj5SUiIeSlouPlY2LjZeZkp2ZtJaVq56LnJSSjZCSjJibipKej4uJlZ+ijpWOmJqdk5yYnpWioJScnKWvqKKls7irwsjEtbu9vMXIyMLRocbJzc3E1tbQy9OicXxqXlxVYFNRR0Q/PUNBQjg/ODc0PkY8PDY8MzUzNDU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojk2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7O0wby0rKuztoyosq6uvaubuqSorbm3q6amoqGjo6qvsrGqnZyjmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynm7GakaudjpmPko6VkJCWl4+RoJGIlZukrJWWj5ScnpShnpuZoKGUmp6op6ShpLCzpsHGw7Cwu7bFxMO+zafHw8fDvNbQzcTKiXZ1ZF9cYl1PS0NMQEVGPkE/Qjs6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn57gn9xfoF6lXqSlJSYkZOVqLTHycDCzMHDuse8uq+rubuXsra6s8CupcCkq7C7u6quq6Kinqesr7WwqpugqpyinJafsLSni6O6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYoJeTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOflJuUoKGZpJ+aoJyglJiep6Smp6SvraW/xMKuqbe1ycO+ts6yxb7Du7PRycjBtXd7b19aXmxUTklETUtLSUBBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXJ/e41+d4eBgpB6jaGWqJqamLu+ycjKwtLJysLNvMGzrbu+p7q/vrzDuKzBqayzu72qsKmkpaOsrrSttrWgoK6fpaKYo7S9qZuovMGjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6gko6Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXnKWjqaiisq2ou8DEr6Wzt8zAua7Ds7u+wbmtwsLBwJlwe2NbWV5cTU1OSkdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jDvsnEyMbTzc7Ny7zCt7C6vLS8yrzDwba3vK20wLm8ra+ooKmntq2uqbK3mp6soqehnau3uKmlr77Esb25s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZlmmaOfs6WWo5asraunnJ+nl5iWmJWhpKimnrasqbq8w7WmtLbLwbiqtqyzu7iuqLi6vbiDbnBcWlZXUEdLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqJaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx77GxcjHzs7O0sq+u7axuru8vs62xL23ubeysrWzuLKrppyrq7irqaiwsJejrqSnpKW0wLCqrLO+wrrAubOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWampWSk5mZpqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqurrbGxo6GysrSkcnFnXlxQUk1FUVFQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqK6YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca8w8TIysnIzM7Hvrqzr7m4wMHNtci6wLi1urGvr7K0pqObqrS0q6mmrqyZpK6lpaisur+oq7a2v8HAv7izssKvt72ro660rLiliJuXppt2vqCEmJyOk5mai66WoZybl5WboKGpnqigmpqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuupaWgpaqTkpmciZWcop6Wsaeqq7q3vbOyrr65tp+jp6ilppycrKmpjWVoYmBTTE1HSE5KVUw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uumJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBu8PDyMnFws7Iwr25sq+5tMDCyrbGscG8tburqa2sr6OimKq0uqaqp6yqnaivp6Srq768qKy8s7i+xry3tbjAsL2/s6m1tqu+pI+il5Gin7yfiZqgmZeenY63n6mcpaObnKGap6WzopudpZyoqp6ZlY+UmouXiY2kopScop+gta+lppOxq5qrrZ+fpaSqkpaVoISQnp+clamloqG0tbq1rai1srKenKKmmpeVmaqhnnhiX2FfTElHSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7DrJuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMK8v7jBw8HIxL/Nxru+ubKwuLO/w8i1wLC8t7m3p6Srq6yhoJqqqsSipamspp6sr6yiqqi/uKasvbC3t8a2tbm4vrC+wba0srSvvqOWo5aTm5Stn5ChoaWjo5+QvqWpnaisnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWsppyWsqeZsKmgm6ufoY2alZ+EjqGam5KlpJqYrLG2saqlqq2snJigoZKOkJWon5RpZVtiXlBKSEtPTEhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTaKao5uexauhn6ydna2fkqKelqSgp6qsl7awo6qztsXCvcC2wMK8ycK/ysi2uLW1sbS0t8HGt76xuLW6tqCnraqsnZ6fpaTBpaCprqCkqa2voqanvbalsbu3trXDsrO3ur6xw8C4uK60tLSinKSVkZOgrZ+YoZ2oqKuimsOtqZ6srpubnpimoL2hnaSYq6urpqGZjZqfkp6Jjlh/lp6moaC4qqeTmbejn7OioZywmKCPmpSego+gl5aNoqSVkKaus6upoqKlpZWVnJmLj5GTpJ+JY2dcZWFNSktLT0ZFQUZLPj1JQTk5SkpOXVFRST1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcTE+en6GYnsOnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HDs8LEvsfEvcXKvbCwtq6xta+/xbW6sbC6tq2aqbGpqpqepqGnwq2brLGcqqKusKmkp723pra6va+3w62zs8K/scazurertLatqqKllZWUo6uhn5+Zp6uvr6+7sqagqamZmZeSoqS4oaGkkq6vrKSmn5KhnpWej5GNlZ2ao5+ntKenjZi0nKOvm5+cr5GglJiUmoCSopaPjqChk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXGhmS0pMS1NCQ0BJRzs7Rj44OU5NVV5SU0o+T15ePUhQQk1MSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLbAxb7KxbbAycK1q7WpsbiswMS0t66tt7qlmauyq6qYn6aXrbu1m6iwm62frrSyp6q6s6e6s7iyuMCqt7LCvLTFp72urbe1qaesoZeWkaWkoaGXl6SvuK2ytbagn6ikmZSVk6Ogt6OkpZWusbKlqaWinpqampWYqJ+emKKerrKipo2Yr5mlrJibn6aSnY+VmJqGlp+UjJCcnpSLqamroqehmZ2WjI+ZkIGGlomVn3plal1sa09RTk5UPUJBTkM7Okk/NzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpwaVZDV0aMeWZDO6SknKGlv6anr6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTCx8G5wcfBuqq2pa27rcHDt7iqrbK8o5WtsK2yl6Wokaq5qqCnsJ2qn7C0s6qptrasu6yzsrm3rLmwwbm9vqbCq7C2rqmqq6admJiqoaGgkZegsK6zq7C5mpupn5mWkpemoLeppaKir7Gzq7Gnq5+boKCbnqWdoZedo7Owm5+QlKaaoamblqSgl5mLlpmUlpedk4iQm5mUjqmpp6CjnJibk4ePmYt+jJeGj5psam1ibm5YUlFaVEFDRVVAOztIQDc6WFBkXlBXV0RZXl5NTFJPX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqbyhqrCqo7G4qaW1squhrLW9r7O4vLq9t7bBwr/JxLnFw8HAucW+wbivtqert7K8v7+1qq6yuJ+XrK2orZeoqY6nu5+lrbOeq6KxsLOsqraztb2tr7G1rLC1scC5xLarvK+xt6ysqaKxpZ6kqJ+jlo+Yn7Kqs6mqs5mdp5uZlI2gpqS0rqeirKyusaeyrLKpo5ufqKSelaCZm6i1qZeZkpKfmZ+hn5KtoJqZh5aZjJ2anZOKjZaXmpenpqOgnpaWl5SBkJWFe4+ThIyXZ21zaHBzX0dZZlZEQ05YRFo5SEI1Pl1SaFxOWV1HW15dT01SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy2o6yppa6utqqutLmmprC4xrext77BwrW0u8W+zMW5w8G6wLrEuMG5s7Wsqrq3u7q+tauusbaYmKirqqubrauPq72eq66xo6qfsa2zrq62srm3qq2usqe1r7S6vMmyqrW0sbSvrqags5+ZqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC1r6OYnq2nm5eemZmsuKKXk5CPmJyhmZiUraCelYKUmY6enZqXkYuUkp6apaOjoZmWk5KWe4yRhXuNi4OLlGxueW91fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltcWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6u0t8q6tLu6v761tLfDwc3HvMS9t7/AwLjAvbK9rqe6ure3wresrrK4lZemrquno7OqlK+6pK2ysaanorKzsbKxtbG3sqmuq7KnuK+1s8TEtqm0tauwramnorafnqaxoKSUm5iUsZ2nm5+pjaminZuVl6WlpLanorCzq6exp62wtaykmaGsqJycnZuUqrmclY6Oi5icopiRmKijoJeEk5eRnpyYl5aIlo+XmqidpKGTlpKQlneFkYd8hoKEjY1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dlW01eYk1YWVdVWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpKytq6ajsLKzqrawtp+rtbrIua7Bu8O3s7K1wsPPxMDCvrS9wcC6v72zxKiqubG2t8C9sKyzs52gp7CtpaaxpZ6ytayrsrCsqai0uqy0s7WstKypq6isqbmtsbDHvrikua+pra2mp6ywpaOjrqOpnJ2bmq+ZoqOio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKqcoJmakqS0mY+JjYeRo6CWjpWfoZaUhpCUlJ6bmZaVh5iSlZmnnaCgjZORjpF4fo6FfX19h4qKcnRzf35+XFJkbl5OWmddRkSWW0c6Tm1YYltNYWJOVlZWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGpr6Sno7O0sbS1sbGhq629zLquwbvGsbSttMLD0cTGv8GzvsPCvMC4vMWorbess7i8wbGssq2hpKetqaiksaOrsaqvq7Gurq2rs7unt7GyqbKpq6alo626rKqwwrm0rLmoqaitqaewpamkoq6qqKKenKKslaSdl56Yq52hp6ihrKairKu3sbGgqaKfqq2wrJ2epqepmqOYmY+gqJiGg46Ki5+gkIyOl56RkIeIkZWhnZaYloaWk5OXpZ2dnYySkI6KgH+IhX13gIeFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTlVWVVdQXGFfVE9PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqbGcqKmwtqy4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMHExLrBtMnErK+3rrK6wL+0rq6rpaiqsKmmqLKmtK2qsK6tsa+zrLO6pLizrKytp6ugop6wt6uqrbq2pLW1o6morKyqrKCopqaxsqOmpaGhq5apoJOaoKaeo6KqpKyinqaxt6ysoqWimqmqramcoaWkpJmgmpWPmJ2TgYKQiYWdoI2Lj42bkJKMhY6ZpJyTkZuMk5GRlKObm5qLjouLfIeBgoJ7dYGEgn51d4ukh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqmvmKmorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK6wbrCxK6xtbK0u8G+s7KvrausqLaqpa2wq7muqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKSztKC2rqGpqKuoq6afq6uoubapqampoamfrZuRqKGdoKOipqKqnZumtK6npamio5elpqeqnKKjo6CZmJ+Rjo+YjX6HjYeFnp6IhYuLj4+RjYWHlqOajo2akZKRjpOfmJmWjYuEf3SHgYB/eHWEgHt4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSY09MVlRVUU9YWmJWSFBqVFZTR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UUU7lY2voKWqrJmqpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNDAv727vMO9usPBwL+vsbOytr28wbKys6u0qaW1qKSts7K4r6KttbGvsbmquK6qrrarqp6pq6CjobWtqaGer7KhtaqeqKiqo6qhoaytqL2vrK6soaenn6yZj6+imKKgqKeep5uYqbCoop+soqGSoaKippiaqKWYmJidj4qHlIh8jYaEhaSWhoOCjIeQj5GFhpShl4mRnZCTkI2RnZWXj4qFhnhzgX99dHh6gXt0dHtqgoikdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaTozOF89YWQ/RjFDUFtbK0hQO1lDNI+OsZ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJxsjQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaanrLG2uLKmp7q1rbS8r7ulra21q62cqa+kn6WsqqecnaqypLSpmqqnqqSpnaKoqKm9q7SvrZ2po6Cum5qyopakm6Sln6SamaeqpZ6aqaGbkZugpJ2YlqmpkZmZkpCLgo+FfY+CgIiej4eAfoyIkpCQhYGUm5SGk6KMk5GLkZuTlYeJfoByenl+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWh5XV5WQ1h7bVRhUFJZS0tNcHRdSVpbaFpFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppaOhqqS2srGkqbGnrbnBvbWwo7mtqKiww8nIzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOmqquutbe0qp26u6ixv7K6oK+0tqmsnq6xo5ylp6mjnZykr6avoZ+qqaehqZyjqKCtu6eusa6gq6KjrZ6erKaYn5uhopyfmpmiqqKamaOjlZaTnqGWm5amrIuekY+RjIKKf3+PgXualIyJfX+Mh5CPjIqGk5iRh5SjiZGRh5CakJOBiHx5bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1ianBgb0JdeWtWXk5RUUtJTVNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT0jkZesmJ+Xp6Ohn6ejt6+toq+vqau5wrqzrZ+5r6uotLrHysi/t8K+r7S+tsS2w7KwurGywLa7vripubi9qqS0pqiqr624sKmZubyjrb60s6Gut7Wnpqews6CepKWnoaSZnqyoqJ6gqq6noKaXoqifsLifo7GvoauhraSbpqapmpqbn6OVnJuZnammlpqeqJGYkpidk5mWoaqQmomNj4d9h36CjXx8oYyMiHmEjYWKjY2FiZOajomVn4iQlYKMl42RfYR7c3B8cXN0YHl4am9wcXBqf3NkemxoZmRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNXF9vVEVYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclaygnqGkobeqsKO0tKmpusW2sq6gt6ytrbC1xcfAtr/CubC1vLa+u7+vrL6ws7+yvcO5qbu6uKeotainq6+rs6+lmby2pKu6ta6fsbivqaWnr7KcoaSgpKShlpuvpqGfo6ivoaCik6Okorawoaawq5+ro6+Xm6qlqJ+Ymp2kk5qbmZylqZmbm6SUlJeVnI6Tl6KpoZCJio+GeoN9g4p5j5eKjYd6goiEiY2PhY+TmIyOlpmKjpZ+hZeMj3qAenBxdm5vdF94d2VtbGxqaoRvZnJpa2ZpXmR0gWBba3ZpWkp/XlxYT09LSEhSVUczOV5ebVFFWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnaShoqG3qa6gurilrL3Fs7Cuo7Wvra2utMPDvLO/urexs7m3ube6r67As7S5r7/BuKy9urWmorKpp6myqq2xoJrAtaSntbWonrK8qaelqa+smaOnnKSllJihsaWZn6SoqZyin5Kkn6O4qKSnraadpaGokp+ooqGhmZucoJKam5afoaqbmpiglJCTlpmNk5OjqKSQiYmOhnmEeoOFfZ2NiYqHeoGEh4mJkoWWk5KLkJWTjI2Ue4KXjot3fntsdHFsbHNhd3VpaWpnZ2+GaGhpY2ZpamBrY2poXGV7Y2BTdFRcW1NMSkdJT1NAISppXmpNRFdVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynaKjkY2kp5uenp2jtaynqrq3p6zEwbawrKO1rqeur7e/v7yywbewrrK2tbi2tq2qvbOusrG9v7iuvLuxpZ+2qqWls6iqrZ6dwKuopa+yqay1u56oqauxpZieqZ2mpJGZpq2imJ6kqaGboZyWn52ntqWvqq6hoZ2doZSgpp+hoJqbmZyRmJyTpZ2roZeWnJSSjJWXi4+YmqmgkYiJioh5hXaBgoKdiIuCiX1/hYiHhpCElpWQjpCRkJGMknuDlY6Gc319Znhva2prZ3Vza2NnZGR2gWNlZmZmampja3NaX1ldbWRhTmlYWmBWSkdJS01SWD45X2xpSENVU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CMraGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu6rcCyrq6utq6yuLOoq7mxr66ztrq2sLi9rKaetaqgoK+jqa6cosCgsaOur623rrWera6traKanaeppZ+Vmqeln5mloqidmp+blJydrK+luqeuoqGamp2ZnqSapJ6XnpiblJmgkqiVqaeak5qakYuVmY6UlJmpp46NiomPfIJ0gYGKmIWHfImJhYWKjIqShJSck5KPkJGWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjdIFiZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNjrCempOhmaiyr5+4v7agtMK7vbmxprawqK6lt7i3t627rqyqq7aqs7itpbO1sq6psLe2sbO1uqapn7WonZ6ooaismqe+mK2jrq60ta2sn7Gtr6minJ2jq6iclJympJ2aqqKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbml+doNxbIaLhn2EjIdwXmNhZ4SYhmyLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFZ19kZm5tal1gYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpWwm5yToJuqraqjvcWvqbjCuL28rae2sKWro7ezsrOxua2ppqy0pq+1oqi4traop6y3s660rbOhqZ6zqp6ho5ulppirupWlpa+ytq2upKmuq6yloZ+coKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6KinZaXl5ejiKCOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanBviFheaVtsbFuIcW56coVnhoRaXkdOP0dfTUVSVlZRUVJXVGdeTVdJUlNQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq5yZmJ2fqqqnqr/Dr7G6vbfAv6qlt7CpraWytK6vs7eqqaWwraW0s5yttba0pqeos7Gtsqiunaqgsqigo6KZoaGarbOUo6SltbymrKerqqyopaGgmKCmo5mZpaOkmJykqZaUo5yUk6SlpqG3o6Ogo5iVk5eSnIivkJiUiamLl6GbhbGAo6ydk5mdlHmD1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6b3KQ2H5Ta2O2sn+BcpV0mqGqkFdPV2JQVk5GVVtYUVBSjFxXXFBAXERRTkVHSjw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yqLHCvbK1wLW3vsKrprOtrKmnrrOpr7a0p6eltKWnt66cs7K2qqWkp7KurrGmqp2npLGjop+dlpqena6rlJ6in7O5o6qpoq2upaGdm5qip5+Xm6egn5iep6eRnKeak52hpqKgsKKfn6OWlpKXkpmFr2tqio2qfmeDlYatZHCdnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmh8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1hXL0lUVEpERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6y0vb6wtsSyt7rCp6mwq66pqbCuo7C6r6OkrbKjqLionrOysKOloKqtr6yvpqefo6Kwm6KblpWWmpqspZaboZ6zsqKrnKKtraCdmpegoaicmJ2jn5yZoaakj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmyCpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlzdVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqagrqmnsqypu7bCsLvCrbi2v6qsra2upq2xqaGuu6qgp7Sso6u1paazs6ejop2nqrKosKilnp+fr5afmJSVlZedrKGZmaSotK6hqY+pqKqbnZWYoKWnmp6cop+boKOko5WbnpeZnaKpm6WZnJyioJaTkZOTnYPVk5m5cLDCfsWGfNaUm7t8mpWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWJzc4htl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1s7qztaexsKOwsqafrbWnmqe5raOvsaCztLCgpJ6fp6mwqbSopJudnquXmJeVl5WVoKmcmZanrbCoop+PrKKolp2Wm6GloZihoaGhmqGippueoZ6UmZumoJunlZubn6CYkJGUkZ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnSHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVHSTg9VlFaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbO5urOltLShsbGin6uvpJemua2ksbCctLiqoKadoamksqisqaSZm5qonpWUl5iSkqKnn5aSpaqwpqGVk62fpZKToJukpp+VmqWmoZqin62ZoJ6dkJWboZ2cpZSdlZminpWYlZGbhax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnYaZmnevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlJ+4sJe0wa2os6ipsrq3s7i/ubextLu0pLiznrOsn56oq56Up7WrqLGxq620pJupoKCoobanpqmimZ2UpKGTkpuYkZSipZqSj6atr6aglZmpn6KOkaGaqKSglZmlqJ2cpJ6snKGdoI2UnpqdoJiZm5aXoaCTl5CmnoapfX2leKGPjoKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/doh0qIGOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmdNW2FfcnNfSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZmZv6uXtMKurK2pprSwt7G1v7m5sbC1uqm6tJ6vpJ6kp6edk6qwqa+ptayqr6GYoaCmpaS6oqOroJabkaKglJOemZOXnp+PjYuosK+mnZabqKafjJKjl6iqppSWqaeenqCjraOhnqKNlaGYn5+SnpeclZ2hlZaOq5yPrm1ytHKpjHaKp3O0eHOzgJGko5KcjYmkh5B3uG+Me4uiamu2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2VUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbuhnLLArq6rq6e3qbivtcC1u7CuuLaqwbWoqKCbpaShnJGqqae1o7Kor6qgl5ynoKSruJ2jrZuWmY+lo5WMnaCamJyfkZOUqrawp5iUnKypl4yTpZmlrKKRlqqyo5+epquwmaGjj5milp+blpyXoZKcqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBi26aiHFujaR0vV53fVthebxrWlZcanleamFlZ2JteG9ZW1lDQUByQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdCOaebnqG8opexw7Ctqqussae4r7bEsbmwrbmurcCxq6OinqOhnJuQqaOqsqS1pq2lnpaZqpmmrLmdo66YlKCQpZ+SjJyjnZedm5GVkq65sqyVl6Onp5SQlqScpKyekKCoq5+anqijs56jpY6nopSimpyXlaOYkK+gkpSpnoWQmbV/j5GMt5V4gpOatXdta25zb3mPhI6JdJ7Bu72ae4GyqHCAdJG5g3yGhoyGjXuKh42XfKS7ub2cdXq0o3R2l3V0sHWZnmaGao21dHJxd7aMXoB6fYpog3lteWOLrHB1hX9ZW6dqRWVaVGZgY15jUWhncW11Qk1QTEQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMK0rKuorKupuq6wxa60sq22prS4rKmhoaWeoJ2Zk6ukraqmtaenn5uWoKOdrKS+pqGql5SckKGakY+hqKGTnZiTl5SxtbetmJ2kpKKKkpKlm6Wqm5WopaWbmaCopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pm6V4h3J9mo50emSHe72+wLpvkoJxlYdhc2paXpuKYWOIjpVrYICVZG2dd2KVa4CalZRlXmBjcZqKaXKMfYWVZ2p+cnR4fX5iW3d0gWhQXG6EfXyLa1hseoJzSkpvhnBOdExFV11nYUxaWGdjX09bbnVpclJPREVOO0hIPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM9W08nPzI+qKCoocKjmrS5taOspa6np7Wxq8irsLKqtKK9sbGmoKKonKKbmZmspq+kpLWppZuXlaGbpq2ovqeoppWTm5WfmZKXpKmokJ2Rj5icr7K/rJunnqeiiJORqZqoo5qbrKCjmZmip6yin6uimrGblKeglpSdn52XsaSXoaiZnJGdnKKjmKWhmpyampmPlYFnbn1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYlpqgoZqclKGejYJ6pIZsanyQfIB1ioqBcYJ4eXZ2i4B8imtzgXSDdWV2fXdrb3ptYGNdcGhNWFpmamBXWnB6bm1mU09GUzlPWU5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqqayp6WwtKrIq62wpLSlwKezoJ2kpJyjlZWgqqeso6O2q5+Zlpafl62qpcGeq6SVkpyXnZeSk6KfnqKnk5GZqKeyxK+aq52qn5CXlqedqpucoKyYoZqboaSvpqGlqJ+umJennJmaoJ6enK+gnKGmlZeSmJOfoJWinZigjpaTioqNjpeukHyVm4KSgouqqIaBmZeKhI+fiHuEkIeGmpKIhoqVj5uXjZGYnaOWmpORno1/jmahs6+FioR2e5KKfXZ5em9mepGBgIlrdYF5iHNpc397doOGgmt1ZHlmYGplY2Rma1lse3BpalxTTFBEX1RGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKumsa2irLOwxLCqq6Kyrbyjs5ufpqKhnJmXp6WppqSlsrSelZSdmZmwpa6+oKuikJGdmpmUkZSinJeonISeqquis8izn6qkqpaWl5qmnaian6Oqk56fnaCpr6mlo6uirpufoKCYpJ6cn52vo5ieqJOXlpuQo5iXp5yal2WCknxlfo2akGR5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gjd2tqi5mjnplzbG57hI2HelhlXoaCXm2LiYF2XGhzd3eSgIeCbniCeIBzbXmEdHaIiI6DfGqHWV5sdWRdc4lpa3xxa2NeUk5XSmRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora2wpq2tsLyxqaajra6wnqyWoKOdopmZpqucraOlqKmyrZ6Vo4+ir6W2uaWuo46OmqGZk5KaoJmZpZV7pa2iqLTEuKSip6+enZSeop6jnKOpqJGeoZ2gqrCqq6SqoKqbp5+noKuVoZulsKSXm6qVoJ2akaSWnamXnn69g4hytHKEnYataHi5xLhxk6KjeqaZmXOqgnzLwMC7cYyiiIKffZaYiZ3AvYKXnZ2NncLBfIJ8ko2aw8B9a6WyboyBb8p6f5t3kYOOgXZ6gYB5cXp/h3B3hYyTeW54lGNmX3lkYGWCY150aGxkYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlEvI0ZbM1BZL1VBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpqawq5+rmJqin5yaqqeinayjpaikpLSknaKSpq2ruLOnr6KRkZmdpZKQn6GYm5+dh6espKutwMCxoKmvqZeRnp2hmaKjqaOSoKGdna2uqayno6Onoaalna2okaSaqK2pm5ypm6yglZWklaCilpx/zpR4eqSBeZWWm1+uj16Op4GioH2nlpt0q4OAr15jjap7p4eFoHWXk4izY4KrhqGOjbNqha90fZeIt2GDrVmjzW2QdXvae3+ZcH6IknZ+ZXuIdnZrfIhufYWQkX5tg5BhcmxwaGBfeWRccWhqZGZgUlRSV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK2zq6ayrKyqo6qmr6qgp5uZpJacoq+foJ6op6OloZ+wrJqdlaeurLGqqKyglJKbn6SSj56lmJ2no56upKuwqL/Hs6ipsa6Wkp2boZefqaqflKCfnJ2tr6erqZynqKSiq5KsspaloqqqnaOmpKGwoJKZppifmZOUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHOtfquHhp92mJJ7fJd+qoiijJGMnX6re4mUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbZKQZnB1dXFhZ21lX29paW5nZFhTXGFZUVNDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJyjjqOjoqyvtq6osKaoqqasq6unoqOdmaGUoKWrn6KloKioop6dsKyXmpapp66sqKapnpeUmqOhkZOgrZudpqOvrKOstaq5zbKtpq2slpWcnaKYnq6snZagmZ2fqbKpqqqbrKuko6ybr7GiqKuupZilqqipsaKSlqOkmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYVKrhH+ug5t2rYGmhoafepmXhntmgKOJpJmGgqN9qX+ClYeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgW2alHBueXh5cG1mZWVxcGZ8amNdV2BpWFhVTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCuqayip6apqquppKagm6SdnKanp6OcrJqirKGjn6+inJuTq6S1sK+gqZudlpSmopCaoqigoKWcsKakqLGstsiytaqrqZWRnZyimJ+ls52aoJScn6esrKSumq2qo6KqobOtoaqzsaGaqKeurraikpaippiakXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDo4iHoHqYlpp4qsl0maSVqKmRk5qMgJyKmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxl5OAcXt1fnxvW2ZqcnBlgWteYVljbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrisqqClmqilqquqp6CmpZiqo5+uq52moKyanqmlnae1n6KXk6mqtbKsnKWcoJSPpayRmZuno6Cppq6hpKepsLXDsrOqraiTiJacpJqho66mmKGVmJylpqubsJ2uqKafrKO3rKGxua+dmq6msrKypJOXp6KZno6CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GQi59+mpaXinaemIqlmKSof7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpOSi3V7c4V/cV1ubnhyaoFvW2RfaG5iZF1MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayys6WeoJWlrq2uqqedpqaao6ehs66iqaeyoJippJSitaKilZehqbS5o5uinaKTj6GxmJ6bp6Whoq+unaSoorayxLGtqa2pkYePm6ecoqScpZeemJmapqSpmq+irqWmmK+ku6yhtretnZ20sbewsqaXna6fop2Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOclYqefJiZhoePc6+CpZuijaaLk52KlZCbbXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfYyNlI14fXmPgm5qeWl5cm6AdV5lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6inrqusmaain6agoLWno6mnsaOUrKOOpK2jnZCamqq0tKSdpJypkZSXrZ+fnaeknaectZqhqqS2q8OwqaupoYyEjZuhoKailZqanJibmaakppisqK6jpZutpr2slL2wrJ+ir7K5qrOmmqixoqaXeaiQfXywd4qApKWInG2yb6CHrXyhjoOolZmArImFroWflKqhoZeGn4CZlYB7kn6rgJ2aloureJ2fkYqUkoF6r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYKVjpiNe3uEmH9sbn9jfnRugHpgZ2VxbmhnaEJaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9kpqDqcbCtsG0n5qsoK24paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuopJaJmpCusaymnqaarJeXj6yhoZ2loZqknK2YoKimtqnAr6WppJ+LgI2bmp+mnpKUmpqUmpqlpKSaqayspKWfqqi+pJbDrKqioauyuaqupp+yraeol3avfpCLnIWHfbquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbWdvmZiMiLBbfbRcpINryKJkn4B7vFh2tVqyfVKugHqsWIChbpiQqJuLl5GXmHx6j55+ZXV+YoR4dIB8YWpmcW1mZWZPVmRcQlVfPkooPjo9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urPBs6ObrKaktqigi5qgn5yzs6mfo6CetZigtKiqrJ6vrZ6sm5WvqaKOiJuOr6yop6Gmma6SmI+omqGepJ+Zo6OlmZ+jqbKpva+kqJ6cjn2LmpWgoJmPkZqbkpqXqJ+hmqiuqKamo6Wpu56gxqakqKGrtLWsrqaeuqyrq5SAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6OBb6uEbJx/erKwx4Nqq7C9rHh3or68c4GWjqeckJuRmJ57gpKce2R+e2SOZ3mCe2BrZWtqYlBhW1NqXEBVYUNOKT06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7myvbKina6lpbKmnYyYpb+quLKoob+mp7KcnrGcuqifra+lppSUsKyXjIKbka6loqygo5yqoJeKo5KmnqecmqGoopmeoaytqbmtqKOal5J7h5mRppuTjpGYmI+Yk6iaoJipqaGqp6GjqrueqMSioK6jqrO0qq+pn7mmra2Zc3WqpLeGZImgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1sZot4b26CmXGBempxaWeJlpWYcWlphIdncIZkXYhiam9ZXWd+d6ZfYXGOkW5lZX+Nk4+imJmZkZigfoiQlndniHhpjmt5f3lkbGNmbGJLZFhKa1o6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm4srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraeNl66pj4uFlZatnqaqoJ2jo6CRi6SSp5momZajqqCWnKamp7C6q6yam5OSe4SXjaWYjZGRmJSNl5WolZ+YqaObsaaeoqu5n6/Ap6Sypaywsaqtqqa2oqy2lYqgqKW2nYmWo5mHqZqQlJ2SqbOZm6OroLGWoqCdoKKcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJqXlY2Lk5OLj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGNkJCPnZWhlpqYo4OJlo5zapF3cYt4d3x6amxkY29kVWFZQGpbSGNhT1krRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWldYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW0tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptaepkZitoouHiY+bqJWspJ+Yp56ekpSjl6iaqJmUpqGjkJqnmaG2u6irmZqQjXuBlIuglIqVkZWQkJOXpZCfmqqgnLajnqert6euwa6jtqavr7CsqKiyt5+tu5iRpaSmtqKSnqefjamfjZKfo6yvm6GjsKivl6OgnKOqnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSLgH1mi4V1hnV5iINznGqFkJSTkIl8i5aSkpeUopOemKOFiZqIe3OXc3qLf3J8f2pvZF5wamFbYFluY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKiir7KsrqOppq2fp7WqkJCdpbS8r62toqOaep2isaSlsamXm7mno5SZqpyOhoqJnKOPrp6ilaefoJKWmJuui6mWj6iZqIyYqY+furakpZmbjYh5gpOLmpOKlZKUkI2Sl6KNnZ6onp+4o4CEr7Wir691pL2jsp93eZ+psLmUdaujnomAqn9kXGJ2oI6knoSXfW6Ts52jp62qo2Wdn5JzeZmWcICYqJdsf6KoimWcpZyRl5iWjJKckYadmpCVg5KHj4+SiYR3ao6GdoZwe4aAgGFph4qUkotadZSQaGiPj3N7ppqaZnqaiIR5mWqEi4NveYBrcWVfdnBsa2hbZ2ViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK+wrKuppaiuo6atpJKWq7awsqebq6asl3SMnbCfqKunlJe5oKCPnKSdkX+JiJuejayaopWnoZ2OlpGehHWtjoimmqmRl6SJnLq0p6CZmIuJdXeTjZaTipSRkJSMkJOgjpuhp5mcspaAjJu1nbOMko+7p6B+p6J6oq21gI6NpZ6Di4aQsaqvjIqWo5p5gIushpydoqepp4eVhZh3pZt6h5uBl6eCgnucsnqKhqCXmZSYloKRl5eEmpljeYeQhI6PkYuDbXCOh3mAcICBhX+GdIaElZF4lmeSdKCadH2ZhKKeiJh/lIuFhZprjo6FbHh7cXFnZHhvamxqW2VramV0XF5JVExRQEU1LlpUVTcpITA5PT43NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lbYWFoZllRSDlFSzw+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorJ+osKamqaWZlK7IvrGil6eptp6QhJ2snKeioI2Qvp6ZjZ+aoJB8ho6ZmIisnKGVn6CRjZOJhoCRp4yGop2klJiehp+6sqedm5KOhXB1kImVkIqUkI+bi4+Rn5KXoaWWnquHn7SJtJqtisqHqq2It4WMr4KwrIKpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFk4aNlZKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjnIOagY6Ph4uacY6ThWh3dHx3aGh2cWhoa15kcG1nbVhnR11STTJENDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mppqufo7ewqaqmmpSgo6SrpJelq7ijsIChqJ2lnp2JlL2Zk42hkp6PeYSWlpGIq5mbm5mhhY+Md5ucj56Ph56knJaamIejua6kmpyMjH5ibY+Lk5CNkI2NmIyPkZ+PlKGhmaGnfqGnh62doJatj56cnZGFgKCNqq2Fo42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGpmoG1bb4x9Z1pgg39iV1Bvd2ZtdHNram9ea3BtbGlYaU9eWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaC2u6utopmYoKKlra6hna62o6iToaCgp5yajpm0mZCLn4yVi3WBlJKNiqaWlZienn+ShYaspIeaj4qYqZmam5KIprGnopWaiImAaW6IiIuPjoqLjZKMkJGijJSfoJyhpH+TgY+joZSgd5yWj6eDoad/hqirg6V4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SfhYGkYJ2Zs5ZxfZiftHRzW56yg2pib3R2cWlvWGtscnJmXWleY0xEPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltaWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7StraCaop2jo6aunZyyrqyTmKCYoaSZmpSfq5uLiJJ4i4VxgJaOio+hkJKUnZd9kImOqKCHmI6KkaOUnJuNi6mopZ6Pl4eEfmt7h359j42Di5CRiY+UoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5WmqX2tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl46An2+akG2nml2ofni7a36qW46EXbNnXG5yenhraVxxanh5Y2BmWGJCUUZPN1ZDUm81S1taX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Saq7mxr6yeppycqZ+fr5yesamtnZejmqGgmZaWoaSZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhouekp2diZCpo6CajJGKgIBpgIZ4f5eMe4mOjoiPlpp/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqGmnqZ7sK2joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/gJuTp3eCnW5zfZVwmnRrpF2VdkhlZGF0cX5+bmZgbGl2e2RlYlJfV11VV0BaRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrpmEVF6gprO5srKpmqKMnKucnKqUoqykoqiPnp2dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHJ/iJKhm3ORkIGImZWhm4WOqZyalYuLinyDbISFcYGhjHiGjYiIk5iVfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiZ+bfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jp9hZtwenuYbJx8eJdzbqmkZ2FlenGAhGtnZmRudXdnYGNTXGZRUWJJV0pUYVdTW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FhZmVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtK+zo5uZhZmpoKGkjqWooJipipqYmJOZk5KgmI6HhntwfYRofY+DlJqBd5CNj4lvf4aPkpJslpN8iZKTpZaDj6ublJKLhYl6g3aHgG6Bn4Z3gJKGh5mil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCakHukgKGZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dzpHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdoWbbXZ4mGqZe3WYclBFfbReanZreYhmamhidHVwblZeVFlpUFNpSlZNWVRWXWhrblZoV05LQUpNS0hKT0FRS1BlY2ptZXVzc395fG51iXt7VFBPbF5oW2tpUmpoaWxnbGZjZWBcXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/k6Gyqq6vtaKikICYqqKjpYymp52dpoKbl5aOl5CPnJOOiIN5anmHZYONf5igeXWPiIyBaYSFkoKMhZ2Neo2LlqaTg5ipmI2Ri4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlYp6pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaaprdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcqJaX1tioW1diYxue35zcmSlbXeiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUpZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqOpsLGmn4uAmKudn6aNo6GboqKAlpmTjpqPi5iQjop7hnGAiGiLi3yYnHN0iX2Qe2SCh5WKiZaZgnyIh5eokYGirJGGkIqCin6AgI5zaY+lhH2GlI2ImKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SGeKlzpY+Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenKolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ56tjLZ0d76NpJNZg6aNq2F1cnRxfHRxY2p+bmhsU1dbVmFiXWtNXVJdSl5tbnZgW3FZXGBbZnRlbm9yYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKaupJmJg5irmp+lipulnamdhYyaj4eckYWSjYyNdIZ6iIRwjYV+mJR0dIVykoNtf4uSh4aTjn17goaZpo5/pqaOgY6KhZR2goeSb2yLqYCDi5SOiZyfiYyUqqKfj4B1lJeIfoF5lK6jf4GbcY+FeI+Kg357cqeMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDe32Ja4yFW3l5cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dHKUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm5tZ4xzeXuYeIVca1h5j2lueHJyb3h4cF1shm5pZ1ZbYFdcZmtkVmJVX1FfcHh4bGt2Zmpra3Z9cXJ1c2FvdWJ0e4F4dXqDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2UuKimi6GimqakmKWcq6KhhISYrJKeoYmbp5qpmIOBm4t/lpOHjoqJjXKDfI99fo+Fe5iPdHKDcJaFe32Si4aGkIV5foCHmqWOfKehi4aQkIWUg4aOmHdyhamFjpGdkIienoiMm6ifn6qDiY6Vmn5+iZatqI+Spo93b5yQgnmRbn6ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuCdnSBWXJuhpGBfX6Mal1qZHuFhImAYGl4epp7goqBdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pxZ2hle4N6lltcamdudlt7eXh1bnNzgmZcbYpra2JaWl9aWWxxXF9hWl9dZnR+enRwdGNra2t8fXN8eHVkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenZeemKijon6Dma2NoJWInKKRpZV/e5iFfZKZiYiGh4pzfYCMdoWLgoWXinFvgHKYhoR+k4SDhoqBeoGFjJyhkYKmooh4jpiIlIuLnJeFg3qsgpGXmZSKnp2HiKGrnqGho4uIk5uco5mWqqGnpqCSm4eVjXt3jY2Dp35/kpGSk5yyppuVnpCNspKXhKWMjJWbn4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoIiGiZ6KhJR+fYqAgHVvc4SCfneGhoqPppCDhY2Hg42QjH2IjIqRhHltg4R9eplqcmhhdIpwfXp3d3B3dIFdXm+GaG5fXlpdXVRoclZjXFxibGh1fHxzb3Bka2tpgHxueYByanBwbGeBe3KCgHh/fn+Fe22CjIZ8eXh7fXqDeU5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6WoqGYlJiYlJikoJ57gJqrjp+NhqCci56WfXmUg3uOmYmGhISGbniBgHOBiH6JlIRta356l4eEg5B/gIaEhn2HhY6cnpOHrJ+EcouQhpKRi52RfY17qoSNkpiWj5yWh4abpp+hmp2GgpGamZiQmqafpZ2dkJZ/j4l1e4aNg6R6fI6QkYaYqqGdk52PjaqOkYCdjImTmp6Cjpd+ho6Db3iGcnVhfoOPhnWLmIGDj4KGhX6FhJRueXV0kqGKi4Wag4SMc3+JfHxycnuHg3p4io6DkqaOhYOOgIOKiYp3homKjH5xbX+BfG5obG1oX3p/aH18dnV2dXt3XF9wfW51YGNbXV5RZ25UZVteYmtpdnp+cWxtZGtqaIGAbHOBbG11bnlwhXluh4B2goB+hXZxgo2Ifnt6fH97gopgaXxqdWhpgmVqY2BpXGR1aG9idW1sVWNxeWVwentzZWptbIuJnreaoaOfkZGVl4uan5+ee3iep5GcioeklIuYmXl6jYV8iZGDjIKCgm58f3lzgYV9i5B9a2h9gpiJgIeNfH6GhIZ9j4KQnJ2SiamdgHCMi4yTh6GiioWMfaiRiJCSl5OWk3iMo5+gnZaZf4CQmpiSjJqjoaOal5GafYyDd3+Cjoagf36MjI98mKSgoZOZkI+mjY+BmpGJk5ebfpOSfoeOgXR0gnB2YH2AjYZxipV8iIxxjH+ChYaOaHdxeIuYkY9+ln2HinKBhnt8cXh6ioR6eZCLgpWlk4uEj3qGhoeFdoKEiYh8Z3N9f3l7cWxrZ19+c2h8dXZ0fXOAal5gc3Zwd2RjWV9eUmtpVWVZX2FoanZ5gXFna2RtaGWAgWttfmhwcWt9eYd6a4yBc4GBfoF0doKNhn98en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykqWlnI6Pl4+GnaCbnXx2paGOmICMooqImpZ4e4aHfoOJf4iCgX9xf3t0doOFfoqReGdjfYaXioGJjHl9gI2DeZeClpmXjZehnH5wjIKRlIamm4eMiYOmlYWTi5aXk5J3kZ2goZeTlnl+jpiXjpaanaSdmJKUmniNhIJ3g5aNnX6BiY2McpejnqGTmY6PooyLg5aYg5KWmX6YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJJ3i4h7f4V8e3F+d4iFeYSPiYqXopWBgop2iISCgnd8goqGeGF6eX10f3hnbWVhf2pqd3N0dX1xfGJjYXNudXJtYVphXltsZVJjWWBhaGt2eYZxYmpjbWVofYNsaHVpbm9nf32CeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl8enFfcWyGhY+crpemqJ6NjJeHhp+Tl5l9eKqcipl6l52LjJiQeXyBjH58g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd+hIZ1fX6Kf32ZhZeVmI2ko5l/c4d7lJKKp4+MjoqToZKDkZCUl5GLgY+Xn5qSj5Bzf42SlImdnZ6ml5eNlZVzjI2Ja4WXj5l6h4iQiW+XnZqjk5WKjZ6MhoKSnH+SkpWHmYh8iomBeXF6a3Vse36Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Mc4+Hg3iGfXZ3f3yFgHyCjIOLk6SPeIOBdImHfYB0doGJhXBifHZ6cX1vYm9jZHxjbm92c3h3c3RhdWBvbHVtb1xcX15fal5QXVljYWhtdHuIa19pZmpjaHeIbmZsaWpsZ4B9e3dukIhzgISEfXSBhol7g316gYR9fY5yeot4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6idioqRhoqei5WYfneumY2XfZ+TkZaUiHd+e4p9e4B2eH+AcHR0fG+GfYGAin98YVt+j5KGf4ODc3qAh3qPkomTkp2TppyVgn2CfI6LkqSJjoqNmJuNhpGYk5aPioiMkpySj4uMboOPj5GInpmioZeWiZaRboeYg2aFmI6TeoiEkIpwlZqUopKSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV8inRuhpCOknF1gHuBgYd7ZHBseH2Zk32DiHOQiYBzh3luf32AhXuFi4iDi5WojHqHe32LhXd+cXCBhoRkaXl1dXB8Yl9wYWt0XnFqe3l5bHNwZXhdbmxzbXJZWl9fYWtaUFdYZWNncXF+h2ZdamlnYmdxjW5kaWdkaWmBend1b46FdIGCg3t1goiFeIV8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGPnYeTnXWBqpWTjoehjJWTkIB0fHaFeHl/cnN7hWtycHptinaAgYducVtYfpGNiH9/f3d1gYGAoIaRi5OdmKGVmHiKgIGNiZyeio+GkpiWhYmVmY+Wi4uMjYyciY2Pg22Ji5CQip2WoZyXlIWYh2qDooJlhZ2KkH6Lg4uBd5OYkZ6RkImJlY1/fo+YfJGNj42akXyKgIJudXBsbW9we4Vpc4OOmIpxd4B1goiCeGZybnWBmY57iIN5k5B5dodzb4h7hYt6ioWCh42bo4d7g3WBi393eW5sgYSCXnN1c3FweFpecWFwa15wan17cW1tamx2YHBvanFtWlhhYWJuWFFUWmZnY3ZvhIJiXWtuZGJma5JuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2ep5aFjYN/l5SDkKB1i6CUkoaLm4yVjot6cnh0gnByhXNxdYhrb212bYh2g36AbW5VUYGrlYeCd393c4J6gqGCk4KVlJmck5p4knuDjZOkmpOOiZWZkoWHl5mMlIuJj4+HnYSPinxzi4WJjoicmp+blZR/k35ohJuGZ4Wgh5GDkYKJcYORl4+bjo+MjI+NeHuSkHqOi4ySlox8iHyAa3ZqbmtsbHt/YXp+jpaCdnqAeIOMfHlnc2xzh5WKfoeFepOOcXmDb3aMeomLeYh9gYuPnp2EfHp2gYt9d3BqbIKDemF5cW5tcnRWXnBicmFgbG56cWhwZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xpcmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoB4iINzhoV+jY2EfHmVeGZyaoNgiH1vb2t6YGpudH91X3R9eYZ4dHOFfHigj5mwnKWOgop/g5qHgIyef4ualI+FiJiOjo+Ed3R2c4Bwb4V0cHKEcGtqd26Dbn19bXVzUk2C38iS1pN8cHWDdoSgg5R3lZKZnJGZe5RzhZCfoZOTkYmSm5SGfpaWiI2NiJKNiJx/joB3eox+iYyKnJudm5WTeYx1ZoeQhmuHooSRiJeChWOMkZmOlYqXi42Ki3F6lIh7jYiKk5GJeYV8fmx7ZXJva2t6eVuAeZCOgHp9fn+Gjnp6aHJqc4qOiYGFhHyUimt9fm5/i36LhnyDeYCOlJqainx1d4OQeHJtZ3GAhW5rdXBoanVuU19wZXBaYGxyeGdra2JmeHJwcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVlj2NhZmJYaXNzbWpxdox9dHmGgXV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2e3uNdnJ3ind5n4ubrpugkIKFd4iVfn2KnYeGoJGPhYyYhJOOh4F0d3B5cW6Eb21vf3NlZXlxfW15fWpoa2OkmsHcru+hc2x2hHaFo4aSb5eRlqGWnIGScoWLo5eJjpWKkJ2Wg4GVkIWJkICRiomWfod6dX+JeIeEjpybmJmOj3aJdW2FiIp8iaKDkImchIVei5OXio6JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWpueXNXiHqSh4V5foCAhYx+eGVyaX+JjomBgn6LloRrgXVth5CBj4R9gXh+kJWTmJB0cneHjHVzcWd2eoRjdW5xYmp3aFJhcWdrVl9vdHphcmRfaH1wcm1aY3JhYlZuWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfH6Ie3SLiYeWhox/fpdzaHVxeW2Lem50cIBXcXp2eXFleHmHjGl2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjYCaiIR7c3dwc2pwgWxqbXx1X2F4d3txdXtnYGR869q1ycPciHNsdIF2i5uJjmqZkJCelpSBiXGFiaCOhYuVioyYlHyOk4iDiZB7kIuFj4F/dniDhHKIgpOcl5SXhox1hn1ug4GIhpihgpOLnoOJYYOUj4aJhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpdHdrWox8koOFfX+DgISKgnVhc2uIgI+KgX5+kZB8bYFreIWOhZGCe4B8fpGSkJaIbnB5jIZ1a3Fsc3mCYHVqb11rd2BSZXJoZlNgcHZ0YXBgXWiDcXNqV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YWRfXVlrbmZvaXN4in5zc4F+enZ6iHOFg3x/h3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3l3koJkdoaFcYqWhZmhmqKKh3Nvk4tyd46cfouaiYl8n3+Emn+BeHJzbm9kcn9pZm14eFxfeXt7cXGAamFnYX/Vto6QpnhucXd8cZORjYdrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6TlIGIdIOFdYJ/iZGcnYWUjp9+iGF/k4eEiISJjX+Ag2d9kYB+f4KMjpB+bYJ8gnRrbXd1dHd2a2ONgY9/hX58hH+EiH5vXnFwhHuOi4F7fpCHeXCDZnmCioaLgnqDfX+Tjo+ShG5ueYt+dW1ubGx7fmNpbGpZbndaUmpzaWJRY3N4bGJlXlpqg25zYVtnX2RsX25VW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/fH10eIZ4hYJ8gId1eYmBkpZ8iYZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOan5ughoh2dpV+bXaUl36IkYSKjpp9jJp2fXZxb2xqYXV8Z2JqdXpaYHh8em1xf2VkaGdXnY9ecXOWvMSEdnGUipB/c5iMh5yUjYh0a4iPlYB7lIyBhJuMfIuGfXyJjH+TiHWJhXZ2fYFxdYaBnpWGlY+CgnF/h3ODeoiWm5aGk42cgIhlfZKCf4WDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN3c2xqjYWKgYp/eYKAhIN/al1wd3p8i4iFe4COf31ygGh4goaKhYJ3gnuAl4yPjH1ta3qJfHZ0b2lofXdlXXFjWHB0U1Rvc2hiTmh0eGZhXl1Yb4Bvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjcHZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIcnl5f46Qb298gXFpgXl6fm1tfHaWa2p4hHRrlI2Fn5igmoWIbn2Mdmp4mI9/goqClZiKeo+Wb3pzcWxqZGB0e2lgZnJ7W2FzfXpncHphZWWOsbJ3SmJapNnQl3J7koyReX+WjIWako2Gb2yGkpF6eZOHgYSZinyHf3h4iYqElYBviodxdH17anmGg6WRhJONg35ufoJ1gneFmZiTipKPlIWHb3qSg32Dg4mDb4J4aICFeHJ/f4OKh3xlfX6EdWNwc4BoeXFvdZiNhYKKe3Z4gIR5gWpab3xyf4eDiH2FiHqIcoBtcIOGjYODcYN4gJiMjYR3bW19g392emVoan5yYVp4W1lybk5YcnNmYEttd3ViXltbWXV9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxW1tZa2VZY3F5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXuAgX+Cf3aBhYmXinGCjXF7hn16eoSUjHVqen9sb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfoCFgpmKgXyNjWl4cmtsZl9hb3ltX2JveV1kbIN6YXF2X2Vl1eu+izI6PouOgHJ5homPjXeFmI1/k46Nf25shY2MdX2Pf4WClYl8g3hudoeFg5d3boiEbHV7dWZ5goOojIOPjIN9bX90doF4hJuPi4+RkoyLhn57kod4gISNg2yAc2l/fnhtfHuBioN4YXmEgXFkcWl+bXRxdIGbi4B/hH5zdX2Ac4BuWmt9dHiJgop7hn98iHh5cGuHgo6CiXGBeH+Wiop+dG1qdoCAdXVcaWl4cVlXfVNacmVMW3NyZVtKcXhwXltbWVx1f3VoWWJbZ2VuYmlNV2ZRPV5mXV12Zl90cFtZVW9kWmVxeVpoXmBnbWdpbGhweH6ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Be3uIk4mAaXt+a3R8coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb2BhbHRhaHCJemFzdF5jZJugkG5cNVmvtXVqgIp+k4Z3h5iHdY+MindwbIWDh3R5iXiJfZOIen9zZ3aIfn2Yb3CGfWh3eW5leoiEpYeBh42Kfm5+dn5/e4qYhoGTkJeIi4SJfI+IcXt9hXxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIF+b3d5e3R9bFdtfXVzioGGd4d1gYl6d3JtiH+Of4Nyfnx9koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N5a1hZWVpgcYF1YF1dYWdkaGhmTlpoTkFhZFxgdmJcdW1YWFN0YVpkbnJXal5iaGtnbWxpcHd8k2xphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e254eXeKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHJwY2ZeWWdfcHBgYWhwZmpvinVhdG9bYWRpdnt/vpymo8i4coWEc5N9eYiUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cWN3hnmAk2lyhHVmd3ZjanyDiJ6CgH+Ojn1yfnODd36Qj4J3lY2Uj4eCiHqJiWt4eX51aHppbH95c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp9fXF7dntzfWFVdXtxc4mDgnyCcIaKd3dvb4KBi318eH18dY2FgnZocWhsiIJycF1oY3RvS2V2TF5vVVRZc21iUU90eWJTWFhcYXCCdFtgXGhlZGNqZFBbcUlEZGJcY3FfXHdoVVdWd15cZW5oVmxeYWpnZW9vaHB3epNuaYiLeX5ze355goGCfHZ9g4iGg3B2g3Ntd4ODfomLlH9xgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaQgGdwbl9kXFhlWW1zYWFhcWxsaIluYHNpWV5kbYB3qdqqx4aHs3KKeXCOdn2IkIF6lIqAdXR1fneAcHF+bYV0lIV4dGxgeoF5iI5mcYNvZ3VuW219gZCTgIF5kpJ9eHtthnR/kIuDcpWKkI6HhYV7f4VtdXZ/bmh3Zm18dm1qd3Z/f3xgYniGemh1dWN+e2d0ho6MlXt0gHVxgHp8bH5ZVnJ8b3SDhn9/eGuIhnN4anR/goJ8eXx3e3KKgHxzZ3RkbYuEbXRba2B2Zkhub0xbY1hXVnhtYlBTdXdZUVZYXWByhG9cYGNtZGNdbmJUXXJHQ2ZfXmZpXVp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniPdGuOjXV/dnh9d4GDgXt0fYOIiINvcYB1cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVVqdGRgW2hvcGeHcmFxZlddY2t/fMrOh7mia25ui21yhXJ+hYt/e5KFenl0eXV1e2ptdWOEdpKBdm9nX3yBeYuJZXGBampxY1hte4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmNueHJqbHF3fXx6XWV5gHdpdXlmgnZndIeMjZR8codqbn6AeG17XFhwfWxzf4p8gW5uiX9wdmZ2foB+gHV7cXpzhnt5cWVyYG2MgmxzWGtfeF1Jb2xNV1ZfVFV8a2FPVHZzUVJUVl1idIVoXGBramZiWW5hWGNwR0FoXWBmX1xWe15PVmVwWltqaF1XZ2BfcmZqaHJocXN3h3hulYp0f3t3fnmDh4B1c3+GhY6CcHB7eHd1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXNia2RXW2Bpf3i+rnuft21idIdpdHxyeoSHe36NgHh4c3dve3dlam5gh3WOgHJpYl9+eHmKg2ZwfWhqa1tXb3iKo4GFf3GZk3GAeHSBbX+BkIdyk4eMh4OIhX15dHJvaHlham1hbXZrZ2tsend6d1tnfXx4ZXN+boR0ZXWGjYaVfnCLZmt6gnRsdGJbbXpqdHuLeoFmdIZ9bXBndH53fH5xe2t5e4F5d3BlbGFsiX5tblZrYHhWS2tsT1JPaU5ZfWdiTlV2bE1RVFVeZnaDZl1hcGhnYVdpXVxsaUpFa1piZFZYVXlaTldualldbGVcWWVjXnRmbGRyZ3NwdIF4cJmFdoB/eH98hYd9dXOCh4CVgm5zeXt7c3KFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3eanZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbU2VwZV9YY3N1aXVwZGViV1xcaIBwb3KAc4llZXl/anR2dHSEhXiChHp3dHVua3pwYWdrZ4Z0jYNtZl5ffG97iX1obXdmaWRWV3Jwjad8hHx2lpBzfHJ7eW16epCEdpZ7h4aChoN9dXBybWd1XW1pX2x1ZGdmaXpve3JZZ4F2dWdwgHiCdmJ3hYt8lIBui2pteoBwZXJlYGt4ZnJ2iXp9YXWDdmlrcXR6b3h4cnxlfX5+eHZuY2VhbIZ8bWtWamJyVExpa1BMTnBIXntmYU5VdWVLT1NXYGt3fmVdZ3NpZV9WY1dicF1LS2tYZGFVVFVzV01ZdmVaX2tgXFpjZV93Z21icGl0b3F+dXSZgXiAgHiAfoaEen12goN+mIVucnR8enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gHZ7o6WKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGF0e2pobWhgYldfW2mAaWtvgGdsYWl6eWp0dXRvhoJ7gX12dW56aGp5al9lbmmBd5CEaGZYYndpfod6b2lvZ2ZdVVhvaI+ndoF6fJCOeHVufW1xdHiOfneUdIWCf4WIdmpydmdob1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdid4SEeI+Fc4hxcHl/cWJwaFtud2Rwc4d7eGFygHBnaXhzcWt3dnN1YoJ6fnd1cGNjY218fWtrVWliZ1RMbWlQR1JsRWF4ZmJNVHNeSk1VWWVseHtmX21xamNcVl9Vb29XSlNoWGdeWE1VbFRLXHpfW19rXV1bYmVgemhsYW9vdW5vd3V6l313gIF5gICHhnp5eoN9gZOEcXR0f3p2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ5doGAgnRuh299gHSKgGpvbmRkWF9aWlpVYmpnXFpfdYJpXm1sXGFWXFxrgWVydH1pal1sd3ZodXdybod8fn56dnNsemdpd2ddZHNoeneSgWNjVGRvZ4KEd3ZmaGphV1ZZaGSQp25+eICLjnpwb3tmeG55inp2jnGDfX5/hm5kdnNkaGhdbGJecG9bZ15tdWV6aV10gG9ya3F7fnV2Y3WFinuHh4B/d3J1fnNgcGxZcHJicXGEe3VkcoBsYGx6b2poend0cGSDdHl5dXFkYWRtc35qbFRpXl9VTHRjUUdXYkdjd2ZhTFRxWUtMWFhnbHZ6ZWVtcWZjWlhdWHZmVEpcY1hpWFhIV2VRSWN5W11gbFteXGJkXoBpal9vdHhub252g5d5coGAfYCJjIZ+dnaGeIaMfXR1dYJ5enqCjI59foSJanSWgXuKnX1+hXmAe358hohzcY+ujHt7hpB+ZnGIenR9fXZyb4Zte35tj3picG9iZV1lVlpZV2Nma2BdXXOGaVhwbVteWFpcbHtjcXd2bWNbbnR0aHV2cW2FeX+BeXdub3RlaHRlW2d1ZnZ2knpgXVNlZmqCgXN9YWNpXFVYXmJkkKVoeXSChZB4bG54Zndse4N5dIhygHh7eH9oZXZtYGZhX2pgXnVrWWVdb25iemZbeHxrbm5wd3l0dWVyg5J/h4OIenZvcXxxYXdjWm5vYXBxgXtzZXGAZF5tdmljZnh6c2ttgHRzfHJxYl5lbW99ZWlUaFlaVU55YFJLWllIYnVkYUpVblRKTFpWaWxye2NsbHNjYVlaW2F3XFRLY11ZalNWR1lhTkhqdlhfYm1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCCkoiEgXZ1iXSLhnRxdnaCeHx9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZont7gImVeWR1iHlzeXZrc3B/bHl8cJFyXnBvYWdibFRbWldpZG1mXFxyiWZScm1bWVhYYGx2ZGp1ampfW210cm10dHRrhn1/gHx3b25sZGlwY1trcmR0do5zXFdTZGBxf35xglxhY15TWmFcZJOfZXJxhIOQc2tqeGxub3l5enGAdn9yeXp6ZGZ1Z15iW2FoXF53aVdiXnBoYXhhW3t2ampyb3d0c3RpcIGUg4Z+hHZyanB7bGV2V1tqbWJwcoB6c2Vvfltgb3FiXmlvfWxqcn1xcHdrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmFHVmxRSVBaVmtsa3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9JcnVZYGRtY1hhYGFejGpjZG15eGtvaXV5hXtrhH2AhZl9goR5fYhtj4Zxb3d6fHSCgn2Lj4OClnR4gpOGgZ+JdYF/gXR/gnCHgnVvopdze4aLh3tmd4tvbnxwZnhxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9tXFZYVWdpdGhjdGVlXVpvdm9xdXV6bIh9gH2Id5BzY2Rrb2Fdbm1kc3iIa1pUVmJjd3x8cIVcY19jVFpgWmOWlWNucIOEiXJqZ3luZXJ1cXpreXN1bnp+dV9mc2NbXldiZFlhdWZWX2FtY2FxXV1+b2hpc3FzcHV1a2yEk4GJe4VxcmZue29wblJaZWplcXOAdnNibHZVYnFrW15uZHxla3R8cXJyam1gWWNpanheZlRlVVZQVW9YUVdUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnh3W2BmbGlaYmBeXo9uYmZreXVubml2dn5+bYSAfoaXe3+HgYl+a5OIcmd0gHp1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd5c3ltbXF2g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbGBVVlNvZnNsZXhkZV1acXVuc3t4c26Je4F3nHt6bGJlbG1eYG9qZXF5f2daVlhfbHh7e2+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybW57gHJYam5eWV1WYmRYZXFkVF9iaWJibVpgfmtma3N1bm13dmtohYx/iXqHbXFmb3tscWxiWF9oaG9zgHNzXmltU2VwZFVibmF5Ym90enRqb2xqX1hgZmh1XWVWYlZTT1lnU09dT09IZW9dY0daak5KX0tYbWVfeGhufmRgVV5UXXRbVFNgZk5dYlVTSlxaUVl1dl1fZm1oWGJhW16OcWNnandxc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmZ6goKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJuboqSkpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6Pj4+Pj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkYuQi4qQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjYyMjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhoyFioqGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjIaIh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiNjYmEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIyHhYiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+MjoqKjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj4+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4mJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSkpOTkpKSkpKUkpGUk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkZGSk5SDhZSSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSjoOSkZGTjXWJk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGOb3+SkZF8dImRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5B4aoSRinN2iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj3tncY6EcnWHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOeVxodXBkb4iOjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKioZkaWtcZ2prg4WDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3bmN1bFtqdW5laGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGdgZ29vZmxydGpiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWVxiZ2pyb3FzbVpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUl9jZW1ubmpoUlFUUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTU1VY2tnbG1tZ2VZUU9PUFFPTk5PTk9QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRUVLUl5obWdsbWxqamZiXFVQT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRkZTW11hZmpuam9ta2pra2pqZlpLSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs/QENTXmNtbGxud3JqaWtoX1RNRkVFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8O0dLQk5ibXB6c2tqYEtGQkVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz08Oj5NYHRwY05DP0BAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk7OjY4V2ZBODg7PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTw8PDpEWTk8PD09Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XW5APkRFPz9BPEZdPT49Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0k4Ozo9PUE8S2I9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnZ3Tjc4ODo7Pj5XaUE7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+RWl0TTo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDg4OAfV0+QENAQD1JcntaOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/Plh7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hISElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p8fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEim1BQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshYeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSUpJSEZKSkpKSUpJSkpKRklMTEtKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKjIyLiomKi4yJVDo4NjY2NzY2NjQ1NzczNTY4Ojg3NjU2NTY3Njc3ODo2Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmKiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg3ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiYqKi4qJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD49PT5APz4/QD9APT0/Qj9AQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQkBCQ0I/QERIRUNFQ0VFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUxPSUlLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5MSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMi4uKjXJOUlBOTU1MTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l6eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19SUlBNTk1LSkdFQkdKR0xLRktOS0tKSkxNTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGRklGRUVCQUJCXG9yd3h5enp5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUU09MS0pERUZLT05PV1VRUE9RU1NNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1JUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMiouMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dV11aVUVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLeW5wWFpcW1JTUlZWVFtadYNZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aS1RaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSU1VjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JRUU5LUlRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk9GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSkpQUU5LTFFSUVRWVFdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTkhHQEE8OTc3Njk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUxUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1hYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUducXR3eHl7e31+fX18e318fn5+en1+fH1/f359fn5+f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt6e318fHt5fHp6fn58e3V0dnJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TTk9QTExPTUtNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwdHd7ent7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1OTldLS01LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQkFERUdLRkNISUdHSENDP0I/P0BBPkRFREtNUlRMSklNVEdJSUpMSktMSUpMTU9QUVBLR0NLR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0hGSUxKRElJRkdHQ0M7QUBCPkBAQkVESU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3h8en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkFDQD5CQ0VFSUVJSkxGSUlHRkZDQjtBQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUhFTklCRk1MTkxPTU5OTUtISElPUlFTTlJmZmZxb3N4dXt5fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPUVFQj5CQ0NDREdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT09OSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVIQ0JBQkQ9Q0I+QD05Oj0/Oj0+QEI+QEJER0pGSUZJSEZGR0VDQ0FBRkZDQkNCREVFR0dJRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVFOT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxCQUFDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSklLTUtPU05EUVJQUVFOUE1OUE1MTVNXVlhYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZFPEBDQkQ8Nzo+PTo+OkBCPj8/Q0VGREZERUhGREVEREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBfaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRTw4Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSkZKSEhLSEZGTElISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRElJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmRoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RHSUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRUNJSkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUpFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11mZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRublxvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQUJAPkNGR0JGQ0ZFRUVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5MTU5HTE5JTEtJSk1JSklKS09QT05NS05OTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVEQ0FCPUJBQkZER0ZMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTUhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0RISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tLSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbWhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xMTExKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSUxKSEZHR0lHSElFRktJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEQ0JFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0tJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm53hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0VGSUpOS05MSExOR0hFPkdHTElLS0pMS0lHRUlEQ0RFQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRkpHSEdIS0lMRERLSk1NTExISkpISkY/R0ZOS0tLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtKTE5KTElLSkhJRkJISVFNS0tPTUtLSUhHRUQ/RUNISEJCR0dFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVV5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU5ZYlxgYF9iY2JdYWJXX19UUE5PT1dRXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJS0tOTExMTUtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQkVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVFNbWVhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZkRU1bSV5bcm1PTVVtWUxDUWBVa1dnSl1YVV5ETVFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqU1dWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0dKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMR0lMRVFWTEtOSUtSWFdRTU9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfnlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISktHSlBPTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1BUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fmx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15d3JuTktTdE5DQkZQUEhKS0pMUU9PT01QWmBaV0tUV1BhXlJWUVlSTE9JU1RWWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJtbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNS0xRUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZHxpcnxeVExsYHZ1a2l1fHttfnhrfHBdXl9iW15iZGRnZWVlYlpjY2lra3JzcndnbGloZGdhYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUhIUVBMTk9NTVNSUk9TUldSVlRQV1tWVlRUVGFfUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVBOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXVlXXldUUFlSVldXV1hfW2dyXltbWV1dX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFSU1JJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JYVlRZVlRaVVRSVVNUVVdYV11aXmFdW1paXFxgY1tdYmNkZmRkZGFZYGFjYWJoaGltY2FkXl9jXVpkXGJtYV5mZWdtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQS09XU1BOVVBOUU5LU1BMT1VTTlJOTU5RVFFVUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJXVlVXW1laX11VWF5cXl1bXWFhXltiYmNnZmRkYlhfYGJeYGhlZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWT1hSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRXVlZWWVRYWFVSUllXVlpdWV1fXlZeXV5gXFtfX19fWmJiZGhnZGRiWWJgYV5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFtaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlJNTlJPUVJPTFBTUlVaVVNQUExQWFdSV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpZWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxeVlxeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWVpXVU9RTlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYVtjYl1hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVZV1BOUlpTUlFTUlRVVEtSVlZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVUV15ZXV1gXWJiXllfW2VhX2RkXl5jY2FeZWZpZGZeXmRhYGBhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1hZW15WXlldUE9PUlpQWlRVVlZTVFReXmBfXmJcYFVdXmJreXRsfWtaVVlVUVBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1FXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVVNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF5jYmJlZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX2BhYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjX19WW2BkYV96dW9oWVxaVVhUV1taWVxZWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWV5eWV5WU1lXWVldYlpeVldbXFtcW1taW1lZX19gYGRiY2RlYmRZYmZjZmZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWFBXVldXV1ZTVVRYXFxeYGBdYF1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFtdWFtgYV5gZGNkZWVmYlhjZWRoZ2ReY2BfZWNdZWlkZWlfZl5jYmNhYWBfX1tYWVpZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dYFpaXl1eXmFcW1taXF9iXmJkY2VmZWZiWmRmZmlnY19jXmFmZVppaWNmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hWVVtdXV1gYGJieEtYV1xZV1xbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGlpYmhqZWRgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYWBeW2BhYmViX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx9fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/QDAqKysrKiVikoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzM0IRobGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enl7eG5vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV0c3Nzc3NzeX19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2d3p4e3p5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHx9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXp9ent9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en18fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6ent9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3l8fXx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh5eHp7eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3RycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JwcXNwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNxdHNycW+GhG5wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxeINxcnJwd51/bnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXF2oYhwcnCPoX1vcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcm+Vqn9wd6ChfW9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycI+xnnCBpaF9cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjLaqkZuypnpxcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3Wgp6OzqKaleHRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4d3h4gqifo7Gjm6SPenl6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx7fHyPo5GTpZygoZZ7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fY6gmJaZnJaQmYJ/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGAj7GqpZ+hn6Ghg36BgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CBgIOkrqGnoaCgqKyehX59foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gIWPp7GknKehoKCio6upnIyCgIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoaLm6mqo52aop2foaCen6KloZWGgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpGPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OChIeQmJiWl5mcjJSfnZucmpSMiISDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgYGEho6Wl5WHj5qclo6Jh4aHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYKBgYiSl46UmpOGh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCgoKHkpaKhISDg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgoGIkYKDg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgIiRgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AjJaCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCSmoaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9i5yNgIKBgYKChpSTjIGCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4uAg4GBgYCPk4yQgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhYOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWCf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGh4aHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIeHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGg4KCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHiIiIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoaGhYOJlJOQj5COioaEhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaHh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4aJiYODhIOFhISFhYeIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn18fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/gH9+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+AgH9/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH6BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gICAf4B/gYB+f3+Afn9/fn+Af31+fX17fIaTkoyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoGCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOPiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhISEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SCgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fHx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yLjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fICBgH2Gj4F9fYJ+f36Agnx8gH+CgIKAfn17ioJ9gH9+gYCAgYKAgoCAgIGAf4uUkIyMjo6NiIiHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6BlJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Nj46Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fYuEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx6e3p9f4CAhIOCf35/fHx8fXx9gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17fH19fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fXx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiIuJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx/gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH17fXx9fX58fn19fX18e3t7fHt7fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+f357foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3t7e3l6eXh5e35/g4OEh4mKh4mOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoWFhIKCgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBgoKBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bf3+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiGhoWEhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhISEgYGAgH6AgoB+fn6Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhISDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn1+fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1/fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX9/g4J/f4B/gX+Af3x6e3p8e3yCgH+Cf3+AgIKCgYF/f3+CgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gYODg4B/f4GBgIKBgYGAgICAgICAgIGAgIKDgYF/gISAfYGDhICAgX+BgYKAfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3x8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gIB/gYKAgH9+gIF+f4CCgYCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAgICAgHx/f4B+f4GAf39+gX9+f39/fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH+Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoGEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+f4B/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKBgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+f4CAf359foB+fn+Af39/gH9/gIGBf4CBgH+BgIGBg4KBgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh1eHh5e3x8fXx7fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KCgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAgICBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYGBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXt9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoOCgoSBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4GCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhIOEhYSFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKCgICChIODgoGCgoGDgoKDg4SDg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX58eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODg4SEhIOEhIOEg4WEg4ODgoKAfICBf3x8fXp6fH2AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIKBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OFg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5+fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDhIOFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f3+EhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg36Dg32BfX5/fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFgoaGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoaEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW19dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODg4SFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhn13hYSEhIOCgX1/fnt8e357fHx9f359fX9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGh4WFhYWGhoeIhoSGhYeGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhYWEhoaGhISFhoOFhIKEg4OFg4OBfYB/fHt8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoSFhoaEhIOEhIOEhoSFhYWGhYOGhoWGhYSGh4WFhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59e3x+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaHhYSDhISDhIeDhIGChIWDgYCAgHt7fn58fHx+fXx8fH19fH18fn18fX19fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31+fnx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhYeHhYOFhYOBgoKBg4WCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaCgYJ/eoSMe4CEhYeGhoaFhIeIh4eHhYWHioeDh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWIg4SFhIeGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGiIWFhIKFhYaFhoaHhIWGhoaFhoKDg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/e4B9fX+Cfn+Bfn6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SDhYKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhIaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ+fX5/fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19jX19fX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enpq65uLi4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKSpaOjo6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFlaakpKSkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NjJqqqampqampqampqamrnmJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q0dLS0tLS0tLS0tLS0tHNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0dTPz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz8/SuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PUwJSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqu1qKgi5HDk31+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeasc+Yh5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbPImZCfoNLTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZm0vqmvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZtb+emq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrXGlqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpZmz0Zqcm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qOasNmlq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPVzJOQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cLU0tTLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPTc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0JHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29zc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm4uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5uLi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW0tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6imoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Sam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXk5KUmZqcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop6cn6GgmJChrJeXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWlpqelpaOgoKGhn5mZmpaYm5qenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWkpqWlpKSjoqKhnZycomqJm5yam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGipbapo6SkoqGhnpqZpYFWjpuampienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKeqsKigoaCenJuanaJZXZSam5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCmooCrpZ+enZqZmad/VWaVnJ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6CgoKCgn6p3dq2inpyampyka2FplZyfnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ6fnp2ojGmMq5ybm5ygl25pa5adnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJuao5F5dZ+cmpydoIhraWuSn5ydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmamqOUeHyFmJqcnpl9amdskp+cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5mZmZqgnIuegH6YoJyFjYFmbZSgnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmanKehkXFlpqyhaIGNeWuXn56fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmKGtkndlZqaXmlhnfX94nZ6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZenpXhOSnCbhIRSRGF4gp2bm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXq5lONzx0kn1wUz82YXqOko2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQlq1zVHBXfLCpmVpnbkhrfYiCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDfpakXIWbfMrFscWdfp16UHiCgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6SkXLP183Vppy5vGtdcl1ngIWOjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqEf4J8mXea0b3H08fBtJx3pahjYoqKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Li4iSjJtvoqaVuayioYmFdmHIi1qIiomQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp6co6CdhJN8j6WNhYt3dXBsppdhgY+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmsqqqvp5Z+WHKGeXmAbWtpdXh/eHqgoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqainq6mFcFJgdHFyemlmYmlrcHyFoqmnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKaio7CYcGlPVnh2dHxoYWRmX19ufYqgpKCgn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgo6eipq2nsLKpfGljSVJzdXiBaGBjalpbYmt1g5GdoaCdoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqaKgoaiprbW6vL2sim1nYUJabnB9fm5hX2ZbWWFhaHB4f42aoKGimZaem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6uqp665wcbMxbeljnJoaVo/U3BvcWx0aGFhWlhfY2FianF2e4yfp52eoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCqtL/O2dvOuquciG9gYWJTQ0p5a2BibWxbW1daWV1bWl5jZmZod4+lr6elmaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWl2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbzO2t3UwKSKdmVdWVpcU0pDbWqUnpRWVFhXXVxdXVhVV1tpfpWqwce6tqGnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vcDGztHNt5J1ZFtZWldTSVVvqrOmTlVeYWJfX19md5Cnur7BxcW0trapr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcbBvrzMxLCRb1xVWFNQU6G1m05ZW11dYG2OqrrBtbmpp7G1q7WyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QkJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbGSv7/OzryVaVhXWkyZuZNMVFlXYH+mvLCmq6yypqqpqautrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG96amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm1wLezvMHGvql5WFVRireGTFNVXYSgprevpa20tK2upaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodlpncnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+uL3Bw7/HvZZsUlppWlFSZJSrn6a0sq2suLWyrKmjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8TExsnOypxWSE9Qa627t8C9vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXDxcTJy9HTpFJMYLDHwMnNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlmdW90Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8HCxsbGyM6KSZPOzMfM0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRia21ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vcHAwMDFqk6k0czFydHBr729uLm7u763tLG5vrO8vrG5tbi7try0tbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv729uLzAxK9TnMzEwMHJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y68vrvDtbrHt7a5u7y4ubW6xMmqVJPIv7+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1mZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8V5rcu9x7e5uK22tLe5s7Wyu8XKn1WLyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNevdoS+yM/CwLiutbW7vbe5sb7Dx5Rchs7Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam50b3hjZ2JcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRm3R3sdHRzMrEtbq/xMi+vrS+v7+FanrLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgnRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwoh2d6jMzMvNysbCw8vOwby4vLmvgnxtvMjEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFteX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qs28O+tr7Avr66ppyqs7fDwKZ8enyfxMbLyMHDwMDJysG/u7mxo5iKfrDIxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF5cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W2ba7Ovba5wLyqfW5obm10gpeZdXt/nL6/xsC5wLy+xcS9vbixr6esl5edysPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdntxbmlcYGBZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsXaCs722tcGkhmlaXmBOU1tccHZ6haS4t8K6s7u3u72/uru7r6KssqKogr7Fw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3FhX2ZdW1VKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEeIuhr7WcamZnVllfSUlNUFRve4upsLe+ubK1sry5vLa5vrWWr8CwtXisysPAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdXd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aoh3t2jKGYX1NDWVVIYmpVT0VKZZGlr6+2urW0sqy8ubi1uMG9jafCsrJ2p8rCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT5KQkBLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCBeYiQbk5LP2VZQk94gZNoTUNehbG1s7WytK+su7q4trm/xXiOuKmfZqu/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1VdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiFfFhGQU+HWEpKWXiOg2NBVaO5s7SysLGtsLm4tru3u7ySpLOupHSssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0b2VVYWRXXVFPTUhASVJETUM9ODg3NTo3PD45Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlWhNP1N4cVBJSUtonYBaRVWwurGss6+urK22trK0ta6pp56Zm56fpqieoKipn6GnlpuWl46dlI+Qlo2Xm6SooKCioqKlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlVUE9HUE1MQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpbxnRFObfVFYSUthSlaNYmVlg6+1qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTkpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8qfT0F0mHFQbkpMY2Z1dGBdYnSSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNWYUhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylxsaMV1NKZqRZZn1vcltSa2NcZ2JgbZG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXJ3dXBjd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2and1Xm1bUmFJUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKR/b4JwYGNYTFtSWkxMUVlSSE9OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0+QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/tru7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUZEO0M+Rjw+OTZOfqqzp6OjoqCepaumnpiclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDysrDwce/urS6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtjaW94a2VZW0ZLTEVEVE1FQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVl8b2FBPVyOrqygmZubnp6Zl5eXko2Pl5eTjo2QjIKDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzMzHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxsK8w8G/v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0qGnqSYg6CyraOenJ+amJeUkpSWkZCPjIeEg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B7cnV2Z2NndmpkVldRRE5GQElRQz5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NSsNG9sq+mnJycoKShnZqUk5WUiX14cWtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cTQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAycjKxMzMzM/PxcfItsDLwNLNzNDHysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJiXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NXX19fT19DV1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR2NLX2dTVzM/Pys3Sy8/RwMbDyMbPztHR0sjMzcDLzcbTz8zPyMXLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J3d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/N09bS0dbNz9XV0cXR1MrQ1NXWztPR2NfX2MvIzsTJz8zKzcDKwMnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycrLz8vOzdDO08zGydDNycfLxcfBxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5j5qNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7Fw8fAx83IxMzLzM/IxMTQycbCxsjEv8HHzMvMz8LLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn5og4Wkq5ONjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybzJx8XKwL7Cy8bFxL7GvbzBw8XMxca8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWlxYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2tjZz8vSzc3OyMG1w76xr7ZsXnp9oZGKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u6xsO/vMHOw8a+vrXBvcO7vce7w7q0vcbEwsK3v7a2vr+7zMO9trrIu7++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvZFZeWUpGSkZIS0FGQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDF1dTV183KzsXJxcfBucW9q66mYGR1g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra7v7TFt7u1q7m9vsC9sbq2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxNDN0s/NxcfBxsC/urfJtqqwmVtncIqPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmptbnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMi5w7atqqiwssC2uL2wsaexs7W7vKuutaautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzdnZraWBibGlZWFdbQUxLTUpFQUM/RkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJJban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWVpcZW5vaGZoaWtucoGturC1rqWkp6eaoKSgmpylq66kqKKrqqyrsKSmn6qttLaxvbmvt7Corri0s7y4tLyvuLm1srzBssGupaijq7Gys6i9qquoq6yutbOlqK6hpK+psqaoqK6mqLessbK3urq7sry+vr7Ev7XCwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9kV1dYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2kmpeRoaOpo6Ofpaanpq2gnZykpq2ysLa3p7GtqKq0q7S6sba2rra5srC6urG3paCkn6axqKypuqqkp6eop7KtoKemn5ukpqyfn6ekoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSghHhxbGJmYGtvYFVZX0hOZ09USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPFuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYV5cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflpWaoZabopiVjJ6hoqecoJ+kpaKnnpujnKCrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqrmtoqamoKitq5mgn56ZnZ+lmpqjnJyer6mrqKqsra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr3AvsPCu7q9l4R7c2tfZV5kZFhUV11JV1xLUEdKSkdBPD8/QDs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2nnJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqGjn5ujoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnp2dnK2hq6ijpKatq7KzqrWwsquyubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSGenVmX2ZeW1lWU1pVS1tRTEpFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5sr+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuTk4+TlpaelpiTl6CdoZyWoaGppJ+fqZ2cm6unr7CrnKOkuKqhoK6otqqnqK2xpLiwpLego5yZmaqnoZutubCjoaScoqCgk5ShlJaWm5iYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6iosq6ytbC8tLq4rqOVgnp3ZV9hVllYU1JTS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYGVkpSLkZOTmpiclZacn5yflqCgp6akp6ignaCmoKqvpp+io7eooaGiqLOipailsKaxray1nqGdlpWpoqKUrbKxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6usraaorq+vq6iqqrOmpquvtLGvvLaxr6+gknt4c2VhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2RpgJKSiI+Nk5GSnJSVlqSZoJecoKWiraalpaSko52qq6Wan6WxqqChnqWrnqiin66tqamuraKiopWYopuckKupsZygop+fl5iTip6RjZKTlpCYmJScoaOdpKGilaCipaabo6uloqSqo6uupa6yqaalpqa0pqqorbO1tLm6sKqsnoxzcW9gW1dWVVJGUE5IWlxPUkpUS1NMRUdKRDg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2MjYKQhY6QjZiSlJKcmqKcm6GpqauprKeppqSZpa+llZmlr6mgnJmboZ6vmpyrtKCmpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnqKgo52co5WboKOhl6Koo6Ooq6Crr6Sut6ajpKOsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVVPUExRUklOSkM9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NjU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+oqK+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLGtuL+3vL27s7WmqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BlfYqAiX2Kj4iQjJaRl5mioJugq6qmr6yosaWpmqCtoZWWpainnZiQj5qerpeZqKuZoJ2UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaaoqKigsbCmsb2ooKOstKuup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExYTkpMT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxsLG3rbS0u7O0oqOdnZiXlYSAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp+eH50h4yFjoiXiZSTmJuYnqmboKumpqyeqJqhppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5SMjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqCilpSYmZWippmNmaSmqaahoLSyqLO4oZyjt6yqrqSysqa1vLWrrLGjiXlzbl1OUVFMT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlYh8g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnB1b4OHgYd/kIOOipORk52hj5qco6KkmaWXopyVjYiZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY6DlH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+ZprimprGhsK6csLyqqa+qmYN4dGRXTVJPUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62ooqaSnaa2raOgj5WWkpB+eH5mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVVllbXWpqcGt+hHtzTlhyj4KXho2cl4uUkaCZnZWUlpWPloqAlIlfO1ZvfIyUioGMkoyQhoZzi4WXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjX2KgZGNj5eamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqKiel66zoqaumayrmKi0o6mto5N/dG9gXE9TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfnN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1PUlRWWFpgbG5neoFzUEI/f5WSkX2IlYyEio2bjpaVipKIhpWHeYl/YEpRbniLkoR+hI2LhX9/bX9/lHd1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46Rk5eMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpyxqqGkpJGmqZaiqpyipqiJdm5nX11IUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK8p56WjX+KlKiWlYp+joOCfXhxb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4V5e2h2e45wcm14gYuNknh7gHuAdnNyknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlZyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYl1dSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQT03Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyGbG9nc3yJjIeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbWdjW1hYVVFKU1VUT1BOUVZLTktPT0pST0lOUExGRDw8Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmxybHxucnyGaW5wf3ONiYWGe35/e3dwdHSGgnmBeXB8joyKlIOWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHR8amqdj015hZOJhI5nMXaGc2x+fYN0ZmV1f4SEhYBnaWx1a3GAfGhxcXxuk42PfHR+fXFxbnZtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2twaGZYUlpXWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYKChYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgWhnYmpucm1wgnVpb1h1cI6bkndtf3t9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBcXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opp6foaBhJmEm5xhhqqfnYuDkI16d4h+iYmOc4uXj4R7XWVxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEinx8gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGaiIePkpSlja2qSIaur6+LgYCTi4KLgoSSqYeAmJiKnHRtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtcHd+gHR0cmxbXl5cY2NYZ2VcVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9Ojg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6toaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGlocISBdI2HhIpxhYJ3h397doV9bnZ1Zn+UjoaJiIeIh6CropaJjpd/eoKIenlvZ2t4f3t/dGxlXltbXmpeYmdgWk9LTldSUUlQSkROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZfY39nZ211nZuPmpKTi42OmoiTj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomOj5aktambjZSig4eTg31/a2prfYGCg3VjXmRgW2dsXWxsXldLR05SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsomNl598lJ6bjZKVmKOipravnZGZqIeWj42BiGxzc32BfXNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKmPm7CLlaOmt7uboaOwkqKdoZ2Qo6Grr6yytaKUpKqImYmSiZV6en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaIkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hFPD4+RkhDRUE3Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rK+1orGrsbW7t7WutKCnp6KnmqmvrbK5t7inm7aojKSOkZOfhniChHdaY2VXZ2JiZGBhZmBbVUpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY+HgIaIhYmHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLS0FAP0dLRkZEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7m4v7e6t7msrLClsKqtvbC8usLCrJm6qJOtj5eXqol9g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSAjYRuenN4h2K5oZmjiZSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGKg5Z9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYGBMU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC7t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3Cx6+euaqhq46kp7aIgYFzYGNjX1hiYGlnUlhgVlFVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJzc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot+g3+DeHuLg4d8i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEdBSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura5tbi5sre1tK62tplkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1tDJzNLMz87Kxr+/wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mYB7bV5hXVpfYVpjY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CMiXyBhHN7ioOFe4l0gYqHlX9ze3lsbXV7aHJlaWxpZmppaGBmaWlsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6uNtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy8/U1c3Tz83FwsnQv8rJysnRx8zNwtDRt6/DvMS5pba6w6KDcGVeXl5ZYVhaZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4WNioqLkId8hIJwf4iBhnuHcoOSi499cXh1bHF4fnF7bnhzbGiBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SjjrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzcvS09TQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t8+eenBmX2ReWGFTXVpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd3B9fn+hnp6hi4yYk5OMi5OPloR5hZCQjYuKh5GHf4J7cn6AgYd6hHWFk5GIf292cmtzfXt2e3OBd3FqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3h6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8PMjHRwZGFgWVVaVFxQS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiOh49/eIOUmIqNiIiLiX6CeHN7fYOHd396h5GWgINud3BtdX91eH10hXx5bId2dG59doR1eHydtYw7QYvFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvMtHl3cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfZeRnYt+h5KDiYaFiYGHfHiFlpaIjoOHhYZ6hHlxenuEhnV6hY6NnXmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6jIeOk5GblZ+Vh4yTm6CbnqqfoKycoZqYn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSMhnyciZSPrqqUlZifmaavtb2prb7Hy8nJzMvQycPSytTX2NfY19Xb19PZ29XQ2trR1sjUy5V7fWppXFtRVFRfSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pzo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSal5tZGJma3aAiHKRj5qAeoCNfoKCgYN+g3x8hJiOh4t+hoaAd4J5bnt7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4i3xaTBybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkYSJj5aZl5alnJeflp6TkpejnZmrlZCQiYyRgoyFiIiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYqRjLyhmJOXmZ2ppqaun6i2v8DAucfJzc7FzcnR1tXV2dXX29TX2drb19va2tjO3MaHfXtpa2dhVVhWVk5MRE1COz09PDg6PD45PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiYySd3Z6inx+gH5/fIR7foKRiYSFeoSHenV9dW18fYZ+c36SnZGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqI6Pw6G9jJyjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYuQkpWPnZqTlJCWjYyVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNgoWEgaWHi4u4mJ2RlZaiqKGdnp2jr7e6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4ent6bWtnWGJcVFBPSUNMQTw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlhfVlhmbW1taYGOinFzeYp7en98f3uHe3x7i4eBfnWDhXlyenNtgH6EfneFm6GanpSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOioJCkrqCLkYuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKTjJSUlI+Lj4mHlpudj5WWkIqSk4WAi4iSjYqKnZaZoqOHk52WoIqJiI2ckIOIjn+Dh4akhoyQs5idkpWXoaGfmZKcnaiyuaymvcLHzcjGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F/dmloX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+kYNvbXiLeHp/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1+kqajn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4manqOSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3Ilo+Gh4mQko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjo2Bf4iPpYmNk6mal5OXmaGZn5mTnZujs7Smo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoNzgWllYF9fUEtWXEJCRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go59fG1+iHh6fnqBgYJ+dnaAgntsbot/eXx4eHyEh4t+i6OzqKOrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5apma2vpJeVlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoop2YhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmpOPipCLl5qJipaOhn2MmZ+KkJCcmpmTmZiflKCdlZ+bobKuo6W3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYldiWFFJSk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISKentthYZ5fIR4gIWBfXB4fX18b3ONen2Be3iGi4mFhJKou62osr2vpa6zs6ijorCsipq1nqK4pZWspJeprbempKOfmamYqqSvsKmamZyUlZGYoJeZu7utyaBptrirsJWYn6Krkpe9o16psoKJio2Vh5F8j459g4aNj5SUiIeSlouPlY2LjZeZkp2as5aVq56LnJSSjZCSjJibipKej4uJlZ+ijpWOmJqdk5yYnpWioJScnKWvqKKls7irwsjEtbu9u8XIyMLRocbJzc3E1tbQy9OicXxqXlxVYFJRR0Q+PUNBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7O0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqGjo6qvsrGqnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynmrGakaudjpmPko6VkJCWl4+RoJGIlZukrJWWj5ScnpShnpuZoKGUmp6op6ShpLCzpsHGw7Cwu7bFxMO+zafHw8fDvNXQzcTKiXZ1ZF5cYVxPS0NMQEVGPkE/Qjs6ND5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn58gn9xfoF6lXqSlJSYkZOVp7TGycDCzMHDuse7uq+rubuXsra6s8CupcCkqrC7u6quq6Kinqesr7WwqpugqpyinJafsLSni6O6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYoJeTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOflJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxb7DvLPRysjBtXZ7bl5aXWxUTklDTEtKSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAfI1+d4eBgpB6jaGWqJqamLq+yMnKwtLJysLNvMGzrbu+p7q/vrzDt6zBqayzu72qsKmkpaOsrrSttragoK+fpaKYo7S9qZuovMGjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6gko6Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXm6Wjqaiisq2ou8DEr6Wzt8zAua7Ds7u+wbitwsLBwJlwe2NaWF1cTUxNSUdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jCvcnEyMbTzc7Ny7zCt7C6vLS8yrzDwba2u62zv7m8ra+ooKmntq2uqbK3mp6toqehnau3uKmlr77Esb25s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZpmmaOfs6WWo5asraunnJ+nmJmWmZWhpKimnrasqbq8w7WmtLbLwbiqtqyzuriuqLi6vbiDbnBcWlZXT0dLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqJaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73GxcjHzs7O0sq+u7axuru8vs62xL23uLeysrWzuLKrppyrq7irqaiwsJejrqSnpKW0wLCqrLO+wrrAubOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWampWSk5mapqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqurrbGxo6GysrSkcnBnXlxQUk1FUFBQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqK6YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca7w8TIysnIzM7Hvrqzr7m4wMHNtci6wLm1urGvr7K0pqObqrS0q6mmrqyZpK6lpaisur+oq7a2v8HAvrizssKvt72ro660rLiliJuXppt2vqCEmJyOk5mai66WoZybl5WboKGpnqigmpqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuvpaWgpaqTkpmbiJScop6Wsaeqq7q3vbOyrr65tp+jp6ilp5ycrKmpjWVoYmBTTE1HSE5KVkw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uumJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBusPDyMnFws7Iwr25sq+5tMDCyrbGscG8tbqrqK2sr6Oimaq0uqappqyqnaivp6Srqr68qKy8s7e9xry2tbjAsL2/s6m0tqu+pI+il5Gin7yfiZqgmZeenY63n6mcpaObnKGap6WzopudpZyoqp6ZlY+UmouXiY2kopScop+gta+lppOxq5qrrZ+epaSqkZWVoIOQnp+clamloqG0tbq1rai1srOenKKmmpeVmaqhnnhiX2FfTElHSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7CrJuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMG8v7jBw8HIxL/Nxru+ubKwuLO/w8i1v7C8t7m3p6Srq6yhoZurq8Sipaispp6sr6yiqqi/uKasvbC3tse2tLm4vrC+wba0srSvvqOWo5aTm5Stn5ChoqWjo5+QvqWpnaisnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWsppyWsqeZsKigm6ufoY2ZlZ+FjqGam5KlpJqYrLG2saqlqa2snJigoZKOkJWpn5RqZVtiXlBKSUtPTUhGQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTaKao5udxKuhn6ydna2fkqKelqSgp6qsl7awo6qztsXCvcC2wMK8ycK/ysi2uLW1sbS0t8HGt76xuLW6tqCnraqsnZ6fpaTBpaCqrqCkqa2voqanvbalsbu3trXDsrO3ur6xw8C4uK2ztLWinKSVkZOgraCZoZ2pqKuimsOtqZ6srpubnpimoL2hnaSYq6urpqGZjZqfkp6Jjlh/lp6moaC4qqeTmLejn7OioZyvmKCPmZSdgo+gl5aNoqSVkKaus6upoqKlpZWVnZmLj5GTpJ+JY2ZcZWFNSktLT0ZFQUZLPj1KQTk5SkpOXVFRSj1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcTE+en6GYnsOnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HDs8LEvsfEvcXKvbCxt66xta+/xbW6sbC6tq2aqbGpqpuepqGowq2brLGcqqKusKmkp723pra6vK+3xK2zs8K/scazurertLatqqKllZWUo6uhn5+ap6uvr6+7sqagqamZmZeSoqS4oaGkkq6vrKSmn5KhnpWej5GNlZ2ao5+ntKenjZi0nKOvm5+cr5GglJeUmoCSoZaPjqChk4umrLClp6KcoJ6SkpuUhYuSjZyegGNnXGhmS0pMS1NCQ0BJRzs7Rj85OU5NVV5SU0o+T15ePUhQQk1MSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLXAxb7KxbbAycK2q7WpsbiswMS0t66ttrqlmauyq6qYoKeXrbu1m6iwm62frrSyp6q6s6e6s7eyuMCqt7LCvLTFp76urbe1qaesoZeWkaWkoqKXl6SvuK2ytbagn6ikmZSVk6Ogt6OkpZWusrKlqaWinpqampWYqJ+fmKKerrKipo2Xr5mlrJibn6aSnY6VmZuGl5+UjJCcnpSLqamroqehmZ6WjI+ZkIGGlomUn3plal1sa09RTk5UPUJBTkM7OklANzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpwaVZDV0aMeWZDO6SknKGlv6aor6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTCx8G5wcfBuqq3pa27rcHDt7iqrbK8o5WtsK2yl6aokaq5qqCnsJ2qn7C0s6qptrasu6yysrm3rLmwwbm9vqbDq7C3rqiqq6admJiqoaKgkZegsK6zq7C5mpupn5mWkpemoLeppaKir7Gzq7Gnq5+boKCbnqWdoZedo7Owm5+QlKaaoamblqOgl5mKlpmUl5idk4iQm5mUjqmpp6Ckm5ibk4ePmYt+jJaGjptram5ibm5YUlFaVEFDRVVAOzpJQTc6WFBkXlBXV0RZXl5NTFJPX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBw7/JxLnFw8HAucW+wbivtqirt7K8v7+1qq6yuJ+XrK2orZeoqY+nu5+lrbOeq6KxsLOsqraztb2tr7G1rLC1scC5xLarvK+xuKysqaKxpZ6kqJ6kl5CYn7Kqs6qqs5mdp5uZlI2gpqS0rqeirKyusaeyrLKpo5ufqKSelaCZm6i1qZeZkpKfmZ+hn5Gsn5mZhpaYjJ6anZOKjZaXmpenpqOgnpaVlpSBkJWFe4+ShIyXZm1zaHBzX0dZZlZEQ05YRFo5SEI2Pl1SaFxOWl1HW15dT01SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3o6yppa6utqqutLmmp7C4xbext77BwrW0u8W+zMW5w8G6v7rEt8G5s7Wsqrq3u7q+tauusbeZmKirqqubrauPq72eq66xo6qfsa2zrq62srm3qq2usae1r7S6vMmyqrW0sbSvrqahs5+aqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC1r6OZna2nm5eemZmsuKKXk5CPmJyhmZiUraCelYKTmY2enJqXkYuUkp6apaOioZmWk5KWe4yQhXuNi4OLlGxueW91fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltcWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6y0t8m6tLu6v761tLfDwc3HvMS9t76/wLe/vbK9rqe6ure3wresrrK5lZenrquno7OqlK+6pK2ysaanorKzsbKxtbG4sqmuq7KnuK+1s8TEtqm0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpLenorCzq6exp62wtaykmaGsqJucnZuUqrmclY+Oi5mdopiRmKijoJeEkpaQnZyYl5aIlo+XmqidpKGSlpKQlneEkId8hoKEjY1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dlW01eYk1YWVdVWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpK2tq6ajsLKzqrawtp+rtbnJua7Bu8O3s7K1wsPPxMDCvrW9wL+6v72zxKiqubG2t8C9sKy0tJ2hp7CtpaaxpZ6ytayrsrCsqai0uqy0s7WstKypq6isqbmtsbDHvrikua+pra2mqK2wpaOjrqOpnJ2bmq+ZoqOio5Csn6Ogn6GppaW4pKu0tKSqq6isrrauop2jqKqcoJmakqS0mY+JjYeRo6CWjpWfoZaUho6Uk52bmZaVh5iSlZmnnaCgjZORjpF4fo6FfX19h4qKcnRzf35+XFJkbl5OWmddRkSWW0c6Tm1YYltNYWJOVlZWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGpsKSoo7O0sbS1sbGhrK29y7quwbvGsbSttMLD0cTGv8GzvsLCvL+4vMWorbess7i8wbGssq6hpKetqaiksaOrsaqvq7Gurq2rs7unt7GyqbKpq6alo626rKqwwrm0rLmoqKitqaexpamkoq6qqKKem6KslaWdl56Yq52hp6ihrKWjray3sbGgqaKfqq2wrJ2epqepmqOYmY+gqJiGg46Ki5+gkIyNl56RkIeIkZWhnZaYloaWk5OXpZ2dnYySkI6KgH+IhX13gIeFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTlVWVVdQXGFfVE9PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqrKcqamwtqy4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMHDxLrAtMnErK+3rrK6wL+0rq6spqiqsKmmqLKmtK2qsK6tsa+zrLO6pLizrKytp6ugop6wt6uqrbq2pLW1pKmnrKyqrKGopqaxsqSmpaGhq5aqoZOaoKaeo6KqpKyinqaxt6ysoqWimqmqramcoaWkpJmgmpWPmJ2TgYKQiIWdoI2Lj42bkJKMhI2ZpZyTkZuMk5GRlKObm5qLjouLfIeBgoJ7dYGEgn51d4ukh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqqwmKqorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK5wbrCxK6xtbK0u8G+s7KvraysqLaqpa2wq7muqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKSztKC2rqGpqKuoq6egqquoubapqqqpoamfrZuRqKGdoKOipqKpnZymtK6npamio5elpqapnKKjo5+ZmJ+Rjo+YjX6HjYeFnp6IhYuLj4+RjYSGlqOajo2akZKRjpOfmJmWjYuEf3SHgYB/eHWEgHt4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSY09MVlRVUU9YWmJWSFBqVFZTR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkU7lY2voKWqrJmrpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNHAv727vMO9usPBwL+vsbOytr28wbKys6u0qaW1qaSts7O4r6KttbGvsbmquK6qrrarqp6qq6CjobatqKGer7KhtKqeqKeqo6qhoaytqL2vrK6soaenn6yZj6+imKKgqKeep5uYqbCoop+soqGSoaKippiaqKWYmJidj4qHlYh9jYaEhaSWhoOCjIeQj5GFhpWhl4mSnZGTkI2RnZWXj4qFhnhzgX99dHh6gXt0dHtqgoikdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVJaZ05MVlllWEdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaTozOF89YWQ/RjFDUFtbK0hPO1hCNI+OsaCkpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJx8jQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaenrLK2ubKmp7q1rbS8r7ylra21q62cqa+kn6WsqqecnaqypLOomqqnqqSpnqKpqKm9q7SvrZ6po6CunJqyopakm6Sln6SamaeqpZ6aqaGbkZugpJ2YlqmpkZmak5CKgo+FfY+CgIiej4eAfoyHko+QhYGUm5SGk6KNlJGLkZuTlYeJfoByenl+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWh5XV5WQ1h7bVRhUFJZS0tNcHRdSFpbZ1lFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOk7GZn5+ppaOhqqS2srGkqbGnrbnBvbWwo7mtqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOnqquvtbe0qp26u6ixv7K5oK+0tqmsnq2xo5ylqKqjnZyksKavoJ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKaXn5uhopyfmpmiqqKamaOjlZaTnqGWm5amrIuekZCRjIKLgH+PgXualIyJfX+Mh5CQjIqGkpiRh5SkipKSh5CakJOBiHx5bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1ianBgb0JdeWtWXk5RUUtJTFNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNRXT0jkpesmZ+Xp6Ohn6ejt6+toq+vqau5wrqzrZ+5r6uotLrHyse/t8K+r7S+t8S2w7KwurGywLa7vripubi9qqS1p6iqsK25sKmZubyjrb+0tKGut7Wmpqews6CfpaaooaSZnqyoqZ6gqq6noKaXoqifsLifpLGuoKyhraSbpqapmpqbn6OVnJuZnammlpqeqJGYkpidk5mWoaqQmomNkId9iH+Cjnx8oYyMiHmEjYWKjY2FiZOajomVn4mRlYOMl42RfYR7c3B8cXN0YHl4am9xcXBrf3NkemxoZmRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFs1KJabpZiclaygnqGkobeqsKO0tKmpusW2sq6gt6ytrbC2xcfAt7/CubC1vLe/u7+vrL6ws7+yvcO5qbu6uKeotqinq7Css7CmmLy2o6q6ta6fsbivqaWnr7KboaSgpKOhlpuvpqGfo6ivoaCik6Okorawoaaxq5+so6+Xm6qlqJ+Ymp2kk5qbmZylqZmbm6SUlJeVnI6Tl6KpoZCJio+GeoR+hIp6j5eKjYd6goiEiY2PhY6TmIyOlpmKj5d+hpeMj3qAenBxdm5vdF94d2VtbGxraoRvZnJpa2ZpXmR0gWBba3ZpWkp/XltYT09LSEhSVUYyOV1ebVBEWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJuqnaShoqG3qa6gurilrL3Fs7Cuo7Wvra2vtMPDvLO/urexs7m4uri6r67As7S5r7/BuKy9urWmorOqp6myq62xoJrAtaSmtLWonrK8qailqa+smaOnnKSllJihsqWZn6SoqZyioJOkn6O4qKSnrqadpaGokp+ooqGhmZucoJKam5afoaqbmpiglJCTlpmNk5OjqKSQiYmPhnmEe4SGfZ2NiYqHeoGEh4mJkoWWk5OMkJWUjY6Ue4OXjot3fntsdHFsbHNhd3VpaWpnZ2+GaGhpY2ZpamBrY2poXGV7Y2BTdFRcW1NMSkdJT1NAISpoXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnTycynqKjkY6kp5uenp2jtaynqrq3p6zEwbawrKO1rqeur7fAv7yywbewrrK2tri2tq2qvbOusrG9v7iuvLuxpZ+2q6WltKmqrp6dwKuopK+yqay1u56oqauxpZieqZ2mpJGZpq2imJ6kqaGboZyWn52ntqWvqq6hoZ2doZSgpp+hoZqbmZyRmJyTpZ2roZeWnJSSjJWXi4+YmqmgkYiJi4h5hXeCgoKdiIuCiX2AhYiHhpGEl5WQjpCRkZGMknuDlY6Gc319Znhva2prZ3Vza2NnZGR2gWNlZmZmampka3JaX1ldbWRhTmlYW2BWSkdJS01SWD45X2xpSEJUU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CMraGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu7rsGyrq6utq6yuLOoq7mxr66ztrq2sLi9raaetaqgoLCkqq6cosCgsaSusK63rrWera6traKanaeppZ+Vmqeln5mloqidmp+blJydrK+luqiuoqGamp2ZnqSapJ6XnpiblJmgkqiVqaeak5qakYuVmY6UlJmpp46NiomPfIJzgYGKmIWHfImJhYWKjIqShJSck5KPkJCWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjdIFiZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVVAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNjrCempOhmaiyr5+4v7agtMK7vbqxprawqK6lt7i3t627r6yqq7aqs7itpbO1sq6psLe2sbO1uqepn7WonZ6ooqmtmqe+mK2jrq+1ta2sn7Gtr6minJ2jq6iclJympJ2aqqKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbml+doNxbIaLhn2EjIdwXmNhZ4SYhmyLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFZ19kZm5tal5fYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpWwm5yToJuqraqjvcWvqbjCuL29rae3sKWrpLezsrOxua2ppqy0pq+1oqi4traop6y3s660rbOiqZ+zqp6hpJymp5irupWmpa+zt62upKmuq6yloZ+coKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6OjnJaXl5ejiKCOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanBviFheaVtra1uIcW56coVnhoRaXkdOP0dfTUZSVlZRUVJXVGdeTVdJUlNQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq5yZmJ2fqqqnqb7Dr7G6vbfAv6qlt7CpraaztK6vs7erqaWxraW0s5yttba0pqeos7Gtsqiunqugsqigo6KaoaKarbOUo6WltbynrKerqqyopaGgmKCmo5mZpaOkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5eSnIivkJiUiamLl6GbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6b3KQ2H5TamK2sn+BcpV0mqGqkFdPV2JQVk5GVFtYUVBSjFxXXFBAXERRTkVHSjw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yp7DCvbK1wLW3vsKrp7OtrKmnrrOpr7a0p6emtKWnuK6cs7K2qqWkp7KurrGmqp6npLGjop+el5ufna6rlJ2in7O6o6qpoq2upaGdm5qhp5+Xm6egn5iep6eRnKeak52hpqKgsKKfn6OWlZKYkpmFr2tqio2qfmeDlYatZHCdnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmh8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTldfXFdWO06JT1hXL0lUVEpERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6uzvb6wtsSyt7rBp6mwq66oqbCuo7C6r6SkrrKjqbionrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXm5uspZaboZ6zs6KrnKKtraCdmZegoaicmJ2jn5yZoaakj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmyCpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlzdVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqagrqmnsqypu7bCsLvCrbi2v6mrra2upq2xqaGvvKqhp7Sso6u1paazs6ejop2nqrKosKilnp+fr5afmJSVlZedrKGZmaSotK6hqY+pqKmanZWYoKWnm5+dop+boKOko5Wbn5eZnaKpm6WZnJyioJeTkZOTnYPVk5m5cLDCfsWGfNaUm7t8mpWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWJzc4htl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1s7qytKaxsKOwsqafrraomqe5raOvsaCztLCgpJ6fp6mwqbSppJydnquXmJeVl5WVoKmcmZanrbCoo56PraKmlZ6XnKGloZmioaGhmqGippueoZ6UmZumoJynlZubn6GZj5GUkZ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tF2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnSHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVHSTg9VlFaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbO5ubKktLShsbGin6ywpJemua2ksbCctLiqoKadoamksqisqaSanJqonpWUl5iSkqKnn5aSpaqwpqKWk62fpJGUoJukpp+Vm6amoZqin62aoJ6dkJWboZ6cppWdlpmin5WYlZGbhax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnYaZmnevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGtdr3eVno94bDV5yK6yX0JTb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlaC5sJe0wa2os6ipsrq3s7i/ubextLu0pLezn7Ssn5+orJ+Up7WrqLGxq620pJupoKCoobanpqmimZ2VpKGTkpuYkZSipZqSj6atr6aglZmpn6GNkaKZqKWglJmlqJ2cpJ6snaGdoI2UnpqdoZiZnJaXoaCTmJCmnoapfX2leKGPjoKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/doh0qIGOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmdNW2FecXNeSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZqav6uXtMKurK2pprSwt7G1v7m5sbC1uqm6tJ+wpJ6lp6eek6qwqa+ptayqr6GYoaCmpaS6oqOroJebkaKglJOemZOXnp+PjYuosK+mnZabqKaei5Kkl6irp5SWqaeenqCjraShnqGNlaGYn6CSnZeclZ2hlZaPq5yPrm1ytHKpjHaKpnO0eHOzgJGko5KcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNcX296YlRaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqcnruhnLLArq6rq6e3qbivtcC1u6+uuLaqwbapqaCbpqSinZGqqae1o7Knr6qgl5ynoKSruJ2jrZuWmY+lo5WMnaCamJyfkZOUqrawp5mUnKyplYuTpZmlraKQlqqyo5+epquwmKGjj5milp+blpyXoZKcqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBi26aiHFujaR0vV53fVthebxrWlZbanpeamFlZ2Fsd25ZW1lDQUByQENHKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK8oZexw7Ctqqussae4r7bEsbmxrbqvrsCxq6SinqOhnJuQqaOqsqS1pq2lnpaZqpmmrLmdo66YlKCQpZ+SjJyjnZedm5GVkq65sqyVl6Onp5OQlqScpKyekKCoq5+bn6ijs56jpY6nopSimpyYlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zb3mPhI6JdJ7Bu72ae4GyqHCAdJG5g3yGhoyGjXuKh42XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYpog3lteWOLrHB1hX9aW6dqRWRZU2ZgY15jUWdmcGx1Qk1QTEQ6Wk0/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMK0rKuorKupuq6wxa60sq63p7S4ramioaWeoJ2Zk6ukraqmtainn5uWoKOdrKS+pqGql5SckKGakY+hqKGTnZiTl5SxtbetmJ2kpKKKkpKmm6Wqm5appaWcmqGopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pnKZ4h3J9mo50emSHe72+wLpvkoJxlYdhc2paXpuKYWOIjpVrYICVZG2dd2KVa4CalZRlXmFjcZqKaXKMfYWVZ2p+cnR4fX5iW3d0gWhQXG6EfXyLa1hseoJzSkpvhnBNdU1FV15mYEtaV2djX09bbXVpclJPREVOO0hIPUw/Mi0yQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM9W08nPzI+qKCoocKjmrS5taOspa6np7Wxq8irsLKrtKO+sbKmoKKonKKbmZmspq+kpLWppZuXlaGbpq2ovqeoppWTm5WfmZKXpKmokJ2Rj5icr7K/rJunnqeiiJORqZqoo5qbrKCjmpqjp6yin6uimrGblaegl5Wdn52XsaSXoaiZnJGdnKKkmKaimpyampmPlYFnbn1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGejYJ6pIZsanyQfIB1iYqBcYJ4eXZ2i4B8imtzgXSDdWV2fXdrcHttYGNdcGdMWFpmamBXWm95bW1mU09GUzlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqqayp6WwtKrIq6ywpbWmwKe0oJ2kpJyjlZWgqqeso6O2q5+Zlpafl62qpcGeq6SVkpyXnZeSk6KfnqKnk5GZqKeyxK+aq52qn5CWlqidqpucoKyYoZucoqSvpqGlqJ+umJennZmaoJ6enK+gnKGmlZeSmJOgoZWjnpegjpaTioqNjpeukHyVm4KSgouqqIaBmZeKhI+fiHuEkIeGmpKIhoqVj5uXjZGYnqOWmpORno1/jmahs6+FioR2e5CKfHZ5em9mepGBgIlrdYF5iHNpc396dYOHgmt1ZHlmYGllY2Rma1lse29palxSTFBEX1RFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKumsa2irLOwxLCqq6OzrryjtJufpqKhnJmXp6WppqSlsrSelZSdmZmwpa6+oKuikJGdmpmUkZSinJeonISeqquis8izn6qkqpaWl5qnnaian6Srk56fnaCpr6mlo6uirpufoKGYpJ6cn52vo5ieqJOXlpyRpJiXqJ2al2WCknxlfo2akGR5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gjd2tqi5mjnplzbG57hI2HelhlXoaCXmyLiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6EfGqGWV5rdGRdc4lpa3xxa2NeUU1XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora2wpq2tsbyxqaekra+wn62XoKOdopmZpqucraOlqKmyrZ6Vo4+ir6a2uaWuo46OmqGZk5KaoJmZpZV7pa2iqLTEuKSip6+enZSeop6jnKOpqJKeoZ2gqrCqq6SqoKqbp5+ooKyWoZulsKSXm6qVoJ2akqWXnqqYnn69g4hytHKEnYataHi5xLhxk6KjeqaZmXOqgnzLwMC7cYyiiIKffZaYiZ3AvYKXnZ2NncLBfIJ8ko2aw8B9a6Wyb4yBb8p6f5t3kYOOgXZ6gYB5cXp/h3F4hY2TeW54lGNmX3lkYGWCY150Z2xkYldLVUlRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlEvI0ZbM1BZL1VBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpqaxq5+rmJqin5yaqqeinayjpaikpLSknaKSpq2ruLOnr6KRkZmdpZKQn6GYm5+dh6espKutwMCxoKmvqZeRnp2hmaKjqqOToKGdnq2uqayno6Onoaalna2pkqSaqK2pm5ypnKyglpallaGil5x/zpR4eqSBeZWWm1+uj16Op4GioHynlpt0q4OAr15jjap7p4eFoHSXk4izY4KrhqGNjbNqha90fZeIt2GDrVmizW6QdXvae3+ZcH6IknZ+ZXuIdnZrfIhvfYWRkX5tg5BgcmxwaGBfeWRccWhqY2ZfUVRSV11LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK20q6ayrKyrpKumsKqgp5uZpZecoq+foJ6op6OmoZ+wrJqdlaatrLGqqKyglJKbn6SSj56lmJ2no56upKuwqL/Hs6ipsa6Wkp2boZefqaqflaCfnZ2usKerqZynqKSiq5Oss5eloqqqnaOmpaGwoJKZppmgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHOtfquHhp92mJJ7fJd+qoiijJGMnX6re4mUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbZKQZnB1dXFhZ21lX29paW5nY1dTXGFZUlNDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJyjjqOjoqyvtq+osaaoqqetq6unoqOdmaKVoKWrn6KloKioop+dsKyXmpeopq6sqKapnpeUmqOhkZOgrZudpqOvrKOstaq5zbKtpq2slpWcnaKYnq6snZagmZ6fqrKpqqqbrKuko6ybr7GiqKuupZimqqmpsaKSlqOkmpSShaRqpHWJeql0erJwgqaKmYxxiKCah6RgYVKrhH+ug5t2rYGmhoafepmXhntmgKOJpJmGgqR9qX+ClYeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgW2alHBueXh5cG1mZWVxcGZ8aWJdV2BpWFhVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6Senaanp6OcrJqirKGkn6+inJuTqqO1sK+gqZudlpSmopCaoqigoKWcsKakqLGstsiytaqrqZWRnZyimJ+ls52aoJSdn6esrKSumq2ro6OqorOuoqqzsaGaqaiur7aikpWip5ibkXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDo4iHoHqYlpp4qsl0maSVqKqRk5qMgJyKmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxl5OAcXt1fnxuW2ZqcnBlgWpfYVhkbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrmsqqGmmqilqquqp6CmpZiqo5+vq52moKyanqmlnae1n6KXk6iptbKsnKWcoJSPpayRmZuno6Cppq6hpKepsLTCsbOqraiTiZedpJqho66mmKGVmZympqybsJ2uqaeerKS3rKCxua+dm66nsrOzpJOXp6KZn46CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpOSjHZ7c4V/cVxtbnhyaoFvW2RfaG5iZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayzs6WfoJWlrq2uqqedpqaao6ehs66iqaeyoJmppJSitaKilZehqLS5o5uinaKTj6GxmJ6bp6Whoq+unaSooraww7Gtqa2pkYeQnKecoqScpZeemJmapqSpmq+hr6WmmK+lvK2htretnZ21sriws6aXna+go52Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOclYqefJiZhoePc6+CpZuijqaLk52KlZCbbXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfYyNlI55fXmPgm1peGl5cm6AdV1lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6inrqusmaain6agoLWno6mnsaOUrKOOpK2jnZCamqiztKSdpJypkZSXrZ+fnaeknaectZqhqqS2qsKwqaupoYyEjpyhoKajlZqanJibmaelppisqK6jpZutpr6slL2wrJ+isLK5q7Smmqixo6eXeqiQfXywd4qApKWInG2yb6CHrXyhjoOolZiArImEroWflKqhoZeGn4CZlYB7kn6rgJ2al4ureJ2fkYqUkoF6r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYKVjpiOfHuEmH9rbX9jfnRugHpgZ2VxbmhnZ0NaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqcbCtsG0n5qsoK64paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuopJaJmo+usaymnqaaq5aXjqyhoZ2loZqknK2YoKimtqi/r6WppJ+LgI2bmp+mnpKUmpqUmpqmpaWbqqyspKWfqqi+pJbDrKqioauyuaqupp+zrqipmHavfpCLnIWHfbquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbWdvmZiMiLFbfbRcpINryKJkn4B7vFh2tVqyfVKugHqsWIChbpiQqJuLl5GYmHx6j51+ZHR+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urPBs6ObrKaltqigi5qgn5yzs6mfo6CetZigtKiqrJ6vrZ6sm5WvqKKOiJuOr6yop6GmmK2RmI6omqGepJ+Zo6OlmZ+jqrKou6+kqJ6cjn2Lm5ahoJmPkZqbkpqYqaCimqmuqKamo6Wpu56gxqakqKGrtLWsrqaeu6ysrJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6OBb6uEbJx/erKwx4Nqq7C9rHh3or68c4GWjqeckJuRmJ57gpKbemN9e2SOZ3mCe2BsZWtqYlBhWlNqXEBVYUJOKj06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbKina6mpbKmnYyYpb+quLKoob+mp7KcnrGcuqifra+mppSUsKyXjIObka6loqygo5uonpeKo5KmnqecmqGoopmeoaytqLitqKObl5J7h5mSppuTjpGYmI+Yk6mboZmqqaGqp6GjqrueqMSioK6jqrO0qq+on7qnrq6ac3WqpLeGZImgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1sZot4b26CmXGBempxaWeJlpaYcmlphIdncIZkXYhiam9ZXWd+d6ZfYXGOkW5lZX+Nk4+imJmZkZigfoiQlXZmh3hpjmt5f3lkbGNmbGJLZFhKbFo6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16pla2zqbm4srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraaNl66pkIyFlZatnqaqoJ2jop6QiqSSp5momZajqqCWnKamp6+6q6yam5KSe4SWjaWYjZGRmJSNl5WolZ+YqqSbsaaeoqu5n6/Ap6Sypaywsaqtq6a3oq23loqgqKW2nYmWo5mHqZqQlJ2SqbKZmqOroLGWoqCdoKKcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJmXlo6Lk5OLj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGNkJCPnZWhlpqYo4OJlo1yaZB3cYt4d3x6amxkY29kVWBYQGlbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgppapqqS0tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptKeokZisoouHiY+bqJWspJ+Ypp2dkZSjl6iaqJmUpqGjkJqnmaG1u6irmJmPjXuBlIyhlIqVkZWQkJOXpZCfm6qgnLajnqert6euwa6jtqavr7CsqamyuKCuvJmRpaSmtqKSnqefjamfjZKfo6yvmqCjsKivl6OgnKOqnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSLgH1mi4V1hnV5iINznGqFkJSTkIl8i5aSkpeUopOemKOFiZmIe3KWc3qLf3J8f2pvZF5wamFbX1htY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKijr7KsrqOppq2gp7WqkJCdpbS8r62toqOaep2isaSlsamXnLimo5SZqpyOhoqJnKOQrp6ilaeeoJGWmJuui6mWj6iZqIyYqY+fubakpZiajIh5gpSMm5OKlZKUkI2Sl6KNnp+pnp+4o4CEr7Wir691pL2jsp93eaCqsbqUdayknomAqn9kXGJ2oI6knoSXfW6Ts5yjp62qo2Wdn5JzeZmWcICYqJdsf6KoimWcpZyRl5iWjJKckYadmpCVg5KHj4+SiYR3ao6GdoZwe4aBgGFph4qUkotadZSQaGiPj3N7ppqaZnuah4N4mGqEi4NveYBrcWVfdnBsa2hbZmViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMxNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK+wrKuppamuo6atpJKWq7awsqebq6asl3SMna+fqKunlJe5n6CPnKSdkX+JiZuejKuZopSmoJyNlpGehHWtjoimmqmRl6SIm7qzp6CZl4qJdXeTjZaTipSRkJSMkJOgj5uhp5mcspaAjJu1nbOMko+7p6B+p6J6oq62gI6Opp6Di4aQsaqvjIqWo5p5gIushpydoaepp4eVhZh3pZt6h5uBl6eCgnucsnqKhqCXmZSYloKRl5aEmplieYeQhI6PkYqDbXCOh3mAcICBhX+GdIaElZF4lmeSdKCadH2ZhKKeiJh/k4qEhJlrjo6FbHh7cXFnZHhvamxqWmVramV0XF9JVExRQEU1LlpUVTcpITA5PT43NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lbYWFpZllRSDlFSzw+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorKCosaamqaWZlK7IvrGil6eptZ6PhJ2snKeioI2Qvp6ajZ+aoJB8ho6Yl4eqm6CUnp+RjZOJhn+Qp4yGop2klJiehp65sKedm5OOhXB1kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqq2It4WMr4KvrIKpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFkoaNlZKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjnISagI2OhoqZcY6ThWh3dHx3aGh1cWhoa11jcG1nbVhnR11STTJENDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mppqugpLiwqaqmmpSgo6SrpJelqrejr4Chp5ylnp2JlL2Zk42hkp6PeYSWlpCGqpiZmpmghI+Md5qbjp6Ph56knJaamIaiuKykmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj56cnZGFgKCNqq2Fo42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGpmoGxbbot8Zlpgg39iV1Bvd2ZtdHJram9danBtbGlYaU9eWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaG1vKuuopmYoKKlrK6hna61o6iSoaCfppuajpm0mZCLn4yVi3WBlJKMiqaVk5ednX6ShYWro4eaj4qYqZmam5GHpbCmoZWaiImAaW6IiIuPjoqLjZKMkJKjjJSfoJyhpH+TgY+joZSgd5yWj6eDoad/hqirg6V4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SfhYGkYJ2YspVxfJefs3RzW56yg2pib3R2cWlvWGpscnJmXWleY0xEPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltaWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCaop2jo6aunJuyrq2TmKGZoaSZmpSfq5uLiJJ4i4VxgJaNio+hj5GTnZh9kImNqKCHmI6KkaOUnJuMi6iopZ6Pl4eEfmt7h359j42Di5CRiZCUoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5WmqX2tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl46An2+akG2nmVyofni7an2pW46EXbNnXG5yenhraVxwanh5Y2BmWGJCUUZPN1ZDUm81S1paX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Sbq7qysayeppycqZ+erpuesamsnZekmqGfmJaWoaSZhomNaoiAcnuXiIuWloSQk5iPeoqElaOcipSPhouekp2diY6oo6CajJGKgIBpgIZ4f5eMe4mOjoiPlpt/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqGmnqZ7sK2joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/gJuTp3eCnW1yfZRvmXJqo12VdkhlZGFzcX5+bmZgbGl2e2RlYlJfV11VV0BaRVFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrZmEU16gprO5s7OpmqKMnKucnKmUoayloqiPn56dmpmWmKGdloiHiXeGgW95lYWQm4t8kJGWiHJ/iJKgm3ORkIGImZWhm4WNqJyalYuLinyDbISFcYGhjHiGjYiHk5mWfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiZ+bfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WiY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jp9hZtveHqXa5t7d5dzbqmkZ2FleXGAhGtnZmRudXdnYGNTXGZRUWJJV0pUYVdTW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FhZmVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5uZhZmpoKGkjqWooJipipqYmJOZk5KgmI6HhntwfYRofY+DlJqBd4+MjohvfoWPkpJsl5N8iZGSpJaDjqqak5KLhYl6g3aHgG6Bn4Z3gJOHiJmil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKKZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBnmCdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dzpHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdYSbbXV4mGmae3WYclBFfbReanZreYhmamhidHVwblZeVFlpUFNpSlZMWVRWXWhrblZoV05LQUpNS0hKT0FRS1BlY2ptZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZWBcXVxeaWJkaWt7X11kaGNqZm9sZWlsZaGciK+mhGY/lKGzq6+vtqKikICYqqKjpYymp52dpoKbl5aOl5CPnJOOiIN5anmHZYOMf5egeXWNh4uAZ4OFkYOMhZ2NeoyLlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGWiImWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaaprdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcqJaX1tioW1diYxue35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9mqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUpZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAmKudn6aNo6GboqKAlpmTjpqPi5iQjop7hnGAiGiLi3yYm3N0iHyPemOBhpSJiZWZgnyIh5aokYGirJGGkIqCin6AgI5zaY+lhH2GlI6JmKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SHeal0pY+Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenKolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ5+tjLZ0d76NpJNZg6aNq2F1cnRxfHRxY2p+bmhsU1dbVmFiXWtNXVJdSl5tbnZgW3FZXGBbZnRlbm9xYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp+lipulnamdhYyaj4eckYWSjYyNdIZ6iIRwjYR+mJN0dIVykoNsf4uRh4aTj317goWYpo5/paaOgY6JhZV2goeSb2yLqYCDi5SOiZyfiYyUqqOgj4B1lJeIfoF5lK6jf4GbcY+FeI+Kg357cqeMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDe32Ja4yFW3l5cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm1tZ4xzeXuYeIVca1h5j2lueHJyb3h4cF1shm5pZlZbYFdcZmtkVmJVX1FfcHh4bGt2Zmpra3Z9cXJ0c2FvdWJ0e4F4dXqDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjamZscXVuWltibGRsbHluaGxvYY2UuKimi6GimqakmaWcq6OhhISYrJKeoYmbp5qpmIOBm4t/lpOHjoqJjXKDfI99fo+Fe5eOc3KDcJWFe32Si4aGkIV4fYCGmaSOfKehi4aQkIWWg4aOmHdyhamFjpGdkIienoiMm6ifoKqDiY6Vmn5+iZatqI+Spo93b5yQgnmRb36ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuCdnSBWXJuhpGBfX6Mal1qZHuFhImAYGl4ept7gouCdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pwZmdle4N6lltcamdudlt7eXh1bnNzgmZcbYpra2FZWl9aWWxxXF9hWl9dZnR+enRwdGNra2t8fXN7eHRkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenpiemaijo36Dma2NoJWInKKRpZV/e5iFfZKZiYiGh4pzfYGMdoWLgYSWinFvgHKYhoR+koOEhoqBeoCDi5ugkIKnoYd4jpiJlYuLnJeEg3qsgpGXmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35/kpGSk5yyppuVnpCNspOXhKWMjJWbn4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoYiGiZ6KhJR+fYqAgHVvc4SCfneGhoqPppCDhY2Hg42QjH2IjIqRg3dsgoR9eplqcmhhdIpwfXp3d3B3dIFdXm+GaG5eXlpdXVRoclZjXFxibGh1fHxzb3Bka2tpgHxueX9xanBwbGeBe3KCgHh/fX+Ee22CjIZ8enh8fXqDeU5kd2pybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6WoqGYlZiZlZmkoZ58gJqrjp6Nhp+ci56WfXmUg3uOmYmGhISGbniAgHKBiH6JlIRta356l4eEg5B/gIaEhn2HhI6bnZKHq5+EcouQhpORi52RfY17qoSNkpiWj5yWh4abpp+imp2GgpKamZiQmqagpZ2dkJZ/j4l1fIeOhKV7fI6QkYaYqqKek52PjaqNkYCdjImTmp6Cjpd+ho6Db3iGcnVhf4OPhnWLmIGDj4KGhX6FhJRueXV0kqKKi4WahISMc3+IfHxycnuHg3p4io6DkqaPhYOOgYOKiYp3homKjH1vbH6BfG5obG1oX3p/aH17dnV2dXt3XF9wfW50X2NbXV5RZ25UZVteYmtpdnp+cWxtZGtqZ4GAbHOBbGx1b3lwhXluh4B2goB+hXZxgo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idG1sVWNxeWVwentzZWptbIuJnreaoaOfkpGWmIuan5+ee3iep5Gbioakk4uYmXl6jYV8iZGDjIKCgm57f3hzgYV9i5F9a2h9gpiJgIeNfH6GhId9j4GQm5uRiaicgHCMi4yTh6GiioWMfaiRiJCSmJSWk3iMo5+gnZaZf4CQmpiSjJqjoaSal5GafYyEeICDjoagf36MjI98mKSiopOZkI+mjI6AmpGJk5ebfpOSfoeOgXR0gnB2YH6AjYZxipV8iIxxjH+ChYaOaHdxeIuYkY9+l32HinKBhnt8cXh6ioR6eZCLgpWlk4uFkHuGhoeFdoKEiYh7ZnJ8f3l7cWxqZl9+c2h8dXZ0fXOAal5gc3Zwd2RjWV9eUmtpVGRZX2FoanZ5gXFma2RsaGWAgWttfmhvcWx+eId6a4yBc4GBfoF0doKNhn98en+BfX+PanKCbXNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykqWlnI6QmI+GnaCbnXx2paGOl3+MooqImpZ4e4aHfoOJf4iCgX9xf3t0doKFfoqReGdjfYaXioGJjHl9gI2DeZaBlZiWjZagm35wjIKRlIamm4eMiYOmlYWTi5eYk5J3kZ2goJeTlnl+jpiXjpaanaSdmJKUmniOhIJ3hJaNnX6BiY2Mcpejn6KTmY6PoYuKgpaYg5KWmX6YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJN3ioh7f4V8e3F+d4iFeYSPiYqXopWBg4t2iISCgnd8goqGd2B5eH10f3hnbGVhf2lqd3N0dn1xfGJjYXNudXJtYVphXltsZVJjWGFhaWx2eYZxY2pjbWVofYNsaHVobHBpgH2CeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iHN0bmWKbGpiY3VWhGlxbmB4Z2xianZwZnl8enFfcWyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6lpyLjJiQeXyBjH58g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd+hIZ1fX6Kf32YhJeUl4ykoph/c4d7lJKKp4+MjoqToZKDkZCVmJGLgY+Yn5qSj5Bzf42SlImdnZ6mmJiNlZVyjI2Ja4WXj5l6h4iQiW+Xnpukk5WKjZ6LhoGSnH+SkpWHmYh8iomBeXF6a3VsfH6Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Nc4+Ig3iGfXZ3f3yFgHyCjISMlKSPeISCdImHfYB0doGJhG9he3V6cX1vYm9jZHtibm92c3h3c3RhdWBvbHVtb1xcX15ea15QXVhjYmltdHuIa19qZmpjaHeIbmZsaGpsaIF9e3dukIhzgYSEfXSBhol7g316gYR9fY5yeop4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6idioqRhouei5WYfneumY2XfZ6TkJaUiHd+e4p9e4B2eH+AcHR0e2+FfYGAin98YVt+j5KGf4ODc3qAh3qPkoiSkZyTpZyVgn2CfY6LkqSJjoqNmJuNhpGYk5aPioiMkp2Tj4uMboOPj5GInpmioZeWiZaQbYeYg2aFmI6TeoiEkIpwlZqUo5KSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV7i3RuhpCOknF1gHuAgId7ZHBseH2Zk32EiHSQioBzh3luf32AhXuFi4iEjJWojHqHfH6LhXd+cXCBhoRkaXl0dXB8Yl9wYWt0XnBqe3l5bHNwZXhdbmxzbXJZWl9fYmtaUFdYZWNncXF+h2ZdaWhnYmdxjW5kaWdkaWiBend1b46FdIGCg3t1goiFeIV8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioKQnYeTnXWBqpWTjoegjJWTkIB0fHaFeHl/cnN7hWtycHptinaAgYducVtYfpGNiH9/f3d1gYB/oIaRi5KdmKGVmHiKgIGNiZyeio+GkpiWhYmVmY+Wi4uNjY2dio2Pg22Ji5CQip2WoZyYlYWYh2mDooJmhZ2KkH6Lg4uBd5OYkp+RkImJlY1/fo+YfJGNj42akXyKgIJudXBsbW9we4Vpc4OOmIpxd4B0gYeCeGZybnWBmY57iIR6k5F5dodzb4h7hYt6ioWCiI6bo4d7g3WCi393eW5sgYSCXnN0cnBweVpecGBwal5vanx7cW1tamx2YHBvanFtWlhhYWJuWFFUWmZnY3ZvhIJiXWttZGJma5JuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2eppaFjYR/l5SDkKB1i6CUk4aLmoyVjot6cnh0gnByhXNxdYhrb211bYh2g36AbW5VUYGrlYeCd393c4N6gqCCkoKTk5ick5p4knuDjZOkmpOOiZWZkoWHl5mMlIuJj4+InoSPinxyi4WJjoicmp+blpR/k31nhJuGZ4Wgh5GDkYKJcYORmJCbjo+MjI+NeHuSkHqOi4ySlox8iHyAa3ZqbmtsbHt+YXp+jpaCd3qAd4KMfHlnc2xzh5WKfoiGe5OPcXmDb3aMeomLeoh9gYuQnp2EfHt3got9dnBqbIKDemF4cG5scnRWXm9icmBfbG55cWhwZmdzdGhwa2F3ZV1WZmBgclNRTlxmZV55cIh8X1xocmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoF4iINzhoV+jY2EfHmVeGZyaoNgiH1vb2t6YGpudH91X3R9eYZ4dHOFfHigj5mwnKWOgop/g5qHgIyef4ualI+FiJiOjo+Ed3R2c4Bwb4VzcHGDb2ppdm6Dbn19bXVzUk2C38iS1pN8cHWDdoSgg5N3lZKZnJGZe5RzhZCfoZOTkoqSm5SGfpaWiY2NiJGMiJx+joB3eox+iIyKnJydm5WTeYx1ZoiRhmyIooSRiJeChWOMkZmPlYqXi42Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t5eVyAeZCOgHt9fn6FjXp6aHJqc4qPiYKFhHyUimt9fm5/i36LhnyEeYGOlJqainx2eIOQeHJsZ3GAhW5rdW9oanRtUl5vZHBZX2txd2dra2JmeHJvcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVlj2NhZmJYaXNzbWpxdox9dHmGgnV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2e3uNdnJ3ind5n4ubr5ugkIKFd4iVfn2KnYeGoJGPhYyYhJOOh4F0d3B5cW6Eb21ufnJkZXhwfW16fWpoa2OkmsHcru+hc2x2hHaFo4aSb5eRlqGWnIGScoWLo5eJjpaLkJ2Wg4GVkIWJj4CRiomWfod7dX+JeIaEjZybmJmOj3WJdW2FiIp9iqKDkImchIVei5OYjI+JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqSh4V5foB/hIt+eGVyaX+JjomCgn+LloVrgXVth5CBj4R/gnl/j5WTmJB1c3eIjXVzcGd2eoRjdW5wYml2Z1FgcWdsVV9udHlhcmRfaH1wcm5aY3JhYlZuWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYeWhox/fpdzaHVxeW2Lem50cIBXcXp2eXFleHmHjGl2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjYCaiIR7c3dwc2pvgWtpbXx1XmF4d3txdXtnYGR869q1ycPciHNsdIF3i5uJjmqZkJCelpSBiXGFiaCOhYuWi4yYlHyOk4iDiY97kIuFj4F/dniDhHKHgpObl5SXhox1hn5vhIGJhpihgpOLnoOJYYOUj4eKhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpc3ZrWox8koOFfH+DgIOJgnVhc2uIgY+KgX5+kZB9bYFreIWOhZGDfIF8f5CSkJaIbnF5jIZ1bHBrc3mCYHVqbl1rdl9RZHFpZlNgcHZ0YHBgXWiCcXNpV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YWRfXVlrbmZvaXN4in5zc4F+enZ6h3OFg3yAh3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3l3koJkdoaFcYqWhZmhmaKKh3Nvk4tyd46cfouaiYl8n3+Emn+BeHJzbm9kcn5oZmx3eFtfeXt7cXGAaWBmYX/Vto6QpnhucXd8cZORjYdrmo+JnJOMhntph4uZhoGSkYaHmI58jY2BgYqNe4+NfYiEenR6g3txh4GWmo6TlIGIdIKFdYJ/ipKcnYWUjp9+iGF/k4iFiYSJjX+Ag2d9kYB+f4KMjpB+bYJ8gnRrbXd1dHZ1amKNgY9/hH18hH+EiH5vX3JwhHuOjIF8fpCIeXCDZnmCioaLgnuEfX+Tjo+ShG5veYx+dW1va2x7fmRpbGpZbnZaUmlyaWJRYnJ3bGJlXlpqg21zYltnX2RsX25VW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/e310eIZ4hYJ9gId1eYmBkpZ8iYZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOanpqfhoh2dpV+bXaUl36IkYSKjpp9jJp2fXZxb2xqYXV8ZmJpdXpaX3d8em1xf2VjZ2dXnY9ecXOWvMSEdnGUiZB+c5iMh5yUjYh0a4iPlYB7lIyBhJuMfIuGfXyJjH+UiHWJhXV2fYFxdYeCnpWGlY+CgnF+h3SDe4mXnJaGk42cgIhlfZKDgIaDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN2cmtqjYWKgYl+eIKAhIN/al5xd3p9jImFe4CPf35ygGh4goaKhIN4g3uAl4yPjH1ubHqJfXd0b2lofXdlXnJjWHBzU1Ruc2liTmd0eGZgXl1YboBvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjcHZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoSCfIGFdn6JgZaReIOKdIGIc3l5f46Qb298gXFpgXl6fm1tfHaWa2p4hHRrlI2Fn5efmYWIbn2Mdmp4mI9/goqClZiKeo+Wb3pzcWxqZGB0emhfZXJ7WmFyfHlmcHphZGSOsbJ3SmJapNnQl3J7kYuReH+WjIWako2Gb2yGkpF6eZOHgYSZinyHf3h4iYqEloBviodxdH17anmGhKaRhJONg35tfYJ2gniFmpiTi5KPlIWHb3qShH6Dg4mDb4F4aICFeHJ/f4OKh3xlfX6DdWNwc4BoeHBudJiNhYKJenZ4gIR5gWpbcHxygIeEiX2FiHqIcoBtcIOGjYODcoN4gJiMjYR3bW5+hH93emVoan5yYVp4WllybU5YcnNmYEptdnRhXltbWXV9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxXFpZa2VZY3F5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXuAgX+Cf3aBhYmXinGCjXF7hn16eoSUjHVqen9rb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfn+FgpmKgXyNjWl4cmtsZl9hb3ltX2JveVxkbIN5YHB2X2Vl1eu+izI6PouOgHJ5hYiOjXaEmI1/k46Nf25shY2MdX2Pf4WClYl8g3hudoeFg5d3boiEbHV7dGZ5g4OojIOPjIN9bX90dYN5hZqPi4+RkoyLhn57kod5gISNg2yAc2l/fnhtfHuBioN4YnmEgXFkcWl+bXRxdIGbi4B/hH1zdX6Ac4BvW2t9dHiJgop7hn98iHh6cWyIgo6CiXGBeH+Viop+dG1qdoCAdXVcaWl4cVlXfVNacWVMW3NyZVtKcHdvXVtaWV10fnRoWWJbZ2VuYmlNV2ZRPV5mXV12Zl90cFtZVW9kWmVxeVpoXmBnbWdpbGlweH2ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Be3uIk4l/aHt+a3R8coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb19hbHRhaHCJeWBzdF5jZJugkG5cNVmvtXVqgIl9koZ2hpiHdY+MindwbIWDh3R5iXiJfZOIen9zZ3aIfn2Xb3CGfWh3eW5leoiEpYeBh42Kfm5+dn6AfIuXhoGTkJeIi4SJfI+Jcnx9hXxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIF+b3d5fHR+bVdtfnZzioGGd4d1gYl6d3NuiYCOf4Nyfnx9koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N4aldZWVphcYB0YF1dYGZkaGhmTlpoTkFhZFtgdmFcdW1YWFN0YVpkbnJXal5iaGtnbWxpcHd8k2xphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3hH97io2Pg2p+e254eXeKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHFwY2ZeWWdfcHBgYGhwZmpvinRgc29bYWRpdnt/vpymo8i4coWDc5R9eIeUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cWN3hnmAk2lyhHVmd3ZjanyDiJ6CgH+Ojn1yfnODeX+QjoJ3lY2Uj4eCiHqJiW15eX51aHppbH95c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp9fXF7dnt0fWFVdXxyc4mDgnyCcIaKd3hwcIOCi318eH18dY2FgnZocWhsiIJycF1oY3RvS2V2TF5vVVRac21iUU90eGFSV1hcYXCCc1tgXGhlZGNqZFBbcUlEZGFcZHFeXHdoVVdWd15cZW5oVmxeYWpnZW9vaHB3e5NuaYiLeX5ze355goGCfHZ9g4iGg3B2g3Ntd4ODfomLlH9wgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1zYWBhcWxsaIltX3NpWV5kbYB3qdqqx4aHsnKKeHCNdXuHkIF6lIqAdXR1fneAcHF+bYV0lIZ4dWxgeoF5iI5mcYNvZ3VuW219gZCTgIF5kpJ9eHtthnV/j4qDc5WKkI6HhYV7f4VtdXZ/bmh3Zm18dm1qd3Z/f3xhYniGemh1dWN+e2d0ho6MlXt0gHVxgHp8bH9ZVnJ9b3SDhn9/eGuIhnN4a3V/g4J8eXx3e3KKgHxzZ3RlbYuEbXRba2B2Zkhub0xbY1hXVnhtYlBTdHZYUFVYXmBxhG9cYGJsZGNebmJUXXJHQ2ZfXWZoXlp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniPdGuOjXV/dnh9d4GDgXt0fYOIiINvcYB1cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVZqdGNgW2hvcGeHcWBxZlddY2t/fMrOh7mia21ui21yhXJ9hYt/e5KFenl0eXV1e2ptdWOEdpKCd29nX3yBeYuJZXGBampxY1hte4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmNueHJqbHF3fXx6XWV5gHdpdXlmgnZndIeMjZR8codqbn6AeW18XVhwfW1zf4p8gW5uiX9wdmd3foB+f3V7cXpzhnt5cWVyYW6MgmxzWGtfeF1Jb2xNV1ZfVFV8a2FPVHVyUVFUVl5idIVoXGBqaWViWW5hWGNwR0FoXWBmXl1We15PVmVwWltqaF1XZ2BfcmZqaHJocXN2h3hulYp0f3t3fnmDh4B1c3+GhY6CcHB7eHd1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXJha2RXW2Bpf3i+rnuft25ic4dodHxyeoOHe36NgHh4c3dve3Zlam5hh3WOgXNqYl9+eHmKg2ZwfWhqa1tXb3iKo4GFf3GZk3GAeHSBbH+Bj4ZylIeMh4OIhX15dHJvaHlham1hbXZrZ2tsend6d1tnfXx4ZXN+boR0ZXWGjYaVfnCLZmt6g3RsdGJbbntrdHyLeoFmdIZ9bXBodX53fH1xe2t5e4F5d3BlbGFtiX5tblZrYHhWS2tsT1JPaU5ZfGdiTlV1a01QVFVeZ3aDZl1hb2dmYVdpXVxsaUpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbGRyZ3NwdIF4cJmFdoB/eH98hYd9dXOCh4CVgm5zeXt7c3KFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3eanZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZlddW1xbVGRwZV9YY3J1aXZvZGViV1xcaIBwb3KAc4llZXl/anR2c3ODhXiBhHp3dHVua3pwYmdrZ4Z0jYRuZl5ffG97iX1obXdmaWRWV3Jwjad8hHx2lpBzfHJ7eWx6eo+Edpd7h4aChoN9dXBybWd1XW1pX211ZGdmaXpve3JZZ4F2dWdwgHiCdWF3hYt8lIFui2pteoFxZXJlYGx5Z3J2iXp9YXWDdmlrcXV6cHl3cnxmfX5+eHZuY2VhbYZ8bWtWamJxVExqa1BMTnBIXntlYU1VdGRLTlNXYWp3fmVdZ3JoZV9WY1dicF1LS2tYY2FUU1RzVkxZdmVaX2tgXFpjZV93Z21icGlzb3F+dXSZgXiAgHiAfoWEen12goN+mIVucnR8enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gHZ7o6aKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGF0e2ppbWhgYldfWmmAaWtvgGdsYWh6eWt0dHRvhoJ7gH12dW56aWt6al9lbmiBd5CEZ2VYYndpfod6b2lvZ2ZdVVhvaI+ndoF6fJGOeHVvfm5ydHiOfneUdIWCf4WIdmpydmdob1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdgdoSEeI+Fc4hxcHl/cWNwaFtudmRwc4d7eGFygHBnaXhzcWt3dnR2Y4N7fnd1cGNjY2x7fGtrVWliZ1RLbWlQR1JsRWF4ZWFNVHJdS01VWWRrd3plX21waWRcVl9Vb25WSVNoWGZeV0xUa1RLXHpfW19rXV1bYmVgemhsYW9vdW5vd3V6l312gIF5gH+Hhnp5eoN9gZOEcXR0fnl2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyfgHqIh4RscoJ5doGAgnRuh299gHSKgGpvbmRkWF9aWltVYmpnW1pfdYJpXm5sXGFWXFxrgWVydH1pal1sd3ZndHdybod8fn56dnNsemhqeGZdZHJneneSgWNjVGRvZ4KEd3ZmaGphV1ZZaGSQp25+eICLjnpwcHxmeG55inp2jnGDfX5/hm5kdnNkaGhdbGJecG9bZ15tdWV6aV10gG9ya3F7fnV1YXSFinuHh4B/d3J1fnRhcGxZcHJicXGEe3VkcoBsYGx6b2poend0cWWEdHl5dXFkYWRscn1qbFRpXl5VTHRjUUdXYkdjdmVgS1RwWEpNWFhna3Z6ZGVtcGZjWlhdWHZmU0lcY1hoWFhIVmRQSGJ5W11gbFteXGJkXoBpal9vdHhub252g5d5coGAfX+Ji4Z+dXaGeIaMfXR1dYF5enqCjI59foSJanSWgXuKnX1+hXmAe358hohzcY+ujHx7hpB+ZnGIenR9fXZyb4Zte35tj3picG9iZV1lVlpZV2Nma2BdXXOGaVlxblteWFpcbHtjcXd2bWNbbXN0aHV2cW2FeX+BeXdub3RlaXVlW2d0ZnZ2kXpfXVNlZmqCgXN9YWNpXFVYXmJkkKVoeXSDhpB4bG55Z3dse4N5dIhygHh7eH9oZXZtYGZhX2pgXnVrWWVdb25iemZbeHxrbm5wd3l0dGRyg5J/h4KIenZvcXxyYXdjWm5vYXBxgXtzZXGAZF5tdmljZnh6c2xtgXRzfHJxYl5lbW59ZWlUaFlaVU55YFJLWllIY3RjYElUbVRKTVpWaWxye2NsbHNjYVlaW2F3XFNKY11YaVNWR1hgTkdqdlhfYm1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCCkoiEgXZ1iXSLhnRxdnaBd3x9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3Caont7gImVeWR1iHlzeXZrc3B/bHl8cJFyXnBvYWdibFRbWldoY21mXFxyiWZTcm5bWVhYYGx2ZGp1ampfW210cW10dHRrhn1/gHx3b29sZWlxY1trcmR0do9zXFZTZGBxf35xglxhY15TWmFcZJOfZXJxhIOQdGtqeWxub3l5enGAdn9yeXp6ZGZ1Z15iW2FoXF53aVdiXnBoYXhhW3t2ampyb3d0c3RpcIGUg4Z+hHZyanB8bWV2V1tqbWJwcoB6c2Vvfltgb3FiXmlve2trc31ycHdrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmBHVmxSSVBaVWtra3xlbW9xYVtaWFlscFdST2ZXVmhTVEZZXE9JcnVZYGRtY1hhYGFejGpjZG15eGtvaXV5hntrhH2AhZl8goR5fYhtj4Zxb3d6fHSCgn2Lj4OClnR4gpOGgZ+JdYF/gXR/gnCHgnVvopd0e4aLh3tmd4tvbnxwZnhxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9uXVZYVWdpdGhjdGVlXVpudW5wdXV6a4h9gH2Id5BzY2VrbmFcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFpgWmOWlWNucIOEinNqZ3luZXJ1cXpreXR1bnp+dV9mc2NbXldiZFlhdWZWX2FtY2FxXV1+b2hpc3FzcHV1a2yEk4GJe4VxcmZue29xblNaZWplcXOAdnNibHZVYnFrW15uZHtka3V8cnJyam1gWWNpanheZlRlVVZQVW9YUVdUUEhlcl9hRlhrT0lYVFZtaGR8aWt3amFXXFVbdGRTUlZoUVhlU1NIWVpQTnh3W2BmbGlaYmBeXo9uYmZreXVubml2dn9+bYSAfoaXe3+HgYl+a5OIcmd0gHt1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd5c3ltbXF2g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbWBVVlNvZnNsZXhkZV1ZcXVtcnt4c22JfIF3nHt6bGJlbG1eYG5qZXB5fmdaVlhfbHh7e2+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybW57gHJYam5eWV1WYmRYZXFkVF9iaWJibVpgfmtma3N1bm13dmtohYx/iXqHbXFmb3tscWxiWF9oaG9zgHNzXmltU2VwZFVibmF4Ym91e3Vqb2xqX1hgZmh1XWVWYlZTT1lnU09dT09IZW9dY0daak5KYEtYbWRfeGhufWRgVV5UXXRbVFJfZk5cYVRTSltZUVp2dl1fZm1oWGJhW16OcWNnandxc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZnFtBRERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJyfUjE1NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6IhoaGhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkYuSj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY6Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY6HiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjIWGj4mMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiMh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiI2HhYyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+Mj4yLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSVlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpKUj46Uk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkZGSkpN8hpSSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSj36PkpGTiHOMk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJCQdHaQkZB4dIqRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5F8aH2RiXV2iZCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6OkIBiaop+bHSIj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOd15qZmljbIqOjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4Zkb21baXJrgYaDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3b2Nxb2Fqc3FlaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhjZWtuc3BydWxjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWVxgYmNtb3BwbVpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NT19oZmxubWdlUVBTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTExWZG1mam1tamdcU09PUFFPTk5PTk9QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLR0dPVWBobmhsbGtqamhkX1ZPT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUVTXmJmaGptbHNwamlqbGtqZlhKSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+Pz9NWV5qbWxueXNqamxmXFJMRUVFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7O0dKPkdZam93cGtpWUdEQUVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz49OjtEWG1sX0hBPkFAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTo7Ojc3U2M9Nzg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pj09PTtFWTk7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XW5APkRFPz9BPEVcPT09Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttdkg4Ozo9PUE8SmE8PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnZ3TTc4ODo7Pj9XaUE7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+Rmp1TTo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDg4OAfV0+QENAQD1Kc3xZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/Pll8gF0/Q0VJSklJTU1LRUNGRkdFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEZIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoiIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKjIyLiomKi4yJVDo4NjU2NzY2NjQ1NzczNTY4Ojg3NjU2NTY3Njc3ODo2Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUE9SVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmLiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg2ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKi4qJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3V4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD49PT5APz4/QD9APT0/Qj9AQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQkBCQ0I/QERIRUNFQ0VFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUtOSklLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5LSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUk9OTExMTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdFQkdKR0xKRktOS0tKSkxNTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQUJCXG9yd3h5enp5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUU09MS0pERUZLT05PV1VRUE9SU1NNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1JUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLem5wWFpcW1JTUlZWVFtadYNZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSU1VjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JRUU5LUlRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk9GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fX58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUxUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUdtcnR4eHl7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3Njc1V3BwdHd5ent8fX19fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3J1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSUBGQUFARkhFSk9IUVJhXFFQUk5TTk9QTExPTUtNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwdHd7enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QUBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSUVNT2JlUU1OTldLS01LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFRExNUlRMSklNVEdJSUpMSktMSUpMTU9QUVBLR0NLR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0hGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUhFTklCRk1MTk1PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT09OSkpITVJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVIQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pGSUZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRkRDSUlIS0pHS1JNQk5PTVFPT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOUE1OUE1MTVNXVlhYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZERUhGREVEREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBfaGVjYGRmaGdqaWhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRD05Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllcX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdm90TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSUVKSEhLSEZGTElISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPU1JQVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RHSUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUtFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5MTU5HTE1JTEtJSk1JSklKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVFQ0FCPUJBQkZESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpKS0lISUdLS0tMR0hLS0xMTExKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSExKSEZHR0lHSElFRkxJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEREJFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0tJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnV2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0VGSUpOS05MSExOR0hFPkdHTElLS0pMS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk1NTExISkpISkY/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0dFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVV5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU9ZYlxgYF9iY2JdYWJXX19UUE5PT1dRXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTExMTUtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQkVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVFNbWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZkRU1bSV5bcm1PTVVtWUxDUGBVa1dnSl1YVV5ETVFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqU1dWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRklLRVFWTEtOSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSVFSVFlXV1FUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15d3JuTktTdE5DQ0ZQUEhKS0pLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZHxpcnxeVExsYHZ1a2l1fHttfnhrfHBdXl9iW19iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUhIUlBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFgUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXVlXXlZUUFlSVldXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JYVlRZVlRZVVRSVVRUVVdYV11aXmFdXFpaXFxgY1tdYmNkZmRlZGFZYGFjYWJoaGltY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1FQS09XU1BOVVBOUU5LU1BMT1VTTlJOTU5RVFBUUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laYF1VWF5cXl1cXWFhXltiYmNnZmVkYlhfYWJeYGhlZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWVZcamRWWFlaV1ZTVE9KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYWFVSUlhWVlpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRiWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1dSV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldXXF5aXl9gVWFcYWFeYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWVpXVU9STlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYltjYl5hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1BOUlpTUlFUUlRVVEtRV1ZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFZUV15ZXV1gXWJiXllfW2ViX2RkXl5jY2FeZWZpZGZeXmRhYGFiYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVlVUVBTXFRVVFVUVllXTFJaV11bXVJPVVNYV1ZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVVNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF5jYmJlZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX2BhYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjX19WW2BkYV96dW9oWVxaVVhUV1taWVxZWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWV5eWV5WU1lXWVpdYlpeVldbXFtcW1taW1lZX19gYGRiY2RlYmRaYmZjZ2ZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZUVlRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFtdWFtgYV5gZGNkZWVmYlljZWVoZ2ReY2FgZWNdZWlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWVhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXGBiXmJkY2VmZWZiWmRmZmlnY19jX2FmZVppaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExYV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcZGdgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYWBeW2BhYmViX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx8fHx7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/PXWNiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMwc5CMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh3eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV6fX19fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2d3p3eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHt7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl9enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en59eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4fHl8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh5eHp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3RycXBwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Rzc3FwdXdvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNyc3NycW+Qg25wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdox1cnJvfaB7bnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFynZVxcXGVontvcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcm+Pr4lveaKiem9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycIiypnaKrKR7cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjbOopKaxqHZxcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3ahoaO0ppukfHNzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4d3h4gqefnKefo6OSenl6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx8fHyLoY6PmJqZm5V7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX59f4inp6OdoJqTmIF/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgYGAjbKnqaKgoaumhH6AgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CAf4qprp+po6ChpamkjH58foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gYiVqq+knKShoKGhoamroI2BgIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDg4aMm6ajnZyan5OYoaCenZ6hoJSFgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoSMlJaXl5mYh5Cdm5ucmJGLh4ODg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIKDhIyWmZWJkpmckouHhYaHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYKBgYSPl5SWmZCFh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCg4OEkZaIhIWDg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgoGHkYKDg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgIiSgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKloiEgoSCgn+AjJaCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCSmoaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9i5yNgIKBgYOChZSTjIGCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYCPk4uQgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhIOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSko2KiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGg4KCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHiIiIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoaGhYOJlJOQj5COioaEhoWDgYGCgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fH19g4eJioqHh4WGh4eHh4iHh4mHiIaIh4aJiYODhIOFhISFhYeIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYF/f4B/f4F/gYCAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkoyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4CCgoGAgoCCgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOPiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX58e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhISEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fH+BgX2Gj4F+fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6MiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Oj46Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2OjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx6e3p9f4CAhIOCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiIqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6enh5e35/g4OEh4mKh4mOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjouMiISFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBgoKBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgX+Bf3+Af35/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoODhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeHhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXd0dICAgoKCgoKDhYOEg4KDhISEhISEgYGAgH6AgoB+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEhISDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn1+fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH99f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3x8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAgICAgHyAf4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3t9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KCgoKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGBgYB/gIB/gId+fnx6fXx7fX94d3Z5eXp8fHx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYGBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/foCDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKChIKCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OFg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEhIGDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f3+EhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoaEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hoOEhIOCgX1/fnt8e357fHx9f359fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGhoWEhIWFg4SHhYOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChIWDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBhIWCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIeGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhYKFhYaFhoaHhIaGhoaFhoKDg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXyAfn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDg4GChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT09PT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19jX19fX19fW1NPT09PT09TU1NTU1NXV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enpq65uLi4uLi4uLi4uLi3vdPT09PT09PT09PT09PT2+Li4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKSpaOjo6Ojo6Ojo6OjoqvT0tLS0tLS0tLS0tLT0d/q6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFlaakpKSkpKSkpKSkpKOs0tLS0tLS0tLS0tLT09Hf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NjJqqqampqampqampqamosNLS0tLS0tLS0tLS09LS4Onp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q0dLS0tLS0tLS0tLS0tLU1NTV1dXV1tbW1tbW19nZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz8/T08/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dbW1tbW1tbW1tbW19fW1dbW1tbX19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz9DQoZbL0seSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PWp6Crn8+ZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqvypyWkKG0lYadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeas7+boKiZtb/Jl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbLMo6CLn8TTkZmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZmx2ZjHyZTYraO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZs8iclZWku82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrexmq+znaXQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpZm3sZ6bopyckaeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qOassmdqKGjnqiiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPXr42RpdSako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NTU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cLU0tXAvdbU07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjY3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDS0A7Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE+SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFBP0pPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFDQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0JHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29zc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NjY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTU0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE0NjQ5ODU2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNDczNzg2NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2t7a3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a1tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ0NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqysraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqiop6iopaaoqKinqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqKWmp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp6eo6Shn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpyioJqWlZWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampqanpqagm5mboaCXkp2gl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6emop6dn6Ggl5ioopSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWlpqampaOgoKGhn5qgdI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWlrKakpaSjoqGhnZumgmGUmZuZm56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGipLa1paOkoqGhnpuco11mmpmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKalk7GioaCenJuap4VVbpyZmpyZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCgrXqMrZ+enZqanKZnXXGcmp2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCgn6mNaZynnZyamp+XamdynZuenpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ6fnp2klnR9qZyam5yii2tpcJudnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJuaoJZ7d5GdmpyenH1qaXKbnpydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZmqCgeoqFkJmdnpKAa2Zzmp+cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5mZmZqboJegfXKZpZt4joZpcpufnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmZnKufinFgp6mdYXqJeXSenp6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmJ+tjXBgaaKQk1RfeXuFoJ6goJ+enZ+hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZenp3RFRm6XgHtQPlt2hJ2bm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpuWqZpMREZwlYJxUkc4YHiOko2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQlax1XXhfg7avpWJ2fktqfoiCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDf5KoYI6zjM7DrMClgJV6UnqCgZKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6Kl3LQ1snXrZ+6s2NkcFpugYaNjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqEf4J9kX+QzbXCzsi/rJR8qqxfaImMjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Mi4iSi5h1mKKNtKqdnoeCcGjNgGCLi4qQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp6co6GdipB6hqOMhIl3dG12o4tmho+MmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmsqqqvp5l+W2aGeHh/bWpodXZ9d4SjoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqqinqqyHcVZbdHFyeWllYmlpcHyLo6mnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppmepaWiorCecWtSUnZ3dHtoYWVmXl9vfIugpKCgn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq6osLKsgGhmS05wdXeAaWBiaVpdYmt1g5GdoaCdoKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaeprba8vr2sjW5oY0ZVbm98fG5gXmZaWmFiZ3B4f46aoKGimJaem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+8xsvNxremj3NoalxCTnBudG5zZ2JhWVhfY2FianF1eo6hqJydoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrtMDU3dvLuaubh3BgYGJVRkV1bmBfbW1cW1daWV1bW15iZGVoeJKnr6almKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWl2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tLfF0tnWya6ReGZdWltcVExBa2qMmI9ZVFhXXFxdXVhVWGByiaGyxcO0sqCnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vb7Bx83QxKB+aV1ZWFdTSVRsp7OoTlVeYWJfX19mepavv76+wMKytbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcbAvLnMybmXc1xVWFRRUpyzn05ZXF5dYG2OqrvBsranprG1q7WyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QkJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbGTv7zL0L+YalhXWUySt5ZNVVlYYH+mvLCmq66zp6qpqautrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG96amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm1wLizvMHFv6l3V1VRir2PTVNWW4Ogprevpa20tK2vpaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodVpmcnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+uL3Bw7/Hu41jUWF/ZVBTYI2qn6a0sq2suLWzq6mjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8TExsrOwo1SSVBRZqe6t8C9vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXDxcTJzNPTlk1NXKrHwMjNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlldW50Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8HCxsbHys1/SY/NzcfM0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vcHBwMDHpk2k0czFydHBr729uLm7u763tLG5vrO8vrG5tbi7try0tbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjY2piZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv729uLvAxLBTns3EwMHJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y68vrvDtbrHt7a4u725ubW6w8irVJfIv7+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MV5rcu9x7e5uK22tLe6tLezu8XKoFWOyb+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3Brc2ZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNivdoS+yM/CwLiutbW7vre6sr7CyJZbiM3Cwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam50bndjZ2JcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRm3R3sdHRzMrEtbq/xMi+vrW/wMCHaH3NxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgnRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwoh2d6jMzMvNysbCw8vOwby5vbuxgXptwMfEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qt28O+tr7Avr66ppyqs7fEwKZ8enyfxMbLyMHDwMDJysHAvLqypZaIebPIxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF1cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W2bq/Ovba5wLyqfW5obm10gpeZdXt/nL6/xsC5wLy+xcS9vbixrqarlpSiysPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXtwbmlcX19ZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozs9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsXaCtL22tcGkhmlaXmBOU1tccHZ6haS4t8K6s7u3u72/uru7rqWtsqGlh8HFw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnFhX2ZdW1VKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEeIuisLWcamZnVllfSUlNUFRve4upsLe+ubK1sry5vLa5vrWZsb6us3iwycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aoh3t2jKGYX1NDWVVIYmpVT0VKZZGlr6+2urW0sqy8ubi1uMG9j6zEtLR3p8rCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnJuY11mWV1dU09OQT5KQkBLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiQbk5LQGVZQk94gZNoTUNehbG1s7WytK+su7q4trm/xn6TuquiaKu/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiFfFhGQU+HWElKWXiOg2NBVaO5s7SysLGtsLm4tru3ur2Up7Svp3etsKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0bmVVYWNXXVFPTUhASVJETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlWhNQFN5cU9JSUxpnYBaRVWwurGss6+urK22trK0ta6ppp+am52fpqieoKipn6GnlpuXl46dlI+Qlo2Xm6SooKCioqKlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlUUE5HUE1MQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpbxnRFOcflBYSUthSleOYmVlg6+1qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5ibmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTUpIR09TTktOSDxFQDwyPzg1OTs+Ozk4Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8qfT0F1mXBQbUpMZGZ2dGFdYnSSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5mhnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNVYEhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylx8aLV1NKZqRZZn1vcltSa2RcZ2JgbZG1sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnaWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTW1lNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVanJ3dXBjd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfHh2and1Xm1bUmBIUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo7OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKR/b4JwYGNXS1tSWkxMUVlSSE9OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl3bWhtXFhbQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0/QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/tru7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXt0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pj08Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZEO0M+Rjw+OTZOfqqyp6OjoqCepaumnpiclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDysnDwce/urS6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtjaW94a2VZW0ZLTEVEVExEQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVl8b2FBPVyOrqygmZubnp6Zl5eXko2Pl5eTjo2QjIKDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzMzHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxsK8w8G+v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0uGnqSYg6CyraOenJ+amJeUkpSWkZCPjIeEg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcXJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B7cnV2Z2NndmpkVldRRE5GQEpRQj5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NTsNK9sq+mnJycoKShnZqUk5WUiX14cWtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cTQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAyMjKxMzMzM7PxcfItr/KwNLNzNDHysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJiXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NbX19fT1tDV1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR2NLX2dTVzM/Pys3Sy87RwMbDyMbPztHR0sjMzcDLzMbTz8zPyMXLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J3d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/N09bS0dbNz9XV0cXR1MvQ1NXWztPR2NfX2MvIzsTJz8zKzMDKwMnKzs7Qy9DOzszPz8jM0NDLzsvDysfJzcvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcW9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycvLz8vOzdDO08zGyc/NyMfLxcfBxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5kJuNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7Fw8fAx83IxMzLzM/IxMTQyMbCxsjEv8HHzMvMz8LLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn5og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybvJx8XKwL7Cy8bFxL7GvbzBw8XMxca8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWltYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2tjZz8vSzc3OyMG1w76xr7ZsX3p8oZGLkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u6xsO/vMHOw8a+vrXBvcO7vca7w7q0vMbEwsK3v7a2vr+7zMO9trrIu7++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZIS0FFQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDF1dTV183KzsXJxcfBucW9q66mYGR2g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusG4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra6v7TFt7u1q7i9vsC9sbq2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl1WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxNDN0s/NxcfBxsC/urfJtqqwmVtocIqPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmtubnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMi5w7atqqiwssC2uL2wsaexs7S7vKuutaautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzd3ZraWBibGhYWFdbQUxLTUpFQUM/RkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJJban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWVpcZW5vaGZoaWtucoGturC1rqWlp6eaoKSgmpylq66kqKKrqqyrsKOmn6qttLaxvbmvt7Corri0s7y4tL2vuLm2srzBssCupaijq7Gys6i9qquoq6yttbOlqK6hpK+psqaoqK6lqLessbO3urq7sry+vr7Ev7XCwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9jV1ZYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2kmpeRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq0q7S6sba2rra5s7C6urG3paCkn6axqKuouaqkpqeop7KtoKemn5ukpqyfn6ejoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSgg3hwbGJmYGtvYFVZX0hOZ09UR0ZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYV5cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflpWaoZabopiVjJ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqbitoqamoKitq5mgn56ZnZ+lmpqjnJyer6mrqKqrra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr7AvsPCu7q9l4R6c2tfZV5kZFhUV11JV1xLT0dKSkdBPD8/QDs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2nnJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqCin5yjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2hq6ejo6atq7KzqrWwsquzubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSFeXVmX2ZeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5s7+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuTk4+TlpaelpiTl6CdoZyWoaGppJ+fqZ2bm6unr7CrnKOkuKqhoK6otqqnp62xpLiwpLego5yZmaqnoZqsua+ioaScoqCgk5ShlJaWm5iYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6insq6xtK+8tLq4rqOUgXp2ZV9hVllYU1JTS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYGVkpSLkZOTmpiclZacn5yflqCgp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWxrqy1nqGdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6usraaorq+vq6iqqrOlpquvtLGuvLaxr6+gknp3cmVhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlZW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2RpgJKSiI+Nk5GSnJSVlqSZoJedoKWiraalpaOko52qq6Wan6WxqqChnqWrnqiin66sqamuraKiopWXopuckKupsJyfop+fl5iTip6RjZKTlpCYmJOcoaOdpKGilaCipaabo6uloqSrpKuupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycG9gW1dWVVJGUE5IWlxQUklUS1NMRUdKRDg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcPJrbG4wbW8wLy0taqsppWZm5uIgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2Nj4OQhY6QjZmTlJKcmqKcm6GpqauorKeppqSZpa+llZqlr6mgnJmboZ6vmpyrtKClpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnaKgpJ2co5WboKOhl6Koo6Ooq6Crr6Stt6ajpKKsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExRUklOSkM9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+op6+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLGtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2FlfYuAin2Kj4mSjZaRl5mioJugq6qmr6yosaWpmqCtoZWWpainnZiQj5qerpeZqKuZn52UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaaoqKigsbCmsb2on6OstKqup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExXTUpNT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxsLG3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp/eX50h4yGkImXiZSUmJuYnqmboKumpqyeqJqhppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5OLjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqGilpSYmZWippmNmaSmqaahoLSyp7K4oZyitqypraSysqa1vLWrrLGjiXlzbl1OUVFMT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlId7g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnF1b4OHgYd/kIOOipSRk52hj5qco6KkmaWXopyVjYiZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY6DlH5+dIqNepCHk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrJ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE1DU05MUE1CUFFISU5STUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62ooqaSnaa2raOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWpqcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPloqAlIlfO1ZvfIyUioGMkoyQhoZzioWXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjH2JgZGNkJeamJOLkIqdiJ+Yh4iWnpqhoJenrqmtqKielq2zoqaumayrmKi0o6mto5N/c25fW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1PUlRWWFpgbG5neoFzUEI/f5WSkX2IlYyEio2bjpaVipKIhpWHeYl/YEpRbniLkoR+hI2LhX9/bn9/lHh1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46RkpaMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpuwqqGkpJGmqZaiqpyipqiJdm1mXltIUVFTTUlVTVJJTEtPSUhGSk5MTVRLUVBPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK9pp6VjX+Jk6iWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4V5e2h2e45wcm14gYuNknh6gHuAdnNyknhndYSEhIV8lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYV1cSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQjw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MjQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiysKGakY2UgI2cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyGbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uFgoOFfnd3eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbWZjWlhYVVFKU1VUT1BOUFZLTktPT0pST0lOUExGRDw8Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKCYmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3ONiYSGe35/e3ZvdHSGgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9ub1hWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZmZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+fYN0ZmV1f4SEhYBmaWx1a3GAfGhxcXxuk42PfHR+fXFwbnVtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUlpXWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgGhnYmpucm1wgnVpb1h1cI6bkndsf3p9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0hMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opl5foaBhJmEmpxhhqqfnYuDkI16d4h+iYmOc4uXj4R6XWRxdHp8d4ptaGpieW+FkIJ6boF3dIR6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEin18gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTi4KLgoSSqYeAmJiKm3RtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtb3d+gHR0cmxbXl5bY2NYZ2VbVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6toaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGlocISBdI2HhIpxhoJ3h397doV9bnZ1Zn+UjoaJiIeIh6CropaJjpd/eoKIeXlvZ2t4fnt+dGxlXltbXmpdYWZgWk9LTldSUUlQSkROR0NKREJBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzk7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUElJS0tLTlZfY39nZ211nZuPmpKTi42OmoiTj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomOj5aktambjZSig4eTg31/a2pqfIGBgnRiXmRgW2drXWxrXldLR05SUU1MTEZJUENETUZBQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhZCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsoiNl598lJ6bjpKVmKOiprawnZGZqIeWj42BiGxzc32AfXJpYF1iYGJoZGBnZltSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKmPm7CLlaOmt7qboKOwkqKdop6Qo6Grr6yytaKUpKqImYmSiZV6en2Ff2hhaFxlY15kZF5mZ19aT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0dEPD4+RkhDRUE3Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rK+1orGrsbW7t7SutKCnqKOnmqmvrbK5t7inm7aojKSOkZKfhniCg3ZaYmVXZmJiZGBgZmBbVElERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6GgIaIhYqHkXp4bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7q4vre6t7msrLCmsaqtvbC8u8LCrJm6qJOtj5eXqol9gn1rV2RiWWtlamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSAjYNuenN4h2K5oZmjiZSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIqHhn2Kg4GKg5V9d3p1ZU9cZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYGBNU1BFQT9JS0hFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC7t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3CyLCeuamhq46kp7aIgYFzYGNiXlhiYGlnUlhgVlFVSUVFTktAPkdEPUpBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJzc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot+g4CDeHuLg4d8i3mBioKXfnR9emtlcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEdBSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura5tbi5sre1tK62tplkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1tDJzNLMz87Kxr+/wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mYB7bV9hXVleYVpjY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTREM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CLiHyBhHN7ioOFe4l0gYmHlX9ze3lrbXV7aHJlaWxpZmppaGBmaWlsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6uNtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy8/U1c3Tz83FwsnQv8rJysnRx8zNwtDSuK/DvMS5pba6w6KDcGVeXl5ZYFdZZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4WNioqKkId8hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bnhzbGiBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SjjrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzcvS09TQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t8+eenBmX2NdV2BTXVpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6hi4yYk5OMi5OPloR5hZCQjYuKh5GHf4J7cn6AgYd6hHWFk5CIf292cmtzfHx3e3OBd3FqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3h6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8PMjHRwZGFgWFRZVFxQS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiOh49/eIOUmIqNiIiLiX6CeHN7fYOHd396h5GWgINud3BtdX92eH10hXx5bId2dG59doR1eHydtYw7QYrFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvMtHl3cGZeW1NWUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaFiYKHfHiFlpaIj4OHhYZ6hHlxenuEhnV6hY6NnXmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6jIeOk5GblZ+Vh4yTm6CbnqqfoKycoZqYn6aen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjZSMhnybiJSPrqqUlZifmaeutb2prb7Hy8nJzMvQycPSytTX2NfY19Xb19PZ29XQ29rR1sjUy5V7fWppXFtQU1ReSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR/g3x8hJiOh4t+hoaAd4J5b3t7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4i3xaTBybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkIOJjpaZl5alnJeflp6SkpejnZmrlZCQiY2RgoyFiIiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcnR1tXV2dXX29TX2drb19va2tjO3MaHfXtpa2dhVFhVVU1MRE5DOz09PDg6PD45PUA2PT9APD8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH5/fIR7foKRiYSFeoSHenV9dG18fYZ+c36SnZGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqI6Pw6G9jJyjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYqQkpWPnZqTlJCWjIuVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNg4aEgKWHi4u4mJ2RlJaip6Gdnp2jr7e6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4ent6bWtnWGBcU1BPSUNMQj08Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlhfVlhmbW1taYGPinFzeYp7en98f3uHe3x7i4eBfnWDhXlyenNtgH6EfneFm6GanpSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOioJCkrqCLkYuFjIGThldyrYufq5uPg5ibj4+OXIKikYKMn5OUjIaIjJKTjJSUlI+Lj4mHlpudj5WWkIuSk4WAi4iSjYqKnZaZoqOGk52WoIqJiI2ckIOIj4CDiIWkhoyQs5idkpSXoaGemZKcnaiyuaymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F/dmloX15YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+koNvbXiLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1+kqajn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4manqOSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3HlY6Gh4mQko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjo2Bf4iQpYmNk6mal5OWmaGZn5mTnZujs7Smo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoNzgWllYF9fT0pVW0JBRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go59fG1+iHh6fnqBgYJ+dnaAgntsbot/eXx4eHyEh4t+i6OzqKOrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5apma2vpJeVlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmZOPipCLl5qJipaOhn2MmZ+KkJCcmpmTmJiflKCdlZ+bobKuo6W3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYldiWFBISk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISLentthYZ5fIR4gIWBfXB4fX18b3ONen2Be3iGi4mFhJKou62osr2vpa6zs6ijorCsipq1nqK4pZWspJeprbempKOfmamYqqSvsKmamZyUlZGYoJeZu7utyaBptrirsJWYn6Krkpe9o16qsoKJio2Vh5F8j459g4aNj5SUiIeSlouPlY2LjZeZkp2as5aVq56Lm5SSjZCSjJibipKekIyJlZ+ijZWOmJqdk5uYnpShoJScnKWvqKKls7irwsjEtbu9u8XIyMLRocbJzc3E1tbQy9OicXxqXlxVYFJQRkQ+PUNBQjg/ODc0PkY8PDY8MzUzNTU0NTNCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqGjo6mvsrGqnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynmrGakaudjpmPko6VkJCWl4+RoJGIlZukrJSWj5ScnpSgnpuYoKGUmp6op6Sho7CypsHGw7Cwu7bFxMO+zafHw8fDvNXQzcTKiXV0ZF5cYVxPS0JMQEVGPkE/Qjs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn58gn9xfoF6lXqSlJSYkZOVp7TGycDCzMHDuci8uq+rubuXsra6s8CupcCkqrC7u6quq6KinqerrrWwqpugqpyinJWesLSni6K6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYoJeSmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOelJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxb7DvLPRysjBtXZ6bl5aXWxUTklDTEpKSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAfI1+d4eBgpB6jaGWqJqamLq+yMjKwtLJysLNvMGzrbu+p7q/vrzDt6zBqayzu72qsKmkpaOrrrSutrWgn66fpqKYo7S9qZuovMCjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6fk46Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppGfl6Wko6WenqaYnpWXm6Wjqaiisqyou8DEr6Wzt8zAua7Ds7u+wbitwsLBwJlwe2NaWF1cTUxNSUdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jCvcjEyMbTzc7Ny7zCt7C6vLS8yrzDwba2u62zv7m8ra+ooKmntq2uqbK3mp6toqihnau3uKmlr77Esb25s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZpmmKOfs6WWo5asraunm5+nmJmWmZWhpKimnrarqbq8w7WltLbLwbiqtqyzuriuqLi6vbiDbnBcWlZXT0dLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqZaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73FxMfHzs7O0sq+u7axuru8vs62xL23uLeysrWzuLKrppyrq7iqqaevsJejrqSnpKW0wLCqrLO+wrnAubOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWamZWSk5mapqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tpZqhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqurrbGxo6GysrSkcnBnXlxQUk1FUFBQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqa+YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca7w8TIysjHzM7Hvrqzr7m4wMHNtci6wLm1urGvr7K0p6ObqrS0qqmmrqyZpK6lpamtur+oq7a2vsG/vrizssKvt72ro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5WboKGpnqigmZqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuupaSfpamSkpmbiJScop6WsKepq7q3vrOyrr65tp+jp6ilp5ycrKmpjWVoY2BTTE1HSE5KVkw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uvmJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBusLDyMnFws7Iwb25sq+5tMDCyrbGscC8tbqrqK2sr6OimKq0uqappqyqnaivp6Srq767qKy8s7e9xry2tbjAsL2/s6m0tqu+pI+il5Gin7yfiZmgmZaenY+3n6mcpaObnKKaqKWzoZudpZyoqp6ZlY+UmouXiY2kopScop+gta+lpZOxq5qsrJ+epKOpkpWVoIOQnp+clamloqG0tbq1rai1srOenKKmmpeVmaqhnndiXmBeS0lHSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7DrZuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMG8v7jBw8HIxL7Nxru+ubKwuLO/w8i1v6+8t7m3p6Sqq6ygoJqqqsSipaispp6sr6yiqqi+uKasvbC3tse2tLm4vrC+wba0srSvvqOWo5aTm5Stn5ChoqWjo5+QvqWpnamsnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWspZyWsqeZsKifmqqeoI2ZlZ+FjqGam5KlpJqYrLG2saqlqa2snJmgoZKOkJWpn5RpZFphXVBKSUtPTUhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTaKao5uexayhn6ydna2fkqOelqSgp6qsl7awo6qztsXCvcC2wMK8ycK+ysi2uLW0sLO0t8HGtr6wuLS6tqCnraqrnZ6fpaTBpaCqrqCkqa2voqanvbWlsbu3trXDsrO3ur6xw8C4uK2ztLWinKSVkZOgraCYoZ2pqKuimsOtqZ6srpubnpmmoL2hnaSYq6urpqGZjZqfkp6Jjld/lZ6moaC4qqeTmLajn7OioJuvl5+PmZSdgo+gl5aNoqSVkKaus6upoqKlpZWVnZmLj5GTpJ+JY2VbZGBMSUtLT0ZFQUZLPj1KQTk5SkpOXVFRSj1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcTE+en6GYnsSnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HDs8LEvsfEvcTKvbCwtq6wta+/xbW5sLC6tq2aqbCpqZqepqGnwq2brLGcqqKusKmkp723pra6va+3xK2zs8K/scazurertLatqqKllZWUo6uhn5+ZqKuwrq67sqagqamZmZeToqS4oaGkkq6vrKSmn5KhnpWej5GNlJ2ao5+ntKenjJi0nKOwmp6brpGflJeUmoCSopaPjqChk4umrLClp6KcoJ6SkpuUhYuSjZyegGNmW2hmS0lNS1NCQ0BJRzs7Rj85OU5NVV5SU0o+T15ePUhQQk1MSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm5/CqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLXAxb7KxLXAyMK1q7WosLiswMS0t66strqlmauxq6mYn6aXrbu1m6iwm62frrSyp6q6s6e6sreyuMCqt7LCvLTFp76urbe1qaesoZeWkaWkoqKXmKSvuK2ytbagn6ikmZSVk6Oft6OkpZWusbKlqaWinpqampWYqJ+fmKKerrKipo2XrpmlrJeanqWRm46UmJqFlp+UjJCcnpSLqamroqehmZ6WjI+ZkIGGlomUn3lkaV1sak5QTk5UPUJBTkM7OklANzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnKGlv6aor6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTCx8G5wcbBuqq2pa27rcHDt7eqrbK8o5WtsK2xlqWokaq5qqCnsJ2qn6+0s6qptrasu6uysrm3rLmwwbm9vqbDq7C3rqiqq6admJiqoaGgkZegsK6zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqWcoZedo7Owm5+QlKaaoamblaKflpiKlZiTlpedk4mQm5mUjqmpp6Ckm5ibk4eOmYt+jZaGjptraW1hbW5YUVFaVEFDRVVAOzpJQTc6WFBkXlBXV0RZXl5NTFJPX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBw7/JxLnFw8HAuMW9wbivtqert7K8v761qa6yuJ+XrK2orZenqY6nu5+lrbOeq6KxsLOsqraztbytr7G1rLC1scC5xLarvK+xuKysqaKxpZ6kqJ+kl5CYn7Kqs6mqs5mdp5uZlI2gpaS0rqeirKyusaeyrLKpo5ufp6SdlaGYm6i1qZeZkZKfmZ+hnpCsn5iYhpWYi52anZOKjZaXmpenpqOgnZaVlpSBj5WFe4+ShIyWZmxzaHByX0dZZlZEQ05YRFo5SEI2Pl1SaFxOWV1HW15dTk1SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3o6yppa6utqqutLmmp7C4xbext77BwrW0u8W+zMW5w8G6v7rEuMG5s7Wsqrq3u7q+taqtsbaYmKirqqubrKuPq72eq66xo6qfsa2zrq62srm2qa2usae1sLO6vMmyqrW0sbSvrqahs5+aqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC1r6OYna2nmpeemZmsuKKYk5CPmJyhmZeUrJ+dlIGTmY2enJqWkIqUkp6apaOioJmWkpKWe4uQhXuMioOLkmtueW51fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltdWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6y0t8m6tLu6v761tLfDwc3HvMS9t76/wLe/vbK9rqe6ure3wresrbG5lZemrquno7KqlK+6pK2ysaenorGzsbKxtbG4sqiuq7KnuK+1s8PFtqm0tauwramnorafnqaxoKSUm5mUsZ2nm5+pjaminZuVl6WlpLenorCzq6exp62wtaykmaGsqJucnZuUqriclY6Oi5mdopiQl6ein5aDkpaQnZyYl5aIl4+XmqedpKCSlpGQlnaEkId7hYKEjIxucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpK2tq6ajsLKzqrawtp+rtbnJua7Bu8O3s7K1wsPPxMDBvbS9wL+6v72zxKiqubG2t7+9r6uzs52gp7CtpaawpZ6ytayrsrCsqai0uay0s7WstKypq6isqbmtsbDHvrikua+pra2mqK2wpaOjrqOpnJ2bmq+ZoqOio5Csn6Ogn6GppaW4pKu0tKSqq6isrravop2jqKqboJmakqS0mo+JjYeRo6CWjpSeoJWThY6Uk52bmZaUh5iSlZmnnKCfjZKRjpF3fo6FfHx9h4qJcXRzfn1+XFJkbl5OWmddRkSWW0c6Tm1YYVtNYGJOVldWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGosKSoo7O0sbS1sbGhrK29y7quwbvGsbSttMLD0cTGvsCyvsLCvL+4vMWorbess7i8wbCrsq2hpKetqaiksKOrsaqvq7Gurq2rs7unt7GyqbKpqqalo626rKmxwrm0rLmoqKitqaexpamkoq6qqKKem6KslaSdl56Yq52hp6ihrKWjray3sbGgqaKfqq2wrJ2epqepmaOYmI+gp5iGg46Ki5+hkIyNl52QkIaIkZWgnZWYlYaWk5OXpZydnIuRkI2Kf3+HhXx3f4eFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2RcTlVWVVdQXGFfU09OaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqrKcqaiwtay4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMDDxLrAtMnErK+3rrK6wL+zrq6rpaiqsKmmqLKltK2qsK6tsa+zrLO6pLi0rKyup6ugop6wt6uqrbq2pLW1pKmnrKyqrKGopqaxsqSmpaGhq5apoJOaoKaeo6KqpKyinqaxt6ysoqWimqmqramcoaWko5igmpWPmJ2UgYKQiIWdoI2Kjo2aj5GLhI2YpJySkZuMk5GRlKOam5qLjouLfIeBgoJ7dYCEgX51d4ujh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqqwl6qorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK5wbrCxK6xtbK0vMG+s7KurausqLaqpa2wqrmvqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKS0tKC2rqGpqKuoq6egqquoubapqqmpoamfrZuRqKGdoKOipqKpnZymtK6npamio5elpqeqnKKjo5+ZmJ+Rjo+Zjn6HjYeFnp6IhIqLj46RjYSGlaKajo2akZKRjpOfl5iWjYqDf3SHgX9/eHWDf3t4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSY09MVVRVUU9YWmJWSFBqVFdTR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkU7lY2vn6WqrZmrpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNHAv726vMO9usPBwL+vsrOytr28wbKys6uzqaW1qaSts7O5r6KttbGvsbmquK6qrrarqp6qq6CjobauqKGer7KhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKKgqKefp5uZqbCoop+soaCSoaKjppiaqKWYmJidj4qHlYh9jYaEhaSXhoKCjIePjpGFhZWgl4mSnZGTkI2RnZWXj4qFhnhzgX99dXh6gHt0dHtqgoejdWleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05MVlllWEdTalJSPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaTozOF89YWQ/RjFDUFtbK0hPO1hCNI+OsJ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJx8jQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaenrLK2ubKmp7q1rbS8r7ylra21q62cqa+kn6WsqqecnaqypLOomqqnqqSpnqKoqKm9q7SvrZ6po6Cum5qyopWkm6Sln6SamaiqpZ6aqaGbkZqgpJ2YlqmpkZmZk5CKgo+FfY+CgIiej4eAfoyHkY+QhYCUm5SGk6KMlJGLkZuSlYeJfoByenl+fGh3fHp1cHF+aYZ5hIhkYGhkcoV7bWd5XV5WQ1h7bVRhUFJYS0tNcHRdSFpbZ1lFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOk7CZn5+ppaOhqqS2srGkqbGmrbnBvbWwo7mtqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOnqquvtbe0qp26u6ixv7K5oK+0tqmsnq2xo5ylqKminZyksKavoJ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKWXn5ugopyfm5miqqKamaOjlZaTn6GWm5amrIuekZCRjIKLgH+PgXualI2JfX6Mh5CPjIqFkpiRh5SkipKSh5CakJOBiHx5bH12eXhie3pycHBzeGqCdGqCZ2NoYW5zjm1ianBgb0JdeWtWXk5QUUpJTFNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNRXT0jkpermJ+Xp6Ohn6ejt6+toq+vqau4wrqzrZ+5r6uotLrHyse/t8K+r7S+t8S2w7KwurKzwLW7vripubi9q6S1p6iqsK25sKmZubyjrr+0tKGut7Wnpqews6CfpaanoKWZnqyoqZ6gqq6noKaXoqifsLifpLGuoKyhrKSbpqaompqbnqOVnZyanammlpqeqJGXkpidk5mVoaqQmomNkId9iH+Cjnx8oYyNiXmDjYWKjY2FiJOajomVn4mRlYKMl42QfYR7c3B8cXN0YHl4am9wcXBqf3NjemxoZmRhZYeAYFtyanFNToBpWFpNUExKR1BSUUhNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFs1KJabpZiclayfn6GkobeqsKO0tKmpucW2sq6gt6ytrbC2xcfAt7/CubC1vLe/u7+vrL6ws7+xvcO5qbu6uKeotqinq7Css7Cmmby2pKu6ta6fsbivqaWnr7KboaSgo6ShlpuvpqGfo6ivoaCik6Okorawoaaxq5+soq6Xm6qkqJ6Xmp2kk5qbmp2lqZmbm6SUlJeUnI6Tl6KpoZCJio+FeoR+hIp6j5eKjYd6goiEiYyOhY6TmIyOlpmKj5Z/hpeLj3qAenBxdm5wdF94d2VtbGxraYRuZnJpa2ZpXWN0gWBba3ZpWkp/XltYT09LSEhSVUYyOV1ebVBEWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJupnKShoqG3qa6gurilrL3Fs7Cuo7Wvra2vtMPDvLO/urews7m4uri6r67As7S5sL/BuKy9urWlorOqp6myq62xoZrAtaSntbWonrK8qailqa+smaOnnKSllJehsqWZn6SoqZyioJOkn6O4qKSnrqadpaGokp+ooaGgmJqcoJKam5afoaqbmpiglJCTlpmNlJKjqKSQiYmPhnmEe4SGfZ2OiYqHeoGEh4mJkYWVk5OMkJWUjY6Ue4KXjot3fntsdHFsbHNhd3RoaGpnZ2+FZ2hoY2ZpamBqY2lnW2V7Y2BTdFRcW1NMSkdJT1NAISpoXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnTycynqKjkY6jppuenp2jtaynqrq3p6zEwbawrKO1rqeur7fAv7yywbawrrK2tri2tq2qvbOusrG9v7iuvLuxpZ+2q6WltKmqrp6dwauopa+yqay1u56pqauxpZieqZ2npJGYpq2imJ6kqaGboZyWn52ntqWvqq6hoZ2doZSgpp+hoJmbmZyRmZ2UpZ2roZeWnJSSjJWXi4+YmqmgkYiJi4h5hXeCgoKdiIuCiX1/hYiGhpGElpWQjpCRkZGMknuDlY2Gc319Znhva2prZ3Vza2NnZGR2gGJlZmZlampka3JaX1ldbWRhTmlYW2BWSkdJS01SWD45X2xpSEJUU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CLrKGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu7rsCyrq6utq6yuLOoq7mxr66ztrq2sLi9raaetaugoLCkqq6cosCgsaSusK63rrWera+traKanaeppZ6Vmqeln5mkoqidmp+blJydrK+luqiuoqGamp2ZnqOapJ2XnpiblJmgkqiVqaeak5qakYuUmY2UlJmpp46NiomPfIJzgYGKmIWHfImJhYWKjIqShJSck5GPkJCWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjc4FhZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVVAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNj7CdmpOhmaiyr5+4v7agtMK7vbmxprawqK6lt7i3t627r6yqq7aqs7itpbO1sq6psLe2sbO1uqepn7WonZ6ooqmtmqe+mK2jrq+0ta2sn7GtsKminJyjq6iblJymo52aqaKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6GWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2EjIdwXmNhZ4SYhmyLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3KEZ19kZm5tal5fYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpSwm5yToJuqraqjvcWvqbjCuL28rae2sKWrpLezsrOxua2ppqy0pq+1oqi4traop6y3s660rbOiqZ+zqp6hpJymppirupWmpa+ytq2upKmuq6yloZ+doKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6OjnJaXl5ejiKGOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanFvh1heaVtra1uIcW56coVnhoRaXkdOP0dfTUZSVlZRUVJXVGdeTVdJUlNPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq52ZmJ2fqqqnqr/Dr7G6vbfAv6qlt7CpraaztK6vs7erqaWxraW0s5yttba0pqeos7Gtsqiunqugsqigo6KaoKGarbOUo6WltbynrKerqqyopaGgmKCmo5mZpaOkmJujqZaUo5yUk6SlpqG3o6OgpJiUk5eTm4iuj5iUiamLl6GbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn+BcpV0mqGqkFdPV2JQVk5GVFtYUVBSjFxXXFBAXERRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yqLHCvbK1wLW3vsKrprOtrKmnrrOpr7a0p6emtKWnuK6cs7K2qqWkp7KurrGmqp6npLGjop+el5qenK6rlJ2in7O6o6qpoq2upaGdmpqhp5+Xm6egn5idpqeRnKeak52hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeDlYatZHCdnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmd8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTldfXFdWO06JT1hXL0lUVElDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6y0vb6wtsSyt7rCpqmwq66oqbCuo7C6r6OkrrKjqbionrOysKOloKqtr6yvpqefo6Kwm6Kbl5WWmpqspZaboZ6zs6KrnKKtraCdmZegoaicmZ2jn5yZoKWkj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmuBpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhFQkVBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqahrqmnsqypu7bCsLvCrbi3wKqsra2upq2xqaGvvKqhp7Sto6u1pKazs6ejop2nqrKosKelnp+fr5afmJSVlZedrKGZmaSotK+iqY+pqKqbnZWYoKWnmp+cop+boKOko5Wbn5eZnaKpm6WZnJyioJeTkZOSnIPVk5m5cLDCfsWGfNaUm7t8mpWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWN0cohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWkNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1tLuztaexsKOwsqafrraomqe5rqOvsaCztLCgpJ6fp6mwqbSopJudnquXmJeWl5WVoKqcmZanrbCpo56PrKKolp2XnKGloZiioaGhmqGip5ueoZ6UmZumoJynlZubn6GZj5GUkZyIsm5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tF2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVHSTg9VlFaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbS6urOltLShsbGin6ywpJemuq6ksbCctLiqn6adoamksqisqaSZm5qonpWUmJmSkqKnn5aSpaqwpqKWk62fpZKUoJukpp+UmqWmoZqin62aoJ6dkJWboZ6cpZWdlpmin5WYlZGahax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnoaZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtX3d3h2iYiGtdr3eVno94bDV5yK6yX0JTb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlJ+4sJe0wa2os6ipsrq3s7i/ubeytby1pLezn7Ssn5+orJ+Up7WrqLGxq620pJupoKCoobanpqmimZ2VpaGTkpuYkpSipZqSkKasr6aglZmpn6KOkaKZqKWglZqlqJ2cpJ6snaGdoI2UnpqdoZiZnJaXoaCTmJCmnoapfX2leKGPjoOqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/doh0qIKOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmZNW2FfcnNfSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZmZv6uXtMKurK2pprSwt7G1v7m5srC3u6m6tJ+wpJ6lp6eek6qwqa+qtayqr6GYoaCmpaS6oqOroJabkaKglJOempSXnp+PjYuor6+mnZabqKafjJKkl6irp5SXqaeenqCjraShnqGNlaGYn6CSnZeclZ2hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGko5KcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNdYHB7Y1NaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbuhnLLArq6rq6e3qbivtcC1vLCvubirwbapqaCbpqOinZGqqqi2o7Knr6qgl5ynoKSruJ2jrZuWmY+lopWMnaGbmJyfkZOUq7Wwp5mUnKyql4yTpZmlraKRlqqxpJ+epquwmKGjkJmilp+blpyXoZKcqZyUkKqZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBim6aiHFujaR0vV53fVthebxrWlZbanpeamFlZ2JteG9ZW1lDQUByQENHKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqG8opexw7Ctqqqssae4r7bEsbqxrrqvrsCxq6SinqOinJuQqaSqsqS1pq2ln5aZqpmmrLicoq6YlKCQpZ+SjJyjnpedm5GVkq+5sqyVl6Onp5OQlqScpKyekaCoq5+bn6ijs56jpY6noZSimpyYlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zb3mPhI6JdJ7Bu72ae4GyqHCAdJG5g3yGhoyGjXuKh42XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYpog3lteWOLrHB1hX9aW6dqRWVaVGZgY11jUWdncGx1Qk1QTEQ6Wk0/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMK0rKqorKupu66wxa60sq63p7S4ramioaWeoJ2Zk6ukraqmtainn5uWoKOdq6S9pqCql5SckKGakY+iqKGTnZiTl5SytbetmJ2jo6KKkpKmm6Wqm5appKWcmqGopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pnKZ4h3J9mo50emSHe72+wLpvkoJxlYdhc2paXpuKYWOIjpVrYICVZG2dd2KVa4CalZRlXmFjcZqKaXKMfYWVZ2p+cnR4fX1iW3d0gWhQXG6EfXyLa1hseoJzSkpvhnBNdU1FV11nYUxaV2djX09bbXVqcVJPREVOO0hIPUw/Mi0yQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM9W08nPzI+qKCoocKjmrS5tqOspa6nqLWyq8irsLOrtKO+sbKmoKKonaObmZmspq+kpLWppZuXlaGapq2ovaeoppWTm5WfmZKXpKmokJ2Rj5icsLK/rJunnaahiJORqZqoo5qbrJ+jmZqjp6yin6uimrGblaegl5Wdn52XsaSXoaiZnJGdnKKkmKaimpyampmPlYFnbX1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGejYJ6pIZsanyQfIB0iYqBcYJ4eXZ2i4B8imtzgXSDdWV2fXdrcHttYGNdcGhNWFpmamBXWm95bW1mU09GUzlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqaWyp6WwtarIq6ywpbWmwKe0oJ2kpJyjlZWgqqeso6O2q5+ZlpWflq2ppcCeq6SVkpyXnZeSk6KfnqKnk5GZqKeyxK+aq5yqnpCWlqidqpucoKyYoZucoqSvpqGlqJ+umJennZmaoJ6enK+gnKGmlZiSmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmZeKhI+fiHuEkIeGmpKIhoqVj5uXjZGYnqSWmpORno1/jmahs6+FioR2epCKfHZ5em9mepGBgIlrdYF5iHNpc396dYOHgmt0ZHlmYGllY2Rma1lse3BpalxTTFBEX1RFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKqmsa2irLOwxLCqq6OzrryjtJufpqKhnJmXp6WppqSlsrSelZSdmZmwpq2+oKuikJGdmpmUkZSinJeonISeqquis8izn6qkqpaWl5qnnaian6Srk56enaCpr6mlo6uirpufoKGYpJ6cn52vo5ieqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gjd2tqi5mjnplzbG57hI2HelhlXoaCXmyLiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpa31xa2NeUk5XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp62tsLyxqaekra+wn62XoKOdopmZpqucraOlqKmyrZ6Vo5Cir6a2uaWuo46OmqGZk5KaoJmZpZV7pa2iqLPEuKSip6+enZSeop6jnKOpqZKeoZ2gqrCqq6SqoKqbp5+ooKyWoZulsKSXm6qVoZ6bkqWXnqqYnn69g4dytHKEnYWtaHi5xLhxk6KjeqaZmXOqgnzLwMC7cYyiiIKffZaYiZ3AvYKXnZ2NncLBfIJ8ko2aw8B9a6Wyb4yBb8p6f5t3koOOgXZ6gYB5cXp/h3F4hY2TeW13lGNmX3lkYGWCY150aGxkYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlEvI0ZbM1BZL1VBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpqaxq5+rmJqin5yaqqeinayjpaikpLSknaKTpq2rt7OnrqKRkZmdpZKQn6GYm5+dh6espKutwMCxoKmvqZeRnp2hmaKjqqOToKGdnq2uqayno6Onoaalna2pkqSaqK2pm5ypnKyhlpallaGil5x/zpR4eqSBeZSWm1+uj16Op4GioH2nlpx0q4OAr15jjap7p4eFoHSXk4izY4KrhqGNjbNqha90fZeIuGGDrVmjzW2QdXvae3+ZcH6IknZ+ZXuIdnZrfIhvfoWRkn5tgo9gcmxwZ2BfeWRccWhqY2ZgUlRSV11LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK20q6WyrKyrpKumsKqgp5uZpZecoq+foJ+op6OloZ+wrJqdlaeurbGrqKyglJKbn6SSj56lmJ2no56upKuwqcDHs6ipsa6Wkp2boZefqaqflKCfnZ2usKerqZynqKSiq5Oss5eloqqpnaOmpaGwoJKZppmgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHOtfquHhp92mJJ7fJd+qoiijJGMnX6re4mUj5+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4qLkpCDbZKQZnB1dXBgZ21lX29paW5nY1dTXGFZUlNDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJyjjqOjoqyvtq+osaaoqqetq6unoqOdmaKVoKWqn6GloKioop+dsKyXmpaop6+sqKapnpeUmqOhkZOgrZudpqOvrKOstaq6zrKtpq2slpWcnaKYnq6snZagmZ6fqrKpqqqbrKuko6ybr7GiqKuupZimqqmpsaKSlqOkmpSShaRqpHWJeql0erJwgqaKmYxxiKCah6RgYVKrhH+ug5t2rYGmhoafepmXhntmgKOJpJmGgqR9qX+ClYeuXn2pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiNjJiPgW2alHBueXh4b2xmZWVxcGZ8aWJdV2BpWFhVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6SenaanpqOcq5qirKGkn6+inJuTqqS1sK+gqZudlpSmopCaoqigoKWcsKakqLKtt8mytaqrqZWRnZyimJ+ls52aoJSdn6esrKSumq2ro6OqorOuoqqzsaGaqaiur7aikpaip5ibkXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDo4iHoHqYlpp4qsl0maSVqKqRk5qMgJuKmcbGeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkj5Ceknxxl5OAcXt1fntuW2ZqcnBlgWpfYVhkbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrmsqqGmmqilqquqp6CmpZiqo5+vq52moKyanqmlnae1n6KXk6mqtrKsnKWbn5SPpayRmZuno6Cppq6hpKeqsLXCsrOqraiTiZedpJqho66mmKGVmZympqybsJ2uqaeerKS3rKCxua+dm66nsrOzpJSXp6KZn46CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdY+SpJd7fpOSi3V7c4V/cVxtbnhyaoFvW2RfaG5iZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayzs6WfoJWlrq2uqqedpqaao6ehs66iqaayoJmppJSitaKilZeiqbW5o5uinKGSj6GxmJ6bp6Whoq+unaSoorayxLGtqa2pkYeQnKecoqScpZeemJmapqSpmq+hr6WmmK+lvK2htretnZ21sriws6aXna+go52Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOclYqefJiZhoePc6+CpZuijqaLk52KlZCabXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHiQlKaYfYyNlI14fXmPgm1peGl5cm6AdV1lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6inrqusmaain6agoLWnoqmnsKOUrKOOpK2jnZCamqq0tKSdpJunkZSXrZ+fnaeknaectZqhqqS2q8OwqaupoYyEjpyhoKajlZqanJibmaelppisqK6jpZutpr6slL2wrJ+isLK5q7Ommqixo6eXeqiQfXywd4qBpKWInG2yb6CHrXyhjoOolZiArImEroWflKqhoZeGn4CZlYB7kn6rgJ2al4ureJ2fkYmTkoB5r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZKmmYKVjpiNe3uEmH9rbX9jfnRugHpgZ2VxbmhnZ0NaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGBhYV5dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqcbCtsGzn5qsoK64paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuopJaJmpCusaymn6aarJeYj6yhoZ2loZqlna2YoKimtqnAr6WppJ+LgI2bmp+mnpKUmpqUmpqlpKSaqayspKWfqqi+pJbDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbWdvmZiMiLBbfbRcpINryKJkn4B7vFh2tVqyfVKugHqsWIChbpiQqJuLl5GYmHx5j51+ZHR+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUWFpeYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urTCs6ObrKaltqigi5qgn5yzs6mfo6CetZigtKiqrJ6vrZ6sm5WvqKKOiJuOr6yop6Kmma6SmY+omqGdpJ+ZpKOlmZ+jqrKpva+lqJ6djn2LmpWgoJmPkZqbkpqXqJ+hmqiuqKamo6Wpu56gxqakqKGrtLWsrqaeu62srJWAqZKjr4+bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6OBb6uEbJx/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SOZ3mCe2BsZWtqYlBhWlNqXEBVYUJOKj06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7mxvbKina6mpbKmnYyYpb+quLKoob+mp7KcnrGcuqifra+mppSUsKyXjIObka6loqyho5yqn5iLo5KmnqecmqGoopmeoaytqrmuqKObl5J7h5mRppuTjpGYmI+Yk6iaoJipqaGqp6GjqrueqMSioK6jqrO0qrCpoLqnrq6ac3WqpLeGZYmgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1sZot4b26CmXGBempxaWeJlpWYcWlphIdncIZkXYhiam9ZXWd+d6ZfYXGOkW5mZYCNk4+imJmZkZiffYeQlXZmh3hpjmt5f3lkbGNmbGJLZFhKbFo6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm5srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraaNl66pkIyFlZatnqaroZ6jo5+Ri6SSp5momZajqqCWnKamp6+6rKyam5OSe4SXjaWYjZGRmJSNl5WolZ+YqaObsaaeoqu5n6/Ap6Sypaywsaqtq6e3o623loqgqKW2nYmWopiHqZqQlJ2SqbOZm6OroLGWoqCdoKKcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJqXlY2Lk5OLj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGOkJCPnZWhlpqYooOIlY1yaZB3cYt4d3x6amxkY29kVWBYQGpbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWldYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptKeokZisoouHiY+bp5aspaCZp56ekpWjl6iaqJmUpqGjkJqnmaG1u6irmJqQjXuBlIuglIqVkZWQkJOXpZCfmqqgnLajnqert6euwa6jtqavr7CsqamzuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOqnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSLgH1mi4V1hnV5iINznGqFkJSTkIl9jJaSkpeUopOemKKEiZmHe3KWc3qLf3J8f2pvZF5wamFbX1luY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MDY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOppq2gp7WqkJCdpbS8r62toqOaep2isaSlsamXnLimo5SZqpyOhoqJnKOPrp+ilaefoZKXmJuui6qWj6iZqIyYqY+fubalppmbjYh5gpOLmpOKlZKUkI2Sl6KNnZ6onp+4o4CEr7Wir691pL2jsqB3eaCqsrqUdayknomAqn9kXGJ2oI6knoSXfW6Ts52jp62qo2Wdn5JzeZmWcICYqJdsf6KoimWcpZyRl5iWjJKckYadmpCVg5KHj4+SiYR3ao6GdoZwe4aBgGFph4qUkotadZWRaGiPj3N7ppqZZXmZh4N4mGqEi4NveYBrcWVfdnBsa2hcZ2ViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMxNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6atpJKWq7awsqebq6asl3SMna+fqKunlJe5n6CPnKSdkX+JiJuejauaopWnoZ2Ol5GehHWuj4immqmRl6SJnLq0qKCZmIuJdXeTjZWTipSRkJSMkJOgjpuhp5mcspaAjJu1nbOMko+8p6B+p6J6oq62gY6Opp6Di4aQsamvjIqWo5p5gIushpydoqepp4eVhZh3pZt6h5uBl6eCgnucsnqKhqCXmZSYloKRl5aEmpljeYeQhI6PkYqDbXCOh3mAcICBhX+GdIaElZF4lmiSdKCadH2ZhKKeh5h/k4uDhJlrjo6FbHh7cXFnZHhvamxqXGZramV0XF9JVExRQEU1LlpUVTcpITA5PT42NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lbYWFpZlpRSDlFSzw+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorKCosaamqaWZlK7IvrGil6eptZ6PhJ2snKeioI2Qvp6ajZ+aoJB8ho6ZmIisnKGWn6CRjZOJhoCRqI2Hop2klJiehp+6sqeem5KOhXB1kImUkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFk4aNlZKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjm4SagY6OhoqZcY6ThWh3dHx3aGh1cWhoa15kcG1nbVhnR11STTJENDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mopqugpLiwqaqmmpSgo6SrpJelqrejr4Chp5ylnp2JlL2Zk42hkp6PeYSWlpGIq5mbm5mhhY+Md5ucj5+QiJ6knJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkp+PlKGhmaGnfqGnh62doJatj56cnZGFgKCNq66Go42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGlmoG1bbop8Zlpgg39iV1Bvd2ZtdHJram9ea3BtbGlYaU9dWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaG1vKuuopmYoKKlrK6hna61oqiSoaCfppuajpm0mZCLn4yVi3WBlJKNiqaWlZienn+ShYaspIebkIqYqZmam5KIprGnopaaiImAaW6IiIuOjoqLjZKMkJKijJSfoJyhpH+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SehICjYJ2Zs5ZxfJefs3RzW56yg2pib3R2cWlvWGtscnJmXWleYktFPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQERfXltZWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCaop2jo6aunJuxrayTmKGZoaSZmpSfq5uLiJJ4i4VxgJaNio+hkJKUnZd9kImNqKGHmI6KkaOUnJuNi6mopZ6Ql4eFfmt7h359j42Di5CRiY+UoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl45/n26akG2nml2ofni7a36qW46EXbNnXG5yenhraVxxanh5Y2BmWGJBUUZPN1ZDUm81S1paX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Sbq7qysayeppycqZ+erpuesKisnZekmqGfmJaWoaSZhomNaoiAcnuXiIuWloSRlJiPeoqElqSdipSPhouekp2diZCpo6CajJKKgIBpgIZ4f5eMe4mOjoiPlpp/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/f5uTp3aCnW5zfZRvmXNrpF2VdkhlZGFzcX5+bmZgbGl2e2RlYlJeV11VV0BaRVFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrZmEVF6gprO5s7OpmqKMnKucnKmUoaukoaiPn56dmpmWmKGdloiHiXeGgW95lYWQm4t8kZOWiHJ/iJKhnHORkIGImZWhm4WOqZyalYuLi3yDbISFcYGhjHiGjYiIk5iVfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jl9hZtwenqXa5t8eJdzbqmkZ2FleXCAhGtnZmRudXdnYGNUW2ZRUWJJV0pUYVdTW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FhZmVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5yZhZmpoKGkjqWooJipipmYmJOZk5KgmI6HhntwfYRofY+DlJqBd5COj4lvf4aPkpJsl5N8iZGSpJaDjqqak5KLhYl6g3aHgG6Bn4Z3gZKGiJmil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKKZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dypHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdYSbbXV4mGmaenWYclBFfbReanZreYdmamhidHVwblZeVFlpUFNpSVZNWVRWXWhrblZnV01KQkpNS0hKT0FRS1BlY2ptZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZWBcXVxeaWJkaWt7X11kaGNqZm9sZWltZaGciK+mhGY/lKGzq6+vtqKikICYqqKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWOiIyBaYSFkoKMhZ2NeoyLlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaaprdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZp1b2NmiIJtcqJaX1tioW1diYxve35zcmSlbXeiZGenaZlzjJlvom9TiZBvoF9lqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUpZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtiaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAmKudn6aMoqGboqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZaZgnyIh5aokYGirJGGkIqCin6AgI5zaY+lhH2GlI2ImKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SHeal0pY+Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenKolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ5+tjLZ0d76NpJNZg6aNq2F1cnRwfHVxY2p+bmhsU1dbVmFiXWtNXVJdSl5tbnZgW3FZW2BbZnRlbm9xYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZulnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj317goWYpo5/paaOgY6JhZV2goeSb2yLqYCDi5SOiZyfiYyUqqOgj4B1lJeIfoF5lK6jf4GbcY+FeI+Kg357cqeMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDe32Ja4yFW3l5cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm1tZ4xzeXuYeIVba1h5j2lud3JxcHh4cF1shm5pZ1ZbYFdcZmtkVmJVX1FfcHh4bGt2ZWpra3Z9cXJ0c2FvdWJ0e4F4dXqDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjaWZscXVuWltia2RsbHluaGxvYY2UuKimi6GimqakmaWcq6OhhISYrJKeoYmappqpmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KDcJWFe32Si4aGkIV4fYCGmaSOfKehi4aQkIWWg4aOmHdyhamFjpGdkIienoiMm6ifoKqDiY6Vmn5+iZatqI+Spo93b5yQgnmRb36ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuCdnSBWXJuhpGBfX6Mal1qZHuFhImAYGl4ept7gouCdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pwZmdle4N6lltcamdudlt7eXd1bnNzgmZcbYpra2JaWl9aWWxxXF9hWl9dZnR+enRvdGNra2t8fXN7eHRkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenpiemaijo36Dma2Nn5WInKKRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ugkIKnoYd4jpiJlYuLnJeFg3qsgpGXmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnp6CSm4eVjXt3jY6Ep35/kpGSk5yyppuVnpCNspOXhKWMjJWbn4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoYiGiZ6KhJR+fYqAgHVvc4SDf3eGhoqPppCDhY2Hg42QjH2IjIqRg3dsgoR9eplqcmhhdIpwfXp3d292dIFdXm+GaG5fXlpdXVRoclZjXFxibGh1fHxzb3Bka2ppgHxueX9xanBwbGeBe3KCgHh/fX+Ee22CjIZ8enh8fXqDeU5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6WoqGYlZiZlZmkoZ58gJqrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4eEg5B/gIaEhn2HhI6bnZKHq5+EcouQhpORi52RfY16qoSNkpiWj5yWh4abpp+imp2GgpGamZiQmqafpZ2dkJaAkIl2e4eOhKV7fI6QkYaYqqGdk52PjaqOkYCdjImTmp6Cjpd+ho6Db3iGcnVhf4OPhnWLmIGDj4KGhX6FhJRueXV0kqGKi4WahISMc3+IfH1ycnuHg3t4io6DkqaPhYOOgYSKiYp3homKjH1vbH6BfG5obG1nX3p/aH17dnR2dXt3XF9wfW51YGNbXV5RZ25UZVteYmtpdnp+cWxsZGtqaIGAbHOBbGx1b3lwhXluh4B2goB+hXZxgo2Ifnt7fH97gopgaXxqdWhpgmVqY2BpXGN1aG9idG1sVWNxeWVwenpyZWptbIuJnreaoaOfkpGWmIuan5+ee3iep5GcioellIuYmXl6jIV8iZGDjIKCgm57f3hzgYV9i5F9a2h9gpiJgYiOfH6GhId9j4GQm5uRiaicgHCMi4yTh6GiioWMfKiRiJCSl5OWk3iMo6CgnZaZf4CQmpiSjJqjoaOZl5Gbfo2FeICDjoagf36MjI98mKSgoZOZkI+mjY+BmpGJk5ebfpOSfoeOgXR0gnB2YH6AjYZxipV8iIxxjH+ChYaOaHdxeIuYkY9+l32HinKBhnt8cXh6ioR6eZCMgpWlk4uFkHuGh4eFdoKEiYh7ZnJ8f3l7cWxqZl9+c2h8dXZzfHOAal5gc3Zwd2RjWV9eUmtpVGRZX2FoanZ5gXFma2RsaGWAgWttfmhvcWx+eId6a4yBc4GBfoF0doKNhn98en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykqWlnI6QmI+GnaCbnXx2paGOmICMooqImpZ4e4aHfoOJf4iCgX9xf3t0doKFfoqReGdjfYaXioKKjHl9gI2DeZaBlZiWjZagm35wjIKRlIamm4eNiYOmlYWTi5aXk5J3kZ2goZiTlnl+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2McpejnqGTmY6PooyLg5aYg5KWmX+YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJN3ioh7f4V8e3F+d4iFeYSPiYqXopWBg4t3iISDgnd8goqGd2B5eH10f3hnbGVhf2lqd3N0dX1xfGJjYXNudXJtYVphXltsZVJjWGBhaGt2eYZxY2pjbWVofYNsaHVobHBpgH2CeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl8eXFfcWyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6l52LjJiQeXuAi318g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd/hYd0fX6Kf32YhJeUl4ykoph/c4d7lJKKp4+MjoqSoJGDkZCUl5GLgY+YoJqSkJBzf42SlImdnZ6mmJiNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ6MhoKSnH+SkpWHmYh8iomBeXF6a3VsfH6Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Nc4+Ig3iGfXZ3f3yFgHyCjISMlKSPeISCdImHfYB0doGJhG9he3V6cX1vYm9jZHtibm92c3h3c3RhdWBvbHVub1xcX15ea15QXVhjYWhtdHuIa19qZmpjaHeIbmZsaGpsaIF9e3dukIhzgYSEfXSBhol7g316gYR9fY5yeot4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6idioqRhouei5WYfneumY2XfZ+TkZaUiHd9e4p8e4B2eH+AcHR0e2+FfYGAin98YVt+j5KGgISEc3qAh3qPkoiSkZyTpZyVgn2CfY6LkqSJjoqNl5qNhZGYk5aPioiMkp2Tj4uMboOPj5GInpmioZeWiZaQboiZg2aFmI6TeoiEkIpwlZqUopKSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV7i3RuhpCOknF1gHuBgYh8ZHBseH2Zk32EiHSQioBzh3luf32AhXuFi4iEjJWojHqHfH6LhXh+cXCBhoRjaHl0dXB8Yl9wYWt0XnBqe3l4bHNwZXhdbmxzbXNYWl9fYmtaUFdYZWNncXF+h2ZdaWhnYmdxjW5kaWdkaWiBend1b46FdIGCg3t1goiFeIV8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioKQnYeTnXWBqpWTjoehjJWTkIB0e3aFeHl/cnN7hWtycHptinaAgYducVtYfpGNiICAgHd1gYB/oIaRi5KdmKGVmHiKgIGNiZyeio+GkpeWhYmVmY+Wi4uNjY2dio2Pg22Ji5CQip2WoZyYlIWYh2qEo4JmhZ2KkH6Lg4uBd5OYkZ6RkImJlY1/fo+YfJGNj46aknyKgIJudXBsbW9we4Vpc4OOmIpxd4B0goiCeGZybnWBmY57iIR6k5F5dodzb4h7hYt6ioWCiI6bo4d7g3WBi394eW9sgYSCXnJ0cnBweFpecGBwal5van16cG1tamx2YHBvanFtWlhhYWJuWFFUWmZnY3ZvhIJiXWttZGJma5JuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2ep5aFjYR/l5SDkKB1i6CUk4aLm4yVjot6cnh0gnByhXNxdYhrb211bYh2g36AbW5VUYGrlYeCeIB3c4N6gqCCkoKTk5ick5p4knuDjZOkmpOOiZWYkoSGl5mMlIuJj4+InoSPinxzi4WJjoicmp+alpR/k35ohZyHZ4Wgh5GEkYKJcYORl4+bjo+MjI+NeHuSkHqOi4ySlox8iHyAa3ZqbmtsbHt+YXp+jpaCd3qAeIOMfHlnc2xzh5WKfoiGe5OPcXmDb3aMeomLeoh9gYuQnp2EfHt3got9d3FqbIKDemB4cG5scnRWXm9icmBfbG55cGhvZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xocmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoF4iINzhoV+jI2Ee3mVeGZyaoNgiH1vb2t6YGpudH91X3R9eIZ4dHOFfHigj5mxnKWOgop/g5qHgIyef4uak4+FiJiOjo+Ed3R2c4Bwb4VzcHGDb2ppdm6Dbn19bXVzUk2C38iS1pN8cHWDdoSgg5N3lJGZnJCZe5RzhZCfoZOTkIqSm5OGfpaWiI2NiJGMiJx+joB4eo1+iIyKnJydm5WTeo11Z4iRhmyIooSRiJeChWOMkZmOlYqXi42Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t5eVyAeZCOgHt9fn+Gjnp6aHJqc4qPiYKFhHyUimt9fm5/i36Lh3yEeYGPlZqZinx2eIOQeHNtZ3GAhG1qdG9oanRuU15vZHBZX2txd2ZramJmeHJvcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVljmNhZmJYaXNzbWpxdox9dHmGgnV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2enuNdnJ3ind5n4ubrpugkIKFd4iVfn2KnYeFoJGPhYyYhJOOh4F0d3B5cW6Eb21ufnJkZXhwfW16fWpoa2OkmsHcru+hc2x2hHaFo4aSb5aRlaCVnIGScoWLo5eJjpWKkJ2Wg4CVkIWJj4CRiomWfod7dX+JeIaEjZybmJmOj3aKdm6FiIp9iqKDkImchIVei5OXio6JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqSh4V5foCAhYx+eGVyaX+JjomCgn+LloVrgXVth5CBj4R+gnp/kJWTmI91c3eIjXVzcWd1eoNidG1wYml2Z1JhcWdsVV9udHlhcmRfaH1wcm5aY3JhYlduWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYeWhox/fpdzaHVxeW2Lem50cIBXcXp2eXFld3mGjGh2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjYCaiIR7c3dwc2pvgWtpbXx1XmF4d3txdXtnYGR869q1ycPciHNsdIF3i5uJjmqYkI+dlpOBiXGFiaCNhIuVioyYk3yNk4iDiY97kIuFj4F/dniDhHOHgpObl5SXhox1h39whIGJhpihgpOLnoOJYYOUj4aJhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpc3dsWox8koOFfX+DgISKgnVhc2uIgY+KgX5+kZB9bYFreIWOhZGDfIF8f5GSkJaIbnF6jIZ1bHFscnmBYHRpbl1rdmBSZXFpZlNgcHZ0YG9gXWiCcXNpV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YGRfXVlrbmZvaXN4in5zc4F+enZ6iHOFg3yAh3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3h3koJjdoaFcYqWhZmhmqKKh3Nvk4tyd46cfYqaiYl8n3+Emn+BeHJzbm9kcn5oZmx3eFtfeXt7cXGAamFnYX/Vto6QpnhucXd8cZORjYdqmY6JnJKMhntph4uZhoGSkYaHmI18jY2BgYqNe4+NfYiEenR7g3txhoCWmo6TlIGIdYOFdYN/ipKcnYWUjp9+iGF/k4eEiISJjX+Ag2d9kYB+f4KMjpB+bYJ8gnRrbXd0c3Z1a2ONgY9/hX58hH+EiH5vX3JwhHuOjIF8fpCIeXCDZnmCioaLgnuEfX+Tjo+Sg25veYx+dW1va2x7fmNoa2pZbnZaUmpyaWJRYnJ3bGJlXlpqg21zYltnX2RsYG5VW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/e311eIZ4hYJ9gId1eYmBkpZ8iYZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOan5ughoh2dpV+bXaUl36IkYSKjpp9jJp2fXZxb2xqYXV8ZmJpdXpaX3d8em1xf2VkaGdXnY9ecXOWvMSEdnGUiZB+c5iMhp2TjIh0a4iPlYB7lIuBhJuMfIuGfXyJjH+UiHWJhXV2fYFxdYaBnpWGlY+CgnJ/h3SDe4mXnJaGk42cgIhlfZKCf4WDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm94eHN2c2xqjYWKgYp/eYKAhIN/al5xd3p9jImFe4CPf35ygGh4goaKhYN4g3yAl4yPjH1ubHqJfXd0b2lofXdlXXFjWHBzU1Ruc2liTmd0eGZgXVxYboBvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjb3ZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoSCfIGFdn6JgZaReIOKdIGIc3l5f46Qb298gXFpgXl6fm1tfHaVa2p4hHRrlI2Fn5igmoWIbn2Mdmp4mI9/goqClZiKeo+Wb3pzcWxqZGB0emhfZXJ7WmFyfHlmcHphZWWOsbJ3SmJapNnQl3J7kYuReH6Vi4WZko2Gb2yGkpF6eZKGgYSZinyHf3h4iYqEloBviodxdH17anmFg6WRhJONg39vfoJ2gniFmpiTi5KPlIWHb3qSg32Dg4mDb4J4aICFeHJ/f4OKh3xlfX6DdWNwcoBoeHFvdZiNhYKKe3Z4gIR5gWpbcHxygIeEiX2FiHqIcoBtcIOGjoODcoN4gJmMjYR3bW5+hH93emVoan1yYFl3WllybU5YcnNmYEptdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxXFpZa2VZY3B5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXuAgX+Cf3aBhYmXinGCjXF7hn16eoSUjHVqen9rb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfn+FgpmKgXyNjWl4cmtsZl9hb3ltX2JveVxkbIN6YXF2X2Vl1eu+izI6PouOgHJ5hYiOjXaEmI1/k46Nf25shY2MdX2Pf4WClYh8g3hudoeFg5d3boiEbHV7dGZ5goOojIOPjIN9bn90dYN5hZuQi4+RkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN4YnmEgXFkcWh+bXRxdIGbi4B/hX5zdX6Ac4BvW2t9dHiJgop7hn98iHh5cGuIgo+DiXGBeH+Wiop+dG1qdoCAdXVcaWl4cVlXfVNacWVMW3NyZVtKcHdvXVtaWV10fnRoWWJbZ2VuYmlMV2ZRPV5mXV12Zl90cFtYVG9kWmRweVpoXmBnbWdpbGlweH2ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Ae3uIk4l/aHt+a3R8coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb19hbHRhaHCJemFzdF5jZJugkG5cNVmvtXVqgIl9koZ2hpiHdY+MindwbIWDh3R5iXiJfZOIen5yZ3aIfn2Xb3CGfWh3eW5leoiEpYeBh42Kfm5+dX6AfIuYhoGTkJeIi4SJfI+IcXt9hXxpfm1qgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIJ/b3d5fHR+bVdtfnZzioGGd4d1gYl5eHJtiICPgIRyfnx9koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N4aldZWVphcYB0YF1dYGZkaGhmTlpoTkFhZFtgdmFcdW1YV1J0YVpkbnJXal5iaGtnbWxpcHd8kmxphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e254eXeKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHFwY2ZeWWdfcHBgYGhwZmpvinVhdG9bYWRpdnt/vpymo8i4coWDc5R9eIeUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cWN3hnmAk2lyhHVmd3ZjanyDiJ6CgH+Ojn1yfnODeX+Rj4J3lY2Uj4eCiHqJiWt4eX51aHppa395c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp+fnF7dnt0fWFVdXxyc4mDgnyCcIaJd3hwb4KCi359eH18dY2Fg3ZocWhsiIJycF1oY3RuS2V2TF5vVVRac21iUU90eGFSV1hcYXCCc1tgXGhlZGNqZFBbcUlEZGFcZHFeXHdoVVZUd15cZW5oVmxeYWpnZW9vaHB3e5NuaYiLeX5ye355goGCfHZ9g4iGg3B2g3Jtd4KDfomLlH9wgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1zYWBhcWxsaIluYHNpWV5kbYB3qdqqx4aHsnKKeHCNdXuHkIF6lIqAdXR1fneAcHF+bYV0lIZ4dGxgeoF5iI5mcYNvZ3VuW219gZCTgIF5kpJ9eHtthnWAkIuDc5WKkI6HhYV7f4VtdXZ/bmh3ZW18dm1qd3Z/f3xhYniGemh1dWN+emd0ho6MlXt0gHVxgHp8bH9ZVXJ9b3SDhn9/eGuIhnN4anR/g4N9enx3e3KKgHxzZ3NlbYuEbXRbal92ZUhub0xbY1hXVnhtYlBTdHZYUFVYXmBxhG9cYGNtZGNebmJUXXJHQ2ZfXWZoXlp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniOdGuOjXV/dnh9d4GDgXt0fYOIiINvcX90cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVZqdGNgW2hvcGeHcmFxZlddY2t/fMrOh7mia21ui21yhXJ9hYt/e5KFenl0eXV1e2ptdWOEdpKCd3BnXnyBeYuJZXGBampxY1hte4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmJteHJqbHF3fXx6XWV5gHdpdXhmgnZndIeMjZR8codpbn6AeW18XVdwfW1zf4p8gW5uiX9wdmd2foB+gXV7cXpzhnt5cWVyYW6MgmxzWGtfeFxJb2xNV1ZfVFV8a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1We15PVmRwWltqaF1XZ2BfcmZqaHJncHN3hnhulYp0f3p3fnmDh4B1c3+GhY6CcHB7d3d1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2RXW2Bpf3i+rnuft25ic4dodHxyeoOHe36NgHh4c3dve3Zlam5hh3WOgXNqYl5+eHmKhGZxfWhqa1tXb3iKo4GFf3GZk3GAeHSBbX+BkIZylIeMh4OIhX15dHJvaHlham1gbXZrZ2tseXd6d1tnfXx4ZXN9boR0ZXWGjYaVfnCLZmt6g3RsdGJbbntrdHyLeoFmdIZ9bXBndH53fX5ye2t5e4F5d3BlbGFtiX5tblZrYHdWS2tsT1JPaU5ZfGdiTlV1a01QVFVeZ3aDZl1hcGhnYFdpXVxraEpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbGRyZ3JwdIB4cJmFdn9+eH98hYd9dXOCh4CVgm5zeHp6c3OFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3eanZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xaU2RwZV9YY3J1aXZwZWViV1xcaIBwb3KAc4llZXl/anR2c3ODhXiBhHp3dHVua3pwYmdrZ4Z0jYRuZl5ffG97iX5obHdmaWRWV3Jwjad8hHx2lpBzfHJ7eW16epCEdpd7h4aChoN9dXBybWd1XW1oX2x1ZGdmaXpve3JZZ4F2dWhwgHiCdWF3hYt8lIFui2pteoFxZXNlYGx5Z3J2iXp9YXWDdmlrcXR6cHl4cnxlfn5+eHZuY2VhbYZ8bWtWamJxVExpa1BMTnBIXntmYU1VdGRKTlNXYWp3fmVdZ3NpZV9WY1dicF1LS2tYY2JVVFVzV01YdWRaX2tgXFpjZV93Z21icGlzb3F+dXSZgXh/gHh/foWEen12goN+mIVucnR7enRxhYWPgoB6i3V1kYB9gZSOgIWEfH6Mhnp+gHZ7o6aKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaGVWXVtbWlNjbmVbWGF0e2ppbWhfYldfW2mAaWtvgGdsYWh6eWt0dHRvhoJ7gH12dW56aGp5al9lbmiBd5CEZ2VYYndpfod6b2lvZmZdVVhvaI+ndoF6fJGOeHVvfm5xdHiOfneUdIWCf4WIdmpydmdob1xtZV5tc19nYWp4aHttW22Dc3Rqb4B+eXdgdoSEeI+Fc4hxcHl/cWNwaFtudmRwc4d7eGFygHBnaXhzcWt3dnR1YoN7fnd1cGNjY218fWtrVWliZ1RLbGhQR1JsRWF4ZmJNVHJdSkxUWWRrd3plX21waWRcVl9Vb29XSlNoWGZeWE1VbFRLW3lfW19rXV1bYmVgemhsYW9vdW5vd3V6l313f4F5gH+Hhnp5eoN9gZOEcXR0fnl2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyfgHqIh4RscoJ5doGAgnRuh299gHSKgGpwbWRkWF9aWlpVYmpnW1pfdYJpXm5sXGFWXFxrgWVydH1pal1sd3ZndHdybod8fn56dnNsemdpeGZdZHJneneSgWNjVGVvZ4KEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55inp2jnGDfX5/hm5kdnNkaGhdbGJdb29bZ15sdGV6aV10gG9ya3F7fnV1YXSFinuHh4B/d3J1fnRhcGxZcHJicXGEe3VkcoBsYGx6b2poend0cGSEdHl6dXFkYWRtc35qbFRpXl5VTHNjUUdXYkdjdmZhS1RwWEpLV1hna3Z6ZGVtcGZjWlhdWHZmVEpcY1hoWFlJV2VRSGJ4Wl5gbFteXGJkXoBpal9vdHhub252g5d5coGAfX+Ii4Z+dXaGeIaMfXR1dYF5enqCjI59foSJanSWgXuKnX1+hXmAe358hohzcY+ujHx7hpB+ZnGIenR9fXZyb4Zte35tj3picG9hZV5lVllZV2Nma2BdXXOGaVlxblteV1pcbHtjcXd2bWNbbXN0aHV2cW2FeX+BeXdub3RlaHRlW2d0ZnZ2kXpfXVJlZmqCgXR9YWNpXFRYXmJjkKVoeXSDhpB4bG55Z3dse4N5dIhygHh7eH9oZXZtYGZhX2pgXXRrWWVdb25iemZbeHxrbm5wd3l0dGRyg5J/h4KIenZvcXxyYXdjWm5vYXBxgXtzZXGAZF5tdmljZnh6c2xtgXRzfHNxYV5lbW99ZWlUaFlaVU55YFJLWllIYnRkYUlUbVNJS1pXaWxye2NsbHNjYVlaW2F3XFNLY11YaVNXSFlgTkdpdVheYW1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCBkoiEgXZ1iXSLhnRxdnaBd3x9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3Caont7gImVeWR1iHlzeXZrc3B/bHl8cJFyXnBvYGdibFRaWVdoY21mXFxyiWZTcm5bWVhYYGx2ZGp1ampfW210cW10dHRrhn1/gHx3b29sZWlxY1trcmR0do9zXFdUZGBxf35xglxhY11TWmBcY5OfZXJxhIOQdGtqeWxub3l5enGAd39yeXp6ZGZ1Z15iW2FoXF53aFdiXXBoYXhhW3t2ampyb3d0c3RpcIGUg4Z+hHZyanB8bWV2V1tqbWJwcoB6c2Vvfltgb3FiXmlvfGxrc31ycHhrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmBHVmtRSE9aVWtra3xlbW9xYVtaWFlscFdST2ZXV2lTVEZaXE9JcnRYX2NtY1hhYGFejGpjZG15eGtvaXV5hntrg32AhZl8goR5fYhtj4Zxb3d6fHSCgn2Lj4OClnR4gpOGgZ+JdYF/gXR/gnCHgnVvopd0e4aLh3tmd4tvbnxwZnhxe2xzdnONa150bmFnZWtSXVtWaGJsbFtccYxkTm9uXVZYVWdpdGhjdGVlXVpudW5wdXV6a4h9gH2Id5BzY2VrbmFcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFtgWWKWlWNucIOEinNqZ3luZXJ1cXpreXR0bnp+dV9mc2NbXldiZFlhdWZVX2BtY2FxXV1+b2hpc3FzcHV1a2yEk4GJe4VxcmZue29xblNaZWplcXOAdnNibHZVYnFrW15uZHxla3V8cnJyam1fWWNpanheZlRlVVZQVW5YUldUUEhlcl9hRlhqTkhXVFZtaGR8aWt3amFXXFVbdGRTUlZoUVlmVFNIWltQTnh2Wl5lbGlaYmBeXo9uYmZreXVubml2dn9+bYOAfoaXe3+HgYl+a5OIcmd0gHt1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd5c3ltbXF2g2dkfGxjZmdoU19fVWdgbG9cXm6OaE1pbWBVVlNvZnNsZXhkZV1ZcXVtcnt4c22JfIF3nHt6bGJlbG1eYG5qZXB5fmdaVlhga3d7em+DXmJeZ1ZZYFdjnIhia3GBhnx3a2p2bFt1cGp5aXVybW57gHJYam5eWV1WYmRYZXFjVF5iaWJibVpgfmtma3N1bm13dmtohYx/iXqHbXFmb3tscWxiWF9oaG9zgHNzXmltU2VwZFVibmF5Ym91e3Vqb2xqX1hgZmh1XWVWYlZTT1lmU09dT09IZW9dY0daaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJfZk5dYlRTSlxaUVp1dVxeZW1oWGJhW16OcWNnandxc21ndnN5g3OBg3uIjX58ioiOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZnFtBREREREU5LzAwMDAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJyfUjE1NTU1NyccHR0dHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6IhoaGhYWFhIODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkYuRjY2Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY6Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY2Hh4yGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjIaFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiLh4eMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIyGhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+MjoqKjIqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZWVlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSkpOTk5KSkZKUiIyUk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpGQkpGSk5B3jJOSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkHeJkpGTgHWOkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJCSeW6Nko50doyRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5F/Z3iSh3V3i5CPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj4JhaYZ6aHSKj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOd2BrYmdkbouNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4dkb25banJsgYWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3cGNwcGRrcnFkaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhkZWltc3BydWtiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl1gYWNsbm9va1pZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9OUF5pZmxua2djUVBTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTExVZG1mam1raWZcU09PUFFPTk5PTk9QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLR0lPVWBobmhrbGtpamhkX1dPTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRURSXWJmaGpubHNvamlqbGtpZVVKSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+Pj5LVlxpbWxueXNqamxmW1FKRERFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7O0dKPUZZa253cGtpWUdEQkVFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz49OjtGW25tYElBPkFAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTo7Ojc4VmQ/ODg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pj09PTtFWTk7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW5APkRFPz9BPERbPT09Ozs9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE8SWA8PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SU1GRnZ3TTc4ODo7Pj5VZ0A7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+RWl0Szo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQEhyeWtigoSDg4OAfV0+QENAQT1Jc3xZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN/fYR1TEFDRUA/Pll8gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEtKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoiIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKjIyLiomKi4yJVDo4NjU2NzY2NjQ1NzczNTY4Ojg3NjU2NTY3Njc3ODo2Nzg4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmLiomJioqKiouJiouBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg3ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD89PT5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaHiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUtOSklLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5LSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo+QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUk9OTExMTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVFOT05NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdFQkdKR0xKRktOS0tKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdFRklGRUVCQUJCXG9yd3h5enp5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUUk9MS0pERUZLT05PV1VRUE9SU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1JUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLTEtISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZW2NgVllicl1dVl1aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLem5wWFpcW1JTUlZWVFpadINZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ViloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTEtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JQUU5LUlRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV1bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk9GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4CAf39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFFRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1hYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUducnR4eHl7e31+fX18e318fn5+en1+fH1/f359fn5+f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5NTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pz06ODg3NjU5OTY3Njc1V3BwdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3J1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRERBQEdIR0hGRkhKTUxFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs/QD48PUBAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJiXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENISktMSkZGRkQ/QkM+PEJHP0I/QWRwdHd7enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTg3OT9CPjs/QkBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSURNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQkFERUhLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxb2psbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0hHSkxKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkFDQD5CQ0RFSUdLSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSUhFTklCRk1MTk1PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKR0pIS0hHR0dGRUNAPUVFQj5CQ0NDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT09OSkpITVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVHQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pGSkZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5PTVBPT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOUE1OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZFPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREZEREhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRD05Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdm90TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSUVKSEhLSEZGTElISEpHTExMTUxJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPU1JRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRkhGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RHSUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11mZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0VFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5MTU5HTE5JTEtJSk1JSklKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVEQ0FCPUJBQkZESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0NISU1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpKS0lISUdLS0tMR0hLS0xMTExKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSExKSEZHR0lHSElFRkxJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEREJFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0xJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0ZGSUpOS05MSExOR0hGPkdHTElLS0pMS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQ0VISUZHSEhGRkpHSEZIS0lMRERLSk5NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUdGRklMSk5GREtKTE5KTElLSkhJRkJISVFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFbUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVF5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU5ZYlxgYF9iY2JdYWJXX19UUE5PUFhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVVRbWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVa1dnSl1YVV5ETVFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRklLRVFWTEtPSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSVFSVFlXV1FUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fmx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW15iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQ0ZQUEhKS0pLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHFsbV10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZHxpcntdVUxsYHZ1a2l1e3ttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUhIUlBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFgUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXVlXXVZUUFlSV1dXV1hfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JYVlRZVlRZVVRSVVRUVVdYV11aXmFdXFpaXFxgY1tdYmNkZmRkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1FQS09XU1BOVVBOUU5LU1BNT1VTTlJOTU5RVFBUUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWF5cXl1cXWFhXltiYmNnZmRkYlhfYWJeYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZTVE9KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYWFVSUlhWVlpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRiWWJgYV5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlNNTlJPUVJPTFBTUlVbVVNQUExQV1dSV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldXXF5aXl9gVWFcYWFeYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWVtXVU9STlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYltjYl5hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW15fXltgXGBVXF1panJ9c2xnXFVYV1BPUlpTUlFTUlRVVEtRV1ZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVTVl5ZXV1gXWJiXllfW2ViX2RkXl5jY2FeZWZpZGZeXmRhYGFhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVlVUVBTXFRVVFVUVllXTFJaV11bXVJPVVNYV1ZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlRaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVVNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjX19WW2BkYV96dW9oWVxaVVhUV1taWVxaWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1taW1laX19gYGRiY2RlYmRaYmZjZ2ZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZUVlRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5fXFtdWFtgYV5gZGNkZWVmYlljZWVpZ2ReY2FgZWNdZWlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXF9iXmJkY2VmZWZiWmRmZ2pnY19jX2FmZVppaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExYV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2BSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFteXmBiY1xcV1xeYGJiY2VkZmRlZmRcZWZoamdjYWJcZGdgXGlpYmhpZmRgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9eW2BhYmViX11UXGBgY2RkZmVnZWZmZV5lZmhpZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx8fHx7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb29veX59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/PXWNiYmJiYmLjIyMjIyNiH9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb255gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMwc5CMjIyMjI+QkJCQkJCMf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dHZ3d3d3d3d4eXl5enl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV6fX19fHx8fH19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enp5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl9fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en19eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x7fHt6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3p9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh5eHp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3NycnJycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3RycXBwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3Jvfntvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnN1cnJycHOYe29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdJV8cHJviKB2cHBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXJwlKF1cHOdoHZwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcW+JsZFufqSgdnBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycIOzqXyQr6N3cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjbGnq6ivpHRycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3WfoqKzpZujenNzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4d3h4gKWemqWfpKOPenl6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx7fH2KopCQl5qXmZJ7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX59foamqaSeoJuVlX9/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGAirGoqaKhoaujgn6AgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CAgIqnrp+oo6ChpamkjH98foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH+AgYiWqq6km6ShoKGhoamqn46BgIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoaMmqajnZyaoJSZoaCenZ6hn5KEgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoOKkpWYl5mYiJCdm5ucmJCJhYODg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIGCg4yWmZWJkZmckouHhYaGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSDgoKBgYSQl5OWmZCFh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCg4OFkZeJhISDg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgoGIkYKDg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgImTgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jZeCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCTm4WCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUkpKTj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx8i5yNgIKBgYKChZSUi4GCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSTlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4uAg4GBgYCPk4yPgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhYOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYaGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGh4aHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4iJiIeHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHiIiIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaEhoWDgYGCgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaHh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4ODg4OFiYqJh4WHhYSFhYKAgYSEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4aJiYODhIOFhISFhYaIiIaFg4OCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIODhYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISFhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+Cg4OCg4ODgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fn1+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4GBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35+f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgIGBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f4B/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fXx9e3p5eXl5eYCCgoKEg4CCg4GAgoGCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgIGBgYGAf39/gICAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhISEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYOBf4KCgIODhISEhISChIOEhYGEkZGOi4yLjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIKAfn17ioJ9gH9+gYCAgYKAgoCAgIGAf4uUj4yMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6ClJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjYyNj46Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH19fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH58fn1+fHt8fHx6e3p9f4CAhIOCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjYyMjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+NioqLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gIB/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYuJhYiSj4yIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+f357foGSjHx9f4qAjYx+fn19fX5+fX59fX18fn18fXx9fX1+fX1+fnx7e3t8fH18e3t7e3l6enh5e35/g4OEh4mKh4mOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp6eXl5e3t+foCBg4eEiI+Oi4qGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjouMiISFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBgoKBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af31+gH59fn6AgH+Bf3+Af35/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeHhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCgoKDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEhIWDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn1+fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+AgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIOCg4B/f4GBgIKBgYGAgICAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gIB/gYKBgH9+f4F+f4CCgYCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn5+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoGAgIB9fn5/gH18fnyAgIGAgICAgHyAf4B+f4GAf39+gX9+f39/fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fX17e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH+Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoGEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+f4B/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8eHh1eHh5e3x8fXx7fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KCgYKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgYCAgYGAgoOCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYGBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKCgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoOCgoSBhIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhIOEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKChIKCg4B/gIKBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgoKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF6hH9/f3+FhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWGhoWFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hoOEhIOCgX1/fnt8e357fHx9f359fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhYWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGhoWEhIWFg4SHhYOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31/fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBhIWCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeFhoeIhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIeGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoKDg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgn5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXyAfn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBhIWEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB+fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ9fn9/foCAgoKChISDg4GChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhIaEhoaHhoaFgoSEg4SGhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NTU1NTU1NTU1dXV1dXU1NXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dXV1dXV1dXV1dXV2Nvc3dzc3Nzd3Nvb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR1NTU1NTU1NTU1NTU2K58gYKCgoKCgoGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6KmztPS0tLS0tLS0tLS0tmRO0RERERERENDQ0REQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSkp83T0tLS0tLS0tHR0dLZlEBISUlJSUlJSEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazO09LS0tLS0tLS0dLS2ZlNVFRUVFRUVFRUVFVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1dXV1dXV1dXV1NTU1dXQy8vKysrKysvLysvLy8vNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O09TQz87S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dTU1NTU1dfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdHSqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTOs56jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWlq6Gak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9mouboZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZyHnZatuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0Zqij5yBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekpaybqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosy2ta+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+5wKOXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vkaijq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5CoyZCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0NXHw9XR1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKiop6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpqbm52cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqVl5aam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCWnqKSmJqcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaSlqKemop6dn6GfnqmfkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWkpaampaOgoKGhnqd5jo+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWkq7CjpKSjoqGhnKKWYZGVmZuZm56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6qwq6KjoqGhnpqmc1+XmpmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGtkqiloaCenJudn11kmpuZmpyZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCgqJeBrJ+enZqYpIhYZpmcmp2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCgoKOkb5uknZyamqV5YmaYnJuenpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp6ep3mHpJuanJ2geGtmk52cnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJubnKJ+gJyZm5udlXVqZ4+fnZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZmpqqf32Jk5ycm4hxaGiOn52cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZmYon+GgoKZnpyBcGJojp+enZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmZl6Cbm3x6m6ObgIdrZZCfnp6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZupnIhnbq2qjGiDgWyUn56goJ6enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZegpoh0X2WeloJXcnt6m5ybm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpuVop50Uk1vlYR4SVlwd5GUkY6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRj6eVUzlAdIlxZ0U6VW+Bh4aCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgIqoeU5oVHSLd2VPVUNfd36AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6CoF91jGJ/p56IXYZ7UWt/fYWOjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9jJZjudSPvbqpt4d0fGlZf4aKjouNkJmclJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Mi4eSiZWCgc/EnNWtmrCeX4JxVHqRiYmQj42PlJSYkJWcmp2eqK6yr7C1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp2bo6Gcbo+6pLjRsaiuk2yzp1V0lI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamwo3SNlX6xvLOrlYddlsRsb5yioaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqaeoqq+Si3Z7p5eOj396am2Rem+Wo6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5QT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKWjoaGrlHxbaZF+e4Byb2tzcXt7lJ2ioqChn6GhqKCcnqGloaCmo6KepKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq2np6Ksp31sU1t3b3F2a2dkamZueIGPnqChoJ6doKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqGfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaeprrS3trm2ro9qY09Wbmtrc2hiZGJbYGZvdoCNm6OloaGimJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqqbTCxsbIx7+zppJ1YmBKT29xbXRnYGdnWF1bYGdsb3V+iZOcpJ+hoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrssDY4d7VxreqnZF8Z2JfRlJqbnF4aGBiaVlbXltcXWFiYWBmfKG9vaikmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2bHBoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tba/ydXWx62YjoJ1ZWBjXEFRbGh1dm1iY2RaWVpbWFlbWVdnjbXAv7aus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vb7ByNDNrYBmXVlXXFVCSnFobWdyZ2FfWFtXWVdUU2KOvMK4t7uwtbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXZubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcXBwcC9jmZWVVdSSER0a2Jgb2dZW1ldW15YY4y6xb6lpbG2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/aWZoYWtsZ252cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbGUx8q2hV5WVE9HYmiAi4xWVV1gYV1ig7HBua6yp6uoqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx+dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm1wLa1yc+ja1VVUVNfmKmlUVZbXl5mlcC3pquzta2upaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3Zua2lodVpmcnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+t73Dyrp9VVRUTI+tnk1UV1dolru0sa2suLWyrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Fx8PHwotYUUuGsJNJT1VooMG9v7m8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcTDxcfJp3RNerKKR054rczNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlldW50Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwcDAxsvDk2R9ZEuDycnL0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMHAwMSTUElzyc7EyNDBr729uLm7u763tLG5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjY2piZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv728uLu/xXlJoM3Ev7/Jv7DBv7q3u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y68vrvDtbrHt7a5u7y4ubW6xMqXTaXIwL+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cW1lZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MV5rcu9x7e5uK22tLe5s7Wyu8XKn1Ckyb+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibmBcVEhLS0RKQ0NHPjo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNiudoS+yM/CwLiutbW7vbe5sb7Dx5hRos7Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcWZsaW50bndjZ2JcY1FLVUhFRUNHQjw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRmXN3sdHRzMrEtbq/xMi+vrS/wMONVZbPxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwod1d6jMzMvNysbCw8vOwby4vbq7gV2LzMbEwMC/xMDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW14fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qt28K+tr7Avr66ppyqs7fEwKZ7eXyfxMbLyMHDwMDJysG/u7qyrnpsesfGxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF1cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W2ba/Ovba5wLyqfW5obm10gpeZdXp/nL6/xsC5wLy+xcS9vbixsaCGe3G8yMPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXtwbmlcX19ZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsXWCtL21tcGkhmlaXmBOU1tccHZ6haS4t8K6s7u3u72/uru7ra6in4qDr8XDw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnFhX2ZdW1VKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEd4uisLWcamZnVllfSUlNUFRve4upsLe+ubK1sry5vLa5vrKtsKmXlJXHx8PAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aoh3t2jKGYX1NDWVVIYmpVT0VKZZGlr6+2urW0sqy8ubi1uMG9obGwpKN6v8jCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnJuY11mWV1dU09OQT5KQkBLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiPbk5LQGVZQk94gZNoTUNehbG1s7WytK+su7q4trm/xYy1v66tbqy+uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU+HWElKWXiOg2NBVaO5s7SysLGtsLm4tru3ur6esLWur36ssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0bmVVYWNXXVFPTUhASVJETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlGhNP1N5cU9JSUxonX9aRVWwurGss6+urK22trK0ta6ppZ2Zmpyep6ieoKipn6GnlpuXl46dlI+Qlo2Xm6SooKCioqKlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlUUE5HUE1MQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpbxmRFOcflBYSUthSVeNYmVlg6+1qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTUpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8qeTkF2mW5PbUpMZGZ2dGFdYnSSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNVYEhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8aLVlNKZqNZZn1vcltSa2NcZ2JgbZG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTW1lNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF3dW9jd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfHh2and1Xm1bUmBIUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN/b4JwYGNXS1tSWkxMUVlSSE9OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl3bWhtXFhbQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0/QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZFO0I+Rjw+OTZOfqqyp6OjoqCepaulnpeclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM08e+v8DCvsfGwrfDysnDwca+urW6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaW94a2VZW0ZLTEVEVExEQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVl8b2FBPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2QjIKDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzMzHycXFzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxcK8w8G+v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0qFnqSYg6CyraOenJ+amJeUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djR183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcXJysrBx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaQi4B6cnV2Z2NndmpkVldRRE5GQEpRQj5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NTsNK9sq+mnJycoKShnZqUk5WUiX14cGtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAyMfKxMzMzM7PxcfItr/KwNLNzM/Gysi/xMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvp5qUl5+cmqCgnpucmZWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NbX19fT1tDV1NrU1M7P1dTU0dHM0M7U19bT1dDP0tPRydPRyNDY19jR19HX2dTVzM/Pys3Sy87RwMbDyMbPztHR0sjMzcDLzMbTz8zOyMTLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1wZWNiX19hX15hYF9gYF9gZW1wcG5rb3J2d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR1MvQ1NXWztLQ2NjX2MvIzsTJz8zKzMDKwMjKzs7Qy9DOzszPz8jM0NDLzsrDysfJzcvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWVucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxeUhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycrLz8vOzdDO08zGyc/NyMfLxcfBxsrMzc/Rx9DPzc7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5kJuNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7Fw8fAx83IxMzLzM/IxMTQyMbCxsjEv8HHzMvLzsLLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn1og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybvJx8XKwL7Cy8bFxL7GvbzBw8XMxcW8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWltYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7VsXnp8oZGLkpaGeoCFhX91eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7w8m/wcm7t7u6xsO/vMHOw8a+vrXBvcO7vca7w7q0vMbEwsK3v7a2vr+7zMO8tbrIur++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZIS0FFQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDF1dTW183KzsXJxcfBucW9q66lX2R1g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusG4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra6v7TFt7u1q7i9vsC9sbq2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl1WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxM/N0s/NxcfBxsC/urfJtqqwmFtob4qPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmptbnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMi5w7atqqiwssC2uL2wsaexs7S7vKuutaautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzd3ZraWBibGhYV1dbQUxLTUpFQUM/RkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJFban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWVpcZW5vaGZoaWtucoGturC1rqWlp6eaoKSgmpylq62kqKKrqqyrsKOmn6qttLaxvbmvt7Corri0s7y4tL2vuLm1srzBssCupaijq7Gys6i9qquoq6yttbOlqK6hpK+psqaoqK6lqLessbK3urq7sry+vr7Ev7XBwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9jV1ZYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2kmpeRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq0q7S6sba2rra5srC6urG3paCkn6axqKuouaqkp6eop7KtoKemn5ukpqyfn6ejoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSgg3hwbGJmYGtvYFVZX0hOZ09UR0ZLRjw9QD06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflpWaoZabopiVjJ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqbitoqamoKitq5mgn56ZnZ+lmpqjnJyer6mrqKqrra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr7AvsPCu7q9l4R6c2tfZV5kZFhUV11JV1xLT0dKSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2nnJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqCin5yjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2hq6ejo6atq7KzqrWwsquzubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSFeXVmX2ZeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5s7+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuTk4+TlpaelpiTl6CdoZyWoKGppJ+fqZ2bm6unr7CrnKOkuKqhoK6otqqnp62xpLiwpLego5yZmaqnoZqsua+ioaScoqCgk5ShlJaWm5iYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpaqus7GwsK+vp6insq6xtK+8tLq4rqOUgXp2ZV9hVllYU1JTS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYGVkpSLkZOTmpiclZacn5yflqCfp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWxrqy1nqGdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6urraaorq+vq6iqqrOlpquvtLGuvLaxr6+gknp3cmVhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2RpgJKSiI+Nk5GSnJSVlqSZoJedoKWiraalpaOko52qq6Wan6WxqqChnqWrnqiin66sqamuraKiopWXopuckKupsJyfop+fl5mTip6RjZKTlpCYmJOcoaOdpKGilaCipaWbo6uloqSrpKuupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycG9gW1dWVVJGUE5IWlxQUklUS1NMRUdKRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcPIrLG4wbW8wLy0taqsppWZm5uIgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2Nj4OQhY6QjZmTlJKcmqKcm6GpqauorKeppqSZpa+llZmlr6mgnJmboZ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnaKgpJ2bo5WboKOhmKKoo6Ooq6Crr6Stt6ajpKKsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExRUklOSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+oqK+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2FkfYuAin2Kj4mSjZaRl5mioJugq6qmr6yosaWpmp+toZWWpainnZiQj5qerpeZqKqZn52UpaGfkpGSkZOVqKulmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaaoqKigsbCmsb2on6OstKqup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExXTUpNT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxr7G3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp/eX50h4yGkImXiZSUmJuYnqmboKumpqyeqJqgppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5OLjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqGilpSYmJWippmNmaSmqaahoLSyp7K4oZyitqypraSysqa1vLWrrLGjiXlzbl1OUVFMT0NNTk5QS0ZOTkpKTk5RSE1KQUhMSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlId7g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnF1b4OHgYd/kIOOipSRk52hj5qco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY6ClH5+dIqNepCHk5CQnZuampGWkJ2Oo6OOiZqgoaSkm6K0r6ywrJ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE1DU05MUE1CUFFISU5STUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62noqaSnaa2raOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlqcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPlomAlIlfO1ZvfIyUioCMkoyQhoZzioWXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjH2JgZGNkJeamJOLkIqdiJ+Yh4iWnpqhoJenrqmtqKielq2zoqaumayrmKi0o6mto5N/c25fW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqop2Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1PUlRWWFpgbG5neoFzUEI/f5WSkX2IlYyEio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn9/lHh1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46RkpaMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpuwqqGkpJGmqZaiqpyipqiJdm1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK9pp6VjX+Jk6iWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnB0jo6Ben6Kq4R5e2h2e45wcm14gYuNknh6gHuAdnNyknhndYSEhIV8lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYV1cSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQT03Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiysKGakY2UgY6cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyGbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uFgoOFfnd3eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbWZjWlhYVVFKU1VUT1BOUFZLTktPT0pST0hOUExGRDw8Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnKWppKCYmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH50eWJ7eG97eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3ONiYSGe35/e3ZvdHSGgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9ub1hWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZmZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+fYN0ZmV1f4SEhYBmaWx1a3F/fGhxcXxuk42PfHR+fXFwbnVtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUlpXWVlbTVBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgGhnYmpucm1wgnVpb1h1cI6bkndsf3p9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opl5foaBhJmEmpxhhqqfnYuDkI16d4h+iYmOc4uXj4R6XWRxdHp8d4ptaGpieW+FkIJ6boF3dIR6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8CxusW6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEinx8gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTi4KLgoSSqYeAmJiKm3RtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtb3d+gHR0cmxbXl5bY2NYZ2VbVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6soaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGpob4OBdI2HhIpxhYJ3h397doV9bnZ1Zn+UjoaJiIeIh6CropWJjpd/eoKIenlvZ2t4fnt+dGxlXVpbXWpdYWZgWk9LTldSUUlQSkROR0NKREJBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZfY39nZ211nZuPmpKTi42OmoiSj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWJjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomOj5aktambjZSig4eTg31/a2pqfIGBgnRiXmRfW2drXWxrXldLR05SUU1MTEZJUENETUZBQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhZCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6nnqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsoiNl598lJ2bjpKVmKOipravnZGZqIeWj42BiGxzc32AfXJpYF1hX2FnZGBnZltSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopIiFlKShoKuhpKmPm7CLlaOmt7qboKOwkqKdop6Qo6Grr6yytKKUpKqImYmSiZV6en2Ff2hhaFxlYl1kZF5mZ19aT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYCLhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0dEPD4+RkhDRUA4Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrOYlqquqK62u7K6rK+1orGrsbW7t7SutKCnqKOnmqmvrbK5t7imm7aojKSOkZKfhniCg3ZaYmVXZmFhY2BgZmBbVElERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6GgIaIhYqHkXp4bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAP0dLRkZDOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7q4vre6t7msrLCmsaqtvbC8u8HBq5m6qJOtj5eXqol9gn1rV2RiWWtlamVXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSAjYNuenN4h2K5oZmjiZSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIqHhn2Kg4GKg5V9d3p1ZU9cZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYGBNU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC7t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3CyK+euamhq46kqLaIgYBzYGNiXlhiYGlnUlhgVlFVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot+g3+CeHuLg4d8i3mBioKXfnR9emtlcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEdBSTlEP0hLVFRWXFpbk7jAuL23xsC7ucrKura5tbi5sre1tK62tphkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1tDJzNLMz87Kxr+/wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mYB7bF5hXVleYVpjY1FbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CLiHyBhHN7ioOFe4l0gYmHlX9ze3lrbXV7aHJlaWxpZmppaGBmaWhsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6yMtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy8/U1c3Tz83FwsnQv8rJysnRx8zNwtDSuK/DvMS5pba6w6KDb2RdXV5ZYFdZZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4WNioqKkId8hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bnhzbGiBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SijrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzcvS09TQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t8+eem9mXmJdV2BTXVpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6hi4yYk5OMi5OPloR5hZCQjYuKh5GHf4J7cn6AgYd5hHWFk5CIf292cmtzfHx3e3OBd3FqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3d6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8PMjHNvZGFgWFRZVFxQS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiOh49/eIOUmIqNiIiLiX6CeHN7fYOHd396h5GWgINud3BtdX92eH10hXx5bId2dG59doR1eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvMtHl3b2VeW1NWUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaFiYKHfHiFlpaIjoOHhYZ6hHlxenuEhnV6hY6NnXmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6i4aOk5GblZ+Vh4uTm6CbnqqfoKycoZqYn6aen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjZSMhnubiJSPrqqUlZefmaeutb2prb3Gy8nJzMvQycPSytTX2dfY19Xb19PZ29XQ29rR1sjUy5V6fGppXFtQU1ReSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR/g3x8hJiOh4t+hoaAd4J5bnt7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4m3xaTBybiClZuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkIOJjpaZl5alnJeflp6SkpejnZmrlZCQiY2RgoyFiYiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcnR1tXV2dXX29TX2drb19va2tjO3MaHfHtoamZgVFhVVU1MRE5DOz09PDg6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6int+gH5/fIR7foGRiYSFeoSHenV9dG18fYZ+c36SnZGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqI6Pw6C8jJyjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYqQkpWPnJqTlJCWjIuVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNg4aEgKWHi4u4mJ2RlJaip6Gdnp2jr7a6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4eXl5bWtmV2BcU1BPSUNMQj08Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD84Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlhfVlhmbW1taYGOinFyeYp7en98f3uHe3x7i4eBfnWDhXlyenNtgH6EfneFm6GanpSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOin5CjrqCLkYuFi4GThldyrYufq5uPg5ibj4+OW4KikYKMn5OUjIaIjJKTjJSUlI+Lj4mHlpudj5WWkIuSk4WAi4iSjYqKnZaZoqOGk52WoIqJiI2ckIOIj3+Dh4WkhoyQs5idkpSXoaGemZKcnaeyuKymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F+dWlnXl1YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1+kqajn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4manaKSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaRspFkpM3HlY6Gh4mPko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjoyBf4ePpYmNk6mal5OWmaGZn5mTnZuis7Slo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoNzgWlkX15eT0pVW0JBRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go58fGx9iHh6fnqBgYJ+dnaAgntsbot/eXx4eHyEh4t+i6OzqKOrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5aoma2vpJeVlZSQi5iZlqDAjqPJuKuaoqWtmZGanLKdhoWoopyYhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmZOPipCLl5qJipaOhn2MmJ+KkJCcmpmTmJiflKCdlZ+bobGuo6S3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYVZhV1BISk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISLenpthYZ5fIR4gIWBfXB4fH18b3ONen2Be3iGi4mFhJKou62osr2vpa6zs6ijorCsipq0nqK4pZWspJeprbempKOfmamYqqOvsKmamZyUlZGXoJeZu7utyaBptrirsJSYnqKrkpe9o16qsoKJio2Vh5F8j459g4aNj5SUiIeSlouPlY2KjJaZkp2as5aVq56Lm5SSjZCSjJibipKekIyJlZ+ijZWOmJqdk5uYnpShoJScnKWvqKKls7irwsjEtbu9u8XIx8LRocbJzc3E1tbQy9OicXxqXltVX1JQRkQ+PUNBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqKjo6mvsrGqnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4uLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynmrGakaudjpmPko6VkJCWl4+RoJGIlZukrJSWj5ScnpSgnpuYoKGUmp6op6Sho7CypsHGw7CwurbFxMK+zafHw8fDvNXQzcTKiXV0Y11bYVtOS0NMQEVGPkE/Qjs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn58gn9xfoF6lXqSlJSYkZOVp7TGycDCzMHDuci8uq+rubuXsra6s8CupcCkqrC7u6quq6KinqerrrWwqpugqpyinJWesLSni6K6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYn5eTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOelJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxb7DvLPRysjBtXZ6bl1ZXWtTTUlDTEpKSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAfI1+d4eBgpB6jaGWqJqamLq+yMjKwtLJysLNvMGzrbu+p7q/vrzDt6zBqayzu72qsKmkpaOrrrSutrWgn66fpqKYo7S9qZuovMCjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6fk46Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppGfl6Wko6WenqaYnpWXm6Wjqaiisqyou8DEr6Wzt8zAua7Ds7u+wbitwsLBwJlvemNZV1xcTExNSUdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jCvcjEyMbTzc7Ny7zCt7C6vLS8yrzDwba2u62zv7m8ra+ooKmntq2uqbK3mp6toqihnau3uKmlr77Esb24s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZpmmKOfs6WWo5asraunm5+nmJmWmZWhpKimnrarqbq8w7WltLbLwbiqtqyzuriuqLi6vbiDbm9bWFVWT0ZLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqZaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73FxMfHzs7O0sq+u7axuru8vs62xL23uLeysrWzuLKrppyrq7iqqaevsJejrqSnpKW0wLCqrLO+wrnAuLOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWamZWSk5mZpqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tpZqhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C5pqurrbGxo6GysrSkcnBmXVtPUUxFUFBQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqa+YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca7w8TIysjHzM7Hvrqzr7m4wMHNtci6wLm1urGvr7K0p6ObqrS0qqmmrqyZpK6lpamtur+oq7a2vsG/vrizscKvt72ro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5Wbn6GpnqigmZqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuupaSfpamSkpmbiJScop6WsKepq7q3vrOyrb25tp+jp6ilp5ycrKmpjWVnYV9STE1HR05KVkw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uvmJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBusLCyMnFws7Iwb25sq+5tMDCyrbGscC8tLqrqa2sr6OimKq0uqappqyqnaivp6Srq767qKy8s7e9xry3tbjAsL2/s6m0tqu+pI+il5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqp6ZlY+UmouXiY2kopScop+gta+lpZOxq5qsrJ+epKOpkpWVoIOQnp+clamloqG0tbq1rai1srOenKKmmpeVmaqhnndiXmBeS0lGSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZERJxvYkdFqJeknp7DrZuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMK8v7fBw8DHxL/Nxru+ubKwuLO/w8i1v6+8trm3pqOrq6ygoJqqqsSipaispp6sr6yiqqi+uKasvbC3tse2tLm4vrC+wba0srSvvqOWo5aTm5Stn5ChoqWjo5+QvqWpnaisnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWspZyWsqeZsKifmqqeoI2ZlZ+FjqGam5KlpJqYrLG2saqlqa2snJmgoZKOkJWpn5RpZFphXVBKR0tPTEhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5uexayhn6ydna2fkqOelqSgp6qsl7awo6qztsTDvcC2v8K8yMK+ysi2uLW0sLO0t8HGtr6wuLS5tZ+mraqrnZ6fpaTBpaCqrqCkqa2voqanvbWlsbu3trXDsrO3ur6xw8C4uK2ztLWinKSVkZOgraCYoZ2pqKuimsOtqZ6srpubnpmmoL2hnaSYq6urpqGZjZqfkp6Jjld/lZ6moaC4qqeTmLajn7OioJuvl5+PmZSdgo+gl5aNoqSVkKausqupoqKlpZWVnZmLj5GTpJ+JY2VbZGBMSUpLTkZFQUZLPj1KQTk5SkpOXVFRSj1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GYnsSnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HCs8LEvcbEvcTKvbCwtq6wta+/xbW5sLC6tayaqLCpqZqepqGnwq2brLGcqqKusKmkp723pra6va+3xK2zs8K/scazurertLatqqKllZWUo6uhn5+ZqKuwrq67sqagqamZmZeToqS4oaGkkq6vrKSmn5KhnpWej5GNlJ2ao5+ntKenjJi0nKOwmp6brpGflJeUmoCSopaPjqChk4umrbClp6KcoJ6SkpuUhYuSjZyegGNmW2hmS0lMSlNCQ0BJRzs7Rj85OU5NVV5SU0o+T15ePUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm5/CqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLbAxL7KxLXAyMK1q7WosLiswMS0t66strqlmauxq6mYn6aXrbu1m6iwm62frrSyp6q6s6e6sreyuMCqt7LCvLTFp76urbe1qaesoZeWkaWkoqKXmKSvuK2ytbagn6ikmZSVk6Oft6OkpZWusbKlqaWinpqampWXqJ+fmKKerrKipo2XrpmlrJeanqWRm46UmJqFlp+UjJCcnpSLqamroqehmZ6WjI+ZkIGGlomUn3lkaV1sak5QTU5UPUJBTkM7OklANzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnKGlv6aor6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTBx8C5wcbBuqq2pa27rcHDt7eqrbK8opWtsK2xlqWokaq5qqCnsJ2qn6+0s6qptrasu6uysrm3rLmwwbm9vqbDq7C3rqiqq6admJiqoaGgkZegsK6zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqScoZedo7Owm5+QlKaaoamblaKflpiKlZiTlpedk4mQm5mUjqmpp5+km5ibk4eOmYt+jZaGjptraW1hbW5YUVFaVEFDRVVAOzpJQTc6WFBkXlBWV0RZXl5NTFJOX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBw7/JxLnFw8DAuMW9wbivtqert7K8v761qa6xt5+Xq62orZenqY6nu5+lrbOeq6KxsLOsqraztbytr7G1rLC1scC5xLarvK+xuKysqaKxpZ6kqJ+kl5CYn7Kqs6mqs5mdp5uZlI2gpaS0rqeirKyusaeyrLKpo5ufp6SdlKGYm6i1qZeZkZKfmZ+hnpCsn5iYhpWYi52anZOKjZaXmpempqOgnZaVlpSBj5WFe4+ShIyWZmxzaHByX0dZZlZEQ05YRFo5SEI2Pl1SaFxOWV1HW15dTk1SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3o6yppa6utqqutLmmp7C4xbext77BwrW0u8W+zMW5w8G6v7rEuMG5s7Wsqrq3u7q+taqtsbaYmKirqqubrKuPq72eq66xo6qfsa2zrq62srm2qa2usae1sLO6vMmyqrW0sbSvrqahs5+aqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrbC1r6OYna2nmpeemZmsuKKYk5CPmJyhmZeUrJ+dlIGTmY2enJqWkIqUkp6apaOioJmWkpKWe4uQhXuMioOLkmtueW51fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltdWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6y0t8m6tLu6v761tLfDwc3HvMS9t76/wLe/vbK9rqe6ure3wresrbG5lZemrquno7KqlK+6pK2ysaenorGzsbKxtbG4sqiuq7KnuK+1s8PFtqm0tauwramnorafnqaxoKSUm5mUsZ2nm5+pjaminZuVl6WlpLenorCzq6exp6ywtaykmaGsqJucnZuUqriclY6Oi5mdopiQl6ein5aDkpaQnZyYl5aIl4+XmqedpKCSlpGQlnaEkId7hYKEjIxucXh2fH9dS2VsXEpPY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpK2tq6ajsLKzqrawtp+rtbnJua7Bu8O3s7K1wsPPxMDBvbS9wL+6v72zxKiqubG2t7+9r6uzs52gp7CtpaawpZ6ytayrsrCsqai0uay0s7WstKypq6isqbmtsbDHvrikua+pra2mqK2wpaOjrqOpnJ2bmq+ZoqOio5CsnqOgn6GppaW4pKu0tKSqq6isrravop2jqKqboJmakqS0mo+JjYeRo6CWjpSeoJWThY6Uk52bmZaUh5iSlZmnnKCfjZKRjpF3fo6FfHx9h4qJcXRzfn1+XFJkbl5OWmZdRkSWW0c6Tm1YYVtNYGJOVldWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGosKSoo7O0sbS1sbGhrK29y7quwbvGsbSttMLD0cTGvsCyvsLCvL+4vMWorbess7i8wbCrsq2hpKetqaiksKOrsaqvq7Gurq2rs7unt7GyqbKpqqalo626rKmxwrm0rLmoqKitqaexpamkoq6qqKKem6KslaSdl56Yq52hp6ihrKWjray3sbGgqaKfqq2wrJ2epqepmaOYmI+gp5iGg46Ki5+hkIyNl52QkIaIkZWgnZWYlYaWk5OXpZydnIuRkI2Kf3+HhXx3f4eFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2RcTlVWVVdQXGFfU09OaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSjAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqrKcqaiwtay4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMDDxLrAtMnErK+3rrK6wL+zrq6rpaiqsKmmqLKltK2qsK6tsa+zrLO6pLi0rKyup6ugop6wt6uqrbq2pLW1pKmnrKyqrKGopqaxsqSmpaGhq5apoJOaoKaeo6KqpKyinqaxt6ysoqSimqmqramcoaWko5igmpWPmJ2UgYKQiIWdoI2Kjo2aj5GLhI2YpJySkZuMk5GRlKOam5qLjouLfIeBgoJ7dYCEgX51d4ujh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqqwl6qorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK5wbrCxK6xtbK0vMG+s7KurausqLaqpa2wqrmvqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKS0tKC2rqGpqKuoq6egqquoubapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ekpqepnKKjo5+ZmJ+Rjo+Zjn6HjYeFnp6IhIqLj46RjYSGlaKajo2akZKRjpOfl5iWjYqDf3SHgX9/eHWDf3t4foCInY9wcmdncXhcYXOIaU9dmFZIbXlVZFZSY09MVVRVUU9YWmJWSFBqVFdTR1BZVUk+SUhPUVB4TE5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkU7lY2vn6WqrZmrpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNHAv726vMO9usPBwL+vsrOytr28wbKys6uzqaW1qKSts7O5r6KttbGvsbmquK6qrrarqp6qq6CjobauqKGer7KhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKKgqKeep5uZqbCoop+soaCSoaKjppiaqKWYmJidj4qHlYh9jYaEhaSXhoKCjIePjpGFhZWgl4iRnZCTkI2RnZWXj4qFhnhzgX99dXh6gHt0dHtqgoejdWleZWyBdWeIi3xSV3BeSnhzVGRTUV9NTVNaZ05MVlllWEdTalJSPkJOUWFROklITFNJcVBMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hPO1hCNI+OsJ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJxsjQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaanrLK2ubKmp7q1rbS8r7ylra21q62cqa+kn6WsqqecnaqypLOomqqnqqSpnqKoqKm9q7SvrZ6po6Cum5qyopWkm6Sln6SamqiqpZ6aqaGbkZqgpJ2YlqmpkZmZk5CKgo+FfY+CgIiej4eAfoyHkY+QhYCUm5SFk6KMlJGLkZuSlYeJfoByenl+fGh3fHp1cHF+aYZ5hIhkYGhkcoV7bWd5XV5WQld7bVRhUFJYS0tNcHRdSFpbZ1lFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOk7CZn5+ppaOhqqW3srGkqbGmrbnBvbWwo7mtqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOmq6uvtbe0qp26u6ixv7K5oK+0tqmsnq2xo5ylqKminZyksKavoJ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKWXn5ugopyfm5miqqKamaOjlZaTn6GWm5amrIuekZCRjIKLgH+PgXualI2JfX6Mh5CPjIqFkpiRh5SkiZKSh5CakJOBiHx5bH12eXhie3pycHBzeGqCdGqCZ2NoYW5zjm1ianBgb0FdeWtWXk5QUUpJTFNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNRXT0jkpermJ+Xp6Ohn6ejuK+toq+vqau4wrqzrZ+5r6uotLrHyse/t8K+r7S+t8S2w7KwurKzwLW7vripubi9q6S1p6iqsK25sKmZubyjrr+0tKGut7Wnpqews6CfpaanoKWZnqyoqZ6gqq6noKaXoqifsLifpLGuoKyhrKSbpqaompqbnqOVnJyanammlpqeqJGXkpidk5mVoaqQmomNkId9iH+Cjnx8oYyNiXmDjYWKjY2FiJOajomVn4iRlYKMl42QfYR7c3B8cXN0YHl4am9wcXBqf3NjemxoZmRhZYeAYFtyanFNToBpWFpNUExKR1BSUUhNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFs1KJabpZiclayfn6GkobeqsKO0tKmpucW2sq6gt6ytrbC1xcfAt7/CubC1vLe/u7+vrL6ws7+xvcO5qbu6uKeotainq7Css7Cmmby2pKu6ta6fsbivqaWnr7KboaSgo6ShlpuvpqGfo6ivoaCik6Okorawoaaxq5+soq6Xm6qkqJ6Xmp2kk5qcmp2lqZmbm6SUlJeUnI6Tl6KpoZCJio+FeoR+hIp6j5eKjYd6goiEiYyOhY6TmIyOlpmKj5Z/hpeLj3qAenBxdm5wdF94d2VtbGxraYRuZnJpa2ZpXWN0gWBba3VpWkp/XltYT09LSEhSVUYyOV1ebVBEWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJupnKShoqG3qa6gurilrL3Fs7Cuo7Wvra2vtMPDvLO/urews7m4uri6r67As7S5sL/BuKy9urWlorOqp6myq62xoZrAtaSntbWonrK8qailqa+smaOnnKSllJehsqWZn6SoqZyioJOkn6O4qKSnrqadpaGokp+ooaGgmJqcoJKam5afoaqbmpiglJCTlpmNlJKjqKSQiYmPhnmEe4SGfZ2OiYqHeoGEh4mJkYWVk5OMkJWUjY6Ue4KXjot3fntsdHFsbHNhd3RoaGpnZ2+FZ2hoY2ZpamBqY2lnW2V7Y2BTdFRcW1NMSkdJT1NAISpoXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnTycynqKjkY6jppuenp2jtaynqrq3p6zEwbawrKO1rqeur7fAv7yywbawrrK2tri2tq2qvbOusrG9v7iuvLuxpJ+2q6WltKmqrp6dwauopa+yqay1u56pqquxpZieqZ2npJGYpq2imJ6kqaGbopyWn52ntqWvqq6hoZ2doZSgpp+hoJmbmZyRmJ2UpZ2roZeWnJSSjJWXi4+YmqmgkYiJi4h5hXeCgoKdiIuCiX1/hYiGhpGElpWPjpCRkZGMknuDlY2Gc319Znhva2prZ3Vza2NnZGR2gGJlZmZlampka3JaX1ldbWRhTmlYW2BWSkdJS01SWD45X2xpSEJUU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CLrKGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu6rsCyrq6utq6yuLOoq7mxr66ztrq2sLi9raaetaqgoLCkqq+cosCgsaSusK63rrWera+traKanaeppZ6Vmqeln5mkoqmdmp+blJydrK+luqiuoqGamp2ZnqOapJ2XnpiblJmgkqiVqaeak5qakYuUmY2UlJmpp46NiomPfIJzgYGKmIWHfImJhYWKjIqShJSck5GPkJCWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjc4FhZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVVAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNj7CdmpOhmaiyr5+4v7agtMK7vbmxprawqK6lt7i3t627r6yqq7aqs7itpbO1sq6psLe2sbO1uqepn7WonZ6ooqmtmqe+mK2jrq+0ta2sn7GtsKminJyjq6iblJymo52aqaKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6GWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2EjIdwXmNhZ4SYhmuLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3KEZ19kZm5tal5fYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpSwm5yToJuqraqjvcWvqbfCuL28rae2sKWrpLezsbOxua2ppqy0pq+1oqi4traop6y3s660rbOiqZ+zqp6hpJump5irupWmpa+ytq2upKmuq6yloZ+doKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6OjnJaXl5ejiKGOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanFvh1heaVtra1uIcW56coVnhoRaXkdOP0dfTUZSVlZRUVJXVGdeTVdJUlNPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq52ZmJ2fqqqnqr/Dr7G6vbfAv6qlt7CprKaztK6us7erqaWxraW0s5yttba0pqeos7Gtsqiunqugsqigo6KaoaOarbOUo6WltbynrKerqq2opaGgmKCmo5mZpaOkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5eTm4iuj5iUiamLl6GbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn+BcpV0mqGqkFdPV2JQVk5GVFtYUVBSjFxXXFBAXERRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yqLHCvbK1wLW3vsKrprOsrKmnr7Opr7a0p6emtKWnuK6cs7K2qqWkp7GurrGmqp6npLGjop+el5ufna6rlJ2in7O6o6qpoq2upaGdmpqhp5+Xm6egn5iep6eRnKeak52hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeDlYatZHCdnJOZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmd8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTldfXFdWO06JT1hXL0lUVElDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6y0vb6wtsSyt7rCpqmwq66pqbCuo7C6r6OkrrKjqLionrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXm5uspZaaoZ6zs6KrnKKtraCdmZegoaicmZ2jn5yZoaakj52jmpegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOVlqiUfmuBpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhFQkVBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqahrqmnsqypu7bCsLvCrbi3wKqsra2upq2xqaGvvKqhp7Sto6u1pKazs6ejop2nqrKosKelnp+fr5afmJSVlZedrKGZmaSotK+iqY+pqKqbnZWYoKWnmp+cop+boKOko5Wbn5eZnaKpm6WZnJyioJeTkZOSnIPVk5m5cLDCfsWGfNaUm7t8mZWkj42cjaR7joejgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWN0cohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWUNEPkU/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1tLuztaexsKOwsqafrraomqe5rqOvsaCztLCgpJ6fp6mwqbSopJydnqqXmJeWl5WVoKqcmZanrbCpo56PrKKolp2XnKGloZiioaGhmqGippueoZ6UmZumoJynlZubn6GZj5GUkZyIsm5otXGrh26OpnK0c3K2e5mXo4uPnY2jf5GhpX6wdoOR0tF2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rX2xoT1VHSTg9VlFaV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbS6urOltLShsbGin6ywpJemuq6ksbCctLiqn6adoamksqisqaSanJqonpWUmJiSkqKnn5aSpaqwpqKWk62fpZKUoJukpp+UmqWmoZqin62aoJ6dkJWboZ6cpZWdlpmin5WYlZGahax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnoaZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtX3d3h2iYiGtdr3eVno94bDV5yK6yX0JTb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlJ+4sJe0wa2os6ipsrq3s7e/ubeytby1pLezn7Ssn5+orJ+Up7WrqLGxq620pJupoKCoobanpqmimZ2VpaGTkpuZkpSipJqSkKasr6aglZmpn6KOkaKZqKWglZqlqJ2cpJ6snaGdoI2UnpqdoZiZnJaXoaCTmJCmnoapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/doh0qIKOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmZNW2FfcnRfSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZmZv6uXtMKurK2pprSwt7G1v7m5srC3u6m6tJ+wpJ2lp6eek6qwqa+ptayqr6GYoaCmpaS6oqOroJebkaKglJOempSXnp+PjYuor6+mnZabqKafjJKkl6irp5SXqaeenqCjraShnqGNlaGYn6CSnZeclZ2hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNdYXB7Y1NaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbuhnLLArq6rq6e3qbivtcC1vLCvubirwbapqqCbpqOinZGqqqi2o7Knr6qgl5ynoKSruJ2jrZuWmY+lopWMnaGbmJyfkZOUq7Wwp5mUnKyql4yTpZmlraKRlqqxpJ+epquwmKGjkJmilp+blpyXoZKcqZyUkKqZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBim6aiHFujaR0vV53fVthebxrWlZbanpeamFlZ2Jtd29ZW1lDQUByQENHKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqG8opexw7Ctqqqssae4r7bEsbmxrrqvrsCxq6SinqOinJuQqaOqsqS0pq2ln5aZqpmmrLmdo66YlKCQpaCSjJyjnpedm5CVkq+5sayVl6Onp5OQlqScpK2ekaCoq5+bn6ijs56jpY6nopShmpyYlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zbnqPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhoyGjXuKh42XfKS7ub2cdXqzo3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYpog3lteWOLrHB1hX9aW6dqRWVaVGZgY11jUWdncGx0Qk1QTEQ6Wk0/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic+OzynnqChv6WWtMK0rKqorKupu66wxa60sq63p7S4ramioaWeoJ2Zk6ukrammtainn5uWoKOdrKS+pqGql5SckKKbkY+iqKGTnZiTl5SytbetmJ2kpKKKkpKmm6Wqm5appKWcmqGopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pnKZ4h3J9mo50emSHe72+wLpvkoJxlYdgcmpaXpuKYWOIjpVrYH+VY22dd2KVa4CalZRlXmBjcZqKaHKMfYWVZ2p+cnR4fX1iW3d0gWhQXG6EfXuLa1hseoJzSUpvhnBNdU1FV11nYUxaV2djX09bbXVqcVJPREVOO0hIPUw/Mi0yQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qKCoocKjmrS5tqOspa6nqLWyq8irsLKrtKO+sbKmoKKonaObmZmspq+kpbWppZuXlaGapq2pvqeoppWTm5WgmpKXpKmokJ2Rj5icsLK/rJunnaeiiJORqZqoo5qbrJ+jmZqjp6yin6uimrGblaegl5Wdn52XsaSXoaiZnJGdnKKkmKaimpyampmPlYFnbX1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGejYJ6pIZsanyQfIB0iYqBcYJ4eXZ2i4B7imtzgXSDdWR3fXdrcHttYGNdcGhNWFpmamBXWm95bm1mU09GUzlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqaWyp6WwtarIq6ywpbWmwKe0oJ2kpJyjlZWgqqato6O2q5+ZlpWflq2ppcGeq6OVkpyXnpiTlKKfnqKnk5GZqKeyxK+aq5yrn5CWlqidqpucoKyYoZucoqSvpqGlqJ+umJennZmaoJ6enK+gnKGmlZiSmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZKIhoqVj5uXjZCXnqOWmpORno1/jmahs6+FioR2epCKfHZ5em9mepGBgIlrdYF5iHNoc396dYOHgmt0ZHlmYGllY2Rma1lre3BpalxTTFBEX1RFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKqmsa2irLOwxLCqq6OzrryjtJufpqKhnJmXp6WppqSls7WelZSdmZmwpq6+oKuikJGdmpmTkZWhnJeonISeqquis8izn6qkq5aWl5qnnaian6Srk56enaCpr6mlo6uirpufoKGYpJ6cn52vo5ieqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gid2tqi5ijnplzbG56hI2HelhlXoaCXmyLiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpan1xa2NeUk5XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp62tsLyxqaekra+wn62Xn6OdopmZpqucraOlp6myrZ6Vo5Cir6a2uaWuo46OmqGZkpKboJmZpZV7pa2iqLPEuKShp6+enZSeop6jnKOpqZKeoZ2gqrCqq6SqoKqbpp+ooKyWoZulsKSXm6qVoZ6bkqWXnqqYnn69g4dytHKEnYWtaHi5xLhxk6KjeqaZmXOqgnzLwMC7cYuiiIKffZWYiJ3AvYKWnZ2NncLBe4J8ko2aw8B9a6Wyb4yBb8p6f5t3koOOgXZ6gYB5cXp/h3F4hY2TeW13lGNmX3lkYGWCY150aGxkYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajucO0sK/AqaiUo6+psK6tprK0r6mlpqaxq5+rmJqin5yaqqeinayipailpLSknaKTpq2ruLOnr6KRkZmdpZKRoKGYm5+dh6espKutwMCxoamvqZeRnp2hmaKjqqOToKGdna2uqayno6OnoaWlna2pkqSaqK2pm5ypnKyhlpallaGil5x/zpR4eqSBeJSWm1+uj16Op4GioHynlpt0q4KAr15jjap6p4eFoHSXk4izY4KrhqGNjbNqhK90fZeIuGGDrVmjzW2QdXvae3+ZcH6HknZ+ZXuIdnZrfIhvfoWRkn5tgo9gcmxwZ2BfeWRccWhqY2ZgUlRSV11LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK2zq6WyrKyrpKumsKqgp5uZpZecoq+foJ+op6OloZ6wrJudlaeurbGqqKyglJKbn6WTj5+lmJ2no56upKuwqMDGs6ipsa6Wkp2boZefqaqflaCfnJ2tr6erqZynqKSiq5Oss5eloqqpnaOmpaGwoJKZppmgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGMnX6re4mUj5+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4qLkpCDbZKQZnB1dXBgZ21lX29paW5nY1dTXGFZUlNDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJ2jjqOjoqyvtq6osaaoqqetq6unoqOdmaKVoKWqn6GloKioop+dr6yYmpaop6+sqKapnpeUmqOikZShrZudpqOvrKOstKq5zbKtpq2slpWcnaKYnq6snZagmZ2fqbKpqqqbrKuko6ybr7GiqKuupZilqqmpsaKSlqOkmpSShaRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKrhH+ug5t2roGmhoafepmWhntmgKOJpJmGgqR9qX+ClYeuXn2pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiNjJiPgW2alHBueXh4b2xmZWVxcGZ8aWJdV2BpWFhVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6SenaanpqOcq5qirKGkn6+inZuTqqS1sK+gqZudlpSmo5CaoqigoKWcsKakqLGtt8iytaqrqZWRnZyimJ+ls52aoJScn6esrKSumq2qo6KqorOuoqqzsaGaqaiur7aikpaip5ibkXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9flKmDo4iHoHqYlZp4qsl0maSVqKqRk5qMgJuKmcbGeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkj5Ceknxxl5OAcXt1fntuW2ZqcnBlgWpfYVhkbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrmsqqGmmqilqquqp6CmpZiqo5+vq52moKyanqmlnae1n6KXk6mqtrKsnKWcoJWQpayRmZyno6Cppq6hpKepsLXCsrOqraiTiZedpJqho66mmKGVmJylpqubsJ2uqKafrKS3rKCxua+dm66nsrOzpJSXp6KZn46CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GRi59+mpaWinaemIqkmKSpf7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdY+SpJd7fpOSi3V7c4V/cVxtbnhyaoFvW2RfaG5iZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayzs6WfoJWlrq2uqqedpqaao6ehs66iqaayoJmppJSjtqKilZeiqbW5o5uinaKTkKGxmZ6cp6Whoq+unaSoorayxLGtqa2pkYeQnKecoqScpZeemJmapqSpmq+irqWmmK+lvK2htretnZ21srixs6aXna+go52Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOblYqefJiZhoePc6+CpZuijqaLk52KlZCabXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHiQlKaYfYyNlI14fXmPgm1peGl5cm6AdV1lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urSelqekrbWhopmVo6inrqusmaain6agoLWnoqmnsKOUrKOOpK6jnZCamqq0tKSdpJyokZSXrqCgnaeknaectZqhqqS2rMOwqaupoYyEjpyhoKailZqanJibmaakppisqK6jpZutpr6slL2wrJ+isLO5q7Smmqixo6eXeqiQfXywd4qBpKWInG2yb6CHrXyhjoOnlZiArIiFroWflKmgoZeGn4CZlYB7kn6rgJ2alouqeJ2fkImTkoB5r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZKmmYKVjpiNe3uEmH9rbX9jfnRugHpgZ2VxbmhnZ0NaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqcbCtsGzn5qsoK64paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuppJaJmpCusaymn6aarJeYj6yhoZ2loZqlna2YoKimtqnAr6WppJ+LgI2bmp+mnpKUmpqUmpqlpKSaqayspKWfqqi+pJbDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbGdvmZiMiLBbfbRbpINryKJkn4B7vFh2tFqyfVKugHqsWIChbpiQqJuLl5GYmHx5j51+ZHR+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urTCs6ObrKaltqigi5qgn5yzs6mfo6CetZigtKiqrJ2vrZ6sm5WvqKKOiJuOr6yop6Kmma6SmY+omqGdpJ+ZpKOlmZ+jqrKpva+lqJ6djn2LmpWgoJmPkZqbkpqXqJ+hmqiuqKamo6Wpu56gxqakqKGrtLWsrqaeu62srJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Da6OBb6uEbJx/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SOZ3mCe2BsZWtqYlBhWlNqXEBVYUJOKj06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7mxvbKina6mpbKmnYyYpb+quLKoob+mp7KcnrGcuaiera+mppSUsKyXjIObka6loqyho5yqn5iLo5KmnqecmqGoopmeoaytqrmuqKObl5J7h5mRppuTjpGYmI+Yk6iaoJipqaGqp6GjqrueqMSioK6jqrO0qrCpoLqnrq6ac3WqpLeGZYmgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1tZYp4b26CmXGBempxaWeJlpWYcWlphIdncIZkXYhiam9ZXGd+d6ZfYXGOkW5lZICNk4+imJmZkZiffYeQlXZmh3hpjmt5f3lkbGNmbGJLZFhKbFo6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm5srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraaNl66pkIyFlZatnqaroZ6jo5+Ri6SSp5momZajqqCWnKamp6+6rKyam5OSe4SXjaWYjZGRmJSNl5WolZ+YqaObsaaeoqu5n6/Ap6Sypaywsaqtq6e3o623loqgqKW2nYmWopiHqZqQlJ2SqbOZm6OroLGWoqCdn6KcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJqXlY2Lk5KKj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGOkJCPnZWhlpqYooOIlY1yaZB3cYt4d3x6amxkY29kVWBYQGpbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNcXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptKeokZisoouHiY+bp5aspaCZp56ekpWjl6iaqJmUpqGjkJqnmaG1u6irmZqQjXuBlIuglIqVkZWQkJOXpZCfmqqgnLajnqert6euwa6jtqavr7CsqamzuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSKgH1mi4V1hnV5iINznGqFkJSTkIl9jJaSkpeUopOemKKEiZmHe3KWc3qLf3J8f2pvZF5wamFbX1luY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MDY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOppq2gp7WqkJCdpbS8r62toqOaep2isaSlsamXm7imo5SZqpyOhoqJnKOPrp+ilaefoZKXmJuui6qWj6iZqIyYqY+fubalppibjYh5gpOLmpOKlZKUkI2Sl6KNnZ6onp+4o4CEr7Wir691pL2jsqB3eaCqsrqUdayknomAqn9kXGJ2oI6knoSXfW6Ts52jp62qo2Wdn5JzeZmWcICYqJdsf6KnimWcpZyRl5iWjJKckYadmpCVg5KHj46SiYR3ao6GdoZwe4aBgGFph4qUkotadZWRaGiPj3N7ppqZZXmZh4N4mGqEi4NveYBrcWVfdnBsa2hcZ2ViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMxNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6etpJKWq7awsqebq6asl3SMna+fqKqnk5e5n6CPnKSdkX+JiJuejauaopWnoZ2OlpGehHWuj4immqiRl6SJnLq0qKCZmIuJdXeTjZWTipSRkJSMkJOgjpugppmcspaAjJu1nbOMko+8p6B+p6J6oq62gY6Opp6Di4aQsamvjIqWo5p5gIushpydoqepp4eVhZh3pZt6h5uBl6eCgnucsXqKhqCXmZSYloKRl5aEmpljeYeQhI6PkYqDbXCOh3mAcICBhX+GdIaElZF4lmiSdKCadH2ZhKKeh5h/k4uDhJlrjo6FbHh7cXFnZHhvamxqXGZramV0XF9JVExRQEU1LlpUVTcpITA5PT42NDM1Njg7Oj0+PkBEST9JRUpLR1NYW1lbYWFpZllRSDlFSzw+YVZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorKCosaanqaWZlK7IvrGil6eptZ6PhJ2snKeioI2Qvp6ajZ+aoJB8ho6ZmIisnKGWn6CRjZOJhoCRqI2Hop2jk5eehp+6sqeem5KOhXB1kImUkIqUj4+bi5CSn5KXoKSWnquHn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFk4aNlJKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjm4SagY6OhoqZcY6ThWh3dHx3aGh1cWhoa15kcG1nbVhnR11STTJFNDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mopqugpLixqqunmpSgo6SrpJelqrejr4Chp5ylnp2JlL2Zk42hkp6PeYSWlpGIq5mbm5mhhY+Md5ucj5+QiJ6km5WZmIejua6lmpyMjH5ibY+Lk5CNkIyNmIyRkp+PlKChmaGnfqGnh62doJatj56cnZGFgKCNq66Go42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXuWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGlmoG1bbop8Zlpgg39iV1Bvd2ZtdHJram9ea3BtbGlYaU9dWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaG1vKyuopmYoKKlrK6hna61oqiSoaCfppuZjZi0mZCLn4yVi3WBlJKNiqaWlZienn+ShYaspIebkIqYqZiZmpKIprGnopaaiImAaW6IiIuOjoqLjZKLkJKijJSeoJyhpH+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SehICjYJ2Zs5ZxfJefs3RzW56yg2pib3R2cWlvWGtscnJmXWleYktFPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltZWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCbop2jo6aunJuxrayTmKGZoaSZmpSeq5uLiJJ4i4VxgJaNiY+hkJKUnZd9kImOqKCHmI6KkaOTnJuNi6mopZ6Ql4eFfmt7h359j42Di5CQiY+UoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl45/n26akG2nml2ofni7a36qW46EXbNnXG5yenhraVxxanh5Y2BmWGJBUUVPN1ZDUm81S1paX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Sbq7qysKydppycqZ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhouekp2diZCpo6CajJKKgIBpgIZ4f5eMe4iOjoiPlpp/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/f5uTp3aCnW5zfZRvmXNrpF2VdkhlZGFzcX5+bmZgbGl2e2RlYlJeV11VV0BaRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdRW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrZmEVF6gprO5s7OpmqKMnKucnKmUoqukoaiPn56dmpmVmKGdloiHiXeGgW95lYWQm4t8kZOWiHJ/iJKhm3ORkIGJmZWgm4WOqZyalYuLinyDbISFcYGhjHiFjYiIk5iVfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WiY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jl9hZtwenqXa5t8eJdzbqmkZ2FleXCAhGtnZmRudXdnYGNUW2ZRUWJJV0pUYFdTW2VqXGVRRkNLTUpLQktFOE9AUU5YUllPU1FhZmVqUmN3eXdJRkVjXWVaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5uZhZmpoKCkjqWooJipipmYmJOZk5KgmI6HhntwfYRofY+DlJqBd5COj4lvf4aPkpJsl5N8iZGSpJaDjqqak5KLhYl6g3aHgG6Bn4Z4gJKGh5mil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKGZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dypHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdYSbbXV4mGmaenWYclBFfbReanZreYdmamhidHVwblZeVFlpUFNoSVZNWVNWXWhrblZnV01LQUlNS0hKT0FRS1BlY2ltZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/lKGzq6+vtqKikICYqqKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWOiIyBaYSFkoKMhZ2NeoyLlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaatqdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZp1b2NmiIJtcqJaX1tioW1diYxve35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9lqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUlZT11IWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R6fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtiaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAmKudn6aMoqGboqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZaZgnyIh5aokYGirJGGkIqCin6AgI5zaY+lhH2GlI2ImKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SHeal0pI6Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenGolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ5+tjLZ0d76NpJNZg6aNq2F1cnRwfHVxY2p+bmhsU1dbVmFiXWtNXVJdSV5ubnZgW3FZW2BaZ3Rlbm9xYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZulnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj317goWYpo5/paaOgY6JhZV2goeSb2yLqYCDi5SOiZyfiYyUqqOgj4B1lJaIfoF5lK6jf4GbcY+FeI+Kg357cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2Ja4yFW3l4cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm1tZ4xzeXuYeIVba1h5j2lud3JxcHh4cF1shm5pZ1ZbYFdcZWtjVWJVX1FfcHh4bGt2ZWpra3Z9cXJ0c2FvdWJ0e4F4dXmDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjaWZscXVuWltia2RsbHluaGxvYY2UuKimi6GimqakmaWcq6OhhISYrJKeoYmappqpmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KDcJWFe32Si4aGkIV4fYCGmaSOfKehi4aQkIWWg4aOmHdyhamFjpGdkIienoiMm6ifoKqDiY2Umn5+iZatqI+Spo93b5yQgnmRb32ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuBdnSAWHJuhpGBfX6Mal1qZHuFhImAYGl4ept7gouCdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pwZmdle4N6lltcamdudlt7eXd1bnNzgmZcbYpra2JaWl9aWWxxXF9hWl5dZnR+enRvdGNra2p7fXN7eHRkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenpiemaijon6Dma2Nn5WInKKRpZV/e5iEfJKZiYiGh4pzfYGLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ugkIKnoYd4jpiJlYuLnJeFg3qsgpGXmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35+kpGSk5yyppuVnpCNspOXhKWMjJWbn4mQm4KIkYprfI13eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoYiGiZ6KhJR+fYqAgHVvc4SDf3eGhoqPppCDhY2Hg42QjH2IjIqRg3dsgoR9eplqcmhhdIpwfXp3d292dIFdXm+GaG5fXlpdXVNoclVjXFxhbGh1fHxzb3Bka2ppf3xueYBxanBwbGeBe3KCgHh/fX+Ee22CjIZ8enh8fXqDeU5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6XoqGYlZiZlJmkoZ58gJqrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4eEg5B/gIaEhn2HhI6bnZKHq5+EcouQhpORi52RfY17qoSNkpiWj5yWh4abpp+imp2Fg5GamZiQmqafpZ2dkJaAkIl2e4eOhKV7fI6QkYaYqqGdk52PjaqOkYCdjImTmp6Cjpd+ho6Db3iFcnRgf4OPhnWLmIGDj4KGhX6Fg5RteXV0kqGKi4WahISMc3+JfHxycnuHg3p4io6DkqaPhYOOgYOKiYp3homKjH1vbH6BfG5obG1nX3p/aH17dnR2dXt3XF9wfW50YGNbXV5RZ25UZFpeYmtpdnp+cWxsZGtqZ4CAbHOBbGx0b3lvhXluh4B2goB+hXZxgo2Ifnt7fH97gopgaXxqdWhpgmVqY2BpXGN1aG9idG1sVWNxeWVwenpzZWptbIuJnreaoaSfkpGWmIuan5+ee3iep5GcioellIuYmXl6jIV8iZGDjIKCgm57f3hzgYV9i5F9a2h9gpiJgYiOfH2GhId9j4GQm5uRiaicgHCMi4yTh6GiioWMfKiRiJCSl5OWk3iMo6CgnZaZf4CQmpiSjJqjoaOZl5Gbfo2FeICDjoagf36MjI98mKSgoZOZkI+mjY+CmpGJk5ebfpOSfoeOgXR0gnB2YH6AjYZxipV8iIxxjH+ChYaOZ3dxeIuYkY9+l32HinKBhnt8cXh6ioR6eZCMgpWlk4uFkHuFhoeFdoKEiYh7ZnJ8f3l7cWxqZl9+c2h8dXZzfHOAal5gc3Zwd2RjWV9eUmtpVGRZX2FoanZ5gXFma2RsaGWAgWttfmhvcWt9eIZ6a4yBc4GBfoF0doKNhn58en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykaSlnY6QmI+GnaCbnXx2paGOmICMooqImpZ4e4aHfoOJf4iCgX9xf3t0doKFfoqReGdjfYaXioKKjHh9gI2DeZaBlZiWjZagm35wjIKRlIamm4eNiYOmlYWTi5aXk5J3kZ2hoZeTlnl+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2McpejnqGTmY6PooyLg5aYg5KVmX+YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJN3ioh7gIV8e3F+d4iFeYSPiYqXopWBg4t3iISDgnd8goqGd2B5eH10f3hnbGVhf2lqd3N0dX1xfGJjYXNudHJtYVphXltsZVJjWGBhaWt2eYZxY2pjbWVofYNsaHVobG9pgHyBeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl8eXFfcWyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6l52LjJiQeXuAi318g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd/hYd0fX6Kf32YhJeUl4ykoph/c4d7lJKKp4+MjoqSoJGDkZCUl5GLgY+Yn5qSkJBzf42SlImdnZ6mmJiNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ6MhoKSnH+SkpWHmYh8iomBeXF5a3VsfH6Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Nc4+Ig3iGfXZ3f3yFgHyCjISMlKSPeISCdImHfYB0doGJhG9he3V6cX1vYm9jZHtibm92c3h3c3RhdWBvbHVub1xcX15ea15QXVhjYWhtdHuIa19qZmpjaHeIbmZsaGpsaIF8endukIhzgYSEfXSBhol6g316gYR9fY5yeot4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6ieioqRhoqei5WYfneumY2XfZ+TkZaUiHd9e4p8e4B2eH+AcHR0e2+FfYGAin98YVt+j5KGgISEc3qAh3qPkoiSkZyTpZyVgn2CfY6LkqSJjoqNl5qNhZGYk5aPioiMkpyTj4uMboOPj5GInpmioZeWiZaQboiZg2aFmI6TeoiEkIpwlZqUopKSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV7i3RuhpCOknF1gHuBgYh8ZHBseH2Zk32EiHSQioBzh3luf32AhXuFi4iEjJWojHqHfH6LhXh+cXCBhoRjaHl0dXB8Yl9wYWt0XnBqe3l4bHNwZXhdbmxzbXNYWl9fYmtaUFdYZWNncXF+h2ZdaWhnYmdxjW5kaWdkaWiAend1b46FdIGCg3t1goiFd4V8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGQnYeTnXWBqpWTjoehjZWTkIB0e3aFeHl/cnN7hWtycHptinaAgYducVtYfpGNiICAgHZ1gIB/oIaRi5KdmKGVmHiKgIGNiZyeio+GkpeWhYmVmY+Wi4uNjYydio2Pg22Ji5CQip2WoZyYlIWYh2qEo4JmhZ2KkH6Lg4uBd5OYkZ6RkImJlY1/fo+YfJGNj46akXyKgIJudXBsbW9we4Vpc4OOmIpxd4B1goiCeGZybnWBmY57iIR6k5F5dodzb4h7hYt6ioWCiI6bo4d7g3WBi394eG9sgYSCXnJ0cnBweFpecGBwal5van16cG1tamx2YHBvanFtWlhhYWJuWFFTWmZnY3VvhIJiXWttZGJma5JuYGZmX2drgXVxc3CLgHV/g4B4dYCLgHiFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2eppaFjYR/l5SDkKB1i6CUk4aLm4yVjot6cnh0gnByhXNxdYhrb211bYh2g36AbW5VUYGrlYeCeIB3coJ6gqCCkoKTk5ick5p4knuDjZOkmpOOiZWYkoSGl5mMlIuJj4+InoSPinxyi4WJjoicmp+alpR/k35ohZyHZ4Wgh5KEkYKJcYORl4+bjo+MjI+NeHuSkHqOi4yRlox8iHyAa3ZqbmtsbHt+YXp+jpaCd3qAeIOMfHlnc2xzh5WKfoiGe5OPcXmDb3aMeomLeoh9gYuQnp2EfHt3got9d3FqbIKDemB4cG5scnRWXm9icmBfbG55cGhvZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV55cIh8X1xocmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoF4iINzhoV+jY2De3mVeGZyaoNgiH1vb2t6YGpudH91X3R9eIZ4dHOFfHigj5mxnKWOgop/g5qHgIyef4uak46FiJeOjo+EdnR2c4Bwb4VzcHGDb2ppdm6Dbn19bXVzUk2C38iS1pN8cHWDdoOfg5N3lJGZnJCZe5RzhZCfoZOTkIqSm5OGfpaWiI2NiJGMiJx+joB3eox+iIyKnJydm5WTeo11Z4iRhmyIooSRiJeChWOMkZmOlYqXi42Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t5eVyAeZCOgHt9fn+Gjnp6aHJqc4qPiYGFhHyUimt9fm5/i36Lh3yEeYGPlZqZinx2eIOQeHNtZ3GAhG1qdG9oanRuU15vZHBZX2txd2ZramJmeHJvcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVljmNhZmJYaXNzbWpxdox9dHmGgnV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2enuNdnJ3ind5noubr5ugkIKFd4iVfn2KnYeFoJGPhYyYhJKOh4F0d3B5cW6Eb21ufnJkZXhwfW16fWpoa2OkmsHcru+hc2x2hHaEooWSb5aRlaCVnIGScoWLo5eJjpWKkJ2Wg4CVkIWJj4CRiomWfod6dX+JeIaEjZybmJmOj3aKdm6FiIp9iqOEkYmchIVei5OXio6JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqSh4V5foCAhYx+eGVyaX+JjomCgn+LloVrgXVth5CBj4R+gnp/kJWTmI91c3eIjXVzcWd1eoNidG1wYml2Z1JhcWdsVV9udHlhcmRfaH1wcm5aY3JhYlduWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYeWhox+fpdzaHVxeW2Lem50cIBXcXp2eXFld3mGjGh2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjX+aiIR7cndwc2pvgWtpbXx1XmF4d3txdXtnYGR869q1ycPciHNsdIF2ipqJjmqYkI+dlpOBiXGFiaCNhIuVioyYk3yNk4iDiY97kIuFj4F/dniDhHKHgpObl5SXhox1h39whIGJhpihgpOMnoKJYYOUj4aJhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpc3dsWox8koOFfX+DgISKgnVhc2uIgY+KgX5+kZB9bYFreIWOhZGDfIF8f5GSkJaIbnF6jIZ1bHFscnmBYHRpbl1rdmBSZXFpZlNgcHZ0YG9gXWiCcXNpV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YGRfXVlrbmZvaXN4in5zc4F+enZ6iHOFg3yAh3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3h3koJjdoaFcYqWhZmhmqKKh3Nvk4tyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5oZmx3eFtfeXt7cXGAamFnYX/Vto6QpnhucXd8cZKRjYdqmY6JnJKMhntph4uZhoGSkYaHmI18jY2BgYmNe4+NfYiEenR6gnpwhoCWmo6TlIGIdYOFdYN/ipKcnoaVj59+iGF/k4eEiISJjYCAg2d9kYB+f4KMjpB+bYJ8gnRrbXd0c3Z1a2ONgY9/hX58hH+EiH5vX3JwhHuOjIF8fpCIeXCDZnmCioaLgnuEfX+Tjo+Sg25veYx+dW1va2x7fmNoa2pZbnZaU2lyaWJRYnJ3bGJlXlpqg21zYltnX2RsX25UW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/fH10eIZ4hYJ9f4d1eYmBkpZ8iIZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOan5ughoh2dpV+bXaUl36IkYSKjpp8jJp2fXZxb2xqYXV8ZmJpdXpaX3d8em1xf2VkaGdXnY9ecXOWvMSEdnGUiZB+c5iMhp2TjIh0a4iPlYB7lIuBhJuMfIqGfXyJjH+UiHWJhXV2fYFxdYaBnpWGlY+CgnJ/h3SDe4mXnJeGk42cgIhlfZKCf4WDiYlygX1nfYt7eX9/h4uPfWmAfYN2Zm94eHN2c2xqjYWKgYp/eYKAhIN/al5xd3p9jImFe4CPf35ygGh4goaKhYN4g3yAl4yPjH1ubHqJfXd0b2lofXdlXXFjWHBzU1RucmliTmd0eGZgXVxYboBvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjb3ZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnl5f46Qb298gXFpgXl6fm1tfHaVa2p4hHRrlI2Fn5igmoWIbn2Mdmp4mI9/goqClZiKeY+Wb3pzcGxqZGB0emhfZXJ7WmFyfHlmcHphZWWOsbJ3SmJapNnQl3J7kYuReH6Vi4WZkY2GcGyGkpF6eZKGgYSZinyHf3h4iYqEloBviodxdH16aXmFg6WRhJONg39vfoJ2gniFmpiTipOPlIWHb3qSg32Dg4mDb4F4aICFeHJ/f4OKh3xlfX6DdWNwcoBoeHFvdZiNhYKKe3Z4gIR5gWpbcHxygIeFiH2FiHqIcoBtcIOGjoODcoN4gJiMjYR3bW5+hH93emVoan1yYFl3WllybU5YcnNmYEptdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxXFpZa2VZY3B5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXp/gX+Cf3aBhYmXinGCjXF7hnx6eoSUjHVqen9rb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfn+FgpmKgXyNjGl4cmtsZl9hb3ltX2JveVxkbIN6YXF2X2Vl1eu+izI6PouOgHJ5hYiOjXaEl41/k46Nf25shY2MdX2Pf4WBlYh8g3hudoeEgpZ3boiEbHV7dGZ5goOnjIOPjIN9bn90doJ5hZuPi4+RkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN4YXmEgXFkcWh+bXRxdIGbi4B/hX5zdX2Ac4BvW2t9dHiJgop7hn98iHh5cGuIgo+DiXKBeH+Wiop+dG1qdoCAdXVcaWl4cVlXfVNacWVMW3JyZVtKcHdvXVtaWV10fnRoWWJbZ2VuYmlNV2ZRPV5mXV12Zl90cFtZVW9kWmRweVpoXmBnbWdpbGlweH2ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Ae3uIk4l/aHt+a3R7coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb19hbHNhaHCJemFzdF5jZJugkG5cNVmvtXVqgIl9koZ2hpeGdI+MindwbIWDh3R5iXiJfJOIen5yZ3aIfn2Xb3CGfWh2eW1leYiEpYeBh42Kfm19dn+AfIuYhoGTkJeIi4SJfI+IcXt9hXxpfm1qgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIJ/b3d5fHR+bVdtfnZzi4GGd4d1gYl5eHJtiICPgIRyfn19koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N4aldZWVphcYB0YF1dYGZkaGhmTlpoTkFhZFtgdmFcdW1YWFN0YVpkbnJXal5iaGtnbWxpcHd8kmxphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e254eXaKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHFwY2ZeWWdfcHBgYGdwZmpvinVhdG9bYWRpdnt/vpymo8i4coWDc5R9eIeUg3SQjIhycnCEe4NzdYZ0iHeUiHl5cWN3hnmAkmhyhHVmd3ZjanyDiJ6CgH+Ojn1xfnOEeH+Rj4J3lY2Uj4eCiHqJiWt4eX51aHppa395c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp+fnF7dnt0fWFVdXxycomDgnyCcIaJd3hwb4KCi359eH18dY2Fg3ZocWhsiIJycF1oY3RuS2V2TF5vVVRZc21iUU90eGFSV1hcYXCCc1tgXGhlZGNqZFBbcUlEZGFcZHFeXHdoVVdWd15cZW5oVmxeYWpnZW9vaHB3e5NuaYiLeX5ye355goGCfHZ9g4iGg3B2g3Jtd4KDfomLlH9wgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1zYWBhcWxsaIluYHNpWV5kbYB3qdqqx4aHsnKKeHCNdXuHj4B6k4qAdXR1fneAb3F+bYV0lIZ4dGxgeoF5iI5lcYNvZ3VuW219gZCTgIF5kpJ9d3pthnV/kIuDc5WKkI6HhYV7f4VtdXZ/bmh3ZW18dm1qdnZ/f3xhYniGemh1dWN+emd0ho6MlXt0gHVxgHp8bH9ZVXJ9b3SDhn5/eGuIhnN4anR/g4N9enx4e3KKgHxzZ3NlbYuEbXRbal92ZUhub0xbYldXVnhtYlBTdHZYUFVYXmBxhG9cYGNtZGNebmJUXXJHQ2ZfXWZoXlp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniOdGuOjXV/dnh9d4GDgXt0fYOIiINvcX90cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVZqdGNgW2hvcGeHcmFxZlddY2t/fMrOh7mia21ui21yhXJ9hYp/e5KFenl0eXV0emptdWOEdpKCd3BnXnyBeYuJZXGBampxY1hse4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmJteHJqbHF3fXx6XWV5gHdpdXhmgnZndIeMjZR8codpbn6AeW18XVdwfW1zf4p7gW5uiX9wdmd2foB+gXV7cXp0hnt5cWVyYW6MgmxzWGtfeFxJb2xNV1ZeVFV7a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1We15PVmRwWltqaF1XZ2BfcmZqaHJncHN3hnhulYp0f3p3fnmDh4B1c3+GhY6CcHB7d3d1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2RXW2Bpf3i+rnuft25ic4dodHxyeoOGe32NgHh4c3Zve3Zlam5hh3WOgXNqYl5+eHmKg2ZxfWhqa1pWb3iKo4GFf3GZk3GAeHSBbX+BkIZylIeMh4OIhX15dHJvaHlham1gbXZrZ2trend6d1tnfXx4ZXN9boR0ZXWGjYaVfnCLZmt6g3RsdGJbbntrdHyLeoFmdIZ9bXBndH53fX5xe2t6e4F5d3BlbGFtiX5tblZrYHdWS2tsT1JPaE5ZfGdiTlV1a01QVFVeZ3aDZl1hcGhnYFdpXVxraEpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbGRyZ3JwdIB4cJmFdn9+eH98hYd9dXOCh4CVgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6DgYN7fouDe3d8d3eZnZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbU2RwZV9YY3J1aXZwZWViV1xcaIBwb3KAc4llZXl/anR2c3ODhXiBhHp3dHVuanpwYmdrZ4Z0jYRuZl5ffG97iX5obHdmaWRVV3Jwjad8hHx2lpBzfHJ7eW16epCEdpd7h4aChoN9dXBybWd1XW1oX2x1ZGdmaXpve3JZZ4F2dWdwgHiCdWF3hYt8lIBui2pteoBwZXJlYGx5ZnJ2iXt9YXWDdmlrcXR6cHl4cnxmfn5+eHZuY2VhbYZ8bWtWamJxVExpa1BMTnBHXntmYU1VdGRKTlNXYWp3fmVdZ3NpZV9WY1dicF1LS2tYY2JVVFVzV0xZdmRaX2tgXFpjZV93Z21icGlzb3F+dXSZgXd/gHh/foWEen12goN+mIVucnR7enRxhYWPgoB6i3V1kYB9gZSOgIWEfH6Mhnp+gHZ7o6WKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaGVWXVtbWlNjbmVbWGF0e2ppbWhfYldfWmmAaWtvgGdsYWh6eWt0dHRvhYF6f312dW56aGp5al9lbmiBd5CEZ2VYYndpfod6b2lvZmZdVVhvaI+ndoF6fJGOeHVvfm5ydHiOfneUdIWCf4WIdmpydmdob1xtZV5tc19nYWp4aHttW22Dc3Npb4B+eXdgdoSEeI+Ec4hxcHl/cWNxaFtudmRwc4h7eGFygHBnaXhzcWt3dnR2Y4N7fnd1cGNjY218fWtrVWliZ1RLbGhQR1JsRWF3ZmJNVHJdSkxUWWRrd3plX21waWRcVl9Vbm5XSlNoWGZeWE1VbFRLXHpfW19rXV1bYmVgemhsYW9vdW5vd3V6l313f4F5gH+Hhnp5eoN9gZOEcXR0fnl2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyef3qIh4RscoJ5doGAgnRuhm98gHSKgGpwbWRkWF9aWlpVYmpnW1pfdYJpXm5sXGFWXFxrgWVydH1pal1sd3ZndHdyboZ7fn15dnNsemdpeGZdZHJneneSgWNjVGVvZ4KEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55i3p2jnGDfX5/hm5kdnNkaGhdbGJdb29bZ15sdGV6aV10gG9ya3F7fnV1YXSFinqHh4B/d3J1fnRhb2xZcHJicXGEe3VkcoBsYGx6b2poend0cWWEdHl6dXFkYWRtc35qbFRpXl5VTHNjUUdXYkdjdmZhS1RwWEpLV1hna3Z6ZGVtcGZjWlhdWHZmVEpcY1hoWFlJV2VRSGJ5Wl1gbFteXGJkXoBpal9vdHhub252g5d5coGAfX+Ii4Z+dXaGeIaMfXN1dYF5enqCjI59foSJanSWgXuKnX1+hXmAen58hohzcY+tjHt7hpB+ZnGIenR9fXZyb4Zse35tj3picG9hZV5lVllZV2Nma2BdXXOGaVlxblteV1pcbHtjcXd2bWNbbXN0aHV2cW2FeX+AeXdub3RlaHRlW2d0ZnZ2kXpfXVJlZmqCgXR9YWNpXFRYXmJjkKVoeXSDhpB4bG55Z3dse4R6dIhygHh7eH9oZXZtYGZhX2pgXXRrWWVdb25iemZbeHxrbm5weHl0dGRyg5J/h4KIenZvcXxyYXdjWm5vYXBxgXxzZXGAZF5tdmljZnh6c21ugXRzfHNxYV5lbW99ZWlUaFlaVU55YFJLWllIYnRkYUlUbVNJS1pXaWxye2NsbHNjYVlaW2F2XFNLY11YaVNXSFlgTkdqdlhfYW1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCBkoiEgXZ1iXOLhnNxdnaBd3x9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZoXt7gImVeWR1iHlzeXZrc3B/a3l8cJFyXnBvYGdibFRaWVdoY21mXFxyiWZTcm5bWVhYYGx2ZGp1ampfW210cW10dHRrhnx/gHx3b25sZGlxY1trcmR0do9zXFdUZGBxf35xglxhY11TWmBcY5OfZXJxhIOQdGtqeWxub3p6enGAd39yeXp6ZGZ1Z15iW2FoXF53aFdiXXBoYXhhW3t2amlyb3d0c3RpcIGUg4Z+hHZyanB7bWV2V1tqbWJwcoB6c2Vvfltgb3FiXmlvfGxrc31ycHhrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmBHVmtRSE9aVWtra3xlbW9xYVtaWFlscFdST2ZXV2lTVEZaXE9IcnVZYGRtY1hhYGFejGpjZG15eGtvaXV5hntrg32AhZl8goR5fYdtj4Zxb3d6fHSCgn2Lj4OClnR4gpSFgZ+JdYF/gXR/gnCHgnVvopd0e4aLh3tmd4tvbnxwZnhxemxzdnONa150bmFnZWtSXVtWaGJsbFtccYxkTm9uXVZYVWdpdGhjdGVlXVpudW5wdXV6bId9gHyId5BzY2VrbmFcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFtgWWKWlWNucIOEinNqZ3luZXJ1cnpreXR0bnp+dV9mc2NbXldiZFlhdWZVX2BtY2FxXV1+b2hpc3FzcHV1a2yEk4GIe4VxcmZue29xblNaZWplcXOAdnNibHZVYnFrW15uZHxla3V8cnJyam1fWWNpanheZlRlVVZQVW5YUldUT0hlcl9hRlhqTkhXVFZtaGR8aWt3amFXXFVbdGRTUlZoUVlmVFNIWltQTnh3W2BmbGlaYmBeXo9uYmZreXVubml2dn9+bYOAfoaXe3+HgYl+a5KIcmd0gHt1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd6c3lsbXF2g2dkfGxjZmdoU19fVWdgbG9cXm6OaE1pbWBVVlNvZnNsZXhkZV1ZcXVtcnt4c22Je4B3nHt6bGFlbG1eYG5qZXB5fmdaVlhga3d7em+DXmJeZ1ZZYFdjnIhia3GBhnx3a2p2bFt2cGt5aXVybW57gHJYam5eWV1WYmRYZXFjVF5iaWJibVpgfmtma3N1bm13dmtohYt+iHqHbXFmb3tscWxiWF9oaG9zgHRzXmltU2VwZFVibmF5Ym91e3Vqb2xqX1hgZmh1XWVWYlZTT1lmU09dT09IZW9dY0daaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJfZk5dYlRTSlxaUVp2dl1fZm1oWGJhW16OcWNnandxc21ndnN5g3OBg3uIjX58ioeOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjY2MjY2Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8wMDAwLlxwbm1ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMeHBwcHR0bU2pnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eIh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhISIioqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkImQjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIeHhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNhoaFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eLhIeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fHx9fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIqGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii4yLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTk5KSkZOShpOUk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpGOkZGSk4V8lJOSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSknyEkpGSeH+Tk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJCSgm2Nkolxf5GRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5CEZ32SgHR+kI+Pj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj4ZocI98dHuOjo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOgV1pdm1le42MjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4hnZm1eaWd0hoWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dXZ3cWB0bmFwdGplaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGdjZm5tXWx1cGViY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl1mam9xcXN0ZVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9OUV9jZW5vb25iT1FUUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTE1QX2hnbW5sZ2FSTU5PT1BPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLSEZJTlhmbWhsbWxqaGNcV1VRT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJQWltdZGlvaWtsamlqaWtrY1JISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+Pj1MXmdsa25rb21paWpsZVRJQ0RFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8O0dLR11tbW54cWlqaFZIQUVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz47Ok9pcHpzbGNJPUBAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk6OkFXdHFYPzc8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTw+OztXXzo6PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW5APkRFPz9BO0ZYOz09Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE7SVs6PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlRPD09SUxFRnV3TTc4ODo7Pj5QYDs7PTw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+Ql1qQTs9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfV0+QENAQD5GbnZNOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/P1d8gVw/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJR0hIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaDgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2NzY4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4yLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo2Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmLiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojo6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD49PT5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRENFQ0VFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo/QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUk9OTExMTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdFQkdKR0xKRktOS0tKSk1NTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdFR0lGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NCRlZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZW2NgVllicl1dVl1aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLem5wWFpcW1JTUlZWVFpadINZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ViloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTEtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV1bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkdIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUducnR4eHl7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3BwdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3J1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUtFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENISktMSkZGRkQ/QkM+PEJHP0I/QWRwdHd7enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSURNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQkFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEZJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0dGSUxKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSUhFTklCRk1MTk1PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKRklIS0hHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT1BOSkpITVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVHQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pGSkZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5PTVBPT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOUE1OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREZEREhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJDSEVDRUVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdm90TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkJFRERJRUZFR0VISEZISElLSUVKSEhLSEZGTElISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPU1JQVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQkZFRkhGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdHR0ZKR0RHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NIRUNISUlISUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdEREpFRUpMTEpMTEdHTUlHSUtIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OS01NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdMSkdNTU5MTU5HTE1JTEtJSk1JSklKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVFQ0FCPEJBQkZESEdMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA9Q0RCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpKS0lISUdLS0tMR0hLS0xMTEtJS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSExKSEZHR0lHSElFRkxJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEREJFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0tJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0ZGSUpOS05MSExOR0hGPkdHTElLS0pMS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk1NTEtISkpISkY/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVF5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU5ZYlxgYF9iY2JdYWJXX19UUE5PT1dRXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVFNbWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqU1dWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRklLRVFWTEtPSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSVFSU1lXV1FUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHFsbV10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnfnZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZXxpcntdVUxsYHZ1a2l1e3ttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUlIUVBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFgUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXV1hSXVlXXVZUUFlSV1dXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1tdYmNkZmRlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1FQS09XU1BOVVBOUU5LU1BNT1VTTlJOTU5RVFBUUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWF5cXl1cXWFhXltiYmNnZmRkYlhfYWJeYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZTVE9KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYWFVSUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRiWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1ZRV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldWXF5aXl9gVWFcYWFeYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWFpXVU9STlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxUU1NdWFpdXlxgYGBWYltjYl5hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1BOUlpTUlFTUlRVVEtRV1ZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFRTVl5ZXV1gXWJiXllfW2ViX2RkXl5jY2FeZWZpZGZeXmRhYGFhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVlVUVBTXFRVVFVUVllXTFJaV11aXFJPVVNYVlZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlRaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVFNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFVWWFtaW1lZWlpYVl1fX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVhUV1taWVxZWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllaX19gYGRiY2RlYmRaYmZjZ2ZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZUVlRYXFxeYGBdYVxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFpcWFtgYV5gZGNkZWVmYlljZWVoZ2ReY2FgZWNdZWlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWFtcWFdZXmBiYWVhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXF9iXmJkY2VmZWZiWmRmZmlnY19jX2FmZVppaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2BSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcV1xeYGJiY2VkZmRlZmRcZWZnaWZjYWJcZGdgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9dW2BhYmViX11UXGBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7e3p6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8e3p6enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjI2NjY2Ni7DBvr6+vr3K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIyPkJCQkJCOu87Ly8zMy9vm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5eXl6eG9vcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fH2AgoKCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt4eXl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx7fHt9fHh3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fX19fX59eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6fXx9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fnt8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8enp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3NycnJycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3RycHBxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzcnN0c3Fzg3Fvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnN3c3Nyb4ORb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFycZGEcHJwl49ucHBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXJwiKR1b3ukkG9wcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXCBr4xth6eScHFwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycX2uonCPppVxcXFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxgrKpkKGxknBycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3NzcnObqqKzp6uVcnRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHh3faego7CfnKGBe3l6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx8fHyIppebrKCjooh6enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX59foigkZCem5WYj35/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgYGBhqipoZqemZiUfICBgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f3+BgIKVsKWmoZ+iqqWJfn19fn9/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH+AgoePobKqnqahn6CiqKuglIuEgYB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYaLmqmuqaOcpKGfoqGgoqSjno+CgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoOMmZ2Zmpqhm52ioJydmpOIg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIGEi5SWmZqMkp2bmpaMhoaHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSDgYKBhJCYlYiOmpqOh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCgouWjZOXjIOCg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgYKQk4SCg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAf4iPf4GCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AipKAgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCOmIOCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9i5yNgIKBgYOCgZWahoKCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYCLlZKOgIKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhIOEgoODgo2JhY2CgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoeHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaEhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIODkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGhoSDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gIODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoCBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4CCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fH+BgX2Gj4F+fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6MiIiHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjYyNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH18f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399fn9+f36Eko2NjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH58fn1+fHt8fHx7e3p9fn+AhIOCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjIyMjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+MioqLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSjouIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGPjYqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fX18fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/hIOEh4mKh4mOkI2LiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4qGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjouMh4SFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeGhIWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEhIWDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn19foB+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH9+f4F+f4CCgYCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fnx/gIGAf4CAgHyAf4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH6Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KCgYKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSEhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hoOEhIOCgX1/fnt8e357fHx9f359fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGhoWEhIWFg4SHhYOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31/fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBhIWCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIeGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoKDg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXyAfn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NTU1NTU1NTU1dXV1dXU1NXV1dXV1dXU1NTU1dXU0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dXV1dXV1dXV1dXV2Nvc3dzc3Nzd3Nvb29za09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR1NTU1NTU1NTU1NTU2K58gYKCgoKCgoGBgYGAj9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QT0/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tmRO0RERERERENDQ0RDP1zT09LS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLZlEBISUlJSUlJSEhISENg0tPS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLS0tLT2ZlNVFRUVFRUVFRUVFVRatLT0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NTU1NXQy8vKysrKysvLysvMzMzT1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O09TQzs7S1M/P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1dfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdHTuZ/Q0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTNs5eaurqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWlr6Cip7LRkn1+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjk2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9l6HHhpq11dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZik2qSZtdTTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0Zqdt9iimbXU1K+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekoNLWopm11NSjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQUNGREFCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosnU1aKattTOnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+30NajmbbXw5+g0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vkabaopq02bGkp9bS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cm2rGDxta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0dPRw9TS0sLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89PkFFTExBPTc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tPS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT43ODY5Njc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4Nzc3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY4OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSEBFPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA8RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKWmpqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqWjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKimoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboZ+Wk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop6cn6Cem5ORkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGeqbWTkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaakpKSjoqGgna2jlpOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6OqqaOkoqGhnaONipuZmZiZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKKirK+hoaCenJqnc4KenJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoaChoaeipJ+enJmaoGF8n5ubmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgoJ+nlqWfnZuanpNZeaCbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp2dpI6bnpyamqSGWHShm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJqamaSPkJqbm5ykeV9vop2cnZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ybmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmZqjjo2VmZudoHhpaZyenJ2cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJiYmZmYpY2Kj5abnZx4amWUn56enZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmYlqWPhImSnZ2Ud2pkj6Cenp+fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJafjICCip6eiXRoYoufnp6foJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXnop5enmcnIRsYl6NoJybm56dnZ2doaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWi5mThHd3mJ6HbWFdipeSkY2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJCRjo2Zm4lykJychHt0ZIONhYeBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaCgIGSnYh4WoeTlmxue3OBh32AgZKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9ymJR0ZE91i4xgXHFzg3t9fIaOjYuGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiImEf4J+faCHX0tJdIN8Wkpha3qEhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Li4eSiY+eeElCRXR4bVU+TGRzi4uNiYmQj46PlJSYkJWcmp2eqK6yr7C1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp2cop+glGFTW0p0cmNXRkVTbH+QkY6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqqmvpIRWgo1UdHxsXFltVV93lp+foaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqaenqaN0asC9UH+Th29fe2tWbpuhoainoKKirqurqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKaioaGbZYfGvWWpoZOXXnGDXWCXnJmioqCgn6ChqKCcnqGloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mppyfmV+Ntb6byqSTqXVor3JXjZubn56gn56eoKOdl5qYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfW1VZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaeprbGyr6ujo6RtgpWVqMadkqGERqyNWIahn52epaSloKSzpZWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp7jBvrm2t7OurK2vhH17bK27oJyagFeDgWeDqKGXnqWimZawvqCdoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsrfP3t7Yzcm8t7m6r4l4ZGqno5qWintoa3J2eoeLhYWEdm+NuKmjq6almKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2bHBoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tba7w9fg2M7Gvbq2rpp4alBjlISDhHpybWhobmtsbGtmX1p3srSqtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vb/E1M+5rqmknpSAZF9KXHxucHdvaWhiXV9eYWBeWlRut7KqtLywtbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXZubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcnMxqGRjoh8aFdYSVNrZWZuaGJlYFlbWFpaWVVss7miprG2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/aWZoYWtsZ252cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwMKvlHRtZFpWV0VOZ2JhamRgZ2ZZWllYWFRms7yypqqpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx+dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm0x7qAWVNTV1VAT2ZkYWlkYGZpW1hXWFNiqbiztayupaSjqKSgn6WZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsTCsnlRS05PPVFjYmVtZl9kaF5ZV1dkqruquLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9ueXhjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8K9gk9NTUBNZ15na2pgYmFeXFlkpcG7ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7FyL98U05FR29gYWFsYlxdXltdm8fCxMfBvL60sbCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXDrn9UTUhqY1xfbl1UWllbksi3v7/AwLq7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcO7hlRJWV5teYFQUFNWhsjDr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkY2pjZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEwbqLV0dOf5WSRUtafrjLvrDBv7q3u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dqZmldVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1o67vrvDtrnHt7W3ury6uZZuSnidkUBakLa8wb65xrzCv7zFuLa3tLi2tru7uba0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZvaWVsaFhYTktLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MV4rMu9x7i5uK22s7a5s7a0tIZ8m4lWoL/Avr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibWBcVElLSkRKQ0NHPjo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNetdYK9yM/CwLiutbS6vbe4sb+/m5WBl83Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcWZsaW50bnhjZ2JcY1FLVEhFRUNHQjw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRmHF1sNHRzMrEtbq/w8i+vrS/w698abXMxcK+wby/w8zKx8XGwLm+vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYVzdKjMzMvNysbCw8vOwby4vLq5dVi2yMbEwMC/xMDKysPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW14fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qt28K+tr7Avr66ppyqs7fEwKV5d3qexMbLyMHDwMDJysG/u7qwtnZWtcbFxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNocF1bXl1ZUkZEQ01JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W0ba/Ovba5wLyqfW5obm10gpeYc3l+mr6/x8C5wLy+xcS9vbiyr65uVKnFxsPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXtwbmlbX19ZU1BBRkhHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsHWCtL21tcGkhmlaXmBOU1tccHR4hKO4t8K6s7u3u72/uru7ra+sbFecxcPDw768v7u7uLXBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdW1RKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaWEeIyisLWcamZnVVlfSUlNUVRueYmosLe+ubK1sry5vLa5vrG0qG9fisHDx8PAvb+5s6+yvbquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NiXF5PSUI/PUlERk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8anh3t2jaKXYFNDWVVIYmpVT0VKZZCjrq+2urW0sqy8ubi1uMG6upx/bHq8wsfCv7m6ta6lrLOxprCtqJ6goKWttrXCt7a0pairqLC2s7K6tru7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnJuY11nWF1dU09NQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiPbk5KQGVZQlB4gJNoTENeg7G1s7WytK+su7q4trm/xLOfloJ6qLy7uLWysa2tn6Smp52kpZ2WmZman6muuayrq5+lqKSrrq+nsKyvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdXFBOSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLWVjIiEe1hGQlGIWElKWXiOgmJBVaS5s7SysLGtsLm4tru3ur+tsbKqn6C5rqmrraujqKGdnZ6XmKGVkpaXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0bmRVYWNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K7qZiZlGhNQFR5cU9JSUtonX9aRVaxu7Gss6+urK22trK0ta6pop6bm52ep6eeoKipn6GnlpuXl4+dlI+Qlo6Xm6SooKCioqGlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5dUWhUUE5HUE1MQlBRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpb1mRFOhhFBYSUtgSViNYWVlhK+1qrK0rqqrr7Cys62lnZGXk4+YoJ6ioJyjpJ+dqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOdnp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVlJkTUpIR09STkpOSDxFQDwyQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8ueTkF1nG9QbkpMY2Z2dWFdYnOSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5ier6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlNVYEhJSktTVElSUU05P0I2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8aLVlJLZqNYZ31vcltSa2NcZ2JhbZG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKaknqeurqumorGjmqSmpqqioaqiqaSosquxsqu6qKarp6urqaysp6Cgo7GusrG0qrKuo5mcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZltTWlpNUUpPT1VMU01CNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF3dW9kd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr23v7Cssa6tqaq0sbCoq6iytrizuK2ytKSgnaWfrKGhoqGgmpiWlp+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1Xm1bUmBIUlVIRlVWSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN/b4JwYGNXTFtTWkxMUVlSSE9OSJmsqqmkn5+ZkpGTmJiWlpWMiIuOlZ2cnZ2el56Zp6CgqKWxqqeuo6uutrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcK8t76zs7WirKKpqLKpqqinqJqZnpqqp6CZp6Cfn6eopaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0/QENEPz5DUnipramqpZ+enqKjnZ6dmpyblJOVlJ2dmJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO1r7Ouqq+jnayotrGto7CmoKOvsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSURKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZFO0I+Rjw+OTZOfqqzp6OjoqCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urW6u7W7t7C2sqq6sq67t7+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEVE1EQ0U3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVp8b2FBPVyOrqygmZubnp6Zl5eXkoyOlpaTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcK8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0qGnqSYg6CyraOenJ+amJeUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1dfR183Gx8nMw8XKz8rT19LX0tXW09TIzMbMzcnSzc7TzcXIysrBx8zHycjGv8Ozs8jEy8vLz8fKv76/vcHHxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE5GQEpRQj5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT45Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NUsdG9sq+mnJycoKShnZqUk5WUiX14cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dbX09bYztLKz9HMz9DM09C/yMfKxMzMzM7PxcbHtr/Kv9LNzNDGycjAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NTU4Njs4NTo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvp5qUl5+cmqCgnpucmZWJd2ljYV9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwMbCyMbOztHR0sjLzcDKzMbTz8zOyMXKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1wZWNiX19hX19hYV9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dXNz9XV0cXR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJwMjKzc7Qy9DNzsvOz8jL0NDLzsrCycfJzMvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taylrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxeUhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGBgYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMnDzMPFyMrLz8rNzdDO08zGyc/NyMfLxcfBxsrMzdDRx9DPzs3M0MXHwbi5vcPCvcO5srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODk4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/Ozw7PD04O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+tl3hscHJ7kZqNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycXFyc3Btcnmlx9PPy9DQ09TKxcnJxse/w8XPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7EwsfAx83IxMzKzM/IxMTQyMbCxsjFv8HHzMzMz8LLzMnHy9DExce7x8PJycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69uc3MxtDV1dna29jQyc/P0dPIwre7u62jtn1og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX1xdXl9gYF9bWlxga3Jyb29rbG9vfbnRyMnKz8vNxLrAw7u7u7q+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsrJwcHL0MXLyL+5wrvGx76/xs/Lw7/Du8nHybvIx8XKwL7Cy8bFxL7GvbzAw8XMxcW8wMrDxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWltYUkRMRkJHRExERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76yr7ZsXnl9opGLkpaGeoCFhX92eHVycF9aW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7w8m/wcm7t7u6xsO/vMHNw8a+vrXBvcO7vca8w7q0vMbEwsO3wLa2vr+7zMO8trrIur++y8PBxsLFycfJxtDGwszIssfJw87MwcXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvZFZeWUpGSkVHS0FFQkZKQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183KzsXJxcfBucW9rK6lX2R1hJOLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JhZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7W+sbawta+yvMK8wcS8wLu1srq+wLjIubS7t8HCvbe8xsHDvLWusrW6v7TFt7u1q7i9vsC9sbu2sLa6s8W8t6+7v7W3tMW8vsLFwMPFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxsC/urjJtqqwmFtob4qPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmtubnJ8pMfAuLi1sKutp56iqaeeqqyzraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2vMe5wretqqiwssC2uL2wsaixs7W7vKyutaautq67srGqubCtu667uLvAwL65w7/Gw8XBvMbCyMu4xcfFv8fDw7rExsK7xsnMy7O5w727s4lzd3ZraWFibGhZV1dbQUxLTUpFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5PTk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJFban+Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2FkY2JgX11aW1paXVpaWlpcZW5vaGZnaWtucoGturC1rqWkp6eaoKSgmpylq62kqKKrqqyrsKOmn6qttbaxvbmvt7Corri0tLy4tL2vuLm1srzAssCvpaijq7Gys6i9qquoq6yttbSmqK6hpK+psqaoqK6mqLetsbK3urq7sry+vr7Ev7XCwcfIt76/xbfEw7+7v8TCvsTIzMq/v8TAwKmHc3RzamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX11dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2km5eRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq1q7S5sba2rra5srC6urG3paCkn6axqKuouaqkpqeop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vba7wcCyur7DwbG5ucKzwb7Atbi8vb68wsfEw8S/wMSgg3hwbGJmYGtvYFVZXkhOZ09UR0ZLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTs6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6UnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy2vLKspa+zraGjkWlyhoWGgHx4dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYV1cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+HnamflZWaoZabo5iVjZ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqbitoqamoKisq5mgn56ZnZ+lmpmjm5yesKmrp6urrK2wsrivuLm6sLa8u7qrs7K5s760trKxtrW/tr7AvcPCu7q9l4R6c2tfZV5kZFhUV11JV1xLUEdKSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7usurqxop6pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcYyonJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqCinpyjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2iq6eko6atq7KzqrWwsquyubSvqq+ysrO4s66prK6yuLC6trq9wLizsZSFeXVmX2ZeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxr/FtsHAx863wMS9s7m5s7+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlZGhkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTk4+Ulpafl5mUl6CeoZyWoKGppJ+fqZ2bm6unr7Crm6OkuKqhoK6otqqnp62xpLiwpLegopuZmaqnoZqsua+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrai0rKqnrbOwpauus7GwsK6vp6iosq2xtLC8tLq4rqOUgXp2ZV9hVllYU1JTS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa28u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGVkpSLkZOUmpiclZacoJyflqCfp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWxrqy1nqGdlZWpoaKUrbGxn6OjnZ6Ym5OLoZSRk5iYk5eXmZeep5ynoaKapKWlq6SlsKelo6urraaprq+vq6iqqrOmpqyvtLGuvLWxr6+gknp3c2VhXFtdWE5MUUdRYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy4u7zBxbqxubXEycnAw8bFx7bFxLPCv8Wrt7e9tr26urWyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZVUlRSVWBgX2BhX2FhYmVpgJKSiJCOk5KTnJSVlqOZoJedoKWiraalpaOko5yqq6Wan6WxqqChnqWqnqiin66sqamuraKiopWXopuckKupsJyfop+el5mTip6RjZKTlpCYmJOcoaOdpKGilaChpKWbo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycHBgW1dWVlJGUU5IWVtPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjY5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMm6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW8wLu0tKqsppWam5uIgXKIg3t0aWlpbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJSTlFZXVxdXV5fX19iZG2NjoOQho+QjpmTlJKcmqOcm6GoqauorKeppqSZpa+llZmlr6mgnJmboJ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anaChoJuUkIyZjoyRjJKNlpWQnqKhpJ2bo5WboKOhl6Koo6Ooq6CrsKStt6ajpKKsraqoq6+zt7O+tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExRUklOSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj01ODo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66pqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2FkfYuAin6Kj4mSjZeRl5mioJugq6qmr6yosKWpmp+toJWWpamnnZiQj5qerpeYqKqZn52UpaGfkpGSkZOVqKulmpmZnp6WjYyLk4aIjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaaoqKigsbCmsb2on6OstKqup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFNRTExXTUpNT1JHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpqOxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2t7y9wcOxr7G3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXF1dYWp/eX90iIyGkImXiZSTmJuYnqmboKumpqyeqJqgppyTj5+jmpeXhYSSm6OQlaOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkoeUjouBi46AkIuSkpKgmqGilpSYmJWippmNmaSmqaahoLSyp7K3oZyitqypraSysqa1vLWrrLGjiXlzbl1OUVFMT0NNTk5QS0ZOTkpKTk5RSE1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpaekqqWgqKals6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrp+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnJ1b4OHgYiAkYSOipSRk56hj5uco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY2ClH5+c4mOepCHk5CQnZuampGWkJ2Oo6OOiZqgoaSkm6K0r6yvrZ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE5DU05MUExCUFFISU5STUhKSkRKTEZKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaamqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62noqaSnaa2rKOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlrcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPlomAlIlfO1ZvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZSDlY6RkIOGfZN4cXCFjH2JgZGNkJeamJOLkImdiJ+Yh4iWnpqioJenrqmtqKiel62zoqaumayrmKi0oqmto5N/c25fW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgp6mno6mwqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbG5oeoF0T0I/f5WSkX2IlI2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn9/lHh1dniEjZpwUY2IioZ7fniUdmd3hoh+iomWi46RkpaMhImIlYSbjYKEkpqWn52UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdm1mXltIUVFTTUlVTVJJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoqeopaeor62qtby2t7ezwbu2qLrIuLaoqLW2qrK9p56VjX+Jk6iWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV+aWhcVI+JlIl0f4aBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4R5e2h2e45wcm14gYuNknh6gHuAdnNykndodYSEhIV8lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiMp6SSoKCWnp+kgHNoYV1dSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MjQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiysKGakY2UgY6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jZaYjY59Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyFbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWZiWlhYVVFKU1VUT1BOUFZLTktPT0pRT0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCtrquoqbGvsau8uKy7vrizrKebsKesm4+WnKWppKCXmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3OMiYSGe35/e3ZvdHSGgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekYuSjYaQloBuaW9vb1hWWFRSUVlPUlRUUlhVTU5ITkpNTktDSE1HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKtqqi1r66stL+rvMO/paKalaSXno2Ei5ShoZmYkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eIYpppc3llfnBtf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+foN0ZmV1f4SEhYBmaWx1a3F/fGhxcXxuko2PfHR+fXFwbnVtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEdEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS8qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZakqK6fsp6nuq+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihXZxh3yHfHSMro6JgGhnYmpucm1wg3VpcFh1cI6bkndsf3t9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXV5cWVhgX1JOW1pYV0xISkZJRz9CQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnqWnn6+VpbSprrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeIiHx+hYN/jH51opl5foaBhZmEmpxhhqqfnYuDkI56d4l+iYiOc4uXkIR6XWRydHp8d4ptaGpieW+GkIJ6b4F3dIR6cHR5eGtuaV12h32HfIeHjn+KkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGZnYFtbXlRcZl5XUFRYW1VHSktES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGdnZ+mkaCqoLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI+MeIOAc6CEin18gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISJe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTioKLgoSSqYeAmJiKm3RtfYGGh32OaGdoeX9uhoeChXGEhkdsgHdyeXZobWtfdn2DiH+IhIt5lJ2ciYuIkX96dYt2fHhtb3d9f3R0cmxbXl1bY2NYZ2VcVVBQVllQRExLRk5JQ0ZDQ0BAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKysvMDArbnUyMjQyMEyBXDU9PF6EdHx+iYWIkY6Wl5KXoJ2soaa4r7O9s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFi5CIkGlob4OAdY2HhItxhoJ3h397doV9bnZ1ZoCUjoaJiIeIh6CropaJjph/eoKJenlvZ2t4fnp/c2xlXlpbXWpdYWZgWU9LTldSUUlQSkROR0NKREJBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIx/gZCOipqbpJ2hrKarr7GXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/iX9tcGpdQkA0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKS0tLTlZfY39nZ211nZuPmpKTi42OmoiSj52LoKCSo6qlo6yTqbaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5OYkoSLhY+akZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoJWGkomOj5aktambjZWig4eTg36Aa2prfICBgnRiXmRfW2drXWxrXldLR09SUU5MTEZJUENETUZBQ0VGQj06OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWGcXaShn6XlpqVnp6cp6CqlpOYnmdlpJp+hJKReX+SiJGSfYqEmJKRgoCAi4yJhpCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKelopmhl6KUnJ6nnqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmWopqad3p+lJiSoZKWmIGUnnt3lZKrsoiNl599lJ2bjpKVmKOiprawnZGZqIiWj42BiWxzcnx/fXJpYF1hX2FnZGBnZltSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikrqysp6i0q7C2srKtu7GzvZyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoquopIiFlKShoKqgpKmPnLGLlaOnt7qboKOwkqKdop6Qo6Grr6yytaKUpKqImYmSipZ6en2Ff2hhaFxlYl1kY15mZ19aT0RJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXam9YeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVZVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2xsZuakpqfiaevq6WUdp+kl6GssrOYlqqtqK62u7K6rK+1orGssbW7t7WutaCnp6OnmqmvrbK5t7inm7apjKWOkZOghniCg3ZaYmVXZmFhY19gZmBbVElERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGknWFf4GMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6Gf4aJhYqHkXp4bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMK2uMHMyba7xL2zs8C3uMG1vq+3dLGzpbrFpLDGubGzsbSopLW2qrGgopaaopKlsK2mraynpJigrLS6oqmyurW7vsy/xcW9vbPCt7q4vre6t7msrLCmsaqtvbC8usLCrJm6qJSuj5eYq4l+gn1rV2RiWWtlamVXW2NZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSBjYNuenN4h2K5oZmjiZWUlpOUk42QlpKHhnuGgY2VioGEgYp6fIuHhn2Kg4GKg5V9d3l1ZU9cZEdFTDtRY2FbXlNGPztIUEVbY1FSWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdLTFNaVF6Tr7i1urjJv7q9ycy7vMC8t7W7u7e9tLqxxmB1sqWxmp6rvaqlqKuqo6KytaGrqJ6Vlp+Zn66lp6aln6SUoqextKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3DyLCeuaqhq46kp7aJgYBzYGJiXlhiYGlmUlhgVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmZmRjpeSlpaOhod9hoOMlot/g3+CeHuLg4d8i3mBioKXf3N9emtlcHVZXVxQZWViYGVkXVtYV1xNZW1VUm1tX25fWGdlVVlVSkRCS0pIRkhISEdCSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura6tri5sre1tK62tplkdaidrXBeoqycmKCjm6SeqqWUoJ+QlI6WmJeon6WfnpqZg6SdrKWqsK23sL251NHO19DJzNLMz87Kx8C/wsq9wbzBwMTExcq/yM6zpLuwtK+bq7i8mYB6bF5hXVleYVpjY1FcYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CLiHyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50lq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkZLUF9eYmZqYpi3x7C4s7u9tbHExrWwubCwu6uysaeqt6yNtaedm6eaT5qdjI6flpGmmKWVipOTiZCJj5GRnpuhl5qVloaemqebrK+osKi0tNTU1NbSy9DU1c3Tz83FwsnQvsrJysnRx8zNw9DSuLDDvMS5pba6w6KDcGRdXV5ZYFhZZlpRXVdPUEJCR0RCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJubl4uNlZGajn2Ji4WNioqKkId8hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bnhzbGmBcG1jaW1weGl3fH7Lv8Lfp25jd29jW2FgSlBSVU5ZXlBdXE5QTlRRVVRbbm12gnGWrbiss6ewtqqsvMCwq7WmpLimq66gq7SjjrGtmpiYjJGTkYSOm4GNppGciYOLhIqJhIuDk5WXlpOckZyYmZmfnquspKeirK3P0tXRzczS09PQ1NHOyMPU0cfN0tPT183R0cXS1sXAzsfHw6i+t8+eem9mXmNeV2BTXVpQUVVQTkg+QEZBQkU8QEI/RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6hi4yZk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6AgYd5hHWFkpGJf292cmtzfHx3e3OBd3FrgHNyaXBxenlyer7Lmn6MsoR2coR3aGFqXUNaWltWZWNYZGpTWF1cYGReY3d6fouBmamkpKGfoKilqrC4qqW0o6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlaKMmYSAhX2Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tPM1NjW1tjV19XJ1NrNydfX0cqsw8PMjHNwY2FgWFRaVFxQS0dKSkpAOzo7REFEPEJDPkhCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/d4OUmIqNiIiLiX6CeHN7fYOId396h5GWgINueHBtdX92eH10hXx5bYd2dG59doR1eHydtYw7QYvFpX6MfGllVklDZmNlY2dqZG54W19maGtuaW6Ag4iRi52eoJ2Ql5ifo6SmsqOks6ChpZ2gqaCisZyGnpKSkpCLj4uGg4+EfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKm5Krs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0dXa19fY1NnYzdjbzsna2tLVvsvMtHl3b2VeWlNWUltXRkdKSUVFPTo3OkBBQjpHREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaFiYKHfHiFl5eJj4OHhYd6hHlxenuEhnV6hY6NnHqMcHxvb3p/cXyBcYOHgG6OenV3fXyCdX97hoewdFipwraNkYJwbmI9XmhycHFwbnh2gWVpb3J1eHF6i4eOk5GblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSMhnubiJSPrqqUlZefmaeutb2prb3Gy8jJzMvPycPRytTX2dfY19Xb19PZ29bP29rR1snUy5V6fGppXFtQU1ReSENFSUg+QT09Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR/hHx8hJiOh4t+hoaAd4J5b3t7hoF1epKejaB2jnWCdHWBfXSAhG+Bj4FvkoR0fICFenaGe4m3xqXCybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHVtk5aUlY+XkIOJj5eal5alnJegl5+SkpejnZmrlZCRio2RgoyFiYiBhpCRnpyZiYaMgYaYeoiIn5ePiI2KjIJ8oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcrR1tXV2dXX29TW2drb19va2tjO3MaHfHpoaWVgVFhWVU1MRE5DOz09PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6int+gH6AfIV7foGRiYWFeoSHe3V9dG18fYZ+c36SnZGeg5F8hn54jn15iopugpqAdJiFfYGIhXt9kHqPqY6Pw6C8jJyknH2JhH2JcoyKfnOmmpyYk4V7j5CIhGhHcKCknYyLkJKFiYuQkpWPnJqSlJGWjYuVn52UoJSRjo2Qi36Qjo6LhImSlpqfn4mMlJKdkYKLf6WZiISNg4WEgaWHi4u4mJ2RlJaip6Gdnp2jr7a6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4eXl5bWpmV2BcVFBPSENMQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD84Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIenx7i4eCfnWDhXlzenNtgH6EfXeFm6GanZSSgIyIf5iHgJuSboeohXqgi3yRjoKIg5x9mpGKjKOin5Ckr6CLkYuFi4GShldyrYufq5uPg5ibj4+OW4KikYKMn5OVjIeIjJKSjJSUlI+Mj4qHlpudj5WWkYuSk4WAi4iSjYqKnZaZoqKGk52WoIqJiI2ckIOIj3+Dh4WkhoyQs5idkpSXoaGemZKcnaeyuKymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F+dWhnXl1YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz88Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+koNvbXeLeHl/eoF9hnt7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6WiloqdkJSXi4qol3KKsYyEp5GEmZOFmYyilqCYk4mbnqKSqa+gkZWQjY6IlYtujbeFmsTIspuhpZucmJaQspBkpM3Hlo+Gh4mPko6Nk5SJhYqJhZaam4+QlJOGlJeDf4+LmYiNkKqXl6OjiJmfl5uIj4eXl4qEjoyBf4ePpYmNk6mal5OWmaGZn5mTnZuis7Slo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoN0gWlkX15eTktUWkJBR0M7QT04Mzc7PDo4PjY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go58fGx9iHh6fnqBgYJ+dnaAg3xsb4t/eXx4eHyEh4t9iqOzqKOrs6GWp6ClpJaVrqKDkLeVkrOZjaGgjKSbr6KknZiQp5aoma2vpJeVlpSQi5iZlqDAjqPJuKuboqatmZGanLKdhoWoopyYhYiJjpWNi5OOiIGGh4iSmJSMi5OThpSYhoORkJx0kZmylpekoYicmpSPipCLl5qJipaOhn2MmJ+KkJCcmpmTmJiflKCdlZ+bobGuo6S3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYVZhV1FJSU9FQUJFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2A7SISLenpthYZ6fIR4gIWAfXB4fH18b3ONen2Be3iGi4mFg5Knu62osr2vpa6zs6ijorCsipq0naO4pJWspJaprbempKOfmamYqqOvsKqamZyUlZGXn5eZu7utyaBptrirsJSYnqOrkpe9o16qsoKJio2Uh5F8jo59g4aNj5SViIeSlouQlY2KjJeYkp2Zs5aVqp6Lm5SSjZCSjJmbipKekIuJlZ+ijZWNmJqdk5yZnpShoJScnKWvqKKls7irwsjEtbu9u8XIx8LRocbJzc3E1tbQy9SicXxqXltUX1JQR0Q+PENBQjg/ODc0PkY8PDY8MzUzNDU0NTNCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojk2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGNwSkCLin+BcoaHfYGJdYKKg39tfX18f3B3h3eOgoZ7jY+Mhoyaq8LAr73Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqKjo6mvsrGrnZykmJuYl56ipaWSo7muqL+7rK2yuaWjpn2IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJGalp2nmrGakaudjpqPko6VkJCWl4+RoJGJlZujrJSWj5ScnpSgnpuYoKGVmp6np6ShpLCypsHGw7CwurbFxMK+zafHw8fDvNXQzcTKiHRzY11bYVtOS0JMQEVGPkE/Qjs6ND5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4eDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOWp7TGyb/CzMHDuci8uq+rubuXsra6ssCupcCkqq+7u6qtq6Kinqerr7WwqpugqpyinJWesLSni6K6ubXBu6uonLKko6iThY2pw8SkgouPh4iEhpWUjXqDjJGPkaGMjJSRj4mXn5iTmZSXpqCunYyqnI6Wj5KRlZWOkJWRj6GUhpefoLOelJqUoKGZpJ+aoJuglJiepqSmp6SvraXAxMKuqbe1ycO+ts6yxb7EvLPRycjBtXV5bV1ZXWtTTUlDTEtLSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZbTWVcZlRjapmNl4qLiJOQhol5hpOQgXKAfI1/eIeCgpB6jaGWqJmamLq+x8jKwtLJysLNvcGzrLu+p7q/vbvDuKzBqayzu72qsKqjpaOrrrSttrWgn66fpqKYo7S9qZuovMGjtravq5KvrKqrloaZqaalkYKMk6WViYF1ipJ5hY2RkJ6fk4+Ui5CNlKOZl5uUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjm5Wgopy1ppCflqWko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Ds7u+wriswsLBwJluemJZWF1cTExNSkdEQ0hCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZFaekJ2Ol46ekomKf4ifk4R4hX+Vfn+QiIqRgJWhmq6mpJjDvsjDyMXTzc7Ny7vCt6+6vbS8yrzDwba2vK2zv7m8rq+ooKmntq2uqbK3mp6toqihnau3uKmlr77Dsb25s6eps7OsrZaWpKunoJGOkrHFp5WOfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Pj56IWpCXl5KWpZpmmKOfs6WWopasraunm5+ml5mWmZWhpKimnrarqbq8xLWltLbLwbiptqyzu7iuqLi6vbiDbm9bWFVWT0ZLU05LP0FIRURIRkc5NUZNOz43PkFKLjMyMDI1QjU1T1ZOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqZaNkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73FxMfGzs7O0sq+u7axuru8vs62xL23uLeysrWzt7Osppyrq7irqaevsJejr6SopKW0wLCqrLO+wrnAubOnt7O3sq6VpKyurqSLk5WhjXTBmn2WmYSOlpqLsZWamZWSk5mZpqOVoJuWmqicm6GgmYuNj5adYEqWnJqUmqWXVJawn6+cn6WUr6+spZqhpZSTmZmOnaCnopm0qaqzvLy7q7Cyx8C5paurrbGxo6GysrSkcW9mXFtPUUxFUFBRUTtIS0lGSEJDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKuXmaCiqK+ZkJeHi6eWjoiShZ+IhJ2Xj56gmqOktci0qca7w8PIysnHzM7Hvrqyrrm4wMHNtci6wLm1ubGvr7K0p6ObqrS0q6mmrqyZpK6lpamsur+oq7a2vsG/vriyssKwuLyro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5Wbn6GpnqigmZqpmaGnnpeQjZGdg252kqKalZ2in5CtsqOrlamqmKuupaSgpKiSkpmciJScop6Xsaepq7q3vrOyrb25tqCjp6ilp5ycrKmpjGVmYV9STE1HR05KVkw9TURNSUpBQ0Q8UFU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVVIf2VeSEWslZyhn7uumZSejJOqm5GSk4mrjYeinoykrZSjo7bGvbTBusLCyMjFws7Iwr25sq+4tMDCyrbGscG8tLqrqK2sr6Oimaq0u6appquqnaivp6Srqr28qK28s7e9xry2tbfAr72/s6i0tqu+pI+jl5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqZ6ZlY+Um4uXiY2koZSco56gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clamloqG0tLq1rai1srOfnKKmmpeVmaqhnndhXmBeSklGSE1RSU5FRkZCUktJQURHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xvYkdFp5ekn5/DrJyXpJeZqZyWmpqPqpaWqKaVra2Zoau2xMK7vrfBw8DHxL7Nx7u+ubKwuLO/w8i1v6+8trq3pqSqq6ygoJqqq8Sipairpp6rr6uiqai+uKatvbC3tse2tbm4vrC+wba0srSvvaOXo5aTm5Sun5ChoqWjo5+QvqWpnaisnZ2hm6afvaKZo56iqauhnZeNlZ6Tn4ePhY2SnqSgnbWsppyVsqeZsKefmqqeoI2ZlZ+EjqGam5OlpJqYrLG2sqqlqa2snJmgoZKOkJapn5RpZFphXU9KSEtPTUhFRElBPU9IQTtHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5uexayhn6ydnK6fkqOelqSgp6qsl7awo6qztsTCvb+2wMK8yMK+ysi2uLW0sLO0t8HGtr6wuLS5tZ+mrKqrnZ6fpaTBpaCpraCkqa2voqanvbWlsby3tbXDsrO3ub6xw8C3t62ztLWinKSVkZOgraCYoZ2oqauimsOtqZ6srpubnpmmoL6hnaSYq6urpqGZjZqfkp6Jjlh/lZ6loaC4qqeTmLajn7OhoJuvl56OmZSdgo+fl5aOoqSVkKausqupoqKlpZaVnZmLj5GTpJ+JY2VbZGBMSUpLT0ZFQUZKPz1KQjk5SktOXVFRST1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GYnsOnpaKzoJyyp5OqpJ+jn62prJ27sKmstbLHw8HCs8LEvcbEvMXKvLCwtq6wta+/xbW5sLC6tayaqLCpqZqepqGnwq2brLCcqqKusKmkp723pra6vK62w62zs8K/scazurartLWtqqKllZWUo6uhnp+aqKuwrq+7sqagqamZmZeToqS5oKGkkq6vrKWmn5KhnpWej5GOlZ2Zo5+ntKanjZi0nKOvmp6brpGelJeUmoCSoZWPjqChk4umrLClp6KcoJ6TkpuUhYuSjZyegGNmW2hlS0lMSlNCQ0BIRzs7Rj85OU5NVV5SU0o+T15ePUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsqGjtamWsqumoqWyrK6pu7KtsLW0xr/ExLXAxb7KxLbAyMK1q7WosLiswMS0t66strmlmauyq6qXn6aXrbu1m6iwm62frrSxp6q6sqe5s7eyuMCqt7LCvLPFp76urbe0qaesoZeWkaWkoqKXmKSuuK2xtbagn6ikmZSVk6Sgt6KkpZatsbKlqqahnpqam5aYqJ+fmKKer7Kipo2XrpmlrJeZnqWRm46UmJqFlp+UjJCcnpSLqamqoqehmZ6WjI+ZkIGGlomUn3llaV1saU5QTU5UPUNBTUM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnaGmv6anr6+gqbWrnbmvq6SqtLexsLm3sLe4uMW9w8e9vMTBx8C5wcbBuqq2pa27rcHDt7iqrbK7opWtsK2ylqWnkau5qqCnsJ2qn7C0sqqptrWsu6yysrm3rLmwwrq9vqbCqrC3r6mqq6admJiqoaGgkZigsK6zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqWcoZedo7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUjqmop5+jnJibk4eOmYt+jZaFj5traW1hbW5YUVFaVUFDRVRAOztIQTc6WFBkXlBWV0RZXl5NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBwr/JxLnFw8DAuMS+wbivtqirt7K8v7+0qa6xt5+Xq62orZenqY+nu5+lrbOeq6KxsLOsqbaztbytr7G1rLC1scC6xLarvK6xuKusqaKxpZ6kqZ+jl5CZn7Kqs6mqs5mdp5uZlI2gpqS0rqehrKytsaeyrLKppJufqKSelKGYm6i1qZeZkpKfmZ6hnpCsn5iYhpWYi52anJOKjZaXmpempaOgnZaVlpSBj5WFe4+Sg4yXZmxzaHByX0dZZlZEQ05YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcY2BQS01OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3pKyppa6utqmus7mmp7G4xrext77BwrW0usW+zMW5w8C6v7rEuMG5srWsqrq3urq+taqtsbaZmKerqqubrKuPq72eq66xo6qfsK2zrq62sbm2qa2usKe2sLO7vMmyqrW0sbSvrqahs5+aqK2gpZWVmpmxo62gpa+WoaSZmZKNoqWnsqmhprGrqbWlrrC1r6OZna2nmpeemZmsuKOYlJGPmJyhmJeUrJ+dlIGTmY2enZqWkIqUk56apaOioJmWkpKWe4uQhXuMi4OMk2tueG51fGFGYGpZSUhaWz17SkdFNkFiVGlaTVxhSltdWlJSUmJgTEtFX2FgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQi9KR1BbSDNjWVVLRJmXoLCosamspaOurrWpt7S4o6y0t8q7tLu6v760tLfDwc3Hu8O9t76/wLi/vbG9rqe6ube3wresrbG5lZemrquno7KplK+6pK2ysaenorKzsLKwtLG3sqiuq7GmuK+1s8PFtqm0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpbenorGzq6exp6ywtaykmaGsqJucnZuUqrmclY6Oi5mdopiQl6ahn5aEkpeQnZyYlpaIl5CXm6idpKCSlpGQlnaEkId8hYKEjYxucXh2fH9dS2VsXEtPY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVNUTwzcmtKREORmaStpK2tq6eksLKzqrewtp+rtbnJua7Bu8K3s7K1wsPPxMDBvrW9wL+6v72zxKiqubC2t8C9r6yzs5ygp7CtpaawpZ6ytayrsrCsqai0uay0srWss6yprKisqbmusbDHvrilua+pra2mqK2wpaOjrqOpnJ2cmq+ZoqOio5CsnqOfn6Gqpqa4pau0tKSpq6irr7auop2jqKqboJqakqS0mo+JjYiSo6CVjZSdoJSThY6Uk52bmJaVh5iSlZmnnKCfjZKRjpF3fo6FfXx9h4qKcXRyfn1+XFJkb15OWmZdRkSWW0c6Tm1YYVtNYGFOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2Q7NipIZEhKKzpJPzNCSVMsPo9rPUdIj5upqqKpr6SopLO0sbS1sbGhrK29zLquwbzHsbSttMLD0cXGvsCyvsHCvL+4vMWorbess7i8wbCssq2gpKetqaiksKOqsaqvq7Gur62rs7unt7GyqbKpq6Wlo626rKqxwrm0rLqoqKitqaixpamkoq6qqKKem6KslaSdl56Yq52hp6mhrKWirKu3sbGgqKKfqq6wrJ2epqepmaOYmY+gp5iGg46Ki5+gj4uMlpyPj4aIkZWgnZaYlYaWk5OXpZydnIyRkI2Kf3+IhX13f4eFh3Rzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZTmNcTlVWVVdQXGJeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWXrKeiqrKcqamwtqy4ta6qpaurvcm8sb63w6+xrbPExM7Ow7+/tMDDxLrAtMnErK+3rrK5wL+zrq6rpaeqsKmnqLGltK2qsK6tsa+zrLO7pLi0rKyup6ufo56wt6uqrbq2pLa1pKmnrKyqraGopqaxsqSmpaGhq5apoJSaoKaepKKqpKyinqaxt6ytoqSimqiqramcoaWkpJmgmZWPmJ2UgYKQiIWdoI2LjoyZj5CLhI2YpJySkZuMk5KSlKOam5qLjouLfIeBgoN7dICEgn50eIykh3lrXmBuZ1dmh2ROQGeSTERieVdiWFJlVU1WVVZUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESXkq+ko6qwl6qprbWrtrGrpKuqqbzBwLi5s7y1prOvxMnL0b7Bu7nAv8K5wbrCxK6xtbKzu8G+s7Kurausp7aqpa2vq7mvqLCwrrGrtaq2tae1tquspKmqnKOds7OoqKS0tKC2rqGpqKuorKegq6youbapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ekpqapnKKko5+ZmZ+Rjo+Zjn6HjYeFnp6IhYqLj46QjYSGlaOajo2bkZKRj5Kfl5mWjYqDf3SHgX9/eHWDf3t4foCJno9vcWdncXhcYXSIaU9dmFZIbXhVZFZRYk9MVVRVUU9YW2JWSFBqVFdUR1BZVUk+SUhPUVB4TE5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSYvMlJjMDI/Zj1OWD9DLD5MVF8vSWs2UUU7lY2voKWqrZmrpK2vs7SuqqWvqam6vrvBsa+4rqK2r8nHyNHAv726vMO+usPBwL+vsrOytb28wbKys6uzqaW1qKSts7O5r6OttbGvsbmquK6qrrarqp6qq5+joLatqaGfr7OhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKKgqKeep5uZqrCoop+soaGSoaKjppiaqKaXl5idj4qHlYh9jYaFhKSXhYKCjIePjpGEhZShl4iRnZCTkY2RnZWXj4qFhnh0gX99dXl6gHt0dHtqgoejdWleZWyCdWeIi3xSV3BeSnhzU2RTUV5NTVJaZ05MVlllWEdTaVJRPkJOUWFROklITFNJcVBMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDozOF89YWQ/RjFDUFtbK0hPOldCNJCOsZ+kpqujpqSsprSzsKmjsKequL7AvLCouaqnrrDJxsjQwr3Avrm+v7zJvMK5sLC1srq8ucCztLutua2jtaanrLG2ubKnp7q1rbW8r7ylra21q62cqa+jn6Wsq6ecnqqzpLOomqqnqaSpnaOpqKm9rLSvrp2po6Cum5qyo5akm6Sln6SamqiqpZ6aqaGbkZqgpZ2YlqmpkZiZk5CKgo+FfY+CgIiej4Z/foyHkY+QhICTm5SFk6KMlJGLkZuTlYeJfoByenl+fGl3fHp1cHF+aYZ5hIhkYGhjc4V6bWd5XV5VQld6bFRhUFJZS0tNcHRdSFpbZ1lFVmZQQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZbQCqPk7GZn5+opaShq6S3srKkqLCnrLjBvbWwo7msqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOmq6uvtbi0qp26u6iyv7K6oK+0tqmsnq2wopylqKmjnpyksaawoJ+qqaeiqpujqKCtvKiusK6hq6Kjrp6erKaXn5uho5yfm5qjqaKamaOjlZaTn6GWm5amrIuekZCRjIKLgH+OgXualI2JfH+LhpCPjImFkpiRh5SjipKSh5CakJOBiHx5bH12eXhie3pycHBzeGqCdGqDZ2RoYW9zjm1ianBgb0FceGtVXk5QUUpJTFNaV01cXm1XRFdgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE8pPTNRXD0jkpirmJ+Xp6Sin6ikuK+uoq+vqau4wrqyrZ+4r6uotLrHyse/t8K+sLS+t8S2w7KvurKzwLW7vripubi+q6S1p6iqsK25sKmZubyjrr+0tKGuuLWnpqews6CfpKanoaWZn62oqZ6gqq+noKaXo6mgsLifpLGvoauhrKSbpqapmpqbnqOVnJyanammlpqep5GXkpidk5mVoaqQmomNkId9h36CjXx8oYyNiXmDjIWKjI2FiJOajomVn4iRlYKLl42QfYV7c3B8cXN0YHl4am9wcXBqf3NjemxpZmRhZoaAYFtyanFMTX9pWFpNUExKSFBSUUlNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFo1KJacpZiclq2gn6GkobersKO0tKmoucW2sq6gt6ytrLC1xcfAt7/CurG1vbe/u7+vrL6wtL+yvcO5qbu7uKeotainq7Css7Cmmby2pKu7ta6fsbiwqaWnr7KboaSgo6ShlpywpqGfoqevoqCik6Olorewoaaxq5+soq6YnKqkqJ6Xmp2kk5qcmp2lqZmcm6SUlJeUnI6Tl6KpoZCJi4+GeoR9hIp5jpeKjYd6goiEiIyOhY2UmYyOlpmKj5d+hpeLj3qAenBxdm9vdF94d2VtbGxqaYRuZnJpbGZpXWRzgWBba3VpWkl9XVtYT09LSEdSVUYyOV1ebVBEV1ZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWRtODRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJuqnaShoqC4qq6gurimrL3Fs7Cvo7Wwra2vtMPDvLO/urixs7m4uri6r67As7S5sL/BuKy9u7WmorOqp6myq62xoZrAtaSntbWonrK8qaimqa+smaOnnKOmlJihsqWZn6OoqZyioJOkoKS4qKSnrqaepaCokp+ooqGgmJudoJKam5agoaqbm5ihlJGUlpmNlJKjqKSQiYqPhnmEe4SGfZ2NioqHeoGEiIiIkYWVk5OMkJWUjY6Ue4OXjot3fntsdHFsbHNheHRoaGpnZ3CGZ2hpZGZpamBqYmpnW2V7Y2BTc1RcW1NMSkdJT1NAISpoXWpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzlnTycynqOjkY6jp5udnp2jta2mqrm3p6zDwbawrKO1rqeur7fAv7yxwbaxrrK2tri3tq2qvbSvsrG9v7iuvLyxpZ+2q6WltKmqrp+dwauopbCyqay1u56pqquxpZieqp2mpJGZp62imJ6kqaGbop2XoJ2ntqWvqq+hoZ2doZSgpp+hoJmbmZySmZ2UpZ2roZeWnZSTjZWXi4+YmqigkoiKi4h5hXeCgoKciIuCiXx/hIiGhZGElpWPjpCRkZGMk3uDlY2Fc319Znhva2psZ3Vza2NnZGR2gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdIS01SWD45X2xpSEJUU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZujn5CLrKGYmKCWpbSxobG9t6Gxxry6sbGkt6yrrqm5vLu6rb+xr66utq+zuLOorLqxr660trq2r7m+raaetaugoLCkq6+dosCgsaOusK63rrWera+sraKanaeppZ6Vm6iln5mkoqmdmqCblJyerK+luqiuoqGamp2ZnqOapJ2XnpiblJmgkqiWqqeak5qakYuUmY2UlJmpp46OiomPfIJzgYGLmIWHfImJhIWKjIqThJOckpKQkJGWjpB/gIyNg3CAfmZ5bWhramdxcmtcaGRjc4FhZmhqbmxna2pobVxsa3RxYVRiaGRlWklGTE1PWFFRVmFlgVRAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSSoZqNjrCdmpOhmqmyr5+4v7agtMK7vbmxprawqK6lt7i3t6y6rq2qq7eqtLmuprO1sq6psbe2sbO1uqepn7apnZ6poqmtmqe+mK2jrq+1ta2sn7Gtr6minJyjq6iblZyno52aqaKklpqgnJGcpKuqqbufp6SgmJmZnaGPa6GWmZxxgpWao4B1kqmnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2Ei4ZvXmNhZ4SXhmuLj5STdXeLhH6DkH9nhoBodWlmV1xoc25OUGpkZ3KEZ19kZm5tal5gYYqQhIVlTktEOEZUZ15KR1BQVFVLSFNhb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZZgWwxNk9rW05cS1tmYj5HMVFkPSsujKSZhpWwm5yToZuqraqjvcSvqbfCuL28rae2sKWrpLezsbOwuK2qp6y0prC1o6i4trWop6y3s660rbOiqp+0q56hpJymp5irupWmpa+yt62upKmuq6yloZ+coKenm5ehpaWbm6ennZOfn5iQnqiqo7Wvo6OjnJaXl5ejiKGOkpqHoYeTnaB/pX+mqp6SkZqRiIRyeI2OhYihdomNaZeIZn1yeKFwiIeEfo18f6GgoJmAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFZanFvh1heaVtra1uIcW56coZnhoRaXkZNP0dfTUZSVlZRUVJXVWdeTVdJUlNPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIuml4Ocq52ZmZ2fqqqnqb7DrrK6vLfAv6qkt7CprKaztK6us7arqaWxraW1tJyutra0paeps7Gtsqivn6uhsqmgo6OaoaOarbOUo6SltrynrKerqqyopaGgmKCmo5mZpqOkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5eTm4iuj5iUiamLl6KbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZa8nMV7cramu5B7gGyWsauweGhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn6BcpR0mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKBpqmfl5yepa2yqLDCvbK1wLW3v8KrprOsrKmnr7Opr7azqKimtaanuK+cs7K2qqWkqLGurrGmqp6npLGkoaCel5ugna6rlJ2hn7S6o6qpoq2upaKdmpqhp5+Xm6ign5iep6eRnKeblJ2hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeElYatZHCdnJOZpZRxrqGkfni7fWuhkHaxX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHaxanyxeHSSk2NtbaduW4SgRWhnh5ZFdZxgfmd8pKeCWV+Lq2mAlXh5aqc3Sq9cV1NtY1tLTldfXFdWO06JT1dXL0lUU0lERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaGVg6ynpZ6jpaqyuKy0vb6vtsSyt7rCpqiwq66pqbCuo7G6r6SlrrOjqbmonrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXm5uspZaboZ60s6KrnKKtraCempegoqidmZ6kn5yaoaekj52jmpegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXeHs5u3fpOVlqiUfmuBpnuChoiSlJJ4q2drsVure4+HlHSIcY+GgH+IkJd4g4KLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGib1tTa2hgTEtbZFhcWkI+sXhXWEEjTWhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflIizpqahrqmns6yqu7bCsLvCrbi3waqsra6upq6yqaGvvKqhp7StpKu1pKays6ejoZ2oqrKosKilnp+fr5afmZSVlpidrKKamaSotK+iqY+pqKqbnpWYoKWnmp+cop+boKOlo5WbnpianaKqm6WZnJuioJaTkZOSnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joejgqWCeqx5j51Wr3qIfp9quVq5d4aDfKaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWN0cohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE1sS1tST1lmWUNEPkU/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MiWboZOYsaiopbOqpbWopLy3wbC5wLG1tLuztaexsKOwsqafrraom6i5rqOvsaCztLCgpJ6fqKqxqbSppJydnqqXmJeWl5WWoKmdmpaorbCpo56PrKKolp6XnKGloZiioaGhmqKip5ueoZ6VmZumoJynlZubn6GYj5KUkZyIsm5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGhpX6wdoOR0tF2XK57hX+kb5uqpmuHhHytfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqZGZYQU9rX2xoT1VHSTk9VlJbWFhJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZyRpbCtpKq8raa1pae2u7yyur+3trS6urOltLOhsbGin6yvpJimuq6ksbGctLiqn6adoqqksqisqqSanJqonpWUmJiSkqKnn5aSpauwpqKWk62fpZKUoZukpp+UmqWmoZqjn62aoJ6dkJaboZ2cpZWdlpmin5WYlpKahax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX2OnoaZmnevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtX3d3h2iYiGter3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZVTS5lY2lTWVE7QkRBTDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTk4OJ+dlKC4sJe0wa2os6ipsrq3s7i/ubeytby1pbezn7Ssn5+oq5+Vp7arqLGxq620pJupoKCoobanpqqjmZ6VpaGUk5uZkpSipZqSkKasr6aglZmpn6KPkaKZqKWglZqlqJ2cpJ6tnaGdoI2UnpudoZiZnJaWoqCTmJCmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dodzp4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmZNW2FfcnRfSlY2SpuTWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MxPzihnZmZv6uXtMKuq62pprSwt7C1v7m5srC3vKm6tJ+wpJ6lp6eek6qwqbCptayrr6GYoaCmpaS6oqOroJebkaKglZSempSYnqCPjYuor6+mnZabqKafjJKkl6irp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNdYHB7Y1RaUT4+bW8zQkJAP005ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbqhnLLArq2rq6e3qbivtcC1vLCvubirwbapqqCbpqShnZGqqqi2o7Kor6qgl5ynoKSruJ2jrZuWmY+lo5WNnaGbmJyfkJOUq7Wwp5mUnKyql4yTpZmlraKRlqqxo6Cep6uwmKGjkJmil5+blpyXoZOcqpyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBi26aiHFujaR0vV53fVthebxrWlZbanpeamFmZ2Jtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZBOaeanqG8opexw7Ctqqqssae4r7bFsbqxrruwrsGyrKSinqOhnJuRqaSqsqS1pq2kn5aaqpmmrLido66YlaGQpaCSjJyjnpedmpCVkq+5sayVl6Onp5SRlqSdpK2dkKCoq5+bn6mjs56jpY6nopWimpyXlaOYj7CgkpSqnoWQmbWAkJGMt5V4gpOatXdta25zbnmPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhoyGjXuLho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY22dHJwd7aMXoB6fYpog3lueWOLrHB1hX9ZW6dqRWRZU2ZgY11jUWdmcW11Qk1QTUQ7Wk0+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic+OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7S4ramioaWeoJ2ZlKukraqmtainn5uWoKOerKS+p6Gql5SdkKKbkY+iqKGTnZeTl5SytbetmJ2jpKKLkpGmnKarm5aopKWcmqGopqejqaGRrZ6XpJ6Xl5edno+wqJScp6KOan5pnKZ4h3N9mo90emWHer2+wLpvkoJxlYdfcmpaXpqJYWOIjpVrYH+VY22dd2KVa4CalZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6EfXuLa1hse4JzSUpvhnBOdU1FV11mYExbWGdjX09bbXVpcVJQREVOPEhJPUw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOspa6nqLWxrMisr7OrtaO+sbKnoKKpnaKbmpmspq6kpbWppZuYlaGbp62pvqipppWUnJWgmpKXpKmokJ2Rj5ecsLK/rJunnaeiiZORqZuppJubq6CjmZqjp6yjn6uimrCblaeglpWdn52XsaSYoaiZnJGdnKOjmaaimpyampmPloFnbX1xd5KXlJGFirWqjYaYlY+KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGdjYJ6pYZsanyQfIB0iYqBcYJ4eXZ2i4B7imtzgXSDdWR3fXdrcHttYGNdcGdNWVlmamBXWnB6bmxmU09GUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwuQLOgs6K/oaOxsregqaWyp6WwtarJq6yxpbWmwKi0oZ2kpZyjlZagqqaso6O3q5+Zlpafl62qpsGfrKSVkpyXnpiTlKKfnqKmk5GZqKeyxK+aq5yqn4+Wlqmeq5ycoKyYoZucoqSvp6KlqJ6umJennZmaoZ6enLCgnKKmlZiTmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZKIhoqVj5uXjZCXnqOWmpORnY1+jmahs6+FioR2epCKfHZ5em9mepGBgIlrdYF5iHJoc396doOIgmt0ZHlmYGplY2Rma1lre3BpalxTTFBEX1VFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqrKOzrryktJyfpaKhnZmXqKWppqSls7WelZSdmZmwpq6+oKyikJGempmTkZWhnJeonISeqauis8izn6qjqpeWl5qnnaibnqSrk56fnaCpr6qmo6uirZufoKGZpJ6cnp2vo5ieqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh7jqGPa2iNl5GjeGtqi5ijnphzbG56hI2HelhlXoWCXmyLioB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpanxxbGNeUk5XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp66tsL2xqaekra+wn62Xn6OdoZqZp6ucraOlqKmyrp6Vo5Cir6a3uaWuo46OmqGZkpKboJmZpZV7payiqLTEuKShp66fnpWeo56jnKOqqJKeoZ2gqrCqq6OqoKmbpp+ooayWoZulsKSXnKuVoZ6bkqWXnqqYnn69g4dytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuiiIKffZWYiZ7AvYKWnZ2NncLBe4J7ko2aw8B9aqWxb4yBb8p6f5t3koOOgXZ6gYB5cXp/h3F4hY2TeW13lGNmX3hkYGWCY150Z21kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK6tprK1r6mlpqawq6CrmJqin5ybqqeinKyjpailpLSknaKSpq6ruLOnr6KRkZqdpZKRoKGXm5+dh6arpKutwMCwoKmvqZeSn52imaGjqqOToKGdna2uqaymo6OnoaWmnq2pkqSbqa2pm52qnKyhlpellqGjl5x/zpR4eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjap6p4eFoHSXk4izY4KrhqCOjbNqhK50fZeHuGGDrVmjzW6QdXvae3+ZcH6IknZ+ZXuIdnZrfYhufoWRkn5tgo9gcWtwZ2BfeWRccWhqY2ZgUlRSV15LT0M1QUhFRDk+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwr+/tbSwt5edkaSqqK2zq6WyrKyrpKunr6qgp5uZpJecoq+foJ6op6OloZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll52no56tpKqwqMDGs6ipsa6Wkp2copefqaqflKGfnJ2tr6erqZynqKSiq5KttJemoqqpnaOmpaGwoJKap5qgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGMnX6re4mUj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZGRZXB0dXBgZ21lYG9paW5mY1dTXWFZUlNDOUpJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoayvtq6psaeoqqetq6unoqOdmaKVoKarn6GloKioop+dsKyYmpaop6+sqKepnpeUmqOikZShrZudpqOvrKOrtKq6zbKtpq6slpScnaKZn66snZagmZ2fqbKpqqqbrKuko6ybsLGiqKyupZimqqmpsaKSlqOlmpSShKRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKrhH+ug5t2roGmhoafepmWhntmgKOJpJmFgqN9qX6BlYeuX3yoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2ak3BueXh3b2xmZWVycGZ8aWJdV2BpWFhVTE1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6WfnKanpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSnpJCaoqigoKWcsaajp7GstsiytaqsqpWRnZyimaCls52aoJScn6esq6Sumq2qo6KrorOuoqqzsaGaqaiur7ajk5ajp5ibkXyqbJ6Eh3WreXywb4KkiomflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQk5qMf5uKmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5OAcXt1fXtuW2Zqc3FmgWpfYVlkbVxeWUlOTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGuK2psq2spaKcsrmsqqGmm6ilqquqp6CmpZiqo5+uq52moKyanqmlnae2n6KXk6iqtrKsm6acoJWQpayRmZyno5+ppq6ho6epsLTCsrOqraiTiZedpJqho6+ml6GUmJylpqubsJ6uqKafrKO3raGyua+dm66nsrOzpJSXp6OZn46CnU54moF/n3qDo32DpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaWinaemIqkmKOofrCFnYWfhKx9mpRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd8fZOSi3V6c4V/cVxtb3hyaoJvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7irr6Cboayzs6afoJWmrq2uqqedpqabo6egsq6iqaayoJmqpJSjtqKilZeiqbS4pJyinaKTkKGxmZ6cp6Whoq+unaSoobayw7Gtqa2pkYeQnKecoqScpZadmJmapqSpmq+irqWmmK+lvK2ht7etnp21sriws6aYna+ho56Fj9G1w7d5h46FkZOQgaZ4lKJ3jKCRhKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlZCabXCyXKVzk3qcbJl/e5l9bqlho3Fxf59ic7K4aHiPlKaZfoyNk4x4fXmOgm1peGp5c26AdF1kZG5tZmdgSltZWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWelqekrbWho5mVo6mnrqqrmaain6ahoLWno6mnsKOUrKOOpK2jnZCamqq0tKSdpJyokZSXrqCgnqajnKectJqhqqO2q8OwqaupoYyEjpyhoKailZqam5ibmaakppisqK6jpZutp76slL2wrJ+isLK5q7OnmqixpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhjoOolZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2alouqeJ2gj4mUkoB5r12jgXymp2SdgHyXdGuvXaVrcIWZXWBbjKBtlZKnmYOUjZeMe3uDl39rbH9jfnVtgHpgZ2VxbmhnaENaYVs9S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCtsG0n5qsoK64paOOm6Sin7Cvqp+kn52tmZ64oKOroK+pmq6hkKuppJaJmo+usKynn6earJeYj6yioZ2loZqknK2Yn6imtqnAr6WppJ+LgI6bmp+mnpKVmpqUmpqmpKSaqayspKWgqqi/pZfDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFpZmkoaGRhaBbbGqBs2B/rXt7goGxbGdvmZeMiLFbfbRbpINryKJln4B7u1l2tVqyfVKvgHqsWIChbpiQqJuLl5GXl3x5j51+ZHN+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6ObrKaltqigi5qgn5yzs6mfo5+dtZigs6iqq56vrZ6sm5WvqaKOiJuOr6yop6Knma6SmY+omaKdpZ+Zo6KlmZ+jqrKpva+lqJ6djn2Lm5WgoJmQkpqbkZqYqaChmaiup6amo6Wpu5+gxqelqaGrtLWsrqaeu62srJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SNZ3mCe2BrZWtqYlBhW1NqXEBVYUNOKj06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7mxvbKina6mpbKmnYyYpb+quLGoob+mprKcnrGcuaiera+lp5SUsKyXjIObka6mo6yhpJypn5iLo5KmnqecmqCoopieoKytqrmuqKObl5J7h5mRppuTj5GYmI+YlKmaoJipqaGqp6Giq7ueqcWjoK+jqrO0qq+poLqnrq6ac3WqpLeGZYmgcGetj4qPbW94pI+Zn4F1rpmVcI+LcZWoo5uXrqRybW1tZYp4b22CmXGBempxaWeJlpWYcWlphIZncIZkXYljam9ZXWd+d6ZgYnGOkW9mZICNk4+imJiZkpeffYePlXZmh3hojmt5f3lkbGNmbGJLZFdKbFk6UWVFUidLOisjHCAaIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16pla2zqbm5srOqqaGunqOyqZiSvrLDyL62qp7Aq6yjoKesn7qjpK2sraaNl66pkIyFlZatnqaroZ+jo6CRi6SSp5momZajqaCWnKamqK+6rKyam5OSe4SWjaWYjZGSmJSOmJWolZ+YqaObsaeeo6y6n7DBp6Szpqywsaqtq6e4o623loqgqKW2nYmWopiHqZqQlJ2TqrOZm6OroLGWoaGdn6KcoKShlaunjZOSjIeSnJyUkJqTmJGOlYWBpJmXlY2Lk5KKj4aEfWeKf3SCdnSHjHGnbXuUkZSSgYGOkJCPnZShlpmXooOIlY1yaZB3cIt4d3x6amxkY29kVWBYQGlbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRWFVWWV5gYWNcXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1tq6uorCkrZ+gtbGQjqzGvcS7uKqipZ6bpp6wqKO2p52ptaaokZisoouIiY+cp5aspaCZp56ek5WjlqiaqJmUpqGjkJuomaG1u6irmZqQjXyBlIuhlIqVkpWQkJSXpZCfmqqgnLajnqist6euwa6jt6evr7CsqamyuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSKgH1mi4Z1hnZ5iINznGqGkJSUkIl9jJaSkpeToZOdl6KEiZmHenKWc3qKf3J8f2pvZF5wamFbX1luY1BgZVBaOkdHRT4yPT43LysmKykmHSY0MDY2NTg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gp7WqkJCdpbO7r6ysoqOaep2isaSlsKmWm7imo5OZqpyOhoqJnKOQrp+jlaefoJKWmJuuiqqWj6iZp4yZqI+fubalppmcjYl5gpOLmpOKlZKUkI2Sl6KNnp6pnp+4pICEr7WisK91pL6jsqB3eaCqsbuUdayknomAqn9kXGJ2oI6knoSXfm6Ts52jp62qo2Wdn5JzeZmXcICYqJdsf6KoimWcpZyRl5iWjJKckIadmpCVg5KGj46SiYR3ao6HdoZxfIaAgGFpiIqUkotadpWRaGiPjnJ6ppqZZXmZh4J4mGqDioNveYBrcWVfdnBsa2hcZmViYnBTXD5OTk5TRz5AVEM6MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtNVFRVWV1gaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6etpZKWq7awsqaaqqerl3OMnbCfqKunk5e5oKCPnKSdkX+IiJuejauaopSnoZ6Ol5GehXWuj4immqiRl6SJnLq0qKCZmIuJdXeTjZaTipSRkJSMkJOgjpugp5mcspaAjJy1nbOMko+8p6B+p6J6oq63gY6Opp6Di4aQsamvjIqWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgnucsXqKhaCXmZSYlYKRl5aEmpljeYeQhI6PkYqDbXCPh3mAcYCBhX+GdIaElZJ4lmiSdKCadH2ZhKGeh5h/k4qDg5lrjo2FbHh7cXFnZHhvamxqW2VramZ0XF9JVExRQEU1LllVVTcpITA5PT42NDM1Njg7Oj0+PkBESUBKRUpLR1NYWllbYWBoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6aurquorKCosaanqqWZlK7IvrChlqaptZ6QhJ2snKeioI2Qvp6ajZ+aoJB9ho+Zl4isnKGWn6CRjZOIhoCRqI2Hopyjk5eehp+6sqeem5KOhXB1kImVkIqUj4+bi4+Sn5KXoKSWnqyIn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ18qI9ye3ecj6eWaJWkebSLn56mqJKYwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipiRi3yFkoaNlJKJg21zkIV/enKGgYR8hHWEgZeAj8Vmf6mHj6NrnoOim4SagY2OhYqZcY6ThWh3dHx3aGh1cWdoa15kcG1nbVhoR11STTJFNDZOYWM3JjM8REdEOTY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2FdamxcUUU9S01ASmRZXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wqKmopaugpLmxqqummpSgo6Sqo5alqrejr4Chp5ylnp2JlL2ak42hkZ2QeYSWlpGIq5mbm5mhhY+Mdpucj5+QiJ6km5WZmIejua6kmZyMjH5ibY+Lk5CNkIyNmIuQkp+PlKChmaGofqGnh62doJatj56cnZGFgKCNqq6Go42pmYyafqJ1gJmUa4KsdU2reIeNnZGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiLcpl9eZVsXXuWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+En2lmoG1bbop8Zlpgg39iV1Bvd2ZtdHJram9eanBtbGpYaU9dWEY5QTRHRF9rNCxJQ1FNTj04NDg1OTs2QDs7PUFPPlFSTE1CSlxdX1deXmJ2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guaGqo6askaG2vKyuo5mXoKKlrK2hna61o6iSoaCgppuZjZi0mZCLn4yVjHWBlJKMiqaWlZienn+ShYWspIebkIqYqZiZmpKIprGnopWaiImAaW6IiIuOjoqLjZKLkJKijJSeoJyipX+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn2icHOUiJZ7nox5bYecjJmQm6iaj4ede4Kic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCapGNzrKtgfWqds35ufIaCjoKLmHF/o2xyo3OehICkYJ2Zs5ZxfJeftHRzW56yg2pib3R2cmhvWGtsc3NmXWleYktFPUQ1UUFacjI9U0dfSlI9PDM5NTo6NkQ7O0BJUT9VTU5RQEVfXltZWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCbopyjo6atnJuxrayTl6GZoaSZmpSeq5uLiZJ4i4ZwgJaNiY+hkJKUnZd9kImOqKCHmI6KkaOTnJuNjKmopZ6QloeEfmt7h399kI2Di5CQiY+UoIOXnqCdoJ+LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnaIiX+eaJp1hpOSl45/n26akG2nml2pfni7a36qW46EXbRnXG5yeXhraVxxanl5Y2BmWGJBUUVPN1ZDUm40S1paX05aREAxNTE7OzdIPzpDSFU/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYmFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eJY5Sbq7qysKydppycqJ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhouekp2ciZCpo6CajJGKgIBpgIZ5f5eMe4iOjoiPlpp/k6KfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXurmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2ZfnSqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompxfI5tgYmEmXWbeIaJsbN/f5uTp3aCnW5zfZRvmXNrpF2VdkhlY2BzcX5/bmZgbGl2e2RlYlJeV11VV0BZRlFnRFNXW2JYXklEPUI4P0E6SUU4TEVXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnYGxrZmEVF6gprO5s7OpmqKMnKucnKmUoaukoqiPn56dmpmVmKCdloiHiXeFgW55lYWQm4t8kZOWiHJ/iJKhm3ORkIGJmZWgm4WOqZyalYuLinyEbISFcYKhjHiFjYiIkpiVfJOjoZ6iiK6GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemoCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihZB+o3Ojj3VrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXboBzonJdpGdzpmFopm2b1Jl9hZtweXqXa5t7eJdzbqmkZ2BleXCAhGtnZmRudndnYGNTW2ZRUWJJV0lUYFdTW2VqXGVRRkNLTUpLQkpFOFBAUU5XUllPU1FgZmVpU2N3eXdJRkVjXmVaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/satUXEt+qa+xtLCzo5uZhZmooKCkjqSooJipipmYmJOZk5KgmI6IhntwfYRofY+DlJqBd5GOj4lvf4aPk5Jsl5N8iJGSpJaDjqqalJKLhYl5g3eIgG6Cn4d3gJOGiJmil3uUoqSan4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKGZhphynoSjrq+Kl4yAjKSNloOuoZR2tbW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4qAb0xmo5Jwm4dypHt5dGGDgmt+oGtxZGCccn50l2l6abO1tMamc5h+ep1rnJurdYSbbXV3mGmaenWYclBFfbReanZreYhmamhidHVwblZeVFlpUFNoSVVMWVNVXWhrblZnV01LQUpNS0hKTkFRS1BlY2ltZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/lKGzq6+vtqKikICXqaKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiYyBaYSFkoOMhZ2NeoyKlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGVh4mWoJZ/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaatqdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaMdG+IYmigZZ5+aZp1b2NmiIJtcqJaX1tjoW1diYxve35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9lqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZlpTbUlYT11JWGloc2pZa1ZRUkVWXExYUmFVaGpfd3R6fXB8fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAl6udn6WMoqGaoqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZWZgnyIhpaokIGirJGGkIqCin6AgI5zaI+lhH2GlI2JmKCOiJOqp52JpniWm3+kiJaMspiekIKvl5+ld5SHeal0pI6Emm6kooyShIyDu259pa+ChoaGk5acn3ylenGolaCWZp5+b6tjloqVkneobKmigYl1h4J3q5Gmh2qRsGt2s4ypa4qGbW2fnpKVYX+ri6p2f3+MpZ52n32EpJWdoGqbiHesZ5+tjbZ0d76NpJNZg6aNq2F1cnRwfHRxY2p+bmhsU1ZbVmFiXWtNXVJdSV1tbXZgW3FZXGBaZ3Rlbm9xY3F0YHh6fnlyeYNzhH6Ae3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYV9eXGJrYm1se29cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZqlnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj3x7gYWYpo5/paaOgY6JhZV2goeSb2yLqYGDi5SOiZyfiY2Uq6Ogj4B1lJaIfoF5lK6jf4GbcY+FeI+Kg357cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2Ja4yFW3l4cnpwaG5+kolxf3SCj5STcYWDgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgIGFjqmbfXR8lmqJiG+Adn2Gdm1tZ4xzeXuYeIVba1h5j2lud3Jxb3h4cF1shm5qZ1ZaYFddZWtjVmFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJ0e4F4dXqDdoCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscXVuWltia2RsbHltaGxvYY6UuKimi6GimqakmaWcq6KhhISYrJKeoYmappupmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KEcJWFe32Si4aGkIV4fn+GmaSOfKehi4aQkIWWg4aOmHdyhamGjpKdkIienoiMm6ifoKqDiY2Umn5+iZatqI+Spo93b52RgnmRb32ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuBdnSBWXJuh5GBfX6Mal1qZHqFg4iAX2l4ept7gouCdYGGgmd3ioZrYXBygnZfcouBiY+mlYVmjI+DbneLhHGGj3pwZmdke4N6lltcamdudlt7eXd1bnNzgmZcbYprbGNZWV5bWWxxXF9hWl5dZnR+e3VvdGNra2p7fXJ7eHRkbXRobXx+dnp8fHp6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW1sZ3N5b2hqbWCLi6mwoZCjoZqenpiemaijon6DmK2Nn5WIm6KRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ugkIKnooh4jpiJlYuLnZeFg3qtgpGYmZSKnp2HiKGrn6Kio4uHk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35/kpGSk5yyppuVnpCNspOYhKWMjJWbn4mQm4KIkYprfI13eGWChpCKfImdhIeLkIiIgIWEkHd8eXSaoYiGiZ6KhJR+fYuBgXVwc4WDf3eHh4qQppGEhY2Hg42QjH2Ii4mQgndsgoR9eplqcmhhdIpwfXp3dm92dIFdXm+HaG9gXlpcXVNoclVjXFxhbGh1fHxzb3Bka2ppf3xueX9xaXBwbGaAe3KCgHh/fX+Fe22CjIZ8enh8fXqDeU5kdmpybXB6ZGtlYmJgW3RmcGZycW1VXWx0bWl5enFnaWtljIeduZ6XoqGYlZmYlJmkoZ58f5qrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4eEg5B/gIaEhn2Gg46bnZKHq5+DcoqQhpORjJ2RfY16qoSNkpiWj5yXh4abpp+imp2Gg5GamZmQmqagpZ2dkJaAkIp2e4eOhKV7fI6QkYaYqqGdk52PjaqOkYCejImTmp6Cjpd+ho6Db3eFcXVhfoKPhnWLmICDj4KGhX6Fg5RteHV0kqKKjIWZhYSNdICJfH1ycnuHhHt4i46EkqaPhoOPgYSKiop3hoiKjHxva36BfG5obG1nXnp/aH17dnR2dXt3XGBwfW51YGNbXV5RZ25UZVteYWtpdnp+cWxsZGtqaICAbHOBbGx0b3lvhXlth4B2goB+hXZxgo2Ifnt7fH97gopgaXtqdWhpgmVqY2BpXGR1aG9idG1sVWNxeWVwenpyZWptbYuJnreaoaSfkpGWl4uan5+ee3iep5GcioellIuYmXl6jIV8iZGDjIKCgm58f3hzgYV9i5F9a2h9gpiJgYiOfH6GhId9j4GQm5uRiKedf3CLi4yTh6GhioWNfKiRiJCSl5OWk3iMo6ChnZaaf4GQmpiSjJqjoaOal5Gbfo2FeICDjoegf32MjZB8mKSgoZOZkI+mjZCBm5GJk5ebfZKSfoeOgXRzgnB2YH1/jYZyipV8iIxxjH+ChYaOaHdxeIyYkY9/ln6HinKBhnx8cXl7i4R6epGMg5alk4uGkHyGhoeFdoKEiYh6ZXJ8f3h6cWxqZl5+c2h8dXZ0fHOAal5gdHZweGRjWV9eUmtoVGVZX2FoanZ4gXFma2RsaGaAgWtufmhvcWt+eIZ6a4yBc4GBfoF0doKNhn58en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXt6cmJrb3mJjZ6ykaSlnY6QmI+GnaGbnXx2paGOmICMooqImpZ4e4aHfoOJf4mCgX9xf3t0doKFfoqReGdjfYaXioKKjXh9gIyDeZaBlZiWjZagm35vjIKRlIamm4eNiYSmlYWTi5aXk5J3kZ2hoZeUl3p+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2Mc5ejnqGTmY6PooyMg5eYg5KWmX6YjXyIjYF2cX1uemSAfIqFcIaSf5CCbIeCgYCJhGV1b3uHkpeMfJN4i4l7f4Z8e3F+d4mFeYSQiouXopWChIx3iISDgnd8goqGdmB4eH10fnhnbGRhf2lqd3N0dX1xfGJjYXNudXNtYVphXltsZVJjWGBhaWt2eYZxYmpjbWVpfYNsaHVobG9pgH2BeW2QhnGAg4N/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl7eXFfcmyGhY+crpemqJ6NjZeHhp+Tl5l9eKqdipl6l52LjJiQeXuBi318g3uAg4F4dHl6c32AhH+Ji4BkXn2LlYd/hYd1fX6Kf32YhJeUl4ykoZh/cod7lJKKp4+MjoqToJKDkpCUl5GLgY+YoJqSkJFzf42SlImdnZ6ml5eNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ+Mh4KSnH+TkpWGmYh8iomBenF5a3Vse32Lfm2FkoKUd3CCg31+in9kcml7gJaXhH6Nc5CIg3iHfnZ4gH2GgHyDjYSMlKSPeYSCdImHfYB0doGJhG5he3V6cX1vYW9jZHtibm92c3h3c3RhdV9vbHVub1xbX15ea15QXVhjYWhtdHuIa19qZmpjaXeIbmZsaGpsaIF9e3dvkIhzgYOEfXSBhol6g316gYR9fY5yeot4eG5sh2toX2lyYodocm9mdmdubGF5aWt9e3hwYXhti4CZmaqgo6ieiouShoqei5WYfXeumY2XfZ+UkZaUiHd+e4p8e4B2d3+AcHR0e2+FfYGAin58YVx+kJKGgISEc3qAhnqPkoiSkZyTpZyVgn6BfY6LkqSJjoqNmJqNhpGYk5aPioiMkpyTkIyNboOPj5GJnpmioZeWiZaRboiZhGaFmI6UeomFkItwlZqUopKSiYuajIJ/kZ59ko+Si5mOe4qEh3NydWtxbnR7i3RuhZCNknF0gHuBgYh8ZHBseH2Zk32EiHSQioBziHlvgH2AhnyFjImEjJWojHuIfH6LhXh+cXCBhoRjaHl0dXB8Yl5wYGt0XnBqe3l4bHNwZXhdbWxzbXNYWl5fYmtaUFdYZWNncXF/h2ZdaWhnYmdxjm5kaWdkaWiBend1b46FdIGCg3t1g4mFd4V8eISFeoCKd3+Le3tyeINqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p+opehqKCmm4eMi4GQnIeTnHWBqpWTjoehjZaTkIB0e3aFeHl/cnN7hWtycHptinaAgYducVtZfpKNiICAgHZ1gICAoIaQi5KdmKGUmHiKf4GNiZyeio+GkpiWhYmVmY+Wi4uNjY2dio6Qg22Ji5CRiZyWoZyYlYWXiGmEo4JmhZ2KkX6Lg4uBd5OYkZ6RkImJlY5/fpCYfJGNj42aknyKgIJudXBsbW9we4Vpc4OOmIpwd390goiCeGZyb3WBmY58iIR6lJF5doh0cIl7hYx6i4aDiY6bo4h8hHaCi394eG9sgYSCXnJzcnFweFpecGBwal5van16cG1tamx2YHBvanJtWlhhYWJuWFFUWmZnY3VwhIJiXWttZGJma5NuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHiFf3eHhneDhXyGjH97dop/anFjfGOGfG9xbXRqaG9sdnhfcX95e3R1dICCfqSVmq2eppaFjIR/l5SDkJ91i6CUk4aLm4yVjYt6cnh0gnByhXRxdYhrb211bYh2g36AbW5VUYGrlYeCeIB3c4J6gqCCkoKTk5ickpp4knuDjZOkmpOOiZWZkoSHl5mMlIuJj4+InoSQinxzi4WJjoicmp+alpSAk39ohZyHZ4Wgh5KDkYOJcYORl4+bjo+MjJCNeHuSkHqOi4yRlox8iHyAa3ZqbmtrbHp/YXp+jpaCdnqAeIOMfHlnc2x0h5WLfoiGe5OQcXqEcHaMeomMeol9goyQnp2FfHx3gox9d3FqbIKDemB4b21scnRWXm9icmBfbG55cGhvZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xocmJiZWaSal9oZFtncH5wa3B0in12fIWAdHV/jHl7hoF4iINzhoV+jIyEe3mVeGZyaoNgiH5vb2t7YGpudH91X3R9eIZ4dHOFfHigj5mwnKWPgop/g5qIgIyff4uak46FiJeOjo+EdnR3c4Bwb4V0cHGDcGppdm6Dbn18bXVzUk2C38iS1pN8cHWDdoOfgpN3lJGZnJCZe5RzhZCfoZOTkIqTm5SGfpaWiI2NiJGMiJx/joB3eox+iIuKnJydm5WTeo12Z4mSh2yIo4SSh5eDhmOMkZmOlYqXjI2Ki3F7lIh7joiKk5GKeoV8fmx7ZXJvamt5eVyAeZCOgXp9fn+Gjnp6aHNqc4qOiYGFhX2Vi2t+f26Ai36Lh3yEeoKPlZqainx2eIOQeXNtZ3GAhG1qdG9oanRuU15vZHBZX2tyeGZramJmeHJvcGNfd2BgVmtfXndQTkthZ2NdenGJdFxcZXZgYWVlj2RgZWJYaXNzbmtxdox9dHmGgXV2fotzgIZ/e4l+comHgZGKiHx+mHZlc258ZYd+b3Brf1psbnl5c2F2enuNdnN3ind5n4ubr5ugkIKFd4iVfn2KnYeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhxfW15fWpobGOkmsHcru+hc2x1hHaEooWSb5aQlaCVnIGScYaLo5eJjpWKkJ2Wg4CVkIWJj4CRiomWfod6dX+JeIaEjZybmJmOj3aKdm6GiYt9iqOEkYmdhYVei5OXio+JjouLhIptfJaBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqShoZ5foCAhYt+eGZzan+JjomCgoCMloVrgXZuiJCCj4R+gXp/kJWTmZB0c3iIjXVzcWd1eoNidG1wYmp2Z1JgcWdsVV9udHlhcmNfaH1wcm5bY3JgYlduWlx4Tk1MZGdhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYiWh4x+fphzaHVxeWyLem50cYFXcXp2eXFld3mGjGl3gIlyf5yHmaeco5KEfXCMlHh5i52EhaGNjXuWjX+ZiIR7cndwc2pvgWtpbXx0XmB4d3txdXtnYWV869q1ycPciHNsdIF3ipqIjWmYkI+dlpOBiXGFiaCNhIuVioyYlHyNk4iDiY97kIuFj4J/dniDhHKHgpOblpSYhox1h39whIKJh5ihg5SMn4OJYYOUj4eKhoqNh4GHaX2Uf32DhImOjoJxhn5/cXdodnJpc3dsWox8koKGfX+DgISJgnVhc2uIgY+KgX5/kpB9bYJseIaPhpKDfIB9gJGTkJaIb3F6jIZ1bHFscnmBYHRpbl1rdmBSZXJpZlNfcHZ0YG9gXWiCcHJqV2doYmlYbVZcdU1LTGVnXmJyc4VpW1xleV5eZGd7YGRfXFlrbmZvaXN4in5zc4F+enZ6iHOFg32Ah3Z3ioaOmIGMgXuTdmx3dXl4k3RueHt9WXqGcYBvZ3h3koJkdoaFcYqVhZmhmqKKh3Rvk4tyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5pZmx3eFteeXt7cXGAamFnYX/Vto6Qp3hvcXd8cZKQjIdqmY6JnJKMhntpiIuah4GSkYaHmI18jY2BgYmNe4+NfomFenR7gnpwhoCWmY6TlIKJdYOGdoN/ipOcn4aVj59+iGGAk4eFiISKjoB/g2d9kYB+f4KMj5B+bYJ8gnRrbXZ0c3Z1a2KNgY9/hX58hH6Dh35vX3JwhXuOjIF8fpGIenCDZnmDioaLg3yEfoCUj5CShG5veox+dW5va2x7fmNoa2pZbnZaUmlyamJRYnJ4bGJlXVpqg21zYVtnX2RsX25UW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1abGxibWp0d4Z/cW9/fHx0eIZ4hYJ9gId1eYmBkpZ8iIZ2iYFwd3l7g5NvbXyBd16Df3SBbWl6dJRzZ3OHfHKRkYOan5ughoh2dpV+bXaUl36IkIOKjZp8i5p2fXZxb2xqYXV8Z2JpdXpaX3h8em1xf2VkaGdXnY9ecXOXvMWEdnGUiZB+cpeMhp2TjIh0a4mPloF7lIuBhJuMfIuGfXyJjH+UiHWJhXZ2fYFxdYaBnpSGlY+Dg3F/iHSDe4mYnJeGk46dgIhlfZOCgIaEiYlygX1nfYt7eX9/h4yPfWmAfYN2Zm94eHN2c2xqjYWKgYp/eIKAg4J/al5xeHp9jImFe4GPgH5ygWl4goeLhYR5g3yBmIyPjH1ubHuJfXd0b2lofXdlXXFjWG9zU1Nuc2lhTmZ0eGZgXVxYboBuc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15tY1pib3djZlxdYGtqY2xpc3aBg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnl5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRsk42Fn5igmYWIbn2Mdmp4mI9/goqClZeKeY+Wb3pzcGxqZGBzemlgZXJ7WmByfHlncHphZWWOsbJ3SmJapNrQl3J7kYuQeH6Vi4WZkY2Gb2yGkpJ6eZKGgYSYinyHf3h4iYqEloBviodxdH56aXmFg6WRhJONg39vfoN2g3iFm5iTipKQlIWHcHuSg32Dg4mDb4F4aICFeHJ/f4OLh3xlfX6DdmNwc4BoeHBvdJiMhYKKe3Z4f4N5gWpccH1ygIeFiH2GiXqIcoFucYOGjoSEc4R4gJmMjYR4bm5+hH93e2Voan1yYFl3Wllxbk5YcnNnYEpsdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWZfWnBrZ3lxW1tYa2VZY3B5X2hcXmVsaGZsaXF3f4dvbH99gHVwgXqAgX+Cf3aBhYmXinGCjXF7hnx6eYSTjHRqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnJKChmeHhHBoepaJfn+FgpmKgXyNjGl4cmtsZl9hb3htX2JveVxkbIN6YXF2X2Vl1Oq+ijI6PouOgHJ5hYiOjXaDl41+k46Nf25shY2Mdn2Pf4WClYl8g3hudoaEg5d3boiEa3V7dGZ5goOnjIOPjIR9bn90doN5hZuQi5CRkoyLhn57kod4gISNg2yAcml/fnhtfHuBioR4YXmEgXFkcWh+bXRxdYGbi4B/hX5zdn2AcoBvW2x+dHiJgop7hn98iHh6cWyIg4+DinKBeX+Wi4p+dG1rdoCAdXZdaWl4cVlXfFNacWVMW3JyZVtKcHdvXFtaWV10fnRoWWJbZ2VuY2lNV2ZRPV5mXF12ZV90cFtZVW9kWWVweVpoXl9nbWdqbGlweH2ObGmChH95boB7fYF/gnp1goGMk4VwgItud36Ae3uIk4l/aHt+anR7coZ7c3d9f4x5eIR+fGuMjIObnZaMgYBsjn5raX+OjXt+f4OUgn99iohrdXFnaGNbYmdyb19hbHNhaHCJemFzdF5jZJugj25cNVmvtXVqgIl9koZ2hpeGdI+LindwbYWDh3V5iniJfZOIen9zZ3aIfn6Yb3CGfWh2eW1leYiFpYeBh42Kfm5+dX+AfIuZh4KTkJiIi4SJfI+JcXt9hXxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlJGBfIF/b3d5fHR+bFdvfnZzi4GGd4d1gYl6eHJuiYCPgIVyfn1+koiJem5uaW2CgnVuXWhmdHJSW3tOXHFcT1xycGNWS3N4aldZWVphcYB0YF1dYGdkaGlmTlpoTkFhZFtgdmFcdG1YWFN0YVpkbnJXal5haGtnbWxpcHd8kmtohIl8fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e253eXaKd314gIKHf4N/fnpthIyImKONhIN7dox6a22EiZF5fXuCkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinVhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaUgnSQjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHVmd3ZjanyDiJ6CgH+Pj31yf3OEeH+RkIJ4lo2Uj4eCiHuJiWx4eX51aHppa395c2l6doCDfWhgd4d9amt0aHt/aXaBi5CUfnp+fnB7dntzfmJVdnxycomDgnyCcIaJd3hwcIOCjH59eX58dY6FgnVpcWlsiIJycF5oY3NuS2V1TF5vVVRZc25iUE9zeGFSV1hcYXCCc1thXGhlZGNqZFBbcUlEZGFcZHFeXXdoVVdWd15cZW5oVmteYWpnZW9vaXB3e5NuaYiMeX5ze354goGCfHZ9g4iGg3B2g3Jud4KDfomLk39wgHx4eXqBjHSDeH+BgYKEeYB2b36Ji5qeiH2FeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYV0lIZ4dWxgeoJ5iI5mcYNvZ3VuW219gZCTgIF5kpN9eHtth3WAkIuDc5aKkY6HhYV7gIVtdXZ/bmh3ZW17dm1qdnZ/f3xhYniGemh0dWN9emd1ho6MlXt0gHVxgHp8bH9ZVnN9b3SDhn5/eGuIhnN5a3R/g4N9en14e3KLgHxyZ3RlbYuDbXRba191ZUhubkxbYldXVnhtYk9TdHZYUFVYXmFxhG9cYGNtZGNdbmJUXXJHQ2ZfXWZoXVp6Y1JWXHVbW2drYVZqX2BuZmZrcWhwdniOdGuOjHV/dnh+d4GDgXt0foOIiINvcX90cXV+hoKJjYp7d394hHx8hYd4h3x9gX6FgHt+c3Z5jI6fjYl6inZ1g3lefoaajHmHg3SFhoV3iXpibmxbYltbYVZqc2NgW2dub2eHcmFxZlddY2t/fMrOh7miam1timxxhHF8hIp+e5KFenl0eXV1e2ptdWOEdpKCd3BnXn2CeYuJZXGBa2pxY1hse4aciYOCc5eUd357bodxgYmLh3GWjpCIhYuDe3l+cXFvfWdocmJueHFqbHF4fXx6XWV5gHdpdXhmgnZndIeLjZR8codpb36AeG18XVhxfm1zf4p7gW5uiX9xdmd3f4F/gXZ8cXp0hnx5cmZzYW6LgmxzWGtfd1xJb2tOV1ZeVFV7a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1Ve15PVmRwWVtqaF1XZ2BfcmZrZ3JncHN3hnhulYp0f3p4fnmCh4B1c4CGhY6CcHB7d3d1eoeGh4yGenx/dYt+fYWEhId/fn59h398eHV5d5GTn3+MfYttdYB5ZIOIl4ZzkopvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2VXWmBpf3e+rnuft25ic4ZodHxyeoOGen2Mf3h4c3Zve3Zlam5hh3WOgXNqYl5+eHmKg2ZxfWhqa1pWb3iKo4GFf3GZk3GAeHWBbYCBkIdylIiMh4OIhX15dXJvaHlham1gbXZqZ2tsend6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3RsdGJcb3xrdHyLeoFmdIZ9bXFodX54fX9yfGx6eoF6d3BlbGJtiX5tblZrYHdWS2prT1JPaE5ZfGhiTlV1akxQVFVeZnaDZl1hcGhnYFdpXVtraEpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbWRxZnJwdIB3cJqEdn9+eH98hYd9dXOCiH+Vgm5zeHp6c3OFh4mIhHiAfXaPf32EiY6EgoR7fouDe3d8d3eanZd6ioOHaXd+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbVGRwZV9YY3N1aXVwZGVjV1xcaIBwb3KAc4lkZXh+aXR2c3ODhXiBhHl3dHVua3twYmhrZ4Z0jYRuZl1ffW97iX1obHdmaWRVV3Jwjad8hHx2lpBzfHN7eW17epCEdpd8h4aChoN9dXBybWd1XW1oX2x1ZGdmaXpve3JZZ4F3dGdwgHiCdWJ3hYp8lIBui2pteoBwZXJlYGx5ZnJ2iXt9YXWDdmlrcXR6cHl4cn1mfn9/eHZuY2VhbYZ8bWtWa2NxU0xpa1BMTnBHXntmYU1VdGNKTlNXYGp3fWVdZ3NpZV9WY1dhcF1MS2tYY2FVVFVzV01YdWRaX2tgXFpjZV93Zm1icGlzb3J+dHSZgXd/gHh/foaEen12goR+mIVucnR7enRxhYWPgoB6i3V0kX99gZSOgIWEfH6Mhnp+gHZ7o6WKeYiGhWx1fHt1hIKMem6Fc3qFfYGDdW5qaGVWXVtbWlNibmVbWGF0e2pobWhfYldfW2mAamtvgGdsYWh5eWt0dHRvhYF6f312dW56aGp5al9lbmiBd4+EZ2VYYndpfoZ6b2lvZmZdVVhvaI+ndoF6fJCOeXVvfm9ydXmOf3eUdIWCf4WIdWpydmdob1xtZV5tc19nYWp4aHttW22Dc3Npb4B+eXdhd4SEeI+Ec4hxb3l/cWJwaFtudmRwc4h7eGFygHBnanhzcWt3dnR3Y4N7fnd2cGRjY258fWtrVWpjZ1NLbGhQR1JsRWF4ZWFNU3JdSk1UWWVrd3plXm1waWRdVl9Vbm5XS1NoWGZeWE1VbFVLXHlfW19rXV1bYmVgemhsYW9vdW5vd3V6l313gIF6gH+Hhnp5eoN+gZOEcXR0fnp3dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doGAgXVuh298gHOJgGpvbWRkWF9aWlpVYmpnW1pfdYJpXm1sXGFWXFxrgWZydH1pal1rdnZodHdyboZ7fn15dnJtemhpd2ZdZHJneneSgWNjVGVvZoKEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55i3p2jnGDfX5/hm5kdnNkaGhdbGJdb29bZ19tdWV6aF10gG9ya3F7fnV1YnSFinqHhoB/d3J1fnRhcGxZcHJicXGEe3VkcoBsYWx6b2poeXd0cmaFdXp6dXFkYWRuc35qbFRpX15UTHNjUUdXYkdidmVgS1RwWEpMWFhna3Z6ZGVucGZjWlhdWHZlVEpcY1hoWFlJV2VRSGJ4Wl1fbFteXGJkXoBpal9vdHltb252g5d5coGAfX+Ii4Z9dnaGeIeMfXN1dYF5enqCjI59foSJanSWgXuKnX1+hXmAen58hohzcY+ujHt7hpB+ZnKIenR9fXZyb4Zse35sj3picG9hZV5lVllZV2Nma2BdXXOGaVhwbVtfV1tcbHtjcHd2bGJbbXN0Z3V2cW2FeX+AeXdub3RlaXRlW2d0ZnZ2kXpfXVJmZmqCgXR9YWNpXFRYXmJjkKVoeXSChZB4bW55Z3dte4R6dIhygHh8eH9oZXZtYGZhX2pgXXRrWWVdb29iemVbd3xrbm5weHh0dGRyg5J+h4KIenZvcX1yYXdkWm5vYXBxgXxzZXGAZF5udmljZnl6dG1ugXVzfXNxYl5mbm99ZWlUaVlZVE54X1JKWllIYnRjYElUbVRJTFpWaWxye2JsbHNiYVlaW2F2W1NLZF1YaVNXSFlgTkdpdVheYW1bW19iY12FaWhhbnh5bG9rdoGQeG2DfoCBkoiEgXZ1iXSMhnNxdnaBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZont6f4mVeWR1iHlzeHZsdG9+bHl8cJFyXnBuYGdibFRaWldoY21lXFxyiWZScm1bWlhYYGx2ZGl1ampeWm1zcWx0dHRrhnx+gHx3b25sZGlxY1trcmR0do9zW1dUZGByf35yglxhY11TWmBcZJOfZXJxhYSRdGxqeWxvb3p7e3GAdn9yenp6ZGV1Z15iW2FoXF53aFdiXW9oYXdhW3x2amlyb3d0c3RocIGUgoZ+hHZyanB7bGZ2V1xqbWJwcoB6c2VvfltgcHFiXmlwfGxsdH5ycXhrcGBcZWxte2FnVGdVV1JQdltTUFpSSGNzYmBHVmtRSVBaVWtra3xlbW9xYFtaWFlscFdSUGZXV2hTVEZaXE9IcnVYX2NtY1hhYGFejGpjZG15eGtvaXV5hntrg32AhZl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYGAgXR/gnCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnONa150bmFnZWtTXVtVZ2JsbFtccYxkTm9tXFZYVWdpdGhidGVlXVpudW5wdXV6bId8f3yId5BzY2Vrb2Fcbm1jc3iHa1pUVmNjd3x8cIVcY19jVFtgWmOWlWNucIOFinNqaHpuZXJ2c3treXR1b3p+dV9mcmNbXldiZFlhdWZVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4VxcmZufG9xblNaZWplcXOAdnNibHZVYnFrW15uZXxlbHV8cnJyam1gWWRqanheZlRlVVZQVW5YUVdUUEhlcl9hRldqT0hYVFZtaWR8aWt3a2FXXFVbdGNTUldpUVlmVFNIWltQTnh3W19mbGlaYmBeXo9uYmZreXVub2l2dn9+bYOAfoeXe3+HgYp/a5OIcmd0gHt1gIN9iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqWMc4GNjHd4bnuNYGR8cWZ6c3lsbXF2g2dkfGxjZmdoU19fVGdgbG9cXm6OaE1pbGBVVlNvZnNrZXhkZV1ZcHRtcnt4c22Ie4B3nHt6bGFlbG1eYG5qZXB5fmdaVlhga3h7e2+DXmJeZ1ZZYFhknIhia3GBh313a2p3bFt2cWt5aXVybW97gHJYam1fWV1WYmRYZXFjVF5haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFlb3tscWxiWF9oaG9zgHRzXmltU2VwZVVibmF5YnB1e3Vrb2xqX1hhZ2h1XWVWYlZTTllmU09dT09IZW9dY0dZaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJgZk5dYVRTSlxaUVp1dV1fZm1oWGJhW16OcWNnandxc25odnN5g3OCg3uIjX58ioeOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjY2MjY2Njo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8wMDAwLlxwbm1ubnFJLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMeHBwcHR0bU2pnZ2dnazwYHBwdHRg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeIiIiIho2QkJCQkJCMh4eIh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhISIioqKiomJhoKCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKTkIqQjY6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIiIiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNiI2JkImLkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eNjImPho2Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIuMiY2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii46MjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt7fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp7e3x9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXx8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t8fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjpCPjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlZWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOUkpOTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkpGSkoOQk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSkpKSkouKkpKNepGSkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGSiHeRkoR3j5GRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+LboqRenWMkI+Pj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Pj4pogI92dYmPjo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNiWl3jHV1ho2NjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eAaG2BcXOBhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dXZ3dWhgZ2BkaW5naGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhmX2tsYGpoaWdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3Z5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlxjdG1lcXBlXVpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUmhwbGFwdWtUUFFUUFBOTk9NS01MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5UZmxuY29zcldOTk5PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJFSU1haGtxcW9uWUxOUlZQT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUFLT0dITmFoZnBva2hjXmNoV0hISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PkBUXlldaG1pbm1sampsbFZGQkRFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8PEVZZmlrb2ptbWpqa2xXQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7OzxOaW5va21saWlsVUA/Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6ODdJaW9tcG5ra1c8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTxKZ3J3c2xcPz09Pj9AQUA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dHR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW5APkRFPz5HW3lyVEA8Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttdkg4Ozo9PkA9Z1w5PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlRPD09SUxFRnZ2TTc4ODo8Pz9TVTk7PTw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT4/QlVbOjs9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfV0+QENAQD8+WmM+Oz1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYV1TEFDRUA/P1Bydkw/Q0VJSklJTU1LRURGR0hGR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFFZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1h4iIf1hHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVV0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhIR0hGRkZISklJSUlIXW9vcXJ0dnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VshYeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPT5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaDgoaFhIWGhoaHiIaKdUlJRkI/P0A/Pz48PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oj9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxMU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f4B+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoOEhIWFhoeIiIiJiYyOZkJCPjg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4yLiomKi4yJVDo4NjU2NzY2NjQ2NzYzNTY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgYODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY6OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjk4ODs8PT45Ojs7ODk7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1dHZ4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Af4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QUNFRUFBQUI+QEJAQD49PT5APz8/QD9APT0/Qj9BQT9BQD1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkNHSUtKSUZHR0RGSEdFQkBAQ0VDQkFCQ0I/QERIRENFREVFQkZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXF0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZYhYKDhIWFhoaHiYmIh4aGhoeJiYqLjI2MjIuKiohXR0xNTUtOSUlLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkBBQ0JEQ0NERENAPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSVmFgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTU9OTE5LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDk4PDs7PTo/QD4/QENGSUlQX4KDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUU9OTExLTEpIR0VKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdGQkdKR0xKRktOS0pKSk1NTE9QTkhJS0xPUVFQUU9PSkhKSk1KTEZHSEdGR0hGRUVCQUJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUUk9MS0pERUZLT05PV1VRUE9RU1JNU1RPTVJMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdIR0dIRj5AQj0/PT1CP0NDRlZORk5PUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdWa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlFQUFFLTEtISEpIRUZJSUlISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHRkZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dVl1aVkVRWVpbWV9UWmdSVlZYVVRWVE9PTUpMS0lJTE1LT01Tb3N2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJUUlZWVFpadYNZVX2QYFxYXV9XSVZdXVtbX1lJWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKf2ZZWVxZU1VUV1JRV1ZjloBRZXJYWldfZ1BgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aTFRaVFNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRxc3Z2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn57eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGNVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnV0dHd7enp7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQ0RIR0hLR0RCQURBT1FNU2RzdHZ1c3R2enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PT0xRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCbE1HPj87Oz5AQD8/PmpRS2FFRkhJRUI/R0xNR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnV1dXN0dnh6fHt9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVFdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEE8OTc3NTk5PTs7Ozg5ODk/O0JIP1xzdHV2dXZ4enx8fH18fH19fX58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUk9hV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY2Nzk1PEI9ZXN0dnh3eXp7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUkxYWVpWWFhWWFldV1hYaHNrXVZhc2thYV9eZGFfXllVUU1PTkxJSEpLSUhGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUdtcXR4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVlRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUVBVWVNUTkpPT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX19fXx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPVhNSUFRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1FQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNDU2Njpkb3F1d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSUZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc3RG1wdHZ5e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1dWWVlWUVFRT0A+Oz0/QUJBQ0BCRURBQEdIR0hGRkhKTUtFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVlRXV1VMTEtJPTk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJiXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkU/QkM+PEJGP0I/QWRwdHd7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDSEdJRklFQkI/Pj1DQkFHSkVNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUVRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9NSUpJR0NDQ0RISk1MSVlybXd5eHp7e3l8dnJwdXJ0eXl2eGpxbmtsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0dISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJCQ0hGSkxKRElJRkdHQ0M7QUBCPkBAQ0RDSU1QR0lLR0hLREhJS01ISkxISUpLSk1dUkhIRE5GQUNLS01NUE5LTUpLRkdHSk1OUU5MYm1pdnZ3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHRUZGR0VHQkNAPTw9OTo6OkBDQD5CQ0RFSUZKSkxGSElHRkZEQjtCQ0M+QEREQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSkhFTklCRk1MT01PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5ma3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkNFRkVCQ0JFQERCPkA/Ojs7PTo9PkNBPkFDRUdKRklIS0hHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEtJR0hQS0RJTUxQTU9OT09OS0pITVJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIREVHQ0JAQkQ9QkE+QD06Oj0/Oz4+QEI+QUJER0tGSUZJSEZGR0VDQ0FBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVBPT09OT09LS0tPVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdHRkhCQkBERTxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0VFRENFQ0RJRkNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtQU05EUVJQUVJOT01OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo+PTo+OkBCPj8/Q0VGREZEREhGREVDREVFR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTExPT1JUT0lTVVNRU1BRTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdpaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3VucHJzeU5JSUdJREFDSEU8QEVCRT04Oj4+PTw8QUI9Pz5BQkZDRUJDSEVDRUVGR0dHSUZIS0hDSUhHSUhGREhLSUdLSE1MSktMSExLTUtKTkxPTlBSVVZPS1VXVFFUUVJMT1FQT1RZWlpcWllcXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB1TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQjxAPkFBRkNFRERJRUZFR0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZKS0xKTEdCRURFPEBGRERDOz8/QUBAQERBP0I/QUNIQkZFRkhGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBLT1BSVVhWTU5UVlRTUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFCREFBRUdDR0hHR0ZKR0NHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQkVHQ0NJRkNISkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJFRkhDREpFRUpMTUtMTEdHTUlHSUtIS0tJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteG1rdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRURAQUI/PkJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1OS01NR0pOSEpLSklMS0pKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGppb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj1AQEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE1JTEtJSk1JSkpKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVFQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+Q0RCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTElLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxvamlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpGSEhLTUlISklLS0lISUdLS0xMRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWVyaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0hERkdESUtMSEZER0tMSERHSFBLTE9LTFdMSUZFSElKSElLSUxKSEZHR0lHSElFRkxJSktOTElPXFdeUFxbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJFSUVHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFIRkpJS0xJTEpIRkVJR0RGR0VFSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dHRUhHSEtJSUlERktLS0ZGSUpOS05MSExOSEhGPkdHTElLTEpLS0lHRUlEQ0REQkdKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxaXWNgX19jZWJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTl5RT1xfYWNkY2NiXGRjYmRjZlhRVVRSW1haYV9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtKRkZGSEdHSUZGRklMSk5FREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNJSEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZZYFJRX19hYmFgYmJgY2JhZGRiWE9RUVFbU1tdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YXl5hXU9ZYlxgYF9iY2JdYWJXX19UUE5PUFhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTEtLTUxKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTExNT1BJTE9QT1NQTFFTUlVaWVdZWFhkV09TVFBQTk1PVVRbWVlbXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWE1HSEpIR01MUVFJTEtMS05OVU5PS0tMR0dLUFRTTlBPTk9OT0hLRmBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFSVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVVtcW2BgYWFhYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0ZgVEhKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xdHBTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfX3ZfWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRkpMRlJWTEtOSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBOTU1KTlZeWVVMUVNOWVpNU1NSTkxPSVFSVFlXV1BUUFBQUUtIZ3hsY3hybVpLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclJpe2xpanp6fWx4en9waG9YdnZqdXVwgGByZ31pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9jUmdxdW5teXB3bHZ0dHFsbVx0fnprbXl8a3RtfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNS0xRUVFQUFFXXFlVTVVZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcnxdVEtsYHZ1a2l2fHttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUlIUVBMTk9MS1NTU09TUldSVlRQV1tWVlRUVGFgUE5OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFleW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pSUktRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVlZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZmRlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1ZUTlFOTU5RVFBVUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWV5cXl1cXWBhXltiYmNnZmRkYlhfYWJeYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZUVFBLT1ZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRYVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRXWFVTUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRhWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUkxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldWXF5aXl9gVWFcYWFdYGJgXWBdY2FjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBjXFtWVllRTk9WU05RUVBSVFJLUVRUWVpXVU9STlNYV1RTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUU1NdWFpdXlxgYGBWYltjYl5hY19dYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1FPUlpTUlFUUlRVVEtRV1ZbWlpTT1NSVlZWVE9WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVldXX1tYUlVVWVlZVVdZW1RTVl5ZXV1gXWJiXllgW2ViX2RkX15jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVlVUVFTXFRVVFVUVllXTFJaV11aXFJPVVNYVlZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFlcVlRaXlxeYGFfZGNcXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11fVF1fYmVldoJ7aFhZWVNWU1ZcV1dXVlZXXVhQVV1aXl1dVFNYU1dWVFNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFVWWFtaW1lZWlpYVl1eX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZV1ZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdVV1taWVxZWFlgV1BWXlxgYVxUVVhQVVdVU1dWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGtmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVFXVldWV1ZUVlRYXVxeYGBdYVxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BgZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWFtcWFdZXmBiYWVhZGFdXlliY2JfYWBhXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXGBiXmJkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmNlY2BSXFlPWFhaW1paV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcV1xeYGJiY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGNjYlxbW1pXWGlxYFxgX11cYWNfXllZZGVkYVNfWlFZWFxdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXl1hYV9dW2BhYmViX11UXGBgY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8e3p6enp6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjI2NjY2Ni7DBvr6+vsGiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjI2PkJCQkJCOu87Ly8zMz6qNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh5eHh4eHd3d3d3d3d4eXl5eXl6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fHyAg4KCgoKCgHx9fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ1dXl2dnZ6e3h7eHd2eHt4eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp6eXl5eXp6fHt8fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt7e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fHp7eHt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x5eXt3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6f3t5e3l8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3l5eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODhISCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkX3R8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgd3x7e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ1fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnJxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hvcHBycnJycXFwcHFxcXJyc3Nzc3FxcnBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzcnJycYVzb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHFycnp7cXF4lnFvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXJwfpZxb4Occm9wcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXB2pHtukJ92b3BwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcHaqiG+ZoXpvcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwdquVcZ2ifXBycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3R6q6J7nqJ9cnRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHh4eJSypaSrp357e3l6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx8fH1/pqaisqSoi3p7e3p4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19foaonKOrmp6bfn9/f3x8fYCDgoCAf319fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBjaOToK2foZ+Ef4CBgH5+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f3+BgYCKnoyUrpyWm4d9fn1+f39+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/g4OAfoilopmfm5aclIOFiY2Ff4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYSLkJaYpK6mopudoKepoaGgkoF/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoSUqbCwpJ2inZ6foaKjn5KCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIKUn5+dmaGdnaCfnZ2Th4eHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYKNlJWXn52eoZ6blYiHiYiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISEhISIk5adl5qenJKEg4WFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoKCgoKLlZeLkZyWhIGCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgX+AgH+HkoqPkoWBg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKloiEgoSCgX6CiYyCgoKChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCKjoCCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioSEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAj4yDgX9+fXx9jJyNgIKBgoKDgI+TgYKCgoKDg4GBgYKDhYODg4ODg4SEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYGCmZmEgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin6EhIOEgoODg4WNjYWCgoODgoODg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWFhYKAfn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSGhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoSAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYaGhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWCf39/f39/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoaGh4aGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gIGAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhISBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIyHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQjpCOioaEhoWDgYGCgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJiomHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgYGBgYODhIODkZKQjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeJi4qGhIaEgoaGgoKEhIODg4OCgoF+fX1/gH5+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgoGCgoODhYOEhIWEhIaEhISFg4KDgYKDg4SFhIeSkY+Nj4yKhYSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX5/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgYCBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fn+Cg4OCg4ODgn19fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+AgX59fX+AgYB/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19fn+Af31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB/f39+fn1+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4CAf4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgoSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4GBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgIGBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4GCgoF/gYCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgX+Cgn+BgIF/gH9/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDgoKCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGBgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOChIOCg4OCgoKCg4KCgpKQi4iJh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4iIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl9gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6WgH1+f4KGioWDg4SCgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/g4R8fIGChIKAf4eDfYOBf4KCgYODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH18fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8gH+CgIKAfn17ioJ9gH9+gYCAgYKBgoCAgYGAf4uUkIyLjo6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f39/gHx6gYF4e4CCgYOFhIOFhYaHhIWAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8goCBfn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6BlJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAgICAf39/fXt6fYCAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4OAgYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2MjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx7e3p9f4CAhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjYyMjYuKiISEhIOEhIODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH17fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWGhoaHhYGEkY+NioqLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5+fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x6e3x7e316fX5+f4CAg4eJiYmKiYqJhYiRjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fH1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHh4uLi4qJjJGPjYqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKCf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXh5e35/g4OEh4mKh4mOkI2LiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX2Afnx/f4mDf36DkISEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6OioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2AgoCJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgX+Bfn+Af35/gH99f39/f3+Afn9/gH58fXx8fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqKiIiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoSDg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59gn2AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYeHhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn5/f4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEg4WDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F5eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn19foB+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoOCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCAgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGBgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIGDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z3dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6AgIGBgICAgIGCgYCAfoCCf36BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgH9/gYKAgH99gIF+f4CCgoCBg4KEhYaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgICAgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CAgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fX1+gIJ/foCAf36ChIKCg4WFgoJ+fX17e3x8end8eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH6Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoGEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaDhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGBgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KCgYKDgH+CgYSDg4SBgYOBgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYKAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX+BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhYaEgoODg4SChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAfICBf3x8fXp6fH6AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgoaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhoSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKCgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYWEhIWHhoSEhYaFhX13hoOEhIKBgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCg4SDhIF+gIB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBg4KBhIWCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoeEg4SFgoGCgYCEg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t7e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYSBgYODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f318gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e318fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dXV1dXV1dXV1dXV1tfX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR1NTU1NTU1NTU1NTU1cm7vb29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QT0/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS/qKqqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLUwamrq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cKtr6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O09TQz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbV1tbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdPIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTJmqycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWmp5eInJ7EkoadnM7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjk2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9l6LAyZiYxbzJl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZim1pSWn87RkpmgztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0Zqdu7Ofw5varaO/ntXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekoNPNipKex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosjVzdulmbPQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+4yI+nmqCtkKeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2VlIynpaigr6eiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5CooZKNutWako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0tS5x9XT07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqWjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboZ+XkpOSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cn6Gfl5GRkJSXmp2YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhoJmSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKSjoqGhnpyblZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6OjpKSkoqGhnpuamZiZmZiZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJubmpubnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGfn5+enJmZop2bm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoJ+gn5+goKCgnpuZnLGempucm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp2cnaSin5yamaOsnpycnJycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJqam5upo5uampyji56dnZ2cnZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmZuapqKamZuel3SenJ2enJ2cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJiYmZmamaOemZmboY5km52dn56enZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmZmYmJihmpeanKOCXJignZ6enp+fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiYopWUm5yjeFqQop2dnp6foJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl6KRjp2boXFbhaWenpybm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWjJKdjoiZlZxvYnaelpWSkY2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkJCPi5GPi4yPkJCRjoqIlo1+i4qOdGhpi4iMhYeBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYeEgYaCgIKJlZCJeop/hXZqZIKAh32AgZKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9zfI2MhHqLhIVzamCGinl9fIaNjYuGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhoSIiIqEf4J/enuGh353h4CCb2dbgouChIWKj4uNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjY2Li4eSioeGloh2bIGFfmhjWH+OjoqNiYmQj46PlJSYkJWcmp2eqK6yr7C1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCdoJ2Tl5qhmp2coqGVj6GLc2x+mIhlYFmBkZGOkY6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmpp6KlqKmsqqmvoJ2mkXx7i52acmJfh5eUl5+foaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rqqykoaKlqaenqKipnI14e5aOlnhwbZOdl56hoainoKKirqurqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqKSnppmdpKaioaCkpop6ZmGNg4VjcHOLnZafmpmioqCgn6ChqKCcnqGloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2nppydppx6ZlZOfnt5Tl9qeJqbnJmbn56gn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfW1VZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrrGzrquioaySa1FKSXd0b0VRYWuQo52dn52epKKioaCimJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgoqqqp6+3trW1trOuq6+rglxIQ0dyaWZDRlhmfp+anJuWoqelp6mfo5ueoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCqsri9vby7ur+0rrG8nnFQV01Eb2FfSERPYG+VlpOalqOrqLatoqOkq6almKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2bHBoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8wcjAu73Gurm4vI1hWY5yQ2xgX05SV1pmkZ+WoqSop6C6pqqrtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vcPU1sfAwry7urqIVnvCqk5ubmdRW2RdXIisqKesoouUtaartLywtbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXZubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TC1eDayrW8vMDAklCLwL9hfYJ5XUppcFN6s7ionIJvlrCjprG2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/aWZoYWtsZ251cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dwsvb2cqzwbzAxqVVgqKicJyPhXxFd45Va6uwlHpjcau0pqqpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx+dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEzc/Dvbi4vsWvY3R7a4u3koiZV3uPXWuQhXJhWo23tayupaSjqKSgn6WZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMXLwquprbK3nnBxbVykuJCInWhncmhoamVeV2ikurWzrKmioa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9ueHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFy8uvl5mcnY52cGNgqqqMi5RwYGRnYV1cWFWLu7y6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfOw5uGiIN5Z19NYKGZh4yLc2VgXlhXWFVntMnAvL60sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMq0fnFqXVFQQlyMgn+CfW9mW1hUVVVUicLAwLq6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPCwZJeUk1IS0FVdmluc29oZ11YVFZTYKnAuLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjY2piZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8avbklGREhATWRZYGdmYmhkWVNSW4y/v7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZmdpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vC1426vrrDtbnHt5xgQUBFO0pcU1hhYWBnaFxSU360xbzBv7zEt7a3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZvaWVsaFhYTktLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MR1qsu9x7i5t623j1BAQThMWFNTXV9eZWhdU2GhwcjDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Frc2ZibWBcVElLSkRKQ0NHPjk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNescoC9yM/CwLetta19Tz84TVVSU15gW2FiXlWMuL3Hy8fHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcWZsaW50bnhjZ2JcY1FLVEhFRUNHQjw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nSlm5yrtLRzMrEtbq/roJMPExXT1RfYFlaW1Zvt73Aw8zKx8XGwLm+vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYRwcqbMzMvNysbCwsm+dUdHXlBSWmJWUVJcosK/xcDKycLDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7mt28K+tr7Avr66ppyqs7fEwKV2dHedxMbLyMHDwL/Jy6ZsS11SUFZmTkpZj8TAwMG/ysfCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNocF1bXl1ZUkZEQ01JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W0ba/Ovba5wLyqfW5obm10gpiXcHd8mL6/xsC4v7y9xMO8qHRmWFZjcE1bkMDEvL2/v8PCvr7HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXtwbmlbX19ZU1BBRkhHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsHWCtL21tcGkhmlZXmBOU1tcb3J2gqC4t8K6s7q3ury+ur2xjW5mdIRvmb/Ewr27vrq6uLXBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdW1RKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaWEeIyisLWcamZnVVlfSUlNUVRsdYemsLe+ubK1sbu4u7W5wK+fdnmarb3DxcPAvL+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NiXF5PSUI/PUlERk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8anh3t2jaGXX1NDWVVIYmpVTkRJZI6hrK+2urWzsau7uLi0uMG7u4J1m7e8wcbCvrm5ta2lrLOxprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tru7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdnJuY11nWF1dU09NQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiPbU1KQGVZQlB4gZNnTEJdgrC1s7WytK+su7m4trm/wreNdYSutbq7uLWysa2sn6Smp52jpZ2WmZman6muuayrq5+lqKSrrq+nsKyvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdXFBOSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLWVjIiFe1dFQlGIWElKWHiNgWFAVqS5s7SzsLGtsLm4tru3ur6xrKqkrq24rqmqrKujqKGdnZ2Xl6GVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRVYWNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K7qZiZlGdMP1R5cU5JSUtonX5YRVizu7Gss6+urK22trK0ta6oop2bm5ucp6een6ipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5dUWhUUE5HUE1MQlBRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpb1mRVOhhFBXSUtfSViLYGVmhK+1qrK0rqqrr7Cys62lnJCWko6Xn56hoJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp6al5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5icmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVJkTUpIR09STkpOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKzGv8ueTkF1nG5PbUpNY2Z2dGBdYnORsq+us7WqpqyropuZlI2QlZaYl5ufoaGbnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5ier6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlNVYEhJSktTVElSUU05P0I2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylx8aLVlJLZqNYZn1vcltRa2NcZ2JgbJG0sLC4rKahnJ2alJeamY+NkJWRi42Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuo5mcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1VMU01CNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qji3hUanF3dm9kd3ZYV2JgZGlbW1Znra6sr6efnqKglpCTm6CbmJeRkp+coaObnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlp+bm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XW1aUWBIUlVIRlVWSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN+boJwYGNXTFtSWkxMUVlSSE9NR5qsqqmkn5+ZkpGTmJiWlZWMiIqOlZ2cnZ2elp6apqCgqKWxqqeuo6uutrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56biGFXXmVgV01RRj0/QENEPz5CUXepramqpZ+enqKjnZ6dmpyblJOUlJ2dmJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO1r7Ouqq+jnauntrKtorCmoKOvsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSURKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZFO0I+Rjw+OTZOfqqzp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urW6u7W7t7C1sqq6sq67t7+7uqu4rauquLq1vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVp8b2FBPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcK8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnZVpZlxUSURAP0qHnqSYg6CyraOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMbMzcnSzc7TzcXIysrBx8zHycjGv8Ozs8jEy8vLz8fKv76/vcHHxc3MyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NUsdG9sq+mnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0sPQ09bY1dbSy8nO0cvGzdLK0tXW2dbX09fYztLKz9HMz9DM09C/yMfKxMzMzM7PxcbHtr/Kv9LNzNDGycjAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NTU4Njs4NTo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioFlJQEFEQUZRd7Kvp5qUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwMbCyMbOztHR0sjLzcDKzMbTz8zOyMXKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6plQzg9PkRYgqqon5eVl5manJ+dmJyckn1wZWNiX19hX15hYF9gYF9gZm1wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz8zKzMDJwMjKzc7Qy9DNzszOz8jL0NDLzsrCycfJzMvM0tPN09HR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taylrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaSxeUhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGBhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrLz8rNzdDO08zGyc/NyMfLxcbBxsrMzdDRxtDOzs3M0MXHwbi5vcPCvcO5srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcGhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+tl3hscHJ7kZqNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycXFyc3Btcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Hx8/Sy9DPxrrEv8bJvcLHyc7EwsfAx83IxMzKzM/IxMTQyMbCxsjEv8HHzMzMz8LKy8nHy9DExce7x8PJycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69uc3MxtDV1dna29jQyc/P0dPIwra7u62jtn1og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX1xdXl9gYF9bWlxha3Jyb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsrJwcHL0MXLyL+5wbvGx76/xs/Lw7/Du8nHybvIx8XKwL7Cy8bFxL7GvbzAw8XMxcW8wMnDxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V7d3J0ZmlaYW5tWlxYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7ZsXnl9opGLkpaGeoCFhX92eHVycF9aW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7w8m/wcm7t7u7xsO/vMHNw8a+vrXBvcO7vca7w7qzvMXEwsO3v7W2vr+7zMO8tbrIur++y8PBxsLFycfJxtDGwszHssfJw87MwcXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkVHS0FFQkZKQDk6NjQ3ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183KzsXJxcfBucW9q62lX2R1hJOLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2FhZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7W+sbawta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvbe8xsHDvLWusrW6v7TEt7u1q7i9vsC9sbq2sLa6s8W8tq67v7W3tMW8vsLFwMPFxsfLxcDFxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxsC/urfJtqqwmFtob4qPhYiJenh+hoZ3d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmtubnJ8pMfAuLi1sKutp56iqaeeqqyzraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubuzwrqwwLG+vLy2vMe5wretqqiwssC2uL2wsaixs7W7vKuutaautq+7srCqubCtu667uLvAwL65w7/Gw8XBvMbCyMq4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZV1dbQUxLTUpFQUM/RkE6OTo5OTU3NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysLJyr/AvMK6s7S1w66psJFban+Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWVpcZW5vaGZnaWtucoGturC1rqWkp6eaoKSgmpylq62kqKKrqqyrsKOmn6qttbaxvbmvt7Corri0tLy4tLyvuLm1srzAssCvpaijq7Gys6i9qquoq6yttLOmqK6hpK+psqanqK6lqLetsbK3urq7sry+vr7Ev7XCwcfIt76/xbfEw7+7v8TCvsTIzMq/v8PAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2km5eRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq1q7S5sba2rra5srC6urG2paCkn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vba7wcCyur7DwbG5ucKzwb7Atbi8vb68wsfEw8S/wMSgg3hwbGJmX2tvYFVZXkhOZ09UR0ZLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6UnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkmlyhoWGgHx4dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+HnamflZWaoZabopiVjZ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyzta6zta6wqp+en6OisqSmqbitoqamoKisq5mgn56ZnZ+lmpmjnJuesKmrp6urrK2wsrivuLm6sLa8u7qrs7K5s760trKxtrW/tr7AvcPCu7q9l4R6c2tfZV5kZFhUV11JV1xLUEdKSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7yrubqxop6pq6eYnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcYyonJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqyor7OnurOmtqCinpyjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2iq6eko6atq7KzqrWwsquyubSvqq+ysrO4s66prK6yuLC6trq9wLizsZSFenVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbm7rLK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTk4+Ulpafl5mUl6CeoZyWoKGppJ+fqZ2bm6unr7Crm6OkuKqhoK6otqqnp62xpLiwpLegopuZmaqmoZqsua+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrai0q6qnrbOwpauus7GwsK6vp6iosq2xtLC8tLq4rqOUgXp2ZF5hVllYU1JTS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaenoqq7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGVkpSLkZOUmpiclZacoJyflqCfp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWwrqy0nqGdlZWpoaKUrbGxn6OjnZ6Ym5OLoZSRk5iYk5eXmZeep5ynoaKapKWlq6SlsKelo6urraaprq+vq6iqqrOmpqyvtLGuvLWxr6+gknp3cmVhXFpdWE5MUUdRYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy4u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2VpgJKSiJCOk5KTnJSVlqOZoJedoKWiraalpaOko52qq6Wan6WxqqChnqWqnqiinq2sqamuraKiopWXopuckKupsJyfop+el5mTip6RjZKTlpCYmJOcoaOdpKGilaChpKWbo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycG9gW1dWVVJGUU5IWVtPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW8wLu0tKqsppWam5yIgXKIg3t0aWlqbGdqa21ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2NjoOQho+QjpmTlJKcmqOcm6GpqauorKeppqSZpa+llZmlr6mgnJmboJ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anJ+hoJuUkIyZjoyRjJKNlpWQnqKgo52bo5WboKOhl6Goo6Ooq6CrsKStt6ajpKKsraqoq6+zt7O+tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WlqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfYuAin6Kj4mSjZeRl5mioJugq6qmr6yosKWpmp+toJWWpKmnnZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aIjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWoqKigsbCmsb2on6OstKqup7C1sLm1wLGusaqRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2t7y9wcOxr7G3rbS0u7O0oqOcnZeXlIOAdmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp/eX90iIyGkImXiZSTmJuYnqmboKumpqyeqJqgppyTj5+jmpeXhYSSm6OQlaOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkoeUjouBi46AkIuSkpKgmqCilpSYmJWippmNmaSmqKahoLSyp7K3oZyitqypraSysqa1vLWrq7GjiXlzbl1OUVFMT0NNTk5QS0ZOTkpKTU5RSE1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpaekqqWgqKals6qissO1tbKzxsa2usPKzMazrLm9tLfAr62psJ6mrrqvrp+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnF1b4OHgYiAkYSOipSRk56hj5uco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipifo56Qk5iWhY2ClH5+c4mOepCHk5CQnJuampGWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE5DU05MUExCUFFISU1STUhKSkRKTEZKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62noaaSnaa2rKOgj5WWko9+eH5mV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlqcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPlomAlIlfO1ZvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjH2JgZGNj5eamJOLkImdiJ+Yh4iWnpqhoJenrqmtqKiel62zoqatmayrmKi0oqmto5N+dG5fW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgp6mno6mwqKe0wrmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbG5oeoF0T0I/f5WSkX2IlI2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh+iomWi46RkpaMg4mIlYSbjYKEkpqWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor62qtby2t7ezwbu2qLrIuLaoqLW2qrK9pp6VjX+Jk6iWlYp+joOCfXhwblhNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6Dc3V+aWhcVI+JlIl0f4aBfIWMk4KSmouPe4aPgHaAeHNvdnB0jo6Ben6Kq4R5e2h2e45wcm14gYuNknh6gHuAdnNykndodYSEhIV7lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiMp6SSoKCWnp+kgHJoYV1dSldQUkhLWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiysKGakY2UgY6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jZaYjY59Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyFbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWZiWlhYVVFKU1VUT1BOUFZLTktOT0pRT0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrizrKebsKesm4+WnKWppKCXmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3OMiYSGe31+e3ZvdHSFgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekYuSjYaQloBuaW9vb1hWWFRSUVlPUlRUUlhVTE5ITUpNTktDSE1HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOtqqi1r66stL+rvMO/paKZlaSXno2Ei5ShoZmYkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eIYpppc3llfnBtf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+foN0ZmV1f4SEhYBmaWx1a3F/fGhxcXxuko2PfHN9fHFwbnVtgn53eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTkhIRUpKSEdCQEdEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK6esp6nuq+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZxhnyHfHSMrY6JgGdnYmpucm1wg3VpcFh1cI6bkndsf3p9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXV5cWVhgX1JOW1pYV0xISUZKRz5CQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSprrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeIiHx+hYN/jH51opl5foaBhZmEmpxhhqqfnYuDkI16d4h+iYiOc4qXj4N6XWRydHp8d4ptaGpieW+GkIJ6boF3dIR6cHR5eGtuaV12h3yHfIeHjn+KkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGZnYFtbXlRcZl5XUFRYW1VHSktES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGdnZ+mkaCqoLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI+MeIOAc6CEinx8gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTioKLgoSSqYeAmJiKm3RtfYGGh32OaGdoeX9uhoeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtb3d9f3R0cmxbXl1bY2NYZ2VcVVBQVllQRExLRk5JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+iYWIkY6Wl5KXoJ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFi5CIkGlob4OAdY2HhItxhYJ3h397doV9bnZ1ZoCUjoaJiIeIh6GropaJjph/eoKJenlvZ2t4fnp+c2xlXlpbXWpdYWZfWU9LTldSUUlQSkROR0NKREJBRERBOzo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/iX9tcGpdQkA0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZfY39nZ211nZuPmpKTi42OmoiSj52LoKCSo6qlo6yTqbaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+akZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoJaGkomOj5aktambjZWig4eTg31/a2prfICBgnNiXmRfW2drXGxsXldLR09SUU5MTEZJUENETUZBQ0VGQj06OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWGcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKRgoCAi4yJhpCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKelopmhl6KUnJ6nnqirn6isqaq2l6u+q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmWopqad3p+lJiSoZKWmIGUnnt3lZKrsoiNl599lJ2bjpKVmKSiprWwnZGZqIiWj42BiGxzcnx/fXFoX11hX2FnZGBnZltRRUpLUE9JSUxGRkxDSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufGF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikrqysp6i0q7C2srKtu7GzvZyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoquopIiFlKShoKqgpKmPnLGLlaOnt7qboKOwkqKdo56Qo6Grr6yytaKUpKqImYmSipV5en2Ff2hhaFxlYl1kY15nZl9aT0RJSFNORkhMRkpHRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXam9YeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi0zP0NBTVVRUlNVVVZVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2xsZuakpqfiaevq6WUdp+kl6GssrOYlqqtqK62u7K6rK+1orGssbW7t7WutaCnp6OomqmvrbK5t7inm7apjKWOkZOfhniCg3VaYmRWZmFhY19gZl9bVElERExVUUhJSkRJR0VBQEBKREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGknWFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMK2uMHMyba7xL2zs8C3t8G1vq+3dLGzpbrFo7DGubGzsbSopLW2qrGgopaaopKlsK2mraunpJigrLS7oqmyurS7vsy/xcW9vbPCt7q4vre6t7msrLCmsKqtvbC9u8LCrJm6qJSuj5eYq4l9gn1rV2NiWWplamVXW2NZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSBjYNuenN5h2K4oZmjiZWTlpOUk42QlpKHhnuGgY2VioGEgYp6fIqHhnyKg4GKg5V9d3l1ZU9cZEdFTDpRY2FbXlNGPztIUERbY1FSWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urjJv7q9ycy7vMC8t7W7u7a9tLqxxmB1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Zn66lp6aln6OUoqextKeys722wb7TycnTxsLFzMLKw8C+vb+7vLe0r7i3tsO6xr3DyLCeuamhq46kp7aJgH9yYGJiXlhhX2lnUlhgVlFVSUVFTktBPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeSlpaOhod9hoOMlot/g3+DeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZW1VUm1tX25fWGdlVVlVSkRCS0tIRkhISEdCSTlEP0hLVFRWXFpbkrnAuL23xsC7ucrKura6tri5sre1tK62tplkdaicrXBeoa2cmKCim6SeqqWUoJ+QlI6WmJeon6Wfnpqag6SdrKWqsK23sL251NHP18/JzNLMz87KxsC/wsq9wbzBwMTExcq/yM6zpLuwtK+bq7i8mX96bF5hXFldYVpjY1FcYFNQS0NCRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiGjJCLiHyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50lq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkZLUF9eYmZpYpi3x7C4s7u9tbHExrWwubCwu6uysaeqt6yNtaedm6eaT5qdjI6flZGmmKWVipOTiZCJj5GRnpuhl5qVloaemqebrK+osKeztNTU1NbSy9DU1c3Tz83FwsnQvsrJysnRx8zNwtDSuLDDvMS5pba6w6KCb2RdXV5ZYFhZZVpRXVdPT0JCR0RCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWXjJubl4uNlZGajn2Ji4SOioqLkId7hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bXhzbGmBcG1jaW1weGl3fH7Lv8Lfp25jd29jW2FgSlBSVU5ZXlBdXE5QTlRRVVRbbm12gnGWrbiss6ewtqqsvMCwq7WmpLimq66gq7SjjrGtmpiYjJGTkYSOm4GNppGciYOLhIqJhIuDk5WXlpObkZyYmZmfnquspKeirK3P0tXRzczS09PQ1NHOyMPU0cfN0tPT183S0cXS1sXAzsfHwqi+t8+eem9mXmJeV19TXVpPUFRQTkg+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6gi4yZk5OMi5OPloR5hY+QjYuKiJGHf4J7cn6AgYd5hHWFkpGJf292cmtzfHx3e3OBd3FrgHNyaXBxenlyer7Lmn6MsoR2coR3aGFqXUNaWltWZWNYZGpTWF1cYGReY3d6fouBmamkpKGfoKilqrC4qqW0o6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlaKMmYSAhX2Rg4OTlq2LlY2Vmo6GkpGdl6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tPM1NjW1tjU19XJ1NrNydfX0cqsw8PLjHNvY2BfWFRZU1xQS0dKSkpAOzo7REFEPEJDPkhCPkJCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/d4OTmYqNiIiLiX6DeHN7fYOId396h5GWgINueHBtdX92eH10hXx5bYd2dG59doR1eHydtYw8QYvFpX6MfGllVklDZmNlY2dqZG54W19maGtuaW6Ag4iRi52eoJ2Ql5ifo6SmsqOks6ChpZ2gqaCisZyGnpKSkpCLjouGg4+EfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGrs5iam6ecp73Dxrm2xs3S0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLVvsvMtHh3b2VdWlJWUVpXRkdKSUVFPTo3OUBBQjlHREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KCiYaFiYGHfHiFlpaIj4OHhYd6hHlxenuEhnV6hY6NnHqMcHxvb3p/cXyBcYOHgG6OenV3fXyCdX97hoewdFipwraNkYJwbmI9XmhycHFwbnh2gWVpb3J1eHF6i4eOk5GblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46fmZOIhId+bZl5hJiGiJOMjZSMhnubiJSPrqqUlZefmaeutb2prb3Gy8jJzMvPycPRytTX2dfY19Tb19PZ29bP29rR1snUy5V6e2loXFpQU1RdSENFSUg+QT09Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR+g3x8hJiOh4t+hoaAd4J5bnt7hoF1epKejaB2jnWCdHWBfXSAhG+Bj4FvkoR0fICFenaGe4m3xqXCybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHVtk5aUlY+XkIOJj5eal5alnJegl5+SkpejnZmrlZCQio2RgoyFiYiBhpCRnpyZiYWLgYaYeoiIn5ePiI2KjIJ8oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcrR1tXV2dXX29TX2drb19va2tjO3MaHfHpoaWVgVFhWVU1MRE5DOz08PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6int+gH5/fIV7foGRiYSFeoSHe3V9dG18fYZ+c36SnZGeg5F8hn54jn15iopugpqAdJiFfYGIhXt9kHqPqY6Pw6C8jJyjnH2JhH2JcoyKfnOmmpyYk4V7jpCIhGhHcKCknYyLkJKFiYqRkpWPnJqSlJGWjYuVn52UoJSRjY2Qi36Qjo6LhImSlpqfn4mMlJKdkYKLf6WZiISNg4WEgaWHi4u4mJ2RlJaip6Gdnp2jr7a6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4eXl5bWpmV2BcVFBPSENMQj09Pjk5Ojo5OTs8Nj8+Pjw9OTo7OzM3RD84Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIenx7i4eCfnWDhXlzenNtgH6EfXeFm6GbnZSSgIuIf5iHgJuSboeohXqgi3yRjoKIg5x9mpGKjKOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibj4+NW4KikYKMn5OVjIeIjJKSjJSUlI+Mj4qHlpudj5WWkYuSk4WAi4iSjYqKnZaZoqKGkp2WoIqJiI2ckIOIj3+Dh4WkhoyQs5idkpSXoaGemZKcnaeyuKymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F+dWhnXl1YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz88Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bWJ+koNvbXeLeHl/eoF8hnt7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKsYyEp5GEmZOFmYyilqCYk4mbnaKSqa+fkZSQjY6IlYtujbeFmsTIspyhpZucmJaQspBkpM3Hlo+Gh4mPko6Nk5SJhYqJhZaam4+QlJOGlJeDf4+LmYiNkKqXl6OjiJmel5uIj4eXl4qEjoyBf4ePpYmNk6mal5OWmaGZn5mTnZuis7Slo7zAvsjFxcnIycLK083N1KnS0dbW1tja1NPaz4NzgGlkX15eTktUWkJBR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go58fGx9iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6OqsqGWp5+lpJaVrqKDkLeVkrOZjaGgjKSbr6KknZiQp5aoma2vpJeUlpSQi5iZlqDAjqPJuKuaoqatmJGanLKdhoWoopyYhYiJjpWNi5OOiIGGh4iSmJSMi5OThpSYhoORkJx0kZmylpekoYicmpOPipCLl5qJipaOhn2MmJ+KkJCcmpmTmJiflKCdlZ+bobGuo6S3vbTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYVZhV1FJSU9FQUJFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlJZmA7SISLenpthYZ6fIR4gIWAfXB4fH18b3KNen2Be3iGi4mFg5Knu62osr2vpK2zs6ijorCsipq0naO4pJWspJaprbempKOfmamXqaOvsKqamJyUlZGXn5eZu7utyaBptrirsJSYnqOrkpe9o16qsoKJio2Uh5F8jo59g4aNj5SViIeSlouPlY2KjJeYkp2as5aVq56Lm5SSjZCSjJmbipKekIuJlZ+ijZWNmJqdk5yZnpShoJScnKWvqKKls7erwsjEtbq9u8XIx8LRocbJzc3E1tbQy9SicXxpXltUX1JQRkQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin+Bc4aHfYGIdYKKg39tfX18f3B3hneNgYd7jY+MhoyZqsLAr73Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqKjo6mvsrGqnZykmJqXl56ipaWSo7muqL+7rK2yuaWjpn2IhpytvbCDi4yLkIOPg5GPeoGHkIyOnIiIj5eNi5WXlJGalp2nmrGakaudjpmPko6VkJCWl46RoJGJlZujrJSWj5ScnpSgnpuYoKGVmp6np6SipLCypsHHw7CwurbFxMK+zafHw8fDvNXQzcTKiHRzY11aYFtOS0JLQERGPkE/Qjs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4eDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkqq+7u6qtq6Kinqerr7Wwqpufqpuhm5Wer7Oni6K6ubXBu6uonLKko6iThY2pw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSRj4mXn5iTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOelJqUoKGZpJ+aoJuglJiepqSmp6SvraXAxMKuqLe1ycO+ts6yxb7EvLPRycjBtXV5bV1ZXGpTTUlDTEtKSkBBPUJEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZbTWVcZlRjapmNl4qLiJOQhol5hpOQgXKAfI1/eIeCgpB5jaGWqJqamLq+x8jKwtLIysLNvcGzrLu+p7q/vbvDuKzBqayzu72qsKqjpaOsrbSttrWgn66epqKYo7O8qZuovMGjtravq5KvrKqrloaZqaalkYKMk6WViYF1ipJ5hY2RkJ2fk4+Ui5CNlKOZl5uUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjm5Wgopy1ppCflqWko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Ds7u+wriswsLBwJluemJZV11bTEtNSkdEQ0lCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZFaekJ2Nl46ekomKf4ifk4R3hX+Vfn+QiIqQf5Whmq6mo5jCvcjDyMXTzM7Ny7vCt6+6vbS8yrzDwba2vK2zv7m8rq+ooKmntq2uqbK3mp6toqihnaq3t6mkr77Dsb25s6eps7OsrZaWpKunoJGOkrHFp5WOfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Pj56IWpCXl5KWpZpmmKOfs6WWopasraunm5+ml5iWmZWhpKimnrarqbq7xLWltLbLwbiptqyzu7iuqLi6vbiDbm9bWFVWT0ZLU05LP0FIRURIRkc4NUZNOz43PkFKLjMyMDI1QjU1T1ZOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGpZSclqGXqZaNkIOHpZKIgYeCnISDlZCQlI6aop+vvq6hxr3FxMfGzs7O0sq+u7axuru8vs62xL23uLeysrWzt7Osppyrq7iqqKevsJejrqSnpKS0wLCqrLO+wrnAubOnt7O3sq6VpKyurqSLk5WhjXTBmn2WmYSOlpqLsZWamZWSk5mZpqOVoJuWmqicm6GgmYuNj5adYEqWnJqUmqWXVJawn6+cn6WUr6+spZqhpZSTmZmOnaCnopm0qaqzvLy7q7Cyx8C5paurrbGxo6GysrSkcW9mXFtPUUxFUFBQUTtHS0hGSEJDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKuXmKCiqK+ZkJeHi6eWjoiShZ+IhJ2Xjp6gmqOktci0qca6w8PIysjHzM7Gvrqyrrm4wMHNtci6wLm1ubGvr7K0p6ObqrS0qqmmrqyZpK6lpaisur+oq7a2vsG/vriyssKwuLyro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5Wbn6GpnqigmZqpmaGnnpeQjZGdg252kqKalZ2in5CtsqOrlamqmKuupaSgpKiSkpmciJScop6Xsaepq7q2vrOyrb25tqCjp6ilp5ycrKmpjGRmYV9SS0xHR05KVkw9TURNSUtBQ0Q8UFU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVVIf2VeSEWrlZyhn7uumZSejJOqm5GSk4mqjYeinoykrZSjo7bGvbTBusHCx8jFws7Iwb25sq+5tMDCyrbGscG8tLqrqK2sr6Oimaq0u6appquqnaivp6Sqqr28p6y8s7e9xry2tbfAr72/s6i0tqu+pY+il5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqZ6ZlY+Um4uXiYykoZScop6gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clamloqG0tLq1rai0srKenKKmmpeVmaqhnndhXmBeSklGSE1RSU5FRkZCUktJQURHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xvYkdFp5ekn5/DrJyXpJeZqZyWm5qPqpaWp6aVrayZoqu2xMK7vrfBwsDHxL7Nx7u9ubKwuLO/w8i1v6+8trq3pqSrq6ygoJqqq8Sipairpp6rr6uiqai+uKatvbC3tse2tbm4vrC+wba0srSvvaOWo5aTm5Sun5ChoqWjo5+QvaWpnamsnZ2hm6afvaKZo56iqauhnZeNlZ6TnoePhI2TnqSgnbWsppyVsqeZsKefmqqeoI2ZlZ+EjqGam5KlpJqYrLG2sqqlqa2snJigoZKOkJapn5RpZFphXU9KR0tPTEhFRElBPU9IQTtHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5uexayhn6ydnK6fkqOelqSgp6mrl7awo6qytcTCvb+2wMK7yMK+ysi2uLW0sbO0t8HGtr6wuLS5tZ+mrKqrnZ6fpaTBpaCpraCkqa2voqanvbWlsby3tbXDsrO3ub6xw8C3t62ztLWinKSVkZOgraCYoZ2oqauimsOtqZ6srZubnpmmoL2hnaSYq6urpqGZjZqfkp6Jjld/lZ6loaC4qqeTmLajn7OhoJuvl56OmZSdgo+fl5aOoqSVkKWusqupoqKlpZaVnJmLj5GTpJ+JYmVbZGBMSUpKT0ZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GYnsOnpaKzoJyyp5OrpKCjn62prJ27sKistbHIw8HCs8LEvcbDvMXKvLCwtq6wta+/xbW5sLC6tayaqLCpqZqepqGnwq2brLCcqqKusKmkp723pra6vK62w62zs8K/scazurartLWtqaGllZWUo6uhnp+aqKuwrq+7sqagqamZmZeToqS4oKGkkq6vrKWmn5KhnpWej5CNlZ2Zo5+ntKanjZi0nKOvmp6brpGelJeUmoCSoZWPjp+hk4umrLClpqKcoJ6TkpqUhYuSjZyegGJmW2hlS0lMSlNCQ0BIRzs7Rj85OU5NVV5SU0o+T15ePUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsqGjtamVsqunoqWyrK6pu7KssLW0xr/ExLXAxL7KxLbAyMK1q7WosLiswMS0t66strmlmauyq6qXn6aXrbu1m6iwm62frrSxp6q6sqe5s7eyuMCqt7LCvLPFp76urbe0qaeroZaWkaWkoqKXmKSuuK2xtbagn6ikmZSVk6Ogt6KkpZatsbKlqqahnpqampaYqJ+fmKKer7Kipo2XrpmlrJeZnqWRm46UmJqFlp+UjJCcnpSLqamqoqegmZ6WjI+ZkIGGlomUn3lkaV1saU5QTU5UPUNBTUM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnaGmv6anr6+gqbWqnbmvq6OqtLexsLm3r7a4t8S9w8e9vMPBx8C5wcbBuqq2pa27rcHDt7iqrbK7opWtsK2ylqWnkau5qqCnsJ2qn7C0sqqptrWsu6yysrm3rLmwwrq9vqbCqrC3r6mqq6admJiqoaGgkZigsK+zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqWcoZedo7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUj6mop5+jm5ebk4eOmYt+jZaFj5traW1hbW5YUVFaVEFDRVRAOztIQTc6WFBkXlBWV0RZXl5NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y6iXtjQz2nn5yhqb2hqrCqo7G4qaW0s6uhrbW9r7O4vLq9trbAwr/JxLjEwsDAuMS9wbivtqirt7K8v7+0qa6xt5+Xq62orZenqY+nu5+lrbOeq6KxsLOsqbaztbytr7G1rLC1scC6xLarvK+xuKusqaKxpZ6kqZ+jl5CZn7Kqs6mqs5mdp5uZlI2gpqS0rqehrKytsaeyrLKppJufqKOdlKGYm6i1qZeZkpKemZ6hnpCsn5iYhpWYi52anJOKjZaXmpempaOgnZaVl5SAj5SFe4+Sg4yWZmxyaHByX0dZZlZEQ05YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYmBQS01OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3pKyppa6utqmvs7mmprC3xbextr7BwrW0usW+zMW5w8C6v7rEuMG5srWsqrq3urq+taqtsbaZmKerqqubrKuPq7ydrK6xo6qfsK2zrq62sbm2qa2usKe1r7O7vMmyqrW0sbSvrqags5+aqK2gpZWVmpmxo62fpa+WoaSZmZKNoqWnsqmhprGrqbWlrrC1r6OZna2nmpeemZmruKOXk5GPmJyhmJeUrJ+dlIGTmY2dnZqWkIqUk56apaOioJmWkpOWe4uQhXuMi4OLkmtueG51fGFGYGpZSUhZWj17SkdFNkFiVGlaTVxhSltdWlJSUmJgTEtFX2FgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosamspaOurrWpt7S4o6u0t8q7tLu6v760tLfDwc3Hu8O9t76/wLi/vbG9rqe6ube3wrerrbG5lZemrquno7KplK+7pK2ysaenorKzsLKwtLG3sqiuq7GmuK+1s8PFtqi0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpbenorGzq6exp6ywtaykmaCsqJucnZuUqriblI6Oi5icopiQl6ahn5aEkpaQnZyYlpaIl5CXm6idpKCSlpGRl3aEkId8hYKEjYxucXh2fH9dS2VsXEtPY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaStpK2tq6eksLKzqrewtp+rtbnJua7Bu8K3s7K1wsPPxMDBvrW9wL+6v72zxKiqubC2t7+9r6uzs5ygp7CtpaawpZ6yta2rsrCsqai0uay0srWss6yprKisqbmtsbDHvrekua+pra2lqK2wpaOjrqOpnJ2cmq+ZoqOio5CsnqOfn6Gqpqa4pau0tKSpq6irr7auop2jqKqboJmakqS0mY+JjYeRoqCVjZSdoJSThY+Ukp2bmJaVh5iSlZmnnKCfjZKRjpF3fo6FfXx9h4qKcXRyfn1+XFJkb15OWmZdRkSWW0c6Tm1YYVtNYGFOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2Q7NipIZEhKKzpJPzNCSVMsPo9rPUdIj5upqqGpr6SopLO0sbS1sbGhq628y7quwLvHsbSttMLD0cXGvsCyvsHCvL+4vMWorbess7i8wLCrsq2gpKetqaiksKOqsaqvrLCur62rs7qmtrCyqbKpq6Wlo626rKqxwrm0q7moqKitqaixpamkoq6qqKKem6KslaSdl52Yq52hp6mhrKWirKu3sbGgqKKfqq6wrJ2epqeomaOYmI+gp5iGg46Ki56hj4uMlpyPj4aHkJWfnZaYlYaWk5OXpJydnIuRj46Kf3+HhX13f4eFh3Rzcol2bF9ZYG5jUXNyXEs7hHxGP1d1WGBZTmNcTVVWVVdQXGJeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWXrKeiqrKcqamwtqy4ta6qpauqvcm7sL63wq+xrbPEw87Ow7+/tMDDxLrAtMnErK+3rrK5wL+zra2rpaeqsKmnqLGltK2rsK6tsa+zrLO6pLizrKyup6ufo56wt6uqrbq2pLW1pKmnrKyqraGopqaxsqSmpaGhq5apoJOaoKadpKKqpKyinqaxt6ysoqSimqiqramcoaWko5igmZWPmJ2TgYKQiIWcoI2LjoyZj5CLhI2Yo5uSkZuMk5KSlKKZm5qLjYuLfIaBgYN7dICEgn50eIykh3lrXmBuZ1dmh2ROQGeSTERieVdiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkBISESWkq+koqqwl6qprbWrtrGrpKuqqbzAwLi5s7y1prOvxMnL0b7Bu7nAv8K5wbrCxK6xtbKzu8G+s7Gurausp7aqpa2vq7mvqLGxrrGrtaq2tae0tquspKmqnKOds7OoqKS0tKC1raGpqKuprKegq6youbapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ekpqepnKKko5+ZmJ+Rjo+ZjX6HjIeEnp6IhYqLj46QjYSGlaKajo2bkZKRj5Kfl5mWjIqDf3SGgX9/eHWDf3t4foCJno9vcWdncXhcYXSIaU9dmFZIbXhVZFZRYk9MVVRVUU9YW2JWSFBqVFZUR1BZVUk+SUhPUVB4TE5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD5MVF8vSWs2UUU7lY2voKWqrZmrpK2vs7SuqqWvqam6vrvAsa+4rqK2sMnHyNDAv727vMO+usPBwL+vsrOytb28wrKys6uzqaW1qaWts7O5r6OutrGvsbmquK6qrrasqp6qq5+joLatqKGer7OhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKGgqKeep5uZqrCoop+soaGSoaKjppiaqKWXl5idj4qHlYh8jYaFhKSXhYKCjIePjpGEhZSgl4iRnZCTkY2RnJWXj4qFhnh0gX99dXh6gHp0dHppgoejdWleZWyCdWeIi31SV3BeSnhzU2RTUV5NTVJaZ05MVlllWEdTaVJRPkJOUWFROklITFNJcVBMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hPOlZCNJCOsZ+kpqujpqSsprSzsKmjsKequL7AvLCouaqnrrDJxsjRw73Avrm+v7zJvMK5sLC1srq8ucGztLutua2jtaanrLG2ubKnp7q1rbW8r7ylra21q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpqKm9rLSvrp2po6Cum5qyo5Wkm6Sln6SamqiqpZ6aqaGbkZqgpJ2YlqmpkZiZk5CKgo+FfY+CgIiej4Z/foyHkY+QhICTm5SFk6KMlJGLkZuTlYeJfoByenl+fGl3fXp1cXF9aIZ5hIhkYGhjc4V6bWd5XV5VQld6bFRhUFJZS0tNcHRdSFpbZ1lFVmZQQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPk7CZn5+opaShq6S3srKkqLCnrLjBvbWwo7msqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq+t625tr+torOmqquvtbi0qp67u6iyv7K6oK+0tqmrnq2wopylqKminpyksaawoJ+qqaeiqpujqKCtvKiusK6hq6Kjrp6erKaXnpqho5yfm5qjqaKamaOjlZaTnqGWm5amrIuekZCRjIKLgH+OgXualI2JfH+LhpCPjImFkpiRh5SjipKSh5CakJOBiHx5bH12eXhie3pxcHBzeGmBdGqDZ2RoYW9zjm1ianBgb0FceGtVXk5QUUpJTFNaV01dXm1XRFdgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE8pPDJQWz0jkpirmJ+Xp6Sin6ikuK+uoq+vqau4wrqyrZ+4r6uotLrHy8e/t8K+sLS+t8S2w7KvurKzwLa7vripubi+q6S1p6iqsK25sKmaurykrr+0tKGut7WnpqewsqCfpKanoKWZn62oqJ6gqq+noKaXo6mfsLifpLGvoauhrKSbpqapmpqbnqOVnJyanammlpqep5GXkpidk5mVoaqQmomNkId9h36CjXx8oYyNiXmDjIWKjI2FiJOajomVn4iRlYKLl42QfYV7c3B8cXN0YHl4aW9wcW9qf3NjemxpZmRhZoaAYFtyanFMTX9pWFpNUExKSFBSUUlOXF9vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wWlo1KJacpZiclq2gn6GkobersKO0tKmoucW2sq6gt6ytrLC1xsjAt7/CurG1vbe/u7+vrL2wtL+yvcO6qbu7uKeotqinq7Css7Cmmry3pKu7ta6fsLivqaWmr7GboaSgo6OhlpuwpqGeoqevoqCik6Olorewoaaxq5+soq6YnKqkqJ6Xmp2kk5qcmp2lqZmcm6SUlJeUnI6Tl6KpoZCJio+FeoR9hIp5jpeKjYd6goiEiIyOhY2UmYyOlpmKj5d+hpeLj3qAenBxdm9vdF94d2VsbGxqaYRuZnJpbGZpXWRzgWBba3VpWkl9XVtYT09LSEdSVUYyOV5ebVBEV1ZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRC48MmJWLDKVoqGXlJuqnaShoqC3qq6gurimrL3Fs7Cvo7Wwra2vtcTEvLO/urixs7m4uri6r67As7S4sL/BuKy9urWmorOqp6myq62xoZvAtqSntbWonrK8qaimqK+smaOnnKOmlJiisqWZnqOoqZyioJOkoKS4qKSnrqaepaCokp+ooqGgmJudoJKam5agoaqbm5ihlJGUlpmNk5KjqKSQiIqOhXmEe4SGfZ2NioqHeoGEiIiIkYWVk5OMkJWUjY6Ue4OXjot3fntsdHFsbHNheHRoaWpnZm+GZ2hpZGZpamBpYmpnW2V7Y2BTc1RcW1NLSkdJT1NAISppXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzlmTycynqOjkY6jp5udnp2jta2mqrm3p6zDwbawrKO1rqeur7fAwLyywbexrrK3tri3tq2qvbOvsrG9v7iuvLyxpZ+2q6Wls6mqrp+ewauopbCyqay1u56pqquxpZeeqp2mpJGZp62imJ6kqaGcop2XoJ2ntqavqq+hoZ2doZSgpZ+hoJmbmZySmZ2UpZ2roZeWnZSTjZWXi4+YmqigkoiKioh5hXeCgoGciIuCiXx/hIiGhZGElpWPjo+RkZGMknuDlY2Fc319Znhva2psZ3Vza2NnZWR1gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdJS01SWD45X2xpSEJUU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNBZkglNZujn5CLrKGYmKCWpbOxobG9t6Gxxry6sbGktqurrqm5vbu7rsCyr66ttq+zuLOoq7mxr660trq2sLm+raaetaugoLCkq66do8GgsaOusK63rrWera+sraKZnKeppJ6Vm6iln5mkoqidmqCblJydrLCmuaiuoqGamp2YnaOapJ2XnpiblJmgkqiWqqeak5qakYuUmY2UlJmpp46OiomPe4JzgYGKmIWHfImJhIWKjIqThJOckpKPkJGWjpCAgIyNg3CAfmZ4bWhramdxcmtcaGNjc4FhZmhqbmxna2pnbVxsa3RxYVRiaGRlWklGTE1PWFFRVmFkgVRAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmVDJzSSoZqNjrCdmpOhmamyr5+4v7agtMK7vbmxprawqK6kt7i3t627r62qq7eqtLmuprO1sq6psbe2sbO1uqepn7apnZ6poqmsm6i/mK2jrq+1ta2tn7Gtr6mim5yjq6iblZyno52aqaKklpqgnJCbo6uqqbufp6SgmJmZnaCPa6GWmJxxgpWao4B1kqmnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2Ei4ZvXmNhZ4SXhmuLj5STdXeLhH6DkIBnhoBodWlmV1xoc25OUGpjZ3KEZ19kZm5sal5gYYqQhIVlTktEOEZUZ15KR1BQVFVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSsvjKOZhpWwm5yToZuqraqjvcSvqbfCuL28rae2sKWrpLizsrOxua2qp6y0prC1o6i4trWop6y3s660rbOjqp+0q56hpJymp5msu5Wmpa+yt62upamtq6yloZ+coKemm5ehpaWbm6ennZOen5iQnqeqo7Wvo6OjnJaXmJejiKGOkpqHoYeTnaB/pX+mqp6SkZqRiINyeIyOhYihdomNaZeIZn1yeKFviIeEfo18f6GgoJmAe4eedIiOdpuKbIeBgm1oZWN6bHFhVIZtY2xpmHFYanBvh1heaVtra1uIcW56coZnhoRaXkZNP0dfTUZSVlZRUVJXVWdeTVhKUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIuml4Ocq52ZmZ2fqqqnqb7DrrK6vLfAv6qkt7CprKayta6vs7arqaWxraW1s5yttba0paeps7Gtsqivn6uhsqmgo6KaoaKbrrSVo6SltrymraerqqyopaGgmKCmo5mZpqKkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5iTnIiuj5iUiamLl6KbhbGAo6ydk5mdlHmC1Kh/h5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZa8nMV7cramu5B7gGyWsauweWhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn6BcpR0mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNpZOApqmfl5yepa2yqLDCvbK1wLW3v8KrprOsrKmnr7Opr7azqKimtaanuK+cs7K2qqWkqLGurrGmqp6npLGkoaCel5ufna6slJ2hn7S6oqqooa2upaKdmpmhp5+Xm6egn5iep6eRnKealJ2hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeElYatZHCdnJOZpZRxrqGkfni7fWuhkHaxX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHaxanyxeHSSlGNtbadtW4SgRWhnh5ZFdZxgfWd8pKeCWV+Lq2mAlXh5aqc3Sq9cV1NtY1tLTldfXFdWO06JT1dXL0lUU0lERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaGUgqynpZ6jpaqyt6y0vb6vtsSyt7rCpqiwq66pqbCuo7G6r6SlrrOjqbmonrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXmputpZaboZ60s6Grm6KtraCemZagoaicmJ6kn5yZoaekj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXeHs5u3fpOVlqiUfmuBpnqChoiSlJJ4q2drsVure4+HlHSIcY+GgH+IkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGib1tTa2hgTEtbZFhcWkI+sXhXWEEjTWhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflIizpqahrqmns6ypurbCsLvCrbi3waqsra6upq6yqaGvvKqhp7StpKu1pKays6ejoZ2oqrKosKilnp+fr5afmZSVlpidrKGamaOotK6iqY+pqKqbnpWXoKSnmp6cop+boKOlo5abnpiZnaKqm6WanJuioJaTkZOSnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5d4aDfKaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGloZFBAWGdaZGFKSE1sS1tST1lmWUNEPkU/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MiWbopOYsaiopbSqpbWopLu3wbC5wLG1tLuztaexsKOwsqafrraom6i5rqOvsaCztLCgpJ6fqKqxqbSppJydnqqXmJeWl5WWoKmdmpanrbCoo5+PrKKolp6Xm6GloZiioaGhmqKip5ueoZ6VmZumoJunlZubn6GYj5KUkZyIsm5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGgpX6wdoOR0tF2XK57hX+kb5uqpmuGhHytfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkU1FqY2ZYQU9rX2xoT1VHSTk9VlJbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZyRpbCtpKq7raa1pae2u7yyur+3trS6urOltLOhsbGin6yvpJimuq6ksbGctLiqn6adoaqksqisqqSanJqonpWUmJiSkqKnn5aSpauvpqKWk6yfpZKUoJukpp+UmqWmoZqjn62aoZ+ekJaboZ2cpZWdlZmin5WYlpKahax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYiuhX+Cs1xys1KufYOCpH9x1313hH2OnoaZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnd3h2iYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9wbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTk4OJ+dlKC4sJe0wa2os6ipsrq4tLi/ubeytby1pbezn7Ssn5+oq5+Vp7arqLGxq620pJupoKCoobanpqqjmZ6VpaGUk5uZkpSipZqSkKasrqahlZqpn6KPkaKZqKWglZqlqJ2cpJ6tnaGdoI2UnpudoJiZnJaXoqCTmJCmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dodzp4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxaTHRdYmZNW2FfcnRfSlY2SpuTWEhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MxPzihnZmZv6uXtMKuq62ppbSwt7G1v7m5srC3vKm6tJ+wpJ6lp6eek6qwqbCptayrr6GYoaCmpaS6oqOroJebkaKglZSempSYnqCPjYuor6+mnZebp6afjJKkl6eqp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPYlJrZWJsWmNdYHB7Y1RaUT4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbqhnLLArq2rq6e3qbivtcC1vLCvubirwbapqqCbpqShnZGqqqi2o7Kor6qgl5ynoKSruJ2jrZuWmY+lo5WNnaCbmJyfkJOUq7Wvp5mUm6ypl4yTpZikrKKRlqqxo6Cep6uxmaGjkJmil5+blpyXoZOcqpyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim6aiHFujaR0vV53fVthebxrWlZbanpeamFmZ2Jtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZBOaeanqG8opexw7Ctqqqssae4r7bFsbqxrruwrsGxq6SinqOhnJuRqaSqsqS1pq2kn5aaqpmmrLido66YlaGQpaCSjZyjnpedmpCVkq+5sayVl6Onp5SRlqSco6yekaCoq5+cn6mjs56jpY6nopWimpyXlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zbnmPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhoyGjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYlog3lteWOLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcW11Qk1QTUQ7Wk0+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7S4ramioaWeoJ2ZlKukraqmtainn5uWoKOerKS9pqGql5SdkKKbko+iqKKTnZeTl5SytbatmJ2jpKKLkpGmm6Wqm5aopKWcmqGpp6ejqaGRrZ6XpJ6Xl5edno+wqJSbp6GOan5pnKZ4h3N9mo90emWHer2+wLpvkoJxlYdfcmpaXpqJYWOIjpVrYH+VY22dd2KVa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6EfXuLa1hseoJzSUpvhnBOdE1FV11mYExbWGZjX09bbXVpcVJPREVNPEhJPUw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOspa6nqLWxrMisr7OrtaO+sbKnoKKpnaKbmpmspq6kpbWppZuYlaGbp62pvqepppWUnJWgmpOXpamokJ2Rj5ecsLK/rJunnaeiiZORqZqoo5ubq6Cjmpujp62jn6uimrCblaeglpWdn52XsaSYoaeYnJGdnKOjmaaimpyampmPloFnbX1xd5KXlJGFirWqjYaYlY+KjJiXh5SVioSSlJGJjpGTmJSYl5qgopqclKGdjYJ6pYZsanyQfIB0iYqBcYJ4eXZ2i4B8imtzgXSDdWR3fXdrcHptYGNdcGdNWVlmaWBXWnB6bmxmU09GUzlPWk1STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOgs6K/oaOxsregqaWyp6WwtarJq6yxpbWmwKe0oZ2kpZyjlZagqqaso6O3q5+Zlpafl62ppcGeq6SVkpyXnpiTlKKfnqKnk5GZqKeyw6+aq5yqn4+WlqmdqpycoKyYoZudoqWwp6KlqJ6umJennZmaoZ6enLCgnKKmlZiTmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZKIhoqVjpuXjZCXnqOWmpORnY1+jmahs6+FioR2eo+KfHZ5em9mepGBgIlrdYF5iHJoc396doOHgmt0ZHlmYGplY2Rma1lre3BpalxSTFBEX1VFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqrKOzrryktJyfpaKhnZmXqKWppqSls7WelZSdmZmwpq2+oKyikJGempmUkZWhnJeonISeqauis8izn6qjqpeWl5qnnaibnqSrk56fnaCqr6qmo6uirZufoKGZpJ6cnp2vo5ifqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh7jqGPa2iNl5Gid2tqi5ijnphzbG56hI2HelhlXoWCXmyKiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpanxxbGNdUk5YSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp66tsL2xqaekra+wn62Xn6OdoZqZp6ucraOlqKmyrp6Vo5Cir6a3uaWuo46OmqGZk5KboJmYpJV7payiqLPDt6Shp66fnpWeo56jnKOqqJKeoZ6gqrGqq6OqoKmbpp+ooayWoZulsKSXnKqVoZ6bkqWXnqqYnn69g4dytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffZWYiZ7AvYKWnZ2NncLBe4J7koyaw8B9aqWxb4yAb8p6f5t3koOOgXZ6gX95cXp/h3F4hY2TeW12k2NmX3hkYGWCY150Z21kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK6tprK1r6mlpqawq5+rmJqin5ybqqeinKyjpailpLSknaKSpq6ruLOnr6KRkZqdpZKRoKGXm5+dh6arpKutv8CxoKmvqZeSn52imaGjqqOToKGenq2vqaymo6OnoaWmnq2pkqSbqa2pnJ2qnKyhlpellqGjl5x/zpR4eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjap6p4eFoHSXkoizY4KrhqCOjbNqhK50fZaHuGGDrVmjzW6PdXvae3+ZcH6IknZ+ZXuIdnZrfYhufoWRkn5tgY9gcWtwZ2BfeWRccWhqY2ZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwr+/tbSwt5edkaSqqK2zq6WyrKyrpKunr6qgp5uZpJecoq+foJ6op6OloZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll52no56tpKqwqMDGs6ipsa6Wkp2copefqaqflKGfnZ2usKirqZynp6Siq5KttJemoqqpnaOnpaGwoJKap5qgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGMnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZGRZXB0dXBgZ21lX29paW5mY1dTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoayvtq6psaeoqqetq6unoqOdmaKVoKarn6GloKioop+dsKyXmpaop6+sqKepnpeVmqOikZShrZudpqOvrKOrtKq6zbGtpq6rlpScnaKYn66snZagmZ6fqrOpqqqbq6qko6ybsLGiqKyupZimqqmpsaKSlqOlmpSShKRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKrhH+ug5t2roGmhoafepmWhntmgKOJpJmFgqN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2ak3BueXh3b2xmZWVycGZ8aWJdV2BpWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6WfnKanpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSmo5CaoqigoKWcsaajp7GstsiytaqsqZWRnZyimaCls52aoJSdn6esrKSumqyqo6KrorOuoqqzsaGaqqiur7ajk5ajp5ibkXyqbJ6Eh3WreXywb4KkiomflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQk5qMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5OAcXt1fXtuW2Vqc3FmgWpfYVlkbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGuK2psq2spaKcsrmsqqGmm6ilqquqp6CmpZiqo5+uq52moKyanqmlnae2n6KXk6iqtrKsm6acoJWQpayRmZyno5+ppq6ho6epsLTCsbOqraiTiZecpJqho6+mmKGVmZylpqubsJ6tqKeerKO3raGyua+dm6+ns7OzpJSXp6OZn46CnU54moF/n3qDo32DpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaWinaemIqkmKOofrCFnYWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd8fZOSi3V6c4V/cVxtb3hyaoJvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7irr6Cboayzs6afoJWmrq2uqqedpqaao6egsq6iqaayoJmqpJSjtqKilZeiqbS4pJyinaKTkKGxmZ6cp6Whoq+unaSoobayw7Guqa2pkYeQnKecoqScpZeemZqapqSpmq+irqWmmK+lvK2ht7etnZ21sriws6aYna+ho56Fj9G1w7d5h46FkZOQgaZ4lKJ3jKCRhKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlho3Fxf59ic7K4aHiPlKaZfoyNk4x4fXmOgm1peGl5c26AdF1kZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWelqekrbWho5mVo6mnrqqrmaain6ahoLWno6mnsKOUrKOOpK2jnZCamqq0tKSdpJypkZSXraCgnqajnKectJqhqqO2q8OvqaupoYyEjpyhoKailZqanJmbmaelppisqK6jpZuup76slL2wrJ+isLO5q7SnmqixpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhjoOnlZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2alouqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcIWZXWBbjKBtlZKnmYOUjZeMe3uDl39rbH9ifnRtgHpgZ2VxbmhnaENaYVs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCtsG0n5qsoK24paOOm6Sin7Cvqp+kn52tmZ64oKOroK+pmq6hkKuppJaJmo+usKymn6earJeYj6yioZ2loZqknK2Yn6imtqnAr6Wpo5+LgI6bmp+mnpKVmpqUmpqmpaSaqayso6Sgqqi/pJfDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFpZmkoaGRhaBbbGqBs2B/rXt7goGxbGdvmZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbpiQqJuLl5GXl3x5jp1+ZHN+YoR4dIB8YWpncW1mZWVPVWRcQVRfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6ObrKaltqigi5qgn5yzs6mfo5+dtZigs6iqq56vrZ6sm5WvqKKOiJuOr6yop6Knma6SmY+omaKdpZ+Zo6KlmZ+jqbKovK+lqJ6djn2Lm5WgoJmPkpqbkZqYqaChmaiup6Wmo6Wpu5+gxqelqaGrtLWsrqaeu62srJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SNZ3mCe2BrZWtqYlBhW1NqXEBVYUNOKj06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7mxvbKina6mpbKmnYyYpb+quLGoob+mprKcnrGcuaiera+lp5SUsKuXjIObka6mo6yhpJypn5iLo5KmnqecmqCoopieoKytqrmuqKOal5J7h5mRppuSjpGYmI+YlKmaoJipqaGqp6Giq7ueqcWjoK+jqrO0qq+poLqnrq6ac3WqpLeGZYmgcGetj4qPbW94pI+Zn4F1rpmVcI+LcZWoo5uXrqRybW1tZYp4b22CmXGAeWlxaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkW9lZICNk4+imJiZkpeffYeOlXZmh3hojmt5f3lkbGNmbGJLZFdKbFk6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm5srOqqaGunqOyqZiSvrLDyL62qp7Aq6yjoKesn7qjpK2sraaNl66pkIyFlZatnqaqoZ+jo6CRi6SSp5momZajqaCWnKWmp6+6q6yam5KSe4SXjaWYjZGRmJSOmJWolZ+YqaObsaeeo6y6n7DBp6Szpqywsaqtq6e4o623loqgqKW2nYmWopiHqZqQlJ2TqrOZm6OroLGWoaGdn6KcoKShlaunjZOSjIeSnJyUkJqTmJCOlYWBpJqXlY2LkpKKj4aEfWeKf3SCdnSHi3CnbXuUkZOSgYGOkJCPnZShlpmXooOIlI1yaZB3cIt4d3x6amxkZG9kVWBYQGlbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRWFVWWV5gYWNcXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgppapqqW1tq6uorCkrZ+gtbGQjqzGvcS7uKqipZ6bpp6wqKO2p52ptaaokZisoouIiY+cp5aspKCZp56ek5WjlqiaqJmUpqGjkJuomaG1uqermJqQjXyBlIuglIqUkZWQkJSXpZCfmqqgnLajnaest6euwa6jt6evr7CsqamyuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSKgH1mi4Z1hnZ5iINznGqGkJSUkIl9jJaSkpeToZOdl6KEiJiHenKWc3qKf3J8f2pvZF5wamBbX1luY1BgZVBbOkdHRT4yPT03LysmKykmHSY0MDY2NTg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gp7WqkJCdpbO7r6ysoqOaep2isaSlsKmWm7imo5OZqpyOhoqJnKOQrp+jlaefoJKWmJuuiqqWj6iZp4yZqI+eubakpZibjYl5gpOLmpOJlZKUkI2Sl6KNnp6pnp64pICEr7WisK91pL6jsqB3eaCqsbuUdayknomAqn9kXGJ2oI6knoSXfm6Ts52jp62qo2Wdn5JzeZmXcICYqJdsf6KoimWcpZyRl5iVi5GckIadmpCVg5KGj46SiYR3ao6HdoZxfIaAgGFph4qUkotadZWQaGiPjnJ6ppmZZXmZh4J4mGqDioNveYBrcWVfdnBsa2hcZmViYnBTXD5NTk5TRz5AVEM6MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtNVFRVWV1gaGZnV1BKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6etpZKWq7awsqaaqqerl3OMnbCfqKunk5e5oKCPnKSdkX+IiJuejayaopSnoZ6Ol5GehHWuj4immqiRl6SIm7q0p6CZmIuJdXeTjZaTipSRkJSMkJOgjpugp5mcspaAjJy1nbOMko+8p6B+p6J6oq63gY6Opp6Di4aQsamvjIqWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgnucsXqKhaCXmZSYlYGRl5aEmZljeYeQhI6PkYqDbXCPh3mAcYCBhX+GdIaElZJ4lmiSdKCadH2ZhKGeh5h+kouDg5lrjo2FbHh7cXFnZHhuamxqW2VramZ0XF9IVExRQEU1LllVVTcpITA5PT42NDM1Njg7Oj0+PkBESUBKRUpLR1NYW1lbYWBoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6aurquorKCosaanqqWZlK7IvrChlqaptZ6Pg52snKeioI2Qvp6ajZ+aoJB9ho+Zl4isnKGWn6CRjZOIhoCRqI2Hopyjk5eehp66sqeem5KOhXB1kImVkIqUj4+bi4+Sn5KXoKSWnqyIn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ18qI9ye3ecj6eWaJWkebSLn56mqJKYwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFkoaNlJKJg21zkIV/enKGgYR8hHWEgZeAj8Vmf6mHj6NrnoOim4OagIyOhYqZcI6ThWh3dHx3aGh1cWdoa15kb21nbVhoR11STTJFNDZOYWM3JjM8REdEOTY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2FdamxcUUU9S01ASmRZXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wqKmopaugpLmxqqummpSgo6Sqo5alqrejr3+hp5ylnp2JlL2ak42hkZ2QeYSWlpGIq5mbm5mhhY+Mdpucj5+QiJ6km5WZmIaiua6kmZyMjH5ibY+Lk5CNkIyNmIuQkp+PlKChmaGofqGnh62doJatj56cnZGFgKCNqq6Go42pmYyafqJ2gJmUa4KsdU2reIeNnZGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiKcpl9eZVsXXuWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+En2lln2xbbop8Zlpgg39iV1Bvd2ZtdHJram9eanBtbGpYaU9dWEY5QTRHRF9rNCxJQ1FNTj04NDg1OTs2QDs7PUFPPlFSTE1CSlxdX1deXmJ2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guaGqo6askaG2vKyuo5mXoKKlrK2hna61oqiSoaCfppuZjZi0mZCLn4yVjHWBlJKMiqaWlZienn+ShYWspIebkIqYqJiZmpGHpbGnopWaiImAaW6IiIuOjoqLjZKLkJKijJSeoJyipX+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn2icHKTiJZ7nox5bYecjJmQm6iaj4ede4Kic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCapGNzrKtgfWqds35ufIaCjoKLmHF/o2xyo3OehICkYJyYs5ZxfJeftHRzW56yg2pib3R2cmhvWGtsc3NmXWleYktFPUQ1UUFacjI9U0dfSlI9PDM5NTo6NkQ7O0BJUT9VTU5RQEVfXltZWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCbopyjo6atnJuxrayTl6GZoaSZmpSeq5uLiZJ4i4ZwgJaNiY+hkJKUnZd9kImOqKCHmI6KkaKTm5qMiqiopZ6PloeEfmt7h399kI2Di5CQiY+UoIOXnqCdoJ+LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnaIiX+eaJp1hpOSl45/n26akG2nmV2ofni7a36qW46EXbRnXG5yeXhraVxxanl5Y2BmWGJBUUVON1ZDUm40S1paX05aREAxNTE7OzdIPzpDSFU/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eJY5Sbq7qysKydppycqJ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhYudkZyciI+oo6CZi5GKgIBpgIZ5f5eMe4iOjoiPlpp/k6KfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXurmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2ZfnSqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompxfI5tgYmEmXWbeIaJsbN/f5uTp3aBnW1yfZRvmXNqpF2VdkhlY2BzcX5/bmZgbGl2e2RlYlJeV11VVkBZRlFnRFNXW2JYXklEPUI4P0E6SUU4TEVXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnYGxrZmEVF6gprO5s7OpmqKMnKucnKmUoaukoaiPn56dmpmVmKCdloiHiXeFgW55lYWQm4t8kZOWiHJ/iJKhm3ORkICImJSfmoSOqZyalIqLinyDbISFcYKhjHiFjYiIkpiVfJOjoZ6iiK6GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemoCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihZB+o3Ojj3VrkLOLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXboBzonJdpGdzpmFopm2b1Jl9hJpveHqXa5t7d5dzbamkZ2BleXCAhGtnZmRudndnYGNTW2ZRUWFIV0lUYFdTW2VqXGVRRkNLTUpLQkpFOFBAUU5XUllPU1FgZmVpU2N3eXdJRkVjXmVaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/satUXEt+qa+xtLCzo5uZhZmooKCkjqSooJipipmYmJOZk5KgmI6IhntwfYRofY+DlJqBd5GOjolvf4aQk5Jsl5N8iJGRo5WDjqqalJKLhYl5g3aIgG6Cn4d3gJOGiJmilnqToqSan4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKGZhphynoSjrq+Kl4x/jKSNloOuoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6RloqAb0xmo5Jwm4dypHt5dGGDgWt+oGtxZGCccn50l2l6abO1tMamc5h+ep1rnJurdYSbbXV3mGmaenWYcVBFfbReanZreYhmamhidHVwblZeVFlpUFNoSVVMWVNVXWhrblZnV01KQUpNS0hKTkFRS1BlY2ltZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/lKGyq6+vtqKikICXqaKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiYyBaYSFkoOMhZ2NeoyKlaWSg5epl4yRi4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaatqdaBtbqZfmmmLkGiWh5qVdaKAfZpgi4WMdG+IYmigZZ5+aZp1b2NmiIJtcqJaX1tjoW1diYxve35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9lp1SLXlSYbm1za3KCbXBpa3lza29SWVdXZlpTbUlYT11JWGloc2pZa1ZRUkVWXExYUmFVaGpfd3R6fXB8fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAl6udn6WMoqGaoqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZWZgnyIhpankIChrJCFkIqCin2AgI5zaI+lhH2GlI2ImKCOiJOqp52JpniWm3+kiJaMspiekIKvl5+ld5SHeal0pI6Emm6kooyShIyDu259pa+ChoaGk5acoHylenGolaCWZp5+b6tjloqVkneobKmigYl1h4J3q5Gmh2qRsGt2s4ypa4qGbW2fnpKVYX+ri6p2f3+MpZ52n32EpJWdoGqbiHesZ5+tjbZ0d76NpJNZg6aNq2F1cnRwfHRxY2p+bmhsU1ZbVmFiXWtNXVJdSV1tbXZgW3FZW2BaZ3Rlbm9xY3F0YHh6fnlyeYNzhH6Ae3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZqlnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj3x7gYWXpY1/paaOgY6JhZV2goeSb2yLqYGDi5SOiZyfiY2Uq6Ogj4B1lJaIfoF5lK6jf4GbcY+FeI+Kg357cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2Ja4yFW3l4cnpwaG5+kolxf3SCj5STcYWDgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgIGFjqmbfXR8lmqJiG+Adn2Gdm1tZ4xzeXuYeIRba1h5j2lud3Jxb3h4cF1shm5qZ1ZaYFddZWtjVmFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJ0e4F4dXqDdoCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscXVuWltia2RsbHltaGxvYY6UuKimi6GimqakmaScq6KhhISYrJKeoYmappupmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KEcJWFe32Si4aGkIV4fn+GmKONe6ehi4aQkIWWg4aOmHdyhamGjpKckIienoeMm6ifoKqDiY2Umn5+iZatqI+Spo93b52RgnmRb32ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuBdnSBWXJuh5GBfX6Mal1qZHqFg4iAX2l4ept7gouCdoGGgmd3ioZrYXBygnZfcouBiY+mlYVmjI+DbneLhHGGj3pwZmdke4N6lltcamdudlt7eXd1bnNzgmZcbYprbGNZWV5bWWxxXF9hWl5dZnR+e3VvdGNra2p7fXJ7eHRkbXRobXx+dnp8fHp6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW1sZ3N5b2hqbWCLi6mwoZCjoZqenpiemaijon6DmK2Nn5WIm6KRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoN+k4SDhoqBeoCDi5ufj4KnoYd4jpiJlYuLnZeFg3qtgpGYmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35/kpGSk5yxppuVnpCNspOYhKWMjJWbn4mQm4KIkYprfI13eGWChpCKfImdhIeLkIiIgIWEkHd8eXSaoYiGiZ6KhJR+fYuBgXVwc4WDf3eHh4qQppGEhY2Hg42QjH2Ii4mQgndsgoR9eplqcmhhdIpwfXp3dm92dIFdXm+HaG9gXlpcXVNoclVjXFxhbGh1fHxzb3Bka2ppf3xueX9xaXBwbGaBe3KCgHh/fX+Fe22CjIV8enh8fXqDeU5kdmpybXB6ZGtlYmJgW3RmcGZycW1VXWx0bWl5enFnaWtljIeduZ6WoqGYlZmYlJmkoZ58f5qrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4aDg5B/gIaEhnyGg42bnZKHqp+DcoqQhpORi52RfY16qoSNkpiWj5yXh4ebpp+imp2Gg5GamZmQmqagpZ2dkJaAkIp2e4eOhKV7fI6QkYaYqqGek52QjquOkYCejIiTmp6Cjpd+ho2Cb3eFcXVhfoKPhnWLmIGDj4KGhH6Fg5RteHV0kqKKjIWZhYSNdICJfH1ycnuHhHt4i46EkqaPhoOPgYSKiop3hoiJjHxva36BfG5obG1nXnp/aHx7dnR2dXt3XGBwfW51YGNbXV5RZ25UZVteYWtpdnp+cWxsZGtqZ4CAbHOAa2x0b3lvhHlthoB2goB9hHZxgo2Hfnt7fH97gopgaXtqdWhpgmVqY2BpXGR1aG9idG1sVWNxeWVwenpyZWltbYuJnreaoaOfkpGWl4uan5+ee3ieppGbioellIuYmXl6jIV8iZGDjIKCgm58f3hzgYV9i5F9a2h9gZeIgYiOfH2FhId8j4CPm5uRiKedf3CLi4yTh6GhioWNfKiRiJCSl5OWk3iMo6ChnZaaf4CQmpiSjJqjoaOal5Gbfo2EeICDjoegf32MjY98mKSgoZOZkJCnjZCBm5GJkpebfZKSfoaNgXRzgnB2YH1/jYZyipV8iIxxjH+ChYaOaHdxeIyYkY9/ln6HinKBhnx9cHh7i4R6epGMg5alk4uGkHyGhoeFdoKEiIh6ZXJ8f3h6cWxqZl5+c2h8dXZ0fHOAal5gdHZweGRjWV9eUmtoVGVZX2FoanZ4gXFma2NsaGV/gWttfWhvcWt9eIZ6a4uBc4GBfoF0doKNhn58en+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt6cmJqbnmJjZ6ykqWlnI6QmI+GnaGbnXx2pKCOl3+NooqImpZ4e4aHfoOJf4mCgX9xf3t0doKFfoqReGdjfYaXioKKjXh9gIyDeZaAlZeWjZWgm35vjIKRlIamm4eNiYSmlYWTi5aXk5J3kZ2hoZeUl3p+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2Mc5einqKTmY6PooyMg5eYg5KWmX6YjXyIjYF2cX1uemSAfIqFcIaSf5CCbIeCgYCJhGV1b3uHkpeMfJN4i4l7f4Z8e3F+d4mFeYSQiouXopWChIx3iISDgnd8gomFdmB4eH10fnhnbGRhf2lqd3N0dX1xfGJjYXNudXNtYVphXltsZVJjWGBhaWt2eYZxYmpjbWVofYNsaHRobG9pgHyBeW2QhnGAg4N/dHyDjIF/fnqCg358kG12iXR0bWWKbGpiY3VWg2lxbmB4Z2xianZwZnl7eXFfcmyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6l52LjJiQeXuAi318g3uAg4F4dHh6c32AhH+Ji4BkXn2LlYd+hYd0fX6Jf32XhJeTloyjoZh/cod7lJKKp4+MjoqToJKDkpCUl5GLgY+YoJqSkJFzf42SlImdnZ6ml5eNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ+Mh4KSnH+SkpWGmYh8iYmBeXF5a3Vse32Lfm2FkoKUd3CCg31+in9kcml7gJaXhH6Nc5CIg3iHfnV4gH2GgHyDjISMlKSPeYSCdImHfYB0doGIhG5he3V6cX1vYW9jZHtibm92c3h3c3RhdV9vbHVub1xbX15ea15QXVhjYWhtdHuIa19qZWpjaHeIbmZsaGpsaIF8e3dvkIdzgYOEfXOBhol6gn16gYR9fY5yeot4eG5sh2toX2lyYodocm9ldmdubGF5aGt9e3hwYXdti4CZmaqgo6idiouShoqei5WYfXeumIyXfZ6UkZaUiHd+e4p8e4B2d3+AcHRze2+FfYGAin98YVx+j5GGf4SEc3qAhnqPkYeSkZuSpZyVgn6BfY6LkqSJjoqNmJqNhpGYk5aOioiMkpyTkIyMboOPj5GJnpmioZeWiZaRboiZhGaFmI6UeomFkItwlpqUopKSiYuajIJ/kZ58ko+Si5mOe4qEh3NydWtxbnR7i3RuhZCNknF0gHuBgYh8ZHBseH2Zk32EiHSQioBziHlvgH2AhnyFjIiEjJWojHuIfH6LhXh+cXCAhYNjaHl0dXB8Yl5wYGt0XnBqe3l4a3NwZXhdbWxzbXNYWl5fYmtaUFdYZWNncXF/h2ZdaWhnYmdxjW9kaWdkaWiAend0bo6FdIGCg3t1gomFd4V8eISFeoCJd3+Le3tyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p+opehqKCmm4eMi4GQnIeTnHWBqpSSjoegjZaTkIB0e3aFd3h/cnN7hWtycHptinaAgYducVtYfpGNiICAgHZ1gIB/oIaQipKcl6GUmHiKf4GNiZyeio+GkpiWhYmVmY+Wi4uNjY2dio6Qg22IipCRiZyWoZyYlYWXiGqEo4JmhZ2KkX6Lg4uBd5OYkp+SkYmJlY5/fpCYe5GNj42aknyKf4JudXBsbW9we4Vpc4OOmIpwd390goiCeGZyb3WBmY58iIR6lJF5doh0cIl7hYx6i4aDiY6bo4h8hHaCi394eG9rgYOBXnJzcnFweFpecGBwal5vaXx6cG1tamx2YHBvanJtWlhhYWJuWFFUWmZnY3VwhIJiXWttZGJma5NtYGZmX2drgXVxcnCLgHV/g4B4dYCLgHiFf3eHhneDhXuGjH97doqAanFjfGOGfG9xbXRqaG9sdndfcX95e3R1dICCfqSVmq2eppaFjIN/l5SDkJ91i5+Uk4aLmoyVjYt6cnh0gnByhXRxdYhrb211bYh2g36AbW5VUYGrlIeCeIB2coJ5gaCCkYGTkpickpp4knuDjZOkmpOOiZWZkoSHl5mMlIuJj4+InoSQinxyioWJjoicmp+alpSAk35ohZyHZ4Wgh5KDkYOJcYORl4+bjpCNjJCNeHuSkHqOi4yRlox8iHyAa3ZqbmtrbHp/YXp+jpaCdnqAeIOMfHlnc2x0h5WLfoiGe5OQcXqEcHaMeomMe4l9goyQnp2FfHx3gox9d3FqbIGCeWB4b21scnRWXm9icmBfbG55cGdwZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xocmJiZWaSal9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iINzhoV+jIyEe3mVeGdyaoNgiH5vb2t6YGpudH90X3R9eIZ4dHOFfHigj5mwnKWPgop/g5qIgIyff4uak46FiJeOjo+EdnR2c4Bwb4VzcHGDcGppdm6Dbn18bXVzUk2C38iS1pN8cHWDdYOggpN3lZGZm5CZe5RzhZCfoZOUkIqTm5SGfpaWiI2NiJGNiJx/joB3eox+iIuKnJydmpWTeo12Z4mRh2yIo4SSh5eDhmOMkZmOlYqXjI2Ki3F7lIh7joiKkpGJeYV7fmx7ZXJvamt5eVyAeZCOgXp9fn+Gjnp5aHNqc4uPiYGFhX2Vi2t+fm6Ai36Lh32EeoGPlZqainx2eIOQeXNtZnCAg21qdG9oanRuU15vZHBZX2tyeGZramJmeHJvcGNfeGBgVmtfXnZQTktgZ2NdenGJdFxcZXZgYWVlj2RgZWFYaXNzbWpxdox8dHmGgnV2fotzf4Z/e4l+comHgZGKiHx+mHZlc258ZYd+b3Brf1lsbnl5c2F2enuNdnN3ind5n4ubr5ugkIKFd4iVfn2KnYeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhxfW15fWpobGOkmsHcru+hc2t1g3WEooWSb5aQlaCVnIGRcYaLo5eJjpaLkJ2Wg4CVkIWJj4CSiomWfod6dX+JeIaEjZybmJiOj3aKdm6GiYt9iqOEkYmdhYVei5OXio+JjouLhIptfJaBfYiFiZCPhnaFfX1rfWR4dWlueHNYiHqShoZ5foCAhYt+eGVzan+JjomCgoCMloVrgXZuiJCCj4R/gnp/kJWTmZB0c3iHjXVzcWd1eoNidG1wYmp2Z1JgcWdsVV9udHlhcmNfaH1wcm5bY3JhYlduWlx4TU1MZGdhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rc3eLfXR3hIF4d3uJcYOEfX6Ie3SLiYiWh4x+fphzaHVxeWyLem50cIBXcXp2eXFld3mGjGl3gIlyf5yHmaeco5KEfXCMlHh5i52EhaGNjXuWjX+ZiIR7cndwc2pvgWtpbXx0XmB4d3txdXtnYWV869q1ycPciHNsdIF2ipqIjWmYj4+dlZOBiXGFiaCNhIuWioyYlHyNk4iDiY97kYuFj4J/dniDg3KHgpOblpSYhox1h39whIKJhpihg5SMn4OJYYOUj4eKhoqNh4GHaX2Uf32DhImOjYJxhn5/cXdodnJpc3dsWox8koKGfX+DgISJgnVhc2uIgY+Kgn5/kpB9bYJseIaPhpGDfYF9gJKTkJaIb3F6jIZ1bHFscniBX3Rpbl1rdmBSZXJpZlNfcHZ0YG9gXWiCcHJqV2doY2lYbVZcdUxLTGVnXmJyc4VpW1xleV5eZGd7YGRfXFlrbmZuaXR3in5zc4F+enZ6iHOFgnyAh3Z3ioaOmIGMgXuTdmx3dXl4k3RueHp9WHmFcYBvZ3h3koJkdoaFcYqVhZmhmqKKh3Rvk4tyd46cfYqaiYl8n3+DmX+BeHFzbW9kcn5pZmx3eFteeXt7cXGAamFnYX/Vto6QpnhucXd7cJKQjIdqmY6InJKMhXtpiIuah4GSkYaHmI18jY2BgYmOe5CNfomFenR7gnpwhoCWmY6TlIGIdYOGdoN/ipKcn4aVj59+iGGAk4eFiISKjoB/g2d9kYB+f4KMjpB+bYJ8gnRrbXZ0c3Z1a2KNgY9/hX58hH+EiH5vX3JwhXuPjIJ8fpGIenCDZnmDioaLg3yEfoCUj5CShG5veYx+dW5va2x6fWNoa2pZbnZaUmlyamJRYnJ4bGJlXVpqg21zYVtnX2RsX25UW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1abGxibWpzdod/cW9/fHx0eIZ4hYJ9gId1eYmBkpZ8iIZ2iYFwd3l7g5NvbXyBd16Df3SBbWl6dJRzZ3OHfHKRkYOan5ughoh2dpV+bXaUl36IkIOKjZp8i5p2fXZxb2xqYXV8Z2JpdXpaX3h8em1xf2VkaGdXnY9ecXKWvMSEdnGUiZB+cpeMhpyTjIhza4mPloF7lIuBhJuMfIuGfXyJjH+UiHWJhXZ2fYFxdYaBnpSGlY+DgnF/iHSDe4mYnJeGk46dgIhlfZOCgIaEiYlygX1nfYt7eX9/h4uPfGmAfYN2Zm94eHN2c2xqjYWKgYp/eIKAhIN/al5xeHp9jImFe4GPgH5ygWl4goeLhYR4g3yBmIyPjH1ubXuJfXd0b2hofXZkXHFjWG9zU1Nuc2lhTmZ0eGZgXVxYboBuc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15tY1pib3djZlxdYGtqY2xpc3aBg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnl5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRsk42Fn5igmYWIbn2Mdmp4mI9/goqClZeKeY+Wb3pzcGxqZGBzemhfZXJ7WmByfHlncHphZWWOsbJ3SmJapNnQl3F7kYuQeH2Vi4WZkY2Gb2yGkpJ6eZKGgYSYinyHf3h4iYqEloBviodxdH56aXmFg6WRhJONg39vfoN2g3iFm5iTipKQlIWHcHuSg32Dg4mDb4F4aICFeHJ/f4OKh3xlfX6DdmNwc4BoeHBvdJiMhYKKe3Z4gIR5gWpccH1ygIeFiX2GiXqIcoFucYOGjoSEc4R4gJmMjYR4bm5+hH93e2Voan1xYFl3Wllxbk5YcnNnYEtsdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWZfWnBrZ3lxW1tYa2VZY3B5X2hcXmVsaGZsaXB3f4dubH99gHVwgXqAgX+Cf3aBhYmXinGCjXF7hnx6eYSTjHRqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnJKChmeHhHBoepaJfn+FgpmKgXyNjGh4cmtsZl9hb3htX2JveVxkbIN6YXF2X2Vl1Oq+ijI6PouOgHJ5hYiOjXaDl41+k46Nf25shY2Mdn2Pf4WClYl8g3hudoeEg5d3boiEbHV7dGZ5goOnjIOPi4R9bn90doN5hZuQi5CRkoyLhn57kod4gISNg2yAcml/fnhtfHuCioR4YXmEgXFkcWh+bXRxdYGbi4B/hX5zdn2Ac4BvW2x+dHiKgot7hoB8iHh6cWyIg4+DinKBeX+Wi4p+dG1rdoCAdXZdaWl4cFlXfFNacWVMW3JyZVtKcHdvXFtaWV10fnRoWWJbZ2VuY2lNV2ZRPV5mXF12Zl90cFtZVG9kWWVweVpoXl9nbWdqbGlvd32ObGmChH55boB7fIB/gnp1goGMk4VwgItud36Ae3uIk4l/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raX+OjXt+f4OUgn99iohrdXFnaGNbYmdyb2BhbHNhaHCJemFzdF5jZJugj25cNVmvtXVqgIl9koZ2hpeGdI+LindwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3CGfWh2eW1leYiEpYeBh42Jfm5+dX+AfIuZh4KTkJiIi4SJfI+IcXt9hHxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlJGBfIF/b3d5fHR+bFdvfnZ0i4GGd4d1gol6eHJuiYCOgIVyfn1+koiJem5uaW2CgnVuXWhmdHJSW3tOXHFcT1xycGNWS3N4aldZWVphcYB0YF1dYGdkaGlmTlpoTkBhZFtgdmFcdG1YV1N0YVpkbnJXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBf4J6d4CAiYuEcXuHb3F3g397io2Pg2p+e253eXaKd314gIKHf4N+fnpthIyImKONhIN7dox6a22EiZF5fXuCkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinVhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaUgnSQjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHVmd3ZjanyDiJ6CgH+Pj31yfnOEeH+RkIJ4lo2Uj4eCiHqJiWx4eX91aHtpa395c2l6doCDfWhgd4d9amt0aHt/aXaBi5CUfnp+fnB7dntzfmJVdnxyc4qEgn2DcIaKd3hwcIOCjH59eX58dY6FgnVpcWlsh4JycF5oY3NuS2V1TF5vVVRZc25iUE9zeGFSV1hcYXCCc1thXGhlZGNqZFBbcUlEZGFcY3FeXXdoVVdVd11bZW5oVmteYWpnZW9vaXB2e5NuaYiMeX1ye354goGCfHZ9g4iGg3B2g3Jud4KDfomLk39wgHx4eXqBjHSDeH+BgYKEeoB1b36Ji5qeiH2FeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI5mcYNvZ3VuW219gJCTgIF5kpJ9eHtth3WAkIuDc5aKkY6HhYV7gIVtdXZ/bmh3ZW17dm1qdnZ/f3xhYniGemh0dWN9emd1ho6MlXt0gHVxgHp8bH9ZVnN9b3SEh3+AeWuIhnN5a3R/g4N9en14e3KLgHxyZ3RlbYqDbXRba191ZUhubkxbYldXVnhtYk9TdHZYUFVYXmFxhG9cYGNtZGNdbmJUXXJHQ2ZfXWZoXVp6Y1JVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjHV/dnh+d4GDgXt0foOIiINvcX90cXV+hoKJjYp7d394hHx8hYd4h3x9gX6FgHt+c3Z5jI6fjYl6inZ1g3lefoaajHmHg3SFhoV3iXpibmxbYltbYVZqc2NgW2dub2eHcmFxZlddY2t/fMrOh7miam1timxxhHF8hIp+e5KFenl0eXV1e2ptdWOEdZGCd3BnXn2CeYuJZXGBa2pxY1hse4aciIKCc5eUd357bodxgYmLh3GWjpCIhYuDe3l+cXFvfmdocmJueHFqbHF3fXx6XWV5gHdpdXhmgnZndIeLjZR8codpb36AeG18XVhxfm1zgIt8gW5viX9xdmd3f4F/gXZ8cXp0hnx5cmZzYW6LgmxzWGtfd1xJb2tOV1ZeVFV7a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1Ve15PVmRwWVtqaF1XZ2BfcmZrZ3JncHJ3hnhulYp0f3p3fnmCh4B1c4CGhY6CcHB7d3d1eoeGh4yGenx/dYt+fYWEhId/fn59h398eHZ5d5GTn3+MfYttdYB5ZIOIl4ZzkopvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2VXWmBpf3e+rnuft25ic4ZodHxyeoOGen2Mf3h4c3Zve3Zlam5gh3WOgXNqYl5+eHmKg2ZxfWhqa1pWb3iKpIGFf3GZk3GAeHWBbYCBkIdylIiMh4OIhX15dHJvaHpham1gbXZqZ2treXd6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3RsdGJcb3xrdHuLe4JmdYd9bXFndX54fX9yfGx6eoF6d3BlbGJtiX5tblZrYHdWS2prT1JPaE5ZfGhiTlV1akxQVFVeZnaDZl1hcGhnYFdpXVtraEpFa1piZFdZVXlaTlZtalldbGVcWWVjXnRmbWRxZnJvdIB3cJqFdn9+d398hYd9dXOCiH+Ugm5zeHp6c3OFh4mIhHiAfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOHaXd+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbVGRwZV9YY3N1aXZwZWViV1xcaIBwb3KAc4lkZXh+aXR2c3ODhXiBhHl3dHVua3txYWdrZ4Z0jYRuZl1ffW97iX1obHdmaWRVV3JwjaZ8hHx2lpBzfHN7eW17epCEdph8h4aChoN9dXBybGd1XW1oX2x1ZGdmaXpve3JZZ4F3dWdwgHiCdWJ3hYp8lIBui2pteoBwZXJlYGx5ZnJ3int+YnWDdmlrcXR6cHl4cn1mfn9/eHZuY2VhbYZ8bWtWa2NxU0xpa1BMT3BHXntmYU1VdGNKTlNXYGp2fWVdZ3NpZV9WY1dhcF1MS2tYY2FVVFRzV0xYdWRaX2tgXFpjZV93Zm1icGlzbnF+dHSZgXd/gHd/foaEen11goR+l4VucnR7enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gHZ7o6WKeYiFhGx1fHt1hIKMem6Fc3qFfYGDdW5qaGVWXVtaWlNibmVbWGF0e2pobWlfYldfWmmAamtvgGdsYWh5eWt0dHRuhYF6f312dW56aGp5al9lbmmBd4+EZ2VYYndpfod6b2lvZmZdVVhvaI+ndoF6fJCOeXVvfm9ydXmOf3eUdIWCf4WIdWpydmdob1xtZV5tc19nYWl4aHttW22CcnNpb4B+eXdhd4SEeI+Ec4hxb3l/cWJwaFtud2Rwc4h8eWJzgHBnanhzcmt3dnR3Y4N7fnd2cGRjY258fWtsVmpjZ1NLbGhQR1JsRWF4ZmFNU3FdSU1UWWVrd3plXm1waWRdVl9Vbm5XS1NoWGZeWE1VbFVKXHlfW19rXV1aYmVgemhsYW9vdW5vd3V6mH13gIF6gH+Hhnp5eoN+gZOEcXR0fnp2dIWIkH2AfZBsc5SBe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doGAgXVuh298gHOJgGpvbWRkWF9aWVpVYmpnW1pfdYJpXm1sXGFWXFxrgWZydH1pal1rdnZodHdxbYZ7fn15dnJsemhpd2ZdZHNoeneSgWNjVGVvZoKEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55i3t2jnGEfX5/hm5kdnNkaGhda2Jdb29bZ19sdWV6aF10gG9ya3F7fnV1YnSFinqHhoB/d3J1fnRhcGxZcHNicXKFfHRkcoBsYWx6b2poeXd0cWaFdXp6dXBkYWRuc35qbFVqXl5UTHNjUUdXYkdidmZhS1RvV0pMWFhna3Z6ZGVucGZjWlhdWHZlVEpcY1hoWFlIV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb252g5d5coGAfX+Ii4Z9dnaGeIeMfXN1dYF4enqCjI59foSJanSWgXuKnX1+hXmAen58hohzcY+ujHt7hpB+ZnKIenR9fXZyb4Zse35sj3picG9hZV5lVllZV2Nma19dXXOFaFlwblpeV1pcbHtjcHd2bGJbbXN0Z3V1cG2FeX+AeXdub3RlaXRlW2d1ZnZ2kXpfXVJmZmqCgXN9YWNpXFRYXmJjkKVoeXSChZB4bW55Z3dte4R6dYhygHh8eH9oZXZtYGZhX2pgXXRrWWVdb29iemVbd3trbm5weHh0dGRyg5J+h4KIenZvcX1yYXdkWm5wYXBxgnxzZnKAZF5udmljZnl6dG1ugXVzfHNxYl5mbm99ZWpUaVlZVE54X1JKWllIYnRjYUlUbVNJTFpWaWxye2JsbHNiYVlaW2F2XFNLZF1YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG5qdoGQeW6DfoCBkoiEgXZ0iXSMhnNxd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZont6f4mVeWR1iHlzeHZsdG9+bHl8cJFyXnBuYGdibFRaWVdoY21lXFxxiWVTcm5bWlhYYGx2ZGl1ampeWm1zcWx0c3Rqhnx+gHx3b25sZGlxY1tqcmR0do9zW1ZTZGBxf35xgVxhY11TWmBcY5KfZXJxhYSRdGxqeWxvb3p7enGAdn5yenp6ZGV1Z15iWmFnXF53aFdiXW9oYXdhW3t2amlyb3d0c3RocIGUgoZ+hHZyanB7bGZ2V1tqbWJwc4F6c2ZvfltgcHFiXmlwfGxrc35ycXhrcGBcZWxte2FoVGdVV1JQdltTUFpSSGNzYmBHVWpQSE9aVWtra3xlbW9xYFtaWFlscFdSUGZXV2lTVEZaXE9IcnVYX2NtY1hhYGFdi2ljZG15eGtuaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYCAgXR/gnCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnONa150bmFnZWtSXVtVZ2JsbFtccYxkT29uXVZYVWdpdGhidGVlXVpudW5wdXV6a4d8f3yId5BzY2Vrb2Fcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFtgWWOWlWNucIOFinNqaHpuZXJ2c3tsenR1b3p+dV9mcmNbXldiZFlhdWVVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4VxcmZufG9xblNaZWplcXSBdnNibXZVYnFrW15uZXxlbHV8cnJyam1gWWRqanhfZ1RlVVZQVW5YUVdUUEhlcl9hRldpTkhYVFZtaWR8aWt3a2FXXFVbdGNTUldoUVlmVFNIWlpQTnh3W19mbGlaYmBeXo9uYmZreXVub2h2dn9+bYOAfoaXe3+HgYp/a5OIcmd0gHt1gIN9iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqWMc4GNi3d4bnqMYGR8cWZ6c3lsbXF2g2dkfGxjZmdoU19eVGdgbG9cXm6OaE5pbWBUVlNvZnNrZXhkZV1ZcHRtcnp4c22Ie4B3nHt6a2FlbG1eYG9qZXB5fmdaVlhga3d7e2+DXmJeZ1ZZYFdknIhia3GBh313a2p3bFt2cWt5aXVybW97gHJYam1fWV1WYmNYZXFjU15haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFlb3tscWxiWF9oaG90gXNyXmltU2VwZVVibmF5YnB2e3Vrb2xqX1hhZ2h1XWVWYlZTTllmU09dT09IZW9dY0dZaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJgZk5dYVRTSlxaUVl1dV1fZm1oWGJhW16OcWNnandxc21odnR5g3OCg3qIjX58ioeOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6MjI2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8wMDAvLICkoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMeHBwcHBwYfqmkpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eIh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhIOMkI+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkIqPjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj42MjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIeKho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNiIqFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eNjIaMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhImHhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2IioqLjYqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSkpKSkZGRkZKTk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGRkJGRko2QkpGRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPj4+PiI+QfYyQkI+Pj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Pjo57jYx2io+Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyMjnOHinOFjoyNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDboKCcH+IhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dXZ3dXFmbWpxc29naGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbGdpZnJuaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5cZWZecmxdXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9OUFNhYllrZFRRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QWWhoYmliUU9PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkNGSk1jcmtncGpVTk1MTU9PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJAP0BCUGxzbWlzcV9PS0tSTEhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PUJJQjxPaXBtZHJ0ZkVKXlRGQkRFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7QVlRPkVmbWlgcHFpUmFmRUVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk6R1tTU2Nqam5xbWpobVQ+Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6TWNjaWxqcm9ta2xjQD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz0+XW1vcG1xbmxrbE87Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW0/PkNLZnJxb3BuamtdPDo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttdkg4PDlLa3JvcG5rZ0c7ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlRPD09SUxFRnV2TTc4OThKbHJycG1TOzw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395e3dWPD4/PT1KZndtUj09Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfV0+QENAQT5FdFY7PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TUFDRUBAQU52akhAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXBCREVEQ1h1hoiJflhHSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaDgoaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoOEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49PT5APz8/QD9APT0/Qj9BQT9BQD1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkNHSUtKSUZHR0RGSEdFQkBAQ0VDQ0FCQ0I/QERIRENFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZYhYKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXR0xNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSVmFgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LR0ZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDk4PDs8PTo/QD4/QENGSUlQX4KDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdGQkdKR0xKRktOS0tKSk1NTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdFR0hGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUUk9MS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NCRlZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFZVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSUlISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHRkZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJUUlZWVFpadYNZVX2QYFxYXV9XSVZdXVtbX1lJWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1VUV1JRV1ZjloBRZXJYWldfZ1BgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnV0c3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0RCQURBT1BNU2RzdHZ1c3R2enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmpRS2FFRkhJRUI/R0xNR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUZVbnV1dXN0dnh6fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1xzdHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNRUVVPTFJTVFdYVFRYUkxXWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllVUE1PTkxJSEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUducXR3eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUVBVWVNUTkpPT1VTVFxWUlVTUk9NS0lISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNDU2Njpkb3F1d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTUtFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkQ/QkM+PEJGP0I/QWRwc3d6ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSkVNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkNJSUdHSENDP0I/P0BBPkRFQ0tOUVRMSklNVEZJSUpMSktMSUpMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0dISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJCQ0hGSkxKRElJRkdHQ0M7QUBCPkBAQ0RDSU1QR0lLR0hLREhJS01ISkxISUpLSk1dUkhIRE1HQURLS01NUE5LTUpLRkdHSk1OUU5MYm1pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+QEREQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSkhFTklCRk1MT01PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkNFRkVCQ0JFQERCPkA+Ojs7PTo9PkNBPkFDRUdKRklIS0hHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0RJTUxQTU9OT09OS0pITVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlck1IREVHQ0JAQkQ9QkE+QT06Oj0/Oz4+QEI+QEJER0tGSUZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVBPT09OT09LS0tPVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdHRkhCQkBERTxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOT01OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3pNSEdISEJCQkZFPD9CQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZEREdFREVDREVGR0pFRUlHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTExPT1JUT0hTVVNRU1BRTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJDSUVDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTlBSVVZPS1VXVFFUUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB1TUlLSEpFQkVHRTxAR0NEQDo8PkA/Pj9DQjxAPkFBRkNFRERJRUZFR0VISEZIR0lLSUZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJQVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQENBP0I/QUNIQkZFRkhGSUZGRElIR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTk9LT1BSVVhWTU5UVlRTUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFCREFBRUdDR0hHR0ZKR0NISUdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQkVHQ0NJRkNISkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJFRkhDREpFRUpMTUtMTEdHTUpHSUtIS0tJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteG1sdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PkJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1OS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj1AQEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JSkpKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVFQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTUhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm5vb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+Q0RCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTElLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxvamlkW3BmZHBcWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpGSEhLTUlISklLS0lISUdLS0xMRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWVyaVRZV1tbXFVZWl1YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0hERkdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZHR0lHSElFRkxJSktOTElPXFdeUFxbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJFSUVHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFIRkpJS0xJTEpIRkVJR0RGR0VFSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dHRUhHSEtJSUlERktLS0ZGSUpOS05MSExOSEhGPkdHTElLS0pLS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxaXWNgX19jZWJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk5NTEtISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTl5RT1xfYWNkY2NiXGRjYmRjZlhRVVRSW1haYV9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtKRkZGSEdHSUZGRklMSk5FREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZZYFJRX19hYmFgYmJgY2JhZGRiWE9RUVFbU1tdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVHSEpLTkxMSUxLSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YXl5hXU9ZYlxgYF9iY2JdYWJXX19UUE5PUFhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJSktOTEtLTUxKSkdESk1RUU5OT01OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTExNT1BJTE9QT1NQTFFTUlVaWVdZWFhkV09TVFBQTk1PVVRbWVlbXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWE1HSEpIR01MUVFJTEtLS05OVU5PS0tMR0ZLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFSVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVVtcW2BgYWFhYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0ZgVEhKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xdHBTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfX3ZfWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRkpMRlFWTEtOSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBOTU1KTlZeWVVMUVNOWVpNU1NSTkxPSVFSVFlXV1BUUFBQUUtHZnhsY3hybVpLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclJpe2xpanp6fWx4en9vZ29YdnZqdXVwgGByZ31pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9jUmdxdW5teXB3bHZ0dHFsbVx0fnprbXl8a3RtfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNS0xRUVFQUFFXXFlVTVVZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcnxdVEtsYHZ1a2l2fHttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUlIUVBMTk9MS1NTU09TUldSVlRQV1tWVlRUVGFgUE5OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFleW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZmRlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWV5cXl1cXWBhXltiYmNnZmRkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZUVFBLT1ZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRYVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYV1RTUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRhWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUUxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VVlZbW1dRVFdWV1hWVFhaVFNSWldWXF5aXl9gVWFcYWFdYGJgXWBdY2FjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBjXFtWVlhRTk9WU05RUVBSVFJLUVRUWVpXVU9STlNYV1RTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUU1NdWFpdXlxgYGBWYltjYl5hY19dYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1FPUlpTUlFUUlRVVEtRV1ZbWVpTT1NSVlZWVE9WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVldXX1tYUVRVWVlZVVdZW1RTVl5ZXV1gXWJiXllgW2ViX2RkX15jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVlVUVFTXFRVVFVUVllXTFJaV11bXFJPVVNYVlZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlRaXlxeYGFfZGNcXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11fVF1eYmVldoJ7aFhZWVNWU1ZcV1dXVlZXXVhQVV1aXl1dVFJYU1dWVFNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFVWWFtaW1hZWVpYVl1eX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZV1ZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdVV1taWVxZWFlgV1BWXlxgYVxUVVhQVVdVU1dWUlNVVlpaXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGtmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWFFXVldWV1ZTVlRYXFxeYGBdYVxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BgZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWFtcWFdZXmBiYWVhZGFdXllhY2JfYWBhXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF9dX1paXl1eXmFcW1taXGBhXmJkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmNlY2BSXFlPWFhaW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcWFteYGJhY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGNjYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZWFxdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXl1hYV9dW2BhYmViX11UXGBgY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8fX18fHx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjI2NjY2NkEYoKioqKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjI2PkJCQkJCUOxYaGhobEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX12c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2eHt4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fHt+eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x5eXx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6f3t7fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3p6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycHBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHFxcnJxcXFwcHBvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcHVycHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxenFvi3ZvcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXGNc3OYeHBxcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxcJd7dqB/cHJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0n4J7pIdxdHRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh3d3d3eH+njIimkHd8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7e3x9fqmShqWVent7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fXx8f3yCq5yKopV9fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICAgICCgJqvqKenlX9/f4CBgH5+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f3+BgYCFrKalr6afgn9+f35+fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+f4F/fo+pmaKqm6OPf4B+f4B/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYODgoGBn6GTn6SYn5iAgISOgn+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBg4uLhYGYnYqdqpudmoSIm5KCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBhZWbjJKdk52umZOen5+aiIeHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCjaWqrKmjnaWZnaSinZCHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDk6aooZyfmpuen56WhISFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoKEkZeWmJ2ZnJ6cmoyAgICAfoGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgX+DjZKWmpeboJ2ThIOAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJl4iEgoWGkJaZl5yfm4iBhIOBgYCBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISKk5mVmpyQgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyNgIKBgoOHko2RjoOBgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBmIyAg4CBgoCEiYiBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin6EhIOEgoODg4KEg4CCgoODgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn59f4OEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIODkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF+fX1/gH5+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gn9/gIODg4ODgoJ/fX5/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/foCAgX+AgIF/f3+AgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4GCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GDgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFgoiFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iJh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZKOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgH2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjo6MiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8goCBfn+BfH5+f399gIKBgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKMjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjoyNjo2Nh4SGhoWEhISDgoOCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+f36Eko2MjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx7e3p9foCAg4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjYyLjYuJh4SEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH17fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+NiomLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn1/fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fX18fX19fH1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGPjYqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/hIOEh4mKh4mOj42LiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYeHhYWHhYWFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEg4SDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5+gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoOCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIGDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIGCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf35/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CAgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXt8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8e3x8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGBgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOBgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYKAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODg4SChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGEhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKCgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYWEhIWHhoSEhYaFhX13hYOEhIKBgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoiFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYSAgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NXV1NTU1NTV1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dTU1NTV1dXV1dXV1tfX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR09PT09PT09PT1NTU1cm7vb29vb29vb29vb28v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0+QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS/qKqqqqqqqqqqqqqqqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLUwamrq6urq6urq6urq6qx0dLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs8PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cKtr6+vr6+vr6+vr6+uttLS0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLT09LV1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O09TQztHU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbV1tbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdStg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A9Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJXDm7y4mbSzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWmn6iOgI3FnZiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9moyjiazWupiinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZuLq62bpbKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0ZqgpaSclqeQmoSdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekoNWktKuff6CphZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosjXytnBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+5w4+hn5+ZqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vk5Ooq6Kfw6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xBPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cqq42PrNjCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0NbAv9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1dXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4Nzc3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY4OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKWmpqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgXNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpqampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaOe2pmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojs8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD87OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iYm5ucnKGdnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CUmZmYlZumlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouEjJaLjIqRnIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkI6Wgox+jpKMiIWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYaNmZuQhIx7jYqPinp9fYaOjYqGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhYSIiImEf4J/enx6iZWRkIKFaYaFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZuWi5GIf1+GhYiMjouOiomQj46PlJSYkJWcmp2eqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCdoJ2Tl5qgmZ2boqGVkJuskZObmHtZho+JkZGOko6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZqgrIqOoZ92WYOZjZiUmKCgoaSem5qlp6Spq6+spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaiipqSFhqejdFtzoJmdmJ+hoqmnoKKirqyrqqetr6ilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaWcgoKhonJjZpmfnpafm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+lkoB+nZ1xaF+NoqGbnJqcoJ6hn56eoKOZlpuYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuwqaiqqKGfoKeprbCyr6yjoqahrop8fqWeb2pchKSlop6doJ6fpaKinp+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7mDd32ypmxpWH6loqOanJyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS4enJxsK9nZlSBpZ6flpWal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20rnduZay3a2BSja2lpZ2XpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tql+dWmitnVgVpy1rq6qqqesp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vremiX59laOEbWqqvKyvr7Spqqaqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8mwloh7hoyRiXmAobiwn5qwrqykrbC0p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7y7vsS+xcjGxsTExLm0wLe0u8XLnYJ4ZnaEhnxsfIamtqqZorewprC7tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbJxb/DwMvNz8rHxMPEwsS+uL3KvYluYVNifX5pVWdwjbOqnaa0s6yywLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhda29ueHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM7Pz8zDx8bIycjHys7KycfIx7/Gy6R5Xk5IVHd1XkRZYnmnt8C+vrmsucG6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zoaml0bXhsXWRbVmBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDOx8zJwsLHwczV183Lys7FybyKa1BFP05waFg9TlxslcTMxsawmbrEu760sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDxL+/vsTLyMrLyby8yMbJ1dvVzcnJxcmndlpMV0VKaF1WPUlWY3u80MawkIm5wru6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRiam1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjJw8vZ08jDwsHGomlMYpVqSGFWWEFNVV5pr9a9k3aFvLq7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkZGpjZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7fAt7zK0cG9z9O8tLy9va5sRoC+j0pgV1pEVF9bX6LGo3tok8O3u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiY2hqZ2dpZmldVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vC1ou6v8LZuaGlr7S4d0mDq45MaGVjQlVzYFeRn4JsZajGv7zFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F4cW1lZWZvaWVsaFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MRzqcu+3M2aj5aisIFNcX5wV394cU5WgWVVeHZrY27BxsW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLi7sr2+u8S2tbi1t8C+xLzCxNircH+8yNTesoSFj5l9VWNmVnKZgn5uVXRjWmNiYVyF0sfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsaW50bnhjZ2JcY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ub3HysrDx8nSlGxxrdHQ29SSdnx/dF5iXU6VpYOEiVRdXVxZWVhhqtLJx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xtPDur68xL63vMC/ydDHyMrKwIJub6PLy8/guHNqa2dgYFdVqKGAg5JeWFlWUVVSecbLycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2u7mq28O+tr7Avr63opimr7PCwKN0cnSZxMfK1teGV1VRT1BFW5+ReYOJZ1pUT05PVpzJy8bCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNncF1bXl1ZUkVEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8a1bKvNvLW5wLynemxnbmpyf5WWbXR3lb2/xsHVqFVCQD5COVqJfXF/f2lbU0xMTna3wMHCvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX19aU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDOsXaAsry1tsGhhWlaX19MUltbbW5yfZ24t8K4vbtzRDU1OTRScmpqc3BkX1dMS1ygwLq5t7bBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyqaEd4qhr7SYaGNmVVlgSkpNUFRqc4Sjr7e+ubO2nmg3MDUzRl1VXmRiYGJdT0x2tL+4sq6yvLquu7Szpquorbq+uMvCv76sq7Cvs7u3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NiW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aniHt2jaGUXlNCWVRIYmxXUEZJY4ufqq+2urW0sq2UUDMxMUFQRlFXWFhgYFBcmLm6tK2lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11nWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiOa05KQGhYQk93g5ZsTEJXfrC0s7WytK+urXdMMDA/RTtFVldRWF1RfLCysaysnqSnp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLWVjYmEeVZGQVKIV0pKVnaMgGE/Vae4s7SysLGtsLmke0AtPlp7l6eiknNVWpWrrKujp6CdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRVYWNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K7qZiZlWhNQFZ6bk9JSUxmmn9XRVWvu7Gss6+urK21t6BmZ5Opp5+am56gf3ednqepn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpr1kRVWig1BZSUthSliJY2Zmgay1qrK0rqqqrrCtq7CnnI+WkY2WnqCgn5qjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKzGwMqaTkJ3nW5Pb0tOYmZ1cmBfZnSNsK+us7WqpquqopyYkoyPlJWWl5qeoqGbnKSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0E2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylxsaIV1JLZqJeaX5ydllSa2NdaWZlaou0sLC4rKagm52ZlJeZmI6NkJSQio2Nk5iinJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1VMU0xBNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjXlVbHJ1dW1idXJYWWBfZGldYFhirK6sr6efnaGflpCTm5+amJaRkp6boaObnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN+b4FuYGRXTVtSWEtLUVdRSVJPQ5esqqmkn56YkpKTmJeVlJSLh4qNlJ2cnZ2el56Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+ciGFXX2ZgVk1PRTw+P0NDPj1CUXeoramqpZ+dnaKjnZ+dmZubk5KUk52dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqbOtqrO1r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkg5NTs+Njs8Pj08Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+fk3tgXmVfUEVFOkRARjw+OTZOfqqzp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigo6KrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urS6urW7t7C1sqq6sq67t7+7uqu4rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cmXtyaWBVTkQ+Slx9cGJBPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8bHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVoZFtTSERAP0yKoamag6CyraOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMbMzcnSzc7TzcXIysrBxsvHycjGv8Ozs8jEy8vLz8fKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYlNLSURCP0RWs9K9srCmnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dbX09fYztLKz9HMz9DN09C/yMfKxMzMzM7PxcbHtr/Kv9LNzNDGycjAxMPIzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioFlJQEFEQEdRebKup5qUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwcbDyMbOzdHR0snMzcDKzMbTz8zOyMXKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkVYgqqon5iVl5manJ+dmJyckn1wZWNiX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDKwMjKzc7Qy9DOzszOz8jL0NDLzsrCycfJzMvM0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PTg3ODU1Oz5APTk8PDg7Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaSxekpIQz1YjKGblZOXm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O1MvOzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dTS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDO08zGyM/MyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO5srK+sbvDw7WqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhZWGhWTEZMSVBQQjtDPjs2Nzo4Ojo1Nz09QTw6PDw5PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+ulXhvc3WCkpmNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycnFyc3Btcnmlx9PPy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKzM/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwb28v7DByca5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62jtn1og4Slq5ONjZaPhYODg4F9hIR+c2BbXl5eYF5gY2RjX1xdXl9gYF9bWlxga3Jyb29rbG9wfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvbzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWlxYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7VsX3p+pJCKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPx73JxczAxsKwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7w7qzvMXEwsK3v7W2vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87MwcXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1deWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q62lX2V1hpOLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2FhZGViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusC4rrCxp6qtrKe4tLe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u1q7i9vcC9sbq2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy8DPycfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC/urfJtqqwmVtpcYyPhYiJenh+hoZ3d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmtubnJ8pMe/ubi1sKutp56iqaeeq62zraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsaiys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbCyMq4xcfFv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj05QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysLJyr/AvMK6s7S1w66psJFban+Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2FkY2JgX11aW1paXVpaWlpcZW5vaGZnaWtucoGtubC1rqWkp6eaoKShmpylrK6kqKKrqq2rsKOmn6qttbaxvbmvt6+orri0tLy4tLyvuLm1srzBssCupamjq7Gys6i9qquoq62ttLOmqK2hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/v8TAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0I7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLa8trGvtbutqKuTZW2Ig4eLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhamlq6Wem6GllJ6lm5iRoaOqo6Ogpaanpq2gnZykpqyysLa3p7CsqKq0q7S6sba2rra5sq+6urG2paCkn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKGxra2ssrSztLC1vLa7wcCyur7DwbK5ucOzwb3Atbi8vb68wsfEw8S/wMSgg3hwbGJmX2tvYFVZXkhOZ09USEVLRjw9Pz06Ozs4MjU1MzY5Ojg7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6VnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkmlxhoWGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+HnaiflZWaoZaco5mWjZ+ho6ecoKCkpaKnnpujm6CrsK2xtqOpqqqsrKS0ua23sKyzta6zta6wqp+en6OisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr7AvcPCu7q9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ojg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7yrubqxop6pq6eXnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcY2nnJOUlJuYm6KXlpGcoqKonpydpaeipZygoZuZr66urrKgpqKuq6eitbGysqyor7OnurOmtqCinpyjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLC7trq9wLizsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbm7rLK0r5+apKmflJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTlI+Ul5egl5mVl6CeoZ2WoKGppJ+fqZ2bm6unr7Crm6OkuKqhoK6otqqnp62xpLiwpLegopuZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7GwsK6vp6iosq2xtLC8tLq4rqOUgXl1ZF5hVllYU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW5ubCvsKqcmaGolJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiY2RmaYGWk5WLkpSUnJmdlpacoJyflqCfp6akpqefnaCmoKqvpp+ipLeooaGiqLSipailsKWxrqy0nqGdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJeep5ynoaKapKWlq6SlsKelo6urraaprq+uq6iqqrOmpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1VSVWBgX2BhX2FhYmVqgJOTiZCOlJOUnZWWl6SZoJedoKWiraalpaOko5yqq6Wan6WxqqChnqWrnqiinq2sqamuraKiopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJScoaOdpKGilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6qsnoxycW9gW1dWVlJHUU9IWltPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0tKqsppWam5yIgHKIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2Oj4SRh4+QjpqTlZKcm6Ocm6GoqauorKeppqSZpa+llZmlr6qgnJmboJ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anKChoJuUkIyZjoyQjJGNlpWQnaKgo52co5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbOrr5iFdHNoW1lZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WlqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfoyBi3+Lj4mSjZeRl5mioJugrKqmr6yosKWpmp+toJWWpKmonZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Kstauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDl/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzu7O0oqOcnZeXlIN/d2tnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iIyGkIqXiZSTmJuZnqmboKumpqyeqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkoeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqrqSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTU5RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKals6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbqvrp+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cISIgoiAkYSOipSRlJ6hj5uco6KkmKWXopyVjYeZmox0jYN+jpeWhpGakJSOjnuZj52Mgol/iZifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU1STUhKSkRKTEZKSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaemp7OnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noaaSnaa2rKOgj5WWko9+eH5lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVVllbXWlscmx/hXx0Tlhyj4KXho2dl4uUkZ+YnZWUlpWPlomAk4pfO1dvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLkImdiJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbsaKamIaUj4uHfXN1XVBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UUJAf5WSkX2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6GvoaeopaeosK2qtry2t7ezwbu2p7rIuLaoqLW2qrK8pp6VjX+Jk6iWlYp+joOCfXhwblhNS01NTktNUVdbXFpYWlVVVlZWV1lZWFhZWVhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUpERERJTk9oWU5RU1RVWm6Dc3Z+amlcVY+JlIl0f4aBfIWMk4KSmouPe4aPgHaAeHNvdnF0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYmIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWenZiMp6SToaCWnp+kgHJoYVxdSldQUkdKWFJPSkxNUkpKSkxQSUxRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCyqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ3jZeYjY99aHmBdniAiZB9hJiSgXKHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6FknmIjouKdXF8bXVwam1qWEtGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeXB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQloBvam5vblhWWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456gIaMhnRvdGtxbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplfnBtf3qLiXaCiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk46PfHN9fHFwbnZtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ6cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bX1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdnYmpucm1wg3Vpb1h1cI6bkndsf3p9bXJucIB6c3ZuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXF5cWVhhX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goRslYiIe3R4eGx3bndjaV5KUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeIiHx+hYN/jH52opl5foaBhZmFm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRydHp8d4ptaGpieW+GkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGVnX1tbXlRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKm3RtfIGGh32OaGdoeH9uhYeChXGEhkdsgHdyeXZobWtfd32DiX+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3R0cmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMjBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09SUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt3lZKrs4iNl599lJ6cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0RJSFNPRkhMRkpHRUZIQUtFQ0ZHQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dFPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ukuMaotsnHtb65tKijtK2xsZuZkpqfiaivq6WUdp+kl6GrsbOZlqqtqK62u7K6rK+1orGssbW8t7WutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVElERExVUUhJSkRJR0VBQEBKREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYWHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lrqOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpLDGubGzsbSopLW2qrGgopabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4v7e6t7msrLCmsKqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhV2plamVXW2RZVlNJR0ZMUUdDR0lBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmiiJWTlpOUk42QlpKHh3uGgY2WioCEgYp6fIuHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urjJv7q9ycy7vMG8t7W7u7e9tLqxxmF1sqWxmp6qvaqlqKuqo6KytaGrqJ+Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0r7i3tsO6xb3DyLCeuaqiq46lqLaJgX9yX2FiXVdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY9O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g3+DeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlVS0RBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAuL23xsC7ucrKure6tri5sre1tK62tplkdaicrXBeoa2cmKCim6SeqqWUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC+wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn96bF1gXFleYVljY1FcYFNQS0NCRUdFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiGjJCLiXyBhHN7ioOGe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWlRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C4s7u9tbHEx7WwubCwu6uysaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnRx8zNwtDSuLDDvMS5pba6xKKCb2NcXF5YYVhZZVpRXVdPT0JCSEVCSTtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjJubl4uOlZGajn2Ji4SOioqLkId8hIJwf4eBhnuHcoORi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVRcbm52gnKXrbiss6ewtqqsvMCxq7WmpLimq66hq7SjjrGumpiYjJGTkYSOm4GNp5KciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem9mXWJdV2BTXVtPUFRQTkg+QUZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn6AgYd5hHWFkpGJf292cmtzfHt3fHOBd3FrgHNyaG9xenlye77Lm36MsoN2coR2aGFqXUNaWltXZmRYZWtTWF1dYGReY3h7fouBmaqkpKGfoKilqrC4qqW0o6GtoaOtoqexn4mmmpSSkYmRjoiBlIlrlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvY2BfWFRaU1xQSkdJSkpAOzo7RUJEPEJDPkhCPkJCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISTmYqNiIiLiX6CeHN7fYOHd396h5GWgINueHBtdX92eH50hXx5bYd2dG59doR1eXudtow8QYvGpX6NfGllVklDZmNlY2hqZG94W19maWtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ2gqaCisZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2b2VdWVJWUVpWRkdKSUVFPTo3OUBBQjlHREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioGHfHiFlpaIj4OHhYd6hHhxenuEhnV6hY6NnHqMcHxvb3p/cXyBcYOHgG6OenV3fXyCdX98h4iwdFmpwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ6i4eOlJKblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6yZi5qMkZGNhH2Ih4OFi46fmZOIhId+bZl5hJiGiJOMjpSMhnubiJOPrqqUlZeemKeutb2prb3Gy8jJzMvPyMPRytTW2NfY19Xb19PZ29bQ29rR1snUy5V5e2lpW1pQUlReSEJFSUk+QT09Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR+g3x8hJeOh4t+hoaAd4J5bnt7hoF1epKejaB2j3WCdHWBfXSAhG+Bj4FvkoR0fIGFenaGe4m3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHVuk5aUlY+YkIOKj5aal5elnJegl5+TkpejnZmrlZCQio2RgoyFiYiBhZCRnpyZiYWLgYaYeomIn5ePiI6KjIJ8oYmQi7yhmJOXmpyppqWun6i1vsDAucfJzc7FzcnR1tbV2dXX29TX2drb19va2djO3MaGenpoaWRgVFdWVU1KRE5EOz08PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH5/fIV7foGRiYSFeoSIe3V9dG18fYZ+c36SnZGeg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcKCknYyLkJKFiYuQkpWPnJqSlJGXjYyVn52UoZSRjY2Qi36Qjo6LhIiSlZqfn4mMlJKekYKLf6WZiISOg4aEgKWGiou4mJ2RlZaip6Gdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh4bGpkV2BbVFBOR0NMQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIe3x7i4eCfnWDhnlzenNtgH6EfXeFm6GbnZSSgIuIf5iHgJySboeohXqgi3yRjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibkJCOW4KikYKMn5OVjIeIjJKTjJSUlI+Mj4qIlpudj5WWkYuSlIaAi4iSjYmKnJaZoqKGkp2WoYuKiI2ckIOIj4CDh4WkhoyQs5idkpSXoaGemZKcnqexuKylvMLHzcfGz8zQzM7Xz9HUrtbV2NrY2trX1tnan298dWhnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz88Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKsYyEp5GEmZOFmYuilqCYk4mbnaGSqa+fkZSQjY2IlYtujbeFmsTIspyhpZucmJaQspBkpM3Hlo+Fh4mQko6Nk5SJhYqKhpaam4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmelpuJj4eXl4qEjo2Bf4ePpYmNk6mal5OWmaGZn5mTnZujs7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1go99fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6OqsqGWp5+lpJaVrqKDkLiVkrOZjaGgjKWbr6OknZiQp5anma2vpJeUlpSQi5iZlqDAjqTJuKuboqatmJGanLKdhoWoopyYhYiJjpWNi5OOiIGGh4iTmJSMi5OThpSYhoSRkJx0kZmylpekoYicmZOPipCLl5qJipaOhn2MmJ6JkJCcmpmTmJiglKCdlZ+bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNj46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLenpthYZ6fIR4gIWBfnB4fH18b3KNen2Be3iGi4mFg5Knu62osr2vpa2zs6ijorCsipq1naO4pJWtpJaprbempKOfmamYqaOvsKqamJyUlZGXn5eZu7utyaBptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeSlouPlY2LjJeYkp2ZtJaVq56Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5yZnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3hneNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoyosq6uvKqbu6Sorbm4q6amoqGjo6ivsrGrnZykmJuYl56ipaWRo7muqL+8rK2yuaWjp32IhpytvbCDi4yLkIOPg5GPeoGHkIyOnIiHj5eNi5WXlJGalp2nmrGakaydjpqPko6VkJCWl46RoJGJlZujrJSWj5ScnpSgnpuYoKGVmp6np6SipLCypsHHw7CwurbFxMK+zafHw8fDvNXRzcTKiHRzYlxaYFtNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6ubXBu6upnLKlpKiUhY2pw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSRj4mXn5eTmZWXpqCunYyqnI6Wj5KRlZWOkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJiepqSmp6SvraXAxMOuqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGpTTUhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq+yMjKwdLJysLMvcGzrLu+p7q/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn6+epaKYo7S8qZuovMGjtravq5KvrKusl4aZqaalkYKMk6WViYF1ipJ5hY2RkJ6fk4+Ui5CNlKOZl5yVlKOeqZ+RpZqMj4+QlZaIfY+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Es7u+wriswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvcjDx8XTzc7Ny7vCt6+6vbS8yrzDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtLOtrpaWpKunoJGOkrHFp5WOfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Qj56IWpCXl5KWpZllmKOesqWWopasraunm5+ml5iWmZWhpKmmn7arqbq8xLWltLbLwbiptqyyuriuqLi6vbiDbG5aV1RVTkZKU05LP0JIRURIR0c5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxr3FxMbGzs7O0sq+u7axuru8vs62xL23ubeysrWzuLOsppyrq7iqqKevsJejrqSnpKS0wLCqrLO+wrnAubOnuLS4sq6VpKyurqSLk5WhjXTBmn2WmYSOlpqLsZWamZWSk5mZpqOVn5uWmqicnKGgmouNkJadYEqWnJqVmqWWVJawn6+cn6WUr6+sppqhppSTmZmOnaCnopm0qaqzvLy7q7Cyx8C4paurrbGxo6GysrSkcW5mXFpOUEtEUFBQUTtHSklHSEJDPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xjp6gmqOktci0qca6w8PHysjIzM3Gvrqyrrm4wMHNtsi6wbm2urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a2vsG/vriyssOxub2so660rLiliJuXppt2vqCEmJyOk5mai66XoZybl5Wbn6GpnqigmZqpmaKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiqmKuupaSfpamTkpmciJWcop6Xsaapq7q2vrOyrb25tqCjp6ilp5ycrKmpjGNlYV9SS01HSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSejJOqm5GSk4mrjYeinoykrZSjo7bGvbTBusLCx8jFwc3Iwb25sq+5tMDCyrXGscG8tbqrqK2ssKOimaq0uqappquqnaivp6Oqqr28p6y8s7e9xry3tbjAsL3As6i0tqu+pY+il5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clqmkoqG0tbu1rai1srOenKKlmpeVmaqhnndhXWBdSklGSE1RSU1FRkdCUkxJQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn5/DrJuXpJeZqZyWm5qPqpaWp6aVra2Zoau2xMK7vrfBwsDHw73Nx7u9ubKvuLO/w8i1v6+8trq3pqOqrK2goJqqqsSipairpp6rr6yiqai+uKatvbC3tse2tbm4v7C+wba0srSvvaOWo5aTm5Sun5ChoqWjo5+QvaWpnamsnZ2hm6afvaKZo56iqauhnZaNlZ6TnoePhI2TnqSgnbWsppyVsqeZsKefmqqeoI2ZlZ+EjqGam5OlpJqYrLG2sqqlqq2snJigoJKOkJapn5RoY1piXU5JSEtPTEhFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTaKao5yexayhn6ydnK6fkqOelqWgp6mrl7awoqqytcTCvb+2wMK7yMK9ysi2uLW0sLO0t8HGtr6wuLS5tZ+mrKqrnZ2epaPBpaCpraCkqa2voqanvbWlsby3trXDsrO3ur6xw8C3t62ztLWinKSVkZOgraCYoZ2oqauimsOtqZ6srZubnpmmoL2hnaSYq6uspqGZjZqfkp6Jjld/lp6loaC4qqeTmLajn7OhoJuvl56OmZSdgo+fl5aOoqSVkKWusqupoqKmpZWVnJiLj5GTpJ+JYmVbZGBMSUpLT0ZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GZnsOnpaKzoJyyp5OrpKCkn62prJ27sKistbHHw8HCs8LEvcbDvMTKvK+xtq2wta+/xbW5sbC6tayaqLCpqZqdpaGnwq2brLCcqqKusKmkp723pra6vK62w62zs8K/scazurartLWtqaGllZWUo6uhnp+aqKuwrq+7sqagqamZmZiToqS4oKGkkq6vrKWnn5KhnpWej5CNlJ2aop+ntKanjZi0nKOvmp6brpGelJeUmoCSoZaPjp+hk4umrLClp6KcoZ6SkpqThYuSjZyegGJmW2hmSklMSlNCQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DDqKSqsqGjtamVsqunoqSyrK6pu7KssLW0xr/ExLXAxL3Iw7bAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu1m6iwm62frrSxp6q6sqe5s7eyuMCqt7LCvLPFp76urbe0qaeroZaWkaWkoqKXmKSuuK2xtbagn6ikmZWVk6Sgt6KkpZausrKmqqahnpuampaYqJ6emKGer7Kipo2XrpmlrJeZnqWRm46TmJqFlp+UjJCcnpSLqamqoqegmZ6WjI6ZkIKGlomUn3lkaV1rak1QTk5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWVdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SknaGmv6aor6+gqbWqnbmvq6OqtLexsLm3r7a4uMW9w8e9vMPBxsC5wcbBuqq2pK27rcHDuLiqrbK7opWtsK2ylqWnkKq5qqCnsJ2qoLC0sqqptrWsu6yysrm3rLmwwrq9vqbCqrC3r6mqq6admJiqoaGgkZigsK+zq7C5mpupoJmWkpemobeppaKir7G0q7Koq5+boKCbnqWboZedo7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUj6mop5+jm5ebk4eOmYt+jZaFj5traW1hbG5XUFJaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqrCqo7G4qaW0s6uhrbW9r7O4vLq9trbAwr/JxLjEwr/AuMS+wbevtairt7K8v7+1qa6xt5+Xq62orZanqI6nu5+lrbOeq6KxsLOsqbaztb2tr7G1rLC1scC6xLarvK+xuKusqaKxpZ6kqZ+jl5CZn7Kqs6mqs5mdp5ualY2gpqS0rqehrKytsaezrbKpo5yfqKOdk6CYm6i1qZeZkpKfmZ+hnpCsn5iYhpWYi52anZOKjZaXmpempaOgnZaVl5SBj5SFe4+Sg4yWZmxyZ3ByX0dZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYmBQS01OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3pKyppa6utqmvs7mmprC3xbext77BwrW0usW+zMW4wr+6v7rEuMG5srWsqrq3urq+tKqusLWYmKerqqubrKuPq7ydrK6xo6qfsK2zrq62sbm3qa2usae1r7O7vMmyqrW0sbSvrqags5+aqK2gpZWVmpmxo62fpa+WoaSZmZKNoqWnsqmhprGrqbWlr7G1r6OZna2nmpeemZmsuKOXk5CPmJyhmJeUrJ+dlIGTmY2dnZqWkIqTkp6apaGhoJmWkpOWe4uQhnuMioOLkmtueG52fGFGYWpZSUhZWz17SkdFNkFiVGlaTVxhSltdWlJSUmJgTEtFX2FgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosamspaOurrWpt7S4o6u0t8m7tLu7v760tLfDwc3Hu8O8tr6/wLi/vLG9rqe6ube3wbarrbG4lJemrquno7KplK+7pK2ysaenorKzsLKwtLG4s6muq7KnuK+1s8PFtqi0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpbenorGzq6exqK6wtaykmaCsqJubnJuUqbiclI6Oi5mcopiQl6ahn5aEkpaQnZyYlpaIlo+Xm6eco6CSlpGRl3aEkId7hYGEjYxucXd2fH9dTGVsXEtOY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXU9PSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaWupK2tq6eksLKzqrewtp+rtbnJua7BvMK3s7K1wsPPxL/BvbS9wL+6v7yzxKipubC2tr+8r6yzspygp7CtpaawpZ6yta2rsrCsqai0uay0srWttKypq6isqbmtsbDHvrekua+pra2lqK2wpaOjrqOpnJ2cmq+ZoqOio5CsnqOfn6Gqpaa5pau0tKSpq6msr7auop2jqKqbn5makqS0mo+JjYeRoqCWjZSeoJSThY6Ukp2bmJaVh5eSlZmmm5+fjZKRjpF3fo6FfHx9h4qKcnRyfn1+XFNkb15OWmZdRkSWW0g7Tm1YYVtNYGFOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPUhIj5uqqqKpr6Soo7K0sbS1sbGhq628y7quwLvHsbSttMLD0cXFvsCyvsHCvL+3vMSnrbess7i8wLCrsq2gpKetqaiksKOqsaqvrLCur62rs7qmtrCyqbKpq6alo626rKqxwrm0q7moqKitqaixpamkoq6qqKKem6KslaSdl56Yq52hp6mhrKWjray3sbGgqKKgq66wrJ2fp6ipmaSYmY+gp5iGg46Ji5+hj4uMlpyPj4aHkJWgnZaYlYeWk5OXpJydnIuRj46Kf3+Ihnx3f4eFh3Rzcol2bF9ZYG5jUXNxXEs7hHxGPld1WGBZTmNcTVVWVVdQXGJeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWYraeiqrKcqaivtqy4ta6qpauqvcm7sL64w6+xrbPEw87Ow76/tMDDxLrAtMnErK+3rrK5wL+0rq6rpaeqsKmnqLGltK2rsK6tsa+zrLO6pLizrKyup6ugop6wt6uqrbq2pLW1pKmnrKyqraGopqaxsqSmpaGhq5apoJOaoKaepKKqpKyin6ext6ysoqSim6mqramcoqWkpJigmZaPmJ2TgYKPiIWcoIyKjoyZj5CLhI2YpJuSkZuMk5KRlKKZm5mKjouLfIaBgoN6dICEgn50d4ykh3lrXmBuZ1dlh2ROQGeSTERieVdiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESXkq+ko6qwl6qorLWrtrGrpKuqqbzAwLi5s7y1prOvxMnL0b/Bu7nAv8O5wbrBxK6xtbKzu8G+s7GurKurqLaqpa2vq7mvqLGxrrGrtaq2tae0tquspKmqnaOds7OoqKS0tKC1raGpqKuprKegq6youbapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ikpqapnKKko5+ZmJ+Rjo+Zjn6Hi4aEnp6IhYuLjo6QjYSGlaOajo2bkZKRj5Kfl5iWjIqDf3SGgX9/eHWDf3t4f4GInY9vcWdncXhcYHOIak9dmFZIbXhVZFZRYk9MVVRVUE9YW2JVSFBqVFZUR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFjMDI/Zj1OWD9DLD5MVF8vSms2UEU7lY6woKWqrZmrpKyus7SuqqWvqam6vrvAsa+4rqK2sMnHyNDAvr27vMK9usPBwL+usrKytb28wrKys6qzqKS1qKSss7O5r6OutrGvsbmquK6qrrasq56qrJ+joLatqKGer7OhtKqeqKeqpKqhoaytqL2vrK6soaenn6uYj6+imKKgqKeep5uZqrCpo5+soqGToqKjppiZqaWXl5idj4qHlYh9jYaEhKSWhYKCi4aOjpGEhZSgl4iRnZCTkI2RnJSWj4qFhXh0gX99dXh5gHt0c3ppgoejdWleZWyCdWeIjH1SWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hPOlZCNJCPsaCkpqujpqSsprSzsKmjsKequL7AvLCouaqnrrDJxsjRwr2/vrm+v7zJvMK5sLC0sbq7ucGztLusuKyjtaamq7G2ubKnp7q1rbW8r7ylra21q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpqKm9rLSvrp2po6Cum5qyo5Wkm6Sln6SamqirpZ6bqqGbkpugpJ2YlqmpkZiZk5CKgo+FfY+CgIiej4Z/fYuGkI+QhICTm5SFk6KMlJKLkZqRlIeJfn9xenl+fGl3fHp1cXF9aIZ4hIdkYGhjcoV6bWd5XV5WQld6bVRhUFJZS0tOcXRdSFpbZ1lFVWZQRD5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPk7GZn5+opaShq6S3srKkqLCnrLjBvbWwo7msqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+t625tb+tobOmqaqvtbi0qp67u6iyv7K6oK+0tqmsn66wopylqKminpyksaavoJ+qqaiiqpujqKCtvKiusK6hq6Kjrp6erKaXnpqho5yfm5qjqqKamqSklZaUn6GWm5amrIuekZCRjIKLgH+OgXualI2JfH6LhY6PjImFkpiRh5SjiZKSh5CZj5OBiHx5a312eXhie3pxcHFzeGmBc2qDZ2RoYW9zjm1ianBgcEFceGtWXk5QUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8pPDNQWz0jkpismZ+Xp6Sin6ikuK+uoq+vqau4wrqyrZ+4r6uotLrHy8e/t8G+r7S+t8S2w7GuubKywLW7vripube9q6S1p6epsK25sKmaurykrr+0tKGut7Wnp6ews6CfpKanoKWZnq2nqJ6gqa6noKaXo6mfsLifpLGvoauhrKSbpqapmpqbnqOVnJyanammlpufqJKYk5idk5mVoaqQmomNkId9h36CjXx8oYyMiHmDjISJjI2Eh5OajomVn4mRlYKLloyQfYR7c299cXN0YHl4aW9wcW9qf3JkemxpZmRhZoaAYFtzanJNTX9pWFpNUExKSFBSUElOXF9vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj8wWlk1KJadpZiclq2gn6GkobersKO0tKmoucW2sq6gt6ytrLC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO6qbu6t6eotqimqrCss7Cmmry3pKu7ta6fsLivqaanr7GboaSgo6OhlpyvpqGfoqevoqCik6Olorewoaaxq5+soq6YnKqkqJ6Xmp2kk5qcmp2mqpmcnKSVlZeVnI6Tl6KpoZCJio+FeoR9hIp5jpeKjYZ5goeEiIyOhIyTmYyOlpmKj5Z+hpeLj3qAenByd29vdF94d2RsbGxqaYRuZnNpa2ZpXWRzgWBba3VpWkl9XltYT09LSEdSVUYyOV5ebVBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS48MmJVLDKWo6GXlJuqnaShoqC3qq6gurimrL3Fs7Cvo7Wwra2vtcTEvLO/urews7m4uri6rq2/s7S4r7/BuKy9urWmorOqpqiyq62xoZvAtaSntbWonrK8qqimqa+smaOnnKOmlJiisqSZn6SoqZyioJOkoKS4qKSnrqaepaCokp+ooqGgmJudoJKam5agoaqbm5mhlJGUlpmNlJKjqKSQiYqOhXmEe4SGfZ2NioqGeYCEiIiIkYSUk5OMkJWUjY6Ue4OXjot3fntsdHJsbHNheHRoaGpnZm+FZ2hpY2ZpamBpYmpnW2V7Y2BTc1RbW1NLSkdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzllTycynqOjkY6jp5udnp2jta2mqrm3p6zDwbawrKO1rqeur7fAwLyywbaxrrK2tri3tqypvbOvsrG9v7iuu7yxpZ+2q6WktKmrrp+ewquopbCyqay0u56pqquxpZieqp2mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq+hoJ2doZSgpZ+hoJmbmZySmZ2UpZ2sopiWnZSTjZWXi4+YmqigkYiJi4h5hXeCgoGciIuCiXx/hIiGhZGDlZWPjpCRkZGNknuDlY2Fc319Znhva2psZ3Vza2NnZGR1gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdJS01SWD45X2xpSEJUU1xbSUhGRUEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWUpWYmZBOjNBZ0glNZqjnpCLrKGYmKCWpbOxorG9t6Gxxru5sbGktqurrqm5vbu7rsCyr66ttq+zuLOoq7mxr620trq2sLm+raaetaugoLClq66epMKgsqOusK63rbWera+sraKZnKeppJ6Vm6iln5mlo6idmqCblJydrbCmuaiuoqCamp6ZnqOapJ2XnpiblJqgkqiWqqeak5qakYuVmY2UlJmpp46NiomPfIJ0goGKmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNgnCAf2Z5bmhramdxcmtcaGNjc4FhZmhqbmxna2pnbVxsbHVxYVRiaGRlWklGTE1PWFFRVmFlgVRAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmVDJzSSoJqOjrCdmpOhmamysJ+4wLagtMK7vbmxprawqK6kt7i3t627r62qq7eqtLmupbO1sa6psbe2sbO1uqepn7apnZ6po6qtnKnAma2jrq+1ta2tn7Gtr6mim5yjq6iblZyno52aqaKklpqgnJCbo6uqqbufqKSfl5qZnqGPa6KWmJxxgpabpIB1kqmnnpSUnpCIl5mAloqhkHiGlIyDbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39nhoBodWlmV1xoc25OUGpjZ3KEZ19kZm5sal5gYIqQhIZnT0tEOEZUZ15KR1FQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSsvjKOZh5Swm5yToZuqraujvcWvqbfCuL29rae2sKWrpLizsrOxua2qp6y0prC1o6i4trWop6y3s660rbOjqp+0q56hpJynp5msu5Wmpa+yt62upaiuq6yloZ+coKemm5ehpaWbm6ennZOen5iQnqiqo7Wvo6Ojm5aXmJejiKGOkpqHoYeUnaF/pX+mqp6SkZqRiINyeI2OhYihdomNaZeIZn1zeKFviIeEfo18f6Ggn5mAe4eedIiOdpuKbIeBg2xoZWN6bHFiVIZtY2xpmHFYanBvh1heaVtra1uIcW56coZoh4RaXkZNP0dfTUZSVlZRUVJXVGdeTVhKUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIyml4Ocq52ZmZ2fqqqnqb/DrrG6vLfAv6qlt7CprKayta6vs7arqaWxraW1s5yttba0pqeps7Gtsqivn6uhsqmgo6OaoqOcrrWVpKSltrymrKeqqqyopaGgmKCmo5mZpqOkmJykqZaUopyUk6SlpqC2o6Ogo5iUkpeTm4iuj5iUiamLl6KbhbGAo6ydk5mdlHmC1Kh/h5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn+BcpR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppOBpqmfl5yepa2yqLDCvbK1wLW3v8KrprOsrKmnr7Oqr7azqKimtaanuK+ds7K2qqWkp7GurrGmqp6npLGkoaCel5ygnq+tlZ6hn7S6oqqooa2upaKdmpmhp5+Xm6egn5iep6eRnKeblJ2hpqKgr6Kfn6OWlpKXkZiFr2pqio2qfmeElYetZHCdnJOZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWhnh5ZFdZxgfWh8pKeCWV+Lq2mAlXh6aqc3Sq9bV1NtY1tLT1hfXFdWO06IT1dXL0lUU0lERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpaqyt6y0vb6wtsSyuLvCp6mwq66pqbCupLC6r6SlrrOjqbmpnrOysKOloKqtr6ywpqefo6Kwm6Kbl5WXmpytppeboZ60s6Grm6KtraCempagoaicmJ6koJyZoaekkJ2jmpegn6ufpqafmp+hlpWQlpCZhbWbtXiFqZm1mXeHs5u3fpOVlqiUfmuBpnqChoiSlJJ3q2drsVuse4+HlHSIcY+GgICIkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGibltTa2hgTEtcZFhcWkI+sHhXWEEjTWhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1c3SjlhVTUwG5WflIizpqahrqmns6ypu7bCsLvCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paays6ejop6oqrKosKilnp+fr5afmZWVlpieraKamqOotK6hqY+pqKqbnpWXoKSnmp6do5+boKOlo5Wbn5ianaKqm6aZm5uioJaSkZOTnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joekgqWCeqx5j51Wr3uJfp9quVq5d4aDfKaCk3yYeqp5jZyQe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGdaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MiWbopOYsaiopbSqpbSopLy3wbC5wLG2tbyztaexsKOwsqafrraom6i5rqOvsaCztLCgpJ6fqKqxqbSppJydnqqXmJeWl5WWoaudm5anrbCoo56PrKKolp6Xm6GloZihoaKhmqKip5ueoZ6VmZumoJynlJuan6GYj5KVkZ2Ism5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGhpX6wdoOR0tF2XK58hn+kb5uqpmuGhHytfZeZj3uxc5Odj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rX2xoT1VHSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZyRpbCtpKq7raa0pae2u7yyur+3trW6urOltLShsbGin6ywpJimuq6ksbGdtLiqn6adoqqlsqitqqSanJqonpWUmJiSkqOooJeSpauvpqKWk62fpZKUoZukpp+UmqamoZqjn62aoJ6dkJaboZ2cpZSclZmin5WZlpKbhax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1313hH2OnYeZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnd3h2iYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9wbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTk4OJ+dlKC4sJe0wa2osqiqsrq4tLi/ubeytry1pLezn7Ssn5+oq5+Vp7arqLGxq660pJupoKCoobanpqqjmZ6VpaGUk5uZkpSipZqTkKasrqaglZmpn6KPkaKZqKWglZmlqJ2cpJ6tnaGdoI2UnpudoJiZnJWXoqCTmJGmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa25lT0pDoVxaTHReYmZNWmFfcnRfSlY2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MxPzihnZmZv6uXtMKuq62ppbSwuLG1v7m6s7G3vKm6tJ+wpJ6lp6eelKqxqbCptayrr6GYoaCmpKS6oqOroJebkaKglZSempSYnqCPjYyor6+mnZabqKafjJKkl6eqp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaPq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFk4ita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6Nten9+b5iHcVyvVjycd2ZUb24uXKdPYlJrZWFtWWJcYXB7Y1RaUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbqhnLLArq2rq6e3qbivtcC1vLGvubiqwLWpqqCbpqOhnZKqqqi2o7Korqqgl5ynoKWruJ2jrZuWmY+lo5WNnaCbmJyfkJOUq7Wvp5mUnKyql4yTpZmkrKKRl6qypKCep6uwmKGjkJmil6CblpuXoZOcqpyUkauZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqqqssae5r7bEsbqyrruwrsCxrKSinqOhnJuRqaSqsqS1pq2kn5aaqpmmrLicoq6YlaGQpaCSjZyjnpidm5CVkq+5sayVl6Onp5SRlqSco6yekaCoq5+bn6iis56ipY6nopShmpyXlqSYj7CgkpSqnoWQmbWAkJGMt5V4gpOatXdta25zbnmPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhouHjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXn96fYlog3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUGdmcW11Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWs8O0rKunrKupu66wxq+1s663p7S4ramioaWeoJ2ZlKukraqmtainn5uWoKOerKS+pqGrl5SdkKKbko+iqKKTnZeTl5SytbatmJ2jpKKLkpGmm6Wqm5aopKWcmqGopaajqaGSrZ+Xo56Xlpedno+wqZSbp6GOan5pnKZ4h3N+mo90emWHer2+wLpvkoJxlYdfcmpaXpqJYWOIjpVrYH+VY22cdmKUa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6DfHuLa1hseoJySUpvhXBNdE1FV11mYExbWGdjXk9bbXVpcVFPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOtpa6nqLWxrMissLOrtaO+sbKnoKKpnaKbmpmspq6kpbWppZuYlaGbp62ovqepppWUnJWgmpOYpamnkZ2Rj5ecsLK/rJunnaeiiZORqZqopJubq6CjmZujpqyin6qimrCblaaglpWdn52XsaWYoaeYnJGdnKOjmaaimpyampmPloFnbX1xd5KXlJGFirWqjYaYlY+KjJiXh5SVioSSk5GJjZGTmJSYl5qgopqclKGdjoJ6pYVsanyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWN3fXZrcHttYGNdcGdNWVllal9XWnB6bm1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOgs6K/oqSxsregqqWyp6WwtarJq62xpbWmwKe0oZ2kpZyjlZagqqaso6O3q5+Zlpafl62ppcCeq6SVkpyXnpiTlKKfnaKnk5GZqKeyw6+aq5yqn4+WlqmdqpuboK2YoZucoqSvpqGkqJ6tmJemnZmaoZ6enbCgnKKmlZiSmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZCHhomVjpuXjZCYnqSWmpORnY1/jWahs6+FiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0ZHlmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqrKOzrryktJyfpaKhnZmXqKWppqSls7WelZSdmZmwpq6+oKujkJGempmUkZWhnJaonISeqauis8izn6qjqpeWl5qnnaianaOrk56fnaCqrqmlo6uhrZufoKGZpZ6cnp2wpJifqJOYl5yRpJmYqJ2al2aDknxlfo2Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh7jqGOa2iMl5Gid2tqi5ijn5lzbG56hIyHelhlXoWBXmyKiYB2XGhzd3eRgIeCbniCeIBzbXmDdHeIiI6De2qGWV5rdGRdc4lpanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BRDw8REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora6wpq6tsL2xqaekra+wn62Xn6OdoZqZp6ucraOlqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmYpJV7payiqLPDt6Shp66fnpWeo56jm6KpqZKeoZ6gqq+qq6Oqn6ibpp+ooayWoZulsKSXnKqVoZ6bkqWXnqqYnn6+g4dytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncLBe4F7ko2aw8B9a6Wxb4yAb8p6f5t3kYOOgXZ6gX95cXp/h3F4hYyTeW13k2JmX3hkX2WCY150aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK6tprK1r6qlpqawq5+rmJqin5ybqqeinKyjpailpLSknaKTpq2st7Onr6KSkZqdpZKRoKGXm5+ch6arpKutv8CxoKmvqZeSn52imaGiqaOToKGdnq2uqKymo6KnoKWlnq2pkaSbqa2qnJ2qnKyhlpellaGjl5x/zpR4eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjap6p4eFoHSXkoizY4KrhqGOjbNqhK50fZaHuGGCrVmjzW6PdXvae3+ZcH6Ik3Z+ZXuIdnZrfYhufoWRkn5tgY9gcWtwZ2BfeWRccWhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PTdAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwt5eekaSqqK2zq6ayrK2spKunsKqgp5uZpZecoq+foJ6op6OmoZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll56oo56tpKqwqMDGs6ipsa6Wkp2copeeqKqflaCfnJ2ur6eqqZunp6Shq5KstJamoqqpnaOnpaGwoZOap5qgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZGQZG90dXBgZ21lX29paW5mY1dTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoayvtq6osKepqqiuq6unoqSdmaKVn6arn6GloKioop+dsKyXmpaop6+sqKepnpeUmqOikpShrZudpqOvrKOrtKq6zbGtpq6rlpScnaKZnqysnZagmZ2eqbGpqambq6mjoqybr7GiqKyupZimqqmpsaKSl6OlmpSShKRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKshH+ug5t2roGmhoafepmWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2ak29teXh3b2xmZWVxcGZ8aWJdV2BpWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tXAoZmrqKGvop6wtLCvqayjqKaqqquppKagm6SenaWnpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSno5CaoqifoKacsaajp7GstsiytaqsqZWRnZyimZ+ks52aoJScn6erq6OumqypoqGqo7OtoqqzsaGaqqiur7ajk5ajp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5N/cHt1fXtuW2VqcnFmgWpfYVlkbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGua2psq2spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52moKyanqmlnae2n6KXk6iqtrKsm6acoJWQpa2RmZymoqCqpq6ho6epsLTCsbOqraiTiZecpJqgoq6mmKGVmJylpquar52tqKaerKO3rKGyua+dm6+ns7OzpZSYp6OZn46CnU54moF/n3qDo32DpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaWinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd7fZOSi3V6c4V/cVxtbndyaoFvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7irr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqaayoJmppJSjtqKilZeiqbS4pJyinaOTkKGxmZ6cpqShoq+unaSoobayw7Guqa2pkYeQnKecoqKcpZeemJmZpaSomq6hrqWml7ClvK2ht7etnZ21sriws6eYnq+ho56Fj9G1w7d5h46FkZOQgaZ4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPlKaYfoyNk4t4fXmOgm1peGl4c25/dF1kZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqmnsKOUrKOPpa2jnZCamqq0tKSdpJ2pkpSXrqCgnaajnKectJqhqqO2q8OvqaupoYyEjpyhoKWhlZqanJiamaakppirp62ipJutp76slb2wrJ+isLO5q7Snm6mxpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBtlZKnmYKUjZeMe3uDl39rbH9ifXRtgHpgZ2VxbmhnaENaYVs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCtsG0n5qsoK64paSOm6SjoK+vqp+kn52tmZ64oKOroK+qmq6hkKqppJaJm5CusKynn6ebrZiYj6yioZ2loZmknK2Yn6imtqnAr6Wpo56LgI2bmp+mnZKVmpqUmpqlo6SaqKyso6Sfqqi+pJfDrKqioayyuquup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFpZmkoaGQhaBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJuLmJGWlnt5jp1+ZHN+YoN3dIB8YWpmcW1mZWVPVWRcQlRePkkoPjk9NCEiLSUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTkpHQzU1My8vQFVaWFdXV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TCs6ObrKaltqihi5qgn52zs6meo6CdtZigs6iqq56vrp+rm5WvqKKOiJuOr6ypp6Knma6TmY+omqKdpZ+Zo6KlmZ+jqbKovK+lqJ2cjn2Lm5WgoJmPkpqbkpmXqJ6hmaiup6amo6Wpu5+gxqelqaGrtLatrqaeu62srJWAqZKjr4+bgIekl5iQgYC4w7qDjp2ThKeWnIKsioKviKabm6WqkH7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rHh3or67dICWjqadkJyRl5x5gpGbemN9e2SMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbKina6mpbOmnouYpb6pt7Goob+mprKcnrGcuaiera+mp5WUsKyXjIObka6mo62hpJyqoJiLo5KnnqecmqCoopieoKytqrmuqKOalpJ7h5mRppuSjpGYmI+Yk6iZoJipqaGqp6Gjq7ueqcWjoK+jq7O1q6+poLqnrq6ac3WqpLeGZYmgcGetj4qPbW93pJCZn4F1rpmVcI+LcZWoo5uXrqRybW1tZYp4b22CmXGAeWlxaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkW9mZICNko6imJiZkZaefIeOlXZmh3hojWp5fnlkbGNmbGJLZVhKbFk6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOqqaGunqSyqZiSvbLEyL62qp7Aq6yjoaesn7qjpK2sraaOlq6pkIyFlZetnqaqop+jo6CRjKSSp5momZajqaCWnKWmp6+6q6yam5KSe4SXjaWYjZGRmJSNmJWnlJ+YqaObsaeeo6y6n7DBp6Szpqyxsqutq6e4o623loqhqKW2nYmWopiHqZqQlJ2TqrOZm6OroLGWoaGdoKKcoKShlaumjJKSjIeSnJyUkJqTmJCNlYaBpJqXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbXuUkZSTgYGPj4+PnZShlpmXooKIlI1yaZB3cIt3dnx6amxkZG9jVWBZQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNT1BRWFRWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppapqqW1t66uorCkraCgtbGQjqvGvcS6uKqipZ2bpp6xqaO2p52ptaeokZisoouIiY+cqJaspKGZp56ek5Wjl6iaqJmUpqGjkJuomaG1uqirmZqQjXyBlIuglIqUkZWQkJOXpY+fmqqgnLajnaest6evwa6jt6avr7CtqamyuKCuvJmRpqOmtqKSnaafjamfjZKfo6yvmqGjsaivl6OgnKOpnp6dnJarnJKZoZuUkJaqmY2ZmZaQlZ6RiaCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkJSUkYp9jJaSkpiToZOel6KEiJiHenKWc3qKf3F7f2puZF9waWBbYFptY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhY2FhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gqLWqkJCdprS7r6ysoqOaep2isaSlsKmWm7mno5SZqpyOhoqJnKOQrp+jlqigoZKXmJuvi6qWj6iZp4yZqI+eubakpZmbjYl5gpOLmpOJlZKUkI2RlqKMnp6pnp+4pICEr7WisK90pL6jsqB4eqCqsbuUdayknomAqn5kXGJ2oI6knoSXfm6Ts5yjp66qo2Wdn5NzeZmXcICYqJdsf6KoimWcpZyRl5iWi5GbkYadmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFph4qUkotbdpWRZ2iQjnJ7ppmZZXmZh4J4mGqEioJueX9rcGVgdm9ra2hcZmViYm9TXD5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkZGSUtNVFRVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablaajobCxrKuppaito6etpJKVq7awsqaaqqerl3OMnbCfqKunk5e5oKCPnKSdkX+IiJuejauao5Wnop6Ol5GehXWukIimmqiRl6SInLq0qKCZmIuJdXeTjJWSiZORkJSMj5Ogjpugp5mcs5aAjJy1nbOMko+8p6F+p6J6oq63gY6Npp6Di4WPsamvjIqWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgXucsXqKhaCXmZSYloGQlpaEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElZJ4lmiTdKCadH2ZhKGdh5h+kouDg5lrjo2Fa3h7cXBnZHduaWxqW2VramVzXF5JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1NYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6aurquorKCosKanqaWZlK7HvrChlqaptZ6Pg52snKeioI2Qvp6ZjZ+aoJB9ho+Zl4irnaKWn6CRjZOJhoCRqI6Hopyjk5eehp66sqeem5KOhXB1kIiTj4mTj4+bi4+RnpGXoaSWnqyIn7SJtJqti8qHqq6It4WNsIKwroOpjaaZjZ18qI9ye3ecj6eWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6NrnoOimoOagIyOhYqZcI2ThWh3dHt2Z2h1cGdnbF5jb2xnbVhoR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZSXop+wqKmopaugpLmwqqummpSgpKWro5alqrejr3+hp5ylnp2JlL2ak42hkZ2QeYSWlpGHq5mbm5mhhY+Md5ucj6CRiJ6km5WZmIaiua6kmZyMjH9ibY+Kko+Mj4yNmIuQkZ6OlKChmaGofqGnh62doJauj56dnZGGgaCNqq6GpI2qmoyafqJ2gJmUa4KsdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+En2pln2xbbop8Zlpfg39iV1BvdmVtdHFqam9eam9tbGpYaU9dWEU5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iXlp2guaGqo6askqG2vKuuopmXoKKmra2hna61oqiSoaCgppyZjpi0mZCLnoyVjHWBlJKNiqaWlZienn+ShYaspIeckYqYqZiZmpKHpbGnopWaiImAaW6Ih4qNjYmLjZKLkJKhi5SeoJyipX+TgY+joZSgd5yWj6eDoad/hqmshKV5in2Emn2icHKTiJZ7nox5bYecjJmQm6iaj4edfIKic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOehICkYJ2Zs5ZxfJeftHRzW56yg2pib3R1cWhvWGtscnNmXWleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kuLWuraCbopyjo6atnJuxrayTl6GZoaSZmpSeq5uLiZJ4i4ZwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopZ6PloeEfmt7h359j42Di5CQiY+UoIKWnqCdoJ+LiXecmKKMoHKii4ipiJymkJanqn6ujH16oJl6o5N4gXSWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akG2nmV2ofni7a36qW46EXbRnXG5xenhraVtxanh5Y2BmWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eJY5SbrLqysKydppycqJ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqSdipSPhYudkZyciY+oo6CZi5GKgIBpgYd4f5aLe4iOjoiPlpp/lKOfoKKTmHJon4qfj4xxkoyBqYiZn6Onn6d8sK2joriXd6OzoqSAiJR5nXurmn+ijp2bl4mXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2afnSqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WBnW5yfZRvmXNqpF2VdkhlY2BzcX5+bmVgbGh2fGRlYlJeV11UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGloa2mTnYGxrZmEVF+gp7O5s7OpmqKMnKucnKmUoaukoaiPn56dmpmVmKCdloiHiXeFgW55lYWQm4t8kZOWiHKAiZOhnHORkIGImJSfmoSOqZyalIqLinyDbISFcYGgi3iFjYiHkpmVfJOjoZ+jiK6GfbWEjp6de6WWeqmBlp2QiqCcfKdodm1+mXShc3F8noaZcJODrn2kg6aemoGjb16oZ3WjY2+lYZzTkHx6mXhyc2OihZB+o3Ojj3VrkLOLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8hJtveHqXa5t7d5dybamkZ2BleXCAhGtnZmRtdXhnYGNUW2ZRUWJJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5uAsatUXEt+qa+xtLCzo5yZhZmooKCjjaSooJipipmYmJOZk5KgmI6IhntwfYRofY+DlJqBd5GNjolvf4aQk5Jsl5R9iJGRo5WDjqqalJKLhYl5g3aHgG6Cn4Z4gJOGiJmil3qToqSaoImzoaK2i3qsp6SupXCpgJqPhoGcknykgKKZhphynoSjra6Kl4yAjKSNloOuopV2tbW1yaFzlIqBn2Cdl6lteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7abO1tMamc5h+e51qm5urdYOabHR3l2maenWYclBEfbNeanZreYdmamdidHRxblZeVFloT1FoSVVMWVNVXWhrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbF5oW2tpUmpoaWxnbGdjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcibCnhGY/lKGyq6+vtqKikICXqaKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiIyBaYSFkoOMhZ2NeoyKlaWSg5epl4yRi4GJeoB9i3hwkKGHeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3m5hwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9maKViG1yaatqdaBtbqZgm2mLkGiWh5qVdaKAfZpgi4WMdG+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9lp1SLXVSYbW1za3KCbHBoa3hza29SWFdWZllSbUlYT11JWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXJiZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6udnqWMoqGaoqKAlpiTjZqPi5iQjop7h3GAiGiLi3yYm3N0in2QfGSCh5WKipWZgnyIhpankIGirJCFkIqCin2AgI9zaI+mhH2GlI2JmKCOiJKqp52JpniWnH6liZaMspiekIKvl5+leJWIeql0pY+Emm6kooyShIyDu259pa+ChoaHk5acn3ylenGolaCWZ55+b6tjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnRwfHRxYmp+bmhtU1ZbVWFhXGtNXVJdSV1tbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNtc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeupJmJg5irmp6kiZqlnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aUj3x7gYWXpY1/paaOgY6JhZV2goeSb2yLqYGDjJSOiZyfiY2Tq6OgkIB1lJeIfoF5lK6jf4GbcY+FeZCLhH97cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2JbIyFW3l4cXlwaG5+kolxf3SCj5STcYWDgmWNf1+Bf4t3dXOUdW95bm6HbYSGXndpeI1mgYKGjqmbfnR8l2qJiG+Adn2Gdm1sZ4xzeXuYeIRba1h5j2hud3Jxb3h4b11shm5pZ1ZaYFdcZWtjVmFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHltaGxvYY6Uuamni6GimqakmaScq6KhhISYrJKdoImappupmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOdHKDcJaFe32Si4aGkIV4fn+GmKONe6ehi4aQkIWWg4aOl3ZyhaqGjpKckIienoiMm6igoKuDiY6Umn5+iZatqI+Tpo93b52Rg3qSb36ohXB9lXFrcHyBn4x/k46MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5GBfX6Mal1qZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHGGj3pvZWdkeoN6lltcamdudlt7eHd1bnNzgmZcbYprbGJZWV5aWGxyXF9hWl5dZnR+e3VvdGNra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N5b2hqbWCLjKqxopCjoZqenpeemaijon6DmK2Nn5SHm6KRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+koSDhoqBeoCDi5ufj4KmoYd4jpiJlYuLnJeEg3qtgpGYmZSKnp2HiKGroKKio4uIk5uco5mWqqGnpqCSm4eWjnt4jo6Ep35/kpGSk5yxppuVnpCNspOYhKWMjJWbn4mQm4KJkYprfI12d2WChpCKe4mdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppCEhY2Ig42QjH2Ii4mQgXZsgoR8eZlqcmhhdIpwfXp3dm92dIFdXm+GaG5fXlpcXVNoclZjXFxhbGh1fHxzb3Bka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fXqDeU5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWl5enFnaWtljIidup+WoqGYlZmYlJmkoJ57f5qrjp6NhZ+di56WfXmUg3uOmYmGhISGbniAgHKBiH6JlIRta356l4aEg5B/gIaEhnyHg42bnZKHqp+DcoqQhpOSjJ2RfY17qoSNkpiWj5yXhoabp6Cimp2Gg5GamZmQmqagpp2dkJaAkIp2fIeOhKV7fI6QkYaYqqGek52QjquOkYCejImTmp6Cjpd+ho2Cb3iFcXRgf4KPhnWLl4CDj4KGhH6Fg5RueHV0kqGLjIWahYSNdICJfHxycnuIhHt5i46Ek6ePhoSPgoSKiop3hoiJi3xva36Ae25obG1nXnp/aHx7dnR2dXt3XGBwfW51YGNaXV5RZ21TZVteYWtpdnp+cWxsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZxgo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW1sVGNxeWVwenpyZWltbYuKn7eaoaOfkpGWl4uan5+ee3ieppCbioaklIuYmXl6jYV8iZGDjIKBgm18f3hzgYV9i5F9a2h9gZeIgYiOfH6GhId8j4CPm5uRiKedf3CLi4yTh6GhioWNfKiRiJCSl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbfo2EeH+Dj4eggH2MjI98mKSgoZOZkJCnjY+Bm5GJkpebfZKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36Ii3KBhnx9cHh7i4R6epGNg5amk4uGkXyGhoeFdoKEiYh6ZXJ7f3l6cWxqZl5+c2h8dXZ0fHOAal5gdHZweGRjWV9eU2toVGRZX2FoanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4yBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqWlnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJf4mCgH9xf3t0doOFfoqReGdjfYaXioKKjXh9gIyDeZaAlZeWjZagm35vjIKRlIamm4iNiYSmlYWTi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmJKUm3mPhYJ3hJeNnX6BiY2Mc5einqKTmY6PooyMg5eYg5KWmX6YjXyIjYF2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3yHkpeNfZN4i4l7f4Z8e3F+d4mFeYSQiouYopWBhI13iISDgnd8gomGdl94d310fnhnbGRhf2lqd3N0dX1xfGJjYXNudXNtYVphXltrZFJiWGBhaWt2eYZxY2pjbWVofINsaHRobG9of3yCeW2QhnGAg4N/dHyDjIF/fnqCg358kG12iXR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrZemqJ6NjZeHhp+Tl5h9eKqcipl6l5yLjJiQeXuBi318g3uAgoB4dHh6c32AhH+Ji4BkXn2LlYd/hYd0fX6Kf32XhJeTloyjoZh/cod7k5KKp4+MjoqToZKEkpCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJiNlZZzjY6Ka4WYj5l6h4iQiW+XnZqjk5WKjZ+Mh4KSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3iHfnV4gH2GgHyDjIWNlKSQeYWCdImHfYB0doGIhG5ge3V6cX1vYW9jZHtibm92c3h3c3Rhdl9vbHVub1xcX15eal5PXVhjYWhtdHuIa19qZWpjaHeHbWZsaGlsaIB8endvkIdzgYOEfXOBhol6gn16gYR9fY5yeot4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXeumIyXfp6TkZaUiHd+e4p9e4B2eH+AcHRze2+GfYGAin98YVx+j5GGf4OEc3qAhnqPkYeSkZuSpZuVgn6BfI6LkqSJjoqNmJuNhpGYk5aOiYmMk52TkIyNboOQj5GJnpmioZeWipeRboiZhGaGmY6TeomFkIpwlpqUopKSiYuajIJ/kZ58ko+Si5mOe4qEh3RzdWtxbnR7i3RuhZCOknF0gHuBgoh8ZHFseX2ZlH2EiHSQi4BziHlvgH2AhnyFjIiFjZWojXuIfX6LhXh+cXCAhYNjaHh0dXB8Yl5wYGt0XnFqenh4a3NwZXhdbWxzbXNZWl5gYmpaUFdYZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1gomFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKGmm4eMioGQnIaTnHWBqpSSjoegjJaTkIB0fHaFd3h/cnN7hWtyb3puinaAgYducVtZfpGNiH+AgHZ1gIB/oIaQipKcl6GUmHiKf4GNiZ2eio+GkpiWhYmVmY+WjIuNjo2dio6Qg22IipCRiZyWoZuYlYaYiGmEo4JmhZ2KkX6Lg4uBd5OYkp+SkYmJlY5/fpCXfJGNj42akn2Kf4JudnBsbW9we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF5doh0cIl7hYx6i4aDiY+co4h8hHeCi394eG9rgYOBXXJzcXBweFpecGBwal5vaXx6cG1tamx2YHBvanJtWlhhYWJuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhXuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2fp5aFjYN/l5SDkJ91i5+Uk4aLm4yVjYt6cnh0gnByhXRxdYhsb2x1bYh3g36AbW5VUYGrlIeCeIB2coJ5gaCCkYGTkpickpp4knuDjZOkmpOOiZWZk4WHl5mMlIyJj4+InoWQinxyioWJjoicmp+blpSAlH9ohZyHZ4agiJKEkYOJcYORl4+bjpCNjJCNeHuSkHqOi4yRlox8iHyAa3ZqbmtrbHp/YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHaMeomMe4l9goyRn52FfXx4gox9d3FqbIGCeV93b21scnNWXm9icmBfbG55cGdwZmZzdGhxa2F3ZV1WZmFgclNQTlxmZV15cIh8X11ocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoB4iINzhoV+jIyEe3mVd2ZyaoNgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWOgop/g5qIgIyef4uak4+EiJiOjo+EdnR2c4Bwb4VzcHGDcGtpdm6Dbn18bXVzUk6C38iS1pN8b3SEdoOggpN3lZGZm5Cae5RzhZCfoZOTkIqTm5SGfpaViI2NiJGNiZyAjoF4eox+iIyKnJydm5WTeY12Z4iRh2yIo4SSh5eDhmOMkZmOlYqXjI2Ki3F7lIh7joiKkpGJeYV7fmx7ZXJva2t5eVyAeY+OgHp9fn+Gjnp5aHNrc4uPiYKFhX2VjGt+fm6Ai36Lh32EeoGPlpqain13eIOQeXNtZ3CAhG1qdG9oanRuU15vZHBZX2tyeGZramJmeHJwcGNfeGBgVmtfXnZPTkxgZ2NdeXGJdFxcZXZgYWVlj2RgZmFYaXNzbmtxdox8dHmGgnV2fotzf4Z/e4l+comHgZGKiHx+mHZlc218ZYh+b3BsgFpsbnl5c2F2enuNdnN3ind5n4ubrpugkIKFd4iVfn2KnYeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhxfW16fWpobGOkmsHcru+hc2t1hHaFooWSb5aQlaCUnIGScYaLo5eJjpWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZybmJmPj3aKdm6GiIt9iqOEkYmdhYVei5SXio+JjouLhIptfJaBfYiFiZCPhnaFfX1rfWR4dWpueHNYiHqSh4V6fn+AhYt+eGVzan+JjomCgoCMloVrgXZuiJCCj4R/gnp/kJaTmZB1dHiIjXVzcWd1eoNidG1vYml2Z1JgcWdsVV9udHlhcmNfaH1wcm5bY3JhYlduWlx3TU1MZGdhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rcnaMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWh4x+fphzaHVxeW2Lem50cIFYcXp2eXFld3mGjGl3gIlyf5yHmaeco5KEfHCMlHh5i52EhaGNjnuVjX+ZiIR7cndwc2pvgWtpbHx0XmB4d3txdXtnYWV869q1ycPciHNsc4F3ipqIjWmYj4+dlZOBiXGFiaCNhIuVioyYlHyNk4iDiY97kYuGkIJ/dniDg3KHgpOblpSYhox2h39whIGJh5mhg5SMnoOJYYOVj4eJhoqNh4GHaX2Uf32DhImOjYJxhn5/cXdodnJpc3dsWox8koKFfH+DgISKgnVhdGyIgY+Kgn5/kpB9bYJseIaPhpGDfYF9gJKTkJeJb3J6jYZ1bHFscniBX3NpblxrdmBSZHJpZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVZbdUxKTGVnXmJyc4VpW1xleV5eZGd7YGRfXFlrbmVvanN3in5zc4F+enZ6iHOFgnyAh3Z3ioaOmIGMgXuTdmx2dXl4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqVhZmhm6KKhnNvkotyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt7cXGAaWFnYX/Vto6QpnhucXd7cJKQjIdqmY6InJKMhXtpiIuah4GSkYaHmI18jY2BgYmOfJCNfoqFenV7gnpwhoCWmY6TlIGIdYOGdoN/ipOdnoaVj59+iGGAk4eFiISKjoB/g2d9kYB+f4KMj5B+bYJ8gnRrbXZ0c3Z1a2KNgY9/hX58hH+Eh35wX3NxhXuPjIJ8fpGIenCDZnmDioaLg3yEfoCUj5GThG5weox/dW5va2x6fWJoamlYbXZaUmlyamJRYnJ4bGJlXVlqg21zYlxnX2RsX25UW29OSE9nZVxnbnGAbFtcY3NgXGNsd2RlXV1abGxibWpzdod/cW9/fHx0eIZ4hYJ9gId1eYmBkpZ8iIZ2iYFvd3l7hJNwbXyBd16Df3SBbWl7c5RzZ3OHfHKRkYOan5ughod2dpR+bXaUl36IkYOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3h8em1xf2VkaGhXnY9ecXKWvMODdXGUiZB+cpeMhpyTjIhza4mPloF7lIuBhJuMfIuGfXyJjH+UiHWJhXZ3fYFxdYaBnpSGlY+DgnJ/iHWEe4mYnJeGk46dgIhlfZOCgIaEiYlygX1nfYt7eX9/h4uOfGmAfIN2Zm94eHN2c2xqjYWKgYp/eIGAhIN/a15yeHp9jImFe4GPgH5ygWl4goeLhYR4g3yBl42QjH1ubXuJfXd1b2hofXZkXHBiV3BzU1Nuc2lhTmZ0eGZgXVxYboBvc1llYl1qbWBwT1lrUURTZ2Faa25te29aW15tY1pib3djZlxdYGxqY21qc3aCg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRsk4yGn5igmYWIbn2Mdmp4mI9/goqDlZeJeY6Wb3pzcGxqZGB0emhgZXF6WmFyfXlncHphZWWPsbJ3SmJapNnQlnF7kIuQeH2Vi4WZkY2Gb2yGkpJ6eZKGgYSYinyHf3h4iYqEloBwjIhxdH16aXmFg6WRhJONg39vfoN2g3eFm5iTipKQlIWHcHuSg32Dg4mDb4F4aICFeHJ/f4OKhntlfX6EdWRwc4BoeHBvdZiMhYKKe3Z4gIR5gWtccX1ygIeFiX2GiXqIcoFucYOGjoSEc4R4gJmNjYR4bm9/hH93e2Voan1xYFl3Wlhxbk5XcnNnYEtsdnRhXVtbWXR9cm9XZ11manFfb05XaFE/WWZfWnBrZ3lxW1tYa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVwgXqAgX+Cf3aBhYmXinGCjXF7hnx5eYOTjHVqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnZGChmeHg29oepaKfoCFgpmKgXyNjGl4cmtsZl9hb3ltX2JveVxka4J6YXF2X2Vm1Oq+ijI6PouOgHJ5hYiOjXaDl41+k46Nf25shY2Mdn2Pf4WClYl8g3hudoeEg5d3b4mFbHV7dGZ5goOnjIOPi4R9bn90doN5hpyQi5CRkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN3YXmEgXFkcWh+bXRxdYGbi4B/hX5ydX2AcoBvW21+dHiKgot7hn98iHh6cWyIg4+DinKBeX+Wi4t/dG5rd4CAdXVcaWl3cFlXfFNacWVMW3JyZVtKcHdvXFtaWV10fnVoWWJbZ2ZuY2lMV2ZRPV5mXF11ZV90cFtZVW9kWWRxeVpoXl9nbWdqa2lwd32ObGmChH55boB7fIB/gnp1goGMk4VwgItueH6AenuIkol/aHt+a3R7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjXt+f4OUgn99iohrdXFnaGNbYmdyb2BhbHRhaHCJeWJzdF5jZJugj25cNVmvtXVqgIl9koZ2hpeGdI+LindwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3GGfmh2eW1leYiEpYeAh42Jfm5+dX+AfYyZh4KTkJiIi4SJfI+IcXt9hHxpfm1rgHt6anp2gYeBcmB3gX5xZHJndYJtdHuFlJGBfIF/bnd5fHR+bFhvf3Z0i4GGd4d1gYl6eHNuiYCOgIVyfn1+k4mJem5uam6CgnVuXWdmc3FRW3tOXHFcT1xycGRWS3N4aldZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFcdG1YWFN0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBf4J6d4CAiYuEcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiZJ5fXuCkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaUgnSQjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHZmd3ZjanyDiJ6Cf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHqJiWx4eX91aHtpa395c2l6doCCfWhgd4d9amt0aHt/aXaBjJCUfnp+fnB7dntzfmJWd31yc4qEgnyCcIaJd3hwcIOCjH59eX58dY6Gg3ZpcWltiIJycF1oY3NuSmV1TF5vVlRZc25iUU9zeGFSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdoVVdWd15cZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354goGCfHZ9g4iGg3B2g3Jud4KCfomLk39wgHx4eXqBjHWDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/fImGhHaPgGdvbl9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI9mcYNvZ3ZuW219gJCTgIB4kpJ9eHtth3WAkIuDc5aKkY6HhYV7gIVtdXZ/bmh3ZW17dm1qdnd/f3xgYniGemh0dWN+emd0hY6MlXt0f3VxgHp8bH9ZVnR9b3SEh3+AeGuIhnN4a3V/g4N9en14e3KLgX1zZ3RlbouEbXRbal91ZEhubkxbYldXVnhtYlBTdHZYUFVYXmFxhG9cYGNtZWNebmJUXHJHQmZfXWZoXVp6Y1JWXHVbW2drYVZqX2BvZmZrcWhwdXiNdGuOjHV/dnh+d4GDgXt0foOIiINvcX90cXV+hYKJjYp7d394hHx8hYd4h3x9gX6EgHt+c3Z5jI6fjYl6iXZ0g3lefYWZjHmHg3SFhoV3iXtibmxbYltbYVZqc2NgXGdub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHJ8hIp+e5KFenl0eXV1e2psdWOEdZGCd3BnXn2CeouJZXKCa2pxY1hse4aciIKBc5eUd357bodxgYqLh3GWjpCIhYuDe3l+cXFvfmdocmJueHFqa3F3fHx5XGV5gHdpdXhmgnZndIeLjZR8coZpb36AeG18XVhxfmxzgIt8gW5uiX9xdmh3f4F/gXZ8cXp0h3x6cmZzYW6MgmxzWGtfd1tJbmtNVlVeVFV7a2FPVHVyUVFUVl5idIVoXGBsamZjWW5hWGJwR0FoXWBmX11Ve15PVmRwWltqaF1XZ19ecmZrZ3JncHJ2hXhulYp0f3p4fnmCh4B1c4CGhY6CcHB7eHZ0eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5KTn3+MfIttdoB5Y4OHl4ZzkopvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJmgXNia2VXW2Bpf3e+rnugt21ic4ZodHxyeoOGen2Mf3h4c3Zve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iKpIGFf3GZk3GAeHWBbYCCkYdylIiMh4OIhX15dHJvaHpham1gbXZrZ2preXd6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3RsdGJcb3tqdHuLe4FldIZ9bXFndX54fX9yfGx6eoF6eHBmbGJuin5tblZrYHdVSmprT1JPaE5ZfGhiTlV2akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1piZFdZVXlaTldualldbGVcWmRiXnRmbWRxZ3JvdIB3cJmFdn9+d398hYd9dXOCiH+Ugm5zeHp5cnKFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOGaXd9fGyDhJOAco+CcYaCfoF/b2ZsZ1ddW1xbVGRwZV9YY3N1aXZwZWViV1xcaIBwb3KAdIllZXh+aXR2c3ODhHiBhHl3dHVua3twYWdrZ4Z0jYRuZl1ffXB7iX5pbXdmaWRVV3JwjaZ8hHx2lpBzfHN7eW17e5GEdph8h4aDhoN9dXBybGd1XW1oX2x1ZGdmaXpve3JZZ4F3dWdwgHeCdWJ3hYp8lIBui2pteoBwZXJlYG15ZnJ3int+YnWCdmlrcXR6cHl4cn1mfn9/eXduY2ViboZ8bWtWamJwU0tpa09MT3BHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2FVVFVzV0xZdWRaX2thXFtjZF93Zm1icGlzbnF+dHSZgXd/gHd/foaFen11goR+l4VucnR7enRwhIWPgYB6i3V0kYB9gZSOgIWEfX6Mhnt+gHZ7o6WKeYiFhGx1fHt1g4KMem6Fc3qEfYGDdW5qaGVWXVtaWlNibmVbWGJze2pobWlfYldfWmmAamtvgGhsYWh5eGt0dHRuhYF7f312dW16aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+ndoF6fJCOeXVvfm9ydXiOf3eUdIWCf4WIdmpydmdob1xtZV5tc19nYWl4aHttW22CcnNpb4B+eXdhd4SEeI+Ec4hxb3l/cWJwaFxvd2Rxc4h8eGJzgHBnanhzcmt3dnR3Y4N7f3d2b2RjY258fWtsVWliZlNLbWhPR1JsRWF4ZmFNU3JdSU1UWWVrd3plXm1waWRcVl9Vbm5XS1RoWGZeWE1VbFRKXHlfW19rXV1aYmVgemhsYW9vdW5vd3V6mH13gIF6gH+Hhnp5eoN+gZOEcXR0fnp2dIWIkH2AfZBsc5WBfIOfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnW1pedYFpXm1sXGFWXFxrgWZydH1qal1rdnZndHdxbYV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZaGSQp25+eICLjnpwcHxmeG55i3t2jnGEfX5/hm5kdnNkaGhda2Jdb29bZ19sdWV6aF10gG9ya3F7fXV1YnSFinqHhoB/d3J1fnRhcGxZcXRicXKFfHRkcn9sYWx6b2poeXd0cWaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdXYkdidmZhS1RvV0pMWFhnbHZ6ZGVucGZjWlddWHZlVEpcY1hoWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb252g5h5coGAfX+Ii4Z9dXaGeIeMfXN1dYJ4enqCjI59foSJanSXgXuLnX1+hXqBen58hohzcY+ujHt7hpB+ZnKIenR8fHZyb4Zse35sj3picG9hZV1lVllZVmNma2BdXHOFaVlwblpeV1pcbHtjcHd2bGJbbXN0Z3V1cG2EeH6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXmJjkKVoeXSChZB4bW55Z3dte4R6dYhygHh8eH9oZXZtYGZhX2pgXXRrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenZvcn1yYXdkW29wYnBxgnxzZnGAZF5udmljZnl6dG1ugXV0fXNxYl5mbm99ZGpTaFhZVE13X1FKWllIYnRjYUlUbVNJTFpXaWxye2JsbHNiYVlaW2F2W1NLZF1YaVNXSFlgTkdpdVheYW1bW19iYl2FaGhhbnh5bG5qdoGQeW6DfoCBkoiEgXZ0iXSMhnNxd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX1/dIiDc3CZont6f4mVeWR1iHlzeHVsdG9+bHl8cJFyXnBuYGdibFRbWldoY21mXFxxiGVTcm5bWlhYYG13ZGl1ampeWm1zcW10c3RqhXx+f3x3bm5sZGlxY1tqcmR0do9zW1dTZGFygH9ygl1iY11TWmBbY5OfZXJxhYSRdGxqeWxvb3p7enGAdn5yenp6ZGZ2Z15iWmFnXF53aFdiXm9oYXdhW3t2amlybndzc3RocIGUgoZ+hHZzanB8bGZ2V1xrbWJwc4F6c2Zvfltgb3FiX2lwfGxrc35ycXhrcGBbZWxtemFnU2dVV1JQdltSUFpSSGNzYmBHVWpQSE9aVmtsa3xlbW9xYFtaWFlscFdSUGZXV2lTVEZaXE9IcnVYX2NtY1hhYGFdi2pjZG15eGtuaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdWhidGVlXVpudW5xdXV6a4d8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFtgWWOWlWNucIOFinNqaHpuZXJ2c3tsenR1b3p+dV9mcmNbXldiZFlhdWVVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4VxcmZufG9xblNbZmpmcXSBdnNibHZVYnFqW19uZXxlbHV8cnJzam1gWWRqandeZlRkVVZQVG1XUVdUUEhlcl9hRldpTkhYVFZuaWR8aWt3a2FXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bYOAfoaXe3+IgYp/a5OIcmd0gHt1gIN9iY9/i5NyfYqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3d4bnqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5pbWBUVlNvZ3RsZXhkZV1ZcHRtcnp4c22Ie4B2nHt6a2FlbG1eYG9qZXB5fmdaVlhga3h8e3CEX2JeZ1ZZYFdknIhia3GBh313a2p3bFt2cWt5aXVybW97gHJYam5fWV1WYmNYZXFjU15haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFmcHxscWxjWWBoaW90gXNyXmlsUmVxZFRibmF5YnB2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZW9dY0dZaU1JX0tYbWRgeGhufWRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc21odnR6g3OCg3qIjX58ioeOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfIyEc3+Bc3R4cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6MjI2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8vLy8vLICkoKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMfHR0dHRwYfqmkpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eIh4eGiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhIOMkI+Pj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkIqPi4qQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj42MjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIaFiYmFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNhoaHhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eMjYmEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIqGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2IiomKjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fn5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSkpKSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f35+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDioqHh4mGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXJwcWtscnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWVqZmhlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5cXV5iaWBdXlpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFBcV15sV1VSUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUGBXXXJVT09PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktMY1RbdFZLUE1MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0dmVFV1U0pQTElJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+Af4CAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PjxFRD0/SmNbVXBLREZIR0ZHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT5VZGJeZ09BRUVGREZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz48SGJtaGZsYEZDP0xDQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nz09ODlVbHJranBrTjVKWD5AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3VzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DQE9CPFhucW5sc3FbQ2NVPT9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW0/UllKUmtva2dycmZfakg7PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ+PDw9QD04OjtudkdBYl1caW5oY3Fua2xmPjk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFpRPDw9S05ISHZ2TThXamhrbmpvcW5tbFY6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lIPF+Ag4B6e3dWO0Ngc3Ryb3Vxbm9gQT89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQEhyeWtlg4SDg4OAfV0+P0doeHVyc3BtbEw+RUJCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV0d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90foKCgYR+fYR1TEJDQ09sd3h7enFfRUVJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVFQ2SCh4eIhV5GSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4CAeICEhYOEiW1BQVd1hYiHh4eJgldITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VthoiGh4aHiImIfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlaBhISEgoKGhoaEgoaFhYWGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNS0dJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZoWEhIR/gYODgoOEhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphoSEgX6Bg4ODgoOEhomKi4uLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgYODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9coSAgYOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjk4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7PD06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoOCgoSFhIWEhomJiIiGhoaHiImKi4yLioqLiotePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHZ3enl6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZYhYKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX19fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSlmFgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTU9NS05LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LR0dHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo/QT5AQENGSUpRYIKDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSERKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9AREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NDRlZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyPi4uLZ1ZVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJUUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lJWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKf2ZZWVxZU1VUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltTU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU1LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7enp7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVFIR09GREVGSEdIQkNIR0hLR0RBQURAT1BNU2RzdHV1c3R1enx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh6fHt9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSUpQUU5LTFFSUVRWVFdSUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTkhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ4enx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFHSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODc5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGFfXllVUE1PTkxJSEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOTElIQz9BOTk4ODk3ODg1NzU3ODU5OUducnR4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUVBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3BxdHd5ent8fX59fXx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1FQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHJ2d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdXd6e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0hGRkVEPEFBPjtARTs8ODlUcXJ0eXt7e318fHt5fHp6fn58e3V0dnJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUBAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkU/QkM+PEJGP0I/QWRxdXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QUBAPkFESUVDSEhJR0lFQkI/Pj1DQkFISkVNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQUFERUdLRkNJSUdHSENDP0I/P0BBPkRFQ0tOUVRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJCQ0hGSkxKRElJRkdHQ0M7QUBCPkBAQ0RDSU1QR0lLR0hLREhJS01ISkxISUpMS01dUklIRE1HQURLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+QEREQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSkhFTklCRk1MT01PTU5OTUtISEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam5la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkNFRkVCQ0JFQERCPkA+Ojs7PTo9PkNBPkFDRUdKRklIS0hHR0dGRUNAPUVFQj5CQ0NDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JAQkQ8QkE+QT06Oj0/Oz4+QEI+QEJER0tGSUZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRURDSUhIS0pHS1JNQ05PTVFPT09OT09LS0tPVVdWVVRYYF5caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkBERTxBQUBDPDg5PT45Pzw/QkBAQERGSEVIRkZHRkVFRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSUpLTUtPU05EUVJQUVJOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZEREdFREVDREVGR0pFRUlHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1PT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaGhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3VucHJzeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI9Pz5BQkZDRUJDSUVDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTlBSVVZPS1VWVFFUUVJMT1FQT1RZWlpcWllbXl9eYGJeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0NEQDo8PkA/Pj9CQjxAPkFBRkNFRERJRUZFR0VISEZIR0lLSUZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkZFRkhGSUZGRElJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpOTE5OTlBLT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmRlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXVlcXNrcHFqcnZvd0pNTExNR0REQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDR0hIR0ZKR0NHSUdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiaG1nYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MTExHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0NJRkNISkpJSUtHRUtKR0hKSUlLSEpKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aGpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0NCRUVFRkJGRkhDREpFRUpNTUtMTEdHTUlHSUtIS0tJS0pOTE1NTExJTExMW3NiZHBebG1VTU5mc11mZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRURAQkI/PkNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1OS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj1AQEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVEQ0FCPEJBQkdER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm5vb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+Q0RCR0NISU1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySEhGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISUdLS0xLRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZWl1YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIREVHRkZBRUM/Q0hERkdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSExKSEZIR0pHSElFRkxJSktOTElPXFdeUFxbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFIRkpJS0xJTEpIRkVKR0RGR0VGSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUtKSUlERktLS0ZGSUpOSk5MSExOSEhGPkdHTElLS0pMS0lHRUlEQ0NFQUZKREBKTEpPW2NZX15hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtHQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERLS05NTExISkpISkc/R0ZOS0tLTUtLS0lHR0NEQERBSElCP0lKSE9dYVpbZF1fVFFTWF1cXFxfWktXXExSXFlJTV5QT1xfYWNkY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkZHSUdHSUZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTEtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmFgYmJgY2JhZGRiWE9RUVJbU1tdXV1dX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlIREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYWJXX19UUE5QUVhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRkpJSktOTEtLTUxKSkdFSk1RUU5OT01OTE5IS0FEQUNERkRDQUVGQk1IQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkV09TVFBQT05QVVRbWFlaXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRU1bSV9cc21PTVZtWUxDUGBVbFdnSl1XVV5ETVFVTE1UVlFTVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISDg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0ZgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5wYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlFWTEtPSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUU9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1FUUFBQUUtIZnhsY3hybVpLTVV5cHVtdWJudlBkZUlmdnFtd2+AamZ4eGlYc1Jpe21panp6fmx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b19fX2NiWl5jZGZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXT1VQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSkxNS0xRUVFQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9ISktISUlIUlBMTk9MS1NTU09TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFPSklRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZ2VlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhQSktMT09MTVRQTlNRUU1YWFVUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BMTlVUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZUlVSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWV5cXl1cXWBhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWFZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUU9RWFRSUU9NT1NWTldSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlZWWVRYV1RTUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhoZWRhWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUVVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VVlZbW1dRVFdWV1hWVFhaVFNSWldWXF5aX19gVWFcYWFdYGJfXGBdY2FjZ2lkZWBZY2BhX19lZV9gY1taXFtcWVpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFFPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRUWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUUlJdWFpdXlxgYWBXYltjYl5hY19cYmFiX2RnamRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlJXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtRV1ZbWVpTT1NSVlZVU09WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVldXXltYUVRVWVlZVVdZW1RTVl5ZXV1gXWJjX1lgW2ViX2RkXl5jY2FdZWdqZGZeXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlRVVlZTVFReXmBeXmJcYVVdXmJreXRsfWxaVVpVUVFTXFRVVFZUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlVaXlxeYGFfZGRdXl1dZWFiZmReXmRjYFxnZWhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRYWFhdXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWVpYVl1eX15jYmFlZVxiXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVVdVV1taWVxZWFlgV1BVXltgYVxUVVhQVVdVU1ZWUlNVVlpaXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVldWVlZTVlRYXFxeYGBdYV1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWVtcWVdZXmBiYWRhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdWWFlZV1ZXVlxdXmBhYF9iXllhXV1eWV1dWVhWV1tcYF9dX1paXl1eXmFcW1taW19hXmJkY2VmZWZiWmRmZ2lnY19jXmFmZVppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcWFtdYGJhY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVteX2FjYmFhXWJbYmRiYGNjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFYV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXl1hYV9dW2BhYmViX11UXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOBg4OCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjY2NjY2NkEYoKysrKiVjkoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIyPkJCQkJCUOxYbGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5eXl7eG5vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX12c3Nzc3NzeX19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt5e3p5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enx9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fH1+ent9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fXx8fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3x5eXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6f3t8fHx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3t6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYKBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJyc3KDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN1c3N0dnN0c3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3d3Z6f3x+fnx2dnd3dnV4enh4eHh3d3d2eH2DeoaIeXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eHh5eXl4enp6enp6e3t7fH1+fHt7ent8e5J/jJJ5e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fn18moWQmn9+fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgIB/foCCgYGih5OfhYB/f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6AgICAg6aJlqKHfn9+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+f4B/f3+EqIyUo4l+gIB+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIqKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYGBgoKBf4WpkZCiiX6BgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKFhYODlqujoaCHgYKCgoOCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIOEgY2sqauwpZKHh4aJiIeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSEgYKCm6idpaqgoIuGiZOLiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChIuKhIWknZSgopehlYORmIaFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCh5eSg5mXjpyfl56ZkZ2SgIGAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2Dk6mYlJaQoKaXmJ6hnIt/gH9/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKl4iHnqupn5qhq5aZn52Zh4KBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWGhISDg4OChI6Zi4SPoKKgnJ+jmZydnJOEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyPgYeRkpOWnJmbnJqTg4KDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXyCl4uBg4ONkJOXl5yfmYmBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfi35/gH2Hi36EhIOEgomOko6JjpyUg4OCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKgIuFfYaJgX+GhYWFhoeDfn59g4eEhIODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WDgoF/foKHhoSBf3+AgICAgISEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf39+foWCgICAgICAgH+BgYSFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoaGhoaGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhYV/f35/gH+AgICAgICAgIGAf4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGNiIGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHh4iHh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSDgoOEgoOEhIKBgYGBgYODhIODkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH5+fn59fH19fHl8g4aHh4SDgoODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gn9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgoOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYOChIKBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn+AgIGAfn19fX19fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIGAf4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9+f39+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH9/f39+fn5+foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4OCg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4GCgoF/gYCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOFhIODhIOEhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkpGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCBgYGAf4uUj4yLjo6NiIeHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gn+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6BlJGMjI2OjoqFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4mGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx6e3p9f4CAg4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjYyLjYyKh4SEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39+f39+fYN8fH19fH99fX19e3x+fn9+fn5/fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7fH16fX5+f4CAg4eJiYmKiIqJhYiRjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn9+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f3+Af358enx9fX59fX5+jIZ9fX58e4OCfX19fH18fX19fH1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/g4OEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36CkISEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+fn1+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYSBfn6Af35+gH59fn6AgX+Bfn+Af39/gH99f39/f4CAfn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCgoKDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoKChIKBgYCAgoGAgIKCg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f35/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+gIF+f4CCgoCBg4KEhYaEgH59fHx8fHt5dnl5enl3eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fXd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOFh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fXh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAf3+AgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+f4B/f39/gH+AgICAgH+BgICBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fX6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn54d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l5e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGBgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGBgIGCgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh2eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYKAgoKCgoCCgYGBgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYCBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKBgIGAgICBgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODg4SDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYWEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIKBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhIWCh4aGhIWEhIWEhYSEhISDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg36Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f359foGAfn6BgoCAgYSHhoODhoSFhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0foB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgYF+fn99fXp9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeHhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIaHhoSEhYaEhX13hYSEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYODhYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/fHt8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+fnx9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIaGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoiFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fn59e3x+fX5+fX9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYWGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeGh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WFhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGh4eGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4eIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx9enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeDh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e319fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIGBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIWGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/e4B9fX+CfoCBfX6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4WGhoaGg4SDhYKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ+fX5/fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnx7enl6enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NXV1NTU1NTV1dXV1dXV1dTU1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dTU1NTV1dXV1dXV1djY19fX19jX19fX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR09PT09PT09PT1NTU1ce3ubm4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0+QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS9oKOjo6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLVvqKlpaSkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs8PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cCmqKipqampqampqamrnmJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLS0tHNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O09TQz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdHSuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A9Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTNwZSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWlsKagi5HDk31+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9mJuch5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZqYnZCfoNLTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0ZqgoayvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aeko7uemq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosvFlqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+4y5ucm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vkaqpq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xBPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cnz5KQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0NXLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tPS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkJWcmp2eqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2boqGVkJugpKOak42IiIuJkZGOko6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZufoaOjoJqeoJyUjZiUmKCgoaSem5qlp6Spq6+spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaijop2bm6ShpaijoJidmJ+hoqmnoKKirqyrqqetr6ilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaCemZmfoKamo6Kenpafm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+gqp6ZnJuqpKGkn6GbnJqcoJ6hn56eoKOZlpuYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuwqaiqqKGfoKeprbCyr6yjoqahqrKhpKKjq6KlpKKlo56doJ6fpaKinp+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7e1pLKxsJuip56io6ObnZyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbO4sp62tLl/naqkop+gl5Wal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20sKyTsbu5a4+4sqqmpp+YpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+s6mlh67Bt2F6vsCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrCvnoCtvLJeabbDuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K1u5R9qrWlXmGgvLuxoJuxr6ykrK60p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7y7vsS+xcjGxsTEw7i0wLe0vMHCucGHe7PFomFhhrm7tqybo7ewpqy0tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbJxb/DwMvNz8rGxMPDwcS+uL7Bw8G6fXy/1aZkYnKxs7Sqn6e0sq6ruLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhda29ueHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM7Pz8zDx8bIycjIycfFycfIx7/Fx8THsnR2vdekZWNmrrS3t8C+vrq9ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zoaml0bXhsXWRbVmBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDOx8zJwsLHwsvLyMbMys7FxsXDyKpscLLXn2NjXrXEwcjMxsTBxMfBvL60sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDxL+/vsTLyMrLyby8yMfJzcjDyMnJxcXDwsKjZWmf0ppgYV6+z8fLzsS3v7/AwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRiam1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjJw8XEwMPBwsHDwsPBnGRjh8eeW15jxM3FyNDBrr2+uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkZGpiZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7fAt7zK0sC7wMG8u8W9u8HExKNpZHi9o1tca8bFwMDJv7DBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB2YqywrvDtbrHt7a5u8CmdnJ3pp1oaYDGwL+7wb65xrzCwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F4cW1lZWZvaWVsaFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80cZ2oMy9x7e5uK63tb6xnYWEgpOVe3+ZxcC/vr28v8nCx8i+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLi7sr2+u8S2tbi1t8C+xLzCxNitcnu2yc/CwLivtb6/oI6EfYeEj4GEmbDCwr++vbzHxsvKxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsaW50bnhjZ2JcY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ur3HysnCyMnSlm9wqdLRzMrEtbvJr4h4cGV9eYVvc4CItcS+wbzAv7fKycXGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7x9LCub68xL63vMG/yM/GyMrKwIRwcqLNy8vNysbFwZVwYllPbHN7V1hocpm/wcC/xKikyMTDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2u7iu3MK+tr7Avr20npSiq6+/vqN2dHei0MnLyMHDw6Z4XE1GQV9vcElFWGF9qsW/wbKImcjDwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNncF1bXl1ZUkZEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8itbLHNvbW5wLykdmpnbGhvfJGUbnR5otHGyMG4v72HYkxCQTpUaGRFOk5YaJLDwLSQcp7Ivr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX2BZU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDQqXKDtL22tb+ehGhZX15LUVpaa29yfaPNvrq5tL20eFBAUWVAS1xZRzlHU1x7vLmccmmsvLXBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCy6CCdouisLORZmBlVVlfS0pNT1Nsc4Slx7uio624sIRFQHCWUUVSUUs6SlJVbKqhf2Rytq+yvLquu7Szpquorbq+uMvCv76sq7Cvs7u3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8Wihnl1jaKOW1JBWFRHYW1ZU0dJY42jqsPGmYSQo7ClQkd7ml9CUFFOOVNaUmGLf2lfibelrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLjCsI5/eIeOaE5JQWtXQk91hZlwTUNWfbC70a56doKhpkZIaHdYQlhYWzxWY1Jab2hgX6GznqSnp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLOSjIiDd1VFQFSJVkpKU3WLf2JAWam5ssfPkmdsg4RLRlNVSWSRn6mel3tRVl5cV3Kvp6GdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K6p5iZlmhMP2CAak5JSU1nmn9WR1mturGv0rpyW2FkUUVQcJWppZ6anJ6fgVRQU1OUr5+nlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGppr1hQlyjfU9aSUthS1uJZm1zjq+1qbzSl1VPT1BuorCnnI+VkY6XnqKOU0lcpaSdqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvFwMmWTkJ2nWtRcUxQYWd3cF9ga4GZsLCuxrpdPmCUpZ6YkoyPlJWXl5ufpotQcqCemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0E2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykxsaGV1JNZJ9ebn11eVdRa2NeamdseI60r7TCf4Shn52ZlJeZmI+NkJSQi42QgYqhnZejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1VMU0xBNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjj3lXc3VydGlfcm5YWV1eZGdZYl9orK6rsKijn6KglpCTm6CamJaRkp6boaWbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKJ+b3tpYGNXTVtSVUhKT1VQR1JTSpmsqqmkn5+ZkpGTmJiWlZSLh4qNlJ2cnZ2el56Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco5+ciF9WX2ZfVUxMRDo+PkJDPj5DU3ipramqpZ+en6KjnZ6dmpybk5KUk52dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqbOtqrO1r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkg5NTs+Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+fk3tgYGZeTkRFPEpFSDw/OjZOfqqzp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urS6urW7t7C1sqq6sq67t7+7uqq4rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cmXtyaV9UTEQ+S2CCc2VCPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8bHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVoZFtTSENAQE2Qp7Ccg6CyraOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnSzc7TzcXIysrBxsvHycjGv8Ozs8jEy8vLz8bKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYFJLSERDQEZYttK8sq+mnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dXX09fYztLKz9HMz9DN09C/yMfKxMzMzM7PxcbHtr/Kv9LNzM/Gyci/xMPIzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+ioVlJP0FDQUlTfLKtppmUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwcbDyMbOzdHR0snMzcDKzMbTz8zOyMTKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tnQzk9Pkdag6unn5eVl5manJ+dmJyckn1wZWNiX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDKwMjKzc7Qy9DOzszOz8jL0NDLzsrCycfJzMvM0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaSwektKRT9ajaGblZOXm56enpyTlpeUiGteXl5hZGJgYGBhYGBhXl9fXlxibXJvb3N0dnZ5pL7M1dHW1NPY1s7O1MvOzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDN08vGyM/MyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO5srK+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhZWGhWTEZMSVBRQjtDPjs2Nzo4Ojo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCuk3hydnuLlZqNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycnFyc3BtcnmkxtPPy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62jtnxmg4OnrJOOjZaPhYODg4F9hIR+c2BbXl5eYF5gY2RjX1xdXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvbzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHxMq3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWlxYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7VrX3l/ppCKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7wrqzvMXEwsK3v7W2vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q62kX2V0h5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2FhZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rrCxp6qtrKe4tLe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u0q7i9vcC9sbq2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy8DPysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC/urfJtqqwmFtocYyPhYiJenh+hoZ3d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWlxbXV9scG5oZmttbnJ8pMe/ubi1sKutp56jqqeeq62zraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbCyMq4xcfGv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysLJyr/AvMG6s7S1w66psJFcan6Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2FkY2JgX11aW1paXVpaWlpcZW5vaGZnaWtucYGtubC1rqalqKeaoKWhmpylrK6kqKKrqq2rsKSmn6qttbaxvbmvt6+orri0tLy4tLyvuLm1srzBssCupamjq7Gys6i9qquoq62ttLOmqK2hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLa8trGvtbutqKuTZWyIg4eLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhamlq6WgnKKllJ6lm5iRoaOqo6Ogpaanpq2gnZykpq2ysLa3p7CsqKq0q7S6sba2rra6sq+6urG2paCkoKaxp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKGxra2ssrSztLC1vLa7wcCyur7DwbK5ucOzwb2/tbi8vb+8wsfEw8O+wMSgg3hwbGJmX2tvYFVZXkhOZ09UR0VLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9OjY2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6VnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkmlxhoWGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Hnamgl5abopaco5mWjZ+ho6ecoKCkpaKnnpujm6CrsK2xtqOpqqqsrKS0ua23sKyzta6zta6wqp+en6SisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr7AvcPBu7u9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7yrubqxop6pq6eXnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcY2nnZSVlZuYm6KXlpGcoqKonpydpaeipZygoZuZrq6urrKgpqKuq6eitbGysqyor7OnurOmtqCin5yjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLG7trq9v7ezsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbm7rLK0rZ6apKmflJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZyTlZCVl5egl5mVl6CeoZ2WoKGppJ+fqZ2cmqunr7Crm6OkuKqhoK6otqqnp62xpLiwpLego5uZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7Gwr66vpqiosq2xtLC8tLm3rqOUgXl1ZF5hVllYU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW5ubCvsKmbmaGolJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGWk5aMkpSUm5mdlpacoJyflqCfp6akpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWxrqy0nqGdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJeep5ynoaKapKWlq6SlsKelo6urraaprq+uq6iqqbOmpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq6ynmJifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1VSVWBgX2BhX2FhY2VqgJSTipCOlJOUnZWWl6SZoJedoKWiraalpaOjopyqq6Wan6WxqqChnqWrnqiinq2sqamuraKiopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJScoaOdpKGilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6msnoxycW9gW1dWVlJHUU9IWltPUkpUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0tKqsppWam5yIgHKIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5fX19iZG2OkISRh4+Rj5qTlZOcm6Ocm6GpqauorKeppqSZpa+llZmlr6qgnJmboJ6vmZyrs6Clpp+jpKGVk5uWlpKpqq2anJ+hoJuUkIyZjoyRjJGNlpWQnaKgo52co5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbKrr5iFdHNoW1lZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NjU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WmqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfoyBi3+LkIqSjZeRl5mioJugq6qmr6yosKWpmp+toJWWpKmonZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Ostauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzu7OzoqOcnZeXlIN/d2tnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY2HkIqXiZSUmJuZnqmboKumpqyeqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkoeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqraSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKals6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbqvrZ+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cISIgoiAkYSPi5SRlJ6hj5uco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/iZifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU5STUhKSkRKTEZKSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaemp7OnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noaaSnaa2rKOfj5WWko9+eH5lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlscmx/hXx0TlhykIOXh46dl4uUkZ+YnZWUlpWPlomAk4pfO1dvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLkImdiJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbsKKZl4aUj4uHfXN1XVBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UUJAf5WSkn2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6GvoaeopaeosK2qtry2t7ezwbu2p7rIuLaoqLW2qrK8pp6VjX+Jk6iWlYp+joOCfXhwblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amlcVY+JlIl0f4eBfIWMk4KSmouPe4aPgHaAeHNvdnB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYqIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWfnZiMp6SToaCWnp+kgHJoYVxdSldQUkhKWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCyqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgY6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiZB9hJiSgXKHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6FknmIjouKdXF8bXVwam1qWEtGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeXB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQloBvam5vblhWWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456gIaMhXRvdGtxbGRsallORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaCiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk46PfHN9fHFwbnZtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ6cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdnYmpucm1wg3Vpb1h1cI6bkndsf3p9bXJucIB6c3ZuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXF5cWVhhX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goRslYiIe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRydHp8d4ptaGpieW+GkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGVnX1tbXlRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKm3RtfIGGh32OaGdoeH9uhYeChXGEhkdsgHdyeXZobWtfd32DiX+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3R0cmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09TUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt3lZKrs4iNl599lJ6cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dFPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ukuMaotsnHtb65tKijtK2xsZuZkpqfiaivq6WUdp+kl6GrsbOZlqqtqK62u7K6rK+1orGssbW8t7WutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVEpERUxVUUhJSkRJR0VBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYWHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lrqOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpLDGubGzsbSopLW2qrGgoZabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4v7e6t7msrLCmsaqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhV2plamVXW2RZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmjiZWTlpOUk42QlpKHhnuGgY2WioGEgYp6fIqHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urnJv7q9ycy7vMG8t7W7u7e9tLqxxmF1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0sLm3tsO6xb3DyLCeuaqiq46lqLaJgH9xX2JiXVdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g3+DeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlVS0RBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAub23xsC6uMrLure6tri5sre1tK62tplkdaicrXBeoa2cmKCim6SeqqWUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC+wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn95bF1gXFleYVljY1FcYFNQS0NCRUdFPEBFPkJIQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWlRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C5s7u+tbHEx7WwubCwu6uysaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnSx8zNwtDSuLDDvMS5pba6xKKCbmNcXF5YYVhZZVpRXVdPT0JCSEVCSTtBRD5BRz8/Qjc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjJubl4uOlZGajn2Ji4WOioqLkId8hIJwf4iBhnuHcoOSi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVRcbm52gnKXrbistKewtqusvMCxq7WmpLimq66hq7SjjrGumpiYjJGTkYSOm4GNp5KciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem5lXWJdV2BTXVtPUFRQTkg+QUZBQkU8QEI+RUQ+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn6AgYd5hHWFk5GJf292cmtzfHt3fHOBd3FrgHNyaG9xenlye77Lm36MsoN2coR2aGFqXUNaWltXZmRYZWtTWF1dYGReY3h7fouBmaqkpKGgoaimqrC4qqW0o6GtoaOtoqexn4mmmpSSkYmRjoiBlIlrlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvYmBfWFRaU1xQSkdJSUpAOzo7RUJEPEJEPkhCP0JDOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISUmYqNiIiLiX6CeHN7fYOHd396h5GWgINueHBtdX92eH50hXx5bYd2dG59doR1eXudtow8QYvGpX6NfGllVklDZmNlY2hqZG94W19maWtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ2gqaCisZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2bmRdWVJWUVpWRkdKSkVFPTo3OUBBQjpIREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioGHfHiFlpaIj4OHhYd6hHlxenuEhnV6hY6NnXqMcHxvb3p/cXyBcYOHgW6OenV3fXyCdX98h4iwdFmpwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ7i4eOlJKblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6yZi5qMkZGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjpSMhnubiJOPrqqUlZeemKeutb2prb3Gy8jJzMvPyMPRytTW2dfY19Tb19PZ29bP29rR1snUy5V5e2hoW1lQUlReSENFSUk+QT49Nzo9Pzs+SD0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR+g3x8hJeOh4t+hoaAd4J5bnt7h4F1epKejaB2j3WCdHWBfXSAhG+Bj4JvkoR0fIGFenaGe4m3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHZulJaUlY+YkIOKj5aal5emnJegl5+TkpejnZmrlpGQio2RgoyFiYiBhZCRnpyZiYWLgYaYeomJn5ePiI6Ki4J8oYmQi7yhmJOXmpyppqWun6i1vsDAucfJzc7FzcrR1tbV2dXX29TX2drb19va2djO3MaGenlnaGVgVFdWVU1LRE5EOzw9PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH5/fIV7foGRiYSFeoSIe3V9dG58fYZ+dH6SnZGeg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcaGknYyLkJKFiYuQkpWPnZqTlZGXjYyVn52UoZSSjo2Qi36Qjo6LhIiSlpqfn4mMlJKekYKLgKaZiISOg4aEgKWGiou4mJ2RlZaip6Gdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3a2lkV2BbVFBPSERMQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIe3x7i4eCfnWDhnlzenNtgX6FfXeFm6GbnZSSgIuIf5iHgJySboeohXqgi3yRjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibkJCOXIKikYKMn5OVjIeIjJKTjJSUlI+Mj4qIlpudj5WWkYuSlIaAi4iSjYmKnJaZo6OGkp2WoYuKiI6ckIOIj4CDh4WkhoyQs5idkpSXoaGemZKcnqexuKylvMLHzcfGz8zPzM7Xz9HUrtbV2NrY2trX1tnan298dGdnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKso2Ep5GEmZOFmYuilqCYk4mbnaGSqa+fkZSQjY2IlYtujbeFmsTIspyhpZucmJaRspFkpM3Hlo+Fh4mQko2Nk5SKhYqKhpaam4+QlJOGlZeEf4+LmYiNkKqXl6SjiJmelpuJj4eXl4qEj42Bf4ePpYmNk6mal5OWmaGZn5mTnZujs7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1go99fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6OqsqGWp5+lpJaVrqKDkLiVkrOZjaGgjKWbr6OknZiQp5anma2vpJeUlpSQi5iZlqDAjqTJuKuboqatmJGbnLKdhoWoopyYhYiJjpWNi5OPiIGGh4iTmJSMi5OThpSYhoSRkJx0kZmzlpeloYicmZOPipCLl5qJipaOhn2MmJ6JkJCcmpmTmJiglKCdlZ+bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLenpuhYZ6fIR4gIWBfnB4fH18b3KNen2Be3iGi4mGg5Knu62osr2vpa2zs6ijorCsipq0nqO4pJWtpJaprbempKOfmamYqaOvsKqamJyUlZGXn5eZu7utyaFptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkp2ZtJeWq56Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5yZnpShoJScnaWvqKGls7irwsjEtbq9u8XHyMLRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQjg/ODc0PkY8PDY8MzUzNDU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoyosq6uvKqbu6Sorbm4q6amoqGjo6ivsrGrnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGHkIyOnIiHj5eNi5WXlJGalp2nmrGakaydjpqPko6UkJCWl46RoJGJlZujrJSWj5ScnpSgnZuYoKGVmp6np6SipLCypsHHw6+wurbFxMK+zafHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6urXBu6upnLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSRj4mXn5eTmZWYpqCunYyqnI6Wj5KRlJWOkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJmepqSmp6SvraXAxMOuqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq+yMjKwdLJysLMvMGzrbu+p7q/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn6+epaKYo7S8qZuovMGjtravq5Kwrausl4aaqqalkYKMk6WViYB1ipJ5hY2SkJ6fk4+Ui5CNlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Es7u+wriswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvcjDx8XTzc7Ny7vBt6+6vbS8yrzDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtLOtrpaWpayooJGOkrHFp5WOfJGVfYeRmI6pmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Qj56IWpCWl5KWpZllmKOesqWWopasraunm5+ml5iXmZWhpKmmn7arqbq8xLWltLXLwbiptqyyuriuqLi6vbiDbG5aV1RVTkZKU05LP0JIRURIR0c5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxr3FxMbGzs7O0sq+u7Wxuru8vs62xL23ubeysrWzuLOsppyrq7iqqKevsJejrqSnpKS0wLCqrLS+wrnAubOnuLS4sq6Vpa2vrqWLk5WhjXTBmn6XmYWOlpmKsZWamZWSk5mZpqOVn5uWmqmdnKGgmouNkJadYEqWnJqVmqWWVJawn6+cn6WUr6+sppqhppSTmZmOnaCnopm0qaqzvLy7q7Cyx8C4paurrbGxo6GysrSkcW5mXFpOUEtEUFBQUTtHSklHSEJDPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xj56gmqOktci0qca6w8PHysjIzM3Gvrqzrrm4wMHNtsi6wbm2urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a3v8G/vriyssOxub2so661rLmmiJyYppt2v6CFmZ2Ok5mZiq6XoZybl5Wbn6GpnqigmZqqmqKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiqmKuupaSfpamTkpmciJWcop6Xsaapq7q2vrOyrb65tqCjp6ilp5ycrKmpjGNlYV9SS01HSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSejJOqm5GSk4mrjYeinoykrZSjo7bGvbTBusLCx8jFws3Iwr25sq+5tMDCyrXGscG8tLqrqK2ssKOimaq0uqappquqnaivp6Oqqr68p6y8s7e9xry3tbjAsb3As6m1t6u+pY+jl5Gin7yfiZqgmZaenY63n6mcpaObnKGaqKWzoZudppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clqmkoqG0tbu1rai1srOenKKlmpeVmaqhnndhXF9dSkhGR01RSU1FRkdCUkxJQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn5/DrJuXpJeZqZyWmpqPqpaWp6aVra2Zoau2xMK7vrfBwsDHxL7Nx7u9ubKvuLO/w8i1v6+8trm3pqOqrK2goJqqqsShpKirpp6rr6yiqai/uKatvbC3tse2tbm4v7G/wba0s7SvvqOXo5aTm5StoJGhoqWjo5+QvqWpnamsnZ2hm6afvaKZo5+iqauhnZaNlZ6TnoePhY2TnqSgnbWsppyVsqeZsKifmqqeoI2ZlZ+EjqGam5OlpJqYrLG2sqqlqq2snJigoJKOkJapn5RoY1lhXU5JR0pOS0hFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5yexayhn6ydnK6gk6Ofl6Wgp6mrl7awoqqytcTDvcC2v8K7yMK+ysi2uLW0sLOzt8HGtr6wuLS5tZ+mrKqrnZ2epaPBpaCpraCkqa2voqanvbamsby3trXDsrO3ub6yw8C3uK6ztbWjnaSVkZOgraCZop2pqKujmsOtqZ6srZubnpmmoL2inaWYq6uspqGZjZqfkp6Jjld/lp6loaC4qqeTmLajn7OhoJuvl56OmZSdgo6fl5aOoqSVkKaus6upoqKmpZWVnJiLj5GTpJ+JYmVaY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GZnsOnpaKzoJyyp5OqpKCkn62prJ27sKistbHHxMHCs8LDvMbDvMTKva+xtq2wtK+/xbW5sbC5tayaqLCpqZqdpaGnwqybrLGcqqKusKmkp723pre6vK62w62zs8K/ssazurestLatqqKmlpWUo6yin5+aqKuwr6+8sqagqamZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2aop+ntKanjZi0nKOvmp6brpGelJeUmoCSoZaPjp+hk4umrLClp6KcoZ6SkpqThYuSjZyegGJmW2dlSklMSlJBQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DDqKSqsqGjtamWsqumoqSyrK6pu7KssLW0xr/ExLXAxL3JxLXAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSyp6q6s6e6s7eyuMCqt7LCvLTFp76urbe1qqisoZeWkaaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6KlppausrKmqqahnpuampaYqJ+gmKGer7Kipo2XrpmlrJeanqWRm46Tl5mFlp+UjJCcnpSLqamqoqegmZ6WjI6ZkIKGlomUn3lkaV1rak1QTU5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWVdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SknaGmv6aor6+gqbWqnbmvqqOqtLexsLm3r7a4uMW9w8e9vMPBxsC4wcbBuqq2pK27rcHDuLiqrbG7opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptrWsvKyysrm3rLmwwrq9vqbDq7C3r6mrq6aemJiroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOir7G0q7Koq5+boKCbnqWcopado7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUj6mop5+jm5ebk4eOmYt+jZaFj5traW1hbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqrCqo7G4qaW0squhrbW9r7O4vLq9trbAwr/JxLnEwcDAuMS9wbevtairt7K8v7+1qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xLarvK+xuKutqqOxpp6kqqCkl5CZn7Oqs6qrs5qdp5ualY2gpqS0rqeira2usaezrbKppJyfqKSelaGYm6i1qZeZkpKfmZ6hnpGsn5iYhZWYi52anZOKjZaXmpempaOgnZaVl5SBj5SFe4+Sg4yWZmxyZ3ByX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYmBQS01OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3pKyppa6utqmvs7mmprC3xbext77AwbW0usW+zMW5wr+6v7nEuMG5srWsqrq2u7m+taqtsbaZmKerqqubrKuPq72erK6xo6qfsK2zrq62sbm3qa2usai1r7O7vMmyqrW0sbSvrqehs6CaqK2gpZWVmpmyo62gpq+WoaSampKNoqWnsqmip7Ksqralr7G1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUrJ+dlIGTmY2dnZqWkIqUk56apaKioJmVkZOVeouQhnuMioOLkmtueG52e2BFYWpZSUhZWz17SkdFNkFiVGlbTVxhSltdWlJSUmJgTEtFX2BgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosqmtpaOurrWpt7S4o6u0t8m7tLu7v760tLfDwMzIu8O8tr6+wLi/vLG9rqe6ube2w7errbK5lZemrquno7GqlK+7pK2ysqenorKzsLGxtbG4s6muq7GnuK+1tMPFtqm0tauwraqno7afn6eyoKSUm5mUsp6nnKCqjamjnpuWmKWlpbenorK0rKexp62wtaylmaCsqJucnZuUqbiclI6Oi5mcopiQl6ahn5aDkpaQnZyYlpaIl5CXm6idpKCSlZCQlnaEkId7hYGEjYxucXd2fH5cS2VsXEtOY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaWupa2uq6eksLKzqrewtp+rtbnJua7BvMK3s7G1wsPOxb/BvbS9v7+6v7yzxKipubC2tsC9r6uzs5ygp7CtpaawpZ6ytq2rsrCsqai0uay0srWttKyprKisqbmusbHHv7ikua+pra2mqK2wpqSkrqOpnJ2bmrCZoqOio5CsnqSgn6Kqpqa5pay1taSpq6msr7avo56jqKqboJqakqS0mo+JjYeRoqCWjZSeoJSThY6Tkp2bmJaViJiTlZmnnKCfjJKQjZB3fo6FfHx9h4qKcnRyfn19W1Jkb15OWmZdRkSWW0g7Tm1YYVtNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPUhIj5uqqqKqsKSopLO0sbS1sbGhq628y7quwLvHsbSttMLC0cXFvsCyvsHCvL+3vMSnrLess7i8wLCrsq2gpKetqaiksKOrsaqvrLCur66rs7qntrCyqbKpq6WlpK+6rKqxwrm1q7moqKisqqixpaqkoq6qqKKem6KslaSdmJ6ZrJ2ip6miraajray3sbKgqaKgq66wrJ6fp6ipmaSYmY+gp5iGg4+Ki5+hj4uMlpyPj4aHkJWgnZaYlYeWk5OXpJydnIuRj42Jf36Ihnx3f4eFh3Rzcol2bF9ZYG5jUXNxXEs7hHxGPld1WGBaT2NcTlVWVVdQXGJeU09OaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWXraeiqrKcqamwtqy4ta6qpauqvcm7sL63wq+wrLPEw87Ow76/tMDCxLrBtMnErK+3rbK4v76zra6rpaeqsKmnqLGltK6rsK6tsbCzrLO6pLizrKyup6ufop+xuKuqrbq3pbW1o6mnrKyqraGpp6axsqOmpaGhrJaqoZSboKaepKKrpK2jn6ext62to6Wim6mqrqmdoqWkpJigmZaPmJ2TgYKQiYWcoIyKjoyZj5CLhI2YpJuSkZuMk5KRlKKZm5qKjoqKfIaBgoN6dICEgn50d4ykh3lrXmBuZ1dlh2ROQGeSTERieVdiWFJlVU1WVVVUT1xdYVVLTWlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESXkq+ko6qwmKuprbWrtrGrpKuqqbzAwLi5s7u1pbKvxMnL0b/Bu7nAv8K5wbrBxK6ytbGzu8C+s7GurKurqLaqpa2wq7mwqbGxr7Kttqq2tae0tqyspKmqnKOftbOoqKS0tKC1raGpqKupq6egq6uoubapqqmpoqmgrZuSqaGdoKSipqOqnp2mta6opqqio5elp6eqnKKko5+ZmJ+Rjo+Zjn6HjIeEnp6IhYuLj46QjYSGlaOajo2bkZKRj5Kfl5mWjIqDf3SGgX9/eHWDf3t4f4GInY9vcWdncXhcYHOIak9dmFZIbXhVZFZSY1BNVVRVUE9YW2JVSFBpVFZUR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFjMDI/Zj1OWD9DLD5MVF8vSms2UEU7lY6woKWrrZqrpa2us7SvqqWvqam6vrvAsa64rqG1r8nHyNHAvr27vMK9usPBv7+usrKxtb28wrGys6qzqKS1qaWts7O5sKOttrKvsrmquK6qrrWrq56qrJ+joLatqKGfr7OhtKqeqKeqpKuhoqytqL2vrK6toaeon6uZkK+hmKKhqKefqJuZqrCpo5+soqGToqOjp5iaqKWXl5mdj4qHlYh9jYWEhKSWhYKCi4ePjpGEhJSgl4iRnZCTkY2RnZSXj4qFhXh0gX99dXh5gHt0c3ppgoekdWleZWyCdWeIjH1SWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hPOlZCNJCPsaCkpqujpqSsprSzsaqksKequL7AvK+muKqnrrDJxsjRw72/vrm+v7zJvMG4sLC0sbq7ucGztLusuKyitKanrLK2ubOnpru1rbW8r7ymray1q62cqa+koKWsqqecnqqzpLOomqqnqaSpnqOpqKm9rLSvrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mpkZiak5CKgo+Ffo+Cf4iej4Z/fYyHkY+QhH+Tm5SFk6KMlJGLkZuSlYeIfn9xenl+fGl3fHp1cXF9aIZ5hYhkYGhjcoV6bWd5XV5WQld6bVRhT1JYS0xOcXRdSFpbZ1lFVWZQRD5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPk7GZn5+ppaShq6S3srKlqbCnrLjBvbWvormtqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+t625tb+tobOmqquwtbi0qp27vKiyv7K5oK+ztaqsn66wo5ylqKminpylsaavoJ+qqaiiqpykqaCtvKiusK6hq6Okrp6eraaXn5uho5yfm5qjqqKamqSklZaUn6KWm5amrIuekZCRjIKLgYCOgHqalI2JfH6Lho+PjIqEkpiRh5SjipKSh5Caj5OBh3x5a312eXhie3pxcHFzeGmBdGuDZ2RoYW9zjm1ianBgcEFceGtWXk5RUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8pPDNQWz0jkpismZ+Xp6Sin6ikuK+uoq+vqKq4wrmyrZ+5r6uotLrHysi/t8G+r7S+t8S2w7GvurKywLW7vripube9q6S0p6iqsK65saqZur2kr7+0tKCut7Wmp6ews6CepKanoaWZnq2nqJ6gqa6noaeXo6mgsLifpLGvoaygrKScpqepmpqbn6OVnZyanammlpufqJKYk5idkpmWoaqQmomOkId9iH+Cjnx7oYyMiHmDjIWKjI2Fh5KajomVn4iRlYKLl4yRfYR7c299cXN0YHl4aW9wcW9qf3Nke2xpZmRhZoaAYFtzanJNTX9pWFpNUExKSFBSUUlOXF9uU0RYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj8wWlk1KJadpZiclq2gn6GkobersKS0s6ioucS1sa6gt6yurbC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO6qbu6t6eotainq7Cts7Gnmby3pKu7tq+fsbewqaWnr7KboaSgo6Shl5uvpqGfoqevoqCik6Slorewoaaxq5+soq6XnKqlqZ6Xmp2lk5ucmp2mqpmcnKSVlZeVnI6Tl6KpoZCJipCGeoR+hIp5jpeKjYZ5goeEiIyOhY2TmIyOlpmKj5d+hpeLj3qAenByd25vdF94d2RsbGxqaYRuZnNpa2ZpXWRzgWBba3VpWkl9XltYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS48MmJVLDKWo6GXlJyqnaWhoqC3qq6gurilq73Fsq+uo7WvrK2vtcTEvLO/urews7m4uri7rq3As7S4r7/BuKy9urWmorOqp6qzq62yoprAtqWntLWpnrK7qaemqa+smaKnnKOmlJiisqSZn6SoqZyioJOloKS4qKSnrqeepaCnkp+poqGgmZudoJKbnJagoaubm5mhlJGUlpqOlJKjqKSQiIqPhnmEfIWGfZ2NioqGeYCEiIiIkYWVk5KMkJWUjY6Ue4OYj4t3fntsdHJsbHNheHRoaGpnZm+FZ2hpY2ZpamBpYmpnW2V7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzllTycynqOjkY6kp5uenp2jta2mqrq3pqvDwbavrKO1rqevr7fAwLyywbaxrrK2tri3taypvbOvsrG9v7iuu7uxpZ62q6WltKmrrqCewquopa+zqqy1u52oqquxpZieqp6mpJGZpq2imJ6kqaGcop2XoJ2ntaavqq6hoZ6coZWgpp+hoJmbmZySmZ2UpZ2sopiWnpSTjZWXjI+YmqmgkYiKi4l5hXeCgoGciIuCiXx/hIiGhZGElpWPjpCRkZGMknuDlY6Gcn19Znhva2psZ3Vza2NnZWR1gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdJS01SWD45YGxpR0JUU1xbSUlHRkEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWUpWYmZBOjNBZkglNZqjnpCLrKGYmKCWpbSxorG9tqCwxru5sbGkt6yqrqm5vbu7rcCyr66ttq+zt7Kmqrmxr620trq2sLi9raadtaqfoLClq66epMKgsqSusa+3rbWera+trqKZnaiqpZ6Vm6iln5mlo6idmqCblJydrK+luaetoqGam56ZnqOapJ2XnpiblJqgkqiWqqeak5uckoyVmY2UlJmop42NiomPfIJ0goGKmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNg2+Af2Z5bmhramdxcmtcaGNjc4FhZWhqbmxna2pnbVxsbHVxYVRiaGRlWklGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmVDJzSSoJqOjrCdmpOhmqmysJ+4wLWfs8K7vbmxpravqK6lt7i3t6y7r62qq7eqtLitpLG1sa6psbe2sbO1uqeon7apnJ6po6qtnKnAma2krrC2ta2tn7GtsKqim5ykrKiblZyno52aqaKklpqgnJCbo6qpqbuepqSgmJqZnqGPa6KWmJxxgpabpIB1kqmnnpSVn5GJl5mAloqgj3mGlIyDbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39mhoBodWlmV1xpc25OUGpjZ3KEZ19kZm5sal5gYIqQhIZnT0tEOEVUZ15KR1FQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSsvjKOZh5Swm5yToJuqraujvcWvqLbCuL29rae2sKWrpLizsrOwua2qp6y0prC0oqe3tbWop6y3s660rbOiqZ+0q52hpJynp5msu5Wmpa+zuK2upaiuq6yloZ+coaemm5ihpqWbm6ennZOen5iQnqiporWvo6KjnZaXmJejiKGOkpqHoYeUnaF/pX+mqp2SkpuSiIRyeI2OhIihdoiNaZeIZn1zeKFviIeEfo17f6Ggn5mAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFYanBvh1heaVtra1uIcW56coZoh4RaXkZOPkZfTUZSVlZRUVJXVGdeTFhKUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIyml4Ocq52ZmZ2fqqqnqb/DrrG6vLfAv6qlt7CprKayta6vs7arqaWxraW1spustLa0pqeps7Gtsqevn6qgsqmgpKOaoqOcrrWVpKWmtr2nraeqqqyopqKgmKCno5mZpqOkmJykqZaUopyUk6SlpqC2o6Sgo5iVk5iTnIiuj5iUiamLl6KbhbGAo6yck5qelXmC1Kh/h5TBm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGub2VpvJK8bmh6bnKP2H5TamK2sn+BcpR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERQTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppOBpqmfl5yepa2yqbDCvbK1wLW3v8KrprStramnr7Oqr7a0qKimtaanuK2csrC1qqWkp7GurrGmqp6npLGkoqGel5ygnq+tlZ6in7S6o6upoa2upaKdm5qiqJ+Ym6ign5iep6eRnKeblJ2hpqKgr6Kfn6OWlpOYkpmFr2pqio2qfmeElYetZHCdnJSappVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWd7pKeCWV+Lq2mAlXh6aqc3Sq9bV1RsY1tLT1hfXFdWO06IT1dWL0hTU0pERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpaqyuKy0vb6wtsSyt7rCp6mwq6+pqbCupLC6sKSlrrOjqbionrKxsKOloKqtr6ywpqefo6KwnKOcmJWXm5ytppebop60s6GsnKKtraCempegoqmcmZ6koJyZoaekkJ2jmpegn6ufpqafmp+hlpWRl5GahbWbtXiFqZm1mXeHs5u3fpOWlqmUfmuBpnqChYiTlJJ3q2drsVuse4+HlHSIcI+GgH+IkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGhbltUa2dgTEtcZFhcWkI+sHhXWEEjTGhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1c3SjlhVTUwHJWflIizpqahrqmns6ypu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paaysqejop6oqrKosKilnp+frpafmZWVlpieraKamqSota+hqY+pqKqbnpWYoKWomp+co5+boKOlo5Wbn5ianaKqm6aanZuioJeTkZOTnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joekgqWCeqx5j51Wr3uJfp9quVq5d4eEfaaCk3yYeqp5jZyPe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcodtl4hgU7W0yIaAiXxjpDNCnXZdUWpoY1BAWGZaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE3MiWbopOYsaeopbOqpbSopLy3wbC6wLG1tbyztaexsKOwsqafrraom6i5rqOvsaCzs6+gpJ6fp6mwqLSppJydnqqXmJeWl5WWoaqdm5eorbCpo5+PrKKnlp6XnKGloZihoaKhmqKip5ueoZ6VmZumoJynlZybn6GZkJKVkZ2Ism5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGgpX6wdoOR0tF2XK58hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61fdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpT1VHSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvoZyRpa+spKq7raa0pae2u7yyur+3trW6urOltLShsbGin6ywpJimuq6ksbGdtLeon6adoqqksaesqaSanJqonpWUmJiSkqOooJeTpquwpqKWk62fpZKUoZukpqCUmqamoZqjn62aoJ6dkJaboZ2cpZWdlZqin5aZlpKbhax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1313hX+PnYaZmXevhoqRnId3tGGaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9xbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJe0wa2osqipsrq4tLi/ubeytr21pbizn7Ssn5+oq5+Vp7arqLGyq620o5upoKCoobWmpqqjmZ6VpaGUk5yZkpWipZqTkKesr6aglZmpn6KPkaKZqKaglZmlqJ2cpJ6tnaGdoI2UnpudoJiZnJaXoqCTmJGmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmNye4FrmIdyXaxaiaCOa25lT0pDoVxaTHReYmVNWmFfcnNfSlY2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnZmZvquXtMKuq62ppbSwuLG1v7m6s7G3vKq7tJ+wpJ6lp6eelKqxqbCqtayrr6GYoaCmpKO5oqOroJebkaKglZSfmpSYn6CPjYypsK+mnZabqKafjJKkl6irp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaPq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFk4ita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6NseX9+b5iHcVyvVjycd2ZUb24uXKdPYlJrZWFsWWJcYHB7Y1RaUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbqhm7LArq2rq6e3qbivtMC1vLGvubirwbapqqCbpqShnZKqqqe2o7Korqqgl5ynoKWruZ2jrZuWmY+lo5WNnaGbmZyfkJOUq7avp5mUnKyql4yTpZmlrKORl6qypKCep6uwmKGjkJmil6CblpuXoZOcqpyUkauZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqqqssae5r7bFsbqyrruwrsGyrKSinqOhnJuRqqSqsqS0pq2kn5aaqpmmrLicoq6YlaGQpaCSjZyjnpidmpCWk6+5sayVl6Oop5SRlqScpK2ekaCoq5+bn6mjs56ipY6nopShmpyXlaSYj7CgkpWqnoWQmbaAkJGMt5V4gpObtXdua25zbnmPhI6Jc57Bu72ae4GyqHCAdJG4g3yGhouHjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXn95fYlog3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcWx1Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7W4ramjoaWeoJ2ZlKykraqmtaion5uWoKOerKS+pqGrl5SdkKKbko+iqKKTnZeSmJSytbatmJ2kpKKLkpGmm6Wrm5aopKWcmqGppqejqaGSrZ+Xo56Xlpedno+wqZScp6KOan5pnKZ4h3N+mo90emWHer6+wLpukoNxlIZfcmpaXpqJYWSIjpVrYH+VY22cdmKUa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6DfHuLa1hseoJySUpvhXBNdE1FV11mYExbWGdjXk9bbXVpcVFPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOtpa6nqLWxrMissLOstaO+sbKmoKKpnaKbmpmsp66kpLWppZuXlaGbp62ovqepppWUnJWgmpOYpamnkZ6Qj5icsLK/rJumnqeiiZORqZqopJqbq5+jmZujp62in6qimrCblaaglpWdn52XsaWYoqiZnJGdnKOjmaaimpyampqQloFnbX1xd5GXlJGFirWqjYaYlY6KjJiXh5SVioOSk5GJjZGTmJSYl5qgopqclKGdjoJ6pYVsanyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWN3fXZrcHttYGNdcGdNWVllal9XWm96bW1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOgs6K/oqSxsregqqWyp6WwtarJq62xpbWmwKi0oZ6kpZyjlZagq6aso6O2rKCZlpafl62ppcCeq6SVkpyXnpiTlKKfnqKnk5GYqKeyw6+aq52rno+WlqmeqpycoKyYoZqcoqWvpqGkqJ6tmJemnZmaoZ6enbCgnaKmlZiTmJSgoZWjnpegjpaUi4qNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIaFmZCHhomVjpuXjZCYnqSWmpORnY1/jWahs6+FiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0ZHlmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqraOzrryktJyfp6OhnZmXqKappqSms7WelZSdmZmwpq6+oKujkJGempmUkZWhnJepnISeqayis8izn6qkq5aWl5qnnaibn6SrlJ6fnaCqrqmlo6uhrZufoKGZpZ6cnp2wpJmfqJOYmJ2RpZmYqJ2al2aDknxlfo6Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5lzbG56hIyHelhlXoWBXmyKiYB2XGhzd3eRgIeCbniCeIBzbXmDdHeIiI6De2qGWV5rdGRdc4lpanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BRDw8REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora6wpq6tsL2xqaikra+xn62Xn6SeoZqZpqucrKOmqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmZpZZ7payiqLPDt6Sip6+enpWeo56jnKOqqJGeoZ6gqq+qq6Oqn6ibpp+ooayWoZulsKSYnKqVoZ6ak6WXnqqYnn6+g4hytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncLBe4F7ko2aw8B9a6Wxb4yAb8p6f5t3kYOOgXZ6gX95cXp/h3F4hYyTeW13k2JmX3hkX2WCY150aG1kYlhMVklRWkhPRTJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK+tprK1r6qmpqaxq5+rmJujoJybqqeinauipailpLSjnaKTpq2st7Onr6KSkZqdpZKRoKGXnJ+dh6erpKutv8CwoamvqZeSn52imaKjqqOSoKGdnq2uqKymo6OnoaWlnq2pkaSbqa2qnJ2qnKyhlpellqGjl5x/zpR5eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjal6p4eFoHSXkoizY4KrhqGOjbNqhK50fZaHuGGCrVmjzW6PdXvae3+ZcH6Ik3Z+ZXuHdnZrfYhufoWRkn5tgY9gcWtwZ2BfeWRbcGhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PTdAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJiekaSqqK20q6ayrK2spKunsKqgp5uZpZecoq+foJ6op6OmoZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll56oo56upKuwqMDGs6ipsa6Wkp2copefqaqelKGfnJ2ur6eqqZunp6Siq5KstJamoquqnqOnpqGwoJOap5qgmpSUkZegcIWMl3SEqIdxsXydcax+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZCQZW90dXBgZ21kX29paW5mY1dTXGFaUVFCOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoa2vtq6osKepqqiuq6unoqSdmaKVn6arn6KloKioop+dsKyXmpaop6+sqKepnpeUmqOikpShrZudpqOvrKOstaq6zbGtp66slpScnaKYn66snJagmZ2eqbGpqambq6qko6ybr7GiqKyuppmmq6qqsaKSl6OkmpSShKRqpHWJeql0erJxgqWJmYxxiKCah6RgYFKshH+ug5t2roGmhoafepiWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2aknBueXd3b2xmZGVxcGZ7aGNdV2BqWFhUS01RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8PJ1tXAoZmrqKGvop6wtbCvqayjqKaqqquppKagm6SenaWnpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSno5CaoqifoKacsaajp7GstsiytaqsqZWRnZyimaCls52aoZScn6erq6Oumqyqo6Kro7OtoqqzsaGbqqivsLajk5ajp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5KAcHp0fHttW2ZqcnFmgWpeYlljbVxeWEhNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGua2ps66spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52loKyanqmlnaa1n6KXk6iqtrKsm6acoJWQpa2RmZyno6Cqp66io6eqsLTCsrOqraiTiZedpZuho66ml6GVmZ2lpquar52tqKeerKO3rKGyua+dm6+ns7SzpJSYqKSan46CnU54moF/n3qDo3yCpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mZaXinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd8fpKRinR6c4R+cFttbndyaoFvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaykq7mrr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqKayoJmppJSitaKjlZeiqbS4pJyinaOTkKGxmZ6cp6ahoq+unaSoorWyw7Gtqq2qkYeQnKedo6ScpZeemZmapqSomq6hrqWmmLClvK2ht7etnp21srmxs6eYnrCipJ6Fj9G1w7d5h46FkZOPf6Z4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqfe5aYhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPlKaYfoyMk4p3fHmNgW1peGl4c25/dF1kZG5tZmhgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqinsKOUq6OOpK2jnZCamqq0tKSdpJ2pkpSXrqCgnqaknKectZqgqqO1q8OwqaupooyEjpyioaailZqbnJmcmaakppirp62jpZutp76slb6wrZ+jsLO6rLSnm6mxpaeYeqiQfXywd4qBpKWIm2yxb6GHrXyhj4OolZiArIiFroWflKmgoZaGn4CYlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBtlZGnmYOUjJaLenqCln5rbH9ifXRtf3pgZ2Vxb2hnaENZYFs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCt8G0n5utoK64paSOm6SjoK+vqp+kn52tmZ65oKKqoK+qmq2hkKqopJaJm5CusKynn6ebrZiYj6yioZ2lopqlnK2Yn6imtqnAr6WqpJ+LgI6cmp+mnpKVmpqUm5umpKSaqKyso6Sgqqi+pJfDrKqioayyuquup6Czr6mqmHavfpCLnIWHfbqtiphksIxlla19oY+DppWagayKhLCFpZmkoaGPhKBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5GWlnt4jZx+ZHN+YoN3dIB8YWpmcW5mZWVPVWNbQlRePkkoPjk9NCEiLSUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TCs6OcrKaltqihi5qgn52zs6meo6CdtZigs6iqq52vrp+rm5WvqKKOiJuOr6ypp6Knma6TmY+omqKepZ+ao6OlmZ+jqbKovK+lqJ6djn2Lm5WgoJmPkpqbkpuYqZ+hmaiup6Wmo6Wpu5+gxqelqaGrtLatrqefvK2trJWBqZKjr4+bgIakl5iQgYC4w7qDjp2ThKeWnIKsioKviKabm6Wpj37VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rXh3or67dICWjqacj5uSl516gZCbemN9e2SMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbOina6mpbOmnouYpb6pt7Goob+mprKcnrGcuaiera+mp5WUsKyXjIObka6mo6yhpJyqoZiLo5KnnqecmqGoopieoKytqrmuqKObl5N7h5mRppuSjpGYmI+ZlKqaoJipqaGqp6Gjq7ueqcWjoK+jq7O1q7CqoLuor6+ac3WqpLeGZYmfcGetj4qPbW93pJCZn4F1rpmVcI+LcZWoo5uXraNybW1tZYp4b22CmXGAeWlwaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeZkZaffYeOlXZmh3hojWp5fnlkbGNmbGJLZFhKa1k6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOrqaKunqSyqZiSvbHDyL62qp7Aq6yjoaesn7qjpK2sraaOlq6pkIyFlZetnqaqop+jo6CRjKSSp5mpmZajqqCWnKWmp6+6q6yam5OTe4SXjaWYjZGRmJSOmJaolJ+YqaObsaeeo6y6n7DBp6SzpqyxsquurKi5pK64loqhqKW2nYmWopeHqZqQlJ2TqrOZm6OroLGWoaGdoKKcoKShlaqmjJKSjIeSnJyUkJqTmJCOlYaBpJmXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbHuVkZSTgYGPj4+PnZSglpiWoYOHk41xaZB3cIp3dnx6amxkZG9jVWBYQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNT1BRWFVWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqqW1t66uorCkrZ+gtbGQjqvFvMS7uKqipZ2bpp6xqaO2p52ptaeokZisoouIiY+cp5aspKGZp56ek5Wjl6iaqZmUpqGjkJuomaG1uqirmZqQjXyBlIuglIqUkZWQkJOXpY+fmqqgnLajnaest6evwa6jt6avr7CtqqqzuaGvvZmSpqOmtqKSnaaejamfjZKfo6yvmqGjsaivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp+RiaCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkZSUkYp9jJaSkpiToZOdlqCDh5eHenKWc3mJf3F7f2puZF9waWBbYFltY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gqLWqkJCdpLO7r6ysoqOaep2isaSlsKiWm7ino5SZqpyOhoqJnKOQrp+jlqigoZKXmJuui6uWj6iZp4yZqI+eubakpZmbjYl5gpSLmpOJlZKUkI2RlqKMnp6pnp+4pICEr7WisK90pL6jsqB4eqCqsruVdq2kn4qAqn5kXGJ2n46knoSXfm6Ts5yjp66qo2Wdn5NzeZmXcICYqJdsf6KoimWcpZyRl5iVi5KckYadmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFpiIuVk4tbdpWRZ2iQjnJ7pZiYZHmYhoJ4mGmDioJueX9rcGVgdm9ra2hbZmViYm9TXD5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkZGSUtNVFRVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablqajobCxrKuppaito6etpJKWq7Wvsqaaqqarl3OMnbCfqKqmlJa5oKCPnKSdkX+IiJuejauao5Wnop6Ol5GehXWukIimmqiRl6SInLq0qKCZmIuJdXeTjJaTipSRkJSMj5Ogjpugp5mcs5aAjJy1nbOMko+8p6F+p6J6o6+3gY6Opp6Ei4WPsamvjImWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgXucsXqKhaCXmZSYloKRl5aEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElpJ4lmiTdKCadHyZg6Cchph+komCg5lqjYyFa3h7cXBnZHduaWxrW2VramVzXF5JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1NYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6aurquorKCosKanqaWZlK7GvbChlqaptZ6Pg52snKeioI2Qvp6ZjZ+aoJB9hY6Zl4irnaKWoKGSjZOJhoCRqI6Hopyjk5eehp66sqeem5KOhXB1kImVkIqUj4+bi4+Rn5KXoKSWnqyIn7SJtJqti8qHqq6It4WNsIOxroOpjaaYjZ18qI9ye3ebj6eWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6NrnoOhmYOagIyMg4mYcI6ShWh3dHt2Z2h1cGdnbF5jb2xnbVhnR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmwqqummpSgo6SqpJalqbajr3+hp5ylnp2JlL2ak42hkZ2QeYSWlpGHq5mbm5qihY+Md5ucj6CRiJ6km5WZmIaiua6lmpyMjH9ibY+Lk5CNkIyNmIuQkZ+PlKChmaGofqGnh62doJauj56dnZGGgaCNq6+GpI2qmoyafqJ2gJmTaoKsdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmlln2xbbYl7ZVlfg39iV1BvdmVtdHJqam9eam9tbGpYaU9dV0U5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlra2hna21oqiSoaCgppyZjpi0mZCLnoyVi3WBlJGNiqaWlZien3+ShYaspIeckYqYqZiZmpKHpbGnopWaiImAaW6Ih4uOjoqLjZKLkJKijJSeoJyipX+TgY+joZSgd5yWj6eDoad/hqmthaV5in2Emn2icHKTh5Z7nox5bYecjJmQm6iaj4edfIKic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kYJ2Zs5VwfJeetHRzW56yg2pib3N1cWhvWGtscnNmXWleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI2kuLWuraCbopyjo6aunJuxrayTl6GZoaSZmpSeq5uLiZJ4i4VwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopZ6PloeEfmt7h399j42Di5CQiY+UoIKWnqCdoJ+LiXecmKKMoHKii4ipiJymkJaoq3+ujH16oJl6o5N4gHOWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akG2nmV2ofne7a36qW46EXbRnXG5xeXdraVtxanh5Y2BmWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycqJ+erpuesKirnZekmqGfmJaWoKOZhomNaoiAcXuXiIuWloSRlJiPeoqElqSdipSPhYudkZyciY+oo6CZi5GKgIBpgYZ5f5eMe4iOjoiPlpp/lKOfoKKTmHJon4qfj4xxkoyBqYiZn6OooKh9sK2joriXd6OzoqN/iJR5nXurmn+ijp2bl4mXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2afnSqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WBnW5yfJRvmXJqpF2VdkhlY2BzcH19bmVgbGh2fGRkYVFeVl1UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGloa2mTnYCxrpmEU1+gp7O5s7OpmqKMnKucnKmUoaukoaiPn56dmpmVmKCdloiHiXeFgW55lYWQmot8kZOWiHKAiZOhnHORkIGImJSfmoSOqZyalIqLinyDbISFcYGhjHiFjYiHkpmVfJOkoZ+jiK6GfbWEjp6de6WWeqmClp2QiqGdfadodm1+mXShc3F8nYWZcJODrn2kg6aemoGjb16oZ3WjY2+lYZzSkHx6mXhyc2OihZB+o3Ojj3VrkLOLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8hJtveHmXa5t6d5dybamkZ2BleXB/g2tnZmRtdXdnYGJTW2VRUWFJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5uAsatUXEt+qa+xtLCzo5yYhZmooKCjjaSooJipiZmYmJOZk5KgmI6IhntwfYRofY+ClJqBd5GNjolvf4aQk5Jsl5R9iJGRo5WDjqqalJKLhYl5g3aIgG6Cn4Z3gJOGiJmil3qUo6Wan4mzoaK2i3qsp6SupXCpgJqQhYGcknykgKKZhphynoSira6Jl4yAjKSNloOtoZR2tbW1yaFzlIqBn2CdlqlteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7arS1tMamc5h+e51qm5urdYOabHR3l2maenWYclBEfbNeanZreIdmamdidHRxblZeVFloT1JoSVVMWVNVXWhrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcibCnhGY/lKGyq6+vtaKjkICXqaKipYylp52cpYKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiIyBaYSFkoOMhZ2NeoyKlaWSg5epl4yRi4GJeoB9i3lwkKGGeYGVh4mWoJZ/laapnJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9mKGViG1yaatqdaBtbqZgm2iKkGiWh5qVdaKAfZpgi4WMdG+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9lp1SLXVSYbW1za3GBbXBoa3hza29SWFdWZllTbUlYT11IWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXJiZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6udnqWMoqGaoqKAlpiTjZqPi5iQjop7h3GAiGiLi3yYm3N0in2QfGSCh5WKipWZgnyIhpankIGirJCFkIqCin2AgI5zaI+mhH2GlI2JmKCOiJOrp52JpniWnH+liZaMspiekIOvl5+leJWIeql0pY+Emm6kooyShIyDvG58pa+ChoWGkpacn3ylenGolaCWZ559bqtjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnNve3RxYmp+bmhtU1ZbVWFhXGtNXVJdSV5tbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNtc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeupJmKg5irmp6kiZqlnamchIyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aUj3x7gYWXpY1/paaOgY6JhZV2goeSb2yLqYGDi5SOiZyfiY2Uq6SgkIB1lJeJf4F5lK6jf4GbcY+GeZCLhH97cqaMcX19epeWm4SOeHt+foiUlZOKdpCYn6CDen2JbIyFW3l4cXlxaG5+kolxf3SCj5STcYWDgmWNf1+Bf4t3dXOUdW95bm6HbYSGXndpeI1mgYKGjqmbfnR8l2qJiG+Adn2Fdm1sZ4xzeXuYeIRba1h5j2hud3Jxb3d4b11shm5pZ1ZaYFdcZWtjVWFVX1JfcHh5bGt2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHluaGxvYY6Uuamni6GimqakmaScq6OhhISYrJKdoImappqomIKBm4p+lpOHjoqJjXKDfI99fo+Fe5eOdHKDcJaFe32Si4aGkIV4fn+GmKONe6ehi4aQkIWWg4aOmHdyhaqGjpKckIienoiMm6igoKuDiY6Um4B+iZatqI+TppB4b52Rg3qSb36ohXB9lXFrcHyBn4t/ko6MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5GBfX6Mal1qZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHGFjXlvZWdkeoN6lltcamdudlt7eHd0bXNygmZcbYprbGJZWV5aWGxxW19hWl5dZnR+e3VvdGNra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCLjKqxoZCjoZqenpiemaijon6DmK2Nn5SHm6KQpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ufj4KmoYd4jpiJlYuLnZeFg3qtgpGYmZSKnp2HiKGroKKio4uIk5ydo5mWqqGnpqCSm4iXjnx4jo6Ep35/kpGSk5yxppuUnpCNspOYhKWMjJWbn4mQm4KJkYprfI12d2WChpCKe4mdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppGEhY2Ig42QjH2Ii4iPgXZsgoR8eZlqcmhhdIpwfXp3dm93dIFdXm+GaG5fXlpcXVNocVVjXFxhbGl1fHxzb3Bka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fXqDeU5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWh5enFnaWtljYidup+XoqGYlZmYlJmkoJ57f5qrjp6NhZ+ci56WfXmUg3uOmYmGhISGbniAgHKBiH6IlIRtbH56l4aEg5B/gIaEhnyHg42bnZKHqp+DcoqQhpOSjJ2RfY17qoSNkpiVj5yXhoabp6Cimp2Gg5GampmQmqagpp2dkJaBkYp3fIiOhKV7fI6QkYaYqaGdk52PjauNkYCejImTmp6Cjpd+ho2Cb3iFcXRgf4KPhnWLl4CDj4KGhH6Fg5RueXV0kqKLjIWahYSNdICKfHxycnuIhHt5jI+Ek6ePhoSPgoSKiop3hoiJi3xva36Ae21obG1nXnl/aHx7dnR1dXt3XGBwfW51YGNaXV5RZm1TZVpeYWtpdnp+cWxsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZyg42Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW5sVGNxeWVwenpzZWltbYuKn7eboqSfkpGWl4uan5+ee3ieppCbioaklIuYmXl6jYV8iZGDjIKBgm18f3hzgYV9ipF9a2h9gZeIgYiOfH6GhId8j4CPm5uRiKedf3CLi4yTh6GhioWNfKiRiI+Sl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbf46FeYCDj4eggH2MjI98l6SgoJOZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36Ii3OCh3x8cHl7jIR6e5KNg5amk4uGkXyGhoeFdoKDiId6ZXJ7fnh6cGxqZl59c2h8dXVzfHKAal5gdHZweGRjWV9eU2toVGRZX2FnanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4yBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqalnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJfoiCgH9xf3t0doKFfoqReGdjfYaXioKKjXh9gIyDeZaAlZeWjZagm35vjIKRlIamm4iNiYSmlYWSi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmZOUnHqQhoN4hZeNnX6BiY2Mc5einqGTmY6PooyLg5aYg5KWmX6YjXyIjYF2cX1uemR/fIqFcIaTf5CCbIeCgYCJhGV1b3yHkpeNfZN4i4l8gId8e3F+eIqFeYWRiouYopWBhI13iISDgnd8gYmGdl94d31zfXdmbGRhfmlqd3N0dH1xfGJjYXNudXNtYVphXltrZFJiV2BhaGt2eYZxYmpjbWVofINsaHRobG9of3yCeW2QhnGAg4N/c3yDjIF/fnqCg358kG12iHR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrpemqJ6NjZeHhp+Tl5h9eKqciph5l5yLjJiQeXuBi318g3uAgoB4dHl6c32AhH+Ji4BkXn2LlYd/hYd0fX6Kf32XhJeTloyjoZh/cod7k5KKp4+MjoqToZKDkZCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJiNlZZ0jo6LbIaYj5l6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnV4gH2HgHyEjoWMlKSQeYWCdImHfYB0doGHg25ge3V6cXxvYW5jZXtibm92cnd3c3Rhdl9vbHVub1xcX15eal5PXVdjYWhtdHuJa19qZWpjaHeHbWZsaGlsaIB8endvkIdzgYOEfXOBhol6gn16gYR9fY5yeop4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgo6idioqRhoqeipWXfXeumIyWfZ6TkZaUiHd+e4p9fIB2d3+AcHV0e2+GfYGAin98YVx+j5GGf4OEc3qAhnqPkYeSkZuSpZuVgn6BfI6LkqSJjoqNmJuNhpGYk5aOiYmMk52TkIyNboOQj5GJnpmioZeWipeRb4iZhGeGmY6UeomFkIpwlZqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV7i3RuhZCOknF0gHuBgoh8ZHFseX2ZlH2EiHSQi4F0iHlvgH6Bh3yFjYqFjZWojXuIfX6LhXh+cXCAhYNjaHh0dnB7Yl5wYWt1XnFqenh4bHJwZXhdbWxzbXNZWl5gYmpaUFdXZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKCmm4eMioGQnIaTnHWBqpSSjYagjJaTkIB0fHaFd3h/cnN7hWtzcHpuinaAgYducVtZfpGNiH+AgHZ1gIB/oIaQipKcl6GUmHiKf4GNiZ2eio+GkpiWhYmVmY+XjIuNjo2dio6Qg22IipCRiZyWoZuYlYaYiGqFo4Nnhp2KkX6Lg4uBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4JudnBsbW5we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIl7ho16i4eEiY+co4h8hHeCi394eG9rgYKBXXJzcXFxeFpecGBxa15vaXx5cG1tamx2YHBvanJtWlhhYWJuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhXuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2eppaFjIN/l5SDj591i5+Uk4WKm4yVjYt6cnh0gnByhHNxdYhscG11bYh3g36AbW5VUYGrlIeCeIB2coJ5gaCCkYGTkpickpp4knuDjZOkmpOOiZWZk4WHl5mMlIyJj4+InoWQinxyioWJjoicmp+blpSBlH9php2IZ4ahiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbmtrbHp+YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHeMeoqMeol+g4yRn52FfXx4gox9d3FqbIGCeV93b21scnNWXm9icmFfbG55cGdwZmZzdGhxa2F3ZV1XZmFgclNQTlxmZV14cIh8X1xocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iINzhoV+jIyDe3mVd2ZyaoNgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIf4uef4uak4+EiJiOjo+EdnR2c4Bwb4VzcHGDb2tpdm2Cbn18bXVzUk6C38iS1pN8b3SEdoOggpN3lZGZm5Cae5RzhZCfoZOTkImTm5SGfpaViI2NiJGNiJyAjoF4eox+iIyKnJydm5WTeo52aImSh2yIo4WSh5eDhmOMkZmPlYmWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJva2t5eVyAeY+NgHp9fn+Gjnp5aHNrc4uPioKFhX2VjGt+fm6AjH+Mh32Ee4OQlZqainx3eIOReXNtZnB/g2xqdG9oanRtU15vZHBZYGtxd2ZramJmeHJwcGNfeGBgVmtfXnZPTktgZmNdeXGJdFxcZXZgYWVlj2RgZmFYaXNzbmtxdox8dHmGgnV2fotzf4Z/e4l+comHgZCKiHx+mHZlc218ZYh+b3BsgFpsbnl5c2F2enuNdnN3ind5n4ubrpugkIKFd4iVfnyJnIeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1hHaFooWSb5aQlaCUnIGScYaLo5eJjZWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZybmJmPj3eMdm6GiYt9iqOEkYmdhYVei5SXio+IjouLhIlsfJaBfYiFiZCPhnaFfX1rfWR4dWpueHNYiHqRhoV6fn+AhYt+eGVzan+KjoqDgn+MloVrgXZuiJGCkIV/gnuAkZaTmZB1dHiIjXVzcWd1eYJidG1vYml2Z1JgcWdsVV9udHlgcmNfaH1wcm5bY3JhYlduWlx3TU1MZGZhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rcnaMfXR3hIF4d3uJcYOEfX6Ie3SLiYiVhox+fphzaHVxeW2Lem50cIFYcXp2eXFld3mGjGl3gIlyf5yHmKeco5KEfHCMlHh5i52EhaGNjnuVjX+ZiIR7cndwc2pvgWtpbHx0XmB4dntwdXtnYWV869q1ycPciHNsc4F3ipqIjWmYj4+dlZOBiXGFiaCOhYqVio2YlHyNk4iDiY97kYuGkIJ/dniDg3KHgpOblpSYhox3iH9whYKJh5mig5SMnoOJYYOVj4eJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodnJpc3dsWox9koGFfH+DgISKgnVhdGyIgY+Lgn5/kpF9bYJseIaQhpOEfYF+gZKTkJeJb3J6jYZ1bHFrcniAX3NpblxrdmBSZHJpZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVdbdUxKTGVnX2Jyc4VpW1xleV5eZGd7YGRfXFlrbmVvanN3in5zc4F+enZ6iHOFgnyAh3Z3ioaPmIKMgXuTdmx2dXl4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXGAaWFnYX/Vto6QpnhucXd7cJKQjIdqmY6InJKMhXtpiIuah4GSkYaHmI18jY2BgYmOfJCNfoqFenV7gnpwhoCWmY6TlIGIdYOGdoOAi5Odn4aVj59+iGGAk4eFiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2KNgY5/hX58hH+Eh35wX3NxhXyPjYJ8f5KJenCDZnmDioeMg3yEfoCUkJGThG5weox/dW5vamx6fWJoamlYbHVaUmlyamJRYnJ4bGFlXVpqg21zYlxnX2RsX25UW29OSE9nZVxnbnGAbFpbY3NgXGNsd2RlXV1abGxibWpzdod/cW9/fHx0eIZ4hYJ9gId1eYmBkpV8iIZ2iYFvd3l7hJNwbXyBd16Df3SBbWl7c5RzZ3OHfHKSkYOan5ughod2dpR+bXaTl36IkYOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3d8em1xf2VkaGhXnY9ecXKWvMODdXGUiZB+cpeMhpyTjIhza4mPloF7lIyBhJuMfIuGfXyJjH+UiHWJhXZ3fYFxdYaBnpSGlY+DgnJ/iHWEfImYnZiHk46dgIhlfZOCgIWDiYlygX1nfot7eH5/h4uOfGmAfIN2Zm94eHN2c2xqjYWKgYp/eIGAhIN/a15yeHp+jYqFe4KPgH5ygGl4g4eLhoR4g3yBl42QjH1ubXuJfXd1b2hnfHZjXHBiV29yU1Nuc2lhTmZ0eGVgXVxYboBvc1llYl1qbWBwT1lrUURTZ2Faa25te29aW15tY1pib3dkZlxdYGxqY21qc3aCg3Fufnt/dHWDeoOCfIGFdn6JgZaQeIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRslI2FnpigmYWIbn2Mdmp4mI5/goqClZeJeY6Wb3pzcGxqZGB0e2hgZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnF7kIuQeH6Vi4WZkY2Gb2yGkpJ6eZKGgISYinyHf3h4iYqEloBvi4hxdH16aXmFg6WRhJONg39vfoN2hHmFm5iTi5KQlIWHcHuSg32Dg4mDboF4aICEeHJ/f4KKhntlfX6EdWRwc4BoeHBvdZiNhYKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoBucYSHjoSFc4R4gJmNjYR4bm9/hH93e2Voan1wX1l3WlhxbU5XcnNnYEtsdnRgXVtbWXR9cm9XZ11manFfb05XaFE/WWdfW3BqZ3lxW1tYa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVwgXp/gX6Cf3aBhYmXinGCjXF7hnx5eYOTjHVqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnZGChmeHg29nepWJfn+FgZmKgXyNjGl4cmtsZl9hb3ltX2JveVxka4J6YXF2X2Vm1Oq+ijI6PouOgHJ5hYiOjXaDl4x+ko6Nf25shY2Mdn2Pf4WClYl8g3hudoaEg5d3b4iFa3V7dGZ5goOnjIOPi4R9bn90doN5hpyQjJCRkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN3YnmEgXFkcWh+bXRxdYGbi4B/hX5ydX2AcoFwW21+dHiKg4t7h4B8iHh6cWyIg4+Ei3KBeX+Xi4t/dG5rd4CAdXVcaWh3cFlXfFNacGVMWnJyZVtKcHdvXFpaWV10fnVoWWJbZ2ZuY2lMV2ZRPV5mXF11ZV90b1pZVG9kWWRxeVpoXl9nbWdqbGlwd32ObGmChH55boB7fYF/gnp1goGNk4VwgItueH6AenuIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjHt+f4OUgn99iohrdXFnaGNbYmdyb2BhbHRhaHCJeWJzdF5jZJugj25cNVmvtXVqgIl9koZ2hZaFc46LindwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3GGfmh2eW1leYiEpYeAh42Jfm5+dn+AfIyZh4KTkJiIi4SJfI+IcXt9hHxpfm1rgHt6aXp2gYeBcmB3gX5xZHJndYJtdHuFlJGBfIF/bnd5fHR+bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVyfn1+k4mJem5uam6CgnVuXGdmc3FRW3tOXHBcT1tycGRWS3N4aldZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFcdGxXV1N0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBgIJ6d4CAiouDcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJF4fXuBkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaTgnORjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHZmd3ZjanyDiJ6Cf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHuJiWx5eX91aHtpa395c2l6doCCfWhgd4d9amt0aHt/aXaBjJCUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWltiIJycF1oY3NuSmV1TF5uVVRZc25iUU9zeGFSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdnVFZWd11bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354gYGBfHZ9hIiGg3B2g3Jud4KCfomLk39wgHt3eXqBjHWDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/e4mGhHaPgGdvbl9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI9mcYNvZ3ZuW219gJCTgIB4kpJ9eHtth3WAkIuEdJaKkY6HhYV7f4VsdXZ/bWh3ZW17dm1qdnd/f3xgYniGemh0dWN+emd0hY6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e314e3KLgX1zZ3RlbouEbXRbal91ZEhubkxbYldWVXhtYlBTdHZYUFVYXmFxhG9cYGNtZWNebmJUXHJHQmZfXWZoXVp6YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjXV/dnh+d4GDgXt0foSIh4NvcX90cXV+hYKJjYp7d394g3x8hYd4h3x9gX6EgHt+c3Z5jI6fjYl6iXZ0g3lefYWZjHmGg3SFhoV3iXtibmxbYltbYVZqc2NgXGdub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHJ8hYp/e5GFenl0eXV1e2psdWOEdZGCd3BnXn2CeouJZXKCa2pxY1hse4aciIKBc5eUd357bohxgYqLh3GXjpCIhYuDe3l+cXFvfWZocmJueHFqa3F3fHx5XGV5gHdpdXhmgnZndIeLjZR8coZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXZ9cXp0h3x6cmZzYW6MgmxzWGtfd1tJbmtNVlVeVFV7a2FPVHVyUVFUVl5idIVoXGBsamZjWW5hWGJwR0FoXWBmX11Ve15PVmRwWVtqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fnmCiIB1c4CGhY2CcHB7eHd1eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5KTn3+MfIttdoB5Y4OHl4ZzkotvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJmgXNia2VXW2Bpf3e+rnugt21ic4ZodHxyeoOGe32Mf3h4c3Zve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iKpIGFf3GZk3GAeHWCbYCCkYdzlYiMh4SIhX14dHJuaHlgam1gbXZrZ2preXd6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3VtdGJcb3xrdXyMfIFmdYd9bXFndX54fn9yfWx6eoF6eHBmbGJuin5tblZrYHdVSmprT1JOaE5ZfGhiTlV2akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1piZFdZVXlaTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF3cJmFdn9+d398hYd9dXOCiH+Vgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOGaXd9fGyDhJOAco+CcYWCfoF/b2ZsZlddW1xbVGRxZV9YY3N1aXVwZWVjV1xcaIBwb3KAdIllZXh+aXR2c3ODhXiAhHl3dHVua3twYWdrZ4Z0jYRuZl1ffXB7iX5pbXdmaWRVV3JwjaZ8hHx2lpBze3N8em57e5CFdph8h4aDhoN8dHBybGd1XG1oX2x0ZGdmaXpve3JZZ4F3dGdwgHeCdWJ3hYp8lIBui2pteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cHl5c31mfn9/eXduY2ZiboZ8bWtWamJwU0tpa09MTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZmBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFtjZV93Zm1icGlzbnJ/dHSagXd/gHd/foaFen11goR+l4VucnR7enVxhIWPgYB6i3V0kYB9gZSOgIWEfX6Mhnt+gHZ7o6WKeYiFhGx1fHt1g4KMem6Fc3qEfYGDdW5qaGVWXVtaWlRibmRbWGJze2lobWlgYldfWmmAamtvgGhsYWh5eGt0dHRuhYF7f312dW16aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+ndoF6fJCOeXVvfm9zdXmPgHeVdIWCf4WIdmpydmdobltsZF1sc19nYWl4aHttWm2CcnNpb4B+eXdhd4SEeI+Ecohxb3l/cmNxaFxvd2Rxc4h8eGJzgHBnanhzcmx4d3V3ZIN7f3d2b2RkY258fWtsVWliZlNLbWhPR1JrRWF4Z2FNU3FdSU1UWWVrd3tlXm1xaWRdVl9Vbm5XS1RoWGZeWE5VbFRKXHlfW19rXV1aYmVgemhsYW9vdW5vd3V6mH13gIF6gH+Hhnp4eoN+gZOEcXR0fnp2dIWIkH2AfZBsc5WBfIOfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnW1pedYFpXm5sXGJWXFxrgWZydH1pal1rdnZndHdxbYV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZaGSQp25+eICLjnpwcHxmeW96jHt2jnGEfX5/hm5kdnNkaGhca2Jdb29bZ19sdWR6aF10gG9ya3F7fXV1YnSFinqHhn9/d3J1f3VhcGxZcXRicXKFfHVkcn9sYWx6b2ppenh1cmaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdWYUdidmZhS1RvV0pMWFhnbHZ6ZGVucWZjWlddWHZlVEpcY1hoWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb252g5h5coGAfH+Ii4Z9dXaGeIeMfXR1dYJ4enqCjI59foSJanSXgXuLnX1+hXqBen58hohzcY+ujHt7hpB+ZnKIenR8fHZyb4Zse35sj3picG9iZV1lVllZV2Rma2BdXHOFaFhxblpeV1pcbHtjcHd2bGJbbXN0Z3V1cG2EeH6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXmJjkKVoeXSChZB4bW55Z3htfIV7dYhygHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenZvcn1yYnhkW29wYnFxgnxzZnGAZF5udmlkZ3l6dG5vgXV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVlIYnRkYUlUbVNJTFpXaWxye2JsbHNjYVpaW2F2W1NLZF1YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG5qdoGQeW6DfoCBkoiEgXZ0iXSMhnRyd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX1/dIiDc3CZont6f4mVeWR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiGVScm5bWlhYYGx3ZGl1ampeWm1zcW10c3RqhXx+f3x3bm5sZGlxY1tqcmR0do9zW1dTZGFygH9ygl1iY11TWmBbY5OfZXJxhYSRdGxqeWxvcHp8e3GAd39yenp6ZGZ2Z11iWmFnW153aFdiXm9oYXdgW3t2amlybndzc3RocIGUgoZ+hHZyanB8bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfWxsdH5zcXhrcGFcZWxsemFnU2dVV1JQdltSUFlSSWNzYmBHVWpQSE9aVmtsa3xmbW9xYVxaWFlscFdSUGZXV2lTVEZaXE9IcnVYX2NtY1hhYGFdi2pjZG15eGtuaXV5hntrg32AhJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdGhidGVlXVpudW5xdXV5a4d8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFtgWWOWlWNucIOFinNqaHpuZXN2c3xsenR1b3p+dV9mcmNbXlZiZFhhdWVVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4RxcmZufXByb1NbZmpmcXSBd3NibHZVYnFqW19uZXxlbXZ8c3Jzam1gWmRqandeZlRkVVZQVG1XUVdTUEhlcl9hRlhpTkhYVFZuaWR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bIOAfYaXe3+IgYp/a5OIcmd0gHt1gIN9iI5/i5NyfYqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3d4bnqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5qbWBUVlNvZ3RrZXhkZV1ZcHRtcnp4c22Ie4B2nHt6a2FlbG1eYG9qZXB5fmdaVlhga3h8e3CEX2JeZ1ZZYFdknIhia3GBh313a2t4bFt2cWx6aXZzbm97gHJYam5fWV1VYWNXZHFjU15haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFmcHxtcm1jWWBoaW90gXRyXmlsUmVxZFRibmJ6Y3F2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRgeGhufmRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc21odnR6g3OBg3qIjX58ioeOem6QinRsc4J0f3+IhYaRhJWPen2Mj4iRm4SAfIyEc3+Bc3R4cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Oj4+Pjo6Njo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8vMDAwLz5ERERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMfHR0dHBwcLjc1NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eIh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhISFhYaFhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkImQj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIeHiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNhoWGj4mMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eLh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIuHhoyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii4yLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWdqZ2hlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5dWVleYmFeXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFFRUVFSVlZSUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRT05NT09PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktKTklOTkxNT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0VTQlVQSEtPS0lJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PjxFRD0/RllDW1Y+RUVHR0dHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1DXUReYT5BRERGQ0ZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7PD49OkNgPlxrQ0FCP0FAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Njk6OTk6RmdAXG0/OTg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9EOz49PjtGaUtcbT46PD49Pz9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XXBCPkRGP01kWF1lPj09Ozw+PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ+PDw9QD04Ojpud0o3PDlFWmNgYGRJOzw9RDo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFtRPDw9TFBJSHZ3Tzc4OVRobWdobGBBO05ROTs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BFdXlIPGGBhIB6e3dcRj1BZXJ0bG1ybU9GZk86PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUlzeWtmhISDgoOAfWBYUUZicXJxb3VxYGBpSkBCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAR3B0fYKCgYN+fYR0SlNmWGFxcnR2fHRrbWNJSklJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaXN9gXx/hH55hnFCSGRtbHaBhoeHhHRrVklNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/eICEhYOEim1AT3OBhYeHh4eIhmdKTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKDhIOFh4WHglZshIeHh4aHiImIfFFLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlaChISEgoKGhoWDgoWFhYWGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZoWEhIR/gIODgoOEhIWFhoeIiIiIiYuOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgYODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6Ozg5ODk4Nzc3OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9coSAgYOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHV4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoOCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQkFAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZYhYKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSlmFgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LR0dHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo/QT5AQENGSUpRYIKDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUhKTFdyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19SUlBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFRUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FIS0xQV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NCRlZORk9QUFRZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyPi4uLZ1ZVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHmFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJUUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lJWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1VUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0NCQURAT1BNU2RzdHV1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh6fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFHSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODc5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGFfXllVUE1PTkxISEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducXR3eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHF0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdHZ5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUFAQj0+RUhHREZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMS0ZGRkQ/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDSEdJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJDQ0dGSkxKRUlJRkdIQ0M7QUBCPkBAQ0VESU1QR0lLR0hLREhJS01ISkxISEpMS01dUklIRE1GQURLS05NUE5LTUpLRkdHSk1OUU5MY25pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHREVFR0VHQkNAPjw9Ojs6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUhJTEdFRklJTE5LSkhFTkhDR01MT01PTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam5la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVCQkJFQERCPj8+Ojs7PTo9PkNBP0FDRUdKRklJTEhHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ8QkE+QT06Oj0/Oz4+QEI/QEJER0tGSUdJSEZGR0VDQkFBRkZDQkNCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQk5PTVFPT09OT09LS0tQVVdWVVRYYF5caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkBERTxBQUBDPDg5PT45Pzw/Qj9AQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRkhJRUNJSUpLTUtPU05EUVJQUVJOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSUtIRUtLTE1OT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJzeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJDSERDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtJTUxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbXl9eYGJeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0REQDo8PkA/Pj9DQjxAPkFBRkNFRERIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPU1JRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkZFRkdFSUVGRElJR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpOTE5OTk9LT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmNlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTExNR0REQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDSEhIR0ZKRkNHSUdHSkZJTEhKSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiZ25oYmloaG14dmxoam1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MTExHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0NJRkNISkpJSUtGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJGRkhDREpFRUpMTUtMTUdHTUlISUtIS0pJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5MTU5ITE1JTEtISk1JS0pKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2hhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJBQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEhMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0xLRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZWl1YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dDRUdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZIR0pHSElFRkxJSUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESURHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFHRkpJS0tJTEpJRkVKR0RGR0VFSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0ZGSUpOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlEQ0NFQUZKREBKTEpPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxZXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtHQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERLS05NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElBP0lKSE9dYVpbZF1fVFFTWF1cXFxfWktXXExSXFlJTV5QT1xfYWNkY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkZHSEdHSUZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmFgYmJgY2JiZGRiWE9RUVJbU1teXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlIREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYmJXX19UUE5QUVhSXVxbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5OT01OTE5IS0FEQUNERkRDQUVGQk1IQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkVk9TVFBQT05QVVRcWVlaXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJS0tLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRU1bSV9cc21PTVZtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFTVFhXVFhVVFxUUGZaaGhkWFNrVFdWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISDg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0dgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNXUG1IcW5wYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlJWTEtOSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBOTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hybVpLTFV5cHVtdWJudlBkZUlmdnFtd2+AamZ4eGlYc1Jpe21panp6fWx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b15fX2NiWl1iZGdpamVnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUE9PUE1QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSkxNS0xRUVFRUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9ISktISUlIUlFMTk9NTFRTU09UUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFPU1JXVVRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZ2VlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktMT09MTVRQTlNRUU1YWFVUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lVUlJYVlVXW1laX11VWF9dXl1cXWFhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUVBSWFRSUU9NT1NVT1dSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlVWWFRXV1RTUlhWVVpdWV1fXlZeXV5gXFxgYF9fWmJiZGhoZWRhWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRVFdVV1hWVFhaVFNRWldWXF5aX19gVWFcYGFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRUWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUUlJcV1pdXl1hYWBXYltjYl5hY19cYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtRV1ZbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVpdVFVOVldXXltYUVRVWFlZVVdZW1RTVl1ZXV1gXWJjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVVlZUVFReXmBeXmJcYVVdXmJreXRsfWxaVVpVUVFTXFRVVFVUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTV1ZVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlVaXVxeYWFfZGRdXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRZWFldXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWVpYVl1eX15jYmFlZV1iXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVxZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVlhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVlZWVlZTVlRYXFxfYGBdYF1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFcW1pZXF9iX2JkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5aWVVYXV1fYF9fW1peXmBiY1xcV1tdYGJhY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVteX2FjYmFhXWJbYmRiYGNjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9dW2BhYmViX11TXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOBg4OCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8fHx7e3t8fHx7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjY2NjY2NjYuJiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIyQkJCQkJCQjYyMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh3eHd3d3d3d3d4eXl5eXl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX18fHx8fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2eHt4eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx9enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fX59eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3x6fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fnt9fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8enp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fnx9fn5+fn5+fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgIB/fn+BgICAf4CBgYB/f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6Af3+AgIR/g4F+f39+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn9/jH6NhX5/f39+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf4GXgpSMfn+AgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKChp6Gl5SAgoGBgoKCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKKoYiZmoeHhoaGhoeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSDgYGBgYujipqciYaGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4KAjaOJl5yIhISDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoKCgoGNo4+WmYSCg4GBgYGAfoGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI6EgYCAhZ+mqaiXgoKBg4aDf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKl4mEg4SYraerrKCOgYKEkISBgYCBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWGhISDg4OChI6Zj4WFiaWhmaWjm56JgpSVhIOCgYGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jZ2Zk4SIn5SQn5yUnZWSno6Cg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fnyCl5OhnYyTko2YmpSZoaGbh4GBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJafi35/gH2Hi3+EhpWopZ+SkZWPiZWgnZmEgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkqCKgIyFfYaIgYCGiZyhopCDf35+gpadkYKDg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkIKEioWDgoF/f4OIj4+GgH9/gIB/go6Gg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYiBf4CAf4aCf3+AgICAgICAgIOFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhYV/f39/gICAgICAgICAgIF/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiIGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoSCgoOEgoODhIKBgYGBgYODhIODkZKQjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH5+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gn9/gYODg4ODgoJ/fX1/gICBf31+fn18fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIB/fH19fn19foCAf31/fn1+gYODgoKCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f39+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4GCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgYOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkpKOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjo6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gn+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2OjoqFhoeFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9f4CAg4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY6Mi4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5/f4CAg4eJiYmKiYqJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fH1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59gn2AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYWFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhYWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgoOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH59fHx8fHt5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+foB/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgICAgX97gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYODg4OGhICBfnx9fHx7fXh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn+AfXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+BgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGBgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDf3+CgYSDg4SBgYOBgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhIR/gIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYOBgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOAg4SEhYOCgoODgoGEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5+fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIKBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhIWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e399fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17enl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODhISFhIWEhYSGg4aHhYaEhIaHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aGgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx9fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4eIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeDh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGh4eFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NXV1NTU1NTV1dXV1dXV1dTU1dXV1dXU1NTU1NTT0tPT09TU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dTU1NTV1dXV1dXV1djY19fX19jX19fX19fW09LS09PU1NPT09PU1NXV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR09PT09PT09PT1NTU1ce3ubm4uLi4uLi4uLi3vdPS0tPT0tLS0tLS09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0+QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS9oKOjo6Ojo6Ojo6OjoavS0tLT0tLS0tLS0tLS0N/r6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLVvqKlpaSkpKSkpKSkpKOt0tLS0tLS0tLS0tLT0tDf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs8PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cCmqKipqampqampqamosNLS0tLS0tLS0tLS09PR3+rp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLS0tPU1dbW1tbW1tbW1tbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O09TQz8/T08/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbW1tbW1tbW1tbW19fW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdLQoZbL08eSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A9Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTOqKCrn8+ZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWmpJ+WkKG0lYadnM7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9moqdoKeZtL/Jl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZmdpZ6MoMTSkpmgztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0ZqdvZvFyZTZraO/ntXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekosadk5aju82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdos2ym66znaXQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+7rJ+aoZyckaeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vk5ihqZ+inqiiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xBPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cqs42QpdSako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0dbAvdbU07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiYmQj46PlJSYkJWcmp2eqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2boqGVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qlp6Spq6+spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaijopybm6SgpaijoJidmJ+hoqmnoKKirqyrqqetr6ilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaCcmJmfoKGkpKKenpagm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpuYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7y7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpqy0tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbJxb/DwMvNz8rGxMPDwcS+uL7Bw8DEv8HPz87Hq6+2tLWroKe0s66ruLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM7Pz8zDx8bIycjIycfFycfIx7/Fx8TEyczK0s/Tzry4trS4uMG+vrq9ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zoaml0bXhsXWRbVmBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDOx8zJwsLHwsvLyMbMys7FxsXDxcrHytDN0MzHxMDDwsnNx8XBxMfBvL60sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDxL+/vsTLyMrLyby7yMbIzcjDyMnJxcXDwsDFtcLJysi+xcfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucfQysTEwMPBwsHDwsO+v6G3wcHBoLrHzMvFyNHCsL6+uLq7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkY2piZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7fAt7zL1Le7wMG8u8W9u8HEv7+Sp73Cu3qpwMnEwMDKwLHBv7u3u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiY2hqZ2ZpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB3pd+ybzDtbrHt7a5u729ipu9xrZglcDFwL+8wb64xrzCv7zFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F4cW1lZWZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80Mt9gLjEx7e5uK63tbi9tYCRvcisVnzAxsDAv728v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZhbWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7sr2+u8S2tbi1t8C+xLzCxNaqdHeQxs/CwLivtbW7w6p5ib/JnVVmtcvDwr+/vr3HzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsaW50bnhjZ2JbY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsbm8vbK8vrzFuLG3ub7KysjDxsvOinN0jszRzMrEtbrAxM6XcYXBx5BYWpfOxsK/wrzAw8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8z8y8ur68xL63vbywr7+9wcvJsXp1eo3GzMvNysbCxMvThG2Cv76GXlh6ysbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2wLjL2L2+tr/Av6+Fdm97doSXtJlxeXuPv8fLyMHDwcDJy3Npe7m0fGFXaMbGxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNncF1bXl1ZUkVEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8VyfMHMvLa5w62HZ1tjXlBbX3B/b3Z8krq/xsC5wLy+xsJlYXKts3VhVmHBx8PDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX2BZU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucXKdGeGtb22tp5uamdVX1tJTFFTXm9zgZ64uMK6s7u3u769YVpkoLR3XVRnwsPEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620tbfHxnx0aYWltphiU0VfUU1pZVNMSFBxeIihsLe+ubK1sry6u2dVV5i8flNQcsHExsTAvb+5s6+xvLquu7Szpquorbq+uMvCv76sq7Cvs7u3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3w7mFem5ujqBvT0lCa1JDXHuHh1tGV4imp7C2urW0sqy8urp0VVCFt4FMVIK/wcfDv7m6ta2lrbaxprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLq9kYF3coV+V0ZCV4hRS05hfYd+UUNPhrqys7WytK+su7q6hGZbeJ+BXHGXubu9uLaysa2roK2uqJ2jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWyv6GHg4R9ZkxAVXpwTEpMToerb1Y/c765s7SysLGtsLq3q46DdIWlqampra64r6qrrayjqKy0p52XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Wqk42Qm2NFVp15UldIUWFJfH9jY3euubKss6+urK23qZWNnaSppJ+cnJ2dp6ieoKiooam3sZ+Wl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyqubKeorVRQXqdd1hrSlVjaXZ1ZGp6nbK0qrK0rqqrqZKUq6+nnZCXk4+YoJ6hoJykpa2nqaCalpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooLDBub18T0tsqlxqfnF2U15vYWBtaICWsa+us7Wqp6Gho52ZlI2QlZeYmJyfoqKbn62qkJeXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihn5ycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0E2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2hw8GAVVZmcH12bWZ6clRfYmRqbGJscJS0sLC4rKahnZ6alZiamZCOkZWRjI6OlJyjjHaXmpqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnaWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpOT1VMU0xBNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanrGlkHtthnBiZVdRXFVXS05VWlRPX1lstLOrr6efnqKgl5GUm6CbmJeSk5+coaSYhmx1nZufl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoaKEZFpfaWFWTlBGPz9BREVCR1JMT6i2qqmkn5+ZkpKUmJiWlZWMiIuOlZ2dnnlhhp+Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0JGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+ZgV9eZmBSRUU8SzxGPEI/PkBBTXqpramqpZ+enqKjnp+dmpyblJOVlJ2emJZ9dJOimqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO1r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkg5NTs+Nzs8Pzw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+giXZqYVdORD9MX35sX0M8MzVLe6qyp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4b4KdpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEycnDwca+urS6urW7t7C1sqq6sq67t7+7uqq4rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cmXFqYFVJRUBBUo2epIpQR16NrqyhmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1xjqatrrS5xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpRlWFBMRURBRl6+1sOjk6OzrqOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vcvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnSzc7TzcXIycrBxsvHycjGv8Ozs8jEy8vLz8bKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbXExDREZES1V4urirr6+mnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPCvcTR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dXX09fYztLKz9HMz9DN09C/yMfKxMzMzM7PxcbHtr/Kv9LNzM/Gyci/xMPIzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD47Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+io15FO0FCSVpsmq6sqJuUl5+cmqCgnpucmZWJd2ljYF9fX19eX19dYmx1dHBwb2xycXWSxMfF1NbX19fT1tDV1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwMbDyMbOzdHR0snMzcDKzMbTz8zOyMTKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho7BzREBBP1NtnbCon5eVl5manJ+dmJyckn1wZWNiX19hX19hYF9gYF9gZm5wcG5rb3J3d5zLwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDJwMjKzc7Qy9DOzszOz8jL0NHLzsrCycfJzMvM0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaWqf2JnYmmHnZ+blZOWm56enpyTlpeUiGteXl5hZGJgYGBhYGBhXmBfXlxibXJvb3N0dnZ5pL3L1dHW1NPY1s7O1MvOzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO5srK+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhZWGhWTEZMSVBRQjtDPjs2Nzo4Ojo1Nz09QTw6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+tiXOEh6HDqpaMjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgYF9gYWFgX11bXWdycnFyc3BtcnmkxtPPy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62ktXNjf4C2rJCOjZaPhYODg4F9hIR+c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9wfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvbzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHxMq3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWlxYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xsLFlZXqLtpCLkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7wrqzvMXEwsK3v7W2vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1deWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfAucW9q6+eXGlyl5SLiIqEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZWViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusC4rrCxp6qtrKe4tLe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u0q7i9vcC9sbu2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy8DPysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxb++ubfJtqqxklxtdZGOhomJenh+hoZ3d4F8c2hdXV1dX2BfYGRhX2RlY19fXFteXF1eWlxbXV9scG5oZmttbnJ8pMe/ubi1sKutp56jqqeeq62zraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbCyMq4xcfGv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysLJyr7AvMG6srS0w66psI5fb4CQiI6Qe3h9iYV6e4SAd25eXVxcXV9gX19kYmJjY2JgX15aW1paXVpaWlpcZW5vaGZnaWtucYGtubC1rqakp6eaoKWhmpylq66kqKKsqq2rsKSmn6qttbaxvbmvt6+prri0tLy4tLyvuLm1srzBssCupamjq7Gys6i9qquoq62ttLOmqK6hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0I7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLW7tbCutLutp6qRaWmHhIeLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhamlq6Wgm6GllJ6lm5iRoaOqo6OgpqWopa2gnZykpqyysLa3p7CsqKq0q7S6sba2rra5srC6urG2paCkoKaxp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKGxra2ssrSztLC1vLa7wcCyur7DwbK5ucOzwb2/tbi8vb+8wsfEw8O+wMSgg3hwbGJmX2tvYFVZXkhOZ09UR0VLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6VnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO+wKu1u7GrpK6zrZ+hkGdshoaGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Hnamgl5WaoZaco5mWjZ+ho6ecoKCkpqKnnpuim5+rsK2xtqOpqqqsrKS0ua23sKyzta6zta6wqp+en6SisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr7AvcPBu7u9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7uruLmwoZ6oq6eWnZBrfYaGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRkZWZmaGlrcY2onZOUlJuYm6KXlpGcoqKonpydpaaipZygoJuZrq6urrKgpqKuq6eitbGysqyor7KnurOmtqCin5yjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLG7trq9v7ezsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbi6rLG0rp6Zo6mfk5mNdICEhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZyTlZCVl5egl5mVl6CeoZ2WoaGppJ+eqJ2cmqunr7Crm6OkuKqhoK6otqqmp62wpLiwpLego5uZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7Gwr66vpqiosq2xtLC8tLm3rqOUgXl1ZF5hVllYU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW4ua+ur6mbmKColJCJiH+BfXdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiY2RmaYGWk5aMkpSUm5mdlpacoJyflqGgpqakpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWxrqy0nqGdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJeep5ynoaKapKWlq6SlsKelo6urraaprq+uq6iqqbOmpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq6ynmJeeo4uIc4mIf3duY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1VSVWBgX2BhX2FhY2VqgJSTipGOlJOUnZWWl6SZoJedoaWhraakpKOjopyqq6Wan6WxqqChnaWrnqihnq2sqamuraKiopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJScoaOdpKGilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6msnoxycW9gW1dWVlJHUU9IWltPUkpUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0s6mrppWam5yIgHKIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5fX19iZG2OkISRh4+Rj5qTlZOcm6Ocm6GpqauorKeopqSZpa+llZmlr6qgnJmboJ6vmpyrs6Clpp+jpKGVk5uWlpKpqq2anJ+hoJuUkIyZjoyRjJGNlpWQnaKgo52co5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbKrr5iFdHNoW1lZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NjU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL26srSlqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfoyBi3+MkYqSjZeRl5mioJugq6qmrqyosKSpmp+toJWWpKmonZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Ostauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzurKyoaKcnZeXlIN/d2tnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY6HkIqXiZSUmJuZnqmboKqmpayeqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkoeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqraSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKals6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbqvrJ6YmZyUk4d7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6KkmaWXopyVjYeZmoxzjYN+jZeWhpGakJSOjnuZj52Mgol/iZifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU5STUhKSkRKTEZKSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaemp7OnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noqaSnaa2raKejpSVkY5+eH5lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlscm1/hXx0TlhykIOXh46dl4uUkZ+YnZWUlpWPlomAk4pfO1dvfIuUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLkImdiJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbsKKZloWTjoqGfXN1XVBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UUJAf5WSkn2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniKkYR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6GvoaeopaeosK2qtry2t7ezwbu2p7rIuLaoqLW2qrK8pp6Wjn+Jk6iVlIl9jYOBfHdwblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWVhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amlcVY+JlIl0f4eBfIWMk4KSmouPe4aPgHaAeHNvdnF0jY2Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYqIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWfnZiMp6SToaCWnp6kgHJoYVxdSldQUkhKWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCyqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY6UgY2bjZB+doV3e3VubmlZS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXKHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX2Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYj3dvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY+FknqIjYqJdXB7bXRwaWxqWEtGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQln9uaW5vblhWWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456gIWLhXRudGtwbGRrallORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk46PfHN9fHFwbnVtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh2ampvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdnYmpucmxwg3Vpb1h1cI6bkndsf3t9bXFtcIB6c3VuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY96cXBva2BbXF5cWVhhX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goRslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaAhJmEm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRydHp7d4ptaGpieW+GkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJdnBzdGVnX1tbXlRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKm3RtfIGGh32OaGdoeH9uhYeChXGEhUdsgHdyeXZobWtfd32DiH+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3NzcmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRTkdDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09TUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt3lZKrs4iNl599lJ2cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Kdo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0NJSFRPRkhMRkpHRUZIQUtGQ0ZHQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dFPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ukuMaotsnHtb65tKijtK2xsZuZkpqfiaivq6WUdp+kl6GrsbOZlqqtqK62u7K6rK+1orGssbW8t7WutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVEpERUxVUUhJSkRJR0VBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYWHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lrqOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpLDGubGzsbSopLW2qrGgoZabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4v7e6t7msrLCmsaqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhWGplamVXW2RZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmjiZWTlpOTk42QlpKHhnuGgY2WioGEgYp6fIuHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhaZ1lUYGBNU09FQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urnJv7q9ycy7vMG8t7W7u7e9tLqxxmF1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0sLm3tsO6xb3DyLCeuaqiq46lqLaJgH9xX2FiXVdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g4CDeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlUSkRBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAub23xsC6uMrLure6tri5sri1tK62tplkdaicrXBeoa2cmKCim6Seq6WUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC/wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn95bF1fXFhdYFljY1FcYFNQS0NCRUdFPEBFPkJIQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWVRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C5s7u+tbHEx7WwubCwu6uzsaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnSx8zNwtDSuLDDvMS5pba6xKKCbmNcXF1YYFdYZlpRXVdPT0JCSEVCSTtBRD5BRz8/Qjc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjZubl4uOlZGajn2Ji4WOioqLkId8hIJwf4iBhnuHcoOSi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVVcbm52gnKXrbistKewtqusvMCxq7WmpbinrK6hq7SjjrGumpiYjJGTkYSOm4GNp5KciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem5lXWJcVmBSXVtPUFRQTkg+QUZBQkU8QEI+RUQ+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn6AgYd5hHWFk5GJf292cmtzfHt3fHOBd3FrgHNyaG9xenlye77Lm36MsoN2coR2aGFqXUNaWltXZmRYZWtTWF1dYGReY3h7fouBmaqkpKGgoaimqrC4qqW0o6GtoqOtoqexn4mmmpSSkYmRjoiBlIlrlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM7PyMLL0dTR1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvYmBfWFRZUlxQSkdJSUpAOzo7RUJEPEJEPkhCP0JDOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISUmYqNiIiLiX6DeHR7fYOHd396h5GWgINueHBtdX92eH50hXx5bYd2dG59doR1eXudto08QYvGpX6NfGllVklDZmNlY2hqZG94W19maWtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ6hqaCisZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2bmRdWVJVUFpWRkdKSkVFPTo3OUBBQjpIREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhYd6hHlxenuEhnV6hY6NnXqMcHxvb3p/cXyBcYOHgW6OenV3fXyCdX98h4iwdFmpwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ7i4eOlJKblaCVh4yTm6Cbn6qfoK2copqZn6Wen6yZi5qMkZGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjpSMhnubiJOPrqqUlZeemKeutb2prb3Gy8jJy8vPyMPRytTW2NfY19Tb19PZ29bP29rR1snUy5V5e2hoW1lQUlNeSENFSUk+QT49Nzo9Pzs+SD0/QUFBREA+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgoR+hHx8hJeOh4t+hoaAd4J5bnt7h4F1epKejaB2j3WCdHWBfXSAhG+Bj4JvkoR0fIGFenaGfIm3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHZtk5aUlY+YkIOKj5aal5emnJegl5+TkpejnZmrlpGQio2RgoyFiYiBhZCRnpyZiYWLgYaYeomJn5ePiI6Ki4J8oYmQi7yhmJOXmZyppqaun6i1vsDAucfJzc7FzcrR1tbV2dXX29TX2drb19va2djO3MaGenlnaGVgVFdWVU1LRE5DOzw9PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH+AfYV7foGRiYSFeoSIe3V9dG58fYZ+dH6SnpGfg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcKCknYyLkJKFiYuQkpWPnZqTlZGXjYyVn52UoZSSjo2Qi36Qjo6LhIiSlpqfn4mMlJKekYKLgKaZiISOg4aEgKWGiou4mJ2SlZaip6Gdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3a2lkV2BbVFBPSERNQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYCOinFyeYp7en99f3yIenx7i4eCfnWDhnlzenNtgX6FfXeFm6GbnpSSgIuIf5iHgJySboeohXqgi3yRjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5yPg5ibkJCOXIKikYKMn5OVjIeIjJKTjJSUlJCMj4qIlpudj5WWkYuSlIaAi4iSjYmKnJaZo6OGkp2WoYuKiI6ckIOIj4CDh4WkhoyQs5idkpSXoaGfmZKcnqexuKylvMLHzcfGz8zPzM7Xz9HUrtbV2NrY2trX1tnan298dGdnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKso2Ep5GEmZOFmYuilqCYk4mbnaGSqa+fkZWQjY2IlYtujbeFmsTIspyhpZucmJaRspFkpM3Hlo+Fh4mQko2Nk5SKhYqKhpaam4+QlJOGlZeEf4+LmYiNkKqXl6SjiJmelpuJj4iXl4qEj42Bf4ePpYmNk6mal5OWmaGYn5mTnZujs7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1gY59fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6Oqs6GWp5+lpJaVrqKDkLiVkrOZjaGgjKWbr6OknZiQp5anma2vpJeVlpSQi5iZlqDAjqTJuKuboqatmJGbnbKdhoWoopyYhYiJjpWNi5OPiIGGh4iTmJSMi5OThpSYhoSRkJx0kZmzlpeloYicmZOPipCLl5qJipaOhn2MmJ6JkJCcmpmTmJiflKCdlZ+bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLentuhYZ6fIR4gIWBfnB4fH19b3ONen2Be3iGi4mGg5Knu6yosr2vpa2zs6ijorCsipq0nqO4pJWtpJaprbempKOfmamYqaOvsKqamZyUlZGXn5eZu7utyaFptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkp2ZtJeWq56Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5uYnpShoJScnaWvqKGls7irwsjEtbq9u8XHyMLRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauzt4yosq6uvKqbu6Sorbm4q6amoqGjo6ivsrGrnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGHkIyOnIiHj5iNi5WXlJCalp2nmrGakaydjpqPko6UkJCWl46RoJGJlZujrJSWj5ScnpSgnZuYoKGUmp6npqSipLCypsHHw6+wurbFxMK+zafHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6urXBu6upnLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSSj4mXn5eTmZWYpqCvnYyqnI6Wj5KRlJWNkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJiepqSmpqSvraXAxMOuqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq+yMjKwdLJysLMvMGzrbu+p7q/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn6+epaKYo7S8qZuovMGjtravq5Kwrausl4aaqqalkYKMk6WViYB1ipJ6hY2RkJ6fk4+Ui5CNlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqKeisqyovMDEr6Wzt8zAua7Es7u+wriswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvcjDx8XTzc7Ny7vBt6+6vLS8y7zDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtbOtrpaWpayooJGOkrHFp5WOfJGVfYiRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Qj56IWpCWl5KWpZllmKOesqWWopasrKunm56ml5iXmJWhpKimn7arqbq8xLWltLXLwbiptqyyuriuqLi6vbiDbG5aV1RVTkZKU05LP0FHRERIRkc5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxr3FxMbGzs7O0sq+u7Wxuru8vs+2xL23ubeysbWzuLOsppyrq7iqqKevsJejr6SnpKS0wLCqrLS+wrnAubOnubW4sq6Vpa2vrqWLk5WhjXTBmn6XmYWPlpqMsZWamZWTk5mZpaOVn5uWmqmdnKGgmouNkJadYEqWnJqVmqWWVJawn6+cn6WUr66sppqgpZSTmZmOnJ+nopm0qaqzvLy7q7Cyx8C4paurrbGxo6GysrSkcW5mXFpOUEtEUFBQUTtHSklHSEJEPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xj56gmqOktci0qca6w8PHysjIzM3Gvrqzrrm4wcHNtsi6wbi1urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a3v8G/vriyssOxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZybl5Wbn6GpnqigmZqqmqKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiql6qupaSfpamTkpmciJScop6Wsaapq7q2vrOyrb65tqCjp6ilp5ycrKmpjGNlYV9SS01HSE5JVUw9TEROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSfi5Oqm5GSk4mrjYein4ykrZSjo7bGvbTBusLCx8jFws3Iwr25sq+5tMHCyrXGscG8tLqrqK2ssKOimaq0uqappquqnaivp6Oqqr68p6y8s7e9xry3tbjAsb3As6m1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZudppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6eo6OpkZWVoIOQnp6clamkoqG0tLq1rai1srOenKKlmpeVmaqhnndgXF9dSkhGR01RSU1FRkZCUkxKQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn5/DrJuXpJeZqZyWmpqPqpaWqKaVra2Zoau2xMK7vrfBwsDHxL7Nx7u9ubKvuLO/w8i1v6+8trm3pqOqrK2goJqqqsShpKirpp6rr6yiqai/uKatvbC3tse2tbm4v7G/wba0s7SvvqOXpJeUnJSuoJGhoqWjo5+QvqWpnaisnZ2hm6afvaKZo5+iqauhnZaNlZ6TnoePhY2TnqSgnbWsppyVsqeZr6ifmqmeoI2ZlZ+EjqGam5OlpJqYrLG2saqlqq2snJigoJKOkJaonpRoYllhXU5JR0pOS0hFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5yexayhn6ydna6gk6Ofl6Wgp6mrl7axo6qytcTDvcC2v8K7yMK+ysi2uLW0sLOzt8HGtr6wuLS5tZ+mrKqrnZ2epaPBpaCprZ+kqa2voqanvbamsby3trXDsrO3ub6yw8C3uK6ztbWjnaWWkpShrqCZop2pqKujmsOtqZ6srZubnpmmoL2inaWYq6uspqGZjZqfkp6Jjld/lp6loaC4qqeTmLajn7KhoJuulp6OmZSdgo6fl5WOoqSVkKatsqupoaKlpZWVnJiLj5GTpJ6JYWRaY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GZnsOnpaKzoZyzp5OqpKCkn62prJ27sKistbHHxMHCs8LDvMbDvMTKva+xtq2wtK+/xbW5sbC5tayaqLCpqZqdpaGnwqybrLGbqqKusKmkp723pre6vK62w62zs8K/ssazurestLatqqKmlpWVpKyin5+aqKuwr6+8sqagqamZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2aop+ntKanjZi0nKOvmp6brpCek5eUmoCSoZWPjp+hk4umrLClpqGcoJ6SkpqThYuSjZyef2FlW2dlSklMSlJBQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlNY11MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DDqKSqsqGktamVsqynoqSyrK6pu7KssLW0xr/ExLXAxL3JxLXAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSyp6q6s6e6s7eyuMCqt7LCvLTFp76urbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6KlppausrKmqqahnpuampaYqJ+gmKGer7Kipo2Xrpmlq5eanaSRm46Tl5mFlp+UjJCcnpSLqamqoqegmJ2UjI6ZkIKGlomUn3hjaF1rak1QTU5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SknaGmv6aor6+hqbWqnbmwq6OqtLexsLm3r7a4uMW9w8e9vMPBxsC4wcbBuqq2pK27rcHDuLiqrbG7opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptrWsvKyysrm3rLmwwrq9vqbDq7C3r6mrq6eemJmroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOir7G0q7Koq5+boKCbnqWcopado7Owmp+Qk6WaoKialaGelZiJlJiTlpeck4iQm5mUjqmop5+jm5eakoaOmYt+jZaFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqq+ro7G4qaW1s6yhrbW9rrO4vLq9trbAwr/JxLnEwcDAuMS9wbevtairt7K8v7+0qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xLervK+xuKutqqOxpp6lqqCkl5CZn7Oqs6qrs5qdp5ualY2gpqS0rqeira2usaezrbKppJyfqKSelaGYm6i1qZeZkpKfmZ6gnpCrnpeXhZWYi52ZnJOKjZaXmpempaKgnZWVlpOAj5SFe4+Sg4yWZWxyZ3ByX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3pKyppq6utqmvtLqnprC3xbextr7AwbW0usW+zMW5wr+6v7nEuMG5srWsqrq2u7m9tKqtsLWYmKerqqubrKuOq72eq66xo6ugsa2zrq62sbm3qa2usai1r7O7vMmyqrW0sbSvrqehs6CaqK2gpZWWmpqyo62gpq+WoaSampKNoqWnsqmip7Ksqralr7G1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUq56ck4CTmI2dnJqWkYqUk56apaGhoJiVkZOVeouQhXuMioOLkmtueG51e2BFYWpZSUhZWz17SkdFNkFiVGlbTVxgSltdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosqmtpaSurrWpt7S4pKu0t8m7tLq6v760tLfDwMzIu8O8tr6+wLi/vLG9rqe6ube2wbarrbG4lJemrquno7GqlK+7pKyysqeoo7KzsLGxtbG4s6iuq7GnuK+1tMPFtqm0tauwraqno7afn6eyoKSVm5qVsp6nnKCqjamjnpuWmKWlpbenorK0rKexp66wtaylmaCsqJucnZuUqbiclI6Oi5mcopeQmKWgnpWDkZWQnZyYlpWIl5CXm6eco6CSlZCQlnaEkId7hYGEjYttcXd1fH5cS2VsXEtOY1w/YntHSThHZ1dlW01eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaWupa2uq6eksLKzqrewtp+rtbnJua7BvMK3s7G1wsPOxb/BvbS9v7+6v7yzxKipubC2tr+8r6uzspygp7CtpaWwpZ6ytayrsrCsqai0uay0srWstK2prKirqbmtsbHHv7ikua+pra2mqK2wpqSkrqOpnJ6cm7CaoqOjo5GsnqSgn6Kqpqa5pay1taWqq6isr7avo56jqKqboJqakqS0mo+JjYeRoqCVjZSdn5OShI6Skp2bmJWUh5iTlZmmm5+fjJKQjZB3fo6FfHx9h4qJcXRyfn19XFNkb15OWmZdRkSWW0g7Tm1YYVtNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPUhIj5uqqqKqsKSopLO0sbS1sbGhq629y7quwLvHsbSttMLC0cXFvsCyvsHCvL+3vMSnrLess7i7wLCrsq2gpKetqaiksKOqsaqvrLCurq2ss7untrCyqbKpq6Wlo626rKqxwrm1q7moqKisqqixpaqkoq6qqKKenKOslaSdmJ6ZrJ2ip6miraajray4sbKhqaKgq66wrJ6fp6ipmaSYmY+gp5iGg4+Ki5+gj4uMlpuOjoWHkJWgnZaXlYaWk5OXpJydnIqRj42Jf36Ihnx3f4eFhnRzcYl2bF9ZYG5jUXNxXEs7hHxGPld1WGFZTmNbTlVWVVdQXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWz5NRpSXraeiqrKcqamvtqy4ta6qpauqvci7sL23wq+wrLPEw87Ow76/tMDCxLrBtMnErK+3rbK4v76zra6rpaeqsKmnqLGltK6rsK6tsa+yrbO7pLizrKyup6ufop6wt6uqrbq2pbW1o6mnrKyqraGpp6axsqSmpqGhrJaqoZSboKaepKKrpK2jn6ext62to6Wim6mqrqmdoqWkpJigmZaPmJ2TgYKQiYWcoIyKjoyZjZCLg4yXo5uSkJuMk5KRlKKZm5mKjoqKfIaBgoN6dICEgn50d4ukiHlrXmBuZ1dlh2ROQGeSTERieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESWkq+ko6qwmKuprbWrtrGrpayqqbzAwLi4s7u1pbKvxMnL0b/Bu7nAv8K5wbrBxK6ytbGzu8C+s7GurKurqLaqpa2vq7mwqLGxr7Grtaq2tae0tqyspKmqnKOes7OoqKS0tKC1raGpqKuoq6egq6uoubapqqqqoqmgrZuSqaGdoKSipqOqnp2mta6opqqio5elp6eqnKKko5+ZmJ+Rjo+Zjn6HjIeEnp6HhIqKjo2QjISGlaKajoyakZKRj5Kfl5iWi4qDf3SGgX9/eHWDf3t4foCInY9vcWdncXhcYHOIak9dmFZIbXhVZFZSYlBNVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFjMDI/Zj1OWD9DLD5MVF8vSWs3UEU7lY6woKWqrZmrpayus7SvqqWvqai6vrzAsK64rqG1r8nHyNHAvr27vMK9usPBv7+usrKxtby8wrGys6qzqKS1qaWts7O5sKOutrGvsrqrua6qrrWrqp6pq5+ioLatqKGfr7OhtKqeqKeqo6qhoqytqL2urK6toaeon6uZkK+hmKKhqKefqJuZqrCpo5+soqGToqOjp5iaqKWXl5mdj4qHlYh9jYaFhKSWhYKCi4aOjZCEhJOgloiRnZCTkI2RnJSXj4mFhXh0gX99dXh5gHt0dHppgYajdWleZWyCdWeIi3xSWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hPOlZCNJCPsaCkpqujpqSsprSzsaqksKequL7Bu6+nuaqnrrDJxsjRwry/vrm+v7zJvMG4sLC0sbq7uMCys7usuKyitKanrLK2ubOnp7u1rba9sLymray1q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpp6m9qrOvrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mpkZiak5CKgo+Ffo+CgIiej4Z/fYuHkI6PhH+Tm5OFk6KMlJKLkZuSlYeIfn9xenl+fGl3fHp1cXF9aIZ4hIdkYGhjcoV6bWd5XV5WQld6bVRhT1JYS0xOcXRdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPlLGZn5+ppaShq6S3srKlqLGnrLjBvbWwo7mtqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+tq25tb+tobOmqquwtbi0q568vKiywLO6oK+ztaqsnq6wo5ylqKminpylsaavoJ+qqaiiqZukqKCtu6etsK6hq6Okrp6eraaXn5uho5yfm5qjqqKamqSklZaUn6KWm5amrIuekZCRjIKLgYCPgXualY2JfH6Lho6Ni4qEkpiRh5SjiZKSh5Caj5OBh3x5a312eXhie3pxcHFzeGmBc2qDZ2RoYW9zjW1iaXBgcEFceGtWXk5RUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8qPDJQWz0jkpmsmZ+Xp6Sin6ejuK+uoq+vqau4wrqzrZ+5r6uotLrHysi/t8G+r7S+t8S2w7GvurKywLW7vrepube9q6S0p6iqsK65saqbu72ksMC1tKGut7Wmp6exs6CepKanoaWZnq2nqJ6gqa6noKaXo6igsLiforGvoayhrKScpqepmpqbn6OVnZyanammlpufqJKYk5idkpmWoaqQmomOkId9iH+Cjn18oY2NiHmDjIWJjIyFh5KajomVn4mRlYKLl4yRfYR7c299cXN0YHl4aW9wcW9qf3JjemxpZmRhZoZ/YFtyanJNTX9pWFpNUExKSFBSUUlOXF9uU0RYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj4vWlk1KJedpZiclq2gn6GkobersaS0tKmoucS1sq6gt6yurbC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO5qbu6t6eotainq7Cts7Gnmr23pK28tq+fsbewqKWnr7GboKSgo6Shl5uvpqGfoqevoqCik6Sko7ewoaaxq5+so6+YnKqlqZ6Xmp2lk5ucmp2mqpmcnKSVlZeVnI6Tl6OpoZCJipCGeoR+hIp6j5eKjYZ5goeEiIuOhY2TmIyOlpmKj5Z+hpeLj3qAenByd25vdF94d2RsbGxqaYRtZXJpa2ZpXWRzgF9aa3VpWkl9XltYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS47MmJVLDKWo6GXlJyqnaWhoqC3qq6gurimrL3Fs6+uorWvrK2vtMPEvLO/urews7m4uri7rq3As7S4r7/BuKy8urWmorOqp6mzq62yopzBtqWotbWpnrK7qqemqa+smaKnnKOmlJiisqSZn6SoqZyioJOloKS5qKSnrqeepaGokp+poqGgmZudoJKbnJagoaubm5mhlJGUlpqOlJOjqKSQiIqPhnmEfIWGfZ2NiouGeYCEh4iHkYWVk5KMkJWUjY6Ue4OYj4t3fntsdHJsbHNheHRoaGpnZm+FZ2doY2ZpamBpYmlmWmV7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzllTycynqSjkY6kp5uenp2jtaynqrm3p6zDwbawrKK1rqevr7fAwLyywbaxrrK2tri3tqyqvbOvsrG9v7euu7uxpZ62q6WltKmrrqCfwquopbCzqqy1u52oqquxpZidqp6mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq6hoZ6doZWgpp+hoJmbmZySmZ2UpZ2sopiXnpSTjZWXjI+YmqmgkYiJi4l5hXeCgoKdh4uCiXx/hIiGhJCElpWPjpCRkZGNk3uDlY6Gcn19Znhva2psZ3Vza2NnZGR1f2FkZmZlampjanFZXlhebWRhTmhXWmBWSUdIS01SWD45YGxpR0JUU1xbSUlHRUEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZkglNZukn5CMraGZmKCWpLSxorG9t6Gxxru5sLGjt6yqrqm5vbu7rcCyr66ttq+zuLOoq7mxr660tru2r7i9raadtaugobClq66epMKgsqSusa+3rbWera+trqKZnaiqpZ6Vm6iln5mlo6idmqCclJydrbCmuaiuo6Gamp6ZnqOapJ2XnpiblJqgkqiVqqebk5uckoyVmY2UlJmop42NiomPfIJ0goGLmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNg2+Af2Z5bmhramdxcmtcaGNicn9hZWhqbmxnamlmbFxsbXVxYVRiaGRlWUlGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopqOjrCdmpOhmqmysJ+4wLagtMK7vbmxpbavqK6lt7i3t6y7r62qq7eqtLmupbO1sa6psba2sLK1uqeon7apnp6poqqtnKnAma2krrC2ta2tn7GtsKqim5yjrKiblZyno52aqaKklpqgnJGbo6uqqbufqKSgmJqZnqGPa6KWmJxxgpabpIB2kamnnpWVn5GJl5mAloqgj3mGlI2Dbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39mhoBodWlmV1xpc25OUGpjZnGEZ19kZm5saV5fX4mQhIZnT0tEOEVUZ15KR1BQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wwm5yToJuqrqujvcWvqbfCuL28raa2sKWrpLizsrOwua2qp6y0prC1o6i4trWop6y2sq60rbOiqZ+0q56ipJynqJqsu5Wmpa+zuK2upaiuq6yloZ6coKemm5ihpqWbm6ennZOeoJmQnqiqo7Wwo6OjnZaXmJejiKGOkpqHoYeUnaF/pX+mqp6SkpuSiIRyeI2OhIihdoiNaZeIZn1zeKFviIeEfo17f6Ggn5mAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFYam9uhlheaVtraluIcG15coZoh4RaXkZOPkZeTUVSVlZRUVJXVGdeTFhKUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIyml4OcrJ2ZmZ2fqqqnqb/DrrG6vLfAvqqkt7CprKayta6vs7arqaWxraW1s5yttba0pqeps7Gtsqevn6qgsqifpKOaoaOcrrWVpKWmtr2mrKeqqqyopqKgmKCno5mZpqOkmJykqZaUopyVk6OlpqC3pKSgo5iVk5iTnIiuj5iUiamLl6KbhbGApKyck5mdlXmC1Kh/h5TBm8d5d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGub2VpvJK8bmh5bXKP2H5TamO2sn+BcZR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXUVRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxXF00MSGNppOBpqmfl5ydpayyqLDCvbK1wLW3vsKrprStramnr7Oqr7a0qKimtaanuK+ds7K2qqWkp7GurbGmqp6npLGkoqGel5ugnq+tlZ6in7S6oqqooa2upaKdm5qiqJ+Ym6ign5iep6eRnKeblJ2hp6KgsKOfn6OWlpOYkpmFr2pqio2qfmeElYetZXGdnJSZpZVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWd7pKeCWV+Lq2mBlXh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUVEpERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpKmxt6yzvb6wt8SyuLrCp6mwq6+pqbCvpLC6sKSlrrOjqbmpnrOysKOloKqtr6uvpqefo6KwnKOcmJWXm5ytppeboZ60s6Grm6KtraCemZegoqmcmZ6koJyZoaekkJ2jmpehn6yfpqegm5+hlpWRl5GahbWbtXiFqZm1mXeHs5u3fpOVlaiUfmuBpnqChYiSlJJ3q2drsVuse4+HlHSIcI+GgICIkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGhbltUa2dgTEtbZFhcWkI+sHhXWEEjTWlFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJWflIizpaahrqmns6ypu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paays6ejop6oqrKosKelnp+fr5afmZWVlpifraKamqSota+hqY+pqKqbnpWYoKWomp+co5+boKOlo5Wbn5ianaOrm6aanZuioJeTkpOTnIPVk5m5cLDCfsaGfNaUm7t8mZWlj42cjaR7joekgqWCeqx5j51Wr3uJfp9quVq5d4aEfaaCk3yYeqp5jpyPe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcodsl4hgU7W0yIaAiXxjpDNCnXZdUWpoY1BAWGZaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE3MiWbopOYsaeopbOqpbSopLu3wbC6wLG1tbyztaexsKOws6afrraom6i5rqOvsaCztLCgpJ6fp6mwqLSppJydnqqXmJeWl5WWoauempeorbCpo5+PrKKnlp6XnKGloZehoaKhm6Kip5ueoZ6VmZumoJynlZybn6GZkJKVkZ2Ism5otXGrh2+OpnK0c3K2e5mYpIyPnI2ifpGgpX6wdoOR0tF2XK58hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61fdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpT1VGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvoZyRpa+spKq7raa0pae2u7yyur+3trW6urOltLShsbKjn6ywpJimuq6ksbGdtLiqn6adoqqksaesqaSanJqonpWUmJiSkqOooJeTpqqxpqKWk62fpZKUoZukpp+UmqamoZujn62aoJ6dkJacop6cpZWdlZqin5aZlpKbhax7d6h2o46Jh6lvrYqCp4OYmaGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1313hX+PnYaZmXevhoqRnId3tGGaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2eYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9xbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJe0wa2os6ipsrq4s7i/ubeytr21pbizn7Ssn6Coq5+Vp7arqLGyq660pJupoKCoobWmpqqjmZ6VpaGUk5yZkpWipZqTkKesr6aglZmpn6KPkaKZqKWflJmlqJ2cpZ6snaGdoI2Un5ueoJiZnJaXoqCTmJGmnYapfX2leKGPjoOqcK2LgaeGlaChiZeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmNye4FrmIdxXaxaiaCOa25lT0pDoVxaTHReYmVNWmFfcnNfSlU2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnZmZvquXtMKuq62ppbSwuLG1v7m6s7G3vKq7tJ+wpJ6lp6eelKqxqbCqtayrr6GYoaCmpKO5oqOroJebkaKglZSfmpSYn6CPjYypsK+mnZebqKafjJKkl6iqppOXqaeen6GjraShnqGNlKGYn6CSnZeclZ6hlZaPq5uPrm1ytHKpjHaKpnO0eHOzgJGkopKcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFk4itanWzYZ1mom+HkmqXXK1gTaF8h5FSc6NseX9+b5iGcFyvVjycd2ZUb24uXKdPYlJrZWFsWWJcYHB7Y1NZUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbqhm7LArq2rq6e3qbivtMC1vLGvubirwbapqqCbpqShnZKqqqe2o7Korqqgl5ynoKWruZ2jrZuWmY+lo5WNnaGbmZyfkZOUq7avp5mUnKyql4yTpZmlrKGRl6qypKCeqKuwmKGjkJmil6CblpuXoZOcqpyUkauZh9SSmrtzsMOAw4Z+1ZabuHiIkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqqqrsae5r7bEsbqyrruwrsGyrKWinqOhnJuRqqSqsqS0p62kn5aaqpmmrLicoq6YlaGQpaCSjZyjnpidmpCWk6+5sKuVl6Oop5SQlqScpKydkaCoq5+bn6mjs56ipY6nopShmpyXlaSYj7CgkpWqnoWQmbaAkJGMuJV4gpObtXdua25zbnmPhI6Jc57Bu72ae4GyqHB/dJG4g3yGhouHjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXn95fYlog3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcWx1Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7W4ramjoqaeoJ2ZlKykraqmtaion5uWoKOerKS+pqGrl5SdkKKbko+iqKKTnZeSmJSytbatmJ2kpKKLkpGmm6Wrm5aopKWcmqGppqejqaGSrZ+Xo56Yl5edno+wqZScp6KOan5pnKd4iXN+mo90emWHer6+wLpukoNxlIZfcmpaXpqJYWSHjpVrYH+VY22cdmKUa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6DfHuLa1hseoJySUpvhXBNdE1FV1xmYExbWGdjXk9bbXVpcVJPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOtpa6nqLWxrMissLOstaO+sbKmoKOpnaObmpmsp66kpLWppZuXlaGbp62ovqepppWUnJWgmpOYpamnkZ6Qj5icsLK/rJumnqeiiZORqZqopJqbq5+jmZujp62in6qimrCblaagl5Wdn52XsKWYoqiZnJGdnKOkmaejmpyampqQloFnbX1xd5GXlJGFirWqjYaYlY6KjJeXh5SVioOSk5GJjZGTmJSYl5qgopqclKGdjoJ6pYVsanyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWN3fXZrcHttYGNccGdNWVllal9XWm96bW1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLKgs6K/oqSxsregqqWyp6WwtarJq62xpbWmwKi0oJ6kpZyklpagq6aso6O2rKCZlpagl62ppcCeq6SVkpyXnpiTlKKfnqKnk5GYqKeyw6+aq52rno+WlqmeqpycoKyYoZqcoqWvpqGkqJ6tmJemnZmaoZ6enLCgnaKmlZiTmJSgopajnpegjpaUi4qNjpatj3yVm4KSgouqqIaBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqSWmpORnY1/jWahs6+FiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0Y3lmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqraOzrryktJygpqKhnZmXqKappqSms7WelZSdmZmwpq6+oKujkJGempmUkZWhnJepnISeqayis8izn6qkq5aWl5qnnaibn6SrlJ6fnaCqrqmlo6uhrZufoKGZpZ6cn52vo5mfqJOYmJ2RpZmYqZ6al2aDknxlfo6Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5lzbG56hIyHelhlXoWBXmyKiYB2XGhzd3eRgIeCbniCeIBzbXmDdHeIiI6De2qFWV5rdGRdc4hoanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora6wpq6tsL2xqaikra+xn62Xn6OeoZqZpqucrKOmqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmZpZZ7payiqLPDt6Sip6+enpWeo56jnKOpqJGeoZ6gqq+qq6Oqn6ibpp+ooayWoZulsKSYnKqVoZ6ak6WYnquZnn6+g4hytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncLBe4F7ko2aw8B9a6Wxb4yAb8p6f5t3kYOOgXd6gX95cXp/h3F4hYyTeW12kmJmX3hkX2SAYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK+tprK1r6qmpqaxq5+rmJqioJybqqeinauipailpLSjnaKTpq2st7Onr6KSkZqdpZKRoKGXnJ+dh6erpKutv8CwoamvqZeSn52imaKjqqOSoKGdnq2uqKymo6KnoKWlnq2pkaSbqa2qnJ2qnKyhlpellqGjmJx/zpR5eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjal6p4eFoHSXkoizY4KrhqGOjbNqhK50fZaHuGGCrVmjzW6PdXvae3+ZcH6Ik3Z/ZXuIdnZrfYhufoWRkn5tgY5gcWtwZ2BfeGRbcGhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJiekaSqqK20q6ayrK2spKunsKqgp5uZpZecoq+foJ6op6OloZ+wrJuelaeurbGrqKyglJKbn6WTj5+ll56oo56upKuwqMDGs6ipsa6Wkp2copegqaqelKGfnJ2ur6eqqZunp6Shq5KttJamoquqnqOnpqGwoJKap5qhm5SUkZegcIWMl3WEqIdxsXydcax+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4mKkZCDbZCPZG90dXBgZ21kX29paW5mY1dTXGFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoa2vtq6osKepqqiuq6unoqSdmaKVn6arn6KloKioop+dsKyXmpaop6+sqKepnpeUmqOikpShrZudpqOvrKOstaq6zbGtp66slpScnaKYn66snJagmZ2eqbGpqambq6mjoqybr7GiqKyuppmmq6qqsaKSl6Olm5SShaRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKshH+ug5t2roGmhoafepiWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9teXd3b2xmZGVxcGZ7aGNdV2BqWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8PJ1tXAoZmrqKGvop6wtbCvqayjqKaqqquppKagm6SenaWnpqOcrJqiq6Gkn6+inZqSqqS1sK+gqZudlpSno5CaoqifoKacsaajp7GstsiytaqsqpWRnJyhmZ+ls52aoZScn6erq6OumqypoqGqo7OtoqqzsaKbqqivsLajk5akp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Cek3xwl5J/cHp0fHttW2ZqcnFmgWpeYlljbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGua2ps66spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52loKyanqilnaa1n6KXk6iqtrKsm6WdoJWQpa2RmZyno6Cqp66io6eqsLTCsrOqraiTiZecpJqho66ml6GVmJylpquar52tqKaerKO3rKGyua+em6+ns7SzpZSXp6OZn46CnU54moF/n3qEo3yCpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaXinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5d8fpKRinR6c4R+cFttbndyaoFvWmRfaG5iZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaykq7mrr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqKayoJmppJSitaKjlZehqbS5pJujnaOTkKGymZ6cp6ahoq+unaSoorWyw7Gtqq2qkYeQnKaco6ScpZeemZmZpaSomq6hrqWml7ClvK2ht7etnp61srmxs6eYna+ho56Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfoyMk4p3fHmNgW1peGl4c25/dF1kZG5tZmhgSlpYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqinsKOUq6OOpK2jnZCamqq0tKSdpZ2pkpSXrqCgnqeknKectZqgqqO2q8OwqaupooyEjpyhoKailZqbnJmamaakppirp62ipZutp76slb6wrZ+jsLO6rLSnm6ixpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuvXaVrcYWZXWBbjKBulZGmmYOUjZaLenqCln9rbH9ifXRtf3pgZ2Vxb2hnaENZYFs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCt8G0n5utn664paSOm6SjoK+vqp+kn52tmJ65oKKqoK+pma2hkKqopJaJm5CusKymn6ebrZiYj6yioZ2mopqlna2Yn6imtqnAr6WqpJ+LgI2bmqCmnpKVmpqUmpqlo6OZqKuro6Sfqai+pJfDrKqioayyuquup6Czr6mqmHavfpCLnIWHfbqtiphlsIxlla19oY+DppWagayKhLCFpZmkoaGQhaBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5CWlnt4jZx9ZHN9YoN3dIB8YWpmcW5mZWVPVWNbQlRePkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peX2BgYWJeX1xbWFVQTkpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5qgn52zs6meo6CdtJigs6iqq52vrZ2rm5WvqaKOiJuOr6ypp6Knma6TmY+omqKepZ+Zo6OlmZ6jqbKovK+lqJ6djnyLmpWhoJmQkpqbkpmXqJ6gmKitp6Wlo6Wpu5+gxqelqaGrtLatrqefvK2trJWBqZKjr4+bgIakl5iQgYC4w7qDjp2ThaeXnIKsioKviKabmqWqkH7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rXh3or67dICWjqacj5qRlpx5gZCaeWN9emSMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbOina6mpbOmnYuYpb6pt7Goob+mprKbnrGcuaiera6lppWUsKyXjIObka6mo6yhpJyqoZiLo5KnnqicmqGpopmeoKutqbmuqKObl5N7h5mRppuTj5GYmI+Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqoLuor6+ac3WqpLeGZYmfcGetj4qPbW93pJCZn4F1rpmVcI+LcZWno5uYrqRybW1tZYp4b22CmXGAeWlxaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeYkJWefIeOlHVmhndojWp5fnlkbGNmbGJLZFhKa1k6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOrqaKunqOyqZiSvbHDyL62qp7Aq6yjoKesn7qjpK2srKaOlq6pkIyFlZetnqaqop+jo6CRjKSSp5mpmZajqqCWnKWlp6+6q6yam5KSe4SWjaWXjZGRmJSNmJWnlJ6XqKKasKaeoqy6n7DBp6Szpqyxsqutq6e5pK64loqhqKW2nYmWopeHqZqQlJ2TqrOZm6OroLKWoqGdoKKcoKShlaumjJKSjIeSnJyUkJqTmJCNlYaBpJmXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbHuVkZSTgYGPj4+PnZSglZiWoIKHk4xwaI92cIp3dnx6amxkZG9jVWBYQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRV1RWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1t66uorCkrZ+gtbGQjqvFvMS7uKqipZ2bpZ2wqaO2p52ptKankZisoouIiY+cp5aspKGZp56ek5Wjl6iaqZmUpqGjj5qnmaG1uqirmZqQjXyBlIuhlIqVkZWQkJOXpY+emaifnLajnaest6evwa6jt6avr7CtqamzuaGvvZmSpqOmtqKSnaaejamfjZKfo6yvmqGjsaivl6SgnKOpnp6dnJernJKZoZuTkJaqmY2ZmZaQlZ6RiaCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkZSUkYp9jJaSkpiToZOdlqCDh5eGeXGVcnmJf3F7f2puZF9waWBbYFltY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhY2FhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gqLWqkJCdpLO7r6ysoqOaep2isaSlsKiWm7imopSZqpyOhoqJnKOQrp+jlqigoZKXmJuui6uWj6iaqIyYqI+eubakpZmbjYl5gZOMmpOKlZGUkI2RlqKMnZ6onp+4pH+Er7WisK90pL6jsqB4ep+psruVdq2kn4qAqn5kXGJ2n46knoSXfm6Ts5yjp66romWen5NzeZmXcICYqJdsf6KniWWcpZyRl5iWi5GbkYadmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFpiIuVk4tbdpWRZ2iQjnJ7pZiYZHmYhoF3l2mDioJueX9rcGVgdm9ra2hbZmViYm9TWz5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkZGSUtMU1RVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablqajobCxrKuppaito6etpJKWq7Wvsaaaqqarl3OMnK+fqKqmlJa4oKCPnKOdkX+IiJuejauao5Wnop6Ol5GehXWukIimmqeRlqOIm7q0qKCZmIuJdXeTjZaTipSRkJSMj5OgjpqfppmcspaAjJy1nbOMko+8p6F+p6J6oq63gY6Opp6Ei4WPsamvjImWo5p5gYushpydoqepqIeVhph2pZt6h5uBl6aCgXucsXqKhaCXmZSYloGQlpaEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElpJ4lmiTdKCadH2Zg6Cchph+kYmBg5hqjYyFa3h7cXBnZHduaWxrW2VramVzW15JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1JYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6aurquorKCosKanqaWZlK7GvbChlqaotZ6Pg5yrnKahn42Qvp6ZjZ+aoJB9hY6Zl4irnaKWoKGSjZOJhoCRqI6Hopyjk5adhp+5sqeem5KOhXB1kImVkIqUj4+bi4+Rn5KWn6SWnqyIn7SJtJqtisqHqq6It4WNsIOxroOpjaaYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6NrnoOhmYKZgIuMg4mYcI6ShWh3dHt2Z2h1cGdnbF5jb2xnbFhnR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmwqqummpSgo6Sqo5akqbajr3+gp5ylnp2Jk7yZk42gkZ2QeYSWlpGHq5mbm5qihY+Md5ucj6CRiJ6km5WYl4aiuK2lmpyMjH9ibY+Lk5CNkIyNmIuQkZ+Pk5+hmaGofqGnh62doJauj56dnZGGgaCNq6+GpI2qmoyafqJ2gJmTaoGrdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWfox7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmlln2xbbYl7ZVlfg39iV1BvdmVtdHJqam9eam9tbGlYaU9dV0U5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlra2gnK21oqiSoJ+fppuZjpi0mZCKnoyVi3WBlJGNiqaWlZien3+ShYaspIeckYqYqJeZmpGHpbCmopWaiImAaW6Ih4uOjoqLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWj6eDoad/hqmthaV5in2Emn2icHKTh5V6nYx5bYecjJmQm6iaj4edfIKic3amZp5+dqRfmHp9knOibpi3tLpzkoeBf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kX52Zs5VwfJeetHRzW56yg2pib3N1cWhvWGtscnNmXGleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI2kuLWuraCbopyjo6WunJuxrayTl6CYoKSZmpOeq5uLiJF4i4VwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopJ6PloeEfmt7h399j42Di5CRiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJymkJaoq3+ujH16oJl6o5N4gHOWh4ycfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHOpgpyCc6pnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akGynmVyofne7a36qW46EXbRnXG5xeXdraVtxanh5Yl9mWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycqJ+erpudsKirnZeimaGfmJaWoKOZhomMaoiAcXuXiIuWloSRlJiPeoqElqSdipSPhYudkZybiY+oo6CZi5GKgIBpgYZ5f5eMe4iOj4iPlpp/k6KfoKKTmHJon4qfj4xwkoyBqYiZn6OooKh9sK2joriXd6OzoqN/iJR4nXqrmn+ijp2bl4mXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXyafJyZfnOqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WAnW1xfJRvmXJqpF2VdkhlY2BzcH19bmVgbGh2fGNkYVFeVl1UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGloa2mTnYCxrpmEU1+gp7O5s7OpmqKMnKucnKmToaukoaiPnp2cmpmVmKGdloeGiXeFgW55lYWQmot8kZOWiHKAiZOhnHORkIGImJSfmoSOqJyalIqLinyDbIWFcYGhjHiFjYiIkpmVfJKkoZ+jiK6GfbWEjp6de6WWeqmClp2QiqGdfadodm1+mXShc3F8nYWYb5OCrn2kg6aemoGjb16oZ3WjY2+lYZzTkHx6mXhyc2OjhZB+onKijnVrj7OLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8g5tvd3mXa5t6d5dzbamkZ2BleXB/g2tnZmRtdXhnYGJTW2VRUWJJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/satUXEt+qa+xtLCzo5yYhZiooKCjjaSooJipiZmXmJOZkpKgmI6HhXtwfYRofY+ClJqBd5GNjolvf4aQk5Jsl5R9iJCRo5WDjqqZlJKKhYl5g3aHgG6Cn4Z3gJOGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgZqQhYGcknykgKKZhphynoSira6Jl4t/jKSNloOuopR2tba1yaFzlIqBn2Cdl6lteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7abO1tMamc5h+e51qm5urdYOabHR3l2maenWYclBEfbNeanZreIdmamdidHRxblZeVFloT1JoSVVMWVJVXWhrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcibCnhGY/lKGyq6+vtaKjj4CXqaKipYylp52cpYKZl5aNl5CPm5KOiIJ5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSg5eol4yQioGJeoB9i3hwkKGGeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9maKViG1yaatqdaBtbqZgm2mLkGiWh5qVdaKAfZpgi4WMdW+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9lp1SLXVSYbW1za3GBbXBoa3hza29SWFdWZllTbUlYT11IWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXJiZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6ucnqWMoqGaoqKAlZiTjZqPipeQjot7h3GAiGiLi3uXmnN0in2Qe2SCh5WKipWZgnyIhZamj4Ghq5CFj4mCin2AgI9zaI+mhH2GlI2ImKCOiJKqp52JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6kooyShIyDvG58pa+ChoaHk5acn3ylenGolaCWZ55+b6tjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnNve3RxYmp+bmhtU1ZbVWFhXGtNXFJdSV1tbXdgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNtc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeuo5mJgpermp6kiZqlnamchIyajoackYWSjYuMdIZ6iIRvjIR9l5N0dIZykoJtf4uSh4aUj3x7gYWXpI1/paWOgY2JhJR1goeSb2yLqYGDi5SOiZyfiY2Tq6OgkIB1lJeIfoF5lK6jf4GbcY+GeZCMhH97cqaMcX19epeWm4SOeHt+foiUlZOKdpCYn6CDen2JbIyFW3l4cXlwaG5+kolxf3SCj5STcYWEgmWNf1+Bf4t3dXOUdW95bm6HbYSGXndpeI1mgYKGjqmbfnR8l2qJiHCAdnyFdm1sZ4xzeXuYeIRba1h5j2hud3Jxb3d4b11shm5pZ1ZaYFdcZWtjVWFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHluaGxvYY6Uuamni6GimqakmaScq6KghISXrJKdoImappqomIKBm4p+lpOHjomIjXKCfI99fo6EepePdHKDcJWFe32Ti4aGkIV4fn+GmKKMe6agi4WPkISVgoaOl3dyhaqGjpKckIienoiMm6igoKuDiY6Umn5+iZatqI+TppB4cJ2Rg3uSb36ohXB9lXFrcHyBn4t/ko6MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5CBfX6Mal1qZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHCFjXlvZWdkeoN6lltcamdudlt7eHd0bXNygmZcbYprbGJZWV5aWGxxW19gWl5dZnR+e3VvdGNra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKqxopCjoZqenpiemaiioX2CmK2Nn5SHm6KQpZV/e5eEfJKYiIiGhopyfICLdoWLgYSVinFvgHKYhoR+koSDhoqBeoCDi5qej4KmoIZ4jpeIlYuLnZeEg3qtgpGYmZSKnp2HiKGroKKio4uIk5uco5mWqqGnpqCSm4iXjnx4jo6Ep35/kpGSk5yxppuUnpCNspOYhKWMjJWbn4mQm4KJkYprfI12d2WChZCKfImdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppCEhY2Ig42QjHyHioiPgXZsgoR8eZlqcmhhdIpwfXp3dm93dIFdXm+GaG5fXlpcXVNocVVjW1xhbGh1fHxzb3Bka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fXqDeU5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJmkoJ57f5mrjp6NhZ+cip6WfHiUgnuOmYmGhISGbXiAgHKBh36Ik4RtbH56l4aEg5B/gIaEhnyHg42anJKGqZ6DcoqPhZKRi52RfY17qoSNkpiVj5yXhoabp6Cimp2Gg5GamZmQmqagpp2dkJaBkYp3fIeOhKV7fI6QkYaYqaGdk5yPjaqOkYCejImTmp6Cjpd+ho2Cb3iFcXRgfoKPhnWLl4CDj4KGhH6Fg5RueXV0kqKLjIWahISNdICKfHxycnuIhHt5jI6Ek6ePhoSPgYSLiop3hYeJi3xva36Ae21obG1nXnl/aHx7dnR1dXt3XGBwfW51YGNaXV5RZm1TZVpdYWppdnl+cWtsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZygo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW5sVGNxeWVwenpzZWltbYuKn7eaoaOfkpGWl4uan5+ee3idppCbioaklIuYmXh6jYV7iZGDjIKBgm18fnhzgIV9ipB8a2h9gZeIgYiOfH6GhId8j4CPmpuRiKacf3CLiouSh6ChioWMfKiRiI+Sl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbfo6FeYCDj4eggH2MjI98l6SgoJKZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36IinOCh3x8cHl7jIV6e5GNg5amk4uGkXyGh4eFdYKDiId6ZXJ7fnh6cGxqZl59c2h8dXVzfHKAal5gdHZweGRjWV9eUmtoVGRZX2FnanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4yBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqWlnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJfoiCgH9xf3p0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjJafmn1vi4GRk4amm4eMiYSmlYWSi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmZOUnHqQhYN4hJeNnX6BiY2Mc5einqGSmI6PooyLg5aYg5KWmX6YjXyIjYF2cX1uemR/fIqFcIaTf5CCbIeCgX+JhGV1b3yHkpeNfZN4i4l8gId8e3F+eIqGeYWRiouYopWBhI13iYWDgnZ7gYmGdl94d31zfXdmbGRhfmlqd3N0dH1xfGJjYXNudXNtYVpgXltrZFJiV2BhaGt1eIZwYmpjbWVofINsaHRobG9of3yCeW2QhnGAg4N/c3yDjIF/fnqCg358kG12iHR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrZemqJ6NjZeHhp+Tl5h9d6qciph5l5yLi5iPeXuAi318g3uAgoB4dHh6c32Ag3+Ii4BkXn2LlYd/hYd0fX2Jf32XhJaTloyjoJd+cod6k5GKp4+MjoqToJGDkZCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJeNlZZ0jo+KbIaYj5l6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnV4gH2HgX2DjYWNlKSQeIWCdImHfYBzdYCHg25ge3V6cXxvYW5jZHtibm92cnd3c3Rhdl9vbHVub1xbX11eal5PXVdjYWhtc3qJa19qZWpjaHeHbWZsaGlsaIB8endvkIdzgYOEfXOBhol6gn16gYR9fY5yeop4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXeumIyWfZ6TkZaTiHd9e4p8fIB2d3+AcHRzem+FfIGAin58YFx+j5GGf4OEc3p/hnqPkYeRkZuSpJuUgX2Ae42KkqSJjYqNmJqMhpGYk5aOiYmMk52TkIyNboOQj5GJnpmioZeWiZaRb4iahGeGmY6TeomFkIpwlZqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV7i3RuhZCOknF0gHuBgYh8ZHFseX2ZlH2EiHSQi4F0iHlvgH6Bh3yFjImFjZWojXuIfX6LhXd+cG+AhYNjaHh0dW97Yl5wYGp0XnFqenh4bHJwZXhdbWxzbXNYWl5fYWpaUFdXZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKGmm4eMioGQnIaTnHSBqpSSjYagjJaTkH90e3aFd3h/cnN7hWtyb3ltinaAgIZucVtZfpGNiH+AgXZ1gH9/oIaPipGcl6CTl3eJfoCMiJ2eio+GkpiWhYmVmY+XjIuNjo2dio6Qg22IipCRiZyWoZuYlYWXiGqFo4Nnhp2KkX6Lg4uBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4JudnBsbW5we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIl7ho17i4aEiY+co4h8hHeCi4B4eG5qgIKBXXJzcXBveFpecGBwal5vaXx5cG1tamx2YHBvanJtWVhhYWFuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhXuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2fp5aFjIN/l5SDj591ip+UkoaKm4yVjYt6cnh0gXByhHNxdYhsb2x1bYh2g31/bW5VUYGrlIeCeIB2coJ5gaCBkYGSkpebkZp4kXqCjJKkmpOOiZWZkoSHl5mMlIyJj4+InoWQinxyioWJjoicmp+blpR/lH9php2IZ4ahiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbmtrbHp+YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHeMeoqNe4l+g4yRn52FfXx4gox9dnBpa4GCeV93b21rcXNWXm9icWFfbG55cGdwZmZzdGhxa2F3ZV1WZmFgclNQTlxmZV14cIh8X1xocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iINzhoV+jIyDe3mVd2ZyaoJgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIf4uef4qZk46EiJiOjo+EdnR2c4Bwb4VzcHGDb2tpdm2Cbn18bXRzUk6C38iS1pN8cHSCdYOfgpN3lJCYmo+Ye5NyhZCfoZOTkImTm5SGfpaViI2NiJGNiJyAjoF4eox+iIyJnJudm5WTeY12aImSh2yIo4WSh5eDhmOMkZiOlYmWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp5aHNrc4uPioKFhX2VjGx+f2+AjH+Mh32EeYGPlpqainx3eIOQeXNtZnB/g2xqdG9oaXNtU15vZHBZYGtxd2ZramJmeHJwcGNfeGBgVmtfXXZQTktgZmNdeXGJdF1cZXZgYWVlj2RgZmFYaXNzbmtxdox8dHmGgnV2fotzf4Z/e4l+comHgZCKiHx+mHZlc217ZYd+b3BsgFpsbnl5c2F2enuNdnJ3ind5n4ubrpugkIKFd4iVfnyJnIeFn5COhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEooWRbpWPlJ+Tm4GRcIWLo5eJjZWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZubmJmPj3aKdm6GiYt9iqOEkYmdhYVei5SXio6IjouLhIlsfJaBfYiFiZCPhnaFfX1rfWR3dWpteHNXiHqRhoV6fn+AhYt+eGVzan+KjoqDgn+MloVrgnVuiJGCkYV/gnl/kJaTmZB1dHiIjXVzcWd1eYJidG1vYmh1Z1JgcWdsVV9udHlgcmNfaH1wcm5bY3JhYlduWVx3TU1MZGZhXnZziW1cXGR5XmBkZoVgY2JeWGpya25rcnaMfXR3hIF4d3uJcYOEfX6Ie3SLiYiVhox+fphzaHVweGyLem50cIFYcXp2eXFld3mGjGl2gIlyf5yHmKeco5KEfHCMlHh5i52EhaGNjnuVjX+ZiIR7cndwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2ipqIjWmXj46clJKBiHCFiKCOhYqVio2YlHyNk4iDiY97kYuGkIJ/dniDg3KHgpKblpSYhox2h39whYKJh5mig5SMnoOJYYOVj4aJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodXJpc3drWox9koGFfH+DgISKgnVhdGyIgY+Lgn5/kpF9boJseYaQhpOEfYF8f5KTkJeJb3J6jYZ1bHBrcniAX3NpblxqdmBSZHJpZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVdbdUxKTGVnX2Jyc4VpW1xleV5eZGd7YGRfXFlrbmVvanN3in5zc4F+enZ6iHOFgnx/hnZ3ioaPmIKMgXuTdmx2dXh4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cJKQjIdqmI2Im5GLhXtoh4uZhoGSkYaHmI18jY2BgYmOfJCMfoqFenV7gnpwhoCVmY6TlIGIdYOGdoOAi5Odn4aVj59+iGF/k4eEiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+Eh35wX3NxhXyPjYJ8f5KJenGDZnqEioeMg3yFfX+UkJGThG5weox/dW1uamx6fWJoamlYbHVaUmlyamJRYnJ4bGFlXVpqg21zYlxnX2RsX25UWm9OSE9nZVxnbnF/a1pbY3NgXGNsd2RlXVxabGxibWpzdod/cW9/fHx0eIZ4hYJ9f4d1eYmBkpV8iIZ2iYFvd3l7hJNwbXyBd16Df3SBbWl7c5RzZ3KIfXKSkYOan5ughod2dpR+bXaTl32HkIOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3d8em1xfmVjaGhXnY9ecXKWvMODdXGUiJB+cpaLhpyTjIdyaoiPloB7lIyBhJuMfIuGfXyJjH+UiHWJhXZ3fYFxdYaBnpSGlY+DgnJ/iHWEfImYnZiHk46dgIhmfZOCf4WDiYlygX1nfot7eH5/h4uOfGmAfIN2ZW94eHJ2c2xqjYWKgYp/eIGAhIN/a15yeHp+jYqFe4KPgH5ygGl5g4eLhoR5hHyAl42QjH1ubXuJfXd0bmhnfHZjXHBiV29yU1Nuc2lhTmZ0eGVgXVxYboBvc1llYl1qbWBwT1lrUURTZ2Faa25te25ZW15tY1pjb3dkZlxdYGxqY2xqc3aCg3Fufnt/dHWDe4OCfIGFdn6JgZaQeIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p3hHRslI2FnpigmYWIbn2Mdmp4mI5+gYqClZeKeY6Wb3pzcGxqZGB0e2hfZXF6WmByfXlncXphZWWPsbJ3SmJapNnQlnF7kIqQd32Ui4SZkYuFbmuFkpJ6eZKGgISYinyHf3h4iYqEloBvjIhxdH16aXmFg6WQhJONg39vfoN2hHmFm5iTi5KQlIWHcHuSgn2Cg4mDboF4aICFeHJ/f4KKhntlfX6EdWNwcn9oeHBvdZiNhYKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoFucYSHjoSFc4R4gJmNjYR4bm9/hH92emVoan1wX1l3WlhxbU5XcnNnYEtsdnRgXVtbWXR9cm9XZ11manFfbk5XaFE/WWdfW3BqZ3hwWlpZa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVvgnt/gX6Cf3aBhYmXinGCjXF7hnx5eYOTjHVqen9sb350f31vcnx7lG9ugX94ZpKKgqGZnZGChmeHg29nepWJfn+FgZmKgXyNjGl4cmtsZl9hb3htX2JveFxka4J6YXF2X2Vl1Oq+ijI6PouOgHF5hYeOjXaDlox+ko2Mf21shY2Mdn2Pf4WClYl8g3hudoaEg5d3b4iFa3V7dGZ5goOnjIOPi4R9bn90doN5hpyQjJCRkoyLhn57koZ3f4SNg2yAcml/fnhtfHuBioN3YnmEgXFkcWh+bXRxdYGbi4B/hX5ydX2AcoFwW21+dHiKg4t7h4B8iHh6cWyIg5CEi3KBeX+Xi4t/dG5rdn+AdXVcaWh3cFlXfFNacGVMWnJyZVtKcHduXFpaWV10fnVoWWJbZ2ZuY2lMV2ZRPV5mXF11ZV90cFpZVG9kWWRxeVpoXl9nbWdqbGlwd32ObGmChH55boB8fYF/gnp1goGNk4VwgItueH6AenuIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjHt+f4OUgn99iohrdXFnaGNbYmdybmBha3NhaHCJeWFzdF5jZJugj25cNVmvtXRpgIh8koZ2hZaFc46KiXdwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3GGfmh2eW1leYiEpYeAh42Jfm5+dn+AfIyZh4KTkJiIi4SJfI+IcHt9hHtofm1rgHt6aXp2gYeBcmB3gX5xZHJndYJtdHuFlJGBfIF/bnd5fHR+bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVyfn1+k4mJem5uam2BgnVuXWdmc3FRW3tOXHBcT1tycGRWS3N4aVdZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFddW1YV1N0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBgIJ6d4CAiouDcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJF4fXuBkYCAfoqDcHJwY2ZeWWdfb3BgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWDc5N8eIaTgnORjIdycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHZmd3ZjanyDiJ6Cf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHuIiWt4eX51Z3poa395c2l6doCCfWhgd4d9amt0aHt/aXaBjJCUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWlsh4JycF1oY3NuSmV1TF5uVVRZc25iUU9zeGBSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdoVVdVd11bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354gYGBfHZ9hIiGg3B2g3Jud4KCfomLk39wgHt3eXqBjHSDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/e4mGhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJeG+MdXuGjoB6k4l/dXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI9mcYNvZ3ZuW219gJCTgIB4kpJ9eHtth3WAkIuEdJaKkY6HhYV7f4VsdHZ/bWd3ZW17dW1qdnd/f3xgYniGemh0dWN+emd0hY6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e314e3OLgX1zZ3RlbYqEbXRbal91ZEhubkxbYldWVXhtYlBTdHZXUFVYXmFxhG9cYGNtZWRebmJUXHJHQmZeXWZoXlt7YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjXV/dnh+d4GDgXt0foSIh4NvcX90cXV+hYKJjYp7d394g3x8hYd4h3x9gX6EgHt+c3Z5jI6fjYl6iXZ0g3lefYWZjHmGg3SFhoV3iXtibmxbYltbYVZqc2NgW2dub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHF8hIl+e5GEeXl0eXV1e2psdWOEdZGCd3BnXn2CeouJZXKCa2pxY1hse4aciIKBc5eUd357bohxgYqLh3GXjpCIhYuDe3l+cXFvfWZocWJteHFqa3F3fHx5XGV5gHdpdXhmgnZndIeLjZR8coZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXd9cXp0h3x6cmZzYW6MgmxzWGtfd1tJbmtNVlVeVFV7a2FPVHVyUFFUVl5idIVoXGBsamZjWW5hWGJwR0FoXF9lX11We15PVmRwWVtqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fnmCiIB1c4CGhY2CcHB7eHd1eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5KTn3+MfIttdoB5Y4OHl4ZzkotvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXFmgXNia2VXW2Bpf3e+rnugt21ic4Zoc3txeYKFe32Mfnd4c3Zve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iKpIGFf3GZk3GAeHWCbYCCkYdzlYiMiISIhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9boR0ZHWFjIaVf2+LZmt6g3VtdGJcb3xrdXyLfIFmdYd9bXFndX54fn9yfWt6eoF6eHBmbGJuiX5tblZrYHdVSmprT1JOaE5ZfGhiTlV1akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1lhY1dZVXlaTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF3cJmFdn9+d398hYd9dXOCiH+Vgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioKGaXd9fGyDhJOAco+CcYWCfoF/b2ZsZlddW1xbVGRwZF9XY3J1aXVwZWVjV1xcaIBwb3KAdIlkZHh+aXR1c3OChHiAhHl2dHVua3twYWdrZ4Z0jYRuZl1ffXB7iX5pbXdmaWRVV3JwjaZ8hHx2lpBze3N8em57e5CFdph8h4aDhoN8dHBybGd1XG1oX2x0ZGdmaXpve3JZZ4F3dWdwgHeCdWJ3hIp8lIBui2pteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cXl5c31mfn9/eXduY2ZiboZ8bWtWamJwU0tpa09MTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZmBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFtjZV93Zm1icGlzbnF+dHSagXd/gHd/foaFen11goR+l4VucnR7enVxhIWPgYB6i3V0kYB9gZSOgIWEfX6Mhnt+gHZ7o6WKeYmFg2t1fHt1g4KMem6Fc3mEfYGDdW5qaGVWXVtaWlRjbmVbWGJze2lobWlgYldfWmmAamtvgGhsYWh5eGpzdHRthIF7f312dW16aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+ndoF6fJCOeXVvfm9zdXmPgHeVdIWCf4WIdmpydmdobltsZF1sc19nYWl4aHttWm2CcnNpb4B+eXdgd4SEeI+Ecohxb3l/cmNxaFxvd2Rxc4h8eGJzgHBnanhzcmx4d3V3ZIN7f3d2b2RkY258fWtsVWliZlNLbWhPR1JrRWF4Z2FNU3FcSU1UWWVrd3tlXm1xaWRdVl9Vbm5XS1RoV2ZeWE5VbFRKXHlfW19rXV1aYmVgemhsYW9vdW1vdnV6mH13gIF6gH+Hhnp4eoN+gZOEcXR0fnp2dIWIkH2AfZBrc5WBfIOfhX+HfYB+hoKAint2hKyff3qIh4NrcoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnW1pedYFpXm5sXGFWXFxrgWZydH1pal1rdnVndHdxbIV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZaGSQp25+eICLjnpwcHxmeW96jHt2jnGEfX5/hm5kdnNkaGhca2Jdb29bZ19sdWR6aF10gG9ya3F7fXV1YXSFinqHhn9/d3J1f3VhcGxZcXRicXKFfHVkcn9sYWx6b2ppenh1cmaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdWYUdidmZhS1RvV0pMV1hna3Z6ZGVucWZjWlddWHZlVEpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb212g5h5coGAfH+Ii4Z9dXaGeIeMfXR1dYJ4enqCjI59foSIanOXgXuLnX1+hXqBen58hohzcY+ujHt7h499ZXKIenR8fHZyb4Zse31sj3picG9iZV1lVllZV2Rma2BdXHOFaFhxblpeV1pcbHtjcHd2bGJbbHJzZ3R1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXmJjkKVoeXSChZB4bW55Z3htfIV7dYhygHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenZvcn1yYnhkW29wYXFxgnxzZnGAZF5udmlkZ3l6dG5vgXV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVlIYnRkYUlUbVNJTFpXaWxxe2JsbHNjYVpaW2F2W1NLZF5YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG9qdoGQeW2DfoCBkoiEgXZ0iXSMhnRyd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX1/dIiDc3CZont7f4iUeGR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiGVScm5bWlhYYGx3ZGl1ampeWm1zcWxzc3NqhXx+f3x3bm5sZGlxY1tqcmR0do9zW1dTZGFygH9ygl1iY11TWmBbY5OfZXJxhYSRdGxqeWxvcHp8e3GAdn9yenp6ZGZ2Z11iWmFnW153aFdiXW9oYXdgW3t2amlybndzc3RocIGUgoZ+hHZyanB8bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfWxsdH5zcXhrcGFcZWxsemFnU2dVV1JQdltSUFlSSWNzYmBHVWpQSFBaVWtra3xlbW9xYVxaWFlscFdSUGZWV2lTVEZaXE9IcnRYX2NtY1hhYGFdi2pjZG15eGtvaXV5hntrg32AhJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OCl3R3gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLhntleItvbntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdGhidGVlXVltdG1wdXV5aod8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFtgWWOWlWNucIOFinNqaHpuZXN2c3xsenR1b3p+dV9mcmNbXlZiZFhhdWVVX2BtZGFxXV1+cGhpc3FzcHV1am2Ek4GIe4RxcmZufXByb1NbZmpmcXSBd3NibHZVYnFqW19uZXxlbXZ8c3Jzam1gWmRqandeZlRkVVZQVG1XUVdTUEhlcl9hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bIOAfYaXe3+IgYp/a5OIcmd0gHt1gIN9iI5/jJNzfIqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3Z3bXqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5qbWBUVlNvZ3NrZXhkZV1Yb3Rscnp3cmyIe4B2nHt6a2FlbG1eYG9qZXB5fmdaVlhga3h8e3CEX2JeZ1ZZYFdknIhia3GBh313a2t4bFt2cWx6aXVzbm97gHJYam5fWV1VYWNXZHFjU15haWFibFpgfmxma3N1bm13dmtohYx/iHqHbXFmcHxtcm1jWWFoaW90gXRyXmlsUmVxZFRibmJ6Y3F2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBg3qIjX58ioeOem6QinRsc4J0f3+IhYaRhJWPeX6Mj4iRm4SAfIyEc3+Bc3R4cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Njo6Ojo6Oj4+Ojo+Pjo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8vLy8wLz5EREREREU4Li8vMDAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMfHRwcHBwcLjc1NTU1NicbHBwdHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eIh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4ODg4OFhYaFhYWFhIOCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkImPjo2Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIaGh4yGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNh4aFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eLh4eMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIqGhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii4qKjIqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWdqZ2hlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5dWVleYmFeXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFFRUVFRVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQEBDRD1BRERGQ0ZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7PD49Ozw7ODpAQEFCP0FAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Njk6OTo7PD83PTs6Ojg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PD0/QD09PT9RPj09PTxBTDtMQjk7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQD08PkBBP0E7WnlPPUNFPkRYPFlOOzw8Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ+PDs9QD05Ojpvd1k3Ozo8R149YFw5Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fX5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQ19JPDtGY2dfV3d3WDc4ODhNYkJlaDw7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BPfHRGRnWGhoaCfHdZPD0/PFNqR2drPjs9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQFV2enB2hIODgYKAfVk+QEM+U29MZGg9Oz1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAUHRzf4OAgYR8fIVtRkJDREJSaWRzcklAQ0VISUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVHbHN9gHl/hYB9hnNGQ0RETWd9h4iIflhHSFFQTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdgen+AfIKEhoWFi2xAQFZ3hoiHh4eIglhSXk5MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS05cfIOFhISEhYaIgFZshYeGh4aHiIiHfmlWS0tIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlqDhISFgIGFh4aDgoWFhIWGhoaHiIaJe0tJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJaIWEhYR/gIODgoOEhIWFhoeIiIiJiYyNZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphoWEgYCChIODgoOEhomKi4uLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmiFg4GBgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo+doSBgoODhISEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PUqBg4KChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCVYSCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQkFAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0VahYKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX19fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0dHSluFgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTU9NS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LR0dHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg4PDs8PTo/QT5AQENGSUpRYIKDhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUlLTVZyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19SUlBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFRUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDR1ZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyPi4uLZ1ZVa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lJWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0NCQURAT1BNU2RzdHV1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PT0xRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh6fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODY5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGFfXllVUE1PTkxISEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUducXR4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3Bwc3h5ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pIT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHF1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkJGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01ITExJS0tMS0hGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fHt6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUBAQj0+RUhHREZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkQ/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8eHl9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QUBAPkFESUVDSEhJR0lFQkI/Pj1DQUFHSURNT2JlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQUFERUdLRkRJSUdHSENDP0I/P0BBPkNFQ0tNUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxb2psbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJDQ0dGSkxKRUlJRkdIQ0M7QUBCPkBAQ0VDSU1QR0lLRkhLREhJS01ISkxISEpMS01dUklIRE1GQURLSk5NUE5LTUpLRkdHSk1OUU5MY25pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHREVFR0VHQkNAPjw9Ojs6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+P0NDQ0VHTE5IS05IREhFSUxOTUhJTEdFRklJTE5LSkhFTkhDR01MT01PTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVCQkJFQERCPj8+Ojs7PTo9PkNBP0FDRUdKRkpJTEhHR0dGRUNAPUVFQj5BQ0NDRUdJSUdNUElGRkdLTk9LRkhKRkVERUlJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJER0tGSUdJSEZGR0VDQkFBRkZDQkNCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ05PTVFPT09OT09LS0tQVVdWVVRYYF5caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkFERDxBQUBDPDg5PT45Pzw/Qj9AQERGSEVIRkZHRkZFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtPU05EUVJQUVFOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VEREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3Vub3JzeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJCR0RDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtJTUxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbXl9eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0NEQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkVERkhFSUVGRElIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpOTE5OTlBMT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmRlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTExMR0RDQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDSEdIR0ZKRkNHSUdHSkZJTEhKSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiZ25oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MS0xHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRkNISklISUtGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJGRkhEREpFRUpMTEpMTUdHTUlISUtIS0pJS0pOTE1NTExJTExMW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRURAQkI/PUNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5ITE1JTEtISk1JS0pKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2hhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVEQ0FCPEJBQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTUlLSktTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0xLRkhKSkxMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIREVHRkZBRUM/Q0dDRUdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZIR0pHSElFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZZXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydFBCQ0RMTUJDREJESURHR0ZLSktIRUVKSkpGRUhIUEpMTUpNU0lIRkFHRkpJS0tKTEpJRkVKR0RGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlEQ0NFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxZXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtHQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERLS05NTExISkpISkc/R0ZOS0tLTUtLS0lHR0NEQERBSElBP0lKR09dYVpbZF1fVFFTWF1cXFxfWktXXExSXFlJTV5QT1xfYWNkY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkZHSEdHSkZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmFgYmJgY2JiZGRiWE9RUVJbU1teXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFGRURXVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYmJXX19UUE5QUVhSXVxbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQURGQk1IQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkVk9TVFBQT05QVVRcWVlaXVxgYWRlY2hja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJS0tLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRE1bSV9cc21PTVZtWUxDUGBVbFdnSl1XVV5ETVFVTE1UVlFTVFhXVFhVVFxUUGZaaGhkWFRrVFdWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0dgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNXUG1IcW5wYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlJWTEtPSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZXp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0pISlBOTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hybVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlYc1Foem1panp6fmx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b15fX2NiW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUE9PUE1QWmBaWEtUV1BhXlJWUVlTTVBJU1RWWFdXUFVQT05SSktyb3V1cXVxZGhgVm5McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSkxNS0xRUVFRUFFXXFlVTlZZVWZYUlJZXlRNTklUVFdXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9ISktISUlIUlBMTk9NTFRTU09UUldSVlRQV1pWVlRUVGFgUU9OS1RUU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWlxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tob3poZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFPU1JXVVRZVlRZVVNSVVNUVFhZV11aX2FdXFpaXFxgY1xdYmNkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktMT09MTVRQTlNRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lUUlJXVVVXXFpbX11WWV9dXl1cXWFhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUVBSWFRSUU9NT1NVT1dSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlZWWVRXV1RSUlhWVVpfWl1fX1dfXV5gXFxgYF9fWmJiZGhoZWRhWWJgYl5eZmRkYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbXFdRVFdVVlhWVFhaVFNRWldWXF5bX19gVmJcYGFdYGJfXGBdY2FjZ2lkZmBZY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRTWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUUlJcV1pdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVpdVVVOVldXXltYUVRVWFhYVVdZW1RTVl1ZXV1gXWJjXllgW2ViX2RkXl5jY2FdZWZpZGZeXWRhYGFhY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1hZW15WXlldUE9PUlpQWlVVVlZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRVVFZUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTVlZVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlVaXVxeYGFfZGRdXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWlhWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcV1dXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRZWFldXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWlpYVl1eX15jYmFlZV1iXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVxZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVlZWVlZTVlRYXFxfYGBdYV1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFcW1pZXF9hX2JkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5aWVVYXV1fX19fW1peXmBiY1xcV1tdYGJhY2VkZ2VlZmRcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX11cXlxYXVteX2FjYmFhXWJbYmRiYGNjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9dW2BhYmViX11TXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOBg4OCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8fHx7e3t7ent7e3t7e3x8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjIyMjIyNjYuJiYmJiYmLjIyMjIyNiH5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjI2Pj4+Pj5CQjYyMjIyMjI+QkJCQkJGLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX18fHx8fHx8fH19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl2dnZ6e3h7eHd2eHt4enp5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx9fXp8e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fH19eXx6d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3x6fHx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fnx9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3p6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fnx9fn5+fn59fH9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgIB/fn+BgICAf4CBgX9+f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6Af3+Af39/f35/f35+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn9+fn9/fn9+f39+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDg4KAgoGBgoKCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKEhYWFhoaHhoaGhoeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSDgYGBgoWHhoeHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OCho2DjIeFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoGCgoGIk4CSiIGCg4GBgYGAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCCg5GHgH+Af4uagJWOf4KCg4OAgH9/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoODgoOJmYyDgoSBj5yDmJKCgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDg4WFhIODgYB/g4+aj4OFhIKSnISXlISCgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CEkImDgH58fHt7jJ2OgIKCgZGbhJWVhIKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4WblIh/fX18gYCBlYiAg4J/j5ySmJSBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAhJueiX6DgX2JiX6Cg4OEgoifoKGTiYGCgoGEh4KDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSClaCIgo2FfoOFf3+GhoWFnJ+Gfn19f4KDh5aMg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOLkoKEhoSJgX9/foKIhoWIf3x+f39/f4idmoSEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgoGAgYSBf39+gIqCfn9/f39/f35/hZ6Ng4WGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhISBgICBjIeAfn5/gX9/gH9/gIB/f4B+g4eFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIOJhYKAgYKCgYGBgYB/gH9/fnt5gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCf4CChYSCgoKCgoKCgH9+fX19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeHh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYOBgoSEg4OCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSDgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgYKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIKBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+foCCg4OCg4KDgn19fn+AgIGAfn19fX19fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIGAf4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf3+AgYKDhIGCgoODg4SFgIB/fH19fn19fn+Af31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f39+fn1+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4GCgoF/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgYOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SCgYONiX99f4OEhoWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfIKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjo6NiIeIhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gn+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6ClJGMjI2OjoqFhoeFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIuQjYyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBf399gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5+fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7fH16fX5+f4CAg4eJiYmKiYqJhYiRjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDg4B/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fH1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFhISCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af35/gH98f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOBgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYWFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4ODhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIOCg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH99f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+gIF+f4CCgoCBg4KEhYaEgH59fHx8fHp5dnl5enl3eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fXd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Dfn6AgIF/gYOCg4OGhICBfnx9fHx7fXh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fX1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+BgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn5/f4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9/fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gIGBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdnaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+Af3+AgYF/gICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh1eHh5e3x8fXx7fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDf3+CgYSDg4SBgYOAgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhIR/gIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXt9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYOBgIGAgICBgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODgoSBhISBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODg4SDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgoSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhIWFhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEhHyDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF6hH9/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e399fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17enl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeHhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fX9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx9fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx9enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYSHioeDh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoeFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGh4aFhoODg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4WGhoaGg4SDhYKFgYGAf3+AgH5/gIF8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/f319fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXU1dTU1NXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb3Nzc29zb29vb3Nvb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMjYiBgoGBgYGBgYGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVldOQ0NDQ0NERENDQ0REQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpbU0hISEhISEhISEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRlZV1TVFRUVFRVVFRUVFVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMzMy8vLy8vLy8vLysvMy8vNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz87S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/SqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqnazWsp6jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdyJ6ak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZm6yaoZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKKtmpatuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SdrZiBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2Qo5ydqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJyRua+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqgpaaXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannM2gq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbXxZCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0dTHw9XR1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpDPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiampqampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2boqGVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qlp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaijopybm6SgpaijoJidmJ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaCcmJmfoKGkpKKenpagm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2JfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpqy0tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Voaml0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwcvLyMbMys7FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfAu760sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHCw7+/vsTLyMrLyby8yMjJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wL/AwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm8vcHHwca7uM7dzsPEwMPBwsHDwsO+vcLAwMHCy8PGzMvFyNHCsL6+uLq7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkY2piZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7bAt8DenpDCv8G8u8W9u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7S3v7rQw32Gyr7DtbrHt7a5u725ura7xcXKvbnFwL+8wb64xrzCv7zFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cW1lZWZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm5ub+/1513ganEx7e5uK63tbi6tLezu8XGy8G8xsDAv728v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZhbWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72+u8S2tbi3usO/xbzBzsSAd3mUxs/CwLivtbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsaW50bnhjZ2JbY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm+vrK8vrzEt7K6sKOnubO9x8yidHl6l8/RzMrEtbrAxMi/v7W/wb/Gxr/LxsO/wrzAw8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbPA3NvFub68xL64oHdrb3FrgJW4h3N+f5nKzMvNysbCxMvNxb+5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby2wYqt2MS+tsC+nX1kWmdSTlhcdnx0foKfw8bLyMHDwcDJysjBu7uws729wMXGxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHNncF1bXl1ZUkZEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a6wLdlbqbJwLa3hmJgZlRkXU5OUVRodHuIpL6/xsC5wLy+xcTAtbqysK2/ub/Dx8PDvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX2BZU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4uMu1bWdvmLW4hFlORmZMT3RqYE9NWHR6jqy4t8K6s7u3u73BtZ69rrCwtrO5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trjNtnl1ZXOcol5OR1V6TEhmfpSDW0N1iZmrsbe+ubK1sry5v6qIvLOzt5+ouL3DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO2x7OAeXFsi3ZRRUd0f01OT1+KgXBGUn6mtLC2urW0sqy8ub6fd7m8ubd2lL28wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7Kttrqvrbyzt725jYJ6enlkS0d7fGFNSVFlp6VhTkpwrruws7WytK+su7jBjG+txbitXHa5try8uLaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzv52Hh4uIWkR2l3JbWkleYFKRcW5toMG4s7SysLGtsLm4v3JnoMKysKelsa65rqqrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7aplo+TqE9KfbNsanFda151cWNjboexubGts6+urK22t7Rdg6WrpJ6dnZyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyps7OirZVMVHKmc3R9jHNObm1lcHBuk6i2qrK0rqqrr7CwobGmnZGYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooK3Bv6hXWnh1bnFaX2RiXFlbaWxiZnODsq+us7Wqpqyro56ZlI2RlpeZmZygoqKcnaWem6SXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2ev7d4Y3J8ZmdlV1paUUpHS09QTFViX5uysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpOT1VMU0xBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqmnnYdhWGZoXE5KRkQ+QEJFQkNMVk99sa2sr6efnqKglpCTm6CbmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoJ5/Y2VmWEpCSU9mUktBQz5ARklIX6Oqqqmkn5+ZkpGTmJiWlpWMiIuOlZ2dnZ2el56Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco6CLd2tfUktDRFZ/i39oRj06Ojk4UYWqramqpZ+en6KjnZ6dmpyblJOVlJ6emJSGnZqhmqukrLKwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO1r7Ouqq+jnauntrGtoq+moaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkc5NTs+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+fdWleVEpGREZns8TBjV1QSUJPe6qyp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrq7O8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEycnDwca+urS6urW7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cl2pXTktJSEhTfdHLtJOcjoKWr62hmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndzcW5xjqWssLm9xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpNcTUNGSUlZZpK6rI2DtLmxrKOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cnJwbHimwcrKxcrB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnSzc7TzcXIycrBxsvHycnGv8Ozs8jEy8vLz8bKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGeXkg+REVXZoasn56hraujnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdnBucXNviMPPzcjR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dXX09fYztLKz9HMz9DM09C/yMfKxMzMzM7PxcbHtr/Kv9LNy8/Gyci/xMPHzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaChqXBHRUVIYoS8xKqrqpuUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1c3Fwb2xycXWPvcnF1NbX19fT1s/V1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Ry87QwMbDyMbOzdHR0cjMzcDKzMbTzszOyMTKx8fIzMrU1NHVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6+CYmtqepzCv66on5eVl5manJ+dmJyckn1wZWNiX19hX15hYF9gYF9gZm1wcG5rb3J3d5nKv9LV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDJwMjKzc7Qy9DNzszOz8jL0NDLzsrCycfJzMrL0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaeWe4iMqc3OsZualZSWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dXZ5pL3L1dDV09PY1s7O1MvNzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO4srK+sbvDw7WqmKWimZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhYWGhWTEZMSVBRQjtDPjs2Nzo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCueGWDg7rOqpSNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycXFyc3FucnmjxdLOy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwL28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62ksGZmfIzRq5COjZaPhoODg4F9hIR+c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbfQx8nKzsvNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysqRdanOmuI6KkpeGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3KPxbzJxMu/xsGwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7wrqzvMXEwsK2v7W1vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87NwMXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfAucW9q6+SXW52qJKLiIuFeICGhn9+hHt0dGNcXF1eYGBiY2JiZWViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeJy8y7/CusC3rrCxp6qtrKe4tbe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u0q7i9vcC9sbq2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy7/PycfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC+ubfJtqqwiF5xgZeNhYiJe3h+hoZ2d4F8c2hdXV1dX2BfYGRhX2NlY19fXFteXF1eWlxbXV9rcG5pZmptbnJ7pMa+uLe0r6usp56iqqeeq62zraqsqbSut7Gyqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbBx8q4xcfFv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWBibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysHJyr6/vMC6srS0w66psIxobISSh46Pe3h+ioV6e4SAd25eXVxcXV9gX19kY2JjY2JgX11aW1paXVpaWlpcZG5vaGdoaWtucYGsuK+0raWkp6eaoKWhmpylq66kqKKsqq2qsKSmn6qttbaxvbmvt6+prri0tLy4tLyvuLm1srvBssCupamjq7Gys6i9qquoq62ttLOmqK6hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/vsTAwKmHc3RyamlcYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usm3wcPBtLW7tbCutLutp6mNaWCGhIeLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZlZ2Voam9yhamkqqWem6GllJ6km5iRoaOqo6OgpqWopa2gnZykpqyysLa3p7CsqKq0q7S6sba2rra5sq+6urG2pKCkoKaxp6uouaqkp6eop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vLa7wcGyur7DwbK5ucOzwb2/tbi8vb68wsfEwsO+wMSgg3hxbGFmX2tvYFRZXkhOZ09UR0VLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPyMvCxri2x8DMv7jJt7vFuLPEuLO+wKu1u7GrpK6yrKChjWRvh4WGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+HnKiflZWaoZacopmWjZ+ho6ecoKCkpqKnnpuim5+rsK2xtqOpqqqsrKS0ua23sKyzta6yta6wqp+en6SisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr3AvcPBu7u9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i3vreywbSxu7uruLmwoZ6oqqaXnpBmfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcYynnJOUlJuYm6KXlpGcoqKpnpydpaaipZygoJuZrq6urrKgpqKuq6eitbGysqyor7KnurOmtaCin5yjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLG6trq9v7ezsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5sr+2sbi6rLG0rZ6Zo6ifkpqHbn+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTlI+Vl5egl5mVl6CeoZ2WoaGppJ+eqJ2cmqunr7Crm6OkuKqhoK6otqqmp62wpLiwpLegopyZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7Gwr66vpqensq2xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7S7vLS4ua+ur6ibmKCnk5CKgHyAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGWk5WLkpSUnJmdlpacoJyflqGgpqakpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWxrqy1nqCdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJeep5ynoaKZo6Wlq6SlsKelo6urraaprq+uq6iqqbOlpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wqt7e9tr26urWyq6ymmJeeoYuIc4WHfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1RSVWBgX2BhX2FhYmRqgJOTiZCPlJOUnZWWl6SZoJedoaWhraakpKOjopyqq6Wan6WxqqChnaWrnqihnq2sqamuraKhopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJOcoaOdpKCilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6msnoxycW9gW1dWVVJHUU9IWVtPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7sq+rsa2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0s6mqpJSZmpuHf3GIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2Oj4SRh4+Rj5qTlZOcm6Ocm6GpqauorKeopqSZpK+llZmlr6qfnJmboJ6vmpyrs6Clpp+io6GUk5uWlpKpqayanJ+hoJqUkIyZjoyQjJGNlpWQnaGgo52bo5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbKrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExQUUlOSUI8Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL26srSlqJ+VlpeVhnl0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXFxeX2BkfoyBi3+MkYqSjZeRl5mioJugq6qmrqyosKSpmp+toJWWpKinnZeQj5qerpeYqKqZn52UpaCekpCSkZOVp6qlmpmZnp6VjYyLk4aJjYOPi5KVkaCeoaOYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Ostauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzurKyoaKbnJaWk4J+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY6HkIqXiZSUmJuZnqmboKqmpaydqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkYeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqraSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSE1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKWls6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmurJ6YmZyUkoZ6gm1fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6KkmaWXopyVjYeYmoxzjYN+jZeWhpGakJSOjnuZj5yMgol/iZifo56Qk5iWhY2DlH5+dIqOepCHk5CQnZqampGVkJ2OoqOOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU5STUhKSkRKTEZLSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noqaSnaa1q6KejpSVkY59dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlscm1/hXx0TlhykIOXh46dl4uUkZ+YnZWUlpWPlomAk4lfO1ZvfIuUiYCMkoyQhoZzioWWgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLj4mciJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6ioo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpop2Yg5Sbr6GYloWTjoqGfHJ1XVFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UUJAf5WSkn2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniKkYR9hI2KhX9/bn5/lHd1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Gvoaeopaeor62qtby2t7ezwbu2p7nIuLaoqLW2qrK8pp2Wjn+Jk6iVlIl9jYOBfHdwblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amlcVY+JlIl0f4eBfIWMk4KSmouPe4aPgHaAeHNudXB0jY2Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYqIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWfnZiMp6SToaCWnp6kgHJoYVxdSlZPUkdKWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWsq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI2bjZB+doV3e3VubmhYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX2Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYj3dvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6EknmIjYqJdXB7bXRwaWxpV0tGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQln9uaW5vblhVWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456f4WLhXRudGtwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk42PfHN9fHFwbnVtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh2ampvaGVYUVlXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnOHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdmYmpucmxwg3Vpb1h1cI6bkndsf3t9bXFtcIB6c3VuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY96cXBva2BbXF5cWVhgX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goNslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaAhJmEm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRxdHp7d4ptaGpieW+FkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJdnBzdGVnX1tbXVRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6Rk4d6hXZrf4yRgn2KhI6MeIOAc6GEi318gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKnHRtfIGGh32OaGdoeH5uhYeChXGEhUdsgHdyeXZobWtfd32DiH+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3NzcmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc3Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOZu7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDk4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGDoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcWyEgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09TUU5NTEZJUENETUZBQ0VGQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u+q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt2lZKrsoiNl599lJ2cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqagopeBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Kdo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nj08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ujt8WotsnHtb65tKijtK2xsZuZkpqfiaevq6WUdp+kl6GrsbOYlqqtqK62u7K6rK+1orGrsbW7t7SutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVEpERUxVUUhJSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYSHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lraOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpK/GubGzsbSopLW2qrGgoZabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4vre6t7msrLCmsaqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhWGplamVXW2RZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmjiZWTlpOTk42QlpKHhnuGgY2WioGEgIp6fIuHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhZZ1lUYGBNU09FQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urnJv7q9ycy7vMC8t7W7u7e9tLqxxmB1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0sLm3tsO6xb3DyLCeuaqiq46lqLaJgH9xX2JiXVdhX2hmUlhhVlJWSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlUSkRBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAub23xsC6uMrLure5tri5sre1tK62tphkdaicrXBeoa2cmKCim6Seq6WUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC/wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn95bF1fXFhdYFljY1FcYFNQS0NBRUZEPEBFPkJIQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWIs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBg3N7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWVRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C5s7u+tbHEx7WvubCwu6uysaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnSx8zNwtDSuLDDvMS5pba6xKKCbmNcXF1YYFdYZlpRXVdPT0JCSEVCSTtBRD5BRz8/Qjc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjZubl4uOlZGajn2Ji4WOioqLkId8hIJwf4eBhnuHcoOSi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVRcbm52gnKXrbistKewtqusvMCxq7WmpbinrK6hq7SjjrGumpiYjJGTkYSOm4GNppGciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem5lXWJcVmBSXVtPUFRQTkg+QUZBQkU8QEI+RUQ+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn5/gYd5hHWFk5GJf292cmtzfHx2fHOBd3FrgHNyaG9xenlye77Lmn6MsoN2coR2aGFqXUNaWltXZWRYZWtTWF1cYGNdY3h7fouBmaqkpKGgoaimqrC4qqW0o6GtoqOtoqexn4mmmpSSkYmRjoiBlIlqlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM3PyMLL0dTR1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvYmBfWFRZUlxQSkdJSUpAOzo7RUFEPEJEPkhCP0JDOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISUmYqNiIiLiX6DeHN7fYOHd396h5GWgINueHBtdX92eH1zhXx5bYd2dG59doR1eXudtYw8QYvGpX6NfGllVklDZmNlY2hqZG94W19maGtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ6hqaCjsZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxri2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2bmRdWVJVUFpWRkdKSkVFPTo3OUBBQjpIREBFQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhYd6hHlxenuEhnV6hY6NnXqMcHxvb3p/cXuBcYOHgW6OenR3fHyCdX98h4iwdFipwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ7i4eOk5KblaCVh4yTm6Cbn6qfoK2copqZn6Wen6yZi5qMkZGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSLhnubiJOPrqqUlZeemKautb2prb3Gy8jJy8vPyMPRytTW2dfY19Tb19PZ29bP29rR1snUy5V5e2hoW1lQUlNeSENFSUk+QT49Nzo9Pzs+SD0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgoR+hHx8hJeOh4t+hoaAd4J5bnt7h4F0eZKejaB2j3WCdHWBfXSAhG+Bj4JvkoR0fIGFenaGfIm3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHZtk5aUlY+YkIOKj5aal5emnJegl5+TkpejnZmrlpGQio2RgoyFiYiBhZCRnpyZiYWLgYaXeoiIn5ePiI2Ki4J8oYmQi7yhl5OXmZynpaWunqi1vsDAucfJzc7FzcrR1tbV2dXX29TX2drb19va2djO3MaGenlnaGVgVFdWVU1LRE5DOzw9PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH+AfYV7foGRiYSFeoSIe3V9dG58fYZ+dH6SnpGfg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+QwqC8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcKCknYyLkJKFiYuQkpWPnZqTlZGXjYyVn52UoZSSjo2Qi36Qjo6LhIiSlpqfn4mMlJKekYKLf6WZiISOgoaEgKWGiou4mJ2RlZahpqCdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3a2lkV2BbVFBPSERNQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYCOinFyeYp7en99f3yIenx7i4eCfnSDhnlzenNtgX6FfXeFm6GbnpSSgIuIf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibkJCOXIKikYKMn5OVjIeIjJKTjJSUlI+Mj4qIlpudj5WWkYuSlIWAi4iSjYmKnZaZo6OGkp2WoYqKiI6ckIOIj4CDh4WkhoyQs5ickpSXoaCemZKcnaexuKylvMLHzcfGz8zPzM7Xz9HUrtbV2NrY2trX1tnan298dGdnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl+eoF8hnx7d4aEf3NwhYJ6dXZ2dISChH1/kqajn6Wilomdj5SXi4qol3KKsoyEp5GEmZOEmYuilqCYk4mbnaGSqa+fkZWQjY2IlYtujbeFmsTIspyhpZucmJaRspFkpM3Hlo+Fh4mQko2Nk5SKhYqKhpaam4+QlJOGlZeEf4+LmYiNkKqXl6SjiJmelpuIj4eXl4qEj4yBf4ePpYmNk6iZlpOWmaGYn5mTnJuis7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1gY59fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4p9iqOzp6Oqs6GWp5+lpJaVrqKDkLiVkrOZjKGgjKSbr6OknZiQp5anma2vpJeVlpSQi5iZlqDAjqTJuKuboqatmJGbnbKdhoWoopyYhYiJjpWNi5OPiIGGh4iSmJSMi5OThpSYhoSRkJx0kZmzlpeloYicmZOPipCKl5qJipaOhn2MmJ6JkJCcmpmTmJiflKCdlZ6bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLentuhYZ6fIR4gIWBfnB4fH19b3ONen2Be3iGi4mGg5Knu6yosr2vpa2zs6ijorCsipm1naO4pJWtpJaprbempKKfmamYqaOvsKmamZyUlZGXn5eZu7utyaFptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeSl4yQlY2LjJeYkp2ZtJeWq52Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5uYnpShoJScnaWvqKGls7irwsjEtbq9u8XHyMLRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoynsq6uvKqbu6Sorbm4q6amoqGjo6ivsrGqnJykmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGHkIyOnIiHj5eNi5WXlJCalp2nmrGakaycjpqPko6UkJCWl46RoJGJlZujrJSWj5ScnpSgnZuYoKGUmp6npqSipLCypsHHw6+wurbFxMK+zafHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7PGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6urXBu6upnLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSSjoiXn5eTmZWYpqCvnYyqnI2Vj5KRlJWNkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJiepqSmpqSvraXAxMKtqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq9yMjKwdLJysLMvMGzrbu+p7m/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn66epaKYo7S8qZuovMGjtravq5Kwrausl4aaqqalkYKMk6WViYB1ipJ6hY2RkJ6fk4+Ui4+NlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqKeisqyovMDEr6Wzt8zAua7Es7u+wbiswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvsjDx8XTzc7Ny7vBt6+5vLS8y7zDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtbOtrpaWpayooJGOkrHFp5WOfZGVfYiRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCWl5KWpZllmKOesqWWopasrKunm56ml5iXmJWhpKimn7arqbq8w7Sms7XLwbiptqyyuriuqLe6vbiDbG5aV1RVTkZKU05LP0FHRERIRkc5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxrzFxMbGzs7O0sq+u7Wxuru8vs+2xL23ubeysbWzuLOsppyrq7iqqKevsJejr6SnpKS0wLCqrLS+wrnAubOnubW4sq6Vpa2vrqWLk5WhjXTBmn6XmYWPlpqMsZWamZWTk5mZpaOVn5uWmqmdnKGgmouNj5adYEqWnJqVmqWWVJawn6+cn6WUr66sppqgpZSTmZmOnJ+nopm0qaqzvLy7qrCyx8C4paurrbGxo6GxsrSkcW5mXFpOUEtEUFBQUTtHSklHSEJEPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS09VTlFKT0hISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xj56gmqOktci0qca6w8PHysjIzM3Gvrqzrrm4wcHMtsi6wbi1urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a3v8G/vriyssOxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZybl5Wbn6GpnqigmpqqmqKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiql6qupaSfpamTkpmciJScop6Wsaapq7q2vrOyrr65tqCjp6ilp5ybrKmpjGNlYV9SS01HSE5JVUw9TEROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSfi5Oqm5GSk4mrjYein4ykrZSjo7bGvbTAusLCx8jFws3Iwr25sq+5tMDCyrXGscG8tLqrqK2ssKOimaq0uqappquqnaivp6Oqqr67p6y8s7e9xry3tbjAsb3As6m1t6u/pY+jl5GioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZudppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6eo6OpkZWVoIOQnp6clamkoqG0tLq1rai1srOenKKlmpeVmaqhnndgXF9dSkhGR01RSU1FRkZCUkxKQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdEp5ekn57DrJuXpJeZqZyWmpqPqpWVqKaVra2Zoau2xMK7vrbBwsDHxL7Nx7u9ubKvuLO/w8i1v6+8trm3pqOqrK2goJqqqsShpKirpp6rr6yiqai/t6atvbC3tse2tbm4v7G/wba0s7SvvqOXo5aUnJSuoJGhoqWjo5+QvqWpnaisnZ2hm6afvaKYo5+iqauhnZaNlZ6TnoePhY2TnqSgnbWsppyVsqeZr6ifmqmeoI2ZlZ+EjqGam5OlpJqYrLG2saqlqq2snJigoJKOkJaonpRoYllhXU5JR0pOS0hFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWJWTKKao5yexayhn6ydna6gk6OflqWgpqmrl7axo6qytcTDvb+1v8K7yMK+ysi2uLW0sLOzt8HGtr2wuLS5tZ+mrKqrnZ2epaPBpaCprZ+kqa2voqanvbWmsby3trXDsrO3ub6yw8C3uK6ztbWjnaSVkpShrqCZop2pqKujmsOtqZ6srZubnpmmoL2inaWYq6uspqGZjZmfkp6Jjld/lp6loaC4qqeTmLajn7KhoJuulp6OmZSdgo6fl5WOoqSVkKatsqupoaKlpZWVnJiLj5GTpJ6JYWRaY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS02en6GYnsOnpaKzoZyyp5OqpKCkn6yprJ27sKistbHHxMHCs8LDvMbDvMTKva+xtq2wtK+/xLW5sLC5tayaqLCpqZqdpaGnwqybrLGbqqKusKmkp722pre6vK62w62zs8K/ssazurestLatqqKmlpWVpKyin5+aqKuwr6+8sqagqamZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2aop+ntKanjZi0nKOvmp6brpCek5eUmoCSoZWPjp+hk4umrLClpqGcoJ6SkpqThYuRjZyef2FlW2dlSklMSlJBQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Ofm6DDqKSqsqGjtKmVsqynoqSyq66pu7KssLW0xr/Ew7XAxL3JxLXAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSxp6q6sqe6s7eyuMCqt7LCvLTFp76urbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6KlppausrKmqqahnpuampaYqJ+gmKGer7Kipo2Xrpmlq5eanaSRm46Tl5mFlp+UjJCcnpSLqamqoqegmJ6WjI6ZkIGFlYmUn3hjaF1rak1QTU5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaFZDV0aMeWZDO6SjnKGmv6aor7ChqbWqnbmwq6OqtLaxsLm3r7a4uMS9w8e9vMPBxsC4wcbBuqq2pK27rcDCt7eqrLG7opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptrWsvKyysrm3rLmwwrq9vqbDq7C3r6mrq6eemJmroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOir7G0q7Koq5+boKCbnqWcopado7Owmp+Qk6WaoKialaGelZiJlJiTlpeck4iQm5mUjqmop5+jm5ebk4eOmYt9i5aFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqrCro7G4qaW1s6ygrLS9rrO4vLq9trbAwr/IxLnEwcDAuMS9wbevtairt7K8vr+0qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xLervK+xuKytqqOxpp6lqqCkl5CZn7Oqs6qrs5qdp5ualY2gpqS0rqeira2usaezrbKqpJyfqKSelaGYm6i1qZeZkpKfmZ6gnpCrnpeXhZWYi52ZnJOKjZaXmpempaKgnZWVl5OAj5SFeo6Sg4yWZWxyZ3BxX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3o6yppa6utqmvtLqnprC3xbextr7AwbW0usW+zMW5wr+6v7nEuMG5srWsqrq2u7m+tKqtsLWYmKerqqubrKuOq72eq66xo6ugsa2zrq62sbm3qa2usai1r7O7vMmyqrW0sbWwr6ehs6CaqK2gpZWWm5qyo62gpq+WoaSampKNoqWnsqmip7Ksqralr7G1r6SZna2nmpifmZmsuKKXk5CPmJyhmJeUq56ck4CTmI2dnJqWkYqUk56apaGhoJiVkZOVeouQhXuMioOLkmtueG11e2BFYWpZSUhZWz17SkdFNkFiVGlbTVxgSltdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVRKRJmWoLCosamtpaSurrWot7S4pKu0t8m7tLq6v760tLfDwMzIu8O8tr6+wLi/vLG9rqe6ube2wbarrbG4lJemrqunorGqlK+7pKyysqeoo7KzsLGxtbG4s6iuq7GnuK+1tMPFtqm0tayxrqqno7afn6eyoKSUnJqVsp6nnKCqjamjnpuWmKWlpbenorK0rKexp66wtaylmaCsqJucnZuUqbiclI6Oi5mcopeQmKWgnpWDkZWQnZyYlpWIl5CXm6eco6CSlZCQlnaEkId7hYGEjYttcXd1e35cS2VsXEtOY1w/YntHSThHZ1dlW01eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmpKQ0OQmaWupa2uq6eksLKzqrewtqCrtbnJua7BvMK3s7G1wsPOxb/BvbS9v7+6v7yzxKipubC2tr+8r6uzspygp7CtpaWwpZ6ytayrsrCsqai0uay0srWstK2prKirqbmtsbHHv7ikubCpra2mqK2wpqSkrqOpnJ6cm6+aoqOjo5CsnqSgn6Kqpaa5pay1taWqq6isr7auo56jqKqboJqakqS0mo6JjYeRoqCVjZSdn5OShI6Skp2bmJWUh5iTlZmmm5+fjJKQjZB3fo6FfHx9h4qJcXRyfn19XFNkb15OWmZdRkSWWkc7Tm1YYVtNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPEdIj5uqqqKpsKSopLO0sbS1sbGhq629y7quwLvHsbSttMLC0cXFvsCyvsHCvL+3vMSnrLess7i7wLCrsq2gpKetqaiksKOqsaqvrLCur66ss7untrCyqbKpq6Wlo626rKqxwrm1q7moqKitqqixpaqkoq6qqKKenKOslaSdmJ6ZrJ2ip6mirKWjray4sbKgqaKgq66wrJ6fp6ipmaSYmY+gp5iGg4+Ki5+gj4uMlpuOjoWHkJWgnZaXlYaWk5OXpJydnIqRj42Jf36Ihnx3f4eFhnRzcYh1bF9ZYG5jUXNxXEs7hHxGPld1WGFZTmNbTlVWVVdQXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWj5MRZSXraeiqrKcqamvtqy4ta6qpauqvci7sL23wq+wrLPEw87Ow76/tMDCxLrBtMnErK+3rbK4v76zra6rpaeqsKmnqLGltK6rsK6tsbCzrbO7pLizrKyup6ufop6wt6uqrbq2pbW1o6mnrKyqraGpp6axsqOmpaGhrJaqoZSaoKaepKKrpKyin6ext62to6Wim6mqrqmdoqWkpJigmZaPmJ2TgoKQiYWcoIyKjoyZjZCLg4yXo5uSkJuMk5KRlKKZm5mKjoqKfIaBgoN6dICEgn50d4ujh3hqXmBuZ1dlh2ROQGeSTERieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj9IRkSWkq+ko6qwmKuprbWrtrGrpauqqbzAwLi4s7u1pbKvxMnL0b/Bu7nAv8K5wbrBxK6ytbGzu8C+s7GurKurqLaqpq2vq7mwqLGxr7Kstqq2tae0tqyspKmqnKOes7OoqKS0tKC1raCpqKuoq6egq6uoubapqqqpoqmgrJuSqaGdoKSipqOpnZymta6opqmio5elp6eqnKKko5+ZmJ+Rjo+Zjn6HjIeEnp6HhIqKjo2QjISGlaKajoyakZKRj5Kfl5iWi4qDf3SGgX9/eHWDf3t4foGInY9vcWdncXhcYHOIak9dmFZIbXhVZFZSYlBNVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD9DLD5MVF8vSmo2T0Q7lY6woKWrrZmrpayus7SvqqWvqai6vrzAsK64rqG1r8nHyNHAvr27vMK9usPBv7+usrKxtby8wrGys6qzqKS1qaWts7O5sKOutrGvsrqrua6qrrWrqp6pq5+ioLatqKGfr7OhtKqeqKeqo6qhoqytqL2vrK6toaeon6uZkK+hmKKhqKefqJqZqrCpo5+soqGToqOjp5iaqKWXl5idj4qHlYh9jYaFhKSXhYKCi4aOjZCEhJOgloiRnZCTkI2RnJSXj4mFhXh0gX99dXh5gHt0c3ppgYajdWleZWuBdWeIi3xSWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMaDozOF89YWQ/RjFDUFtbK0hOOVVBNJCPsZ+kpqujpqSsprSysaqksKequL7Bu6+nuaqnrrDJxsjRwry/vrm+v7zJvMG4sLC0sbq7uMCys7usuKyitKanrLK2ubOnp7u1rba9sLymray1q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpp6m+q7Svrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mpkZiak5CKgo+Ffo+CgIiej4Z/fYuHkI6PhH+Tm5OFk6KMlJKLkZuSlYeIfn9xenl+fGl3fHp1cHB9aIV4hIdkYGdjcoV6bWd5XV5WQld6bVRhT1JYS0xOcXRdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0RYPiqPlLGZn5+ppaShq6S3srKlqLGnrLjBvbWwo7mtqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+tq25tb+tobOmqquwtbi0q568vKiywLO6oK+ztaqsnq6wo5ylqKminpylsaavoJ+qqaiiqZukqKCtvKiusK6hq6Okrp6eraaXn5uho5yfm5qjqqKamqSklZeUn6KWm5amrIuekZCRjIKKgYCPgHualY2JfH6Lho6Ni4qEkpiRh5SjiZKSh5Caj5OBh3x5a312eXhie3pxcHFyeGiAc2qDZ2RoYW5zjm1iaXBgcEFceGtWXk5RUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8qPDJPWj0ikpmsmZ+Xp6Sin6ejuK+uoq+wqau4wrqzrZ+5r6uotLrHysi/t8G+r7S+t8S2w7GvurKywLW7vrepube9q6S0p6iqsK65saqbu72ksMC1tKGut7Wmp6exs6CepKanoaWZnq2nqJ6gqa6noKaXo6igsLifo7GvoayhrKScpqaompqbn6OVnZyanammlpufqJKYk5idkpmWoaqQmomOkId9h3+Cjnx8oY2NiHmDjIWJjIyFh5KajomVn4mRlYKLl4yRfYR7c299cXN0YHl4aW9wcG9pfnFjemxpZWNhZoZ/YFtyanJNTX9pWFpNUExKSFBSUUlOXF9uU0RYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj4vWVg1KJedpZiclqygn6GkobersaS0tKqoucS1sq6gt6yurbC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO5qbu6t6eotainq7Cts7Gnmr23pK28tq+fsbewqKWnr7GboKSgo6Shl5uvpqGfoqevoqCik6Sko7ewoaaxq5+so6+YnKqlqZ+Xmp2lk5ucmp2mqpmcnKWWlZeVnI6Tl6OpoZCJipCGeoR+hIp6j5eKjYZ5goeEiIuOhY2TmIyOlpmKj5Z+hpeLj3qAenByd25vdF94d2RsbGtpaINtZnJpa2VoXGNzgF9aa3VpWkl9XltYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS47MmFULDKWo6GXlJyqnaWhoqC3qq6gurmmrL3Es7CuorWvrK2vtMPEvLO/urews7m4uri7rq3As7S4r7/BuKy8urWmorOqp6mzq62yopvBtqWotbWpnrK7qqemqa+smaKnnKOmlJiisqSZn6SoqZyioJOloKS5qKSnrqeepaGokp+poqGgmZudoJKbnJagoaubm5mhlZKVlpqOlJOjqKSQiIqPhnmEfIWFfZ2NiouGeYCEh4iHkYWVk5KMkJWUjY6Ue4OYj4t3fntsdHJsbHNheHRoaGpnZW+EZ2doY2Zoal9oYmlmWmV7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhkTicynqSjkY6kppuenp2jtaynqrm3qKzDwLawrKK1rqevr7fAwLyywbaxrrK2tri3tqyqvbOvsrG9v7euu7uxpZ62q6WltKmrrqCfwquopbCzqqy1u52oqquxpZidqp6mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq6hoZ6doZWgpp+hoJmbmZySmZ2UpZ2sopiXnpWUjpWXjI+YmqmgkYiKi4l5hXeCgoKdh4uCiXx/hIiGhJCElpWPjpCRkZGNknuDlY6Gcn19Znhva2psZ3Vza2NnZGN0f2FkZWZlaWpjanFZXlhebWRhTmhXWmBWSUdIS01SWD45YGxpR0JUU1xbSUlHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZkglNZukn5CMraGZmKCWpLSxorG9t6Gxxru5sLGjt6yqrqm5vbu7rcCyr66ttq+zuLOoq7mxr660tru2r7i9raadtaugobClq66epMOgsqSusa+3rbWera+trqKZnaiqpZ6Vm6iln5mlo6idmqCclJydrbCmuaiuo6Gamp2ZnqOapJ2XnpiblJqgkqiWq6ibk5yckoyVmY2UlJmop42NiomPfIJ0goGKmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNg2+Af2Z4bmhramdxcmtcaGNicn9gZGdqbWxnamlmbFxsbXVxYVRiaGRlWUlGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopqOjrCdmpOhmqmysJ+4wLagtMK7vbmxpbavqK6lt7i3t6y7r62qq7eqtLmupbO1sa6psba2sLK1uqeon7apnp6poqqtnKnAmK2krrC2ta2tn7GtsKqim5yjrKiblZyno52aqaKklpqgnZGbo6uqqbufqKSgmJmZnqCPa6KWmJxxgpabpIB1kqqnnpWVn5GJl5mAloqgj3mGlI2Dbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39mhoBodWlmV1xpc25OUGpjZnGEZl5kZm5saV5fX4mQhIZnT0tEOEVUZ15KR1BQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wwm5yToJuqrqujvcWvqbfCuL28raa2sKWrpLizsrOwua2qp6y0prC1o6i4trWop6y2sq60rbOiqZ+0q56ipJynqJqsvJWmpa+zuK2upaiuq6yloZ6coKemm5ihpqWbm6ennZOeoJiQnqiqo7Wwo6OjnZaXmJejiKGOkpqHoYeUnaF/pX+nq56TkpuSiIRyeI2OhIihdoiNaZeIZn1zeKFviIeEfo17f6Ggn5mAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFYam9uhldeaVtraluIcG15coZoh4RaXkZOPkZeTUVSVlZRUVJXVGdeTFhKUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYTcvKIyml4OcrJ2ZmZ2fqqqnqb/DrrG6vLfAvqqkt7CprKayta6vs7arqaWxraW1s5yttba0pqeps7Gtsqevn6qgsqifpKOaoaOcrrWVpKWmtr2mrKeqqqyopqKgmKCno5mZpqOkmJykqZaUopyVk6OlpqC3pKSgo5iVk5iTnIiuj5iUiamLl6KbhbGApK2elJqelXmC1Kh/h5TBm8d5d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGub2VpvJK8bmh5bXKP2H5Sa2O2sn+BcZR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXUVRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppOBpqmfl5ydpayyqLDCvbK1wLW3vsKrprStramnr7Oqr7a0qKimtaanuK+ds7K2qqWkp7GurbGmqp6npLGkoqGel5ugn6+tlZ6in7S6oqqooa2upaKdm5qiqJ+Ym6ign5iep6eRnKeblJ2hp6KgsKOfn6OWlpKYkpmFr2pqio2qfmeElYetZXCenZSappVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWlmh5ZFdZxgfWd7pKeCWV+Lq2mBlXh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUVElDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpKmxt6yzvb6wt8Syt7rCp6mwq6+pqbCvpLC6sKSlrrOjqbipnrOysKOloKqtr6uvpqefo6KwnKOcmJWXm5ytppebop60s6Grm6KtraCemZegoqmcmZ6koJyZoaekkJ2jmpehn6yfpqegm5+hlpWRl5GahbWbtXiFqZm1mXeHs5u3f5SWl6mUfmuBpnqBhYiSlJJ3q2drsVuse4+HlHSIcI+GgICIkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGhbltUa2dgTEtcZFhcWkI+sHhXWEEjTWlFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJWflIizpaahrqmns6ypu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paays6ejop2nqrKosKelnp+fr5afmZWVlpifraKamqSota+hqY+pqKqbnpWYoKWomZ+co5+coKOko5abn5ianaOrm6aanZuioJeTkpOTnIPVk5m5cLDCfsaGfNaUm7t8mpalkI2cjaR7joajgqWCeqx5j51Vr3uJfp9quVq5d4aDfKaCk3yYeqp5jpyPe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcodsl4hgU7W0yIaAiXxjpDNCnXZdUWpoY1BAWGZaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE3MiWbopOYsaeopbOqpbSopLu3wbC6wLG1tbyztaexsKOws6afrraom6i5rqOvsaCztLCgpJ6ep6mwqLSppJydnquXmZeWl5WWoauempeorbCpo5+PrKKnlp6XnKGloZehoaKhm6Kip5ueoZ6VmZumoJynlZybn6GZkJKVkZ2Ism5otXGrh2+OpnK0c3K2e5qYpIyPnI2ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhHytfZeZj3uxc5OdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61fdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpT1VGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvoZyRpa+spKq7raa0pae2u7yyur+3trW6urOltLShsbKjn6ywpJimuq6ksbGdtLiqn6adoaqksaesqaSanJqpnpaVmJiSkqOooJeTpqqxpqKWk62fpZKUoZukpp+UmqamoZujn6yaoZ+ekJacop6cpZWdlZqin5aZlpKbhax7d6h2o46Jh6lvrYqDqIOZmaGJkpqKon+SmImuhX+Cs1xys1KufoOCpH9x1313hH2OnYeZmXevhoqRnId3tGGaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2eYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9xbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJe0wa2os6ipsrq4s7i/ubeytr21pbizn7Ssn6Coq5+Vp7arqLGyq660pJupoKCoobWmpqqjmZ6VpaGUlJyZkpWipZqTkKesr6aglZmpn6KPkaKZqKaglZmlqJ2cpJ6snaGdoI2Un5ueoJiZnJaXoqCTmJGmnYapfX2leKGPjoOqcK2MgqeGlqChipeXiKOCkYeUqnyAi515b7Fap4OCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmNye4FrmIdxXaxaiaCOa25lT0pDoVxaTHReYmVNWmFfcnNfSlU2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC46PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnZmZvquXtMKuq62ppbSwuLG1v7m6s7G3vKq7tJ+wpJ6lp6eelKqxqbCqtayrr6GYoaCmpKO5oqOroJebkaKglZSfmpSYn5+PjYypsK+mnZebqKafjJKkl6irp5SXqaeen6GjrKShnqGNlKGYn6CSnZeclZ6glZaPq5uPrm1ytHKpjHaKpnO0eXSzgJKkopKcjYmkh492uG+Me4uia2u2WaGGZZeXaaGip22TcrR0k5h/smqFk4ita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6NseX9+b5iGcFyvVjycd2ZUb24uXKdPYlJrZWFsWWJcYHB7Y1NZUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbqhm7LArq2rq6e3qbivtMC1vLGvubirwbapqqCbpqShnZKqqqe2o7Korqqgl5ynoKSruZ2jrZuWmY+lo5aNnaGbmZyfkJOUq7avp5mUnKyql4yTpZmlrKORl6qyo6Cep6uwmKGjkJmil6CblpuXoZOcqZyUkauZh9SSmrtzsMOAw4Z+1ZacuHiIkJiMl4mMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqaqrsae5r7bFsbqyrruwrsGyrKWinqOhnJuRqqSqsqS0pq2kn5aaqpmmrLicoq2YlaGQpaCTjZyjnpidmpCWk6+5sauVl6Oop5SQlqScpK2ekaCoq5+bn6mjsp6jpY6nopShmpyXlaSYj7CgkpWqnoWQmbWAkJGMuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yae4GyqHCAdJG4g3yGhouHjXuKho2XfKS7ub2cdXqzo3R2l3V0sHWZnmaGaY21dHJwd7aMXn95fYlng3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcWx1Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKqnrKupu66wxa+1s663p7W4ramjoqaeoJ2ZlKykraqmtaion5uWoKOeq6S+pqGql5SdkKKbko+iqKKTnZeSmJSytbatmJ2kpKKLkpGmm6Wrm5aopKWcmqGppqejqaGSrZ+Xo56Xl5edno+wqZScp6KOan5pnKd4iXN+mo90emWHer2+wLpukoNxlIZgcmpaXpqJYWSHjpVrYH+VY22cdmKUa3+alZRlXmBjcZqJaHKMfYaVZ2p+cXR4fX1iW3d0gWhQXG6DfHuLalhreoJySUpvhXBNdE1FV1xmYExbWGdjXk9bbXVpcVJPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qKCoocGjmrS6tqKspa6nqLWxrMissLOstaO+sbKmoKOpnaObmpmsp66kpLWppZuXlaGbp6yovqepppWUm5WgmZOYpamnkZ6Qj5idsLK/rJumnqeiiZORqZqopJqbq5+jmZujp62in6qimrCblaagl5Sdn52XsKWYoqiZnJGdnKOkmaejmpyampqQloFobn1xd5GXlJGFirWqjYaYlY6KjJeXh5SVioOSk5GJjZGTmJSYl5qgopqblKCdjoJ6pYZraXyQfIB0iYqBcYJ4eXZ2ioB7impzgXSDdWN3fXZrcHttYGNccGdNWVllal9XWm96bW1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLKgs6G/oqSxsregqaWyp6WwtarJq62xpbWmwKi0oJ6kpZyklZagq6aso6O2rKCZlpagl62ppcCeq6SVkpyXnpiTlKKfnqKnk5GYqaeyw6+aq52rno+WlqmeqpycoKyYoZqcoqWvpqGkqJ6tmJemnZmaoZ6enLCgnaKmlZiTmJOgopajnpegjpaUi4qNjpetj3yVm4KSgouqqIaBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmZORnY1/jWahs66EiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0Y3lmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqraOzrryktJygpqKhnZmXqKWppqSms7WelZSdmZmwpq6+oKujkJGempmUkZWhnJepnISeqayitMizn6qkq5aWl5qnnaibn6SrlJ6enJ+qrqmlo6uhrZufoKGYpZ6cn52vo5mfqJOYmJ2RpZmYqZ6al2aDknxlfo6aj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5hzbG56hI2GeVhlXYWBXmyKiYB2XGhzd3eRgIeCbneCeIBzbXmDdHeIiI6De2qFWV5rdGRdc4lpanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7OwqqWora6wpq6tsL2xqaikra+xn62Xn6OeoZqZpqucrKOmqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmZpZZ7payiqLPDt6Sip6+enpWeo56jnKOpqJGeoJ2fqq+qq6Oqn6ibpp+noKyWoZulsKSYnKqVoZ6ak6WYnquZnn6+g4hytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncHBe4F7kYyawr99a6Wxb4yAb8p6f5t3kYOOgHZ5gX95cXp/h3F4hYyTeW12kmJmX3hkX2WCY150aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK+tprK1r6qmpqaxq5+rmJqioJybqqeinKuipailpLSjnaKSpq2st7Onr6KSkZqdpZKRoKGXnJ+dh6erpKutv8CwoamvqZeSn52imaKjqqOSoKGdna2uqKymo6KnoKWlna2pkaSbqa2qnJ2qnKyhlpellqGjmJx/zpR5eqSBeZWWm1+uj16Op4GhoHynlZt0q4OAr15jjap6p4eFoHSXkoizY4KrhqGOjbNphK50fZaHuGGCrVmjzW6PdXvae3+ZcH6IknV/ZXuIdnZrfYhufoWRkn5tgY5gcWtwZ2BfeWRbcGhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwr+/tbSwt5iekaSqqK20q6ayrK2spKunsKqgp5uZpZecoq+foJ+op6OloZ+wrJuelaeurbGrqKyglJKbn6WTj5+ll56oo56upKqwqL/Gs6ipsa6Wkp2copegqaqelKCfnJ2ur6eqqZunp6Shq5KttJalo6qqnqOnpqGwoJKap5qhm5SUkZegcIWMl3WFqIdxsHydcqx+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4mKkZCDbZCPZG90dXBgZ21kX29paW5mY1dTXGFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rr9TGxrK0n52jjqOjoayvtq6osKepqqiuq6unoqSdmaKVn6aqn6Kln6ioop+dsKyXmpaop66sqKepnpeUmqOikpShrZudpqOvrKOstKm5zbGtp66slpScnaKYn66snJagmZ2eqbGpqambq6mjoqybr7GiqKyuppmmq6qqsaKSl6Olm5SShaRqpHWJeql0erJwgqWJmYxwiKCah6RgYFKshH+ugpp2roGmhoafepiWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9teXd3b2xmZGVxcGZ7aGNdV19pWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8LJ1dXAoZmrqKGvop6wtbCvqayjqKaqqquppKagm6SenaWnpqOcrJqiq6Gkn6+inZqSqqS1sK+gqZudlpSno5CaoqifoKacsaajqLGstsiytaqsqZWRnJ2imZ+ls5yaoJScn6erq6OumqypoqGqo7OtoqqzsaGbqqivsLajk5akp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWelIHSuLS4yYCBsl5flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkj5Cek3xwl5J/cHp0fHttW2ZqcnFmgWpeYlhjbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMDGua2osq6spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52loKyanqilnaa1nqKXk6iqtrKsm6WcoJWQpa2RmZyno6Cqp66io6epsLTCsbKqraiTiZidpJqho66ll6GVmJylpquar52tqKaerKO3rKGxua+dm6+ns7SzpJSYqKSan46CnU54moF/n3qEo3yCpISGpp6cnpOEuHt8ebmCfszFwrZ4mqGRi599mpaXinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5d8fpKRinR6c4R+cFttbndyaoFvWmRfaG5iZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaykq7mrr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqKayoJmppJSitaKjlZehqbS5pJujnaOTkKGymZ6cp6ahoq+unaSoobWxw7Gtqq2pkYeRnKaco6ScpZeemJmZpaSomq6hrqWml7ClvK2ht7etnZ21srmxs6eYnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfoyMk4p3fHmNgW1peGl4c25/dF1kZG5tZWhgSlpYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZJzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqinsKOUq6OOpK2jnZCamqq0tKSdpZ2pkZSXrqCgnqeknKectZqgqqO1q8KwqaupoYyEj5uhoKailZmanJiamaakppirp62ipZutp76slb2wrJ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6GHrXyhjoOnlZiArIiFroWflKigoZaGn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBulZGmmYOUjZaLenqCln9rbH9ifXRtf3pgZ2Vxb2dnaENZYFs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi8kpqEqcbCt8G0n5utn664paSOm6SjoK+vqp+kn52tmJ65oKKqoK+pma2hkKqppJaJmpCusKymn6ebrZiYj6yioZ2mopqlna2Yn6iltqi/r6WppJ6LgI6bmqCmnpKUmpqTmpqlo6OZqKuro6Sfqai+pJfDrKqjoayyuquup6Czr6mqmHavfpCLnIWHfbqtiphksIxlla19oI+DppWagayKhLCFpZmkoaGQhaBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5CWlnt4jZx9ZHN9YoN3dIB8YWpmcW1mZWVPVWNbQlRePkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5qgn52zs6meo6CdtJegs6iqq52vrZ2rm5WuqKKOiJuOr6uopqKnma6TmY+omqGepZ+Zo6OlmZ6jqbKovK+kqJ6djnyLmpWhoJmPkpqbkZmXqJ6gmKitp6Wlo6Wpu5+gxqelqaGrtLatrqefvK6trJWBqZKjr46bgIakl5iPgIC4w7qDjp2ThaeXnIKsioKviKabmqWqkH7VvcKqYqO/vXx+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rXh3or67dICWjqacj5qRlpx5gZCaeWN9emSMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbOina6mpbOmnYuYpb6pt7Goob+mprGbnrGcuaiera6lppWUr6yXjIOaka6mo6yhpJyqoZiLo5KmnqicmqGpopmeoKutqbmtqKObl5N7h5mRppuTj5GYmI6Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqoLuor6+ac3WqpLeGZYmfcGesj4qPbW93pJCZn4F1rpmVcI+LcZWno5uYrqRybW1tZYp3bm2CmXGAeWlxaWeJlZWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeYkJWefIeOlHVmhndojWp5fnlkbGNmbGJLZFhKa1k6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOrqaKunqOyqZiSvbHDyL62qp7ArKyjoKesn7qjpK2srKaOlq2pkIyFlZasnqWqoZ+jo6CRjKSSp5mpmZajqqCWnKWlp6+6q6yam5KSe4SWjaWXjZGRmJONmJWnlJ6XqKKasKaeoqy6n7DBqKSzpqyxsquurKi5o664loqhqKW2nYmWopeGqZqQlJ2TqrOZm6OroLKWoqGdoKKcoKShlaumjJKSjIeSnJyUkJmTmJCNlYaBpJmXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbHuVkZSTgYGPj4+PnZSglZiWoIKHk4xwaI92cIp3dnx6amxkZG9jVWBYQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRV1RWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1t66uorCkrZ+gtbGQjqvFvMS7uKqipZ2bpZ2wqaO2p52ptKankZisoouIiY6cp5arpKGZp56ek5Wjl6ibqZmUpqGjj5qnmaG1uqiqmJqQjXyBlIuhlIqUkZWQkJOXpY+emaifnLajnaest6iuwa6jt6evr7CtqqqzuaGvvZmSpqOmtqKSnaaejamfjZKfo6yvmqGjsaivl6SgnKOpnp6dnJernJKZoZuTkJaqmY2YmJaQlZ6RiKCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkZSUkYp9jJaSkpiToZOdlqCDh5eGeXGVcnmJf3F7f2puZF9waWBbYFltY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKejsLOsrqOpp62gqLWqkJCdpLO7r6ysoqOaep2isaSlsKiWm7imopSYqZyOhoqJm6KQrp6jlaefoZKXmJuui6uWj6iaqIyYqI+eubakpZibjYl5gZOMmpOKlJGTkI2RlqKMnZ6onp+4pH+Er7Wir691pL6jsqB4eqCrsruVd62kn4qAqn5kXGJ2n46knYOXfm6Ts5yjp66romWen5JzeZmXcICYqJdsf6KniWWcpZyRl5iWi5GbkYWdmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFpiIuVk4tbdpWRZ2iQjnJ7pZiYZHmYhoF3l2mDioJueX9rcGVgdm9ra2hbZmViYm9TWz5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMU1RVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablqajobCxrKuppaito6etpJKWq7Wvsaaaqqarl3OLnK+fqKqmlJa4oKCPnKOdkX6IiJudjauao5Wnop6Ol5GehXWukIimmqeRlqOIm7q0p6CZmIuJdHaTjZaTipSRkJSMj5OgjpqfppmcspaAjJy1nbOMko+8p6F+p6J6o6+3gY6Op5+Ei4WPsamvjImWopp5gYushpydoqepqIeVhph2pZt6h5uBl6aCgXucsXqKhaCXmZSYloGQlpaEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElpJ4lmiTdKCadHyZg6Cchph+kYmBg5hqjYyFa3h7cXBnZHduaWxrW2VramVzW15JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1JYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6aurauorKCosKanqaWZlK7GvbChlqaotZ6Pg5yrnKahn42Qvp6ZjZ+aoJB9hY6Zl4irnaKWn6CRjZOJhoCRqI6Hopyjk5adhp+5sqedmpKOhXB1kImVkIqUj4+bi4+Rn5KWn6SWnqyIn7SJtJqtisqHqq6It4WNsIOxroOpjaaYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6JrnoOhmYKZgIuMg4mYcI6ShWh3dHt2Z2h1cGdnbF5jb2xnbFhnR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmwqqummpSgo6Sqo5akqbajr3+gp5ylnp2Jk7yZk42gkZ2QeYSWlpGHq5mbm5mhhY+Md5ucj6CRiJ6km5WYl4aiuK2lmZuMjH9ibY+Lk5CNkIyMl4uQkZ+Pk5+hmaGofqGnh62doJauj56dnZGGgaCNq6+GpI2qmoyafqJ2gJmTaoGrdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWfox7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmlln2xbbYl7ZVlfg39iV1BvdmVtdHJqam9eam9tbGlYaU9dV0U5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlra2gnK21oqiSoJ+fppuZjpi0mZCKnoyVi3WBlJGNiqaWlZienn+ShYaspIeckYqYqJeZmpGHpbCmopWaiImAaG6Ih4uOjomLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWj6eDoad/hqmthaV5in2Emn2icHKTh5V6nYx5bYecjJmQm6iaj4ece4Kic3amZp5+dqRfmHp9knOibpi3tLpzkoeBf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kX52Zs5VwfJeetHRzW56yg2pib3N1cWhvWGtscnNmXGleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kuLWuraCbopyjo6WunJuxrayTl6CYoKSZmpOeq5uLiJF4i4VwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopJ6PloeEfmt6hn99j42Di5CRiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJymkJaoq3+ujH16oJl6o5N4gHOWh4ycfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHOpgpyCc6pnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akGynmVyofne7a36qW46EXbRnXG5xeXdraVtxanh5Yl9mWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycqJ+erpudsKirnZeimaGfmJaWoKOZhomMaoiAcXuXiIuWloSRlJiPeoqElqOdipSPhYudkZybiY+oo6CZi5GKgIBpgYZ5f5eMe4iOjoePlpp/k6KfoKKTmHJon4qfj4xwkoyBqYiZn6OooKh9sK2joriXdqOzoqN/iJR4nXqrmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXyafJyZfnOqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WAnW1xfJRvmXJqpF2VdkhlY2BzcH19bmVgbGh2fGNkYVFeVl1UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdmbGRmbGhoa2mTnYCxrpmEU1+gp7O5s7OpmqKMnKucnKmToaukoaiPnp2cmpmVmKGdloeGiXeFgW55lYWQmot8kZOWiHKAiZOgnHORkIGImJSfmoSOqJyalIqLinyDbIWFcYGhjHiFjYiHkpmVfJKkoZ+jiK6GfbWEjp6de6WWeamClp2QiqGdfadodm1+mXOgc3F8nYWYb5OCrn2kg6aemoGjb16oZ3WjY2+lYZzTkHx6mXhyc2OihZB+onKijnVrj7OLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8g5tvd3mXa5t6d5dzbamkZ2BleXB/g2tnZmRtdXhnYGJTW2VRUWFJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaZ2lUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5yYhZiooKCjjaSooJipiZmXmJOZkpKgmI6HhXtwfYRofY+ClJqBd5GNjolvf4aQk5Jsl5R9iJCRo5WDjqqZlJKKhYl5g3aHgG6Cn4Z3gJKGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgZqQhYGcknykgKKZhphynoSira6Jl4t/jKSNloOuopR2tLW1yaFzlIqAn2Cdl6lteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7abO1tMamc5h+e51qm5urdYOabHR3l2maenSYcVBEfbNeanZreIdmamdidHRxblZeVFloT1JoSVVMWVJVXGdrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbV1oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcia+nhGY/lKGyq6+vtaKjj4CXqaKipYylp52cpYKZl5aNl5CPm5KOiIJ5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSg5eol4yQioGJeoB9i3hwkKGGeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJdwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9maKViG1yaatqdaBsbqZgm2mLkGiWh5qVdaKAfZpgi4WMdW+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9kp1SLXVSYbW1za3GBbXBoa3hza29SWFdWZllTbUlYT11IWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6ucnqWMoqGaoqKAlZiTjZqPipeQjot7h3GAiGiLi3uXmnN0in2Qe2SCh5WKipWZgnyIhZamj4Ghq5CFj4mCin2AgI9zaI+lhH2GlI2ImKCOiJKqp52JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6kooyShIyDvG58pa+ChoaHk5acn3ylenGolKCWZ55+b6tjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnNve3RxYmp+bmhtU1ZbVWFhXGtNXFJdSV1tbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeuo5mJgpermp6kiZqlnamchIyajoackYWSjYuMdIZ6iIRvjIR9l5N0dIZykoJtf4uSh4aUj3x7gYWXpI1/paWOgY2JhJR1goeSb2yLqYCDi5SOiZyfiY2Tq6OgkIB1lJaIfoF5lK6jf4GbcY+GeJCMhH97cqaMcX19epeWm4SOeHt+foiUlZOKdpCYn6CDen2Ja4yFW3l4cXlwaG5+kolxf3SBj5OTcYWEgmWMf1+Bf4t3dXOUdW95bm6HbYSFXndpeI1mgYKGjqmbfnR8l2qJiHCAdnyFdm1sZoxzeXuYeIRbalh5j2hud3Jxb3d4b11shm5pZ1ZaYFdcZWtjVWFVX1FfcHd5bGp2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeW5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHluaGxvYY6Uuamni6GimqakmaScq6KghISXrJKdoImappqomIKBm4p+lpOHjomIjXKCfI99fo6EepePdHKDcJWFe32Ti4aGkIV4fn+GmKKMe6agi4WPkISVgoaOl3dyhaqGjpKckIienoiMm6igoKuDiY2Umn5+iZatqI+TppB4cJ2Rg3uSb36ohXB9lXFrcHyBn4t/ko6MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5CBfX6LaV1pZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHCFjXlvZWZjeYN6lltcaWZudlt7eHd0bXNygmZcbYprbGJZWV5aWGxxW19gWl5dZnR9e3Rvc2Nra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKqxopCjoZqenpiemaiioX2CmK2Nn5SHm6KQpZV/e5eEfJKYiIiGhopyfICLdoWLgYSVinFvgHKYhoR+koSDhoqBeoCDi5qej4KmoIZ4jpeIlYuLnZeEg3qtgpGYmZSKnp2HiKGroKKio4uIkpuco5mWqqGnpqCSm4iXjnx4jo6Ep35/kpGSk5yxppuUnpCNspOYhKWMjJWbn4mQm4KIkYlrfI12d2WChZCKfImdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppCEhY2Ig42QjHyHioiPgXZrgYN8eZlqcmhgc4pwfXp3dm93dIFdXm+GaG5fXlpcXVNocVVjW1xhbGh1e3xybnBka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fnqDeE5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJmkoJ57f5mrjp6NhZ+cip6WfHiUgnuOmYmGhISGbXiAgHKBh36Ik4Rta356l4aEg5B/gIaEhnyHg42anJKGqZ6DcoqPhZKRi52RfY17qoONkpeVj5yXhoabp6Cimp2Gg5GamZmQmqagpp2dkJaBkYp3fIeOhKV7fI6QkYaYqaGdk5yPjaqOkYCejImTmp6Cjpd+ho2Cb3iFcXRgfoKPhnWLl4CDj4KGhH6Fg5RteXV0kqKLjIWahISNdICKfHxycnuIhHt5jI6Ek6ePhoSPgYSLiop3hYeJi3xua32Ae21obG1nXnl/aHx7dnR1dXt3XGBwfW51YGNaXV5RZm1TZVpdYWppdnp+cGtsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZyg42Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW5sVGNxeWVwenpzZWltbYuKn7eaoaOfkpGWl4uan5+ee3idppCbioaklIuYmXh6jYV7iZGDjIKBgm18fnhzgIV9ipB8a2h9gZeIgYiOfH6GhId8j4CPmpuRiKacf3CLiouSh6ChioWMfKiRiI+Sl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbfo6FeYCDj4eggH2MjI98l6SgoJKZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36IinOCh3x8cHl7jIV6e5GNg5amk4uGkXyGh4eFdYKDiId6ZXJ7f3h6cGxqZl59c2h8dXVzfHKAal5gdHZweGRjWV9eUmtoVGRZX2FnanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4uBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqWlnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJfoiCgH9xf3p0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjJafmn1vi4GRk4amm4eMiYSmlYWSi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmZOUnHqQhoN4hJeNnX6BiY2Mc5einqGSmI6PooyLg5aYg5KWmX6YjXyIjYF2cX1temR/fIqFcIaTf5CCbIeCgX+JhGV1b3yHkpeNfZN4i4l8gId8e3F+eIqGeYWRiouYopWBhI13iYWDgnZ7gYmGdl94d31zfXdmbGRhfmlqd3N0dH1xfGJjYXNudXNtYVpgXltrZFJiV2BhaGt1eIZwYmpjbWVofINsaHRobG9of3yCeG2QhnGAg4N/c3yDjIF/fnqCg358kG12iHR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrZemqJ6NjZeHhp+Tl5h9d6qciph5l5yLi5iPeXuAi318g3uAgoB4dHh6c32Ag3+Ii4BkXn2LlYd/hYd0fX2Jf32XhJaTloyjoJd+cod6k5GKp4+MjoqToJGDkZCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJeNlZZ0jo6KbIaYj5l6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnV4gH2HgX2DjYWNlKSQeIWCdImHfYBzdYCHg25ge3V6cXxvYW5jZHtibm92cnd3c3Rhdl9vbHVub1xbX11eal5PXVdjYWhtc3qJa19pZWpjaHeHbWZsaGlsaIB8endukIdzgYOEfXOBhol6gn16gYR9fI5yeop4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXeumIyWfZ6TkZaTiHd9e4p8fIB2d3+AcHRzem+FfIGAin58YFx+j5GGf4OEc3p/hnqPkYeRkZuSpJuUgX2Ae42KkqSJjYqNmJqMhpGYk5aOiYmMk52TkIyNboOQjpGJnpmioZeWiZaRb4iahGeGmY6TeomFkIpwlZqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV7i3RuhZCOknF0gHuBgYh8ZHFseX2ZlH2EiHSQi4F0iHlvgH6Bh3yFjImFjZWojXuIfX6LhXd+cG+AhYNjaHh0dW97Yl5wYGp0XnFqenh4bHJwZXhdbWxzbXNYWl5fYWpaUFdXZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKGmm4eMioGQnIaTnHSBqpSSjYagjJaTkH90e3aFd3h/cnN7hWtyb3ltinaAgIZucVtZfpGNiH+AgXZ1gH9/oIaPipGcl6CTl3eJfoCMiJ2eio+GkpiWhYmVmY+XjIuNjo2dio6Qg22Iio+RipyWoZuYlYWXiGqFo4Nnhp2KkX6Lg4uBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4Judm9sbW5we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIl7ho17i4aEiY+co4h8hHeCi4B4eG5qgIKBXXJzcXBveFpecGBwal5vaXx5cG1tamx2YHBva3JtWVhhYWFuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhHuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2fp5aFjIN/l5SDj591ip+UkoaKm4yVjYt5cnh0gXByhHNxdYhsb2x1bYh2g31/bW5VUYGrlIeCeIB2coJ5gaCBkYGSkpebkZp4kXqCjJKkmpOOiZWZkoSHl5mMlIyJj4+InoWQinxyioWJjoicmZ+blpR/lH9php2IZ4ahiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbmtrbHp+YXl+jpWBdnqAd4ONfHhndGx0h5WLf4iGe5SQcXqEcHeMeoqNe4l+g4yRn52FfXx4gox9dnBpa4GCeV93b21rcXNWXW9icWBfbG55cGdwZmZzdGhxbGF3ZV1WZmFgclNQTlxmZV14cIh8XlxocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iIJzhoR+jIyDe3mVd2ZyaoNgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIf4uef4qZk46EiJiOjo6EdnR2c4Bwb4VzcHGDb2tpdm2Cbn18bXRzUk6C38iS1pN8cHSCdYOfgpN3lJCYmo+Ye5NyhZCfoZOTkImSm5SGfpaViI2NiJGNiJyAjoF4eox+iIyJnJudm5WTeY12aImSh2yIo4WSh5eDhmOMkZiOlImWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp5aHNrc4uPioKFhX2VjGx+f2+AjH+Mh32EeoKPlZqainx3eIOQeXNtZnB/g2xqdG9oaXNtU15vZHBZX2txd2ZramJmeHJwcGNfd2BgVmtfXXZPTktgZmNdeXGJdFxbZXZgYWVljmNhZmFYaXNzbmtxdox8dHmGgXV2fotzf4Z/e4l+comHgZCKiHx+mHZlc218ZYh+bnBrgFpsbnl5c2F2enuNdnJ3ind5n4ubrpugkIKFd4iVfnyJnIeFn5COhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEooWRbpWPlJ+Tm4GRcIWLo5eJjZWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+Jd4aEjZuamJmOj3aKdm6GiYt9iqOEkYmdhYVei5SXio6IjouKhIlsfJaBfYiFiZCPhnaFfX1rfWR3dWpteHNXiHqRhoV6fn+AhYt+eGVzan+KjoqDgn+MloVrgnVuiJGCkYV/gnqAkZaTmZB1dHiIjXVzcWd1eYJidG1vYmh1Z1JgcWdrVV9udHlgcmNfaH1wcm5bY3JhYlduWVx3TU1MZGZhXnZzim1bXGR4XmBkZYVfY2JeWGpya25rcnaMfXN3hIF4d3uJcYOEfX6Ie3SLiIiVhox+fphzaHVxeW2Lem50cIFYcXp2eXFld3mGjGl2gIlyf5yHmKeco5KEfHCMlHh5i52EhaGNjnuVjX+Zh4R7cndwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2ipqIjWmXj46clJKBiHCFiKCOhYqVio2YlHyNk4iDiY97kYuGkIJ/dniDg3KHgpKblpSYhox2h39whYKJh5mig5SMnoOJYYOVj4aJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodXJpc3drWox9koGFfH+DgISKgnVhdGyIgY+Lgn5/kpF9boJseYaPhpOEfYF9gJKTkJeJb3J6jYZ1bHBrcniAX3NpblxqdmBSZHFoZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVdbdUxKTGVnX2Jyc4VoW1xleV5eZGd7YGRfXFlrbmVvanN3in5zcoF+enZ6iHOFgnx/hnZ3ioaPmIKMgXuTdmx2dXl4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cJKQjIdqmI2Im5GLhXtoh4uZhoGSkYaHmI18jY2BgYmNfJCMfoqFenV7gntwhoCVmY6SlIGIdYOGdoOAi5Odn4aVj59+iGF/k4eEiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+Eh35wX3NxhHyPjYJ8f5KJenGDZnqDioeMg3yFfoCUj5GThG5weox/dW1uamx6fWJoamlYbHVaUmlyaWJRYnJ4bGFlXVpqg21zYltnX2VsX25UWm9OSE9nZVxnbnGAbFpbY3JfXGNrd2RlXVxabGxjbWpzdod/cW9/fHx0eIZ4hYJ9f4d1eYmBkpV8iIZ2iYFvd3l7hJNwbXuBd16Df3SBbWl7c5RzZ3KIfXKSkYOan5ughod2dpR+bXaTl32HkIOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3d8em1xfmVjaGhXnY9ecXKWvMODdXGUiJB+cpaLhpyTjIdyaoiPloB7lIyBhJuMfIqGfXyJjH+UiHWJhXZ3fYFxdYaBnpSFlI+DgnJ/iHWEfImYnZiHk46dgIhmfZOCf4WDiYlygX1nfot7eH5/h4uOfGmAfIN2ZW94eHJ2c2xqjYWKgYp/eIGAhIN/a15yeHp9jYqFe4KPgH5ygGl5g4eLhoR5hHyBmI2QjH1ubXuJfXd0bmhnfHZjXHBiV29yU1Nuc2hhTmZ0eGVgXVxYboBvc1llYV5qbmBwT1lrUURTZ2Faa25tfG5aW15sYlpjb3ZjZlxdYGxpY2xqc3aCg3Fufnt/dHWDe4OCfIGFdn6JgZaQeIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p3hHRslI2FnpigmYWIbn2Mdmp4mI5+gYqClZeKeY6Wb3pzcGxqZGB0e2hfZXF6WmByfXlncXphZWWPsbJ3SmJapNnQlnF7kIqQd32Ui4SZkYuFbmuFkpJ6eZKGgISYinyHf3h4iYqEloBvjIhxdH16aXiFg6WQhJOMg39vfoN2hHmFm5iTi5KQlIWHcHuSgn2Cg4mDboF4aICFeHJ/f4KKhntlfX6EdWNwcn9oeHBvdZiNhYKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoFucYSHjoSFc4R5gZmNjoR4bm9/hH92emVoan1wX1l3WlhxbU5XcnNnYEtsdnRgXVtbWXR9cm9XZ11manFfbk5XaFE/WWdfW3BqZ3lxWlpZa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVvgnt/gX6Cf3aBhYiXinGCjXF7hnx5eYOTjHVqen9rb350f31vcnx7lG9ugX94ZpKKgqGZnZGChmeHg29nepWJfn+FgZmKgXyNjGl4cmtsZl9hb3htX2JveFxka4J6YXF2X2Vl1Oq+ijI6PouOgHF5hYeOjXaDlox+ko2Mf21shY2Mdn2Pf4WBlYl8g3hudoeEg5d3b4iFa3V7dGV5goOni4OOi4R9bn90doN5hpyQjJCRkoyLhn57koZ3f4SNg2yAcml/fnhtfHuBioN3YnmEgXFkcWh+bXRxdIGaioB/hX5ydX2AcoFwW21+dHiKg4t7h4B8iHh6cWyIg4+Ei3KBeX+Xi4t/dG5rd4CAdXVcaWh3cFlXfFNacGVMWnJyZVtKcHduXFpaWV10fnVoWWJbZ2VuY2lMV2ZRPV5mXF11ZV90cFpZVG9kWWRxeVpoXl9nbWdqbGlwd32ObGmChH55boB8fYF/gnp1goGMk4VwgItueH6AenuIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjHt+f4OUgn99iohrdXFnaGNbYmdybmBha3NhaHCJeWFzdF5jZJugj25cNVmvtXRpgIh8koZ2hZaFc46LiXZwbIWDh3V5iXiJfJKIen9zZ3aJfn6Yb3GGfmh2eW1leYiEpIaAh42Jfm5+dn+AfIyZh4KTkJiIi4SJfI+IcHt9hHtofm1rgHt6aXp2gYeBcmB3gX5xZHJmdYJtdHuFlJGBfIF/bnd5fHR+bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVyfn1+k4mJem5uam6CgnVuXWdmc3FRW3tOXHBcT1tycGRVS3N4aVdZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFddW1YV1N0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBgIJ6d4B/iouDcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJF4fXuBkYCAfoqDcHJwY2ZeWWdfb3BgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWDc5N8eIaTgnORjIhycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZmd3VjanyDh52Bf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHuIiWt4eX51Z3poa395c2l6doCCfWhgd4d9amt0Z3t/aXaBjJCUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWltiIJycF1oY3NuSmV1TF5uVVRZc25iUU9zeGBSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdoVVdVd11bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354gYGBfHZ9hIiGg3B2g3Jud4KCfomLk39wgHt3eXqBjHSDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/e4mGhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJeG+MdXuGjoB6k4mAdXR0fneAcHF/bYR0lIZ4dGtgeoJ5iI9mcYNvZ3ZtW219gJCTf4B5kpJ9eHtth3WAkIuEdJaKkY6HhYV7f4VsdHZ/bWd3ZW17dW1qdnd/f3xgYniGemh0dWJ9emd0hY6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e314e3OLgX1zZ3RlbouEbXNbal91ZEhubkxbYldWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGNebmJUXHJHQmZfXWZoXlt7YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjHV+dnh+d4GDgXtzfoSIh4NvcX90cXV+hYKJjYp7d394g3x8hYd4h3x9gX6EgHt+c3Z5i46fjYl6iXZ0g3lefYWZjHmGg3SFhoV3iXtibmxbYltbYVZqc2NgW2dub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHF8hIl+e5GFenlzeXV1e2psdWOEdZGCd29mXn2CeouJZXKCa2pxY1hse4WbiIKBc5eUd357bohxgYqLh3GXjpCIhYuDe3l+cXFvfWZocWJteHFqa3F3fHx5XGV5gHdpdXhmgXZndIeLjZR8cYZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXd9cXp0h3x6cmZzYW6MgmxyWGtfd1tJbmtNVlVeVFV7a2FPVHVyUFFUVl5idIVoXGBsamZjWW5hWGJwR0FoXWBmX11We15PVmRwWVtqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fnmCiIB1cn+HhY2CcHB7eHd1eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5GTn3+MfIttdoB5Y4OHl4ZzkotvhYWBeYJ0Y25qWV9bXV1UZ3NlYFlkcXFmgXNia2VXW2Bpf3e+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iJo4GEf3GZk3GAeHWCbYCCkYdzlYiMiISIhH14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjIaVf2+LZmt6g3VtdGJcb3xrdXyLfIFmdYd9bXFndX54fn9yfWt6eoF7eHBmbGJuiX5tbVZrYHdVSmprT1JOaE5ZfGhiTlV1akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1piZFdZVXlaTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF3cJmFdn9+d398hYd9dXOCiX+Vgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOGaXd9fGyDhJOAco+CcYWCfoF/b2ZsZlddW1xbVGRwZF9XY3J1aXVwZWVjV1xcaH9wb3KAdIlkZHh+aXR1c3OChHiAhHl2c3Vua3pwYWdrZ4Z0jYNuZl1ffXB7iX5pbXdmaWRVVnJvjaZ8hHt2lpBze3N8em57e5CFdph8h4aDhoN8dHBybGd1XG1oX2x0ZGdmaXpve3JZZ4F3dWdwgHeBdWJ3hIp8lIBui2lteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cXl5c31mfn9/eHduY2ZiboZ8bWtWamJwU0tpa09MTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZmBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFtjZV93Zm1icGlzbnJ/dHSagXd/gHd/foaEen11goR+l4VucnR7enVxhIWPgYB6i3V0kH98gZSOgIWEfX6Mhnt+gHZ7o6WKeYiFhGx1fHt1g4KMem6Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGJze2lobWlgYldfWmmAamtvgGdrYWh5eGpzdHRthIF7f312dW17aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+od4F6fJCOeXVvfm9zdXmPgHeVdIWCf4WHdWpydmdobltsZF1scl9nYWl4aHttWm2CcnNpb4B+eXdgd4SEeI+Ecodxb3l/cmNxaFxvd2Rxc4h8eGJzgHBnanhzcmx4d3V3ZIN7f3d2b2RkY258fWtsVWliZlNLbWhPR1JrRWF4Z2FNU3FcSU1UWWVrd3tlXm1xaWRdVl9Vbm5XS1RoV2ZeWE5VbFRKXHlfW19rXV1aYmVgemhsYW9vdW5wd3V6mH13gIF6gH+Hhnp4eoN+gZOEcXR0fnp2dIWIkH2AfZBrc5WAe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnXFpedYFpXm5sXGFWXFxrgWZxdH1paV1rdnVndHdxbIV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZZ2OPp25+d4CLjnpwcHxmeW96jHt2jnGEfX5/hm5kdXNkaGhca2Jdb29bZ19sdWR6aF10gG9ya3F7fXV1YXSFinqHhn9/d3J1f3VhcGxZcXRicXKFfHVkcn9sYWx6b2ppenh1cmaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdWYUdidmZhS1RvV0pMV1hna3Z6ZGVucWZjWlddWHZlVEpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtcG52g5h5coGAfH+Ii4Z+dXWGeYeLfXR1dYJ4enqCjI59foSIanOXgXqKnX1+hXqBen58hohzcY+ujHt7ho9+ZnKIenR8fHZyb4Zse31sj3picG9iZV1lVllZVmNma2BdXHOFaFhxblpeV1pcbHtjcHd2bGJbbHJzZ3R1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXWJjkKVoeHSChZB4bW55Z3htfIV7dYhygHh8eH9oZXZsYGZgXmpfXXNrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenVvcn1yYnhkW29wYXFxgnxzZnGAZF5udmlkZ3l6dG5vgXV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVlIYnRkYUlUbVNJTFpXaWxxe2JsbHNjYVpaW2F2W1NLZF5YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG9rdoGQeW2DfoCBkoiEgHZ0iXSMhnRyd3aBd3x9foyPgH6TfnB4loN8mZJ5gIB4eX1/dIiDc3CZont7f4iVeGR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiGVScm5bWlhYYGx3Y2l1ampeWm1zcWxzc3NqhXx+f3x3bm5sZGlxY1tqcmR0do5zW1dTZGFygH9ygl1iY11TWmBbY5KfZXJxhYSRdGxqeWxvcHp8e3GAdn9yenl5ZGV1aF1iWmFnW153aFdiXW9oYXdgW3t2amlybndzc3RocIGUgoZ+g3VyanB8bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfWxsdH5zcXhrcGFcZWxsemFnU2dVV1JQdltSUFlSSWNzYmBHVWpQSFBaVWtra3xlbW9xYVxaWFlscFdSUGZWV2lTVEZaXE9IcnRYX2NtY1hhYGFdi2pjZG15eGtvaXV5hntrg32AhJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OCl3R3gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLhntleItubntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdGdidGVlXVltdG1wdXV5aod8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFpgWWOWlWNucIOFinNqaHpuZXN2c3xsenR1b3l+dV5mcmNbXlZiZFhhdWVVX2BtZGFxXV1+cGhpc3FzcHV1am2Ek4GIe4RxcmZufXByb1NbZmpmcXSBd3NibHZVYnFqW19uZXxlbXZ8c3Jzam1gWmRqandeZlRkVVZQVG1XUVdTUEhlcl9hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bIOAfYaXe3+IgYl+a5OIcmd0gHt1gIN9iI5/jJNzfIqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3Z3bXqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5qbWBUVlNvZ3NrZXdkZV1Yb3Rscnp3cmyIe4B2nHt6a2FlbG1eYG9qZXB4fmdaVlhga3h8e3CEX2JeZ1ZYX1dknIhia3GBh313a2t4bFt2cWx6aXVzbm97gHJYam5fWV1VYWNXZHFjU15haWFibFpgfmxma3N1bm13dmtohYx/iHqHbXBmcHxtcm1jWWFoaW90gXRyXmlsUmVxZFRibmJ6Y3F2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBg3qIjX58ioeOeW6QinRsc4J0f3+IhYaRhJWPeX6Mj4iRm4SAfIyEc3+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyNjY2NjY2Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usH9rbm5ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS3fGVoZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGLioqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkIqRjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4mHhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GiIaFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mGhYeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoiGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjoyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt7fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWdqZ2hlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5dWVleYmFeXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozw8PEhMPT1BQT9CQz1BRERGQ0ZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5ODo8PD49Ozs6ODpAQEFCP0FAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTo7Ozg3ODk7Ojg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09O0tlQD09Pj08PDw7Ozo7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkA/PT89a3hUPUNFPz5APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ/PDw9QE1MRkh3dVk3PDo9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJASW5QOz1kgYJ+dXp2Uzc4ODo8Pj8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9Xe3lSZYSDg4OEfHhSPD0/PUJGQUQ/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQFl0d3uCgYGDfICDe0w/QEM/SlI9TUc8PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUE/UnVzfoB7gIR7foZiQENDRT5PW0xtaElAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVGa3V+f3mChIWFhn1KREZEQmN+hYiJflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkddeH+Cg4SEhoaHjWpBQlZ0hYeHh4eHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTExYf4SFhYCDhoeJfVNthIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSl6EhIWEf4GDhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJaoaFhYKAg4GCgoOEhIWFhoeIiIiJiYyOZkRDPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlnhoWCf4CDhIOCgoOEhomKi4yLiomKi4yJXj83NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmqEgYCBgoODg4ODhYmKiomJioqKiouJiYqCSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6Ozg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlBe4SAgoOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PVCDgoGChIWEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QUNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCWYWCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiYtePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVehoKDhIWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0hISl2GgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE1LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs8PTo/QD5AQENGSkpRY4KDhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUlLTVZyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19RUVBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFRUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUVJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDR1ZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZVa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBNUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uGbFtkVTpYWFhTUD5AVlVZW2NgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6enx9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadINZVX2QYVxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ViloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTEtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0NCQURAT1BNU2RzdHV1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5APz8/PmtRSmFFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODY5Nzk6MzY2Nzk1PEI9ZXR0dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGBfXllVUE1PTkxISEpLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3Bwc3h5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pIT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHF1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUJGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fXt6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUFAQj0+RUhHREZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09PTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkQ/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8eHl+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDSEdJR0lFQkI/Pj1DQkFHSURNT2FlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkRJSUdHSENDP0I/P0BBPkNFQ0tNUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJDQ0dGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISEpMSk1dUklIRE1GQURLSk5NUE5LTUpLRkdHSk1OUU5MY25pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHREVFRkVHQkNAPjw9Ojs6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+P0NDQ0VHTE5HS05IREhESUxOTUhJTEdFRklJTE5LSkhFTkhDR01MT01PTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVCQkJFQERCPj8+Ojs7PTo9PkNBP0FDRUdKR0lJTEhHR0dGRUNAPUVFQj5BQ0NDRUdISUdNUElGRkZLTk9LRkhKRkVERElJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJER0pGSkdJSEZGR0VDQkFBRkZDQkNCREVER0dIRkxRS0lPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ05PTVFPT09OT09LS0tQVVdWVVRYYF5caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkFERDxBQUBDPDg5PT45Pzw/Qj9AQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtPU05EUVJQUVFOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSUtIRUtLTE1OT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJzeU5ISEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJCR0RDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbXl9eYGJdXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0NEQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtOTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xJTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkVERkdFSUVGRElIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBLT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmNlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTExMR0RDQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDSEdIR0VKRkNHSUdHSkZJTEhKSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiZ25oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MS0xHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRkNISkpISUtGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJGRkhDREpFRUpMTEpMTUdHTUlISUtIS0pJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NS01NR0pOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5MTU5ITE1JTEtISk1JS0pKSk9QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2hhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJBQkZER0ZMSEVDQ0hLSEhGSkxMRk1LTFNSTEdNTEhOSklITkhKSklITk9NTkxKTU1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTUlLSktTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0tLRkhKSkxMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dDRUdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZIR0pHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESURHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpJRkVKR0RGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0ZFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlEQ0NFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lMRERLSk5NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElBP0lKR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QT1xfYWNjY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkZHSEdHSUZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTEtLSUhHRUQ/RUJISEFBR0ZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUVJbU1teXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTUtLSElDREFFQ0hHQkFGRUJWVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYmJXX19UUE5QUVhSXVxbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRUpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQURGQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkVk9TVFBQT05QVVRcWVlaXVxgYWRlY2hja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJS0pLS05OVU5PS0tMR0dLUFNTTlBPTk5OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFTVFhXVFhVVFxUUGZaaGhkWFNrVFdWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0dgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNXUG1IcW5wYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlJWTEtPSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZXp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0pISlBOTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBQUUtHZnhsY3hybVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXc1Foem1panp6fWx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b15fX2NiW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTUpTdE5DQkVQUEhKS0pMUE9PUE1QWmBaWEtUV1BhXlJWUVlTTVBJU1RWWFdXUFVQT05SSktyb3V1cXVxZGhgVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVFRUFFXXFlVTlZZVWZYUlJZXlRNTklUVFdXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9ISktISUlIUlBMTk9NTFRTU09UUldSVlRQV1pWVlRUVGFgUU9OS1RUU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tob3poZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVFVVVZTWlFPU1JXVVRZVlRZVVNSVVNUVFdYV11aXmFdXFpaXFxgY1xdYmNkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktMT09MTVRQTlNRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lUUlJXVVVXW1laX11VWF9dXl1cXWFhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUVBSWFRRUU9NT1NVT1dSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlVWWFRXV1RSUlhWVVpdWV1fXlZeXV5gXFxgYF9fWmJiZGhoZWRhWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbXFdRVFdVV1hVU1haVFNRWldWXF5aX19gVWFcYGFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRTWFpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVJTWVxUUlJcV1pdXl1hYWBXYltjYl5hY19cYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVpdVFVOVldXXltYUVRVWFhYVFZYW1RTVl1ZXV1gXWJjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFhY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVVlZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTVlZVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWV1lcVlVaXVxeYWFfZGRdXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRZWFldXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWVpYVl1eX15jYmFlZV1iXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVtZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVlhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVlZWVlZUVlRYXFxfYGBdYF1XYV5bXlxbXlhWWFhbWl9gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWFtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFhYV1ZYVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tbYF9dX1lZXl1eXmFcW1pZXF9iX2JkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV1xcXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5aWVVYXV1fYF9fW1peXmBiY1xcV1tdYGJhY2VkZ2VlZmRcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xcXltYXVteX2FjYmFhXWJbYmRhX2NjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF1eX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7e3t7e3p6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp6e3p6enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSzs7u+vr6+vr3K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL+/yczMzMzMy9vm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enp6eG9vcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgICBgoKCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt3enp5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enl5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt8fXt9fHh3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8fH19fX59eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8fXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fnx9fn5+fn59fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgIB/fn+BgICAf4CBgX9+f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6Af3+AgH9/f35/f35+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn9+fn9/f39+f39+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDg4KAgoGBgoKCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKFhYWFhoaHhoWGhoeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChIODg4OCg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKHgoGCgoKBgYGCgYKCg4GBgICAfoGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoGBhpqIgH+AgIB/gIKBgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKBg4SCgoKBgYWOnYyDgoSCgX+AgoGCgoGChIOBgYCBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoaFhIOBfn18gJOdjYOFhIOHhYGAgYKDgoKEg4OCgYGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CFlIuFfnx9fX57jZ+LgYKBgYuLf4aEgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/foael4d9f4B+i4WAkYSBg4F/j5KBk4uAgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAhJygiIGMgn2GhX2ChIOEgoGUmIKJiICCgoODgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBlJ+FhIiEh4GAfn6FhYWEhY6FfX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOIkIGCgYKFf39+fYKHhoOAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgoCAgImEf359f4WBf3+AgH9/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KRkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICDjYaDgH5+gH9/f4CAgIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4CAgYWEgoOCgYGCgYGBgX9/gH9/fnt6gYuMiYqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgIGEhYSCgoKCgoKCgH9+fX19fX9+fHp8j4yJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYODhYSDhIOCgoKDgX59fn5+fn5+fX1+fX1+g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIODkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIGEg4ODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/goODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+foCDg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICAgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2OjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH18f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIaEhIODg4OCgoKDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX16fH19fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY6Mi4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYGCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICCgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBgoJ/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYWFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+gIF+f4CCgoCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Dfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDf3+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhIR/gIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYOBgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgIOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYSCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ptfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e399fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhIWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYB8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXU1dTU1NXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb3Nzc29zb29vb3Nvb29va09LT09PT09TU1NTU1NXW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMjYiBgoGBgYGBgYGBgYF/j9PS0tLS0tLT09PS09PS3ePi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVldOQ0NDQ0NERENDQ0REQFzS09LS0tLS0tLS0tLS0ODs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj84PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpbU0hISEhISEhISEhISERg0dPS0tLS0tLS0tLS0tDf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRlZV1TVFRUVFRVVFRUVFVRa9LT0tLS0tLS0tLS0tLS3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMzMy8vLy8vLy8vLysvMy83U1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz8/R08/P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/SuJ/R0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqna3VspeYuLqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdzJ2jqLHRkn1+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZmcLFiJu21dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlJ/L16WbtdTTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SY1NWimrXU1K+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QnsLXopm11NOjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJmv2qKattTOnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqetNmjmrXXw5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannMvXopu02bKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbW1bKExta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0tLRxNXR0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz8+PkFFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PD05Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn5+fn5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojs8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD87OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtBPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2enp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJmXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWcmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqaepqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqq2oqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk+PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaKfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqikoZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKamJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQ0REOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG95amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1s7/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHHwcvLyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW90Yl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLyby61dbJzMjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm8vcHHwca5ysqcwcbDwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t73Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZ2NbWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW3sq66u7bAudqbfrzCvsC8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb2+y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W4vcnKg4Slx7rDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cW1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw5Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7m3uru6u7/RqXt/ibq/x7e5uK23tbi6tLizu8XGy8G8xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmJ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSvsLa5sr2+u8S2t7emmKemp7bEyIx5foW5yc/CwLiutbW8vri6sr7ExMrFwcrDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLrR07S7vrzFurSObmhwY2t5n6x7e4KFu9HRzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbPEssbZvL27x62OeGNiak5SWmB+eX+FibzKzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby4vWl3vc6/uK9vWWJkU2xnU1FRW3N9hI+7w8fLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSknp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7wcB0aX2rvrZwVkpWaklagXdzVFBmfIWavL2/xsC5wLy+xcS9vbmysK64t7/Dx8PDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXpwbmlbX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQ0JBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucm/endpf6mXVk9Kd3RNUWx5g3tQVIKJobe4t8K6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20sayjqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trjIwIN+c3GTbE9IXIloT09Pga59XUt4pKixsre+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsX2NhW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3xLuMg3t4fmFJYIxqXlFPXoGujl5QTnu2trC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLrBm4yFiX5TTYieeGpaVmxedYdub3qlvLaxtLWytK+su7q4trrAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzvKqQjZaaTFWKvWR7golnYntqYm12oL64srSzsLGtsLm4tr64u7+ysrKusa65r6qrrayjqKGdnp6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7KwpJqknUxgfo95bHl9Y2Fqa3R5bYKkt7Kts6+urK62trO8ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyptL+zs29hhW9paVdjXV5TVFljYVxxe6K2qrK0rqqrr7Cyta2lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR09STUpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooabDw5BVdW5mb2ZXW1FIRUdJTEtOYWV7s6+vs7WqpqyropyZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ6du7KDfWFfbWFUSEZRS0lESUdFSlVZXKWysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOT1VMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KbnqOnoX9naF9UR0lWfX5oU0dDQkZMUFOKsa6sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoY93altRSkZMcaCnoGxORUJAP0JUg6Crqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqcpKB5Z1xSTUtKUo3Z2cCPdWRWSURTkayoramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERKUEk/RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+fmqCeblZOTE5NVmeh0Lugl7imkImYrriup6OjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hop2clWBORkpMVmt+p7iqhozU1sa/t6ifmpybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHUzdPQ09PMysLGxsfKyM6/yNHMx8XHxcG8w8G+v761vrOuv7/Cw8fEx8Suv7iyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnpRcSkJITGh5qbihkH+xy7uvqaKenJ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLz8bKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCibEpKTFV1os3Su6Gks6qjnJycoKSgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NbW1tLWzdTW19TT0dPU1NPP0sPQ09bY1dbSy8nO0cvGzdLK0tbW2dXX09bYztLKz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Gyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaChrIFlcnaQs9Hb0b2vqZmVmKCcmqCgnpucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDY19jR2NLX2dXWzM/Pys3Sy87QwMbCx8XOzdHR0cjMzcDKzMXTzsvOyMTKx8bIzMrT09HVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltXlZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqihpaGCipK00tLVwq2moJeWmJqbnJ+dmJydk31xZWNjX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzszOz8jL0NDKzsrCycfJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaeBbIiHwNXMsJublpSXm56en5yUlpiUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3J0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKv8nBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxcrMzc/RxtDOzc3Mz8XHwbi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcWttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCsamh+k9bQqpWOjZiWkZOSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9HPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHzMvLzsLLy8jHy9DExci7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62lpV9td6rUqpCOjpeQh4SEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxga3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLM0MXMyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8XMxcW7wMrCxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76yspVecHe4tI+Lk5eHe4GFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLy6uMHBwsW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7a1vb+7zMO8tbrIur++y8TBxsLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q6+GYHODsJKMiYuFeYGHh4B+hHx0dGNbXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0vLa9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vcC9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC+urjJtamxhmhzk56MhomKe3l+hoZ3eIJ9dGleXV1dX2BfYGRhX2RlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/uLi1sKusp56iqqeeq62zraqsqbSvt7Cyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaWuta67srCpubCtu667uLvAwL25wr/Hw8XBvMbCyMu4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzsHDxr/ExMPDysHJyr6/vMC6srS0w66pr4lrY4mTiI6QfHh+ioV6e4SBd25eXVxdXV9gX19kYmFjY2JgX11bW1paXVpaWlpcZW5vaGZnaWtucoGtubC1rqalp6eaoKWhmpylq66kqKKsqqyqsKOmn6qttbaxvbmvt6+prri0tLy4tLyvuLm1srvBssCupamiq7Gys6i9qquoq6yttLOmqK2hpK+psqanqK6mqLessbK3urq7sry9vr7Ev7XCwcfIt7/AxbfEwr+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usm3wcPBtLW7tbCutLutqKiKY2eLhIiLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX11dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6km5iSoaOqpKKfpqWopa2gnZylpqyyr7a3p7CrqKq0q7S6sba1rra5sq+6urG2pKCkn6axp6uouaqkpqeop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09USEVKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLW9uLrAur21oJ6VnaGmurars7O7s8TPyMvCxri3x8HMv7jJt7vFuLPEuLO+wKu1u7GrpK6yrKCijWF7h4aGgXx5dXRvbWtqanFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5aboZabopiWjZ6ho6ebn6CkpqKonpuim5+rsKyxtqOpqqqsrKS0ua23sKyzta6yta6wqp+dn6SisqSmqbitoqamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa7u7qrs7O6s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7uruLmwoZ6oqqaXnollg4WGf3hybnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRlZWZmaGlrco2nnZSVlZuYm6KWlpGcoqKonZudpaaippygoJuZrq6trrKgpaKuq6eitbGysqyor7KnurOmtaCinpujoa2joqq1qqKjpp2mpqOWmZ6XmZudoJqXnZ2dnK2hq6ekpKatq7O0qrWws6uyubSvqq+ysrO3s66prK6yuLC6trq9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaSYpbHCtba9rbS4wszIxr/FtsG/x863wMS9s7m5sr+2sbi6rLG0rZ6Zo6ifkpp9aICDhH94b3F0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVmKCeoZyWoaKppJ+fqZ2cmqunr7Cqm6OkuKqhoK6otqqmp62wpLiwpLegopuZmaqmoZqsuLCioaScop+fk5ShlJaWm5iXlpeclZ+qnqqkop2jqqqwrqi0q6qnrbKwpauus7GwsK6vpqensq6xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeoo6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa28u7S7vLS4ua+ur6ibmKCnk5CKdHuAfHdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaoGWk5WMkpSUm5mdlpacoJyglqGgp6akpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJeep5ynoaKZo6Wlq6SlsKelo6urraaprq+uq6iqqbOlpqyvtLGvvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wqt7e9tr26urWyq6ymmJeeoouIcn2IfnZuY2JmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlZW1dVWFdVVFZVU1RSVWBgX2BhX2BhY2RpgZSTiZGPlJOUnZSVl6SZoJedoaairaakpKOjopyqq6WZn6WxqqChnaWrnaehnq2sqamtrKGiopWYo5uckKupsJufop+el5mTiZ6RjZKTlpCYmJOcoaOdpKCilaCipKabo6uloqSqpKuupa6yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUE9IWltPUklUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi0xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1yb2xvsTJrLG4wbW7wLu0s6ippJSZmpuIfnCHg3t0aWlpbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2OkISRh5CRj5mTlZOcm6Ocm6GpqauorKeopqSZpa6klJmlr6mfm5mboJ6umZyrs6Clpp+io6GVk5uWlpKpqq2anKChoJqUkIyZjoyRjJGNlpWQnaGgo5ybo5WboKOhl6Koo6Koq6Crr6Ott6Wjo6Ksraqoq6+zt7O+tbOrr5iEdHNoW1hYU1VRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MC0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6moq7e2rLvKu7a/rMvGxbjBzs/Is8S7t7vDyLGtuL+3vL26srOjp56UlpeVhnhzgHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugq6qmrqyor6Spmp+soJWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6ulmpmZnp6VjYyLk4aJjYOPi5KVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXJzYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2uLy+wcOxsLK3rbSzurKxoaGam5eWkoJ+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlYXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudqJqhpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkYeUjouBi42AkIqSkpKgmp+ilZSYmZWippmNmaSmqKahn7SyqLK3oZyit6yqraSysqa1vLWsq7GjiXhzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWls6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmuq52YmZyUkoV6gW1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWXopyVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZqZmpGVkJ2OoqOOiZqgoaSkm6K0r6yvrJ+YpbimprGhsa6csLyqqa+qmYJ3c2NWTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuLC0sMnEt7nBzsW+s6y6wautw62ooqaSnaa1q6GcjpSVkY58dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho6dl4uUkJ+YnZWUlpWPlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlY6RkIOGfZN4cXCFjX2JgZGNj5eamJOKj4mciJ+YiIeWnpqhoJenr6mtqKiflq2zoqaumayrmKi0oqmto5N9cm5gW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmxtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbrqCYlYWTjoqGe3J0XFFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhpWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh9iomVi42RkpaLhIqIlYSajIKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdG1nXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Kvoaeopaeor6yqtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Vjn+Jk6eVlIl9jYOBfHZvbVhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuBdnJykndndYSEhIR7lYmIioyLgH+Ei4yAlIN8gY+YlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToZ+Wnp6kgHJoYVxdSlZPUkdKWFJPSkxNUkpKSkxQSUxRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWsq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI2bjZB+doV3e3VvbmhYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6inZaNi6Wbj56XjpaYj3dvbWViWlhXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6EknmIjYqJdXB7bXRwaWxpV0tGR0VBQENESUxMTVFSUFFTVFRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnpeMg4mfkYuSjYaQln9uaW5vblhVV1RSUVlPUlRUU1hVTU5ITktNTktDSE5HRT87OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKsqqi1r66stL+rvMK/pqKZlaSXnY2Ei5ShoZiYkZOLc456f4WLhXRudGtwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqSdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn94eXVqeYmCiIqElpOSkIuNkZSUj5eOgHmIl4iGioaAkIh2ampvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi42FeYSQmJSNkIyPhnGHgnOHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRERFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZuY3aEfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo96cXBva2BbXF5bWVhgX1JOW1pYV0xISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSsqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnqSnnq+VpbWqrrGuwbK7wcaWkIyUkICIfW6BkJKJg4qHj4V1goNslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozw9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfXV3e3yJdnBzdGVnX1tbXVNbZl5XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdyeXZobWtfd32DiX+IhYx6lZ6biYuIkX96dYt2fHhtb3d+f3NzcmxbXV1bY2NYZmVcVVBQVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTMzNjY4Oj0/QEJFR0hKTE5RVFRVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWIkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtxg56fkZx/doWFio+IkGlob4OAdY2HhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaJjph/eoKJenpvZ2t4fnp+cmpkXlpaXWpcYWZfWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGPi5qbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CRUhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKTEtLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo6hn5SZkoSKhY+YkZZscHWJi4KWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfICBgXNhXWNeWmZrXGtrXldLR09TUU5NTEZJUENETUZBQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6YlpqVn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmZKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNTU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnZ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoacoZqamaeRkYiVopqaeHp+lJiSoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiWj46BiGxzcnx/fHFoYFxgXmJnY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk1PUVlthpB3lYujp6q0vbilrqysp6i0q7C3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIiFlKShoKqhpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqImYmSipZ6en6FfmdgaFxlYl1kY19mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKcg5KQjZLayJ2Wc1aXiI+InI98hoyOiop6iIKHkY6DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PGtqyzv7O4vra/tMG2u7ukuMaptsnHtb65tKijtK2xsZyakpqfiaevq6SVdp+kl6GrsbOYlqquqK62u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7apjKSOkZOgh3iCg3VZYWRWZWFhY2BhZV9aVUpERUxVUUhJSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NTAvNkNIQ1FcT1FVV1VcVk9eVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba8xb2zs8C3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsK6lraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYq4l+gnxqV2JhWGplamVXW2NZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTc/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIp6fIuHhnyKg4GKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPztIUERaY1FRWVhZZ1lUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vMC8t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrqJ6Vlp+YoK6lp6elnqSUoqextKeysry2wb3TycrTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX9xX2FhXFdhX2hmUlhhVlJVSUVGTktBPkdEPUtCPUJAPUY9O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZB0bXNyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlUSkRBS0pIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLure5tri5s7i1tK62tplkdaierXBeoqycmKGjm6Seq6WUoJ+QlI6WmJeon6afn5qZhKSdrKWqsK23sL251NHP18/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yM60pLuwtbCbrLm9mn95bF1fW1hdYVljY1FbYFNRS0NBRUZEPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUb2xvdXWIs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7WvubCwu6yzsaeqt6yNtqeem6eaT5udjI6glpGmmKWVipOTiZCJj5GRnpuhmJuVl4eemqabrK+or6eztNTU1dbSy8/T1c7Tz83FwsnQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKOCbmNcXF1YYFdYZlpRXVdOUENCSEVCSTtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGmBcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkZyYmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sbAzsfIw6m/uNCeeW5lXWJcVl9SXVtPUFRQTkg+QUZBQkU8QEI+RUU+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMjJOPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHt2fHOBd3FrgHNyaW9xenlye77Lmn6MsoN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG4qqW0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmYSAhX6Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSox83PyMLL0NPR1NLO083G1tLM1NjW1tjV19XJ1NrNydfW0cqtxMPMinJvYmBfWFNZUlxQSkdJSUpAOzo7RUFEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bYd2dG99doR1eXudtYw8QYvGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52eoJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2DhIV6lH6CqZWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLWv8zMtHd2bmRdWVJVUFlWRkdKSkVFPTo3OUBBQjpIREBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KDiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cnyBcYOHgW6OenR3fXyCdX98h4iwdFipwraMkoJwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoK2copqZn6Wen6yZi5qMkZKNhX2Ih4OEi46gmZOIhId+bZl5hJiGiJOMjZWMhnubiJOPrqqUlZeemKautr2orb3Gy8jJy8vQycPRytTW2NfY19Xb19PZ29bP29rR1sjVy5V5e2hoW1lQU1NdSENFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIJvkoR0fIGFenaGe4m3xqTCybiBlpuPd3BlTmZjgXqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZqrlpGRi42Sg4yFiYiBhZCRnpyZiYWMgYaXe4iIn5eQiY2Ki4J8oYmQi7yhl5OXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TW2drb19va2djO28aGenlmaGRfVFdWVU1LRE1DOz09PDk6PD45PkE2Pj9APT8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnpGfg5J8hn54jn14iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyknH2JhH2Jc4yKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRkpWPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mMlJKekYKLf6aZiIWOgoaEgKWGioy4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3amlkVmBbU09OSERMQj09Pjk5Ojo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGPinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6GbnpSSgIuIf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOioJCkr6CLkYuFi4GShldyrYufrJyPg5ibkJCOXIOikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYmKnZaZo6OGk52WoYuKiI6ckIOIj4CDh4WkhoyQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnan298dGdmXF1YU1ZXQ0BJRD4/Pjo0OTo7Nzo7OjM7PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqailomdkJSWi4qol3KKsoyEp5GEmZOEmYyilqCZk4manaKSqa+fkZWQjo2IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelpuJj4eXl4uFj4yBf4aPpYmNk6iZlpOWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hiXl1dTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY59fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqKDkLiVkrOZjKGhjKSbr6OknZiQp5anmayvpJeVlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx0kZmzlpeloYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LtyeXZdYFVfVk9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTY1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2zs6ijorCsipq0naO4pJWtpJeprbempKOfmamXqaOvsKmamZyUlZGXoJiau7uuyqFqtrirsJSYn6Ork5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkp2ZtJeWq52LnJSSjZCSjJmbipGekIuJlZ+hjZSNmJqdk5uYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9ShcHpoXFpTXlFPRUM+PENBQjg/ODc1PkY8PDU8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBRUA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztounsq2uvKqbu6Sorbm4q6amoqGjo6ivsrGqnJykmJqXl56ipaWSpLquqcC8ra2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGIkI2OnIiHj5eNi5WXlJCalp2nmrGakaycjpqPko6VkZCWl46RoJGJlJujrJSWj5ScnZKfnZuYoKGUmp6npqSipLCypsHGw6+wurbFxMK+zabHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHPkE/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubqXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6O6urbBvKyonLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjZGPkaGMjJSSjoiXn5eTmZWYpqCvnYyqnI2Vj5KRlJWOkJWRj6GUhpefoLKelJqUoKCYpJ+aoJuglJiepqSmpqSvraXAxMKuqLe1ycO+ts6yxL7EvLPRysjCtXV5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq9x8jJwdLJysLNvMGzrbu+p7q/vbzEt6zBqayzu76qsKmjpaOsrbOttrWgn66epaKYo7S8qZuovcGjt7ewq5Kwrausl4aaqqalkYKMk6WViYF2ipJ6hY2SkJ6fk4+Ui4+NlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjmpWgopy1ppCel6WjoqWenaaYnpWXm6WjqKeisqyovMDEr6Wzt8zAua7Es7u+wbiswsPCwJlteWFYV1xbS0tNSkZERElCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQf5ahma6mo5jCvsfDx8XTzc7Ny7zCt7C5vLO8y7zDwbW2u62zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlsL/Esb65s6eqtbOtrpaWpayooJGOkrHFp5WOfZGVfYiRmZCqmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCWl5KWpZllmKOesqWWopasrKqnm56ml5iXmJWhpKimn7arqbq8w7Wms7XLwbiptqyyuriuqLe6vbiCbG5aV1RVTkZKU05LP0FHRERIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnISDlZCQlI6aop+vvq6hxrzFxMbGzs7O0sq+u7axuru7vs+2xL23uLeysbWzuLOrppyrq7iqqKevsJejr6SnpKS1wLCqrLS/w7rAurOnubW4sq6Vpa2vr6WLk5WhjXTBmn6XmYWPlpqMsZWampWTk5mZpaOVn5uWmqmdnKGgmouNj5adYEqWnJqVmqWWVJawn6+cn6WUr66spZqgpZSTmZmOnJ+nopm0qaqzvLy8qrCyx8C4paurrbGxo6GxsrSkcG5mXFpOUEtEUFBQUTtHSklHSENDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomThZ+HhJ2Xj56gmqOktci0qca6wsPHycjIzM3Gvruzrrm4wMHNtsi6wbi1urCvr7O0pqObqrO0qqimrayZpK6lpKesur+oq7W3v8G/vrmzssSxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZycl5Wbn6GpnqigmpqqmqKnnpiQjZGdg252kqKalZ2inpCusqKrlaiql6qupaSfpaiSkpmciJScop6Wsaapq7q2vrOyrr65tqCjp6ilp5ybrKmpjGJlYV9SS01HSE5JVUw9TEROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSfi5Oqm5GSk4mrjYein4ykrZSjo7bGvbTBusLCx8jFws3Iwb25sq+5tMDCyrXFscG8tLqqqK2tsKKimaq0u6appquqnaivp6Oqqr67p628tLe9x7y3tbjBsb3As6m1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZudppyoqp6Zlo+Um4uXiYylopSdop6gtK+lpZOwq5mrq56dpKOokZWVoIOPnp6clamkoqG0tLq1rai1srOenKKlmpeVmKqhnndgXF9dSkhGR01RSU1FRkZCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpJeZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfBwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqrK2goJqqqsSipairpp6rr6yiqai/t6atvbC3tse2tbi4v7G/wba0s7SvvqOXo5aUnJSuoJGioqWjo5+QvqWpnairnZ2gm6afvaKYo5+iqauhnZeNlZ6TnoePhY2TnqShnbWspZyVsqeZr6efmqmeoI2ZlZ+EjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRoYllhXU9JR0pOTEhFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM8Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJXTKKao5yexayhn6ydna6gk6OflqWgpqmrl7axo6qytcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqsnZ2epaPBpaCqrZ+kqa2voqanvbWlsby4trbDsrO3ub6yw8C3uK6ztbWjnaWVkpShrqCZop2pqKujmsOtqZ6srZubnpmmob2inaWYq6uspqGZjZmfkp+Jj1d/lp+moaC4qqeTmLajn7KhoJuulp6OmZSdgo6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYWRZY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GYnsOopaKzoZyyqJOrpKCkn62prJ27sKistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwq2brLGbqqKusKmkp722pre7va+3w6yzs8K/ssazurestLatqqKmlpaVpKyin5+aqKuwr6+8sqagqaiZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2ao5+ns6amjZi0nKOump6brpCek5eUmoCRoZaOjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2FlW2dlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6Ofm6DDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLW0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8S0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSxp6q5sqe6s7eyucCqt7LCvLTFp76vrbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6mkmZWVk6Sgt6OkppausrKnq6ahnpuam5aYqJ+gmKKer7Kipo2Xrpmlq5eZnqSRm42Tl5qFlZ6UjI+cnpSLqamqoaegmJ6VjI6ZkIGFlYmUn3hjaF1rak1QTU5UPUNBTkM6OklANzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnKGmv6aor7ChqbWrnbmwq6OqtLaxsLm3r7a4uMW+w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptratu6yzs7q3rLmwwrq9vqbDq7C3r6mrq6eemJmroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOisLG0q7Koq5+boKCbnqWdopedo7Owmp+Qk6WaoKialKKelZiJlJiTlpack4iQm5mUjqmopp+im5ebk4eOmYt9jJaFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yhqb2hqq+ro7G4qaW1s6ygrbW9rrO4vLq9trbAw7/IxLnEwcDAuMS9wLevtaert7G7vr+0qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xbervK+xuKytqqOxpp+lqqCkl5CZoLOqs6qrs5qdp5ualY6gpqS0rqeira2usaezrbKqpJyfqKSelaGZm6i1qZeZkpKfmZ6gnpCrnpeYhZWXi52Zm5OKjZaXmpempKKgnZaVl5OAj5SFe46Sg4yWZWxyZ3BxX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pK2ppa+utqqvtbqnprC3xbext7/AwbW0usW+zMW5wr+6v7nDt8C4sbSrqbq2urm+tKqtsbWYmKesqqubrKuOq72eq66xo6ugsa2zrq62srm3qq2usai1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWWm5qyo62gpq+XoaSampKNoqWnsqmip7KsqralrrG1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUq5+ck4GTmI2dnJqVj4mUk56apKGhoJiWkZOVeouPhXuMioOLkmtueG11e2BFYWpZSUhZWj17SkZENkFiVGlbTVxgSltdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKu0t8m6tLq7v760tLfDwMzIu8O8tr2/v7e+u7C8rae6uLe2wrarrbG3lJemrquno7GqlK+7pKyysqeoo7KzsLGxtbG4s6muq7GnuK+1tMPFtqm1tqywramno7afoKexoKSUnJqVsZ6nnKCqjqmjnpuWmKWlpbenorK0rKeyp62wtaylmaCsqJucnZuUqriclI6Oi5mcopeQmKWhnpWDkZWQnZyYlpSHl5CXmqabo6CSlpCQlXaEkId7hYGEjYttcXd1e35cS2VsXEtOY1w+YntHSThHZ1dmW0xeYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSVdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0ORmaWupa2uq6elsbKzqrext6CrtbnIuK7BvMO3s7G1wsLOxb/BvbS9v7+6vruxw6epuLC2tr+8r6uzspyfp7GtpqWwpZ6ytayrsrCsqai0uay0srWstK2qrKirqbitsbDHv7ilubCpra2lqK2wpqSkr6SpnJ6cm6+Zo6Oio5GsnqSgn6Kqpaa5pay1taWqq6isr7auo52jqaqboJqakqS0mo+JjoeRoqCVjZSdoJSShY6Skp2bmJWThpeTlZmmmp6fjJKRjpB3fo2FfHx9h4qJcXRyfn19XFNkb15OWWZcRkSWW0c7Tm1YYltNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lXU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0sbS1srKhq629y7quwLvHsbSttMLC0cXFvsCyvcDCvL+3vMSnrLess7i8wLCrsa2go6etqqiksKOqsaqvrLCur66ss7untrCyqbKpq6Wlo626rKqxwrm1rLqoqaitqqixpaqko66qqKKfnKOslaWemJ6ZrJ2hp6mirKWjray4sbKgqaKgq6+wrJ6fp6ipmaSYmY+gp5iGhI+Ki56gj4uMlZuOjYWHkJWgnZaYlYaWk5OXpJucnIuSkI2Jfn6HhXx3f4eFhnRzcYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNbTlVWVVdQXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwtq24ta6rpaqqvci7sb23wq+wrLPEw87Ow76/tMDCw7rAs8jErK63rbK4wL6zra6rpKeqsKmnqLGltK6rsK6tsbCzrbO7pLizrKyup6ugop6wt6qqrbq2pba1o6qnrKyqraGpp6aysqSmpqGhrJaqoZWaoKaepKKrpKyin6ext62to6Wim6qrrqmdoqWkpJigmZaPmJ2TgoOQiYWdoIyKjouYjY+Kg4yXo5uSkJuMk5KRlKKZm5mKjouKfIaAgYN6dICEgn50d4ykiHhqXmBuZ1dlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbWrtrGrpayqqbzAwLi4s7u1pbKvxMnL0b/Bu7m/v8G5wbrBxK6xtbGzusC+s7GuraurqLaqpq6vq7mwqLGxr7Kstqq2tae0tqyspKmrnKOetLKoqKS0tKC2raCpqKupq6egq6ypubapqqqqoqmgrJySqaGdoKSipqOpnZymta6opqmio5ilpqeqnKKko5+ZmJ+Rjo+Zjn+HjYeFnp6HhIqKjYyPjISGlKKajoyakZKRj5KflpiWi4qDf3SGgX9/eHWDf3t4f4GInY9vcWdncXhcYHOIak9emVZIbXhVZFZRYlBNVVRVUU9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmo2T0Q7lY6woKWrrpqspa2us7Svq6Wvqai6vrzAsK64raG2r8nHyNHAvr26vMK9usPBv7+usrKxtby8wrGxs6uzqKS1qaWts7O5sKOutrGvsrqrua6qrrasqp6prJ+ioLatqKGfr7OhtKqeqKeqo6uhoqytqL2vrK6toaeon6uZkK+hmKKhqKefqJqZqrGpo5+toqGToqOjp5iaqaWYl5mdj4qHlYh9jYaFhKSXhYKCi4aOjZCEhJOgloiRnZCTkI2RnJSXj4mFhXh0gX99dXh5gHt0c3ppgYajdWleZWuBdWeIjH1TWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hOOVVBNJCPsZ+kpqykp6SsprSysaqksKequL7Bu6+nuaqmrrDJx8jRw7y/vri+v7zJvMG4sLC1sbq7uMCys7utuK2itKanrLK2ubOnp7u1rba9sLymray1q62cqa+jn6Wsq6ecnqqzpLOomqqnqaSpnqOpp6m+q7Svrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mokpiak5CKgo+Ffo+CgIiej4Z/fYuHkI6QhH+Tm5OFk6KMlJKLkZqRlYeIfn9xenl+fGl4fHp1cHB9aIV4hIhkYWhjcoV6bWd5XV5WQld6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZjQko3R1NgVSo9O0RYPyqPlLGZn6CppaShq6S3srKmqbGnrLjBvbWwo7msqKixw8nJzcG2vb+1t7+5yLbDtbSztbG9uLq+tq25tr+tobOmqquwtbi1q568vKiywLO6oK+ztaqsn66wo5ylqKmjnpylsaavoJ+qqaiiqpykqKCtvKiusK6hq6Okrp6eraaXn5uho5yfm5qiqqOamqSklZeUn6KWm5emq4uekZCRjIKKgYCPgHualY2JfH6Lho+OjIqEkpiRh5SjiZKSh5CZj5OAiHx5a312eXhje3pxcHFyeGiAdGqDZ2RoYW5zjm1iaXBgcEFceGxVXk9RUUpKTVRZV01dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8qPDNPWT0jkpmsmZ+Yp6Sin6ejuK+uo6+wqau4wrqzrZ+4r6uotLvIy8i/t8K+r7S9t8S3w7GvurKzwLW7vrepubi9q6S0p6iqsK65saqbu72ksMC1tKGut7Wmp6exs6CepKanoaWZnq2nqJ6gqa6noKeYpKigsLifo7GvoayhrKScpqepmpqbn6OVnZyanamml5ufqJKYk5iek5mWoamQmomOkId9h3+Cjnx8oY2NiHmDjISJjIyFiJKajomVn4mRlYKLloyRfIR7c299cXN0YHl4aW9xcG9pfnFjemxpZWNgZoZ/YFtyanJNTX5oWFpNUExKSFBSUElOXF9uVERYW1JnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj4vWVg1KJedpZidlq2goKGkobersaSztKqoucS1sq6gt6yurbC1xsjBt7/BubC0vLe/u7+vq72wtL+xvcO5qbu6t6eotainq7Cts7Gnmr23pK28tq+fsbewqKWnsLKboKSgpKShl5yvpqGfoqevoqCik6Sko7ewoaaxq5+so6+YnKqlqZ6Xmp2lk5ucmp2mq5qcnKWWlZeVnY6Ul6OooZCJipCGeoV+hIt6j5eKjYZ5goeEiIuOhY2TmIyOlpmKj5Z+hpeLj3mAenByd29vdF95d2RsbGtpaINtZXJqa2VoXGNzgF9aa3VpWkl9XVtYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFREVV1oRS47MmBULDKWo6GXlZypnaWhoqC3qq+gurmmrL3Es7CuorWvrK6vtMTEvbO/urews7m4uri7rq7As7S4r7/BuKy9urWmorOqp6mzq66yopvBtqWotbWpnrK7qqemqbCsmaKnnKSmlJiisqSZn6SoqZyioJOloKS5qKSnrqeepaGokp+poqGgmZudoJKanJagoqubm5mhlZKVlpqNlJOjp6SPiIqPhnmEfIWFfZ2NiouGeYCEh4iIkYWVk5KMkJWUjY6Ue4OXjop3fntsdHJsbHRieHVoaGpnZW+EZ2hoZGZpamBoYmlmWmV7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhjTicynqSjko6kppyenp2jta2nqrq3qKzDwLawrKK1raevr7jAwL2xwbexrrK3tri3tqyqvbOvsrG9v7euu7uxpZ+2q6WltKmrrqCfwquopbCzqqy0up2oqquxpZidqp6mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq6hoZ6doZWgpp+ioJmbmZySmZ2UpZ6to5iXnpWUjpWYjI+YmqigkYiJioh5hXeCgoKdh4uCiXx/hIiGhZCElpWPjpCRkZGNknuDlY2Gc359Znhva2tsaHVza2NnZGN0f2JkZWZlaWpjaXFZXlhdbWRhTmhXWmBWSUdIS01SWD85YGxpR0JVU1xbSUlHRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWUpWYmZBOzNBZkglNZukoJGMraGZmKCWpbSxorG+t6Gxxru5sLGjtqurrqm5vby7rcCyr66ttq+zuLOoq7ixrq60tru2r7i9raadtaugobGlq6+fpMOgsqSusa+3rbWdra+trqOZnKeqpZ6Vm6iln5mloqecmqCclJydrbCmuaiuo6Kamp6ZnqOapJ2XnpiblJqhkqiVrKmblJuckoyVmY6UlJmpp42NiomPe4J0goGKmIWHfImJhISKjIiShZOckpKPkJGWjpB/gI2Ngm+Bf2Z5bmhramdxcmtcaGRicoBgZGdqbWxnamlmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopuPjrCdmpOhmqmysJ+4wLagtMK7vbmxpbavqa6lt7m3uKy7r62qq7eqtLmupbK1sa6psba2sLK1uqeon7apnp6qoqqtnKnAmK2krrC2taysnrGtsKqim5yjrKiblZyno52aqaKjlZqgnZGbo6uqqbufp6SgmJqanqGPa6KWmJxxgpacpIB2kauonpWVn5GJl5mAl4ugj3mGk4yDbWl+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpc25OUGpkZnGEZl5kZm5saV5fX4mQhIZoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNjY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wwm5yToJuqraujvcWvqbfCuL28rae2sKarpLi0srOwua2qp6y0prC1o6i4trWop6y2sq60rbOiqZ+0q56ipJynqJqsvJWmpa+zuK2tpKiuq6yloZ6coKinm5ihpqWbm6ennZKfoJmRnqiqo7Wwo6OjnZaYmJejiKGPkpqHoYeUnqF/pX+nq56TkpuSiIRyeIyOhIihdoiMaZeIZn1zeKFviIeEfo17f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15coZoh4RaXkZOPkZeTUVSVldRUVJXVGdeTFlLUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYTcvKIyml4ScrJ2ZmZ2fq6qoqr/DrrG6vLfAvqqkt7GqrKazta6vs7arqaWxraW1s5yttba0paeos7Gtsqevn6qgsqifpKOaoqScrrWVpKWmtr2mrKepqqyopqKgmZ+mo5mZpqOkmJykqZaTopyVk6OlpqG3pKSgpJiVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TBm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhrWLGub2VpvJK8bmh6bXKP2H5TamO2sn+BcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGOppOBpqmfl5ydpa2yqbHCvbK1wLW3vsKrprStramor7Sqr7a0qKemtaanuK+ds7G1qqWkp7GurbGmqp6npLGkoqGfl5ygn6+tlZ6in7S6oqmooK2upaKdm5qhqJ+Ym6ign5iep6eRnKeblJ2hp6OgsKOfoKOWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbaduW4SgRWlnh5ZFdZxgfmd7o6eCWV+Lq2mBlXh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUU0lDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqKVgqynpZ6jpKqxt620vb6wt8SyuLrCp6mwrK+pqbGvpLC6sKSlrrOjqbipnrOysKOloKqtr6uvpqefo6KwnKOcmJWYm52tppebop60s6Gqm6GtraCempegoqmcmZ6koJyZoaekkJ2jm5ihn6yfpqagm6ChlpWRlpGahrWbtXiFqZm1mXeHs5u3f5OWl6mUfmuBpnqBhYiSlJJ3q2dqsVuse4+HlHSIcI+GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVOShl5QqW1jcX6HgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJaflIizpqahrqmns6yqu7bCsLzCrbi3waqsra6vpq6yqaGvvKqhp7Wto6u1paays6ejop2nqrKosKelnqCfr5afmZWWl5ifraKamqSota+hqY+pqKmbnpWYoKWomp+do5+coKKlo5WbnpianaOrm6aZm5uioJeTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYejgqWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FujoR0kLuFb5RPr6fFilGgemNgqmJzcodsl4dfU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE4MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afrraom6i6rqKvsaCztLCgpJ6ep6mwqLSppZydnquXmZeXl5aXoaqdmpeorbCpo5+OrKKnlp6XnKGloZiioaKhmqKip5ueoJ6VmZumoJynlJuan6GZkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gd3OHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltbSisrKjn6ywpJimuq6ksbCctLiqoKadoaqksaesqqWanZqpnpaVmJmTk6KnoJeTpqqxpqGWkqyfpZKUoZukpp+Vm6anoZqjn62aoJ6ekJacop6cpZSclZqin5WYlpKbhax7d6h2o4+Kh6lvrYqDqIOZmaKKkpmLon6SmImuhX+Cs1xys1KufoOCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0FUb15oYEVQbF9wbVZVTS9lY2lTWVE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJi0wa2osqeqsrq4tLi/uriztr21pbi0oLSsn6Coq5+Vp7asqLCxq620pJupoKCoobWmpqqjmZ6VpaGUlJyZk5ajpZuTkKesr6aglZipn6KPkaKZqKaglZqmqZ6dpJ6snaCdoI2Un5ueoJiZnJaXoqCUmJGnnYapfX2leaGPj4OqcK2MgqeGlqChipeXiKOBkIiUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmRze4FrmIdxXaxaiaCOa25lT0pDoVxaTHReY2ZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC46PjEwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKq7taCxpJ6lp6eek6qxqa+qtayrr6GYoaCmpKO5oqOroZeckaKglZSfmpSZoKCQjYypsK+mnZeap6afjZKkl6irp5SXqqifn6CjraOgnaGNlaGYn6CSnZeclZ6hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh452uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uXKdPYlJrZWJtWWJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqqqCbpqShnZKrqqe1o7Korqqgl5yooKSruZ2jrZyWmY+lo5aNnaGcmZ2fkZOVq7avp5mUm6ypl4yTpZmlrKORl6uypKCeqKuwmaGij5mil6CblpuXoZOdqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHBtjaR0vV13fVthebxrWlZbanpeaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjk3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaaZnqK8opexw7Ctqaqssae4r7bEsbuyrruwrsGyrKWinqOhnJuRqqSqsqS1p62kn5aaqpmmrLicoq6ZlaGQpaCTjZyjnpiempCWkq+5sKuVl6Oop5SRlqWcpK2ekaCoq5+coKmks56ipI6nopShmpyXlaSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yae4GyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXqzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn96fYlng3lteWKLrHB1hX9ZW6dqRWRaVGZgY11iUWdncW11Qk1QTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JWOCpPXV09KztWVic9OzymnaChv6WWtMO0rKqnrKupu66wxq+1tK+4p7W4ramjoqaeoJ2ZlKykraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKKTnZeSmJSytbatmJ2kpKKLkpKmm6Wrm5aopKWcm6KppqajqKCRrZ6Wop6Xl5edno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukoNxlIZfcmpaXpqJYWSHjpVrYICVY22cdmKUa3+alZRlXmBjcZuKaHKMfYaVZ2p+cXR5fXxiW3d0gWhQXG6DfHuLalhseYJySUpvhXBNdE1FV11mYUxbWGdjXk9bbXVpcVJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVLT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NgVjQpUF5MKDM+W08nPzI+qJ+oocGjmrS6tqOspa6nqLWyrMissLOstaO+sbKmoKOpnaObmpmsp66kpLWqpZuYlaKbpq2ovqepppaUm5WgmpOYpamnkZ6Qj5icsLK/rJumnqeiiZORqpqopJqbq5+jmZujp62in6qhmbCblKagl5Sdn52XsKWZoqiZnJGenKOkmaejmpyam5qQloJobnxxdpGXlJGEibSpjYaYlY6KjJeXh5SVioOSk5GJjZGUmZOYl5qgopublKCdjoJ6pIVranyQfIB0iYqBcYJ4eXZ2ioB7impzgXSDdWR3fXZrcHttYGNccGhNWVllal9XWW96bW1mU09GUzlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlMxMFReOis9OF1LLDwtQLKgs6G/oqSxsregqaWyp6WwtarJq62xprWmwKi0oJ6kpZyklZagq6aso6O3rKCZlpagl62qpcCeq6SWkpyXnpiTlKKfnqKnkpGZqKeyw6+aq52rno+WlqmeqpycoKyYoZudoqWvpqKkp56tmJamnZmaoZ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNjpetj3uVm4KSgYmpqIWBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmpORnY1+jWais66FiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH96doOIgmt0Y3lmYGlkY2Rmalhre3BpalxSTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTEQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvq2rrrKyoKqmsq2irLOwxbCqrKOzr72ktJygpqKhnZmXqKWopqSms7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8i0oKqkq5aWmJqnnaibn6SrlJ6fnqCqrqmloqqhrZuen6GYpZ6cn52vpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jWxoa3qQo6trZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5hzbG56hI2GeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEdHeIiI+De2qFWF5rdGRdc4hpanxxbGNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSVtJLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wpq6usL2xqaikrbCxn62Xn6OeoZqZpqqbrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZpZZ7payiqLPDuKSip6+enpWeo56jnKOpqJGeoZ6gqq+qq6Kpn6ibpZ6noKyWoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnoataHi5xLhxkqGje6aYmXOqgnzLwMC7cYuih4OffJWYiJ7AvYKWnZ6NncHBe4F6kYyawr99a6Wxb4yBb8p6f5t3kYOOgHZ5gX95cXp/h3F4hYyTeW12kmJmX3hjX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqamUo6+psK+tprK1r6umpqaxq5+rmJqioJybqqeinKuipaikpLSknaOTpq6st7Onr6KSkZqdpZKRoKGXnJ+dh6arpKutv8CwoamvqZeSn52imaKjqqOSoKGena2uqaylo6KmoKSlna2pkaSbqa2qnJ2qnKyilpellqGjmJx/zpR5eqWCeZWWm1+uj16Op4ChoX2nlpt0q4OAr15kjal6p4eFoHSXkoizY4KrhqGOjbNphK50fJaHuGGCrVmjzW6PdXvbe3+ZcH6IknV/ZXuHdnZrfYhufoWRkn5tgY5gcWtwZmBfeGRbcGhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLS1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqK20q6ayrKyspKymsKqgp5uappicorCfoZ+op6OmoZ6wrJuelqaurbGrqKyglJKbn6WTj5+ll56oo56upKuwqL/Gs6ipsa6Wkp2copegqaqflKCenJ2tr6eqqZunpqOhq5KttJamoquqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WFqIdxsXydcax+oZ+CpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4iTj6CAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yb4mKkZCDbZCPZW90dm9gZm1kX29paW5mY1dTXGFaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl1cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PldKLT0nPjEpM1ZARiEcRzpDMS4rr9TGx7K0n52jjqOjoayutq+psKepqqiuq6unoqOdmaKVn6arn6Kln6ioop+dsKyXm5aop6+tqKepnpeUmqOikpShrZudpqOurKOstam5zbKtpq6slpScnaKYn66snZafmZ2fqbGpqambq6mjoqubr7GiqKyuppmmq6qqsaOTl6Olm5SShaRqpHWJeql0erJwgqWJmYxwiKCah6RfYFKrhH+ugpt2roGnhoafepiWhXtmgKOJpJmGgaN9qX6AlIeuXnyoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9ueXh3bmxmZWRxcGZ7aGNdV19pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop6wtbCvqayjqKaqq6uppKagm6WfnaWnpqOcrJqiq6Gkn6+inZuTqqS2sK6gqZudlpSno5CaoqifoKacsKajqLGstsiytaqsqpWRnJ2imZ+ls52aoJOcn6erq6OumqyooqGqorOtoqqzsaGbqqivr7ajk5ekp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflYHSuLS4yYCBsl5flKmDpIeHoHqYlZl4qsl0maOVp6mQkpuMfpuJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkj5Cek3xwl5J+cHt1fXptXGZqcnFmgWpeYlhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOT1BNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKcsrmsqqGmm6imqqypp6CmpZiqo5+uq52moKyan6mlnaa1nqKXk6eqtbKsm6acoJWQpa2RmZyno6Cqp66ho6epsLTCsrOqraiTiZidpJqho66klqGVmJylpquar52tqKaerKO3rKGyua+dm6+ns7SzpZWYqKSan46CnU54moF/n3qEo3yCpISHp5+cnpOEuHx8ebmCfszFwrZ4m6GQi59+mpaXinaemIqkmKOofrCFnISehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5d8fpKRiXV6c4R+cFxtbndyaoFvWmRfaG5iZF1LTFFUQUhHRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CcoayztKafoJWlrq6uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbS5pJujnqOTkKGymZ6cp6ahoq+tnaSoorWxw7Gtqq2pkYeRnKaco6ScpJaemJmZpaSomq6hraWmmK+lvK2it7etnp61srmys6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJqmaOclYmffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfoyMkot4fXmNgW1pd2l4c25/dF1kZG5tZWhgSlpXWDxHR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZJzjIquv7+7u7Wel6ikrbahopmVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqmztKSdpp2pkpSXrqCgnqeknKectZqgqqO2q8KwqauqoYyEjpuhoKailZiZnJiamKakppirp62ipZutp76slb6wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolpmArImEroWflKmgopaFn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBulZGmmYOUjZaLenqCln5rbX5ifXRuf3pgZ2Vxb2dnaENZYFs9SlMyVThCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RXV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+vqp+jnp2tmJ65oKKroK+qma2hkKqppJaJmpCusKymn6ebrJiYj6yioZ2mopqlnK2Yn6imtqi/r6WppJ6MgI6bmqCmnpKUmZqTmpqlpKOZqKuro6Sfqai+pJfDrKqjoqyzuqyvp6G0sKmqmXavfpCLnIWHfbquiphlsIxlla19oY+Dp5WagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goCxbGdumZeMiLFbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5CVlnt4jZx9ZHN9YoN3dIB8YWpmcG1mZWVPVWNbQVRePkkoPjk9NCEiLSUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5mgn52zs6meop+dtJigs6iqq56wrp2rm5WuqaKOiJuOr6yopqKnma6TmY+omqGepZ+ao6OlmZ6iqbKovK+kqJ6dj3yLm5WhoJmPkpqbkZmXqJ6hmKitp6Wlo6Wpu5+gxqelqaKrtLatrqegva6trZaBqZKjr46bgIakl5iQgYC4w7qDjpyThaeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWUk4Oevb6EaqOBb6uEbp1/erKwx4Nqq7C9rXh3or67dICWjqacj5qQlZx5gZCaeWJ8emSMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mpbOmnYyYpb+qt7Goob+mprGbnrGcuaiera6lppWUr6yXjIOaka+mo6yhpJyqoZiLo5KmnqecmqGoopmeoKutqbmtqKObl5N7h5mRppuTj5GYmI6Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqobyosLCadHWqpLeGZYmfcGetj4qPbW93pJCZn4F1rpmVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlxaWeJlpWYcWhphYZncIZkXoljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeYkJWefIeOlHVlhndojWp5fnlkbGNmbGJLZFhKa1k6UGVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqrq5srOqqaKunqSyqZiSvbHDyL62qp7Aq6yjoKarn7qjpK2srKaOlq2qj4yFlZetn6WqoZ+jo6CRjKSSp5mpmZajqqCWnKWlp6+6q6yam5KSe4SXjaWXjZGRmJONmJWnlJ6XqKKasKaeoqy6n7DCqKSzpqyxsquurKi5pK+4loqhqKW2nYmWopiHqZqQlJ2TqrOZm6OsoLKWoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYaBpJqXlY2Lk5KKj4aEfmeLf3SCdnSIjHGnbXyVkZSTgYGPj4+PnZSglZeWoIKHk4xwaI92cIp3dnx6amxkZG9jVWBZQGlaR2JgT1orRj0rJiE3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNT1BRV1RWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1uK+uorCkrZ+gtbGRjqvFvMS7uKqipZ2bpp2wqKO2p52ptKankZiso4uIiY+cp5arpKGZp56ek5Wjl6ibqZmUpqGkkJqnmaG1uqiqmJqQjXyBlIyhlIqUkZWQkJOXpY+emaifnLajnaest6euwq6jt6avr7Ctqqq0uqKvvZmSpqOmtqOSnaaejamfjZKfo6yvmqGjsaivl6SgnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlZSFkoyQjJSLgX5mjIZ1hnZ5iINznGqHkZSUkYp9jJaSkpiToZKclqCDh5eGeXGVcnmJf3F7f2puZF9waWBbYFltYlBgY1BbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlxeXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkI+cpbO7r6ysoaKZep2isKSlsamWm7imopSZqZyOhoqJm6KQrp6jlqefoZKXmJuui6uWj6iZqIyYqI+eubakpZibjYl5gZOMmpOKlJGTkI2RlqKMnZ6onp+4pH+Er7WisK90pL6jsqB4eqCrs7yVdq6kn4qAqn5kXGJ2n46knoSXfm6Ts5yjqK6romWeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkYWdmpCVgpKHjo6SiYV4a5CHdoZxfIaBgGFpiIuVk4tbdpWRZ2iQjnJ6pJiYZHmYhoF3l2mDioJueX9rcGVfdm9ra2hbZmNiYm9TWz5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMU1RVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclaajobCxrKuppaito6etpJKWq7Wvsaaaqqarl3OLnK+fqKqnk5a4oKCPnKSdkX6IiJqejauao5Snop6Ol5GehXWukIimmqiRlqOIm7q0p6CZmIuJdHaTjZWTipSQkJSMj5OgjpqfppmcspaAjJy1nbSMko+9p6F+p6J6o6+4gY6Op5+Ei4WPsamvjImWo5p5gYushpydoqeqqIeVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpjeYeQhI6PkouDbnGQiHmBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg5+chph+kYmBgphqjYyEa3h7cXBnZHduaWxrW2VqaWVyW15JVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+PkBESUBJRUpLR1JYWllbYWFoZlpRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK7GvbCglaWotZ6Pg5yrnKahn42Qvp6ZjZ+aoJB9hY6Zl4irnaKVn6CRjZOJhoCRqI6Hopyjk5adhp+5sqedmpKOhXB1j4iTkIqUj4+bi4+Rn5KWn6SWnqyIn7SJtJqui8qIq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYaAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoOgmIGZf4qLg4iYb4yShGd3dHt2Z2h1cGdnbF5jbmxmbFhoR1xRTDJFNDZNYGM2JjQ8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqummpSgo6SqopWjqbajr3+gp5ylnp2Jk7yZk42gkZ2QeYSWlpGHq5mbmpmhhY+Md5ucj6CRiJ6km5WYl4aiuK2lmZuMjH9ibY+Kko+NkIyMl4uQkZ+Pk5+hmaGofqGnh62eoJauj5+dnZGGgaCNq6+HpI2qmoyafqN2gJiTa4GrdU2reIeNnZGbqKeBqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZsXXyXbl9TcYRcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmhkn2xabIh6ZVlfgn5hV1BvdmVudHJqam9eam9sa2hXaU9dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlrKyfnK21o6iSoJ+fppuZjpi0mZCLnoyVi3WBlJGNiqaWlZeenn+ShYaspIeckYqYqJeZmpGHpbCmopWaiIl/aG6Ih4qOjomLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHOTh5Z7nox5bYebjJmQm6iaj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbeMcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kXp2Zs5Zve5ees3RyW56ygmlib3R1cWhvWGtscnJlXGleYktEPUQ1UUFZcTI8UkZfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQERfXltaWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI2kuLWuraCbopyjo6Ssm5qxrayTl6CYoKSZmpOeq5uLiJJ4i4VwgJaNio+gkJOUnZd9kImOqKGHmI+KkaKTm5qMi6iopJ6PloaDfWp6hn99j4yCi5CQiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJynkZeoq3+ujH16oJl6o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG5xeXdraVtxaXh5Y19lV2JBUEVON1ZCUm00SlpaX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhZH1pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycp5+drZqdsKirnZeimaGfmJaWoKOZhomNaYiAcXuXiIuWloSSlZiPeoqElqOdiZSPhYudkZybiY+oo6CZi5CJf39pgYZ5f5aLeoiNjoePlpp/k6KfoKKTmHJon4qgj4xwkoyCqYiZn6OpoKh9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTX97e4VjepdCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcH1+bmVgbGh2fGRjYFFeVl1UVkBZRVFnRFJXW2JYXklEPUI4QEI6SUU4TERXQVZRW1ZERmJcWmBLYG1+ckVDPFVfYlplalZnaGxuYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGhoa2mTnYGxrpmEU1+gp7O5s7OpmqKLm6mcm6iSoaukoaiPnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZKWiHKAiZKgnHKRkICImJSfmoSOqJyalIqKiXuDa4SFcYGgi3eFjYiHkpmVfJKkoZ+jiK6GfbWEj56de6aWeqmClp2Qi6Gefqdod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTkHx6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqi8f3eDbX+/pqq0XpxvfnGXb4FzonJdo2d0pmFopm2b05h7g5tud3mXa5t6dpdybKmlZ19leXB/hGtnZmRtdnhoX2FSW2VRUWJJV0lUX1dTW2VqXGRQRkNLTEpLQkpFOFA/UE1XU1hPUlJgZmVpUmR4eXdJRkVjXWRZaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxomJt/sKxUXEt+qa+ytbCzo5yYhZinoKCjjaSooJipiZmXmJOZk5Kgl42IhXtwfYRofY+Ck5qBd5GNjolwf4aQk5Jsl5N8iJCRo5WDjqqalJKKhYl5g3WIgG6Cn4Z3f5KGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphynoSirK6Jl4uAjKSNloOuopR2tba1yaFzlIqAn2Gel6lteZWHn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5urdYKabXR3l2maeXSYcVBFfLNeanVqeIdmamdidHRxblZeVFloUFJoSVVMWFJWXGdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc355e251iXt7VFBPbV1oW2tpUmpoaWxnbGdjZV9cXVxeaWJkaGt7X11kZ2NqZm9tZWltZaKcia+nhWY/lKGzq6+vtaKikICXqKKipIylp52cpYKZl5aNl5CQm5KNiIN5anmGZYOMfpegeXWPiIyBaYSFkoOMhZ2NeoyKlKWSgpepl4yRi4CJeX98i3lwkKGGeYCVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOXcp92gImUlo+5bpCKomJ9maKViG5yaatqdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1b2NmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhzi5huoW9TiI9voF5kp1SLXVOYbW1yanGBbXBoa3hza3BSWFdXZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKDe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV5dYGtiaml2dV1cY2hjampzbGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqWMoqGaoqKAlZiTjZqPi5eQjYp7hnGAiGiLi3yXmnN0in2Qe2WDh5WKipWZgnyIhZamj4Giq5CFkIqBin1/f45zaY+lhHyFk42ImKCOiJKqp56JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGlJecoHylenGolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Np593n32FpJWdoGmah3asZ56tjLZzd76MpJNZg6aNq2F1cXNve3RxYmp+bmhsU1ZbVWFhXGtNXFJdSV1tbXZgW3FZW2BaZ3Nlbm9yY3F0YHd7fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGJrYmxsem9cXGJpYmxqd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ6kiZqlnamdhIuaj4WckYWSjYuNdIV6iINvjYR9lpN0dIZykoJtf4ySh4aUj317gYSXpI1/paWNgI2JhJR1goeSb2yLqYCDi5SOiZyfiY2Tq6SgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCYnqCDen2JbIyFW3l5cnlxaG5+kolxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW95b26HbYSGX3dpeI5mgYKGjqqcfnR9l2qJiG+AdnyFdm1sZ4xzeHuXd4Rbalh4j2htd3Fwb3d4b11shm5pZ1ZaYFdcZWtjVWFVXlFfcHd5bGp2ZWpqanV8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeW5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHltaGxvYY6Vuqmni6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHKDcJWFe32Si4aGkIV4foCGmKKMe6ehi4WPj4SVgoaOl3dyhaqGjpKckIienoiMm6igoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMm5qejnOVi4hxdGuCdnOAWXJuh5CBfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGgmh5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg3CFjXlvZWZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYprbGJZWV5aWWxxW19gWV5dZnR9e3Rvc2Nra2l7fHF7eHRkbXRobHx+dXl8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKuxopCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpZV/e5eEfJKZiImGhopyfYCLdoWLgYSWinFvgHKYhoR+koSDhoqBeoCDipqej4KmoId4jZeIlYuLnJeFg3qtgpGYmZSKnp2HiKGroKKio4yIk5uco5mWqqGnpqCSm4iXj3x5j46EqH5/kpGSk5ywpZqUnZCNspOYhKaMjJSan4mQm4KJkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi56LhZR/foyBgXZxdIaFgHiIh4qRppGEho6Ig42QjHyHioiPgXZrgYN7eZlpcmhgc4pwfXp2dW93dIFdXm+HaG5fX1pcXVNocVVjW1thbGh1e3xybnBka2pof3tteH9xaW9wbGaBe3KBgHiAfYCEem2DjIZ8enh8fnqDeE5kdmtzbXB6ZGtlYmJgW3RmcGZycWxVXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJikoJ17gJmqjZ6NhZ+cip6WfHmUgnuOmYmGg4SGbXiBgHKAh36Ik4Rta356l4aEg5B+gIaEhn2Hg4yanJKHqp6CcYqPhZKRi5yRfY17qoSNkpeVjpyWhoabp6Cimp2Gg5KamZmQmqagpp2dkJeBkYp3fYiOhaV7fI+QkYaYqqGdk5yPjauNkYCejIiSmZ6Cjpd+ho2Cb3iFcXRgf4OPhnWLl4CDj4KGhH6Fg5RueXV0k6KLjYWahISNdICKfXxyc3uIhHt5jI6Ek6ePhoSPgoOKiYl2hYeJi3tua31/e21oa2xnXnl+Z3x7dnN1dXt3XGBwfW51YGNbXF5RZm1TZVpdYWtpdnp+cWtsZGtqZ4CAbHOAbGx0b3huhHluhoB2goB9hHZxgo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpW2N1aG9idW1sVGJxeWVwenpzZWptbYuKn7iaoaOfkpKWl4uan56de3iepZCbiYaklIuYmXl6jYV8iZGDjIKBgm18f3hygIV9ipB8a2h9gZeIgYiOfH6GhId8j4CPmpuRiKecf3CLiouShqChioWMfKiSiI+Sl5OWkneNo6Ghnpaaf4GQmpmTjJujoaSal5Gbf46EeYCEj4ehgH6MjY98l6SgoJKZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH2AjYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36IinOCh3x8cXl6jIV6e5KNg5amk4uGkXyFhoeEdYKDiId5ZHJ7fnh5cGxqZl59cmh8dXVzfHKAal5gdHZweGRjWV5eUmtoVGRYXmFnanZ4gXFma2NsaGWAgGptfmhucWt9d4Z5a4uBcoGBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVV0b21uYHhobVdqdHZjdXt7cmJqb3qJjZ+ykqWlnI6QmI+GnaCanHx2pKCNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjJagmn1vi4GQk4alm4eMiYOmloWSipWXkpF2kZ6hoZiUmHp/jpiXjpabnaSemZOUnHqPhYN4hZeNnn6Bio6Mc5einqGSmI6PooyLg5aYg5KWmX6YjXyIjYF2cX1temSAfIqFcIaTf5CCbIeCgX+JhGV1b3yHkpeNfZN4i4l8gId8fHJ/eIqHeYWRiouYopWChIx3iISCgXZ7gYmFdF54d3xzfXdma2RgfmlqdnN0dH1xfGNjYXNudXNtYVlgXltsZFJiV19gaGt1eYZwYmpjbWVofINsaHRobG9of3yCeG2QhnGAgoJ/dHyDjIF/fnqCg358kG12iHR0bWWKbGphY3VWg2lxbmB5Z2xianZwZnl8enFgcmyGhpCdrpemqJ6NjZeHhqCTl5h9d6mciph5l5yLi5iQeXyAi318g3uAgoB4c3h6c32AhH+Ii4BkXn2LlYd+hId0fX6Kf32YhJaTloyjoZd+cod7k5GKpo+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2SlImdnZ6nmJiNlZd0jY6KbIaYkJl6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5anVse36Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnZ4gH2GgX2EjoWMlKSQeYWDdImHfX9zdYCHg21genV5cHtvYW5iZHthbm92cnd3c3RidmBvbHVub11bXl1eal5PXVdiYWhtc3qJa19pZWpjaHeIbWZsaGptaIB8endukIdzgIOEfXSBhol6gn16gYR9fI5yeop4eG5sh2toX2lyY4docW9ld2hubGF6aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXatmIyWfZ6TkZaTiHd+e4p8e4B2d3+AcHRzem+FfYGAin58YFx+j5GGf4OEc3qAhnqPkYeRkZuSpJuUgX2AfI2KkqSIjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQj5GJnpmioZeWiZeSb4mZhGeGmo+UeomFkIpwlpqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV8i3RuhZCOknF0gHuBgYh8ZHFseX2ZlH2EiHSQi4F0iHluf32Ah32FjYqFjZWojXuIfX6LhXd9cG+AhYNjaHdzdG56Yl5vYGp0XnBqenh4bHJwZXldbWxzbXNYWl5fYWpaUFdYZGNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6Fc4CBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHR/a3FubXFnb2xle2JugHl2cWx3d4p/o5iiqKGmm4eMioGPnYaTnHSAqZSRjIagjJWTkH90e3aFeHh/cnN7hWtyb3ltiXaAgIZucVtZfpGNiICAgHZ1gH9/oIaPipGcl6CTl3eJfoCMiJydiY+GkpeVhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoZuYlYWYiGuFo4Nnhp2KkX+LhIuBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4Judm9rbW9we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIh7hox7i4eEiY+co4h8hHeCi4B4eG5qgIKBXXJycG9vd1pecGBval5vaXx5cG1tam12YHBva3JtWVhhYWJuWFFTWWVmY3VwhIJiXWptZGJma5JtYGZmX2hrgXVycnCLgHR/goB4doCLgHiFf3eHhneDhHuGjH97dop/anFjfGKGfG9wbHRqaG9sdndfcX95e3R1dICCf6WVmq2fp5aFjYN/l5WDj591ip+TkoWKmoyVjYt6cnh0gnByhXNxdYhsb211bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCBkYGTkpebkZp4kXqCjJKkmpOOiJWYkoSGlpmMk4uJj4+InoWQinxzi4WJj4icmZ+blpSAlH9phpyIaIehiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbWtrbHp+YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHeMeoqMe4l+g4yRn52FfH14got9dnBpa4GCeV93bmxrcXJVXW5icWBfbW55cGdwZmdzdWhwa2F3ZV1WZmBgclNQTlxmZV14cIh8X11ocmJiZWaSal9oZFtncH5wa3Fzin12fIWAdHV/jHl7hoF4iIJzhoR+jIyEe3mVd2ZyaoNgh35vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIgIuef4qZk46EiJeNjo+EdnR2c4Bwb4VzcHGDb2ppdm2Cbn18bXVzUk6C38mS1pN8cHSCdYOggpJ3lJCYm4+Ye5NyhZCfoZOTkIqSm5SGfpaViI2NiJGNiJyAjoF4eox+iIyKnJudm5WTeY13aImSh2yJpIWTiJeDhmOMkZiOlIqWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJvamt5eVuAeY+OgHp9fn+Gjnp6aHNrc4uPioKFhX2VjGx+f2+AjH+MiH2EeoKQlpqbi3x3eIOQeXNtZnB/g2xpdG5naHNtU15uZHBZX2txd2ZramJmeHNvcGNfd2BgVmtfXnZQTkxgZmNdeXGJdFxbZXZgYWVljmNhZmFYaXNzbmtxdot8dHqGgXV2fotzf4Z/eoh+comHgZGKiHx+mHZlc258ZYd+bnBrgFpsbnl5c2B2enuNdnJ3ind5n4ubrpugkIKFd4iVf32JnIeFn5GOhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcIWLo5eJjpWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZuamJmOkHaLd2+HiYt9i6SFkomdhYVei5SXio6JjouKhIlsfJaBfYiFiZCPhnaFfX1rfWR3dWpteHNXiHqRhoV6fn+AhYx+eWVzan+KjoqDgn+MloVrgnVuiJGCkYV/gnqAkZaUmZB0dHiIjXV0cWd1eYJidG1vYWh1ZlJgcGdrVV9udHlgcmNfaH1xcm1aYnJhYlduWVx3TU1MY2ZhXnZzim1bXGR5XmBkZoRfY2NeWGpya25rcneLfXN3hIF4d3uJcYOEfX6Ie3SLiYiWhox+fphzaHVxeW2Lem50cIFYcXp2eXFkd3mGjGl2gIlyf5yHmKeco5KEfXCMlHh5i52EhaGNjnyVjH+aiIR7cndwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2iZqIjWmXj46clJKBiHCFiKCOhIuVio2YlHyNk4iDiY97kYuGkIJ/dniDhHKHgpKblpSYhox2h39xhYKJh5mig5SMnoOJYYOVjoaJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodXJpc3drWox9koGFfH+DgISKgnZidGyIgY+Lgn5/kpF9boJseYaPhpOEfYF9gJKTkZeJbnJ6jIZ1bHFrcniAX3RpblxqdWBSZHFoZlNfcHZ0YG9gXWiCcXJpV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVvanR3in5zc4F+enZ6iHOFg3x/h3Z3ioaPmIGNgnuTdmx3dXl5k3RueHp9WHmFcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cJKQjIdqmI2Im5GLhntoh4uZhoGSkYaHmI18jY2BgYqNfJCMfoqFenV7gnpxhoCVmY6TlIKJdYSHd4SAi5Odn4aWj59+iGF/k4eEiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+EiH9wX3NxhXyPjYJ8f5KJenGDZnqDioeMg3yFfoCVj5GThG5weYx/dW1uamt6fWJoamlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE9mZFxnbnGAbFpbY3JfXGNsd2RlXVxabGxibWlzdoZ/cW5/fHx0eIZ4hYJ8gId1eYmBkpZ8iYZ2iYFveHl7hJNwbXuBd16Df3SBbWl6c5RzZ3KIfXKSkYOan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fXZxb2xqYXR8Z2JpdXpaX3h8em1xfmVjaGhXnY9ecXKWvMODdXGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJuMfIqGfXyJjH+UiHWKhnZ2fYFxdYaBnpSFlI+Dg3KAiHWFfImYnZiHlI6dgIhmfZOCf4WDiYlygX1nfot7eH5/h4uOfGmAfIN2ZW94eHN2c2xqjYWKgYp/eIGAhIN/a15yeHp+jYqFe4KPgH5ygGl5g4eLhoR5hHyBmI2QjH1ubXuJfXd0bmhnfHZjXHFiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5aW15sY1pib3dkZ1xdYGxqY2tpc3aBg3Btfnx/dHWDe4OCfIKFdn6JgZaReIOKdIGIcnl4fo2Qb298gXFpgXl6fm1sfHaVa2p3hHRslI2FnpigmYWIbn2Mdmp4mI5+gYqClZeJeY6Wb3pzcGxqZGB0e2hfZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnF7kIqQd32Ui4SZkYyFbmuFkpJ6eZKGgYSYinyHf3h4iYqEloBwjIhxdH16aXmFg6WQhJONg39vf4N3hHmFm5mUi5OQlIWHcHuSgn2Cg4mDboF4aICEeHJ/f4OKhntlfX6EdWNwcn9oeHBvdZiNhoKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoFucYSHjoSFc4R5gZmNjYR4bm9+hIB3emVoanxwX1l3WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manFfbk5XaFE/WWZeWm9rZ3lxWlpZa2VZY3F5X2hcXmVtaGVraHF3f4dua39+gHVvgnuAgX6Df3aBhYmXinGCjXF7hnx5eYSTjHVqen9sb350f31vcnt7lG9ugX94ZpOKg6GZnJKChmeHg29oepWIfX+EgZiJgXyNjGl4cmtsZl9hb3htX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF5hYeOjXaDlox+ko2Mf21shYyLdX2Pf4WClYl8g3hudoeEg5d3b4iFa3V7dGZ5goOni4KPi4R9boB1d4N5hpyQjJCRkoyLhn57koZ3f4SNg2x/cmiAfnhtfHuBioN3YXmEgXFkcWh+bXRxdIGbi4B/hX5ydX2Ac4FwW21+dHiKg4t7h4B8iHh6cWyIg4+Ei3KCeoCXi4t/dG5rd4CAdXVcaWh3cFhWe1NZb2RMWnJyZVtJcHduXFpaWV11fnRoWWJbZ2VuY2lMV2ZRPV5lXF11ZV90cFpZVG9kWWRxeVpoXmBnbWdpbGlwd32ObGmChH55boB8fIF/gnp1goGNk4VwgItueH6Ae3uIkol/aHt+a3R7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgYBsjn5raH6NjHp+f4OUgX59iohrdXFnaGNbYmdybmBha3NhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ2hZaFc4+LiXZwbYWChnR5iXiJfJKIen9zZ3aJfn6Yb3GGfmh2eW1leYiEpIeAh42Jfm5+doCBfIyZh4KTkJiJi4SJfI+IcHt9hHtofmxqgHt6aXp2gYeBcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR/bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVzf31/k4mJem5uam6CgnVuXWdmc3FRWnpNWm9cTltycGRVS3N4aVdZWVphcYB0YF1dYGZkaGlmTlloTUBhZFtgdWFcdG1YV1N0YVpkb3JXal5iaGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuHb3F3g397iY2Pg2p+e253eXeKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJB4fXuBkX9/foqDcHJwY2ZeWWdfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDc5N8eIaTgnOQjIhycnCEe4JzdYd0iHeTiHl5cWN3h3qAk2lyhHZmd3ZjanyDh56Bf3+Oj31yf3SFeYCRkIJ4lo2Uj4iCiHuIiWt4eX51Z3pobH95c2l6doCCfWhgd4d9amt0Z3uAaXaAi5CUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWltiIJycF1oY3NuSmR1S11uVVNZc25iUU9zeGBSWFhcYW+Cc1thXGhlZWNqZFFacElEY2FaY3BeXXdoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye355goGBfHZ9g4iGg3B3g3JudoKDfYmLk39wgHx4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneGe2d0hYuQen5/e4iFhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJeG+MdXuGjoB6k4mAdXR1fnd/b3F/bYR0lIZ4dGtgeoJ5iI9mcYNvZ3ZuW219gZCUf4B5kZJ9eXtth3aAkIuEdJaKkY6HhYV7f4VsdHZ/bWd2ZW17dW1qdnd/f3xgYniFeWh0dWJ9e2d0ho6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e315e3OLgX1zZ3RlbouEbXNbal91ZEhubkxaYVdWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGRebmJUXHJHQmZfXWZoXVp6YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjHV/dnh9d4GDgXtzfYOIh4NvcX90cXV+hYGJjYp7d394g3x8hod4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3lefYWYjHmGg3SFhoR3iXtibmxbYltbYVZqc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8g4l+e5GFenlzeXV1e2psdWOEdZGCd29mXn2CeouJZXKCa2pxY1hse4abiIKBc5eUd398bYhxgYqLh3GXjpCIhYuDe3l+cXFwfWZocWJteHFqa3F3fHx5XGR5gHdpdXhmgXZndIeLjZR8cYZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXZ9cnt1h3x6cmZzYW6MgmxyWGtfd1tJbmtNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmX11Ve11PVWRwWltqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dYt+fYaEhId/fn59h398eHZ5eJGToH+MfYttdoB5Y4OGloVzkYpvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3eKo4GEf3GZk3GBeXSCbYCCkYdzlYiMiISJhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjIWVf2+LZmt6g3VtdGJcb3xrdXyLfIFmdYd9bXFndX54fn9yfWx7e4F6eHBmbGJuiX5tbVZrYHdVSmprT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpFa1phZFdZVXlZTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeHp6c3OFhoiIg3iBfXaPf3yEio6EgoR7fouDe3d8d3eanZd6ioKGaXd9fGyDhJN/co+CcIWCfoF/b2ZsZ1ddW1xbVGRwZF9XYnJ1aXVwZWViV1xcaH9wb3KAc4lkZHh+aXR1c3OChHiAhHl2c3Vua3pwYWdrZ4Z0jYNuZl1ffXB7iX5pbXdmaWRVVnJvjaZ8hHt2lpB0fHN8em17e5CFdph8h4aChoN8dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dWdwgHeBdWJ3hIp8lIBui2pteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cHp5c35mfn9/eXduZGZiboZ8bWtWamJwU0toak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2JVVVVzVkxYdWRaX2thXFpjZV93Zm1icGlzbnJ/dXSagXd/gHd/foWFenx1goR+l4VucnR8enRxhIWPgYB5i3V0kX98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4KLeW6Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFze2lobWlgYldfW2qAaWtvgGdrYWh5eGpzdHRuhIF6f311dW56aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvZ46od4F6fJCOeXVvfm9ydXmPgHeVdIWCf4WHdWpydmdobltsZF1tc19nYWp4aHttWm2CcnNpb4B+eXdgd4SEd4+Ecohxb3mAcmNxaVxvd2RxdIh8eGJzgHBnanhzcmx4d3V4ZIN7f3h2cGRjY258fWtsVWliZlNLa2dPR1JrRWF4Z2FNU3FcSk1UWWVrd3tlXm1xaWRdVmBVbm5XS1NoV2ZeWE5VbFRKXHlfW19rXV1bY2VgemhsYW9vdW5veHV6mH13gIF6gH+Hhnp5eoN+gZOEcXR0f3l2dIWIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoF5dYCAgXNuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedYJpXm1sXGFWXFxsgWVxdH1paV1rdnZndHdybYV7fX15dXJseWhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZZ2OPp25+d4CLjnpwcHxmeG96jXx2jnGEfX5/hm5kdnNkaGhca2Jdb29bZ19tdWR6aF10gG9ya3F7fXV1YXSFinqHh4B/d3J1f3VhcG1ZcXRicXKFfHVkcn9sYWx6b2ppe3l2cmaFdnt6dXFlYWVtc35pbFRpXl1US3JiUEZWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhub252g5d5coGAfH+Ii4Z+dXWGeYeMfXN1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXGHeXN8fHVxboVse35sj3picG9iZV1lVllZVmNma2BdXHOFaFhwblpeV1pcbHticHZ2bGJbbHNzZ3V1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJmZmuDgnR9YmNpXFRYXWJjj6VoeHSChZB4bW55Z3dtfIV7dYhygHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYnhkW29wYXFxgnxzZnGAZF5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVhIYnVkYUlUbVNKTFpXaWxxe2JsbHNjYVlZW2F2W1NMY11YaVNXSFlhTkdpdVheYW1bW19iYl2FaGhhbnh5bG9qdoGQeG2CfoCBkoiEgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHhzeHVrc25+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcm5bWlhYYGx2Y2l1ampeWm1zcWxzc3NqhXx+f3x2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBbY5GeZXJxhYSRdGxqem1vcHt8fHGAd39yenl5ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2amlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfmxsdX5zcXhrcGFcZWxsemFnU2dVV1JQdVtRT1lSSWN0YmBHVWpQSVBaVWtra3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9IcnVYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fXSCgnyLj4OCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntld4pubntvZndwemxzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT29uXVZYVWdqdGdidGVlXVludG5wdXV5a4d8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3l+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+cGhpc3FzcHR1am2Ek4GIe4VxcmZufXByb1RbZmpmcXSBd3NibHZVYnFqW19vZn1mbXd9c3Nzam1gWmRqandeZlRkVVZQVG1XUVZTUEhkc19hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlZYmBeXo9uYmZreXVub2h2dn9/bIN/fYaXe3+IgYp+a5OIcmd0gHt1gIN9iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGR8cGZ4cnlsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbWBUVlNvZ3NsZndkZV1YcHRscnp3cm2Ie392nHp5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CDX2JeZ1ZYX1dkm4hia3GBh313a2t5bVx3cWx6aXZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfmxma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFoaW90gXRyXmlsUmVxZFRibmJ6Y3F3e3ZrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBgnmIjX58ioiOem6QinRsc4J0f3+IhYaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyNjY2NjY2Ojo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usH9rbm5ubnFKLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS3fGVoZ2dnaz0aHR0cHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eHh4aHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGLioqKiomKhoODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkIqRjo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4qJiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+Gi42JkImLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mIjImPh42Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhomMiI2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjY2LjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4CAgH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlZWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fn5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f35+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e318fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESElHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3Z5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFRVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLSkhKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQ0ZGREdJSEM/QD9AQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgIB/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Oz07Nzg7PD49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OjpAPzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/Pz49PWppPj09PTw8PDw7PDo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMS0lJSUlLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFCPz0/QkREPz49Pj5AQDxKeHNMPUNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkVKPzw7Um9tZ2V4c0g4PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJR0hISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgXZNTk5NTk5MTE5QTkw+QTw8PT8+QkM/P0FBQUJATXpjPVeBhYaGgnlyRjg4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISkpKTEpGRmdwb3FxdHZ1d3t8fX18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9Wd3tnfYOCg36CfnZHPT0/Pj0+Q0Q/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wb3F0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNFQFd1dH+BfYKDeYGFckRAQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFATnRyfn14goWBg4ZfPUNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFZneAgYGEhYeGiIRLQ0VEQ1d1homKflhHSEpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhGSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdYc4GEhYWDhYiIjWU/QVZ0h4mHh4aHgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTEpYgoWGhIGChoiKfFRshYeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSmOGhoaDgYOChISDg4WFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKbIeGhIGDhoCBgoODhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoOBf4CDhISEg4OEhomKi4uLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDRXKFgICBgoODhIODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFJXa3FydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlGgISAg4SFhISEhIaJioqIh4eIiYqKjIqJiYx6Pjk4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw7OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PVSFg4KDhYaFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCXYeDg4WGhYWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVhh4ODhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0hISl+FgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE1LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg4PDs8PTo/QD5AQENGSkpQZ4ODhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSERKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9ARUlLTVZzg4OEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15RUVBNTk1LSkdGQ0dKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/gICAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1ZWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af4CAgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcXleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU1LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJUVVpcbXJ2dnVzc3d7enp7e317fX19fn19fX59fn9/f4CAgH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNUmRzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5AQD8/PmtQS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSUpQUU5LTFFSUVRWVFdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCW1xPe05PT05LTE1PT1FMS0xXTUhHQEE8OTc3NTk5PTs7Ozg5ODk/O0FIP1x0dXV2dXZ3eXx8fH18fH19fX58fn19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRMUU9hV1JYUVBTU1JVW09PUVZQTUpDRj46OTY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUkxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGBfXllVUE1PTkxJSEpLSUhGQ1BPU1pXVFRNUVNZU1xlVU9TVFJOS0lIQz9BOTk4ODk3ODg0NzU3ODU4OUduc3V4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1VTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX19fnx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pIT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUJGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PTw5PUc2Njc3RG5xdXd6fHt8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxFR0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PTk1JTUxJS0xMS0dGRkVEPEFBPjtARTs8ODlUcXJ1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT88PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09PTExPTUtNTE1PTltXS01RT0hKSENJS01MSkZGRkU/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQUFHSURNT2FlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhLTU1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKS0RHQj0+PTo6OjtBQj89QkNDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1QR0hLRkhLREhJS01ISkxISEpMS01dUklIRE1GQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQkNAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+P0NDQ0VHTE5IS05IREhFSU1OTUdJTEdFRklJTE5LSkhFTkhDR01MTk1QTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTo9P0NBP0FDRkdKR0lJTEhHR0dGRUNAPUVFQj5BQ0NDRUdISUdNUElGRkdLTk9LRkhJRkVERElJSEtJR0hQS0RKTUxQTlBOT09OSkpJTVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oj4/QEI/QEJFR0pGSkdJSEZGR0VDQkFBRkZDQkJCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pIS1JNQ09PTlFQUE9OT09MS0tQVVdWVVNYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pzw/Qj9AQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJPUE1OUE1MTlNXVldYVlheW11kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNSEdHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSEtIRUtLTE1OT1NUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBeaGVjYGRlaGdqaGhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3Vub3NzeU5JSEdJREFDSEU8QEVDRT04Oj4+Pj09QUI9Pz5BQkZDRUJDR0RDRUVGR0dHSUZISkhDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllcX19eYGNdXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxd3F1TUlLSEpFQkVHRTxAR0REQDk8PkBAPz9CQjxAPkFBRkNFRENIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5gX2FgYmRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZKS0xKTEdCRURFPEBGRERCOz8/QUFBQERBQEI/QUNIQkVERkdFSUVGRElIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5PTk9MT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYGBhYWFgYmRlYmNpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXVlcXNrcHFqcnZvd0pNTExNR0RDQUQ8P0VFRUM9QUFDQkFDRUFDREFBRUdDSEdIR0VKRkNHSkdHSkZJTEhJSk1KTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MS0xHREFARD4+REVGQ0BDQUVEREZDQkVHQ0JJRkNISkpISUtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE9OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVFRkJGRkdDREpFRUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUlHRURAQUI/PUJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NSk1NRkpOSElLSklMSkpKS01NTk5NTUtOTU1bcm9vbnBwbGtOUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5ITE5JTEtJSk1JS0lKS09QT05NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVEQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk1LTFJSTEdNTUhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGTkpLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTUlLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbWhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdzSEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0tLRkhKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk9QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUVFSElKSElLSUxKSEZIR0pHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpJRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLS05NTExISkpISkc/R0ZOSktLTEtLS0lHSEREQERBSElBP0lKR09dYVpbZF1fVFFSV11cXFxfWktXXExSXFlJTV5QUF1fYWNjY2NiXGRjYmRjZlhRVVRTXFhbYV9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZGSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTEtLSUhHRUQ/REJISEFBR0ZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUVJbU1xeXV1dX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1FKRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTUtLSElDRUBEQ0hHQkFGRUJWVUVcVF5TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxbXF5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEVl5JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQEJDRkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlaXl5hYWVmY2hka2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdHWE1ISEpIR05MUVFJTEtLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBEQ19MRGZjRE1bSF5cc21PTVZtWUxDUGBVbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBmaGZubGhyenx9foGEhISDg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dhVEhKT0pJT01SUUtNS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTFFUTk9RUEtMT0dNUFJaWlRRUU9QUFBKSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JgYGBiYlphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUlmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15jZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdnpufH15eHJuTkpTdE5EQkVQUElLS0pMUE9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGhhVm5McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFRTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFPUFVUWFhYW1tVU1NXW1dYV1pPU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11dX2NaX2NjZWZkY2NiWWNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUktRTUtLT1JUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFOU1JYVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmNkZ2VkZGFZYGFjYWJpaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhQSktMT09MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lUUlJXVVVXXFlbYF5WWV9dXl1cXWFhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWFZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUVBSWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlVWWVRXV1RSUlhWVVpfWl5gX1ZeXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5fZmRkYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VV1ZbXFdRVFdVV1hWVFhaVFNRWVdWXF5bX19gVWFcYGFdYGJfXGBdY2FjZ2lkZmBaY2BhX19lZV9gY1taXFtcWVpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVlxcVlJUVlZYWVNUWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVteVVVOVldXXltYUVVVWFhYVVdZW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZGZeXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1hZW15WXlldUE9PUlpQWlVVV1ZTVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRVVFVUVllXTFJaVl1bXFJPVVNYVlZTUFhSU1dTV1ZWW11YW1lVWl5YX15ZXFpSV1JZWFlfWllTVFZaWVpWWFlcVlVaXVxeYGFfZWRdXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWlhWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcV1dXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlNZWFhdXlhdW1VeX1hfX1hcVlJZVFlaWmBYW1RWWFtaWlhZWlpYVl1eX15jYmFlZV1iXGBmYmRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVxZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlldVVZbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWlZWWlVZVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWVBWVlZWVlZUVlRYXFxfYGBdYF1XYF5bXlxbXlhWWFhbW19fW15XWF1cXV5eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWRhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFhXWFhYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFdW1pZXF9hX2JkZGVmZ2diWmRmZ2lnY19jXmFmZVpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xYV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bX15aWVVYXV1fYF9fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX11cXlxYXVxeX2FjYmFhXWJbYmRhX2NjYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmVnZmVmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7e3t7ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp6e3p6enp7ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSzs7u+vr6+vsGhioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL+/yczMzMzMz6qNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enp6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgICBgoODg4ODf3x8fH19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2eHt3enl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enl5eXl6enp7fHt7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHp8e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8e3l7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p7eXt3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXt5fHh8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHl5eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycnFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1tbW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGBg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgYaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx+fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn+AgICBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+AgH+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDgoKCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fX9/fn9+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKEhYWFhoaHhoWGhoeHh4aGhoeHhoWEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChIODg4OBg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYaNgoKCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9/gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgoGCgoGCj5uFgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgYCCg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgYB/f4WWm4iEgoSCgX+AgoGCgoGChIKBgYGBgoOCgoKDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYSDg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODhISDgYCCg4qIhoB9fX17f5eciYOFhISEgoGAgYKDgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWEhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgIaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CGmZCGfX5+fod+jZyFgYKAgYKCgYCCgoKCgoKDg4KCgYKDhYODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODg4OEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAfn5/foaenYaAiYB/h4GAjIKBg4GAgIGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KCg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAg5qhiIWJg4OBgH2BhIOEg4ODg4KAgICCgoODgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEhIOEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkJ2EgoKEh35+fX2EhYWEhYR/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOGjIKAf4CFgH19e4KHhoOAf35+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgoB/hI2Ef319gIaBf3+AgH9/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOAgIGFhIODgX+AgH9/f4CAgIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDgX+Ag4WDgYKCgoKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4ODgoOEhISCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhIODhYODhIOCgoKDgX59fX5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mHiIaIh4aJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhYKBgYGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIKEg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gYCAgYODg4ODgoJ/fX1/gICBf31+fn18fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+foCCg4OCg4ODgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXt/f35/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f4B/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgH5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fn18ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/gICAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOFhIODhIOEhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fICBgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCBgYGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6Bk5GMjI2OjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjoyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIWEhISDg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gIN9jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH17fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFh4aHhoGEkY6Mi4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnp8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx/gH9/f39/gIB/fn9+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+e318fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgICBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/g4OEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKCgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36CkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39+fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX9/gIB9fn+EgH5+f31+fX2KhX1+fn1+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBgoKBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYOBfn6Af35+gH59fn6AgH+Bfn+Af35/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x+iYaGhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCgoKDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fXx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KDgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWFhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+gIF+f4CCgYCBhIKEhYaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32DgXx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58f4CAgH+AgX97gH6AgH+BgIB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Dfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh4e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fX1+gIJ/foCAf36BhIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f35+fH1/gICAgH9/f35+fXx+f39/f319f399fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX17fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYF/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/f4B/f39/gH+AgICAgH+AgIGBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fX1+fn59fHp8fHt9fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn5/f4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn1/gH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gIGBf4CBgH+BgIGBg4KAgICAgIB9foB9gIOCe35+e3t9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAf4GAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYSDg4SBgYOBgoKBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fX19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgn9/gYSEgYN/goKBg4GCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHl2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgIOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAfICBf3x8fXp6e32Afn9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgoKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFgH6CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIKBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhIWDh4aGhISEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOBf31+fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOBhH6Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f359f4GAfn6BgoCAgYSHhoODhoSFhYaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJioiGhIaGhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+f3x9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59e3x+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhIaGhoWGhIaFhoeFhYaGhYSDhISDhIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX19fHx8fXx+fXt8gX99fH18fXx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WFhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDhIODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXx7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoSEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOCgoKAg4WCg36BgYF/g4F/fn5/fX58fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYB8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhYaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGh4aFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+e3t7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhIWDhYWBgIODf35/gH9/gIN/fIB9fX+CfoCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhYKFgYGAf3+Af35/gIF8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoWFhoeFh4aGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ+fn5/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnx7enl7enl6ent5enp6e3t8ent8fHt+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGDgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIKDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/f319fHx8e3t6enp6eXt6enp5eXp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e318fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2NbX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiaK/vL29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ8rqqqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj84PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpWgK+rq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYayr6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvP09PS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dXW1dbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0dHIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqna3RmaycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdxJSInJ7EkoadnM7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZmcK/yZiYxbzJl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlJ/M0pSWn87RkpmgztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SY2a+fwpvaraO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QnsPOi5Oex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJmvz9ulmbPQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk3OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqgq5GnmaCtkKiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaann7GkpKigr6eiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbWnJGOutWakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV09O5x9bT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2enp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqaepqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG95amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHOw8rKyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW90Yl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLybrO08jIzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm7vsHHwcXD04mpz8TEwcTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t73Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZ2NbWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW3s666u7a+zLaEntK8v8G8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb2+y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t7Cut7W4v8+bgYq1wbrDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3uLStuLK2vcXFh4GAn8S+x7e5uK23tbi6tLizu8XGy8G8xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pz09OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSvsba6sb2+u8S2t5x+d4J0hJPBrHuBgpzJxs/CwLiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLvU2ru6vrzGsp13Y2xkUFthfY96hYaZy87RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbPEorLbv7y9un1kb2Bgc1tUVVhsfIaIm8jIzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby3wW9vsM3BtHpaSmRjS3B+bmBRWXiCi6DFwsfLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7v8d9b3akv5tVUk+DZ09cfIGDbEZrgpCsw72/xsC5wLy+xcS9vbmysK64t7/Dx8PEvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucfIgn9uf6VzUUxilV9RUVWOlnZOZYucrri4uMK6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trjHyIqDeHSNYUxiinFcT1ZksLp3VlB+r7Cysbe+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsX2NhW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3w8ORiH9/eVZRjpRrbVZlcGeUfnFtXoe8s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLnDopCJkH5KXpjDdIGKkF12fGlqdIq0u7WxtLWytK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWyu6+UkJ2WTGKNlHZwgHpjamxzfnpznrq5srSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K0pp2qjleBb25qXGhfXVZZXmdjaYCXuLKts6+urK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpaypscC3r2h4eGtzaFleUEpISkxRT1prbqK2qrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR09STUpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooaXEw45gZWNyY1RMRl1JUEZNS0tTXl18tq+vs7Wqp6yropyZlI6RlpeYmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpefpZ6dubGFemdqY1ZIUF6Oe2xTS0dHTlRUZKuysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOT1VMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbnqOnmn1sXVRMSVWDqrGfaFBGQ0NHTV6UsK2sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpmem6GhoYZuYFVQTk9cq+Dauo91YlNIQk2LmZqrqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqcpKB0WVJPUlJddbjSuqCpuZ6EeYmuxKOoramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERKUEk/RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+fmqCcZlBJTlBddY2yvamHotzWztTZyLSup6OjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hop2clF1LRUxTdYWztqSSicXj3NHEtaafmZybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHUzdPQ09PMysLGxsfKyM6/yNHMx8XHxcG8w8G+v761vrOuv7/Cw8fEx8Suv7iyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnpZjSklNXH6q0dC2oLPTzLqvqKKfnZ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLz8bKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCld11naIOw0tra1sq6sqqjnp2doaWgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tbW2dXX09bYztLKz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Gyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaChqomBkq/O1Nnaz7yvqJuWmKCcm6Gin5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXX19fT1s/V1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDY19jR2NLX2dXWzM/Pys3Sy87QwMbCx8XOzdHR0cjMzcDKzMXTzsvOyMTKx8bIzMrT09HVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqihppV7k5LF1tLVwq2moZiVl5manaCemZydkn1xZWNjX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzszOz8jL0NDKzsrCycfJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaZ2aX+U09bNsJyblpWXm56en52UlpiUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMnBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxcrLzM/RxtDOzc3Mz8XHwbi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcWttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKGoZG98qNnQqpWOjZiWkZOSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHy8vLzsLLy8jHy9DExci7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62mnF5vd7rQq5COjpeQh4SEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLM0MXLyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8TLxcW7wMrCxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMC0w76yso1gcoG/sJCLk5eHe4GFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLy6uMHBwsW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7a1vb+6y8O8tbrIur++y8TBxsLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfAuMW9q69+ZHWQtZKMiYuFeYGHh4B+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0vLa9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vcC9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC+uLfJtamwgm1xl5qNhomKe3l+hoZ3eIJ9dGleXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramsqbSvt7Cyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaWuta+7srCpubCtu667uLvAwL25wr/Hw8XBvMbCyMu4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysHJyr6/vMC6srO0w66proZoZIqSiI6QfHh+ioV6e4SBd25eXVxdXV9gX19kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKWhmpylq66kqKKsqqyqsKOmn6qttbaxvbmvt6+prri0tLy4tLyvt7m1srvBssCupamiq7Gys6i9qquoq6yttLOmqK6hpK+psqanqK6mqLessbK3urq7sry9vr7Ev7XCwcfIt7/AxbfEwr+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usm3wcPBtLW7tbCutLutqKeHX3GOg4iLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX11dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6lm5iRoaOqpKKfpqWopa2gnZylpqyyr7a3p7CrqKq0q7S6sba1rra5sa+6urG2pKCkn6axp6uouaqkp6iop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLW9uLrAur21oJ6VnaGmurars7O7s8TPyMvCxri3x8HMv7jJt7vFuLPEuLO+wKu1u7GrpK6yrJ+iimGCh4aGgXx5dXRvbWtqanFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5abopaco5mWjZ+ho6ebn6CkpqKonpuim5+rsKyxtqOpqqqsrKS0ua23sKyzta6yta6wqp+dn6SisqSmqbitoqamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O6s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7uruLmwoZ2oqqaWnYJlgoWGf3hybnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRkZWZmaGlrco2nnZSVlZuYm6KXlpGcoqKonZudpaaippygoJuYrq6trrKgpaKuq6eitbGysqyor7KnurOmtaCinpujoa2joqq1qqKjpp2mpqOWmZ6XmZudoJqXnZ2dnK2hq6ekpKatq7O0qrWws6uyubSvqq+ysrO3s66prK6yuLC6trq9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxr/FtsG/x863wMS9s7m5sr+2sbi6rLG0rZ2Yo6iekpp3aYGDhH94b3F0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVl6CeoZyWoaKppJ+fqZ2cmqunr7Cqm6OkuKqhoK6otqqmp62wpLewpLegopuZmaqmoZqsuLCioaScop+fk5ShlJaWm5iXlpeclZ+qnqqkop2jqqqwrqi0q6qnrbOwpauus7GwsK6vpqensq6xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeoo6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa28u7S7vLS4ua+vr6ebmJ+nko+KcHqAfHdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaoGWk5WMkpSUm5mdlpacoJyglqGgp6akpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJeep5ynoaKZo6Wlq6SlsKelo6urraaprq+uq6iqqbOlpqyvtLGvvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wqt7e9tr26urWyq6ulmJedoYqHcXyIfnZuY2FmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZVU1RSVWBgX2BhX2BhY2RpgZSTiZCOlJOUnZWWl6SZoJedoaairaakpKOjopyqq6WZn6WxqqCgnaWrnaeinq2sqamtrKGiopWYo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaOdpKCilaCipKabo6uloqSqpKuupa6yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUU9IWltPUkpUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1yb2xvsTJrLG4wbW7wLu0s6ippJSYmZqHfnCHg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2OkISRh4+Rj5qTlZOcm6Ocm6GpqauorKeopaSZpa6klJmlr6mfm5mboJ6umZurs6Clpp+io6GVk5uWlpKpqq2anJ+hoJqUkIyZjoyRjJKNlpWQnqGgo5ybo5WboaOhl6Koo6Koq6Crr6Ott6Wjo6Ksraqoq6+zt7O+tbOrr5iEdHNoW1hYUlVRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S7t7vDyLGtuL+3vL26srOjp56UlZaUhXhzgHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugq6qmrqyor6Somp+soJWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6ulmpmZnp6VjYyLk4aIjYOQi5GVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXJzYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2uLy+wcOxsLK3rbSzurKxoaGam5aVkoF+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudqJmhpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkYeUjouBi41/kIqSkpKgmp+ilZOYmJWippmNmaSmqKahn7SyqLK3oZyit6yqraSysqa1vLWsq7GjiXhzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWks6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmuq52YmZuUkoV6gW1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWXopyVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifo56Qk5iWhY2ClH5+dImOeZCHk4+QnZqZmpGVkJ2OoqOOiZqgoaSkm6K0r6yvrJ+YpbimprGhsa6csLyqqa+qmYJ3c2NWTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuLC0sMnEt7nBzsW+s6y6wautw62ooqaSnaa1q6GcjpSVkY58dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho6dl4uUkJ+YnZWUlpWPlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlY6RkIOGfZN4cW+FjX2JgZGNj5eamJOKj4mch5+Yh4iWnpqhoJenr6mtqKiflq2zoqaumayrmKi0oqmto5N9cm5gW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mno6mwqKe0wbmxtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbrqCYlYWTjoqGe3J0XFFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhpWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh+ioiVio2RkpaLhIqIlISajIKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdG1nXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Kvoaeopaeor62qtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Vjn+Jk6eVlIl9jYOBfHZvbVhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuBdnJykndndYSEhIR7lYmIioyLgH+Ei4x/lIN8gZCYlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToZ+Wnp6kgHNoYFxcSlZPUkdKWFJPSkxNUkpKSkxQSUxRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI2bjZB+doV3e3VvbmhYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfox7dX6Oko+YipKam6OWmZ2anZ6inZaNi6Wbj56XjpaYj3dvbWViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbCvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6EknmIjYqJdXB7bXRwaWxpV0tGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnpeMg4mfkYuSjYaQln5uaW5ubldVV1RSUVlPUlRUU1hVTU5ITktNTktDSE5HRT87OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKsqqi1r66stL+rvMK/pqKZlaSXnY2Ei5ShoZiYkZOLc456f4WLhXRudGtwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqSdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn94eXVqeYmCiIqElpOSkIuNkZSUj5eOgHmIl4iGioaAkIh2ampvaGRXUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq+rsrDCsbvDx5qWj5SZi42FeYSQmJSNkIyPhnGHgnOHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRERFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZuY3aEfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo97cnBvbGBbXF1bWVhgX1JOW1pYV0xISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnqSnnq+VpbWqrrGuwbK7wcaWkIyUkICIfW6BkJKJg4qHj4V1goNslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozw9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfXV3e3yJdnByc2ZnX1tbXVNbZl5XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdyeXZobWtfd32DiX+IhYx6lZ6biYuIkX96dYt2fHhtb3d+f3NzcWtbXl1bY2NYZmVcVVBQVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0/QEJFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWIkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtyhJ6fkZx/doWFio+IkGpob4OAdY2HhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaJjph/e4KJenpvZ2t4fnl+cmpkXltbXWlcYWZfWU9LTldSUUlQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGPi5qbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CRUhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKTEtLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4KWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfIB/gXNhXWNfWmZqXGtrXldLR09TUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6YlpqVn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmZKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNTU3Oz9DRU5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnZ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoWcoZqamaeRkYiVopqad3p+lJiSoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+enFoYFxhX2FmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYKGiYGAhndfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk1PUVlthpB3lYujp6q0vbilrqysqKm0q7C3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6ShoKqhpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauImomSipZ6e36EfWZgaFxlYl1jY15mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKcg5KQjZLayJ2Wc1aXiI+InI98hoyOiop6iIKHkY6DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PGtq20v7O4vra/tMG2u7ukuMaptsnHtb65tKijtK2xsZyakpqfiaevq6SVdp+kl6GrsbOYlqqtqK62u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7epjaWOkZOgh3mBgnRYYWRWZWFgYl9gZV9aVUpERUxVUUhKSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NTAvNkNIQ1FcT1FVV1VcV1BfVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba8xb20tMC3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsa6lraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYq4l+gXpqV2JhWGpkaGRWWmNZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIl6fIuHhnyKg4GKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPztIUERaY1FRWVhZZ1pUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vcC7t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrp56Vlp+YoK6lp6elnqSUoqextKeysry2wb3TycrTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX5xX2FhXFdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZB0bXNyc4jVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tXm9fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLura6tri5s7i1tK62tplkdaierXBeoqycmKGjm6Seq6WUn5+QlI6WmJeon6afn5qZhKSdrKWqsK23sL251NHP18/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yM60pLuwtbCbrLm9mn95bF1gW1hdYVpjYlFbYFNRS0NBRUZEPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUb2xvdXWIs6yhoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7awubGwu6yzsaeqt6yNtqeem6eaT5udjI6glpGmmKWVipOTiZCJj5GRnpuhmJuVl4eemqabrK+or6eztNTU1dbSy8/T1c7Tz83FwsnQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKOCbmNcXF1YYFdaZlpQXFdOUENCSEVCSTtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGiAcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkZyYmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sbAzsfIw6m/uNCeeW5lXWJcVl9SXVtOT1NQTkg+QUZBQkU8QEI+RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHt2fHOBd3FqgHJyaW9xenlye77Lmn6MsYN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG5qqa0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmISBhX6Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSox83PyMLL0NPR1NLO083G1tLM1NjW1tjV19XJ1NrNydfW0cqtxMPMinJvYmBfWFNZUltPSkdJSUpAOzo7RUFEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bId2dG99doR1eXudtYw8QYrGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52eoJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2ChIV6lH6CqZWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLWv8zMtHd2bmRdWVJVUFlWRUZKSUVFPTo3OUBBQjpIREBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cnyBcYOHgG6OenV3fXyCdX98h4iwdFipwraMkoFwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoa2copqZn6Wen6yZi5qMkZKNhX2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZWMhnubiJOPrqqUlZeemKautr2orb3Gy8jJy8vPycPRytTW2NfY19Tb19PZ29bP29rR1sjVy5V5emhoW1lQU1NdSEJFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIFvkoR0fIGFenaGe4m3xqTCybiBlpuPeHBlTmZjgXqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZmrlpGRi42Sg4yFiYiBhZCRnpyZiYWLgYaXe4iIn5eQiY2Ki4J8oYmQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aGenlmaGRfVFdWVU1LRE1DOz09PDk6PD45PkE2Pj9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnpGfg5J8hn54jn14iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRkpWPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhImSlpqfn4mMlJKekYKLf6aZiIWOgoaEgKWGioy4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHl3amlkVmBbU09OSERMQj09Pjk5Ojo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGPinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6GbnpSSgIuIf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOioJCkr5+LkYuFi4GShldyrYufrJyPg5ibkJCOXIOikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYqKnZaZo6OGk52WoYuKiI6ckIOIj4CDh4WkhoyQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnanm98dGdmXF1YU1ZXQ0BJRD4/Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqailomdkJSWi4qol3KKso2DppGEmZOEmYyilqCZk4manaKSqa+fkZSQjo2IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelpuJj4eXl4uFj4yBf4aPpYmNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hiXl1dTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY59fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqKDkLiVkrKZjKGhjKSbr6OknZiQp5anmayvpJeUlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx0kZiylpeloYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LtyeXZdYFVfVk9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTY1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlJZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2zs6ijorCsipq0naK4pJWtpJeprbempKOfmamXqaOvsKqZmJyUlZGXoJiau7uuyqFqtrirsJSYn6Ork5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkpyZtJeVq52LnJSSjpCSjJmbipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9ShcHpoXFpTXlFPRUQ+PENBQTg/ODc1P0Y8PDU8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoynsq2tvaqbu6Sorbm4q6amoaKjo6ivsrGqnZykmJuXl56ipqWSpLquqcC8ra2yuaWkp36IhpytvbCDjIyLkIOPg5GPeoGIkI2OnIiHj5eNi5WXlJCal52omrGakaycjpqPko6VkZCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK+zabHxMfDvNXRzcTKiHRyYVtZX1tNSkJMQEZHPkE/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubuXsre6ssCupcCkq6+7vKqtq6OjnqeqrrSwqpugqpuhm5WfsLSni6O6urbBvKyonLKlpKiUhY6qxMSkgouPh4iEhpWUjXqDjZGPkaGMjJSSjoiXn5eTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMKuqLe1ycO+ts6yxL/EvLPRycjCtXR4bFxYW2lSTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgZB6jaGWqJqamLq9x8jJwdLJysLNvMGzrbu+p7rAvrzEt6zBqayzu76qsKmkpaOsrbOttrWgn66epaKYo7O9qZuovcGjt7ewq5Kwrausl4eaqqelkYKMk6WViYF2ipJ6hY2SkJ6fk4+Ui4+NlKOZl5yVlaOeqZ+RpZqMj4+PlZaIfI+VkpKjmpWgopy1ppCel6SjoqWenaaYnpWXm6SjqKeisqyovMDEr6Wzt8zAua7Es7u+writwsPCwJlteWFYV1tbS0tNSkZERElCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mo5jCvsfDx8XTzc7Ny7zCt7C5vLS8y7zDwbW2u62zv7m8rq+ooKintq2tqbK3mp6soqehnau3uKmksL/Esb65s6eqtbOtrpeWpayooJGOkrHFp5WOfZGVfYiRmZCqmZiTk4+TlZOlnpOdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOesqWWopasrKqnm56ml5iWmJWgo6iln7arqbm8w7Wms7XLwLiqtqyyuriuqLi6vbiCa25aV1RUTkZKU05LP0JIRERIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnISDlZCQk46aop+vvq6hxrzFxMbGzs7O0sq+u7axuru8v8+2xL24uLeysbWzuLOrppyrq7iqqKevsJejrqSnpKS1wLCrrLS/w7rAurOnubW4sq6Vpa2vr6WLk5WhjXTBmn6XmYWPlpqMsZWampWTk5mZpaOVn5uWmqmdnKGgmYqMj5adYEqWnJqVmqWWVJawn6+cn6WUr66rpZqgpZSTmJiOnJ+mopm0qaqzvLy8qrCyx8C4paurrbGxo6GysrSkcG1mXFpOUEtFUFBQUTtISklHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomThZ+HhJ2Xjp2hmqOktci0qca6wsPHysjIzM3Gvruzrrm4wcHNtce6wbi1urCvr7O0pqObqrS0qqimrqyapK2lpKesur+oq7a3vsG/vrmzssSxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZycl5Wbn6GpnqigmpqqmaGnnpiQjZGdg252kqKalZ2inpCusqKrlaiql6qto6OfpaiSkpmciJScop6Xsaepq7q2vrOyrb65t6Cjp6ilp5ycrampjGJlYF9RS01HSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlZyhn7uvmZSfi5Orm5GSk4mrjYein4ykrZSjo7bGvbTBusLCx8jFws3Iwb25sq+5tMDCyrXFscG8tLqqqK2tsKKjmKq0u6appquqnaivp6Oqqr68p628tLi9x7y3tbfBsb3As6m1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZueppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrq52dpKOokZWVoIOPnp6blamkoaG0tLq1rai1srOenKKlmpeVmaqhnndgXF9dSkhGR01RSU1FRkdCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfBwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqq62goJqrqsSipairpp6rr6yiqai/t6atvrG4tse2tbm4v7K/wbe1s7SvvqOXo5aUnJSuoJGioqWjo5+QvaSpnairnZ2gm6afvaKYo5+iqauhnZeNlZ6TnoePhY2TnqShnbWsppyWsqeZr6efmqmeoI2ZlZ+EjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRoYllhXU9JR0pOTEhFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM8Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJXTKKao5yexayhn6yena6gk6OflqWgpqmrl7exo6qztcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqsnZ2epaTBpaCqrZ+kqa2voqanvbWlsby5t7bDsrO3ub+yxMC4uK6ztbWjnaWVkpShrqCZop2pqKujmsKtqZ6srZubnpmmob2inaWYq6uspqGZjZmfkp+Jj1d/lp+moaC4qqeTmLWjn7KhoJuulp6OmZSdgo6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYWRZY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GZnsOopaK0opyyqJOrpKCkn62prJ28saistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwq2brLGbqqKusKmkp722pre7va+3w62zssLAssezurestLatqqKmlpaVpKyin5+aqKuwr6+7sqagqaiZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2ao5+ns6amjZi0m6Oump6brZCek5eUmoCSoZaOjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2FlW2dlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLS0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8S0t66strmlmauxq6qXn6aXrbu0m6iwm62frrSyp6q5sqe6s7eyucCqt7HDvbTGp76vrbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6OkppausrKnq6ahnpuam5aYqJ+gmKKer7Kipo2Xrpmlq5eZnqSRm42Tl5qFlp+UjI+cnpSLqamqoaegmZ6VjI6ZkIGFlYmUn3hjaF1rak1QTU5UPUNBTkM6OklANzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaGmv6aor6+hqbSrnbmwq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkaq5qaCnsJ2qoK+0s6qptratu6yzs7q3rLiww7q+v6bDq7C3r6mrq6eemJmroqKgkZihsa+zq7C5mpypoJmWkpemobeppaOisLG0q7Koq5+boKCbnqWdopedo7Owmp+Qk6WaoKialKKelZiJlJiTlpedlIiQm5mUjqiopp+jm5ebk4eOmYt9jJaFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hq7Cro7G4qaW1s6ygrbW8rrO4vLq9trbAwr/IxLnEwcDAuMS9wLevtqert7G7vr+0qa6xtp6Xq62orZenqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC0scG6xbervK+xuKytqqOxpp+lqqCkl5CZoLOqs6qqs5qdp5ualY6gpqS0rqeirK2usaezrbKqpJyfqKSelaGZm6i1qZeZkpKfmZ6gnpCrnpeXhZWXi52ZnJSKjZaXmpempaKgnZaVl5OAj5SFe46Sg4yWZWxyZ3BxX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqgpKy2pK2ppa+utqqvtbqnprC3xbext77BwrS0usW+zMW5wsC5vrnDt8C5srWsqrq2urm+tKqtsbWYmKesqqubq6uOq72dq66xo6ugsK2zrq62srm3qq6usqi1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWWm5qyo62gpq+XoaSampKOo6Wns6mhprKsqralrrG1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUq5+bkoCTmIydnJmWkYqUk56apaKhoJiWkZOVeouPhXuMioOLkmtueG11e2BFYWpZSUhZWj17SkZENkFiVGlbTVxgSlxdWlJTUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKyzt8q6tLq6v760s7fDwMzIvMO8tr2/v7e/vLG9rqe6uLe2wrarrbG3lJemrquno7CqlK+7pKyxsqeoo7G0sLGxtbG4s6muq7Knt6+1tMPFtqm1tqywramno7afoKexoKSUnJqVsZ6nnKCqjqmjnpuWmKampbinorG0rKeyp62wtqykmaCsqJucnZuUqriclI6Oi5mcopeQmKWhnZSCkpaPnJyYlpWIl5CXmqeco6CSlpCQlXaEkId7hYGEjIttcXd1e35cS2VsXEtOY1w+YntHSThHZ1dmW0xeYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSVdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0ORmaWupa2uq6elsbKzqrext6CrtbnJuK7Bu8K3srG1wsLOxcDBvbS8v7+6v7yyxKipuLC2tr+8rquzspyfp7GtpqWvpZ2ytayrsbGtqai0uqy0srWstK2qrKisqbitsbDHv7ilubCpra2lqK2wpqSkr6SpnJ6cm6+Zo6Oio5GsnqOgoKKqpqa5pay1taSqq6isr7auo52jqaqboJqakqS0mo+JjYeRoqCVjZSdoJORhI6Tkp2amJWUh5eTlZmnm5+ejJKRjpB3fo2FfXx8h4qJcXRyfn19XFNkb15OWWZcRkSWW0c7Tm1YYltNYGJOVldWV1RYZ15RUkxjWltUS0dPVFNOR0lXU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0sbS1srKhq628zLquwLvHsbSstMLC0cXGvsCyvcDCvL+3vMSnrLess7i7wLCrsa2go6etqqiksKOqsaqvrLCvsK+rs7untrGyqbKpq6alo626rKqxwrm1rLqoqaitqqixpaqko66qqKKfnKOslaWemJ6ZrJ2ip6mirKajray4sbKgqaKgq6+xrJ2fp6ipmaOYmY+gp5iGhI+Ki56gj4uMlpyPjoaHkJSfnZaYlYaWk5OXpJucnIuSkI2Jfn6HhXx3foeFhnRzcYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNbTlVWVVdRXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwtq24ta6rpaqqvcm8sb23wq+xrLPEw87Ow76/s8DCw7rAs8jErK63rbK4wL6zra6rpKeqsKmnqLGmtK6qsK6tsbC0rbS7pLizrKyup6ugop6vt6qqrbq2pba1o6qnrKyqraGpp6aysqSmpqGhrJaqoZWaoKaepKKqpa2in6ext62uo6Wim6qrramcoaWkpJigmpaPmJ2TgoOQiYWcoIyKjoyZjpCLg4yXo5uSkJuMk5KRlKKZm5mKjouKfIaAgYN6dICDgX50d4yjiHhqXmBuZ1dlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbWrtrGrpayqqbzAwLi4s7u1pbKwxMnL0b/Bu7i/v8G5wbrBxK6xtbGzusC+s7GuraurqLaqpq6vqrmwqLGxr7Kttqq3tqe0t6yspKmrnKOes7OoqKS0tKC2raCpqKupq6egq6ypubapqqqqoqmgrJySqaGdoKSipqOqnpynta6opqqio5ilpqeqnKKko5+ZmaCRjo+Zjn+HjIeFnp6HhIqKjo2QjYOGlKKajoyakZKRj5KflpiWi4qDf3SGgX9/eXSDf3p4f4GInY9vcWdncXhcYHOIa09emVZIbXhVZFZRYlBNVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmo2T0Q7lo6woaarrpqspa2us7Svq6Wwqqm6vrvAsK64raG2r8nHyNHAvry6vMK9usPBv7+usrKxtby7wrGxs6uzqKS1qaWts7K5sKOut7Kvsrmrua+prbasqp6prJ+ioLWtqKGfr7KitKqeqKeqo6uhoqytqL2vrK6toqiooKyZkK+hmKKgqKeeqJuZqrCpo5+toqGToqOjp5iaqaWYl5mdj4qHlYh9jYaEg6OXhYKCi4aOjZGEhJOgloeQnJCTkI2RnJSXj4qGhXh0gX98dXh5gHt0c3ppgYajdWleZWuBdWaIi31SWHBdSnhzU2RTUV5NTVJZZk5MVllkWEZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLC9LZzo0OF89YWQ/RjFDUFtbK0hOOVVBNJGPsqCkpqykp6SsprSysaqksaiquL7Bu6+nuaqmrrDJx8jRw7y/vri+v7zJvMG4sLC1sbq7uMCys7utuK2itKenrLK2ubOoqLy1rbW8sL2mrKy1q62cqa+jn6SrqqecnqqypLOomqqnqaSpnqOpp6m9q7Svrp2ppKCunJuyo5WknKWln6SbmqmrpZ6bqqGbkpuhpZ2Yl6mokpiak5CKgo+Ffo+Cf4edj4Z/foyHkI6QhH+Tm5OFk6GMlJKLkZqRlYaJfn9ye3l9fGh3fHp1cHB9aIV4hIhkYWhjcoV5bGZ4XV1VQVZ6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0vRmpJMTRYPWZjQko3R1NgVSo9O0RYPyqPlLGZn6CppaShq6S3srKmqbGnrLjBvbWwo7msqKixw8nJzcG2vb+1t7+5yLbDtbSytbG9uLq+tq25tr+tobOnqquwtbi1q5+9vKmyv7O7oK+ztamsn66wo5ykqKqinpyksKawoJ+rqaiiqpykqKCtu6eusK6gq6Okrp6eraaXn5uho5yfnJqjqqOamqSklZeUn6KWm5emq4uekZCRjIKKgYCPgHuZlI2JfH+Lho+OjIqEkpiRhpSjiZKSh5CZj5OAiHx5bH12eHhje3pxcHFyeGiAdGqDZ2RoYW5zjWxhaW9fbz9beGxVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWTEzUz1lX0RMNktXZU8qPDNPWT0jk5msmZ+Yp6Sin6ejuK+uo6+wqqu4wrqzrZ+4r6uotLvIy8i/t8K+r7S9t8S3w7GvurKzwLW7vrepubi9q6S0qKmqsK65saqbu72ksL+1taGutrWmp6exs6CepKanoaWZn6yoqZ6gqq+noaeYpKigsLifpLGvoKuhrKScpqepmpqcn6OVnZ2anqmml5ufqJKYk5iek5mWoamQmomOkId9h3+Cjn18oIyMiHiDi4WJjIyFiJKajomVnoiQlIKLloyRfIV7c3B9cXN0YHl4aW9xcG9pfnFjemxpZWNgZoV+X1pzanFLTH5oWFpNUExKSFBSUElOXF9uU0RYW1JnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTI8ZmQyNE0/ZV1GTz1SWmhIKj4vWVg1KJedppmdlq2goKGkobersaSztKqoucW1sq6gt6yurbC1xsjBt7/BubC0vLe/u7+vq72wtL+xvcO5qbu6t6eotaioq7Cts7Cnmr63pa28ta+esLewqKWnsLKboKSgpKShl5yvpqGeoqevoqCik6Sko7ewoaaxq56so6+YnKqlqZ6Ym56lk5udmp2mqpqcnKWWlZeVnY6Ul6OooZCJipCGeoV+hIp6jpeKjYZ4gYeEiIuOhY2TmI2OlpiKjpV+hpeLj3mAe3Byd29vdF95d2RsbGtpaINtZXJqa2VoXGNzf19abHZpWkh9XVtYT09KSEhSVUYyOV5ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFREVV1oRS47MmBULDKWo6GXlZypnaWhoqC3qq+gurmmrL3Fs7CuorWvrK6vtMTEvbO/urews7m4uri6rq7As7S4r7/BuKy9urWmorOrqKmzq66yo5zCtqaptrSpnrK7qaamqbCsmaKnnKSmlJihsqWZnqSpqZyioJOloKS5qKSnrqedpaGok5+poqGgmZudoJKbnJegoqubm5mhlZKVlpqNlJOjp6SPiIqPhnmEfIWFfJyNiYqGeICDh4iIkYWVk5KMkJWUjY2Te4OXjop3fntsdHJsbHNheHVoaGpnZW+EZ2hoZGZpamBoYmlmWmV6Y2FSc1RbW1NMSUdJT1NAISlpXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhjTicynqSjko6kppyenp2jta2nqrq3qKzDwbewrKK0raevr7fAwL2xwbexrrK3tri3tqyqvbOvsrG9wLeuvLyxpZ+2rKaltKmrrqCfw6ypprCzq6y0up2oqquxpZidqp6npZGZpq2imZ6kqaGbop2XoJ2ntqWvqq6hoZ6doZWgpp+ioJmcmpySmp6Vpp6to5iXnpWUjpSYjI+YmqigkYiJioh5hXeCgoKch4uCiXt+hIiGhZCElpWPj4+RkZGMknuDlY2Gc359Znhva2psZ3Vza2NnZGN0f2JkZWZlaWpjaXBZXlhdbGRhTWhXWmBWSUdIS01SWD45X2xpR0JVU1xbSUlHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOzNBZUglNZukoJGMrqCZmKCWpbSxorG+t6Gxxry5sLGjtqurrqm5vby7rcCyr66ttq+zuLOoq7myr620tru2r7i9raaetaugobGlq6+fpcOgsqOusa+3rbWdra+srqOZnKeqpZ+Vm6iln5mlo6mdmqCclJudrbCmuaiuo6Kamp6ZnqOapJ2XnpiblJqhkqiVrKmblJyckoyVmY6UlJmpp42NiomPe4J0goGKmIWHfImIhISKjIiShZOckpKPkJGWjpB/gI2Ngm+Bf2Z5bWhramdxcmtcaGRicoBgZGdqbWxnamhmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopuPjrGdm5OhmqmysJ+4wLahtMK8vbmxpbavqa6lt7m3uKy7r62qq7eqtLmupbO2sq+psba2sbK1uqipn7apnp+qoqqtnKrBma6krrC2taysnrGtr6qjm5yjrKiclZyno52aqaOllpqgnZGbo6uqqbufp6SgmJqanqGPa6KWmJxxgpacpIB2kauonpaWoJGJl5mAl4ugj3mGk4yDbWl+d4NwbIaKhn2Ei4ZvXmNgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpc25OUGpkZnGDZl5kZm5saV5eX4mQhYdoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wxm5yToJuqraujvcWvqbfDuL28rae2sKarpLi0srOxua2qp620prC1o6i4t7app6y2s660rbOiqZ+0q56ipJynqJqtvJWnpa+zt62tpKiuqqumoZ6coKinnJehpqWbm6ennZOfoJmQnqeqo7Wwo6OjnZaYmJejiKGPkpqHoYeUnqF/pX+nq56Tk5yTiYRyeIyOhIihdoiMaZeIZn1zeKBviIeEfo18f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUVSVldRUVJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYTcvKIyml4Scq5yZmZ2fq6qoqr/Dr7K6vbfAvqqkt6+qrKazta6vs7arqaWxraW1s5yttbe1pqeos7Gtsqivn6qhs6mgpKSaoqSdr7aVpKamtrymrKepqqynpqKgmZ+mo5mZpqOkmJykqZaUopyUk6KlpqG3pKSgpJiVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TBm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhrWLGub2VpvJK8bmh6bXKP2H5TamO2sn+AcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGOppOBpqmel52dpa2yqbHCvbK1wLW3vsKrprOsrKmor7Sqr7azqKemtaanuK6ds7K2q6akp7KurbGmqp6npLKkoqKfl5ygn7CtlZ6jn7S5oqmooa2upKKem5qhqJ+Ym6ihn5iep6eRnKeblJ2hpqKgsKOfoKOWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne7fGuhj3axX2q0W6WAZZyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbaduW4SgRWlnh5ZFdZxgfmd7o6eCWV+Lq2mAlHh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqKVgqympZ+jpKqxt620vb6wt8WyuLrCp6mvq66pqbGupLC6sKSkrrOjqbmpnrOzsaSloKqtsKyvpqifo6KxnaSdmJWYm52up5eboZ+0sqGqm6GtraCempegoqmdmZ6koZyZoaekkJ2jmpegn6uepqegm6ChlpWRlpGahrWbtXiFqZm1mXeHs5u3f5OWl6mVfmuBpnqBhYiSlJJ3q2dqsVuse46HlHSJcI+GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVKThl5QqW1jcX2GgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJaflIizpqairqmns6yqu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7Wto6u1pKWzs6ejop2nqrKosKilnqCfr5afmZWWl5ifrqOamqSotK6hqY+pqKmbnpWYoKWpmp+do5+coKKlo5WbnpianaKqnKWam5uioJeTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYejgqWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FujoR0kLuFb5RPr6fFilGgemNgqmJzcodsl4dfU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE4MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afr7aom6i6rqKvsaCztLCgpJ6ep6mwqbSppZydnquXmZeXl5aXoquempeorbCoo5+OrKKnlp6XnKGmopiioaKhmqKip5ueoJ6VmZqmoJynlZubn6GZkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gd3OGYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltbSisrKjoKywpJimuq6ksbCctLipoKadoaqlsqisqqWanZqpnpaVmJmTk6OpoJeTpquwpaKWkqyfpZKUoZylp6CVm6anoZqjn62aoJ6ekJabop6cpZSclpqin5WYlpKbhax7d6h2o4+Kh6lvrYqDqIOZmaKKkpmLon6SmImuhX+Cs1xys1KufoOCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0JUb15oYEVQbF9wbVZVTS9lY2lTWVE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJi0wa2osqeqsrq4tLi/uriztr21pbi0oLWtn6Cpq5+Vp7asqLCxq620pJupoKCoorWnpqqjmZ6VpaGUlJyZk5ajppuTkKesr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoJiYm5aXoqCUmJGnnYapfX2leaGPj4OqcK2MgqeGlqChipeXiKOBkIeUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmRze4FrmIdxXaxaiaCOa25lT0pDoVxaTXRdY2ZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKq7taCxpZ6lp6eek6qxqa+qtayqrqGYoaCmpKS6oqOroZeckaKglZSfmpSZn6CQjYypsK+mnZeap6afjZKkmKirqJSXqqifn6CjraOgnaGNlKGYn6CSnJeclZ6hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh452uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uW6dPYlNrZWJtWWJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzwwMDAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI5pJqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqq6Gcp6SinZKrqqe1o7Korqqhl5yooKSruZ2jrZyWmY+lo5aNnaGcmZ2fkZOVq7avp5mUm6ypl4yTppqlraORl6uyo6CeqKuwmaCij5iil5+blpuXoZOdqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHBtjaR0vV13fVthebxqW1ZbaXleaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjk3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdAOaeanqK8opexw7Ctqaqssae4r7bEsbuyrruwrsGyrKWjnqShnJuRqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpaCTjZyjnpiempCWkq+5sKuVl6Oop5SRlqWdpK2ekaCoq6CcoKmksp6jpY6mopWhmZyXlaSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yae4GyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXqzo3R2l3V0sHWYnmaGaY22dHJwd7aMXoB6fYlng3lteWKLrHB1hX9YW6dqRGVaVGZgY11iUWdmcW11Qk1QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JWOCpPXV09KztWVic9OzynnqGhv6WWs8O0rKqnrKupu66wxq+1tK+4p7W4ramjoqafoJ2ZlKykraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKKTnZeSmJSytbatmJ6kpKKLkpKmnKWrnJappaadm6KppqajqaGSrZ+Xo56Xl5ieno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukoNxlIZfcmpaXpqJYWSHjpVrYICVY22cdmKUa3+alZRlXmBjcZuKaHKMfYaVZ2p+cXR5fXxiW3d0gWhQXG6EfXuLalhseYJySUpvhXBNdE1FV11mYUxbWGdjXk9bbXZqclJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVLT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NgVjQpUF5MKDM+W08nPzI+qKCoocGjmrS6tqOspa6nqLWyrMissLOstaO+sbKmoKOpnaObmpmsp66kpbWqpZuYlaKbpq2pv6ipppaUm5WgmpOYpamnkZ6Qj5icsLK/rJunnqeiiZORqpuopJubrKCjmpujp6yin6qimrCblaaflpSdn52XsKWZoqiZnJGenKOkmaejmpyam5qQloJobnxxdpGXlJGEibSpjYaYlY6KjJeXh5SVioOSk5GJjZGUmZOYl5qgopublKCdjoJ6pIVranyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNccGhNWVllal9XWXB6bm5mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlMxMFReOis9OF1LLDwtQLKgs6G/oqSxsregqaWyp6WwtarJq62xprWmwKi0oJ6lpZyklpWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiTlKKfnqKnkpGZqKeyw6+aq52rno+Wlqmeq5ydoK2YoZudoqWvpqGkqJ+tmJemnZqaoJ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNjpetj3uVm4KSgYmpqIWBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmpORnY1+jWais66FiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH95dYOIgmt0Y3lmYGlkY2Rmalhre3BqalxSTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVF1RMDVNWzE3RTRcRzU8LECzoLmvvq2rrrKyoKqmsq2irLOwxbCqrKOzr72ktJygp6KhnZmXqKappqSms7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8i0oKqkq5aWmJqnnqmcoKSrlJ6fnqCqrqmmo6uirZufoKGapZ6cn52vpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jWxoa3qQo6trZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5hzbG56hI2GeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEc3aIiY+De2qFWF5rdGRdc4hpa3xxbGNdUU5XSWRYQEo0PkY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wpq6usL2xqaikrbCxn62XoKSeoZqZpqucrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZpZZ7payiqLPDuKWip6+fnpWeo5+knKSqqJKeoZ6gqq+qq6OqoKibpp+ooayVoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnoataHi5xLhxkqGje6aYmXOqgnzLwMC7cYuih4OffJWYiJ7AvYKWnZ6NncHBe4F6kYyawr99a6Wxb4yBb8p6f5t4kYOOgHZ5gX95cXp/h293hYyTeW12kmJmX3hjX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXlxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqamUo6+psK+tprK1r6umpqaxq5+rmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRoKGXnJ+dh6arpKutv8CxoaqvqpeSn56imaKkqqOToKGena2uqaymo6OmoKWlna6pkaSbqa2qnJ2qnKyilpillqGjmJx/zpR5eqWCeZWWm1+tj16Op4ChoHynlZt0q4OAr15kjal6p4eFoHSXkoizY4KrhqGOjbNqhK50fJaHuGGCrVmjzW6PdXvbe3+ZcX6IknV/ZXuHdnZrfYhufYWQkn5tgY5gcWtwZmBfeGRbcWhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLS1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqa20qqWyrKyspKymsKqgp5uappicorCfoJ+op6OmoZ+wrJuelqaurbGrqKyglJKboKWTj56ll56oo56upKuwqL/Gs6ipsa6Wk52dopegqaqflaGenZ2ur6eqqZunpqOhq5Kts5amo6uqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WEqIdxsHydcqx+oZ+BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4iTj6CAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yb4mKkZCDbZGPZW9zdW9gZm1kX25paW5mY1dUXGFaUlJDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PldKLT0nPjEpM1ZARiEcRzpDMS4rr9TGx7K0n52jjqOjoq2utq6osaepqqiuq6unoqOdmaKVn6arn6Kln6ioop+esKyYm5aop6+tqKepnpeVmqSikpShrZudpqOurKOstam5zbKtpq6sl5WcnaKZn66snZahmZ6fqbGpqambq6mjoqubr7GiqKyuppmmq6qqsaOTl6OlmpSShaRqpHWJeql0erJxgqWJmYxwiKCah6RfYFKrhH+ugpt1roKnhoafepiWhXtmgKOJpJmGgaN9qX6AlIeuXnyoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9ueHd3bmxmZWRxcGZ7aWNcV19pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCuqayjqKaqq6uppKagm6WfnaWnpqOcrJqiq6Gkn6+inpuTqqS2sK6gqZudlpWnpJGboaifoKacsKajqLGstsiytaqsqpWSnZ2imZ+ls52aoZScn6arq6OumqyooqGqorOtoqqzsqKbqqivr7ajk5akp5ibkXyqbJ6Eh3WreXywboKki4mglpWflYHSuLS4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOVqKmQkpuMfpuJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkj5Cekntwl5J+cHp0fHptXGZqcnFmgWleYVhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKdsrmsqqGlm6imqqypp6CmpZiqo5+uq52moKyan6mlnae1n6KXk6irtrKsm6acoJaRpq2RmZyno6Cqp66hoqapsLTCsrOqraiUiZidpZuio6+ll6GVmZylpauar52tqKaerKO3rKGxubCdm6+ns7SzpZWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpOEuHx8ebmCfszFwrZ4mqCQi59+mpaXinWel4qkmaSofrCFnISehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5Z7fZKRiXV5coR+cFtsbndyaoFuWmNfaG5iZF1LTFFUQUhHRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CboayztKafoJWlrq6uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbW5pJujnqOTkKKxmZ6cp6ahoq+unKOnorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOomq6hraWmmK+lvK2it7eunZ61srmys6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJpmaOclYmffJiZhoePcq6CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfYuMkot4fHiNgWxod2l4c25/dFxkZG5tZWhgSlpXWDxHR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZJzjIquv7+7u7Wel6ikrbahopmVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdpp2pkpWXrqCgnqeknKectZmfqaO2q8Kwqaupoo2Ej5yioaajlpmanJibmKWkppirp62ipZutp76slb6wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolpmArImEroWflKigopaFn4CZlYB7kn2rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBulZGnmYKUjZaLenmBln9qbH5ifXRuf3lgZmVxb2hnaENZYFs9SlMyVThCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RXV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+vqp+jnp2tmJ65oKKroK+qmq2hkKqppJaJmpCusaymn6ibrZiYj62ioZ6lopqlnK2Yn6imtqi/r6WppJ+MgI6bmqCmnpKUmZqUmpqlo6OZqKuro6Sfqai+pJfDrKqjoqyzuqyvp6G0sKmrmXavfpCLnIWHfbqtiphksIxlla19oI+DppWagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goGxbGdumZeMiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOqJqKl5CVlnp4jZx9ZHN9YYN4c4B8YWlmcG1mZWVPVWNbQVRePUkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5mgn52zs6meop+dtJigs6iqq56wrZ6rm5WuqaKOiJuOr6yopqOoma6TmY+pmqGepZ+ao6OlmZ+iqbKovK+lqJ6dj3yLm5WhoJmQkZqbkZmXqJ6hmKitp6Wlo6Wpu5+gxqelqaKrtLatrqegva6trZaBqZKjr46bgIakl5iPgYC4w7qDjpyThaeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWUk4Oevb6EaqOBb6uEbp1/erKxx4Nqq7C9rXh3or67dICVjaacj5qQlZx5gZCaeWJ9emOMZ3iBe2BrZWtqYlBiW1NqXEBUYUJNKTw6NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mpbOmnYyYpb+qt7Goob+mprGbnrGcuaiera+lp5WUr6yXjIOaka+mo6yhpZyqoZiLo5KmnqecmqGoopmeoKutqbmuqKSbl5N7h5mRppuTj5GYmI+Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqobyosLCadHWqpLeGZYmfcGesj4qPbW93pJCZn4F1rpmVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlxaWeJlpWYcWhphYZncIZkXoljanBZXWd+d6ZgYnGOkm9mZICNko6il5eYkJWefIeOlHVlhndojGp4fnlkbGNmbGJLZFhKa1k6UGVFUSdLOSsjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqrq5srOqqaKunqSyqZiSvbHDyL21qZ7Aq6yjoKarn7qjpK2srKaOlq2qj4yFlZetn6Wqop+jo6CRjKWTp5momZajqqCWnKWlp6+6q6yam5OSe4SXjaWXjZGQmJSNmJWnlJ6XqKKasKaeoq26oLHCqKS0pqyxsquurKi5pK+4loqhqKW2nYmWopiGqZqQlJ2TqrOZm6KroLKWoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYaBpJqXlY2Lk5KKj4aEfmeLgHSDdnSIjHGnbXyVkZSTgYGPj4+OnZSglZeVoIKHk4xwaI92b4p3dnx6aWxkZG9jVWBZQGlaR2JgTlkqRT0rJiI3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1uK+uorCkrZ+gtbGRjqvFvMS6t6qhpZ2bpp2wqKO2p52ptKankZiso4uIiY+cp5aspKGap56ek5Wjl6maqJmUp6GkkJqnmaG1uqirmJqQjXyBlIyhlIqUkZWQj5OXpY+emaifnLajnaetuKiwwq6juKevr7Ctqqq0uqKvvZmSpqOmtqOSnaaejamfjZKfo6yvmqGisKivl6SgnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlZSFkoyQjJSLgX5mjId1h3Z5iINznGqHkZSUkYp9jJaSkpiToZKclaCDhpeGeXGVcniJf3F7fmpuZF9waWBbYFltYlBgZFBaOkdGRT0zPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlxeXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkI+cpbO6rquroaKZep2isKSlsamWm7imo5SZqZyOhoqJm6KQrp6klqigoZKXmZuui6qWj6iZqIyYqI+eubakpZibjYl5gZOMmpOKlZGUkI2SlqKMnZ6onp+4pH+EsLajsbB0pL+ksqB4eqCrs7yVdq6kn4qAqn5kXGJ2n46knYOXfm6Ts5yjp62romWeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkYWdmpCVgpKHjo6SiYV4a5CHdodxfIaBgGFpiIuVk4tbdpWRZ2iPjnJ6pJiYZXiYhoF3l2mDiYJueX9rcGVfdW9ra2hcZmNiYm9SWz5NTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMVFVVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclaajobCxrKuppamto6etpJKWq7WvsaWaqqarl3OLnK+fqKunk5a4oKCPnKOdkX6IiJqejauao5Wnop6Ol5KehXWtj4immqiRlqOIm7q0qKCZmIuJdXaTjpaTipORkJSMj5OgjpqfppmcspaAjJy1nrWNko+9qKF+p6J6o6+4gY6Op5+Ei4WPsamvjImWopp5gYushpydoqepqIeVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpjeYeQhI6PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg5+bhph+kYmBgphqjYyEanh7cXBnZHduaWxqW2VqaWVyW15IU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+PkBESUBJRUpLR1JYWlhbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK7GvbChlqeotZ6Pg5yrnKeioI2Qvp6ZjZ+aoJB9hY6Zl4irnaKVoKGSjZSJhoCRp42Gopyjk5adhp+5sqedmpOPhXB1kIqVkIqUj4+bi4+Rn5GWn6SWnqyIn7SJtJqui8qHq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYaAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoKfmIGZgIqLg4iYb42ShGd3dHt2Z2h1cGdna15ibmxmbFhoR1xRTDJFNDZNYGM2JjQ8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqummpSgo6Sqopalqbajr3+gp5ylnp2JlL2Zk42gkZ2QeYOWlpGHq5mbmpqhhY+Md5ucj5+QiJ6km5WYl4aiuK2lmZuNjX9ibZCLk5CNj4yMl4uQkZ+Pk5+hmaGofqGnh62eoJauj5+dnZGGgaCNq6+HpI2qmoyafqN2gJiTa4GrdU2reIeNnZGbqKeBqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZsXXyXbl9TcYRcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+DnWdkn2xabIh6ZVlfgn5hV1BvdmVudHJqam9eam9sa2hXaU9dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqK2vKuuopmXoKGlrKygna61o6iRoJ+gppyZjpi0mZCLnoyVi3WBlJGNiqaWlZeenn6ThYaspIebkIqYqJeZmpGHpbCmopWZiImAaW6Ih4uOjomLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHOTh5Z7nox5bYebjJmQm6iaj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbeMcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg36jXp2Zs5Zve5ees3RyW56ygmlib3R1cWhuWWtsc3JlXGleYktEPUQ1UUFZcTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI6luLWuraCbopyjo6Wtm5qxrayTl6CYoKSampSeq5uLiJJ4i4VwgJaNio+gkJOUnJZ9kYmOqKGHmI+KkaKTm5qMi6iopJ6PloeEfmt7hn59j42Di5CQiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJynkZeoq3+ujH16oJl6o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG5xeXdqaFtwanl5Yl9mWGJBUEVON1ZCUm00SlpaX05aREAxNTE7OzdIPzpDR1Q/WVJZXT5EYl1WYFFhZH1pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppycp5+erpqdsKirnZeimaGfmZaWoKOZhomNaYiAcXuXiIuWloSSlZeOeYqElqOdiZSPhYudkZybiY+oo6Cai5GKgIBpgYZ4f5aMe4iNjoePlpp/k6KfoKKTmHJon4qgj4xwkoyCqYiZn6OpoKh9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTX97e4VjepdCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcH19bWRfa2l3fGRkYVJeVl1UVkBZRVFnRFJXW2JYX0lEPUI4QEI6SUU4TERXQVZRW1ZERmFcWmBLYG1+ckVDPFVfYlplalZnaGxuYmZmXmFhXF1eYWhiX2VkdmxeZWdmbGRlbGhoa2mTnYGxrpmEU1+hp7S6s7OpmqKLm6mcnKmToaukoaiPnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOVh3KAiZKgnHKRkICImJSfmoSOqJyalYqLinyDbIWFcYGhjHiFjYiHkpmVfJKkoJ+jiK6GfbWEj56de6aWeqmClp2Qi6Gefadod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTkHx6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqi8f3eDbX+/pqq0XptvfnGXb4FzonJdo2d0pmFopm2b05h7g5tud3mXa5t6dpdybKmlZ19leXB/hGpmZmNudnhoYGNTW2VRUWJJV0lUX1dTW2VqXGVRRUNLTEpLQkpEOFA/UE1XU1hPUlFgZWVpUmR4eXdJRkVjXWRZaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxomJt/sKxUXEt+qbCytbCzo5yYhZimoKCjjaSooJipiZmXmJOZk5Kgl46HhXtwfYRofY+Dk5qBd5GNjolwf4aPk5Jsl5N8iJCRo5WDjqqalJKKhYl5g3aHgG6Bn4Z3gJKGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphynoSirK6Jl4uAjKSNloOuopR2tba1yaFzlIqAn2Gel6lteZWHn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5urdYKabXR3l2maeXSYcVBFfLNeanZreIdmamdidHVxblZeVFloUFJoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc354e251iXt7VFBPbV1oW2tpUmpoaWxnbGZjZV9cXFxeaWJkaGt7X11kZ2NqZm9sZWlsZaKcia+nhWY/lKGzq6+vtaKikICXqKKipIylp52cpYKZl5aNl5CQm5KOiIN5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSg5epl4yRi4CJeoB9inhwkKGGeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOXcp92gImUlo+5bpCKomJ9maKViG5yaatqdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhzi5huoW9TiI9voF5kp1SLXVOYbW1za3GBbXBoa3hza29SWFdXZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV5dYGtiaml2dV1cY2hjampzbGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqWMoqGaoqKAlZiTjZqPi5eQjop7h3GAiGiLi3yXmnN0in2Qe2WDh5WKipWZgnyIhZamj4GirJCFkIqBin2AgI9zaY+lhH2GlI2ImKCOiJKqp56JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGk5acoHylenGolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm2fnpKVYX+ri6p2gH+Np593n32FpJWdoGmah3asZ56tjLZzd76MpJNZg6aNq2F1cnNve3RxYmp+bmhsU1ZbVWFhXWtNXVJdSV1sbXZgW3FZW2BaZ3Nlbm9yY3F0YHd7fnlyeYNzg36Be3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGJrYmxsem9cXGJpYmxqd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ6kiZqlnamdhIuaj4WckYWSjYyNdIZ6iINvjYR9lpN0dIZykoJtf4ySh4aUj317gYSXpI1/paWOgY2JhJR1goeSb2yKqICCi5SOiZyfiY2Tq6OgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCZn6CDen2JbIyFW3l5cnlxaG5+kolxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW96b26HbYSGX3dpeI5mgYKGjqqcfnR9l2qJiG+AdnyFdm1sZ4xzeHuXd4Rbalh4j2htd3Jxb3d4b11shm5pZ1ZaYFdcZGtkVWFVXlFfcHd5a2p2ZWpqanV8cXJ0c2FvdWJze4F4dXmCdX+Af4B4i4WDfXttf2xkeW5eV25naHVreGppaWRcYFpjamVscHVuWltia2RsbHltaGxvYY6Vuaimi6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHKDcJWFe32Si4aGkIV4foCGmKKMe6ehi4WPj4SVgoaOl3dyhKmFjZKckIienoiMm6igoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMnJuejnOVi4hxdGuCdnOAWXJuhpCBfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGg2l5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg3CFjXlvZWZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYprbGJZWV5aWWtxW15gWV5dZnN9e3Nvc2Nra2l7fHF7d3RkbXRobHx+dXl8e3p5f4B/b4aKhHt9c355c39pVFxxaWx1b3Vna2dkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKqwoZCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpZV/e5eEfJKZiIiGhopyfYCLdoWLgYSWinFvgHKYhoR+koSDhoqBeoCDipqej4KmoId4jpeIlYuLnZeEg3qsgZCXmZSKnp2HiKGroKKio4yIk5uco5mWqqGnpqCSm4iXj3x5j46EqH5/kpGSk5ywpZqUnZCNspOYhKaMjJWbn4mQm4KJkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi5+LhpV/foyBgHZxdIaFgHiIh4qRppGEho6Ig42QjHyHiomPgXZrgYN7eZlpcmhgc4pwfXp3dm93dIFdXm+HaG5fX1pcXVNncVVjW1thbGh0e3xybnBka2pof3tteH9xaW9wbGaBe3KBgHeAfX+Eem2CjIZ8enh8fnqDeE5kdmtzbXB6ZGtlYmJgW3RmcGZycWxVXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJikoJ17f5mqjZ6NhZ+cip6WfHmUgnuOmYmGhISGbXiBgHKAh36Ik4Rta355l4aEg5B+gIaEhn2Hg42anJKHqp6DcoqPhZKSi52RfY16qYONkpeVjpyWhoabp6Cimp2Gg5KamZmQmqagpp2dkJeBkot3fYiOhaV7fI+QkYaYqqGdk5yPjaqOkoCejImTmp6Cjpd+h46Cb3iFcXRgf4OPhnSLl4CDj4KGhH6FhJRueXV1k6KLjYabhYWOdICKfX1yc3uJhHt5jI6Ek6ePhoSPgoOKiop2hYeIi3xua31/e21oa2xnXnl+Z3x7dnR1dXt3XGBwfW51YGNaXF5RZm1TZVpdYWtpdnl+cGtsZGtpZ4CAbHOAbGx0b3huhHluhoB2goB9hXZxgo2Ifnt6fH97gopgaXtrdWhpgmRqY2BpW2N1aG9idW1sVGJxeWVwenpyZWptbYuKn7iaoaSfk5KWl4uan56denedpZCbiYaklIuYmXl6jYV8iZGDjIKBgm17f3hygIV9ipB8a2h8gJeIgYiOfH6GhId8j4GPmpuRiKecf3CLiouSh6ChioWMfKeRh4+Sl5OWkneNo6Ghnpaaf4GQmpmTjJujoaSal5Gbf46FeYCEj4ehgH6MjY98l6SgoJKZkI+mjZCCm5GJkpebfpKSfoeOgXV0gnB2YH2AjYVxipV8iIxyjX6ChYWOaHhyeYyZkpCAmH6Ii3KCh3x9cXp8jIV6e5KNg5alk4uGkXyFhoeFdYKDiIh6ZXF6f3l6cGxqZl59cmh8dXVzfHKAal5gdHZweGRjWV5eUmtoVGRYXmFnanZ4gXFma2NsaGV/gGptfmhvcWt9d4Z6a4uBcoGBfYF0doKNhn58en+BfX+PanKDbnNpYYdobGJfcVV0b21uYHhobVdqdHZidXp7cWJqb3qJjZ+ykqWlnY6QmI+GnaCanHx1o6CNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfIWXioKKjXh9gIyDeZaAlZeVjJagmn1vi4GQk4amm4eMiYOllYSSipWXkpF2kZ6hoZiUmHp/jpiXjpabnaSemZOUnHqQhoN4hZeNnn6Bio6Mc5einqGSmI6PooyMg5aYg5KWmX6YjXyIjYF2cX1temSAfIqFcIaTf5CCbIeCgX+JhGV1b3yHk5iNfZR4jIl8gId9fHKAeYqHeYWRiouYopaChIx3iISDgnZ7gYmFdWB3d310fXdma2RgfmlqdnN0dH1xfGNjYXNudXNtYVlgXltsZFJiV19gaGt1eYZwY2pjbWZofINsaHRobG9of3yCeG2QhnGAgoJ/dHyDjIF/fnqCg358kG11iXR0bWWKbGphY3VWg2lxbmB4ZmxianZwZnl7eXFgcmyGhZCdrpimqJ6OjZeHhqCTl5h8d6mciph5l5yLi5iQeXyAi318g3uAgoB4c3h6c32AhH+Ii4BkXnyKlYd+hId0fX6Kf32YhJaTloyjoZd+cod7k5GKp4+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2SlImdnZ6nmJiNlZd0jo+KbIaYkJl6h4iQiW+XnZqjk5WKjZ+MhoKSnH+SkpWGmYh7iomBenF5anVse36Lfm2FkYKUd3CCg31+i4Bkcmp8gZeYhX+OdJGJg3mHfnZ4gX6HgX2EjoWNlKSQeYWDdImHfYBzdICHg21henR6cXxvYW5jZHthbm92cnd3c3RidmBvbHVub11bXl1eal5PXVdiYWhtc3qJa19qZWpjaHeIbWZsaGptaIB8endukIdzgIOEfXSBhol6gn16gYR9fY5yeYt5eG5sh2toX2lyY4docW9mdmdtbGF6aGp8enhwYXdti4GZmqqgpKmdioqRhoqeipWXfXatmIyWfZ6TkZaTiHd+e4p8e4B2d3+AcHRzem+FfYGAin58YFx+j5GGf4OEc3qAhnqPkYeRkZuSpJuUgX2AfI2KkqSJjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQj5GJnpmioZeWiZeSb4qahWeGmo+UeomFkIpwlpqUoZKSiIuZjIKAkZ58ko+Si5mOe4qEh3RzdWtxbnV8i3RuhpCNkXF0gHuBgoh8ZXFteX6alH2FiXSRi4F0iXlvgX6Bh32FjYqFjZaojXuIfX6LhXd9cG+AhYNjaHdzdXB6Yl5wYWp0XnBqenh4bHJwZXldbWxzbXNYWl5fYWpaUFdYZGNncXF/h2ZdaWhmYmdxjm5kaWdlamiAend0bo6Fc4CBgnt1goiFeIR8d4OFeoCJd3+LfHtyeYNqa19waHR/a3FubXFnb2xle2Jtf3l2cWx3d4p/o5iiqKGnm4eMioGPnYaTnHSAqZSRjIagjJWTkH90e3aFeHh/cnN7hWtyb3ltiXaAgIZucVtZfpGNiICAgHZ1gH9/oIaPipGcl6CTl3eJfoCMiJyeio+GkpeVhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoZuYlYWYiGuGpINnhp2KkX+LhIuBd5OYkZ6RkIiJlY5/fo+XfJGNj42aknyKf4Jvdm9rbW9we4Vpc4OOl4pxd4B0goiCeWZ0b3aCmo98iYV6lZJ6d4l0cIl8h417i4eEiY+co4h8hHeCi4B4eG5qgIKAXXJycXBweFpecWFval5vaXx5cG1tam12YHBva3JtWVhhYWJuWFFTWWVmY3VwhIJiXWttZGJma5JtYGdmX2hrgXVycnCLgHR/goB4doCLgHmFf3eHhnaDhXyHjIB7dop/anFjfGKGfG9wbHRqaG9sdndfcX55e3R1dICCf6WVmq2fp5aFjYN/l5WDj591ip+TkoWKmoyVjYt6cnh0gnByhXNxdYhsb211bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCBkYGTkpebkZp4kXqDjJKkmpOOiZWYkoSGlpmMk4uJj4+InoWQinxzi4WIj4icmZ+blpSAlH9php2IaIehiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbWtrbHp+YXl+jpWBdnqBd4OMfHlndGx0h5aMf4iGe5SRcXqFcHiNe4uNe4l+g42Rnp6FfH14got9dnBpa4GCeF93b21rcXJVXnBicWBfbW55cGdwZmdzdWhwa2F3ZV1WZWBgclNQTlxlZF14cIh8X1xocmJiZWaSal9oZFtncH5wa3Fzin12fIWAdHV/jHl7hYB4iINzhoV+jIyDe3mVd2ZyaoNgh35vb2t6YGptdH90X3R9eIZ4dHOFfHmhkJqxnKaOg4p/g5qIgIuef4qZk46EiJeNjo6EdnR2c4Bwb4VzcHGDb2ppdm2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpJ3lJCYm4+Ye5NyhpCfoZOTkIqSm5SGfpaViI2NiJGNiJyAjoF4eox+iIyKnJudm5WTeY13aIqSiGyJpIWSiJeDhmOMkZiOlIqWjI2Ki3F7lIl7joiKkpGJeYV7fmx7ZXJvamt5eVuAeY+OgHp+fn+Gjnp6aHNrc4qPiYGFhX2WjGx+f2+BjX+NiH6Ee4OQlpqbi3x3eIOQeXNtZnB/g2xodG9naHNsU15vZXBZX2txeGZramJmeHNvcGNfd2BgVmtfXnZQTkxgZmNdeXGJdFxbZXZgYWVljmNhZmFYaXNzbmtxdot8dHqGgXV2fotzf4Z/e4l/comHgZGKiHx+mHVlc258ZYh/b3BsgFpsbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFd4iVf32JnIeFn5GOhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcYaLo5eJjpWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZuamJmOkHaLd2+Hiox+i6SFkomdhYVei5SXio6JjouKhIlse5eCfYiFiZCPhnaFfX1rfWN4dWlteHNXiHqRhoV6fn+AhYx+eWVzan+JjomCg4CMl4ZsgnZuiZGDkYV/gnqAkZaUmZB0dHiIjXV0cWd1eYJhc2xvYWh1ZlJgcWdrVV5tc3lgcmNfaH1xcm1aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR5XmBkZoRfY2NeWGpya25rcneLfXN3hIF3d3yIcYOEfX6Ie3SLiIiWhox+fpdyZ3VxeW2Me290cIFYcXp2eXFkd3mGjGl2gIlygJ2Imaico5KEfXCMlHh5i52EhaGNjnyVjH+Zh4R7c3dwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2iZqIjWmXj46clJKBiHGGiaCOhIuVio2YlHyNk4iDiY97kYuGkIJ/dniDhHKHgpKblpSYhox2h39xhoOKh5qig5SMnoOJYYOVjoaJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdndnJpc3drWox9koGFfICDgISKgnZidGyIgY+Kgn6Ak5F9boJseYeQh5OEfYF+gZKUkZeJbnJ6jIZ1bHFrcniAX3JoblxqdWBRZXJpZlNfb3Z0X29gXWiCcXJpV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVuanR3in5zc4F+enZ6h3OFg3x/h3d2ioaPmIKNgnuSdGt3dXl5k3VveHp9WHmFcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeXJzbm9kcn5pZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIdqmI2Im5GLhnpoiIuZhoGSkYaHmI18jY2BgYqNfJCMfoqFenV7gnpxhoCVmY6TlIKJdYSHd4SAi5Odn4aWj59+iGF/k4eEiISJjX9/gmZ9kYB+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+EiH9wX3NxhXyPjYJ8f5KJenGDZnuEi4eNhHyFfoGVj5GThG5weYx/dW1uamt6fWJnaWlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE9mZFxnbnGAbFpbY3JfXGNsd2RlXVxabGtibWpzdoZ/cW9/fHx0eIV4hYJ8gIh1eYmBkpZ8iYZ2iYFveHl7hJNvbnyBd16Df3SBbWl6c5RzZ3KIfXKSkYSan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fndxb2xqYXR8Z2JpdXpaX3h8em1xfmVjaGhXnY9ecXKWvMSEdnGUiJB+cpaLhpuSjIdyaomPloB7lIyBhJuMfIqGfXyJjH+UiHWKhnZ2fYFxdYaBnpSFlI+Dg3KAiHWFfIqZnZiHlI6dgIhmfZOCf4WDiYlygX1mfot7eX5/h4uOfGmAfIN2Zm94eHN2c2xqjYWKgYp/eIKAhYN/a15yeHp9jYqGfIKPgX5ygWl5hIiMhoV5hH2BmI2QjH1ubXuJfXd0bmhnfHZjW3BiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5aW15sY1pib3dkZ1xdYGxpY2xpc3aBg3Fufnx/dHWDeoOCfIKFdn6IgZaReIOKdIGIcnl4fo2Qb258gXFpgXl6fm1se3WVa2p3hHRslI6GnpigmYWIbn2Mdmp4mI5+gYqClZeJeY6Wb3pzcGxqZGBzemhgZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnJ7kIqQd32Ui4SZkYyFbmyGk5F6eZKGgYSYinyHf3h4iYqEloBwjIhxdH16aXmFg6WQhJONg39vf4N3hHmGnJmUi5OQlYWHcHuSgn2Cg4mDboF3aICFeHJ/f4OKhntlfX6EdWNwcn9oeHBvdZiNhoKKfHZ4gIR5gWtccX5ygYiFiX6GiXuJcoFucYWHj4WFc4R6gpmNjYR4bm9+hIB3emVoanxwX1h2WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manBgb05XaFE/WWZeWm9rZ3lxWlpZa2VZY3F5X2hcXmVtaGVraXF3f4dvbH9+gHVvgnuAgX6Df3aBhYiXinGCjXF7hnx5eYSTjHVqen9sb350f31vcnt7lG9ugX94ZpOLg6GZnJKChmeHg3BoepWIfX6EgZiJgXyNjGl4cmtsZl9hbnhtX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF4hYiOjXaDlox+ko2Mf21shY2Mdn2Pf4WClYh8gnhudoeEg5d3b4iFa3V7dGZ5goOni4KPi4R9boB0doR6h52RjJCSk4yKhn57koZ3f4SNg2x/cmiAfnhtfHuBioN3YnmEgXFkcWh+bXRxdIGbi4B/hX5zdX2Ac4FwW21/dXmLg4t7h4B8iHh6cWyJhJCEi3KCeoCXi4t/dG5rd4CAdXVcaWh3cFhWe1NacGRMW3JyZVtJcHhvXFpaWV11fnRoWWJbZ2VuY2lMV2ZRPV5lXF11ZV90cFpZVG9kWWRxeVpoXmBnbWdpbGlwd32ObGmChH55boB8fIF/gnp1goCNk4VwgItud36Ae3uIkol/aHt+anR7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgYBsjn5raH6NjHp+f4OUgX59iohrdXFnaGNbYmdybmBhbHNhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ1hZaFc4+KiXZwbIWDh3V5iXiJfJOHen5zZ3aJfn6Yb3GGfmh2eW1leYiEpIeAh42Jfm5+dX+BfYyZiIKUkpmIioSJfI+IcHt9hHtofmxqgHt6aXp2goeAcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR/bVhvgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4mIem5uam6CgnVuXWdlc3FRWnpOXG9cT1xzcGRVS3N4aVdZWVphcYB0YF1dYGZkaGlmTlpoTkBhZFtgdWFcdG1YV1N0YVpkb3JXal5iaGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuHb3F3hH97iY2Pg2p+e253eXeKd314gIKHf4N+fnpthYyImKONhIN7dox5a2yEiJB4fXuBkX9/foqDcHJwY2ZeWWdfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDcpJ8eIaTgnORjIdycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZmd3VjanyDh56Bf3+Oj31yf3OEeYCSkYN4lo6VjoeCiHuIiGt4eX51Z3pobH95c2l6doCDfWhgd4d9amt0Z3uAaXaAi5CUfnp9fnB7dnt0fmJWd35zc4qEgn2DcYeKd3hxcISCjX9+eX59do6Gg3ZpcWltiIJycF1oYnJuSmR1TF5uVVRac25iUU9zeGBSWFhcYW+Cc1thXGhlZWNrZFFbcElEY2FaY3BeXXdoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeH1ye355goGBfHZ9g4iGg3B3g3Jud4OCfYmLk39wgHx4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneHe2d0hYuQen5/e4iFhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJd2+MdXuGjoB6k4l/dXR0fneAcHF/bYR0lIV4dGtgeoJ5iI9mcYNvZ3ZuW219gJCUf4F5kpN+eXtsh3aBkYyEdJaKkY2GhYV7f4RsdXZ/bWd2ZW17dW1qd3Z/f3xgYniFeWh0dWJ9e2d0ho6NlXt0gHVxf3p8bX9ZVnR+cHWFh3+BeWyJhnR5bHWAg4R+e315e3OLgXxzZ3RlbouEbXNbal91ZEhubkxaYVdWVnhtYlBSdHZXUFVYXmFxhG9cYGNtZGReb2JUXXJHQmZfXWZoXVp6YlFVXHVbW2drYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcX90cXV/hYGJjYp7d394g3x8hod4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ1g3lefYWYjHmGg3SFhoR3iXtibm1cYltbYVZqc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8hIl+e5GFeXlzeXV1e2psdWOEdZKBdm9mXn2CeouJZXKCa2pxY1hteoabiIKCdJiVeH98bYhxgoqMiHKYjpCHhIuDe3h9cXFwfWZocWJteHFqa3F4fXx6XGR5gHdpdXhmgXZndIeLjpV8cYdqbn2BeW58XVhyf210gYt8gm9vin9xdmh3f4GAgXd9cXt1h3x6cmZzYW6MgmxyWGtfd1tJbmtNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmX11Ve11PVWRwWltqaF1XaGBfcmVqaHJncHJ3hnhulYp0f3p3fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dYt+fYaEhId/fn59h398eHZ5eJGToH+MfYttdoB5Y4OGloVzkYpvhYWBeoN0Y25rWl9bXV1UZ3NlYFlkcnJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgHJpYl5/eHmLhGZxfmhqa1pWb3eKo4GEf3KblHKBeXSCboGCkoh0lYiMh4OIhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjYaWf2+LZmp6g3VtdGJcb3xrdX2MfIFmdYd9bnFodX94fn9zfWx7e4F6eHBmbGJuiX5tbVZrYHdVSmprT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpEalphZFdZVXlZTlZtalldbGVcWmVjXnRlbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeXt6c3OFhoiIg3iBfXaPf3yEio6EgoR7fouDe3d8d3eanZd6ioKGaXd9fGyDhJOAco+CcIWCfoF/b2ZsZ1hdW1xbVGRwZF9XYnJ1aXVvZWViV1xcaH9wb3KAc4lkZHh+aXR1c3KChHiAhHl3dHVua3pxYmdrZ4Z0jYNtZl5ffXB7iX5pbXdmaWRVV3Jvjad8hHx2l5F0fHN8em58e5GFd5l9h4WChoN9dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dGdwgHeBdWJ3hYp8lIBui2pteoFxZnNlYG16Z3N4inx+YnaDdmprcXR7cXp5dH1mfn9/eXduZGZiboZ8bWtWamJwU0tpak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2JVVVVzVkxYdWRaX2thXFpjZV93Zm1icGlzbnJ/dHSagXd/gHd/f4aEenx1goR+l4VucnR8enRxhIWPgYB5i3V0kX98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHt1g4KMem+Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFyemlobGhfYldfW2qAaWtvgGdrYGh5eGpzdHRuhIF6f311dW56aGp5al9lbmiBdo+DZmVYYndpfod7b2lvZ2ZdVVhvaI+pd4F6fJCOeXVwf3BydXmOf3iVdYaCf4WHdWpydmdobltsZF1tc19nYWp4aHttWm2CcnNqb4B+eXdhd4SEd4+Ecohxb3l/cmNxaVxweGRxdIh8eGJzgHBnanhzcmx4d3V4ZIN7f3h2cGRjY258fWtsVWliZlNLbGhPR1JrRWF4Z2FNU3FcSk1UWWVrd3tlXm1xaWRdVmBWbm5XS1NoV2ZeWE5VbFRKXHlfW19rXV1bY2VgemhsYW9vdW5veHV6mH13gIF6gICHhXp5eoN+gZOEcXR0f3l2dISIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoJ6doF/gXVuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedIFpXm1rXGFWXFxsgWVxdH1paVxrdnZndHdybYV7fX15dXJseWhpeGZdZHNoeneSgGJiVGVwZ4KFd3dmaGpgV1ZZZ2OPqG9+d4CLjnpwcX5oeG95jHt3j3KEfX5/hm5kdnNkaGhca2Jdb29bZ19tdWR6aF10gG9xa3F7fXV1YXSFinqHh4B/d3J1f3VhcG1acnRicXKFfHVlcoBsYWx6b2ppe3l2cmaFdnt6dXFlYWVtc35pbFRpXl1US3NjUEdWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhub252g5d5coGAfH+Ii4V9dXWGeYeMfXN1dYJ5enqCi459foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXKIenR9fHZyb4Vse35sj3picG9iZV1lVllZVmNma2BdXHKEaFhvbVpeV1pcbHticHd2bWJabHNzZ3V1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXleXVJmZmuDgnR9YmNpXFRYXWJjkKVoeHSChZB4bW96aHhte4R7dYlzgHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYnhkW29xYnFxgnxzZ3KAZF5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVhIYnVkYUlUbVNKTFpXaWxxe2JsbHNjYVlZW2F2W1NMY11YaVNXSFlhTkdpdVheYW1bW19iYl2FaGhhbnh5bG9qdoGQeG2CfoCBkoeDgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcW1aWlhYYGx2Y2l1amleWW1zcWxzc3NqhXx+f3x2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBbY5KfZXJxhYSRdGxrem1vcHt8fHGBd39yenl5ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2aWlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbmJxc4F6c2dvfltgb3FiX2pxfmxsdX5zcXhrcGFcZWxsemFnU2dVV1JQdVtSUFlSSGN0YmBHVWpQSVBaVWtra3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9IcnVYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fXSCgnyKjoKCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntleItvbntvZnhwemxzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT25tXFZYVWdqdGdidGVlXVludG5wdXV5a4d8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3l+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+b2hpc3FzcHR1am2EkoGIe4VxcmZufXByb1RbZmtmcXSBd3NjbHZVYnFqW19vZn1mbXd9c3Nzam1gWmRqandeZlRkVVZQVG1XUVdTUEhkc19hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlZYmBeXo9uYmZseXVub2h2dn9/bIN/fYaXe3+HgYp+a5OIcmd0gHt1gIJ8iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGV8cGZ6c3lsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbF9UVlNvZ3NsZnhkZFxYcHRscnp3cm2Ie392nHp5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CDX2JeZ1ZYX1dkm4hia3GBh313a2t4bVx3cWx7anZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfWtma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFpaW90gXRzX2lsU2VxZFRibmJ6Y3F3e3ZrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBgnmHjX58iYeOem6QinRsc4J0f3+HhIaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjY2NjY2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2trqSfoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS1qKOkpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmZmZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGPj4+Qj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkIqRjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjIyMjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4qKho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+Gi4uGjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mIjYaMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoiHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqLjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw6Njg7PD49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk4OTpOPzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYGBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0+Pj07RnlfOz09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMS0lJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0REPz49PUBJSENYeW9DPkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkVOQDpAZX5+eHJ3bz45PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QTkw+QTw8PT8+QkM/P0FBQUJATXtmQGuHhISDgnpwPzk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9VdXlxgYGCgnyEgHJCPT0/PT0+Q0Q/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQFV1dIF/fIODfIWFaEFBQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFATHNzf399g4WGhodfPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFZneBg4SFhoeHiYRLREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdYdIKEhoSChYiIjWNAQlV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTEpbhIaHg4GDhoiJfVdshIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSWWHh4aBg4WAgYKDhIWFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKbIeGg4CDhICBg4ODhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphYGAfoCChISEg4OEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDRXaFf4CBg4ODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlIgoOAg4SFhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PFeGg4KDhYaFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCYIeDg4WGhYWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVjiIODhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0hISmCGgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE1LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs8PTo/QD5AQENGSkpQaIODhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUlLTVZzg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15RUVBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/gICAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1ZWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af4CAgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJUVVpcbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f3+Af399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNUmRzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8/PmtRS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCXF1Pe05PT05LTE1PT1FNS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FIP1x0dXV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVZQTUpDRj46OjY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFJOS0lIQz9BOTk4ODk3ODg0NzU3ODU4OEduc3V4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1VTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pHT1BPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUJGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT89PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkQ/QkM+PEJGP0I/QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs/QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUU1PTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUFBIS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSktMSUlMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1QR0hLRkhLREhJS01ISkxISEpMS01dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdFRklJTE5LSkhFT0lDR01MTk1QTU5OTUxJSElPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTo9P0NBP0FDRkdKR0lJTEhHR0dGRUNAPUVFQj5BRENDRUdISUdNUElGRkdLTk9LRkhKRkVERElJSEtJR0hQS0RKTUxQTk9OT09OSkpITVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oj4+QEI/QEJFR0pGSkdJR0ZGRkVEQkFBRkZDQkJCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pIS1JNQ09PTlFQT09OT09LS0tQVVdWVVRYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZHRkZFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJOT01OUE1MTlNXVldYVlheW11kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSEtIRUtLTE1OT1JUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBfaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3JzeU1ISEdJREFDSEU8QEVDRT04Oj4+PDw8QUI8Pz5BQkZDRUJCSERDREVGRkdHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllcX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZER0ZISEZISElLSkVKSEhLSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09KVlZVU1NSUUxPUlJRVltbXV5bXF5gX2FgYmRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZJSkxJTEdCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkhFSUVGRUlIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5PTk9MT1BSVVhWTU5UVlVTUlFQTU5UU1JXW15eX11dYGBhYWFgYmRlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDRkJDREFBRUdDSEdIR0ZKRkNHSkdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRUJISkpISUtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE9OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0RCRUVER0JGRkdDREpERUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NSk1MRkpOSElLSklMSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/P0ZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk1LTFJSTEdNTUhOSklITkhKSklITk9OTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdzSEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk9QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUVFSElKSElLSExKSEZISEpHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHZyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLSk5NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBP0lKR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QUF1fYWNjY2NiXGRjYmRjZlhRVVRTXFhbYV9eX2FhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUJISEFBR0ZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUVJbU1xeXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUlLTkxMSUxLSUlHREhLUU9NTFBMTUtLSElDRUFFQ0hHQkFGRUJWVUVcVF5TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlbXl5hYWVmY2hja21xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdIWU1HSEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUGBVbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dgVEdKT0pJT01SUUtNS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JgYGBiYVphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdnpufH15eHJuTkpTdE5DQkVQUElLS0pMUE9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGhhVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFRTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11eX2NaX2NkZWZkY2NiWWNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlVUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUktRTUtLT1JUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUFFVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmNkZ2VkZGFZYGFjYWJpaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktLTk9MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBNUk5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbU09TVVdVVFlVV1lUUlJXVVVXXFlaYF1WWV9dXl1cXWFhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUVBSWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tWUFNWVVVWWFRXV1RSUlhWVVpfWl5gXlZeXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5fZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRU1dVVlhVU1haVFNRWVdWXF5bX19gVWFcYGFeYGJfXGBdY2FjZ2lkZWBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVlxcVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVtgXGBVXF1panJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVteVFVOVldXXltYUVRVWFhYVFZYW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1xcW1haW15WXlldUE9PUlpQWlVVV1ZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYVlZTUFhSU1dTV1ZWW11YW1lVWl5XX15ZXFpSV1JZWFlfWllTVFZaWVpWV1lcVlRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlJZVVlaWmFZXFVXV1paWlhZWlpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWlxaVlhVV1taWVtaWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlpeVldaW1tbWltZW1lZXl9gYGRjZGVlYmRaYmZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWldWWlVYVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWFBWVlZWVlZTVlRYXFxfYGBdYV1XYF5bXlxbXlhWWFhbW19gXF9YWF1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXlliY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFhXWFhYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFdW1pZXF9iX2JkZGVmZ2diWmRmZ2lnY19jXmFmZFpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGNkYmBjYWNeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFdZW1pZV1paYF1gYmJgYWNfXGJdX11bX15ZWVVYXV1fYF9fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVxeX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmVnZmVmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7fX19fXx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLS0uFEmKysrKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL/ESRQbGxsbEI7v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgIF3c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl2dnZ6e3h7eHd2eHt4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHp7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8e3p9eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p7eXx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fXt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHt6eXt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhISCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChYSDg4OBg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgI2MgYGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgoGCgYCDlpaDgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICCg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoGChISCf319fIeamIaEgoSCgX+AgoGCgoGChIKBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODhIWDgYGDg4uIhX58fH1+f5mahoSFhISEgoGAgYKDgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEg4ODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CGmpGGfIJ/gop+kJqDgYKBgYKCgYCCgoKCgYKDg4KBgYKDhYODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/foWdnoWDi4CAhYCBiYGBg4GBgYGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgpmhh4SFiId/f36BhIOEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCkJyDgICBgX5+fX2EhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOGi4GAf4OLgX19fIOHhoOAfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgn9/hYeEgX9+gYWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOAf4KFgoKEgoGAgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDgX+AhISDgYGBgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgYOEg4OCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhIGChIODg4OCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIKEg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/goCAgoODg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+f4KDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH5+f39+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fn18ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCBgYGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIWEhIODg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFh4aHhoGEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICCgX+AgYOBfn6Af35+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x+iYaGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58f4CAgH+AgX98gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh4e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd8eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgoKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5+f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhIOEhYWDh4aGhIWEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn1+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoaGhoWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJioiGhIaGhYWDhYaFhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDhIODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXx7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOCgoKAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYB8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4WEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoWEhoeFh4aGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2NbX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiaK/vL29vb29vb29vb28v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ8rqqqqqqqqqqqqqqqqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpWgK+rq6urq6urq6urq6qx0dLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYayr6+vr6+vr6+vr6+uttLS0tPS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Oz87Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvP09PS0tLS0tLS0tLT09LU1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPztHV1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dXW1dbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0dOtg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqna3Lmrq4mbWzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqevKKMgI3FnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZm6ygiKzWupmhnbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKKxqK2bprKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SawaKdlaeQmoSdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QnsSntKuff6CphZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJmwztrBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk3OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqgp5Ghn6CZqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannrekq6Oew6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbZp4+PrNjCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0tW/v9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2enp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1tcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqaepqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQ0REOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG95amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjIycfFycfIx7/Fx8TEx8jK08/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsLJwcrKyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW90Yl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLx73U08fIzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm7vcHHwcTNv5DLxsXEwcTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t73Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZ2NbWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW4s666u7a/0Z+IwM67v8G8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb2+y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQUBDPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5KYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t7Ctt7a4xMuMhZvIvbvDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3ubiwurS5vMm6g4WGtcS+x7e5uK23tbi6tLizu8XGy8G8xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe5sb2+u8S2uKWHgIt7jpzFo3yDhbHLxs/CwLiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLjJ07a6vrzGtKJ4ZXJlVWBmh419h4eqzs7RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbO/y8jbvr29vIFqdmBndl5XVlxzgImLqMzIzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby1xpBxwdPAtH1bTG9hUHx/dWJWYH6GkanGwsfLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u9KXcoO1wptYVFaNYlJkgISFbUlyhpe0wr2/xsC5wLy+xcS9vbmysK64t7/Dx8PEvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc+Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucLXmH9yi652Uk9smVpSVVqalHdMbo6itLi4uMK6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnD1Z2JfXiVYE5qjXVdUV1surV1VFePuLWysbe+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsX2NhW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wMqfiYF9gFhYko9ncWB3cnqXd25rX4u9s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLnFq5WJjHhMZqDDfYabkF1/eWx1eYmxurWxtLWytK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzu7eWk6CKTWiSk3ZveXJoaWt2gXd4pby4srSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K3pp2ok1iAcHNtZGtfWVdYW2JfbIGbubKts6+urK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpaypsMCxs3x4dnJ0ZVdWT0lJS05PT1xrcKa1qrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR09STkpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoabHxKZhZmlyYFJPSnBVVkpPSkxUXl2Bt6+vs7Wqp6yropyZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ6cu7x9b2lqYVRKV3Cci3pZTEZHTlRUaK6ysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpPT1VMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbnqmrln1rXVRNTVydxMupb1lMRUNHTWGYsK2sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpmem6Gho4pvX1VSUVVpwOPStJ2Hb1lKRVSRmJ2rqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0NGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco6J3WVJRVFZog8DMs5ixyLCUipi5xaKpramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERKUEg/RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+fmqGdaFBLUFFpgZy1uqeHs+Db1tvayLSup6OjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hop2clV1MR05YfpPAuKSQmNXk29HEtKafmpybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNHS1c7Tyb3Av8O7xsXIxdLUzdPQ09PMysLGxsfKyM6/yNHMx8XHxcG8w8G+v761vrOuv7/Cw8fEx8Suv7iyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnpZhSkpOZoq619O/r8DUy7muqKKfnZ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1tjS183Gx8nMw8XKz8rT19HX0tXW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLz8bKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCkdV1nbY282Nza1su6sqqjnZ2doaWgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NbW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tbW2dXX09bYztLKz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Gyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD47Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+jrIp/k7PS1draz7yuqJuVmKCcm6Gin5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXX19fT1s/V1NrU1M7P1dTU0dHM0c3U19bT1dDP0tPRydPRyNDY19jR2NLX2dXWzM/Pys3Sy87QwMbCx8XOzdHR0cjMzcDKzMXTzsvOyMTKx8bIzMrT09HVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqihpZyAlJbH2NPWwq2moZiVl5mbnaCemZ2dk31xZWNjX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrR1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzszOz8jL0NDKzsrCycfJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqad/bIGU09bNsJublpWXm56en52UlpiUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMnBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxcrMzc/RxtDOzc3Mz8XHwbi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcWttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCqaG99p9nQqpWOjZiWkZOSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHzMzLzsLLy8jHy9DExci7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62lol9veLnQq5COjpeQh4SEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLM0MXLyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8XMxcW7wMrCxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76yspFfcoC+sJCLk5eHe4GFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLy6uMHBwsW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7a1vb+7zMO8tbrIur++y8TBxsLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q6+DY3WPtZKMiYuFeYGHh4B+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0vLa9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vcC9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxM/N0s/NxcfBxcC+urjJtqqwgWtymZyNhomKe3l+hoZ3eIJ9dGleXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramsqbSvt7Cyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwscC2uL2wsKeys7W7vKuutaWuta67srCpubCtu667uLvAwL25wr/Hw8XBvMbCyMu4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysLJyr6/vMC6srS0w66proZrZIqSiI6QfHh+ioV6e4SBd25eXVxdXV9gX19kY2JjY2JgX15bW1paXVpaWlpcZG5vaGdnaWtucoGtubC1rqalp6eaoKWhmpylq66kqKKsqqyqr6Omn6qttbaxvbmvt6+prri0tLy4tLyvt7m1srvBssCupamiq7GytKi9qquoq6yttLOmqK6hpK+psqanqK6mqLessbK3urq7sry9vr7Ev7XCwcfIt7/AxLfEwr+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usq3wcPBtLW7tbCutLutqKeIYG2Ng4iLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6lm5iRoaOqpKKfpaWnpa2gnZylpqyyr7a3p7CrqKq0q7S6sba1rra5sa+6urG2pKCkn6axqKuouaqkp6iop7KtoKemn5ukpqyen6ekoKCxra2ssrSytLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPycvCxri3x8HMv7jJt7vFuLPEuLS+wKu1u7GrpK6yrJ+hi2GAh4aGgXx5dXRvbWtqanFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5abopaco5mWjZ6ho6ebn5+jpaKonpuim5+rsKyxtqOpqqqsrKS0ua23sKyzta6yta6wqp+dn6SisqWmqbitoqamn6isq5mfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2xsrivuLm7sLa8vLqrs7O5s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7uruLmwoZ2oqqaWnYVmgoWGf3hybnBua2JeYmZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRkZWZmaGlrco2nnZSVlZuYm6KXlpGco6KonZudpaaippygoJuYrq6trrKgpaKurKeitbGysqyor7KnurOmtaCinpujoq2joqq1qqKjpp2mpqOWmZ6XmZqdoJqXnpycm6yhq6ejpKatq7O0qrWws6uyubSvqa+ysrO3s66prK6yuLC6trq9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxsDFtsG/x863wMS9s7m5sr+2sbi6rLG0rZ2Yo6iekZp6aYGDhH94b3F0cWlmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVmKGeoZyWoaKppJ+fqZ2cmqunr7Cqm6OkuKqhoK6otqqmp62wpLewpLegopuZmaqmoZqsuLCioaScop+fk5ShlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qnrbOwpauusrGwsK6vpqensq6xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeoo6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa68u7W7vLW4ua+vr6ebmJ+nko+KcnqAfHdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiY2RmaoGWk5WMkpSUm5mdl5ecoJyglqGgpqWkpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWqoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJedppunoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpqyvtLGvvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wrt7e9tr27urWyq6ulmJedoYqHcXuHfnZuY2FmaWhmZ2pnam1gXVxbWlpaWlxdXFtcXl9cWllbWllaW1dVWFdUVFZVU1RSVWBgX2BhX2BhY2RpgZSTiZGPlJOUnZWWl6SZoJecoKWiraakpKOjopyqq6WZn6WxqqChnaWrnaeinq2sqamtrKGiopWYo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaKdpKChlaCipKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUU9IWltPUkpUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1yb2xvsTJrLG4wbW7wLu0s6ippJSYmZqHfnCHg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5fX19iZG2OkISRh5CRj5qTlZOcm6Ocm6CoqauorKeopaSZpa6klJmlr6mfm5mboJ6umZurs6Clpp+io6GVk5uWlpKpqq2anJ+hoJqUkIyZjouQjJKNlpWQnqGgo5ybo5WboaOhl6Koo6Koq6Crr6Ott6Wjo6Ksraqoq6+zt7O+tbOrr5iEdHNoW1hYUlVRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S7t7vDyLGtuL+3vL26srOjp56UlZaUhXhzgHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugrKqmrqyor6Somp+soJWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6ulmpmZnp6VjYyLk4aIjYOQi5GVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXJzYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2uLy+wcOxsLK3rbSzurKxoaGam5aVkoF+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudqJmhpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkYeUjouBi41/kIqSkpKgmp+ilZOYmJWippmNmaSmqKahn7SyqLK3oZyit6yqraSysqa1vLasq7GjiXhzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWks6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmuq52YmZuUkoV6gW1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWXopyVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifo56Qk5iWhY2ClH5+dImOeZCHk4+QnZqZmpGVkJ2OoqOOiZqgoaSkm6K0r6yvrJ+YpbimprGhsa6csLyqqa+qmYJ3c2NWTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuLC0sMnEt7nBzsW+s6y6wautw62ooqaSnaa1q6GcjpSVkY58dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho6dl4uUkJ+YnZWUlpWPlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlY6RkIOGfZN4cW+FjX2JgZGNj5eamJOKj4mch5+Yh4iWnpqhoJenr6mtqKiflq2zoqaumayrmKi0oqmto5N9cm5gW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mno6mwqKe0wbmxtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbrqCYlYSTjoqGe3J0XFFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhpWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh+ioiVio2RkpaLhIqIlISajIKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdG1nXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Kvoaeopaeor62qtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Vjn+Jk6eVlIl9jYOBfHZvbVhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuBdnJykndndYSEhIR7lYmIioyLgH+Ei4x/lIN8gZCYlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToZ+Wnp6kgHJoYFxcSlZPUkdKWFJPSkxNUkpKSkxQSUxRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc5NTY3NjI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY6UgY6bjZB+doV4e3VvbmhYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfox7dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubWViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbCvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY+EknqIjYqKdnF9bnRwaWxpV0tGR0VBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJOWl5mXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlRUU1hVTU5ITktNTktDSE5HRT87OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKsqqi1r66stL+rvMK/pqKZlaSXnY2Ei5ShoZiYkZOLc456gIWLhnVvdWxwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRVVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqSdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn94eXVqeYmCiIqElpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq+rsrDCsbvDx5qWj5SZi42FeYSQmJSNkIyPhnGHgnSHjIV5cHNxbm9kcGZfVEZJQz88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZuY3aEfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo96cXBva19aXF1bWVhgX1JOW1pYV0xISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnqSnnq+VpbWqrrGuwbK7wcaWkIyUkICIfW6BkJKJg4qHj4V1goRslYiHe3V4eGx3bndjaV5JUEc+QDc0NDk7Ozw9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfHV3e32JdW9yc2VmX1tbXVNbZl5XUVVYW1VHSktFS0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVyPTIzMzMxRX5XND05XIx4ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOBc6GEi319gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdyeXZobWtfd32DiX+IhYx6lZ6biouIkX96dYt2fHdtb3d+f3NycWpaXVxbY2NYZmVcVVBQVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiYnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jVktCNjAuLzIzMTMzNjY4Oj0/QEJFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtyhJ6fkZx/doWFio+IkGpob4OAdY2HhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaKjph/e4KJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWU9LTldSUUlQSkROR0NLRENARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGPi5ubpJyhrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGLi4KJjYN/iX9scGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKTEtLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4KWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfIB/gHJhXGJeWWZqXGtrXldLR09TUU5NTEZJUENETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6YlpqUn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmJKRgoCAi42JhZCGhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNTU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoWcoZqamaeRkYiVopqad3p+lJiSoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+enBnYFtfXmFmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjHuKho+QjoGCgImMioSShYKGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q0vbilrqysp6i0rLC3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6ShoKqhpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauImomSipZ6e36EfWZfZ1tkYV1jY15mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyOiol6iIKHkY6DhYCLhYaHkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PGtqyzwLO5vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZyakpqfiaevq6SVdp+kl6GrsbOYlqqtqK62u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7epjaWOkZOgh3mBgnRYYGNVZWFgYl9gZV9aVUpERUxVUUhKSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6GgIaIhYqHkXp4bl1WQEVNPDY6NDZBQjc2NTAvNkNIQ1FbT1FVV1VcV1BfVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba8xb2zs8C3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsa6mraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYq4l+gXppVmFgV2lkaGRWWmNZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIl6fIuHhnyKgoGKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPztIUERaZFFRWVhZZ1pUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vcC8t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrp56Vlp+Zn66lp6elnqSUoqews6eysry2wb3TycrTxsLFzMLKw8C+vb+8vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX5xXmFhXFZhXmdlUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZBzbHNyc4jVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tXm9fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLura6tri5s7i1tK62tplkdaierXBeoqycmKGjm6Seq6WUn5+QlI6WmJeon6Wfn5qZg6SdrKSqsK23sL251NHP18/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yM+0pLuwtbCbrLm9mn54a1xfXFldYVliYlFbYFNRS0NCRUZFPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUbmxvdXWIs6yhoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7awubGwu6yzsaeqt6yNtqeem6eaT5udjI6glpGmmKWVipOTiZCJj5CSnpuhmJuVloeemaabrK+or6eztNTU1dbSy8/T1c7Tz83FwsrQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKKBbWJbXF1YYFdZZVlQXFdOUUNCSEVCSDtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGiAcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkZyXmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sbAzsfIw6m/uNCdeG1kXGFcVl9SXVpOT1NQTkg+QUZCQkU8QEI/RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHt2fHOBd3FqgHJyaW9xenlye77Lmn6MsYN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG5qqa0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmISBhX6Rg4OTlqyLlY2VmY6FkpCdl6ewoaCgpKSox83PyMLL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNydfW0cqtxMPLiXFuYl9fV1NZUltPSkdJSUpAOzo7RUJEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bId2dG99doR1eXudtYw8QYrGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52foJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2ChIV6lH6CqZWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQzNLLydTP0dXa19fY1NnYzdjbzsna2tLWv8zMtHZ1bWNcWVJVUFlWRUZKSUVFPTo3OkBBQzpHRUBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cnyBcYOHgG6OenV3fXyCdX98h4iwdFipwraMkoFwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoa2copqZn6Wen6yZi5qMkZKNhX2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjpWMhnubiJOPrquUlZeemKautr2orb3Gy8jJy8vPycTSytTW2NfY19Tb19PZ29bQ29rR1sjVzJV4emhnWllPUlNdSEJFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pjo4N0RCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIFvkoR0fIGFenaGe4m3xqTCybeBlZuPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZqrlpGRi42Sg4yFiYiBhZCRnpyZiYWLgYaXe4iIn5eQiY2Ki4J8oYiQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aFeXhlaGNfU1ZWVU1LRE1DOz09PDk6PD45PkE2Pj9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnZGfg5J8hn14jn14iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C7jJyjnH2JhH2JcoyKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRkpWPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mLlJGdkYKLf6aZiIWOgoaEgKSGiou4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3d3d2aWlkVl9aU09OSERMQj09Pjk5Ozo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGPinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6CanpSSgIuHf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOin5Cjrp+LkYuFi4GShldyrYufrJyPg5ibkJCOXIOikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYqKnZaZo6OGk52VoIuKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2ZlW1xXUlZXQ0BJRD4/Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqWilomdkJSWi4qol3KKso2DppGEmZOEmYyilqCZk4manaGSqK+fkZSQjo6IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelZuJj4eXl4uFj4yBf4aPpIiNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfmdiXV1cTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY59fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqKDkLiVkrKZjKGhjKSbr6OknZiQp5anmayvpJeUlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpSYhoSRkJx0kZiylpeloYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LpxeHVcX1RfVU9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2ys6ijorCsipq0naK4pJWtpJeprbempKOfmamXqaOvsKmZmJyUlZGXoJiau7uuyqFqtrirsJSZnqOrk5e9o16qsoKJio2Uh5F8jo59g4aOkJSUiIeTloyQlY2LjJeYkpyZtJeWq52LnJSSjZGSjJmbipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9Shb3lnW1lTXlBPRUM+PENBQjg/ODc1P0Y8PDU8MzUzNTU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojk2Pj00N1RLQ1VRSjc8OklBRUA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7OzwLy0rauztounsq2tvaqbu6Sorbm4q6amoaKjo6ivsrGqnZykmJuXl56ipqWSpLquqcC8ra2yuaakp36IhpytvbCDjIyLkIOPg5GPeoGIkI2NnIiHj5eNi5WXlJGal52omrGakaycjpqPko6VkZCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNXRzcTKh3JyYFpZXlpMSkJMQEZHPkE/Qjs6ND5BPD01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubqXsra6ssCupcCkq6+7vKqtq6OjnqeqrrSwqpugqpuhm5WfsLSni6O6urbBvKyonLOlpKmUhY6pxMSkgouPh4iEhpWUjXqDjZGPkaGMjJSSj4iXoJiTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMKuqLe1ycO+ts+yxL/EvLPRycjCtXN3a1tXW2lRTEhETEpLSkFBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgZB6jaGWqJqamLq9x8jJwdLJysLNvMGzrbu+p7q/vrzEt6zBqayzu76qsKmkpaOrrbOttrWgn66epaKYo7O9qZuovcGjt7ewq5Oxrausl4eaqaelkYKMk6WViYF2ipJ6hY2SkJ6fk4+Ui4+NlKOZl5yVlaOeqZ+RpZqMj4+PlZaIfI+VkpKjmpWgopy1pZCel6SjoqWenaaYnpWXm6SjqKeisqyovMDDr6Wyt8zAua/Es7u/writwsPCwJhseGBXVlpaSktNSkZEREhCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mo5jCvsfDx8XTzc7Ny7vCt7C5vLO8y7zDwbW2u62zv7m8rq+ooKintq2tqbK3mp6soqehnau3uKmksL/Esb65s6eqtbSurpeWpayooJGOkrHFp5WOfZGVfYiRmZCqmZiTk4+TlZOlnpOdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOesqSWoZasrKqnm56ml5iWmJWgo6iln7arqbm7w7Sls7XLwLiqtqyyu7iuqLi6vbiCa21ZVlRUTUVKU05LP0JIRURIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnISDlZCQk46aop+vvq6hxrzFxMbGzs7O0sq+u7axuru7vs+2xL24uLeysbWzuLOrppyrq7mqqKevr5ejrqSnpKS1wLCrrLS/w7rAurOnubW4s6+Vpa2urqWLk5WhjXTBmn6XmYWPlpqMsZWbmpWTk5qZpaOVoJuWmqmdnKGgmYqMj5adYEqWnJqVmqWWVJawn66cn6SUr66rpZqgpZSTmJiOnJ+mopm0qaqzvLu7qrCyx7+5pqysrbGxo6GysrSkb2xlW1lOT0tFT1BQUTtISkhHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomThZ+HhJ2Xjp2hmqOktci0qca6wsPHysjHzM3Gvruzrrm4wMHMtce6wbi1urCvr7O0pqObqrS0qaimrayapK2lpKisur+oq7a3vsG/vrmzssSyub2so661rLmmiJyYppt2v6CFmZ2Ok5mai6+XoZycl5Wbn6Gpn6igmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpaiSkpmciJScop6Xsaepq7q2vbOyrb65t6Cjp6ilp5ycrampjGJkX15RSkxGSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlZyhn7uvmZSfi5Orm5GSk4mrjYein4yjrZSjo7bGvbTBusLCx8jFws3Iwb25sq+5tMDCyrXFscG8tLqqqK2ssKKjmKq0u6Wppqyqnaivp6Oqqr68p628tLi9x7y3tbfBsb7AtKm1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZueppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpJOvq5mrq52dpKOokZWVoIOPnp6blamkoaG0tLq1rai1srOenKOlmpeVmaqhnnZeW19dSkhGR01RSU1FRkdCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgWRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfBwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqq62goJqrqsSipairpp6rr6yhqKi/t6atvrG4tse2tbm4v7K/wbe0s7SvvqOXo5aUnJSuoJGioqWjo5+QvaSpnairnZ2gm6afvaKYo5+iqauhnZeNlZ6TnoePhY2TnqShnbWspZuVsaeZr6efmqmeoI2YlJ6DjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRnYlhgXU5IR0pOS0hFRElBPlBIQDxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJXTKKao5yexayhn6yena6gk6OflqWgpqmrl7axo6qztcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqrnZ2epaTBpaCqrZ+kqayvoqanvbWlsby5t7bDsrO3ub+yxMC4uK6ztbWjnaWVkpShrqCZop2pqKujmsKtqZ6srZubnpmmob2inaWYq6uspqGZjZmfkp+Jj1d/lp+moaC4qqaTmLWjn7KhoJuulp6OmJSdgY6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYGRZY2BLSEpKTkZFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GZnsOopaK0opyyqJOrpKCkn62prJ27sKistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwq2brLGcqaOtsKmkp722pre7va+3w62zssLAssezurestLauqqKmlpWVpKyin5+aqKuwr6+7sqagqaiZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2ao5+ns6amjJizm6Oump6brZCek5aTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLS0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8S0t66strmlmauxq6qXn6aXrbu0m6iwm62frbSyp6q5sqi6s7eyucCqt7HDvbTGp76vrbe1qaisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6OkppavsrKnq6ahnpuam5aYqJ+gmKKer7KipoyXrpikq5eZnqSRm42TlpmElZ6UjI+cnpSLqamqoaegmZ6VjI6ZkIGFlYmUn3hjaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaGmv6aor6+hqbSrnbmwq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkaq5qaCnsJ2qoK+0s6qptratu6yzs7q3rLiww7q+v6bDq7C3rqmrq6aemJmroqKgkZihsa+zq7C5mpypoJmWkpemobeppaOjsLG0q7Koq5+boKCbnqWdopedo7Owmp+Pk6WaoKmalKKelZiJk5eSlZack4iQm5mUjqiopp+jm5ebk4eOmYt9jJaFj5tqaGxgbG5XUFFaVEFDRVRAOztIQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hq7Cqo7G4qqW1s6ygrbW8rrO4vLq9trbAwr/IxLnEwcDAuMS9wLevtqert7G7vr+0qK6xtp6Xq62orZenqI6nu5+krbOeq6KwsLOrqba0tb2tr7G1rLC0scG6xbervK+xuKytqqOxpp6lqaCkl5CZoLOqs6qqs5qdp5ualY6gpqS0rqeira2usaezrbKqpJyfqKOelaGZm6i1qZeZkZKemZ6gnpCrnpeXhZSXipyYm5OKjZaXmpempaKgnZaVl5OAj5SFe46Sg4yWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqgpKy2pK2ppa6utqqvtbqnprC3xbext77BwrS0usW+zMW5wsC5vrnDt8C5srSrqbq2urm9tKmtsLWYmKesqqubq6uOq72dq66xo6ugsK2zrq22srm3qq6usqi1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWWm5qyo62gpq+XoaSampKOo6Wns6mhprKsqralrrG1r6SZna2nmpifmZmrt6KXk5COl5yhl5aTq56bkn+Sl4ydnJqWkImUkp6ZpaKhoJiWkZOVeouPhXuMioOLkmpteG11e2BFYWpZSUhZWj17SkZENkFiVGlbTVxgSlxdWlJTUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKyzt8q6tLq6v760s7fDwMzIvMO8tr2/v7e/vLG9rae6uLe2wbaqrLG3lJemrquno7CqlK+7pKyxsqeoo7G0sLGwtbG4s6muq7Knt6+1tMPFtqm1tqywramoo7agoKexoKSUnJqVsZ6nnKCqjqmjnpuWmKampbinorG0rKeyp62wtqykmaCsqJucnZuUqbiclI6OipicopePl6WgnZSCkZWPnJyYlpSHlo+Xmqeco6CSlpCQlXaEkId7hYGEjIttcHd1e35cS2VsXEtOY1w+YntHSThHZ1dmXE1eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0ORmaWupa2uq6eksLKzqrext6CrtbnJuK7Bu8K3srG1wsLOxcDBvbS8v7+6vryyxKepuLC2tr+8rqqzspyfp7GtpqWvpZ2ytayrsbGtqai0uqyzsrWstK2qrKisqbitsbDHv7ilurCpra2lqK2wpqSkr6SpnJ6cm6+Zo6Oio5GsnqOgoKKqpqa5pay1taSqq6isr7auo52jqKqboJqakqSzmY6JjYeQoqCUjZOcn5ORhI2Skp2amZWTh5eSlZmnm5+ejJKRjpB3fo2FfXx8h4mIcHNxfn19XFNkb15OWWZcRkSWW0c7Tm1YYltMX2JOVldWV1RYZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0srS1srKhq628zLquwLvHsbSstMLC0cXGvsCyvcDCvL+3u8SnrLess7i7v6+qsa2go6etqqiksKOqsaqvrLCvsK+rs7untrCyqbKpq6alo626rKqxwrm1rLqoqKitqqixpamko66qqKKfnKOslaWemJ6ZrJ2ip6mirKajray4sbKgqaKgq6+xrJ2fp6epmaOYmY+gp5iGhI6Ki56fjouMlZuOjYWGj5SfnJWXlIaWk5OXpJucnIuSkI2Jfn6HhXx3foeFhnRycYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNcTlVWVVdRXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwta24ta6rpaqqvcm8sb63wq+xrLPEw87Ow76/s8DCw7rAs8jDq663rbK4v76yra2rpKeqsKmnqLGmtK6qsK6tsbC0rbS7pLeyq6yup6ugop6vt6qqrbq2pba1o6qnrKyqraGpp6aysqSmpqGhrJaqoZWaoKaepKKqpa2in6ext62uo6Wim6qrramcoaWkpJigmpWPmJyTgYKPiIWcn4uKjYuYjY+KgouXo5qRkJqLk5KRk6KZm5mKjouKfIaAgYN6dICEgX1zdoujiHhqXmBuZ1dlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbartrGrpayqqbzAwLi4s7u1pbKwxMnL0b/Bu7i/v8G5wbnAxK2xtbGzur+9srCurauqqLaqpq6vqrmvqLGxr7Kttqq3t6aztauspKmrnKOes7OoqKS0tKC2raCqqKuprKegq6ypubapqqqqoqmgrJySqaGdoKSjpqOqnpynta6opqqio5ilpqeqnKKko5+ZmJ+Qjo+YjX6HjIaEnp2Gg4qJjY2PjIKFlKKZjYyZkJGRj5KflpiWi4qDf3SGgX9/eXSDf3p3foCHnY9vcWdncXhcYHOIa09emVZIbXhVZFZSYk9NVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmo2T0Q7lo6woaarrpqspa2vs7Wvq6Wwqqm6vrzAsa64raG2r8nHyNHAvry6vMK9usPAvr+usbKxtby6wbGxsquzqKS1qaWts7K5sKOttrGws7qrua+prbWrqp6prJ+ioLWtqKGfr7KitKqeqKeqpKqhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrCpo5+toqGToqOjp5iaqaWYl5mdjoqHlIh9jYaEhKSWhIGCioaNjJCDg5OgloeQnJCSkI2RnJSXj4qGhXh0gX98dXh5gHt0c3pogIajdWleZWuBdWeIi31TWHBeSnhzU2RTUV5NTVJZZk5MVllkWEZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJGPsqCkpqykp6Ssp7SysaqksaiquL7BvK+ouaqmrrDJx8nRw7y/vri+v7zJu8C4sK+0sbq7t8Cys7usuKyitKenrLK2ubOnqLy1rra9sL2mrKy1q62cqa+jn6SrqqecnqqypLOomqqnqqSpnaOpp6m9q7Svrp2ppKCunJuzo5WknKWln6SbmqmrpZ6bqqGbkpyhpZ2Yl6mokpiak5CKgo+Ffo+Cf4iej4V+fYuGkI2PhH+SmpOFk6GMk5GLkZqRlYaJfn9ye3l9fGh3fHp1cHB9aIV4hIhkYWhjcoV6bWZ4XV5WQld6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQko3R1NgVSo9OkRYPyqPlLGZn6CppaWhq6W3srKmqbGnrLjBvbWwo7msqKixw8nJzcG2vb+1t7+5yLbDtbOxtbG9t7m9ta25tb6tobOnqquwtbi0q5+9vKmzwLO7oK+ztamrnq2wo5ykqKqjnpylsKawoJ+rqaiiqpukqKCtu6eusK6gq6Okrp6eraaXn5uho5yfnJqjqqOamqSklpeUn6KWm5emq4uekZCRjIKKgICPgHualY2Ie36LhY6Ni4qDkZeQhpSjiZGRh5CZj5OAiHx5bH12eHhje3pxcHFyeGiAdGqDZ2RoYW5zjm1haXBgcEFceGxVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUJoWTEzUz1lX0RMNktXZU8pOzJPWT0jk5msmZ+Yp6Sjn6ikuK+uo6+wqqu4wrqzrp+4r6uotLvIy8i/t8K+r7S9t8S2w7GuubGzwLS6vbepubi9q6S0qKmqsK65saqbu72ksMC1taGutrWmpqexs6CepKanoaWZn6yoqZ6gqq+noaaYo6igsLifo7GuoKuhrKScpqepmpqbn6OVnZ2anqmml5ugqJKZk5mek5mWoamQmomOkIZ9h3+Cjn18oY2MiHiCi4SJi4uFh5KZjomVnoiQlYKLl4yRfIV7c3B9cXN0YHl4aW9xcG9pfnFjemxpZWNgZoZ/X1pza3JMTH5oWFpNUExKSFBSUElOXF9uU0RYW1JnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4vWVg1KJedppmdlq2goKGkobersaSztKqoucW2s66gt6yurbC1xsjBt7/BubC0vLe/u76vq72vtL+wvMK4qbu6t6eotaioq7Css7Cnmr63pa28trCesLewqKWnr7GboKSgpKShl5yvpqGeoqevoqCik6Sko7ewoaaxqp6so6+YnKqlqZ6Ymp6lk5udmp2mqpqcnKWWlZeVnY6Ul6OooZCJi4+EeoV+hIp6jpeKjYZ4gYaDiIuNhY2Tl4yOlpiKj5Z+hpeLj3mAe3Byd29vdF95d2RsbGtpaINtZXJqa2VoXGNzf19abHZpWkh9XVtYT09KSEhSVUYyOl9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFREVV1oRS47MWBULDKWo6GXlZypnaWho6G3qq+gurmmrL3Fs7Cvo7WvrK6vtMTEvbO/urews7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKmzq66xo5zBtqaptrWqnrK7qaamqLCsmaKnnKSmlJihsqWZnqSpqZyioJOln6S5qKSnraaepaGok5+poaGgmZudoJKbnJegoqubm5mhlZKVlpqNlJOjp6SPiIqOhXmEfIWFfJyNiYqGeICDh4eHkYWVkpKMkJWUjY6Ue4OXjop3fntsdHJsbHNheHVoaGpnZW+EZ2hoZGZpal9oYmlmWmV6Y2FSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhjTicynqSjko6kppyenp6ktaynqrq3qKzDwbewrKK0raevr7fAwL2xwbexrrG2tri3tayqvLOvsrG9wLeuvLyxpZ+2rKaltKmrrqCgw6upprCzq6y0up2oqqqxppidqp6npZGZpq2imZ6kqqGbop2XoJyntqWvqq6goZ2doZWgpp+hoJmbmpySmp6Vpp6to5iXnpWUjpSYjI+YmqefkYiJioh4hXeCgoKch4uCiXt+hIeGhJCElZWPj4+RkZGNknuDlY2Gc359Znhva2psZ3Vza2NnZGN0f2FkZWZlaWpjaXBZXlhdbGRhTWhXWmBWSUdIS01SWD85YGxpR0JVU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZBOjNBZUglNZukoJGMrqCZmKCWpbSxorG+t6Gxxry5sLGjtqurrqm5vby7rcCyr66ttq+zuLOnq7mwrq60tru2r7i9raaetaugobClq6+fpcOhs6Wvsa+3rbWdra+srqOZnKeqpZ+Vm6iloJmlo6mdmqCclJudrLCluaetoqGamp6ZnqOapZ2WnpiblJqhkqiVrKmblJyckoyVmY6UlJiopo2NiomPe4J0goGKmIWHfImIhISJjIiShJSckpKPkJGWjpB/gI2Ngm+Bf2Z5bWhramdxcmtcaGNhcn9gZGdqbWxnamhmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWRCJzSTopuPjrGdm5OhmqmysJ+4wLahtMK8vbmxpravqa6lt7m3uKy7r62qq7eqtLitpbO1sa6psba2sbK1uqipn7apnp+qoqqtnKrBma6lr7C2taysnrGtr6qjm5yjrKiclZynpJ2aqaOllpqgnZGbo6uqqbqfpqSgmJqanqGPa6KVmJxxgpacpIB2kauonpaWoJGJl5mAl4ufj3iFk4yDbWl+d4NwbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpdG5OUGpkZnGCZl5kZm5saV5eX4mQhYdoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMVBiPCsvjaSZh5Wxm5yToJuqraujvcWvqbfDuL28rae2sKarpLi0srOxua2qp6y0prC1o6e3trWop6y2s660rbOiqZ+0q56ipZynqJquvZWnpq+zt62tpKiuqqumoZ6coKinnJehpqacnKennpOfoJmQnqeqo7Svo6KjnJaYmJejiKGPkpqHoYeUnqF/pX+nq56Tk5yTiYRyeIyOg4egdoiMaZeIZn1zeKBviIeDfox8f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUZSVldRUVJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYDcvKIyml4SdrJ2ZmZ2fq6qoqr/Dr7K6vbfAvqqkt7GqrKazta6vs7arqaWxraW1s5ystba0paeos7Gtsqivn6qhs6mfpKOaoqOdr7aVpKamtrymrKepqqynpqKgmaCnpJmZpqOkmZykqpeUopyUk6KlpqC2pKOgo5iVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TAm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweGhrWLGub2VpvJK8bmh6bXGP2H5TamO2sn+AcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW1w0MSGOppOBp6qfl52dpa2yqbHCvbK1wLW3vsKrprStramor7Sqr7azqKemtaWnuK6csrG1qqWkp7KurbGmqp6npLKkoaGfl5ygoLCtlZ6jn7S5oqmooa2upKKem5qiqaCYm6ihn5ieqKeRnKeblJ2hpqKgsKOen6OWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWZ7o6eCWV+Lq2mAlHh6aqc3Sq9bV1RsY1pLT1dfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqKVgq2npZ+jpKqxt620vb6wt8WyuLrCp6mwrK+pqbGupLC6sKSkrrOjqbmpnrOzsKOloKqtsKyvpqefo6KxnKOcmJWYnJ2up5eboZ+0sqGqm6GtraCempegoqqdmZ6koZyaoaekkJ2jmpegn6ufpaagmp+hlZWRlpGahbWbtXiFqZm1mXeHs5u3f5OWl6mVfmuBpnqBhYeSlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVKThl5QqW1jcX2GgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1c3SjlhVTUwHJaflIizpqairqmns6yqu7bCsLzCrbi3waqsra6vpq6yqaGvvKqhp7Wto6u1pKazs6ejop2nqrKosKelnqCfsJegmpWWl5ifrqOamqSotK6hqY+pqKmbnpWYoKWpmp+do5+coKOlo5WbnpianaKqnKWam5uioJaTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYejgqWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FujoR0kLuFb5RPr6fFilGgemNgqmJzcodsl4dfU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKC4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE4MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afr7aom6i6rqKvsaCztLCgpJ6ep6mwqbSppZydnquYmZiXl5aXoquempeorbCoo5+OrKKnlp6XnKGmopiioaKhmqKip5ueoJ6VmZqmoJynlZubn6CYkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gd3OGYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltbSisrKjoKyvpJimuq6ksbCctLipoKadoaqlsqisqqWanZqpn5aVmJmTk6OpoJeTpquwpaKWkqyfpZKUoZylp6CVm6anoZqjn62aoJ6ekJabop6cpZSclZminpWYlpKbhax7d6h2o4+Lh6lvrYqDqIOZmaKKkpmLon6SmImuhX+Cs1xys1KufoOCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0JUb15nYEVPa19wbVZVTS9lY2lTWVE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJi0wa2osqeqsrq4tLi/uriztr21pbi0oLWtn6Cpq5+Vp7asqLCxq620pJupoKCoorWnpqqjmZ6VpaKUlJyZk5ajppuTkKesr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoJiYm5WXoaCUmJGnnYapfX2leaGPkIOqcK2MgqeGlqChipeXiKOBkIeUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmRze4FrmIdxXaxaiaCOa25lT0pDoVxaTXRdYmZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKq7taCxpZ6lp6eek6qxqa+qtayqrqGYoaCmpKS6oqOroZebkaKglZSfmpSZn6CQjYypsK+mnZeap6afjZKkmKirqJSXqqifn6CjraOgnaGNlKGYn6CSnJeclZ2hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh452uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uW6dPYlNrZWJsWmJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzwwMDAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI5pZqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqq6Gcp6SinZKrqqe1o7Korqqhl5yooKSruZ2jrZyWmY+lo5aNnaGcmZ2fkZOVq7avp5mUm6ypl4yTppqlraSSl6uypKCeqKuwmaGij5iil6CblpuXoZOcqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdAOaaZnqK8opexw7Ctqaqssae4r7bEsbuzrruwrsGyrKWjnqShnJuQqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpqCTjZyjnpiempCWkq+5sKuVl6Onp5SRlqWdpK2ekaCoq6Ccn6mksp6ipI6moZShmZyXlqSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXoB6fYlng3lteWKLrHB1hX9YW6dqRGRaVGZfY11iUGdmcW11Qk1QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KztWVic9OzymnaChv6aWs8O0rKqnrKupu66wxq+1tK+4p7W4raqjoqafoJ2Zk6ykraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKKTnpeSmJSytbatmJ2kpKKLkpKmnKWrnJappaadm6Kpp6ajqKCRrJ6Xo56Xl5idno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukoNxlIZfcmpaXZqJYWSHjpVrYICVY22bdmKUa3+alZRlXmBjcZuJaHKMfYaUZmp+cXR5fXxiW3d0gWhQXG6EfXuLalhseYJySUpvhXBNdE1FV1xmYUxbV2ZjXk9abXZqclJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NgVjQpUF5MKDM+W08nPzI+qJ+oocGjmrS6tqOspa6nqLWyrMissLSstaO+sbKnoKOpnaObmpmsp66kpbWqpZuYlaKbpq2pv6ipppaUm5WgmpOYpamokZ6Qj5icsLK/rJunnaehiZORqpuppJybrKCjmpujp6yin6qhma+alaaflpSdn52XsKWZoqiZnJGenKOkmaejmpyam5qQloJobnxxdpGXlJGEibSpjYWYlY6KjJiXh5SVioOSkpCJjZGUmZOYl5qgoZqblKCdjoJ6pIVsaXyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNbb2hNWFhlal9XWXB6b25mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlMxMFReOis9OF1LLDwtQLKgs6G/oqSxsregqaWzp6WwtarJq62xprWmwKi0oZ6lpZyklpWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiTlKKfnqOnkpGZqKeyw6+Zq52rno+Wlqmeq5yeoK2YoZudoqWvpqGkp56smJemnZmaoZ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNj5atj3uVm4KSgYmpqIWAmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmZKQnY1+jWWhs66FiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH96doOIgmt0Y3hmX2hkY2Rmalhre3FqalxSTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvq2rrrKyoKqmsq2irLOwxbCqrKOzr72ktJygp6KhnZmXqKappqSms7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8i0n6mkqpaWmJqnnqmcoKSrlJ6fnqCqrqmloqqhrJufoKCYpZ6cnpyvpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jWxoa3qQo6trZJmYfmeFimVlaWh6jaGOa2eMl5Gid2tqi5iin5hzbG56hI2FeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEdHeIiY+De2iEWF1qc2Rdc4hpanxxbGNdUU5XSWRYQEo0PkY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wp66usL2xqaikrbCxoK2XoKSeoZqZpqucrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZppZ7payiqLPDuKWip6+fnpWeo5+knKSqqJKeoZ6gqq+pqqKpn6ebpp+noKyVoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnoataHi5xLhxkqGje6aYmXOqgnzLwMC7cYuih4OefJWYiJ7AvYKWnZ2NnMHBe4F6kYyawr99a6Wxb4yBb8p6f5t4kYOOgHZ5gX95cXp/h3B4hYyTeWx1kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqamUo6+psK+tprK1r6umpqaxq6CrmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRoKGYnKCdh6arpKutv8CxoaquqpaSn52imaKkqqOToKGenayuqaulo6KloKSlnK2pkaSbqK6qnJ2qnKyilpellqGjmJx/zpR5eqWCepWWm1+tj16Op4ChoHynlZt0q4OAr15kjal6p4eFn3SXkoizY4KrhqCNjbJqhK50fJaHuGGCrVmjzW6PdXvbe3+ZcX6IknV/ZXuIdnZrfYhufoWQkn5sgI1fcGpvZmBfeGRccWhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzcxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLS5KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqa20q6ayrK2spKymsKqgp5uappicorCfoJ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTj56ll52oo56upKuwqL/Gs6ipsa6Wk5ycopegqaqflaGenZ2ur6eqqJumpqOgqpKts5amo6uqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WEqIdxsHydcqx+oZ+BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoihi5GLnH6re4iSjqCAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yboiKkY+DbZCOZG5zdW9gZm1kX25paW5mY1dUXGFaUlJDOElJQEQ8PjxARURDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PldKLTwoPTEpM1ZARiEcRzpDMS4rr9TGx7K0n52jjqOjoq2utq+psKepqqiuq6unoqOdmaKVn6arn6Kln6ioop+esK2Ym5aop6+tqKepnpeVmqSikpShrZudp6OurKOstam5zbKtpq6sl5WbnKKZn66snZahmZ6fqbGpqaiaqqijoaubr7GiqKyuppmmq6qqsaOTl6OlmpSShaRqpHWJeql0erJxgqWJmIxwiKCah6RfYFKrhH+ugpt1roKnhoafepiWhXtmgKOJpJiGgaN9qX6AlIauXnyoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdWiMi5ePgWyZkW5teHd3bmxmZWRxcGZ7aWNcV19pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqayjqKaqq6uppKagm6WfnaWnpqOcrJqiq6Gkn6+jnpuTqqS2sK6gqZudl5WnpJGboqifoKacsKajqLGstsiytaqsqpWRnJ2imZ+ls52aoZScn6arq6KtmauooaGporOtoqqzsqKbqqivr7ajk5akp5ibkXyqbJ6Eh3WreXywboKki4iflpWflYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUp6mQkpuMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNjjo+dkntwlpF9b3p0fHptXGZqcnFmgWleYVhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOT1BNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKdsrmsqqGmm6imqqypp6CmpZiqo5+uq52moKyan6mlnae1n6KXk6irtrKsm6acoJWQpq2RmJumoqCqp66ho6epsLTCsrOqraiUiZedpZuio6+ll6GVmZylpauarpysp6Weq6O3rKGxubCdm6+ns7SzpZWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpOEuHt8ebmCfszFwrZ4mqCQi59+mpaXinWel4qkmKOofrCFnISeg6x9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY+Ro5Z7fZGQiHN6coR+cFtsbndyaoFuWmNfaG5iZF1LTFFUQUhIRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CboayztKafoJWlrq6uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbW5pJujnaOTkKKxmZ2bpqShoq+tnaSoorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOoma2hrKSll6+lvK2it7eunZ61srmys6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJpmaOclYmffJiZhoePcq6CpZuijaaLk52JlJCabXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6WYfYuLkYp3fHiNgWxod2l4c25/dFxkZG5tZWhgSlpXWDxHR0BUM0BGPjwqKDYzLjAxMykmNDo7PD0/QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIquv7+7u7Wel6ikrbaho5mVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdppypkpSXrqCfnaWjnKectZqgqqO2q8Kwqaupoo2Ej5yioaajlpmanJibmKWkppiqpqyhpJusp76slb6wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qApKWInG2yb6CHrXyhj4OolpmArImEroWflKigopaFn4CZlYB7kn2rgJ2aloqqeJ2gj4iTkoB5r12jgXymp2SdgHyXdGuvXaVrcYWZXWBbjKBulZGmmYKTi5WKeXmCln9qbH5ifXRuf3lgZmVxb2hnaENZYFs9SlQyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2hkKqppJaJmpCusKymn6ibrZiYj62ioZ6loZqlnK2Yn6imtqi/r6WppJ+MgI6bm6CmnpKUmZqUmpqko6OZqKuroqOeqai+pJfDrKqjoqyzuqyvp6G0sKmrmXavfpCKnIWHfLqtiZhksIxlla19oI+Dp5aagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goGxbGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOqJqJlo+UlXl3jZt9Y3J9YYN4c4B8YWlmcG1mZWVPVWNbQVRePUkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqmhi5mgn52zsqieop+dtJigs6iqq56wrZ6sm5WuqaKOiJuOr62opqOoma6Tmo+pmqGepZ+Zo6OlmZ6iqbKou6+lqJ6dj3yLm5ahoJqQkZqbkZmXp56hmKitpqSkoqSpu56gxqelqaKrtLatrqegva6trZaBqZKjro6bgIakl5iPgYC4w7qDjpyThKeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWTkoKevb6EaqOBb6uEbpx/erKxx4Nqq7C9rXh3or67dICVjaabjpmPlZt4gI+ZeWJ8emOMZ3iBe2BrZWtqYlBiW1NqXEBUYUJNKTw6NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mprOmnoyYpb+qt7CnoL+mprGbnrGcuaiera+lp5WUr6yXjIOaka+mo6yhpZyqoJiLo5KmnqecmqGoopmeoKutqbmuqKSbl5N7h5mSppuTj5GYmI+Yk6iZn5ipqJ+ppqGiqrueqcWjoK+jq7O1q7CqobyosLCadHWqpLeFZYmfb2esj4qPbW93pJCZn4F1r5mVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlwaWeJlZWXcWhphYZncIZkXoljanBZXWd+d6ZgYnGOkm9mZICNko6il5aXj5Sde4aNk3RlhndojGp4fnlkbGNmbGJLZFhKa1k6UGVFUSdLOSsjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqrq5srOqqaKun6SzqpiSvbHDyL21qZ7Aq6yjoKarn7qjpK2srKaOlq2qj4yFlZetn6Wqop+kpKCRjKWTp5momZajqqCWnKWmp6+5q6yam5OSe4SXjaaYjpGQmJSNl5WnlJ6XqKKar6adoqy5n7DBqKSzpqyxsquurKi5pK+4loqhqKW2nImWoZeGqZqQlJ2TqrOZm6OsobOXoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYWApJqXlY2Lk5KKj4aEfWeLgHSDdnSHjHGnbXyVkZSTgYGPj4+OnZOglZaVn4GGk4twZ452b4p3dnx6aWxkZG9jVWBZQGlaR2JgTlkqRT0rJiI3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlVRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1uK+uorCkraChtrGQjqvEu8S6t6qhpZ2bpp2wqKO2p52ptKankZiso4uIiY+cp5aspKGap56fk5Wjl6maqJmUp6GkkJqnmaG1uqirmJqQjXyBlIyhlIqUkZWQj5OXpY+emaifm7Wjnaart6iuwq6jt6avr7Ctqqq0uqKvvZmSpqOmtaKRnaaejamfjZKfo6yvmqGjsamwmKShnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlJSFkoyQjJSLgH5mjId1h3Z5iINznGqHkZSUkYp9jJaSkpiSoJGblZ+ChpeFeHGUcniJf3F7fmpuZF9waWBbYFltYlBgZFBaOkdGRT0zPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlxeXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkZCco7K6rquroaKZep2isKSlsamWm7imo5SZqZyOhoqJm6KQrp6klqigoZKXmZyui6qWj6iZqIyYqI+eubakpZibjYl5gZSMm5OKlZGUkI2RlqGMnZ6onp63o3+Dr7WisK90pL6jsqB4eqCrs7yVdq6kn4qAqn5kW2F2n46knYOXfm6Ts5yjqK6ro2WeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkIWdmpCUgpKHjo6SiYV3a4+HdodxfIaBgGFpiIuVk4tbdpWRZ2iPjXF6o5eWZHiYhoB2l2iDiYJueX9rcGVfdm9ra2hcZmNiYm9SWz5NTk5SRz1AVEI5MS4eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMVFVVWVxfaGZnV1FKPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamto6etpZKWqrSusaWZqaarlnOLnK+fqKunk5a4oKCPnKSdkX6IiJqejauapJWnop6Ol5KehXWukImmmqiRlqOIm7q0qKCZmIuJdXaTjpaTipORkJSMj5KfjZqfppmbspaAjJu1nbSMko+9p6F+p6J6o6+4gY6Op5+Ei4WPsKmvjImWopl5gYushpydoqiqqIiVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpieYeQhI6PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg56bhZh+kYmBgpdpjYyEanh7cXBnZHdtaWxqW2VqaWVyW15IU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3GvLChlaWotJ2Pg5yrm6eioI2Qvp6ZjZ+aoJB9hY6Zl4irnaOWoKGSjZSJhoCRqI6Hopyjk5adhp+5sqedmpOPhXB1kIqVkIqUj4+bi4+RnpGWn6OVnayIn7SJtJqui8qIq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56nqZKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYWAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoKfmIGZgIqLg4iYb42ShGd3dHt2Z2h1cGZna15ibmxmbFhmRlxQTDJFNDZNYGM2JjQ8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqummpSfoqSqopWjqbair3+gppylnp2JlL2Zk42gkZ2QeYOWlpGHq5mcm5qhhY+Md5ucj6CRiJ6km5WYl4aiuK2lmZuNjX9ibZCLk5CNj4yMl4uQkZ6Ok5+gmKGofqGnh62doJauj5+dnZGGgaCNq7CHpI2qmoyafqN2gJiTa4GrdE2reIeNnZGbqaiCqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZsXXyXbl9TcYVcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+DnWdkn2xabIh6ZVlfgn5hV1BvdmVtdHFqam9eam9sa2hXaE5dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqK2vKuuopmXn6GlrKyfnK20oqeRoJ+fppyZjpi0mZCLnoyVi3WBlJGNiqaWlpienn+ThYaspIeckYqYqJeZmpGHpbCmopWZiImAaW6Ih4uOjomLjZKLkJGhjJOen5uipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHOTh5Z7nox5bYebjJmQm6mbj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbeMcYCbpGN0rKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg36jXp2Zs5Zve5ees3RyW56ygmlib3N1cWhvWWtscnJlXGhdYktEPUQ1UUFZcTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaWGBgfGRJQzhMV1VWYmFaZWZra2JiZWFkY2BhYmBjY19gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI6luLWuraCaopyjo6Ssm5qxrKuSl6CYoKSampSeq5uLiJJ4i4VwgJaNio+gkJOUnZd9kYmOqKGHmI+KkqOTm5qMi6iopJ6PloeEfmt7hn59j42Di5CQiY+Tn4KXnqCdoJ+LiXecmKKMoHKii4ipiJynkZeorH+ujH16oJl6o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG1xeHdraVtwaXh4Yl5lV2JBUERPN1ZCUm00SlpaX05aREAxNTE7OzdIPzpDSFU/WFJZXT5EYl1WYFFhZH1pRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppubp5+drZqdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIuWloSSlZiPeoqElqOdiZWQhoudkZybiY+oo6Cai5GKgIBpgYZ4f5aMe4iNjoeOlZp+lKOfoKKTmHJon4qgj4xwkoyCqYiZn6Opoah9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTX97e4VjephCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcHx9bmVga2h2e2JjYFFeVlxUVkBZRVFnRFJXW2JYX0lEPUI4QEI6SUU4TEVYQVZRW1ZERmFcWmBLYG1+ckVDPFVfYlplalZnaGxuYmZmXmFhXF1eYGhiX2VjdmxeZWdmbGRlbGhoa2mTnYGxrpmEU1+hp7S6s7OpmqKLm6mcm6iSoaujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZKWiHKAiZKgnHKRkIGImJSfmoSOqJyalYqLinyEbISFcYGhjHiFjYiHkpiUfJOkoJ6jiK6GfbWEj56de6aWeqmClp2Qi6Gefadod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTkHx6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqi8f3eDbX+/pqq0XptvfnGXb4FzonJdo2d0pmFopm2b05h6gptud3mXa5t6dpdybKmlZ19keXB+hGtnZmNtdndmX2FSW2VRUWJJV0lUX1dTW2VqXGVRRUNLTEpLQkpEOFBAUU5XU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZ2BiX1xdXV9oYmFoZXtkXmRnZGtkamxmaGxomJt/sKxUXEt+qbCytbCzo5yYhZimoKCijaSon5eoiZmXmJOZk5Kgl42IhXtwfYRofY+Dk5qBd5GNjolwf4aPkpJsl5N8iJCRo5WDjqqalJKKhYl5hHaHgG6Bn4Z3gJKGiJmhlnmToqOaoImzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphynoSirK6Jl4uAjKSNloOuopR2tba1yaF0lIqAn2Gel6lteJaGn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5qrdIKabXN3l2maeXSYcVBFfLNeanVqeIdmamdidHRwbVVdU1loUFJoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc354e251iXt7VFBPbV1oW2tpUmpoaWxnbGZjZV9cXFxeaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKKzq6+vtaKikICXqKKho4ukpp2cpYGal5aNl5CQm5KNiIN5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSgpepl4yRi4CJeoB9i3lwkKGGeYCUh4mWn5R/lKWnnJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOXcp92gImUlo+5bpCKomJ9maKViG5yaaprdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhyi5huoW9SiI9voF5kp1SLXVOYbW1yanGBbHBoa3hza29RV1ZWZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqSMoaGaoaGAlZiTjZqPi5eQjYp7hnGAiGiLi3yXmnN0in2Qe2WDh5WKipWZgnyIhZamj4Giq5CFkIqBin2AgI5zaY+lhH2Fk42ImJ+Nh5Kqpp6JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGk5acoH2menGolKCWZ55+b6tiloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm2fnpKVYX6ri6p2gH+Np593n32FpJWdoGmah3WrZp6tjLZzd76MpJNZg6aNq2F1cXNve3RwYmp+bmhsUlVaVWBhXWtNXVJdSV1sbXZgW3FZW2BaZ3Nlbm9yY3F0YHd7fnlyeYNzg36Be3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ2jiZqlnKidhIuaj4WckYWSjYuNdIV6iINvjYR9lpN0dIZykoJtf4uSh4aTj317gYSXpI1/paWNgI2JhJR1g4eSb2yKqICCi5ONiJyeiYyTqqOgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCZn6GEe32Ja4yFW3l5cnlwaG59kYlxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW96b26HbYSGX3doeI5mgYKGjqqcfnR9l2qJiG9/dXyEdW1sZoxzeHuXd4Rbalh4j2htd3Fwb3d3b11shm1pZ1ZZX1dcZGtkVWFVXlFfcHd5a2p3ZWpqanV8cXF0c2FvdWJze4F4dXmCdX+Af4B4i4WDfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscHVuWltia2Rra3ltaGxvYY6Vuqmni6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHKDcJWFe32Si4aGkIV4foCGmKKMe6ehi4WPj4SVgoaOl3dyhKmFjZKcj4ienoeLmqegoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMnJufj3OVi4hxdGuCdnN/WXJuho+BfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGg2l5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg2+EjHhuZGZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYpra2JZWV1aWGtxW15gWV5dZnN9e3NvdGNqaml7fHF6d3RkbXRobHx+dXl8e3p5f4B/b4aKhHt9c355c39pVFxxaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3N5bmhqbWCMjKuxopCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpJR/e5eEfJKZiImGhopyfYCLdoWLgYSWinFvgHKYhoR+koOEhoqBeoCDipqej4KmoId4jZeIlYuLnJeFg3qsgZCXmZOJnp2HiKGqn6Kio4yIk5uco5mWqqGnpqCSm4iXj3x5j46EqH5/kpGSk5ywpZqUnZCOspOYhKaMjJWboImQm4KJkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi5+LhpV/foyBgHZxdIaFgHiIh4qRppGEho6Ig42QjHyGioeOgHVrgYN7eZlpcmhgc4pwfXp2dW93dIFcXm+HaG5fXlpbXFNncVVjW1thbGh0e3xybnBjamlof3tteH5xaG9wbGaBe3KBgHeAfX+Ee22CjIZ8enh8fnqDeE5kdmpzbnB7ZWtlYmJgW3NmcGZycWxVXWx0bWl5enBnaWtljYidup+WoqGYlZmYlJikoJ17f5mqjZ2NhZ+cip6WfHiUgnuOmYmGg4SGbXiBgHKAh36Ik4RtbH56l4aEg5B+gIaEhn2Hg4yanJKHqp6CcYqPhZKRi5yRfY16qYONkpeVjpuWhoabpqCimp2Gg5KZmZiQmqafpp2dkJeBkot3fYiOhaV7fI+QkYaYqaGck5yPjaqOkoCejYmTmp+Dj5d/h46Cb3iFcXRgfoOPhXSLl4CDjoKGhH6FhJRueXV1k6KLjYabhYWOdICKfX1yc3uJhHt5jI6Ek6ePhoSPgoOKiYl1hIeIintuan1/e21oa2xnXnl+Z3x7dnN1dXp2XGBwfW10YGJaXF5RZm1TZVpdYWtpdnl+cGtsY2tqZ4CAa3KAbGt0b3huhHluhoB2goB9hXZygo2Ifnt6fH97gopgaXtrdWhpg2VqY2BpW2N1aG9idW1sVGJxeWRwenpyZWptbYuKn7iaoaSfk5KWl4uan56denedpZCbiYaklIuYmXl5jYV8iZGDjIKBgm18f3hygIV9ipB9a2h9gZeIgYiOfH6GhId8j4CPmpqRiKecf3CLiouShqChioWMfKeRh4+Sl5OWkneNo6ChnZaaf4GQmZiTjJqioaOal5Gbf46FeYCEj4ehgH6MjY98l6SgoJKZkI+mjZCBm5GJk5ibfpKSfoeOgXV0gnB2YH2AjYVxipV8h4txjH6ChYWOaHhyeYyZkpCAmH6Ii3KCh3x9cXp8jIV7e5KNg5alk4uGkXyFhoeEdYGChod5ZHF6fnh5cGxqZl59cmh8dXVzfHN/al5gc3Zwd2RjWV5eUmpoVGRYXmFnanZ4gXFma2NsaGV/gGptfmhvcGp9d4V6a4uBcoGBfYF0doKNhn58en+BfX+PanKDbnNpYYhpbGJfcVV0b21uYHhobVdqdHZidXp7cWJrb3qJjZ+zkqWlnY6QmI+GnaCanHx1o6CNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlJaVjZafmn1vi4GQk4alm4eMiYOllYSSipWXkpF2kZ2hoZiUmHp/jpiWjpaanKSemZOUm3qQhoN4hZeNnn6Bio6Mc5einaCSmI6PooyMg5eYg5OWmn+YjXyIjYF2cX1temSAfIqFcIaSf5CCa4eCgX+JhGV1b3yHk5iNfZR4jIl8gId9fHKAeYqHeYWRiouYopaChIx3iISCgXZ6gIiEdF93d3xzfXdma2RgfmlqdnNzdH1we2NjYHNtdXJtYVlgXltsZFJiV19gaGt1eYZwY2pjbGZofINraHRobG9of3yBeW2QhnGAgoJ/dHyDjIF/fnqCg358kG11iXR0bWWKbGphY3VWg2lxbmB4ZmxianZwZnl7eXFgcmyGhZCdrpimqJ6OjZeHhp+Tl5h8d6mciph5l5yLi5iQeHuAi318g3uAgoB4c3h6c32AhH+IioBkXn2LlYd+hId0fX6Kf32YhJaTloyioJd+cod7k5GKpo+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2Rk4mcnZ6mmJiNlZd0jo+KbIaYkJl6h4iQiW+XnZmik5SKjJ+MhoKSnH+TkpWHmYh7iYmBenF5anVse32LfW2FkYKTd2+Bg31+i4Bkcmp8gZeYhX+OdJGJg3mHfnZ4gX6HgX2EjoWNlKSQeYWDdImHfX9ydH+GgmxgenR5cHtvYW5iZHthbm92cnd3c3Nhdl9ua3Vub11bXl1eal1PXVdiYWhtc3qJa19qZWpjaHeHbWZsaGpsZ4B8endvkIdzgIOEfXSBhol6gn16gYR9fY5yeYt5eG5sh2toX2lyY4docW9mdmdtbGF6aGp8enhwYXdti4GZmqqgpKmdioqRhoqeipWXfXatmIyWfZ6TkZaTiHd9e4p8e4B2d3+AcHRzem+FfYGAiX17YVx+j5GGf4OEc3qAhnqPkYeRkZySpJuUgX2AfI2KkqSIjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQjpGInpmhoJeWiZaSb4qahWeGmo+UeomFkIpwlpqToZKSiIuZjIKAkZ59kpCTjJmPe4mEh3RzdWtxbnV7inRuhpCNkXF0gHuBgoh8ZXFteX6alH2FiXSRi4F0iXlvgX6Bh32FjYqFjZaojXuIfX6LhXd9cG5/hIJiZ3dzdG56Yl5vYGp0XnBqenh4bHJwZXhdbWxzbXNYWl5fYWpaT1dYZGNncXF/h2ZdaWhmYmdxjW5kaWdlaWiAend1b46Fc4CBgnt1goiFeIR8d4OFeoCJd3+LfHtyeYNqa19waHR/a3FubXFnb2xle2Jtf3l2cWx3d4p/o5iiqKGnm4eMioGPnIaTnHSAqpSRjIagjJWTkH90e3aEd3h/cnN7hWtyb3ltiXaAgIZtcFtZfpGNiICAgHZ1gH9/oIaPipGcl6CTl3eJfoCMiJydiY+GkpeWhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoJuYlYWYiGuGpINnhp2KkX+LhIuBd5OYkZ2RkIiJlY5/fo+YfJGNj42akn2Kf4Jvdm9rbW9weoVpc4OOl4lwd4B0goiCeWZ0b3aBmo98iYV6lZJ6d4l0cIp8h417i4eEiY+co4h8hHeCi4B4eG5pf4F/XHFycW9vd1pecGBval5vaXx6cG1tam12YHBvanFtWVhhYWJtV1FTWWVmY3VwhIJiXWttZGJma5JtYGZmX2drgXVxcnCLgHR/goB4doCLgHmFf3eHhnaDhXyHjIB7dop/anFjfGOGfG9wbHRqaG9sdndfcX55e3R1dH+Cf6WVmq2fp5aFjYN/l5WDj551ip+TkoWKmoyVjYt6cnd0gnByhXNxdYhsb211bYh3g31/bG1VUYGrlIeCeIB2coJ5gqCBkYGTkpibkZp4kXqCjJKkmpOOiJWYkoOGlpmMk4uJj4+InoWQin1zi4WIj4icmZ6blpSAlH9php2IaIehiJKEkYOJcYORl46ajo+Mi4+Nd3uSkHuOjI2Rlo18iHyAa3ZqbWtrbHp+YXl9jpWBdnqBd4OMfHlndWx1h5aMf4iGe5SRcXqFcHiNe4uNe4l+g42Rnp6FfH14got9dnBoa4CBd152b21rcHJVXW5icWBfbW55cGdwZmdzdWhwa2F3ZV1WZWBgclNQTltmZV14cIh8X1xocmJiZWaRaV9oZFtncH5va3Fzin12fYWAdHV/jHl7hYB4iINzhoV+jIyDe3mVeGZyaoNgh35vb2t6YGludH90X3R9eIZ4dHKFfHmhkJqxnKaOg4p/g5qIgIuefoqZko6EiJeNjo6EdnR2c4Bwb4VzcHGDb2ppdm2Cbn18bXVzUk6C38mS1pN8cHSDdYOggpJ3lJCYm4+Ye5NyhZCfoZOTkIqSm5OFfpaViI2NiJGNiJyAjoF4eox+iIyJm5ucmpWTeY13aIqSiGyJpIWTiJeDhmOMkZiOlImWi42Ki3F7lIl7jYiKk5GKeoV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp6aHRrdIuQioKGhX2WjGx+f2+BjX+NiH6EeoOQlpqbi3x3eIOPeHJsZXB/gmtodG9naHNsU15uZHBZX2txeGZramJmeHNvcGNfd2BgVmtfXnZQTkxgZmNdeXGKdFxbZXZgYWVljmNhZmFYaXNzbmtxdot8dHmGgXV2fotzf4Z/eol/comHgZGKiHx+mHZlc258ZYh/b3BsgFpsbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFd4iVf32JnIaEn5COhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcIWLo5eJjpWKkJ2VgoCVkIWJj4CSioqXf4d7dX+JeIaEjZual5mOkHaLd2+Iiox+i6SFkomdhYVei5SXio6IjouKhIlse5eCfYiFiZGPhnaFfX1rfWN4dWlteHNXiHqRhoR5fn+AhYx+eWZ0aoCKj4qDg4CMl4ZsgnZuiZGDkYV/gnqAkZaUmZB0dHiHjXVzcGZ0eYFhc2xvYWh1ZlJgcGdrVV5tc3lgcmNfaH1xcm1aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR5XmBkZoRfY2NeWGpya25rcneLfXN3hIF4d3yIcYOEfX6Ie3SLiIiVhox+fpdzaHVxeWyMe250cIFYcXp2eXFkd3mGjGl2gIlygJ2Imaico5KEfXCMlHh5i52EhKCNjnyVjH+Zh4R7c3dwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2iZqIjWmXj46clJKBiHCFiKCOhIuVioyYk3yNkoiDiY97kYuGkIJ/dniDhHKHgpKblpOYhox2h39xhoOKh5qig5SMnoOJYYOVjoaJhYmMh4CHaX2Uf32DhImOjoJxhn5/cXdndnJpc3drWox9koGEfH+DgISKgnZidGyJgpCLgn9/k5F9boJseYeQh5OEfYF+gZKUkZeJbnJ6jIZ1bHBqcXd/XnNoblxqdWBSZHFoZlNfb3Z0X29gXWiCcXJpV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVuanR3in5zc4F+enZ6h3OFg3x/h3d2ioWPmIGNgnuTdmx3dXl5k3VueHp9WHmGcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYmZiIl7n3+DmX+BeXJzbm9kcn5pZmx3d1tfeHp6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIdqmI2Im5GLhntoh4uZhoGSkYaHl418jYyAgImNfJCMfoqFenV7gnpxhYCUmI6Sk4GJdYSHd4SAi5Sdn4aWj59+iGF/k4eEh4OJjX9/gmZ9kYB+f4KMj5B/bYJ8gnRrbXZ0c3Z1a2ONgY5/hH58hH+EiH9wYHNxhnyPjYJ8f5KJenGDZnuEi4eNhHyFfoGVj5GThG5weYx+dW1uaWp5fGFnaWlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE9mZFxnbnGAa1pbY3JfXGNsd2RlXVxabGtibWpzdoZ/cW9/fHx0eIV4hYJ8gIh1eYmBkpV8iIZ2iIFweHl7hJNvbXuBd16Df3SBbWl6c5RzZ3KIfXKSkYSan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fndxb2xqYXR8Z2JpdXpaX3h8eW1xfmVjaGhXnY9ecXKWvMSEdnGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJuMfIqGfHuJjH+UiHWKhnZ2fYFxdYWBnZOFlI+Dg3KAiHWFfIqZnZiHlI6dgIhmfZOCf4WDiYlxgX1mfot7eX5/h4uOfWmAfIN2Zm94eHN2c2xqjYWKgYl/eIGAhYN/a19yeXt+jYqGfIKPgX5ygWl5hIiMhoV5hH2BmI2QjH1ubXuJfXd0bmdme3ViW3BiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5aW15sY1pib3dkZ1xdYGxpY2xpc3aBg3Fufnx/dHWDeoOCfIKFdn6IgZaQeIOKdIGIcnl4fo2Qb297gXFpgXl6fm1se3WVa2p3hHRslI6GnpigmYWIbn2Mdmp4mI5+gYqClZeJeY6Wb3pzcGxqZGBzemhgZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnJ7kIqQd36UioSZkYyFbmuFkpF6eZKGgISYinyHf3h4iYqEloBwjIhxdH16aXmFg6SQhJOMg35vf4N3hHmGnJmVi5OQlIWHcHuSgn2Cg4iDboF3aICFeHJ/f4OKh3xlfX6EdWNwcn9oeHBvdZiMhYKKfHZ4gIR5gWtccX5zgYiFiX6GiXuJcoFucYWHj4WFc4R6gpmNjYR4bm9+hH92emRnaXtvXlh2WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manBgb05XaFE/WWZeWm9qZ3pxWlpZa2VZY3F5X2hcXmVtaGVraXF3f4dvbH9+gHVvgnuAgX+Df3aBhYiXinGCjXF7hnx5eYSTjHVqen9sb351f31vcnt7lG9ugX94ZpOLg6GZnJKChmeHg3BnepWIfX6EgZiJgXyNjGl4cmtsZl9hbnhtX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF4hYiOjXaDlox+ko2Mf21shY2Mdn2Pf4WBlYh8gnhudoeEg5d3b4iFbHV7dGZ5goOmi4KPi4N9boB1d4R6h52RjJGSk4yLhn57koZ3f4SMg2t/cmiAfnhtfHyCioR3YnmEgXFkcWh+bXRxdIGbi4B+hX5zdX2Ac4FvW21/dXiLg4t7h4B8iHh6cWyJhJCEi3KCeoCXi4t/dG1rd4CAdXVcaGd2b1hWe1JZb2RMWnJyZVtJcHhvXFpaWV11fnRoWWJbZ2VuY2lMV2ZRPV5lXF11ZWB1cFpZVG9kWWRxeVpoXmBnbWdpbGlwd32ObGmChH55boB8fIF/gnp1goGNk4VwgItud36Ae3uIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgYBsjX5raH6NjHp+f4OUgX59iohrdXFnaGNbYmdybmBha3NhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ1hZaFc4+KiXZwbIWDh3V5iXiJfJOHen5zZ3aJfn6YcHGGfmh2eW1leYiEpIaAh42Jfm5+doCBfYyaiIKUkZiJi4SJfI+IcHt9hHtofmxqgHt6aXp2gYeAcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR/bVhwgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4mIem5tam6CgnVuXWdkcnBRWnpNWm9cTltycGRVS3N4aVdZWVphcYB0YF1dYGZkaGlmTlpoTkBhZFtgdWFddW1YV1N0YVpkb3JXal1haGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuHb3F3hH97iY2Pg2p+e213eHaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJB4fXuBkX9/foqDcHJxY2ZeWWdfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDcpJ8eIaTgnORjIdycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZnd3VjanyCh52Bf3+Oj31yf3SFeoCSkYN5lo6Vj4iCiHuIiGt4eX51Z3pobH95c2l6doCDfWhgd4d9ampzZ3uAaXaAi5CUfnp9fnB7dnt0fmJWd31yc4qEgn2DcYeKd3hxcISCjX9+eX59do6Gg3ZpcWltiIJycF1nYXFtSmV1S11uVVNZc25iUU9zeGBSWFhcYW+Cc1thXGhlZWNrZFFbcElEY2FaY3BeXXhoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeH1ye355goGBfHZ9g4iGg3B3g3Jud4OCfYmLk39wgHt4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneGe2d0hYuQen5/e4iFhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJd2+MdXuGjoB6k4l/dXR1fneAcHF/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZJ9eXttiHeBkoyEdJaKkY6HhYV7f4RsdXZ/bWd2ZW17dW1qd3Z/f3xgYniFeWh0dWJ9e2d0ho6MlXt0gHVxf3p8bX9ZVnR/cHWFh3+BeWyJhnR5bHWAg4R+e315e3OLgXxzZ3RlbouEbXNbal50ZEdtbUxaYVdWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGReb2JUXXJHQmZfXWZoXVt7YlFVXHVbWmdrYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcX90cXV/hYGJjYp7d394g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3lefYWYjHmGg3SFhoR3iXtibm1cYltbYVZqc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8hIl+e5GFeXlzeXV1fGpsdWOEdZKCd29mXn2CeouJZnKCa2pxY1hteoWbiIGBc5eUd398bolygouMiHKYjpGJhYuDe3h9cXFwfWZocWJteHFqa3F4fXx6XGR5gHdpdXhlgnZndIeLjZR8cYdqbn2BeW58XVhyf250gYt8gm9vin9xdmh3f4GAgXd9cXt1h3x6cmZzYW6MgmxyWGpddltIbWpNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmXl1We11PVWRwWltqaF1XaGBfcmVqaHJncHJ3hnhulYp0f3p3fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dIt+fYaEhId/fn59h398eHZ5eJGToH+MfYttdYB5Y4OGloVzkYpvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5/eHmLhGdxfmhra1pWb3eJo4GEf3GZk3GAeXWDboGDkohzlYiNiISJhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjIWVf2+LZmp6g3VtdGJccH1sdX2MfIFmdYd9bnFodX94fn9zfWx7e4F6eHFmbGJuiX5tblZqX3ZVSmlqT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpEalphZFdZVXlZTlZtalldbGVcWWVjXnRlbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeXt6c3OFhoiIg3iBfXWPfnyEio6EgoR7fouDe3d8d3eanZd6ioKGaXZ9fGyDhJJ/co+CcIWCfoF/b2ZsZ1ddW1xbVGRwZF9XYnJ1aXVwZWViV1xcaH9wb3KAc4lkZHh+aXR1c3KChHiAhHl3dHVta3pxYmdrZ4Z0jYNuZl1ffXB7iX5pbXhmaWRVV3JvjaZ8g3t2lpB0fHN9e258fJGFd5l8iIaDhoN9dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dGdwgHeBdWJ3hYp8lIBui2pteoFxZnNlYW57Z3N4inx+YnaDdmprcXV7cXp6dH1mfn9/eXduZGZiboV8bWpWaWFvUkpoak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFpjZV93Zm1icGlzbnJ/dXSagXd/gHd/f4aEenx1goR+l4VucnR8enRxhIWPgYB6i3V0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLeW+Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFze2lobWlgYldfW2qAaWtvgGdrYGh5eGpzdHRuhIF6f311dW56aGp5al9lbmiBdo+EZ2VYYndpfod7b2lwZ2ZdVVhvZ46od4F6fJCOeXVwf3BzdnqPgHiVdYaDgIWIdmpydmdobltsZF1tc19nYWp4aHttWm2CcnNqb4B+eXdhd4SEd4+Ecohxb3l/cWNwaFxweGRxdIh8eGNzgHBnanl0cmx4d3Z4ZIN7f3h2cGRjY258fGtrVWhhZVNKa2dPR1JrRWF4Z2FNU3FcSk1UWWVrd3tlX21xaWRdVmBWbm5XS1NoV2VeWE5VbFRKXHlfW19rXV1bY2VgemhrYW9vdW5veHV6mH13gIF6gICHhXp5eoN+gZOEcXR0f3l2dISIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoF5dYB/gXRuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedYJpXm1sXGFWXFxsgWVxdH1paVxrdnVndHdybYV7fX15dXJseWhpeGZdZXNoeneSgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp25+d4CLjnpwcX1oem96jXx3j3KEfX9/hm5kdXNkaGhca2Jdb29bZ19tdWR6aF10gG9xa3F7fXV1YXSFinqHh4B/d3J1f3VhcG1acnRicXKFfHVlcoBsYWx7b2ppe3l2cmaFdnt6dXFkYWVtc35pbFRoXlxUS3JiUEZWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1dnWFlJV2VRSGJ4Wl1fbFteXGFkXn9pal9udHhub252g5d5coGAfH+Ii4V9dXWGeYeMfXN1dYJ5enqCi459foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXGHeXN8e3Vyb4Vse35sj3picG9iZV1lVllZVmNma2BdXHOFaFhwblpeV1pcbHticHd2bWJabHNzZ3R1cGyEeX6AeXdubnRlaXRlW2h1ZnZ2kXpfXVJmZmuDgnR9YmNpXFRYXWJjj6VoeHSChZB4bW96aHhufIV7dYlzgHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYndkW29xYnFxgnxzZ3KAZV5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGlTZ1hYVE13X1FKWVhIYnVkYUlUbVNKTFpXaWxye2JsbHNjYVlZW2F2W1NMY11YaVNXSFlhTkdpdVheYW1bW19iYl2FaGdhbnh5bG9qdoGQeG2CfoCBkoeDgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHhzd3VsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcm5bWlhYYGx2Y2l1amleWW1zcWxzc3NqhXx+f3x2bm5sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY15TWmBbY5GeZXJxhYSRdGxrem1vcHt8fHGBd39zenp6ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2aWlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbmJxc4F6c2dvfltgcHFhX2pxfmxsdX5zcXhrcGFcZWxsemFnU2ZUV1FPdVtRT1lSSGN0YmBGVWpQSVBaVWtra3xlbW9xYVtaWFlscFdTT2ZXV2hTVEZaXE9IcnRYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fXSCgnyKjoKCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntld4pubnpuZnhwemtzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT29uXVZYVWdqdGdidGVlXVludG1wdXV5a4d8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3p+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+b2hpc3FzcHR1am2EkoGIe4VxcmZufXByb1NbZmtmcXSBd3NjbHZVYnJrWl9vZn1mbXd9c3Nzam1gWmRqandeZlRkVFVQVG1XUVZTUEhkc19hRVhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVllVFNIWlpQTXh2Wl9lbGlZYmBeXo9uYWZseXVub2h2dn9/bIN/fYaXe3+HgYp+a5OIcmd0gHt1gIJ8iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGR7cGZ6c3hsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbWBUVlNvZ3NsZnhkZFxYcHRscXp4cm2Ie392nHp5a2FlbG1eYG9qZXF4fmdaVlhgbHh8e3CDX2JeZ1dYX1dkm4hia3GBh313a2t4bVx3cWx7anZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfWtma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFpaW90gXRzX2lsU2VxZFVibmJ6Y3F3e3ZrcG1qX1hhZ2h0XGVVYVVSTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dV1fZW1oWGNhW16OcWJnandxc25ndnR6g3KBgnmHjX58iYeOem6QinRsc4J0f3+HhIaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjY2NjY2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2trqSfoKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS1qKOkpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGQj5CQj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkIqQi4uQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjIyMjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4iFiYuGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GioaHh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mIjoiEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoeHhYiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqKjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj4+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozw8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Oz06Nzo8PD49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk4OTtLOzk6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIGAgYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0+Pj06TXpSOj09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMS0lJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT8+PUBIR0Beemk9PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKS0tMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRURIPztAY3x7dXN4bDk5PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QTkw+QTw8PT8+QkM/P0FBQUJARXNiP2uFhISEgXlsOzk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISkpKTEpGRmdwb3FxdHZ1d3t8fX18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9NdHptgICDgXuDfnBAPT0/Pj0+Q0Q/PDw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbW9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQE5zdYB+e4ODfISEaEFBQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFASXJzf359hIWFhYZdPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVEZnaAhIWFhYeHiYJKREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdZeYKFh4SBhomJjGFAQlV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTExghIeIg4GDh4iJe1dshIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSWSHh4WBg4WAgYGDhIaFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKbIeGgn+Dg4GBg4ODhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphYGAfoCChISEg4OEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDRXWFf4CBg4ODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlHgYOAg4SFhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pMTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PFaGg4KDhYaFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCYIeDg4WGhYWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVkiIODhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkBAQT9CQ0hISmCGgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDk4PDs8PTo/QD5AQENGSkpQaIODhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSURKSEdMSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9ARUlLTVZzg4OEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15RUVBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/gICAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVVRWVE9PTUpMSklJTE1LT01UcHR2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1ZWFlXUlFNUFFNTU9TUVFVUmJ0c3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af4CAgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhaWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJUVVpcbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f3+AgH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNUmRzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTkhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVZQTUlDRj46OjY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUkxYWVpWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFFOTElIQz9BOTk4ODk3ODg0NzU3ODU4OEducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pHUFBPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eHt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT88PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTEpNTE1PTltWS01RT0hKSENJSkxMS0ZGRkQ/QkM+PEJGP0I/QWRxdHd6ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUU1PTldLTE5LTE1MTExLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc291dGxwcHJvb29ydnZyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSkpLSUlMTU9QUlBLR0NMR0NDSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xbnZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISEpMS01dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0VHTE5IS05IREhFSU1OTUdJTEdFRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUNAPUVFQj5BRENDRUdISUdNUElGRkdLTk9LRkhKRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJFR0pGSUdJR0ZGRkVEQkFBRkZDQkJCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVNYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZHRkZFQ0NFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJOT01OUE1MTlNXVldYVlheW11kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQ0dIRkhGRUNGSkpHTUpMS0hKTEZJSEtIRUtLTE1OT1JUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBfaGVjYGRlZ2dqaWhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3JzeU1ISEdJREFDSEU8QEVDRT04Oj4+PDw8QUI9Pz5BQkZDRUJCSENDREVGRkdHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllcX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRUNIREZER0ZISEZISElLSkVKSEhLSEZGTEhISEpITExMTExJTUtNTk1PTFBQUVVWV09KVlZVU1NSUUxPUlJRVltbXV5bXF5gX2FgYmRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZJSkxJTEdCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVFRkdFSUVGRUlIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5PTk9MT1BSVVhWTU5UVlVTUlFQTU5UU1JXW15eX11dYGBhYWFgYmRlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEdIR0ZKRkNHSkdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRUJISklISEtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE9OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0RCRUVERkJGRkdDREpERUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NSk1MRkpOSElLSklMSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/P0ZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJAQkZER0ZLR0VDQ0hLSEhGSkxMRk5LTFJSTEdNTUhOSklITkhKSklITk9OTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdzSEhGSURFREZBQEFFRERHQkhKTEdGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUVFSElKSElLSExKSEZISEpHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93h4aFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBP0hJR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QUF1fYWNjY2NiXGRjYmRjZlhRVVRTXFhbYV9eX2FhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUJISEFBRkVEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUlJbU1xeXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eIh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUlLTkxMSUxLSUlHREhLUU9NTFBMTEtLSElDRUFFQ0hHQkFGRUJWVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PT01OTE5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlbXl5hYWVmY2hja21xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdIWU1ISEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTT1BPTk9OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBmaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE5HSE1RW1lPUFBOT1BQSktQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JfYGBiYVphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdXpufH15eHJuTkpTdE5DQkVQUElLS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSkxyb3V1cXVxZGhhVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFNTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11eX2NaX2NjZWZkY2NiWWNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUUtRTUtLT1JUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUFJVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmNkZ2VkZGFZYGFjYWJpaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktLTk9MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBNUk5LU1BNTlVUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbU09TVVdVVFlVV1lUUlJXVVVXXFlaYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWFZdamRWWFlaV1ZUVFBLT1ZUUE9UUFBRTk1RUU9SWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tWUFNWVVVWWFRXV1RSUlhWVVpfWl5gXlZeXV5gXVxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1JTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VV1ZbW1dQU1dVVlhVU1haVFNRWVdWXF5bX19gVWFcYGFeYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNYVlRSVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVlxcVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRoXlxkYGFgYWNlX2JfWVpeW1xbWVhZV1daW1phXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVtgXGBVXF1panJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU05WUlNaUlRVVFhcV1hYU1hcWF5dWVteVFVOVldXXltYUVRVWFhYVFZYW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZWdeXWRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVV1ZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYVlZTUFdSU1dTV1VWW11YW1lVWl5XX15ZXFpSV1JZWFlfWlpTVFZaWVpWV1lcVlRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhlZWJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlJZVVlaWmFYXFVXV1paWlhZWlpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWlxaVlhVV1taWVtZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlleVldaW1tbWltZW1lZXl9gYGRjZGVlYmRaYWZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWldWWlVZVVhXWF5gYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWVBWVlZWVlZTVlRYXVxfYGBdYV1XYF5bXlxbXlhWWFhbW19gW15YWF1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWhfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWRhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gZGRfUlhZUFhWWFhYV1ZXVl1eXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFdW1pZXF9iX2JkZGVmZ2diWmVnZ2lnY19jXmFmZFpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xYV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFdZW1pZV1pZYF5hYmJgYWNfXGJdX11bX15ZWVVYXV1fYF9fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZmhoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxYXVxeX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tkYWNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmVnZmVmZV9mZ2loZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLS0uFEmKysrKiVikoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL/ESRQbGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enp7eG5vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgIF3cnNzc3NyeX19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt4e3p5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enx9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt9ent9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8fHx8fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8ent9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fHx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYaFhoaHhoaGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhISCgYGBgoSFiIeHh4aGiIeHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KDhISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoKBgY+IgYGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9/gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgoGDgoCEmZGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCf359fYiblYWEgoSCgX+AgoGCgoGChIOBgYGBgoOCgoKDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODhIWDgYGDgomIhX58fH1+gZqYhISFhISEgoGAgYKDgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB/f4CDl5GGfYF+gol+kpiCgoKBgYKCgYCCgoKCgoKDg4KCgYKDhYODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSTlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf39/f4ObnoWEin+AhH+CiYKBg4GBgYGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZiih4WEiYZ+fn6Bg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkJ2EgICBgX19fX2FhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOGjoKAf4WMgX19fYOHhoOAfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgX+AhoaDgH9/gYaBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOAf4OGg4KDgoGAgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEgoCBhYSDgYKBgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4ODgoOEg4OCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhIKChIODg4OCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIKEg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gYCAgoODg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4ODgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+fn+Af31/fn1+gIKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH5+f39+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCgoF/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fn18ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOEhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYCAgICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCBgYGAf4uTj4yLjY6NiIeHhYWEhIOCgoGCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6Ck5GMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIWEhISDg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBg4GFhoWFhoaHhoGEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiIuJhYiRjouIiYeFhYOCgoOEhIOCgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAf4CAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICDgX+AgYOBfn6AgH1+gH59fn6AgH+Bfn+Af35/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fImKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYWGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fXx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goR/g4KCgoKCg4GBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIODg4F/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH99f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGAfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh4e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd8eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfnp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOCgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgoKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx9fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5+f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhIOEhYWDh4aGhISFhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf319fn1+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYSFhYWEgoaGhoWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f359f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiGhIaGhYWDhYaFhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomKh4aEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoKEhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEg4WFgoSHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fnx9fH98fn58fYGAfXx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOCg4eDhIGChISDgYCAgHt7fn58fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4aGiIWGhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHh4eIhoaEhoWDhIODg4OGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHh4eHhYOGhYKBgoKAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoeGhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFh4aHhIaGhoWFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/e4B9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhYKFgYGAf3+AgH5/gIF8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/f319fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2dfX19fX19fY19bX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiqC6uLi4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ5p6Ojo6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpXfKikpKSkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYOsqampqampqampqamrnGJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvO0tLS0tLS0tLS0tLS0tDNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/SuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqnazVwJSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqczqOgi5HDk31+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZmbuah5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKC+mZCfoNLTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SbvqmvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2Qoaygmq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJugmqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk3OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqfr56cm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannM+mq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbWy5KQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0dTLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZAQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1tcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG55amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHHwcrKyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW9zYl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLyLu6yMfJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm7vcHHwcTIxsfJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW3sq66vLbH1LnLvsG7v8G8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W308CY1Lu/vLvDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y3u73BxLm3t7a1ubm5utK0jLjDwsK+x7e5uK23tbi6tLizu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSvsLi7sr2+u8S2tbi2uMDAxbvNqISVwsvJxs/CwLiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsbm9vrK6vrzFuLG4uLbDub/DxJ+Ei7nKzM7RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8wr3NxL27xL+5sZWKjnqIla2XhYyuxsnIzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby2urzGyNvCtb+8sIxqcXFYYmZ4iYqNqMHGwsfLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7vL260rLByba0knR5aGJ+aVtaXHCKj6m7wb2+xsC5wLy+xcS9vbmysK64t7/Dx8PEvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt9C2psa2jmdSbm5Pc4t/d15ZfpKxube4t8K6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7bJtJaxoWdYVYtwU116goeATWiYtbaysre+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27xrKTnoVYU2ecZlJXV5Kpflhap8O5s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY1xmWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLq3u8+5mJNyUmWOfGZUYm2lvYZjU3aeu7axtLWytK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWztbnHvqCSZFKLmXJ6eYtygpJ1cHVtosG4s7SzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7KywL6snFZelMSVgZiSZnV1doB+fa+/uLGss6+urK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqqufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqp73JtaRWZIWTfml0bGdjZmt1cXCQrrOzqrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpamxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR05STkpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpop+0z8CsXXh1eHRkaVlQT1NSV1dgd4apta6vs7WqpqyropyZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ6eqc3NmW96dnRjU01USFBJUE1MVWRniLWwsLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlRMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbnqTKsGhqa3NiUlNVhXVqU09KSlFWWWOnr62sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpmem6GhrJh4bmtgVExYeqqwoGxSSEVHTFFWjauqqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8tr2zs7WirKKpqLKpq6inqJqZnpqqp5+Zp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqcpKCfiG1gVVBRW6Ld4MONcFtLREBEYZawramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDu7ezqbOtqrO0r7Ouqq6jnauntrKsorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERJT0g+RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flHNiV1NUWW2z3Mawq6yMbVVbgaywpqOjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+6uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH15cWtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bnYlfU1FVWW6HtcWzlJ7YyqyjsKygmZybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcG8w8G+v761vrOtv7/Cw8fEx8SuvriyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB4dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnZt8U0pPUmeDoraypYmtzLuxrKOenJ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnR2aGNndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGlcU5FTVV3k8XKrpyjsaminJ2coKSgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLJz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Fyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2b2NgZXJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+hrHhNSU5ehLfb1bitqpqUl5+bm6Chn5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Sy87QwMbCx8XOzdHR0cjLzcDKzMXTzszOyMTJxsbIzMrT09HVz9LM08G5xbGlqLWup5qorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiio7OLW2VtibfXxq+mn5eVl5manaCcmZydk31xZWNjX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzsvOzsfL0NDKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenVvcG5rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaOzm3iKp87Us5ublZOXm56enpyUlpiViGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKv8nBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/MyMfLxMbBxcrMzc/RxtDOzc3Mz8XHwLi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcmttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCro4iNkrjUrJSNjZiVkJSSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHzMzLzsLLy8jHzNDExce7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62jtZJogIjErpCNjpePhoOEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7FvLzAw8XMxcW7wMrCxcfSxMDIv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7mCYn6Pto+KkpeHeoCFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7W1vb+7zMO8tbrIur++y8PBxcLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q6yub2V2j5OLiIqFeYCGhoB+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0urS9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vb+9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvHy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxM/N0s/NxcfBxcC+ubjJtqqvo2VpdYyPhoiJe3h+hoZ3eIJ9dGleXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramrqbSutrCyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwscC2uL2vsKeys7S7vKuttaauta+7srCpubCtu667uLvAv725wr/Hw8XBvMbBx8u4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysHJyr7AvMG6srS1xK+qr5thbH+RiI6Pe3h+ioZ6e4SBd25eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttbaxvbmvt6+prre0tLy4tLyvt7m1srvBssCupamiq7Gys6i9qquoq6yttLOmqK2hpK+psqanqK6lqLessbK3urq7sry9v77Ev7XCwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+ucq3wcPBtLa8trGvtbyuqKmXZW+Ig4iLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6km5iSoaOqpKKfpaWnpa2gnZukpqyyr7a3p7CrqKq0qrS6sba1rra5sa+6urG2pKCkn6axp6uouaqkp6iop7KtoKemn5ukpqyen6ekoKCxra2ssrSytLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPycvCxri3x8HMv7jJt7vFuLPEt7O/wKy2vLKspa+0raCilGx4hYaGgXx5dXNvbWtqaXFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5aboZabopiWjZ6ho6ebn5+jpaKonpuim5+rsKyxtqOpqqmsrKS0ua23sKyzta6yta6wqp+dn6SisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7usurqxop6pq6eXnZBxf4WGf3hybnBua2JeYmZmXF1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRlZWZmaGlrco2nnZSVlZuYm6KWlpGcoqKonZudpaaippygoJqYrq6trrKgpaKtq6ehtbGysqyor7KnurOmtaCinpujoq2joqm1qqKjpp2mpqOWmJ6XmZqdoJqXnZycm6yhq6ejpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxsDFtsG/x863wMS9s7m5sr+2sbi6rbK1r5+ao6qhkpmNeX+DhH94b3F0cWhmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVmKCeoZyWoaKppJ+eqZyamqunr7Cqm6OkuKmgn66otqqmp62wpLewpLegopuZmaqmoJqsuLCioaScop+fk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrai0q6qmrbKwpaqusrGwr66vpqensq6xtK+8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeno6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa28u7W7vLW5ubCwsaqcmaGplZCJjIGAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaoGWk5WMkpSUm5mdlpacoJyglqGgpqWkpqefnJ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWqoaGUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJedppunoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpqyvtLGuvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wrt7e9tr27u7azra2omZifo4uIc4mIfnZuY2FmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2BhY2RpgZSTiZGPlJOUnZSVl6SZoJecoKWhraakpKOjopyqq6WZn6WxqqCgnaWrnaeinq2sqamtrKGiopWYo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaKdpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUU9IWltPUklUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcTJrLG4wrW8wby0tausppWZm5uHf3KIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2OkISRh5CRj5mTlZOcm6Ocm6CoqauorKeopaOYpK6klJmlr6mfm5mboJ6umZurs6Clpp+io6GVk5uWlpKpqa2anJ+hoJqUkIyZjoyQjJKNlpWQnqGgo5ybo5WboaOhl6Goo6Koq6Crr6Ott6Wjo6Ksraqoq6+yt7K9tbOrr5iEc3NoW1hYUlVRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vDyLGsuL+3vL67tLenqqCWlpiVhXl0gHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugq6qmrqyor6Oomp+soZWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6qlmpmZnp6VjYyLk4aIjYOQi5GVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXFyYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2t7y+wcOxsLK4rbS0u7S2paSdnJeWkoF+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudp5mgpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5yRkYeUjouBi41/kIqSkpKgmp+ilZOYmJWippmMmaSmqKahn7SyqLK3oZyit6yqraSysqW1vLWrq7GjiXhybV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWks6qissO1tbKzxsa3usPKzMazrLm9tLfAr62psZ6mrrqwsKGbm52Vk4Z6gm1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWWopuVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifop6Qk5iWhY2ClH5+dImOeZCHk4+QnZqZmpGVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+YpbimprGhsa6csLuqqa+qmYJ2cmJVTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuK+0sMnEt7nBzsW+s6y6wautw62ooqeSnaa3rqWikJaXk499d31lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho2cl4uUkJ+YnZWUlpSOlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlo6RkIOGfZN4cW+FjX2JgZGNj5eamJOKj4mch5+Yh4iWnpqhoJenr6mtqKiflq2zoqaumayrmKe0oqmto5N+cm1fW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mno6mwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Zg5ScsaSdmoiUkIyHfHN1XVFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhZWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh+ioiVio2RkpaLhIqIlISajIKEkpqWnpyUpKOoqaWknpuwqqGkpJGmqpahqZyipqiJdWxlXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Kvoaeopaeor62qtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Wjn+KlKmXmI1/joSEfXdxblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndndYSEhIR7lYmIioyLgH+Ei4x/lIN7gZCYlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToJ+Wnp6kgHJoYFxcSlZPUkdKWFJPSkxNUkpKSkxQSExRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY6UgY6cj5SBeIh6fXdwcGlYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjY99aHmBdniAiY99hJiSgXKHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubWViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegn5agpq+srquoqbCvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY+FknqJj4yNeHJ/b3ZxbG5rWEtGR0VBQENESUxMTVFSUFFTVVRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF5lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlRUU1hVTU5ITkpNTkpDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+qu8K/pqKZlaSXnY2Ei5ShoZiYkZOLc456gIaNiHZwdm1xbWZsa1lORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn53eXVqeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllYTklIRUpKSEZCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq+rsrDCsbvDx5qWjpSZi42FeYSQmJSNkIyPhnGHgnSHjYh7cXNxb3BmcWdfVEZJQz88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKglXN4gHN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3VuY3aDfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo96cXBva19aXF1bWVhgXlJOW1pYV0xISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSh5aRnqSnnq+VpbWqrrGuwbK7wcaWj4yUkICIfW6BkJKJg4qHj4V1goRslYiJfHV4eG13bndkaV5JUEc+QDc0NDg7Ozw9PkBCRUhMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHN6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfHV3e32JdW9yc2VmX1tbXVNbZl5XUVVYW1VHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx4in+UjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX9wgX56aHZrUldMQEUyMTEyNjc2ODg6PD5CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdxeXZobWtfdn2DiX+IhYx6lZ6biouIkX96dYt2fHdtb3d+f3NycWpaXVxbY2NYZmVbVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+Wl5KXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeJfnOEeF9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtyhJ6fkZx/doWFio+IkGpob4OAdY2GhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaJjph/e4GJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWU9LTldSUUlQSkROR0NLRENBRENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBmeIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGLi4KJjYN/in9scGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4GWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfIB/gHJhXGJeWWZqXGtrXldLR09TUU5NTEZJUENETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmJKRgoCAi42JhZCHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoacoZqamaeRkYiVopqad3p+lJeRoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+enBnYFtfXmFmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjHuKho+QjoGDgImLioSShYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q0vbilrqysp6i0rLC3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6OhoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqImomSipV6e36EfWZfZ1tkYV1jY15mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoR2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyOiol6iIKHkY6DhYCLhYaHkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PFtqyzwLO5vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZyakpqfiaevqqSVdp+kl6GrsbOYlqqtqK61u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7epjaWOkZOgh3mBgnRYYGNVZWFgYl9gZV9aVUpERUxVUUhKSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6Gf4aIhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV1BfVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba7xL2zs8C3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsa2lraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYqol+gXtqVmFgV2lkaGRWWmNZVlRJR0dMUUdDSElBSEQ+P0JCS0BATEM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIl6fIuHhnyKgoGKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhZZ1pUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vcC7t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrp56Vlp6Yn66lp6elnqSUoqews6eysry2wb3TycrTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX5xXmFgXFZhXmdlUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUU1FQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZBzbHNyc4jVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tXm9fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLura6tri5s7i1tK62tplkdaierXBeoqycmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sL251NDP18/JzNLMz87Kx7+/wsq9wb3CwMXExcq/yM+0pLuwtbCbrLm9mn54a1xfW1hdYFliYlFbYFNRS0NCRUZFPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUbmxvdXWIs6yhoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7awubGwu6yzsaeqt6yNtqeem6eaTpudjI6glpGmmKWVipOTiZCJj5CSnpuhmJuUloeemaabrK+or6eztNTU1NbRy8/T1c7Tz8zFwsrQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKKBbWJbW11XX1dZZVlQXFdOUUNCSEVCSDtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGiAcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkJyXmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjO0tPT183S0cXS1sbAzsfIw6m/uNCdeG1kXGFcVV5RXVpOT1NQTkg+QUZCQkU8QEI/RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT41OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHx2fHOBd3FqgHJyaW9xenlye77Lmn6MsYN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG5qqa0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmISBhX6Rg4OTlqyLlY2VmY6FkpCdl6ewoaCgpKSoyM3Px8HL0NPR1NPO083G1tPN1NjW1tjV19XJ1NrNydfW0cqtxMPLiXFuYl9fV1JYUltPSkdJSUpAOzo7RUJEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNTs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bId2dG99doR1eXudtYw8QYrGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52foJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2ChIV6lH6CqZWjjJKKl5KLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zMtHZ1bWNcWVJVUFlVRUZKSUVFPTo3OUBBQzpHRUBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUVk9RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cXyBcYOHgG6OenV3fXyCdX98h4iwdFipwraMkoFwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoa2copqZn6Wen6yZi5qMkZKNhX2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjpSMhXubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPyMTSytTW2NfY19Tb19PZ29bP29rR1sjVzJV4emhnWllPUlNdSEJFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pjo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIFvkoR0fIGFenaGe4m3xqTCybeBlZuPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZmrlpGRi42Sg4yFiIiBhZCRnpyZiYWLgYWXe4iIn5eQiY2Ki4J8oYiQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aFeXhlaGNfUlZWVU1LRE1DOz09PDk6PD45PkE2Pj9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnZGfg5J8hn14jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C7jJyjnH2JhH2JcoyKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRk5WPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mMlJGdkIKLf6aZiIWOgoaEgKSGiou4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3d3d2aWlkVl9aU09OSERMQj09Pjk5Ojo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYCOinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6CanpSSgIuHf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOin5Cjrp+LkYuFi4GShldyrYufrJyPg5ibj5COW4OikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYqKnZaZo6KGk52VoIuKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2ZlW1xXUlZXQ0BJRD4/Pjo0ODo7Nzo7OjM7Oz89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqWilomdkJSWi4qol3KKso2DppGEmZOEmYyilqCZk4manaGSqK+fkZSQjo6IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko2Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelpuJj4eXl4uFj4yBf4aPpIiNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfmdiXV1cTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY99fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqGDkLiVkrKZjKGhjKSbr6OknZiQp5anmayvpJeUlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5SThpSYhoSRkJx0kZiylpekoYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LpxeHVcX1RfVU9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2ys6ijorCsipq1naK4pJWtpJeprbempKOfmamXqaOvsKmZmJyUlZGXoJiau7uuyqFqtrirsJSYnqOrk5e9o16qsoKJio2Uh5F8jo59g4aOkJSUiIeTloyQlY2LjJeYkpyZtJeWq52LnJSSjpGSjJmbipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9Shb3lnW1lTXlBORUM+PENBQTg/ODc1P0Y8PDU8MzUzNTU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7OzwLyzrKuztounsq2tvaqbu6Sorbm4q6amoaKjo6ivsrGqnZykmJuXl56ipqWSpLquqcC8ra2yuaakqH6IhpytvbCCjIyLkIOPg5GPeoGHkI2NnIiHj5eNi5WXlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNXRzcTKh3JyYFpZXlpMSkJLQEZHPkE/Qjs6ND5BPD01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubqXsra6ssCupcCkq6+7vKqtq6OjnqeqrrSwqpugqpuhm5WfsLSni6O6urbBvKyonLKlpKiUhY6pxMSkgouPh4iEhpWUjXqDjZGPkaGMjJSRjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWOkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMKuqLe1ycO+ts+yxL/EvLPRycjCtXN3a1tXW2lRTEhDTEpLSkFBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAe41/eIeCgZB6jaGWqJqamLq9x8jJwdLJysLMvMGyrbu+p7q/vrzEt6zBqayzu76qsKmkpaOrrbOttrWgn66epaKYo7O9qZuovcGjt7ewq5OxrKusl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+Ui4+NlKOZl5yVlaOeqZ+RpZqMj4+PlZaIfI+VkpKjmpWgopy1pZCel6SjoqWenaaYnpWXm6SjqKeisqyovMDDr6Wyt8zAua/Es7u+writwsPCwJhseGBXVlpaSktNSkZEREhCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mo5jCvsfDx8XTzc7Ny7vBt7C5vLO8y7zDwbW2u62zv7m8rq+ooKintq2tqbK3mp6soqehnau3uKmksL/Esb65s6eqtbOtrpeWpayooJGOkrHFp5WOfZGUfYiRmZCqmZiTk4+SlZOlnZOdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOesqSWoZasrKqnm56ml5iWmJWgo6iln7arqbm7w7Sls7XLwLiqtqyyuriuqLe6vbiCa21ZVlRUTUVKU05LP0FIRURIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnIODlZCQk46aop+vvq6hxrzFxMbGzs7O0sq+u7axuru7vs+2xL24uLeysbWzuLOrppyrq7mqqKevr5ejrqSnpKS1wLCrrLS/w7rAurOnubW4s6+Wpa2urqWLk5WhjXTBmn2WmYWPlpqMsZWbmpWSk5mZpaOVn5uWmqmdnKGgmYqMj5adYEqWnJqVmqWWVJawn66cn6SUr66rpZqgpZSTmJiOnJ+mopm0qaqzvLu7qrCyx7+5pqyrrbGxo6GxsrSkb2xlW1lOT0tFT1BQUTtHSkhHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomShZ+HhJ2Xjp2hmqOktci0qca6wsPHysjHzM3Gvruzrrm4wMHMtce6wbi1urCvr7O0pqObqrS0qammrayapK2lpKisur+oq7a3vsG/vrmzssSyub2so661rLmmiJuYppt2v5+EmZ2Ok5mai6+XoZyblpWbn6Gpn6egmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpaiSkpmciJScop6Xsaepq7q2vbOyrb65t6Cjp6ilp5ybrKmpjGJkX15RSkxGSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlZyhn7qvmZSfi5Orm5GSk4mrjYein4yjrZSjo7bGvbTBusLBxsjFws3Iwb25sq+4tMDCyrXFscG8tLqqqK2ssKKjmKq0u6Wopquqnaivp6Oqqr68p628tLi9x7y3tbfBsb7AtKm1t6u/pY+imJGioLyfiZqgmZeeno+3n6mcpaKbnKGaqKWzoZudpZyoqp6ZlY+Um4qWiYykopSdop6gtK+lpJOvq5mrqp2dpKOokZWVn4OPnp6blamkoaG0tLq1rai1srOenKKlmpeVmKqhnnZeW19dSkhFRk1RSU1FRkdCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfAwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqq62goJqrqsSipKirpp6rr6yhqKi/t6atvrG4tse2tbm4v7K/wbe0s7SvvqOXo5aUnJSuoJGioqWjo5+QvaSpnairnZ2gm6afvaKYo56iqauhnZaNlZ6TnoePhI2TnqSgnbWspZuVsaeZrqaemamdn42YlJ6DjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRnYlhgXU5IR0pOS0hFRElBPlBIQDxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJWTKKao5yexayhn6yena6gk6OflqWfpqmrl7axo6qztcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqrnZ2epaTBpJ+prZ+kqayvoqanvbWlsby5t7bDsrO3ub+yxMC4uK6ztbWjnaWVkpShrqCZop2pqKujmsKtqZ6srZubnpmmob2hnaSYq6uspqGZjZqfkp6Jjld/lp+moaC4qqaTmLWjn7Ggn5qulp6OmJSdgY6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYGRZY2BLSEpKTkVFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GZnsOopaK0opyyqJOrpKCjn62prJ27sKistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwqybrLCcqaOtsKmkp722pre7va+3w62zssLAssezurestLauqqKmlpWVpKyin5+aqKuwr6+7sqagqaiZmZiToqS4oKGkk6+vrKWnnpKhnpSej5CNlZ2aop6ns6amjJizm6Oump2brZCek5WTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLS0xsDEw7W/xL3JxLXAyMG0q7Wor7isv8Ozt66strmlmauxq6qXn6aXrbu0m6ewm62frbSyp6q5sqi6s7eyucCqt7HDvbTGp76vrbe1qairoZeXkqaloqKYmKWvuK6ytbagn6ikmZWVk6Sgt6KkpZavsbKnqqahnpuampaXqJ+fmKGer7KipoyXrpikqpeZnqSQmo2Tl5mElZ6UjI+cnpSLqamqoaegmZ6VjI6ZkIGFlYmUn3hjaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaGmv6aor6+hqbSrnbmwq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkaq5qaCmsJ2qoK+0s6qptratu6yzs7q3rLiww7q+v6bDq7C3rqmrq6eemJmroqKgkZihsa+zq7C5mpypoJmWkpemobeppaOisLG0q7Koq5+boKCbnaWcoZedo7Owmp+Pk6Wan6ialKKdlJeJk5eSlZack4iQm5mUjqiopp+jm5ebk4eOmYt9jJaFj5tqaGxgbG5XUFFaVEFDRVRAOztIQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hq7Cro7G4qqW1s6ygrbW8rrO4vLq9trbAwr/IxLnEwb+/uMS9wLevtqert7G7vr+0qK6xtp6Xq62orZenqI6nu5+krLOeq6KwsLOrqbW0tb2tr7G1rLC0scG6xbervK+xuKytqqOxpp6kqZ+kl5CZn7Oqs6qqs5qdp5ualY6gpqS0rqehrK2usaezrbGqpJyfqKOelaGZm6i1qZeZkZKemZ2fnZCqnZaXhJSXipyYm5OKjZaXmpempaKgnZaVl5OAj5SFe46Sg4yWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqgpKy2pK2ppa6utqqvtbqnprC3xbextr7BwrS0usW+zMW5wsC5vrnDt8C5srSrqbq2urm9tKmtsLWYmKerqqubq6uOq72dq66xo6ugsK2zrq22srm3qq6usqi1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWVmpqyo62gpq+XoaSampKOoqWnsqmhprKsqralrrG1r6SZna2nmpifmZmrt6KXk5COl5yhl5aTq56akn+Sl4ydnJmVkImUkp6ZpaKhoJiWkZOVeouPhXuMioOLkmpteG11e2FFYGpZSUhZWj17SkZENkFiVGlbTVxgSltdWlJTUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKyzt8q6tLq6v760s7fDwMzIvMO8tr2/v7e/vLG9rae6uLe2wbaqrLG3lJemrquno7CqlK+7pKyxsqeoo7G0sLGwtbG4sqmuq7Knt6+1tMPFtqm1tqywramoo7agoKexoKSUm5mVsZ6nnKCqjqmjnpuWmKalpbenorG0rKeyp62wtqykmaCsqJucnZuUqbiclI6OipicopePl6WfnZSCkZWPnJuXlZSHlo+Xmqeco6CSlpCQlXaEkId7hYGEjIttcHd0e35cS2VsXEtOY1w+YntHSThHZ1dmXE1eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0OQmaWupa2uq6eksLKzqrext6CrtbnJuK7Au8O3srG1wsLOxcDBvbS8v7+6vryyxKepuLC2tr+8rqqzspygp7CtpqWvpZ2ytayrsbGtqai0uqy0srWstKyqrKisqbitsbDHv7ilurCpra2lqK2wpqSkr6OpnJ6cm6+Zo6Oio5GsnqOgoKKqpaa5pay1taSqq6isr7auo52jqKqboJqakqSzmY6JjYeQoqCUjZOcn5ORhI2Skp2amJSTh5eSlZmnm5+ejJKRjpB2fo2FfXx8h4mIcHNxfXx9XFNkbl5OWWZcRkSWW0c7Tm1YYltMX2JOVldWV1RYZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0srS1srKhq629zLquwLvHsbSstMLC0cXGvsCyvcDCvL+3u8SnrLess7i7v6+qsa2go6etqqiksKOqsaqvrLCvsK+rs7umtrGyqbKpq6alo626rKqxwrm1rLqoqKitqqixpamkoq6qqKKfnKOslaWemJ6ZrJ2ip6mirKajray4sbKgqaKgq6+xrJ2fp6epmaOYmY+gp5iGhI6Ki56fjouMlZuOjYWGj5SfnJWXlIaWk5OXpJucnIuSkI2Jfn6HhXx3foeFhnRycYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNcTlVWVVdRXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwta24ta6rpaqqvcm8sb23wq+xrLPEw87Ow76/s8DCw7rAs8jDq663rbK4v76yra2rpKepsKmnqLGmtK6qsK6tsbC0rbS7pLizrKyup6ugop6vt6qqrbq2pba1o6qnrKuqraGopqaxsqSmpqGhrJaqoZWaoKaepKKqpa2in6ext62uo6Wim6qrramcoaWkpJigmpWPmJyTgYKPiIWcn4uKjYuYjY+KgouXo5qRkJqLk5KRk6KZm5mKjouKfIaAgYN6dICEgX1zdoujh3hqXmBuZldlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbartrGrpayqqbzAwLi4s7u1pbKwxMnL0b/Bu7i/v8G5wbnAxK2xtbGzur+9srCuraurqLaqpq2vqrmvqLGxr7Kttqq3t6a0t6uspKmqnKOes7OoqKS0tKC2raCqqKuoq6egq6uoubapqqqqoqmgrJySqaGdoKSjpqOqnpynta6opqqio5ilpqeqnKKko5+ZmJ+Qjo+YjX6HjIaEnp2Gg4qJjY2PjIKFlKKZjYyZkJGRj5KflpiWi4qDf3SGgX9/eXSDf3p3foCHnY9vcWdncHhcYHOIa09emVZIbXhVZFZSYk9NVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD9DLD5MVF8vSmo2T0Q7lo6woaarrpqspa2vs7Wvq6Wwqqm6vrzAsK64raG2r8nHyNDAvry6vMK9usPAvr+usbKxtby6wbGxsquzqKS1qaWts7O5sKOttrGws7qrua+prbasqp6prJ+ioLWtp6Gfr7KitKqeqKeqo6qhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrCpo5+toqGToqKjp5iaqaWYl5mdjoqHlId9jYaEhKSWhIGCioaNjJCDg5OgloeQnJCTkI2RnJSXjoqGhXh0gX98dXh5gHp0c3lof4ajdWleZWuBdGeIi31TWHBeSnhzU2RTUV5NTVJZZk5MVllkWEZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzozOF89YWQ/RjFDUFtbKkhNOVVBNJGPsqCkpqykp6Ssp7SysaqksaiquL7BvK+nuaqmrrDJx8jRw7y/vri+v7zJu8C4sK+0sbq7t8Cys7usuKyitKenrLK2ubOnqLy1rra9sL2mrKy1q62cqa+jn6SrqqecnqqypLOomqqnqaOpnaOpp6m9q7Svrp2ppKCunJuzo5WknKWln6SbmqmrpZ6bqqGbkpuhpJ2Yl6mokpiak5CKgo+Ffo6Cf4iej4V+fYuGkI2PhH+SmpOFk6GMlJKLkZqRlYaJfoBye3l9fGh3fHp0cHB8Z4R4hIhkYWdjcYV6bWZ4XV5WQld6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OkRXPiqPlLGZn6CppaWhq6W3srKmqbGnrLjBvbWwo7mtqKixw8nJzcG2vb+1t7+5yLbDtbOxtbG9t7m9ta25tb6tobOnqquwtbi0q5+9vKmzwLO7oK+ztamrnq2wo5ykqKqjnpyksKawoJ+rqaeiqpukqKCtu6eusK6gq6Okrp6eraaXn5uho5yfnJqjqqOamqSklpaUn6GWm5emq4uekZCRi4KKgH+OgHualY2Ie36LhY6Ni4qDkZeQhpSjiZKSh5CZj5OAiHx5bH12eHhje3txcHByd2d/c2qDZ2RnYG1zjm1haXBgcEFceGxVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvMyYsOiQ0MUJoWTEzUz1lX0RMNktWZE8pOzJPWD0jk5msmZ+Yp6Sjn6ikuK+uo6+wqqu4wrqzrZ+4r6uotLrIy8i/t8K+r7S9t8S2w7GuubGzwLS6vbepubi9q6S0qKmqsK65saqbu72ksMC1taGutrWmpqexs6CepKanoaWZnqyoqZ6gqq6noKaYo6ifsLifo7GuoKuhrKScpqepmpqbn6OVnZ2anqmml5ugqJKYk5iek5mWoamQmYmOj4Z9h36Cjn18oY2MiHiCi4SJi4uFh5KZjomVnoiRlYKLl4yRfIV7c3B9cXN0YHl4aW5wcG5ofXFjemxpZWNfZYV/X1pza3JMTH5oWFpNUExKSFBSUElOXF9uU0RXWlJnT0hMRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTYqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4vWFc1KJedppmdlq2goKGkobersaSztKqoucS1s66ft6yurbC1xsjAt7/BubC0vLe/u76vq72vtL+wvMK4qbu6t6eotaioq7Css7Cnmr63pa28trCesLewqKWnr7GboKSgpKShlpuvpqGeoqevoaCik6Skorevoaaxqp6so6+YnKqlqZ6Ymp6lk5udmp2mqpqcnKWWlZeUnI6Tl6OooZCIi4+FeoR+hIp6jpeKjYZ4gYaDiIuNhY2Tl4yOlpiKj5Z+hpeLj3mAenByd29vdF95d2RsbGtpaIJtZXJqa2RoW2Jzf19abHZpWkh9XVtYT09KSEhSVUYyOl9ebFBDV1ZZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFRDVF1oRS47MV9TLDKWo6GXlZypnaWho6G3qq+gurmmrL3Es7CvorSvrK6vtMTEvLO/urews7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKmzq66xo5zBtqaptrWqnrK7qaamqLCsmaKnnKSmlJihsqWZnqSpqZyioJOln6S5qKSnraaepaGok5+poaGgmZudoJKbnJegoqubm5mhlZKUlpqNk5Ojp6SPiIqOhXmEfISFfJyNiYqGeICDh4eHkYWVkpKMkJWUjY6Ue4OXjop3fntsdHJsbHNheHVoZ2lnZW6EZ2hoZGZoal9nYmlmWmV6Y2FSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhiTicynqSjko6kppyenp6ktaynqrq3qKzDwLewrKK0raevr7fAwL2xwbexrrG2tri3tayqvLOvsrG9wLeuu7uxpZ+2rKaltKmrrqCgw6upprCzq6y0up2oqqqxppidqp6npJGZpq2imZ2kqqGbop2XoJyntqWvqq6goZ2doZWgpp+hoJmbmpySmp6Vpp6to5iXnpWUjZSXjI+YmqefkYiKiod4hXeCgoKch4uCiXt+hIeGhJCElZWPj4+RkZGNknuDlY2Gc359Znhva2psZ3Vza2JnZGN0f2JkZWZlaWpjaHBZXlhdbGRhTWhXWmBWSUdIS01SWD85YGxpR0JVU1xbSEhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAZEclNZukoJGMrqCZmKCWpbSxorG+t6Gxxru5sLGitqurrqm4vby7rcCyr66ttq+zuLOnq7mwrq60tru2r7i9rKaetaugobClq6+fpcOhs6Wvsa+3rbWdra+srqOZnKeqpZ+Vm6iln5mko6mcmp+clJudrLCluaetoqGamp6ZnqOapZ2WnpiblJqhkqiVrKmblJyckoyVmY6UlJiopo2NiomOe4J0goGKmIWHfImIhISJjIiShJSckpKPkJGWjpB/gI2Ngm+Bf2Z5bWhramdxcmtcaGRicn9gZGdqbWxnamhmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWRCJzSTopuPjrGdm5Ohmqmyr5+4wLagtMG7vbmxpbavqa6lt7m3uKy7r62qq7eqtLitpbO1sa6psba2sbK1uqepn7apnp+qoqqtnKrBma6lr7C2taysnrGtr6qjm5yjrKiclZynpJ2aqaOllZqgnZGbo6uqqbqfpqSgmJqanqGPa6KVmJxxgpacpIB2kauonpaWoJGJl5mAl4ufj3iFk4yDbWl+d4NwbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpdG5OUGpkZnGCZl5kZm5saV5dX4mQhYdoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMU9iPCsvjaSZh5Wxm5yToJuqraujvcWvqbfCuL29rae2sKarpLe0srOxua2qp6y0prC1o6e3trWop6y2s660rbOiqZ+0q56ipZynqJquvZWnpq+zt62tpKiuqqumoZ6coKinnJehpqacm6ennZKeoJmQnqeqo7Svo6KjnJaYmJejiKGPkpqHoYeUnqF/pX+nq56Tk5yTiIRyeIyOg4egdoiMaZeIZn1zeKBviIeDfox8f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUZSVldRUVJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYDcvKIyml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ystba0paeos7Gtsqivnqqhs6mfpKOaoqOdr7aVpKamtrymrKepqqynpqKgmaCnpJmZpqOkmZykqZaTopyUk6KlpqC2pKOgo5iVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TAm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauweGhrWLGub2VpvJK8bmh6bXGP2H5TamO2sn6AcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW1w0MSGOpZOBp6qfl52dpa2yqbHCvbK1v7W3vsKrprStramor7Sqr7azqKemtaWnuK6csrG1qqWkp7KurbGmqp6npLKkoaGfl5ygoLCtlZ6jn7S5oqmooa2upKKem5qiqaCYm6ihn5iep6eRnKeblJ2hpqKgsKOen6OWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWZ7o6eCWV+Lq2mAlHh6aqc3Sq9bV1RsY1pLT1dfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqGVgqynpZ+jpKqxt620vb6wt8WyuLrCp6iwrK+pqbGupLC6r6SkrrOjqbmpnrOzsKOloKqtsKyvpqifo6KxnKOcmJWYnJ2up5eboZ+0sqGqm6GtraCempegoqqdmZ6koZyaoaekkJ2jmpegn6ufpaagmp+hlZWRlpGahbWbtXiFqZm1mXeHs5u3f5OWl6mVfmuBpnqBhYeSlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVKThl5QqW1jcX2GgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVTUwHJaflIizpqairqmns6yqu7bCsLzCrbi3waqsra6vpq6yqaGvu6qhp7Wto6u1pKazs6ejoZ2nqrKosKilnqCfsJegmpWVl5mfrqOamqSotK6hqY+pqKmbnpWYoKWpmp+do5+coKKlo5WbnpianaKqnKWam5uioJaTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYaigaWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FtjoR0kLuFb5RPr6fFilGgemNgqmJzcoZsl4dfU7W0yIaAiXxjpDNCnXZdUWloZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVA3MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afr7aom6i6rqKvsaCztLCgo56ep6mwqbSppZydnquYmZiXl5aXoquempeorbCoo5+OrKKnlp6XnKGmopiioaKhmqKip5ueoJ6VmZqmoJynlZubn6CYkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifo+fpH6wdoOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gdnOGYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIuop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltLSisrKjoKyvpJimuq6ksbCctLipoKWdoaqlsaisqqWanZqpn5aVmJmTk6OpoJeTpquwpaKWkqyfpZKUoZykp6CVm6anopqjn62aoJ6ekJabop6cpZSclZminpWYlpKbhax7d6h2o4+Lh6lvrYqDqIOZmaKKkpmLon6Sl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0JUb11oYEVPa19xbVZVTS9lY2lTWVE7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N5+dlKC4sJizwa2osqeqsrq4tLi/uriztr21pbi0oLWtn6Cpq5+Vp7asqLCxq620pJupn5+oobWnpqqjmZ6VpaKUlJyZk5ajppuTkKesr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoJiYm5WXoaCUmJGnnYapfX2leaGPkIOqcK2MgqeGlqChipeXiKOBkIeUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmNye4FrmIdxXaxaiaCOa25lT0pDoVxaTXRdY2ZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPTehnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKm7taCxpZ6lp6eek6qxqa+qtayqrqGYoaCmpKS5oqOroZebkaKglZSem5SZoKCQjYypsK+mnZeap6afjZKkmKirqJSXqqifn6CjraOgnaGNlKGYn6CSnJeclZ2hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzwwMDAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV45MUE4pZqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqq6Gcp6SinZKrqqe1o7Korqqhl5yooKSruZ2jrZyWmY+lo5aNnaGbmZ2fkZOVq7avp5mUm6ypl4yTppqlraSSl6uzpKCeqKuwmaGij5iil6CblpuXoZOcqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaaZnqK8opexwrCtqaqssae4r7bEsbqyrruwrsGyrKWjnqShnJuQqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpqCTjZyjnpiempCWkq+5sKuVl6Onp5SRlqWdpK2ekaGoq6Ccn6mksp6ipI6moZShmZyXlqSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jcp7Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn95fYlng3lteWKLrHB1hX9YW6dqRGRaVGZfY11iUGdmcW11Qk1QTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaChv6WWs8K0rKqnrKupu66wxq+1tK+4p7W4raqjoqafoJ2Zk6ylraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKGTnpeSmJSytbatmJ2kpKKLkpKmnKWrnJappaadm6Kpp6ajqKCRrJ6Xo56Xl5idno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukYJxlIVfcmpaXZqJYWSHjpVrYH+VY22bdmKUa3+alZRlXmBjcZuJaHKMfYaUZmp+cXN5fXxiW3d0gWhQXG6DfHuKalhseYJySUpvhXBNdE1FV1xmYUxbV2ZjXk9abXZqclJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGjmrS6tqOspa6nqLWyrMissLOstaO+sbKmoKOpnaObmpmsp66kpbWqpJuYlaKbpq2pv6ipppaUm5WgmpOYpamokZ6Qj5icsLK/rJunnaehiZORqpuopJybrKCjmpujp6yin6qhma+alaaflpSdn52XsKWZoqiZnJGenKOkmaejmpyampqQloJobnxxdpCXlJGEirSpjYWYlY6KjJiXh5OVioOSkpCJjZGUmZOYl5qgoZqblKCdjoJ6pIVsaXyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNbb2hNWFhlal9XWXB6b25mU09GUzlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6G/oqSxsbegqaWzp6WwtarJq62xprWmwKi0oZ6lpZyklpWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiTlKKenqOnkpGZqKeyw6+Zq52rno+Wlqmeq5yeoK2YoZudoqWvpqGkp56smJemnZmaoZ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNjpatj3uUm4KRgYqpqIWAmJaKhI6fiHuDkIaFmZCHhomVjpuXjZCYnqOWmZKQnY1+jWWhs66EiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH96doOIgmt0Y3hmX2hkY2Rmalhre3FqalxSTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LEC0oLmvvq2rrbGyoKqmsq2irLOwxbCqrKOyr7yktJygp6KhnZmXqKappqSls7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8ezn6mkqpaWmJqnnqmcoKSrlJ6fnqCqrqmloqqhrJufoKCYpZ6cnpyvpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jGxoanqQo6trZJmYfmeFimVlaWh6jaGOa2eMl5Gid2tqi5iin5hzbG56hI2FeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEdHeIiY+De2iEWF1qc2Rdc4hpanxxbGNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wp66usL2xqaikrbCwn62XoKSeoZqZpqucrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZppZ7payiqLPDuKWip6+fnpWeo5+knKSqqJKeoZ6gqq+pqqKpn6ebpp+noKyVoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnYataHe5xLhxkqGje6aYmXOqgnzLwMC7cYqih4OefJWYiJ7AvYKWnZ2NnMHBe4F6kYyawr99a6Wxb4yBb8p6f5t4kYOOgHZ5gX95cXp/h3B4hYyTeWx1kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO0sK+/qamUo6+psK+tprK2r6qmpqaxq6CrmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRn6GYm6Cdh6arpKutv8CxoaquqpeSn52imaKkqqOToKGenayuqaulo6KloKSlnK2pkaSbqK6qnJ2qnKyilpellqGjmJx/zpR5eqWBeZWWm1+tj12Op4ChoHynlZt0q4KAr15kjKl6p4eFn3SXkoizY4KrhqCNjbJqhK50fJaHuGGCrVmjzW6PdXvbe3+ZcX6IknV/ZXuIdnZrfYhufoWQkn5sgI1fcGpvZmBfeGRbcWhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqa20q6ayra2spKymsKqgp5uappicorCfoJ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTj56ll52oo56upKuwqL/Gs6ipsa6Wk52dopegqaqflaGenZ2ur6eqqJumpqOgqpKss5amoqqqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WEqIdxsHydcqx+oZ+BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoihi5GLnH6re4iSjqCAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yboiKkY+DbZCOZG5zdW9gZm1kX25paW5mY1dTXGBaUlJDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwnPTEpM1ZARiEcRztDMS0rr9TGx7K0n52jjqOjoq2utq+psaepqqiuq6unoqOdmaKVn6arn6Kln6ioop+esK2Ym5aop6+tqKepnpeVmqSikpShrZudp6OurKOstam5zbKtpq6sl5WcnaKZn66snZahmZ6fqbGpqaiaqqijoaubr7GiqKuuppmmq6qqsaOTl6OlmpSShaRqpHWJeql0erJxgqWJmIxwh6Cah6RfYFKrhH+ugpt1roGmhoafepiWhXtmgKOJpJiGgaN9qX6AlIauXnyoVZ2ikoF6o5+Ae8OvxYxzr7OzuXFiqa/CdWiMi5ePgWyZkW5teHd3bmxmZWRxcGZ7aWNdVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqa2jqKeqq6uppKagm6WfnaWnpqScrJqiq6Gkn6+jnpuTqqS2sK6gqZudl5WnpJGboaifoKacsKajqLGstsiytaqsqpWSnZ2imZ+ls52aoZScn6arq6KtmauooaGporKtoqqysqGbqqivr7ajk5akp5ibkXyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIiHoHqYlZl4qslzmaOUp6mQkpuMfpqJmsbGd2WhgqVzgqCOgn2vXm+1Y7F1S6OGbadHgpNjjo+dkntwlpF9b3p0fHptXGZqcnFmgWleYVhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKdsrmsqqGmm6imq6ypp6CmpZiqo5+uq52moKyan6mlnae1n6KXk6irtrKsm6acoJWQpq2RmZyno6Cqp66ho6epr7TCsrOqraiUiZedpZuio6+ll6GVmZylpauarpysp6Weq6O3rKCxuLCdm6+ns7SzpZWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpOEuHt8ebmCfszFwrZ4mqCQi59+mpaXinWel4qkmKOofrCFm4SehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdI6Ro5Z7fZGQiHN6coR+cFtsbndyaoFuWmNfaG5iZF1LTFFUQUhIRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CboayztKafoJWlr66uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbW5pJujnaOTkKKxmZ6cp6Whoq+tnaSoorWxw7Gtqq2qkYaRnKedo6SdpZeemJmZpaOoma2hrKSll66lu6yht7eunZ62s7mxs6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJpmaOclYmffJiZhoePcq6CpZuijaaLk5yIk5CabXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHePk6WYfYuLkYp3fHiNgWxod2l4c25/dFxkZG1tZWhgSlpXWDxHR0BUM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIquv7+8u7Wel6ikrbaho5mVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdppypkpSXrqCgnqaknaectZqgqqO1q8Kwqaupoo2Ej5yioaajlpmanJibmKWkppiqpqyhpJuspr2slL2wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6CHrXyhj4OolpmArIiEroWflKigopaFn4CZlYB7kn2rgJ2aloqqeJ2fjoiTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBtlJCmmYKTi5WKeXmCln9qbH5ifXRuf3lfZmVxbmdnaENZYFs9SlQyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2hkKqppJaJmpCusaymn6ibrZiYj62ioZ6loZqlnK2Yn6imtqi/r6WppJ+MgI6bm6CmnpKUmZqUmpqko6OZp6qroqOeqai+pJfDrKqjoquzuqyvp6G0sKmrmXavfpCKnIWHfLqtiZhksIxlla19oI+Dp5aagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goGxbGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOqJqJlo+UlXl3jZt9Y3J9YYN4c398YGlmcG1mZWVPVWNcQVRePUkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYGJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqmhi5mgn52zsqieop+dtJigs6iqq56wrZ2sm5SuqaKOiJuOr62opqOoma6Tmo+pmqGepZ+Zo6OlmZ6iqbKou6+lqJ6dj3yLmpahoJqQkZqbkZmXp56gmKespqSkoqSpu56gxqelqaKrtLatrqegva6trZaBqZKjro6bgIakl5iPgYC4w7qDjpyThKeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWTkoKevb6EaqOBb6uEbpx/erKxx4Nqq7C9rXh3or67dICVjaabjpmPlZt4gI+ZeWJ8emOMZ3iBe2BrZWtqYlBiW1NpXEBUYUJNKTw6NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mprOmnoyYpb+qt7CnoL+mprGbnrGcuaiera6lp5SUr6yXjIOaka+mo6yhpZyqoJiLo5KmnqecmqGoopmeoKutqbmuqKSbl5N7h5mRppuTj5GYmI+Yk6iZn5eoqJ+ppqGiqrueqcWjoK+jq7O1q7CqobyosLCadHWqpLeFZYmfb2esj4qPbW93pJCZn4F1r5mVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlwaWeJlZWXcWhphYZncIZkXoljanBZXWd+d6ZgYnGOkm9mZICNko6il5aXj5Sde4aNk3RlhndojGp4fnhkbGNmbGJLZFhKa1k6UGVFUSdLOSsjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqbq5srOqqaKun6SzqpiSvbHDyL21qZ7Aq6yjoKarn7qjpK2srKWNlq2qj4yFlZetn6Wqop+kpKCRjKWTp5momZajqqCWnKWmp6+5q6yam5OSe4SXjaaXjZGQmJSNl5WnlJ6Xp6Kar6adoqy5n7DBqKSzpqyxsauurKi5pK+4loqhqKW2nImWoZeGqZqQlJ2TqrOZm6OsobOXoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYWApJqXlY2Lk5KKj4aEfWeLgHSDdnSHjHGnbXyVkZSTgYGPj4+OnZOglZaVn4GGk4twZ452b4p3dnx5aWtkZG9jVWBZQGlaR2JgTlkqRT0rJiI3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlVRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1uK6uorCkraChtrGQjqvEu8S6t6qhpZ2bpp2wqKO2p52ptKankZeso4uIiY+cp5aspKGap56fk5Wjl6maqJmUp6GkkJqnmaG1uqirmJqQjHuBlIyhlIqUkZWQj5OXpY+emaiem7Wjnaart6iuwq6jt6avr7Ctqqq0uqKvvZmSpqOmtaKRnaaejamfjZKfo6yvmqGjsamwmKShnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlJSFkoyQjJSLgH5mjId1h3Z5iINznGqHkZSUkYp9jJaSkpiSoJGblZ+ChpeFeHGUcniJf3F7fmluZF9waWBbX1ltYlBgZFBaOkdGRT0zPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkZCco7K6rquroaKZep2isKSlsamWm7imo5SZqZyOhoqJm6KQrp6klqigoZKXmZyui6qWj6iZqIyYqI+eubakpZibjYh5gZOMm5OKlZGUkI2RlqGMnZ2nnZ64o3+Dr7WisK90pL6jsqB4eqCrs7yVdq6kn4qAqn5kW2F2n46knYOXfm6Ts5yjqK6ro2WeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkIWdmpCUgpKHjo6SiYV3a4+HdodxfIaBgGFpiIuVk4tbdpWRZ2iPjXF6o5eWZHiYhoB2l2iDiYJueH5qcGVfdW9ra2hcZWNiYm9SWz5NTk5SRz1AVEI5MS4eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMVFVVWVxfaGZnV1FKPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamto6etpZKWqrSusaWZqaarlnOLnK+fqKunk5a4n6CPnKOdkX6IiJqejauapJWnop6Ol5KehXWukImmmqiRl6OIm7q0qKCZmIuJdXaTjpaTipORkJSMj5KfjZqfppibspaAjJu1nbSMko+9p6F+p6J6o6+4gY6Op5+Ei4WPsKmvjImWopl5gYushpydoqiqqIiVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpieYeQhI2PkouDbnGPiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg56bhZh+kYmBgpdpjYyEa3h6cHBnZHdtaWxqW2RqaWVyW15IU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3GvLChlaWotJ2Pg5yrm6eioI2Qvp6ZjZ+aoJB9hY6Zl4irnaOWoKGSjZOJhoCRqI6Hopyjk5eehp+5sqedmpOPhXB1kIqVkIqUj4+bi4+RnpGWn6OVnayIn7SJtJqui8qIq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56nqZKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYWAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoKfmIGZgIqLg4iYb42ShGd3dHt2Z2h1cGZna15ibmxmbFhmRlxQTDJFNDZNYGM2JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLixqqummpSfoqSqopWjqbair3+gppylnp2JlL2Zk42gkZ2QeYOWlpGHq5mcm5qhhY+Md5ucj6CRiJ6km5WZmIaiuK2lmZuNjX9ibZCLk5CNj4yMl4uQkZ6Ok5+gmKGofqGnh62doJauj5+dnZGGgaCNq6+HpI2qmoyafqJ1gJiTa4GrdE2reIeNnZGbqaiCqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+DnWdkn2xabIh6ZVlfgn5hV1BvdmVtdHFqam9eam9sa2hXaE5dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXn6GlrKyfnK20oqeRoJ+fppyZjpi0mZCLnoyVi3WBlJGNiqaWlpienn+ThYaspIeckYqYqZiZmpKHpbCmopWZiImAaW6Ih4uOjomLjZKLkJGhjJOen5uipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHKSh5Z7nox5bYebjJmQm6mbj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg36jXp2Zs5Zve5ees3RyW56ygmlib3N1cWhvWWtscnJlXGhdYktEPUQ1UUFZcTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaWGBgfGRJQzhMV1VWYmFaZWZra2JiZWFkY2BhYmBjY19gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI6luLWuraCaopyjo6Ssm5qxrKuSl6CYoKSampSeq5uLiJJ4i4VwgJaNio+gkJOUnZd9kYmOqKGHmI+KkqOTm5qMi6inpJ6PloeEfmt7hn59j42Di5CQiY+Tn4KWnKCdoJ+LiXecmKKMoHKii4ipiJynkZeorH+ujH16oJl5o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG1xeHdraVtwaXh4Yl5lV2JBUERPN1ZCUm00SlpaX05aREAxNTE7OzdIPzpDSFU/WFJZXT5EYl1WYFFhZH1pRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppubp5+drZqdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIuWloSSlZiPeoqElqOdiZWPhoudkZybiY+ooqCai5GKgIBpgYZ4f5aMe4iNjoeOlZp+k6GeoKKTmHJon4qgj4xwkoyCqYiZn6Opoah9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTH97e4VjephCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcHx9bmVga2h2e2JjYFFeVlxUVkBZRVFnRFJXW2JYX0lEPUI4QEI6SUU4TEVYQVZRW1ZERmFcWmBLYG1+ckVDPFVeYlplalZnaGxuYmZmXmFhXF1eYGhiX2VjdmxeZWdmbGRlbGhoa2mTnYGxrpmEU16hp7S6s7OpmqKLm6mcm6iSoaujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgnHKRkIGImJSfmoSOqJyalYqLinyEbISFcYGhjHiFjYiHkpiUfJKjoJ6jiK6GfbWEj56de6aWeqmClp2Qi6Gefadod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XptvfnGXb4FzonJdo2d0pmFopm2b05h6gptud3mXa5t6dpdybKmlZ19keXB+hGtnZmNtdndmX2FSW2VRUWFJV0lUX1dTW2VqW2VRRUNLTEpLQkpEOFBAUU5XU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZ2BiX1xdXV9oYmFoZXtkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCzo5yYhZimoKCijaSon5eoiZmXmJOZk5Kgl42IhXtwfYRofY+Dk5qBeJGNjolwf4aPkpJsl5N8iZGSo5WDjqqalJKKhYl5hHaHgG6Bn4Z3gJKGiJmhlnmToqOaoImzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphxnoSirK6Jl4uAjKSNloOuopR2tba1yaF0lIqAn2Gel6lteJaGn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5qrdIKabXN3l2maeXSYcVBFfLNeanVqeIdmamdidHRwbVVdU1loUFJoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc354e251iXt7VFFPbF5oW2tpUmpoaWxnbGZjZV9cXFxeaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKGzq6+vtaKikICXqKKho4ukpp2cpYGal5aNl5CQm5KNiIN5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeoB9i3lwkKGGeYCUh4mWn5R/lKWnnJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOWcp92gImUlo+5bpCKomJ9maKViG5yaaprdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhyi5huoW9SiI9voF5kp1SLXVOYbW1yanGBbHBoa3hza29RV1ZWZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39ydo2Ag3ZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqSMoaGaoaGAlZiTjZqPi5eQjYp7hnGAiGiLi3yXmnN1iX2Qe2WDh5WKipWZgnyIhpamkIGiq5CFkIqBin2AgI5zaY+lhH2Fk42ImJ+Nh5Kqpp6JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGk5acoH2menGolKCWZ55+b6tiloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm2fnpKVYX6ri6p2gH+Np593n32FpJWdoGmah3WrZp6tjLZzd76MpJNZg6aNq2F1cXNve3RwYmp+bmhsUlVaVWBhXWtNXVJdSV1sbXZgW3FZW2BaZ3Nlbm9yY3F0YHd6fnlyeYNzg36Be3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ2jiZqlnKidhIuaj4WckYWSjYuNdIV6iINvjYR9lpN0dYZykYNtf4uSh4aTj317gYWXpY1/paWNgI2JhJR1g4eSb2yKqICCi5SOiZyeiYyTqqOgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCZn6GEe32Ja4yFW3l5cnlwaG59kYlxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW96b26HbYSGX3doeI5mgYKGjqqcfnR9l2qJiG9/dXyEdW1sZoxzeHuXd4Rbalh4j2htd3Fwb3d3b11shm1pZ1ZZX1dcZGtkVWFVXlFfcHd5a2p3ZWpqanV8cXF0c2FvdWJze4F4dXmCdX+Af4B4i4WCfXtuf2xkeW5eV25naHVreGppaWRcYFpjaWVscHVuWltia2Rra3ltaGxvYY6Vuqmni6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHOEcJWFe32Si4aGkIV4foCGmaOMe6ehi4WPj4SVgoaOl3dyhKmFjZKckIienoeLmqegoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMnJufjnOVi4hxdGuCdnN/WHJuho+BfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGg2l5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg2+EjHhuZGZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYpra2JZWV1aWGtxW15gWV5dZnN9e3NvdGNqaml7fHF6d3RkbXRobHx+dXl8e3p5f4B/b4aKhHt9dH55cn9oVFxxaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3N5bmhqbWCMjKuxopCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpJR/e5eEfJKZiImGhopyfYCLdoWLgYSWinJvgHKYhoR+koOEhoqBeoCDipufj4KmoId4jZeIlYuLnJeFg3qsgZCXmZSKnp2HiKGqn6Kio4yIk5uco5mWqqGnpqCSm4iXj3x4j46EqH5/kpGSk5ywpZqUnZCOspOYhKaMjJWboImQm4KIkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi5+LhpV/foyBgHZxdIaFgHiIh4qRppGEho6Ig42QjHyGioeOgHVrgYN7eZlpcmhgc4pwfXp2dW93dIFcXm+HaG5fXlpbXFNncVVjW1thbGh0e3xybnBjamlof3tteH5xaG9wbGaAe3KBgHeAfX+Ee22CjIV8enh8fXqDeE5kdmpzbnB7ZWtlYmJgW3NmcGZycWxVXWx0bWl5enBnaWtljYidup+WoqGYlZmYlJikoJ17f5mqjZ2NhZ+cip2WfHiUgnuOmYmGg4SGbXiBgHKAh32Ik4Rta356l4aEg5B+gIaEhn2Hg42bnZKHqp6CcYqPhZKRi5yRfY16qYONkpeVjpuWhoabpqCimp2Gg5KZmZiQmqafpp2dkJeBkot3fYiOhaV7fI6QkYaYqaGck5yPjaqOkoCejYiTmp+Dj5d+ho6Cb3iFcXRgfoOPhXSLl4CDjoKGhH6FhJRueXV1k6KLjYabhYWOdICKfX1yc3uJhHt5jI6Ek6ePhoSPgoOKiYl1hIeIintuan1/e21oa2xnXnl+Z3x7dnN1dXp2XGBwfW10YGJaXF5RZm1TZVpdYWtpdXl+cGtsY2tqZ4B/a3KAbGt0bnhuhHluhoB2goB9hXZxgo2HfXt6fH97gotgaXtrdWhpg2VqY2BpW2N1aG9idW1sVGJxeWRwenpyZWptbYuKn7iaoaSfk5KWl4uan56denedpZCbiYaklIqYmXh6jYV8iZGDjIKBgm18f3hygIV9ipB9a2h9gZeIgYiOfH6GhId8j4CPm5uRiKecf3CLiouShqChioWMfKeRh4+Sl5OWkneNo6ChnZaaf4GQmZiTjJqioaOal5Gbf46FeYCEj4ehgH6MjI98l6SgoJKZkI+mjZCBm5GJk5ibfpKSfoeOgXV0gnB2YH2AjYVxipV8h4txjH6ChYWOaHhyeYyZkpCAmH6Ii3KCh3x9cXp8jIV6e5KNg5alk4uGkXyFhoeEdYGChod5ZHF6fnh5cGxqZl59cmh7dXVzfHN/al5gc3Zwd2RjWV5eUmpoVGRYXmFnanZ4gXFma2NsaGV/gGptfWducGp9d4V6a4uBcoGBfYF0doKNhn58en+BfX+PanKDbnNpYYhpbGJfcVV0b21uYHhobVdqdHZidXp7cWJrb3qJjZ+zkqWlnY6QmI+GnaCanHx1o6CNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjZafmn1vi4GQk4alm4eMiYOllYSSipWXkpF2kZ2hoZiUmHp/jpiWjpaanKSemZOUm3qQhoN4hZeNnn6Bio2Mc5einaCSmI6PooyMg5eYg5OWmn+YjXyIjYF2cX1temSAfIqFcIaSf5CCa4eCgX+JhGV1b3yHk5iNfZR4jIl8gId9fHKAeIqHeYWRiouYopaChIx3iISCgXZ6gIiEdF93d3xzfXdma2RgfmlqdnJzdH1we2NjYHNtdXJtYVlgXltsZFJiV19gaGt1eYZwY2pjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIF/fnqCg358kG11iXR0bWWKbGphY3VWg2lxbmB4ZmxianZwZnl7eXFgcmyGhZCdrpimqJ6OjZeHhp+Tl5h8d6mciph5l5yLi5iPeHuAi318g3uAgoB4c3h6c32AhH+IioBkXn2LlYd+hId0fX6Kf32YhJaUloyioJd+cod7k5GKpo+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2Rk4mcnZ6mmJiNlZd0jo+KbIaYkJl6h4iQiW+XnZmik5SKjJ+MhoKSnH+TkpWHmYh7iYmBenF5anVse32LfW2FkYKTd2+Bg31+i4Bkcmp8gZeYhX+OdJGJg3mHfnZ4gX6HgX2EjoWNlKSQeYWDdImHfX9ydH+GgmxgenR5cHtvYW5iZHthbm51cnd3c3Nhdl9ua3Vub11bXl1eal1PXVdiYWhtc3qJa19qZWpjaHeHbWVsaGlsZ4B8endvj4dzgIOEfXSBhol6gn16gYR9fY5yeYt5eG5sh2toX2lxY4docW9ldmdtbGF6aGp8enhwYXdti4GZmqqgpKmdioqRhoqeipWXfXatmIyWfZ6TkZaUiHZ9e4p8e4B2d3+AcHRzem+FfYGAiX58YVx+j5GGf4OEc3qAhnqPkYeRkZuSpJuUgX2AfI2KkqSIjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQjpGInpmhoJeWiZaSb4qahWeGmo+UeomFkIpwlpqToZKSiIuZjIKAkZ59ko+TjJmOe4mEh3RzdWtxbnV7inRuhpCNkXF0gHuBgoh8ZXFteX6alH2FiXSRi4F0iXlvgX+Bh32FjYqFjZaojXuIfX6LhXd9cG5/hIJiZ3dzdG56Yl5vYGp0XnBpenh4bHJwZXhdbWxzbXNYWl5fYWpaT1dYZGNncXF/h2VdaWhmYmdxjW5kaWdkaWiAend1b46Ec4CBgnt1goiFeIR8d4OFeoCJd3+LfHtyeYNqa19waHR/a3FubXFnb2xle2Jtf3l2cWx3d4p/opiiqKGnm4eMioGPnIaTnHSAqpSRjIagjJWTkH9ze3aEd3h/cnN7hWtyb3ltiXaAgIZucFtZfpGNiICAgHZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoJuYlYWYiGuGpINnhp2KkX+LhIuBd5OYkZ2RkIiJlY5/fo+YfJGNj42akn2Kf4Jvdm9rbW9weoVpc4OOl4lwd4B0goiCeWZ0b3aCmo98iYV6lZJ6d4l0cIp8h417i4eEiY+co4h8hHeCi4B4eG5pf4F/XHFycW9vd1pecGBval5vaXx5cG1tam12YHBvanFtWVhhYWJtV1FTWWVmY3VwhIJiXWttZGJma5JtYGZmX2drgXVxcnCLgHR/goB4doCLgHmFf3eHhnaDhXyHjIB7dop/anFjfGKGfG9wbHRqaG9sdndfcX55e3R1dH+CfqWVmq2fp5aFjYN/l5WDj550ip+TkoWKmoyVjot6cnd0gnByhXNxdYhsb211bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCBkYGTkpibkZl4kXqCjJKkmpOOiJWYkoOGlpmMk4uJj4+InoWQin1zi4WIj4icmZ6blpSAlH9php2IaIehiJKEkYOJcYORl46ajo+Mi4+Nd3uSkHqOi42Rlo18iHyAa3ZqbWtrbHp+YXl9jpWBdnqBd4OMfHlndWx1h5aMf4iGe5SRcXqFcHiNe4uNe4l+g42Rnp6FfH14got9dnBoa4CBd152b21rcHJVXW5icWBfbW15cGdwZmdzdWhwa2F3ZV1WZWBgclNQTltmZF14cIh8XlxocmJiZWaRaV9nZFpocH5va3Fzin12fYWAdHV/jHl7hoB4iINzhoV+jIyDe3mVeGZyaoNgh35vb2t6YGltdH90X3R8eIZ4c3KFfHmhkJqxnKaOg4p/g5qIgIudfoqZko6EiJeNjo6EdnN2c4Bwb4VzcHGDb2ppdm2Cbn18bXRzUk6C38mS1pN8cHSDdYOggpJ3lJCYm4+Ye5NyhZCfoZOTkIqSm5OFfpaViI2NiJGNiJyAjoF4eox+iIyJm5ucmpWTeY13aIqSiGyJpIWSiJeDhmOMkZiOlImWi42Ki3F7lIl7jYiKk5GJeoV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp6aHRrdIuQioKGhX2WjGx+f2+BjX+NiH6EeoOQlpqbi3x3eIOPeHJsZXB/gmtodG9naHNsU15uZHBZX2tweGZramJmeHNvcGNfd2BgVmtfXXZPTUtgZmNdeXGKdFxbZXVgYWVljmNhZmFYaXNzbmtxdot8dHmGgXV2fotzf4Z/e4l/comHgZGKiHx+mHZlc258ZYh/b3BrgFlrbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFd4iVfnyJnIeEn5COhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fGpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcIWLo5eJjpWKkJ2VgoCVkIWJj4CSioqXf4d7dX+JeIaEjZual5mOkHaLd2+Iiox9i6SFkomdhYZei5SXio6IjouKhIlse5eCfYiFiZGPhnaFfX1rfWN4dWlteHNXiHqRhoR5fn+AhYx+eWZ0aoCKj4qDg4CMl4ZrgXZuiZKDkYV/gnqAkZaUmZB0dHiHjXVzcGZ0eYFhc2xvYWh1ZlJgcGdrVV5tc3lgcmNfaH1xcm1aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR4XmBkZoRfY2NeWGpya25rcneLfXN3hIF4d3yIcYOEfX6Ie3SLiIiVhox+fpdzaHVxeWyMe250cIFYcHp2eXFkd3mGjGl2gIlygJ2Imaico5KEfXCMlHh5ip2DhKCNjnyVjH+Zh4R7c3dwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciHNsc4B2ipqIjWmXj46clJKBiHCFiKCOhIuVioyYk3yNkoiDiY97kYuGkIJ/dniDhHKHgpKblpOYhox2h39whoOKh5qig5SMnoOJYYOVjoaJhYmMh4CHaX2Uf32DhImOjYJxhn5/cXdndnJpc3drWox9koGEfH+DgISKgnZidGyJgpCLgn9/k5F9boJseYeQh5OFfYF+gZKUkZeJbnJ6jIZ1bHBqcXd/XnNoblxqdWBSZHFoZlNfb3Z0X29gXWiCcXJpV2doY2lYbVdbdUxKS2VmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVuanR3in5zc4F+enZ6h3OFgnx/h3d2ioWPmIGNgnuTdmx3dXl5k3VueHp9WHmGcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotydo6bfYmZiIl7n3+DmX+BeXJzbm9kcn5pZmx3d1tfeHp6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIdqmI2Im5GLhntoh4uZhoGSkYaHl418jYyAgImNfJCMfoqFenV7gnpxhYCUmI6Sk4GJdYSHd4SAi5Sdn4aWj59/iGF/k4eEh4OJjX9/gmZ9kX9+f4KMj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hH58hH+EiH9wYHNxhnyPjYJ8f5KJenGDZnuEi4eNhHyFfoGVj5GThG5weYx+dW1uaWp5fGFnaWlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE5mZFxnbnGAa1pbY3JfXGNsd2RlXVxabGtibWpzdoZ/cW9/fHx0eIV4hYJ8gIh1eYmBkpV8iIZ2iIFweHl7hJNvbXuBd16Df3SBbWl6c5RzZ3KIfXKSkYSan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fndxb2xqYXR8Z2JpdXpaX3h8eW1xfmVjaGhXnY9ecXKWvMSEdXGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJuMfIqGfHuJjH+UiHWKhnZ2fYFxdYWBnZOFlI+Dg3GAiHWFfIqZnZiHlI6dgIhmfZOCf4WDiYlxgX1mfot7eX5/h4uPfWmAfIN2Zm94eHN2c2xqjYWKgYl/eIGAhYN/a19yeXt+jYqGfIKPgX5ygWl5hIiMhoV5hH2BmI2QjH1ubXuJfXd0bmdme3ViW3BiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5ZW15sY1pib3dkZltdYGxpY2xpc3aBg3Fufnx/dHWDeoOCfIGFdn6IgZaQeIOKdIGIcnl4fo2Qb297gXFpgXh6fm1se3WVa2p3hHRslI6GnpigmYWIbn2Mdml4mI5+gIqClZeJeY6Wb3pzcGxqZGBzemhfZXF6WmByfXlncXphZWWPsbJ3SmJapNnQlnJ7kIqQd32UioSZkYyFbmuFkpF6eZKGgISYinyHf3h4iYqEloBwjIhxdH16aXmFg6SQhJOMg35vf4N3hHmGnJmVi5OQlIWIcHuSgn2Cg4iDboF3aICFeHJ/f4OKh3xlfX6EdWNwcn9oeHBvdZiMhYKKfHZ4gIR5gWtccX9zgYiFiX6GiXuJcoFucYWHj4WFc4R6gpmNjYR4bm9+hH92emRnaXtvXlh2WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manBgb05XaFE/WWZeWm9qZ3pxWlpZa2VZY3F5X2hcXmVtaGVraXF3f4dvbH9+gHVvgnuAgX6Cf3aBhYiXinGCjXF7hnx5eYSTjHVqen9sb350f31vcnt7lG9ugX94ZpOLg6GZnJKChWeHg3BnepaIfX6EgZiJgXyNjGl4cmtsZl9hbnhtX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF4hYiOjXaDlox+ko2Mf21shY2Mdn2Pf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOmi4KPi4N9boB1d4R6h52RjJGSk4yLhn97koZ3f4SNg2t/cmiAfnhtfHuBioN3YnmEgXFkcWh+bXRxdIGbi4B+hX5zdX2Ac4FvW21/dXiLg4t7h4B8iHh6cWyJhJCEi3KCeoCXi4t/dG1rd4CAdXVcaGd2b1hWe1JZb2RMWnJyZVtJcHhvXFpaWV11fnRoWWJbZ2VuY2lNV2ZRPV5lXF11ZWB1cFpZVG9kWWRxeVpoXmBnbWdqa2lwd32ObGmChH55boB8fIF/gnp1goGNk4VwgItud36Ae3uIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgIBsjX5raH6NjHp+f4OUgX59iohrdXFnaGJbYmdybmBha3NhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ1hZaFc4+KiXZwbIWDh3V5iXiJfJOHen5zZ3aJfn6Yb3GGfmh2eW1leYiEpIaAh42Jfm5+doCBfYyaiIKUkZiJi4SJfI+IcHt9hHtofmxqgHt6aXp2gYeAcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR+bFhwgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4mIem5tam6CgnVuXGdkcnBRWnpNWm9cTltycGRVS3N4aVdZWVphcYB0YF1dYGZkaGllTlpoTkBhZFtgdWFddW1YV1N0YVpkb3JXal1haGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iYuDcXuHb3F3hH97iY2Pg2p+e213eHaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJB4fXuBkX9/foqDcHJxY2ZeWWZfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDcpJ8eIaTgnORjIdycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZnd3VjanyCh52Bf3+Oj31yf3SFeoCSkYN5lo6Vj4iCiHuIiGt4eX51Z3pobH95c2l6doCDfWhgd4d9ampzZ3uAaXaAi5CUfnp9fnB7dnt0fmJWd31yc4qEgn2DcYeKd3hxcISCjX9+eX59do6Gg3ZpcWltiIJyb11nYXFtSmV1S11uVVNZc25iUU9zeGBSWFhcYW+Cc1thXGhlZWNrY1BbcElEY2FaY3BeXXdoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeH1ye355goGBfHZ9g4iFg3B3g3Jud4OCfYmLk39wgHt4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneGe2d0hYuQen5/e4iFg3aPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJd2+MdXuGjoB6k4l/dXR1fneAcHF/bYR0lIZ4dWtgeoJ5iI9mcoRwZ3ZuW218gJCTf4B5kZJ9eXttiHeBkoyEdJaKkY6HhYV7f4RsdXZ/bWd2ZW17dW1qd3Z/f3xgYniFeWh0dWJ9e2d0ho6MlXt0gHVxf3p8bX9ZVnR/cHWFh3+BeWyJhnR5bHWAhIR+e315e3OLgXxzZ3RlbouEbXNaaV50ZEdtbUxaYVdWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGReb2JUXXJHQmZfXWZoXVt7YlFVXHVbWmdrYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcX90cXV/hYGJjYp7d394g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3lefYWYjHmGg3SFhoR3iXtibm1cYltbYVZpc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8hIl+e5GFeXlzeXV1fGpsdWOEdZKCd29mXn2CeouJZnKCa2pxY1hteoWbiIGBc5eUd398bolygouMiHKYjpGJhYuDe3h9cXFwfWZocWJteHFqa3F4fXx6XGR5gHdpdXhlgnZndIeLjZR8cYdqbn2BeW58XVhyf250gYt8gm9vin9xdmh3f4GAgXd9cXt1h3x6cmZzYW6MgmtyV2pddltIbWpNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmXl1We11PVWRwWltqaF1XaGBfcmVqZ3JncHJ3hnhulYp0f3p3fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dIt+fYaEhId/fn59h398eHZ5eJGToH+MfIttdYB5Y4OGloVzkYpvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5/eHmLhGdxfmhqa1pWb3eJo4GEf3GZk3GAeXWDboGDkohzlYiNiISJhX14dHJuaHlgam1gbXZqZ2preXd6dlpnfXx4ZXJ9bYR0ZXWFjIWVf2+LZmp6g3VtdWJccH1sdX2MfIFmdYd9bnFodX94fn9zfWx7e4F6eHFmbGJuiX5sbVZpX3ZVSmlqT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpEalphZFdZVXlZTlZtalldbGVcWWVjXnRlbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeXt6c3OFhoiIg3iBfXWPfnyEio6EgoR7fouDe3d8d3eanZd6ioKGaXZ9fGyDhJJ/co+CcIWCfoF/b2ZsZ1ddW1xbVGRwZF9XYnJ1aXVwZWViV1xcaH9wb3KAc4lkZHh+aXN1c3KChHiAhHl3dHVta3pxYmdrZ4Z0jYNuZl1ffXB7iX5pbXhmaWRVV3JvjaZ8g3t2lpB0fHN9e258fJGGd5l8iIaDhoN9dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dGdwgHeBdWJ3hYp8lIBui2pteoFxZnNlYW56Z3N4inx+YnaDdmprcXV7cXp5dH1mfn9/eXduZGZiboV8bWpVaWFvUkpoak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFpjZV92Zm1icGlzbnJ/dXSagXd/gHd/f4aEenx1goR+l4VucnR8enRxhIWPgYB5i3V0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLeW+Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFze2lobWlgYldfW2qAaWtvgGdrYGh5eGpzc3RuhIF6f311dW56aGp5al9lbmiBdpCFZ2VYYndpfod7b2lwZ2ZdVVhvZ46od4F6fJCOeXVwf3BzdnqPgHiVdYaDgIWIdmpydmdobltsZF1tc19nYWp4aHttW22CcnNqb4B+eXdhd4SEd4+Ecohxb3l/cWNwaFxweGRxdIh8eWJzgHBnanl0cmx4d3Z4ZIN7f3h2cGRjY258fWtrVWhhZVNKa2dPR1FrRWB4Z2FNU3FcSk1UWWVrd3plX21xaWRdVmBWbm5XS1NoV2VeWE1Va1RKXHlfW19rXV1bY2VgeWhrYW9vdW5veHV6mH13gIF6gICHhXp4eYN+gZOEcXR0f3l2dISIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoF5dYB/gXRuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedYJpXm1sXGFWXFxsgWVxdH1paVxrdnVndHdybIV7fX15dXJseWhpeGZdZXJoeneTgWNjVGVwZ4KFd3dmaGpgV1ZZZ2OPp25+d4CLjnpwcX1oem96jXx3j3KEfX9/hm5kdXNkaGhca2Jdb29bZ19tdWR6aF10gG9xa3F7fXV1YXSFinqHh4B/d3J1f3VhcG1acnRicXKFfHRlcoBsYWx7b2ppe3l2cmaFdnt6dXFkYWVtc35pbFRoXlxUS3JiUEZWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1dnWFlIV2VQSGJ4Wl1fbFteXGFjXn9pal9udHhub252g5d5coGAfH+Ii4V+dXWFeIeMfXN1dYJ5enqCi459foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXGHeXN8e3VyboZse35sj3picG9iZV1lVllZVmNma2BdXHOFaFhwblpeV1pcbHticHd2bWJabHNzZ3R1cGyEeX6AeXdubnRlaXRlW2d0ZnZ2knpfXVJlZmuDgnR9YmNpXFRYXWJjj6VoeHSChZB4bW96aHhufIV7dYlzgHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVcd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYndkW29wYnFxgXxzZ3KAZF5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGlTZ1hYVE13X1FKWVhIYnVkYUlUbVNKTFpWaWxye2JsbHNjYVlZW2F2W1NMY11YaVNXR1lgTkdpdVheYW1bW19iYl2FaGdhbnh5bG9qdoGQeG2CfoCBkoeDgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHhzd3Vrc25+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcm5bWlhYYGx2Y2l1amleWW1zcWxzc3NphXx+f3x2bm5sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBbY5GeZXJxhYSRdGxrem1vcHt8fHGBd39zenp6ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2aWlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbmJxc4F6c2ZvfltgcHFhX2pxfmxsdX5zcXhrcGFcZWxsemFnU2ZUV1FPdVtRT1hRSGN0YmBGVWpQSVBaVWpra3xlbW5xYVtaWFlscFdTT2ZXV2hTVEZaXE5IcnRYX2NtY1hgYGJdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fIdtj4Zxb3d6fXSCgnyKjoKCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntld4pubnpuZndwemtzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT29uXVZYVWdqdGdidGVlXVludG1wdXV4aoZ8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3p+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+b2hpc3FzcHR1am2EkoGIe4VxcmZufXByb1NbZmtmcXSAdnNjbHZVYnJrWl5vZn1mbXd9c3Nzam1gWmRqandeZlRkVFVQVG1XUVZTT0dkc19hRVhpTkhXVFZtaGR8aWt3a2JXXFVbdGRTUldoUVllVFNIWlpQTXh2Wl9lbGlZYmBeXo5uYWZseXVub2h2dn9/bIN/fYaXe3+HgYl+a5OIcmd0gHt1gIJ8iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGR7cGZ5cnhsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbWBUVlNvZ3NsZnhkZFxYcHRscXp4cmyIe392nHp5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CDX2JeZ1dYX1dkm4hia3GBh313a2t4bVx3cWx7anZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfWtma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFpaW90gXRzXmlsU2VxZFVibmJ6Y3F3e3ZrcG1qX1hhZ2h0XGVVYVVSTlhlUk9cT09IZHBdY0ZZaU1JX0tYbWRfeGhufWRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dV1fZW1oWGNhW16NcGNnandxc25ndnR6g3KBgnmHjX58iYeOeW6QinRsc4J0f3+HhIaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyOjo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usWFARERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS4WTA1NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh46QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGJhYaGhoaFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkIqRj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI6Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4qIiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GioWGj4mMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mHh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoiHhoyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjoyLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Oz05Nzk7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk4OTk5ODg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PT0/QD48TUw5PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0REQT49PkBBPz5qb0I9P0NFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkRAPDw9QERERW15STY6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQEFYQD5beHx7eXlTNzo4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0E/RnhYY4SEhIOCe187Pj0/Pj0+Q0Q/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9KdHiAgYKBe4OBaD9BQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFBQExzfIB7goN+hYVZPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFSnB9f32DhYaGh2hBRUVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhNcn+DhISChYeIilVBQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTExngISGg4CEiImMcE5thIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlOAhYaCgIKEhoeDgIaFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKXYWFhICChYCCgoOEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlghoSBfoCChIOCgoOEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzczNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQl6EgICAgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo8aoaBgoOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojo7ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PkV6hIGChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BDUIGDg4SFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj48QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZWg4KDhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXR0xNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkBAQT9CQkdHSlmEgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDk4PDs8PTo/QD5AQENGSUlQYIKDhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSURKSEdMSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREdKTFZyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15RUVBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk1PUFRZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NXWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFdYWFpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJRVVNVVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpcbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f3+Af399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNU2RzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dXJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVZQTUlDRj46OjY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU4OEducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pHUFBPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWZSUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eHt6e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QD88PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUFFhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkQ/QkM+PEJHP0I/QWRxdHd6ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUExOTldLTE5LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRLSkhNVEZJSUpMSktMSUlMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLR0hLREhJS01ISkxISEpMS01dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZEQjtCQ0M+QENDQ0VGS01IS05IREhFSUxOTUdJTEdFRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0lJTEhHR0dGRUNAPURFQj5BRENDRUdISUdNUElGRkdLTk9LRkhKRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJFR0pGSkdJR0ZGRkVEQkFBRkZDQkJCREVER0dIRkxQTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVRYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZHRkZFQ0NFQkRJRkNGRUJFR0VFRkdFSU1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJOT01OUE1MTlNXVldYVlheW11kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSEtIRUtLTE1OT1JUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBfaGVjYGRlZ2dqaWhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3JzeU1ISEdJREFDSEU8QEVDRT04Oj4+PDw8QUI8Pz5BQkZDRUJCSENDREVGRkdHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRUNIREZER0ZISEZISElLSkVKSEhLSEZGTEhISEpITExMTExJTUtNTU1PTFBQUVVWV09KVlZVU1NSUUxPUlJRVlpbXV5bXF5gYGFgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3dJSkxJTEdCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVFRkdFSUVGRUlIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11dYGBhYWFgYmRlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXRlcXNrcHFqcnZvd0pMTEtNR0RDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEdIR0ZKRkNHSkdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRUJISklISEtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE5OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0RCRUVERkJGRkdDREpFRUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUJFRkJGQ0VERUVEQ0hIR0RFS0dHTE1NSk1MRkpOSElLSklLSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtISU1JS0pKS09QTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVFQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxMRk5LTFJSTEdNTUhOSkdITkhKSklITk9OTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NBRUNISU1JRkNGSkxJR0ZKTUtGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0pMSERHSVBLTE9LTFdNSUVFSElKSElLSExKSEZISEpHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXl5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBP0hJR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QUF1fYWNkY2NiXGRjYmRjZlhRVVRTXFhbYV9eX2FhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUJISEFBRkZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19hYmFgYmJgY2JiZGRiWE9RUlJbU1xeXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUlLTkxMSUxLSUlHREhLUU9NTFBMTEtLSElDRUFFQ0hHQkFGRUJWVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PT01OTE5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlbXl5hYWVmY2hja21xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdIWU1HSEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBLSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JfYGBiYVphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdXpufH15eHJuTkpSdE5DQkVQUElLS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSkxyb3V1cXVxZGhhVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFNTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9OTE1PUEpIUU5QVUxLS1NUUlJUUFZVUVFOUVFYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11eX2NaX2NjZWZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlVUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUktRTUtLT1FUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUFFVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmJkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktLTk9MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBNUk5LU1BNTlVUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbU09TVVdVVFlVVllUUlJXVVVXXFlaYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNWVVVWWFRXV1RSUlhWVVpfWl5gXlZeXV5gXVxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRU1dVVlhVU1haVFNRWVdWXF5bX19gVWFcYGFeYGJfXGBdY2FjZ2lkZWBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanB3eX9jXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNXVlRSVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVltbVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXlxkYGFgYWNkX2JfWVpeW1xbWVhZV1daW1phXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVtgXGBVXF1oanJ9cmxoXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlVVU05WUlNaUlRVVFhcV1hYU1hcWF5dWVteVFVOVldXXlpXUVRVWFhYVFZYW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVV1ZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYVlVTUFdSU1dTV1VWW11YW1lVWl5XX15ZXFpSV1JZWFlfWllTVFZaWVpWV1lcVlRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlJZVVlaWmFYXFVXV1paWlhZWVpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWVFxUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWlxaVlhVV1taWVtZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlleVldaW1tbWlpZW1lZXl9gYGRjZGVlYmRaYmZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF5gYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWFBWVlZWVlZTVVRYXVxfYGBdYF1XYF5bXlxbXlhWWFhbW19fW19YWF1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1xaW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFhWV1hYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF5cX1laXl1eXmFdW1pZXF9iX2JkZGVmZ2diWmRmZ2lnY19jXmFmZFpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xYV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWNeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFdZW1pZV1paYF1gYmJgYWNfXGJdX11bX15ZWVVYXV1fX15fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVteX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7e3x7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSztZWHiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL+/v7/BmoqMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGAgIF+fHx8fH18gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2eHt3eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enp7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt8enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8fH19eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGBgoSBgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgYKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoGIkYKCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCgoSCgoOCgouYh4WEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoSFhIOBf358iJuLg4SFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAg42Ffnx+f39/mY+BgoKBgYKCgYCCgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CDlop9gH+Cin+NjYGBg4GBgYGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgIKajYKLgoKDgH+Eg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgpiMhIWHh31/foCGhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYSDkoiBgYCEf39+fYWHhoOAfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISGg4GAhIyCfn19gYaBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEg4OCgIGFhIOCgH5+gH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAg4WDgoOCgYGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4ODgIGFhISCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYOChISDhIOCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/goCAgYODg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCf4CCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH5+f35+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAfn2Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAf4CBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYaGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYCAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2Mi46Ni4qGhIWEhIODg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBg4GFhoWFhoaHhoGEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH1+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fImKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYWGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOCg4GBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH99f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGAfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+BgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIGCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf319fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoaGhoWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYaFhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEg4WFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDhIODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYKBgoKAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2dfX19fX19fY19bX19fW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiqC6uLi4uLi4uLi4uLi3vdLS0tLS0tLT09PS09PT3OLh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo4Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ5p6Ojo6Ojo6Ojo6OjoavS0tLS0tLS0tLS0tLS0d/q6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpXfKikpKSkpKSkpKSkpKOs0tLS0tLS0tLS0tLS0tHe6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYOsqampqampqampqamosNLS0tPS0tLS0tLS0tLR3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Oz8/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvO0tLS0tLS0tLS0tLS0tLU1NTV1dXV1dXW1dbW1tjZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPzs/T08/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW1dbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/PopfK0saSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqnazXqKCroM6ZrZqz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdwpyVkKGzlYadnc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZm6udn6eZtMDJl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKDDoqCMoMXTkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SY2pfFyZTYrKO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QoLaglJWhu82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJ2Ln6+znaXQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqjkKKaopyckaiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6ODo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannb6eqaCinqmiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTc6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbZro6RpdSakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0tXBvdbT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3Njs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2tnZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODc5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29va29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2dra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vb29zc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra2tra29vb29vb29vb29zc3Nzb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj08PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmYmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz8/QDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJmampmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCQkZKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkZCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnJycnJycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdnJydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJydnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJUlhZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqaifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKamqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moaKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKClqKynpqWlo6OnpJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdwfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKeso6ekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19ibGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vb68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKlp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TBxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszMx8HDx8fIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWMh5KLmJiVmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkJBPUBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsbAxcfLyNTLysfGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkomVkZeVlJmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnh6e3Zua2lndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+t77Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamViam1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW3sq+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZ2ZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C+w8C6xMK+x7i5uK23tbi6tLizu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzC0srGx8rJxs/CwbiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLm9vrO8vrzFuLK4ub3HycrCzdnIy8nIzM7RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYWFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGxtfHq9TFxMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y+usDKwsbTwJTCw7/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vLa5wbq6uLi1xMHEybmMnby5wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uMC2tcCztbKyqq6mt7mvi4+vtri4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6esr6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8Ojs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6trbRwLLAt7CdkIx+d4qOn4yMpbWzsre+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi50sywv6yhgGx9bWBnaXqKjqW3s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqurLyyuLm3u7+8vtXFsqmBeH5fbIdqY15hepGpvbaxtLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8v8LNvaCAZFqEXVaFiox8YVuQr8a5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PDw6OkA9PDw7QD5CQEE/Pjk1ODs8RkJDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7KyurjIxbOHY1lrllxXZHiJi3lKgrfGubKts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpa2qqLWvy8emc1ddhI9XVmFmsqV2UGi3vrazqrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0FEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoqCtqMLGmWJaf4p2ZWR6da+jdmZfd5uvtK6vs7Wqp62so5yZlI6RlpeYmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpefpZ6epaS9w5VWaJuXdIuZiW+MfnV9eXqiqrOxsLC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbn6GhwsiRUXOltICEhnhpcHF7g3h/qKmwrq6ssKegn6Kgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGenpqakpmenKKin8fNj1R2iopzb2pgW11cXmVhbo2gqqiqrKqln5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpqqinqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco6DG0ZNhfHp5aGBXTElLTlBPUVxrg6qvrqmqpqCenqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDu7ezqbOtqrO0r7Ouqq6jnauntrGsoq+moaOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYm5+gm5+gxMiHcXh2Z1ZSUm5XV05NREdhjayupqOjoqCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMa+urS6urS7t7C2sqq6sq67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amVaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qhnJ6hop6bmrOda2xwaFVQXHymlXlSTWeUrqygmZybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzdPQ09PMysLFxsfKyM6/yNHMx8XHxcG8w8C+vr61vrOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwailqKytqqCdo5+cnZmslXJtY1dOUmi009OkjaSzrqSfnZ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfNzcnSzc7TzMXHycrBxsvGyMjFv8Ozs8jEy8rKzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCkrJh6ZlhTUlh309e/sq+nnZydoKSgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtr/Kv9HMy8/Fyce/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCiq7WPZ1pUVVZok7mupJqVmKCcmqChn5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pys3Sy87Pv8XCx8XOzdHQ0cjLzcDKzMXTzsvOyMTJxsbIzMrT09HVz9LM08G5xbGlqLWup5qorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0MC8zMm2vq6mqqihpLG0f1VQU1Jlk62mn5iWmJqbnaCdmZydk31xZWNjX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcTJz8zKy7/Jv8fJzc7Py9DNzsvOzsfLz9DKzsrCycbJzMrL0dLM09HRz8/Kvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCxqqytqqWxqW1NSk5YkqCblZSXnJ6fn52UlpiUiWteXl5hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcGhYWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCtbC1qKGrqq1hSERRi5uNjJiVkJSSkZaWlpCLfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwsjAx83Hw8vKy8/Hw8TQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwre8vK6ls6ezZElLgpiOjZaPhoOEhIJ+hYV/c2BcXl5eYF5gY2RjX11dXl9gYF9bWlxga3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKv73Cy8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1xL+zsberuXVXeZaMk5eGeoCFhoB2eHVycF9aW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcW/vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a9vbXBvcO6vMa7wrmzvMXEwsK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bDxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBuse+ra6yrrCGeJGNiouFeICGhoB+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0urW+srewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsLFwMPFxsjLxcDGxrvHy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjFyM3M0MzNyMrIysnKxM/N0s/NxcfBxcHAu7nLuK2wsa+Xf4+QhomKe3h+hoZ3eIJ9dGleXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/uLi1sKusp56iqqeeq62zramrqbSttrGyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKeys7S7vKuttaWutq66sbCquLCtu667uLvAv725wr/Hw8XBvMbBx8u4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/FxcPDysLJyr/AvcK7tLa2xbGrsK6qfHaTiI+QfHh+ioV6e4SBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZW5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttLaxvbmvt6+orre0tLy4s7yvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK+psqWnqK2lqLessLK3urq7sbu9vr7Ev7XCwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8q3vsS/u8q4wcTCtri+t7Kwtr6wqqqqnW6Dg4iLgHt+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWopq6gnZukpauyr7a3p7Csp6q0qrS6sba1rra5sa+6ubG3pJ+jn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKCxra2ssrSytLC1vLa7wcGyur7DwbK5ucKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFRZXkhOZ09USEVKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTs7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPycvCxri3x8HMv7jKuLzGubTFuLTAwq64vrSup7G3saOjpo90hoaGgXx5dXRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaKonpuim56qsK2xtaKpqqmrq6S0ua23sKyzta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765yLm5v7izwrWyvb2uvLy0pKGrrquZoJ+Kf4aGf3hybnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRlZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaaippygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdoJqXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1xRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxsDFt8LAx863wMS+tLq6s8C3s7q8r7W3saGdp62jl52Yi3+EhH94b3F0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqunr7Crm6Ojt6qgn66otqmmp62wpLewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGwr66vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMHMx8XCw73GuMjMssHDwq69vLa8vba6u7OztKyenKSsl5SNkYWAfXdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbY2NjYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqefnJ+moKqvpp+io7aooKGiqLShpailsKWwray1nqCdlZSpoaKUrbGxn6KjnZ2Ym5OLoZSRk5iYkpeXmJedppunoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpqyvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1XUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lp623u7zBxbqxubXEycnAw8bGyLbGxLPCwMasuLi+t768vbi2sLCrnJujpo+NdouHf3VuY2JmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlVSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraakpKKjopyqq6WZnqWxqaCgnaWrnqehnq2tqamuraGhopSXo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaKdpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVlJHUE9IWlxPUklUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg2OTg5ODk7OUA5e7W0rbS7sq+rsa2dqKevubmzwMi6tcCvxsnNu8HKzMi1yr2xvsTKrrK5w7e9wr63t66wqZmeoJ+KhXWIg3t0aWlpbGdqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRh5CRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6umZuqs5+lpp+io6GUk5uWlpKpqa2anJ+hoJqUkIyZjouQjJKNlpWQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Sut6WjpKKsraqoq6+yt7K9tbOrr5iEc3NoW1hYU1VRRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pp6+tm6morLe2rLvKu7a/rMzHxrnBzs/ItMW8t7vEybKuucG4vsC9trmqrqSanJ6aiX93f3Z3bm1obW5tcGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn52UpaGekpCTkpOVp6qlmpmZnZ2WjYyMlIaIjYOQi5KVkaCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynoKOstKuup7C1sLm1wLGtsauRfXFyYlZTVk5SSUZWUFJSTExYTUpMTlJHTUpBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvQy7G4uLy+wcSysbO5rra2vba5p6ihop6emIWGeWpnbG5xbnFqcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclpaWiKKampOLjouQmqSnnJWVl5uQkoeUjoyBi41/kIqSkpKhmp+ilZSYmJWipZmMmaSmqKahn7SyqLK3oZ2it6yqraSysqW1u7Wrq7GjiXhybV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzxsa3usPKzMazrbu+tbjBsK6qsp+osL2ysqSfoKWdm4t/inBeX2ZycHZxaW5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJSOjnuZjpyMgoqAiZifop6Qk5iWhI6Ck35+dImOeZCHk5CQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimprGhsa6csLuqqa+qmYJ2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oqO0qKWmqKOmpaamprOnpbTBuK+0sMnEt7nBzsW+s627wqyuxK6po6iTn6i5sKillZyem5aCfYRnV1ZfZ2ZpZ2huY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyQhoZzioSWgXmCeoWUnZSDlo6Qj4OGfZJ4cm+FjX2JgZGNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKiel62zoqaumayrmKe0oqmto5N+cm1fW05TUlZMRFRKUE1MRk5PSUZMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDHwrezvc+/ua+vtsOoq8aqpJ6ahJWdtKafnoyal5SNgXh7XlBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hoh+ioiVio2QkZaLhIqIlISajIGEkpqWnpyUpKOoqaWknpuwqqGkpJGmqpahqZyipqiJdWxlXltIUVFSTUlVTVNJTEtPSUhHS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwru2qLrIuLaoqLW2qrO+qJ+Wj4CLlauZmpCDlIqKg312dFpNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYuMknh6gHuAdnJykndodYSEhIR7lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToJ+Wnp6kgHJnYFxcSlZPUUdKWFJPSk1NUkpKSk1QSExRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3urKqnZ2sqaizsKKbko+VgY+ekZaEe41/gnx2dW5aS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc3yJjIeAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYt6dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubGViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegn5agpq+srquoqbCvsau8uKy7vrmzraibsKesm4+WnKWppaGYmpCGk3qKkY6PenWCcnp2cHFvWktGR0VBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBd3B8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlRUU1hVTU5ITkpNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNDU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaSXnY2Ei5ShoZmZkZSLdI56gYeOinhzeW91cGpubltORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq6rsrDCsbvDx5uWj5WZi42FeYSQmJSNkIyPhnGHgnSIjol8c3VycXFocmphVEZJQz88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGhmYmlucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOAfo96cXBva15aXF1bWVhgXlJOW1pYV0xISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSh5aRnqSnnq+VpbWprbGuwbK7wcaXkIyUkICIfW6BkJKJg4qHj4V1goRslomKfXd5eW54cHhmal5JUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRU1VVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhZmEm5xhhqqfnYqCkI56d4h+iYiOc4qXj4N7XGRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR5d2tuaV13h32HfIiHj4CLk5eDjYWNhn1xhH+EfHV3e32JdW9yc2VmX1taXVNbZl5XUVVYW1VHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XI14in+UjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GFjH5+gn9wgH56aXdrUldMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGdoeH5uhYaChXGEhUdrgHdyeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JycWtaXFxbY2NYZmVbVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+Wl5KXoZ2soaa4r7O9s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXtyhJ6fkZx/doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWU9LTldSUUlQS0ROR0NLRENBRENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGLi4KJjYN/in9scGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfIB/gHJgXGJeWWZqXGtrXldLR09TUU5NTEZJUERETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmJKRgoCAi42JhZCHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoacoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+em9nX1tfXmFmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWJ3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjHuKho+QjoGDgImLioSShYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q0vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauJmoqTipV6e36EfWZfZ1tkYV1jY15mZl5bT0NJSFRPRkhMRktIRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyOiol6iIKHkY6DhYCLhYaHkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZyakpqfiaevqqSVdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmCgnRYYGNVZWFgYl9gZV9aVUpERUxVUUlKSkRKSEVBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aGfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6Gf4WIhYqHkXp5bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopKlsa2lraynpJigrLK6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gnppV2FgV2lkaGRWWmNZVlRJR0dMUUdESUpBSEQ+P0JCS0BATEM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RaVlp3anB/j4SBjoVuenN4iGK4oZqjiZWUlpOUk42Ql5KHh3uGgY2VioCEgYp6fIuHhn2KgoGLhJV9eHl1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ycy7vcC7t7W8u7e+tbqyxmB1sqWxmp6rvqqlqKuqo6KytaGrp56Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgX5xXmFgXFZhXmdlUlhhVlJVSUVFTktAPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbXNyc4jVwLWZoI2VmZqRjpeRlpaOhod9hoOMlot/g3+DeHuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsC7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn54alxfW1hdYFliYlFbYFNRS0NCRUZFPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKfoiHjJCMiXyBg3N7ioOFfIp0goqGlX9ze3hsbXV8aXNlaWxpZmpqaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trLEx7awubGwu6yzsaert6yNtqeenKeaTpuejY6glpGmmKWVipOTiJGJj5CSnpuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1c7Tz8zGw8rQv8rJy8nSyM3Nw9HSuLDEvcS6pre7xKKAbWJbW1xXX1dZZVlQXFdOUUNCSEVCSDtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcCxq7WmpbinrK6grLSkj7Gum5iYjJGUkYSPm4GNppGciYOLhIqJhIqDlJWYl5SbkZuXmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjO0tPT1s3S0cXS1sbAzsjIw6m/uNCdeGxkXGFcVV5RXVpOT1NQTkg+QUZCQkU8QEI/RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hpCQjYuKiJGHf4J7cn6Agod6hXaFk5GJf292c2xzfHx3fHOCeHFrgHJyaW9xenlye77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKKgoammqrG5q6a0o6KtoqOtoaexn4mmm5WTkYqSjoiClIlrlaKNmYSBhn6Rg4OTlqyLlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNydfW0cqtxMPMinFtYl9eV1JYUltPSkdJSUpAOzo7RUJEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYSHd4B7h5GXgYNud3BtdX92eH10hnx5bId2dW99doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifo6OmsqSls6CipZ6hqJ+isZyHn5KSk5GLjouGg4+EfpybjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5eam6ecp73Dxbm2xc3S0NHPy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtXZ1bWNcWFFVUFlVRUZKSUVFPTo3OkBBQzpHRUBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioKIfXmFl5eIj4OHhod6hHlxenuEhnZ6ho6NnXqMcHxvcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmpwraMkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoa2copqZn6Wen6yZjJqMkZKOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjZWMhnubiJOPrquUlZeemKautbyorb3Gy8jJy8vPycPRytTW2NfY19Xb19Pa29bQ29rR1snVzJR3eWdnWllPUlNdSEJFSUk+QT49Nzo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoR+hHx9hJiOh4x+hoeAd4J5bnt7h4J0epKejaF2j3WCdHWBfXSAhG+CkIJvkoR0fIGFenaHfIm4xqXDybeBlZuPeHBlTmVjgnqBd4aikIt5eXd7hH98hHZtlJaUlY+YkYOJj5aal5emnJigl5+TkpejnZmrlpGRi42Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY2Ki4J8oYiQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28eFeXdlaGNfU1ZWVU1LRE5EOz09PDk6PD45PkE2Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH9/fIV7foKRioWGeoWIe3V9dW19fYZ+dH+SnpGfg5J8hn14j355i4pvg5uAdJmGfYGJhXx+kXuQqY6Qw6C8jJyjnH2JhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOgoaEgKSGiou4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3d2aWlkVl5aU09OSERMQj09Pjk5Ozo5OTw9NkA+Pj09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFzeIp7e399f3uIe317i4eDfnWEhnlzenRtgX6EfXeGm6GbnpSSgIuHf5iHgJySboiphXqgi3yQjoOIhJx+mpGJjaOin5Cjrp+LkYuFi4GShldyrYufrJyPhJickJCOXIOikYKNn5OVjIeIjJKTjJSVlJCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZaZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2ZlW1xXUlVXQ0BJRD8/Pjo0OTo7Nzo7OjM7PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dnd2dISDhX1/kqain6ailomdkJSXioqnl3KKso2Ep5KEmZOEmoyjlqCYk4mbnaGSqK+fkZSQjo6IlYtujbeEmsTIsp2ipZudmJaRspBkpM3IlY6Gh4mQko2Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiOkKqXl6SjiJmelpqJj4aXl4uFj4yBf4aPpYiNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfWdiXV1cTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6GWp5+lpJaVrqKDkbiVkbOajKGhjKSbsKOknZiRp5anmayvpJeUlpWQi5iZl6HAjqPJuauco6atmZKbnbKdhYWoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpekoYidmpOQipCKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2LpxeHRbX1RfVU9ISk5EQkNFNT46Nzc6Pzw8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2zs6ijobCsipq1naK4pZWtpJeprbinpKOfmqmXqaOvsKmZmJyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5F8jo59g4aOj5SViIiTloyQlo2LjJeYk52ZtJeWq52LnJSSjpGSjJibipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3F19bRy9Shb3lnW1lTXVBPRUM+PENBQjg/ODc1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyosq2tvaubu6Sorbm4q6amoqKkoqmvsrGqnZykmJuYl56ipqWSpLqvqcC8ra2yuaakqH6IhpytvLCDjIyLkIOPg5GOeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSio7Czp8HGw6+wurbFxMK/zabHxMfDvNXRzcXKh3JxYFpYXlpMSkJLQEZHPkE/Qjs6ND5BPT01PDY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yMiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuXsre6ssCupcCkq6+7vKqtq6OjnqerrrSwqZugqpuhm5afsLWni6O6u7bBvKyonLKlpKiUhY6pxMOkgouPh4iEhpWUjXqEjZGPkaKMjJSRjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMOuqLe2ycO+ts+yxL/EvLPRycjCtXN3a1tWWmhRTEhDTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5hpSQgXKAfI1/eIeCgpB6jqGWqJqamLq+x8jJwdLJysLNvcKzrbu+p7q/vbvDt6zBqayzu76qsKqkpaSsrrOttrWgn66fpaKYo7O9qZuovcGkt7ewq5OxrKusl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+Ui4+NlKOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKjmpWgopy1pZCel6SjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8zAua/Es7u+writwsPCwJhreGBXVlpaSktNSkZEREhCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS8y7zDwba2u62zv7m8rq+ooKmotq2uqbK3mp6soqehnqu3uKqlsL/Fsb25s6eqtbOtrpeWpayooJGOkrLFp5WOfZKVfYiSmZCqmZiTk4+SlZOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOes6WWoZasrKqnm56ml5iWmJWgpKiln7arqbm7w7Sls7XLwLiqtqyyuriuqLi6vbiCam1ZVlNUTUVKUk5LP0FIRURIR0c5NUZNOz44PUBKLjMyMDI1QjU1UFdOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZScl6KXqZaNkYOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzFxMbGzs7O0sq+u7axuru8v8+1w724uLeysbWzuLOrppyrrLmqqaevr5ejrqSnpKW1wLCrrLS/w7rAurOnubW4s6+Wpa2urqSLk5WhjXTBmn2XmYSPlpqMsZWbmpWSk5mZpaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVJawn6+cnqSUr66rpZqgpZSTmZiOnKCnopm0qaqzvLu7qrCyx7+5pqyrrbGxo6GxsrSkb2xkW1lOT0tFT1BRUTtHSkhHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjoiThZ+HhJ2Xjp2hm6Oktci1qca6wsPHysjIzM3Gvruzrrm4wcHNtce6wbi1urCur7O0pqSbqrS1qqmmrayapK2lpKisur+oq7a3vsK/vrmzssSyub2so661rLmmiJuXppt2v5+EmZ2Ok5mai66XoZyblpWbn6GpnqefmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpaiSkpmciJScop2Wsaepq7q2vbOyrb65t6Cjp6ilp5ybrKmpjGFkYF5RSkxGSE1JVkw9TUROSktCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZyhn7uvmZSfi5Orm5GSk4mrjYein4ykrZSjo7bGvrTAusLCx8jFws3Iwb25sq+4tMDCyrXFssG8tLqqqK2tsKOjmKq0u6appquqnamup6Oqq768qK28tLi+x7y3trjBsb7BtKm1t6u+pY+imJKioLyfiZqgmZeeno+3n6mcpaKbnKGaqKWzoZudppyoqp6ZlY+Um4uXiYykopSdop6gta+lpJKvq5mrqp2dpKOokZWVn4OPnp6blamkoaG0tLq1rai1srOenKKlmpeVmKqhnnZfW19dSkhFRk1RSE1FRkdCUkxJQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHxL7Nxru9ubKwuLO/wsi1v7C8tri2pqSrrK2hoZqqqsWipKmrpp6sr6uiqai/t6atvrG4tse2tbm4wLO/wre1s7SvvqOXo5aUnJSuoJCho6Wjo5+QvaSpnqirnZ2gm6afvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZrqaemamdn42YlJ6EjaCam5OlpJqYq7G1saulqq2snJigoJKOkJWonpRnYlhgXU5IR0pOS0hFRElBPlBIQDxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJWTKKao5yexayhn6yena6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+ysi2uLW0sLOzt8HFtr6xuLW4tZ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsby5trbEsrS4ur+zxMG4uK6ztbWjnaWVkpShrqCZop6oqKujmsKtqZ6srZubnpmmob6hnaSYq6uspqKZjZqfkp+Jjld/lp+moaC4qqaTmLWjn7Ggn5qulp6OmJOdgY6fl5WOoqOWkKausqupoaKlpZWVnZiLj5GSpJ6JYGNZY2BLSEpKTkVFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0opyyqJOrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22pre7vq+3xK20s8PAs8e0u7estLatqqKmlpWVpKyin5+aqKuwr6+7sqagqaiamZiToqS5oKGkk6+vrKWnn5KhnpWej5CNlZ6aop6ntKamjJizm6Oump2brZCek5WTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuRjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqaSqsqGjtKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8Ozt66strmlmauyq6qYn6aXrbu0m6ewm62grrSyp6u5sqe6s7iyucCqt7LEvrXGqL+vrbe1qaesoZeXkqaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqain5uam5aXqJ+gmKGer7KipoyXrpikqpeZnqSQmo2Tl5mFlZ6UjI+cnZOLqamqoaegmZ6VjI6Zj4GFlYiUn3hiaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6OjnaGmv6eor6+hqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuam2pKy7rMDCt7eqrLG6opWtsa2ylqWnkaq5qZ+msJ2roLC0s6qqtratu6yzs7m3rLiww7u+v6bDq7C3rqmrq6aemJmroqKhkZehsa+zrLC5mpypoJmWkpemobeppaOisLG0q7OorJ+boKCbnaWdopedo7Owmp+Pk6Wan6ialKKdlJeJk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjppqaGxgbG5XUFFaVEFDRVRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G7vr+0qa6xtp6Xq66orpemqI6nu5+krLOerKKxsLOsqra0tb2usLG1rLC1ssG7xberva+xuKytqqOxpp6lqZ+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaKZm6i1qZeZkZKemZ2fnZCqnZaXhJSWip2ZnJOKjZaXmpempaKgnZaVl5N/j5SFe46Sg4uWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pK2qpq+ut6qvtbqnp7G3xbext73BwrW0usW+zMW5wsC6vrnEt8C5srSrqbq2u7m+tKmtsLWYmKesqqybq6uPq72dq66yo6ufsK20rq22srm4qq6vsqi1r7S8vcqzqra1sbSwr6ehs6CbqK2gppaWmpqyo62gpa+XoaSampKOo6Wns6mhprOsqbWlr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkImUkp6ZpaKhoJiWkZOVeoqPhXuMioOLkmpteG11e2FFYGpZSUhZWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7S5pKy0t8m7tLq6v7+0s7fDwMzIvMO8t72/v7e/vLG9rae6ube2wraqrLG3lJemrquoo7CqlK+6o6yxs6eoo7K0sbGwtbG4tKquq7Knt6+2tMTGtqm2tqywramno7agoKexoaSUnJmVsZ6nnKCqjqijnpyWmKampbinorK1rKexp66wtqykmaCsqJucnpyUqbiclI6OipibopePmKWfnZSCkZWPnJuXlpWIlo+Xmqeco6CSlpCQlXaEkId7hYGEjIttcHd0e35cS2VsXEtOY1w+YntHSThHZ1dmXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2uq6elsbO0qrext6CrtbnJua7Au8K4s7G1wsLOxcDBvbS9v7+6vryyxKepubC2tr+8rquzspygp7GtpqWvpZ6ytauqsbKtqqm0u620srWstK2qrKitqbmtsrHIwLilurCpra2lqK6wpqWjr6SpnJ6cm6+Zo6Oio5GsnqOgoKKqpqa5pay1tqWqq6itr7auo52jqaqboJqakqSzmY6JjYeQoaCUjJScn5ORhI2Skp2amJWTh5eSlZmnm5+ejJKRjpB2fY6FfHx8h4mIcHNxfXx9XFNkbl5OWWZcRkSWW0c7Tm1YYltMYGJOVldWV1RZZ11RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKztIPzNCSFMsPpBrO0dIj5yqq6KpsaSppbO0sbS1srKhrK69zLquwLrHsbSttMLC0cXGvsCyvcDCvL+3u8SnrLess7i7wK+rsa2go6etqqiksKSrsqqvrLCvsK6rs7yntrGyqbKpq6alo626rKqxw7q2rbupqKitqqmzpamko66qqKKfnaSslaWemJ6ZrJ2iqKqirKajray4sbKhqaKgrK+xrJ2fp6ipmaSZmY+gp5iGhI6Ki56fjoqMlZuOjYWGj5SfnJWXlIaWk5OXpJucnIqSkI2Jfn2HhXx3foeFhnNycYh1a19ZYG5jUXNxXEs7hHxGP1d0WGFaTmNbTlZWVVdRXGJfU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraihqrOcqqqwtq24ta6rpauqvcm7sL23wq+xrLPEw87Pw7++s7/Cw7rAs8jDq663rbK4v76yra2rpKeqsKmnqLGmtK+qsK6tsrG0rLS7pLizrKyup6ugo56wt6uqrbu3pbe2pKqnrKyrrqGpp6axsqSnpqKirJaqoZSboKaepKKrpa2in6ext62uo6aim6qrramcoqWkpJmgmpaPmJyTgoKPiIWcn4uKjouYjY+KgouXo5qRkJqMk5KRk6KZm5qKjouKfIWAgYN6dICEgX1zdoujh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVZUT1xdYVVLTWlXVldJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6qxmKuqrbastrGrpayqqbzAwLi4s7u1prKvxMnL0b/Buri/v8K5wbnAxK2xtbGzur+9srCuraurp7aqpq2vqrmwqLGyrrKtt6q3t6a0t6uspKmqnKOes7OoqKS0taC3rqCqqKuprKigq6ypubapqqmqo6mgrJySqqGdoKSjpqOqnpynta6opqqjo5ilp6eqnKOko6CamKCRjo+YjX+HjIeDnZ2GhIqKjY2PjIOFlKKZjYyZkJGRj5KflpiWi4qDf3SGgH5/eHSDf3p3foGInY9vcWdncXhcYHOIa09emVZIbXhVZFZRY09NVVRVUE9YW2JVSFBpVVZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzMxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6woaarrpqrpaywtLWvq6awqqm6vrvAsK65rqG3r8nHyNDBvr27vMK9usPAvr+usrKxtby6wbGxsquzqKS0qKWts7K5sKOttrGwsruruq+prbasqp6qrJ+joLatqKGfr7KitKqeqKeqo6qhoqytqL2vrK6toqiooKyZkLCimKKgp6eep5uZqrGpo6CtoqGUo6Ojp5iaqaWYmJiejoqHlIh9jYaEg6OWhIGBi4aOjJCDg5OgloiQnJCTkI2RnJSXjoqGhXh0gX98dXh5gHp0c3lof4akdWleZGuBdGeIjH1TWHBeS3hzU2VTUV5NTVJZZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLi01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbK0hNOVVBNJGPsqCkp6ykp6Osp7WzsaulsaiquL7AvK+nuaqmr7DJx8jRw7y/vrm+v7zJu8G4sK+0sbq7t8Cys7usuKyitKenrLK2ubOnqLy1rra+sL2mrKy1q62cqa+koKWtq6ecnqqypLOom6unqaOpnaSpqKm9rLSvrp2ppKCunJuzo5WknKWln6Sbm6mrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo6Cf4edj4V+fYuGkI2PhH+TmpOFkqGMlJGLkZqRlYaJfn9ye3p+fGh4fHp1cHB8Z4R4hIhkYWdicoV6bWd4XV1WQVd6bVRhUFJYS0xOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLGZn6CppqWgqqW4s7OmqbGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXDtbOxtbG9t7m9ta25tr+tobOnq6uwtbi1q5+9vKmzwbS8oK+ztaqrn62wo5ylqKqjnpuksKawoJ+rqaihqZykqKGtu6iusK6gq6Okrp6fraaXn5uho5ygnJqkqqObm6WllpeVn6KWm5emrIyekZGRi4KKgICOgHuZlIyIe36LhY6Ni4qDkpiRhpOiiZKSh5CZj5OAiHx5bH52eXhje3txcHByd2iAc2qDZ2VnYG1zjWxhaW9gb0BbeGtVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUJoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5msmaCYp6Sjn6ekuLCvpK+wqqu4wrqzrZ+4r6uotLrIy8i/t8K+sLS9t8S2w7GuubGzwLS6vbepubi9q6S0qKmqsK65saqbu72ksMG1tqGutrWmp6exs6CepKanoaWZn6yoqZ6gqq+noKaYo6mgsbmfo7GuoKuhrKScpqepmpqbn6OVnZ2bnqmml5ygqJKZlJiek5mWoaqRmoiOj4Z9h3+Cjn18oIyMiHiCi4SJi4uFh5Kaj4iVnoiRlYKMl4yRfIV7c3B9cXR0YHl4aW5wcG5ofXFje21pZWNfZYV+X1pza3JMTH5oWFpOUExKSFBSUElOXF9uU0RXWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4wWFY1KJedppmdlqygoKGkorirsqW0tKqpucS1s62ft62urbC1xsjBt7/CubG0vLa/u76vq72vtL+wvMK4qbu6t6eotamoq7Cts7Cnmr63pa28t7KfsLewqKWnr7GboaSgpKShl5uvpqGeo6ivoaChk6Skorewoaaxqp6so6+YnKqlqZ6Ymp6lk5udm56nq5qdnaWWlpiUnY6Tl6KoopCIi4+FeoR+hIt6jpeKjYZ4gYeDiIuNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RsbGtpaIJtZXJra2VoWmJzf15abHZpWkh9XVtYT09KSEhSVUYyOl9ebFBDV1ZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV9ULDKWo6GXlZ2pnqaho6G4qq+hu7mmrL3Es6+uorWvra2vtMTEvbO/urexs7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKqzq66yo5zBtqWpt7ernrK7qaalqK+rmaKnnKWmlJihsqWZnqSqqZyhoJSln6S5qKSnraaepaGok5+poqGhmZudoJKbnZegoqucm5mhlZOVlpuOk5Ojp6SPiIqOhnmEfIWFfJyNiYqGeICDh4eHkYWVk5KMkJWTjY6Ue4KXjop3fntsdXJtbHNieXVoZ2lnZW6EZ2doZGZoal9mYmlmWmV6Y2BSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzhiTScynqSjko6lppyenp6kta2oqrq3qKzDwLevrKG1rqevr7fBwL2ywbexrrK2tbi3tayqvLOvsrG9wLeuvLyxpZ+2rKamtKmrrqGgw6ypp7G0rKy0up2oqquxpZieqp6opZGZpq2imZ2kqqGbop2XoJ2ntqawqq6goZ2doZWgpp+ioJmbmpySmp6Vpp6topiXnpWUjpWYjI+YmqegkIeKioh4hXeCgoKch4uCiXt+hIiGhJCElpWPj5CRkJGNk3uDlY2Gcn59Z3lwa2psZ3Vza2JnZGN0f2FkZWZlaWpjaG9ZXlhdbGRhTWhXW2BWSUdIS0xSWD45YGxpR0JVU11bSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywwQSpKSy4vKiszNzIyKDU3JCs3LjcyNzg1XHlOMj5IaVpMWkpWYmZBOjNAZUclNZukoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGitqurr6m5vr28rcCyr66utq+zuLKnq7mxrq60tru2sLi9raaetaugobGlq6+fpcShs6Wvsq+3rbWdra+srqKZnaeqpZ+Vm6imoJmko6mcmp+clZydrbCmuqitoqGamp6Zn6SapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4J0goGKmIWHfImIhISKjIiShZOck5KPkJGWjpB/gI2Ng2+Bf2Z5bmhramdxcmtcaGNicn9gZGdqbWxnamdkbFxsbXZxYVRiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRkQEExSWRDJzSTopuPj7Gdm5ShmqmysJ+5wLagtMG7vbmxpbavqa6lt7m4ua27r62qq7eqtLmtpbK1sa6psbe2sbO1uqipn7apnp+qoqqtnKrCma+lr7G2taysnrGtr6qim52krKiclZynpJ2ZqaOllZqgnZGco6uqqbufpqSgmJqanqKPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4NwbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkH9miIBodmlmWF1pdG5OUGpkZnGCZl5kZm5saV5dXomQhYhoT0tEOEVUZ15KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9iPCsvjaSZh5Wxm52ToJyqraujvcWvqbfCuL29rae2sKarpLi0s7Sxua2qp6y0prC1oqe4trWop6y2s660rbOiqZ+0q56ipJynqJquvZWop7C0uK2tpKiuqqumop+coainnJehpqacm6ennZKeoJmQnqiqo7Wwo6KjnJaYmJikiaGPkpqHoYiUnqF/pX+nrJ6Uk52TiINyeI2Og4egdYiNaZeIZn1zeKBviIeDfox8f6Ggn5l/e4eedIiOdpuKbIiCg21pZWR7bXJiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUVSVlZRUFJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExcZ189SzFVYDcvKIyml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0paeos7Gtsqivn6qhs6mgpKSaoqSdsLeVpaantr2mrKepqqynpqKgmaCopJmZpqOlmZylqZaTopyUk6OmpqC2pKOgo5iVk5iTnIiukJiUiamLmKSchrGApK2elJqflXmC1Kh/h5TAm8Z4d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhsWLGub2VpvJK8bmh6bXGP2H5TamO2sn6AcZR1mqGqkFdPWGFPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7azqKemtqWnuK+csrK1qqWkp7KvrrGmqp6npLKkoqKfl5ygn7GulZ+joLS6oqmooa2upaKdm5qiqqCYm6ihn5idqKiRnKealJ6ip6OgsKOen6OWlpKYkpmFsGtqio2qfmeFloetZXGenZWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/aXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6eCWV+Lq2mAknh6aqg4Sq9bV1RtY1tMT1hfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5ZMzEbkqKVgqynpZ+jpKqxt620vb6wt8WyuLrCp6iwrK+pqbGvpLG6sKSkr7OjqbmpnrOysKOloKqtsKyvpqifo6KxnaSdmJWYm52vqJecop+0s6Grm6GtraCempego6qdmZ6koZyZoaekkJ2jm5ihn6yfpaagmp+hlZWRlpGahrWbtXiFqZm1mXeHs5u3f5OWl6uVfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgX+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2imYHlxdVKThl5QqW1jcX2GgGGdL1KibltUa2dgTEtcY1hcWkI+sHhXWEEjTWhGQ0RBQEExOT44OTo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMjtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjhhVTUwHJeglIizpqairqmos6yqu7bCsLzCrbi3waqsra+up66zqqKvvKqhp7Wto6u1pKWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqY+pp6manZaYoKWpm5+do5+coKKlo5WbnpiZnaKqm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5amkI2cjKR6jYaigaWCeqx5j51Wr3uJfp9quVq5d4aDfaaCk3yYeqp5jp2Qe7FujoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZaZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVA3MiWcopOZsaiopbOqpbSnpLy3wbG6wLK2tLyztqeysaOxs6agr7Wom6i6rqKvsaCytLGhpJ6eqKmwqbSppZyenqyXmZmXl5aYoqyem5eprbCoo5+OrKKnlp2YnKGmopiioaOhmqKip5ueoJ6VmZqloJynlZubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uYpI2PnI2ifo+fpH6wdYOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTg9V1JbVllJQz9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRT5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1Qcmg5J1dpXEJOVF9lUDVHPWFNNjIuop2Rpa+spKq7rKa1pae2u7yyu7+4t7W7u7SmtbSisrKjoKyvpJimuq6ksbCctLiqoKWdoaqlsqisqqWanZupn5aVmJmSk6OqoZeTp6uwpaKWkqyfpZKUoZykp6CVm6enopqjn62aoJ6ekJWboZ2cpZWdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4SamaKKkpmLon6Sl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbGBxbVZVTS5lYmhTWVA7QkRATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6CdlKC4sJizwayosqeqsrq4tLm+ubiztr22pri0oLWtoKCpq5+Vp7asqLCxq620pJupn6CoorWnpqqkmZ6VpaKUlJyakpajppuUkKetr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoZiZnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqCiipeXiKOBkIeUqnt/i515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPTeinJqav6yYtMKuq62oprSwuLG2v7m6s7G4vaq7taCxpZ+mp6eek6qxqa+qta2qr6GYoaCmpKS6oqOsoZebkaOglZWfm5WZoKCQjoypsK+mnZeaqKafjZKkmKirqJWYqaifn6CjraOgnaGNlKCYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5KcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV45MUE4pZqbnbuinLLArq2rq6e3qbivtcG1vbGvurmswbaqq6Gdp6SinZKrqqe1o7Korqqhl5yooKWruZ2jrZyWmZClo5aOnqGcmZ6fkZOVq7avp5mUm6ypl4yUppqlraOSl6uypKCeqKuwmaGij5ihl6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z91ZabuHmJkpmMl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXleaWFkZmJteW9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaaZnqK8opexwrCtqaqssae4r7fFsbuyrrywrsGyrKWjn6ShnJuQqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpqCTjZyjnpiempCWk6+5sKuVl6Onp5SQlqWdpK2ekaCoq6Cbn6mksp6ipI2moZShmpuXlqSYj7CgkpWpn4WQmbWAkZGNuJV4gpObtXdubG9zbnmPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lteWKLrHB0hX9YW6dqRGRZVGZfY11jUWdncW11Qk1QTUQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2FXOCpPXV09KztWVic9OjymnaChv6aWs8K0q6qorKupu66xxq+1tK64p7W5ramjo6efoJ2Yk6ykraqmtaion5uWoKOerKW+p6GqmJWckaKbko+hqKGTnpeSmJSytbasmJ2kpKKLkpKmnKWrnJappaacmaCop6ajqKCRrJ6Xo56Xlpidno+wqZOcp6KOan5pnKd4iXN+m451emWHe76/wLpukoJxlYVfcmpaXZqJYWSHjpVrYH+VY22cdmKUa4CalZRlXl9jcZuJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01FV1xmYUxbV2ZjXk9abXZqclJPREVNPEhJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS6tqOspq6nqLWyrMissLOstqS+srOmoKSqnaObmZmsp66kpbWqpJuYlaKbpq2pv6ipppaUm5agmpOYpamnkZ6Qj5icsLK+rJunnaeiiZORqpuopJubrKCkmpqip6yin6mhma+alaaflpSdn52XsaWZoqiZnJGenKOkmaejmp2ampqQloJobn1xdpGXlJGDibSpjYWYlY6KjJiWh5OVioOTk5CIjZGUmZOZl5qgoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNbb2dMWFllal9XWXB6b25mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6G/oqSxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllZWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiUlKKenqOokpCZqKeyw6+aq52qno+Xlqmeq5ydoK2YoZucoqWvpqGkp56smJemnZmaoZ6enLChnaKnlZiTmZSgopajn5ihjpaUi4qNj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIaFmpGHhomVjpuXjpCYnqOWmZKQnI1+jWWhs66EiYR3e5CKfXd5em9neZCBgIlrdYF5iHJpc395dYOHgmt0Y3hmX2hkY2Rmalhre3Bqa1xTTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9dXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LEC0oLmvvqyrrbGyoKqmsq2irLOwxrCrraSzr7yktJygp6KhnZmXqKappqSls7WelZSemZmvpq6+oKyjkZGempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKSrlJ6fnqCqrqimo6uhrJufoKCYpJ6cn5ywpJmfqJOYl52SpZqYqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOa2iMl5Gid2tqi5iin5hzbG56hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvq7Owq6Wora6wp66tsL2xqqilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJiZppZ7payiqLPDt6Wip6+fnpWeo5+knKSqqJKeoZ6gqq+qqqOqn6ebpp+noKyWoZylsaSXnKuWoZ6bk6WXnquZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2NnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx2kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO0sK+/qamUo6+psK+tprK1r6qmp6Wxq5+rmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRoKGXm6Cdh6aqpKutv7+xoamuqZeSn56imaKkqqOToKGenayuqKymo6KloKSlnK2okaSbqa2qnJ6qna2ilpellqGjmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4OAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK50fJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX5sgY1fcGpvZmBfeGRccWhqY2ZgUlRTV15KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaOqqa20q6ayra2spKymsKqgp5uappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTj56ll52oo56upKuwqL/Gs6ipsa6Wkp6copehqqqflaGenZytrqeqqJumpaOhqpKss5aloqqqnqSopqGxopOap5qgmpSUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihjJGLnH6re4iSjqCAeq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbZCOZG5zdW9gZm1kX29oam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9TGx7K0n52jjqOioq2utq+psaepq6iuq6umoqOdmqOWn6arn6KmoKioop+esKyYm5eoqK+sqKepnpeVmqSikpShrZudp6OurKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqbCoqaiaqqijoqubr7GiqKyvppqnrKqqsqOTl6OlmpSRhKRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJmGgaN9qX+BlIauXnyoVZ2ikoF6o5+Ae8OvxYxzr7SzuXFiqa/CdWiMjJeOgWyZkW5teHd3bmtmZGRxcGZ7aWNdVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqq2jqKeqq6uppKagm6WfnaanpqSdrJqiq6Gkn6+inpuTqqS2sK6gqZudl5WnpJGboaifoKacsKajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6aqq6KtmaunoaGqorOtoqqzsqKcq6mvr7eklJajp5ibknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUqKmQk5qMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntwlpF9b3p0fHptW2VqcnFmgWleYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMHGua2ps66spaKdsrmsqqGmm6imq6yppqCmpZiqo5+urJ2moayan6mlnae1oKOYk6irtrKsm6acoJaRpq2RmZyno6Cqpq6ho6epsLTCsbKqraiUiZidpZuipK6ll6GVmZylpaqarpyspqWerKO3rKCyubCenK+ns7S0ppWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSofrCFnISehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJKPiHN6coR9cFxsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWmr66uqaadpqaao6ehsq6iqaeyoJmopJSitaOklpeiqrW5pJyjnaOTkKKxmZ6cpqWhoq+tnaSoorWxw7Gtqq2qkYeRnKedo6ScpZeemJmZpaOoma2hrKSlmK+lu6yht7eunp61srmytKiZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijaaLk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkYp3fHiNgWxod2l4c25/dFxkZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWlpaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrbahopmVo6mnrqmrmaWhn6WhoLWnoqmnsKOUq6OOpK2kn5Camqq0tKSdppypkpSXrqCgnqaknKectZqgqqO1q8KvqaupooyEj5yioKajlZmanJibmKajppiqpqyhpJutpr2slb6wrZ+jsLO6rLWonKmypamYeqeRfXywd4qApKWInG2yb6CHrXuhj4OolZqArImFroWglKihopeFn4CZlYB7kn6rgJ2aloureJ2gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIGTjJWKeXmBln5qbH1ifXRtf3lfZmVwbmdnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlZVUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2gkKqppZaJmpCusKymoKibrZiZj62ioZ2loZmknK2Yn6iltqi/rqSpo5+MgI6bm5+mnpKUmZqUmZmko6OZp6qroqOeqai+pJfDrKujoqyzuqyvqKK0sKqrmXavfpCKnIWHfLqtiZhksIxlla19oY+Dp5abga2KhLCFppmkoaKQhKBbbGqBs2B/rXt7goCybGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5qJlo+UlXp4jZt8Y3N8YYN4c398YGlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLSQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6rmpSuqKKOiJuOr6ypp6Ooma+Tmo+pmqGepZ6Zo6KlmZ+jqbKovK+lqJ6djnyLmpahoJmQkZqbkZiWqJ6gmKespqSkoqSpu56gxqelqaKrtLatr6igva+urpeBqZKjro6bgIakl5iQgYC4w7qDjp2ThKeYnYKsioKviaabmqWqkX7VvcKqYqO/vXx+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWbjpmPlZt4gJCZeWJ8emOMZ3iBe2BrZWtqYlBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5STr6yXjIOaka6mo6yipZyqoJiLo5OmnqebmqCoopmeoKysqbitp6Oal5N7h5mSppuTj5GYmI+Xk6iZn5eoqJ+ppqGiq7ueqcWjoK+jq7O1q7Gror2psLCbdHaqpLaFZYmfb2esj4qPbW93pJCaoIF1sJqWcJCNcpano5uYrqRybW1sZYp4bm2CmXGAemlwaWaJlpWYcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hl5aXj5ScfIaOlHRlhndnjGp4fnhkbGNmbGJLZFhKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qru6srOqqaKunqSzqpiSvbHDyL60qZ6/q6yjoKarn7qjpK2sraWNlq2qkIyFlZetn6Wqop+kpKCRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4SXjqaXjpGQmJSNl5Smk56Xp6KasKadoqy5oLDCqKSzpqyxsquvram6pbC5l4uhqaW2nImWoZeGqZqQlJ2TqrOZm6OsobOXo6GeoaKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJOglJaUn4GGk4twZ452bol3dXx5aWtkZG9jVWBZQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqaW2uK6uorClrZ+gtrGQjqrEu8W6t6mhpZ2bpZ2wqKO2p52ptaankZiso4uIiY+cp5aspKKaqJ6fk5Wjl6iaqZmUpqGkkJqnmaG0uaeqmJqQjHuBlIyhlIqUkZWQj5KXpI6emaiem7Wjnaast6ivwq6jt6avr7Ctqqu1u6KxvpqSpqSmtaKRnaaejamfjZKfo6ywm6GksqmwmaWhnaSrnp6dnJernJKZopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyQjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkop9jJaSkpeSoJGalJ6DhpaFeHGUcniJfnF7fmluZF9waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsbSsrqOpp62gqLWqkI+co7K7rqqroaKZepyisKSlsamWm7imo5SYqZyOhoqJm6KQrp+kl6igoZKXmZuui6qWj6iZqIyYqI6euLajpZibjYh5gZOMm5OKlZGUkI2RlqGLnZ2nnZ64o3+Dr7WisK90pL6jsqB4eqGss72Wd66loIqAqn5kW2F2n46knYOXfm6Ts5yjqK+ro2WfoJR0epqWcICYqJdsfqKoimWdpZuQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjXJ5opaXZXeXhoB2l2iCiYJueX5qcGVfdm9ra2hbZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamto6etpZKWqrSusaWZqaaql3OLnK+fqKunk5a4n6CPnKSekH6IiJuejayapJWoop6Ol5GehXSuj4ilmqiRlqOIm7mzp6CZmYuJdXaTjZaTipORkJSMj5OfjZqepZibspaAjJu1nbSMko+9p6F+p6J6pLC5gY6Op5+Ei4WPsKmvjImWopl5gYushpydoqiqqIiVh5l3pZt6h5uBl6aCgXucsnqKhp+XmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZgp2ahZh9kYmBgphpjIyEanh6cHBnZHhuaWxqW2RpaWVyW11IVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3GvK+glaWotJ2Pg5yrm6eioI2Qvp6ZjZ+aoZB8hY6Zl4isnaOWoaGSjpSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj4+bi46RnpGVnqOVnayIn7SJtJqui8qIq6+Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56mqJOZwoJ/q4iYoXGegJqlfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxma1hnR1xRTDJFNDZNYWM3JjQ8REdEOjYzNjU4Ozg+PTw+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNnaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqunmpSfoqSqopWkqbair3+gppylnp2JlLyZk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibZCLk5CNj4yMl4uPkZ+Okp6gmaGofqGnh62doJaukKCenZGGgqCNrK+HpI2qmoyafqJ1gJiTa4GrdE2reIeNnZKbqKiCqqt+hKF7eqdpnn+SbGeXhpe1iJ59bWBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXaE5dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZ2lpYmJkYWRkYmFiYGJkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuvopmXn6GlrKufnK20oqeRoJ+fppuZjZi0mZCLnoyVi3WBlJGMiqaWlpifnn+ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5GhjJOdn5uipX+TgY+joZSgd5yWkKeDoqiAhqqthaV5i32Emn2icHKSh5Z7nox5bYebi5mRnKmbj4edfIKic3amZp5+d6RemHt9knOibpi3tLpzkoeBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtscnJkXGhdYUtEPUQ1UUFacTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBgfGRJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatrqCaopyjo6Srm5qxrKuSl6CYoKSZmpSeq5uLiJF4i4VwgJaNiY+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7hn59j42Di4+PiY6Tn4KWnKCdoJ+LiXecmKKNoHKii4ipiJynkZipq3+ujH16oJl5o5N4gHOXiIycfZafhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwanl4YV5kVmFBUEVPN1ZCUm40SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhY31qRUI5TlteWWRmWGZnbW1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppubp5+drJmdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIuWl4SSlZiPeoqElqOciZWQhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZp/k6GeoKKTmHJon4qgj4xwkoyCqYiZoKSqoah9sK2koriXdqOzoqN/iJR4nXqqmn6ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXWbeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmZfa2h2e2JjX1BdVlxUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19ckVDPFVeYlplalZoaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OpmqKLm6mcnKeSoKujoKePnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYuKinyDbISFcYGhjHiFjYiHkZeUfJKjoJ6jiK6GfbWEj56de6aWeqmClp6Ri6Kdfadod21+mXOgc3F8nYWYb5OCrn2jg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJdo2d0pmBopmya05h6gptud3mXa5t5dpdybKmlZ19keXB/g2tnZmNudndmX2FRWmVQUWFIV0lUX1dTW2RqW2VRRkNLTEpLQkpEOFBAUE1YU1hPUlFgZWVpUmR4eXdKRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9oYmFoZXtkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCzo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl42IhXtwfYRofY+Ck5qBd5GOjolwf4aPk5JsmJR8iZGSo5WDjqqak5KLhYl5g3aHgG6BnoZ3gJKFh5ihlnmToqOaoImzoaK2i3qsp6SupXCpgJuRhoGcknykgKKZhphxnoSira6Jl4uAjKSNloOuopR2tba1yaF0lIuCnmGdl6lteZWHn5p1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2p7abO1tMamc5h+ep1qm5qrdIKabXN3l2mZeXSYcVBEfbNeanVqeIdma2didHRwbVZdU1hnT1JoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXt7VFFObF5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKGyrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5KNiIN5anmGZYOMfpafeXWPiIyBaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeX98i3lwj6CGeYGUhoiWn5R/lKWnnJaWhGdueJxsomR8caV4nJhwaKeCmIx8pXqgloOWcp92gImUlY+5bpCKomJ9maKWiW5yaaprdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJuc6JaX1tkoW5diYxve39zcmSlbniiZGanaJhyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RWFZVZVlTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZ2JwZ1BqaGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsbGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjYp7hnGAiGiLinyXmnN0iX2Qe2WDh5WKiZaZgnyIhpamkIGiq5CFkIqBin1/f45zaY+lhH2Fk4yHmJ+Nh5Kqpp6JpniWnH6liZaMspmekYOvl5+leZeIeal0pY+Emm6looyShIyDvG59pa+ChoaHlJedoH2menGolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm6fnpGVYn+ri6p3gH+Np593n32FpJWdoGmah3WrZp6tjLZzdr6MpJNZg6aNq2F1cXNve3RxYmp+bmhsU1ZaVWBgXGpMXFJdSV5sbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ4ZGNuc2RSbGdob21yaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnYGAnqSWqqqeqKeuo5mIgZaqmZ2jiZqknKidhIuaj4WckYWSjYuNdIV6iINvjYR9l5NzdYZykYNtf4uShoaUj317goWXpY1/paWNgI2JhJR1goeSb2yLqICCi5ONiJyeiYyTqqOgkIB0lJeIfoF5lK+kf4KccY+GeZKMhIB7cqeMcX19epeWm4SNeHt+foiUlZOKd5GZoKGEe32Ja4yFW3l5c3lwaW5+kolxf3SBj5STcYWDgmWNf1+BgIx4dnSUdW97b26JboSGX3dpeI5mgoKGjqqcfnR9l2qJiG9/dXyEdW1sZoxzd3uXd4Rbalh5j2hud3Fwb3d4b11shm1pZ1ZaX1dcZGtkVWFVXlFfcHd5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXqBdX+Af4F5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscHVuWltia2Rra3ltaGxvYY6Vuqmni6Gim6akmaSdq6Kgg4OWqpGdoIiZppqomIOBm4t+lpSHjoqIjXKCfI99fo+EepeOdHKEcJWFe32Si4aGkIV4foCGmKOMe6ehi4WPj4SVgoaOl3dxhKqFjZGcj4eenoeLmqigoKuDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4yMnJyfjnOVi4hxdGuCdnSAWXJuhpCBfX6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFzg3dfco2CiZCnlYZmjY+DbneLg2+EjHhuZGZjeYJ6lVpcaWZudlt6eHd0bXNygmZcbYpra2JaWV1ZWGtxW15gWV5dZnN9e3NvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B/cIaKhHt9c355cn9oVFxxaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3J5b2hqbWCMjKuxoZCjoZqfnpiemamjoX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKYhoR+koOEhoqBeoCEi5qfj4KmoId4jZeIlYuLnJeFg3qsgZCXmZOJnp2HiKGrn6Kio4uIk5udo5mWqqKop6GTnImYkHx5j46EqH5/kpGSk5yxpZqUnZCOspOYhKaMjJacoImRm4KJkoprfI52d2WChpCKfImdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJh4qRppGEho6Ig4yQi3uGiYeOgHVrgYN7eZlpcmhgdIpwfXp2dW93dIFdXW+HaG5fX1pbXFJncVVjW1thbGh0e3xybnBkamlof3tteH5waG9vbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ17f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SGbXiBgHKAh36Ik4Rta356l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcYqPhZKRi5yRfY16qYOMkZeVjpuWhoabpqCimp2Gg5KamZiQmqagpp6ekJaBkot3fYiOhKV7fI+QkIWYqqCck5yPjaqOkoCejYmUmp+Djpd+ho6Cb3iGcXVhfoSPhnSLl4CCjoKGhH6FhJRueXZ1lKOMjoabhYWOdYCLfX1zc3yJhHt5jI+Ek6ePhoSPgoOKiYl1hYaHiXtuan1/e21oa2xnXnl+Z3x7dnR1dXp3XGBwfW10YGNaW15RZm1TZVpdYWppdXl+cGxsY2pqZ4B/a3J/a2pzbnhuhHluhoB2goB9hXZxgo2Ifnt6fIB7gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5GWl4uan56de3ecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf3CLiouShqChioWMfKePho6Sl5OWkneNo6ChnZaaf4GQmZiTjJqioaOamJGbfo6FeoGEjoegf36MjI58l6SgoJKZkI+mjZCBm5GJk5ecfpKRfYaNgHV0gXB2YH2AjoZxipV8h4pxjH6ChYWOaHhyeY2ZkpCAl36Ii3OCiH19cnp8jIV7epGNg5alk4uFkXyFhoeFdYGChYZ5ZHF6fnh5cGxpZl59c2h8dXVzfHJ/al5gdHZwd2RjWF1eUmpoVGRYXmBnanZ4gXFma2NsZ2V/gGptfWdtcGp9d4Z6a4uBcoGBfYF0doKNhn98eoCBfX+PaXKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZidXp7cWJrb3mJjZ+zkqWlnY6QmI+GnaCanHx1o5+Nl3+MoYqImpZ4e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOlk4ORipaXkpF2kZ2hoZiUmHp/jpeWjpaanKSdmZOUm3qQhoR5hZaNnX2Bio2LcpeinqCSmI6PooyMg5eYg5OWmn+XjHuIjIB2cX1temOAfIuFcIaTf4+Ba4eCgX+JhGZ2b32Ik5mOfpR4jIl9gIh9fHKAeYqGeoSRiouYopaBg4x3iISCgXZ7gIeDdF93d3xzfXdma2NgfmlqdnN0dX1xfGNjYXNudXJtYVlfXVprZFJiV19gaGt1eYZwYmpjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGpiY3VWg2lwbmB4Z2xhanZwZnl7eXFfcWyFhZCdrpinqJ6OjZeHhZ+Tlph9dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYh0fX6Kf36YhJaTloyjoJd+cYd7k5CKpo+MjoqSn5CCkI+Ul5GKgY+YoJqSkJJ0gI2Rk4mcnZ6mmJiOlZZ0jo+LbYaYj5l6h4iQiW+XnZqik5SKjJ+MhoKSnH+TkpaHmYh7iYmBeXF5anVse3+Lfm2FkYKTd2+Cg31+i4Blc2p9gZeYhX+OdJGJhHqIfnZ4gX6HgX2DjYWNlKSQeYWCdImHfX9ydH+FgWxgenR5cHxvYW5iZHthbm92c3d3c3NhdmBva3Vub11bXl1dal1PXVdiYWhtc3qJa19pZWpjaHeIbWZsaGlsZ4B8endvj4dzgIOEfXSBhol6g316gYR9fY5yeYt5eG5sh2toX2lyY4docW9ldmdtbGF6aGt8e3hwYXdti4GZmqqhpKmeioqRhoqeipWXfXasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGgISEc3qAhnqPkYeRkZuSpJqTgX2AfI2JkaOIjYqNl5mMhZGYk5WOiYmMk52TkIyNboSQjpGInpmhoJeWiZeRb4qahWeGmY6UeomFkIpwlpqToZKSiIuZjIKAkZ59ko+TjJqPe4qEhnNzdWtxbnV8i3RuhpCNkXF0gHyBgoh8ZXFten6blH6FiXSRi4F0iXpvgX+CiH2FjIqFjZaojXuIfX6LhXd+cG5+g4FiZ3dzdG56Yl1vYGp0XnBqenh4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/iGVdaWhnYmdxjW5kaWdkaWiAend1b46Ec4GBg3t1goiFeIV8d4OFeoCKd3+Le3tyeYNqa19waHN/a3FubXFnb2tle2Juf3l2cGt2d4l/o5iiqKGnm4iMioGPnIaTnHSAqZSRjYagjJWTkH9ze3aEd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMh5ydiY+GkpeVg4iUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoJuYlYaYiGuFpIRnh52KkX6LhIuBd5OYkZ2RkIiJlY5/fo+YfJGNkI6akn2LgIJudm9rbW9we4Zpc4OOl4pxd4B0goiCeWd0b3aCm499ioV6lZJ6d4p1cYp8h417i4aEiY+co4h8hHaBi4B4eG5qf4B+XHFycW9veFpdb2Bval5vaXx6cG1tam13YHBvanFtWVhgYWFtV1FTWWVmYnVwhIJiXWttZGNma5JtYGZmX2drgXVxcnCLgHR/goB4doCLgHmGf3eHhnaDhXyGjIB7dop/anFifGKFfG9wbHRqaG5sdndfcX55e3R1c3+CfqWVmq2fp5aFjIN+lpSDj550iZ+TkoWKmoyVjYt6cnd0gm9yhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeYB2coJ5gqCCkYGSkZebkZl3kHqCi5GjmpOOiJWYkYOGlpmLk4uIj4+InoWQinxzi4WIj4icmZ6blpSAlH9php2JaIegiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHuOjI2Sl418iHyAa3ZpbWtsbHp/Ynl9jpWBdnqBd4OMfHlodW11iJaMf4mGe5SRcnqFcXiOe4uNe4l+g42Rn56FfX14gYt9d3Boa4CAd153b21rcXJWXW5hcWFfbW55cGdwZmZ0dWhxa2F3ZV1WZWBgclNQTltlZF14cIh8XlxocWJiZWaRaV9nZFtocH5va3Fzin12fYWBdHV/jHl7hoB4iINzhoV+jIyEfHmVeGZxaoNfh35vb2t6YGltdH90X3R8eIZ3c3OFfHmhkJqxnKWOgop/gpmIgIudfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKm5ucmpWTeY13aYmSiG2JpIWTiJiDhmOMkZiNlImWi42Ji3B6lYl8jomKkpGJeoV8fm18ZXJva2t5eVuAeY+OgXp+fn+Gjnp6aHRsdYyQioOGhX2WjGx+f2+BjH+NiH6Ee4ORlpubi3x3eIOPeHNsZXB/gmtpdG9naHNtU15uZHBaX2txeGZra2JneHNvcWNfd2BgVmtfXnZPTUtgZmNdeXGKdFxbZXZgYWVljmNgZmJYaXJzbWtxdot8dHmGgnV2fotzf4Z/e4l/comHgZGKiH1+mXZlc259ZYh/b3BrgFprbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFeIiUfnyJnIeEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+hc2t1g3WEoYSRbpWPlJ+UmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mOj3WKd3CHiYx+jKWFk4qdhYZei5SXiY6IjouKhIlsfJeCfYiFiZGPhnaFfn5rfWN4dGlteHNXiHqRh4V5fn+AhYx+eWZ0a4GLj4uEg4CMl4ZsgnZuiZGDkYV/gnuBkZeTmZB0dHiHjHVzcWZ0eYFhc21vYWh1ZlJgcGdrVV5tc3lgcmNgaX1xcm5aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR4XmBkZoRfY2NeWWlya25rcneLfXN3hIF4d3yIcYOEfX2Ie3SLiIiVh4x/f5hzaHVxeW2Me250cIBXcHl2eXFkdniGjGl2gIpygJ2Imaeco5KEfHCMlHh5ip2DhJ+NjnyVjYCZh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciHNsc4B2ipqIjGmXj46clJKBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpOYhox1h39xhoKKiJqjhJWNn4SJYYOVj4WIhomMh4CHaH2Uf32DhImOjYJxhn5/cndndnJoc3drWox9koKFfICDgISKgnZidG2KgpGMg39/k5F9boJseYeQh5OEfYJ+gZOUkZeJbnJ6jIV0bHBqcXd/XnNoblxpdV9SZHFoZlNfb3Z0X29gXWiCcXJqV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXVlrbmVuanR3in5zcoF+enZ6h3OFg3x/h3d2ioWPmIKNgnuTdmx3dnl4k3VueHp9WHmFcYBvZ3h2kYJkdoaFcYqWhpmhm6KKhnNvkotydo6bfYmZiIl7n3+EmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIZqmI2Im5GLhntoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6Sk4GJdYSHd4SAi5OeoIeWkJ9+iGF/k4eDh4OJjX9/gmZ9kYB+f4KMj5B+bYN8gnRrbXd1c3Z1a2ONgY5/hX58hH+EiH9wYHNyhnyQjoN9f5KJenGDZnuEi4eNhHyFf4GUj5GThG5weYx+dGxuaWp5fGFnaWlYa3VaUmlyaWJQYnJ4bGJlXlpqg25zYltnX2RtX25UWm9OSE5mZFxnbnGAa1pbY3NfXGNsd2RlXV1abGxibWpzdoZ/cW9/fHx0eIV4hYN8gId1eYmBkpV8iYZ2iYFweHl7hJNvbXuAdl6Df3SBbWl6c5RzZ3KIfXKSkYSan5ughoZ1dZR+bXaTl32HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9ecXKWvMSEdnGUiI99cZaLhpuSjIdyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAiXWFfIqZnpmHlY6cgIhmfZOCfoSDiYlygX1mfox8eX9/h4uPfWmAfYN2Zm95eHN2c2xrjoWKgYp/eIKAhYN/a19yeXt+jouGfIKPgX5ygWl5hIiMhoV5hH2CmIyQjH1ubXuJfXZzbmdme3ViW3BiV25xU1Nuc2hhTmZ0eGVgXl1Zb4Bvc1llYV5qbmBwT1lrUURTZ2Baa25tfG5ZW15tY1pib3dkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIKFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRsk42Fn5igmYSIbn2Mdmp4mI5+gImClJeJeY+Wb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3SmJapNnQlnF7kIqPd32TioSYkYyFbmuFkpJ6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJKMg39vf4N2hHmGm5mVjJSRlISIcHuSgnyCg4iDboF3aICEeHJ/gIOKh3xlfX6EdmNwc4BoeHBvdZmNhoOKfHZ4gIR5gWtccX9zgomGin6GiXuJcoFucYWHj4WFc4V6gpmNjYR4bm9+hH92eWRnaXtwXlh2WlhwbE5XcXNnYEtsdnRgXVxaWXR9c29XZ11manFgb05XaFI/WWZeWm9qZ3pxWlpZa2VaY3F5X2hcXmVsaGVraXF3f4dubH9+gHVvgnuAgn6Cf3aBhYiXinGCjXF7hnx6eYSTjHVqen9rb350f31vcnt6k3BvgX94Z5KLg6GZnJKChWaGg29neZWIfX6EgZiJgXyNjGl4cmtrZl9hb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYiOjXaClYx+ko2Mf21shYyLdX2Pf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R9boB1d4V6h52RjZGSk4yLhn97koZ3f4OMgmt/cmiAfnhtfHyBioN3YXmEgXFkcWh+bXVxdYGbi4B/hYBzdX6Bc4FvXG5/dXmLg4t7h4B8iHh6cWyJhJCEi3KDeoCWi4p/dG1rd4CAdHRcaGd2b1hWe1JZcGRMWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2VuY2lNV2ZRPV5lXF11ZmB1cFpZVG9kWWRxeVpoXV9mbWdpa2lwd32ObGmChH55boB8fIF/gnp1goGNk4RwgItud32Ae3uIkol/aHt9anN7coZ7c3d+f4x6eIR9fGuMjYSbnZaMgIBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ2hZWFc46KiXZwbIWChnR5iXiJfJOIen5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/doCCfo2aiIKUkZiJi4SJfI+IcHt9hHtofmxrgHt6aXp2gYeAcmB3gX5xZHJmdIJtdXuGlZGBfIKBb3d6fXV+bFlwgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4iJem5tam6CgXRtXGdkcnBRWnpNW29cT1xyb2RVS3N4aVdZWlphcYB0YF1dYGZkaGlmTlpoTUBgY1tgdmFddW1YV1N0YVpkb3JXal5iaGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuIb3F3g397iY2Pg2p+e213eHaKd314gIKHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkYCAfoqDcHJxY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8eIaSgnOQi4dxcm+DeoJzdYd0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHSFeoGSkIN5lo6Vj4iCiHuIiGt4eX50Z3pobH95c2l6doCDfWhgd4d9amt0Z3qAaXaBjJGUfnp+fnB8d3x0fmJWeH5zc4qEgn2DcYeKd3hxcISCjX9+eX59do6Fg3ZpcWltiIFwb11nYXFtSmV1S11tVVRac25iUU9zeGBSWFhdYW+Cc1thXGhlZWNrZFFbcElDY2BbY3BeXXhoVVZVd15bZW5oVmteYWlnZW5uaHB2epJuaYiMeH1ye355goGBfHZ9g4iGg3B3hHJtd4OCfYmLk39wgHt3eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPgGdwbl9kW1hlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdXuGjX96kol/dHN0fnd/b3F/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZJ9eHtuiHeBko2FdJaKkY6HhYV7f4RsdHZ+bWd2ZW17dW1qd3Z/f3xhYniFeWh1dWJ9e2d1ho6NlXt0gHZxgHt9bX9ZV3V/cHWFh3+BeWyJhnR5bHWAhIR+e315e3OLgX1zZ3RlbouDa3NaaV50ZEdtbUxaYVdWVndtYlBSdHZXUFZYXmFxhG9cYGNtZGReb2NVXnJGQmVfXWZoXVt6YlFVXHVbWmdrYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcoB0cXV+hYGJjYp7d393g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXtibm1bYVpbYVZpc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8g4l+epCEeXhzeXV1fGpsdWOEdZKCd29mXn2CeouKZXKCa2pxY1hteoWbiIKBc5aTdn58b4pxgouNiHKYjpGJhYuDe3h9cXFvfGZocWJteHFqa3F4fXx6XWV5gHdpdnhmgndndIeMjpR7cYdqb36AeW58XVlzf250gYt8gm9vin9xdmh3f4GAgXd9cXt1h316cmZzYW6LgWpyV2pedltIbWpNVlReU1V7a2FPVHVyUFFUV15idIVpXWBramZjWW5hWWRwR0BnXGBmX1xVel1PVWRwWltqaF1XaGBecmZrZ3FncHJ3hnhulYp0f3p3fniDh391cn+GhY6DcHB7eHZ1eoaFhoyFenx/dIt+fYaEhId/fn59h398eHZ5eJGTn3+MfIttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9aXV1UZ3JkYFhkcXJmgXNia2VXW2Bqf3i+rnugtm5ic4Zoc3txeYGEen2Lfnd3cnZve3Zlam5gh3WOgXNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZknGAeXaEboGDk4lzlYiNiISJhX14dHJuaHhgam1gbXZqZ2preXd6dlpnfXx4ZXJ+boR0ZXWFjYaWfm+MZ2t6g3VtdGJdcX1sdX2Me4FmdYd9bnFodX94fn9zfWx7e4J7eG9lbGJuiX1rbVZpX3ZVSmlqT1FOaE1Ye2hhTlV1akxQVFVfZnWDZl5gcGhnYVdpXVxsaEpEallhZFdZVHhZTlZtallda2RcWWVjXnRmbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVg25zeXt6c3KFhoiIg3iBfXWPfnyEio6EgoR7fouDe3d8d3eanZd6ioKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1ddWlxbU2RwZF5XYnJ1aXVwZWViV1xcaX9wb3KAc4lkZHh+aXR1dHKBg3eAg3l2c3Vta3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXhnamRVV3JvjaZ8hHt2lpB0fHN9fG58fJKGd5l8iIaDhoN9dHBxbGd0XGxoXmx0ZGdmaXpve3JZZ4B2dWhwgHiCdmJ3hYt8lIBujGpte4JxZnNlYW56Z3N4inx+YnaDdmprcXV7cXp6dH1mfn+AeXduY2ZiboZ8bGpVaWJvUkpoak9LTm9HXntmYU1VdGNKTlNXYWp2fmVdZ3NpZWBWY1djcF1MS2pYY2FVVFRzVkxYdWRaXmtgXFpjZV92Z21icGlzbnJ/dXSagXd/gHd/f4aEenx0goR+l4VucnR8enRxhIWPgYB5i3V0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLem6Ec3mEfYGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAaWtwgGdrYGh5eGpzdHRuhIB6f3x1dW56aGp5al9lbmiBdpCEZ2VYYndqfod7b2lwZ2ZdVVhvZ46od4F6fJGOeXVwf3BzdnqPgHiVdYaDgIWIdmpxdWdobltsZF1tcl9nYWp4aHttW26CcnRqb4B+eXhhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWJzgHBnanl0cWx4eHV4ZIN7f3l3cWRkY258fWtrVWhhZVJKa2dPR1FrRWF4Z2FNU3JdSk1UWmVrdnplX21xaWRdVmBWbm5XS1NoV2VeWE5VbFRKXHlfW19rXV1bY2VgeWhsYG9vdW5veHV6mH13gIF6gICHhnp4eYJ+gZOEcXR0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKuff3qIiINrcoF5dYB/gXRuhm58gHOKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFWXFxsgWVxdH1paVxrdnVnc3ZybYV7fXx4dXJseWdpeGZdZXJoeneTgWNjVGVwZ4KFd3dnaGpgV1ZZZ2OPp25+d4CLj3twcX5oem96jXx3j3KEfX9/hm5kdXJkaGhca2Fcb29cZ19tdWR6aF10gG9ya3F7fXV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfXVlcoBsYWx7b2ppe3p1cmaFdnt7dnFlYmVtc35pbFRnXVxUS3JiUEZWYUdid2dhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZmVUpcY1dnWFlJV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhub252g5d5coGAfH+JjIZ+dXWGeYeMfXN1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZXGHeXN8e3VyboVse35sj3picG9iZV1lVllZVmNma19dXHKFaFhwblteV1pcbHticHd2bWJabHNzZ3R1cGyEeH5/eHdubnRkaXRlW2d0ZnZ2knlfXVJmZmqDgnR+YmNpXFRYXmJjj6RoeHSDhpF4bW97aXhufIV7dYlzgHh8eH9oZHZsYGZgXmpfXHNrWWVdb29iemVbd3xrbm5vd3hzdGRzg5J+h4OJe3Zwcn5zYnhkXHBwYnFygn10Z3KAZV5udmlkZnl8dW5vgnV0fXRyYl9mbm99ZGlTZ1hXU013X1FKWVhIYnVkYUlUbVNKTVpXaWxxe2JsbHNjYlpaW2F3XFNMY11YaVNXSFlgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2DfoCBk4iEgXZziHSMhnNxd3WCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCZont6f4mUeGR1h3hzeHVrc25+a3h8cJFyXnBvYGdibFRbWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2b25sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSRdGxse25vcHt8fHGBd39zenp6Y2V1aF1iWmBnW152aFdiXW9oYXdgW3t2aWpybndzcnVocYKVg4Z9g3ZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHFhX2pxfWxsdX5zcXhrcGFcZWxsemFnU2ZUVlFQdVtRT1hRSGN0YmBGVWtQSVBaVWtranxlbW5xYFtaWFlscVdTT2ZXV2hTVEZZXE5IcnVYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJp8goR5fIduj4Zxb3d6fXSCgnyLj4KCl3R3gpOFgZ+JdYGAgXR/gnGHgnVvopdze4aLhntld4pubXpuZndwemtzdnKMa150bmFnZWtSXVtWZ2Fsa1pccIxkT29uXVZYVWdqdGdidGVlXVltdG1vdXR4aoZ8f3uHdo9zZGRrbmFdbm1jc3iHa1pUVmNkeH19cYZdY19jVFpgWWKVlWNucIOFinRraHxwZnN3c3xsenR1b3p+dV5lcmNbXlZhZFhhdGVVX2BtZGFxXV1+cGhpc3FzcHR2a22Ek4GIeoRxc2dvfnFzb1RcZ2tmcXSBd3NjbHZVYnJrWl5vZn1lbXd9c3Nza21gWmRqandeZlRkVFVQVG1XUVZTT0dkc19hRVhpT0hXVFZtaGR8aWt3amFXXVVbdGRTUldoUVllVFNIWlpQTXh2Wl9lbGlZYmBeXo5uYWZreXVub2h2dn9/bIOAfYeXe4CHgYl+a5OIcmd0gHt1gIJ9iI5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqWMcoGNi3Z3bXqMYGR7cGZ4cnhsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNvZ3NsZnhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CEX2JeZ1dYX1dkm4hia3CBh314bGt5blx3cWx7anZzbm97gHJYaW1eWV1VYmNXZHBjU15haGFibFpgfmtma3N1bm13dmxphYx/iXmHbXFmcX1uc25jWmFpaW90gnRzX2lsU2VxZFVibmJ6Y3F3e3ZrcG1rYFlhZ2h0XGVVYVVSTlhlUk9cT09IZHBdY0ZZaU1JX0tYbWRfeGhufWNfVF9UXXVcVFNgZk5dYVRTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25ndnR6g3KCg3qIjn58iYeNeW6QinRsc4J0f3+HhYaShJWPeX6Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyOjo6Ojo6Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usWFAREREREU4Li8vLy8rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS4WTA1NTU1NyccHR0dHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt9fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmpKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGJhYWFhYWFhIODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkIqRjY2Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI6Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fH19fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4mHh4yHipCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GioeGjoaMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mHiIeMiImPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoeHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX5+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqKjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoeNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z5fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojw+PjxFRD4/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycnR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTU1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6OTk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcXF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9BQD88Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXt7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD88O0tHODg6PDk9PUA9Ojw7Ozw7ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+Pjk3ZGw7ODo4ODo7PT8/PDs7PDs6Ozs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fX18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0FAP0BAPT1GSUpreU08Pj0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fH1+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF9UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQkBAQ1tBUXR9gX17XD9AQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAP0BBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwb3FwcnV0d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFBQkBBb2N/hIWCg35pP0JDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdERUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGAgICBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVGQ0p2gIKBhHuAhXREREVEQ1d1homKflhHSUpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSklJUXaBfICEgYOIcERDQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0NERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pVeIF+goSGhoeDVU5shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3V2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlh9g4SEgYOHh4h9f4aFhISGhoaHh4aKdUlJRkI/P0A/Pz48PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcnRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISUlLUXaEhoR+gYWDg4SEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUxIcYaFgX6Bg4KDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzczNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDREt7hoSBgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3p7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9TX6EgoOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojo7ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw7OTs8ODo6Ozs5OTk8Pzw8QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6OTs/P0FKfYOChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz08PkBEQ1WCg4SFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtJSUZHSERGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enl6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QT9CQ0dFaISDhYWGhoaIiIiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkBAQT9CQkZGS0p1hIOFhYeIiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDk4PDs8PTo/QD5AQENESEhQW3+EhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJR0VKSERKSEdLSkhKR0dHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AOTo8OD0+Oz1BPj9BQ0ZISlRxg4SEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FGSUlOVHiFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVVlJTUlBMS01NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRUdHR0dIRj5AQj0/PT1CP0JDRlZORUxOTVFWe4aEhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSElIRUZJSElISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0dFREVMWFJNU1RTVlh8hoWHhoWGh4iIh4iIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NXWVhaWXiFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFdYWFlaboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKf2ZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJRVVJVU1dfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleXFZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0NAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNAT1BNUmR0dXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4KCgIKAgoGBa0xHPj46Oz5APz8+PmpQS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V1dnN0dnh7fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQUNBW1xPe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fX58fn19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX19gZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlDRj46OjY0ODY5Nzk6MzY1Nzk1PEI9ZnR0dnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdZVFRYUUxYWVlWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1BPU1pXVFRNUVNZU1xlVU9TVFJOTElIQz9BOjk4ODk3ODg0NzU3ODU4OUducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd6ent8fX59fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHUFBPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSk1NTUtHRUVEQjs9PTw5PUc2Njc3RG5xdXd6e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1JRUE1NTkxKTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT89PUFAQj0+RUhGREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs/QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LTE1NTExLTk5TZE1KTFJISUpGQUlKTE1OS0dJRkJBQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMSERDSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZHR0dKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVGREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRURCQ0JFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUNAPUVFQj5BRENDRUdJSUdNUElGRkdLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpJTVJVVVJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0FBQkQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSUdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVNYX15daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NFQkNJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlhdWl1kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKTEZJSEpIRUtLTExOT1NUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl1aWGFgYGBfaGVjYGRlZ2dqaGhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREJDSEU8QEVCRDw4Oj4+PDw9QkI9Pz5BQkZDRUJCSENDREVGRkdHSUZHSkhDSUhHSUdGREhLSUdLSU1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUVJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2lmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF0cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhLSEZGTEhISEpITUxMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVdZGBlZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBd3V1dXd2dXdzZ3Rya3Fya3J3b3dJSkxJS0dCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01NSkpNTE1OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWFgY2RlYmNpY2Rpamd2i2xraWhtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN3dHV1d3Z1dXVlcXNrcHFqcnZwd0pNTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEdIR0ZKRkRHSkdHSkZJTEhJSk1KTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYmFjaW5pY2loaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JJRUJISklISEtGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZDQ0NCRUVERkJGRkdEREpFRUpMTEpMTUdHTUpISktHS0pJSkpOTE1NTExJTE1MW3NiZHBebGxVTU5mc15nZnFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xvdWdwTUtyeXZrYmFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQ0hIR0RFS0hHS01NSk1MRkpOSEpLSklLSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtOUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3BwcnNwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISU1JS0pKS05PTk5NTE5NTFxoZHVdbHFXbE5QUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtvbnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxLRk1LTFJSTEdNTUhOSkhITkhKSklITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9udHN2dEhLSEpDRUVFQEA+Q0NBRkNISk1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWmpvYGVlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbnBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySEhGSkRFREZBQEFFRENHQkhKTEdGQ0ZLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISUdLS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXp5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0pMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSEZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdCSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RZWFpfXmRiYmFjZmlla3Jwb3Bwbm53hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKREBKS0pPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXh5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERKSk1NTExISkpISkc/R0ZOS0tLTUtLS0lHSEREQERBSElBP0lKR1BdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRjYmRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSklJR0JISFFNS0tPTEtLSUhHRUQ/RUJISEFBR0ZEVF1ZXlhfWF9bXVVYWFBdXVFLSldeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWE9SUVNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSElDRUFFQ0hHQkFGRUJWVUVcVF1TVmBYTlRVTlpbTUpLVWBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVlTXlxcXV1eYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRkpJSktOTExLTUtKSkdFSk5RUU5PT01OTU5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTUZNRkZISkhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXVxhYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1ISEpIR01MUVFJTEpLS05NVU5PS0tMR0dLUFNTTlBPTk9PT0hMRmBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1XVV5ETFFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcW2BgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2p0dXVfYXZfWWNcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTExPSEtSWFdRTk9PTFFUTk9RUEtLTkdNUFNbWlRRUk9QUFBLSFp4XVR4ZGhZUlNQdmd0bHBibmZrUnJPTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmh8ZXNzb3NzfH1wfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tIS1FPTU5KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBRUktHZ3hsY3hxbVpLTFR5cHVtdWJudlBkZUlldnFtd2+AamZ4eGlYclJpe21panp6fmx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdXpufH15eHJuTkpSdE5DQkVQUEhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h5fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkamhoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21MS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09OTlFJUm1IaXdLYGR2dVVXbE9ubHtyYWpnf3ZVS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVoZmVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUEpIUU5QVUxLS1JTUlJUUFZVUVFPUlJYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltcW11dX2NaX2NjZWdlY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlZUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1VRTlVTTlBOTFFQS0lRUUtRTUtLT1FUUlFRU1NJSU1OT1FSUVFRVFZSWFdcV1NTUFJVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhYV15aX2FdXFtaXV1gY1xdYmJkZ2VlZWJZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YVFFOVVBOUU5LU1BNTlVTTlJOTU5RU1BUUVNUVU5MTk9RVFRSUlFWV1VZWltZU1VSVFhXV1lbU09TVVdVVFlVVllUUlJXVVZYXFlbYF1WWV9dXl1cXWBhXltiYmNoZmVlYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1dVUE9UUFBRTk1RUU9SWFNSUU9NT1NVTldRVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNWVVVWWVRXV1RSUlhWVltfWl5gX1ZfXV5gXFxgYF9fWmJiZGhoZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNOTlJQUlJPTFBTUlVaVVRQUExQV1VRVlJTU1hNT1BRVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRU1dVVlhVU1haVFNRWVdXXV9bX19gVmJcYGFeYGJfXGBdY2FjZ2llZ2FaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eX9jXFtWVllSTk9XU05RUlFTVFJMUVRTWVtXVU9STlNYVlNSVFJSWk9RU1NWW1ZWVlRWWlhdXlxcXlZTTlRWVltcVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRoXlxlYGFgYWNkX2JfWVpfW1xbWVhZV1daW1phXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9cmxoXFVZV1FPUltTUlFUU1VVVEtSVlVaWlpTT1NSVVVVU05WUlNaUlRVVFhdV1hYU1hcWF5dWVteVVVOVldXXlpXUVVVWFhYVFZYW1RSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWdeXWRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVpWUVFUXFRUVFVVVllXTFJaVlxaXFJQVVNXVVVTT1dSU1dTV1ZWW11YW1lVWl5YX15ZXFpSV1JZWFlgWllTVVZaWVpWV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZWJfZGFfYWFiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTWFJTVlRZWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYXFVWV1paWlhZWVpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZiaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFiY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVxaWFlgVk9UXVtgYVxVVVlQVFZUUlZWUlNVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWlldYlleVldaW1tbWlpZW1lZX19gYGRjZGVlYmRaYmZjZ2ZlXmFjYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlZTVlRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fW19YWF1cXV1dW1pcWFpfYV5gZGNkZmZmYlljZmVoZ2ReY2FfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXlliY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUllZUFdWV1hYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhVV1tbYF5dX1lZXl1eXmBbWlpZW19hX2JkZGVmZ2diWmRmZ2lnY19jXmBmZVpoaWNmaWNmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFZZW1pZV1paYF5hYmJgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7e3x7e3t7e3t6ent7e3x8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSztZWHiYmJiYqMjY2Njo6OiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL+/v7/BmoqMjIyMjI6Qj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDg4SCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5enl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYGBgYGBgIF+fHx8fHx8fX19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2eHt3enp6fnl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enp7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt8fHp9end3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8e3x9eX15d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8fHx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fHx9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdlZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgoKCgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwipCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4mDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyPi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yJh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiMi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWDhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4KBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4KDg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgoKDhIOCgoODg4KChISDg4OCg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYOCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGBgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCBgoKCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoGCgoSCgoOEgoOFhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYGDgoOFhYODg4SCiI6DhYSFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgIGBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgYOCgYCBgX+KmYWBgoKBgYKCgYCCgoOCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAgIOBgH9+e4GYjICBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCBiYN+fn+CfY+VgoOEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4WEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoGBgYGAgICAgIB/gIGAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgYOPg4GBf4qEg5KFhYSEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYSFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEhIODg4OEhYSChZKCioaFgoF+goaHhoOBfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgYCAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIOHkoKGhId+fn9/hYWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4eNgYF/h4J+fn6AgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIOEhISBgIGLhYB/gIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4GAg4OCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYWCgIKDg4OCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIiIaFg4KChIWHhoeGhoSCgoOEgoODhIKBgYGBgYODhIOEkZKRjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeJi4qGhIaEgoaHg3+BhIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIeSkY+Nj4yKhYSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgoB/gYOEg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn9+fX6DhIOCg4ODgn19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX99fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+f4ODg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6enqAgH9+f35+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgoCBgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEgoKDhIKCgoKCgX9+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4KEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGh4WFhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1/fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4aHh4Z/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISFhH99fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KCgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYOBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+BgIGAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6Bk5GMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIWEhISDg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEhIODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18fHt7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7fH16fX5+f4CAg4eJiYmKiIuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn9/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+fn1+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKCgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH5+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9fH19fXx8e3x8e3t7fHt8fHx9fImKiIiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAf4CBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhYaHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fXx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goR/g4KCgoKCg4GBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7fHp8e3yBgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KDgoSCgYGBgIGCgH6AgH9/fX5+fX19fn1+e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B+gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIODg4F/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhYaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf32Af31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32DgXx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX98gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39/fX18gICAgYB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn+AfXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt9fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l8fHt9fHx8fHt9fH19fX18fXx+fn5/f358e3x9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYGAgICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9fHx8eHh1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoOCgYCAgYKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgICAf4CBgYCAgICAgYGAgoKCgoCCgYGBgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fX18fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent6eXRxdW53cHV6cnZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAgIGBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3pzcHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODgoSBhISBg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOFhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKGhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2BgYKCg4OGg4SDhoSBg4iHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoOEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4OEf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gYCAf4CEhIODhIWDhIOFf3+CiouFhISDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoODhYKBhISFhYaEgoCDh4SDhIOFhIWFhIGEg4OGgoOCg4GCgoSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF6g39/f3+EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOBf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIODhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg36Dg32BfX5+fX6Cg4F8f4B9f4B+fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndnd3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhYWEgoWFhIWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhYWFhomJh4aEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWHhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhYOEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx9fX57fHx/fHt7fX+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYSGhoWEhIWFg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59e3x+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhYaFhoeFhYaGhYSDhISDhIeDhIGChISDgYCAgXt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYaFhISEhISFhoaGhoaFh4WFh4WFhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn98fH1/fXt9fXx9enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWHhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhYaEhYSDh4iGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEhoWEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWFgoKDg39+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4WEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/gIN/e4B9fX+CfYCBfX6Bfn19fX1/e398e3p5enp5enp8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaGhIWDhYKFgYGAf3+AgH5/gIJ9fn9/foCAgYKChISDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhICAgoJ/fX1/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHt9fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e318fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1NXU1NTU1dTU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3d3Nvc29vb29zb29vb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3Nzc3qCgYGBgYGBgYGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKyk1RUNDQ0RDQ0NEQ0NDQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDAvO0lISEhISEhISEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+PUhVVFRUVFVUVFRUVVVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Pzs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnKy8vLy8vLy8vLy8vMzMvNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs7S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9HSqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OztKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnY/FtJ6jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+quJ+ak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xnaiaoZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZ6fm5atuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGgmJuBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7moWfqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wNN2tLCmnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WglaaXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmMKiq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfOxpCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NTHw9XR1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tba8vb68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdkamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW4s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZ2ZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZGZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wb/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYWFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPT4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHCw7u4s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO4wLCvtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6esr6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHCvtjAtLG0sre+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBw9DStMi0tLC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsnVyZfOxLSytLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbvFvMHLzcKOp8m5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw7OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Kyurq3t7i4u7SvtKywr6ScsLa3jYm1urKts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysa+9yrKmqK2Vi412cH+En4yFobe0q7K0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qlvdSrop2cgGyBdGFjZXKDipu3ta+vs7Wqp62so5yZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqSorq2sq6uvqq+pnpeepZ2epaakn8DPqZJ8d4Fea5F1b2VfbpCgvrSxsbC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjn57Cx5l4Y2GKXFeCi5CIbFKJqcOzra2ssKegn6Kgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk56ZqJ2un6eenKGdnpqakpmenKGioJ+nybmIYVp2l1pYYW2Qj35OdLTGs6eqrKqln5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6Swpp+enZ2XmJWZnpuco5+drtGqc1lkjIlYW29pt612WlmgurOurqmrpqCenqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq6jnauntrGsoq+moaOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6CfnazOnmBfiId3eIWHdZ6NcnJzlLCup6SkoqCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMW+ubS5urS7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amVaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm56tyZhWb5+ZeZKcf2t6eo2msqqgmp2cn56al5iXkoyPl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsfKx86/yNHMx8XGxMG7w8C+vr61vbOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwailqKytqqGdo5+cnZqmt8yRVHmgpHp7bmZvkamxrKSfnaCbmJeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfNzcnSzM7TzMXHycrBxcvGyMjFvsKys8jEy8rKzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jnqSjn6CkqsPOilh6hoRuaHGQrq+lnZ2doaWhnpqVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtsDKv9HMy8/Fyce/w8LIzszP0M/NysjOuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXCxbG2qKKlpqGiq7XPz49ke31vbpStrZyVmKCcm6Gin5ydmpaKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrrioq7fX1NXZ2dHO0MC8zMm3v6+nq6mjpLG00ceMb3ZxhKmsoZiWmJqbnaGdmpyek31xZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc7Py9DNzsvOzsfLz9DKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taylra6+tLDA2NLX2tzWz83LxNPQwsGxqq2uq6WyscShbWxukKGclZOXnJ6fn52UlpiUiWteXl5hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKv8rBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLe5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcWhZWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/Ozw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K4y9XV2drb2MzNz8jW1cXDt7C1qaKtrLi8oW9tjpqNjJeVkJSSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwcfAx83Hw8vKy8/Hw8TQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69us3NxtDV1dna29jQys/Q0tTJxLi8vK6ltqq+uqF3iZaOjZaPhoOEhIJ+hYV/dGBcXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKv73Cy8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5tWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNzs7M1c/V2djZ0MzTzs7QysO2xL+0srqvvraIfZWMk5eGeoCFhoB2eHVycV9aW11gYGJkZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a+vrXBvcO6vMa7wrmzvMXEwsK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bDxMjO0svKysfNzs/SydDG1dTW187M0MbLx8nEvMi/rrC2tLevgoyNiouFeICGhoB+hHx0dWRcXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0srO0urW+sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsLFwMPFxsjLxcDGxrvIy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0MzOyMrJy8nKxM/N0s/PxsnEycTCvrvMuq6yt7Syq4yQhomJe3h+hoZ3eIJ9dGheXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramrqbSttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKeys7S7vKuttaWutq66sbCquLCtu667uLvAv725wr/Hw8XBvMbByMu4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLLw8bCxdDHzsLExsDFxcPDysLJy8HCv8W+t7m5x7OvtLavraaRiY+RfHh+ioV6e4SBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKSmn6qttbaxvbmvt6+orre0tLy4tLyvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK6psqWnqK2lqLessLK3urq7sbu9vr7Ev7XBwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdHQzcTIurrMwsy/vMq3vsS/u8u4wsTDt7rAurWzucK1sbKzp6mTg4mNgXx+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX11dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWnpayfnZukpqyyr7a3p7Csp6q0qrS6sba1rba5sa+6ubG3pJ+kn6axp6uouaqkp6iop7KtoKemn5ukpayen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5ucKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6UnaGmurars7O7s8TQycvDx7m4ycLNwLnLuLzGubXGubXAw7C6wbeyq7S7tqqsrqWbhIeHgX16dXRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrq6S0ua23sKyyta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MjIwce8vMXEz7+6yLm5wLm0w7ayvb6wvr+4qKSwtLGhqKmeiIaHgHhzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaahpZygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5qXnZ2cnKyhq6ajpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1xRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4ws3Ix8DGt8HAyM+4wsW+tLu7tMC4tLu9sbe6taWhrLOqoKeklHyEhIB5cHJ0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhYWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqqmr7Crm6Ojt6qgn66otqmmp62wo7ewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGwsK6vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNycbDxL7GuMnMs8LDwq+9vbe9vre7vLW1t7Gioaqznp6Wm4aAfHhyam1ydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqeenJ+ln6qvpp+io7aooKGiqLShpaekr6Wwray1nqCdlZSpoaKUrLGxnqKjnZ2Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1XUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6kp623u7zBxbqxubXFysvBxMfHyLfGxbTDwMesuLm/uL+9vrm4srSvoKCqrZaWf5GHf3VuZGJnaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlZW1dVWFdUVFdWU1RSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraWko6KjoZuqq6WZnqWxqaCgnaWrnqehnqytqaiuraKhopSXo5uckKqosJufop+el5mTip6RjZKTlZCYmJOboaKcpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVlJHUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg2OTg5ODk7OUA5e7W0rbS7sq+rsa2dp6evubmzwMi6tcCvxsnNu8LLzMi2yr6yv8XKrrO6xLi+w7+5ubC0r56jqKeUjn2LhHx1aWlpbGdqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2Oj4SRh5CRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6vmZuqs5+lpp+jo6GUk5uWlpKoqayanJ+hoJqUkIyZjoyQjJKNlpWQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Sut6WjpKKsraqoq66yt7K9tbOrr5iEc3NoW1hYUlVSRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pp6+tm6morLe2rLzKu7a/rMzHxrnCz8/HtMW8uLzEyrKuusK5v8G/uLussqmfoqailIp9gXd4b25obW5tcGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn5yUpaGekpCTkpOVp6qkmpmZnZ2WjYyMlIaJjYOQi5KVkaCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynoKOstKuup7C0sLm1wLGtsauRfXFyYlZUVk5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvQyrK4ub2/wsWzsrS6r7e3v7i7qqynqqamoZCSf2tnbW5ybnFqcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmqOmm5WVl5uQkoeUjoyBi42AkIqSkpKhmp+ilZSYmJWipZmMmKSmqKahn7SyqLK3oZ2it6yqraSysqa1u7Wrq7GjiXhybV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8a4u8TKzca0rbu+trnBsa+rs5+psb60taejpaymppWKl3ZfYGdzcXZxaW5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgoqAiZifop6Qk5iWhI6Ck35+dImOepCHk5CQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimprChsK6csLuqqa+qmYJ2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oqO0qKWmqKOmpaamprOnpbTBuK+0sMrFuLrBz8a+s627wq2vxa+qpKmToKm6sqqomaClpKGMh5JsV1dfaGdpZ2huY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyPhYZzioSWgXmCeoWUnZSDlo6Qj4OGfZJ4cm+FjX6JgZGNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKiel62zoqatmKyrmKe0oqmto5N+cm1fW05TUlZMRFRKUE1MRk5PSUZMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDIw7i0vs/Aua+vtsOorMerpZ+ahJeetaihoJCfnZyYjIOIY1FNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hoh+ioiVio2QkZaLhIqIlISajIGEkpuWnpyUpKOoqaWknpuwqqGkpJClqpahqZyipqiJdWxlXltIUVFSTUlVTVNJTEtPSUhHS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwry3qLrJubaoqba3q7O+qKCYkIGMlqybnJKGmZCSjIeAgF9NTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYuMknh6gHuAdnNykndndYSEhIR7lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiMp6SToJ+Wnp6kgHJnYFxcSlZPUkdLWFJPSk1NUkpKSk1QSExRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3u7OrnZ6tqqq0sKOck5CWg5CfkpiGfpKEioN+fnhgS0lJSEdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc3yJjIeAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYt6dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubGViWldXVFFKU1VUT1BOUVZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegn5agpq+srquoqbCvsau8uKy7vrmzraibsaetnJCWnaaqpaKZm5GGk3uLko+RfHeGdoB8eHl4YEtGR0ZBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBd3B8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlVVU1hVTU5ITkpNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaWYno6FjJaiopmZkpWNdI97goiOi3l1e3F6dHB0dmFPRUdEQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGdxcXtuk42Pe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllZTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq6rsrDCsbvDx5uWj5WZi42GeoWRmZWOkY2RiHKIg3aJjop9dHVzdXRsdm5lVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGhmYmlucm1wgnVpb1h1cI6akndsf3t9bXFtcIB6c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOAfo96cXBva2BbXF1bWVhgX1NOW1pZWExISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSh5aRnqSnnq+VpbWprbGuwbK7wcaXkIyUkIGJfW6CkZKJhIuIj4d2g4VtlomLfnh5enB6cntpbV5KUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhZmEm5xhhqqfnYqCkI56d4h+iYiOc4qXj4N7XGRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR5d2tuaV13h32HfIiHj4CLk5eDjYWNhn1xhH+EfHV3e32JdW9yc2VnX1taXVNbZl5XUVVZXFZHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XI14in+UjJKdnZ+mkaCroLGor8CxusW6lo6RlIh6hXZrgIySg36LhI+NeYOBdKKFjH5+goBygoB8a3hrU1dMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGdoeH5uhYaChXGEhUdrgHdyeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JycWtbXVxbY2NYZ2VcVVBQV1lQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+Wl5KXoZ2soaa4r7O9s5eNkouYi310cH+Jk399jIOTlX2GfoaliImAg4iGeYiLf3WGeF9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWPlImBkHtyg52fkZx+doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWk9MTlhSUUlQS0ROR0NLRENBRENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHd/jJR9f5KGk5Z/ioCSm46EgYKMi4KKjoSAin9scGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyMoZ6YhJKFgo+hn5OYkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfH9/gHJgXGNeWWZqXGxrXlhLSE9TUU5NTEZJUERETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hJKSeoCRiZGSfYqFmZKRg4CAi42JhpGHhYiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+em9nX1tgXmFmY2BnZ1xSRUtLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWJ3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYuOjXuKho+QjoKDgImMioWThYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0FBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytqqOLlpiFpqagopeCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauJmoqTipV6e36EfWZfZ1tkYV1jY15mZl9bT0RKSFRPRkhMRktIRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyPi4p6iIKHkY6DhYCLhYWIkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA3Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcjEq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZuZkpqfiKevqqSUdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmBgnRYYGNVZWFhYl9gZl9bVEpERUxWUUlKSkRKSEVBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aGfoCNe7+7o7yCtJSTjZuPhIiPk4mJeYeAjJOMh4WBjn+BiY+Gf4WIhYqHkXp5bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVDOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyra7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopGlsa2lraunpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gXtpVmFgV2lkaWRWW2NZVlRJSEdMUUdESUpBSEQ+P0JCS0BATEM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RaVlp3anB/j4SBjoVuenN4iGK4oZqjiZWUlpOUk42Ql5KHh3uHgY2VioCEgYp6fIuHhn2KgoGLhJV9eHp1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ysy7vcC7t7W8u7e+tbqyxmB1sqWxmp6rvqqlqKuqpKKytaGrp56Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgX1xXmFgXFZhXmdlUlhhVlJWSUVGTUtAPkhEPUtCPUJAPUY9O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbHNyc4jVwLWZoI2VmZqRjpeRlpaOhod9h4ONlot/g3+DeHuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsG7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn54alxfW1hdYFliYlFbYFNRS0NCRUZFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBg3N7ioOFfIp0goqGlX9ze3lsbXV8aXNlaWxpZmpqaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trHEx7awubGwu6yzsaert6yNtqeenKeaTpuejY6glpGnmKWVipOTiJGJj5GRnZuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Nw9HSuK/EvMS6pre7xKKAbWJbW1xXX1dZZVlQXFdOUUNCSUVDSTtBRD5BSD8/QTc7RD5AST00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2JjIWOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcGxq7WmpbinrK6hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIqDk5WYl5SbkZuYmZmenquspKehrKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCdeGxkXGFcVV5RXVpPT1RQTkg+QUdCQ0Y8QUI/RkU+QD86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgHB3c2xzfHx3fHOCeHFrgHJyaW9xenlze77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKKgoainqrG5q6a0o6KtoqOuoqexn4mmm5WTkYqSjoiClIlrlaKNmYSBhn6Rg4OTl62LlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNytjW0cqtxMPMinFtYl9eV1JYUltQSkdKSUpAOzo7RUNEPENEPkhDP0NCOzs5PDlHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYSHd4B7h5GXgYRveHBtdX92eH10hnx5bId2dW59doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifpKSmsqSls6CipZ6hqaCisZyHn5KSk5GLjouGg4+EfpycjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxbm2xc3R0NHPy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtXZ1bWNcWFJVUFlVRkZKSUVFPTo3OkBBQjpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioOIfXmFl5eJj4OHhod6hHlxenuEhnZ6ho6NnXqMcH1vcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoa2copqan6afn6yZjJqMkZOOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjpWMhnubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPyMPRytTW2NfY19Xb19Pa29bQ2trR1sjVzJR3eWdmWllPUlNdSEJFSUk+QT49ODo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx9hJiOh4t+hoeAd4J5bnt7h4J0epKejaF2j3aDdHWBfXSAhG+CkIJvkoR1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqBd4aikIt5eXd7hH98hHZtlJaUlY+YkYOJj5eal5emnJigl5+TkpejnZmrlpGRi46Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY6Ki4J8oYiQi7yhmJOXmZyopqWtnqe1vsC/uMfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28eFeXdlZ2NeUlZWVU1LRE5EOz09PDk6PD45PkE3Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdW2h0enlsiY2Sd3Z6inx+gH+AfYV7foKRioWGeoWIe3V9dW19fYZ+dH+SnpGfg5J8hn14j355i4pvg5uAdJmGfYKKhXx+kXuQqY6Qw6C9jJyknH6KhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZuTlJGXjYyVn52UoZSSjo6QjH6Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOg4aEgKSGiou4mJ2RlJaip6CdnZ2jrra6tKu/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3d2aWljVV5aU09OSERMQj09Pjk5Ozo5OTw9NkA+Pj09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFzeIp7e399gHyIe317i4eDfnWEhnlzenRtgX6EfXeGm6GbnpSSgIyHf5iHgJySboiphXqgi3yRj4OJhJx+mpGJjaOin5Ckr6CLkYuGi4GShldyrYufrJyPhJickJCOXIOikYKNn5OVjIeIjJKTjJSVlZCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZeZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKykvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2VlW1tWUlVXQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dnd2dISDhX1/kqain6ail4qdkJSXioqnl3KKso2Ep5KEmZSFmoyjlqCYk4mbnqKTqbCgkZWQjo6IlYtujbeEmsTIsp2ipZudmJaRspBkpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEf4+LmYiOkKqXl6SjiJmelpqJj4aXmIqFj42Cf4aPpYiNk6mal5OXmaGYn5mTnJqisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfWZhXFxdTklUWUFCR0Q7QT44Mzc7PDo4PTY0Ojo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6KXp5+lpJaVrqKDkbiVkbOajaGhjKWbsKOknZiRp5aomayvpJiVlpWQi5iZl6HAjqPJuauco6atmZKbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpekoYidmpOQipCKl5uJi5aOh32MmJ6JkJCcmpmTmJiflKCdlJ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2LpxeHRbX1RfVU9ISk5EQkNFNT46Nzc6Pzw8Nz00MzY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen6CfHiGi4mGhJKnu6yosr2vpa2zs6ijobCsipq1naK4pZWtpJeprbinpaOfmqmXqaOvsKqamZyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlo2LjZeYk52ZtJeVq52LnJSSjpGSjJmbipKekIuJlZ+hjZSNmJqdkpyYnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRoMbJzc3F19bRy9Shb3lnW1lSXVBPRUM+PENBQjg/ODg1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSj+Lin+Bc4aHfYKJdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyos62tvaubu6Sorbm4q6emoqKkoqmvsrGrnZykmJuYl56ipqWSpLqvqcC8ra2yuaWlqH6IhpytvLCDjIyLkIOOg5GPeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJukrJSWj5ScnZOhnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNXRzcXKh3JxYFpYXlpMSkJLQEZHPkE/Qjs6NT5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yMiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuYs7e6ssCupcGkq7C8vauuq6OjnqerrrSwqpygqpyhm5afsLWni6O6u7bBvKypnLKlpKmUhY6pxMOkgouPh4iEhpWUjXqEjZGPkaKMjJSRjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6CYpJ+aoJuglJiepaOmpqSvrqXAxMOuqLe2ycO+ts+yxL/EvLPRycjCtXN3a1tWWmhRTEhDTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5h5SQgXKAfI1/eIeCgpB6jqGWqJqamLq+x8jJwdLJysLNvcKzrby+qLq/vbvDt6zCqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktrewrJOxraytl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+Ui4+NlKOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKjmpWfoZy1pZCel6WjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8zAua/Es7u+writwsPCwJhreGBXVlpaSktNSkZEREhDQkFETDo0REg5OzQ8N0UuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS9y7zDwba3vK2zwLq8rq+ooKmotq2uqbK3m56toqehnqu3uKqlsL/Fsb25tKiqtbSur5eWpayooJGOkrLFp5WOfZKVfYiSmZCqmZiTk4+SlZOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpZllmKOfs6WWoZasrKqnm56ml5iWmJWgpKiln7arqrq7w7Sls7XLwLiqtqyyuriuqLi6vbiCam1ZVlNUTUVKUk5LP0FIRURISEg5NUZNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZScl6KXqZaNkIOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzFxMbGzs7O0sq+u7axuru7vs+1w724ubeysbWzuLOrppyrrLmqqaevr5ijr6SnpKW1wLCrrLS/w7rAurSoubW5s6+Wpa2urqSLk5WhjXTBmn2XmYSPlpqMsZWbmpWSk5mZpaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVZewn6+cnqSUr66spZqgpZSTmZiOnKCnopm0qaqzvLu7qrCyx7+5pqyrrbGxo6GxsrSkb2xkW1lOT0tFT1BRUTtISklHSUNDPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZiHi6iWjoiThZ+HhJ2Xjp2hm6Oktci1qca6wsPHysnIzM3Gvruzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisur+oq7a3vsK/vrm0s8Syub2so6+1rLmmiJuXppt2v5+EmZ2Ok5mai66XoZyblpWbn6GpnqefmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qupKSfpaiSkpmciJScop2Wsaepq7q2vbOyrb65t6Cjp6ilp5ybrKmpjGFkYF5RSkxGSE1JVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZyhn7uvmZSfjJOrm5GSk4mrjYein4ykrZSjo7bGvrTAusLCx8jFws3Iwb65sq+4tMDCyrXFssG8tLqqqa2tsKOjmKq0u6appquqnamvp6Oqq768qK29tLi+x7y3trjBsr7BtKm1t6u+pY+imJKin7yfiZqgmZeeno+3n6mcpaKbnKGaqKWzoZudppyoqp6ZlY+Um4uXiYykopSdop6hta+lpJOvq5mrqp2dpKOokZWVn4OPnp6blamkoaG0tLq1rai1srOenKKlmpeVmKqhnnZfW19dSkhFRk1RSU1FRkdDU0xKQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlnXEZDQ5xwYkdFp5ekn57DrZuXpZiaqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHw7/Nxru9ubKwuLO/wsi1v7C8tri2pqSrrK2hoZqqqsWipKmrpp6sr6uiqai/uKetvrG4tse2tbm4wLK/wre1s7SvvqOXo5aUm5SuoJCho6Wjo5+QvaSpnqirnZ2gm6afvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZrqaemamdn42YlJ6EjaCam5OlpJqYq7G1saulqq2snJigoJKOkJWonpRnYlhgXU5IR0pOS0hFRElAPlFJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJWTKKao5yexayhn6yenq6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+yse1uLW0sLOzt8HFtr6xuLW4tZ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsb25trbEsrS4ur+zxMG4uK6ztbWjnaWVkZShrqCZop6oqKujmsKtqZ6srZubnpmmoL6hnaSYq6uspqKZjZqfkp+Jjld/lp+moaC4qqaTmLWjn7Ggn5qulp6OmJOdgY6fl5WOoqOWkKausqupoaKlpZWVnZiLj5GSpJ6JYGNZY2BLSEpKTkVFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0op2yqJOrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTJvK+wtq2wtK+/xLS5sbC6tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22p7e7vq+3xK20s8PAs8e0u7estLatqqKmlpWUpKyin5+aqKuwr6+7sqagqaiamZiToqS5oKGkk6+vrKWnn5KhnpWej5CNlZ6aop6ntKamjJizm6Oump2brZCek5WTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuRjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSqs6GktKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLW/yMK0q7Wor7isv8Ozt66st7qlmauyq6qYn6aXrbu0m6ewm62grrSyp6u5s6i6tLiyucCqt7LEvrXGqL+vrbe1qaesoZeXkaaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqain5uam5aXqJ+gmKGer7KipoyXrpikqpeZnqSQmo2Tl5mFlZ6UjI+cnZOLqamqoaegmZ6VjI6Zj4GFlYiUn3hiaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SknaKmv6eor7ChqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMXAuqm2pKy7rMDCt7eqrLK7opWtsa2ylqWnkaq5qZ+msJ2roLC0s6qptratvK2zs7m3rLiww7u+v6bDq7C3rqmrq6eemJmroaKhkZehsa+zrLC5mpypoJmWkpemobeppaOisLG0q7OorJ+boKCbnaWdopedo7Owmp+Pk6Wan6ialKKdlJeJk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjppqaGxgbG5XUFFaVEFDRFRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G7vr+0qa6xt5+Xq66orpemqI6nu5+krLOerKKxsLOsqra0tb6usLG1rLC1ssG7xberva+xuKytqqOxpp6lqp+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaKZm6i1qZeZkZKemZ2fnZCqnZaXhJSWip2ZnJOKjZaXmpempaKgnZaVl5N/j5SFe46SgoyWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pa2qpq+ut6qvtbuop7G3xbext73BwrW0usW+zMa5wsC6vrnDt8C5srSrqbq2u7m+tKmtsLWYmKesqqybq6uPq76erK6yo6ufsK2zrq62srm4qq6vsqi1r7S8vcqzqra1sbSwr6iis6CbqK2gppaWmpqyoq2gpa+XoaSampKOo6aos6mhprOsqralr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkImUkp6ZpaKhoJiWkpOVeYqPhXuMioOKkmpteG11e2FFYGpZSUhaWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFXmBgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7W6pKy0t8m7tLq6v7+0s7fDwMzIvMO8t72/v7e/vLG9rae6ube2wraqrLG3lJemrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4s6muq7Knt6+2tMTGtqm2tqywraqppLagoKexoaSUnJmVsZ6nnKCqjqmjnpyWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJSCkZWPnZuXlpWIlo+Xmqeco6CSlpGQlXWEkId7hYGEjIttcHd0e35cS2VsXEtOY1w/YntHSThHZ1dmXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2vq6ilsbO0q7eyt6CrtbnJua7Au8K4s7G1wsPOxcDBvbS9v7+6vryyxKepubC2tr+8rquzspygp7GtpqWvpZ6ytayrsbKtqqm0u6y1s7WttKyqrKitqbmtsrHIwLilurCpra2lqa6wpqWjr6SpnJ6cm6+ao6Oio5GsnqOgoKKqpqa5pKy1tqWrrKitr7auo56jqaqboJqakqSzmY6JjYeQoaCUjJScn5KRg42Skp2amJWTh5eSlZmnm5+ejJKRjZB2fY6FfHx8h4mIcHNxfXx9XFNkbl5OWWZcRkSWW0c7Tm1YYltMYGJOVldWV1RZZ11RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKztIPzNCSFMsPpBrO0dIj5yqq6KqsaSppbO0sbW1srKiq669zLquwLrHsbSttMLC0cXGvsCyvcDCvL+3u8SnrLess7i7wK+rsa2go6etqqiksKSrsqqvrLCvsK6rs7ynt7GyqbOrrKalo626rKqxw7q2rbupqKitqqmzpamko66qqKKfnaStlaWemJ6ZrJ2iqKqiraakrau4srKhqaKgrK+xrJ6gp6ipmaSZmY+gp5iGhI6Ki56fjoqMlZuOjYSGj5SfnJWXlIaWk5OXpJucnIuTkY2Jfn6HhXx3foeFhnNycYh1a19ZYG5jUXNxXEs7hHxGP1d0WGFaTmNbTlZWVVdRXGJfU09OZ1hXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraiiq7Ocqqqwtq25tq+rpquqvcm7sL23wq+xrLPEw87Pw7+/tMDCw7rAs8jDq663rbK4v76yra2rpKeqsKmnqLGmtK+qsK6tsrG0rLS8pLizrayuqKygo56wt6uqrbu3pbe2pKqnrKyrrqGpp6axsqSnpqKirJeqoZWboKaepKKrpa2jn6exuK6uo6aim6qrrqmdoqWkpJmgmpaPmJyTgoKPiIWcn4uKjouYjY+KgouXo5qRkJqMk5KRk6KZm5mKj4uLfIaBgYN6dICEgX1zdoujh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVZUT1xdYVVLTWhWVldJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6uxmKuqrbastrKspqyqqbzAwLi4s7u1prKvxMnL0r/Bu7nAv8K5wbnAxK2xtbGzur+9srCuraurp7aqpq2vqrmwqLGyrrKtt6q3t6e0t6uspKqrnKOes7OoqKS0taC3rqCqqKuprKigq6ypubapqqmqo6qgrZySqqGdoKSipqOqnp2ntK+opqqio5ilp6eqnKOko6CamKCRjo+YjX+HjIeDnZ2GhIqKjY2Pi4KFlKKajYyZkJGRj5KflpiWjIuEf3SHgX5/eHSDf3p3foGInY9vcWdncXhcYXOIa09emVZIbXhVZFZRY09NVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6xoaarrpqspa2wtLWvq6awqqm6vrvAsK65rqG3r8nHyNHAvr27vMK9usPAvr+usrKxtby6wbGxsquzqKS0qKWts7O5sKOut7Kwsruruq+qrrasqp6qrJ+joLatqKGfr7OitaqeqKeqo6qhoqytqL2vrK6toqiooKyZkLCimKKgp6iep5uZqrGqo6CtoqGUo6Ojp5iaqaWYmJiejoqHlIh9jYaEhKSWhIGBi4aOjJCDg5OgloiQnJCTkI2RnJSXjoqGhnh0gX98dXh5gHp0c3lof4akdWleZGuBdGeIjH1TWHBeSnhzU2VTUV5NTVJaZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJCPsqGkpqykp6Stp7WzsaulsaiquL7AvK+nuaqmr7DJx8jRw7y/vrm+v7zJu8G4sLC0sbq7t8Cys7usuKyitKenrLK2ubOoqL22rra+sL2nray1rK2cqa+koKWtq6ecnquzpbSom6unqaOpnaSpqKm9rLSvrp2qpKCunJuzo5WknKWln6Sbm6mrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo+DgIiej4V+fYuGkI2PhH+TmpOFkqGMlJGLkZqRlYaJfn9ye3p+fGh4fHp1cHB8Z4R4hIhkYWdicoV6bWd4XV1VQFd6bVRhUFJYS0xOcnVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLKZoKCppqWhq6W4s7OmqbGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXDtbOytbK8t7m9ta25tr+tobOnq6uwtbi1rJ++vaqzwbS8oa+ztaqrn62wo5ylqKqjnpulsaewoJ+rqaihqZykqKGtu6iusa6gq6Okrp6fraaXn5uho5ygnJqkqqObm6WklpeVn6KWm5emrIyekZGRi4KKgICOgXualI2Ie36LhY6Ni4qDkpiRhpOiiZKSh5CZj5OAiHx5bH52eXhje3txcHByd2iAc2qDZ2VnYG1zjWxhaW9gbz5aeGtVXk9RUUpJTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUJoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5mtmqCYp6Sjn6ikuLCvpK+wqqu4wrqzrZ+4r6uotLrIy8i/t8K+sLS9t8S2w7GuubKzv7S6vbepubi9q6S0qKmqsa66saucvL2lsMG1tqKvt7Wmp6exs6CepKWnoaWZn6yoqZ6gqq+noKaYo6mgsbmfo7GvoayhrKScpqepmpqbn6SVnZ2bnqqnmJygqZOZlJiek5mWoaqRmoiOj4Z9h3+Cjn18oYyNiHiCi4SJi4uFh5Kaj4iVnoiRlYKMl4yRfIV7c3B9cXR0YHl4aW5wcG5ofXFje21pZWNfZYV+X1pza3JLS39oWFpOUExKSFBSUElOXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4wWFY1KJeep5qdlqygoKGkorirsqW0tKqpucS1s62ft62urbC1xsjBt7/CubG0vLa/u76vq72ws76xvMK4qbu6t6eotamoq7Gts7Gom763pq28t7KfsbiwqKWnr7GboaSgpKShl5yvp6Gfo6ivoaChk6Skorewoaaxq5+so6+YnKqlqZ6Xmp6lk5udm56nrJudnaaXlpiUnY6Tl6KoopCIi4+FeoR+hIt6jpaJjYZ4gYeDiIuNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RsbGtpaIJtZXJra2VoWmJzf15abHZqWkh9XVtYT09KSEhSVUYyOl9ebFBEWFZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV9ULDKWo6KYlZ2pnqaho6G4qq+hu7mmrL3Es6+uorWvra2vtMTEvbO/urexs7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKqzq66yo53Ctqapt7ern7K7qaalqK+rmaKnnKWmlJihs6aZnqWqqZyhoJSln6S5qKSnraaepaGok5+poqGhmZudoZKbnZego6ycm5qilpOVlpuOk5Ojp6SPiIqOhnmEfIWGfZyNiYqGeICDh4eHkYWVk5KMkJWTjY6Ue4KXjop3fntsdXJtbHNieXVoZ2lnZW6EZ2doZGZoal9mYmlmWmZ7Y2FSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzhiTScynqSkko6lppyenp6kta2oqrq3qKzDwLevrKG1rqeur7fBwL2ywbexr7K2tbi3tayqvLSvsrG9wLeuvLyxpZ+2rKamtamrr6GgxKyqp7G0q6y0up6oqquxpZidqp6opZGZpq6jmJ6kqqGbop2XoJ2ntqavqq6hoZ2doZWgpp+ioJmbmpySmp6Vpp6uo5iXn5aUjpWYjI+YmqegkIeKioh4hXeCgoKch4uCiXt+hIiGhJCElpWPj5CRkJGNk3uDlY2Gcn59Z3lwa2psZ3Vza2JnZGJ0f2JkZWZlaWpjZ29ZXlhdbWRhTWhXW2BWSUdIS0xSWD45YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZEclNZykoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGjtqyrrqm5vr28rcCyr6+utq+zubKnq7mxr66ztru2sLm+rKWetaugobGlq6+fpcShs6Wvsq+3rbWera+srqKZnaeqpZ+Vm6imoJmko6mcmp+clZydrbCmuaetoqGamp6Zn6SapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4F0goKKmIWHfImIhISKjIiShZOck5KPkJGWjpB/gI2Ng2+Bf2Z5bmhramdxcmtcaGNhcn9gZGdqbmxmamdkbFxsbXZxYVRiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSWRCJzSTopyPj7Gdm5ShmqmysJ+5wLagtMG7vbmxprawqa6lt7m4ua27r62rq7eqtLmtpbK1sa+psbe2sbO2u6epn7apnZ+qo6qtnarCma+lr7G2taysnrGtr6qim52krKiclZynpJ6aqaOllZqgnZGco6uqqbqfpqSgmJqanqKPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkH9miIBodmlmWF1pdG5OUGpjZnGCZl5kZm5saV5dXomQhYhoT0tEOEVUZ15KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9iPCsvjaSah5Wxm52ToJyqraujvcWvqbfCuL28rae2saarpLi0s7Sxua6qp6y0pbC1oqe4trWop6y2s660rrOiqZ+0q56ipZynqJuuvZWop7C0uK2upKiuqqumop+coainnJehpqacnKennZKeoJmQnqiqo7Svo6KjnJaYmJikiaGPkpqHoYiUnqF/pX+nrJ+Uk52TiINyeI2Og4egdYiNaZeJZn5zeaBviIeDfox8f6GgoJl/e4eedIiOdpuKbIiCg21pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtraluIcG15codph4RaXkZOPkZeTUVSVlZRUFJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFVYDcvKI2ml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0pqeos7Gtsqiunqqhs6mgpKSaoqSdsLeVpaantr2mrKepqqynpqKgmaCopJmZpqOlmZylqZaTopyUk6OmpqG2pKOgo5iVk5iTnIiukJiUiamLmKOchrGApK6elZuflXmC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFdPWGFPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7a0qKimtqWoua+csrK2qqWkp7KvrrGmq56npLKkoqGfl5yhoLGulZ+joLS6oqqooa2upaKdm5qiqqCYm6ihn5ieqKeRnKealJ6ip6OgsKOen6OWlpKYkpmFsGtqio2qfmeFloetZXGfnpWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemaAaXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2mAknh6aqg4Sq9bV1RtY1pMT1hfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5ZMzEbkqKVgqynpZ+jpKqxt620vb6wt8WyuLrDp6mwrK+pqbGvpLG6sKSlr7OjqbmpnrOysKOloKqtsKyvpqifo6KxnKOdmJWYnZ2vqJecop+0s6Grm6GtraCempego6qdmZ6koZyaoaekkJ2jm5ihoKyfpqagmp+hlZWRlpGahrWbtXiFqZm1mXeHs5u3f5SXl6uWfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgICIkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW1jcX2GgGGdL1KibltUa2dgTEtcY1hcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjhhVTUwHJeglIizpqairqmos6yqu7bCsLzCrbi3wqusra+up66zqqKvvKuip7Wto6u2paWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqY+pqKqbnZaYoKapm5+do5+coKOlo5Wbn5ianqOrm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5enkI2cjKR6jYaigaWCeqx5j51Wr3uJfp9quVq5d4aDfaaCk3yYeqp5jp2Qe7FujoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZaZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKC4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0c6YVA3MiWcopOZsaippbOqpbSopLy3wbG6wLK2tb20tqiysaOxs6agr7apm6i6rqOwsqGytLGhpJ6ep6mxqbSppZyenqyXmZmXl5aYoqyem5eprbCoo5+OrKKol52YnKGnopiioaOhm6Kip5ueoJ6VmZumoZynlZubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uZpo2PnI2ifo+fpH6wdYOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTg9V1JbVllJQz9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1Qcmg5J1dpXEFOVF9lUDVHPWFNNjIuop2RpbCtpaq7rae1pae2u7yyu7+4t7W7u7SmtbSisrKjoKywpZinuq6ksrGdtLiqoKWdoaqksqisqqWanZupn5aVmJmSk6OqoZeTp6uwpaKWkqyfppOUoZylp6CVm6enopqjn66aoZ6ekJacop6cpZWdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4OamqOKkpmLon6Sl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbGBxbVZVTS5lYmhTWVA7QkRATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzAzMzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6CdlKC4sZizwa2osqeqsrq4tLm+ubiztr62pri0oLWtoKCprKCVp7asqLGyq620pJupn6CoorWnpqqkmZ6VpaKUlJyakpajppuUkKetr6WhlZipn6KPkaKaqaahlZqmqZ2dpJ6tnaGcoI2Un5ueoZiZnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqGiipeWiKOBkIeUqnt/i515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFUX2JMN0ZJX0MxPTeinJqav6yYtMKuq62oprSwuLG2v7m6s7G4vKq7taCxpZ+mp6eflKqxqbCqtq2qr6GYoaCmpKS6oqOroZebkaOglZWfm5WZoKCQjoypsK+mnZebp6afjZKkmKisqJWYqaien6CkraOhnqGOlaGYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5OcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV45MUE4pZqbnbuinLLArq2rq6e3qbivtcG1vbKwurirwbaqq6Gdp6SinZKrq6e2o7Oorqqhl5yooKWruZ2jrZyWmZClo5aOnqGbmZ6fkZOVq7avp5mUm6ypl4yUppqlraORl6uypKCeqKuwmaGikJmil6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z91ZabuHmJkZiNl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXleaWFkZmJteW9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaean6K8opixwrCtqaqssai5r7fFsryzr7ywrsGyraajn6ShnZyRqqWqsqS1p62koJaaqpmmrLmdo66ZlaGQpqCTjZyjn5mfmpCWk6+5sKuVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipI6nopShmpyXlqSYj7CgkpWpn4WQmbaAkZKNuJV4gpObtXdubG5zb3mPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3V2l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lteWKLrHB0hX9YW6dqRGRZVGZfY11jUWZmcW11Qk1QTUQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aWs8K0q6qorauqu6+xxrC2tK+4p7W5rqukoqefoJ2ZlKykraqmtaion5yWoKOerKW+p6Gql5WckaKbko+hqKKUnpeSmJSytbatmJ2kpKKLkpKmnKWrnZappaacm6Kpp6ajqKGSrJ6Xop6Xl5idno+wqZOcp6KPa35pnKh5iXN+m451emWHe76/wLpukoJxlYVfcmpaXZqJYWSHjpVrYH+VY22cdmKUa4CalZRlXl9jcZuJaHONfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01FV1xmYUxbV2ZjXk9abXZqclJPREVNPEhJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS6tqOspq6nqLWyrMitsbSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlqKbpq2pv6ippZWUm5agmpOYpamokp+Qj5icsLK/rJunnaeiiZORqpuopJycrJ+jmpujp6yin6qimq6blaaglpWdn52XsaWZoqiZnJGenKOlmqejmp2ampqQloJobn1xdpGXlJGDibSpjYWYlY6KjJiXh5OVioOTk5CIjZGUmZOZl5qgoZqblKCcjoJ6pIVsaXuQfYB1iYuCcoJ4eXZ1ioB7iWpzgXSDdWR3fXZrcHptYGNbb2dMWFllal9XWXB6b25mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MTApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqSxsbegqaazp6WwtarJrK6yprWmwKi0oZ6lppyllpagq6eso6O3rKCZl5agl62qpsGfrKSWkpyXnpiUlKKenqOokpCZqKeyw7Caq52qno+Xlqmeq5yeoa2YoZudoqWvpaGkqJ6rmJemnZmaoZ6enLChnaKnlZiUmZSho5akn5ihjpaUi4qNj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIaFmpGHhomVjpuXjpCYnqOWmZKQnY1+jWWhs66EiYR3e5CKfXd5em9neZCBgIlrdYF5iHJpc395dYOHgmt0Y3hmX2hkY2Rmalhre3Bqa1xTTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9dXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LEC0oLmvvqyrrbGyoKqmsq2irLOwxrGsraSzr7yktJygp6KhnZmXqKappqSls7WelZWdmZmvpq6+oKyjkpKempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKWrlJ+fnaCqrqiko6uhrJufn6CYpZ6cn5ywpJmfqJOYmJ2SpZqZqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOa2iMl5Gid2tqi5iin5hzbG56hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvq7Owq6Wora6wp66tsL2yq6ilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Wo5Cir6a2uaWuo5CPmqGZk5KboJiZppZ7payiqLTDuKWip6+fnpWeo56jnaSqqJKfoZ6gqq+pqaOqnqebpp6noKyWoZylsaSYnKuWoZ+bk6WYn6uZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2NnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx2kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO0sK+/qamUo6+psK+tprK2sKump6Wxq6CrmJuioJybqqeinauipamlpbSknqOTpq6suLSnr6OSkpmdpZKRoKGXm6Cdh6arpKutv8CxoamuqZeSn56imaOkqqOToKGenayup6umo6Gln6SknK2pkaSbqa2qnJ2rna2il5iml6KkmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4KAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK5zfJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX5sgI1fcGpvZmBfeGRccWhqY2ZgUlRTV15KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU0NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7WzpMLSFQQEY0LjGtwsDAtbSwt5iekaOqqa20q6ayra2spKymsKqhp5uappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTkJ+ll52oo56upKuwqL/Gs6ipsa6Wkp6copehqqqflaGenZytrqapqJumpqOgqpKss5aloqqqnqSnp6KxopObp5uhm5WUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihi5GLnH6reoiSjqCAeq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbI+OZG1zdW9gZm1kX29oam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9TGx7K0n52jjqOioq2utq+psaepq6iuq6umoqOdmqOWn6arn6KmoKioop+esKyYm5eoqK+sqKepnpeVmqOikpShrZudp6OurKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqbCnqamaqqijoaubr7GiqKyvppmmq6qrsqSTmKSmm5WShaRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJiGgaN9qX+BlIauXnyoVZ2ikoF6o5+Ae8OvxYxzr7SzuXFiqa/CdGiMjJeOgWyYkW5seHh3bmtmZGRxcGZ7aWNcVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqa2jqKeqq6uppKafm6WfnaanpqSdrJqiq6Gkn6+inpuTqqS2sK6gqZudl5Wmo5CaoqifoKacsKajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6aqqqKtmaqooaGporOtoqqzsqKcqqiwsLellJekqJmdknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUqKmQk5qMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntvlZB9bnl0fHptW2VqcnFmgWpeYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMHGua2ps66spaKdsrmsqqGmm6imq6yppqCmpJiro5+urJ2moayan6mlnae1oKOYk6irtrKsm6acoJaQpq2Smpyno6Cqpq2ho6epsLTCsbKqraiUiZidpZuipK6ll6GVmZylpamZrpysp6Weq6O3rKCyubCenK+otLS0ppaYqaSboY+CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSofrCFm4SehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJGOh3J5coN9cFxsbndyaoFvWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWmr66uqaadpaWao6ehsq6iqaeyoJmopJSitaOklpeiqrW5pJyjnaOTkKGymZ6bpqWhoq6snKSoorWxw7Gtqq2qkYeRnKedo6ScpZeemJmZpaOnmK2hrKSll66lu6yht7eunp61s7mytKiZn7GipZ+Hj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijaaLk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkIh2e3iNgWxod2l4c26AdV1kZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrbahopmVo6mnrqmrmaWhnqahoLWnoqmnsKOUq6OOpK2knpGamqq0tKSdppypkpSXrqCgnqaknKectJmhqqO1q8KvqaupooyEj5yioKajlZmanJibmKajpZeppqyhpJuspr2slb6wrZ+jsLS7rLWonaqzpamZe6iRfXywd4qBpKWInG2yb6CHrXuhj4OolpmArImFroWglKihopeFn4CZlYB7kn6rgJ2alouqeJ2gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIGTi5OJeHmBln5qbH1ifXRtgHpgZ2VwbmdnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2gkKqppZaJmpCusKymoKibrZiZj62ioZ2loZqlnK2YoKiltqi/rqSpo5+LgI2bm5+mnpKUmZmTmpqko6OYp6qqoqOeqai+pJfDrKujoqyzu6ywqKK1saqsmXavfpCKnIWHfbqtiZhksIxlla19oY+Dp5abga2KhLCFppmjoaKRhaBbbGqBs2B/rXt7goCybGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5qKlo+TlHl4jZt8Y3N8YYN4c4B8YWlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6rmpSuqKKOiJuOr6ypp6Ooma+Tmo+pmqGepZ+apKOlmZ6jqbKovK+lqJ6djnyKmpahoJmQkZmakZmXqJ6fl6espaSkoqSpu56gxqelqaKstbeur6igva+urpeBqZKjro6bgIakl5iQgYC4w7qDjp2ThKeYnYKsioKviaecmqWrkX7VvcKqYqO/vXx+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWbj5mOlJp3gJCZeWJ8emOMZ3iBe2BrZWtqYVBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5STr6yXjIOaka6mo6yipZyqoJiLo5OmnqecmqGoopmeoKysqbitp6Oal5N7h5iSppuTj5GYl46YlKiZnpaop56ppqGiq7ueqcWjoK+jq7S1q7GrorypsLCbdHaqpLaFZYmfcGesj4qPbW93pJCaoIF1sJqWcJCNcpaoo5uYrqRybG1sZYp4bm2CmXGAemlwaWaJlpWXcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hl5aXjpSbe4aOlHRlhndnjGp4fnhkbGNmbGJLZVdKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qru6srOqqaKunqSzqpiSvbHDx720qZ6/q6yjoKarn7qjpK2sraWNla2qkIyFlZetn6Wqop+kpKCRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4OVjaaXjpGRl5OMl5Wmk52Wp6GZsKadoqy5oLDCqKSzpqyxsquvram6pbC5l4uhqaW2nYmWopiGqZqQlJ2TqrOZm6OsobSXo6GeoaKdoaShlaunjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJOflJaUnoCGk4twZ452bol3dXx5aWtkZG9jVWBYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqaW2uK6uorClrZ+gtrGQjqrEu8S5t6mhpZ2bpZ2wqKO2p52ptaankJeso4uIiY+cp5aspKKaqJ6fk5Wjl6iaqZmUp6GkkJqnmaG0uaeqmJqQjXuAk4yhlIqUkZWPjpKXpI6dmKeem7Wjnaast6ivwq6jt6ewr7Guqqu1u6KxvpqSpqSmtaKSnaaejamfjZKfo6ywm6GksqqxmaWhnaSqnp6dnJesnZKaopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyQjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkop9jJaSkpeRoJGblZ6ChpaFeHGUcniJfnF7fmluZF9waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsbSsrqOpp62gqLWqkI+co7K6raqroaKZepyisKSlsamWm7imo5OXqZyOhoqJm6KQrp+kl6igoZKXmZuui6qWkKiZqIyYqI6euLajpZibjYl5gJKMm5OKlZGTj4yRlqGLnJynnZ63o3+Dr7WisK90pL6jsqB4e6Gss72Wd66loIqAqn5kXGJ2n46knYOXfm6Ts5yjqK+rpGWfoJR0epqXcYCZqZhsgKOoimWcpZuQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjHF6o5eWZHeXhoB2l2iCiYJueX5qcGVfdm9ra2dcZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamtpKetpZKWqrSusaWZqaaql3OLna+fqKunk5a4oKCOm6SekH6IiJqejayapJWoop6Ol5GehXSukImmmqiRlqOIm7mzp6CYmYuJdXaSjZaTipORkJOLj5OfjZmepZibspaAjJu1nbSMko+9p6F+p6J7pLC5go6Pp5+Ei4WPsamvjImWopl5gYushpydoqirqYiVh5l3pZt6h5yBl6eCgXudsnqKhp+XmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHuZgp6ahJh9kYmBgphpjIyEanh6cHBnZHdtaWxqXGRpaWVyW1xIVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3FvK+glaWotJ2Pg52rnKaioI2Qvp6ZjZ+aoZB8hY6ZmIisnaOWoaGSjpSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnayIn7SJtJqui8qIq6+Jt4WNsIOysIWpjqeYjZ18qI9ye3ebjqaWaJWkebSLn5+nqZOZwoJ/q4iYoXGegJqlfZeFlbKAoX2gk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFhmRlxRTDJFNDZNYWM3JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNnaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqunmpSeoqSqopWkqbair3+gppylnp2JlL2Zk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCofqGnh62doJaukKCenZGGgqCNrLGIpI6rmoyafqJ1gJiTa4GrdE2reIeNnZKbqamCqqt+hKF7eqdpnn+SbGeXhpi2iZ5+bmBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZ2lpYmJkYWRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuvopmWn6Clq6ufnK20oqeRoJ+fppuZjZi0mZCLnoyVi3WBlJGNiqaWlpifnn+ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDoqiAhquvhqV6i32Emn2icHKSh5Z7nox5bYebi5mRnKmcj4edfIKic3amZp5+d6RemHt9k3Oibpi3tLpzkoeBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtrcnJkW2hdYkxEPUQ1UUFacTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBgfGRJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatrqCaoZuio6Srm5qxrKuSl6CYoKSZmpSeq5uLiJJ4i4VwgJaNio+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di4+PiY6TnoGVm5+coJ+LiXecmKKNoHKii4ipiJynkZeprICujH16oJl5o5N4gHOXiIycfZafhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZe4CKp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd4YV9mV2JCUEVPN1ZCUm40SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhY31qRUI5TlteWWRmWGZnbW1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppuap5+drJmdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIyWl4SSlJiPeoqElqOciZWQhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYiZoKSpoql9sK2koriXdqOzoqN/iJR4nXqrmn6ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmZfa2h1e2JjYFFeV1xUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19ckVDPFVeYlplalZoaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OpmqKLmqmbnKeSoKujoKePnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYqKinyEbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmClp6Ri6Kefqdod21+mXOgc3F8nYWYb5OCrn2jg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJepGd0pmBopmya05h6gptud3mXa5t5dpdybKmlZ19keXB/hGtnZmNtdXdmX2FSW2ZQUWFIV0lUX1dTW2RqW2VRRkNLTEpLQkpFOFBAUE1YU1hPUlFgZWVpUmR4eXdKRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCzo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl46IhXtwfYRofY+Dk5qBd5GOj4lwf4ePk5JsmJR8iZGSo5WDjqqak5KKhYl5hHeIgG6BnoZ3gJKFh5iglnmToqOaoImzoaK2i3qsp6SupXCpgJuRhoGdk32kgKKZhphxnoSira6Jl4uAjKSNlYOvopR2tba1yaJ0lIuCnmGdl6lteZWHn5p1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2t7arS1tMamc5h+epxqmpqrdIGabXN3l2mZeXSYcVBEfbNeanVqeIdma2didHRwbVZdU1loT1JoSVVMWFJWXGdrblVnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXt7VFFPbV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKGyrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5OOiIN5anmGZYOMfpafeXWPiIyCaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeoB9i3lwj6CGeYGUhoiVnpV/k6WnnJaWhGdueJxsomR8caV4nJhwaKeCmI18pXqgloOWcp92gImUlY+5bpCKomJ9maKWiW5zaqtrdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJuc6JaX1tkoW5diYxwe390cmSlbniiZGanaJdyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RWFZWZllTbUlYT1xIWGhoc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZ2JxZ1BraGhrbG9oZGdfXV1dYGpiaWl2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsbGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjot7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZaZgnyIhpamkIGiq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+Oh5Kqpp6JpniWnH6liZaMspmekYOvl5+leZeJeql0po+Emm6looyShIyDvG59pa+Ch4aHlJedoX2me3KolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm6fnpGVYn+ri6p3gH+Op593n32FpJWdoGmah3WsZp6tjLZzdr6MpJNZg6aNq2F1cXNve3RxYmp+bmhsU1ZaVmFgXGpMXFJdSV1sbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ5ZGRuc2RSbGdnb21yaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnYGAnqSWqqqeqKeuo5mIgZaqmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYR9l5NzdYZykYNuf4uShoaUj317goWXpY1/paWNgI2JhJR1g4eSb2yLqICCi5ONiJueiIuTqqOgkIB0lJeIfoF5lK+kf4KccY+GeZKMhYB7cqeMcX19epeWm4SNeHt+foiUlZOLd5GZoKGEe36Ja4yFW3l5c3lwaW5+kolxf3SBj5STcYWDgmWNf1+BgIx4dnSUdW97b26JboSGX3dpeI5mgoOGj6qcf3R9l2qJiG9/dXyEdW1sZoxzd3uXd4Rbalh5j2hud3Jxb3d4b11shm1pZ1ZaX1dcZGtkVWFVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXqBdX+Af4F5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rra3ltaGxvYY6Vuqmni6Gim6akmaSdq6Kgg4OWqpGdoIiZppqomIOBm4t+lpSHjoqJjHKCfI99fo+EepeOdHKEcJWGe32Si4aGkIV4foCGmKOMe6ehi4WPj4SVgoaOmHdxhKqFjZGcj4eenYaKmqigoKuDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTcH+phnB9lXFqb3yBn4t/ko6LaG5dhIyMnJygj3OVjIhxdGuCdnSAWXJuhpCBfX6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFzg3dfco2CipColodnjY+DbneLgm+Di3duZGZjeYJ6lVpcaWZudlt6eHd0bXNygmZcbYpra2JaWV1ZWGtxW15gWV5dZnJ9enRvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B/cIaKhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3J5b2hqbWCMjKuxoZCjoZqfnpiemamjoX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKZh4R+koOEhoqBeoCEi5qfj4KmoId4jZeIlYuLnJeEg3qsgZCXmZOJnZyGh6Grn6Kio4uIk5udo5mWqqKop6GTnImYkHx5j4+FqH5+kpGSk5yxpZqUnZCNsZKYhKaMjJacoIqRnIOJkoprfI52d2WChpCKfImdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJiIuRp5GEh46Ig4yQi3uFiYeNgHVrgYN7eZlpcmhgdIpwfXp3dm92c4FdXW+HZ25fX1pbXFJncVVjW1thbGh0e3xybnBkamlof3tteH5waG9wbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ17f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SHbXiBgHKAh32Hk4Rta356l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcYqPhZKRi5yRfY16qYONkZeVjpyWhYWbpqCimp2GhJOamZmQmaagpp6ekJeCk4t4fYiPhaZ8fI+QkYWYqqCck5yPjaqNkYCejYmUmp+Dj5h/h46DcHiGcXRhfoSPhnWMmICCjoKGhH6FhJVueXZ1lKOMjoabhYWOdYCLfX1zc3yJhHt5jY+Fk6iQh4SPgoOKiYl1hIaHiXtuan1/e21oa2xnXnl+Z3x7dnR1dXp3XGBwfW11YGNaW15RZm1TZVpdYWtpdXp+cGttY2tpZ4B/a3J/a2pzbnhug3luhoB2goB9hXZygo2Hfnt6fIB7gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5GWl4uan56de3ecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIR8iZB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf3CLioyShqChioWMfKeRiI+SlpOWknaMo6ChnZaaf4KRmpmTjZqioqSbmJGcf4+GeoGFj4ihgH6MjY98l6SgoJKZkJCmjI+BnJKKk5ecfpOTfoeOgXZ0gnB2YH2AjodyipZ8h4pxjH6ChYaPaHhyeY2Zk5CAmH+JjHOCiH19cnp8jIV7e5KOhJemlIyGkXyFhoeFdIGChoZ5ZHF6fnh5cGxqZl59c2h8dXVzfHN/al5gdHZwd2RjWF1eUmpoVGRYXmFoanZ4gXFma2NsaGV/gGptfWdtcGp9d4V6a4uBcoGBfYF0doKMhn98eoCBfX+PanKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZidXp7cWJrb3mJjZ+zkqWlnY6QmI+GnaCanHx1o5+Nl3+MoYqImpV4e4aHfoOJfoiCgX9wfnp0dYKEfYiQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOmlYSSipWXkpF2kJ2hoZiUmHqAj5iXj5eanaSemZOUnHuRh4R4hpeOnn6Cio6Mc5einqCSmI6PooyLg5iZhJOWmn+YjXyJjYF3cn5ue2SAfIuGcIaTgI+Ba4eDgYCJhWZ2b32Ik5mOfpR5jIl9gIh9fHKAeYqGeoWSioyZo5eDhIx3iISCgXZ6gIeEdF93d3xzfXdma2NgfmlqdnN0dX1xfGNjYXNudXJtYVlfXVprZFJiV19gaWx1eYZwY2pjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGphY3VWg2lwbmB4Z2xhanZwZnl7eXFfcWyFhZCdrpinqJ6OjZeHhZ+Tlph9dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYh0fX6Kf36YhJaTloyjoJd+cYd7k5GKpo+MjoqSoJGDkY+Tl5CKgI6XoJuSkJJ0gY6SlImdnZ6nmZiOlZh1j5CLbYaZkJl7h4iQiW+XnZqik5SKjZ6MhoGTnX+TkpaHmol8ioqBenJ6a3Vse3+Lfm6FkoOTd2+ChH5+i4Blc2p9gZeYhYCOdJGJhHqIfnZ4gX6HgX2EjoaNlaWReYWCdImHfX9ydH+GgmxgenR5cHxvYW5iZHthbm92c3d3c3NhdmBvbHVub11bXl1dal1PXVdiYWhtc3qJa19qZWpjaHeIbWZsaGlsZ4B8endvj4dzgIOEfXSBhol6g316gYR9fY5yeYt5eG5sh2toX2pyY4docW9ldmdtbGF6aGt8e3hwYXdti4GZmqqhpKmeioqRhoqeipWXfXasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGgISEc3qAhnqPkYeRkZuSpJqTgXyBfI2KkqOIjYqNl5qNhZGYk5WOiIiLkp2UkY2NboSQj5GJnpmioZeXiZeScIubhWeHmo+UeomFkIpwlpqToZKSiIuZjIJ/kZ59ko+TjJqPe4qFh3RzdmtxbnV8i3RuhpGOknF0gHyCgoh8ZXFten6blH6FinWRi4F0iXpvgX+CiH2FjYqGjpaqjnuIfX6LhXd9cG5/hIJiZ3dzdG56Yl5wYWp0XnBqenh4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/iGVdaWhnYmdxjW5kaWdlaWeAend1b46Ec4GBg3x1goiFeIV8d4OFeoCKd3+Le3tyeYNqal9xaXN/a3FubXFnb2tle2Juf3l2cGt2d4l/o5iiqKGnm4iMioGPnIaTnHSAqZSRjYagjJWTkH9ze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhYiUmI+Wi4uMjYydi4+RhG6Ji4+RipyWoZyYloaYiWyGpYVnh56KkX6MhIyBd5OYkZ2RkIiJlI1+fpCYfJGNkI6akn2LgINvdnBsbW9we4Zpc4OOmIpwd4B1gomDeWdzb3aCm499ioV7lZJ6d4p1cYp8h417i4eFio+cpIl8hHaBi4B3eG1pf4F/XHFycW9veFpecGFval5vaXx6cG1tam13YHBva3FtWVhgYWFtV1FTWWVmYnVwhIJiXWttZGNma5JtYGZmX2drgXRxcnCLgHR/goB5doCLgHmGf3eHhnaDhXuHjIB7dop/anFjfWOFfG9wbHRqaG5sdndfcX55e3R1c3+CfqWVmq2fp5aFjIN+lpSDj550iZ+TkoWKmoyVjYt6cnd0gnByhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeYB2coJ5gqCCkYGSkZebkZl3kHqCjJKkmpOOiJWYkoOGlpiLk4uIjo+InoWRi31zi4WIj4icmZ+blpWAlIBph56JaIehiJKEkYSKcYORl4+ajo+Mi4+Nd3uTkHuOi42Sl418iHyBa3dqbmtsbXp/Ynl+jpaBdnqBd4ONfHpodW11iJaMf4mHe5SRcnqFcXiOe4uNe4l+hI6Rn5+GfX14gYt9d3Boa4CBd153b21rcXJVXm9icWFfbW55cGdwZmZ0dWhxbGF3ZV1WZWBgclNQTltlZFx4cIh8XlxpcWJiZWaRaV9nZFtnb35va3Fzin12fYWAdXZ/jHl7hoB4iINzhoV+jIyEfHmVeGZxa4Rgh35vb2t6YGltdH90X3R8eIZ3c3OFfHmhkJqxnKWOgop/gpmIgIudfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKnJucm5aUeo53aYqTiW2JpIWTiJiDhmOMkZiNlImWi42Ji3B6lYl8jomLk5GKeoV8f218ZXNva2x6eVyAeY+OgHt9fn+Gjnt6aXVrdIyQioOGhn2WjWx/f3CBjYCOiX6Ee4ORlpubi313eIKQeXNsZW9+gmtpdG9naHNtU15uZHBaX2tyeWdra2JneHNvcWRfd2BhVmtfXnZPTUtgZWNceXGKdFxbZXVgYWVljmNgZmJYaXJzbWtxdot8dHmGgnZ3fotzf4Z/e4l/comHgZGKiH1+mXZlc259ZYh/b3BrgFprbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFeIiUfnyJnIeEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+ic2t1g3WEoYWRbpWPlJ+UmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mPkHaLd3CIiox+jKWFk4qdhYZei5SXiY6IjouKhIlsfJeCfYiFipGPhnaFfn5rfWN4dGpveHNYiHqRh4V6f3+AhYx+emZ0aoGLj4uEhICMmIZsgndviZKDkYV/gnuBkZeTmZF1dHiGjXZzcWZ0eIFhc21vYWh1ZlJgcGdrVV5tdHphcmNgaX1xcm5bY3JhY1duWlx3TU1MY2VhXXZzim1bXGR4XmBkZoRfY2NeWWlya25rcneLfXN3hIF4eHyJcYOEfX2Ie3SLiIiVh4x/f5hzaHVxeW2Me250cIBXcHl2eXFkdniGjGl2gIpygJ2Imaeco5KEfHCMlHh5ip2DhJ+NjnyVjYCZh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsc4B2ipqIjWmXj46clJKBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12h39xhoOKiJujhJWNn4SJYYOVj4WIhomMh4CHaH2Uf32ChYmOjoJxhn5/cndndnJpdHdsWox9koKFfYCDgISKgnZidW2KgpGMg3+Ak5J+boNteoiRiJOFfYJ+gZOUkZeJb3J6jIZ1bHBqcXd/XnNoblxpdV9SZHFoZlNfb3d1YG9gXWiCcXJqV2dpY2lYbVdbdUxKTGVmXmFyc4VoW1xleV5eZGd6YWRfXVlrbmVuanR3in5zcoF+e3Z6h3SFg3x/h3d2ioWPmIKNgnuTdmx3dnl4k3VueHp9WHmFcYBvZ3h2kYJkdoaFcYqWhpmhm6KKhnNvkotydo6bfYmZiIl7n3+EmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6Rp3hucXd7cZKQjYdqmI2Im5GLhntoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6SlIKJdYSIeISAjJWeoIeWkKB/iGF/k4eDh4OJjX9/gmZ9kYB+f4KMj5B/bYN8gnRrbXd1dHd2a2ONgY5/hH98hH+FiH5wYHRyhn2QjoN9gJKKenGEZ3uFjIiNhHyFf4GVkJGThW9weYt/dG1uaWp4fGFnaWlYa3VaUmlyaWJQYnJ5bWJlXlpqg25zYlxnX2VtX25UWm9OSE5mZFxmbnKAa1pbY3NfXGNsd2RlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gId1eYmBkpV8iYZ2iYFweHl7hJNvbXuAdl6Df3SBbWl6c5RzZ3KIfXKSkYSan5ughoZ1dZR+bXaTl32HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9fcnOXvMSEdnGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAinaFfIqanpmHlY+dgYlmfZOCfoSDiYlygX1mfox8eX9/h4uPfWmAfYN2Zm95eHN3c2xrjoWKgYqAeIKBhYN/a19zeXt+jouGfIKQgX5zgml6hImMhoV5hH2CmY6RjH5ubXuIfXZzbmdme3ViW3BiV25xU1Nuc2hhTmZ0eWZgXl1Zb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW15tY1pib3dkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIGFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRsk42Fn5igmYSIbn2Mdmp4l45+gImClJeJeY+Wb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3S2JapdrQlnF7kIqQeH2TioSYkYyFbmuFkpF6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJONg39vf4R3hHmHnZqVjJSRlYWIcHuSgnyCg4iDboF3aICEeHJ/gIOKh3xlfX+EdWNwc4BpeXBvdZmNhoOKfHZ4gIV6gWpccn9zgomGin6HinuJcoJucoWIj4aGc4R6gpqOjoR4bm9+hH92eWRnaXtwXlh2WlhwbE5XcXNnYEtsdnVhXlxaWXR9c29XZ11manJgb05XaFI/WWZeWnBraHpxW1pZa2VaY3F5X2hcXmVsaGVraXF3f4hvbH9+gHVvgnuAgn+Cf3aBhYiXinGCjXF7hnx6eYSTjHVqen9rb350f31vcnt6k3BvgX94Z5KLg6GZnJKChWaGg29neZWIfX6EgZiJgXyNjGl4cmtrZl9gb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYiOjXaDlox+ko2Mf21shY2MdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R+boB1d4V6iJ6RjZGTk46Lh397koZ3foOMgmt/cmiAfnhtfHyBioN3YXmEgnJkcWh+bnVxdYKbi4B/hYBzdX6Bc4FvXG5/dXmLhIt7h4F9iXl7cm2JhJGFjHOCeoCXjIt/dG1rd4CAdHRcaGd2b1dWe1JZcGRMWnJyZVtJcXhvXFtbWV10fnRoWWJbZ2ZuY2lNV2ZRPV5lXF11ZV90b1pZVG9kWWRxeVpoXV9mbWdpa2lwd32ObWmChH55boB8fIF/gnp1goGNk4RwgItud32Ae3uIk4l/aHt9anN7coZ7c3d+f4x6eIR9fGyMjYSbnZaMgIBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZaGc46KiXZwbIWDh3V5iXiJfJOIen5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/doCCfo2aiIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goeAcmB2gX9yZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jIOHeIh2g4l7eXRvioGRgoZzf35/lImJem9uam6CgXRuXWdkcnBQWnpNW29cT1xyb2RVS3N4aVdZWVphcYB0YF1dYGdkaGlmTlpoTUBgY1tgdmFcdGxYV1N0YVpkb3JXal5iaGtnbWxocHd8k2xohIp8fHB/fnuBf4J6d4B/iouDcXuIb3F3g397io2Pg2p+e213eHaKd3x4gIKHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkYCAfoqDcHJxY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8eIaTg3OQi4dxcm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHSFeoGSkIN6l4+WkIiCiHuIiGt4eX50Z3poa395c2l6doCDfWhgd4d+a2p0aHuAaXaBjJGUfnp+fnB8dnx0f2JWeH5zc4uFgn2EcYeKeHlxcYSDjoB/en59do+Gg3ZpcWltiIFxb11nYXFtSWR1S11tVVRac25iUU90eGFSWFhdYW+Cc1thXWhlZWRrZFFbcElDY2BbY3BeXHZnVVZVd15bZW5oVmteYWlnZW5uaHB3epNtaYiMeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfoqMk39wgHt3eXqBi3SDeH+BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPgGdwbl9kXFhlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdXuGjoB6kol/dHN0fneAcHF/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZN+eXxuiHeCkoyFdZeLko+HhYZ7f4RsdHZ+bWd2ZG17dW1pd3Z/f3xhYniFemh1dWJ9e2d1ho6NlXt0gHZxgHt9bYBaV3V/cHaFiH+Bem2JhnR6bHaBhIV/fH55fHSLgn5zaHRlbouDbHNaaV50ZEdtbUtaYVdWVndtYlBSdHZYUFZYXmFxhG9cYGNtZGReb2NVXnJGQmVfXWZoXVt6YlFVXHVbWmdrYVZqX2BuZWZrcWhwdniOdGuOjXV+dnh+d4GDgXtzfYOIh4NvcoB0cXV+hYKJjop7d4B4g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXpibm1cYltbYVZpc2NgW2dub2aHcWFxZlddY2x/fMrOh7mham1timxxhHF8g4l+e5GEeXhzeXV1e2psdmOEdZKCd29mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4pyhIuMiHOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fXx6XWV5gHdpdnhmgndndIeMjpR9codqb36BeW59XVlzf251gYt8gm9wioBxd2l4gIKAgnd+c3t1h317c2dzYW6LgWtyWGpedltHbWpMVlReU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWW5hWWRwR0BnXGBmXl1We15PVWRwWltqaF1XaGBecmZrZ3FncHN3hnhulYp0f3p4fnmDh4B1cn+GhY6DcHB7eHZ1eoaFh4yGenx/dIt+fYaEhId/fn59h398eHZ4eJGTn3+MfIttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9bXF1UZ3JkYFhkcXJmgXNia2VXW2Bqf3e+rnugtm5ic4Zoc3txeYGEe36Mfnd3cnZve3Zlam9gh3WOgXNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZk3KBeXaEb4KDkYh0lomNiIWJhX14dHFuaHhfamxfbXZqZ2preXd6dlpnfXx4ZXJ+boR0ZXWFjYaWf3CMZ2t6hHVudWJdcX1sdX2MfIJmdod9bnFpdn95f4Bzfm17fIJ7eXFmbGJtiX1sbldqX3ZVSmlqTlFOaE1Ye2hhTlV2a0xRVFVfZnWDZl5hcWhnYldpXVxsaEpEallhZFdZVXlZTVZtallda2RcWWVjXnRmbGRxZ3JwdYF4cJmFdn9+d398hYd9dXOCiICVg25zeXt6c3KFh4mIg3mBfnWPfnyEio6EgoR7fouDe3Z7d3eanZd6ioKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1hdW1xbU2RwZF5XYnJ1aXVwZWViV1xcaIBwb3KAc4lkZHh+aXR1c3KBg3eAhHl2c3Vua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF0fXN9e299fJGGeJp9iIaDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZZ4B2dWhwgXiCdmJ3hYt8lIFvjGpte4JxZ3NmYW56Z3N4i3x+YneDd2pscnZ7cXt6dH5nf3+AeXdvZGZiboV8bGtWaWJvUkpoak9LTm9HXntmYU1VdGNKTlNXYWp2fmVdZ3NpZmBWY1djcF1MS2pYY2FVVFVzVkxYdWRaXmtgXFpjZV92Z21icGlzb3J/dXSZgnd/gHd/f4aFen10goR+l4Vuc3R8enRxhIWPgYB6i3Z0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLem6Ec3mEfYGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAamtwgGdrYGh5eGpzdHNtg4B6f3x1dW56aGp5al9lbmiBdpCEZ2VYYndqfod7b2pwZ2ZdVVhvZ46od4F6fJGOeXZxf3B0d3qQgXmWdYaDgIWIdmpxdWdnbltsY11tcl9nYWp4aHttW26CcnRqb4F+endhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fWtrVWhhZVJKbGdPR1FrRWF4Z2FNU3FdSk1UWmVrdnplX21xaWRdVmBWbm5XS1NoV2VeWE5VbFRKXHlfW19rXV1bY2VgeWhsYG9vdW5weHV6mH13gIF6gICHhnp4eYJ+gZOEcnV0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKuff3qIiINrcoF5dYB/gXRuhm58gHOKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNoeneTgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp29+d4CLjntxcn5oenB7jn14kHKEfX9/hm5kdXJkZ2dcamFcb29cZ19tdWR6aF10gG9ya3J8fnV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtcn5qbFRoXVxUS3JiUEZWYUdid2dhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZlVEpcYldnWFlJV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhtcG52g5d5coGAfH+JjIZ+dXWGeYeMfXR2dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZXGHeXN8e3VyboVse35sj3picG9iZV1lVllZV2Nma19dXHKFaFhwblteWFpcbHtjcHd2bWJabHNzZ3R1b2yDeH6AeHdubnRkaXRlW2d1ZnZ2knlfXVJmZmqDgnR+YmRpXFRYXmJjj6RoeHSDhpB5bnB7aXlufIZ8dopzgXh8eH9oZHZsYGZfXmleXHNrWWVdb29iemVbd3xrbm5veHlzdWRzg5J+h4OJe3Zwcn5zYnhkXHBwYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm59ZWlUZ1hXU013X1FKWVhIYnVkYUlUbVNKTVpXaWxxe2JsbHNjYlpaW2F3XFNMZF1YaVNXSFlgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2DfoCBk4iEgXZziHSMhnRyd3aCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCZont6f4mUeGR1h3hzeHVrc25+a3h8cJFyXnBvYGdibFRaWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx/gHx2b25sZGlxY1trcmR1do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXJxhYSRdGxse25wcXt9fXKBeIBzenp6Y2V1aF1iWWBnWl52aFdiXW9oYXdgW3t2aWpybnhzcnVocYKVg4d+hHZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHJiYGtyfm1tdX9zcXhrcGFcZWxsemFnVGZUVlFQdVtRT1hRSGN0YmBGVWtQSVBaVWtranxlbW5xYltaWFlscVdSUGdXV2hTVEZZXE5IcnVYX2NtY1hgYGFdi2pjZG15eGtwaXV5hntrg31/hJp8goR5fIduj4Zxbnd6fXSCgnyLj4KCl3R3gpOFgZ+JdYGAgXR/gnGHgnVvopdze4aLhntld4pubXpuZndwemtzdnKMa150bmFnZWtSXVtVZ2Fsa1pccIxkT29uXVZYVWdpdGhidGVlXVltdG1vdXR4aoZ8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYZdY19jVFpgWWOVlWNucIOFinRraHxwZnR4dX1tenV2b3p+dV5lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpc3F0cHV2a22Ek4GJe4Vxc2dvfnFzb1RcZ2tmcXSBd3NjbXZWYnJsW19wZ35mbXd+c3Nza21gWmRqandfZ1RkVFVQVG1XUVZTT0dkc19hRVhpT0hXVFZtaGR8aWt3a2JXXVVbdGRTUldpUllmVFNIWlpQTXh2Wl9lbGlZYmBeXo5uYWZreXVub2l2dn9/bIOAfYeXe4CHgYl+a5OIcmd0gHt1gIJ9iI5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqWMcoGNi3Z3bXqMYGR7cGZ4cnhsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe4B3nHp5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CEX2JeZ1ZYX1dkm4hia3GBh314bGt5blx3c217anZ0b297gHJYaW1eWFxVYWJXZHBjU15haGFibFpgfmtma3N2b213d2xphYx/iXuIbXFmcX1uc25jWmFpaW90gnRzXmltU2VxZVVjb2N7ZHJ3fHdrcG1rYFlhZ2h0XWVWYVVSTlhlUk9cT09IZHBdY0ZZaU1JX0tYbWRfeGhufWRgVV9UXXVcVFNgZ09dYVVTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25odnR6g3KCg3qIjn58iYeNeW6QinRsc4J0f3+HhYaShJWPeX6Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjY2OjY6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3Itpbm5ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fri2JnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpOUlJSUlJWNiYqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2RkpGJh46KkJKSk4+Ojo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4uLi4uMjI2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fH19fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4mHhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2Eh4aFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYOFhYeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIeGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjYyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoeNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuKioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycnR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4OTo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXNydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYGBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/QkNDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAgIGBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgXZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODo4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APz0+QUA9Pj0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQT9AQEA/PUBAPENjREBAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oj49Pjw8R3tbPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREZIREA+PDs+QERFREBBRkJRZW5weXFFREREQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR1VlYX6FhYWAelRBQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0tKXnqAg4OBfIN+Y05shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3V2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tkf4F+g4F9hIJ7gIaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISUhLS2Z/fn2ChIOBgoSEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp8e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSEtHaoCCgoKDgoKDgoOEhomKi4yLiomKi4yJVDs4NjU2NzY2NjU1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVCREVmgoKCgYODg4OChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ozo6PDg5ODk3Nzc3OTo5ODg3ODU4ODtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3p7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTo9Q1OBg4OEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw7OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo/PkE/WYSDhIWFhYaHiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Ozw7PT9DQkBnhYSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz88QD5BQEVCTn6DhIWGhoaIiIiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw7PkA/QT5BQERESENqhYKFhYeIiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs8PTo/QD4/P0JDRkVMV36DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7ODw9Oz1BPT5AQkRGR1FvhIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB/f39VRUNFRUdHRUQ7P0E7PTw5Pz09QEJHRkBFR0VKUXeGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMS01NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CPkJCRlZNREtMSU5SeoaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSElIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0ZFREVMWFJMUlJQU1V6hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1JWWFZYV3eFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUU1ZXV1dZbYGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJRVVJVU1ZfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleXFZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0NAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNAT1BNUmR0dXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8+PmtRS2FFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V1dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQUNCXF1Pe05PT05LTE1PT1BMS0xXTklHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fn58fn19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX19gZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkNNUlBhV1JYUVBTU1JVW09PUVZQTUlDRj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1dnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVlWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OEducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZYWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd6ent8fX59fnx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1JRUE1NTkxKTEtMTk9PUU1PT01ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0dJSERJSkxMS0ZGRkQ/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LTE1NTExLTk5TZE5KTFJJSUlFQUlKTE1OS0dJRkJBQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkRFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVHREVFRkVHQ0NAPTw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQkFFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUM/PUVFQj5BQ0NDRUdISUdNUElGRkdLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVVJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0FAQUQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSkdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVRZYF9daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdBQkBDRDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlheW11kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5bWGFgYGBfaGVjYGRlZ2dqaGhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREJDSEU8QEVCRDw4Oj4+PDw9QkI8Pz5BQkZDRUJCSENDREVGRkdHSUZHS0hDSUhHSUdGREhLSUdLSU1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhLSEZGTEhISEpITUxMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVdZGBmZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBd3V1dXd2dXdzZ3Rya3Fya3J3b3dJSkxJS0dCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkhFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01NSkpNTE1OTk9MT1BSVVdWTk5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWFgY2RlYmRpY2Rpamd2i2xraWhtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN3dHV1d3Z1dXVlcXNrcHFqcnZwd0pMTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dHRkVKRkRHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BmYmFjaW5pY2loaG14dm1oaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JIRUJISUlISEtGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJGRkdEREtFRUpMTEpMTUdHTkpISktHS0pJS0tOTE1NTExJTE1MW3NiZHBebGxVTU5lc15nZnFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdWdxTUtyeXZrYmFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQkhIR0RFS0hHS01NSk1MRkpOSEpLSklLSkpJSkxNTk1NTUtOTU1bcm9vbnBwbGtOUFFsWE1pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3BwcnNwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJBQj0/QEVHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISk1JS0lKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtvbnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxLRk1LTFJSTEdNTUhOSklITkhKSkhITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altddGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWmtvYGVlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbnBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySUhGSkRFREZBQEFFRENHQkhKTEdGREdLTElFRkpOS0lPSUxbUUpGSEhLTUlISkpLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSFBLTE9LTFdNSUZFSElKSElLSExKSUZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNfWV9iW2BeW1RZWFpfXmRiYmFjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUpKSUlERktLS0ZGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRjYmRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVEVF1ZXlhfWF9bXVVYWFBdXVFLSldeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWE9SUlNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSUlERUFFQ0hGQUBGRUJWVUVcVF5TVmBYTlRVTlpbTUpLVWBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9RUllTXlxcXV5fYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRkpJSktOTExLTUtKSkdFSU5RUU5PT01OTU5IS0FEQUNERkRCQURFQUxIQ0xMUE9PTUZNRkZISkhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXl5hYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1HSEpIR05MUVFJTEpLS05NVU5PS0tMR0dLT1NTTlBPTk9PT0hLRmBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1XVV5ETFFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEdKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTExPSExSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFFLSVp4XVR4ZGhZUlNQdmd0bHBibmZrUnJOTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmd8ZXNzb3NzfH1wfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tIS1FPTU5KTldeWVVMUVNOWVlMU1NSTkxPSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpLTFR5cHVtdWJudlBkZUlldnFtd2+AamZ4eGlXclJpe21panp6fWx4en9wZ29YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTkpSdE5DQkVQUElLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21MS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3ZVS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltcW11dX2NaX2NjZWZkY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlVUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1RQTlVTTlBOTFFQS0pRUUtRTUpLT1FUUlFRU1JJSU1OT1FSUVFRVFZSWFdcV1NTUVFVVVZUWlFOU1FXVVRZVlRZVVNSVVNUVVhZWF5aX2FdXFtaXV1gY1xdYmJkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YU1BOVVFOUk5MU1BNTlVTTlFOTU5RU1BUUVNUVE5MTk9RVFRSUlFWV1VZWltZU1VSVFhXV1lbU09TVFdVVFlVVllUUlJXVVZYXFpbYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFNRUU9NT1NVTldRVFRVT05OUVRVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNVVVVWWVRXV1RSUlhWVltfW15gX1ZfXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTVBTUlVaVVNQUExQV1VRVlJTU1hNT1BRVFhVVVVTVVlYW15dXFtWUk9VVlVbW1ZRU1ZVVlhVU1haVFNRWVdXXF9bYF9gVmJcYGFeYGJfXGBdY2FjZ2llZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTk9XU05RUVBSVFJMUVRTWVtXVU9STlNYVVNSVFJSWk9RU1NWW1ZWVlRWWlhdXlxcXlZTTlRWVltbVVFTVFZYWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRnXlxlYGFgYWNkX2JfWVpfW1xbWVhZV1daW1phXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVRUWFhYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZdXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dSU1dTV1VWW11YW1lVWl5YX15ZXFlSV1JZWFlfWVlTVVVaWVlVV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZGJfZGFfYWBiYl9gXldZXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYXFVXV1paWlhZWlpXVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJhW2ZjaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZWUlNVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlleVldaW1tbW1tZWlhZX19gYGRjZGVlYmRaYmZjZ2ZlXmFiYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlZTVVRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fW19YWFxcXV1eW1pcV1pfYV5gZWRkZmZmYlljZmVoZ2ReY2BfZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1xaW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1fY2RfUllZUFdWV1hXV1ZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXV1eXmBcWlpZW19iX2JlZGVmZ2diWmRmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXFxdWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZWllZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRhX2NiYl1cW1tYWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtaW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7e3p6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7enp7enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJxb6nBvr6+vr7K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29sstDMzMzMzNvm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/gHl3d3d3d3d4eXl5enl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp5eXl/g4KCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd1dnd6e3h7eHd2dnh4eXl5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3p5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHt7fHt9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fHx9fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e359fXx9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdlZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyPi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiMi4iKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35/f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWDhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgoKDhIOCgoODg4KChISDg4OCg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGBgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgIGBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+HgoGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgpKMgoOEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgYKGhoOCgX5/kZmGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOCg4WIgn59fn2FnIyGhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODiYqAgH6Fin+Tj4SBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4KKioOIgoOFgISEgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg46JhoaLg3+AgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OEkIeBgoKCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYWIg4KCgoOCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoSCgoOEgoODhIKBgYGBgYODhIOEkZKRjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaHgoGChIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgoB+f4SEg4ODgoKAfX1/gICBf31+fn18fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX2AhISCg4ODgX59fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+gIODg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6enqAgIB+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foF+foCChIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgoCBg4SEgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgoODg4KCgoKCgX5+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHhoeHgH2AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAf4CBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4aHh4Z/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYCAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX99fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2Oj4qFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo6Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2Mi46Ni4qGhIWEhIODg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjouIiYeFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH5+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fH19fXx8e3x8e3t7fHt8fHx9fImKiIiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhYaHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGEgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39+fX18gICAgYB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fXx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5fHx8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn5/f4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9/fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l8fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYWDg4SBgYOBgoKBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgICAf4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fX18fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXRxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3p6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhIOEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4OEf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoODhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4B9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhIWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYWGhoWEg4WFg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fXx9fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhYaFhoeFhYaGhYSDhISDhIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISDhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGh4eGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFhIWFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWHhoeGhoWGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgn5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX5/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODfn5/gH9/gIN/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYF9fXx8fYB/fXyGg4aGhoaGhISChYKFgYGAf3+AgH5/gIJ9fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ+fX1/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1NXU1NTU1dTU1NTU1dXU0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3d3Nvc29vb29zb29vb29za09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3Nzc3qCgYGBgYGBgYGBgYGAj9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo4Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKyk1RUNDQ0RDQ0NEQ0NDP1zT09LS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDAvO0lISEhISEhISEhISENg0tPS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+PUhVVFRUVFVUVFRUVVVRatLT0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Pz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnKy8vLy8vLy8vLy8vMzMzT1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs7Q0s7P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9HRuKDQ0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz8/RnY/Es5aYurqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+qvJ+jqLLRkn1+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xm7/Hh5q01dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZq92qOYtdTTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGbwNehmLTT06+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7lqvYoZi009OjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wM+T06GZtdTNnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WepNmimbXXw5+g0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmL/XoZqz2bKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfL1rGDxda5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NHQw9TR0sLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEJEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t66pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tba8vb68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkJAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQUNCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8nOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdkamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW4s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+ubzBwcu+vcnEwMDKwLHBv7u4u766tbezuLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw5Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHCw7u5s7S6wb2/xsC5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6esr6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VcWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8Ojs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubezsrK0sri+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrIvsC4uLaytLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7vr+5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PDw7OkA9PDw7Pz5CQEE/Pjk1ODs8RkJDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Kyurq3t7W1vLOvtKu2urjAxMG6u7+9t7Kts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODs/QEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7KnprCkr661wbq1udXHtbO0q7K0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0FEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSppKWupaystLy3rLnZs7utta+vs7Wqp62so5yZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqSorq2sq6uvqq+pnpeepZ2epaakoaKfpqCir6usrbWyt6a11JnBt7KxsbC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjn52gn6Kgoq+vrLCxqqiqssmWpsiwrq2ssKegn6Kgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk56ZqJ2unqeenKGenpqakpmenKGioKCdoaSunZ+prKOel4V7jJGxlIi1r6iqrKqloJ6ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6Owpp+enZ2XmJWZnpuco5+fnaOmzqObpaCJdoNzYmhrfYeDobOurqmrp6CenqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq6jnauntrGsoq+moaOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnp+hnZyYm5+gm6Cfn5eisNGrlI6IgWJxjmxiXWB4oLGvp6Sko6CepaumnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMW+ubS5urS7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amVaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSnLrOooZuY4dfV4eIj4+csKqhmp2cn5+Zl5iYkoyPl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsfKx86/yNHMx8XGxMG7w8C+vr61vbOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ2frqalsarFxszOzb+wwailqKytqqGdo5+cnZqpk5nGwpVrXGqXW1Rxm7CzraSfnaCbmJeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfNzcnSzM7TzMXHycrBxcvGyMjFvsKys8jEy8rKzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJqfz7SBWlx9kWuQrq6lnZ2doaWhnpqVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtsDKv9HMy8/Fyce/w8LIzszP0M/NysjOuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXCxbG2qKKlpqGiq7WlpdKoalp1laOtrZyVmKCcm6Gin5ydmpaKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqq52mrrioq7fX1NXZ2dHO0MC8zMm3v6+nq6mjpLG1sa/NoVpkn62ropmWmJqbnaGdmpyek35yZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc7Py9DNzsvOzsfKz9DKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1ta2lra6+tLDA2NLX2tzWz83LxNPQwsGxqq2uq6Wysba+zJdakKKclpOXnJ6fn52UlpiUiWteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFx8rKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLe4vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcWhYWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K4y9XW2drb2MzNz8jW1cXDt7G1qqOtrLi3yc2XiJqOjZiVkJSSkZaWlpCMfGZiYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwcfAx83Hw8vKy8/Hw8PQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69us3Nx9DV1dna29jQys/Q0tTJxLm9vq+nt6q9uc7JoZSOjpePhoOEhIJ+hYV/dGBcXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKwL3By8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5tWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNz8/M1dDW2djZ0MzTzs/QysO3xsC1tbuwv7bSs5GMk5iHeoCFhoB2eHVycV9aW11gYGJkZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a+vrXBvcO6vMa7wrmzvMXEwcK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bDxMjO0svKysfNzs/SydHG1tTW2M7M0MfMyMrEvcnBsbS5trm0u5ONiouFeYCGhoB+hHx0dWRcXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0srO0urW+sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0MzOyMvJy8rLxdHO09DPx8nFycTDv7zPvLK3u7i1tJuOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/uLi1sKusp56iqqeeq6yzramrqbSttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKexs7S7vKuttaWutq66sbCquLCtu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLMw8bCxdDHzsLEx8DGxsTEy8LKy8HDwMa/uLq6ybazubqzsamRiY+QfHl+ioZ6e4WBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKSmn6qttbaxvbmvt6+orre0tLy4tLyvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK6psqWnqK2lqLessLK3ubq7sbu9vr7Ev7XBwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdHQzcTIurrMwszAvMq4v8XAu8u5wsXEuLvBu7e1u8O2s7W2qa2Ug4mNgXx+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWnpayfnZukpqyyr7a3p7Csp6q0qrS6sba1rba5sa+6ubG3pJ+jn6axp6uouaqkp6iop7KtoKemn5ukpayen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5ucKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFVZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTs7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6UnaGmurars7O7s8TQycvDx7m4ycLNwLnLubzHu7XHurXCxLG7w7mzrba9uKyvsamehIeHgn16dnRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrq6S0ua23sKyyta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUWF1JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MjJwce8vMXEz7+7ybq6wbq0xLezvr+xv8G5qqaxtrOkrK2jiYaHgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaahpZygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5qXnZ2cnKyhq6ajpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4ws3Ix8HGuMLByM+4wsa/tby8tcG5tby+s7i8t6ajrbato6uoln2EhYB5cHJ0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhYWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqqmr7Crm6Ojt6qgn66otqmmp62wo7ewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGwsK6vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNycbDxL7HucnNtMPEw7C+vri+v7i9vbe3ubOko623oaKan4eAfXlyam1ydHBoaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqeenJ+ln6qvpp+io7aooKGiqLShpaekr6Wwray1nqCdlZSpoaKUrLGxnqKjnZ2Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6kp623u7zBxbqxubXFysvBxMfHyLfHxbTEwciuubrAusC+v7u5tLayoqOtsZmbg5SIgHdvZGJnaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdWU1RSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraWko6KjoZuqq6WZnqWxqaCgnaWrnqehnqytqaiuraKhopSXo5uckKqosJufop+el5mTip6RjZKTlZCYmJOboaKcpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVlJHUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg2OTg5ODk7OUA5e7W0rbS7sq+rsa2dp6evubmzwMi6tcCvxsnNu8LLzci3y7+zwMbLr7S7xbm/xcG6u7O2saCmq6mXkoGMhHx1ampqbGhqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRh5CRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6vmZuqs5+lpp+jo6GUk5uWlpKpqq2anJ+hoJqUkIyZjouQjJKNlpWQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Sut6WjpKKsraqoq66yt7K9tbOrr5iDc3NoW1hYUlVSRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pp6+tm6morLe2rLzKu7a/rMzHxrnCz9DItca9ub7Fy7Ovu8O6wMLAur6vtKuhpamml4+AgXd4b25pbm5ucGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn5yUpaGekpCTkpOVp6ulmpmZnZ2WjYyMlIaIjYOQi5KVkaCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynoKOstKqup7C0sLm1wLGtsauQfXFyYlZUVk5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjEtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvRzLO4ur7AxMa0srW7sLi5wbq9ra+prKiqpZWYgmtnbW5yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqYiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmqSnnJWVl5uQkoeUjoyBi42AkIqSkpKhmp+ilZSYmJWipZmMmKSmqKahoLSyp7O3oZ2it6ypraSysqa1u7Wrq7GjiHhxbF1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdLSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8a4u8TKzce1r7u/t7rDsrGstKGqssC2t6mmp6+pqpmQn3lfYGdzcXZxam5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYOOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgoqAiZifop6Qk5iWhI6Ck35+dImOepCHk5CQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimpbChsK6csLuqqa+qmYF2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oqO0qKWmqKOmpaamprOnpbTBuK+0sMrFuLrBz8a/tK68w66wxrCrpaqUoau8tKyrm6Oop6WRjppvV1dgaGdpaGluY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyPhYZzioSWgXmCeoWUnZSDlo6Qj4OGfZJ4cm+FjX6JgZGNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKiel62zoqatmKyrmKe0oqmto5J9cm1fW05TUlZMRFRKUE1MRk5PSUZMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDIw7i0vs/AurCwt8SqrcispaCbhZift6qjo5KhoJ+ckYmQZlFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hYd+ioiVio2QkZaLhIqIlISajIGEkpuWnpyUpKOoqaWknpuwqqGkpJClqpahqZyipqiIdGxlXltIUVFSTUlVTVNJTEtPSUhHSk5MTVRLUVFPRkhDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwry3qLrJubaoqba3rLS/qaCZkYGNl66dnpWJm5KUj4uFhmJNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYuMknh6gHuAdnNykndndYSEhIR7lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiMp6SToJ+Wnp6kf3JnYFxcSlZPUkdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMzcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3u7OrnZ6tqqqzsKOck5CXhJKhlJqIgJSGi4WBgn1iS0lJSEdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc3yJjIeAbHlxfXBtdY9xaHGAfo5wQ4qEgoOFf3d3eouFfYt6dX6Oko+YipKam6OWmZyanZ6inZaNiqWbj56XjpaYj3ZubGViWldXVFFKU1VUT1BOUVZLTktOT0pRTkhOT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefn5agpq+srqunqbGvsau8uKy7vrmzraibsaetnJCWnaaqpaKZm5GHlH2Mk5CSfXmHeIJ+e3t8YktGR0ZBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJkphuaHh+gmxpY2x5hZCShmtzbHxucnuGaG1wf3ONiYSFen1+e3ZvdHOFgnmBd3B8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlVVU1hVTU5ITkpNTktDSE5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNDU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaWYno6FjJaiopmZkpWNdZB9g4mPjHp2fHJ7dnJ2eWRPRUdEQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuk42Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllZTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK6esp+muq6rsrDCsbvDx5uWj5WZi42GeoWRmZWOkY2RiHOIhHeKj4t+dXZ0dnVtd3FnVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGhmYmlucm1wg3Vpb1h1cI6aknZsf3t9bXFtcIB6c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOBfo96cXBva15aXF1bWVhgX1NOW1pZWExISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnqSnnq+VpbWprbGuwbK7wcaXkIyUkIGJfW6CkZKJhIuIj4d2g4Vul4qMf3l6e3F7c3xqbl5KUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRU1VVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhZmEm5xhhqqfnYqCkI16doh+iYiOc4qXj4N7XGRxdHp7d4psZ2lheW+Fj4J6boF3dIR6cHR5d2tuaV13h32HfIiHj4CLk5eDjYWNh31xhH+EfHV3e32JdW9yc2VmX1taXVNbZl5XUVVYXFZHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XI14ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlIh6hXZrgIySg36LhI+NeYOCdKKGjX9/goFzg4B8a3lsU1dMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGZneH5uhYaChXGEhUdrgHdyeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JycWpaXFxbY2NYZ2VcVVBQV1lQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY3NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6FdHx+ioWIkY+WmJKXoJ2soaa4r7O9s5eNkouYi310cH+Jk399jIOTlX2Gf4eliImBg4iGeYiLf3WGeV9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWOk4mBkHtyg52fkZx+doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fXh8cWljXVpZXWlcYWZfWk9MTlhSUUlQS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHeAjZR9f5KGk5Z/ioCSm46EgYKMi4KKjoSAioBscGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyMoZ6YhJKFgo+hn5OYkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfH5+f3FfXGJeWWZqXGxrXlhLSE9TUU5NTEZJUENETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hZOSeoCRiZGSfYqFmZKRg4CAi42JhpGHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48ODUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3t9em9mXltfXmBmY2BnZ1xSRUtLUE9JSkxGRk1DR01GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWJ3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYuOjXuKho+QjoKDgImMioWThYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0FBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytqqOLlpiFpqagopeCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqJmoqTipV6e36DfGVfZltkYF1iY15mZl9bT0RKSFRPRkhMRktIRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyPi4p6iIKHkY6DhYCLhYWIkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA3Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcjEq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiKevqqSUdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmBgXNXYGJUZWBgYl9fZV9bVEpERUxWUUlKSkRKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aGf4CNe7+7o7yCtJSTjpuPhIiPk4mJeYeAjJOMh4WBjn+BiY+Gf4WIhYqHkXp5bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVDOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyra7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopGlsa2lraunpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gHlpVmFfV2ljaWRVW2NZVlRJSEdMUUdESUpBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RaVlp3anB/j4SBjoVuenN4iGK4oZqjiZWUlpOUk42Ql5KHh3uHgY2VioCEgYp6fIuHhn2KgoGLhJV9eHp1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ysy7vcC7t7W8vLe+tbqyxmB1sqWxmp6rvqqlqKuqpKKytaCrqJ6Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgH1wXmBgXFZgXWdlUlhhVlJWSUVGTktAPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbHNyc4jVwLWZoI2VmZqRjpeRlpaOhod9h4ONlot/g3+DeHuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsC7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn54alxfW1hdYFhhYlFbYFNRS0NCRUZFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBg3N7ioOFe4p0goqGlX9ze3lsbXV8aXNlaWxpZmpqaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trHEx7awubGwu6yzsaert6yNtqeenKeaTpuejY6glpGnmKWVipOTiJGJj5GRnZuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Nw9HSuK/EvMS6pre7xKKAbWJbW1xYX1dYZFlPXFdOUUNCSUVDSTtBRD5BSD8/Qjg7RD5AST00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2JjIWOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcGxq7WmpbmnrK6hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIqDk5WYl5SbkZuYmZmenquspKehrKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcd21kW2BcVV5RXVpPT1RQTkg+QUdCQ0Y8QUI/RkU+QD86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM1OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgHB3c2xzfHx3fHOCeHFrgHJyaW9xenlze77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoainqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSjoiClIlrlaKNmYSBhn6Rg4OTl62LlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNytjW0cqtxMPMiXFuYV5dV1JYUltPSkdKSUpAOzo7RUNEPENEPkhDP0NCOzs5PDlHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYRveHBtdX92eH10hnx5bId2dW59doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifpKSmsqSls6CipZ6hqaCisZyHn5KSk5GLjouGg4+EfpycjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxbm2xc3R0NHPy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtHV0bWNbV1FUUFhVRUZKSUVFPTo3OkBBQjpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioOIfXmFl5eJj4OHhYd6hHlxenuEhnV6ho6NnXqMcH1vcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoa2copqan6afn6yZjJqMkZOOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjpWMhnubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPyMPRytTW2NfY19Xb19PZ29bP29rR1sjVzJN2eGdmWVhPUlNcR0JFSUk+QT49ODo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx9hJiOh4t+hoeAd4J5bnt7h4J0epKejaF2j3aDdHWBfXSAhG+CkIJvkoR1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+YkYOJj5eal5emnJigl5+TkpejnZmrlpGRi46Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY6Ki4J8oYiQi7yhmJOXmZyopqWtnqe1vsC/uMfJzc7FzcrR1tXU2dXX29TX2drb19va2djO3MaFeHdlZ2NeU1ZWVExLRE1EOz09PDk6PD45PkE3Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdW2h0enlsiY2Sd3Z6inx+gH+AfYV7foKRioWGeoWIe3V9dW19fYZ+dH+SnpGfg5J8hn14j355i4pvg5uAdJmGfYKKhXx+kXuQqY6Qw6C9jJyknH6KhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZuTlJGXjYyVn52UoZSSjo6QjH6Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOg4aEgKSGiou4mJ2RlJaip6CdnZ2jrra6tKu/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3Z1aWhkVV9aUk9OSENMQz09Pjk5Ozo5OTw9NkA+Pj09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFzeIp7e399gHyIe317i4eDfnWDhnpzenRtgX6EfXeGm6GbnpSSgIyHf5iHgJySboiphXqgi3yRj4OJhJx+mpGJjaOin5Ckr6CLkYuGi4GShldyrYufrJyPg5ickJCOXIOikYKNn5OVjIeIjJKTjJSVlZCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZeZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKykvMHHzcfGz8zPzM/Xz9HUrtbV2NrY2trX1tnZnW16cmVlW1tWUlVWQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dXd2dISDhX1/kqain6ail4qdkJSXioqnl3KKso2Ep5KEmZSFmoyjlqCYk4mbnqKTqbCgkZWQjo6IlYtujbeEmsTIspyipZudmJaRspBkpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEf4+LmYiOkKqXl6SjiJmelZqJj4aXmIqFj42Cf4aPpYiNk6mal5OXmaGYn5mTnJqisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoBwfGVgW1xcTUlTWEFCR0Q7QT44Mzc7PDo4PTY0Ojo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6KXp5+lpJaVrqKDkbiVkbOajaGhjKWbsKOknZiRp5aomayvpJiVlpWQi5iZl6HAjqPJuaubo6atmZKbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpekoYidmpKPipCKl5uJi5aOh32MmJ6JkJCcmpqTmJiflKCdlJ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2Lpwd3NaXlNeVE9ISU1FQkNENT46Nzc6Pzw8Nz00MzY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen6CfHiGi4mGhJKnu6yosr2vpa2zs6ijobCsipq1naK4pZWtpJeprbinpaOfmqmXqaOvsKqamZyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlo2LjZeYk52ZtJeVq52LnJSSjpGSjJmbipKekIuJlZ+hjZSNmJqdkpyYnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9OgbnhmWlhRXFBORUM+PENBQjg/ODg1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSj+Lin6Bc4aHfYKJdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyos62tvaubu6Sorbm4q6emoqKkoqmvsrGrnZykmJuYl56ipqWSpLqvqcC8ra2yuaWlqH6IhpytvLCDjIyLkIOOg5GOeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJukrJSWj5ScnZOhnZuYn6GUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNbRzcTKhnJwX1lXXVlMSkFLQEZHPkE/Qjs6NT5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yLiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuYs7e6ssCupcGkq7C8vauuq6OjnqerrrSwqpygqpyhm5afsLWni6O6u7bBvKypnLKlpKmUhY6pxMOkgouPh4iEhpWUjXqEjZGPkaKMjJSSj4mXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6CYpJ+aoJuglJiepaOmpqSvrqXAxMOuqLe1ycK+ts+yxL/EvLPRycjCtHJ2allWWWhQTEhCTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5h5SQgXKAfI1/eIeCgpB6jqGWqJqamLq9x8jJwdLJysLNvcKzrby+qLq/vbvDt6zCqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktrewrJOxraytl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+UjI+NlaOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKjmpWfoZy1pZCel6WjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8y/ua/Es7u+writwsPCwJdqd2BWVVpZSUpMSUZEREhDQkFETDo0REg5OzQ8N0UuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS9y7zDwba3vK2zwLq8rq+ooKmotq2uqbK3m56toqehnqu3uKqlsL/Fsb25tKiqtbSur5eWpayooJGOkrLFp5WOfZKVfYiSmZCqmZiTk4+TlpOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpZllmKOfs6WWoZasrKmnm56ml5iWl5WgpKiln7arqrq7w7Sls7XLwLiqtqyyu7muqLi6vbiBaWxYVVNTTURKUk1LP0FIRURISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZSbl6KXqZaNkIOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzExMbGzs7O0sq+u7axuru7vs+1w724ubeysbWzuLOrppyrrLmqqaevr5ijr6SnpKW1wLCsrLS/w7rAurSoubW5s6+Wpa2urqSLk5WhjXTBmn2XmYSPlpqMsZWbmpWSk5qapaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVZewn6+cnqSUr66rpZqgpZSTmJiNnKCnopm0qaqzu7u7qrCyx7+5pqyrrbKyo6GysrSkbmtjWlhNT0pET09QUTtIS0lHSUNDPjpLVD9BOj1FTTA3NTQ0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZiHi6iWjoiThZ+HhJ2Xjp2hm6Oktci1qca5wsPHysnIzM3Gvruzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisur+orLa3vsK/vrm0s8Syub2so6+1rLmmiJuXppt2v5+EmZ2Ok5mai66XoZycl5WboKGonqefmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpKiRkZmbh5Scop6Wsaepq7m2vbOyrr65t6Cjp6ilppycrampi2BjXl5QSUtGR01JVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVUV04/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZuhn7uvmZSfjJOrm5GSk4mrjYein4ykrZSjo7bGvrTAusLCx8jFws3Iwb65sq+4tMDCyrXFssG8tbqqqa2tsKOjmKq0u6appquqnamvp6Oqq768qK29tLi+x7y3trjBsr7BtKm1t6u+pY+imJKin7yfiZqgmZeeno+3n6mcpaKbnKGaqKSzoZudppyoqZ6ZlY+Um4uXiYykopSdop6hta+lpJOvq5mrqp2do6OokJSUn4KPnp6blamkoaGztLq1rai1srOenKKlmpeVmaqhnnVeWl1cSUdFRk1QSE1FR0dDU0xKQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ5xwYkdFp5ekn57DrZuXpZiaqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHw7/Nxru9ubKwuLO/wsi1v7C8t7m3paSrrK2hoZqqqsWipKmrpp6sr6uiqai/uKetvrG4tse2tbm4wLK/wre1s7SvvqOXo5aUm5SuoJCho6Wjo5+QvaSpnqirnZ2gm6WfvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZr6admaqcn42YlJ6EjaCam5KlpJqYq7G1saqlqq2snJigoJKOkJWonpRmYFhfXE5IR0pOS0hFRElBPlFJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6bVJGPEt4ZWJWTKKao5yexayhn6yenq6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+yse1uLW0sLOzt8HFtr6xuLW4tJ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsb25trbEsrS4ur+zxMG4uK6ztbWjnaWVkZShrqCZop6oqKujmsKtqZ6srZubnZmmoL2hnaSYq6uspqKZjZqfkp+Jjld/lp+loaC4qqaTmLWjn7Ggnpqulp2NmJOdgY6fl5WOoqOWkKausqupoaGlpZWVnZiLj5GSpJ6JX2JYYl9LSEpKTkVFQUdLPj1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0op2yqJOrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTJvK+wtq2wtK+/xLS5sbC5tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22p7e7vq+3xK20s8PAs8e0u7ers7atqqKmlpWUpKyin5+aqKuwr6+7sqagqaiZmZeToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ6aop6ntKamjJizm6OumZ2brJCek5WTmX+RoZWPjZ+hk4umrK+lpqGcoJ6SkpqThYuRjZydf19kWmZkSklMSlJCQ0BJSDs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSrs6GktKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLW/yMK0q7Wor7isv8Ozt66strmlmKqyq6qYn6aXrbu0m6ewm62grrSyp6u5s6i6tLiyucCqt7LEvrXGqL+vrba1qaesoZeXkaaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqain5uam5aXqJ+gmKGer7KipoyXrpikqpeZnqSRmoyTl5mFlZ6UjI+cnZOLqKmqoaegmJ6VjI6Zj4GFlYiUnndiZ1xqaUxPTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaKmv6eor7ChqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMXAuqm2pKy7rMDCt7eprLG6oZStsa2ylqWnkaq5qZ+msJ2roLC0s6qptratvK2zs7m3rLiww7u+v6bDq7C3rqmrq6eemJmroaKhkZehsa+zrLC5mpypoJmWkpemobappaOisLG0q7OorJ+boKCbnaWcopedo7Owmp+Pk6Wan6iak6KelJeIk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjZlpZ2tgbG1XUFFaVEFCRVRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G7vr60qK6xtp6Wq66orpemqI6nu5+krLOerKKxsLOsqra0tb6usLG1rLC1ssG7xberva+xuKytqqOxpp6lqp+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaGZm6i1qZaZkZKemZ2fnY+rnpaXhJSWip2YnJOJjZaXmpempaKgnZWVl5N/j5SFe46SgouVZGtxZ29xXkZZZlZEQk1YRFo5SEI2PlxRaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pa2qpq+ut6qvtbunprG3xbext73BwrW0usS+zMa5wsC6vrnDt8C5sbSrqbq2u7m+tKmtsLWYmKesqqybq6uPq76erK6yo6ufsK2zrq62srm4qq6usai1r7S8vcqzqra1sbSwr6ehs6CbqK2gppaWmpqyoq2gpa+XoaSampKOo6aos6mhprOsqralr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkIqUkp6ZpaKhoJiWkZOVeYqPhXuMioKJkWptd211e2FFYGtZSUhaWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7W6pKy0t8m7tLq6v7+0s7fDwMzIvMO8t76+v7e+vLG8rae6ube2wraqrLC3lJanrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4s6muq7Knt6+2tMTGtqm2tqywramno7agoKexoaSUnJmVsZ6nnKCqjqminpuWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJSCkZWPnZuXlpWIlo+Ymqeco6CSlpGQlXWEkId7hIGDi4psb3Z0e35cS2VtXEtOY1w/YntHSThHZ1dlXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2vq6ilsbO0q7eyt6CrtbnJua7Au8K4s7G1wsPOxcDBvbS9v7+6vryyxKepubC2tr+8rquysZugp7GtpqWvpZ2ytayrsbKtqqm0u6y1s7WttKyqq6isqbmtsrHIwLilurCpra2lqK6wpqWjr6SpnJ2cm6+ao6Oio5GsnqOgn6Kqpqa5pKy1tqWrrKitr7auo56jqaqboJqakqSzmY6JjYeQoaCUjJScn5KRg42Skp2al5WTh5eSlZmnm5+ejJKRjZB2fY6FfHt7homIcHJxfXx9XFNkb15OWWZcRkSWW0c7Tm1YYltMYGJOVlZVV1RZZ11RUkxjWlpUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKztIPzNCSFMsPpBrO0dIj5yqq6KqsaSppbO0sbW1srKiq669zLquwLrHsbSttMLD0cXGvsCzvsHCu763u8SnrLess7i8wK+rsayfo6etqqiksKSqsqqvrLCvsK6rs7ynt7GyqbOpq6Wlo626rKqyw7q2rbupqKitqaiypamko66qqKKenKOtlaWemJ6ZrJ2ip6miraakrau4srKhqaKgrK+xrJ6gp6ipmaSZmY+gppeGhI6Ki56fjoqMlZuOjYSGkJSfnJSXlIaWlJOXpJucnIqSkI2Jfn6HhXx3foWEhXJxcIh1a19aYG5jUXNxXEs7hHxGP1d0WGFaTmNbTlZWVVdRXGJfU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraiiq7Ocqqqwtq25tq+rpquqvcm7sL23wq+xrLPEw87Pw7+/tMDCw7q/s8jDq663rbK4v76yra2rpKeqsKmnqLGltK6qsK6tsrG0rLS8pbizrayup6ufo56wt6uqrbu3pbe2pKqnrKuqraGpp6axsqSnpaGhrJeqoZWboKaepKKqpK2jn6exuK6uo6aim6qrrqmdoqWkpJmgmpaPmJySgYKPiIWcn4uKjouYjY+KgouXo5uRkJqLk5KRk6OZm5qKjouLfIaBgYN6dH+CgHxydYukh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVVUT1xdYVVLTWhWVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6uxmKuqrbastrKspqyqqbzAwLi4s7u1prKvxMnL0b/Bu7m/vsG4wbnAxK2xtbGzur+9srCtrKqrp7aqpq2vqrmwqLGyrrKtt6q3t6e0t6uspKmqnKOes7OoqKS0taC3rqCqqKuoq6egq6ypubapqqmpoqqgrZuSqqGdoKSipqOqnp2ntK+opqqio5ilp6eqnKOko6CamKCRjo+YjX6HjIeDnZ2GhIqKjY2Pi4KFlKKajYyZkJKRj5OflpiWjIuDf3SHgX5/eHSCfnl2foCHnY9vcWdncXhcYXOIa09emVZIbXhVZFZRY09NVVRUUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6xoaarrpqspa2wtLWwrKawqqm6vrvAsK65rqG3r8jHyNHAvr27vMK9usPAvr+usrKxtby7wbGxsquzqKS0qKWts7O5saOut7Kwsruruq+qrrasqp6qrJ+joLatqKGfsLOitaqeqKeqo6qhoqytqL2vrK6soqiooKyZkLCimKKgp6eep5uZqrGqo6CtoqGUo6Ojp5iaqaWYmJiejoqHlId9jIaEg6OWhIGBi4aNjJCDg5OgloiQnJCTkI2RnJSXj4qFhnh0gX98dXh5f3pzc3lnf4akdWleZGuAdGeIjH1TWHBeSnhzU2VTUV5NTVJaZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJCPsqGkpqykp6Stp7WzsaulsKequL7AvK+nuaqmr7DJx8jRwry/vrm+v7zJusC4sK+0sbq7t8Cys7usuKyitKenrLK2ubOoqL22rra+sL2nray1rK2cqa+koKWtq6ecnquzpbSom6unqaOpnqSpqKm9rLSvrZ2qpKGunJuzo5WknKWln6Sbmqmrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo6CgIedj4V+fYuHkI2PhH+TmpOFkqGMlJGLkZuSlYeJfn9ye3p+fGh4fHp0b3B7Z4R4hIhkYWdhcYR6bWd4XV1VQFd6bVRhUFJYS0xOcnVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLKaoKCppqWhq6W4s7OmqrGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXCtbOytbK8t7m9ta25tr+tobOnq6uwtbi1rJ++vaqzwbS8oa+ztaqrn62wo5ylqKqjnpulsaewoJ+rqaihqZykqKGtu6iusK2gq6Okr5+fraaXn5uho5yfnJqkqqObm6WklpeVn6KWm5emrIyekZGRi4KKgICOgHuZk42IfH6Lho+Ni4qDkpiRhpOiiZKSh5Caj5OAiHx5bH52eXhje3pxb29xdmeAc2qDZ2RnX2xyjWxhaW9gbz5aeGtVXk9RUUpJTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5mtmqCYp6Sjn6ikuLCvo6+wqqu4wbmzrZ+4r6uotLrIy8i/tsK+sLS9t8S2w7GuubKzv7S7vrepubi9q6S0qKmqsa66saucvL2lsMG1tqKvt7Wmp6exs6CepKWnoaWZn6yoqZ6gqq+noKaYo6mgsbmfo7CvoayhraScpqepmpqbn6SVnJ2anqmml5ygqZOZlJiek5mWoaqRmoiOj4Z9h36CjX18oIyMiHiCi4SJi4uFh5Oaj4iVnoiRlYKMl4yRfYV7c3B9cXR0YHl4aG5wcG5ofXFje21pZWJeZIV+X1pyanFLSn9oWFpOUExKSFBSUElOXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4wWFY1KJeep5qdlqygoKGkorirsqW0tKqpucO1s62ft62urbC1xsjBt77BubG0vLa/u76vqr2ws76xvMK5qbu6t6eotamoq7Gts7Gom764pq28t7KfsbiwqKWnr7GboaSgpKSgl5uvp6Gfo6ivoaChlKSkorewoaawq5+so6+YnKqlqZ6Xmp6lk5udmp2mq5qdnaaXlpiUnY6Tl6KoopCIi4+FeoR+hIp6jpaJjYZ4gYeDiIuNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RrbGtoZ4JtZXJra2VoWWFzf15aa3VpWUd9XVtYT09KSEhSVUYyOl9ebFBEWFZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV9ULDKWo6KYlZ2pnqWho6G4qrChu7mmrL3Es7CuorWvra2vtMTEvbO+urexs7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKqzrK6yo53Ctqapt7ern7K7qaalqK+rmaKnnKWmlJihsqaZnqWpqZyhoJSln6S5qKSnraaepaGok5+poqGhmZudoZKbnZegoqucm5qilpOVlpuOk5Ojp6SPiIqOhnmEfIWGfZyMiYqGeICDh4iIkYWVk5KMkJWTjY6Ue4KXjot3fntsdXJtbHNieXVoZ2lnZW2EZ2doZGZoaV5mYmlmWmV6YmBRc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzhiTScynqSkko6lppyenp6kta2oqrq3p6zDwLevrKG1rqeur7fBwL2xwbewr7K2tbi3tayqvLSvsrG9wLeuvLyxpZ+2rKamtaqrr6GgxKyqp7G0q6y0up6oqauxpZieqp6opZKapq6jmJ6lqqGbop2XoJ2ntqavqq6hoZ2doZWgpp+ioJmbmpySmp6Vpp6topiXn5aUjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiXt+hIiGhJCElpWPj5CRkJGNknuDlY6Gc399Z3lwa2psZ3Vza2JnZGJ0f2FkZWZlaWliZ29ZXlhdbWRgTWhXW2BWSUdIS0xSWD45YGxpR0JVU11bSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETj1CPDAqPEA7QTwtNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZEclNZykoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGjtqyrrqm5vry7rcCyr6+utq+zubKnq7mxr66ztru2sLm+rKWetaugobGlq6+fpcShs6WvsrC3rbWerK6srqKZnaeqpZ+VnKemoJmko6mcmqCclZyerbCmuaetoqGamp6YnqOapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4F0goKKmIWHfImIhISKjIiShZOckpKPkJGWjpB/gY2Ng2+Bf2Z5bmhramdxcmtbaGNhcn9gZGdqbmtmamZkbFxsbXZxYVRiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSWRCJzSTopyPjrGdm5ShmqmysJ+5wLagtMG7vbmxprawqa6lt7m3uKy7r62rq7eqtLmtpbK1sa+psbe2sbO2u6epn7apnZ+qo6qtnarCma+lr7G2taysnrGtr6qim52krKmclZynpJ6aqaOllZqgnZGco6uqqbqfpqSgmJqanaGPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkIBmiIBodmlmWF1pdG5OUGpjZnGCZl5kZm5raV1dXomQhYhoT0tEOEVUZ15KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9iPCsvjaSah5Wxm52ToJyqraujvcWvqbfCuL28rae2saarpLi0srOwua6qp6y0pbC1oqe4trWop6y2s660rrOiqZ+0q56ipZynqJuuvZWop7C0uK2upKitqqumoZ+coaionJehpqacnKeonZKeoJiQn6iqo7Svo6KjnJaYmJejiKGPkpqGoYiUnqF/pX+nrJ6Uk52TiINyeIyOg4egdYiNaZeJZn5zeaBviIeDfox8f6Ggn5l/e4eedIiOdpuKbIeCg25pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtralqIcG15codph4RaXkZOPkZeTUVSVlZRUFJXVGddTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFVYDcvKI2ml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0pqeos7Gtsqiunqqhs6mgpKSaoqSdsLeVpaant72mrKepqqunpqKgmaCopJqZp6OkmZylqpaTo5yUlKSmpqG2pKOgo5iVk5iTnIiukJiViamLmKOchrGApK2elJqflXmC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauweWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFdPWGFPVk5GVFtYUVBSi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7a0qKimtqWoua+csrK2qqWkp7KvrrGmq56npLKkoqGfl5yhoLGulZ+joLS6oqqooKytpKKdm5qiqqCYm6mgn5ieqKiRnKeblJ6ip6OhsKOen6OWlpKYkpmFsGtqi42qfmeFloetZXGenZWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/aXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2mAknh6aqg4Sq9bV1RtY1pMT1hfXFdWO06IT1ZWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5ZMzEbkqKVgq2npZ6jpKqxt620vb6wt8WyuLrDp6mwrK+pqbGvpLG6sKSlr7OjqbmpnrOysKOloaqtsKyvpqifo6KxnKOdmJWYnZ6vqJecop+0s6Gqm6GsrJ+empego6qdmZ6loZyaoaekkJ2jm5ihoKyfpqagmp+hlZWRlpGahrWbtXmFqZm1mXeHs5u3f5OWl6uWfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgX+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW1jcX2GgGGdL1KibltUa2dgTEtcY1hcWkI+sHdXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjhhVTUwHJeflIizpqahrqmos6yqu7bCsLzCrbi3wqusra+up66zqqKvvKuip7Wto6u2paWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqY+pp6mbnZaYoKapm5+do5+coKOlo5Wbn5ianqOrm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5amkI2cjKR6jYaigaWCeqx5j51Wr3uJfp9quVq5d4aDfaaCk3yYeqp5jp2Qe7FtjoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZZZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8PDg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlcSltQX2ZUN0c6YVA3MiWcopOZsaippbOqpbSnpLy3wbG6wLK2tb20tqeysaOxs6agr7apm6i6rqOwsqGytLGhpJ6ep6mxqbSppZyenqyXmZmXl5aYoqyem5eprbCoo5+OrKKnlp2YnKGmopiioaOhm6Kip5ueoJ6VmZumoZymlJubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uYpY2PnI2ifo+fpH6wdYOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRT5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1Qcmg5J1dpXEFOVF9lUDVHPWFNNjIuop2Rpa+spam6rKa1pae2u7yyu7+4t7W7u7SmtbSisrKjoKywpZinuq6ksrGdtLiqoKWdoaqksqisqqWanZupn5aVmJmSk6OqoZiTp6uwpaKWkqyfpZKUoZykp6CVm6enopqjn66aoZ6ekJacop6cpZSdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4SamaKKkpmLon6Rl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbF9wbVZVTS5lYmhTWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6CdlKC4sZizwayosqeqsrq4tLm+ubiztr62pri0oLWtoKCprKCVp7asqLGxq620pJupn6CoorWnpqqkmZ6VpaKUlJyakpajp5uUkKetr6WhlZipn6KPkaKaqaahlZqmqZ2dpJ6tnaGcoI2Un5ueoJiYnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqCiipeWiKOBkIeUqnt/i515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFUX2JMN0ZJX0MxPTeinJqav6yYs8Kuq62oprSwuLG2v7m6s7K4vKq7taCxpZ+mp6eflKqxqbCqtq2qr6GYoaCmpKS6oqOroZebkaOglZWfm5WYoKCQjoypsK+mnZebp6afjZKkmKisqJWYqaien6CkraOhnqGOlaGYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5OcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP005ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV45MUE4pZqbnbuinLG/rq2rq6e3qbivtcG1vbKwu7irwbaqq6Gdp6SinZKrq6e2o7Oorqqhl5yooKWruZ2jrZyWmZClo5aOnqGcmJ6fkZSVq7avp5mUm6ypl4yUppqlraORl6uypKCeqKuwmaGikJmil6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z91ZabuHmJkZiNl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXpeaWFkZmJteW9ZW1lDQUByP0NHKjVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaeZn6K8opexwrCtqaqssai5r7fFsbuzr7ywrsGyraajn6ShnZyRqqWqsqS1p62koJaaq5mnrLmdo66ZlaGQpqCTjZyjnpiempCWk6+5sKuVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipI6nopShmpyXlaSYj7CgkpWpn4WQmbaAkZGNuJV4gpObtXdubG5zb3mPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn95fYhng3lteWKLrHB0hX9YW6dpRGRZVGZfY11jUWZmcW11Qk1QTUQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aWs8K0q6qorauqu6+xxq+1tK+4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoKOdrKS+p6Gql5WckaKbko+hqKGTnpeSmJSytbasmJ2kpKKLkpKmnKWrnZappaacm6Kpp6ajqKGSrJ6Xop6Xl5idno+wqZOcp6KPa35pnKh5iXN+m451emWHe76/wLpukoJxlYVfcmpaXZqJYWSHjpVrYH+VY22cdmKUa4CalZRlXl9jcZuJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01EVlxmYUxbV2ZjXk9abXZqclJPREVNPEhJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS6tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKbpq2pvqiopZWUm5agmpOYpamnkZ6Qj5icsLK+rJunnaeiiZORqpuopJycrJ+jmpujp6yin6qimq6blaaglpWdn52XsaWZoqiZnJGenKOlmqejmp2ampqQloJobn1xdpGXlJGDibSpjYWYlY6KjJiWh5OVioOTk5CIjZGUmZOZl5qgoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ1ioB7iWpzgXSDdWR3fXZrcHpsX2Jbb2dMWFllal9XWXB6b21mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eso6S3rKCZl5agl62qpsGfq6SWkpyXnpiUlKKenqOokpCZqKeyw6+aq52qno+Xlqmeq5yeoa2YoZudoqWvpaGkqJ6rmJemnZmaoZ6enLChnaKnlZiUmZSho5akn5ihjpaUi4qNj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIaFmpGHhomVjpuXjpCYnqOWmZKQnI1+jWWhs66EiYR3e4+Kfnd5em9neZCBgIlrdYF5iHJpc395dYOHgWp0Y3hmX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvqyrrbGyoKqmsq2irLOwxrCrraSzr7yktJygp6KhnZmXqKappqSms7WelZWdmZmwpq6+oKuikZGempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKWrlJ+fnaCqrqiko6uhrJufn6CYpZ6cn5ywpJmfqJOYmZ2SpZqZqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOa2iMl5Gid2tqi5iin5hzbG56hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEo0PUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvrLKwq6Wora6wp66tsL2xqqilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Wo5CjsKa2uaWuo4+PmqGZk5KboJiZppZ7payiqLPDt6Wip6+fnpWeo56jnaSqqJKfoZ6gqq+pqaOqnqebpp6noKyWoZylsaSYnKuWoZ+bk6WYn6uZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2NnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx1kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJaiuMO0sK+/qamUo6+psK+tprK1r6ump6Wxq6CrmJuioJybqqeinauipamlpbSknqOTpq6suLSnr6KSkZmdpZKRoKGXm6Cdh6arpKutv7+xoamuqZeSn56imaOkqqOToKGenayup6umo6Gln6SknK2pkaSbqa2qnJ2rna2il5iml6KkmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4OAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK5zfJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX1rgI1fcGpvZmBfeGRccWhqY2ZgUlRTV15KT0Q1QUhFRDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwb+/tLSwt5iekaOqqa20q6ayra2spKymsKqhp5uappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTkJ+kl52no56upKuwqL/Gs6ipsa6Wkp6copehqqqflaGenZyurqapqJumpqOgqpKss5aloqqqnqSnp6KxopObp5uhm5WUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihi5GLnH2reoiSjqCAeq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbI+OZG1zdW9gZm1kX29oam5mY1dTXGBaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PFxrKzoJ2jjqOioq2utq+psaepq6iuq6umoqOdmqOWn6arn6KmoKmoop+esKyYm5eoqK+sqKepnpeVmqOikpShrJqdpqOvrKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqrGnqamaqqijoaqar7GiqKyvppmmq6qrsqSTmKSmm5WShaRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJiGgaN9qX6BlIauXnyoVZ2ikoF6o5+AfMOvxYxzr7SzuXFiqa/CdGiMjJeOgWyYkW5seHh3bmtmZGRxcGZ7aWNcVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dXAoZmrqKGvop+wtbCvqa2jqKeqq6uppKafm6WfnaanpqSdrJqjrKGkn6+inZuTqqS2sK6gqZucl5Wmo5CaoqefoKacsaajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6erqaKtmaqooaGpobOtoqqzsqKcqqiwsLellJekqJmdknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUp6iQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntvlZB9bnl0fHptW2VqcnFmgWpeYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXF1cWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6spaKdsrmsqqGmm6imq6yppqCmpJiro5+urJ2moayan6mlnae1n6KXk6irtrKsm6acoJaQpa2SmpymoqCqpq2ho6epsLTCsbKqraiUiZidpZuipK+ml6GVmZylpamZrpyrpqSeq6O2rKCxubCenK+otLS0ppaYqaSboY+CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSnfq+Em4OehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJGOh3J5coN9cFxsbndyaoBuWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWmr66uqaadpaWao6ehsq6iqaeyoJmppJSitaKjlZeiqrW5pJyjnaOTkKGymZ6bpqSgoq+tnKSoorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOnmK2hrKKkl66lu6yht7eunp61s7mytKiZn7GipZ+Hj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijKaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkIh2e3iNgWxod2l4c25+dFxkZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYqtv7+8u7Wel6ikrbahopmVo6mnrqmrmaWhnqahoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdppypkpSXrqCgnqajnKectZmhqqO1q8KvqaupooyEj5yioKajlpqanJibmKajpZeppqygo5uspr2slL6wrZ+jsLS7rLWonaqzpamZe6iRfXywd4qBpKWInG2yb6CHrXuhj4OolpmArImFroWglKihopeFn4CZlYB7kn6rgJ2Zloqqd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIKTi5OJeHmBln5qbH1ifXRtf3lgZ2VwbmdnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq6hkaqppZaJmo+usKymoKibrZiZj62ioZ2loZmknK2Xn6iltqi/rqSpo5+LgI6bm5+mnpKUmZqUmpqko6OYp6qqoaOeqai+pZfDrKujoqyzu6yvqKK1saqsmXavfpCKnIWHfbqtiZhksIxlla19oY+Dp5abga2KhLCFppmjoaKRhaBbbGqBs2B/rXt7goCxbGdtmZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5mJlY+TlHl3jJt8Y3N8YYN4c398YWlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYF9gYWJfX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+0sbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6sm5WuqKKOiJuOr6yop6Ooma6Tmo+pmqGepZ6Zo6KlmJ6iqbKovK+lqJ6djnyLm5ahoJmQkpqbkZmXqJ6fl6espaSkoqSpu56gxqelqaKstbeur6ihva+urpeBqZKjro6bgIakl5iQgYC4w7qDjp2ThKeYnYKsioKviaecmqWrkX7VvcKqYqO/vXx+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWajZmOlJp3f4+ZeGF8eWOMZ3iBe2BrZWtqYVBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnqebmqCoopidoKysqbitp6Oal5N7iJmSppuTj5GYmI+YlKiZnpaop56ppqGiq7ueqcWjoK+jq7S1q7Gror2qsLCcdHaqpLeFZYmfcGesj4qPbW93pJCaoIF1sJqWcJCNcpaoo5uYrqRybG1sZYp4bm2CmXGAemlwaWaJlpWXcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hlpWWjpSbeoWNk3RkhndnjGp4fnhkbGNmbGJLZVdKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srOqqaKunqSzqpiSvbHDx720qZ6/q6yjoKarn7qjpK2sraWOlq2qkIyFlZetn6Wqop+ko6CRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4SWjqaXjpGRmJONl5Wmk52Wp6GZsKadoqy5oLDCqKSzpqyxsquvram6pbC5l4uhqaW1nImWopiGqZqQlJ2TqrOZm6OsobSXo6GeoaKcoaShlaynjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJKflJWUnoCFkotwZ452bol3dXx5aWtkZG9jVWBYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t66uorCkrZ+gtrGQjqrEu8S5t6mhpZ2bpZ2wqKO2p52ptaankZiso4uIiY+cp5aso6GaqJ6ek5Wjl6iaqZmUpqGjj5qnmaG0uaeqmJqQjXyBlIyhlIqVkZWQj5KXpI6dmKeem7Wjnaast6ivwq6jt6ewr7Guqqu1u6KxvpmSpqSmtaKSnaaejamfjZKfo6ywm6GksqqxmaWhnaSrnp6dnJesnpKaopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyQjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkop9jJaSkpeRoJGalJ6ChpaFeHGUcniJfnF7fmluZF9waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKejsLOsrqOpp62gqLWqkI+co7K6raqroaKZepyisKSlsamWm7imo5SYqZyOhoqJm6KQrp6klqigoZKXmZuui6qWj6iZqIyYqI6euLajpZibjYl5gZSMm5OKlZGUkI2RlqGLnJynnZ64o3+Dr7WisK90pL6jsqB4e6GstL2Wd66loIqAqX5kXGJ2n46knYOXfm6UtJyjqK+spGWfoJR0epqXcYCZqZhsgKOoimWcpZuQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjHF5opaWZHeXhoB2l2iCiYJueX5qcGVfdm9ra2dcZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamtpKetpJKWqrSusaWZqaaql3OLna+fqKunk5a4oKCPnKSekH6IiJqejauapJWnop6Ol5GehXSuj4ilmqiRlqOIm7mzp6CZmYuJdXaTjZaTipORkJSMj5OfjZmepZibspaAjJu1nbSMko+9p6F+p6J7pLC5go6Pp5+Ei4WPsamvjImWopl5gYushpydoqirqYiVh5l3pZt6h5yBl6eCgXudsnqKhp+XmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHuZgp2ahJh9kYiBgphpjIyEanh6cHBnZHdtaWxqXGRpaWVyW1xIVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3FvK+glaWntJ2Pg5yrnKaioI2Qvp6ZjZ+aoZB8hY6ZmIisnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Jt4WNsIOysIWpjqeYjZ18qI9ye3ebjqaWaJWkebSLn5+nqZOZwoJ/q4iYoXGegJqlfZeFlbKAoX2gk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFhmRlxRTDJFNDZNYWM3JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNnaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqaummpSeoqSqopWkqbWir3+gppylnp2JlL2Zk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGGgqCNrLGIpI6rmoyafqJ1gJiTa4GrdE2reIeNnZKbqamCqqt+hKF7eqdpnn+SbGeXhpi2iZ5+bmBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZ2lpYmJkYWRkYmFiYGNkY2FiamtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuuopmWn6Clq6ufnK20oaeRoJ+fppuZjZi0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDoqiAhquvhqV6i32Emn2icHKSh5Z7nox5bYebi5mRnKmcj4edfIKic3amZp5+d6RemHt9k3Oibpi3tLpzk4eBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtrcnJkW2ddYUtEPUQ1UUFacTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBge2RJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6Srm5qxrKqSl6CYoKSZmpSeq5uLiJJ4i4VwgJaNio+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di4+PiY6TnoGVm5+coJ+LiXecmKKNoHKii4ipiJynkZeprICujH16oJl5o5N4gHOXiIycfZafhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZe4CKp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd4YV5kVmFBUEVPN1ZCUm40SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhY3xpRUI5TlteWWRmWGZnbW1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKudpZuap5+drJmdsKeqnZaimaGfmZaWoKOZhomNaYiAcXuXiIyWloSSlJiPeoqElqOciZWPhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYiZoKSpoql9sK2koriXdqOzoqN/iJR4nXqrmn6ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmZfa2h1e2JjX1BdVlxUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19cUVDPFVeYlplalZoaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OomqKLmqmbnKeSoKujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYuKinyEbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmClp6Ri6Kefqdod21+mXOgc3F8nYWYb5OCrn2jg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXB/hGtnZmNtdXdmX2FRWmVQUWFIV0lUX1dTW2RqW2VRRkNLTEpLQkpFOFBAUE1YU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9pYmFoZXxkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCyo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl46IhXtwfYRofY+Dk5qBd5GOj4lwf4ePk5JsmJR8iZGSo5WDjqqak5KLhYl5hHeIgG6BnoZ3gJKFh5iglXmSoqOZoImzoaK2i3qsp6SupXCpgJuRhoGdk32kgKKZhphxnoSira6Jl4uAjKSNlYOvopV2tba2yaJ0lIuCnmGel6lteZWGoJt1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2t7arS1tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanVqeIdma2didHRwbVVcUlhnT1JoSVVMWFJVXGdrblVnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXt7VFFPbV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKciK+nhWY/lKGzrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5OOiIN5anmGZYOMfpafeXWPiIyCaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeoB9i3lwj6CGeYGUhoiVnpR+k6WnnJaWhGdueJxsomR8caV4nJhwaKeCmI18pHqgloOWcp92gImUlY+5bpCKomJ9maKWiW5zaqtrdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJucqJaX1tjoW5diYxwe390cmSlbniiZGanaJdyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RVlVVZVlTbUlYT1xIWGhoc2pZa1ZQUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZ2JxZ1BraGhrbG9oZGdfXV1dYGpiaWl2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsLGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjot7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZaZgnyIhZamkIGiq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpGppp2JpniWnH6liZaMspmekYOvl5+leZeJeql0po+Emm6looyShIyDvG59pa+Ch4aHlJedoX2me3KolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGb2+gnpGUYX+ri6p3gX+Op593n32FpJWdoGmah3WsZp6tjLZzdr6Mo5NZg6aNq2B1cXNve3VwYmp+bmhsU1VZVWBgXGpMXFFcSV1sbXZgW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ5ZGRuc2RSbGdnb2xyaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnIGAnqSWqqqeqKeuo5iIgZaqmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYR9l5NzdYZykYNuf4uShoaUj317goWXpY1/paWNgI2JhJR1g4eSb2yLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4GccY+GeZKMhYB7cqeMcX19epeWm4SNeHt+foiUlZOLd5GZoKGEe36Ja4yFW3l5c3lwaW5+kopyf3SBj5STcYWDgmWNf1+BgIx3dnSUdW97b2+JboSGXndpeI5mgoOGj6qcf3R9l2qJiG9/dXyEdW1sZoxzd3uXd4Raald5j2htd3Jxb3d4b11shm1pZ1ZZXldcZGtkVWFUXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmBdX+Af4F5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuamni6Gim6akmaSdq6Kfg4OWqpGdoIiZppqomIOBm4t+lpSHjoqJjHKCfI99fo+EepeOdHKEcJWGe32Si4aGkIV4foCGmKOMe6ehi4WPj4SVgoaOmHdxhKqFjZGcj4eenYaKmqifoKqDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTcH+phnB9lXFqb3yBn4t/ko6LaG5dhIyMnJygj3OWjIhxdGuCdnSAWXJuhpGCfn6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFyg3dfco2CipColodnjY+DbneLgm+Di3duZGZjeYJ6lVpbaWZtdlt6eHd0bXNygmZcbYpra2JZWF1ZWGtxW15gWV5dZXJ9enNvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B/cIaKhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKqxoZCjoZqfnpiemaiioX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKZh4R+koOEhoqBeoCEi5qfj4KmoId4jZeIlYuLnJeEg3qsgZCXmZOJnZyGh6Gqn6Gio4uIk5udo5mWqqKop6GTnImYkHx5j4+FqH5+kpGSk5yxpZqUnZCNsZKYhKaMjJacoIqRnIOJkoprfI52d2WChpCKfYmdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJiIuRp5GEh46Ig4yQi3uFiYeNf3VqgYN7eZlpcWhgc4pwfXp3dm92c4FcXm+HZ25fXllaXFJncVVjW1thbGh0e3xybnBjamlof3tteH5waG9wbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ16f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SHbXiBgHKAh36Ik4RtbH56l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcYqPhZKRi5yRfY16qYONkZeVjpyWhYWbpp+imp2Gg5KamZmQmaagpp6ekJeCk4t4fYiPhaZ8fI+QkYWYqqCck5yPjaqNkYCejYmUm6CDj5d/h46DcHiGcXRhfoSPhnWMmICDj4KGhH6FhJVueXZ1k6OMjoabhYWOdYCMfn1yc3yJhHt5jY+Fk6iQh4SPgoOJiYh1hIaGiXptan1/em1oa2xmXnl+Z3x7dnR1dXp3XGBwfW11YGNaW15RZm1TZVpdYWtpdXp+cGxsY2pqZ4B/a3J/a2pzbnhug3luhoB2goB9hXZygo2Hfnt6fH97gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfkpGWl4uan56denecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf3CLioyShqChioWMfKeQh4+SlpOWknaMo6ChnZaaf4GQmpmTjZqioqSbmJGcf4+GeoGFj4ihgH6MjY98l6SgoJKZkJCmjI+BnJKKlJicfpOTfoeOgXZ0gnB2YH2AjodyipZ8iIxxjH6ChYWPaXhyeY2Zk5CAmH+JjHOCiH19cXp8jIV7e5KOhJemlIyGkXyEhYaEdICBhYV4ZHF6fnh5cGtqZl59c2h8dXVzfHN/al5gdHZwd2RjWF1eUmpoVGRYXmFoanZ4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfYF0doKMhn98eoCBfX+PanKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWlnI6QmI+GnKCam3t1o5+Nl3+MoYqImpV4e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOmlYSSipWXkpF2kJ2hoZiUmHp/jpiXj5eanaSemZOUnHuRh4R4hpeOnn6Cio6Mc5einqCSmI6PooyLg5iZhJOWmn+YjXyJjYF3cn5ue2SAfIuGcIaTgJCCa4eDgYCJhWZ2b32Ik5mOfpR5jIl9gIh9fHKAeYuGeoWSioyZo5eDhIx3h4OCgXV5f4aDc153d3xzfXdma2NgfmlqdnN0dX1xfGNjYXNudXJtYVlfXVprZFJiV19gaWx1eYZwYmpjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGpiY3VWg2lwbmB4Z2xhanZwZXh7eXBfcWyFhZCdrpimqJ6NjZeHhZ+Slpd8dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYh0fX6Kf36YhJaTloyjoJd+cYd7k5GKpo+MjoqSoJGDkY+Tl5CKgI6XoJqSkJJ0gI2SlImdnZ6nmZiOlZh1j5CLbYaZkJp7h4iQiW+XnZqik5WKjZ6MhoGTnYCTk5aHmol8ioqBenJ6a3VsfH+Lfm6FkoOUeG+ChH5+i4Blc2p9gZeYhYCOdJGJhHqIfnZ4gX6HgX2EjoaNlaWReYWCdIiGfH9yc3+FgWxfeXR4cHtuYW5iZHthbm92c3d3c3NhdmBvbHVub11bXl1dal1PXVdiYWhtc3qJa19pZWpjaHeIbWZsaGlsZ4B8endvj4dzgIOEfXSBhol6g316gYR9fI5yeYt5eG5sh2toX2lyY4docW9ldmdtbGF6aGp8e3dwYXdti4GZmqqgpKidioqRhoqdipSXfHasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGgISEc3qAhnqPkYeRkZuSpJqTgXyBfI2KkqOIjYqNl5qNhZGYk5WOiIiLkp2TkIyNboSQj5GJnpmioZeXiZeScIubhWeHmo+Ue4mFkIpwlpqUoZKSiIuZjIJ/kZ99ko+TjJqPe4qFh3RzdmtxbnZ8i3RuhpGOknF0gHyBgoh8ZXFten6blH6FinWRi4F0iHlugH6BiH2FjYqGjpaqjnuIfX6KhXd9b25/g4FiZ3dzdG56YV1vYGp0XnBqenh4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/iGVdaWhnYmdxjW5kaWdlaWeAend1b46Ec4GBg3x1goiFeIV8d4OFeoCKd3+Le3tyeYNqa19waHN/a3FubXFnb2tle2Juf3l3cGt2d4l/o5iiqKGmm4iMioGPnIaSm3SAqZSRjYagjJWTkH9ze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhYiUmI+Wi4uMjYydio6QhG6Ji4+RipyWoZyYloaYiWyGpYVnh56Lkn+MhIyBd5OYkZ2RkIiJlI1+fpCZfJGNkI6akn2LgINvdnBsbW9we4Zpc4OOmIpwd4B1gomDeWdzb3aCm499ioV7lZJ6d4l0cIp8h417i4eFio+cpIl8hHaBin93d21qf4B/XHFycW9vd1ldb2Bval5vaXx6cG1tam13YHBva3FtWVhgYWFtV1FTWWVmYnVwhIJiXWttZGNma5JtYGZmX2drgXRxcnCLgHR/goB5doCLgHmGf3eHhnaDhXuHjIB7dop/anFifGKFfG9wbHRqaG5sdndfcX54e3R1c3+CfqWVmq2fp5aFjIN+lpSCjp50ip+TkoWKmoyVjYt6cnd0gnByhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeYB2coJ5gqCCkYGSkZebkZl3kHqCjJKkmpOOiJSYkoOGlpiLk4uIjo+InoSQinxzi4WIj4icmZ+blpWAlIBph56JaIehiJOFkYSKcYORl4+ajo+Mi4+Nd3uTkXuOi42Sl418iHyBa3dqbmtsbXp/Ynl+jpaBdnqBd4ONfXpodW11iJaMf4mHe5SRcnuFcHeNe4uNe4l+hI6Rn5+GfX14gYp8dm9oa3+Ad153b21rcHJVXW5hcWFfbW55cGdwZmZzdWhxbGF3ZV1WZWBgclNQTltlZFx4cIh8XlxocWJiZWaRaV9nZFtnb35va3Fzin12fYWAdXZ/jHl7hoB4iINzhoV+jIyEfHmVeGZxaoNfh35vb2t6YGltdH90X3N8eIZ3c3OFfHmhkJqxnKWOgop/gpmIf4qcfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKnJucm5aUeo53aYqTiW2JpYaTiZiDhmOMkZiNlImWi42Ji3B6lYl8jomLk5GKeoV8f218ZXNva2x6eVyAeY+OgHt9fn+Gjnt6aXVrdIyQioOGhn2WjWx/gHCCjYCOiX6Ee4ORlpubjH13eIKPeHJrZW59gWtpdG9naHNsU15vZHBaX2xyd2Zra2JneHNvcWRfd2BhVmtfXnVPTUtgZWNceXGKdFxbZXZgYWVljmNgZmJYaXJzbWtxdot8dHmGgnZ3fotzf4Z+eol/comHgZGKiH1+mXZlc258ZYd/bnBrgFprbnh5cmB2enuNdnJ2inZ5n4ybr5ugkIKFeIiUfnuInIaEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+ic2t1g3WEoYSRbpWPlJ+UmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mPkHaLd3CIiox+jKWFkoqdhYZei5SXiY6IjouKhIlsfJeCfYiGipGPhnaFfn5rfWN4dGpveHNYiHqRh4V6f3+AhYx+emZ0aoGLj4uEhICMmIZsgndviZKDkYV/gnuBkZeUm5F1dHiGjHVycGVzd4Bgc2xvYWh1ZlJgcGdrVV9udHlhcmNgaX1xcm5bY3JhY1duWlx3TExMY2VhXXZzim1bXGR4XmBkZoRfY2NeWWlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiYiVhox/f5hzaHVxeWyLe250cIBXcHl2eXFkdniGjGh2gIlxgJ2Imaeco5KEfHCMlHd4iZyDhJ+NjnyVjYCZh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsc4B2ipqIjGmXj46clJKBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12h39xhoOKiJqkhJWNn4SJYYOVj4WIhomMh4CHaH2Uf32ChYmOj4Jxhn9/cndndnJpdHdsWox9koKFfYCDgISKgnZidW2KgpGMg3+Ak5J+boNteoiRiJOFfYJ+gZOUkZiKb3J6jIV0a29pcHZ+XnNoblxpdV9SZHFoZlNfcHZ0YG9gXWiCcXJqV2dpY2lYbVdbdExKTGVmXmFyc4VoW1xleV5eZGd6YWRfXVlrbmVuanR3in5zcoF+e3Z6h3SFg3x/h3d2ioWPmIGNgnuTdmx3dnl4knVud3p9WHmFcX9uZnh2kYJkdoaFcYqWhpmhm6KKhnNvkotydo2afImZiIl7n3+EmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2Im5GLhntoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6SlIKJdYSIeIWBjJWeoIeWkKB/iGF/k4eDh4OJjX9/gmZ9kYB+f4KMj5B/bYN8gnRrbXd1dHd2a2ONgY5/hH98hH+FiH9wYHRyhn2QjoN9gJKKenGEZ3uFjIiNhHyFf4GVkJKUhW9weYt/dGxtaWp3emFnaWlYa3VaUmlyaWJQYnJ4bGJlXlpqg25zYlxnX2VtX25UWm9OR05mZFxmbnKAa1pbY3NfXGNsd2RlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gIh2eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3OBbWh6c5RzZ3OHfHKSkYSan5ughoZ1dZR+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSjIdyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAinaGfYuanpqHlY+dgYlmfZOCfoSDiYlygX1mfox8eX9/h4uPfWmAfYN2Zm95eHN3c2xrjoWKgYqAeIKBhYSBa19zeXt+jouGfIKQgX5zgml6hImMhoV5hH2CmY2RjX5ubXuIfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXl1Zb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW15tY1pib3dkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIGFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Fn5igmYSIbn2Mdml3l45+gImClJeJeY+Wb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkYyFbmuFkpF6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJONg39vf4R3hXqHnZqVjJSRlYWIcHuSgnyCg4iDboF3aICEeHJ/gIOKh3xlfX6EdmNwc4BpeXBvdZmNhoOKfHZ4gIV6g2tccn9zgomGin6HinuJcoJucoWIj4aGc4R6gpqNjoV5bm9+hH92emRmaHtvXlh2WlhwbE5XcXNmYEtsd3RhXVxaWXR9c29XZ11manJgb05XaFI/WGZeWnBraHpxW1pZa2VaY3F5X2hcXmVsaGVraXF3f4hvbH9+gHVvgnuAgn+Cf3aBhYiXiXGCjXF7hnx6eYOTjHVqeX5rb350f31vcnt6k3BvgX54Z5KLg6GZnJGChWaGg29neZWIfX6EgZiJgXyNjGh4cmtsZl9gb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYiOjXaClYx+ko2Mf21shY2MdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R+boB2eIV7iJ6SjZGTk46Lh397koZ3foOMgmt/cmiAfnhtfHyCioN3YXmEgXFkcWh+bnVxdYKbi4B/hYBzdX6Bc4FvXG5/dXmLhIt7iIF9iXh6cm2JhJGFjHOCeoCXjIuAdW1rdoCAdXRbZ2d1bldWe1JZcGRLWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2ZvZGpNV2ZRPl5lXF11ZWB1cFpZVG5kWWRxeVpoXV9mbWdpa2lwd32ObWmChH55boB8fIF/gnp1goGNk4RwgItud32Ae3uHkol/aHt9anN7coV6c3d+fox6eIR9fGuMjYSbnZaMgYBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZWFc46KiXZwbIWDh3V5iXiJfJOIen5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/d4GCfo6biIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goeAcmB3gX5xZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jYOHeIh2g4l6eHNvi4GRgodzf35/lImKe29uam2BgXRtXGZkcnBQWnpNW29cT1tyb2RVS3N4aVdZWVphcYB0YF1dYGdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkb3JXal5iaGtnbWxocHd8k2xohIp8fHB/fnuBf4J6d4B/iouDcXuIb3F3g397iYyPg2p+e213eHaKd3x4gIGHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkYCAfoqDcHJwY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8eIaSgnOQi4dxcm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHWGeoGTkYR6l4+WkIiCiHuIiGt4eX50Z3poa395c2l6doCDfWhgd4d9amp0aHuAaXaBjJGUfnp+fnB8dnx0f2JWeH5zc4uFgn2EcYeKd3hxcYSDjoB/en59do+GhHdqcWlsh4Fxb1xmYXFtSWR1S11tVVNZcm5iUU90eGFSWFhdYW+Cc1thXWhlZWRrZFBbcElDY2BbY3BeXXdoVVZVdl1bZW5oVmteYWlnZW5uaHB3epNtaYiMeX1ye355goGBfHV8g4iGg3B3hHJtd4KCfomLk39wgHt3eXqBi3SDeH6BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPf2dvbl9kXFhlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdXuGjX96kol/dHN0fneAcHF/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZN+eXxuiXeCko2FdZeLko+HhYZ7f4RsdHZ+bWd2ZG17dW1pd3Z/f3xhYniGemh1dWJ9e2d1ho6NlXt0gHZxgHt9bYBaV3V/cHaFiH+Aem2JhnR5bHaBhIV/fH55fHSLgn50aHRlboqDbHNZaF5zZEdtbUtaYVdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZGReb2NUXXJGQmVfXWZnXVt7YlFVXHVbW2drYVZqX2BuZWZrcWhwdniOdGuOjXV+dnh+d4GDgXtzfYOIh4NvcoB0cXV+hYGJjYp7d4B4g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXpibmxbYltbYVZpc2NgW2dub2aHcWFxZlddY2x/fMrOh7mham1timxxhHF8g4l+epCEeXhzeXV1e2psdmOEdZKCd29mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4lyhIuNiXOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fXx6XWV5gHhpdnhmgndndIeMjpR9codqb36BeW99Xllzf251gYt8gm9wioBxd2l4gIKAgnh+c3t1h317c2dzYW6LgWtxV2lddltHbWpMVlReU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGNwR0BnXGBlXlxWe15OVmVwWVtqaF1XaGBecmZrZ3FncHN3hnhulYp0f3p4fnmDh4B1cX+GhY6DcHB7eHZ1eoaFh4yGenx/dIt+fYaEhId/fn59h398eHZ4eJGTn3+MfYttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9bXF1UZ3JkYFhkcXJmgXNia2VXW2Bqf3e+rnugtm5ic4Zoc3txeYGEen2Lfnd3cnZve3Zlam9gh3WOgXNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZk3KBeXaEb4KDk4l0loqOiIWJhX14dHFuaHhfamxfbXZqZ2preXd6dlpnfXx4ZXN+boR0ZXWFjYaWf3CMZ2t6hHVudWJdcX1sdX2Me4Jmdod9bnFpdn95f4Bzfm17fIJ7eXFmbGJtiX1sbVVpX3ZVSmlqTlFOaE1Ye2hhTlV2a0xRVFVfZnWDZl5gcWhnYldpXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRmbGRxZ3JwdYF4cJmFdn9+d398hYd9dXKCiICVg25zeXt6c3KFh4mIg3mBfnWPfnyEio6EgoN6fouDe3Z7d3eanZd6iYKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1hdW1xbU2RwZF5XYnJ1aXVwZWViV1xcaIBwb3KAc4lkZHh+aXR1c3KBg3eAg3l2c3Vua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF0fXN9e299fJKHeJp9iIaDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCdmJ3hYt8lIFvjGpte4JxZ3NmYW56Z3N4i3x+YneDd2pscnZ7cXt6dH5nf3+AeXdvZGZiboV7bGpVaGJvUkpoak9LTm9HXXtmYU1VdGNKTlNXYWp2fmVdZ3NpZmBWY1dicF1MS2pYY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21icGlzb3J+dXSZgnd/gHd/f4aFenx0goR+l4VucnR8enRxhIWPgYB6i3Z0kH98gZWOgIWEfH6Mhnt+gHZ7o6WKeYiFhGt1fHp1g4CLem6Ec3mEfYGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAamtwgGdrYGh5eGpzdHNtg4B6f3x1dW56aGp5al9lbmiBdpCEZ2VYYndqfod7b2pwZ2ZdVFhvZ46od4F6fJGOenZxf3B0d3qQgXmWdIWDgIWIdmpxdWdnbltsY11tcl9nYWp4aHxtW26CcnRqb4F+endhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fGpqVGhhZVNKa2dPR1FrRWB4ZmFNU3FdSk1UWmVrdntlX21xaWRdVmBWbm5XS1NoV2VeWE1VbFRKXHlfW15rXV1bY2VgeWhsYG9vdW5wd3V6mH13gIF6gICHhnp4eYJ+gZOEcXR0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKuff3qIh4NrcoF5dYB+gHRuhm58gHOKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNneneTgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp25+d4CLjntxcn5oenB7jn14kHGEfX9/hm5kdXJkZ2dcamFcb29cZ19tdWR6aF10gG9ya3J8fnV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtc31pa1NnXVxUS3FiUEZWYUdidmZhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZlVEpcYldnV1lIV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhtcG52g5d5coGAfH+JjIZ+dXWGeYeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZHGHeXN8enVyb4Vse35sj3picG9iZV1lVllZV2Nma19dXHKFaFhwblteWFpcbHtjcHd2bWJabHNzZ3R1b2yDeH5/eHdubnRkaXRlW2d1ZnZ2knlfXVJmZmqDgnR+YmRpXFRXXWJjj6RoeHSDhpF5bXB7aXlufIZ8dolzgHh8eH9oZHZsYGZfXmleXHNrWWVdb29iemVbd3xrbm5veHlzdWRzg5J+h4OJe3dwcn5zYnhkXHBwYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm58ZGhTZ1hXU0x2X1BKWVhIYnRjYUlUbVNKTVpXaWxxe2JtbHNjYlpaW2F3XFNMY11YaVNXR1lgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2DfoCBk4iEgXZziHSMhnRydnWCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCYoHp7f4mUeGN1h3hzd3RrdG9+a3h8cJFyXnBvYGdibFRaWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2b25sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSRdGxse25wcXt9fXGBeIBzenp6Y2V1aF1iWWBnWl52aFdiXW9oYXdgW3t2aWpybnhzcnVocYKVg4d+hHZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHJiYGtyfm1tdX9zcXhrcGFcZWxseWBmUmVUVlFPdFpRT1hRSGNzYmBGVWtQSVBaVWtra3xlbW9xYltaWFlscVdSUGZXVmhTVEZaXE5IcXRYX2NtY1hgYGFdi2pjZG15eGtwaXV5hntrg31/hJp8goR5fIduj4dyb3Z6fXSBgnyLj4KCl3R4gZOFgZ+JdYGAgXR/gnGHgnVvoZZze4aLhnpld4pubXpuZnhwemtzdnKMa150bmFnZWtSXVtVZ2Fsa1pccIxkT29uXVZYVWdpdGhidGVlXVltdG1vdXR4aoZ8f3uHdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYZdY19jU1pfWWKVlWNucIOFinRraHxwZnR4dX1senV2b3p+dV5lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpc3F0cHV2a22Ek4GJe4Vxc2dwfnFzb1RcZ2tmcXSBd3NjbXZWYnJsW19wZ35mbXd+c3Nza21gWmRqanZeZlNjVFVQU2xWUFZTT0dkcl9hRVhpT0hXVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhlVFNIWlpQTXd2Wl9lbGlZYmBeXo5uYWZreXVub2l2dn9/bIOAfYeXe4CHgYl+a5OIcmd0gHt1f4J9iI5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqSLcoGNi3Z3bHqMYGR7cGZ6c3hsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB5fmdaVlhgbHh8e3CEX2JeZ1ZYX1djm4hia3CBh314bGt5blx3c217aXV0b297gHJYaW1eWFxVYWJXZHBjU15haGFibFpgfmtma3N2b213d2xphYx/iXuIbXJncX1uc25kWmFpaW90gnRzXmltU2VxZVVjb2N7ZHJ3fHdrcG1rYFlhZ2h0XGRVYFVSTldkUk5bT09HZG9dYkZZaU1JX0tYbWRgeGlufmRgVV9UXXVcVFNgZk5dYVVTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25odnR6g3KCg3qIjn58iYeNeW6QinVsc4J0f3+HhYaShJWPeX2Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjY2OjY6Ojo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3Itpbm5ubnFJLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fri2JnZ2dnbDwYHBwdHRg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt9fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4iHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpOUlJSUlJWNiYqKiomKhoKCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKSk4+Ojo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4uLi4uMjI2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fH19fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4qJiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2Eio2IkImLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYKIjIiPh42Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIiMiI2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX5+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjI2LjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoeNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z5fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h4ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD4/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXV4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTU1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fyd3l5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4OTo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PTw+Pz08PTs6PD09PTw8PDw7PDo7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcXF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXt7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODo4ODo7PT8/PDs7PDs6Ozs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT8/Pjw+QD89PT0/Pj0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0hFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbHBwcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF9UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oj48Pz08Oj08QEJCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdERUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGAgICBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QURFQ0A9SERBREREQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhGSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQUNGSkhJRkhISkhGQUBfaERCQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTEtMSFRfaHF7V05shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3V2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0xMYFhnf4SGhH55f4aFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9teYOEg3+AgYSEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp8e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtIUHWCgYCCgoKDg4OEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREVNdoF/gYKDg4KDhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6PDg5ODk3Nzc3OTo6ODg3ODU4ODtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RE54goKDg4SEhIaJioqIh4eIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8Ojs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PUBAT3+Cg4SEhoaHiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Ozw7PT5BQT9ig4OFhIWEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4+Pz88QD5BQERBTX+DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw6PT8/QT1AQERDR0JqhYKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs7PDk+QD4/P0FCRURLVn6DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo7ODw9Oz1BPT4/QURFRk5uhIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB/f39VRUNFRUdHRUQ7P0E7PTw5Pz0+QEJHRj9ERkRITXWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMS01NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CPkJDRlZNQ0pLSExPeYaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0ZFREVMWFJMUVFQUlN6hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uGbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1JWV1ZXVnaFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlNS0pJSUZCREBBOlBRUVdYUFBPUVNUU1dXV1hYbYGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNPT01LSkVDP0A7UFBaWltTU1FPUlJRVVJVU1ZfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fn1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleXFZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNATlBNUmR0dXZ1c3R1enx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4KCgIKAgoGBa0xHPj46Oz5APz8+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V2dnN0dnh7fHt9e3x9fX19fH59fXx+fn9/f4B/f39/e3l3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRWVFdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNCQUNBW1xOe05PT05LTE1PT1BMS0xXTklHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ2dXZ3eXx8fH18fHx9fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX19gZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlDRj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVlWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OEducnV4eXp7e31+fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHh5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSk1NTUtHRUVEQjs9PTw5PUc2Njc3RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1JRUE1NTkxKTEtMTk9PUU1PT01ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0dJSERJSkxMS0ZGRkQ/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LTE1NTExLTk5TZE5KTFJJSUlFQUhKTE1OS0dJRkJCQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMR0NDSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxb2psbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25qd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVHREVFRkVHQ0NAPTw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQkFFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUM/PUVFQj5BQ0NDREdJSUdNUElGRkdLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVVJPV2RhYW1ncXJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0FAQUQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSkdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVNZYF9daWFuaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdBQkBDRDxBQUBDPDg6PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlheWl1kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBfaGVjYGRlZ2dqaGhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDSEU8QEVCRDw4Oj4+PTw8QkI8QD5BQkZDRUJCSENDREVGRkdHSUZHS0hDSUhHSUdGREhLSUdLSU1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkRHRTxAR0REQDk8PkA/Pj9DQjxAPkJBRkNFRENIREZERkZISEZIR0lLSkVKSEhLSEZGTEhISEpITUxMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYWVdZGBmZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBd3V1dXd2dXdzZ3Rya3Fya3J3b3dJSktJS0dCRERFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkhFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSkpNTE1OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX1xeYGBhYWFgY2RlYmRpY2Rpamd2i2xraWhtb3NxcHFwcHJ5d3J1dXRzbW1zc21xc290dXRzcHN3dHV1d3Z1dXVlcXNrcHFqcnZwd0pMS0tMR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BmYmFjaW5pY2loaG14dm1oaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JIRUJISUlISEtGREtKR0hKSElLR0pKTktOS0lMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJGRkdEREtEREpMTEpMTUdHTklISktHS0pJS0tOTE1MTExJTExMW3NiZHBebGxVTU5lcl1nZnFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xvdWdxTUtyeXZrYmFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQkhIR0RFS0hHS01NSk1MRkpOSEpLSklLSkpJSkxNTk1NTUtOTU1bcm9vbnBwbGtOUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBwcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISk1JS0lKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxLRk1LTFJSTEdNTUhOSklITkhKSkhITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altddGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUhLTU1NTElLS0tTa2JaaV5famNyclpfWmtvYGVlVWtfY1thYlFgbWhcalxuaWlkWm9lZHBdWlxrW21xY3BzbGRnY2RnYGBrbnBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpOS0lPSUxbUUpGSEhLTUlISkpLS0lISkdMS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSFBLTE9LTFdNSUZFSElKSElLSExKSUZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUZKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNfWV9iW2BeW1RZWFpfXmRiYmFjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHZyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUpKSUlER0tKS0ZGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEVEQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRjYmRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVDVF1ZXlhfWF9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWE9SUlNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSUlDRUFFQ0hGQUFGREFWVUVcVF5TVmBYTlRVTlpbTUpLVGBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9RUllTXlxcXV5fYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PT01OTU5IS0FEQUNERkRCQUNEQExIQkxMUE9PTUZNRkZISUhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXl5hYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1HSEpIR05MUVFJS0pLS05NVU5PS0tMR0dLT1NTT1BPTk9PT0hLRmBFRF9MRGZjQ0xbSF5bc21PTVZtWUxDUF9UbFdnSl1XVV5ETVFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7S0lFRkZIRUVLT1RKS0dgVEdKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dNSUVITU1CRExMR0pMRlJWTExPSExSWFdRTk9PTFFUTk9RUEtLTkdNUFNbWlRRUk9QUFFLSVp4XVR4ZGhZUlNQdmd0bHBibmZrUnJOTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmd8ZXNzb3NzfH1wfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTldeWVVMUVNOWVlMU1NSTkxPSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpLTFR5cHVtdWJudlBkZUlldnFtd2+AamZ4eGlYclJpe21panp6fWx4en9wZ29YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzcnV5foFzdnpufH15eHJuTUpSdE5DQkVQUElLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3ZVS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGhtbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFFOUFVUWFhYW1tVU1NXW1dYV1tPUlRXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltbW11dX2NaX2NjZWZkY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlVUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1RQTlVTTlBOTFFQS0pRUUtRTUpLT1FUUlFRU1JJSU1OT1FSUVFRVFZSWFdcV1NTUVFVVVZUWlFOU1FXVVRZVlRZVVNSVVNUVVhZWF5aX2FdXFtaXV1gY1xdYmNkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YU1BOVVFOUk5MU1BNTlVTTlFOTU5RU1BUUVNUVE5MTk9RVFRSUlFWV1VZWltZU1VSVFhXV1lbU09TVFdVVFlVVllUUlJXVVZYXFpbYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFNRUU9NT1NVTldRVFRVT05OUVRVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNVVVVWWFRXV1RSUlhWVltfW15gX1ZfXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTVBTUlVaVVNQUExQV1VRVlJTU1hNT1BRVFhVVVVTVVlYW15dXFtWUk9VVlVbW1ZRU1ZVVlhUU1haVFNRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTk9XU05RUVBSVFJMUVRTWVtXVU9STlNYVVNSVFJSWk9RU1NWW1VWVlRWWlhdXlxcXlZTTlRWVltbVVFTVFZYWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRnXlxlYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVVUWFhYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZdXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1dTV1VWW11YW1lVWl5YX15ZXFlSV1JZWFlfWVlTVVVaWVlVV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZGJfZGFfYWBiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYXFVWV1paWlhZWlpXVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJhW2ZiaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZWUlRVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWVpdYVleVldaW1pbW1tZWlhZX19gYGRjZGVlYmRaYmZjZ2ZlXmFiYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlZTVlRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fWl5YWFxcXV1eW1pcV1pfYV5gZWRkZmZmYlljZmVoZ2ReY2BfZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZV1xgY2RfUllZUFdWV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXV1eXmBcWlpZW19hX2JlZGVmZ2diWmRmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxXWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RdZWZoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXVhZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7enp7enp6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJxb6nBvr6+vsGiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29sstDMzMzM0KqNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDg4SDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enp6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6eXl/g4KCgoKDgHx8fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2dnh5eHl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3p5eXl5eXp7e3t7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHt7fHl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+e3l7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e357eXt3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3t5fHh8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enl5eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdlZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwipCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4mDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyPi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqMiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODg4KCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWDhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4KBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODhIOCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOBgoODg4KChISDg4OCgoSFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGCgoGBgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgoGDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgYKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgIGBgIGBgH+AgYGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEhIOEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoGBgoGAgICAgIB/gIGAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoOCgoSCgYKGhYOFg4OEhIWGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgYCAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOCg4SFhYaFhoaHjYeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgYCAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYSDgYeZjIWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhoSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OChYaCgH5+fo+Jf39/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4OKhn+BgIWBgICCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFhI+ChYOCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGg4KBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSFkYOEg4OCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KChIWHhoeGhoOCgoOEgoOEhIKBgoGBgYODhIOEkZKRjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhIaEgoaGgYOQhIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIiSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgX99gIaDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHyAg4OCg4ODgX59fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+f4ODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB/f35+fnx+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foF+foCChIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgn+Bg4SEgYGBgYCAfn19fn5+f359fX19fXx8fHt6enl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYKDg4KCgoKCgX9+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhYSCgoGBgoKDg4ODg4KDg4KCgYCAgIGBgYGAf39/f4CAgIB/gIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhYCAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHhoeGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1/fn+Bf4CCgYWFhYeGh4eGh4iIhoaHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhYB9fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISEhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYOBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeHhYWEhIOCgoGCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6Bk5GMjIyNj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+f4uQjYuMjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkYyMi46Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIuPjIyLjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6Mi4qKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCNjImIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/g4OEh4mKiImNj4yKiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36CkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MiYmGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjImLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH5+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4iFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh1dICAgoKCg4KDhYOEg4KDhISEhISEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIF/gH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goSAg4KCgoOChIKBgYCAgoGAgIKBg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWFhISChIOBg4KAgIF+f4B+gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEg4KCg4KBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX98gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39/fX18gICAgYB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn+AfXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f39+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgYCAgH59gH+Af4GCgn+Cgn+AgX5/gYF/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fX1+fn59fHp8fHt9fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+Agn+AgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358e3x9e319e3l5e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGBgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYWDg4SBgYOBgoKBgYCAgYKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgICAf4CBgYCAgICAgYGAgoOCgoGCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXp8fX18fXt8fX19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4OHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2BgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gYCAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoODhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEhHyDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4F8f4B9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhIWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fX+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYWGhoWEhIWFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fXx9fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eIhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFhIWFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSHhoaHhYWHg4SFhIeGhoeFhYSDhYWHhoeGhoWGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhYaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEhoWEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKChH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODfn5/gH9/gIN/e4B9fX+CfYCBfn6Bfn1+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t8fX59fYF9fXx8fYB/fXyGg4aGhoaFg4SChYKFgYGAf3+AgH5/gIF8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ+fX1/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHt9fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19zd3d3d3d3d3d3d3d3d2tbX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubR7c3Nzc3Nzc3Nzc3NzcJTAvL29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WaNCkrKysrKysrKysrKyRksKmqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnj0uMDAwMDAwMDAwMDAqaLKrq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6NLPD4+Pj4+Pj4+Pj4+OXG0r6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Pzs7Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysnKysrKysrJycnJycnN09PS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Ozs/RztDU0s/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tXW1dbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9PIlKjS0MaTq9LOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz8/RnY/AnKubsNCZrZmz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+rtZWHnJ7Fk4adnc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xm7++yJiZxr3JlpnG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZq905SWn87RkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGbxLKfwpvaraO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7lq3Qi5Oex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wM+UytulmbPQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4Wgm5GnmaCtkKiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09Wcm6WmpKigr6eiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIjMnZGOutWakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NO5x9bT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHCw7u5s7S6wb2/xsC5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VcWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubezsrK0sri+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrIvsC4uLaytLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Kyurq3t7W1vLOvtKu2urjAxMG7tby9t7Kts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7KnprCkr661wbq1t7K3trO0q7K0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSppKWupaystLy3rbOxr7Guta+vs7Wqp62so5uZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqSorq2sq6uvqq+pnpeepZ2epaakoaKfpqCir6usrbWytqavs6upqrSxsbC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKShoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz1CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjn52goKOgoq+vrK+xrLaorrGwqKaxrq2ssKefnqKgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk56ZqJ2unqeenKGdnpqakpmenKGioKCdoqCfnp+pq6esqaq0rKusysCkq6iqrKqloJ6ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6Owpp+enZ2XmJWZnpuco5+fnaSem52cpaKko6KqsKymqNS0payvrqmrp5+enqGinZ6dmpyclJOVlJ6dmJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5eknZWbm5+bnpyfpaaloKPItLKup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMW+ubS5urS7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSoJ+SmZ+ZkpqYn5mPiaKxs6igmp2cn56al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsfKx86/yNHMx8XGxMG7w8C+vr61vbOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ2frqalsarFxszOzb+wwailqKytqqGdo5+cnZqpk5qgmr6jko6WjIKLmqmwqqOfnaCbmJeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTV09PIzMfNzcnSzM7TzMXHycrBxcvGyMjFvsKys8jEy8rKzsXKv76/vMHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWp6/LrIyNkYuZr6+mnZ2doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtsDKv9HMy8/Fyce/w8PIzszP0M/NysjOuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpGQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXCxbG2qKKlpqGiq7Wnmq/ExqWGhqCvrJyVmKCcm6Gin5ydmpWKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqq52mrrioq7fX1NXZ2dHO0MC8zMm3v6+nq6mjpLG1sqO3y7ublKqroZiWmJqbnaCemZyek35xZWNiX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc7Py9DNzsvOzsfKz9DKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tLDA2NLX2tzWz83LxNPQwsGxqq2uq6Wysbiqu86vo56clpOXnJ6fn52Ul5iUiWteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMnBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLe4vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcWhYWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K4y9XW2drb2MzNz8jW1cXDt7G1qqOtrLi5r7/KoZeOjZiVkJOSkZaWlpCMfGZiYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwcfAx83Hw8vKy8/Hw8PQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69us3Nx9DV1dna29jQys/Q0tTJxLm9vq+nt6q9uLfDrJKOjpePhoOEhIJ+hYV/dGBcXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKwL3By8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNz8/M1dDW2djZ0MzTzs/QysO3xsC1tbuwv7a4sJGMk5iHeoCFhoB2eHVycV9aW11gYGJkZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a+vrXBvcO6vMa7wrmzvMXEwcK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpFSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tTW2M7M0MfMyMrEvcnBsbS5trm0rpGNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0srO0urW9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0MzOyMvJy8rLxdHO09DPx8nFycTDv7zPvLK3u7i2tZuOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq6yzramrqbSttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKexs7S7vKuttaWutq66sbCquLCtu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTElFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLLw8bCxdDHzsLEx8DGxsTEy8LKy8LDwMa/ubu6ybazuru0s6qRiY+QfHl+ioZ6e4WBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKSmn6qttbaxvbmvt6+orre0tLy4tLyvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK6psqWnqK2lqLessLK3ubq7sbu9vr7Ev7XBwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxdHQzcTIurrMwszAvMq4v8XAu8u5wsXEubvCvLi2vMS3tLe5rLCVg4mNgXx+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWnpayfnZukpqyyr7a3p7Csp6q0qrS6sba1rba5sa+6ubG3pJ+kn6axp6uouaqkp6iop7KtoKemn5ukpayen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFVZXkhOZ09UR0VKRjw9QD06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrBu721oJ6UnaGmurars7O7s8TQycvDx7m4ycLNwLnLubzHu7XHurXCxbG8xLq1rre+uq+xtK2hhIeHgn16dnRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrq6S0ua23sKyyta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUWF1JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MjJwce8vMXEz7+7ybq6wbq0xLezwMCywMK7q6izuLWmr7CmioaIgHlzbnBua2JeYmZmXF1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaahpZygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5qXnZycnKyhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4ws3Ix8HGuMLByM+4wsa/tby8tsK5tb2/tLm9uaikr7mvpa+smX2EhYB5cHJ0cWhlZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhYWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqqmr7Crm6Ojt6qgn66otqmmp62wo7ewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeno6q7wL3Aua60uMLNycbDxL7HucnNtMPEw7C+v7i/wLm+v7i4u7Wlpa65pKafooiAfXlyam1ydHBoaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqeenJ+ln6qvpp+io7aooKGiqLShpaekr6Wwray1nqCdlZSpoaKUrLGxnqKjnZ2Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6kp623u7zBxbqxubXFysvBxMfHyLfHxbTEwciuubrBu8G/wLy6tri0pKWvs5ufh5eIgHdvZGJnaWlmZ2lnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdWU1RSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraWko6KjoZuqq6WZnqWxqaCgnaWrnqehnqytqaiuraKhopSXo5uckKuosJufop+el5mTip6RjZKTlZCYmJOboaKcpKChlaChpKabo6uloqSqpKuupa2xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnNu8LLzci3y7+zwMbLr7S8xrrAxcK8vbW4s6OorqyaloSNg3x1ampqbGhqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2Oj4SRhpCRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6vmZuqs5+lpp+jo6GUk5uWlpKoqq2anJ+hoJqUkIyZjouQjJKMlpSQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Stt6WjpKKsraqoq66yt7K9tbOrr5iDc3NoW1hYUlVSRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DItca9ub7Fy7Svu8O7wcPCvL+xtq2kqKypm5ODgXd4b25pbm5ucGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi36MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn5yUpaGekpCTkpOVp6ulmpmZnZ2WjYyMlIaIjYOQi5KUkKCeoKOXlZ+VmqCinZObpaWnqKigsbCmsLynn6OstKqup7C0sLm1wLGtsauQfXFyYlZUVk5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvRzLO4ur7AxMa1s7a8sbm6wry/r7GrrqutqJmehWtnbW5yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqYiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmaSonJWVl5uQkoeUjoyBi42AkIqSkpGhmp+ilZSYmJWipZmMmKSmqKahoLSyp7K3oZ2it6ypraSysqa1u7Wrq7GjiHhxbF1OUFFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdLSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8a4u8TKzce1r7u/t7rDsrGttaGrtMG4uayoqbGsrJyTo3teYGdzcXZxam5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYOOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgop/ipifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimpbChsK6csLuqqa+qmYF2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSjw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3e3oqO0qKWmqKOmpaamprOnpbTBuK+0sMrFuLrBz8a/tK68w66wxrCspqqUoqy9tq6unaWqqqiTkZ5wV1dgaGdpaGluY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyPhYZzioSWgXmCeoWTnZSDlo6Qj4OGfZJ4cm+FjX6JgJCNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKeel62zoqatmKyrmKe0oqmto5J9cm1fW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDIw7i0vs/AurCwt8SprcispqGchZmguKulppSjoqGflIyTZ1FNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hYh+ioiVio2QkZaLhIqIlISajIGEkpuWnpyUpKOoqaWjnpuwqqGkpJClqpahqZyipqiIdGxlXltIUVFSTUlVTVNJTEtPSUhGS05MTVRLUVFPRkhCPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwry3qLrJubaoqba3rLW/qqGakYKOmK+eoJeLnZSWko+IimNNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYqMknh6gHuAdnNykndndYSEhIR6lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiMp6SToJ+Wnp6kf3FnYFxcSlZPUkdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3u7OrnZ6tqqu0sqSdlZGXhJKilZuKgZWHjYiEhYFkS0lJSEdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZtbGViWldXVFFKU1VUT1BOUVZLTktOT0pRTkhOT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefn5agpq+srquoqbGvsau8uKy7vrmzraibsaetnJCWnaerpqOanJKHlH2NlJGTf3qIeIOAfX5/ZEpGR0ZBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJkphuaHh+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiISFen1+e3ZvdHOFgnmBd3B8joyKk4OWl5iakJOVlpmXnpeMg4mfkYqSjYaQln5taG1ubldVV1RSUVlPUlVVU1hVTU5ITkpNTktDSE5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaWYno6FjJaio5mak5aOdZB9hIqQjnx3fXN8d3R3e2ZORUdEQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+fYN0ZmV0foSDhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGiYaAkId1aWluZ2RXUVpXWVlbTVBVVllZTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK6esp+muq6rsrDCsbvDx5uWj5WZi42GeoWRmZWPkY2SiXOIhHeKj4x/dnd1d3ZveHNpVEZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihHZwhnyGfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46aknZsf3t8bXFtcH96c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOBfo95cG9ual5aXF1bWVhgX1NOW1pZWExISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbWprbGuwbK7wcaXkIyUkIGJfW6CkZKJhIuIkId2g4Vul4qMf3l6e3F7dHxrb15KUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhJmEm5xhhqqfnYqCkI16doh+iYiNc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3dIR6cHN5d2tuaV13h32HfIiHj4CLk5eDjYWNh31xhH+EfHV3e32JdW5xcmVmX1taXVNbZl5XUVVYXFZHSktETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx4ioCUjJGdnZ+mkaCroLGor8CxusW6lo6RlIh6hXZrgIySg36LhJCOeYOCdKKGjX9/goFzg4F9bHpsU1dMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGdneH5uhYaChXGEhUdrgHdxeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JxcGpaXFxbY2NYZ2VcVVBQV1lQRExMRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoJ2soaa4r7O9s5eNkouYi310cH+Jk399jIOTlX2Gf4eliImBg4iGeYiLf3WGeV9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWOk4mBkHtyg52fkZx+doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fXh8cWljXVpZXWlcYGZfWk9MTlhSUUlQS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHeAjJR9f5KGk5Z/ioCSm46EgYKMi4KKjoSAioBscGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyMoZ6YhJKFgo+hn5OYkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfH5+gHFfXGJeWWZqXGtrXlhLSE9TUU5NTEZJUERETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+cp6CqlpOYnmdlpJp+hZOReYCRiZGSfYqFmZKRg4CAi42JhpGHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3t9em9mXltfXmBmY2BnZlxSRUtLUE9JSkxGRk1DR01GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYuOjXuKho+QjoKDgImMioWThYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GR0FBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytqqOLlpiFpqagopeCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqJmoqTipV6e36DfGVfZltkYF1iY15mZl9bT0RKSFRPRkhMRktHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZPayJ2Wc1aXiI+InI98hoyPiop6iIKHkY6DhYCLhYWIkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA3Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcjEq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiKevqqSUdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmBgXNXYGJUZWBgYl9fZV9bVElERUxWUUlKSkRKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWJkV3p1cYGUfYSGk3aGfoCMe7+7o7yCtJSTjpuPhIiPk4mJeYeAjJOMh4WBjn+BiY+Gf4WIhYqHkXp5bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVDOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyra7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopGlsa2lraunpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gHppVmFfV2ljaWRVW2NZVlRJSEdMUUdESUpBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVlp3anB/j4SBjoVuenJ4h2K4oZqjiZWUlpOUk42Ql5KHh3uHgY2VioCEgYp6fIuHhn2KgoGLhJV9eHp1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ysy7vcC7uLW8vLe+tbqyxmB1sqWxmp6rvqqlqKuqpKKytaCrqJ6Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgH1vXWBfXFVgXWhlUlhhVlJWSUVGTUtAPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbHNyc4jVwLWZoI2VmZqRjpeRlpaOhod9h4ONlot/g3+DeHuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsC7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn13aVteWlhbX1hhYlFbYFNRS0NCRUZFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBg3N7ioOFe4p0goqGlX9ze3lsbXV8aXNlaWxpZmppaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trHEx7awubGwu6yzsaert6yNtqeenKeaTpqejY6glpGnmKWVipOTiJGJj5GRnZuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Nw9HSuK/EvMS6pre7xKJ/bGFaW1xXX1dYZFlPXFdOUUNCSUVDSTtBRD5BSD8/Qjg7RD5AST00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2JjIWOioqLkIh8hIJwf4eBhnuHcoORi49+cXl1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcGxq7WmpbmnrK6hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIqDk5WYl5SbkZuYmZmenquspKehrKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcd2xjW2BbVV5RXFpPT1RQTkg+QUdCQ0Y8QUI/RkU+QD86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgHB3c2xzfHx3fHOCeHFrgHJyaW9xenlze77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoainqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl62LlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPM1NjW1tjV19XJ1NrNytjW0cqtxMPMiXBtYF5dVlJXUVtPSkdKSUpAOzo7RUNEPENEPkhDP0NCOzs5PDlHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYRveHBtdX92eH10hnx5bId2dW59doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifpKSmsqSls6CipZ6hqaCisZyHn5KSk5GLjouGg4+EfpycjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxbm2xc3R0NHPy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHV0bGJbWFFTUFhVRUZKSUVFPTo3OkBBQjpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioOIfXmFl5eJj4OHhod6hHlxenuEhnV6ho6NnXqMcH1vcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoaycopqan6afn6yZjJqMkZKOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjpWMhnubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPycPSytTW2NfY19Tb19PZ29bP29rR1sjVzJN2eGZlWVhOUVJcR0JFSUk+QT49ODo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx9hJiOh4t+hoeAd4J5bnt7hoJ0epKejaF2j3aDdHWBfXSAhG+CkIJvkoR1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+YkYOJj5eal5emnJigl5+TkpejnZmrlpGRi46Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY2Ki4J8oYiQi7yhmJOXmZyopaWtnqe1vsC/uMfJzc7FzcrR1tXU2dXX29TX2drb19va2djO3MaFeHZkZmJdUlZVVExLRE1EOz09PDk6PD45PkE3Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdW2h0enlsiY2Sd3Z6inx+gH+AfYV7foKRioWGeoWIe3V9dW19fYZ+dH+SnZGfg5J8hn14j355i4pvg5uAdJmGfYKKhXx+kXuQqY6Qw6C9jJuknH6KhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZuTlJGXjYyVn52UoZSSjo6QjH6Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOg4WEgKSGiou4mJ2RlJahpqCdnZ2jrra6tKu/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3Z1aGdjVF5ZUk9OSENMQz09Pjk5Ozo5OTw9NkA+Pj09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlheVVhmbW1taYGOinFzeIp7e399gHyIe317i4eDfnWDhnpzenRtgX6EfXeGm6GbnpSSgIyHf5iHgJySboiphXqgi3yRjoOJhJx+mpGJjaOin5Ckr6CLkYuGi4GShldyrYufrJyPg5ickJCOW4OikYKNn5OVjIaIjJKTjJSVlZCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZeZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKykvMHHzcfGz8zPzM/Xz9HUrtbV2NrY2trX1tnZnW16cmRkWlpWUVVWQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dXd2dISDhX1/kqain6ail4qdkJSXioqnl3KKso2Ep5KEmZSFmoyjlqCYk4mbnqKTqbCgkZWQjo6IlYtujbeEmsTIspyipZudmJaRsZBkpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEf4+LmYiOkKqXl6SiiJmelZqJj4aXmIqFj42Bf4aPpYiNk6ial5OXmaGYn5mTnJqisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoBwfGVgW1xcTUlTWEFCR0Q7QT44Mzc7PDo4PTY0Ojo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6KXp5+lpJaVrqKDkbiVkbOajKGhjKWbsKOknZiRp5aomayvpJiVlpWQi5iZl6HAjqPJuaubo6atmZKbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpakoYedmpKPipCKl5uJi5aOh32MmJ6JkJCcmpmTmJefk6CdlJ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2Lpwd3NaXlNeVE9ISU1FQkNENT46Nzc6Pzw8Nz00MzY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen6CfHiGi4mGhJKnu6yosr2vpa2zs6ijobCsipq1naK4pZWtpJeprbinpaOfmqmXqaOusKqamZyUlZGXn5eau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5B8jo59g4aOj5SViIiSloyQlY2LjZaYk52ZtJeVq52KnJSSjpGSjJmbipKekIuJlZ+hjZSNmJqdkpyYnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRoMbJzc3F19bRy9OgbnhmWlhRXFBORUM+PENBQjg/ODg1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSj+Lin6Bc4aHfYKJdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyos62tvaubu6Sorbm4q6emoqKkoqmvsrGrnZykmJuYl56ipqWSpLqvqcC8ra2yuaWkqH6IhpytvLCDjIyLkIOOg5GPeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJukrJSWj5ScnZOhnZuYn6GUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNbRzcTKhnJwX1lXXVlMSkFLQEZHPkE/Qjs6NT5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yLiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuYs7e6ssCupcGkq7C8vauuq6OjnqerrrSwqpygqpyhm5afsLWni6O6urbBvKypnLKlpKiUhY6pxMOkgouPh4iEhpWUjXqDjZGPkaKMjJSSjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6CYpJ+aoJuglJiepaOmpqSvrqXAxMOuqLe1ycK+ts+yxL/EvLPRysjCtHJ2allWWWhQTEhCTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5h5SQgXKAfI1/eIeCgpB6jqGWqJqamLq9x8jJwdLJysLNvcKzrby+qLq/vbvDt6zCqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktrewrJOxraytl4eaqaelkYKMk6WViYF2ipF5hY2SkJ6fk4+UjI+NlKOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKimpWfoZy1pZCel6WjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8y/ua/Es7u+wbiswsPCwJdqd2BWVVpZSUpMSUZEREhDQkFETDo0REg5OzQ8N0UuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS9y7zDwba3vK2zv7q8rq+ooKmotq2uqbK3m56toqehnqu3uKqlr7/Fsb25tKiqtbSur5eWpayooJGOkrLFp5WOfZKVfYeRmZCqmZiTk4+SlpOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpJllmKOfs6WWoZasrKmnm56ml5iWl5WgpKiln7arqrq7w7Sls7XLwLiqtqyyu7muqLi6vbiBaWxYVVNTTURKUk1LP0FIRURISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZSbl6KXqZaNkIOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzExMbGzs7O0sq+u7axuru7vs+1w724ubeysbWzuLOrppyrrLmqqaivr5ijr6SnpKW1wLCsrLS+w7rAurSoubW5s6+Wpa2urqSLk5WhjXTBmn2XmYSOlpqMsZWbmpWSkpqapaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVZewn6+cnqSUr66rpZqgpZSTmJiNnKCnopm0qaqzu7u7qrCyx7+5pqurrbKyo6GysrSkbmtjWlhNT0pET09QUTtIS0lHSUNDPjpLVD9BOj1FTTA3NTQ0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZiHi6iWjoiThZ+HhJ2Xjp2hm6Oktci1qca5wsPHysnIzM3Gvrqzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisur+orLa3vsK/vrm0s8Syub2so6+1rLmmiJuXppt2v5+EmZ2Ok5mai66XoZycl5SaoKGonqefmZqqmaGnnpiQjZGdg252kqOalZ2inZCusqKqlKiql6qto6OfpKiRkZmbh5Scop6Wsaepq7m2vbOyrr65t6Cjp6ilppybrampi2BjXl5QSUtGR01JVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVUV04/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZuhn7uvmZSfjJOrm5GSk4mrjYain4ykrZSjo7bGvrTAusLCx8jFws3Iwb65sq+4tMHCyrXFssG8tbqqqa2tsKOjmKq0u6appquqnamvp6Oqq768qK29tLi+x7y3trjBsr7BtKm1t6u+pY+il5Kin7yfiZqgmZeeno+3n6mcpaKbnKGaqKSzoZudppyoqZ6ZlY+Um4uXiYykoZSdop2gta+lpJOvq5mrqp2do6OokJSUn4KPnp6blamkoaGztLq1rai1srOenKKlmpeUmaqhnnVeWl1cSUdFRkxQSE1FR0dDU0xKQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ5xwYkdFp5ekn57DrZuXpZiaqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHw7/Nxru9ubKwuLO/w8i1v7C8t7m3paSrrK2hoZqqqsWipKmrpp6sr6uiqai/uKetvrG4tse2tbm4wLK/wre1s7SvvqOXo5aUm5SuoJCho6Wjo5+QvaSpnqirnZ2gm6WfvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZr6admaqcn42YlJ6EjaCam5KlpJqYq7G1saqlqq2snJigoJKOkJWonpRmYFhfXE5IR0pNS0hFRElBPlFJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FaS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6bVJGPEt4ZWFWS6Kao5yexayhn6yenq6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+yse1uLW0sLO0t8HFtr6xuLW4tJ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsb25trbEsrS4ur+zxMG4uK6ztbWjnaWVkZShrqCZop6oqKujmsKsqZ6srZubnZmmoL2hnaSYq6uspqKZjZqfkp+Jjld/lp+loaC4qqaTmLWjn7Ggnpqulp2NmJOdgY6fl5WOoqOWkKausqupoaGlpZWVnZiLj5GSpJ6JX2JYYl9LSEpKTkVFQUdLPj1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiW0xDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0op2yp5OrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTJvK+wtq2wtK++xLS5sbC5tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22p7e7vq+3xK20s8PAs8e0u7ers7atqqKmlpWUpKyin5+aqKuwr6+7sqagqaiZmZeToqS4oKGjk6+vrKWnn5KhnpWej5CNlZ6aop6ns6amjJizm6OumZ2brJCek5WTmX+RoZWPjZ+hk4umrK+lpqGcoJ6SkpqThYuRjZydf19kWmZkSklLSlJCQ0BJSDs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlOY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSqs6GktKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLW/yMG0q7WosLisv8Ozt66strmlmKqyq6qYn6aXrbu0m6ewm62grrSyp6u5s6i6tLiyucCqt7LEvrXGqL+vrba1qaesoZeXkaaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqainpqam5aXqJ+gmKGerrKipoyXrpikqpeZnqSRmoyTl5mFlZ6UjI+cnZOLqKmqoaegmJ6VjI6Zj4GFlYiUnndiZ1xqaU1PTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaKmv6eor7ChqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMXAuam2pKy7rcDCt7eprLG6oZStsa2ylqWnkaq5qZ+msJ2roLC0s6qptratvK2zs7m3rLmww7u+v6bDq7C3rqmrq6eemJmroaKhkZehsa+zrLC5mpypoJmWkpemobappaOisLG0rLOorJ+boKCbnaWcopedo7Owmp+Pk6Wan6iak6KelJeIk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjZlpZ2tgbG1XUFFaVUFCRVRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G8vr60qK6xtp6Wq62orpemqI6nu5+krLOerKKxsLOsqra0tb6usLG1rLC0ssG7xberva+xuKytqqOxpp6lqp+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaGZm6i1qZaZkZGdmZ2fnY+rnpaXhJSWip2YnJOJjZaXmpempaKgnZWVl5N/j5SFe46SgouVZGtxZ29xXkZZZlZEQk1YRFo5SEI2PlxRaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pa2qpq+ut6qvtbunprG3xbext73BwrW0usS+zMa5wsC5vrnDt8C5sbSsqbq2urm+tKmtsLWYmKerqqybq6uPq76erK6yo6ufsK2zrq62srm4qq6usai1r7S8vcqzqra1sbSvrqehs6CbqK2gppaWmpqyoq2gpa+XoaSampKOo6aos6mhprOsqralr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkImUkp6ZpaKhoJiWkZOVeYqPhXuMioKJkWptd211e2BFYGtZSUhaWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4rQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7W6pKy0t8m7tLq6v7+0s7fDwMzIvMO8tr2/v7e+vLG8raa6ube2wraqrLC3lJanrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4s6muq7Knt6+2tMTGtqm2tqywramno7agoKexoaSUnJmVsZ6nnKCqjqminpuWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJSCkJSPnJuXlpWIlpCYmqeco6CSlpGQlXWEkId7hIGDi4psb3Z0e35cS2VtXEpOY1w/YntHSThHZ1dlXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2vq6ilsbO0q7eyt6CrtbnJua7Au8K4s7G1wsPOxcDBvbS9v7+6vryyxKepua+2tr+8rqqysZugp7GtpqWvpZ2ytayrsbKtqqm0u6y1s7WttKyqq6isqbmtsrHIwLilurCprKylqK6wpqWjr6SpnJ2cm6+ao6Oio5GsnqOgn6Kqpqa5pKy1tqWrrKitr7auo56jqaqboJqakqSzmY6JjYeQoaCUjJScn5KRg42Skpyal5WTh5eSlZmnm5+ejJKRjZB2fY6FfHt7homIcHJxfXx8XFNkbl5OWWZcRkSWW0c7Tm1YYltMYGJOVlZVV1RZZ11RUkxjWlpUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPzNCSFMsPpBrO0dIj5yqq6KqsaSppbO0sbW1srKiq669zLquwLrHsbSttMLD0cXGvsCyvsHCu763u8SnrLersre7v6+rsayfo6etqqiksKSqsqqvrLCvsK6rs7ynt7GyqbOpq6Wlo626rKqyw7q2rbupqaesqaiypamko66qqKKenKOtlaWemJ6ZrJ2ip6miraakrau4srKhqaKgrK+xrJ6gp6ipmaSZmY+gppeGhI6Ki56fjoqMlZuOjYSGj5SfnJSXlIaWlJOXpJucnIqSkI2Jfn6HhXx3foWEhXJxcIh1a19aYG5iUXNxXEs7hHxFP1d0WGFaTmNbTlZWVVdRXGJfU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraiiq7Ocqqqwtq25tq+rpquqvcm7sL23wq+xrLPEw87Pw76/tMDCw7q/s8jDq663rbK4vr6yrK2rpKeqsKmnqLGltK6qsK6tsrG0rLS8pLezrKyup6ufo56wt6uqrbu3pbe2pKmnq6uqraGpp6axsqSnpaGhrJeqoZWboKaepKKrpK2jn6exuK6uo6aim6qrrqmdoqWkpJmgmpaPmJySgYKPiIWcn4uKjouYjY+KgouXo5uRkJqLk5KRk6OZm5qKjouLfIaBgYN6dH+CgHxydYukh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVVUT1xdYVVLTWhWVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6uxmKuqrbastrKspqyqqbzAwLi4s7u1prKvxMnL0b/Au7m/vsG4wbnAxK2xtbGzur+9srCtrKqrp7aqpq2vqrmwqLGyrrKtt6q3t6e0t6uspKmqnKOes7OoqKS0taC3rqCqqKqoq6egq6ypubapqqmpoqqgrZySqqGdoKSipqOqnp2ntK+opqqio5ilp6eqnKOko6CamKCRjo+YjX6HjIeDnZ2Gg4qKjY2Pi4KFlKKajYyZkJGRj5OflpiWjIuDf3SHgX5/eHSCfnl2foCHnY9vcWdncHdcYXOIa09emVZIbXhVZFZRY09NVVRUUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6xoaarrpqspa2wtLWwrKawqqm6vrvAsK65rqG3r8jHyNHAvr27vMK9usPAvr+usrKxtby6wbGxsquzqKS1qKWts7O5saOut7Kwsruruq+qrrasqp6qrJ+joLatqKGfsLOitaqeqKepo6qhoqytqL2vrK6soqion6yZkLChmKKgp6eep5uZqrGqo6CtoqGUo6Ojp5iaqaWYmJiejoqHlId9jIaEg6OWhIGAi4aNi5CDg5OgloiQnJCTkI2RnJSXj4qFhnh0gX98dXh5f3pzc3lnf4akdWleZGqAdGeIjH1TWHBeSndzU2RUUV5NTVJaZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJCPsqGkpqykp6Stp7WzsaulsKequL7AvK+nuaqmr7DJx8jRwry/vrm+v7zJusC4sK+0sbq7t8Cys7qsuKyitKenrLK2ubOoqL22rra+sL2nray1rK2cqa+koKWtq6ecnquzpbSomqqnqaOpnqSpqKm9rLSvrZ2qpKCunJuzo5WknKWln6Sbmqmrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo6CgIedj4V+fYuHkI2PhH+TmpOFkqGMlJGLkZuSlYeJfn9ye3p+fGh4fHp0b3B7Z4R4hIhkYWdhcYR6bWd4XV1VQFZ6bFRiUFFYS0xOcnVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLKaoKCppqWhq6W4s7OmqrGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXCtbOytbK8t7m9ta25tb+toLOnq6uwtbi1rJ++vaqzwbS8oa+ztaqrn62wo5ylqKqjnpulsaewoJ+rqaehqZykqKGtu6iusK2gq6Okr56fraaXn5uho5yfnJqkqqObm6WklpeVn6KWm5emrIyekZGRi4KKgICOgHuZk42Ie36Lho+Ni4qDkpiRhpOiiZKSh5Caj5OAiHx5bH52eXhje3pxb29xdmeAc2qDZ2RnX2xyjWxhaW9gbz5aeGtVXk9QUUpJTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5mtmqCYp6Sjn6ikuLCvo6+wqqu4wbmzrZ+4r6uotLrIy8i/tsK+sLS9t8S2w7GuubKzv7S6vbeoube9qqO0qKmqsa66saqcvL2lsMG1tqKvt7Wmp6exs6CepKWnoaWZn6yoqZ6gqq6moKaYo6mgsbmfo7CvoayhraScpqapmpqbn6SVnJ2anqmml5ygqZOZlJiek5mWoaqRmoiOj4Z9h36CjX18oIyMiHiCi4SJi4uFh5Oaj4iVnoiRlYKMl4yRfYV7c3B9cXR0YHl4aG5wcG5ofXFje21pZWJeZIV+X1pyanFLSn5oWFpOUExKSFBSUElPXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vWFY1KJeep5qdlqygoKGkorirsqW0tKqpucO1s62ft62urbC1xsjBt77BubG0vLa/u76vqr2ws76wvMK5qLu6t6antaioq7Gts7Gom763pq28t7KfsbiwqKWnr7GboaSgpKSgl5uvp6Gfo6ivoZ+ilKSkorewoaawq5+so6+YnKqkqJ6Xmp6lk5udmp2mq5qdnaaXlpiUnY6Tl6KoopCIi4+FeoR+hIp6jpaJjYZ4gYeDh4uNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RrbGtoZ4JtZXJra2VoWWFzf15aa3VpWUd8XVtYT05KSEhSVUYyOl5ebFBEWFZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV5TLDKWo6KYlZ2pnqaho6G4qrChu7mmrL3Es7CuorWvra2vtMTEvbO+urexs7m4uri6rq2/s7S4r7/Bt6y9urSlorOrqKqzrK6yo53Ctqapt7ern7K7qaalqK+rmaOnnKWmlJihs6aZnqWpqZuhoJSln6S5qKSnraaepaGok5+poaGhmZudoZKbnZegoqucm5qilpOVlpuOk5Ojp6SPiIqOhnmEfIWGfZyMiYqGeICDh4iHkYWVk5KMkJWTjY6Ue4KXjot3fntsdXJtbHNieXVoZ2lnZW2EZ2doZGZoaV5mYmlmWmV6YmBRc1RbW1NLSUdJT1NAIStpXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTScynqSkko6lppyenp6kta2oqrq3p6zDwLevrKG1rqeur7fBwL2xwbewr7K2tbi3tayqvLSvsrC9wLeuvLyxpJ+2rKamtamrr6GgxKyqp7G0q6y0up6oqauxpZidqp6opZKapq6jmJ2kqqGbop2XoJ2ntqavqa2hoZ6doZWgpp+ioJmbmpySmp6Vpp6topiXn5aUjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiXt+hIiGhJCElpWPj5CRkJGNknuDlY6Gc399Z3lwa2psZ3Vza2JnZGJ0f2FkZWZlaWliZ29ZXlhdbGNgTWdXWmBWSUdIS0xSWD45YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAY0YlNZykoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGjtqyrrqm5vry7rcCyr6+utq+zubKnq7mxr66ztru2sLm+rKWetaugobGlq6+fpcWhs6WvsrC3rbWerK6srqKZnaeqpZ+VnKemoJmko6mcmqCclZyerbCmuaeuoqGamp6YnqOapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4F0goKKmIWHfImIhISKjIiShZOckpKPkJGWjpB/gY2Ng2+Bf2Z5bmhramdxcmtbaGNhcn9gZGdqbmtmamZkbFxsbXZxYFNiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGNCJzSTopyPjrGdm5ShmqmysJ+5wLags8G7vbmxprawqa6lt7m3uKy7r62rq7eqtLmtpbK1sa+psba2sbO2u6epn7apnZ+qo6qtnavDma+lr7G2taysnrGtr6qim52krKmclZynpJ2ZqaOllZqgnZGco6uqqbqep6Sgl5qanaGPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkIBmiIBodmlmWF1pdG5OUGpjZnGCZl5kZm5raV1dXomQhYhoT0tDN0RUZ11KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9hPCsvjaSah5Wxm52ToJyqraujvcWvqbfCuL28rae2saarpLi0srOwua6qp6y0pbC1oqe4trWop6y2s660rrOiqZ+0q56ipZynqJuvvpWop7C0uK2upKitqqumoZ+coaionJehpqacm6eonZKeoJiQn6iqo7Svo6KjnJaYmJejiKGPkpqGoYiUnqF/pX+nrJ6Uk52TiINyeIyOg4egdYiNaZeJZn5zeaBviIeDfox8f6Ggn5l/e4eedIiOdpuKbIeCg25pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtralqIcG15codoh4RZXkZNPkZeTUVSVlZRUFJXVGddTFlLUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFVXzcwKI2ml4SdrJ2ZmZ2fq6qoqr/DrrK6vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0pqeos7Gtsqiunqqhs6mgpKSaoqSdsLeVpaant72mrKepqqunpqKgmaCopJqZp6OkmZylqpaTo5yUlKSmpqG2pKOgpJiVk5iTnIiukJiViamLmKOchrGApK2elJqflXmC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauweWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFZOV2FPVk5GVFtYUVBSi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7a0qKimtqWoua+csrK2qqWkp7KvrbGmq56npLKkoqGfl5yhoLGulZ+joLS6oqqooKytpKKdm5qiqqCYm6mgn5idqKiRnKeblJ6ip6OhsKOen6OWlpKYkpmFsGtqi42qfmeFloetZXGenZWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2mAknh6aqg4Sq9bV1NsY1pMT1hfXFdWO06IT1ZWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVgq2npZ6jpKqxt620vb6wtsWyuLrDp6mwrK+pqbGvpLG6sKSlr7OjqbmpnrOysKOloaqtsKyvpqifo6KxnKOdmJWYnZ6wqJecoqC0s6Gqm6GsrJ+empego6qdmZ6loZ2aoaekkJ2jm5ihoKyfpaagmqChlZWRlpGahrWbtXmFqZm1mXeHs5u3f5OWl6uWfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW1jcX2GgGGdL1KibltTa2dfTEtcY1hcWkI+sHdXWEEjTWhGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVTUwHJaflIizpqahrqmos6yqu7bCsLzCrbi3wqusra+up66zqqKvvKuip7Wto6u2paWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqI+pp6mbnZaYoKapm5+do5+coKOlo5Wbn5ianqOrm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5amkI2cjKR6jYaigaWCeqx5j51Vr3uJfp9quVq5d4WDfaaCk3yYeqp5jp2Qe7FtjoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZZZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0c6YVA3MiWcopKYsaippbOqpbSnpLy3wbG6wLK2tb20tqeysaOxs6agr7apm6i6rqOwsqGytLGhpJ6ep6mxqbSppZyenqyXmZmXl5aYoqyem5eprbCoo56OrKKnlp2YnKGmopiioaOhm6Kip5ueoJ6VmZumoZymlJubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uYpY2PnI2ifo+fpH6wdYOR0tF1W658hX+kbpuqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuop2Rpa+spam6rKa1pae2u7yyu7+4t7W7u7SmtbSisrKjoKywpZinuq6ksrGdtLiqoKWdoaqksqisqqSanZupn5aVmJmSk6OqoZiTp6uwpaGWkqyfpZKUoZykp6CVm6enopqjn66aoZ6ekJacop6cpZSdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4SamaKKkpmLon6Rl4euhX+Cs1xys1KufYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbF9wbVZVTS5lYmhTWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6Cdk6C4sZizwayosqeqsrq4tLm+ubiztr62pri0oLWtoKCprKCVp7asqLGxq620pJupn6CoorWnpqqjmZ6VpaKUlJyakpajppuUkKetr6WglJipn6KPkaKaqaahlZqmqZ2dpJ6tnaGcoI2Un5ueoJiYnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqCiipeWiKOBkIeUqnuAi515b7FaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZJX0MxPTeinJmZv6yYs8Kuq62oprSwuLG2v7m6s7K4vKq7taCxpZ+mp6eflKqxqbCqtq2qr6GYoaCmpKS6oqOroZebkaOglZWfm5WYoKCQjoupsK+mnZaap6afjZKkmKisqJWYqaien6CkraOhnqGOlaGYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5OcjImkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrR0k5h/smqFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP005ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV45MUE4pZqcnbqinLG/rq2rq6e3qbivtcG1vbKwu7irwbaqq6Gdp6SinZKrq6e2o7Oorqqhl5yooKWruZ2jrZyWmZClo5aOnqGcmJ6fkZOVq7avppmTm6ypl4yUppqlraORl6uypKCeqKuwmaGikJmil6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z+1ZabuHmJkZiNl4mMp4d5orZ0fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXpeaWFkZmJteW9ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaeZn6K8opexwq+tqaqssai5r7fFsbuzr7ywrsGyraajn6ShnZyRqqWqsqS1p62koJaaq5mnrLmdo62ZlaGQpqCTjZyjnpiempCWkq+5sKuVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipI6nopShmpuXlaSYj7CgkpWpn4WQmbaAkZGNuJV4gpObtXdubG5zb3mPhI6Jcp7Bu7yZeoGyqHCAdJG5g3uGhoqGjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn95fYhng3lteWKLrHB0hX9YW6dpRGRZVGZfY11jUWZmcW11Qk1PTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aWs8Kzq6qorKuqu6+xxq+1tK+4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoKOdrKS+p6Gql5WckaKbko+hqKGTnpeSmJSytbasmJ6jpKKLkpKmnKWrnZappaacmqGpp6ajqKGSrJ6Xop6Xlpidno+wqZOcp6KPa35pnKh5iHN+m451emWHe76/wLpukoJxlIVfcmpaXZqJYWSHjpVrYH+UY22bdmKUa4CalZRlXl9icZqJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01EVlxmYUxbV2ZjXk9abXZqclJPREVNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS5tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKbpq2pvqiopZWUm5agmpOYpamnkZ6Qj5icsLK+rJunnaeiiZORqpuopJycrJ+jmpujp6yhn6qimq6blaaglpSdn52XsaWZoqiZnJGenKOlmqejmp2ampqQloJobn1xdpGXk5CDibSpjYWYlY6KjJiWh5OViYOTk5CIjZGUmZOZl5qgoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ1ioB7iWpzgXSDdWR3fXZrcHpsX2Jbb2dMWFllal9XWXB6b21mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eto6S3rKCZl5agl62qpsGfq6SWkpyXnpiUlKKenqOokpCZqKeyw6+Zq5yqno+Xlqmeq5yeoa2YoZudoqWvpaGkqJ6rmJemnZmaoZ6enLChnaKnlZiUmZSho5akn5ihjpaUi4qOj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIWFmpGGhYmVjpuXjpCYnqOWmZKQnI1+jWWhs66EiYR3e4+Kfnd5em9neZCBgIlrdYF5iHJpc395dYOHgWp0Y3hmX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvqyrrbGyoKqmsq2irLOwxrCrraSzr7yktJygp6KhnZmXqKappqSms7WelJWdmZmwpq6+oKuikZGempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKWrlJ+fnaCqrqiko6uhrJufn6CYpJ6cn5ywpJmfqJOYmZ2SpZqZqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOameMl5Gid2tqi5iinphya256hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvrLKwq6Wora6wp66tsL2xqqilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Wo5CjsKa2uaWuo4+PmqGZk5KboJiZppZ7payiqLPDt6Wip6+fnpWeo56jnaSqqJKfoZ6gqq+pqaOqnqebpp6noKyWoZylsaSYnKuWoZ+bk6WYn6uZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2MnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx1kWJlXnhjXmWBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJaiuMO0sK+/qamUo6+psK+tprK1r6qmp6Wxq6CrmJuioJybqqeinauipailpbSknqOTpq6suLSnr6KSkZmdpZKRoKGXm6Cdh6aqpKutv7+xoamuqZeSn56imaOkqqOToKGenayup6umo6Gln6SknK2okaSbqa2qnJ2rna2il5iml6KkmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4KAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK5zfJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX1rgI1fcGpvZmBfeGRbcWhqY2ZgUlRTV15KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwb+/tLSwt5iekaOqqa20q6ayrayspKymsKqhp5uappicoq+foZ+op6OloZ+wrJuelqaurbCrqKyglJKbn6WTkJ+kl52no56to6uwqL/Gs6ipsa6Wkp6copehqqqflaGenZyurqapqJulpaOhqpKss5aloqqqnqSnp6KxopObp5uhm5WUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihi5GLnH2reoiSj59/eq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbI+OZG1zdW9gZm1kX29oam5mY1dTXGBaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PFxrKzoJ2jjqOioq2utq+psaeoqqiuq6umoqOdmqOVn6arn6KmoKmoo5+esK2Ym5aop6+sqKepnpeVmqOikpShrJqdpqOvrKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqrGnqamaqaejoaqar7GiqKyvppmmq6qrsqSTmKSmm5WShaRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJiGgaN9qX6BlIauXnuoVZ2ikoF6o5+AfMOvxYxzr7SzuXFiqa/CdGiMjJeOgWyYkW5seHh3bmtmZGRxcGZ7aWNcVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dXAoZmrqKGvop+wtbCvqa2jqKeqq6uppKafm6WfnaanpqSdrJqirKGjn6+jnpuTqqS2sK6gqZucl5Wmo5CaoqefoKabsaajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6erqaKtmaqnoaGpobOtoqqzsqKcqqiwsLellJekqJmdknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUp6iQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntvlZB9bnl0fHptW2VqcnFmgWpeYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6spaKdsrmsqqGmm6imqqyppqCmpJiro5+uq52moayanqmlnaa1n6KXk6irtrKsm6acoJaQpa2SmpymoqCqpq2hoqepsLTCsbKqraiUiZidpZuipK+ml6GVmZylpamZrpyspqWdq6O2rKCxubCenK+otLS0ppaYqaSboY+CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSnfq+Em4OehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJGOh3J5coN9cFxsbndyaoBuWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWlr66uqaadpaWao6egsq6iqaeyoJmppJSjtaOjlZeiqrW5pJyjnaOTkKGymZ6bpqSgoq+tnKOoorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOnmK2hrKOll66lu6yht7eunp61s7mytKiZn7GipZ+Hj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijKaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkIh2e3iNgWxod2l4c25+dFxkZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYqtv7+8u7Wel6ikrbaho5mVo6mnrqmrmaWhnqahoLWnoqmnsKOUq6OPpK2jnZCamqq0tKSdppypkpSXrqCgnqajnKectZmgqqO1q8KvqaupooyEj5yioKajlpqanJibmKajpZeppqyhpJuspr2slL6wrZ+jsLS7rLWonaqzpamZe6iRfXywd4qBpKWInG2yb6CHrXuhj4OolpmArImFroWglKihopeFn4CZlYB7kn6rgJ2Zloqqd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIKTi5OJeHmBln5qbH1ifXRtf3lfZ2Vwb2dnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOmqSjoK+uqZ+jnp2tmJ65oKKroK+qmq6hkaqppZaJmo+usKymoKibrZiZj62ioZ2loZmknK2Xn6iltqi/rqSpo5+LgI6bm5+mnpKUmZqUmpqko6OYp6qqoaKeqai9pJfDrKujoqyzu6yvqKK1saqsmXavfpCKnIWHfbqtiZhksIxlla19oY+Dp5abgayKhLCFppmjoaKRhaBbbGqBs2B/rXt6goCxbGdtmZeLiLFafbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5mJlY+TlHl3jJt8Y3N8YYN4c398YGlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+0sbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6sm5WuqKKOiJuOr6yop6Ooma6Tmo+pmqGepZ6Zo6KlmJ6iqbKovK+lqJ6djnyLm5ahoJmQkpqbkZmXqJ6fl6espaOkoqSpup6gxqelqaGstbeur6ihva+urpeBqZKjro6bgIakl5iQgIC4w7qDjp2ThKeYnYKsioKviaecmqWrkX7VvcKqYqS/vX1+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWajZmOlJp3f4+ZeGF8eWOMZ3iBe2BrZWppYlBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnqebmqCoopidoKysqbitp6Oal5N7iJmSppuTj5GYmI+YlKiZnpaop56ppqGiq7qeqcWjobCkq7S1q7Gror2qsLCcdHaqpLeFZYmfcGesj4qPbm93pJCaoIF1sJqWcJCNcpaoo5uYrqRybG1sZYp4bm2CmXGAemlwaWaJlZWXcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hlpWWjpSbeoWNk3RkhndnjGp4fnhkbGNlbGJLZVdKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srOqqaKunqSzqpiSvbHDx720qZ6/q6yjoKarn7qjpK2sraWOlq2qkIyFlZetn6Wqop+ko6CRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4SWjqaXjpGRmJSNl5Wmk52Wp6KZr6adoqy5n7DCqKS0pqyxsquvram6pbC5l4uhqaW1nImWopiGqZqQlJ2SqrOZm6OsobSXo6GeoaKcoaShlaynjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY2LkpKKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJKflJWUnoCFkotwZ452bol3dXx5aWtkZG9jVWBYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t66uorCkrZ+gtrGQjqrEu8S5t6mhpZ2bpZ2wqKO2p52ptaankZiso4uIiY+cp5aso6GaqJ6ek5Wjl6iaqZmUpqGjj5qnmaG0uaeqmJqQjXyBlIyhlIqVkZWQj5KXpI6dmKeem7Wjnaart6ivwq+kuKewr7Guqqu1u6KxvpmSpqSmtaKSnaaejaifjJGfo6ywmqGksqqxmaWhnaSrnp6dnJesnpKaopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyPjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkol9jJaSkpeRoJGalJ6ChpaFeHGUcniJfnF7fmluZF5waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKejsLOsrqOpp62gqLWqkI+co7K6raqroaKZepyisKSlsamWm7imo5SYqZyOhoqJm6KQrp6klqigoZKXmZuui6qWj6iZqIyYqI6euLajpZibjYl5gZSMm5OKlZGTkI2RlqGLnJynnZ63o3+Dr7WisLB0pL+ksqB4e6GstL2Wd66loIqAqX5kXGJ2n46jnYOWfm6UtJyjqK+spGWfoJR0epqXcICZqZhsgKOoimWcpZyQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjHF5opaWZHeXhoB2l2iCiYJueX5qcGVfdW9ra2dcZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamtpKetpJKWqrSusaWZqaaql3OLna+fqKunk5a4n6CPnKSekH6IiJqejauapJWnop6Ol5GehXSuj4ilmqiRlqOIm7mzp6CZmYuJdXeTjZaTipORkJSMj5OfjZmepZibspaAjJu1nbSNko+9p6F+p6J7pLC5go6Pp5+Ei4WPsamvjImWopl5gIushpydoqirqYiVh5l3pZt6h5yBl6eCgXudsnqKhqCXmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHuZgp2ahJh9kYiBgphpjIyEanh6cHBnZHhtaWxqXGRpaWVyW1xIVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3FvK+glaWntJ2Pg5yrnKaioI2Qvp6ZjZ+aoZB8hY6ZmIisnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Jt4WNsIOysIWpjqeYjZ18qI9ye3ebjqWWZ5SkebSMn5+nqZOZwoJ/q4iYoXGegJqlfZeFlbKAoX2gk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqMg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFhmRlxRTDJFNDZNYGM3JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqaummpSeoqSqopWkqbWir3+gppylnp2JlLyZk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGGgqCNrLGIpI6rmoyafqJ1gJiTa4GqdEyqeIeNnZKbqamCqqt+hKF7eqdpnn+SbGeXhpi2iZ5+bmBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuuopmWn6Clq6ufnK20oaeRoJ+fppuZjZi0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDoqiAhquvhqV6i32Emn2icHKSh5Z7nYx5bYebi5mRnKmcj4edfIKic3amZp5+d6RemHt9k3Oibpi3tLpzkoiBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtrcnJkW2ddYUtEPUQ1UUFacDI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBge2RJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6Srm5qxrKqSl6CYoKSZmpSeq5uLiJF4i4VwgJaNio+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di4+PiY6TnoGVm5+coJ+LiXecmKKNoHKii4ipiJynkZeprICujH16oJl5o5N4gHOXiIucfZWfhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZe4CKp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnW25xeHdraVtwaXd4YV5kVmFBUEVPN1ZCUm00SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhZHxpRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRucWBkZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKudpZuap5+drJmdsKeqnZaimaGfmZaWoKOZhomNaYiAcXuXiIyWloSSlJiPeoqElqOciZWPhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYiZoKSpoql9sK2koriXdqOzoqN/iJR4nHqqmX+ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcHx9bmZfa2h1e2JjX1BdVlxUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OomqKLmqmbnKeSoKujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYuKinyEbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmClp6Ri6Kefqdod21+mXOgc3F8nYaZb5KCrXyjg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXB/hGtnZmNtdXdmX2FRWmVQUWFIV0lUX1dTW2RqW2VRRUNLTEpLQkpFOFBAUE1YU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCyo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl46IhXtwfYRofY+Dk5qBd5GOj4lwf4ePk5JsmJR8iZGSo5WDjqmak5KLhYl5g3aIgG6BnoZ3gJKFh5iglXmSoqOZoImzoaK2i3qsp6SupXCpgJuRhoGdk32kgKKZhphxnoSira6Jl4t/jKSNlYOvopV2tba1yaJ0lIuCnmGel6lteZWGoJt1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2t7arS1tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeaXVqeIdma2dic3RwbVVcUlhnT1JoSVVMWFJVXGdrblVnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXp7VFFPbV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKciK+nhWY/lKGzrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5OOiIN5anmGZYOMfpafeXWPiIyCaYSFkoOMhZ2NeoyKlaWSgpeol4yRi4CJeoB9i3lwj6CGeYGUhoiVnpR+k6WnnJaWhGdueJxsomR8caV4nJhwaKeCmI18pHqgloOWcp92gImUlY+5bY+KomJ9maKWiW5zaqtrdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJucqJaX1tjoW5diYxwe390cmSlbniiZGanaJdyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RVlVVZVlTbUlYT1xIWGhoc2pZa1ZQUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZmJxZ1BraGhrbG9oZGdfXV1dYGpiaWl2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsLGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjot7hnGAiGiLinyXmnN0iX2QfGWCh5WKiZaZgnyIhZamkIGhq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpGppp2JpniWnH6liZaMspmekYOvl5+leZeJeql0po+Emm6looyShIyDvG18pa+Ch4aHlJedoX2me3KolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGb2+gnpGUYX+ri6p3gX+Op593n32FpJWdoGmah3WsZp6tjLZzdr6Mo5NZg6aNq2B1cXNve3VwYmp+bmdsU1VZVWBgXGpMXFFcSV1sbXZgW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ5ZGNuc2RSbGdnb2xyaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnIGAnqSWqqqeqKeuo5iIgZaqmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYR9l5NzdYZykYNuf4uShoaUj317goWXpY1/paWNgI2JhJR1goeSb2yLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4GccY+GeZKMhYB7cqeMcX19epeWm4SNeHt9fYiUlZOLd5GZoKGEe36Ja4yFW3l5c3lwaW5+kopyf3SBj5STcYWDgmWNf1+BgIx3dnSUdW97b2+JboSGXndpeI5mgoOGj6qcf3R9l2qJiG9/dXyEdW1sZoxzd3uXd4Raald5j2htd3Jxb3d4b11shm1pZ1ZZXldcZGtkVWFUXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmBdX+Af4B5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuamni6Gim6akmaSdq6Kfg4OWqpGdoIiZppqomIKBm4t+lpSHjoqJjHKCfI99fo+EepeOdHKEcJWGe32Si4aGkIV4foCGmKOMe6egi4WPj4SVgoaOmHdxhKqFjZGcj4eenYaKmqifoKqDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTcH+phnB9lXFqb3yBn4t/kY6LaG5dhIyMnJygj3OWjIhxdGuCdnSAWXJuhpGCfn6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFyg3dfco2CipColodnjY+DbneLgm+Di3duZGZjeYJ6lVpbaWZtdlt6eHd0bXNygmZcbYpra2JZWF1ZWGtxW15gWV5dZXJ9enNvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B+b4WJhHt9c355cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKqxoZCjoZqfnpiemaiioX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKYh4N+koOEhoqBeoCDi5qfj4KmoIZ4jZeIlYuLnJeEg3qsgZCXmZOJnZyGh6Gqn6Gio4uIk5udo5mWqqKop6GTnImYkHx5j4+FqH5+kpGSk5yxpZqUnY+NsZKYhKaMjJacoIqRnIOJkoprfI52d2WChpCKfYmdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJiIuRp5GEh46Ig4yQi3uFiYeNf3VqgYN7eZlpcWhgc4pwfXp3dm92c4FcXm+HZ25fXllaXFJncVVjW1thbGh0e3xybnBjamlof3tteH5waG9wbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ16f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SHbXiBgHKAh36Ik4Rta356l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcoqPhZKRi5yRfY16qYONkZeVjpyWhYWbpp+imp2Gg5KamZmQmaagpp6ekJeCk4t4fYiPhaZ8fI+QkYWYqaCck5yOjamNkYCejYmUm6CDj5d/h46DcHiGcXRhfoSPhnWMmICDj4KGhH6FhJVueXZ1k6OMjYabhYWOdYGMfn1yc3yJhHt5jY+Fk6iQh4SPgoOJiYh1hIaGiXptan1/em1oa2xmXnl+Z3x7dnR1dXp3XGBwfW10YGNaW15RZm1TZVpdYWpodXp+cGxsY2pqZ4B/a3J/a2pzbnhug3luhoB2goB9hXZygo2Hfnt6fH97gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfkpGWl4uan56denecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf2+LioyShqChioWMfKeQh4+SlpOWknaMo6ChnZaaf4GQmpmTjZqioqSbmJGcf4+GeoGFj4ihgH6MjY98l6SgoJKZj5CmjI+Bm5KJlJicfpOTfoeOgXZ0gnB2YH2AjodyipZ8iIxxjH6ChYWPaXhyeY2Zk5CAmH+JjHODiX19cXp8jIV7e5KOhJemlIyGkXyEhYaEdICBhYV4ZHF6fnh5cGtqZl59c2d8dXZzfHN/al5gdHZwd2RjWF1eUmpoVGVYXmBnaXZ4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfYF0doKMhn98eoCBfX+PanKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWlnI6QmI+GnKCam3t1o5+Nl3+MoYqImpV4e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOmlYSSipWXkpF2kJ2hoZiUmHp/jpiXj5eanaSemZOUnHuRh4R4hpeOnn6Cio6Mc5einaCSmI2PoYyLg5eYg5OWmn+YjXyJjYF3cn5ue2SAfIuGcIaTgJCCa4eDgYCJhWZ2b32Ik5mNfpR5jIl9gYl9fHKAeYuGeoWSi4yZo5eDhIx3h4OCgXV6f4aDc153d3xzfXdma2NgfmlqdnNzdX1xfGNjYXNudXJtYVlfXVprZFJiV19gaGt0eYZwYmpjbGZofIJraHRobG9of3yBeWyPhXGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGpiY3VWg2lwbmB4Z2xhanZwZXh7eXBfcWyFhZCdrpimqJ6NjZeHhZ+Slpd8dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYd0fX6Kf36XhJaTloyjoJd+cYd7k5GKpo+MjoqSoJGDkY+Tl5CKgI6XoJqSkJJ0gI2SlImdnZ6nmZiOlZh1j5CLbYaZkJp7h4iQiW+XnZmhk5WKjJ6MhoGTnH+Tk5aHmol8ioqBenJ6a3VsfH+Lfm6FkoOUeG+ChH5+i4Blc2p9gZeYhYCOdJGJhHmIfnZ4gX6HgX2EjoaNlaWReYWCdIiGfH9xc36FgWxfeXR4cHtuYW5iZHthbW92cnd3c3NhdmBvbHVub11bXl1dal1PXFdiYWhtc3qJa19pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhop6g316gYR9fI5yeYt5eG5sh2toX2lyY4docW9ldmdtbGF6aGp8e3dwYXdti4GZmqqgpKidioqRhoqdipSXfHasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGf4SEc3qAhnqPkYaRkZuSpJqTgXyBfI2KkqOIjYqNl5qNhZGYk5WOiIiLkp2TkIyNboSQj5GJnpmioZeXiZeScIubhWeHmo+Ue4mFkIpwlpqToJGRiIqZjIJ/kp99ko+TjJqPe4qFh3RzdmtxbnZ8i3RuhpGOknF0gHyBgoh8ZXFten6blH6FinWRi4J1iXpvgX+BiH2FjYqGjpaqjnuIfX6KhXd9b21+g4FiZ3dzdG56YV1vYGp0XnBqenl4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/h2VdaWhnYmdxjW5kaWdlaWeAend1bo6Fc4GBg3x1goiFeIV8d4OFeoCKd3+Le3tyeYNqa19waHN/a3FubXFnb2tle2Juf3l3cGt2d4l/o5iiqKGmm4iMioGPnIaSm3SAqZSRjYagjJWTkH9ze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhYiUmI+Wi4uMjYydio6QhG6Ji4+RipyWoZyYloaYiWyGpYVnh56Lkn+MhIyBd5OYkZ2QkIiJlI1+fpCZfJGNkI6akn2LgINvdnBsbW9we4Zpc4OOmIpwd4B1gomDeWdzb3aCm499ioV7lZJ7d4p1cYt8ho17i4eFio+cpYl8hHaBin93d2xpfoB/XHFycW9vd1ldb2Bval5vanx6cG1tam13YHBva3FtWVhgYWFtV1BTWWVmYnVvhIJhXWttZGJma5JtYGZmX2drgXRxcm+LgHR/goB5doCLgHmGf3eHhnaDhXuHjIB7dop/anFifGKFfG9wbHRqaG5sdndfcX54e3R1c3+CfqWVmq2fp5aFjIN+lpSCjp50ip+TkoWKmoyVjYt6cnd0gnByhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCCkYGSkZebkZh3kXqCjJKkmpOOiJSYkoOGlpiLk4uIjo+InoSQin1zi4WIj4icmZ+blpWAlIBph56JaIehiJOFkYSKcYORl4+ajY+Mi4+Nd3uTkXuOi42Slo18iHyBa3dqbmtsbXp/Ynl+jpaBdnqBd4ONfXpodW11iJeMgImHe5SRcnuGcXiOe4uNe4l+hI6Rn5+GfX14gYp8dm9oan+Ad153b21rcHJVXW5hcWFfbG55cGdwZmZzdWhxbGF3ZV1WZWBgcVNQTltlZFx4cIh7XlxocWJiZWWRaV9nZFtnb35va3Fzin12fIWAdXZ/jHl7hoB4iINzhoV+jIyEfHmVeGZxaoNfh35vb2t6YGltdH90X3N8eIZ3c3OFfHmhkJqxnKWOgop/gpmIf4qcfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKnJucm5aUeo53aYqTiW2JpYaTiZiDhmOMkZiNlImVi4yJi3B6lYl8jomLk5GKeoV8f218ZXNva2x6eVyAeY+OgHt9fn+Gjnt6aXVrdIyQioOGhn2WjWx/gHCBjYCOiX6Ee4ORlpubjH13eIKPeHJrZW59gWppdG5naHNsU15vZHBaX2xyd2Zra2JneHNvcWNfd2BhVWtfXnVPTUtgZWNceXGKdFxbZXVgYWVkjmNgZmJYaXJzbWtxdot8dHmGgnZ3fotzf4Z+eol/comHgZGKiH1+mXZlc258ZYd/bnBrgFprbnh5cmB2enuNdnJ2inZ5n4ybr5ugkIKFeIiUfnuInIaEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+ic2t1g3WEoYSRbpWPlJ+TmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mPkHaLd3CIiox+jKWFkoqdhYZei5SXiY6IjYqKhIlsfJeCfYiGipGPhnaFfn5rfWN4dGpveHNYiHqRh4V6f3+AhYx+emZ0aoGLj4uEhICMmIZsgndviZKDkYV/gnuBkZeUm5F1dHiGjHVycGVzd4Bgc21vYWh1ZlJgcGdrVV9udHlhcmNgaX1xcm5bY3JhY1ZuWlx3TExMY2VhXXZzim1bXGR4XmBkZYRfY2NeWWlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIiVhox/f5hzaHVxeWyLe250cIBXcHl2eXFkdniGjGh2gIlxgJ2Imaeco5KEfHCMlHd4iZyDhJ+NjnyVjH+Zh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsc4B2ipqIjGmXj46ck5GBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12h39xhoOKiJqkhJWNn4SJYYOVj4WIhYiMhoCHaH2Uf32ChYmOj4Jxhn9/cndndnJpdHdsWox9koKFfYCDgISKgnZidW2KgpGMg3+Ak5J+boNteoiRiJOFfYJ+gZOUkZiKb3J6jIV0a29pcHZ+XXNoblxpdV9SZHFoZlNfcHZ0YG9gXGiCcXJqV2dpY2lYbVdbdExKTGVmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF+e3Z6iHSFg3x/h3Z2ioWPmIGNgnuTdmx3dnl4knVud3p9WHmFcX9uZnh2kYJkdoaFcYqWhpmhm6KKhnNvkotydo2afImZiIl7n3+DmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2Im5CKhXtoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6SlIKJdYSIeIWBjJWeoIeWkKB/iGF/k4eDh4OIjH9/gmZ9kYB+f4KMj5B/bYN8gnRrbXd1dHd2a2ONgY5/hH98hH+FiH9wYHRyhn2QjoN9gJKKenGEZ3uFjIiNhHyFf4GVkJKUhW9weYt/dGxtaWp3emFnamlYa3VaUmlyaWJQYnJ4bGJlXlpqg25zYlxnX2VtX25UWm9OR05mZFxmbnKAa1pbY3NfXGNrdmRlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gIh2eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3OBbWh6c5RzZ3OHfHKSkYSan5ughoZ1dZR+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAinaGfYuanpqHlY+dgYlmfZOCfoSCiIlxgX1mfox8eX9/h4uPfWmAfYN2Zm95eHN3c2xrjoWKgYqAeIKBhYSBa19zeXt+jouGfIKQgX5zgml6hImMhoV5hH2CmY2RjX5ubXuIfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXlxZb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW11tY1picHZkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIGFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Fn5igmYSIbn2Mdml3l45+gImClJeJeY+Vb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpF6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJONg39vf4R3hXqHnZqVjJSRlYWIcHuSgnyCgoiDboB3aICEeHJ/gIOKh3xlfX6EdmNwc4BpeHBvdZmNhoOKfHZ4gIV6g2tccn9zgomHin6HinuJcoJucoWIj4aGc4R6gpqNjoV5bm9+hH92emRmaHtvXlh2WldwbE5XcXNmYEtsd3RhXVtaWXR9c29XZ11manJgb05XaFI/WGZeWnBraHpxW1pYa2VaY3B5X2hcXmVsaGVraXF3f4hvbH9+gHVvgnp/gn+Cf3aBhIiXiXGCjXF7hnx6eYOTjHVqeX5rb350f31vcnt6k3BvgX54Z5KLg6GZnJGChWaGg29neZWIfX6EgZiJgXyNjGh4cmtsZl9gb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClYx+kYyLf21shYyMdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R+boB2eIV7iJ6SjZGTk46Lh397koZ3foOMgmt/cmiAfnhtfHyCioN3YXmEgXFkcWh+bnVxdYKbi4B/hYBzdX6Bc4FvXG5/dXmLhIt7h4F9iHl7cm2JhJGFjHOCeoCXjIyAdW1rdoCAdXRbZ2d1bldWe1JZcGRLWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2ZvZGpNV2ZRPl1lXF11ZWB1cFpZVG5kWWRxeVpoXV9mbWdpa2lwd32ObWmChH55boB8fIF/gnp1gYGNk4RwgItud32Ae3uHkol/aHp9anN7coV6c3d+fox6eIR9fGuMjYSbnZaMgYBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZWFc46KiXZwbIWDh3V5iXiJfJOHeX5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/d4GCfo6biIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goeAcmB3gX5xZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4GRgoZzf35/lImKe29uam2BgXRtXGZkcnBQWnpNW29cT1tyb2RVS3N4aVdZWVphcIB0YF1dYGdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkb3JXal5iaGtnbWxocHd8k2xohIp8fHB/fnuBf4J6d4B/iouDcXuIb3F3g397iYyPg2p9e213eHaKd3x4gIGHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkX9/foqDcHJwY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8d4aSgnOQi4dxcm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHWGeoGTkYR6l4+WkIiCiXuIiGt4eX50Z3poa395c2l6doCDfWhgd4d9amp0aHuAaXaBjJGUfnp+fnB8dnx0f2JWeH5zc4uFgn2EcYeJeHlxcYSDjoB/en59do+GhHdqcWlsh4Fxb1xmYXFtSWR1S11tVVNZcm5iUU90eGFSWFhdYXCCc1thXWhlZWRrZFBbcElDY2BbY3BeXXdoVVZVdl1bZW5oVmteYWlnZW5uaHB3epNtaYiMeX1ye355goGBfHV8g4iGg3B3hHJtd4KCfomLk39wgHt3eXqBi3SDeH6BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPf2dvbl9kXFhlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdHqFjX96kol/dHN0fneAcHF/bYR0lIV4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZN+eXxuiXeCko2FdZeLko+HhYV7f4RsdHZ+bWd2ZG17dW1pd3Z/f3xhYniGemh1dWJ9e2d1ho6NlXt0gHZxgHt9bYBaV3V/cHaFiH+Aem2JhnR6bHaBhIV/fH55fHSLgn50aHRlboqDbHNZaF5zZEdtbUtaYVdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZGReb2NUXXJGQmVfXWZnXVt7YlFVXHVbW2drYVZqX2BuZWZrcWhwdniOdGuOjXV+dnh+doGDgXtzfYOIh4NvcoB0cXV+hYGJjYp7d393g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXpibmxbYltbYVZpc2NgW2dub2aHcWFxZlddY2x/fMrOh7mham1timxxg3F7g4l+epCEeXhzeXV1e2psdmOEdZKCdm9mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4lyhIuNiXOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fXx6XWV5gHhpdnhmgndndIeMjpR9codqb36BeW99Xllzf251gYt8gm9wioBxd2l4gIKAgnd+c3t1h317c2dzYW6LgWtxV2lddltHbWpMVlReU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGNwR0BnXGBlXlxWe15OVmVwWVtqaF1XaGBecmZrZ3FncHN3hnhulYp0f3p4fnmCh4B1cX+GhY6DcHB7eHZ1eoaFh4yFenx/dIt+fYaEhId/fn59h398eHZ4eJGTn3+MfYttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9bXF1UZ3JkYFhkcXJmgXNia2VXW2Bqf3e+rnugtm5ic4Zoc3txeIGEen2Lfnd3cnZve3Zlam9gh3WOgHNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZk3KBeXaEb4KDk4l0loqOiIWJhX14dHFuaHhfamxfbXZqZ2preXd6dlpnfXx4ZXN+boR0ZXWFjYaWf3CMZ2t6hHVudWJdcX1sdX2Me4Jmdod9bnFpdn95f4Bzfm17fIJ7eHFmbGJtiX1sbVVpX3ZVSmlqTlFOaE1Ye2hhTlV2a0xRVFVfZnWDZl5gcWhnYldpXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRmbGRxZ3JwdYF4cJmFdn9+d398hYd9dXKCiICVg25zeXt6c3KFh4mIg3mBfXWPfnyEio6EgoN6fouDe3Z7d3eanZd6iYKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1hdW1xbU2RwZF5XYnJ1aXVwZWViV1xcaIBwb3KAc4lkZHh+aXR1c3KBg3eAg3h2c3Vua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF0fXN9e299fJKHeJp9iIeDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZZ4F3dWhwgXiCdmJ3hYt8lIFvjGpte4JxZ3NmYW56Z3N4i3x+YneDd2pscnZ7cXt6dH5nf3+AeXdvZGZibYV7bGpVaGJvUkpoak9LTm9HXXtmYU1VdGNKTlNXYWp2fmVdZ3NpZmBWY1dicF1MS2pYY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21icGlzb3J+dXSZgnd/gHd/f4aFenx0goR+l4VucnR8enRxhIWPgYB6i3V0kH98gZWOgIWEfH2Mhnt+gHZ7o6WKeYiFhGt1fHp1g4CLem6Ec3mEfIGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAamtvgGdrYGh5eGpzdHNtg4B6f3x1dG16aGp5al9lbmiBdpCEaGVYYndqfod7b2pwZ2ZdVFhvZ46od4F6fJCOenZxf3B0d3qQgXmWdYaDgIWIdmpxdWdnbltsY11tcl9nYWp4aHttW26CcnRqb4F+endhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fGpqVGhhZVNKa2dPR1FrRWB4ZmFNU3JdSk1UWmVrdnplXm1xaWRdVmBWbm5XS1NoV2VeWE1VbFRKXHlfW15rXV1bY2VgeWhsYG9vdW5wd3V6mH12f4F5gICHhnp4eYJ+gZOEcXR0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB+hoKAint2hKuff3qIh4NrcoF5dYB+gHRuhm58f3OKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNneneTgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp25+d4CLjntxcn5oenB7jn14kHKEfn9/hm5kdXJkZ2dcamFcb29cZ19tdWR6aF10gG9ya3J8fnV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtcn1pa1NnXVxUS3FiUEZWYUdidmZhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZlVEpcYldnV1lIV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhtcG52g5d5coGAfH+JjIZ+dXWGeYeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZHGHeXN8enVyboVse35sj3picG9iZV1lVllZV2Nma19dXHKFaFhwblteWFpcbHtjcHd1bGJZbHNzZ3R1b2yDeH5/eHZtbnRkaXRlW2d1ZnZ2knlfXVJmZmqDgnR+YmRpXFRXXWJjj6RoeHSDhpF5bXB7aXlufIZ8dopzgXl8eH9oZHZsYGZfXmleXHNrWWVdb29iemVbd3xrbm5veHlzdWRzg5J+h4OJe3dvcn5zYnhkXHBwYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm58ZGhTZ1hXU0x2X1BKWVhIYnRjYUlUbVNKTVpXaWxxe2JtbHNjYlpaW2F3XFNMY11YaVNXR1lgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2Dfn+Bk4iEgXZziHSMhnRydnWCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCYoHp7f4mUeGN1h3hzd3Rrc25+a3h8cJFyXnBvYGdibFRaWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2bm5sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSRdGxse25wcXt9fXOBd4Bzenp6ZGV1aF1iWWBnWl52aFdiXW9oYXdgW3t2aWpybnhzcnVocYKVg4d+hHZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHJiYGtyfm1tdX9zcXhrcGFcZWxseWBmUmVUVlFPdFpRT1hRSGNzYmBGVWpQSVBaVWtra3xmbm9xYltaWFlscVdSUGZXVmhTVEZaXE5IcXRYX2NtY1hgYGFdi2pjZG15eGtwaXV5hntrg31/hJp8goR5fIduj4dyb3Z6fXSBgnyLj4KCl3R4gZOFgZ+JdYGAgXR/gnGHgnVvoZZze4aLhnpld4pubXpuZndwemtzdnKMa150bmFnZWtSXVtVZ2Fsa1pccIxkT29uXVZYVWdpdGhidGVkXFhtdG1vdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdY19jU1pfWWKVlWNucIOFinRraHxwZnR4dX1tenV2cHp/dl9lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpc3F0cHV2a22Ek4GJe4Vxc2dwfnFzb1RcZ2tmcXSBd3NjbXZWYnJsW19wZ35mbXd+c3Nza21gWmRqaXZeZlNjVFVQU2xWUFZTT0dkcl9hRVhpTkhXVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhlVFNIWlpQTXd2Wl9lbGlZYmBeXo5uYWZreXVub2l2dn9/bIN/fYeXe4CHgYl+a5OIcmd0gHt1f4J9iI5/i5NyfIqRhYefhnt/hoxzgYZzfYJ2bqSLcoGNi3Z3bHqMYGR7cGZ4cnhsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe392m3p4a2FlbG1eYG9qZXB5fmdaVlhgbHh8e3CEX2JeZ1ZYX1djm4hia3CBh314bGt5blx3c217anZ0b3B8gHNYaW1eWFxVYWJXZHBjU15haGFibFpgfmtma3N2b213d2xphYx/iXuIbXJncX1uc25kWmFpaW90gnRzXmltU2VxZVVjb2N7ZHJ3fHdrcG1rYFlhZmd0XGRVYFVSTldkUk5bT09HZG9dYkZZaU1JX0tYbWRgeGlufmRgVV9UXXVcVFNgZk5dYVVTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25odnR6g3KCgnqIjn58iYeNeW6QinVsc4J0f3+HhYaShJWPeX2Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyMjY2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY2rCdoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fptqCjpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpKUlJSUlJSQj4+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKSk4+OjI6Oh4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4qLi4uMjIyMjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4mLhoyGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiouGjoWMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYKHjYaMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIaHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjIqLjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oj48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdHQ0RFQ0RDQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTEpLSUhGRUdOR09shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tOTEtNTEhJT3BwgIaFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5ent7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9RVE9YbHN6gYWEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtIS1RwZXyDhIOCgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZEXXx/goKCgoKChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ozo6PDg5ODk3Nzc3OTo6ODg3ODU4ODtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9mg4KDg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8Ojs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT9ARHeDg4SEhoaHiYiHhoaGiImIiYuMi4mKioxsPDs+QUNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Ozw7PT5BQD5ihYOEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRGSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4+Pj87Pz1AP0M/S36DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw6PT8+QDw/P0NCRUBohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs7PDk9Pz0+PkBBRENJVH6DhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7ODw9Oj0/PD0+QEJERU1thIOEhISFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5Pz09P0FFRT5DRUNHTHWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CPkFBRVVMQklKR0tNeYaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0ZFRERLV1FLUFBPUFF5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJSk9TUlFVVlZWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlNS0pJSUZCREBBOlBRUVdYUFBPUVNTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNPT01LSkVDP0A7UFBaWlpSU1FPUlJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJQU1tSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNATlBNUmR0dXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V2dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmltbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQUNBW1xOe05PT05LTE1PT1BMS0xXTklHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ2dXZ3eXx8fH18fHx8fn18fX19fX9/f39/fn9/f314dXd6e3p2eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlDRj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18eXh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OEducnV4eXp7e31+fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQUFJRUE1NTkxKTEtMTk9QUUxOTk1ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk5TT09PTExPTUtNTE1PTltWSk1RT0dJSERJSkxMS0ZGRkQ/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LS01NTExLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJCQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9HS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I/P0BBPUNFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZHR0dKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkA/QkVDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25qd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVGREVFRkVHQ0NAPTw9Ojs6OkBEQT9CQ0VFSUZKSkxGSUlHRkZEQjtCQ0M+P0JDQ0RHTE5IS05IREhESUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRUVCQkFFQERCPj8+Ojs7PTs9P0NCP0FDRkdKR0pJTEhHR0dGRUM/PUVFQj5BQ0JDRUdISUdNUElGRkZLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVVJPV2RhYW1ncXJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HREVHQ0FAQUQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSkdJR0ZGRkRDQkFBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVRZYF9daWFuaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdBQkBDRDxBQUBDPDg6PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NFQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlheWl1kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBfaGVjYGRlZ2dqaWhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDSEU8QEVCRDw4Oj4+PTw8QkI8QD5BQkZDRUJCR0NDREVGRkdHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0hLSEpFQkRHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYWVdZGBmZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3dJSktJS0dCRERFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSkpNTE1OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX1xeYGBhYWFgY2RlYmRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dHRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BmYmFjaW5oY2loaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JJRUJISUlHSEpGREtKR0hKSElLR0pKTktOS0lMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJGRkdDREtEREpMS0lLTEdHTkpISktHS0pJSkpOTE1MTExJTUxMW3NiZHBebGxVTU5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdWdxTUtyeXZrYWFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQkhIR0RFS0dHS01NSk1MRkpOSEpLSklLSkpJSkxNTk1NTUtOTU1bcm9vbnBwbGtNUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISk1JS0lKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LTFJSTEdNTUhOSklITkhKSkhITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altddGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUhLTU1NTElLS0tTa2JaaV5famNyclpfWWtvYGVlVWtfY1thYlFgbWhcalxuaWlkWm9lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySUhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpOS0lPSUxbUUpGSEhLTUlISkpLS0lISkdMS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk9QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSFBLTE9LTFdNSUZFSElKSElLSExKSUZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUZKSkpGREhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNfWV9iW2BeW1RZWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlER0tKSkRFSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFQ0RFQkZKRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYWJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRiYWRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVDVF1ZXlhfWF9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJgY2JhZGRiWE9SUlNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSUlERUFFQ0hGQUFGREFWVUVcVF5TVmBYTlRVTlpbTUpLVGBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9RUllTXlxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PT01OTU5IS0FEQUNERkRCQUNEQExIQkxMUE9PTUZNRkZISUhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXl5hYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLT1NTTlBPTk9PT0hLRmBFRF9MRGZjQ0xbSF5bc21PTlZtWUxDUF9UbFdnSl1XVV5ETFFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7S0lFRkZIRUVLT1RKS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSUtRf1FJfFlZcnNXUG1IcW5vYVZScnF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZgWWJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dNSUVITU1CRExMR0pMRlJWTExPSEtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFFLSVp4XVR4ZGhZUlNQdmd0bHBibmdrUXJPTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmd8ZXNzb3NzfH1vfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1NSTkxPSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpLTFR5cHVtdWJvd1FkZElldnFtd2+AamZ4eGlXclJpe21panp6fWx4en9wZ29YdXVqdnVwgGFzaHxpbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzcnV5foFzdnpufH15eHJuTUpSdE5DQkVQUElLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3VUS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGhtbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFBOUFVUWFhYW1tVU1NXW1dYV1tPUlRXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltbW11dX2NaX2NjZWZkY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlVUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1RQTlVTTlBOTFFQS0pRUUtRTUpLT1FUUlBRU1JJSU1OT1FSUFBRVFZSWFdcV1NTUVFVVVZUWlFOUlFXVVRZVlRZVVNRVVNUVVhZWF5aX2FdXFpaXV1gY1xdYmJkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldVWVVYVFFQS09YU1BOVVFOUk5MU1BNTlVTTlFOTU5RU1BUUFJUVE5MTk9RVFRRUVFWV1VZWltZU1VSVFhXV1lbU09SVFdVVFlVVllVUVFXVVZYXFpbYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFNRUU9NT1NVTldRVFRVT05OUVRVVVJSUlRYVlpdXFpWVlFSV1hWW1xWUFNVVVVWWFNXV1RSUVhWVltfW15gX1ZfXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTVBTUlVaVVNQUExQV1VRVlJTUlhNT1BRVFhVVFRTVVlYW15dXFtWUk9VVlVbW1ZRU1ZVVlhUU1haVFNRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2BjZ2llZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTk9XU05RUVBSVFJMUVRTWVtXVU9STlNYVVNSVFJSWk9RU1NWW1ZWVlRWWlhdXlxcXlZTTlRWVltbVVFUVFZYWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRnXlxlYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVlZXXlpYUVRUWFhYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZdXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1dTV1VWW11YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVaWVlVV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZGJfZGFfYWBiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTV1FTVlRYWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYW1RWV1paWlhZWVpXVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJhW2ZjaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZVUVNVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWVpdYVldVVZaW1pbWlpZWlhZX19gYGRjZGVlYmRaYmZjZ2ZlXmFiYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVVRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fWl5XWFxcXV1dW1pcV1pfYV5gZWRkZmZmYlljZmVoZ2ReY2BfZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1xaW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZV1xgY2RfUllZUFdWV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXV1eXmBcWlpZW19iX2JlZGVmZ2diWmRmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxXWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RdZWZoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRhX2NiYl1cW1pXWGlxYFxgX11cYWNfXVhZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3t8fX19fXx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJydD4oKysrKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29yMhcbGxsbEI7v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6enp1c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2dnh5enl6fnl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3x9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHt6fHp9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+e3l9eX16eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e358eXx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fXt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4ent6eXt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f359foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgIGBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgYKGhYOFg4OEhISFhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOCg4SFhYaFhoaFhYeHhoOAfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4aHh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OChIWEhYeHhYeDgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KFhIOEgoGBgYGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OFg4iIg4GBgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSDio2CgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhIaEgoaGgoCHhoODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgX99foODg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAfn1+fXx9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f35+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB+fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgX6AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoKCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4aHiId/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhYB9fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYODgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY2NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6Bk5GMjI2Nj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+f4uQjYyMjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB+gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkYyLi46Ni4qGhIWEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIuPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6MioiKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCNjImIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MiYmGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH1+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYGCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH1+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4iFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBgoJ/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goSAgoKCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B+f3x9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEg4KCg4KBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYKAfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgYB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4OHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKEdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4B9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnp5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhIWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYWGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fXx9fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhYaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWHhYeGhoWGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaFhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODfn5/gH9/gIN/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ+fX1/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3d2tbX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3NzcJTAvL29vb29vb29vb28v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKyRksKmqqqqqqqqqqqqqqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDAqaLKrq6urq6urq6urq6qx0dLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+OXG0r6+vr6+vr6+vr6+uttLS0tPS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnN09PS0tLS0tLS0tLT0tLV1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Ozs/RztHU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tXW1dbW1tbW1tXW1tbW1dXW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9Stg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnZC5nLy4mbWzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+srKaOgI3Gn5iVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xnqihiazWupihnbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZ2kqqybpbKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8QkA+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGeraSclaiQmoWdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDs6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7lq2ns6uff5+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wM+UyNnBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4Wgl4+gn5+YqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09Wcm6ylq6Kfw6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfPqY6OrdjCj4271dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NS/v9XS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6PD0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTg0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ozg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjs8OTs7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4Nzg0Oz88Pz05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg3Nzc2NDY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg1NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqam5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8nOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrFtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXl1ZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX19ZU1BBRUlHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VcWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT9KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjY6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xrauprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby3wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7try9uLKts7CvrK63trO0ta+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaKbo5yVkIyPj4+TkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT0xMQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7KnprCkr661wbq1t7K3trK0q7K0rqqrr7Cys66lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WnnqCclZOQj5GQmJCWlZiXn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6SlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6musqulqqqgmpiYmJWTlpqTlZWZlpqXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJiampGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qbGvopmcnZ6hmZubmpiZm5SVm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+vrK+xrLanrbGtpqawrq2ssKign6Kgl5GUnKGcmZiSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKOgnaWgrKGhoqCgmpiWlZ+bm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqakpmenKKioKCdop+fnp+prKesqaq0q6utq6Wlq6iqrKqloJ6ZkpKUmJmXlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpqqinqJqZnZqqp5+Zp6Cfn6eopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpaKko6Kqr6ynqaOgoayurqqrp6CenqKjnp+empyclJOVlJ6emJSGnpqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64tLvGxLzCu7ezqbKtqrO0r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdXJwaFdbUUVUSERJT0g+RUEzRUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyepaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvcfGwrfDycjCwMW+ubS5urW7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56npaKjqaaam5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsbKx86/ydDLxsTGxMG7w8G+vr61vbOtv7/Cw8bEx8Suv7iyuLzEwcG6vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1dfS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM7TzcTHycrBxcvGyMjFvsKzs8jEy8rKzsXKv76/vMHHxMzMyMnAw7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2NndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jnqSjn6CkrJuWqZaMlo2MjZemsK6lnZ6doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0sPQ09bX1dbSy8nO0cvGzdLK0tXW2dXX09bYztLJztHMztDM0s+/x8bKw8zMy87PxcbHtsDKv9LNy8/Fyci/w8PIzszP0M/MysjOuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxbK2qaKlpqGiq7WnmrGgmJ2MkKatq5yVmKGdm6Gin5ydm5WKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dLM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XUzsvOyMTJxsbIzMrT09HVz9LM0sG5xbKlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqaCvrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qqzDp6mpoZiWmJqbnaGemp2elH5yZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTSys/M09bS0dbNz9XV0cbR1MrR1NXWztLQ2NjY18vIzcPJzszJy7/Iv8jJzc7Py9DNzsvOz8fLz9DKzsrCycbJzMrL0dLM09LRz9DKvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYWRucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufo6eeuLa1ta2lra6+tLHA2dLX2tzXz83LxNPQwsKyq62urKazsrmrsrzGoqGclpSXm56fn52UlpeViWxeXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMfAxcnLzdDRxtDOzc3Mz8XHwLe5vcPDvcO5srO+sbzExLWqmKWimZaRlZaSi5SNmpGUlI+PlIKJhXhwcWtuaGBgcWhZWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2M3N0MnW1sXEuLK2qqSurLm5sbLErJaNjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0cjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxrrEvsbJvcLHyc7EwsfAx83Hw8vKy8/Hw8PPyMbBxcjDvsDHy8vMzsLKy8jHy9DExce7x8PIyMLPwL28v7HByse6vaqxsqelnaKdmJCakKSZl5mRlZiJj4J3bnRkbGBeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3Nx9DV1tna29jQytDQ0tTKxbq+vrCot6u+ubizpZGOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrHwcXMxsjLzcnEwsvJwsLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKwL3By8bFxL7FvLy/w8TLxcW8wMnCxcfSxcDIv8rKxsjG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnN0ZmpbYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNz8/N1tDW2djZ0M3Uzs/Qy8S4xsG2tbyxwLa6rZGMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLu5uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNwsa+vrXBvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8TBxcLGyMbIxtDGwszIssfKw87NwcXDwL2zt7CzqKioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHH1tXW2M7M0MjNyMrFvsrBsrW6t7q2r5GNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0s7KzurW9sbewta+yu8K8wcS8v7u1s7u+wLjHubS7tsDCvLi9xsHDvLWusra6vrTFt7u1q7i8vcC9sLq2r7a6ssW8tq+7v7S2tMW9vsPFwMPFxsjLxsDGxrvIy7/PysfDxsLDt8O+vba5vse/rLW6tbe2jnh0eGdnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJy8rLxtHP09HPyMrGysbEwL3PvbO4vbm3tpuOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq6yzramrqbOttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vbu2vMi5w7etqqiwssC2uLyvsKexs7S7vKuttaautq66sbCqua+tu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8fEw7rExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj05QT0/QD88Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLMxMbBxdDIz8PEx8HGxsXFzMPKzMLEwcfAury7yre0u721tauRiZCQfHl+ioV6e4SBd25eXV1dXV9gX19kYmJjY2JgX15bW1paXVpaWVpdZW5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttbaxvbmvt6+orri0tLy4s7yvuLm1srzBssGupamiq7Gys6i8qquoq6yttLSmqK6hpK+psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvcq4v8XAvMy6w8bFurzDvbm3vcW4tbi7rrKVg4mNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpaygnZukpqyyr7a3p7Csp6q0q7S5sLa0rba5srC6ubG3pJ+jn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFVZX0hOaE9USEVKRjw9QD06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6VnqGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fHu7bDxrO9xbu2r7i/u7CytrCihIeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrrKS1uK23r6yzta6zta6wqp+dnqOisqSmqbitoqamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tb3AvcPBuru9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZukpsCyr7astLfG0MnJwce8vMXF0MC8yrq6wru1xbi1wMGzwcO7rKm0ubensLOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYV1dXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZudpaahpZygoJqYra6trrKgpaKtq6ehtbCxsayor7OnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5mXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s66prK6xt7C6trm9v7eysZSFeXVlX2VeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC5w8fAtry9tsO6tr/Atbq+uqmmsLqwp7Gvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZ2bmqqmr7Crm6Ojt6qgn66otqmmp62wpLewpLegopuYmKqmoZqsuLCioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6vpqensq6xtK+8tLm3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunqeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/v7nAwbm/wLm5vLenprC7paigpImBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqefnJ+kn6qvpp+io7aooKGiqLOhpaekr6Wxray1nqCdlZSpoaKUrLGxnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraWorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFtdWE5MUUdSYU1XUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCu8LAwb27t7m1paaxtZ2hiZiIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWkpKKjoZuqqqWZnqWxqaCgnKSqnaehnqytqaiuraKhopSXo5ucj6upsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaChpKabo6uloqSqo6uupK6xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUkpUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9x7vBx8O9vra5tKSqr66cmYeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2Oj4SRho+Rj5mTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5iboJ6umZuqs5+lpp+jo6GUk5uWlpKoqq2anKChoJqUkIyZjouQjJKMlpSQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Stt6Wjo6Ksraqoq6+zuLK9tbOrr5iEc3NoW1lZUlVSRllMUFxZTVROUExQUklOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj01Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcS8wsTDvcCyuK6lqq6qnZeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXVxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn52UpaGekpCSkpOVp6ulmpmanZ2WjYyMlIaIjYOQi5KUkKCeoKOXlZ+VmqCinpObpaWnqKigsbCmsLynoKOstKuup7C0sLm1wLGtsauQfXFyYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9srq7w73BsLOtsK2vqpuiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY6HkImYiZSUl5uZnaibn6qlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmaSnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZSYmJWipZmMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKstMO5uq2pq7Ourp6Wp31eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cYWIgoeAkYOOipSRk52gj5qcoqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgoqAipifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVkJ2OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmNWTVJPUE1DU05MUU1DUFBISU5TTUhKSkRKTEZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaamprOnpbTBuK+0sMrGubrCz8e/ta+9w6+xx7Ktp6uVpK6/t7Cvn6asrKqVlKJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiX+LkYyPhYZzioSWgXmCeoWTnZSDlY6Rj4OGfZN4cm+FjX6JgJCNj5eZmJOKj4mciJ6Xh4iWnpqhoJenr6mtqaifl620oqatmKyrmKe0oqmto5J9cm1fW05TUlZMRFRKUE1MRk9PSUVMUU1LUEpJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbqxtbDJw7m0v8/AurGxuMSrrsmup6Odhpqiuaymp5WlpKOglo6WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJAf5WRkX2JlIyEio2bjZaVipKIhpWGeIh/YEpRbniKkoR8hIyJhH9/bn5/lHd1dniEjZlwUY2Iiod8fniUdmh3hYh+ioiVio2QkpaLhIqIlISajIGEkpuWnpyUpKOoqaWjnpuwq6GkpJCmqpahqpyipqiIdGxlXltIUVFSTUlVTVNJTExQSUhGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85draco6edn6Guoaeopaeor62qtry2uLezwry3qLrJubepqre4rbbAqqKbkoOPmbGfoZmMn5aYlJGKjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPgHV/eHNudXB0jY6BeX2KqoV5emh2e45wcm14gYqMknh6gHuAdnNykndndYSEhIR6lYmIioyLgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ6gqaWfnZiMp6SToKCWnZ6kf3FnYFxcSlZPUUdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WdlpKYhpOjlpyLgpeJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OWmZ2bnZ6inZaNiqSbj52XjpaYj3ZtbGViWlhYVFFKU1VUT1BOUVZLTktOT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srquoqbGvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZGVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9lYBKkphuaHd+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHSFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln5taG1ubldVV1RRUVpPU1VVVFhVTU5ITUpNTktDSU5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ksqqi1r66stL+rvMK/pqOalaWYno6FjJaipJuak5ePdpF+hYuRj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJqRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2RXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp+muq6rsrDDsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd2eXdveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoKAfY95cG9ual5aXF1bWVhgX1NOW1tZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbWprbGuwbO7wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3J8dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYqCkI16dol+iYiOc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG5xcmVmXltaXVNbZl5XUVVZXVZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCroLGpr8Cyu8a6lo+RlIh6hnZrgIySg36LhZCOeYSCdaKGjX9/goBzg4F9bHlsU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJLaYSIe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIetsK+KgICTioKLgoSRqYeAmJiKnHNsfIGGh32OaGdneH5uhYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fnJxcGpbXFxbY2JYZ2VcVVBRWFpRRExMR09JREZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY3NTY3Njg7REZMTU1MQzcrIiYnKykrKysvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoZ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4eliImBg4iGeYmLgHWGeV9jV0xDNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RVFRVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcX2qNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHxyhJ6fkZ1+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GVj4aJiIiJiKKro5aJjpiAe4KJenpvZ2t4fXh8cWljXVpZXWlcYWZfWk9MTlhTUUlRS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5uapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSnI6EgYKMi4KKjoSAi4BtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ251nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaiqMHDrsiveLqUmnyMoZ6YhJOFgo+hn5OZkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPj5eltqmbjZWig4eThH5/a2prfX5+f3FfW2JeWWZqXGxrX1hLSE9TUU5NTEZJUURETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4CBi42JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48ODUyPD9SNUhISExMTU5SXm+KfHOCfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfJ0c++m6Bwaaupn4STkoWcoZqamqeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZKaqIiXkI6BiGxzc3x9em5mXltfXmFnZGBnZ1xSRUtLUU9JSk1GRk1DSE1GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKhpCQj4KDgImMiYWThYOGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4xL+3paOwsqytqqOLlpiFpqagopiCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK2ztaKVpqqJmoqTipV6e36DfGVeZlpjYF1iY15mZ19bT0RKSFRPRklMRktHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY+DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlRVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLSutaCoqKOom6mwrbO6uLionLipjaWPkpOgh3mBgXNYX2JVZGBgYl9fZmBbVUpERUxWUUlKS0VKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWJkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VdV1BfVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVHV1RQXo+krqSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q3v7i6uLqtrbGmsaquvrC9vMPDrJm7qJWuj5iZq4l+gHpoVWBfVmhjaWRWW2NZVlRJSEdMUUdESUpBSUQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgo6WioGEgYp7fIuIhnyKgoGLhJV9eHp1Zk9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vcG8uLa8vLe+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrqJ6Vlp6Yn66lp6eln6SToqews6iysry2wb3TycnTxsLFzMLKxMC+vsC8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxvXV9fXVVfXWhlU1lhVlJWSUVGTktBPkhFPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlot/g4CDeXuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlVS0RCS0tIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7e6trm5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6SdrKSqsa23sLy41NDO1s/JzNLMz87Kx8C/wsq+wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVteWlhbXlhiYlFbYFNRS0NCRkdFPEBGP0JJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uMCxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaWBmaWltWm10l62kvYiHZ1tvaF5aWVRIS09QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiZGJj5GSnZuhmJuVloeemaaarLCor6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/bGFaW1xXXlZYZFlPXFdOUUNCSUVDSTxBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG9kW2FgS1BSVU5ZX1BeXU5RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmorK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJyYmZmenquspKeirKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcd2xjW2BbVV5RXFpPT1RQTkg+QUdCQ0Y9QUI/RkU+QD86PT09PEpCNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlze77Lmn+NsoR2coV3aWFqXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6GkpGdl6ewoqChpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPMiXBtYF5dVlJXUlpPSkdKSUpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dW59doV2eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6BhImRjJ6foJ6Rl5mgo6SmsqSls6CipZ+hqaGisZyHn5KSk5GLjouHhI+EfpycjI2ChIV6lH+DqpajjJKLmJOLfZeKmpGqs5ibnKecpr3Dxbm2xc3R0NLQy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtHV0bGJbV1FTUFhVRUZKSUVFPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxdIaNfZeRnox+h5KDiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoJxbmM9XmhycHFwbnh3gmVpb3J2eHJ7jIePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2IiIOFi46gmZOIg4d+bJl5hJmHiJOMjpWMhnubiJOPrquUlZefmKautbyprb3Gy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1eGZlWFdOUVJcR0JFSUk+QT49ODo+QDw+SD1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoOBgoV/hHx9hJiOh4t+hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBmTmVjgnuBd4aikIt5end7hIB8hHVtlJaVlpCYkYOJj5eal5emnZiglp+TkpejnpqrlpGRi46Tg4yFiYmBhpCRnpyZiYWLgYaXe4iJn5eQiY6Ki4J8oYmQi7yhmJOXmpyopqWtnqe1vsC/uMbJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVVVE1LRE1EOz08PDk6PD85PUE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6inx+gH+AfoV7foKRioWGeoWIfHZ+dW19fYd+dH+SnpGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH6KhH2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWSjo6RjH+Qj46LhImTlpqfn4mMlJKdkYOMf6aZiIWOg4aEgKWGiou4mJ2RlZahpqCdnZ2jrra6tKvAxsrQyMfNz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk9PSENMQz09Pjk5Ozo5OTw9NkA+Pz09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeIp7e4B8f3yIe318i4eDfnWEhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuGi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WXkoyTlIaAi4mTjoqKnZeZo6KGk52WoIuKiY6dkIOIj4CDh4WlhYuQs5ickpSXoaCemZKbnaexuKykvcLHzcjGz8zQzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpWUVVXQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbXeLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlpiEgI+LmYiOkKqXl6SiiJmelpqJj4eYmIqFj42Bf4ePpYiNk6ial5SWmKGYn5mTnJqisrSlo7zBvsfGxcnIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1xbTUlTWUJBR0Q7Qj44Mzc8PDo4PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aBg3xtbot/e314eHyFh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKKhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5WZhoSRkJx1kZizlpeloYedmpOPi5CKl5uJi5aOhn2MmJ6JkJCcm5qTmJefk6CdlJ6boLGuoqS3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNeVE5ISU1FQkNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3KNen6CfHiGi4mGhJKmu62osr2wpa2zs6ijobCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZyUlZGXoJiau7uuyqFqt7irsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlo2LjZaYk52ZtJeWq52KnJSSjpGSjJmbipKekIuJlp+hjZSNmJqdkpyYnpShoJScnaWvqKGls7iswsjEtrq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQXFBORUM+PENBQjhAODg1P0c9PTY8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqsLAr73Gu7O0wL20rauztoyos62tvaubu6Worbq4q6emoqKko6mvsrGrnZykmZuYl5+ipqaSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWmI+SoZGJlJukrJSWj5ScnZOhnZuYn6GUmp6npqSipLCzp8HGw6+wurfFxMO/zabHxMfEvdbQzcTKhXFwX1lXXFhMSkFLQUZHP0FAQzs6ND5BPT01PTY+MzQzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/CzMLDuce9u6+rubuYs7e6ssCupcGkq7C8vaquq6OjnqerrrSwqpygqpyhnJafsLWojKO6urbBvKypnbOlpKiUhY6pxMOkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWYpqCvnYyrnI2Wj5KRlZWOkJWSj6GUhpefoLKelJmToKCYpJ+aoJuglJiepaSmpqSvrqbAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHJ2alpVWWdQTEhCTEtMSkFBPkREPDVBRTs7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJqambq9x8jJwdLJysLNvcKzrby+qLvAvbvDt6zBqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktriwrJSyrKysl4eaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlaOeqp+RpZqMj4+PlZaIfI+Wk5KjmpWfoZy1pZCelqWjoqWenaaYnpWXm6SjqaeisqyovMDDr6Wzt8y/ua/Es7u+wbiswsPCwJdqd19WVVlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf3+QiIqRgJahma6npJjCvcfDx8XTzc7Ny7zCt7C6vLS9y7zDwba3vK2zv7q9rq+ooKmotq2uqbK3m56to6ihnqu3uKqlsL/Fsr66tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpJllmKOfsqWVoZarq6mnm5+ml5iWmJWhpKiln7arqrq7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtYVVNTTUVJUk1LP0FIRUVISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop+vvq+hx7zExMfGzs7O0sq+u7axuru8vs+1w724ubezsbWzuLOrp5yrrLmqqaevr5ijr6WnpKW1wLGsrLS/w7rAurSoura5tK+Wpa2urqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6GgmYqNkJacYEqWnJqVmqWWVZewoK+cn6SUrq6rpZqgpZSTmJiNnKCnopq0qaqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWtjWldNT0pET09QUjtHS0lHSUNDPjpLVT9BOj1FTTA3NTM0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqLCZkZeHi6iWjoiThaCIhJ2Xj52hm6Oltcm1qca6wsPIysnIzM3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisu7+orLa3v8G/vrm0s8Syub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6qto6OfpKiRkZmch5Sdop6Wsaepq7m2vbKyrr65tqCjp6ilppybrampi2BjX15PSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuhn7uvmZWfjJOrnJGSk4mrjYahnoyjrZSjpLbGvrTAusLCx8nFws7Iwr65sq+5tcHCyrXFssG8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq728qK29tbi+x7y3trjBsr7BtKq1t6u+pZCjmJKioL2fiZqgmZeeno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uXiYykopSdop2gta+lpJOvq5mqqp2do6OokJSUn4KPnp6clamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl5cSUdFRk1RSU1FR0dCU0xKQkVHQVZTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgWRUNDktMTlmXEZDQ51wYkdFp5ekn57DrZyXpZiaqpyWm5uPqpaVp6aVrayYoqu2xMK8vrfBwsDHxL/Nxru9ubKwubO/w8i1v7C8trm2pqSrrK2hoZqqq8WipKmrpp6sr6uiqam+uKetv7K4t8e2tbm4wLPAwri1s7SvvqOXo5eUnJSun5Cio6Wjo5+QvaSpnqisnZ2hm6WevaGZo5+iqayhnZeNlZ6TnoePhI2Tn6SgnrWspZyVsaeZrqadmamdn42YlJ6DjqCam5KlpJqYq7G1saqlqq6sm5igoJKPkJWonpRlX1dgXE5IR0pOTEhFRElBPlFJQTxHSUhcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfnq6gk6OflqSgpqmsmLaxoqqztsXEvb+1v8K7yMK/yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+qrqClqa2voqaovbWmsb25t7bEs7S4ur+0xMG5ua6ztbWjnaWVkpShrqCZop6oqKujmsKsqZ6srpubnpmmoL2hnaSYq6yspqKajZqfk56Jjld/lp+loaC4qqaTmLWjnrGgn5qulp2NmJOcgY6fl5WOoqSWkKatsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LSEpKTkZFQUdLPz1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02en6GZnsSopaK0op2zqJOrpaCjn6yprJ27sKistrHHxcHCssLDvcbEvcTJvK+wtq2wtK+/xLS5sbC5tKyZqLGpqpqdpaGnwq2brLGcqqOusamkqL22p7e7vq+3xK20s8PAtMe0u7istLatqqKmlpWVpKyin6Cbp6uwr6+7sqagqamZmZiToqO4oKGjkq+wrKWnn5KhnpWekJCNlZ6aop6ns6amjJizm6Ktmp2brJCdk5WSmX+RoZaPjZ+hlIumq6+kpqKcoJ6RkZqThYuRjZudf19kWmZkSkhMSlNCQ0BJSDs7Rj85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSqs6KktaqWs62noaSyrK6pu7KtsbW0xsDEw7XAxL7JxLW/yMK0q7WosLmsv8Szt66strmlmKqyq6qYn6aXrbu0m6iwm62grrSyp6u5s6i6tLmzucCqt7LEvrXHqL+vrra1qaesoZiXkqaloqKYmKWvuK6ytbagn6ikmpWVlKSgt6KlpZavsrKnqqainpqam5aYqJ+gmKGerrKipo2Xrpikq5aZnqOQmoySlpiFlZ6UjI+cnZSLqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1xqaU1PTk5UPkNBTkM7Okk/NzdST11fUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6SjnaKmv6enr7GhqbarnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMXAuqm2pKy7rcHCt7eprLG6opStsa2ylqSnkaq5qp+msZ2roLC0s6qptratva20s7m4rbmxw7u/v6bEq7G3r6mrq6efmJmroaKhkZiisa+zrLC5mpypoJqXk5inoLappqOisbG0rLOorJ+boKCbnqWcopedo7Owmp+Qk6Wan6iZlKKdlJeIk5aSlZack4iQmpmUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAPDtJQTc6WFBkXlBXV0VZX15NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI2MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iqrCspLK4qqa2taygrbW9r7O4u7q+t7bAwr/IxLnFwsC/uMS9wbevtaert7K8vr60qK6xtp6Wq66orpemqI6nu5+lrLOfrKKxsLOsqra0tb6usLG1rLC0s8G7xresvbCxuKytqqOypp6lqp+kl5GaoLOqs6uqs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZaZkpKdmZ2fnZCrnZaXhJSWip2YnJOKjZaXmpempaOfnZaVl5J/j5SFe42SgouVZGtxZ29xXkZZZlZEQk1YRFo5SEI2PlxRaFxPWV1HW15dT01SWGRKSkNcYl9QS01OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23pa2qpq+ut6qvtbunprG3xbextr3BwrW1usS+zMa5w8C5vrnDuMC5srSrqbq2urm+tKqtsLWYmKesqqybq6uPq76erK6yo6ugsa2zrq62srm4qq6vsai1r7W8vcqzqre1sbSvrqehtKCbqK2gppaWmpqyoq2gpq+XoaSampOOo6Wos6mhprOsq7alr7K1r6SZnaynmpifmpmrt6OXk5GOl5yhl5aUqp2akX+Sl4ydnJmWkIqUk56ZpaKioJiWkpOVeouPhXuMioKKkWptd211e2FFYGtZSUhaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqtpqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2/v7e/vLG9rae6ube2wrarrLG3lJanrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4tKmvrLKnt6+3tMTGt6m2tqywramoo7agoKexoaSUnJmVsZ6nnKCqjqmjnpuWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJOCkJSPnJuXlpWIlpCYmqecpKCSlpGQlXaEj4d7hIGDi4psb3Z0e35cS2VtXEpOZFw/YntHSThHZ1dlXExeY01YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmqWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v7+6vryyxKepubC2tr+8rquzsZygp7GtpqavpZ2yta2rsbKsqai1u6y1s7WttK2qrKisqbmusrHIwLmlurCprKylqK6xpqWjr6SpnJ2cm6+ao6Ojo5Gtn6SgoKKrpqe5pKy1tqWrrKmtsLauop6jqaqboJubkqS0mY6JjYeQoaCUjJScn5KQg42Skpyal5WTh5eTlZmnm5+ejJKRjZB2fY2FfHt8homIcHJxfXx9XFNkbl5OWWdcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaWppbO1srW2srKhq669zLqtwLrHsbSttMLD0sXGvsCyvsDCu763u8SnrLessre8wK+rsaygo6etqqiksKOqsqqwrLCvsK6rs7ynt7GyqbOqq6Wlo626raqyw7q2rbupqaesqaiypqqko66qqKKenKOtlaWemJ6ZrJ2ip6miraakrau4srKhqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlIaWlJOXpJycnIqSkI2Jf36HhXx2foWEhXJxcIh1a19ZYG5iUXNxXEs7hHxGP1d0WGFaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xrLPEw87Pw76/tMDCw7q/s8jDq663rbK4vr6yra2rpKeqsKinqLGltK6rsa+tsrG0rLS8pLizrayvqKufo56wt6uqrbu3pbe2pKmnq6uqrqGpp6axsqSnpaGhrJeqoZWboKaepaKrpK2jn6exuK6uo6ajm6qrrqmdoqWkpJifm5aPmJySgYKPiIWcn4uKjouYjY6JgouXopuRkJqLk5KRk6OZm5qKjouLfYaBgYN6c3+CgHxydYukh3hrXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVZUT1xdYVVLTmhWVldJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Gmo6yxmKuqrbastrKspqyqqbzAwLe4sru1prKvxMnL0b/Au7m/vsG5wbnAxK2xtbGzusC+srCurKqrqLaqpq6vqrmwqLKyr7Ott6q3t6e0t6uspamqnKSetLOpqKS0taC3rqCqqKqoq6egq6ypubWpqqmpoqqgrZyTqqGdoKWipqOqn52ntK+opqqjo5ilp6eqnKKko6CZmKCRjo+YjX6HjIeDnZ2Gg4qKjo2Oi4KFlKKajYyZkJKRj5Ofl5mWjIqDf3SGgX9/eHSCfnl2foCHnY9vcmdncHdcYXOIa09emVZIbXhVZFZRY09NVlRVUE9YW2JVSE9pVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSYvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspa2wtLWwrKawqqi6vrvAsK65rqG2sMjHyNHAvr27u8G9usLAvr+usrKxtby7wrGxs6uzqaS1qKWts7O5saOuuLKwsrururCqrrarqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrGqo6CuoqGUo6OjqJiaqKWYl5iej4qHlYh9jYaEhKOWhIGBi4aNi5CDg5OfloiRnJCTkI2RnJSXj4qGhnd0gX98dXh5f3lzc3lnf4akdmlfZWuAdGeIjH1TWG9eSnhzU2RUUV5NTVJaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glp6ykp6Stp7WzsqulsaequL7AvK+nuaqmr7HJx8jRw7y/vri9vrzIusG4sK+0sbq7uMCysrqsuKyitKenrLK2ubOoqL22rra+sL2nrqy1rK2cqa+joKWtq6icnquzpbSom6qnqaOpnqOpqKm9rLSwrp2qpKGunJuzo5aknKWln6Wcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Pg3+TmpOFk6KMlJGLkZuSlYeJfn9ye3p+fGh4fHl0b3B7Z4R4hIlkYWdhcoR6bWd4XV5UP1d7bVRiUFFYS0xOcnVdSFpbZ1lFVWVQRD5KT0RDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQko3R1NgVSo9OURXPSqQlbKaoKCqpqWhq6W4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtbOytbK8t7m9ta25tb+toLOnq6uwtbi1rJ++vaqzwbS8oa+ztaqsn62wo5ymqaqknpulsaewoJ+rqaehqZykqKGtvKiusa6hq6Okr5+fraaXn5uho5yfnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlI2Ie32Lho+Ni4mEkpiQhpSjiZKSh5CakJOBiX15a352eXhjfHpwb29xdmeAc2qEaGVnX2xzjWxhaW9gbz1aeWtVXk9QUUpJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTEzUz5lX0RMNktWZE8qOzFOVz0jlJmtmqGYqKWjn6ikuLCvpK+wqau4wbmzrZ+5r6uotLrIy8i/tsK+r7S9t8S2w7KuubKzv7S6vbeoubi9qqO0qKmqsa66saqcvL2lsMG1tqKvtrWnpqews5+epKaooqWZn6yoqZ6gq66moKaYo6igsbmfo7GvoayhraScp6apmpqbn6SVnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5Oaj4mVnoiRlYKMl42RfYV8c3B9cXR0YHp4aG1vcG5ofXFje21pZWJdZYV+X1pzanFKSX9pWFpOUExKSFBSUUlPXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl62hoaGkoriqsaW0tKmoucS1s62ft62urbC0xsjAtr7BubC0vLa+u76vq72ws76wvMO5qLu6t6entaioq7Gts7GonL+4pq28t7KfsbewqKWnr7GboaSgpaWgl5uwp6Gfo6ivoZ+hlKSkorewoaaxq5+so6+YnKqkqZ+Xmp6lk5udm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6jpaJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpiMj3qBenByd29vdF95d2Rra2toZ4JtZXJra2RoWGFzf15abHVpWUV9XVtYT09LSEhSVUcyOl5ebFBEV1VZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmdbSFRDVF1oRS47MV5RLDKWpKOYlp2qnqaho6G4qa6hu7ilrL3Es7CuorWvra2vtMTEvbO+urews7m4uri6rq2/s7S4r7/Bt6u9urSlorOrqKqzrK6yo53Dt6apt7ern7O7qqemqK+rmaKnnKSnlJihs6aanqWpqZyhoJSln6S5qaSnraaepaGok5+poaGhmZudoZKbnZeho6ycnJqilpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWVk5KMkZWUjo6Ue4KXj4t3f3xsdXJtbHNieXRoZmlnZW2EZ2doZGZoaV5lYmlmWWV6YmBQc1RbW1NLSUdJT1NAIStpXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+lp5yenp6kta2nqrq3p6zDwLevrKK1rqeur7fBwL2xwbewrrK2tbm4tayqvLSvsrG9wLeuvLyxpJ+2rKamtaqrr6Ggxayqp7G1rKy0up6oqauxpZidqp6opZKapq6jmZ6kqqGboZyYoJ2ntqavqq6hoZ6doZWgpp+ioJmcmpyTmp6Vpp+uo5iXn5aVjpWYjI+YmqigkIeKioh4hXeCgoKch4qCiHt/hIiGhJCElpWPj5CRkJGMk3uDlY6Gc399Z3lwa2tsZ3Vza2FnZGJzf2FkZWZlaWliZm9aXlhdbGNhTWdXW2BWSUdIS01SWD85YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKMrqCamaCXpbSyo7K+t6Gxxru6sLCjtqyrrqm5vr27rcCyr6+utq6zubOnq7mxr66ztru2r7m+rKaetaugobGlq7CgpsWhs6aws7C3rbWerK6srqKZnaeqpp+VnKemoJmlo6mcmp+clZ2erbCmuaeuoqGamp6Zn6OapZ2Xn5iclZqhk6mXraiblJ6dlI2Vmo6VlJinp42NiomOe4F0goKLmIWGfImIhISKjIiShZOckpGQkJGXj5B/gY2Ng3CCf2d5bmhramdxcmtbaGNhcn9gZGdrbmtmamZkbFxtbXZxYVNiaGNlWklHTE1PWVFQVmFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuNDw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7Gdm5Shm6mzsJ+5wLahtMK7vbmxprawqa6luLq4uKy7sK2rq7eqtbmtpbK1sa+psba2sbO2u6epoLapnZ+qo6qunavEma+msLG3taysnrGtr6qim52krKmclZynpJ6ZqqOllZqgnZKco6uqqbqep6Sgl5qanqGPa6OWmZ1xg5ecpYF2kqyonpWXopKKmJmAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXiLhH+DkIBniIBodmlmWF1pdG5OUGpjZnGCZl5kZm9raV1cXomQhYhoT0tDOEVUZ11KSFBQVVZMSFNhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU5hPCsvjqSaiJWxm52ToJyrrqujvcWvqbfCuL68rae2saarpLi0s7Owua6qp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7G0ua2upKitqqumoZ+coaionJehpqacnKeonZOeoJmRn6iqo7Svo6KjnJaYmZejiKGPkpqIoYiVn6J/pYCorZ+UlJ6UiYRyeIyOg4igdYiNaZeJZn5zeaBvh4eDfox8f6Ggn5l/e4eedIiOdpuKbIeCg25pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtralqIcG15codoh4RZXkZNPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFUXjcvKI2nmISdrJ2ZmZ2fq6qoqr/Dr7K6vLjBv6qkt7GqrKa0ta6vs7arqaWxraW2s5ustba0pqeos7Gtsqiunquhs6mgpKWboqWesbiVpqent76mrKepqqunpqKgmaGopJqZp6OlmZylqpaTo5yVlKSmpqG2pKOgpJiVlJiUnIiukJiViqqMmKOdhrGBpa6elZugl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFZOWGFPVk5GVVxYUVBSi1xXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWls0MSGPp5SBp6qfl52epa2yqbHCvbK1wLW4v8KrprStramosLWqsLa0qKimtaWoua+csrK2qqWkp7KvrrGmq56npLKkoqGgl5yioLKvlp+kobW6oqqooKytpKKdm5qjqqCYm6mhn5ieqKiRnKeblJ6ip6OhsKOen6OWl5OYkpmFr2tqi46qf2iFloetZnGfnpabqJdxrqGkfne6fGyhj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2h/kXh6aqg4Sq9bWFRtY1pMT1hfXFdWO06IUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npZ+jpauyuK20vb6wt8WyuLvDp6mwrLCpqrGvpLG6sKWlr7OjqrmpnrOysKOloaqtsKyvpqifo6KxnKOdmZaZnZ6wqZicoqC1s6Gqm6GsrJ+empego6qdmZ6loZ2aoaikkJ2jm5ihoKyfpaagmqChlpWRl5GahrWbtXmGqpq2mXeHs5u3f5SXmKyXf2uBpnqBhYeRlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW5jcXyGgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLTAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7bCsLzDrbm3wqutra+vp6+zqqKvvKuiqLWto6y2paWys6ijop2nqrOpsKimnqCgsJagmpaWl5ugsKObmqSota+hqI+pp6qbnZaYoKapmp+do6CcoKOlpJabnpianqOrm6WanJqioJaTkZOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYaigaWCeqx5j51Wr3uJfp9quVq5d4WEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcodsl4dfUrW0yIV/iXxjpDNCnXVcUGpoZFBAWGZZZGFKSE1rSltTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbSnpLy3wbC6wLK3tb20tqiysaSys6agr7apm6i6rqOwsqGytLGhpJ6eqKmxqbSppZyenqyXmZmYmJaZoqyem5eprrGpo56OrKKnlp2YnKGnopiioaKhm6KjqJyfoZ6VmZunoZymlJubn6CYkJKVkJ2Ism5otXGriHCOp3O0dXS2e5yZpo6QnY2jfo+eo36wdYOR0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOGYpeIXlnKnW/AgHRNS7VTVcZkVVFqY2VYQU9qX2xpUFVGSTk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam6rKa1pae2u7yyu7+4t7W8vLSmtbWjsrKjoKywpZinuq6ksrGdtLiqoKWdoaqlsqisqqWanZupn5aVmZmTlKSqoZiTp6uxpqGWkqyfpZKUoZylp6CVm6anopujoK6aoZ6ekJaco5+cpZSdlZminpWZlpKbhax8eKh2o4+Lh6lwrouEqISamqOLk5qLon2Sl4euhH+Cs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlJ+3sZmzwayosqeqsrq4tLm+ubizt762prm1obWtoKCprKCVp7asqLGxq620pJupoKCoorWnpqqkmZ6VpaKUlJyZkpWkp5uUkKetsKWglJipn6KPkaKaqaahlZqmqZ6dpJ+tnaGdoI6Vn5yfoJiYnJaXoaCUmJGmnYepfn+meaGPkISqcK2NgqeGl6GiipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXqtaiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU2SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZmYvq2Ys8Kuq62oprSwuLG1v7m6s7K5vKq7tqGypZ+mp6eflKqxqbCqtq2qr6GYoqCmpKS6o6OsoZebkaOglZWempSYoaGQjoypsLCmnZaap6afjZKkmKisqJWYqaifn6CkrqOhnqGOlaGZn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeLpnS0enW0gpSmpJSdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NaUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqbnLqjnLG/rq2rq6e3qbivtcG1vbKxu7irwreqrKGdp6SinZKrq6e2o7Oorqqhl52ooKWruJ2jrZyWmZClo5aOnaCbmJ6gkZOVq7awppmTm6ypl4yUppqlraORl6uypKCeqKywmaGjkJmil6CblpuXoZOcqZ2UkKqZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim2aiHFtjaR0vV13fVthebxqWlZbaXleaWFkZmJteW9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExcLTZAOaean6G7o5ixw6+tqaqssai5r7fFsbuzr7ywrsGyraajn6SinJyRqqWqsqS1p62kn5aaq5mnrbido66ZlaGQpqCTjp2jnpifmpGWk6+5sKuVl6Onp5SQlqWdpK2fkaCoq5+bn6mksp6jpY6nopWimpyXlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Bu7yZeoGyqHCAdJG5g3yGhoqHjXuKho2XfaS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYlng3lteWKLrHB1hX9YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6eWs8Kzq6qorKuqu6+xxq+1tLC4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ6jpKKLk5KmnKarnZappaacmaCop6ejqaGSrJ6Xop6XlpidnpCwqZScp6KPa39qnKl5iXR/m492e2aHe76/wLpvkoNxlIVfcmpaXZqJYWSHjpVrYH+UY22cdmKUa4CalZRlXmBjcZqJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01EVlxmYExaV2ZjX09abXZqclJPREVNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocKkmrS5tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJunnaeiiZOSqZuopJycrJ+jmpqip6yin6qimq6blaagl5Wdn52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY6KjJiWh5SViYOTk5CJjZGUmZOZl5qfoZqblJ+bjYJ6pIVsaXuRfYB1iYuCcoJ4eXZ1ioB7iWpzgnSDdWR3fXZrcHpsX2Jbb2dNWFlmal9XWXB6b21mU09GUjlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaKfnqOok5GZqKiyw6+Zq5yqno+Wlqmeq5yeoa2YoZucoaWvpqGkqJ6smZemnZmaoZ6enbChnaKnlpmUmpSho5ekoJmhjpeVi4uOkJiuj3yVm4KRgYmpqIaAl5aKhI6fiHuEkYaFmpGHhoqVjpuXjpCYnqOWmZKQnI1/jWWhs66EiYR3e5CKfnd5em9neZCBgIlrdYF5iHJpdH95dYOHgWp0Y3dlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvv62rrbGyoKqmsq2irLOwxrCrraSzr7yktJygqKOhnpmXqKappqSms7WelZWempqwpq6+oayikZGempqUkpainJepnYWdqqyjtMezn6mkqpaWmJqnnqmcoKWrlJ+fnJ+qrqilo6uhrJufn6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aEk31lf4+bkGN5jGxoanqQo6trZJmXfmeFimVlaWh6jaKOa2iMl5Gid2tqi5min5hzbG56hIyGeVhlXYWCXmyLioJ3XGdzd3eRgIeCb3iCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pZ+6vbqvrLOwq6Wora6wpq6usL2xqqilrrCwn62YoKSeopqap6ycrKOmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7payiqLTDt6Wip6+fnZWeo56jnaSqqJKfoJ2fqq+pqqOqnqebpp6noKyWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGje6aYmHOqgnzLwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9a6Wyb42Bb8p6f5t3kYOOgHd5gYB5cXuAhnB4hYuTeWx1kWJlXndjX2WAYl50aG1kYlhLVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJaiucO0sK+/qamUo6+psK+tprK2r6qmp6axq6CrmJujoJybqqeinauipailpbSknqOTpq6suLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoamvqZaSn56imaOkqqOToKGdnKyuqKumo6Kln6SlnK2pkaSbqa6qnJ6rna6jl5iml6KkmJ1/zpR6e6WCepaXm1+tj12OqIChoX2nlZt0q4OAr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrlmjzW6Qdnvbe3+ZcX6IknV/ZXuIdnZsfodufYWQkX1rgIxfcGpvZmBfeGRbcWhqY2ZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21rKayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fs6ipsa6Wk56copehqqqflaGenJutrqapqJumpqOgqpKss5aloqqqnqSnp6KyopObp5uhm5WUkZegcYaMmHaFqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoihi5GLnH2reoiSj59/eq1WnMR7kHCTwX2BlW11cIxtZndlhm9hd25yboiKkI+DbI+OZG1zdW9gZm1kX29pam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOWn6aroKKmoKioo5+esK2Ym5aop6+sqKepnpeVmqSikpShrZqdp6OvrKKstam5zLGtpq6rlpWcnaKZn66snZahmZ2dqbGnqaibqqijoaqbr7GiqKuuppqnq6urs6STmKSmm5WShaRqpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF6o5+AfMSwxYxzr7SzuXJiqa/CdWiMi5eOgWyYkG5seHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCwqa2jqKeqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK6gqZuclpWnpJGboqifoKacsKWiqLGstsextamsqZWRnZ2imaCltJ2aoZSbnqerqaKtmquooaGporOtoqqzsqKcq6mwsLillJekqJmdknyqbJ6EiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUp6iQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHg5Nkjo+ckXtvlZB9bnl0fHptW2VqcnFmgGpeYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpaKds7msq6Gmm6imqqyppqCmpZiqo5+urJ2moa2an6mlnae1oKOYlKirtrKsm6acoJaQpq2Smpyno6Cqp66ho6epsLPBsbKpraiUiZidpZuipK+ml6GVl5ulpamZrpyrpqSeq6O2rKGxubCenLCotLS1ppaZqaSboY+CnU54moKAn3qEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSnfq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY6RopZ7fJGOh3J5coN9cFxsbndyaoBuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWlr66uqKeepaWapKehsq6iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWhoq+tnKSoorWxwrCtqq2qkYeRnKedo6SdpZeemJiYpaOnmK2hrKKkl6+lu6yit7aunp62s7qztaman7GipZ+Hj9G1w7d6h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYqffZeZh4eQc66CpZuijKaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfp9ic7K4aHePk6SXfYqLkIh2e3iNgWxod2l4c25+dFxkZG1tZWhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraio5mVo6mnramqmaWin6ahoLWnoqmnsaSUq6OPpK2knZCamqq0tKSdppypkpSXr6CgnqajnKectZmgqqO1qsKvqaupooyEj5yioaajlpqanJial6WjpZepp6ygo5uspr2slb6wrZ+jsbS7rbapnau0pamZe6iRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zloqqd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVscoWZXWBbjKBtlJClmIKTi5OJeHmBln5qbH1ifXRtf3lfZ2VwbmdnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlZVUUhGSUojKCi8kpuEqcbDtsG0n5qtoK65pqOOmqOjoK+uqZ+jnp2tmZ65oKOroK+qmq6hkaqppZaJmo+tsKynoKibrZiZj62ioZ2loZmknK2Xn6iltqi+rqSpo5+MgI6bm6CmnpKUmZqTmZmlo6KYp6qqoaOeqai9pJfDraujoqyzu62wqaO1saqsmXavfpCKnIWHfbqtiZhksIxllq19oY+Dp5ecgq2LhbCGp5qkoqKRhaBcbGuCs2B/rXt7goCxbGZumZeLiLFafbRcpINryKJmn4F7u1l2tVqyfVOvgXqsWIChbZeOp5mIlY6TlHl3jJt9Y3N8YoN4dIB8YWpmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiJuOr6ypp6Ooma6Tmo+pmqGepZ6Zo6KlmJ6iqLGou66kqJ6dj32Lm5ahoJmQkZqbkpmXqJ6fl6espaSkoqSpup+gxqemqaGstbeusKmhvrCurpeBqZKjro6bgIakl5iQgIC4w7qDjp2ThKiZnYOsi4Oviqicm6arkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rXl4or67dICVjaWajZmOlJp3f4+ZeWJ8emSMZ3mBe2BrZWtqYVBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6nprOmnYyXpb+ptq+nob+mprKbnrGduaifra+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnqebmqCoopidoKusqbisp6Oal5N7iJmSppuTj5GYmI+Xk6iYnpaop56opqGiq7qeqcWjobCkq7S1q7Kso76qsLCcdHaqpLeFZYmfcGeskIqPbm53pY+aoIF2sZuXcZGOcpeppJuYr6RybG1tZot4b26DmXGAemlwaWeJlpWXcWhphYZncIZkXYpjaW9aXWd+eKZgYnKPknBmZICNko6hlpWXjpObeoWNk3RkhndojGp4fnlkbGNmbGJLZVdKa1k6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srOqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK2srKaOlq2qkIyFlZetn6aqop+ko6CRi6WSp5mpmZajqaCWnKWlpq65qqyZmpOSe4SXjqaXjpGRmJSNl5Smk52Wp6KZr6adoqy5oLDCqKW0p6yxsquvrqq8prC5l4uhqaW1nImWopiGqZuQlJ2SqrSZm6OsorSYpKKfoqOdoqWilqynjJKTjYeTnZ2VkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46OnJKelJWTnoCFk4twaI92b4p3dnx5aWxlZG9jVWFYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t66uorClraCht7GRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptKWnkZiso4uIiY+cp5atpKGaqJ6ek5Wjl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXyBlYyhlIuVkZWQj5KXpI6dmKeem7Wjnaart6ivwq+kuKewr7Guq6y2vKOxvpmSpqSmtaKSnaaejamfjZKfoq2xmqGksquymqainqWrn5+enZetnpOaopyUkJermY2YmJaQlp6Rh6CelJSFk4yPjZWLgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkZeRn5Cak52ChpeFeHGUcnmJf3F7fmpuZF9waWBcX1ltYlBgZE9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyisaSmsamWm7ilopSYqZyOhoqJm6KQr56klqigoZKXmZuui6qWj6iYp4yYqI6duLWjpZibjYl5gpSMm5OKlZGTkI2RlqGLnJynnZ63o3+Dr7WjsLB1pL+ksqB4eqKttb6Xd66loIqAqX5kXGJ2n46knoOWfm2UtJyjqK+spWagoZR0epuYcIGZqplsgKOpimWcpZyRl5iWi5KbkISdm5CUg5OHjo6SiYV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2iPjXF5oZaVZHiYhYB2l2iDiYJueX9qcGVfdm9ra2dcZWNhYW9SWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamupKetpZKWqrSusKWZqaWql3OLna+fqKunlJa5n6CPnKSekX6IiJqejayapJWnop6Ol5GehXWuj4ilmqiRlqOIm7mzp6CYmIuJdXeTjZaTipORkJSMj5OfjZmepZibspaAjJu1nbSNko+9p6F+p6N7pbG6g46Pp5+Ei4WPsamvjImWopp5gIushpyeo6mrqYmWh5l3ppx7iJyBmKeDgXuds3uKhqCYmZWYloGQlpaDmZpieYiRhI6PkouEbnGQiHqCcYGBhoCHdIeFl5N4lmiTdKCadHuZgpyahJh+kYiBgphpjIyEa3h7cXBnZHhuaWxqXGRpaWVyW1xIU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqaWZlK3FvK+glKWntJ2Pg5yrnKaioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsYWpjqeYjZ18qI9ye3ecjqaWaJWkebSMoKCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJeAjpSciZiSi3yFk4aNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15jbmxmbFhlRl1RTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqaummpSeoqSpoZSjqbWir3+gppylnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+Md5ucjqCRiJ6jm5aYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqCNrbGIpI6rmoyafqJ2gJmUa4GrdU2reIeNnZKcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf4x7ZGeLc5l9eZdsXXyXbmBTcYVcYG16hGBZZYJ+hYGZcaira4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam9eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deX2N1YE1FOk1OTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauuopmWn6Clq6ufnK20oaeRoJ+fppuZjpm0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYaspIeckYqYqJiZmZGHpa+mopWZiImAaW6Ih4uOjomLjZGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDo6mAhqyvh6V6i32Emn2icHOTh5V7nox5bYecjJqSnaqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzkoiBgLaoZIHGuHxwlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xzpHOegn6jXpyZs5Zve5ees3RyW56ygmlib3N1cWlvWGtrcnJkW2ddYUxEPUQ1UUFacDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZWGBge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6SsmpqxrKuSl6CYoKSZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYmOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di5CQiY6TnoGVm5+coJ+LiXecmKKNoHKhjImpiZ2okZiqrYCujH16oJl5o5N4gHOXiIycfZWfh5yOmp2niKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg52Cc6pnlJpdm4V2hZ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnW25xeHdraVtwaXd4YV5lVmFCUEVPN1ZCUm40SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhY3xpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZGNpaGdraZadiaq2nKiJY5WcrLuysKudpZuap5+drJmdsKeqnZaimaGfmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeoqElqSdiZWQhoudkZybiI+ooZ+ajJGKgIBpgYZ5f5aMe4iNjoiOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYmaoaWqo6p+sK2koriXdqOzoqN/iJR4nXqqmX+ij56dmImYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyafnOqWl1ve5eLeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcHx9bmZfbGh1e2JjX1BdVlxUVkBZRVFnRVJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpqEU16hp7S6s7OomqKLmqmbm6eSoKujoKePnp2cmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKAiZKhm3KSkIGImJSfmoSOqJuZlYuKinyDbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgfqdod21+mXOgc3F8nYWYb5OCrXyjhKefm4KkcF6paHajZHCmYZzTj3x7mXhyc2OihpB+onKij3Vrj7OLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXB/g2xoZmRtdXdmX2FSWmVQUWFIV0lUX1dTW2RqW2RQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVpU2R4eXdJRkVjXWVaaGlTaWhqb2NqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt+qa+ytbCyo5yYhJemoKCijKSnn5epiZmXmJOZk5Kgl46HhntwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjqmak5KKhYl5hHaIgG6Bn4Z3gJKFh5iglXmSoqOZoImzoaK2i3qsp6SupXCpgJuRhoGelH2kgaKahphxnoSira6Jl4t/jKSNlYOvo5V3tba2yaJzlIuCn2Cel6lteZaHoJt1oYd3oH6QlouBb0xmo5Jxm4hzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanZreIdma2Zic3RwbVVcUlhnT1JoSVVMWFJVXGdrblVnV01KQUpNS0hLTkFRSlBkY2ptZXVzc354e251iXp7VVFPbV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5sZWltZaKdibCohWVAlKGzrK+vtaKij3+Wp6Kho4ukppybpoKal5aNl5CQm5KOiIN5a3mGZYOMf5efeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeol4yRi4CJeoB9i3lwj6CGeYGUhoiVnpR+k6WnnJaWhGdueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gImUlY+5bY+KomJ9maOXiW5za6trdaBtb6Zgm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiYxxfIB0cmSlbniiZGanaJdyi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3hza29RVlVVZVlTbUlYT1xIWGhoc2pZa1ZRUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd46AhHdeUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsLGmn4t/lqqcnaSLoaGaoaGAlZiTjZqPi5eQjop8hnGAiGiLinyXmnN1iX2QfGWDh5WKiZWagnyIhpamj4Chq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpGppp2JpniWnH6liZaMspmekYSvl5+leZiJe6l1p5CEmm6looyShIyDvG18pa+Ch4aHlZedon6me3KolKCWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGiah3WrZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp+bmdsU1VZVWBgXGtMXFJcSV1sbXZgW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uNgYKAd2J5ZGNuc2RSbGdnb21yaWdpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqaqeqKeuo5mIgZapmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYV+l5NzdYZykYNuf4uSh4aUkH17goWXpI1/paWNgI2JhJR1goeTb2yLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4KccY+GeZKNhoB7cqiNcX19epeWm4SNeHt9fYiUlZOLd5GZoaKFfH+Ja4yFXHp5c3pxaW9+k4pxgHSCj5STcYaEgmWNf1+BgYx4d3SUdXB6b2+Jb4WGX3dpeI5ngoOGj6qcf3R9l2qJiG9+dXyDdW1sZoxzeHuXd4Raald5j2lud3Jxb3d4b11rhW1pZ1ZZXlZcZGtkVWFVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmCdX+Af4B5i4WCfnxugG1keW5eV25naXVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6akmaSdq6Kgg4OWqpGdoImZppqomIOBm4t+lpSHjoqJjHKCfI58fo+Ee5eOdHKEcJWGfH2Si4aGj4Z5foCGmKOMe6egioWPj4SVg4aOmHdxhKqFjZGcj4eenYaKmqifoKqDiY6Vm39+ipetqJCTqJF4cZ+ThHyUcH+qh3B9lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjIhxdGuDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8g42DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY+DbneLgm+Di3dtZGVjeYJ6lVpbaWZtdlt7eXd0bXNyg2ZcbYpra2JZWF1ZWGtxW15gWV5dZXJ+e3NvdGNqaml7fHJ6d3RkbXRobHt/dXp9e3l5f4B/cIaJhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfnpiemaijoX2ClquMn5SHmqGQpJV/e5iEfJKZiYiGhopyfYCLdoWLgoSWinJvgHKYh4R+k4ODhoqCeoCEipqfj4KmoIZ4jpeIlYuLnJeEg3qsgZCXmZOJnZyGh6Gqn6Gio4uIk5udo5mWq6Kop6GTnImZkH16kJCGqX9/kpGSk5yxpZqUnY+NsZKYhKaNjZadoYqRnYOJkopsfY53d2aDhpGLfImehYeLj4iIgYWEkXd8e3WbpIqIi6CMh5Z/gI2DgXdxdYaFf3mJiIuRp5GEh46Ig4yQi3qFiYeNf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+HZ25fXllaXFJncVVjW1thbGh0e3xybnBjamlof3tteH5waG9wbGaAe3KCgHd/fX+Ee22DjIZ8enl8fXqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+Wo6GYlZmYlJikoJ17f5ipjZ2MhZ+cip2WfHiUgnuOmYmGg4SHbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHg42bnZGGqZ6DcoqPhpKSi5yRfI17qYONkZeVjpuWhYWbpp+imp2Gg5KamZmQmaahpp6ekJeCk4x4fYmPhad8fY+QkYWYqaCck5yOjamNkoCejYmUm6CEj5h/iI+EcHmGcnVhf4SQh3aMmIGDj4KGhH6GhJVuenZ1lKSMjoabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4SPgoOJiYh0g4aGiXptanx/e21oa2xnXnl+Z3x8dnR2dXp3XGBwfW10YGNaW11QZm1TZVpdYWpodXp+cGxsY2pqZ4B/a3J/a2p0bnduhHluhoB2goB9hXdyg42Hfnx7fIB7gotgaXtrdmhpg2VqY2BpXGN1Z29idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5KWl4uan56cenecpZCbiYakk4qYmXl5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId9j4CPm5uQiKacf3CLi4yShqChioWMfKeQh46RlpKVkneMo6ChnZaaf4GQmpmTjZqjoqSbmJKcgJCHe4GFj4iigX6NjZB8l6SgoJKZkJCljI+BnJGJlJicf5OTf4iPgnZ1gnF3YX6BjodzipZ9iIxxjH6ChYaPaHhyeY2ak5GAmH+JjHODiX19cnp8jIV7e5KOhJemlI2GkXyEhYaEdICBhYV4ZHF6fnh5cGtqZl59c2d8dXZzfHJ/al5gdHZwd2RjWF1eUmpoVGVYXmBnaXZ4gXFma2NsZ2V/gWptfWducGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohpbGJfcVZ0b2xuYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3x1o5+Nl3+MoYqImpZ3e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjZWfmn1vi4GRk4Wlm4eMiYOmlYSRipWXkpF2kZ2hoZiUmHp/jpiXj5eanaWempSVnXuSiIV5h5eOn3+Cio6Nc5einaCSmI6PoYyMg5eYg5OWmn+Zjn2KjoJ3cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWZ2b32IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eDhIx3h4OCgXV6f4aDc153d3xzfXdma2NgfmlqdnNzdX1xfGNjYXNudXJtYVlfXVprZFJiV19gaGt0eYZxYmpjbGZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjYGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbWB5Z2xhanZwZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8d6ibiZh5lpyLjJmQeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYd0fX+Kf36YhJaTloyjoJd+cod7k5GKpo+MjoqSoJGDkI+Tl5CKgY+YoJqSkJJ0gI6SlIqdnZ6nmZiOlZh1kJGLbYeZkJt7iImQiW+XnZmik5WKjJ2LhoGTnX+Tk5aImop8i4qCenJ6a3ZtfH+Mf26Fk4OUeG+ChH5+i4Flc2p9gpiYhYCOdJKKhXqJf3d5gX6HgX2EjoaNlaWReYWCdIiGfH9xc36FgWxgenR5cHtuYW5iZHthbW92cnd3c3NhdmBvbHVub1xaXl1dal1PXFdiYWhtc3qJa19pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt5eG5sh2toX2lyYodocW9mdmdtbGF6aGp8e3dwYXdti4GZmquhpKmeiouRhomeipSWfHasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGf4SEc3qAhnqPkYeRkZuSpJuTgX2BfI2KkqOJjYqNlpqMhZCXkpWOiYiMkp2Tj4yNboSQjpGJnpmioZiXipeTcIubhmeImo+UeoqFkYtwlpqToZGSh4mYjIJ/kp99ko+TjJmPfIuGiHRzdmtxb3Z9i3VvhpGOk3J0gHyCgol9ZXFten+blX6FiXSSjIJ1intwgn+CiH2FjYqGjpaqjnuIfX6KhXd9b21+g4FiZ3dzdG56YV5vYGp0XnBqenl4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3tzeYNqa19waHR/a3FvbXFnb2tle2Juf3p3cGt3d4l/o5mjqKGnm4iMioGPnYaSmnSAqZSRjYagjJWTkIBze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGcl6CTlneJfoCMiJydio+GkpeWhYiUmI6WjIuNjoydio6RhG6Ki4+RipyWoZyZloaZiWyHpYVoiJ6Kkn+MhIyBeJOYkZ2RkIeIlI1/fpCZfJGNkI6akn2LgYRwdnBsbm9xfIdqc4OPmYpxeIB1gomDemdzb3aCm5B9iYV6lZN7eIp1cYt8h457i4eFio+cpYl8hHeBin93d2xpfoB/XHFycW9vd1leb2Bval5vanx6cG1tam13YHBva3FtWVhgYWFtV1BTWWVmYnVvhIJiXWttZGNma5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHjIB7d4p/anFifGKFfG9wbHVqaG5sdndfcX55e3R1c3+CfqWWm62fp5aFjIN+l5WDjp10ip+TkoWKmoyVjox6cnd0gnByhXNxdYhsbmx0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkYGSkZebkZl3kXqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31zi4WIj4icmZ+bl5WBlYBqiJ+JaIihiJOFkoSKcYORl4+ajY+Lio6Nd3uTkXuOi42Sl418iX2BbHdqb2xsbXt/Ynp+j5aBd3qBeIONfXpodW11iJeMgImGfJWRcnuGcXiOe4uOe4l+hI6Rn5+GfX14gYp8dm9nan+Ad153b21rcHJVXW5hcWFfbG55cGdwZmd0dWhxbGF3ZV1VZWBgcVJQTltlZF14b4h7XlxocWJiZWWRaV9oZVtnb31va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHqVeGdxaoNgh35vb2t7YGltdH90X3R8eIZ4c3OFfHmhkJqxnaaOgop/gpmJf4qcfoqYko6EiJeOjo6Ed3R2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZeDhmOMkZiNlImWi4yJi3B6lYl8jomLlJKKeoZ9f218ZXNwa217elyBeZCOgXt+f4CGj3t6aXVrdIyQioOHhn6XjW1/gHCCjoCOiX6Ee4ORlpubjH13eIKPeHJsZW59gWppdG9naHNsU11vZHBaX2xyd2Zra2NneHNvcGNfd2BhVWtfXnVPTktgZmJceHCKdFxbZXZgYWRkjmNgZmJYaXNzbWtxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZGKiH1+mXZlc258ZYd/bm9rgFprbnl5cmB2enuNdnJ2inZ6n4ycr5ugkIKFeIiUfnuInIeEnpCOhYyXhJOOh4F1d3B5cG6Eb21ufnJjZHhwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+TmoCRcIWLo5eJjpWKkJ2Vg4CUj4WIj4CSioqXfod7dn+JeIaFjpubl5mPkHaLeHCJi41/jaaGk4udhYZei5SXiY6IjYqKhIlsfJeCfYiGipKQhnaGfn5sfWR4dWpvenRYiHqRh4Z6f3+Aho1/emZ0a4GLj4uEhIGNmIZtg3dviZODkoV/gnuBkZeUm5F1dHiHjHRycGVzd4Bgc21vYWh0ZlJgcGdrVV9udHlhc2NgaX1xcm5bY3JhY1ZuWlx3TU1MY2ZhXXZzim1bXGR4XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfX2Ie3SLiIiVhox/f5hzaHVxeWyLe250cIBXcHl2eXFkdnmGjGh2gIlxgJ2ImaicopKEfHCMlHd4iZyDhJ+NjnyVjH+aiIR8c3dwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46bk5GBiHCFiKCOhYuVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12iIByh4SLiZykhZaOn4SJYYOVj4WIhYiMhoCHaH2Uf32ChYqOj4Jyh3+AcndodnJpdHhtWox9koKGfYCDgYSLg3ZidW2KgpGMg4CAk5J+b4NteoiRiJSFfYJ+gZOUkZiKb3J6jIV0a29pcHZ+XXNoblxpdF9RZHFoZlNfcHZ0YHBgXWiCcXJqV2dpY2lXbVdbdExKTGVmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF/e3Z6iHSFg3x/h3Z2ioWPmIGNgnuTdmx3dnl5k3Vud3p9WHmFcYBuZ3h2kYJkdoaFcYqWhpqhm6GKhnNvkotxdo2afYmZiIl7n3+DmX+CeXF0bm9kcn5oZmx3d1tfeHp6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCKhXpoh4uZhoGSkYaGl417jIyAgImNe5CNfomFenV7g3xxhoCVmY6TlIKJdoSIeIWCjZWfoYiXkaB/iGF/k4eDh4OIjH9/gmZ9kYB+f4OMj5F/bYN9g3VsbXd1dHd2bGONgY5/hX98hICFiYBxYHRyhn2QjoN9gJKKenKFZ3uFjIiNhXyFf4GVkJKUhW9weYt/dGxtaWl3emFnamlYa3RZUmhyaWJQYnJ4bGJlXlpqg25zYlxnX2VtX29UWm9OSE5mZFxmbnKAa1pbY3NfXGNrdmRlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gIh2eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3SBbWh6c5RzZ3OHfHKSkoSan5ufhod1dZR+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXpaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lYyBhJqMfIqFfHuJi3+UiHWJhnZ3foFydYaBnpSFlI+EhHKBineHfoubn5qIlY+dgYlmfZOCfoSCiIlxgX1mfox8eX9/h4yPfWmBfoR2Z3B5eHN3dGxrjoWKgYqAeYKBhYSBbF9zeXt+jouGfIKQgX9zgmp6hYmNh4V5hH2CmY6RjX5ubXuJfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXl1Zb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3BtfnyAdHWDeoOCfIGFdn6IgZaQeISKdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSIbn2Mdml3l45+gYqClJeJeY+Vb3p0cWxpZGBzemhfZXF6WmFyfHlncXlgZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpF6eZKHgYSYinyGf3h3iYqEloBvi4hxdX57anmFg6WQhJONhH9wgIR4hnuInZuWjZWRlYWIcHuSgnyBgoiDboB3aICEeHJ/gIOKiHxlfn+EdmRxc4BpeXFvdZmNhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V6gpqNjoV5bm9+hH92emRmaHtvXlh2Wlhwa05XcXJmYEtsd3RhXlxbWnV9cm9XZ11manFgb05XaFI/WGZeWm9rZ3pxW1pYa2VaY3B5XmdcXmVsZ2VraXF3f4hvbH9+gHVvgnuAgn+Cf3aBhYiXiXGCjXF7hnx6eYSTjHVqeX5rb350f31vcnt6k29ugX54Z5KLg6GZnJGChWaGg29neZWIfX6EgpiJgXyOjWl4c2trZl9hb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Mfm1shYyMdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dWZ5goOni4KPi4R+boF2eYZ8iJ+SjZGTlI6Lh397koZ3foOMgmt/cmiAfnhtfHyCi4N4YnqFgnJkcml+bnVxdYKbi4B/hYBzdn6Bc4JwXG5/dXmLhIt7iIF+iXl7cm2JhJGFjHODeoCXjIyAdW5rdoCAdXNbZ2d1bldWe1JZb2RMWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2VvZGpNV2ZRPV1lXF11ZWB1cFpZVW5jWWRxeVpoXV9nbWdpa2lwd32ObWmChH55boB8fYF/gnl0gYGNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox6eIR9fGuMjYSbnpaMgYBsjX1raH6Ni3p+foOTgn59iohrdnJnaGJbYmdzb19ha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZWFc46KiXZvbIWDh3V5iXiJfJOHeX5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAh42Kfm+Ad4KDf46biIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goiBcmB3gX5yZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4GRgoZzgH5/lImKe29uam2BgXRtXGZkcnBQWnpNW25bT1tyb2RVS3N4aVdZWVphcIB0YF1dYWdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkb3JXal5iaGpnbWxocHd8k2xohIp8fHB+fnuBgIF6dn9/iouDcXyHb3F3g397iYyPg2p9e213eHaKdnx4f4KHf4N+fXpthYyImaONhIN7dYt4a2yEh5B4fnuCkYCAfouDcHNxY2ZeWWZfb29fYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ8d4aSgnOQi4dycm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2BgH+Oj35zgHWHe4KTkYR6l4+WkIiCiXuIiGt4eX50Z3poa395c2l6doCDfWhgeIh9a2t0aHyAaXaBjJGUfnp/f3F8dnx0f2JWeH5zc4uFgn2EcYeKeHlxcYSDjoB/en9+d4+GhHdqcWlsh4Fxb1xmYXFtSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCc1thXGllZWRrZFBbcElEY2BbY3BeXXdoVVdWdl1bZW5oVmteYWlnZW5uaHB2epNtaYiNeH1ye355goGBe3V8g4iGg3B3hHJtd4KCfomLk39wgHt3eXqBjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2d0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1yYWBgcGxraIhuYXRpWV5kboB3qdqpx4aHsnGId2+MdHuFjX96kol/dHN0fneAcHF/bYR0lIV4dWtgeoJ5iY9mcYRwZ3ZuW219gJCTf4B5kZN+eXxuineCk42FdZeLko+HhYV7f4RsdHZ+bGd2ZG17dm1pd3d/f3xhYniGeml1dWN+e2d1ho6NlXt0gXdxgHt9boBaV3V/cHaFiH+Aem2JhnR6bHaBhIV/fH56fXSLgX50aHRlbouDbHNZaF5zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZWReb2NUXHJHQmZfXWZnXVt7YlFWXHRbW2drYVZqX2BuZWZrcGdwdniOdGuOjXV+dnh+d4GEgXtzfYOIh4NvcoB0cXV+hYKJjYp7d394g3t8hod3h3x9gX6EgHt+cnV5jI2gjIl5iXV0g3hefYWXi3iGg3OFhoR3iXtibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F8g4l+epCEeXhzeXV1e2psdmOEdZKCdm9mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4pyhIuNiXOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fX16XWV6gHhqdnhmg3dndIeMjpR9cohqb36BeW99XVlzf251gYt8gm9wioBxd2l4gIKAgnh+c3x1h317c2dzYW6LgWtxV2lddltHbWpMVlVdU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGJwSEFnXGBlXlxWe15OVWVwWVtqaF1XaGBecmVrZ3BncXN3hnhulYt0f3p4fnmDiH91cn+GhY6DcHB7eHd2eYaGh4yGenx/dIt+fYaEg4d+fn59h398eHV4eJGTn3+MfIptdX94ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3JkYFlkcXJngHJia2VXW2Bqf3e+rnugtm5hc4Voc3txeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5/eHmLhGZxf2hra1pWb3eJo4GFf3GZk3KBeneEb4KDk4l0loqOiIWJhX14dHFuaHlfamxgbXZqZ2preXd6dlpnfXx5ZnN+bYV0ZXWFjYaWf3CMZ2t7hHVudWJdcX1sdX2Me4Jndod+bnFpdn95f4Bzfm17fIJ7eXFmbGJuiX1sbVZpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZnWDZl5gcWhnYldqXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRlbWRwZnJwdYF4cZmGdn9+d398hYd9dXOCiICVgm5zeXt6c3OFh4mJg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ9e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWViV1xcaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF1fXR+fG99fJKHeJp9iIeDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCdmJ3hYt8lIFvjGtte4JxZ3RmYW56Z3N4i3x+Y3eEd2pscnZ7cXt6dH9nf3+AeXdvZGZiboV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWp2fmVdZ3NpZmBWZFdicF1MS2pYY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21ib2l0b3J+dHSagnd/gHeAf4aEen11goR+l4VucnR8enVxhIWPgYB6i3V0kH98gZWNgIWEfX2Mhnp9gHZ7o6WKeYiFhGt1fHp1g4GLem6Ec3mEfYKDdm9qaWVWXVtaWlNibWRbWGFze2pobWlgYldfW2qAamtvgGdrYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdpCEaGVYYndqfod7b2pwZ2ZdVFhvZ46od4F6fJCOenZxgHF0d3qQgXmWdYaDgIWIdmpxdWdnbltsY11tcl9nYWp4aHtsW26Dc3RqcIF+endhd4WFeZCGdIhyb3mAcmNxaV1xeGVydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fGpqVGhhZVNKa2dPR1FqRWB3ZmFNU3JdSk1UWmVrdnplXm1xaWRdVmFVbm5XS1NoV2ZeWE1VbFRKXHlfW15rXV1aY2VgeWhsYG9vdm5wd3V6mH53f4F5gICHhnp5eoN+gZOEcXR0f3l2dIWIkX2AfJBrc5WBe4Kfhn6HfYB+hoKAint2hKuff3qHh4NrcoF5dYB+gXRuhm58gHOKgGpwbmRkWF9aWVpUYWpnW1pfdYJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNoeneTgWNjVGVwaIKFeHhnaWphV1ZZZ2OPp25+d4CLjntxcn9penB7jn14kHKEfn9/hm5kdXJkZ2dcamFcb29cZ19tdGV6aF10gG9ya3J8fnV2YnSFi3yJiIGAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtcn1pa1NnXlxUS3FiUEZVYEdidmZhS1RvWEpNWFhna3V6ZGVucWZkWldeWHdlVEpcYldoWFlIV2VQSGJ4Wl1fbFpeXGFjXn5pal9udHhtcG52g5d6coGAfH+JjIZ9dXWGeYeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX5+hXqBen98hohzcY+tjHt7ho99ZHGHeXN8enVyb4Zse35sj3pjcG9iZV1lVllZV2Nma19dXXOFaFhxblteWFpcbHtjcHd1bGJZbHNzZ3R1b2yDeH5/eHZtbnRkaXRlW2d1ZnZ2knlfXVJmZmuDgnR+YmRqXFRXXWJjj6RoeHSDhpF5bnF8aXpufIZ8dopzgXl8eH9oZHZsYGZfXmleXHNrWWVdb29iemVcd3xrbm5weHl0dWRzg5J/iISJe3dvcn5zYnhkXHFxYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm58ZGhTZ1hYVE12X1BKWVdIYnRjYUlUbVNKTVpXaWxxe2JtbHNjYlpaW2F3XFNMY11YaVNXR1lgTUdpdVheYGxbW19iYlyEaWdhbnh5bW9qdoGQeW2Df4CBk4iEgXZ0iHSMhnRydnWCd3x9foyQgH6TfnB3loN8mZN5gIB4en6AdIiDdHCZoXp6f4mUd2N1h3hzd3RrdG9+a3h8cJFzXnBuYGdibFRaWldoY21mW1xxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2bm5sZGlxY1trcmR1do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcXt9fXOBd4Bzenp6ZGV1aF1iWWBnWl52aFdiXXBoYXdhW3x2aWpyb3h0c3VocYKVg4d/hXZzanF9bmZ3WF1sbmNydIF6dGdwfltgcHJiYGtyfm1tdX9zcnhrcWFcZWxtemBmUmVUV1FQdVtRT1hRSGNzYWBHVmtRSVBaVWtra3xmbm9xYltaWFlscVdSUGZXVmhTVEZaXE5IcXRYX2NsYlhgYGFdi2pjZG15eGxwaXV5h3trg31/hJp8g4R5fIduj4dyb3Z6fXSCgnyLj4OCl3R4gpSFgZ+JdYGAgXR/gnGHgnVvoZZze4aLhnpld4pubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdqdGhidGVkXFhtdG1vdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNucIOFinRraXxwZnR4dX1tenV2cHp/dl9lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV2a22Ek4GJfIZxc2dwfnFzb1RcZ2tmcnWBd3RjbXZWYnJsW19wZ35mbXd+c3Rza25hWmRqandeZVNjVFVQVGxWUFZSUEdkcl9hRlhpT0lYVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhmVFNIWlpQTXd2Wl9la2lZYWBeXo5uYWZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmd0gHt1gIN9iY9/i5NyfIqRhYefh3t/hox0gYZzfYJ2bqSLcoGNi3Z3bHqMYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6blx3c217anZ0b3B8gHNYaW1eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xphYx/iXyJbXJncX1uc25jW2FpaXB0gnRzXmltU2VxZVVjb2N7ZHJ3fHdscG1rYFlhZmd0XGRVYFVSTldkUk9bTk9IZG9cYkdZaU1KX0tYbWRgeGlufmRgVV9UXXVcVFNgZk5dYVVTSlxZUFl0dV1fZWtoWGJhW16NcWNnanhxc25odnR6hHKCg3qIjn58iYeNeW6QinVsc4J0f3+IhYeRhJWPeX2Mj4eRm4WAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyMjY2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY2rCdoKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fptqCjpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eGiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpOUlJSUlJSQj4+Pj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2RkpGJh46KkJKSk4+Ni4qQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4qLi4uMjIyMjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4iFiYqGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiYaGh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYKHjoiEhYiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIaHhoiEipCPjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjIqKjoqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgIGAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f39/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn5+f35/f39+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX1/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX5/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhYWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh8e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXt7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRUhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/Pj0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/QE5hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTUtKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj89QT9BREVFQ1d1homKflhHSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdHQkRGRERDQVZ0h4mHh4aIgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTEtMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSUhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1/f319fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTUlGSlZsgYaFhIWGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURBQ0ZISUhISEtNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPjg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OzxDQEJGSEtITEtPVWd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjU1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZGRWZ6g4SCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ojo6PDg5ODk5ODc3Ojo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8REBRf4ODg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjw6PDs8Ozw7OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnR1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT9ARHaDg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Ozw7PT5BQD5ihYOEg4WEhomJiIeGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oz4+Pj87Pz1AP0M/Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0VGREJISUxHR0dGSEdFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw6Pj8+QD0/P0JCRT9ohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo+Pz0+PkBBRENJU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpJSEZKSURKSEdLSkhKR0dHS01OTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXZ2eHp7eHh6enx8fn5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PD0+QEJERE1thIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdHQ0hKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7QEE7PTw4Pz09PkBFRT5DRUNHS3WGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZJSkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRVVMQklKR0pMeYaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBLUFBOUFB5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uGbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUlFVVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXVtcXV1XUk5TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlRRUVBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fX19fn99fn1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU5LUlVSTU9ZUU1OUVNVVU1RU1JQT01MSENJR1JTVFpdbXJ2dnV0dHd7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNOUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NCP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hLR0RCQUNATlBNUmR0dXZ1c3R2enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgYKAgoGBa0xHPj46Oj5APz8+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0NAPzw9Qj5JTUZVb3V1dnN0dnh7fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xOe05PT05LTE1PT1BMS0xXT0lHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ3dXZ3eXx8fH18fHx9fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUpERj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+NEA+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARkdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQUBHSURNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJR0JBQkA/RUZFSERMb3B2enl5e3t6e3p3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I/P0BAPUNFRExNUVRMSklNVEZJSUpMSUpLSUpMTU9QUlBLR0NMR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxb2psbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZHSEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdHQ0Q7QUBCPkA/QkVESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUklIRE5HQkVMS05OUU5MTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRktDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQT9CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+P0NDQ0RGTE5ISk5IREhESUxOTUhJTEdGRklJTE5LSkhFT0lDR05NUE5QTk9PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXd2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ojs7PTs9P0RCP0FDRkdLRkpJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRkZLTk9LRkhJRkVERUlJSEtJRkhQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1ncXJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0tGSkdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWFuam5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dXZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGhna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDR0U8QEVCRDw4Oj4+Pjw8QkI9QD5BQkZDRUJCR0NDREVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1VZWllcWlpcX19eYGNeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVeZGBmaGBlaGpkc3NmamhmbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSktJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSUdLS01MSkpNS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYmRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUU8P0VFRUM9QUFDQkJDRUJDREFBRUdDR0ZIRkVJRkNHSkdHSkZJTEhJSk1KTEtHS0lIS0tOUUtSUUxTTUpOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmYmFjaW5oY2loaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD49REVGQz9DQUVEREZDQkVHQ0NJRUJISklHSEpGREtKR0hKSUlLR0pKT0tNS0lMSEpNS1pmSmRcS2xSR05OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtVYHh2aWpoaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxERUZEQ0NDRUVERkJGRkdEREpEREpMS0lLTEdHTklISktHS0pJS0pOTExMTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRublxwdmdxTktyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJFQ0VERUVEQkhIR0RFS0hHS01NSUxMRkpOSEpLSklLSkpKS01NTk1NTUtOTU1bcnBvbnBwbGtNUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIREdLSkdNTE5KTE1HTE5JTUtISk1JSkpKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1FRTEhNTUhOSklITkdKSkhITk9NTkxKTU1KWnRwcG9xcW1sT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUlLTU1NTElLS0tTa2JaaV5famNyclpfWWtvYGVlVWtfZFthYlFgbWhcalxuaWlkWm9lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySUhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISkdMS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQUFFPT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVFLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0RFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15kX1pdYGNfWV9iW2BeW1VZWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktKSkVGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUVJRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11bXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERAR0hBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSV1VUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkdHSUdHSkZGRklMSk5FQ0pKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVDVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWFBSUlNcVFxdXl5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBMTEtLSUpERUFFQ0hGQUFGREFWVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YX15iXU9YYlxgYF9iY2JdYmJXX19UUVBRUllTXlxcXV5fYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PT01OTU5ITEJEQUNDRkRCQUNEQExIQkxMUE9OTEZNRkZISUhHTExNT1BJTE9QUFNQTFFUUlVaWFdZV1hkVk9TVFBRT09RVVRcWVlbXl5hYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFRTTlBPTk9PT0hLRmBFRF5MRGZjQ0xbSF5bc21PTVZtWUxDUF9UbFdnSl1XVV5ETFFVTE1TVlFSVFhWVFhVVFxUUGZaaGhlWlRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEdKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGNnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFFLSVp4XVR4ZGhYUVNQdmd0bHBibmZrUnJPTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1wfnhvf3JfYGBiYlthYWhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpKTFR5cHVtdWJudlBkZElldnFtd2+AamZ4eGlYclJpe21panp6fWx4en9wZ25YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF5kZWZpamVnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUlLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXT1VQT05TSktyb3V1cXVxY2hhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVufGxxdnV4Xl9fYl5dX2VlaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3VUS1draH1sbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1bGp2fHttfnlrfHBdXl5iW15iZGVnZmZlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGhtbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TU1hSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFFOUFVUWFhYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXVVTT1hSV1dYWVpgXGdyX1tbWl1dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5eZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlZUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0pSUUtRTUpKT1FUUlBRU1JJSU1PUFFSUVFRVFVRWFdcV1NSUVFVVVZUWlFOUlJXVVNZVlRZVVNRVVNVVVlZWF5aX2FdXFtaXV1gY1xdYmNkZmRlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU1BUUFJUVE5MTk9SVFRSUlFWVlNYWltZU1VSVFhXV1lbU09TVFdVVFlVVllVUVFXVVZYXFpcYF1XWV9dXl1cXWBhXltiYmNnZmVlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWFZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9RWFRRUU9NT1NVTldRVFRVT05OUVRVVVRUUlRXVVpdXFpWVlFSV1hWW1xWUFNVVVVWWFNXV1RSUVhWVltfW19gX1ZfXV5gXFxgYF9fWmJjZGhnZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1OV1NNTVJPUVJPTVBTUVVaVVRQUExQV1VRVlJUU1hNT1BSVVhVVVVTVVhXW15dXFtWUk9VVlZbW1ZRU1ZVVlhUU1daU1NRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2FjZ2llZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUVRTWVtXVU9STlNYVlNSVFJSWk9RU1NWW1VWVlRXWlhdXlxcXlZTTlRWVltbVVFUVFZXWFJTWFtTUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWVnXVxlYGFgYWNkX2JfWVpfW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVxgXGBWXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVlZXXlpYUVRVWFhYU1ZYW1NSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFhfWVlSVFVaWVlVV1lbVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcV1dXVlZXXVhPVVxZXl1dVFNYU1dVU1JTV1FTVlRYWFheXlhdW1VeX1hfX1hcVlFZVVlaWmFYW1RWV1paWlhZWVpXVl1fYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZVUVNVV1tbXV9fWl9cVl9fWl1eWV5WU1lYWVlcYVldVVZaW1pbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVlRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fWl5XWFxcXV1dW1pcV1pfYV5gZWRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xdXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdWV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtmZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3t8fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJydD4oKysrKiVikoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29yMhcbGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/gHl3d3d3d3d4eXl5eXl7eG5vb3BwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6enp1c3Nzc3NyeX19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd1dnd6e3h7eHd2dnh5e3p5fXl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3x9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHx9ent9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fHx9fH18eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e358eHt9fHx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgX+AgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp6eHt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgoKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCBgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgoKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhYKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgoODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYGDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoOEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB/f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf39/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICBgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoODgoSCgYKGhYSFhIOEhISGhYSEhYJ/fX19foKEg4ODg4ODg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSGhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGh4aGhYSDhIWFhoSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OCg4WEhYeHhYSCgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiImIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KDhYSEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OEhIWFg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4ODgoOFiYqJh4WHhYSFhYSEhoaDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4eJiISDhIOFhISFhYeIiIaFg4KCg4WHhoeGhoOCgoOEgoOEhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgoKEhIOChYaIi4qGhYaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+NkI2JhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgoKCgICAgIGBgYGCgYGChIODhYSCgoSDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIGAf3+Bgn59fX+AgX9/fn+AgH+AgICBf4CCgICCgoGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIF/fH19fn19foCAfn1+fnx9foKDg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6AgIB/f4B+fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgoGDhIWDhICBgICBgIGAgYKCg4GBgX6AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhYSCgoGBgoKDg4ODg4KDgoKCgYCAgIGBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKCgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4ODgoOCgoWGhISFhYSGhIOEg4KCgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBgIKCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYOEhYWFhYODg4SCgYODgoOCgoGBgIB/gX9/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fICBgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCBgIGAf4uTj4yLjY6NiIeIhoWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f39/gHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGLjI2Nj4qFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fYCAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fX6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f318fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6fHp9fn+AhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6Cf4GDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJCNjImIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoOCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH5+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319f31+fn1+fHt8enx7eoCFgoSEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4GAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf36Af4B/fn17ent6fHt6goOAgoKCgoOCg4KBgYCAgoGAgIKBg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDg4GAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7fHp8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn1+e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+gIF+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhYWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYKCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32DgXx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgIB/fYB/fn5/f319fX6AgYGBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+CgHyAf4B+f4GAf399gH9+f39/fX18gICAgIB/f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fn19fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WHhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af35+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xcHd0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+Cgn+AgX5/gYF/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgIGBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+Agn+AgICAf3+AgH9/fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l5e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3t9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdnaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+Af3+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoKBgYCAgYKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAgIGBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYKCgICAgYCBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODgoSBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4GCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOCgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4OEf32BhH99fXx8fHx/gX5+fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYWFhYSBf4KEf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4R7hYOBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOBg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLioWEhoeHhYSFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgYF+fn99fXt9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWGhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSDgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIOCgX1/fnt8e357fHx9f359fH59gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWHhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Afn1+gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7foCIh4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYWGhoWFg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59e3x+fX5+fH9+fX1+fn19fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4aGiIWGhoaFhIKDgoODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYeHh4eIhoaEhoWDgoKCgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFhIWFhoaGhoeFhoaHh4eHhYSGhYOBgYGAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGh4iGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhoWHg4SFhIaGhoiFhYSDhYWHhYeGh4WGhoeGhoaEg4SFgoCBgICDg4OCfYGBgH6DgX5/f4F8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIGBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoWFhoODg4WBgIGAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18fn5+e3t7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoSFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgYODf35/gH9/f4N/e4B9fX+CfYCBfX6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn19fXx8e3t6enp6eXt6enp6enp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3e29fY19jX19fY19bX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3NzcJK7uLi4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKiVhqaSko6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDArZaqlpaWkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+OW6vqampqampqampqamrnGJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnM0tHR0tLS0tLS0tLS0tDNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs7Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9HSuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnY/DwpSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+qvqSgi5HDk31+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xm7ibh5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZuwm5CfoNLTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGeqquvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7mZaimq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wNGFlabFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WfoJ+cm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmMOnq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfNzZKQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NTLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6PD0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk6PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTg0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ozg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODc2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY3Nzg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Nzc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqam5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur3Aub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubizsrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11OSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMS7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrIvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEFGTUY4NjY1OjY6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK62trK0tK+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaKbo5yVkIyPj4+TkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7Cys62lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOQj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJibmpGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZeSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezt6yxtKOgnaWgrKGhoqCgmpiWlp+bm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqZkpmenKKioKCdop+fnp+pq6esqaq0q6utq6Wlq6iqrKqln56ZkpKUmJmWlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpq6inqJqZnpqqpp+Zp6Cfn6eopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayurqqrpqCenqGjnp6em52clJOVlJ6emJSGnpqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64tLvFw7zCu7ezqbKtqrO0r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJT0g+RUEzRUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyepaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvcfGwrfDycjCwMW+ubS5urW7t7C1sqq6sq67tr66uqq3rauquLq0vK6tuKOlop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsbKx86/ydDLxsTGxMG7w8G+vr61vbOtv7/Cw8bEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM7TzcTHycrBxcvGyMjFvsKzs8fEy8rKzsXKv76/vMHHxMzMyMm/w7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2NndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0sPQ09bX1dbSy8nO0cvGzdLK0tXW2dXX09bYztLJztHMztDM0s+/x8bKw8zMy87PxcbHtr/Jv9LNy8/Fyci/w8LIzszP0M/MysfNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlZSMkKatq5yVmKGdm6Gin5ydm5WKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dLM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqaCvrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qaiooaqpoZiWmJqbnaGemp2elH5yZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTSys/M09bS0dbNz9XV0cbR1MrR1NXWztLQ2NjY18vIzcPJzszJy7/Iv8jJzc3Py9DNzsvOz8fLz9DKzsrCycbJzMrL0dLM09HQz8/Kvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYWRucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappueo6eeuLa1ta2lra6+tLHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirss65q5+clpSXm56fn52UlpeViWxeXl5hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFyMrKzsrMzM/N08vFyM/MyMfKxMbAxcnLzdDRxtDOzc3Mz8XHwLe5vcPDvcO5srO+sbzExLWqmKWhmZaRlZWSi5SNm5GUlI+PlIKJhXhwcWtuaGBgcWhZWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nj09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2MzMz8nW1sXEuLK2qqSurLm5sLbVoZWOjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLGyM7EwsfAx83Hw8vJy8/Hw8PPyMbBxsfDvsDHy8vMzsLKy8jHy9DExce7x8PIyMLPwL28v7DByse6vaqxsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRkbGBeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6u+urfBrpGOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwsLL0MTLyL+5wbvFx72/xs/Kw7/Du8nGyLrHxsTKwL3By8bFw73FvLy/w8TLxcW8wMnCxcfSxcDIv8rKxsjG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnN0ZmpbYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8fNz87N1dDW2djZ0M3Uzs/Qy8S4xsG2tbyxwLe6sJGMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLu5uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNwsa+vrXAvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8PBxcLGyMbIxtDGwszIssfKw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tXW2M7M0MjNyMrFvsrBsrW6t7u2sJGNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0s7KzurW9sbewta+yu8K8wcS8v7u1srq+wLjHubS7tsDCvLe9xsDDvLWusra6vrPEt7u1q7i8vcC9sLq1r7a6ssW8tq+7v7S2tMW8vsPFwMPFxsjLxsDGxrvIy7/PysfDxsHDt8O+vba5vsa/rLW6tbe2jnh0eGdnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPyMvGysbEwL3PvbO5vbm4t5yOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/ubi1sKysp56iqqeeq6yzramrqbOutrCyqa6mrLK8urbDubq6saq1ubu0wrqwv7G9vbu1u8e5wretqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj05QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbBxdDIz8LEx8HGxsXFzMTLzMLEwcjBury7yre0vL22tauRiZCQfHl+ioV6e4SBd25eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWVpdZW5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttbaxvbmvuK+orri0tLy4s7yvt7m1sbvBscGupaiirLGys6e8qquoq6yttLSmqK6hpK+psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOTc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvMq5wMbAvMy6w8fFur3Evrq3vca5trm7rrKVg4mNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpaygnZukpqyyr7a3p7Csp6q0q7S5sLa0rLa4sbC6ubG3pJ+jn6exp6uouaqkpqeop7KtoKemn5ukpqyen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FlX2tvYFVZX0hOaE9UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6VnqGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fIu7fExrO+xby3sLnAu7Gzt7CihIeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrrKS1uK23r6yytK6yta6wqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZukpsCyr7astLfG0MnJwce8vMXF0MC8yru7wbu2xbi1wcGzwsS8raq1ureosbOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYWFdXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZudpaahpZygoJqYra6trrKgpaKtq6ehtbCxsaynrrKnurOmtqGinpqjoq2ioam1qqKjpp2lpqOWmJ6XmZqdn5mXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbuxqLKvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqJybmqqmr7Crm6Ojt6qgn66otqmmpqywo7ewpLegopuYmKqmoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6vpqensq6xtK+8tLm3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunqeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/wLnAwbrAwLm6vbeoqLG7pqmipYmBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqefnJ+kn6qvpp+io7aooKGiqLOhpaekr6Wwray1nqCdlZSpoaGUrLGwnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraWorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCvMPAwb28t7q2pqeytp6iipmIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWkpKKjoZuqqqWZnqWxqaCgnaSqnaehnqysqaitraKhoZSXo5uckKupsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaChpKabo6uloqSqo6uupK6xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9yLvCx8S9v7e6taWrsK6dmoeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRho+Rj5mTlJKcmqKcm6CnqKqoqqaopKOYpK6klJmlr6mfm5iaoJ6umZuqs5+lpp+jo6GUk5uWlZKoqa2anKChoJqUkIyZjouQjJKMlpSQnaGgo5ybopWboKKgl6Koo6Koq6Crr6Stt6Wjo6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUFxZTVROUExQUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcW9w8bEvcGzua+mq6+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqnr6KnmZ+soJWWpKinnZePjpmdrpaXp6qZn52UpaGekpCSkpKVp6qkmZmanZ2WjYyLlIaIjYOQi5KUkKCeoKOXlZ+VmqCinpObpaWnqKigsbCmsLynoKOstKutp7C0sLm1wLGtsauQfXByYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjEtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9s7u8xL7CsbSusa6xrJyiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY6HkImYiZSUl5uZnaibn6qlpKqcp5igpZuSj56impeWhIORmqOPk6KclZaVh6KampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZOYmJWipZmMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NOTk5QS0ZOTkpKTk1RSU1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKttcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cYWIgoeAkYOOipSRk52gjpqcoqGjmKSWoZuVjYeYmoxzjYJ9jZaWhZCZkJOOjnuZjpyMgop/iZifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVj52OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaamprOnpbTAuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVpK6/uLGwn6etrauWlaJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4qTkJ+XnZWUlpSOlol/k4lfO1dve4uTiX+LkYyPhYZzioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjX6JgJCNj5eZmJOKj4iciJ6Xh4iWnpqhoJenr6itqaifl620oqatmKyrmKe0oqmto5J9cW1fWk5TUVZMRFRKUE1MRk9PSUVMUU1LUEpJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbmxtbDJw7m0v8/AurGxuMSrrsmup6Oehpuiuq2nqJampaShl4+WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJAf5WRkX2JlIyEio2bjZaVipKIhpWGeYh/YEpRbniKkYR8hIyJhH9/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYh+ioiVio2QkpaLg4mHlISajIGEkpuWnpyUpKOnqaWjnpuwq6GkpJCmqpahqpyipqiIdGtlXVtIUVFTTElVTVNJTExQSUhGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTc5Ojk5Ojo6Oj85draco6edn6Guoaeopaeor6yqtry2uLazwry3qLrJubepqre4rbbAqqKbk4OPmbKfopqNoJaZlJGLjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPf3V/eHNudXB0jY2BeX2JqoV5emh2e45wcm14gYqMknh6gHuAdnNykndndYSEhIR6lYmIioyLgH+Eiox/lIN7gI+YlJuVkZ+dqJ6foJ6gqaWfnZiMp6SToKCWnZ6kf3FnYFxcSlZPUUdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WelpKYhpSklp2Mg5eJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OXmZ2bnZ6inZaNiqSbj52XjpaYjnVta2VhWVdYVFFKUlVUT1BOUVZLTktOT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srqunqbCvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZKVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHSFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln1saG1ubVdVV1RRUVlPU1VVVFhVTU5ITUpNTktDSU5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYno6FjJaipJualJePdpF+hYuQj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFNSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJmRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoKAfY94cG5ual5aW11bWVhgX1NOW1tZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbGuwbO6wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUhMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYuCkI16dol+iYiOc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG1xcmRlXlpaXVNbZl5YUVVZXVZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8a6lo+RlIh6hnZrgIySg36LhZCNeYSCdaKGjX5+goBzg4F9bHlsU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIatr6+KgICTioKLgoSRqIeAmJiKnHNsfIGGh32OaGdneH5uhYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fXFxcGpaW1taY2JXZ2VcVVBRWFpRRExMR09JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4elh4mAg4iGeYmLgHWFeV9jVkxDNjAuLzIyMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GUj4aJiIiJiKKro5aJjpiAe4KJenpvZ2t4fXd8cWljXFlZXGhcYWZfWk9MTlhTUUlQS0ROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSm46EgYKMi4KKjoSAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6YhJOFgo+hnpOZkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPj5eltqmbjZWig4eThH5/a2psfX59f3FfW2JeWWZqXGxrX1hLSE9TUU5NTEZJUURETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4GBi46JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfI0c++m6Bwaaupn4STkoWcoJqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZGZqIiXkI6BiGxzc3t8eW5mXltfXmFnY19nZ1xSRUtLUU9JSk1GRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKho+QjoGDgImMiYWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4w7+3paOwsqytqqOLlpiFpaagopiCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK2ztaKVpqqJmoqTipV6e36De2VeZlpjYF1iYl5mZ19bT0RKSFRPRkhMRktHRkZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlRVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLSutaCoqKOom6mwrbO6uLionLipjaWPkpOgh3mBgHJXX2JVZGBgYV5fZmBbVUpERUxWUUlKSkVKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VdV09fVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q3v7i6uLqtrbGmsaquvrC9vMPDrJm7qJWuj5iZq4l+gHloVWFfVmhjaGRWW2NZVlRKSEdMUUdESUpBSUQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1Zk9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQz1FNkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vMG8uLa8u7e+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrp56Vlp6Yn66lp6eln6SToqews6iysry2wb3TycnTxsLFzMLKxMC+vr+8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxuXV9eXFVfXWhlU1hhVlNWSUVGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlop+gn+DeXuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlUS0RCS0pIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7a6tri5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6OdrKSqsa23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVtdWVdbX1hiYlFbYVRSTENCRkdFPEBGP0JJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uMCxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCLiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaWBmaWltWm10l62kvYiHZ1tvaF1aWVRIS09QSktQS1RRSExBSkZLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJj5GSnZuhmJuVloeemaaarLCor6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/bGFaW1tWXlZYZFlPXFhPUUNCSUVDSTxBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBeXU5RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmnrK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJyYmZmenquspKeirKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcd2xjW2BbVF5RXFpPT1NQT0k+QUdCQ0Y9QUI/RkU+QD86PT09PEpCNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lmn+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6FkpCdl6ewoqChpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPLiHBtYF5dVlJXUlpPSkdKSkpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dW59doV1eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6BhImRjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaGisZyHn5KSk5GLjouHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ibnKecpr3Dxbm2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHVzbGJbV1FTUFhVRUZKSUZGPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot+h5KCiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoFwbmM9XmhycXFwbnd3gmVpb3J2eHJ7jIePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2IiIOFi46gmZOIg4d+bJl5hJmHiJOMjpWMhnubiJOOraqUlZefmKautbyorb3Gy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1d2ZlWFdOUVJcR0JFSUk+Qj49ODo+QDw+SD1AQkFCRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoKBgoV/hHx9hJiOh4t+hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBmTmVjgnuCd4WhkIt5end7hIB8hHVtlJaVlpCYkYOJj5eal5emnZigl5+TkpejnpqrlpGRi42Tg4yFiYmBhpCRnpyZiIWLgYWXeoiJn5eQiY6Ki4J8oYmQi7ygmJOXmpyopqWtnqe1vsC/uMbJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVVVE1LRE1EOz08PDk6PD85PUE3Pj9APUA+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6i3x+gH+AfoV7foKRioWGeoWIfHZ+dW18fYd+dH+SnZGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH6KhH2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWTjo6QjH+Qj46LhImTlpmfn4iMlJGdkIKMf6aZiIWOg4aEgKWGiou4l52RlJahpqCdnZ2jrra6tKvAxsrQyMfNz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk9PSENMQz09Pjk5Ozo5OTw9NkA+Pj09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeYp7e4B8f3yIe318i4eDfnWEhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuGi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WWkoyTlIaAi4mTjoqKnZeYo6KGk52VoIuKiY6dkIOIj4CDh4WlhYuQspickpSXoaCemZKbnaexuKykvcLHzcjGz8zQzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpWUVVXQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbniLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlZiEgI+LmYiOkKqXl6SjiJmelpqIj4eXmIqFj42Bf4ePpYiNk6iZl5OWmKGYn5mTnJqisrSlo7zBvsfGxcnIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1xbTUlTWUJBR0Q7Qj44Mzc8PDo4PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aBg3xtbot/e314eHyEh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKKhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx1kZmylZakoYecmZKQi5CKl5uJi5aOhn2MmJ6JkJCcmpqTmJefk6CdlJ6boLGuoqS3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNeVE5ISU1FQkNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3KNen6CfHiGi4mGhJKmu6yosb2wpa2zs6ijorCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlY2LjZaYk52ZtJaVq52KnJSSjpGSjJibipKekIuJlp+hjZSNmJmdkpuYnpShoJScnaWvqKGls7iswsjEtrq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQXFBORUM+PENBQjhAODg1P0c9PTY8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcLAr73Gu7O0wL20rauztoyosq2tvaubu6Worbm4q6amoqKko6mvsrGqnZykmZuYl5+ipqWSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWmI+SoZGJlJukrJSWj5OcnZOgnZuYn6GUmp6npqSio7CypsHGw6+wurfFxMO/zabHxMfEvdbQzcTKhXBvXllXXFhMSkFLQUZHP0FAQzs6ND5BPT01PTY+MzQzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/CzMLDuce9u6+rubuYs7e6ssCupcGkq6+8vaquq6OjnqerrrWwqpygq5yhnJafr7Wni6O6urbBvKypnbOlpKiUhY6pxMOkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWYpqCvnIyrnI2Wj5KRlZWOkJWSj6GUhpefoLKelJmTn6CYpJ6an5uglJiepaSmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdQTEhCTEtMSkFBPkREPDVBRTs7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJmambq9x8jJwdLJy8LNvcKzrby+qLq/vbvDt6zBqayzvL6qsKqkpaSsrrOttrWhn6+fpaKYo7O9qpuovcGktrivrJSyrKysl4eaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlaOeqp6RpZqMj4+PlZaIfI+Wk5KjmpWfoZy1pZCelqSjoaWdnaaYnZWXmqSjqaeisqyou8DDr6Wzt8y/ua/Es7u+wbiswsPCwJdqdl5VVFlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIzNTJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf3+QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCt7C6vLS9y7zDwba3vK2zv7q9rq+ooKmotq2uqbK3mp6to6ehnau3uKqlsL/Esr25tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpJllmKOfsqWVoZWrq6mmm56mlpiWmJSgpKiln7arqbm7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtXVFJTTUVJUk1LP0FIRUVISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMfGz8/O0sq/u7axuru7vs+1w724ubezsbWzuLOrp5yrrLmqqaevsJijr6Wno6W1wLCsrLS/w7rAurSnura5tK+Wpa2urqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6CgmYqNkJacYEqWnJqVmqWWVZewoK+cn6SUrq2qpJqgpZOTmJiNnKCnopq0qKqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWpiWVdNT0pET09QUjtHS0lHSUNDPjpLVT9BOj1FTTA3NTM0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqK+ZkZeHi6iWjoiThaCIhJ2Xj52hmqOktcm1qcW5wsPIysnIzc3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisu7+orLa3v8G/vrmzssSyub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmpqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6mto6KepKeRkZmch5Sdop6Wsaapq7m2vbKyrr65tqCjp6ilppybrampi2BiXl1OSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSfjJOrm5GSk4mrjYahnoyjrZSjo7bGvrTAucLCx8nFws7Iwr65sq+5tcHCyrXGssK8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trjCsr7BtKq1t6u+pY+jmJKioLyfiZqgmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uWiYykoZSdop2gta+lpJKvq5mqqpyco6KokJSUn4KPnp6clamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl1bSEdFRkxRSU1FR0dCU0xKQkVHQVZTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiaqpyWmpqPqpaVp6aVrayYoqu2w8O8vrbBwsDHxL/Nxru9ubKwubO/w8i1v7C8t7m2pqSrrK2hoZmqqsSipKmspp6sr6uiqam+uKetv7K4t8e2tbm4wLPAwri1s7SvvqOXo5eUnJSun5Cio6Wjo6CQvaSpnqirnZ2hm6WevaGZo5+iqayhnZeNlZ6TnoePhI2Tn6SgnrWspZuVsKaZr6WcmaicnoyYlJ6DjqCam5KlpJqXq7G1saqlqq6sm5igoJKPkJWonpRlX1dfW01IR0pOTEhFRElBPlFJQTxHSUhcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfnq6gkqOflqSgpqmsmLaxoqqztsXEvb+1wMK7yMK/yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+qraCkqa2voaaovbWmsb25t7bEsrS4ur+0xMG5ua6ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6yspqKajZqfkp6Jjld/lp+loaC4qqeTmLSinrGfnpmulZ2NmJOcgY6fl5WOoaOVkKWtsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LR0pKTkZFQUdLPz1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02enqGZn8SopaK0op2zp5OrpaCjn6yprJ27sKistrHHxcHCssPDvcbEvcTJvK+wtq2wtK+/xLS5sbC6tKyZqLGpqpqdpaGnwq2brLGbqqOusKmlqby2p7e7vq+3xK2zs8PAtMe0u7istLatqqKmlpWVpKyin6Cbp6qwr6+7sqagqamZmZiToqO4oKGjkq+wrKWnn5KhnpWej5CNlZ6bop6ns6amjJeym6KtmZyarI+dkpWSmX+RoZaPjZ+gk4umq6+kpqKcoJ6RkZqThYuRjZudf19jWWZkSUhMSlNCQ0BJSDs7Rj85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/yMK0q7WosLmsv8Szt66ttrilmKqyq6qYn6aXrbu0m6iwmqygrbSyqKu5sqi6tLmzuMCqt7LEvbXHqL+vrra1qaesoZiXkqaloqKYmKWuuK6ytbagn6ikmpWVlKSgt6KlpZavsrKnqqainpqam5WXqJ+gmKGerrKipoyXrZikq5aYnaKPmoySlpiFlZ6UjI+bnZOKqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1tqaUxPTk5UPkNBTkM7Okk/NzdST11fUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6OjnaGmv6enr7GhqbarnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMXAuqm2pKy7rcHCt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptratvK20s7m3rLixw7u/v6bEq7G3r6irq6eemJmroaKhkZihsa+zrLC5mpypoJqXk5inoLappqOisbG0rLOorJ+coKCbnqWcopedo7Owmp+Qk6SZn6iZk6Gdk5aIk5aSlZack4iQmpiUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAPDtJQTc6WFBkXlBXV0VZX15NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iqrCspLK4qqa2tKygrbW9r7O4u7q+t7bAwr/JxLnEwsC/uMS9wbevtaert7K8vr+0qa6xtp6Wq66orpemqI6nu5+lrLOeq6KxsLOsqba0tb6usbK1rLC0s8G7xresvbCxuKysqqOypp6lqqCkl5Gan7Oqs6urs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZaZkpKdmZ2fnZCqnJWWhJSWip2YnJOKjZaWmpampaOfnZaVl5J/j5SFe42SgouVZGtxZm9xXkZZZ1ZEQk1YRFo5SEI2PlxRaFxPWV1HW15dT01SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtbunprG3xbextr3Bw7W1usS+zMa5w8C5vrnDuMC5srSrqbq2urm+tKqtsLWXmKesqaybq6uOq76erK6yo6ugsa2zrq62srm4qq6usai1r7W8vcqzqre1sbSvrqahtKCbqK2gppaWm5qyoq2gpq+XoaSampOOo6Wos6qhprOtqralr7K1r6SZnaynmpifmpmrt6OXk5COl5ygl5aTqp6akX+Sl4ydm5iVkIqUkp6ZpKKioJiWkpOVeouPhXuMioKKkWptd211e2FGYWtZSUhaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqspqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2+v7e/vLG8rae6ube2wrarrLG3lJamrquoo7CplK+7pK2xs6eoo7K0sbKxtbG4tKmvrLKnt6+3tMTGt6m2tqywramno7agoKexoaSVnJqVsZ6nnKCqjqmjnpuWmKampbioo7K1rKiyp66xtaylmaCsqJucnpyUqbiclI6OipebopePl6SgnJOCkJSPnJuXlpWIlo+XmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEpOZFw/YntHSThHZ1dmXExeYk1YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v7+6vryyw6epubC2tr+8rquysZugp7GtpqavpZ2yta2rsbKsqai1u6y1s7WttK2qrKisqbmusrHIwLmlurCprKylqK6xpqWjr6SpnJ6dm6+ao6Ojo5Gtn6OgoKKrpqe5pay1t6WrrKmtsLauop6jqaqboJubkqS0mY6KjYeQoaCUjJScn5KQg42Skpyal5WUh5eSlZmmm5+ejJKRjZB2fY2FfHt8hoiIcHJxfXx9XFNkb15OWWdcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaSppbO1srW2srKhq669zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SmrLessre8wK+rsayfo6etqaiksKOqsqqwrLCvsK6rs7ynt7GyqbOqq6Wlo626raqyw7q2rbupqaesqaexpaqko66qqKKfnKOtlaWemJ6ZrJ2ip6miraakray4srKiqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlYaWk5OXpJucnIqSkI2Jf36HhXx2foWDhXJxcIh1a19aYG5iUXNxXEs7hHxGP1h1WGBaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xq7PDw87Pw76/tMDCw7q/s8fDqq63rbK4vr6yra2qpKeqsKinqLGltK6rsa+tsrG0rLS8pLizrayvqKufo56wt6uqrbu3pbe2pKmnq6uqraGpp6axsqSnpaGhrJeqoZWboKaepaKrpK2jn6exuK6upKajm6qrrqmdoqWkpJifm5aPmJySgYKQiYScn4uKjouYjY6JgouXopuQkJuLk5KRk6KZm5mKjouLfYaBgYN6c3+CgHxydYukh3hrX2BuZldlh2NOP2eTTEVieVdiWFJlVE1WVVZUT1xdYVVLTmhWVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Cmo6uxmKuqrbastrKspqyqqbzAwLe4sru1pbKvw8nL0b/Au7m/vsG5wbnAxKyxtbGzusC+srGurKqrqLappq6vqrmwqLKyr7Ott6q3t6e0t6uspamqnKOes7OpqKS0taC3rqCqqKqoq6egq6ypubWqqqmpoqqgrZyTqqGdoKWipqOqn52ntK+pp6ujo5ilp6eqnKKko6CZmKCRjo+YjX6HjYeEnZ2Gg4mJjo2Oi4KFlKKajY2akJGRj5Kfl5iWjIqDf3SGgX9/eHSCfnl2fYCHnY9vcmdmcHdcYXOIa09emVZIbnlVZFZRY09NVlRVUE9YW2JVSE9pVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspq2wtLWwrKawqqi6vrvAsK25rqG2r8jHyNHAvr27u8G9usLAvr+usrKytby7wrGxs6qzqaS0qKWts7O5sKOuuLKwsrururCqrrasqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrGqo6CuoqGUo6Ojp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBi4aNi5CDg5OfloiRnJCTkY2RnJSXj4qGhnd0gX98dXh5f3lzcnhmf4akdmlfZGqAdGeIjH1TWG9eSnhzU2RTUV5NTVJaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glp62kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusG4sK+0sbq7uMCysrqsuKyitKenrLK3urOoqL22rra+sL2nrqy1rK2cqa+joKWtq6icnquzpbSom6qnqaOonaOpqKm9rLSwrp2qpKCunJuzo5aknKWln6Wcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Pg3+TmpOFk6GMlZGLkZuSlYeJfn9ye3p+fGh4fHl0b297ZoR4hIlkYWdhcoR6bWd4XV5UP1d7bVRiUFFYS0xOcnVdSFpbZ1lFVWVQRD5KT0RDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OURXPSqQlbKaoKCqpqWhrKW4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtbOytbK9uLm9ta25tb6toLOnq6uwtri1rJ++vaqzwbS8oa+ztaqsn62wo5ymqaqknpulsaewoJ+rqaehqZykqKGtvKiusa6hq6Okrp6fraaXn5uho5yfnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlIyIe32Lho+Ni4mEkpiQhpSjiZOSh5GakJOBiH15a352eXhjfHpwb29xdmd/c2mEaGVnX2xzjWxhaW9gbz1aeWtVXk5QUUpJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJmtmqGYqKWkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i/tsK+r7S9t8S2w7KuubKzwLS6vbeoubi9qqO0qKmqsa+5saucvL2lsMG1tqKvtrWnpqews5+epKaooqWZn6yoqZ6gqq6moKaYo6igsbmfo7GvoayhrKScp6apmpqbn6SVnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLlo2RfIV8c3B9cXR0YHp4aG1vb21ofXFie21pZWJdZYV+X1pzanFKSX9pWFpNUExKSFBSUUlPXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl62hoaGlorirsqW0tKmoucS1sq2ft62urbC0xsjAtr7BubC0vLa+u76vq72wtL+wvMO5qLu6t6entaioq7GttLGonL+4pq28t7KfsbewqKWnr7GboaSgpaWgl5uwp6Gfo6ivoZ+hk6Skorewoaaxq5+so6+YnKqkqZ+Xmp6lk5udm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6j5aJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeMj3mBenByd29vdF95d2Rra2pnZ4JsZXJra2RoWGFzf15abHVpWUV9XVtYT09LSEhSVUcyOl5ebFBEV1VZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS47MV5RLDKWpKOYlp2qnqaho6G4qrChu7ilrL3Esq+uorWvra2vtMTEvbO+urews7m4uri6rq2/s7S5rr/Bt6u9urSlorOrqKqzrK6ypJ3Dt6apt7ern7K8qqemqK+rmaOnnKWmlJihs6aanqWpqZyhn5Sln6S5qaSnraaepaGok5+poaGhmZudoZKbnZeho6ycnJujlpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWVk5KMkZWUjY6Ue4OXj4p3f3xsdXJtbHNieXRoZmlmY22EZmdoZGZoaV5lYmlmWmV6YmBQc1RbW1NLSUdJT1NAIStpXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK1rqeur7fBwL2xwbewrrK2tbm4tayqvLSvsrG9wLeuvLyxpJ+2rKamtaqrr6Ggxayqp7G1rKy1up6oqauxpZidqp6npZKZpa6jmZ6kqqGboZyYoJ2ntqavqa6hoZ2doZWgpp+ioJmcmpyTmp6Vpp+uo5iYn5aVjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiXt+hYiGhJCElpWPj5CRkJGNknuDlY6Fc399Z3lwa2tsZ3Vza2FnY2Jzf2FjZWZlaWliZW9ZXlhcbGNhTGdXW2BWSUdIS01SWD45YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKiwvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKNrqGamaCXpbSyo7K+t6Gxxru5sLCjtqyrrqm5vr27rcCyr6+utq6zubKnq7mxr66ztru2r7m+rKaetaugobKlq7CfpsWhs6aws7C3rrWera6srqKZnaeqpZ6Vm6emoJmlo6mcmp+clZ2erbCmuKeuoqGamp6YnqOapZ2Xn5iclZqhk6mXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfImIhIWKjIiShZOckpGQkJGXj5B/gY2Ogm+Cf2d5bmhramdxcmtbaGNhcn9gZGdqbmtlaWVjbFxsbHVxYVNiaGNlWklHTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuNDw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7GdnJShm6mzsJ+5wLagtMK7vbmxprawqa6luLq4uKy7sK2rq7eqtbmtpLK1sa+psba2sbO2u6epoLapnZ+qo6qunazEma+msLG3tq2snrGtr6qim52krKmblZynpJ6ZqqOllZqgnZKco6uqqLmep6Sgl5qanaGPa6OWmZ1xg5ecpYF2kqypn5aXopKKmJmAl4qfjniFko2DbWl+d4RxbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXiLhH+DkH9miIBodmlmWF1pdG5OUGpjZnGDZl1kZm5raF1bXYmQhYdoT0tDOEVUZ15KSFBQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05bS1tmYj5HMU5hPCsvjqSaiJaym52UoZyqrqujvcWvqbfCuL68rae2saarpLi0s7Owua6qp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7G0ua2upKitqqumoZ+coainm5ihpaacnKeonZOeoJmRn6iqo7Ovo6KjnJaYmJejiKGPkpqIoYiVn6J/pYCorZ+UlJ6UiYRyeIyOg4igdYeNaZeJZn5zeKBvh4eEfox8f6Ggn5l/e4eedIiOdpuKbIeCg21oZGR7bXJiVIZtY21pmHFYaXBuhlddaFpralqIcGx5codoh4RZXkZNPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOW0xbZ189SzFUXjcvKI2nmISdrJ2amp2fq6qoqr/Dr7K6vLfBv6qkt7GqrKa0ta6vs7arqaWxraW2s5ustba0pqeos7Gtsqiunquhs6mgpKWboqWesbiVpqent76mrKepqqunpqKgmaGoo5mZp6OlmZylqpaTo5yVlKSmpqG2pKOgpJiVk5iTnIiukJiViqqMmaOdhrGBpa6flZuhl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGub2VpvJK8bmh6bXGP2H1Sa2K2sn1/cJR1mqGqkFZOWGFPVk5GVVxYUFBTi1tXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWls0MSGPp5SBqKqfmJ2epa2yqbHCvbK1wLW4v8KrprStramosLWqsLa0qKimtaWoua6csrK2qqWkp7KvrrGmq56npLKkoqGgl5yioLKvlp+kobW6o6qooa2tpKKdm5qjqaCYnKmgn5ieqKiRnKeblJ6ip6OhsKOen6OWlpKYkpmFr2tqi46qf2iFloetZnGfnpWbqZdxrqGkfne6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aBWF+Lq2h9j3h6aqg4Sq9bWFRtY1pLT1hfXFZWO06HUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npp+jpKuyuK20vb6wt8WyuLvDp6mwrLCpqrGvpLG6sKWlr7OjqrmpnbKysKOloaqtsKyvpqifo6KxnKOdmZaZnZ6wqZicoqC1s6Grm6GtrJ+empego6mdmZ6loJ2aoaikkJ2jm5ehoKyfpaagmqChlpWRlpGahrWbtXmGqZq2mXeHs5u3f5SXmKyXf2uBpnqBhYaRlJJ3q2dqsVuse46HlHSJcI+GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKShl1QqW5jcHuFgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7bCsLzDrbm3wqutra+vp6+zqqKvvKuiqLatpKy1pKWys6ijop2nqrOpsKimnqCgsJagmpaWl5ugsKScm6Sota+hqI+pp6qbnZaYoKapm5+do6CcoKOlpJabn5ianqOrm6WanJqioJeTkpOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYaigaWCeat5j51Wr3uJfp9quVq5d4WEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcodrlodeUrW0yIV+iHxjpDNCnXZdUWpoZFBAWGZZZGFKR0xqSlpTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbSnpLy3wbC6wLK3tb20tqiysaSys6agr7apm6i6rqSwsaGytLGhpJ6eqKmxqbSppZyenqyXmZmYmJaYo66fnJeorrGpo56OrKKnlp2YnKGnopiioaKhm6KjqJyfoZ6VmZunoZymlJubn6GYkJKVkJ2Ism5otXKsiHCOp3O0dXS2e5yZpo6QnY2jfo+eo36wdYKQ0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOGYZaIXVnKnW/AgHRNS7VTVcZkVlJqY2VYQU9qX2xpUFVGSDk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam6rKa1pae2u7yyu7+4t7W8vLSmtbWjsrKjoKywpZinu66lsrGdtLiqoKWdoaqlsqisqqWanZupn5aVmZmTlKSropiTp6uxpqGWkqyfpZKUoZylp6CVm6anopujoK6aoZ6ekJaco5+cpZSdlZmjn5aZlpObhax8eKh3o4+Lh6lwrouEqISamqOLk5qLon2Sl4euhH+Bs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eXiGpdr3eVn493bDV5yK6zYERVb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKC3sZmzwa2osqeqsrq4tLm+ubizt762prm1obWtoKCprKCVqLasqLGyq620pJupoKCoorWnpqqkmZ6VpaKUlJ2akpakqJyUkKetsKWglJipn6KPkaKaqaahlZqmqZ6dpJ+tnaGdoI6Un5yfoJiYnJaXoqCUmJGnnoepfn+meaGPkISqcK2NgqeGl6GiipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25kT0pDoVxbTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqavq2Ys8Guq62oprSwuLG1v7m6s7K5vKq7tqGypZ+mp6efk6uyqbCqtq2qr6GYoqCmpKS6o6OsoZebkaOglZWfm5WZoaGRjoypsLCmnZaap6afjZKkmKisqJWYqaifn6CkrqOhnqGOlaGZn6CSnJeclp6hlpePrJyPrm5ytHSpjHeLpnS0enW0gpSmpJOdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWWJcYHB8Y1NZUT4/bG8yQkJAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqjnLG/rq2rq6e3qbivtcG1vbKxu7irwreqrKGdp6SinZKrq6i2o7Oorqqhl52ooKWruJ2jrZyWmZClo5aOnqGcmZ6fkZOVq7awppmTm6ypl4yUppqlraORl6uypKCeqKywmaGjkJmhl6CblpuXoZSdqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteW9YW1lDQUBxP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExbLTZAOaean6K8o5eww6+tqaqssai5r7fFsbuzr7ywrsGyraajn6SinJyRqqWqsqS1p62kn5aaq5mnrbido66ZlaGQpqCTjp2kn5mfmpCWk6+5sauVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipY6moZWhmpyXlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCAdJG5g3yGhoqHjXuKho2XfaS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYlng3lseWKLrHB0hX5YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorKuqu6+xxq+1tLC4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ6jpKKLk5KmnKarnZappaacm6Gpp6ejqaGRrJ6Xop6Xlpidno+wqZScp6KPa39qnKl5iXR/m492e2aHe76/wLpvkoNxlIVfcmpaXpuJYWOHjpVrYH+UY22cdmKUa4CalZRlXmBjcZqJaHKMfIaUZmp+cHR4fn1iW3h0gWhQXG6EfHyKalhseYFySUpvhXBOck1EVlxmYExaV2ZjX09abXZqclJPREVNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocGkmbS5tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJunnaeiiZOSqZuopJycrJ+jmpyjp62in6qimq6blKagl5Wdn52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY+KjJiWh5SViYOTk5CJjZGUmZOZl5qfoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ2ioB8iWpzgnSDdWR3fXZrb3lsX2Jbb2dNWFlmal9XWXB6b21mU09GUjlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaKfnqOok5CYqKiyw6+Zq5yqno+Wlqmeq5yeoa2YoZudoqWvpqGkqJ6smJalnZmaoZ6enbChnaKnlpmUmpSho5ekoJmhjpeVi4uOkJiuj3yVm4KRgYmpqIWAmJaLhI6fiHuEkYaFmpGHhoqVjpuXjpCYnqOWmZKQnI1/jWWhs66EiYR3e5CKfnd5em9neZGBgYlrdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvq2qrbGyoKqmsq2irLOwxbCrraSzr7yktJygqKOhnpmXqKappqSms7WelZWempqwpq6+oayikZGempqUkpainJepnYSdqaujtMezn6mkqpaWmJqnnqmcoKWrlJ+fnZ+qrqilo6uhq5qen6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aEk31lf4+bkGN5jGxoanqQo6tqZZqYfmiFimVlaWh6jaKOa2iMl5Gid2tqi5min5hzbG56hIyGeVhlXYWBXmyLioJ3XGdzd3eSgIiCb3iCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vbmvq7Owq6Wora6wpq6usL2xqqilrrCwn62YoKSeopqap6ycrKOmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Whp6+fnZWeo56jnaSqqJKfoZ6gqq+pqqOqnqabpZ6noKyWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGjeqaYmXSqgXzLwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWyb42Bb8p6f5t4koSPgHd5gYB5cXuAhnB3hYuSeGx1kWJlXndjX2WAYl50aG1kYlhLVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWiucO0r6+/qamUo6+psK+tprK2r6qmp6axq6CrmJujoJybqqeinauipailpbSknqOTpq6tuLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoamvqZaSn56imaOkqqOToKGenayuqKulo6Gkn6SlnK2pkaSbqa6qnJ6rna6jl5iml6KkmJ1/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OAr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Qdnvbe3+ZcX6Ik3Z/ZXuIdnZsfodtfYWPkH1rgIxfcGpvZmBfeGRbcWhqZGZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7WzpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21rKayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fs6ipsa6Wk56copehqqqflaGenZytrqapqJulpaOhqpKss5aloqqqnqSnp6KyopObp5yhnJaVkZehcoWMmHaFqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoiijJGLnH2reoiSj59/eq1WnMR7kHCTwX2BlW11cIxtZndlhm9hd25yboiJj46DbI+NY21zdW9gZm1kX29pam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrZqdp6OvrKKstam5zLGtpq6rlpWcnaKZn66snZahmZ6eqbGnqKibqqejoqqar7GiqKuuppqnq6urs6STmKSnnJaThaRrpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF6o5+AfMSwxYxzr7SzuXJiqa/CdWiLi5aNgGuXkG1reHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtLCwqa2jqKeqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK+hqZuclpWnpJGboqifoKacsKWiqLGstsextamsqZWRnZ2imaCls52aoZScnqeqqqKtmqunoKGporKsoaqzsqKcq6mwsLillJelqZqdk32qbZ+EiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHg5Nkjo+bkXtvlI98bXl0fHptW2VqcnFmgGleYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpaKds7msq6Gmm6imqqyppqCmpZiro5+vrJ2moa2an6mlnae1oKOYlKirtrOsm6acoJaQpq2Smpyno6Cqp66ho6epsLPBsbKpraiUiZidpZuipK+ml6KVmJylpamZrpyspqWdq6O2rKGxubCenLCotLS1ppaZqaWcoZCDnk53moKAn3qEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSofq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY2RoZV6fJCOh3J5coR+b1tsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWmr66uqKeepaWapKehs66iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWhoq+tnKSoorWxwrCtqq2qkYeRnKedo6ScpZeemJiZpaOnmK2hrKOkl66lu6yit7aunp62s7qztaman7GjpqCIkNK1w7d6h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYmffZeZh4eQc66CpZujjaaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfp9ic7K4aHeOkqSXfImKj4h1e3iNgWxod2l4c25/dFxkZG1tZmhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraiopmVo6qnramqmaWin6ahoLWnoqmnsaSUq6OPpK2knZCamqq0tKSdpZypkpSXr6CgnqajnKectZmgqqO1qsKvqaupooyEj5yioaajlZqanJiamKajpZepp6ugpJuspryslb2wrZ+jsbS7rbapnau0pqqafKiRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zlourd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVscoWZXWBbjKBtlI+kl4GSipOId3mBln5qbH5ifXRtf3lfZ2Vwb2hnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpuEqcbDt8G0n5qtoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKKroK+qmq6hkaqppZaKm5CusaynoKibrZiZj62ioZ6loZmknK2Xn6iltqi+rqSpo5+MgI6bm6CmnpKUmZuUmZmlo6KYp6qqoaKeqKi8pJfDraujoq20vK2wqaO1saqtmnevfpGLnIWHfbqtiZhksIxllq59oZCEp5ecgq2LhbCGp5qkoqKRhaBcbGuCs2B/rXx7goCybGZumZeLiLFafbRbpINryKJmn4F7u1l2tVqyfVOvgXqsWIChbZeNppmIlY6Sk3h3jJt8Y3N8YoN3dIB8YWpmcG1mZWVPVWNcQVRdPUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiZuOr6ypp6Ooma6Tmo+pmqGdpJ6Zo6KlmJ6iqLGou66kqJ6dj32Lm5ahoJmQkZqckZmXqJ6fl6espKOkoqSpup6gxqemqaGstreusKmhvrCvr5eCqpKjr46bgIakl5iQgIC4w7qEj52ThaiZnYOsi4Oviqicm6arkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHl4or67dICVjKSajZmOk5l3f4+ZeWJ8eWSMZniBe2BrZWtqYlBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHCQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxwLqyvbOina6nprOmnYyXpb+ptq+nob+mprGbnrGcuaifra+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKusqbisp6Oal5N7iJmSppuTj5CYmY6Xk6iYnpaop56opqCiqrqeqcWjobCkrLS2rLKso76rsbGcdXaqpbeFZYmfcGeskIqPbm53pZCboIJ2sZuXcZGOcpeppJuYr6RybG1tZot4b22DmXGAemlwaWeJlpWXcWhphYZncYZkXYpjaW9aXWd+eKZgYnKQknBmZICNko2glpWXjpOaeoWNk3RkhndnjGp4fnlkbGNmbGJLZVdKa1k6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq6srSqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK2sraaOlq2qkIyFlZetn6aqop+ko6CRi6WSppmpmZajqaCWnKWlpq65qqyZmpOSe4SXjqaXjpGQl5SNl5Smk52Wp6KZr6Wdoqu5n7DBqKW0p62xs6yvrqq8p7G6mIyiqaa2nImWopiGqZuQlJ2SqrSanKStorSYpKKfoqOdoqWilqynjJKTjYeTnZ2VkJmTmJCOlYR/pJqXlY6Lk5KKkIeEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46Nm5KelJWTnYCFkotwaI92b4l3dnx5aWxlZG9kVWFYQGlaR2JfTVgrRT0rJiE2NDAvHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t6+uorClraCht7GRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4uIiY+cp5atpKGaqJ6ek5Wkl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXyBlYyhlIuVkZWQj5KXpI6dmKeemrSjnKart6ivwq+kuKewsLKuq6y2vKOyv5qTp6SmtaKSnaaejamfjZKfoq2xm6Kks6uymqainqWrn5+enZetnpOaopyUkJermY2YmJaQlp6Rh6CelJSFk4yPjZWMgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkJaRn5Cak52BhpaFeHGUcnmJf3F7fmpuZF9waWBcX1ltYlBgYk9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyhsKSmsaiWm7imo5SYqZyOhoqJm6KQr56klqigoZKXmZyui6qWj6iYp4yYqI6duLWjpZibjYl5gpSMm5OKlZGTkI2RlqGLnJynnZ23on+DrrWisLB1pL+ks6F5e6Kttb6XeK+moYqAqn9kXGJ2n46knoOWfm2UtZ2kqbCspWagoZR0epuYcIGZqplsf6SpimWcpZyRl5iWi5KbkISdm5CUg5OHjo6SioV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2eOjHJ5oZaVZHiXhYB2l2iCiYJueX9qcGVfdm9ra2dcZWNhYW1RWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamupKetpZKWqrSusKWZqaWql3OLnK+gqKunk5a5oKCPnKSekX6IiJqejayapJWnop6Ol5KehXWuj4ilmqiRlqOIm7mzp6CYmIuJdXeTjZaTipOQkJSMj5KfjZmepZibsZWAjJu1nbSMko+9qKJ+p6N7pbG6g46PqJ+EjIaPsamvjImWopp5gIushp2eo6mrqYmWh5l3ppx7iJyBmKeDgXuds3uKhqCYmZSYloGQlpaDmZpieYiRhI2PkouEbnGQiHqCcYGBhoCHdIeFl5N4lmiTdKCac3uZgpyZhJh+kYiBgphpjIyEanh7cXBnZXhuaWxqXGRpaWVxWlxHU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqqWZlK3FvK+glKWntJ2Pg5ysnKeioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpKOhXB1kImVkIqUj46bi42QnZCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsYWpjqmZjZ18qI9ye3ecjqaWaJWkebSMoaCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJiAjpSciZiSi3yFlIaNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFdkRl1RTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqqummpSeoqSpoZSjqbWir3+gp52lnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+MdpubjqCRiJ6jm5aYl4aiuKylmZuMjH9ibY+Lk5CNj4uMl4uOkJ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqCNrbGIpI6sm4yafqJ2gJmUa4GrdU2reIeNnZOcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf417ZGeLc5l9eZdsXHyXbmBTcYVcYG16hGBZZYJ+hYGZcaira4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVudHFqam9daW9sa2hXZk1dWEU5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deX2N1YE1FOk1OTVRiXFtmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauvopmWn6Clq6ufnK20oaeRoJ+gp5yZjpm0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYWso4eckYqYqJiZmZGHpa+mopWZh4mAaW6IiIuOjomKjZGLjpGgi5Kdn5qhpX+TgY+joZSgd5yWkKeDo6mAhqywh6V6jH6Emn2icHOTh5V7nox5bYeci5qSnKqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzk4iBgLaoZIHGuHxxlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xzpHOegn6jXpyZs5Zve5ees3RyW56ygmlicHR1cWhvWGprcnJlW2ZcYUxEPUQ1UUFZcDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZWGBge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatraCaoZuio6SsmpqxrKuSl6CZoaSZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYmOqKCGmI+KkqKTm5qMiqinpJ6PloeEfmt7h399j42Di5CQiY6TnoGVm5+boJ+LiXecmKKNoHKhjImpiZ2okZiqrYCujH56oJl5o5N4gHOXiIycfZWfh5uOmp2oiKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg56Dc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI1/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd4YV5kVmFCUEVPN1ZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhY3xpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZadiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKeqnZejmqKfmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeoqElqSciZWQhoudkZybiI+ooZ+ai5CKgIBpgYZ5f5eMe4iNjoeOlZl+kqGeoKGTmHJon4qgj4xwkoyCqYmaoaWqo6p+sK2koriXdqOzoqN/iJR4nXqqmX+ij5+dmYmYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyaf3SqWl1ve5eMeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmVfa2d1e2JjX1BdVlxUVkBZRVBmRFJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpqEU1+hp7S6s7OpmqKLmqmbm6eSoKujoKePnp2dmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKAiZKhm3KSkIGImJSfmoSOqJuZlYqKinyDbISFcYKhjHiEjIiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgf6doeG5+mXOgc3F8nYWYb5OCrXyjhKefm4OkcF6paHajZHCmYZzTj3x7mXhyc2OihpB+onKjkHZrkLOLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXF/hGxoZmNtdXdmX2FRWmVQUWFIVklUX1dTW2RqW2RQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVpU2R4eXdJRkVjXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt/qrCytbCzopyYhJemoKCijKSnn5epiZmYmJSZk5Kgl42HhXtwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjamZk5KKhIl5g3aIgG6Bn4Z3gJKFh5iglXmRoaKZn4mzoaK2i3qsp6SupXCpgJuRhoGelH2kgaKahphxnoSira6Jl4t/jKSNlYOvo5V3tba2yaJzlIyDn2Cel6lteZaHoJt1oYd3oH6QlouBb01mo5JxmohzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanVreIZma2Zic3RwbVVbUlhnT1JnSVVMWFJVXGdrblVnV01KQUpNS0dKTkFRSlBkY2ptZXVzc354e251iXp7VVFPbV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKdibCohWVAlKKyrK+vtaGij3+Wp6Gho4ukppybpoKZl5eOl5CQm5KNh4N5a3mGZYOMf5afeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CJeoB9i3lwj6CFeYGUhoiVnpR+kqOmm5WWg2dueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gImUlY+5bY+KomJ9maOXiW5za6trdaBub6Zgm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiIxxfIB0cmSlbniiZGanaJdyi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam9RVlVVZVlTbElYT1xIWGhocmpZa1ZQUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd46AhHdeUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWpsLGmn4p/lqmcnaOLoaGaoaGAlZmUjpqPi5eQjYl7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpCopZyJpniWm36liZaMspmekYSvl5+leZiJe6l1p5CEmm6looyShIyDvG18pa+Ch4aHlZedon6me3KolaGWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGiah3WrZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp9bmdtU1RYVGBgXGtMXFJcSV1sbXZfW3FYW19aZ3NlbW9xY3F0YHd6fnlyeYNyg36Be3uNgYKAd2J5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqqqeqKeto5mIgZapmZ2iiZqknKidhIyakIackYWSjYyMdIV6iINvjYV9lpJzdIZykYNuf4uSh4aUkH17goWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJqdiIuSqqKgj4B0lJeIfoF5lK+kf4KccY+GeZKNhoB7cqiNcn19epeWm4SNeHt9fYiUlZOLd5GZoaKFe3+KbIyGXHp5c3pxaW9+k4pxgHSCj5STcYaEgmWNf1+BgYx4dnOUdXB6b2+Jb4WGX3dpeI5mgoOGj6qcf3R9lmqJiG9+dXyDdW1sZoxzeHuXd4Raald5j2lud3Jxb3d4b11rhW5pZ1ZZXlZcZGpjVWBVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmCdX+Af4B5i4WCfnxugG1keW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6ekmaSdq6Kgg4OWqpCdn4iZppqomIOBnIt+lpSHjoqJjHKCfI58fo+EepaOdHKDcJWGfH2Si4aGj4Z5foCGmKOMe6afioWPj4SVg4aOmHdxhKqFjZGcj4ednIaKmqifoKqDiY2Vm39+ipetqJCTqJF4cZ+ThHyUcH+qh3F+lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjIlydWyDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8hI2DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY6DbneLgm+Di3dtZGVjeYJ6lVpbaWZtdlt7eXd0bnNyg2ZcbYlra2JZWFxZWGpxWl5gWV5dZXJ9enRvdGNqaml7fHJ6dnRkbXRobHt/dXp9e3l5f4B/cIaJhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfn5iemaiioX2ClquMn5OGmqGQpJV/e5iFfJKZiYiGhopyfICLdoWLgoSViXJvgHOYhoR+k4ODhoqCeoCEipqfj4Gln4Z3jpeIlYuLnJeEg3qsgZCXmZOJnJuGh6Gqn6Gio4uIk5udo5mWq6Kop6GTnImZkH56kJCGqX+Ak5GSk5yxpZqUnY+NsZKYhKaNjZadoYqRnYSJk4tsfY53d2aDhpGLfYmehYeLj4iIgYWEkXd8enWbpIqHi6CMh5Z/gI2DgXdxdYaEf3iJiIuRp5GEh46Hg4yQi3qFiYeNf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+GZ25fXllaXFNncFVjW1thbGhze3tybnBjamlof3tteH5waHBwbGaAe3KCgHd/fX+Ee22DjIZ8enl8fXqDeE5kdmpzbnF7ZGtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+Wo6GYlZmYlJikoJ16fpepjZ2MhZ+cip2WfHiUg3uOmYmGg4SGbXiAf3KAh36IkoNta356l4eEg5B+gIaEh3yHg42bnZGGqZ6CcoqPhpKSi5yRfI17qYONkZeVjpqVhoWbpp+imp2Gg5KamZmQmaahpp6ekJeCk4x4fYmQhqd8fY+QkYaYqaCck5yOjamNkoCejYqUm6CEj5iAiI+EcXmGcnVhf4SQh3aMmYGDj4KGhX+GhJVvenZ1lKSMjYabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4WPgYKJiYh0g4aGiXltanx/e21oa2xmXnl/aHx8dnR2dHp3XGBwfW50YGNaW15RZmxTZFpdYWpodXl+cGxsY2pqZ4B/a3J/a2t0bnduhHluhoB2goB9hXdyg42Hfnx7fIB7gotgaXtrdWhqg2RqY2BpXGN1Z29idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5KWl4uan56cenecpJCbiYakk4qYmXh5jIV7iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6FhId8j4CPm5uQiKabf3CLi4yShqChioWMfKeQh46RlpKUkXeMo6ChnZaaf4GQmpmTjZqjoqSbmJKcgJCHe4GFkImhgX6NjY98l6SgoJKZkJCljI+BnJKKlJmdf5OTf4iPgnZ1gnF3YX6BjodzipZ9iIxxjH6ChYaPanlyeo6ak5GAmH+JjHODiX19cnp8jYZ8e5OOhJemlI2GkHyEhYaEdICBhYV4ZHB6fnh5cGtqZl59c2h8dXVzfHJ/al5gdHZwd2RjWF1eUmpoVGVYXmBnaXZ4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohobGJfcVZ0b2xtYHhobFdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3t1o56Nl3+MoYqImpZ3eoWHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjZWfmn1vi4GRk4Wlm4eMiYOmlYSRipWWkZB1kZ2hoZiUl3l/jpiXj5eanaWempSVnXuSiIV5h5iPn3+Cio6Mc5einaCSmI6PoYyMg5iYhJSXm3+Zjn2KjoJ4cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWd3cH2IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eDhIx3h4OCgXV6f4aDc152d3xzfXZma2NgfmprdnNzdX1we2NjYXNudXJtYVlfXVprZFJiV19gaGt0eYZxYmpjbGZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjYGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbWB5Z2xhanZxZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqiaiZh5lpyLjJmQeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlId/hYd0fX6Kf36YhJaTloyjoJd+cod7k5GKpo+MjoqSoJGDkI+Tl5CKgI+YoJqSkJF0gI6SlIqdnZ6nmZiOlZd1kJGLbYeakZt8iImQiW+XnZmik5WKjJ2LhoGTnYCUk5aHmYl8i4qCe3F6a3ZtfH+Mf26Fk4OUeG+ChH5+i4FmdGp9gpiYhYCOdZKKhXqJf3d5gX6HgX2Ej4aNlaWReYWCdIiGfH9xc36FgWtgeXR5cHxuYW5iZHtibm92c3h3cnNhdmBvbHVub1xaXl1dal1PXFdiYWhtc3qJa19pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt4eG1sh2toX2lyYodocW9mdmdtbGF6aGp8e3dwYXdtioGZmquhpKmeiouRhomeipSWfHasl4yWfJ6TkZaUiHZ+e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5KGf4SEcnqAhnqPkYeRkZuSpJuTgX2BfI2KkqOJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiXipeTcIubhmeIm5CVe4qFkIpwlpqToZGSiIqYjIJ/kp9+k5CTi5mPfIuGiHRzdWtxb3Z9i3VvhpGOk3J0gHyCgol9ZXJuen+blX6FinWSjIJ1intwgn+Ch32GjYuFjpaqjnuIfX6KhHd9bm1+g4FhZndzdG56YV5vYGp0Xm9qenl5bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3pyeYNqa19waHR/a3FvbXFnb2tle2Juf3p3cGt3d4l/o5mjqKGnm4iMioGPnYaSmnR/qJORjYagjJWTkIBzfHaFeHh/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGcl6CTlneJfoCMiJydio+GkpeWhYiUmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyHpYVniJ+Lk4CNhIyBeJOYkZ2RkImJlI1/fpCZfZKOkI2akn2LgYRwdnBsbm9xfIdqc4OPmIpxeIB1gomDemd0cHeCm5B9ioV7lZN7eIp1cot8h457i4eFio+cpYl8hHeBin93d2xpfoB/W3FycW9vdlleb2Bval5vanx6cW5tam13YHBva3FtWVhgYWFtV1BTWWVmYnVvhIJiXWttZGNla5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHi397dop/anFifGKFfG9wbHVqaG5sd3hfcX55e3N1c3+CfqWWm62fp5eFjIN+lpWDjp10iZ6TkoWKmoyVjox6cnh0gnByhXNxdYhsbmx0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkIGSkZebkZl3kXqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31yi4WIj4icmZ+bl5WBlYBqiJ+JaIiiiZSFkoSKcYORl4+ajY+Mi4+Nd3uTkXuPjI2Sl4x8iX2BbHdqb2tsbXt/Ynp+j5eBd3qBeIONfXpodW12iZeMgImHfJWRcnuGcXiOe4uOe4l/hI6Rn5+GfX14gYp8dm9nan+Ad112bm1rcHJVXW5hcWFfbG55cGhwZmdzdWhxbGF3ZV1VZWBgcVNQTltlZF14b4h7XlxocWJiZWWRaV9oZVtnb31va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHmVeGdxaoNgh35vb2t7YGltdIB0X3R8eIZ3c3OFfHmhkJqxnKaPg4p/gpmJf4qcfoqYko6EiJeOjo6Ed3R2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm5CZe5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYl8j4mLk5KKeoZ9f218ZXNwa217elyBepCPgXt+f4CGj3t6aXVrdIyQioOHhn6XjG1/gHCCjoCOiX6Fe4SRlpubjH13eIKPeHJrZW59gWpnc25naHNsU11vZHBaX2xyd2Zsa2JneHNwcGRfd2BhVWtfXnRPTUtfZmNceHCKdFxbZXZgYWRkjmNgZmJYaXNzbWtxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZCKiHx+mXZlc258ZYd/bnBrgFprbnl6cmB2enuNdnJ2inZ6n4ycr5ugkYOFeIiVfnuInIaEnpCOhYyXhJOOh4F1d3B5cG6Eb21ufnJjZHdwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+Um4CRcIWLo5eJjpWKkJ2Vg4CUj4WIj4CSioqXfod7dn+JeIaFjpubl5mPkHaLeHCJi41/jaaGk4uehoZei5SXiY6IjYqKhIlsfJeCfoqHipGQhnaGfn5sfWR4dWpvenRYiHuSh4Z6f3+Aho1/emZ0aoGLkIuEhIGNmIZtg3dviZODkoZ/hHuCkpeUmpF1dHiHjHRycGVzd4BgcmxvYWh0ZlJgcGdrVV9udHlhcmNgaX5xcm5bY3JhY1ZuWlx3TExLY2ZhXXZzim1bXGR4XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIeVhYx/f5hzaHVxeWyLe250cIBXcHl2eXFkdnmGjGh2gIlxgJ2Imaico5OFfXGMk3h4iZyDhJ+MjnyVjH+aiIR8c3dwc2pvgWtpbHx0XmB3dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46clZKBiHCFiKCOhYuVioyXk3yNkoeCiI96kYuGj4KAd3iDhHKHgpOblpSYho12iIByh4SLiZykhZaOoISKYYOVj4WIhYiMhoCHaH2Uf32EhYqOj4Jyh3+AcndodnJpdHhtWo19k4OGfYCDgYSLg3ZidW2KgpGMhICAk5J+b4NteoiRiJSFfYJ/gpOUkpiJb3J6jIV0a29pcHZ/XXFnblxpdF9RZHFoZlNfcHZ0YHBgXWiDcXNqV2dpY2lXbVdbdExKS2VmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF/e3Z6iHOFg3x/h3Z2ioWPmIGNgnuTdmx3dnl5k3Vud3p9WHmFcYBuZ3h2kYJkdoaFcYqWhpqhm6GKhnNvkotxdo2afImZiIl7n3+DmX+CeXF0bm9kcn5oZmx2dltfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCLhXpoh4uZhoGSkYaGl4x7jIyAgImNe5CNfomFenV7g3xxhoCVmY6TlIKJdoSIeIWCjZWfoYiXkaGAiWF/lIeEh4OIjH9/gmZ9kYB+gYSMj5B+bYN9g3VsbXd1dHd2bGOOgo+AhX98hICFiX9wYHRyhn2QjoN9f5KKenKFZ3uFjIiNhXyFgIGVkJGThW9weYt+dGxtaWl3emFnamlYa3RZUmhyaWJQYnJ4bGJlXlpqhG50YlxnX2VtX29UWm5NR05mZFxmbnKAa1pbY3NfXGNrdmRlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gId1eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3SBbGh6c5RzZ3OHfHKSkoSan5ufhod1dZN+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2Jpc3laYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lYyBhJqLe4qGfHuJi3+UiHWJhnZ3foFydYaBnpSFlI+EhHKBineHfoubn5qIlY+egYlmfpOCf4WCiIlxgX1mfox8eYCAiIyPfWmBfoR2Z3B5eHN3dGxrjoaLgoqAeYKBhYSBbF9zeXt+jouHfIKQgX9zgmp6hYmNh4V5hX6CmY6RjX5ubXuJfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXl1Zb4Fvc1plYl1qbmBwT1lqUURTZmBaam5tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3Btfnx/dHWDeoOCfIGFdn6IgZaQeISKdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSIbn2LdWl3l45+gYqClJeJeY+Vb3p0cWtpZGBzemhgZXB5WmByfHlncXlhZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpJ6eZKHgYSYiXuGf3d3iYqEloBwi4hxdX57anmFg6WQhJONhH9wgIR4hnuInZuWjZWSloaIcXuTg32CgoiCbYB3aICEeHKAgYOKiHxlfn+EdmRxc4BpeXFvdZmOhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V7gpqNjoV5bm9+hH92emRmaHtvXlh2Wlhwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ11manJgb05XZ1I/WGZeWm9rZ3pxW1pYa2VZY3B5XmdcXmVsZ2VraXF3f4hvbH9+gHVvgnt/gn+Cf3aBhImXiXGCjXF7hnx6eYSTjHVqeX5rb350f3xvcnt6k29ugX54Z5KLg6GZnJGChWaGg29neZWIfX6EgpiJgXyOjWl4c2trZl9hb3ltX2JveFxka4J5YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Lfm1rhIyMdXyPf4WBlIh8gndudoeEg5d3b4iFbHV7dWZ5goOni4KPi4R+boF2eYV8iZ+SjpKTlI6Mh397koZ3foOMgmp/cmiAfnhufH2Ci4R3YnqFgnJkcml+bnVydYKcjIGAhYB0dn6Ac4JvXG5/dXmLhIt8iIF+iXl7cm2KhZGFjHODeoCXjIuAdW5rdoCAdXRbZ2d1bldWe1JZb2RMWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2ZvZGpNV2ZRPV1lXF11ZWB1cFpZVG5jWWRweFloXV9nbWdpa2lwd32ObWmChH95boB8fYF/gXp1goCNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox5eIR9fGuMjYSbnpaMgYBsjX1raH6Ni3p9foOTgn59iohrdnJnaGJbYmdzb19ha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8kYZ1hZWFc46KiXZvbISChnR5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIeAh42Kfm+Ad4KDf4+biYSWk5mKjIWJfI+IcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXuGlpKCfYKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4KRgoZzgH5/lImKfG9uaW2BgXRtXGZkcnBQWnpNW25bT1tyb2RVS3N4aVdZWVphcIB0YF1dYWdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkbnFWal5iaGpnbWxocHd8k2xohIp9fXB+fnuBgIF6d39/iouDcXyHb3F3g397iYyPg2p9e213eHaKdnx4f4KGf4N+fXpthYyImaONhIN7dYt4a2yEh5B4fXqCkYCAfouDcHNxY2ZeWWZfb29fYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4N0dId0iHeTiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2BgH+Oj35zgHWHe4KUkoV6mI+WkIiCiXuIiGt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBanaBjJGVf3t+f3F8dnx0f2JWeH5zdIuFg32EcYeKeHlxcYWEjoB/en9+d4+GhHdqcWlsh4Fxb1xmYXFtSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCc1thXGllZWRrZFBbcElEY2BbY3BeXXdoVVdWdl1bZW1nVWteYWlnZW5uaHB2epNtaYiNeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfomLk39wgHt3eHqAjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2d0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1yYWBgcGxraIhuYXRpWV9kboB3qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/b3F/bYV0k4V4dGtgeoJ5iY9mcoRwZ3VuW219gJCTf4B4kZN+eXxuiniDk46GdpiMk5CIhoZ7f4RsdHZ+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGd1h4+Nlnx1gXdxgHt9boBaV3V/cHaFiH+Bem2JhnR6bHaBhIV/fH56fXSMgn50aHRlboqDbHNZaF5zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZWReb2NUXHJHQmZfXWZnXVt7YlFWXHRbW2drYVVqX2BuZWZrcWhwdniOdGuOjXV/dnh+d4GEgXt0fYOIh4NvcoB0cXV+hYKJjYp7d394g3t8hYd3h3x9gX6EgHt+cnV5jI2gjIl5iXV0g3hefYWXi3iGg3OFhoR3iXtibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4pzhYyOiXSZkJKJhouDfHl9cHBvfGZocWJteHFqbHF4fX16XWV6gHhqdnhmg3dndYiMjpV9cohqb36BeW99XVlzf251gYx8gm9wioBxd2l4gYKBgnh+c3x1h317c2dzYW6LgWtxV2lddltHbWpMVlVdU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGJwSEFnXGBlXlxWe15OVWVwWVtqaF1XaGBecmVqaHJocHN3hnhulYt0f3p4fnmDiH91cn+GhY6CcHB7eHd2eYaGh4yGenx/dIt9fYaEg4d+fn59h398eHV4eJGTn3+MfIptdYB4ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3JkYFlkcXJngHJia2VXW2Bqf3i+rnuft25hc4Voc3pxeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eHmLhGZxf2hra1pWb3eJo4GFf3GZk3KBeneEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2pseXd6dlpnfXx5ZnN+bYV0ZXWGjYaWgHCMZ2t7hHVudWJdcX1sdX2MfIJndod+bnFpdn95f4B0fm17fIJ7eXFmbGJuiX1sbVZpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZnWDZl5gcWhnYldqXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRlbWRxZ3JwdYF4cZmGdn9+d398hYd9dXOCiICVgm5zeXt6c3OFh4mJg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ8e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWVjV1xbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVua3pxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjaZ8hHt2lpF0fXR+fG9+fZOHeJp9iYeDh4N9dXBxbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCdmJ3hot8lYFvjGtte4JxZ3RmYW56Z3N4i3x/YneEd2pscnV8cnt7dH9ogH+AeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWp2fmZdZ3NpZmBWZFdicFxMS2pXY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21icGl0b3J+dHSZgnd/gHiAf4aEen11goR/l4VucnR8enVxhIWPgYB6i3VzkH98gZWNgIWEfX2Mhnp9gHZ7o6WKeYiFhGt0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlhfWml/aWtvgGdsYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdo+EZ2VYYndqfod7b2pwZ2ZdVFhvZ46nd4F6fJCOeXZxgHF1eHuRgXqXdoeDgIWIdmpydWdnbltsY11tcl9nYWp4aHtsW26Dc3RqcIF+enhhd4aFeZCFdIlycHqBc2RyaV1xeGVydIl8eWN0gHFnanl1c215eHZ5ZYR8f3l3cWRkY217fGpqVGdhZVNKa2dPR1FqRWB3ZmFNU3JdSk1UWmVrd3xmXm1xaWRdVmFVbm5WSlNnV2ZeWE1VbFRKW3heW15rXV1aY2VgeWhsYW9vdm5wd3V6mH53f4F5gICHhnp5eoN+gZOEcXR0f3l2dIWIkX2AfJBrcpWAe4KfhX6HfYB+hoKAint2hKuef3qHh4NrcoF5dYB+gHRuhm58gHOKgGpwbmRkWF9aWVpUYmpnW1pfdYJpXm1sXGFXXFxrgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F8jn14kHOFfn9/hm5kdXJkZ2dcamFcb29cZ19tdGV6aF10gG9ya3F8fnV2YnWGjHuIiIGAeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2c2eHdnt6dnFlYmRtcn1pa1NnXVxUS3FiUEZVYEdidmZhS1NvWEpNWFhna3V7ZWVucWZkWldeWHdlVEpcYldoWFlIV2VQSGF3Wl1fbFpeXGFjXn5pamBvdHhtcG52g5d6coCAfH+JjIZ9dXWGeIeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX5+hXqBen98hohzcY+tjHt7ho99ZXGHeXN8enVyb4Zse35sj3pjcG9iZV1lVllZV2Nma19dXXOFaFhxblteWFpcbHticHd1bGFZbHNzZ3R1b2yDeH5/eHZtbnRkaXRlW2d1ZnZ2kXpfXVJmZmuDgnR+YmRqXFRXXWJjj6VoeHSDhpF5bnF8anpvfYd9dop0gnl8eH9oZHZsYGZfXmleXHNrWWVdb29iemVcd3xrbm5weHl0dWVzhJN/iIOJfHdwc390Y3hlXHFxYnFygn10Z3KAZV9ud2plaHp9dW9wg3Z0fXRyYl9mbW58ZGhTZ1dYU012X1BKWVdIYnRjYUlUbVNKTVpXaWxxfGNtbHNjYlpaW2F3XFNLY11YaVNXR1lgTUdpdFheYGxbW19iYlyEaWhhbnh5bW9qdoGQeW2DfoCBk4iEgXZ0iXSMhnRydnaCeH19foyQgH6TfnB3lYN8mJJ5gIB4en6AdIiDdHCZoXp6f4mUd2N0hnhzd3RrdG5+a3h8cJFzXnBuYGdibFRaWldoY21mW1xxiWVTcm5bWlhXYGx2Y2l1amleWW1zcGtzc3NphHx+fnt2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcnx+fXOCeIBzenp6ZGV1Z11iWWBnWl52aFdiXXBoYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNydIF6dGdwflxgcHJiYGtyf21udn9zcnhrcWFcZWxsemBmUmVTVlFPdVtRT1hRSGNzYWBHVmpQSVBaVWtra3xlbm9xYltaWFlscVdSUGZWVmhTVEZaXE5IcXRYX2NsYlhgYGFdi2pjZG16eGxwaXV5h3trg31/hJp8g4R5fIdtj4dyb3Z6fHSCgnyLj4OCl3R4gZOFgZ6JdYGAgXR/gnGHgnVvoZZzeoaLhnpkdolubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdpc2hidGVkXFhtdGxvdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNucIOFinRraXxwZ3V4dX1te3V2cHp/dl9mcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfIZyc2dwfnJ0cFRcZ2tmcnWBd3RjbXZWY3JsW19wZ35mbnh+dHRza25hWmRpandeZVNjVFVQU2xWUFZSUEdkcl9hRlhpTklYVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhmVFNIWlpQTXd2Wl9la2lZYWBeXo5uYmZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmd0gHt1gIN9iY9/i5NyfIqRhYefhnt/hoxzgYZzfYJ2bqSLcoCNi3Z3bHmLYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNvZ3NrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6bl14c258a3Z0b3B8gHNYam5eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xphoyAinuJbnJmcn5udG5kW2FpaXB0gXRzXmltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUk9bTk9IZG9cYkdZaU1KX0tYbWRgeGlufmRgVV9UXXVcU1JgZk5dYVVTSlxZUFl0dV1fZWtoWGJhW16NcWNnanhxc25odnR6hHKCg3qIjn58iYeNeW6QinVsc4J0f3+IhYeRhJWPeX2MjoeRm4SAfIyFc3+Bc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3W09RERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+ftZy41NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYWFhYWFhpOUlJSUlJWKhYWFhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKSk4+Oj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4qLi4uMi42Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4mIiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiIWGj4mMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYOGh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIeIhoyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjYyLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gIGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f39/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaFhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXt7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/Pj0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/QE5hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x7e3x+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREVEQ1d1homKflhHSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OzxDQEJGSEtITEtNVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZFSmJ4hISCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ozo6PDg5ODk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9dhIODg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjw6PDs8Ozw7OTo8ODo6Ozo5OTk8Pzw9QUJESUpMS0pLTFdvcnR1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT8/RHeCg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo7PDo6Ojw7PT5APz1hhYKEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSkZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oj09Pj47Pjw/PkI/Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0VGREJISUtHSEdGR0dFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRD5ohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpISEZKSURKSEdLSkhKR0dHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXV2eHp7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PDw9P0JDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD1CRENGSnWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZJSkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBKT09OUFB5hoWHhoWGh4iIh4iIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVtcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01Tb3R2eHl4d3l5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUVBUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XUk5TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlRRUVBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcXleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQT01MSENJR1JTVFpdbXJ2dnV0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hLR0RCQUNATlBNUmR0dXZ1c3R2eXx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmhlZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgYKAgoGBa0xHPj46Oj5APz4+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0NAPzw9Qj5JTUZVb3V1dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xOe05PT05LTE1PT1BMS0xXTkhHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV3dXZ3eXx8fH18fHx8fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUpERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pj06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1JQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I9M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkI4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARUdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxCQUBHSURNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5e3t6fHp3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I+Pz9APkNFRExNUVRMSklNVEZJSUpMSUpLSUpMTU9QUlBLR0NLR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkVESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUU5MTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQT9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0RHS01ISk5IREhESUxOTUhJTEdGRklJTE5LSUhFT0lDR05NUE5QTk9PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7PTs9P0RCP0FDRkdKRkpJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRkZLTk9LRkhJRkVDRElJSEtJR0hQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkVEQ0FBRUZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRUNDSEhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWBtam5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT01PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDR0U8QEVCRDw4Oj4+Pjw8QkM9QD5BQkZDRUNDR0RDREVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSEtKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19dYGNeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpGQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUpNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVeZGBmaGBlaGpkc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSkxJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSklMS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYmRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUU8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkVJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUpNTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmYmFjaW5oY2loaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD49REVGQz9DQUVEREZDQkVHQ0NJRUJISklHSEpGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRcS2xSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtVX3d2aWpoaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxERUZEQ0NDRUVERkJFRkdEREpEREpMS0lLTEdHTkpISktHS0pJS0pOTE1NTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRublxwdmdwTktxeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJFQ0VERUVEQ0hIR0RFS0hHS01NSkxMRkpOSEpLSklLSkpJS01NTk1NTUtOTU1bcnBvbnBwbGtNUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0ZFRUJBQj0/P0VHQkdESUVFREJGSUhIREdLSkdNTE5KTE1HTE5JTUtISk1JSkpKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUhOSklITkdKSkhITk9NTkxKTk1KWnRwcG9xcW1sT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUlLTE1NTElLS0tTa2JZaV5famNyclpfWWpvX2VlVWtfZFthYlFgbWhcalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISkdLS0tLR0hLSkxLTEpJS0xOVFtdVFBVTVFPTk9PVVJQUFFPT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxISEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpGREdIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1JSlRfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWFpfXmRjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktKSkVFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlGQ0RFQkZKRD9JS0lOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11bXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSUVFQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSVlVUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkdHSUdHSkZGRklMSk5FQ0tKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JiZGRiWFBSUlNcVFxdXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBNTEtLSUpERUFFQ0hGQUFGREFWVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YX15iXU9YYlxgYF9iY2FdYmJXX19UUVBRUllTXlxbXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PUE1OTU5ITEJEQUNDRkRDQUNEQExIQ0xMUE9OTEZNRkZISUhHTExNT1BJTE9QUFNQTFFUUlVaWFdZV1djVk9TVFBRT09RVVRcWVlbXl5hYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFRTTlBQTk9PT0hLRmBFRF5MRGZjQ0xbSF5cc21PTVZtWUxDT19UbFdnSl1XVV5ETFFVTE1TVlFSVFhWVFhUVFxUUGZaaGhlWlRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jqc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGNnbW9sYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvcIBdZXp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1wfnhvf3JgYGBiYlthYWhsbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1JSTkxQSVFSVFlXV1FUUFBRUktIZ3hsY3hxbVpKTFR5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWdqamVnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxY2hhVm5McXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVufGxxdnV4Xl9fYl9dX2VlaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3VUS1drZ3xsbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtrX3Z1bGp2fHttfnlrfHBdXl5iW19iZGVnZmZlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU1PVUxLS1JTUlJST1ZVUVFPUlJYWFBOUFVUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGdyX1tbWl1dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5eZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlVUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUlBRU1JJSU1PUFFSUFBQVFVSWFdcV1NSUFFVVVVTWlFOUlFXVVNZVlRYVFNRVFNVVVlZWF5aX2FdXFpaXFxgY1xeYmJkZ2VlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU1BUUFJUVE5MTk9SVFRRUVFVV1VZWltaU1VSVFhXVllcU09TVFdVVFlVVlhUUlFXVVZYXFpcYF1XWV9dXl1cXWBhXltiY2NoZ2ZlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRTk1SUU9RWFRRUU9NT1JUTldRVFRVT05OUVRVVVJSUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVWWFNXV1RSUVhWVltfW19gX1ZfXV5gXFxgYF9fWmJjZWloZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1OV1NNTVJPUVJPTVBTUlVaVVRQUExQV1VRVlJTUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VVlVbW1ZRU1ZUVlhUU1haU1JRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUVRTWVtXVU9STlNYVlNSVFJSWk9RU1NWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVFVXWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWVnXVxlYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVRUV1hYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1hTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lcVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYU1dVVFJTV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFZVFlaWmFYW1RWV1paWlhZWVpXVl1fYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZVUlZVUVNVV1tbXF9fWl9cVl9fWV1eWV5WU1lXWVlcYVldVVZaW1pbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVVRYXV1fYGBdYV1XYV5bXlxbXlhWWFdbWl9fWl5XWFxcXF1dW1pcV1pfYV5gZGRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWVxeWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bXl5ZWVRYXVxfX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eX1pYVlteXFxhYV9dW2BhYmZiXlxTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtmZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpXXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7fHx7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJycYOKiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29uhY2MjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6eXp7fXx8fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2dnh5eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHx9enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fH19eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e358fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYGBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eDhYKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4eNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhYOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYGDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoOEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAfn5/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhYKBgoOCgoSCgYKGhYOFg4OEhISGhYSEhYJ/fX19foKEg4ODg4ODg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhYWFhYSGhoWGhoWFhYWEhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGh4aGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4OCg4WEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4WDg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSDhoWDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoOEhIKBgYGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgoKEhIOChYaIi4qGhIaEgoaGgoCFhIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+NkI2JhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn18fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/fn+AgH+AgICBf4CCgICCgoGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIF/fH19fn19foCAfn1+fXt9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH9+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgoGDhISDhICBgICBgIGAgYKCg4GAgX+AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CBg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhYSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOEhIODhIOEhISIko6LiYiIiYeHh4WGhYSFhIKCgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeHhYWEhIOCgoGCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fX19fHx9gH+AgH6Afn6BlJGLjI2Nj4qFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fX6AgIGAf39+fX19fX57e31/f3+AfX9+gIyRjYuMjY2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+fn6EkoyLi46Ni4qGhIWEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+AhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KBgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6Cf4GDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4qJjJCNjImIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoOCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319f31+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn5/fn6FhYCBgH+Ag4F/foGAf36Af4B/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIF+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhYWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+CgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af35+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBkox6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYODgH+CgYWDg4SBgYOAgoOBgYCAgYKDgoCCgoWDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAgIGBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYOBgICAgYCBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhH99fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYWEhYSBf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKCgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn1/f31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhoaFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WHh4iGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4F8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/f4N/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoaFhYeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn19fXx8e3t6enp6eXt6enp6enp6e3x5e317fH9/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojs4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3e29fY19jX19fY19bX19fW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3NzcJK7uLi4uLi4uLi4uLi3vdLS0tLS0tLT09PS09PT3OLh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKiVhqaSko6Ojo6Ojo6OjoavS0tLS0tLS0tLS0tLS0d/q6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDArZaqlpaWkpKSkpKSkpKOs0tLS0tLS0tLS0tLS0tHe6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+OW6vqampqampqampqamosNLS0tPS0tLS0tLS0tLR3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnM0tHR0tLS0tLS0tLS0tLU1NTV1dXV1dXW1dbW1tjZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs/T08/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tbW1tbW1tbW1tbW19fW1dbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9LPoZbL0caTq9LOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnY/FqqCrn86ZrZmz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+rsZ+Vj6G0lYednc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xnqedn6eZtL/JlpnG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZu1pKCLn8PSkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8QkA+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGbxZnFyZTYrKO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDs6OT9APTw9PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7l5+ilZWhu82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw7Ozg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wNN5m7CznaXQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozs5PT49PTs7PTxAQ0I/Pj47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WigqObop2ckaiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmrKgqaCinqmiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QUNCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIjPsI2RpdSakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDk9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NXAvdbU07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6PD0/Ojs5Ojw9QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PD47Ojg6Oz8/P0JCQT5BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oz1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTo8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0+P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88P0I/Ojg3NzY9Pz9APUBAPz89PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT49PD9APzw1Njc2PD4/PjxAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUE/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QENAQ0NAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6Ozw+Oz09Oz48Ojs4OTo4OUFBQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjs5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89Oz89Ojk5Ojw5O0VDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjtEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3NzY4NThAPkA7PDk8Ozw+Ojo7OTo7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4Ojg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODc2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzc2NjY4Nzg0Oz87Pj05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg3Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4Njc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njc1NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NjY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg2MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc4NjM3Njc6NjY2NTk+Pzo8Pzs/OTs6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT08Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzg3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3ODk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NjY2Nzg4Ojw7PT46Ozo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVES1BOPDk4ODY1NTM5NTY2NzY4Nzk+Oj0+Ojw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTU0Nzc1Njc5PTo9Pjs9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE0NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNDczNzg1NzY2Oj0/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTg8OzY6NTY1MzQ2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6enqCgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXlpaXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnJycnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaXl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5KUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cmpubm5ubmZiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+uLa0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqam5ubmpuYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL6zr66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yPj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4eIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzo8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODo6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUUA/Ozo4Ojg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszMx8HDx8fIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEy9DLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsXJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdiYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWh0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWJjY2piZmNaWVlcWVFORT07ODo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur2/ub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMHKv7HCv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY6Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBu7vDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs6Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7Ojc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vrq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbu2ucS4tLy2ur3BvLu+tr/Bv7y/usDLwsfIwL+8vMDFwsfLyMHDwMDJy8LAu7uwtLy9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KmoqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsrS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11OSEE/PUhDRk1EPzc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOxprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qq+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEFGTUY4NjY1OjU6PTg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb67v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7try9uLKts7CvrK63trK0tK+qpJ6cnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoqquepaObo5yVkIyPj5CTkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6GhrKuksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7Cys62lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOQj5GRmJCWlZiWn5ibmZujmZeUlZqdoJ2nqKWgo6Oho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzc0OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqJ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpqXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHpgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJibmpGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmJubmpiZm5SVmpaYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpKijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVxTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZiSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezt6yxtKOgnaWgrKGhoqCgmpiWlZ+bm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XW1aUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqZkpmenKKioKCdop+fnp+pq6esqaq0q6utq6Wlq6iqrKqln56ZkpKUmJmWlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpq6inqJqZnZqqpp+Zp6Cfn6eopaSenaqiop6bn6igpaetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KYnJukn6CboJyjiYWEfnZxbWl3bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERBREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayurqqrpqCenqGjnp6em52clJOVlJ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64tLvFw7zCu7ezqbKtqrO1r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6KhpJ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdcUUVUSERJT0g+RUEzRUg5NTs9Njs8Pzw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DP0FDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyfpaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwcDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvcfGwrfDycjCwMW+ubS5urW6t7C1sqq6sa67tr67uqq3rauquLq0vK6tuKKlop6npaKjqaaam5+Ymp2nqqegoaGkmJSjlpSZkZydn6SeqJ+en6KdmJmUmJSIhH16cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5PT48PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo9QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsbKx86/ydDLxsTGxMG7w8C+vr61vbOtvr/Cw8bEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM7TzcTHycrBxcvGyMjFvsKzs8fEy8rKzsXKv76/vMHHxMzMyMm/w7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2JndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTw9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWhnpuVlJaUinx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0dfW1tLWzdTW19TT0dPU1NLP0cPQ09bX1dbSy8nO0cvGzdLK0tXW2dXX09bYztLJztHMz9DM0s+/x8bKw8zMy87PxcbHtr/Jv9LMy8/Fyci/w8LIzszP0M/MysfNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmKGdm6Gin5ydm5WKd2ljYV9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7Pyc3Ry87Pv8XCx8XOzdDQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6S2qp+doaqpoZiWmJqbnaGemp2elH5yZWNiX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cbR1MrR1NXWztLQ2NjY18vIzcPIzszJy7/Iv8jJzc3PytDNzsvOzsfKz9DKzsrCycbJzMrM0dLM09HQz8/Kvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYmVucGFXXFpJRkZETFdFO0A8MzQ8PTg2ODU1Oz5APDk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tLHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirsbapo5+clpSXm56fn52UlpeViWxeXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dPLzNDR08rO0dXS1dXKwMnBxczCyMnCzMLFyMnKzsrMzM/N08vFx8/Mx8fKxMbAxcnLzdDRxs/Ozc3Mz8XHwLe5vcPDvcO5srO+sbzExLWqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcWtuaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2M3Mz8nW1sXEuLK2qqSurbi7wcXJoZeOjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0cjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJy8/Hw8PPyMbBxsfDvsDHy8vLzsLKy8jHy8/Exce7x8PIyMLPwL28v7DByse6vaqxsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRkbGBeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6rF3dbHsZGOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxga3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrHwcXMxsjLzcnEwsvJwsLL0MTLyL+5wbrFx72/xs/Kw7/DusnHyLrHxsTKwL3By8bFw73FvLy/w8TLxMS8v8nCxcfRxcDIv8rKxsjG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnN0ZmpbYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8fNz87N1dDW2djZ0M3Uzs/Qy8S4xsG2tbyv2MN1fZKMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLu5uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7q6xcK+vMHNwsa+vbXAvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8PBxcLGyMbIxtDGwszIssfKw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tXW2M7M0MjNyMrFvsrBsrW6utNwVo6OiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0s7KzurW9sbewta+yu8K8wcS8v7u1srq+wLjHuLS7tcDCvLe9xsDDu7Susra6vrPEt7u1q7i8vcC9sLq1r7a6ssW8tq67v7S2tMW8vsPFwMPFxsjLxsDGxrvIy7/PysfDxsHDt8O+vba5vsa/rLW6tbe2jnh0eGdnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPyMvGysbEwL3PvbO5vb25WH+ShomJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/ubi1sKysp56iqqeeq6yzramrqbOttrCyqa6mrLK8urbDubq6saq1ubu0wrqwv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD88Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbBxdDIz8LEx8HGxsXFzMTLzMLEwcjBury7yre0vL23rXeTiY+QfHl+ioV6e4SBd25eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWlpdZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqayqsKOmn6qttbaxvbmvuK+orri0tLy4s7yut7m0sbvBscGupamirLGys6e8qquoq6yttLSmqK6hpK6psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvMq5wMbAvMy6w8fFur3Evrq3vca5trm7r7KShImNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpKyfnZukpqyyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubG3pJ+jn6exp6uouaqkpqeop7KtoKemnpukpqyen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO+v8Ogg3dwa2FlX2tvYFVZX0hOaE9USEVKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6VnqGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fIu7fExrO+xby3sLnAu7Gzt7CjhYeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpqim5+qsK2xtaKpqqmrrKS1uK23r6yytK6ytK6wqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tb3AvcPBurq9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZukpsCyr7astLfG0MnJwce8vMXF0MC8yru7wbu2xbi1wcGzwsS8raq1ureosbOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYV1dXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZucpaahpJufoJqYra6trrKgpaKtq6ehtbCxsaynrrKnubOmtaGinpqjoq2ioam1qqKjpp2lpqOWmJ6XmJqdn5mXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s62prK6xt7C6trm9v7aysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbuxqLKvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+dqJyamqqmr7Crm6Ojt6qgn66otqmmpqywo7ewo7agopuYmKqmoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6up6ensq6xtK+8tLm2rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunqeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/wLnAwbrAwLm6vbeoqLG7pqmipYmBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpaaenJ+kn6qvpp+io7aooKGiqLOhpaekr6WwrKu0nqCdlZSpoaGUrLGwnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraWorq+uq6iqqrOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCvMPAwb28t7q2pqeytp6iipmHgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWjo6KjoZuqqqWZnqWxqaCgnaSqnaehnqysqaitrKKhoZSXo5uckKupsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaChpKabo6uloqSqo6uupK6xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg1OTg5ODo7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9yLvCx8S9v7e6taWrsK6dmoeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2Oj4SRho+Rj5mTlJKcmqKcm6CnqKqnqqWopKOYpK6klJmlr6mfm5iaoJ6umZuqs5+lpp6io6CUk5uWlZKoqa2anKChoJqUkIyZjouQjJKMlpSQnaGgo5ybopWboKKgl6Koo6Koq6Crr6Stt6Wjo6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUFxZTVRPUExQUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcW9w8bEvcGzua+mq6+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqmr6KnmZ+soJWWpKinnZePjpmdrpaXp6qZn52TpaCdkZCSkpKVp6qkmZmanZ2WjYyLlIaIjYOQi5KUkKCeoKOXlZ+VmqCinZObpaWnqKigsbCmsLynoKOstKutp7C0sLm1wLGtsauQfXByYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9s7u8xL7CsbSusa6xrJyiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY6HkImYiZSUl5uZnaibn6qkpKqcp5igpZuSj56impeWhIORmqOPk6KclZWWh6GampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZOYmJWipZiMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWsq7GjiHhybV1OUFFMT0NOTk5QS0ZOTktKTk1RSU1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKttcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cYWIgoeAkYOOipSRk52gjpqboqCjmKSWoZuVjYeYmoxzjYJ9jZaWhZCZkJONjnqYjpyMgop/iZifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVj52OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaamprOnpbTAuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVpK6/uLGwn6etrauWlaJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlpSOlol/k4lfO1dve4uTiX+LkYyPhYZyioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjX6JgJCNj5eZmJOKj4iciJ6Xh4eWnpqhoJenr6itqaifl620oqatmKyrmKe0oqmto5J9cW1fWk5TUVZMRFRKUE1MRk9PSkZMUU1LUEpJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbmxtbDJw7m0v8/AurGxuMSrrsmup6Oehpuiuq2nqJampaShl4+WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJAf5WRkX2JlIyEio2ajJaVipKIhpWGeYh/YEpRbniKkYR8hIyJhH9/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYh+ioiVio2QkpaLg4mHlISajIGEkpuWnpyUpKOnqaWjnpuwq6GkpJCmqpahqpyipqiIdGtlXVtIUVFTTElVTVNJTExQSUhGS09MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85draco6edn6Guoaeopaeor6yqtry2uLazwry3qLrJubepqre4rbbAqqKbk4OPmbKfopqNoJaZlJCKjGRNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPf3V/eHNudXB0jY2BeX2JqoV5emh2e45wcm14gIqMknh6gHuAdnNykndndYSEhIR6lYmIioyLgH+Eiox/lIN7gI+YlJuVkZ+dqJ6foJ6gqaWfnZiMp6SToKCWnZ6kf3FnYFxcSlZPUUdLWFJPSkxNUkpKSk1QSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc2Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WelpKYhpSklp2Mg5eJj4mFhYJkS0lKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OXmZ2bnZ6inZaNiqSbj52XjpaYjnVta2VhWVdYVFFKUlVUT1BOUVZLTktOT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srqunqbCvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZKVgHyKeoWAfn5/YkpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHSFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln1saG1ubVdVV1RRUVlPU1VUVFhVTU5ITUpNTktDSU5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYno6FjJaipJualJePdpF+hYuQj3x4fnR9eHR3eWRPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJmRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd1eHZveHJoVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouJkYuRjIuPg3V4i4+AfoKAfY94cG5ual5aW11bWVhgX1NOW1pZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbGuwbO6wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3F7dHxrb19KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYuCkI16dol+iYiOc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG1xcmRlXlpaXVNbZl5YUVVZXFZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8a6lo+RlIh6hnZrgIySg36LhZCNeYSCdaKGjX5+goBzg4F9a3psU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSJe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIatr6+KgICTioKLgoSRqIeAmJiKnHNsfIGGh32OaGdneH5uhYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fXFxcGpaW1taY2JXZ2VcVVBRWFpRRExMR09JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY3NTY3Njg7REZMTU1MQzcrIiYnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4elh4mAg4iGeYmLgHWFeV9jVkxDNjAuLzIyMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GUj4aJiIiJiKKro5aJjpiAe4KJenpvZ2t4fXd8cWljXFlZXGhcYWZfWk9MTlhTUUlQS0ROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSm46EgYKMi4KKjoSAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6YhJOFgo+hnpOZkoSKhY+YkJZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPj5eltqmbjZWig4eThH5/a2psfX59f3FfW2JeWWZqXGxrX1hLSFBTUU5NTEZJUURETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4GBi46JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfI0c++m6Bwaaupn4STkoWcoJqamaeRkYiVoZmad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZGZqIiXkI6BiGxzc3t8eW5mXltfXmFnY19nZ1xSRUtLUU9JSk1GRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKho+QjoGDgImMiYWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4w7+3paOwsqytqqOLlpiFpaagopiCppmNoqqnpIeFk6OgoKqgpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK2ztaKVpqqJmoqTipV6e36De2VeZlpjYF1iYl5mZ19bT0RJSFRPRkhMRktHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLSutaCoqKOom6mwrbO6uLionLipjaWPkpOgh3mBgHJXX2JVZGBgYV5fZmBbVUpERUxWUUlKSkVKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVWFVcV09fVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q3v7i6uLqtrbGmsaquvrC9vMPDrJm7qJWuj5iZq4l+gHloVWFfVmhjaGRWW2NZVlRKR0dMUkdESUpBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1Zk9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQz1FNkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vMG8uLa8u7e+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrp56Vlp6Yn66lp6eln6SToqews6iysry2wb3TycnTxsLFzMLKxMC+vr+8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxuXF5eXFVfXWdmU1lhVlJWSUVGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlop+gn+DeXuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlUS0RCS0tIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7a6tri5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6OdrKSqsa23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVtcWVdbX1hhYlFcYVRSTENCRkdFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uMCxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCLiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm10l62kvYiHZ1tvaF1aWVRIS09QSktQS1RRSExBSkZLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJj5GSnZuhmJuVloeemaaarLCor6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/a2FaWltWXlZZY1lQXVhPUkNCSUVDSTtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBeXU5RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmnrK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJyYmZmenquspKeirKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVF5RXFlPUFRQTkk+QUdCQ0Y9QUI/RkU+QD86PT08PEpCNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lmn+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6FkpCdl6ewoqChpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPLiG9sX1xcVlJXUlpPSkdJSkpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dG59doV1eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6BhImRjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaGisZyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ibnKecpr3Dxbm2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHVza2FaV1BTUFhVRUdKSUZFPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot+h5KCiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnd3gmVpb3J2eHJ7jIePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2Ih4OFi46gmZOIg4d+bJl5hJmHiJOMjpWMhnubiJOOraqUlZefmKautbyorb3Hy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1d2VkWFdOUVJbR0NGSUg+Qj49ODo+QDw+SD1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoKBgoV/hHx9hJiOh4x/hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBmTmVjgnqCd4WhkIt5end7hIB8hHVtlJaVlpCYkYOJj5eal5emnZigl5+TkpejnpqrlpGRi42Tg4yFiYmBho+RnpyZiIWLgYWXeoiJn5eQiY6Ki4J8oYmQi7ygmJOXmpyopqWtnqe1v7+/uMbJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVUVE1LRE1DOz08PDk6PD85PUE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6i3x+gH+AfoV7foKRioWGe4WIfHV+dW18fYd+dH+SnZGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH6KhX2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWTjo6QjH+Qj46LhImSlpmfn4iMlJGdkIKMf6aZiIWOg4aEgKWGiou4l52RlJahpqCdnZ2jrra5tKvAxsrQyMfNz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk5OSENMQz09Pjk5Ozo5OTw9NkA+Pz09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeYp7e4B8f3yIe318i4eDfnWEhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WWkoyTlIaAjImSjoqKnZeYo6KGk52VoIuKiY6dkIOIj4CDh4WlhYuQspickpSXoaCemZKbnaeyuKylvcLHzcjGz8zQzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpVUVVWQ0BJQz8/Pjo0ODo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbniLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlZiEgI+LmYiOkKuXl6SjiJmelpqIj4eXmIqFj42Bf4ePpYiNk6iZl5OWmKGYn5mTnJqisrSlo7zBvsfGxcnIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1tbTUhTWUJBR0Q7Qj44Mzc7PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aBg3xtb4t/e314eHyEh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKGhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx1kZmylZakoYecmZKQi5CKl5uJi5aOhn2MmJ6JkJCcmpqTmJefk6CdlJ6boLGuoqO3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNdVE5HSU1EQUNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3ONen6CfHiGi4mGhJKmu6yosb2wpa2zs6ijorCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZ2UlpGXoJiau7uuyqFqtrirsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlY2LjZaYk52ZtJaVq52KnJSRjpGSjJibipKekIuJlp+hjZSNmJmdkpuYnpShoJScnaWvqKGks7iswsjEtrq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQW09ORUM+PEJBQjhAODg1P0c9PDU8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcLAr73Gu7O0wL20rauztoyosq6tvqubu6Wnrbm4q6amoqKko6mvsrGqnZylmZuYl5+ipqWSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl4+RoJGJlJukrJSWj5OcnZOgnZuYn6GUmp6npqSio7CypsHGw6+wurfFxMO/zabHxMfEvdbQzcTKhXBvXllXXFhMSkFLQUZHP0FAQzs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+rubuYs7e6ssGupcCkq6+8vaquq6OjnqerrrWwqpygq5yhnJafr7Wni6O6urbBvKypnbOlpKiUhY6pxMOkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWOkZWSj6CUhpefoLKelJmTn6CYpJ6an5uglJiepaSmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdRTEhCTEtMSkFBPkREPDVBRTs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJmambq9x8jJwdLJy8LMvcKzrby+qLrAvrvEt6zBqayzvL6qsKqkpaSsrrOttrWhn6+fpaKYo7O9qpuovcGktrivrJSyrKysl4eaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlKOeqp6RpZqMj4+PlZaIfI+Vk5KjmpWfopy1pZCelqSjoaWdnaaYnZWXmqSjqaeisqyou8DDr6Wzt8y/ua/Es7u+wbiswsPCwJdqdl5VVFlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf36QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCt7C6vLS9y7zDwra3vK2zv7q9rq+ooKmotq2uqbK3mp6to6ehnau3uKqlsL/Esr25tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfs6WVoZWrq6mmm56mlpiWmJSgpKiln7arqbm7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtXVFJTTUVJUk1LP0FIRUVJSEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs/O0sq/u7axuru7vs+2xL24ubezsbWzuLOrp5yrrLmqqaevsJijr6Wno6W1wLCsrLS/w7rAurSnura5tK+Wpa2vrqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6CgmYqNj5WcYEqWnJqUmqWWVJavn6+cn6SUrq2qpJqgpZOTmJiNnKCnopq0qKqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWpiWVdNT0pET09QUjtHS0lHSUNDPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52hmqOktcm1qcW5wsPIysnIzc3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS0qqmmrayapK6lpKisu7+orLa3v8G/vrmzssSyub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6mto6KepKeRkZmch5Sdop6Wsaapq7m2vbKyrr65tqCjp6ilppybrampi2BiXl1OSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSgjJOrm5GSk4mrjYahnoyjrZSjo7bGvrTAucLCx8nFws3Iwr65sq+5tMDCyrXGssK8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trjCsr7Btaq1t6u+pY+jmJKioLyfiZqgmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uWiYykoZSdop2gtK+lpJKvq5mqqpyco6KokJSUn4KPnp6blamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl1bSEdFRkxRSU1FR0dCU0xKQkVHQVZTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgWRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiaqpyWmpqPqpaVp6aVrayYoqu2w8O8vrbBwsDHxL/Nxru9ubKwubO/wse1v7C8t7m2pqSrq62goZmqqsSipKmspp6sr6uiqam+uKetv7K4t8e2tbm4wLPAwri1s7SvvqOXo5eUnJSun5Cio6Wjo6CQvaWpnamrnZ2hm6WevaGZo5+iqayhnZeNlZ6TnoePhI2Tn6SgnrWsppyVsKaZr6WcmaicnoyYlJ6DjqCZm5KlpJqXq7G1saqlqq6sm5igoJKPkJWonpRlX1dfW01IR0pOTEhFRElBPlFJQTxHSUlcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfnq6gkqOflqSgpqmsmLaxoqqztsXEvb+1wMK7yMK+yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+qraCkqa2voaaovbWmsb25t7bEsrS4ur+0xMG5ua+ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6yspqKajZqfkp6Jjld/lp+loaC4qqeTmLSinrGfnpmulZ2NmJOcgY6fl5WNoaOVkKWtsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LR0pKTkZFQUdLPz1KQjk5SktOXlFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02enqGZn8SopaG0op2zp5OrpaCjn6yprJ27sKistrHHxcHCssPDvcbEvMTJvK+wtq2wtK++xLS5sbC6tKyZqLGpqpqdpaGnwq2brLGbqqOusKmlqby2p7e7vq+3xK2zs8PAtMe0u7istLatqqKmlpWVpKyin6Cbp6qwr6+7saagqamamZiToqO4oKGjkq+wrKWnn5KhnpWej5CNlZ6bop6ntKemjJeym6KtmZyarI+dkpWSmX+RoJWOjZ+gk4umq6+kpqKcoJ6RkZqThYuRjZudf19jWWZkSUhMSlNCQ0BJSDs7Rj85OU9OVl5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/yMG0q7Wor7isv8Ozt66ttrilmKqyq6uYn6aXrbu0m6iwmqygrbSyqKu5sqi6tLmzuMCqt7LEvbXHqL+vrra1qaesoZiXkqaloqKYmKWuuK6ytbagn6mkmpWWlKSgt6KlpZavsrKnqqainpqam5WXqJ+gmKGer7KipoyXrZikq5aYnaKPmoySlpiFlZ6Ti5CbnZOKqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1tqaUxPTk5UPkNBTkM6Okk/NzdST11fUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6OjnaGmv6enr7GiqbarnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMbAuam2pKy7rcDBt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptratvK20s7m3rLixw7u/v6bEq7G3r6irq6eemJmroaKhkZihsa+zrLC5mpupoJqXk5inoLappqOisbG0rLOorJ+coKCbnqWcopedo7Ovm5+Qk6SZn6iZk6Gdk5aIk5aSlZackoiQmpiUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAOztJQTc6WFBkXlBXV0VZX15NTFJOXktKPlljXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iqrCspLK5qqa2tKygrbW9r7O4u7q+t7bAwr/JxLnEwsC/t8O9wLeutaert7G7vb60qa6xtp6Wq66nrpemqI6nu5+lrLOeq6KxsLOsqba0tb6usbK1rLC0s8G7xresvbCxuKysqqOypp6lqqCkl5Gan7Oqs6urs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZeZkpKdmZ2fnZCqnJWWhJSWip2Ym5OKjZaWmpampaOfnZaVl5J/j5SFe42SgouVZGtxZm9xXkZZZ1ZEQk1YRFo5SEI2Pl1RaFxPWV1HW15dT01SWGRKSkJcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtbunprG3xbextr3Bw7W1usS+zMa5w8C5vrnDuMC4srSrqbq2urm+tKmtsLWXmKesqaybq6uOq76erK6yo6ugsa6zrq21srm4qq6usai1r7W7vMqzqre1sbSvrqahtKCbqK2gppaWm5qyo62gpq+XoaSampOOo6Wos6qhprOtqrWlr7K1r6SZnaynmpifmpmrt6OXk5COl5ygl5aTqp6akX+Sl4ydm5iVkIqUkp6ZpaKioJiWkpOVeouPhXuMioKKkWptd211e2FGYWtZSUdaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqspqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2+v7e+vLG8rae6ube1wraqrbG3lJamrquoo7CplK+7pK2xs6eoo7K1sbGwtbG4tKmvrLKnt6+3tMTGt6m2tqywramno7agoKexoaSVnJqVsZ6nnKCqjqmjnpuWmKampbioo7K1rKixp66xtaylmaCsqJucnpyUqbiclI6OipebopePl6SgnJOCkJSPnJuXlpWIlpCYmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEpOY1w+YntHSThHZ1dmXExeYk1YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v766vryyw6epubC1tb+8rqyysZugp7GtpqavpZ2yta2rsbKsqai1u6y0srWttK2qrKisqbitsrDIwLmlurCprKylqK6xpqWjr6SpnJ6dm7Cao6Ojo5Gtn6SgoKKrpqe5pay2tqWrrKmtsLauop6jqaqboJubkqS0mY6KjYeQoaCUjJScn5KQg42Skpyal5WUh5eSlZmnm5+ejJKRjZB2fY2FfHt8hYiIcHJxfXx9XFNkb15OWGZcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaSppbO1srW2srKhq669zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SmrLarsre7wK+rsayfo6etqaiksKOqsqqwrLCvsK6rs72ntrCyqbOqq6Wlo626raqyw7q2rbupqaesqaexpaqko66qqKKfnKOtlaWemJ6ZrJ2ip6miraakrau4s7KiqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlYaWlJOXpJucnIqSkI2Jf36HhXx2foWDhXJxcIh1a19aYG5iUXJwXEs7hHxGP1h1WGBaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xq7PDw87Pw76/tMDBw7m/s8fDqq62rbK4vr6yra2qpKeqsKinqLGltK6rsa+usrG0rLS8pLezrKyvqKufo56wt6uqrbq3pbe2pKqnq6qqraGpp6axsqSnpaGhrJeqoZWboKaepaKrpK2jn6exuK6upKajm6qrrqmdoqWkpJifm5aPmJySgYKQiYScn4uKjouYjY6JgouXopuQkJuMk5KRk6OZm5mKjouLfYaBgYN6c3+Cf3xydYukh3hrX2BuZldkhmNOP2eTTEVieVdiWFJlVE1WVVZUT1xdYVVLTmhWVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Cmo6uxmKuqrbastrKspqyqqbzAwLe4sru1pbKvw8nL0b/Au7m/vsG4wbnAxKyxtLGzur+9srCurKqrqLappq6vqrmwqLKyr7Ott6q4uKa0tquspamqnKOes7OpqKS0tKC3rqCqqKqoq6egq6ypubWqqqmpoqqgrZuSqqGdoKWipqOqn52ntK+pp6ujo5ilp6eqnKKko6CZmKCRjo+YjX6HjYeEnZ2Gg4mJjo2Oi4KFlKKajY2akZKRj5Ofl5iWjIqDf3SGgX+AeHSCfnh2fYCHnY9vcmdmcHdcYHKHak9emVZIbnlVZFZRY09NVlRVUE9YW2JVSE9pVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspa2wtLWwrKawqqi6vrvAsK25rqG2r8jHyNHAvr27u8G9usK/vr+tsbGxtby7wrGxs6qzqaS0qKWts7O5sKOuuLKws7usurCqrrasqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoqytqL2vrK6toqion6yZkLChmKKhqKifqJyZqrGqo6CuoqGUo6Ojp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioaOjJCDg5OfloiRnJCTkY2RnJSXj4qGhnd0gX98dXh5f3lycnhmf4akdmlfZGmAdGaIi3xTWG9eSnhzU2RTUV5NTVJaZk5NVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glp62kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusC3r6+zsbm7uMCysrqsuKyitKeorLK2ubOoqL22rre+sL6nray1rK2cqa+joKWtq6icnquzpbSomqunqaOonaOpqKm+q7Swrp2qpKGvnJuzo5aknKWmoKWcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkY2Pg3+TmpOFk6GMlJGLkZuSlYeJfn9ye3p+fGh4fHlzbm97ZoR4hIlkYWdgcoR6bGZ4XV5UP1d7bVRiUFFYS0xOcnVdSFpbZ1lFVWVQRD5KT0RDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OURXPSqQlbKaoKCqpqWhq6W4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtLKytLG8uLm9ta25tb6toLOnq6uwtri1rJ++vaqzwbS8oa+ztaqsn62wo5ymqaqknpulsKewoJ+rqaehqZykqKGtvKiusa6hq6Okr56fraaXn5uhpJ2fnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlIyIe32Lho+Ni4mEkpiQhpSjiZOSh5GakJOBiH15a352eXhjfHpwbm9xdmd/c2mEaGVnXmxzjWxgaW9gbz1aeWxVXk5QUUpJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJmtmqGYqKWkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i/tsK+r7S9t8S2wrGtubGzwLS6vbeoubi9qqO0qKmqsa65saucvL2lsMG2t6KvtrWnpqews5+epKaooqWZn6yoqZ6gq66moKaYo6igsbmfo7GvoayhraScp6apmpqbn6WWnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLlo2RfIV8c3B9cXR0YHp4aG1vb21ofXFie21pZWJcZIR+XllzanFKSX9pWFpNUExKSFBSUUlPXV9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl62hoaGlobirsqW0tKmoucS1sq2ft62urbC0xsjAtr7BubC0vLa+u76vqr2wtL+wvMO5qLu6t6entamorLGttLGonL+4pq69t7KfsbewqaWnr7GboaSgpaWgl5uwp6Geo6ivoZ+hk6Skorewoaaxq5+so6+YnKqkqZ+Xmp6llJudm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6j5aJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeMj3mBenByd29vdF95d2Rqa2pnZ4JsZXJra2RnV2Fyf15Za3VpWUV9XltYT09LSEhSVUcyOl9ebVBEV1VZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS47MV5RLDKWpKOYlp2qnqaho6G4qrChu7ilrL3Esq+uorWvra2vtMTEvbO+urews7m4uri6ra2/s7S4rr/Bt6u9urSlorOrqKqzrK6ypJ3Dt6aquLesn7K8qqelqK+rmaOnnKWmlJihs6aZnqWpqZyhn5Sln6S5qKSnraaepaGpk5+poaGhmZueoZObnZeho6ycnJujlpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWUk5KMkZWUjY6Ue4OXj4p3f3xsdXJtbHNieXRnZmlmY22EZmdoZGZnaF1kYmllWmV6YmBQc1RbW1NLSUdJT1NAICpqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK1rqevr7fBwL2xwbewrrK2tbm4tayqvLOvsrG9wLeuvLyxpJ+2rKamtaqrr6GgxayqqLK1rK21up6oqquxpZidqp6npZKZpa2jmJ2kqqGboZyXoJ2ntqWvqq2hoZ6dopWgpp+ioJmcm5yTmp6Vpp+uo5iYn5aVjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiHt+hYiGhJCElpWPj5CRkJGNknuDlY6Fc399Z3lwbGtsZ3Vza2FnY2Jzf2FjZWZlaGhhZW5ZXVhcbGNhTGdXW2BWSUdIS01SWD45YGxpSEJVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKNrqGamaCXpbSyo7K+t6Gxxry5sLCjtqyrr6m5vr27rcCyr6+utq6zubKnq7mxr66ztru2r7m+rKWetaugorKlq7CfpsWhs6aws7C3rrWerK+srqKZnaeqpZ6Vm6emoJmlo6mcmp+blZ2drbCmuaeuoqGamp6Zn6OapZ2Xn5iblZqhk6qXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiShZSckpGQkJGXj5B/gY2Ogm+Cf2d5bmhsamdxcmtbaGNhcn9gZGdqbmtlaWVjbFxsbHVwYVNiaGNlWklHTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuNDw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7GdnJShm6mzsJ+4wLagtMK7vbmxprawqa6luLq4uKy7sK2rq7eqtbmtpLK1sa+psba2sbO2u6epoLaqnqCqo6qunazEma+msLG3tq2snrGtr6qim52krKmblZympJ2aqqOllpqgnJKco6uqqbqepqSgl5qanqGPa6OWmZ1xg5ecpYF2kqypn5aXopKKmJmAl4qfjniFko2DbWl+d4RxbIaKhn2EioZvXWRgZ4SYhmuLkJSSdXiLhH+DkH9miIBodmlmWFxpdG5OUGpjZnGDZl1kZm5raF1bXYmQhYdoTktDOEVUZ15KSFBQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05bS1tmYj5HMU5hPCsvjqSaiJaym52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0s7Owua6qp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7G0ua2upKitq6uloZ+coainm5ihpaacnKeonZOeoJmQn6iqo7Svo6KjnJaYmZejiKGPkpqIoYiVn6J/pYCorZ+UlJ6UiYRyeIyOg4igdYeNaZeJZn5zeKBvh4eEfox8f6Ggn5l/fIiedIiOdpuKbIeCg21oZGR7bXJiVIZtY21pmHFYaXBuhlddaFpralqIcGx5codoh4RZXkZOPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOW0xbZ189SzFUXjcvKI2nmISdrJ2amp2fq6qoqr7DrrK6vLfBv6qkuLGqrKazta6vs7arqaWxraW2s5ustba0pqeos7Gtsqiunquhs6qgpaWboqWesbiVpqent76mrKepqqynpaGfmaGoo5mZp6OkmJylqpaTo5yUk6SmpqG2pKOfo5iVlJiUnIiukJiViqqMmaOdhrGBpa6flZuhl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGub2VpvJK8bmh6bXGP2H1Sa2K2sn1/cJR1mqGqkFZOWGFPVk5GVVxYUFBTi1tXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWls0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW4v8KrprSurqmosLWqr7a0qKimtaWoua6csrK2qqWkp7KvrrGmq56npbOloqKgl5yioLKvlp+kobW6o6qooa2tpKKdmpqjqaCYnKmgn5eeqKiRnKeblJ6ip6OhsKOen6OWl5OYkpmFr2tqi46qf2iFloetZnGfnpWbqZdxrqGkfne6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aBWF+Lq2h9j3h6aqg4Sq9bWFRtY1pLT1hfXFZWO06HUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npp+jpauyuK20vb6wt8WyuLvDp6mwrLCpqrGvpLC6sKWlr7OjqrmpnbKysKOloaqtsKyvpqigo6KxnKSemZaZnZ6wqZicoqC1s6Grm6GtrZ+dmZeho6mdmZ6loJyZoaekkJ2jmpehoKyfpqagmp+hlpWRl5GahrWbtXmGqZq2mXeHs5u3f5SXmKyXf2uBpnqBhYaRlJJ3q2dqsVuse46HlHSJcI6GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKShl1QqW5jcHuFgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7bCsLzDrbm3wqutra+vqK+zqqKvvKuiqLatpKy1pKWys6ijop2nqrOpsKimn6CgsJegm5aWl5ugsKScm6Sota+hqI+pp6qbnZaYoaapmp+do6CcoKOlo5abnpianqOrnKaanJqioJaTkpSTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko6djaR7jYaigaWCeat5j51Wr3uJfp9quVq5d4aEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcoZrlodeUrW0yIV+iHxjpDNCnXVdUGpoZFBAWGZZZGFKR0xqSlpTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbWopLy3wbC6wLK3tb20tqiysaSys6egr7apm6i6rqSwsaGytLGhpJ6eqKmxqbSpppyen6yYmZmYmJaYo66fnJeorbGpo56PrKKnlZ2XnKGmoZiioaKhm6KiqJyfoJ6UmZunoZynlZubn6CYkJKVkJ2Ism5otXKsiHCPp3K0dXS2e5yZpo6QnY2jfo+eo36wdYKQ0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOFYZaIXVnKnW/AgHRNS7VTVcZkVVFqY2VYQU9qX2xpUFVGSDk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam7raa1pae2u7yyu7+4t7W8vLSmtbWjs7KjoKywpZinu66lsrGdtLiqoKWdoaqlsqisqqWanZuqn5aWmZmTlKSropiTpquxpqGVkqufpZKUoZylp6CVm6anopujn66aoJ6ekJaco5+dpZSdlZminpWZlpObhax8eKh3o4+Lh6pwrouEqISamqOLk5qLon2Sl4euhH+Bs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ2hmeXiGpdr3eVn493bDV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKC3sZmzwa2osqeqsrq4tLm+ubizt762prm1obauoKCprJ+VqLasqLGyq620pJupoKCoorWnpqqkmp6WpaKUlJ2akpakqJyUkKetsKWglJmon6KPkaKaqaahlZqmqZ6dpJ+tnaCdoI2Un5yfoZmYnJaXoaCUmJGnnoepfn+meaGPkISqcK2Ng6eGl6GjipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25kT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqavq2Ys8Guq6yoprSwuLG1v7m6s7K5vKq7tqGypZ+mp6eek6uyqbCqtq2qr6GYoqCmpKS6o6OsoZeckqOglpWfm5WZoaGRjoypsLCmnZaap6afjZKkmKirqJWYqaifn6CkraOgnqGOlaGZoKCSnJeclZ2hlZePrJyPrm5ytHSpjHeLpnS0enW0gpSnpJOdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWWJcYHB8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqjnLHArq6rq6e3qbivtcG1vbKxu7iswreqrKGdp6SinZKrq6i2o7Oorqqhl52ooKWruJ2jrpyWmZCmo5eOnqGcmZ6fkZOVq7awppiTm6yployTppqlraORl6uypKCeqKywmKGikJmhl6CblpuXoZOcqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteW9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExbLTZAOaean6K8o5eww6+tqqqssai5r7fFsbuzr7ywrsGyraajn6SinJyRq6WqsqW1p62kn5aaq5mnrbido66ZlaGQpqCTjp2jn5mfmpCWk6+5sauVlqOnppSQlqWdpK2fkaCoq5+cn6mksp2ipI6moZWhmZuWlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCAdJG5g3yGhoqHjXuLho2XfaS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lseWKLrHB0hX5YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorKuqu6+xxq+1tLC4p7W5rqukoqefoJ2ZlK2lrqqntqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ2jpKKLk5KmnKarnZappaacm6Gpp6eiqKCRrJ6Xop6Xlpidno+wqZScp6KPa39qnKl5iXR/m492e2aIe72+wLpvkoNxlIVfcmpaXpuJYWOHj5ZsYH+UY22cdmKVa4CalZRlXmBjcZqJaHKMfIaUZmp+cHR4fn1iW3h0gWhQXG6EfHyLaldseoFySUpvhXBOck1EVlxmYExaV2ZjX09abXZqclJPRERNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocGkmbS5tqOspq6nqLWyrMissLSttqS+srOooaSqnqOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJqmnaeiiZOSqZuopJycrJ+jmpyjp62in6mhma6blKagl5Sen52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY+KjJiXiJSViYOTk5CJjZKUmZOZl5qfoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ2ioB8iWpzgXSDdWR3fXZrb3lsX2Jbb2dNWFlmal9XWXB6b21mU09GUzlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6WwtarJq62yprWmwKm0oZ+lppyllpahq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaOfnqOok5CYqKiyw6+Zqpyqno+Wlqmeq5yeoa2YoZudoqWvpqGkp56smJalnZmZoZ6enbChnaKnlpmUmpSho5ekoJmhjpeVi4uOkJiuj3yVm4KRgYmpqIWAmJaLhI6fiHuEkYaFmpGHhoqVj5uXjpCYnqOWmZKQnI1/jWWhs66EiYR3e5CKfnd5em9neZGBgYlrdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD4/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvq2qrbGyoKqmsq2irLOwxbCrraSzr7yktJyhqKOhnpqXqKappqSms7WelZWempqwpq6+oayikZGempqUkpainJepnYSdqaujtMezn6mjqpaWmJqnnqmcoKWrlJ+fnZ+qrqikoqugq5qen6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aEk31lf4+bkGN5jGxoanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGjeGtqi5mjn5hzbG56hIyGeVhlXYWBXmyLioJ3XGdzd3eSgIiCb3eCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4hpa3xxbWNdUU5WSWRYQEkzPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vbmvq7Owq6Wora6wpq6usL2xqqilrrCwoK2XoaSeopqap6ycraSmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Whpq+enZWeo56jnaSqqJKfoZ6gqq+qqaKqnqabpZ6noKuWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGjeqaYmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWyb42Bb8p6f5t4koSPgHZ5gYB5cXuAhnB3hYuSeGx1kWJlXndjX2WAYl50aG1kYlhLVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWiucO0r6+/qamUo7CpsK+tprK2r6qmp6axq6CrmJujoJybqqeinayjpailpbSknqOTpq6tuLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoKivqZaRn52imaOkqqOToKGenayuqKqlo6Gkn6OknK2pkaSbqa6qnJ6rna6jl5iml6KkmJ1/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Qdnvbe3+ZcX6Ik3Z/ZXuIdXZsfodtfYWPkH1rgIxfcGpvZmBfeGRbcWhqZGZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21rKayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapqJulpaKgqpKss5aloqqqnqSnp6KyopObp5yhnJaVkZehcoaMmHaGqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoiijJGLnH2reoiSj59/eq1WnMR7kHCTwX2BlW11cIxtZndlhm9heG5yboiJj46DbI+NY21zdW9gZm1kX29pam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrZqdp6OvrKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGnqKibqqejoaqar7GiqKuuppqnq6urs6STmKSnnJaThaRrpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF7o5+AfMSwxYxzr7SzuXJiqa/CdWiLi5aNgGuXkG1reHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtLCwqa2jp6eqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK+hqZuclpWnpJGboqifoKacsKWiqLGstsextKirqZWRnZ2imaCls52aoZScnqeqqqKtmqqmoKGporKsoaqzsqKcq6mxsLillJelqZqdk32qbZ+EiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vX2+1Y7F1S6OGbadHg5Nkjo+bkXtvlI98bXl0fHptW2VqcnFmgGleYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpqKds7msq6Glm6imqqyppqCmpZiro5+vrJ2moa2an6mlnae1oKOYlKirtrOsnKacoJaQpq2Smpyno6Cqp66ho6epsLPBsbKprKeUiZidpZuipK+ml6KVmJylpamZrpyrpaSdq6O2rKGxubCenLCotLS1ppaZqaWcoZCDnk53moKAn3qEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSofq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY2RoZV6fJCOh3J5coR+b1tsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWlr66uqKeepaWapKehs66iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWhoq+tnKSoorWxw7CtqaypkYaRnKedo6ScpZeemJiZpaOnmK2hq6Kkl66lu6yit7aunp62tLqztaiaoLGjpqCIkNK1w7d6h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYmffZeZh4eQc66CpZujjaaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfp9ic7K4aHeOkqSXfImKj4h1e3iNgWxod2l4c25/dFxkZG1tZmhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraiopmVo6qnramqmaWin6agoLWmoqmnsaSUq6OPpK2knZCamqq0tKSdpZypkpSXr6CgnqajnKectZmgqqO1qsKvqKqooYyEj5yioaajlZqanJiamKajpZepp6ugo5uspryslb2wrZ+jsbW7rbapnqu0pqqafKiRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zlourd52gj4iTkn95r12jgXymp2SegHyXdWquXaVscoWZXWBbjKBtlI+kl4GSipOId3mBln5pbH5ifXRtf3lfZ2Vwb2dnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZVVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpuEqcbDt8G0n5qtoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZaKmpCtsaynoKibrZiZj62ioZ6loZmknK2Xn6iltqi+rqSpo5+MgI6bm6CmnpKUmZuUmZmlo6KYp6uqoaKeqKe8pJfDraujoq20vK2wqaO2sautmnevfpGLnIWHfLqtiZhksIxllq59oZCEp5ecgq2LhbCGp5qkoqKRhaBcbGuCs2B/rXx7goGybGZumZeLiLFafbRbpINryKJmn4F8u1l2tVqyfVOvgXqsWIChbZeNppiIlI2Sk3h3jJt9Y3N8YoN3dIB8YWpmb21mZWVPVWNcQVRdPUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiZuOr6ypp6Oomq6Tmo+pmqGdpZ+Zo6KlmJ6iqLGou66kqJ6dj32Lm5ahoJmQkZqckZmXqJ6fl6etpaOkoqSpup6gxqemqaGstreusKmhv7CwsJiCqpKjr46bgIakl5iQgIC4w7qEj52ThaiZnYOsi4Oviqicm6arkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7G9rHl4or67dICVjKSZjZiNk5l3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHCQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxwLmyvbOina6nprOmnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKusqbisp6Oal5N7iJmSppuTj5CYmY6Xk6iYnpaoqJ6opqCiqrqeqcWjobCkrLS2rLKso7+rsrKcdXaqpbeFZYqgcGeskIqPbm53pZCboIJ2sZuXcJGOcpeppJuYr6RybG1tZot4b22DmXGBemlwaWeJlpWXcWhphYZncYZkXYpjaW9aXWd+eKZgYnKQk3BmZICNko2glZWXjZKaeoWNk3RkhndnjGp4fnlkbGNmbGJKZVdKa1k6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srSqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZatn6aqop+ko6CRi6WSppmpmZajqaCWnKWlpq65qqyZmpOSe4SXjqaXjpGQl5SNl5Smk52Wp6KZr6Wdoqu5n7DBqKW0p62xs6ywrqq8p7G7mIyiqaa2nImXo5iGqZuQlJ2SqrSanKStorSYpKOfoqOeoqWilqynjJKTjYeTnZ2VkJmTmJCNlYR/pJqXlY6Lk5KKkIeEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46Nm5Gdk5STnYCFkotwaI92b4l3dnx5aWxlZG9jVWFYQGlaR2JfTVgrRT0rJiE2NDAvHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t6+uorClraCgtrGRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4uIiY+cp5atpKGaqJ6fk5Wkl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXyBlYyhlIuVkZWQj5KXpI6dmKiemrSjnKart6ivwq+kuKewsLKvq6y2vaOywJqTp6SmtaKSnaefjamfjZKfoq2xm6Kks6uzmqajnqasoJ+enZetnpOaopyUkJermY2YmZeQlp6Rh6CelJSGk4yPjZWMgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkJaQnpCZkp2BhpaFeHGUcnmJf3F7fmpvZF9waWBcX1ltYlBgYk9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJm6KQr56klqigoZKXmZyui6uWj6iZp4yYqI6duLWjpZibjYl5gpSMm5OKlZGTkI2RlqGLnJ2nnJ23on+DrrWisLB1pL+ks6F5e6Kttb+XeLCmoYqAqn9kXGJ3oI6knoOWfm2UtZ2kqbCspWagoZR0epuYcIGZqplsf6SpimWcpZyRl5iXi5KbkISdm5CUg5OHjo6SioV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2eOjHF5oZWVZHiXhYB2l2iCiYJueX9rcGVfdm9ra2dcZWNhYW1RWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamuo6etpZKVqrSusKWZqaWql3OLnK+gqKunlJe5oKCPnKSekX6IiJqejayapJWnop6Ol5KehXWuj4immqiRlqOIm7mzp6CYmIuJdXeTjZaTipOQkJSMj5OfjZmepZibsZWAjJu1nbSMko+9qKJ+p6N7pbG6g46PqJ+EjIaPsamvjIqWopp5gIushp2eo6mrqYmWh5p3ppx7iJyBmKeDgXuds3uKhqCYmZSYloGQlpaDmZpieYiRhI6PkouEbnGQiHqCcYGBhoCHdIiFl5N4lmiTdKCac3uZgpyZhJh+kYiBgphpjIyEanh7cXBnZXhuaWxqXGRpaWRxWlxHU0tRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqqWZk6zEvK+glKWntJ2Pg5ysnKeioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpKOhXB1kImVkIqUj46bi46RnpCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsoapjqmZjZ18qI9ye3ecjqaWaJWkebSMoaCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJiAjpSciZiSi3yFlIaNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGel4CZgIqMg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmaldkRVxQTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqqummpSeoaSpoZSjqbWir3+gp52lnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+MdpubjqCRiJ6jm5aYl4aiuKylmZuMjH9ibY+Lk5CNj4uMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqGNrbKIpI6sm4yafqJ2gJmUa4GrdU2reIeNnZOcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf417ZGeLc5l9eZdsXHyXbmBTcYVcYG16hGBZZYJ+hYGZcaira4OjbnKlb5+CnGdknmxabIh6ZVlfgn5hV1BvdmVudHFqam9daW9samdXZk1cV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deX2N1YE1FOk1OTVRiXFtmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauvopmWnqClq6ufnK20oaeRoJ+gp5yZjpm0mZCLnoyVi3WBlJGNiqaWlpien36ThYWso4eckYqYqJiZmZGHpa+mopWZh4mAaW6IiIuOjomKjZGLj5Ghi5Kdn5qhpX+TgY+joZSgd5yWkKeDo6mAhqywh6V6jH6Emn2icHOTh5V7nox5bYecjJqSnKqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzk4iBgLaoZIHGuHxxlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xyo3Kegn6jXpyZs5Zve5ees3RyW56ygmlicHR1cWhvWGprcXBkW2ZcYUtEPUQ1UUFZcDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZWGBge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatraCaoZuio6SsmpqxrKuSl6CZoaWZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYqOqKCGmI+KkqKTm5qMiqinpJ6PloeEfmt7h399j42Di5CQiY6Tn4GVm5+boJ+LiXecmKKNoHKhjImpiZ2okZiqroGujH56oJl5o5N4gHOXiIycfZWfh5uOmp2oiKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg56Dc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI1+nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd3YV5jVmFBUEVPN1ZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhY3xpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZadiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKeqnZejmqKgmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeouElqSciZWQhoudkZybiI+ooZ+ai5CKgIBpgYZ5f5eMe4iNjoeOlZl9kqGeoKGTmHJon4qgj4xwko2DqYmaoaWqo6p+sK2koriXdqOzoqN/iJR4nXqqmX+ij5+dmYmYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyaf3SqWl1ve5eMeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmVfa2d1emJiXk9dVlxUVkBZRVBmRFJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhobGmUnYGxrpqEU1+hp7S6s7OpmqKLmqmbm6eSoKujoKePnp2dmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKBiZKhm3KSkIGImJSfmoSOqJuZlYqKinyDbISFcYKhjHiEjIiGkZiUe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgf6doeG5+mXOgc3F8nYWYb5OCrXykhKefm4OkcF6paHajZHCmYZ3Tj3x7mXhyc2OihpB+onKjkHZrkLOLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXF/hGxoZmNtdXZmXmBRWmVQUWFIVklUX1dTW2RqW2VQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVpU2R4eXdJRkVjXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt/qrCytbCzopyYhJemoKCijKSnn5aoiZmYmZSZk5Kgl46IhXtwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjamZk5KKhIl5g3aIgG6Bn4Z3gJGFh5iglXmSoaOZn4mzoaK2i3qsp6SupXCpgJuRhoGelH6lgaOahphxnoSjra+Jl4t/jKSNlYOvo5V3tba2yaJzlIyDn2Cel6lteZaHoJt1oYd4oH6QlouBb01mo5JxmohzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h9eZxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanVreIZma2Zic3RvbFVbUlhnT1JnSVVMWFJVXGdrblVnV01KQUpNS0dKTkFRSlBkY2ptZXVzc354e251iXp7VFFObV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKdibCohWVAlKKyrK+vtaGij3+Wp6Gho4ukppybpYKZl5eOl5CQm5OOiIN5a3mGZYOMf5afeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CJeoB9i3lwj6CFeYGUhoiVnpR+k6Smm5WWg2dueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gYmUlY+5bY+KomJ9maOXiW5za6trdaBub6Zgm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiIxxfIB0cmSlbniiY2anZ5dyi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam5RVlVVZVlTbElYT1xIWGhocmpZa1ZQUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd46Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWpsLGln4t/lqmcnaOLoaGaoaKAlZmTjpqPi5eQjop7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBin2AgI5zaY+lhH2FkoyHl5+NhpGppZ2JpniWm36liZaMspmekYSvl5+leZiKe6l1qJCEmm6looyShIyDvG18pa+Ch4aHlZedon6mfHKolaGWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGiah3WrZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp9bmdsUlRYVGBgXGtMXFJcSV1sbXZfW3FYW19aZ3NlbW9xY3F0YHd6fnlyeYNyg36Be3uNgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqqqeqKeto5iIgZapmZ2iiZqknKichIyaj4ackYWSjYyMdIV6iINvjYV+l5NzdIZykYNuf4uSh4aUkH17goWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJueiIuSqqKgj4B0lJeIfoF4lK+kf4KccY+GeZOOhoF7c6mNcn19epeWm4SNeHt9fYiUlZOLd5GZoaKFe3+KbIyGXHp5c3pxaW9+k4pxgHSCj5STcYaEgmWNf1+BgYx4dnOUdXB6b2+Jb4WGX3dpeI5mgoOGj6qcf3R9lmmJiG9+dXyDdW1sZoxzeHuXd4Raald5j2lud3Jxb3d4b11rhW5oZ1ZZXlZcZGpjVWBVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmCdX+Af4F5i4WCfXttgG1keW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6ekmaSdq6Gfg4OWqpCdn4iZppqomIKBnIt+lpSHjoqJjHKCfI58fo+Ee5eOdHKDcJWGfH2Si4aGj4Z5foCGmKOMe6afioWPj4SVg4aOmHdxhKqFjZGcj4eenYaKmqigoKuDiY2Vm39+ipetqJCTqJF4cZ+ThX2UcH+rh3F+lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjYlydWyDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8hI2DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY6CbHaKgm6Di3dtZGVjeoJ6lVpbaWZtdlt7eXd0bnNyg2ZcbYlra2JZWFxZWGpxWl5gWV5dZXJ9enRvdGNqaml7fHJ6dnRkbXRobHt/dXp9e3l5f4B/cIaJg3t9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfn5iemaihoH2ClquMn5OGmqGRpJV/e5iFfJKZiYiGhopyfICLdoWLgoSWinJvgHOYhoR+k4ODhoqCeoCEipqfj4Gln4Z3jpeIlYuLnJeEg3qsgZCXmJOJnZyGh6Gqn6Kio4uIk5udo5mWq6Kop6GTnImZkX56kJCGqX+Ak5GSk5yxpZqUnY+NsZKYhKaOjZadoYqRnYSJk4tsfY53d2aDhpGLfYmehYeLj4iIgYWEkXd8e3WbpIqHi6CMh5Z/gI2DgXdxdYaEf3iJiIuRp5GEh46HgouPinqFiYeNf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+GZ25fXllaXFNncFVjW1thbGh0e3tybnBjamlof3tteH5waHBwbGaAe3KCgHd/fX+Ee22DjIV8enl8fnqDeE5kdmpzbnF7ZGtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+Xo6GYlZmYlJikoJx6fpepjZ2MhZ+cip2WfHmVg3uOmYmGg4SGbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHg42bnZKGqZ6CcoqPhpKSi5yRfI17qYONkZeVjpuWhYWbpp+imp2Gg5KamZmQmaahpp6ekJeCk4x4fYmQhqd8fY+QkYaYqqGck5yOjamNkoCejYmUm6CEj5iAiI+EcXmGcnVhf4SQh3aMmYGDj4KGhX+GhJVuenZ1lKSMjYabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4SPgYKJiIh0goaGiHltanx/e21oa2xmXnl/aHx7dnR2dXt3XGBwfW50YGNaW15RZmxTZFpdYGpodHl+cGxsY2pqZ4B/a3J/a2t0bnduhHluhoB2goB9hXdyg42Hfnt7fIB7gotgaXtrdWhqg2RqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoqSfk5KWl4uan56cenecpJCbiYakk4qYmXl6jYV7ipGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6FhId8j4CPm5uQiKabf3CLi4yShqChioWMfKeQh46RlpKWkneMo6ChnZaaf4GQmpiTjZqjoqSbmJKcgJCHe4GGkYmhgX6NjY98l6SgoJKZkI+ljI+BnJKKlJmdf5OTf4iPgnZ1gnF3YX6BjoZzipZ9iIxxjH6ChYaPaHhyeo6ak5GAmH+JjHODiX19cnp8jYZ8e5OOhJemlI2GkHuEhYaEc3+AhIV4ZHB6fnh5cGtqZl5+c2l8dXVzfHOAal5gdHZwd2RjWF1eUmloU2RYXl9naXV4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohobGJfcVZ0b2xtYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3t1o56Nl3+MoYqImpZ4fIaHfoSKfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjZafmn1vi4GRk4Wlm4eMiYOmlYSRipWXkpF2kZ2hoZiUl3l/jpiXjpaanaWempSVnXuSiIV5h5iPn3+Cio6Mc5einqCSmI6PoYyMg5iYhJSXmn+Zjn2KjoJ4cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWZ2cH2IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eChIt2h4OBgHR4f4aCc152d3xzfXZma2Rgfmprd3NzdX1xfGNjYXNudXJtYVlfXVprY1JiV19fZ2p0eYVwYmpjbGZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjYGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbWB5Z2xhanZwZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqiaiZh5lpyLjJmQeHyBi319hHuAgoF4c3h5c32Ag3+IioBkXn2LlId/hYd0fX6Kf36YhJaTloyjoJd+cod7k5GKpo+MjoqSoJGDkI+Tl5GKgY+YoJqSkJF0gI6SlImdnZ6nmZiOlZd1kJGLbYiakZt8iImQiW+XnZqikpWKjJ2LhoGTnYCUk5aImop9i4qCe3F6a3ZtfH+Mf26Fk4OUeG+ChH5+i4Flc2p9gpiYhYCOdZKKhXqJf3d5gX6HgX2Ej4aNlaWReYWCdIiGe35xcn6EgWtgeXR5cHxuYW5iZXtibm92c3h3c3RhdmBvbHVub1xaXl1daV1PXFdiYGdscnqIal9pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt4eG1sh2toX2lyYodocW9ldmdtbGF6aGp8e3dwYXdtioGZmquhpameiouRhomeipSWfHasl4yWfJ6TkZaUiHZ+e4p8fIB2d3+Ab3Rzem+FfYGAiX58YVx+j5KGf4SEcnqAhnqPkYeRkZuSpJuTgX2BfI2KkqOJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiXipeTcIubhmeJm5CVe4qFkIpwlpqUoZGRiIqYjIJ/kp9+k5CUjZqQfIuGiHRzdWtxb3Z9jHVvhpGOk3J0gHyCgol9ZXJuen+blX6FinWSjIJ1intwgn+Ch32GjYuFjpaqjnuIfX6KhHZ8bmx9goBhZndzdG56YV5vYGt0XnBqe3l5bHJwZXlebmxzbXNYWl1fYWlaT1ZXZGJncHF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3pyeYNqa19waHR/a3FubXFnb2tle2Juf3p3cGt3d4l/o5mjqKGnm4iMioGPnYaSmnR/qJORjYagjJWTkIBzfHaFeHmAcnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGcl6CTlneJfoCMiJydio+GkpeWhYiUmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyHpYVniJ+Mk4CNhIyBeJOYkp2RkIiJlI1/fpCZfZKOkY6bk32LgYRwdnBsbm9xfIdqc4OPmIpxeIB1gomDemd0cHeCm5B9ioV7lZN7eIp1cot8h457i4eFio+cpYl8hHaBiX53d2xofX9+W3FycW9vdlleb2Bwal5vanx6cW5tam13YHBva3FtWVhgYWFsV1BSWWVlYnVvhIFhXWttZGNla5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHi397dop/anFifGKFfG9wbHVqaG5sdndfcX55e3N1c3+CfqWWm62fp5eFjIN+lpWDjp10iZ6TkoaKmoyVjox6cnh0gnByhXRxdYhsbmx0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkIGTkpibkZl3kXqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31yi4WIj4icmZ+bl5WBlYBqiJ+JaIiiiZSFkoSKcYORl4+ajY+Mi46Nd3uTkXuPjI6TmI18iX2BbHdqb2tsbXuAYnp+j5eBd3qBeIONfXpodW12iZeMgImHfJWRcnuGcXiOe4uOe4l/hI6Rn5+GfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmdzdWhwbGF3ZV1VZWBgcFNQTltlZF14b4h7XlxocWJiZWWRaV9oZVtnb35va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHmVeGdyaoNgh35vb2t7YGltdH90X3R8eIZ3c3OFfHmhkJqxnKaPg4p/gpmJf4qcfoqYko6EiJeOjo6Ed3R3c4BwcIVzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm5CZe5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYp8jomLk5KKeoZ9f218ZXNwa217elyBepCPgXt+f4CGj3t6aXVrdIyQioOHhn6XjG1/gHCCjoCOiX6Fe4SRlpucjH13eIKOd3JrZG58gGlnc25naHNsU11vZHBaX2xxd2dra2JneHNwcGRgeGBhVWtfXnRPTUpfZmJceHCJdFxbZXVgYWRkjmNgZmJYaXN0bmxxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZCKiHx+mXZlc259ZYd/bnBrgFlrbnl6cmB2enuNdnJ2inZ6n4ycr5ugkYOFeIiVfnuInIaEnpCOhYyXhJOOh4F1d3B5cW+Eb21ufnJjZHdwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+Um4CRcIWLo5eJjpWKkJ2Vg4CUj4WIj4CSioqXfod7dn+JeIaFjpyal5mPkHaLeHCJi45/jaaGk4uehoZei5SXiY6IjYqKhIlsfJeDfomGipGQhnaGfn5sfWR4dWpvenRYiHuSh4Z6f3+Aho1/emZ0aoGLkIuEhIGNmIZtg3dviZODkoZ/hHuCkpeUmpF1dHiHi3RycGRydn9fcmxvYWh0ZlJgcGdrVV5uc3lhcmNgaX5xcm5bY3JhY1ZuWlx3TExLY2ZhXXZyiW1bXGR4XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIeVhYx/f5hzaHVyeW2Le250cIBXcHp2eXFkdnmGjGh2gIlxgJ2Imaico5OFfXGMk3h4iZyDhJ+MjnyWjYCaiIR8c3dwc2pvgWxqbXx0XmB3dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46clZKBiHCFiKCOhYuVioyXk3yNkoeCiI96kYuGj4KAd3iDhHKHgpOblpOYho12iIByh4SMiZykhZaOoISKYYOVj4WIhYiMhoCHaH2UgH6DhYqOj4Jyh3+AcndodnJpdHhtWo19k4OGfYCDgYSLg3ZidW2KgpGMhICAk5J+b4NteoiRiJSFfYJ/gpOUkpiJbnF5i4R0am9pb3Z+XXJobVxpdF9RZHFoZlNfcXZ0YHBgXWiDcXNqWGdpY2lXbVdbdExKS2VmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF/e3Z6iHOFg3x/h3Z2ioWPmIGNgnuTdmx3dnl4k3Vud3p9WHmFcYBuZ3h2kYJkdoaFcYqWhpqhm6GKhnNvkotxdo2afImZiIl8n3+EmX+CeXJ0bm9kcn5pZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCLhXpoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3xxhoCVmY6SlIKJdoSIeIaDjZWgoYiXkaGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOMj5B+bYN9g3VsbXd1dHd2a2OOgo+AhX98hICFiX9wYHRyhn2QjoN9f5KKenKFZ3uFjIiNhXyFgIGVkJGThW5veIt+dGxtaGl3emBnaWlYa3RZUmhyaWJQYnJ4bWJlXlpqhG50YlxoYGVtX29UWm5NR05mZFxmbnGAa1pbY3NfXGNrdmRlXV1abGxibGpzdoaAcW9/fH10eIZ4hYN8gId1eImBkpV7iYZ2iYFveHl7hJNvbXuAdl6Df3SBbGh6c5RzZ3OHfHKSkoSan5ufhod1dZN+bXWSln2HkIOKjZp8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lYuBhJqMfIqFfHuJi3+UiHWJhnZ3foFydYaBnpSFlI+Eg3KBineGfoybn5qIlY+egYlmfpOCf4WCiIlxgX1mfox8eX+AiIyPfWmBfoR2Z3B5eHN3dGxrjoaLgoqAeYKBhYSBbF9zeXt+jouHfIKQgX9zgmp6hYmNh4V5hX6CmY6RjX5ubXqIfHVzbWVle3NhW3BiV25xU1NtcmhhTmd1eGZgXl1Zb4Fvc1plYl5qbmBwT1lqUURTZmBaam5tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3Btfnx/dHWDeoOCfIGFdn6IgZaQeISKdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSHbn2LdWl3l45+gYqClJeKeY+Vb3p0cWxqZGBzemhgZXF6WmByfHlncXlhZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpJ6eZKGgYSYinyGf3d3iYqEloBwi4hxdX57anmFg6WQhJONhH9wgIR4hnuInpuWjZWSloWIcHuTgn2CgoiCbYB3aICFeXKAgYOKiHxlfn+EdmRxc4BpeXFwdZmOhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V7gpqNjoV5bm59g351eWNlaHtuXlh2Wldwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ15na3Jgb05XZ1I/WGZeWm9rZ3lxW1pYa2VZY3B5XmdcXmVsZ2ZraXF3f4hvbH9+gHVvgnt/gn+Cf3aBhImXiXGCjXF7hnx6eYSTjHVqeX5rb350f3xvcnt6k29ugX54Z5KLg6GZnJGChWeGg29neZWIfX6EgpiKgXyOjWl4c2trZl9hb3ltX2JveFxka4J5YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Lfm1rhIyMdXyPf4WBlIh8gndudoeEg5d3b4iFbHV7dWZ5goOmi4KPi4R+boF2eIV8iZ+SjpKTlI6Mh397koZ3foOMgmp/cmiAfnlufHyCi4R3YnqFgnJkcml+bnZydYKcjIGAhYB0dn6Ac4JvXG6AdXmLhIt8iIF+iXl7cm2KhZGFjHODeoCXjIuAdW1qdoB/dHNbZ2d1bldWe1JZb2RMWnJyZVtJcXhvXFtbWV11fnRoWWJbaGZvZGpNV2VQPV1lXF11ZWB1b1pZVG5jWWNxeVpoXWBnbWdpa2lwd32ObWmChH95boB8fYF/gXp1goCNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox5eIR9fGuMjYSbnpaMgYBsjX1raH6Ni3p9foOTgn59iohrdnFnaGJbYmdzb19ha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8kYZ1hZWFc46KiXZvbISChnR5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIaAh42Kfm+Ad4KDf4+biYSWk5mKjIWJfJCIcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXyGlpKCfYKBb3d6fHV/bVlxgXd1jYOHeIh2hIl7eXRvi4KRgoZzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpNW25bT1tyb2RVS3N4aVdZWlphcYB0YF1dYGdkaWlmTllnTUBgY1tgdWBddWxYV1N0YFpkb3JXal5iaGpnbWxocHd8k2xohIp9fXB+fnuBgIF6d39/iouDcXyHb3F3g397iYyPg2l9e213eHaKdnx4f4KGf4N+fXpthYyImaONhIN7dYt4a2yEh5B4fXqCkYCAfouDcHJxY2ZeWWZfb29fYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4N0dId0iHeTiHl5cGN3h3qAk2lyhHZnd3VjanyCh52BgH+Oj35zgHWHe4KUkoV6mI+WkIiCiXuJiWt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBanaCjJGVf3t+f3F8dnx0f2JWeH5zdIuFg32EcYeKeHlxcYWEjoB/en9+do+GhHdqcWlsh4Fxb1xmYHFsSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCc1thXGllZWRrZFBbcElDY2BbY29dXXdoVVdWdl1bZW5oVmteYWpnZW5uaHB2epNtaYiNeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfomLk39wgHt3eHqAjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2h0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1yYWBgcGxraIhuYXRpWV9kboB3qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/b3F/bYV0k4V4dGtgeoJ5iY9mcoRwZ3VuW219gJCTf4B4kZN+eXxuiniDk46GdpiMk5CIhoZ8f4VsdHV+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGh1h4+Nlnx1gXdxgHt9boBaV3V/cHaFiH+Bem2JhnR6bHaChIV/fH56fXSMgn50aHRlboqDbHNaaF1zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmFyhG9cYGNtZWReb2NUXHFGQmVeXWVnXVt7YlFWXHRbWmdrYFZqX2BvZmZrcWhwdniOdGuOjXZ/dnh+d4GEgXt0fYOIh4NvcoB0cXV+hYKJjYp6dn94g3t8hYd3h3x9gX6EgHt+cnV5jI2gjIl5iXZ0g3hefYWXi3iGg3OFhoR3iXpibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeouKZXKCa2pxY1hseoWbiIKBc5eUeH99b4pzhIyOiXSZkJKJhouDe3l9cXBvfGZocWJteHFqbHF4fX16XWV6gHhqdnhmg3dodYmMjpV9cohqb36BeW99XVlzf251gYx8gm9wioBxd2l4gYKBgnh+c3x1h317c2dzYW6LgGtxV2lcdltHbWpMVlVdU1V7a2FPVHVyUFFUV15jdIVpXWBsamZjWm9hWGJvR0FnXGBlXVxWe15OVWVwWVtqaF1XZ2BecmVqaHJocHN3hnhulYt0f3p4fnmDiH91cn+GhY6CcHB7eHd2eYaGh4yGeXt/dIt9fYaEg4d+fn59h398eHV4eJGTn3+MfIptdYB4ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3JkYFlkcXJngHJia2VXW2Bqf3i+rnuft25hc4Voc3pxeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eHmLhGZxf2hra1pWb3eIooCEf3GZk3KBenaEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2pseXd6dlpnfXx5ZnN+bYV1ZXWHjYaWgHCMZ2t7hHVudWJdcX1sdX2MfIJndod+bnFpdoB5f4B0fm17fIJ7eXFmbGJuiX1sbFVpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZ3aDZl5gcWhnYldqXVxrZ0pEalliY1ZZVXlZTVZtallda2RcWWVjXnRlbWRxZ3JwdYF4cZmGdn9+d398hYd9dXOCiICVgm5zeXt6c3OFh4mJg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ8e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWVjV1xbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVtanpxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKZ8hHt2lpF0fXR+fG9+fZOIeJt9iYeEh4N9dXBxbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCd2J3hot8lYFvjGpte4JxZ3RmYW56aHN4i3x/Y3eEd2pscnV8cnt7dH9ogH+AeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWt3fmZdZ3NpZmBWZFdicFxLS2pXY2FVVFVzVkxYdWRZXmtgW1pjZV92Z21icGl0b3J+dHSZgnd/gHiAf4aEen11goR/l4VucnR8enVxhIWPgYB6i3VzkH98gZWNgIWEfX2Mhnp9gHd7o6WKeYiFhGt0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlhfWml/aWtvgGdsYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdo+EZ2VYYndqfod7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHuRgXqXdoeDgIaIdmpydWdnbltsZF1tcl9nYWp4aHtsW26Dc3RqcIF+enhhd4aFeZGFdIlycHqBc2RyaV1xeGVydIl8eWN0gHFnanl1c215eHZ5ZYV8f3l3cWRkY217fGpqVGdhZVNKa2dPR1FqRWB3ZmFNU3JdSk1VWmVseHxmX25xaWRdVmFVbm5WSlNnV2VdWE1Va1RKW3lfW19rXV1aYmVgeWhsYW9vdm5wd3V6mH53f4F5gICHhnp5eoN+gZODcXR0fnp2dIWIkX2AfJBrcpWAe4KfhX6HfYB+hoKAint3hKuef3qHh4NrcoF5dYB+gHRuhm58gHOKgGpwbmRkWF9aWVpUYmpnW1pfdYJpXm1sXGFXXFxrgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F8jn14kHOFfoCAhm5kdXJkZ2dcamFdb29cZ19tdGV6aF10gG9ya3F8fnV2YnSGjHuJiIGBeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2dGeHdnt6dnFlYmRtcn1pa1NnXVxUS3FiUEZVYEdidmZhS1NvWEpNWFhoa3Z7ZWVucWZkWldeWHdlVEpcYldnV1lIV2RQSGJ4Wl1fbFpeXGFjXn5pamBvdHhtcG52g5d6coCAfH+JjIZ9dXWGeIeMfHN1dYF5enqCjI59foSJaXOWgXqKnX5+hXqBen98holzcY+tjHt7ho99ZHGHeXN8enVyb4Zse35sj3pjcG9iZV1lVllZV2Nma19dXXOFaFhxblteWFpcbHticHd1bGFZbHNzZ3R1b2yDeH5/eHZtbnRkaHRlW2d1ZnZ2kXpfXVJmZmuDgnR+YmRqXFRXXWJjjqRpeHODhpF5bnF8anpvfYd9dop0gnl9eYBpZHZsYGZfXmlfXXRrWWVdb29iemVcd3xrbm5weHl0dWVzhJOAiIOJe3dwc390Y3hlXHFxYnFygn10Z3KAZV9ud2plaHp9dW9wg3Z0fXRyYl9mbW58ZGhTZ1dYU012X1BKWVdIYnRjYUlUbVNKTVpXamxyfGNtbXNjYlpaW2F3XFNLY11XaFNWRlhgTUdpdVheYGxbW19iYlyEaWhhbnh5bW9qdoGQeW2DfoCBk4iEgXZ0iXSMhnRxdnaBeH19foyQgH6TfnB3lYN8mJJ5gIB4en6AdIiEdHGZoXp6f4mUd2N1h3hzd3RrdG5+a3h8cJFzXnBuYGdibFRaWldoY21mW1xxiWVTcm5bWlhXYGx2Y2l1amleWW1zcGtzc3NphHx+fnp2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcnx+fXOCeIF0e3p7ZGV1Z11iWWBnW152aFdiXXBoYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNydIF6dGdwflxgcHJiYGtzf21udn9zcXhrcWFcZWxsemBmUmVTVlFPdVtRT1hRSGNzYWBHVmpQSVBaVmtra31mbm9xYltaWFlscVdSUGZWVmhTVEVZW05IcnVYX2NsYlhgYGFdi2pjZG16eGxwaXV5h3trg31/hJp8g4R5fIdtj4dybnZ6fHSCgnyLj4OCl3R4gZOFgZ6JdYGAgXR/gnGIg3ZwoZZzeoaLhnpld4pubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdpc2hidGVkXFhtdGxvdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNtcIOFinRraXxwZ3V4dX1te3V2cHt/dl9mcmNbXVZhY1hhdWVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2dwf3J0cFRcZ2tmcnWBd3RjbXZWY3JsW19wZ35mbnh+c3Rza25hWmRpandeZVNjVFVQU2xWUFZSUEdkcl9hRlhpTklYVFduaWV9aWx4a2JXXVVbdGRTUldoUVhmVFNHWVlPTXh2W19la2lZYWBeXo5uYmZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmZ0gHt1gIN9iY9/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqSLcoCNi3Z3bHqMYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNvZ3NrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6bl14c258a3Z0b3B8gXNYam5eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xpho2AinuJbnJmcn5udG5kW2FpaXB0gXRzXmltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUk9bTk9IZG9cYkdZaU1KX0tZbWRgeWlufmRgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJhW16NcWNnanhxc25odnR7hHKCg3qIjn58iYeNeW6QiXRrc4F0f3+IhYeRhJWPeX2MjoeRm4SAfIyFc3+Bc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjo6Ojo6Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3W09REREREU4Li8vLy8rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+ftZy41NTU1NyccHR0dHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYWFhYWFhpOUlJWVlJWKhYWFhYWFhIODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKSk4+OjY2Oh4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4uLi4uMi42Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4iHh4uGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiIaGjoWMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYOFhoeMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiYaGhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjYuKjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gIGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f39/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn5+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX1/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f39/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX5/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhYWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh8e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fX59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent9fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fyd3l5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PTw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn59fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PUA/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRUhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pj9APT8/Pjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT9BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTE1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTUtKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x7e3x+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREREQ1d1homKflhHSEpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz48PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNS0dJSk1NTk1KSktLSkxNU2xvcnRzc3d5ent7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f4B+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ2NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUE9SVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZDQ1Z4hISCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ozo6PDg5ODk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8R1JgfISDg4SEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7PD06Pjw6PDs8Ozw8Ojo8ODo6Ozs5OTk8Pzw9QUJESUpNS0pLTFdvcnR1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT5Pd4GCg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo7PDo6Ojw7PT5APk59goOEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSkZHR0RGSEdFQ0FAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oj09Pj47Pjw/PkI/TH6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklGRERGR0ZEQ0VGREJISUtHSEdGR0dFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRD5ng4KFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOT05MT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXV2eHp7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PDw9P0JDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtKSkxNTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB+f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD1CRENGSnSGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUlBMS01NTUtOR0dKRkZJSkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBKT09OUFF5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01Tb3R2eHl4d3l6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUVBUVlVXVXaFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1hYbYGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXVtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fn1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcXleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQTkxMSENJR1JTVFpdbXJ2dnV0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNATlBNUmR0dXZ1c3R2eXx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmhlZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgYKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5JTUZVb3V1dnR0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTkhHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ2dXZ3eXx8fH18fHx9fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUpERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pj06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1JQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I9M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RG5xdXd6e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkI4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUBAQj0+RUhGREZGSUdKSkBGQUFARUdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxCQUBHSkVNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5ent6fHp3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I+Pz9APkNFRExNUVRMSklNVEZJSUpMSUpLSUpMTU9QUVBLR0NLR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUU5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0RHS05ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NUE5QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7PTs9P0RCP0FDRkdLR0pJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRkdLTk9LRkhJRkVDRElJSEtJR0hQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSUdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRUNDSEhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWBtaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dXZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT01PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIREtLTExOT1JUT0hUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJQ0FDR0U8QEVCRDw4Oj4+Pjw8QkI9QD5BQkZDRUNDR0RDRERGR0dHSUZISkhDSUhHSUdGREhLSUZLSE1LSktLSEtKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19dX2NeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBR0NFRENIREVERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUpNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmZdZGBmaGBlaGpkc3NmamhmbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSkxJS0dCRURFPEFGRERCOz8/QUBAQERBQEI+QUNIQkVERkdFSEVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSUlMS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYWRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUU8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEZIRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUpNTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmY2FiZ25pY2loaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD49REVGQz9DQUVEREZDQkVHQ0NJRkJISklHSEpGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtWYHd1aGpoaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxERUZEQ0NDRUVERkJFRkdEREtFRUpMS0lLTEdHTklISktHS0pJSkpOTE1NTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRublxwdmdwTkxyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJGQ0VERUVEQ0hIR0RES0hHS01NSkxMRkpPSEpLSklMSkpJSk1NTk1NTUtOTU1bcnBvbnBwbGtNT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISk1JSklKSk5PTk5NTE5NTFxoZHVdbHFXbE1PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUlOSklITkdKSkhJTk9NTkxKTU1KWnRwcG9xcW1sT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0alpedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRERFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0tKSk5JSUpMSUtKSUlLTE1NTElLS0tTa2JZaV5famNyclpfWWpvX2VlVWtfZFthYlFgbWhcalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGREdLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISUdLS0tLR0hLSkxLTEpJS0xOVFtdVFBVTVFPTk9PVVJQUFFPT1FKSk5QUWRxaVRZVltbXFVZWl1YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZARUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxISEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpGREdIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1JSlRfWWBYYGFbYFVYWVRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWFpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUhERktKSkVFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlGQ0RFQkZKRD9JS0hOW2NZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11aXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRENLSk1NTExISkpISkc/R0ZOS0tLTUtLS0lHSUVFQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSV1VUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkdHSUdHSkZGRklMSk5FQ0tKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JiZGRiWFBSUlNcVFxdXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHR0RGTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBNTEtLSUpERUFFQ0hGQUFGREFWVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YX15iXU9ZYlxgYF9iY2FdYmJXYF9UUVBRUllTXlxbXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PUE1OTU5JTEJEQUNDRkRDQUNEQExIQ0xMUE9OTEZNRkZISUhHTExNT1BJTE9QUFNQTFFTUlVaWFdZV1djVk5SVFBRUE9RVVRcWVlbXl5hYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFRTTlBQTk9PT0hMRmBFRF5MRGZjQ0xbSF5cc21PTVZtWUxDT19UbFdnSl1XVV5ETVFVTE1TVlFSVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jqc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGNnbW9sYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1wfnhvf3JgYGBiYlthYWhsbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1JSTkxQSVFSVFlXV1BUUFBRUktIZ3hsY3hxbVpKTFR5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWdqamVoYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05SSktyb3V1cXVxY2hgVW5LcXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVufGxxdnV4Xl9fYl9dX2VkaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1ZrZ3xsbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtrX3Z1bGp2fHttfnlrfHBdXl5iW19iZGVnZmZlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU1PVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGdyX1tbW11dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlZUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFSUFBQVFZSWFdcV1NSUFFVVVVTWlFOUlFXVVNZVlRYVFNRVFNVVVlZWF5aX2FdXFtaXFxgY1xdYmNkZ2VlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU1BUUFJUVE5LTU9SVFRRUVFVV1VZWltaU1VSVFhXVllcU09TVFdVVFlVVlhUUlFXVVZYXFpcYF1XWV9dXl1cXWBhXltiYmNoZ2ZlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRTk1SUU9RWFRRUU9NT1JUTldRU1RVT05OUVRWVVJTUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVWWFNXV1RSUVhWVltfW15gX1ZfXV5gXVxgX19fWmJjZWhoZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNVUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1OV1NNTVJPUVJPTVBTUVVaVVRQUExQV1VRVlJTUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VVlVbW1ZRU1ZUVlhUU1haU1JRWVdXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUVRTWVtXVU9STlNYVVNRVFFSWU9RU1NWW1VWVlNWWlhdXlxcXlZTTlRWVltbVVFUVFVXWFJTWVxUUlJcWFpdXl1iYWBXYltjYl5hY19cYmFiX2RnaWVnXVxkYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JYU1RQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVUUk5VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVRUV1hYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJdYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVST1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lcVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYU1dVVFJTV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFZVFlaWmFYW1RWWFtZWlhZWVpXVl1fYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpXVFxVV1dZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZVUVNVV1tbXF9fWl9cVl9fWV1eWV5WU1lXWVlcYlldVVZaXFpbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF1fYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVVRYXV1fYGBdYV1XYV5bXlxbXlhWWFdbWl9fW15XWFxcXF1dW1pcV1pfYV5gZWRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWVxdWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eXlpYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtmZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpXXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIh4mHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7fHx7e3t7e3t6ent7e3x8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJycYOKiYmJiYqMjY2Njo6OiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29uhY2MjIyMjI6Qj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5enl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp5eXl7fXx8fHx8fH19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2dnh5enp6fnl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHx9fHp9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fH19eX16eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e359fHx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e319fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgX+AgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp6ent4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgoKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYKBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICBgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgoKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoKAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhYKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dHd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4iKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYOCgoGCgYKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCBgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgoCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYWFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKCg4ODgoODhIKCgoODg4KDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYSDhIWDg4SFhIKCgoOCgoSCgYKGhYOFg4OEhISGhYSEhYJ/fX19foKEg4ODg4ODg4ODhISEg4KEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSGhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gIGAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OChIWEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIiIiHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoeFhIOEhYaGhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iHh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiYqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSEhYSDgoKCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4eJiISDhIOFhISFhYaIh4aFg4KChIWHhoeGhoSCgoOEgoOEhYKBgoGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhYaEgoaFgYSFg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFhoeIh4aAgYGFg4OEhYSHiIWDgYCAgX+BjIaDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fH+Hg4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX99fX+AgX9/fn+AgH+AgICBf4CCgICCgoGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fXt9foGDg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6eXqAgH9+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgH9/foCBhIOCgoGDhISDhICBgICBgIGAgYKCg4GAgX+AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKFg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDgoKCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CBgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgIGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GCgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBgIKCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5+fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIiHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f39/gHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6ClJGLjI2Nj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fYCAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX57e31/f3+AfX9+gIyRjYuMjY2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+fn6EkoyMi46Mi4qGhIaEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+AhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoB/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6Cf4GDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuHiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJCNjIiIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+fn1+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX1+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIF/gH9+fn5+fn5/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4F/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIF+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhYaDgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhYWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf32Af35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgH99fn5/gH18fn1/gIGAf3+CgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f39+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBkox6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3t9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOBgoKCgYCAgIKDgoCCgoWDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKCgYKBgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgoKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhISEg4OEhYSEhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf359fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf319fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIOCgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWHhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISEhYOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4SEg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHhoWHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSChIOChIeDhIGChISDgYCAgHt7fn58fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fXx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhYaFhIKEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4aIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSFhYOBg4KAg4WCg36BgYF/g4F/f35/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4SFgYGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiIeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4SAf4GAgIOAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoWFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDg39+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/f4N/e4B9fX+CfYCBfX6Bfn1+fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t8fX59fYF9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoaFhYeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHt+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoODhIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/f319fHx8e3t6enp6eXt6enp6enp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx7fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojs4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXU1dTU1NTU1NXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2trZ2dnZ2dnZ2tra2trZ2drb29vb29vb2tvc29vb29zb29vb29vb29vb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKiomSmZiYmJiYmJiYmJiYmJeMi4qKioqKioqKioqKi4aBgoGBgYGBgYGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NRYmxra2tra2tra2tra2tpVVNTU1NTU1NTU1NTU1RLQ0NEQ0NEQ0NERENDQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXVmVwb29vb29vb29vb29vbVlXV1dXV1dXV1dXV1dYUEdISEhISEhISEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYmFveHd3d3d3d3d3d3d3d3VjYmJiYmJiYmJiYmJiYlxTVFRUVVVVVVVVVVVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLzc7Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMvLy8zMy8vLy8vLzMzLy8zMzMvNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7R1NTTz87S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW19fX19fX1tfX19fX1tfX19fX19fX1tbW1tbW1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7RsIKDk83SqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7PyZu6uJuwt56jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0cOij3+JxZ6ak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/noqo076YoZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/RuqStnKG0mZatuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P0cCgnpOpkJuBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDSprCun4CfqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cnXxJyCuK+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cWNnqCfmaeXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocnBoa2hoMGiq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT1auNj6nYxZCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUwb7V0tTHw9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dTV0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yPj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2lzY2lkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubVtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdiYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWh0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExcnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDw7+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur3Aub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbWhcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bXBgXmVdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11OSEE/PUhDRk1EPzc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11aalRdXE9NSERGTEFGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK62trK0tK+qpJ6cnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yUkIyOj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUGhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7Cys62lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOPj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpqXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHpgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJibmpGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmJubmpiZm5SVmpaYnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZiSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCnq6iytbezt6yxtKOgnaWfq6GhoqCfmpiWlZ+bm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqZkpmenKKioKCdop+fnp+pq6esqaq0q6utq6Wlq6iqrKqln56ZkpKUmJmWlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLGpqqinp5qZnZqqpp+Zp6Cfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl3bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayurqqrpqCenqGjnp6em52clJOVlJ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusrqexrbHCtrjCxsDIysDKv7C5ub25wr24s7vFw7zCu7ezqbKtqrO0r7Ouqa6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwZ1dcUUVUSERJT0g+RUEzRUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyepaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMvM0se+v8DCvcfGwrfDycjCwMW+ubS5urW6t7C1sqq6sa67tr67uqq3rKqquLq0u66tuKOlop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzNPP09PMysLFxsbKx86/yNDLxsTGxMC7w8C+vr61vbOtvr/Cw8bEx8OtvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM3TzcTHycnAxsvGyMjFvsKzs8fEy8rKzsXJv72/vMHHxMzMyMm/w7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2JndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dLU1NLP0cPQ09bX1dbSy8nO0MvGzdLJ0tXW2dXX09bYztLJztHMztDL0s+/x8bJw8vLy87PxcbHtr/Jv9LMy8/Fyce/w8LHzszQ0M/MysfNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmKGdm6Gin5ydm5WKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRx9DY19jR19LX2dXWzM7PyczRy87Qv8XBx8XNzNDQ0cjLzMDKy8XTzsvOyMTJxsbIy8rT09DVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qp+doaqpoZiWmJqbnaGemp2elH5yZWNiX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cXR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc3PytDNzsvOzsfKz9DKzsrCyMbJzMrL0dLM09HQz8/Kvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYmVucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tLHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirs7epo5+clpSXm56fn52UlpeViWxeXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O08vNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dPLy8/R08nO0dXS1dXKwMnBxczCyMnCzMLFyMnKzsrMzM/N08vFx8/Mx8fKxMbAxcnLzc/Qxs/Ozc3Mz8XHwLe5vcLDvcO5srO+sLvDxLWpmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2M3Mz8nW1sXEuLK2qqSurLm5sbLAoZeOjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxMnJxsa/w8XOzsfFx83K0cjLzs3G0dLPzszUysfKzc7Hx8/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJy8/Hw8PPyMbBxsfDvsDHy8vLzsLKy8jHy8/Exce7x8LIyMLPwL28v7DByse6vaqwsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6u+ubmzpZKOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLq/w7u7urm+yMbCw8DDx8rJyMrHwcXLxsjLzcnEwsrJwcLL0MTLyL+5wbrFx72/xs/Kw7/DusnHyLrHxsTKwL3By8bFw73FvLy/w8TLxMS8v8nCxcfRxcDIv8rJxsfG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnJ0ZmlaYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8fNz87N1dDW2djZ0M3Uzs/Qy8S4xsG2tbyxwLe6rZGMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsGwtrqysrSyscG8u7u5uMDBwcW+vbm9v7nEysXGwr3GwLe7xMm/wsm7t7q6xcK+vMHNwsa+vbXAvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8PBxcLFyMXIxdDGwszHssbJw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tXW2M7M0MjNyMrFvsrBsrW6t7u2sJGNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusC4rbCwp6qtrKe4tLa0s7KzurW9sbewtK6yu8K8wcS8v7q1srq+wLjHuLS7tcDCvLe9xsDDu7Susra6vrPEt7u1q7i8vcC9sLq1r7a6ssW8tq67v7S2tMW8vsPFv8PExcfLxcDGxrvHy7/PycfDxsHDt8O+vba5vsa/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPyMvGysbEwL3PvbO5vbm4t5yOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/ubi1sKusp56iqqeeq6yzramrqbOttrCyqK6mrLK8urbDubq5sKu1ubu0wrqwv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu667uLu/v725wr/GwsXAvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbBxdDIz8LEx8HGxsXFzMTLzMLEwcjBury7yre0vL22tauRiZCQfHl+ioV6e4SBd25eXV1dXV9gX19kY2JjY2JgX11bW1paXVpaWlpdZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq62jp6KrqayqsKOmn6qttbaxvbmvt6+orri0tLy4s7yut7m0sbvBscGupamirLGys6e8qquoq6yttLSmqK6hpK6psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOTc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvMq5wMbAvMy6w8fFur3Evrq3vca5trm7rrKVg4mNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpKyfnZukpqyyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubG3pJ+jn6exp6uouaqkpqeop7KtoKemnpukpqyen6ekn6Cxra2ssrSys7C1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO+v8Ogg3dwa2FlX2tvYFVZX0hOaE9UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6UnaGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fIu7fExrO+xby3sLnAu7Gzt7CihIeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1bW1tcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpqim5+qsK2xtaKpqqmrrKS1uK23r6yytK6ytK6wqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tb3AvcPBurq9l4J6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MnJwce8vMXF0MC8yru7wbu2xbi1wcGzwsS8raq1ureosbOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYV1dXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZucpaahpJufoJqYra6trrKgpaKtq6ehtbCxsaynrrKnubOmtaGinpqjoq2ioam1qqKjpp2lpqOWmJ6XmJqdn5mXnZycm6yhq6ajpKatq7KzqrSwsqqyubSvqa+ysrK3s62prK6xt7C6trm9v7aysZSEeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbuxqLKvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+dqJyamqqmr7Crm6Ojt6qgn66otqmmpqywo7ewo7agopuYmKqmoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrai0q6qmrbKwpaqusrGvsK6up6ensq6xtK+8tLm2rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/wLnAwbrAwLm6vbeoqLG7pqmipYmBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpaaenJ+kn6qvpp+io7aooKGiqLOhpaekr6WwrKu0nqCdlZSpoaGUrLGwnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wkq6SlsKelo6urraWorq+uq6iqqrOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCvMPAwb28t7q2pqeytp6iipmIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWjo6KjoZuqqqWZnqWxqaCgnaSqnaehnqysqaitrKKhoZSXo5uckKupsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaCho6Wbo6uloqSqo6uupK2xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9yLvCx8S9v7e6taWrsK6dmoeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRho+RjpmTlJKcmqKcm6CnqKqnqqWopKOYpK6klJmlr6mfm5iaoJ6umZuqs5+lpp6io6CUk5uWlZKoqa2anKChoJqUkIyZjouQjJKMlpSQnaGgo5ybopWboKKgl6Koo6Koq6Crr6Stt6Wjo6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUFxZTVROUExQUklOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcW9w8bEvcGzua+mq6+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqmr6KnmZ+soJWWpKinnZePjpmdrpaXp6qZn52TpaCdkZCSkpKVp6qkmZmanZ2WjYyLlIaIjYOQi5KUkKCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynn6OstKutp7C0sLi1wLGtsauQfXByYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9s7u8xL7CsbSusa6xrJyiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1haWVlZXFxdYWqAen92iY6HkImYiZSUl5uZnaibn6qkpKqcp5igpZuSj56impeWhIORmqOPk6KclZWWh6GampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZOYmJWipZiMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NOTk5QS0ZOTktKTk1RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKttcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cISIgoeAkYOOipSRk52gjpqboqCjmKSWoZuVjYeYmoxzjYJ9jZaWhZCZkJONjnqYjpyMgop/iZifop6Qk5iWhI6Ck35+c4mNepCGkpCQnZqZmpCVj52OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oaO0qKWlqKOmpaamprOnpbTAuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVpK6/uLGwn6etrauWlaJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlpSOlol/k4lfO1dve4uTiX+LkYyPhYZyioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjH2JgJCNj5eZmJOKj4iciJ6Xh4eWnpqhoJenr6itqaielq20oqatmKyrmKezoamto5J9cW1fWk5TUVZMRFRKUE1MRk9PSUVMUU1LT0pJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbmxtbDJw7m0v8/AurGxuMSrrsmup6Oehpuiuq2nqJampaShl4+WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9peoJ0UEJAf5WRkX2JlIyEio2ajJaVipKIhpWGeYh/YEpRbniKkYR8hIyJhH9/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYd+iYiVio2QkpaLg4mHlISajIGEkpuWnpyUpKOnqaWjnpuxq6GkpJCmqpahqZyipqiIdGtlXVtIUVFTTElVTVNJTExQSUdGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85dracoqedn6Guoaeopaeor6yqtry2uLazwry3qLrJubepqre4rbbAqqKbk4OPmbKfopqNoJaZlJGLjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPf3V/eHNudXB0jY2BeX2JqoV5emh2e45wcm14gIqMknh6gHuAdnJykndndYSEhIR6lYmIioyLgH+Diox/k4N7gI+YlJuVkZ+dqJ6foJ6gqaWfnZiMp6SToJ+VnZ6kf3FnYFxcSlZPUUdLWFJPSkxNUkpKSk1QSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WelpKYhpSklp2Mg5eJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OXmZ2bnZ6inZaNiqSbj52XjpaYjnVta2VhWVdYVFFKUlVUT1BOUVZLTktOT0pRT0lOT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srqunqbCvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZKVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gmxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHOFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln1saG1ubVdVV1RRUVlPU1VUVFhVTU5ITUpNTktDSU5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYno6FjJaipJualJePdpF+hYuQj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJmRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnyGe3OMrY2IgGhmYmltcW1vg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouJkYuRjIuPg3V4i4+AfoKAfY94cG5ual5aW11bWVhgX1NOW1pZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbGuwbO6wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYuCkI16dol+iYeOc4qXj4N7XGRxdHp7d4psZ2lheW+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG1xcmRlXlpaXVNbZl5YUVVZXFZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8a6lo+RlIh6hnZrgIySg36LhZCNeYSCdaKGjX5+goBzg4F9bHlsU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIatr6+KgICTioKLgoSRqIeAmJiKnHNsfIGGh32OaGdneH5thYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fXFxcGpaW1taY2JXZ2VcVVBRWFpRRExMR09JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4elh4mAg4iGeYmLgHWFeV9jVkxDNjAuLzIyMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GUj4aJiIeJiKGro5aJjpiAe4KJenpvZ2t4fXd8cWljXFlZXGhcYWZfWk9MTlhTUUlQS0ROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSm46EgYKMi4KKjoSAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6YhJOEgo+hnpOZkoSKhY+YkJZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPkJeltqmbjZWig4eThH5/a2psfX59f3FfW2JeWWZqXGxrX1hLSFBTUU5NTEZJUURETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4GBi46JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfI0c++m6BwaaupnoSTkYWcoJqamaeRkYiVoZmad3p+lJiRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZGZqIiXkI6BiGxzc3t8eW5mXltfXmFnY19nZ1xSRUtLUU9JSk1GRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKho+QjoGDgImMiYWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4w7+3paOwsqytqqOKlpiFpaagopiCppmNoqqnpIeFk6OgoKqhpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK6ztaKVpqqJmoqSipV6e36De2VeZlpjYF1iYl5mZ19bT0RJSFRPRkhMRktHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLWutaCoqKOom6mwrbO6uLionLipjaWPkpOghnmBgHJXX2JVZGBgYV5fZmBbVUpERUxWUUlKSkVKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVWFVcV09fVUlLSkFAPkdLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7i6uLqtrbGmsaquvrC9vMLDrJm7qJWuj5iYq4l+gHloVWFfVmhjaGRWW2NZVlRKR0dMUkdESUpBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1ZU9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQzxENkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vMG8uLa8u7e+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrp56Vlp6Yn66lp6elnqOToqews6ixsry2wb3TycnTxsLFzMLKw8G+vr+8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxuXF5eXFVfXWdmU1lhVlJWSUVGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlop+gn+DeXuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlUSkRCS0tIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7a6tri5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6OdrKSqsKy3sLy41NDO1s/JzNLMz87Kx8DAwsq9wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVtcWVdbX1hhYlFcYVRSTENCRkdFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCLiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm10l62kvYiHZ1tvaF1aWVRIS09QSktQTFNRSExBSkZLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJj5GSnZuhmJuUloeemaaarK+or6ezs9TU1NbRy8/T1M7Tz8zFwsrQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/a2FaWltWXlZZY1lQXVhPUkNCSUVDSTtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG5kW2FgSlBSVU5ZXlBdXU1RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmnrK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJuYmZmenauspKeirKzO0tXRzcvS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVF5RXFlPUFRQTkk+QUdCQ0Y9QUI/RkU+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lmn+NsoR2coV3aWFpXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6FkpCdl6ewoqCgpaSoyM3Px8LL0dPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPLiG9sX1xcVlJXUlpPSkdJSkpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dG59doV1eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6Bg4mRjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaGisZyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ianKecpr3Dxbi2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHVza2FaV1BTUFhVRUdKSUZFPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9CPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot+h5KCiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnd3gmVpb3J2eHJ6i4ePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2Ih4OFi46gmZOIg4d+bJl5hJmGiJOMjpWMhnubiJOOraqUlZefmKautbyorb3Hy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1d2VkWFdOUVJbR0NGSUg+Qj49ODo+QDw+SD1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8QTw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoKBgoV/hHx9hJiOh4x/hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqCd4WhkIt5end7hIB8hHZtlJaVlpCYkYOJj5eal5emnZigl5+TkpejnpqrlpGRi42Tg4yFiYmBho+RnpyZiIWLgYWXeoiJn5ePiY6Ki4J8oYmQiruhmJOXmpyopqWtnqe1v7+/uMbJzc7FzcnR1dXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVUVE1LRE1DOz08PDk6PD85PUE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6i3x+gH+AfoV7foKRioWGeoWIfHV+dW18fYd+dH+SnZGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH2JhX2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWTjo6QjH+Qj46LhImSlpmfn4iMlJGdkIKMf6aZiIWOg4aEgKSGiou3l52RlJahpqCdnZ2jrra5tKvAxsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk5OSENMQz09Pjk5Ozo5OTw9NkA+Pz09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeYp7e4B8f3yIe318i4eCfnWDhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WWkoyTlIaAi4mSjoqKnZeYo6KGk52VoIuKiY6ckIOIj4CDh4WkhIuQspickpSXoaCemZKbnaeyuKylvcLHzcjGz8vPzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpVUVVWQ0BJQz8/Pjo0ODo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbniLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlZiEgI+LmYiOkKuXl6SjiJmelpqIj4eXl4qFj42Bf4ePpYiNk6ial5OWmKGYn5mTnJqisrSlo7zBvsfGxcjIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1tbTUhTWUJBR0Q7Qj44Mzc7PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aAg3xtbot/e314eHyEh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKGhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoo5yYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx1kZmylZakoYecmZKQi5CKl5uJi5aOhn2MmJ6JkJCbmpqTmJefk6CdlJ6boLGuoqO3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNdVE5HSU1EQUNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3ONen6CfHiGi4mGhJKmu6yosb2wpa2zs6ijorCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZyUlpGXoJiau7uuyqFqtrirsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlY2LjZaYk52ZtJaVq52KnJSRjpGSjJmbipKekIuJlp+hjJSNl5mdkpuYnpShoJScnaWuqKGks7iswsjEtbq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQW09ORUM+PEJBQjhAODg1P0c9PDU8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcLAr73Gu7O0wL20rauztoyosq6uvaubu6Wnrbm4q6amoqKko6mvsrGqnZykmZuYl5+ipqWSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl4+RoJGJlJukrJSWj5OcnZOgnZuYn6GUmp6npqSio7CypsHGw6+wurfFxMO/zabHxMfEvdbQzcTKhXBvXllXXFhMSkFLQEVHPkFAQzs6NT5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+rubuYs7e6ssCupcCkq6+8vaquq6OjnqerrrWwqpygq5yhnJafr7Wni6O6urbBvKypnbOlpKiUhY2qw8OkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWNkZWSj6CUhpefoLKelJmTn6CYpJ6an5uglJiepaOmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdRTEhCTEtLSkFCPUNEPDVBRTs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJmambq9x8jJwdLJy8LMvcKzrby+qLrAvbvEt6zBqayzvL6qsKqkpaSsrrOttrWhn6+fpaKYo7O9qpuovcGktrivrJSyrKysl4aaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlKOeqp6RpZqMj4+PlZaIfI+Vk5KjmpWfopy1pZCelqSjoaWdnaaYnZWXmqSjqaeisqyou8DDr6Wzt8y/ua/Es7u+wbiswsPCwJdqdl5VVFlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf36QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCt7C6vLS9y7vDwra3vK2zv7q9rq+ooKmotq2uqbK3mp6to6ehnau3uKqlsL/Esr25tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfs6WVoZWrq6mmm56mlpiWmJSho6ilnrarqbm7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtXVFJTTUVJUkxLP0FIRUVIR0c5NUZNOz43PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs/O0sq+u7axuru7vs+1w724ubezsbWzuLOrp5yrrLmqqaevsJijr6Wno6W1wLCsrLS/w7rAurSnura5tK+Wpa2urqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6CgmYqNj5WcYEqWnJqUmqWWVJavn6+cn6SUrq2qpJqgpZOTmJiNnJ+nopm0qKqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWpiWVdNT0pET09QUjtIS0lHSUNDPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52hmqOktcm1qcW5wsPIysjIzM3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS0qqmmrayapK6lpKisu7+orLa3v8G/vrmzssSyub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6mto6KepKeRkZmch5Sdop6Wsaapq7m2vbKyrr65tqCjp6ilppybrampi2BiXl1OSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSfjJOrm5GSk4mrjYahnoyjrZSjo7bGvrTAucLCx8nFws3Iwb65sq+5tMDCybXGssK8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trjCsr7Btaq1tqu+pY+jmJKioLyfiZqgmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uWiYykoZSdop2gtK+lpJKvq5mqqpyco6KokJSUn4KPnp6blamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl1bSEdFRkxQSU1FR0dCU0xKQkVHQVdTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiZqZyWmpqPqpaVp6aVrayYoqu2w8O8vrbBwsDHxL/Nxru9ubKwubO/wse1v7C8t7m2pqSrq62goZmqqsSipKmrpp6sr6uiqam+uKetv7K4t8e2tbm4wLLAwre1s7SvvaOXo5eUnJSun5Cio6Wjo6CQvaWpnamrnJyhm6WevaGZo5+iqauhnZeNlZ6TnoePhI2Tn6SgnrWsppyVsKaZr6WcmaicnoyYlJ6DjqCZm5KlpJqXq7G1saqlqq6sm5igoJKPkJWonpRlX1dfW01IR0lOTEhFRElBPlFJQTxHSUlcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfna6gkqOflqSgpqmsmLaxoqqztsXEvb+1wMK7yMK+yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+praCkqa2voaaovbWmsb25t7bEsrS4ur+0xMG4ua6ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6uspqGajZqfkp6Jjld/lp+loaC4qqeTmLSinrGfnpmulZ2NmJOcgY6fl5WNoaOVkKWtsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LR0pKTkZFQUdLPz1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02enqGZn8SopaG0op2zp5OrpaCjn6yprJ27sKistrHHxcHCssPDvcbEvMTJvK+wtq2wtK++xLS5sbC6tKyZqLGpqpqdpaGnwa2brLGbqqOusKmlqby2p7e7vq+3xK2zs8PAtMe0u7ess7atqqKmlpWVpKyin6Cbp6qwr6+7saagqaiamZiToqO4oKGjkrCvrKWmn5KhnpWej5CNlZ6bop6ntKemjJeym6KtmZyarI+dkpWSmX+RoJWOjZ+gk4umq6+kpqKcoJ6RkZqThYuRjZudf19jWWZkSUhMSVNBQ0BJSDs7Rj85OU9OVl5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/yMG0q7Wor7isv8Ozt66ttrilmKqyq6uYn6aXrbu0m6iwmqygrbSyqKu5sqi6tLmzuMCqt7LEvbXGqL+vrba1qaesoZiXkqaloqKYmKWuuK6ytbagn6mkmpSWlKSgt6KlpZavsbKnq6ainpqam5WXqJ+gmKGer7KipoyXrZikq5aYnaKPmoySlpiFlZ6Ti5CbnZOKqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1tqaUxPTU5UPUJBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6OjnaGmv6enr7GiqbWrnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMbAuam2pKy7rcDBt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptratvK20s7m3rLixw7u/v6bDq7C2rqirq6eemJmroaKhkZihsa+zrLC5mpupn5qXk5inoLappqOisLG0rLOnrJ+coKCbnqWcopedo7Ovm5+Qk6SZn6iZk6Gdk5aIk5aSlZackoiQmpiUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAOztJQTc6WFBkXlBXV0VZX15NTFJOXktKPlljXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iqrCspLK5qqa2tKygrbW9r7O4u7q+t7bAwr/JxLnEwsC/t8O9wLeutaert7G7vb60qa6xtp6Wq66nrpemqI6nu5+krLOeq6KxsLOsqba0tb6usbK1rLC0s8G6xbesvbCxt6usqqOypp6lqqCkl5Gan7Oqs6urs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZeZkpKdmZ2fnZCqnJWWhJSWip2Ym5OKjZaWmpampaOfnZaVl5J/j5SFe42SgouVZGtxZm9xXkZZZ1ZEQk1YRFo5SEI2Pl1RaFxOWl1HW15dT01SWGRKSkJcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtbunprG3xbextr3Bw7W1usS+zMa5w8C5vrnDuMC4srSrqbq2urm+tKmtsLWXmKesqaybq6uOq76eq62yo6ugsa6zrq21srm4qq6usai1r7W7vMqzqre1sbSvrqahtKCbqK2gppaWm5qyo62gpq+XoaSampOOo6Wns6qhprOtqrWlr7K1r6SZnaynmpifmpmrt6OXk5COl5ygl5aTqp6akX+Sl4ydm5iVkIqUkp6ZpKKioJiWkpOVeouPhXuMioKKkWptd2x1emFGYWtZSUdaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqspqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2+v7e+vLG8rae6ube1wraqrbG3lJamrquoo7CplK+7pK2xs6eoo7K1sbGwtbG4tKmvrLKnt6+3tMTGt6m2tqywramno7agoKeyoaSVnJqVsZ6nnKCqjqmjnpuWmKampbioo7K1rKixp66xtaylmaCsqJucnpyUqbiblI6OipebopePl6SgnJOCkJSPnJuXlpWIlo+XmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEpOY1w+YntHSThHZ1dmXExeYk1YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v766vryyw6epubC1tb+8rqyysZugp7GtpqavpZ2yta2qsbGsqai1u6y0srWttK2qrKisqbitsrDIwLmlurCprKylqK6xpqWjr6SpnJ6dm6+ao6Ojo5GtnqOgoKKrpqa5pay2tqWrrKmtsLauop6jqaqboJubkqOzmY6KjYeQoaCUjJScn5KQg42Skpyal5WUh5eSlZmnm5+ejJKRjZB2fY2FfHt8hYiIcHJxfXx9XFNkb15OWGZcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaSppbO1srW2srKhq669zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SmrLarsre7wK+rsayfo6etqaiksKOqsqqwq7CvsK6rs72ntrCyqbOqq6Wlo626raqyw7q2rbupqaesqaexpaqlo66qqKKfnKOtlaWemJ6ZrJ2ip6miraakrau4s7KiqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlYaWlJOXpJucnIqSkI2Jf36HhXx2foWDhHJxcIh1a19aYG5iUXJwXEs7hHxGP1h1WGBaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xq7PDw87Pw76/tMDBw7m/s8fDqq62rbK4vr6yra2qpKeqsKinqLGltK6qsa6usrG0rLS8pLezrKyvqKufo56wt6uqrbq3pbe2pKqnq6qqraGpp6eysqSnpaGhrJeqoZWboKaepaKrpK2in6exuK6upKajm6qrrqmdoqWkpJifm5aPmJySgYKQiYScn4uKjouYjY6JgouXopuQkJuMk5KRk6OZm5mKjouLfYaBgYN6c3+Cf3xydYukh3hrX2BuZldkhmNOP2eTTEVieVdiWFJlVE1WVVZUT1xdYVVLTmhWVVZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Cmo6uxmKuqrbastrKspqyqqbzAwLe4sru1pbKvw8nL0b/Au7m/vsG4wbnAxKyxtLGzur+9srCurKqrqLappq6vqrmwqLKyr7Ktt6q4uKaztquspamqnKOes7OpqKS0tKC3rqCqqKqoq6egq6ypuraqqqmpoqqgrZuSqqGdoKWipqOqn52ntK+pp6ujo5ilp6eqnKKko6CZmKCRjo+YjX6HjYeEnZ2Gg4mJjo2Oi4KFlKKajY2akZKRj5Ofl5iWjIqDf3SGgX+AeHSCfnh2fYCHnY9vcmdmcHdcYHKHak9emVZIbXlUZFZRY09NVlRVUE9YW2JVSE9pVFZTR09YVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspa2wtLWwrKawqqi6vrvAsK25rqG2r8jHyNHAvr27u8G9usK/vr+tsbGxtby7wrGxs6qzqaS0qKWts7O5sKOuuLKws7usurCprbarqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoq2tqL2vrK6toqion6yZkLChmKKhqKifqJuZqrGqo6CuoqGUo6Ojp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioWOi5CDg5OfloiRnJCTkI2RnJSXj4qGhnd0gX98dXh5f3lycnhmf4akdmlfZGmAdGaIi3xTWG9eSnhzU2RTUV9NTVJaZk5NVllkWEdSaFFRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glpq2kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusC3r6+zsbm7uMCysrqsuKyitKeorLK2ubOoqL22rre+sL6nray1q62cqa+joKWtq6icnquzpbSomqqnqaOonaOpqKm+q7Swrp2qpKGvnJuzo5aknKWmoKWcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Og3+TmpOFk6GMlJGLkZuSlYeJfn9ye3p+fGh4fHlzbm97ZoR4hIlkYWdgcoR6bGZ4XV5UP1d7bFRhUFFZS0xOcnVdSFpbZ1lFVWVQRD5KTkRDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OURXPSqQlbKaoKCqpqWhq6W4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtLKytLG8uLm9ta25tb6toLOnq6uwtri1rJ+/vaqzwbS8oa+ytaqsn62wo5ymqaqknpulsKewoJ+rqaehqZylqaGtvKiusa6hq6Okr56fraaXn5qhpJ2fnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlIyIe36LhY+Ni4mEkpiQhpSjiZOSh5GakJOBiH15a352eXhjfHpwbm9xdmd/c2mEaGVnXmxzjWxgaW9gbz1aeGxVXU5QUktJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJmtmqCYqKWkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i/tsK+r7S9t8S2wrGtubGzwLS6vbeoubi9qqO0qKmqsa65saucvL2lsMG2t6KvtrWnpqews5+epKaooqWZn6yoqZ6gqq6moKaYpKmgsbmfo7GvoayhraScp6apmpqbn6WWnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLl42RfYV8c3B9cXR0YHp4aG1vb21ofXFie21pZWJcZIR+XllzanFKSX5pWFlNUExKSFBSUUlPXV9uU0RYWlJoTkdLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl66hoaGlobirsqW0tKmoucS1sq2ft62urbC0xsjAtr7BubC0vLa+u76vqr2wtL+wvMO5qLu6t6entamorLGttLGom7+3pq69t7KfsbewqaWnr7GboaSgpaWgl5uwp6Geo6ivoZ+hk6Wlo7ewoaaxq5+so6+YnKqkqZ+Xmp6llJudm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6j5aJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeMj3mCenByd29vdF95d2Rqa2pnZ4JsZXJra2RnV2Fyf15Za3VpWUV9XltYT09LSEhSVUcyOl9ebVBEV1VZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS47MV5RLDKWpKOYlp2rnqaho6G4qrChu7ilrL3Esq+uorWvra2vtMTEvbO+urews7m4uri6ra2/s7S4rr/Bt6u9urSlorOrqKqzrK6yo53Dt6aquLesn7K7qqelqK+rmaOnnKWmlJihs6aZnqSpqZyhn5SmoKS5qKSnraaepaGpk5+poaGhmZueoZObnZeho6ycnJujlpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWVk5KMkZWUjY6Ue4OXj4p3f3xsdXJtbHNieXRnZmlmY22EZmdoZGZnaF1kYmllWmV6YmBQclRbW1JLSkdJT1NAICpqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6vDwLavrKK1rqevr7fBwL2xwLaxrrK2tbm4tayqvLOvsrC9wLeuvLywpJ+2rKamtaqrr6GhxaypqLK1rKy0uZ2oqquxpZidqp6npZKZpa2jmJ2kqqGboZyYoZ6nt6avqq2hoZ6dopWgpp+ioJmcm5yUmp6Vpp+uo5iYn5aVjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiHt+hYiGhJCDlpWPj5CRkJGNknuDlY6Fc399Z3lwbGtsZ3Vza2FnY2Jzf2FjZWZlaGhhZW5ZXVhcbGNhTGdXWmBWSUdIS01SWD45YGxpSEJVU1xbSEhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKMrqGamaCXpbSyo7K+t6Gxxbu5sLCjtqyrrqm5vr27rcCyrq+utq6zubKnq7mwr660tru2r7m+rKadtaugobKlq7CfpsWhs6awsrG3rbSdrK+srqKZnaeqpZ6Vm6emoJmlo6icmp6blZ2drbCmuaeuoqGamp6Zn6OapZ2Xn5iblpuhk6qXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiShZSckpGQkJGXj5B/gY2Ogm+Cf2d5bmlramdxcmtbaGNhcX9gZGdqbmtlaWVjbFxsbHVwYVNiaGNlWklGTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7GdnJWhm6mzsJ+4wLagtMG7vbmxprawqa6luLq4uKy7r6yrq7eqtbmtpLO1sa+psba2sbO2u6epoLaqnp+qo6qunazEma+msLG3tqyrnrCtr6qim52krKmblZympJ2aqqOklpqgnJKco6yrqbqepqSgl5qanqGPa6OWmZ1xg5idpYF2kqypn5aXopKKmJmAl4qfjniFko2DbWl+d4RxbIaKhn2EioZvXWRgZ4SYhmuLkJSSdXiLhH+DkH9miIBodmlmV1xpdG5OUGpjZXGDZl1kZm5raF1bXYmQhYdoTktDOEVUZ15KSFBQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05bS1tmYj5HMU5hPCsvjqSaiJaym52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0s7Owua2pp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7C1ua2to6isq6uloZ+coainm5ihpaacnKeonZOen5mQn6irpLSvo6KjnJaYmZejiKGPkpuIoYiVn6KApYCorZ+UlJ6UiYRyeIyOg4igdYeNaZeJZn5zeKBvh4eEfox8f6Ggn5l/fIefdIiOdpuKbIeCg21oZGR7bXJiVIZtY21pmHFYaW9uhlddaFpralqIcGx5codoh4RZXkZOPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOW0xbZ189SzFUXjcvKI2nmISerJ2amp2fq6qoqr7Dr7K5vLfBv6qkt7GqrKazta6vs7arqaWxraW2s5ustba1paaps7Gtsqiunqqhs6mgpKWboqWesbiVpqent72mrKapqaynpaGfmaGoo5mZp6OkmJylqpaUopyUk6Smp6G2pKOfo5iVlJiUnIiukJiViqqMmaOdhrGBpa6flZuhl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGubmVpvJK8bmh5bXGP2H1Sa2K2sn1+cJR1mqGqkFZOV2FPVk5GVVxYUFBTi1tXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQUUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWls0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW3v8KrprSuramosLWqr7a0qKimtaWoua6csrK2qqWkp7KvrrGmq56npbKloqKgl5yioLKvlp+kobW6o6mooKytpKKdmpqjqaCYnKmgn5eeqKiRnKeblJ6ip6OhsKOen6OWl5OYkpmFr2tqjI6qf2iFloetZnGfnpWbqZdxrqGkfne6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aBWF+Lq2h9j3h6aqg4Sq9bWFRsY1pLT1hfXFZWO06HUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npp+jpauyuK20vb6wt8WyuLrDp6mwrLCpqrGvpLG6sKSlr7OjqrmpnbKysKOkoKqtsKyvpqifo6KxnKSemZaZnZ6wqZicoqC1s6Gqm6GtrZ+dmZeho6mdmZ6loJyZoaikj5yimpehoKyfpqagmp+hlpWRl5GahrWbtXmHqZq2mXeHs5u3f5SXmKyXf2uBpnqBhYaRlJJ3q2dqsVuse46HlHSJcI6GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKShl1QqW5jcHqFgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtFLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7fCsLzDrbm2wqusra+vqK+zqqKvvKuiqLatpKy1pKWys6ijop2nqrOpsKimn6CgsJegm5aWl5ugsKScm6Sota+hqI6pp6qbnZaYoaapmp+do6CcoKOlo5abnpianqOrnKaanJqioJeTkZOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYaigaWCeat5j51Wr3uJfp9quVq5d4aEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcoZrlodeUrW0yIV+iHxjpDNCnXVdUGpoZFBAWGZZZGFKR0xqSlpTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbWopLy4wbC6wLK3tL20tqiysaSys6egr7apm6i6rqSwsaGytLGhpJ6eqKmxqbSpppyen6yYmZmYmJaYo66fnJeorbGpo56PrKKnlZ2XnKGmoZiioaKhm6KiqJyfoJ6VmZunoZynlZuan6GYkJKVkJ2Ism5otXKsiHCPp3K0dXS2e5yZpo6QnY2jfo+eo36wdYKQ0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOFYZaIXVnKnW/AgHRNS7VTVcZkVVFqY2VYQU9qX2xpUFVGSDk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam7raa1pai2u7yzu7+4t7W8vLSmtbWjs7KkoKywpZinu66lsrGdtLiqoKWdoaqlsqisqqWanZuqn5aWmZmTlKSropiTpquxpqGVkqufpZKUoZylp6CVm6anopujn66aoJ6ekJaco5+dpZSdlZmjnpWZlpObhax8eKh3o4+Lh6pwrouFqISamqOLk5qLon2Sl4euhH+Bs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ2hmeXiGpdr3eVn493bDV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKC3sZmzwa2osqeqsrq3tbm+ubizt761prm1obatoKCprJ+VqLasqLGyq620pJupoKCoorWnpqqkmp6WpaGUlJ2akpakqJyUkKetsKWglJmon6KPkaKaqaahlZqmqZ6dpJ+tnaCdoI2Un5yfoZmYnJWWoqCUmJGmnYapfn+meaGPkISqcK2Ng6eGl6GjipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25kT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqavq2Ys8Guq6yop7WxuLG1v7m6s7K5vKq7tqGypZ+mp6eek6uyqbCqtq2qr6GYoqCmpKS6o6OsoZeckqOglpWfm5WZoaGRjoypsLCmnZaap6afjZKkmKirqJWYqaifn6CkraOgnqGOlaGZoKCSnJeblZ6hlpePq5yPrm5ytHSpjHeLpnS0enW0gpSnpJOdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWWJcYHB8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqjnLHArq6rq6i3qrivtcG1vbKxu7iswreqrKGcp6SinZKrq6i2o7Oorqqhl52ooKWruJ2jrpyWmZCmo5eOnqGcmZ6fkZOVq7awppiTm6yployTppqlraORl6uypKCeqKywmKGikJmhl6CblpuXoZOdqZ2UkKuZh9OUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F9jHSHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteG9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExcLTZAOaean6K8o5eww6+tqqqtsai5r7fFsbuzr7ywrsGyraajn6SinJyRq6WqsqW1p62kn5aaq5mnrbido66ZlaGRpqCTjp2jn5mfmpCWk6+5sauVlqOnppSQlqWdpK2fkaCoq6Ccn6mksp2ipI6moZWhmZuWlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCBdJG5g3yGhouGjHuKh4yXfaS7ub2cdXmzo3R1l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lseWKLrHB0hX5YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorKuqu6+xxq+1tLC4qLW5rqukoqefoJ2ZlK2lrqqntqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ2jpKKLk5KmnKarnZappaadm6Gpp6eiqKCRrJ6Xop6Xlpidno+wqZScp6KPa39qnKl5iXR/m492e2aIe72+wLpvkoNxlIVfcmpaXpuJYWOHj5ZsYH+UY22cdmKVbICZlZRlXmBjcZqJaHKMe4aUZmp+cHR4fn1iW3h0gWhQXG6EfHyKaldseoFySUpvhXBOck1EVlxmYExaV2ZjX09abXZqclJPRERNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl5JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocGkmbS5tqOspq6nqLWyrMissLSttqS+srOooaSqnqOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJqmnaeiiZOSqZuopJycrKCjmpyjp62in6mhma6blKagl5Sen52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY+KjJiXiJSViYOTk5CJjZKUmZOZl5qfoZqblJ+bjYF5pIVsaXuQfYB1iYuCcoJ4eXZ2in98iWpzgXSDdWR3fXZrb3lsX2Jbb2dNWFlmal9XWXB6b21mU09GUzlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6awtarJq62yprWmwKm0oZ+lppyllpWhq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaOfnqOok5CYqKiyw6+Zqpyqno+Wlqmeq5yeoa2YoZudoqWvpqGkp56smJalnZmZoZ6enbChnaKnlpmUmpSho5ekn5mhjpiVi4uOkJiuj3yVm4KRgYmpqIWAmJaLhI6fiHuEkYWFmpGHhoqVj5uXjpCYnqOWmZKQnI1+jWWhs66EiYR3e5CKfnd5em9neZGAgYhqdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD4/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvq2qrbGyoKqmsq2jrLOwxbCrraSzr7yktJyhqKOhnpqXqKappqSms7WflZWempqwpq6+oayikZGempqUkpainJepnYSdqaujtMezn6mjqpaWmJqnnqmcoKWslJ+fnZ+qrqikoqugq5qen6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aFk31lf4+bkGN5jGxoanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGid2tqi5mjn5hza216hIyGeVhlXYWBXmyLioJ3XGdzd3eSgIiBbneCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4hpanxxbWNdUU5WSWRYQEkzPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vbmvq7Owq6Wora6wp66usL2xqqilrrCwoK2XoaSeopqapqycraSmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Whpq+enZWeo56jnaSqqZKfoZ6gqq+qqaKqnqabpZ6noKuWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGjeqaYmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBe4F6kYyawsB9aqWyb42Bb8p6f5t4koSPgHZ5gYB5cXuAhnB3hYuSeGx1kWJlXndjX2WAYl50aG1kYlhLVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWiucO0r6+/qamUo7CqsK+uprK1r6qmp6axq6CrmJujoJybqqeinayjpailpbSknqOTpq6tuLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoKivqZaRn52imaOkqqOToaGenayuqKqlo6Gkn6OknK2pkaSbqa6qnJ6rna6jl5iml6KkmJ5/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Qdnvbe3+ZcX6Ik3Z/ZXuIdXZsfodtfYWPkH1rgIxfcGpvZmBfeGRbcWhqZGZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc6U0wrLC1KMCc7WzpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21q6ayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapqJulpaKgqpKss5aloqqqnqSnp6KyopObp5yhnJaVkZehcoaMmHaGqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoiijJGLnH2reoiSj59/eq1WnMR7kHCSwX2BlW11cIxtZndlhm9heG5yboiJj46DbI+NY21zdW9gZm1kX29pam5mY1dTXGBaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrZudp6OvrKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGnqKibqqejoaqar7GiqKuuppqnq6urs6STmKSnnJaThaRrpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF7o5+AfMSwxYxzr7SzuXJiqa/CdGiLi5aNgGuXkG1reHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtLCwqa2jp6eqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK+hqZuclpWnpJGboqifn6acsKWiqLGstsextKirqZWRnZ2hmaCls52aoZScnqeqqqKtmqqmoKGporKsoaqzsqKcq6mxsLillJelqpqdk32qbZ+DiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vX2+1Y7F1S6OGbadHg5Nkjo+bkXtvlI98bXl0fHptW2VqcnFmgGleYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpqKcsrmsq6Glm6imqqyppqCmpZiro5+vrJ2moa2an6mlnae1oKOYlKirtrOsnKacoJaQpq2Smpyno6Cqp66ho6epsLPBsbKprKeUiZidpZuipK+ml6KVmJylpamZrpyrpaSdq6O2rKGxubCenLCotLS1ppaZqqacoZCDnk53moKAnnqEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSnfq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY2RoZV6fJCOh3J5coR+b1tsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWlr66uqKeepaWapKehs66iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWgoq+tnKSoorWxw7CtqaypkYaRnKedo6ScpZeemJiZpaOnmK2hq6Kkl66lu6yit7aunp62tLqztaiaoLGkpqCIkNK1w7d5h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYmffZeZh4eQc66CpZujjaaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfqBic7K4aHeOkqSXfImKj4h1e3iNgWxod2l4c25/dFxkZG1tZmhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYF9dWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraiopmVo6qnramqmaWin6agoLWmoqmnsaSUq6OPpK2knZCamqq0tKSdpZypkpSXr6CgnqajnKectZmgqqO1qsKvqKqooYyEj5yioaajlZqanJiamKajpZepp6ugo5uspryslb2wrZ+jsbW7rbapnau0pquafKiRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zlourd52gj4iTkn95r12jgXymp2SegHyXdWquXaVscoWZXWBbjKBtlI+kl4GSipOId3mBln5pbH5ifXRtf3lfZ2Vwb2dnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpuEqcbDt8G0n5qtoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZaKmpCtsaynoKibrZiZj62ioZ2loZmknK2Xn6iltqi+rqSpo5+Lf46bm6CmnpKUmZuUmZmlo6KYp6uqoaKeqKe8pJfDraujoq20vK2wqaO2sautmnevfpGLnIaHfLqtiZhksIxllq59oZCEp5ecgq2LhbCGqJqkoqKRhaBcbGuCs2B/rXx7goGybGZumZeLiLFafbRbpINryKJmn4F8u1l2tVqyfVOvgXqsWIChbZeNppiIlI2Sk3h3jJt8Y3N8YoN3dIB8YWlmb21mZWZPVWNcQVRdPUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiZuOr6ypp6Oomq6Tmo+pmqGdpZ+Zo6KlmJ6iqLGou66kqJ6djnyLmpahoJmQkZqckZmXqJ6fl6etpaOkoqSpup6gxqemqaGstreusKmhv7CwsJiCqpKjr46bgIakl5iQgIC4w7qEj52ThaiZnYOsi4OviqmdmqarkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7G9rHl4or67dICVjKSZjZiNk5l3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHCQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxwLmyvbOina6nprOmnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKusqbisp6Oal5J7h5mRppuSj5CYmY6Xk6iYnpaoqJ6opqCiqrqeqcWjobCkrLS1rLKso7+rsrKcdXaqpbeGZYqgcGeskIqPbm53pZCboIJ2sZuXcJGOcpeqpJuZr6RybG1tZot4b22DmXGAemlwaWeJlpWXcWhphYZncYZkXYpjaW9aXWd+eKZgYnKQknBmZICNko2glZWXjZKaeoWNk3RkhndnjGp4fnlkbGNmbGJKZFdJalk6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srSqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZatn6aqop+ko6CRi6WSppmpmZajqaCWnKWlpq65qqyZmpOSe4SXjaaXjZGQl5SNl5Smk52Wp6KZr6Wdoqu5n7DBqKW0p62xs6ywrqq8p7G7mIyiqaa1nImXo5iGqZuQlJ2SqrSanKStorSYpKOfoqOeo6Wil6ynjJKTjYeTnZ2VkJmTmJCNlYR/pJqXlY6Lk5KKkIeEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46Nm5Gdk5STnYCFkotwaI92b4l3dXx5aWtkZG9jVWFYQGlaR2JfTVgrRT0rJiE2NDAvHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t6+uorClraCgtrGRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4uIiY+cp5atpKGaqJ6fk5Wkl6iaqZmUpqCjj5qnmKC0uaeqmJqQjHuBlIyhlIqVkZWQj5KXpI6dmKiemrSjnKart6ivwq+kuKewsLKvq6y2vaOywJqTp6SmtaKSnaefjamfjZKfoq2xm6Kks6uzmqajnqasoJ+enZitnpOaopyUkJermY2YmZeQlp6Rh6CelJSGk4yPjZWMgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkJaQnpCZkp2BhpaFeHGUcnmJf3F7fmpuZF9waWBcX1ltYlBgYk9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJm6KQr56klqigoZKXmZyui6uWj6iZp4yYqI6duLWjpZibjYh5gpOMm5OJlZGTkI2RlqGLnJ2nnJ23on+DrrWisLB1pL+ks6B5e6Kttb+XeLCmoYqAqn9kXGJ3oI6knoOWfm2UtZ2kqbCspWagoZR0epuZcIGZqplsf6SpimWcpZyRl5iXi5KbkISdm5CUg5OHjo6SioV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2eOjHF5oZWVZHiXhYB2l2iCiYJueX9rcGRfdm9ra2dbZWNhYW1RWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamuo6etpZKVqrSusKWZqaWql3OLnK+gqKunlJe5oKCPnKSekX6IiJqejayapJWnop6Ol5KehXWuj4immqiRlqOIm7mzp6CYmIuJdHaSjZaTiZOQkJSMj5OfjZmepZibsZWAjJu1nbSMko+9qKJ+p6N7pbG6g46PqJ+EjIaPsamvjIqWopp5gIushp2eo6mrqYmWh5p3pZx7iJyBmKeDgXuds3uKhqCYmZSYloGQlpaDmZpieYiRhI2PkouEbnGQiHqCcYGBhoCHdIiFl5N4lmiTdKCac3uZgpuZhJh+kYiBgphpjIyEanh7cXBmZXhuaWxqW2RpaWRxWlxHU0tRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqqWZk6zEvK+glKWntJ2Pg5yrnKeioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpKOhXB1j4mVkIqUj46bi46RnpCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsoapjqmZjZ18qI9ye3ecjqaWaJWkebSMoaCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJiAjpSciZiSi3yFlIaNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGdl4CZgIqMg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmaldkRVxQTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqaummpSeoaSpoZSjqbWir3+gpp2lnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+MdpubjqCRiJ6jm5aYl4aiuKylmZuMjH5ibY+Lk5CMj4uMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqGNrbKIpI6sm4yafqJ2gJmUa4GrdU2reIeNnZOcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf417ZGeLc5l9eZdsXHyXbmBTcYVcYG16hGBZZYJ+hYGZcaiqa4OjbnKlb5+Bm2dknmxabIh6ZVlfgn5hV1BvdmVudHFqam9daW9samdXZk1cV0U4QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deXmN1YE1FOk1OTVRiXFtmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauvopmWnqClq6ufnK20oaeRoJ+gp5yZjpm0mZCLnoyVi3WBlJGNiqaWlpien36ThYWso4eckYqYqJiZmZGHpa+mopWZh4mAaW6IiIuOjomKjZGLj5Ghi5Kdn5qhpX+TgY+joZSgd5yWkKeDo6mAhqywh6V6jH6Emn2icHOTh5V7nox5bYeci5qSnKqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzk4iBgLaoZIHGuHxxlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xyo3Kegn2jXpyZs5Vve5ees3RyW56ygmlicHR1cWhvWGprcXBkW2ZcYUtDPUQ1UUFZcDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZV2Bge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBjY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6SsmpqxrKuSl6CZoaWZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYqOqKCGmI+KkqKTm5qMiqinpJ6PloeEfmt7hn99j42Di5CQiY6Tn4GVm5+boJ+LiXecmKKNoHKhjImpiZ2okZiqroGujH56oJl5o5N4gHOXiIycfZWfh5uOmp2oiKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg56Dc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI1+nmyYj2qmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd3YV5jVmFBUEVON1ZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhZHxpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWdiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKeqnZejmqKfmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeouElqSciZWQhoudkZybiI+ooZ+ai5CKgIBpgYZ5f5aMe4iNjoeOlZl9kqGeoKGTmHJon4qgj4xwko2CqYmaoaWqoqp+sK2koriXdqOzoqN/iJR4nXqqmX+ij5+dmYmYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyaf3SqWl1ve5eMeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnN9nW1wfJRvmXJpo12VdkhlY2BzcH19bmVfa2d1emJiXk9dVlxUVkBZRVBmRFJWXGFYXklEPUI4P0I6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhobGmUnYGxrpqEVF+hp7S6s7OpmqKLmqmbm6eSoKujoKePnp2dmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKBiZKhm3KSkIGImJSfmoSOqJuZlYqKinyDbISFcYKhjHeEjIiGkZiUe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgf6doeG5+mXOgc3F8nYWYb5OCrXykhKefm4KkcF6paHajZHCmYZzTj3x7mXhyc2OihpB+onKjkHZrkLOLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmyb05h5gZpudnmXa5t5dpdybKmlZ19keXF/hGxoZmNtdXZmXmBRWmVQUWFIVklUX1dTW2RqW2VQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVqU2R4eXdJRkVjXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt/qrCytbCzopyYhJemoKCijKSnn5aoiZmYmZSZk5Kgl46IhXtwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjamZk5KKhYl5g3aIgG6Bn4Z3gJGFh5ihlXiSoaOZn4mzoaK2i3qsp6SupXCpgJuRhoGelH6lgaOahphxnoSira+Jl4t/jKSNlYOvo5V3tba2yaJzlIyDn2Gdl6lteZaHoJt1oYd3oH6QlouBb01mo5JxmohzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h9eZxqmpmrc4GabHN3l2mZeXSXcVBEfbNeanVreIZma2Zic3RvbFVbUlhnT1FnSVVMWFJVXGdrblVnV01KQUlNSkdKTkFRSlBkY2ptZXVzc354e250iXp7VFFObV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKdibCohWU/lKKyrK+vtaGij3+Wp6Gho4ukppybpYKZl5eOl5CQm5OOiIN5a3mGZYOMf5afeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CIeoB9i3lwkKCFeYGUhoiVnpR+k6Smm5aWg2dueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gYmUlY+5bY+KomJ9maOXiW5za6trdaBub6Zhm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiIxxfIB0cmSlbniiY2anZ5dxi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam5RVlVVZVlTbElYTltIV2hocmpZa1ZQUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd42Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWpsLGln4t/lqmcnaOLoaGaoaKAlZmTjpqPi5eQjop7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBiX2AgI5zaY+lg32FkoyHl56Nh5GppZ2JpniWm36liZaMspmekYSvl5+leZiKe6l1qJCEmm6looyShIyDvG18pa+Ch4WHlZeeon6mfHKolaGWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGeZh3WsZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp9bmdsUlRYVGBgXGtMW1FbSV1sbXZfW3FZW19aZ3NkbW9xY3F0YHd6fnlyeYNzg36Be3uMgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqqqeqKeto5iIgZapmZ2iiZqknKichIyaj4ackYWSjYyMdIV6iINvjYV+l5NzdIZykYNuf4uSh4aUkH17goWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJueiIuSqqKgj4B0lJeIfoF4lK+kf4KccY+GeZOOhoF7c6mNcn19epeWm4SNeHt9fYiUlZOLd5GZoaKFe3+KbIyGXHp5c3pxaW5+k4pxgHSCj5STcYaEgmWNf1+BgYx4dnOUdXB6b2+Jb4WGX3dpeI5mgoOGj6qcf3R9lmmJiG9+dXuCdG1sZoxzd3uXd4Raald5j2lud3Jxb3d4b11rhW5oZ1ZZXlZcZGpjVWBUXVFeb3d5a2p3ZGlqanV8cHF0c2FvdWJze4F4dXmCdX+Af4F5i4WCfXttgG1keW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6ekmaSdq6Gfg4OWqpCdn4iZppqomIKBnIt+lpSHjoqJjHKCfI58fo+Ee5eOdHKDcJWGfH2Si4aGj4Z5foCGmKOMe6afioWPj4SVgoaOmHdxhKqFjZGcj4eenYaLm6efoKuDiY2Vm39+ipetqJCTqJF4cZ+ThX2UcH+rh3F+lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjYlydWyDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8hI2DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY6CbHaKgm6CindtZGVjeYJ6lVpbaWZtdlt7eXd0bnNyg2ZcbYlra2JZWFxZWGpxWl5gWV1dZHJ9enRvdGJqaml7fHF6dnRkbXRobHt/dXp9e3l6gIB/b4aJg3t9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfn5iemaihoH2ClquMn5OGmqGRpJV/e5iFfJKZiYiGhopyfICLdoWLgoSWinJvgHOYhoR+k4ODhoqCeoCEipqfj4Gln4Z3jpeIlYqLnJeEg3msgZCXmJOJnZyGh6GqnqKio4uIk5udo5mWq6Kop6GTnImZkX56kJCGqX+Ak5GSk5yxpZqUnY+NsZKYhKaNjZadoYqRnYSJk4tsfY53d2aChpGLfYmehYeLj4iIgYWEkXd8e3WbpIqHi6CMh5Z/gI2DgXdxdYaEf3iJiIuRp5GEh46HgouPinqDiIaMf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+GZ25fXllaXFNncFVjW1tgbGd0e3tybm9jamlof3tteH5waHBwbGaAe3KCgHd/fX+Ee22DjIV8enl8fnqDeE5kdmpzbnF7ZGtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+XoqGYlZmYlJikoJx6fpepjZ2MhZ+cip2WfHmVg3uOmYmGg4SGbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHg4yanJKGqZ2CcoqPhZKRi5yRfI16qYONkZeVjpuWhYWbpp+imp2Gg5KamZmQmaahpp6ekJeCk414fYmQhqd8fY+QkYaYqqGck5yOjamNkoCejYmVm6CEj5iAiI+EcXmGcnVhf4SQh3aMmYGDj4KGhX+GhJVuenZ1lKSMjYabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4SPgYKJiIh0goWGiHltanx/e21oa2xmXnl/Z3x7dnR2dXt3XGBwfW50YGNaW15RZmxTZFpdYGpodHl+cGxsY2pqZ4B/a3J/a2t0bnduhHluhoB2goB9hXdxgo2Hfnt7fIB7gotgaXtrdWhqg2RqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoaSfk5KWl4uan56cenecpJCbiYakk4qYmXl6jYV7ipGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6FhId8j4COm5uQh6abf3CKiouShqChioWMfKeQh46RlpKWkneMo6ChnZaaf4GQmpiTjZqjoqSbmJKcgJCHe4GGkYmhgX6NjY98l6SgoJKZkI+ljI+BnJKKlZmdf5OTf4iPg3V1gnF3YX2BjoZzipZ9iIxxjH6ChYaPaHhyeo6ak5GAmH+JjHODiX19cnp8jYZ8e5OOhJemlI2GkHuEhYaEc3+AhIV3ZHB6fnh5cGtqZl5+c2h8dXVzfHOAal5gdHZwd2RjWF1eUmloU2RYXmBnaXV4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohobGJfcVZ0b2xtYHhobFdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3t1o56Nl3+MoYqImpZ4fIaHfoSKfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjJWemn1vi4GQk4Wlm4eMiYOmlYSRipWXkpF2kZ2hoZiUl3l/jpiXjpaanaWempSVnXuSiYV5h5iPn3+Cio6Mc5einqCSmI6PoYyMg5iYhJSXmn+Zjn2KjoJ3cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWZ2cH2IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eChIt2h4OBgHR4f4aCc152d3xzfXZma2Rgfmlqd3NzdX1xfGNjYXNudXJtYVlfXVprY1JiV19fZ2p0eYVwYmpjbGZofIJraHRobG9of3yBeGyPhXGAg4N/dHyDjIGAfnqCg358kG11iXR0bWaKbGphY3VWg2lwbWB5Z2xhanZwZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqiaiZh5lpyLjJmQeHyBi319hHuAgoB4c3h5c32Ag3+IioBkXn2LlId/hYd0fX6Kf36YhJaTloyjoJd+cYZ7k5GKpo+MjoqSoJGDkI+Tl5GKgY+YoJqSkJF0gI6SlImdnZ6nmZiOlZd1kJGLbYiakZt8iImQiW+XnZqikpWKjJ2LhoGTnYCUlJaImop9i4qCe3F6a3Zte3+Mf26Fk4OUeG+ChH5+i4Flc2p9gpiYhYCOdZKKhXqJf3d5gX6HgX2Ej4aNlaWReYWCdIiGe35xcn6EgWtgeXR5cHxuYG1iZXtibm92c3h3c3RhdmBvbHVub1xaXl1daV1PXFdiYGdscnqIa19pZGpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt4eG1sh2toX2lxYodocW9ldmdtbGF6aGp8e3dwYXdtioGZmquhpKmeiouRhomeipSWfHasl4yWfJ6TkZaUiHZ+e4p8fIB2d3+AcHRzem+FfYGAiX58YVx+j5KGf4SEcnqAhnqPkYeRkZuRpJqTgX2AfI2KkqOJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiXipeTcIychmeJm5CVe4qFkIpwlpqUoZGRiIqYjIJ/kp99k5GUjZqQfIuGiHRzdWtxb3V9i3VvhpGOk3J0gHyCgol9ZXJuen+blX6FinWSjIJ1intwgn+Ch32GjYuFjpaqjnuIfX6KhHZ8bmx9goBhZndzdG56YV5vYGt0XnBqenl5bHJwZXlebmxzbXNYWl1fYWlaT1ZXZGJlcHF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3pyeYNra19vaHR/a3FubXFnb2tle2Ftf3p3cGt3d4l/o5mjqKGmm4iMioGPnYaSmnR/qJORjYagjJWTkIBzfHaFeHmAcnN6hmxyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGbl6CSlneJfoCMiJydio+GkpeWhYiUmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyHpoVniJ+Mk4CNhIyBeJOYkp2RkIiJlI1/fpCZfZKOkY6bk32LgYRwdnBsbm9wfIZpc4OPmIpxeIB1gomDemd0cHeCm5B9ioV7lZN7eIp1cot8h457i4eFio+cpYl8hHaBiX53d2xofX9+W3FycW9vdlleb2Bwal5vanx6cW5tam13YHBva3FtWVhgYWFsV1BSWWVlYXRvhIFhXGttZGNla5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHi397dop/anFjfGKFfG9wbHVqaG5sd3dfcX55e3N1c3+CfqWVm62fp5aFjIN+lpWDjp10iZ6TkoaKmoyVjox6cnh0gnByhXRxdYhsb2x0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkIGSkpibkZh3kHqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31yi4WIj4icmZ+bl5WBlYBqiJ+KaIiiiZSFkoSKcYORl4+ajY+Mi46Nd3uTkXuQjI6TmI18iX2BbHdqb2tsbXuAYnp+j5eBd3qBeIONfXpodW12iZeMgImHfJWRcnuGcXiOe4uOe4l/hI6Rn5+GfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmdzdWhwbGF3ZV1VZWBgcVNQTltlY1x3b4h7XlxocWJiZWWRaV9oZVtnb35va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHmVeGZya4Ngh35vb2p7YGltdIB0XnN8eIZ3c3OFfHigkJuxnaaOgop/gpmJf4qcfoqYko6Eh5eOjo6Ed3R3c4BwcIVzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYp8j4mLk5KKeod9f218ZXNva217elyBeZCPgXt+f4CGj3t6aXVrdIyQioOHhn6XjG1/gHCCjoCOiX6Fe4SRlpucjH13eIKOd3JrZG58gGlnc25naHNsU11vZHBaX2xxd2dra2JneHNwcGRgeGBgVWtfXnRPTUtfZmJbd3CJdFxbZXVgYWRkjmNgZmJYaXN0bmtxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZCKiHx+mXZlc258ZYd+bm9rf1lrbnl6cmB2enuNdnJ2inZ5n4ycr5ugkIKFeIiVfnuInIaEnpCOhYyXhJOOh4F1d295cW+Db21ufnJjZHdwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+TmoCRcIWLo5eJjpWKkJ2Wg4CUj4WIj4CSioqXf4d7dn+JeIaFjpyal5mPkHaLeHCJi45/jaaHlIuehoZei5SXiY6IjYqKhIlsfJeDfomGipGQhnaHfn5sfWR4dWpveXRYiHuSh4Z6f3+Aho1/emd0aoGLkIuEhIGNmIZtg3dviZODkoZ/hHuCkpeUmpF1dHiHi3RycGRydn9fcmxvYWh0ZlJgcGdrVV9uc3lhcmNgaX5xcm5bY3JhYlZuWlx3TExLY2ZgXXVyiW1bXGR5XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIeVhYx/f5hzaHVyeW2Lem5zcIBXcHp2eXFkdnmGjGh2gIlxgJ2HmaicopKEfXGMk3h4iZyDhJ+MjnyWjYCaiIR8c3Zwc2pvgWxqbXx0XmB3dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46bk5GBiHCFiKCOhYuVioyXk3uNkoeCiJB6kYuGj4KAd3iDhHKHgpKblpOYho12iIByh4SMiZykhZaOoISKYYOVj4WIhYiMhoCHaH2UgH6DhYqOj4Jyh3+AcndodnJpdHhtWox9k4OGfYCDgYSLg3didW2KgpGMg4CAk5J+b4NteoiRiJSFfYJ/gpOUkpiJbnF5i4R0am9pb3Z+XXJobVxpdF9RZHFoZlNfcXZ0YHBgXWiDcXJqV2dpY2hXbVdbdExKS2VmXmFxc4VpW1xleV5eZGd6YGRfXVlrbmVuanN3in1zcoF/e3Z6iHOFg3x/h3Z2ioWPmIGNgnuTdmx3dnl4k3Rud3p9WHmFcYBuZ3h2kYJkdoaFcYqXhpqhm6GKhnNvkotxdo2afImZiIl8n3+EmX+CeXJzbm9kcn5pZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCKhXpoh4qZh4GSkIaGl418jIyAgImNe5CNfYmFenV7g3xxhoCVmY6SlIKJdoSIeIaDjZWgoYiYkaGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOMj5B+bYN9g3VsbXd1dHd2a2OOgo+AhX98hICFiX9wYHRyhn2QjoN9f5KKenKFZ3uFjIiNhXyFgIGVkJGThW5veIt+dGxtaGl3emBnaWlYa3RZUmhyaWJQYnJ4bWJlXlpqhG50YlxoYGVtX29UWm5NR05mZFtmbXGAa1pbY3NfXGNrdmRlXV1abGxibGpzdoZ/cW9/fH10eIZ4hYN8gId1eImBkpV7iYZ2iYFveHl7hJJvbXqAdl6Df3SBbGh6c5RzZ3OHfHKSkoSan5ufhod1dZN+bXWSln2HkIOKjZp8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiOloB7lYuBhJqLfIqFfHuJi3+UiHWJhnZ3foFydYaBnZOFlI+Eg3KBineGfoybn5uIlY+egYlmfpOCf4WCiIlxgX1mfox8eX+AiIyPfWmBfoR2Z3B5eHN3dGxrjoaLgouAeYKBhYSBbF9zeXt+jouGfIKQgX9zgmp6hYmNh4V5hX6CmY6RjX5ubXqIfHVzbWVle3NhW3BiV25xU1NtcmhhTmd1eGZgXl1Zb4Fvc1plYl5qbmBwT1lqUURTZmBZam1tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3Ftfnx/dHWDeoOCfIGFdn6IgZaQeISKdIGIcnh5fo2Qb296gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSHbn2LdWl3l45+gYqClJeKeY+Vb3p0cWtqZGBzemhfZXF6WmByfHlncXlhZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpJ6eZKGgYSYinyGf3d3iYqEloBvi4hxdX57anmFg6SQhJONhH9wgIR4hnuInpuXjZWSloWIcHuTgn2CgoiCbYB2aICFeXKAgYOKiHxlfn+FdmRxc4BpeXFwdZmOhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V7gpqNjoV5bm59g351eWNlaHtuXlh2Wldwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ11nanJgb05XZ1I/WGZeWm9qZ3lxWlpYa2VZY3B5XmdcXmVsZ2ZraXF3f4dubH9+gHVwgnt/gn+Cf3aBhImXiXGCjXF7hnx6eYOTjHVqeX5rb350f3xvcnt6k29ugX54Z5KLgqGZnJGChWeGg29neZWIfX6EgpiKgXyNjWl4c2trZl9hb3ltX2JveFxka4J5YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Lfm1rhIyMdXyPf4WBlIh8gndudoeEg5d3boiFbHV7dWZ5goOmi4KPi4R+boF2eIV8iZ+Sj5KTlI6Mh397koZ3foOMgmp/cWiAfnlufHyCi4R3YnqFgnJkcml+bnVydYKcjIGAhYB0dn6Ac4JvXG6AdXmLhIt8iIF+iXl7cm2KhZGFjHODeoCXi4uAdW1qdoB/dHNbZ2d1bldWe1JZb2RMWnJyZVtJcXhvXFtbWV11f3VpWWJbaGZvZGpNV2VQPV1lXF11ZWB0b1pZVG5jWWNxeVpoXWBnbWdpa2lwd32ObGmChH95boB8fIF/gXp1goCNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox5eIR9fGuMjYObnpaMgYBsjH1raH6Ni3p9foOUgn59iohrdnFnaGJbYmdyb2Bha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8kYZ1hZWFc46KiXZvbISCh3R5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIaAh4yKfm+Ad4KDgI+ciYSWk5mKjIWJfJCIcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXyGlpKCfYKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4KRgoZzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpNW25bT1tyb2RVS3N4aVdZWlphcYF1YV5dYGdkaWlmTllnTUBgY1tgdWBddWxXV1N0YFpkb3JXal5iaGpnbWxocHd8kmtohIp9fG9+fnuBgIF6d39/iouDcXyHb3F3g397iYyPg2l9e213eHaKdnx4f4KGf4N+fXpthIyImaONhIN7dYt4a2yEh5B4fXqCkYCAfouDcHJxY2ZeWWZfcHBfYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4NzdIZ0iHeTiHl5cGN3h3qAk2lyhHZnd3VjanyCh52BgH+Oj35zgHWHe4KVkoV7mI+WkIiCiXuJiWt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBaXaCjJGVf3t+f3F8dnx0f2JWeH5zdIuFgn2EcYeKeHlxcYWEjoB/en9+do+Gg3dqcWhsh4Fxb1xmYHFsSWR1S11sVFNZcm5iUU90eGFSWFhdYXCDdFxhXGllZWRrZFBbcElDY2BbY29dXXhnVFdWdl1bZW5oVmteYWpnZW5uaHB2epJtaYiMeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfomLk39wgHt3eHqAjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2d0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1zYWBgcGxraIhuYXRpWV9kboB3qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/b3F/bYV0k4V4dGtgeoJ5iY9mcoRwZ3VuW219gJCTf4B4kZN+eXxuiniDk42Gd5iMk5CIhoV8f4VsdHZ+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGh1h4+Nlnx1gXdxgHt9boBaV3V/cHaFiH+BeW2JhnR6bHaChIV/fH56fXSMgn10aHRlboqDbHNaaF1zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmByhG9dYGNtZWReb2NUXHFGQmVeXWVnXVt6YlFWXHRbWmdrYFZqX2BvZmZrcWhwdniOdGqOjXV+dnh9d4GEgXt0fYOIh4NvcoB0cXV+hYKJjYp6dn94g3t8hYd3h3x9gX6EgHt+cnV5jI2gjIl5iXZ0gnhefYWXi3iGg3OFhoR3iXpibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeoyKZXKCa2pxY1hseoWbiIKBcpaUd399b4pzhY2OinSZkJKJhouDe3l9cHBvfGZocWFteHFqbHF4fX16XWV6gHhqdnhmg3dodIiMjpV9cohqb36BeW99XVlzf250gYt8gm9vioBxd2l4gYKBgnh+c3x1h317c2dzYW6LgGtxV2lcdltHbWpMVlVdU1V7a2FPVHVyUFFUV15jdYZpXWBsamZjWm9hWGJvR0FnXGBlXVxWe11OVWVwWVtqaF1XZ2BecmVqaHJncHN3hnhulYt0f3p4fnmDiH91cn+GhY6CcHB7eHd2eYaFh4yGeXt/dIt9fYaEg4d+fn59h398eHV4eJGTn3+MfIptdX94ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3NlYFhjcXJngHJia2VXW2Bqf3i+rnuft25hc4Voc3pxeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eHmLhGZxf2hra1pWb3eIooCEf3GZk3KBenaEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2preXd6dlpnfXx5ZnN+bYV1ZXWGjYaXgHCMZ2t7hHVudWJdcX1sdX2Me4JndYd+bnFpdoB5f4B0fm17fIJ7eHFmbGFtiX1sbFVpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZ3aEZ15hcWhnYldqXVxrZ0pEalliY1ZZVXlZTVZtallda2RcWWRiXnRlbWRxZ3JwdYB3cJmGdn9+d398hYd9dXOCiICVgm5zeXt6c3KEh4mIg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ8e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWVjV1xbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVtanpxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKZ8hHt2lpF0fXR+fG9+fZOIeJt9iYeDh4N9dXBxbGd0XGxnXmx0ZGdlaXpve3JZZ4F3dWhwgXiCd2J3hot8lYJvjGpte4JxZ3RmYW56aHN4int+YnaEd2pscnV8cnt7dH9ogH+AeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWt3f2ZdZ3RpZmBWZFdicFxLS2pXY2FVVFVzVkxYdWRZXmtgW1pjZF92Z21icGl0b3J+dHSZgnd+gHiAf4aEen11goR/l4VucnR8enVxhIWPgYB6i3VzkH98gZWNgIWEfX2Mhnp9gHd7o6WKeYiFhGt0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlhfWml/aWtvgGdsYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdo+EZ2VYYndqf4d7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHuSgnqXdoaEgIaIdmpydWdnbltsY11tcl9nYWp4aHtsW26DcnRqcIF+enhhd4aFeZCFdIlycHqBcmNyaV1xeGVydIh8eWN0gHFnanl1c215eXZ5ZYV8f3l3cWRkY217fGpqVGdhZVNJa2ZPR1FqRWB3ZmFNU3JdSk1VWWVseHxmX25xamVdVmFVbm5WSlNnV2VdWE1Va1RKW3lfW19rXV1aYmVfeWhsYW9vdm5wd3V6mH52f4F5gICHhnp5eoN+gZODcXR0fnp2dISIkX2AfJBrcpWAe4KfhX6HfYB+hoKAint3hKuef3qHh4NrcoF5dYB+gHRuhm58gHOKgGpwbmRkWF9aWVpUYmpnW1pfdYJpXm1sXGFXXFxrgWVydH1paVxrdnVnc3ZxbIR7fXx4dXFseWdpeGZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F8jn14kHOFfoCAhm5kdXJkZ2dcamFdb29bZ15tdGV6aF10gG9ya3F8fnV2YnSGjHuJiIGBeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2dGeHdnt7dnFlYmRtcn1pa1NnXVxUS3FiUEZVYEdidmZhS1NvWEpNWFhoa3Z7ZWVucWdkWldeWHdlVEpcYldnV1lIV2RQSGJ4Wl1fbFpeXGJjXX5pamBvdHhtcG52g5d6coCAfH+JjIZ9dXWGeIeMfHN1dYF5enqBjI58foSJaXOWgXqKnX5+hXqBen98holzcY+tjHt7ho99ZHGHeXN8enVyboZse35sj3pjcG9iZV1lVllZV2Nma19dXHOFaFhxblteWFpcbHticHd1bGFZbHNzZ3R1b2yDeH5/eHZtbnNkaHRlW2d1ZnZ2kXpfXVJmZ2uDgnR+YmRqXFRXXWJjjqRpeHODhpF5bnF8anpvfoh9dop0gnl9eYBpZHZsYGZfXmlfXXRrWWVcb29iemVcd3xrbm5weHl0dWVzhJOAiIOJe3dwc390Y3hlXHFxYnFygnx0Z3KAZV9ud2plaHp9dW9wg3Z0fXNyYl9mbW58ZGhTZ1dYU012XlBJWVdIYnRjYUlUbVNKTVpXamxyfGNtbXNjYlpaW2F3XFNLY11XaFNWRlhgTUdpdVheYGxbW19hYlyEaWhhbnh5bW9qdoGQeW2CfoCBk4iEgXZ0iXSMhnRxdnaBeH19foyQf36TfnB3lYN8mJJ5gIB4en6AdIiEdHGZoXp6f4mUd2N1h3hzd3RrdG9+a3h8cJFzXnBuYGdibFRaWldoY21mXFxxiWVTcm5bWlhXYGx2Y2l1amleWW1zcGtzc3NphHx+fnp2bm1rZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcnx9fXOCeIF0e3p6ZGV1Z11iWWBnW152aFdiXXBoYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNyc4B6c2dwflxgcHJiYGtzf21udn9zcXhrcGFcZWxsemBmUmVTVlFPdVpRT1hRSGNzYWBHVmpQSVBaVmtra31mbm9yYltaWFlscVdSUGZWVmhTVEVZW05IcXRYX2NsYlhgYGFdi2pjZG16eGxwaXV5h3trg31/hJp8g4R5fIdtj4dybnZ6fHSCgnyLj4KCl3R4gZOFgZ6JdYGAgXR/gnGIg3ZwoZZzeoaLhnpld4pubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdpc2hidGVkXFhtdGxvdXR4aoZ8f3uHdo9yY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNtcIOFinRraXxwZ3V5dX1te3V2cHt/dV9mcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2dwf3J0cFRcZ2tmcnSAdnNjbXZWY3JsW19wZ35mbnh+c3Rzam1hWmRpandeZVNjVFVQU2xWUFZSUEdkcl9hRlhpTklYVFduaWV9aWx4bGJXXVVbdGRTUldoUVhmVFNHWVlPTXd2Wl9la2lZYWBeXY5uYmZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmZ0gHt1gIN9iY5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqSLcoCNi3Z3bHqMYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNvZ3NrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6bl14c218a3Z0b3B8gXNYam5eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xpho2AinuJbnJmcn5udG5kW2FpaXB0gXRzXmltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUU9bTk9IZG9cYkdZaU1KX0tZbWRgeWlufmVgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJgW16NcWNnanhxc25odnR7hHKCg3qIjn58iYeNeW6QiXRrc4F0f3+IhYeRhJWPeX2MjoeRm4SAfIyFc3+Bc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2NjY2NjY2OjY2NjY2NjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6NjYyMjIyMjI2NjY2NjY2NjY2Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmY4C+u7u7u72zbWZnZ2dnZ21ubm5ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19bfsjExMTExrtnXl9fX19fZWdnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmMkpGRkZGRkImIiYmJiYmJioqKioqKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2RkpGJh46KkJKTjoiOjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2NjoyLi4uLi4uLjY2Njo6Ojo2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJGKho2HhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkYqEiYaFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj42FhIeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhYiGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x7e3x+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD87QUNEQj8+QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+f319fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5ent7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZGRFZ4hISCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ozo6PDg5ODk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9QfYSDg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjw6PDs8Ozw8Ojo8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT8/Q3aEg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo7PDo6Ojw7PT5APz1hhYOEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSkZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oj09Pj47Pjw/PkI/Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0VGREJISUtHSEdGR0dFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRD5ohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpJSEZKSURKSEdLSkhKR0dHS0xOTExISElKTVBOT05MT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VvcHV3eHp7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PDw9P0JDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD1CRENGSnWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBKT09OUFB5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01Tb3R2eHl4d3l6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUVBUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQTkxLR0NJR1JTVFpdbXJ2dnV0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hKR0NCQUNATlBNUmR0dXZ1c3R2eXx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmhlZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/SExNR01RVUpCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5JTUZVb3V1dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTkhHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fHx8fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9tbmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUlERj45OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pj06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1JQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I9M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RG5xdXd6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkI4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARUdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTTktIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxCQUBHSkVNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9HS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I+Pz9APUNFRExNUVRMSklNVEZJSUpMSUpLSUlMTU9QUVBLR0NLR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUU5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0RHS01ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NUE5QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7PTs9P0RCP0FDRkdKRkpJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRUZLTk9LRkhJRkVDRElJSEtJR0hQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTEhOSUpMS0lGSEVGRUNDSEhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWBtaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSU1LSFFMSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT01PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUpMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdIQ0FDR0U8QEVCRDw4Oj4+Pjw8QkI9QD5BQkZDRUNDR0NDRERGR0dHSUZHS0hDSUhHSUdGREhLSUZLSE1LSktLSEtKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19dX2NeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lKSEpFQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREVERkZHSEZIR0lLSkVKSEhKSEZGTEhISEpHTEtMTExJTUpNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmZdZGBmZ2BlaGpkc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSktJS0dCRURFPEFGRERCOz8/QUBAQERBQEI+QUNIQkVERkdFSEVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLSkxMSUlMS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYWRpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMTEtMR0NDQUU8P0VFREM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUExTTUpNTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmY2FiZ25oYmloaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD49REVGQz9DQUVEREZDQkVHQ0JIRkJISklHSEpGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRbS2xSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtWYHd1aGpnaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxEREZEQ0NCRUVERkJFRkdEREpFRUpMS0lLTEdHTkpISktHS0pJSkpOTE1NTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJraWpnb3F0ZXRublxwdmdwTkxyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJFQ0VERUVEQ0hIR0RES0hHS01NSkxMRkpOSEpLSklMSkpJSk1NTk1NTUtOTU1bcnBvbnBwa2pMT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISk1JSklKSk5PTk5NTE5NTFxoZHVdbHFWa01PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUlOSklITkdKSkhJTk9NTkxKTU1KWnRwcG9xcWxrT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0alpedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRERFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0tKSk5JSUpMSUtKSUlLTE1NTElLS0tTa2JZaV5famNyclpfWWpvX2VlVWtfY1thYVFgbWhcalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISUdLS0tLR0hLSkxLTEpJS0xOVFtdVFBVTVFPTk9PVlFPUFFOT1FKSk5QUWRxaVRZVltbXFVZWl1YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZARUM+Q0dERUdDSUtMR0ZER0pMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxJSEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1YWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTEFDREFESUVHR0ZLSktHRUVKSkpGREdIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSUxJSlRfWWBYYGFbYFVYWVRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWFpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1IRENCQ0ZHRUdHSUpKSUhERktLS0VFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlGQ0RFQkZKRD9JSkhOWmJZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11aXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSUVFQERBSElBPkhJRk9dYFpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSV1VUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkdHSUdHSkZGRklMSk5FQ0tKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDU11ZXlhfWV9bXVVYWE9cXFFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JiZGRiWFBSUlNcVFxdXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHR0RGTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBNTEtLSUpERUFFQ0hGQUFGQ0FVVUVcVF5TVl9YTlRVTVlaTEpLVGBhW19YX15iXU9ZYlxgYF9iY2FdYmFXYF9UUVBRUllTXlxbXV1eYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElTY1FFV19JR0dIREZNSlBQRklISktOTExLTUtKSkdFSk5RUU5OUE1OTU5JTEJEQUNDRkNCQENEQExIQ0xMUE9OTEZNRkZISUdGTEtNT1BJTE9QUFNQTFFTUlVaWFdZV1djVk5SVFBRUE9RVVRcWVlbXVxhYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFNTTlBQTk9PT0hMRmBFRF5MRGZiQ0xaSF5cc21PTVZtWEtDT19Ua1ZnSV1XVV5ETFFVTE1TVlFSVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcW2BgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jqc25xc3BTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVfYXZfWGJcXGZbX2FhYWJeYGNnbW9sYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dNSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1vfnhvf3JgYGBiYlthYWhsbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc01LRmBdR0FFTU1IS0tISlBPTU5KTlZeWVVMUVNOWVlMU1JSTkxQSVFSVFlXV1FUUFBQUktIZ3hsY3hxbVpKS1R5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWdqamVnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUlSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxY2hgVm5LcXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVufGxxdnV4Xl9fYl9dX2VlaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlJJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1drZ3xsbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtrX3Z1bGp2fHttfnlrfHBdXl5iW19iZGVnZmVlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU1PVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGdyX1tbWl1dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlVUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFSUFBQVFVSWFdcV1NSUFFVVVVTWlFOUlFXVVNZVlRYVFNRVFNVVVlZWF5aX2FdXFpaXFxgY1xeYmJkZ2VlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU09UUFJUVE5LTU9SVFRRUVFVV1VZWltZUlVSVFhXVllcU09TVFdVVFlVVlhUUlFXVVZYXFpcYF1XWV9dXl1cXWBhXltiY2NoZ2ZlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRTk1SUU9RWFRRUU9NT1JUTVdRU1RVT05OUVRWVVJSUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVWWFNXV1RSUVhWVltfW19gX1ZfXV5gXVxgX19fWmJjZWloZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNVUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NV1NNTVJPUVJPTVBTUlVaVVRQUExQV1VQVlJTUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VVlVbWlZRU1ZUVlhUU1haU1JRWVdXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUlRTWVtXVU9STlNYVVNRVFFRWU9RU1NWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVFVXWFJTWVxUUlJcWFpdXl1iYWBXYltjYl5hY19cYmFiX2RnaWVnXVxkYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JYUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtRVlVaWlpTT1NRVVVUUk5VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpXUVRUV1hYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVST1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lcVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFcVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUlZVU1FSV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFYVFlaWmFYW1RWWFtZWldYWVpXVl1eYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFiY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlVVUVNVV1tbXF9fWl9cVl9fWV1eWV1WUlhXWVlcYlldVVZaXFpbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF1fYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVVVTVVRYXV1fYGBdYV1XYV5bXlxbXlhVWFdbWl9fW15XWFxcXF1dW1pcV1pfYV5gZGRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWVxdWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmFmZVppaWNmaWNmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJheEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1laYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJbY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxYXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eXlpYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtlZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpXXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhomHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXp7e3p6e3p6enp6enp6ent7e3t6enp6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5enp6e3t6enp6enp6enp7e3p7enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT08/ExcXFxcXH0tTU1NPT08S+vr6+vr7K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OTl4NTU1NTU1Nbj5eXl5eTl0svMzczNzNvm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/gHl3d3d3d3d4eXp6enp6eG9vb3BwcHBycnJycnJyd3p5eXp6en6Dg4ODg4ODgoKDg4OCg4SEhISEg4OCgoKCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd1dnd6e3h7eHd2eXx6enp5fXl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z6fHl9fXt9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp+e319fX58eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3eHl9fXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt4enp6fHx8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoOCgoSCgYKGhYOFg4OEhISGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OCg4WEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIeIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSDhYSDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODg4OEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhIaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fXt9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GAgX+AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGLjI2Nj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX57e31/f3+AfX9+gIyRjYuMjY2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+fn6EkoyLi46Mi4qGhIaEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7enx5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuHiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4qJjJCNjIiIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIGBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn1/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgIB/gIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIF+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GAfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBkox6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoOBgYCAgIKDgoCCgoWDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIKBhoKEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYOBgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgX+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSEhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgoOBf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYGBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf359fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf319fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX1+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f359foGAgX2Afn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhYSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKCgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISEhYOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn1/f31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4SEg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaDhISGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSChIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhYaFhIKEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4aIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSFhYOBg4KAg4WCg36BgYF/g4F/f35/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WHhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4SFgYGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAf4GAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIeGhYaGhoWFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/f4N/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhYeFh4WFgoOCgYOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoODhIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp6enp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN+fYCBf35/fXx7fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzo8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDg6PD47OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojs4OTo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTc6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXU1dTU1NTU1NXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2trZ2dnZ2dnZ2tra2trZ2drb29vb29vb2tvc29vb29zb29vb29vb29vb29va09LT09PT09TU1NTU1NXW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKiomSmZiYmJiYmJiYmJiYmJeMi4qKioqKioqKioqKi4aBgoGBgYGBgYGBgYF/j9PS0tLS0tLT09PS09PS3ePi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NRYmxra2tra2tra2tra2tpVVNTU1NTU1NTU1NTU1RLQ0NEQ0NEQ0NERENDP13S09LS0tLS0tLS0tLS0ODs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXVmVwb29vb29vb29vb29vbVlXV1dXV1dXV1dXV1dYUEdISEhISEhISEhISERg0dPS0tLS0tLS0tLS0tDf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYmFveHd3d3d3d3d3d3d3d3VjYmJiYmJiYmJiYmJiYlxTVFRUVVVVVVVVVVVRa9LT0tLS0tLS0tLS0tLS3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLzc7Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMvLy8zMy8vLy8vLzMzLy8zMy83U1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7R1NTTz87R0s7P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW19fX19fX1tfX19fX1tfX19fX19fX1tbW1tbW1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7RsIOEk87TuJ7P0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7PyZu7uJ2vt5eZubqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0cOij4CJyZ2jqLLRkn1+r7HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/noqn0NPChpq11dPNnp7E0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/RuqSsnJ7R1qOYtNTTwKCg0NDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P0cCgnpOlt9iimbXU1bCiqdXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTo6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDSpq+um6bZopm11NWkobnU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cnXxJig2aKattTOnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozw5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cWNnqCdqNqjmrXXw5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocnBoa2hoL/Yopu02bKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT1auNj6nV1rKExta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUwb3V0tLRxNXR0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExAPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dTV0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4Nzg0Oz88Pz05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8ODw6NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NjY2Nzg4Oj07PD46PDo6PT05PDw9PD09PDs9REhEQ0E8PDw8Pj5AOzg8ODE1OkFGRVeutbW1tre4uLm4uLi4uLe4ubq6uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4ODk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODU2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1Nzg3OTc7Ojo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWoqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5Oj43NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUI/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo7Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo7OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pj86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkBAPUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojw9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw6Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc6Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi46PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Njw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWPi5STkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NTM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yPj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QUI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4eIhYSIiImEgIJ/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojw6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTdCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQjH+HjYyLi4eSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjU2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOko6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tfXlpcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYyNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraulqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTs7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc4Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllUYWhgZnNvc2l0Y2lkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubVtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDs+QkRFPj49QENDQ0REOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+1s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpORmZeeoZWYmpKYlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkJAPUBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsbAxcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vcHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi4u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZuYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NTQzMzM2NDY7ODo8Oz08OD0+PDo7PDo9Ozs+PkRBQUNCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8nOycHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS9uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdiYmBgXVhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM1Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWh0bXhsXWRbVV9ZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD89P0I/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvKyMbMyc3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDw7+/vsTLyMrLyLy7yMfJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vsLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmJaWVlcWFFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozs6Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur3Aub26urS/uLW3s6+7vLfAt77Cv8G7v8C8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVVVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo8PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAwLfBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZGZvaWVrZ1hYTktLSlJJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw5Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2vLzAxLm3t7e2urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibF9bVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pz09OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t8C/xLzCxcXHx8rJxs/CwbiutrW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/Cur/Bv722t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FbYlBLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDs+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFNSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv62zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5CRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9QD5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I7Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KmoqWqrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbWhcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyYmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bXBgXmVdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsXmJgW11OSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZOYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3xvdXJtY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47NjY6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKapmpqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpa11balRdXE9NSERGTEFGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5s7SzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4Oz0+Ozw8Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKknqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK63trK0ta+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUGhUUE5HT0xMQ09RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PTs5Oz07PDw9PjxAPT88ODtAQEE/Pz85NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AubWnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7CytK6lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOQj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STUpNRztEQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZ2go6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlZqXl5ignpycl5uhm56ao6eln6GioqOcm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHpgYlJVX0hJSUtTVElSUEw5PkE2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ6alJibmpGOkZaRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu6qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmZubmpiZm5SVmpaYnKShoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVxTWllNUUpOT1RMUkxBNz5CNjg8NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gkn5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZiSk5+doaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCnq6iytbezt6yxtKOgnaWgrKGhoqCfmpiWlZ+bm5ikoaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XW1aUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqakpienKKioKCdop+fnp+pq6esqaq0q6utq6WlqqirrKqln56ZkpKUmJmWlpaMiIuPlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpqqinp5qZnpmppqCZp6Cfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmZaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayvrqqrp6Cen6Kjnp+em52clJSVlZ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusrqexrbHCtrjCxsDIysDKv7C5ub25wr24s7vFw7zCu7ezqbKtqrO0r7Ouqa6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmZuipJ6fm5ubnIeGgXt0cmtrdXJwaFdcUUVUSERJUEg+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anp2fpaannaCgrLGvp6Sko6Gfpqymn5eclJGZnZmVjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMvM0se+v8DCvcfGwrfDycjCwMW9ubO5urS7t7C1sqq6sa67tr66uqq3rKqquLq0u66tuKOlop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH56cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhm52dn5+al5iYk42PlpeTjo2QjIKDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPP09PMysLFxsbKx86/yNDLxsXGxMC7wsC+vr61vbOtvr/Cw8bExsOtvriyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCcmZeVk5SXkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1dfS183Gx8nMw8XKz8rT19HX0tXV09PIzMfNzcnSzM3TzcTHycnAxcvHyMjFvsKzs8fEy8rKzsXJv72/vMHGxMzMyMm/w7+tr7KonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi397cnV2Z2Jod2lkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+Uo5iWn56dpK+boLCrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWinpuWlZaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bX1dbSy8nO0MvGzdLK0tXW2dXX09bYztLJztHMztDL0s+/x8bJwsvLy87PxcbHtr/Kv9LMy8/Fyce/w8LIzszP0M7MysfNuLe7qJ+mq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqasmqSwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmaGdm6Gin52em5aKeGlkYV9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7PyczRy87Qv8XBxsXOzNDQ0cjLzMDKy8XTzsvOx8PJxsbIy8rU09DUz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrquqq52mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qp+doaqpoZiWmJqbnaGemp2elH5yZmNjX19hYF9hYF9gYF9gZm1wcG5rb3J2d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cbR1MrR1NXWztLQ2NjY18vIzsPIzsvKzL/Jv8fIzc3PytDNzsvOz8fKz9DKzsrByMbJzMrL0dLM09HRz8/Kvce5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG9rYmVucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD0+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tbHA2dPX2tzWz83Lw9PQwsKyq62urKazsrmrs7epo5+clpSXnJ6fn56VlpiVimxfX15hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dXZ5pL7L1dHW1NPY1s7O08vNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzM/R08rN0dXS1dXKwMnBxczCyMnCzMLFx8rKzsrMzNDN08vFx8/Mx8fKxMbAxcnLzc/Qxs/Ozc3Mz8XHwLe5vcLDvcO5srO+sLvDxLaqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcmttaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nj09QTw6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2MzNz8nW1sXEuLK2qqSurbm5sbLAoZeOjZiWkJSSkZaXlpGMfWZiY2JgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxMnJxsa/w8XOzsfFx83K0cjLzs3G0dLPzszUysfKzc7Hxs/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJy8/Hw8PPyMbBxsfDv8DHy8vLzsLKy8jHzNDExce6x8PIyMLPwL28v7DByse6vaqxsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NTw8NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5Oz49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCpt6u/urmzpZKOjpaQhoOEhIJ+hYWAdGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLq/w7u7urm+yMbCw8DDx8rJyMrHwcXLxsjLzcnEwcnJwcHL0MTLyL+5wbrFx72/xc7Kw7/DusnHyLrHxsTKwL3By8bFw73FvLy/w8TLxMS7v8nCxcfSxcHIvsrJxsfG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnJ0ZmlaYW5tWltYUURMRkJHRExDRlI/NTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y9DRzMfCw8fNz87N1dDW2djZ0MzUzs/Qy8S4xsG2tbyxwLa6rJGMk5eHe4CFhoB2eHVzcV9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsGwtrqysrSyscG8u7u5uMDBwcW+vbm9v7nEysXGwr3GwLe7xMm/wsm7t7q6xcK+vMHNwsa+vbXAvcO6vMa7wrmzvMXDwsK2v7a1vr+6y8K8tbrIur+9y8PBxcLFyMXIxdDGwszHssbJw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTs8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzc/SydHG1tXW2M/M0MjNyMrFvcrBsrW6t7u2r5GNioyFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusC4rbCwp6qtrKe4tLa0s7KzurW9sbewtK6yu8K8wcS8v7q1srq+wLjHuLO7tcDCvLe9xsDDu7Wusra6vrPEt7q1q7i8vcC9sLq2r7a6ssW8tq67v7S2tMW8vsLFv8PExcfLxcDGxrvHy8DPycfDxsHDt8O+vra5vsa/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCQ0FERT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pquzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPx8rGysXEwLzPvbO5vbm4t5uOh4mKe3l+h4Z3eIF9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG1oZmpubnJ8pMe/ubi1sKusp56iqqeeq6yzramrqbOttrCyqK6mrLK8urbDubq5sKu1ubu0wrmvv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu627uLu/v725wr/GwsXAvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTUlFQUM/RkE7OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6OTs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbCxdDIz8PEx8HGxsXFzMPKzMPEwcfAury7yre0u721tauRiZCQfHl+ioZ6e4SBeG5eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWlpdZG1vaGdnaWtucoGtubC1rqalp6eaoKSgmpylq62jp6KrqayqsKOmn6qttbaxvbmvt6+orri0tLu3s7yut7m0sbvBscGupaiiq7Gys6e8qquoq6yttLSmqK6hpK+psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwsC7v8TDvsTIzMq/vsPAwKmGcnNyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvcq5wMXAvMy6w8fFur3Evrq3vcW4tri7rrGVg4mNgXt+gH94dH98c3dmX11dXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6jm5eRoaOqo6KfpaWnpa2fnZukpauyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubG3pJ+jn6axp6unuaqkpqeop7KtoKemnpqkpqyen6ekn6Cxra2ssbOys7C1vLa7wcGyur7DwbG5ucKzwL2/tbi7vb68wsbEwsO+v8Ogg3dwa2FlX2tvYFVZX0hOaE9UR0VKRjw9QD06Ozs4MjU1MzY5Ojg7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTs7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6UnaGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7bHu7fExrO+xby3sLm/u7Cztq+ihIeHgn15dnRwbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpqim5+qsKyxtaKpqqmrrKS1uK23r6yytK6zta6xqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsriuuLm7sLa7u7qrs7K5sr20trGxtbS/tb2/vcLBurq9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ojg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MnJwce8vMXF0MG8yru7wbu1xbi1wcGzwsS8raq1ubensbKpi4aIgHlzbnBua2NeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYWFdXV1hYWFteYmRkZWZmaGlrco2onZSUlJuXm6GWlpCcoaGonZucpaahpJufoJqYra2tr7KgpaKtq6ehtbCxsaynrrKnubOmtqGinpqjoa2ioam1qqKjpp2lpqOWmJ6XmJudn5mXnZycm6yhq6aio6Wtq7KzqrSwsqqyubSvqa+ysrK3s62prK6xt7C6tbm9vrazsZSEeXVlXmVeW1lWU1pVTFxRTEpFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbW4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbqxp7Gvmn2FhYB5cHF0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Vl5efl5mUmJ+eoZyWoaGoo5+dqJybmqqmrrCrm6Ojt6qgn66otqmmpqywo7ewo7agopuYmKumoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZyjqqqwrai0q6qmrbKwpaqusrGvsK6vpqensq6xtK+7s7m3raOUgXl1ZF5hVllXU1JUS01eTFBMR0hMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxLG/v7nAwbrAwLm6vbeoqLG7pqihpImBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xaW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkpSTm5iclpaboJyflaCfpqWkpaaenJ+kn6qvpp+io7aooKGiqLOhpaekr6WwrKu0nqCdlZSpoaGUrLGwnqKjnZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZpKSkq6OlsKelo6urraWorq6uq6ipqbOlpquvtLGuu7Wwr66fknl2cmVhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzw4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kpq23u7zBxbqxubbFysvBxMfHybjIxrXFwsiuurzCvMLAwb28t7q2pqeytZ6iipiHgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlZW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOk5KTnJSVlqOZoJacoKWhraWjo6KjoZuqqqWZnqWxqaCgnaSqnaehnaysqaitraKhopSXopqcj6upsJufop+el5iTip6SjZKSlY+YmJOboaKcpKChlaCho6Sao6uloqSqo6uupa2xqaalpqa1pqmorbO1tLm6r6msnotycG9gW1dWVVFGUU9IWlxPUkpUS1NMRUdJQzg7Oz08ODY2Njo5Ozo6NzY5Nzc6Ozo9PD02Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg2OTg5ODo7OUA5e7W0rbS7srCssq2dp6evubmzv8i6tsCvxsnOvMLLzcm3y8C0wMfMsLa9x7vBx8O9v7e6taSqr66dmYeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl9fX19iZG2Oj4SRho+RjpmTlJKcmqKcm6CnqKqnqqWopKKYpK6klJmlr6mfm5iaoJ6umZupsp+kpp+jpKCUk5uWlZGpqa2anKChoJqUkIyZjouQjJKMlpSQnaGgopybopWboKKgl6Goo6Koq6Crr6Stt6Wio6Ksramoq6+zuLK9tbOrr5iDcnJoW1lZU1VSRVlMUVxZTVROUExRUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6op6+tm6morLe2rLvKu7a/rMzHxrnCz9DJtca+ur7GzLWxvcS8wsXDvcGzua+lqq+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRlpmioJufqqmmraqmr6KnmZ+soJSVpKinnZePjpmdrpaXpqmYnpyTpaGekZCSkpKVp6qkmZmanZ2WjoyLlIaIjYOQipGUkKCdoKOXlZ+VmqChnZKbpaWnqKigsbCmsbymn6OstKutp7C0sLm1v7GtsauQfHByYlZUVU5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojo4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpaKwq52qp6mysKS2xrS5urPLxrq8w8vRzLO5ur7Axce2tLe8srq7xL7CsbOtsK6wrJyiiGtobW9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkImYiZSTmJqYnaibn6qkpKqcp5mgpZuSj56impeWhIORmqOPk6KclZWWh6KampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqRkpGgmZ+hlZOYmJShpJiMmaSmqKahoLSyp7K3oJyit6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NOTk5QTEZOTktKTk5RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKstcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cISIgoeAkYOOipSQk52gjpqboqCjmKSWoZuVjIeYmoxzjYJ9jJaWhZCZkJONjnqZj5yMgol/iZifop6Qk5iWhI6Ck35+dImOepCGkpCQnJqZmZCVj52NoqKNiZqgoaSjm6K0r6yvrJ+YpbmmpbChsa6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISE1TTUhKSkRKTEVKSjw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaalprOnpbTBuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVo62/uLGwoKitrKqWlaJyV1ZgaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscmx/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlpSOloh/k4lfO1dve4qTiX+LkYyPhYZyioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjX6JgJCNj5eZmJOKj4ich56XhoeWnpqhoJenr6itqaielq20oqatmayrmKezoamto5J8cW1fWk5TUVZMRFRKUE1NRk9PSkVMUU1LT0pJTU9GSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CiraGmpqmgp6inoqmwqKe0wrmxtbDJw7m0v8/AurGxuMSrrsmup6KdhZqiuq2nqJampaOgl4+WaVBOUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9peoJ0UEJAf5WRkX2JlIyEio2ajJaVipKIhpWFeIh/YEpRbniKkYR8hIyJhH5/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYh+ioiVio2QkZaLg4mHlISai4GEkpuWnpyUpKOnqaWjnpuxq6GkpJGmqpahqZyipqiHc2tlXVtIUVFTTUlVTVNJTExQSUdGSk5MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85dracoqadn6Guoaeopaanr6yqtry2uLazwry3qLvJubepqre4rbbAqqKbkoKPmbKfopqNoJaYlJGLjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoCRmYuPe4aPf3V/eHNudXB0jY2BeX2JqoR5emh2e45wcm14gIqMknh6gHuAdnJyknhndYSEhIR6lYmIioyKgH+Diox/k4N6gI+YlJuVkZ+dqJ6fn52gqaWfnZiNqKSToJ+Vnp6kf3FmYFxcSlZPUUdLWFJPSk1NU0pKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsq7Cxqr20sry4tru1s6C4u7OrnZ+tq6y1s6WelpGYhpSklp2Mg5eJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mAdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9yaHGAfY5wQ4qEgoOEf3d3eoqEfYt6dH6Oko+YipKam6OXmZ2anZ6inZaNi6Wbj52XjpaYjnVta2VhWVdYVFFKU1ZUT1BPUVdLTktPT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagprCsrqunqbCvsay8uKy7vrm0rqmbsaitnJCXnqesp6SbnZOHln2OlZKVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYWFlZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7d298eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gmxpY2x5hZCShmtzbHxucnuFaW1wfnONiIOFen1+enZvdHSFgXmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkoqSjYaQln1saG1ubVdVV1RSUVlPU1VVVFlWTU5ITktOTktDSU5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYn46FjJaipJublJaPdpF9hIuQj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfm9tf3qLiHWBiIZ0bJmRdHN8amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/e2dwcHtuko2Oe3N9fXFwbnVtgn53eXRqeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlcTlBWV1pZT0lJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKisqLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SinOJhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scYOBhYF5g4aGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnuGe3OMrY2IgGhmYmltcW1vgnVpb1h1b46akXZsf3t8bXJucH96c3VtYnaEf4aAhZCRiouKkouRjIuPg3Z5i4+AfoOAfY54cG5ual5aW11bWVhhYFNPXFtZWExISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbCuwbO6wcaXkIyUkIGJfW6CkZOKhIuJkIh3hIVumIqMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz6Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeHh3x9hYJ/jH52opl5foaAhJmFm5xhhqqfnYuCkI16doh+iYeOc4qXj4N7XGRxdHp7d4ptZ2lheW+Fj4J6boF3c4R6cXN5d2tuaV13h32HfIiHj4CLk5eDjYaNh31xhYCEfHV3e3yHdG1xcmRlXlpaXVNbZ15YUVZZXVdHS0tFTEc/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8W6lo+RlIh6hnZrgIySg36LhZCNeYSCdKKFjX9/g4Fzg4F9bHlsU1hMQUUzMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4t6fIiGfpeHdqGZiIePkpSljaypSIatr6+KgICTioGLgYSRqIeAmJiKnHNsfIGGh32OaGdneH5thYaBhXGEhUdrgHhxeXZobWtfd32DiH+IhYx6lZ6ciouJkoB7dYt2fHhtb3d+fXFxcGpaXFtaY2NXZ2ZcVlBRWFpRRExMR09JREZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soKe5r7O9tJeNkouYi310cX+Kk39+jYOUlX2Hf4alh4mAg4iGeYmKgHWFeV9jVkxDNjAuLzIzMTMzNjY4Oj0/P0JFR0hKTE5RVFRVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYCaloKgoZiVm5qlrZOZu7Gnu8jEp4qMoaSOk4mAkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ2h4B7doV9bnZ1Z4GUj4aJiYiJiKKro5aJj5iAe4KKe3pvZ2t4fXd8cWljXFlZXGldYWdgWk9MTlhTUklRS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZGPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z/i4GSm46EgYKMjIKKjoWAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhKS0xLTlZgY39nZ211nZuPmpOTi46PmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6ZhJKEgo+hnpOZkoSKhY+YkJZscHWJi4GVjI2Pdo+EcWyFgYqXkoOFiHKJoZeHk4qPkJeltqmbjZaig4eThX6Aa2prfX59f3FfW2JeWWZqXGxsX1hLSE9TUU5OTEZJUURETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp9hZOSeoGSiZKSfYuFmZKRg4CBi46JhpKIhImFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVFPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u+q7bIybfI0c++m6Bwaaqon4STkYWcoJqamaeRkYiVoZmad3p+lJiRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnpGaqIiXkI6CiWxzc3t8eW5mXltfX2FnY2BnZ11SRUtLUU9KSk1GRk1DSE1GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliX1BxdWBufWF3jn18lI6Oip+Sl56VnKqYnqpCRH2HiYiYjXmCjYuOjXyKhpCRj4KDgYmMioWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJUVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7Gzvpyzw6y7ycu4w7+3paOwsqysqqOKlpiFpaagopiCppmNoqqnpIeFk6OgoKqhpKmOnLCLlaSnuLucoaOwk6Odo56RpKKssK2ztqOVpquJmoqTi5V6e36De2VeZlpjYF1iY15mZ2BbT0RJSFRPRkhMRktHRkdIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gpOFiIKcg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iYOHkY+DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREE4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tcG2u7ukuMaptsnHtr65tKijtK2wsJuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLWutaCnqKOom6mwrrO6uLmonLiqjaWPkpSghnqBgHJXX2JVZGBgYV9fZmBcVUpERUxWUklKS0VKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGUfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONiIWCjoCBiY+Gf4aIhYqHkXp5b11XQEVOPDY6NDZBQjc2NC8vN0NIQ1FcT1FVWFVcV09fVUlLSkFAPkdLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyre8xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrCgopabopKlsa2lraynpJigrLO6oqmyubW7vsy/xcW9vbPCuLq4v7i7uLqtrbGmsaquvrG9vMPDrZm7qZWuj5iZq4l+gHloVWFgV2ljaWVWW2RaV1VKR0dMUkhESUtBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81Nzo6NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoRve3J4iGK5oZqjiZWUlpOUlI6Ql5KHh3yHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1ZlBcZEdFTDpRZGBbXlNGPztIUEVbY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQzxENkI/SEdLTVRaVF6Ur7i1u7nJwLu9ys28vcG8uLa8u7e+tbqyxmF1sqWxmp6rvqqlqKuqpKKztaCrp56Vlp6Yn66lp6elnqOUoqews6eysry2wb3TycnTxsLFzMLKw8G+vr+8vLi1sLm3t8O6xr7EybGeuquirI+mqbeKgHxvXV5eXFVgXWhmU1liV1NXSUVGT0tAPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scZCNhpBzbHJyc4jVwLaaoI2VmZmRjpeSlpaOhoh9h4ONlop/g4CCeXuLhId7i3mBioKXf3R9emxmcHZZXVxQZWViYGVkXVtYWFxOZG1VUm1uX29fWGdlVVlUSkRCS0tIRkhISEhCSTlEQEhLVFRWXVpbk7nAub64xsG7ucrLu7a6tri5tLi1ta63t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJionqafn5qZg6OdrKSqsKy3sLy41NDO1s/JzNLMz87Kx8DAwsq9wb3BwcXExsrAyc+0pLyxtbCcrLm9mn13aVtdWVdbX1hhYlFcYVRSTENCRkhGPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYHCXk5GUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4mHjJCMiXyBg3N7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm50l62kvYiHZ1tvaF1aWVRIS09QSktQTFNRSExBSkZLUF9fYmdqYpi4x7C6tLu+trHFx7awubGxu62zsqisuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJkJGSnZuhmJuVloeemaaarK+or6ezs9TU1NbRy8/T1M7Tz8zFwsrQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xaJ+bGFaWltWXlZZZFpQXVhPUkNCSEZESjtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZgmhycHl5g6GqnqaXjJubmIuOlZGajn2Ji4aOi4uLkIh8hYJwf4eChnuHcoOSjI9+cXl1bHF4f3J7bnhzbGmAcG1jaW5weWl4fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBdXU1RTlRRVVRcbm53g3KXrristaiwtqutvcGyq7WmpbmnrK+irLSkj7Gum5iYjJGUkYSPm4GNp5KciYOLhIqJhIuElJWXl5SbkJyYmZmenauspKeirKzO0tXRzcvS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVV5RXFpQUFVRT0k+QUdCQ0Y9QUI/RkU+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCRj4yKiJGHf4N7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lm3+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYWNeY3h7f4yCmaqkpKKgoammqrG5q6a0o6KuoqSuo6eyoImmm5WTkYqSj4iClIlrlaONmYSBhn6Rg4OUl62LlY6Vmo6FkpCdl6evoaCgpaSoyM3Px8LL0dPR1NLO083G1tPN1NjW1tjV19XK1drNytjW0cutxMPMh29rYF1cVlJXUltQSkhKSktAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXGAdn5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiYiLiX+EeXN7fYOHd4B7h5GXgYRveHFudn92eH10hnx5bId2dW59doR1eXyeto08QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGxuaW6Bg4mSjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaKjspyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ianKecpr3Dxbi2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHRza2FaV1BTUFhVRUdLSkZGPjo3OkBCQzpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9CPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot/h5KDiYaFioKIfXiFl5eJj4OHhod7hXlxe3uEhnZ7ho6OnnqNcH1wcHqAcnuBcoSHgG6OenV3fX2DdYB9h4mwdFmqwreNkoFwbmM9XmhycXFwbnd3gmZpb3J2eXJ6i4ePlJKblqCWiIyTnJ+bn6ugoaycopqaoKafoKyajJqNkZOOhX2Ih4OFi46gmZSIg4d+bJl6hJmHiJOMjpWMhnubiJOPrquTlZefmKautbyorb3Hy8jJy8vPycTSytTX2NfY19Tb19Pa29bQ2trS1snVzJN1d2ZlWFdOUVJcR0NGSUk/Qj49ODo+QDw+ST1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8QTw6OUQ+Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoOBgoV/hHx9hJiOh4x/hoeBd4N5b3t7h4J0epKejqF2kHaDdHWBfnSAhG+BkIJvkoV1fYKFeneHfIm4xqXDyriClpyPeHBmTmVjgnqCd4WhkYt5eXd7hIB8hHZtlJaVlpCYkYOJj5eal5emnZigl5+Tk5ijnpuslpGRi42Tg4yFiYmBho+RnpyaiIWMgYaXe4iJn5ePiY6Li4J8oIiQirygmJOXmpyopqWtnqe1v7+/uMfJzc7FzcnR1dXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVVVE1LRE5EOz09PTk6PD85PkE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk7N0lQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6inx+gH+AfoZ7foKRioWGeoWIfHZ+dW59fYd+dH+SnpGgg5J8hn54j355i4pvg5uBdJmHfoKKhXx+kXuQqY+Qw6C9jJuknH6KhX2Jc4yLgHOmmpyYlIV7j5GJhGlHcKGknoyMkZKFiIuRk5WPnZuTlJGXjYyWn52UoZWTjo6RjH6Qj46LhImSlpmfn4iMlJGdkYOMf6aZiIWOg4aEgKSFiou3l52RlJahpqCdnZ2jrra5tKvAxsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3dXV0Z2ZiVF1ZUk9OSERMQz49Pzk5Ozo6Ojw+NkE+Pz09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVlhmbW1taYGOinFzeIp7e4B8f3yIe318i4eCfnWDhnpzenRtgX6EfneFm6GbnpSTgIyIf5iHgJySboiphXuhjH2RjoOJhZ1/m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5yQg5mckJCOW4KikYKNn5OVjIeIjJKSjJSVlZCMj4qIlpydj5aXkoyTlIaAjImSjoqKnZeYo6OGk52VoIuKiY6ckIOJj4CDh4WkhIuQspickpSXoaCemZKbnaeyuKylvcLHzcjGz8vPzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpVUVVXQ0BJRD8/Pzo0OTo7Nzo8OzQ8PD89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozg4OzxAO0JRS0tTWVBUY2J5bWJ+kYNvbniLeXp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWChH1/kqain6ail4qdkJSXi4qol3KKs42EqJKEmZSFmo2jlqCYk4mbnqKTqbCfkZWRjo6IloxvjbeEmsTIsp2ipp2cmJaRspBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaanI+RlZOHlZiEgJCMmYiOkKuXl6SjiJmelZqJj4eYl4qFj42Bf4ePpIiNk6ial5OWmKGYn5mTnJuisrSlo73BvsfGxcjIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1tbTEhUWkJCSEQ8Qj44Mzc8PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIU1dTUkJjgkd2gY59fG1+iHl7fnuCgoN/d3eAg3xtbot/e314eHyFh4p+iqKzp6Oqs6KXp6ClpJaVrqKDkbiVkrOajaKhjKWcsKOknZmRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6aumJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMjJSTh5SYhoSSkJx1kZmylpeloYecmZKPi5GKl5uJi5eOhn6MmJ6JkJCbmpqTmJeflKCdlJ6boLGuoqS4vrTFx8S9w8PAxs3KydOmzs3U0tDW2NPQ2LpvdnJZXlNdVU5HSU5FQUNFNT87Nzc6Pzw8Nz00MzY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODQ2Nz06SkZER05aXFlKZmA7SYSLenpuhYZ6fYR4gYaBfnB4fX59b3ONen6CfHmGi4mGhJKmu6yosb2vpa2zs6mkorCsipq1naO5ppWtpZaqrbinpKOgmqmYqqSusKqamZyUlpGXoJiau7uuyqFqt7irsJWZnqOsk5e+o16qsoOKio2Uh5F8jo59g4aOkJSViIiTloyQlY2LjZeYk52ZtJeVq52KnJSRjpGSjJmbi5OekIuKlp+hjJSNl5mdkpuYnpShoJScnaWuqKGktLirwsjEtbq9vMXHx8LRocbKzc3F19bRy9SfbXdlWVdRXFBORUM/PUNCQjhAODg1P0c9PDY8MzUzNDU0NTRCNDk6Qk06QjtBSEM7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSUCLin6Bc4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcHAr73Gu7O0wL21rauztouosq6uvqubu6Worbm5q6emoqKko6qvsrGqnpykmZuYmJ+jpqWSpLqvqcC8ra6yuaWkqH6Ih5ytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNjJWXlJGal52om7GakaycjpqPko6UkJCWl4+RoJGJlZujrJSWj5ScnZKgnZuYn6GUmp6mpaSio7CypsHGw6+wurfFxMO/zabHxMfEvdbRzcXKhXBvXllXXFlMSkJLQUZIP0FAQzs6NT5BPj01PTc+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg6NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QkE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1dk4yMiXuHjIeDjHWHkYqBb357gn9xfoF6lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+ruruYs7e6ssCupcCkq7C7vaquq6OjnqerrrWwqpygq5yhnJafsLWnjKO7u7bBvKypnbOlpKiUhY6qxMOkgouPh4iEhpWUjXqDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWOkZWSj6CUh5efobOelJmTn6CXpJ6an5uglJiepaOmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdRTEhDTUtMSkFCPkRFPDVBRTw7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZVRiapmNloqMiJOQhol5h5SQgXKAe41/eIeCgpB5jaGWqJmambq9x8jJwdLJysLNvcKzrby+qLrAvbvEt6zBqayzvL+qsKqkpaSsrrOttrWhoLCfpaKZo7S9qpypvcKktrevrJSyrKysl4eaqqalkYKMk6WWioF1ipJ5hY6SkJ6gk4+Ti4+NlKOZl5yVlKOeqp6RpZqMj4+PlZaIfI+Vk5KjmpWgopy1pZCelqSjoaWdnaWYnZWXm6Sjqaeisqyou8DDr6Wzt8zAua/Es7u+wrmtwsPCwJdpdl5VVFlYSkpMSUZERElEQ0JETDo0REk6OzQ9OEYuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYVpjY1aej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCuLC6vLS9y7vDwra3vK2zv7m9rq+ooKmotq6tqbK3m5+toqehnqu3uKqlr7/Fsr26s6irtrSurpeWpaynn5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOlnZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfsqWVoZWqq6mmmp6ml5iWmJSgo6ilnrarqbm7w7SltLbLwLiqtquyu7iuqLi6vbd/aGtXVFJTTUVKUk1LP0JIRUVJSEc5NkZNOz43PkFLLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz40RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs7O0sq/u7ayu7u7vs+1xL65ubezsbWzuLOrp5yrrLmqqKevsJikr6SnpKW1wLGsrLS/w7rAurSoura5tK+Wpa2vrqSLk5ShjXTCmn2XmoSOl5mMsZWbmpWSkpmZpaOVoJqWmqmdm6CgmYqNj5WcYEqWnJqUmqWWVJavn6+cnqOUrq2qpJmgpZOTmJiNm5+nopm0qKqzu7u7qrCyyMC5pqyrrbKyo6GysrSkbWtjWVdNT0pET1BQUjtIS0lISkNEPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52gmqOktcm1qcW5wsTIysnIzM3Hv7uzrrm5wcHMtci6wrm1urCvr7O1pqObqrS1qqmmrayapa6lpKisur+orLa4v8LAvrmzs8Wyub6tpK+1rLmmiJuXppt2v5+EmZ6Ok5qajK6XoZybl5San6GpnqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOrlKepl6qso6KepKeSkZmch5Scop2Wsaapq7m2vbKyrr65t6Cjp6ilppybrampi19iXl1PSktGR01KVk09TkZPS01CREQ8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSgjJOrm5GSk4mrjYahnoyjrJSjpLbGvrTAucLCx8nFws3Iwr65sq+6tcHCyrXGssK8tbqqqK2tsKKjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trnCsr/Btaq2t6y+pY+jmJKioL2fiZqhmZefno+3n6mcpqKbnKGaqKSzoJudppyoqp6YlZCUm4uWiYykoZSdop2gtK+lpZKvqpmqqZycoqKokJSUn4KPnp6blamkoaGztLq0rai2srOenaOlm5eUmKqhnnVcWl1cSEdFRkxQSU5FR0hDU0xKQkVHQVdTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POURANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ekn57DrZyXpZiaqpyWmpqPqpaVp6aVrayZoqu2xMO8vrbBwsDHxL/Mxbu9ubKwubO/wse1v7C8t7m2pqSrq62goZmqqsSipKmrpp6sr6uiqam+t6etv7K5t8e2tbm5wLPAw7i2s7SwvaOXo5eUnJSuoJCio6Wjo6CQvaWpnamrnJyhm6WevaKZo5+iqayhnZeOlp6TnoePhI2Tn6SgnrWsppyVsKaZrqWcmaicn4yYlJ6DjqCZm5KlpJqYq7G1saqlqq6sm5igoJKOkJWonpRlX1dfW01IR0lOTEhGRElBPlFJQTxHSUlcUk9LPUlPVTVCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1NT85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVFGPEt4ZWFWS6Kao5yexayhn6yfnq6gkqOflqSgpqmsmLaxo6qztsXEvb+1wMK7yMK+yce2uLW0sbO0t8HFtr6xuLW5tJ+mrKqsnZ6epaTBpZ+praCkqa2voqaovLWmsb25t7bEsrS4u8C0xcK5ua+ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6uspqGajZqfkp6Jjld/lp+loaC4qqaTmLSinrCfnZmulZ2NmJOcgY6fl5WNoaOWkKWtsaupoqKlpZWVnZiLjpGSpJ6IXmFYYl9LR0pKTkZFQUdLPz1KQjk5SktOXVFRST1MV1w5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSkw/SD81SExYU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1trV3FHRTY9dWVcS02enqGZn8SopqG0op2zqJOrpaCjn6yprJ27sKistrHHxcHCssPDvcbDvMTJvK+wtq2wta++xLS5srC6tKyZqLGpqpqdpaGnwa2brLGbqqOusKmkqLy2p7e7vrC3xK2zs8PAtMi0vListLatqqKmlpWVpKyin6Cbp6uwr6+7saagqaiamZiToqO4oKGjkrCwrKWmn5OinpWej5CNlZ6bop6ntKemjJeym6KtmZyarI+dk5WSmX+RoJWOjZ+glIulq6+lpqKcoJ6RkpqThYqRjZudfl9kWWZkSUhMSVNBQ0BJSDs7Rj85OU9OVl5SU0o/UF5dPUhQQkxMSTlOY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXWVwQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/x8G0q7WosLmsv8OzuK+ttrmlmKqyq6uYn6aXrbu0m6iwmqygrbSyp6u5sqi6tLmzucCqt7LEvrbHqMCvrre1qaesoZiXkqaloqKYmaWvuK6ytbagn6mkmpSWlKSgt6KlpZawsrKnq6ain5qam5WXqJ+gmKGer7Kipo2WrZikqpaXnaKPmoySlpiFlZ6Ti5CbnZOKqKiqoqahmJ6Vi46Zj4GFlIiTnndhZ1tqaUxPTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VWRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNElvZ1VDV0aMeWZDO6OjnaGmv6eor7GiqrWrnrqxrKOrtLaxsLm3sLe4uMW9w8e9vcTCxsC4wMXAuam2pKy7rcDBt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptbatvK20s7m3rLixw7vAwKfEq7G3r6mrq6eemJmroaKhkZihsa+zrLC5mpupn5qXk5inoLeppqOisbG0rLOoraCcoKCbnqWcopedo7Ovm5+Qk6SZn6eZk6Gdk5eIk5aSlZackoiQmpiUjqiopp+inJebkoWOmYt9i5WEjZloZmtgbG1XUFFbVUFCRVRAOztJQTc6WFBkXlBXV0VZX15OTVJOXktKPlljXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURFQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqr2iqrCspLK5qqa2tayhrbW9r7O4u7q+t7fAwr/JxLnEw8C/t8O8wLautaert7G7vb60qa6xtp6Wq66nrpemqI6nu5+krLOeq6KxsLOsqbW0tb2usbK1rLC0s8G7xresvbCxuKytqqOypp6lqqCkl5Can7Oqs6urs5qdp5yblo6hpqW0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZeZkZGdmZ2fnY+qnJWXhJSWip2Ym5OKjZaWmpampaOgnZaVl5N/j5SFe42SgouUZGpxZm9xXkZZZ1ZEQ01XRFo5SEI2Pl1RaFxOWl1HW15eT05SWGRKSkJcYl9QTE1PWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOCpDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtryop7G3xrextr3Bw7W1usS+zMa5w8C5vrnDt8C4srSsqbq2urm+tKmtsLWXmKesqaybq6uOq76dq62xo6ugsa2zrq21sri4qq6vsai1r7W7vMqzqre2sbSvrqahtKCbqa2gppaWm5qyo66hpq+XoaSampOOo6aos6qip7Otq7alr7G1r6OZnaynmpefm5mrt6KXk5COmJyhl5aTqp2akn+Rl4ydm5iWkIqUkp6ZpKKioJiWkpOVeouPhXuMioKKkWptd2x0e2FGYWtZSUdaWj17SkZENkFiVGlbTVxiS1xdW1JTUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NigoOS4kOks1LiJVX1RfLzUoQ19RXC4qQS9KR1BbRzNjWVVLRJmXobKpsqqspqSvrraquLa6pay0t8q7tLu6v7+1s7fDwMzIvMO8tb2/v7e+vLG8rae6ube1wraqrbC3lJanrqupo7CplK+6pKyxs6eoo7K0sbKwtLG3s6mvrLKnt6+3tMTGt6m2t6yxramno7agoKiyoaWVnJqVsp6onKCqjqmjnpuWmKampbioo7K1rKiyqK6xtaukmaCrqJucnpyUqbiclI6OipebopePl6Sfm5SCkJWPnJuXlpWIlo+XmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEtOY1w+YntHSThHZ1dmXExeY01ZWVdVWFRpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZTI3J0diTFYlLUEuPUVMUTwzcmtJQ0ORmaWvpa2vq6ilsbO0q7iyuKGstbnJua3Bu8K4s7G1wsLOxb/BvbO8v766vryyw6ipubC1tb+8rquysZugp7GtpqavpZ2yta2qsbGsqai1u620srSts62qrKisqbitsrDIwbmlurGpra2lqK6xpqWkr6SpnJ6dm7Cao6Ojo5Gtn6SgoKKrpqe6pay2tqarrKmtsLWuo56jqKqboJubkqOzmY+JjYaQoZ+UjJSbnpGRg42Skpyal5WUh5eSlZmnnKCejJORjpB3fY6FfHt8hYiIcHJxfXx8XFNkb15OWGZcRkSWW0c7Tm1YYlxNYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpHPjNCSFMsPpBrO0dIj5yqrKKqsaSppbS1srW2srKirK69zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SnrLassre8wK+rsayfo6etqamlsKOqsqqwq6+usK6rs7yntrCyqbKpq6Wlo626raqyw7q2rbupqaisqaexpaqlo6+qqKKfnKOtlaWemJ6ZrJ2ip6miraakrqy4s7KiqqOgq6+wrJ2fpqepmaSZmY+fppiHhI6Ji52gjoqMlZqNjYSFj5SfnJSXlYaWlJOXpJydnIuSkY6Jfn6HhXx2foWDhHJxcId0bF9aYW5iUXJwXEs8hXxGP1h1WGFaTmRcTlZWVVdRXGFeU09OZ1hWVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg8Qi80RUtYMkCVWT1MRZaYramiq7Ocqqqxt625t6+spqurvcm8sL22wq+xrLPDw87Pw76/s8DBw7m/s8fDq6+3rbK4v76xrK2rpKeqsKioqbGltK6qsa6tsbG0rLS8pLezrKyuqKugo56wt6uqrbq3pbe2pKqnrKuqraGpp6eysqSnpqGhrJeqoZWboKaepaKqpK2joKexuK6upKajm6qsramcoaSjpJigm5aPl5yTgoOPiIWboIuKjouXjY6JgouXo5uQkJuMk5KRk6Oam5qKj4uLfIaBgYN6c3+Cf3xydYukh3hrX2BtZVdkhmNOP2eTTEVieVdiWVJlVU5WVVZUT1xdYVVLTmhWVVZJSkhJT0JHSVNRWW9BTlhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhz1HRkSXk7Cmo6uxmKuqrrast7OspqyqqbzAwLe4sry1prKww8nL0b/Auri/vsG5wbnAxKyxtLGzusC+srCurKurqLaqp66vqrmwqLKxrrKtt6q4uKa0tquspKmqnaSes7OpqKS0tKC3rqCqqKqoq6egq6ypuraqq6qqoqqgrZuSqqGdoKWipqOqn52ota+ppqujpJmlqKepm6Kjo5+ZmaCQjY+YjX6HjIeDnZ2Gg4mJjYyOi4KFlaKajY2akJKRj5Ofl5mWjIuDf3WHgX+AeHSCfnh2fYCHnY9vcWdmb3dcYHKHak9emVZIbnlVZVdRY1BNVlRVUE9YWmJVSE9pVFZTR09YVUk+SUhPUVB4TE5XPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMVBiMDI/Zj1OWD5DLD5MVF8wSmk1T0Q8l4+xoqasr5qspq2wtLWwrKawqqm6vrvAsK25rqG2sMnHyNHAvry6u8G9usK/vr+tsbGxtby7wbGxs6qzqaS0qaaus7O5saOuuLKws7usu7Cprbasqp6qq5+joLauqaGfsLOitqqeqKeqo6qhoq2tqL2vrK6toqiooKyZkLChmKKhp6ifqJuaq7Gqo6CuoqGUoqSjp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioWOi5CDg5OfloiRnJCTkI2RnJSXj4qGhnh0gn98dXh5f3lycnhmf4akdmlfZGmAdGaIi3xSWHBfSnhzU2RUUV9NTVNaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBLZzo0OF89YWQ/RjFDUFtbKkhMOVVANJKQs6Glp62kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusC3r6+zsbm7uMCzsrqsuKyitKeorbO3urOoqL62r7e+sL+nray1q62cqa+joKWtrKicnquzpbSomqqnqaOonaOpqKm+q7Swrp2qpKGvnJuzo5aknKWmoKWbm6qspqCcq6Kck5yipp2Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Pg3+TmpOFk6GMlJGLkZuSlYeJf4Bye3p+fGl4fHlzbm97ZoR3hYpkYWdfcoR6bGZ4XV5UP1d7bFRhUFFZTExOcnVdSFpbZ1lFVWVPQz5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OUNWPSqQlbKaoKGqpqWiq6W4s7SmqrGmrLjBvbWvormtqKiwwsrJzMG2vcC0t7+6yLTCtLKxtLG8uLm9ta24tb6sobOnq6yxtri1rJ+/vaqzwrS9oa+ytaqsn62wo5ymqaqknpulsaewoJ+rqaehqZylqaGtvKiusa6hq6Okr5+fraaYn5uhpJ2gnZukq6Obm6WllpeVoKOXm5alrIyekZGRi4KKgICOgXuZlIyIe36Lho+Ni4mEkpiQhpSjiZOSh5GakZOAiX15bH52eXhjfHpwbm9xdmd/cmqEZ2VnXWxzjWxgaHBgbz1beGxVXU5QUktKTVRaV01cXmxXRFdfT15PSE1ERjs3SEVLTzxyaEtLOUFFOzs9Pjs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJqtmqCYqKSkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i+tsK+r7S9t8S2wrGtuLGzwLS7vbeoube9qqO0qKmrsq+6saucvb6msMG2t6KutrWnpqews6CepaaooqWZn62oqp6gqq6moKaYpKmgsbmfo7GvoayhraWcp6epmpqbn6WWnZ2bn6unl52hqpOalJmflJmWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLl46RfYV8c3B+cnR0YHp4aG1vb21ofXFje21pZWFcZIR+XllzanJJSH5pWFlNUExLSFBSUUlPXF9uU0RYWlJnTkdLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj0vV1Q1KJefp5qdl66hoaGlobersqa0tKqoucS0sq2gt62urbC1xsjAtr7BubC0vLe+u72vqr2wtL+wvcO5qbu6t6entamorLKttLGonL+4pq69uLOfsbewqaWnr7GboaShpaWgl5uvpqGeo6ivoZ+hk6Wlo7ewoaaxq5+so6+YnKqlqZ+Xmp6mlJudm56orJqdn6aXl5iWno6Tl6KoopCJi4+GeoR+hIt6j5eJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeNj3mBenByd3BwdF95d2Rqa2pnZ4JsZXJqa2RnV2Fyf15Za3VpWEV9XltYT09LSEhSVUcyOV5ebVBEV1VZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS46MV1RLDKXpKOYlp2rnqaho6G4qrChu7ilrL3Esq+uorWwrK2vtcTEvbO+urews7m4uri6rq2/s7S4r7/BuKu9urSlorOrqau0ra6zpJ7Et6equLesn7K7qqelqK+rmaOnnKSmlJihsqWZnqSpqZyhn5SmoKS5qKSnraaepaGok6CpoaGhmZueoZOcnZeho6ycnJujlpOWlpyOlJOjp6SQiYqOhnmEfIWGfZ2NiYqGeICDh4iIkYWUk5KMkZWUjY6Ue4OXkIt3f3xtdXNtbXRieXRoZmlmY22EZmdoZGZnaF1kYmllWmV6YmBQclRbW1JLSkhJT1NAICppXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1PPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdgTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK1rqevr7fBwL2xwbexrrK2tbm4tayqvLOvsrG9wLeuvLywpZ+2rKantaqrr6GhxayqqLK1ray0uZ2oqquxpZidqp+npZKZpa2imJ2kqqGboZyYoZ6nt6avqq2hoZ6dopWhpp+ioJmcmp2Um56Vpp+uo5mYn5aVj5WZjI+YmqegkIeKioh4hXeCgoKdh4qCiHt/hYiGhZCElpWPj5CRkJGNknuDlY+Fc39+Z3lwbGtsZ3VzamFmY2Fzf2FkZWZkaGhhZW5ZXVhcbGNhTWdXWmBWSUhJS01SWD45YGxpSEJVU1xaSUdGRUEuPD85QTg5UkdANzpCMDM3PTc2OTM6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYUUlNZ2loZKNrqGamaCXpbSyo7K+t6Gxxbu5sLGjt6urrqm5vr27rcCyrq+utq+zubKnq7mwr660tru2r7m+raaetaugobKmq7CgpsWhs6awsrG3rbSdrK+srqKZnairpp+Vm6emoJmlo6mdmp+blZ2drbGmuqiuoqGam56Zn6SapZ2Xn5iblpqhlKqXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiThZSck5KQkJGXj5B/gY2Og2+Cf2d5bmlsamdxcmtaaGNhcX9gZGdqbmtlaWVjbFxsbHVxYlNiaWNlWklHTE1PWVFQVWFlgVRAVlJaVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6TGpbTVtLWGRjQEExR2BBJzSUo5yPj7GdnJWhm6mzsJ+4wLagtMG7vbmxprawqa6luLq4uK27sK2rq7eqtbmtpLO1sa+psba2sbO2u6epoLaqnp+ro6qunazEma+msLG3tqyrnrCtr6qim52kramblZ2npJ2aqqOllpqgnJKco6yrqbuepqSgl5qanqGPa6OWmZ1xg5idpYB2kqypn5aXopKKmJmAl4qfjniFko2CbGl+d4RxbIaKhn2Ei4ZvXWRhZ4SYhmyLkJSSdXmLhH+DkH9miIFodmpmWFxpdG5NT2liZXCDZl1kZm5raF1bXImQhIhoT0tEOEZUZ15KSFFQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9Njw0Zlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyODZYgWwxNU9rXE5bS1tmYj5HMU5fOysuj6SbiJaxm52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0s7Swua6pp6y0prG1oqe4trWop622s660rrSiqp+0q56jpp2nqZywv5Wop7C1ua2to6isq6uloZ+coaiom5iipqacnKeonZOen5mQn6irpLWwo6KjnJaYmZijiKGPkpqHoYiVn6KApYCorZ+UlJ6UiYRyeI2Og4igdYeMaZaIZn5zeKBvh4eEfox8f6GgoJmAfIefdIiOdpuKa4eCg25pZWR7bXJiVIZtZG1pmHFYaW9thlddaFpralqIcGt5codoh4RZXkZOPkZeTUZSVlZRUFJXVGdeTVpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tPW0xbZ189SzFUXTcvKI6nmISerJ2amp2fq6qoqr7Dr7K5vLfBv6qkt7GqrKa0ta6vs7erqaWyraW2s5ustba1paaps7GtsqivnqqhsqmgpaWcoqWesbiVpqent72mrKapqaynpaGfmaGopJqZp6OkmJylqpeUopyUk6Smp6G3paOfo5iVlJiUnYiukJiViqqMmaSdhrGBpa6flZuhl3qC1KiAh5TAm8Z4d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gmyXsauxeWlsWLGub2ZqvJO8bmd5bXGP2H5Sa2K2sn1+cJV1mqGqkFZOV2FPVk5HVlxYUFBTi1xXW1BBXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQUUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWVo0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW3v8KrprSuramosLWqsLa0qKimtqaoua6csrK2qqWkp7KvrrGnq56npbKloqKgmJyiobKvlp+kobW6o6mooKytpKKdmpqjqaCYm6mgn5eeqKiRnaeblJ6ip6OhsKOen6OWl5OYkpmFr2tqjI6qf2iFloetZnGfnpWbqZdxrqGkf3e6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhrqmW+c2emjHaxanyxeHWSlGNtbaduXISgRWlniJZFdZxffWZ7o6eCWV+Lq2h8jHd7aqg4Sq9bWFRsY1pLT1lgXFZWO06IUFdWMElTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpONV1XMzEbkqOWg62npp+jpauyuK20vb6wt8WyuLrDp6mwrLCpqrGvpLG7saWlr7OjqrmpnbKysKOkoKqtsKyvp6igo6OxnKSemZeZnp+wqZicoqC1s6Gqm6GtrZ+dmpeho6mdmZ6loJyZoaekkJ2impehoKyfpqagmp+hlpWRl5GbhrWbtXmHqZq2mXiItJu3f5SXmKyXf2uBpnuBhYaRlJJ3q2dqsVuse46HlHSJcI6GgX+IkZd4g4OLl4yDoI+FsHZ3n3Jra218i0+lWEhkZJl+Y2imX3hxdFKShl1QqW5jcHqFgGGdL1OibltUa2dgTEtdZFhcWkI+sHdXWEEjTWlFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtFLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlgVDUwHJeglYm0pqehramos6yqu7fCsLzDrbm2wqutra+vqK+zqqKwvKuiqLato6y1pKWys6ijop2oq7OpsKimn6CgsJegm5eWl5uhsaWcm6Sotq+hqI6pp6qbnZaYoKapm5+dpKCcoKOlo5abnpianqOrnKaanJqioJeTkZSTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYahgKWCeat5j51Wr3uJfp9quVq5d4eEfaaDlHyZe6l5jp2Qe7FtjoR1kLyGb5VQr6fFilGgemNgqmFzcoZrlodeUrW0yIV+iXxjpDRDnXVdUGpoZFBAWGdZZGFKSE1qSlpTT1lmWkNEP0U/MDw8NTk8NzQ8PDg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsqippbOqpbWopLy4wbC6wLK3tL20tqiysaSytKegr7apm6m7rqOxsqGytLGhpJ6eqKqxqbSppp2en6yYmZmYmJeZpK6fnJeorbGpo56Oq6KnlZ2Ym6GnoZiioqOhm6KiqJyeoJ6VmZunoZynlZuan6GYkJKVkJ2Ism5otXKsiHCPp3K0dnS2e5yapo6QnY2jfo+eo32wdYKQ0tJ1XK58hX+kbpuqpmuHhX2tfZiZkHuxc5Odj3mzZZZ0hZ5vn2aUUsmLWsJcn3liX61fdnOFYZaIXVnKnW+/fnJNS7VTVcZkVVFqY2VYQU9rX2xpUFVGSDk9V1JbV1hIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56RprCtpam7raa1pae2u7yzu7+4uLW8vLSmtbWjs7KjoKywpZiou66lsrGctLiqoKWdoaqlsqisqqWanZupn5aWmpqTlaWropiTpquxpqGVkqyfpZKUoZylp6CVm6anopujoK6aoJ6dkJabo5+dppSdlZmjnpWZlpKbhax8eKh3o4+Lh6pwrYyFqISam6OLk5uLon6Rl4euhH+Bs1xyslOvfYKCo35x1313hX6PnoeZmnevhoqRnIh3tGGaZZuCgpVskluwV0uadZh5ZmCtXnZ2hmeXiGpdr3aVno93azV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVE7QUNATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDQ3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKG3sZmzwa2osqeqs7q3tbm/urizt762pri1obauoKCprJ+VqbarqbKyq620pJupoKCoorWnpqqkmZ6VpaGUlJ2ak5elqJyUkKetsKWglJmon6KPkaKaqaWhlZqmqZ6dpJ+tnKCdn42UnpyfoZmYnJWWoqCUmJGnnYepfn+meaGPkISqcK2Ng6eGl6Gji5iXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0qIKPm42SpHyWkJ+Ee7JenGSgfoKVbpNdq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa21kT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjEwMjE1NCsqMDUvNywmMjEoJCU2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqav62Ys8Kuq6yop7WxuLG1v7q7s7K4vKq7tqGypZ+mqKifk6yxqbCrt62qr6GYoqCmpaS6o6OsoZeckqOglpWfm5WaoqGRjoypsLCmnZaap6afjZKkmKerqJaYqaifoKGkrqOgnqGOlaGZoKCSnJeblZ6hlpaPrJyPrm5ytHSpjHeLpnS0enW0gpSnpJSdjYmkh451uG+Le4uia2u2WqGGZZeXaKCip22UcrR0k5l/s2qGkoitanW0YZ1mom+HkmuYXa1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqkm7HArq6rq6i3qrivtcG1vbKxu7iswreqrKGdp6SinZKsq6i2pLSorqqhl52ooKWruJ2jrZyWmZCmo5eOnqGcmZ+fkZSVq7awppiTm6yployUppqlraOSmKuzpKCeqKywmKGikJmhl6CblpuXoZOdqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2wYOasmGDunnAfHW4YrWBjIepfZWCrKlxe391vIinoGmdYaaPr6J+jXWHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWFjZmJteG9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExcLTY/Oaean6K8o5eww6+tqqqtsai5r7fFsbuzr7ywrsKyraajn6WinZyRq6Wqs6W1p62koJaaq5mnrbmdo66YlaGRpqCTjp2jnpmfmpCWk6+5sauVlqOnppSQlqWdpK2fkaGorKCcn6mksp2ipI6moZWhmpyXlaSZkLCgkpWqnoWQmbaAkpKNuJZ5g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCBdJG5g3yGhouGjXuKh4yXfaS7ub2cdXmzo3R1l3V0sHWZnmaHao22dHNxd7aMXoB5fYhng3lsemKLrHB0hX5XW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw+SjI7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorauqu6+xxq+1tLC5qLW5rqukoqefoJ2ZlK2lrquntqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKUn5eSmJSytbasl52jo6KLkpKmnKarnZappaacm6GqpqaiqKGRrJ6Xop6XlpidnpCwqZScp6KPa39qnap6iXR/nI92e2aIe72+wLpvkoNxlIVfcmpaXpuKYWSHj5ZsYH+VY22cdmKVbICZlZRmXmBjcZuJaHKMfIaUZmp+cXR4f35jXHh1gWhQXG6EfHyKaldseoJySUpvhXBOcU1EVlxmYExaV2ZjX09bbXVqcVJPRERNPEhIPEw/MSwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVLT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl5JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+posGkmrO5tqOspq+mqLayrMissLSttqS+srOnoaSqnaOcmpqsp66kpbaqpZuYlqKcp62pvqippZWUm5agmpOZpqmokp+Qj5icsLK+q5qmnaeiiZORqZuppJycrKCjmpujp6yin6mhma6blKagl5Sdn52YsaWZoqiZnZKfnaSmm6ikm56bnJuRl4Job35xd5GXlJCEibSqjYWYlY+KjJmXiJSViYOTk5GJjpKUmJSZl5qfoZqblJ+bjYF6pIVranyRfYF1iouDcoJ4enZ2i398iWpzgXSDdWR3fXZrb3hsX2Jbb2dNWFlmal9XWW95bm1mU09GUzlQWk5STycqO0tCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSSdSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6WwtarJq62yp7amwai1oZ+lppyllpWhrKetpKS3rKCZl5ehmK2qpsGfrKSWkpyXn5iUlaOenaOok5CYqKiywq+Zqpyqno+Vlqmeqpyeoa2YoZudoqWvpqGjp56smJalnZmaoZ6enbChnaKnlpmUmpWipJikoJmij5iVi4uOkJiukHyVnIKRgYmpqIWAmJeLhI+giHuEkYWFmpGHhoqVj5uXjpGYnqOWmZKQnI1+jWWhs66FioR3e5CLfnh5enBneZGBgYhrdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmallre3BqalxTTFBEX1VGQD4+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECyn7mvvq2rrbGyoKqmsq2jrLOwxbCrrqSzr7yltZyhqKOhnpmXqaeqpqWms7aflZWempqwpq6/oayikZGempqUkpainZepnYSdqaujtMezn6mjqpaVl5qnnqmcoKWslJ+fnZ+qrqikoqqhq5qen6GYpZ+cn52wpJmfqZSZmZ6Sppyaqp+cmGaFk31lf4+bkGN6jW1oanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGid2tqi5mjn5hzbG56hIyGeVhlXYaCXmyLi4N3XGh0d3eSgIeBb3eCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4lpanxybWNdUU5WSmRYQEkzPUY4P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9CSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vLmvq7Kwq6Wora+xp66usL2xqqmlrrCxoK2XoaSeopqapqydraSmqKqzrp6WpJCjsKa3uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Shpq6enZSeo5+knaSqqZKfoJ6gqq+pqaKpnqabpZ6noKyXopylsaWYnayWop+bk6eZoayaoH+9hIlztHOFn4ataHe5xLhxkqGjeqaZmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWycI6Cb8p6gJt4koOOgHZ5gYB5cXuAhnB4hIqSeGx1kWJlXndjX2WBYl10aG1kYlhLVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXlxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWhucO0r6+/qamUo7CqsK+uprK1r6ump6axq6CrmJujoJybqqejnqyjpamlpbSknqOUpq6tuLSnr6KSkZmdppORoKKYnKCeiKarpKutv7+woKiuqJaRn52imaOkqqOToaGdnayuqKqlo6Kkn6OknK2pkqSbqa6qnJ6rna6jl5inmKOkmZ5/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Rdnvbe3+ZcX6IknV/ZXuIdnZsfodtfYSOkH1rgIxfcGpvZmBfeGRbcWhqY2ZgUlRTV15KT0M0QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9eXltXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcDAtLSwt5iekaSqqa21q6ayrKyspaymsKqhp5yappicoq+foZ+op6OmoZ+xrJyelaaurbGrqKyglJKbn6WTkJ+ll52opJ6to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapqJulpaKgqpKss5aloquqnqSop6OyopSbqJyhnJaVkZehcoaMmHaGqIdxsHydcax9oKCCpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd/qoiijJGMnH2reoiTj59/eq1WnMR7kHCTwX2BlW11cIxtZndlh25heG5yboeJj46CbI6NY25zdW9gZm1kX29pam5mY1hTXGBaUlJDOElIQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS4rr9PGx7Kzn52jj6Ojoq6vt6+psaeoqqmuq6ynoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrpqdp6OurKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGoqKibqqajoaqar7GiqKyvppqnrKurs6STmaWnnJaThaRrpHWKeql1e7JxgqWKmItxiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgqN9qX+BlIauXnuoVZ2ikoJ7o5+AfMSwxYxzr7SzuXJiqa/CdGiLi5WNgGuWj21seHd3bmtmZWRxcWZ8aWNdVl9pWFhUTExQTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8HJ1tbAoZmrqKGvop+xtLCvqayjp6erq6uppaagm6WfnaanpqSdrJqirKGkoK+jnpuTqqS1sK+hqZuclpWnpJGboqifn6acsKWiqLGstsextKmrqZWRnZ2hmaCls52aoZScnqeqqqKtmqqmoKGporKsoaqzsqGcq6qxsbmmlJilqZqdk32qbZ+EiHareXywboKki4iflpWeloHSuLS4yYGCsl9glKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqV0gqCOgn2vX2+1Y7F1S6OHbadHg5NkjY+ckHpulI58bnl0fHptW2ZqcnFngWleYVhjbVxeWUlMTEpFREJCPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9gXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00T1RRHRw7PEYyLSSnpMDHua2psq6tpaOcs7msq6Glm6imq6yppqCmpZiro5+vrJ2moa2an6mlnae2oKOYlKirtrOsnKacoJaQpq2Smpyno6Cqpq2goqapsLPBsbKprKeTiZedpZuipK+ml6KVmJylpamZrpyrpaSdq6O2rKGxubCenLCotbW2p5aZqqacoZCDnk53moKAn3uEo3yCpIOGpp+cn5SEuHx9ermDgM3Gw7Z4m6KSi59+mZeXinafl4qkmKSofq+FnIOehKx9mZRhpWyjcZCFkIF9loRyrGCkc3GAmmG8fVJVdY2RoZR6e4+NhnJ5c4R+b1tsbndzaoFuWmRfaG5iZF1LS1FTQUdHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0hi4eZqaykq7mrr6Ccoa2ztKafoZWlr66uqaeepaWapKehs66iqaezoJqppJSjtaOjlpehqbW5pJujnaOTkKKymZ6bpqWgoq+sm6OnorWxw7CtqaypkYeQnKedo6ScpZeemJiZpaOomK2hq6Kkl66lu6yit7aunp62tLqztqmaoLKjpqCIkNK1w7d6h46GkZOPgKZ3lKJ3jKGShaWDjHKriIa0bnNqmqSdloqffZeZh4eQc66CpZujjaaKk52IlJCabXCyXKVzk3qcbJl/e5l+bqlhonJzfp9ic7K4aHeOkqOWe4mJjod1e3iNgWxod2h4c26AdF1kZG1tZmhgSllXVzxHRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQqJZJyjYqtv7+8u7Wel6ikrraiopmVo6qorqmrmaWin6agoLWmoqmnsaSUq6OPpK2knpGamqq0tKSdpZypkpSXr6CgnqajnKecs5ifqaO1qsKvqKqooYyDj52ioaajlZqanJiamKajpZepp6ugo5uspryslb2wrZ+jsrW7rbepnqy1pquafKiSfXyweIuApKWInG2xb6CHrXyij4Ool5qCrIqGrYahlaiho5iGn4GZloF7kn6rgZ2Zlourd52gj4iTkn96r12jgX2mp2WegHyXdWquXaVscoaZXWBbjKBtlI+jloCRiZKIeHmBln5pbH5ifXRtgHlgZ2Vwb2dnaEJYX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZVVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUokKSm8kpqEqcbDt8G0n5utoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZeKmpCusa2noKibrZiZj62ioZ2loZmlnK2Xn6iltqi+rqSpo5+Lf46bmqCmnpKTmZqTmpmlo6KYp6uqoaKeqKi8pJfDrKujoq20u62wqaO2sayumnevf5CKnIaHfLqtiZhksIxklq59oZCEp5ecgq2MhrCHqJqkoqOShaBcbGuCs2B/rXx7goGybGdumZeLh7FafbVcpINryKJmn4F8u1l2tVqyfVOvgXqsWIChbZaNpZiIlI2Sk3l3jJt8Y3N8YoN3dIB8YWlmb25mZWZPVGJbQVNdPUgoPjk9NCEhLSQfMS4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJfX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TCs6Ocraelt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWvqaOOiZuOr6ypp6Oomq6Tmo+pmqGdpZ+ZpKKlmJ6iqLGou66kqJ6djnyLm5ahoJmPkZmbkZmXqJ6fl6etpaSkoqSoup+gxqemqaGstreusKmhv7CwsJiCqpOjro6bgIakl5iQgYC4w7qEj52UhaiZnoOsjISviqmdmqarkn/WvcKqYqS/vX1/o4KD17u4tYSUkoKevb6Ea6OCcKuFb51/erKxx4Nrq7G9rHl4or67dICUjKOZjZiNk5l3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1JpXD9TYEJMKTw6NC8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSywLqyvrOina+nprOnnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKysqbitp6Oal5J7h5mRp5uTjo+XmI+Yk6mYnpaoqJ6opqCiqrqeqcWjobCkrLS1rLKso7+rs7KddXaqpLaFZYqgcGeskIqPbm53pZCboYJ2spyYcZGOcpeqpJuZsKVybW1tZot4b22DmnGBempxaWeJlpWXcmlphYdncYdkXotjaW9aXWd+eKZgYnKQknBmZICMkY6flZWXjZKaeoWNk3RkhndnjGp4fnlkbGNlbGJKZFdJalk5T2NETydKOSsjHCAbIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1tcYGBhXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq6srOrqaKun6S0qpmSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZetn6arop+kpKCSi6WSppmpmpajqaCVnKWlpq65qquZmpOSe4SXjaaXjZGQl5SOl5Wmk52Wp6KZr6Wdoau5n7DBqKW0p62xs6ywrqq8p7K7mIyjqaW1nImXo5iHqZuQlJ2SqrSanKSuorWZpaOgo6Seo6Wil6ynjZOTjYeTnZ2VkJmTmJGPlYV/pJqXlo6MlJOKkIiFf2iMgXSDd3SHjHGnbX2Wk5SUgYGPj46Om5Gek5STnYCFk4twaI92b4l3dXx5aWtlY29jVWFYP2haR2FeTVcrRT0rJiE2NDAuHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5gYWJdXlVRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1uK6vorClrqCht7GRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4yIio+cp5atpKGaqJ6fk5akl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXuBlYuhlIqVkZWQj5KXpI6emKeemrSjnKart6ivwq+kuKewsLKvq6y2vaOywJqTp6WmtKKSnaefjqmgjZKfoq2xm6Kls6uzmqajn6esoJ+enZitnpOaopyUkJermY2ZmpeQl5+Rh6CelZSGlI2QjpaNgn9mjoh1iHd6iYR0nGqIkpaVkol9jJaRkpaQnpCZkp2BhpeFeHGUcnmJf3F7fmpuZF5waWBcX1hsYk9fYk5YOUZGRD0yPD03LiolKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGFpYWVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLSsr6Oqp66gqLaqkY+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJnKOQr5+klqmgoZOXmZyui6uWj6iZp4yYqI6duLWjpZebjYl5gpOMm5OKlZGTkI6RlqGLnJ2nnZ23on+DrrWisLB1pL+ks6B5e6Kttb+Xd6+moYqAqn5kXGJ3oI+knoOWfm2UtZ2lqbGtpmagopV1e5yZcIGZqpltgKSpimWcpZyRmJmXjJOckYSdm5CVhJSIj4+Ti4Z5bJGIdodxfIaBgWFpiYyVk4xbdpWQZmiOjHF5oZWVZHiXhYB2l2iCiYJueX9rcGVgdm9ra2hbZGNhYGxQWT1NTU1SRj0/U0I5MC8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1fZ2dnWFFKPERIPDlWUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpqmuo6etpZKVqrSusKWZqaWqlnSLnK+gqKunlJe5oKCPnKSekX6IiZuejqyapJWoop6Ol5KehXWuj4immqiRlqOIm7mzp5+YmIuJdXeSjZeTiZOQkJOMj5KfjZmepZibsZWAjJu1nbSMko+9p6J+p6N7pbG6g46PqaCEjIWPsaqvjIqWo5p5gYushp2fo6mrqomWiJt3pZx7iJyBmKeEgnues3uKhqCYmZWYl4KRl5aEmppieYiShY6Qk4uEbnKRiHqCcYGBhoCHdIiGl5N4lmiTdKCadHuZgpuZhJh+kYiBgphpjIyEanh7cXBnZXhtaWxqW2NpaGRwWltIU0tQQEU1LVlTVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1NYW1hbYWFpZllRSDlFTDw/YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikoKaurquoraCpsaanqqWZk6zEvK+glKWntJ2Qg52snaeioI2Qvp6ZjZ+aoZF9ho6Yl4isnaOWoaGSjZSJhoCRqI6GoZyjk5adhp65saedmpKOhXB1j4mVkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsYapj6qajZ18qI9ye3ecjqaWaJWkebSMoaCoqpSawoOBq4mZoXKegJulfpeGlrKBoX2hk5+PmJiAj5SbiZmSi3yFlIeNlpSKhW50k4aAe3OHgoR9hXWGg5iCj8VmgKmHj6JqnYGdl4CZgIqMg4iYb42ShGd3dHt2Z2l2cGdoa15ibmxmaldkRlxRTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENRWl1cV2JeamxbUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXoqCwqamopqygpbmxqaummpSeoaSpoZSjqbaisH+gp52lnp2JlL2ak42gkp2QeYOWlpGIq5mcm5qihY+MdpubjqCRh52jm5aYl4aiuKylmZuMjH5ibY+Lk5CMkIyMl4uPkZ6Nkp6gmKGnfqGnh62doJaukKCenZGHgqGNrbKJpI+snIyafqJ2gJmUa4KrdU2reIeNnZOcqqmCqqt/haJ8e6dqnoCTbGeXhpi3iZ5+bmBjWIOYf418ZGeMc5l9eZdsXX2Yb2FUcoZdYG16hGBZZYJ+hYGZcqiqa4OjbnKlb5+Bm2dknmxabIl7ZVlfgn5hV1BvdmVvdHFqam9daW9samdXZk1cV0U4QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSlxdX1deXmN1X01EOk1OTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl52huaGqpKaskqK2vKuvopmWnqClq6ufnK20oqiSoKChp5yZjpi0mZCLnoyVi3WBlJKNiqaWlpien36ThYWso4eckYqYqJeZmpGHpa+mopWZh4mAaW6IiIuOjomLjJGLj5GhipKdn5qhpH+TgY+joZSgd5yWkKeDo6mAh6yvh6V6jX+Emn2icHOTh5V7nox5bYeci5qSnaqcj4edfoSidHemZ55+d6VfmHt9k3Oibpi3tLp0k4iCgLaoZIHGuHxxlbaMcoGbpGR0rKthfmqds35ufomEj4OMmHGAo2xyo3Kegn2jXpyZs5VwfJees3RyW56ygmlicXR1cWhvWGprcXBkW2dcYUtDPUQ1UUFZcTI8U0dfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQERfXltaV2Bge2RJQzdMV1VWY2FaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVpLmZq5yToI6luLatrqCaoZuio6SsmpqxrKuTl6GZoaWampSerJuLiZF4i4VxgJaNiZChkJOUnZd9kYqOqKCGmI6JkaKTm5qMi6inpJ6PloeEfmt7hn99j42Di5CQiY6Tn4GVm5+coJ+LiXecmKKNoHKhjImpiZ2okpmqroGujX56oJl5o5N4gHOXh4ycfZWfh5uOmp2oiKNkoX6Ml5CbjW2eaJuOb5qZe4CKp31yaHSrg56Dc6pnlJpdm4V2hJ1oqmqAuWZcqXCBnGGVjF+ndneKi4CdaJp1h5OSmI1+nmyYj2qmmVyofne7an2pWo6EXbNnW25yeHdraVtwaXd3YV5kVmFBUERONlZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhZHxpRkI5TltdWGVmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZadiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKernpejmqKgmZaWoKSZhomNaYiAcnuXiIuWloSSlZiPeouElqSciZWPhoqdkpybiI+ooZ+ai5CKgIBpgYZ5f5aMe4iNjoeOlZl9kqGen6GTmHJon4qgj4xwko2CqYmaoaWroqp/sa6koriXd6OzoqN/iJR4nXqqmX+ij5+dmYmYcqF+iI6wtX1smpGheH6ZtaOjq6iEmXybfZybf3SqWl1ve5eLeJ5iTX97e4ZlephCTZ9ZompzfY9vgoqEmXabeYeJsbN/fpqSpnN9nW1wfJRvmXJpo12VdkhlY190cXx9bmVfa2d1emJjX1BdV1xTVkBZRVFnRFJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmJcWmBLYG19cUVDPFZeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhpbGmUnoGxrpqEU1+hp7S6s7OomqKLmqmbm6eSoKujoKiPnp6dmpmVmKCdloeHiXeFgW54lYWQm4t9kZOWiHKBiZKhm3KSkICImJSfmoSOqJuZlYqKinyDbISFcYKhjHiFjIiHkZiUepGjn56jiK6GfbWEj56de6aWeqmCl5+RjKOff6dpeG5+mXSgc3F8nYWYb5OCrXykhKefm4OkcF6paHajZHCmYZzTj3x7mXhyc2OihpF+onKjkHZrkLOMYIOYinSqsqi8f3eEb3+/pqq0Xpxvf3KXcIJ0o3JepGd0pmBopmyb05h5gZpudnmXa5t5dpdybKmlZ19leXF/hGxoZmNtdXZmXmFRWmVQUWFIVklUX1dTW2VqW2VQRUNLTEpLQUpEOFBAUU5YU1hPU1FgZWVqU2R4eXdKR0VkXWVaaGlTaWhqbmNqZmBjX1xdXV9pYmFoZXxkXmRnZGtkamxmaG1omJt/sKxUXUt+qq+xtLCzopyYhJemoKCijKSnn5epipmYmZSak5KgmI6IhXtwfYNofY+Ck5qBd5GOj4pwgIaPk5JsmJN8iJGSo5WDjqmZk5KKhYl5g3aIgG6Bn4Z3gJGFh5ihlniSoaOZn4mzoaK2i3qsp6SupXGpgJuRhoKflX6lgaObhphxnoSira6Jl4t/jKSNlYOvo5V3tba2yaJ0lI2Dn2Cdl6lteZaHoJt1oYd3oH6Rl4uBb01mo5Nym4l0pXt6dWKEg25+oW1yZGCcc390mGt7arS2tMamc5h9eZxqmpmrc4CabHN3l2mZeXSYcVBEfbNeanZreIdma2Zic3RvbFVbUlloT1FoSVVMWFJVXGdrblVnV01KQUpNS0hKTkFRSlBlY2ptZXVzc354e250iXp7VVFObV5oXGtpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWltZaKdibCohWVAlKKyq6+vtaGij3+Wp6Gho4ukpp2cpoKZl5eOl5CQm5OOiIN5a3mGZYOMf5efeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CIeoB9i3lwj6CFeYGUhoiVnpR+k6Smm5WWg2dueJxsomR8cqV4nJhwaKeDmo59pXuil4OWcp92gImUlY+5bpCKomJ9maOXiW5za6trdaBucKdhm2qLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cWVniYJvc6JbX1tkoW5eiY1xfIB0cmSlbniiY2anZ5dxi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam5RVlVVZVhTbElYTltIV2hoc2pZa1ZQUkVWXE1YUmFVaGped3V7fHB9fHKCe39zd42Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYynrqWpsLGln4t/lqmcnaOLoaGaoqKAlZmTjpqQi5eRjop7hnGAiGiLinyXmnN1iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBiX2AgI5zaY+mg32FkoyHl5+NhpGppZ2JpniWm36liZaMspmekYSvl5+lepiJe6l1qJCEmm6looyShIyDvG18pa+Ch4WHlZieon6mfHOolaGWaZ9/cKxjloqWk3iobaqjgYl2iYN3q5GmiGuSsWx3s42pbIuGb2+gnpKVYn+rjKp4gYCOp593n32FpJadoGiZh3WsZp6tjLZzdr6MpJNZg6aNq2F1cnRve3VwYmp9bmdsUlRYVGBgXGtMXFFbSV1sbXZfW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNzg36Be3uMgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG9ilqarnYGAn6WWqqqep6eto5iIgZapmZ2iiZqknKidhIyaj4ackYWSjYyMdIV6iINvjYV+l5N0dYZykYNuf4uSh4aUj3x7gYWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4KdcY+GeZOOh4F7c6mNcX19epiWm4SNeHt9fYeTlZOLd5KaoaKEe3+LbY2GXHp5c3txaW5+k4pygHSCj5STcYaEg2aNf1+CgYx4d3SVdnB6b3CJboWGX3dpeI5ngoOGj6qcf3R9lmmJiG99dXuCdGxsZoxzeHuXd4Rba1d5j2lud3Jxb3d4b11rhW5pZ1ZZXlZcZWpjVWBUXVFeb3d5a2p2ZGlqanV8cHF0c2FvdGJ0e4F4dXmCdX+Af4F5i4WCfntugG1keW5eV25naHVreGppamRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gjm6akmaSdq6Gfg4OWqpGdn4iZppqomYOBnIt+lpSHjoqJjHKCfI58fo+Ee5eOdHOEcJWGfH2Si4aGj4V4foCGmKOMe6afioWPj4SVgoaOmHdxhKqFjZGcj4eenYeLmqefoKuDiY2Vm39+ipetqJCTqJF5cZ+UhX2VcICrh3F+lXFqb3yBn4t/kY2KZ21dhI2OnZ6gkHOXjYpzdWyDd3SBWXJvh5GCfn+Mal1pZHuFhImAYGl5fJx8hI2Ed4KIhWp6jYlsYnFzg3dgdI2DipGolodnjY6CbHaKgW6CindtY2VjeYN6lVpcaWdudlt7eXd0bXNyg2ZcbYpra2JZWFxZWGtxW15gWV1dZXJ9enRvdGJqamp7fHF6dnRkbXRobXt+dXp9e3l6gIB/b4aJg3t9c396c39oVFxyaWx2cHVnbGdkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuyopCjoZqenpidmaihoH2ClquMn5OGmqKRpZV/e5iFfJKZiYiGhopyfYCKdoSLgoSWinJvgHOYhoR+k4ODhoqCeoCDipqfj4GloIZ4jpeIlYqLnJeEg3msgZCXmJOJnZyGh6GqnqKipIuHk5udo5qWq6KoqKKTnYmZkX56kZCGqoB/k5GSk5yxpZqUno6MsJGYhKaOjpadoYqRnYSKk4tsfY93eGaChpGLfYmehIiMj4iIgYWEkXh8e3WcpIqIjKCMh5aAgI6DgXdxdYaFgHmJiIuRp5GEh46HgouPinqDiIaMf3RqgYN8eZlpcmhgdIpxfnt3dm92dIFdXm+HZ25fXllaXFNncVVjW1tgbGd0e3tybm9jampof3tteH5waG9va2aAe3KCgHd/fX+Fe22DjIV8enl8fXqEeE5kdmpzbnF7ZWxlYmJgW3NmcGZycW1VXWx0bWh4enBnaWtljYieu5+Xo6GYlZmYlJikoJx6fpepjZ2MhZ+ci56XfXiVg3uOmYmHg4SGbXiAf3KAh36Ik4RtbH56l4eEg5B+gIaEh3yHg4yanZKGqZ2CcoqPhZKRi52RfI17qYONkZeVjpuWhYWbpp+imp6Gg5KamZmQmaahpp6ekJeClI15foqQhqd8fY+QkYaYqqGckpyOjamNkYCejoqVnKCEj5iAiJCEcHmHcnVhf4SQiHeMmYGEj4GGhX+GhJVuenZ1lKSMjYechoaPdYKMfn5zc3yKhXx6jo+FlKiQh4SPgYKJh4dzgoWGiHltan1/e21oa2xnXnl/Z317dnV2dXt3XGBwfW50YGNaW11RZmxTZFpdYGpodXl+cGxsY2tqZ4B/a3J/a2t0bndthHluhoB2goB9hXdxgo2Hfnt7fYB7gotgaXtrdWhqg2VqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoqSfk5KWl4uan56cenebpJCbiYaklIuYmnl6joV8ipGDjIKCgmx7f3hygIV9ipB9a2h9gpeJgYiOfH6FhId8j4GPm5uQiKabf2+KiouShqChioWMfKiQh46RlpKWkneMo6ChnZabgIGQmpiTjZqjoqSbmJKcf5CIe4KGkImhgX6NjY98l6SgoJGZkI+ljI+BnJKKlJmdf5OTf4iQg3V1gnF3YX6BjohzipZ9iYxxjX+DhoePaHhyeo6ak5GBmYCJjHODiX1+cnp8jYZ8e5OOhJemlIyGkHuEhYWCc3+AhIV4ZHB6f3h5cGxqZl5+c2h8dXZ0fHOAal5gdHdwd2RjWF1eUmloVGRYXmBnaXV5gXFmamNsZ2V/gGptfWdtcGp9d4Z6a4uBcoGBfoF1doKNhn98e4CBfX+PanKDbnRpYohpbGJfcVZ0b2xtYHhobVdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+FnKGam3x1o5+Nl3+MoYqIm5Z4fIaHfoSKfoiCgH9wfnt0dYKFfomQd2djfYaXioKKjXh9gIyDeZaAlZeVjZWemX1vi4GQk4Wlm4eMiYOmlYSSipWXkpF2kZ2hoZiUmHp/j5iXjpaanaWempSVnXuSiYV6iJiPn3+Ci46Mc5einqCRl46OoYyMg5iYhJSXmn+Zjn2KjoJ4cn5ue2SBfYuHcYeUgJGCa4eDgoCLhmZ2cH2IlJqOfpV5jYt9gol+fXKAeYuHe4aSi4yZpJeChIx2h4OAf3R4f4aCc152d31zfXZmbGVhf2lqd3N0dX1xfGNkYXNudXJtYVlfXVprY1JiV19fZ2p0eYVwYmpia2ZofIJraHRobG5of3yCeWyPhXGAg4N/dHyDjIGAfnqCg358kG11iXR0bWaKbGphY3VWg2lwbmB4Z2xhanZwZnh7eXFfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8d6ibiph5lpyLjJmQeXyBjH19g3uAg4B4c3h5c32Ag3+Ii4BkXn2LlYd/hYh0fX6Jf36YhJaUloyjoJZ+cYZ7k5GKpo+MjoqSoJGDkI+Tl5GKgY+XoJqSkJJ0gI6SlImdnZ6nmZmOlZd1kZKMbYiakZt7iImQiW+XnZqikZSKi52LhoGTnYCUlJaImop9i4qCe3F6a3ZtfH+Mf26Fk4OVeHCChH5/jIFlc2p9gpiYhYCPdZKKhXqJf3d4gX6Hgn6Fj4eNlaWReYWCdIiGe35xcn6EgWtgeXR5cHxuYW5jZXtibm92c3h3dHRhd2BvbHVucF1aXl1daV1PXFdiYGdscnqIa19pZGljaHeHbWZsaGlsZ4B8endukIhzgIOFfXSBhol6g316gYR9fI5yeYt4eG5siGtoX2lxYodocW9ldmdtbGF6aGp8e3hwYXdti4GZmquhpamei4uRhomdi5SWfHasmIyWfJ6TkZeUiXd+e4p9fIB2eH+AcHRzem+FfYGAiX58YVx+j5GHgISEcnp/hnqPkYeRkZuSpJqTgXyBfI2KkqSJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiYipeTcIychmiJm5CVe4mFkIpwlpqUoZCQiIqYjIJ/kp99k5GUjZqQfIuGiXVzdWtxbnV9i3VvhpGOknJ0gHyCgop+ZXJuen+blX6FinWSjIJ1intwgn+CiH6GjouGjparjnuIfX6KhHZ8bmx+goBhZndzdG56Yl5vYWt0XnBqenl5bXRxZXpebmxzbXNZWV1fYGlaT1ZXZGJlcHF/h2VdaWhmYmdxjW5jaGhlaWiBend1b46Fc4GCg3x2g4mFeIV8eISGeoCJd3+Le3tzeYRra19vaHR/a3FvbXFnb2tle2Ftf3l3cGx3d4l/o5mjqKGnm4iLioGOnIaSmnR/qJSSjYagjJaUkYF0fHaFeHh/cnN6hmxyb3htiXaAgIducVtZfpKNiICBgXZ1gH9/oIaPipKcl6CSlneJfoCMiJyeio+GkpeWhYiTmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyIpoVoiZ+Mk4CNhYyBeJOYkp2Qj4iIk41/fpCZfZKOkY6bk32LgYVwdnBsbm9xfIdqc4OPmYtyeIB1gomEemd0cHeCm5B9ioV7lZN7eIp1cot8h458jIiFio+cpYl8hHaBiX53d2xofX9+W3FycW9vd1pecGBwa15vanx6cW5tam13YHBva3FuWVhgYGBsV1BTWWVlYXRvhIJhXWtsZGJma5JuYGZmX2dqgXVycm+LgHR/g4F5doGLgHmGf3iHhnaDhXuHi398d4t/anFjfGKFfG9wbHRqaG5sd3dfcX55e3R1c3+CfqWVm62fp5eFjIN+lpWDjp10iZ6TkoaLmoyWjox6cnh0gnByhHRxdYhsb2x0bId2g31/bW5VUYGrlIeCeIB2coJ5gaCCkIGSkpiakZh3kHqCjJKjmpOOiJSYkoSFlpiLk4uJjo+InYSRi31yi4WIj4icmp+bl5aBlYBqiZ+KaYmiiZSFkoSKcYORl4+ajI6Li46Nd3uTkXuQjI6TmI18iX6CbHdqb2xsbXuAYnp+kJeCd3qCeIONfXpodW12iJeMgImHfJWScnyGcniOe4yOfIp/hY6Rn6CGfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmd0dmlxbGF3Zl1VZWBfcVNQTltlY1x3b4h7XlxocGFiZWaRal9nZFtnb35vbHFzin12fIaBdXZ/jHl8hoB4h4NzhoV+jIyEfHqVeGdya4Ngh35vb2t7YGltdIB0XnN8eIZ4dHOFfHmhkJqxnKWPg4p/gpmIf4mbfoqYko6EiJiOj4+Ed3R3c4BwcIV0cHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4e41/iIyJnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYp8j4mLk5KKeod9f218ZXNva217elyBepCQgXt+f4CGj3t6aXVrdIyQi4OHhn6XjW2AgHCCjoCOiX6FfISRlpucjH13eIKOd3JrZG58gGlnc25naXNsU11uZHBZX2xxd2dra2JneXRwcGRgeGFgVWtfXnRPTUtfZmJbd3CJdFxbZHVgYmVljmNgZmJYaXNzbWtxdot8dHmHgnZ3fotzgId/eol/comHgZCKiH1+mXZlc258ZYd+bm9rf1lsbnl6cmB2enuNdnJ2iXZ5n4ycr5ugkIKEeIeUfnuIm4aEnpCOhYyXhJOPiIF1d3B5cW+DcG1ufnJjZHdwfG56fGpobGKkmsHcru+ic2x2g3WEoYSRbpWPlZ+TmoCRcIWLo5eJjpWKkJ2Wg4CUj4WIj4CSioqXf4d7dn+KeIaFjZubl5mQkHaLeHCJi45/jaaGk4uehoZei5SXiY6IjYqKhIlsfJeDfomGipGQhnaHfn5sfWR4dWpvenRYiXuSiIZ6f3+Aho1/emd0aoGKj4uEhIGNmIdtg3dwiZKDkoaAhHyBkpeUm5F1dHiHi3Ryb2Rydn9fcmxvYWh0ZlJgcGdrVV9uc3lhcmNgaX5xc25bY3NiY1ZuWlx3TExLY2ZgXXVyiW1bXGR4XmBkZYRfY2NeWGlya25rcneLfXN3hIF5eHyJcYOFfX2Ie3SLiYeVho1/fphzZ3VxeW2Lem5zcIBXcXp2eXFkdnmGjGh2gIlxgJ2Imaico5KEfXCLk3d4iZuDhJ+MjnyWjX+aiIV8c3dwc2pvgWxqbXx0XmB3dntwdHpnYGV869q1ycPciXNsdIF2ipqIjGmXj4+blJKBiHCFiKCNhYuVioyXk3uNkoeCiI96kYuGj4KAd3iDhHKHgpKblpOYh4x2iIByh4SMiZykhZaOoISKYYOVj4WIhYiMhoCHaH2UgH6DhYqOj4Jyh3+AcndodnJpdXhtWo19k4OGfYCDgYSLg3didW2KgpGMg3+AlJN/cINteoiRiJSGfYN/gZOUkZiJbnF5i4R0am9pb3V+XXJobVxpdF9RZHFoZlNfcXZ0YHBgXWiEcXNqV2dpZGlYbVdbdExKS2VmXmFxc4VpW1xleF1eZGd6YGRfXVlrbmVuanN3in5zc4J/e3Z6iHOFhHx/h3Z2ioaPmIGNgnuTdmx3dnl4k3Rud3p8WHmGcYBuZ3h2kYJkdoaFcIqXhpqhm6KKhnNukYpydo2afImZiIl8n3+Emn+CeXJzbm9kcn5pZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cJKQjIZqmI2ImpCLhXpoh4uZhoGSkIaGl418jIyAgImNe5CNfomFenV7g3xxhoCVmY2SlIKJdoSIeIaDjZWgoYiXkaGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOMj5B+bYN9g3VsbXd1dHh2a2OOgo+BhX98hICFiX9wYHRyhn2QjoN9gJKKe3KFZ3uFjImOhX2GgIGVkJGUhW5veIt+dGxtaGh3eV9naWlYa3RZUmhyaWJQYnJ4bWJlXlpqhG50Y1xoYGVtX29UWm5NR05mZFtmbXGAa1pbYnJfXGNsdmRlXV1abGxibGpzdoZ/cW9/fH10eIZ4hYN9gId1eImBkpV8iYZ2iYFveHl6hJJvbXqAdl6Df3SBbGh6c5RzZ3KHfHGSkoSan5ugh4Z1dZN+bXWSlX2HkIOKjZp9jJp2fndyb2xqYXR8Z2JpdXlaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdXGUiI99cZaLhpuSi4dyaYiOlYB7lYuBhJqLfIqFfHuJi3+UiHWJhnZ3foFydYWBnZSFlI+EhHKBineGfoybn5qIlY+egYlmfpOCf4WCiIhxgX1mfox8eX+AiIyPfWmBfoR2Z3B5eHR4dGxqj4aLgouAeYKBhYSBbF9zeXt+jouGfIOQgn9zg2p6hYmNiIZ5hX6CmY6RjX5ubXqIfHVzbWZlenNhW3BiV25xU1NtcmhhTmd1eGZgXl1Zb4FvdFpmYl5rbmBwT1lqUURTZmBZam1tfG5ZW11sYlpib3ZkZ1xdYGtpY2tqc3aBg3Fuf3yAdHWDeoODfYGFdn6IgZaQeISKdIGIcnh5fo2Qb296gHFpgXh6fm1se3WVamp3hHNsk42Gn5mfmYWHbn2LdWl3lo1+gYqClJeKepCWb3t0cWtqZGBze2hgZXF6WmByfHlncXlgZWWPsbJ3S2JapdnQlnF6kIqPd32TioSYkIuFbmuFkZF6eZKGgYSYinyGf3d3iYqEloBvi4hxdX57anmFg6SQg5ONhIBwgIR4hnuInpuWjZWRloWIcHuTgn2CgoiCbYF2aICFeHKAgYOKiHxlfn+FdmRxc4BpeXFwdZmOhoOKfXd5gYV6g2tccn9zgomGin6HinyJc4JucoaIkYeHdIZ7gpqNjoV5bm59g351eWNlZ3puXVh2Wldwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ15nanJgb05XZ1I/WGZeWm9qZ3lxW1pYamVZY3B4X2dcXmVsZ2ZraXF3f4dvbH9+gHVwgnuAgn+Cf3aBhIiXiXGCjXF7hnx6eYSUjHVqeX5rb350f3xvcnt6k29ugX54Z5KLgqGZnJGChWaGgm9neZSIfX6EgpiKgXyOjWh4c2trZl9hb3htX2JveFxka4J5YXF1X2Vl1Oq9izI6PouOf3F5hYeNjXWClox+ko2Lfm1rhIyMdX2Pf4WBlIh8gndudoeEg5d3boiFbHV7dWZ5goOmi4KOi4R+boF2eIV8iZ+Sj5KTlI6Mh397koZ3foOMgmt/cWiAfnlufHyCi4R3YnqFgnJkcml+bnVydYKcjIGAhoB0dn+BdIJwXG6AdXmMhIt8iIF+iXl7cm2KhZKFjXSDeoCYjIuAdW1qdoB/dHNbZ2d1bldWfFNZb2RMWnJyZVtJcXhvXFtbWV11f3VpWmJbaGZvZGpNV2VQPV1lXF11ZWB0b1pZVW5jWWRxeVpoXWBnbWdpa2lwd32ObGmChH95boB8fYF/gnp1goGNk4RwgYtueH6Ae3uIk4l/aHp9anN7coZ6c3Z9fox5eIR9fGuLjYObnpaLgYBsjH1qaH6Ni3p9foOUgn59iohrdXFnaGJbYmdybl9ha3NgaHCIeWJzc15jZJugj25dNlqvtXRpgIh8kYZ1hZWFc46KiXZvbISChnR5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIeAh4yKf2+Ad4KDgI+ciYSWk5mKjIWJfJCIcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXyGlpKCfYOBcHh6fHWAbVlwgHd1jYOHeIh2hIl8eXRvi4KSgodzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpOW25bT1tyb2RVS3N4aVdZWlphcYF1YV5dYGdkaWlmTllnTUBgY1tgdWBddWxXV1N0YFpkb3JXal5iaGtnbWxpcHd8kmtohIp9fG9+fnuBgIF6d4B/iouDcXyHb3J4g397iYyPg2l9e213eHaLdnx4f4KGf4N+fXpthIuHmKOMhIN7dYp4amyDh5B4fXqCkYCAfouDcHJwY2ZeWWdfcG9fYGdwZmpuiXRhdG9bYWRqdXqAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4NzdId0iHeTiHl5cGN3h3qAk2lyhHdnd3VjanyCh52BgH+Oj35zgHWHe4KVkoV7mI+WkIiCiXuJiWt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBaXaCjJKVf3x/gHF8d3x0gGNWeH5zdIuFgn2EcoiKeXlycYWDj4CAen9+d5CGhHdqcWhsh4Fxb1xmYHFsSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCdF1iXGllZWRrZFBbcElDY2BbY29dXXhnVFdWdl5bZm5oVmteYWpnZW5uaXB3epJtaYiMeX1ye355goGBfHZ9g4iGg3B3hHJud4KCfoiLk39wgHt4eXqBjHSCeH+BgYKEeoB1b36Ki5ueh32FeXeFemd0hYuQeX5/e4iFhHeQgGdwbl9kXFhlWWxyYWBgcGxraIluYHNoWV5jbn93qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/cHF/bYR0k4V4dGtgeoJ5iY9mcoRwaHVuW219gJCTf4B4kZN+eXxuiniDk42Gd5iMk5CIhoV8f4VsdHZ+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGh1h4+Nln12gXdxgHt9boFaV3V/cHaFiH+Aem2Kh3V5bHaChIV/fX56fXSMgn50aHRlboqDbHJZaF1zZEZtbUtaYFdWVXdtYlBSdHZYUFZYXmByhHBeYWNtZWReb2NUXHFGQmVeXWVnXVt6YlFWXHRbW2drYFZqX2BvZmZrcGhwdniOdGuOjXV/dnh9d4GEgXt0fYOIh4NvcoB0cXV+hYGJjYp6dn94g3t8hod3h3x9gX2EgHt+cnV5i42gjIh5iHZ0gnhefYWXi3iGg3SFhoR4intibmxbYltbYVZpc2JgW2ducGaHcmFxZVdcYmt/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeoyKZXKCa2pxY1hseoWbiIKBcpaVd399b4pzhY2OinSZkJKJhouDe3l9cHBvfGZncWFteHFqbHF4fX16XWV6gHhqdnhmg3dodIiMjpZ+c4lrb36CeW99Xllzf250gYt8gm9wioByd2l4gYKBg3h/c3t1iH17c2dzYW6LgGtwVmlcdltHbWpNVlVdU1V7a2FPVHVyUFFUV15jdYZpXWBsamZjWm9hWGJvR0FnXGBlXlxWe11OVWVwWVtqaF1XZ2BfcmZrZ3FncHN3hnhulYt0f3p4fnmDiH91cn+HhY6DcHB8eHd2eoWFh4yGeXt/dIt9fYaEg4d/fn59hn58eXV4d5GTn36LfIptdX94Y4KGlYZzkYpvhYWBe4R1Y25qWV9bXF1UZ3NkYFhjcXJngHJia2RWWl9qf3i+rnuft25hc4Voc3pxeIGFen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eXmLhGZxf2hra1pWb3eJo4GFf3CZk3KBenaEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2pseXd6dlpnfXx5ZnN+bYV1ZXWGjoaXgHGNaGt7hHVudmNdcX1sdX2Me4Jndoh+b3Jpd4B6gIF0fm17fIN7eHFmbGFtiX1rbFVpX3ZVSmlqTlJOZ0xYe2hhTlV1a0xQVFVfZ3aEZ15hcWhnYlhpXVxrZ0pEalliY1ZZVXlZTVZtallda2RcWWRiXnRmbGRxZ3JwdYF3cZmGdn9+d398hYd9dXOCiICVg25zeXt6dHOEhomJg3iBfXWPfnyFio2DgoR7foqDe3d8d3eanJd6iIKGaXZ8e2yDg5KAco6BcYaCf4OAcGZsZ1hdW1xbU2RwZF5XYnJ1aXVvZWViV1tbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVtanpxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKZ8hHt2lpF0fXR+fG9+fZOIeJt9iYeDh4N9dXBxbGd0XGxnXmx0ZGdmaXpve3JZZ4F3dWhwgXiCd2J3hot8lYJvjWtue4NyZ3RmYW56aHN4i3t+Y3eEd2tscnV8cnt7dX9of4CAeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXnpmYU1VdGRKT1NXYWt3f2ZdZ3RpZmBXZFdicFxLS2pXY2FVVFVyVktYdWRaX2tgW1pjZF92Z21icGl0b3J/dXSZgnd/gHiAf4aEenx1goR+l4VucnR8enVxhIWPgYB6i3ZzkH98gZWNgIWEfX2Mhnp+gHd7o6WKeYeFg2t0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlheWml/aWtwgGdsYGh5eGpyc3Ntg4B6f3x1dG16Z2l5al9lbmiBdo+EZ2VYYndqfod7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHyTgnqXdoaEgIaIdmpydWdnbltsZF1tcl9oYWp5aHtsW26DcnRqcIF+enhhd4aFeZCFdIlycHqBc2Nyal1xeGVydIh8eWN0gXFnanl1c215eHZ5ZYR8gHl3cWRkY217fGpqVGdhZVNKa2ZPR1FqRWF4ZmFNU3JdSk5VWWVseHxmX25xamVdVmFVbm5WSlNnV2VdWE1Va1RJW3lfW19qXV1aYmVfeWhsYW9vdm5weHV6mH53f4F5gICHhnp4eYN+gZODcXR0fnp2dISIkX2BfJFrcpWAe4OfhX6HfYB+hoKAint3hKuef3qHh4JqcoB5dYB+gXRuhm59gHOKgGpwbmRkWV9aWVpUYmpnW1pfdYJpXm1sXGFXW1trgWVxdH1paVxrdnVnc3ZxbIR7fXx4dXJseWZpd2ZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F9j354kHOFfoCAhm5kdnJkZ2dcamFdb29baF9tdWV6aF10gG9ya3J8fnV2YnWGjHuJiIGBeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2dGeHd3t6dnFlYmRtcn1palNnXVxUS3FiUEZWYEdjdmZhS1NvWEtNWFhoa3Z7ZWVucWdkW1ddWHdlVEpcYldnV1lIV2RPR2F4Wl1fbFpeXGJjXn5pamBvdHhtcG92g5h6coCAfH+JjIZ9dXWFeYeMfHN1dYF5enqBjI58foWJaXOWgXqKnH5+hXqBe399holzcY+ti3t7ho98ZXGHeXN8enVyboVse35sj3pjcG9iZV5lVllZV2Nma19dXHOFaFhxblteWFpba3picHd2bGFZbHNzZ3R1b2yDeH5/eHZtbnNkaHRlW2d1ZnZ2kXpfXVJmZ2uDgnR+YmRqXFRXXWJjjqRpeHODhpF5bnF8anpvf4l+dop0gnl9eYBpZHZtYGZfXmlfXXRrWWZdb29iemVcd3xrbm9weHl0dWVzhJOAiIOJe3dwc350Y3hlXHFxYnFygnx0Z3OBZV9ud2plaHp9dW9wg3Z0fXNyYl9mbW58ZGhTZldYU012XlBJWVdIYnRjYUlUbVNKTlpXamxyfGNtbXNjYlpaW2F3XFNLY11XaFNWRlhfTUZpdVheYGxbW19hYl2EaWhhbnh5bXBrdoGQeW2CfoCBk4iEgXZ0iHSMhnRxdnaBeH19foyQf36UfnB3lYN9mZJ5gIB4en1/dIiEdHGZoHp6foeUd2N0h3hyd3RrdG9+a3h8cJFzXnBvYGdibFRaWldoY21mXFxxiWVTcm5bWVhXX2t2ZGl1amldWW1zcGtzc3NphHx+fnp2bm1rZGlwY1tqcmR0do5zW1ZTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcn1/fnOCeIF0e3p6ZGV1Z11iWWBnW152aFdiXXBpYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNyc4B6dGdwflxgcHJiYGtzf21udn9zcXhrcGFcZWxsemBmUmVUV1FPdVpRT1hRSGNzYWBHVmpRSVFaVmtra31mbm9yYltaWFlscVdSUGZWVmhTVEVZW05IcXRYX2NsYlhgYGBdi2pjZG16eGxwaXV5h3trg32AhJp8g4R5fIhuj4dybnZ6fHSCgnyLj4KDmHR4gZOFgZ6JdYGAgnR/gnGIg3ZwoZZzeYWKhnpkdopubnpuZnhweWtydnONa151b2FnZWtSXVtVZ2Fsa1pccYxkT29uXFZXVGZpc2hidGVkXFhudGxvdXR4aoZ8f3uHdo9zY2RrbmBcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNtcIOFinRraXxwZ3V5dn5te3V2cHt/dV9mc2NbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2dwf3J0cFRcZ2tmcnSAdnRjbXdWY3JsW19wZ35mbnh+c3Rzam1hWmRpandeZVNjVFVQU2xWUFZTUEdkcl9hRlhpT0lYVFduaWV9amx4bGJXXVVbdGRTUldoUVhmVFNHWVlPTXd2Wl9la2lZYWBdXo5uYmZreXZub2l2doB/bIOAfYeYe4CHgIl/a5OIcmZ0gHt1gIN9iY5/jJNyfIqRhIefhnt/ho10gYZzfoN2bqSLcoCMinZ2bHmLYGR7cGZ5c3hsbXJ3g2dkfG1jZmdoU19eVWdfa29bXm6NaE5pbWBVVlNuZnNrZXhlZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXF4fmdaVlhgbHh8e3CEX2NeZ1ZYX1djm4hia3CBh314bGx6bl14dG58a3Z0b3B8gXNYam5fWVxVYWJXZHBiU19iaWJibFphfmxmbHR2b213d2xpho2AinuJbnJmcn5udG5kW2FpaXB0gXRzX2ltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUU9bTk9IZG9cYkdZaU1KX0tZbWRgeWlufmVgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJgWl6NcWNnanhxc25odnR7hHKCg3qIjn58iYiNeW6QiXRrc4F0f3+IhYeRhJaPeX2Mj4eRm4SAfI2Fc4CBc3R5c2+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn5+fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2NjY2NjY2OjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6NjYyMjIyMjI2NjY2NjY2NjY2Ojo6Ojo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmY4C+u7u7u72zbWZnZ2dnZ21ubm5ub3JKLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19bfsjExMTExrtnXl9fX19fZWdnZ2doaz0aHR0cHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmMkpGRkZGRkImIiYmJiYmKioqKioqKhoODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKTj4iNjo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2NjoyLi4uLi4uLjY2Njo6Ojo2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJGKho6JiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkYqEi42JkImLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj42IjIiPh42Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhomMiI2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjY2LjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH9/gH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhYWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj5COjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fX59f35/f35+fn9+f31+f39+fn59f39/gICAgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/f35/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/gH9/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/gH+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/f4CBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOT09UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5/f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZSUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT09PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgH+BbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT05MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gIGAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcHByeHh2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+Af4CAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/PDg5OTs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fyd3h5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg4Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEJCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs8P0BBQkA9PDk8PTw5Nzk6Ojk4OTo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU5KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4B/gICAgIF/gIF/gYGBgFZMTlBQTlJRUFBRUU44PT89PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7PDo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gICAf39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFCPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUFAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+Pjo6Ojw6ODk4ODo7PUA/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUA7QkNCQ0A/Pz9APT9APjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbHBwcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQD89QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8fHx8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTUtKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFFZW9wcXF0dnV4e3x7fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+AgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSUhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTEtMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e359fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tLS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkdERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1/fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9OTlFOUV5ygYWEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs8PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4yLiomKi4yJVDo4NjU2NzY2NjQ2NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzg4Ojs3Njg4OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PURCREZGRFZ4hISCgoOChomKiomJioqKiouJioqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc3Njc2NTo6Ozo6PDg5OTk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9QfYSDg4SEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojo5Ozo6Pj09Pzs7PD06Pjw6PDs8PD08Ojo8ODo6Ozo5OTk8Pzw9QUJESUlMS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzs7PDo4OTk4OTk5OTo+PT8/Q3aEg4SFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz8/QD9APT0/Qj9BQT9BPz1BQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PDo6Ojw7PT5APz1hhYOEhIWEhomJiIeGhoaHiImKi4uKioqLiYtePkRHSUtKSkZHR0RGSEdFQ0FAQ0VDQ0BCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc5PTo8Oz49Pj47Pjw/P0M+Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklGRERGR0ZEQ0ZHRUJISUtHSEdGR0dFS0pMSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAf3+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRT9ohIKFhYeIiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSUdGRUxMTUlKR0dISUpOTU9NTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTElISEZKSkVKSEdLSklKSEhHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXV3eHp7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo7Nzw9Ojw/PD0+QEJDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hLR0xKRktPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSklKSk1LTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXt6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD5CRENGSnSGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0tFRkZLT05PV1ZRUE9SU1JNU1RPTVNMUFNVV1JTUlBMSk1NTUxOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRUdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEs7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUVFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHRkZFPz9BQEVBQ0ZEQ0RLVlBKUFBOUFB5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01UcHR2eHl4eHp5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUlFUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmJ0c3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N0d3Z2dHd4eHt7fH19fX5/fn59fn19fX9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUE9JTk9XVlhaWmRxdHd2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQTkxLSENJR1JTVFldbXJ2d3V0dHd7enp7e318fX19fn19fX59fn9/f3+AgH99fX5+fn9/gIB+e3Zzd31+fmR1fWlxdGBkXV1bWVVRTEhMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQEhOTUddaVFIR09GREVGSEdIQkNIR0hKR0RBQUNATlBNUmR0dXZ1dHR2eXx7e3t7fX19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxSUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/R0xNR01RVUpCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5JTUZVb3V1dnN0dnh7fHt9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRWVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTklHQUE8OTc3NTk5PTs7Ozg5ODk/O0JHPlx0dXZ2dXZ3eXx8fH18fH19fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlRWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9tbmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlERj45OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1NbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTUk5NTElISEY/Pj06Nzg3NjU5OTY3NjY1WHFxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUBRPWNgUVNRUE1QUE9OTk1QTlRSUFJMSUxLT1JQUVJSVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+NEA+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExQUE5NUFFRTlFPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RW5xdXd6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxPTk1JTEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT89PUFAQj09RUhGREZGSUdKSkBGQUFARkdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0dJSENJS0xMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8eHl+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFFSkVDSEdJR0lFQkI/PjxCQEBHSkVNT2JlUE1PTVdLTE5LTE1NTExLTk5TZE1KTFJJSUlGQkpLTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5e3t6fHp3c3h1eHx8eXpucXFtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTo6P0I/PEFCQUFERUdLRkRJSUdHSENDP0I+P0BAPUNFRExNUVRMSklNVEZJSUpMSUpLSUlMTU9QUVBLR0NLSENDS0tMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG1zdntzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMTE5OUE5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByenRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0VHS01ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NT01QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1vdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7Pjs9P0RCP0FDRkdLR0pJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElFRkdLTk9LRkhJRkVDRElKSEtJR0hQS0RKTkxRTk9OT1BPSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB3dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTEhOSkpMS0lGSEVGRUNDSElIS0pHS1JOQ09PTlFQT09OT1BLS0tQVVdWVlRZYF9daWBuaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fza2tzTUdHRUZBQkBERTxBQUBDPDg6PT46QD1AQ0BAQURGSUVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSU1LSFFNSktISElFRkhIRUNJSUlLTUtQU05EUlNSUVNOUE1PUE1MTlNXVlhZVlheWl1kYGljamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo+Pjs+O0FCPj8/Q0VHREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBSTU5RT01RV1pWWllXWl5aWGFgYWBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU5ISEdJREJDSEU9QEVCRD04Oj4+PTw8QkI9QD5BQkZDRUNDR0NDRERGR0dHSUZISkhDSUhHSUdGREhLSUdLSE1LSktMSEtKTUtJTkxPTk9SVVZPTFZWVFFUUlJMT1FQT1RaWllcWlpcX19dX2NfXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1TElKSEpGQkRHRT1BR0REQDo8PkA/Pj9DQjxAPkFBR0NFRENIREVERkZHSEZIR0lLSkVKSEhKSEZGTEhISEpHTEtMTExJTUpNTk1PTFBQUlVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmZdZGBmZ2BlaWpkc3NmamhmbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXdzZ3Rya3Fya3J3cHdKSktJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSEVGRUlIRklISkxISEpKSUtKRkpLSElLSkdLS0xMSUlNS01OTk9MT1FSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYmJgZGRlYmRpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXVmcXNrcHFqcnZwd0pMTEtMR0NDQUU8QEVFREM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkZJTEhJSk1KTUxHS0lITEtOUUtSUExSTEpNTU5QUFBVT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjX2FmY2FiaG5oYmloaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHF3TE1MTExHREFARD4+REVGQz9DQUVEREZDQkVHQ0JIRkJISklHSEpGREtKR0hKSElLR0pKTktOTElMSEpNSlpmSmRbSmxSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmltemZcbHRgbGtWYHd2aWpnaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcnlMTkpLSkZCP0BCPzxEREZEQ0NDRUVERkJFRkdEREpFRUpMS0lLTEdHTklISktHS0pJSkpOTE1NTExJTU1MW3NiZHBdbGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdmdwT0xyeXZrYWFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3l2dHRibXVrcHBscnJye0tMSUhHRUQ/QUE/PUJFRkJFQ0VERUVEQ0hIR0RES0hHS01NSkxMRkpPSEpLSklLSkpJSk1NTk1NTUtOTU5bcnBvbnBwa2pMT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta3BseHh0c2lwXGBzbHFrVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFREJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISU1JSklKSk5PTk5NTE5NTFxoZHVdbHFWa01PUW5VWmtea2x2YWxkdFRlY05sWWxcdG9samx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Ryc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUZJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUlOSklHTUdKSkhJTk9NTkxKTU1KWnRwcG9xcWxrT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fzb291c3R0alpedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRERFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0xLS05JSUpMSUtKSUlLTE1NTElLS0pTa2JZaV5famNyclpfWWpvX2VlVWtfY1thYVFgbWhcalxuaWpkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSkxbUUpGSElMTUlISkpLS0lISUdLS0tLR0hKSUtLTEpJS0xOVFtdVFBVTVFPTk9PVlFPUFFOT1FKSk5QUWRxaVRZVltbXFVZWl1YXVxcY2ZhYWZiY2ZfXmZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZARUM/Q0dERkdDSUtMR0ZER0pMSERHSVBLTE9LTFdNSUZFSEpKSElLSExKSUdISEpISEhFRktISEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydFBCQ0RMTUFDQ0JESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0ZKSEVGR0VFSkZCSUxJSlNfWWBYYGFbYFVYWlRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWVpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRENBQ0ZHRUdHSUpKSUlERktLS0VGSUlOSk5MSExOR0hGPkhHTElLS0pLS0lHRUlGQ0RFQkZKRD9JS0hOWmJZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYWJjY2VaUlpXV11aXWRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhZUUpGREdFQkRISEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkdAR0ZOS0tLTUtLS0lHSUVFQERBSElBPkhJRk9dYFpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRiYWRjZlhSV1VUXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhoaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkdHSUdHSkdGRklMSk5FQ0pKTE5KTElLS0lJR0NISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDU11ZXlhfWF9bXVVYWE9dXFFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JhZGRhWFBSUlNcU1xdXV5eX19fZGlnbGtubnB7e3x+e4CCg4SFhYWFhYWEhIWDhIWHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSkxMSklHREhLUU9NTFBNTUtMSUpERUFFQ0hGQUFGQ0FVVUVcVF5TV2BYTlRVTVlaTEpLVGBhW19YX15iXU9ZYlxgYF9iY2FdYmFXYF9VUVBRUllTXlxbXV1eYGJmZmZsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUxKSkdFSk5RUU5OUE1OTU5JTEJFQUNDRkNCQENEP0xHQ0xMUE9PTUZNRkZISUdGTEtNT1BJTE9QUFNQTFFUU1VaWFdZV1djVk5SVFBRUE9RVlRcWVlbXVxhYWVmZGhkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFNTTlBQTk9PT0lMRmFFRF5MRGZiQ0xaR15cc21PTVZuWUtDUF9Ua1ZnSl1YVV5ETFFVTE1TVlFSVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcW2BgYWJiY2FnaWdubGhzenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVMUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jrc21xc3BTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVgYXZfWWJcXGZbX2FhYWJfYWNnbW9tYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUExMT0dNUFNbWlRRUk9QUFFMSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzcHNzfH1wfnhvf3JgYGBiYltiYWhsbmtibGZnbXd+gYCDfnt4d4B0dnppcX5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FETU1IS0tIS1BPTU5KTlZeWVVMUVNOWVlMU1NTTkxQSVFSVFlXV1BUUFBQU0xIZ3hsY3hxbVpKS1R5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fmx4en9waG5YdXVqdnVxgWFzaH1pbHh8b19fX2NiXF9jZWdqamVnYmNkbG1wcHN0c3NzeXFyeGJtdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtTV1BhXlJWUVlTTVBKU1RWWFdXT1VQT05SS0xyb3V1cXVxY2hgVW5LcXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3a3VzdHFsbVxzfnprbXl8bHVufGtxd3V4Xl9fYl9eYGVkaWdoZmVeYmJpaWlqa25va3FubWpwYWNmY293eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFdXWVdPU09PTlJJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1drZ3xsbWx4X1pwentfYHpzY3JveHFnY3xpcntdVEtsX3Z1bGp2fHtuf3lsfHBdXl5iW19jZWVnZmVlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUtIUU5QVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGhzX1xbW11dX2NaX2RkZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlZUUFRVWFVaVVJaXVVVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFSUFBQVFVSWFdcV1NTUFFVVVZTWlFOUlJXVFJYVVNYVFNRVVNVVVlZWF5aX2FdXFtaXFxgY1xeYmNkZ2VlZWNaYGFkYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZ2hRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU9MU1BNT1VTTlFOTU5RU1BUUFFUVE5LTU9SVFRRUVFVV1VZWltZUlVSVFhXVllcU09TVFdUU1lUVlhUUlFXVlZYXFpcYF1XWV9dXl1cXWFhXltiY2NoZ2ZkY1hgYGJeYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxQVVBQVFFPUVpZWFdZWlpYWFZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRT01SUU9SWFRRUU9NT1JUTVdRU1RVT05OUVRWVVJSUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVVWFNXWFRSUVhWVltfW15gX1ZfXV5gXVxgX19fWmNjZWhoZWViWWJgYl5fZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NV1NNTVJPUlNPTVBTUlVbVVRQUExQV1VQVlFSUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VV1VbWlZRU1ZUVVdVU1haU1JRWldXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZ2FaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxaYF5fW15eYWBfY1xZYFpRTk9OVlFQVVNQVVVTUFdcXFxZXl1fV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUlRUWVtXVU9STlNYVVNRUlBSWk9RU1RWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVVVXWFJTWVtTUlJcWFpeX11iYWBXYltjYl5hY19cYmFiX2RnaWVnXlxkYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPU1tTUlFTUlVVVUtSV1ZaWlpTT1NRVVVUUk1UUFJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpXUVRVV1hYU1ZZW1RSVl1ZXV5hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWdfXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUltQWlVWV1ZTVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFZUVllXTFJaVlxbXFJQVVNXVVVST1ZQU1hTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lbVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZWJgZWFfYWFiYl9gXlZZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVdZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVldXXVhPVVxZXl1dVFNYUlZVU1FSV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFYVFpaWmFYW1RWV1pZWldYWVlXVl1eYF9kY2JmZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19iYmFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1paWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFiY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9VXVtgYVxVVVlQVFZUUlVVUVRVV1tbXF9fWl9cVl9fWV1eWV1WUlhXWllcYlldVVZaW1pbWlpYWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRnYGheYmJjYWFgXl9ZVFtaWltbWFxYWFxbWltXV1pYWFxbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXWFlaXFxcX1taW2JWU1deXWFjXFNWWVBWVVVVVVVTVVRYXV1fYGBdYV1XYV5bXlxbXlhVWFdbWl9fW15XWFxcXF1dW1pcV1pfYV5gZGRlZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlgZ15jYmNhYWBfX1xYWVtZWllZWlhXW1taW1dYWlRaXVxbYFxVXmJNUldaV1daWVtcWFdZXmBiYWRhZGFdXllhY2JfYWBhX1xdXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1dWVhVVltbYF5dX1lZXl1eXmBcWlpZW19iX2NmZGZnZmhjWmVmZ2lnY19jXmFmZVppaWNmamRmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVxdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1laYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiZGZkZ2ZmaGVdZWdoaWZjYWJbY2dgXGlpY2hqZ2VgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1dW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eXlpYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZmZnZl9mZ2hoZ2RkYFtlZ15haGhjaGlnZGBiYGNiX19fXV1bWltZWFhYVlpWXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIh4mHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXp7e3p6e3p6enp6enp6ent7e3t6ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5enp6e3t6enp6enp6enp7e3p7enp6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4ODgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT08/ExcXFxcXH0tTU1NPT08S+vr6+vsKiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OTl4NTU1NTU1Nbj5eXl5eTl0svMzczN0KqNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl6enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4ODgoKDg4OCg4SEhISEg4OCgoODg4KDgHx8fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2eHx6eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXp7e3t7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z6fXl7e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp+enl7eHt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3eHl8enx3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt4enp6fXx6fHh8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoGAgICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eXl6eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl5eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoKBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGAgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhYKBgYGBgYGBgoGCgoGBgYCBgoGBgYKCgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgYKCgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEg4OCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDhIKCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYCBgoGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKDgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqMiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGBgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fXx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1/gIGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCBgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhYOCgoKBgYGCgoOCgoKBgIGBgoKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+Kh4iKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39/f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoOEg4KCh5KTkIuKiouPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoGCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhISEhYWDg4KBgoOBgIKDgYOFhYWFhoaHhoaGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhIWFhIWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoKDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOkI6QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgYGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OCg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiIeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGCgoGAgYOCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgoGBgYGBgYGBgICAgYGAgoSDg4KDgoKCgYKDg4iHh4eHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYmHhYSDgYKEhIOBgYGCgoOCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIOEhISDgoGDgoOFhYODg4SDhIODhYSFhISEgYGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYaFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgoKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgYKCgYCBgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhIWFhIOEhYWGhYWFhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKCgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4eGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhYWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4GBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhYKBgoOCgoSCgYKGhYSEg4OEhISGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhYWFhYSFhoWGhYWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgYCAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhYWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4OChIWEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeIhoeFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLiomIiIeIiIiHh4iHh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4ODhImKh4eEhIWEg4OEg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoWIiIiHh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYSDhYSDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KChIWHhoeGhoOCgoOEgoOEhIKBgYGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf3+AgIB/hYaGhYaGhoeHiIeGgYKEhIODhYaIi4qGhYaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICEhIWEhYWFh4eHh4aAgYGFg4OFhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCgoSDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDg39+fn9+fHx/g4OCg4KDgX59fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/gIB+fYB/f4CAgX+AgIGAf3+BgX99fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fXx9foKDg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f39/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhIWEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgH9/foCBhIOCgYGDhISDhICBgYCBgIGAgYKCg4GAgX+AgoODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGBgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioiHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYOCg4KCgoGCgX9+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoOFg4CBg4GAgoCBgYGDgoKDgYGCf4GAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgIGBgYGAf39/f4CAgIB/gIGBf359fn5/f39+g4aHh4iChoSFhISFhIWGhYaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIODhIWCgYSDgoKDhYaCg4SDgYKCg4OBg4KCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CBgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aGiId/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSBgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko6LiYiIioeIh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgIB/f39/f4CAgICAgIGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyKiYqHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYaFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYOEhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8gH+CgIGAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6MiIeIhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6Ck5GLjIyNj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAgICAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B7fn18fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx7fHp9fn+Ag4OCf35/fH18fXx9gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf35/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkI6MiomKhoeFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgoKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYuJhYiQjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDg4B/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIuLi4qJjJCNjImHhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn9/gH+AgIB/fn9+gIF/f4CAgIGAgoSDgYCAgYGAgX+AgYGBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEiImKiImNj4yKh4iFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eXx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foGBg4eEiI2MiomFhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4foKAgYKCgICBgIGBgICBgoKCgoaFhIGBgYGBg4F/gIKEgX9+gYB9foF+fX9/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag3+IjImKh4WFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fIiJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dXd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6BgX98fn59fX17fH58fXx8fHt8e3x9iIaGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KCgYKBgYOAf4CBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn1/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tyeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgYGCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn59f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFhIOCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+fn19fYB/gIGBgX9+fH6Afn9/gYJ/gYGCg4eFgYB/fn6Af4CBgICAgIGCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDg4KCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+gIF+f4CCgoCBhIKEhYaDgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODgoOCgYKDgoGDgn+BgH9/fn+AfX19fH+AgIB/f39/fIB/f4GAgYCAf32Af35+fn9/fX5+gYKCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foZ9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58f4CAgH+AgX97gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36Bg4KChIWFgoJ+fX17e3x8end7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GAfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f39+fXx+f39/f319f399fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Af4B/gIKAgIB+fX58f3+BgYCAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR9dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+Cgn+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/f4B/f39/gH+AgICAgH+AgYGBgYGCgYCAf39/fn1/fnqBkot6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWHg4OCg4KAgYCCgoGAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+Agn+AgICAf3+AgH9/fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiHx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH18fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYGAgICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYODgH+CgYWDg4SBgYOBgoKBgYCAgIKDgoCCgoWDf4CAfoKDgYCBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKCgYKBgIGAgICBgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYOEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgYKCg4OCg4GCgYGDgX+BhISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSEhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyBgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYKEhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgoOBf4GDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SEhISFhYSEhIWFhYWEg4ODf32BhH99fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYGBg4SFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOBf359fn19goOBfXt/fX6Afn17fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhoSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKEdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX1+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnp5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f359foGAgX2Afn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9/goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeFhoaLioWEhoeHhYSFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIGBgIGBgH1/f4F+gH59foGAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhIaFh4aFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x0cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWGhoaFhIWFhYWFhomJh4WEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOGhoWFg4SGhoWGhIaEg4SEhoSEgYSDhISFhIWEhYSGg4aHhYaEhIWHhoSEhYWEhX13hYSEhIOCgX1/fnt8e357fHx9f359fH5+gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHh4WFhYWGhoeIhoSGhYaGhYWDhYWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaHiIaFiIeIhYeGhoiFhYaHhYaGhYSDhYWGhYWDhISEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeHh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaDhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4aHhoeGh4WIiIeHhYaGh4WHh4WBhISFhoWFhISEg4SFhYaGhoWGhIeGhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn58fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4aGiIWGhYaFhIKDgoODh4GDgIKDg4KCgn+Ae31+fnt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYeHh4eIhoaEhoWDg4KCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWFhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHh4eHhYSFhYOBgoGAg4WCg36BgYF/g4F+f35/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WHhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoeGhoaEg4SFgYCBgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIGBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoWFhoODg4SAf4GAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaHhYWGgoKDg39+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIWGh4iHhYWIhomHhYOEhIKFg4SGgoOFhYWGhIeGhYWFhoOEhYSFhoWGhIOFhYaDhYWBgYODf35/gH9+f4N/e4B9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6ent7fHp7e3t8fX59fYF9fXx8fYB/fXyGg4aGhoaFg4SDhYKFgYGAf3+AgH5/gIF8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhYeFh4WFgoOCgYOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6AhH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3t9fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gXx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeGhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn18fHx8e3t6enp6eXt6enp6enp6e3x5e318fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSDg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN+fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzo8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDk7PDg6PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4OTo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTc6OTs6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1NXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2trZ2dnZ2dnZ2tra2trZ2drb29vb29vb2tvc29zb2dfX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKiomSmZiYmJiYmJiYmJiYmJeMi4qKioqKioqKioqKiKC/vL29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NRYmxra2tra2tra2tra2tpVVNTU1NTU1NTU1NTU056r6qqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc9Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXVmVwb29vb29vb29vb29vbVlXV1dXV1dXV1dXV1dTfrCsq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYmFveHd3d3d3d3d3d3d3d3VjYmJiYmJiYmJiYmJiXoWyr6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLzc7Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMvLy8vP09PS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7R1NTTztDU0s/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW19fX19fX1tfX19fX1tfX19fX19fX1tbW1tbW1dXW1dbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7RsIOEk8/JlKjS0MaTq9LOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7PyZu6uJ2snqubsNCZrZmz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0cOij3+KwpSHnJ7Fk4adnc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/noqo0NS7yJiZxr3JlpnG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/RuqWtnJ7S0ZSWn87RkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P0cCgn5OlvLOfwpvaraO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDSpq+um6fQi5Oex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cnXxJih0NqlmbPQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cWNnqCeoJKnmaCtkKiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocnBoa2ho6WmpKigr6eiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT1auNj6rWnJGOutWakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUwb7V09O5x9bT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExAPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dTV0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTg0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODc2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4Nzg0Oz88Pz05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5Ozw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq6uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4ODk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1Nzg3OTc7Ojo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWoqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5Oj43NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUI/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ojs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo7Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo7OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pj86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkBAPUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojw9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw6Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWPi5STkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NTM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVLT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QUI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEgIJ/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojw6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19MSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW1xZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JhWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2NecmBoX2NTUVhUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tfXlpcVlxoZG9jbWloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiWnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta21hX2RgUE9BQDw7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc4Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXVlTYWhgZnNvc2l0Y2lkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQ0REOjo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpORmZeeoZWYmpKXlJSRlJqYk4+TnZaSi5F+enx/dGtsbmNvbGhxd255aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDKxsbAxcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi4u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZuYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGVmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDo9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCLi4yNkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOycHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS9uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpaWddaW9teHdiYmBgXVhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JgZ3VnaWl0bXhsXWRbVV9ZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD89P0I/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvKyMbMyc3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyLy7yMfJzcjDyMnJxcXDwsHCx8fIysfMyMfIzcbMz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNDCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmJaWVlcWFFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur2/ub26urS/uLW3s6+7vLfAt77Cv8G7v8C8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVVVTWU9TS0U4PzY7Ozc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAwLfBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLSlJJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7e8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e2urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibF9bVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72+u8S3tri2t8C/xLzCxcXHx8rJxs/CwbivtbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/Cur/Bv722t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FbYlBLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLivsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrFtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFNSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv62zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5CRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9QD5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq1ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXpwbWhcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpydnZ3bXBgXmVdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxc3d0dnFsXmJgW11OSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZOYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFyLq9vraxp6SeoamxrrW4trKwq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce392b3tvdXJtYlxmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assa6yqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cXZzbXRpa11balRcXE9NSERGTEFGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48Ozw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5s7SzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFDTUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp5+oqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby3wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK63trK0tK+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaKbo5yUkIyOj5CTkJaVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHmDfHZ/eWJ2bG5cUGhUUE5HT0xMQ09RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqkpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AubWnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7CytK6lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOPj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn19gHV1fW1re2RoVVFjTUlIR05STUpNRztEQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZ2go6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusaqlqqqgmpiYmJWTlpqTlZWZlZqXl5ignpycl5uhmp6aoqeln6GioqOcm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5PkE2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ6alJiampGOkpaRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu6qKarp6urqaysp6Cgo7GtsrC0qbGvopmcnZ6hmJubmpiZm5SVmpaYnKShoJqjoJqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWllNUUpOT1RMUkxBNz5CNjg8NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+UmZKSnJihnaqipqCep6Gkn5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKefn6Ogl5GUnKGcmpiSk5+doaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCnq6iytbezt6yxtKOgnaWfq6GhoqCfmpiVlZ+bm5ikoaCdo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo/NzU4PT4/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeem6GdnpqakpienKKioKCdop+fnp+pq6esqaq0q6utq6WlqqirrKqloJ+akpKUmJmWlpaMiIuPlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t7yysrShq6KpqLGpqqinp5qYnZmppqCZp6CfnqenpaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg2Nzw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmZaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayvrqqrp6Cfn6Kjnp+em52blJSVlZ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusrqexrbHCtrjCxsDIysDKv7C5ub25wr24s7vFw7zCurazqbKtqrK0r7Ouqa6jnaumtbGsoq+loKKvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJUEg+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqChnJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5eknZWbm56anpyfpaannaCgrLGvp6Sko6Gfpqynn5eclZKanZmVjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMvL0sa+v8DCvcfGwrfDycjCwMW9ubO5urS7t7C1sqq6sa66tr66uqq3rKqquLq0u66tuKOmop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhm52dn5+al5iYk42PlpeUj42Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzNPP0tPMysLFxsbKx86/yNDLxsTGxMC7wsC+vr61vbOtvr/CwsbExsOtvrixuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTw7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCcmZeVk5SXkpCPjIeEhImHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKzsrT19HX0tTV09PIzMbMzcnSzM3TzcTGycnAxcvHyMjFvsKzs8fEy8rKzsXJv72+vMHHxMzMyMnAw7+tr7KonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi397cnV2Z2Jod2lkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE7OT45Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+Uo5iWn56dpK+boLCrqKyxyc3U18/Gu8esrbS4rK6jn6SjnqCkrJuWqZaNl42MjZemsK6lnZ6doaWinpuWlZaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bX1dbSy8nO0MvGzdHJ0dXW2dXX0tbYztLJztHMztDL0s++xsbJwsvLy87PxcbGtr/JvtLMy8/Fyce+wsLHzszP0M7MysfNuLe7qJ+mq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqasmqSwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmKGdm6Gin52em5aKeGlkYV9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dHM0c7T19bT1dDP0tPRydPQx9DY19jQ19LX2dXVzM7PyczRy87Pv8XBxsXOzNDQ0cjLy7/Jy8XTzcvOx8PJxsbIy8rU09DUz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs6PTc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrquqq52mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qp+doaqpoZiWmJqbnaGemZ2elH5yZmNjX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cXR1MrQ1NXVzdHQ2NfX18vIzsPIzszJzL/IvsfIzc3PytDNzsvOzsfKz8/KzsrByMbJzMnL0dLM09HRz8/Kvce5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG9rYmVucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD0+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tbHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirs7epo5+clpSXm56fn56VlpiVimxfX15hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dXZ5pL7L1dHW1NPY1s7O08vNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dPKy9DR08nN0dXS1dXKwMnBxczCx8nCzMLFx8rKzsrMzM/N08vFx8/Mx8fKxMbAxcnLzM/Qxs/Ozc3Mz8XHwLe5vcLDvcO5srO+sLvDxLaqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcmttaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs6Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K5y9XW2drb2MzNz8nW1sXEuLK2qqOurbi5sbLAoZeOjZiWkJSSkZaXlpGMfWZiY2JgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxMnJxsa/w8XOzsfFx83K0cjLzs3G0dLPzszUysfKzc7Hxs/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJys/Hw8PPyMbBxsfDv8DGy8vLzsLKy8jHzNDExce6x8PIyMLPwL28v7DByse5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NTw8NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6q+ubmzpZKOjpaQhoOEhIJ+hYWAdGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLq/w7u7urm+yMbCw8DDx8rJyMrHwcXLxsjLzcnEwcnJwcHL0MTLyL+5wbrFx72/xc7Kwr/DusnHyLrHxcTKv73By8bFw77FvLy/wsTLxMS7v8nCxcfSxcHIvsrJxsfG0MPDxsOvxMvHw8q3v7y6tKmspaWYn5iso6ClmqOgm5R7dnJ0ZmlaYW5tWltYUURMRkJHRExDRlI/NTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y9DSzMfCw8fNz87N1dDW2djZ0MzUzs/Qy8S4xsG2tbyxwLa6rJGMk5eHe4CFhoB2eHVzcV9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsGwtrqysrSyscG8u7u5uMDBwcW+vbm9v7nEysXFwr3GwLe7xMm/wsm7t7q6xcO+vMHNwsa+vbXAvcO6vMa6wrmzu8XDwsK2v7a1vr+6y8K8tbrIur+9y8PBxcLFyMXIxdDGwszHssbJw87NwMXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzc/SydHG1tXW2M/M0MjNyMrFvcrBsrW6t7q2r5GNioyFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusC4rbCwp6qtrKe4tLa0s7KzurW9sbewtK6yu8K7wcS8v7q1srq+wLjHuLO7tcDCvLe9xsDDu7Svsra6vrPEtrq1rLi8vcC9sLm2rra6ssW8tq67v7S2tMW8vsLFv8PExcfLxcDGxrvHy8DPycfDxsHDt8O+vra5vsa/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCQ0FERT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pquzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJy8rLxtHP09HPx8rGysXEwLzPvbO5vbm4t5uOh4mKe3l+hoZ3eIF9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/ubi1sKusp56iqqeeq6yzramrqbOttrCyqK6nrLK7urbCubq5sKu1ubu0wrmvv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu627uLu/v725wr/GwsXAvMbBx8u4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTUlFQUM/RkE7OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbCxdDIz8PEx8HGxsXFzMPKzMPEwcfAuru7yre0u721tauRiZCQfHl+ioV6e4SBeG5eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWlpdZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq62jp6KrqayqsKOmn6qttLaxvbmvt6+orri0tLu3s7yut7m0sbvBscGupKiiq7Gys6e8qquoq6yttLOlqK2gpK+psqWnqK6lp7assLK3ubq7sby9vr7Ev7XBwMfIt7/AxLfEwsC7v8TDvsTIzMq/vsPAwKmGcnNyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvcq5wMXAvMy6w8bFurzEvbm2vMW4tri7rrGVg4mNgXt+gH94dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6jm5eRoaOqo6KfpKSnpKyfnZukpauyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubC3pJ+jn6axp6unuaqkpqeop7KtoKemnpqkpqyen6ekn6CwrKyssbOys7C1vLa7wcGyur7DwbG5ucKzwL2/tbi7vb68wsbEwsO+v8Ogg3dwbGFlX2tvYFVZX0hOaE9UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6UnaGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7bHu7fDxrO+xbu2r7i/u7Cztq+ihIeHgn15dnRwbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabnp+jpaCnnpqim5+qsKyxtaKpqqmrrKS1uK22r6yytK6yta6wqp+dnqOisqSlqbitoaamn6isq5mfn52ZnZ+lmpmjnJudr6irp6qrrK2wsriuuLm6sLa7u7qrs7K5sr20trGxtbS/tb2/vcLBurq9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MnJwce8vMXF0MG8yru7wbu1xbi1wcGzwsO7rKm0ubensbKpi4aIgHlzbnBua2NeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYWFdXV1hYWFteYmRkZWZmaGlrco2onZSUlJuXm6GWlpCcoaGonZucpaWgpJufoJqYra2tr7KgpaKtq6ahtbCxsaynrrKnubKmtqCinpqjoa2ioam1qqKjpp2lpqOWmJ2XmJudn5mXnZycm6yhq6aio6Wtq7KzqrSwsqqyuLOuqa+ysrK3s62prK6xt7C6tbm9vrazsZSEeXVlXmVeW1lWU1pVTFxRTEpFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbW4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/uqqmsLqxp7Gvmn2FhYB5cHF0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Vl5efl5mUmJ+doZuWoKGoo5+dqJybmqqmrrCrm6Ojtqmgn66otammpqywo7avo7agopuYmKumoZusuK+ioaOcoZ+gk5WhlJaWm5iXlpeclZ+onamjoZyjqqqwraezq6qmrLKwpaqusrGvsK6vpqensq6xtK+7s7m3raOUgXl1ZF5hVllXU1JUS01eTFBMR0hMS0U8QD48Qjw7NzU1MzM5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLW5wrG+uLyunaeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxLG/v7nAwbq/v7m5vLenprC7pqihpImBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkpSTm5iclpaboJyflaCfpaSjpaaenJ+kn6qvpp+ipLWnoKGip7OhpaekrqSwrKu0nqCdlJSpoaGUrLGwnqKjnZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZpKSkq6SksKaloqqrrKWorq6uq6ipqbOlpquus7Guu7Wwr66fknl2cmVhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NTQ1OTk7OTg4Nzw4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kpq23u7zBxbqxubbFysvBxMfHybjIxrXFwsiuurzCvMLAwb28t7q2paextZ2iipiIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlZW1dVWFdUVFdVU1RTVWBgX2BhX2BhY2RpgZSTiZGOk5KTnJSVlqSZoJacn6ShrKWjo6KjoZuqqqWZnqWwqZ+fnKSqnaehnaurqaitraKhoZSXopqcj6qosJufop+el5iTip6SjZKSlY+YmJOboKKcpKChlaCho6SboqqkoqSqoqutpa2xqaalpqa1pqqorbO1tLm6r6msnotycG9gW1dWVVJGUU9IWlxPUkpUS1NMRUdJQzg7Oz08ODY2Njo5Ozo6NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg1OTg5ODo7OUA5e7W0rbS7srCssq2dp6evubmzv8i6tsCvxsnOvMLLzcm3y8C0wMfMsLW8x7vBx8O9vra6taSqr66dmYeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl9fX19iZG2Oj4SRho+RjpmTlJKcmqKcm6CnqKqnqqWopKKYpK6klJmlr6mfm5iaoJ6umZupsp+kpp+jo6CUk5uWlZGoqayanKChoJqUkIyZjouQjJKMlpSQnaGgopybopWboKKgl6GooqKoq6Crr6Stt6Wio6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUVxZTVROUExRUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MC0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6op6+tm6morLe2rLvKu7a/rMzHxrnCz9DJtca+ur7Gy7SwvcS8wsTDvMCyua+lqq+rnpeGgXd4b25pbm5ucWdoaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05PUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRlpmioJufqqqmraqmr6KnmZ+soJSVpKinnZePjpmdrpaXpqmYnpyTpaCdkZCSkpKVp6qkmZmZnZ2WjoyLk4aIjYOQipGUkKCdoKOXlZ+VmqChnZKbpaWnqKigsbCmsbymn6Ostautp7C0sLm1v7GtsauQfHByYlZUVU5SSUdWUFNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojo4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpaKwq52qp6mysKS2xrS5urPLxrq8w8vRzLS5ur7AxMe1tLa8srq7w77BsLOtsK6wq5uiiGtobW9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkImYiZSTmJqYnaibn6qkpKucppigpZuSj56impeWhIORmqOPk6KclZWWh6GampOLjoqPmaOnnJWVl5uQkoeUjoyAi42AkIqRkpGgmZ+hlZOYmJShpJiMmaSmp6agn7Syp7K3oJyit6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0ROTk5QTEZOTktKTk5RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7KutqKstcO6uq6qq7Svr5+Xp31eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cISIgoeAkYOOipSQk52hjpqboqCil6SWoZuVjIeYmoxzjYJ9jJaWhZCZkJONjnqZjpuLgol/iZifop6Qk5iWhI6Bk35+c4mOepCGkpCQnJqZmZCVj52NoqKNiZqgoaOjm6K0r6yvrJ+YpbimpbChsa6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVKSjw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDg4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaalprOnpbTBuLC0sMrGubrCz8e/tK+9w6+xx7Ktp6yVo62/t7Cvn6esrKqWlKJyV1ZgaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscmx/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlZOOloh/k4lfO1dve4qTiX+LkYyPhYZyioSWgXiCeoWTnZSDlY6Rj4KGfJJ4cW+FjX6JgJCNj5eZmJOKj4ich56XhoeWnpqgoJenr6itqaielq20oqatmayrmKezoamto5J8cW1fWk5TUVZMRFRKUE1NRk9PSkVMUU1LT0pJTU9GSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NDQ4Nzk8Ojc5Ozg2QTl4t6CiraGmpqmgp6inoqmwqKe0wrmxtbDJw7m0v8/AurGxuMSrrsmup6KdhZqiuq2mp5WlpKOglo6WaVBNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JOS0hGSE5RUU1QUlRWWFpgbW9peoJ0UEJAf5WRkX2JlIyEio2ajJaVipKHhZWFeIh/YEpRbniKkYR8hIyJhH5/bn5/k3d1dniEjZlwUY2Iiod7fniUdmd3hYh+ioiVio2QkZaLg4mHlISai4GEkpuWnpyUpKOnqaWjnpuxq6GkpJGmqpahqZyipqiHc2tlXVtIUVFTTUlVTVNJTExQSUdGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85dracoqadn6Guoaeopaanr6yqtry2uLazwry3qLvJubepqre4rbbAqqKbkoKPmbGfoZmMn5aYlJGKjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aAe4WMkoCRmYuPe4aPf3V/eHNudXB0jY2BeX2JqoR5emh2e45wcm14gIqMknh6gHuAdnJxknhndYSDhIR6lYmIioyKgH+Diox/k4N6gI+YlJuVkZ+dqJ6fn52gqaWfnZiNqKSToJ+Vnp6kf3FmYFxcSlZPUUdLWFJPSk1NU0pKSk1QSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc2Ojw8N3aumKOhmJyetKmvqaWsq7Cxqr20sry4tru1s6C4u7OrnZ+tq6y1s6WelpGYhpOklpyMgpaIj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mAdnh/iY98hJiSgXKGj3t2em9rfq18c5CKf3uGkoB9f3RmdnyFbG9nc3yJjIeAbHlxfXBtdY9yaHGAfY5wQ4qEgoOEf3d3eoqEfYt6dH6Oko+YipKbm6OXmZ2anZ6inZaNi6Wbj52XjpaYjnVta2VhWVdYVFFKU1ZUT1BPUVdLTktPT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagprCsrqunqbCvsay8uKy7vrm0rqmbsaitnJCXnqesp6SbnZOHln2OlZGUgHuKeoSAfn6AZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7d298eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gmxpY2x5hZCShmtzbHxucnuFaW1wfnOMiIOFen1+enZvdHSFgXmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkoqSjYaQln1saG1ubVdVV1RSUVlPU1VVVFlWTU5ITktOTktDSU5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStsKKtqqi1r66stL+rvMK/pqOalaWYn46FjJaipJublJaPdpF9hIuQj3x4fnR9d3R3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfm9tf3qLiHWBiIZ0bJmRc3N8amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/e2dwcHtuko2Oe3N9fXFwbnVtgn53eXRqeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlcTlBWV1pZT0lJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKisqLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK6esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SinOJhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scYOBhYF5g4aGeXGflHN4gHN1lIc1cZ2onY6hoYSihHZwhnuGe3OMrY2IgGhmYmltcW1vgnVpb1h1b42akXZsf3t8bXJucH96c3VtYnaEf4aAhpGRiouKkouRjIuPg3Z5i4+AfoOAfY54cG5ual5aW11bWVhhYFNPXFtZWExISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbCuwbO6wcaXkIyUkIGJfW6CkZOKhIuJkIh3hIVul4qMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz6Sg6muX0hMTU5QTDdDTVJTREqGdoB8fHZ+bHeHh3x9hYJ/jH51oZl5foaAhJmFm5xhhqqfnYuCkI16doh+iYeOc4qXj4N7XGRxdHp7d4ptZ2lheW6Fj4J6boF3c4R6cXN5d2tuaV13h32HfIiIj4CLk5eDjYaNh31xhYCEfHV3e3yHdG1xcmRlXlpaXVNbZ15YUVZZXVdHS0tFTEc/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDEwNDY0NjY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8W6lo+RlIh6hnZrgIySg36LhZCNeYSCdKKFjX9/g4Bzg4F9bHlsU1hMQUUzMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4t6fIiGfpeHd6GZiIaPkpSljaypSIatr6+KgICTioGLgYSRqIeAmJiKnHNsfIGGh32OaGdneH5thYaBhXGEhUdrgHhxeXZobWtfd32DiH+IhYx6lZ6ciouJkn97dYt2fHhtb3d+fXFxcGpaXFtaY2NXZ2ZdVlBRWFpRRExMR09JREZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soKe5r7O9tJeNkouYi310cX+Kk39+jYOUlX2Hf4alh4mAg4iGeYiKgHWFeV9jVkxDNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZVwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkICaloKgoJeVm5qlrZOZu7Gnu8jDp4qMoaSOk4mAkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxh4J2h4B7doV9bnZ1Z4GUj4aJiYiJiKKro5aJj5iAe4KKe3pvZ2t5fnd7cGljXFlZXGldYWdgW1BNTllTUklRS0ROR0NLREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZGPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z/i4GSm46EgIKMi4KJjoWAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUUlJS0xLTlZgY39nZ211nZuPmpOTi46PmoiTj52LoKGSo6mko6yTqLaip8HCrseveLqUmnyMoZ6ZhJKEgo+hnpOZkoSKhY+YkJVsb3WJi4GVjI2Pd5CEcWyFgYqXkoOFiHKJoZeHk4qPkJeltqmbjZaig4eThX6Aa2prfX59f3FfW2JeWWZqXGxsX1lMSFBTUU5OTUdJUURETkZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZSSeoCRiZKSfYuFmZKRg4CBi46JhpKIhImFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVFPjs8OkNGPz48NzUyPEBSNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u+q7bIybfI0c++m6Bwaaqon4STkYWcoJqamaeRkYiVoZmad3p+lJiRoZKXl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnpGaqIiXkI6CiWxzc3x8eW5mXltfX2FnY2BnZ11SRUtLUU9KSk1HR01DSE1GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliX1BxdWBufWF3jn18lI6Oip+Sl56VnKqYnqpCRH2HiYiZjnmCjYuOjXyKhpCRj4KDgYmMioWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJUVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTxGSEdJSk5PUVlthpB3lYujp6q1vbilrqysqKm0rLC3srKtu7Gzvpyzw6y7ycu4w7+3paOwsqysqqOKlpiFpaagopiCppmNoqqnpIeFk6OgoKqhpKmOnLCLlaSnuLucoaOwk6Odo56RpKKssK2ztaOVpquJmoqTi5V6e36De2VeZlpjYF1iY15mZ2BbUERKSFRPRkhMR0tIRkdIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gpOFiIKcg5KRjJLayJ2Wc1aXiI+InI99hoyPi4p7iYOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktKR0hST1BXgZOghK6js6qywcfEq7PFtq2zwLO4vra/tcG2u7ukuMaptsnHtr65tKijtK2wsJuZkpqfiaevqqSVd5+kl6GrsbKYlqmtqK61u7K6rK+1orGssrW8uLWutaCnqKOom6mwrrO6t7monLiqjaWPkpSghnqBgHJYX2JVZGBgYV9fZmBcVUpERUxWUklKS0VLSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NTk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGUfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONiIWCjoCBiY+Gf4aIhYqHkXp5b11XQEVOPDY6NDZBQjc2NC8vN0NIQ1FcT1FVWFVcV09fVUlLSkFAPkdLRkZEOz5AN0Q3P0JKS0VGV1RQXo+kraSytMO2uMHMyre8xL2ztMK4uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrCgopabopKlsa2lraynpJigrLO5oaixubW7vsy/xcW9vLPCuLq4v7i7uLqtrbGmsaquvrG9vMLCrZm7qZWuj5iZq4l+gHloVWFfVmhjaWVWW2RaV1VKSEdNUkhESUtBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo6NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoRve3J4iGK5oZqjiZWUlpOUk42Pl5KHh3uHgY2VioGEgYp6fIuIhnyKgoGLhJV9eHp1ZlBcZEdFTDpRZGBbXlNGPztIUEVbY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQzxENkI/SEdKTFRaVF6Ur7i1u7nJwLu9ys28vcG8uLa8vLe+tbqyxmB1sqWxmp6rvqqlqKuqpKKztaCrp56Vlp6Yn66lp6elnqOUoqews6eysry2wb3TycnTxsLFzMLKw8G+vr+8vbi1sLm3t8O6xr7EybGeuquirI+mqbeKgHxvXF5eXFVgXWhmU1liV1NXSkZGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scZCNhpBzbHJyc4jVwLaaoI2VmZmRj5eSlpaOhoh9h4OMlop/goCCeXuLhId7i3mBioKXf3R9emxmcHZZXVxQZWViYGVkXVtYWFxOZG1VUm1uX29fWGdlVVlUSkRCS0tIRkhISEhCSTlEQEhLVFRWXVpbk7nAub64xsG7ucrLu7e6tri5tLi1ta63t5lkdamerXBeoq2dmKGim6Seq6WUn5+QlI6WmJionqafn5qZg6OdrKSqsKy3sLy41NDO1s/Jy9HMz87Kx8DAwsq+wb3BwcXExsrAyc+0pLyxtbCcrLm9mn13aVtcWVdbX1hhYlFcYVRSTERCRkhGPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYHCXk5GUbmxvdHWHs6yhoZ+LmZyZjY2WkZuShYqKf4mGjJCMiXyBg3N7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm50l62kvYiHZ1tvaF1aWVRIS09QSktQTFNRSExBSkZLUF9fYmdqYpi4x7C6tLu+trHFx7awubGxu62zsqisuK2NtqienKeaTpuejY+glpGnmKWVipOTiJGJkJGSnZuhmJuVloeemaaarK+or6ezs9TU1NbRy8/T1M7Tz8zFwsrQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xaJ+bGFZWltWXlZZZFpQXVhPUkNDSUZESjtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZgmhycHl5g6GqnqaXjJubmIuOlZGajn2Ji4aOioqLkIh8hYJwf4eChnuHcoOSi49+cXl1bHF4f3J7bnhzbGmAcG1jaW5weWl4fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBdXU1RTlRRVVRcbm53g3KXrristaiwtqutvcGyq7WmpbmnrK+irLSkj7Gum5iYjJGUkoWPm4GNp5KciYOLhIqJhIuElJWXl5SbkJyYmZmenauspKeirKzO0tXRzcvS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVV5RXFpQUFVRT0k+QUdCQ0Y9QUI/RkU+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCRj4yKiJGHf4N7cn6Agod6hXaFk5GJgG93c2xzfHx3fHOCeHFrgHJyaXByenlye77Lm3+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYWNeY3h7f4yCmaqkpKKgoammqrK6q6a0o6KuoqSuo6eyoImmm5WTkYqSj4mClIlrlaONmYSBhn6Rg4OUl62LlY6Vmo6FkpCdl6evoaCgpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1drNytjW0cutxMPMh29rX11cVlJXUltQSkhKSktAOzo8RUNFPUNEPkhDP0NCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXGAdn5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiYiLiX+EeXN7fYOHd4B7h5GXgYRveHFudYB2eH10hnx5bId2dW59doR1eXyeto08QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6Bg4mSjJ6foJ6Rl5mgo6Sns6WksqCipZ+iqaKjspyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ianKecpr3Dxbi2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHRzamFZVlBTUFhVRUdLSkZGPjo3OkBCQzpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9CPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot/h5KDiYaFioKIfXiFl5eJj4OIhod7hXlxe3uEhXV6hY6NnnqNcH1wcHqAcnuBcoSHgG6OenV3fX2DdYB9h4mwdFmqwreNkoFwbmM9XmhycXFwbnd3gmZpb3J1eXJ6i4ePlJKblqCWiIyTnJ+bn6ugoaycopqaoKafoKyajJqNkZOOhX2IiIOFi46gmZSIg4d+bJl6hJmHiJOMjpWMhnubiJOPrquTlZeemKautbyorb3Gy8jJy8vPycPSytTX2NfY19Tb19PZ29bP29rS1snVzJJ0d2VkWFdOUVJcR0NGSUk/Qj49ODo+QDs+ST1AQkFCRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDVMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8QTw6OUQ+Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoOBgoV/hHx9hJiOh4x/hoeBd4N5b3t7h4J0epKejqF2kHaDdHWBfnSAhG+BkIJvkoV1fYKFeneHfIm4xqXDyriClpyPeHBmTmVjgnqCd4WhkYt5eXd7hIB8hHZtlJaVlpCYkYOJj5eal5emnZigl5+Tk5ijnpuslpGQi46Tg4yFiYmChpCRnpyaiIWMgYaYe4iJn5ePiY6Li4J8oIiQirygmJOXmZyopqWtnqe1v7+/uMfJzc7EzcrR1dXU2dXX29TX2drb19va2djO28aCdXVjZWFdUlVVVE1LRE5EOz09PDk6PD85PkE2Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk7N0lQXFpSVVhMOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6inx+gH+AfoZ7foKRioWGeoWIfHZ+dW19fYd+dH+SnpGgg5J8hn54j355i4pvg5uBdJmHfoKKhXx+kXuQqY+Qw6C9jZyknH6KhX2Jc4yLgHOmmpyYlIV7j5GJhGlHcKGknoyMkZKFiIuRk5WPnZuTlJGXjYyWn52UoZWSjo6RjH6Qj46LhImSlpmfn4iMlJGdkIOMf6aZiIWOg4aEgKSFiou3l52RlJWhpqCdnZ2jrra5tKvAxsrQx8fMz9PS0tjS1dfA19jZ29ja2tnZ19y2dHRzZmZiVF1ZUk9OSERMQz49Pjk5Ozo6Ojw9NkE+Pz09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVlhmbW1taYGOinFzeIp7e4B8f3yIe318i4eCfnWDhnpzenRtgX6FfneGm6GbnpSTgIyIf5iHgJySboiphXuhjH2RjoOJhZ1/m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5yQg5mckJCOW4KikYKNn5OVjIeIjJKSjJSVlZCMj4qIlpydj5aXkoyTlIaAjImSjouKnZeYo6OGk52VoIqKiI6ckIOJj4CDh4WkhIuQspickpSXoaCemZKbnaeyuKylvcLHzcfGz8vPzM7W0NHUrdbV2NrY2trX1tnZnGt4cGNjWVlVUVVXQ0BJRD8/Pzo0ODo7Nzo8OzQ8PD89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozg4OzxAO0JRS0tTWVBUY2J5bWJ+kYNvbniLeXp/e4F9h3x8d4aFgHNwhYJ7dXd2dISChX1/kqain6ail4qdkJSXi4qol3KKs42EqJKEmZSFmo2jlqCYk4mbnqKTqbCfkZWRjo6IloxvjbeEmsTIsp2ipp2cmJaRspBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaanI+RlZOHlZiEgJCMmYmOkKuXl6SjiJmelZqJj4eXl4qFj42Bf4ePpIiNk6ial5OWmKGYnpmTnJuisrSlo73BvsfFxcjIycLK0s3N1KjS0dbW1tja1NPazn9uemRfW1pbTEhUWkJCSEQ7Qj44Mzc8PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIU1dTUkJjgkd2gY59fG1+iHl7fnuCgoN/d3eAg3xtbot/e314eHyEh4p+i6Kzp6Oqs6KXp6ClpJaVrqKDkbiVkrOajaKhjKWcsKOknZmRp5apmqyvpJiVlpWQi5ial6HAjqPJuKuco6aumJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMjJSTh5SYhoSSkJx1kpmzlpeloYecmZKPipGKl5uJi5eOhn6MmJ6JkJCbmpqTmJefk6CdlJ6boLGuoqS4vrTFx8S9w8PAxs3KydKmzs3U0tDW2NPQ2LludXFZXVJdVU5HSU5FQUNFNT47Nzc6Pzw8Nz00MzY2OTc3ND41OzU8Szw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODQ2Nz06SkZER05aXFlKZmA7SYSLenpuhYZ6fYR4gYaBfnB4fX59b3ONen6CfHiGi4mGhJKmu6yosb2vpa2zs6mkorCsipq1naO5ppWtpZaqrbinpKOgmqmYqqSusKqamZyUlpGXoJiau7uuyqFqt7irsJWZnqOsk5e+o16qsoOKio2Uh5F8jo59g4aOkJSViIiTloyQlY2LjZeZk52ZtJeVq52KnJSRjZCSjJmbi5OekIuKlp+hjJSNl5mdkpuYnpShoJScnaWuqKGktLiswsjFtbq9vMXHyMLRoMbKzc3F19bRy9SebHZkWVdQW1BORUM/PUNCQjhAODg1P0c9PDY8MzUzNDU0NTRCNDk6Qkw6QjtBSEM7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSUCLin6Bc4aHfYKIdYOKgn9ufX19f3B3h3eOgod8jY+MhoyZqsLAr73Gu7O0wL21rauztoyosq6tvaubu6Worbm5q6emoqKko6qvsrGqnpykmZuYmJ+jpqWSo7qvqb+8ra6yuaWlqH6Ih5ytvbCDjIyLkIOOg5GPeoGIkI2OnIiIj5eNi5WXlJGalp2omrGakaycjpqPko6UkJCWl4+SoJKJlZujrJSWj5ScnZKgnZuYn6CTmp6mpaSio7CypsHGw7Cwu7fFw8O/zabHxMfEvdbRzcXKhW9vXllXXFlMSkJLQUZIP0FAQzs6NT5BPj41PDc9MzMzMjQxQTE3QEJNPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg6NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QkE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1dk4yMiXuHjIeDjHWHkYqBb357gn9xfoF6lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+ruruYs7e6ssCupsCkq7C7vaquq6OjnqerrrWwqZugqpyhnJafsLWnjKO7urbBvKypnbSlpamUhY6qxMOkgouPh4iEhpWUjXqDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWOkZWSkKGUh5efobOelJmTn6CXpJ6an5uflJiepaOmpqSvraXAxMOuqLe2ycO9ts+yxL/EvLPRysjCtHB1aVlVWWdQS0hDTUtMSkFCPkRFPDVBRTw7Mz05QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZVRiapmNloqLiJOQhol5h5SQgXKAe41/eIeCgpB5jaGWqJmambq9x8jJwdLJysLNvcKzrby+p7rAvbvEt6zBqayzvL+qsKqkpaSsrrOttrWgoK+fpaKZo7S9qZypvcKjtrevrJSyrKytl4eaqqalkYKMk6WWioF1ipJ5hY6SkJ2fk4+Ui4+NlKOZl5yUlKOeqp6RpZqMj4+PlZaIfI+Wk5Ojm5Wgopy1pZCelqSjoaWdnaWYnZWXm6Sjqaeisqyou8DEr6Wzt8y/ua/Es7u+wrmtwsPCwJdodV5WVFhYSUpMSUZERElEQ0JETDo0REk6OzQ9OEUuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYVpjY1aej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqRgJahma2npJjCvcfDx8XTzs7Ny7zCuLC6vLS9y7vDwra2vK2zv7m9rq+ooKmotq6tqbK3mp6toqehnqu3uKqlr7/Fsb26s6irt7Svr5eWpayooJGOk7LFp5aOfJKVfIeSmY+pmJeTk4+SlZOlnZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfsqWVoZWqq6mmmp6ml5iWmJSgo6ilnrarqbm7w7SltLbLwLiqtquyu7iuqLi6vbd/Z2pXVFJTTUVKUk1LP0JIRUVJSEc5NkZNOz43PkFKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz40RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs7O0sq/u7ayu7u7vs+1xL65ubezsbWzuLOrp5yrrLmqqKevr5ikr6SnpKW1wLCsrLS/w7nAurSoure5tLCWpa2vrqSLk5WhjXTCmn2XmoSOl5mMsJWampWSkpmZpaOVoJqWmqmdm6CgmYqNj5WcYEqWnJuVmqWWVJavn6+cnqOUrq2qpJmgpZOTmJiNm5+nopm0qKqzu7u7q7CyyL+4pqyrrbKyo6GysrSkbWpiWVdNT0pET1BQUjtIS0lISkNEPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NUVBOkE/PkhANStDNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52gm6OktMm1qcW5wsTIysnIzM3Hv7uzrrm5wcHMtci6wrm1urCvr7O1pqObqrS1qqmmrayapa6lpKisur+orLa3v8LAvrmzs8Wzur6tpK+1rLmmiJuYppt2v5+EmZ6Ok5qajK6XoZybl5San6ConqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOrlKepl6qso6KepKeSkZmch5Scop2Wsaapq7m2vbKyrr65tqCjp6ilppybrampi19iXl1PSktGR01KVk09TkZPS01CREQ8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuhn7uvmZSgjJOrnJGSk4mrjYahnoyjrJSjpLbGvrTAucLCx8nFws3Iwr65sq+6tcHCybXGssK8tbqqqK2tsKKjmKq0u6appquqnamvp6Oqq727qKy9tbi+x7y3trnCs7/Btaq2t6y+pY+jmJKioL2fiZqhmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlZCUm4uWiYykoZSdop2gtK+lpZKvqpmqqZycoqKokJSUn4KPnp6blamkoaGztLq0rai2srKenaOlm5eUmKqhnnVcWV1cSEdFRkxQSU5FR0hDU0xKQkVHQVdTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POURANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyg7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiaqpyXm5qPqpaVp6aVrayZoqu2xMO8vrbBwsDHw7/Mxbu9ubKwubO/wse1v7C8t7m2paSrq62goZmqqsSipKmrpZ6sr6uiqam+t6etv7K5t8e2tbm5wLPAw7i2s7SwvaOXo5eUnJSun5Cio6Wjo6CQvaWpnamrnJyhm6WevaKZo5+iqayhnZeOlp6TnoePhI2Tn6SgnrWsppyVsKaZrqWcmaicn4yYlJ6DjqCZm5KlpJqYq7G1saqlqq2snJigoJKOkJWonpRlX1dfXE1IR0lOTEhGRElCPlFJQTxHSUlcUk9LPUlPVTVCRjk+R0c1Q2FaS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1NT85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVFGPEt4ZWFWS6Kao5yexayhn6yfnq6gk6OflqWgpqmsmLaxo6qztsXEvb+1wMK7yMG+yce2uLW0sbO0t8HFtr6xuLW4tJ+mrKqsnZ6epaTBpZ+prZ+kqq2voqaovLWmsb25t7bEsrS4u8C0xcK5ua+ztbWjnaWVkpShrp+Zop6pqKyjmsKsqZ6srpubnpmloL2hnaSYq6uspqGajZqfkp6Jjld/lp+loaC4qqaTmLSinrCfnZmtlZ2OmJOcgY6fl5WNoaOWkKWtsaupoaKlpJWVnZiKjpGSpJ6IXmFYYl9LSEpKTkZFQUdLPz5LQjo5SktOXVFRST1MV1w5Rkk9RE1IOEhiW0tDTFBTWVlWV09aXklBPVdRSkw/SD81SExYU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1trV3FHRTY9dWVcS02enqGZn8SopqG0op2zqJSrpaCkn62prJ27sKistrHHxcHCssPDvcbDvMTJvK+wtq2wtK++w7S5srC6tKyZqLGpqpqdpaGnwa2brLCbqqOusamkqLy2p7e7vrC3xK2zs8PAtMi0vListLatqqKmlpWVo6yhn6Cbp6uwr6+7saagqaiamZiToqO4oKGjkrCwrKWmn5OinpWej5CNlZ6bop6ntKemjJeym6KtmZyaq4+dkpWSmX+RoJWOjZ+glIulq6+lpqGcoJ2RkZqThYqRjZudfl9kWWZlSUhMSVNBQ0BJSDs7Rz85OU9OVl5SU0o/UF5dPUhQQkxMSTlOY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJlZ0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXWVwQDg7SJZ3ZUE0nqOfm6DDqaSqs6KktaqWs62noqSyrK6pu7KtsbW0xsDEwrTAxL3JxLW/x8G0q7Wor7isv8OzuK+ttrmlmKqyq6uYn6aXrbu0m6iwmq2grbSyp6u5sqi6tLmzucCqt7LEvrbHqMCvrre1qaesoZiXkqaloqKYmaWvuK6ytbagn6mkmpSWlKSgt6KlpZawsrKnq6ain5qam5WXqJ+gmKGer7Kipo2WrZikqpaXnKKPmoySlpiFlZ6Ti5CbnZOKqKiqoqagmZ2Vi46Zj4GFlIiTnndhZ1tqaUxPTU5UPUNBTkM7OklANzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYloyMzgwNnBbYkgwNElvZ1VDV0aMeWZDO6OjnaGmwKeor7GiqrWrnrqxrKSrtLaxsLm3sLe4uMW9w8e9vcTCxb+4wMXAuam2pKy7rcDBt7eqrbG6oZOtsa2ylqSnkaq5qp+msZyroK+0s6uptbatvK20s7m3rLixw7vAwKfEq7G3r6mrq6eemJmroaKhkZihsa+zrLC5mpupn5qXk5inoLappqOisbG0rLOoraCcoKCbnqWcopedo7Ovm5+Qk6SZn6eZk6Gdk5eIk5aSlZackoiQmpiUjqiopp+im5ibkoWNmYp9i5WEjZloZmtgbG1XUFFbVUFCRVRAPDtJQTg6WFBkXlBXV0VZX15OTVJOXktKPlljXk9IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURFQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpjPzE2NDdnWWBGKD84bH1nW1Y7iXtjQz6nn52iqr2iqrCspLK5qqa2tayhrbW9r7O4u7u+t7bAwr/JxLnEw7+/t8O8wLautaart7G7vb60qa6xtp6Wq66nrpemqI6nu5+krLOerKKxsLOsqbW0tb2usbK1rLC0s8G7xresvbCxuKytqqOypp6lqqCkl5Can7Oqs6urs5qdp5yblo6hpqS0rqihra6usai0rbOqpJyfqKSelaKZm6i1qZeZkZGdmZ2fnY+pnJWXhJSWip2Ym5OKjZaWmpampaOgnJaVlpJ/j5SFeo6SgouUZGpxZm9xXkZZZ1ZEQ01XRFs5SEM2Pl1RaFxOWl1HW15eT05SWGRKSkJcYl9RTE1PWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19eX1QxNTA9YFZeOCpDM1lVXGdLNox6ZkxApJqhpa23pKyqpq+ut6qvtryop7G3xrextr3Bw7W1usS+zMa5w8C5vrnDt8C4sbOrqbq2urm+tKmtsLWXmKesqaybq6uOq76dq62xo6ugsa2zrq21sri4qq6vsai1r7W7vMqzqre2sbSvrqahtKCbqa2gppaWm5qyo66hpq+XoaSampOOo6aos6qip7Otq7alr7K2r6OZnaynmpefm5mrt6KXk5COmJygl5aSqZ2akn+Rl4ycm5iWkIqUkp6ZpKGioJiWkpKVeouPhXqMioKKkWptd2x0e2FGYWtZSUdaWj17SkZENkFiVGlbTVxiS1xdW1JTUmJgTEtFX2BfUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NigoOS4kOks1LiJVX1RfLzUoQ19RXC4qQS9KR1BbRzNjWVVLRJmXobKpsqqtpqSvrraquLa6pay0t8q7tLu6v7+1s7fDwMzIvMO8tr2/v7e+u7C7raa5uba1wraqrbC3lJanrqupo7CplK+6pKyxs6eoo7K0sbKwtLG3s6mvrLKnt6+3tMTGt6m2t6yxramno7agoKiyoaWVnJqVsp6onKCqjqmjnpuWmKampbioo7K1rKiyqK6ytqukmaCrqJucnpyUqbiclI6OipeboZePlqSfm5SCkJSPnJqXlpWIlo+XmqecpJ+Rl5GQlXaDj4d7hIGDi4psb3Z0e35cTGZtW0tOY1w+YntHSThHZ1dmXExeY01ZWVdVWFRpXU9PSGBcXlBKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZTI3J0diTFYlLEEuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7iyuKGstbnJua7Bu8O4s7G1wsLOxcDBvbS9v766vryyw6eouLC1tb+8rquysZugp7GtpqavpZ2yta2qsbGsqai1u620srSts62qrKisqbitsrDIwbmlurGpra2lqK6xpqWkr6SpnJ6dm7Cao6Ojo5Gtn6SgoKKrpqe6pay2tqarrKmtsbauo56jqKqboJubkqOzmY+JjYaQoZ+UjJObnpGRg4ySkpyZl5WUh5eSlZmnm6CejJORjpB3fY2FfHt8hoiIcHJxfXx8XFNkb11OWGVcRkSWW0c7Tm1YYlxNYGJOVldWV1RYZ11RUkxjWVpUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKjpHPjNCSFMsPpBrO0dIj5yqrKOqsaSppbS1srW2srKirK69zLquwLrHsbSttMLD0cXGvsCyvsDCu763u8Smq7arsra8wK+rsayfo6etqamlsKOqsqqvrLCvsK6stL2ntrCyqbKpq6Wlo626raqyw7q2rbupqaisqaexpaqlo6+qqKKfnKOtlaWemJ6ZrJ2ip6miraakrqy4s7KiqqOgq6+xrJ6fpqepmaSZmY+fppiHhI6Ji52gjoqLlJqNjYSFj5SenJSXlYaWlJOXpJydm4uSkI6Jfn6HhXx2foWDhHJxcId0bF9aYG1hUXJwXEs8hXxGP1h0WGFaTmRcTlZWVVdRXGFeU09OZ1hWVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdFRjY7Qi80RUtYMkCVWT1MRZaYramiq7Ocqqqxt625t6+spqurvcm8sL22wq+xq7PDw87Pw7+/tMDBw7m/s8fDqq62rbK4v76xrK2rpKeqsKioqbGltK6qsa6usrG0rrW9pLezrKyuqKugo56wt6uqrbq3pbe2pKqnrKuqraGpp6eysqSnpqGhrJeqoZWboKaepaKqpK2joKexuK6upKajm6qsraqdoqSjpJigm5aPl5yTgoOPiIWboIuJjYqXjY6JgouXopqQkJuMk5KRk6Oam5qJj4uLfIaAgYN6c3+Cf3xydYukh3hrX2BsZVdkhmNOP2eTTEVieVdjWVJlVU5WVVZUT1xdYVVLTWhWVVZJSkhJT0JHSVNRWW9BTlhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlkuMEpnQUE7O0IrOkpPXjREhz1HRkSXk7Cmo6uxmKuqrrast7OspqyqqbzAwLe4sry1prKww8nL0cDAu7m/vsG5wbnAw6yxtLGzusC+srCurKurqLaqp66vqrmwqLKyr7Ott6u5uKa0t6uspKmqnaSes7OpqKS0tKC3rqCqqKqoq6egq6ypubaqqqqqoqqgrZySqqGdoKWipqOqn52ota+ppqujpJmlqKeqnKKjo5+ZmaCQjY+YjX6HjIeDnZ2Gg4iJjYyOi4KFlaGZjY2akJKRj5Ofl5mWjIuDf3WHgX9/eHSCfnh2fYCHnY9vcWdmb3dcX3KIak9emVZIbnlVZVdRY1BNVlRVUE9YWmJVSE9pVFVTR09YVUk+SUhPUVB4TE5XPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMVBhMDI/Zj1OWD9DLD5MVF8wSmk1T0Q8l4+xoqasr5qspq2wtLWwrKawqqm6vru/sK25rqK2r8nHyNHAvr27u8G9usO/vr+tsbGxtby7wbGws6qzqaS0qaWus7O5saOuuLKxs7uru7Cqrrarqp6qq5+joLauqaGfsLKhtqqeqKeqo6qhoq2tqL6wrK6toqiooKyZkLChmKKgp6ifqJuaq7Gqo6CuoqGUoqSjp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioWNi5CDg5OfloeRnZCTkI2RnJSXj4qGhnh1gn98dXh5f3lycXdmfoakdmlfY2mAdGaIjHxSWHBfS3hzU2RUUV9NTVNaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBLZzo0OF89YWQ/RjFDUFtbKkhMOVVANJKQs6Glp62kp6Stp7WzsqulsKeqt73Au6+nuaqmrrDJx8jRw7y/vri9vrzIusC3r6+zsbq6t8CysrqsuKyitKeorbO3urOoqL62r7e+sL+nray1q62cqa+jn6StrKicnqqypLSom6unqaOonaOpqKm+rLSwrp2qpKCunJuzopWkm6SmoKWbm6qspqCcq6Kck5yipp2Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuGkI2Pg3+TmpKFk6KMlJGLkZuSlYeJf4Bye3p+fGl4fHlzbm56ZoN3hYpkYWZfcYN5bGZ4XV5UP1d7bVRiUFFZTExOcnVdSFpbZ1lFVWVPQz5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2lJMjRYPWZiQUo3R1NgVSo9OUNWPSqQlbKaoKGqpqWiq6W4s7SmqrGmrLfBvbWvormsp6ewwsrJzMG2vcC0t7+6yLTCtLKxtLG9t7m9ta24tb6sobOnq6yxtri1rJ+/vaqzwbS8oa+ztaqsn62wo5ylqaqknpyksKWwoJ+rqaehqZylqaGtvKiusa6hq6Okrp6fraaXn5uhpJ2gnZukq6Obm6WllpeVoKOXm5alrIyekZGRi4KKgICOgXuZlIyIe36LhY6Ni4mEkpeQhpSjipOSh5GakZOAiX15bH52eXhjfHpwbm5wdWZ/cmqEaGRmXWtyjGxgaHBgbz1beWxVXk5QUktKTVRaV01cXmxXRFdfT15PSE1ERjs3SEVLTzxyaEtLOUFFOzs9Pjs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFnWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJqtmqCYqKSkoKikuLCvpK+vqau4wbmyrZ+5r6uotLrIy8i+tsK+r7S9t8S2wrGtuLGywLS7vbeoube9qqO0qKmrsq+6saucvb6msMG2t6KvtrWnpqews5+epaaooqaZn6yoqZ6hqq6moKaYpKmgsbmfpLGvoayhrKScp6eomZqbn6WWnZ2bn6unl52hqpOalJmflJmWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVn4mRlYKLl46RfYV8c3B+cnR0YHp4aG1ubm1nfXFje21pZGBbZIR+XllzanJJSX9pWFpNUExLSFBSUUlPXF9uU0RYWlJnTkdLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZWMyNE0/ZV1GTz1RWmdIKj0vV1Q1KJefp5qdl66hoaGlobersqa0tKmoucO0sq2guK2urbC1xsjAtr7BubC0vLe+u72vqr2wtL+xvcO5qbu6t6entamorLKutLGonL+4pq69uLOgsbewqKWnr7GboaSgpaWgl5yvpqGeo6ivoZ+hlKWloriwoaaxq5+so6+YnKqlqJ6Xmp6llJudm56orJqdn6aXl5iWno6Tl6KoopCJi4+GeoR+hIt6j5eJjYZ4gYaDh4uNhY2TmI2OlpmKj5d+hpeNj3mBenByd3BwdF95d2Rra2pnZoJsZXJqa2RnV2Byf15Za3VpWEV+XlpYT09LSEhSVUcyOV5ebVBEV1VZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS46MV1RLDKXpKOYlp2rnqaho6G4qrChu7ilrL3Dsq+uorWwrK2vtcXEvbO+urews7m4uri6rq2/s7W4r7/BuKu9urSlorOrqau0ra6zpJ7DtqequLesoLO8qqelqK+rmaKnnKSmlJihsqWZnqSpqZyhn5SmoKS5qKSnraaepaGok6CpoaGgmZueoZOcnZeho6ycnJujlpOWlpyOlJOjp6SQiYqOhnmEfIWGfZ2NiYqGeICEh4eIkYWUk5KMkJWUjY6Ue4OXkIt3f3xtdXNtbXRieHRoZmlmY22DZmdoZGZnaF1kYWhlWmV6YmBQc1RbW1NLSkhJT1NAICppXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1PPy4rLTctMTE5NSwmLjUtODA1NzZgc0IzQ0RoW0tXR1VgaEIzNzdgTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK2rqevr7fAwLyxwbexrrK2tbm4tayqvLOvsrG9v7euvLywpZ+2rKantaqrr6GhxayqqLK1rK20up2nqauxpZedqp+npZKZpa2imJ2kqqGboZyYoZ6nt6Wwq62hoZ6doZWhpp+ioJmcmpyUm56Vpp+uo5mYn5aVj5WZjI+YmqegkIeKioh4hXeCgoKdh4qCiHt/hYiFhZCElpWPj5CRkJGNknuDlY+Fc39+Z3lwbGtsZ3Vza2FmY2FzfmFkZWZkaGhiZW5ZXVhcbGNhTGdXWmBWSUdJS01SWD45YGxpSEJVU1xaSUdGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYUUlNZ2loZKMr6GamaCXpbSyo7K+t6Gxxbu5sLGjt6urrqm5vby7rcCyrq+utq+zubKnq7mwr660tru2r7m+raaetaugobKmq7CgpsWhs6awsrG3rbSdq66srqKZnairpp+Vm6emoJmlo6mdmp+blZ2drbGluqiuoqGam56Zn6SapZ2Xn5iclpqhlKqXraqclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiShZSck5KQkJGXj5B/gY2Og2+Cf2d5bmlsamdxcmtaaGNhcX9gZGdqbWpkaGVjbFxsbHVxYlNiaWNlWklHTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEVNYTg6PzI0OUAzNzgxOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6TGpbTVtLWGRjQEExR2BBJzSUo52Pj7KdnJWhm6mzsJ+4wLagtMG7vbmxprawqa6luLm3t627sK2rq7eqtbmtpLO1sa+psba2sbO2u6epoLaqnp+ro6qunazEma+nsLK4tayrnrCtr6qim52kramblZ2npJ2aqqOllpqgnJKco6yrqbuepqSgl5qanaGPa6OWmZ1xg5idpYB2kqypnpeYopOKmJmAl4qfjniFko2CbGl+d4RxbIaKhn2Ei4ZvXWRhZ4SYhmyLkJSSdXiLhH+DkH9miIFodmpmWFxpdG5NT2liZXCDZV1kZm5qZ1xbXImQhIhoT0tEOEZUZ15KSFFQVVZLSFJhcHRlRltRVVBFR0ZDPjE7PTY9Njw0Zlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyODZYgWwxNU9rXE5bS1tmYj5HMU5fOysuj6SbiJaym52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0srOxua6pp6y0prG1oqe4trWop622s660rrSiqp+0q56jpp2nqZywv5WoqLG1ua2tpKisqquloZ+coaiom5iipqacnKeonZOen5mQn6irpLWwo6KjnJaYmZejiKGPkpqHoYiVn6KApYCorZ+VlJ6UiYRyeI2Og4igdYeMaZaIZn5zeKBvh4eEfox8f6GgoJmAfIefdIiOdpuKa4eCg25pZWR7bXJiVIZtZG1pmHFYaW9thlZdaFpraVmHcGt5codoh4RZXkZOPkZeTUZTVlZRUFJXVGdeTVpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tPW0xbZ189SzFUXTcvKI6nmISerZ2amZ2fq6qoqr7DrrK5vLfBv6qkt7GqrKazta+vs7erqaWyraW2tJustba1paaps7KtsqivnqqhsqmgpKWcoqWesbiVpqiot76mraapqaynpaGfmaGopJqZp6OkmJylqpeUopyUk6Smp6G3paOfo5iVk5iUnYiukJiViqqMmaSdhrGBpa+glZuhl3qC1KiAh5TAm8Z4d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWlsWLGub2ZqvJO8bmd5bXGO2H1SamK2snx+cJV1mqGqkFZOV2FPVk1GVlxYUFBTi1xXW1BBXERQTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQUUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWVo0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW3v8KrprSuramor7SqsLa0qKimtqaoua+csrK2qqWkp7KvrrGnq56npbKloqKgmJyiobKvlp+kobW6o6qooKytpKGdm5qjqaCYm6mgn5eeqKiRnaeblJ6ip6OhsKOen6OWlpOYkpmFr2tqjI6qf2iFloetZnKgn5abqZdxrqGkf3e6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhrqmW+c2emjHaxanyxeHWSlGNtbaduXISgRWlniJZFdZxffWZ7o6aBWF6Kq2d8jHd7aqg4Sq9bWFRsY1pLT1lgXFZWO06IUFdWMElTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpONV1XMzEbkqOWg62npZ+jpauyuK20vb6wt8WyuLrDp6mwrLCpqrGvpLG7saWlr7OjqrmpnbOzsaOkoKqtsKyvp6igo6OxnKSemZaZnZ6wqZico6C1s6GrmqGsrJ+dmpego6mdmZ6loJyZoaekkJ2im5ehoKyfpqagmp+hlZSRl5GbhrWbtXmHqZq2mXiHtJu3f5WYmKyXf2uBpnuBhYaRlJJ3q2dqsVuse46HlHSJcI6GgX+IkZd4g4OLl4yDoI+FsHZ3n3Jra218i0+lWEhkZJl+Y2imX3hxdFKShl1PqW1ib3qFgGGdL1OibltUa2dgTEtdZFhcWkI+sHdXWEEjTWlFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtFLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SzlgVDUwHJeglYm0p6ehramos6yqu7fCsLzCrbm2wqutra+vqK+zqqKwvKuiqLato6y1pKWztKijop2oqrKosKimn6CgsJegm5aWl5uhsaWcm6Wptq+hqI6pp6mbnZaYoKapm5+dpKCcoKOlo5abnpianqOrnKaanJqioJaTkZOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYahgKWCeat5j51Wr3uJfp9quVq5d4eEfaaDlHyZe6l5jp2Qe7FtjoR1kLyGb5VQr6fFilGgemNgqmFzcoZrlodeUrW0yIV+iXxjpDRDnXVdUWloZFBAWGdZY2FKSE1qSlpTT1lmWkNEP0U/MDw8NTk7NzQ8PDg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsqippbOqpbWopLy4wbC6wLK3tL20tqeysaSytKegr7apm6m7rqOxsqGytLGhpJ6eqKmwqbSppp2en6yYmZmYmJaYo66gnJeprrGpo56OrKKnlZ2Xm6GnoZiioqOhm6KiqJyeoJ6VmZunoZynlJuan6GYkJKVkJ2Ism5otXKsiHCPp3K0dnS2e5yapo6QnY2jfo+eo32wdYKQ0tJ1XK58hX+kbpuqpmuHhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOEYZaIXVnKnW+/fnJNS7VTVcZkVVFqY2VYQU9rX2xoUFVGSDk9V1JbV1hIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJNVF9lUDVHPWFNNjIuo56RprCtpam7raa0pae2u7yzu764uLW8vLSmtbWjs7KjoKywpZiou66lsrGctLiqoKWdoaqlsqisqqWanZupn5aWmZmTlKWropiUp6uxpqGVkqyfpZKUoZylp6CVm6anopujoK6aoJ6dkJabo5+cpZSdlZmjnpWZlpKbhax8eKh3o4+Lh6pwrYyFqISam6OLk5uLon6Rl4euhH+Bs1xyslOvfYKCo35x1313hX6PnoeZmnevhoqRnIh3tGGaZZuBgZVskluwV0uadZh5ZmGtXnZ2hWaXiGpdr3aVno93azV5yK6zYERVb11nYEVQbF9wbVZVTS5lY2hSWVE7QUNATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDQ3Njc9UGtlPiZWZ1xAPFVfY042R0JgSTo3N6CdlKG3sZmzwa2osqeqs7q3tbm+urizt762pri1obauoKCprJ+VqbarqbKyq620pJupoKCoorWnpqqkmZ6VpaGUlJ2akpalqJyUkaitsKWglJmonqKPkaKaqaWhlZqmqZ6dpJ+tnKCdn42UnpyfoZmYm5WWoqCUmJGnnYepfn+meaGPkISqcK2Ng6eGl6Gji5iXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0qIKPm42SpHyWkJ+Ee7JenGSgfYKVbpNdq1xbk3+Rf2hnqmNyeoBqmIZxXataiaCPa21kT0pDoVxbTXRdYmZNWmFfcnRgSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjEwMjE1NCsqMDUvNywmMjEoJCU2NjcxPE9lZEEmVWZbPzBUX2JMN0ZIX0MxPTeinZqav62Ys8Kuq6yop7WxuLG1vrq7s7K5vKq7tqGypZ+mqKifk6yxqbCrt62qr6GYoqCmpaS5o6OsoZeckqOglpWfm5WZoqGRjoyqsLCmnZaap6afjJKkmKerqJaYqaifoKGkrqOgnqGOlaGZoKCSnJeblZ6hlpaPrJyPrm5ytHSpjHeLpnS0enW0gpSnpJSdjYmkh451uG+Le4uia2u2WqGGZZeXaKCip22UcrR0k5l/s2qGkoitanW0YZ1mom+GkmuYXa1gTqF8h5FSc6NseX59bpiGb1yvVjycd2VUb24uW6dPY1JrZWJsWmJcYHF8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4uVV5iTDVGTV44MUE4pZqcnrqkm7HArq2rq6i3qrivtcC1vbKxu7iswreqrKGdp6SinZKsq6i2pLSorqqhl52ooKWruJ2jrZyWmZCmo5eOnqGcmZ+gkZSVrLawppiTm6yployUppmlraOSl6uzpKCeqKywmKGikJmhl6CblpuXoJSdqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2wYOasmGDunnAfHW4YrWBjIepfZWCrKlxe391vIinoGmdYaaOr6J+jXWHq32+bnO8dLKDdXiAiW2aiHBtjaR0vV13fVthebxqWlZcanpeaWFjZmJueW9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1NdYEs1PExbLTY/Oaean6K8o5eww6+tqautsai5r7fEsbuzr7ywrsKyraajn6WinZyRq6Wqs6W1p62koJaaq5mnrLido66YlaGRpqCTjp2jnpmfmpCWk7C5sauVlqOnp5SQlqWdpK2fkaGorKCcn6mksp2ipI6moZWhmZuWlaOZkLCgkpWqnoWQmbaAkpKNuJZ5g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCBdJG5g3yGhouGjXuKh4yXfaS7ub2cdXmzo3R1l3V0sHWZnmaHao22dHNxd7aLXoB5fIhng3lsemKLrHB0hX5XW6dpRGRaVGZfY11iUGdmcW51Qk1PTEQ7Wkw+SjI7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzrKqorauqu6+wxq+1tLC4p7W5rqukoqefoJ2ZlK2lrquntqion5yWoaSerKS9p6Gql5WckaKbkpCiqKKUn5eSmJSytbasl52jo6KLkpKmm6WrnJappaacm6GqpqaiqKGRrJ6Xop6Xlpedno+wqZScp6KPa39qnap6iXR/nI92e2aIe72+wLpvkoNxlIVfcmpaXpuKYWOHj5ZsYH+VY22cdmKVbICZlZRmXmBjcZuJaHKMfIaUZmp+cXR4f35jXHh1gWhQXG6EfHyKalhseoJxSEpvhXBOcU1EVlxmYUxbV2ZjXk9bbXVrclJPRERNPEhIPEw/MSwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVEVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl5JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+posGkmrO5tqOspq+mqLayrMissLSttqS+srOnoaSqnaOcmpqsp66kpbaqpZuYlqKcp62pvqippZWUm5agmpOZpqmokp+Qj5icsLK+q5qmnaeiiZORqZuopJycrKCjmpujp6yin6mhma6blKaglpSdn52XsaWZoqiZnZKfnaWmm6ikm56bnJuSl4Job35xd5GXlJCEibSqjYWYlY+KjJmXiJSViYOTk5GJjpKUmJSZl5qfoZqblJ+bjYF6pIVranyRfYF1iouDcoJ3eXZ2i398iWpzgXSEdGN2fXZrb3hsX2Jbb2dNWFlmal9XWW96b25mU09GUjlQWk5STycqO0tCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1JHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSSdSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6WwtarIq62zp7amwai1oZ+lppyllpWhrKetpKS3rKCZl5ahmK2qpcGfrKSWkpyXn5iUlaOenaOok5CYqKiywq+Zqpyqno+Vlqmeqpyeoa2ZoZudoqWvpqGjp56smJalnZmaoZ6enbChnaKnlpmUmZSipJikoJmij5iVjIuOkJiukHyVnIKRgYmpqIWAmJeLhI+giHuEkYWFmpGHhoqVj5uXjpGYnqOWmZKQnI1+jWWhs66FioR3e5CLfnh5em9meZGBgYhrdYF5iXFoc395dYOGgGpzYndlX2hlY2Rmallre3FqalxSS1BEX1VGQD4+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECyn7mvvq2rrbGyoKqmsq2jrLOwxbCrrqSzr7yltZyhqKOhnpmXqaeqpqWms7aflZWempqwpq6+oayikZGempqUkpahm5epnYSdqaujtMezn6mjqpaVl5qnnqicoKSslJ+fnZ+qrqikoqqhq5qen6CYpZ+cnp2wpJmfqZSamZ6Sppyaqp+cmGaFlH1lf4+bkGN6jW1oanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGid2tqi5mjn5hzbG16hIyGeVhlXYaCXmyLi4N3XGh0d3eSgIeBb3iCeIBybXiEc3aIh46DemiEWF1qdGRdc4hoanxxbWNdUU1XSmRYQEkzPUY4P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXlpUT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9CSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vLmvq7Kwq6Wora+xp66usL2xqqmlrrCxoK2XoaSeopqapqydraSmqKq0rp6WpJCjsKa3uaWuo4+PmqKak5KboJiYppZ7pKuiqLTDt6Shpq6enZSeo5+jnaSqqZOfoJ6gqq+pqaKpnqabpZ6noKyXoZulsaWYnayWo5+bk6eZoKyan3+9hIp0tHOFn4ataHe5xLhxkqGjeqaZmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWycI6Cb8p6gJt4koOOgHd5gYB5cHt/hnB4hIqSeGx1kWFlXnhkX2WBYl10aG1kYlhMVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXlxTTVBHVU5BPz89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWhucO0r6+/qamUo7CqsK+uprK1r6qnp6axq6CrmJujoJybqqejnqyjpamlpbSknqOUpq6suLSnr6KSkZmdppORoKGXm6CeiKarpKutv7+woKiuqJaRn52imaKkqqSUoaGdnayuqKqloqKkn6OknK2pkqSaqK6qnJ6rna6jl5inmKOkmZ5/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Rdnvbe3+ZcX6IknZ/ZXuIdXZrfYdtfYSOkH5rgIxecGpwZ2BfeGRbcWhqY2VgUlRTV15KT0M0QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9eXltXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcDAtLSwt5iekaSqqa21q6ayrKyspa2msKqhp5yappicoq+foZ+op6OmoZ+xrJyflaaurbGrqKyglJKbn6WTkJ+ll52opJ6to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapp5umpaKgqpKss5aloquqnqSop6OyopObqZyinJaVkZehcoaMmHaGqIdxsHydcax9oKCCpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd/qoiijJGMnH2reoiTj59/eq1WnMR7kHCTwX2BlW11cIxtZndlh25heG5yboeJj46CbI6NY25zdW9gZm1kX29pam5mY1hTXGBaUlJDOElIQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLT0oPjEpM1ZARiEcRztDMS4rr9PGx7KzoJ2jj6Ojoq6vt6+psaeoqqmuq6ynoqSdmqOVn6aroKKmoKioo5+esKyYm5aop6+tqKepnpeVmqSikpShrpqdp6OurKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGnqKiaqqajoaqarrGiqKuvppqnrKurs6STmaWnnJaThaRrpHWKeql1e7JxgqWKmItxiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgqN9qX+BlIauXnuoVZ2ikoJ7o5+AfMSwxYxzr7SzuXJiqa/CdGiLi5WNgGuWj21seHd3bmtmZWRxcWZ8aWNdVl9pWFhUTExQTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OjY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8HJ1tbAoJmrqKGvop+xtLCvqayjp6erq6uppaagm6WfnaanpqSdrJqirKGkoK+jnpuTqqS1sK+hqZuclpWnpJGboqifn6acsKWiqLGstsextKmrqZWRnZ2hmaCls52aoZScnqeqqqKsmaqmoKGpobKtoamysqGcq6qxsLimlJimqpqdk32qbZ+EiHareXywboKki4iflpWeloHSuLS4yYGCsl9glKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqV0gqCOgn2vX2+1Y7F1S6OHbadHg5NkjY+ckHpulI58bnl0fHptW2ZqcnFngWleYVdjbVxeWUlMTEpFREJCPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9gXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDEvPS00T1RRHRw7PEYyLCSnpMDHua2psq6tpaOcs7msq6Glm6imq6yppqCmpZiro5+vrJ2moa2an6mlnae1oKSYlKirtrOsnKacoJaQpq2Smpyno6Cqpq2go6epsLPBsbKprKeTiZedpZuipK+ml6KVmJylpamZrZyrpaSdq6O2q6CxuLCenLCotbW2p5aZqqacoZCDnk53moKAn3uEo3yCpIOGpp+cn5SEuHx9ermDgM3Gw7Z4m6KSi59+mZeXinafl4qkmKSofq+FnIOeg6x9mZRhpWyjcZCFkIF9loRyrGCkc3GAmmG8fVJVdY2RoZR6e4+NhnJ5c4V/cFtsbndzaoFuWmReZ25iZF1LS1FTQUdHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbUxwbNj9HLC0gi4eZqaukq7mrr6Ccoa2ztKafoZWlr66uqaeepaWapKehs66iqaezoJqppJSjtaOjlpehqbW5pJujnaOTkKKymZ6bpqWgoq+snKSoorWxw7CtqaypkYeQnKedo6ScpZeemJiZpaOomKyhq6Kkl66kuqyhtraunp62tLqztqmaoLKkpqCIkNK1w7d6h46GkZOPgKZ3lKJ3jKGShaWDjHKriIa0bnNqmqSdloqffZeZh4eQc66CpZujjaaKk52IlJCabXCyXKVzk3qcbJl/e5l+bqlhonJzfp9ic7K4aHeOkqOWe4mJjod1e3iOgmxod2h4c26AdF1kY21tZmhgSllXVzxHRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZVUU9RW1UlITJBSCMqJZJyjYqtv7+8u7Wel6ikrraiopmVo6qorqmrmaWin6agoLWmoqmnsaSUq6OPpK2knpGamqq0tKSdpZypkpSXr6CgnqajnKecs5mgqqO1qsKvqKqooYyDj52ioaajlZqanJiamKajpZeppqugo5uspryslL2wrZ+jsbW7rbepnqu1p6uafKiSfXyweIuApKWInG2xb6CHrXyij4Ool5qCrIqGrYahlaiho5iGn4GZloF7kn6rgZ2Zlourd52gj4iTkn96r12jgX2mp2WegHyXdWquXaVscoaZXWBbjKBtlI+jloCRiZKIeHmBl39qbH5ifXRtgHlgaGVvb2hnaEJYX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk4MTUyLiosQVRWVlZVVFVVVVVUVFVUU1NWV1dYVlVVUUhGSUojKCi8kpqEqcbDt8G0n5utoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZeKmpCtsa2noKibrZiZj62ioZ2loZmknK2Xn6iltqi+rqSpo5+Lf46bmqCmnpKUmZqTmpmko6KYp6qqoKKep6e8pJfCrKujoq20u62wqaO2sqyumnevf5CKnIWHfLqtiZhksIxklq59oZCEp5ecgq2MhbCHqJqkoqOShaBcbGuCs2B/rXx7goGybGdumZeLh7FafbVcpINryKJmn4F7u1l2tVqyfVOvgXqsWIChbZaNpZiHlI2Rknl3jJx9Y3N8YoN3dIB8YWpmb25mZWZPVGJbQVNdPUgoPjk9NCEhLCQfMS4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TCs6Ocraelt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWvqaOOiZuOrqypp6Oomq6Tmo+pmqGdpJ+Zo6KlmJ6iqLGou66kqJ6djnyLm5ahoJmQkpqbkZmXqJ6fl6espKOkoqOoup6fxqemqaGstreusaqhv7GwsJiCqpOjro6bgIakl5iQgIC4w7qEj52UhaiZnoOsjISviqmdm6arkn/VvcKqYqS/vX1/o4KD17u4tYSUkoKevb6Ea6OCcKuEb52AerKxx4Nrq7G9rHl4or67dICUjKOZjJiNkpl3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1JpXD9TYEJMKTw6NC8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSywLqyvrOina6npbOnnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaabmqCoopidoKysqbitp6Oal5J7h5mRp5uTj5CXmI+Yk6mYnpaop56opqChqrqdqMWjobCkrLS1rLKso7+rs7KddXaqpLaFZYmfcGeskIqPbm53pZCboYJ2spyYcZGOcperpJuZr6VybW1tZot4b22DmnGBempxaWeJlpWXcmlphYdncYdkXotjanBaXWd+eKZgYnKQknBmZICMkY6flJSWjZKaeoSNk3RkhndnjGp4fnlkbGNlbGJKZFdJalk5T2NETydKOSsjHCAbIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1tcYGBhXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq6srOrqaKun6OzqpiSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZatn6arop+kpKCSi6WSppmpmpaiqaCVnKWlpq65qquZmpOSe4SXjaaXjZGQl5SOl5Wmk52WpqGZrqWcoau4nrDBqKW0p62xs6ywrqq8p7K8mIyjqaW1nImWopiHqZuPlJ2SqrSanKSuorWZpaSgo6SfpKailqynjZOTjYeTnZ2VkJmTmJGPlYV/pJqXlo6MlJOKkIiFf2iMgXWDd3WHjHGnbX2Wk5SUgYGPj46Om5CdkpOSnX+Fk4xwaI92b4l3dXx5aWtlY29jVWFYP2haR2JfTlcrRT0rJiE2NDAuHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1RWWV5gYWJdXlVQS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqqS1uK6vorClrqCgt7GQjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4yIio+cp5atpKGaqJ6fk5akl6iaqJmTpaCjj5qnmKC0uaeqmJqQjXuBlYuhlIqVkZWQj5KXpI6dmKeemrOinKWqtqeuwa+kuKewsLKvrK22vqSzwZqTp6WmtKKSnaaejqmgjJKfoq2xm6Kls6uzmqajn6esoKCenpitnpOaopyUkJermY2ZmpeQl5+Rh6CdlZSGlI2QjpaNgn9mjoh2iHd6iIR0nGqIkpaVkol9jJaRkpaQnY6Ykp2BhZeGenGUcnmJf3F7fmpuZF5waWBcX1hsYk9fY09YOUZGRD0yPD03LiolKykmHSY0MTY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGFpYWVVUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLSsr6Oqp66gp7WqkY+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJnKKQr5+klqmgoZOXmZyui6qWjqeYp4yYqI6duLWjpZebjYl5gpOMm5OKlZGTkI6RlqGLnJ2mnJ22on6DrrSisK91pL+ks6B5e6OttcCYeLCmoYqAqn5kXGJ2n4+knoOWfm2UtZ2lqbGtpmagopV1e5yZcYGZqpltgKSpimWcpZyRmJmXjJOckYWdm5CVhJSIj4+Ti4Z5bJGIdohyfIaBgWFpiYyVk4xbdpWQZmiOi3F4n5WUZHeXhoF3l2iCiYJueX9rcGVgdm9ra2hbZGNhYW1RWT1NTU1SRj0/U0I5MC8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1fZ2dnV1FJPERIPDlWUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpqmuo6etpZKVqrSusKWZqaWqlnOLnK+gqKunlJe5oKCPnKSekX6IiZqejayapJWoop6Ol5KehXWuj4ilmaiRlqOImrizp5+YmIuJdHeSjZeTiZOQkJOMj5KfjJmepJibsJSAjJu1nbSMko+9p6J+p6N7pbK7hI6QqaCEjIWPsaqvjImWo5p5gIushp2fo6mrqomWiJt3pZx7iJyBmKeEgnues3uKhqCYmZWYl4GRl5aEmppieYiShY6Qk4uEbnKRiHqCcoGBhoCHdIiGl5N4lmiTdKCadHuZgZuYhJh+kImBgpdpjIyEanh7cXBnZXhtaWxqW2NpaGRxWltIU0tQQEU1LVlTVDYpITA5PT43NDM1Njg7Oj0+Pj9ESUBJRUpLR1NYW1hbYWFpZllRSDlFTDw/YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikoKaurquoraCpsaanqqWZk6zEvK+glKWns5yPg52snaeioI2Qvp6ZjZ+aoZF9ho6Yl4isnaOWoaGSjZSJhoCRqI6GoZyjk5adhZ64saidmpKPhXB1kImVkIqTj46bi46RnZCVnqKUnaqGn7SJtJqui8qIq6+Kt4WNsISzs4epj6qajZ17qI9ye3ecjqaWaJWkebSMoaCoqpSawoKBq4mZoXKegJulfpeGlrKBoX2hk5+PmJiAj5SbiZmSi32GlIeNlpSKhW50k4aAe3OHgoR9hXWGg5iCj8VmgKmHj6JpnYGdloCZgIqLg4iYb42ShGd3dHx3Z2l2cGdoa15ibmxmaldkRlxRTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENRWl1cV2JeamxbUUU9S01ASmRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXoqCwqamopqygpbmxqaummpSeoaSpoZSjqLWhr3+gp52lnp2JlL2ak42gkp2QeYOWlpGIq5mcm5qihY+Md5ucjqCRh52jm5aYl4WhuK2lmZuMjH5ibY+Lk4+Mj4yMl4uPkZ6Nkp6fl6CmfaGnh62doJaukKCenZGHgqGNrrOJpI+snIyafaJ1gJmUa4KrdU2reIeNnZOcqqmCqqt/haJ8e6dqnoCTbGeXhpi3iZ5+bmBjWIOYf418ZGeMc5l+ephsXX2Yb2FUcoddYG16hGBZZYJ+hYGZcqiqa4OjbnKlb5+BmmdknmxabIl7ZVlfgn5hV1BwdmVvdHFqam9daW9samdXZk1cV0U4QTRGQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSlxdX1deXmN1X01EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl52huaGqpKaskqK2vKquopmWnqClq6ufnK20oaeRoKChp5yZjpi0mZCLnoyVi3WBlJGNiqaWlpien36ThYaspIeckYqYqJeZmpGHpK+mopWZh4mAaW6IiIuOjYmKjZGLj5GhipKcnpqho3+TgY+joZSgd5yWkKeDo6mAh6yxiKV6jX+EmnyicHKTh5V7nox5bYebi5qSnaqcj4edfoSidHemZ55+d6VfmHt9k3Oibpi3tLp0k4iCgLaoZIHFuXxxlbaMcoGbpGR1rKthfmqds35ufomEj4OMmHGAo2tyo3KegXyjXpyZs5VwfJees3RyW56yg2picXR1cWhvWGprcXBkW2dcYUtDPUQ2UUFZcTI8U0dfSlI9PDM5NTo5NkM8O0BJUD9UTk5RQEVfXltZV2Bge2RJQzdMV1VWY2FaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVpLmZq5yToI6luLWsraCaoZuio6SsmpqxrKuTmKGZoaWampSerJuLiZF4i4VxgJWMiZChkJOUnZd9kYqOqKCHmI6JkaKTm5qMiqinpJ6PloeEfmp6hn59j42Dio+QiY6Tn4GUnJ6bn56LiXecmKKNoHKhjImpiZ2okpmrroKujX56oJl5o5N4gHOXh4ycfZSehpuOmp2oiKNkoX6Ml5CbjW2eaJuOb5qZe4CKp31yaHSrg56Dc6pnlJpdm4V3hZ5oqmqAuWZcqXCBnGGVjF+ndneKi4CdaJp1h5OSmI19nmyYj2qmmVyofne7an2pWo6EXbNnW25yeHdraVtwaXd3YV5kVmFBUERON1VCUW00SlpaXk5aREAxNTE8OzdIPzpDSFU/WVNYXT5EYl1WYFFhZHxpRkI5TltdWWVmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZadiaq2nKiJY5WcrLuxr6udpZuap5+drJmdsKernpejmqKgmZaWoKSZhomNaYiAcnqWiIuWloSSlJiPeouElqSciZWPhoqdkpybiI+oop+ai5CKgIBpgIV5f5aLeoiNjoeOlZl9kqGdn6GSl3Jon4qgj4xwko2CqYmaoaWqo6t/sK6koriXdqOzoqN/iJR4nXqpmH+ij5+dmYmYcqB9iI6wtX1smpGheH6ZtaOjq6iEmXybfZybf3SqWl1ve5eMeZ5jTX97e4ZlephCTZ9ZompzfY9vgoqEmXabeYeJsbN/fZmSpnN9nW1wfJRvmXJpo12VdkhlY190cXx9bmVfa2d1emJjX1BdV1xTVkBZRVBnRFJWXGFYXklEPUI4P0I6SUU3TEVYQVdSW1ZFRmJcWmBLYG19cUVDPFZeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhpbGmUnoGwrpqEU1+hp7S6srKomqKLmqmbm6eSoKujoKiPnp6dmpmVmKCdloeHiXeFgW54lISPm4t9kZOWiHKBiZKhm3KSkICImJSfmoSOqJyalYqKinyDbISFcYKhi3eEjIiHkZiUepGin52ih62GfbWEj56de6aWeqmCl5+RjKShgKdpeG5+mXOgc3F8nYWYb5OCrHujhKefm4OkcF+paHajZHCmYZzTj3x7mXhyc2OihpF+onKjkHZrkLOMYIOYi3Wrs6i8f3eEb3+/pqq0Xpxvf3KXcIJ0o3JepGd0pmBopmua05h5gZpudnmXa5t5dpdybKmlZ19leXF/hGxoZmNtdXZmX2FRWmVQUWFIVklUX1dTW2VqW2VQRUNLTElLQktFOFBAUU5YU1hPU1FgZWRpU2R4eXdKR0VkXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxnaG1omJt/sKxUXUt+qq+xtLCyopyYhJemoKCijKSnn5epipmYmZSak5KgmI6HhXtwfYNofI+Ck5qBd5GOj4pwgIaPk5FrmJN8iJGSo5WCjaiZk5KKhYl5g3aIgG6Bn4Z3f5GFhpeglXiRoKKZn4izoaK2i3qsp6SupXGpgJuRhoKflX6lgaObhphxnoSira+Kl4t/jKSNlYOvo5V3tba2yqJ0lI2Dn2Cdl6lteZaHoJt1oYd3oH6Rl4uBb01mo5Nxm4l0pXt6dWKEg25+oG1yZGCcc390mGt7arS2tMamc5h9eZxqmpmrc4CabHN3l2mZeXSYcVBEfbNeaXZreIZma2Zic3RvbFVbUlloT1FnSVVMWFJVXGdrblVnV01KQUlNS0hKTkFRSlBlY2ptZXVzc395e250iXp7VVFObV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5sZWltZaKdiK+nhWVAlKKyq6+vtaGij3+Wp6Gho4ukpp2cpoKZl5eOl5CQm5OOiIN5a3mGZYOMf5egeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeoloyRi4CIeoB9i3lwj6CFeYCUhoiVnpR+kqSmm5WWhGZueJxsomR8cqV4nJhwaKeDmo59pXuil4OWcp92gYmUlo+5bpCKomJ9mqOXiW50a6trdaBucKdhm2qLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cWVniYJvc6JbX1tkoW5eiY1xfIB0cmSlbniiY2anZ5dxipdtoW9SiI9uoF5kp1SLXVSYbW1za3GBbXBoa3dzam5RVlVVZVhSbElYT1tIV2hoc2pZa1ZQUkVWXExYUmFVaGped3V7fHB9fHKDe39zd42Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdppmme2V0bYynrqWpsLGln4t/lamcnaOLoaGaoqKAlZmTjpqQi5eRjop7hnGAiGiKinyXm3N1iX2QfGWDh5WKiZWagnyIhpamkIChqo+EkIqBiX2AgI5zaY+mg32FkoyHl5+NhpGopZyIpniVm36liZaMspmekYSvl5+lepiJe6l1qJGEmm6looyShIyDvG18pa+Ch4WHlZieo36mfHOolaGWaZ9/cKxjloqWk3iobaqjgYl2iYN3q5GmiGuSsWx3s42pbIuGb2+gnpKVYn+rjKp4gYCOp593n32FpJadoGeZhnSrZp6tjLZzdr6MpJNZg6aNq2F2cnRve3VwYmp+bmdsUlRYVGBgXGpMXFFbSF1sbXZfW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNzhH6Be3uMgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG9ilqaqnYGAn6WWqqqep6eto5iIgZapmZ2iiZqknKidhIyaj4ackYWSjYyMdIV6iINvjIR+l5N0dYZykYNuf4uShoWUj3x7gYWXpI1/pKSNgI2JhJR1goeTbmyLqICCipONiJudiIqSqaKfj390k5eIfoF5lK+kf4KdcY+GeZOOhoF7c6mNcX19epeWm4WOeHt9fYaTlZOLd5KaoaOFfH+LbY2GXHp5c3txaW5+k4pygHSCj5STcYaEg2aNf1+CgYx4d3SVdnB6b3CJboWGX3dpeI5ngoOGj6qcf3R9lmmJiG99dXuCdGxsZoxzeHuXd4Rba1d5j2lud3Jyb3d4b1xrhW5pZlZZXlZcZWpjVWBUXVBeb3d5a2p2ZGlqanV7cHF0c2FvdGJ0e4F4dXqCdX+Af4F5i4WCfntugG1keW5eV25oaHVreGppamRcYFpjaWVscXVuWltia2Rsa3ltaGxvYI6Uuamni6Gjm6akmaSdq6Gfg4OWqZGdn4iZppqomYOBnIt+lpSHjoqJjXKCfI58fo6Ee5eOdHOEcJWGfH2Si4aGj4V4foCGmKOMe6afioSPj4SVgoaOmHdxhKqFjZGbjoednYaKmqafoKuDiI2Um39+ipetqJCTqJF5cZ+UhXyVcICsh3F+lXFqcH2Bn4t/kY2KZ21dhIyOnZ6hkXSXjopzdWyDd3SBWXJvh5GCfn+Mal1pZHuFhImAYGl5fJx8hI2Ed4KIhWp6jYlsYnFzg3dgdI2DipGolodnjY6CbHaKgW2CinZtY2VjeYN6lVpcaWdudlt7eXd1bnNyg2ZbbIlra2JZWFxZWGtxW15fWV1cZXJ9enRvdGJqaml7e3F6dnRkbXRobXt+dXp9e3l6gIB/b4aJg3t9c396c39oVFxyaWx2b3VnbGdkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxopCjoZqenpidmaihoH2ClquMn5OGmqKRpZV/e5iFfJKZiYiHh4pxfYCKdoSLgYSWinJvgHOYh4R+k4ODhoqCeoCDipqfj4Gln4Z3jpeIlYqLnJeEg3msgZCXmJOJnZyFh6CpnqGio4uHkpudo5qWq6KoqKKTnYmZkX56kZCGqn9/k5GSk52yppqUno6MsJGYhKeOjpadoouSnYWKk4tsfY93eGaChpGLfYmehIiMj4iIgYWEkXh8e3WcpIqIjKCMh5aAgI6DgXdxdYaFgHmKiIuRp5GEh46HgouPinmDiIWMf3RqgYN8eZlpcmhhc4pxfnt3d3B3dIFdXW6GaG5fXllaXFNncVVjW1pga2d0e3tybm9jampofntseH5waG9va2aAe3KCgHd/fX+Ee22DjIV8enl8fXqEeU9kd2tzbnB6ZWxlYmJgW3NmcGZycW1VXWx0bWh4enBnaWtljYieu5+Xo6GYlZmYlJikoJx6fpepjZ2MhZ+ci56XfXiVg3uOmYmGg4SGbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHgoyanZKGqZ2CcoqPhZKRi52RfI17qYONkZaUjZuVhYWapZ+imp6Gg5KamZmQmaagpp6ekJeClI15foqQhqd8fY+QkYaYqqGdk52OjaiMkYCfjoqVnKGEkJmAiI+EcHmHcnVhf4SQiHeMmYGEj4GGhX+GhJVuenZ1lKSMjoechoaQdoKNfn50c3yKhXx6jo+FlKiQh4SPgYKJiIhzgoWFiHltan1/e21oa2xnXnl/Z317dnV2dXt3XF9wfW10YGNaW15QZmxTZFpdYGpodHl+cGxsY2tqZ4B/a3J/a2t0bndthHluhoB2goB9hXZxgo2Hfnt7fYB7gotgaXxrdWhpg2VqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoqSfk5KWl4uan56cenebpJCbiYaklIuYmnl6jYZ8ipKDjIKCgm17fndygIV9ipB9a2h9gZeJgYiOfH6FhId8j4GPm5uQiKabf3CLiouShqChioWMfKiQh46RlZGUkXeMo6ChnZabgIGQmpiTjZqioqSbmJKcf5CIe4KGkYmjgX6NjY98mKSgoJKakI+li4+BnJKKlJmdgJSUf4iPgnV1gnF3YX6BjohzipZ9iYxxjX+DhoePaHhyeo6alJGBmYCKjXSEin5/c3t8jYZ8e5OOhJemlIyGkHuEhYaDc36AhIV4ZHB6f3d5cGxqZl59c2h8dXZ0fHOAal5gdHdwd2RjWF1eUmlnVGRYXmBnaXV4gXBma2NsZ2V/gWptfWdtcGp8d4Z6a4uBcoGBfoF1doKNhn98e4CBfX+PanKEbnRpYohpbGJfcVZ0b2xtYHhobVdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+FnKGam3x1op6Nl3+MoYqIm5Z4fIaIfoSKfoiCgX9wf3pzdYKFfomQd2djfYaXioKKjXh9gIyDeZaAlZeVjZWemX1vi4GQk4Wlm4eMiYOmlISRiZSVkZB1kZ2hoZiUmHp/j5iXjpaanaWempSVnXuSiYV6iJmPoH+Ci46Mc5ijnqCSmI6OoIuLg5iYhJSXm4Caj32JjoJ3cn5ue2SAfYuHcYeUgJGCa4eDgoCLhmZ2cH2IlJqOf5V5jot+gol+fXOBeYuHe4aSi4yZpJeDhIt2h4OBgHN4f4aCc152d31yfXZmbGVgf2lqd3N0dX1xfGNkYXNvdXJtYVlfXVpqY1JiV19fZ2p0eIZwYmpia2ZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjIGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbmB4Z2xhanZwZnh7eXFfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqebiph5l5yLjJmQeXyBjH19g3uAgoB4c3h5c32Ag3+Ii4BkXn2LlYd/hYh0fX6Jf36YhJaUloyjoJZ+cYZ7k5GKpo+MjoqSoJCCj46TlpCKgI+XoJqSkJJzgI6SlImdnZ6nmZmOlZd1kZKMbYiakpx8iImQiW+YnZqikpWKi52LhoGTnYCUlJeIm4p9ioqCe3F6a3ZtfH+Mf26Fk4OVeHCChH5/jIFlc2p9gpiYhoGPdZKLhnuJf3d6gn+Ign6Fj4eNlaWReYWCdIiGe35xcn6EgGtgeXR5cHtuYW5jZXtibm92c3h3dHRhd2BvbHVucF1aXl1daV1PXFdiYGdscnqIal9pZGljaHeHbWZsaGlsZ4B8enduj4hzgIOFfXSBhol6g316gYR9fI5yeYt5eG5sh2toX2lyYodocW9ldmdtbGF6aGp8e3hwYXdti4GZmauhpamei4uRhomdi5SWfHasmIyWfJ+TkZeUiXd+e4p8fIB2eH+Ab3Nzem+FfICAiX58YFt+j5GHgISEcnp/hnqPkYeRkZuSpJqTgXyBfI2KkqSJjYqNlpqMhI+XkZSNiIiMkp2TkIyNboSQj5GJnpmioZiYipeTcIychmiKm5GWe4mFkIpwlpqUoZGRiIqYjIJ/kp99k5GUjZqQfIuGiHVzdWtxbnV9i3VvhpGOknJ0gHyCgop+Z3Nuen+blX6GinaSjYN1intxg4CDiX6GjouGjparjnuIfH6KhHZ8bmx9goBhZndzdG56YV5vYWt0XnBqenl5bXRxZXpebmxzbXNZWV1fYGlaT1ZXZGJlcHB+h2VdaWhmYmdwjW5jaGhlaGeAend0b46Fc4GCg3x2g4mFeIV8eISGeoCJd3+LfHtzeYNqal9waHR/a3FvbXFnb2tle2Ftf3l3cGx3d4l/o5ijqKGnm4iLioGOnIaSmnR/qJSRjYehjZaUkYF0fHaFeHh/cnN6hWxxb3hsiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipKcl6CSlneJfoCMiJydio+GkpeWhYiTmI6Wi4qNjoydio6Rg22Ji4+RipyWoZyZloaZiWyIpoVoiaCMk4CNhYyBeJSYkp2RkIiIk41/fpCZfZKOkY+bk32LgYVwdnBsbm9wfIZqc4OPmYtyeIB1gomDemh1cHeCm5B9ioZ7lpN8eIp2cox9iI98jIiFio+cpYl8hHaBin53d2tofn9+W3FycW9vd1pecGFwa15vanx6cW5tam13YHBva3FuWVhgYGBsV1BSWWVlYXRvhIFhXWtsZGJma5JuYGZmX2ZqgXVxcm+LgHR/g4F5doGLgHmGf3iHhnaDhXuGi4B7d4t/anBjfGKFfG9wbHRqaG5sd3dfcX55e3R1c3+CfqWVm62fp5eFjIN+lpWDjp10iZ6TkoWLm4yWjox6cnh0gnByhHRxdYhsbmx0bId2gn1/bW5VUYGrlIeCeIB2coJ5gqCCkIGSkpiakZh3kHqCjJKjmpOOiJSYkoOFlZiKkouJjo+InYSRi31yioWIj4icmZ6bl5aBlYBpiZ+KaYmjipSGkoSKcYORmI+ajY+Li46Nd3uTkXuQjI6Tl459iX6CbHdqb2xsbXuAYnp+kJeCd3uCeIONfXppdm12iJeMgImIfZWSc3uGcnmPfIyPfIp/hY6Rn6CHfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmd0dmlxbGF3Zl1VZWBfcVNQTVtlY1x3b4h7XlxocGFiZWaRal9nZFtnb31vbHFziX12fIaBdXZ/jHl8hoB4h4NzhoV+jIyEfHqVeGdxaoNgh35vb2t7YGltdIB0XnN8eIZ4dHOFfHmhkJqxnKWPg4p/gpmIf4mbfomYko6EiJiOj4+Ed3R3c4Bwb4R0cHGDb2ppdW2Cbnx8bXRzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhY+doZOTkImSmpOFfZWVh4yNh5KNiZx/joF4e41/iIyJnJycm5aUe453aYyUim6LpoeVipiEhmOMkZiOlImWi4yJi3B6lYp8jomLlJKLe4d9gG18ZXNva217eluBepCQgXt+f4CGj3t6aXVrdIyQi4OHhn6XjW2AgHCCjoCOiX6FfISRlpucjH13eIKOd3FrZG58gGlnc25naXNsU15vZXBZX2xxd2dra2JneXRwcGRgeGFgVWtfXXRPTUtfZWJbd3CJc1xbZHVgYmVljmNgZmJYaXNzbWtxdot8c3mGgnZ3fotzgId/eol/comHgZCJiX1+mXZlc258ZYd+bm9rf1lsbnl6cmB2enuNdnJ2iXZ5n4ycr5ugkIKEeIeUfnuIm4aEnZCOhYyXhJOPiIF1d3B5cW+EcG1tfnJjZHdwfG15fGpobGOkmsHcru+ic2x2g3WEoYSQbpWPlZ+TmoCRcIWKoZaJjpWKkJyVgoCUj4WIj4CSioqXf4d7dn+KeIaFjZubl5mQkHeMd3CKi46AjaeHlIuehoZei5SXio6IjYqKhIlsfJeDfomGi5OQh3eHf39sfWR4dWpvenRYiXuSiIZ7f3+Aho1/emd0aoGKj4uEhIGNmIdtg3dwiZKDkoaAhHyBkpeUm5F1dHiHi3RycGRydn9fcmxvYWh0ZlJgcWdrVV9uc3lhcmNgaX5xc25bY3NhY1ZuWlt2TExLYmVgXXVyiW1bXGR4XmBkZYRfY2NeWGlya25rcneLfXN2hIF4eHyJcYOFfX2Ie3SLiIeVhYx/f5hzaHVxeW2Lem5zcIBXcXp2eXFkdnmGjGh2gIlxgJ2Imaico5KEfXCLk3d4iZuDhJ+NjnyWjX+aiIV8c3dwc2pvgWxqbHx0XmB3dntwdHpnYGV869q1ycPciXNsdIF2iZmIjGiXj4+blJKBiHCFiJ+NhYuVioyXk3uMkoeCiI96kYuGj4KAd3iDhHKHgpKblpOYh412iH9xiIWMip2lhpeOoISKYYSVj4aIhYiMhoCHaH2UgH6DhYuPj4NyiICAcndodnJpdXdsWo19k4OGfoGEgYSLg3didW2KgpGMg3+AlJN/cINteoiRiJSGfYN/gZOUkZiKbnF5i4V0am9pb3V+XXJobVxpdF9SZHFpZlNfcXZ0YHBgXWiEcXNqV2dpZGlXbVdbc0tJS2RlXWFxcoVpW1xleF1eZGd6YGRfXVlrbmVuanN3in5zc4F+e3Z6iHOFhHx/h3Z2iYWPmIGMgnyUdmx3dnl4k3Rud3p8WHmGcYBuZ3h2kYJkdoaFcIqXhpqhm6KKhnNukYpydo2afYqZiIl8n3+Emn+CeXJzbm9kcn5pZmx3d1tfeHp6cXF/aWFnYX/Vto6RpnhucXd7cJKQjIVpmI2ImpCLhXpoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3xxhoCVmY2SlIKJdoWIeYaDjpagoomYkqGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOOkJF/boR+hHVsbXd1dHh2a2OOgo+Bhn99hYCFiX9wYHRyhn2QjoN9gJKKe3KFZ3uFjImOhX2GgIGVkJGUhW5veIt+dGxtaGl4emBnaWlYa3VZUmlyaWJRYnJ4bWJlXlpqhG50YlxoYGVtXm5UWm1NR05lY1tmbXB/a1lbYnJfXGNsdmRlXV1abGxibGpzdoZ/cW9/fH10eIZ4hYN9gId1eImAkpV8iYZ3iYFveHl6hJJvbXqAdl6Df3SBbGh6c5RzZ3KHfHGSkoSan5ugh4Z1dZN+bXWSlX2Hj4SKjZp9jJp2fndyb2xqYXR8Z2JpdXlaYHd7eW1wfmVkaGhXnY9fcnOXvMSEdXGUiI99cZaLhpuSi4dyaYiOlYB7lYuBhJqLe4qGfHqJi3+UiHWJhnZ3foFydYWBnZSFlI+EhHOBineHf4ycoJyJlo+egYlmfZOCf4WCiIhxgX1mfox8eX+AiY2QfmqBfoV2ZnB5eHR4dGxqj4aLgouBeYOBhYSBbF9zeXt+jouGfIOQgn9zg2p6hYmNiIZ5hX6CmY6RjX5ubXqIfHVzbWZle3RiW3BiV25xU1Nuc2hhTmd1eGZgXl1Zb4FvdFpmYl5rbmBwUFlqUURSZmBZam1se25ZW11sYlpib3ZkZ1xdYGtpY2tqc3aBgnBufnyAdHWDeoODfYGFdn2IgZaQeISLdYGIcnh5fo2Qb296gHFpgXh6fm1se3WVa2p3hHNsk42Gn5mfmYWHbn2LdWl3lo1+gImDlZeKepCWb3t0cWtqZGBzemhfZXF6WmFyfHlncHlhZWSPsbJ3S2JapdnQlnF6kIqPd3yTioSYkIuFbmuFkZF6eZKGgYSYiXuGf3d3iYqEloBvi4hxdX57anmFg6WQg5ONhIBwgIV4hnyJn5yYjpaSloWIcHuTgn2CgoiCbYF2aICFeXKAgYWLiH1mfn+FdmRxc4BpeXBwdZmOhoOLfXd5gYR6g2tccn9zgomGin6HinyJc4JucoaIkYeHdIZ7gpqNjoV5bm59g351eWNmaHtvXlh2WldwbE5XcXNnYEtsd3RhXlxbWnV+c3BYZ15nanFgb05XZ1E+WGVdWW5qZ3lwWlpYamVZY3B4X2dcXmVsZ2ZraXF3f4dubH9+gHVwgnuAgn+Cf3aBhIiXiXGCjXF7hnx6eYSUjHVqeX5rb350f3xvcnt6k29vgX54Z5KLgqGZnJGChWaGgm9neZSIfX6EgpiJgXyOjWh4c2trZl9gb3htX2JveFxka4J6YHF1X2Vl1Oq9izI6PouOf3F5hYeNjHWClox+ko2Lfm1rhIyMdX2Pf4SBlIh7gndtdYaEg5d3boiFbHV7dWZ5gYOmi4KPi4R+boF2eYZ9iaCTj5OUlY6Mh397koZ4f4OMgmt/cWiAfnlufHyDi4R4YnqFgnJlcml/bnVydYKcjIGAhoB0dn+BdIJwW26AdXmMhIt8iIF+iXl7cm2KhZKFjXSDeoCYjIuAdW5qdoB/dHNbZ2d1bldWfFNZb2RLWnJyZVtJcXhvXFtbWV11f3RpWmJbaGZvY2pNV2VQPV1lXFx1ZWB0b1pYVG5jWWRxeVpoXWBnbWdpa2lwd32ObGmChH95boB8fYKAgnp1goCNk4RwgItueH6Ae3uIk4p/aHp9anN7coZ6c3Z9fox5eIR9fGuLjYObnpaLgYBsjH1qaH6Ni3p9foOUgn59iohrdXFnaGJbYmZybl9ha3NgaHCIeWJzc15jZJugj25dNlqvtXRpgIh8kYZ1hZWFc46KiXZva4SCh3R5iXiIfJKHeX5yZnWIfn6Yb3GHf2l2eW5meYeEpIaAh4yKf2+AeIKEgJCcioWXk5qKjIWJfJCIcXt9hHtofmxqgHt6ant3g4iBc2B4gn9yZXNndoNudXyGlpKCfYOBcHh6fHWAbVhwgHd1jYOHeIh2hIl8eXRvi4KSgodzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpOW29bTltyb2RVS3N4aVdZWlphcYF1YV5dYGdkaWlmTllnTUBgY1tgdWBddWxXV1N0YFpkb3JXal1iaGtnbWxocHd8kmtohIp9fG9+fnyCgIF6d4B/iouDcXyHb3J4g397iYyPg2p9e212eHaKdnx4f4KGf4N+fXpthIuHmKOMhIN7dYp4amyDh5B4fXqCkYCAfouDcHJwY2ZeWWZfcG9fYGdvZmpuiXRhdG9bYWRqdXqAv5ympMi4cYWCcpJ7d4WSgnOQi4dycm+DeoNzdId0h3eTh3h5cGJ2h3qAk2lyhHdnd3VjanyCh52BgH+Oj35zgXWHfIOWk4Z7mZCXkIiCiXuJiWt4eX50Z3poa395c2l6d4GEfmhgeIl+bGt0aHyBaXaCjJKVf3x/gHF8d3x0gGJWeH5zdIuFgn2EcoiKeXlycYWDj4CAen9+d4+GhHdqcWhsh4Fxb1xmYHFsSWR1S11tVVNZc25iUU90eGFSWFhdYXCDc1xiXGllZWRrZFFbcElDY2BbY29dXXhnVFZVdl5bZW5oVmtdYGpnZW5uaHB3epJtaYiMeX1ye355goGBfHZ9g4iGg293hHJud4KCfoiLk39wgHx3eHqBjHSCeH+BgYKEeoB1b36Ki5ueh32FeXeFemd0hYuQeX5/e4iFhHeQgGdwbl9kXFhkWWxyYWBgcGxraIluYHNoWV5jbn93qdqpx4aHsnGId2+MdHqFjX95kol/dHNzfXZ/b3F/bYRzk4V4dGtgeYJ5iY9mcoRwaHVuW219f5CSf4B4kZN+eXxviniElI6Hd5mNk5CIhoV8gIVtdHV+bGZ2ZG17dm5rd3eAgH1hY3mHeml2dmN+fGh1h4+Nln12gXdxgHt9boFaV3V/cHaFiH+Aem2Kh3V5bHaChIV/fX56fXSMgn50aHRlboqDbHJZaF1zZEZtbUtaYVdWVXhtYlBSdHZYUFZYXmByhG9dYWNtZWReb2NUXHFGQmVeXWVnXVt6YlFVW3RbWmdrYFZqXmBvZmZrcWhwdniOdGuOjXV/dnh+d4GEgXt0fYOIh4NvcoB0cXV+hYGJjYt7d4B4gnt8hYd3h3x9gX2EgHt+cnV5i42gjIh5iHZ0gnhefYWXi3iFg3SFhoR4intibmxbYltbYFZpc2JgW2dub2aHcmFxZVdcYmt/fMrOh7mham1tiWtxg3F7g4l+epCEeXhzeHR0e2psdWKDdZGBdm5mX32CeoyKZXKCa2pxY1hseoSbiIGBcpaVd399cItzhY2PinSakJKJhouDe3l+cXBvfGRncGFteHFrbXF4fn56XWZ7gXhqdnlmg3dodIiMjpZ+c4lrb36CeW99Xll0gG10gYt8gm9wioByd2l4gYKBg3h/c3t1iH17c2dyYW6LgGtwVmlcdltHbWpNVlVdU1V7a2FPVHVyUFFUV15jdYVpXWBsamZjWm9hWGJvR0FnXGBlXlxWe11OVWRvWVpqaF1XZ2BfcmZqaHJncHN3hnhulYt0f3p3fnqDiH91cn+HhY6CcHB8eHZ2eoWFh4yGent/dIp9fYaEg4d/fn59hn58eXV4d5GTn36LfIptdX94Y4KGlYZzkYpvhYWBe4R1Y25qWV9aXF1UZ3NkYFhkcXJngHJia2RWWl9qf3i+rnuftm1hc4Rnc3pxeIGFen2Lfnd3cnVve3Zlam5ghnWOgHNpYV5+eXmLhGZxf2hra1pWb3eJooCEf3CZk3KBeneFcIWFlYt2mIuOiYWJhX15dHJvaHhfaWxgbXZraGtreXh7d1tnfn15ZnN+bYV1ZXWGjoaXgHGNaGt7hHVudmNdcn5sdX2Me4Jndoh+b3Jpd4B6gIF0fm17fIN7eHFmbGFtiX1rbFVpX3ZVSmlqTlJOZ0xYfGhhTlV1a0xQVFVfZ3aDZ15hcWhnYlhpXVxrZ0pEalliY1ZZVXlZTVZtaVlda2RcWWRiXnRmbGRxZ3JwdYF3cJmGdn9+d399hYd9dXOCiICUgm5zeXt6dHOEhomJg3mBfnWOfnyEio2DgoR7foqDe3d8d3eanJd6iIKGaXZ8e2yDg5J/co6BcYaCf4OAcGZsZlddW1xaU2RwZF5XYnJ1aXVvZWViV1tbaH9wb3KAc4lkZHl8aHN1c3KBg3eAgnh2cnVtanpxYWdrZoZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKV8hHt2lpF0fXR+fXB/fpSIeZt+iYeDh4N9dXBxbGd0W2tnXmx0ZGhmaXpvfHJaaIF3dWlxgXiCd2J3hot8lYJwjWtue4NyZ3RmYW97Z3N4inx+Y3eEd2tscnZ8cnx7dX9of4CAeXdvZGZibYV7bGpVaGFvUkpoaU9LTm9HXnpmYU1VdGRKT1NXYWt3f2ZdZ3RpZmBXZFdicFxLS2pXY2FVVFVyVktYdWRZXmtgW1pjZF92Zm1icGl0b3J/dXSZgnd/gHd/f4aEen11goR+l4VtcnR8enVxhIWPgYB6i3ZzkH98gZWNgIWEfX2Mhnp+gXd7o6WKeYeFg2t0e3p1goCLeW6Ec3mEfYKDdm9qaGVWXVtaWVNibmRbWGFze2pobGlgYlheWml/aWtwgGdsYGd5d2lyc3Nsg4B5fnt1dG16Z2l5al9lbmiAdo+EZmVYYndqf4d7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHyTg3uXdoaEgIaIdmpydWdnbltsZF1tcl9oYWp5aHxtW26Dc3VrcIF+enhhd4aFeZGGdIlycXqBc2Nyal1weGVydIh8eWN0gXFnanp1c216eXZ5ZYR8gHl3cWRkY217fGpqVGdhZVNKa2ZPR1FqRWF4ZmFNU3JdSk5VWWVseHtmX25xamRdVmFVbm5WSlNnV2VdWE1Va1RJW3heW19rXV1aYmVfeWhsYW9vdm5weHV6mH53f4F5gICHhnp5eoN+gZODcXR0f3p3dISIkX2BfJFrcpWAe4KfhX6HfYB+hoKAiXt3hKuef3qHh4JqcoB5dYB+gHRuhm59gHOKgGpvbWRkWV9aWVlUYmpnW1pfdYJpXm1sXGFXW1trgWVxdH1paVxqdnRmc3Zxa4N6fXx4dXJseWZpd2ZdZHJneXeSgGJiVGVwaIKFeHhnaWphV1ZZZ2KOp29+d4CLjntxcn9pe3F9j395kXOFfoCAhm5kdnJkZ2dcamFdb29baF9tdWV7aF51gW9ya3J8fnV2YnWGjHuJiIKBeXN2gHZicW5bcnRjcXKFfHVlc4BtYW17cWtqfHt2c2eHd3t6dnFlYmRtcn1palNnXVxUS3FhUEZWYEdjdmZhS1NvWEtNWFhoa3Z7ZWVucWdkWlhdWHdlVEpcYldnV1lIV2RPR2F4Wl1fbFteXGFjXn5pamBvdHhtcG92g5h6coCAfH+JjIZ9dnaGeIeMfHN1dYJ5e3qCjI58foWJaXOWgXqKnH5+hXqBe399holzcY+ti3t7ho98ZXGHeXN8enVyboVse35sj3pjcG9iZV1lVllZVmNma19dXHOFaFhwblpeWFpba3picHd2bGFZbHJyZnR1b2uDd35/eHZtbnNkaHRlW2d0ZXV2kXleXFJmZ2uDgnR+YmRqXFRXXWFijqRpeHODhpF5bnF8anpvf4l+d4t0gnl9eYBpZHZtYGZfXmlfXXRrWWZdb29jemVceH1sb29weHl0dWVzhJOAh4SKfHhwc350Y3hlXHFxYnFygXx0Z3OBZV9ud2plaHt9dW9wg3Z0fXNyYl9mbW58ZGhTZldYU012XlBJWVdIYnRjYUlTbFNKTlpXamxyfGRtbXNjYVpaW2F3XFNLY11XaFNWRlhfTUZpdVheYGxbW15hYl2EaWhhbnh5bXBrdoCQeW2CfoCBk4iEgXZ0iXSMhnRxdnWCeH19foyQf36UfnB3lYN9mZJ5gIB4en1/dIiEdHCZoHp6foeUd2N0h3hyd3RrdG9+a3h8cJFzXnBvYGdibFRaWldoY21mXFxxiWVTcW5bWlhXX2t2ZGl1amleWWxyb2tzc3JohHx+f3t2bm1rZGlwY1trcmR0do5zWlZUZWFygH9ygl1iY11TWWBbY5CfZXFxhYSSdWxse29wcn1/fnOCeIF0e3p6ZGV1Z11iWWBnW152aFdiXXBpYXhhXHx2amtyb3h0c3VpcYKWhIeAhXd0a3J+b2d4WF1sbmNyc4B6dGdwflxgcXNjYWtzgG1udn9zcnhrcGFcZWxsemBmUmVUV1FPdVpQT1hRSGNzYWBGVWpRSlFaVmtra31mbm9yYltaWFlscVdSUGZWVmhTVEVZW05IcXRYX2NsYlhgYGBdi2pjZG16eGxwaXV5h3trg32AhJp8g4R5fIhuj4dybnZ6fXSCgnyLj4KDmHR4gZOFgZ6JdYGAgnR/gnGIg3ZwoZZzeYWKhnpkdopubnpuZnhweWtydnONa150bmFnZWtSXVtVZ2Fsa1pccYxkT29tXFZXVGZpc2hidGVkXFhtdGxvdXR4aoV8f3uHdo9zY2RrbmBcbW1jc3iHa1lUVmNkeH19cYZdZF9jVFpfWGKVlWNtcIOFinRraXxwZ3V5dn5te3V2cHt/dV9mc2NbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2hwf3F0cFRcZ2tmcXSAdnNjbXdWY3NsXGBwaH9nbnh+c3Nzam1hWmRpandeZVNjVFVQU2xWUFZTUEdkcl9gRVdpT0lYVFduaWV9aWx4bGJXXVVbdGRTUldoUVhmVFNHWVlPTXd1Wl9la2lZYWBdXo5uYmZreXZub2l1doB/bIOAfYeYe4CHgIl/a5OIcmZ0gHt1gIN9iY9/jJNyfIqRhIefhnt/ho10gYZzfoJ2bqSLcoCMinZ2bHmLYGR7cGZ5c3hsbXJ3g2dke2xiZmdoU19eVWdfa29bXm6NaE1pbGBVVlNuZnNrZXhlZFxYb3NrcXp3cmuHen92nHp5a2FlbG1eYG5qZXF4fmdZVlhgbHh8e3CEX2NeZ1ZYX1djm4hia3CBh314bGx6bl14c259a3Z0b3B8gXNYam5fWVxVYWJXZHBiU19iaWJibFphfmxmbHR2b213d2xpho2AinyJbnJncX5udG5kW2FpaW90gHRyX2ltU2VyZVZkcGR8ZXN4fXdrcG1rYFlhZmd0XGRVYFVSTldkUU5bTk9IZG9cYkZZaU1KX0tZbWRgeWlufmVgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJgWl6NcWNnanhxc25odnN7g3KCg3qIjn58iYeNeW6QiXRrc4F0f3+IhYeShJaPeX2Mj4eRm4SAfI2Fc4CBc3R4c2+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn5+fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2NjY2NjY2OjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6NjYyMjIyMjI2NjY2NjY2NjY2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmY4C+u7u7u72zbWZnZ2dnZZChoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19bfsjExMTExrtnXl9fX19dkKWjpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmMkpGRkZGRkImIiYmJiYmOj5CQj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTj4iNjI6PiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2NjoyLi4uLi4uLjY2Njo6Ojo2MjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJGKh46Lh42HipCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkYqEjIuGj4aMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj42HjYaMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhYeHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqLjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f39/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaFhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj5COjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fX59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/f35/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/gH9/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/gH+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f35+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/fn5+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4GAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZSUFFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT09PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1OTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01LT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gIGAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PT05QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUVRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQUFAQkE/Oz48Pj8/PDg5ODs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg4Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs8P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4B/gICAgIF/gYF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7PDo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/QkNDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRUhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT8/Pjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbHBwcHF0dXZ5fHx9fHx/fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FDRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8fHx8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCREA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdERUdGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFFZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj89QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+AgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSUhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRkpKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e359fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gICAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tLS0pLTUpLSEhGRkdGRVBshIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkdERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1/fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlVsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9OTlFOUV5ygYWEhIWFhoeHiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs8PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzg4Ojs3Njg4OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIREJANTc4OD06PERCREZGRFZ4hISCgoODhYmKiomJioqKiouJioqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc3Njc2NTo6Ozo6PDg5OTk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEE/PDo1Nzk4OTc6QTk8RD9QfYSDg4SEhIaJioqIh4iIiIqKjIqJiY16Pjo4ODs8PT45Ojs8ODk7OTo7Ojo5Ozo6Pj09Pzs7Oz06Pjw6PDs8PD07Ojo8ODo6Ozo5OTk8Pzw9QUJESUpMS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzs7PDo4OTk4OTk5OTo+PT8/Q3aEg4SFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz8/QD9APT0/Qj9BQT9BPz1BQUA/P0E8Pjw7Ojs6OTs/PTo7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4OTs5Ojo8PDo6Ojw7PT5APz1hhYOEhIWFhomJiIeGhoaHiImKi4uKioqLiYtePkRHSUtKSkZHR0RGSEdFQ0BAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pj4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc5PTo8Oz49Pj47Pjw/P0M+Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0ZHRUJISUtHSEdGR0dFS0pMSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAf3+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRT9ohIKFhYeHiIiJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSUdGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTElISEZKSURKSEdLSklKSEhHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VvcXV3eHl7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo7Nzw9Ojw/PD09QEJDRExthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtLSkxNTE9QTkhJS0xPUVFQUU9PSklKSk1LTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXt6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB+f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD5DRENGSnWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0tFRkZLT05PV1ZRUE9SU1JNU1RPTVNMUFNVV1JTUlBMSk1NTUxOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklMeYaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEs7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUVFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHRkZFPz9BQEVBQ0ZEQ0RLVlBKUFBOT1B5hoWHhoWGh4iIiIiIiIiIiIiIiImIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT5AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01UcHR2eHl4d3l5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUlFUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmJ0c3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpZV1dXemtYWlxcXlNQUE9JTk9XVlhaWmVxdHd2dHR2eHl5e3t8fX19fn99fn1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUk5PUVNVVU1RU1JQTkxLSENJR1JTVFldbXJ2d3V0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/gIB+e3Zzd31+fmR1fWlxdGBkXV1bWVVRTEhMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQEhOTUddaVFIRk9GRUZGSEdIQkNIR0hKR0RBQUNATlBNUmR0dXZ1dHR2eXx7ent7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/R0xNR01RVUpCRT8/PT08PT0/PT9BQ0I/Pjw9Qj5JTUZVb3V1dnN0dnh7fHp8e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRWVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTklHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH18fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlRWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9tbmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlERj45OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhFQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e319fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1NbZkpMUFJST01NTk1NTEpFUFBVWVNUT0pOT1VTU1xWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1WHFxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUBRPWNgUVNRUE1QUE9OTUxQTlRSUFJMSUxLT1JQUVJSVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+NEA+am9hUlJRQEdUUE9QT1FOUU9QT0xKTExPUE5NUFFRTlFPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RW5xdXd6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQz9CRURBQEdIR0hGRkhKTUxER0NPUkM4RU1TXWdTUVNBR1VPT1FQUE1NTkxKTEtMTk9PUUxPTk1JTEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT88PUFAQj09RUhGREZGSUdKSkBGQUFARkdESU9IUVJhXFFQUk9TT09PTE1PTUtNTE1PTltWS01RT0dJSENJS0xMS0ZGRkU/QkQ+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFFSkVDSEdJR0lFQkI/PjxCQUBHSkVNT2JlUE1PTVZLTE5LTE1NTExLTk5TZE1KTFJJSUlGQkpLTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5ent6fHp3c3h0eHx8eXpucXFtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTo6P0I/PEFCQUFERUdLRkRJSUdHSENDP0I+P0BBPUNFRExNUVRMSklNVEZJSUpMSUpLSUlMTU9QUlBLR0NLSENDS0pMTk9OSUpJR0RDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG1zdntzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUE5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByenRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0VHS01ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NT01QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FnbmxoaWtsdG1vdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7Pjs9P0NCP0FDRkdKR0pJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElFRkdLTk9LRkhJRkVDRElJSEtJR0hQS0RKTkxQTk9OT1BPSkpJTVJVVVJPWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB3dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTEhOSkpMS0lGSEVGRUNDSEhIS0pHS1JOQ09PTlFQT09OT1BLS0tQVVdWVVRZYF9daWFuaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fza2tzTUdHRUdBQkBERTxBQUBDPDg6PT46QD1AQ0BAQURGSUVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSU1LSFFNSktISElFRkhIRUNJSUlLTUtQU05EUlNSUVNOUE1PUE1MTlNXVlhZV1leW11kYGljamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo+Pjs+O0BCPj8/Q0VHREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUpMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBSTU5ST01RV1pWWllXW15aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREJDSEU9QEVCRD04Oj4+PTw8QkI9QD5BQkZDRUNDR0NDRERGR0dHSUZIS0hDSUhHSUdGREhLSUdKSE1LSktMSEtKTUtJTkxPTk9SVVZPTFZWVFFUUlJMT1FQT1RaWllcWlpdYF9dX2NfXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1TElKSEpGQkRHRT1BR0REQDo8PkA/Pj9DQjxAPkFBRkNFRERHREVERkZISEZIR0lLSkVKSEhLSEVGTEhISEpHTEtMTExJTUpNTk1PTFBQUlVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gX2FgYmZdZGBmaGBlaWpkc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXdzZ3Rya3Fya3J3cHdKSktJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSERGRUlIRklISk1ISEpKSUxKRUpLSElKSkdLSkxMSUlNS01OTk9MT1FSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgZGRlYmRpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXVmcXNrcHFqcnZwd0pMTEtMR0NDQUU8QEVFREM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRUNHSUdHSkZJTEhJSk1LTUxGS0lIS0tOUUtSUExSTEpNTU5QUFBVT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjX2FmY2FiaG5oYmloaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHF3TE1LTExHREFARD4+REVGQz9DQUVEREZDQkVHQ0JIRkJISUlHSEpGREtKR0hKSElLR0pKTktOTElMSEtMSlpmSmRbSmxSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmltemZcbHRgbGtWYHd2aWpnaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcnlMTkpKSkZCP0BDPzxEREZEQ0NDRUVERkJFRkdEREpFRUlLS0lLTEdHTkpISktHS0pJSkpOTE1NTExJTU1MW3NiZG9dbGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdmdwT0xyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3l2dHRibXVrcHBscnJye0tMSUhHRUQ/QUE/PUJFRkJFQ0VERUVEQkhIR0RES0hHS01NSkxMRkpOSEpLSklLSkpJSk1NTk1NTUtOTU1bcnBvbnBwa2pMT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta3BseHh0c2lwXWBzbHFrVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFREJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISU1JSklKSk5PTk5NTE5NTFxoZHVdbHFWa01PUW5VWmtea2x2YWxkdFRlY05sWWxcdG9samx4and1aG9dYHNraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Ryc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUZJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hKSEhGSUxLRk1LS1JSTEhNTUlOSklHTUdKSkhJTk9NTkxKTU1KWnRwcG9xcWxqT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fzb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdHZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdXBuc3N2dElLSEpDRERFQEA9Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0tKSk5JSElLSUtKSUlLTE1NTElLS0pTa2JZaV5eaWJyclpfWWpvX2VlVWtfY1thYVFgbWhcalxuaWpkW29lZHBcWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSkxbUUpGSEhLTUlISklLS0lISUdLS0tLR0hKSUtLTEpJSkxNU1tdVFBVTVFPTk9PVlFPUFFOT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZARUM/Q0dERkdDSUtMR0ZER0pMSERHSVBLTE9LTFdNSUZFR0lKSElKSExKSUdISEpISEhFRUtISEpOS0hPXFZdT11cYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydFBCQ0RMTUFDQ0JESUVHR0ZLSktHRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0ZKSEVGR0VFSkZCSUxJSlRfWV9YYGFbYFVYWlRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWVpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRENBQ0ZHRUdHSUpKSUlERktLS0VGSUlOSk5MSExOR0hGPkhHTElLS0pLS0lHRUlGRERFQkZKRD9JS0hOWmJZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYWJjY2VaUlpXV11aXWRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhZUUpGQ0dFQkRISEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISUdAR0ZOSktLTUtLS0lHSUVFQERBSElBPkhJRk9dYFpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRiYWRjZlhSV1VUXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhoaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRUtJRkdHSUdHSkZGRklMSk5FQ0pKTE5KTElLS0lJR0NISFFNS0tPTUtLSUhIRkVARUJISEFARkVDU11ZXlhfWF9bXVVYWFBdXFFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JhZGRhWFBSUlNcU1xdXV5eX19fZGlnbGtubnB7e3x+e4CCg4SFhYWFhYWEhIWDhIWHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSkxMSklHREhLUU9NTFBNTUtMSUpERUFFQ0hGQUFGQ0FVVUVcVF5TVmBYTlRVTVlaTEpLVGBhW19YX15iXU9ZYlxgYF5iY2FdYmFXYF9VUVBRUllTXlxbXV1eYGJmZmZsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUxKSkdFSk5RUU5OUE1OTE5JTEJFQUNDRkNCQENEP0xHQ0xMT09PTUZNRkZISUdGTEtNT1BJTE9QUFNQTFFUU1VZWFdZV1djVk5SVFBRUE9RVlRcWVlbXVxhYWVmZGhkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFNTTlBQTk9PT0lMRmFFRF5MRGZiQ0xaR15cc21PTFZuWUtDT19Ua1ZnSV1XVV5ETFFVTE1TVlFTVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcW2BgYWJiY2FnaWdubGhyen19foGDhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVMUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSU1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZRcXF0T0Jqc25xc3BTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVgYXZfWWJcXGZbX2FhYWJfYWNnbW9tYHB3dHiBgYKDg4J/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUExMT0hOUFNbWlRRUk9QUFFMSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzcHNzfH1wfnhvf3JgYGBiYltiYWhsbmtibGZnbXd+gYCDfnt4d4B0dnppcX5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FETU1IS0tIS1BPTU5KTlZeWVVMUVNOWVlMU1NTTkxQSVJSVFlXV1FUUFBQUkxIZ3hsY3hxbVpKS1R5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVxgWFzaH1pbHh8b19fX2NiXF9kZWdqamVnYmNkbGxwcHN0c3NzeXFyeGJtdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWWBaWEtUV1BhXlJWUVlTTVBKU1RWWFdXUFVQT05SSkxyb3V1cXVxY2hgVm5LcXBeR2h5V3ZUS2h4fXdgeXtzbWBdbW9kU2dydW5teXB3a3VzdHFsbVxzfnprbXl8bHVufGtxd3V4Xl9fYl9eYGVkaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRSk1OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFdXWVdPU09PTlFJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1ZrZ3xsbWx3XlpwentfYHpzY3JveHFnY3xpcntdVEtsX3Z1bGp2fHtuf3lsfHBdXl5iW19jZWVnZmVlY1tjY2lra3JzcndnbWloZGdgYWxhZ3Nya2dsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUtIUU5QVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYWlpUUVJXW1dXV1tPUlRXV1hRXVhWXFVUT1hSV1hYWVpgXGhzX1xbWVxdX2NaX2RkZWdkZGNiWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGdlZ2tocHpoZ2drdWpoaGlsUElLS0xNS0pUUk5SUVBMVlVUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFRUFBQU1VSWFdcV1JSUFFVVVZTWlFOUlJXVFNYVVNYVFNRVVRVVllZWF5aX2FdXFtaXFxgY1xeYmNkZ2VlZWNaYGFkYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBNUU9MU1BNT1VTTlFOTU5RU1BUUFFUVE5LTU9SVFRRUVFVVlNYWltZUlVSVFhXVllcU09TVFdUU1lUVlhUUlFXVlZYXFpcYF1WWV9dXl1cXWFhXltiY2NoZ2ZkY1hgYGJeYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxQVVBQVFFPUVpZWFdZW1pYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRT01SUU9SWFRRUU9NT1JUTVdRU1RVT01OUVRWVVJSUlRXVVpdXFpWVlFSV1hVW1tWUFNVVVRVWFNXWFRSUVhWVltfW19gX1ZfXV5gXVxgX19fWmNjZWhoZWViWWJgYl5fZmRjYGJdXFxcXFlaW1hbYlxeXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NV1NNTVJPUlJPTFBTUlVbVVRQUExPV1VQVlJTUlhNT1BSVVhVVFRSVFhYW15dXFtWUk9VV1VbWlZRU1ZUVVdVU1haU1JRWldXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZ2FaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxaYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVVTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUlRUWVtXVU9STlJXVVJSVFFSWU9RU1RWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVVVXWFJTWVtTUlJcWFpeX11iYWBXYltjYl5hY15cYmFiX2RnaWVnXlxkYGFgYWNkX2JfWlpeW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JYUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPU1tTUlFTUlVVVUtSV1ZaWlpTT1NRVVVUUk5WUVJaUlRVVFhdV1hYU1dcWF5dWVpdVVVOVlZXXlpXUVRVV1hYU1ZZW1RSVl1ZXV5hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWdfXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUltQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfmxbVVpWUVFUXFRUVFVUVllXTFJaVlxbXFJQVVNXVVVST1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWVlfWVlSVFVZWVlVV1lbVVRaXV1eYWJgZWRdXl1dZWFiZmReXmRjYFxnZWhmZWJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVdZV1dVWF9gYWFgY11gVV1eYmVldoJ7aVlZWlRWVFZcWFdXVldXXVhPVVxZXl1dVFNYUlZVU1FTV1FTVlRYWFheXlhdW1ZdX1hfX1hcVlFYVFpaWmFYW1RWV1pZWldYWVlXVl1fYF9kY2JmZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1paWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFiY2FjX19WW2BkYV96dXBpWlxaVlhWWFtaWVtZWFlgVk9VXVtgYVxUVVlQVFZUUlVVUVNVV1tbXF9fWl9cVl9fWV1eWV1WUlhXWllcYVldVVZaW1pbWlpYWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRnYGheYmJjYWFgXl9ZVFtaWltbWFxYWFxbWltXV1pYWFxbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF9dXVtXWFlaXFxcX1taW2JWU1deXWFjXFNWWVBWVVVVVVVTVVRYXV1fYGBdYV1XYV5bXlxbXlhVWFdbWl9fWl5XWFxcXF1dW1pcV1pfYV5gZGRlZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlgZ15jYmNhYWBfX1xYWVpZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldaV1daWVtcWFdZXmBiYWVhZGFdXllhY2JfYWBhX1xdXVhYXFtdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1dXVlZXVl1dXmFiYV9iXllhXV1eWV1dWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2NmZGZnZmhjWmVmZ2lnY19jXmFmZVppaWNmaWNmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFhcXF9dYF9dW2BkXFxYWmJlY2FSXFlPWFZYWVhZV1laYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiZGZkZ2ZmaGVdZWdoaWZjYWJbY2dgXGlpY2hpZmVgYmJjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1dW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1tcW1tZW1tjYGNjY2BiZGFgY15gXF5eXllYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZmZnZl9mZ2hoZ2RkYFtlZ15haGhjaWhmY2BiYWNiX19fXV1bWltZWFhYVlpWXFtaVlZWTVhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXp7e3p6e3p6enp6enp6e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5enp6e3t6enp6enp6enp7fX19fXx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT08/ExcXFxcXH0tTU1NPT2FolKysrKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OTl4NTU1NTU1Nbj5eXl5eXrVBMbGxsbEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl6enl6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4ODgoKDg4OCg4SEhISEg4R3c3Nzc3NyfIWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2eXx6enl5fXl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl5eXl5eXl5eXl5eXl5eXx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z6fXp6e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp+enl9eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3eHl9eXx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt4enp6fHx8fXt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eXp6eXt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGAgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eDhYKBgYGBgYGBgoGCgoGBgYCBgoGBgYKCgoKCgICAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4eNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGBgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgYKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYCBgoGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fXx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiMi4iKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhYOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f35+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+Kh4iKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKDhIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoaGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgYKCgoGBgoKBgX+AgYOBgICAf4CCgoKDg4KCgYODg4SDg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgYGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIOCg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiIeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICCgICAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgoGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4eHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoOCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIOEg4WDgYGDgoOFhYODg4SDhIODhYSFhISEgYGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgYKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgoKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGhoaGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4CAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4GBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoOCgoSCgYKGhYOEg4OEhISGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4OCgoKBgIGAgICAgICAgH+AgICAhYWGhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4OCg4WEhYeIhYOCgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeIhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf4CAgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4ODhImKh4eEhYWEg4OFg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGhoSDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYSDhYSDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mHiIaIh4eJiISDhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoOEhIKBgYGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhYaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OFhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fnt9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f39/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhIWEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgH9/foCBhIOCgYGDhISDhICBgYCBgIGAgYKCg4GAgX6AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f4B/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CBg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/gICAgICAgIGBf359fn5/f39+g4aHh4iChoSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OBg4KCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CBgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeIh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgICAgIB/f39/f4CAgICAgIGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SCgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyKiYqHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYaFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fXx8fn6Kgnt6e3p4ent6fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeIhoWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6BlJGLjIyNj4qGhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX16fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f318fHx9fn18fX19fX19fH58fXx7fXx8ent6e319f4aEgoCAgX1+fX5/fYuEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fXx+f399foB+fn6EkoyMi46Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B7fn18fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx9gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPi4qKjIuKiISEhYOEg4ODgoKCgoKCgoKBgYGAgoKBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf35/f31+fn9/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkI2LiomKhoeFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgoKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYuJhYiQjIqIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDg4B/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHh4uLi4qJjJCNjImHhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn9/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYGBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIKEiImKiImNj4yKh4iFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eXx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmFhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4foKAgYKCgICBgIGBgICBgoKCgoaFhIGBgYGBg4F/gIKEgX9+gYB9foF+fX9/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag3+IjImJh4WFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH19fn6AgH6Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fIiJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57e3p8fHt2e3R3f352cnt+fnt4dXd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6BgX98fn59fX17fH58fXx8fHt8e3x9iIWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KCgYKBgYOAf4CBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn1/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tyeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgYGCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKFhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX15fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWBhISFhIOCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+fn19fYB/gIGBgX9+fH6Afn9/gYJ/gYGCg4eFgYB/fn6Af4CBgICAgIGCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoGCg4GCgoGAgYF8gH9+gH1+fX5/gICAf35/fnx+f3+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODgoOCgYKDgoGDgn+BgH9/fn+Afn19fH+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foZ9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58f4CAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYKBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYCAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GAfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fnx+f39/f319f399fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eHp6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKAgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Af4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR9dHx9enp6enx5eXp6hoV3eXx8fHx8fXt8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/f4B/f39/gH+AgICAgH+AgIGBgYGCgYCAf39/fn1/fnqBkYt6fH18e315e3p6eHmBgXh5e3x8fXx8e3x8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWHg4OCg4KAgYCCgoGAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH5/fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiHx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH18fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGBgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYWDg4SBgYOBgoKCgYB/gIKDgoCCgoWDf4CAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fX18fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgH+CgoSBgYKChIJ/gIB/gYOCgYGBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKCgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYOBgICAgICBgoGEgH6Bg4F+f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgYKBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODgoSBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX5/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBf4CChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH52dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBg4F/gYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgX6BhISDg4KEf4GEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSEhIOBgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYKEhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgoOBf4GEg4ODgoN/gYWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhH99fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYGBg4SFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4R7hYOAhIOAf359fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKEdXNxg4Z0cHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOBg3+Dg32BfX1+fX6Cg4F8f4F9foB9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFhIKFhoSFhYOCg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnp5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f359foGAgX2Afn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIiFg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9/goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhIaFh4aFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x0cG96a3N8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYSDhISFhIWEhYSGg4aHhYaEhIWHhoSEhYWEhX13hYOEhIOCgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaHiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhISEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+f3x9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e319e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaDhISGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4aHhoeGh4WIiIeHhYaGh4WHh4WBhISFhoWFhISEg4SFhYaGhoWGhIeGhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn17fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhYaFhIKDgoODh4GDgIKDg4KCgn+Ae3x+fnx8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4aIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYeHhoaHhoaEhoWDg4KCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWFhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSFhYOBgoGAg4WCg36BgYF/g4F+f35/fX98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WHhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4SFgYCBgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiYeGhoeFhIaFhYaFhYeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoWFhoODg4WAf4GAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl5enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4eIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaHhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhoSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhYaDhYWBgYODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKCg4SDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhYeFh4WFgoOCgYOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6AhH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKDg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeGhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn18fHx8e3t6eXp6eXt6enp6enp6e3x5e318fH9/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSDg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WFhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e357fYF/gIN+fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmFhYyBiL21lZGlhL3Jlcy9iYmJfYWFjX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouYWFjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzMTEwMmQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmFhYwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDEyNGYzMAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfYWFjX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDQ2OSBAQAorNSAxMjggMAorNSAxMjggMAorMzM3IDMyIDAKKzMyMiAzMiAyMTMzMworMjc5IDMyIDQyNjY2CisyODAgMzIgNjQwMDAKKzI4MyAzMiA4NTMzMworMzE3IDMyIDEwNjY2NgorMzE4IDMyIDEyODAwMAorMzIxIDMyIDE0OTMzMworMzEzIDMyIDE3MDY2NgorMzEyIDMyIDE5MjAwMAorMzE3IDMyIDIxMzMzMworMzMwIDMyIDIzNDY2NgorMzUwIDMyIDI1NjAwMAorMzU1IDMyIDI3NzMzMworMzMzIDMyIDI5ODY2NgorMzI1IDMyIDMyMDAwMAorMzc2IDMyIDM0MTMzMworMzM1IDMyIDM2MjY2NgorMzUxIDMyIDM4NDAwMAorMzUwIDMyIDQwNTMzMworMzM5IDMyIDQyNjY2NgorMzI5IDMyIDQ0ODAwMAorMzUwIDMyIDQ2OTMzMworMzMwIDMyIDQ5MDY2NgorMzU5IDMyIDUxMjAwMAorMzE2IDMyIDUzMzMzMworMzQ1IDMyIDU1NDY2NgorMzU3IDMyIDU3NjAwMAorMzI1IDMyIDU5NzMzMworMzM2IDMyIDYxODY2NgorMzM5IDMyIDY0MDAwMAorMzEyIDMyIDY2MTMzMworMzUwIDMyIDY4MjY2NgorMzM4IDMyIDcwNDAwMAorMzUzIDMyIDcyNTMzMworMzQwIDMyIDc0NjY2NgorMzMyIDMyIDc2ODAwMAorMzQwIDMyIDc4OTMzMworMzM5IDMyIDgxMDY2NgorMzMzIDMyIDgzMjAwMAorMzMzIDMyIDg1MzMzMworMzQ1IDMyIDg3NDY2NgorMzQwIDMyIDg5NjAwMAorMzQzIDMyIDkxNzMzMworMzM1IDMyIDkzODY2NgorMzM5IDMyIDk2MDAwMAorMzQyIDMyIDk4MTMzMworMzQ4IDMyIDEwMDI2NjYKKzM1MCAzMiAxMDI0MDAwCiszNTEgMzIgMTA0NTMzMworMzQyIDMyIDEwNjY2NjYKKzM2NiAzMiAxMDg4MDAwCiszNDAgMzIgMTEwOTMzMworMzU0IDMyIDExMzA2NjYKKzM0MCAzMiAxMTUyMDAwCiszMzQgMzIgMTE3MzMzMworMzM4IDMyIDExOTQ2NjYKKzM0MCAzMiAxMjE2MDAwCiszNTEgMzIgMTIzNzMzMworMzQ2IDMyIDEyNTg2NjYKKzMzMSAzMiAxMjgwMDAwCiszMjEgMzIgMTMwMTMzMworMzQzIDMyIDEzMjI2NjYKKzM0MiAzMiAxMzQ0MDAwCiszNDUgMzIgMTM2NTMzMworMzI2IDMyIDEzODY2NjYKKzM0MiAzMiAxNDA4MDAwCiszNTYgMzIgMTQyOTMzMworMzUxIDMyIDE0NTA2NjYKKzM0MyAzMiAxNDcyMDAwCiszNDcgMzIgMTQ5MzMzMworMzQ5IDMyIDE1MTQ2NjYKKzM1MCAzMiAxNTM2MDAwCiszMzAgMzIgMTU1NzMzMworMzQxIDMyIDE1Nzg2NjYKKzM0MCAzMiAxNjAwMDAwCiszMzAgMzIgMTYyMTMzMworMzQwIDMyIDE2NDI2NjYKKzMzNSAzMiAxNjY0MDAwCiszNDQgMzIgMTY4NTMzMworMzU5IDMyIDE3MDY2NjYKKzMzNyAzMiAxNzI4MDAwCiszNDYgMzIgMTc0OTMzMworMzMwIDMyIDE3NzA2NjYKKzM1MSAzMiAxNzkyMDAwCiszNTUgMzIgMTgxMzMzMworMzUyIDMyIDE4MzQ2NjYKKzMyNSAzMiAxODU2MDAwCiszNDIgMzIgMTg3NzMzMworMzI3IDMyIDE4OTg2NjYKKzM0OSAzMiAxOTIwMDAwCiszMjYgMzIgMTk0MTMzMworMzM3IDMyIDE5NjI2NjYKKzM3OCAzMiAxOTg0MDAwCiszMjEgMzIgMjAwNTMzMworMzE5IDMyIDIwMjY2NjYKKzM0NiAzMiAyMDQ4MDAwCiszNTIgMzIgMjA2OTMzMworMzQ5IDMyIDIwOTA2NjYKKzMzMSAzMiAyMTEyMDAwCiszMzAgMzIgMjEzMzMzMworMzI5IDMyIDIxNTQ2NjYKKzMzMyAzMiAyMTc2MDAwCiszNjcgMzIgMjE5NzMzMworMzYyIDMyIDIyMTg2NjYKKzMzNyAzMiAyMjQwMDAwCiszMzcgMzIgMjI2MTMzMworMzYwIDMyIDIyODI2NjYKKzMzMyAzMiAyMzA0MDAwCiszMTcgMzIgMjMyNTMzMworMzQ0IDMyIDIzNDY2NjYKKzMzNSAzMiAyMzY4MDAwCiszMzcgMzIgMjM4OTMzMworMzQ5IDMyIDI0MTA2NjYKKzMzNiAzMiAyNDMyMDAwCiszNDggMzIgMjQ1MzMzMworMzQ5IDMyIDI0NzQ2NjYKKzM0MiAzMiAyNDk2MDAwCiszNTkgMzIgMjUxNzMzMworMzQwIDMyIDI1Mzg2NjYKKzM0MCAzMiAyNTYwMDAwCiszNDggMzIgMjU4MTMzMworMzM0IDMyIDI2MDI2NjYKKzMyOCAzMiAyNjI0MDAwCiszNDEgMzIgMjY0NTMzMworMzM5IDMyIDI2NjY2NjYKKzMzNyAzMiAyNjg4MDAwCiszNTAgMzIgMjcwOTMzMworMzI2IDMyIDI3MzA2NjYKKzM2MCAzMiAyNzUyMDAwCiszNDQgMzIgMjc3MzMzMworMzQwIDMyIDI3OTQ2NjYKKzM0MyAzMiAyODE2MDAwCiszNjEgMzIgMjgzNzMzMworMzI5IDMyIDI4NTg2NjYKKzM0NSAzMiAyODgwMDAwCiszNDUgMzIgMjkwMTMzMworMzMwIDMyIDI5MjI2NjYKKzM0MiAzMiAyOTQ0MDAwCiszNDQgMzIgMjk2NTMzMworMzMwIDMyIDI5ODY2NjYKKzMyOSAzMiAzMDA4MDAwCiszMzUgMzIgMzAyOTMzMworMzY2IDMyIDMwNTA2NjYKKzMyOCAzMiAzMDcyMDAwCiszNDkgMzIgMzA5MzMzMworMzM5IDMyIDMxMTQ2NjYKKzM0MCAzMiAzMTM2MDAwCiszMzUgMzIgMzE1NzMzMworMzI3IDMyIDMxNzg2NjYKKzM0OCAzMiAzMjAwMDAwCiszMzkgMzIgMzIyMTMzMworMzM0IDMyIDMyNDI2NjYKKzM1MCAzMiAzMjY0MDAwCiszMjUgMzIgMzI4NTMzMworMzYxIDMyIDMzMDY2NjYKKzMzOCAzMiAzMzI4MDAwCiszNTAgMzIgMzM0OTMzMworMzUzIDMyIDMzNzA2NjYKKzMyNyAzMiAzMzkyMDAwCiszNDYgMzIgMzQxMzMzMworMzQ4IDMyIDM0MzQ2NjYKKzMzOSAzMiAzNDU2MDAwCiszNDIgMzIgMzQ3NzMzMworMzM0IDMyIDM0OTg2NjYKKzM1MCAzMiAzNTIwMDAwCiszNTQgMzIgMzU0MTMzMworMzYzIDMyIDM1NjI2NjYKKzMyMiAzMiAzNTg0MDAwCiszMzcgMzIgMzYwNTMzMworMzU1IDMyIDM2MjY2NjYKKzMyOSAzMiAzNjQ4MDAwCiszMjQgMzIgMzY2OTMzMworMzM4IDMyIDM2OTA2NjYKKzM1NiAzMiAzNzEyMDAwCiszMzAgMzIgMzczMzMzMworMzIxIDMyIDM3NTQ2NjYKKzMzNyAzMiAzNzc2MDAwCiszNDUgMzIgMzc5NzMzMworMzM1IDMyIDM4MTg2NjYKKzM0OCAzMiAzODQwMDAwCiszNDIgMzIgMzg2MTMzMworMzQ4IDMyIDM4ODI2NjYKKzMzNSAzMiAzOTA0MDAwCiszNDQgMzIgMzkyNTMzMworMzU3IDMyIDM5NDY2NjYKKzM2OCAzMiAzOTY4MDAwCiszMjQgMzIgMzk4OTMzMworMzQzIDMyIDQwMTA2NjYKKzM0MSAzMiA0MDMyMDAwCiszMjkgMzIgNDA1MzMzMworMzU2IDMyIDQwNzQ2NjYKKzMxNyAzMiA0MDk2MDAwCiszNTEgMzIgNDExNzMzMworMzQwIDMyIDQxMzg2NjYKKzM0MCAzMiA0MTYwMDAwCiszMzIgMzIgNDE4MTMzMworMzU1IDMyIDQyMDI2NjYKKzM1NyAzMiA0MjI0MDAwCiszMjcgMzIgNDI0NTMzMworMzM4IDMyIDQyNjY2NjYKKzMyMyAzMiA0Mjg4MDAwCiszNDYgMzIgNDMwOTMzMworMzUyIDMyIDQzMzA2NjYKKzM0NyAzMiA0MzUyMDAwCiszNDMgMzIgNDM3MzMzMworMzExIDMyIDQzOTQ2NjYKKzMzOCAzMiA0NDE2MDAwCiszNjUgMzIgNDQzNzMzMworMzQ5IDMyIDQ0NTg2NjYKKzMyNyAzMiA0NDgwMDAwCiszNTUgMzIgNDUwMTMzMworMzE5IDMyIDQ1MjI2NjYKKzM0OSAzMiA0NTQ0MDAwCiszNTEgMzIgNDU2NTMzMworMzM3IDMyIDQ1ODY2NjYKKzM0MCAzMiA0NjA4MDAwCiszNDkgMzIgNDYyOTMzMworMzE2IDMyIDQ2NTA2NjYKKzM0NCAzMiA0NjcyMDAwCiszMzQgMzIgNDY5MzMzMworMzQ0IDMyIDQ3MTQ2NjYKKzM0NyAzMiA0NzM2MDAwCiszNDggMzIgNDc1NzMzMworMzM0IDMyIDQ3Nzg2NjYKKzMzOCAzMiA0ODAwMDAwCiszMzEgMzIgNDgyMTMzMworMzQ0IDMyIDQ4NDI2NjYKKzM0MiAzMiA0ODY0MDAwCiszMzYgMzIgNDg4NTMzMworMzI2IDMyIDQ5MDY2NjYKKzM2NCAzMiA0OTI4MDAwCiszNTAgMzIgNDk0OTMzMworMzUwIDMyIDQ5NzA2NjYKKzM2MyAzMiA0OTkyMDAwCiszNTggMzIgNTAxMzMzMworMzA1IDMyIDUwMzQ2NjYKKzM0NCAzMiA1MDU2MDAwCiszNDYgMzIgNTA3NzMzMworMzQyIDMyIDUwOTg2NjYKKzMzMCAzMiA1MTIwMDAwCiszMTggMzIgNTE0MTMzMworMzYxIDMyIDUxNjI2NjYKKzM1NCAzMiA1MTg0MDAwCiszMTMgMzIgNTIwNTMzMworMzMwIDMyIDUyMjY2NjYKKzM1MCAzMiA1MjQ4MDAwCiszNDcgMzIgNTI2OTMzMworMzQ2IDMyIDUyOTA2NjYKKzM1NyAzMiA1MzEyMDAwCiszMjUgMzIgNTMzMzMzMworMzM1IDMyIDUzNTQ2NjYKKzMzMSAzMiA1Mzc2MDAwCiszNjYgMzIgNTM5NzMzMworMzI5IDMyIDU0MTg2NjYKKzM0OSAzMiA1NDQwMDAwCiszNzEgMzIgNTQ2MTMzMworMzI2IDMyIDU0ODI2NjYKKzMzMyAzMiA1NTA0MDAwCiszMTkgMzIgNTUyNTMzMworMzI3IDMyIDU1NDY2NjYKKzM1MyAzMiA1NTY4MDAwCiszNTYgMzIgNTU4OTMzMworMzQ4IDMyIDU2MTA2NjYKKzMzOCAzMiA1NjMyMDAwCiszMzEgMzIgNTY1MzMzMworMzQxIDMyIDU2NzQ2NjYKKzM2MiAzMiA1Njk2MDAwCiszMjYgMzIgNTcxNzMzMworMzU5IDMyIDU3Mzg2NjYKKzMxNSAzMiA1NzYwMDAwCiszNzYgMzIgNTc4MTMzMworMzQzIDMyIDU4MDI2NjYKKzM1NCAzMiA1ODI0MDAwCiszNTMgMzIgNTg0NTMzMworMzQ0IDMyIDU4NjY2NjYKKzMzNCAzMiA1ODg4MDAwCiszNDUgMzIgNTkwOTMzMworMzU1IDMyIDU5MzA2NjYKKzMyMiAzMiA1OTUyMDAwCiszMzQgMzIgNTk3MzMzMworMzUzIDMyIDU5OTQ2NjYKKzMzOCAzMiA2MDE2MDAwCiszNTEgMzIgNjAzNzMzMworMzM0IDMyIDYwNTg2NjYKKzMzOSAzMiA2MDgwMDAwCiszNDUgMzIgNjEwMTMzMworMzQ3IDMyIDYxMjI2NjYKKzM1NSAzMiA2MTQ0MDAwCiszMTIgMzIgNjE2NTMzMworMzUyIDMyIDYxODY2NjYKKzM1NCAzMiA2MjA4MDAwCiszMTggMzIgNjIyOTMzMworMzQ0IDMyIDYyNTA2NjYKKzM2MyAzMiA2MjcyMDAwCiszMjEgMzIgNjI5MzMzMworMzM5IDMyIDYzMTQ2NjYKKzM1NiAzMiA2MzM2MDAwCiszMzQgMzIgNjM1NzMzMworMzU0IDMyIDYzNzg2NjYKKzMyNSAzMiA2NDAwMDAwCiszMjEgMzIgNjQyMTMzMworMzQxIDMyIDY0NDI2NjYKKzMzNyAzMiA2NDY0MDAwCiszNTEgMzIgNjQ4NTMzMworMzQzIDMyIDY1MDY2NjYKKzM0MSAzMiA2NTI4MDAwCiszNDQgMzIgNjU0OTMzMworMzQxIDMyIDY1NzA2NjYKKzM2NCAzMiA2NTkyMDAwCiszMTkgMzIgNjYxMzMzMworMzQ4IDMyIDY2MzQ2NjYKKzMzMiAzMiA2NjU2MDAwCiszMzMgMzIgNjY3NzMzMworMzQzIDMyIDY2OTg2NjYKKzM0OCAzMiA2NzIwMDAwCiszNDcgMzIgNjc0MTMzMworMzUwIDMyIDY3NjI2NjYKKzM0MiAzMiA2Nzg0MDAwCiszNDEgMzIgNjgwNTMzMworMzI2IDMyIDY4MjY2NjYKKzM1MSAzMiA2ODQ4MDAwCiszMjkgMzIgNjg2OTMzMworMzIzIDMyIDY4OTA2NjYKKzM1MCAzMiA2OTEyMDAwCiszNjEgMzIgNjkzMzMzMworMzI2IDMyIDY5NTQ2NjYKKzM0NSAzMiA2OTc2MDAwCiszNDUgMzIgNjk5NzMzMworMzExIDMyIDcwMTg2NjYKKzM0OSAzMiA3MDQwMDAwCiszNTggMzIgNzA2MTMzMworMzUyIDMyIDcwODI2NjYKKzM0NyAzMiA3MTA0MDAwCiszNjQgMzIgNzEyNTMzMworMzI4IDMyIDcxNDY2NjYKKzMxOCAzMiA3MTY4MDAwCiszNTEgMzIgNzE4OTMzMworMzQwIDMyIDcyMTA2NjYKKzM0MSAzMiA3MjMyMDAwCiszNTUgMzIgNzI1MzMzMworMzM2IDMyIDcyNzQ2NjYKKzM1MiAzMiA3Mjk2MDAwCiszNDEgMzIgNzMxNzMzMworMzM0IDMyIDczMzg2NjYKKzM0OCAzMiA3MzYwMDAwCiszNDIgMzIgNzM4MTMzMworMzM1IDMyIDc0MDI2NjYKKzM0MiAzMiA3NDI0MDAwCiszNTkgMzIgNzQ0NTMzMworMzQ5IDMyIDc0NjY2NjYKKzMyOSAzMiA3NDg4MDAwCiszNTYgMzIgNzUwOTMzMworMjkyIDMyIDc1MzA2NjYKKzMxNiAzMiA3NTUyMDAwCiszMTggMzIgNzU3MzMzMworMzIwIDMyIDc1OTQ2NjYKKzM0MiAzMiA3NjE2MDAwCisyODUgMzIgNzYzNzMzMworMzI2IDMyIDc2NTg2NjYKKzM1MiAzMiA3NjgwMDAwCiszOTIgMzIgNzcwMTMzMworMzY0IDMyIDc3MjI2NjYKKzM4NCAzMiA3NzQ0MDAwCiszMzQgMzIgNzc2NTMzMworMzE3IDMyIDc3ODY2NjYKKzMyNiAzMiA3ODA4MDAwCiszNzMgMzIgNzgyOTMzMworMzU0IDMyIDc4NTA2NjYKKzMyOSAzMiA3ODcyMDAwCiszNDcgMzIgNzg5MzMzMworMzUzIDMyIDc5MTQ2NjYKKzMzOCAzMiA3OTM2MDAwCiszMTcgMzIgNzk1NzMzMworMzU0IDMyIDc5Nzg2NjYKKzM0NSAzMiA4MDAwMDAwCiszNTAgMzIgODAyMTMzMworMzUxIDMyIDgwNDI2NjYKKzMzMiAzMiA4MDY0MDAwCiszNTggMzIgODA4NTMzMworMzE1IDMyIDgxMDY2NjYKKzMzNiAzMiA4MTI4MDAwCiszNTggMzIgODE0OTMzMworMzQzIDMyIDgxNzA2NjYKKzMxOSAzMiA4MTkyMDAwCiszNzAgMzIgODIxMzMzMworMzQ0IDMyIDgyMzQ2NjYKKzM2MSAzMiA4MjU2MDAwCiszNDMgMzIgODI3NzMzMworMzM3IDMyIDgyOTg2NjYKKzM1NCAzMiA4MzIwMDAwCiszMzIgMzIgODM0MTMzMworMzQ4IDMyIDgzNjI2NjYKKzMyOCAzMiA4Mzg0MDAwCiszNDUgMzIgODQwNTMzMworMzQwIDMyIDg0MjY2NjYKKzM0NiAzMiA4NDQ4MDAwCiszNDEgMzIgODQ2OTMzMworMzQ0IDMyIDg0OTA2NjYKKzM0MiAzMiA4NTEyMDAwCiszNDEgMzIgODUzMzMzMworMzQ1IDMyIDg1NTQ2NjYKKzMzNyAzMiA4NTc2MDAwCiszMzUgMzIgODU5NzMzMworMzM1IDMyIDg2MTg2NjYKKzM0MCAzMiA4NjQwMDAwCiszNDUgMzIgODY2MTMzMworMzQxIDMyIDg2ODI2NjYKKzM0MiAzMiA4NzA0MDAwCiszMzggMzIgODcyNTMzMworMzQzIDMyIDg3NDY2NjYKKzMzNiAzMiA4NzY4MDAwCiszMzggMzIgODc4OTMzMworMzUzIDMyIDg4MTA2NjYKKzMzOSAzMiA4ODMyMDAwCiszMjkgMzIgODg1MzMzMworMzQ5IDMyIDg4NzQ2NjYKKzMyMyAzMiA4ODk2MDAwCiszNTEgMzIgODkxNzMzMworMzU5IDMyIDg5Mzg2NjYKKzM1NyAzMiA4OTYwMDAwCiszNDEgMzIgODk4MTMzMworMzMzIDMyIDkwMDI2NjYKKzMzNSAzMiA5MDI0MDAwCiszMjggMzIgOTA0NTMzMworMzQ3IDMyIDkwNjY2NjYKKzM0MyAzMiA5MDg4MDAwCiszNjkgMzIgOTEwOTMzMworMzMxIDMyIDkxMzA2NjYKKzM0NCAzMiA5MTUyMDAwCiszMzAgMzIgOTE3MzMzMworMzQ2IDMyIDkxOTQ2NjYKKzMzNyAzMiA5MjE2MDAwCiszNDEgMzIgOTIzNzMzMworMzM4IDMyIDkyNTg2NjYKKzMyOSAzMiA5MjgwMDAwCiszNjAgMzIgOTMwMTMzMworMzM2IDMyIDkzMjI2NjYKKzM0MSAzMiA5MzQ0MDAwCiszNDEgMzIgOTM2NTMzMworMzQ1IDMyIDkzODY2NjYKKzM1MSAzMiA5NDA4MDAwCiszNDkgMzIgOTQyOTMzMworMzM2IDMyIDk0NTA2NjYKKzMyNiAzMiA5NDcyMDAwCiszNDkgMzIgOTQ5MzMzMworMzQzIDMyIDk1MTQ2NjYKKzM1NyAzMiA5NTM2MDAwCiszNDIgMzIgOTU1NzMzMworMzI1IDMyIDk1Nzg2NjYKKzM0NiAzMiA5NjAwMDAwCiszMjYgMzIgOTYyMTMzMworNDAyIDMyIDk2NDI2NjYKKzMzMSAzMiA5NjY0MDAwCiszMzkgMzIgOTY4NTMzMworMzcxIDMyIDk3MDY2NjYKKzMxNCAzMiA5NzI4MDAwCiszMTAgMzIgOTc0OTMzMworMzY0IDMyIDk3NzA2NjYKKzMzOCAzMiA5NzkyMDAwCiszMzkgMzIgOTgxMzMzMworMzM3IDMyIDk4MzQ2NjYKKzM1NSAzMiA5ODU2MDAwCiszNTEgMzIgOTg3NzMzMworMzMyIDMyIDk4OTg2NjYKKzMxNiAzMiA5OTIwMDAwCis0NzQgMzIgOTk0MTMzMwpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouYW1yd2IgYi9tZWRpYS9yZXMvYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5hbXJ3YgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDgyNTkzCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouYW1yd2IKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouaW5mbyBiL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzFjZmZlZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8KQEAgLTAsMCArMSw0OTQgQEAKKzQxIDMyIDAKKzQxIDMyIDIwMDAwCis0MSAzMiA0MDAwMAorNDEgMzIgNjAwMDAKKzQxIDMyIDgwMDAwCis0MSAzMiAxMDAwMDAKKzQxIDMyIDEyMDAwMAorNDEgMzIgMTQwMDAwCis0MSAzMiAxNjAwMDAKKzQxIDMyIDE4MDAwMAorNDEgMzIgMjAwMDAwCis0MSAzMiAyMjAwMDAKKzQxIDMyIDI0MDAwMAorNDEgMzIgMjYwMDAwCis0MSAzMiAyODAwMDAKKzQxIDMyIDMwMDAwMAorNDEgMzIgMzIwMDAwCis0MSAzMiAzNDAwMDAKKzQxIDMyIDM2MDAwMAorNDEgMzIgMzgwMDAwCis0MSAzMiA0MDAwMDAKKzQxIDMyIDQyMDAwMAorNDEgMzIgNDQwMDAwCis0MSAzMiA0NjAwMDAKKzQxIDMyIDQ4MDAwMAorNDEgMzIgNTAwMDAwCis0MSAzMiA1MjAwMDAKKzQxIDMyIDU0MDAwMAorNDEgMzIgNTYwMDAwCis0MSAzMiA1ODAwMDAKKzQxIDMyIDYwMDAwMAorNDEgMzIgNjIwMDAwCis0MSAzMiA2NDAwMDAKKzQxIDMyIDY2MDAwMAorNDEgMzIgNjgwMDAwCis0MSAzMiA3MDAwMDAKKzQxIDMyIDcyMDAwMAorNDEgMzIgNzQwMDAwCis0MSAzMiA3NjAwMDAKKzQxIDMyIDc4MDAwMAorNDEgMzIgODAwMDAwCis0MSAzMiA4MjAwMDAKKzQxIDMyIDg0MDAwMAorNDEgMzIgODYwMDAwCis0MSAzMiA4ODAwMDAKKzQxIDMyIDkwMDAwMAorNDEgMzIgOTIwMDAwCis0MSAzMiA5NDAwMDAKKzQxIDMyIDk2MDAwMAorNDEgMzIgOTgwMDAwCis0MSAzMiAxMDAwMDAwCis0MSAzMiAxMDIwMDAwCis0MSAzMiAxMDQwMDAwCis0MSAzMiAxMDYwMDAwCis0MSAzMiAxMDgwMDAwCis0MSAzMiAxMTAwMDAwCis0MSAzMiAxMTIwMDAwCis0MSAzMiAxMTQwMDAwCis0MSAzMiAxMTYwMDAwCis0MSAzMiAxMTgwMDAwCis0MSAzMiAxMjAwMDAwCis0MSAzMiAxMjIwMDAwCis0MSAzMiAxMjQwMDAwCis0MSAzMiAxMjYwMDAwCis0MSAzMiAxMjgwMDAwCis0MSAzMiAxMzAwMDAwCis0MSAzMiAxMzIwMDAwCis0MSAzMiAxMzQwMDAwCis0MSAzMiAxMzYwMDAwCis0MSAzMiAxMzgwMDAwCis0MSAzMiAxNDAwMDAwCis0MSAzMiAxNDIwMDAwCis0MSAzMiAxNDQwMDAwCis0MSAzMiAxNDYwMDAwCis0MSAzMiAxNDgwMDAwCis0MSAzMiAxNTAwMDAwCis0MSAzMiAxNTIwMDAwCis0MSAzMiAxNTQwMDAwCis0MSAzMiAxNTYwMDAwCis0MSAzMiAxNTgwMDAwCis0MSAzMiAxNjAwMDAwCis0MSAzMiAxNjIwMDAwCis0MSAzMiAxNjQwMDAwCis0MSAzMiAxNjYwMDAwCis0MSAzMiAxNjgwMDAwCis0MSAzMiAxNzAwMDAwCis0MSAzMiAxNzIwMDAwCis0MSAzMiAxNzQwMDAwCis0MSAzMiAxNzYwMDAwCis0MSAzMiAxNzgwMDAwCis0MSAzMiAxODAwMDAwCis0MSAzMiAxODIwMDAwCis0MSAzMiAxODQwMDAwCis0MSAzMiAxODYwMDAwCis0MSAzMiAxODgwMDAwCis0MSAzMiAxOTAwMDAwCis0MSAzMiAxOTIwMDAwCis0MSAzMiAxOTQwMDAwCis0MSAzMiAxOTYwMDAwCis0MSAzMiAxOTgwMDAwCis0MSAzMiAyMDAwMDAwCis0MSAzMiAyMDIwMDAwCis0MSAzMiAyMDQwMDAwCis0MSAzMiAyMDYwMDAwCis0MSAzMiAyMDgwMDAwCis0MSAzMiAyMTAwMDAwCis0MSAzMiAyMTIwMDAwCis0MSAzMiAyMTQwMDAwCis0MSAzMiAyMTYwMDAwCis0MSAzMiAyMTgwMDAwCis0MSAzMiAyMjAwMDAwCis0MSAzMiAyMjIwMDAwCis0MSAzMiAyMjQwMDAwCis0MSAzMiAyMjYwMDAwCis0MSAzMiAyMjgwMDAwCis0MSAzMiAyMzAwMDAwCis0MSAzMiAyMzIwMDAwCis0MSAzMiAyMzQwMDAwCis0MSAzMiAyMzYwMDAwCis0MSAzMiAyMzgwMDAwCis0MSAzMiAyNDAwMDAwCis0MSAzMiAyNDIwMDAwCis0MSAzMiAyNDQwMDAwCis0MSAzMiAyNDYwMDAwCis0MSAzMiAyNDgwMDAwCis0MSAzMiAyNTAwMDAwCis0MSAzMiAyNTIwMDAwCis0MSAzMiAyNTQwMDAwCis0MSAzMiAyNTYwMDAwCis0MSAzMiAyNTgwMDAwCis0MSAzMiAyNjAwMDAwCis0MSAzMiAyNjIwMDAwCis0MSAzMiAyNjQwMDAwCis0MSAzMiAyNjYwMDAwCis0MSAzMiAyNjgwMDAwCis0MSAzMiAyNzAwMDAwCis0MSAzMiAyNzIwMDAwCis0MSAzMiAyNzQwMDAwCis0MSAzMiAyNzYwMDAwCis0MSAzMiAyNzgwMDAwCis0MSAzMiAyODAwMDAwCis0MSAzMiAyODIwMDAwCis0MSAzMiAyODQwMDAwCis0MSAzMiAyODYwMDAwCis0MSAzMiAyODgwMDAwCis0MSAzMiAyOTAwMDAwCis0MSAzMiAyOTIwMDAwCis0MSAzMiAyOTQwMDAwCis0MSAzMiAyOTYwMDAwCis0MSAzMiAyOTgwMDAwCis0MSAzMiAzMDAwMDAwCis0MSAzMiAzMDIwMDAwCis0MSAzMiAzMDQwMDAwCis0MSAzMiAzMDYwMDAwCis0MSAzMiAzMDgwMDAwCis0MSAzMiAzMTAwMDAwCis0MSAzMiAzMTIwMDAwCis0MSAzMiAzMTQwMDAwCis0MSAzMiAzMTYwMDAwCis0MSAzMiAzMTgwMDAwCis0MSAzMiAzMjAwMDAwCis0MSAzMiAzMjIwMDAwCis0MSAzMiAzMjQwMDAwCis0MSAzMiAzMjYwMDAwCis0MSAzMiAzMjgwMDAwCis0MSAzMiAzMzAwMDAwCis0MSAzMiAzMzIwMDAwCis0MSAzMiAzMzQwMDAwCis0MSAzMiAzMzYwMDAwCis0MSAzMiAzMzgwMDAwCis0MSAzMiAzNDAwMDAwCis0MSAzMiAzNDIwMDAwCis0MSAzMiAzNDQwMDAwCis0MSAzMiAzNDYwMDAwCis0MSAzMiAzNDgwMDAwCis0MSAzMiAzNTAwMDAwCis0MSAzMiAzNTIwMDAwCis0MSAzMiAzNTQwMDAwCis0MSAzMiAzNTYwMDAwCis0MSAzMiAzNTgwMDAwCis0MSAzMiAzNjAwMDAwCis0MSAzMiAzNjIwMDAwCis0MSAzMiAzNjQwMDAwCis0MSAzMiAzNjYwMDAwCis0MSAzMiAzNjgwMDAwCis0MSAzMiAzNzAwMDAwCis0MSAzMiAzNzIwMDAwCis0MSAzMiAzNzQwMDAwCis0MSAzMiAzNzYwMDAwCis0MSAzMiAzNzgwMDAwCis0MSAzMiAzODAwMDAwCis0MSAzMiAzODIwMDAwCis0MSAzMiAzODQwMDAwCis0MSAzMiAzODYwMDAwCis0MSAzMiAzODgwMDAwCis0MSAzMiAzOTAwMDAwCis0MSAzMiAzOTIwMDAwCis0MSAzMiAzOTQwMDAwCis0MSAzMiAzOTYwMDAwCis0MSAzMiAzOTgwMDAwCis0MSAzMiA0MDAwMDAwCis0MSAzMiA0MDIwMDAwCis0MSAzMiA0MDQwMDAwCis0MSAzMiA0MDYwMDAwCis0MSAzMiA0MDgwMDAwCis0MSAzMiA0MTAwMDAwCis0MSAzMiA0MTIwMDAwCis0MSAzMiA0MTQwMDAwCis0MSAzMiA0MTYwMDAwCis0MSAzMiA0MTgwMDAwCis0MSAzMiA0MjAwMDAwCis0MSAzMiA0MjIwMDAwCis0MSAzMiA0MjQwMDAwCis0MSAzMiA0MjYwMDAwCis0MSAzMiA0MjgwMDAwCis0MSAzMiA0MzAwMDAwCis0MSAzMiA0MzIwMDAwCis0MSAzMiA0MzQwMDAwCis0MSAzMiA0MzYwMDAwCis0MSAzMiA0MzgwMDAwCis0MSAzMiA0NDAwMDAwCis0MSAzMiA0NDIwMDAwCis0MSAzMiA0NDQwMDAwCis0MSAzMiA0NDYwMDAwCis0MSAzMiA0NDgwMDAwCis0MSAzMiA0NTAwMDAwCis0MSAzMiA0NTIwMDAwCis0MSAzMiA0NTQwMDAwCis0MSAzMiA0NTYwMDAwCis0MSAzMiA0NTgwMDAwCis0MSAzMiA0NjAwMDAwCis0MSAzMiA0NjIwMDAwCis0MSAzMiA0NjQwMDAwCis0MSAzMiA0NjYwMDAwCis0MSAzMiA0NjgwMDAwCis0MSAzMiA0NzAwMDAwCis0MSAzMiA0NzIwMDAwCis0MSAzMiA0NzQwMDAwCis0MSAzMiA0NzYwMDAwCis0MSAzMiA0NzgwMDAwCis0MSAzMiA0ODAwMDAwCis0MSAzMiA0ODIwMDAwCis0MSAzMiA0ODQwMDAwCis0MSAzMiA0ODYwMDAwCis0MSAzMiA0ODgwMDAwCis0MSAzMiA0OTAwMDAwCis0MSAzMiA0OTIwMDAwCis0MSAzMiA0OTQwMDAwCis0MSAzMiA0OTYwMDAwCis0MSAzMiA0OTgwMDAwCis0MSAzMiA1MDAwMDAwCis0MSAzMiA1MDIwMDAwCis0MSAzMiA1MDQwMDAwCis0MSAzMiA1MDYwMDAwCis0MSAzMiA1MDgwMDAwCis0MSAzMiA1MTAwMDAwCis0MSAzMiA1MTIwMDAwCis0MSAzMiA1MTQwMDAwCis0MSAzMiA1MTYwMDAwCis0MSAzMiA1MTgwMDAwCis0MSAzMiA1MjAwMDAwCis0MSAzMiA1MjIwMDAwCis0MSAzMiA1MjQwMDAwCis0MSAzMiA1MjYwMDAwCis0MSAzMiA1MjgwMDAwCis0MSAzMiA1MzAwMDAwCis0MSAzMiA1MzIwMDAwCis0MSAzMiA1MzQwMDAwCis0MSAzMiA1MzYwMDAwCis0MSAzMiA1MzgwMDAwCis0MSAzMiA1NDAwMDAwCis0MSAzMiA1NDIwMDAwCis0MSAzMiA1NDQwMDAwCis0MSAzMiA1NDYwMDAwCis0MSAzMiA1NDgwMDAwCis0MSAzMiA1NTAwMDAwCis0MSAzMiA1NTIwMDAwCis0MSAzMiA1NTQwMDAwCis0MSAzMiA1NTYwMDAwCis0MSAzMiA1NTgwMDAwCis0MSAzMiA1NjAwMDAwCis0MSAzMiA1NjIwMDAwCis0MSAzMiA1NjQwMDAwCis0MSAzMiA1NjYwMDAwCis0MSAzMiA1NjgwMDAwCis0MSAzMiA1NzAwMDAwCis0MSAzMiA1NzIwMDAwCis0MSAzMiA1NzQwMDAwCis0MSAzMiA1NzYwMDAwCis0MSAzMiA1NzgwMDAwCis0MSAzMiA1ODAwMDAwCis0MSAzMiA1ODIwMDAwCis0MSAzMiA1ODQwMDAwCis0MSAzMiA1ODYwMDAwCis0MSAzMiA1ODgwMDAwCis0MSAzMiA1OTAwMDAwCis0MSAzMiA1OTIwMDAwCis0MSAzMiA1OTQwMDAwCis0MSAzMiA1OTYwMDAwCis0MSAzMiA1OTgwMDAwCis0MSAzMiA2MDAwMDAwCis0MSAzMiA2MDIwMDAwCis0MSAzMiA2MDQwMDAwCis0MSAzMiA2MDYwMDAwCis0MSAzMiA2MDgwMDAwCis0MSAzMiA2MTAwMDAwCis0MSAzMiA2MTIwMDAwCis0MSAzMiA2MTQwMDAwCis0MSAzMiA2MTYwMDAwCis0MSAzMiA2MTgwMDAwCis0MSAzMiA2MjAwMDAwCis0MSAzMiA2MjIwMDAwCis0MSAzMiA2MjQwMDAwCis0MSAzMiA2MjYwMDAwCis0MSAzMiA2MjgwMDAwCis0MSAzMiA2MzAwMDAwCis0MSAzMiA2MzIwMDAwCis0MSAzMiA2MzQwMDAwCis0MSAzMiA2MzYwMDAwCis0MSAzMiA2MzgwMDAwCis0MSAzMiA2NDAwMDAwCis0MSAzMiA2NDIwMDAwCis0MSAzMiA2NDQwMDAwCis0MSAzMiA2NDYwMDAwCis0MSAzMiA2NDgwMDAwCis0MSAzMiA2NTAwMDAwCis0MSAzMiA2NTIwMDAwCis0MSAzMiA2NTQwMDAwCis0MSAzMiA2NTYwMDAwCis0MSAzMiA2NTgwMDAwCis0MSAzMiA2NjAwMDAwCis0MSAzMiA2NjIwMDAwCis0MSAzMiA2NjQwMDAwCis0MSAzMiA2NjYwMDAwCis0MSAzMiA2NjgwMDAwCis0MSAzMiA2NzAwMDAwCis0MSAzMiA2NzIwMDAwCis0MSAzMiA2NzQwMDAwCis0MSAzMiA2NzYwMDAwCis0MSAzMiA2NzgwMDAwCis0MSAzMiA2ODAwMDAwCis0MSAzMiA2ODIwMDAwCis0MSAzMiA2ODQwMDAwCis0MSAzMiA2ODYwMDAwCis0MSAzMiA2ODgwMDAwCis0MSAzMiA2OTAwMDAwCis0MSAzMiA2OTIwMDAwCis0MSAzMiA2OTQwMDAwCis0MSAzMiA2OTYwMDAwCis0MSAzMiA2OTgwMDAwCis0MSAzMiA3MDAwMDAwCis0MSAzMiA3MDIwMDAwCis0MSAzMiA3MDQwMDAwCis0MSAzMiA3MDYwMDAwCis0MSAzMiA3MDgwMDAwCis0MSAzMiA3MTAwMDAwCis0MSAzMiA3MTIwMDAwCis0MSAzMiA3MTQwMDAwCis0MSAzMiA3MTYwMDAwCis0MSAzMiA3MTgwMDAwCis0MSAzMiA3MjAwMDAwCis0MSAzMiA3MjIwMDAwCis0MSAzMiA3MjQwMDAwCis0MSAzMiA3MjYwMDAwCis0MSAzMiA3MjgwMDAwCis0MSAzMiA3MzAwMDAwCis0MSAzMiA3MzIwMDAwCis0MSAzMiA3MzQwMDAwCis0MSAzMiA3MzYwMDAwCis0MSAzMiA3MzgwMDAwCis0MSAzMiA3NDAwMDAwCis0MSAzMiA3NDIwMDAwCis0MSAzMiA3NDQwMDAwCis0MSAzMiA3NDYwMDAwCis0MSAzMiA3NDgwMDAwCis0MSAzMiA3NTAwMDAwCis0MSAzMiA3NTIwMDAwCis0MSAzMiA3NTQwMDAwCis0MSAzMiA3NTYwMDAwCis0MSAzMiA3NTgwMDAwCis0MSAzMiA3NjAwMDAwCis0MSAzMiA3NjIwMDAwCis0MSAzMiA3NjQwMDAwCis0MSAzMiA3NjYwMDAwCis0MSAzMiA3NjgwMDAwCis0MSAzMiA3NzAwMDAwCis0MSAzMiA3NzIwMDAwCis0MSAzMiA3NzQwMDAwCis0MSAzMiA3NzYwMDAwCis0MSAzMiA3NzgwMDAwCis0MSAzMiA3ODAwMDAwCis0MSAzMiA3ODIwMDAwCis0MSAzMiA3ODQwMDAwCis0MSAzMiA3ODYwMDAwCis0MSAzMiA3ODgwMDAwCis0MSAzMiA3OTAwMDAwCis0MSAzMiA3OTIwMDAwCis0MSAzMiA3OTQwMDAwCis0MSAzMiA3OTYwMDAwCis0MSAzMiA3OTgwMDAwCis0MSAzMiA4MDAwMDAwCis0MSAzMiA4MDIwMDAwCis0MSAzMiA4MDQwMDAwCis0MSAzMiA4MDYwMDAwCis0MSAzMiA4MDgwMDAwCis0MSAzMiA4MTAwMDAwCis0MSAzMiA4MTIwMDAwCis0MSAzMiA4MTQwMDAwCis0MSAzMiA4MTYwMDAwCis0MSAzMiA4MTgwMDAwCis0MSAzMiA4MjAwMDAwCis0MSAzMiA4MjIwMDAwCis0MSAzMiA4MjQwMDAwCis0MSAzMiA4MjYwMDAwCis0MSAzMiA4MjgwMDAwCis0MSAzMiA4MzAwMDAwCis0MSAzMiA4MzIwMDAwCis0MSAzMiA4MzQwMDAwCis0MSAzMiA4MzYwMDAwCis0MSAzMiA4MzgwMDAwCis0MSAzMiA4NDAwMDAwCis0MSAzMiA4NDIwMDAwCis0MSAzMiA4NDQwMDAwCis0MSAzMiA4NDYwMDAwCis0MSAzMiA4NDgwMDAwCis0MSAzMiA4NTAwMDAwCis0MSAzMiA4NTIwMDAwCis0MSAzMiA4NTQwMDAwCis0MSAzMiA4NTYwMDAwCis0MSAzMiA4NTgwMDAwCis0MSAzMiA4NjAwMDAwCis0MSAzMiA4NjIwMDAwCis0MSAzMiA4NjQwMDAwCis0MSAzMiA4NjYwMDAwCis0MSAzMiA4NjgwMDAwCis0MSAzMiA4NzAwMDAwCis0MSAzMiA4NzIwMDAwCis0MSAzMiA4NzQwMDAwCis0MSAzMiA4NzYwMDAwCis0MSAzMiA4NzgwMDAwCis0MSAzMiA4ODAwMDAwCis0MSAzMiA4ODIwMDAwCis0MSAzMiA4ODQwMDAwCis0MSAzMiA4ODYwMDAwCis0MSAzMiA4ODgwMDAwCis0MSAzMiA4OTAwMDAwCis0MSAzMiA4OTIwMDAwCis0MSAzMiA4OTQwMDAwCis0MSAzMiA4OTYwMDAwCis0MSAzMiA4OTgwMDAwCis0MSAzMiA5MDAwMDAwCis0MSAzMiA5MDIwMDAwCis0MSAzMiA5MDQwMDAwCis0MSAzMiA5MDYwMDAwCis0MSAzMiA5MDgwMDAwCis0MSAzMiA5MTAwMDAwCis0MSAzMiA5MTIwMDAwCis0MSAzMiA5MTQwMDAwCis0MSAzMiA5MTYwMDAwCis0MSAzMiA5MTgwMDAwCis0MSAzMiA5MjAwMDAwCis0MSAzMiA5MjIwMDAwCis0MSAzMiA5MjQwMDAwCis0MSAzMiA5MjYwMDAwCis0MSAzMiA5MjgwMDAwCis0MSAzMiA5MzAwMDAwCis0MSAzMiA5MzIwMDAwCis0MSAzMiA5MzQwMDAwCis0MSAzMiA5MzYwMDAwCis0MSAzMiA5MzgwMDAwCis0MSAzMiA5NDAwMDAwCis0MSAzMiA5NDIwMDAwCis0MSAzMiA5NDQwMDAwCis0MSAzMiA5NDYwMDAwCis0MSAzMiA5NDgwMDAwCis0MSAzMiA5NTAwMDAwCis0MSAzMiA5NTIwMDAwCis0MSAzMiA5NTQwMDAwCis0MSAzMiA5NTYwMDAwCis0MSAzMiA5NTgwMDAwCis0MSAzMiA5NjAwMDAwCis0MSAzMiA5NjIwMDAwCis0MSAzMiA5NjQwMDAwCis0MSAzMiA5NjYwMDAwCis0MSAzMiA5NjgwMDAwCis0MSAzMiA5NzAwMDAwCis0MSAzMiA5NzIwMDAwCis0MSAzMiA5NzQwMDAwCis0MSAzMiA5NzYwMDAwCis0MSAzMiA5NzgwMDAwCis0MSAzMiA5ODAwMDAwCis0MSAzMiA5ODIwMDAwCis0MSAzMiA5ODQwMDAwCis0MSAzMiA5ODYwMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaDI2NCBiL21lZGlhL3Jlcy9iYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5oMjY0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiOGY5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaDI2NApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYWY5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaW5mbwpAQCAtMCwwICsxLDI0MiBAQAorMzEgMTI4IDAKKzggMTI4IDAKKzQ4MTcwMiAzMiAwCisxMzc4OTUgMCAzMzMzMworODE4NjMgMCAxMDAwMDAKKzk4OTE0IDAgMTMzMzMzCis2ODU1IDAgMTY2NjY2CisyNzM4IDAgMjAwMDAwCisxMzQwIDAgMjY2NjY2CisxNjgwIDAgMzAwMDAwCisyMjE3IDAgMzMzMzMzCiszMjc1IDAgMzY2NjY2CiszNTA5IDAgNDMzMzMzCis0Njg4IDAgNDY2NjY2Cis0OTk2IDAgNTAwMDAwCis2MDU3IDAgNTMzMzMzCis3MDYxIDAgNjAwMDAwCis3NDI3IDAgNjMzMzMzCis3NDg0IDAgNjY2NjY2Cis4MzYxIDAgNzAwMDAwCis3ODAzIDAgNzY2NjY2Cis4NTA2IDAgODAwMDAwCis4MTMyIDAgODMzMzMzCis4NjUxIDAgODY2NjY2Cis4NDI0IDAgOTMzMzMzCis4ODYxIDAgOTY2NjY2Cis5MDA0IDAgMTAwMDAwMAorOTQzMSAwIDEwMzMzMzMKKzg4NTQgMCAxMTAwMDAwCis5NjgxIDAgMTEzMzMzMworOTQ5OCAwIDExNjY2NjYKKzk2OTQgMCAxMjAwMDAwCisxNzU3MSAwIDEyNjY2NjYKKzEwMDI5IDAgMTMwMDAwMAorMTAwMjIgMCAxMzMzMzMzCis5OTM5IDAgMTM2NjY2NgorODQyNyAwIDE0MzMzMzMKKzk1MjIgMCAxNDY2NjY2Cis3MTkyIDAgMTUwMDAwMAorOTg0NCAwIDE1MzMzMzMKKzU2OTMgMCAxNjAwMDAwCis4MDU3IDAgMTYzMzMzMworNTk5NyAwIDE2NjY2NjYKKzQwMjggMCAxNzAwMDAwCisyMzAzIDAgMTc2NjY2NgorODQ1IDAgMTgwMDAwMAorMTkxNDE0IDMyIDE4MzMzMzMKKzEzMjY2IDAgMTg2NjY2NgorMTYxMjAgMCAxOTMzMzMzCisxOTc1MSAwIDE5NjY2NjYKKzY1NTkgMCAyMDAwMDAwCis4MDk4IDAgMjAzMzMzMworODU5NiAwIDIxMDAwMDAKKzkzMzEgMCAyMTMzMzMzCis5OTA4IDAgMjE2NjY2NgorMTM4NDMgMCAyMjAwMDAwCisxMzc3NiAwIDIyNjY2NjYKKzE0NTU2IDAgMjMwMDAwMAorMTQ1MjQgMCAyMzMzMzMzCisxNTA4OSAwIDIzNjY2NjYKKzE0NjY2IDAgMjQzMzMzMworMTU1NTIgMCAyNDY2NjY2CisxNTAyMCAwIDI1MDAwMDAKKzE2NTA2IDAgMjUzMzMzMworMTU2NjQgMCAyNjAwMDAwCisxNjQ5OSAwIDI2MzMzMzMKKzE2MTEzIDAgMjY2NjY2NgorMTY5MjQgMCAyNzAwMDAwCisxNTk0OCAwIDI3NjY2NjYKKzE3MjE5IDAgMjgwMDAwMAorMTY0NDggMCAyODMzMzMzCisxNzcyOSAwIDI4NjY2NjYKKzE2ODg0IDAgMjkzMzMzMworMTc5NDEgMCAyOTY2NjY2CisxNzIxNSAwIDMwMDAwMDAKKzE4MTU5IDAgMzAzMzMzMworMTc0MjQgMCAzMTAwMDAwCisxODQ3OSAwIDMxMzMzMzMKKzE3MjU1IDAgMzE2NjY2NgorMTg0NjMgMCAzMjAwMDAwCisxODcyMyAwIDMyNjY2NjYKKzE5MjkxIDAgMzMwMDAwMAorMTgyOTcgMCAzMzMzMzMzCisxOTYzMyAwIDMzNjY2NjYKKzE4NzE5IDAgMzQzMzMzMworMjAzMjMgMCAzNDY2NjY2CisxNzAzNSAwIDM1MDAwMDAKKzE5MDcxIDAgMzUzMzMzMworMTc5MjEgMCAzNjAwMDAwCisxOTE5OCAwIDM2MzMzMzMKKzE4NzIzIDAgMzY2NjY2NgorMTkwMzYgMCAzNzAwMDAwCisxODczNSAwIDM3NjY2NjYKKzE5NjEzIDAgMzgwMDAwMAorMTg1MzcgMCAzODMzMzMzCisyMDg2OCAwIDM4NjY2NjYKKzE2NzMxIDAgMzkzMzMzMworMTkzODAgMCAzOTY2NjY2CisxODQwOSAwIDQwMDAwMDAKKzE5NTgwIDAgNDAzMzMzMworMTg0NjUgMCA0MTAwMDAwCisyMDEwNCAwIDQxMzMzMzMKKzE2NzgzIDAgNDE2NjY2NgorMTkzNDEgMCA0MjAwMDAwCisxODY3NCAwIDQyNjY2NjYKKzE5OTgzIDAgNDMwMDAwMAorMTkxNTQgMCA0MzMzMzMzCisxOTc1MCAwIDQzNjY2NjYKKzE5NDgzIDAgNDQzMzMzMworMjEyMDYgMCA0NDY2NjY2CisxNzYwOCAwIDQ1MDAwMDAKKzIwMjIwIDAgNDUzMzMzMworMTg5MTggMCA0NjAwMDAwCisxOTQ5NCAwIDQ2MzMzMzMKKzE5MDcyIDAgNDY2NjY2NgorMTk3ODYgMCA0NzAwMDAwCisxODU0MCAwIDQ3NjY2NjYKKzE5NjM4IDAgNDgwMDAwMAorMTg2NTYgMCA0ODMzMzMzCisxOTQ1MyAwIDQ4NjY2NjYKKzE5NjczIDAgNDkzMzMzMworMTc2MTYgMCA0OTY2NjY2CisxODMxNyAwIDUwMDAwMDAKKzE4NzQ5IDAgNTAzMzMzMworMTgxOTMgMCA1MTAwMDAwCisxODczMiAwIDUxMzMzMzMKKzE4MTg2IDAgNTE2NjY2NgorMTgyNzEgMCA1MjAwMDAwCisxODI1NiAwIDUyNjY2NjYKKzE2ODA2IDAgNTMwMDAwMAorMTcxMTkgMCA1MzMzMzMzCisxNjQ2NiAwIDUzNjY2NjYKKzE1MzE1IDAgNTQzMzMzMworMTQ4NzcgMCA1NDY2NjY2CisxMzIzNSAwIDU1MDAwMDAKKzEzMDI1IDAgNTUzMzMzMworMTAzMDUgMCA1NjAwMDAwCisxMDEyMCAwIDU2MzMzMzMKKzc3MDYgMCA1NjY2NjY2CisxMTI2OTggMzIgNTcwMDAwMAorMTU0NCAwIDU3NjY2NjYKKzEyODUgMCA1ODAwMDAwCisxNTc2IDAgNTgzMzMzMworMTcxNCAwIDU4NjY2NjYKKzEzODQgMCA1OTMzMzMzCisxNTUxIDAgNTk2NjY2NgorMzkxNiAwIDYwMDAwMDAKKzgwMTkgMCA2MDMzMzMzCis4MzA0IDAgNjEwMDAwMAorODQxNiAwIDYxMzMzMzMKKzgwODYgMCA2MTY2NjY2Cis4NDUyIDAgNjIwMDAwMAorOTIwNSAwIDYyNjY2NjYKKzExMDk4IDAgNjMwMDAwMAorMTk4MDUgMCA2MzMzMzMzCisxODI5MiAwIDYzNjY2NjYKKzE0OTc0IDAgNjQzMzMzMworMTA0MjUgMCA2NDY2NjY2Cis5OTk3IDAgNjUwMDAwMAorODgzMiAwIDY1MzMzMzMKKzc5MDkgMCA2NjAwMDAwCis2NDAwIDAgNjYzMzMzMworNTkzOSAwIDY2NjY2NjYKKzU5NjUgMCA2NzAwMDAwCis2MjIxIDAgNjc2NjY2NgorNjUyMiAwIDY4MDAwMDAKKzcwNjIgMCA2ODMzMzMzCis2ODc3IDAgNjg2NjY2NgorNjg1OSAwIDY5MzMzMzMKKzY1NTAgMCA2OTY2NjY2Cis2MTI3IDAgNzAwMDAwMAorNTM4NiAwIDcwMzMzMzMKKzUwOTIgMCA3MTAwMDAwCis0MzcwIDAgNzEzMzMzMworNDA0OCAwIDcxNjY2NjYKKzM5MjIgMCA3MjAwMDAwCisxMTQ1MyAwIDcyNjY2NjYKKzE2MDQxIDAgNzMwMDAwMAorMTY3NTYgMCA3MzMzMzMzCis4NjE2IDAgNzM2NjY2NgorOTg1NiAwIDc0MzMzMzMKKzE0OTk3IDAgNzQ2NjY2NgorMTgzNjUgMCA3NTAwMDAwCisyMTI5NSAwIDc1MzMzMzMKKzE5MzM1IDAgNzYwMDAwMAorMTM2ODkgMCA3NjMzMzMzCisxNDE0NyAwIDc2NjY2NjYKKzEzMTk4IDAgNzcwMDAwMAorMTA5OTkgMCA3NzY2NjY2Cis3NzI2IDAgNzgwMDAwMAorODc0NCAwIDc4MzMzMzMKKzExMzIxIDAgNzg2NjY2NgorMTQ4NDAgMCA3OTMzMzMzCisyMTcwMiAwIDc5NjY2NjYKKzI3MDkxIDAgODAwMDAwMAorMjg5OTIgMCA4MDMzMzMzCisyNjM5MSAwIDgxMDAwMDAKKzEzODA5IDAgODEzMzMzMworMTExOTYgMCA4MTY2NjY2CisxMDQ5NCAwIDgyMDAwMDAKKzk5MjEgMCA4MjY2NjY2Cis3NjM3IDAgODMwMDAwMAorNzMwMSAwIDgzMzMzMzMKKzY4OTAgMCA4MzY2NjY2Cis5MDU5IDAgODQzMzMzMworOTMyNCAwIDg0NjY2NjYKKzEwMjc3IDAgODUwMDAwMAorMTA0MzYgMCA4NTMzMzMzCisxMDYzNSAwIDg2MDAwMDAKKzk1NTQgMCA4NjMzMzMzCis4MjY4IDAgODY2NjY2NgorODQ1MCAwIDg3MDAwMDAKKzg0MzAgMCA4NzY2NjY2Cis4MjU4IDAgODgwMDAwMAorODg3OSAwIDg4MzMzMzMKKzgwNTAgMCA4ODY2NjY2Cis3OTYzIDAgODkzMzMzMworODk3NCAwIDg5NjY2NjYKKzEwMDM3IDAgOTAwMDAwMAorODU0NyAwIDkwMzMzMzMKKzY0MjQgMCA5MTAwMDAwCis1NjcyIDAgOTEzMzMzMworNjE1OSAwIDkxNjY2NjYKKzY0OTggMCA5MjAwMDAwCis3MDY0IDAgOTI2NjY2NgorNjY3MyAwIDkzMDAwMDAKKzY5NTkgMCA5MzMzMzMzCis2MjI2IDAgOTM2NjY2NgorNjMxMiAwIDk0MzMzMzMKKzg4OTMgMCA5NDY2NjY2Cis4MjUzIDAgOTUwMDAwMAorNTg3NiAwIDk1MzMzMzMKKzU4NjcgMCA5NjAwMDAwCis2MjEyIDAgOTYzMzMzMworNjk4NCAwIDk2NjY2NjYKKzYyMjAgMCA5NzAwMDAwCis2OTkzIDAgOTc2NjY2NgorMTUwMTQgMCA5ODAwMDAwCisyMjM5MCAwIDk4MzMzMzMKKzI5NTUyIDAgOTg2NjY2NgorMjQwMjQgMCA5OTMzMzMzCisxNTgyMCAwIDk5NjY2NjYKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZmZlMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9nNzExYWxhd18xY2hfOGtoei5pbmZvCkBAIC0wLDAgKzEsMTAgQEAKKzgxOTIgMzIgMAorODE5MiAzMiAxMDI0MDAwCis4MTkyIDMyIDIwNDgwMDAKKzgxOTIgMzIgMzA3MjAwMAorODE5MiAzMiA0MDk2MDAwCis4MTkyIDMyIDUxMjAwMDAKKzgxOTIgMzIgNjE0NDAwMAorODE5MiAzMiA3MTY4MDAwCis4MTkyIDMyIDgxOTIwMDAKKzU0NjIgMzIgOTIxNjAwMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3IGIvbWVkaWEvcmVzL2JiYl9nNzExYWxhd18xY2hfOGtoei5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ZjNGExMQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3CkBAIC0wLDAgKzEgQEAKK2tvZ0/HxdjVSnZDdXNY09VJdkp+fUt1WV3ByMT09PTK2ElydEJSVPP5x9rG1lTF+ezs4//VT2Vifdn+7enr4cFbc2dnRPTl4ODg5cZeTExLf2VaUUnZ9/HzUHZ4bm1wVeTt5P7cYGgXFGZ2+ejv5ufDdWdtf3Rld1hb319Y2MTUz8/YwVjQ1nllf2dxUtv45f/h+FRHZXNGfE/C9cnQWd9ZdcLm75XmyEprEBFrd/jrkJfnx3diaW1M+eTm7OTYQ3p8eWJww+Xj5+Ho+Ft2eHhKQvT/9f70XXFnYXVf3fvg4+XCxlZlfFXBVE9wSXBgZHHQ9MH35NhMQkZLcmV2dHlzZ2Z9c0/UQnFS3NxGcdzNTk5NcXdawvvn5fv02XNpYdj74+jq7f1bZWJm3OTpl5Xo7/hZeGR4fEr35+TolOri2HN4Z2ZmecT82VBMZGZ7T9rM9vHRQHFgb3pAzuX/y9pffWJsQ/Dl5/ndRmZpbWJkW83k5VZGSHJ8fGR2XNjHX0Xb1klwYX7Q9vrj5/BSfH9gb3Dx7ZTt+PREZG5rZN3kl5aV6+791XBwQ0TY9vHNycT28d1bx8NTf3tS09zMz1TcU1fUUNXOycjVdkZFVvf4zV1xS3JjZ1Xk7efG1Ehga25jfnfD+8lTQUN3eGNmZHh+e2ZnZ3xMZGZ80/XF1fb30E1/Z2dnRufpl5GRl+FCfUzc7ZeTnJOV7dR4fHX05fXx/NLF28DxU3VccWZne1jEQXNLd1tXTV5Yc3ZyYX1FzeD48f9Tcn1gZXJP5eng5/ZcdGoQamTZ4eb6zHZmb2pgQ9Hz8FNOc3p/eGNnYH3Z38Hn5OfIeHp8QPzk5eL/2FVzf0jW5O7o6uLm4fjYXlHE9vfCxvHy89jQzM7Pw0R5Z2ZzRNny/ubu58dfWt9XTXZ9T9NYRNzJyFd4YmttTN/+5cBOZGkXExVz1tvdTXZOf2RjenVHUM79/PnwUHZ+ZUDM5OHk//vC1dN1UPD3z8b04P/QXXljZHDN7e3v4fBcZGFFyvrm+dBEWl5UxuCU6uT1WnVyZHxXxPrj65fg/PBQe2FjSMzw+cRLc2NraRVid9bSV17UfG5rahVrYUHNw99dU2Rsbn3F9//6ykF1fnJyWPzn9cjD/ef95OTx10RFx9XP4e3gykZCREnW1sbC293dU1XT3Vx1SkJcX11VXkBQ2Pj6zMvMRH1nSOXtlZbq7+Tx+v/x5efm5P7h7uD7235rFWJayfrs7vBnFh0QF2tnc3lkbxQREhFvYXFX1NFGfGEVF2llUsD3//z3SWRlcETdwcvXd3RIXMbB9+f48Mfd21d2fGZlVfLl+/vn5VFKS1P24JWX78NAc3ly1OWUlOzj5OTj5vfA1fDk4eiXle/7wvbA2sTFU1hxUsPc3FpxfXtjYmx6TkpzeW8Va2BxX1VBe2lrFxRjSEB9ZmRf2sjN1FdRckHX383Iz15+TsbR2vbx/f7z91pD0fDm5fT1+cJOdlzXV8X44eDi5UdmbWJF5euRkJGV/MjGQdPk7eji4Oz3UFNTzPdRUMTP2sXC32doYmV8dkVxeGNua29tfEZGd2R8dWZoZHpzcEtQS39HU0F0YWRNwtvEwchGfHRc8u2V4MxZVlPf38PLzcLYy/j7wMrSfW1hSNnO5+zt4M5NfHFySlrEx8vk4eTl5PHS9ePv6JSX7v1fS1/P99jYwtpT2MVRSUV3ZWRkeHh9f2FvY2R+c3p7Sn1uExJqbXhQ9v7y3EdKSV7F8eXw0vTNUVpERtb15efN0NtIZGxpe15c2/rl80R5cmJufVtVwN704+bn+1fXx8TtlJedk+n6w8jm5efp5Pn918HN1N7zztx3ekVeSFJOd0F9cEFzeH5sahVqfEB3XE96eHp0XHNmZWZ+S0j3+8NRQU9Y1vb48vXHW0N2Z0nZ9vnzx9BGddHWQFLcVNdUx/bwUHlndnFN9v3+5+Dt4d5AcHNOV8vl5Pr9y/HBzOX8xP76/srN1lTX3fP55vrK01p4ZXBe31XW21hLUnZ/TVdXydNYR0pBfmBgYmJY8OX5xtNQZWF2cdH/ycLPcWNmZGZlZX9zStJVcmxqaGdN/eHJ1dd2TXdsZlBVwPPG2sD+7+vj+sDa8/rj4/n44fri7Ofg48jN8NFMXcX45fTxyP7z0d/DTtfJ2PdbZnlyYH58Z2ZLXtrSTkpIQHN8fH9qYXdxdEh82tlkTHFmcFhf/vdTcXl+enfN/P/t/VBkaGlzWcnm/cXFysj+3nd30FRV8Pvzx9FGWUpwQ/Pz9sxFSVzS8+Dl5ebj/cvOWHXFzMP/8Pzj4PdfeXl1z+2UlOdGcnxlTFFEz/jb2N5/ZmV/S0J3c3x1QnRCfWBySXxZWUL01n5zYGplQVTQWkJNRt1WXs1YdVZGd1tzfEBPQtZMctjJ8fjOQFtSzv7/+tZE2NTF4+HvlODyzlzG5+Tj/tZAWdr/5+zj8vPVZWB6ekXY9/jk98XO38ZVdXBG2frk90B+dnB2195W9sxQS2VmcEhJcnl2dUx8YW1rExEUamBleH1/Y21tY2RT/+flyUh4eX7X8fXM5uD7/vP95uDt6u/n+ebh+vD95ePo75WU7ePgydLFxfDl5OX6wEJydnB5eH1JXN7K8lNnZ3J0Ud7f9vj30VB3c1/KwkNzZWd6entwZWV9e2R6ZXxzYGxjZ2xoYXthYGJqFWxhfn1nc9L+4Ob22sXH8+Tl/efp7uDh4ePo6urq6ePs6O/m+f7l5+Hi7uP5/8RNfXxlZXJxRER9YWF+fH9JRNz1+/rPfGxhen53R1fN9M3aWX5zTEdDRNFQRUZOdnx/dd7N2thbc2Rvbm1pFGhgYWJpFRYWFWlhZ2RwX9VQREtN0f3i6ezt6pGWkZCTnZ2cnJ+SkJCW6ODn5+Dj4fvJdWdncEnfzt3W1FJGfGNgZH5zdU/Uw/b2wVB9c1fe1dxRRVTT3srfQE5zf3l5ZGRmZmFjYmJ6X1xERXxnZmBmfGBsYm5uaRVrbmxnfHNwQlPD3N/eXtHP8Pnk8/3h5/rk5Ozu65aTkJeU7ujo6pSVlpGXleTb1NrEw/TL8/H/+dx0fXBczfPx+f3MzFRWTXNJX0x1S3x6emRnbWlvbGdkYGwVEREVbmNmZHpmbGkVFGl+TFNWRVjR3dVYQEdU8uTl98bGz8TC8v3w8vP1ydjR3PfL9vz8/P/m4eX2zsj0/Obj4+Pp6pXv/vnh7ebl5frl4O7v5/Py5+bk5/3z9c/CVX1taBUVaG1vahVqaBUQFhVpbmpqFhYUb3xMdkJTVNdfc3tkfVnX31Jc0VZQWXFwTdz55/bH9fz65OHn+P777Ojj/sTc0VPQ1Njx5ef+V3RHWsnm4O3m+Pr000dG2/fz5eHl//P8+fTx8Pvs7Oji/vLLysBedHpnenl/cGdhfHtwc2R+Z2xpFBcTHRAXa21vYmFtbWJvYmF3197DQXRFcVrfRF7TxuXn/fD08/b3/NlQyv7h4vvy8vD+5uDn/uT4++fx9Pzx+u/s7O7ole3zRHpcw/Dt5M7I0VfHVNH85OPi4+H1y8VYWHFkfHFwTHVhahRuZ3RyY2BuFxUXF2tteHllYWlsZmNhZmltfn1GQH19ZGRke3xyVvPk4OXbV9jO/+Tk/s/w8/b82cXz+umV4//x9cv198rw4eLj6fvP/vv7/fTLyfHKw/fP2v3l5ef99vrk7ejj8V9RVVvRU3Fxcnl0dH58d0Z3YWoRFxcWahcSExEUb2NhYWZkYmNmYnHBwMjYUdHRUNbUTEpRzvz7915OSnBcxcrPzfXZVllG1P3m7OP8+efn4ub55+bi7eno4Obm+/HMx8P8++b698JCWtH0/vX++vnm/dZbUtre0V5JZ2BibHhnZnl9R3VnYWNgYWFgYWZleX5IfmRzSl1eTnBldkhzcXdwe2d7SXdzd0lU1k5/ZEnfxPP311tS3v/n/vT1/PLCyPf74uHm5Pz+/OTol5Xh4+Dn5Pry+pWVl5aU6OTm5uflyfX0wsd3YGJ8f3x0Z20UFxRoYWtrY2RxZnh4dUR5ZGluYmR1WMV1c3FhfGV+dl/J2t5DfmNgT9f23VjUdkV2e3xwUFHKzUJxfVpdx83L5fnh5uTg+uLj4+3n5uTn4uns4O3n4Ob45v35+vrlwFNf9ePv7OH+VX95fF9GQVRfSW4REhdnfUNCcHB4ZGFkfnp8cEF0ZGdlU0R1T3xweXh8RlJN0sH0x0xxedbJ9MxaW39kYWVGS1pc3cFacHrXysr9xc9USVTT+vnw+fjlz8Pe/+Pj7+fh4fH3yebt4+Lg7OT02/Tt65Xj5PJX1lbf29bTUtJYeG1obWBlYWR1f3hkdkB2fGRwdGRtaWJ7dXlne2NjZnxFUcPUX1hyf3te8OX5UUFwYWZ/VdPRREDWSnJ6dMz18/XCztnawP/l5uPn4eTk/vbh4+7u4OHl5+Tt7ubm+/jxxl1B8/n/+NnWQFtbUvfAxMdQd31ka2FzTMNQdX97eXPd1URHc2dgYGlnQXRNcWJra2luckNJWHVyc3Z4dc738vZQSElCfUhBc13e3NLVc2V0TvXj5uXyw1Da8cf0/fH9/85Q8ubi6uL4+ubn4uvi7ez68cr2wfjh/+TJdn5+eXfI9/T900dMcGBhd3bdwUBCdmRifnRz1dFZXVxxZHx6dkR6ZGdhYmJnY3lDS3Rwe2N0UtH3UEF2eGdmQkpMQH1/e3pjeV/A4Of99/H8/e/u7ez6/czM1N355O3g7evrlezr6+Lv4+D788VSzPb7/tpacn1lc1NWxNFUTX5haXpMwPP1xkVNfXJBQE1CSEhxcXt+QFPVQ0xwcmRsY2BgYGR6c3BkZUfRxNFGcmBjYnhIcHNEWExKdXXD5OPp4//Dw1XW8Pr5+f3C00J5QMn0+uzr7e3h5+3h5+Po7uPi8vT6/vzaTWFme2RC01BE3MvaxEh229LS1dpCfEp/QVTU2cD3TXF+YH1zR1TWQmFkb29gYWVlRkN1fWJlS9XBwsR0TXZ0WnB4ZHFJeGVie3VC28H9xMD3yfv7+OTl5/HAXEff2vj45+T65/vj7+/i7+vp5vLHysPxzl9xbGdnf3Re3dr3/ffUXtP95+Tx+d1HeHh0R111UVp5bG5pY3JbQ1B2emRke35bcUfQ13R5Z2VC1ktAWnN3dF1LU3VD3FJ2ZX1xXvD1xMRHTE3d0+Xs+uXJ1ExPUMLj7OTn9VNGyf/77eTv7+TLwfH94unl/VdyZX9Icc3I9c5WS3DV3vbj+/bZfGBgSV3D9MnMXHJkdU9extrVT2djYXF1QdLRVHBjFWppZVbQXnZmbWBK0sDJzd9KZmtmStH88/PZfWxvcMb67+zs/NNCU9LE4Ovq4PHXWsX84JWVlpbu/NrN9efg5PZbZWJmdkXD9c7GSn5+TNf04ODzVn1kZ3fZ9/RNeGJvaW97RvD723dgaxRuc1rb19FeeGIVYHfb+MhccXxzfNn+7eL+9NrYR1zF9Pv3X3B7ZGBN9fPwyc3e09Ha8fvj4vBYdkBAX/b+5uXz/Pz33snh4Offcnl7f3DL5ufy2sbdVNzE/v3480FyeHFL2fDL3kpOTXVLd8Xxydx7Zm1sYmVDR0JLdHxmYXtLTHBAfWdjZEtW2MfaUkJDXNbTxdjT3E9/ZXlL3vj8w1FZUF1T9+Ds4uPlw0ZNx/Lh5uHm8vX38/jh7eD+yNdMe31x2/3Jw97I9Mn2+OTwxc3EQ3pxdEVZZXh7eX9+Q0bRwV1Cc2Vien9y3UZyZWd/ZHFE2PFEdEF2Z2RNU/b019ZDX9z55vzn8NhaeWdnd3dXw0F2fE9c1ffy7ebD3V9AQtLO8OXyzNbWxPLk++Tn8MzT0lTbz/Ph5cNAXMDw/vrj4/zZWV51Q9zL/cBbeGFkd97w5+fxRWNpaWJycUFJe24UbHhC0NPSRHlnenR9TFLT0k54Y2Va3fH3w8vFW3VBQtHbXVFMcGd418rm7e3j/N7W9fL+4u3v5s9YTtz04e7g5/7DXkJHRtvCwtlAfmZw0f7h5fj1VUxO1NTNydPXc2ZgZUTa//PI1k53fHVGWVB0cHptaW97R8FVR0dCWV/bwtrG3NtFeXp5Wt/85OT+w9VERl/RxlZHcmBsb3rV++bl899FdUjRzfXP8cB1e3hG0/Pn5+f88eX55ebg5vvyz8bawPLn+sdV1UdF0cnl+vTc0XRkZX9ZzPH399p3cUxzSEFDfWVsFhdqb3LVQHdIcnhwfV3O3lRWWHlld03Q8czR0nV4X9zC/OTy0Vt4fndw1//+z8LIyuXk5O3s5fX310hSUdL9+fX38sD0+fzl5P7N0EVxQEh33PbXSnRydFXb8uHl3FFAemBnc9L2xsv2213Q0VzX1HR9YGpqaW5vcEp8d0lexvT85+fxys7AxtDV18LYQUdCdFrHw97eX0t+ZWV4eGVO0VZFRlzH2tzL+vjN1VJNcHxwVPDxyvnk+uXn7e3m+fDy+f33zcL3zVxNWFffxfX1yNxB18LZUlzS0lBGWMff0sH3z1FOeWRhbW1vbG96cWd6c0pW29zewVJ1RkZIeH9JRF90T1JHW93aV9JQc0tQVNva2/f99sn+5ebh4e3i5/fE9tF2d0hS2V1ExMLB/vr6+cn19PHP3t9dTnBzcndDSFfY3c703Vjd1lhTUNDfV8DE1F3WzsHSQEpxeWRjZH9lcExHQ3VM3NNBXNPf28POwtVYSXFwc0TX0sbF3VTXS3BAQUh0SE93QN/Gzcf0/f7n+vDT2MBPdnFd3t7Q1czK8P//+vz99v/n8PXw/cReX1DW0EVVV9fSQEB0VMTX2N7aVdjCV8/Y2MXd301xeH54YmFkent6fmR7cnBHRV3W3NxdxdtdU09xeH9+cFNb19LPyldaQlfNzsj38/3z9sHw5fjn5Pnxy8DU1lTW2tvM1dVVXlFeQVvcwsba0MPKUkdOd01IT3dydUBGUsTczM3B/vry9srD29FS2PDywN1VSHphZ3p3dXRCTXZ3T0hLX1LS0lfRU1TezcPWUlldWnd9f0VCTEdIQExCRV9SW1BHQVxQ0sLz9vPyzsLcU9XD8PfDVFTDzsTM/Prk4fjw/PD85Pr1291TTnZxQ1NbWdBQXdPQ097Jzs3aW05T1tDYV1hXWHdweWR4cH1+fXx4fHx6ZHpzWkB3SlXc0srKzNldQkNBRl9QU0VNTFzZ2dLA8/D0ysb3++Hj5/r7/sJXW0Rf199TTndAUFXfxcnx8/HM3tjd093H9cnFVkFzdklwdEtaRkNR3NjE9P78y93ay/3yzNtVU3Rxcn10Q1pNdn1/fHNLR0ZV3NBSd3ZZ1sTbzvDfTnRMQE1BX1N3cXB9eWR6d1JW2M3NyvfwzMXMw8PE11Tbw9vExNnXU1vExdDP/Pnz+Pv++Ofg5ub9xldxdE1HQNHTUdFeWFxW3Nr28MLf3MTLwV7bz1t1Q3FnYWNnZGd4eXN2dHV0dU5wfEt3fELT2vXy9dRCdUBfX1bGwcTRXnVzcUJR2sv18/zx/fzy+uX88v3N2VVUVVhBTnZ0X9LY3d/dUkRT3d7G8f3z8sjYVFtZW1BU0tPb0EN1d0/Xzf/h5/n88vbK3NjDw9hTSH9nYGdleHxzcENKdkFKSkNbX1fdyfPL3l1AdH58TFNT1F9AWXFycH57dNHO98HBw8TEzcDJ8PL93U9HS1jc2snw88nA3NdbXFTHzMn9/Pjz8fjy9MDWUVXY39jdVdRRQUBfUMbJ9cTQ0lfE9c3T28/MXnF/ZWBsYGRle3N3cnJ/fENGUFXZy8BX1dJXxdJSR0xR0Vda195dRXRGX9Lz/v/8yd31x9HDyPP4/c3HUVhfQF9Q0N1fQ1hDd0RAXcLbxs/GXl9Q0cjQVNbBxdfc3NbRx9Ze1FTZ9PHw8MHK/vL98fDwysRCZGR8eXxMXl1Pc3lwfXZBQVhe11VATHd0XNFRWk51R0FMQERZV9NTTUJRUkHS2lfRwvHyy8L3zcfa3tPY39DGw/bAQdddUd3Sx9jY1MDWU9ZRwfby9s3U0cRUw99UxNjc0NVe2cTJ9MPOzc/a3FHV3EhCd3Nye2VlfWV9ZWNgYHl3SUfX0d7J2MvD2PH/zNRFdVNaW1FQX11cSUpxSl3Wzsz2+eX/+Pv08vDC3FZbUF1IUNnd1UN0cHRQ2FXd3VHHxtLW1NbMzVlOd3VR39La9uXlyNrQXdPZwvbw8f7wzcvN2cTSQE5OdnB5fnd0dHR9fnx0R3V8dkxCW0ZGU9jB98NBdH99Sk1HV8TB0V5DQkTQ2dDYzcXS0N3JyNrw+PP29MHQUF3a98nGUlbLxNnSRVnW19vc1vf/wsfUTUFZVdnfwfDM3N9IckN1WtjL+P7Z3sfZyMvaxtBSVXFlf2dnfWdhZGd/SnN2fGVD0NzAzfbl8svz00dfS0DT0cbLU0JMdEBSVNjAyvPF2ffK/eTxw/Pw8fRadkh1WtPRXFhW1V9HWHVAWHdJ2Mvy+d9TXnZ3RlzX9fP1xdrAxsrH3cX9+vnyVl9QUNjIydLC0UpLSnZ1WEx3eXNPSHd9fnl9fXVDQVFQWlBURdHdQEBZwP/20EFxeXd1XsfF9vzaUNfd9//++/jn4eXPxNVS0NDCwlBeVndxUVdV1ltJRMHy8MTF2lRHQFTY2sr83VTfWVbXWU3a9PT33lVcWlnSy8nTX0Z4ZHN9dEpycEp8e395ZX92c0tMX13fw9Pbz/XP311dwMLJ991AQ0tzQFfazsv129zbw87w8vvj5vjl9tXTUEdbWF9RRn1zdENZW0FJTlbb0M/L1sfSUkdPXsDO08r0x9vbw8nz5+bz8M5bQExHWVPU1017cnJ+d1lWWdXE33dxdHp7f3J+fHFPSHZBREhAVlZS0sr99fbK2VVZRE5fUMHHVdDZ1V/e9/P74ef89Mbex87L9PTI9d9GSFhBS1dUQU1T0tDd3drVX1FRQ01U3FZVx9nezcrJ9PTY0FN0SnVF1MXEyvLAXHRIdXZHV1FTX0xLem1hZGV/d3dKdENfX1XfxMfJw8zKxM/QXllNdkrR38DNy8FTVtjA2PLl+vzK/8vU0MPA2vbKydDRX09aXNXUzMDUWEZcS3ZJWkNB0sHZXVXWU1fE9M7M/eTy9PTbX0hFUlTG8svR1U1yfE1FQ9XE0XR3T35hYXJ9eEhVWXNycnZ0SU9IXdHR1FdXWkxH1VBE2/PIxcHG29zBzs/15eHl//z+ycT28fb65fb33tTVVtDVVdbB0UR1eXhlfFpHX87y9MRX0sfV08TBwvb28MdDTHdwSndN0trVUlnV1VhTX0xXx93cX3ZyZWNlenFFREdPcXJ0Wl1OQcv3y/TYUlVDQVVaVtnY39bcwsz1y9jA8fLk+vTM9cTNysPw+PDE39vUW1BYcHRXxMZQTHd5Zn13ddL398HS0dTZyNtXw/rk/fDxxl1E115E1d/HVVLHxdFSd31zRVdQWkB0fWVhY2Z8d0lyfEN1dkt2c07N9vXY31l0c3RIStf39tHZ//H0x8XS2ffB9vDz8v3zyNjf+OH68vDm5f/DUEVBxdLVWXV2e21iYWVFw/f09PP1wt3UV8P488/O9d9dc318flxVREbVysLeU0Fwd1pHWkJ3SUN5bW5if3B9TlBXW1hHQ0HS9/P+/czdXXd+clrJ9M/O9fD0zlBHVt7x9fH7+vr9z1dbWsLx9P3w5eX+w1FeRdRbWddedXNkY2d4XdfZ8vb32dNdW1ja+fT2/fL32l93T3ZH11Lf3czN3llIdnBGSENZcXBze2dkZHdGd0JHSnx/eXF0WsnD8/jGRXZye3t50ffH9fH98creUFBV9fb44Ofn5fHe1lTK+OXg5vv5+ffVUN/KxdjSQXF6YWBkZElWV8Tbwc/IyMfByf7/9sdU30dyZGBmcE1E0t/LyMbUSUFGVNHS1UJJe2dtaWF0TUZfdUp3SnR13cr4/fLxz99SSX5/fFpQ28DQyPP0VlrV3cr25ODh4Of0XE1NVcH2+f39/MraVNL3/c3YxUROdmVmZHxCVl1RRV3b2NLd9P7wwsHO38jLUU11S0FTVcLK9PfbUnRJXV1XUVFESWVubm1nd15fUEF2cH17fV/Ewdrf2dBRR0hOTl/X1FJX1VJW0FtMRVlR2PDm7e/v4fDCyc72++Hg4eT/xNXGxtrZUVJEdHN5en11SkVZTENfUdjZwv778MjZ0FVZXldOdXZzRkRWxM3EydRJRE5xTkpbXUlyZWBnenlEVFHSV1hSdnfX0FXa0F1fQVhbSltVWdbe1N7R08/XR1FYXsHN8uPt7OP48MPQzfHz5eT+9ldS2FNR01xbUEVASHZDRE5BRHV0QlTM9fzk//LxzNrdV1ZWSUxKd0Vf1cb2ysTS1VB2cURR3NZTSmdjYWZgfnV1dEhNSHdKQVxZWl9ASEZeWVTGU1zVWVpZV9bW01ZZSExUzuXg6+7h5vvHyfP44+3t7ef3x9xXWEXd39HfUEZHTHBfUklDdnJHXdTMyMHb2MzF2M3UXlNOeXZxSlVR3/fZW0R2cnd1V9HYUn96ZWNhcnJLRUdd1VBT1lFT3t1V193R19jc11dSQF9cRVHT11NQTHVE08X/4eHi5fnKxcvy5uTg4/r10tNNX1lERVreV1Vd1t1cVlNEfHl0dF7azMnDxNPewM7y8cnBVkdMXVRSxcPYQ3J+eX98RFLeycJFf3dyeX90Q31xT3R2cndaREFYdX1MSH9P1lZeW1BeX9XawMTfU1xIQNZW/e7u4ufk+OX6++Ls7OPm+czC3VJSXk1D1FVXVFbEztNTX092QkhzXt9UT0xPS1TF29PR2UVIdEHUXsD32lxKSnlwdHFexcBDcXB/eGV/d0JaQEVB0tzWwd/FUEVfWll1TVNXQHBKQEXQ38TE29FDRl3Sz/zj4eTk/PXH9/H8+uT6zM7H2tFU0VbfxdJfQN3f1dnc3FFMc393Q1vd297R0d/J9srxysxUQ3Zw3MPcxcTLVENwcFNEU9DfRHJ8ZXl5ZX52S3ZxcHdaRkJCWNVTRnJzWklwd05wenZKWVDf9sTdR0VH3Pvk5uDs7OHm5OHg7+3l5f/13NjF39LCyMbMw93C9MHE1dDQcWVlcXVyc3Bwd01a18PA9MRaX0J8c1Lb11PWVkxKd3VS1tXRTEp2YWVxdHF2QEh0d0dc08/Yxt/Z00NNTkBHQFBJdnZ2W1DFwdJQQE5/dtTA//nn4+Pj4e3j4uPn+sDdWEFZdV7Q1NbfzdHe9fPz9cvF01xMTXd2dXNwf3F2WNv0+P/3xdnVT01aXtVRU1dXW0lC0NJeXkZ3fX9zdnB1cnlxdHZxQNzSRFBUTUdBTnVxcXB9c3Nyc0PXz83Q31hAR0ZXwPLy/+fi7e3v7uvv4eP82MjL2tTT3Vfdzff09f76+/TA0kFdRXN+c35hZ2BldkvSzffD38RHT0p3Sk5YQ1LS0NvRU9/E1UFbc35KfnNwf2dkcXJIX9zP9MvSxNxWwdZWVHV+eH9lfklWxsHM115NfndGQdLOzPb4++Xi7+/s7+Dk/8DPwNPY1UpK0NdUzv34+Ob59vfT1NBFQ05lbWdgb35Hwfb//8ny31bS1t/a3XVc10pAVd/Q2dlEXkp+c3BzcmVjZn1hYU1WVMTK1dXRU0ReXU52ZGBnYGB8WVNWwlFaR0hPU8b25fvl4OPj4+nq6JXr4Ofk//by9cXfWN3cVMXw5OTj5/P0x1F0SExlYW9raGljf1PR2/fb29RbXFzXUVJIcXV8cUxT3NP320BFdnN1S3x7fmFlZmZwQ9Tb8/TD9cDS1FBAcU1lYmRnfEJXXNrJUtBWTtDMzvX48Mnl5+bi6e7pleD65MrFycRXxd1LQ0dO1v/n5uLh/v3FWlBHeX9/bGhgZnpGXVLGyMDGxNTJ8d3EzVJ0TENG0sDFwd5PcHZ4eHNlYXpnbmxjYXZXVMfIx9dUUEVFS3N2eG9uZmZ5TF7WwNrUxtnA//j9/Of4+OPi65eWlJXu5+T7//v79MDP1k1HWNb8+v7l+M3YVEVWU095YWNpaW5tenNxQlVeR9ndzPPAU1XXQnVDUMXPwtJRdmV+eXlCQH54eWBiZX5Yx8nIzsRbRVBS2M3VcH95YWFmZXRHXtDa1d3Mzv3l+PX2+fz55+Lplevm5P7P9fHx//DfU1dacUTD/fj4+fLL21fWx8n1XX1/ZWJiZmV3X1TT2NvQyP//9cjG1NlRW9fQ2sZHd3JyZWRleHx4Z2NiYm5kQ17c1VNZRE51Q9TaVEl9emRuY2BnS1tFU8bY1c79/Pv45+Hj4O3rlZaW7u3j5//9/vb0983E2tTR9/z45/LMwNNbQlnWVEV8Zm9pa2psZkXQQ9nA2VfG9MXL2t9RQ093TNXY20NJRE98fnJ8cnJlYWF6fnBQxc/S0tdYXl/a9c7FWX1kYW1ge03Q2FdX3NrDwPL5/+f49cvx+/jt6O7j5+TwztjPytvM0EXT2sj25uPn5fXdUVLVVtjXRHJiY29vZ0rZwfXfUs/D3s3+/8zER3R0cFDfz8dVWHxwZWJkc3xiYmkUYmNkRd/T09NzfE1H2Pf1V3Z4bG9tYU/f0V/cSXTI9fHm7eLh+svP/ubolpSU6+fK8/nK+eH/0VtGRcj+5O7u4ufYdXVERVTN1X9tahQVbGRSwVNbcGVKwffy/v/MTGVnZXxXwfDaVFhmZmV9dEddeWwVFGJ/0/P++P3Mdn5Cxfz88NB2ZG9sY3LR2sVBd3pnWs/h4uHi+cVHXMrm6pXq4vrLTFLO+eb+91BzfEjY/+uV6+/kyUxxVcDw9NpMZGJuYXtV8PfHQkt0Sdn35+f00nd6ZGR03fXyyUF2f2BkcUBceW4WEBRuYUL3//Zcd059fd338cdTfWNjYGZIwtrUcWF8TF7E+O3i5/bH8frk4paVlej58vLy/eDv5clafEjN8/LolOrtzNDbxtPN8NNBcm0VaWZnQ9JDTmRhfUNU0vLx2ERlZn9eRtzCVtBJemVzQFHTRHhhahVsckbV/fPz3H9xUFbF8vHQUHNhYHlE0cpSQnFjZ3RWwfjl9vbVR9T3+ufp7+bk98HM9v/j7cdaS3NIU//h6+vm5/POzPL8/frbQn17Z2N11c/xQUt0cHBDy/Hk8FBAdnF+183RwF10cn95fVBaVnBtaxYVFWN0TNPVQ3VLT171wsbL1X1sZ3h7UtzH0ndlZ3JOx/T/4f7JUM38+e/u6Oro+Mr5/+Hi4uz43ndJ0cX74uni5czY98n65PT3xXdsa2JgfURTQ3xma2xmc8LM8cJCf2V2cdb3xNtRTGdhf3HB3EBNfmMUaGN/xMDE29dHQN/S+ubN9tNJYWZydM3D1dBdfG9ld93l/OT8xlZRy/fm7+zj+vBQV8734uDh5dtEc0PQ8uzv4/j+8Mv65u/u4fRIc2FifUfY30B8ZWBsZUjb8ffMWE1KcljFz/bGcX9/YmdKWdNeSWdvaBVsenF0d3h4f3tI1dLJ9cNBd3FkeEFSVldCeWRmeVjZ+ufl+f748+Xi7+/u4P368cDy+OHj7OfOwFbR9+Tk5uH/+/L94uzv4vvITnFlY2RxfXp6bGpoaWd3Wt7f0l5MTklXz8xXX0V/fXZxV8fPxVh8bGJgYXRHS3VAcHNT08v//vffUUhLSnxFX010fWFtenJCyfLy9Pbx9fn65uLm8vbN19jF3PD5+vLIxdDPwvT5/PL+8Pf45uPt6e368MVZT3F/dHdyemZgZntxQ1Xd3NlXR1hX1d3B1FdVW0ZPTE9aXEl/YW9ubWJhfH1/dnJzQlbX1sXbUUBxcnJ+cnV2c3x/eXNIU9j2+f//8+Tm4O3i7ODg4fnz8/zz8/3Px8/K9PH9/Pr6+/n45eTj7+Dn+cvBXE93c3lkZ29vb2htY2V6eHdJS0FSUd3RU1TX1NZXXlBFdX12fWV7e3t7ZX9IQkhORVjW3tvS39pZWE92dUh0fHR2e3J9cV1UxPXyz8Hw/+fh5uTm5v77/PH+y9rV1VdZ2t7G8/Tx+uDk+uHm7ezt4ebmytpTTFpDfn5xfmR6e31KdFtfVV9KWV3X2NnDzc7RX1xEXkByZ2FmbWBjYX55eHl2c3hzQkFcR0FWUkx0T3RBT313cn16Z3NJXdvJ9P/5++fi7+vo7unj5fnz8PDw2lJXV97ZwPH8+f378vP8/efj7Ob55PXdV0dKf3ljbGloYmNmf3RAdndLSllGXtHfVdn03dJQW9zRUkp/f2ZmZHp9cUdGQXZD1VPb2c3HX1tLcUNNXkFIcXx8eHN9WNja2tFU1MH85OPm4+/i5vj49cvA1VFTSEtJXdj1/vrm5/r4+/rm4eDt4Pjw9Pf398pZdH1kY2Blf3JOXl1QXlLZ9fHN39JcQk50c3J2cH99c3thYGZgYWBnYGZhYGRwTHddzdheX0J1c3ZzfWR6fHp+dNjG9vz98fP85+zo7+no4OH65uf68fXA1dZV0tfbzvbz8PT++Pn64+Dl4efl+fHLzV9xcH5hZ2dhZn52d0FCQUZGWUVY0NbTUl5aSExPSUpJfmR8eHpzcXB0S3R1cHN3dUdY1drb3sXd2l90cnJ+ZHlyd3RX3sn1zsvx/uT+/+X+/vz8y8DAwdTZzN7U3tjF3FjYx87198/x//vj6e7g4OT6/P3DV0h2cX1zS15OW1XQRFhNRVfcU1PS1tRXU0J3f3dxcGRnZmBkemRgZmBmemVkfXJwSlJQUVNdRU9MdnB9fHZOT1XHxM//+fX19/H55+Hj7Ozi4uPh+PD0wFRfU1xU28vP9fL88f3w9/74+ufm+PD9/PDJ2NdNc3JxdXdJcH1zdXZzdE1xTNBWVNZQREd0f2Rlf35+eXhze3pzfXN3cXNLT0ha11FZUEVPREJKSEpJTXdLUlNT1NRVw8Lew/f1zfz65Obm5Of+9sj1wNLcRkxGREfW3Mf2/fb9+fn7+uTn5/788/z29srFx9xQ38zQ0dRTREVKS0h2dFpW3MnA39HXdXN+ZmxibWlgZGVkeWV/cH9/d3Bwcnl3cHJxRUJ2d0N0S1td0NnZXFbQ08XLz8n1+eDm4Ozs4+Hm5P3z98jG29jHxN1QVMXa9fDz+Pvl+v328Pb1w8jM2NrE2lZQU9VRXnRDXnZ2dEx0S05LT0dT3MXVV0ZDSnB+ZGZmZHt+ZHp8cnZOTV9UXUVRXU9GRkFZRHZ2cHJ0XcPE39NXUtNWVldV2cj+/f7/5f798PHK2sfE0ExYVtZcRE5d3MDy5eDm5Prn+PT098P0//j88Pf39vHzw9hdUtTcUEdG0dZbU19eR1FWV19BcXd2eWRhYG1jY2JjZWd6fn13T3dwS0l9e3JzdXdxc3FwWF3Z38XN19/E3tDYxvL75f7k4ebl5uf4/Pf++fLCwcLb1V9LQ1vU9fL++ebk++T8zsHf09/e0N3FzvbMyc3dQU9FTEp0c0lFTHZKXEJZW1ZYTUxDT3x+f35nYWFmZn1zWtVEUNnYQENBSnB3d0p3cnVeUNDe3dFcVtbQW0ZcxNPO9cjJyP375/Hy9vbOyM/OxNBSVll2WkRU3cjy+ufk5OTzzvD98/L3zsr1+Prn/fLyzMTEWUxZQVPQ1nFMXkZe21VGQk9NSXZmZ3tkZ2dsb2liZHF2c0NJd3V2Z3t6eWV/ZWZ4S0bVxdXTUNVQx9VR3Mnx/v30/vn45+7h5efh5OX/yM7LxdbSQXVB3srw/OXk+c7199DSwMzYzfTMyvLN/f/c1dVeTE1NdXRHQ1BYcUpdWFTdU0RBR3NIdmV6c3pkeWVnZHl5RVNeU0Z3dnRwdHdzcE5xdkNBQ9ffUVRdW17WXVfT39L08cr8+P385Pr4/Mray8/Z2N1aTEBDRdRS3Pb5/P7/wvX39/H89fT9/Pz68/b++fj9/cPH2NvQ2lZBX1tBV8RU0NLeWFp1fHpnYWFhb29iZ2d4e3BKS3BKcGZkenpme2V6fnx8RkNIR91WRNDc0lZU0Pf19fPm5+Ds7u7v7Obi+/bK9tvT3NxfXVxZysXCyPRTUtPc1tzT3vPGxvXz2svx98/OxN/009fWU0BRWUZCXE5TyVTb0UFydUhzfH9meHJkf3J+eUlEUtVdcEpCcXd2cnxwcHNxdXlIX1PUXERGXdHW0tdWz87B9P3w9uXm5ub/9/D029NWRU1BW0FeXdzN9fbxxVlY08fcwsjw/Pz55OXw8Pj5/fn7+//y98jE28DJ0FDf2N/Y2tZScGdkeGFsYGZmYWdnf3lkfnRwfHN7en5kZ3N8fnNxen9JT0JbXlHRUdLf2d3N9/74+v/n7eXl4ebk4OHn5/rAwc3QVlFZQlXbwszFWVFQTXZPc3BY18PKzNT198Lf2NfO9v35/87U9MnMy8RBVNnf3tpFQl5xcnNkb2BhfnJ9eHdLdUZecXxOS19EdGVwdkld1HByQEfT1Fldx1LW3lJ2XN3b9/H38vrw/PL10cz39/fCUV5GS9fQXEtQ1Mnyztzf1VRVX0xzTVzN8//0/P38/fP08Pr45uHk/OX6+v779tDW3NHV115bQHRlZWJraGNnZGV6eX1/fHNlZmd+ZHh4Z3pyf3RfdXJwT3VTxs/IyNzZwN3b9f/94ePm4efy/uX98PLL09BUU1TQ0MTSUdbb28L3w8XTTHdOcn1IQVve9cPIwcXO8fXy8MLN8fHx//D3/vzDx9FTX9/R1l13eGVjY2R6eHBJdk9bQE1ZQElJcGdlfnlxQUxBUVpYRltPUN/YxsdUXNZV0dv1wvP98vPy9MDLzdjd10hxfXdIUllaV1xZ2c3byPfM0NRPcU5GQd3DxMvx8/T55Ofh5+Xk+/z45eX64OHl+/3Mw8DX0tRGeWRiaWlsY2ZkZXtkeHxxcnNxcnpkYWBgZn53RExJSUJLWdbCwMvKxtHc2cfI9uXn5uTm5Prl5fP0wtRFQ3RxWFfV3NlSUtXT3Nvb0FRFdnJ8eHJNR1tWVllc087//v7+//Lx8v78/OTh4+bk//f3ycvCVUx9Z2BgZGR7eXl/cHJxQVlaQ0FJc3x7ZWV4cnRMQkJNTlxU3c7AwMfc1FfZwc72/fj+/PbL9vXG31NOdH57fXZxQkdEUlRSVtvFxN3dU0VLd0pYUdzc38DCzsv55Ofm5+fh5frk5uDm4ePs4Of6/8rN1kFyZGJubGJhZmRgZGV6e313dXB+eXhnYmdmZ2V+fnN1SVDE2szw9cv39MHMyPzl+/jn4OHn5+f78cPAVUZ0SE50d3dxdnVJWdDTxM/SUVpFdXxwTERFRF5HWlHQ9PHx9vHz8vL45efh5+Xk5+Hh5OTl89pVT356ZGZle2Vken57c3VJQEB3cnx+f357c3RycHd1SETUwfX39vDxy8z19vTx8ffz8/36/Mj0zNZEcXl7ZWV7f3hnZHt4eUNX0dvT1NdASltHQFXZxMzNy/bz8/zl5Prl5/nl4+zv7+Hn5uX4+/ny98rMVnV8ZWRkZmRkYGZnZ3txdnd2f3plZGFlf312S3d8dHV1U9vYy/H08ffI9//y8vLz8uXl5OHm+vPx3lhfRUtDTHd0dnJ8c3N2R19BSXV2d3N4f31ycUBAQFlT0sDNzvbx9PXy+Pvk5ufk5eXg4frk4OT89cfYV090dn5kZX95ZXJCRF9aQkl9en1/fn13QERISV9SUVHG9vf0/P7z/v74+vDM9MjMz/Tx9vTL00J1cHJ/e3t+ZGdnYWFlen92c31yfXJwcnVMRURDRVRQVMDI8vz4+/j+5efm5uHj7ePm4+Dh4Ob69NNdUEBwcnR3fmVnZ2Vke3R3fnJ3cnp/fXN0cXB0d3BOXlLU9v/8/v744eT64ODm5OT6+f7l5uDl8ff10FtdT3VMSnVLeHlwfnlyd3N6Z2ZgZmd4d3d6eXd5ZGd7dnVxR1hEUN7Mys72+f78+eXk4eHt4//z99nVRVvc31RTUFhbS0haWV7VUVZHQ1BVXVtAQ0R1SEBb18vz/PL28Pz38/rm4+Tl5uX++/L3zVVT1099dnd1SHF/fnpnZXt6fk1YdX57e35yeXdFdHFFQXd2TFPX1FDWxNVTxcn29PfDxMj2/uf5/Pj8z1NNf3h2T1ldd0tZREpJXVJbRUJOQ0tDVtJcXFZJcnJ8Tdbey/jk+ufn/vrg7e/s4uDs7uPt4vn88sPY1F5UwcXT1Edwf2VnenxycnR8ZHpmY2VlZX5+e2R6ZHt/eHt/fnxwS0dV98j3ytrBytrBwcXbx83d1lpBXlVeXVtcU1HdxvD0zdrfXFJdUdXc2MHKVUBLQEdTVNrP8vz45Pn7+ubl+vn65eHm4Ob8yt/XdEtAUdPY08Pa1UZMWnF9fHN9cn9zdEl9SVFOSnJ9d01IRVJZdktPfHF0QVHY39/PxlHE2EVbR0RfQHN3THZyTHZ6emV/SlhGV8dXQlRQRdVQVsfD3MbFVl9XWVXR1MPw+Pvh4uHn4OTk5f345+T/5Of99vXGyM/A8f3/8PPzyMzbUl1Nc3dLSndEWlpYT3B9emd6f3B3QXZzcnhlf3llcnJJRVNe1lFfQEFJcEtLQVlRXdDUUk1EdXZER1fb0lbTVFxGVEdHU13Tw9BW1FJeRdxX0dje8Of6//7/8PTwzMnK9vvn/cr1983AytrFxNrN8dnWwMBSXlJeV9bTw/LMzPb229nR0dRRUN/PU0FSU0RSXkJOTkPQ2VhIQEh+eWVmYGFmf3B4eHBzf3x+fHdOQNLSWEJZRE1NdXBxS0xV11ZW39Dd39ZS19zH9vb09ffPz8zA2sv08f7+8vz4+ufm+v389/P98cr12dnG21BR3NPDw8HGyMPA3NZCXlFf1FNaVtZCX1ZZS1tHX9Lf28/ZQ0BBQX5/eX9xd3N3cGR5cHxlcHNaUVNc1lBFU1lCc0pKTUlaRtZQdExcRUZRXNHX0dDeWklNW0dLTUBEUNFVzMDE9fHE2sHI9/Dz8vn0zs3x8fH8/vH5++Th5fn/+vj/8czZyszNzdvew8vH2MzE3/XCwN9TWFJZSnRCfHt+enx9ZWZkZGdlcmR5cXRLd3h7cHRwdkp+QF5cXURLRV9GRFtFSVRd3MTSUdBdXl1VUUBUXMHKzMH0wcnLy9FQ1tX0ztrby8DKz8HQ1tLF8vH38//39M7M2sHS2vbDwfT1yfHx9/T3zfP68Pb3xtra1lJFWUXS31tBRHVIQHV3dXB+SnB+c3F/dndxSk1LdFleWVheQFtaQE1KcHFNd3dzfXx2dnd9fnN1T0hGQV1YX1NQWEZT0d7Fzcv2y/Xz/PDw+eXm4+H6/vfx//DO9/Px+f/w8P785eXxy/f3wvXOy/TK2MbbVlXe01bSXFhTQU9X0VhHTHJ8f2V5f3p5d3B5fnx/dkl0TV5CQV1ASkRBTl5eRVdcdUJSR0NeXlpQUFHSV0ddVEJ0dHFwSUpORE90QV9FXdTaxs/awcPb38H1z8nK9s7w/eTh5+bi4uHm5eX++/3+88jPysrDwMPL2sHdwMTSxcPZ1dfS11hSX9rZVldeQEp0dHZwQk5ZT319cnN8c3x+fn17fGRneXp+fXJ/eHlycU1OQURBRkNaRENAWF3dWUVcWdHf3tHUUNTc2dDW3dvH3dve2MD2/vr6+uX7+vjk5fv74eHn5Pj5/v7w+v/09/3xz9tQXlFSQFNDdkpRUFZSWkReRUBWX0JGU0BMS3RIW0FNRUx2QlZW1lVUVFVETHZ9endcWk50SndKcnNwfXhKQk5xfHByfXl7ZXpncUZaSUdGR1lc1trBx/z6+vDw8/f18fHx/Pb45/7x/fz75OTl5fvz+fjwyfby9sr139Le1s7wy/Xx98rNwdBRUl3X1VtHQUdLdn1kZGR6cXF9dnZ2f3p6ZHhxWNZQWV9aRktIQU1a18Tb1ldUX19PTkh2c3dKcH95fHJwfnF0dktR3d1V1dnBwtr29s/D9vTx8fLk4Obl4uHk/vv8/PP8+PvaXtRPdEfX1djFx8/DU9HEVNTD9vbJ8Pb881FW29Peys7PzMDc98V3c315ckReRHdKc0x/ZHxweH1Kc3R9cHJccX13QHV3dnNzfXFzRHlleH5lcUpPdU9GT1xCXFZdTVzd2dDN8Pz68/37+v3+5+Dh6eji4vvy+/3x5eXl5fr8/f/2ysbY0Nra19HGVFBedklYRVjb3N3E3lTQX0tJRHVKVUFIdUpwRkJNV9VAWtNQVFNEdU9zfXZyZH9LfU1HRUJaSnBKcGV9cmV/eH5+d3JwR3FzQ1tH1t3TVNxU3c7d0MHJzf78/ffy9ff8wvT75/nn5fjw9s7w997C8/nw+Pn89PTD9/bL9fL//OT4+/P13s3C0NTY0VHRQXVzfXdOcH54cHx/T3ZyeHh7fH95eXJydEZOSHR1d0dcTEVfdUZBcX17ZGZlZGZmentKRE9KdHV0UFBaUNLT8/z39Pf0wvj+/P/7/ODi5+bm+vLm//3wztv3ydrXU05109XW3dre8c3T3cRaUcHFyd7Dwvb3wsDPWVDJ0NXXREPVRXFMd2dzd3ZbdUhCRlp2RUp5T09DSH11Ql5WW9RBdk1JSnJmZ2RnZGR4YGBgZ355fElCW1pfVEpIQNTG3sP28v/l4eHl5uDt7ODg4ebh5uX/zszE9fTx8ffPw8HY315TUVRcUFRFWFbayM3A9fHJxMPeRktJd052eXxJcnRcQE5LS3VFSnZ9cmR/TnF+d3B1XUlF1VJ2WUR0cn16cntjbG1ibHNIdHFweHd0dXdGdHdW09jG29n39/z74eXn7+ju4Pr45Pv4/uXz+ufk+/VW1dJU3dbUWdTW3txXQNPDyPL88cHz/eX+9N7Y1Vfa31xa0tLK9tJCWE1d111KdEdHX19we3FyQNVccHZBTk53ZWFibmBnZWBmZWZnZGlramptZmBgfXd1d0ZPQF7S9uf48OTh5+bt4ebg7uqXleqV6unp7+f/8f/95c/EwdNNWNxVVtfBwfHGwcbHVd/FUFpT2sj99PX39drPwdNHRV5ZUEBeVllBVtZTWVhEXFNYXVhBTUx3d3R3dEZZWFJETE1LeWdgYWZhY21hbWhvY2NkeHdaVdbe2dLQ01bXw8DO/ODj6JWV6uru7OLn5Ob7/eX9zcjyyvTF3MPIwvfzzsLYzF1bz9/S+PP67eLm7O3k/vL8yvDGz/RecEVJd0tzSVtdR9NUd3t6bG5paWBhZnhCT3V3RnV1cH12c3llcnlmYGVkf35lSHV2Q9dQXlVSQ1pEUcfY2v3k+eXi4uDs4O3t4+bh4Pv98ffx/vX8+/338MrXRkBxeXt6cXZ1RcfPw8/2w87MwvL+//H5+fTJys3z9/T4/8razN9aQXdlemZjZmZmenxlZXFyZXh5fXZ2fnp5eHlzcHJwfnlzfGV7emdmZmJsYGR4fnBB2NrB8P398vD08Pz/5ODj7Ovr6ujs4+zt5+bn/vz/9dZXRVjR0UVX1l3d29NW0t3ewd5X2cfXV97Sw8PcxcrKxsnb2NPVR099fXxwcHBNSXRCW3R2f397c357e3l+cHdycH5+ZXd5ZH1yZXl4YWFhYGByenp0Q3VW3lfVVEBGxl5a3d7d/v7x5+3g75Tu6JTo4e/h8vz68fP8yPn49M7O1FfdRXdfXEhTVUVRwNj3+PL84eX/5v7N8vPZw8BcWdd3cE18Z3pkZ3N8YGd6bWFlY2Z5ZXlLdnl1TnNaXn52RHRwdHhlfGZgfHZ/Skl1SkNzfEpxfkhbQN7Y3cL99/Tx9/X5+ff++/v9+v339cnZ9/bHzMjP28rH1tFRTVlVUVfe3dz++PDl5/L6+vH28/Xa9vbI9svcy8jczfHD0d9YcHR8Zn5xcXB7Ym1mbW9nYmttYmNnZWBgeX95cX54TURR3drc1tNUVtlQQ1XCw8Pf2drFwcv9yMXGysjO29vE8fbx//f18vj98PX30d7V0VNKeXdPdnZ0THBBTkZHQ0rVw/by8v/85Pj5//D84+Li7e7s4uzh5/NXV8DX1Nfa3dVedHVKfn98f394emR6fGR+eWF+eX9+dnZ/eXB/fGVhdk1BQd3bxfXxw/P9/fn//fD7+fDy/czxyvf88vD2+fbH2NFfUUhOW11cVMr0zPTD3ttU0t7QXl/RVFfeVFtd0dDW39be9vfGzsjI9PH9+/v75eHk++T58/L6+/DMwcXA0FFURnZ3RFtbRVpGX1t2c3Z3SkxNTEJBUcfc0NdQWVNQQXRIQ0tARFhaQk9GXlhc1dHd2tfUUVHVUVRUVMfAz/D2zNDT1NFXWlzc11TS0snPyMr2/P/k4Obn+fzx9PDIwMLYzfXP8/LyyNJRVl1QQVtfU9xU2drN2t3GyNvMw8HEU17Vw8bSQk9aXUNNR0dPWlFHQURCWFRNS1jV08zH29va1dTe1FJXcWd/emRkZGVwcnxKRnl5cHJ8fX1xRUZKTVRGVcHf38/08f79wc/21dLDzM/O9f3y987+5fXx8vD88vT1yszFw8XB/fHLwsH1zsRcQVt2fUt3R09LUddeUtn09cXSUtlUX1NAdUVV2NnfU9bYUFlSWUpOdHNnZ2F6ZGN8R3VJTEteWkVkZHx3TnRlenx9fHt4ZXF3RcXCUVRT1VxEQVrZzvD45eXm5/r49tjB9fX0zNjH29/TVVTUUdTF/f73ycDMx9xcRE1E1thdUtfU2NdST0FBX11Hd3Jd3FBxfHBFQUZWzfT8//bKXnR1SXVa1t/D9M3Z105wfHhmZGVgYGFnfmVvbWdmZ3N0SFpPSEB0Z2FnZ3hKcE7b28b331jTVUVTxtDB9sr9+vHJ/fXN++T+4eLm4+L9zsje3MvYVfbz9/3w1F1QTHdEdHJbV1TX1nV/fmdld3xL0VFBdHJ+e2RkfXVLX8T18c3R2tFSUNZRQkdc3/XWUtRe11fQV97MxsDAQnVxZ2BjbW1kfnZQVEte1UpPQ3J8cXJzUFl2UVt1QUNIXNjey+X328rH09xdVcr28+Xg+Pnh5/rk98/w8Mv45P36/PfCx1Pez8fVydxBTHV8cn5lSnRMX9Jf1N3eVlN3eX9nZH5wf0pPTk1ad0xTR0XQ0tfcV15FQ3xPSX9D3dj1/P7/8/bU1Vt1RV9SWdDW1sVQXldQVsz3/fPM9cJdR01SU17S2sv1w8rAVNjcUFJR18X0w9zx8MTLytna0Fb08cjO+vHH98jAwdjSyfH0/+DwyfRUTXRlekJGTdTCWV3fWHVDc1vD0FtRRH9+c2RneGRM0sXE8shZW0Bxc3Z8Qt3X0s7N1sH1w/H39frh5eT7+PPw8MXf09LH9vT/5eXl5f3J39ncxtXF9MD239DSUnBCQUhAdHVGXkhFUVNzRlrXwc/08fzOwdVTRdbRws3z+Obg5OXw98H39cvAwdveXE90cnl4d0vUU8fK8czf1Fp2ZXN2dHZJR9JU0dZeREdX0N5d1snwz9/AwVBX0dj99uXv6+3g4fn09PX2+/nk7ezm+PXUXd5UV8FQV/X3ycvfcH5xfUFVXML7xEBLfGJtZ2Nlc31S89nZxNnfzNhVychUwvLC9PXfWN/cwvv6/ePn9P7xVVpbfHl/e2FKSXRdQk3UV0pa11Ff8NzQztNOSnd9XcfC8OT2/eb9z8JVRt71xcrl8vrl8PT0xt3198ny+cr/8sFSUVhD08Lax9ZIRkF3eX15fUhJcVtUXtnA3ExFdXN3dn9zf3l9cWRncHJ2W1Rb28zZwffcXVdKcE5PdlbQ3//h8cz30UZcVktbUETWWWRnZGZkdnR23Mff9vLTU1xcRdVWUff1yf32xszWXVDJ2VXNzMPCV1tbQdTW9dvX31tf1VdQXFNRQVBQUNXS9cXawFFGcXx0cHZKcEp/Sk1/cHd0S01CS3ZMc0t9YWJpampraGJ5cH5FSXFwcU9DRlDR0tVax9LFx8fA8/n4/P///Pv1y9jb1tRbWFFSQlpRXFh1WtTdVdvTVlFWUVfd1tVWUlheQUxHUVFadHl8eHtld0NEVcTCx9REU9DQVt7Q2MzKzMrKwc7D3tLEUVXE30xyeGV6emV6c3l8SkJLd3N/S059eXphY2Njb25tbWZ7eXNNT9TPy9vczN/PyMnN9vH85ub7+Pv+4eb68/DOxdjA1tfH0VFDdXxwc0fX105PW0RHTk59R0FJWdVPWVxX2VJAW1BDWNBUd0TSW1zX3FfTzfzIw93V38RQ1cRX0dnC3tpXVtHZRFlZdnR0Sn1Pc3ZFQXNZUkJa3dNAXHd9dndlcnthYXh5f0BNQdj02/b2ys329fT98fnm+vb7+/Hy+vbw/vX18cjd0V9EWUR1WlVY1dNBSFJCQlbR3dvNzfXbVlDa39HEwdnAxdHMzsHb1E1ERnVLUl5a0VJXxt1MX19GWlNZwPHF9P/88fjyyPDN1sbP0dHRTHRESk9X28fx/djOzURwTHJ7e3h+dUpySE1wSNPTV/bx9+T+8M/I0MTM8/T45P7k9PH99tHB9srbx83E9MjxycXb3s7B0NNRU9zH2tLd3tHa111UUdDQwPTK0FLX2lJZ09zS3srPyNrS3d1W3cXT28XE01BGTkNfXc73/Prn5ubn9cTeX1vW093Q39/T0VBU1tLD8MnT011Nc3ZkeH54dURNS1HAyPny8/T7xvTHyd3xy8728fDy+Nv0ysTdz8Xawc/1/d9W2vpHzvDY/PfXWlF8fHRGXlBe08PQXtbdV1XHwtjEws/Z0MDL39PP8fPw/PD1wN7S215NRV5U1Vx1XNxdw/D3/+fg5/3x9M/f2fbETV7F0t7c09/H29rOU0hMdnRRWHVzTExF1HR/cHVNRUVTU1te9fLZU93dx/Dy+f3KyMrHX1JcX8Lw9s71w8jywNbQUNbA1k1LfWdyTndzd3RDXF1Q0lBAVFde1djXxMrPy/bK2cLBwPXY08VQSE9HdnZZWllZSnZIQULW2tPMxlTQ39bVVNHFysj2/MrBxdPTVHVzcnVIcHF0Snd/cXR1X1XY1ldfc3ROdEF0TtHE2sP12EVeWFvZUnV8TFpCSElY3tDU20ZKRl7dUVl0eHF0TXVyc3VbVMfOw9raxMzI0VxX2/fx/Pz/8/38/v3K2MP1wdNwe2d8eGdnZmZ/cnx2eGBnfH9zZWBjZXp6cn18cnJwXVVZ1sHY9vTTVNrN2cvNw/z5+OX/ztjH1MDAQHVGV13H9cDPwlPcwV1TVktPTX5kYGVkfHR5QUdAUcxXcXBkYWViFWlqb2Fwf3B1cn9NRkjZ29zH9cXeyPfK/OXm7uzg4ung5+b65+Xx0tDG0sz32V5JfWRzfmFkYW9tYmJtYWdgeHl5T09lfHxkeXR6ZWRgYWZ8fdXeUt7fX9fI19bfRU9X017QztjJ+eXs6+3v6uzg7+zh+vHZ28nIyPLI28NRWcHTTER8enhnY2JsFWpjbGB5Z21sY21nZGR4Zmd8T1Hd987b9MnC/vL38/P2/Pz8//jl+uPs7Ojv5PLxxMX0zd5XS0NAUFfQzlBFX0tOdn9yYWJjY2diYGVhZ3ZIWFdEd0NMcnRycn9mZmF+SHBc3FnQ2dvy+uHn5+bj7OPi4u3j7JWX6uvg5efl+P/9y9rf11rUWlxdcGV6fGR+cmVgYmJhYWd6cUJJ2vDw98TU097VVtDGU1PU1fX9+eT5/v75+v77ztVFQFBQ0UBG1tXc8PH+/8/Dx9hU1F1FTENe3czL88nQUlNW1dPQXEd2dkdNd3h/f3BDU9reWVvQVFzcx8bYyPL67ezi4uT++uX75OT98vDM8Pj6/P/6/vz4+P/23dJfS0hJTH16cHNb2szxzcDYzfTBy91aU3ZLQUNDcFtQX93E8PLGz8fXWEZPfmRlenFa1s/b11TXwNjCxEbXU1Pc38xV3s3G8v7k4OTl/vzKyPzI28DGz/b28vHAVl5ZWF5ZdnBwckBT0tXX3N/3/P7n5eX89MFR31BAXdzb9fnn4eH6/fnzw9FFdndye31BXVjV0lTG9/3z/Pv88t5U1Ut2Q0daUtXf2c7QTltSXFpFT3N4ZWV/ZGR/eHN1XVJfzdxV301HTEtAUPTL9f/+4+L65+fk//T21lPUUcn38PPDy8/G317ZXHJNcXNxfHZlT9BRx8T1/MLI9vXAxfVSTlBFWNRRVkxHVtDM3s/P3srGTXdxfWFhf3l0TFfZVdzNwsXGytNf0tDZwvD9z9vHxMvAxcRfRF5EXl5BfHxMSnd0QkN/dkJcVkFHfWV4cnZ2TUVIQ9feyv32yMHO9M7F2FFAckpQ3cXG9c/D9fPxzt1fcnlySllPQ0Z2RtHeyNvbwdPY09XeX0d0e3FDQEhIXk1BVNnAX05Lfn5wd3xme2ZgfnJHQHRaS0VVVN/T2tBc1dPPysnxycH2++f798JTW9bbwFTX0kXWxtjF19NSQURHTXd3fGZme3l6fk11SVDcw8DCVUNzc31keHl4enNS1lHAx9TT09VJQVhNSnd1SXZD1kdMWN7ZwPbI3dNTUFbT2E1OTVhSWdzWQVxdXkxA1EF3cXxkZ2dlZWV/c3FPUEx4eX9nZXNycndbVtvw5+Dl+fr8yfP89PDz/8r19snx8fXM3Mnw8cbHzFNS3NRIcHZ9f0ddUtdZVFB1R9BSVEVPeXl9Z2V9SHR3X1ZWWU11Z2BnZmZmeXplSNbZ2vXMU1lZUdLK8PTAw/H1yPX92lLQ2szx8/P09vbDzFVefWR4enRDRVl0SHdzQFDB101LfX1PU1BX1MXM/OTzytjc00FQw8RWUdjH/Prz/czHwNDH8vrzwsbQ2Mv0/fXE19Db8+X89vbwwsnCVFx2fnl/SU1FQnZ3cUpMSXZmYmBtYmRlf3h7eXTezNBcdXVwcVNa38XdyPPm5Pnn/P76+Ofh7+Lm/v/4+/P098nU3cbDyM/EVdfZyF5IQ3Z9fkh0cV1eW1Zc3Nz38sFFc0NDTNzF0FdQ39LHxtzX197ZVVzSXUlbVdrL8//3/f3/++fi4Pv29cv2+/7L2djOyfb39NvRVlNfdH14ZmBtYmdkdnh4emdPVsHUR0hwR9XF8/P28fX+5eb6/fD38Pv8/fz19NrHyvf2xsjG1vXx/PDP9NFQ3cry3NrZ1MzK+P318sjay/DPX052f3NCUFxGW1l2QdrZUkpbdHB1TFxITUpwSFDA2NHbVND1//3Dy8rOzPf88/Dx//jk4+3m+uX+zNLQ3MfT09LG9c7A28fG3NnO2FVCcn1xTENATXdNRUXc1dVVQFBR0dRQ2NbY1F/DX0RcTEVCVttc0EVDX1rK9VfBxMbP9uf85+b/+/Pk/1DewcXc0P7MwPXE99LHzHd2cWRgbXlnYmFvYm1lXn1lcH1/f1ZWckVfXNVW//TWxsbPxvvg//vl/8vO5/rFVtfE3fT78v7/8srL5/jYW1HXVNrw8cr29d9e9fDZU053ZGZxdXZweGRgfkp+YWJmYWd9fWRmZHt6f0pHWE92fHt1Vdva2lBSV8jz8PfNw8P39PLl4Obx/f365M7eW0LWUNLYwcdLT1taUF5Zc2BmYWV3Sl5zeHJ6SlpPcGB9dHh0QV9/ZXB4d1pTVnl+dX1D3creTFBWUfTk5PfO/fL44O7p5uDn/fjg4PfHysfby/r4zthaSHBKXH1nbBVqamFkYmNuahVseWFiYWBhZEzQXER0c3xK2dtQUExxT9X/8PX11lpe8f7L88JQVMX6/v799s7I+uTw9sddVsLy++X+8VFIVsPZVF99YWV/cXRwfGZsY2djZmFoamhhZXlweXlnf0JBWUdOd07SwPfl5/vP9f7l5ebh5fjk4eLi7eLl/vPx8/DPV1nU1dHIz8HWW15Md3R3cXple393cU9LcHZnZmdmeWRleWVxdENHQEFBSEhCdUpydnh9QlPQ0FhPTdHR2svy4fry5ebs4uDh/vvl5OX7+v78/Pjk+v/10U12dHB/cnJ+f3hlcUpIdmBvbW1ubWFnZmd4fndLd3d6fFhNXF5dVEHd9Pzl8/HcxPzz5Ofg4vvk4Ozu7ePywfP9//rw/v3y5+Dh5/7BSUpKdnF/cn5ySEdYSVBEZmZhYWJoY2FhZH5IdVlGf3xydHRzQ3VxRND2yMrw1t3DxffO+OPm4OLo7+Pt+v7/9fXSzfTD8P3k5/vlw0VNSkt4f3N+cV5cQE1fQHd8ZXthY2ZgZ3RASHZZSXJISkRARllJRFb0/Pfg5/TIw/PM8eX54e2Vl+qV6uni5uH/+fr08uTt7Ofn5PHP0kZxeHlnYWd9QEtbVUd0eGZsbGFsbWF7SHRGWkZBSUJwSFFLQ1Ld9MHw8czM3dxJS9zW3PD+5+Du6u/u7eby3/Xzz/P/5OfslOzh+//ERtPRRlpf1ElG2FVcW1xxY2dkYGxjZ21hfndxeHN+YGV3TU1b3tHR5O/j5ubh8vT75efj6OrulJCQl5SU5vH89fXKzcdUxvj68cbBWWRnfGRkcHpkfEleQklHd2RnemdnfXB/e3Vec3VNeGRhfnF+SnVxSVD1yMj31UV1TlZR9P774eOUlJWWle7i5Of55OHx/Prn4Obh+/TfQURBTFlwen9wdX52d2Rgb25pb2FgYXh7fXhxQn1mZmRkdtRRWtz2/P7n4eX3zMVSRc35/eXt7+zolJXp4P7C0Pb/yMrz+P767OL8xFZacFhUS3RwTnd+dkp+ZWdjFRViYm9tbWNhZHFkb2lpFRduZ2d+S1TczOX2xdFeQXde9Mj2++Pp6ZeX6ejv5P3x/fzOyfX39fLh8MLHW0pzQ15GXkpNRndRWn54YW1uaWZgYWVneHp5e2NtaG5oFWB7e3J3VsL1+MTSV3NIdk/LzvP45+nokZbqleLn5/7n+vbD0M/fxvHB2Vp1SHBKTkhOfHFKfXR+YWIVFRQUYmZkfnZGQkJJcHlnZmNje05Mc0fHyvX0z9xST051StfWV/f45Obj7eDl+fbKx8T3093D3szx/vnC2dna19bGVV9aTkxxdnRkZ2BuFRRsYGF8eXNCcn16Ym1oamlkdndB1Mn85eTl/vzJ2N/G8vH85efg7e3t7eHn/PHwzsjPxd9X0sPYwVRZRUhc0NbG2tZGSlNJcXB/cmdmemVwdEJbTd9TfX17emJrb29hf3xLcUdVR19aTXJmfnRJ1M7z8uTv7O3o6ujn5+Hl5Pr899r08vD4+fzE38rJyP3K1EZKTnF8c3pjYmNhZ0zRWVhZVFJDd3B4Z2BmZnh0dEpE2cfX1NxLcXx4cnRQ3N3B/ef6+uzm+OTl+OTn+Pbw/fjh4e7u4OPg5uDi4/nwyFVfXl5BZGNhYmBmfXBwcH54fnxmb2tpFWppZ3lkfEHVx8HYUEpXRndA18DHw/zn5+Hj4eX6+vDw5/v3xd7Gx/Tz/fP8+Pr64OPk/f38w9jA2NFZT0xJWVRU2MXdVEJeW2VmZmNib2Bnekh9enNY10F9dk1KSFtWVNjH9f344eLi6+vs7OHt4Obh+/rk4eLl5OPk5uDt7ebl//ffRUVweHhgZ2Vle3lcUE1edUxPen9haW1sYmFlcWV4cnZRQ3ZLdk5LTl1VzdjVxvT4+vri5uDt4+zj4+H//v/k4ufi4frg5eTi4ub2z91S0lxZTH53cUpdVsPWQFt0Q0FyeW1sbW5kfnJ1fXZLQ9vdX0x2dXZDU9vF0N1e0+Xl+uX75OTu6eLu4ffP9vrl5+Hl5uLv7uno5/LOU9zVUVl8f2RhenxDdHh/Z3p/eXliahUXamlvbG5sbWB5SlNZSEBIWVDf9NjH2VHdzfjm+ufh5ebj4uD69NrN9fD6//P9+eT44OD898zG11LJ2kVMdXdwTdVXXlTY1kbc1nBkYGJibWFgb29tYWBwRXxlfnN8Z393cnZ0SnJDwvfK/+Tn5eHv4uPt4uTn4uPh5uTk+/jh5fHzyNBcV1dLdnJ4ZmJjY2Nkfnl5eXJnYGNjYGJvbGliZmJne3F0fXBMdXR0S3Z0X0tIR1pHRdj9/fj/8M7Yzs3C8P3J28P0wMry8/fL9vz8+fvO1dnGUVZUUXB6cE9V28nUcnR3eH5kemJqa2htYHt3ZHpIdUdf0dRPWlPVzPT+zFDE38z/5uP/9PbO/ODs5MjyycTGzcjeV9VTUdzLx0p3fHl1RE1weGRnf0TOzlZGcWRlS0VwfnpgYXpCXENJf359QN9cXEhkeHPc9N3FRXVB3/vy/uTPwMz/4+fm/NdGXPXIxfHRQF/Y/vzy9UR0dlTZT15wZmZ918HMwEt6ZEnWQVRXdGZlT1nRzV94ZUrS3/f3VnFL0/H45/zQSFXx9PHl+9rE8P7m6e/lwsr+/Pvh59hE3N/D//jGfmF+cHR+emdiZmV9X9JSem1hZXZNdXpgZmBkWsH1U3lxW93K8s1bU9nb/eTk9FNBWNL0+ubx09TH5ePj5PLO1NfH9PPA011dyPL5/MHYWl7B8PBXWFFJXszDzdV1fnxMX9NYdXRhZkpZV1hJZG1yQU5Ad3R/f1HJ8MXZ2EHR/efh5OT2x/vi6e7i58jA9vjk/P7OUN3w/PbLwE90W1TF1lhHcXPf8fTc3HF6c0HGwvXAWE9C1MjEz0V4eH5IQk5wZ3p2W9vU21x3WVLBzsXFQUlAXPHy+/rexfX85uHi5PL1x/bz98JZW1bXyc72213S2PfwytlNc3J4fXZeX3R1cUfb2vTbXVhwTE1XUnF3dUJUxMHFV9fTw/X8+trT1F3c9fj69cLZxPbx//XawV9EVtHcXlpNXtrJ9snHwVBTw9rQT399ZX9MUsbS1ldEwvH09N9SdX10TEVDdnFxT9LaxMz1wtbI//3+99JbT9DcwfTax0VZy8z0w8RTdlNFQFZJdnB+TlBc0NBedkTUUt7KXXN9c0nRysfMRkfF28vx9NxISkp3WFtdTV/Exfb3//fWx8Hz+fT81UvX1Pbn5+TD2N3I+Mj9w0xKeXZPRVB7cHVx10FOR35wcEFRTEZ7Y2dgfURRVEp9ckP0/f/1UEVxQNvYyNdOTU/Xxs3M3tnV2/Pw8sJfRkXeyv303lNCQ8b++PDBX3dCVsXH0k90d03dxNZcRHV3XsXcX3BkZ2RyT0BJdXJ/R8LxwtVTSHF2T0F3fGd7cMD/8fbCw9vw4e3h9FdNUs3L98jEwFxU9Pr699lRR1/Rw85YcHt6d01EQXZMQ1nCwdlaeWRgd0RTUXFyfX9fwc7I01B2c3B/cnhmYGxkTV/XU9FcSUVNWVN3fn93wMvG2NHfU8X+5OLm98NF0VxEUEVadkzV2MbL29zX0MbTxNB1fnl3SkZdXlhOWff+5fvxzUVDdn1KdXB8cktARcTe0ldcUUhNQEx1cEFS2/f1zNze9PXz//TFWV1fUcD09NNFR0Fdxd7XQUZFR1ZQRH1le2R+TVzaxdLKz//h+czWX1twRFdeQnBLRtXMzNr02tdPRt1HcHt5cHba98D01l5BW/XAUNVFRXVG9FxCRndyeUdddFHRXk1Q+fPIwNxXTtj91c3yzc/87OLl5fLYQE/eUFzF10p0yspV3cbXRV7OzNnRVl5a8uf19vn019fy983B2t11WNnUVEVLZW1/fXp/fU1yTcPc1lhLdn1U0lfW2M/SwOHn5ebl89zT2VRTWEFMc1jeR0FYR3VJVFxZ0VBaW9v1393HxNjN9vfFyvTd2/f09vDx0kRMdkN9en1+S9bHxtDfRH91TVFbTVJcUMD85ff9/MXDwvHHU9lZSFxc2NPFzdXN9PLJ1MRHSNba8srO9NzM3/T+yvn2xPHx+/HN9VJbREJIfnR8YXBA0/fD98VeW0xdQ1/WdVnayuX4+vzBx9Pc0VpdTEtHd0lxdEB2cnJxX1pSR3VFTFnE9fP2yffJ9Pf1ztr39Mr5+/fb1VVBdk1FXkF1dXJG3sPG1ddRUNnfwcXUy8j+4eDi5vvywsrywNlAdHR0RE1RWHd+bWF5eXZydn9kc3FT3NbH1Njy9P74+Prz+eXk5vj21VbRU9HXRHBmeXB3QExMc2RwSl7B2cBWVNzO+eTm5PL29Pb38fzY0NTUyvP82Xd+eXF2Z3lyfXxhe0XYU318dkRWUcTKxVBLWsz+/8VXRUle19j11tVdUcv/895dSE5EVc30w91XVsHy/v3xwNBSxM7awVt3f39AU1XZ0VlISFtT1FFOQ1DE9vfM2FdaRldX0sXC317Y8c31xVp3fnB+fkhxeXt7dl5QQFt1c09BWd/eVl/S8fLl5+bk8vf/8/3ly1RZ11fU2NJMfH13cHN0dXphfn5yT1hfcXF1XtnN8cvI8fPg7Ozj+PHG3cDYw9NJdXVIVVBBdHp/fnhlZHlkZX1wUtvxyNnfUsHJ9Pv2zMfaz/b889rTRkZS11FYQnR2fHBxd3RId0tETlxdU97fxfD5+vbO9/T09szz/fXJQ0Pc01NYQVl0fXx6cHVOQHdAWEVPRtTR3NxQXVhSXFhdUFfeXVBOQdTXVVpZ1VFHX3RJSnVbSExZWFdfUdJUwMDc0dLZ29DX28/AxN7A9/n5ydra39RV0Pf98PPx9PbIydjW01JW11zWVVhAdU5STUZKfnd8fnx8eX5nYWNnck5bQV5aQV3H9fbx8PH///L4/Pz79fTx9PXE3dxCdmZgYW1nYW9mdVxZXcbww8zw/Pv9+Pr85ODj5uHv4Pv1987VRX9nY25uaxVobGdkZn9/f3ZlTENxU1lR01P0/PP/8eTg++Pp7OfH2E98f3lmYHhxWdPbycfcxMrx8fbOU3R3SEZHTNbUWMf0++f4yklke39yfXhzeXNa0PfP0FdM1fT3+/72zFNdRNXG29xSV9rJ+/nx3Xd9fn19e3h8fUxF1Mr9+Pb95fv98PDN1VXdUkJU3lFT3fHx2lZZemBnemZnfnJxZX9aVNDU2lDe9sz29cXA0ML1xvHx3trY9PD199ZLfX9Adnh0fWVlckZRzP3w9fPl/Pj7/fDcxMre8/71zdPFwMfQTHJ9ZWNjYmRkYWV4d0Hc8PfF9fXx5OHi4Pnn5P/55+3g5Ofm5+Tx98JbcWdia2tubm9hcXVFUklKSVteWNPSQXd8ck9yX9Hd9vL4+cjIydVbWkNCSl9cTEdR19rTXUR1cVpW08TS3tVZXlDdyPTz5e3r4uDh8P7y8f/Lyfff2/b8+/70y1BZ1VDdRXZ1emR2fXdNdk5LTMbEX01/ZGZhZWdld05HTUPT1sXf09rKzvPl5efl8vHJ8+fh5P7y5+T68tpXcGFjaG9gYHpnZXZ1W93H9Mjy+ubt7+zj5Prl+uTh5P365f/y1193YW1uFRQUam5uZmVhe3x0XdTS3tTf28XK9PTxx8za3sPO9PH13VpxTEd8eGR5S1j19sHM1dva0uTn5ezg5OT85PnCy8/a2Vjbyt/9wUZURd3Ydkh9e3F9Rl50SHxmcHdczNPT11fcUND0x8z0xcfH9+T689xNQ3J6fHt+d3ZLRE1dT3d0dERZV8DEysjf2sby+/7l5fz/8eXh+/fXdHBwcXdIdHZ8cHx7dHB+eGR7fHBNWEx0dnNPT0RFQlZTUd3P//r9xNVHQE9GXERZ1FTZ9P/h4+Di4+3i4Of20tBHSkFLcHFkZHt5fH1ER3F9d3BwfGRyfnlZRdDEzfb09vrl5eXn5vvK9ffA3V5dTnJJTUtISk1HfnB0fUhJc2VjZHh7dE3RV0TUzvfw+OTk9sryysfI9fVXV8XXxM3NwU9DUnF+d0plaBVjZmR6dFpzdtHewvf/5fj35ODm4uHm/MLxys3w9vfXSN/R391MWkl5dnF6eX5mYmB0QH5+dFlxfUdRTkXcVkxJUsBTXtjbVEDR/Mzb3NFFQkXf3Nz3+fb28fPz9/nzzPfy/P7Kzvr2zvX3z1JAVENAUNHVTn12fWd5YWBjZVtAdEN2TnZOwPHx8fX3/vzl+fT2ycv52sTDUdNyZGV8cWdvaBVoYmNmZWVwcXZU2cTdwM7O+ebg5+T65fzM4ejq6PreVndaTnJ1SkZNdEZeRUh3XUBLxcfe3NFaWUxE38L3xcryz8XcTHx1e3N9fUVA1/H2yc7y+vL28cPSRkBcS0JeTHZ/YWdtY3J9enppbWJuYXp+SV/1/fT45uXn5+iXl5CTlOnj5uf77Ojm//Xk4fPB1npjYm1uFBZuaGppa2NnZXF9ZX56fXRFzcDWWVP0+fD4/Ofs6+7i+8HZU0NMRd7L9sJAdHZ0RVFXU1FdS3deXFNX19nO8vr8/f/88VBbWEbQ1k11dExX2Pfx8ffexM/EysnCzdhV0l1OS0x0ZGZ+SFlOfmdtFWxneX1xRdbR8vj64ePr6ezqlpfq6ezh+Prk+PrL3VFJRld1cn5gaWtpaGhiZnl5en5EX1TT2NNV3cDG0NPbX1xFxPbA9P/w8f//9/TO9fTL2/f+/vH5/fTL8PXGwMXdX0BNT0FbdXJzdHB0d13Fx8pdTEdyTk1ydnJ1V1bA2VzS01PZ0sP0wc3F18bYx/X3+c5f1d7O891Ac2ZgY2JhbWJtaWNlcExC1tBdw/fz4efh7uLs7+3o7unu5ubg5PlUdn5uaRQXFBcXaWoVbm9meH5zWV3S9/7h5+Pm8vrk4e/h5uDm7OL/+MnQ0EZ1dnh0TUh3fXZPTFlc0dtWdU5wdnFmYGxuYm9mfnXc0XNzcEJQTFbRWsX95Ons6ejj5Ofi6eLg+MnN1kbWQk1KZ2FiYXR4bW9oa21ifH5+TXB019L75P/89cnz8Ofh5e7j5eTl7Of09dFUwsrE1nB6YW9sbmN6YWdjY2FgZ35hZXJ8SnFEzNze0FHL/vvm5uXi4ub7//jw2d9KenJ0X9BA0F1Cw8n28dTJ1UlU3M3xUNrCUNjL+u3k4fzF19Jf3HRzTEZTUFT30dDB28zz/O3n8fvb0Fd3TUh6emBtemd+Z2luFGtjb2FjaWFjYHdDVNZZxvbm6pSXluqXle7u7e3i8fDk4ePh+flXWF9eW3J9Q3xlYWB6e2ZmY2ZhZnhxSV9FWEJd3sT2ytnGyfz//OX65/7K3NnH98/e2dzdVUdJdU9KS01bW1JPcH59cUB1SEXXx8ffXVlTUkdcRltSUdPawv3z+vr75+X8//H8/fb03l3VRkZxc3F8e3R9fnljZ2BvZ2FwUlHNzNv28P/g6JSV6ZSUlevg7OTC/f/D009SS3d2d3Z4eHhkaW5saG9jZ2RhZ2VmZ2VMQnFJW1FZRVdZdFTO9Pb67pXt5uHj7eyU7+T75u3t5uDk9NjG9NpFRXBmY21kZGBlen5yen59dMb10dZc291fxMvA9vfl+/T8+snQWM389/H59tpPQ1x1XsLSdWZwWnB9fXBkYmB5YG9mf3tkfVLQwvL64OHj6u/plJTq4OTl+vDx/c/D3spcT3BzZGsXFGpqb2RhbG1kcEhV/+T7/Pzk+vrg4frl5PjK0c/1xVVGR1VbU1R3fXVBRkdXxF5CfnJFWNvzxVJHcXFzfHN4ZWJsenlDUENxcEBc09rw8vv5/uf65+Dk5Of75Pn+5crCVktNd0lSRXN7ZH58e3R1fWBrb2JjcUFES35OX1Hc3trbUtXax8r7+v/w5+zt4OPt7eb6/Mr1yMFfdnx8emFjbWxrFGprbGd+eGZkfHVNXtrMVFJRz/7h6OPl+Pvk/8nLx1BGSkFaRNRCd0dF2cdX2t1FdHlxXlDdVFtQWtDJ38jB0NNHdkFX9PTF9vT3+Pjn5uX5+P39+PrKVNREd3dyemBpaGoWFhcVFBdraG5kcUN0dF5UUdPx4OHg6+ns7+nr4vrn+vXByfrw2fX12MHL88JaRV5McU/QVXF2TH9+c0R1cnNxf2Rndkp1d0ZORNX28szby8Lfyv3z8/rm/PX0+fDeU1dSSnRUVkh3TE5zfUZAdHVOV151UFhCTkdRWFjD98ZZTlTd1sbOx8DL8vz98/Pa1FLQ0l9UwtrcxkR0c3N3eGdgYHpmZE1OT1DMwsr44uzl++fh5+Ts7/vx+ufn+Of50HZ2T3Nle3B6YGR8enplcHJmYX97ZHhzc355dnd1QFTRXE1ZUUBd3sfczPrl5+Dv7+Ht6e3+9v3x2dfOzNrAz8tafXVIe2R8dnpgendLdE3cUdP35+TxyMzB3tj3+uXz+/bAxNrOwtFUXkBB08nz21NKdnB2SXRLf2NoaWNhcklFcWR+dkFQ0svVTkpZwvTw/+X5++bt7ezs4fPR3fXzysj010t3d0Nd01VUR3dJTV9HRtDF38L/5uHn9dBISlpYVFxDSU1HV8fx8MvCzcDA983C1UJR9fb98s3ddXBIdGRhaWsQExYUYnpzTk5GxfX+/vP6+Ofs7pSRlJTp4O/olZXi4fRdUnx8TXV1fGZ3cn9zZXx7Y3hwSlpMRkd3WVfRycP1UH1KUFPQ1VXVStfKyPD84eLw/Pvl5vP0yFdAWlXRUURbcG1sZmFhYXl5fWVleXx3Q1LL3Mf9/OXk5OX6//nk5PveV9pIfXhyT3J9dVtWU8L03UFc3VtzdFDRQF3d9v33+uTxz/Tk99bZyN9b38bG0lbG9PD29PfVcEtEXEVAUlBAd3ZwcHlke2RmYGxkYGNlfklMddnbVdXK8MJYR1JJQlpW2V3a5uDn5eLi9sv2yPXY9fn99Pj85OXw5P/W3NVWT2dgYmluaWxgZ3h2f3pkeXZfxvby+vP18/L99/Hl8MP29sry8vb00ddASnVheHxvFWtiZGVzSHBzdVjV39n19MtVR9bV1sz3/vr//MPTwsv1z8DN98DA9/T0xN5UVNRHVtxMfGV9d31PVl5QXUJV01b3z95YcURadF7H8/v9yfXOw8/0zV1McHJMSFLUSlpES9Rc0/H3VEV6YWZte3N/cWZhcHt5WNHYWEdS11fG//71wPfy+/j74+TCzsj45uHs4vzC1kdMcHRXQ39nY2Flclhc0dBcXlHc28HSQXZxSNz3w/T80dVfV/D2/+bxVl3d9/fK/fvDW3RLSnNGRn1gbm1hYWV8dnpsYGdzW1BET39lSlr05+bv4vj++/7/5uX+yF1OTVbVwfbyxltMXVbfx9JWdVPJ3/Pw8/tTdN/D9Obk989JU9FZyfz4w1hyeWV6TlBbQHV3SkHc//LOUnl7emdCSWFtahRtYH3H2FFWTHHVXML/zMnU2Mf0/eDj4efk+fr6/uTx1U5NTN3O/+H3W1tDUMLz5PzGVldTVNjM/stXSX5len5yeH1mZmVnfFrcx9dOXVNS9Pzy8lXTwsj64e7p5vfHXklX2FJGfGBkZGZ+WVTeV3RMe3fY39JYdVtAXfX5/fdRd3B5Wfb0ztxD0cPJ+eDi4efbXUNay8zNydLRx9/c8P7B3XN4enJSXUVCfmVwddP75uf/3dXH9O3g+fLI1FtFTcPKVdFxZmRmfGVnZ21ua29gfUN3cWFse07XxsfzzNzVwcj54uD7yNpd08n39f7z/v/45OPs4/nK31JczMLbXHR4ZHfXwc7RW3FhbWVAUkFMSUpQ1cTYzPT78cPYwv3LxMPYWVXf0lfZ2dhBZ2xjcE5OR0BxfHJ/dtnEwF5zfX9aX3dBUVZT0NrT/Pn9yEBPRsDPwfLz2l9X9P3i7uPxWXN9XdXY2EZ0TkffwPb7yl1S1VH18sDIxXBP2d/c8fDK3nlnfnZFXVpFSHNNUVLcztFAcX94dFZaSEx0X/TE0dreQ3lhY2VwQl5NXVh3QdPd9Obm/dlZ1cf3/PL6/fbl4frm4PvEXEJM09BUWlhET1rRxcn69txOc2Zmc1/WVNtQQEBY3v7EUkNxe3lFXFZeXVHN5e/o6+fGQndzdtnYV0NOfmR4ckvRVnB7ZmNpZXROfHFOTVBXz//9xF3Vw9H3+/7F0lVU2Nz55PZVR3F8fEbE2MLl5+Tk5Ozo4vnJ19VaWsbeR1dQX9rE9vnfcmFob2Njc0ZJQVJGVtr84OXJ1kl2cGR/dntlcnlLSkbFRmNvbmhjeljUSXVeRtHx5emV+s/b0VZXzvDx8eHj5uHg7eP101RQVF3UVNRaVsXy5e3r7/R1fmduam1gYG1heXVB0/fxXXdBW0twVN/cVdPI++fvlevk13R2c3hEQHB7Z2RzfXfS3F51e2VwfktfXljT9eTk+OPg8tVJd3B+dkJ3dUJ1Vsvz7+rh9FBJQUtbwcvM9PH55ufu7uTNUllMf2V6fHB/d1T3yfHk99Ncd39zd05U3lBYXMfN/+3kxF5weGZjYWdkYWVK09DO5flTfHl8ZWdkckl/dN3C/ODrlfrXWHZ+f2Z9WnVZ8eTtlJGX4+Hg5vHTW3Z1c3fT8fPn4eTJR319YG9sYn9yZ3Xc3vLk4OTwVNxYTUlFwUJIRMjw/uX4wNVOcX1lZGVxdklez8j05ef89NV1ZWxhZ2d8QEPb3Nr0/vLfSX51cGR/T1vQ3vfm7uqUlOjhx1Ref3ZR0MzXW1f35e3h9PRedX9meXRYV9XYzuXm4uDwx1FMZW9pYG1memBlXMT3+fzn/d9MYGNxYXdSSUrB/PD/8/PE1XBkYGBgZ3l4clLKzfPz+f/62NDTwvHe8vD9++f75+Dh5eD1d3JyT09HQNHF9/bAzfbb2V16e2NiZ01fXVPNw9fw/PX2UmBjbW5jf0hY3PX/+ODt4u3t8VhHfXZ0eXxIUdDX08RZTHVla25uZHJ8fXBYVtvN8/z/8t58TVVT39nYy/3w5uf5+vr0Wn51VERTRnXB+f3n4u7j5+XOU0RIcHx2cF3J3tTC9NHf21VEd2VjaGlsYXN3WM/3xvf89NBLSnR1c3dIcHx8SFNeVM5RcmVlZUxARVd0Wl3UzvXz4f3AXk5RxMFTxMbByPnj6JXq4PZVTUlH0UhU0VNdV9rO8vPCS3x7ZmZsa2JhbXp12crw/sj13FFBX1hfX1VWU9/18fT32MnXR3F9dnByTnVNUEJBW9nWVEB2dHJKTFpFT1PdxdjJ4eb5wHR9e2BgeFpXwfb//ebr7+3j9czAXlpJSnRBXdzC/O/h5ebyVUV3fk9OZXl7cUNGxMTcw1VLXltxdXR8d3FGxVbe01/QTnTe9F5OSXlxQ1/e2/XHVcDTdHN0enJBe39N1/P898/Qz/zKzP738PLVRlTI5Ofn7eHn/sza8/Tf3sbQTHZIRVNeR1ZOc3HVXE51TF7e2NDYUkZ3cWdmZ09CSVtcR1VW3/j85PP/yFRXUEB3WdFWWtrI/vjwXFJ8YmNhcnh4f2FheXxFy/j28fbd2vXz9vjl/fr+9vjv6PrBUH5xWV7XwMZfR0lZ0P3kzcVTe35Q0ML398XW9MnZyv731lx4a2JjbWVkYGFzdnZB//zX0llfxs/e/PXRQEJASlb18dRXR093cmR9SnRzdU93QVDH3dLbyvPk5ePo7efk/PDl4ezkz8XG39tV3/fbdUtKcEtC3dlUdV1WX1pF29NKdVhGUt7Gxddxd0/X9PX/z05xfWF4QFHS00NMVVnHwvPNXNXVREzS3EZwZmZ0QFPb8vnDXUNGT9729cFOcEbexvzk5uT6+fP1/ef+/c7Pwcje9Pry9cfMx9Pe+PXTW01eWUTb+/TJ1UB3fHxEWkpLcHd3dk1dX9ZVU0p0QF1WXEB+fnJKX871zsBZd0pSz/DC3EFBXl3Y/Pvz8czcVlfaxtvG2crz8Pz5+PD2zdfSx8jB0tJWU0Ld/efn+eX0T3R3SnZ+c2RneHJOU9xUzsxUVlhdU1vcUUFBV1BXw/TyzdRJdETZ01RTSnZDQlvc0PXEXk50SVt2cV1EXNzEwsdcx9RLd3FzfHRS1dRSRNzB/f3y+8jYz8TeVVrWTH/UwtDP2sPK09TfVVRdTndPS0DYXVJV2/TP295XUMzY0t/Y29tXV1lHUU5xd05xfHxxSkDUzNjF39nJ111eRUN/f3N5dE5YXlTV1PVQdHd8eGRnf3xIRMbK8fD14eXk4OT598TD311dVdfQVNL98t1HeWdmbWVze39OSljVVMjx9/f//Pv19PTB9Pz95+Tz+/fG0lpnZmNgZGFhfnxyQlvG9cVfWE53eGR8eHlaR1zf1vXDydj1/P7dcXR8e311SVRVzMvyyNvR1VVdx8rMzcJS09bXVdLMzdvc2tTb115fWdXKwsDZ3NZX0tXXXFFU2tdbX9jZ0vb58NlBQ0xhZ3txQ1FOT0V1Sn9yeHx0SnF9eXh7eXRJWM34//Px897R0Mfw5eTw38388vbExt/TTEtT10ZLVFxXw/L6/dBdR0RBdUtAVtTGVVHVXsb3/+T69F10YWF4Z2BhenVNWsTHUVFYT1XZ9PZbdUBDWkXTxsLYVFZ0c3NPd0tfW0Bzfk/bzs7Cy8H388f19dDFws755uPh+81SSkxKTlvVwtZGRHVKUNfdxsBeTnV9fXx+cE5MX1TRxN1UUV9d2dnTX0RSWEJW9fT998zGW0hDR1vWz/P8yMrIy83Z3ddYS0t/ZGd4cHZ0R8H55+Dm8s1EcUxbSkXb31Bc0/f9+uHi5slUXddbTklBdHFZ01BJdXx6fkRR01l3THZzc3bT8vDw/M/V0c/xzPnj4uD78P76/snc0VBAcHdLcXJ8ZGFC3tPSW3RzfHJ5cXdMU8PP28z65fnj7+7u4+X2wcNU1MnFzVBDcXRJdHhmeXB2V8RV0VPG29nw8vPK0EFHXFXf9Pnn5OX4++fg5tNdQ31+Z2NiY2dkclD19v7lyMDJ8/TcxMvB39nbzvHz/f/28Pb003FwfmdibGdxc3xycXN4StjHzvz988jW2fT9/vD+88/0zcZQzvz7//n/zMRVUV9CX0t1QHxken58dlvPyMr7+/r4yd7S3s7M29nT2/HYXtfay8LP2FtaxMBaSXFOWVfXQkp3dnF8eHl0VFl3Q0dZV/fh4+D799LYwNvbxPfy/Pvz5ebk+ffMwsbf0k12SUxGXNnL/+X9V1XdRnZxSXFxcnJ+f0Zd1M/I9/LI1tzK9dpGUtlX39tcdk5GQFJFXMzIxU1xeX99dEdOQEhxc3t9XcL8+/vh5/D7+uXm5fXC3VBaTkx5fU9TWUTU1tFdQkxY3/3h5/n2291Uw/Pl/83XXURJQHRzd3RCX0RY1NB2Z2FleXdaUlhUUXx2XN3Gyv/30VFHTFLfwsTT19fdz95HV19YV9ZSdn92dn50U8TL+uf/989aT1hTzcr12UJ0QEle3s31yvPCx//4zt1WV1pAXEt/emRtbmxmZHB0d3VzZWV/SFXdzt9bX13dyfD45+Xg+83BV9RFfXBwfXB2fHhkZ3p1Wtbbw1ZMQ3RC0v3k+Pn59cTb9uX6x9VGSUl+emZgZGR5dktBVkJNXVrC8P378PHAQHB2f3ROTU11XUV2cXRJ1VZW19fAxt/J0lHBxPTIxdpeTUZ1X9jRycNYWVhxcGV1xNHH3kRxfXBxdkVFXtRW19VHRFpR29zG9sjWRHdze3FPd0FEdX54QEdMRd5YXt7QUELd9vHh4frn+/3xycVTRVJAd0RWQEpwcnFZy83R8M7TXHJ4eElIdV/RV1VRV9jG9PPO9Pryzt1SX1/U1UTY3kZHd3plcF/SR0pwYGNtbGd7eXtwV1ZRysvC+eDr6emU7uHm9s3OxNnE8cJe1dF2TkVHRUdHRXJ7f2VwT9XG9vzz8PLw9P/++/7x9t5bQU9NWVlGXl1ASXZ9ZGRyTU1A0VBKSnZ4fHN/dkZKfXBLdV/z5Ofh7ezj5/7y9sjMw8bY2dvWVFfXx8HJ8PZQcHd0QNRX087J8fz8/Pz9+vj4/Pv6yNXX1VPfU9DwzFdHfGdnZH19fHVKdnN8fXBzdkpbWFbHwcLG9eTg5u/o7uL+w91UXE50dH50QExAQFD09fX5/P330lZYQNfY9f7998rA387y//Ty/fLyzd/Q0FdXVVFf2NJZcGd+dXda31xXXnR0SXJwT3R+enJwdU1UyeXm7ezu7uH7yd1bUlNfWFtOd394d0BGW0dxQkBKS0p3RVHa9v7j7u/h5uDg+uTm/vfB19BSQVLSTtZ8S1BmdE9ORt3W0cbP1UZ3eGV9fXdOdkN2Q9zE/+Lv7+Dk5PPMXXJwfHt8dkNHSEXV0cv1yMJe1lZa1kZB0FHV1tfQ2sbM0dn58vj7//7bXEVM193Q1UZ2fGRlfXpA1FpfQVpQTHR8ZH1yfU7XyffN9vrm7OLi4uH8xF1OcXNxc399fXJ0QlZW3dnW0dFXT3dBRkdWw8r08v/59c71z/L58fDI2FNDdHJ9fXd8f39xcXxK1dDRUVzdV0BzeHt+eXN9fXF2XdDZzPzg7umU6uLy0tLG3tzXS1pDdnF3SFFX19RB3VxNdn51Rk3czPf6/f3l/f/n+eX29PLdSX5ySkpKdXx/eGFnf3p8WdBVTVhYcWVgZn95c3N8R0NOVtXG+Obg5uTg/9NPcXZHV1FEXlVEV8bEwvr68cPC2l92ck9EVFXV08za3cXB1Mfh7OHg4PPYXlLVwfXG1NVScHl8cn9PR3d+cHxgbGhqFWNmZHh2Tk1e1sz94unu7OPwytnTV1XaXE5PXUxGTE1L1c7A2t/UTE95ZUrE9P/y9vb19/Py/uPk+PnlyddYfXh/d39/f31/fHN3WNPQVFhHS3h5ZGdmZWdleXJNcH1OQFXw+OXn5fPP2dbfyMjGz9vQVF3R2NDRR0pISnR4ZGNjZmRxQcTfw8j29vzh7+js7efl+crA2t3cVF9YT0ZJfmRnfXRwfX59cWdoamhjeHlHRkvV0Mfz5u3t4u7p4PzCzNJBR1NASHVASnx+SkRZX0ZCTUZ9fnJ9c0fTxNnXwt7Rw/Lz9vH38Pzwx9DS2dj38M9ZXVVId0pBd3BBRktyeGBoFWttenZwfkFSSlr35ubs7u3h5OT/zN3C8fP1013a0FZfXkhxTXR9ZHpkYGF+R8DNwsjL+P/l4ebk4OLm+vz69FVFTEpDSnR4eGdneHJ+Z3Z0Q0l1cHx/eX1NVVBSV9fd9/jl/+Ht4OPg5v/38f318vLMztvR2MHSR3ZR3VjV1k11c3FCW8zA1tjez8rJ8vPz5OX/+v7w+crDVkVRdXh4fntyeWRlZXlmZmRiaG9mZXpyQ0JZ1PHn4O/o7urq7ens5+X68/3C3FRLRkF0dnJzd3F1dVhWUkVX3cbB0s/29/7k5eX65+Hk5Obg5vr7883JVHV0emR+fnF9fnF2SE12fnhlYWJmemZ5f2Z8RNTX1Pfn//ri4u3s7u7h7eDy88vSzMbcUnJ0f2BlemV4eXp6dtBDcdPWwP/k7OzolpWVlpXp7uT8z8jFZWNjbm9gY2JvbWZjeE52cHZ9cnt8fHp0SEbd9fP98/rl+Pr8/+X68/Dx99JCT3R9SltFWFpZQUZTUEJBTk5DWtZeWV3R38v38/n75OPu6ZWV6u7t5vLDX3B9cHJ3f2djYmxoamxhY2JtY2NkZWZ6TVXa+O3plZfq7unr7uHn5PLKyVxweX95Z2BibG1neXJPVVle1tZTXt7X19j0//7n5/j65Pvl5OHj4+bxXURyY2JiYGVwcHZOTEhxcHF/eWRlZ2NkZGBmcUNY1dfM+OTm7Ovq6pXq6e3i5cJdUd1ZSGViYmxoa2lhZ2d4enl0d3xwQtvy5+zulZCRlpaUlOnv7fvIVXltaxVqFWpqFmpuaGZydUJNQEpIREVYWF/b9PPn5fL5y8bD9f375ub//MpdS3N0RFnW30Rd01RQUFZU39VZWUxwfGdjZ3x3SEdBwPHy5OLql5Tr7+zm88VES091fmZtFRcQHRITERYXFhVubmhrZnbF/OTol5SRl+qVlZXqlOjs595Kd3pibWgXa2pqbGxmcEdT3dbezvXLwP7l5OPt7+/h5v755+fh5/bWXHJiaxQVb2BnZ3J9f3ZwfX99cU1EREFIeGBjY2Z+en50TlDU2cz64+/p6OuUlent4efwyNZAcGVtaGtuYWZkZ2Vke2Jgfl7B8eHtlZeXl5WVlJSV6+zk+dl0Z2JtahUUFxEWFhYWFxVpYmFlTNHdx8745eTg5+Tn+/3y9fX85fnDWk5wemRnf3xydH13QkRBdEpW9Pf098rxx1JISkNN18bG8fL/+uDt7+7j4u3p7uD4z83TS35nbGgVFxEQERRob2xjYGBnfVTA8uXh7+/u4uDh5OPs7O3h/vDLXUt4Z2RmYGJiaGlsYmd9TEnUyPHk7e3h4O/s7OLj4uPm5ub75//N2Vh2e2RmZmRyeWVzS3J+YWJgZ3BJX1hHSnZyfXBKWV9VzMfewMr55+Dm4ujr6Ovp4v3b2E9/Z2Fia2hvbWN6fHJNT3BB1dLK5eDt7pWUlZSUlZXqle7m/shfSXxmb21vFBUVFhIdEBYUb2FwUc3l4urr6ujo6O7v7+f/+fHE0ddJdnZ2dnd0T01b1VBSUdVQ0Mr1xvD6+v33z9ZET3VH09PBysvBwvjk/vbw+f7l4eb7yMBSdnd+ZmNvFWtoaxRobG5pb2RyTlHM9fT95+bh4ODs6Ojp6e/t5+Tz20h9cWVhYmNta2tpaWJgZUbZ8+Dp7u7rlevu7uqU6Ons7eD6+PfDWHN8fH5/cH1mZXx7emFgYGBhe3l0dnZaWURMQEdd39nfx93bzc3R1tBUxPDy5Of/9fb8xdba0dHZ111GWdXWVkVOUtdX38/y8sr45+Ps7uuVlJGRlurv4uTNWkt5YWxoFxYQEhMSHRMWFG5hcFTb9fzn4Ofn5ubm5OX/8/fP29J0eHt5fX5OSnZ0SFNfdHRb09/B8vnk5OHn8tLawd/czfP0yPT85Pr54ePg5Ofg5vnz/vLTT0t1dmVlZmJoFGoUFhEUb2xtek5dUdzx5fv45u3i65aU7uTm5MFecHZ2YWxubm8VbmFhYGZ3Q1L15Obl5+Lv4+Dj7+ni4eLv4uHn8t5SRV1JSkhxf2ZlemRmY2d+ZWd6dHF5cEFJdXFA311aQ0xJdEdWWVpaVtVARdbJyNv1z8nD19rE01VTWXdJW059ZXhwcHlzcUVITdHQwc7+7OvqlpGWlZWX6+H68MBTe2ZtaRQUFRcQEBEXaGhjZXh/X/f8/Pz65Pr6+ufk/uX90EJxcHRzfn9lYG1kc359SFhVV9jz+v7+5frw9fzl4fjLx1B1ddTH3dDFzcDFy/758fb0wNZRWFJddHF8e2NgZG8VFRQUamhjfn15en9wTNP24e3i7Ozn++bm9dzT1VFHdnV2eWZhZGd6fnZHdEtSU1XB/eT4/v7++f3/5uf75Ob49//z9PbKzcdFdnV1fWd6eHl6enNJcmZjYWJsZ3p2QkFbQE9OW93HV9DQ21BTzcre1VdeQkHS0MHG29jVU1HbxEV3dHdwdNLw/cDa2N3d9vvg7u+VlpSV6uri88vE3V1FX1ZIZmkUFWpsb2BhbG9iYWZwRU1LR11U08ry/PP0wdZFRkN1dmRkZGdkfkJJf3l2RFbB/uPu5v33wMHIyv/58vf09vXNw1dYX9DGzvL65+Lh++Xy+uPg5vv+8sLd3dxdcmwVFBATFhdqb25tY2ZxRMD9++Ps7unr6OPz0XRzfnNDQEx3emNtYmR8dHRIT3VFxvvn+Pvn4+ztlZSWle/s5//9/fz92dRES0hPXlp0fWdkcUlXxfbKxEV3S052cUp3cHN2dtTTWEBxf3F2RdbYUHV1cXN0XM/89/H/8vP95OTx0UpwcXJ/dlpDTHR2TF9Vxf35/f/h7euUl5Xv5/r5+frk5ffO1kJ3T0BBS3hmZ2NsYGZibGBheHZbzeXl5eT75eX5/P320UxLeXt/fmV7emdldlfN8fHy9sP18vn5/Pjy9PXB8+f7yPXD3NDewf/m//fPx8T3/vrk/8z3yNr18dhbSmRgYGBtYG1uaGpqbHhLXN3Zwfz8+ePhyMPeWkZKT1bSQnRLTUtIX9HH1nVAVVbEzsFV3sXD9PPy4Ozn+/jk5uHn5+T49ffMyf/yxkRYXlNW1cL7/srFx11JQnRlYG1uYWxuYWVkYWVxRdfRxPL0w97SV8fx8vb3xNHD39vI10dOdnd2dUNRUkNaUF9YxvP+//7l4ezrl5GU7+Dn+vL38f731URYQ0pBXFlOfXt8eXh4ZG1paW9gZHxLXVxEU1dR0PTw21NAT0p9dEBwYWNnfHZLRtLOxcTy+f755uf898XIzdLf3ER2dE1Tx873//70zfD/++bs7+Lt4+/t4Ob7w1JaWUxxfGR6YRQWFWoVaGxtbWdz383O+Of48fbyy9zU1txGeXp9emRnZGdnZ31EQEReWUxe0tvK+efi4+Tl5uPh4uzi5/j55/nCwMPVSE9fU1BfUtvXXV7HzNrb11hyZ2dlYWxubGoXFWljeHZCXFpEUNZbVlZZTUhG2sFQTURNZWR/d3F3d0NHcXBaXkJbXV1YWNz+5ufk4+Ll++bg5ubh4OTzzvbC0tVTQHVH1NjWREhIZWNgf3F5cEBBcXl+d3F1WVZGQkTQ1Ux2d0t/YWRwfHx8dUx2QVfQ3N7MzV9S0Mv12sfeWEt3QFJcxf/n+uTg7+Pk5uDn/f7m4+f99M7WTHRfWE1JdXBnYGBgYWBjZ2JpYmVIR1/Hy8LN9P/xy8vAXkpOQXdkYGBvFBRvZ2R5cXV0d0vcyfDn4O3g5uLi4Obn5+Tx9cvDzdNXX1tWVNrOycr3y8/x+Ofn/vPw2UdGRUJ1cXxhbGtqb25sZn9KTFbJyMfd2MHQV97F3dRZTXF9eWV+eX5xdn5+fXBwTlDfwNvAyPTw5eLolZXo6ejv6Ovs4Obh5/PI3FxPemd6eXB1S3VzfGV+c3VcVEVDTkpDdXVLSE90dUpzf3J/YWJhZXt7enl4ZHp2Xlffw8TbUkxW28n2/OX+/PbCzcPFwsLM8+Ti4OX+8vn48vrn5ubk+P39/PL39vT32lJfR0lxfX56ZWFjY21iZElEXNvDxMDCxd5XX0ZFTUlxZWBta2tob2NnfnN1cXZD08j8+uTm7O7s7+/t4+b7+f78+Of78ff08fbw/fDH0NTY9fb8+ffO3dbSUl5aQk10fHx+ZXt/e2ZkckJT0NJTTndwdk5AW1FQdXBwc31/e3hkYWFmeHBwd05PRdf08/jm4u7p65SXlerr7uLm5OX/8vPwyt9VV1dV1dnxzMfL9vn78czHzcjcXFpAXdFTRHdxSk1AQkl1d3B9e3p8cXJlZmZnZX91QE9zfnJLdXRbV9bexMn2/vr88cnG9fjh7e/p7u/i4+LplJXo4ubh4ODl88PaVUBNWdHWR3N9fHhleHJ0dHdPWFfH9MLQRUlyemZmZmRlZGRgY2Jsb25vbWBkeXZCRVtTUcf1+eDp6uqVlZXq6Ojo7u/v7+Pk5OTk+/PKzsL2//nn5+bl++Dg4eXzwFJ1dHZ8eWZtaBcXFxVubGNmZ2BvY2Z5f31ycHd0QUJHTn96YWF6d1pR1cHNwvzl4OLj4+Tk4+mVlJeU6Ozj4OPj5vv+/fb38PTQUlpNT0tOQUZCcWVnY2lqbmFgZmRlZWV4eH54enpkZWVkZHp/cndCXlbc3tbZwM7GyP74+fj//f/5/v/65+fm5P7x8P/4+fr7/8va295TQnB8cHB3dEpxcX5kZWR4cUpKd3N5ZX93dHJ8cn9zfXFGQkJbWVlZR1LVUVZW3VHVz8vN0lxaUNPH8f/9//vy//zz/v/4/PPw9///98LZX1pTWVtPcmdnZHt/dkxATUpOWkNJXdPE01lZWUJ0S0dAdUdEWl1SVtHS0tvAzvT0xszMwsj39/f3xtDW1EVwfXh6fHJ4fHx6fHdEXVlY0NBS08DY1F/U0FbT0sDB0UVFTUhH1sXGzcf0zcn/+Pn4+//1xMLCwMDIw95dXdnJxlZfU1Jyf3xlZm1tYm1nfkpFdHJ1R0hKXtnWVlNWUk9CSXVAS3V1dkNF19nc3cjx8eXh4Ofh4OPn+ubn5Pvy8s7B9ff58cLA3F52S1tOcHdwcmRjY2JtaG5uaGxgZntkYWdmZmRzSElPS0lzfnNIQFteWVta3cDx+fz+5ODm4ezi4+Ph5/j8+f3w9NjVRFfa8fr58Pb39vfw88DTRUB0eGVhbWlqahQUamhtb2hubG5vYmF7e3p+d3RPWF1V09vLyfbk4Onrlero7ujo7uzg5+fl+eXk+vL9/fH08/r6+PbO2FZBRERNSHJ/e2FhZ2dkY2FhbG9tYWdhYGFnY2xjZ2RhYmZhY2V3WlxE0Nrcxf3j7e3v6Ovv7Ono7OHh4efk5OXk//f3wNLV3MDY29/V1UVf2tBEdUlPT1Pc28BST0ZDdHBMSX16Z2V4ZHhKcmZ6dXNw0cH18MLL9/T09vLz8Pbx/vzy+Pry9PX0wvDl+Pv598j0wN/a21BaRltZQFtaTXJ9f39wdE1PTEt9c3x+cUJTU1nW2cD2/eX/8/L8//zl5uf+9sLN10deU0d0S1dcTV3W2lZbXV5dX83zyt5WVNVEQV1dWHVDUUJN1ddQSXF2cn91UlNETEtfUk5b0sfNz/b4+uHu6pXp7+/i4u/u7ef/8PHC0sbOx1ZXxdNQ1t7TTn95Z2NjZmdnYGxiY29uY2NgYHp0d0lXx8PRUdzSUd/L9/fG1NvH38bIyMr25Obl4ePg4ebk5f3+5ebn+vvl5Pvx98rT1FTZ00RSV1BbSXVyZ2d7fmVkenh6YWBmZmNjZnlnZH10SXdxdnB4dFT2/fD++/795ODi4eLp7uLslZXv4+3v4Prk5+Hl+f732tvPycXS3NFZdUhOTH16ZWRib2xjYGxsbWNsbG1ib25sYGZhenNycHRaVlnUyf//+uPi5OTm4eLj4OLi4eTn4fv8/vvn5fv6+fH3887d2t5RRU1NdXV0SkdDSU9BUV9LSEl2fHx+Y21mYWFnZ2RnZGRySXZNUNHY09fDy830/uX39Pzw8P38/vj5/OTn5Ofk5+bk+P/2wdLVSXtzc3x+eHplZWRldElzcHx+f31ycXN/c0Z3ckRfUdXZwfX12sv+98zIzszBwNrH31td1kRQ29Pf2dzEzdvdzMPRU15fU1hYQkt1d3F2d0XRV1Td2NjCV0VSWEp1SHZKT3R3dn1zSnF8dNDd2vfz+uTl+eTk5eTk+vvl/ffGwcD1x8Hx9Nnb2sfUXUVJdHtkZGRjY2JsYm9pbWFhZnt+c3RKTHFzc3RJfHh/ZXp3cXdEUtfI/fLn7+zv7+vr7u7s7eDl+/j3yvDxysTZz8/A2cLE0d5URH1nYWBjYmlvbmtubWFkeXp5fXZKX19DT0RSRnFPd35kZnl8cXRE0c7K9vr6+efi4+Dt7ujt4+Lg4fj9/PP++vn4//D8/fbIy/dVRkF3f2dhY29paGhpaWxsbG1jYmNjbmtsY25iYWV6ZH9OWEFAWdzK9P3h4Ofm4uLn5Ozs4eDj4+X45fjz8PHw9c30yvfC2tdZR0tNQ05CSHZ1Sk3Q29PeVVpMRlxfUkN0cnpgb29tbW1tYGBjZX1wdE5DXFTN8/n6+eT6+frk4ePh5vj7+vjm4Ob6+Pjy9fH3zN9UXU1Nd31wdnNxcUlITFlLfXt+cnpkZXhkZWdiY2NjZHNydlnRzff/+vr//fv69sj28c/CwMHc3NHZyMza2tdbXFfa3VxNRkF3dkxWX11aQ0BX0839+fLw9vP/8vzNWFpXWnRNW1pcXUx/dUNcwPPw8fz89vT7//fOzvTB2dzTxMTVWU51TlTXUFJEQUdaU9ZOd3J/TUt/dUh3dXdOQXRLW01HT05HQEZHdXx6e3ZMRllW3drC/OTj7+7u7e/v6ejv7Ozh+PLw8vTG3d1UV1TVU1pKSnF7ZGd/ZWBnZGBvbmJgZ3h0RlPUV9PZV9fcUV1FV99bRlFfQU5bXFDexfHl5eTm4O3i7uns7e3p7+Dh4OTzz8rIz8j0/Pzw9PXLzNLdWnRxe3x+ZmRkY2lpbG9ibmNke2BuYm1sYnpnZmV4cUhxdEJRVcLx8fjl4OPv7urq6urqle7i5uHg5OT6/dtWxsbHxMPG3VdQUFtOTUdIcH1wTlJHR15GTV5SXVFR3VBMdHd0cXh8eWRgY2d+dnVd3sXY9/P//Pvl+ubi7Ozi4eH9/fHx98L1z/fw9cj1zNvaycnbwcLNzNBTVl5ZW1BEQU5MW0FwcEdLfXl7enh7c3N8eHl/eX9PW1PX2vby/fb45Pv65fr+/OXm5ufk5fbWQkRfVV1XX091e3xydU90dHVzd0jVwcLH0VJcUdvIw/Dz++X88vLw983eVl1TXtTf2tzf0trGzMj39s798/b/983HVUVOR1PUV0VMS0NEXFNbS3F6ZWRnenJKcXlnZGRySkZZUEp9eXRAWkRf1F5TXdXEy8jZ3dfX38TD9fzk+PL8+efm4unu7O3l/PX99sbe1NzWTXJ6ZWdgZmNjbhQUFxEXFWlsY3l+eXllcExaWUXW0VTa2cr88/bO29vQwMzy+PXB3sLI9PL75+Dn4eHh6Ojp7Of+9cn28ubn+fDYXHd3T0N0eWdhaRQVFRUXFxUVamhpYm1paxQXF2ppbGNmcnZ5fnREWV7a9PP8+ODj5OTh7e7ol5GWl5WU6u/t7+H+/fnz++X8/s9TTUBEQkRDeWRjbmloaGxibGppbGFlZ2VnZ2BiZ2V5S1pWQHZwdklFxfDzyPf/8OXn5Obl5ufm5eTt7u3g5OT68frn+vH3+/r8/f3wysHXWHFleH15ZmZgYG9vYGJsb2JgYGFme2RtZ2VnYXpc0EVORFFTUfXxxF9TUdzN8uHj5ufj4ubl4O3v5fb/8sjIy8nUQUVS3dTd9vTRR0B0Z2Bke3pjYXx7fH1wcXp7dl1bTcf2w1FTVNnTyf3z8cz95fjy+/r03NDezPbw5OHl8PX00lhc2sNcQFBeS0JEWEtLVlHd3sL8891SRXV6Y21jYm9vY21vbmxuFWtsYWZnT9bR1MX08/P74OPj4O3p6e7p6e3n/vDx9PH4+/Tb015xent/emZleXplc3RwfXB0SE1E3vXER0x0ZGJuaG9ubmNzcXZeUEFB18H28fHh6eHk7Ont7OqVlerrlZeUlJfr4f71zdtVVNHTUkBDcXhkZ398ZWdwWXdLQXR9fElbdHp+dX1nZ2duFxMTEBMQFhVuZHl3S0hHxPP08ebs4uDu7uzp6pCQkJCQkpCQkpHr4vr000lOWkh5fn57ZWZ4cXBzfH95eXBHdn9yTtJCcH13d3dxfnhhYmJtYmFjYWZ9VlZaRVHJ/fzn4OPs6uqV6uiVl5GQk5CRkZaX6OfxwtR2fnllemZlcHJ5f3RBQ1fA2V9YxdpNemFmYGJtbG9ua29tb2liYGBhenZzckzFys3Fzc/J8eTm7env6+rr6Ojv7OuU6+3k5eDlztREcnl7eXt/fnh+fWV7cn5zQlBcdX53T0tyfmRmek5ZVsXe39rE2MzF1tPM8fTNw/H5+P/7/fDx5OPt7u7t7eTl5vz0++b5/ff18PHRRHR+entkZ3twdHF0fntlZGF7ZGZ+Zm1jZmkVbGBjfnZAUNjM8v795OT4+Pzz98D3++fh5ufm4eLg7uvt7u/g+PHKwfTC1FxEQkVZ1FN0cHhib2huY2d7ZXx7ZHt8e3t9cn15fHRBcHBW0VpU3PT44O6Vlenv7+3m5P38++Ti6e/i7O/j4+Hm+/H0yMZXWF5WWEBNdUNDXVBFdHllYWkVamhrbmJjbG5taG9hYG4VFWhsZHFNUdvP9vjm7e/s7e/j5+fk5Prn4eDj4u/qle/ole3nwd7d1VXX2Fff0VBVV9dZdntmZ2ZvbWBtbWJmZWZheH9mc0Fcc2BnZmFhckHa9PH65OXk/v/7/Pz/5eTn4uLu6ejo6evi6ZeU4vj+3Vp1T1nT297BwsjEXURFcWRtbmtpbmoVahUUamsUa2F5YGhoaWtobGBkZUjdzfP//v32z8rDxMv45+bh7O/o6ujs6pGW7/j68cRYTU51SE1c3NvFUFDXXXZ/ZWRkY2Blenpxdnpmc1nSf2xnb2kUbmV/eHRWwPT09f74//L+//3w+eT55O3o6unsl5eU48fbWnF+fHFJcXB3QVtTUFrUVENwcUl2f3lnYm9gYWZpaWVmY2oWFhYWFmlmZntPVML/+/7y8PL19M32/fXx++Th7eLt4+zp7OjnzsFQdHlzdnN3cU1YTkNZ01J0eXhkYGNgZXl4dUt8YWZ0dHZ5YG5raG9gZH9JXlXP8+fh4+/u5vP95Ofm4Ozi4uLu7O2V6O7h9MjSWF9CRE9yZXl3WltERUplYGdnYWNvb29pb29jYWBnZmxqFBQUFxVraGtsenBc0fH//+Hj4eTh4+nv5uPs7O7u6+Pt4eDs//n89MBW0dZISkpBUUdLSkVDdXNxe2BgZ3plZHhydnp5c394Z2VkYG5tZGR6fnF3dVn0/ebu6JXq6JXqlZeWl5Tr7unv7+/p4ub6/vbZy/fMwNRR01FWVdVRTnxnZmNgZ2BiaBUVFRVpb25ib2JibW1tYGZmYWdzdkXZz8zx5uHg4uzt6pTq6+3h4O/g4eD7++Tg7+7s4+Ph/vHy8fby9sjJxVJdWU52eGRnZGdlfmRlZX56e2RmZHllYGdhY2R5fUpM1M754emU6+nr65WUlZSUl+nv7eHh4uzg5OX+8/Py5OH49vb09/X2/fHCRHV2e3pyeWVjbW9pYmNlf3llZmBsb2lvYmsUaWNmc1LSxfT85OLo6pSWlOvo6Ozi4ODl8fLn5P745OTzyMbczvby++Xzyff0zMreUUd/ZXlkeXZPT3J6YGV9SkNMSnJ4emRjYHp/cHBax/bg6ZSXlenp6pWVlZXu7eH7zMr/8fbN0d3A9PL89s7B1lfW2tvZ0VtDdXx7f3tnYmgUFW5sY2xtYm1iYGR+d3Z5fHJwSkTVz/X0yPDn4OiVl5eV7+Pk/vPz9MTe2sfM8/jl//7K9/3z//zz9NhbTnVOd3N9e319eHl7f35kY2pobGBkZXx+ZXt+f3F3TkZf3vT74ezo6e/i4ePolJSV6u/l8Mffwtvf2tDP8vvh4eDk9FJKSlnU1tNfc2dhYmJjb25tbG5vZmNtb2oXEBMRaWJmcnR7YWZ8cUxH1/fy5+3qlZWV4v3A0MTz+Pry9MzF0tvL8Pzl5Ofj4uDl8sFTfGFkfXVLXVFHcmRkZ2ZgYGZibGR4eWRjbWgWERcVbGV5d3V0Td385uDs7+qXkJKQl+vh9lJGVNDJ8fL++/L9+Obk+f30zM3//s5SSXtpFxdrb2Bne3llbmhpaxUXFxUVFW9ibG5qFxMSFmtjZXNfyvz2++Pj4ODg4+bn4fvxxlB1fHJe2/jm7JSXlOju4fjK3FNfQVzcR3d9emBpb2RyR0xJXUN3cntkY21vbG1nd0t4Z2ZtbG1ldNX08efv7+no7uzm+/Py++Tg4f7xzNrUVdv25+Pj7O3k5PffRnlgbhVqbmZnYmNsbxUUb2Z6enJ0cmRnZ2Jobm9uYH9D1VtPT3R0c0Ldz/364ePh5/j9ydvY09/E+eDg5/j/5+X2/uHt7+zg5fVURXBnbGhpaG5kcX15e3hwf35IR3VxdXV0cnN1fWVkf0hZz+Xh4OT5+//38eXk/uTn5uDk5OT++OXm5+Xs6Ons5+Tn/M/A8vXJz9dQW3Z6YhUXERcWFG9tYG5vYmNgYGZ7YWR5eHBzdnV2dnRf2snk4+/v4+b49dxQVltD0MH2/uTh4frn4+/p6ZWVlent5v3I2VTQVNHf3t3W01JxeGVhYWJiZ3h9eWVhbWNmZHl2d05d1t/NwNfQw/b54OmUlOni4Pr/+f3w9vf2+uTl4O3s4uzv7+np7u/k8PTQTHZ6YWJgY2Fle312c3lnY2xsbW9tYmlsYGNhZX9xTFPf9/H8/v7//f3y8fXx/fzww/LwyfP5+Ofh5uPj7e/p6ezj4+Hn5OT6+M7F29VaS0FNd35xSUVfTnRKdHJ8eXJ8c3p7ZWVzcXZCVcHy/eHg4eDn5+T5/vDPzMj5+vP09/3x8/rg7+/u6unv7u3i5f/2wcTf3t1adnh6Z2FnZmFmZ353ZWdmZmFgYGNhZ2R8cXBycEBQ08DA9PP3+eXz9vXB01DWU1zQyvP98Pb9/uTj7e3v7+/p7OHk/PVXR19eQV1Q0d9TR052dkp9fU5bRER1c3N8entxdnN0SUTW38LJzsv08ffJy/H9/vzz/fbL2tDfwM3K8/fx/uX4+fz5/c709PXb1NZdd3tnZmNvbWdnZHt5ZG9oaGxsYmFmZ2ZlfmV6ZmFnZHlM38fYwfTFXFhHWdTXyvbKyffwyMPFx8THyuXk+vn7/sBWXFfRUVTFx9RWVVBHcX9/ZXpwQkxwfHN9Z2BmeHx5e3J7ZX1wfWVlcnR0RsvwzcnI987R3szNzM3Iw9vOyPb29/L8/fTy//D2wMfcUE5PT0lKfHJ8f3x8enp7e2Fib21hbWJgYm9ubGZjZGV5eGdnZ3t+cnVId3FxRFNT0NZRWUdFV9XA9P//8P7n4eHk5vvKxtbS1NHbx8fb2NfRyvfP115d1FJ9ZXFGTnNkeHRMSHB6Z2R6ZmFkdlBEdUna887Yzc/08M3D3sTNxdZBQVZS2c754OH6/OTn+P723cPC98fcwtnQWEFCdXBLTEBfdH9lZGBiZ2dhZ2ZkZmFkZGdlZ2RneEVU11JaWFNYdnRYXEROWFxQVdbGxvXx9/T/4eLg5ubn5/Lw+fr65eT7/fLy/PfZ39RYQ13S3t7QXEZeSE1KdENJdnBIRFtRR0FUUlXA9PP29sPcw8PQU13R3dJdUc318/v6+Pjl5OHt4ubn/Pbyyc3e0sBUUFtBQnZ1SXV1dnFLQVl0SU1wcntlf2VneX9/f3JLS3VPTUJPWVHTxVfZ0llfU1PWUF3e2MHGyfHx++Tl5uTn4ODj7e7t4Obk+/v88PLL3tzd29vAy/XBwvbxy8LfU15PdHdAVlpYXENHU9HHzPf0ycnDwMHUV1BYRHdxSFrFyfb88fPw8/L9/fHy9/P78fD+88jQ197VXVxcRFhUU1zU01hIS0p0cXV9f3tmZ2FgYGNmenl4fndKXNPS0VxaQ3FJTUtLTlpdXtD38+Xg7OzvlZSXkZaWlpeXlJXq7+3g/8veV1ffx8zPz/b39fbK3tJTWV5LdHNzcXlmY2JibGNmZHl6dnVyc3J/e39zdEfQz8j38fP8/vvm4ef4+vrm4OLv4fr4/vP28/P8+P38/c7a0V9GSn17Znh/fn97ZmNtb2lobWBlZ2V+eX13SnN+ZXtzSnBLT3R1WNHW38v+5uzu6pWVl5CQkZeXl5SU6+nj+cvO29HU0tHa29zJ9czBzFdYSUtweGVgYm8VFhYXFhYVa2xvbWdhYGRkZ2RlcVpXwfbx8fXx+f7y9/Py8//75frk5vj/8fby/vjl5uXl+/LzycbGXUx2eXt6ZWVmb2sVFRVqaG1ke358f318eXN8eXh/f3l6e35zfH5zT0Zdwvvg5uPv6uvu6unt4uHk/8DF3FlycXV8e3BCW0JDXlBcWFJZTnd0cXlmYGZuFxEWFBcVY3pwfH55eX13T0FfUlbSx87398zf0tjO9PHz8v3K29/b39jT19bY9PL29/n9wF3X2tpRXlXb1V5Cc3Jzc3tgYGd6e2d6d3VYXVxW0MHC3NRcW1lPd3Fzf3xwcHh9d05H1vb98f76+uT6/8Pb13R/ZWRjbmxsYGdkfnZ0SVbO9/D++vnxw9ZGc2VhbG5oYGdiYmZ/d05ERV9SyOXj7ebk+PH29sjT0dxUXtPPxtPA2lXd2MX3//76/Pv//PPOzNrF2sT19cTBwtRTXl1dQkFDc3h9eHJ9d1pBXlXA987S3t9UU1haQ3F0dndkZ3tmeH1IW0dWwvb28//zysvBxd9STk53fHh8fXF0dnFxQ9r3/ubk+fv7//z03lRER0p/en5/cEhLdXVxTsPy8v/l4OLg4+Dl8/XLwt/b3tfc2cTa2sHN8P/n7ejq6uvo7OHg5/zw8c3F3V9SQklCQUVeRE5HWVpYRkJ1cU1PQFpYWEh0fH12fWdnenl+f3h5cn9ydnZ3XtXf8f/65uX55f3KyPL13NZdSX18emV/cUXE8fDk7O7p6+ju4Pr89M3QXEl/ZXt9fXF3S0ZMVvXw5ebg4u/v4+zi4+b6//bNwsTX19LS1drA9f3k5Obm4eHi7OP68M3Z1F5TQnF+YWZ5f3lkZGRhZ3tmZ2RmYWZle35xd3ZCSnRCSU1PT1Fb1tRb3dzZ29BWVNnJ/OT6//7x/fzy/vP0wtrXU012eWdkZHt/dkJE3cD85/v75OXk5eXw01BNdn9/c3F2QtLazfTw5+Pj7pXq7+zt7ezj5/DeVFhESFteRV9CU8fGx/X9/fn//fff01J1cHpgb2tqFBcXFW5tY2Z6Z2BmenRCQVdcT0hcUFtQUFVdT05eUNfC2NrPw/Hy9vnl+/rl5+fj5uXk/vL88M3b0FJPd316Z3h6YGNlfUrUwM70//j44OLt7+Hk/cvYUE9CS3dxcHZORV1U2vT85+Pu6ejr6ejs5/zOUkplYGdhYG1sbG1vb2Z7QFdQ3t7S0lxFTnhnYGxsb2xvYmBjYGFhZ3h8cXRHXFjQwNzR0cTIzsvP3ddSRNX18ff0zsHaw8DO/OT///3/9sHBwvXx987C3NRSWNbQWUJJSUVcUkZbVNbM9/Hz9/b5+f3499hVVEJ3WVBIRFVc09jZ2NrF3d/B98rI29LUT3Z8YWJjb2lubmsVFBdoY2F7R9rP8Pnx9fTB1VBWX3BhZmNmemFnZ2Zke01SwMHZ9vXy+8z08cDH2cbGUF1PTklIQldQ1d3C9vPw9PDy+ODm5OH58vD2/fHP2t/BxdZcW3R8e2V6f3t6c03c9/fw9+fg+eTg/srfREhxZWFjb25obmNmYWRlfkRRT0TQ0MDIxNZZdXBwfWRlZGNtYm1mZWV4fHJS9/35+/jl5f7wyt9XXlJZTnNyZWB7cXN3QVNcWdHCxN7EwPTz9srMx9Lcz8Xd09DUxv/l4ebm4efi6ejo6ePl5eXx3lFFTUlIWFhH1NfU299QRU90dk1HUF1OdnFP1EBwemdkZmZhY2xoFWptY2JmfEHZ9f/l5+Hl/+Hm8PXcWVp0fHhnZGRmeUxFVtLH9uXm4+/u7+Pi7+P6ytFGcGRhYGFjYGdwT0RTUdrx++Tj7+ns4ePj5vr29/3yysPKxtzf1tbJ8fD18fj//OTolpHq7O7p7fv3XUlESXpsahQVaG9vaBRqY3lxcnN0TUVWWXV0dUxKcX14fHN9cHtlf3FLdUXW9//65+Tn4ODg4+H498HB10B0fHxxfXFBU1Zf087x//P95ebg5vr9wNvUWVhBWFlJXFJT0s3w8/jk4O7r7unp4OTy9cVVUk1zd0xBRljSwPH+5eHi4uDi4Obk//fP0Vt4ZmdhaBUUFhcXERAXa2ltYWN+TVpUxvbKzcDa3FzVRnVNfmd7e3h/c0xHW9PK8eTm4ezu7OPu7Ob68vHC31FzcnF5e2RnfkhATVTB///l7ezv6eju7eDg5/L2xFJeQ05eQUxGUF5b0Mb9//rk5Pjn4ODh+/LL3lFbS3FyeGRhZmRkZHl9SkNCXNFZTlJUU05zcXp7eWZibGZnYWV8c3FxdU5BTkNS1VHT/f3GwszE08HDVVVRXEBLWtHHxdrI8OT45+Hk5OXl88nD2tjdVVJZWdXXVNzY28vM9+Tl5eHh5Pvk5fv7+fDKw9xRWEx1dEpPW/Ty8vL//fDl4Of+/cRfQ0t8Zm1uFRcXEREVampub2hpbGRzTMP29vz4+P7/8/XD0EVCfHtnYWFgYXlycUpMUtDa9vXCycPG2NLK8s7HxtBUR0RfdHFyf3ZeTUfcwvT74eDol5To6Onj5vr/01RdS0pGX092d0x1R9Pex/Hz/fv65+Hj4uPm+8jRVlhMcHlgbWxtZX9+fHJ7ent+cHN/ZGxvbmhob21vYmRneXd1dnZ2f3lxT0lAVNDdzPDz9f778/bF39Hf0UxKdnJzWlfW2dvf2cXP2VRfdXZKRlzZwMP18fP38vn5+Pv8/f/9/Pjm5ubh4eTk5P702EJyfHF2d0tOTV7R3NPey8D18PPxyNxV0FpPdU5Ke2djbG9vb2sVaGhubWBkcVLTw8j19PH598XUTXF7Z2djYWBjZ3txRFdXVFlS1N318PbI9ff3/fj4+vr0ycvC2VxCSHB5Z2dxUFHA9/X85ebh4Ozi5+X6+/L4+/33xNVR1VReQ0l1dVPBxvLn5+Hj4+Ht7eP69M1cdnlnZ2dnYGJsbG1neHxyc2RjZmR/eGV+cHdKVV5PU1BbW1bUdXpkc1vGxV9CSVPK/uX13F1Q3dZUdXlzRFJSTX9ldVTWVVNQXNHe2cfWVdrC/efh7O/s7O3g4Obk+PXNy/Xy+//3zs3Z1FdS1tnSwNvCwMTMyM3L9MXM8PT28fbMwPTHwPHNxdrZUUV0ZWFtaWoVFBYWFBVraWJnS8PIyPX19PTa9fzdUlxIW1t1dXVbXEJMXVRT0t7I8/Pz9/f2zcT2/vb39NzT1UBxcnRLfnhyfHJBUdj09ff8+Obg7euU6uvr6JSU6eb/9cFX1d5RXlXQ2c3Jy97Iysn38ufj4eT49vfaRVlSQk92c3F+ZWVhbWJsaGxlfXBDR3BGU0XSx1dPSXF4fnhlZ2ZkZ2VL0ddX3MTA28/0z/b38Pv5ytFXQXZ2cUhH0djX0NLa2tzUxc/MyMr2/fv6+Pz3ysHB8/r+//Pw8/P0yMLWXFzbxsD3/f//5OTn4eH6/vv/98rJ9/DN0lHU1EVCW0R0eWVne3Z8YWJvaW5vbWBmZGR4dENT3tvZ3VZR2/XI21FdRF9QSU1bW0x2cXJ2TFzXUVNTUtLF2NvDx1TU38vx9/bE01x0SEpITnZ0QtzP9/H2//rn4O/q6Onv7OLm/M7TUUt2c39yd3ZLWk1HXVXewvLn4eHh4ezu4eT6/vH0ysRQSnlhYGBvbm5vbG1tbWJnYGJjZHFLQ3ZwdXNwSk5KdHdKRkddXU5FUVFW18HbxcHC983eUVxHSkFBSXJzR0VcWUh0cXdMT1ne01JHVMn98Pz/+/v8//rh4+Hk//zxw95X1ddZW1TZwffw8fL19vXYwMRUVkVEXFxBRUFIT0TQxd3e0lFHdEFKS3R8fnpkYGBtYWBhZHt2dUdeUVTZV1TfVVdbS3d2f2Vken1kZnhwdV/c0tvQ1M3CzfD2zcTU38TYUddZfXJyd0BMdEh2TFpV0Nbf2PTx5Obl5efg5/rk5Pj0x8bWV17U2dTd39bWV1HS1tz08/Xw5OPj4Obk/srKzNZdSnN6bGgVFBYWFxQVFWxhZ3JOQ15TxPTx9vf19Pbf0FdQ1UFLdnVNT0xYX1ZWx/H0xtPTUUd2cnFxdnF1TEBGQV/T1FdXUNjK9PP59svH08HM28DI9P/6/Pz7+uXw8/nKzcDZ39vBxcbf1tbQxcTD9vL/+fr9/uXl+PL4/PHDVVlYXUZYSnF2dXd2fmBmZ2ZkZ2BmZmNjY2BnZWR9cUpWzvLw8/HI9/L98vL99vH0zd3S3VZGQ1JdUcfJ9fb398jLwNrW0lp/cXJ+dnNwdnd1Qtvw8/bx+Prk4+3plZXp4+Xw8PP10FxQR0ZASE9IWtbX0s32/eXl5ef68P/59/D2yPfw98fXUlx1fH95emBibWxtYmBkeHxySEZe3djGyPT2x9dQVFZRQ3B7YW1mZXxKS0TUxcXJ9Pb9/frn5uPm+PTC319GQUt1dHVLWlfUwPX8/fLx9fX1yttW1FdS3d7M983GwffK9ffy/vXI9/398M/D2Nfb9MnIwVTd3drE0ldX3dHe0tTRV1FRW3FmYmJiY2Bme2dkZnpzc099f0JMXNbXUl1cX9fM99jc0N3Az/bM18FRdVbQVk92dnt7eXN3Tk1MXdzE0NHBz8rwzPX29cH0/MVUVnVLXcbb0sjx+Prj6e7i+P/7/PfF0k1+YW5tZGdmfk/fz8vx//7k4OPv7ODg4fjG11t1SXRwe2FtFRcUaGlvZ2RneHJ0dUl2eXN9T1Xd119SVlVc2cve1lxBXlpVVVxaSnRwW9zS2sbYwfTI9vLIxNdEQk90cXhhYmFnZ311R13T2dPFzvP/5OPj4uno7uzj/8HdUUVIWl5FQlxeUcH28vLKyPTO3VNfWXZ4e3t7c0NPTlndxvTz8snE0t1fdXR8ZGNiYG9raGtsaWtiZHxKU9zK9/Lk5+T6/cRUV0x8cU9IdEBGQlJU1tLGyc7BwPXK3tBFSVxHQ1PSVVfHw8HJyd/ezN9XWdbXRkRQ2djGzMrx/vP2/f39/Pn5+/j89cj39dtX0ddSX9HY2vf9+f7n4OHg4OTzzd9eTn1jahcRExAWFGtuYWRyXd7M9P3z9fTw88rFxddRV0NDRUx5enlycUhS1s3z8vb08vHK9cHUXVt1ckxCcXBxdU1TxPP++fHFzv333VDX0dRV38r38f/k4eDg5uHn8MDZzMddSHJ3S3J7fkzVV1Tc0Nvx8Pjg7+7g5eT7+P/88MbYX1jVWXVKcX5/fHBweHpkYWRnbGsVamtsZn11VsH0//vi7+/v7ebl//Ta01JPdX9mYGBhZHlLXVld19jH9P7+//30y8PB0UdJcnJ8fX57d3B20/P65uLs7+3i7ef7+fP0wMRX1MXa29hUU9Dbx8vCxMRUVNbbz83a1VBR0czIysDHycj0zthQV1BCQEN0SnN7ZHhycn19d0pPQFvX3s7Oy/feXk90cH1/ent5f0ld09PRx/f64eLt5/v92tZTS3xnYGBne393SUN0SFfG9PTw8/by8/78//HExdnXU19d1cXe3trI+f3+5Pv5//DOxsDbUEFNSkJYXFRV1N/L//n7+vLz9MLbWkt+ZmNibWxjY2xpbmNlcnF0VsLBw/P8+OTl+v7/8/XKws7F19FfWF1HWU1wcXB+eH9lZWR+fXZDQVvU0tvK/Prm4OX8ycDaWXRwcnhkZHlzcXVFU9XJ/uHj4u/s5ubk8PXDV1tcf2ZgY2R+fXBxQdHP9/zg4O3j4eHy+vHJ9NzUR3Z+SnRlYGxhent4ZGNtbWNhZ2RhZnpxdX12SkJW9P/z/fvh4OTyxPXy+fVYWF3dV3NwWl11fHJ2SXd9dnVCQ3R0Skhzck5YWV3d2tjTwPH65+T48/XOxvf89M3H1VFdUVhJQkN1QlTbxd7CzNjZ1V5QWE5BWVhbXV9ZRV5TXtPJzszAwNvTVlFHSnZ5ZWdhZmdlZWV+eXl2Wl3TxdrF3MLw987C2lZbQXZKSHZ8ZXxKXlTd3tnJy830/P3x/fbN9vfK3VdHdnd0SUhxT0t8cHF2TUxNWlHXx/b75Prn5Pj5/v3Jy8jOy9Pf2FJJcHd1cnNJT05ZWNDN9v/98vL198rGwcNWd3V2c3lnZmFgZmFjYHh9cEBf0N7Q0djHwPby+/j++vz39MvA3URbRk1BTUlLS010f35yfHh4d1pU0dTT2sLz+fn6+ubn++Xl/MvMwsPAz9vXU1hFWl9YVtTWVNPMxtLV0dzcyfXNwMDf091XRE9KSEFe1d3O9M/H28baxMr39srKwVFcW19FTnVzcn5/e35/ZWZgYHp+cndA1tvAzvL+///8+uTm5P33wd9U1dfXUUdNQUZATXV3c3JzdE1c3t7cVkVGW1fX1V9T19fT1Nfe3NnA9//75eTk5Pj7+Pn7+v/29c7M2ddQRE10cXRycnV2c3N2SF7X2svMy/T29cPb0VJMT1lSU1RSQHd8fXBxSnVyfH58cn1zd05NRlTGzPb88vTAxcHNzc3a2Nzf0F5XV1NGTlnX11fXXUZLTlHYw/T39/T08fXB0Fdad3RCRURcXVpOS0BBR9XZ28bP9/Hw8v3/8vL65uHm5v7O0tVcWllFTXRwS1pfUVFSXkRW39Pd2dFYT0FfXFBXUVBZR05xeWZgYmxtYWdlfElNRtLL/eTj4uDn5Pr//fXG1l9CTFtdXlxPfn9zcXZ1TE1BRVBU0d/f09LaxM3MwM3G1tfexsfFx8HPwcbB39nfVl1ZW1bdxM7K2dXS3trCycPZV19EQEVBSElGWd3I8fP998/18PfOwszE0dfUUV5FT3J8eHp6enh+e2FgZmd6cklYX1xYV9/DycLH2sD09vL5//TA9fH29M7C0VNYR0t0cXh8cHRGWVDU1FVcV9DX1t709/X1yMff31VRXVxXV9zAwszS1sTL8f3l+vjz9PTMwtBHdH1/fHBJQEZOTkRc1FZX0NZXWVhHWF5aVtnNzM71ysPSUV5ASnN/e2VkZ3p+cExGWVfR28j8+/vwzMPY0t/BwcTe1tRXUVNaS3ZxfX1xSkZfX9LNz8DOwsbZ2Mbf19HR1VbT393cxcbF29vb3tzf3N7S1VRRX1vU3FfW2tjYxMfF1l9YWkZW1tLDx8fP98nCwNddREBHTVpTWUdYXVhbXF9eRkJKcX17eHt6fnxyfXFPW1xS397FycLOzcbNwMHM9/f38fbz//7/8snSXVlRXUJDS3V1SkVGRlxbWdTS2sDL9cvNycjQXkdCRkFNQ0dGRERHWlldUFDQxc738PP29MnB2NDW0dfb29Dc19fY3t3f2dHd1tfQ0d3T0tXW3dVSSXFxfH94ZWdmZX5+eHNId0hfVNfcw87L9vTKyPT1yPX2/P388vH28PfZ0FZBQUdMSXdIQUx1TEBGQExNWlLQ29vExsPB3t3d0NXV39zf3trBw8PMzcLA3tPTVFFbQFpFR0RJdURQ1tr38vz++uT6/fbFRnJ/emR7eHl+c0lGX9bX3MPCwc3M2tZdSXZzc3Z1TkFQ1N3Y3t/Gzs/JzsTG39VU1VbV0dfT2VFfQktMTUdBXFJT1N7Y11FRTExBW1/Rwcj09PTKwvb29fH8+P31xtjW09RbXlxbV1bdxsDL8PfB2txQWE11dnF0cHJ3Q0FS1VBfRUZfUdbYwvXz9PTxyczMxd3SV1lPSEBMSkFCTltX1NPYzMvK9/fbU0F2fnplZ2d7fHN0Ut/YwsjGxsrN2sXY0lTUV1ZSVNbSx8/O8f/98/P//vzy98XWUkBPQEZEW11QV1lfUlpFXkFYV9dUV9fVRk1fRkJYU9DN8/r65eX48/32zM/B0FNNcX9yd3VMRFlcVlRUVl1W11xbW0B0cnh6ZXt5cnZJQV/e29fW19Td2MPL8P798fDwzt3WVkRMTUJISkxPWtfd2sLPyM3AzsDCzcTb29PUVFFeRkxFU11V2N7d01RASnRzcHJ0S0XYxcbIyM/CyfT08/7++frl5OTl//fB2t1XREJ1dHRxT0NGR3V3cnpkZGRhZmZnZX5zfH5xdEPU9P7l5+fl+fnzwN1TQUFbXl3R3cfM9PH29vfD39fc0FTXVFZQUlJHSXVzc3J/c3d0dnF0d3RLSEJZ1dvHy/Ly9PT2yNrD9/P85eTl4ePh5uf78snb0FZcWURGXlleUV9DdXB2dXF0SXdKSUhLT3dwcnp+cHVWVVXQUV1QXEVYUdHbxsjJwvTK2t/a11ZdQUFAUt/F9PL8/fXD10R3eWdgYWFnfXF2dnVKSkJc083y+Pj65f/3z9lU193Hwsz1zvT9/f7+/MvH31FSUFxBT1LR3cXfV1tBQU5CU93YwMrw9s/bXnR+en12QFlHUFFSWF5WUdfX1tDW3lVYXVJYXV5AT3V3dndCX9fFzsPExd/Q0FBbR0xJSk1aXEB2fWdkZWV9SlvRx8jy8c3CyPT19fTJyc7AzvH7+vr7//D198r19MvOw8bTRE53c3xyd3Z1Rl9U0tnSVkZMSUBcV9HZwcXT39HU39nDwM/Kw8z08v3+5fnx219PfGdjYHt9c3VCT0tJQEFAREFCSUpKcX1/Z2JvbWZ6c3VY2c738vrl+uTl5fr///bI8f764eLh5PPP31ZZR0Zc0NXX0VJaTXNzd3dxcnZCR0BcVV1fWEVW0sb08f399c719MrLwsHB31JS19nGwvHy9s3TXU1wf35ydU9MWlhaXVJSXkdAT0pDREdZQXRxcnlkent4fnNIT0BR19738/L////++eXm4eHh+v/010RNdHRNWNfT3djf38HD2tneU0FNT0RHTE91TExOQ1tYXt3H2MTI9MjD9cLSVVBFRV3RzfTx8vDz8cnA2VfRwsbZ2d3VUVtRVF1Ad3J9eXl9cnx8f3Jxcnx+ZWV5eXFYVNDZwPb39Mr09/D85OPt4Obl/PfdXkN0d3VLQ0ZBRkVEX9HaxdBXVF1dXERAQE9ITE9NTk5DXNbE9PLl+v/4+/P32tHdVtHb2MTY0dXVWkFaRF9W1tjGxM/B3dreWElxc31/fXZ2cUhKTkxKTkRCSEZT1N/aw8XFzcbY2N7bzvL5+fj6+P79yd7XXXR8dkp0SUxBQkxaXkZOSEhMWVhbWURFSHRITkxDT1vXxMr9/vz5/PL+98rKyc3N28TC2trb0NRfRkF1dUBZUt7Y38HDxtVAQ0p3cXR2cHRJTE1MQUhJWkVf3fTz8/Hz8crL31JX1tLZw8nIyPXx9c3B3dZcRF5SV1NdQU9HWVhBT3VKTURAT0ZDSHROX15GT0tLQlLR28DExMb19cTc2s3F08fI9/HIxMXeVERNQ0xOWNfFzcPNycDVU1VU1F9HQ3d2fXxyc3N8cXR3TVHf09r09fH998zAz/Xx8Pz98vn7//Ly8c3Z0FTQ0N5WW0VLdH15ZWd6eXByfXJ9cXZ0R1HRVFBQ0cfMys/Lzc/0wdPW19Dc3t/excP1w8fB39ZfR0NPTEBeRVpX0NRDdUpPRF9BSkJNS0JFR0x3cXdxS1pX28LByf3l+ffK8PHw//v5+P/9/v33y8PY0FHV3Nre1V9T1VxNSnZwfXN0cH9wfXJwdUlDX1xeXdvNz/b2yvf1zdNSX1FdVNVZX9Dc0NDe2NbV1FFdV1BeXVlFVtHSRU5ARENBQkpOT3RKS013eX58eX1PWlXd0sT19cvEwfDy8Pvn5+fn5fjy8MnY39FSVt7cVVJR11ZfXFpHW0FORl5FRVxQWE1DQExIQFzU2cXGyvXNxN/WV1TX0tPV19LGwsff3tjQVlxV11NfWFtdUF1cQ3Z9eGVlZGVxdEpOTEJPdXR0dVtX1sDMzPX1yMjAxcjJycjK8f78/f3w8fTMw9BV1tZRVlNQ3NLUXUVHQHRLRV/WxsXY3tZRWkFFT0ZW3cXGw8POw8TExvXKzc/MwsbD2FRfVNZU1FJGQ0dBQEZeUdbR1VNbQnB7f31ydE1Icn18ZWRlZ2R8TFvUwc/L9cjJyfD98vDx8v38/PHKyvb39fXC39PZ3dHfx8TdUEZLcXJ9fEtd1trY3dbRUVpAT01HV8TY2sfax9jaw8rx8/D2/Pn+/vPKzvf0wN1UTH15cn58c3FxfH1/fHNwc3FF0dDWV1xNSXRzfX94fHVHVtPcwNrW28L38PXPz8POzs3M9Mv19MDA31TS0tbFyvTJ319BcXJxS0BT09zTXVJQX1NBdEtbVN/P9vfMx8XT0djHwcz19fT9/PHLyvDy/P313lRWX1lR1VlPdHF+ZX99f3N3RF9GT3V2cnN/e2VmZH59dEBTVVNR19bb9/Tw/vz65+fn+vj+98zG1kRTXUNbVdjQWF9Ednd1dkPV0tjd2dnV0cXWXlpBRFbR2MPC9M3bxsXfxdzTw/Tw/PLz8M3Az8bG3lZSU15Y1dFWTnFxfHJxdk5AUNTR19FTQEFMS3dxc3t6eXlyT0NLT0pDWF7R2s3z/Pnl5OT6/fT1zdnF19fSUNfTVFZEd05McXda1trExM/Owsna0tdBSUFGXFfV3NJU0ddU0VRdVNv18v/6+v/99sjKysPGxd7e29jWRU50fX9/fHJyd0JMQVhBTE12c3Nxcnh7fXRIWVXQ2tjc29/awM/x+fP/+/zy9vXLwdnR1FJQUkZBSk9GSUt2cXF3Rlbd19rCwc/J9MrA0UNGXlXfxMPc1t/c111XUlPYy/L85eXy9vX29vHIVFdUUF5GTHZ9fHx/eH12SkJGRV5cVl9CQk1OSHF4fnB1SktaU9XVVdfexMPw8/L++/j+8PT29/XO0lHW2NBZQFhfWlxaT0JIdUNBU1RX097W3vX0xFRZX13Q2lVf1VNfU15ZWVpd1tfK//z98PDz8fHy9tnS397eWVtbT0h2f31xf3lycE1ARl5BTENPd3N9e3h9cHBlcUVAWNXEwc73/fj85eX7+/3z/PnzzczPwtrc1kdYVlJUUlpBT3Zwd3VbXVhdXNPNwN3U1tTR0dnfVNHZ38XN2N3F09fbyfXIwvT1zPb2yc7NwNtVXll0cHd4eXdzfHNzSklEV1JAXkVJRE52cX1wc3t4fH5ySEbVwcXAysvz8v7+88r09cry9s729/b1w8DeVldUXlXTUl9eRVle0dNcW1NR1sbJxsfGztBT01RcRFtQXlBdXlte0dvK9vHx9vz/8vLw8fX1xdHSVlpJdndxc31zc3N2dkhxf3x4eHp5fH5/cnF5fnNzdE9T3Nj39vTw+eX4+vr88ffx9MrKzsHBw9jUUFRbTEVcU11cR0xGR0JBX1hZ0cbO8fD8/fH1x9zX1FdU0VTU1VNfU9na28H1z8fIx8bMxsPS2dhURFlcdXR2dk11S09MWEF3d0pzf3NzdEp2QnV0d354f3F3RFJUxNnP8/3///Lx9cHBxNjCzM329Pfxwtne01FSWlzXU1JQX1lCSkhJQFHQ2cr39ff1zsdRWF9RUVJdXV1ZXd3C9vfK8f3z/fH29vf19/32yNhXUVpLc3J2c31wSnVxfXl7e2V6eHt/eXp5d315f3J3TF/d3M309P/k5+f7//D1wMnJwcnI9/Dy8/Te01RaWlxGV9RbWEN1TkpwdEVT2cDJ/ffx8MzA2lRX3dHW2VfR0F/Rxcz1w8TOycvKzM32yPTwycDeUlxHdXZ0dnF3cXRITnVyfHFxcHZ3cHZ0cHN9fHJ+eXxxSV5QXN3K8P7l5fDIzMDCy/Dx/fj5+f/y8MFeRFNbRVxfUkVBWkJIdXdBUNbBy87w88/CwdzT1F9bW1FUR1pX0tvB9M3Ax/X3yPDw8PL9/PHz9s/SWUVGX0d3cH1ycHJ8e3pkZX5+eWV+f3p6ZXB2fH19dk9XU1LEzPz65Of4/v31yvHy8vny8PL08fXQW3R2dHd3d3R3dXdKQktbVd3P9/375Pv4/fT3zNjdVlFUW1tQU9zNxsHG093ax8Da2sDb0tzc299QUlxAXlRfREZEX1ZYWkFJSkpPS3Z3dn57eHpycXx7ZX9zcHZJXNfF9/bx8/bDz/XP9f38/PPz/fD3w9dZR05JSE5HWkdGQlpdVd719/Ty/vnz8PDN3tvQR09IfXJ2dVjSwM/By8rP9fLw9/bx/PHL9MLd291QVNZX1llNTE1Cd399cn9zcH9+emRlZmd4eXx0c3l9c3RLRlTN/OX7+Pr+9vD29/D9//3298vB2NNeTUNMd3Jzd0tOSXd1QFjVxsnw8Pz4/fz5/fDM2ddbdHFzcExF3MvO9M7HzsvI9crBz8fd3tLR1llfVFJW09RTX0VRVFNWR09HTEtKSHN/eGR7fnJxeHpnYGR5fXdb0M/08fLy8/D09Pbw/f3x98zP9sbX3NRX11hHTExBS3RNR1vUxc339fPy9PTKz/f1VkdMSnR9cndNXNbFwPf19/P2/f/9//3OwsXcxdxW1dPc2t3R1F1aT0lPSHZISHBzfnx/ZGRleHl8f3pkZmRkZXBPXN/A9ff28vz9//n9+Pv5/Pb99MDC3FRU1l1BSUJeTEJbQ0NZU9PazMjI9PH29PL2wsVeX1BERkBfVtTXx8/N98vI8Pf198He0UTV0Fhd1l3R2FfTVlTTWlvT1FzVWUVfdUpwen94ZH56Z2VkZmdmYXp6f0p3XN/e9/Hx++T65fnx8vf198vMyMDFw9nf3FPQ1V/Z3tLa3NbewcDAxsHOxcTE1FRFT0RCTkRYWVBeU9jD9PD/+fr7/vL0zsfb01JcVlHV1dfT1tBXX1xaTUxCSktxcHB+ZXp4entnZmRnentlfHNwcXF3WF3U9fPz+vrk5fLz8fXw9szKy8fG39XRXVdUR0fR0NTY0sbKxc/MzPfI9PH0wNrb2N5QRFZWVlh1WlZR1trL/fLLzsTc1EVT11ZGXdve0lfQ2NjD39zIxtNU19zWXUFJcHl4ZGdmYWNsYWRmZ2RleXtlenBIR1TI/OXk5fn+/PT19/fy8fXz8srP29zGxdJU2MbS08L29crK2s7C1tVV1ldHW9TXXkVaQEJNT0tb2N7N+eTl+P/298je2sbA2NHfx8fQUVFWV1XQ1FdRRkFcWVlESn94eWdnZ2FjbWFnZH55fH58cHROWdzYzPD9/v7/8MrPzszDzsva2sXZx1FX0NXTUNLf2sLM8f35/vD8y97Cx97a3tPEzdDaVUhEQEp3QFHTx8b0yvX02NJSWdHY2sfOwvbAUt9WUdXVV8XO3cXGVcXG0FJPfWR4emFhYGNjYWNjZmZkYWF6dk1F1N/P/fz//v7Mz/f198729PP338PF3snTV93MxcT32sz7//Hx9dLVUV5DSlpAXFdQw9VQ1nVKSdxb1/fe8Pvz/s7C21ZW1s/Qx/HOx9HWWkNYSkdU0FbX1VDe0FdXdE9ycmdnZG9hZmJmYGZkZWRmdHFP1VTZ9P7z8PzJy/b3w8LDw8jF0tRF0V5A1NPPwMzC2Mrw+Pn6/vf898zeUF1f01xXxd/CVU9eU15b0dLZ9vXz8c/JwNFSV9ja28v0xd7bV1xFW0NexdFRUs/AUsbfV1BacHlzZm1iYmBjbW1sYmxsYmZ5fHRd9fH18/Xx9MPN//7O9/v/8fT13V/Q0V3G88vE9fbIyvv9yvr8zs7+VErWSn1SX0bS3EpX1H9SwUfa/cv9+8rw8NDI9FbH8d7GzsvNXFzRSnXSTU3a1EFaxN5fXttddtBIZ3l4bmh+ZmlnZG1mZm1+SntZyF/L+93M89ba9szy/tj3+cbNxNbWQV/YV8blwN3xyc325/vP8OHx2OXDdFfTcnbGU3daRX5xX1vGyV3J+tPI+1LW81NW8Nvx+9fN8llT3lxfQ1Xy31f+X0zw2kRYwdp1d01kYmRtaWJhYm5gZxVteWZyRF3WxfDAVMLDRcH3zPD45/Px5cZV/FFxws3Hy/P93Nb7y1rl5NTx48Nbzcx2dtxHdNrAfXPURH7W/dZR5/hb8+RcRfnPdc7mwc/lxk3D3nFK305DzN1e09pTW9dXd1DNQ3ZZcmxlf2lpcHkVZ3VpaE51bEH2WFvlzHHf+Ul05/5f++7PzuDHTMj1c9Xlw9/k/9v65sX04/DJ5+fN9PBHQ8bXfVT0cH5RdWVW0nZV5N1e/8B1WcpJWf7J1uTgxc391kzH1nfY8F1E9tpP2/VOQM1BdsLFZndTY250fmtkdhUUfG0UfVxgcvzTTfL2c1LkU03j5lXn6NZR4cN5yf911u/1X+Pg1Ofu0s7u8NXn5EHe+ENz9Nh73v57ZPJdZ83lSFfu9Hz5/GZN5UR94PlI5eB0VuBRZPDBesL+fnf+TGH832xR9mFx83pgzX8USkgXZF0UFlpiEUFRa0nmfXPg3Gbw5XrR7sVZ6fl78ON5S+FCeuD7c/nrVsqU81Lr41vg6ETP7kBx5FBm8/RtSvBlfOVYeuTlds7mfXb8TWf083bK41db4PRJ/vZ70eZMcefXZPD3YETzen7yQmH1xWJ9XW5tR2YXZWYQYHdqb95MYcPKZdDlT3Xn8Ubg40Lz4l5G5tZk8PNxzOZTzen+V+HmU/vs1M3u9UTk9HvL/H9I8XFnytpnV/lNRufefvTDZVn2TFLg/lny5tXe4dtM//1PweRNRv5feFBSZ3bDSn/L0HlfX2JkX2Joc2QVYXNoaXZ+ZlDTf1j0WFv2yl/65FPF5NNM8cB9xf90RufGSOfiUcrtwNHj+tPl7MDC4cRL8/BwRPV0fsZQe9H0dV/+V3zB2n9Z80Jb4PFY+edc2uTUXeXyTM7kT0vyXWdNWGF2wXd9zdF/WtJkelNma3x+FWBwFWt9emNB3np18lx0/vla8OFX1//FdN7eeET+XHf++Ujx4FPb7f9Q5+zB9e7+XPjlRNLnUn3Dy3xJxkpzysV53/tyc/5Uesz6ddHmxELl5XLf51TW4vZ1/OR3W/B2Z9xWZ0bwcXD+UWBfxmRmWGQUZEhrFHhjF3tYbGXIX2XN/0HP7sJG5Ph80v59evLDcfTlRNDs/0rz7drN7vhf4e9VxuzHQOX6f1v8dH731mBf+31w/FRz9fd/W/9UTP76QcHjVHfzzXHy4t/d4f9MxftzePJRYlvxZ3vzWG1Fy2Vi0XMWeFEUF01jEGREbmD2UGfC5HdA7vB0+uBaWfpTY9v5f0rhxnjk403H6fZb7exb9pX0Q+LhQPXo1n748WVY+ndjzPdgdeTUf/H/ek/g0Xv+4XZA49hkzvp/1uzHSePtSVHiWXrPxWNz/3Fhystndfx0bEZKFW1GbxBkfxFrRnppXMhkdfradvvhRsXvxXLzymF2/lx9+edFwOn11+zsV8rv9t/j5t3I7fPU5/5LVvN1fthHZljPcULl9XXI/311+dVy8/ta2OfYcsfDdlj/xF7l5VLC+NVz00Jgd9NyecFfZFXMfH/TZWl8fBQVZGoRenZicMFLf87IdNjmwUz950fW/0lh19xnRvlVSOTm0Pvo9t/u4cTjlfDJ4/LG7O3UwOfXc9pQYnJXfXHy8UD1/XZ089B9zfxLU+b2Qvb1fUX/1EHk5Vb25tZT/9xnQMpzc/VRe1vZeVvOc2N0fxQVYRQWYWBpc1FkfcZDf9r3X8Xn0EL4/31O9HF6ycZ90ODb0uPh2/ru9/Tp5sTk4NfQ4/1V/vZwRMx9bHdwYkn3QUXm/3Tb/l5B8tp3x/1Z0eTWd8n0dNb43VHl/UPH+1VN91dl1MF7ed1KZlnRZX1XemtkZhAVf29oSkhmRvZDdfz3S9n+Rlj63nzdyX1K9VRzxPVZ9eLC3u3kzO2V++SV/lH458fJ4cZB/sF6R9ZnYlBXe1n2X1L9zHf05EN3z1F89PV5WvheZfbydMPmwVfl8XX1+kpM/MBy18Vmfsp2bVxEb2dLaBZnbBFhcBRi0Hxn9c503uXVdfPNS8HCfUf733DB/EHW4/FW4ODX+Or58ZXszOfgQN/tx3L880zR93d+0UplVcJ2ReT0Xvrg18Xg1X34/XfT51V15/J/2uFAWO3MePH2fF/zR3L31GRcUmF7zXhvXkJpeUprFXVkEWBGb2LZUHDz+1nH51Z189Z/UNB6dPFNZ8bAT9znVUXl8V/h6f36luNW4+Jc2ubfT/r/WMn5S3T1TWRQ0mVR+9RU5/lO2PJ0TPLQcfb2Tt3k1nbz8UXB/VhE88dz3/NNUMhBd99DZERFY2ZCeGh+fhRic2oXfX9pcs1CdfPMTvflWNLn33HIy3XdzUpe5cJb+/pO3OfDVuPj2efpx93i/3fX8k9Z/NlJ9MJ9XcxGftLUTf3y3PPmU0T7x1v55V/b4stC/vx3Xf7UfcTSe05Wcn7dUmRF0npw3XVkXXRhSkRhYkx4b317aGRFZmf33H/S83RH+8xO9vBzQshKZV9Ef1TKRNXw20D3/NDz4/bw6eH07+zcyuDNUPv/Xtrn1EL52nxTzXRC9tRJ39h2UfnHRuXh1cvhwFLn9Ur0+kZO9196Vt1kdsR7Z8xTe0fZdnHVfGd2cW5gd2NofnprZ0dlZsdCYlHwdFrh91jm7UfQ4UJ69MxzxuRGVvzZR/3zQM3l3sTi59r/5N7N4c1L8fNK1frYU/Pde9r6dU7/0HzFyU3059rA7+HA5ORUVPvNdcrxf3LFf2JFdGx7RmZl30Nm3vd4Q/BAZVNJYndEYWFGZW9PUGd/2HJn3dhzxOHE0eb5WMfEekr1dXzx9HtR+1lB5MB59OLcw+nl9ezmw+bj1dPm9UXz+0dc8Uly9VBhXtxnfMdNc/PlWfaV89Tg+kv14tFR+9d9VNhkc9ZmbURJY03YZUT2SXf3UWBLWWFmRmEVcHEUZERjZ1B6YfXUe8LjyMDo59b68HHW5U1O+dZ/zPF2UftbffXJd83g2cPu88vs5U735kPW4cFx9vV52ft1c/LRZcTwdNbgw8Xq7cjl41Pd4MlL8816dcRnY9R7FH52amfUZWTP3XPC/3JO8Epl2lhvclJvZld6Z1ZDYEDDckbzX1Hi+UP/5XpF/H1699RiU/x8W/tQfMnMcfTi3fGU5vyV6Mrk7cL27clf+8hkXP18fPRzbdveZk34QUXg8MTs5Fr95kHO7VdC5tZnzsNictZubN98bt3WZlfxe3DxcmPaT2lPWRViRmhrXXhqUt9jXPh1TeL8X+/vXPPsTnH60H7IwXpRznxI9XFlxlF/zv9b9+nOwez7VOf+0+DmV/v6dtLmTHfn0Hry8GXZ5EXe7/fO6P9d+/dwzP1J0PNze9Zxb3VyamV2a3nMenr8UXvwxX/K8Hpf8mR622ZtVXFpXdNsXsljTft3Wu/KUuLaf/1WbNPEYFz/ZELkd3L8Wn3l9Eji4FPh6Nr66FfG6ddH7Mh0+MVn9/Zm2/FhRPxlceBBcOz9XO7iQf7hedbiRtLvWn35d2/ZdhVdWGteyGNE/mRy/n5m90pp1FsUc9QUY95sbct/bftSbeX3ZOaVWuSXT1btfXnkWn77XGH53230wG/U/2fE6UjQlcZS6/Nw7fxg5OBw/OxzV+pcT+r0fOTae+TleeTrTv+VX83ocnHgQXDiX2HxWxRbQBZ3ThF+2m565Xlk5HBt5UZo9N5rW/VqdvNicvJkev98Y/xNYPr1eOHiffHkYU7wYXPkemD6SGHg3mb7+Hv270P5ldD9lvHH68tw48B44/9k/Phk9+dlx+Bkded6ZOJQe+n8ce3gcvbgZcDvcFHtS3n5dG3LSGvZQWpB2GNKxntx0WJhUWdmX35sXklvStp6dM5wd/FYcfDOWuTn3uHkdPT8ZVDxc0L0cHT2dHf3dH3LxXbK/F715trZ+t9S99dZ98vQ8crd+fnO/fzbyfTHw87E2Pjyyvj8283RdVvFd1vFdUTDQH9Hc2Z1dnh2cnxOU3R11kl0QXJ2TXR3QHV8WEBB01xC0NBMXt1OUMXV2/zx0cnRfVtDc0RfdUDe0VfdXNz2zMT08cPK/ff38MDP8crNycPPzN3R0sXDxNnAwtrPz9fexdnC9PXM8P7E0MfF383FU9rGVtbXTEpHWEBBdH1zc2VhZ2d7fnt8dnJzcnt/fX9zRVhCXdrN2dn1zPfy9vTz/sjf29FFRVdDTFFTW1BfTkJbXdfd19LY2NVWVlpS2c708vz8/fbK/fP78PXOyfDP8vzw8/35///wws7EWV1XWl9FQ0paUE13T3ByT01GTXR2cXllemd8d3RLR1XVRU9ISUl1WdBTXlfe1dzUUt7Mx9PHz9ZeQnRIRklPR0dFXFHU09Xbwff08czP9sVR0NRd1s709vnl8vL13tLb28XF0lfZ2VDO29v1/f3w/8HLxlfb2PT01sNR199D2VdM1FdWUl9DeH5mbGtpY2F6eHheSXNMfXl/c0Je2V3Sws3x2PH/9+TN9fTTwkRaVlpdVldfTFhaXUVHX9zGVFfbRE1Zd31wSlvfy/f+/vrh9fP+8ufx+fb0+cb0/sv38vj/8cvd29FNQV/GUtfTeFzRSnJHX05S10laRHF4ZmdhYmV4fExJWUNKdEd3dVTX19/0y1LBw9TTysTdwM1GQUNydnJDR0lbQUBbXdNe0MT99MHMwd9RWVZORlFeVMjw9Pb49M318PDz/PH09/XYx9Pawc3Y9P3H2MdUXNr1xcjw2l3aw1JWxcbdx9xcTHV9Zm1vb2xpYGFkZXt7YWR+eH9Y39DO+fDP/f/x/fj+/vjyzttVRENEREJeR0VBR0Z1WF5dwdNE11t3dkBxfndGddnLwfT//Pjm5OHp4ePt4eTn+/H3wcnx9cDH21dSQ1pRWFTQUEVaWXN2W0FJ19rUWNdCeXdzZmVlZXlycUhzZ39yZXl0QtXC9ffw8/zzwc30zsPFVFFTW052c3J1QHxDRllZ0dnRzvvx0sPWX9FdRUl2VMjUUcbDzcHG1cz+/fn4++b8//P02VbD3d3G09TdxdFWzvHH3s7aytFA0FHVyt3Rzt9ZSHR4YGBsbmJtZ2ZgYmJgaG1gbH1f3PP75OTt4uXl5vj68tnGy8HZWHBKdHZzdHBlcElKX1DTxtFWS0ZCTUhnZUJMXlHTzff2yP7l5Ofi4e3o4ePt+s3z8NDaVlhfX9RZRl/WVEda3Ed2RXFwWFJU28zE29ZfWVplYXxkZHZyYHp8YmNnZXp+TVPa8ubk//jk8PT49kdW3V5NQEZ+f3l7cXNC0UJO1MnG9/v22/XI0VxLd3RwWkJC3sHb38b39uXk4eHn4OTk5/vw9s7DR0BXWl3TWNfAxNTdxNTXVEVcX0/SwsHI/8LWzXRgYWdiaWRkY3hjYmBoYGlicn1X0vjh5+7s7+Dk/8vI9d7f3VPUTE9JeH12enFKSEpXz9v08N7C0HF3fXx4SnNx2V7Z9PXw9eDl+ZTk6pT+luTmlUWUZ8fBYvdj9WZfS9FH2ENfRnjAYcZl81vA+N7k0c1FfEpkZXtkfWR9fX1lemZgfmRyTVfFyOX88+LM/fZ0/nfQzWX4bsF2etdjxmfbdMdR/czh8v7h2Pp992BJcWRBZERLRthZ2M735fLh5Obn7OHg4vjlysVeQFR0Stdzz9Ja53L2UUP6b+Zy2PRU5lvk1/d8WGN0aHx6bWVq0xZzbWllaHBgfN9z8vzz4+Ht5uH//PXIwdtVRVtAT3hzek54dllx3l7O/FzN5WXJ0mn/bGD1FvBmf+lq7tXMkUOd8Onu5JD86OHs5frU/UhQd31IYdl89UpfS1pbTFhM2EfJ2Nvf8fDW1kZOQ2B1QBdQf2n2F39bF/oXcMkX62P/5meTdOvVxeB68HHFdlLcxGTGZNdPev9k5kHgzeXzwedH+3lSRWDHan19bMhlTNh3/sPZ7N3m79aW9vmUyOznXuPZfu9v9stjkWDK+GyVY13kFZd42ONqlWL0wmrsF0ZyEfEfcXwQ8B/NbWfMFPxhzsRT59jj/+L45OHT51r1wU7O0tJdc0hPZ1Jwd8Rx9Nd09VhI82zAXRXhFl5EEeBoVfhvkUDll3Ke3+yRcZ5O6pdlnmDhyheUEPxIbekR4Xp89mr+ZtLRX/NL8d/4XPLU1slmzW9If27BFEt+aPQX0XVq4BT5X2aXZpTb2et84XDOVE32Rf1G9HTCc3HZZfNw9PRx533lz3vjbMhxauET1n4V5hDndUPicOrR5OX748Lt+Ojw7v725HTkc8beQuJ7+MR44GjyWGzuauNdYZVr6XRI4Wv6Y0p7a3IUf2hmYX9he017WWX2SVb9VOrB4ONR7VjR5mf79H7rZ8v3bvZgc1dmS8h2dvN/3NJ5zk5kzHl59W/GVm3sf8XifZTwxJFBlO5OntLvlUGWRtT5RlPLTUT6etLFbtd/b/Rif+Zv/fdml3/SlGjjw2CUFtDPHeITfsce4BF0wBPsaVn9b5d85uF+l2ngx22WFezHZ5Zt+MVh+mRx/3r0y2buZNz6au9vW/MW6WlMwxfiFd/abZRo4vx4nGKU7VCeTJTrVpXFz+xP5uZ4lHvB+Bfoanj3EOtpTuAX6GlX5haXavP+F5YS9WQW8hvIamfBFuZuycZ4lGXq/9+SZpFZwu5ukWbl9njuFf53cPYX+mN182jsasLUa+EV53F05GXiZcDWd/Rm/kT99EzrSuLhVJLR6OtallT55ETm1c5Tz1530xXaZ2/CEcB+Yu1i9Ppm7F5Z71LO4lPQ8m1TRRPVbxXYFnJREdxCe+Fxx+119+Rk58h763df7GP422DnenXgetDweeb0Ye1Df+JtUudi+/hu4nRq6BR45hPkymiWYFyTbOjvd5/0w5xZ/pZz6uxgltdllRRc5B/hehfrFsX4EJR0YpZr8+cXk3R+lxD4Qx3hHXxHE/lqWl1m4WTjysmUdpbcRpZt7slkkG3b5xfvYGzvEctYaZRr9PZp72nH1G/nYvlfde5s5XFy4xTgQVrpb+zwSehd5e7V7+fS4830+N/x08BLWtJuXmJnQhHHYHDJaexZdepI5OdN6svV4ELXUXp9ZGVpcmcUUGtKTGjmZM38fZd91+Nk+tBx5llF/9RD90J0zXNZ91BV/f5D/vRx/ENk8Fhi9lhg9XRkynpmy3968ktC50D24t/h7Pvk7eT57eT37v116sVl+nthUWhsw29h+WZz7Xj27mDs/W3qU2fjb3zlEXdEFtlrbvMVR8ht4lRdkF74lnLk5WXpUn3vcVH5bdLNFtBIa/xjdOxq8eBu7U1+4mre/mj5RnLjY/T0ZuZkUvth51PY4HTp/PPsVJXcyO5J7NNc7XrZyG3DYm1WEUByY/Bh8PTR4tTu/tPpTubffeNmTVRrVWxqRRB+f2r0Y9T9ZOPXzuB359PB+HDmVM/KduB2Rvxl2Ndz5dRK4cBa+9Rd9H1H2mVz1H1BUGRXS2RdfEBxc/lfWOH39OLx5Orf5ZXU4ele7ed18sl9Q1ZmZ0JiZFRiefteceL/defxcv/eZP/QYMJabnBzFHx/FEVRY8DmT/zuVPPiU1TsT0PiTXbmTnb4c3nwdGPKQ2f0W3v523L7x3rEymFY/Gff/XnP+GZE+WRl5353633WlEDMlkXTlnPKl2b47Wn8ym7/dm72YWjwbWf9a8L8Z+ryw5dY4O174N1L52Tc12xYbGNmFUtuedNj8E5K73/y/XvuXk/idtn5cM7lTNLhSFficd/mfdv7T1zgUGXlcWPKZ3vPeFvbftRyYsFgY/h7XORG+Pfd49rl5l3o5duV9f7hVf/d1cl09HN78GJEQmz1Zl/leObBcuJxdPp8VvlKQ8hhZ9wVY1FpdttwRf/JQuf9fPr4TMnxXNfdzVpZ9XRc8XddR9BEYPFPYeDefOXSZdzRZEL/T0vtxXbmyWDPyW/Z4GXY7nFGlVZ8ldJll91l6thk7shh59hh51Rm8Vpg0Fhg09tw+M5W5MHCw0f810fhXHPCemR+YmdjfXZhWlRn1vZ8RP9QROXAcPjKfuXke/3odNvqWVPrQHrtVmbsz2nk2hf0VhfNw27y+mzD9W1ZUWFQznHc9k79zkzmX9vtTfrmUu3x0e7DXuPbQOVDcflyeMZlesN0c/REc8hRc8nRdvPV1f1+211s22Rn2WZBxmRU+X1R+H/F5XzH/nne+EjH+kDE51fa+l7S/3Bc1XL9cHDzYV3RY9JHZ83JSOf+duTJevbQfvDEecbAdsnNcMHPdfLwQfnf0eZ1/OVK5MNE81ZE9lt/wHV29nfV837Y8HBT9Fld+N1e/tV/119jct1mZMlzYdxHZVzdSkDP0UvDy1fJyfL11+X3XPn72c3lVlD2SHfXdGNKRm9xUGFB8ERS/tJP1dtLccvWfd7KXnHe9H1f/ldT/vjc+ez1wuf+TPfhZUXhdH300GVf02ZJ2GZ5w39mzVl79fJM2fjSX8dcSE1aRHZbz1p49Nhuz/9gRP9Ac+TydPL9S/Tlc1jnQXH4x3XAxX11WHB5c3Z5eXfVRVfj0EeV8X//+HNJ+kh75d5mysRtXflhUe1z1OvI1u3Pdvr2Y/fmYNDtZU7ieXHhZHjmfmfmcGPlRnPmRELhUXHw12TH3WfFVm301GrR0GtRzGPB+3/86HXWlUhx7l944v194Odl/eBtTeRmYfV/aNVObPTKY/vnZ/zlYtTnZlrnZ1LhZk7kZn32fVrj3PWR+sGUykLtTGT4SnrmUmf43m/awm5ayWh19G5y43Jl7ctl4+d4+8pk+M5m/fNhzf9jXfFpTvxuR5VxU+lcWP5xSfR6eeRPfuNUe+PWbeXEb/fYaVfHYdz1cfvkd+buZsbvZkDuZXbhd2T9QW5RUWpE5HvN60L36nBW7Htl40Rl7NBl40Nm59Fi5cxi+9xh+txm5/Bn+OZh0+VmQP97TPZhcvl7Yf94aMhwZubKcennfu3+ZPnIZvr5fOHkZvbkYd//ZlH1bkf2aXPxeXD2WHb9R3r+WWXl9mX053nc+mFY9WxF+HDe6fXE6v9a4N9m9thj9v9jRfRgTvdiW/BuRvhjfeZ/f+JbTutBdOlCZ+zwZOTzZ/n7Y8j6anXkaXvjcHzt0H7j1GL7VGrP/GBU5WFa42V17nBk7tBi5cJt/fln+OBk8exnROhyf+12ZeJLYeB1FPTRFVDyYFbic8TrSkLuTWfgymb6/GzK/m/D4GHW70h34th65c9m5/Bg++RvV+BkfeZ5ZOVLZ+RfbvHFFNHlbFzsfN/pclzuQHjj/Gfl52Pw52DY4WJP4npn4XZv/1Ft/Mls9eVvVu1hSe5/cu5bSO9dZvvEac3nYNDsdNfpUF/sXXrhz233+ml3+Wxl/2Bk4XBg4sFg5/pk/uZ+/e1k2+xhd+x2c+DUcuPbZ+XAaMvxFUXlbEnnZHDnfmTjVm3n82735GzZ42JT7GFN6Hlh7V1h7chm7/Rs5vsV9OBuVu9mXOhlceljYu1lauZFaebNbuX/bvjtYvbqZETvZHjtZWToQWHuymPj5GDn72P87m/A7ml37WNn4Hlm4k1g4t9o5fAVxvtq3+ZpUeJpTpV9c5bZcpXNYe/0buD8av3lad/lbkrgYHDsZWbscWjkXm/gw2Lj/2Hh5mPE4WdP4WRy7HN673Rt4tFj4f1n5ftszfwUTfprZON6fu58e5VccJf0e+36YfL4bcrmY9jtZV6VTkrvR3jnTW33SmraUxdSwGhd5WLd639E6HZ871Zx7dZ74MFj8vBh9+N81uN0dfh/Z/hNY+X1Yf3kZMblY0XkbXr4Znnhd2DnWWLnzWfg53vm8WPk02ngT2ztdnfuetPqYeHuY+vybe5hZ+kV2uYR7FpikWBQlBTj9xWWbXnrE8LAEetkZJRr5+xul9BhlGB1623B7WzV9G7e+WHP+mZV/mdw9X9y/Flx5PdI8/pwU+ZcfvXdZ1nzd3PxVGdGyX5x+/JzXeRFYN/9ZmL+yWxF79Vh4ZRAd5TuZ3XuUGrQ60Zt/ex9Y+XtfXjg52Fi+v5hYvbBam32wGhm5+Rlc+/if37h4XB84O90YMfnQGXO7dNmWOVSbXD8wGF++Pp0fvblRGXc51BgefTZZnj2/n1n0v5aesPi9HBH//R8e9/wRX1T8MR2UeXk0Vr85NJ/Xs5RcnXOyU530vVUQMX78NVXzvfVT1DERX9wWV9xd8T33V7b98BDTdPZ0V3Vx1B3StPcWUlSxFhzSdPEXkbN/drQz/HJ0dfNyFZERVZRdXdaVVh3d0ZZdFrX0VRFX1BYdHVYXVBAUdnR3sLz/vH2/fDH3trS0tbV3NDc1VXf2sfEwcfFV1jW1V51dUJ0c31KW0RYUN/T1sbB2d/byMjA3tvTXl3QVF9T11BYXFdV1VVUX0fX3FZR09reUVRRUF5eWkBDTEFeQVleV9Lb3lVU1FJHT0JBU1BcUdTW0sPMzs3BzcfY28Tc1dLWUlXd1FNU38POyvT3z8jIzNhUUUJ0dHVJTVhYU1JU0NRUVFNYU1RR1F5ZU1tYXFTT11JS1FXU29vS093Gx9rBwMbexcTWUlfTU0BfXERLSkJCdk5fRnRJR0N1dXVGQUFYWVxX0d/By/L//vzw987Dw87dXNzF3VXd2MbMzMvMwsfE2dHVX0x2cXZ8dE1YRklZVVFTUN7f38DPxt3e01ZRXdXT1t/d01fW2d1TWV1YRFBSVNfX0NRTUt3RVl9fXVhbUFNTXlNQXERHR0lNWUlKRVJYRkRQ0dXQx/XLy/Twyd/Z3FJFX9XQ0Nva3cXK8MvM9vPzyvbxzNZdXEJ0dERESktBRFtTUFpcUlRfXVFeQ0BCWl1X3tvb3d3e2sRW193X0N/b2MPDxNnQ3FBX1VdSXl5R1VpOWkRAcHJxfHh9cHZwTltHTUdfQFjd38Px+uX4+Pzz9M7cU19Wx8LHw/X29/TPysrG2sXf0tzVWkl3c3BJTHR1dE9cXUTUzcPYxcTA09VVU1xX3dvb29nQ1d/UWlhSU15ZXNfVUdTVXFNTU1xfVFdRVNdUXVVX0F1CSXdxcXB2SEJMW1pCRlpEWFPE9Mz0/PTH2MfSXkdU0t3N9Pbz//n58vP58Pf28fXE2dxfd3FKd3N9c3d2dkBNRlHV1dBXUV9GRltZVdDbxtnQ28bUUlTd2d/NysHfw8Ld19DUWExYWkJDXlBHT0dWRUhEdXx4e39/eXNDQ0JaUVBbXt3Y2vbl5f798vDM3NjQ19rMyM3K8v70yvL0xcXMwldbVddMdUJPSnROdHBLQXVLWNPZwcn39N7U1tHXVNPGwNVX09ddWlhbRVTS11TU11BeXVRURVzVWU9BVNRSVtbf0dLe1l5aRHN7fXdxdkZHS3VbU0dFUdfSx/X1zcHa19RV3c7x8Pb9/Pjk5Prw9vP9ys3A2tVbW11YRV9DcHN3THZ2dnV1SFHRVNXVRkVcVdve09zQ1t/DxlpWV13dz831xdHaUFhWUt3VWkB1T05AR0hGX1ddWlJGdXF8fXNKdUJCQUBPUNDR09TE9vX08f7x0VLYwNnL/8/O8fnw9PH/9sbO8MHRV19EdnBOUl9NQFtZdElbX0FFV9TX38neV9PIxd/Nz9pW0MReT15WQHRH19FXUN1WQ0JCV1dX3NxXVNhPRdNVxFhdzcdUUNZad311QXRyd1lEenZcQURKXcXdyszMWnbWV97+5Pbz/uX/8Pvg/PDl5P7389teVEhfWHFPQ3FzfXRxc3NfQ3J7TFVASlJXd1L0zlDT9P7OWFVXU1LBy9bxysDleEr9w3BL9szCxnB5XkZ1cE9H01l10l9ycllHS3pb219bcXZRV9/VR13bwtne9MrV0dvw/NPC/vXJ5OX7/PHwwdv39F1K11TXdUndX09eUNFNT1hcW0Nd0VZdXlVWQtTaVl7FyVHXU9XUdEbRUUPCUUBbUttWd1zFVF/Y9d1aXFRVSEdbVlHUVlBRRFzcS3HXWEZNcUxDdnJfWXXaxdVTVdfWUcLbyv745OT64e3g5ubm/fDz883Txs/QRVfTSHBOQndxTVlPdUJOU0B1dXJ1dnNLTNXS0tPb393XX93W1tnM8djExt3FVlFFQFhY1FxbWVFERUxKSXJzdX1zT0NLdHd1RkZMRXVARlhUU1NYU9JdUlff1FPayfT//v/5++fj4eTl+Pn19Mjf39dW0V9U3VNdTljS2sBWXF7T21xaQF1HZXJPTUpNUVx2dVxQSUBd3cXC9crW1NPE0FheVNBaXlfA0MXAycNYVURPSUBfQEdCWkl2SnR9fXNKTnF2TEhaWEl1dUZOckHW3dX35uf75+zm5uHj4+P/+Pf00NX20dTS0dpJe1nRXlPc0FpG111MTHdDfGdkcXNzSVlCR/TGWV3K2vX44+T+9sD0zNvQx95PSH9yQc5VUdbQw9h+d1F1c3RWTnJ3e3NwRtVMV0R3V1xHUEHUdFBZfHd0ddH7+/nh4+X5xvrm//Hb9MnXU19RVkZMzNBCR3bCUUXFzdLG2dpEd19ETUddQEJ2ckBNfHR3Xn1wWV/3+cL+0s303FZz0nV28dD72PnFSvDL/c/0y8Ba9NpdWEzXT3V2ZXhDZkpGdl12Uk99WHFKeGRydFfDy/Lm5/jn5v3+++X98/f4/f1cTVBb2Ux3eX9GdlJbRFZF1UFBWHB6QkNzVXdFWEBMTVZWW1lSWMH+5+T84Pj08N3T9dLYycXPwt9R1lRT31nTUUJGc0dCcUh0THV3TnR1S0VSW0LWQ01XX19eTEhOQl3A9vb+/Ofn+f7l+uT//Pb658fTX1bfx9LfX1LVX9PQ2dDb0lRYRVhwfn5+eXxJcHNMSkZISEt2cETYx8j08fHHxPXEwNDR9PTAxd7JyNFUxPFQ0VdSVExeSEFye3l8eXxlfHR2fXVFTXRwRk90dEtxSkPUxsTK//zz5efj5OTg+/jk5PDzwcPLwNzFxVxTVFDVXkrUQFxGXlRddElxcERBRUVeQFJR11lKWNPR0tn1//DIyMdU39HUU13WxdnWXdTeUVdRU3VOW11Pc09KcXZKdHVLcXNLS1/UXlJZRVpYX0J0dnZNUNDH9cj8+Pfy5OD65eTl/PH28cXd28HM0dbZUVtbX1DV0VPU2NRWUl9IdUlNTk5aQ0lGRkh1cU1PSkFU1dzaxsTGzMHS0sTb0tzNzMHH9PXAxcbTU1hHQHV3dHd9cHdwfGRkfHt5d090d3Z1TnJwdnZ0SFfSxPbl5Ofh7Onp7Ozs4+Dh4f/y9/bOwNnUV1NFTkhIQEFNR1JER0ZPdHVORVpMW1pZQUFaU0VZ0NXUUNjBxN/M9MxV0dBETV7RUllX2NvT19reWElMdXxzcnNxdHZNSU13dEFHWF1QUllERk1OdEp0SkJBWNLHxvH65Pvk4ef4/Pv7/fT8/PbE9PTfVtDYV1pc11JaUNzSVlfXU1xYU19ST3dBQE5LQEVHQltZWVlSUdbf28zMxN1VUdVSVtPZ0tzM9czF2sXXT0lMdXx7fXB8fnd0fXhwSHdwS0l3c3BxdnZwdEhBTVzb9Pz54e3t7O7i4ebg5eTl+PjO89rW3k1YUEhfS3FSREB1W1dCSEdTV1hSV1BaTFlfQ0JR1VBSVdLa39nPxdvH2NBcR1hHQUdbVtRS09jf39bVX0BOQ0NKdnZ1SU9JWFlaR05YWElPQ09yfHBzfGV9cXN0RN7w/eXm4ebn4+Hk+uTk+vrn5f/1yffB1NDXV19YUNHWWVbXUERMWVNFQEFMTnV2TUZ1SVteXFlQ39nQ2s3Ax9HX1FxdVtTW1dHe2dTdw93WVFVSTElERXVyck93cUNdWEtKTkN0fXBxcn9+c3FzfHxKW1jd8vv7+ubg5ubh4Ob75eXk+P/89MHS0dDVUFTUXVlTU1pNT0RASkNfX0NKRV1BT1JTRUFJXVZW1sXGxtndxd5RX1hbW1pQ0dfW09Ld0tPS1VFRU1JdX19YQnR1QFtRV9XXW0xARUJ2cnN9eHt+eWRkfHVEUcP28//75Ofn5Ofn+/nk5+b6/vjy9fTJwsHY2djQ1lRZWkB0S0NITUpxdHRMRk1CRVpAQktDV1DTxdrD29/E39bV19DU1dfFx9/Y3NDWV1RcQF5WUkVNTndyfXR1TkdfWURMd0p1cXF7e3l6f35/dU1f3trP9vDy5eXm4ODj5f/64Obl++X/zvT0wsbYwMXS119HQU9MdHVNT0xKTEdYW1JTWEZEQUJCR1nV39PR0tbUUVBTXVxERF5R197Bx99SV9NQWFtQ3tPUVVZZTkxEXVpFVFxYRkBFdXdzf3l4f3pkZX93TV/V2NrJ9/7l5Ofn5Pjl5+Hh4Obh5uT4/fHw8/Hz8cHXUF5MdXVLdHJ8c3Nxc3d1QEh3WllBdUFW1FFV0NDT0d/O2MXf0dZU28XEw8LE1lDRXEVDRFPVX0NPSHB/fXdIcHVPR0p3dUJ0fXx9c359d01PRFHf39zE9/Lz+eXl+vj+5Ofn5Ofk5fz9/cvJ9fD2z8La1FxYRkp2dkpNSklBXVpAR1dSTUVTV11T195QUFbQVFJeV9RaRV9VV1Tcz8/PxMDTW0dFXFJXVNRXXkVZRERCS05NQ19eSnV2dnx4eX1/ZXt0TUhPX9FS0cX28/X3/fzz/frn4eHh4uDg5uT49vf88svLxt9XRExKc3BzdnFwdktKdkJJQ0pMXlxHX19eWVxQVNZcXVfd0VTX2d3X2MzI9c/Z3lxGQ1JETUdHRU9AQE10dEpNTkRSXEtxdnZxc3F1SXZLXldfVtbd09DYyvTMy/D88fD45fv65Obm+vv588nK98rBwczFVVpHR0x0T0FBdElBRUxOWlZcSETc3EVeVNRYRV9XTXVPWlhJR1fW1tPG9PXP2NlbSEdQXkBHU9VaWl9QQnRAUURGX1JLcnZ0SXJ+cXZxdkxTWkVY099WUdnK3NDM8fb28vrn5+bj7eb++Pry9PTw9srPzcNUWF5ZRkJMWk52c0tBSkpbU0xC1d1ZQUXU1FhfVF1AQFLVX1pQ0tHV3vP9zd3eVUFPTUNLd3RdX0BDWVpNQV3fUkJJQnRzcEhwZGV2dUpJQ1ZWU9PO2t7ZwM7Nz/Dy9fTw5eTl5OH4/P////H18PLJxsPN3VJZVF1fRUBASnN0RkNIdUFZUVPV0VZZV9ZSRF9QR1hfXFBTWVNX19rPyMDfVNRTRnRPRkNPWFZbWVlTV11T3dBdTEBCSXRwfHh5eXF3dnFAXVTU38fF09HEw8HFyMzP9fnl5fr6+vn//PP39/H/8fTLyNrQVtXT1F5HXERDQERDSHRNQVpERkVZXFlcUlVTR1pTUlBeWFpaVtfY2sDZxMXaVF9ZRENORlNUUlNRVdbc0dVcWUZERk90c3B9cn13dnN2S0Je0MPG2cnLzs3Jz8fTx/X38Pjl+/v+5fv5/fH39s7D98jcVlXWUUdS0VBMWllbT0pAQ01PRlpUWkVYXltZXVhcXFxRWEFERl9EXdDe0d3a2FRFUVRFdUZSW0dHRdTUVlTR3Fxe11ZKd3VLeXp8SndwQ0dcX1fEycXZzffA3NjB3FbSz/H2/frk8vz65Pjw8/zxzsr39N7W3NBZUdHb3VFR0tNDSUBad3JD1VJCQFFZTkbV1kVNQ0N1cHdBRENH08Tf3sDOVVxW0FJHVtFRQ13R0F1d1ddSU1DcWXF8cnJ6ZXx0fX9wQ0FaXNvLxNr09sjc0NtSWNPw8vz64ePm5Obm+fP18vPJwffCU0VfVERHUdFeR1hSRk9NREh1TFzVWEdH1VdfXN7dUV5YWEt1TllYWVDZw8zawcTRUlpWU1hR1FpHXFdTU1hQ0VZRVtVGc3lyfHp8SkdPd0NTXlHd29Pb38TG1FBZW1tT2Pf08uTm5uTk5+T9yvTx9fTNz9tUXVdUVtfBx9VRUVFFREJPdU9aU1pOTUVcWUdb1VJPd0l0cnFPRUJe0MbH3tnY1lxeV9XZxcXE1NHS1F5HUdPVU11fT3N/eH57ZXBOTE5CU1REWdPQ1t/H3tHV09VW38HL+eXl4+Lg5uTn+fTz/PfHwcbYVFpcXFldU9fQXlpRXEBCQUZBQVtYTkhCQEREW9HWU1hZW092T15ZW93C3dXR3FZYRF9R1tzEx9nW1VReQUJTVlhBXkVKdnBwc3Z0RFBTXVTRVENd09DXU9DfV13R11bQwvfz/vrh4eT7+vnx9fL9yMLAx9JV3sTY3NLFxd/UV1dbTUBbWEJJWEl9c0tPd05CR1paWFlASnF0Wl/U3NjZ1VHX1FJW2cXFyff2w9PQ0FNaX9dZSEFBSnNyc3x8c3RCW1BWV1ZeWlpSUFzU3tde1NrY2cz3//n65+fn+Pzz/PDx9vbI2dfT0VHV3dHV19Pf1lZUXUZMRlddQE9ATHdHRURAQ9fe393RUF9DS0JGRlxUVF5MQkFOTkVd0dzZxsfF31ZQU1lbXFNDdHVCTU5CT01EU1RQV9zRVlJZW1bXVFBZUkdY1t3S3sny+Pv65fny9vfz//7y98/HxtrHx9rEwc7D0tjfVlhcWkp1T1tLc3FxfHNwdkpPRFFX1VdHQUxITltQ19bS3VdQ0tPW3tjN9M/My8DeVlBRWVtNSnR2cnZ3d3Z0T0hHR0dRUlhTUFfV29lVXVLX1tPYyPf08Pjl+v/y9sv1z/bz9sr1wsXe39Pe29nFxNre291RQEdHRkxIT0B0d0BNQllWU1FeUlJeUklKd0pJQ0VYREZBQE1AUNTX3M3198zA2N/UV9VXRklOTkJ1TkNeW1taX19dU1JfR13X0FpdUFhNTkdYXdTazMr3//j48fT19Mr09/bx9v3z8fT39vbOzsv3yMbQ0NVETU5CdnxwdHx+dkNHR0FHQk5AT0hxSkJNTUBYU19fUtTdVN/GwtvBy/H0xtnZ1EZBQEJ1dXVxfHBxSkt0SEFaRVtEU1ZW1drTV1zU0Vpc2svKyPX2yvD9/PTL9Mja2sDPwsfPw8nBxM/P297M8vDH3NLaV1pHRk5ITURMRV3U0NTRVVhNSnFxc3Z1dXRxcE9bdXRF0NRXVMLPwcv3ycbFxd5dX1xTWVZYXVhMWlJaTENfUENMUtFdWljVXExLQEhxRlDf3dPHzsfK9fb39/bx9MPNz/TIz/T+/fHw8vD19/zwwsfe2V9DT0t0cXBwdEtJQVJZW01HdHx5c3JzdnV1cE5FXVtUwfT1yMrx987Jy/TG2d3WXk1OWFxaSUBbQnV3dXd1TUZMRllTU1NVVFlBQUZaRFffws3NwfTwyM/28v3w8fDN2t7b1t3ZwcHbxMDNzvX198jAwMLcVkNCR0BNRF9TUFPR01RZRXdxc3BwfH1yfnh2SnVIXtPaxc3DzMnNwMzKzsPZ3NdSWVVRUFfX11FWX0dNWFhHWlxSXFhcXUd1dnR2dnREXVJR3cXMzcn38PL8/vv59czPyNvG9fTJy/f39fb98Pb09s7bVkdIdXRKdEhNTV1QWE9GQUp9fXFzeXlzdn5+d0BCTNfN9/X38//wz/T3ysbY399fRFteRUxFVVFbWEF0d01BREhY1dRcVtRRT3ZOQ0dMWdHE39PL8MzP9/399vD/8dva2t5QVtjCx9/EzsnNz/L49/by8cVeQVhCdklcUFfT3NtQXV1EdHFwdnxle3hlZHt8dHdP187H38Tx8djG8fHCwcPP3FPU0NTR3cTB3FVRXURFT1hbQ1lQWE5OTHV8eXN0cHRDVFRS0MzOyfb/+/v+/Pnzy8DLycLByvHLyPXz9vT9+v7xys7RRXV3SnBwdFpYX1hcRE9KSHVwfHJ0cn5+cnl5ck1eUNbJ9/TL9PD39cr29M3e0NBXWF1VV1RRUVJbSUJ2dnF3SERFXVNGR3d1dEtxTUxBX1Tc3N3b9fby/f75//bx9M/AxMHF3t3FwsPFw8j39fHy/vzxz95XRkdOQEVdVdTc0V1bR0NMdnFzc3hkZmFnZ3pydElDXtfQ1tPE2MLDzvf19M3b2cbGxMDPwsDdxN9SXEFIdHVLW19aS3R0dHJ2S3R1S0FEWkNS1NHGyPD45fr///3x9vX3y8rKz/T3yPfy8v3z8/z99cVRX0VId3RMTUlLQUNKS0xLSnRxd05xenpleHl9dUdc1tnFx8DNwsDFx8DLys3Y2tHU28Xb29vYVV9ZR0J0cXNwdUlaRUJCQVxSR1tWXERYUFJfUN3e3tvL8/3x9fP2zcDAx9jdxcTaxc/PzvX3/fz9//D0ztzc31BEXdVTWkVQUV5TX1pGSndxfmZhYWZkZH9KTUBfVdVV1NPf0NvI9Pb19PD0w8j0ysrJzcTT0NzURHR2cHJ/cnZ2cHB3T0p2TFhLcXVDWEFGVcHN9fz7+P/9//Lw8PL89s7L8PT28vD3yfTx9cfexd1TR0VbT3NxSnV3SlpZTkxdUlxaTXVyeHp4fXF3R1ZVVNnA29HU0tzZ2MHAxsDOzs3F2sff1NXS0FRXVllIdE5KdnF0Q0ZHQV5TXEFHXEdJTVJSWVbawMPCy/T1z8bByPTDzM7Cwcn39vb38/L88vD38fTIwNrT0dFcWFpcUF5eU1lHQUZOS3B4e2ZhYGR4f3xxQkdbWl9dXFXZxcD18fz7/vLz8vDJ9cvPxsDOxt1XQXV2c3J/cXZzcnFKdUh1dXZ2d3VNR1LV38709/Dz8vT29PD88vH38v/8//zz8fX0ycrJxcbDwN1UVFBHREdERURFQUBHW0BDQElxdnF8fH1xdnVCRkRQU1BT1VXV09fQ3cP09vX0ycHGw8fY2N3W09PVV1xETE5OdUlOTkh1S0JATXVPTEpLTFxRVdbCyMzGzvTOwc3L9vf19v388fLy8fTK8fH19ff2yszJ2tDW0ldTVFBTXUVPTnRzfH5+e2VlZXt6eHJ2d3FOQlpFQVbZ0tjM9M7J8vL88vzw8vDIy/P0w9vF01pGXFh2dnZKfXxyfXh4fnh/f3lzSnN0X8XH28jy9/Tw8v3w8v/7/f3++uX58fD9yMnLy9rHz8/c0NDR11BeXFVeW0ZaSHd0Qnd5fnN9ZXh8cHN3d3VMQUNcV19H1M3e0N7Lw9rL8vTO9/D1ycjNzcfYUFfTVV5UV0RCRU1xcnBxf31yc3JycHRKdExf0dRU2/H1z/Tw9vbw8vH28vL5+v72+fny9vL89MbIyt3WwcfUV1DUWVhBdHZJdnxyf2Vke2RkZXx9f3NKdHdNWl1FUMXMw8DA9/PwyvL/8fHw/Pb09Mnc0lFfXlxbT0JAQnR0cH55dn14fnJ+ZX52dkpZUNXRxs/28vzw//r58/3+8fD/+v3y+fj98vP29/TP3tjZ1FHVU1hbXEBKSklJSVhASnF2cnl5f3h8cH1zTkFISUVYRFbZxNPS2sfP9/T18PPw9fz+9MHMxFNW11BZWkVATVtAS3RLcXN2dHFycn56eXR3dVnWUlTEyvfK8f3+/fPz/vz0yvz+/P/l5fLw/fDPzsDc19ZZR1leTU9GT3RPXEJIQEZ3cnZxe3tzc35wT3VITUxKRFXV0Mz0wsf39M73/f798/Dw9vTA0t/TXkVTW0NOT0pKTEZJSU13cHVIcHx+f3h9d0hH0dnX2/T39fH//Pb9+P/8+fP38vn+//r68vTw9MPBxNVTUV5DTVtCd0heQUNSUERETXZ+f39lZXh7ZHxxcXN3d0pBUNPdwc7L9PPw8f77/P35+vLw8cHV09lQUNddQU1CTEtAQ3BwdHJ5cHd7YWVyeGV3T05f0NzH9vT38fz88vjk+Pz4+/j65Ofk5eX99/fJ2dvXWV9eTndCRkt2QlpMTFtFTHV2c31zf3t+fXl5dEF2cUFbRlDMys3L8fT18PDx8fPx9vP99MLF0VlW1lFFXl5DT0VcR01IdHZ1cn1xcXt6fHN9c05FX9TZx8j39vH//PPy+Pry8vjy9/zl+/77/MrAzMfQ3tZcX19HQF5URElfV0dNX1p3cHRwf3l6Z2V4e35LQndKWVdc0s/Owsn29PX39/by/fPy/vbHwcdXX9bcXVvU1VhaXEFOSHZ9c3F5enxzZGd5fmV+S0ZCV8PDyvz7/vrk+vvk5/j8+vv9++fk//L2wdHQU0ZFWUFFV1dbWl5DS0RcQk5HQnZ2dHB/e3t7fHZxdkVSRF/ay8fGy/bO9ffJw8LGwPbz98v0z91V119GWVdSXdTWWE1DT3d0SHZ2dXZ9cnF5e3J2cHBDXlDczPTx//r5++Tk/vv78c738fTw/v33y8DWU1NERlxU19LE311eUVZYV9dESENJc39+ZWZkemV+d3BxR1RQ1cHIx8X09s7PzdnR28LD9fL2yPfK0FXb3FDU2N/U1lBPdXZwc3Z0cnxwcnp6fnllfXZzdF/V18Lw/f7l5Ofg4+fl5Pj09/789Pf89sLY1kBPQUxOXFVdUNFQQkJfRktEXk53T3V9fHJ8eXxxcEtZWVjXx8LC8fP19fDK3NLWXVzU0t/DyMDGx9dbUNZQXtTZ0FBRUVpBRkt1QkJ1dEh3f3FJcXJIQklEVdDSxvT39vrn5eTl//b0yNrayMvD9PzO0dLQX1pR19TT2d7Ew9xV191QQUVSTXJyc3pkeHh7fHBwdERHQ1HZ38fx8/T19MVU0dnVUdnNz8r2ydjH2ldVx9Jc1dhQQF1Zd3BIdHx2S3J/c3B/fXRxfUhZTE7Vx9nC/Prk4O3m5+Dk/P399Mn09s3ExVVBTUBJSkVdQUDV39HS1l1W09VYXNVGdEhPdnZOT3VKQEZEUlRS1M/KyfT3w9/b3FpEUVlHVNvS0MTeVlDX113V0VZV3NBSUFVYSUVTTHVEWklOQ0p1T09xdkxLdVrV19v2+fjl5uTl5frxz/XLzMzO29DRUEBAX0VBWNfU0MzOxMTA29Pd0VhAWkZ0d3d8eXJyfn10THdKWVDVxM3Bzc7Nxcfa0FDW39PbzM3Ax8fG3tjYVFHX0VXVVltERkRMdU5KdEpJdUp1dHd3dXR3SEJGUdvI8f7l5uHg4OTl+/P29PXPxMXWXUdBSXZKdXRBV9fW0d7Y09/f1VFQUlhfX0BOTk9xcUJHQEZbXVTR2MXHxsbExdnQU19cXV9W093S0FRU0ddRWVNR1ddV0dbVUVbVUFBTUFdSW1tFQ05KcXB2dnF1QUVQ2Mz3/OXk5fr7/vH39PXLwsbb0tZTRVhaQ0BR09zEwcLPz8zE3dHUU1tcXkB0d3dzfX1wcHZ2SlhSXFfd2sXZ3N3T19TW1NzYxM/PzsLPw8Xe0NFX191XUdVWX15FR0NAREJORkx3d3RxcHBwc3x1W13XzMr3/OTm5ubh5Pj+8PTx9Mbe3NRYR0ZKc3dOTVpTVVbW0tzZ2NtWUlRcXldQQU1FQ0hJRUdAXVZV0tjf0NvF1lPW0UdGW1tHXNLX1tzT1NfWVlPVVFbV397X2drRV9HfUV3VVVBfWk5LdXN8fHx+dkRcUtfGzcjx/v/9/P/29PfKyPXP2trH0ldQUV5BXNfW3NrGwdjZxdre1FlaUkZITEpxfH1xcHFOQEdeVtPY3Nja0NVV19DXUFHVVFTdw8jFxMPE3dPS0VdQU1dXVVVdUl5AQUZBQkxDSHRKSXRwcXBxSVrV287K9fL4+fnk5P788vPKzMvA39DQV1tbQUlISkxBVlZT19Lc19LY0FNeUlBSWVtaT0tPTUVZUtTf2NrCw8HG2tzW1FBeWEFOdU9GRVxXVVZT0dDVVNVXUNXZ2tnEw8XR1VXX11dWUllHSEhOdHBzdktJR1TS09jByfT28PH09fTKw9ne2NzU0NLT19bXXVxW1dzEwsbEyczF2N3UUlNSRkJCdXNwd3ROR0VaU9fU1tjZ1VTX1VNQVVBZWUFHUNfU1d7F3trMxdTc3V9W2djW0d7RU1JQWFhcQ0pIS3FzSktxdkRFWtLb0sb38ffz/vLw/fL19/HH3NreVl5VVUVEXEJLWkVNXt3RUd3H1lfS015W0FBaW1tMTVFVU9bFxcbIw97AzttXUVdBTFpBdElNSHVNRkZd0dBU1N1RXVZTXdLPw9vCy8HFxd9V0N5TQEdGQkxBQEtOXlxcUFXW2MDE2MXCzcXAwNjAxt3U1tDQ0t3Y1ldUVVFSVNzAzc3Iy/XP39zXX1lZQnd3S05NQFtaXNVUVNVV0NTVV11fVdFRUVBTUdTUUdXYw8fFwtvd1F1aR1PV1dDS3t3YxFRYW0VNdHd2d05CTEJeUdTS2dzZzfXLzcn09Pf1yMvJz9nQ01RX0dNWXlNcR0NJdUNcXF/XxcPGwMDZ3d/TVVZTW1jX2dXUxMDZ0Nze3thVXl5ZQU9HRUJOQ0RDTkNaWVHVUFfQ0V5aXFxW2cbBzfXLyfb1xNrZUUNDWkNCRFtPTVhEWlFWXVfZ3VHU2tNV0N3SxcPc0NrE39rJztPW3VVSWV1X09vexM/0z8bO2tVXUVhDQUJOQ19YQFBXREZcV1fXVVxeVldbX9ZTXdTQVl3c2t7YxdzX3tFHQVxZRlHZ2d/Fx9Ld3lRcXkBxc05NSkhfXltXVl3Xx9jTxszExcrIxsDDxdvG39bT2tJW3dhXWFtNcXdOSU5R0FfeyM7GyvfG39nQUlTT1FHS2tPRxdlQVNzVXVFRR01FT3VCRnR0Qk9LRVZRVNbWVFZUX1zX3NbdzM7J9fHKw/XP09fQWkhEREhIRVtOT0BNQ1BXXl3VVVxS3t3U28Hf08HDxs3D2NvAx9ZXUFtFUlFU3trb2MfPwMDN2tVTV1lEXFtAR1FfTVlRWVtXV19X1FNYUVNbXtRRRl/UVFbd293exd1TUFZYW1FVV9PZ3NzF29HW01dGR15ET01GQUVYR1pfXl1V3NzR3cTFxM3Mw8DE3tDf2dPR0tfU0tNQXllHTUJfWVtU0NHQxMzGxdrY1tPY09fQ1NXW3NPV191VXlZWXkRaW1lfWVtATU11SUdBQFtW1dTV1tfU3NLT2NnS3cbDw8/Jw9nE2VZRUUdIQlpMSENEQkxZXlpdX0RZ0tnewMrYUdzG09ba2dfS3tzfxd9SV9nc0dzcVVfd39LFzdxT09lRUNdRW0VaWl9UUkFR3FVS1NVYWlJUUFXQX0BcUkZbVVJaVtnT1N7YV9LM31Xd3FFc0N9WVdjUW9TTXUVeQUtMWUFIWF9PW9dWX1XQ1t7I9cn39sXUxsHWVNdRW1HTVVfT1UdT2FRaV9BfXd/Z1dzC1lPaxVdVxdxS1dvfVdnF19LH1FlX1UVb0NdHRVVFdEBGSkxEQEdU3dVX28fd28zfV93TXFPe3lDSzNLRz8NQXVxDQkVaS3VcXU5EV0RCXtVU0Mv3wMP1x93B2F5ZVFBe1N1VVMfC3NjG2dHR111R3txX1dJU1d3WXV3WUV7W3VfXxsbR0t7XUFFWW1fZUUZaU0VCXlJBQlFTW1bWUNTCzN7cx95QUFBGWdfUUlTEx9ja29VYXkROQkBMRFxZTUdRUl3R2sDK8/bNzvXD29/VW0VfR0FeUFJR2drU3MPcUlDXUFDR1lPUxNxU0tPW39zd0NnOwd/E29fU1tVcXVBTVlFdRlpfT0xFR0RFRUNGXVXX0dnZ0Nzc1ldXVFbV39/cz8jG2MTE1FFcTUhOTUxNQExMQ0deXNLBw8/Nyc3Awsfd19RSWFpGRVbV1d/e2Mfc0VRS1NbU1VDW3dDQ3NDR39Hd3dXQ29/W1NHWV11TUlPX1lVUVldXXF9dWF9RW1pYRVpc1dHV09nRV9VXXVZVV1HV3NjexdjZ2d3VWVpFQ0JEWkBARUVHW1LUx87MwM7Jw8PB2tzR1F5BRERHWFJQUFXW1FBWVFDQ2dHR2Nrf2cfA2tvE0dXd39LS3dRXVNRWW1bVUVXXVllfXVtaUlNZWFJEQ1tHRF9SVFfU3dbRxd7R09zQ1Nzb2NjA2dbS0VhFWFtGRFlGT0BAT0NSV1ffxd/TxcDFxczE09zTUF5TU1lfUl1cVlVcVtDd19HZ3dDZxd7b2tPW0NLU1N/d1tPRUFNQXVtT0dbV0NNTUFRQXVxQXVtSU0RDREFAWFNTUFTR1NDE29Pf3NfQ3d3d0FVSXlNQWV5QXVPVUV9bRVtDW1TV1tzf0N3YxcfHxdzQ3NVbWV9FRFtYWVldUFNT1NbW3NjZ2sPAwcfa3dPf3dfc2tPW09ZWUFdUV1fUUFxTXl9SVlFdVlFSXF1ZQEJNSEJdUVDR397FxsPBwcTZ2drE3NDXXVlYU1JaXl5FWl5eRVpYRFtcUlPV1FZX1NLZxsLBx9vf1tRUU15aWV1RV1dU1dbQ3dvF3tjb0tDc2t/c2dLQ0tLQ0NZUV1BcX1FVV1JdUVdV19bV1dHd1tFVXkRDTE9GXlxRV1ZV3MfHx8PE2Njf09RVXUVGWkVYXl9fXFTX1VVUXFtRV1JW09BU0dzS3sPD2Nnc0VddX0ZGRVtaRVNRU1FUVdbY2NzHxN/bwcba28Xb39/f09vB0tRVVFxYXltAQ1hFW9VVV9Db3FTX0FBGQU11RlNT1NLe3cTJzsXCy8TYxtnQ1lReQkBGTE9YW0FSVV1ZXl5HRVxHQlbXXFHQ0t7Bzc3Hx9jd39xWUdDVXFxWVFfU01Fd11de1dJXVNPTVdTY01Tfxd3cwd9XVlRWXVZVXlhXUFxV3dzZw8Lb3tnXWVtaTElBRV/V19TcwcDe28PE0tnZ1tVRRU1OTElPX9RSUd3UU9TWUl1UUVpc0tVd093X3cHHxMTb01TUVF5cVF9EXFZeWVHVU1bf11Tf0lTR3NfW28fY2cDA2sHH0NXWVFtaUV1BWVFERFfVVt3B29/G21FeUUVNXFdTVdnc1t7Ax9nCyd7cxNFeUlNHSUJBT0BcRUdWVV5d0FFbX1FYWlFUX1Hc0NLO9M7DzcHc0NBQUtDXWF5UWUNaUlhe0dxX1NdaRlZWU9Xf2N3YxtrexsfX0dnXVlRUWUVTUURe0dTQws/Hw8fc1VJcWltU1VxfVlNR19jbxc/C09fTWEZdXERFXF1YWFpGWldRWVLR119dV1xYUlFTV9/FwPf0xsTH2dVTUFBdUVxBQ0JMQkRSUdfYxNRYUlxcVtfR3sfH2dnExsTGwd3W3dnRUl9ZRVteRUXX3tPS29re3N1XXF1RUFJQWEVQ09DSzfXOwsPcUFXUXV9TUkVbW090TEVCQFxTXlZVWUZdUVtc19ZUx/fJw8vIxMXb1FJV011aUltMRVZYWNTdVlLXXExYVFlY09nR1N3VV8TJxdrIw9PY2FBbVtVbRdVUX97G0dTbwt/d2tVYVNFbRFNdRlPQ0d7P9dLV2t1R0dJdWFXVRUBBSndBWE1F1NVfXlxFRlNVWFLe09HEz9rby8zS0t7VX9VVWltVV0dZUV9fVVRaW9RRWlxWWVnT0lFX09bXx8rPzfXO3dPSVlNUVF1Q3NNQVNRW18bF0tPcVFpcUFhf1lFFUNDS3MTH0dfH29XQ01ZWV11BRl9HSkxeWl7VUEVEXVNfUtZVV97TVNbf2sfF2dDX0tFdUldTUlVRUFZWUFlYUlNQ11BaXVVUV1RUVlXd39PEycPaxdnXVdHRUVbQ0FXX1V5eVdPU0Nre1tDRU1DQ0FBR1tbR09zS3cXa09DS11BVVURDRUdGRUdMQ11ZTUZYWkZeU1LX2dPX1tHV1sPA3MfP29be2tHS29ZeV9hUWl1bTUdTXUFaXURaUFBbUtBUVt3HxcTOz9zYwsTe2cfaxcPc1NLSV1HX1FDV11xFWVJYXVZfWVfS1VbT3tLexdNX0tvWV9BUXFHUU1lU1F5aWFpARFxFQ1/XUV1XXkFbV1ZT0N7c097WVt3Y1lbR3dHc2NBWVdZUUVZQXl1VXVtX1VFV1tfQ2sXR19zdV9DZ1tTYxd3Q0NRR1N9VV9ndVtTd1lfQ2VRT0t7W3dnW197F0lfW119QVFlFWERDR1hZX1ZQQUJFRURZWFhQV1VTUNZQWlbW1N3E29zd3t3fw9tV0Nrf0dLc1F1eX0dBW1pDR1hZUtXUVtfe2dzExd7bxsTbxMbF3t/f0dbQ1tXR09PS0VdfVldbRVBWUlNWVVXS09Hd3dPV1NDVUVdV1FZRUlJXUF9fUVZfXVZTU19YWFlbWlheWUREWlxSUVBQ1NbT3dPbxNva2sXBx9vf0tRUU0dFWltdUtXW1N3Y2dzd097b2N3c2djQUVRUUNXUV9Xc3t3c2NLW0tLWV1RX19LWV9fe3tfQ2N3V1FVfXldXXVNSWltfRk9BREVYV9RdUdddQUReWlhSUlhS09RQ19RSVNzd3drD2t/Gx9zFzsXU19FTW0dNdUhERF/U0NXT3FRU3sTFxszDxMDG11NUVF1W1tZV3MTf0Nzd0dzcVlxUVF5bUFBSV9HQ097e1VBQXFLU3dPW09BWX0VBQVxSXNXd11ZQWUNBRVpFWltaWVxYR15QXVJU1VRV0tHX3MTFxM3DxcbG0lBcXFhYXV1d1tLV1dRTUNHe29jYx9nQVF9cV1ZT1Nzc0tzb29/EwdzaxNPc2NdcUtfQ1tHe39jB3VdUUlpZUldfWVFfTkpLdUxaWllT1VFbREVBWFJcU1VUUFFXUl3U3NdX3d3X1tZWUdfZ3trG29vB21VfUltCQV9cWVTXUl9XVdTS2N7exsHc09RX1N/f0N/a3tbW3NLR2dnS0t3WVFBdQUVU1VbQ3t/FwdnQ3dzVUNTWVtXWU1tbWVlcUF1cVtVZQ0BATUFeXl5SUVpHXlhYV9bVVdDd1lZWUFDX09PZx8HBwcbY0NPRU1leX1hdX0RYUVNfV9ZU1NBXXl5dU1Tc39/ex9vQ3cTG2sfAwcbMw93Q0VfU3NzQ38XZ3MXE39PTUV9dU11bRUBNQVhbW1lZWlleRE1EWVpaU9dXVddWUNTR0dLe3NzY29FSXFJcUlTV097e11fR0VZU1VNbX1xaRlhZXVXQVFHW09bU1VZQ1dLd2MPNx9ra3t3a29HU0tjZ2d7UXVJTU1fR0NLZ3NfQxcbb3tLQ0NDWV1fXVFbU1FBZXF9BQEFHWFJdWVxUVFtbXV9ZU1ZSVdDc09HRUF/V0NXU397S3dLR0d/cVFfR11VUUFlaWVNcXlJeWF9ZQENeUlHW38XawsHe28Xb2NvY3N3fxNvf3t/d393W3cXa3dLf3dDZ39fR3NdSUl1cXVXUXV1cRUBAQUlIRVNd19jTVNRXXlPT01BQ1tHQ3tnRVVdWUFbT1FXRVV9eUlBRVlFTV9PWUFdRXF1W1VddXVlFRVtYU9zf09rLy8DAxtvYw9rW09FVX1NVX1lV0FZU39LX0tLX1d/Z1tzH2tna2NHR39jd0t/WUVBeTElHRkNEV1RX0FReRkZBRFJdRkZSUFhd1FVSVlRV0MTb19LZ1tfb2NVX0tLW3tjR19zUXlNRWU5OT3F2QVle0cfaxczN39/Axdfd2tFUVVBbWVZXVt3a09/Cwdzcxdnd3tnW0cXd1NLQU1LW0VdU1lJER0dPQlJTXdbH2tbd3FBYX0dMQURNTFlZQFjU1V1Q1VfV0NNVVNDRVdPTVFTS3dbcxtrS39xWVlZaT0JGQ0Bf19Hezc7CwMXS09LVXF1UXUZAREJGU1fX39rY2cbB29jCwNvbxsHHw8bb2MTf0dLc1VFVU1tHRVpARF5eUtbXXkVHTUp1dXZ2Skh1TVtYUNPe39/bxN/f2t7dxcTd3dnZ39vH2NnE31RV1lNbRk90dnVOT0dV0t3Bwtjd3N1UV9VRXFZRW19VV1fSxcTFx8PExcLCx8HA2dnHxN/c29JR1NZTV9LVUFZRX0VZXkVY1dRV0NdcRkNMd3N3dnB1T0tDUlJc1dzQVdLcVdTY39zEwNvaw8Pf2MPE093cVNXRUVpbX0NLRkVBX9zb2cTG3NDQUUdZUVlHXlJZXdfT0cXPwcXNw8XHyszHzMvCwcjB09vFVVDW0NXX3NZQVVVZRlhaRltXUF9TU0FJT3dydnVxcU9BQ1lUV1HQ3NbQ2Njf2MXZ28zKycPDxd3ZxdLV0dZWUVZeR0ZDS0tHXlHS3dbW3N/WUVxYRlpcX1LU1tfT3sTHyfXCwc/IycrIwcPOzMbF2NLVV1ZQ1dHS0tbXV1FWU1hEW15fXV1cUVFeQE9JdHV3dnVITERfXVxQ1VZTV1RV0N3d38TDyM7H2tzT09bW1tLT1tRWU1BTWURbWkVW1NXQ2d/Q1VVSWV5FQEVfUVfQ39zYwM3Bwc7Mws7JzM73yMfHxdDQ3dFV19PW0dve1tHf1F9SXVpGRkFCRV9BSUNBdXRPSnZ1SU5DXFxaUNReWFTQ19DY28TI9czAz83c2MTc09zf1dXd1FJQVERCWVtCWFZSVt/ZV1PVXUZEWUVa1dVW0sTZ09rP2sXK9cn38crO9s7c3NjUX1HVUFXc0dfYxdBU0dVaRFhBTkZbQEFfREhNRkt3Q0dKQllaRVJQRkZeWEZT11FU2MfexcjPx8HMxNrC2tbd2dVX28bd091XRVpaQlpXUFPW3tDV1VZbWllBR1JWXFfZ3NfT29jcxsHHzvTLz8jM3tnG39fS01NT1tbR28bY397RXVtET0tARkxCRENISUl0dUBAdU9aR0ZeXkdEWVpaVtDX08bG2cHLzszOzsLO9cHd0tNVVN3d0dbXX0daWkJHUF1bUdZWUlddR1lSXltWVFJU39DW3d7a2MHMyfX39c/MzMTa293V1dVSX11RVtDS19bQVFlbREFAWlhaRFlaTUxNQ0NEWUVGW15fWVlARkRDQ0VcXVbT2NnFxsPNwcbBwdrS0NZUVdHZ39/Z39RQXVBQUdXV0NHW1VVWUlBWXVlYXFlaUdRVV9Dc39/c28fMwcHCzsDEw8zE3tLWU15dXVHW0tDc3ddQXEZNR0RDTUVETUxAQEBGQENNTU9JQERBT0FeRFpR11fW29nZxszCzM/MwszC2tPQ1FNW0t7R0dzTUFBX1VfVV9XXVVJSVV1ZUFVdXlZXXlxU11TU2MXExs3AyPTPw8rM3d/G21XR3tZdUFFcXFRUVFdTW0deWkNEUltAWFJGQFlcW1hRX0ZDQkxBQExOR1lHWlTXV9PFwNjBzcPGxMfZ297XVdRWU9Xb39LZ21VTVNZVVNDQ0dTQ1NDTVFBVVltbV9VdUdLS193b2N/Z2MTGx8PCztjdxcHZ0t7a1lxW1FRTUVBRXFhHWkRDTERbQVpSUV5QVVVfWV5ESHR1dUp1SEZZWlpS09bU3sDF2MbAxsXGwcLE2dPS0FTV3Nve2cfF19XW11xT1NHV1dTU09HXVNVeWlxWUl1Q1tFX0N/c097HzcDCzMnA3NLFwN/bxsTT1VdXXFtaRUFJSk9DSU5NR0VeU9VWXdfTVF9cX1hNT01DT0xBWVtBX9bT1Nzawd7d2MXf39jFxdLS3txXV9PE29zaxdHV1VXUVNPYxdvZ2sDY1tbWUkVdV1ZcUdTVUlBU1NTV1NDY2d/YxN7R38Pb3N/F2tLX0dBXUlJSWkxMRk11Tl9UUVTexddV1tVaQ0ZFQnV1QEJ0dU9EQVtX1tXQ2MXY0N3GxtvEw8zG28XA2NHfxMXT0N7b1FJQ1FVR1cfZ0NjA3lJT1VVERFNVXF5W1lRQ0MTF09LHwtLWxcHc3sHD2NjBwtrT09LRU1tZREh0S0t3c0tbW1lV2Nve0lVXUV5bWlhNSUNAdXdNW1tZVdbQ09nc3d/c3Nre0dPax9PW3sfS0tze1NHU3NNWVtPb3dDC9MDZxMFWWFHQU0BZ1VFERl/UU1zRx9zU0sfWWlba29XYz8bdxc/B3drBx9JRUlNeTElCT0pKRlxd1NvA21VTWV9FQk5BQndxdXRycEZZQEbV3tVT0dre3cH1yNjfzsnQ1sPI3tHbxtbV2MXVUtfd0VbR2sXe39dUX1teX15ZX15aQUFHXNfc39vMwNzX397W08jLx9v19dvRx87f1NLfU0FHU0Bxd0NCd3VYUFtT3NJaQl5RRkJSV0dISE5IdExbW1tQ1NVXVNTX3cTCxMfCx93Q28fe2sLZV9Xa3ldR0tJWVtrNxN7DztxQ0dvUWVDQV1pYU0d0TFNRWFPd3lNfVNPU1sHIwtrN9M3Z2NraxNrc3d/TVVBTX0ZGWVxZRFzWVllYUllAT0RGdXRCdHh/S052SlJQQURU11Jd2M7H38/w9cfEz83d3szD09HE2FVV0tBVVdTW1tPQ1VRdXFfU19TXUVxdW0dbUlBZX9bQ19PE39fYy8nDy/D1zMr1zNvfwcVRX9TRW05EXkBLXtdfQl5XWUlGUl1ZXlJcWURGRk9KQ1pEQERfXlteUl1R0d/c2Nnf2MXeVFXa2tfR2t9VV9DTUF3TxtvW0sPG1VXa29HTxtrUUNPTWUdcUFJZW19aQUJEWEVc0sbHxsj09PT1zsLCwsfHx9vT0tzVXVbR1VNW0NdeRV9YQUNYXUBLT0F3fHNKdXRPW0RBW15fXl9X3NvEwsnKysrKy8zIy8/Awdjc0dDVXVfVUFLVVVNeWVpERVDX19fV0tFSWVFXUFLV1VJfVlFYWFHW0sPI9cr19MvIyMvJwNjY3NNWUlxBQkRSXl5U0VBfXVBcX1BQX15dXFxHQ0NGWl5TUFxbWUdCQ1lSVtTS39zZ3NLT0tHc2sbExcTZ0VVVVdDXVdTf3dfQ3tJX0dja0tjDxNZWVlJeX1ZSWURaR0x0SkJPQFPc28bOy8PDz8vKysvMwMfb0dfW1VZU19bT0NFXUV1dUtVSRVpeREhLdXZwd0tOT0RbWkZMTURZWdDYxcXNyMDFzPTOyfT39cvNxtLU1lXUV1NdUVxaRV5eX1JXV1Xd3NLV1VxdUVRdU1RQWkZaRkFYV1Xfwcr09MrGw87LzcjIwd3TUUVEXkRNR1tZX1ZQXV9WV1FUXV9RVF5HQENOQkFAQ1hWXlpFWkZFX1Nd193Z3dHU1djF29vDwsDGwdjS2NjT19DR1tTUUFfQ397Z2tnawMPe1tTUUFBSX19ZQUp3dnF3TkNHUtzbxMbAw8zIyMr09vXDxd1UV1RQXl1V19HR1tTUVlNXUVlEXF5ASkl1dnNwcXd1S05CQEdfU1ZU09rb3tvFx8DOysnKyvXOyMHb2trT1NHQ1VBRXVhYXVJXUFTR39/X0dzdUVXd01TU1FJATUZCQENbUtfQ3sfNx8DIyMLNysnH3t9WXVhFT0JbRFpdVF1S1dZQV9TQ19RVU11eW0FASHVKQkt3T1hET1tdXFpRVVVW0dnExtrHzczbxMPD2djF2NHYwdvS1tFXVVTVVNzY2NrCxtLS3dddUFBfRkFPSU5Kd0hATUZT09HfwvTIy/bx9cj1ys/Y2N3QUFlZUVhEUldSWFBRX1tSUllaW0ZAQ0JDSHV3d3F0dEhDW1tTVFfW09PQxMbAw/TLws71y8PNwsPZ3d7Z1tHW1FBfX15cXlDW3tPYwMLfxcDa0tfXUFhEWVpBTUZGQUZeUdXR28jKysv0zMXb2tLR1VdcWF5HR0dYRV5TVlHV0d/d0dPQ0VRXUlNaR0ZNd3F0dXR3TkJATEVZW0Rc1NHR3MDDxsTJy8zGz87BxMzLwNvZx9nc0dbXVVTR0tze2MbE2dDf3NZdW0BNSnVPT0t1Q0RaR1LR3NnP8PLx9vH0zcfDwdxWVNFWWFxRU1lZV1BeWlNXU1pYU11aRFpFQUlMS3dxdEtMT0xEXlhHX1ZWXVXYx9rC9fXNwvX0zMTDzcHfxcbZ1NTf01NfVNdQUt3a3NHbxtjS38XeVlheWUBITUBDTEFFW1lS1tLZx8j39MnDzMDd1NPSV1JRVFBeV9HXVdTS0FVU3N/RVlXUUkReUVtMTEFPcXFLS3FxSUBMSk9GRkFYVNDc2MPJyM7Oyc/NzMvPz87OwsXY29rdVNTS0lTV28bY09ja01BU0VFEQFpFTnVJT3V0Q1hERFHf397M8fDKyvfIxdLb2tzQ09/T11TT39ZU1dHUUVdXU19eUlxYRkVETkhISXVxd0tId3REWURPW1NfXlfGzc3P9/HOzcjJwdvDzcHF29rQ19DT1F1QV1BdU9Hf3NDS3tDXVdHTUFxcU1hBQkFFQ01HWVNSVNzb28H1y8LF2NjW0dLW1FTXVFBSVN3R1tDe29HQ3d/XVlVXUV9dU1lFQklPSUp0dHZ1S3R0dEhPSEBe193bw8/Kw8HDzMvCw8j3y8HMwsLa3tjc3NfV0dDd3d/Q0dJXUlBVV1hYUldYTENDQ0p1T0JGRFDSxcbAysvKy8PH28Hb3d/bx9FU1dfWUFHU0NFRVldUXVpYWVtBQ0dFWk9PTUNASU5OT01OTUNFRUZbU9Pd3cXJ98/Az8jP2sfCw9jS2NnZ0NHT19FUUlJR1lTU0dze1dXU3NJV0N/a0FBQU11BTUZbWERfVNLd0NvExN7R09Ld1NXT3dzVVl1dV1JR1dnZ19DZ2tFQ1dRWW0VfXFxEW15bQUtISnVxcXR1T05JQkBaW1LW2cLBwM/19Mr19Pb0w8PNycHZx8bb1FXS3dFX1tDT11FQXVJcW1xQVFBbWkVbTklDRkVBWlDT3N3Ay/XNx8HDwtvYxsDB0tPR1FZZUdXVVlbX1NVWXV5FWkZDQERbRkZYXFtNQkNAT3dKQ1pCT0VZXFhQ38bAwMvKysv19/XKzMTF2dve09DT39RV19PdV1NV3NBQ1dPQUFPQ0NZRU1ZSXFpYWFhFQFpdV9bQ0tjHxNnc3sXc0tjEx9PX1tdWWFPR0tRU097f19XXVF1aWF9ZWV5TX15dX1tAQE13dnVMSnRIRllERFHf3tbdwvXKyvDy9srJy8LF3tjb3tne2dnFxdPVVd3fV1NQ1FBbXlFUWUZYXkFLQ1laQ0NfUFNQ19zexMXb2sbNwMDAw8zG2t7e0lNW1NdRXlNVVFhFXVBcQENZWVlFWV9YWlpeRUFMTk5KSExCQVhTXllW28Dd3830ys708PfPwcDG3NXV39PXVdPf3tzR1VXW1FdW19PXUFTR0lRdXV1aT0JaXlpEUtTVXVxV0dZV1tnFxsHAx8TGxd/R09dSXlFVV1DV1tVeWFPVV1tZVlZSWV9QUl5YW0ZGTnR0dEp1S01bWkFaXNbf0t/Ezs/HzPbz9M7K987Y3MXY09fc29jf0t3T1lRU1dfQVVJTV9RQWFpcWUp1R19EQF9UVFxS0d7d0N3EwcbFx8LMxtrF2d7XXV5TV1NSUFBXXkBGXl5BWFXQV19Q1FVZR1paRk5KTUZCSUNDQkNBQURTVFTW2MLAxMPI98nMz8vO2N/aw8XT3dnY3dfS393X0d7H2tLd3dHVUVJcXF5DSUJbRkNaXldfW1fS01ZQ0Nrf0sbOz8PBwsba3NVRVNVWUFbVVF5EW19cWV1W1lRcUlZWWEBHW0dJdEhNTnRLQEZAQkFZUVBX0tvGwM3LyvTLyc7JycbaxM3B3dPZ2NPU1NLY3dHf29vUV1RVU1tYXVJEQUVEWkRBWlxTXl9Q1dFV1NDYxdnFws/D2dnb2tBU19HXUlJRVFFbWFldXVlQVdHVU1TUVVNfWUVBSUtITk1OT0BFRE9NRVxYXtXYwsLAyfT1zM3Mw8Tc28bG2tjb2Njc0NHf2NDW38XF09XU1lZYRVhcWkBGWV1ZWFJUV1hbUlBQXl1V0NPS3sfB2t/Z29vf0tPQ11NcUtXVUl1X1FdSVd3d1FbU1VRSXl5FQEhLTExJSk5ARVpARFtfXltd0MXa2MD19M/MyMvC28XBwdrf2sTa3t/b2d/WVdbT3dRXVNVXWEdaXkVCR1xXXVzX0VRfX1JTUlhcVd3S1t7Hw9rc3tnZ09TW0NddX1NUUV9SV9bXV9Tc29BX1tDUWUVZWEFOTUZFR0JBR0BDQ0ZFXltEXtXc0dHewM/Gx83Iz8THw8zG28bNwsTEwMbb09HQ3dzR1tzc1l1aRFtFQENbUFNcUNRUWURZX0RPR1JUUVLW2djd0tnY2N7d3d3c0VXU0NPR19bS1lZU09JVU1fT1VhBWFlaQUdYWVtGR0dGQUFaWV5eXlNX1dfU3MTCw8PP9crAxsLLzNrbwcbe3sTb3VVV1tdVUVfQ11FcXF9eXlhcUVfVXVNU1VFdUFZWWFtdUFxbUdPc0FXR3dBXV9HT0dXX09Ld1tXX1NHX19HQ1lbU0dZTWlxSUFleVldSRERHQUNDRkRHRkZFRVteXNXc28XHw8PAxcfL9MjCzsjIwtvBw8Xc0tnT1tVX1lVQXVxcXF9YXlFWXFlcX11fWl1XUFlEWV1cXlHc29zQ3tjS19TS2N/R0Nnc0FRW1NTVVldXUlNZXVZRU1hfU1BcXFTWUUVEWV5bR1pfXkVCRVlZWVLW38Xb2sHGxN7Zx8/MxcXAxtjS2cXb39TQ3dZVV9TVVFNR1VRUVtXW0VVSUdRVU15dUlxATUZERUZY1ddUU1HR19XX3cfF3d3e39NUVNHS09PR0NFVXF1QU1FTUFRUUVBX1FVfRF5eRE9DR0BJdUlDRFpfVdza2dnHwcDEwM7Ly83Czc3A3tvBx9nT39nQUVLV1VNfUlBdXVtfUlBXXVTVV1NeXlpEQUJHXlNTU9Td0FdX0tzT09jExMXd39/Q1VfR0dfUVdVQWUdFX1leXVFU0NdW19DT1VdXVVFFQUZATU5ORlhFWlHW1tfX39nb29nHxsfFxcfHxdnbwcbB29na3tBU1dHUVFfX0NBXV9PT1lXU1FZeREdNQ0xJQVpbWF5TVldRUFXS3t/Yw8Pa3tnaxN3Q2d/d3dHX1FFZWVxcXFhSVlFRUlTW19BUVlZcR05PSUlIT0FFW0dcVFXR1NnFxsDFzc/MwcfDwMPAwcTY29LT09ZVUlHVVFZQVlRUVlLV0NHU19NVXUVaRUZGQFtcU1JSVVTV1dfc3t/S2cTb2NDR0NbX1NbT0FRRV1ZdWV9cXFJTUdTU1tTT3tnZ1tLWUFlHWkRBQk9AQUFNR15eWFlV397e3Nvb29jdxMHGx8fCxsbZ3tnT0VXW1tXWV1Xd1tDc0N3Y1tfSVlNGQ0FNTUhOQkFGQ1lTUlBU0Nna2drAxNre2dvY3tHc2dPWVNfWV1NcU1JRXV1XVNRWV9ZVVVFVXFxcR0RNQUNJRkZDQEdfXVJR097c28XEw8fFx8PNzMbbxd/Z0dBV1VVeXFZTVFJR19ZV1d/T3dLW0tVWUlxdXkRDRkRFWFhQUFJWVtTT3t/S2dnb0tbe09HU1tzX1VHV1VdWXFRVVVdU39Pf0t3Z09HU1VRQU1hbXlpBTExLSUhOREdEWV9U0N3T39vY2NjBw8HAzc7AxsXf2Nzd0VbRVdfV0dzS39DT39PQV9RWX1tHREBOSEhCSUJBWFJSVFfR3tjb3MfGxsfbwcfc0NDe39DU1dJRUl1R1VxWVtXQVdbV1lXVVV1RX19eWF1YXkBHREFHRl1XV1ZR1t3d097Gxdrf2cbYx9raxN/e19HUUFFT1VdX0dfc39nS0tne09TX0VRVXVJcREFPRkJCW0VQUlZUVNPQ0NPQ3N/S0dLc0NFV3dDU1FfU0VRUV9xQ0MTSwVfe3dHY1VdfUFxcWUZZWURCSEJCTk1HXVtfX1XU1tDXxtrAxd7EwMzAx8zBxNjc2dDXUdXQ0dzT39ze3NLb3dRSXERRU1lbQUBJdUhIQEZFXVZW1dHd39/T3sDFxMXYxdrZ097F2dBU1NVXVlLX11VUV9bWV1ZX1FZcWkVeR1taWFxbR01BRFxeWdbQ1tXU3tzT0NnF3t/d28Ta3tnY3NPXVNdWUFBT1tfT1tPf3d7T3tnT1lZWV1FTUFZcWEdDRUREW11UV1RWV9dVVVFV19XXVNHT09PX3N7Q1NTQ11RV09jc0tLYxtjT0NzQVlBfUlxcWFtZQENLSEFPTEFZUFxZWVDVV1fU2dnd2djAwMHAws3F2N7a3tfS0N3Y3t/S39ne09bc1lNZRV5aR0RFRUBNTEZGRl5dUVZRV1fW0NLR3dvf2NzbwcTHxcDAxNnW09VRV1bW11ZQVtVWUlJRVlxeWF5SXFlbWFhaRFtdUlBQVtdUVlFX0NbW0tnb3dzc2Nrf397Y39DXVddWV1dU0NfW0dDS0NPR39nQ1lTR1lZQUNVTXV9fU1hZWFtfWlleXVJeXV5QUVHU1dLe3NzYwcfY3dze0NbT2sTY29jZ0tfQ1NPRVFdTUVtERkJBTkxOTUZDQ0BaWF9cXVVRVNXR397Z2MfBwc3BzM7BwsfBwdjf3N/S0NZU0FVXV1JXU11YW1tBRkNFWkVbW11ZWlpaXVhcUFfR0dLS3Nve2N7EwMXGxcHH2t7T0lRWUFPVUVJTUFFTUFJUUVJRWVJdWFlFX19eWFxWX19dUFdQVFXU1FTR1NHd0dHQ0NfW1tbT1NfX0dLQ0tDc393Q19DT0N3c2Nje3dLTVFRQUFFdUl5eWkdBTEBCTEJCW15eXl1UVFRX19zd3tnFwMbGxsDBx8bHxsTa2N3Y3NDQ0NBVV19dUkVBQk1OSU51S3VLSE1FRFlZXFdX1dfd2Nna2sbMwsDBzMPAwdrHxMTb09PXVVZRVVRWU9XVUVNeUlJYR0FYWFtERkVER0ZFX15cUdHS0tzS2trb29nEx9vZ2cXF2Nzf3dHWVlBTUlBTVlRWVlfVVlJTUFZQU1lYUFJZWl5cWFhaWVldVFfU0NbX19PX09fX3NDT1tDR3tXU0NPT19bQ3dDQ0Njf3trAxMTD2Nnf3FFeU11eRERaRkJMT0JMQEdbUlBRU9VV19TX39Pe3tjDwcfFxcfG2tjFxtvZ393W3NnDycVQ3V9ZVE5ATUxBTndOTFtIdUxBQVJfXtZS01TY3FPGwMbaxt/c3dLC0NDawtzc0N/f11ZW2FbQ3VPV3ldZVVBbR0Nf1EVAXVhCWEBV3lFWwcHFwdrNzNzex9rN28HNzNnG29LF1FHE0lFUWFZeXF/f1lLD1FdRU9FaX15fSlZacFxxW3RG1lBVXFFe3NZW3VvV2FRUUdlX1VFUVVVV2NHW2t9X2sVT2MfL2cT1yt/F9N5V1dLX1VxdSUFDdERyQlted0FWQ0dS1HfTwEXRw9vAClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9nNzExbXVsYXdfMWNoXzhraHouaW5mbyBiL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTE2MmExNwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8KQEAgLTAsMCArMSwxMCBAQAorODE5MiAzMiAwCis4MTkyIDMyIDEwMjQwMDAKKzgxOTIgMzIgMjA0ODAwMAorODE5MiAzMiAzMDcyMDAwCis4MTkyIDMyIDQwOTYwMDAKKzgxOTIgMzIgNTEyMDAwMAorODE5MiAzMiA2MTQ0MDAwCis4MTkyIDMyIDcxNjgwMDAKKzgxOTIgMzIgODE5MjAwMAorNTQ2MiAzMiA5MjE2MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5yYXcgYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjM4ZjFjYQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LnJhdwpAQCAtMCwwICsxIEBACis/Q0te5ebq/VxYYFpUavL+XVhbUFNcW2tv49zl2dra3OpdVFpgcHzVz+Xo5Ph758/ExMfR/l5NRlPr0MXBwMnjaVVLS2bazcjIyM3kbF5eXFFNaHZd69nX1XRYT0JFVn3MxczQ7khAPD1KWM/Aw8rL4VtLRVFaTVlpaextaunl+97e6eNq9fdPTVFLV3Dpz83Ryc99ZU1VZFJe4Nvd9Gvsa1vgysK+ytxcPzk6P1nPwLm8y+VZRkFFX8/MysTM6mFNUU9GVuHNx8vJwM5oV05PW2Da0dvQ2m9XS0lbbO/OyMfN4ON3TVJ94nxeVl1WSExX89nj2MzqX2BjXFRNWFpPVUtKU1Ve/WBXcO7uZFfu311dX1dZaODOy83O2upVQUnqzsfAv8XTaE1GSu7MwLy+wMPPa09MT1Jc2cvMwLy/xupVTkpKSk/m0up0X0xKTl7n39jX92JXSENNYt3N0dznbFNGRGHWzcvP72NKQUVGTGjfzM13Y11UUlJMV23q5Gxm6fhdVklQ9NjOx8vWcFFRSENW1sW9xc/aZkxCP0zuzLy7vr/C0/5WVWBm6djW393m2NfuaeXhc1FOcPLu3t597nJ5/HT+3d3d/1hkZ3jZz99vV1xUR0t+zMTL5PtdSD9CR1BZ4c7dcWNgWE9HSUxPUE5KS0pSX0xKUvLb5/7Y2fRfUUtLS2TLwby6urzJYFNe7sW8uLW4vsX8T1Jb2szb1tLw5+ni13JbbldKS05q5mJVXFlpel9salVYVElSZ9/Iz9fRcVNSSE1UXs3ByMvYbVo/OT9M6snKzt9XSkM/SGH31dVxXlVNUU9HS0hT6+3jy8zL3E9NUWHSzM3G0ep9VFFd+czCwL7GysnP6Wx15tjZ4OPX09Xq9N/e3uFmT0tKVWbq1NDKwcvlbGjte19YU17yamXu3d16T0Y/RV/t0M3hXkxBPDg+Vfjp7l9YXlFMR01aZXXe09LP1XNYUE1i38zJzNHO4P7zW3XW2N7k2cjR829PR0xW38XFw8nWbkxJZ9zOys/zZWdsfeTIvb7L22hbVExSeuXOxr+8x9LVdU5JR13f1c/mXFVHQEA9Rln48Hls+1JCPz4+P0li3+HtbnFMREJT59nRztxjWlBUVGrSy9vd4dLL0szM1/tmZ+X+3snFyNxkYGZd9/jj4Ojv7nF+8e9uW1tgbm1vfmxidOnPzt/c32ZTSl3Nxb67vsPL187R18zLyszQycLIzulQQD1GaN3OxMLWSzs2OTw/S1VPTEM9OjY6Q0lXev32ZFJJPjxBTXDi2dHS2V1MTVZm7+Lc+llaXG3j49nLztbl7ul5WFJKTX3Uzc7Oy811XFxy2Mi+vMPgYlVQU/zNvb3Ex8zMx8rZ4f7WzMnAvL7DzuDY4ujm53JqVnDh7u5oV1NOR0ZETl5bVU9DPkBIV2x+Yk5BPzw9R11hU0pMbefc3/16d1Rj+uzf3d5sUF7k9+jY19PQ1dloYfbVys3a28/gXlhu+nrnzsnIxs1lSUVGZs2/urm6vtLc42PzzMXAxsjE2XRyc9/YdXTl3ujm4O1LQEZMUldnV09HQkBDRVJkZFlMUltKQExOVVVcdFxRZXFiWklMX+Dp5uPcZFJZbtTFvsjfa3dx7ezh3N/g6tzPzuHc8FNFSF3r3cvExcjeX1JWVFxo5uXczMjMzczX8NvHw8C9vMLTbVxt3tnp6eDoc+rmdl1nWU1MTE9PUlFJQ0dMUFVOTltTQjg3P0VPdNjQ1O5lW11s59fN1vDa33VoZWP42s3L3/PpXUxEQU5sbenOzdVmT1NGQVJpfeLs2sfJy856+uXmxL28trjBzuHcys3LwczP0/nj3/vs1d3uWU5ma11wXlljU1ZjVU9QQz8+PlJiWW5eTk9OWm5VSk1KUFxd2c7gdmNeavjYz9Tb5GlhWEtd69jP1eX0ZFv3+WJw7nz7e+XY1nVPS1dXX9jT0MvIxcnrYlZVXXvczczN09zX49/N0ubQzdDb3/h7+u/Vz8rO3PJoT01WbO1+9+lpXHBXUV95et3xaWRbY1BISEZGatbNz+TxdE1JWFf20d3g3ldHSkxKTU1RVFzxflNEP0BLX9PJ3f/7V19ZREp0fuLV5Oji0MO/x87i6NXNx8fPz8nOxsTLyMfd39b2X2/nz83a1tzQ1fft4V753enYaUlPVEhQUktKXGzo8F5cXWFVUlJQP0lZV1pcUufqTF9XSlVqbNDYc1dPUE1Z39LRxdN0TEBBVWvdytLm59zd0OxZWPN8ftbO1eX2ZGtcVmHV1djeZ11u8NXIzc3Kx9Pc3Wpa59/h0dbSx8jZbE9PW97Fvb3LZFRSTV92Zt7P6ersUUpNUVxgWVVSW2BaYFNIVF1Sa2pg2vhQVUg/TWN89GhgX2PueGzfalt4ZFloVVFiXmD4X1Tq3dfP3mJpcN7Q0M74Zun858bJwr3I091t5MvMx9D3Ymvo0cvEx9TU/01ITU5n6dnPzNnn3e3kfVtVZOrNzNhiUFhWWPrseNffdFxNSlZdXVRPWFtfUUhFPzg6PT9ITU9TUUdFRUdMcdDLzd1dT09Q+tfb38rIztDV08rIxb7Dy8/Kyc7W083HwMO+vcXHyN3w5ubWzczNzuJgVFhWT09TXW7s29RxS0tUWnbs7djP2fZzWVVt2+BhVU1LTU5OVk1NU05LTk1SVUhERktEQElOSUhGPj5ESVBTS1Xw0MjJ2Ojn5dTMzdPLwcLIycnHwL6+v8HHxMDDys/QzcvJxsLHz9HlX1NSTU1UV2VmUklJUFFRXWbu287N3lJESU1QWWR739rf52tQVV9lYWb1c2ZjXlhSUVvs3+jpaVVMQ0JFQT1ASElGQT47Oz5ASUtMVm3/c2ZcX/fTxsHExb+6u7q4uLa2tbW0t7m5u8DHy8vIx8nO3VtLS1Zd7N7v+PtwZFJHSExQVVte++HY2ON0U1V67P7td2d88uzb7WJeVVFPT0xMSkpJR0ZGTm1tZmdSS0pISlJIREZCQkE+P0FES1JVVmBy4e7s7Gz33tXPzNXTycvOzMzEwr+7uLm8vcLAwL+9vru6vL7M6fzn5uHZ3NXX0c/uWlNWbt/V18/T3998eF9VXW1fWlxSTk1MS0VBQ0RLTEhEPjo5PkJHSkxOSkRBPj1BUF9yd2dq9+/+amJle9TMzdjk5N7m4NTT1tTV293q9e7Z3NjS0tLRysnN2N7d2dLKx8fGwb++wtDPycXKzc3NzcjBw8vV08vKzMvT1dve4H1TRUA+PkBFQz8+P0A+OTo+QUI/Pjs7PUNSXldgcnv6bVVOTFNr+u1wbvZ4dWtXVl/uz8vY5NvSzszJy8/QzsTAx9Dm7vdz9Pvq183L0HtaZWjdysjFys/O2vNlZOnZ1c3JzdHV0tDZ19bOxMPAxtDU3NzibFpNS05PUVVLSFJOVlVMUEtEQT08ODY5PD9FQ0ZJRUVGQ0ZJWfvs4GNaZldo7WZs8uTNy9PW2tXY2dLrdNzQycbO1NTW0MrIy9DMz87L1trS187DxMTCwL7F1WZObuHWxczd3fV65Hv20szHxsfJ29znaWpXTFJXVl9bST89QktaVEdIQjw+PDxARU9PTUlBREpHSUpBRVBSZGJTU0xMTE5SVHjVzMjN6Xrq3tHMzNDe1tXY0uvm1c7BvsfR19vc29nc1snGx8HO3tDOztPa3N3X3OHZ3ufTzc3L09jOzMXAx9dtd35p9nJWV1RPWlpQUVlkWEk/Ojw8Oz88Nzg6PUNHSUlKTEZHSkZX4+Ld6nf293T4/F5cdt7RztlsXVtWbufc3t/a6nhrZPzTysTH0s/Ly8bK0MvKxsXBwMjKys7X3+Xh0s7KzdngYGj22tDb0M7PytP3aHHo7PVsXUpIRUROSkpPU2VbS0lHSElJSElKTU9QXFBMVVtvbF5WTFhcVFdZVU5LTl1ZVVldfPdeUUxd7ObV2flpcOzRy9Da29LU4N3ZzsbJyszS0NLMwLy+ycfIy8zO086+vry7vcDMysnLzd3a2uDlWUhGUlFSWktFPDw9QEk/P0dMV0pPT1tmT0xBQkZMW2nmW1VXSVJNUFhs3ejsYVBHSF752O9q/FhmWE5SVnR13N9gV1NobuTf3M3PycnMx83Gx8fFy8rMysbAxMjFy8jKz8rTz87OzeJybNvHw8TJ0H1RUFJtZGJ7bV1COjc8S1JgYFZWTkxJTFBOUlZjWkxLTXJlW15RVk9PUmNwX/Hj2uVfV0/43drfaGlRTElNZFxnbu/jaFZO+tvc0+befF198s7P1s/Pzd7h69HHx8PLycnX2d3KxcfGyMTM2unZxcC+x8zUevl47en58nDwak5FQEVITUlMW1FPTFhiV1JMVlpMRUFGTlpPS05HR0pSZ3fh+21qVFFObNbNz3djVUlJUX7x9WZi+FtUTlrf29Tb4N3r6OLRzcrHy8nMzNDYycfCwsjIzcvMxcLKys7O1uRuYtXP0c/q+GJpaXDZ4uXldVlTTEBJVV/hdFpRTk9V7/1lZFRLSEhBS2NaX1ZGQD9BQlRhXWpbVFVYT1ve2dTYdF1dYFNdYlVv7O7x/VVNWV7bx8rN1OF06Nfl2tPX09Hdc9TKxr/Gz87Ky8a/xsXEztfb2OPPydHM3VhQUE9Z3dna0/NlX1ZISVlX7+JhYFhMRlBaVf71a25uV0xSTlhlTkxLSUZGSkdPYVxaVk5HWnD22XNjWE9LSmBbX2JTUU5OR1Bt4sjK09nX0tLDwsXEzdLe3/3vz8vFyMW/v77Ev7/Gw8fIztTmcd/YztDoaFRTTVRyeeb1fV9QSUFNX+LV2+NnX1NUY2JfYF1dV1dOUGJy/WFfVlRMREdISEhMTlVWTE1l9eX1ZFRIRkZPXVZVZmpfW1tb4czHwcfR4eB9+NbOz8/T4PNgT2Hd2s7Ev8XFycvFycvHwMLHxtTaztDS6F9JSk5MYPJ0Zu3c5+ZcWOnw8P7oYFJbUWN9/Ovi2V9XUEhTVGV7+WBJTENDSElNTWRhW1JGTVz+4uDmWl9YWmhWT0xXXU9NRk5bYOnj0+Xh2d3Ozs7MzcvX4m5k7OjPz8vMzsrOxsPDxsO/wcrU5dzg195tV0RLSlFabO/n2dPZ/Wzy08rM18/vZU9PWmVvW3VnT0RCQUdUaWF0WE1MTE5QaFZl9PpaT0tNYPhcYmhVWVluXHFbYO5wV01TV2zW2+blZV9f7/HMxM7N3ftfXnTgx8TMy9txY93RzsXMw8PM3OPX08bBzdN7VExRXVff3dveeFxW/uzXx87Y61JISF1v4drd325UTFtebOPn/15LR0lXWmPx9ntWRz4/QU149GxXSkVIXPDi3d/sXEpASlv20tXU6lJEQ1bkzcPExNLyYHHw5si/v8jX+mjn0si+vru7wtLn39vLyMzXaU1FSlhn4dre5FtQUF/62sjI1XdTTEtZ69naX09GQ0FDTmTWzulZSD89QlVn6fr3bE9GPkhZ6c/dblZSVVLr0MXG0Nrn6mVu5tnO2W1WTkxIX9rV1t3f7PL36NfOx8bWalhiYmzY0MrN1dLS2evdycjL7VRPTlFW3MrL1Ofk73zu5tDTz9RjVE9XXOrW3OxcXl9bXFnn193uTkpFREZNYWVgXFlSSkhOXF5VYlNLR0tceerl6HFgYG748+fp8u5eUU1PXOvP0uB2a3Ruc9nIxMbHzeFjX+TUycrJytTb2NXPycXI0N35X05TV+nT3eHs3Nrd2M/M1ubf5mFNVllnak1PTlBRUGFk9eNvYFVNRk1RVO9kU01LUUxXZurXZlpjWEtLX3LX2vr5YW3uz8rSy9bqaE9LS1lZe+FjWFJebv7Z1MXK4O9tYmDw3tbN1N/4+OXUzM7Ly9bf8fB86N7Vyc3hYm7i1tDNx8fS62tsW2Hu3NLiaE9JTFjr1srL12dHQUFGVFdiXU5CPURPYPTx8WZPS05aU19w8vBeT0dNaO7X2eHc5mlbY2D26W52X1ZLT/rbysXFx9Hr+NvU0MbFw8real7t2sjCyMvQ4WxgZWTp4ODrYlBKVffQyc3P235fXfz9393x+VVKSE1m59HV3fheWVJbZGtzWlZNRUFDTmTjfWVlYGtt6eDo5O7pZ09OUGfs0svM0OH/ZmRt9uR4ZVRIRENN/c7KzNXsZ1td9d/b3tfhW05OZPLVy8vL0tfNz83KyMrO1N7k6OHUy87kfv5lZ/fdzc3a7vVaTE1Ra9/X2dnoWVdfVVxiYVNNRDs8P0NU/mJYXVRPVlNv3ut9eWlPTVlf9Nff9/BbT23u4NLL1PZpT1BZVvrR0N7g3dzNzMzFw83b2fldcXbw08/b2dTh2s/SzczQ3/RmV2FdWe7Y+lxZVFp+6NTJze13Yk1IS1Xw2OTc2Olv9fVu+/xaU0g/P0FCQ1ZcUlldbOTa0svL19ze4uT1/vvg6mNlYFpo5eHs621cUE1NT09NXvd4Z2Ru5efu3M7P3/5wX1ZSVnzW19zPzM7Ny8XFys/W1M/T2d/g2d9uX2l67efb29zuYvvg63Fu8PB0Y2rl7fDj2N51Xk9MSUVFQ0RDTldLTlVceenu7OJwW2RkXU9RXWZtWl5wZWnu6HrwdFVcc3zp6OnZ09jd0M3KycnExsvZ5tj2WFhdcOtvZubg49DOzs/d29nX3uztb15WVVRYYVx66u/e2u9q7/hqc3Pz7Hnh5vxu997j8GJcV09LR0xRTVVfZWFaX+7yY23x7enh3uD9al1XVlVm+fDk5+97+lxWYmJcWl1eWWLt5N/l2tLQy83V8eniXlhXbuvs9P7e29bQ0c3S09jRy9Xb1tPlbG1z+PNnfnn58GJiWnvm+err6H7p4Hre6urm7+1fV09QT0ZJTE5OTVBMTlRWZWdv9+7ubufpb3NeVk9RUFZzaPnw3tx5aGB6397d2NXT1dfi1s3Oy8zP19zi/Pl99+jp3/3+fmx1a2Jo7eDj6PXg3HBlXllfXF5ZVFtiY3Dm7d/f49DN1Njb4On1cOrW1OLufV1OSUtNWVtaYF9XWV5cXG1x8fB59nJ769/g+HFrb2hZU1BnYF9lXWFeYGdtcWhzZWNudPHg1djV1N7g7XL+4dbZ4Xx94d7m39LNy8nP1tLW0szO2+jucl5YVmFyaWr0dW7y9PPs3d7f6Ghec/jz6npqempZVk9LT1ZTUFNST1JSTUxNVWhiWFx+7vDc29/rb2BhY2Rtc3FnX15u6uvx4tXW2tvk2c7Jx8vOztDgemhlbPrscV5ZYnR97efd19XX3+zq7/Hv5dvd53ljVVddVlpcZ2Rgdu3q5trQ0tzv59zT1N/pfXJaVlRTWmFnX1hTUVJVXGRkfu70cFlYavjm6d7W7V5aX2JfY21yWVZWU09MTllweerf39zZ1t/n3+Hh5vp76ODp5ubr+XFp5uf03tLP1c/O0M/LyMrK0+N6V1pfZWL28XX2a2ptd+7n2Nbg7e3l3ONs6N5pW2FXS0lHS0xLT09VWFpbWlteVlJcWVJg8ujb1Nv8YFthbWx54+Pm9WtbVVdgd+jc2tXS19PR1M7N0tTT3+t9e35qY15YWm3w6u/t73Bmcu7s5NfT1dTd6ntoa2h1ffHx6PRgW1le+t/RycvP0tTY3O7q4OHqcV1RS0hLTE9RVVZgW1hjXFxhaWx5793V3OtuYlpQUl9ycvxtYWtXVFZQTlr33tnj4uHl5t/h3dbU0+9eZVxq7ujd1tXd4u77aW175d/d09LP1dfO1Nnh+XV+6u3p7378dmNibHTk3dvm9fF75tvf8uje32xXUE1IREhMTU5VWVRUUVJhZHV+6tzief7weufwcGVfdvZ6aPnsb2dZZG3w1NDR0d3u2+X24d3Vz9Pf5XdpbWJsdPPubWFpYVlmYm7g6OTe42xtdfXd9Hz44uf77e739eX5a/x869rX1tXi29DU0tfW1tzmYExMUk9SX2xvXlVPVVNYYmNqbPp+Yl9ZWm72dmheWmVjX2Jma3vzc19gd3Bj8Oh69eDX1Nzg2N/l5+vy6u3z4+HY4mP6b3bu8OXq6vvi+XP4deLY1Njf/fflfOHtfOXq7fT/a+rm3drh3d/e6O52/u5dYFhVU05NTVNNU01HSEhPWF1l+fbs3enc4enX0d/8Z1tyaGl2dWxvbl1bV1xv+N7e2M/N0c/O2tPW4O53aXNuXXTr7/5hWlZadOp97u915eTx+Pv4399rXlladu3w6NjNzd3o82/x6+DY1tbQ1d/c3+vl8WJeXVhWT1BYWlpaU1BSWmVaUlhfYGhkZHHq4tjgY1pRU1xfZXnm4/VrYGBm9Ov06d/n8PPv3d3n1s/U2Nrj9XNv59nd5HB33Obr8Gdr+fro7vfZ0eDl/F9ja37r7eLW3+7sXVRhW2fq3M/Q6uzl693c6OT1cX1XTVFLS1NLSUtLUVxVWFFNYfTu4t/YzdTc1fJlbFxi8vfk3HFgX1picHzp4tzV5+vZ29PM1+DV1tfaZ1hcW2jy9m5qeP9tZWpbYmpZXerc1M/scmxYWGNu+tvV2+bo4eTc5e7n087P1HdtdHTq3N3x4PdbXFxYW2peWU9VXl1ZU1BPU1NbYWN3dGhze2f372Jha+LR2PVjV09ZW2zl59jS6HT579jR0M7Py8nN3ub9cfP04OB0bHhZV3Z6fvhoXWbi1NXl5+h7ZWJ86ujb0u997Wt5+mtf59ra2ex+bmdr8Nzd8mxkT0xVU1pcVFZcUk5RT01QWFVcX2xv7eHz6d7b3u1vb+Hg3dnvYmFcVWJ66N7c2+ju6eDe1tTOx8rPzdj98nVlaWptdWRTVVpga2liXV546fXe3Pjl8HBlXmvi3vLc2uTp6eHd1cvK1dbdaWJfZWty/PpfTlRUUFhqd2v95e1ZVlpNTlFUUFJXXl1YY2VdYnh4cPDb09vY2+t+amZebHTj5X306v5s7NnVzsnK0trk7OXd3NrZ3dvtZF1qYlx5fGJfcvD17u7o/m13dmFfe+15fuXr7N/c3dra6vRyWltaZvzn5tzU4W5aXVtYZHp2cW1fXE1FSUxNUVlZXFphbW1+7ebl3eHf3Obe9WxrX1hc9+3h39zjcXfq4urUzc7S29Dc+/Xh4ujY3N319m1eaG7//N/i/GpjblxYXWhhYvDi629++XJ65dre39PM1Nra6W1dZnF75NTc9v9fVFJfZ2H+5vZaWV5QSUlUU05cfmtVVFRYWl1eXW/39fx7eWhfZf5zZejV3efj5Oju497e283JzdHS0N3l2NbYzc3Y2ez7/njz/3344/ZmW09PTVJoZWze1NrmefHk/vHm4+DY19bkYV9ZVltZX/Do/nBq/v5qc21ee+Xu7m1YVE1HTU5XZ2ZlXldUWmhvXmPc2dza6XB+YGJ+aHjr6e347uDf29zq4dfTzM7a39vm39vh1s/W5u3p/Gh1alZaeubjdF5ZT0pTWFvx2dnj8PX8693peuHOzNPW1+NvZvpsZv7t5X5w5eb1cFlTVWd6dWdiWlNNSUdKUlldVFFhW1hcWFVd39jb6u1qWlVaXVz52dj169HX2uXn8evZ49jW1dTT1d3p7c/JzdTWys3R4XNnY+fx/WtbWE5FRkhNZ+HZ2drV2+Dv/Hnhz9Xe3tvtblVTUlBufmZk/9vg7HJiVVloZGhgWV1hT0RCRlFWU150eWlpZWFj8NjV0NPe729ZUFRo3dre3dvV2t1zZXfr19vXzs3O0956aWjg19rT1s3N0OB1a2f9aWv7bFtVTEdLT27569PY2evybmlq6M/a2NPU2ehtWV5YZPtx7e/f3+xrXVhWZF1ga1ZWVU5LTExZZFlgZVtSUE9XWWjd4NTP5GdYVE5OT/fZ5dvX09fb7HR0ftvXzsjLy83X6/h828/NyMrOz8/Z/nPs2+fp8GJXTklITExdeHrm6OLe3N3l493Q0djle+1lU0xISlVfZvDt3N3k/F1jZHz28f5gXU5KRUFJWl9kbVtbWVxaW+/cz9PU197tcF1QUVJnc+nh9d3V2ndo/+/c18zIycjL2m5fX37i2M/T0tLc53zw2dPf6edlXVhNSkxSYHdudmdv6erw79rQ1uDj3u3d3HZfW1xjcn7g29rZ6XBaXW5veXd1Zl1NQkJFSllsbXRjWFZTTlNt5ePo7ev0dWRdXl5t+vxxe/1xePNpX2drd+rWysTDw8nW4N3d2M7JyMnM0eb95OTn6nZwZVpVT05TW1tna19hbHXq6+DQztbc6/V+a2x6XltYVWNmeOXf5d38XWVdV15baG9dVE1IS05PZXx18HlqcFhZ+/R+6PRvbWNpaVxpfmv36/zs9/Pe+WV3amzj39PHxcTHz9bh89/W1c3M0Nh6cOpxd/JtaXRnYV1YYWZeY2VbWmB93trSzNHU19/o73p4eF1fW1hnbP7j19vm8f10WFdmde73c1tLR0lKSFBbW1pdX1xYW2Jta2htYl1kbGt75HNu/mtoa3v4+PF4a11ffN7NyL/CycrO5d3Vz8fFxcXL2eXueWln7+z27HRjZV9WbXBdYVhUZW/7393j6erf5+nf/WxyXk9YV1x+du3Z6mlmWFRZW3r26nBRTk1HSFRTXGdlb/90cfl1cuvvfvrv9fnq7vp6cWFtbmd28vtydF9aZvLn0cnJxs3P3Ofc1MrMyMfO2/DyX21qZmdn7Hp9b/nubnhyZlFPWlpr6N/d4ebz7OLe1Nfd4nhlXm97cObh6mFUUE9RUmZw7N3gZ1FZU09RWmFTV15aWFRZaGVjaVtTXl1RXvh5bGlza2395+Lm7XFuXGL4edPBwsbLzM/Mzs7GxMTHyc/f4O9wcGtfYfx9en145d3yc21eWGBdVWztfF5fXlx75+jz9etmXVlj/Gvi2eduW1tPVllXbOfiYVZWUU9NUVlgZ2JnYvDu+OPt53RmbWdrW19zemJWXGJm9e3l5un2YGRu8N7Sx8nMzNLa5dnX0s7Mzt/e5ej2fPZ57OfwbWHv7f/r7u11X1VRWWBp7+ns9vbs3djb19zffWFYVu7g7efm3HthVlZyZnP07GZUUk1PT0xQWFxXV1ZZZ2RgYGr/cmRUVWddVVleVk1YW2t07djm72VnZO7OzMrIxMTJyszJyMPFzc3Q2+7q5+zw4N3j3uHv4Nrj5v/181dNTVZaU1VVVlhfaPrh4trmaG1gUlVx6fpy+HdfXFlbcPf99l9cWElMV1pWV2JdWlllbvLe6uTt6/JhX15iZWJzXVhYWGh15+PwdGJeUVj94dHPy8fHx8nFx8bGy87i72lja1tr8/z47d/27NvV1dvc5/JuX19ZWFtVVlFXWGrp2s/R2efq/V5faGv9dnN5e2ldYPTwbGxjWVNRVVhWW1RPV1pYV2Lu8GZ0fV9kY15bV1dWU1VVVFVg+t7f8+1qYmVjeeHU1NHLxsXFw8K/wsnH0unc3Oj98e967t/Z2tvQzs7a4fBib2ZVUFVQSUtITVdc8d/Z4OzmZV5cWFxeaWBw8PXp9nLt5v1jaFVQW1BVVlFLTFdUXW3u3tnc8ebueOP5eHtbUE9RTVBdeOPj3/tsX1BZZGPx3d/Yz87NxsPDxMPIzNHi3uHy6v1cW/X6fN7Tz8/Kz9jZ8v31Z2BdTUVLR0NQZeLY0dHd1Ox48Pjs6O9bbvlcYn7t8+rqZmxcUFVWVVRNR0pTSUlfd3vm3P7+9nFma29eWExIS0hIUmpyeeB2aGVdXnPk2M3OzcjHx8fBv8C+v8jLzNHY09rn7Wrv7nzn1szMx8vU2uV2Wl1fTUlDQEBBR1Fx9ujZ6en9aW5u+ndwXVdbUldecu7x2eliZ1hVW1xSTlBJTEpKVmH76dXa4dvi8fx1YldfTUZMS1Fgem3o3XDzeV703t7bz9XdzcvKxsHBwb7Izszc593meefvXGBlXvfRy8rGydDT52h1ZVBRUURASEpOZG9w5N3i5Ob93dbu5t9wWl9hZPDi5+PsXlZYT09VTUlOS0JER0lYe3vk3eX6e3RnZlxVWE9DQkpKT19s+OLo/OTq4dHP0tLLz8/Hxr+8u72+wsvMztHOztri3vdfZWr40s7Qzc7f6n1meHFeT0lHQUBCRU5VV2B9bGXq79/V4nN9+2BbYXPm3uDwdlhNUE9PYGJQT09IRk1QauTd3d7maWd0cOrf/lZRT0lJSk1aZWzz6P7v397Tzc/b2M/Rz8vGwb6/yszQ3tvX19HW7HN6Z1dm4dPPzs/U3Ol5+OTd225TUU1GRkpNWW198urp893R0dvd5Pzqd2n79OjkZVlTVE1MTU9STktHRkZCTGFs7f5xa2ZeW2H953xdU01MQkdIS1xpZ3Hk6v7e09LOz8vIx8jFwL67u8LFx8vR09DY2tnf5uj799jSz8rU3uLxaWBr+XtmUUpDQT8/REpn9GHr4ut75Nrm3Ojtd2FeWF/+6ulhXWVeUlBTUlRUTUlJTVBWdOfe8fD6amxt6Nve5mtTTElFSE5f9Op6eu7o4OHUz9HLz9rc187PxcDCx8vM1t3q3tvp3/Nm8+jd2MrHy83b73Zx/njq+WZURkZDQ0tc6uLa7HDe4Ozf0NHf5mVaWlZ07d7kfmlSVkxGTFVRRUZBPUZHTGft8vLyVVJfZerZ23pYT0RDRUle7Pdt7l1a3dvXysXGyc7c3tDKwLu8vb/L3NXP3M/J0fVpZGbd0MzCwsbL6ltaZmZ83/5RRT89PkRMcONzaVZNXOPZ1NDR319NS01SeePW53xqSkpNU1llb09EPj1GUPLV0M/T31hQYOfS0tb0WExDREdU9+fnY1lOS2feycbJxs/mZW3cyr++v8bN3F9w3c/K0Nl0VVJd6tG/vr/DzN1fVn3i1troX0xFQklOftbY5GBcWl3r2cvL2fBZTkxMWu/b1N1iV1FITFdibk9COzk9Qklg2dHYblleU1Lv2dflc1NHR0hKXeDn/FdJUl9r5c/FxsvY5dfOzMa7vb7Az9TU1NPIw83daFJd39XUwL2+xd7z6eTx39byY1REPkFKS2DwYV5MSVNgfPDU1+lmTUpRa2Pt4Hn0XU1NVWJ28mZPST8+RFRk/tPU1e5RV3R459TX9XRVSUhPZvXccGBXRktaeePPzdjY/mX92c3LwcPKzNnj39jRx8TlZ1xVXXHQyb+/ysvV3t/U0tLN6WBTTktHW//e12NcWlZWYNzXzNZ1YlhXUPnf9+JvWlNRT1N0aHdWRD87Pj5HWl/x/mBbXF5r2+Dk3P9SREtPTnHu5fBZTUtUXuTa0cnQ3XXf0s/DwsC/wM/cz9HJxsbEz+tZXffnzsbBxs3f6tndzsza2edZRD9GSFNmcWFSSj9ESlXg39fgYFFNWFf42Obodl9LSVBW4+5iX1BHPUBGUebh5uj5ZWLt8M7K39jyXUlKVFrf4f71b1FDTVnvzdLM0uR4dtzYysPEx87WdHrd2cbIyM3pZlVh9dTEwsfO0NbczsrDwsnaXVVJRlNl6e1iUk1IRE1d6dbZ32pfW1Rq5t7Y5FdRUUZLW2vybF1LQ0A+RE5XWllPT1FOXf/w3dvhYllWTE9jcHd6YE9MSk9q687Lzc/Qz9TNxsPDwsjTztbi1M/Jx8TL3uJ59tnMzMrJ0c7U08bEw8bO3V5XTUdMV1NOTUQ/QEFLWGjr7fBsXl5ded7ee21nUVNXV3rl3udqUkRGSElaZFxbYVZVcfLc0dDY7XZdXFxSZmxfWVNJRU1TYN3U09rY19vPzcrFytTY3/nq5+7Wz87U3ef03uDaz9LU0NbYz8rHxcHFztXna15XUVpZU01KSEpOV2F+7+7qeWVqef/u4/x6fWljXl9eaG5dUElDQkVGSVJSUVhUVWB4+vjn6XViV1NUUFRbWFVSUU9VXHLq18/R0dXMysjFxsTIyMjP1dXS1dXT3uXe3NrX0tHNzs7Pz83Mx8PIy8/c4m5eWVVPTEtDQ0JARUdNTk9ZXVxicHbv9nF9+vz5emt0Z1tTWFNNTk5OTk1RXWBcXmZq+Ovp8ezoa2peWFpdWlJaV05UU1dve+Xb1N7j1tHLycrMycrQztHW0Nzo/v16a+js5NXa187IzM7JysXExcnKytvocl5oYFBQV1BMTk5TW1ppbX5tXGpv+urr4d/e9WxtZmxhVEtJSkVIR0lQT09PWFRPVWBibmVjeXBeWl5aY15TWVNTTktVXW/p3drR0M7LxsO/wMLBx83P1NbW1uhweXrs6+LX0s/SztTV0tPLx8TKz8zb73pkW1FPR0RBQEZHSlFaYlhZXFxqZGv37H7r2e7xdWnu9XBcUVFKSkxOUldkY2NYYf5y6evf5W1pXFdgX2tjXVdSUk9VU2rq5+j1ffzj0szHysfDxsrPz9vc4f52cl1cXW7p29DNysvNz87OysnIxcjP1drY2dnba1lTS0dHTVFUXWxvdGxw6tvX3+3wbmBeWlRUWFZRU1VOSUhKSElIS0hKSUhMVl9Yb9/qa21gW1VYVVNMTlJNUFrp5NjS09fV0svEwMPBwMjJzsrLztfb4v75fvD66d7Y1dXZ0M/PzcfIzcnLzc/X3N9tV1ZQSUpLSUpQWFhjYGJkZGtmavT48nBsaF1fXl1cXVBMUU9OVVdWWlxaWlVVWVtlav/o6evn7+hsWlRUUExPVFlae+zd293c19DM0NHN0NDS0tzh4uL969/s/Ovq5+5q6eXe29ne19HOx8HCyMjMzdLT4XpdV1ZTVVxrXmh+9WVpX2d67XFy8Pn8eXFgWVFZVlZMS0pITE1LSEpISk5NTFNUVltwdXZzb2deXlhWU1JYXl5+5ebe0c/b2tjX0MvJx8TExsXHyc/W2uJ8bXJtfenc3tvT0tfT1dnQz87Lys7W09LW3er6X1VUV1tZXVZTVVtYVFpfV1/zd3v4dGVlWlFMTVFQUE9PVE5OVVNVWVdUXF5daPp2a3RmXmZgXFxbXV9ZXHFycfz8fuDg7ODZ2t/SzczKyszL0Njc2+Lw7mReZGZl9+7l2NPY08/Pzs3My8vQ0tXS19jc5uXude3e9Pb7cWZnW1xdV1poee3d4u32+ltVUEpERkVBSExNTE9NUFZRUVlWVVRPWVZUV2ZgWFlhWlxpbvTr62558/Ln3N7d28/IysjExMfJyczT1dnd5Ojp5ebvdXvn6NvW1M/Ozc7T19bY2+Hd3+nn5eh5dHP+dmxaYWxYWFpfWlxeXF5kcu7n/ntkYFxWUExKSkxOUExOUlRYXl9tfG9ndm9eZGNja2ZYWFZUWm/h5ezxenHzeHh6fuvc0NPQ0c3Q09bX3Ojk5fVfanj4bmZeb+7i083IyszOy87a2tnh2tHP0tXZ2djX1eDqbnH87nNlZPf3aXNtbGV3eHtsYlZZWE9LSUhFRkdGR01LTlBTWV5ZVlxdU05UVVtZV1VWVmlv6u3n3/vt5uz06eTUzs3QzMnKzcrLz9LZ0M/U4OPg6P5tXGFp+9vU0M/JzM7M0d7j7fPs7PXv593X3t3f72NeZl9bWlVdZ19XXG1gaml4al9fYF5SUFFQS0lJSkpTVWj9ZnTr6mFhY1xWWVlcWVRbbHPz7O/1bnj582lkbuby3dvd3d3TzsvX1NjY3t3e3ub1cHhrWGhmfe/d1M3LzMzL1d7W09XU2d7c28/Oy9PU1N/m5mtfamJy9fdXX2xkbOl9Y2BeX11YSUtOTEtKRENBRkxWWFVhXVlbWEtOTk9NUU1KT1xj/+f+8XT/dOX/d+7d19DT2dDPz8vCyc3LyczN0d3d3Of48GJbY+zb1tLNzM/d29n18OHe6t/a39zU39PR7v3+bF9fX1taZWBzaldcb2p97nNmYmVVXVhNTlVOTE9NS0xPUGZybHJkWFhaVlpZVVVeV1hhY2H77XV7b2lr+G958ezw2tfb0s/T0szNz9Hb59ze6+rvZ19hYWf8ce7Yz9LQ0eDa2dnX0tva09LSztXY0M/P09Ph5erp9Oh5Y21pY3rme/Tw7GloW1JOSklJSUNDRktLT05VXFxWXFZKTE5OSk5NTlBSUWRhXWXueWbz7vF5fPPZ29rUysvIxMLCw8TKxs7Y3Njp8e7ubG9uatzn4N3acXDx7vfu8+zU5OTb1ejc19ne3ebs2vL6+HJidWtkYG5dct176fZiVFtdVVJRSk9UTFFUUE9dZnH+b1ZcYFdZWFRSVlZVVltPXW1y/G1mY2/39/H7eN7e49rT1dfNysrK0djW2unxeGZfYmlia2/u39vY1+dravPl7uDd1tLSz8zN1tbOz9PQzs7R1Nnd5uni3fV07Ort6uj4cFZLTE9JREhKSklLS1FPTFBaVlFUTk5QTEtVUlBVV01RXV5gaWx39Xfx7evv39nQz83Ry8XNzMnKzMjJy8vO4uPf83l2a2B+6eDf52t3dF9YXlVWavvh29/829jg7en53tjTz9He/drd39zmY3zr7evoZ2BsV1RVTENISVBUUk9ZXFtkbFdSXlxsZlpNVlhdb/1WVGJk8vtrbuVw9+xwWG3v6dnX2dTO1tLU2/bf2djY4HZsZFz69G5cdPzd1N3u7f57fW1eVV9t39XR2tLT0tPV2dbOz8rJzNLNzc7Qztjz9+72/fpraWJaTU1GQEBHS0xNTk9TUVJVTUpLUExPTktOVFFZbVtUVl5bc+Te3d3t6+Lv6drR0sjGysnL1NDN09bU3PL0fHJ89PPm8Xb36ejg2eHn819YXVRTXWNp7Nvh3ePn3tfb1Nbg39fX19HW2dDS4OX3cW3t9vdvWU9NR0dMTU9WXVheaWJfa2JdXVZLTFBPV2NfY3VoamRoXnPt6uTkfW75fvbp2+DV09TV1Nrh3N/q7vtdV1NZXHBqZ3lua+rf6d3Z3vT7XldeZGPv4ebc19Xaz8vLycvNzM7Sz83NzcjJzM7T3+Hi+/D7ZFBMRkFBREZKTE1OTE9SV1RVV1RNTEhISEpQWWVfXV1gXGv34OLc2+T17uvk3djNy8rMyszOzc3V2eD8Z2FaV2p6/u7rcHD+8e7p6fR8ZlhUUU9UX2Rpd3lrbfHd0dDQ0NHU19TQ0dLMycfKzNHZ2d3c4H1fU0tISExMTk9PUVZTV2NrZ2BjXVVSTk1NT1RaX2BgX15tfe7d4uHk7v166+Le2NPP0NHY3Njb5OxyXlpQTlNYV2BlZnB8cHjp5+bv7nNnXFhcanbu7uzi4N3cz8zLysvLyc3NzMrIysnHxMjLzdHc3/diVExFQkRGSUpLSExNTk5TWVtWUE9PS0ZLSktNUFBVW1115ujf1trc2dnj393Szc7PysfJy8vLztfh4n5kWl1eWllZV1hbXWv08ube8HdoZ1tSVl5lZmZsZWh19NrX19jX1NTUzs3LycvNzMvJyczMzdTofl5QTkxKTU5NS05QTlVbXWFiWVRSUFFQTlVZVFZZW11m/OPb2djV19zf29ja19fZ1dXTzdLd2t/4ZldPTk1NTlFPS0xOT09gevbo8/v6YlxpZGJ+6ubf39zY1dXSzMzNzcvPzcfEw8PJy8rNz87P1Nnc33hbUk1MTEpMTEhKS0tOV1hZWFFNTUxJTVFTWFxZUlpaW3Lp6tzX2tfY3dnR1NTU1dTNzczJys7V1+xpbWdcYV9ZWlhUUlRVWGRtYl1bWFlVT1FTVFdiYmJrc/Di397Y19rb1M/OzMrLzM3NyMnNzMjM0tvl6npeWlhQTE1RT01UYGVtZ2BdU05TUVBTWWJmXV1scHZ249jZ2tLQ1dDQz87W39rc397a19jZ3PFgW1ZUUU5OUExLS0lJTU5RWFVTVFNUVlRbX2dmYWd7dX3i3NPSz87P0M3LysrJx8XHysfIycjJzdrxb3NiVlRZWVBNS0tMTE5ZWVBUWVROUVNVWVdWWVlWXWtw/NjR0tDQz8nLzsjIyszMzs/QzcrIzdfZ2/Robl5bX1xbXE9PVlBPVFlVTktKSEpLT1lZTU9ZT0tLTldbV2VqZnTs3tze2M/Q0c/NzMnJxcfR1djq/Wdp7ux7cXRqaVxdaGps/3V3ZWFzfW9oYWBmW11haPrc1NLU2NbS2dXOysfMzcrN0M7T2d9+cfpeU1hZWl1WUVBOS0xOTlBfalpQTk5QVE9ZZ1lWZ2JZWF9y+vt1+OX/cufd2NrZ4ebd2NDLz9LP0t5zX1FPWF5rb1lca2ZcXW5xaGZgXmFcYHnwbW54XVRUUl/47NzOzM7Ly9DOyMXDxMbIxMLHxMbP0tTh6v1sfOPn8vtkVlFNS01SU1NaUUxOSkdNTUxQUE5MTUxOUU9OUVBSVlxkftnd2dvo4tvn4uPn6eXf7/hoY2x+bG9pbnF37+TW2t/o7W5wb3X+7urj235iXGFlcn3o3tTSz8zPzs7Kzc7Pzc3JysjK0dzs+VpcYXXx6vHg5/1kX2dXU1JVU1RRVVpdU112XltUU1lfXWdwa1hcXlJXWmN36u3t3uR25epmaWRmbWJVWV9YVF5YTU5NUVxpZHnkeWB9dGf/c3nk4e3k53dse2t+9fvg1s/OycbJy8jMzM3Tz8vM0czL09jb493e4dfT0dbV1d3f6XBvX1VZXFxZZWhoaV5WU05LTlFWWWNYVVRPTVFPTVRUXWdya/d1bWJjXVZcXGJrdm7z+3BfZltYZmR66fB48nttZHtlZHFv8uHzd/xwbGbuefbq69bLztHQ0NbZ1d/d29jOytPc29nf4tzo5+bo39fq+eLhcWxxbHv48uHU39/Y2Onq9vb8d3Xt3nNicHJmcGtgXV5h9OtqXWJdUE9NSUhJSlFWT09WVVFSUFJZXmLw8Gpga2ZfX1tWV1xfffp4eOzz7+35cfru5djX2tvY3t7e4ujc2tbQ0NTSz87Lys3T0tnV09bc2+rr5Ol0d+7z4OHi493h4u73YGx3bfxyZ3j4YGx4a1xpZG3w7ene62FiY2JQUU9RV1lVWVZMT1ZSTVZVZ3Zxbvh0Z3JrYFVcXF9daGT4dVpfbmdkdW72+/f17GhdX2llXF9hZXX3fd/i5tvX5ujj3dnW1NTP2t3f19bX0tDXz87Myc3P0c7P0dff6tzf39/o7OHc5enf5u3b4OLtcWpwa1xaYFJOUE5RU01KS0xLTVRMT1dZXFlPTlZaVldcUGJsbW9mXGdtZGZpZl19b+7m8HXzbmxvfndifW7j29/j2uPd3Nz2dPf/2t3o6dzi3N7j9ffw5tTX2dXR2dre3+jj8ejY4ePa293W19na2d/VztbY2eTn6PlwZ2tn8e1pY2ZbXWJbWFtWUFxWUFVXUVhYV1xfXFpqbGpqbGFoZ2JfW1ZXX1lZVVNSWFhZU1BVW15dZGNvam1ydWpjcfXs59/c2Nzb1dLW1c/NysfJztDZ19HW3tnV18/R1dbQ0s3N19zZ2eDb3tza3Ork6Xh+6/J48G5qcWNeevZpZV9UUlFNT1FOT1lWT1BSUVhdWV9rYGNvYVxmY15sbGZ7bltgcGVha2xndHR38Xtlb31gWVpXVl1cXWZeWmNtZm/86OTe5+Ph6e3j297d29jd1dPMycvKxsbJys3N0M7T0NXd3tzc4eLh3Ofj7uHm8Ofh6/368PlpcGzo63h7bGJcWlpYVmBea15TU1RVUlVSUFBTTlJMS09OUFNUUU9PVFdfXWNmY2RhZ2ZhYmlv7mtnbWv27ev3/HT77evz9+/p5O/p7Oni2NDOzs3Nzs3PzM3OzsnJy8zO0NDQ1c7R2tnS197oc2x1cGJyYVhbdnV5cGhmbGdheGxgZHJiXlxaXGljX2dfWGB4ePl9fXx9Zl9YU05YbmheWlxZXFRVVlNPXGBeV1JWVFJPTk1OS1dkZ11kZGVrbvfo4+XSzs7W1tXZ29bX1tLXz8vQ19LSzszMzc3O1c/P1t3Y1Njb2+3w7Pjd1tza19nc3+PzdnBu+/9pZGJlXFdTTExMTldWU1hYWFFOTkxPV2r4dGtsaGRcXWNfZ/nm6Ph5fW1sXl5cWFVZW1ZRT1JUVlBXWVhcd+/vff3r4uDo2Nje4dja19fTzMjKzcbJzNDO0tLV0s/O6Gz7Xlpl+/3q5+Te4XL15nz84djY3dbY0tV1eOny7Nze3t/h7tnnWVVTT1RmbGZZXFVfUUtSVk9TW1VaU1ZUbldTWWJbWVhVVVNXVWZPTU9QTVdcXlteZF5uYG55b19u7+v039bSztXTzs3T0MvIycHAxsbO1M7T1s3Nzc3O0tPR19zk6vTo6Pr25Ht0bFhdaWdq6e7v5ut79G1cXWVbXH1jXFtcVmNgX3n+YmjydXtyZlpeVVNYVExQXFNfZWdgaFxWXFZNUlRNUU9QUFlUVmVXVWFpZffv8XzufO/e7vTj3d/Q0tPZ1NvZ0uDazsvPy83P1tjd1tns4NTP1s/P0tna4dnY3NvU0dLMz87V2+vf4PT86vd29mNbVVNZXVZQT1ZSUV5YVE9PTlJRT09UVFpkXl1aW1llbV5nbVpkY1ZTTkxKTUxJSk5OXGZeW1pbWnV0aHTw8dXS2NrZ2uDP0NLRztLIxsvKys7UytHT1t7p2d3o+nNdW/L++O7o7Nff8+/mZ3bj593s4ODY2eDi3mt13fT9+mZh/mdXX1lLVVhYaVtdYGRoWGdbT15eYV1TW2Brd2n8YlhfXVxUSUtMS0xMT0hISEtQT1JdYGlobHtbXWL85Ozh2NTQzcnJzcnIxMTIyMnKycrM0d7f5tvZ19fZ3uHi6u1scnZ8bnV7Z2p36N3f4tvX3ebh62NcXVleWE9SXVRabWFeXFxbZ1xYU1RMUV5XUFlWW29dZ/1wWGtlWlRTTVNOR0RFRURUXVpXVk9ZWltZZFpZePHq5Onr2dnSzsnNy8PAwsjNz8zOztDN1c3Ly87bef3xfO/4+2v7+OzueWLy4dzU0tfi1dPN0Nrr6f976O1uaPHw3NjwYGlfbvpvXFpkZW1tVk5XVGL/bVZYYl1eWU1JRkJIS01ISk1KS0xBPz8/RUpISFNZWllkXmFr8dfKz9bMycrKxcnKyMK/vL6/vr7AwcPL0dbR083e5ePzX2rtfnn74+LX5OPk5X7t53Rocujd09rb2dvn3uPyZWdra3RibHhrYnj5cWtqZm5yaW9qY19fWVlZWVpka2pwZl9fXE9LSElKSUdFSUVAQ0dHTE9ZaH747Ovw8/F4+uHi3tLIx8C+vr+/wsTGy8zKztPN09/c1Nza5+7h3eDY1d7g6t9vad7t8c/VzsXGysTFzNDU0tvW5N7abFZmXVlcVV1pb2XyfFlOTkRCQUFISUpPYF5bWWRbW1ZSWFVPTVNPSkhNTFFQTV1bWGH7dWx9cWFoZnbl6ejTzM/NxsbIxMfFxcfKycjO0tbZ19Db0s7T2dXb+WRiV09OTVdYWmfk3uHe2OHd3+DU0NHX0M/Z3dzf1dnaz9Hb6N7taGJZTU1KR0pKSk1STU1XU0xPT1NYWFBNUE9PVVZUVlBQVFJNTk5LSkpGREhMT1BWY+rn49bS09TW2tbS0czIx8TAv7/AxMfExcvKy9DS0dv4eWdp9vZnevlv7+nyePDv7OPseuvl+3vs8eDh7ufc2+Td6erz/mReU1NSVVZWX11aYGlaWFFRTlVQTk5PUFZZVFZQUE1ZT0xSVE1PT0lJSUhIVE5OWmBbeOx7/ntiZORsaO/r79DQ1svFyMO8wsC9wMnDydTSzdfV0tzPz9ne3vt672dZbG5ccn1nduLq2c/T0sjN0crQ39PV6+HibWv5WVZfUUpOTEtVUkhLTUVJTEdKT01PXFdPW15VaGtQWGZaVlpPTVJKSFJYUVtdW1xhVVJcV1BdaWLs6u/g09na19naz8/Z0M7O087T2dvd69nX5d/d3unc5fn3dl9rfnV57O/t0M/VzMvUzc3X2NXb6NjX3djc7tzc7d/X4PbtaVVaUkpQV1dVTkZFSkVDS0Y/RUZHS01ISE9RT1dQT19mdu7n7ffzfHjrc2F+4OHh7evn5+Pc09zm5Nvc3unp5tfY19HY29TP09bb2fXs/vZyW09ZXlhYWl9WYl5kZWBc/uHY1NTQ0szPz9HW0sfGxsXCxMbEycvUenvi+v356O7+bFpbXFBRUlFRT05MTlJMUE9JUE9RUFdYUU9WUFJNSVhfY2Pv6efb1uHV0tLP0dPWzs/W1NPf19vZ0tTW2M/X5er3bXZdXWlvbnvc2t/Z4evpfPDs9Gxt9X157Htpb/b19+337NjY5N3c3NrX087OzszJzM7Mz9XUzc7W3+Pn4vV3fGRYWWZoaWdoY21pWFVXWVtfX15gY3Xk7vP7dGpydWNaXWFcYmZqaGBeZGxqbv337+j6+3Z2/nV8fHzl4t7W2N/08f33eWhu7vt78fHd3t3b2NLRzMjKy9DS1trW3eLg6d/b3tXU093wdndvdGNpbXLue+ro3+fv5N3p3+Hi5nNr/uHj8GBeZ29hX2VlXmh2ZGNlYGp8X1xq//Le5ejo6P786/twe1dLUU5MTExNVlRSXGRQT1ZUUlNTV2dkW198Y37j7e3e2tfQ0uPe2P7w4N/e3tvS1Nne0M3b19TW0tTa29vf5+Dn4tPX3ODj2t7mbmNoV1NcWWVeXHb6bHDr2tvn8XHqe21yYltnfurq7XL46nRrcGtcXlpVS0tJTkxHUmRbXV9ca2hnTExRWV5aTE1SU1FOT01XWWbn4Hd7c/5uZmNo697Wz83NysvNz9jq49vb2t/q5ent8n57/Hb959PQ2d3i3+XubmZfZfnqbnD6/Or6cF5jY2xvZFlUb+10V1JWZ2NjeN/a0tHY3GxaW11baPjt4Nrf6vleVVJPSkxNSEhJS1BNQ0RLSktVWl1oXl1iWktJS0tPW1Zd6Onk2O1q8n5mc+P049jc087X3dPb387M0MnGysfG097d7O7c6n7Y1dnT1fxvdF9ZZlpUaXp7+vhbUFBLTVlRXPV1Y1pUUE5MTFNbXGzm2tff9uj3cHT4dWBkbu3b+HH9bPt79Hrs3+Ph4mBbVktIR0VFTFBXdX1cbP9cXmFUUVdUVXRrWHVpW2NgXG7p69zN2ejb5fPub37b19XNyM/QycrOzNne1tbcz8zTzdHZ4OVy7N7l/d3uY19bUlRQTVxaX23xbPvv7HdyWU9RS0xQVlFcXl1fZ1hfc2Rn9fD67XpsZ2FSXl1RYe/q2tLQ0NXY/f5pW2dtcGr0+Pjnc2x5c3ff2dPV39vgb2VfcHJr8ejc2+Hb4Xzq7nNwdvrm2uHu19bm3Nzq5/N52tbc3s7X5dnd4uPq8N3X2tHI1t3afF9aTU5gZF/84Gtv7WpbYVVp4PRpdWZRUFVMS09MXvDn5tTda2hiV1VYUmDv+/De3/fi2+DX2dvNyc3Mzs/V1tbn7fPx5dja0M3NzczT3e3r7eT+59ri2O308HBWYGNcYllbY2xcZnVyVWNo+uPe2dfS3eP/c2f39+Df1c/KyMzN1tnj2dvc4uPp7G5eWlRPT1lc/HLk29ff7fxoWE1UWFpXXWXwfPf4bGZle/Tsb/jd1t7t4eJ1effq09fNw7/EyMnP2trb2M7PzMXEys/b/G7rfHvjc3rb2d3c7VZQV1NjfW7gzuViXFJGRUtHTFVScNXq6+br7d/qft3de+DU4Nrb7Grt7uDOzdPHy9nQ131naFJPUU5JXF1ab2Bf/HlbaPp3bdbu9N3yXlxZU2/l4NbM2NPK097gfWTs2+fczdTOzdba2uTv29jd09Db0dTicHZqYfPg6OX4XWRjWE9TT1NdXVdpe2zr4u1fZ1tVWFdRVVFPU1dMS1ZUWGh7aOnf6+PZ7m97W1VdXlh58+3Rydff2fVjbXdcaXRm+GtMS0xKTFhaWO3k7NjU8XFubmf/eHfZ293T2OTf+W903et+39/g4HtpaWP8+dvp+uxpbf96dG1xd2Nzc3T/8dvn6OF3ZFdSWlZYW1ZcUVxfUVZZWlxfYFxYX1VcUklGQT8/P0BGT1ZQZl1XVldeYWR09vD9aOXw5uXl4tXPztLR0dLO2tzq6ff7aWp2cGBodm1qW2j7737p8nd2eHd77vj9eXBpbGNeZXZ2aFpPUk9OTVlhZn7m4OX7ZXH09Hfr9Onf29/b2+Pe4evw5nd+5exeVE9NTk5NTVVPUlxgXFhVUFxeU09NSUdHR0JCRUVKTk9VX1783tzp7t/s3t3d39jW0srKzs/O0MnKztTW3efq4vj75fZ1YVtSVlVk+/peXmllZV5dU2RjXWv/Xmpte+twYml0YGn1fVlm8Glu+u158t/R3eHu/e3mdP3mefbr4Ozoenj262Zra1haWVtTXlVYZ2NVa3BgaO/yYm5ZU1dZTVNOSUlPT1FiX2Lq2unY2Nzf2Nra09fQys3Yzs7X1M7Y1dDb29fd7/ZsZmpmW2h+av7zY11wYGB59u/o39/b6Xh06Oz15ePq4uf13t3j6P1fZmRbXHBsaPdxeuPvXm1tZGhxa+HX59rR0tfP1N3V3/fk3vb29l9ZZlxeeujl19Pq3d9mVl9UTk5PUFtcVF1fVlzz83rY19nM0Nbe3fTm39Xaz8zQzNrX09f149jb6OXf5trd193n6ezd4vPzd3Lu5ejw7+v26PpvfXXz9OLa3PRw+uhwa/Ht8Ozb3tzo8O7vd+/n8enm5vJ0ZF5hbW/e2dLOy8rKy9vm621p+PLv8+3s8vV1fPnw4NXd8vNuX1VYTE5QT1pmX1x24t3P1NXZzuPa5d3v19ze2NfW1M/p2tvm797m6OPe2tPteOjOZd7W6tLZ+2d1UlJaZGx0bPHh9Gz373l+5eDq5uDe6/Pi3O3x3tfV1tLW2+Hs8elsX2drfP5uW23ubuHW2dHLyMvT19re7evY5l9s5vDs7vLs5Ono3nJdX1hadWpbVV9eZ/1aUVZbX2dncnFpa9vT6nLv7+TW1M/T3N3b5G1xbm3g1tje2+Hc0+H483T44fdfXFNLVF5YVVlZYW5vdPB0YXx6a/3q++bc3tzY3Ovg4+La6vLmdF1eZVdYamdra1tYXWNg+Ojy3uN79ez3/nz259zd19Lc4+fz83xaVFRbXVZXWlxYUVdaW2x+6vd7bVVaXlpjWl725ujh2+pnbGpp63FbUl5nYFxdaez1/OlkXGRs7nZrWk9XWl9bU1VbaXzl3uHo6OXf3fVte+nZ19LS0dXT0dDT2+rh2uLyVk5LUk9LS0lKUVRSWE9IS1FQVU1IR01OTlRTUlRUVm9+a/jj6tfa8Xvn3+rc3+DSz8/N0d7p5fzi4WJaZHpv5dvh3uBy7uNvcXlcXl9QTEhNTFJaT2JlYnbee1ZVTElNRj5BP0NJVlFWW1RQX2Nd6+nu5Nvn7N3Z3NLNysLEyMbByMvKzsvN1/D05PDf2etsXVNMVVBJTEhDRUZFRUlLSE9PUF5eTVJSTE9aTk1MSElKUlP+63Ds7G373fv57WdeevNs9N7q3c/NxMDFw7/EyMPEyc7X6ujd3dzU3Onhd2vj819lUk1PSkdGRD4/R0RIT0tFREdFS0xMT0pLUl5179ne6drd4NDU2dXV19LS0tHOzM7HxMTAw8zU1+bn2t/selxhYnR69N50Z21cXldRVElGR0dLRkdNSUtXXWl6ZllhX1RaVFRRSkpJUF1Wbe1q9Ovp083Jy8vKx8THxsbEx8S9vL6/yM3Lzc/R09zo7fpo/Whub1VNTVJMUFRNSEZGSUlLTlZgXejV1tnm/PHs/3f15HJy/P7b08/Mz9DQz87Qzt7/Z2J1c/ZhY/n/7tbX0NHe4eXpffxvZ15hbO/f3NXd9HFzef7y9G1lWFhlX1lPUVFWYHHo7Gto9Htu7uXk6tzUzsXExsbM0M7NzszL09TW3tbPztLRztDRz8/R2O/wbVxdXV9TTlZVaOjf19/h6t/a49zvaHJYXGNhYVZodG3v5tXU5N7l+2pkXlBMTU1XaPje6ft7+eLp4OZk+3Jz7u3ffuvf5NTQzMjMzdDS3NzS3enh5N7X19PX4nlra2pra1dWVlRicfH+++7s2dLQy83N0trjde1zYW7u6dvPy8jJztLQ1eH2ZlhYVE5TY29q/fB85NnT1dLO0tTrff1cWGFlaHD/7eve9F5ocG5oZ15VT01NUUxMUU9VWm9wbd/ufu1fZV9cYXPa3NvR0MfGzsvLzNHa2Phy/Hbd2dXV4Nze5Oxs6m5UX1dVV1JYTV70duTm29Lg3Njb4ufbcV5zZ2r8dnhfZXfz3+ze3uzb5F9ZV1NJSVFPWl56637u3+Dn5NvybfDz6+DW097p5ebc4ubmbWZsZmxsY1JSX1xZWmBhUFhgbXdiZVNNT1RYWF9nXGD569zT2Nzj3tne5+p3YlRcde/n5Nve4NvV197vbVRPVFxrXmFkV2P2693p6ePy6vH+7G1lWk5XYWJdXWxfY3vr4m1eXFBQVVlSSk5KSFBUZWJaaFxnfn3t8uj0bv7y3tzd193j2M7Lztjgcmn36eJ9+/Bn+eTp5/rxcWJmZV9YWVJKSk5PTlBfW1107eDi4H5hVVVTTE9QT05Ucfh24uT78/H/XWNqX1tZW11YYfhkX2ns6uLY3e7ycXR38upfXl9pcWru+WNub2xfYftiWFdSTEtLTU1NUVVXXnNfT09RS01VVFRZaXjp1svIzc/N0t3U0trW1dHc29jd19fb3+7d1tbj5d5xcO77XVZYU1Blb3D7a3t0W2T0cHtmXlBPU0tNU11aWG13eGtfW0tIS0pKSk9OTVz56+fb3nJra3bw3Nba4eHX293b0+dw8+je19XV2tjY4d99bFNMT01aYWdrWl1ZVGJ04/lfXFNTXnF1evzm39LM1dzq7vNideHmeHbq5dLN1dLf5eL15dTO1eDk8+rc2tPb5vv16dXN0tjY1uDd4HxuWFBPUV1fZ2BYWFdcX11XSkZIRUZMTVFOTk9a7N/zbltbVldyaO3m7tzVyszQy9LQzs/LycPGytDRz87U2tnd/e/k4d3e5X76691sXWFYU1BcWlZvbGl4be3t2dPjZ1VhYV/u5vN6dO3w5ePt+vns631t8G9daH7o3NTR2dPS0c7LxsjO2Nvc2M7Q3Ovp3d3Y2drp93lybVpTT0pIRUZKTFhPT01LXnnj/GRdVmX959XV19fb0M3KztPW2dbO0tPS2tro5NvY2OTd5Pjb19LW3tr3dO/c1O3o6v3f28/T29Td6NzW3mxdWFFVYHVuZGlrWGPo63BbaVpWW19uXF9bVl114ur26Xv029HT4Nzc3t7Z0tXW19HPzMfEys3N0N/x9O7k8vPw5Nve4unk5O7r3up9YFNTV19hYl9YX2dn7v79fmJ0dvb8c+r46fxs4W1lbV5nYHjpbvNnYWxo3Np64+bk3tjL0srK0M7UzNF16+Ln7vTQ3+Lb5djw5d9ZV1ZMSEVPS0ZJQ0ZFTWxTTVZTUFF5d1RnbW79eNHa+OTk3uTOyNHOzdHc3svO53j55u7aztTQ0dTb3MvP6ml3+nzo1tfb2Nvsa9vW63FeWUxKV1tXVk9MSFBcUElGSklLU1NLSkxOTlFcZWleWFJOW37p5+h1cHrd1dbZ3+Dg2drUzcjK19PSzsze62lg+HTw6uPlXF5oZ3Vsa1VISklNWVxrVE9UTVxoXlZIU1pPWmNsUU1WT1lncnhPUFtTYe/c6190eHXazMvZ3tPUz8jCwcnIy9LPyMfZ5dzl6dzOz97qaF1WW21TSkQ+Pj5JTEZHQj8+Q09JRklISUxf9G5mWlVSW+vpc3RfV17+0dbb2/hnbNfQ3NXgdXvmztDQ09je3M7M1tjlbnfg1M7N0NZ3XHjh631sU0lNUVdaVlJKREdLR0pJQD9ASU1PVk9PS1FgY2tlXlld8OLZzcvO3tvQzc3Kyc3PzMnFxsXGzdDU19XV3nlq/P733d7j92lsX1laWFdOTU5RWFdeXFZYS0pLSk9MTU9NV1phZWJjYl1dYFtbVFhPU2By8/RqXl/39ufc1MnN1M3KxMbIydDOzczMzs7Q0tHPzM7R2/VfV1pWUVRUUFFOTVdcXVhIQ0VFQkVJS0pLT1BZXFhZTlJqX25sb3tj7tnSzdXX7eXS1czLyMbOzMjEwsXH1OLV09DO1tDT1MvIycvQ411bXFhXUVNQVF1kal1zZkpJSUlGQEdISUxQXFtrZFFSVFpaVWFbV2b12Nzc1vfv4ebZ3c/HysjFwMPHxc3Q0dvb8d/a4dbTzMvOzeFnX1xcT1FUUFdrbmJfbWJZUk1OSEZKSEpaYVxYa11UXVxlYmRqXWZ52tLZyMva3OHU39fNz8nFvry/vr/BxsrJ0c/O2tTMxcTLy8zX3vBjV09PS0lLU2FcaX5kWk5KRERJQ0VJTl1aZGdkY11gVl12XGFw7trj1tff3+7tXVzt+O3W0MrIwr/CwsXK1O3b1d7V0czLxL3Eyc7Q5mTz9WRnbf1dZOl+bmhuV0dLTEhER0pFSVBZV05UUEhMWF9faez39czDx8rKydTZzs3Lx8C/wr24uby9vcrX0tvb3N/le+TOztfk42tMS1JMTFZOTFJda2BdZVlMS05LS1NWUU5bbFVbX09MSVBXUFtbV110293c2f9nW114d9rQzsnHvb2+u77CxszLz8zJ19LOy8fKyc7a7WNlY19rVk5QVltQWFhMSENBQUNJSElPTlNOV2BTSkpMS1j8dmfu2NLQy8nN2d/ncGffz9PNxcPEwL2+wcjQ4PPY0d3c1c/QzcTG0uZ5aFZqfVxaVV1ZUFhcUE1LRz4+RkZDRUVHSUxXS0NAQT47QktLUFx77t/N1+b2bGJZbNrd2M7HwcG8vMHAw8zS19PS3d3b2NrUydbg5WlbVWFsY2tbX2RZdmdQT0lFQkFKSElNS09OT05HRUBCQD5ITk5UWHjg28/m8HpVXVde3N7Vz8vBwLq7v77Gy8vQy87Y4fTe7ePW4+toW11WXF5dXlJXXFNZUElGPj49PUZKTFBYZGBgXVZQS0pHR05eXlVl5Nzb2t7ucF5dW1v693rYz8zKx8XIzc/Y3OXm2fHu4Ovf19DP4Ovq6Pn5435saF1fV1daTEtIQj49REhJUU9VYFRTTUZFQD9BTFhZY/vd0s3MzdDS3ert49TW0s3Lx8XFxcXJy9LX1t7d3uftefDg6eN9a2ZdbvT45Oj4ZFxyXVdWUVRKSU5NVlpgaF/tclNSTk1GP0NDSVFSXFdlfmVtaF9USlBaXf3e1dTMw8TFwL/Ay8vJzczO0tno2tTWz9DS5e3c3d3T2/1kXF5XUVVOR0ZHSUtf9Wtqa3twYVlWT0tISUpPWlpcZuvk+vzuXFdST1Nade7v4tPLzs7Eys/Mzc7My8/Y1tPOycnCwsjHyMrIxsfP1t1+bGtsYkxHSUZISlNWVlZQT1BSSkNAQT4/QUtPTFJj/uXi6nRbe2NYYvvi5OHRy8vJx8nNzc7W1svO2efr4+Xa1dPV0s/OzsjHzNLS0uDq4ur1a15fXWt9e+rm7ntgbGlNSkpHRkNIS05cUk5VavpiU1dfW11peHvp5dvTzsnGxr+/xMTJxcjKyc7OzMnGzczHzMrIxcXKzdHZ7WZnVk9PSEtNTU5PbnVfbFtfXk5RSUBFREZITVdNT1RYdWFYXFheXF5vft/q/eTaz87NxsrIxcfEx8fJ0dDRzMbLxsnOyM3MxsbK2N7vcfBua19QWVdbb3nh+WJpWmBjU09FREVCTFBUW1JXXGHo721fWFtXYXHo5/XvbPHNzc7NzszMwsHGwsnZ3tfOzcvJzMrGw8LBwMvU3nLu/ndrUlFMSU5SYFpPUEtNUVBPRj8+PD5BQkRCREVIT1txa11iXWtz7Nrq5et279/Pys7Lyc3Kx8bIzdro39vWztDV08/Mz8jI0tje4/tx3ehnX1tZVV/+eWx86vdk7vlWTEhGRkVJSENDRUlIVmdSTVBVUktRWVRYWlxUYeDZ3NHMy83Jw8bHxcbMy8bHycrMzM7Pyc3X1d30bXp7XFhUT0pGR0dHTFBPUE9US0hHR0hGQ0RBRkpGS05XWlNWX1taWlxYWm1cXWVnZWbq0tLP0dbe6t7f4NbT3enh2uLb1NXZ3NjR0s/O3f/q5Hd5e3ZVTlZefend/VRaWU9QTE5FPj9ARUhOWUxOXVpkbfX7Xmhy/d/a0N905u3f0crH0drY3tLIxMzd1N3l49/d7Hr+cXbu3OVbWFJPW2ZfVk9MS1Fm3t54ZFdMTVxnVlBNSElOYG5gXVFQU2Ltbm5dTE9V7trv52ZbY+zO1NDM3uLe0MfLytL5ZG3b3ebX9mJt6tDS1NtmWlh9615sVkpKU/rj3+JcTkxd92J8e1pKTV5r999sT01b8O3Z2XhXXPHXzsvS9F1919rXzc7o5dbQysHDzeDb0NLOycvpZu7t4NHP5FBJUFZaUE1LRkpNUm3xcE5FSU1YX1tNSEpITGji23FQV2nu29TfaXHr6dPMzNpxY2rx2s7K1/P85c3Hx8zU3fz65NnV4vFub93Uz9Lj6mhs49bVeml2XWzf4N/9WlBSX2zzaltaSUpba3pqXUxFU2NeYllaUVB23dbn6+pj9tPLyczM2OXOxcHCxsvc4djPzNLQ3nXv1tLY3OJeWmh85/lqZVdV7dfa7u1XTlVj5ODb4mpeYPzd5d5nT09QXWBdVktNWGnp++huWWtw493m5mNdYm7W087O7Obb0srJxszU2+XY1dnga2l4+t3e2Olv8OrZ1dzqX1RUT1NYbG1aW1dl6efa6G9qVl5fenBXWVtgfebi5nv68+Db0c3o8/xv7tvPztvg6+bY19Ha6ONtZnf27WxoX2vo3djd5eNzc+Hn815RU01QX3Dk8fl6ZuDX2trtcFtTWV9nYFhXV17w6OXf2uD43NHT0NnwaF707ePa6OVma9zf2uDmclhyZ2J5XVhWUF5zbvT0bFhm/HDs3G9VU1Vd9tzl3mNk5+jc19nuXFtcWWppb19t5ufY2dHZ+eXj1c/a0v1c+fzYy8vM4enu3c/d0+BfXE9YXmZ0TlVbV/tjXmVQVlVjd15jTkdLSFNmd3xbU1Ng2tPR23RnV2Lp6tz6Xl9e+uTf3+zq/ejV1tTgbWRn7NzT2utzYGHk0M/W4mxZYHfn5PBeWVlf7+b5bmZbWWzn7m1WTEtMVF5iXVtUUWXg1+D+cl1XWF5jWVJLTlbi0dfY4ODo1snEydp5X3Df3Nnc5eFufNnOztnqdmVt9+HeaVZOTVlfZmNYX2Fr4OPraE9MSFlmcnZXVFNRbePe3fJzWFRWUVRPSkhETF9t+nL2bl1mX2tyWVBRWeLc5On27HLn0MzGytnhZ/ZuZnRnaFhe/erj3Onu+vPj8ub0WlBPWVxjb2xpXmvZ0M3O199mYFhTXFtWUlNcYWbm7PB5bXVdX2JfWlZjcOnZ29/t7Nrb1dHa52tubXfi2tryZmVjb+fs+mNkZmV4dWZTTU5MUF9u6Ofw3N7Ryc/f+G1pVmZ6bGBWXGT+3t/o2uj5XmPuZVZOT1ZY59nh2vdsY2nb4nX+Z2dbY9puYGRZVE9kb1p29mxfc8/V3eHueV7q0/7f1N/e0sTGzc3U6mJe63Nu5/pcWtzbfu/k+mds3t/q9XhsaNTL2tjP2vv61Nnf4+fvW2rr/XxnXE1FUVNOUVNfVF/h7vhqXFhSe/B6+Ore8OLJy83KzdXu8et9cmljX1Vq7GVjaWVbXXxua/d0aGnp2u3u5ebq39jZ59za7+nZ2tjW1/BmXlhhU05TUFz45eT07GZRWl92aV9wbXTi0s3Z09Ln4ODX5XLralxubury59/+39nU3fzmZV346NTb3tru3+3a0NzP2ObX187X39twaWVgXVBaUklVYvPZ4Nnna2hfb2Bt+Ftr59zNz87S4uXy7vdob19cZVldV1piWFRUV2xncGRbZ19q5tvV2N3Z3drZ297o2drcz87Z6P1+Y1hfZ2xjW1tUY+zh5P77dXXq7ePn/Nzc0MjIxcrO1ODb1OLrYlpaWmVfdmlZUEVJT09YVFdQTFRXcu735f3q1NrQz8/O1c/MzMrP2P1493L1+mVWSk9WWWFfX1VMVlxs4uvhd3vu3s/MyszU19nY2dfS6fT9/dvV0utZUE9XWEtPVFJSSU5m6nJTUlhleHXl3Od1XGje0NHme2ddbPvp2/n+b3bc0NXsb1xeZn3f2uHvenjj1NDT1uL0cObd6ONpWVFRYnJ96/ZrXV1pcv12XWF05tjZ3+p6aGR5efDn4O1r6tff2+dnWVBWUFBdV09OTlhsc2JpW1VeY2vs7Hht8NfUzcvJzNTZ0dXTzdx7a/l7/OrwX1JTWVZVWltOSVBQVF5pbVdXWmvr39fc3dfUyMTEx8/X5O7i6uDxXVtbXX50Y1pOUVBPTUxPS01SVnHo193r7XDj3drO2N/l6N7Y0tTo82RkcPp2amBaWFJVV1haXVlcZl1ub3Lr7efVz87Y3dja2tje1dPb3WFh7vNxamNrWlNSTVZaXmFZYmpnXmP89u7uc29qcW5qbnN77G90XmP8+X5oa/91ZGxaXVtaaV1eamp6bXfwe+Li7vfw6+n0+une4ebs4tnPz93o5+39fvTZ09bU19rX3d3p+fJwd/tt+X5pYltecF9kXFBZUlBSUk9QS0lHS1ReaWJraGJv5dvY19bX0dHUz9LSztva19na5u/uYFdKSElFS0lDSlpua27k1uDe1tLO087O0szIx8rJw8jO29nd/mdRS0dCQj8+QERLTEpRUVFYTV5hV3FqdfNy2tHU0dfMyM7HwcPL5epeUlFPSUhPV2vx6d3l7uXc1tbY3nNZWVxkZF74/Grl2s7Lz9xdTE5RVFNPVU9VaPPZ3vR7X/3a2M7Q2N9zb2b+5OnucHro3c7P1+9ZU1BTU05PUlNeZ/3b0s/X083O09bW3/5973BgfOx1cu7X1+d4ak5IS05KS1BUVk1RaHvz/Ohz7Njf2Nvm4vTg2+TX1+zo6trV29n5XFNRYVhPWlNNTVRjd97T1tvVzdLPztPW7uXc7NXQ29/z5+Hl819UU01HR0ZMTElNT1lj7tbZ59vb18vJxsjPy8zRz8vFyMzLysvM19ngaVdLRkA/QkJDSVdbZ3BdW11obGry8GNZUlReU2z179fUz8/d3d39aGhhYFxsbl5ldvro8W5lW1dnefPm8ev+a2x0793a1c3Fv8bIydXQ1NfR3N3Z7OnY0s7Q2tx0a/9z72dYW01MWFNZX1heXF/j5m1fUUxKSU1LTVleZV9h8/fm7PPo3N3Vzc3LzdTX3dXLyczQ1MvMztToelZJR0BDSEhOS01YW2nv5drc1M3KxcPEx8vNzc7MyczTzs3R1PptWElFQj49PT9CQklNSU5RWm788Oz87enn29ra1+Xf6Ovg3drX2+5oV19lUk9MT1xq2tjj3/3p6PDMy83EyMzM0szP4Nze6Otp6Nvs0+NjfWfv6VhdU05XU2RsWVxRSlZZbt/z8vt67nPz2uXf2ufk5dnMztXuX2BTTVJOUFlYXGVfb15ZWVpmanrh5tzd7efk1M7Qzc3S0dfNyc7Z+VlWVldZXVpYUlZSTllWUE9MTlJWX2pfWVhVXl5lZmB3cnXv3tHO0+X/ZGFeZG5ma/x769rRycfIxsfFxsjL2PH0ZVxiXFZXTExOT1FSZWRXU1lWVlJMVFBPa2f05t/Y2djOzc3Ny8rO3NvZ4u9rbl1UXV9cXFxfZVBWWlNdXVVNR0xPTllf9ntm/N3Y1s/MzNjb1Nvk3dvbe3nm++Xf3+NeYXBXUFlcTUA+RkpMTlpoVFj37ODZ0c3P2czIysbJytHg19zf1tjY+l3t9u3uX2hdT1hWTk9QSkZHWmJQUFpqV1Nld15m7nhfXXHicWzq6Hxi9dLe6e32Z2Bn7e7u2c/Y2NfV1dnP1N/Z1NHQ3N3O2N3b2d5xYnxhYnP3/V1TWFNLT0lIRk1pYVpgWF1YXuHX19fb2dDSzc/Z2N3cz+jm4HXxVExNUldLQ0A+QEZHSk1NVldYfevl7+Ld3c/KyMvMzc3S38nAv8DO7HhZaF1UWltkX1pkbGdcWW5iXOfk7O73Z2tfZe3g2ebc1N7n7l9SW05VU1NnYvrX193d1M3U2Nfh8GNiblxgbF9YUUlLRUdUU05NQUVGQklOUF1t29Paz8rNy8vAvLy5uL3Bx8rLzsTAytHazMnV4vhOR0ZFQjw7QkA/QT9HS01WU01QTVNZZ9/i+Wpy2s/Wz9HKxMDBxs7j63JhX2fs3NjgYlpYWmd2enN1b1xZbG1yevvr3dTO0tPR0dd1aGlk9flfWlpfe+rZ19fZ6+be5tzd4N/qffBvXlxeWkxKUF1rXVBLRT5ES09TV2f59tPPzsnHv8HEv7u8vsHEyc/OzM/O3O91XWR6W1RQSEE/QUBARkpPT01QZm198unyfe/i5PXx6WxuZ+bY4trR1dfR0dna3tva3OnZ0NDXz9Pa3Nbb5OLm721iX15jaVtUVVpWWllv5+Xbb19kVF5fVFhTW3p34upu8fJz6/Dh2uPf5/nk6uXa2c/dbf/s3tXvYlRKSEdGSUVGRUFHTVZfYPn0b+HZ1MnLycLGxMPFwMLBwsrKx8zQfFhQQkE9PD08PEE/PkJDSk9QVWpv8NnQycvGytTOzMnDycrIysTG0c/d9fRkW1hPWl9dWVNYXl9qbfXpeFtdVldXSkhEQkZDSlBb7vZVVVZgdV949mjn08zBxMHAx8zLxsHGyM/d3/hk+GBfW0tJRklaT0VDQD9ERlJQUF9WWvvxzszR0tvd1NXKyM3Cx83MzcTL2tv3fODb5vlWTklDREJHTklKR0dJSEtQSUxUUltXZt/u7PR23NDOysrNxsbKztHP1uvtXE1UWmzzYfRvYOHd2Nf83f5dfO7f13To4HPp3M7FzMnS5/rwbe5aVV5kcXR82fXz4uje1dLFy9fO6fN6WV9dTk5IRU1LUEtBQj0/R0NJR0FJR0hZYX35auTYyr+9vLu/vL7CwsXExtfVzMnHydDPemltbGhUU2BSTUlITk5JSkdKSUpOV11sZ2pgbuzl2Nvq5N3S0NLNzsvQ3O7r5dne6+vu731kXVteXFxfaWlxXlZQU1diW11n++Xl7G9qcXBlbmNpcXby6ODT1c3OzsvN0dHX0tPX2uxv/WRkV1VXUk5aUlBPR0tIQ0tJVnB239/p2NbRyMC9vsC9vb6/yMTM4NPR4fFecFxZWFlYT09PTEFCREBDR0tMSUtNSktNX2BXXWh2a2d7a1p73trYzsK+xcrJx8XEvcPMzsrFxcrIzNrq49roZ2dVSkdETExITU5QVE5QU1rk2/b5bujubObc4tjYzc7a0s3d9Grf0tnXz9foXmFuW2zg8FtKVmhWU1NWTEZIUEhDSlBOTFNw9eDUzcjJx7/Dwb29v8jMzc7W19Pe4ezcbl5WVUw/PD0/P0NMSURFTFZcfdHMztLSzM3NyMnNzMzP3Pbe2+Z+Y2R9aXF7WVJbY2RleuVsYFBTZmrp1edwZVdXVVJUTk1GRE5PYXRhV1ZhbvHo1tTOz9DLzcvIzMzLzszP0M3c4HlcX1ldcGdVTkxQUk5aW1NIP0NGR1djZVxQXW127uvo6XH/6OTbzs7R1svExMjHxcXKztHc29zjbVhSUk1JR0VEPz0/P0RLUE5KTFJbX2zo331wdt7QycDHzc7OzNHd3OV0Y1tjZ2b7YFllZ+vleufuZ1lPV2xz731pdGj03ezd4vTyZVhietra59ja2c/Py8rNz8/T087O2337ZllZVE1IQUA/Ozs8Pj08P0BCTFdgWlpse3fx18jJyL/BxMPBv8bOy87b4t3O1uva2+rj3NXgaGdsX1de9H5XWF9RUFVlWlRVV1FMS1dbWllkXmb+2NTe6dzg7dvT1dTOydLb2c/W7HF7cFtae3ddWV5eVVNkYlpbXnlsW3NqYF5kdmpp4dnka1197/nk3uXi3NTS09XV6P1x9PBtfODo7uRmWlVVWU9LSEhNSkxfXl503+Dcz8XEzc7LycvLxMPO183Ky87Kz/VXWF5VTU5WTkdMUk5OTVZUSklRTkxPVVVQT1hZW2J89m5fa3dhb+zk7t/OzcvIw8PJxcHF0NjS1+v63t/n4t7caFNbXU5MUlhOSE5ZXFpf7nby2MvM193e4+zq2c3N1c7Y4ebo3eD2fGxiY/Hd1ehyXFhWWF1aXFFGQEFHSVRdZldMUFdjc/Hc/15ca+DZ1tDNz87KxcXDxMnV9u/b1Nzc2vtcWVlhb/F+fGRZXV9sZWT05+3g0crJy9v1XVxoan1uYV1fZHnl19bc4N/i4tnf4P5gddvY09Tf71tWXFpMSUE/ODg7PUZNVF5eZOfb0NDVzs/LxMK9ur29wcjDwL6+xsnZb3BSUl9bW1JKWFNRVU1STkdOVlxoX2RlWWt69t3h2nRTXHNx9f99/Vv53N3W0cnG1tLOzcrV2t16Ymh993ZlaVZFRElJSUlPT1NNTE9SWWFw3O7l09LNzMzMzdHPzMzO7HroXFJPVF5UUlppeHPg2u9jbe9oVVp09mJu7tjT2M7M197azNn5693tae3k5PB35NrW2NnZ/lZcZW5nYnF0YllYVlZQTE5MSkhDTEhHTFBdX1vr6X3+29bgamVwXWBod+tu6MrIy83Gxtjc2Nzb6tvP09rP0szN1szR+e3/eF5LSEZBQkFESEtOV1FOTFBYbePY087U29XT09nXzdbg19jb1NTY2fb7YlxbSU5SQz4/RkxNVV1WVVtp/+3r29rcfmX3/vnf2dDO0dLh8eDc297i39ni4dna2eXsfHz9ZXjuX1FNU1lSXndsdG9gfvF42d7saldmaFps5dXO093b3eHe2t9uX1ZUX11w/VxoZlz9bfLX2XxmTklKRE5VUVZKSVZOT2r26mpkcPp649HQ2+LZ1M7PzsfM4N7dz8rJxMbS4PlkX1Zae2FRS0dJTVRqbvb1bmx27unj8GNYV13u2eHa0vb+bXrW2NHK13dv79nZ3NPO4WlaXFxVY2RTSEFFSElMUldOREhLVGl0ZV5QTVtn2svKw8XP0M7Q0crN0NxuXV95/uPY1ONoX2937eTxeVty3e3V1dXOc1rt4NrKzNneXXH2a93Sz+FpVE9NTV50aWJbWFti7dHU3nFPTk5LYF1JRT89REhT5Op2eV9W/m3g0d7d++rl2tPIx8nLzM/OztDM1/1eX1/v3tHJ2WlpYHTg1czS43h6cX3q39Dcel1QTU1QVE9TSkpNS1Jo7uX6Xm9xcdrS1NR98eDdzsnCwcrZ5GxdeepwZFFITEtKUGt87HlaX05Z6ezwaltpYm/bz9PYdVlWT2rY2t7tYfbg3c/IxsjL6W9gZ9zf393x9uXt7tbQ4+9VT01UcG9nYFBNVlryzsrL0e/+5drFyM/U3f1pZ1/g3H71V0pMSlJNS0tFQj9DSFNhWVZJRE5d++Tl1d/t/uLdz8XIzt3obvHd2drQ1dDRz8zHxMfP3O1wbt/g6W5aT0xZ+uLe92lXSUVNYXBiX11bdP3m6t/Zztfg6uDS3OXh6mp+7PF56+vqY0tER1ZeXmViV1JUUVjq5uFsVVNRaG1ZYnZ5cvTo8dLP091hXmPi3uLU1OhtetrTxsLH12tVUm/+6upkWV5l7eHXztxvcP1229Ti3OdWXuvt7tbW2+xPS1BYZm5oZl1VX3Zx7t71YVZRT1p5aF1eWmza5fXo7GFPSUdNVmBsX29pWWLy79rKytPqa/7k2dLUztPYzcnOysjO5m5gX/L0fGhqZl5o9+fdztjuXlVKSlVt+HzpdGJhaezQ5XBhV05PZ254a293383DwMDL5GBZVVjr6ntgXlBMT1Rc9XlWTkpHQU1ZXlJWXV9zed7Q0+Zv/eH32c7Q5/B9fOrtz8vYfmRXUlJk5ungzcvMzMzEwMbP3fv/aGfj7GR6dW3o5tjP7VNJQENHR1VjXWJxY3no0sjN3fddWFZMUVhOTVRPXFxk52RHQ0JAR05p+11bbGP1183Bvs7e6fZ4ed7W19fJx8rJyMXH2/J7dH1v+3z8aHjn083Fv8PaW1BLQj9FR0hFSU9bY/PY1m9ZY2hcVn3s7n3x3M7Lw76/zPpZWFVPZmFWTktMVVNZ8e5sW05NVlBcbGxq8tvMzM/HyNT+XVlWUFhgWVtgW3jc1cO/ydp0XWJcaePc3trXz8rLwsLM33BrXlFNTlJVUVl82d3XzNnzbllRVFlefex0aW7l39HFzOZsVU9KR0lLTElNW/H03c3PclJPUk1LTFNdUFrv4NHIv77N+mpYUFBKU2hba9fMxb26u8fJyMrX8WlYW1VZ8dfVy8nM3WVTUkhDREZRVEtb7uvTzMjM1nvtaV9dZ+NgXWbc1dDNz+L+XVdTTUxMV1hdbN7d2s3L0tr9W01ESUtLUmFh6e7o2tDU7V1QW1VMUV5o9OzZysK/vb3AyeV8bFFYd/Pf+Wh62c3FydnabFtRSk9aaXn+6t3NysbI1uV2X01DQEhFSk5ITW7m2NDRy9PtXkhHV0lZcF1b49LW0dXV5v9WTEhHSEtPTlRx3N/V1c/Rzurz8uDX7NTW087LzsvIyczI21lUVF5eZWL159nX4t/Y6OpvTU5HRUtfbG5x3+D61tLb2HFIR0VCR1Fcau7b0c/IxcbFxddqZVJYWk9SXXfz+fLma19bTT9BQkxUUlNWanjp39XS0dTrUl99cuzr6tzT1srLz83N2mhQW3xmcWRb48/Ty8XCx8vN3nFlXVZSWFZu3ez84Nr27el9ZllNR0BBRElVWWre2OPZ0tn1XFxaW1VZXVZSUl1xa3zedlRNTU1fYmd6Wmhv/d3b1cnT4Wxedubic+bk4tzPx8C+v8jYfV9dZPZdfPZzb3vn3tTV4FxSTkpKREBFSUVOW+rb1tDc2+12Y2xqbWx+eXPt29fa2erd+WVXU1hWVF5bX3VgY2nr+X1iWFlUXF9oZl5y7ufq3cnKz+JZU05HSE9ne+PY0dPKv8PFx9vf4WtoXVtaYm7t4NLDyc3K1H1nWVBeXk1PTlZgZObm7uF+XGxpVltZUllXZOd37PJs9F5a69psXl1QV2Ft6+jb5X3i8lpVWk5UY05RX/rV0tne9N7S29/Q2dbU/2R73czLy8XJy9De6NXa7ezk9F9XXWZzbGV3XlVX/m5eWl9s6+n16nBkWVdLSUteYF1pbmR+ee3P0szV0d18e3RiWWv3eGjo3dDO1W5wUkZHSVNPT1FJSU9SZtzP19bY7+ja1djPzdPO0NjPw8DO43VQV2ts+uLkbWVda/PTzN/nck5QdPTg2dnn+Nrd69zQ2fhtT0BGR0VNTEhJVVhYY9HS+vFrbeTe7NLb9WFgYlx429f8e2VeWVRMU1xZVFteWWNz5e/w6dvVzM3HwMXLzNLWzcjEzN7n5O3pfu3Z6VpcW1VcYO/rfFtveGxoZ+nyW1tqZHDs5Of6V1le+tnb0d5eVlNJT2J18fFhX31r5eDV327+/mVf8O5kVkpKWmJy6NTP4W5gY17s2NviXVZk7OTSzMrMzc/V29LL0NLd3uPd69rN1Nvl3uXy68/b8Whfa2tm6M7Z3f5iWFJRZmhcXFVZWVhfb2z4fXFbWmJveW1hUFBUXGze293ia1lccN7W4O5jY2tv6tLO1dff7nl66OPp5Ovb1NXSz8/W19/78eXd4/HweHNg7tPLy8/N2l5aWVtXUFVMS09UXnLufd7efHdqb3Np7XVjY3p1euHa1N/8XVpm6/J9c1tYYWBp7vTa5mxeWV1oWFdvZm7t5uDlbuX8XFlXVVJacP79cGbu4tPT1M7d6t7m631n+F9R/OD13ujh3PP87X58b15ZXlxh6m9xfena3unse3Tf6fDt6ujoenpqZXZeV1heV1JRVlti+9/p5+3q3fpvbGdgUVFVT1pdamx8/vzbdVlZUU9MS1BSXWXk3NfW28nNzMjMz9nl4e1vb37683zw09TvZE9LSUVNVU5RXVxp/n3d19nZ0dLO29ra49rS08vM1c7Z5PBoS0pHSExISVBSVGBp5NvnbGpeWU9MUk9QZ2Vu7fjb4d3q29LQ71daUk5TWl17ft7c1N3o9v9+b+Tc39/gcPP3+n3x3t/p7ej76ftrbWv+2+Di6+73efH/+m51fOj5aWzq6vHYz9XqY2FfSUtOV2F2XV5nW1xRVE9SWlxXU1BPTk9aXWrfz9DV19Xr9vXk1s3M1u3f0tTY5uTt8l9cc/pkXHxueeHUzdP0bmRlY1tcYnj85H13/mzk2dHMztpvWklJT0tISU5bX2jm5XV1al5969rYaVtiYGdn8uTg6nx4WlVVXllcbWliVVBe6d3e4Nzj2dXl29rz5+De0MrHyc7fcFteXF5p/uD4ZGZbXHP57+TibF5aU1NSUFZeX2189+bufXZtb+vq8m1mcGlgedva09nf42ldYWVp+d7V0t3c3dzf6+/6alxcUUxKT1ZYWmXi0MvIytTfZldeaVtn6e10bfLZ087Jxsrde2/7aV5dY1pXa/J1XVtSTVBmdvJrWV5YVVVY8dTW1tLe/fbe1t/Px8bIztXQzdDd7vZ0YlZZXFdUUkxJYOzx8GhaVVFUT1dZX3Lh3ujfzs3Qx8PCwsfN2OPhff3d5t90YFdaXVpPSk9WWHrmfvZy5Onr1tTV3PRjZW197NrPy8zNz87LyMrxb2FTUEtHRkZLTFR029jQzd3i3dXa7uXc4u3r6d7X1dPR19bX2vJXVlBLRURLV1VSVFdVT1zq5d3S09Xd+eva09DW0NXe2t/kdd7SztHQ0N/mfnZtYG1cW2JSTE5QUlhp3tzbzs7Ozt3s8eze3+jr8ejX6mz66Nzg3uppaObiZ11WXmt6+mBcWFhXUk5PWnxrWWFkannZycfIztnw6uLo6ebY1NHO1c3KzM/Z3+Dj7fFfWF1fZG7r3NHN03t972RYV11XV1RTUFFkb/ve3dnU3Pju3NvoZHDreuzpblheZGFwZm7f3edfV09RU1plXmJcV1VOU2/g0s7OycvWzs7Nys3b4O9zaF5fT1Necmtl+/f2bmBfau3TycrP2OnufODUzdHf+W9mXWJaVVlaYG1laf31WEtJTU9ZaHBpfHVSWG7v5NzR2fZ2ZV5w7eDm8/r6797rZXltanr5cFhRWFdQWnLm3M7L0dneZ15pc9/b2+pgWmJdbOvf29zU4OXRz97ueHloYm5cUE1MRUJESkxWWllbVU1MUV1+797taW1v793Wz8vNx87f43r8Z1NWVlNWWFJPTEtOW2j46eB4X2FaYPDTzM/Pz9rm6djNzeX9ZF1dUE5KSExMT1hcYnlgX25n4NbTztXX4WJWWFFaXl9fW25nWFdZXf53d/n64eTt3fB24uba3efobF9kW23q9t3hamtqV1ZNW+b25exlV1JWV1dnZ2z7ePv+ZWVod+nt5Njd+WZZVU5XXlljZltQT2JkX2fsamvs9HRg79fXycnNy87T193ncmdwYllmeGFbVlRXa9zf9dbe821UT09dXVts9Xt9dnnq49rU3trO097ucG1t+/1l6uxkZVlOTVZt8GVcVkhHRURLTk9OVnl3d9zc4M/Iv8HBvcHJytjf3ubq5tfga/32WF5nZWdlZWdUTlFNVl795NjR1dbU1trQ0M7Q19jsaWNeX2trY2xvYl1YU0xMVF9fYfV1XFxYT1FVUVdkXFJVXFtt1czLycXDx8vQ1Njd3uHj6uro+Ht7+uXi3dbYc1ZZWmL8evPe3dfS0tLS087Pz9LOztz++v5z7XLz1t96ZVJLS0xTU1JaW1hVUlNWVVhcaGp55ePg49vMyMrDwMLG0OHvfG5eWllQWmJfYWJ02tvbz9LT2fB4amL76tvQ09nc4u3e1NHa1NPU1N/t8/R6en52berxa1ZLUFtZaO1uemxaWl1UVl5aUE5UVVtffN3NysXDwsLJzt3vaXBxbGpoXllRT1liZGlkV2BiXFxbWWd36NjQx8LDycrIyM7MytDZ4/rzcGNw8V74Ulx1SlpeXmTv+Pfk3v5jWU5NU1NZXlhhWGDu5dHGw8PIzMzV3m9UVlJOUlhhZF1n//fc29zgbPd4aPlkY/N2/vn79ejk3vfrz9TPztHQ6W1nX/rv9f9kV1JMTVNOYvxnbWNodF5aUkxTVFNd+t3Z39jOysTGxsbJ0uZvXldVV1VRUlNUWWB4eO/r+Pb2el5ZY2RkeeHc2dTRz9rd297Uz9bW3elyYVpUU1NZUlFRV1ZSW//093Vu73liVU9OUE9UU1NXWG/069/RyMLBvb/G1PDw5Ovu+1xoYFhXWF12evv7Y+9uX1hQW2Rf7t/ZztPTzdPRy8/N2NrU7l1QVFxbW1tSUU5JS1FNUmv0fl9qaldNSEpRT1VVUmVhXnf/48/KyMrMyNHyXldYZXl3Zmt+Znnj5eDOzdfh4OhtWFReZnx+//Pf6O/n4/zlycTJyMjV6mxx/uPb5P3/cFVQUlRRXmVZUFZSSERAPz5HSkxPWF5fbPjf08XBwsTH1tzr8nl9521eXm9fZF9fXP3e4uft/F9eT01c5trR1NfX29nV1NDHzM/Pzd36alJPUVlRUVFTUVJVWWry83xpZVxPT0xLSk1LTU9UX1ZTXmJ91s/Ny83V3ur47N3d497o9Xxv9urz9WVcXVtaT0xHR0lMV2Pm7eHd2NjSycPAxMXLzc/b4ejv7n1tal5jXVBMS1NaVlNQUldLQD9ARk5PZGRc/vXl1MrFxcbCwcjS4N7wY2VyYV1bYVtSUFtmam1kYF9kU1BUUlVk8+Xr++Ds9uHU1NjX2dbS1uT18Ovp2dbea25+XVlcY1lWY2RcVE9IQD4/RU5YVlBicVxn2crKxMLFyMzM0d7u4NfV2/Fu6PR5bWxdV19aU0tOTEhJUGXi3+Dd3M/RzMnKzMjGys7Rztp+Z19bYVxaT05LS05UUEtYWmBdW1ZSUU9TX351cHv679nOzdHJxcjHyMrR2dfT2tTU397p9eri8GVXdu9q/flfW1RXYGne4vjq697c3dTV1czN0c7Q1s/c4HhndVtPT1BOVE9MTUxPSkpMRkBDSk1OU2Fga/vXy8jDwMK/v8TBxMvNztXT4O18XGNjWlhUVVlXW1tqeXBneu/k4vDe2NnQzM3NzsvJzMzKyMrNztXf3XtaWk5MUFBXU1BXWF1fWFBPTUlGSk5JUFFJUmX8+vzZy9HNxsbExMLCycXI1NXc8N/j7nBUWVFITU5NT09OTlj1YVfy9+LRzMTEwLu+vru+wcLM0t7d501HR0JDSEdGQ0VKR05dWFZYU1ROUlFOWl1k79rV09XNzM/O0tHNzdXW19nwYF5aU1xoZmpoa2NjcnRgY15eYWj5bGpv9u3c2NXPzszHwsC+vr/CxcrU4W1WU1ZUWVFKR0ZEQD9ESUdGRUdHTE1KTl996M/Fwb68vsLBwMLJyszU3N1uVk9RUEtIRkRFS09UXn1rbPf4c2vs+/vq2tHQy8vOzszOzczJxsfK129mVEdGRkhNVlZYXl9dV1ZXUU9MTUtHTExISlZhav7638/MysS/vr6+v8HFxs3gb3Xva11NRkVEQEBASUtLT05PWVlSVmDp1MvEwr65uru7vb3Bw8XO3H5PRT8+Pz4/Pzs+QUBKVFtgX2JcXWZnamps6drVy83Uz9zk4dvTzsrK0dLbblxVWmZr9+xlb/J8dHV5fez9a2peVlJLR0tSWV1lY+LX1MzGv7y9v8PEytXnZlxeW1BKRT48OTY3ODo7PDs+QkJAP0pY59LMwLy9ury/vr6+v73AxMrrXFlORkVAPD8+PkRESlZlce/4697b3OLQzczHxcPDycrQz8vLycvY+G1URUA9PkNIS0tUU1FYVlNRU1dfZmZjXU9IR0dKUE5QWl50/OrfzsfDwcC/vb3BxcnL1tz5YlZNRUA/QklKTEtNTE5GSFBs49fJxb68vLy+vr29vr/EzM/rWktGRT8+PTw6Ozs7Ozw+QUZJTV/27uXez83MyMvMy87T1Nvb0s3P4WheVk5MS1BSVFpTWGBmY1pceNrZ2dnb1+RwXVxhX/rk5NfU0M7HxcPCx8bFwcLIz97f8VxQSkRAPjs6OTo9QENER0hIS1N74dTNycPDwsbIycvHxMTFydDW3G9cT0tMSkdGRkBBREZLU19d/d3XzMTFycjDw8TGx8bHysrKzsvQ3+tqWE5MSkpMVE9NVVxUUElGSEtWXW1pZVxYVFNWW2ttft7l6+Lcz8vIysbAv8C/wMbT6epeUUtJRj9AQ0VHTlJTX15WY/7x3M3IxcG+vb69vb6+v77CydDcbF1SSkNFQz0+PTs3Njk7PUNJVnbfzca+v7/AwMDCw8PL0c/X5fX5XVhYWFhZWV5faf91cHb+dPTc2+TWzc7S2N75ZV5bZPLy49zc4+DPzNDY1s/QzcnKzt3icFhZUEpHQz4/QD89QERCQUNMVF1239va0srKycjIxMDAwMHDxcvM1eldU1ZNSUZHRT8/QUFGSE1k69XIwcLCv76/wsK/vcDBxMXIzs/Z4WpVUlFQUVZTSk1STk1JSEhHSU5PWlhYaGtlX2Jlbuzr7eXv6d/f9vfzfObW1MzL0drY0uf36Pb26vpuZGv9+HhnXnH6euze1NPcz8vHxMLAvr26uru+w8bM32hcT0lDQDw7OTc4NzY4Oz1CSVZ76NvRy8jLy8rKyszN0dXZ3unwWk9OT1NQXVxXWl1zbFpaaPPt4tTPzMzJy9Tw6OPt7t/V2t3Z0szNz8nHyMzLyMrP1dDU815cW1hNTUpGQD0/PTs6PUJERU5ebnXt1s3Oz8rFxr+7vcLMyszjbFZYWElEQkJDPkJISUhKWWFw28zKzcvGw8fIx8PBxsnGw8bJy9TrcGdvXVtcV1FKTU5MSkdLUExLTllXT1ZjXVpXYu1vaGFfXVlld2tnZ3f/YWb33d3o297d4fvo5fN+cmpZXWleU01PVlVPVVdmXV/19OPd0MTAvru6u76+vMDIzdbhcU5JRUA9PT48OTk6PEBAR01OUWzZ0tLSzszNzs7LzNDN0vRgV1ZZVVBRTUhFTFVQUl1qfnvq1M7Q0MzO1tvSzcnO3OR0W1r85O7059/h59zQ0NbY2uL3dmpwb1pXUk5HSExDPj49PT9AR1BTT05RVl/x2MnFxsTEy87Kytvt8v92ZFhbWE9KSUxLTlBYZFpccHJ+49PMz9DQ0M/T0crLzszKz9nR1NrY3N/kZ1hbWlNLTU9PTk5VXVRKR0lGREtOWGBjaWJeXmju5Xr09Ol0cd/c7P56bGBj8PPj4+jp/XJ26eVnWFpZVlrw1tPh5+rv79fOyMLDvru9vr++xdXc5u9vZ214XUlBPT4/RENISURDRklKVmdfXGVvffPb1NLU2uP5ZmRhWlhMTExLTFBgXVFPV2Z449DHwsrS2OLj3dzRz9TZ2tjb3+F6am31493UzsvGyc7N1M3HyMrO0NPg7+/ub1REPj05ODo8P0NCRUdKVmbi087HxMLBwMDH1fZaVVBUYWJfWU1HRUZMUlpaXF5aZ+TOys/Oy8fExb68u77DxMvR09LS0+v8ZlxcXmxnWlNLTFZdeefY3OZnWVxeWFdcWVZVWFj88mpiVlFXWGf36nRbW1dVWm7e0tnX0dPV08zM1/VcVldUUVhoYV9aWF9tfefT0NPQycW/vby+w8vNz8/OzM3Z3vhgWV5iY1xPSktHREhKRkRISU9Yad/Nzc3Mzs3Nz9LT1/ZfXE9OUVBMTk5LTVh639fW1Njh29TQz9LP1Nnb49XLzt3b4e3z7OPRytHZ3uTm2dDOzNHe2d3o2tfqaFxMSEhHRUhFQkA+P0ROXG7v6+PR0s/Hyd3h7GhkXF538GBaXF9cXG335flbYn555d3ifuzn4drV1MjEy87PzMrJy8vLz9vZ393R1ORmamxyeP3gztDc5+VvXWBZTUhEQkhEQklNS0lNV2b79uXU2uHs8Hrl1tTY2eX24e3o3ftlXlhZWFthd3FhaHRtauTV0NHQzcnEv7y6vMPIy87U2dfQ2P9mamFcY21rXVNOUk9PT0tFQEBDSExSXG9tZXF6dvPa1elzYV5cUlpiVklGS1JYXGPw3ufm1M/Qz8rL0tjn3d/x7O5mWFlfcuXe2dHQ2t/W0c7Kw8PGxcbDxcjKzuFxaGtfV1JMTUk9Oz4/PkBERUVLVOzf3s/Lz9fY1Nzu/fjuY09OU05MS0xLS0tTZmJlbGtebPDp3M/LxsfMzcrHycbExsvOz8vQ4OLh/V1ebXN0bXDp+m9s5d7o6ftpU0tLTUlEQkQ/PD5BR09YYG5oZXT3aHh4a19dZOfidF9mX01MUVlXWVlhZVdWaGxgaW5vaWru0MrLzMfGzc7KyMrKycjM1d7Y4PD+cWFbZfvq+GZdXU1HSFFXT1ViYldPUFlXW2t5Y2Bm9P1fWFlcUUlMVlJSUltfWGN79O7r399tcPTc2+jk7GpcWWJxbubQy87MyMPHzMnIy9LQysfL09re919abWpfXVpWS0dISElIR0pGQUZNXGVt5Nzg39rR19zc4mxbXWNZTEhIQz09Q0pMT1dbWllc7d3Wy8jFyMrGxsjKy8rL19vc4d/xemxpeXvo3d3c2dze18/Ly9DV1etlZGdgW1dRSUQ/PkNCQ0pRW1553dzl7urj9Hvs5+/8al9XU09NUFBQV1hQUFNWVV5z7eLp4tza1s3GwL6+wMHAwsC/xMjKycvU3O5uXk5KTk9WW1xbVVJNUFRbbnxnYF1cYVtbXF1eWltbVVFUUUlGSU1OTk5PT0xOWGt67eHm6HFfeOnd2NLN0NLY4N/h5+Dg39XMxsjN0NTQz9TNy8rKy8/T09LU2dja2ehwbWRdV1NQTk1JR0dFRkxdZm7p4eXi4OfseWxkZl9dV01IRD8/QENHS1BVW1dYYfHd0s7MycTCxMPDxcfKzs/Q0s7LztfZ2tfX1tLW5PT86tvY0s/Z3u/38HBsZ2BfWlJSUE1OUU5KTFRgcfPxcV1ZVlhdYml2c1tWVlVTUU5PTElJSk5WVlleXmf72tXPysbCwb+9vL6+v8LGyszN0NTV1tvsfnt5ff/r19/k3NjQztff5N/c7W5oYm/2cWZZVltfYWBdW1lWUk5OUldUTUpKSk1RW2JeVFBUXFtZaHr37Obd2NDO0dfd5NvPycXDwcLDxsfGwb2+wMbKycjIzdXg6H1iX2v2+WVUU1JPTU9TWlpZXmp65Nrg9GddVE1KSkpLTUxMSEZGRENCQ0VITFBYYGdpcnbl28/Iwb+/vr6+v8DAwMLDw8PHzMzMzM7V3N7g2NHPy8vKzc7IyMnN1eJwW1pYUk9JRUA8PDw+QkRHSktIQ0dKUFFTVFZZWmNgZF1RTklJTllod//j3+DSzcjGx8fMzMfBvr28vcDEx8jHx8rO0NPX2dba83BnX15cXmNkYFdNS0dBP0JJSEpMTU1NT09QT05OTE1NTExNUVRZYGt47ez46uLe5N3Qz8/P0dPRz9DRzsvLyszQ1tbQztDOztHc6Onrc2BWUlZWWVpcV1dQTE1MT1dbXFlVT01RWVpUUlNRVVJXZGBgaWtramVw/nZ3ee92/t7c3/BuaHXx5NfR09HO1NDS1dDQz9HV1tnR0dng621ocmppXlRLS0xOUVhfYl9cXmhhXW/y5vJqa2tgWlxlYVtlZmdvcHj18fDp4t7a2uPf3+Dc2dnY2eT1+P1mVlJPTlJTT1JSTlJZZW5qavPzcfLh6v1s/fV58fDh4/ZnZ19dZffn5N/l2t/d0c/Qz87R2+bg4OLi3eHsbm/q3eN4bHJwVFFRTUpFRUZFS1BbZ1pTW2VdXGzr93hxeHBeYF1bYlxbW1hhZ/rr7u7d19fNycjLycjHy83Ky8zO1NTd49vZz9fg4e5sWFxoXlZZVlRMR0dGRUBCQkBESEpOTElLSkpMVVxdXlxdVVBVXWFpbGtoaO/h18/R0MzIysnExsfHycvP0s/S1trq/mZ56NfOz9bY2NjZ1tTi82diWk9NSUVBPz49PT9ARUNAQkRCQ0ZJTk5NUFlaXmpvfvLo3N3XzMjBv76+wMLAwMLEyMvLzM/NzM7U09LX2tXOzc/Y3ep5Y2ZmX11TUU5JSUpLTEdJSURDRElLSUhJS0dER0tMSUZJSUdNWWhtZvTo7ufSx8XFw8DAw8TBwMTJycnLzMzNzNHZ2eHw/u3i6unt/f5nbej0ZltdXl5y7unicF5kYVpWX11TTktNT0xPXFRKTltUVvbj29bg3NnZ2tjT1dbY1tDS1M/O1Nna2uDWzc/Oz9nd2uHs6Ol0aGRpa2JoZ19UUlFRVlpfXl9cU1VSUFZgcnJr+Ovh2NPN0NXU0tHSzcrL0Njg3/pkbHNlWlx7bl9u9+h4aW9rb23f1dzseHv9ZWNvb2pbYHZgX/75dV1WWFNQWnBxZl5cbXBeafDl397Yz87Jwr6+wcPDxsbDwsXL0dbX4PDj3uV4e+fxc/ns8l5RT0tHR0pLSkhERkdCQkdHSEhNWlldeuXh9XXu8Xbt3NnY5P3p5e3k3d3b2MzKzMnHyMnKzM3S0M3Ky87OzczO19nc8f176vFmcHl1aV1bVEtLTlBNTE5PTklISkpHR0pPS0xTWl1ZV1hWT1p92NPW0M7Q08zIxsnGwcLGxL6+w8fFwsjOzMvJzc/Q2efp3t3n8e72a1tdXl9TTk1MRkNER0hEREVHQ0RFRkNCREhKSU5VVFZaaHlq/N3R0c7HxszMysnGx8jGxsnMy8nO0tDOy83Ozs/X2dTe7+jsd2ZfX1pbWVxlYV1eY3VtXF1dWFJSUEdFSkhJS0tLS0xMU11YX3X36vH54dzf2tDN2NrS1tbT0tDPz9HMy8zLzMvKzM/Q2OPw/l1OVVVSUE9OTU1MTVpdVVZRUFFTVFdVUVVkWVRmbXb+6+Pa2ujc0Nnf3d7e4+Ho5e1pbvhlc+nz7evu5t/p7t7g9nJrbXJqamBcW1hXWFln9nt77+rq4HpncGpbWl1YXF5aWVhTVVtXUlr17+fZ1c3Mzc/MzM3LzM7OzdPZ5OPi2+Tj1trr6efl/G9nXVpOS0xMR0dGREZDQUVISUpOUFVaW19XVVRaXVJOUU1OWVdZZnD73dPTy8PDw8K/v8LCxMXHzc7P2dvW19zm697e4evg5vbrfWZTS0lIR0ZBQ0I/QkVJTE9NT1NYXG1tYF5mcWRXXllQTEpPUVdZZvfe3NjOzs/LxsfIxcLAxcfGx8nP09LV0M7Pz9DW0tPY3dzZfWNjWVFLSUdDQUBAQUFERERFR0ZHR0I/REdBRkhNTUxRXWpjYmvu3NrTycjLysbGy8zExMjIx8fNz83P1dbX1tvf2tzZ4Oj5a2VcX2FeYF1YW1tf9Onx7H5nXmRubHBhWlROSENDRUVFRUhIR01TVlpeYW1839XPzc/MztDNzMnHycrPzs7PysjKzs/P1NrX2d/sfW5fX1lTVldVVlddXV5rXFNOUFRNTE1OTE1LRkdHR0xVVFhr9t/Z0c7O0dPOztfc2Nfe4OLj7u316tzf6Oj5aW576O9uX2RjWVhfeGxuaGBiefPf08/T1tjV0dTS32lnemhaX2lobm5fUVthbeLV1dfS0tjaztHZ3t7a4+vu8uXm/mpeW158+3VwZmNlZ3L5XVlTUV9cUVpcWVtYXmNaXGlfZV5eZWFkZFpSTk5YX2Rree/n4NLMx8PCwsTDw8DAw8TEyc/U1tPa5O/ue3l8/nJnXFtXTkxLUU1ISkxIQ0JFSEtPWmRy+3ry63r67XVvZ3rtaGR1bWNeaW1z7OfXzc3MysjFxsLAxMXEwcPIycjM1N7c3d7d2tLR1trb3N/w72dZV05SUEpMTEdBQURDRkJHTE5IQkZFREZNS0pNTlddV1pgdX7g19fPzcjHw8K+v7+/vr7CxsrJyMvMztPoeOPj5ebg4+97c3VpXl9lXVZTVl5wZWVsZF9scG92du90XlpZWldPUk9MSEdLUFhbb+zn6tnV0dHOzc7KxsTExsnJ09PX19ng297Z1tvd2t/o6N3d6ePg39/0c3hsa2l0ZmJdX2hjVlZlXFNPTk5PTlVVUk9PUU9RXmhy+efY1NPYz8zOzs3O0NLNysrLzM3Y92BmbX5ve21eW05SU1teWlpbVVld/ePg5fZxbnfp3OHW1c7N0tTT1tnf7HdvcWv87Ofu7fHn497d2dje09XY0dnf5X1nXmVz/HtnX1xgZW1yaVxXTU1MS05UW1dPS0xMVFxja3VcU09ZYWhlbfxrc2/+5tzc6u/7+u3m4dvSzM/T0s/LysbAwsTFzdLb09jk7Pvu919UTk1LSEpHR0I9PTw6PD5BREdPUE9PTVZeaGtn9/Z85+vb0tTY3unp8+Lf1M7a4+zg3drUzsvIy8nJyMDAwcTL0Nvd2NTKy8/W6m1ZWV5hWU9LSUE9Pj4+PDw9Pj9AQUZFQUA9PDw/QURHSlRYT1BaZWtr6NrV0s/Ix8zMycXCwLy6u7y+vb7DxcPJ0NPP1c7N0tDecV9hZWBmYU9MR0JBQEBERUQ/QURJTUtMS0tIRktNT1xod2JYVlhdZubW1d3Z0dbNy8zKzcrLys3MxcHFyMzMztbOy87X2c7O0tLT1dzj+WpXTU9TT0pKSEdDQ0hGRENGSEhJSU5MRUtMS0lObfNnXmV2cnbb1+ZtcXbt39TJx8rLx8bJzMjFw83Y0dPd3Nzd/WNncO/979ja92RiWktITE5NR0lSTlJTVldOTlhuaV/l2OF3cX3r8t3T1Nff083P087O2u7069/Y1szJzNbb2vFqbujhbmJzbFxgZWpcXHl27uzg0tXvcGdbTkdFR0ZCQ0dFQkJEQj5ARElKS1749vzn2tXVzsjHx8jFwcDCwcHFy9DW19rXz87a6fJsV01OUE1KTU9NTVVaVlNWWl1fZezb5mVfWUxGQkBDQkJHVFdYbHNjY/ri2NfXycDJzMTBxcS/vr6/wL68vb28v8nQ29/pfnv38nBhYVdPTEtRUk1LVmtZXGNaU1JdaVpOUFpTS0tLQjw4ODk4OTs+QkxPWVxcZebV2tfKxMbIwsLEwb+5ubm5ube5ube6wMbO2vJdXmhcT1BQTk1KT1ZWVVJRT09WZVhRVF3xYFZTWVlYV1BOSUZGRUZJRklKU3l5aGd33dPSy8jHxL6/vr/Avry6ubi4ubq7vMDL1+D8WFBPTU1KTVZUT1FaY2F74ettaufnX05JSkhGRURDQkBDRUJBRkhISU5XVVRe59vf59/e3dfMysXBw7+/wMDAw8S/vb/FzM3IzN78ZlRPTk9OUVBOUFNNTlNQVWB1bltQWV5cU1BMSk5danjn7O3o5une5/fy39fa3+HXz8/RztPW1svHxcLCxcXMzcrR2s7Kz9PZ2tbW9mVaUE5OTEtOVlpXWlBOTUxJTkxKUEpFR0pBPkRHR1BYYXPq3tTQ08zMz8/S1dji2c7LycrLycnGyMK/xcLDyM/W3OPa4P1uZWBna/tzWlZPRkNAQkdLTk1STkxOUk5OU1RTT1JaY1ZWefdnfO3az8jBvr7BwsPFyszT0s7MxsHDxsPDx8fJyc7X2t3jempseGlhX1tgYG91ZlpPTUlBPj9AP0JGR0RCRUBDSUhCPj5ARExXX3bo3tjOysXDxMXDx8vLzMvOy8nIx8bDv77DwL7Fy+Lr7v5++up77fV1fnr6a1hOSktJQkVIRUVGSk1KSU9RSlVjbVVIS0pJSVRj6NrWzsvNzNDRztLS0M3My8bGwsHAwMC/xsG8vcbP0O9oW15q8unr4+Dd5m9mZ1dMRUJAQUI/Pj8+PT8/PT9JT0hAQEE/QERITE1d7t/V0dDT2N7c4eXcz8vKycTDwL/AxL+6u8PPztfmaV9eW1xfbu7p5nNz+29YUU1MTEdITU1OV1hOSlVq8VFES0NBPUJNUU9ad+La2tvQz9HU0NDT1c/Mz8zFwL/Bw7y8vcfl6WhXUFJXXVdVWWNpcnNo/HxhVlddWFBPS0ZDSElKQUFNSkc/Ozs7OztBSkpOXnzg0c7Q09bU29rf2NLb187MycXGxcfDwcPAy93jdFpQVVhVWVdfal5ga/NwWlBPTEhHSE1PT1tcUklKWlpYT0hCP0BDR0xRXWx+3tTLycfDwsrV08zLysjExsbGwsTFvsDCydnd8GltYGZeVE1PWWdoZWdbTUhLSklHQ0NDQUNDR0hIS0pEPz09PTw+QEA/RE5WbvfX0dHJx8nMycbBw8rHxMTCwsDHxcnIw9HP0trhePX3XVtcYnVlXFxnYFtVV05ISEtNTUxOVFdNUFVQTktNTEhCRUxMTlBXWVtr2tPKwsC+v8C+v768u7y9v8LBw8LDwcbKztDY69zZ3+H8d/J3eH3/dV5SS0pHSEtIRkA+Pj4+QUNCRkNGRkVFREhKSklLVVdn697e1snJyMbExb+9v8DEycjDyMnIzs7MyMPCxMfHydDX1NfY1Njd3edwb2teWE5MS0xLTVBMTU1QTk5MSkxQTUhLSUdMT1NcX/zez8nBvb/Av7++vb69vbzBw8TJycbEyMvN0NTV1MzJz9jY2tnb2NPW4GZbWE5OU1BNR0VDQUZHTFFPTUpIRENBQ0Y/PUFHSlVw8Ofa0szGwL+9u72/wMDExsjIzdfUy8zQzszM1dzk7d7Y1M7N1d3Z2d/c63ZlUE1PTE9YXl5UTkhNU1thX1xUTk1MR0hOUVZWaOXYyMG9vL7Bwb++vr6+wsXJzt7c0dfX3/Xv4trT0tjd4/l5+Ojp6/ZpYVtSTlFOS0ZAPT5CREdEREZFRkhMUFhYT1JUVltl/d7b2tzWy8fAvry8vsLHzNDV1dnl7Ojl3tXPzdHQ29nT1dDS1drqaV1bXllVU05TU09PTlFQTEc/QERHTE1RUE1OUFFXWV5jbezZzsjEwMHDxsnHwL29vr/Dzdbl7eDo7Oj03tTOycnIzNpwXFtr/PnybFVLSEZGR0NCRURCQ0pHRUM/PDk4OkFGSlRaTklKUVdfZfvZ1MvFv76+vsbT4fTl1c/O1Nre5/Dp3NbSzczLx8bIzdTjclJJTFNbXG92ZVRMTEtKSEhJRkRMT09MR0VAOzo8PkRNT1lbWl/v0srIxMO+vLi3uby/yNhwZHv13dfU0M7U08/KzM/S2t/f0dDdcF1OQTw8P0NIS05PTUJAQT8+PDw+Pj5DRkRCPzw4NztAR01VbNzS2M7Hx8fIyMfKy8nO1+R1W1JUa+nPysS9vL3AwsnP3O5zbGNu7mRZU05IQUNMVGRfXW9hWVROTEdFQ0RFS1lcTktKRURFTVr+2tfLw8PBwMLEys7V1M7MyMnQ19/n/X3p2MvHx8TFzMzZ7WNPSEI+P0JJS0ZHREM+PUNKTU1UWlRMS0tGQEJDQkhRYf1pXl5ZWlRg797TzsnHycvO093o6vPt5c/Ix8vO0cvM2NDJxcPEyM3bfGdWS0RAQUBCTFdTT05PVlFQXWVbV1tbWlRVW1NNTFFda97NycjLz87R2NfNzNDMy8rIzMzM0M/NysvNw8DBxMvMy9Le4tTb3d77c2lXTkY+PDo8Oz1DRUhCQ0ZHSEhKTklMT09WVVhbWFhabejdzMfDw8fKz9vudXlpYPPj2NDMycnNy8fCwcG+vr7BxcrT3et89H337ezv+PFwV09NSUlGRkpPU09NSEVHSkxPWFldb/fs3+L59OHXz8jBvb3BxsjN0c/T1tjY2M3MzcjFxMbEw8PBwcLDzNba819YTklGSEdJTU5SWFVPS0dEREVDRUZBREhHSU1RV19x7dnX0tDQ0dPT1Nfb19PS1uDU1t3Vz87LycrHx8XDwcHEx8fJy8zMzc/d5+j/Z1xjX1lQV11nbV1aXFpUUk9UUlVOTkxNVVdYYH7j1NLJyMnIy8vM0NDV3t7d0M7U2tnT19XNyMPCwr/Aw8LFxs3R2OLl7ezvaFhPTktJSkpJSktQWU1KSkpJSEhHSUtMUldWVFZidPHh4trV2c/N1djb4/J093Nt89zV09bY09DMx8XFw8PDwcTJzNLbemVtbGNudPbtcmReWFdbU1NeaGZmW1VUUk5OV1hVWl1m9+3g3d7c2tfZ3dzX09DS1dPY3Oj17OHf3NXY19DNztDSz9Pd2tnb6fv5b1lOS0lHQ0VLS0xOT0xDQEBEREZJSktKTVBNTUpJS0xPX+3l6uPa525qZWv8+tzY293Z1t3h5+Xl5dzNy87PztDieW569nZ95+X9eH1zZVdRUE1NVmBfVlJVU0tISk9ST05UTk1TVlJNTFRZWmPc1t/d3Nnd9+ze397f3eHp3d3Y2NnU0tPa09HW2OLl7nVdXl5dXFJUUlFRUU5OTk5JRkNFSUVGSEZDQkRKR0xNT09LS0tOUFRbXVhXV2ZycvT5dmtlZ3n/4trR0dbQy8nJzMrO3OT38fz16eXl6er79tzZ3vlrbvtwU01XZF5VTE9ZX11WTUtMTUpJTFh1Zltd6NXe6t/e2tbf4evm3+f5Y2N4cevez8jJztLMy87Q1+7h4Nnl7uDr9GljYFtWXF5hbVpRTUxIRktKSUtKTEpJTExLTUtMS09nfflxaGlyalhaaW5mXmludH744+Tb19nZ0cnGyMrKy8vU1tDOzc3MztPU1NLZ6+z8amBv8Ovs9G5kbF1fW1phXVhWXWVodWVjfHB+4trV2Njh7uHh9HJv9u/wb3Xf29XOzs/PzczJxcbKytLX1N3f7PDie3NpYmBYW11bW1dXXGJrWl1fVVROTVFNS09RUVFUXFxaXl9gXmt28ed66/FrbXJz93Rv7Onj5N3X187MzMrMy8jIx8XCxMjKzM7O0dbU3Ozu7+no4tzb4+DX19zg7XFsXllZYnhoam5hZXP25d/Z2t3d4eLi/Ht0amZZV11o593Y0tfV1tTU09PX1NnVztfW0NXd9Pvs/W9ubmZpe3Fu/PFqXVxcWldbUlFOSktJR0hHSk5PT1BZW27y8PVuZ2FXXV9cXF5ob2z02dXNyMTEw729vLq7u7u8vL29v8PFyNHc7Hl67eTf3t7Y2dvY3OvwcWtrXFpVVVdPSkdGRkRHSkxPTldbVFVUUU5RVVpl9N7d2dfV0tDOysnLz87NysjGw8nOz9DU2NXV0s/T0tPe6PZtZFtTTkpPUVBRTkpHRUNBQEVITUtNUE9TWFxVUE1OVVxWXF5ZW2n29+3c0MrEwr++vry5ubq8vLy9vb/Bx8/c3un2/PD26Oju3dvf4996al1cVk9NSEZDPjs7PDs7Pj9EQ0VLSUhMS0tMTFdne+PX19fb18/Q1NnV1NTRzs3OzMrP0dfY1NDOzcrNzc7T1d3j5G5fWFBOTk1NSkM/Pj4+PkBFTE5QUlFTUk9UUk9PUVFPTk5QVFJQVV5kbuDOyMnHw76/wb7BxcbJzNHi5u5rVFZbUk5WYGhgYWt1bmlwa15ZWldPSkhKQjw6Oz08PkdNVlJQT09TWV5jbXB58OTd2dnf7PDq3trW1dTT3Ont6ezq8vn46drU2NnP0+Fv+ujodmx+6f1rYFVUVVROSEhLTk5LTllbaW5uefTj4O79bmlqXlhXVVFRVlZPU1leZffY09fQzs7MztHg6flaUU1MR0JEREhLS1BYWl143tnV0M3Q1+H3ZFVNSURCQEdLRkVKUVleZmdtcd3Nx8XKzM/X2Njd8vXue2vy3uTy4eh+7urm2dHQztLO0dLV3t7o5ujm29vl4+D8c2xub2BiYVVPU09UU1loY2t94tne8OztfXJqaGBXWlhZTEtOSk9TXWlleeDY2NTR1dvc4+fscF5eWVJPUlNXWlhXV2Do2NDKzM/OztHS2ux8ZmVbUE5QUVZdXFtbV17h09TRzcjGyMfIzdXb3ODt6Oz77uvm5+jj39bQy8XAv7+/wMTJyMvR1tff5+9tcGBdYGNma2VdZWtoaWNgW1dfXmJoamldWlJTWFNLS05PUFFPT1RRVFhYWWz/7dfRzsrNz83T3N3U2+74b11TUk1NUVdn5tfVzMTCwb/AwsjO0drf9G5dUU1OU1NWWVxkX3jb1s3KyMbDw8fExsfKztHY3+Dm+vrw8P/o4drTzMzKysnJxsTHztbf6v1rcmBXUElKT1FQTExMSUtOSktMSklKTU5QV1lYYFxaYF1fXl51afj8ae/t6+n1eXzr3dLMztHQ19PS1NDV2uDo+nFfWE9LTExOUFhgZu/i0svOzszNzM3N1vJ1X1hRUVRXWGDw6N/a1svHx8K+v8PExcXDx8vW7H1qZlxpbGdtYHLl4+Xb09PQ0NPZ7PJwW1ZOSEI/Pj08PD5CRUdKTUtISk5ZYGN6bl5dbXRpc3R+b15ebHT54Oro3uHX1NjPzc7NzcvLx8rNzNDU0tbf6PRwXllTTUtPTUhHTVNc/OLd2tHPz8jGxcPJzNPc6XReYFxZV1VYXmdue+fZ0svHwsHAv8HAxMvS3nBcTUhLSUhFRERFQ0NKTmF6c+zs8PFuZ15PS0hERENEQ0ZIR0hJSUtPUVdaZW5q8+Ht9ffm3d3c3u/7cGX929fZ2t7j6OHi3tLM0dHT0dfi4+Db19ne4O77cGr49GtgXV1mbnBkaHz43tnX1dnYz9DSz9npfntgWWt1XWV9bvLq6+ro5+/t49nc3enx+15XUklGR0NBQkI/Pjw8QEdJTmXn3tbP19rZ4/91eG1VSUpHSk1JS0tKS05fcOLj69jb1M7f2tfi5Ork5HRvXl5dXWB5dP3v4NjU1drW1M/IyszJz9TW2NPX3ujs4uf5bWlaUk5NTVFOTVVf7tnY1tnLx9DMyNDc7GZdVk1JR0NCQEJHSklMTVBmdl5m9fPi3eb3a1tWVlNMTUxHRUZFSk1NT1JUcNnTz87Ozc3Q1tztemxxa15VU01ITlZVWWNybmv34OXs5uHa1djc3uXw7t7m7/H0/OPRzcnKysnLxsHAwMDHzczN1+t2Z19dXWlqZfz7/Ontc2deWlhfZXRvXldWXv1hVk5LS0pKSUdEQD4/REdGSlJj6tvRzcvJzdDJytbb7mpoWlJPS0xMSk9fZnfw5dfNysfDwsPHxsPHztz2ZFZMSUhJR0hLVl5lcnbo187Mx8PBxMnHxsrO2NnT1Nvg2+Pu7Pf53dfW29fP0dLLwLu6vsTCwcXO2G9dZV1ORD49PkBDQ0A9P0dPV1RVWV9meGpbWltfXFdST1JVU1VOTVFXXFtn+NnRzsvMy8jIx8fJz9nj4/liWlJSV1NXY3J3bfLe1tHV083KyMrO0+Lp+2tpY2pqXW5wcvDf1tXPzMfCv8LBwcjM09vnfXBfVVlfYmRq8OLX0M3JxsbIxsjKzNHY3vZpT0pLSUA+PTs8PDo5PD9BRUlHUF9ofOPX29/i6O5u/mRbX1BLTk5PUVRfZWnx29fMysnEwsPGwsTKzdTX4O11VVNXT05MS1BdYl9849HQzcXEw8HAwsXIyMvU2OZwbGFebGNfZHRsaPPk09HOzMzPy8jIyc7U3Ox3aVxXVE9MSUpMTExPU1thYG72a15xfHNdVVdNTk9KRkRKS0lNUVVXV1tdY11gcf1289PT5ODf5vPj4X5+dm5hXGj35efo3dbMz8vJzMzNzdTd4ejq731wa2v++n3u6unc39nMzc3JyMzOy83OztDW2+DudmpfW1pbXmna1NPU0dLVzcfL0NPmbGFcUkpEQj48PDo6Pj8/QkNAQURMVV/g19jSz8/Q0dXb4fRnYFJOS0lJSEhPVFdcX3D06Njb4N3g5Orw3NTd5OT1e2VmbVlXVFBXa19l7uDazsnIwLy9wMDBx8rN0fF7blxcZG1eWFlfWmXz7OXW1dPOzcvJx8bHys7d9XhqX1ZPR0VERU1RUFJUTk5OUFZVUUxEQ0JAQENEQ0ZLS09ZW1hYWFFPV15dYn3079/W1dvQztTY5+337fZfW1hUVWd79+vp7evn3ut7bVtYXGRu6+Lh29fV2NTPz87O0tPR09LPycrKycnMzMvQ2ulgU1JWWFlcXl9r9e7y7Nzh29bV1t3tfvRnXlteXE5LR0RDQ0M/PkBAQkVITFdw8uHd29rXz9nn/F9XTktLR0lIR0pOV2Z6enxrcfzu2tXY3dvZ2dPPz87O2t3c4OtuYF1WUEtLV3N14tnb0s3KycjExsvNzs7Uz87T2OX+d/18bGFdW1tx4+TTy8vJx8fJxcXHztrfblhPS0tLS0hGRERFS05SVFVLR0pMUU9NUFZZXH5sXnF1aWl3/FpNTFVo5OdtYF1y3NDN2+5vdO/4fFtPVWZwcF9RTVt8+H1xdW717Ovl+H7o4NPLycTDxMTFyMjKzM/a39zb087R2N7f6vx6cPfr8OHp4OLl3t3f3Nrn39ba19fX3+La5eLX3+bo63dnWk1JRUE/Pj07Oz0+QEFGS1zg3d3a29ra59vS73FuXWlpW1tbaG5gX258cfDr3dXU1dnZ2N/m2NDY2dru8v9hV1RaXFBPVFJUYnXq2tvZ0s/KyMW/vb+/v8C9vcHK0dvje/3sdmt+8+rf3dzr3dvd2dPLx8nMz9jZ6GdrcGBeWFRXUE1MSUVGREBETVNWYWVWY3Fn8OV5Xl1XT1BPTUpKTEtNXPX6ee3l4une2t7Y2dbOz9v2e2NXV1dcZfXq+/Tw6Oju/Obe393c2NPOzs/S2Nzj49XO0NDV1tXV2t3g921u6ePi2dPR0czMy8jJztDO0dnc3dnW3/F3/PtmYGhlWk9MS05YUklGQ0FCQ0VISkxMT1phcezp6+55denb3Ol3b2ZsdF1faGlfV1dUWF9u+Xdxc3Dw5unp4OV8/O3c19jY5vNuWl1bXF1YWmDu3tnX2NHNysjDv8DBw8TGytHe8nZcWFVRVFlYXGdfZW997ODUy8nJycnDwsnMztDX2tzldVxPSUhIQ0JCQ0RFRUVGS0hGR0xXXGBYVltUVlteXFpZW2Nlb25eZ3V3ePvj6Obj4Njf7HduZFtjY11UVWRnbmtdWlZZX15r7PJxZX3d09bS0M7O0tHNycfJzNHS1+Hrev76amh86+PZ1tfU29jb6uLmfXhnZm5uY2djXV5m8+fu7PB2ZFpiXFxaUlBOTEhIRUhISUxOWFtkbHZ763l77H56aFxZWFFNTE1TTEpPVltt7vHp8/3f4N/V2N/m/O3m6nb6a1NUVFlhX1ldWF9ofvT47era18zKzc3LyMvOzMzP2uXj+Hps/Or87+34+Hl18Pju2tXb1szHx8jKzNDb2973b1xVTURAPj07Ozw9Pj5ESUtUXmFsceba19jZ29rY7fV5dP5jXFhbX15fam15eeTX2eTz83dkWFRXV1hXW19hZGNt8vt5enTp29rVz9jc5fPj3+ni3drRztLSzs7N1tXP3N/i6u3p4ubk7Pf59Ofl4NjT0M/O09DNzc/Tz9LX4X5ram5kaVxXWFtZWFBISktKTEtISklHR0dIS01MU1dceN7U1tXX3dnU09TU09jX2t/v8O94ZGBwb3Xl3dvY2dnc3OLo+PFnUVdUUFhVVlhZW2Dp1tTY18/OzMfFwb6+wcfN1dbV2/Rtc2RkYl1eXWj4+fHf19LNzc3LzdbRz9jW193Y1tnl+XBuW1JRT05IRkVERUZITE9SVF1kbO/q493a2OX6c3x4d2BWTklFSk1RXFxm/Obn3drX0tPNy8rHyc/a4OxtZGJcW1paXGh6/eLa0dPU19vb29vpd/t6cO/s3tnf4+LZ3NrY1NDb3dnT09be4On66drd3eN97+/o5vB6eu/17PD89nt2d2lXSkZGRkZISk5LTEpNVVVeU1FgX273+nBubm3639nq7vTv4d7Y3/vjdlt383heV1hOTk9VWF5fX2/t5vX2497c1t7b2Nvj2dLnfXhbXG7j6fDd18/Nx8HCxs/RztLY5/BfUEhCRUxLSlBe7d7c19DQzMjHw8TIyMjP4/ppW11aVk5JRT48PUBBQ0tMS09UWltdV09VUl5+7vttcHl+buvc6/huY2xofn1uZ1xaVmnu8ejj6uPa3djU3eb6ZWBeWldPSUZJS0tSW2Rv8+vy593V0MzHx8bBwMLEx9Hj73VnXWhsZ2Bta3bj2NTU29za3u9ybWtYT05OTlVhXl5r7uPa1dTd5vDvbVtZUkxHRkhDP0BAREA/RkxRXHLt29nUzMvMztPmfXlfUldeXFpiZGBxfPjw5N3e4uLb3Ov0Z11uZWBy8H165eHj3d3t7N7temv4+mRmdOvq5N/c19DV2NLT0tHQz87P0tvd2drpevb6cG336ujZ09DQy8jJyMjM1d/ta15TRz88Ojg5Oz0/QklMVG/s3trT1dva1tXc5+f7dXlhYWdeT05PVFddcfjf1dPX2tTX3Nvj/G9pW1ReYFdWVltfc+bV0M/X597T2e50+/X8fu3c2dfRzMnIyMrJy9bh6t/lb11UWVxUTlBe/nl87vPp19bPyMPByM3Mzs/R0tbk6m1q/2taXFZQUFJWVU9OTElMS0Q/Pj8/REpSW3fj2tHOxsPDw8XJzdHa6PNwXltRSkhISUxQXG9rb/rq5drQ0NHT2tzh4/VlXVRUUlNQTllWWPLVzcrGxMPFxsXLzs/V2uLme/3n6OjqfHP06OXc4Obme3v46N7f6P10dvbf3dzi5d3d2t3pdHl0YGJhWltVTkxPU1RTU1lbXmJp+ezd3tzZ7GxeWVZTUU5OT1Fdb/Hy9eTYzsnGxcvO0+j3clxSS0hIS05RWV1hWl165Nra1tXY1NTQ0tHX5efr+XJtb/7n7Ovo3c/T0MzO0NHW3uTi6XRjX1xgam58fv3t3NHPzs7T1drg6GhcUEpHRkVER0dEQUFHTVRXWnng4+DV0s/Mzc7Q0dXb3ODd5/v3bWpuZGtfVldWUE9RTU1MUFNXYWNp/PHp29LOysjN0t3i6GtaVVRPTExPVVdaZ3P+3dDJx8bDxMrKzNba4XtpblFKSEdMUFNWV2P13tnSyMjFx8nJ1M3X3drt/GVYUFxaTUhESU1OT0xHRUVHSUtMSUpOV1pTWFxgeNrR1dPOycjM1OXb1M/bampu73pVVWdvW1JUWF1ZU1hbYGBaWlxdVVReamtu7+jp8eHXzsrMz9Tb3uTZ0trf5f93bnVqXWBhW2B86ebs4N/q6/5rdGpeY2tpaW9ta2dscmzx3d7f4uLp8nh3ZVtYUE1LSUpLTU1NUE9PWGhv8efo5+7g1tne4Oh5aWNYXF1YUk1SXGx97+vr3dzf2tLS1tPX39jZ3O56ZVhZWl1dV15cUlZXWF9eX2d2+uXYzszOy8zPz9DT3dzd3dzx7epwXVZZWlNVXV5ea2rz39jR0tTU29jb5OPhd1lbWFRPS0pJSEpJR0hPU1ZibfPr9fXq5eHY1M7P0M7R2drc4e9maWRfY19dXFxfWlFQVFJPT1hnfPb88ujg1c/Pzs7Ky87NzNLc3uDh4t7o+3NqZ2dsanj9+H3y3uPw/vbu7d3b3+Hi7fLveWZeXF1ja/3v3dre5enj6Obc2djc2+N2bmltZl5aVVRQUU5QUUxKSEhOUFRZYffp4t7U0NHR0s3MyszT2ePtfP36+XZlX2NkYl9bWVVTVVpfbuzs7nhnZGh6+f1tcvr78vz66+7r4tnRzszMzMzPzs/Pzs7R2Nve3+v6dWZfWldZVFRbWFVVWFxs+ejc39za2Nvh6fVwX15rcHN7cWJZUlNWV1tbVFJQUlRTVVheX2R85N/Y0tTZ4ebi39/f6Oru7fVseXpzZF5r+vp7+m5kXF526uDa2dja2dfb4/N6Z1laYGdmbm5nXlxhY2X/6+nk3tnX1tTT0dTUzsrJysrQ3vD9bmdrZ19aVlxnbHZ2cGxleezy7ur2al5jbG50eXZ0a2ReV09KR0ZERUlLTVJdX2Pw3NPMx8bIy8zO0NPa4/htYF9obmxuXlBRVVdXW19fY2d0fPbs7fPw6OXf3uLf5Pf56+Tk5uXj3uPk4+zq7Xlva2l47+be3Ov98ezn4N3g6nptZWFmY11dZGvv3NfV09ne29bZ3eDf5vb7+3dsZ15UUk9OTk1PUE5JR0pLTVRdam1taXrt4N3g5eji2tjU0NHZ4dvX2Nrd4PZzamVcWldPUVZaZGtz/Pt+bXr0+fns2tnb293l7e1+dm9tenvu4eDe8Pjm3NbTzc3P1dra3+D0ZVpSUVJVXWFjXV5mbvx4evT4eWpqZWpraHjr397e29zg8HdsYlxVUU5NTEtNUFZfZGp69ejd0s7O1t7h6vDs4+Pm7Pf9enZyaFxYVlNTV1tkbW3w397i3uDk6+rk7Pv39f548+3v7ufk5+jp6evt7e3s8P57d2xo/e559+fq6ebl5/htamhkefjw4OXl3tnd4OL6bmZiZV9oc2tlam9qaW5ta2RgW1dTTk9OTlBSVFNWXmlucO3s5t3g3t/k3+Li39nZ2dfY1dHQ0dTd8W9rd25gYFxbW1xmZGNuaWv88Ojh3Nvc393d9GtlYGRjX2FlZGZmZGhrb3R19efd2dbV19nd4+n1+fb56en07vn66uvv7ev27/j79ffu8vD99+/+cF1WV1JRTk1LSk1QUE9VXVlcbX377uDe3Nja293a293a2NLT0tPX2NbZ6/N5Y2NkX11ZXWNfW15hZGJfX2hw9enp5uTg4+zu7/T//e3u7ezn4+Hh39/g4uzx83x2aWJoZmVmXVtmdPjn2dTR0M3MztLY52RUUE1MTk9PUFVdY234+u7h4OPf3uj4bl1YVVVYW15idPzu6uzs5N7e3d3m5O3+fP94//f68et2bGBcX19kY21xcv3s6vp2dl9fY2lt9+Pc2tra3ODY2NvW0s/T2+Pp+PL7aWxuaXl47uTi3NbZ4ufudGpfW1hWWVZUWWFicf50bGdkbXf46uDb1dra193f3+fv8HtrXlxiXlxjYF1pe/zz6d/c3NnZ6XNiWFBNTUtLTlJUWnDt6uDd4+Pc3+jn6fB9/Xl4cHz48eXe3tfR09XV0NDS1Nnn+HFhXmFjZmhvc3lrbXFoZ2xjaXr5fXr6/mRfbGRganP139XOzc3Nz9XT2N/e4/RyX1ZRU1lbXmZqbnl9fHdvePpuaWliWVRPTU1OUFRYXWJt7On69/n97+nh3NbQ0tfW1t7v93hlX19gXFxeXmj77+fg3t3f4t3i4N/m6Ony/H13bGRfZ3Jvfunr7/J7YltaVVZUWlxn6ubk3dze4N3a2tXQ0M/OzczMzdHZ4+jve2VgW1paV15hZGRbWVROS0xMSUpKS01QVVJQV1ph/NnQzcvLzc/P1eHvcmJjaWtu9+/l39rX2NjZ4e377vR8+nx4c3BxZV1bVVVUUVRZWVhXWllaXFxgav7p5dzU1Nra2Nzn4dnU0s3MzcnHycrLztTd6PR4bWplZGxrbHZtYVpWWFpXWl1ZXF1dXF5ZVVNOUFZbd35+9XVvdG5nanf36ePd3eDa2+jt5/p4b2NjYnDt5trU0tPb4PplWU9LSElJS1NXWFhbXFxgbvHf1M/Pzc3R2N7qe/nv5eDf293a09PQ0NLc5e12cHRuY15w9e/n7HppY2NeYHPv6uLb1tje6WxaUE1SWGJqZXR2cGpreHf6+fj0+ex+aW9wam9sYl5bWVhZYG36597g5efs9PRzaWVeXVxfaG1iWFNLTE1NU1to9+Xd1Nff4N3Z29va3d3e4t7Xzs7NztHW29nb29rc3uHk8mZeWVRSVFlXW2RsfPHr8HhkX11ibnn16uPn8e33++3r4eHe2+Hf2tTT0M3Q1+hsXlJLR0hOU1VbYF5cXWJiYmZiYF1cXFdTUUtGQ0VKTlVbauve2dTOzc3Mzc3N0NHY3NfQzsnGyczV3u15a2VkbvT/+/VwaF9VVVlZV1RXYGVibn1ubWpnd/Dj2tfT09ve29rc3ODj4+1xcPnr4+DX1Njf8W9fVlFQVFteXmhpZ29wcGtlYl5cYGZlamJaV1RPTE5OT1BUXV5id/ns2dXU0dHR0M/NysnJyc7R2fpmX1paX2r78u7q7e3i4Ojq7HFiX15mZF9eW19fXmFoamzv5erl3drd4dvg8X50Z2dv9t/a19TV1Nfd4ut69eDk6+vv/XZpdn1uYllUU09PU1RSUlFUV1RSUE1NT09XaX3z6+LY2Nrc2tnW0szGxcjKzdLZ72xhWllbXGFkYmRnZm336Ob0eXxvb25mYmFeXF9eX15eYW745trUzc7Rz87U2ej273j16erm6vb+/2hjaGZtd/fq5Obe4u/n7GpdV1RTUVNYWFdcXF5fXF5lYF1kcfzt6OHm59/j6urr6N7Uz8/Pzs/Q093s+W9aUlhcWl1fY2BfaGxkXl1dX2tqaGtmZ11aXV5fYF5p++Xb09DSz9LT0Njb3N3f3+jm4Ojo6PT7bGNjW1thanHs6e3j4eP9YmBcWVdaWFZaXV9fX2NdXWhmbe7a1dXX1dfc3O1wevjx6+Dd3d3b19vf4+/4bmZscHpybmNeZWtqY15bW19mYl5kYVxaXm1rZF5cXGBw9ujh5ubk29vm7ujf5/Lk3dnX3OXn63xlX2FfXmr659/h393h/3J+ffxtZWFZWFNSVFVVUldaWV927PHo2tvX09ne4t7b19bS09TPztHU1Nff6/V99PPseGhnXFpTT01LTU9WVFJUU1dYWmV393x0dfXl39ze3N/e2uPx+fr17uzt7Obh2+Dl4+z4bGRgXl9ia2doevP9YVtbXmVtY1tgX1xgZ2VfWVdZV1xoe+ng493Szc/Z29bX1tHOz8/R09DT2dzh6vN2/+7o7P5scf1uX1tYVlNVWlZRVlNUVltdYG1ta27p397Y19zZ29/ycG12b33/a2317fTz6+r5//x1b3pzbG9qZnn28WdeYWZhYmBbXl5aXFxfWVBQUk9TXmh97vHm2tvc5uPV1NbOy8vLy83P1Nbd6u32cXjs7n5xdft4bW5oZWljXmNsZ2dudGlfYWJfXWJu/Ovn5Nva3+bt+Hl9+vDy//nw5ODk7ezq9XhufvtybWpob3RvbmFYU09NTUxNV1pbXl9gXltaWlppevfi3t/b293d4ubd3d3d3NfQ0tPT1tfa3+H0fvf4d3hxde7w/G5nZWJaXGdt+OTn6uz4dWhiZ15kee/n5OHh3eDm5eTa3N/e3+Dk4ep8bXv4ffxwZGFlY2JjbHf39v1yaWBWTlFTVFlfXFRSUk1MTUtMUl9p/OPe3Nvd3d3W09TW19TT0tLX29zY2dvb4O3y6u717eXm7nNkXFdUU1Fcb/jn6u/493ZoYl5fZXrl6ujl5+Xq6ODc19XW2NLP0NDV297Z2uHufF5TT1RQUlVXV1JTUVFVVlVXZvb093tuX11aVVNRT1JbZXjy7uLo+ejg2dbb3t7h3t3f39rc2tri4e188PH35tza3e1tYldUV1xicvLt8m9xdG1xY1pcaXzt3tjZ3+Xm8vbq5ePe29va09HX3NvW1NLT2+t9d21rdv5rXlpXUE1RU1FVWWZsZF5bV1RUUU5NSkxQU1pic35ydvr46dnZ1tDSzsvLy87P0Nje4/hmcm9haH3p9WpsZlhZW1hg/vDq7+vr//Xn+GxoY2V49urh4Nrf6ePn7Ofu8+Ha1tHU1dbf4t7k5Ot3cHFrav31eF5WV1JUV1heYnX79vr3cmJiXlxZV1VOTk9PU15hXF5cYWps9uff1dHPzczMztPa29/r5/v58HT683x3ZlleX1dZaPjn5uXe3uDd6PD6Yl1jZG16/u7wffX6e/Z8b3vo29TRzs3R09jd3Nzh5Obs6+nq92ddWlNRUVJUVFlgX2NpY19fWFRVV1RPTlNZXWt99Ojq7ujt6OHe18/U0c7S1Njb3OPr9/1wdXFjY1xeY11cWFdXWWN57/no4OPe3drc4fdhZGx+7eXh7fft7vpve3Bx6dzU0s3N1Njb2NjX3Hx7fXRrY19YU1JSUU9TWFxgZGdsbndtYGBfXl1WT1BWW1tcZ3P+/X777Obh1tTU0M7P0NbZ19na3vF2+er0amFqbWduaF5gXFphYnJ9e/Ls+evb2uV7a2xv9eh+bf5zbXJsamtob/j63NHR09bV1dfX1Njr8O3r7GtpaV5cWFFTV1FPVFZfYmNrYl9gXllVU05PU1ZWTVdnYmn+5uPe2dPP0s3Nzs7S1dLP1d/f3uDn7vlkanlwfHBoY15YVVlaaW9qb27z3+Lv/fn89vfr7Hz26+3n3+nv5vL56d3b3eDa29/X2N3e3+LofWxrWlVZT09ZVFJVVVxdZnpwYWxnXWVeWFdTVlVOT1JQVFxk/uPn4dvc1dPQ0NXb2tvc1Nje2NnY2+Hi7Hd5fGx+8nBtbGdrbPfybWlxd/nj3eTl497zcfN8bWZpdWx0bmxpbPbp3NjX19jS0dTU1tfb2+f28XhoXVhZV1RSVVVVWFhdV1BRT09OT1FQUVRXT1BVVVpec+7p2dja1c/Nz87O0tfZ19rc297j4+Hp+3R8aV9nbnJvbmVfZGRgY2xqa/Xk3dfW0tPX2+Xu+f16fPZ8/f5zbHHq5+nj297l3eXk3+Ph8OvqfWZrbltaWFhfWlxeX2pjWFhbVVFVVVpcWGBbWllQT1FXWWZxfObr3tXT0dHU19vj4uXq4N7f2NrY1+Dr7PJ3cGht+nNwc21rYFxcXWJ29evc2dvZ297ldmlsdndwb25ua27v4NjZ3NfT1dPX2NfZ29nT193qenVoXFVUWFVTVlxaV1NPTk5NTk9OUVBNT1lTT1FUWV9t7u7f2tnRzMvLztHV2+Ld3ePd3dnW1NTa6/F8aGduZHn9aWphW15bVlpncuvi3dPZ19be4uh8eu/2+Ot79vNt9+bf2+Hl3t3c297f2Nza1t3h7HBuZVtYWlhXWVZaXF5bVFFXV1ZYWVVYWlZVUlJUUE9SV11sc27u29bQzc3W3d/h4NzW1tPPz8/R1NXja2ZzaWdtbXBmYmhgXVtZY3T349zd1tXe4OLt8vxsaWl3e2RoevHp49rf4uTb2dzW1tbU09LX1dje8GtmZG1lWFZTVFZUUk5OTE1QUFBNUFFNTk1WWFJTU1heenFx5t/SzszLz9DT2tvW1NTQ1NbU2dfb9GlaWFpZWVlaWVtZXGBcaX7v3tjTzszOz9Pa2d7p73d1fGlodXPu3+Tj5PHv5+Xi5+fi6fDu7untc3BtYmt8bWZkZm14aWhiXVxbXlxYWVhQTk9OVFdSTk1RVVVYXW7559nY1tXY4N7b3tvT0tLU1dPW2eH7amVeXV1dZWhlZGBnb33s29na09DP1dbW3+zp9WReXVJUWFpq8OHe49zb3tvU1tnY19LW3Nrg7+nvdHz4evhrX19fYFlRUlRRVVZRUE1MTUpLT09SWlVQU1VZXGN839LNzs/O0NjW2NnW0tHT2Nnc4+rxbF9hXllUVVlcXl1ZW2Jq/uTd1tbSz9PSz9LW3+r7aVpXVVZfZ+7c3drd5d3c3dvc4t7l7+zw9fhrbXxwefH9cm1ndn1yeGVeZV9cW1xVUU9MTlBUV09OS0hMUFJZaPTe2tfU1NXW2trY1tPT19jf3tjk+e79efppZV9fY1xaX2Vo/Off2dvV1Nra3N7Z23dlX1xaU1NZX2745+LZ29nV19PR09HT3uDn7efteP7z7uju9/1vaF5dXlxYXV1WVVBSUUxMTU5PUlFOTEpMTE1WXm7s4tvY2NTS09HP08/O0NLX09ri4O58ffhuY11gbF9gaWFhanHy6N/c3NrX2NrU2ODnbG10ZmNibHj7+uTe39nc3dbY29ni7PZm/fVqb/hu9up68Xl78Wdo8vxu/2tnbVtcVk5RT0xQTktNTElLSklNTVFbWW3t7NnW187Mzc3Q19TZ29nc3t3h5+Hr7O5y8/9t6+zw5+746+Ph4uTj3ebm5fx8Z15mYF5mamt1bHLp4drW0c/OztDT2t3l6fJxbnh2//768vn1emxuaF9fYFxcV1ZWUE1NT05OS0pMS05OTVJVVldWWGpv+9vV1c7NzMzU1dfb1tff29zl5O3/9W96fGVl9vT76fHj3Obe39/Y3drX2uLn6Onsc2Z4d3lqW2h3dvjo3NPU3N7l7fxnc/l4ZG/p7PB79enq4O3u3eTze/ru+G9jXVZPT0xLSklHRElMSktMTU9OTU5WXWV73dLNzM3P0NLa29nY1Nfb1dTb3unu5Ofxferk8PPg2Nvb3Oje4Pj/ffh5ZGj8+2xmZ2JgX15caers38/Mzc/R2Nnc7Ojk4ur27eTl9HV2eHp+9Px5dmRjbmtqZVtRT09LS0tJR0VJS0xQT1JQUlZaXmru6t/W09DQ0dbc3t3f4N7c6Ofn6uV2evX/8XTw7ejg3tfTz9DW0tzr4OXr6Ozz5t/0531dZmFbWWJ28uXk2tvb2urxcGv16ufk3uDY4nDteHf9/nrn3e/n5H7m5PRxXlNMT01JSUhHR0lHR0pKTElJTVhfZ/zt3tPR0dDQ3t7Z29ne2NrV2e3h5+zd83nv3+fm2ejfztHX1tvw/3dsYFtoYm55c+D+dPhbW13uaPnZ69XO1dDe4Ol5efne9OXX3uX3+Ghhalxle/N4+f5z7PV7elpeVFRLS0xDSUpGSkhKTE1MSlpXXv5869rQ1dbS3dzY2eHg4OHd5/D8ZvVrYvvx3uLf4Orc1c/PzdDZ0tnf63VvbPNteeft4H1ebHJsafbw69jb1dfe3eL3cHrq5+nc2efs6XttZ2lhbOf2d3De4nDk7Xp1Z1ZPVEpFRkZIR0VFREZEREZKT1JabtvW2tXb1trh39HQ3tnO0dba2u9t9PZu5NXc5trY3dvO0tvO0t7e0Hxb+VtTcGxj8O1beftRceNl59Pc087c1db03dp45dfr5N7c325u91xb8V9f6PxjaObsbGzpbljzXUtPT0JAUEpBS0xFSkpFUFxOat1t3M7v39X36Nje1NDq2c/k3+b3+WNt6nrkzeLv193f2MvO3tbJ1+rN4Fp68VRY5HFZaGZQV2xp5N1v3c7z3c5w99VyeNbo187639RrcetubWF+1O150G1f1uhmauPoW1lfTEZMRUFGSUZCSEs+RU9KVGVv9+fV4n3g4Wfj2N7Wz8vV183kfdJ2V+Df5dzV0+35ztxnzMz818fhaN/fWFjuZFro4lNV/WVQ+NP4dsvPaNXMbmbP3lveyuLezeRf4exXXOxeYd/vbPPnc2n7eVl032BYalRETVFBQVZPPktbQUBeWkRi2Glozd9X7c9dWsvQbM7C3t7I5V/d21X9zeHtzNHpzcrm2sfW3cvL39rWZWHj+lJ82lZQdltNefBYfszvbNHiW2vcXWvQ3fnMyOff0vlf5fhZ6tZuZtjoXujbXmLfY1fg50pYcUdCWlA/TFg+PVJFPVJuSFPS8l/U11VwzHJfx8p+y8D4d8nhUN3RW/jD2m3HyP3LwvDewtb+y8xj689hVNrqTuvQTkzUb0vfzVx7wtpSz9JKX81mU8jPXczIWnfIdkzW407g0FBZ0F9J0uxEdthJV9VOSN9RPVxdPExvPTtnRjpidj9dylNVyO1K1s1O9sLna8HPTtbHUFzJYE7IzlTPv3ncvdVwv8dpyMBm3sJhV8t0StXaRVzWTVLNak7MzVjeylNY0V9L2tVY3Md7acjaXdDYTvbKX1fL+kzV2Uhl1U5Q1GBJ2+dGU29CRWVKPE1KOUhZP0PsX0nh203zzV5by9dkyMdg1cZsY8r4TNXVV9/Kcd/B0HrJynHOxPzfwttmzNpO3NJRXNdXS9zoS3vPX2TL7FDa4E1r2F9wyNBr1Mn+68npX9HTXuPMX2TQbU50cEtY4VtR3PRPbG1FTG1GQFVMPklVQEFYUEp08lFq2Wpp19xtzsxy58zxX9fiU+fRWmPL5F3LxnXcxOL2x87yzcTi4MnmXNXWVmXbWlDkdE712Vpt0HpS4uhRatVgaMjWas/LbujM/W/N1F7ezF5c1G9LX2pJWONZU9/1UWjxTE5ySj9RUD5IVj4/U01GY+xNW9RuWtDPaNbJevrQ51rr7E9l0G5Z0M9d18hy6cXRc8vD4tvC0G7PzWXwy3BT4dxSXeRbVdzmT+zOVFXQfE3fzlv2yuZgzc1U7ct8+cbYW9LMWWjVWEvteEtk1VdW0HZIbeRMSmlMPUxcPz1PRzxOaURM3G1N39Fj3sLgY8zOUvDQU07T4VfZzWb0xNFb1cXn38LPbcnDfuTE5GLNzlFp0lpQ2fhIbc5TVdJ7VdvZUGjRfF/QzmPjxnxZ1d9X1Mbt78nRX+bOVU/Ud0Zp10tO1WpFZtxNRfVVO053PTxfRjlMZkJI2HRL4MxZYsLWWs3IZ2vOckfpz1FcyORPzMdf5cHXaMXEadi+2mDGyWLbwPhQz9dNac5ZRt/ZSFvL/FHX0U1eyPVO0MlYYsfqTN7OUffE5F3HxV11xmtO3udGVdFWSdzcS1rSWkRjXD5FZEM5TFE6P2ROQW7dTFrO6FfOyWTnw+dU1dxJWNBuU8/LZuHB2/vExHrcw9jtx8rv3cXV/MvQXHjVW1DqZUpq3ldgzdtb3dFTWs//VNXOaOrL6VTl4Fhp0eZszM1w4M/+VfNgSFnzVE/ibUx+31JR8U1BUlI8Pkw+Ok5YRlbjXFHe3VnqyuNf08tk+NFdSfvuS2TPfV3MyvTOwNjswsnmx77W3cbU5MTF/OLL+1XndEZTe1JW1Ndi29NYWtX1U9/SXHLK2GDY21Nm0fxjzM132Mr5ctHtS2HbVVXbdU5o61Bp3lVHWlE9Pkk9O0lIQVV1TFPkYVHo2W3ny/Ngz9FTXdpXTd3kU/TI6PDGyejNwtnawcrmzMj79MfTftDYVmXfU0RZVkZd2WNmytFa6dBsY9ToWeXTa/XM+Vnd2lr4z+92zdNh5c5+X9l7TfzjTlDvXEpr9k1Te04/TEo4PlBDQFxcSmPYYVvR2Vzq0GRqzexS7t1TXNt9VeXbatvG4OzFzN/Fvs7MvtB3z8vl3cnkY9DjTWX4S0Z1ek5r2G1w099Z2sxgWd51UtnbT2fPa03Y1FrhyuN6zddb285cX9HhVPrmSlDcWEVuZkNLXEA7S0Q6SFY9RvRSS9reWuzM/1vV31zj4FNlzu1W49Jj+MfXeMjI+c++z9a+xN/LyGLtxeVU0tVf9dhZUPVcTX7gWGfM2mzNyPnmyP5Tz9JZ88t+W8vUUefJYWrF30/X2FJt1WVU2fxMbXFJTt9PQ2xgQVBcPz5aTDpIZENG63VW1c5q5ct4W9X4UXT0TVrXX0vk4V7uy35nzddsycHTzrvHeMfGbejK7V7O0Wrdz1xa219LdPBMd877fMvPXurUWl/U9FfY2F3uzPhY1ddn49JqZtXlVe3VX3PdY1ntYUxmZkdKYE9AUFA9RlU/PFNRQVTfYFrU317ZzWrxy+xX3dxb799ba83gaM7OXu7L4HfHx+rLweXvxtBZ+9NeatLrXdrgU2/fZFDx/V/S0+7VynFmzuVpz81t6cbcYNDSWG/Q/FLm8U5ed1RQ73BMZ/BOVu9bTG9aSVxmSUZeT0NTTkBMZ0pL2O5R8NVaZc7fXtjVVWDdW01tZlB722X/1uli2NLz1cfY1sHI2sPE7tzI33XO0Wzoy/xgz+hRcd9aYNj7Xe3pWHbP5GPNyf7cyeJwy9tb2s5kXthtTXjvTFjmTkveck5k6lhX/lFLV1ZBSFlHQFBOP0tlTUrlYEZ21VpoydlqysVl9MlgTdrfVePMZHjS62XT1WLfzezmxsvo0czs38nfXNfVW/3O6nHV707ozlte0fVS591f2svn4cPJ4czMfXvO31vc11FT51FGZ1lETmRKTe1hSuzZT2HWYkxyXUZZZklJY01DXnNLUepUS+7qVebJ5vbKz2rl5k5b21tS19pOds5rY8viT9rG7uHBzdvEyeHKx//xyttn1c5kbtddVNt1SWzuS1LlX1XVzWvYvtX8yM5c28b3ds77U3zqTFX3SkVmXUdf6kxl2F1Z2XdIXGtJSmRJPlZXPUxmR0t0Tknb/E7gx93iwMv4ztZX+c1fXs/5Ud/XV3bOaVPb3VnfyOvgwtXcxM1e2cph+cnjV9jbT+rOW1XU9k3m1ln3yODmv8Xdzcdz78jdXNXfTlrmS0f8Tj1QWD9L+01M3u5V4NFUXtZbTedqQ1RwQ0p7TUt3YUhh4VRk1W11xs9g0c1OZ9JTTtn8RnHSUmjOdFLd3lfaxu7XvcrRvsDczMXg2MXdbc7dTG7TUVLaVEXp7Epfz2NnyNblw8xo08pj3sV5YMr4S97hRlP3QkTtUkLv+Ep7105W11RH515BXmo+RmRAP29PP3DsR27PW1/G0m3Dw27VxF5XzvRQ3eNOd91RXdtXTeR3Ud3RaNnB3ePEznvL0PHIynrOzljwyl9Zy/RN1NZN68xm7MPZ3sDRbs7ZVt/TXfXVVU74VkNbVD9NV0BP305N0ndO1udQ29ZObdRMTuhKRX1XQW/zRGzdR1/OWWjD23DG6FHTeUTx5Uhu0UxgzFhU0mhSzdpdxsdzycDozsB65MD5ZcTdWc/nS9nYSunXSWbRTVfIY1bD023CxmLQyU/4xWTww2hTz1lD61c+bmo/bN1HZdBMVNBQSthcQfxoPVX8PUfrREXcUUXOcUXN2UzKvmjMvF54xVNPzGhQzm5Jz+1F2uJD/NBL5sFc9L7kcL/VVsXSSMzIVdLEVXu/bl6/2VLM6E7MzU/Mv17QvmzfwFRXyGNWxm1J1mg9aWI7WV46UOhCTs1QTMxWRc1kQNrsP2nbP1jVRlTUTE7RUkfRX0jO207JxVPXzEle1klVzE1IzVxJyOtKzs9O2MNg0L7007vX5MDcVcfhTsfRTNLPTNnLTeXITFvLTkzGdE7B0lfFyFTYyE3iw1Z3xVxPz1pF3F1A62I/Y+pHXONOV/dGSXZLSm1QRGtdQ1vnTVreVVnXalfW3mjMy+zJzFna0k1011Vg2lZa2FlZ2VpT3OdY3NJr2sro687tcdn6a9nc89fc78/P3dPS6d3a5eHe5urP1NvP0unf9Vtp5llo51tm4WJRZVVKW1dPWFRRXnFaW/hdWmNTWF9aWWJbUmlhY/JtYPT1X2zvXnTm/enS1/bd9lNpYFVmbFti7PV77m7u2N7l2tbh3NPZ2dbi3tfb393g3t/u9fHn4eXq4uDo3t757Ofr4Nrb3tbQ5vTl5+3f53Lo5Hf5+19bZWpiY1pTVFVNSUpLTlBOUlhUVVROUVNRVWZpYG/o3+vr29/Z1Nja1dDc7en2Zmd6YV93cmlzbF1gaW/67/vw6er9eHdoceve2tTS0tPY3NPVztba3t3W3tTS1tXSz9HQ1uDe5mtveWhtZ2BcZ3NfWV5WVF5fZF9aWFdPTU1LUllaXGR+/WdeXF1dW2r0cWx67P3t/HDr3+Xy5d74a2BZXWNdXmRlZ252+/P+6ePZ2tff3tfndfX8b/fe2tjPzdTT2+zx6enn5/B76+p13unp29PT1dHj3OR66era2vngd/rsYOt5X/16eHFtYU9QSkRAQUdJTU5PbF1VX1NPUVVgbOtu8ODf1+nX0dnM39rZ8+BlaHlnbnh6bF9qaG9nZW3u43x56WVfa1lTVltp7dzY0NDNydvV0NPL1s/Y2s/k2tDc2dTP0dfc7uj1X2Jt5HD68k9u9lxUZW1dcPldaGZXT0pLSUZNT1JfXWtgW1plWVt9+vrt2txx4+D98tzm7+HfZGNhVFhUYWVdaWNhaG7ybPXm09rj3uPsd2t5XWN1a3zd1trXz9rf29bW1dLX2dna6eTy6OPf6trT5erlfW7o2+fd1udv6OFwd+fk7+XubV9bU0pFQ0NEQUhJTE1OTklMUE9Qau313s/W3tPR19PO0NDP1N7pfmVhZmZgbGVnYmVjW2psbuPxZfppWVhiV1BZZFvq3OLZ0dLPyczJwcnHxcnMy87X2eLd19ri5el6cGFodmp99HNnaGtVWGljXfvn/Wr6YE9ZVUpNTU1PVFddVUtRVE1PWWD94NvZ1tXS1eLf2t3h5nx2cmhdWFVUW2FSYWRra/Xr997O1/Dg+G31b2ddWHzc/Hbk4d/j5P7e0NPPz87K0tHV2ut34e/v5PP97uf1eN7X5eve6Nz2YfN2/tzv9t7sa11aT0hIQ0JGRUtKSEZGSEBFSERTbO7VzszMxcbNzcrOzdTq5Nzj62lWW1pYVVlWTVZdXG108+T2d1xkYF9dS01gX2x28t/Z2N3QzczLxsnFwMnHxM7f1Nb06HhpbW38a2Rt+HtkaO5lWGdXVmpwfenf5un5bWpnTUlSTExXVEhOUkZHS01OUF9y6NTKzNHPzNbaz9hleO5sX2FkUFFQTldUYPVgXvzd5NnO2Onb3fdtXFlaVmhgYOzi6ezk2djNzMnJy8jMzMrO1tfe4GRiemhv8mr54uX97+b7+Xxnbmxe8eDj3dHg+N9aSElLRkFMTEdPR0ZIQEhBRVRTevDPycvCxMPIzNHc3dvs7O5z/F5eXU9TWE5XW11cet7p2tbs4PVXWVJST1tVV+tr69rb1tvIzc+9zL+90LvMyr5nvUvl40XZR9tKbFz2ZephbWRP4knjTdVp4s/ry/bfZlFcTE1OS1NMU1JTTU5KSFBMVF9559zN0tXG39LYWtBZ9N9Nz0LjWE36R+RL6VrkdtPfydTQyerOU9lIXVdMY0xmXGPqaure2c3UyczKysTJyMbPzdznbGJ7Wlz6VN7xZ8tU2HdgzkPKVOrafcppzPrZUmpHWkBSTkRNP/I7VURBTUBWSFLtVdTS1cfJxcrJ0NLb3ePpfmdpYl5PVU5eT1drV+xs3dJu381N3fBB0ENI2zvWSlDBP8L+37phttXBwsy40sDIxM3N/NNddFlTXUnrUttbbFxoaF9pX+ll3erp7dfW+PlkXmFIW2E8dFBB2DxQaTzOPFbdPL9H0cpLuFq//ubITtZX51hw7uZM5Ev5Xk7RS8ljyN/N1ePLZc5PcWZI5T9TUkTdTV/pWdDh68TvysP3u9fPvdzEy2zH61DDQ9jcR7pH289EvkdvzD28T+nHP75G2uA/xDxjVDrXNFdSOdY030VL3j3SSd7lcsvqx9HGz8zJ88to2+Ne3fDxblVdXktwVlnmV9r5WttqXNVE4m89yTtsZjrIQH3OQ7phzbxUs+3EulezXb68TbNIyds8vTnSXUXBOslNUtc/0Erw9mzVXNftz27U/fndSt9DXVFC4z1cUEDaPPdbP8g9z2xKvEm96Ou/UclW3ntf2GfTZNpa4FVX603VVdnaV8pTzd5Ox0TdVz/JOPdQPso5y1thxla+9svNzsfgxc/A1sLQ2MxazFXk7GDGTs/mT8hA02lEwj/Hb0m+P8FaXclAzkdbTj9UPVBASklRSU5fTmtN111303y/4sjHd8Vq98lLztpQv0vc2ULXSFV5SlzdWFjVUO3xT95eTN9PT9tC5HhFxFHnxlO91ua6Y73CXbPwwr5ju2P8z2Ny3F9mzk7w50L5UUPaRlHKQ9PZSrxR8L1Ax+FIvTvz3jXFOFDlMsg6WuE3xEFq00O8UsrJULxByOVFuz7E5Uu7Rc/nSc5MV9FO2txKwkztzj/DQ2nUO8FBX+A8xj7s6EW9QMbST7VGvcVzs1+9v3e+597EXsrKT71O4887wD9P2Tm/QV7IPMBBeso7vD7U0Dy7N9tMO9Mw3T5K4jvKQt3kT71Nv9Hst0q6a+DCQrpKzdhPwj7QWFbYPM5HWtVAxD/g/T/JPstXWsxNxk3i91jZStBm09pfv1vGyXu398DAaLt9z8xlyv3dct5sWfE+6EtD4DrhUEbFRtrOSsRsa8Nw3sZy9dRFcWc4/UM+6jpUdzruYE7JV+TFW9nMTMvcTr9ZbcRHz+lIy01byE701k/K2knFYFHGRXDLRs7PQsZaP8A9T8o4zNxAu0huuETAw1i02uG1a9C7Vb/ESLv6Tb49bsw0yU08vzvnzjm9Wka7P9XLPLhaULw5z2E2yTZSZTjPP2hvSshMx9zdvVi77mS7RcLdTLhF6cs8w0hEwzrcaUG9P9rYQcNB5fxDy0bQbVvCRM1XVMc9yGJnwUPE1l3Abs3C/cPL8Mff2s/t1/LiXGjxQmxGS2A65EhV3UHEalu/XczKX7/c/8hg+3dNU0xNQVRLPXU/W19Aykzf0lO8U/vHTM71V8prZ9H7YNlgWt9Va9l0fdPQYdDaVtJgTNZqRthqSNpaS9xOStxRTdRcYMth2MbtycTOzMXMz8XM2cLTW77nTc5OSHZAROFDSc9KVcVP2MJIxNNEv3JLx0NSzTpZZjvrP0LUPmXcRcZ8b7lsz7tUzMxMwXBTw1Z2z0Xw3zvzXT/SR1rEP9fIQsRfUMY+7NBAz2RUx0fa2krKTHHOScty6sdawdLUxHy+7d3CXcTybcVO691F4UZFeDpiVEfWSdba9cb8wtDzwV7K7FPGSl97P35EP2c5UFE/2kb800zH+t7HWcvy489Wynve3FjIWGTSTer5Vc39XMniaM77b9pTZOhNVftSY3RMelxMb1JiV1XPbWrJ2NrG1sy+7M2+/cnBbMXLW9TdU2F4SktgRkx7Rk/ObFfG0VvL11TR7EzR9EfgaEJWVT1SUT1ndkfiyl7SwnzVxnJ7xF5hxl9Yyl5Yz1VP1lpH22FL2mlOz+lUzuRO5txJatFL7dNP3s9KZs9MTctQWb9T+L1i37tn8btV27xKz8VB0dxC0VdC2ElA1kVL0j/g0ku/1OC8asjFTsjvXMtL7vpEakRHSj5cQk/xR9ZeXMNQ1NNOwmxexVjrz1bezV/xyV16xlftylPozl5tyHNNzVdH3EtO3k9o6FD8U0bjSEfPTm7MZM/Z78fnzcpvwM3pvtrQyX7R7/7dWtpVTtZGZmBE20ptzU/K41PGV1rOUnnPXGHdSUvuPkd3QVjoVmfQ3WDL01LNz17d1277799oattabtdZb2X0ZkjXXknI7FLN8E3t9Uxg0V5cxedYyt1I3t1D68hN6cJXZL55Ur7xTbzvTb7qS8LdScvqSct8StdnSPVqSPLpVs/deMzj4OBl0vplyW5V4E5MUEZLR1NYSWh8S/jYUmXRdGbN4lXP21DNzE7TwFrpv2tzv2JOxXhKxN5BzOg82ng83+FC081E4dtFa3VJc95X7thd095eymzpxV/NynDF1/bC4WzH6WLNYVbPVE/kTU7gWVXaZlTddlXd91jV/v/TUOluROlMS+tKYuRMfdBSdc9R581S5NBP7M9c5c1i5st7585s8dFWbv1U01ZW1Ulv90fwZUvf3V3L0FjM3U3Y9FDW5k/k4Vfd31bj3lvU1mPQ7PXKW9HNXMzgZtV4ZdhoUeJbWNhY/dVQ6tZWcdprb87ua9D+UftsR1TvSkzdVEntZU1u71xh3vVc4dx63d3U2/rN2W3PzuvfzXl02F1Z+VpHXGRDV3RJY9ZlcdDwXv/pXFfc+FPs3GtX7NpTbdB6c9DP7s/E2+DL0F/ZyU1nyVpT2vRNbfJKXepKT+FRSt9rTtvUX+vO8W3kbl1faGVYaN5oT9rqQt7RSGXRYlXM1FrU01zazVRpy2JXz+Vb4udSW2lWUFVYT09Z/2d6x/VlvtdQ0c5VXc1dTs3sStzmRW/PSXXFVfy/3PnF3lfN2EfZykj0xU1exk9XyUtPylBLylZHzWRVymVgyXdX1ftM5e5L53dF2vw/9vM/d99H485Q0sBb+L5dV8JtTsXTU8jLTdLIRV/MSknbUUD+XkTa20fOy0vSzUb7y0poy0twyUpezEpT2FNox+3bus3jvdxgxV9Lz1tOynBLz+xD6OBCaN1AW9lCVMdUTcXcTcfLT87bTM/dStPVSd/RR2/XQV7SQmW+V3LBbWnQV13aTk/MXlDHfE7G+EXM5kPZ6kF75Uju21fOzFnKwkrkw0piwk1YyVlM02NBd3Y+ZsxO379g2b5WecROTcdmTcT0TcdhSsv1Rs3fRs7tSc3tSsvWS8/KSfHNSmLRTl/YSVPPTknRTkDcVkrK21fBy1DF0EzP3ErOz1LJzErYzEnt0Up320Jl2EFV109W12pY02VO0GtNzdhM2ctP7s5JattEZ89W7MHb5r/RaMjsStjpR9jQR2faSF3ZRmnWQmTPR1PKUVHGaF6/YlrBYEvE1kzM1UvPzkfczj5bzEFOx1VSxfVQx/xGzn0/3tJIe81JaMdNWsJWTML0Rs3gRdPPSs/ITNbESmbAVFHFWE3GXEnIWz3a9z501Eh4xlXmv1tgwl9LyNxKztJE3NBD4chJ+cNdWcbqTs3eSsvVSM7LQ3vHTFPKT0zNXErMbUHX5z33zUNuxFHtwVRuwmFPxtJLzMtH1ctI6slGXsZOS8lYQ9F2RdLdRNvNQ3jFSV3BUVTBaVzDb0rO5kHfy0jzxFr6wXNsxG9Oyd5E2c5BWc9ETdFITMlWSMbjSMvOTNDKUNPFTOjDSVnEWFXI/FTH6UvN4UDc1z5nzURdy0xWy1BMx3hFytVC2cxE68dGcsRJX8BPScVvScXcSsPaRMrOPtrIQnjDSm7ATVfBR0bFTT/KZkHK30LN0ULOxUbYv0xmw0xPxU1MwGNJwttHx8xIy8NH0sJD4cJBWcVGS8hPSsZfSMXtQM3WPuTOPu3KQXbGQV6+U1W76lS+30nD2kLI0j/TzEHtzUJcyEhWxE1Kw1dAzGxDx+FGx9FIycpH5slLXslMVMRVTsNaRcX2R8nTS83ORN/SPV/NP0zGTlDCUk69bla82k7FzknUzkXcykfqxU1rvl5cw2VPy19F2Vw/6HE8ceJAb81G779RZcBYUsN4V8X4TsjjR9TWSdnHUvnHWlvOUUvPX0fN20nTzEvkzUdnzEVNz0pPyFlIy2pGyt9LyMtOytdHzPJByF5ExVhZwk3xv0nIwke/1EXCSUvBPufKOsRoRrpIdb09xtk9u0VPvzjg4Tq/TEy9P8rEQrz0Sb1IW79E4sVE/dlC7M9J3s1KftBLVttQVNJrV8zZXdXOVnHKbVDb7ktq1VlV13xLZN1QV87UVW/MZ0js00pG0N1EZ8P/Scm9Ylm9wktbwnU/9L9kRdPEU0fNxVNOyMtJRs7QSUbY4j9F2OJASsvMTVXDxlFQyclVUsfDWkjly2FN3sXySmnNcUVW0uJJUM/OWlDYzWZN7stzSE/a60pP2NBTS/DQaE7hxtpWZdDaUU7t1mdTctbmWHbNzPZo0szxUWzedlRb3t1eWfDbe2Lnztb/ed7Z/V505mdRVmtsV1nl2O9s6NniYF/y6/dv/eR0WVvy7WtdcOZpVV3y5mtj39Po9N7X3ff63914Zmd3dltZaH5qWVlka1po+vZ8Z210alpbam50YXbr9ezg1dDX2NPW5ezo8PD5/e717v5+7efl5uPk53tq+P5sW1tgWlVTXGlmanXs8vfj4+vs6N3d4uvp8mxu83xtcvt1am56fv1+fG1l++54d/Po63d7d3Rra2hiYV9ja2JrbHvw6ex9ffxwZV5gYnJ1bnX8+PHh393f49/k6unm7v3w+HF+7/xze+3g3tza2d7d3d/qfHVgWlpbXV9qaXJwfPT9e3tyaXJ9d/1sanJpam588vpwcPx9++no8PPv5OXo4uLk7Ofl+HB68XJibW5mXFxgYFhebWRaXWVhW1tbZGNjaWpuevXt49zU0dDS1tne4eDd723u5u9+7urk39/c3uDl5uv2/21fWFdYUllfamNda352cXXs7e3h3uTu6/J4dm7+8/js7/J6+OvucmtuamZzcHz6+fT7cnDu9XhtbW9qaXRxcWtydG5lZWRdX2tdXGdwamNmc/f+8+Xb3NzZ1t3t6u5xZm3/9PTp6O7n3Nbc39fV1dzY19/4bm5gWllmZltcY2ZpcXVobXB9bW91bGFhYGhveuzo6e7v6+jmd/vv+/Pt6Onh4ebq9O50ev15cGxsdf5oXWdmYVZUV1JPU1VYVl5pZV9lbWJp7+3h187Nz8/S1dre7nJteOXg5eHb19na3tzb4+jn7fDu/mhdWVVWXV9aW1pebm5m+9/h6ufm4vL+fnJueu/o6enr9P3t/GhqcHJsam76/nb9/m1xcnNubXx6dXz6e29+efRvYF1ZV1dWWFxgX2lnYGRoZmpx5tre2tLa5erl8GxkfPHv39nY1dHPz9PVz9bZ2Nfa5uvubFlXXFlVU1VZWFhiX2R3//70endtZGRoan706eTr9Onk+3F87uvt39vj7OHg7vv0/GpeamhgYGx0ZV5leGddZlpRT05RUU9VYWFgaHZ1aWzu6ujYzc3Q09TV3u7q8/ro393f29PQ2dzU2ubn3+B6aX37X1tgXltZXlpWXGNbXGrx6uPd2drs+/j3+nzy5OL+evL6bmhqaGd98Pl8+/p0bG97fGdu/2peYnz8cHj37fbx6/dsaGZVTlNYV1dkZVxbaHNlZ3b68eTb29/j6Pr8fe7e19bY0tLPzMzO1tjV09vf4uf/aGhuamZtYVVVWV9YWFhbWl129n3//2Rnbn7p7PLt9Pnt4eRoeHlu7t7f2uf153VpeHDu/2diW15eYmVcZG16b2dwY1tXUlNVXFtgYGJiXnX09fP85tjb2tfQ1vZx6uLr3NHe3tfP1trX0Njj3tbi9XptZldWXXFtX2Jpa1pdaW1jZ3n9+uzd63rz3Oft397oePXla15seGJaZfn2e3TveGFgYHl5eu7teXvqXmbxfuVqb9/ke3X4aFlTW2NaVFlqZk5YbWJlXG7m79vf32hX+Xrs0MzY1dDN0dXOyNLWzczQ2dXobH1dbGpXXmFXVVNaV1VVbGFTTl99Ylxwe1hw2d508tnQ3mp+enNw49z519zhzU9c0uFWXNjf4ONWT2tkWlZeZfJqW/BtVFNrZVxOaeltaFdYd3vt/mRv6eDr7Nrb//bp1tLy4NDb3czNztLX1eLp2dpvXPl8+ltd721ebHX3X15qbmlhbvd4b2x+eGD96Hhr5t11+XP+/Fpk93Zh4HZiaXDpeFlu53tt6dvvaG58fV1kaXh2/Hd0dmZu7lxX+WljX1ZeYVhUbGtb5+b+cn36+Hbg6dvQz8zMzsnFyMrJytLW1dXf8uTe82Z7811WXmBZV19qXlpgXnNiWltUW1hVXF7/8PDx6O3v+m3v+Pnq39fp5uTu5nd3Z2JqavtuaWp3ZmdfXF1UVVpTVV5hXFlZW2NkX2ZbYmRqe3NyanLwb3B67f1x6N3a0dDRz87Lx8nMzc/P2trd7e35d/Ztfe5yb15q8OfheW5r8+luaGJvZE1UXl9cX3duWFtudF1hb+/n4Nvb+Pzy5vVqbH31aGx64fPn4t3han5lXl1ibWJlYGhdWFxaU1NVXF1XWF5dZ2pdWltjXlNi+e//2crLzsvEysrJx8fH0c/Z2vT+2PX78ffoXU5r9mty7vNnZPpuX15ZYVJLTFZUVV1rYGXa5Gtv2+jaz8fM0Nji2t/p9OTsXlxRVGPefnX59eHqUFl2W1Vad15UWU5VVmT/XnlmWXtuZXNj/Fp0alJZWlv2zs7QycfMz+TOytHW6drd+nNtd3hkXt/0YGVY4HZn59/x5OvoZlltZl9kb2JgWFRiX1JZWWxTVmts2dDg0PDf2u55VfBbV9f1zurP51zW3NPe2tziaNrnbmpf+15bWE1PYEpbY1hvWHBeU2pXXE5MVFp64NzUysvPysrT0M7N09XZz9PTbV91aOtfWVBRZFhwaGV4Z/1jY2pWTmBhVX5ZZ2piX193d2lrcGrj0MvM0sfP2tbu8tvw6d3n3uDtdvh8cu1q8nZgZFVkYFZcWl9bWF5aW1xncGhg+GFfeW1tbF9dXWBv4tjY0NLLy8/Qzc7M0dLYzsvl8Wx47OXw7Wxw/23y9Ov16fB7amdpVlBQUE9SXVZVX1tkXV1cWFZm6eXd2tfX5ebb5uLz9tra4ubs3d31fObXdPZ7cH1ea11jVE5PUk9STVJZWFNbZl9aVmReWlpcV1xh/ePm3NHS1c3Lx8vMyM7PzMzW1OPg3OLu5+ducXx0/mxc+2FuZGx9blpdV1ZmYmdna2JwdftqXGny9vDq29HW3dzle+31+3Nu+Ofr+W787HV6dnFbXWhvXlVeW1dYW1pbXFdVXFxt/Wxwa2Zoam1gWlhYX3T15dvd0s/Z1MzIzs3MzdLX2Nfn7+nj3/X46nZpaG10/vdx/Or8d3FtXVtdX15eaGFdZGRdW1dfXlxjfP7u5+Tm5N/j8PDm6fDu39/j5dra4ufk8nJqZWJbWVpZUlZZVlJMS1FOT1leWVlYW15UVVhXWlx68ObYzczLycTBwcTExMfIycnR1NnY3uHr/XlxZl5dXWJjX2VxZmRkXlpbXmZoX2loa2NjZ3Jna/P//HTq4ubt3trffvb0Zl9s93Bqeenp8/vn7GpdX1tSVFRVV1pYX11fWFpjZWpvdXBqZmRfXlpcWlxgY2rw5eTXzszOzMnLztLOztPZ0tLY5dra7Xf06nlnbftxZ3Tu8Xd6+3NtaXJtcF5ZY2JdXGJmZWBpa2trcXb47enf3+bvfXb+cHfy6vDu3tvf5+jn+l5dX1tSTlNWUlBZWlNPVV1ZVlxdWVVWV1hYVlpdY19u6drSz8nFxcTCxsnKx83Mzc/P3tXo+OtfanNdbVxXcGZiWmh7YF1kcntpcXp1Z19rbWFgdv90cH7w6O3q3ubp5OrzbmVpZWNkaXn7cPHq7O34/21iXmFgW1hYW11eXWpraGVeamldXmFeVFJWVVJNU1dVWmbs1tPNysnKy8fJzM3MzM7Oy83R293Z4/v1+XptanX2+Wt5+nRmX2pyZ2JjX15aWF9jW11pa25rdO3r9ejf4eX1+vtub3j99/327Ov97+Hv+Xx+cV5dZmZbVFReWVdhbmpcXF5hWlNWV1RRUFRXVVFRXGlq7tTOzs3KyMrKycjKzs3NzM7R0drj8Pb0/nR8/W9rc3NoX15lYlxhbG1hW2dvY15xcmdjXW94ePjm4+Tr7+fsdm1paWhodfX6+PLw7/Dy8f12dnFwbm1tamBaW2Jpd3r/+WlfYmdgWFRVU09OUE9MTFJbZnXh2NXRzszLyszLy87PzMvKztDP1Nva3eDj6erq9fh7amhiWlxhXF9cV1paX2RfYGdoYmBcYXpz8ubn4ens5u34/fvz+/365uXs6e71+Ht7bWFseHBnX15ZVFNaW15lbGpmX1lbW1dXTk5QTlFQUVtfbezo3tjW1M3NysjIx83RzsjKzc7N0N3a2uDj6uHm8PptZWJeX1pbX15fW19lamlwcmpkZmNgYGVq/uzx9vD3/HVzcm5uZmZsd/ns4+XtcHvzdGpodOzz/X53a15fZm9oZntuamRiZ1tZVVFPT1FOTE1QWV9t/ern3dnQzczLy8zOzcvJycjKycrMz9PX1tXX1dfj+XRsX1tbXFpUUlVVV1VZW2JdWWdrY1tjePx1fvTz8vft3ern7ff4fOjm5uHg5vl19m5nYWVy/WxhXl1WUVNYXVZbXmVbWVtgWlNSU1VQU1lfXmZ27e3u5tnT1c/Nzc7P0MzKy8zLzM3S09Pc3dvW2N7g6PxtamRcV1hcX1xdY25nYmR6cV9mc3lvcvrsc3N49HxxbHr7aGdtfXp87t7e3ubh8mllZ25wen38emxnamZlYFxdX2FtbFxbV1hST09TUU1OWl9dXm33cPbn2NXb2dPS1dPOy8nJycbIyMrMz9fZ0tPc3OTtemZfW1VWVVdWVlhcXFhgXWFcX2xuZG1tbGttdX33bm977/d8+uvv+unf3dve6+xuY2FwZl9lZWZeYWJfWllcX15lcG5cV1hYVlVWWl1YXGt6bHn57/Lz6tza3tzW0tfWz83OzszKys7Oz9Xd3Nnb4+Pf531oZWReWl5jY1pdY2ZfXmh3bl1l7u5nbH39amdtel9aXmhqXWR6+Pnz49rb3urqaVxkc2xiZXH+Z2htc2BaYnVmY21wXFRYWl1TUFdYV1hfcmhnavLseHbr3O713tfY2NTOy8vKx8TK0M/N1Nra1tjc3t/he2psamRgX2heWFVcY1xbaHJeYP7va2Nn+/tpbXtuYWJw/m1odPD2/uvV0t/v7H5iXl9hXFhab21iYWtoX2Ju7XBgXWBZVVZcVkxNWFtcXWF4d3Pz3ujr6+He397W1Nva1c3MzczJz9LR0NHX29bU3ePg3+9wanxvbWdhYVtVWmNhXFtja3Zz/fZ4a3v3cGZtc2VqbW50cWtyefro3t3i7H38cmRaXmRgXmp4aWprcXpvce/zbl9iYF1ZVlJPT09XWVhXYm57/ezl5/P25uHj5t3f3tvPzc3Nzs7P0dLV2NnX0dfa3N3o9Hj+8/xsZW5mYGFmYV1aX2NnZmNna25qbnB+cmRocnB0bGpoaHj66ufi6+bn531ta2VhXWRze3Bzd3737ff+bmtjZmNeWVVWUlRTWVhVWFxgbPTh5Ord3N7f3d7k8eTb2dbPzc7O0M3Oz9LX2djd4dnd7Xd9+HZlcPZ0X2hqaV5cYmFfXmRne2dnamtoam9qbm5tdmpjZmRtZW/z7Pfv6Op7ZnZ8Z1pkcGllZWf8/Hh79+5ubPp3W1lbXE9NUlxZVmBlbm175t3m6t/Z4e7q4+538N7X19POzNTSzczO1tXS197b2drs+O71a3b36e92dvDzYF1iZ1lUYf5wYGJ2al5j/fdnX2FgW1ZZY2VhZfPl7ezh3n1uefRwZXf2dmFu9fNubv75cXJ07mtWUlRTTk1RWlNQVmFjZ27p3OXn2tjd7vXpcWry1tTSzsnHysvKys/V29TV3ePZ4HFnbXtmZXf3bGVqcGNeX2VcWl9u/WpkZf95bW7s73drampcWl1ramtz6+He6OPm93Fod3FpdftnZG57cXFpc/V4dnf+ZFVPVFJOUlxlXllhcmx37+nx6e3m5Px0amlpcunZ2tTMysrLzMvM09va19va397pfW95fHj64+X+dXZ1ZmZgXlteZ3NoXl9nbmplaf5wXlldWlRXXmZgbPPk5evq6vhubHn96+bn5vz28P1sZXby/nJvbV5VUU9QTk1WXl9dYHN8ZWvz8/jt5ev1/vP+d+3i3M/NzcfGyMrMy8/a1dLZ5ePk6Xtobm5rb3L682todW5hYGJkY2NpaV1dYGJmZWn393JpamleWF5sa2nv4O/+9e54aWZsdfju5eXr+P99bGNgcXhqYmxnXFhWVlVYWmZ0cm9993xhb/H0+nLz7Xpv9/t49ODY1dDNycnMzs7P19vU093g4uXwfezl6e7w5+ft+3l6aV9iaWpgXWpdU1VcXlleYGVnaGlrYVtXWmht/O7p6v52+vxxeOvn593Z2OHy9PRxaG35a11jY1tVVFVSUVVaYGh1eHt4bGdocHVt/ez5bPvn6urf2dDPzcrLy8/S1dLW19jY3Or68fZ2/e/2/vrx7Ph4fW9jX2R7b2FeYl9YZWdlYmD56+3u9XRtYVxgZGRufHtsX2BjXl1nb/fu6+Pl5+14dHNqaG1xYVpbYF9eYF5fZnN7dXru9nhwa2l4+Xxza3Blafjv8Ozd1M/Ozs3P1NjZ1dHQ09ne5eTo5eXn5ePd4fDq7XhqbmdcW15pXFVXV1FVVlhcXmZ1e/56ZWNfXV1pdfr38O96c/Hx9+zq39re39zh7Hd1d2toX1taWFRYWVlYWl5dZWVldXBqcXR7/ujrfW9w+/jx6d3Z2tbPzc7R1Njc297Y1dfc2+Dm7O3z7Ojr5+bn7OjvdmJlZWRfXV5hWllhX2BqeXN3bHBxbHBdXFlbXWBmaWZkY2JfYnT8+u3f29nf4urs/Hn9emRdXV5gW15hbGlpaG1tb3JwbWVv+vVob3VpX15kam796N/c2dDPz9fa29rc2tnY19jT1dfa2djX3d7c2N3k8/P+Zl9eYFhSVlpSUFdhZWVjZGBeYl5cV1xgX19hanJtbXD8733t5ODo49zX2uTr6/xkY2JgW1tbV1JWV1tcWV1jaGdpZnJ4ef7o8ntu/Pdobujc293b2NvW0tLa3Nnd6Ofi3uDl3uHd4+be3uns39PW5O7w6HloZWReXV9mX2Zv+/P89n1qX1xXV1VYW1taV1ZeaVtZZ/T8envg3uPc2d3j5+fsbm1ucmt5am9qX2hwaF5hbXRhX3D1bmhq/W5fXGJcV2R07e/x5d7l3NvY2dnY19nh397a3N7a0NPX1tTV29nS1uDl7OptYV5cWldWVlpcXWJwa2lfZVpST1VUVFhbW1ZdZm9pfOPa29zb1tnd3dza5Ovv92xfXmluZ11haWBbWVtZW19kX2Rrc3FyfX1rY2NkaGZ67eDf3+Pa1t3e19TT1dfW3+jr6Pjv6uPi6ebh397b29nc4uLg7XhhYGViX2ZtcnRy9/J9a2dZV1VVVlJTVFBPV1tbXGvx6Off4d7d3+Lf297h6+36cGt9dnV6+vl1eWxlX2ppZWdtcG5qbm9lW1haWFhaZm9wd+/n3t/d2dbU0tDOz9rf3t3p5Nra3dzZ2dvY09XY2dfe6XhlXVtaXFpdX19udGpeZGNbU1NXVVBPVVhQUFliYF7539jb2dXR1t7a2dvj6uztbWVpbGZfZ352aWliWllfYmZdaf37bXn8dV5XXmFkX2v35u3x3Nbf3tnT09jW0Nfo6OfrdXjq4OXt5d7d397Uz9nY1NbnbGJqYFhdbXN78+3pdG5vZlpXVldSTU5PTUxOUllZXvve5ezl19bq5NbX4OPg3u5y+/T89e/m4+1+dW9lZl5qaWFrdGpeXl9bUk9VWlZaYXx7cfTf3d3Y0c7O0NLP1dzh3N3g49zX3N3b1djZ087Q19ve9mdbWVxWVlpoaW1qbWZeXF1aVlJUWlRQUFRPUFRfbHP53dna3NrW2dvb2Nrf7PTzempvfnt8dXdwaV1gWFhXWV1lZ25xZGVZW1pcV19eYm177u7v6dvY1NPQ0NHY19re4ubj5+zv5+Dh5+Hd2dvX1NDS197se2RlXmJnbn777fZuaWVgX1hXVVVPTEpJS0tOVFpdYWz69ffy5eng4N3Z29rf6evj5Obi3uDh7ubscW5jXVpbXGhsaFxaWlpUWFxaW1xjZmhhcf315N3Wz83O0dHT19fb2Nzb3N7a2d3Z1NTT1dTS09rndmxnXVlaX19dXGNgXFxfXFxaV1leV05NTU9PU1tlbvjr5+Xi3+Dh5uXi3Nzf6uj1/enn6eno6n5sa2VgWlZUVltdaGdgYGNtcGVpd25lanNxbXXu7Ozp3NXT19vV2N/i4uXq7ubm6Ofe3t7b2dLS09HW2t7u7e11Zm/+cmdndHZscW1oY1xZV1BKSUlJS0xRXF9ibX3+fvzx7fTo3drY29rW2uHd2tvc3d/m8vTt/WVaWFZUUFRYWFZWWV5cWF9qXFdbYWljZH7j39vSzs/R09HU1tbU0tje3Nba2NPW2d3a19vl6+fvcmVnaF5UV1xbWVtoa15eb3BuaF9bVE9NT1NXWWV4fX3r4un3/PDu6+ri4uPh3d3f5+fl7fv/8PN7enhrXVpdXFhXWmFjZWJsc21iZG5kXV9wcGt46OLg4Nza297k4t3a4d/e4OPd2dfY2dXU0tTW2dba3eLo8vX3bmpobnVsbHFrZGNkXVxWT05KSUhMT1FSV2BlaGdtb2596ubi29bSztDU1NTW3dvc3uPi3eTve2NbWFRUUVdYVVRXXFtdWltYWFlaX2Vw/ezd2tnV1dTa19rW0tTX2dTQ0tHS1dfb2t3b3efk4eHvfH1zZWZlZmdmZ2NiZWliYWFdV1hXUlJTV1hbYGRmdHJ0cv9+//L69e/h2tja2t3j5OHl6urv+PPx/nltZl5dXVtdXl5dW1xgYl9bXl5bXF5udX334Nzf5N7a3uPf3NjZ29jT0dfT1Nba29fX29vZ2Nve3ejz+PB7cntzcW5nXl1aVVJQUE5NTU1OTk9UWFlXXmBoZ2N56/Dq39re3dTT0tTS1tTW3dzV2uDp5/FoY21pWFhYW1NSVFNPT1BPUVFPVVxVWm3m5end1Nja1tPS1tTRztPT0M7Nz9fW093d3Nzo5d7e7vXz9/p0a21+bGhkaF1ZWmBZT1BVU01PUlZVWVlbX2NhbnttZfzf7PTs3OHo3NTa3tnW2t3d39/k6nR68n5rfHlmYGdfV1RWV1FTVFVUVFZaXFpfbfb8fOnX297a1tjY1tTW19TUz83Q2M/P1NjT0trk3dzv9+Ll/Ht1/WpqY1pYXVhSVFFMTE5MTE1SU1FVW1lZX2hvZ3Tn3+Hh4tnV1tzU0dfX1tLY2trd7vB2bWxuaV5gYmBaWlVQT1hTT1BUUE1QWFdba3X99uTe2NTS1tHOz9XT0NfW0M7T1M/P09TV2Nna3uzq6/t1/nJpaW5iXFtdXV1qYVtXV1RPT1BPUlZTVV5jXF1mamZ56+bz8ejl3tnZ29bV1dvS0Nrj3+Zyd/tza2hnYV9pYlxaXFdVWFpWVFRQTk9aWVtr+HB75tvZ3NfT0NPV1dDS2tvS0NLRzc3U1tPW3t7i7vr4a2VrbF9eZF5aXm5gXWJkWVRYV05OVFVQVl5bXV9eW2Z9/vTf2eDl2dne2dPQ09XW1tja4vDt8WtncWhgXl5cW15kXV1fWVZbXVZRUFFPU1ldZfXr+una2drX0dLY08/R0s/V2dTP0NHOzdTa1trh4+b+c3ZsYF9pYFldbGNhcXRmZl9YUFFRTU1PTkxSVldVWFlcY3Tz7+Ld3NrV1tfQztLSz87U1tbj/vHrdXX7b2JfYF5cYmFWVlpUT1ZZTklNVE5NWV5ebfPu5dfa2dfS0tTPzM/Sz87PzszLzM3N09nZ3evp+mtsbF1ZYGRcWGBoX19pZ19bWFVTVVFOUFNPT1piWFdjaWR039zf3Nfa29bV19fU19jU09rg5vVrePd3Z2tsYV5nbmRfXVpYW1RSV1dOTlJVUlVeZ2386+Td2djX0dHU1M/O1NPP1NnSzc7QztLb4d/l9Oz4bm1sZWJsfWZdbXplX2xoWVZaVlFPTktNT05QXGBZXGp6bvHe3eDd2Nrb2dnY1NPU09DY5OPle2347m9o/P5paG5jXl1YUlVXUE1SVUxLT1BNUFxkYHvh4dvSztDOzM3Oy8vP0s3O087LzNHU2OP19XNkZ2tjZ3p7aWhsYVxlbmBeZWBYWFpVUU5OTlJYV1hncGZt59zl5NzY3dvY3eDg4+LY1dnc2t7vfvptZGt5cG/892lfYV5YWl1YWFtYU1RXT05UWFZWYGx07t/a19DOz87MzNDOztfd2dfa1dDT2dzh93JzZWNte/nw5u1va3Z4anr7Zl1hXVVQUE1KTE5NUFlWV2V7dP/j3eXm2tje3t/r9ung4dvU2N3Z3PR96e11/ert+/h0XlpYVlVXWlRSVlROTlBPTVJYVVps/vng1tPQzMzLyMfLzczP2dnQ0trZ0tjg6fliXmJfXW1+b3P1dWBgbWRcZmxeWV5bU1JUUk9SV1Zcamtq+eXg4NfV29vW2+7x+W9u/fDt4d3h5OX7aXX5dGz86/N0dXZoYmRcWmBgW1pcWVFWXVdUXWBdZn318ePa2djOy83MzdHX2t3o593c4drS3vbw821odvn88uvs5uHufvrvc2NncF9UVFVOTE9PTlJWVVpmZGF26+zl19Xa29rnfPXr/nfr397b2N3q5Oh6fuXwbf/qdGJva1lWXVpSWFxUUVVWUVNaV1Nda15d/uXr4NLOzMjFysrIzNLT09nd2tjf5eZ9Yl9iXVxmb2Ni/+338PdvePH9am7/Y1pcXlhYXl5bW2JkZnB8cPve3N3a2eHt6O1oZnZrZXzo8PPm7Hh1+ftu/vV4fe31cHV+al1ncl9bZWhdXmFcW15eV1dfXFto/frp2M/PzcrMzc3O197b3N/f3un09XRiYm1nY2n6/PTf3ubm4uny7vZqYmhkWllZUk9TVFBSWl9ZW2tz/uXf49/e3+bl6PV1+Ozy6d/f4uXl5Ozp6nt2+fd+/nhoZmNlX1tdXFpcXVtcW1lZWVtaWV1gZHbo3dfQzcrJyMjMzc7V2Nrb3ubn+W5lY11YW1taYnr6+fXs6vLs7f92dHFqbG1iXV5eV1dgZWJjaW989urn5eTk5ufr83JsbW9tePLv8PN7ffb6d2txd/75fvf4/XZ4/XR0c3R7cGlpZ2FeW1dWV1hXW2NndOnf2dLNzM3OztDW2dnb3ODj6fD3cmdpaGBhdvPt5uPg3t7f5e/3/HJpbmxhWVlZVVNTVlZYWFxqcG557+fn6+3v8vr79/zu6ube3t7g3uHn7PP3efrvenb+eGxrZ2RhYmZgXmNfWVlaV1ZWVlRSW2lu+d/c2dLMysrKyczO0NbZ19rk6+38amRkXFVZXl9oc354+PHt6+rpeHB8bWx6dGNfZmFdXWZlYm53fvDq7fTo5/dy+fZlZGlpZW7w+fjt8fv7+Xhy/Xx4/u3s+evo9nr27Xdv/n5zbWdeXFtVUlJSUFhlbnD65N/d1tDQ09LR19rZ3N3b3ufo5fB7c3VsY277+O3o4+Lq6+fo7PxraHBkXV5bV1JTV1VXXmJlbHnx6e7q6PT9ffrz+nR2/3t97+Hd5ubh5u7z8Pd6dHJ7e35+b3BrYWNkY2BfYFxaW11aVldVV11o/une29rUz8/PzMzQ0tTV3N7c4uz19XtpaWNdXVxfY3l4c/vw7fvw6fRza3B0cGtpaF5cXl9ma3D87ero4OHi5Ojt+f10bGliXVpeY2dueX53c/b0/n3/enP96+jq5uHn9f1++vt7d3BrZV1cXlpVVVhcXWV88PHq4t3a19bX2tva3ODq7Onu+/Tw8/v3+m9ueP7u5uDk5t3f5+nv/HBzcGNgYFtUVllaXmVnaHL6/fjq6v17+v9zdH50a2tjZXT6/P3r5+zo3+f87u9teOvq+Pfs9nNwdGpqbmFcXVxXVVtcV1hlZ2fw6fDk2dbZ1dDU1tPU29nX5O7o7Hhsfn1nZm5gXGdnX2zv9Xfv5fd58PJsd/V0aGlpX191fnH55ufk3eHs4t7pe3d6Y19oY1pdX11bX2Rkb/f0fPzvdm95cm/w3uDo4Nzi5+fsfvPsc2JlZGBfYmJcXmtubXR9+Orh5enn4N/n4uLp4uTu/ffz8/Du6vd6fH51cHvu4t/f3dzb3u3u+m1ramBZWVxeX2FpaG7+fH3/fvX8/ntvbX72dXV1cnX8/Xb+6uHl5+Dp7/1vZ2Vx/v3z8Ozv6uV9amhnX1pZWFleYF9ga3b88Ovt69/b3N/d2trZ29zc3d7r9fF7evbxeGtybmVhXVthbW5t++fh4+Li6u/s8X15cmlp+uv+/ebi6vXu7Ozpfmxsa2NeZWdgXmFmYF5hZ2t2/XN78/VsaG5ud+vk49/b3N3Y2+bn63ZhYWhhYGZpXl9pZmd1eW966+92/OfyffPv8Ofh7vTo5e3o3d7z9+5+cGtvefLo7Obe2t7k3uj/eXdqYWNgXWFtamJ0e2Zkbnp6+n1tbHh6aW34cW/983lu7ujs6ufu+uz3ZWNua2R36+vt5+Tx7+x9bmxiV1VdX1xdbWxpendu+eXq8uTe5ufc3eTi4Obp4+z58ejwd+7qemlpX1dZXl1ed/V77N3e5NzZ5O3r9HB78f128Ojz9+frdXzt/W92d2VfZ15bYGNZWmBeXGd5d3z4+H15fW1t+e7379/e3drX3OHb3vP79GhdZmZdXGZpXV5iX2F0emxv/n5ucezv/Onj7fHi4ePf4Ono4uX4enRpZ3B1e+zo6erl3uLi3+f+cXlrZm5oYmV2bV9rdmtpenptevxyanZzaWv9dmNt/X147unv7Ofvc3R4aml1fnrx6+7u5+n3+PN7ZGRsZl5fZGNnamVnbWxufu7u9u/m5+bf3+Hi5uzz7evx9vD5/fHydGxrZF9gbWtpfPX29Obf5Obn6vny6vP69fv/+O7y/vrvfWx3eGxmZ2hqbGppYl9fW11kY2Jod/38//j5++7w8err8O/j4eHe3eHr5ut4dXdlXWBoX11gZmBfa2xobm1ma/Hr7OLc6nXu5PH46Ov78Ozt7eftcHrr7fbt7n577+3w59/ucvLrd3P5d2lmaGhtfHBjde5+cPv9aWhwfHN+821ibnFkaX5waHjr8/zs6nvx3+x+7+52bvPseH7q/Gn98m5nbGNcXmtiXGltXmn5d2198/js3drd2dfn/eTj+Hz6dml383568v5kcup7aHv0bG/t6/3u4Pdy6Od7fefucP/p7X7r5/vw5ftre/1nafT7ZWd9ZlliZFteZWJlfe//e+nk7+ne7Xrv8m5z6+x18N/w997hdW9uYWBnaFxbbm9eZnpmYGz+ffTc2eLh2uXv4+pra3xzbPzvfn3l4O7q5Ov29/tvduzuev/xfP7v+G9v+Hdr+O96+uTk9fDr+XN2d2l663dkaHFnYGtwY2B2c2l5+HX84N7s7uXrdXV0ZGv5/XB95uTq6On+aWtlXmBiX2Zua19ld3Bu9+fi29XY393b4Ont/WlnbWVibHRwdevo++7h7XB0+XV09flz/ObtfPDy+ezt7/Pq3uPt5un5+/f9bm51cXd3b2RobV5eZmVlZ2dhZG9++/fq6/Tu7vl7eXx5/e3t7d7d5Orm5vt2bV9dXV9fX2JfX2BlbG3w4+He393f4uDl7/r8cGpnZGd3/v7t7Onl7vV7cPv4+/11+e/z9O309u317+/+9Ont+Pv3+HpvcnBz+fh9fHd6em5tbmptdWlnaWdobv72/vPr9nr+em93fXp2/+7q7Ofp6+vv/2pnZmFgZmhiYmdnZWlw/eXe3+Le3eHh4+jt9vxsY2VmZWpwc3R++Px0d3x09er39+ro7evk4ejp5vX+7+zw8O77enz9eGh5/XZ++3drbW9pZ3Bya2lwZmFoZWVscHt7/O/49ubr9/Hu9f3t6Orq4uv48PdqZmppY2ZrZF5hYl5gcHt67eft8efi5+fe5vLu8nRrcnJrbXBvbnh9bnj07vr26+/16+fs6ejy+PTw/P3t7/fy93Rzc29pcvb3/vTzc3R9c29udW9pcHJmYWZiYWpycXN99vv05uny7O769e/v7/N+cWxzc2tsc29x/nZtaWdoYWl9/vnu7fTv6ufk5Oft8+7+aWttZ2Zpamtrb3Nxcv34+e7q6+fh4uPl6O7z7O/57ujx+fH3eHV6fHl5/HVucWxscHl2b3h2cG5va2JgX11gbnZ09u3r5+Ph4+Pm6+vo5e30+m9qanJwaGxsZmhrbGdoamZpbnFy//t4evvw6+Tg4+Xp7ff9e3FsaGtvd3l7fP748+/p5+vq6PD17ejt7uvw9PDw8/T4e3lzbW11fnlwb3Z6fvr4/v717/n3fmtmYV9eZGxudnt5fu7l5OTg5urp7fL7fW9nZGdnamxsbW18+f59fG5pdnlwefH0e/bu8Ozh4erq7fV6b21jZGdoaGdxd3F2e3736uru5OXt6ePk6Onm6e3t7fLp4/D7fnxtamxpYmFpZ2j+fnv06O18+fR0Y2JfW2Rycvzw7O7m3d7m4Nzm6uTr8/l8bGBiZF5eamljcH1va2tsZGZuZWB5+m529fDs49/f5eXp7u3ueHX1/25ueHx6/PN2b/p6bP/xe3zy8n796fJ97efv7uPse3d8eG95fmxqeXNtfe/u6+Hg6ezq+2toaF5dY2dt//n77uLh7Ong5vDr6/f/dmdfXl9dXm38cHfv/XL893Bve3ZobvD/b/Pu+u/j5ebm6fN8/H1rbn1tZm15bGt3/nJ47ft97fB79u76+enl6evh4ejj5fX++XxpaHVuY2p2ZmZ7/nnv4+nt4+l1bHVmX217cX7r7vns4uXr4N3s7ub1bHByZF1gY15ibmZld35sb/R2aW11aWd1e2127vTw3drd4d/j7vT1dXD0+2pre2thaHBqa/Xuev36Z2N5eXH+7Oru6uTo7OPl+vbr+nl8fWtmcnZmbPf99ODe5OHl7f5wbmhofP9ubHlzdvrp6Obe4PL682lkb25mZ21uampoZGh5d2tw9vttb3puaXB2cnvt5+LZ2uTm5ev+c3N0b3VuYmFgX2BmcHf76uX9anBubXn79+vl5erq5uTm5OPv+e7r93Bta2ZpbGdn++zy8Ono6+7vem1vd3RwdWpndPH08N/b3uDh7nR+/G9tcXFnaWleWl9nYGJucWx4fmtkb3Vpbfn4fOXZ3eHc3ebn6P1wfvFvaHBoX2d3amn973lw+21faXxravLr9vvv/Xrm3efo3eHx6up0aXj9aWb9fG3s5Pb96ODs7uj+aXz2aGZyb2Rz9Pbs3tvx/ujvdvbwb2p9/WZhY1xZY2pfZ/z9bWxuZ2Ryfmlw7PL25t7n6dzf8PDs/m3+fmdpfnpla3ZtbX57aGn8dWhteGtr8fB3efL5+eXc3t/a3u/y8HlzfHxuc+7zdHz7ePnk5vDz7XxobXVpbfh1ZnPz8e3m5ff65en+8/J4eHtuY2RtZFxfbGhr/3RnZm9ybHD4fXrs8Xz47ejl5uv1+vD2b3B6cXF+d3R4d3RranByc/p0aG9+fXl9fHd+7+3z5t3g6Ofr+n319nZ58/V++f1sbH7y/PTo7Pjz9nF09fRzdfn49vLt8O/m6PL08Pt0fX1mYWdlZGZlX2Fva19jamdjbHJw+uvz+vf2/fjh4u7l3uj37Oj38On4bHrqfGhvaF9lc29jaG9maHR1aXDzfHfu5efl3t7u6uDm6+rk6Ofh7vzx8Xp1+fxz/vltZ2twam94bWp78P938+vw7Ofze/Dp+Xr1e252+3NrffxsaGpoYWZuZ2Ft+nVue2xjaXt4cvXr7vLs+Hju6vh49u717unzeH75fHZ5dGxvfm9pe/53fvj59ejn9vru73rz6/j86ufv9PT7df3tfnnr73j97/h78+t9cvDr+O/r9/rs5/B7+Pptc31rZmplYWRqa215c2NgZ2dmampqc3t+cnT4dGh4+Pzv5uju7+zv7eDpffXo7fbw7fxvbG1lYmlnYWVpa3D++3j57Ovu5efs6OPm6OXk5+zt7fX49Pj+9fPx8PV6bXh5aWd1eHByeX5+8PH27+/z/vz1/nd7fvt5dXBwenNsbXd4bW55c3NtampraWhqbGpmZWhucHV1dP348u/y6Obp6Ofn4+Xp7fH8fXFlZ2dpb3D9+P3v6uvt7/Hs6eru7uvq9XZ8e3T/+3v97uzv7urw9/Dw+Xp7evvw93n76+z69erv/vx9bWx5eW9ycGhpbWReYmZmanr8b3X6b2NlbGhqcHFpcPL9dfv8cHzu7+/n4ejs5OTt597n/Pn2cmllX1tdZmZs/PX/8u59e+zl5uTf4ebi5PlzfHtuePf5fu7l7fTu7vfu7nlte3xsaHRzcXv19PLs6/91c25w/O7y+PP0eW1mY2JucG3+7/t3c2tgYmdoZ2hpaGpuamRsdW5wfP98fvD2++7m5ubf4efj5PB1bW1paW9ub/jw/f78cXP37Onq6uXq9HttbXp3cvvu7fDu6Ons5uPu6Obx7ur6bnD68/j27O3q4+97fHBoa3F7bWp3bV5bXFtfaGhrc/53aGZnY2pwbnJ+fXN2enBv/O76ee7v+fn3eHX66uzo5Ojp4+l9bXBpYGNtbmp8+nBte3788Ors7OPj7vL8ef3s7fTt6Ov59+3x9evr8PDv+Ht1b2NnfP549ezt5+Pr8+/u/XT893j++XJoaWtqbnRubnn+a2BhYl9ibGxscHZoZWxqanr3/n3z7/l4eXN0+fLy6+Xi4uPk6fTy9nNrbG1qbm1maXZxbXr4e/vzeWtsb3N77uzt7OXp8+/m4+jl4uPk3+Hv8/V5/O7u9e3n6+7n5uzy83Zsb3JvaWdiX2NpaWhra2hrbGZfZmtnaHH7en37d3T99fbw7O7u6un2cG5xbnF8/vLr7Pp69vV4e/5yaW1uaGRpa29+9X12+PP3/f14c/7w7+rg3+Xo5+vv6On1/fDq6+vs/W9wcnJ79/Tw6+378+fk6ezw9fX093p6+315/fx1a25sY2JjZGlwb2pufH1paW5ta3F4cH3z7vH293Rt//P//Ozs8O/w9vXt7X159fl+fHVqaGpxbmxwbGpta2Jga3B3+e3n6ODj7Onn6erp6u3v7ebp7evt7+3v9+/n6O/w7O/z6u369u76cHFvbW99+29vbmdiYmJdXWdxb/vq8nv7e2xy8vJ1c/n19Ozr9X56d3N58vx99n5tbHF0dnl2c3ry+XV6d25vef55b29rZ2dpanPu7fPo3Nzh4uPp6eHo+PP1fW1zfm1rffV4fO3w+fHw+/7t6/ju5ejr5+r39+zq7/Ds+HZ0bF9dZGRhZnp8e/N9a2RkY2Zwb2RkcXNqb/t+cHh8fvPl6fvx6/f56er/evDw+ezp9vvu+2xydmteXl5XWGNrbPXl5+fe3+3t4uf67uf3fH5zaWt4e3jv6PLt4OLu7efr7+vr9/bm7/vw83Fw+PV6fPlwZmVkXmBxcm/35ej37u50aW1lX2NmX15qa2Jq/f5udf16//Xyfnz0933y8nt98O737uTn8O3ueXh3aF5gZGBibfn369/e4OLn8PPw/m5ufG5jYWZgZHJ7+uzn6urk4+jp4OLp6OPj5eHj6erm7ffx7v12fXNoZGdnYmZrbHD3+WxnZV9bW1tYWFtdW19panTy7O3t6ebt7efr7+fl7u/r6+3o5err5u17fvlyaWReWlhbXl5lffDu4+Dp7+7vfHr+dW54d2hsfnp68efm5+Th5ufg4OXj4urr5eXt7enwd/z3c3vw/nV3dmxna2xnav78fvX6bWRhX1hVWVhWWl5cYXBxbf7u9H7w7n786uzt5eLo6OHh7erh5fLv7nz+9nZnaW1hXGNnY23u6erl5O7z9XVlanZrZGxwa2/58fXn3uPn3+Hn5Nzf5d7c4OPd4/Ho5311+PP/+u33dX5+a2NpaGNpeXRtc3JjXV5YVFdbV1deY2FrfHt29O739Orq7Orn6ujf293g4efv6+bx/vb4eHZ3a2VkYFxcZWx28O739+7t93ZtamRobWxw/Pj58+vm5d3b4OPe3d3b3ePh3d/k5+rw/Xt4dP/28PH5+np3eXJpZmhsbG9vbnV3bGJeXVpaWVhbXV9mbW9udf94cnl8fvTv7u3l4d3e5eju8fL5+Pfx8/n9eHF0c2pmaWhnePz/9evt8/59cGtrZ2JmbXZ69O3u6uLf4+Pe3uDe3d/d2dzl5Ob19O73ffvz+Pbp7Pj37fttcW5oZGNjYGdtYl1hY1taXlxYW11dYW5uaHT8bGp99fr06enm3dve4d7f7erl7vLu7f797vxxdHtmYGtpYGp5cHjt63lz/m9kZWtmaP3+ePDl6vHo3ujn29vd2dfc3dje7u7p+2x2/3N+7fb66uf1fPb+aGVqYl1jaGJjbWVdX2NcWWFkW2BraGdxdGRkbGpkcvt2fOrl6+fd3uXj3+bo4Oj47uv+e+nk7/PveWdoaGBnenRz9+v1/f54aGdrYmRweG166+768unq7uTi5d3a3N7c3+vr5O368fJzcfj49+nk6u3r9m9pZl5cYWNfYGZhXV1dWVpiYlteaGRkbGxlZmtnaHf1+/Lj5Orj3N7f3d7g3dvj7/Hzfnzv7/f4+2xlaGhgZHNvaHb5eHB5b2VrcGxpeHtwe+30+e/r5+ri393b2dre3t7m6Ojv/v/+cG1vdnfz8Pn49HtraWZiYmhqaGZraF9fX2FgZWtnZGhrbGprYWRmYGFmbm548+rq5+Th3+Pk4uLo8PP3fX716+zs6+38c291c3f+//X29/1+eHBzeG9ram1raHf8fnvz7uzs7enk3+Pj4N7i5eHf5ezx93Frb292+PD07e/6c25jX2RmYV9nZl9fYmFhZGJhX19eXWJlYl5jbGZodft6+enq6+Te4N/e3+De4Ojx9Pxyd/Ds9vft83R0e/56/3v++X5wcX5ua3R9bmx5emxuffl8++nm5uPf4t3a3uHc3+/t4+h99+z4b3R2bm58fHx6cWlla2dhZnBpYmpwZGJrbmlpdW1kYGBfY2JeXmVrZGh7+nrx5+Lq49/g5OXl6ujs+n77eHH+6e3w6ul+cXz4fnv08/f89fz08nx0fXhpaXr+bnfx8Pvv6ert6+rm4+Th4N7q7+fj6vDr5/duePx7cnZ1dm5qZWhmYV9maWNocHZsdH5+bGtsZl1aW1tcW11ka2hncfL4/Ovh5+rj4uTn4+Pg5uvy8PN9/u3p6+vl5vv/+Ppucvv2//77/PP2+n3+bGhteHBudPj2e/Tt7fPs5d/i4N/d4u3x5+Lt6ePm8/16em5oZ2diXVxeYV1eX2VnbHH+eW/68Xttbm1qX15fYV5eY2ppY2358v3t5+Ps7+rn7Ozq5ufx8Ozte3ry5unu6Ob2//5+/Xzy6ufp6+ji6vn5+XBnbnt5bnb8/nB0ffz7//z06evs6ubs9u3h6e7t5+jw+vfzenBwcGdfX2RfW15tfXV77Of7fvf+aGFkZ2BbW2JgWlteZmNpe/j+9Orm6vTv5OPo5eHf5Onn4ur37ebn8fTs6fxwdPt+df3l6vXq4uxwcf19ZmZzfm5sefd9dfTl5/Lw5eDw+Ofj7uzi4Orp4+Dn8/Lx93Jpa2ZdWlxcWFVcaGlrfenp7PF+e3draWhqX11hYltZX2hoan348/Pr7u/t7u3o7PXy6OXy+Ozl8fHt7Pz2++3zeHfy6e704Nni6+bjeGp29XNiav12ZmRt/HFu9eTu/fHk+Wh45+n/6d7j7+fe4+/o4+XxdXFxbF9dYF5bXGNub/3p4ul9cmttZmBdY2BZVltaVFZka2Jk/+v+cvfn7O/j293q7N7d9Pjg3Oz26OT3/urm/XD67vd49ujn6+37fW1pbG1sa2xsaGNjZW757u3p3+Lt+uzr+fHc3OXo29rp9uXe7Pzw7HFjZXJiV1lgYFlaaXNoce7waGBsdWRgcXplXV1eXVpeaWlpdP3/eXv7+e/m4OXk4OXv8+nl7Ojg6nv96Ox7d/DxeHno3+br4N7udPfp/Gt09XpoanJkWl9zdWlx7+xybH3x/fji3ODn39rf6+rn6Obn7u/t8n51cW1kZGtta2Zu+HhqanBrYl5mZFtaYFpPUVxdWFtwdGNme/lwb+rd5eze1trl5t7f7+ze4PP15up9fvD1fn79+Pfy9P57b256/fn9+nVubmllaHB0am349Pry5e376tzd4dzW29/c297p7OPndWz89WheZmxhXGz5bGBse2tdZHBva2xwbmtmZGReW2FnZmJmbWxpbHFudvXt7err7Onm63x+5+j69ejtfXrz8XRv8uTp9/Dg5P9+6Oj28+Tn/HTy8mtkbXRxa2ltaGJgZmpmbfHj5ePc2tra297g4ODl5eXp8vDt/W949v9yePX7a2dtamNgaW5iXF5iWVJVW1taXmlmY2lsbWxteu7p5uDd3Nzc3Nze3dze4uPq7vb1/m95/3Nw/n5zbGpoZmdz+vr6/fD2cGp3enRw/v5wbXh2amp29/Dh3dvb29rc3d3c3eHp6e3yeHBtY2BlcGxse/ZzbW90bW10c21rb21uZGFhY2hscXVuaWtkYGBrcHj78O3u6+3x8fD37ujk5efl6/V+fX70+X387e/69evwe/fp6PDp4Ob4eXlwbG14cGtmZ2ReWlxgXmJx7unk3tzg4d7c3Nvc3+Hk6ff79/53ffr58vX3eXdvb3D/cGZobGZdXFpYVllcXl5laWhkX19mamv06efn393i59/a3d3a2dvc3+Tw/Pl+/Xpzb3ZuaGZsa21xe3t+7+7w/v5ub3Z7b3F8dGhjaGNjanl+7eLc2trc4+He3N/d3ePv83VnZmtmX2Vpa214dW9td3p2e29tdn1sZWJhXmBjYmFqeWtoZ2hkZ21xb/vv6+72/P7q5ujo4eDi5OPq8Onp8fn09/j7+3N69O3r6+jq5+Hh7Pj7/HVzcG1ta2NbWVhWWV1hZXDu6ebk4uHf3d3c2tjb4ebvfHl8dWxvffn29/f8/HdyeXZrZm5rYVxdW1hVVldZWlxdYGJlbXJ4e/Lo6Ozp5+Xi3tvd3Nvb3d3i6ejo8fz39P5zdm5qam9xeXR79u3s+vbu73Z+7/F8/PxwYl9kYGJhaHD59Ozl3+Xi3d3g39vd5OzteG9qZ15gaWZobn1ucP/5c3n89Pr9fnJvbGhjYl1bXGBcWV5qZV5pb21od319efbr5eTo5d/f6ebh4evp5ur16uPo8fj3en18/n3t6unn4OTw8O/5b3NzbGRjXl1eXFlcYl9kcvL37eDa3dzY19rd29ve6eru9XNra3ZqZXB6cWp1dm1pcXBraGlkYmFgYV1bWVlXWlpdYWhpcXt5+PHy9Obk4uHa3ODe29zg3+Dh6+/s6/n1+Px0bWxsbmxz+ezy6uLg7Ofi5/D5+3NqZmtnY19kY2NkbHb+9end3Nzc2t/n6ejw9v55bmprZWVlamdscnd2/vft7/Xx9fZ8e3ByaGVkX1lXWltZWF1gYl9namlmbv339+7i4ePm3dzf5N7e4+bf3OHp6+Xr7vb5+3189fDu7Ork5uv07e74b2hiX1xbXl5cW2FlaGVw9u3r3tbU19jX2t/l4OPud333eGptd3Nra3lzbGhyeXJoanJuaGZoZ2JdXlxZV1lcXl5fZmtpZWx4d29+6uXo4Nrb3+Db2t/m4d/j7ebj6/387fFybXz7dHHv6O726OTq8O3n7HlqbGpiXV9iYV9jZ2lrcfnw6+Xd2drd4N/i7/zy8Hpxdn10bHr2+X788fR9fO7t9nl++3FmbHVpXl5jXldXXFxXV11iXlxeY2Nianv07urh3d3e3t3e39/c3t7e3uDn6uno73388PB9/unk6vLq6PN0e/V1ZmJoZ15aXV5bWmBqZmZ27O3r3tfW29zZ3Ofx6eju9PLs8ft88e34fP72/HZ6eXJtbHBuamNnZl1cXF1bV1hcXVhaZmtlXmhybGt65N/f3tnX3t/d3ePp4d/j5+no8/r08vxvdXt0b3L17e308Oz0+3728nRtbXFqYmBiZ2FfZWtycHzt6enj29zg5+nq+fbw+P17+3xzcHvu9/j06+j38+/t+nh+endtb3FrZ2BdXl1cWlpYWlxaWlpdXl1ibPnv6eHe3OHj4d/c4ODc2dzj3+Dg6Ozq7u76/ffz7+7t9PfwenB0fntqaXF6aV9hYWFcW15gY2V08Ofj4tvc3Nzh5enj6O/t6eX1ff/693R2/PP2dXh6e29oamppY2FlZ2heXl9gYl1eXV5fXV9hZ2dkaXPy7+7m3dne4d7d3ufl4ODq8Orq6/P28/r3e3Bxd/h8+/Xt7P7+/O3wfvTt6PR1dHFvY19jaWplbXzx7vTp5uXr9/Hw7/z/8+/u/ndvb3lwd/3r6vrz6+f3df/7d2hnbW5uZWlsaWNcXVxbV1dZW15eXWBhaGlw+erg4uLe29rc29rY2uDh393j6+Xk6f1+8e/2efjz8/p2dW9wbWludHxzaWdnaF5dYGRmY2h18+7v4dzb3+Ti4ODp6eTh4/Dz9ft4a3b9/nd3+v39eG5sZ2hkYWJmaWRkam1pX2BhYl5ZXGBoYF5na25qdO3k4uLc3Nzc29nb3N/m5+rp7PL08e37ffvx7npyfu30dP/y9HRy9fP5dnN4cW5oaWlpZ2Job3n49fDq5Obr7evn7vDp5uXy+vj6eWpz9/H8fPHr7Pr/+ntvZ2ptamtscW1rb21pYmJfWVhbXlxaXWRqZmZ27ez47uDb29vV1Nfc3dzg5+zp6ezq7Ovr5+fy/37v7Xtzdf11aWx1fWtkamxiXGFrZ2FhbHRzdfrt7OXn6ejk3+Li4eHf5Ojs7PByeP35d2xyfnxpZ290bmJha2trZ2ttamhoa2djX15eXF1fYGJqc2xreOni7+3f2tve2tbZ3uPi5O3//u3x+X3z7Ozt9/5++Pt5d/vx+nV99vB9bm5vZ15gaGxnZnD8/W9ufvb5fvnr5uPj4uXl5Oft9fP6cGx2fnp1/vf/bGpx/ntpa3h4cGttdXBsaWlkZF5aWlpcW1xfaGhjaG757fDt5t7e5d/Y1dre3Nne6u3n6vL67ujp7fDv8/h7fP779H5xcnr8dGpobWpbW2VtZWFtfXxucPbs7vXv5uPk5uXg3+Po5+vs+m9scXpzcXN0eWxiZGxsYmp+9Xlsc/t9a2VoaGRdXF9jYF1gYWBhYmNlcn17+Org4ubh3dnd397c3urt6ODm8u/r6u/58e3v+vbs5ejx7+/1/XZwbW1sYF1gaWRhaGx6bWl58fJ3dPPo7fDk3t7h4+Dk5+7+d3v9eXN4/31sZmltbmtud/l8bXB4eWlhZWllXVpdX15aXGFkYmBjanZ0e/Dp5OLf3Nza3N3e3d3k5+bf4+/y6+ny/fvx6u/27ejp+3p8fnJpam9wZmNmZmhlY2huc2xtc/32fvzz6ufr5+De4evr6ef1fPn1+3BwdXx1aWlrb29rdX72/XN8/X1xbWtnY11cXV5fXl5hZmZeX2duamz+6uDg4t3a29/f3uDm7unk5Ofq6erp7vT37er19+zn5/H+/fh5aWdqbWhiZGtva2pwfHpqaXF0dGxufvTx8evl4+ft6+jp7fDy8/pybXD//nBveft6cH7v7vx4/f59cWxsZmJdXF9fXVxeYWdnYmVpbWxpb/Tn6Orh29re393c4Ojn4+Po7ejm6Ozt6evt93758u/7eXz+e2lkaGtnYGVueW9u+vd8bW1xc3BpbX7v8fjs5eHn7uzr6/H8+PX7b21ye3dtcHn4+nn97uj0evj0+2tna2ljXl9kZmRgY2RiYWFjZmtoZmz/7vX16+Le4+Tf3N7l5eDe5Onj3+Dm5uLk6fL39O/u9ffu7fluZ2VpZmJhaHVzbnT9e2tmam1mXmVwfHdx+evq7/Dq6urr7+/u7vV+/PXz9vr38Ph3e/PxfnF78/1qY2prZ2NlamtpZGRlZGNjaGprbGxyev36++7l4OHg3tvc4eTg3N/n6eLk6+vm6O9+fvj5fnd69fp1bW1ta2xpbnZ6/29ze/52b3R5d2lpb3NuaXXz7fR99+/0enr28/b++fPw7/j++v32+fv39fh4/Pf5cmdtcHRqbHh5cWZmZWJgYWNlZGRkZ2dpbG797ujm5eDh4ufk3Nrd4N7d3ODp4uHn7vDr8/f/evh9dG9tbW5samx2d21rbm1vbWdvenVqZmpvbmt37unu9Ozp8Pn88Ors9vTr7vR8eP39/3h6enBya294dnJqbXNzbm58+XdnZmtsaGVnbWxnYGdqa2tw9+zn6eji5Obs6+Xe3+fn4uTq8Ovn6O378+/3fXr9/3xzdv19fHn++PZ+cHb8fXJrb3BtYl9kZmdkav77fXN29vr++u/l5+/v7OzzfHv38PPz9/T1fm5vdXJ2cXV8e3d0efx+bWZsbGZeYWRiXVtdYWZnbH3t6Orr5ePi5eLd3Nzf4N/f4uzp4uXr8u3r9Hdw/v9xbXB0b29obXF1em99/nlxbGxoZmNgZWtzcXP87/R6evDu8fLq5uXn7u3t9P169/f5/H79c2tlZ2xrbG51fPT7ePrz8f56e351Z2NkYl9eXmRpZmd1+fj5+u3r6ejr5ePk5+bk5ebr6ePk4+nr6Oz1fP72/Hx6+fT1envx8vl++/15a2ZlX2BeXWJoaGlscXh6dnR+8Ozt6uHh5+zr6Obv9Ovs7+/1+/11a2ttbW5qcHl3d3B8+Pv1e3h4bmVeXl1dXF5jZ2llbnx+9/vr5+Ti59/e3uPl4eLg4uLm6unw8/H4fnB2/n14dHd8fHhw/vT1/PryfW9naGdjZGJpbnFwcH58/v367ezt8Ovm6er09vP3+f348vV8dXp4b2ttbm5wcXb7+/f88uzq6/fw93RqZGhmY2BeYmJiX2RsbGprfu3r7O7p6Onq7+Xi5OXk4OTk6uzr8vZ++fn/+Hl97/f07vTv6vj78HhxZGBjX19cXmBiZGFrc3Bze/Xr5+vo4ubo7Ovo6ez27uvx93z6+HpybnFwdm9veXv8eXn4fn52fm1ubmVmX2NhXWRkYGJlbW5wdfPr7ujn5uDl5uXg397j6Oft6/b1fv5+bG54cnxwdfv5fv3t8+/w9/D9eHBub2xmYGRmZ2pqc3RxeHj78+zs8Ovr6fD47PP3/fju+f53//15d218fn55fO3y7fDv6vP1+/58dXJqaWxoY19fXF1dXWZlZmtsffTv8e3p6erq4+Dj4t/e4uPm7enu7vZ39n75/vbu8Oz08u3y9Xr9eW1pZWZiXl1dYF1gY2pwcXx59uzq6e3l4+Tl6ePk7vT16+30+/7wdnBudf5ud3j99H34/vh+/n5udm1sbGpvamxiZWZjZWRvenp3d/nu7/Hs5Ofn7Ovk6eXn6Obt7Pr1/HN1cv95evb57uzr8PHr7PH8+fZ9fW9wbmViXmRgYGlndXB3fHzy9fPx9O7t8Pbw7vT2fu/0/fx5/Pd9fHruc/Pm8ON67O/16v56bXVubmtka2tmYFxgYF1fZW9pbW1+/Pj0+eTo4ufs5uLf4uXe4+bp7uv0+3X99Pbu8uzu7O7x6O/7cG5mdnFraWNiXVtdXWFjZ294ef/27+3s8uzi5+bn6ufo6/Ls5ur1e/z+eXhw+fp9fXr4+Hp4e/x3bmhna2VpZ2luaWVfY2ZubGv38/n+/Ozt8vTr5+vs7unm6Ozr6e3y+nz6eXV0cvf78/jy7O/s8+zr8fh5eXp2c3V4bmllYWZlZmhufHl9d3n5fn51ffr++3z38vLy+e3s9Pz79fp8fvLq7fHw6uPp8/Xt9Hl0bHBubmppamJhXF1iXl9ia3Nta2t1/np5/Ovr7uvq4uHj4uDf5urs6Oz58PTv6uzt8Ozr7PL47vlya2ZrZ2VmZ2dhX19kZGRrb3Z4dnp69/Tw9u7p7Oru6OPm5efi4ubr9/H+dnl4+Pt4dHf/eHFxdXlubGpscW5raWpqaGZob3B0dHf7fHl1efT4+fHq6O7u7uro7O3s6u3z+n76eXp7e/T6+Pb18fPy9u3r9fh79vd3dHP+cm9tbHFpa2ppbWhra29wbG9rdHV3/P3w7O3u6uPl6u7t7PT38+jm6ujq6/D69fzz93t6c3ZpZmNgY15eXl9kYGFiZ2psbm9+dXv99u3s6+rl4uPf49/e4uDk4+Pq7e7s8PT5e/R9e3pwenJvamlpYmRhZ2hnaGlua2hoZ29qbnV59vbw8O7p6+rs5uHm5Ofj5ejs8fB9d3Nz/nZxcnN1cXVwe3dxdmpwb2prZ2xtbGpud2xsb3R7c3t+/fx99vz27/X19PX59/f48vz6+/bw8/Hz7u3v9fvz8fXu7urq7O/w83x8c3R3b3BsbGdlY19iYF9gYGhrbGtvfHt8evvt7+zq5uLk5OTi4+Xk5eTm6Orv6u709PT1fXptb3BnY2BfXl1eW1xbXF1fZ2Zra256ev767urr6Ojk3+Di4t/h4uPo5ebm6fPz+X54dn58eHP//ndxbHBwamVjampoZmRnZWVjZ2xsbnX38PDu8Ofo6Onr5eXp6+vn5+nu7e/2+Hd0c3B0cnh7eXl7/XdxcXV4dXJranRwa2hsbmlqaGtrb3t6/PP5+fny+fL7+u718vj09ez++/Ty8/r48+709PTq7ezn4uXm4Orr7O12bHJvbGZmaGRgXl5gX2FlaXB1d3L+fvr7++3y7Ovq4ePk5ubl5Ojp5+Tp6+3v+O7r4d3ndO9sa31eYl9eYl5ZXl9oXFtfY2NwbGz3cfJ76e5y5OLk6OTs7u/w4PT06ODu7vXt7fp4eOp49O9x/ut7a350aWVhbfxnYW9qYGpifux3eOPj5+Po39/t7OXo3+nj39/r4+nw5v125vB3fGp4a25t7flw4f16dnP1aG1sbVx5Z1ZuV2haY/hzfm12bO33d+9p/up9fHbre/92fX1+fur3+Ojteejncerl3Orm29zt5trsfv7w+/9tb11iYVpmVGBpbFljd2FkcP1Z8+Jm9uHo4gpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvIGIvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjE1YjI5NgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvCkBAIC0wLDAgKzEsMTcgQEAKKzk3NSAzMiAwCis5NzUgMzIgNjAwMDAwCis5NzUgMzIgMTIwMDAwMAorOTc1IDMyIDE4MDAwMDAKKzk3NSAzMiAyNDAwMDAwCis5NzUgMzIgMzAwMDAwMAorOTc1IDMyIDM2MDAwMDAKKzk3NSAzMiA0MjAwMDAwCis5NzUgMzIgNDgwMDAwMAorOTc1IDMyIDU0MDAwMDAKKzk3NSAzMiA2MDAwMDAwCis5NzUgMzIgNjYwMDAwMAorOTc1IDMyIDcyMDAwMDAKKzk3NSAzMiA3ODAwMDAwCis5NzUgMzIgODQwMDAwMAorOTc1IDMyIDkwMDAwMDAKKzUyMCAzMiA5NjAwMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2dzbV8xY2hfOGtoel8xM2ticHMucmF3IGIvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjkwM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMgYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUyNTgxZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaDI2MwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY4NzNkNAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaW5mbwpAQCAtMCwwICsxLDEyMiBAQAorMjYzNjIgMzIgMAorMTIwMjMgMCA4MzMzMworMTA2NDcgMCAxNjY2NjYKKzEwMjY5IDAgMjUwMDAwCisxMTA3NiAwIDMzMzMzMworMTExMDQgMCA0MTY2NjYKKzU5MDkgMCA1MDAwMDAKKzQyOTEgMCA1ODMzMzMKKzUxNDkgMCA2NjY2NjYKKzUzNTMgMCA3NTAwMDAKKzUxODUgMCA4MzMzMzMKKzI3MzYgMCA5MTY2NjYKKzIxNTc1IDMyIDEwMDAwMDAKKzIxOTYgMCAxMDgzMzMzCis0MzQwIDAgMTE2NjY2NgorMzEwOSAwIDEyNTAwMDAKKzQ0MTAgMCAxMzMzMzMzCisxNzMxIDAgMTQxNjY2NgorNDU1NyAwIDE1MDAwMDAKKzMzNzYgMCAxNTgzMzMzCisxMzUyIDAgMTY2NjY2NgorMjg0NCAwIDE3NTAwMDAKKzE3ODcgMCAxODMzMzMzCisxMDg4IDAgMTkxNjY2NgorMzY4NDMgMzIgMjAwMDAwMAorMjUyMCAwIDIwODMzMzMKKzM3NDkgMCAyMTY2NjY2CiszNzg0IDAgMjI1MDAwMAorMzQwMiAwIDIzMzMzMzMKKzM3OTUgMCAyNDE2NjY2CisyMzQ1IDAgMjUwMDAwMAorMzE0MiAwIDI1ODMzMzMKKzI5NDggMCAyNjY2NjY2CisyMDE4IDAgMjc1MDAwMAorNTEzMyAwIDI4MzMzMzMKKzIyNzYgMCAyOTE2NjY2CisyMzQ2OCAzMiAzMDAwMDAwCisxNTIyIDAgMzA4MzMzMworMjI5OSAwIDMxNjY2NjYKKzMyNzMgMCAzMjUwMDAwCisyNjMwIDAgMzMzMzMzMworMjkxNSAwIDM0MTY2NjYKKzMwMzIgMCAzNTAwMDAwCisxODkwIDAgMzU4MzMzMworMzcxOCAwIDM2NjY2NjYKKzE5OTAgMCAzNzUwMDAwCiszMTM5IDAgMzgzMzMzMworMTgwNiAwIDM5MTY2NjYKKzIzMjA4IDMyIDQwMDAwMDAKKzE0MTkgMCA0MDgzMzMzCisyMjYzIDAgNDE2NjY2NgorMzEzMSAwIDQyNTAwMDAKKzI2NDUgMCA0MzMzMzMzCisxODgwIDAgNDQxNjY2NgorMjIzOSAwIDQ1MDAwMDAKKzM2MzcgMCA0NTgzMzMzCisxOTQxIDAgNDY2NjY2NgorMTU3NyAwIDQ3NTAwMDAKKzM3NzcgMCA0ODMzMzMzCisxODE2IDAgNDkxNjY2NgorMTk2MDEgMzIgNTAwMDAwMAorMTEwNCAwIDUwODMzMzMKKzI4MDggMCA1MTY2NjY2CisyNDExIDAgNTI1MDAwMAorMjE1OSAwIDUzMzMzMzMKKzI0MTEgMCA1NDE2NjY2CisyNDA4IDAgNTUwMDAwMAorMjM4OCAwIDU1ODMzMzMKKzI0MTggMCA1NjY2NjY2CisxNDgxIDAgNTc1MDAwMAorMTkyNiAwIDU4MzMzMzMKKzkwMjIgMzIgNTkxNjY2NgorMjkyIDAgNjAwMDAwMAorNzAxIDAgNjA4MzMzMworNzQ3IDAgNjE2NjY2NgorMjA1OSAwIDYyNTAwMDAKKzE2OTMgMCA2MzMzMzMzCisyMDc4IDAgNjQxNjY2NgorMjk3NSAwIDY1MDAwMDAKKzEzMTcgMCA2NTgzMzMzCisxNzQyIDAgNjY2NjY2NgorMTAxOSAwIDY3NTAwMDAKKzEwNTMgMCA2ODMzMzMzCisxNDE4MyAzMiA2OTE2NjY2CisxNDY3IDAgNzAwMDAwMAorOTk0IDAgNzA4MzMzMworMTcwOSAwIDcxNjY2NjYKKzgzOCAwIDcyNTAwMDAKKzEzMjggMCA3MzMzMzMzCisyMjkyIDAgNzQxNjY2NgorMTgyOSAwIDc1MDAwMDAKKzE3MjggMCA3NTgzMzMzCisyNDM2IDAgNzY2NjY2NgorMTg1MiAwIDc3NTAwMDAKKzIxOTAgMCA3ODMzMzMzCisxNTE2NyAzMiA3OTE2NjY2CisxMTg4IDAgODAwMDAwMAorMjA3MCAwIDgwODMzMzMKKzMzMTYgMCA4MTY2NjY2CisyNjM2IDAgODI1MDAwMAorOTUwIDAgODMzMzMzMworMTI2MCAwIDg0MTY2NjYKKzkwNiAwIDg1MDAwMDAKKzEyOTQgMCA4NTgzMzMzCisxMjk4IDAgODY2NjY2NgorMTg5NyAwIDg3NTAwMDAKKzEzNDggMCA4ODMzMzMzCisxMzE5NCAzMiA4OTE2NjY2CisxMDQyIDAgOTAwMDAwMAorMTI1OCAwIDkwODMzMzMKKzE0NTcgMCA5MTY2NjY2Cis5OTAgMCA5MjUwMDAwCis5MDAgMCA5MzMzMzMzCis5NjMgMCA5NDE2NjY2CiszNDQ4IDAgOTUwMDAwMAorNzc0IDAgOTU4MzMzMworMTA3NSAwIDk2NjY2NjYKKzc1MCAwIDk3NTAwMDAKKzEwNTQgMCA5ODMzMzMzCisxMzEzOSAzMiA5OTE2NjY2CiszMTA0IDAgMTAwMDAwMDAKKzMzNjYgMCAxMDA4MzMzMwpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oZXZjXzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaGV2YyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxZjdjZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oZXZjXzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjllNTU1NAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8KQEAgLTAsMCArMSwzMDIgQEAKKzEwNzUgMTI4IDAKKzEwNzUgMTI4IDAKKzY4NjEzIDMyIDY2Njg3CisxOTAyNSAwIDE5OTY4NworMjQwNSAwIDEzMzY4NworNzc3IDAgOTk2ODcKKzY4MSAwIDE2NjY4NworMjAyNTQgMCAzMzM2ODcKKzI5MjcgMCAyNjY2ODcKKzc2NiAwIDIzMzY4NworNjU4IDAgMjk5Njg3CisyMDc4NiAwIDQ2NjY4NworNDIxNCAwIDM5OTY4NworNjA5IDAgMzY2Njg3Cis2NjEgMCA0MzM2ODcKKzIwODM4IDAgNTk5Njg3Cis0MjA5IDAgNTMzNjg3Cis1MDYgMCA0OTk2ODcKKzU4NiAwIDU2NjY4NworMjA0MTUgMCA3MzM2ODcKKzQyMDcgMCA2NjY2ODcKKzQyNyAwIDYzMzY4NworNTE0IDAgNjk5Njg3CisyNDQ1NyAwIDg5OTY4NworMTkwNCAwIDgzMzY4NworOTIxIDAgNzY2Njg3Cis5OTIgMCA3OTk2ODcKKzU0MyAwIDg2NjY4NworMjQzNDIgMCAxMDY2Njg3CisxODIyIDAgOTk5Njg3Cis4NDAgMCA5MzM2ODcKKzg5MiAwIDk2NjY4NworNzE1IDAgMTAzMzY4NworMjI4OTMgMCAxMjMzNjg3CisxNjE4IDAgMTE2NjY4NworODgxIDAgMTA5OTY4NworODkwIDAgMTEzMzY4NworNzk0IDAgMTE5OTY4NworMjQyOTIgMCAxMzk5Njg3CisxNjczIDAgMTMzMzY4NworNzU1IDAgMTI2NjY4NworODEwIDAgMTI5OTY4NworNTg4IDAgMTM2NjY4NworMTk4MjggMCAxNTMzNjg3CisxNTM4IDAgMTQ2NjY4NworODk0IDAgMTQzMzY4NworOTMzIDAgMTQ5OTY4NworMTk4NTMgMCAxNjY2Njg3CisyMDExIDAgMTU5OTY4NworOTgxIDAgMTU2NjY4NworOTAwIDAgMTYzMzY4NworMjI4NjkgMCAxODMzNjg3CisxNTYyIDAgMTc2NjY4NworODQyIDAgMTY5OTY4NworNzY1IDAgMTczMzY4NworNjY1IDAgMTc5OTY4NworMjIzNDYgMCAxOTY2Njg3CisyMjQ1IDAgMTg5OTY4NworNTE2IDAgMTg2NjY4NworNjA0IDAgMTkzMzY4NworMjQzMzMgMCAyMDk5Njg3CisxNzY1IDAgMjAzMzY4NworMzE4IDAgMTk5OTY4NworMzIwIDAgMjA2NjY4NworMTg1NzcgMCAyMTk5Njg3CisxMTIzIDAgMjE2NjY4NworMzM3IDAgMjEzMzY4NworMTc1MDkgMCAyMjk5Njg3Cis4NjkgMCAyMjY2Njg3Cis5MDEgMCAyMjMzNjg3CisyMzM2NiAwIDI0MzM2ODcKKzEyMTcgMCAyMzY2Njg3CiszODAgMCAyMzMzNjg3CiszNDcgMCAyMzk5Njg3CisxOTU0MiAwIDI1MzM2ODcKKzE4ODcgMCAyNDk5Njg3Cis0NjcgMCAyNDY2Njg3CisxODkzOSAwIDI2NjY2ODcKKzI4NjMgMCAyNTk5Njg3CiszMTcgMCAyNTY2Njg3CisyNzIgMCAyNjMzNjg3CisxOTM1MyAwIDI3OTk2ODcKKzIwOTIgMCAyNzMzNjg3CisyMDMgMCAyNjk5Njg3CiszMTAgMCAyNzY2Njg3CisxODgwMCAwIDI5MzM2ODcKKzIwMzggMCAyODY2Njg3CisyNDIgMCAyODMzNjg3CisxOTkgMCAyODk5Njg3CisxNzQ1MiAwIDMwOTk2ODcKKzEwNjAgMCAzMDMzNjg3CiszMDEgMCAyOTY2Njg3Cis0NTIgMCAyOTk5Njg3CisyNTYgMCAzMDY2Njg3CisyMTM1MiAwIDMxOTk2ODcKKzQwOSAwIDMxNjY2ODcKKzE3MyAwIDMxMzM2ODcKKzE5MTQyIDAgMzI5OTY4NworNjQyIDAgMzI2NjY4NworNDY4IDAgMzIzMzY4NworMTkwNjYgMCAzNDMzNjg3Cis2MzUgMCAzMzY2Njg3CisxOTcgMCAzMzMzNjg3CisxOTAgMCAzMzk5Njg3CisxODgxMyAwIDM1NjY2ODcKKzk2OSAwIDM0OTk2ODcKKzE2NSAwIDM0NjY2ODcKKzIwMyAwIDM1MzM2ODcKKzE3MzYyIDAgMzczMzY4NworMjQ2IDAgMzY2NjY4NworMjM2IDAgMzU5OTY4NworMTc0IDAgMzYzMzY4NworMTY0IDAgMzY5OTY4NworMTcwODEgMCAzODk5Njg3CiszNTMgMCAzODMzNjg3CisyMjIgMCAzNzY2Njg3CisxODEgMCAzNzk5Njg3CisxNDggMCAzODY2Njg3CisxMDgzNSAwIDM5OTk2ODcKKzE4NSAwIDM5NjY2ODcKKzEzOSAwIDM5MzM2ODcKKzc1MTAgMCA0MTMzNjg3CisxNDkgMCA0MDY2Njg3CisxMjkgMCA0MDMzNjg3CisxMzIgMCA0MDk5Njg3CisxMDYzIDAgNDE2NjY4NworODA1IDAgNDI2NjY4NworMTU3IDAgNDIzMzY4NworMzk0IDAgNDE5OTY4NworOTA4NDAgMCA0Mzk5Njg3Cis2MTU5IDAgNDMzMzY4NworMTc1MiAwIDQyOTk2ODcKKzk4NSAwIDQzNjY2ODcKKzMxMzM4IDAgNDUzMzY4NworMzM5MCAwIDQ0NjY2ODcKKzc3MiAwIDQ0MzM2ODcKKzc4MSAwIDQ0OTk2ODcKKzMxMDg0IDAgNDY2NjY4NworMzQ5OCAwIDQ1OTk2ODcKKzgxOCAwIDQ1NjY2ODcKKzg4MSAwIDQ2MzM2ODcKKzMwNDE2IDAgNDc5OTY4NworMzI2NSAwIDQ3MzM2ODcKKzgxNSAwIDQ2OTk2ODcKKzc5MCAwIDQ3NjY2ODcKKzMxMDUzIDAgNDkzMzY4NworMzEwNiAwIDQ4NjY2ODcKKzcwOCAwIDQ4MzM2ODcKKzcxMyAwIDQ4OTk2ODcKKzMwMjMwIDAgNTA2NjY4NworMzIxNCAwIDQ5OTk2ODcKKzYzOSAwIDQ5NjY2ODcKKzc2OCAwIDUwMzM2ODcKKzI5NjU3IDAgNTE5OTY4NworMzAxMyAwIDUxMzM2ODcKKzYyMiAwIDUwOTk2ODcKKzcyMCAwIDUxNjY2ODcKKzI5MzQ0IDAgNTMzMzY4NworMzE5NiAwIDUyNjY2ODcKKzcxMyAwIDUyMzM2ODcKKzc3NSAwIDUyOTk2ODcKKzMwNDIwIDAgNTQ2NjY4NworMzM3NCAwIDUzOTk2ODcKKzgwMyAwIDUzNjY2ODcKKzcxNyAwIDU0MzM2ODcKKzI5OTYwIDAgNTU5OTY4NworMzI4MyAwIDU1MzM2ODcKKzc5MyAwIDU0OTk2ODcKKzc5MCAwIDU1NjY2ODcKKzMxMDExIDAgNTczMzY4NworMzM5NyAwIDU2NjY2ODcKKzgwOSAwIDU2MzM2ODcKKzgzMSAwIDU2OTk2ODcKKzMxMTk0IDAgNTg2NjY4NworMzQwMSAwIDU3OTk2ODcKKzgwNyAwIDU3NjY2ODcKKzgyNyAwIDU4MzM2ODcKKzMwMzI2IDAgNTk5OTY4NworMzE4NiAwIDU5MzM2ODcKKzgxOCAwIDU4OTk2ODcKKzg2MyAwIDU5NjY2ODcKKzMxNTU5IDAgNjEzMzY4NworMzM2NCAwIDYwNjY2ODcKKzg0MCAwIDYwMzM2ODcKKzkxOSAwIDYwOTk2ODcKKzMyMDEzIDAgNjI2NjY4NworMzQ5NSAwIDYxOTk2ODcKKzg3MSAwIDYxNjY2ODcKKzgwMyAwIDYyMzM2ODcKKzMwMjk0IDAgNjM5OTY4NworMzE1MyAwIDYzMzM2ODcKKzcxNiAwIDYyOTk2ODcKKzgxMiAwIDYzNjY2ODcKKzI5OTUyIDAgNjUzMzY4NworMzI5OSAwIDY0NjY2ODcKKzgwMSAwIDY0MzM2ODcKKzc0OSAwIDY0OTk2ODcKKzMwNTk4IDAgNjY2NjY4NworMzUzNiAwIDY1OTk2ODcKKzg4NyAwIDY1NjY2ODcKKzg1MCAwIDY2MzM2ODcKKzE3MjQ2IDAgNjY5OTY4NworMzExMTAgMCA2ODMzNjg3CiszMTk4IDAgNjc2NjY4NworODA5IDAgNjczMzY4NworODM2IDAgNjc5OTY4NworMjk3ODQgMCA2OTY2Njg3CiszMTU1IDAgNjg5OTY4NworODU5IDAgNjg2NjY4NworOTU4IDAgNjkzMzY4NworMzA2NjYgMCA3MDk5Njg3CiszMzcxIDAgNzAzMzY4NworODg2IDAgNjk5OTY4NworODYxIDAgNzA2NjY4NworMzA0MTYgMCA3MjMzNjg3CiszMzUwIDAgNzE2NjY4NworOTE3IDAgNzEzMzY4NworOTg3IDAgNzE5OTY4NworMjk1MDkgMCA3MzY2Njg3CiszNTc0IDAgNzI5OTY4NworOTcyIDAgNzI2NjY4NworODg1IDAgNzMzMzY4NworMzA4NzIgMCA3NDk5Njg3CiszMzk5IDAgNzQzMzY4NworODk4IDAgNzM5OTY4NworMTAyNyAwIDc0NjY2ODcKKzMxMTU1IDAgNzYzMzY4NworMzQ1NCAwIDc1NjY2ODcKKzk2NSAwIDc1MzM2ODcKKzg0MSAwIDc1OTk2ODcKKzI4NDg3IDAgNzc2NjY4NworMzYxNiAwIDc2OTk2ODcKKzkyMSAwIDc2NjY2ODcKKzk5MSAwIDc3MzM2ODcKKzIzMjA4IDAgNzg5OTY4NworMzU1MSAwIDc4MzM2ODcKKzkxOCAwIDc3OTk2ODcKKzg5NCAwIDc4NjY2ODcKKzE2OTgyIDAgODAzMzY4NworMzQ1OCAwIDc5NjY2ODcKKzg0NCAwIDc5MzM2ODcKKzk0MyAwIDc5OTk2ODcKKzMwMzk2IDAgODE5OTY4NworNDk2MyAwIDgxMzM2ODcKKzE0MTYgMCA4MDY2Njg3CisxNjM5IDAgODA5OTY4NworNTI0IDAgODE2NjY4NworMTM2OCAwIDgyOTk2ODcKKzU2NSAwIDgyNjY2ODcKKzM5MiAwIDgyMzM2ODcKKzQxMzE3IDMyIDgzOTk2ODcKKzE4NSAwIDgzNjY2ODcKKzQ3NyAwIDgzMzM2ODcKKzUzNDIgMCA4NTMzNjg3CisxMjc1IDAgODQ2NjY4NworMTIxIDAgODQzMzY4NworOTgyIDAgODQ5OTY4NworNjQ2NSAwIDg2OTk2ODcKKzI2MDYgMCA4NjMzNjg3CisxMTYzIDAgODU2NjY4NworOTQzIDAgODU5OTY4NworMTE4NiAwIDg2NjY2ODcKKzExNTkzIDAgODgzMzY4NworMzEyMiAwIDg3NjY2ODcKKzEyNzggMCA4NzMzNjg3CisxNTkzIDAgODc5OTY4NworOTA5OSAwIDg5OTk2ODcKKzk3OCAwIDg5MzM2ODcKKzc0OCAwIDg4NjY2ODcKKzgzNSAwIDg4OTk2ODcKKzM2NCAwIDg5NjY2ODcKKzQ3OTkgMCA5MDk5Njg3CiszNjUgMCA5MDY2Njg3CisyMTUgMCA5MDMzNjg3Cis0MzY3IDAgOTE5OTY4NworMzAyIDAgOTE2NjY4NworNDgwIDAgOTEzMzY4NworNjE4MCAwIDkzMzM2ODcKKzc3MSAwIDkyNjY2ODcKKzI0NiAwIDkyMzM2ODcKKzI4MSAwIDkyOTk2ODcKKzQ2MzYgMCA5Mzk5Njg3CisyMTEgMCA5MzY2Njg3Cis0MDM3IDAgOTQ5OTY4NworMzgyIDAgOTQ2NjY4NworNDg2IDAgOTQzMzY4NworMzk3NSAwIDk1OTk2ODcKKzMxMiAwIDk1NjY2ODcKKzQ3NCAwIDk1MzM2ODcKKzY4ODAgMCA5NzMzNjg3CisxMTE2IDAgOTY2NjY4NworMjA2IDAgOTYzMzY4NworNjk4IDAgOTY5OTY4NworNjI1NCAwIDk4OTk2ODcKKzI1ODEgMCA5ODMzNjg3CisxMzAzIDAgOTc2NjY4NworOTg1IDAgOTc5OTY4NworOTY3IDAgOTg2NjY4NworNjQ4NiAwIDEwMDMzNjg3CiszNTU1IDAgOTk2NjY4NworMTQzMCAwIDk5MzM2ODcKKzE2MDUgMCA5OTk5Njg3CmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBjNDg2OQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXAzX3N0ZXJlb18xOTJrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDQxNCBAQAorNTc2IDMyIDAKKzU3NiAzMiAyNDAwMAorNTc2IDMyIDQ4MDAwCis1NzYgMzIgNzIwMDAKKzU3NiAzMiA5NjAwMAorNTc2IDMyIDEyMDAwMAorNTc2IDMyIDE0NDAwMAorNTc2IDMyIDE2ODAwMAorNTc2IDMyIDE5MjAwMAorNTc2IDMyIDIxNjAwMAorNTc2IDMyIDI0MDAwMAorNTc2IDMyIDI2NDAwMAorNTc2IDMyIDI4ODAwMAorNTc2IDMyIDMxMjAwMAorNTc2IDMyIDMzNjAwMAorNTc2IDMyIDM2MDAwMAorNTc2IDMyIDM4NDAwMAorNTc2IDMyIDQwODAwMAorNTc2IDMyIDQzMjAwMAorNTc2IDMyIDQ1NjAwMAorNTc2IDMyIDQ4MDAwMAorNTc2IDMyIDUwNDAwMAorNTc2IDMyIDUyODAwMAorNTc2IDMyIDU1MjAwMAorNTc2IDMyIDU3NjAwMAorNTc2IDMyIDYwMDAwMAorNTc2IDMyIDYyNDAwMAorNTc2IDMyIDY0ODAwMAorNTc2IDMyIDY3MjAwMAorNTc2IDMyIDY5NjAwMAorNTc2IDMyIDcyMDAwMAorNTc2IDMyIDc0NDAwMAorNTc2IDMyIDc2ODAwMAorNTc2IDMyIDc5MjAwMAorNTc2IDMyIDgxNjAwMAorNTc2IDMyIDg0MDAwMAorNTc2IDMyIDg2NDAwMAorNTc2IDMyIDg4ODAwMAorNTc2IDMyIDkxMjAwMAorNTc2IDMyIDkzNjAwMAorNTc2IDMyIDk2MDAwMAorNTc2IDMyIDk4NDAwMAorNTc2IDMyIDEwMDgwMDAKKzU3NiAzMiAxMDMyMDAwCis1NzYgMzIgMTA1NjAwMAorNTc2IDMyIDEwODAwMDAKKzU3NiAzMiAxMTA0MDAwCis1NzYgMzIgMTEyODAwMAorNTc2IDMyIDExNTIwMDAKKzU3NiAzMiAxMTc2MDAwCis1NzYgMzIgMTIwMDAwMAorNTc2IDMyIDEyMjQwMDAKKzU3NiAzMiAxMjQ4MDAwCis1NzYgMzIgMTI3MjAwMAorNTc2IDMyIDEyOTYwMDAKKzU3NiAzMiAxMzIwMDAwCis1NzYgMzIgMTM0NDAwMAorNTc2IDMyIDEzNjgwMDAKKzU3NiAzMiAxMzkyMDAwCis1NzYgMzIgMTQxNjAwMAorNTc2IDMyIDE0NDAwMDAKKzU3NiAzMiAxNDY0MDAwCis1NzYgMzIgMTQ4ODAwMAorNTc2IDMyIDE1MTIwMDAKKzU3NiAzMiAxNTM2MDAwCis1NzYgMzIgMTU2MDAwMAorNTc2IDMyIDE1ODQwMDAKKzU3NiAzMiAxNjA4MDAwCis1NzYgMzIgMTYzMjAwMAorNTc2IDMyIDE2NTYwMDAKKzU3NiAzMiAxNjgwMDAwCis1NzYgMzIgMTcwNDAwMAorNTc2IDMyIDE3MjgwMDAKKzU3NiAzMiAxNzUyMDAwCis1NzYgMzIgMTc3NjAwMAorNTc2IDMyIDE4MDAwMDAKKzU3NiAzMiAxODI0MDAwCis1NzYgMzIgMTg0ODAwMAorNTc2IDMyIDE4NzIwMDAKKzU3NiAzMiAxODk2MDAwCis1NzYgMzIgMTkyMDAwMAorNTc2IDMyIDE5NDQwMDAKKzU3NiAzMiAxOTY4MDAwCis1NzYgMzIgMTk5MjAwMAorNTc2IDMyIDIwMTYwMDAKKzU3NiAzMiAyMDQwMDAwCis1NzYgMzIgMjA2NDAwMAorNTc2IDMyIDIwODgwMDAKKzU3NiAzMiAyMTEyMDAwCis1NzYgMzIgMjEzNjAwMAorNTc2IDMyIDIxNjAwMDAKKzU3NiAzMiAyMTg0MDAwCis1NzYgMzIgMjIwODAwMAorNTc2IDMyIDIyMzIwMDAKKzU3NiAzMiAyMjU2MDAwCis1NzYgMzIgMjI4MDAwMAorNTc2IDMyIDIzMDQwMDAKKzU3NiAzMiAyMzI4MDAwCis1NzYgMzIgMjM1MjAwMAorNTc2IDMyIDIzNzYwMDAKKzU3NiAzMiAyNDAwMDAwCis1NzYgMzIgMjQyNDAwMAorNTc2IDMyIDI0NDgwMDAKKzU3NiAzMiAyNDcyMDAwCis1NzYgMzIgMjQ5NjAwMAorNTc2IDMyIDI1MjAwMDAKKzU3NiAzMiAyNTQ0MDAwCis1NzYgMzIgMjU2ODAwMAorNTc2IDMyIDI1OTIwMDAKKzU3NiAzMiAyNjE2MDAwCis1NzYgMzIgMjY0MDAwMAorNTc2IDMyIDI2NjQwMDAKKzU3NiAzMiAyNjg4MDAwCis1NzYgMzIgMjcxMjAwMAorNTc2IDMyIDI3MzYwMDAKKzU3NiAzMiAyNzYwMDAwCis1NzYgMzIgMjc4NDAwMAorNTc2IDMyIDI4MDgwMDAKKzU3NiAzMiAyODMyMDAwCis1NzYgMzIgMjg1NjAwMAorNTc2IDMyIDI4ODAwMDAKKzU3NiAzMiAyOTA0MDAwCis1NzYgMzIgMjkyODAwMAorNTc2IDMyIDI5NTIwMDAKKzU3NiAzMiAyOTc2MDAwCis1NzYgMzIgMzAwMDAwMAorNTc2IDMyIDMwMjQwMDAKKzU3NiAzMiAzMDQ4MDAwCis1NzYgMzIgMzA3MjAwMAorNTc2IDMyIDMwOTYwMDAKKzU3NiAzMiAzMTIwMDAwCis1NzYgMzIgMzE0NDAwMAorNTc2IDMyIDMxNjgwMDAKKzU3NiAzMiAzMTkyMDAwCis1NzYgMzIgMzIxNjAwMAorNTc2IDMyIDMyNDAwMDAKKzU3NiAzMiAzMjY0MDAwCis1NzYgMzIgMzI4ODAwMAorNTc2IDMyIDMzMTIwMDAKKzU3NiAzMiAzMzM2MDAwCis1NzYgMzIgMzM2MDAwMAorNTc2IDMyIDMzODQwMDAKKzU3NiAzMiAzNDA4MDAwCis1NzYgMzIgMzQzMjAwMAorNTc2IDMyIDM0NTYwMDAKKzU3NiAzMiAzNDgwMDAwCis1NzYgMzIgMzUwNDAwMAorNTc2IDMyIDM1MjgwMDAKKzU3NiAzMiAzNTUyMDAwCis1NzYgMzIgMzU3NjAwMAorNTc2IDMyIDM2MDAwMDAKKzU3NiAzMiAzNjI0MDAwCis1NzYgMzIgMzY0ODAwMAorNTc2IDMyIDM2NzIwMDAKKzU3NiAzMiAzNjk2MDAwCis1NzYgMzIgMzcyMDAwMAorNTc2IDMyIDM3NDQwMDAKKzU3NiAzMiAzNzY4MDAwCis1NzYgMzIgMzc5MjAwMAorNTc2IDMyIDM4MTYwMDAKKzU3NiAzMiAzODQwMDAwCis1NzYgMzIgMzg2NDAwMAorNTc2IDMyIDM4ODgwMDAKKzU3NiAzMiAzOTEyMDAwCis1NzYgMzIgMzkzNjAwMAorNTc2IDMyIDM5NjAwMDAKKzU3NiAzMiAzOTg0MDAwCis1NzYgMzIgNDAwODAwMAorNTc2IDMyIDQwMzIwMDAKKzU3NiAzMiA0MDU2MDAwCis1NzYgMzIgNDA4MDAwMAorNTc2IDMyIDQxMDQwMDAKKzU3NiAzMiA0MTI4MDAwCis1NzYgMzIgNDE1MjAwMAorNTc2IDMyIDQxNzYwMDAKKzU3NiAzMiA0MjAwMDAwCis1NzYgMzIgNDIyNDAwMAorNTc2IDMyIDQyNDgwMDAKKzU3NiAzMiA0MjcyMDAwCis1NzYgMzIgNDI5NjAwMAorNTc2IDMyIDQzMjAwMDAKKzU3NiAzMiA0MzQ0MDAwCis1NzYgMzIgNDM2ODAwMAorNTc2IDMyIDQzOTIwMDAKKzU3NiAzMiA0NDE2MDAwCis1NzYgMzIgNDQ0MDAwMAorNTc2IDMyIDQ0NjQwMDAKKzU3NiAzMiA0NDg4MDAwCis1NzYgMzIgNDUxMjAwMAorNTc2IDMyIDQ1MzYwMDAKKzU3NiAzMiA0NTYwMDAwCis1NzYgMzIgNDU4NDAwMAorNTc2IDMyIDQ2MDgwMDAKKzU3NiAzMiA0NjMyMDAwCis1NzYgMzIgNDY1NjAwMAorNTc2IDMyIDQ2ODAwMDAKKzU3NiAzMiA0NzA0MDAwCis1NzYgMzIgNDcyODAwMAorNTc2IDMyIDQ3NTIwMDAKKzU3NiAzMiA0Nzc2MDAwCis1NzYgMzIgNDgwMDAwMAorNTc2IDMyIDQ4MjQwMDAKKzU3NiAzMiA0ODQ4MDAwCis1NzYgMzIgNDg3MjAwMAorNTc2IDMyIDQ4OTYwMDAKKzU3NiAzMiA0OTIwMDAwCis1NzYgMzIgNDk0NDAwMAorNTc2IDMyIDQ5NjgwMDAKKzU3NiAzMiA0OTkyMDAwCis1NzYgMzIgNTAxNjAwMAorNTc2IDMyIDUwNDAwMDAKKzU3NiAzMiA1MDY0MDAwCis1NzYgMzIgNTA4ODAwMAorNTc2IDMyIDUxMTIwMDAKKzU3NiAzMiA1MTM2MDAwCis1NzYgMzIgNTE2MDAwMAorNTc2IDMyIDUxODQwMDAKKzU3NiAzMiA1MjA4MDAwCis1NzYgMzIgNTIzMjAwMAorNTc2IDMyIDUyNTYwMDAKKzU3NiAzMiA1MjgwMDAwCis1NzYgMzIgNTMwNDAwMAorNTc2IDMyIDUzMjgwMDAKKzU3NiAzMiA1MzUyMDAwCis1NzYgMzIgNTM3NjAwMAorNTc2IDMyIDU0MDAwMDAKKzU3NiAzMiA1NDI0MDAwCis1NzYgMzIgNTQ0ODAwMAorNTc2IDMyIDU0NzIwMDAKKzU3NiAzMiA1NDk2MDAwCis1NzYgMzIgNTUyMDAwMAorNTc2IDMyIDU1NDQwMDAKKzU3NiAzMiA1NTY4MDAwCis1NzYgMzIgNTU5MjAwMAorNTc2IDMyIDU2MTYwMDAKKzU3NiAzMiA1NjQwMDAwCis1NzYgMzIgNTY2NDAwMAorNTc2IDMyIDU2ODgwMDAKKzU3NiAzMiA1NzEyMDAwCis1NzYgMzIgNTczNjAwMAorNTc2IDMyIDU3NjAwMDAKKzU3NiAzMiA1Nzg0MDAwCis1NzYgMzIgNTgwODAwMAorNTc2IDMyIDU4MzIwMDAKKzU3NiAzMiA1ODU2MDAwCis1NzYgMzIgNTg4MDAwMAorNTc2IDMyIDU5MDQwMDAKKzU3NiAzMiA1OTI4MDAwCis1NzYgMzIgNTk1MjAwMAorNTc2IDMyIDU5NzYwMDAKKzU3NiAzMiA2MDAwMDAwCis1NzYgMzIgNjAyNDAwMAorNTc2IDMyIDYwNDgwMDAKKzU3NiAzMiA2MDcyMDAwCis1NzYgMzIgNjA5NjAwMAorNTc2IDMyIDYxMjAwMDAKKzU3NiAzMiA2MTQ0MDAwCis1NzYgMzIgNjE2ODAwMAorNTc2IDMyIDYxOTIwMDAKKzU3NiAzMiA2MjE2MDAwCis1NzYgMzIgNjI0MDAwMAorNTc2IDMyIDYyNjQwMDAKKzU3NiAzMiA2Mjg4MDAwCis1NzYgMzIgNjMxMjAwMAorNTc2IDMyIDYzMzYwMDAKKzU3NiAzMiA2MzYwMDAwCis1NzYgMzIgNjM4NDAwMAorNTc2IDMyIDY0MDgwMDAKKzU3NiAzMiA2NDMyMDAwCis1NzYgMzIgNjQ1NjAwMAorNTc2IDMyIDY0ODAwMDAKKzU3NiAzMiA2NTA0MDAwCis1NzYgMzIgNjUyODAwMAorNTc2IDMyIDY1NTIwMDAKKzU3NiAzMiA2NTc2MDAwCis1NzYgMzIgNjYwMDAwMAorNTc2IDMyIDY2MjQwMDAKKzU3NiAzMiA2NjQ4MDAwCis1NzYgMzIgNjY3MjAwMAorNTc2IDMyIDY2OTYwMDAKKzU3NiAzMiA2NzIwMDAwCis1NzYgMzIgNjc0NDAwMAorNTc2IDMyIDY3NjgwMDAKKzU3NiAzMiA2NzkyMDAwCis1NzYgMzIgNjgxNjAwMAorNTc2IDMyIDY4NDAwMDAKKzU3NiAzMiA2ODY0MDAwCis1NzYgMzIgNjg4ODAwMAorNTc2IDMyIDY5MTIwMDAKKzU3NiAzMiA2OTM2MDAwCis1NzYgMzIgNjk2MDAwMAorNTc2IDMyIDY5ODQwMDAKKzU3NiAzMiA3MDA4MDAwCis1NzYgMzIgNzAzMjAwMAorNTc2IDMyIDcwNTYwMDAKKzU3NiAzMiA3MDgwMDAwCis1NzYgMzIgNzEwNDAwMAorNTc2IDMyIDcxMjgwMDAKKzU3NiAzMiA3MTUyMDAwCis1NzYgMzIgNzE3NjAwMAorNTc2IDMyIDcyMDAwMDAKKzU3NiAzMiA3MjI0MDAwCis1NzYgMzIgNzI0ODAwMAorNTc2IDMyIDcyNzIwMDAKKzU3NiAzMiA3Mjk2MDAwCis1NzYgMzIgNzMyMDAwMAorNTc2IDMyIDczNDQwMDAKKzU3NiAzMiA3MzY4MDAwCis1NzYgMzIgNzM5MjAwMAorNTc2IDMyIDc0MTYwMDAKKzU3NiAzMiA3NDQwMDAwCis1NzYgMzIgNzQ2NDAwMAorNTc2IDMyIDc0ODgwMDAKKzU3NiAzMiA3NTEyMDAwCis1NzYgMzIgNzUzNjAwMAorNTc2IDMyIDc1NjAwMDAKKzU3NiAzMiA3NTg0MDAwCis1NzYgMzIgNzYwODAwMAorNTc2IDMyIDc2MzIwMDAKKzU3NiAzMiA3NjU2MDAwCis1NzYgMzIgNzY4MDAwMAorNTc2IDMyIDc3MDQwMDAKKzU3NiAzMiA3NzI4MDAwCis1NzYgMzIgNzc1MjAwMAorNTc2IDMyIDc3NzYwMDAKKzU3NiAzMiA3ODAwMDAwCis1NzYgMzIgNzgyNDAwMAorNTc2IDMyIDc4NDgwMDAKKzU3NiAzMiA3ODcyMDAwCis1NzYgMzIgNzg5NjAwMAorNTc2IDMyIDc5MjAwMDAKKzU3NiAzMiA3OTQ0MDAwCis1NzYgMzIgNzk2ODAwMAorNTc2IDMyIDc5OTIwMDAKKzU3NiAzMiA4MDE2MDAwCis1NzYgMzIgODA0MDAwMAorNTc2IDMyIDgwNjQwMDAKKzU3NiAzMiA4MDg4MDAwCis1NzYgMzIgODExMjAwMAorNTc2IDMyIDgxMzYwMDAKKzU3NiAzMiA4MTYwMDAwCis1NzYgMzIgODE4NDAwMAorNTc2IDMyIDgyMDgwMDAKKzU3NiAzMiA4MjMyMDAwCis1NzYgMzIgODI1NjAwMAorNTc2IDMyIDgyODAwMDAKKzU3NiAzMiA4MzA0MDAwCis1NzYgMzIgODMyODAwMAorNTc2IDMyIDgzNTIwMDAKKzU3NiAzMiA4Mzc2MDAwCis1NzYgMzIgODQwMDAwMAorNTc2IDMyIDg0MjQwMDAKKzU3NiAzMiA4NDQ4MDAwCis1NzYgMzIgODQ3MjAwMAorNTc2IDMyIDg0OTYwMDAKKzU3NiAzMiA4NTIwMDAwCis1NzYgMzIgODU0NDAwMAorNTc2IDMyIDg1NjgwMDAKKzU3NiAzMiA4NTkyMDAwCis1NzYgMzIgODYxNjAwMAorNTc2IDMyIDg2NDAwMDAKKzU3NiAzMiA4NjY0MDAwCis1NzYgMzIgODY4ODAwMAorNTc2IDMyIDg3MTIwMDAKKzU3NiAzMiA4NzM2MDAwCis1NzYgMzIgODc2MDAwMAorNTc2IDMyIDg3ODQwMDAKKzU3NiAzMiA4ODA4MDAwCis1NzYgMzIgODgzMjAwMAorNTc2IDMyIDg4NTYwMDAKKzU3NiAzMiA4ODgwMDAwCis1NzYgMzIgODkwNDAwMAorNTc2IDMyIDg5MjgwMDAKKzU3NiAzMiA4OTUyMDAwCis1NzYgMzIgODk3NjAwMAorNTc2IDMyIDkwMDAwMDAKKzU3NiAzMiA5MDI0MDAwCis1NzYgMzIgOTA0ODAwMAorNTc2IDMyIDkwNzIwMDAKKzU3NiAzMiA5MDk2MDAwCis1NzYgMzIgOTEyMDAwMAorNTc2IDMyIDkxNDQwMDAKKzU3NiAzMiA5MTY4MDAwCis1NzYgMzIgOTE5MjAwMAorNTc2IDMyIDkyMTYwMDAKKzU3NiAzMiA5MjQwMDAwCis1NzYgMzIgOTI2NDAwMAorNTc2IDMyIDkyODgwMDAKKzU3NiAzMiA5MzEyMDAwCis1NzYgMzIgOTMzNjAwMAorNTc2IDMyIDkzNjAwMDAKKzU3NiAzMiA5Mzg0MDAwCis1NzYgMzIgOTQwODAwMAorNTc2IDMyIDk0MzIwMDAKKzU3NiAzMiA5NDU2MDAwCis1NzYgMzIgOTQ4MDAwMAorNTc2IDMyIDk1MDQwMDAKKzU3NiAzMiA5NTI4MDAwCis1NzYgMzIgOTU1MjAwMAorNTc2IDMyIDk1NzYwMDAKKzU3NiAzMiA5NjAwMDAwCis1NzYgMzIgOTYyNDAwMAorNTc2IDMyIDk2NDgwMDAKKzU3NiAzMiA5NjcyMDAwCis1NzYgMzIgOTY5NjAwMAorNTc2IDMyIDk3MjAwMDAKKzU3NiAzMiA5NzQ0MDAwCis1NzYgMzIgOTc2ODAwMAorNTc2IDMyIDk3OTIwMDAKKzU3NiAzMiA5ODE2MDAwCis1NzYgMzIgOTg0MDAwMAorNTc2IDMyIDk4NjQwMDAKKzU3NiAzMiA5ODg4MDAwCis1NzYgMzIgOTkxMjAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMgYi9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6Lm1wMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODNhNDQxCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgxM2NkNAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLmluZm8KQEAgLTAsMCArMSwyNDkgQEAKKzY0NTggMzIgNDAwMDAKKzQwNDAgMCA4MDAwMAorMzI1NSAwIDEyMDAwMAorMzAyNiAwIDE2MDAwMAorMzI5MyAwIDIwMDAwMAorMzA4OSAwIDI0MDAwMAorMzMwNSAwIDI4MDAwMAorMTc5NCAwIDMyMDAwMAorMTg0OCAwIDM2MDAwMAorMTI4OCAwIDQwMDAwMAorMTUxMSAwIDQ0MDAwMAorMTUyNyAwIDQ4MDAwMAorNjE0NiAzMiA1MjAwMDAKKzEyNDMgMCA1NjAwMDAKKzEwOTkgMCA2MDAwMDAKKzEzNTQgMCA2NDAwMDAKKzEzNjYgMCA2ODAwMDAKKzEwNDIgMCA3MjAwMDAKKzE2MDAgMCA3NjAwMDAKKzg3NSAwIDgwMDAwMAorMTcyOCAwIDg0MDAwMAorMTI1NCAwIDg4MDAwMAorOTk0IDAgOTIwMDAwCisxNTkxIDAgOTYwMDAwCis2MjY1IDMyIDEwMDAwMDAKKzEwMTggMCAxMDQwMDAwCis4MjUgMCAxMDgwMDAwCis4NjkgMCAxMTIwMDAwCis5MjEgMCAxMTYwMDAwCis5NzUgMCAxMjAwMDAwCis5MjQgMCAxMjQwMDAwCis4MzQgMCAxMjgwMDAwCisxMDY2IDAgMTMyMDAwMAorNzkzIDAgMTM2MDAwMAorODg5IDAgMTQwMDAwMAorMjA1MCAwIDE0NDAwMDAKKzYyNzYgMzIgMTQ4MDAwMAorODgxIDAgMTUyMDAwMAorMjYwIDAgMTU2MDAwMAorNzMwIDAgMTYwMDAwMAorNDMxIDAgMTY0MDAwMAorMzUxIDAgMTY4MDAwMAorMzIxIDAgMTcyMDAwMAorMzgwMiAwIDE3NjAwMDAKKzE0NiAwIDE4MDAwMDAKKzY0NjIgMCAxODQwMDAwCiszMjQ2IDAgMTg4MDAwMAorNTMzIDAgMTkyMDAwMAorNjIzMSAzMiAxOTYwMDAwCisxMzc4IDAgMjAwMDAwMAorNzE5IDAgMjA0MDAwMAorODE4IDAgMjA4MDAwMAorODU2IDAgMjEyMDAwMAorOTM3IDAgMjE2MDAwMAorNjExIDAgMjIwMDAwMAorMzAzMSAwIDIyNDAwMDAKKzEwNDEgMCAyMjgwMDAwCis2MDQgMCAyMzIwMDAwCis3MTQgMCAyMzYwMDAwCisxMjgzIDAgMjQwMDAwMAorNzU2NSAzMiAyNDQwMDAwCis2MDIgMCAyNDgwMDAwCis1MzAgMCAyNTIwMDAwCisyNTc5IDAgMjU2MDAwMAorMTE1IDAgMjYwMDAwMAorMTA1OCAwIDI2NDAwMDAKKzY4OSAwIDI2ODAwMDAKKzExMTkgMCAyNzIwMDAwCis2OTggMCAyNzYwMDAwCisxMDA2IDAgMjgwMDAwMAorNTQ1IDAgMjg0MDAwMAorMTYxNyAwIDI4ODAwMDAKKzkxMjMgMzIgMjkyMDAwMAorNTI3IDAgMjk2MDAwMAorMTU3NiAwIDMwMDAwMDAKKzQ2NSAwIDMwNDAwMDAKKzc0MSAwIDMwODAwMDAKKzUyMSAwIDMxMjAwMDAKKzEzMjIgMCAzMTYwMDAwCis3NzUgMCAzMjAwMDAwCis4NjMgMCAzMjQwMDAwCis5MTAgMCAzMjgwMDAwCis5MTUgMCAzMzIwMDAwCis5MjYgMCAzMzYwMDAwCis3NTU2IDMyIDM0MDAwMDAKKzc0MSAwIDM0NDAwMDAKKzUyNyAwIDM0ODAwMDAKKzI1MTYgMCAzNTIwMDAwCis0NTkgMCAzNTYwMDAwCis0MDQgMCAzNjAwMDAwCis1MDkgMCAzNjQwMDAwCisxMjI3IDAgMzY4MDAwMAorMTU2MSAwIDM3MjAwMDAKKzQ5MCAwIDM3NjAwMDAKKzcxMiAwIDM4MDAwMDAKKzgwMyAwIDM4NDAwMDAKKzc1MjQgMzIgMzg4MDAwMAorNzMwIDAgMzkyMDAwMAorNDYxIDAgMzk2MDAwMAorMjUyNiAwIDQwMDAwMDAKKzQ1MyAwIDQwNDAwMDAKKzYzMiAwIDQwODAwMDAKKzc4MyAwIDQxMjAwMDAKKzg0MyAwIDQxNjAwMDAKKzkxOCAwIDQyMDAwMDAKKzk2MSAwIDQyNDAwMDAKKzk0OCAwIDQyODAwMDAKKzk1OSAwIDQzMjAwMDAKKzc1OTggMzIgNDM2MDAwMAorNjc4IDAgNDQwMDAwMAorNTY5IDAgNDQ0MDAwMAorODkzIDAgNDQ4MDAwMAorNjI0IDAgNDUyMDAwMAorNzU1IDAgNDU2MDAwMAorMjIzNCAwIDQ2MDAwMDAKKzU1NiAwIDQ2NDAwMDAKKzk0NCAwIDQ2ODAwMDAKKzczOSAwIDQ3MjAwMDAKKzg2MiAwIDQ3NjAwMDAKKzkzOCAwIDQ4MDAwMDAKKzc1NzQgMzIgNDg0MDAwMAorNjk5IDAgNDg4MDAwMAorNzAxIDAgNDkyMDAwMAorNTMwIDAgNDk2MDAwMAorNjg5IDAgNTAwMDAwMAorNzc4IDAgNTA0MDAwMAorODU2IDAgNTA4MDAwMAorOTMwIDAgNTEyMDAwMAorOTc1IDAgNTE2MDAwMAorMTAyMSAwIDUyMDAwMDAKKzEwNzQgMCA1MjQwMDAwCis5NzggMCA1MjgwMDAwCis4MDIxIDMyIDUzMjAwMDAKKzcwNCAwIDUzNjAwMDAKKzYxMCAwIDU0MDAwMDAKKzY5NyAwIDU0NDAwMDAKKzcxMSAwIDU0ODAwMDAKKzgyMCAwIDU1MjAwMDAKKzg0MyAwIDU1NjAwMDAKKzI1MSAwIDU2MDAwMDAKKzMzNjcgMCA1NjQwMDAwCis1MDcgMCA1NjgwMDAwCiszMTY4IDMyIDU3MjAwMDAKKzc3OSAwIDU3NjAwMDAKKzMxNiAwIDU4MDAwMDAKKzYzNSAwIDU4NDAwMDAKKzIwNCAwIDU4ODAwMDAKKzk3OCAwIDU5MjAwMDAKKzEyNyAwIDU5NjAwMDAKKzU4OSAwIDYwMDAwMDAKKzYwNCAwIDYwNDAwMDAKKzY2NiAwIDYwODAwMDAKKzU4MiAwIDYxMjAwMDAKKzcyOSAwIDYxNjAwMDAKKzQxNTIgMzIgNjIwMDAwMAorODU4IDAgNjI0MDAwMAorNzM5IDAgNjI4MDAwMAorODg1IDAgNjMyMDAwMAorNzQ5IDAgNjM2MDAwMAorOTUwIDAgNjQwMDAwMAorNTkzIDAgNjQ0MDAwMAorNzcxIDAgNjQ4MDAwMAorNjc4IDAgNjUyMDAwMAorNTI5IDAgNjU2MDAwMAorODM1IDAgNjYwMDAwMAorMzkxIDAgNjY0MDAwMAorNDY5MiAzMiA2NjgwMDAwCis0NzMgMCA2NzIwMDAwCis3MjQgMCA2NzYwMDAwCiszODEgMCA2ODAwMDAwCis5MDkgMCA2ODQwMDAwCiszOTQgMCA2ODgwMDAwCis2NTkgMCA2OTIwMDAwCiszNjcgMCA2OTYwMDAwCis2NTggMCA3MDAwMDAwCis1MjMgMCA3MDQwMDAwCis1NTQgMCA3MDgwMDAwCis1NTMgMCA3MTIwMDAwCis2MDgwIDMyIDcxNjAwMDAKKzQ5NiAwIDcyMDAwMDAKKzc2MyAwIDcyNDAwMDAKKzkzOSAwIDcyODAwMDAKKzcxNSAwIDczMjAwMDAKKzY3MiAwIDczNjAwMDAKKzYxNCAwIDc0MDAwMDAKKzgxMSAwIDc0NDAwMDAKKzkxNiAwIDc0ODAwMDAKKzExNTMgMCA3NTIwMDAwCis5NDAgMCA3NTYwMDAwCiszMjIgMCA3NjAwMDAwCis2NjEzIDMyIDc2NDAwMDAKKzg1MSAwIDc2ODAwMDAKKzEwMDcgMCA3NzIwMDAwCis1MjAgMCA3NzYwMDAwCis0NTYgMCA3ODAwMDAwCis2MzkgMCA3ODQwMDAwCis3NTggMCA3ODgwMDAwCis4NzkgMCA3OTIwMDAwCisxMTUyIDAgNzk2MDAwMAorMTA2MSAwIDgwMDAwMDAKKzk0NiAwIDgwNDAwMDAKKzg1OSAwIDgwODAwMDAKKzM2MTAgMzIgODEyMDAwMAorODcxIDAgODE2MDAwMAorNzQ2IDAgODIwMDAwMAorMzY3IDAgODI0MDAwMAorMzk3IDAgODI4MDAwMAorOTMwIDAgODMyMDAwMAorMzM3IDAgODM2MDAwMAorNDE4IDAgODQwMDAwMAorNzQwIDAgODQ0MDAwMAorNjM3IDAgODQ4MDAwMAorNjY2IDAgODUyMDAwMAorNjI3IDAgODU2MDAwMAorNDMzOCAzMiA4NjAwMDAwCis3NDUgMCA4NjQwMDAwCis3ODMgMCA4NjgwMDAwCis0NjUgMCA4NzIwMDAwCis0NjAgMCA4NzYwMDAwCis0NTUgMCA4ODAwMDAwCis1MDYgMCA4ODQwMDAwCis0OTIgMCA4ODgwMDAwCis0ODUgMCA4OTIwMDAwCis1MTcgMCA4OTYwMDAwCis1MzQgMCA5MDAwMDAwCiszOTUgMCA5MDQwMDAwCis1NjI2IDMyIDkwODAwMDAKKzExNjkgMCA5MTIwMDAwCis1NjQgMCA5MTYwMDAwCisyNjEgMCA5MjAwMDAwCiszMjcgMCA5MjQwMDAwCiszMDMgMCA5MjgwMDAwCisxMTQ1IDAgOTMyMDAwMAorMjU3IDAgOTM2MDAwMAorNDk4IDAgOTQwMDAwMAorNDY1IDAgOTQ0MDAwMAorNDE0IDAgOTQ4MDAwMAorNTUzIDAgOTUyMDAwMAorNTYxNyAzMiA5NTYwMDAwCisxMDUyIDAgOTYwMDAwMAorNTkyIDAgOTY0MDAwMAorMzIzIDAgOTY4MDAwMAorNDk3IDAgOTcyMDAwMAorNDY3IDAgOTc2MDAwMAorNzA1IDAgOTgwMDAwMAorMTA4NiAwIDk4NDAwMDAKKzEyNTMgMCA5ODgwMDAwCisxMjUyIDAgOTkyMDAwMAorNzc2IDAgOTk2MDAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMubTJ2IGIvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMubTJ2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZjkwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5tMnYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvIGIvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNWE0NGMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWc0XzEyODB4NzIwXzEwMDBrYnBzXzI1ZnBzLmluZm8KQEAgLTAsMCArMSwyNTEgQEAKKzQ5IDEyOCAwCis0OSAxMjggMAorNTc1NDIgMzIgMAorNTA5NjEgMCA0MDAwMAorMjkxMzYgMCA4MDAwMAorMjgxNDYgMCAxMjAwMDAKKzI1NDcyIDAgMTYwMDAwCis1NzUyIDAgMjAwMDAwCis0MzczIDAgMjQwMDAwCis0MjYxIDAgMjgwMDAwCis1MDgzIDAgMzIwMDAwCis2NTA0IDAgMzYwMDAwCis1MDgwIDAgNDAwMDAwCis1Njg4IDAgNDQwMDAwCis1MDgzNCAzMiA0ODAwMDAKKzQ1NTkgMCA1MjAwMDAKKzQxMTggMCA1NjAwMDAKKzM5MzcgMCA2MDAwMDAKKzQyNjIgMCA2NDAwMDAKKzQ2NDkgMCA2ODAwMDAKKzM5OTUgMCA3MjAwMDAKKzM4OTkgMCA3NjAwMDAKKzM4OTYgMCA4MDAwMDAKKzM5OTggMCA4NDAwMDAKKzQxMjkgMCA4ODAwMDAKKzQwNjQgMCA5MjAwMDAKKzQyODcyIDMyIDk2MDAwMAorMzI2NSAwIDEwMDAwMDAKKzI1MDYgMCAxMDQwMDAwCisyMTc4IDAgMTA4MDAwMAorMjQ0NSAwIDExMjAwMDAKKzI0NjEgMCAxMTYwMDAwCiszMjY3IDAgMTIwMDAwMAorMjcwMCAwIDEyNDAwMDAKKzI5MjQgMCAxMjgwMDAwCisyNDA1IDAgMTMyMDAwMAorMjY1NiAwIDEzNjAwMDAKKzI0OTQgMCAxNDAwMDAwCis0NzQ1NCAzMiAxNDQwMDAwCisyOTU2IDAgMTQ4MDAwMAorMTQzNCAwIDE1MjAwMDAKKzcwNyAwIDE1NjAwMDAKKzEzMTAgMCAxNjAwMDAwCisxNzkxIDAgMTY0MDAwMAorMjA4OCAwIDE2ODAwMDAKKzEwNzggMCAxNzIwMDAwCis3MzggMCAxNzYwMDAwCis3NDgzNyAzMiAxODAwMDAwCiszMzA0IDAgMTg0MDAwMAorMzY1NiAwIDE4ODAwMDAKKzI4MjIgMCAxOTIwMDAwCisyNTY2IDAgMTk2MDAwMAorMjgxNiAwIDIwMDAwMDAKKzI1OTAgMCAyMDQwMDAwCisyNDcxIDAgMjA4MDAwMAorMjU1MyAwIDIxMjAwMDAKKzI1NDcgMCAyMTYwMDAwCisyNjI4IDAgMjIwMDAwMAorMjY2NCAwIDIyNDAwMDAKKzM4MTYxIDMyIDIyODAwMDAKKzI5OTUgMCAyMzIwMDAwCisyMjA1IDAgMjM2MDAwMAorMjA1NSAwIDI0MDAwMDAKKzIxMjIgMCAyNDQwMDAwCisyMjM2IDAgMjQ4MDAwMAorMjQwNyAwIDI1MjAwMDAKKzg5MyAwIDI1NjAwMDAKKzI1MTEgMCAyNjAwMDAwCisyNzAzIDAgMjY0MDAwMAorMjUxMSAwIDI2ODAwMDAKKzI1NjQgMCAyNzIwMDAwCiszNTk0NCAzMiAyNzYwMDAwCiszMDAyIDAgMjgwMDAwMAorMjE4OCAwIDI4NDAwMDAKKzIxMDkgMCAyODgwMDAwCisyMDU4IDAgMjkyMDAwMAorMjI0MiAwIDI5NjAwMDAKKzIyNDAgMCAzMDAwMDAwCisyMzQ2IDAgMzA0MDAwMAorMjIyMyAwIDMwODAwMDAKKzI0MzAgMCAzMTIwMDAwCisyNDg2IDAgMzE2MDAwMAorMjM3OSAwIDMyMDAwMDAKKzM0MDE0IDMyIDMyNDAwMDAKKzMwMDkgMCAzMjgwMDAwCisyMDczIDAgMzMyMDAwMAorMjAwNSAwIDMzNjAwMDAKKzIwNTIgMCAzNDAwMDAwCisyMTY3IDAgMzQ0MDAwMAorMjMzMSAwIDM0ODAwMDAKKzIyMDEgMCAzNTIwMDAwCis4OTYgMCAzNTYwMDAwCisyNTk0IDAgMzYwMDAwMAorMjU4OSAwIDM2NDAwMDAKKzI1NDIgMCAzNjgwMDAwCiszMzk3MyAzMiAzNzIwMDAwCisyOTEzIDAgMzc2MDAwMAorMTk3OCAwIDM4MDAwMDAKKzE5NDMgMCAzODQwMDAwCisxOTgzIDAgMzg4MDAwMAorMjIzNCAwIDM5MjAwMDAKKzIxNDIgMCAzOTYwMDAwCisyMTA2IDAgNDAwMDAwMAorMjI1MyAwIDQwNDAwMDAKKzIzMjcgMCA0MDgwMDAwCisyMTg2IDAgNDEyMDAwMAorMjM2NiAwIDQxNjAwMDAKKzMyMDk0IDMyIDQyMDAwMDAKKzMwNTAgMCA0MjQwMDAwCisxOTEzIDAgNDI4MDAwMAorMjAxNiAwIDQzMjAwMDAKKzIwOTcgMCA0MzYwMDAwCisyMTEyIDAgNDQwMDAwMAorMjE2MyAwIDQ0NDAwMDAKKzIyNTggMCA0NDgwMDAwCisyMjMxIDAgNDUyMDAwMAorODgyIDAgNDU2MDAwMAorMjU3NSAwIDQ2MDAwMDAKKzI3MDAgMCA0NjQwMDAwCiszMzc1NCAzMiA0NjgwMDAwCiszMDExIDAgNDcyMDAwMAorMjAzNCAwIDQ3NjAwMDAKKzE5ODYgMCA0ODAwMDAwCisxOTgzIDAgNDg0MDAwMAorMjE4MCAwIDQ4ODAwMDAKKzIwNjcgMCA0OTIwMDAwCisyMjYyIDAgNDk2MDAwMAorMjMyMyAwIDUwMDAwMDAKKzIzNjcgMCA1MDQwMDAwCisyMjg5IDAgNTA4MDAwMAorMjI2MyAwIDUxMjAwMDAKKzMxODA2IDMyIDUxNjAwMDAKKzMyODUgMCA1MjAwMDAwCisxOTU3IDAgNTI0MDAwMAorMjA3MyAwIDUyODAwMDAKKzIwNTcgMCA1MzIwMDAwCisyMTM0IDAgNTM2MDAwMAorMjA4NiAwIDU0MDAwMDAKKzIyMTcgMCA1NDQwMDAwCisyMzE0IDAgNTQ4MDAwMAorMjE3NiAwIDU1MjAwMDAKKzg1MiAwIDU1NjAwMDAKKzI0MjEgMCA1NjAwMDAwCiszNzIzNiAzMiA1NjQwMDAwCisxNjE0MCAzMiA1NjgwMDAwCiszNDkxIDAgNTcyMDAwMAorMjg5MSAwIDU3NjAwMDAKKzE0OTkgMCA1ODAwMDAwCis2NTkgMCA1ODQwMDAwCis2NTIgMCA1ODgwMDAwCis2NDggMCA1OTIwMDAwCisxODkyIDAgNTk2MDAwMAorMzA1MCAwIDYwMDAwMDAKKzIyMzUgMCA2MDQwMDAwCisxOTI1IDAgNjA4MDAwMAorMTc5MCAwIDYxMjAwMDAKKzE2NDQxIDMyIDYxNjAwMDAKKzUzNDEgMCA2MjAwMDAwCisyNDQ1IDAgNjI0MDAwMAorMjg3OCAwIDYyODAwMDAKKzIzNjYgMCA2MzIwMDAwCisxNzMyIDAgNjM2MDAwMAorMTg1OCAwIDY0MDAwMDAKKzE2MzIgMCA2NDQwMDAwCisxNTE0IDAgNjQ4MDAwMAorMTg3NCAwIDY1MjAwMDAKKzEwNTkgMCA2NTYwMDAwCisxNzk1IDAgNjYwMDAwMAorMjAxNTMgMzIgNjY0MDAwMAorMzU4OSAwIDY2ODAwMDAKKzI0MTggMCA2NzIwMDAwCisxODk2IDAgNjc2MDAwMAorMTU3NyAwIDY4MDAwMDAKKzE2MjkgMCA2ODQwMDAwCisxNzE3IDAgNjg4MDAwMAorMTcxNyAwIDY5MjAwMDAKKzE4MTUgMCA2OTYwMDAwCisxNjYzIDAgNzAwMDAwMAorMTg1NSAwIDcwNDAwMDAKKzE2OTkgMCA3MDgwMDAwCisyMTE4NCAzMiA3MTIwMDAwCiszMzk1IDAgNzE2MDAwMAorMzI3NiAwIDcyMDAwMDAKKzM4MjUgMCA3MjQwMDAwCisyNzQ3IDAgNzI4MDAwMAorMTY4NCAwIDczMjAwMDAKKzIxNDEgMCA3MzYwMDAwCisyMzcyIDAgNzQwMDAwMAorMjc3NyAwIDc0NDAwMDAKKzI4MjggMCA3NDgwMDAwCisyNDQyIDAgNzUyMDAwMAorMTMwMiAwIDc1NjAwMDAKKzIwNzAyIDMyIDc2MDAwMDAKKzQwNDMgMCA3NjQwMDAwCisyODc1IDAgNzY4MDAwMAorMjAyNiAwIDc3MjAwMDAKKzE5ODMgMCA3NzYwMDAwCisyMTczIDAgNzgwMDAwMAorMjY3MCAwIDc4NDAwMDAKKzMxNDUgMCA3ODgwMDAwCis1MzEyIDAgNzkyMDAwMAorNTU0NyAwIDc5NjAwMDAKKzQyNjIgMCA4MDAwMDAwCisyNjM3IDAgODA0MDAwMAorMTU3NjEgMzIgODA4MDAwMAorMjY5MyAwIDgxMjAwMDAKKzE0MzMgMCA4MTYwMDAwCisyMTA4IDAgODIwMDAwMAorMjI1MyAwIDgyNDAwMDAKKzE4NDYgMCA4MjgwMDAwCisxMjgxIDAgODMyMDAwMAorMjI5NCAwIDgzNjAwMDAKKzIyMTcgMCA4NDAwMDAwCisyMzcwIDAgODQ0MDAwMAorMTgwOSAwIDg0ODAwMDAKKzE4OTkgMCA4NTIwMDAwCisyMTYzMCAzMiA4NTYwMDAwCiszMTg5IDAgODYwMDAwMAorMTY3OSAwIDg2NDAwMDAKKzE3MzIgMCA4NjgwMDAwCisxNjcyIDAgODcyMDAwMAorMTc4OCAwIDg3NjAwMDAKKzE2NTYgMCA4ODAwMDAwCisxNzY1IDAgODg0MDAwMAorMTU3OSAwIDg4ODAwMDAKKzIxNDIgMCA4OTIwMDAwCisxOTU0IDAgODk2MDAwMAorMTg1NCAwIDkwMDAwMDAKKzI0OTY2IDMyIDkwNDAwMDAKKzIxNzYgMCA5MDgwMDAwCisxMjM2IDAgOTEyMDAwMAorMTI4MiAwIDkxNjAwMDAKKzE1MjYgMCA5MjAwMDAwCisxMzY5IDAgOTI0MDAwMAorMTI4MyAwIDkyODAwMDAKKzE0MzQgMCA5MzIwMDAwCisxMzM1IDAgOTM2MDAwMAorMjE0NCAwIDk0MDAwMDAKKzE5MTcgMCA5NDQwMDAwCisxNDA5IDAgOTQ4MDAwMAorMjc3NDUgMzIgOTUyMDAwMAorMTkwNSAwIDk1NjAwMDAKKzE0OTUgMCA5NjAwMDAwCisxNjg1IDAgOTY0MDAwMAorMTc0NSAwIDk2ODAwMDAKKzE4OTQgMCA5NzIwMDAwCiszNjY3IDAgOTc2MDAwMAorNTU0NiAwIDk4MDAwMDAKKzU3MjkgMCA5ODQwMDAwCis0NDc5IDAgOTg4MDAwMAorMzgyOSAwIDk5MjAwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2IGIvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5tNHYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMzMmQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkxNjBjNWMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCkBAIC0wLDAgKzEsNTAwIEBACisxOSAxMjggMAorOCAxMjggMAorNjE1IDMyIDAKKzU1NyAzMiAxMzUwMAorMzExIDMyIDMzNTAwCiszMjkgMzIgNTM1MDAKKzM0MSAzMiA3MzUwMAorMzcwIDMyIDkzNTAwCiszNTkgMzIgMTEzNTAwCiszNDQgMzIgMTMzNTAwCiszMzUgMzIgMTUzNTAwCiszMzQgMzIgMTczNTAwCiszMjcgMzIgMTkzNTAwCiszMzAgMzIgMjEzNTAwCiszMjggMzIgMjMzNTAwCiszMjggMzIgMjUzNTAwCiszNDMgMzIgMjczNTAwCiszNTggMzIgMjkzNTAwCiszNDEgMzIgMzEzNTAwCiszMjYgMzIgMzMzNTAwCiszMzMgMzIgMzUzNTAwCiszMzMgMzIgMzczNTAwCis0MDIgMzIgMzkzNTAwCiszMzggMzIgNDEzNTAwCiszMjcgMzIgNDMzNTAwCiszMzQgMzIgNDUzNTAwCiszMjkgMzIgNDczNTAwCiszMTggMzIgNDkzNTAwCiszMjIgMzIgNTEzNTAwCiszMjMgMzIgNTMzNTAwCiszMjAgMzIgNTUzNTAwCiszMjUgMzIgNTczNTAwCiszMjggMzIgNTkzNTAwCiszMjUgMzIgNjEzNTAwCiszMDQgMzIgNjMzNTAwCiszMDQgMzIgNjUzNTAwCiszMDMgMzIgNjczNTAwCisyOTkgMzIgNjkzNTAwCisyOTYgMzIgNzEzNTAwCiszMDUgMzIgNzMzNTAwCiszMDcgMzIgNzUzNTAwCiszMDggMzIgNzczNTAwCiszMTAgMzIgNzkzNTAwCiszMzEgMzIgODEzNTAwCiszMzIgMzIgODMzNTAwCiszMjMgMzIgODUzNTAwCiszMTAgMzIgODczNTAwCiszMTEgMzIgODkzNTAwCiszMTYgMzIgOTEzNTAwCiszMDggMzIgOTMzNTAwCiszMjEgMzIgOTUzNTAwCiszMjAgMzIgOTczNTAwCiszMTAgMzIgOTkzNTAwCiszMDQgMzIgMTAxMzUwMAorMzAzIDMyIDEwMzM1MDAKKzMwMSAzMiAxMDUzNTAwCisyOTUgMzIgMTA3MzUwMAorMzAyIDMyIDEwOTM1MDAKKzMxMSAzMiAxMTEzNTAwCiszMjIgMzIgMTEzMzUwMAorMzEzIDMyIDExNTM1MDAKKzMxNSAzMiAxMTczNTAwCiszMTUgMzIgMTE5MzUwMAorMzE1IDMyIDEyMTM1MDAKKzMzOSAzMiAxMjMzNTAwCiszMzYgMzIgMTI1MzUwMAorMzE2IDMyIDEyNzM1MDAKKzMyMSAzMiAxMjkzNTAwCisyOTcgMzIgMTMxMzUwMAorMjk1IDMyIDEzMzM1MDAKKzI5NCAzMiAxMzUzNTAwCisyOTcgMzIgMTM3MzUwMAorMjk2IDMyIDEzOTM1MDAKKzI5NSAzMiAxNDEzNTAwCisyOTUgMzIgMTQzMzUwMAorMjk0IDMyIDE0NTM1MDAKKzMwNiAzMiAxNDczNTAwCiszMDMgMzIgMTQ5MzUwMAorMzA4IDMyIDE1MTM1MDAKKzMwMiAzMiAxNTMzNTAwCiszMDYgMzIgMTU1MzUwMAorMzAyIDMyIDE1NzM1MDAKKzI5NSAzMiAxNTkzNTAwCisyOTMgMzIgMTYxMzUwMAorMzA3IDMyIDE2MzM1MDAKKzMxMyAzMiAxNjUzNTAwCiszMDUgMzIgMTY3MzUwMAorMzA4IDMyIDE2OTM1MDAKKzMyNSAzMiAxNzEzNTAwCiszMTIgMzIgMTczMzUwMAorMzA1IDMyIDE3NTM1MDAKKzMwMSAzMiAxNzczNTAwCiszMjIgMzIgMTc5MzUwMAorMzE5IDMyIDE4MTM1MDAKKzMxNyAzMiAxODMzNTAwCiszMTcgMzIgMTg1MzUwMAorMzIyIDMyIDE4NzM1MDAKKzMwMiAzMiAxODkzNTAwCiszMDggMzIgMTkxMzUwMAorMzA1IDMyIDE5MzM1MDAKKzMwNSAzMiAxOTUzNTAwCiszMDAgMzIgMTk3MzUwMAorMjkzIDMyIDE5OTM1MDAKKzMwMCAzMiAyMDEzNTAwCiszMDAgMzIgMjAzMzUwMAorMjk0IDMyIDIwNTM1MDAKKzI5MyAzMiAyMDczNTAwCisyOTUgMzIgMjA5MzUwMAorMjkwIDMyIDIxMTM1MDAKKzMwMyAzMiAyMTMzNTAwCiszMTEgMzIgMjE1MzUwMAorNDMxIDMyIDIxNzM1MDAKKzI5MyAzMiAyMTkzNTAwCiszMDIgMzIgMjIxMzUwMAorMzA2IDMyIDIyMzM1MDAKKzI5NyAzMiAyMjUzNTAwCisyOTcgMzIgMjI3MzUwMAorMzAxIDMyIDIyOTM1MDAKKzQwNCAzMiAyMzEzNTAwCisyOTkgMzIgMjMzMzUwMAorNDQzIDMyIDIzNTM1MDAKKzI5NiAzMiAyMzczNTAwCisyOTYgMzIgMjM5MzUwMAorMzA2IDMyIDI0MTM1MDAKKzMxMyAzMiAyNDMzNTAwCiszMTQgMzIgMjQ1MzUwMAorMzAzIDMyIDI0NzM1MDAKKzMwNiAzMiAyNDkzNTAwCiszMjAgMzIgMjUxMzUwMAorMzExIDMyIDI1MzM1MDAKKzMwMyAzMiAyNTUzNTAwCiszMTYgMzIgMjU3MzUwMAorMzE3IDMyIDI1OTM1MDAKKzMwMCAzMiAyNjEzNTAwCisyOTcgMzIgMjYzMzUwMAorMzA2IDMyIDI2NTM1MDAKKzMxMiAzMiAyNjczNTAwCiszMTkgMzIgMjY5MzUwMAorMzA3IDMyIDI3MTM1MDAKKzMwOSAzMiAyNzMzNTAwCiszMDIgMzIgMjc1MzUwMAorMzA2IDMyIDI3NzM1MDAKKzMxNiAzMiAyNzkzNTAwCiszMDAgMzIgMjgxMzUwMAorMzIwIDMyIDI4MzM1MDAKKzMxMiAzMiAyODUzNTAwCiszMjQgMzIgMjg3MzUwMAorMzE5IDMyIDI4OTM1MDAKKzMxMyAzMiAyOTEzNTAwCiszMTQgMzIgMjkzMzUwMAorMzE2IDMyIDI5NTM1MDAKKzMxMCAzMiAyOTczNTAwCiszMDEgMzIgMjk5MzUwMAorMzEzIDMyIDMwMTM1MDAKKzMwMyAzMiAzMDMzNTAwCisyOTggMzIgMzA1MzUwMAorMjkyIDMyIDMwNzM1MDAKKzI4OCAzMiAzMDkzNTAwCisyOTQgMzIgMzExMzUwMAorMjk2IDMyIDMxMzM1MDAKKzI5NiAzMiAzMTUzNTAwCisyOTQgMzIgMzE3MzUwMAorMjk5IDMyIDMxOTM1MDAKKzMwMyAzMiAzMjEzNTAwCisyOTQgMzIgMzIzMzUwMAorMzAxIDMyIDMyNTM1MDAKKzMyMSAzMiAzMjczNTAwCiszMTAgMzIgMzI5MzUwMAorMzE0IDMyIDMzMTM1MDAKKzI5OCAzMiAzMzMzNTAwCiszMDAgMzIgMzM1MzUwMAorMzAyIDMyIDMzNzM1MDAKKzI5NyAzMiAzMzkzNTAwCisyOTggMzIgMzQxMzUwMAorMjkzIDMyIDM0MzM1MDAKKzMwNCAzMiAzNDUzNTAwCiszMDQgMzIgMzQ3MzUwMAorMzExIDMyIDM0OTM1MDAKKzMxMCAzMiAzNTEzNTAwCiszMjIgMzIgMzUzMzUwMAorMzQwIDMyIDM1NTM1MDAKKzMzMCAzMiAzNTczNTAwCiszMjkgMzIgMzU5MzUwMAorMzE4IDMyIDM2MTM1MDAKKzMwOSAzMiAzNjMzNTAwCiszMDYgMzIgMzY1MzUwMAorMzEzIDMyIDM2NzM1MDAKKzMxNCAzMiAzNjkzNTAwCiszMDMgMzIgMzcxMzUwMAorMjk3IDMyIDM3MzM1MDAKKzI5NiAzMiAzNzUzNTAwCisyOTIgMzIgMzc3MzUwMAorMjkxIDMyIDM3OTM1MDAKKzI5MSAzMiAzODEzNTAwCisyOTEgMzIgMzgzMzUwMAorMjk5IDMyIDM4NTM1MDAKKzI5NSAzMiAzODczNTAwCiszMDIgMzIgMzg5MzUwMAorMzA1IDMyIDM5MTM1MDAKKzMwMSAzMiAzOTMzNTAwCiszMTEgMzIgMzk1MzUwMAorMzE3IDMyIDM5NzM1MDAKKzMxNCAzMiAzOTkzNTAwCiszMTAgMzIgNDAxMzUwMAorMzc4IDMyIDQwMzM1MDAKKzMxMCAzMiA0MDUzNTAwCiszMDEgMzIgNDA3MzUwMAorMzUzIDMyIDQwOTM1MDAKKzI4OSAzMiA0MTEzNTAwCisyOTQgMzIgNDEzMzUwMAorMjk3IDMyIDQxNTM1MDAKKzI5NCAzMiA0MTczNTAwCisyOTYgMzIgNDE5MzUwMAorMzA1IDMyIDQyMTM1MDAKKzMwMyAzMiA0MjMzNTAwCiszMTcgMzIgNDI1MzUwMAorMzU5IDMyIDQyNzM1MDAKKzMxNCAzMiA0MjkzNTAwCiszMjMgMzIgNDMxMzUwMAorMzE5IDMyIDQzMzM1MDAKKzMzMCAzMiA0MzUzNTAwCiszMjYgMzIgNDM3MzUwMAorMzA1IDMyIDQzOTM1MDAKKzMwMCAzMiA0NDEzNTAwCisyOTggMzIgNDQzMzUwMAorMjk3IDMyIDQ0NTM1MDAKKzI5MyAzMiA0NDczNTAwCisyOTYgMzIgNDQ5MzUwMAorMzAzIDMyIDQ1MTM1MDAKKzMxOCAzMiA0NTMzNTAwCiszMDYgMzIgNDU1MzUwMAorMjk1IDMyIDQ1NzM1MDAKKzI5NCAzMiA0NTkzNTAwCis0NjggMzIgNDYxMzUwMAorMjkxIDMyIDQ2MzM1MDAKKzI5NSAzMiA0NjUzNTAwCisyOTIgMzIgNDY3MzUwMAorMjk2IDMyIDQ2OTM1MDAKKzI5MSAzMiA0NzEzNTAwCisyOTAgMzIgNDczMzUwMAorMjk5IDMyIDQ3NTM1MDAKKzI5MSAzMiA0NzczNTAwCisyOTcgMzIgNDc5MzUwMAorMzA0IDMyIDQ4MTM1MDAKKzMwNiAzMiA0ODMzNTAwCisyOTYgMzIgNDg1MzUwMAorMjg2IDMyIDQ4NzM1MDAKKzI5OSAzMiA0ODkzNTAwCisyOTQgMzIgNDkxMzUwMAorMzE4IDMyIDQ5MzM1MDAKKzMyOCAzMiA0OTUzNTAwCiszMTggMzIgNDk3MzUwMAorMzE5IDMyIDQ5OTM1MDAKKzMxMiAzMiA1MDEzNTAwCisyOTggMzIgNTAzMzUwMAorMzAxIDMyIDUwNTM1MDAKKzI5NiAzMiA1MDczNTAwCisyOTMgMzIgNTA5MzUwMAorMjkzIDMyIDUxMTM1MDAKKzI5NyAzMiA1MTMzNTAwCisyOTYgMzIgNTE1MzUwMAorMjk0IDMyIDUxNzM1MDAKKzI5NCAzMiA1MTkzNTAwCisyOTIgMzIgNTIxMzUwMAorMjk2IDMyIDUyMzM1MDAKKzI5MSAzMiA1MjUzNTAwCisyOTQgMzIgNTI3MzUwMAorMjk3IDMyIDUyOTM1MDAKKzMwNCAzMiA1MzEzNTAwCisyOTUgMzIgNTMzMzUwMAorMjkwIDMyIDUzNTM1MDAKKzI5NCAzMiA1MzczNTAwCisyOTMgMzIgNTM5MzUwMAorMjk0IDMyIDU0MTM1MDAKKzI5NCAzMiA1NDMzNTAwCisyOTMgMzIgNTQ1MzUwMAorMjg5IDMyIDU0NzM1MDAKKzI5MyAzMiA1NDkzNTAwCisyOTUgMzIgNTUxMzUwMAorMjk1IDMyIDU1MzM1MDAKKzI4NiAzMiA1NTUzNTAwCisyOTIgMzIgNTU3MzUwMAorMjg4IDMyIDU1OTM1MDAKKzI5MiAzMiA1NjEzNTAwCisyOTYgMzIgNTYzMzUwMAorMjg4IDMyIDU2NTM1MDAKKzI5NCAzMiA1NjczNTAwCisyOTQgMzIgNTY5MzUwMAorMjkzIDMyIDU3MTM1MDAKKzI5MSAzMiA1NzMzNTAwCisyOTMgMzIgNTc1MzUwMAorMzAzIDMyIDU3NzM1MDAKKzMwNiAzMiA1NzkzNTAwCiszMDcgMzIgNTgxMzUwMAorMzAyIDMyIDU4MzM1MDAKKzI5NCAzMiA1ODUzNTAwCisyOTcgMzIgNTg3MzUwMAorMjk3IDMyIDU4OTM1MDAKKzMwMiAzMiA1OTEzNTAwCisyOTkgMzIgNTkzMzUwMAorMzAyIDMyIDU5NTM1MDAKKzI5NyAzMiA1OTczNTAwCisyOTkgMzIgNTk5MzUwMAorMzA1IDMyIDYwMTM1MDAKKzMwNyAzMiA2MDMzNTAwCiszMTAgMzIgNjA1MzUwMAorMzEwIDMyIDYwNzM1MDAKKzMxNSAzMiA2MDkzNTAwCiszMDYgMzIgNjExMzUwMAorMzA1IDMyIDYxMzM1MDAKKzMwNCAzMiA2MTUzNTAwCiszMDcgMzIgNjE3MzUwMAorMzA2IDMyIDYxOTM1MDAKKzI5NyAzMiA2MjEzNTAwCisyOTggMzIgNjIzMzUwMAorMjkzIDMyIDYyNTM1MDAKKzI5MyAzMiA2MjczNTAwCisyOTYgMzIgNjI5MzUwMAorMzA1IDMyIDYzMTM1MDAKKzI5OSAzMiA2MzMzNTAwCisyOTggMzIgNjM1MzUwMAorMzA1IDMyIDYzNzM1MDAKKzI5MSAzMiA2MzkzNTAwCisyOTYgMzIgNjQxMzUwMAorMjk2IDMyIDY0MzM1MDAKKzMwMyAzMiA2NDUzNTAwCisyOTggMzIgNjQ3MzUwMAorMzI4IDMyIDY0OTM1MDAKKzMyMiAzMiA2NTEzNTAwCiszMjMgMzIgNjUzMzUwMAorMzE5IDMyIDY1NTM1MDAKKzMzMSAzMiA2NTczNTAwCiszMzIgMzIgNjU5MzUwMAorMzMzIDMyIDY2MTM1MDAKKzMyNSAzMiA2NjMzNTAwCiszMzQgMzIgNjY1MzUwMAorMzMzIDMyIDY2NzM1MDAKKzMyOSAzMiA2NjkzNTAwCiszMjUgMzIgNjcxMzUwMAorMzIxIDMyIDY3MzM1MDAKKzQ2MCAzMiA2NzUzNTAwCiszMjIgMzIgNjc3MzUwMAorMzEzIDMyIDY3OTM1MDAKKzMwMyAzMiA2ODEzNTAwCiszMDcgMzIgNjgzMzUwMAorMzAyIDMyIDY4NTM1MDAKKzI5OCAzMiA2ODczNTAwCisyOTQgMzIgNjg5MzUwMAorMjk2IDMyIDY5MTM1MDAKKzI4OCAzMiA2OTMzNTAwCisyODYgMzIgNjk1MzUwMAorNDA0IDMyIDY5NzM1MDAKKzQwOCAzMiA2OTkzNTAwCiszMTYgMzIgNzAxMzUwMAorMzM2IDMyIDcwMzM1MDAKKzMyNiAzMiA3MDUzNTAwCiszMzMgMzIgNzA3MzUwMAorMzI0IDMyIDcwOTM1MDAKKzMzMCAzMiA3MTEzNTAwCiszMTUgMzIgNzEzMzUwMAorMzE4IDMyIDcxNTM1MDAKKzMyMyAzMiA3MTczNTAwCiszMDQgMzIgNzE5MzUwMAorMzAyIDMyIDcyMTM1MDAKKzMxMCAzMiA3MjMzNTAwCiszMjkgMzIgNzI1MzUwMAorMzI0IDMyIDcyNzM1MDAKKzMzMiAzMiA3MjkzNTAwCis0NzQgMzIgNzMxMzUwMAorMzQ3IDMyIDczMzM1MDAKKzM1MSAzMiA3MzUzNTAwCis0MTIgMzIgNzM3MzUwMAorMzI2IDMyIDczOTM1MDAKKzMwMCAzMiA3NDEzNTAwCiszMDggMzIgNzQzMzUwMAorMzA3IDMyIDc0NTM1MDAKKzI5OSAzMiA3NDczNTAwCiszMDYgMzIgNzQ5MzUwMAorNDUwIDMyIDc1MTM1MDAKKzI5NCAzMiA3NTMzNTAwCiszNDggMzIgNzU1MzUwMAorMjk0IDMyIDc1NzM1MDAKKzI4OSAzMiA3NTkzNTAwCisyODEgMzIgNzYxMzUwMAorMjkzIDMyIDc2MzM1MDAKKzI5MSAzMiA3NjUzNTAwCiszNDEgMzIgNzY3MzUwMAorMjkxIDMyIDc2OTM1MDAKKzI5OCAzMiA3NzEzNTAwCisyOTUgMzIgNzczMzUwMAorMjk4IDMyIDc3NTM1MDAKKzI5OSAzMiA3NzczNTAwCiszMzIgMzIgNzc5MzUwMAorMjk3IDMyIDc4MTM1MDAKKzMwMiAzMiA3ODMzNTAwCiszMDIgMzIgNzg1MzUwMAorMzE2IDMyIDc4NzM1MDAKKzMyMiAzMiA3ODkzNTAwCiszMjcgMzIgNzkxMzUwMAorMzIxIDMyIDc5MzM1MDAKKzMxNSAzMiA3OTUzNTAwCiszMDggMzIgNzk3MzUwMAorMzIzIDMyIDc5OTM1MDAKKzMwNiAzMiA4MDEzNTAwCiszMTkgMzIgODAzMzUwMAorMzE4IDMyIDgwNTM1MDAKKzMxOSAzMiA4MDczNTAwCiszMTkgMzIgODA5MzUwMAorMzIzIDMyIDgxMTM1MDAKKzMyMCAzMiA4MTMzNTAwCiszMTEgMzIgODE1MzUwMAorMzEyIDMyIDgxNzM1MDAKKzMwNyAzMiA4MTkzNTAwCiszMTEgMzIgODIxMzUwMAorMzE4IDMyIDgyMzM1MDAKKzM0NiAzMiA4MjUzNTAwCiszNDggMzIgODI3MzUwMAorMzM2IDMyIDgyOTM1MDAKKzMzNCAzMiA4MzEzNTAwCiszMzEgMzIgODMzMzUwMAorMzQwIDMyIDgzNTM1MDAKKzMzNSAzMiA4MzczNTAwCiszMTkgMzIgODM5MzUwMAorMzA3IDMyIDg0MTM1MDAKKzMwNCAzMiA4NDMzNTAwCiszMDEgMzIgODQ1MzUwMAorMzExIDMyIDg0NzM1MDAKKzMxNyAzMiA4NDkzNTAwCiszMjUgMzIgODUxMzUwMAorMzI3IDMyIDg1MzM1MDAKKzMzNSAzMiA4NTUzNTAwCiszNDAgMzIgODU3MzUwMAorMzIwIDMyIDg1OTM1MDAKKzMzMyAzMiA4NjEzNTAwCiszMjggMzIgODYzMzUwMAorMzEyIDMyIDg2NTM1MDAKKzMwNCAzMiA4NjczNTAwCiszMzcgMzIgODY5MzUwMAorMzM0IDMyIDg3MTM1MDAKKzMzMyAzMiA4NzMzNTAwCiszMjcgMzIgODc1MzUwMAorMzI4IDMyIDg3NzM1MDAKKzM0MCAzMiA4NzkzNTAwCis0NzggMzIgODgxMzUwMAorMzMxIDMyIDg4MzM1MDAKKzMyOCAzMiA4ODUzNTAwCiszMjAgMzIgODg3MzUwMAorMzE1IDMyIDg4OTM1MDAKKzMyMSAzMiA4OTEzNTAwCiszMjQgMzIgODkzMzUwMAorMzI1IDMyIDg5NTM1MDAKKzMyMyAzMiA4OTczNTAwCiszMjQgMzIgODk5MzUwMAorMzM2IDMyIDkwMTM1MDAKKzM0MCAzMiA5MDMzNTAwCiszMzMgMzIgOTA1MzUwMAorMzM5IDMyIDkwNzM1MDAKKzQ5MCAzMiA5MDkzNTAwCis0ODAgMzIgOTExMzUwMAorMzI5IDMyIDkxMzM1MDAKKzMyNyAzMiA5MTUzNTAwCiszNDEgMzIgOTE3MzUwMAorMzM4IDMyIDkxOTM1MDAKKzMzNyAzMiA5MjEzNTAwCiszMzcgMzIgOTIzMzUwMAorMzI4IDMyIDkyNTM1MDAKKzMyMiAzMiA5MjczNTAwCiszMjQgMzIgOTI5MzUwMAorMzQ5IDMyIDkzMTM1MDAKKzM1MCAzMiA5MzMzNTAwCiszMzcgMzIgOTM1MzUwMAorMzQyIDMyIDkzNzM1MDAKKzMzNCAzMiA5MzkzNTAwCiszMjQgMzIgOTQxMzUwMAorMzIwIDMyIDk0MzM1MDAKKzMyOSAzMiA5NDUzNTAwCiszMzMgMzIgOTQ3MzUwMAorMzI4IDMyIDk0OTM1MDAKKzMzNSAzMiA5NTEzNTAwCiszMjIgMzIgOTUzMzUwMAorMzIzIDMyIDk1NTM1MDAKKzMzMCAzMiA5NTczNTAwCiszMjAgMzIgOTU5MzUwMAorMzEzIDMyIDk2MTM1MDAKKzUyNiAzMiA5NjMzNTAwCiszMDYgMzIgOTY1MzUwMAorMzAwIDMyIDk2NzM1MDAKKzI5OSAzMiA5NjkzNTAwCiszMDAgMzIgOTcxMzUwMAorMjk5IDMyIDk3MzM1MDAKKzI5OSAzMiA5NzUzNTAwCisyOTUgMzIgOTc3MzUwMAorMjkzIDMyIDk3OTM1MDAKKzI5NyAzMiA5ODEzNTAwCiszMDYgMzIgOTgzMzUwMAorMzAwIDMyIDk4NTM1MDAKKzQzOCAzMiA5ODczNTAwCisyOTEgMzIgOTg5MzUwMAorNDQ4IDMyIDk5MTM1MDAKKzUwNCAzMiA5OTMzNTAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5vcHVzIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOTAwMWFjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfMTZraHpfczE2bGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTJmNDFiCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE0OWViMgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MxNmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5pbmZvIGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzM5MjViCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUuaW5mbwpAQCAtMCwwICsxLDEwIEBACisxNjM4NCAzMiAwCisxNjM4NCAzMiAxMDI0MDAwCisxNjM4NCAzMiAyMDQ4MDAwCisxNjM4NCAzMiAzMDcyMDAwCisxNjM4NCAzMiA0MDk2MDAwCisxNjM4NCAzMiA1MTIwMDAwCisxNjM4NCAzMiA2MTQ0MDAwCisxNjM4NCAzMiA3MTY4MDAwCisxNjM4NCAzMiA4MTkyMDAwCisxMDkyNCAzMiA5MjE2MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5yYXcgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzE0OWViMgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MzMmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18yY2hfNDhraHpfczE2bGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OThiMmVjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDcxNjY0MwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDUyMCBAQAorMzAgMTI4IDAKKzQxNDAgMTI4IDAKKzMzIDEyOCAwCis1MiAzMiAwCis1OCAzMiAyNjY2Cis2MSAzMiA1MzMzCis1NiAzMiA4MDAwCis1OSAzMiAxMDY2NgorNjMgMzIgMTMzMzMKKzY2IDMyIDE2MDAwCis3MSAzMiAxODY2NgorNzYgMzIgMjEzMzMKKzM3NCAzMiAyNDAwMAorMzY2IDMyIDM2MDAwCiszNzggMzIgNTczMzMKKzM5MyAzMiA3ODY2NgorMzkzIDMyIDEwMDAwMAorMzg2IDMyIDEyMTMzMworMzc1IDMyIDE0MjY2NgorMzg4IDMyIDE2NDAwMAorMzc4IDMyIDE4NTMzMworMzc5IDMyIDIwNjY2NgorMzc0IDMyIDIyODAwMAorMzU2IDMyIDI0OTMzMworMzU4IDMyIDI3MDY2NgorMzMyIDMyIDI5MjAwMAorMzM1IDMyIDMxMzMzMworMzYzIDMyIDMzNDY2NgorMzQxIDMyIDM1NjAwMAorMzYwIDMyIDM3NzMzMworMzQxIDMyIDM5ODY2NgorMzM1IDMyIDQyMDAwMAorMzU3IDMyIDQ0MTMzMworMzU1IDMyIDQ2MjY2NgorMzYzIDMyIDQ4NDAwMAorMzgyIDMyIDUwNTMzMworMzcxIDMyIDUyNjY2NgorMzU3IDMyIDU0ODAwMAorMzUzIDMyIDU2OTMzMworMzUwIDMyIDU5MDY2NgorMzI3IDMyIDYxMjAwMAorMzE1IDMyIDYzMzMzMworMzA3IDMyIDY1NDY2NgorMzAzIDMyIDY3NjAwMAorMjk1IDMyIDY5NzMzMworMzEyIDMyIDcxODY2NgorMzE2IDMyIDc0MDAwMAorMzE1IDMyIDc2MTMzMworMzE4IDMyIDc4MjY2NgorMzMwIDMyIDgwNDAwMAorMzE4IDMyIDgyNTMzMworMzE1IDMyIDg0NjY2NgorMzIyIDMyIDg2ODAwMAorMzE1IDMyIDg4OTMzMworMzEwIDMyIDkxMDY2NgorMzE1IDMyIDkzMjAwMAorMzE0IDMyIDk1MzMzMworMzAyIDMyIDk3NDY2NgorMzEzIDMyIDk5NjAwMAorMzIyIDMyIDEwMTczMzMKKzMyMyAzMiAxMDM4NjY2CiszMTkgMzIgMTA2MDAwMAorMzI1IDMyIDEwODEzMzMKKzMyOCAzMiAxMTAyNjY2CiszMzAgMzIgMTEyNDAwMAorMzMzIDMyIDExNDUzMzMKKzMzMCAzMiAxMTY2NjY2CiszNDQgMzIgMTE4ODAwMAorMzMxIDMyIDEyMDkzMzMKKzM0MiAzMiAxMjMwNjY2CiszMzkgMzIgMTI1MjAwMAorMzE0IDMyIDEyNzMzMzMKKzI4NSAzMiAxMjk0NjY2CisyOTUgMzIgMTMxNjAwMAorMzAyIDMyIDEzMzczMzMKKzMwNSAzMiAxMzU4NjY2CiszMDkgMzIgMTM4MDAwMAorMzI3IDMyIDE0MDEzMzMKKzMwNCAzMiAxNDIyNjY2CiszMzYgMzIgMTQ0NDAwMAorMzUwIDMyIDE0NjUzMzMKKzM0NiAzMiAxNDg2NjY2CiszNTIgMzIgMTUwODAwMAorMzQxIDMyIDE1MjkzMzMKKzM0MyAzMiAxNTUwNjY2CiszNTEgMzIgMTU3MjAwMAorMzE5IDMyIDE1OTMzMzMKKzMyOCAzMiAxNjE0NjY2CiszMjggMzIgMTYzNjAwMAorMzI0IDMyIDE2NTczMzMKKzMzOCAzMiAxNjc4NjY2CiszMTcgMzIgMTcwMDAwMAorMzI4IDMyIDE3MjEzMzMKKzMzNSAzMiAxNzQyNjY2CiszNDEgMzIgMTc2NDAwMAorMzM1IDMyIDE3ODUzMzMKKzM0OCAzMiAxODA2NjY2CiszNjIgMzIgMTgyODAwMAorMzYxIDMyIDE4NDkzMzMKKzM0NCAzMiAxODcwNjY2CiszNDAgMzIgMTg5MjAwMAorMzMzIDMyIDE5MTMzMzMKKzMyOSAzMiAxOTM0NjY2CiszMjggMzIgMTk1NjAwMAorMzIzIDMyIDE5NzczMzMKKzMxMCAzMiAxOTk4NjY2CiszMTggMzIgMjAyMDAwMAorMzEyIDMyIDIwNDEzMzMKKzI5NSAzMiAyMDYyNjY2CiszMjkgMzIgMjA4NDAwMAorMzE4IDMyIDIxMDUzMzMKKzMxMSAzMiAyMTI2NjY2CiszMTcgMzIgMjE0ODAwMAorNjIgMzIgMjE2OTMzMworNzUgMzIgMjE4MTMzMworNzMgMzIgMjE4NDAwMAorMzMyIDMyIDIxODY2NjYKKzMyNyAzMiAyMTk4NjY2CiszMzIgMzIgMjIyMDAwMAorMzI1IDMyIDIyNDEzMzMKKzMyOSAzMiAyMjYyNjY2CiszMzAgMzIgMjI4NDAwMAorNjEgMzIgMjMwNTMzMworNjEgMzIgMjMxNzMzMworNzAgMzIgMjMyMDAwMAorNzAgMzIgMjMyMjY2NgorMzE5IDMyIDIzMjUzMzMKKzMwMyAzMiAyMzM3MzMzCisyOTIgMzIgMjM1ODY2NgorMzEzIDMyIDIzODAwMDAKKzMxOCAzMiAyNDAxMzMzCiszNDYgMzIgMjQyMjY2NgorMzI4IDMyIDI0NDQwMDAKKzMxNiAzMiAyNDY1MzMzCiszNDEgMzIgMjQ4NjY2NgorMzI4IDMyIDI1MDgwMDAKKzMzOCAzMiAyNTI5MzMzCiszNDEgMzIgMjU1MDY2NgorMzM3IDMyIDI1NzIwMDAKKzM0NyAzMiAyNTkzMzMzCiszODQgMzIgMjYxNDY2NgorMzU4IDMyIDI2MzYwMDAKKzM2MyAzMiAyNjU3MzMzCiszNjMgMzIgMjY3ODY2NgorMzU4IDMyIDI3MDAwMDAKKzMzOSAzMiAyNzIxMzMzCiszNjkgMzIgMjc0MjY2NgorMzQzIDMyIDI3NjQwMDAKKzM0OCAzMiAyNzg1MzMzCiszNjMgMzIgMjgwNjY2NgorMzUwIDMyIDI4MjgwMDAKKzM1OCAzMiAyODQ5MzMzCiszNTIgMzIgMjg3MDY2NgorMzM4IDMyIDI4OTIwMDAKKzMzNSAzMiAyOTEzMzMzCiszNDIgMzIgMjkzNDY2NgorMzM4IDMyIDI5NTYwMDAKKzM0MCAzMiAyOTc3MzMzCisyOTIgMzIgMjk5ODY2NgorMjc5IDMyIDMwMjAwMDAKKzI5OSAzMiAzMDQxMzMzCiszMDMgMzIgMzA2MjY2NgorMjk4IDMyIDMwODQwMDAKKzI5NyAzMiAzMTA1MzMzCisyODAgMzIgMzEyNjY2NgorMjk3IDMyIDMxNDgwMDAKKzI5MCAzMiAzMTY5MzMzCiszMDYgMzIgMzE5MDY2NgorMzAxIDMyIDMyMTIwMDAKKzMwNiAzMiAzMjMzMzMzCisyODkgMzIgMzI1NDY2NgorMzExIDMyIDMyNzYwMDAKKzMxNyAzMiAzMjk3MzMzCiszNDQgMzIgMzMxODY2NgorMzA4IDMyIDMzNDAwMDAKKzMwNCAzMiAzMzYxMzMzCiszMDQgMzIgMzM4MjY2NgorMzEyIDMyIDM0MDQwMDAKKzMwNSAzMiAzNDI1MzMzCisyOTkgMzIgMzQ0NjY2NgorMzAxIDMyIDM0NjgwMDAKKzMxOCAzMiAzNDg5MzMzCiszMTMgMzIgMzUxMDY2NgorMzMwIDMyIDM1MzIwMDAKKzMyNSAzMiAzNTUzMzMzCiszMjUgMzIgMzU3NDY2NgorMzIxIDMyIDM1OTYwMDAKKzM0OSAzMiAzNjE3MzMzCisyODggMzIgMzYzODY2NgorMzAwIDMyIDM2NjAwMDAKKzMxMiAzMiAzNjgxMzMzCiszMDIgMzIgMzcwMjY2NgorMjc4IDMyIDM3MjQwMDAKKzI4NCAzMiAzNzQ1MzMzCisyODYgMzIgMzc2NjY2NgorMjc0IDMyIDM3ODgwMDAKKzI5NSAzMiAzODA5MzMzCisyODEgMzIgMzgzMDY2NgorMjg4IDMyIDM4NTIwMDAKKzI3OCAzMiAzODczMzMzCiszMDYgMzIgMzg5NDY2NgorNjIgMzIgMzkxNjAwMAorNTkgMzIgMzkyODAwMAorNjEgMzIgMzkzMDY2NgorNTUgMzIgMzkzMzMzMworNzAgMzIgMzkzNjAwMAorNzIgMzIgMzkzODY2NgorMzI0IDMyIDM5NDEzMzMKKzMwOSAzMiAzOTUzMzMzCiszMDEgMzIgMzk3NDY2NgorMzAxIDMyIDM5OTYwMDAKKzI5MSAzMiA0MDE3MzMzCisyODkgMzIgNDAzODY2NgorMzA2IDMyIDQwNjAwMDAKKzMwNSAzMiA0MDgxMzMzCisyODYgMzIgNDEwMjY2NgorMjk0IDMyIDQxMjQwMDAKKzI5MCAzMiA0MTQ1MzMzCisyOTcgMzIgNDE2NjY2NgorMzA4IDMyIDQxODgwMDAKKzI5NiAzMiA0MjA5MzMzCisyOTIgMzIgNDIzMDY2NgorMjg3IDMyIDQyNTIwMDAKKzI5MSAzMiA0MjczMzMzCisyOTggMzIgNDI5NDY2NgorMjk1IDMyIDQzMTYwMDAKKzI5NCAzMiA0MzM3MzMzCisyOTUgMzIgNDM1ODY2NgorMjc1IDMyIDQzODAwMDAKKzI4MCAzMiA0NDAxMzMzCisyODggMzIgNDQyMjY2NgorMjg1IDMyIDQ0NDQwMDAKKzI3NCAzMiA0NDY1MzMzCisyOTggMzIgNDQ4NjY2NgorMzAxIDMyIDQ1MDgwMDAKKzMwMCAzMiA0NTI5MzMzCiszMDUgMzIgNDU1MDY2NgorMjk3IDMyIDQ1NzIwMDAKKzU5IDMyIDQ1OTMzMzMKKzU2IDMyIDQ2MDUzMzMKKzU3IDMyIDQ2MDgwMDAKKzU1IDMyIDQ2MTA2NjYKKzU4IDMyIDQ2MTMzMzMKKzU3IDMyIDQ2MTYwMDAKKzU4IDMyIDQ2MTg2NjYKKzY4IDMyIDQ2MjEzMzMKKzY3IDMyIDQ2MjQwMDAKKzcxIDMyIDQ2MjY2NjYKKzI4OSAzMiA0NjI5MzMzCisyODIgMzIgNDY0MTMzMworMjczIDMyIDQ2NjI2NjYKKzI3OSAzMiA0Njg0MDAwCisyODYgMzIgNDcwNTMzMworMjgyIDMyIDQ3MjY2NjYKKzI4NCAzMiA0NzQ4MDAwCisyNzggMzIgNDc2OTMzMworMjgxIDMyIDQ3OTA2NjYKKzI4MCAzMiA0ODEyMDAwCisyNjMgMzIgNDgzMzMzMworMjYwIDMyIDQ4NTQ2NjYKKzI3MSAzMiA0ODc2MDAwCisyNzMgMzIgNDg5NzMzMworMjgyIDMyIDQ5MTg2NjYKKzI3OSAzMiA0OTQwMDAwCisyOTcgMzIgNDk2MTMzMworMjkxIDMyIDQ5ODI2NjYKKzMwOSAzMiA1MDA0MDAwCisyODMgMzIgNTAyNTMzMworMjkyIDMyIDUwNDY2NjYKKzMwNCAzMiA1MDY4MDAwCisyOTYgMzIgNTA4OTMzMworMjkzIDMyIDUxMTA2NjYKKzI4MiAzMiA1MTMyMDAwCisyNzMgMzIgNTE1MzMzMworMjg0IDMyIDUxNzQ2NjYKKzI4MSAzMiA1MTk2MDAwCisyNjUgMzIgNTIxNzMzMworMjcyIDMyIDUyMzg2NjYKKzI3NyAzMiA1MjYwMDAwCisyODAgMzIgNTI4MTMzMworMjc2IDMyIDUzMDI2NjYKKzI3MyAzMiA1MzI0MDAwCisyNzggMzIgNTM0NTMzMworMjgwIDMyIDUzNjY2NjYKKzI4MCAzMiA1Mzg4MDAwCisyNjggMzIgNTQwOTMzMworMjgyIDMyIDU0MzA2NjYKKzI3NyAzMiA1NDUyMDAwCisyNzQgMzIgNTQ3MzMzMworMjc1IDMyIDU0OTQ2NjYKKzI3MCAzMiA1NTE2MDAwCisyODIgMzIgNTUzNzMzMworMjc5IDMyIDU1NTg2NjYKKzI2MCAzMiA1NTgwMDAwCisyNzIgMzIgNTYwMTMzMworMjc1IDMyIDU2MjI2NjYKKzI3MyAzMiA1NjQ0MDAwCisyNzYgMzIgNTY2NTMzMworMjg4IDMyIDU2ODY2NjYKKzI5NCAzMiA1NzA4MDAwCisyNzEgMzIgNTcyOTMzMworMjc3IDMyIDU3NTA2NjYKKzI4OCAzMiA1NzcyMDAwCisyNzYgMzIgNTc5MzMzMworMjgyIDMyIDU4MTQ2NjYKKzI3NiAzMiA1ODM2MDAwCisyNzUgMzIgNTg1NzMzMworMjY4IDMyIDU4Nzg2NjYKKzI3MCAzMiA1OTAwMDAwCisyNjYgMzIgNTkyMTMzMworMjY4IDMyIDU5NDI2NjYKKzI4MiAzMiA1OTY0MDAwCisyNzkgMzIgNTk4NTMzMworMjc5IDMyIDYwMDY2NjYKKzI4NyAzMiA2MDI4MDAwCisyODYgMzIgNjA0OTMzMworMjgwIDMyIDYwNzA2NjYKKzI5MCAzMiA2MDkyMDAwCisyNjYgMzIgNjExMzMzMworMjkyIDMyIDYxMzQ2NjYKKzI2NCAzMiA2MTU2MDAwCisyNzEgMzIgNjE3NzMzMworMjc3IDMyIDYxOTg2NjYKKzI5MiAzMiA2MjIwMDAwCisyOTggMzIgNjI0MTMzMworMjg0IDMyIDYyNjI2NjYKKzI4NyAzMiA2Mjg0MDAwCisyNzUgMzIgNjMwNTMzMworMjkxIDMyIDYzMjY2NjYKKzI4NyAzMiA2MzQ4MDAwCisyODMgMzIgNjM2OTMzMworMjg0IDMyIDYzOTA2NjYKKzI3MSAzMiA2NDEyMDAwCisyODIgMzIgNjQzMzMzMworMjc3IDMyIDY0NTQ2NjYKKzI4MiAzMiA2NDc2MDAwCisyODUgMzIgNjQ5NzMzMworMjgwIDMyIDY1MTg2NjYKKzI3MSAzMiA2NTQwMDAwCisyODkgMzIgNjU2MTMzMworMjg3IDMyIDY1ODI2NjYKKzI5NCAzMiA2NjA0MDAwCisyNzcgMzIgNjYyNTMzMworMjgxIDMyIDY2NDY2NjYKKzI3NCAzMiA2NjY4MDAwCisyNzEgMzIgNjY4OTMzMworMjc5IDMyIDY3MTA2NjYKKzI4OCAzMiA2NzMyMDAwCisyODAgMzIgNjc1MzMzMworMjg0IDMyIDY3NzQ2NjYKKzI3OCAzMiA2Nzk2MDAwCisyNzYgMzIgNjgxNzMzMworMjc1IDMyIDY4Mzg2NjYKKzI2MyAzMiA2ODYwMDAwCisyNjYgMzIgNjg4MTMzMworMjQ3IDMyIDY5MDI2NjYKKzI2OSAzMiA2OTI0MDAwCisyNjMgMzIgNjk0NTMzMworMjgzIDMyIDY5NjY2NjYKKzI4MCAzMiA2OTg4MDAwCisyODEgMzIgNzAwOTMzMworMjk5IDMyIDcwMzA2NjYKKzI4NSAzMiA3MDUyMDAwCisyODggMzIgNzA3MzMzMworMjk5IDMyIDcwOTQ2NjYKKzI4OCAzMiA3MTE2MDAwCisyNzkgMzIgNzEzNzMzMworMjc2IDMyIDcxNTg2NjYKKzI3NyAzMiA3MTgwMDAwCisyODIgMzIgNzIwMTMzMworMjg1IDMyIDcyMjI2NjYKKzI5NSAzMiA3MjQ0MDAwCisyOTQgMzIgNzI2NTMzMworMzA0IDMyIDcyODY2NjYKKzI4MiAzMiA3MzA4MDAwCisyOTkgMzIgNzMyOTMzMworMjgzIDMyIDczNTA2NjYKKzI4MiAzMiA3MzcyMDAwCisyODcgMzIgNzM5MzMzMworMzA2IDMyIDc0MTQ2NjYKKzMwNCAzMiA3NDM2MDAwCisyODkgMzIgNzQ1NzMzMworMjk5IDMyIDc0Nzg2NjYKKzI4MSAzMiA3NTAwMDAwCisyODEgMzIgNzUyMTMzMworNjYgMzIgNzU0MjY2NgorNjMgMzIgNzU1NDY2NgorMjg5IDMyIDc1NTczMzMKKzI3MCAzMiA3NTY5MzMzCisyNTcgMzIgNzU5MDY2NgorMjQ2IDMyIDc2MTIwMDAKKzI2NCAzMiA3NjMzMzMzCisyODAgMzIgNzY1NDY2NgorMjczIDMyIDc2NzYwMDAKKzI4NSAzMiA3Njk3MzMzCisyNjcgMzIgNzcxODY2NgorMjc1IDMyIDc3NDAwMDAKKzI3OCAzMiA3NzYxMzMzCisyOTMgMzIgNzc4MjY2NgorMjgxIDMyIDc4MDQwMDAKKzI5NyAzMiA3ODI1MzMzCisyOTQgMzIgNzg0NjY2NgorMjg2IDMyIDc4NjgwMDAKKzI5MCAzMiA3ODg5MzMzCisyOTAgMzIgNzkxMDY2NgorMjg5IDMyIDc5MzIwMDAKKzI4NiAzMiA3OTUzMzMzCisyODIgMzIgNzk3NDY2NgorMzA2IDMyIDc5OTYwMDAKKzI4NyAzMiA4MDE3MzMzCiszMTIgMzIgODAzODY2NgorMzEyIDMyIDgwNjAwMDAKKzMwNyAzMiA4MDgxMzMzCisyOTMgMzIgODEwMjY2NgorMjg5IDMyIDgxMjQwMDAKKzI4NSAzMiA4MTQ1MzMzCisyOTAgMzIgODE2NjY2NgorMjg1IDMyIDgxODgwMDAKKzMxMSAzMiA4MjA5MzMzCiszMDcgMzIgODIzMDY2NgorMzE0IDMyIDgyNTIwMDAKKzMxOCAzMiA4MjczMzMzCiszMTkgMzIgODI5NDY2NgorMzE1IDMyIDgzMTYwMDAKKzMwMCAzMiA4MzM3MzMzCisyOTUgMzIgODM1ODY2NgorMjkxIDMyIDgzODAwMDAKKzI4MiAzMiA4NDAxMzMzCisyOTUgMzIgODQyMjY2NgorMjk2IDMyIDg0NDQwMDAKKzI4OCAzMiA4NDY1MzMzCiszMDQgMzIgODQ4NjY2NgorMjk5IDMyIDg1MDgwMDAKKzI5OCAzMiA4NTI5MzMzCiszMDUgMzIgODU1MDY2NgorMjk1IDMyIDg1NzIwMDAKKzI5NiAzMiA4NTkzMzMzCisyOTUgMzIgODYxNDY2NgorMjg3IDMyIDg2MzYwMDAKKzI5MiAzMiA4NjU3MzMzCiszMDggMzIgODY3ODY2NgorMjg3IDMyIDg3MDAwMDAKKzMwNyAzMiA4NzIxMzMzCisyOTUgMzIgODc0MjY2NgorMjkyIDMyIDg3NjQwMDAKKzI5MiAzMiA4Nzg1MzMzCisyNzkgMzIgODgwNjY2NgorMjg5IDMyIDg4MjgwMDAKKzMwMyAzMiA4ODQ5MzMzCiszMDcgMzIgODg3MDY2NgorMzEwIDMyIDg4OTIwMDAKKzMwMCAzMiA4OTEzMzMzCisyOTkgMzIgODkzNDY2NgorMjk5IDMyIDg5NTYwMDAKKzI4OCAzMiA4OTc3MzMzCisyOTAgMzIgODk5ODY2NgorMjkxIDMyIDkwMjAwMDAKKzMwNCAzMiA5MDQxMzMzCisyOTkgMzIgOTA2MjY2NgorMzA0IDMyIDkwODQwMDAKKzI5MCAzMiA5MTA1MzMzCiszMDkgMzIgOTEyNjY2NgorMzAxIDMyIDkxNDgwMDAKKzI5NiAzMiA5MTY5MzMzCisyODggMzIgOTE5MDY2NgorMzA1IDMyIDkyMTIwMDAKKzMxNyAzMiA5MjMzMzMzCisyOTIgMzIgOTI1NDY2NgorMzAwIDMyIDkyNzYwMDAKKzMwMSAzMiA5Mjk3MzMzCisyOTUgMzIgOTMxODY2NgorMjgyIDMyIDkzNDAwMDAKKzI5NiAzMiA5MzYxMzMzCisyOTUgMzIgOTM4MjY2NgorMjg3IDMyIDk0MDQwMDAKKzI5MiAzMiA5NDI1MzMzCiszMDEgMzIgOTQ0NjY2NgorMzExIDMyIDk0NjgwMDAKKzMwMSAzMiA5NDg5MzMzCiszMDcgMzIgOTUxMDY2NgorMzAwIDMyIDk1MzIwMDAKKzMwOSAzMiA5NTUzMzMzCisyOTggMzIgOTU3NDY2NgorMzA0IDMyIDk1OTYwMDAKKzYwIDMyIDk2MTczMzMKKzU5IDMyIDk2MjkzMzMKKzY0IDMyIDk2MzIwMDAKKzY0IDMyIDk2MzQ2NjYKKzc3IDMyIDk2MzczMzMKKzcyIDMyIDk2NDAwMDAKKzMwNiAzMiA5NjQyNjY2CisyOTcgMzIgOTY1NDY2NgorMjk0IDMyIDk2NzYwMDAKKzI5NSAzMiA5Njk3MzMzCiszMDggMzIgOTcxODY2NgorMzAzIDMyIDk3NDAwMDAKKzMwOCAzMiA5NzYxMzMzCisyODkgMzIgOTc4MjY2NgorMzAwIDMyIDk4MDQwMDAKKzMwNCAzMiA5ODI1MzMzCiszMDggMzIgOTg0NjY2NgorNjQgMzIgOTg2ODAwMAorNjMgMzIgOTg4MDAwMAorNjQgMzIgOTg4MjY2NgorNjQgMzIgOTg4NTMzMworNjAgMzIgOTg4ODAwMAorNzQgMzIgOTg5MDY2NgorNjkgMzIgOTg5MzMzMworNjggMzIgOTg5NjAwMAorNjEgMzIgOTg5ODY2NgorNzEgMzIgOTkwMTMzMworNzYgMzIgOTkwNDAwMAorNzMgMzIgOTkwNjY2NgorNzAgMzIgOTkwOTMzMworNzIgMzIgOTkxMjAwMAorNjAgMzIgOTkxNDY2NgorNjkgMzIgOTkxNzMzMworODIgMzIgOTkyMDAwMAorMjc4IDMyIDk5MjI2NjYKKzMwIDMyIDk5MzQ2NjYKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzIGIvbWVkaWEvcmVzL2JiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei52b3JiaXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDA0YzVmOAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDFmM2JiCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl92cDhfNjQweDM2MF8ybWJwc18zMGZwcy5pbmZvCkBAIC0wLDAgKzEsMzAwIEBACis4Njk4MCAzMiAwCis2NzQxIDAgMzMwMDAKKzk0MzMgMCA2NzAwMAorOTM2MyAwIDEwMDAwMAorODY3MSAwIDEzMzAwMAorOTAwMyAwIDE2NzAwMAorNzc1MSAwIDIwMDAwMAorMTMyMDcgMCAyMzMwMDAKKzg1NDIgMCAyNjcwMDAKKzkzNDQgMCAzMDAwMDAKKzgwNjkgMCAzMzMwMDAKKzg1ODggMCAzNjcwMDAKKzEyMDg3IDAgNDAwMDAwCis3MzE1IDAgNDMzMDAwCis5NjU0IDAgNDY3MDAwCisxMzEwMCAwIDUwMDAwMAorNzgzMiAwIDUzMzAwMAorMTAwNjAgMCA1NjcwMDAKKzg1NDAgMCA2MDAwMDAKKzg2NjcgMCA2MzMwMDAKKzg1MzIgMCA2NjcwMDAKKzYwMTggMCA3MDAwMDAKKzg1MjAgMCA3MzMwMDAKKzE1MzUwIDAgNzY3MDAwCis2MTEwIDAgODAwMDAwCis3ODc2IDAgODMzMDAwCis2MTMzIDAgODY3MDAwCis5NDc2IDAgOTAwMDAwCisxMTAwMiAwIDkzMzAwMAorNzQ4NCAwIDk2NzAwMAorODc2MCAwIDEwMDAwMDAKKzE2NTE1IDAgMTAzMzAwMAorNzQ4MiAwIDEwNjcwMDAKKzY5ODMgMCAxMTAwMDAwCis3NTYxIDAgMTEzMzAwMAorODI2MyAwIDExNjcwMDAKKzEwNjgyIDAgMTIwMDAwMAorODEwOCAwIDEyMzMwMDAKKzc5MjQgMCAxMjY3MDAwCis4NjkzIDAgMTMwMDAwMAorMTQxOTAgMCAxMzMzMDAwCis3MzkzIDAgMTM2NzAwMAorNjg2NCAwIDE0MDAwMDAKKzk0MzEgMCAxNDMzMDAwCis3Njc0IDAgMTQ2NzAwMAorODQ1OCAwIDE1MDAwMDAKKzU4OTkgMCAxNTMzMDAwCis4MjU5IDAgMTU2NzAwMAorNzk2MyAwIDE2MDAwMDAKKzE0Nzc5IDAgMTYzMzAwMAorNjg3NyAwIDE2NjcwMDAKKzcyNjggMCAxNzAwMDAwCis4NTI2IDAgMTczMzAwMAorODQ2NyAwIDE3NjcwMDAKKzExMjAwIDAgMTgwMDAwMAorNzI2MSAwIDE4MzMwMDAKKzgyODAgMCAxODY3MDAwCis2NzE4IDAgMTkwMDAwMAorMTc3NDIgMCAxOTMzMDAwCis1MjA2IDAgMTk2NzAwMAorNTcwMCAwIDIwMDAwMDAKKzU4NzIgMCAyMDMzMDAwCis3OTE1IDAgMjA2NzAwMAorODQ5MyAwIDIxMDAwMDAKKzY1NDUgMCAyMTMzMDAwCis5MDcyIDAgMjE2NzAwMAorMTMyMDAgMCAyMjAwMDAwCis5NjMyIDAgMjIzMzAwMAorMTAwMTYgMCAyMjY3MDAwCis3ODI0IDAgMjMwMDAwMAorMTA2MjggMCAyMzMzMDAwCisxMDQwMSAwIDIzNjcwMDAKKzEwODkyIDAgMjQwMDAwMAorOTAyMyAwIDI0MzMwMDAKKzEwNzM0IDAgMjQ2NzAwMAorMTUwNDUgMCAyNTAwMDAwCis3OTQwIDAgMjUzMzAwMAorOTY1NyAwIDI1NjcwMDAKKzg3NDMgMCAyNjAwMDAwCis4MDc0IDAgMjYzMzAwMAorOTQ0NSAwIDI2NjcwMDAKKzY0OTQgMCAyNzAwMDAwCis4NjAxIDAgMjczMzAwMAorMTM0NzggMCAyNzY3MDAwCis2OTQyIDAgMjgwMDAwMAorODAwMiAwIDI4MzMwMDAKKzc5NDAgMCAyODY3MDAwCis4MzIwIDAgMjkwMDAwMAorMTIyMTUgMCAyOTMzMDAwCis2NjY4IDAgMjk2NzAwMAorMTEzODQgMCAzMDAwMDAwCis4Mzc4IDAgMzAzMzAwMAorMTI5MDggMCAzMDY3MDAwCis4NDIwIDAgMzEwMDAwMAorNzUwMiAwIDMxMzMwMDAKKzg0ODIgMCAzMTY3MDAwCisxMDk2OCAwIDMyMDAwMDAKKzEyMzM4IDAgMzIzMzAwMAorODY1NyAwIDMyNjcwMDAKKzEwNDY4IDAgMzMwMDAwMAorMTM4NzggMCAzMzMzMDAwCis5Mzc0IDAgMzM2NzAwMAorOTg1NyAwIDM0MDAwMDAKKzEwMzgxIDAgMzQzMzAwMAorOTk4NCAwIDM0NjcwMDAKKzk5NTYgMCAzNTAwMDAwCis4OTA1IDAgMzUzMzAwMAorODY3MiAwIDM1NjcwMDAKKzgxMjIgMCAzNjAwMDAwCis5Njc3IDAgMzYzMzAwMAorOTgxMiAwIDM2NjcwMDAKKzk2MjIgMCAzNzAwMDAwCis5MDIzIDAgMzczMzAwMAorNzE0NyAwIDM3NjcwMDAKKzkxNDYgMCAzODAwMDAwCis3NDg4IDAgMzgzMzAwMAorMTA4MTIgMCAzODY3MDAwCis4MzQwIDAgMzkwMDAwMAorMTMyODAgMCAzOTMzMDAwCis1MTY3IDAgMzk2NzAwMAorNjk5MSAwIDQwMDAwMDAKKzY1NDMgMCA0MDMzMDAwCis1OTUyIDAgNDA2NzAwMAorNTE2NCAwIDQxMDAwMDAKKzQwMTEgMCA0MTMzMDAwCiszNzk0IDAgNDE2NzAwMAorMTI5NTkgMCA0MjAwMDAwCis3MTAyMCAzMiA0MjMzMDAwCis1MzUxIDAgNDI2NzAwMAorNjI4MyAwIDQzMDAwMDAKKzUwODAgMCA0MzMzMDAwCis2NzA3IDAgNDM2NzAwMAorNTg1NyAwIDQ0MDAwMDAKKzUyMjEgMCA0NDMzMDAwCisxMDk3MiAwIDQ0NjcwMDAKKzcwMjMgMCA0NTAwMDAwCis2OTA3IDAgNDUzMzAwMAorNzg1MSAwIDQ1NjcwMDAKKzQ4NDMgMCA0NjAwMDAwCis2MDg1IDAgNDYzMzAwMAorNDg2OCAwIDQ2NjcwMDAKKzUwOTMgMCA0NzAwMDAwCisxMjgwNyAwIDQ3MzMwMDAKKzYzMzAgMCA0NzY3MDAwCis0MjA5IDAgNDgwMDAwMAorNDU5NiAwIDQ4MzMwMDAKKzYzMTYgMCA0ODY3MDAwCis0OTU0IDAgNDkwMDAwMAorNTUzMyAwIDQ5MzMwMDAKKzc3NDkgMCA0OTY3MDAwCisxMjQ4NiAwIDUwMDAwMDAKKzU0NjggMCA1MDMzMDAwCis0MzUzIDAgNTA2NzAwMAorNTc4NiAwIDUxMDAwMDAKKzU1NTEgMCA1MTMzMDAwCis2NzExIDAgNTE2NzAwMAorNTY4OCAwIDUyMDAwMDAKKzYyNTggMCA1MjMzMDAwCisxMjk3NSAwIDUyNjcwMDAKKzQ4NzMgMCA1MzAwMDAwCis0NTUyIDAgNTMzMzAwMAorNDg0NCAwIDUzNjcwMDAKKzQ3NzQgMCA1NDAwMDAwCis1MDI1IDAgNTQzMzAwMAorNTIwNCAwIDU0NjcwMDAKKzQ4MTQgMCA1NTAwMDAwCisxNDgzNSAwIDU1MzMwMDAKKzUzNDMgMCA1NTY3MDAwCis0ODA4IDAgNTYwMDAwMAorNTA3MSAwIDU2MzMwMDAKKzYzMjQgMCA1NjY3MDAwCis1MjQzIDAgNTcwMDAwMAorNDk5NSAwIDU3MzMwMDAKKzUxMzQgMCA1NzY3MDAwCisxMTA1NCAwIDU4MDAwMDAKKzQ4MDcgMCA1ODMzMDAwCis1MTE4IDAgNTg2NzAwMAorNjQyNCAwIDU5MDAwMDAKKzQ5ODQgMCA1OTMzMDAwCis3MTg3IDAgNTk2NzAwMAorNTUwNSAwIDYwMDAwMDAKKzY5NDEgMCA2MDMzMDAwCisxMTUxNyAwIDYwNjcwMDAKKzU2NDYgMCA2MTAwMDAwCis2ODMyIDAgNjEzMzAwMAorNTI5NCAwIDYxNjcwMDAKKzYyMDAgMCA2MjAwMDAwCis2MzI4IDAgNjIzMzAwMAorNDM0OCAwIDYyNjcwMDAKKzQ2MDcgMCA2MzAwMDAwCisxMjk1OCAwIDYzMzMwMDAKKzQzMDggMCA2MzY3MDAwCis2MDg0IDAgNjQwMDAwMAorNDQ5NCAwIDY0MzMwMDAKKzUzMzggMCA2NDY3MDAwCis1NzQyIDAgNjUwMDAwMAorNTQ3MiAwIDY1MzMwMDAKKzg0NTkgMCA2NTY3MDAwCisxMzA3NSAwIDY2MDAwMDAKKzg5ODYgMCA2NjMzMDAwCis5NTgzIDAgNjY2NzAwMAorODc5MiAwIDY3MDAwMDAKKzkwMDQgMCA2NzMzMDAwCis5NjMyIDAgNjc2NzAwMAorOTM5MyAwIDY4MDAwMDAKKzkyNTkgMCA2ODMzMDAwCisxMTkyNyAwIDY4NjcwMDAKKzEwMzIzIDAgNjkwMDAwMAorMTUyNDggMCA2OTMzMDAwCisxMTI0NCAwIDY5NjcwMDAKKzE1NTU4IDAgNzAwMDAwMAorNjE5NyAwIDcwMzMwMDAKKzgwNDQgMCA3MDY3MDAwCisxMTQzMiAwIDcxMDAwMDAKKzg3MzcgMCA3MTMzMDAwCisxMzg4NSAwIDcxNjcwMDAKKzExMTU4IDAgNzIwMDAwMAorMTUxNTIgMCA3MjMzMDAwCis3MDI1IDAgNzI2NzAwMAorODAyNSAwIDczMDAwMDAKKzEzMzYyIDAgNzMzMzAwMAorODA5MCAwIDczNjcwMDAKKzEzNjM3IDAgNzQwMDAwMAorNjE0OCAwIDc0MzMwMDAKKzkyNzAgMCA3NDY3MDAwCis4NjMzIDAgNzUwMDAwMAorMTA2NzMgMCA3NTMzMDAwCisxNDIwOCAwIDc1NjcwMDAKKzgwODQgMCA3NjAwMDAwCisxMzc4MyAwIDc2MzMwMDAKKzEwNjYwIDAgNzY2NzAwMAorNzQ2NiAwIDc3MDAwMDAKKzE0NDMzIDAgNzczMzAwMAorMTA5MzQgMCA3NzY3MDAwCis3MjM5IDAgNzgwMDAwMAorMTI1NDggMCA3ODMzMDAwCis2NTY0IDAgNzg2NzAwMAorMTA3NjEgMCA3OTAwMDAwCisxMDk5MiAwIDc5MzMwMDAKKzEyOTI0IDAgNzk2NzAwMAorMTIzNDggMCA4MDAwMDAwCis2NzcwIDAgODAzMzAwMAorMTQyODggMCA4MDY3MDAwCisyOTM0NSAzMiA4MTAwMDAwCisxODIyIDAgODEzMzAwMAorMTA4NyAwIDgxNjcwMDAKKzExMDkgMCA4MjAwMDAwCisyMDA3IDAgODIzMzAwMAorMTc5OCAwIDgyNjcwMDAKKzE2MzUgMCA4MzAwMDAwCisxOTYwNyAwIDgzMzMwMDAKKzkxOSAwIDgzNjcwMDAKKzIzNTcgMCA4NDAwMDAwCiszNTc4IDAgODQzMzAwMAorNDQ5NyAwIDg0NjcwMDAKKzQzMTQgMCA4NTAwMDAwCiszODUxIDAgODUzMzAwMAorMzgyMiAwIDg1NjcwMDAKKzQyNTIgMCA4NjAwMDAwCis0Nzc1IDAgODYzMzAwMAorMTIyMDMgMCA4NjY3MDAwCis1MDc4IDAgODcwMDAwMAorNTg3NiAwIDg3MzMwMDAKKzYxMjQgMCA4NzY3MDAwCis0NDkwIDAgODgwMDAwMAorMzUzOCAwIDg4MzMwMDAKKzM0NTAgMCA4ODY3MDAwCiszNjExIDAgODkwMDAwMAorMjg0NyAwIDg5MzMwMDAKKzI2MDUgMCA4OTY3MDAwCisxMjI0MyAwIDkwMDAwMDAKKzE5NDYgMCA5MDMzMDAwCisxODQ3IDAgOTA2NzAwMAorMjAzNSAwIDkxMDAwMDAKKzI1NzIgMCA5MTMzMDAwCisyMzI2IDAgOTE2NzAwMAorMjY0NSAwIDkyMDAwMDAKKzI5MzggMCA5MjMzMDAwCisyNDk1IDAgOTI2NzAwMAorMjYwOSAwIDkzMDAwMDAKKzk3NDQgMCA5MzMzMDAwCisxNzk2IDAgOTM2NzAwMAorMTk4NSAwIDk0MDAwMDAKKzE3NTkgMCA5NDMzMDAwCisyMjU5IDAgOTQ2NzAwMAorMjIzMyAwIDk1MDAwMDAKKzIwNDQgMCA5NTMzMDAwCisyNTAyIDAgOTU2NzAwMAorMjMwNyAwIDk2MDAwMDAKKzI3MzkgMCA5NjMzMDAwCisxMTcwNyAwIDk2NjcwMDAKKzUxNjggMCA5NzAwMDAwCis0NDgzIDAgOTczMzAwMAorMzA0NCAwIDk3NjcwMDAKKzQyNDEgMCA5ODAwMDAwCis0MzkyIDAgOTgzMzAwMAorNDkzNCAwIDk4NjcwMDAKKzU5MzQgMCA5OTAwMDAwCis1NjQ3IDAgOTkzMzAwMAorNTMyNiAwIDk5NjcwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4IGIvbWVkaWEvcmVzL2JiYl92cDhfNjQweDM2MF8ybWJwc18zMGZwcy52cDgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVjNDYwYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGJlNThlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl92cDlfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5pbmZvCkBAIC0wLDAgKzEsMzAwIEBACis1NDkxOCAzMiAwCis0NjI4MCAwIDMzMDAwCisyMDA2IDAgNjcwMDAKKzI4NDEgMCAxMDAwMDAKKzMwNDQgMCAxMzMwMDAKKzM0MjkgMCAxNjcwMDAKKzMxOTYgMCAyMDAwMDAKKzI5MjYgMCAyMzMwMDAKKzI4MjEgMCAyNjcwMDAKKzExNTAgMCAzMDAwMDAKKzM2IDAgMzMzMDAwCiszODA4NCAwIDM2NzAwMAorMzY4OSAwIDQwMDAwMAorMzQ3MyAwIDQzMzAwMAorMzAxMSAwIDQ2NzAwMAorMzA5MCAwIDUwMDAwMAorMjUxNiAwIDUzMzAwMAorMjc3MSAwIDU2NzAwMAorMzI1MCAwIDYwMDAwMAorMTE1OSAwIDYzMzAwMAorMzQgMCA2NjcwMDAKKzM5NjkwIDAgNzAwMDAwCiszNjE1IDAgNzMzMDAwCisyNDk0IDAgNzY3MDAwCisyODkzIDAgODAwMDAwCiszMzI5IDAgODMzMDAwCisyOTM5IDAgODY3MDAwCisyMzUyIDAgOTAwMDAwCisyNzMyIDAgOTMzMDAwCisxNzQ2IDAgOTY3MDAwCiszMyAwIDEwMDAwMDAKKzQxNTAxIDAgMTAzMzAwMAorMjk5NyAwIDEwNjcwMDAKKzI2NjYgMCAxMTAwMDAwCiszNTgyIDAgMTEzMzAwMAorMjYxNiAwIDExNjcwMDAKKzI5MjMgMCAxMjAwMDAwCisyNjk2IDAgMTIzMzAwMAorMTYyOCAwIDEyNjcwMDAKKzE4ODcgMCAxMzAwMDAwCiszMyAwIDEzMzMwMDAKKzQyODc2IDAgMTM2NzAwMAorMjU4OCAwIDE0MDAwMDAKKzMzMTYgMCAxNDMzMDAwCisyMjg3IDAgMTQ2NzAwMAorMzM3NSAwIDE1MDAwMDAKKzIxMDggMCAxNTMzMDAwCisyOTYxIDAgMTU2NzAwMAorMTczMCAwIDE2MDAwMDAKKzE4MDAgMCAxNjMzMDAwCiszNCAwIDE2NjcwMDAKKzQzNzk3IDAgMTcwMDAwMAorMjQ4NCAwIDE3MzMwMDAKKzI1NTYgMCAxNzY3MDAwCisyNjcxIDAgMTgwMDAwMAorMjMzOCAwIDE4MzMwMDAKKzMxMzMgMCAxODY3MDAwCisyMDAyIDAgMTkwMDAwMAorMTc5NCAwIDE5MzMwMDAKKzEyNzkgMCAxOTY3MDAwCiszMiAwIDIwMDAwMDAKKzQyNjQyIDAgMjAzMzAwMAorMjY4NiAwIDIwNjcwMDAKKzIyMDIgMCAyMTAwMDAwCisyMTQ1IDAgMjEzMzAwMAorMjU2NiAwIDIxNjcwMDAKKzIxOTAgMCAyMjAwMDAwCisxNTgwIDAgMjIzMzAwMAorMTcxMSAwIDIyNjcwMDAKKzY0OCAwIDIzMDAwMDAKKzMyIDAgMjMzMzAwMAorNDA0MDkgMCAyMzY3MDAwCisyNjI4IDAgMjQwMDAwMAorMTk3MyAwIDI0MzMwMDAKKzIzNjAgMCAyNDY3MDAwCiszMDQzIDAgMjUwMDAwMAorMTczMCAwIDI1MzMwMDAKKzE0NTYgMCAyNTY3MDAwCisyMzEyIDAgMjYwMDAwMAorMzY5IDAgMjYzMzAwMAorMzIgMCAyNjY3MDAwCis0MTM5MSAwIDI3MDAwMDAKKzI5NjcgMCAyNzMzMDAwCisyNDU0IDAgMjc2NzAwMAorMTgyNSAwIDI4MDAwMDAKKzE4NTMgMCAyODMzMDAwCisxNzQ2IDAgMjg2NzAwMAorMjM0NyAwIDI5MDAwMDAKKzEzNjIgMCAyOTMzMDAwCis0NDEgMCAyOTY3MDAwCiszNCAwIDMwMDAwMDAKKzQyNTAzIDAgMzAzMzAwMAorMTg3NyAwIDMwNjcwMDAKKzE2OTAgMCAzMTAwMDAwCisxMzY3IDAgMzEzMzAwMAorMTUyMCAwIDMxNjcwMDAKKzEyNDAgMCAzMjAwMDAwCisxMDk0IDAgMzIzMzAwMAorNzM5IDAgMzI2NzAwMAorMzkyIDAgMzMwMDAwMAorMzMgMCAzMzMzMDAwCiszNTEwNCAwIDMzNjcwMDAKKzE0NjMgMCAzNDAwMDAwCisyMDI5IDAgMzQzMzAwMAorMTYyNiAwIDM0NjcwMDAKKzE5NTYgMCAzNTAwMDAwCis3OTkgMCAzNTMzMDAwCis1NTYgMCAzNTY3MDAwCis1ODQgMCAzNjAwMDAwCisxOTEgMCAzNjMzMDAwCiszNiAwIDM2NjcwMDAKKzM3NjUyIDAgMzcwMDAwMAorODYyIDAgMzczMzAwMAorNTI0IDAgMzc2NzAwMAorNjQxIDAgMzgwMDAwMAorNTg0IDAgMzgzMzAwMAorMzYwIDAgMzg2NzAwMAorMzY1IDAgMzkwMDAwMAorMzYxIDAgMzkzMzAwMAorMTU0IDAgMzk2NzAwMAorMzYgMCA0MDAwMDAwCisxMjU3NDAgMCA0MDMzMDAwCiszMzIgMCA0MDY3MDAwCiszODEgMCA0MTAwMDAwCis0MjAgMCA0MTMzMDAwCis0NjQgMCA0MTY3MDAwCisyODggMCA0MjAwMDAwCisyNjYwIDAgNDIzMzAwMAorMTI3NTY0IDMyIDQyNjcwMDAKKzMwNjk2IDAgNDMwMDAwMAorMzQyMyAwIDQzMzMwMDAKKzMzMTAgMCA0MzY3MDAwCiszNTEzIDAgNDQwMDAwMAorMzczNSAwIDQ0MzMwMDAKKzMzNTggMCA0NDY3MDAwCiszMTA4IDAgNDUwMDAwMAorMjgwMCAwIDQ1MzMwMDAKKzE3NTEgMCA0NTY3MDAwCis0MSAwIDQ2MDAwMDAKKzM5ODYyIDAgNDYzMzAwMAorMzczOSAwIDQ2NjcwMDAKKzM3NTUgMCA0NzAwMDAwCiszNDA4IDAgNDczMzAwMAorMzc4MyAwIDQ3NjcwMDAKKzM0MjMgMCA0ODAwMDAwCisyODAxIDAgNDgzMzAwMAorMjU0OSAwIDQ4NjcwMDAKKzE0NjEgMCA0OTAwMDAwCis0MCAwIDQ5MzMwMDAKKzQxNjY3IDAgNDk2NzAwMAorMzYyMyAwIDUwMDAwMDAKKzMzNTYgMCA1MDMzMDAwCiszNDI0IDAgNTA2NzAwMAorMzU0OCAwIDUxMDAwMDAKKzMxMTkgMCA1MTMzMDAwCisyOTA1IDAgNTE2NzAwMAorMjc3MiAwIDUyMDAwMDAKKzE2MjMgMCA1MjMzMDAwCis0MyAwIDUyNjcwMDAKKzQ2NzgzIDAgNTMwMDAwMAorMzQ2MiAwIDUzMzMwMDAKKzM0NzAgMCA1MzY3MDAwCiszNjc3IDAgNTQwMDAwMAorMzY4NCAwIDU0MzMwMDAKKzMyNjYgMCA1NDY3MDAwCiszMTI3IDAgNTUwMDAwMAorMjgwOSAwIDU1MzMwMDAKKzE3NTAgMCA1NTY3MDAwCis0MCAwIDU2MDAwMDAKKzQ2MjE1IDAgNTYzMzAwMAorMzU5OSAwIDU2NjcwMDAKKzM1NTggMCA1NzAwMDAwCiszNTQ0IDAgNTczMzAwMAorMzYzMiAwIDU3NjcwMDAKKzM1NDggMCA1ODAwMDAwCisyOTY4IDAgNTgzMzAwMAorMjcxNSAwIDU4NjcwMDAKKzE3MjkgMCA1OTAwMDAwCis0MSAwIDU5MzMwMDAKKzQ1OTU4IDAgNTk2NzAwMAorMzc3NiAwIDYwMDAwMDAKKzM1MjUgMCA2MDMzMDAwCiszNjQ0IDAgNjA2NzAwMAorMzc4NiAwIDYxMDAwMDAKKzMyMjIgMCA2MTMzMDAwCisyOTIzIDAgNjE2NzAwMAorMjc1MiAwIDYyMDAwMDAKKzE1OTIgMCA2MjMzMDAwCis0MSAwIDYyNjcwMDAKKzQ2MDMxIDAgNjMwMDAwMAorMzUyMCAwIDYzMzMwMDAKKzMzODAgMCA2MzY3MDAwCiszMzcxIDAgNjQwMDAwMAorMzQyNyAwIDY0MzMwMDAKKzMxMzUgMCA2NDY3MDAwCisyOTg4IDAgNjUwMDAwMAorMjczMCAwIDY1MzMwMDAKKzE2NzEgMCA2NTY3MDAwCis0MSAwIDY2MDAwMDAKKzQ1ODQ2IDAgNjYzMzAwMAorMzUzNSAwIDY2NjcwMDAKKzM1MDcgMCA2NzAwMDAwCiszNDI5IDAgNjczMzAwMAorMzQ5MSAwIDY3NjcwMDAKKzMzMjUgMCA2ODAwMDAwCisyOTc5IDAgNjgzMzAwMAorMjgwMCAwIDY4NjcwMDAKKzE2MTAgMCA2OTAwMDAwCis0MCAwIDY5MzMwMDAKKzQ1OTU4IDAgNjk2NzAwMAorMzc2MiAwIDcwMDAwMDAKKzMyNTQgMCA3MDMzMDAwCiszNDA4IDAgNzA2NzAwMAorMzg2MCAwIDcxMDAwMDAKKzMxOTggMCA3MTMzMDAwCisyOTY2IDAgNzE2NzAwMAorMjg4MiAwIDcyMDAwMDAKKzE3NjMgMCA3MjMzMDAwCis0MiAwIDcyNjcwMDAKKzQ2MTMwIDAgNzMwMDAwMAorMzU5MyAwIDczMzMwMDAKKzM1MjMgMCA3MzY3MDAwCiszOTM5IDAgNzQwMDAwMAorMzk4MCAwIDc0MzMwMDAKKzM0NzAgMCA3NDY3MDAwCiszMTkxIDAgNzUwMDAwMAorMjk2OSAwIDc1MzMwMDAKKzE3NDAgMCA3NTY3MDAwCis0MSAwIDc2MDAwMDAKKzQ2MzAwIDAgNzYzMzAwMAorMzczOSAwIDc2NjcwMDAKKzM3ODEgMCA3NzAwMDAwCiszOTY0IDAgNzczMzAwMAorNDAyMyAwIDc3NjcwMDAKKzM0ODAgMCA3ODAwMDAwCiszMDY1IDAgNzgzMzAwMAorMjkzNCAwIDc4NjcwMDAKKzE4MDUgMCA3OTAwMDAwCis0MiAwIDc5MzMwMDAKKzM4MTY2IDAgNzk2NzAwMAorNDA2MiAwIDgwMDAwMDAKKzM4NDQgMCA4MDMzMDAwCis0NTQ3IDAgODA2NzAwMAorOTM0IDAgODEwMDAwMAorMzY1IDAgODEzMzAwMAorMTgxIDAgODE2NzAwMAorNDYzIDAgODIwMDAwMAorNDE5IDAgODIzMzAwMAorMzggMCA4MjY3MDAwCis5NzAyIDAgODMwMDAwMAorMzQ0IDAgODMzMzAwMAorMjc2IDAgODM2NzAwMAorMTM1MCAwIDg0MDAwMDAKKzE3MDMgMCA4NDMzMDAwCisxODQzIDAgODQ2NzAwMAorMTIyOCAwIDg1MDAwMDAKKzM1NTgwIDMyIDg1MzMwMDAKKzI3NDU4IDAgODU2NzAwMAorMjE0NCAwIDg2MDAwMDAKKzI0ODIgMCA4NjMzMDAwCisyMDA0IDAgODY2NzAwMAorMjgyMiAwIDg3MDAwMDAKKzI1NzAgMCA4NzMzMDAwCisxNzI2IDAgODc2NzAwMAorMTI0OCAwIDg4MDAwMDAKKzg0NCAwIDg4MzMwMDAKKzM1IDAgODg2NzAwMAorMTQyMDcgMCA4OTAwMDAwCisxMDM3IDAgODkzMzAwMAorNzQ5IDAgODk2NzAwMAorODI5IDAgOTAwMDAwMAorOTE1IDAgOTAzMzAwMAorNjg1IDAgOTA2NzAwMAorNzY3IDAgOTEwMDAwMAorNzk4IDAgOTEzMzAwMAorMzQyIDAgOTE2NzAwMAorMzEgMCA5MjAwMDAwCisxMjU5MCAwIDkyMzMwMDAKKzkyMyAwIDkyNjcwMDAKKzgxOSAwIDkzMDAwMDAKKzc3NiAwIDkzMzMwMDAKKzg2MyAwIDkzNjcwMDAKKzcyOSAwIDk0MDAwMDAKKzQ3MSAwIDk0MzMwMDAKKzYzOCAwIDk0NjcwMDAKKzI3NiAwIDk1MDAwMDAKKzM4IDAgOTUzMzAwMAorMTcyNzIgMCA5NTY3MDAwCis4NTYgMCA5NjAwMDAwCisxMTU4IDAgOTYzMzAwMAorMjE3MiAwIDk2NjcwMDAKKzI3NTEgMCA5NzAwMDAwCisyMTQyIDAgOTczMzAwMAorMTI2NyAwIDk3NjcwMDAKKzE5NjUgMCA5ODAwMDAwCisxNTEwIDAgOTgzMzAwMAorMzQgMCA5ODY3MDAwCisyNjkyIDAgOTkwMDAwMAorMjc3OCAwIDk5MzMwMDAKKzI1ODUgMCA5OTY3MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOSBiL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMudnA5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZTIwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5hbXJuYiBiL21lZGlhL3Jlcy9zaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmFtcm5iCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWYyZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5hbXJuYgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjRlOTVmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbwpAQCAtMCwwICsxLDgzMyBAQAorMzIgMzIgMAorMzIgMzIgMjAwMDAKKzMyIDMyIDQwMDAwCiszMiAzMiA2MDAwMAorMzIgMzIgODAwMDAKKzMyIDMyIDEwMDAwMAorMzIgMzIgMTIwMDAwCiszMiAzMiAxNDAwMDAKKzMyIDMyIDE2MDAwMAorMzIgMzIgMTgwMDAwCiszMiAzMiAyMDAwMDAKKzMyIDMyIDIyMDAwMAorMzIgMzIgMjQwMDAwCiszMiAzMiAyNjAwMDAKKzMyIDMyIDI4MDAwMAorMzIgMzIgMzAwMDAwCiszMiAzMiAzMjAwMDAKKzMyIDMyIDM0MDAwMAorMzIgMzIgMzYwMDAwCiszMiAzMiAzODAwMDAKKzMyIDMyIDQwMDAwMAorMzIgMzIgNDIwMDAwCiszMiAzMiA0NDAwMDAKKzMyIDMyIDQ2MDAwMAorMzIgMzIgNDgwMDAwCiszMiAzMiA1MDAwMDAKKzMyIDMyIDUyMDAwMAorMzIgMzIgNTQwMDAwCiszMiAzMiA1NjAwMDAKKzMyIDMyIDU4MDAwMAorMzIgMzIgNjAwMDAwCiszMiAzMiA2MjAwMDAKKzMyIDMyIDY0MDAwMAorMzIgMzIgNjYwMDAwCiszMiAzMiA2ODAwMDAKKzMyIDMyIDcwMDAwMAorMzIgMzIgNzIwMDAwCiszMiAzMiA3NDAwMDAKKzMyIDMyIDc2MDAwMAorMzIgMzIgNzgwMDAwCiszMiAzMiA4MDAwMDAKKzMyIDMyIDgyMDAwMAorMzIgMzIgODQwMDAwCiszMiAzMiA4NjAwMDAKKzMyIDMyIDg4MDAwMAorMzIgMzIgOTAwMDAwCiszMiAzMiA5MjAwMDAKKzMyIDMyIDk0MDAwMAorMzIgMzIgOTYwMDAwCiszMiAzMiA5ODAwMDAKKzMyIDMyIDEwMDAwMDAKKzMyIDMyIDEwMjAwMDAKKzMyIDMyIDEwNDAwMDAKKzMyIDMyIDEwNjAwMDAKKzMyIDMyIDEwODAwMDAKKzMyIDMyIDExMDAwMDAKKzMyIDMyIDExMjAwMDAKKzMyIDMyIDExNDAwMDAKKzMyIDMyIDExNjAwMDAKKzMyIDMyIDExODAwMDAKKzMyIDMyIDEyMDAwMDAKKzMyIDMyIDEyMjAwMDAKKzMyIDMyIDEyNDAwMDAKKzMyIDMyIDEyNjAwMDAKKzMyIDMyIDEyODAwMDAKKzMyIDMyIDEzMDAwMDAKKzMyIDMyIDEzMjAwMDAKKzMyIDMyIDEzNDAwMDAKKzMyIDMyIDEzNjAwMDAKKzMyIDMyIDEzODAwMDAKKzMyIDMyIDE0MDAwMDAKKzMyIDMyIDE0MjAwMDAKKzMyIDMyIDE0NDAwMDAKKzMyIDMyIDE0NjAwMDAKKzMyIDMyIDE0ODAwMDAKKzMyIDMyIDE1MDAwMDAKKzMyIDMyIDE1MjAwMDAKKzMyIDMyIDE1NDAwMDAKKzMyIDMyIDE1NjAwMDAKKzMyIDMyIDE1ODAwMDAKKzMyIDMyIDE2MDAwMDAKKzMyIDMyIDE2MjAwMDAKKzMyIDMyIDE2NDAwMDAKKzMyIDMyIDE2NjAwMDAKKzMyIDMyIDE2ODAwMDAKKzMyIDMyIDE3MDAwMDAKKzMyIDMyIDE3MjAwMDAKKzMyIDMyIDE3NDAwMDAKKzMyIDMyIDE3NjAwMDAKKzMyIDMyIDE3ODAwMDAKKzMyIDMyIDE4MDAwMDAKKzMyIDMyIDE4MjAwMDAKKzMyIDMyIDE4NDAwMDAKKzMyIDMyIDE4NjAwMDAKKzMyIDMyIDE4ODAwMDAKKzMyIDMyIDE5MDAwMDAKKzMyIDMyIDE5MjAwMDAKKzMyIDMyIDE5NDAwMDAKKzMyIDMyIDE5NjAwMDAKKzMyIDMyIDE5ODAwMDAKKzMyIDMyIDIwMDAwMDAKKzMyIDMyIDIwMjAwMDAKKzMyIDMyIDIwNDAwMDAKKzMyIDMyIDIwNjAwMDAKKzMyIDMyIDIwODAwMDAKKzMyIDMyIDIxMDAwMDAKKzMyIDMyIDIxMjAwMDAKKzMyIDMyIDIxNDAwMDAKKzMyIDMyIDIxNjAwMDAKKzMyIDMyIDIxODAwMDAKKzMyIDMyIDIyMDAwMDAKKzMyIDMyIDIyMjAwMDAKKzMyIDMyIDIyNDAwMDAKKzMyIDMyIDIyNjAwMDAKKzMyIDMyIDIyODAwMDAKKzMyIDMyIDIzMDAwMDAKKzMyIDMyIDIzMjAwMDAKKzMyIDMyIDIzNDAwMDAKKzMyIDMyIDIzNjAwMDAKKzMyIDMyIDIzODAwMDAKKzMyIDMyIDI0MDAwMDAKKzMyIDMyIDI0MjAwMDAKKzMyIDMyIDI0NDAwMDAKKzMyIDMyIDI0NjAwMDAKKzMyIDMyIDI0ODAwMDAKKzMyIDMyIDI1MDAwMDAKKzMyIDMyIDI1MjAwMDAKKzMyIDMyIDI1NDAwMDAKKzMyIDMyIDI1NjAwMDAKKzMyIDMyIDI1ODAwMDAKKzMyIDMyIDI2MDAwMDAKKzMyIDMyIDI2MjAwMDAKKzMyIDMyIDI2NDAwMDAKKzMyIDMyIDI2NjAwMDAKKzMyIDMyIDI2ODAwMDAKKzMyIDMyIDI3MDAwMDAKKzMyIDMyIDI3MjAwMDAKKzMyIDMyIDI3NDAwMDAKKzMyIDMyIDI3NjAwMDAKKzMyIDMyIDI3ODAwMDAKKzMyIDMyIDI4MDAwMDAKKzMyIDMyIDI4MjAwMDAKKzMyIDMyIDI4NDAwMDAKKzMyIDMyIDI4NjAwMDAKKzMyIDMyIDI4ODAwMDAKKzMyIDMyIDI5MDAwMDAKKzMyIDMyIDI5MjAwMDAKKzMyIDMyIDI5NDAwMDAKKzMyIDMyIDI5NjAwMDAKKzMyIDMyIDI5ODAwMDAKKzMyIDMyIDMwMDAwMDAKKzMyIDMyIDMwMjAwMDAKKzMyIDMyIDMwNDAwMDAKKzMyIDMyIDMwNjAwMDAKKzMyIDMyIDMwODAwMDAKKzMyIDMyIDMxMDAwMDAKKzMyIDMyIDMxMjAwMDAKKzMyIDMyIDMxNDAwMDAKKzMyIDMyIDMxNjAwMDAKKzMyIDMyIDMxODAwMDAKKzMyIDMyIDMyMDAwMDAKKzMyIDMyIDMyMjAwMDAKKzMyIDMyIDMyNDAwMDAKKzMyIDMyIDMyNjAwMDAKKzMyIDMyIDMyODAwMDAKKzMyIDMyIDMzMDAwMDAKKzMyIDMyIDMzMjAwMDAKKzMyIDMyIDMzNDAwMDAKKzMyIDMyIDMzNjAwMDAKKzMyIDMyIDMzODAwMDAKKzMyIDMyIDM0MDAwMDAKKzMyIDMyIDM0MjAwMDAKKzMyIDMyIDM0NDAwMDAKKzMyIDMyIDM0NjAwMDAKKzMyIDMyIDM0ODAwMDAKKzMyIDMyIDM1MDAwMDAKKzMyIDMyIDM1MjAwMDAKKzMyIDMyIDM1NDAwMDAKKzMyIDMyIDM1NjAwMDAKKzMyIDMyIDM1ODAwMDAKKzMyIDMyIDM2MDAwMDAKKzMyIDMyIDM2MjAwMDAKKzMyIDMyIDM2NDAwMDAKKzMyIDMyIDM2NjAwMDAKKzMyIDMyIDM2ODAwMDAKKzMyIDMyIDM3MDAwMDAKKzMyIDMyIDM3MjAwMDAKKzMyIDMyIDM3NDAwMDAKKzMyIDMyIDM3NjAwMDAKKzMyIDMyIDM3ODAwMDAKKzMyIDMyIDM4MDAwMDAKKzMyIDMyIDM4MjAwMDAKKzMyIDMyIDM4NDAwMDAKKzMyIDMyIDM4NjAwMDAKKzMyIDMyIDM4ODAwMDAKKzMyIDMyIDM5MDAwMDAKKzMyIDMyIDM5MjAwMDAKKzMyIDMyIDM5NDAwMDAKKzMyIDMyIDM5NjAwMDAKKzMyIDMyIDM5ODAwMDAKKzMyIDMyIDQwMDAwMDAKKzMyIDMyIDQwMjAwMDAKKzMyIDMyIDQwNDAwMDAKKzMyIDMyIDQwNjAwMDAKKzMyIDMyIDQwODAwMDAKKzMyIDMyIDQxMDAwMDAKKzMyIDMyIDQxMjAwMDAKKzMyIDMyIDQxNDAwMDAKKzMyIDMyIDQxNjAwMDAKKzMyIDMyIDQxODAwMDAKKzMyIDMyIDQyMDAwMDAKKzMyIDMyIDQyMjAwMDAKKzMyIDMyIDQyNDAwMDAKKzMyIDMyIDQyNjAwMDAKKzMyIDMyIDQyODAwMDAKKzMyIDMyIDQzMDAwMDAKKzMyIDMyIDQzMjAwMDAKKzMyIDMyIDQzNDAwMDAKKzMyIDMyIDQzNjAwMDAKKzMyIDMyIDQzODAwMDAKKzMyIDMyIDQ0MDAwMDAKKzMyIDMyIDQ0MjAwMDAKKzMyIDMyIDQ0NDAwMDAKKzMyIDMyIDQ0NjAwMDAKKzMyIDMyIDQ0ODAwMDAKKzMyIDMyIDQ1MDAwMDAKKzMyIDMyIDQ1MjAwMDAKKzMyIDMyIDQ1NDAwMDAKKzMyIDMyIDQ1NjAwMDAKKzMyIDMyIDQ1ODAwMDAKKzMyIDMyIDQ2MDAwMDAKKzMyIDMyIDQ2MjAwMDAKKzMyIDMyIDQ2NDAwMDAKKzMyIDMyIDQ2NjAwMDAKKzMyIDMyIDQ2ODAwMDAKKzMyIDMyIDQ3MDAwMDAKKzMyIDMyIDQ3MjAwMDAKKzMyIDMyIDQ3NDAwMDAKKzMyIDMyIDQ3NjAwMDAKKzMyIDMyIDQ3ODAwMDAKKzMyIDMyIDQ4MDAwMDAKKzMyIDMyIDQ4MjAwMDAKKzMyIDMyIDQ4NDAwMDAKKzMyIDMyIDQ4NjAwMDAKKzMyIDMyIDQ4ODAwMDAKKzMyIDMyIDQ5MDAwMDAKKzMyIDMyIDQ5MjAwMDAKKzMyIDMyIDQ5NDAwMDAKKzMyIDMyIDQ5NjAwMDAKKzMyIDMyIDQ5ODAwMDAKKzMyIDMyIDUwMDAwMDAKKzMyIDMyIDUwMjAwMDAKKzMyIDMyIDUwNDAwMDAKKzMyIDMyIDUwNjAwMDAKKzMyIDMyIDUwODAwMDAKKzMyIDMyIDUxMDAwMDAKKzMyIDMyIDUxMjAwMDAKKzMyIDMyIDUxNDAwMDAKKzMyIDMyIDUxNjAwMDAKKzMyIDMyIDUxODAwMDAKKzMyIDMyIDUyMDAwMDAKKzMyIDMyIDUyMjAwMDAKKzMyIDMyIDUyNDAwMDAKKzMyIDMyIDUyNjAwMDAKKzMyIDMyIDUyODAwMDAKKzMyIDMyIDUzMDAwMDAKKzMyIDMyIDUzMjAwMDAKKzMyIDMyIDUzNDAwMDAKKzMyIDMyIDUzNjAwMDAKKzMyIDMyIDUzODAwMDAKKzMyIDMyIDU0MDAwMDAKKzMyIDMyIDU0MjAwMDAKKzMyIDMyIDU0NDAwMDAKKzMyIDMyIDU0NjAwMDAKKzMyIDMyIDU0ODAwMDAKKzMyIDMyIDU1MDAwMDAKKzMyIDMyIDU1MjAwMDAKKzMyIDMyIDU1NDAwMDAKKzMyIDMyIDU1NjAwMDAKKzMyIDMyIDU1ODAwMDAKKzMyIDMyIDU2MDAwMDAKKzMyIDMyIDU2MjAwMDAKKzMyIDMyIDU2NDAwMDAKKzMyIDMyIDU2NjAwMDAKKzMyIDMyIDU2ODAwMDAKKzMyIDMyIDU3MDAwMDAKKzMyIDMyIDU3MjAwMDAKKzMyIDMyIDU3NDAwMDAKKzMyIDMyIDU3NjAwMDAKKzMyIDMyIDU3ODAwMDAKKzMyIDMyIDU4MDAwMDAKKzMyIDMyIDU4MjAwMDAKKzMyIDMyIDU4NDAwMDAKKzMyIDMyIDU4NjAwMDAKKzMyIDMyIDU4ODAwMDAKKzMyIDMyIDU5MDAwMDAKKzMyIDMyIDU5MjAwMDAKKzMyIDMyIDU5NDAwMDAKKzMyIDMyIDU5NjAwMDAKKzMyIDMyIDU5ODAwMDAKKzMyIDMyIDYwMDAwMDAKKzMyIDMyIDYwMjAwMDAKKzMyIDMyIDYwNDAwMDAKKzMyIDMyIDYwNjAwMDAKKzMyIDMyIDYwODAwMDAKKzMyIDMyIDYxMDAwMDAKKzMyIDMyIDYxMjAwMDAKKzMyIDMyIDYxNDAwMDAKKzMyIDMyIDYxNjAwMDAKKzMyIDMyIDYxODAwMDAKKzMyIDMyIDYyMDAwMDAKKzMyIDMyIDYyMjAwMDAKKzMyIDMyIDYyNDAwMDAKKzMyIDMyIDYyNjAwMDAKKzMyIDMyIDYyODAwMDAKKzMyIDMyIDYzMDAwMDAKKzMyIDMyIDYzMjAwMDAKKzMyIDMyIDYzNDAwMDAKKzMyIDMyIDYzNjAwMDAKKzMyIDMyIDYzODAwMDAKKzMyIDMyIDY0MDAwMDAKKzMyIDMyIDY0MjAwMDAKKzMyIDMyIDY0NDAwMDAKKzMyIDMyIDY0NjAwMDAKKzMyIDMyIDY0ODAwMDAKKzMyIDMyIDY1MDAwMDAKKzMyIDMyIDY1MjAwMDAKKzMyIDMyIDY1NDAwMDAKKzMyIDMyIDY1NjAwMDAKKzMyIDMyIDY1ODAwMDAKKzMyIDMyIDY2MDAwMDAKKzMyIDMyIDY2MjAwMDAKKzMyIDMyIDY2NDAwMDAKKzMyIDMyIDY2NjAwMDAKKzMyIDMyIDY2ODAwMDAKKzMyIDMyIDY3MDAwMDAKKzMyIDMyIDY3MjAwMDAKKzMyIDMyIDY3NDAwMDAKKzMyIDMyIDY3NjAwMDAKKzMyIDMyIDY3ODAwMDAKKzMyIDMyIDY4MDAwMDAKKzMyIDMyIDY4MjAwMDAKKzMyIDMyIDY4NDAwMDAKKzMyIDMyIDY4NjAwMDAKKzMyIDMyIDY4ODAwMDAKKzMyIDMyIDY5MDAwMDAKKzMyIDMyIDY5MjAwMDAKKzMyIDMyIDY5NDAwMDAKKzMyIDMyIDY5NjAwMDAKKzMyIDMyIDY5ODAwMDAKKzMyIDMyIDcwMDAwMDAKKzMyIDMyIDcwMjAwMDAKKzMyIDMyIDcwNDAwMDAKKzMyIDMyIDcwNjAwMDAKKzMyIDMyIDcwODAwMDAKKzMyIDMyIDcxMDAwMDAKKzMyIDMyIDcxMjAwMDAKKzMyIDMyIDcxNDAwMDAKKzMyIDMyIDcxNjAwMDAKKzMyIDMyIDcxODAwMDAKKzMyIDMyIDcyMDAwMDAKKzMyIDMyIDcyMjAwMDAKKzMyIDMyIDcyNDAwMDAKKzMyIDMyIDcyNjAwMDAKKzMyIDMyIDcyODAwMDAKKzMyIDMyIDczMDAwMDAKKzMyIDMyIDczMjAwMDAKKzMyIDMyIDczNDAwMDAKKzMyIDMyIDczNjAwMDAKKzMyIDMyIDczODAwMDAKKzMyIDMyIDc0MDAwMDAKKzMyIDMyIDc0MjAwMDAKKzMyIDMyIDc0NDAwMDAKKzMyIDMyIDc0NjAwMDAKKzMyIDMyIDc0ODAwMDAKKzMyIDMyIDc1MDAwMDAKKzMyIDMyIDc1MjAwMDAKKzMyIDMyIDc1NDAwMDAKKzMyIDMyIDc1NjAwMDAKKzMyIDMyIDc1ODAwMDAKKzMyIDMyIDc2MDAwMDAKKzMyIDMyIDc2MjAwMDAKKzMyIDMyIDc2NDAwMDAKKzMyIDMyIDc2NjAwMDAKKzMyIDMyIDc2ODAwMDAKKzMyIDMyIDc3MDAwMDAKKzMyIDMyIDc3MjAwMDAKKzMyIDMyIDc3NDAwMDAKKzMyIDMyIDc3NjAwMDAKKzMyIDMyIDc3ODAwMDAKKzMyIDMyIDc4MDAwMDAKKzMyIDMyIDc4MjAwMDAKKzMyIDMyIDc4NDAwMDAKKzMyIDMyIDc4NjAwMDAKKzMyIDMyIDc4ODAwMDAKKzMyIDMyIDc5MDAwMDAKKzMyIDMyIDc5MjAwMDAKKzMyIDMyIDc5NDAwMDAKKzMyIDMyIDc5NjAwMDAKKzMyIDMyIDc5ODAwMDAKKzMyIDMyIDgwMDAwMDAKKzMyIDMyIDgwMjAwMDAKKzMyIDMyIDgwNDAwMDAKKzMyIDMyIDgwNjAwMDAKKzMyIDMyIDgwODAwMDAKKzMyIDMyIDgxMDAwMDAKKzMyIDMyIDgxMjAwMDAKKzMyIDMyIDgxNDAwMDAKKzMyIDMyIDgxNjAwMDAKKzMyIDMyIDgxODAwMDAKKzMyIDMyIDgyMDAwMDAKKzMyIDMyIDgyMjAwMDAKKzMyIDMyIDgyNDAwMDAKKzMyIDMyIDgyNjAwMDAKKzMyIDMyIDgyODAwMDAKKzMyIDMyIDgzMDAwMDAKKzMyIDMyIDgzMjAwMDAKKzMyIDMyIDgzNDAwMDAKKzMyIDMyIDgzNjAwMDAKKzMyIDMyIDgzODAwMDAKKzMyIDMyIDg0MDAwMDAKKzMyIDMyIDg0MjAwMDAKKzMyIDMyIDg0NDAwMDAKKzMyIDMyIDg0NjAwMDAKKzMyIDMyIDg0ODAwMDAKKzMyIDMyIDg1MDAwMDAKKzMyIDMyIDg1MjAwMDAKKzMyIDMyIDg1NDAwMDAKKzMyIDMyIDg1NjAwMDAKKzMyIDMyIDg1ODAwMDAKKzMyIDMyIDg2MDAwMDAKKzMyIDMyIDg2MjAwMDAKKzMyIDMyIDg2NDAwMDAKKzMyIDMyIDg2NjAwMDAKKzMyIDMyIDg2ODAwMDAKKzMyIDMyIDg3MDAwMDAKKzMyIDMyIDg3MjAwMDAKKzMyIDMyIDg3NDAwMDAKKzMyIDMyIDg3NjAwMDAKKzMyIDMyIDg3ODAwMDAKKzMyIDMyIDg4MDAwMDAKKzMyIDMyIDg4MjAwMDAKKzMyIDMyIDg4NDAwMDAKKzMyIDMyIDg4NjAwMDAKKzMyIDMyIDg4ODAwMDAKKzMyIDMyIDg5MDAwMDAKKzMyIDMyIDg5MjAwMDAKKzMyIDMyIDg5NDAwMDAKKzMyIDMyIDg5NjAwMDAKKzMyIDMyIDg5ODAwMDAKKzMyIDMyIDkwMDAwMDAKKzMyIDMyIDkwMjAwMDAKKzMyIDMyIDkwNDAwMDAKKzMyIDMyIDkwNjAwMDAKKzMyIDMyIDkwODAwMDAKKzMyIDMyIDkxMDAwMDAKKzMyIDMyIDkxMjAwMDAKKzMyIDMyIDkxNDAwMDAKKzMyIDMyIDkxNjAwMDAKKzMyIDMyIDkxODAwMDAKKzMyIDMyIDkyMDAwMDAKKzMyIDMyIDkyMjAwMDAKKzMyIDMyIDkyNDAwMDAKKzMyIDMyIDkyNjAwMDAKKzMyIDMyIDkyODAwMDAKKzMyIDMyIDkzMDAwMDAKKzMyIDMyIDkzMjAwMDAKKzMyIDMyIDkzNDAwMDAKKzMyIDMyIDkzNjAwMDAKKzMyIDMyIDkzODAwMDAKKzMyIDMyIDk0MDAwMDAKKzMyIDMyIDk0MjAwMDAKKzMyIDMyIDk0NDAwMDAKKzMyIDMyIDk0NjAwMDAKKzMyIDMyIDk0ODAwMDAKKzMyIDMyIDk1MDAwMDAKKzMyIDMyIDk1MjAwMDAKKzMyIDMyIDk1NDAwMDAKKzMyIDMyIDk1NjAwMDAKKzMyIDMyIDk1ODAwMDAKKzMyIDMyIDk2MDAwMDAKKzMyIDMyIDk2MjAwMDAKKzMyIDMyIDk2NDAwMDAKKzMyIDMyIDk2NjAwMDAKKzMyIDMyIDk2ODAwMDAKKzMyIDMyIDk3MDAwMDAKKzMyIDMyIDk3MjAwMDAKKzMyIDMyIDk3NDAwMDAKKzMyIDMyIDk3NjAwMDAKKzMyIDMyIDk3ODAwMDAKKzMyIDMyIDk4MDAwMDAKKzMyIDMyIDk4MjAwMDAKKzMyIDMyIDk4NDAwMDAKKzMyIDMyIDk4NjAwMDAKKzMyIDMyIDk4ODAwMDAKKzMyIDMyIDk5MDAwMDAKKzMyIDMyIDk5MjAwMDAKKzMyIDMyIDk5NDAwMDAKKzMyIDMyIDk5NjAwMDAKKzMyIDMyIDk5ODAwMDAKKzMyIDMyIDEwMDAwMDAwCiszMiAzMiAxMDAyMDAwMAorMzIgMzIgMTAwNDAwMDAKKzMyIDMyIDEwMDYwMDAwCiszMiAzMiAxMDA4MDAwMAorMzIgMzIgMTAxMDAwMDAKKzMyIDMyIDEwMTIwMDAwCiszMiAzMiAxMDE0MDAwMAorMzIgMzIgMTAxNjAwMDAKKzMyIDMyIDEwMTgwMDAwCiszMiAzMiAxMDIwMDAwMAorMzIgMzIgMTAyMjAwMDAKKzMyIDMyIDEwMjQwMDAwCiszMiAzMiAxMDI2MDAwMAorMzIgMzIgMTAyODAwMDAKKzMyIDMyIDEwMzAwMDAwCiszMiAzMiAxMDMyMDAwMAorMzIgMzIgMTAzNDAwMDAKKzMyIDMyIDEwMzYwMDAwCiszMiAzMiAxMDM4MDAwMAorMzIgMzIgMTA0MDAwMDAKKzMyIDMyIDEwNDIwMDAwCiszMiAzMiAxMDQ0MDAwMAorMzIgMzIgMTA0NjAwMDAKKzMyIDMyIDEwNDgwMDAwCiszMiAzMiAxMDUwMDAwMAorMzIgMzIgMTA1MjAwMDAKKzMyIDMyIDEwNTQwMDAwCiszMiAzMiAxMDU2MDAwMAorMzIgMzIgMTA1ODAwMDAKKzMyIDMyIDEwNjAwMDAwCiszMiAzMiAxMDYyMDAwMAorMzIgMzIgMTA2NDAwMDAKKzMyIDMyIDEwNjYwMDAwCiszMiAzMiAxMDY4MDAwMAorMzIgMzIgMTA3MDAwMDAKKzMyIDMyIDEwNzIwMDAwCiszMiAzMiAxMDc0MDAwMAorMzIgMzIgMTA3NjAwMDAKKzMyIDMyIDEwNzgwMDAwCiszMiAzMiAxMDgwMDAwMAorMzIgMzIgMTA4MjAwMDAKKzMyIDMyIDEwODQwMDAwCiszMiAzMiAxMDg2MDAwMAorMzIgMzIgMTA4ODAwMDAKKzMyIDMyIDEwOTAwMDAwCiszMiAzMiAxMDkyMDAwMAorMzIgMzIgMTA5NDAwMDAKKzMyIDMyIDEwOTYwMDAwCiszMiAzMiAxMDk4MDAwMAorMzIgMzIgMTEwMDAwMDAKKzMyIDMyIDExMDIwMDAwCiszMiAzMiAxMTA0MDAwMAorMzIgMzIgMTEwNjAwMDAKKzMyIDMyIDExMDgwMDAwCiszMiAzMiAxMTEwMDAwMAorMzIgMzIgMTExMjAwMDAKKzMyIDMyIDExMTQwMDAwCiszMiAzMiAxMTE2MDAwMAorMzIgMzIgMTExODAwMDAKKzMyIDMyIDExMjAwMDAwCiszMiAzMiAxMTIyMDAwMAorMzIgMzIgMTEyNDAwMDAKKzMyIDMyIDExMjYwMDAwCiszMiAzMiAxMTI4MDAwMAorMzIgMzIgMTEzMDAwMDAKKzMyIDMyIDExMzIwMDAwCiszMiAzMiAxMTM0MDAwMAorMzIgMzIgMTEzNjAwMDAKKzMyIDMyIDExMzgwMDAwCiszMiAzMiAxMTQwMDAwMAorMzIgMzIgMTE0MjAwMDAKKzMyIDMyIDExNDQwMDAwCiszMiAzMiAxMTQ2MDAwMAorMzIgMzIgMTE0ODAwMDAKKzMyIDMyIDExNTAwMDAwCiszMiAzMiAxMTUyMDAwMAorMzIgMzIgMTE1NDAwMDAKKzMyIDMyIDExNTYwMDAwCiszMiAzMiAxMTU4MDAwMAorMzIgMzIgMTE2MDAwMDAKKzMyIDMyIDExNjIwMDAwCiszMiAzMiAxMTY0MDAwMAorMzIgMzIgMTE2NjAwMDAKKzMyIDMyIDExNjgwMDAwCiszMiAzMiAxMTcwMDAwMAorMzIgMzIgMTE3MjAwMDAKKzMyIDMyIDExNzQwMDAwCiszMiAzMiAxMTc2MDAwMAorMzIgMzIgMTE3ODAwMDAKKzMyIDMyIDExODAwMDAwCiszMiAzMiAxMTgyMDAwMAorMzIgMzIgMTE4NDAwMDAKKzMyIDMyIDExODYwMDAwCiszMiAzMiAxMTg4MDAwMAorMzIgMzIgMTE5MDAwMDAKKzMyIDMyIDExOTIwMDAwCiszMiAzMiAxMTk0MDAwMAorMzIgMzIgMTE5NjAwMDAKKzMyIDMyIDExOTgwMDAwCiszMiAzMiAxMjAwMDAwMAorMzIgMzIgMTIwMjAwMDAKKzMyIDMyIDEyMDQwMDAwCiszMiAzMiAxMjA2MDAwMAorMzIgMzIgMTIwODAwMDAKKzMyIDMyIDEyMTAwMDAwCiszMiAzMiAxMjEyMDAwMAorMzIgMzIgMTIxNDAwMDAKKzMyIDMyIDEyMTYwMDAwCiszMiAzMiAxMjE4MDAwMAorMzIgMzIgMTIyMDAwMDAKKzMyIDMyIDEyMjIwMDAwCiszMiAzMiAxMjI0MDAwMAorMzIgMzIgMTIyNjAwMDAKKzMyIDMyIDEyMjgwMDAwCiszMiAzMiAxMjMwMDAwMAorMzIgMzIgMTIzMjAwMDAKKzMyIDMyIDEyMzQwMDAwCiszMiAzMiAxMjM2MDAwMAorMzIgMzIgMTIzODAwMDAKKzMyIDMyIDEyNDAwMDAwCiszMiAzMiAxMjQyMDAwMAorMzIgMzIgMTI0NDAwMDAKKzMyIDMyIDEyNDYwMDAwCiszMiAzMiAxMjQ4MDAwMAorMzIgMzIgMTI1MDAwMDAKKzMyIDMyIDEyNTIwMDAwCiszMiAzMiAxMjU0MDAwMAorMzIgMzIgMTI1NjAwMDAKKzMyIDMyIDEyNTgwMDAwCiszMiAzMiAxMjYwMDAwMAorMzIgMzIgMTI2MjAwMDAKKzMyIDMyIDEyNjQwMDAwCiszMiAzMiAxMjY2MDAwMAorMzIgMzIgMTI2ODAwMDAKKzMyIDMyIDEyNzAwMDAwCiszMiAzMiAxMjcyMDAwMAorMzIgMzIgMTI3NDAwMDAKKzMyIDMyIDEyNzYwMDAwCiszMiAzMiAxMjc4MDAwMAorMzIgMzIgMTI4MDAwMDAKKzMyIDMyIDEyODIwMDAwCiszMiAzMiAxMjg0MDAwMAorMzIgMzIgMTI4NjAwMDAKKzMyIDMyIDEyODgwMDAwCiszMiAzMiAxMjkwMDAwMAorMzIgMzIgMTI5MjAwMDAKKzMyIDMyIDEyOTQwMDAwCiszMiAzMiAxMjk2MDAwMAorMzIgMzIgMTI5ODAwMDAKKzMyIDMyIDEzMDAwMDAwCiszMiAzMiAxMzAyMDAwMAorMzIgMzIgMTMwNDAwMDAKKzMyIDMyIDEzMDYwMDAwCiszMiAzMiAxMzA4MDAwMAorMzIgMzIgMTMxMDAwMDAKKzMyIDMyIDEzMTIwMDAwCiszMiAzMiAxMzE0MDAwMAorMzIgMzIgMTMxNjAwMDAKKzMyIDMyIDEzMTgwMDAwCiszMiAzMiAxMzIwMDAwMAorMzIgMzIgMTMyMjAwMDAKKzMyIDMyIDEzMjQwMDAwCiszMiAzMiAxMzI2MDAwMAorMzIgMzIgMTMyODAwMDAKKzMyIDMyIDEzMzAwMDAwCiszMiAzMiAxMzMyMDAwMAorMzIgMzIgMTMzNDAwMDAKKzMyIDMyIDEzMzYwMDAwCiszMiAzMiAxMzM4MDAwMAorMzIgMzIgMTM0MDAwMDAKKzMyIDMyIDEzNDIwMDAwCiszMiAzMiAxMzQ0MDAwMAorMzIgMzIgMTM0NjAwMDAKKzMyIDMyIDEzNDgwMDAwCiszMiAzMiAxMzUwMDAwMAorMzIgMzIgMTM1MjAwMDAKKzMyIDMyIDEzNTQwMDAwCiszMiAzMiAxMzU2MDAwMAorMzIgMzIgMTM1ODAwMDAKKzMyIDMyIDEzNjAwMDAwCiszMiAzMiAxMzYyMDAwMAorMzIgMzIgMTM2NDAwMDAKKzMyIDMyIDEzNjYwMDAwCiszMiAzMiAxMzY4MDAwMAorMzIgMzIgMTM3MDAwMDAKKzMyIDMyIDEzNzIwMDAwCiszMiAzMiAxMzc0MDAwMAorMzIgMzIgMTM3NjAwMDAKKzMyIDMyIDEzNzgwMDAwCiszMiAzMiAxMzgwMDAwMAorMzIgMzIgMTM4MjAwMDAKKzMyIDMyIDEzODQwMDAwCiszMiAzMiAxMzg2MDAwMAorMzIgMzIgMTM4ODAwMDAKKzMyIDMyIDEzOTAwMDAwCiszMiAzMiAxMzkyMDAwMAorMzIgMzIgMTM5NDAwMDAKKzMyIDMyIDEzOTYwMDAwCiszMiAzMiAxMzk4MDAwMAorMzIgMzIgMTQwMDAwMDAKKzMyIDMyIDE0MDIwMDAwCiszMiAzMiAxNDA0MDAwMAorMzIgMzIgMTQwNjAwMDAKKzMyIDMyIDE0MDgwMDAwCiszMiAzMiAxNDEwMDAwMAorMzIgMzIgMTQxMjAwMDAKKzMyIDMyIDE0MTQwMDAwCiszMiAzMiAxNDE2MDAwMAorMzIgMzIgMTQxODAwMDAKKzMyIDMyIDE0MjAwMDAwCiszMiAzMiAxNDIyMDAwMAorMzIgMzIgMTQyNDAwMDAKKzMyIDMyIDE0MjYwMDAwCiszMiAzMiAxNDI4MDAwMAorMzIgMzIgMTQzMDAwMDAKKzMyIDMyIDE0MzIwMDAwCiszMiAzMiAxNDM0MDAwMAorMzIgMzIgMTQzNjAwMDAKKzMyIDMyIDE0MzgwMDAwCiszMiAzMiAxNDQwMDAwMAorMzIgMzIgMTQ0MjAwMDAKKzMyIDMyIDE0NDQwMDAwCiszMiAzMiAxNDQ2MDAwMAorMzIgMzIgMTQ0ODAwMDAKKzMyIDMyIDE0NTAwMDAwCiszMiAzMiAxNDUyMDAwMAorMzIgMzIgMTQ1NDAwMDAKKzMyIDMyIDE0NTYwMDAwCiszMiAzMiAxNDU4MDAwMAorMzIgMzIgMTQ2MDAwMDAKKzMyIDMyIDE0NjIwMDAwCiszMiAzMiAxNDY0MDAwMAorMzIgMzIgMTQ2NjAwMDAKKzMyIDMyIDE0NjgwMDAwCiszMiAzMiAxNDcwMDAwMAorMzIgMzIgMTQ3MjAwMDAKKzMyIDMyIDE0NzQwMDAwCiszMiAzMiAxNDc2MDAwMAorMzIgMzIgMTQ3ODAwMDAKKzMyIDMyIDE0ODAwMDAwCiszMiAzMiAxNDgyMDAwMAorMzIgMzIgMTQ4NDAwMDAKKzMyIDMyIDE0ODYwMDAwCiszMiAzMiAxNDg4MDAwMAorMzIgMzIgMTQ5MDAwMDAKKzMyIDMyIDE0OTIwMDAwCiszMiAzMiAxNDk0MDAwMAorMzIgMzIgMTQ5NjAwMDAKKzMyIDMyIDE0OTgwMDAwCiszMiAzMiAxNTAwMDAwMAorMzIgMzIgMTUwMjAwMDAKKzMyIDMyIDE1MDQwMDAwCiszMiAzMiAxNTA2MDAwMAorMzIgMzIgMTUwODAwMDAKKzMyIDMyIDE1MTAwMDAwCiszMiAzMiAxNTEyMDAwMAorMzIgMzIgMTUxNDAwMDAKKzMyIDMyIDE1MTYwMDAwCiszMiAzMiAxNTE4MDAwMAorMzIgMzIgMTUyMDAwMDAKKzMyIDMyIDE1MjIwMDAwCiszMiAzMiAxNTI0MDAwMAorMzIgMzIgMTUyNjAwMDAKKzMyIDMyIDE1MjgwMDAwCiszMiAzMiAxNTMwMDAwMAorMzIgMzIgMTUzMjAwMDAKKzMyIDMyIDE1MzQwMDAwCiszMiAzMiAxNTM2MDAwMAorMzIgMzIgMTUzODAwMDAKKzMyIDMyIDE1NDAwMDAwCiszMiAzMiAxNTQyMDAwMAorMzIgMzIgMTU0NDAwMDAKKzMyIDMyIDE1NDYwMDAwCiszMiAzMiAxNTQ4MDAwMAorMzIgMzIgMTU1MDAwMDAKKzMyIDMyIDE1NTIwMDAwCiszMiAzMiAxNTU0MDAwMAorMzIgMzIgMTU1NjAwMDAKKzMyIDMyIDE1NTgwMDAwCiszMiAzMiAxNTYwMDAwMAorMzIgMzIgMTU2MjAwMDAKKzMyIDMyIDE1NjQwMDAwCiszMiAzMiAxNTY2MDAwMAorMzIgMzIgMTU2ODAwMDAKKzMyIDMyIDE1NzAwMDAwCiszMiAzMiAxNTcyMDAwMAorMzIgMzIgMTU3NDAwMDAKKzMyIDMyIDE1NzYwMDAwCiszMiAzMiAxNTc4MDAwMAorMzIgMzIgMTU4MDAwMDAKKzMyIDMyIDE1ODIwMDAwCiszMiAzMiAxNTg0MDAwMAorMzIgMzIgMTU4NjAwMDAKKzMyIDMyIDE1ODgwMDAwCiszMiAzMiAxNTkwMDAwMAorMzIgMzIgMTU5MjAwMDAKKzMyIDMyIDE1OTQwMDAwCiszMiAzMiAxNTk2MDAwMAorMzIgMzIgMTU5ODAwMDAKKzMyIDMyIDE2MDAwMDAwCiszMiAzMiAxNjAyMDAwMAorMzIgMzIgMTYwNDAwMDAKKzMyIDMyIDE2MDYwMDAwCiszMiAzMiAxNjA4MDAwMAorMzIgMzIgMTYxMDAwMDAKKzMyIDMyIDE2MTIwMDAwCiszMiAzMiAxNjE0MDAwMAorMzIgMzIgMTYxNjAwMDAKKzMyIDMyIDE2MTgwMDAwCiszMiAzMiAxNjIwMDAwMAorMzIgMzIgMTYyMjAwMDAKKzMyIDMyIDE2MjQwMDAwCiszMiAzMiAxNjI2MDAwMAorMzIgMzIgMTYyODAwMDAKKzMyIDMyIDE2MzAwMDAwCiszMiAzMiAxNjMyMDAwMAorMzIgMzIgMTYzNDAwMDAKKzMyIDMyIDE2MzYwMDAwCiszMiAzMiAxNjM4MDAwMAorMzIgMzIgMTY0MDAwMDAKKzMyIDMyIDE2NDIwMDAwCiszMiAzMiAxNjQ0MDAwMAorMzIgMzIgMTY0NjAwMDAKKzMyIDMyIDE2NDgwMDAwCiszMiAzMiAxNjUwMDAwMAorMzIgMzIgMTY1MjAwMDAKKzMyIDMyIDE2NTQwMDAwCiszMiAzMiAxNjU2MDAwMAorMzIgMzIgMTY1ODAwMDAKKzMyIDMyIDE2NjAwMDAwCiszMiAzMiAxNjYyMDAwMAorMzIgMzIgMTY2NDAwMDAKZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9BbmRyb2lkLmJwIGIvbWVtdHJhY2svMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY2ZTE2ZAotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSU1lbXRyYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvTWVtdHJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSUh3TWVtdHJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9Cbkh3TWVtdHJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9CcEh3TWVtdHJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9Cc01lbXRyYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9BbmRyb2lkLm1rIGIvbWVtdHJhY2svMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU4M2IwYQotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjMyIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrUmVjb3JkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrUmVjb3JkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzLk1lbXRyYWNrUmVjb3JkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1N0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTWVtdHJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvSU1lbXRyYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6SU1lbXRyYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrUmVjb3JkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrUmVjb3JkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzLk1lbXRyYWNrUmVjb3JkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1N0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTWVtdHJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvSU1lbXRyYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6SU1lbXRyYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmhhbCBiL21lbXRyYWNrLzEuMC9JTWVtdHJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMjkwMzIKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDsKKworLyoqCisgKiBUaGUgTWVtb3J5IFRyYWNrZXIgSEFMIGlzIGRlc2lnbmVkIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dAorICogZGV2aWNlLXNwZWNpZmljIG1lbW9yeSB1c2FnZS4KKyAqIFRoZSBwcmltYXJ5IGdvYWwgaXMgdG8gYmUgYWJsZSB0byB0cmFjayBtZW1vcnkgdGhhdCBpcyBub3QKKyAqIHRyYWNrYWJsZSBpbiBhbnkgb3RoZXIgd2F5LCBmb3IgZXhhbXBsZSB0ZXh0dXJlIG1lbW9yeSB0aGF0IGlzIGFsbG9jYXRlZCBieQorICogYSBwcm9jZXNzLCBidXQgbm90IG1hcHBlZCBpbiB0byB0aGF0IHByb2Nlc3MncyBhZGRyZXNzIHNwYWNlLgorICogQSBzZWNvbmRhcnkgZ29hbCBpcyB0byBiZSBhYmxlIHRvIGNhdGVnb3JpemUgbWVtb3J5IHVzZWQgYnkgYSBwcm9jZXNzIGludG8KKyAqIEdMLCBncmFwaGljcywgZXRjLiBBbGwgbWVtb3J5IHNpemVzIG11c3QgYmUgaW4gcmVhbCBtZW1vcnkgdXNhZ2UsCisgKiBhY2NvdW50aW5nIGZvciBzdHJpZGUsIGJpdCBkZXB0aCwgcm91bmRpbmcgdXAgdG8gcGFnZSBzaXplLCBldGMuCisgKgorICogQ29uc3RydWN0b3IgZm9yIHRoZSBpbnRlcmZhY2Ugc2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSBtZW10cmFjayBtYW5hZ2VtZW50CisgKiBzZXR1cCBhY3Rpb25zIGFuZCBpcyBjYWxsZWQgb25jZSBiZWZvcmUgYW55IGNhbGxzIHRvIGdldE1lbW9yeSgpLgorICovCitpbnRlcmZhY2UgSU1lbXRyYWNrIHsKKyAgICAvKioKKyAgICAgKiBnZXRNZW1vcnkoKSBwb3B1bGF0ZXMgTWVtdHJhY2tSZWNvcmQgdmVjdG9yIHdpdGggdGhlIHNpemVzIG9mIG1lbW9yeQorICAgICAqIHBsdXMgYXNzb2NpYXRlZCBmbGFncyBmb3IgdGhhdCBtZW1vcnkuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgdGhyZWFkLXNhZmUsIGl0IG1heSBnZXQgY2FsbGVkIGZyb20gbXVsdGlwbGUKKyAgICAgKiB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUuCisgICAgICoKKyAgICAgKiBBIHByb2Nlc3MgY29sbGVjdGluZyBtZW1vcnkgc3RhdGlzdGljcyB3aWxsIGNhbGwgZ2V0TWVtb3J5IGZvciBlYWNoCisgICAgICogY29tYmluYXRpb24gb2YgcGlkIGFuZCBtZW1vcnkgdHlwZS4gRm9yIGVhY2ggbWVtb3J5IHR5cGUgdGhhdCBpdAorICAgICAqIHJlY29nbml6ZXMsIHRoZSBIQUwgbXVzdCBmaWxsIG91dCBhbiBhcnJheSBvZiBtZW10cmFja19yZWNvcmQKKyAgICAgKiBzdHJ1Y3R1cmVzIGJyZWFraW5nIGRvd24gdGhlIHN0YXRpc3RpY3Mgb2YgdGhhdCBtZW1vcnkgdHlwZSBhcyBtdWNoIGFzCisgICAgICogcG9zc2libGUuIEZvciBleGFtcGxlLAorICAgICAqIGdldE1lbW9yeSg8cGlkPiwgR0wpIG1pZ2h0IHJldHVybjoKKyAgICAgKiB7IHsgNDA5NiwgIEFDQ09VTlRFRCB8IFBSSVZBVEUgfCBTWVNURU0gfSwKKyAgICAgKiAgIHsgNDA5NjAsIFVOQUNDT1VOVEVEIHwgUFJJVkFURSB8IFNZU1RFTSB9LAorICAgICAqICAgeyA4MTkyLCAgQUNDT1VOVEVEIHwgUFJJVkFURSB8IERFRElDQVRFRCB9LAorICAgICAqICAgeyA4MTkyLCAgVU5BQ0NPVU5URUQgfCBQUklWQVRFIHwgREVESUNBVEVEIH0gfQorICAgICAqIElmIHRoZSBIQUwgY2Fubm90IGRpZmZlcmVudGlhdGUgYmV0d2VlbiBTWVNURU0gYW5kIERFRElDQVRFRCBtZW1vcnksIGl0CisgICAgICogY291bGQgcmV0dXJuOgorICAgICAqIHsgeyAxMjI4OCwgIEFDQ09VTlRFRCB8IFBSSVZBVEUgfSwKKyAgICAgKiAgIHsgNDkxNTIsICBVTkFDQ09VTlRFRCB8IFBSSVZBVEUgfSB9CisgICAgICoKKyAgICAgKiBNZW1vcnkgbXVzdCBub3Qgb3ZlcmxhcCBiZXR3ZWVuIHR5cGVzLiBGb3IgZXhhbXBsZSwgYSBncmFwaGljcyBidWZmZXIKKyAgICAgKiB0aGF0IGhhcyBiZWVuIG1hcHBlZCBpbnRvIHRoZSBHUFUgYXMgYSBzdXJmYWNlIG11c3Qgc2hvdyB1cCB3aGVuCisgICAgICogR1JBUEhJQ1MgaXMgcmVxdWVzdGVkIGFuZCBub3Qgd2hlbiBHTAorICAgICAqIGlzIHJlcXVlc3RlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwaWQgcHJvY2VzcyBmb3Igd2hpY2ggbWVtb3J5IGluZm9ybWF0aW9uIGlzIHJlcXVlc3RlZAorICAgICAqIEBwYXJhbSB0eXBlIG1lbW9yeSB0eXBlIHRoYXQgaW5mb3JtYXRpb24gaXMgYmVpbmcgcmVxdWVzdGVkIGFib3V0CisgICAgICogQHJldHVybiByZWNvcmRzIHZlY3RvciBvZiBNZW10cmFja1JlY29yZCBjb250YWluaW5nIG1lbW9yeSBpbmZvcm1hdGlvbgorICAgICAqIEByZXR1cm4gcmV0dmFsIFNVQ0NFU1Mgb24gc3VjY2VzcywgVFlQRV9OT1RfRk9VTkQgaWYgdGhlIHR5cGUgaXMgbm90CisgICAgICogc3VwcG9ydGVkLgorICAgICAqLworICAgIGdldE1lbW9yeShpbnQzMl90IHBpZCwgTWVtdHJhY2tUeXBlIHR5cGUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKE1lbXRyYWNrU3RhdHVzIHJldHZhbCwgdmVjPE1lbXRyYWNrUmVjb3JkPiByZWNvcmRzKTsKK307CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmQ3ZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDUzIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiTWVtdHJhY2suY3BwIl0sCisKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMCIsCisgICAgXSwKKworfQorCitjY19iaW5hcnkgeworICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UiLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYyJdLAorICAgIHNyY3M6IFsic2VydmljZS5jcHAiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJkbCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBdLAorCit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5jcHAgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNhNjkwNgotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtaW1wbCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvbWVtdHJhY2suaD4KKworI2luY2x1ZGUgIk1lbXRyYWNrLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgbWVtdHJhY2sgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworTWVtdHJhY2s6Ok1lbXRyYWNrKGNvbnN0IG1lbXRyYWNrX21vZHVsZV90ICptb2R1bGUpIDogbU1vZHVsZShtb2R1bGUpIHsKKyAgICBpZiAobU1vZHVsZSkKKyAgICAgICAgbU1vZHVsZS0+aW5pdChtTW9kdWxlKTsKK30KKworTWVtdHJhY2s6On5NZW10cmFjaygpIHsKKyAgICBkZWxldGUobU1vZHVsZSk7Cit9CisKK1JldHVybjx2b2lkPiBNZW10cmFjazo6Z2V0TWVtb3J5KGludDMyX3QgcGlkLCBNZW10cmFja1R5cGUgdHlwZSwKKyAgICAgICAgZ2V0TWVtb3J5X2NiIF9oaWRsX2NiKSAgeworICAgIGhpZGxfdmVjPE1lbXRyYWNrUmVjb3JkPiByZWNvcmRzOworICAgIHNpemVfdCB0ZW1wID0gMDsKKyAgICBzaXplX3QgKnNpemUgPSAmdGVtcDsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmIChtTW9kdWxlLT5nZXRNZW1vcnkgPT0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIF9oaWRsX2NiKE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTLCByZWNvcmRzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgcmV0ID0gbU1vZHVsZS0+Z2V0TWVtb3J5KG1Nb2R1bGUsIHBpZCwgc3RhdGljX2Nhc3Q8bWVtdHJhY2tfdHlwZT4odHlwZSksCisgICAgICAgICAgICBOVUxMLCBzaXplKTsKKyAgICBpZiAocmV0ID09IDApCisgICAgeworICAgICAgICBtZW10cmFja19yZWNvcmQgKmxlZ2FjeV9yZWNvcmRzID0gbmV3IG1lbXRyYWNrX3JlY29yZFsqc2l6ZV07CisgICAgICAgIHJldCA9IG1Nb2R1bGUtPmdldE1lbW9yeShtTW9kdWxlLCBwaWQsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bWVtdHJhY2tfdHlwZT4odHlwZSksIGxlZ2FjeV9yZWNvcmRzLCBzaXplKTsKKyAgICAgICAgaWYgKHJldCA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICByZWNvcmRzLnJlc2l6ZSgqc2l6ZSk7CisgICAgICAgICAgICBmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgKnNpemU7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZWNvcmRzW2ldLnNpemVJbkJ5dGVzID0gbGVnYWN5X3JlY29yZHNbaV0uc2l6ZV9pbl9ieXRlczsKKyAgICAgICAgICAgICAgICByZWNvcmRzW2ldLmZsYWdzID0gbGVnYWN5X3JlY29yZHNbaV0uZmxhZ3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGVsZXRlW10gbGVnYWN5X3JlY29yZHM7CisgICAgfQorICAgIF9oaWRsX2NiKE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTLCByZWNvcmRzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK0lNZW10cmFjayogSElETF9GRVRDSF9JTWVtdHJhY2soY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworICAgIGNvbnN0IG1lbXRyYWNrX21vZHVsZV90KiBtZW10cmFja19tb2R1bGUgPSBudWxscHRyOworICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKE1FTVRSQUNLX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSAoImh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIE1FTVRSQUNLX0hBUkRXQVJFX01PRFVMRV9JRCwgZXJyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKCFod19tb2R1bGUtPm1ldGhvZHMgfHwgIWh3X21vZHVsZS0+bWV0aG9kcy0+b3BlbikgeworICAgICAgICBtZW10cmFja19tb2R1bGUgPSByZWludGVycHJldF9jYXN0PGNvbnN0IG1lbXRyYWNrX21vZHVsZV90Kj4oaHdfbW9kdWxlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlcnIgPSBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4oaHdfbW9kdWxlLCBNRU1UUkFDS19IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPihjb25zdF9jYXN0PG1lbXRyYWNrX21vZHVsZV90Kio+KCZtZW10cmFja19tb2R1bGUpKSk7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG5ldyBNZW10cmFjayhtZW10cmFja19tb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBtZW10cmFjaworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvTWVtdHJhY2suaCBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFkYmE3NgotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9NRU1UUkFDS19WMV8wX01FTVRSQUNLX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9NRU1UUkFDS19WMV8wX01FTVRSQUNLX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBtZW10cmFjayB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6SU1lbXRyYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrUmVjb3JkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IE1lbXRyYWNrIDogcHVibGljIElNZW10cmFjayB7CisgICAgTWVtdHJhY2soY29uc3QgbWVtdHJhY2tfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfk1lbXRyYWNrKCk7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1lbW9yeShpbnQzMl90IHBpZCwgTWVtdHJhY2tUeXBlIHR5cGUsIGdldE1lbW9yeV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgY29uc3QgbWVtdHJhY2tfbW9kdWxlX3QqIG1Nb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElNZW10cmFjayogSElETF9GRVRDSF9JTWVtdHJhY2soY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBtZW10cmFjaworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfTUVNVFJBQ0tfVjFfMF9NRU1UUkFDS19ICmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlLnJjIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTc1YTE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgbWVtdHJhY2staGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3OTc0MwotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9JTWVtdHJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpJTWVtdHJhY2s7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElNZW10cmFjaz4oKTsKK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC90eXBlcy5oYWwgYi9tZW10cmFjay8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4OTMxMmEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOworCisvKioKKyAqIFNNQVBTX0FDQ09VTlRFRC9TTUFQU19VTkFDQ09VTlRFRAorICogRmxhZ3MgdG8gZGlmZmVyZW50aWF0ZSBtZW1vcnkgdGhhdCBjYW4gYWxyZWFkeSBiZSBhY2NvdW50ZWQgZm9yIGluCisgKiAvcHJvYy88cGlkPi9zbWFwcywKKyAqIChTaGFyZWRfQ2xlYW4gKyBTaGFyZWRfRGlydHkgKyBQcml2YXRlX0NsZWFuICsgUHJpdmF0ZV9EaXJ0eSA9IFNpemUpLgorICogSW4gZ2VuZXJhbCwgbWVtb3J5IG1hcHBlZCBpbiB0byBhIHVzZXJzcGFjZSBwcm9jZXNzIGlzIGFjY291bnRlZCB1bmxlc3MKKyAqIGl0IHdhcyBtYXBwZWQgd2l0aCByZW1hcF9wZm5fcmFuZ2UuCisgKiBFeGFjdGx5IG9uZSBvZiB0aGVzZSBtdXN0IGJlIHNldC4KKyAqCisgKiBTSEFSRUQvU0hBUkVEX1BTUy9QUklWQVRFCisgKiBGbGFncyB0byBkaWZmZXJlbnRpYXRlIG1lbW9yeSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIHByb2Nlc3NlcyB2cy4gbWVtb3J5CisgKiB1c2VkIGJ5IGEgc2luZ2xlIHByb2Nlc3MuCisgKiBJZiBTSEFSRURfUFNTIGZsYWdzIGlzIHVzZWQsIHRoZSBtZW1vcnkgbXVzdCBiZSBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2YKKyAqIHByb2Nlc3NlcyBob2xkaW5nIHJlZmVyZW5jZSB0byBpdCAoc2hhcmVkIC8gbnVtX3Byb2Nlc3NlcykuCisgKiBPbmx5IHplcm8gb3Igb25lIG9mIHRoZXNlIG1heSBiZSBzZXQgaW4gYSByZWNvcmQuCisgKiBJZiBub25lIGFyZSBzZXQsIHJlY29yZCBpcyBhc3N1bWVkIHRvIGNvdW50IHNoYXJlZCArIHByaXZhdGUgbWVtb3J5LgorICoKKyAqIFNZU1RFTS9ERURJQ0FURUQKKyAqIEZsYWdzIHRvIGRpZmZlcmVudGlhdGUgbWVtb3J5IHRha2VuIGZyb20gdGhlIGtlcm5lbCdzIGFsbG9jYXRpb24gcG9vbCB2cy4KKyAqIG1lbW9yeSB0aGF0IGlzIGRlZGljYXRlZCB0byBub24ta2VybmVsIGFsbG9jYXRpb25zLCBmb3IgZXhhbXBsZSBhIGNhcnZlb3V0CisgKiBvciBzZXBhcmF0ZSB2aWRlbyBtZW1vcnkuICBPbmx5IHplcm8gb3Igb25lIG9mIHRoZXNlIG1heSBiZSBzZXQgaW4gYSByZWNvcmQuCisgKiBJZiBub25lIGFyZSBzZXQsIHJlY29yZCBpcyBhc3N1bWVkIHRvIGNvdW50IHN5c3RlbSArIGRlZGljYXRlZCBtZW1vcnkuCisgKgorICogTk9OU0VDVVJFL1NFQ1VSRQorICogRmxhZ3MgdG8gZGlmZmVyZW50aWF0ZSBtZW1vcnkgYWNjZXNzaWJsZSBieSB0aGUgQ1BVIGluIG5vbi1zZWN1cmUgbW9kZSB2cy4KKyAqIG1lbW9yeSB0aGF0IGlzIHByb3RlY3RlZC4gIE9ubHkgemVybyBvciBvbmUgb2YgdGhlc2UgbWF5IGJlIHNldCBpbiBhIHJlY29yZC4KKyAqIElmIG5vbmUgYXJlIHNldCwgcmVjb3JkIGlzIGFzc3VtZWQgdG8gY291bnQgc2VjdXJlICsgbm9uc2VjdXJlIG1lbW9yeS4KKyAqLworZW51bSBNZW10cmFja0ZsYWcgOiB1aW50MzJfdCB7CisgICAgU01BUFNfQUNDT1VOVEVEID0gMSA8PCAxLAorICAgIFNNQVBTX1VOQUNDT1VOVEVEID0gMSA8PCAyLAorICAgIFNIQVJFRCA9IDEgPDwgMywKKyAgICBTSEFSRURfUFNTID0gMSA8PCA0LAorICAgIFBSSVZBVEUgPSAxIDw8IDUsCisgICAgU1lTVEVNID0gMSA8PCA2LAorICAgIERFRElDQVRFRCA9IDEgPDwgNywKKyAgICBOT05TRUNVUkUgPSAxIDw8IDgsCisgICAgU0VDVVJFID0gMSA8PCA5LAorfTsKKworLyoqIFRhZ3Mgd2hpY2ggZGVmaW5lIHRoZSB1c2FnZSBvZiB0aGUgbWVtb3J5IGJ1ZmZlcnMuICovCitlbnVtIE1lbXRyYWNrVHlwZSA6IHVpbnQzMl90IHsKKyAgICBPVEhFUiA9IDAsCisgICAgR0wgPSAxLAorICAgIEdSQVBISUNTID0gMiwKKyAgICBNVUxUSU1FRElBID0gMywKKyAgICBDQU1FUkEgPSA0LAorICAgIE5VTV9UWVBFUywKK307CisKK2VudW0gTWVtdHJhY2tTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgTUVNT1JZX1RSQUNLSU5HX05PVF9TVVBQT1JURUQgPSAxLAorICAgIFRZUEVfTk9UX1NVUFBPUlRFRCA9IDIsCit9OworCisvKiBBIHZlY3RvciBvZiBNZW10cmFja1JlY29yZCBpcyByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24gZ2V0TWVtb3J5KCkuCisgKiBFYWNoIHJlY29yZCBjb25zaXN0cyBvZiB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHVzZWQgYnkgdGhlIHByb2Nlc3MgYW5kCisgKiBmbGFncyBpbmRpY2F0ZSB0aGUgYWxsIHRoZSBNZW10cmFja0ZsYWcgdGhhdCBhcmUgdmFsaWQgZm9yIHRoaXMgcmVjb3JkLgorICogc2VlIGdldE1lbW9yeSgpIGNvbW1lbnRzIGZvciBmdXJ0aGVyIGRldGFpbHMuCisgKi8KK3N0cnVjdCBNZW10cmFja1JlY29yZCB7CisgICAgdWludDY0X3Qgc2l6ZUluQnl0ZXM7CisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgYml0ZmllbGQgZm9yIHRoZSBNZW10cmFja0ZsYWcgaW5kaWNhdGluZyBhbGwgdGhlIGZsYWdzIHRoYXQKKyAgICAgKiBhcmUgdmFsaWQgZm9yIHRoaXMgcmVjb3JkLgorICAgICAqLworICAgIHVpbnQzMl90IGZsYWdzOworfTsKZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvbWVtdHJhY2svMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlNjExMQotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzUgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcCBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmY1NjZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbE1lbXRyYWNrVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZW10cmFja19oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL3VuaXF1ZV9mZC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHZlY3Rvcj4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6OklNZW10cmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1JlY29yZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja0ZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6TWVtdHJhY2tUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpiYXNlOjp1bmlxdWVfZmQ7Cit1c2luZyBzdGQ6OnZlY3RvcjsKK3VzaW5nIHN0ZDo6Y291bnRfaWY7CisKK2NsYXNzIE1lbXRyYWNrSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIG1lbXRyYWNrID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU1lbXRyYWNrPigpOworICAgIEFTU0VSVF9ORShtZW10cmFjaywgbnVsbHB0cik7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElNZW10cmFjaz4gbWVtdHJhY2s7Cit9OworCisvKiBSZXR1cm5zIHRydWUgaWYgZmxhZ3MgY29udGFpbnMgYXQgbGVhc3QgbWluLCBhbmQgbm8gbW9yZSB0aGFuIG1heCwKKyAqIG9mIHRoZSBmbGFncyBpbiBmbGFnU2V0LiBSZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4KKyAqLworYm9vbCByaWdodEZsYWdDb3VudCh1aW50MzJfdCBmbGFncywgdmVjdG9yPE1lbXRyYWNrRmxhZz4gZmxhZ1NldCwgdWludDMyX3QgbWluLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXgpIHsKKyAgdWludDMyX3QgY291bnQgPQorICAgICAgY291bnRfaWYoZmxhZ1NldC5iZWdpbigpLCBmbGFnU2V0LmVuZCgpLAorICAgICAgICAgICAgICAgWyZdKE1lbXRyYWNrRmxhZyBmKSB7IHJldHVybiBmbGFncyAmICh1aW50MzJfdClmOyB9KTsKKyAgcmV0dXJuIChtaW4gPD0gY291bnQgJiYgY291bnQgPD0gbWF4KTsKK30KKworLyogUmV0dXJucyB0cnVlIHdoZW4gcGFzc2VkIGEgdmFsaWQsIGRlZmluZWQgc3RhdHVzLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgdmFsaWRTdGF0dXMoTWVtdHJhY2tTdGF0dXMgcykgeworICB2ZWN0b3I8TWVtdHJhY2tTdGF0dXM+IHN0YXR1c1ZlYyA9IHsKKyAgICAgIE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTLCBNZW10cmFja1N0YXR1czo6TUVNT1JZX1RSQUNLSU5HX05PVF9TVVBQT1JURUQsCisgICAgICBNZW10cmFja1N0YXR1czo6VFlQRV9OT1RfU1VQUE9SVEVEfTsKKyAgcmV0dXJuIHN0ZDo6ZmluZChzdGF0dXNWZWMuYmVnaW4oKSwgc3RhdHVzVmVjLmVuZCgpLCBzKSAhPSBzdGF0dXNWZWMuZW5kKCk7Cit9CisKK2F1dG8gZ2VuZXJhdGVfY2IoTWVtdHJhY2tTdGF0dXMgKnMsIGhpZGxfdmVjPE1lbXRyYWNrUmVjb3JkPiAqdikgeworICByZXR1cm4gWz1dKE1lbXRyYWNrU3RhdHVzIHN0YXR1cywgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHZlYykgeworICAgICpzID0gc3RhdHVzOworICAgICp2ID0gdmVjOworICB9OworfQorCisvKiBTYW5pdHkgY2hlY2sgcmVzdWx0cyB3aGVuIGdldE1lbW9yeSgpIGlzIHBhc3NlZCBhIG5lZ2F0aXZlIFBJRAorICovCitURVNUX0YoTWVtdHJhY2tIaWRsVGVzdCwgQmFkUGlkVGVzdCkgeworICBNZW10cmFja1N0YXR1cyBzOworICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gdjsKKyAgYXV0byBjYiA9IGdlbmVyYXRlX2NiKCZzLCAmdik7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVtdHJhY2tUeXBlOjpOVU1fVFlQRVMpOworICAgICAgIGkrKykgeworICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICBtZW10cmFjay0+Z2V0TWVtb3J5KC0xLCBzdGF0aWNfY2FzdDxNZW10cmFja1R5cGU+KGkpLCBjYik7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgQVNTRVJUX1RSVUUodmFsaWRTdGF0dXMocykpOworICB9Cit9CisKKy8qIFNhbml0eSBjaGVjayByZXN1bHRzIHdoZW4gZ2V0TWVtb3J5KCkgaXMgcGFzc2VkIGEgYmFkIG1lbW9yeSB1c2FnZSB0eXBlCisgKi8KK1RFU1RfRihNZW10cmFja0hpZGxUZXN0LCBCYWRUeXBlVGVzdCkgeworICBNZW10cmFja1N0YXR1cyBzOworICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gdjsKKyAgYXV0byBjYiA9IGdlbmVyYXRlX2NiKCZzLCAmdik7CisgIFJldHVybjx2b2lkPiByZXQgPSBtZW10cmFjay0+Z2V0TWVtb3J5KGdldHBpZCgpLCBNZW10cmFja1R5cGU6Ok5VTV9UWVBFUywgY2IpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUodmFsaWRTdGF0dXMocykpOworfQorCisvKiBDYWxsIG1lbXRyYWNrIG9uIHRoaXMgcHJvY2VzcyBhbmQgY2hlY2sgdGhhdCB0aGUgcmVzdWx0cyBhcmUgcmVhc29uYWJsZQorICogZm9yIGFsbCBtZW1vcnkgdHlwZXMsIGluY2x1ZGluZyB2YWxpZCBmbGFnIGNvbWJpbmF0aW9ucyBmb3IgZXZlcnkKKyAqIE1lbXRyYWNrUmVjb3JkIHJldHVybmVkLgorICovCitURVNUX0YoTWVtdHJhY2tIaWRsVGVzdCwgR2V0TWVtb3J5VGVzdCkgeworICAvKiBPcGVuaW5nIHRoaXMgZGV2aWNlIGNhdXNlcyB0aGUga2VybmVsIHRvIHByb3ZpZGUgbWVtdHJhY2sgd2l0aCBtZW1vcnkKKyAgICogaW5mbyBmb3IgdGhpcyBwcm9jZXNzLgorICAgKi8KKyAgdW5pcXVlX2ZkIGZkKG9wZW4oIi9kZXYva2dzbC0zZDAiLCBPX1JEV1IpKTsKKworICBNZW10cmFja1N0YXR1cyBzOworICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gdjsKKyAgYXV0byBjYiA9IGdlbmVyYXRlX2NiKCZzLCAmdik7CisgIHVpbnQzMl90IHVuc3VwcG9ydGVkQ291bnQgPSAwOworICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lbXRyYWNrVHlwZTo6TlVNX1RZUEVTKTsKKyAgICAgICBpKyspIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgbWVtdHJhY2stPmdldE1lbW9yeShnZXRwaWQoKSwgc3RhdGljX2Nhc3Q8TWVtdHJhY2tUeXBlPihpKSwgY2IpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3dpdGNoIChzKSB7CisgICAgICBjYXNlIE1lbXRyYWNrU3RhdHVzOjpNRU1PUllfVFJBQ0tJTkdfTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgdW5zdXBwb3J0ZWRDb3VudCsrOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgTWVtdHJhY2tTdGF0dXM6OlRZUEVfTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTOiB7CisgICAgICAgIGZvciAodWludDMyX3QgaiA9IDA7IGogPCB2LnNpemUoKTsgaisrKSB7CisgICAgICAgICAgLy8gRW5mb3JjZSBmbGFnIGNvbnN0cmFpbnRzCisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc21hcEZsYWdzID0ge01lbXRyYWNrRmxhZzo6U01BUFNfQUNDT1VOVEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW10cmFja0ZsYWc6OlNNQVBTX1VOQUNDT1VOVEVEfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzbWFwRmxhZ3MsIDEsIDEpKTsKKyAgICAgICAgICB2ZWN0b3I8TWVtdHJhY2tGbGFnPiBzaGFyZUZsYWdzID0ge01lbXRyYWNrRmxhZzo6U0hBUkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpTSEFSRURfUFNTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpQUklWQVRFfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzaGFyZUZsYWdzLCAwLCAxKSk7CisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc3lzdGVtRmxhZ3MgPSB7TWVtdHJhY2tGbGFnOjpTWVNURU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpERURJQ0FURUR9OworICAgICAgICAgIEVYUEVDVF9UUlVFKHJpZ2h0RmxhZ0NvdW50KHZbal0uZmxhZ3MsIHN5c3RlbUZsYWdzLCAwLCAxKSk7CisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc2VjdXJlRmxhZ3MgPSB7TWVtdHJhY2tGbGFnOjpTRUNVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpOT05TRUNVUkV9OworICAgICAgICAgIEVYUEVDVF9UUlVFKHJpZ2h0RmxhZ0NvdW50KHZbal0uZmxhZ3MsIHNlY3VyZUZsYWdzLCAwLCAxKSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBkZWZhdWx0OgorICAgICAgICBGQUlMKCk7CisgICAgfQorICB9CisgIC8vIElmIHRyYWNraW5nIGlzIG5vdCBzdXBwb3J0ZWQgdGhpcyBzaG91bGQgYmUgcmV0dXJuZWQgZm9yIGFsbCB0eXBlcy4KKyAgQVNTRVJUX1RSVUUodW5zdXBwb3J0ZWRDb3VudCA9PSAwIHx8CisgICAgICAgICAgICAgIHVuc3VwcG9ydGVkQ291bnQgPT0KKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZW10cmFja1R5cGU6Ok5VTV9UWVBFUykpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrL0FuZHJvaWQuYnAgYi9tZW10cmFjay9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMTlhMzcKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL0FuZHJvaWQuYnAgYi9wb3dlci8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDk2N2ZkCi0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJUG93ZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9Qb3dlckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JSHdQb3dlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0JuSHdQb3dlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0JwSHdQb3dlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0JzUG93ZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL0FuZHJvaWQubWsgYi9wb3dlci8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTg5YTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwyNzAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUucG93ZXItVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGZWF0dXJlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL0ZlYXR1cmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuRmVhdHVyZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJIaW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VySGludC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlckhpbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlclN0YXRlVm90ZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvUG93ZXJTdGF0ZVZvdGVyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlBvd2VyU3RhdGVWb3RlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJUG93ZXIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvSVBvd2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JUG93ZXIuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6SVBvd2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JUG93ZXIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmVhdHVyZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9GZWF0dXJlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLkZlYXR1cmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VySGludCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlckhpbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJIaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJTdGF0ZVZvdGVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVWb3Rlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlclN0YXRlVm90ZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVBvd2VyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL0lQb3dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OklQb3dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL0lQb3dlci5oYWwgYi9wb3dlci8xLjAvSVBvd2VyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTBmNjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL0lQb3dlci5oYWwKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOworCisvKioKKyAqIENvbnN0cnVjdG9yIGZvciB0aGUgaW50ZXJmYWNlIHBlcmZvcm1zIHBvd2VyIG1hbmFnZW1lbnQgc2V0dXAgYWN0aW9ucyBhdAorICogcnVudGltZSBzdGFydHVwLCBzdWNoIGFzIHRvIHNldCBkZWZhdWx0IGNwdWZyZXEgcGFyYW1ldGVycy4KKyAqLworaW50ZXJmYWNlIElQb3dlciB7CisgICAgLyoqCisgICAgICogc2V0SW50ZXJhY3RpdmUoKSBwZXJmb3JtcyBwb3dlciBtYW5hZ2VtZW50IGFjdGlvbnMgdXBvbiB0aGUKKyAgICAgKiBzeXN0ZW0gZW50ZXJpbmcgaW50ZXJhY3RpdmUgc3RhdGUgKHRoYXQgaXMsIHRoZSBzeXN0ZW0gaXMgYXdha2UKKyAgICAgKiBhbmQgcmVhZHkgZm9yIGludGVyYWN0aW9uLCBvZnRlbiB3aXRoIFVJIGRldmljZXMgc3VjaCBhcworICAgICAqIGRpc3BsYXkgYW5kIHRvdWNoc2NyZWVuIGVuYWJsZWQpIG9yIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZSAodGhlCisgICAgICogc3lzdGVtIGFwcGVhcnMgYXNsZWVwLCBkaXNwbGF5IHVzdWFsbHkgdHVybmVkIG9mZikuIFRoZQorICAgICAqIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZSBtYXkgYmUgZW50ZXJlZCBhZnRlciBhIHBlcmlvZCBvZgorICAgICAqIGluYWN0aXZpdHkgaW4gb3JkZXIgdG8gY29uc2VydmUgYmF0dGVyeSBwb3dlciBkdXJpbmcKKyAgICAgKiBzdWNoIGluYWN0aXZlIHBlcmlvZHMuCisgICAgICoKKyAgICAgKiBUeXBpY2FsIGFjdGlvbnMgYXJlIHRvIHR1cm4gb24gb3Igb2ZmIGRldmljZXMgYW5kIGFkanVzdAorICAgICAqIGNwdWZyZXEgcGFyYW1ldGVycy4gVGhpcyBmdW5jdGlvbiBtYXkgYWxzbyBjYWxsIHRoZQorICAgICAqIGFwcHJvcHJpYXRlIGludGVyZmFjZXMgdG8gYWxsb3cgdGhlIGtlcm5lbCB0byBzdXNwZW5kIHRoZQorICAgICAqIHN5c3RlbSB0byBsb3ctcG93ZXIgc2xlZXAgc3RhdGUgd2hlbiBlbnRlcmluZyBub24taW50ZXJhY3RpdmUKKyAgICAgKiBzdGF0ZSwgYW5kIHRvIGRpc2FsbG93IGxvdy1wb3dlciBzdXNwZW5kIHdoZW4gdGhlIHN5c3RlbSBpcyBpbgorICAgICAqIGludGVyYWN0aXZlIHN0YXRlLiBXaGVuIGxvdy1wb3dlciBzdXNwZW5kIHN0YXRlIGlzIGFsbG93ZWQsIHRoZQorICAgICAqIGtlcm5lbCBtYXkgc3VzcGVuZCB0aGUgc3lzdGVtIHdoZW5ldmVyIG5vIHdha2Vsb2NrcyBhcmUgaGVsZC4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLAorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB0byBlbnRlciBub24taW50ZXJhY3RpdmUgc3RhdGUgYWZ0ZXIKKyAgICAgKiB0dXJuaW5nIG9mZiB0aGUgc2NyZWVuIChpZiBwcmVzZW50KSBhbmQgY2FsbGVkIHRvIGVudGVyCisgICAgICogaW50ZXJhY3RpdmUgc3RhdGUgcHJpb3IgdG8gdHVybmluZyBvbiB0aGUgc2NyZWVuLgorICAgICAqCisgICAgICogQHBhcmFtIGludGVyYWN0aXZlIGlzIHRydWUgd2hlbiB0aGUgc3lzdGVtIGlzIHRyYW5zaXRpb25pbmcgdG8gYW4KKyAgICAgKiBpbnRlcmFjdGl2ZSBzdGF0ZSBhbmQgZmFsc2Ugd2hlbiB0cmFuc2l0aW9uaW5nIHRvIGEKKyAgICAgKiBub24taW50ZXJhY3RpdmUgc3RhdGUuCisgICAgICovCisgICAgc2V0SW50ZXJhY3RpdmUoYm9vbCBpbnRlcmFjdGl2ZSk7CisKKyAgICAvKioKKyAgICAgKiBwb3dlckhpbnQoKSBpcyBjYWxsZWQgdG8gcGFzcyBoaW50cyBvbiBwb3dlciByZXF1aXJlbWVudHMgd2hpY2gKKyAgICAgKiBtYXkgcmVzdWx0IGluIGFkanVzdG1lbnQgb2YgcG93ZXIvcGVyZm9ybWFuY2UgcGFyYW1ldGVycyBvZiB0aGUKKyAgICAgKiBjcHVmcmVxIGdvdmVybm9yIGFuZCBvdGhlciBjb250cm9scy4KKyAgICAgKgorICAgICAqIEEgcGFydGljdWxhciBwbGF0Zm9ybSBtYXkgY2hvb3NlIHRvIGlnbm9yZSBhbnkgaGludC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBoaW50IFBvd2VySGludCB3aGljaCBpcyBwYXNzZWQKKyAgICAgKiBAcGFyYW0gZGF0YSBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoaW50CisgICAgICogYW5kIGlzIGRlc2NyaWJlZCBhbG9uZyB3aXRoIHRoZSBjb21tZW50cyBmb3IgZWFjaCBvZiB0aGUgaGludHMuCisgICAgICovCisgICAgcG93ZXJIaW50KFBvd2VySGludCBoaW50LCBpbnQzMl90IGRhdGEpOworCisgICAgLyoqCisgICAgICogc2V0RmVhdHVyZSgpIGlzIGNhbGxlZCB0byB0dXJuIG9uIG9yIG9mZiBhIHBhcnRpY3VsYXIgZmVhdHVyZQorICAgICAqIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmUgRmVhdHVyZSB3aGljaCBuZWVkcyB0byBiZSBzZXQKKyAgICAgKiBAcGFyYW0gYWN0aXZhdGUgdHJ1ZS9mYWxzZSB0byBlbmFibGUvZGlzYWJsZSB0aGUgZmVhdHVyZQorICAgICAqLworICAgIHNldEZlYXR1cmUoRmVhdHVyZSBmZWF0dXJlLCBib29sIGFjdGl2YXRlKTsKKworICAgIC8qKgorICAgICAqIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlIHN0YXRzOgorICAgICAqIFJlcG9ydCBjdW11bGF0aXZlIGluZm8gb24gdGhlIHN0YXRpc3RpY3Mgb24gcGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGVzCisgICAgICogc2luY2UgYm9vdC4KKyAgICAgKgorICAgICAqIEhpZ2hlciB0aGUgaW5kZXggaW4gdGhlIHJldHVybmVkIDxzdGF0ZXM+IHZlY3RvciBkZWVwZXIgdGhlIHN0YXRlIGlzCisgICAgICogaS5lLiBsZXNzZXIgc3RlYWR5LXN0YXRlIHBvd2VyIGlzIGNvbnN1bWVkIGJ5IHRoZSBwbGF0Zm9ybSB0byBiZQorICAgICAqIHJlc2lkZW50IGluIHRoYXQgc3RhdGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXRlcyBvZiBwb3dlciBzdGF0ZXMgdGhlIGRldmljZSBzdXBwb3J0cworICAgICAqIEByZXR1cm4gcmV0dmFsIFNVQ0NFU1Mgb24gc3VjY2VzcyBvciBGSUxFU1lTVEVNX0VSUk9SIG9uIGZpbGVzeXN0ZW0KKyAgICAgKiBub2RlcyBhY2Nlc3MgZXJyb3IuCisgICAgICovCisgICAgZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAodmVjPFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGU+IHN0YXRlcywgU3RhdHVzIHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3Bvd2VyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY0M2I5NQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlBvd2VyLmNwcCJdLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBdLAorCit9CisKK2NjX2JpbmFyeSB7CisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZSIsCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjIl0sCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJkbCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBdLAorCit9CmRpZmYgLS1naXQgYS9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5jcHAgYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFmODdmNQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmNwcApAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtaW1wbCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcG93ZXIuaD4KKworI2luY2x1ZGUgIlBvd2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgcG93ZXIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworUG93ZXI6OlBvd2VyKHBvd2VyX21vZHVsZV90ICptb2R1bGUpIDogbU1vZHVsZShtb2R1bGUpIHsKKyAgICBpZiAobU1vZHVsZSkKKyAgICAgICAgbU1vZHVsZS0+aW5pdChtTW9kdWxlKTsKK30KKworUG93ZXI6On5Qb3dlcigpIHsKKyAgICBkZWxldGUobU1vZHVsZSk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6SVBvd2VyIGZvbGxvdy4KK1JldHVybjx2b2lkPiBQb3dlcjo6c2V0SW50ZXJhY3RpdmUoYm9vbCBpbnRlcmFjdGl2ZSkgIHsKKyAgICBpZiAobU1vZHVsZS0+c2V0SW50ZXJhY3RpdmUpCisgICAgICAgIG1Nb2R1bGUtPnNldEludGVyYWN0aXZlKG1Nb2R1bGUsIGludGVyYWN0aXZlID8gMSA6IDApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBQb3dlcjo6cG93ZXJIaW50KFBvd2VySGludCBoaW50LCBpbnQzMl90IGRhdGEpICB7CisgICAgaW50MzJfdCBwYXJhbSA9IGRhdGE7CisgICAgaWYgKG1Nb2R1bGUtPnBvd2VySGludCkgeworICAgICAgICBpZiAoZGF0YSkKKyAgICAgICAgICAgIG1Nb2R1bGUtPnBvd2VySGludChtTW9kdWxlLCBzdGF0aWNfY2FzdDxwb3dlcl9oaW50X3Q+KGhpbnQpLCAmcGFyYW0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtTW9kdWxlLT5wb3dlckhpbnQobU1vZHVsZSwgc3RhdGljX2Nhc3Q8cG93ZXJfaGludF90PihoaW50KSwgTlVMTCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBQb3dlcjo6c2V0RmVhdHVyZShGZWF0dXJlIGZlYXR1cmUsIGJvb2wgYWN0aXZhdGUpICB7CisgICAgaWYgKG1Nb2R1bGUtPnNldEZlYXR1cmUpCisgICAgICAgIG1Nb2R1bGUtPnNldEZlYXR1cmUobU1vZHVsZSwgc3RhdGljX2Nhc3Q8ZmVhdHVyZV90PihmZWF0dXJlKSwKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gUG93ZXI6OmdldFBsYXRmb3JtTG93UG93ZXJTdGF0cyhnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHNfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gc3RhdGVzOworICAgIHNzaXplX3QgbnVtYmVyX3BsYXRmb3JtX21vZGVzOworICAgIHNpemVfdCAqdm90ZXJzID0gbnVsbHB0cjsKKyAgICBwb3dlcl9zdGF0ZV9wbGF0Zm9ybV9zbGVlcF9zdGF0ZV90ICpsZWdhY3lfc3RhdGVzID0gbnVsbHB0cjsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKG1Nb2R1bGUtPmdldF9udW1iZXJfb2ZfcGxhdGZvcm1fbW9kZXMgPT0gbnVsbHB0ciB8fAorICAgICAgICAgICAgbU1vZHVsZS0+Z2V0X3ZvdGVyX2xpc3QgPT0gbnVsbHB0ciB8fAorICAgICAgICAgICAgbU1vZHVsZS0+Z2V0X3BsYXRmb3JtX2xvd19wb3dlcl9zdGF0cyA9PSBudWxscHRyKQorICAgIHsKKyAgICAgICAgX2hpZGxfY2Ioc3RhdGVzLCBTdGF0dXM6OlNVQ0NFU1MpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG51bWJlcl9wbGF0Zm9ybV9tb2RlcyA9IG1Nb2R1bGUtPmdldF9udW1iZXJfb2ZfcGxhdGZvcm1fbW9kZXMobU1vZHVsZSk7CisgICAgaWYgKG51bWJlcl9wbGF0Zm9ybV9tb2RlcykKKyAgICB7CisgICAgICAgaWYgKChzc2l6ZV90KSAoU0laRV9NQVggLyBzaXplb2Yoc2l6ZV90KSkgPD0gbnVtYmVyX3BsYXRmb3JtX21vZGVzKSAgLy8gb3ZlcmZsb3cKKyAgICAgICAgICAgZ290byBkb25lOworICAgICAgIHZvdGVycyA9IG5ldyAoc3RkOjpub3Rocm93KSBzaXplX3QgW251bWJlcl9wbGF0Zm9ybV9tb2Rlc107CisgICAgICAgaWYgKHZvdGVycyA9PSBudWxscHRyKQorICAgICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRfdm90ZXJfbGlzdChtTW9kdWxlLCB2b3RlcnMpOworICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgaWYgKChzc2l6ZV90KSAoU0laRV9NQVggLyBzaXplb2YocG93ZXJfc3RhdGVfcGxhdGZvcm1fc2xlZXBfc3RhdGVfdCkpCisgICAgICAgICAgIDw9IG51bWJlcl9wbGF0Zm9ybV9tb2RlcykgIC8vIG92ZXJmbG93CisgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICBsZWdhY3lfc3RhdGVzID0gbmV3IChzdGQ6Om5vdGhyb3cpCisgICAgICAgICAgIHBvd2VyX3N0YXRlX3BsYXRmb3JtX3NsZWVwX3N0YXRlX3QgW251bWJlcl9wbGF0Zm9ybV9tb2Rlc107CisgICAgICAgaWYgKGxlZ2FjeV9zdGF0ZXMgPT0gbnVsbHB0cikKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJfcGxhdGZvcm1fbW9kZXM7IGkrKykKKyAgICAgICB7CisgICAgICAgICAgbGVnYWN5X3N0YXRlc1tpXS52b3RlcnMgPSBudWxscHRyOworICAgICAgICAgIGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzID0gbmV3IHBvd2VyX3N0YXRlX3ZvdGVyX3QgW3ZvdGVyc1tpXV07CisgICAgICAgICAgaWYgKGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzID09IG51bGxwdHIpCisgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICB9CisKKyAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRfcGxhdGZvcm1fbG93X3Bvd2VyX3N0YXRzKG1Nb2R1bGUsIGxlZ2FjeV9zdGF0ZXMpOworICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgc3RhdGVzLnJlc2l6ZShudW1iZXJfcGxhdGZvcm1fbW9kZXMpOworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX3BsYXRmb3JtX21vZGVzOyBpKyspCisgICAgICAgeworICAgICAgICAgIHBvd2VyX3N0YXRlX3BsYXRmb3JtX3NsZWVwX3N0YXRlX3QmIGxlZ2FjeV9zdGF0ZSA9IGxlZ2FjeV9zdGF0ZXNbaV07CisgICAgICAgICAgUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZSYgc3RhdGUgPSBzdGF0ZXNbaV07CisgICAgICAgICAgc3RhdGUubmFtZSA9IGxlZ2FjeV9zdGF0ZS5uYW1lOworICAgICAgICAgIHN0YXRlLnJlc2lkZW5jeUluTXNlY1NpbmNlQm9vdCA9IGxlZ2FjeV9zdGF0ZS5yZXNpZGVuY3lfaW5fbXNlY19zaW5jZV9ib290OworICAgICAgICAgIHN0YXRlLnRvdGFsVHJhbnNpdGlvbnMgPSBsZWdhY3lfc3RhdGUudG90YWxfdHJhbnNpdGlvbnM7CisgICAgICAgICAgc3RhdGUuc3VwcG9ydGVkT25seUluU3VzcGVuZCA9IGxlZ2FjeV9zdGF0ZS5zdXBwb3J0ZWRfb25seV9pbl9zdXNwZW5kOworICAgICAgICAgIHN0YXRlLnZvdGVycy5yZXNpemUodm90ZXJzW2ldKTsKKyAgICAgICAgICBmb3Ioc2l6ZV90IGogPSAwOyBqIDwgdm90ZXJzW2ldOyBqKyspCisgICAgICAgICAgeworICAgICAgICAgICAgICBzdGF0ZS52b3RlcnNbal0ubmFtZSA9IGxlZ2FjeV9zdGF0ZS52b3RlcnNbal0ubmFtZTsKKyAgICAgICAgICAgICAgc3RhdGUudm90ZXJzW2pdLnRvdGFsVGltZUluTXNlY1ZvdGVkRm9yU2luY2VCb290ID0gbGVnYWN5X3N0YXRlLnZvdGVyc1tqXS50b3RhbF90aW1lX2luX21zZWNfdm90ZWRfZm9yX3NpbmNlX2Jvb3Q7CisgICAgICAgICAgICAgIHN0YXRlLnZvdGVyc1tqXS50b3RhbE51bWJlck9mVGltZXNWb3RlZFNpbmNlQm9vdCA9IGxlZ2FjeV9zdGF0ZS52b3RlcnNbal0udG90YWxfbnVtYmVyX29mX3RpbWVzX3ZvdGVkX3NpbmNlX2Jvb3Q7CisgICAgICAgICAgfQorICAgICAgIH0KKyAgICB9Citkb25lOgorICAgIGlmIChsZWdhY3lfc3RhdGVzKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJfcGxhdGZvcm1fbW9kZXM7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYobGVnYWN5X3N0YXRlc1tpXS52b3RlcnMpCisgICAgICAgICAgICAgICAgZGVsZXRlKGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBkZWxldGVbXSBsZWdhY3lfc3RhdGVzOworICAgIGRlbGV0ZVtdIHZvdGVyczsKKyAgICBfaGlkbF9jYihzdGF0ZXMsIFN0YXR1czo6U1VDQ0VTUyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSVBvd2VyKiBISURMX0ZFVENIX0lQb3dlcihjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3X21vZHVsZSA9IG51bGxwdHI7CisgICAgcG93ZXJfbW9kdWxlX3QqIHBvd2VyX21vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoUE9XRVJfSEFSRFdBUkVfTU9EVUxFX0lELCAmaHdfbW9kdWxlKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzIGZhaWxlZDogJWQiLCBQT1dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmICghaHdfbW9kdWxlLT5tZXRob2RzIHx8ICFod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4pIHsKKyAgICAgICAgcG93ZXJfbW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxwb3dlcl9tb2R1bGVfdCo+KAorICAgICAgICAgICAgY29uc3RfY2FzdDxod19tb2R1bGVfdCo+KGh3X21vZHVsZSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGVyciA9IGh3X21vZHVsZS0+bWV0aG9kcy0+b3BlbigKKyAgICAgICAgICAgIGh3X21vZHVsZSwgUE9XRVJfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmcG93ZXJfbW9kdWxlKSk7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG5ldyBQb3dlcihwb3dlcl9tb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBwb3dlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvUG93ZXIuaCBiL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzYWVmYgotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9QT1dFUl9WMV8wX1BPV0VSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9QT1dFUl9WMV8wX1BPV0VSX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0lQb3dlci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBwb3dlciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpJUG93ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6UG93ZXJIaW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgUG93ZXIgOiBwdWJsaWMgSVBvd2VyIHsKKyAgICBQb3dlcihwb3dlcl9tb2R1bGVfdCogbW9kdWxlKTsKKyAgICB+UG93ZXIoKTsKKyAgICBSZXR1cm48dm9pZD4gc2V0SW50ZXJhY3RpdmUoYm9vbCBpbnRlcmFjdGl2ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwb3dlckhpbnQoUG93ZXJIaW50IGhpbnQsIGludDMyX3QgZGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRGZWF0dXJlKEZlYXR1cmUgZmVhdHVyZSwgYm9vbCBhY3RpdmF0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBwb3dlcl9tb2R1bGVfdCogbU1vZHVsZTsKK307CisKK2V4dGVybiAiQyIgSVBvd2VyKiBISURMX0ZFVENIX0lQb3dlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHBvd2VyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9QT1dFUl9WMV8wX1BPV0VSX0gKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UucmMgYi9wb3dlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzdlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBwb3dlci1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9wb3dlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODYxOGI4Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0lQb3dlci5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OklQb3dlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVBvd2VyPigpOworfQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL3R5cGVzLmhhbCBiL3Bvd2VyLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgzOTI4MwotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDsKKworLyoqIFBvd2VyIGhpbnQgaWRlbnRpZmllcnMgcGFzc2VkIHRvIHBvd2VySGludCgpICovCitlbnVtIFBvd2VySGludCA6IHVpbnQzMl90IHsKKyAgIC8qKgorICAgICogRm9yZWdyb3VuZCBhcHAgaGFzIHN0YXJ0ZWQgb3Igc3RvcHBlZCByZXF1ZXN0aW5nIGEgVlNZTkMgcHVsc2UKKyAgICAqIGZyb20gU3VyZmFjZUZsaW5nZXIuIElmIHRoZSBhcHAgaGFzIHN0YXJ0ZWQgcmVxdWVzdGluZyBWU1lOQworICAgICogdGhlbiBDUFUgYW5kIEdQVSBsb2FkIGlzIGV4cGVjdGVkIHNvb24sIGFuZCBpdCBtYXkgYmUgYXBwcm9wcmlhdGUKKyAgICAqIHRvIHJhaXNlIHNwZWVkcyBvZiBDUFUsIG1lbW9yeSBidXMsIGV0Yy4gVGhlIGRhdGEgcGFyYW1ldGVyIGlzCisgICAgKiBub24temVybyB0byBpbmRpY2F0ZSBWU1lOQyBwdWxzZSBpcyBub3cgcmVxdWVzdGVkLCBvciB6ZXJvIGZvcgorICAgICogVlNZTkMgcHVsc2Ugbm8gbG9uZ2VyIHJlcXVlc3RlZC4KKyAgICAqLworICAgIFZTWU5DID0gMHgwMDAwMDAwMSwKKworCisgICAvKioKKyAgICAqIFVzZXIgaXMgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZGV2aWNlLCBmb3IgZXhhbXBsZSwgdG91Y2hzY3JlZW4KKyAgICAqIGV2ZW50cyBhcmUgaW5jb21pbmcuIENQVSBhbmQgR1BVIGxvYWQgbWF5IGJlIGV4cGVjdGVkIHNvb24sCisgICAgKiBhbmQgaXQgbWF5IGJlIGFwcHJvcHJpYXRlIHRvIHJhaXNlIHNwZWVkcyBvZiBDUFUsIG1lbW9yeSBidXMsCisgICAgKiBldGMuIFRoZSBkYXRhIHBhcmFtZXRlciBpcyB0aGUgZXN0aW1hdGVkIGxlbmd0aCBvZiB0aGUgaW50ZXJhY3Rpb24KKyAgICAqIGluIG1pbGxpc2Vjb25kcywgb3IgMCBpZiB1bmtub3duLgorICAgICovCisgICAgSU5URVJBQ1RJT04gPSAweDAwMDAwMDAyLAorCisKKyAgICAvKioKKyAgICAgKiBETyBOT1QgVVNFIFZJREVPX0VOQ09ERS9fREVDT0RFISAgVGhleSB3aWxsIGJlIHJlbW92ZWQgaW4KKyAgICAgKiBLTFAuCisgICAgICovCisgICAgVklERU9fRU5DT0RFID0gMHgwMDAwMDAwMywKKyAgICBWSURFT19ERUNPREUgPSAweDAwMDAwMDA0LAorCisgICAvKioKKyAgICAqIExvdyBwb3dlciBtb2RlIGlzIGFjdGl2YXRlZCBvciBkZWFjdGl2YXRlZC4gTG93IHBvd2VyIG1vZGUKKyAgICAqIGlzIGludGVuZGVkIHRvIHNhdmUgYmF0dGVyeSBhdCB0aGUgY29zdCBvZiBwZXJmb3JtYW5jZS4gVGhlIGRhdGEKKyAgICAqIHBhcmFtZXRlciBpcyBub24temVybyB3aGVuIGxvdyBwb3dlciBtb2RlIGlzIGFjdGl2YXRlZCwgYW5kIHplcm8KKyAgICAqIHdoZW4gZGVhY3RpdmF0ZWQuCisgICAgKi8KKyAgICBMT1dfUE9XRVIgPSAweDAwMDAwMDA1LAorCisgICAvKioKKyAgICAqIFN1c3RhaW5lZCBQZXJmb3JtYW5jZSBtb2RlIGlzIGFjdGl2ZWQgb3IgZGVhY3RpdmF0ZWQuIFN1c3RhaW5lZAorICAgICogcGVyZm9ybWFuY2UgbW9kZSBpcyBpbnRlbmRlZCB0byBwcm92aWRlIGEgY29uc2lzdGVudCBsZXZlbCBvZgorICAgICogcGVyZm9ybWFuY2UgZm9yIGEgcHJvbG9uZ2VkIGFtb3VudCBvZiB0aW1lLiBUaGUgZGF0YSBwYXJhbWV0ZXIgaXMKKyAgICAqIG5vbi16ZXJvIHdoZW4gc3VzdGFpbmVkIHBlcmZvcm1hbmNlIG1vZGUgaXMgYWN0aXZhdGVkLCBhbmQgemVybworICAgICogd2hlbiBkZWFjdGl2YXRlZC4KKyAgICAqLworICAgIFNVU1RBSU5FRF9QRVJGT1JNQU5DRSA9IDB4MDAwMDAwMDYsCisKKyAgIC8qKgorICAgICogVlIgTW9kZSBpcyBhY3RpdmF0ZWQgb3IgZGVhY3RpdmF0ZWQuIFZSIG1vZGUgaXMgaW50ZW5kZWQgdG8KKyAgICAqIHByb3ZpZGUgbWluaW11bSBndWFyYW50ZWUgZm9yIHBlcmZvcm1hbmNlIGZvciB0aGUgYW1vdW50IG9mIHRpbWUgdGhlCisgICAgKiBkZXZpY2UgY2FuIHN1c3RhaW4gaXQuIFRoZSBkYXRhIHBhcmFtZXRlciBpcyBub24temVybyB3aGVuIHRoZSBtb2RlCisgICAgKiBpcyBhY3RpdmF0ZWQgYW5kIHplcm8gd2hlbiBkZWFjdGl2YXRlZC4KKyAgICAqLworICAgIFZSX01PREUgPSAweDAwMDAwMDA3LAorCisgICAvKioKKyAgICAqIFRoaXMgaGludCBpbmRpY2F0ZXMgdGhhdCBhbiBhcHBsaWNhdGlvbiBoYXMgYmVlbiBsYXVuY2hlZC4gQ2FuIGJlIHVzZWQKKyAgICAqIGZvciBkZXZpY2Ugc3BlY2lmaWMgb3B0aW1pemF0aW9ucyBkdXJpbmcgYXBwbGljYXRpb24gbGF1bmNoLiBUaGUgZGF0YQorICAgICogcGFyYW1ldGVyIGlzIG5vbi16ZXJvIHdoZW4gdGhlIGFwcGxpY2F0aW9uIHN0YXJ0cyB0byBsYXVuY2ggYW5kIHplcm8gd2hlbgorICAgICogaXQgaGFzIGJlZW4gbGF1bmNoZWQuCisgICAgKi8KKyAgICBMQVVOQ0ggPSAweDAwMDAwMDA4LAorfTsKKworZW51bSBGZWF0dXJlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEVuYWJsaW5nL0Rpc2FibGluZyB0aGlzIGZlYXR1cmUgd2lsbCBhbGxvdy9kaXNhbGxvdyB0aGUgc3lzdGVtCisgICAgICogdG8gd2FrZSB1cCBieSB0YXBwaW5nIHRoZSBzY3JlZW4gdHdpY2UuCisgICAgICovCisgICAgUE9XRVJfRkVBVFVSRV9ET1VCTEVfVEFQX1RPX1dBS0UgPSAweDAwMDAwMDAxCit9OworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKyAgICBGSUxFU1lTVEVNX0VSUk9SID0gMQorfTsKKy8qKgorICogUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgc3RhdHM6CisgKiBQb3dlclN0YXRlVm90ZXIgc3RydWN0IGlzIHVzZWZ1bCBmb3IgZGVzY3JpYmluZyB0aGUgaW5kaXZpZHVhbCB2b3RlcnMKKyAqIHdoZW4gYSBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBpcyBjaG9zZW4gYnkgYWdncmVnYXRpb24gb2Ygdm90ZXMgZnJvbQorICogbXVsdGlwbGUgY2xpZW50cy9zeXN0ZW0gY29uZGl0aW9ucy4KKyAqCisgKiBUaGlzIGhlbHBzIGluIGF0dGlyYnV0aW5nIHdoYXQgaW4gdGhlIGRldmljZSBpcyBibG9ja2luZyB0aGUgZGV2aWNlIGZyb20KKyAqIGVudGVyaW5nIHRoZSBsb3dlc3QgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUuCisgKi8KK3N0cnVjdCBQb3dlclN0YXRlVm90ZXIgeworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhlIHZvdGVyLgorICAgICAqLworICAgICBzdHJpbmcgbmFtZTsKKworICAgIC8qKgorICAgICAqIFRvdGFsIHRpbWUgaW4gbXNlYyB0aGUgdm90ZXIgdm90ZWQgZm9yIHRoZSBwbGF0Zm9ybSBzbGVlcCBzdGF0ZSBzaW5jZQorICAgICAqIGJvb3QuCisgICAgICovCisgICAgIHVpbnQ2NF90IHRvdGFsVGltZUluTXNlY1ZvdGVkRm9yU2luY2VCb290OworCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIHRpbWVzIHRoZSB2b3RlciB2b3RlZCBmb3IgdGhlIHBsYXRmb3JtIHNsZWVwIHN0YXRlIHNpbmNlIGJvb3QuCisgICAgICovCisgICAgIHVpbnQ2NF90IHRvdGFsTnVtYmVyT2ZUaW1lc1ZvdGVkU2luY2VCb290OworfTsKKworLyoqCisgKiBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBzdGF0czoKKyAqIFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUgcmVwcmVzZW50cyB0aGUgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUKKyAqIHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBnZXR0aW5nIGludG8uCisgKgorICogU29DcyB1c3VhbGx5IGhhdmUgbW9yZSB0aGFuIG9uZSBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZS4KKyAqLworc3RydWN0IFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUgeworICAgIC8qKgorICAgICAqIFBsYXRmb3JtLWxldmVsIFNsZWVwIHN0YXRlIG5hbWUuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBUaW1lIHNwZW50IGluIG1zZWMgYXQgdGhpcyBwbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBzaW5jZSBib290LgorICAgICAqLworICAgIHVpbnQ2NF90IHJlc2lkZW5jeUluTXNlY1NpbmNlQm9vdDsKKworICAgIC8qKgorICAgICAqIFRvdGFsIG51bWJlciBvZiB0aW1lcyBzeXN0ZW0gZW50ZXJlZCB0aGlzIHN0YXRlLgorICAgICAqLworICAgIHVpbnQ2NF90IHRvdGFsVHJhbnNpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlIGNhbiBvbmx5IGJlIHJlYWNoZWQgZHVyaW5nIHN5c3RlbSBzdXNwZW5kCisgICAgICovCisgICAgYm9vbCBzdXBwb3J0ZWRPbmx5SW5TdXNwZW5kOworCisgICAgLyoqCisgICAgICogdm90ZXJzIGlzIHVzZWZ1bCBpZiB0aGUgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUKKyAgICAgKiBpcyBjaG9zZW4gYnkgYWdncmVnYXRpb24gdm90ZXMgZnJvbSBtdWx0aXBsZSBjbGllbnRzL3N5c3RlbSBjb25kaXRpb25zLgorICAgICAqIEFsbCB0aGUgdm90ZXJzIGhhdmUgdG8gc2F5IHllcyBvciBhbGwgdGhlIHN5c3RlbSBjb25kaXRpb25zIG5lZWQgdG8gYmUKKyAgICAgKiBtZXQgdG8gZW50ZXIgYSBwbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZS4KKyAgICAgKgorICAgICAqIFZlY3RvciBvZiBzaXplIHplcm8gaW1wbGllcyBlaXRoZXIgdGhlIGluZm8gaXMgbm90IGF2YWlsYWJsZQorICAgICAqIG9yIHRoZSBzeXN0ZW0gZG9lcyBub3QgZm9sbG93IGEgdm90aW5nIG1lY2hhbmlzbSB0byBjaG9vc2UgdGhpcworICAgICAqIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlLgorICAgICAqLworICAgIHZlYzxQb3dlclN0YXRlVm90ZXI+IHZvdGVyczsKK307CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL0FuZHJvaWQubWsgYi9wb3dlci8xLjAvdnRzL0FuZHJvaWQubWsKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSByYWRpby8xLjAvdnRzL0FuZHJvaWQubWsKY29weSB0byBwb3dlci8xLjAvdnRzL0FuZHJvaWQubWsKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvcG93ZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFiMWViNAotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcCBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTRmYTRmCi0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFBvd2VyVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJwb3dlcl9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL3VuaXF1ZV9mZC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0lQb3dlci5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OklQb3dlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpGZWF0dXJlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlBvd2VySGludDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6YmFzZTo6dW5pcXVlX2ZkOworCit1c2luZyBzdGQ6OnZlY3RvcjsKKworI2RlZmluZSBDUFVfR09WRVJOT1JfUEFUSCBcCisgICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUwL2NwdWZyZXEvc2NhbGluZ19nb3Zlcm5vciIKKyNkZWZpbmUgQVZBSUxBQkxFX0dPVkVSTk9SU19QQVRIIFwKKyAgIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdTAvY3B1ZnJlcS9zY2FsaW5nX2F2YWlsYWJsZV9nb3Zlcm5vcnMiCisKK2NsYXNzIFBvd2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHBvd2VyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVBvd2VyPigpOworICAgIEFTU0VSVF9ORShwb3dlciwgbnVsbHB0cik7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElQb3dlcj4gcG93ZXI7Cit9OworCisvLyBTYW5pdHkgY2hlY2sgUG93ZXI6OnNldEludGVyYWN0aXZlLgorVEVTVF9GKFBvd2VySGlkbFRlc3QsIFNldEludGVyYWN0aXZlKSB7CisgIFJldHVybjx2b2lkPiByZXQ7CisKKyAgcmV0ID0gcG93ZXItPnNldEludGVyYWN0aXZlKHRydWUpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICByZXQgPSBwb3dlci0+c2V0SW50ZXJhY3RpdmUoZmFsc2UpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVGVzdCBQb3dlcjo6c2V0SW50ZXJhY3RpdmUgYW5kIFBvd2VyOjpwb3dlckhpbnQoTGF1bmNoKQorLy8gd2l0aCBlYWNoIGF2YWlsYWJsZSBDUFUgZ292ZXJub3IsIGlmIGF2YWlsYWJsZQorVEVTVF9GKFBvd2VySGlkbFRlc3QsIFRyeURpZmZlcmVudEdvdmVybm9ycykgeworICBSZXR1cm48dm9pZD4gcmV0OworCisgIHVuaXF1ZV9mZCBmZDEob3BlbihDUFVfR09WRVJOT1JfUEFUSCwgT19SRFdSKSk7CisgIHVuaXF1ZV9mZCBmZDIob3BlbihBVkFJTEFCTEVfR09WRVJOT1JTX1BBVEgsIE9fUkRPTkxZKSk7CisgIGlmIChmZDEgPCAwIHx8IGZkMiA8IDApIHsKKyAgICAvLyBGaWxlcyBkb24ndCBleGlzdCwgc28gc2tpcCB0aGUgcmVzdCBvZiB0aGUgdGVzdCBjYXNlCisgICAgU1VDQ0VFRCgpOworICB9CisKKyAgY2hhciBvbGRfZ292ZXJub3JbODBdOworICBBU1NFUlRfTEUoMCwgcmVhZChmZDEsIG9sZF9nb3Zlcm5vciwgODApKTsKKworICBjaGFyIGdvdmVybm9yc1sxMDI0XTsKKyAgdW5zaWduZWQgbGVuID0gcmVhZChmZDIsIGdvdmVybm9ycywgMTAyNCk7CisgIEFTU0VSVF9MRSgwdSwgbGVuKTsKKyAgZ292ZXJub3JzW2xlbl0gPSAnXDAnOworCisgIGNoYXIgKnNhdmVwdHI7CisgIGNoYXIgKm5hbWUgPSBzdHJ0b2tfcihnb3Zlcm5vcnMsICIgXG4iLCAmc2F2ZXB0cik7CisgIHdoaWxlIChuYW1lKSB7CisgICAgQVNTRVJUX0xFKDAsIHdyaXRlKGZkMSwgbmFtZSwgc3RybGVuKG5hbWUpKSk7CisgICAgcmV0ID0gcG93ZXItPnNldEludGVyYWN0aXZlKHRydWUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcmV0ID0gcG93ZXItPnNldEludGVyYWN0aXZlKGZhbHNlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZShmYWxzZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBwb3dlci0+cG93ZXJIaW50KFBvd2VySGludDo6TEFVTkNILCAxKTsKKyAgICBwb3dlci0+cG93ZXJIaW50KFBvd2VySGludDo6TEFVTkNILCAwKTsKKworICAgIG5hbWUgPSBzdHJ0b2tfcihOVUxMLCAiIFxuIiwgJnNhdmVwdHIpOworICB9CisKKyAgQVNTRVJUX0xFKDAsIHdyaXRlKGZkMSwgb2xkX2dvdmVybm9yLCBzdHJsZW4ob2xkX2dvdmVybm9yKSkpOworfQorCisvLyBTYW5pdHkgY2hlY2sgUG93ZXI6OnBvd2VySGludCBvbiBnb29kIGFuZCBiYWQgaW5wdXRzLgorVEVTVF9GKFBvd2VySGlkbFRlc3QsIFBvd2VySGludCkgeworICBQb3dlckhpbnQgYmFkSGludCA9IHN0YXRpY19jYXN0PFBvd2VySGludD4oMHhBKTsKKyAgYXV0byBoaW50cyA9IHtQb3dlckhpbnQ6OlZTWU5DLCAgICAgICAgIFBvd2VySGludDo6SU5URVJBQ1RJT04sCisgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpWSURFT19FTkNPREUsICBQb3dlckhpbnQ6OlZJREVPX0RFQ09ERSwKKyAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OkxPV19QT1dFUiwgICAgIFBvd2VySGludDo6U1VTVEFJTkVEX1BFUkZPUk1BTkNFLAorICAgICAgICAgICAgICAgIFBvd2VySGludDo6VlJfTU9ERSwgICAgICAgUG93ZXJIaW50OjpMQVVOQ0gsCisgICAgICAgICAgICAgICAgYmFkSGludH07CisgIFJldHVybjx2b2lkPiByZXQ7CisgIGZvciAoYXV0byBoaW50IDogaGludHMpIHsKKyAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KGhpbnQsIDMwMDAwKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHJldCA9IHBvd2VyLT5wb3dlckhpbnQoaGludCwgMCk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIH0KKworICAvLyBUdXJuaW5nIHRoZXNlIGhpbnRzIG9uIGluIGRpZmZlcmVudCBvcmRlcnMgdHJpZ2dlcnMgZGlmZmVyZW50IGNvZGUgcGF0aHMsCisgIC8vIHNvIGl0ZXJhdGUgb3ZlciBwb3NzaWJsZSBvcmRlcmluZ3MuCisgIHN0ZDo6dmVjdG9yPFBvd2VySGludD4gaGludHMyID0ge1Bvd2VySGludDo6TEFVTkNILCBQb3dlckhpbnQ6OlZSX01PREUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvd2VySGludDo6U1VTVEFJTkVEX1BFUkZPUk1BTkNFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OklOVEVSQUNUSU9OfTsKKyAgYXV0byBjb21wYXJlSGludHMgPSBbXShQb3dlckhpbnQgbCwgUG93ZXJIaW50IHIpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGwpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHIpOworICB9OworICBzdGQ6OnNvcnQoaGludHMyLmJlZ2luKCksIGhpbnRzMi5lbmQoKSwgY29tcGFyZUhpbnRzKTsKKyAgZG8geworICAgIGZvciAoYXV0byBpdGVyID0gaGludHMyLmJlZ2luKCk7IGl0ZXIgIT0gaGludHMyLmVuZCgpOyBpdGVyKyspIHsKKyAgICAgIHJldCA9IHBvd2VyLT5wb3dlckhpbnQoKml0ZXIsIDApOworICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgfQorICAgIGZvciAoYXV0byBpdGVyID0gaGludHMyLmJlZ2luKCk7IGl0ZXIgIT0gaGludHMyLmVuZCgpOyBpdGVyKyspIHsKKyAgICAgIHJldCA9IHBvd2VyLT5wb3dlckhpbnQoKml0ZXIsIDMwMDAwKTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIH0KKyAgfSB3aGlsZSAoc3RkOjpuZXh0X3Blcm11dGF0aW9uKGhpbnRzMi5iZWdpbigpLCBoaW50czIuZW5kKCksIGNvbXBhcmVIaW50cykpOworfQorCisvLyBTYW5pdHkgY2hlY2sgUG93ZXI6OnNldEZlYXR1cmUoKSBvbiBnb29kIGFuZCBiYWQgaW5wdXRzLgorVEVTVF9GKFBvd2VySGlkbFRlc3QsIFNldEZlYXR1cmUpIHsKKyAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgcmV0ID0gcG93ZXItPnNldEZlYXR1cmUoRmVhdHVyZTo6UE9XRVJfRkVBVFVSRV9ET1VCTEVfVEFQX1RPX1dBS0UsIHRydWUpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgcmV0ID0gcG93ZXItPnNldEZlYXR1cmUoRmVhdHVyZTo6UE9XRVJfRkVBVFVSRV9ET1VCTEVfVEFQX1RPX1dBS0UsIGZhbHNlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgRmVhdHVyZSBiYWRGZWF0dXJlID0gc3RhdGljX2Nhc3Q8RmVhdHVyZT4oMHgyKTsKKyAgcmV0ID0gcG93ZXItPnNldEZlYXR1cmUoYmFkRmVhdHVyZSwgdHJ1ZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICByZXQgPSBwb3dlci0+c2V0RmVhdHVyZShiYWRGZWF0dXJlLCBmYWxzZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBTYW5pdHkgY2hlY2sgUG93ZXI6OmdldFBsYXRmb3JtTG93UG93ZXJTdGF0cygpLgorVEVTVF9GKFBvd2VySGlkbFRlc3QsIEdldFBsYXRmb3JtTG93UG93ZXJTdGF0cykgeworICBoaWRsX3ZlYzxQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlPiB2ZWM7CisgIFN0YXR1cyBzOworICBhdXRvIGNiID0gWyZ2ZWMsICZzXShoaWRsX3ZlYzxQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlPiBzdGF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMpIHsKKyAgICB2ZWMgPSBzdGF0ZXM7CisgICAgcyA9IHN0YXR1czsKKyAgfTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHBvd2VyLT5nZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoY2IpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUocyA9PSBTdGF0dXM6OlNVQ0NFU1MgfHwgcyA9PSBTdGF0dXM6OkZJTEVTWVNURU1fRVJST1IpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL3Bvd2VyL0FuZHJvaWQuYnAgYi9wb3dlci9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMTlhMzcKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL0lSYWRpb1Jlc3BvbnNlLmhhbCBiL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwKaW5kZXggMjNjNGQ0MS4uNGE5YmU1OSAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL0lSYWRpb1Jlc3BvbnNlLmhhbAorKysgYi9yYWRpby8xLjAvSVJhZGlvUmVzcG9uc2UuaGFsCkBAIC0xMDIsOCArMTAyLDEzIEBACiAgICAgICoKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKLSAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRSAocmFkaW8gcmVzZXR0aW5nKQogICAgICAqICAgUmFkaW9FcnJvcjpQQVNTV09SRF9JTkNPUlJFQ1QgKGNvZGUgaXMgaW52YWxpZCkKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU0lNX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqLwogICAgIG9uZXdheSBzdXBwbHlOZXR3b3JrRGVwZXJzb25hbGl6YXRpb25SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBpbnQzMl90IHJlbWFpbmluZ1JldHJpZXMpOwogCkBAIC0zMjgsNiArMzMzLDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldFNpZ25hbFN0cmVuZ3RoUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgU2lnbmFsU3RyZW5ndGggc2lnU3RyZW5ndGgpOwogCkBAIC0zNTEsNiArMzYyLDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldERhdGFSZWdpc3RyYXRpb25TdGF0ZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sCiAgICAgICAgICAgICBEYXRhUmVnU3RhdGVSZXN1bHQgZGF0YVJlZ1Jlc3BvbnNlKTsKQEAgLTM2NCw2ICszODEsMTAgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldE9wZXJhdG9yUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgc3RyaW5nIGxvbmdOYW1lLCBzdHJpbmcgc2hvcnROYW1lLAogICAgICAgICAgICAgc3RyaW5nIG51bWVyaWMpOwpAQCAtMzc1LDYgKzM5NiwxNiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU1RBVEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpERVZJQ0VfSU5fVVNFCisgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX01PREVNX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRSYWRpb1Bvd2VyUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTQ2NCw2ICs0OTUsOCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpPUF9OT1RfQUxMT1dFRF9CRUZPUkVfUkVHX1RPX05XCiAgICAgICogICBSYWRpb0Vycm9yOk9QX05PVF9BTExPV0VEX0RVUklOR19WT0lDRV9DQUxMCiAgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0dXBEYXRhQ2FsbFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIFNldHVwRGF0YUNhbGxSZXN1bHQgZGNSZXNwb25zZSk7CiAKQEAgLTY5Miw2ICs3MjUsMTAgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0NBTExfSUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZGVhY3RpdmF0ZURhdGFDYWxsUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTc2NSw2ICs4MDIsMTIgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXROZXR3b3JrU2VsZWN0aW9uTW9kZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIGJvb2wgbWFudWFsKTsKIApAQCAtNzc2LDYgKzgxOSwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOklMTEVHQUxfU0lNX09SX01FCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqCiAgICAgICogUmV0dXJucyBSYWRpb0Vycm9yOklMTEVHQUxfU0lNX09SX01FIHdoZW4gdGhlIGZhaWx1cmUgaXMgcGVybWFuZW50IGFuZAogICAgICAqIG5vIHJldHJpZXMgbmVlZGVkLCBzdWNoIGFzIGlsbGVnYWwgU0lNIG9yIE1FLgpAQCAtNzkwLDYgKzgzOSwxMyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOklMTEVHQUxfU0lNX09SX01FCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICoKICAgICAgKiBSZXR1cm5zIFJhZGlvRXJyb3I6SUxMRUdBTF9TSU1fT1JfTUUgd2hlbiB0aGUgZmFpbHVyZSBpcyBwZXJtYW5lbnQgYW5kCiAgICAgICogbm8gcmV0cmllcyBuZWVkZWQsIHN1Y2ggYXMgaWxsZWdhbCBTSU0gb3IgTUUuCkBAIC04MTAsNiArODY2LDggQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCiAgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQogICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOkNBTkNFTExFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRBdmFpbGFibGVOZXR3b3Jrc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sCiAgICAgICAgICAgICB2ZWM8T3BlcmF0b3JJbmZvPiBuZXR3b3JrSW5mb3MpOwpAQCAtODU4LDYgKzkxNiwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6RU1QVFlfUkVDT1JECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRCYXNlYmFuZFZlcnNpb25SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBzdHJpbmcgdmVyc2lvbik7CiAKQEAgLTEwMDYsNiArMTA3MCwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldEJhbmRNb2RlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTEwMTcsNiArMTA4NywxMSBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0QXZhaWxhYmxlQmFuZE1vZGVzUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgdmVjPFJhZGlvQmFuZE1vZGU+IGJhbmRNb2Rlcyk7CiAKQEAgLTEwNDksOSArMTEyNCwxMSBAQAogICAgICAqCiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCi0gICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwotICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKICAgICAgKi8KICAgICBvbmV3YXkgaGFuZGxlU3RrQ2FsbFNldHVwUmVxdWVzdEZyb21TaW1SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTA4Myw2ICsxMTYwLDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECiAgICAgICogICBSYWRpb0Vycm9yOk1PREVfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRQcmVmZXJyZWROZXR3b3JrVHlwZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMDkzLDYgKzExNzYsMTIgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRQcmVmZXJyZWROZXR3b3JrVHlwZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sCiAgICAgICAgICAgICBQcmVmZXJyZWROZXR3b3JrVHlwZSBud1R5cGUpOwpAQCAtMTEwNSw2ICsxMTk0LDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PX05FVFdPUktfRk9VTkQKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldE5laWdoYm9yaW5nQ2lkc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHZlYzxOZWlnaGJvcmluZ0NlbGw+IGNlbGxzKTsKIApAQCAtMTExNCw2ICsxMjA5LDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0TG9jYXRpb25VcGRhdGVzUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTExMzQsNiArMTIzNSwxMyBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRDZG1hUm9hbWluZ1ByZWZlcmVuY2VSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTE0NSw2ICsxMjUzLDExIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRDZG1hUm9hbWluZ1ByZWZlcmVuY2VSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBDZG1hUm9hbWluZ1R5cGUgdHlwZSk7CiAKQEAgLTE0MjQsNiArMTUzNywxMyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6U1VCU0NSSVBUSU9OX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldENETUFTdWJzY3JpcHRpb25SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBzdHJpbmcgbWRuLCBzdHJpbmcgaFNpZCwKICAgICAgICAgICAgIHN0cmluZyBoTmlkLCBzdHJpbmcgbWluLCBzdHJpbmcgcHJsKTsKQEAgLTE0ODAsNiArMTYwMCwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECiAgICAgICoKICAgICAgKiBJZiBhIGVtcHR5IHN0cmluZyB2YWx1ZSBpcyByZXR1cm5lZCBmb3IgYW55IG9mIHRoZSBkZXZpY2UgaWQsIGl0IG1lYW5zIHRoYXQgdGhlcmUgd2FzIGVycm9yCiAgICAgICogYWNjZXNzaW5nIHRoZSBkZXZpY2UuCkBAIC0xNDk1LDYgKzE2MjEsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT19BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGV4aXRFbWVyZ2VuY3lDYWxsYmFja01vZGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTYyMiw2ICsxNzU0LDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19ORVRXT1JLX0ZPVU5ECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRDZWxsSW5mb0xpc3RSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCB2ZWM8Q2VsbEluZm8+IGNlbGxJbmZvKTsKIApAQCAtMTYzMSw2ICsxNzY5LDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCiAgICAgICovCiAgICAgb25ld2F5IHNldENlbGxJbmZvTGlzdFJhdGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTY0MSw2ICsxNzgzLDEzIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpTVUJTQ1JJUFRJT05fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0SW5pdGlhbEF0dGFjaEFwblJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xNzcxLDYgKzE5MjAsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOlNVQlNDUklQVElPTl9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldFVpY2NTdWJzY3JpcHRpb25SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTc4MCw2ICsxOTM1LDEzIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpERVZJQ0VfSU5fVVNFCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfTU9ERU1fU1RBVEUKICAgICAgKi8KICAgICBvbmV3YXkgc2V0RGF0YUFsbG93ZWRSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTgyMCw2ICsxOTgyLDEwIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSByZXF1ZXN0U2h1dGRvd25SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTgzMSw2ICsxOTk3LDggQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRSYWRpb0NhcGFiaWxpdHlSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBSYWRpb0NhcGFiaWxpdHkgcmMpOwogCkBAIC0xODQzLDYgKzIwMTEsMTMgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORSBtZWFucyBhIHVuc29sIHJhZGlvQ2FwYWJpbGl0eSgpIHdpbGwgYmUgc2VudCB3aXRoaW4gMzAgc2Vjb25kcy4KICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRSYWRpb0NhcGFiaWxpdHlSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBSYWRpb0NhcGFiaWxpdHkgcmMpOwogCkBAIC0xODU0LDYgKzIwMjksOCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6TENFX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzdGFydExjZVNlcnZpY2VSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBMY2VTdGF0dXNJbmZvIHN0YXR1c0luZm8pOwogCkBAIC0xODg2LDYgKzIwNjMsMTEgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAogICAgICAqLwogICAgIG9uZXdheSBnZXRNb2RlbUFjdGl2aXR5SW5mb1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIEFjdGl2aXR5U3RhdHNJbmZvIGFjdGl2aXR5SW5mbyk7CiAKQEAgLTE5MjYsNiArMjEwOCwxMSBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2VuZERldmljZVN0YXRlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE5MzYsNiArMjEyMywxMCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRJbmRpY2F0aW9uRmlsdGVyUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2ljYy5jcHAKaW5kZXggMTU0N2MzMy4uNmFmNWZiYSAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2ljYy5jcHAKKysrIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2ljYy5jcHAKQEAgLTMxNiw4ICszMTYsMTMgQEAKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKKyAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlNZU1RFTV9FUlIgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PX01FTU9SWSB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6TU9ERU1fRVJSIHx8CiAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAotICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6UEFTU1dPUkRfSU5DT1JSRUNUKTsKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfU0lNX1NUQVRFIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpQQVNTV09SRF9JTkNPUlJFQ1QgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVEVSTkFMX0VSUik7CiAgIH0KIH0KZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9taXNjLmNwcCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9taXNjLmNwcAppbmRleCA2ODc5YzkwLi5lYWMzNWY3IDEwMDY0NAotLS0gYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAKKysrIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX21pc2MuY3BwCkBAIC0xNDMsMTUgKzE0MywxNyBAQAogCiAgIHJhZGlvLT5nZXRBdmFpbGFibGVOZXR3b3JrcygrK3NlcmlhbCk7CiAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKLSAgRVhQRUNUX0VRKFJhZGlvUmVzcG9uc2VUeXBlOjpTT0xJQ0lURUQsIHJhZGlvUnNwLT5yc3BJbmZvLnR5cGUpOwogICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOworICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby50eXBlID09IFJhZGlvUmVzcG9uc2VUeXBlOjpTT0xJQ0lURUQgfHwKKyAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8udHlwZSA9PSBSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVEX0FDS19FWFApOwogCiAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAotICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAotICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6REVWSUNFX0lOX1VTRSB8fAotICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Q0FOQ0VMTEVEIHx8Ci0gICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpPUEVSQVRJT05fTk9UX0FMTE9XRUQpOworICAgICAgQVNTRVJUX1RSVUUoCisgICAgICAgICAgQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CisgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6REVWSUNFX0lOX1VTRSB8fAorICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OkNBTkNFTExFRCB8fAorICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok9QRVJBVElPTl9OT1RfQUxMT1dFRCB8fAorICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUik7CiAgIH0KIH0KIApAQCAtNTU2LDcgKzU1OCw3IEBACiBURVNUX0YoUmFkaW9IaWRsVGVzdCwgbnZSZXNldENvbmZpZykgewogICBpbnQgc2VyaWFsID0gMTsKIAotICByYWRpby0+bnZSZXNldENvbmZpZygrK3NlcmlhbCwgUmVzZXROdlR5cGU6OlJFTE9BRCk7CisgIHJhZGlvLT5udlJlc2V0Q29uZmlnKCsrc2VyaWFsLCBSZXNldE52VHlwZTo6RVJBU0UpOwogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVELCByYWRpb1JzcC0+cnNwSW5mby50eXBlKTsKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKQEAgLTczMyw2ICs3MzUsOCBAQAogVEVTVF9GKFJhZGlvSGlkbFRlc3QsIHNldEFsbG93ZWRDYXJyaWVycykgewogICBpbnQgc2VyaWFsID0gMTsKICAgQ2FycmllclJlc3RyaWN0aW9ucyBjYXJyaWVyczsKKworICAvKiBDYXJyaWVyIHJlc3RyaWN0aW9uIHdpdGggb25lIGNhcnJpZXIgKi8KICAgbWVtc2V0KCZjYXJyaWVycywgMCwgc2l6ZW9mKGNhcnJpZXJzKSk7CiAgIGNhcnJpZXJzLmFsbG93ZWRDYXJyaWVycy5yZXNpemUoMSk7CiAgIGNhcnJpZXJzLmV4Y2x1ZGVkQ2FycmllcnMucmVzaXplKDApOwpAQCAtNzQ5LDYgKzc1MywyMCBAQAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKICAgfQorCisgIC8qIFJlc2V0IGJhY2sgdG8gbm8gY2FycmllciByZXN0cmljdGlvbiAqLworICBtZW1zZXQoJmNhcnJpZXJzLCAwLCBzaXplb2YoY2FycmllcnMpKTsKKyAgY2FycmllcnMuYWxsb3dlZENhcnJpZXJzLnJlc2l6ZSgwKTsKKyAgY2FycmllcnMuZXhjbHVkZWRDYXJyaWVycy5yZXNpemUoMCk7CisKKyAgcmFkaW8tPnNldEFsbG93ZWRDYXJyaWVycygrK3NlcmlhbCwgdHJ1ZSwgY2FycmllcnMpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUShSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVELCByYWRpb1JzcC0+cnNwSW5mby50eXBlKTsKKyAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKKworICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKKyAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOworICB9CiB9CiAKIC8qCkBAIC04MTMsNyArODMxLDcgQEAKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlJFUVVFU1RfTk9UX1NVUFBPUlRFRCk7CisgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORQorICAgICAgICB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpSRVFVRVNUX05PVF9TVVBQT1JURUQpOwogICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3N0ay5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcAppbmRleCBiMDJhNzQwLi4zODU4YzkwIDEwMDY0NAotLS0gYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcAorKysgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcApAQCAtOTgsNyArOTgsMTIgQEAKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICBFWFBFQ1RfRVEoUmFkaW9FcnJvcjo6Tk9ORSwgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpOworICAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6U1lTVEVNX0VSUiB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9fTUVNT1JZIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfQVJHVU1FTlRTIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlRFUk5BTF9FUlIpOwogICB9CiB9CiAKZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF91dGlscy5oIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3V0aWxzLmgKaW5kZXggNzM1ZTU3NS4uOTIzZTFlMyAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3V0aWxzLmgKKysrIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3V0aWxzLmgKQEAgLTgwLDcgKzgwLDcgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7CiB1c2luZyA6OmFuZHJvaWQ6OnNwOwogCi0jZGVmaW5lIFRJTUVPVVRfUEVSSU9EIDQwCisjZGVmaW5lIFRJTUVPVVRfUEVSSU9EIDY1CiAjZGVmaW5lIFJBRElPX1NFUlZJQ0VfTkFNRSAic2xvdDEiCiAKIGNsYXNzIFJhZGlvSGlkbFRlc3Q7CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvc2FwX2hpZGxfaGFsX2FwaS5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvc2FwX2hpZGxfaGFsX2FwaS5jcHAKaW5kZXggNjgyMjMwYy4uM2FjODkxZCAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3NhcF9oaWRsX2hhbF9hcGkuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9zYXBfaGlkbF9oYWxfYXBpLmNwcApAQCAtNTEsNyArNTEsOCBAQAogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShzYXBDYi0+c2FwUmVzcG9uc2VUb2tlbiwgdG9rZW4pOwogCi0gIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkNBUkRfTk9UX0FDQ0VTU1NJQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkdFTkVSSUNfRkFJTFVSRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX05PVF9BQ0NFU1NTSUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX0FMUkVBRFlfUE9XRVJFRF9PRkYgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9SRU1PVkVEID09IHNhcENiLT5zYXBSZXN1bHRDb2RlKTsKIH0KQEAgLTY2LDcgKzY3LDggQEAKICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOwogICBFWFBFQ1RfRVEoc2FwQ2ItPnNhcFJlc3BvbnNlVG9rZW4sIHRva2VuKTsKIAotICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpEQVRBX05PVF9BVkFJTEFCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6R0VORVJJQ19GQUlMVVJFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkRBVEFfTk9UX0FWQUlMQUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX0FMUkVBRFlfUE9XRVJFRF9PRkYgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9SRU1PVkVEID09IHNhcENiLT5zYXBSZXN1bHRDb2RlKTsKIH0KQEAgLTgyLDcgKzg0LDggQEAKICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOwogICBFWFBFQ1RfRVEoc2FwQ2ItPnNhcFJlc3BvbnNlVG9rZW4sIHRva2VuKTsKIAotICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpDQVJEX05PVF9BQ0NFU1NTSUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpHRU5FUklDX0ZBSUxVUkUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9OT1RfQUNDRVNTU0lCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9BTFJFQURZX1BPV0VSRURfT0ZGID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfUkVNT1ZFRCA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX0FMUkVBRFlfUE9XRVJFRF9PTiA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSk7CkBAIC05OCw3ICsxMDEsOCBAQAogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShzYXBDYi0+c2FwUmVzcG9uc2VUb2tlbiwgdG9rZW4pOwogCi0gIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkNBUkRfTk9UX0FDQ0VTU1NJQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkdFTkVSSUNfRkFJTFVSRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX05PVF9BQ0NFU1NTSUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX0FMUkVBRFlfUE9XRVJFRF9PRkYgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9SRU1PVkVEID09IHNhcENiLT5zYXBSZXN1bHRDb2RlKTsKIH0KQEAgLTExMyw3ICsxMTcsOCBAQAogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShzYXBDYi0+c2FwUmVzcG9uc2VUb2tlbiwgdG9rZW4pOwogCi0gIEVYUEVDVF9FUShTYXBSZXN1bHRDb2RlOjpEQVRBX05PVF9BVkFJTEFCTEUsIHNhcENiLT5zYXBSZXN1bHRDb2RlKTsKKyAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6R0VORVJJQ19GQUlMVVJFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkRBVEFfTk9UX0FWQUlMQUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c01pc2NlbGxhbmVvdXNUZXN0cy5jcHAgYi9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c01pc2NlbGxhbmVvdXNUZXN0cy5jcHAKaW5kZXggMjNiMDlhYy4uMjc4ZGJmMyAxMDA2NDQKLS0tIGEvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNNaXNjZWxsYW5lb3VzVGVzdHMuY3BwCisrKyBiL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzTWlzY2VsbGFuZW91c1Rlc3RzLmNwcApAQCAtMTc1LDYgKzE3NSw4IEBACiAgICAgQVNTRVJUX05FKE5hdGl2ZVdpbmRvdygwKSwgbmF0aXZlV2luZG93KTsKIAogICAgICgoQU5hdGl2ZVdpbmRvdyAqKW5hdGl2ZVdpbmRvdyktPmluY1N0cm9uZyhudWxscHRyKTsKKyAgICBuYXRpdmVfd2luZG93X2FwaV9jb25uZWN0KChBTmF0aXZlV2luZG93KiluYXRpdmVXaW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQVRJVkVfV0lORE9XX0FQSV9DUFUpOwogCiAgICAgY29udGV4dC0+YWxsb2NhdGlvblNldE5hdGl2ZVdpbmRvdyhhbGxvY2F0aW9uU2VuZCwgbmF0aXZlV2luZG93KTsKICAgICBjb250ZXh0LT5hbGxvY2F0aW9uMkRXcml0ZShhbGxvY2F0aW9uU2VuZCwgMCwgMCwgMCwgQWxsb2NhdGlvbkN1YmVtYXBGYWNlOjpQT1NJVElWRV9YLCA1MTIsIDUxMiwKQEAgLTIzOSw2ICsyNDEsOCBAQAogICAgIEVYUEVDVF9FUShuYXRpdmVXaW5kb3cyLCBuYXRpdmVXaW5kb3cxKTsKIAogICAgICgoQU5hdGl2ZVdpbmRvdyAqKW5hdGl2ZVdpbmRvdzEpLT5pbmNTdHJvbmcobnVsbHB0cik7CisgICAgbmF0aXZlX3dpbmRvd19hcGlfY29ubmVjdCgoQU5hdGl2ZVdpbmRvdyopbmF0aXZlV2luZG93MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BVElWRV9XSU5ET1dfQVBJX0NQVSk7CiAKICAgICBjb250ZXh0LT5hbGxvY2F0aW9uU2V0TmF0aXZlV2luZG93KGFsbG9jYXRpb25TZW5kLCBuYXRpdmVXaW5kb3cxKTsKICAgICBjb250ZXh0LT5hbGxvY2F0aW9uMkRXcml0ZShhbGxvY2F0aW9uU2VuZCwgMCwgMCwgMCwgQWxsb2NhdGlvbkN1YmVtYXBGYWNlOjpQT1NJVElWRV9YLCA1MTIsIDUxMiwKZGlmZiAtLWdpdCBhL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzU2NyaXB0VGVzdHMuY3BwIGIvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNTY3JpcHRUZXN0cy5jcHAKaW5kZXggZmVkN2M2ZS4uODI2OGRjYyAxMDA2NDQKLS0tIGEvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNTY3JpcHRUZXN0cy5jcHAKKysrIGIvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNTY3JpcHRUZXN0cy5jcHAKQEAgLTMyMywyNyArMzIzLDMwIEBACiAKIC8qCiAgKiBUaGlzIHRlc3QgZ3JvdXBzIHRvZ2V0aGVyIHR3byBSZW5kZXJTY3JpcHQgaW50cmluc2ljIGtlcm5lbHMgdG8gcnVuIG9uZSBhZnRlcgotICogdGhlIG90aGVyIGFzeW5jaHJvbm91c2x5IHdpdGggcmVzcGVjdCB0byB0aGUgY2xpZW50LiBUaGUgdGVzdCBjb25maWd1cmVzIFl1dlRvUkdCKEEpIGFuZCBCbHVyLAotICogYW5kIGxpbmtzIHRoZW0gdG9nZXRoZXIgc3VjaCB0aGF0IEJsdXIgd2lsbCBleGVjdXRlIGFmdGVyIFl1dlRvUkdCKEEpIGFuZCB1c2UgaXRzIHJlc3VsdC4gVGhlCi0gKiB0ZXN0IGNoZWNrcyB0aGUgZGF0YSByZXR1cm5lZCB0byBtYWtlIHN1cmUgaXQgd2FzIGNoYW5nZWQgYWZ0ZXIgcGFzc2luZyB0aHJvdWdoIHRoZSBlbnRpcmUKLSAqIFNjcmlwdEdyb3VwLgorICogdGhlIG90aGVyIGFzeW5jaHJvbm91c2x5IHdpdGggcmVzcGVjdCB0byB0aGUgY2xpZW50LiBUaGUgdGVzdCBjb25maWd1cmVzCisgKiBCbGVuZCBhbmQgQmx1ciwgYW5kIGxpbmtzIHRoZW0gdG9nZXRoZXIgc3VjaCB0aGF0IEJsdXIgd2lsbCBleGVjdXRlIGFmdGVyCisgKiBCbGVuZCBhbmQgdXNlIGl0cyByZXN1bHQuIFRoZSB0ZXN0IGNoZWNrcyB0aGUgZGF0YSByZXR1cm5lZCB0byBtYWtlIHN1cmUgaXQKKyAqIHdhcyBjaGFuZ2VkIGFmdGVyIHBhc3NpbmcgdGhyb3VnaCB0aGUgZW50aXJlIFNjcmlwdEdyb3VwLgogICoKICAqIENhbGxzOiBlbGVtZW50Q3JlYXRlLCB0eXBlQ3JlYXRlLCBhbGxvY2F0aW9uQ3JlYXRlVHlwZWQsIGFsbG9jYXRpb24yRFdyaXRlLAogICogc2NyaXB0SW50cmluc2ljQ3JlYXRlLCBzY3JpcHRLZXJuZWxJRENyZWF0ZSwgc2NyaXB0RmllbGRJRENyZWF0ZSwKLSAqIHNjcmlwdEdyb3VwQ3JlYXRlLCBzY3JpcHRTZXRWYXJPYmosIHNjcmlwdEdyb3VwU2V0T3V0cHV0LCBzY3JpcHRHcm91cEV4ZWN1dGUsCi0gKiBjb250ZXh0RmluaXNoLCBhbGxvY2F0aW9uMkRSZWFkCisgKiBzY3JpcHRHcm91cENyZWF0ZSwgc2NyaXB0R3JvdXBTZXRJbnB1dCwgc2NyaXB0R3JvdXBTZXRPdXRwdXQsCisgKiBzY3JpcHRHcm91cEV4ZWN1dGUsIGNvbnRleHRGaW5pc2gsIGFsbG9jYXRpb24yRFJlYWQKICAqLwogVEVTVF9GKFJlbmRlcnNjcmlwdEhpZGxUZXN0LCBTY3JpcHRHcm91cFRlc3QpIHsKLSAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBkYXRhSW4oMjU2KjI1NioxLCAxMjgpLCBkYXRhT3V0KDI1NioyNTYqNCwgMCksIHplcm9zKDI1NioyNTYqNCwgMCk7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gZGF0YUluKDI1NiAqIDI1NiAqIDQsIDEyOCksIGRhdGFPdXQoMjU2ICogMjU2ICogNCwgMCksCisgICAgICAgIHplcm9zKDI1NiAqIDI1NiAqIDQsIDApOwogICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IF9kYXRhSW4sIF9kYXRhT3V0OwogICAgIF9kYXRhSW4uc2V0VG9FeHRlcm5hbChkYXRhSW4uZGF0YSgpLCBkYXRhSW4uc2l6ZSgpKTsKICAgICBfZGF0YU91dC5zZXRUb0V4dGVybmFsKGRhdGFPdXQuZGF0YSgpLCBkYXRhT3V0LnNpemUoKSk7CiAKICAgICAvLyAyNTYgeCAyNTYgWVVWIHBpeGVscwotICAgIEVsZW1lbnQgZWxlbWVudDEgPSBjb250ZXh0LT5lbGVtZW50Q3JlYXRlKERhdGFUeXBlOjpVTlNJR05FRF84LCBEYXRhS2luZDo6UElYRUxfWVVWLCB0cnVlLCAxKTsKKyAgICBFbGVtZW50IGVsZW1lbnQxID0gY29udGV4dC0+ZWxlbWVudENyZWF0ZShEYXRhVHlwZTo6VU5TSUdORURfOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhS2luZDo6UElYRUxfUkdCQSwgdHJ1ZSwgNCk7CiAgICAgQVNTRVJUX05FKEVsZW1lbnQoMCksIGVsZW1lbnQxKTsKIAotICAgIFR5cGUgdHlwZTEgPSBjb250ZXh0LT50eXBlQ3JlYXRlKGVsZW1lbnQxLCAyNTYsIDI1NiwgMCwgZmFsc2UsIGZhbHNlLCBZdXZGb3JtYXQ6OllVVl80MjBfODg4KTsKKyAgICBUeXBlIHR5cGUxID0gY29udGV4dC0+dHlwZUNyZWF0ZShlbGVtZW50MSwgMjU2LCAyNTYsIDAsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZdXZGb3JtYXQ6OllVVl9OT05FKTsKICAgICBBU1NFUlRfTkUoVHlwZSgwKSwgdHlwZTEpOwogCiAgICAgQWxsb2NhdGlvbiBhbGxvY2F0aW9uMSA9IGNvbnRleHQtPmFsbG9jYXRpb25DcmVhdGVUeXBlZCh0eXBlMSwgQWxsb2NhdGlvbk1pcG1hcENvbnRyb2w6Ok5PTkUsCkBAIC0zNzAsMTEgKzM3MywxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhT3V0LCAwKTsKIAogICAgIC8vIGNyZWF0ZSBzY3JpcHRzCi0gICAgU2NyaXB0IHl1djJyZ2IgPSBjb250ZXh0LT5zY3JpcHRJbnRyaW5zaWNDcmVhdGUoU2NyaXB0SW50cmluc2ljSUQ6OklEX1lVVl9UT19SR0IsIGVsZW1lbnQxKTsKLSAgICBBU1NFUlRfTkUoU2NyaXB0KDApLCB5dXYycmdiKTsKKyAgICBTY3JpcHQgYmxlbmQgPQorICAgICAgICBjb250ZXh0LT5zY3JpcHRJbnRyaW5zaWNDcmVhdGUoU2NyaXB0SW50cmluc2ljSUQ6OklEX0JMRU5ELCBlbGVtZW50MSk7CisgICAgQVNTRVJUX05FKFNjcmlwdCgwKSwgYmxlbmQpOwogCi0gICAgU2NyaXB0S2VybmVsSUQgeXV2MnJnYktJRCA9IGNvbnRleHQtPnNjcmlwdEtlcm5lbElEQ3JlYXRlKHl1djJyZ2IsIDAsIDIpOwotICAgIEFTU0VSVF9ORShTY3JpcHRLZXJuZWxJRCgwKSwgeXV2MnJnYktJRCk7CisgICAgU2NyaXB0S2VybmVsSUQgYmxlbmRLSUQgPSBjb250ZXh0LT5zY3JpcHRLZXJuZWxJRENyZWF0ZShibGVuZCwgMSwgMyk7CisgICAgQVNTRVJUX05FKFNjcmlwdEtlcm5lbElEKDApLCBibGVuZEtJRCk7CiAKICAgICBTY3JpcHQgYmx1ciA9IGNvbnRleHQtPnNjcmlwdEludHJpbnNpY0NyZWF0ZShTY3JpcHRJbnRyaW5zaWNJRDo6SURfQkxVUiwgZWxlbWVudDIpOwogICAgIEFTU0VSVF9ORShTY3JpcHQoMCksIGJsdXIpOwpAQCAtMzg2LDE1ICszOTAsMTUgQEAKICAgICBBU1NFUlRfTkUoU2NyaXB0RmllbGRJRCgwKSwgYmx1ckZJRCk7CiAKICAgICAvLyBTY3JpcHRHcm91cAotICAgIGhpZGxfdmVjPFNjcmlwdEtlcm5lbElEPiBrZXJuZWxzID0ge3l1djJyZ2JLSUQsIGJsdXJLSUR9OwotICAgIGhpZGxfdmVjPFNjcmlwdEtlcm5lbElEPiBzcmNLID0ge3l1djJyZ2JLSUR9OworICAgIGhpZGxfdmVjPFNjcmlwdEtlcm5lbElEPiBrZXJuZWxzID0ge2JsZW5kS0lELCBibHVyS0lEfTsKKyAgICBoaWRsX3ZlYzxTY3JpcHRLZXJuZWxJRD4gc3JjSyA9IHtibGVuZEtJRH07CiAgICAgaGlkbF92ZWM8U2NyaXB0S2VybmVsSUQ+IGRzdEsgPSB7U2NyaXB0S2VybmVsSUQoMCl9OwogICAgIGhpZGxfdmVjPFNjcmlwdEZpZWxkSUQ+IGRzdEYgPSB7Ymx1ckZJRH07CiAgICAgaGlkbF92ZWM8VHlwZT4gdHlwZXMgPSB7dHlwZTJ9OwogICAgIFNjcmlwdEdyb3VwIHNjcmlwdEdyb3VwID0gY29udGV4dC0+c2NyaXB0R3JvdXBDcmVhdGUoa2VybmVscywgc3JjSywgZHN0SywgZHN0RiwgdHlwZXMpOwogICAgIEFTU0VSVF9ORShTY3JpcHRHcm91cCgwKSwgc2NyaXB0R3JvdXApOwogCi0gICAgY29udGV4dC0+c2NyaXB0U2V0VmFyT2JqKHl1djJyZ2IsIDAsIChPYmplY3RCYXNlKWFsbG9jYXRpb24xKTsKKyAgICBjb250ZXh0LT5zY3JpcHRHcm91cFNldElucHV0KHNjcmlwdEdyb3VwLCBibGVuZEtJRCwgYWxsb2NhdGlvbjEpOwogICAgIGNvbnRleHQtPnNjcmlwdEdyb3VwU2V0T3V0cHV0KHNjcmlwdEdyb3VwLCBibHVyS0lELCBhbGxvY2F0aW9uMik7CiAgICAgY29udGV4dC0+c2NyaXB0R3JvdXBFeGVjdXRlKHNjcmlwdEdyb3VwKTsKICAgICBjb250ZXh0LT5jb250ZXh0RmluaXNoKCk7CmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9BbmRyb2lkLmJwIGIvc2Vuc29ycy8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmNmNGE3Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVNlbnNvcnMuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvU2Vuc29yc0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSUh3U2Vuc29ycy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvQm5Id1NlbnNvcnMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0JwSHdTZW5zb3JzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9Cc1NlbnNvcnMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9BbmRyb2lkLm1rIGIvc2Vuc29ycy8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODUyOGE5Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQwIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnMtVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTZW5zb3JzLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oYWwgYi9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ0MWRlMgotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmhhbApAQCAtMCwwICsxLDE5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDsKKworaW50ZXJmYWNlIElTZW5zb3JzIHsKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGUgYWxsIGF2YWlsYWJsZSAoc3RhdGljKSBzZW5zb3JzLgorICAgICAqLworICAgIGdldFNlbnNvcnNMaXN0KCkgZ2VuZXJhdGVzICh2ZWM8U2Vuc29ySW5mbz4gbGlzdCk7CisKKyAgICAvKioKKyAgICAgKiBQbGFjZSB0aGUgbW9kdWxlIGluIGEgc3BlY2lmaWMgbW9kZS4gVGhlIGZvbGxvd2luZyBtb2RlcyBhcmUgZGVmaW5lZAorICAgICAqCisgICAgICogIFNFTlNPUl9IQUxfTk9STUFMX01PREUgLSBOb3JtYWwgb3BlcmF0aW9uLiBEZWZhdWx0IHN0YXRlIG9mIHRoZSBtb2R1bGUuCisgICAgICoKKyAgICAgKiAgU0VOU09SX0hBTF9EQVRBX0lOSkVDVElPTl9NT0RFIC0gTG9vcGJhY2sgbW9kZS4KKyAgICAgKiAgICBEYXRhIGlzIGluamVjdGVkIGZvciB0aGUgc3VwcG9ydGVkIHNlbnNvcnMgYnkgdGhlIHNlbnNvciBzZXJ2aWNlIGluCisgICAgICogICAgdGhpcyBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiBPSyBvbiBzdWNjZXNzCisgICAgICogICAgICAgICBCQURfVkFMVUUgaWYgcmVxdWVzdGVkIG1vZGUgaXMgbm90IHN1cHBvcnRlZAorICAgICAqICAgICAgICAgUEVSTUlTU0lPTl9ERU5JRUQgaWYgb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCisgICAgICovCisgICAgc2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlIG1vZGUpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBBY3RpdmF0ZS9kZS1hY3RpdmF0ZSBvbmUgc2Vuc29yLgorICAgICAqCisgICAgICogQWZ0ZXIgc2Vuc29yIGRlLWFjdGl2YXRpb24sIGV4aXN0aW5nIHNlbnNvciBldmVudHMgdGhhdCBoYXZlIG5vdAorICAgICAqIGJlZW4gcGlja2VkIHVwIGJ5IHBvbGwoKSBtdXN0IGJlIGFiYW5kb25lZCBpbW1lZGlhdGVseSBzbyB0aGF0CisgICAgICogc3Vic2VxdWVudCBhY3RpdmF0aW9uIHdpbGwgbm90IGdldCBzdGFsZSBzZW5zb3IgZXZlbnRzIChldmVudHMKKyAgICAgKiB0aGF0IGFyZSBnZW5lcmF0ZWQgcHJpb3IgdG8gdGhlIGxhdHRlciBhY3RpdmF0aW9uKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgc2Vuc29ySGFuZGxlIGlzIHRoZSBoYW5kbGUgb2YgdGhlIHNlbnNvciB0byBjaGFuZ2UuCisgICAgICogQHBhcmFtICBlbmFibGVkIHNldCB0byB0cnVlIHRvIGVuYWJsZSwgb3IgZmFsc2UgdG8gZGlzYWJsZSB0aGUgc2Vuc29yLgorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgb24gc3VjY2VzcywgQkFEX1ZBTFVFIGlmIHNlbnNvckhhbmRsZSBpcyBpbnZhbGlkLgorICAgICAqLworICAgIGFjdGl2YXRlKGludDMyX3Qgc2Vuc29ySGFuZGxlLCBib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZSBhIHZlY3RvciBvZiBzZW5zb3IgZXZlbnRzIGNvbnRhaW5pbmcgYXQgbW9zdCAibWF4Q291bnQiCisgICAgICogZW50cmllcy4KKyAgICAgKgorICAgICAqIEFkZGl0aW9uYWxseSBhIHZlY3RvciBvZiBTZW5zb3JJbmZvcyBpcyByZXR1cm5lZCBmb3IgYW55IGR5bmFtaWMgc2Vuc29ycworICAgICAqIGNvbm5lY3RlZCBhcyBub3RpZmllZCBieSByZXR1cm5lZCBldmVudHMgb2YgdHlwZSBEWU5BTUlDX1NFTlNPUl9NRVRBLgorICAgICAqCisgICAgICogSWYgdGhlcmUgaXMgbm8gc2Vuc29yIGV2ZW50IHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBjYWxsZWQsIGJsb2NrCisgICAgICogdW50aWwgdGhlcmUgYXJlIHNlbnNvciBldmVudHMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQHBhcmFtICBtYXhDb3VudCBtYXggbnVtYmVyIG9mIHNhbXBsZXMgY2FuIGJlIHJldHVybmVkLCBtdXN0IGJlID4gMC4KKyAgICAgKiAgICAgICAgIEFjdHVhbCBudW1iZXIgb2YgZXZlbnRzIHJldHVybmVkIGluIGRhdGEgbXVzdCBiZSA8PSBtYXhDb3VudAorICAgICAqICAgICAgICAgYW5kID4gMC4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzIG9yIEJBRF9WQUxVRSBpZiBtYXhDb3VudCA8PSAwLgorICAgICAqIEByZXR1cm4gZGF0YSB2ZWN0b3Igb2YgRXZlbnQgY29udGFpbnMgc2Vuc29yIGV2ZW50cy4KKyAgICAgKiBAcmV0dXJuIGR5bmFtaWNTZW5zb3JzQWRkZWQgdmVjdG9yIG9mIFNlbnNvckluZm8gY29udGFpbnMgZHluYW1pYyBzZW5zb3IKKyAgICAgKiAgICAgICAgIGFkZGVkLiBFYWNoIGVsZW1lbnQgY29ycmVzcG9uZHMgdG8gYSBkeW5hbWljIHNlbnNvciBtZXRhIGV2ZW50cworICAgICAqICAgICAgICAgaW4gZGF0YS4KKyAgICAgKi8KKyAgICBwb2xsKGludDMyX3QgbWF4Q291bnQpCisgICAgICAgIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICB2ZWM8RXZlbnQ+IGRhdGEsCisgICAgICAgICAgICAgICAgdmVjPFNlbnNvckluZm8+IGR5bmFtaWNTZW5zb3JzQWRkZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyBhIHNlbnNvcuKAmXMgcGFyYW1ldGVycywgaW5jbHVkaW5nIHNhbXBsaW5nIGZyZXF1ZW5jeSBhbmQgbWF4aW11bQorICAgICAqIHJlcG9ydCBsYXRlbmN5LiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgd2hpbGUgdGhlIHNlbnNvciBpcworICAgICAqIGFjdGl2YXRlZCwgaW4gd2hpY2ggY2FzZSBpdCBtdXN0IG5vdCBjYXVzZSBhbnkgc2Vuc29yIG1lYXN1cmVtZW50cyB0bworICAgICAqIGJlIGxvc3Q6IHRyYW5zaXRpb25pbmcgZnJvbSBvbmUgc2FtcGxpbmcgcmF0ZSB0byB0aGUgb3RoZXIgY2Fubm90IGNhdXNlCisgICAgICogbG9zdCBldmVudHMsIG5vciBjYW4gdHJhbnNpdGlvbmluZyBmcm9tIGEgaGlnaCBtYXhpbXVtIHJlcG9ydCBsYXRlbmN5IHRvCisgICAgICogYSBsb3cgbWF4aW11bSByZXBvcnQgbGF0ZW5jeS4KKyAgICAgKiBTZWUgdGhlIEJhdGNoaW5nIHNlbnNvciByZXN1bHRzIHBhZ2UgZm9yIGRldGFpbHM6CisgICAgICogaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL3NlbnNvcnMvYmF0Y2hpbmcuaHRtbAorICAgICAqCisgICAgICogQHBhcmFtICBzZW5zb3JIYW5kbGUgaGFuZGxlIG9mIHNlbnNvciB0byBiZSBjaGFuZ2VkLgorICAgICAqIEBwYXJhbSAgc2FtcGxpbmdQZXJpb2ROcyBzcGVjaWZpZXMgc2Vuc29yIHNhbXBsZSBwZXJpb2QgaW4gbmFub3NlY29uZHMuCisgICAgICogQHBhcmFtICBtYXhSZXBvcnRMYXRlbmN5TnMgYWxsb3dlZCBkZWxheSB0aW1lIGJlZm9yZSBhbiBldmVudCBpcyBzYW1wbGVkCisgICAgICogICAgICAgICB0byB0aW1lIG9mIHJlcG9ydC4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQuCisgICAgICovCisgICAgYmF0Y2goaW50MzJfdCBzZW5zb3JIYW5kbGUsCisgICAgICAgICAgaW50NjRfdCBzYW1wbGluZ1BlcmlvZE5zLAorICAgICAgICAgIGludDY0X3QgbWF4UmVwb3J0TGF0ZW5jeU5zKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVHJpZ2dlciBhIGZsdXNoIG9mIGludGVybmFsIEZJRk8uCisgICAgICoKKyAgICAgKiBGbHVzaCBhZGRzIGEgRkxVU0hfQ09NUExFVEUgbWV0YWRhdGEgZXZlbnQgdG8gdGhlIGVuZCBvZiB0aGUgImJhdGNoIG1vZGUiCisgICAgICogRklGTyBmb3IgdGhlIHNwZWNpZmllZCBzZW5zb3IgYW5kIGZsdXNoZXMgdGhlIEZJRk8uICBJZiB0aGUgRklGTyBpcyBlbXB0eQorICAgICAqIG9yIGlmIHRoZSBzZW5zb3IgZG9lc24ndCBzdXBwb3J0IGJhdGNoaW5nIChGSUZPIHNpemUgemVybyksIHJldHVybgorICAgICAqIFNVQ0NFU1MgYW5kIGFkZCBhIHRyaXZpYWwgRkxVU0hfQ09NUExFVEUgZXZlbnQgYWRkZWQgdG8gdGhlIGV2ZW50IHN0cmVhbS4KKyAgICAgKiBUaGlzIGFwcGxpZXMgdG8gYWxsIHNlbnNvcnMgb3RoZXIgdGhhbiBvbmUtc2hvdCBzZW5zb3JzLiBJZiB0aGUgc2Vuc29yCisgICAgICogaXMgYSBvbmUtc2hvdCBzZW5zb3IsIGZsdXNoIG11c3QgcmV0dXJuIEJBRF9WQUxVRSBhbmQgbm90IGdlbmVyYXRlIGFueQorICAgICAqIGZsdXNoIGNvbXBsZXRlIG1ldGFkYXRhLiAgSWYgdGhlIHNlbnNvciBpcyBub3QgYWN0aXZlIGF0IHRoZSB0aW1lIGZsdXNoKCkKKyAgICAgKiBpcyBjYWxsZWQsIGZsdXNoKCkgcmV0dXJuIEJBRF9WQUxVRS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIHNlbnNvckhhbmRsZSBoYW5kbGUgb2Ygc2Vuc29yIHRvIGJlIGZsdXNoZWQuCisgICAgICogQHJldHVybiAgcmVzdWx0IE9LIG9uIHN1Y2Nlc3MgYW5kIEJBRF9WQUxVRSBpZiBzZW5zb3JIYW5kbGUgaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBmbHVzaChpbnQzMl90IHNlbnNvckhhbmRsZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIEluamVjdCBhIHNpbmdsZSBzZW5zb3IgZXZlbnQgb3IgcHVzaCBvcGVyYXRpb24gZW52aXJvbm1lbnQgcGFyYW1ldGVycyB0bworICAgICAqIGRldmljZS4KKyAgICAgKgorICAgICAqIFdoZW4gZGV2aWNlIGlzIGluIE5PUk1BTCBtb2RlLCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBwdXNoIG9wZXJhdGlvbgorICAgICAqIGVudmlyb25tZW50IGRhdGEgdG8gZGV2aWNlLiBJbiB0aGlzIG9wZXJhdGlvbiwgRXZlbnQgaXMgYWx3YXlzIG9mCisgICAgICogU2Vuc29yVHlwZTo6QWRkaXRpb25hbEluZm8gdHlwZS4gU2VlIG9wZXJhdGlvbiBldmlyb25tZW50IHBhcmFtZXRlcnMKKyAgICAgKiBzZWN0aW9uIGluIEFkZGl0aW9uYWxJbmZvVHlwZS4KKyAgICAgKgorICAgICAqIFdoZW4gZGV2aWNlIGlzIGluIERBVEFfSU5KRUNUSU9OIG1vZGUsIHRoaXMgZnVuY3Rpb24gaXMgYWxzbyB1c2VkIGZvcgorICAgICAqIGluamVjdGluZyBzZW5zb3IgZXZlbnRzLgorICAgICAqCisgICAgICogUmVnYXJkbGVzcyBvZiBPcGVyYXRpb25Nb2RlLCBpbmplY3RlZCBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk8KKyAgICAgKiB0eXBlIGV2ZW50cyBzaG91bGQgbm90IGJlIHJvdXRlZCBiYWNrIHRvIHBvbGwoKSBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBzZWUgQWRkaXRpb25hbEluZm9UeXBlCisgICAgICogQHNlZSBPcGVyYXRpb25Nb2RlCisgICAgICogQHBhcmFtICAgZXZlbnQgc2Vuc29yIGV2ZW50IHRvIGJlIGluamVjdGVkCisgICAgICogQHJldHVybiAgcmVzdWx0IE9LIG9uIHN1Y2Nlc3M7IFBFUk1JU1NJT05fREVOSUVEIGlmIG9wZXJhdGlvbiBpcyBub3QKKyAgICAgKiAgICAgICAgICBhbGxvd2VkOyBJTlZBTElEX09QRVJBVElPTiwgaWYgdGhpcyBmdW5jdGlvbmFsaXR5IGlzCisgICAgICogICAgICAgICAgdW5zdXBwb3J0ZWQ7IEJBRF9WQUxVRSBpZiBzZW5zb3IgZXZlbnQgY2Fubm90IGJlIGluamVjdGVkLgorICAgICAqLworICAgIGluamVjdFNlbnNvckRhdGEoRXZlbnQgZXZlbnQpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBkaXJlY3QgcmVwb3J0IGNoYW5uZWwuCisgICAgICoKKyAgICAgKiBSZWdpc3RlciBhIGRpcmVjdCBjaGFubmVsIHdpdGggc3VwcGxpZWQgc2hhcmVkIG1lbW9yeSBpbmZvcm1hdGlvbi4gVXBvbgorICAgICAqIHJldHVybiwgdGhlIHNlbnNvciBoYXJkd2FyZSBpcyByZXNwb25zaWJsZSBmb3IgcmVzZXR0aW5nIHRoZSBtZW1vcnkKKyAgICAgKiBjb250ZW50IHRvIGluaXRpYWwgdmFsdWUgKGRlcGVuZGluZyBvbiBtZW1vcnkgZm9ybWF0IHNldHRpbmdzKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIG1lbSBzaGFyZWQgbWVtb3J5IGluZm8gZGF0YSBzdHJ1Y3R1cmUuCisgICAgICogQHJldHVybiAgcmVzdWx0IE9LIG9uIHN1Y2Nlc3M7IEJBRF9WQUxVRSBpZiBzaGFyZWQgbWVtb3J5IGluZm9ybWF0aW9uIGlzCisgICAgICogICAgICAgICAgbm90IGNvbnNpc3RlbnQ7IE5PX01FTU9SWSBpZiBzaGFyZWQgbWVtb3J5IGNhbm5vdCBiZSB1c2VkIGJ5CisgICAgICogICAgICAgICAgc2Vuc29yIHN5c3RlbTsgSU5WQUxJRF9PUEVSQVRJT04gaWYgZnVuY3Rpb25hbGl0eSBpcyBub3QKKyAgICAgKiAgICAgICAgICBzdXBwb3J0ZWQuCisgICAgICogQHJldHVybiAgY2hhbm5lbEhhbmRsZSBhIHBvc2l0aXZlIGludGVnZXIgdXNlZCBmb3IgcmVmZXJlbmNpbmcgcmVnaXN0ZXJlZAorICAgICAqICAgICAgICAgIGRpcmVjdCBjaGFubmVsICg+MCkgaW4gY29uZmlndXJlRGlyZWN0UmVwb3J0IGFuZAorICAgICAqICAgICAgICAgIHVucmVnaXN0ZXJEaXJlY3RDaGFubmVsIGlmIHJlc3VsdCBpcyBPSywgLTEgb3RoZXJ3aXNlLgorICAgICAqLworICAgIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChTaGFyZWRNZW1JbmZvIG1lbSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgaW50MzJfdCBjaGFubmVsSGFuZGxlKTsKKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgZGlyZWN0IHJlcG9ydCBjaGFubmVsLgorICAgICAqCisgICAgICogVW5yZWdpc3RlciBhIGRpcmVjdCBjaGFubmVsIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB1c2luZworICAgICAqIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCwgYW5kIHJlbW92ZSBhbGwgYWN0aXZlIHNlbnNvciByZXBvcnQgY29uZmlndXJlZCBpbgorICAgICAqIHN0aWxsIGFjdGl2ZSBzZW5zb3IgcmVwb3J0IGNvbmZpZ3VyZWQgaW4gdGhlIGRpcmVjdCBjaGFubmVsLgorICAgICAqCisgICAgICogQHBhcmFtICAgY2hhbm5lbEhhbmRsZSBoYW5kbGUgb2YgZGlyZWN0IGNoYW5uZWwgdG8gYmUgdW5yZWdpc3RlcmVkLgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBPSyBpZiBkaXJlY3QgcmVwb3J0IGlzIHN1cHBvcnRlZDsgSU5WQUxJRF9PUEVSQVRJT04KKyAgICAgKiAgICAgICAgICBvdGhlcndpc2UuCisgICAgICovCisgICAgdW5yZWdpc3RlckRpcmVjdENoYW5uZWwoaW50MzJfdCBjaGFubmVsSGFuZGxlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJlIGRpcmVjdCBzZW5zb3IgZXZlbnQgcmVwb3J0IGluIGRpcmVjdCBjaGFubmVsLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBzdGFydCwgbW9kaWZ5IHJhdGUgb3Igc3RvcCBkaXJlY3QgcmVwb3J0IG9mIGEgc2Vuc29yIGluIGEKKyAgICAgKiBjZXJ0YWluIGRpcmVjdCBjaGFubmVsLgorICAgICAqCisgICAgICogQHBhcmFtICAgc2Vuc29ySGFuZGxlIGhhbmRsZSBvZiBzZW5zb3IgdG8gYmUgY29uZmlndXJlZC4gV2hlbiBjb21iaW5lZAorICAgICAqICAgICAgICAgIHdpdGggU1RPUCByYXRlLCBzZW5zb3JIYW5kbGUgY2FuIGJlIC0xIHRvIGRlbm90ZSBhbGwgYWN0aXZlCisgICAgICogICAgICAgICAgc2Vuc29ycyBpbiB0aGUgZGlyZWN0IGNoYW5uZWwgc3BlY2lmaWVkIGJ5IGNoYW5uZWwgSGFuZGxlLgorICAgICAqIEBwYXJhbSAgIGNoYW5uZWxIYW5kbGUgaGFuZGxlIG9mIGRpcmVjdCBjaGFubmVsIHRvIGJlIGNvbmZpZ3VyZWQuCisgICAgICogQHBhcmFtICAgcmF0ZSByYXRlIGxldmVsLCBzZWUgUmF0ZUxldmVsIGVudW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICByZXN1bHQgT0sgb24gc3VjY2VzczsgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlciBpcyBpbnZhbGlkIChzdWNoIGFzCisgICAgICogICAgICAgICAgcmF0ZSBsZXZlbCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHNlbnNvciwgY2hhbm5lbEhhbmRsZSBkb2VzIG5vdAorICAgICAqICAgICAgICAgIGV4aXN0LCBldGMpOyBJTlZBTElEX09QRVJBVElPTiBpZiBmdW5jdGlvbmFsaXR5IGlzIG5vdAorICAgICAqICAgICAgICAgIHN1cHBvcnRlZC4KKyAgICAgKiBAcmV0dXJuICByZXBvcnRUb2tlbiBwb3NpdGl2ZSBpbnRlZ2VyIHRvIGlkZW50aWZ5IG11bHRpcGxlIHNlbnNvcnMgb2YKKyAgICAgKiAgICAgICAgICB0aGUgc2FtZSB0eXBlIGluIGEgc2luZ2xlIGRpcmVjdCBjaGFubmVsLiBJZ25vcmVkIGlmIHJhdGUgaXMKKyAgICAgKiAgICAgICAgICBTVE9QLiBTZWUgU2hhcmVkTWVtRm9ybWF0LgorICAgICAqLworICAgIGNvbmZpZ0RpcmVjdFJlcG9ydCgKKyAgICAgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLCBpbnQzMl90IGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbCByYXRlKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCBpbnQzMl90IHJlcG9ydFRva2VuKTsKK307CmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE0NDU5MAotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDQzIEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlNlbnNvcnMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtY29udmVydCIsCisgICAgICAgICJtdWx0aWhhbCIsCisgICAgXSwKKyAgICBsb2NhbF9pbmNsdWRlX2RpcnM6IFsiaW5jbHVkZS9zZW5zb3JzIl0sCit9CisKK2NjX2xpYnJhcnlfc3RhdGljIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1jb252ZXJ0IiwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbImNvbnZlcnQuY3BwIl0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyJpbmNsdWRlIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAiLAorICAgIF0sCisgICAgbG9jYWxfaW5jbHVkZV9kaXJzOiBbImluY2x1ZGUvc2Vuc29ycyJdLAorfQorCisKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTE0NTQyCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjMgQEAKK0xPQ0FMX1BBVEg6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgICAgIGxpYmxvZyBcCisgICAgICAgIGxpYmN1dGlscyBcCisgICAgICAgIGxpYmRsIFwKKyAgICAgICAgbGliYmFzZSBcCisgICAgICAgIGxpYnV0aWxzIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgICAgIGxpYmhpZGxiYXNlIFwKKyAgICAgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvU2Vuc29ycy5jcHAgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L1NlbnNvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMDBkZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L1NlbnNvcnMuY3BwCkBAIC0wLDAgKzEsMzYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIlNlbnNvcnMuaCIKKyNpbmNsdWRlICJjb252ZXJ0LmgiCisjaW5jbHVkZSAibXVsdGloYWwuaCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNlbnNvcnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLyoKKyAqIElmIGEgbXVsdGktaGFsIGNvbmZpZ3VyYXRpb24gZmlsZSBleGlzdHMgaW4gdGhlIHByb3BlciBsb2NhdGlvbiwKKyAqIHJldHVybiB0cnVlIGluZGljYXRpbmcgd2UgbmVlZCB0byB1c2UgbXVsdGktaGFsIGZ1bmN0aW9uYWxpdHkuCisgKi8KK3N0YXRpYyBib29sIFVzZU11bHRpSGFsKCkgeworICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gTVVMVElfSEFMX0NPTkZJR19GSUxFX1BBVEg7CisgICAgc3RydWN0IHN0YXQgYnVmZmVyOworICAgIHJldHVybiAoc3RhdCAobmFtZS5jX3N0cigpLCAmYnVmZmVyKSA9PSAwKTsKK30KKworc3RhdGljIFJlc3VsdCBSZXN1bHRGcm9tU3RhdHVzKHN0YXR1c190IGVycikgeworICAgIHN3aXRjaCAoZXJyKSB7CisgICAgICAgIGNhc2UgT0s6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICAgICAgY2FzZSBQRVJNSVNTSU9OX0RFTklFRDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OlBFUk1JU1NJT05fREVOSUVEOworICAgICAgICBjYXNlIE5PX01FTU9SWToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok5PX01FTU9SWTsKKyAgICAgICAgY2FzZSBCQURfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfVkFMVUU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX09QRVJBVElPTjsKKyAgICB9Cit9CisKK1NlbnNvcnM6OlNlbnNvcnMoKQorICAgIDogbUluaXRDaGVjayhOT19JTklUKSwKKyAgICAgIG1TZW5zb3JNb2R1bGUobnVsbHB0ciksCisgICAgICBtU2Vuc29yRGV2aWNlKG51bGxwdHIpIHsKKyAgICBzdGF0dXNfdCBlcnIgPSBPSzsKKyAgICBpZiAoVXNlTXVsdGlIYWwoKSkgeworICAgICAgICBtU2Vuc29yTW9kdWxlID0gOjpnZXRfbXVsdGlfaGFsX21vZHVsZV9pbmZvKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXJyID0gaHdfZ2V0X21vZHVsZSgKKyAgICAgICAgICAgIFNFTlNPUlNfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgKGh3X21vZHVsZV90IGNvbnN0ICoqKSZtU2Vuc29yTW9kdWxlKTsKKyAgICB9CisgICAgaWYgKG1TZW5zb3JNb2R1bGUgPT0gTlVMTCkgeworICAgICAgICBlcnIgPSBVTktOT1dOX0VSUk9SOworICAgIH0KKworICAgIGlmIChlcnIgIT0gT0spIHsKKyAgICAgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgbG9hZCAiCisgICAgICAgICAgICAgICAgICAgPDwgU0VOU09SU19IQVJEV0FSRV9NT0RVTEVfSUQKKyAgICAgICAgICAgICAgICAgICA8PCAiIG1vZHVsZSAoIgorICAgICAgICAgICAgICAgICAgIDw8IHN0cmVycm9yKC1lcnIpCisgICAgICAgICAgICAgICAgICAgPDwgIikiOworCisgICAgICAgIG1Jbml0Q2hlY2sgPSBlcnI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlcnIgPSBzZW5zb3JzX29wZW5fMSgmbVNlbnNvck1vZHVsZS0+Y29tbW9uLCAmbVNlbnNvckRldmljZSk7CisKKyAgICBpZiAoZXJyICE9IE9LKSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gZGV2aWNlIGZvciBtb2R1bGUgIgorICAgICAgICAgICAgICAgICAgIDw8IFNFTlNPUlNfSEFSRFdBUkVfTU9EVUxFX0lECisgICAgICAgICAgICAgICAgICAgPDwgIiAoIgorICAgICAgICAgICAgICAgICAgIDw8IHN0cmVycm9yKC1lcnIpCisgICAgICAgICAgICAgICAgICAgPDwgIikiOworCisgICAgICAgIG1Jbml0Q2hlY2sgPSBlcnI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBSZXF1aXJlIGFsbCB0aGUgb2xkIEhBTCBBUElzIHRvIGJlIHByZXNlbnQgZXhjZXB0IGZvciBpbmplY3Rpb24sIHdoaWNoCisgICAgLy8gaXMgY29uc2lkZXJlZCBvcHRpb25hbC4KKyAgICBDSEVDS19HRShnZXRIYWxEZXZpY2VWZXJzaW9uKCksIFNFTlNPUlNfREVWSUNFX0FQSV9WRVJTSU9OXzFfMyk7CisKKyAgICBpZiAoZ2V0SGFsRGV2aWNlVmVyc2lvbigpID09IFNFTlNPUlNfREVWSUNFX0FQSV9WRVJTSU9OXzFfNCkgeworICAgICAgICBpZiAobVNlbnNvckRldmljZS0+aW5qZWN0X3NlbnNvcl9kYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwgIkhBTCBzcGVjaWZpZXMgdmVyc2lvbiAxLjQsIGJ1dCBkb2VzIG5vdCBpbXBsZW1lbnQgaW5qZWN0X3NlbnNvcl9kYXRhKCkiOworICAgICAgICB9CisgICAgICAgIGlmIChtU2Vuc29yTW9kdWxlLT5zZXRfb3BlcmF0aW9uX21vZGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgTE9HKEVSUk9SKSA8PCAiSEFMIHNwZWNpZmllcyB2ZXJzaW9uIDEuNCwgYnV0IGRvZXMgbm90IGltcGxlbWVudCBzZXRfb3BlcmF0aW9uX21vZGUoKSI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtSW5pdENoZWNrID0gT0s7Cit9CisKK3N0YXR1c190IFNlbnNvcnM6OmluaXRDaGVjaygpIGNvbnN0IHsKKyAgICByZXR1cm4gbUluaXRDaGVjazsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnM6OmdldFNlbnNvcnNMaXN0KGdldFNlbnNvcnNMaXN0X2NiIF9oaWRsX2NiKSB7CisgICAgc2Vuc29yX3QgY29uc3QgKmxpc3Q7CisgICAgc2l6ZV90IGNvdW50ID0gbVNlbnNvck1vZHVsZS0+Z2V0X3NlbnNvcnNfbGlzdChtU2Vuc29yTW9kdWxlLCAmbGlzdCk7CisKKyAgICBoaWRsX3ZlYzxTZW5zb3JJbmZvPiBvdXQ7CisgICAgb3V0LnJlc2l6ZShjb3VudCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgY29uc3Qgc2Vuc29yX3QgKnNyYyA9ICZsaXN0W2ldOworICAgICAgICBTZW5zb3JJbmZvICpkc3QgPSAmb3V0W2ldOworCisgICAgICAgIGNvbnZlcnRGcm9tU2Vuc29yKCpzcmMsIGRzdCk7CisgICAgfQorCisgICAgX2hpZGxfY2Iob3V0KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK2ludCBTZW5zb3JzOjpnZXRIYWxEZXZpY2VWZXJzaW9uKCkgY29uc3QgeworICAgIGlmICghbVNlbnNvckRldmljZSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIG1TZW5zb3JEZXZpY2UtPmNvbW1vbi52ZXJzaW9uOworfQorCitSZXR1cm48UmVzdWx0PiBTZW5zb3JzOjpzZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGUgbW9kZSkgeworICAgIGlmIChnZXRIYWxEZXZpY2VWZXJzaW9uKCkgPCBTRU5TT1JTX0RFVklDRV9BUElfVkVSU0lPTl8xXzQKKyAgICAgICAgICAgIHx8IG1TZW5zb3JNb2R1bGUtPnNldF9vcGVyYXRpb25fbW9kZSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0RnJvbVN0YXR1cyhtU2Vuc29yTW9kdWxlLT5zZXRfb3BlcmF0aW9uX21vZGUoKHVpbnQzMl90KW1vZGUpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yczo6YWN0aXZhdGUoCisgICAgICAgIGludDMyX3Qgc2Vuc29yX2hhbmRsZSwgYm9vbCBlbmFibGVkKSB7CisgICAgcmV0dXJuIFJlc3VsdEZyb21TdGF0dXMoCisgICAgICAgICAgICBtU2Vuc29yRGV2aWNlLT5hY3RpdmF0ZSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHNlbnNvcnNfcG9sbF9kZXZpY2VfdCAqPihtU2Vuc29yRGV2aWNlKSwKKyAgICAgICAgICAgICAgICBzZW5zb3JfaGFuZGxlLAorICAgICAgICAgICAgICAgIGVuYWJsZWQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnM6OnBvbGwoaW50MzJfdCBtYXhDb3VudCwgcG9sbF9jYiBfaGlkbF9jYikgeworCisgICAgaGlkbF92ZWM8RXZlbnQ+IG91dDsKKyAgICBoaWRsX3ZlYzxTZW5zb3JJbmZvPiBkeW5hbWljU2Vuc29yc0FkZGVkOworCisgICAgc3RkOjp1bmlxdWVfcHRyPHNlbnNvcnNfZXZlbnRfdFtdPiBkYXRhOworICAgIGludCBlcnIgPSBhbmRyb2lkOjpOT19FUlJPUjsKKworICAgIHsgLy8gc2NvcGUgb2YgcmVlbnRyeSBsb2NrCisKKyAgICAgICAgLy8gVGhpcyBlbmZvcmNlcyBhIHNpbmdsZSBjbGllbnQsIG1lYW5pbmcgdGhhdCBhIG1heGltdW0gb2Ygb25lIGNsaWVudCBjYW4gY2FsbCBwb2xsKCkuCisgICAgICAgIC8vIElmIHRoaXMgZnVuY3Rpb24gaXMgcmUtZW50cmVkLCBpdCBtZWFucyB0aGF0IHdlIGFyZSBzdHVjayBpbiBhIHN0YXRlIHRoYXQgbWF5IHByZXZlbnQKKyAgICAgICAgLy8gdGhlIHN5c3RlbSBmcm9tIHByb2NlZWRpbmcgbm9ybWFsbHkuCisgICAgICAgIC8vCisgICAgICAgIC8vIEV4aXQgYW5kIGxldCB0aGUgc3lzdGVtIHJlc3RhcnQgdGhlIHNlbnNvci1oYWwtaW1wbGVtZW50YXRpb24gaGlkbCBzZXJ2aWNlLgorICAgICAgICAvLworICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IGNhbGwgX2hpZGxfY2IoLi4uKSBvciByZXR1cm4gdW50aWwgdGhlcmUgaXMgbm8gcmlzayBvZiBibG9ja2luZy4KKyAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Qb2xsTG9jaywgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgICAgIGlmKCFsb2NrLm93bnNfbG9jaygpKXsKKyAgICAgICAgICAgIC8vIGNhbm5vdCBnZXQgdGhlIGxvY2ssIGhpZGwgc2VydmljZSB3aWxsIGdvIGludG8gZGVhZGxvY2sgaWYgaXQgaXMgbm90IHJlc3RhcnRlZC4KKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZ3VhcmFudGVlZCB0byBub3QgdHJpZ2dlciBpbiBwYXNzdGhyb3VnaCBtb2RlLgorICAgICAgICAgICAgTE9HKEVSUk9SKSA8PAorICAgICAgICAgICAgICAgICAgICAiSVNlbnNvcnM6OnBvbGwoKSByZS1lbnRyeS4gSSBkbyBub3Qga25vdyB3aGF0IHRvIGRvIGV4Y2VwdCBraWxsaW5nIG15c2VsZi4iOworICAgICAgICAgICAgOjpleGl0KC0xKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtYXhDb3VudCA8PSAwKSB7CisgICAgICAgICAgICBlcnIgPSBhbmRyb2lkOjpCQURfVkFMVUU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgYnVmZmVyU2l6ZSA9IG1heENvdW50IDw9IGtQb2xsTWF4QnVmZmVyU2l6ZSA/IG1heENvdW50IDoga1BvbGxNYXhCdWZmZXJTaXplOworICAgICAgICAgICAgZGF0YS5yZXNldChuZXcgc2Vuc29yc19ldmVudF90W2J1ZmZlclNpemVdKTsKKyAgICAgICAgICAgIGVyciA9IG1TZW5zb3JEZXZpY2UtPnBvbGwoCisgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8c2Vuc29yc19wb2xsX2RldmljZV90ICo+KG1TZW5zb3JEZXZpY2UpLAorICAgICAgICAgICAgICAgICAgICBkYXRhLmdldCgpLCBidWZmZXJTaXplKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChlcnIgPCAwKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdEZyb21TdGF0dXMoZXJyKSwgb3V0LCBkeW5hbWljU2Vuc29yc0FkZGVkKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBjb25zdCBzaXplX3QgY291bnQgPSAoc2l6ZV90KWVycjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBpZiAoZGF0YVtpXS50eXBlICE9IFNFTlNPUl9UWVBFX0RZTkFNSUNfU0VOU09SX01FVEEpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZHluYW1pY19zZW5zb3JfbWV0YV9ldmVudF90ICpkeW4gPSAmZGF0YVtpXS5keW5hbWljX3NlbnNvcl9tZXRhOworCisgICAgICAgIGlmICghZHluLT5jb25uZWN0ZWQpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgQ0hFQ0soZHluLT5zZW5zb3IgIT0gbnVsbHB0cik7CisgICAgICAgIENIRUNLX0VRKGR5bi0+c2Vuc29yLT5oYW5kbGUsIGR5bi0+aGFuZGxlKTsKKworICAgICAgICBTZW5zb3JJbmZvIGluZm87CisgICAgICAgIGNvbnZlcnRGcm9tU2Vuc29yKCpkeW4tPnNlbnNvciwgJmluZm8pOworCisgICAgICAgIHNpemVfdCBudW1EeW5hbWljU2Vuc29ycyA9IGR5bmFtaWNTZW5zb3JzQWRkZWQuc2l6ZSgpOworICAgICAgICBkeW5hbWljU2Vuc29yc0FkZGVkLnJlc2l6ZShudW1EeW5hbWljU2Vuc29ycyArIDEpOworICAgICAgICBkeW5hbWljU2Vuc29yc0FkZGVkW251bUR5bmFtaWNTZW5zb3JzXSA9IGluZm87CisgICAgfQorCisgICAgb3V0LnJlc2l6ZShjb3VudCk7CisgICAgY29udmVydEZyb21TZW5zb3JFdmVudHMoZXJyLCBkYXRhLmdldCgpLCAmb3V0KTsKKworICAgIF9oaWRsX2NiKFJlc3VsdDo6T0ssIG91dCwgZHluYW1pY1NlbnNvcnNBZGRlZCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTZW5zb3JzOjpiYXRjaCgKKyAgICAgICAgaW50MzJfdCBzZW5zb3JfaGFuZGxlLAorICAgICAgICBpbnQ2NF90IHNhbXBsaW5nX3BlcmlvZF9ucywKKyAgICAgICAgaW50NjRfdCBtYXhfcmVwb3J0X2xhdGVuY3lfbnMpIHsKKyAgICByZXR1cm4gUmVzdWx0RnJvbVN0YXR1cygKKyAgICAgICAgICAgIG1TZW5zb3JEZXZpY2UtPmJhdGNoKAorICAgICAgICAgICAgICAgIG1TZW5zb3JEZXZpY2UsCisgICAgICAgICAgICAgICAgc2Vuc29yX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAwLCAvKmZsYWdzKi8KKyAgICAgICAgICAgICAgICBzYW1wbGluZ19wZXJpb2RfbnMsCisgICAgICAgICAgICAgICAgbWF4X3JlcG9ydF9sYXRlbmN5X25zKSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnM6OmZsdXNoKGludDMyX3Qgc2Vuc29yX2hhbmRsZSkgeworICAgIHJldHVybiBSZXN1bHRGcm9tU3RhdHVzKG1TZW5zb3JEZXZpY2UtPmZsdXNoKG1TZW5zb3JEZXZpY2UsIHNlbnNvcl9oYW5kbGUpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yczo6aW5qZWN0U2Vuc29yRGF0YShjb25zdCBFdmVudCYgZXZlbnQpIHsKKyAgICBpZiAoZ2V0SGFsRGV2aWNlVmVyc2lvbigpIDwgU0VOU09SU19ERVZJQ0VfQVBJX1ZFUlNJT05fMV80CisgICAgICAgICAgICB8fCBtU2Vuc29yRGV2aWNlLT5pbmplY3Rfc2Vuc29yX2RhdGEgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBzZW5zb3JzX2V2ZW50X3Qgb3V0OworICAgIGNvbnZlcnRUb1NlbnNvckV2ZW50KGV2ZW50LCAmb3V0KTsKKworICAgIHJldHVybiBSZXN1bHRGcm9tU3RhdHVzKAorICAgICAgICAgICAgbVNlbnNvckRldmljZS0+aW5qZWN0X3NlbnNvcl9kYXRhKG1TZW5zb3JEZXZpY2UsICZvdXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnM6OnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbCgKKyAgICAgICAgY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtLCByZWdpc3RlckRpcmVjdENoYW5uZWxfY2IgX2hpZGxfY2IpIHsKKyAgICBpZiAobVNlbnNvckRldmljZS0+cmVnaXN0ZXJfZGlyZWN0X2NoYW5uZWwgPT0gbnVsbHB0cgorICAgICAgICAgICAgfHwgbVNlbnNvckRldmljZS0+Y29uZmlnX2RpcmVjdF9yZXBvcnQgPT0gbnVsbHB0cikgeworICAgICAgICAvLyBIQUwgZG9lcyBub3Qgc3VwcG9ydAorICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfT1BFUkFUSU9OLCAtMSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc2Vuc29yc19kaXJlY3RfbWVtX3QgbTsKKyAgICBpZiAoIWNvbnZlcnRGcm9tU2hhcmVkTWVtSW5mbyhtZW0sICZtKSkgeworICAgICAgX2hpZGxfY2IoUmVzdWx0OjpCQURfVkFMVUUsIC0xKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGVyciA9IG1TZW5zb3JEZXZpY2UtPnJlZ2lzdGVyX2RpcmVjdF9jaGFubmVsKG1TZW5zb3JEZXZpY2UsICZtLCAtMSk7CisKKyAgICBpZiAoZXJyIDwgMCkgeworICAgICAgICBfaGlkbF9jYihSZXN1bHRGcm9tU3RhdHVzKGVyciksIC0xKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQzMl90IGNoYW5uZWxIYW5kbGUgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6Ok9LLCBjaGFubmVsSGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yczo6dW5yZWdpc3RlckRpcmVjdENoYW5uZWwoaW50MzJfdCBjaGFubmVsSGFuZGxlKSB7CisgICAgaWYgKG1TZW5zb3JEZXZpY2UtPnJlZ2lzdGVyX2RpcmVjdF9jaGFubmVsID09IG51bGxwdHIKKyAgICAgICAgICAgIHx8IG1TZW5zb3JEZXZpY2UtPmNvbmZpZ19kaXJlY3RfcmVwb3J0ID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gSEFMIGRvZXMgbm90IHN1cHBvcnQKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgbVNlbnNvckRldmljZS0+cmVnaXN0ZXJfZGlyZWN0X2NoYW5uZWwobVNlbnNvckRldmljZSwgbnVsbHB0ciwgY2hhbm5lbEhhbmRsZSk7CisKKyAgICByZXR1cm4gUmVzdWx0OjpPSzsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnM6OmNvbmZpZ0RpcmVjdFJlcG9ydCgKKyAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGludDMyX3QgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsIHJhdGUsCisgICAgICAgIGNvbmZpZ0RpcmVjdFJlcG9ydF9jYiBfaGlkbF9jYikgeworICAgIGlmIChtU2Vuc29yRGV2aWNlLT5yZWdpc3Rlcl9kaXJlY3RfY2hhbm5lbCA9PSBudWxscHRyCisgICAgICAgICAgICB8fCBtU2Vuc29yRGV2aWNlLT5jb25maWdfZGlyZWN0X3JlcG9ydCA9PSBudWxscHRyKSB7CisgICAgICAgIC8vIEhBTCBkb2VzIG5vdCBzdXBwb3J0CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6SU5WQUxJRF9PUEVSQVRJT04sIC0xKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzZW5zb3JzX2RpcmVjdF9jZmdfdCBjZmcgPSB7CisgICAgICAgIC5yYXRlX2xldmVsID0gY29udmVydEZyb21SYXRlTGV2ZWwocmF0ZSkKKyAgICB9OworICAgIGlmIChjZmcucmF0ZV9sZXZlbCA8IDApIHsKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpCQURfVkFMVUUsIC0xKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZXJyID0gbVNlbnNvckRldmljZS0+Y29uZmlnX2RpcmVjdF9yZXBvcnQobVNlbnNvckRldmljZSwKKyAgICAgICAgICAgIHNlbnNvckhhbmRsZSwgY2hhbm5lbEhhbmRsZSwgJmNmZyk7CisKKyAgICBpZiAocmF0ZSA9PSBSYXRlTGV2ZWw6OlNUT1ApIHsKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0RnJvbVN0YXR1cyhlcnIpLCAtMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgX2hpZGxfY2IoZXJyID4gMCA/IFJlc3VsdDo6T0sgOiBSZXN1bHRGcm9tU3RhdHVzKGVyciksIGVycik7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTZW5zb3JzOjpjb252ZXJ0RnJvbVNlbnNvckV2ZW50cygKKyAgICAgICAgc2l6ZV90IGNvdW50LAorICAgICAgICBjb25zdCBzZW5zb3JzX2V2ZW50X3QgKnNyY0FycmF5LAorICAgICAgICBoaWRsX3ZlYzxFdmVudD4gKmRzdFZlYykgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBzZW5zb3JzX2V2ZW50X3QgJnNyYyA9IHNyY0FycmF5W2ldOworICAgICAgICBFdmVudCAqZHN0ID0gJigqZHN0VmVjKVtpXTsKKworICAgICAgICBjb252ZXJ0RnJvbVNlbnNvckV2ZW50KHNyYywgZHN0KTsKKyAgICB9Cit9CisKK0lTZW5zb3JzICpISURMX0ZFVENIX0lTZW5zb3JzKGNvbnN0IGNoYXIgKiAvKiBoYWwgKi8pIHsKKyAgICBTZW5zb3JzICpzZW5zb3JzID0gbmV3IFNlbnNvcnM7CisgICAgaWYgKHNlbnNvcnMtPmluaXRDaGVjaygpICE9IE9LKSB7CisgICAgICAgIGRlbGV0ZSBzZW5zb3JzOworICAgICAgICBzZW5zb3JzID0gbnVsbHB0cjsKKworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gc2Vuc29yczsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvU2Vuc29ycy5oIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9TZW5zb3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUwMGE5NgotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvU2Vuc29ycy5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfU0VOU09SU19IXworCisjZGVmaW5lIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfU0VOU09SU19IXworCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9zZW5zb3JzLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Ugc2Vuc29ycyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKK3N0cnVjdCBTZW5zb3JzIDogcHVibGljIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OklTZW5zb3JzIHsKKyAgICBTZW5zb3JzKCk7CisKKyAgICBzdGF0dXNfdCBpbml0Q2hlY2soKSBjb25zdDsKKworICAgIFJldHVybjx2b2lkPiBnZXRTZW5zb3JzTGlzdChnZXRTZW5zb3JzTGlzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGUgbW9kZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBhY3RpdmF0ZSgKKyAgICAgICAgICAgIGludDMyX3Qgc2Vuc29yX2hhbmRsZSwgYm9vbCBlbmFibGVkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBwb2xsKGludDMyX3QgbWF4Q291bnQsIHBvbGxfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gYmF0Y2goCisgICAgICAgICAgICBpbnQzMl90IHNlbnNvcl9oYW5kbGUsCisgICAgICAgICAgICBpbnQ2NF90IHNhbXBsaW5nX3BlcmlvZF9ucywKKyAgICAgICAgICAgIGludDY0X3QgbWF4X3JlcG9ydF9sYXRlbmN5X25zKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGZsdXNoKGludDMyX3Qgc2Vuc29yX2hhbmRsZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBpbmplY3RTZW5zb3JEYXRhKGNvbnN0IEV2ZW50JiBldmVudCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gcmVnaXN0ZXJEaXJlY3RDaGFubmVsKAorICAgICAgICAgICAgY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtLCByZWdpc3RlckRpcmVjdENoYW5uZWxfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gdW5yZWdpc3RlckRpcmVjdENoYW5uZWwoaW50MzJfdCBjaGFubmVsSGFuZGxlKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBjb25maWdEaXJlY3RSZXBvcnQoCisgICAgICAgICAgICBpbnQzMl90IHNlbnNvckhhbmRsZSwgaW50MzJfdCBjaGFubmVsSGFuZGxlLCBSYXRlTGV2ZWwgcmF0ZSwKKyAgICAgICAgICAgIGNvbmZpZ0RpcmVjdFJlcG9ydF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQzMl90IGtQb2xsTWF4QnVmZmVyU2l6ZSA9IDEyODsKKyAgICBzdGF0dXNfdCBtSW5pdENoZWNrOworICAgIHNlbnNvcnNfbW9kdWxlX3QgKm1TZW5zb3JNb2R1bGU7CisgICAgc2Vuc29yc19wb2xsX2RldmljZV8xX3QgKm1TZW5zb3JEZXZpY2U7CisgICAgc3RkOjptdXRleCBtUG9sbExvY2s7CisKKyAgICBpbnQgZ2V0SGFsRGV2aWNlVmVyc2lvbigpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgY29udmVydEZyb21TZW5zb3JFdmVudHMoCisgICAgICAgICAgICBzaXplX3QgY291bnQsIGNvbnN0IHNlbnNvcnNfZXZlbnRfdCAqc3JjLCBoaWRsX3ZlYzxFdmVudD4gKmRzdCk7CisKKyAgICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU2Vuc29ycyk7Cit9OworCitleHRlcm4gIkMiIElTZW5zb3JzICpISURMX0ZFVENIX0lTZW5zb3JzKGNvbnN0IGNoYXIgKm5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2Ugc2Vuc29ycworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfU0VOU09SU19IXwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UucmMgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTllNWRiCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw1IEBACitzZXJ2aWNlIHNlbnNvcnMtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQorICAgIGNhcGFiaWxpdGllcyBTWVNfTklDRQpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvY29udmVydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q4NTllYwotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvY29udmVydC5jcHAKQEAgLTAsMCArMSw0MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiY29udmVydC5oIgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzZW5zb3JzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3ZvaWQgY29udmVydEZyb21TZW5zb3IoY29uc3Qgc2Vuc29yX3QgJnNyYywgU2Vuc29ySW5mbyAqZHN0KSB7CisgICAgZHN0LT5uYW1lID0gc3JjLm5hbWU7CisgICAgZHN0LT52ZW5kb3IgPSBzcmMudmVuZG9yOworICAgIGRzdC0+dmVyc2lvbiA9IHNyYy52ZXJzaW9uOworICAgIGRzdC0+c2Vuc29ySGFuZGxlID0gc3JjLmhhbmRsZTsKKyAgICBkc3QtPnR5cGUgPSAoU2Vuc29yVHlwZSlzcmMudHlwZTsKKyAgICBkc3QtPm1heFJhbmdlID0gc3JjLm1heFJhbmdlOworICAgIGRzdC0+cmVzb2x1dGlvbiA9IHNyYy5yZXNvbHV0aW9uOworICAgIGRzdC0+cG93ZXIgPSBzcmMucG93ZXI7CisgICAgZHN0LT5taW5EZWxheSA9IHNyYy5taW5EZWxheTsKKyAgICBkc3QtPmZpZm9SZXNlcnZlZEV2ZW50Q291bnQgPSBzcmMuZmlmb1Jlc2VydmVkRXZlbnRDb3VudDsKKyAgICBkc3QtPmZpZm9NYXhFdmVudENvdW50ID0gc3JjLmZpZm9NYXhFdmVudENvdW50OworICAgIGRzdC0+dHlwZUFzU3RyaW5nID0gc3JjLnN0cmluZ1R5cGU7CisgICAgZHN0LT5yZXF1aXJlZFBlcm1pc3Npb24gPSBzcmMucmVxdWlyZWRQZXJtaXNzaW9uOworICAgIGRzdC0+bWF4RGVsYXkgPSBzcmMubWF4RGVsYXk7CisgICAgZHN0LT5mbGFncyA9IHNyYy5mbGFnczsKK30KKwordm9pZCBjb252ZXJ0VG9TZW5zb3IoCisgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OlNlbnNvckluZm8gJnNyYywKKyAgICAgICAgc2Vuc29yX3QgKmRzdCkgeworICAgIGRzdC0+bmFtZSA9IHN0cmR1cChzcmMubmFtZS5jX3N0cigpKTsKKyAgICBkc3QtPnZlbmRvciA9IHN0cmR1cChzcmMudmVuZG9yLmNfc3RyKCkpOworICAgIGRzdC0+dmVyc2lvbiA9IHNyYy52ZXJzaW9uOworICAgIGRzdC0+aGFuZGxlID0gc3JjLnNlbnNvckhhbmRsZTsKKyAgICBkc3QtPnR5cGUgPSAoaW50KXNyYy50eXBlOworICAgIGRzdC0+bWF4UmFuZ2UgPSBzcmMubWF4UmFuZ2U7CisgICAgZHN0LT5yZXNvbHV0aW9uID0gc3JjLnJlc29sdXRpb247CisgICAgZHN0LT5wb3dlciA9IHNyYy5wb3dlcjsKKyAgICBkc3QtPm1pbkRlbGF5ID0gc3JjLm1pbkRlbGF5OworICAgIGRzdC0+Zmlmb1Jlc2VydmVkRXZlbnRDb3VudCA9IHNyYy5maWZvUmVzZXJ2ZWRFdmVudENvdW50OworICAgIGRzdC0+Zmlmb01heEV2ZW50Q291bnQgPSBzcmMuZmlmb01heEV2ZW50Q291bnQ7CisgICAgZHN0LT5zdHJpbmdUeXBlID0gc3RyZHVwKHNyYy50eXBlQXNTdHJpbmcuY19zdHIoKSk7CisgICAgZHN0LT5yZXF1aXJlZFBlcm1pc3Npb24gPSBzdHJkdXAoc3JjLnJlcXVpcmVkUGVybWlzc2lvbi5jX3N0cigpKTsKKyAgICBkc3QtPm1heERlbGF5ID0gc3JjLm1heERlbGF5OworICAgIGRzdC0+ZmxhZ3MgPSBzcmMuZmxhZ3M7CisgICAgZHN0LT5yZXNlcnZlZFswXSA9IGRzdC0+cmVzZXJ2ZWRbMV0gPSAwOworfQorCit2b2lkIGNvbnZlcnRGcm9tU2Vuc29yRXZlbnQoY29uc3Qgc2Vuc29yc19ldmVudF90ICZzcmMsIEV2ZW50ICpkc3QpIHsKKyAgICB0eXBlZGVmIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OlNlbnNvclR5cGUgU2Vuc29yVHlwZTsKKyAgICB0eXBlZGVmIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6Ok1ldGFEYXRhRXZlbnRUeXBlIE1ldGFEYXRhRXZlbnRUeXBlOworCisgICAgZHN0LT5zZW5zb3JIYW5kbGUgPSBzcmMuc2Vuc29yOworICAgIGRzdC0+c2Vuc29yVHlwZSA9IChTZW5zb3JUeXBlKXNyYy50eXBlOworICAgIGRzdC0+dGltZXN0YW1wID0gc3JjLnRpbWVzdGFtcDsKKworICAgIHN3aXRjaCAoZHN0LT5zZW5zb3JUeXBlKSB7CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUVUQV9EQVRBOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnUubWV0YS53aGF0ID0gKE1ldGFEYXRhRXZlbnRUeXBlKXNyYy5tZXRhX2RhdGEud2hhdDsKKyAgICAgICAgICAgIC8vIExlZ2FjeSBIQUxzIGNvbnRhaW4gdGhlIGhhbmRsZSByZWZlcmVuY2UgaW4gdGhlIG1ldGEgZGF0YSBmaWVsZC4KKyAgICAgICAgICAgIC8vIENvcHkgdGhhdCBvdmVyIHRvIHRoZSBoYW5kbGUgb2YgdGhlIGV2ZW50LiBJbiBsZWdhY3kgSEFMcyB0aGlzCisgICAgICAgICAgICAvLyBmaWVsZCB3YXMgZXhwZWN0ZWQgdG8gYmUgMC4KKyAgICAgICAgICAgIGRzdC0+c2Vuc29ySGFuZGxlID0gc3JjLm1ldGFfZGF0YS5zZW5zb3I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpPUklFTlRBVElPTjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1JBVklUWToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpMSU5FQVJfQUNDRUxFUkFUSU9OOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnUudmVjMy54ID0gc3JjLmFjY2VsZXJhdGlvbi54OworICAgICAgICAgICAgZHN0LT51LnZlYzMueSA9IHNyYy5hY2NlbGVyYXRpb24ueTsKKyAgICAgICAgICAgIGRzdC0+dS52ZWMzLnogPSBzcmMuYWNjZWxlcmF0aW9uLno7CisgICAgICAgICAgICBkc3QtPnUudmVjMy5zdGF0dXMgPSAoU2Vuc29yU3RhdHVzKXNyYy5hY2NlbGVyYXRpb24uc3RhdHVzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlJPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHQU1FX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1I6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dS52ZWM0LnggPSBzcmMuZGF0YVswXTsKKyAgICAgICAgICAgIGRzdC0+dS52ZWM0LnkgPSBzcmMuZGF0YVsxXTsKKyAgICAgICAgICAgIGRzdC0+dS52ZWM0LnogPSBzcmMuZGF0YVsyXTsKKyAgICAgICAgICAgIGRzdC0+dS52ZWM0LncgPSBzcmMuZGF0YVszXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVEOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRDoKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPnUudW5jYWwueCA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby54X3VuY2FsaWI7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnkgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8ueV91bmNhbGliOworICAgICAgICAgIGRzdC0+dS51bmNhbC56ID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnpfdW5jYWxpYjsKKyAgICAgICAgICBkc3QtPnUudW5jYWwueF9iaWFzID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnhfYmlhczsKKyAgICAgICAgICBkc3QtPnUudW5jYWwueV9iaWFzID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnlfYmlhczsKKyAgICAgICAgICBkc3QtPnUudW5jYWwuel9iaWFzID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnpfYmlhczsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpERVZJQ0VfT1JJRU5UQVRJT046CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJR0hUOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQUkVTU1VSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6VEVNUEVSQVRVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlBST1hJTUlUWToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UkVMQVRJVkVfSFVNSURJVFk6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkFNQklFTlRfVEVNUEVSQVRVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlNJR05JRklDQU5UX01PVElPTjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9ERVRFQ1RPUjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6VElMVF9ERVRFQ1RPUjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHTEFOQ0VfR0VTVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UElDS19VUF9HRVNUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpXUklTVF9USUxUX0dFU1RVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlNUQVRJT05BUllfREVURUNUOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNUOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9CRUFUOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVDoKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPnUuc2NhbGFyID0gc3JjLmRhdGFbMF07CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9DT1VOVEVSOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS5zdGVwQ291bnQgPSBzcmMudTY0LnN0ZXBfY291bnRlcjsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9SQVRFOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS5oZWFydFJhdGUuYnBtID0gc3JjLmhlYXJ0X3JhdGUuYnBtOworICAgICAgICAgIGRzdC0+dS5oZWFydFJhdGUuc3RhdHVzID0gKFNlbnNvclN0YXR1cylzcmMuaGVhcnRfcmF0ZS5zdGF0dXM7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UE9TRV82RE9GOiAgLy8gMTUgZmxvYXRzCisgICAgICB7CisgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxNTsgKytpKSB7CisgICAgICAgICAgICAgIGRzdC0+dS5wb3NlNkRPRltpXSA9IHNyYy5kYXRhW2ldOworICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS5keW5hbWljLmNvbm5lY3RlZCA9IHNyYy5keW5hbWljX3NlbnNvcl9tZXRhLmNvbm5lY3RlZDsKKyAgICAgICAgICBkc3QtPnUuZHluYW1pYy5zZW5zb3JIYW5kbGUgPSBzcmMuZHluYW1pY19zZW5zb3JfbWV0YS5oYW5kbGU7CisKKyAgICAgICAgICBtZW1jcHkoZHN0LT51LmR5bmFtaWMudXVpZC5kYXRhKCksCisgICAgICAgICAgICAgICAgIHNyYy5keW5hbWljX3NlbnNvcl9tZXRhLnV1aWQsCisgICAgICAgICAgICAgICAgIDE2KTsKKworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkFERElUSU9OQUxfSU5GTzoKKyAgICAgIHsKKyAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpBZGRpdGlvbmFsSW5mbyAqZHN0SW5mbyA9CisgICAgICAgICAgICAgICZkc3QtPnUuYWRkaXRpb25hbDsKKworICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxfaW5mb19ldmVudF90ICZzcmNJbmZvID0gc3JjLmFkZGl0aW9uYWxfaW5mbzsKKworICAgICAgICAgIGRzdEluZm8tPnR5cGUgPQorICAgICAgICAgICAgICAoOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6QWRkaXRpb25hbEluZm9UeXBlKQorICAgICAgICAgICAgICAgICAgc3JjSW5mby50eXBlOworCisgICAgICAgICAgZHN0SW5mby0+c2VyaWFsID0gc3JjSW5mby5zZXJpYWw7CisKKyAgICAgICAgICBDSEVDS19FUShzaXplb2YoZHN0SW5mby0+dSksIHNpemVvZihzcmNJbmZvLmRhdGFfaW50MzIpKTsKKyAgICAgICAgICBtZW1jcHkoJmRzdEluZm8tPnUsIHNyY0luZm8uZGF0YV9pbnQzMiwgc2l6ZW9mKHNyY0luZm8uZGF0YV9pbnQzMikpOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBkZWZhdWx0OgorICAgICAgeworICAgICAgICAgIENIRUNLX0dFKChpbnQzMl90KWRzdC0+c2Vuc29yVHlwZSwKKyAgICAgICAgICAgICAgICAgICAoaW50MzJfdClTZW5zb3JUeXBlOjpERVZJQ0VfUFJJVkFURV9CQVNFKTsKKworICAgICAgICAgIG1lbWNweShkc3QtPnUuZGF0YS5kYXRhKCksIHNyYy5kYXRhLCAxNiAqIHNpemVvZihmbG9hdCkpOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorICB9Cit9CisKK3ZvaWQgY29udmVydFRvU2Vuc29yRXZlbnQoY29uc3QgRXZlbnQgJnNyYywgc2Vuc29yc19ldmVudF90ICpkc3QpIHsKKyAgZHN0LT52ZXJzaW9uID0gc2l6ZW9mKHNlbnNvcnNfZXZlbnRfdCk7CisgIGRzdC0+c2Vuc29yID0gc3JjLnNlbnNvckhhbmRsZTsKKyAgZHN0LT50eXBlID0gKGludDMyX3Qpc3JjLnNlbnNvclR5cGU7CisgIGRzdC0+cmVzZXJ2ZWQwID0gMDsKKyAgZHN0LT50aW1lc3RhbXAgPSBzcmMudGltZXN0YW1wOworICBkc3QtPmZsYWdzID0gMDsKKyAgZHN0LT5yZXNlcnZlZDFbMF0gPSBkc3QtPnJlc2VydmVkMVsxXSA9IGRzdC0+cmVzZXJ2ZWQxWzJdID0gMDsKKworICBzd2l0Y2ggKHNyYy5zZW5zb3JUeXBlKSB7CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1FVEFfREFUQToKKyAgICAgIHsKKyAgICAgICAgICAvLyBMZWdhY3kgSEFMcyBleHBlY3QgdGhlIGhhbmRsZSByZWZlcmVuY2UgaW4gdGhlIG1ldGEgZGF0YSBmaWVsZC4KKyAgICAgICAgICAvLyBDb3B5IGl0IG92ZXIgZnJvbSB0aGUgaGFuZGxlIG9mIHRoZSBldmVudC4KKyAgICAgICAgICBkc3QtPm1ldGFfZGF0YS53aGF0ID0gKGludDMyX3Qpc3JjLnUubWV0YS53aGF0OworICAgICAgICAgIGRzdC0+bWV0YV9kYXRhLnNlbnNvciA9IHNyYy5zZW5zb3JIYW5kbGU7CisgICAgICAgICAgLy8gU2V0IHRoZSBzZW5zb3IgaGFuZGxlIHRvIDAgdG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICBkc3QtPnNlbnNvciA9IDA7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdSQVZJVFk6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT046CisgICAgICB7CisgICAgICAgICAgZHN0LT5hY2NlbGVyYXRpb24ueCA9IHNyYy51LnZlYzMueDsKKyAgICAgICAgICBkc3QtPmFjY2VsZXJhdGlvbi55ID0gc3JjLnUudmVjMy55OworICAgICAgICAgIGRzdC0+YWNjZWxlcmF0aW9uLnogPSBzcmMudS52ZWMzLno7CisgICAgICAgICAgZHN0LT5hY2NlbGVyYXRpb24uc3RhdHVzID0gKGludDhfdClzcmMudS52ZWMzLnN0YXR1czsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpST1RBVElPTl9WRUNUT1I6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1I6CisgICAgICB7CisgICAgICAgICAgZHN0LT5kYXRhWzBdID0gc3JjLnUudmVjNC54OworICAgICAgICAgIGRzdC0+ZGF0YVsxXSA9IHNyYy51LnZlYzQueTsKKyAgICAgICAgICBkc3QtPmRhdGFbMl0gPSBzcmMudS52ZWM0Lno7CisgICAgICAgICAgZHN0LT5kYXRhWzNdID0gc3JjLnUudmVjNC53OworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVEOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVEOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnhfdW5jYWxpYiA9IHNyYy51LnVuY2FsLng7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnlfdW5jYWxpYiA9IHNyYy51LnVuY2FsLnk7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnpfdW5jYWxpYiA9IHNyYy51LnVuY2FsLno7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnhfYmlhcyA9IHNyYy51LnVuY2FsLnhfYmlhczsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8ueV9iaWFzID0gc3JjLnUudW5jYWwueV9iaWFzOworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby56X2JpYXMgPSBzcmMudS51bmNhbC56X2JpYXM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6REVWSUNFX09SSUVOVEFUSU9OOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJR0hUOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBSRVNTVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlRFTVBFUkFUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBST1hJTUlUWToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBTUJJRU5UX1RFTVBFUkFUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlNJR05JRklDQU5UX01PVElPTjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0RFVEVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlRJTFRfREVURUNUT1I6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdMQU5DRV9HRVNUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBJQ0tfVVBfR0VTVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpXUklTVF9USUxUX0dFU1RVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RBVElPTkFSWV9ERVRFQ1Q6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TU9USU9OX0RFVEVDVDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9CRUFUOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPmRhdGFbMF0gPSBzcmMudS5zY2FsYXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9DT1VOVEVSOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnU2NC5zdGVwX2NvdW50ZXIgPSBzcmMudS5zdGVwQ291bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfUkFURToKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT5oZWFydF9yYXRlLmJwbSA9IHNyYy51LmhlYXJ0UmF0ZS5icG07CisgICAgICAgICAgICBkc3QtPmhlYXJ0X3JhdGUuc3RhdHVzID0gKGludDhfdClzcmMudS5oZWFydFJhdGUuc3RhdHVzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBPU0VfNkRPRjogIC8vIDE1IGZsb2F0cworICAgICAgICB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICAgICAgICAgICAgICBkc3QtPmRhdGFbaV0gPSBzcmMudS5wb3NlNkRPRltpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEuY29ubmVjdGVkID0gc3JjLnUuZHluYW1pYy5jb25uZWN0ZWQ7CisgICAgICAgICAgICBkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEuaGFuZGxlID0gc3JjLnUuZHluYW1pYy5zZW5zb3JIYW5kbGU7CisgICAgICAgICAgICBkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEuc2Vuc29yID0gTlVMTDsgIC8vIHRvIGJlIGZpbGxlZCBpbiBsYXRlcgorCisgICAgICAgICAgICBtZW1jcHkoZHN0LT5keW5hbWljX3NlbnNvcl9tZXRhLnV1aWQsCisgICAgICAgICAgICAgICAgICAgc3JjLnUuZHluYW1pYy51dWlkLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAxNik7CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk86CisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OkFkZGl0aW9uYWxJbmZvICZzcmNJbmZvID0KKyAgICAgICAgICAgICAgICBzcmMudS5hZGRpdGlvbmFsOworCisgICAgICAgICAgICBhZGRpdGlvbmFsX2luZm9fZXZlbnRfdCAqZHN0SW5mbyA9ICZkc3QtPmFkZGl0aW9uYWxfaW5mbzsKKyAgICAgICAgICAgIGRzdEluZm8tPnR5cGUgPSAoaW50MzJfdClzcmNJbmZvLnR5cGU7CisgICAgICAgICAgICBkc3RJbmZvLT5zZXJpYWwgPSBzcmNJbmZvLnNlcmlhbDsKKworICAgICAgICAgICAgQ0hFQ0tfRVEoc2l6ZW9mKHNyY0luZm8udSksIHNpemVvZihkc3RJbmZvLT5kYXRhX2ludDMyKSk7CisKKyAgICAgICAgICAgIG1lbWNweShkc3RJbmZvLT5kYXRhX2ludDMyLAorICAgICAgICAgICAgICAgICAgICZzcmNJbmZvLnUsCisgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRzdEluZm8tPmRhdGFfaW50MzIpKTsKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICB7CisgICAgICAgICAgICBDSEVDS19HRSgoaW50MzJfdClzcmMuc2Vuc29yVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIChpbnQzMl90KVNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpOworCisgICAgICAgICAgICBtZW1jcHkoZHN0LT5kYXRhLCBzcmMudS5kYXRhLmRhdGEoKSwgMTYgKiBzaXplb2YoZmxvYXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCitib29sIGNvbnZlcnRGcm9tU2hhcmVkTWVtSW5mbyhjb25zdCBTaGFyZWRNZW1JbmZvJiBtZW1Jbiwgc2Vuc29yc19kaXJlY3RfbWVtX3QgKm1lbU91dCkgeworICAgIGlmIChtZW1PdXQgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3dpdGNoKG1lbUluLnR5cGUpIHsKKyAgICAgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06CisgICAgICAgICAgICBtZW1PdXQtPnR5cGUgPSBTRU5TT1JfRElSRUNUX01FTV9UWVBFX0FTSE1FTTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkdSQUxMT0M6CisgICAgICAgICAgICBtZW1PdXQtPnR5cGUgPSBTRU5TT1JfRElSRUNUX01FTV9UWVBFX0dSQUxMT0M7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzd2l0Y2gobWVtSW4uZm9ybWF0KSB7CisgICAgICAgIGNhc2UgU2hhcmVkTWVtRm9ybWF0OjpTRU5TT1JTX0VWRU5UOgorICAgICAgICAgICAgbWVtT3V0LT5mb3JtYXQgPSBTRU5TT1JfRElSRUNUX0ZNVF9TRU5TT1JTX0VWRU5UOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbWVtT3V0LT5zaXplID0gbWVtSW4uc2l6ZTsKKyAgICBtZW1PdXQtPmhhbmRsZSA9IG1lbUluLm1lbW9yeUhhbmRsZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworaW50IGNvbnZlcnRGcm9tUmF0ZUxldmVsKFJhdGVMZXZlbCByYXRlKSB7CisgICAgc3dpdGNoKHJhdGUpIHsKKyAgICAgICAgY2FzZSBSYXRlTGV2ZWw6OlNUT1A6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX1NUT1A7CisgICAgICAgIGNhc2UgUmF0ZUxldmVsOjpOT1JNQUw6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX05PUk1BTDsKKyAgICAgICAgY2FzZSBSYXRlTGV2ZWw6OkZBU1Q6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1Q7CisgICAgICAgIGNhc2UgUmF0ZUxldmVsOjpWRVJZX0ZBU1Q6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX1ZFUllfRkFTVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvaW5jbHVkZS9zZW5zb3JzL2NvbnZlcnQuaCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvaW5jbHVkZS9zZW5zb3JzL2NvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2EwMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9pbmNsdWRlL3NlbnNvcnMvY29udmVydC5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCisKKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9zZW5zb3JzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Ugc2Vuc29ycyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit2b2lkIGNvbnZlcnRGcm9tU2Vuc29yKGNvbnN0IHNlbnNvcl90ICZzcmMsIFNlbnNvckluZm8gKmRzdCk7Cit2b2lkIGNvbnZlcnRUb1NlbnNvcihjb25zdCBTZW5zb3JJbmZvICZzcmMsIHNlbnNvcl90ICpkc3QpOworCit2b2lkIGNvbnZlcnRGcm9tU2Vuc29yRXZlbnQoY29uc3Qgc2Vuc29yc19ldmVudF90ICZzcmMsIEV2ZW50ICpkc3QpOwordm9pZCBjb252ZXJ0VG9TZW5zb3JFdmVudChjb25zdCBFdmVudCAmc3JjLCBzZW5zb3JzX2V2ZW50X3QgKmRzdCk7CisKK2Jvb2wgY29udmVydEZyb21TaGFyZWRNZW1JbmZvKGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbUluLCBzZW5zb3JzX2RpcmVjdF9tZW1fdCAqbWVtT3V0KTsKK2ludCBjb252ZXJ0RnJvbVJhdGVMZXZlbChSYXRlTGV2ZWwgcmF0ZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZjZkODEKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OklTZW5zb3JzOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgLyogU2Vuc29ycyBmcmFtZXdvcmsgc2VydmljZSBuZWVkcyBhdCBsZWFzdCB0d28gdGhyZWFkcy4KKyAgICAgKiBPbmUgdGhyZWFkIGJsb2NrcyBvbiBhICJwb2xsIgorICAgICAqIFRoZSBzZWNvbmQgdGhyZWFkIGlzIG5lZWRlZCBmb3IgYWxsIG90aGVyIEhBTCBtZXRob2RzLgorICAgICAqLworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVNlbnNvcnM+KDIpOworfQpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvdHlwZXMuaGFsIGIvc2Vuc29ycy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MjZlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMjk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wOworCisvKioKKyAqIFBsZWFzZSBzZWUgdGhlIFNlbnNvcnMgc2VjdGlvbiBvZiBzb3VyY2UuYW5kcm9pZC5jb20gZm9yIGFuCisgKiBpbnRyb2R1Y3Rpb24gdG8gYW5kIGRldGFpbGVkIGRlc2NyaXB0aW9ucyBvZiBBbmRyb2lkIHNlbnNvciB0eXBlczoKKyAqIGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9zZW5zb3JzL2luZGV4Lmh0bWwKKyAqLworCisvKiogVHlwZSBlbnVtZXJhdGluZyB2YXJpb3VzIHJlc3VsdCBjb2RlcyByZXR1cm5lZCBmcm9tIElTZW5zb3JzIG1ldGhvZHMgKi8KK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgUEVSTUlTU0lPTl9ERU5JRUQgICAgICAgICAgICAgICAgICAgPSAtMSwKKyAgICBOT19NRU1PUlkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IC0xMiwKKyAgICBCQURfVkFMVUUgICAgICAgICAgICAgICAgICAgICAgICAgICA9IC0yMiwKKyAgICBJTlZBTElEX09QRVJBVElPTiAgICAgICAgICAgICAgICAgICA9IC0zOCwKK307CisKKy8qKgorICogU2Vuc29yIEhBTCBtb2RlcyB1c2VkIGluIHNldE9wZXJhdGlvbk1vZGUgbWV0aG9kCisgKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfSEFMXyIsIHZhbHVlX3N1ZmZpeD0iX01PREUiKQorZW51bSBPcGVyYXRpb25Nb2RlIDogaW50MzJfdCB7CisgICAgTk9STUFMICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgREFUQV9JTkpFQ1RJT04gICAgICAgICAgICAgICAgICA9IDEsCit9OworCisvKioKKyAqIFNlbnNvciB0eXBlCisgKgorICogRWFjaCBzZW5zb3IgaGFzIGEgdHlwZSB3aGljaCBkZWZpbmVzIHdoYXQgdGhpcyBzZW5zb3IgbWVhc3VyZXMgYW5kIGhvdworICogbWVhc3VyZXMgYXJlIHJlcG9ydGVkLiBTZWUgdGhlIEJhc2Ugc2Vuc29ycyBhbmQgQ29tcG9zaXRlIHNlbnNvcnMgbGlzdHMKKyAqIGZvciBjb21wbGV0ZSBkZXNjcmlwdGlvbnM6CisgKiBodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvc2Vuc29ycy9iYXNlX3RyaWdnZXJzLmh0bWwKKyAqIGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9zZW5zb3JzL2NvbXBvc2l0ZV9zZW5zb3JzLmh0bWwKKyAqCisgKiBEZXZpY2UgbWFudWZhY3R1cmVycyAoT0VNcykgY2FuIGRlZmluZSB0aGVpciBvd24gc2Vuc29yIHR5cGVzLCBmb3IKKyAqIHRoZWlyIHByaXZhdGUgdXNlIGJ5IGFwcGxpY2F0aW9ucyBvciBzZXJ2aWNlcyBwcm92aWRlZCBieSB0aGVtLiBTdWNoCisgKiBzZW5zb3IgdHlwZXMgYXJlIHNwZWNpZmljIHRvIGFuIE9FTSBhbmQgY2FuJ3QgYmUgZXhwb3NlZCBpbiB0aGUgU0RLLgorICogVGhlc2UgdHlwZXMgbXVzdCBzdGFydCBhdCBTZW5zb3JUeXBlOjpERVZJQ0VfUFJJVkFURV9CQVNFLgorICoKKyAqIEFsbCBzZW5zb3JzIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgZGV2aWNlIHByaXZhdGUgcmFuZ2UgbXVzdCBjb3JyZXNwb25kIHRvCisgKiBhIHR5cGUgZGVmaW5lZCBpbiB0aGlzIGZpbGUsIGFuZCBtdXN0IHNhdGlzZnkgdGhlIGNoYXJhY3RlcmlzdGljcyBsaXN0ZWQgaW4KKyAqIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2Vuc29yIHR5cGUuCisgKgorICogRWFjaCBzZW5zb3IgYWxzbyBoYXMgYSAidHlwZUFzU3RyaW5nIi4KKyAqICAtIHN0cmluZyB0eXBlIG9mIHNlbnNvcnMgZGVmaW5lZCBpbiB0aGlzIGZpbGUgaXMgb3ZlcnJpZGRlbiBieSBBbmRyb2lkIHRvCisgKiAgICB2YWx1ZXMgZGVmaW5lZCBpbiBBbmRyb2lkIEFQSSB3aXRoICJhbmRyb2lkLnNlbnNvci4iIHByZWZpeC4KKyAqICAgIEV4YW1wbGU6IGZvciBhbiBhY2NlbGVyb21ldGVyLAorICogICAgICB0eXBlID0gU2Vuc29yVHlwZTo6QWNjbGVyb21ldGVyCisgKiAgICAgIHR5cGVBc1N0cmluZyA9ICIiICh3aWxsIGJlIHJlcGxhY2UgYnkgImFuZHJvaWQuc2Vuc29yLmFjY2VsZXJvbWV0ZXIiIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICBBbmRyb2lkIGZyYW1lb3dyaykKKyAqICAtIHN0cmluZyB0eXBlIG9mIHNlbnNvcnMgaW5zaWRlIG9mIHRoZSBkZXZpY2UgcHJpdmF0ZSByYW5nZSBNVVNUIGJlIHByZWZpeGVkCisgKiAgICBieSB0aGUgc2Vuc29yIHByb3ZpZGVyJ3Mgb3IgT0VNIHJldmVyc2UgZG9tYWluIG5hbWUuIEluIHBhcnRpY3VsYXIsIHRoZXkKKyAqICAgIGNhbm5vdCB1c2UgdGhlICJhbmRyb2lkLnNlbnNvci4iIHByZWZpeC4KKyAqCisgKiBXaGVuIGFuZHJvaWQgaW50cm9kdWNlcyBhIG5ldyBzZW5zb3IgdHlwZSB0aGF0IGNhbiByZXBsYWNlIGFuIE9FTS1kZWZpbmVkCisgKiBzZW5zb3IgdHlwZSwgdGhlIE9FTSBtdXN0IHVzZSB0aGUgb2ZmaWNpYWwgc2Vuc29yIHR5cGUgYW5kIHN0cmluZ1R5cGUgb24KKyAqIHZlcnNpb25zIG9mIHRoZSBIQUwgdGhhdCBzdXBwb3J0IHRoaXMgbmV3IG9mZmljaWFsIHNlbnNvciB0eXBlLgorICoKKyAqIEV4YW1wbGUgKG1hZGUgdXApOiBTdXBwb3NlIEdvb2dsZSdzIEdsYXNzIHRlYW0gd2FudHMgdG8gc3VyZmFjZSBhIHNlbnNvcgorICogZGV0ZWN0aW5nIHRoYXQgR2xhc3MgaXMgb24gYSBoZWFkLgorICogIC0gU3VjaCBhIHNlbnNvciBpcyBub3Qgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgaW4gYW5kcm9pZCBLaXRLYXQKKyAqICAtIEdsYXNzIGRldmljZXMgbGF1bmNoaW5nIG9uIEtpdEthdCBjYW4gaW1wbGVtZW50IGEgc2Vuc29yIHdpdGgKKyAqICAgICAgdHlwZSA9IDB4MTAwMDEKKyAqICAgICAgdHlwZUFzU3RyaW5nID0gImNvbS5nb29nbGUuZ2xhc3Mub25oZWFkZGV0ZWN0b3IiCisgKiAgLSBJbiBMIGFuZHJvaWQgcmVsZWFzZSwgaWYgYW5kcm9pZCBkZWNpZGVzIHRvIGRlZmluZQorICogICAgU2Vuc29yVHlwZTo6T05fSEVBRF9ERVRFQ1RPUiBhbmQgU1RSSU5HX1NlbnNvclR5cGU6Ok9OX0hFQURfREVURUNUT1IsCisgKiAgICB0aG9zZSB0eXBlcyBzaG91bGQgcmVwbGFjZSB0aGUgR2xhc3MtdGVhbS1zcGVjaWZpYyB0eXBlcyBpbiBhbGwgZnV0dXJlCisgKiAgICBsYXVuY2hlcy4KKyAqICAtIFdoZW4gbGF1bmNoaW5nIEdsYXNzIG9uIHRoZSBMIHJlbGVhc2UsIEdvb2dsZSBzaG91bGQgbm93IHVzZSB0aGUgb2ZmaWNpYWwKKyAqICAgIHR5cGUgKFNlbnNvclR5cGU6Ok9OX0hFQURfREVURUNUT1IpIGFuZCBzdHJpbmdUeXBlLgorICogIC0gVGhpcyB3YXksIGFsbCBhcHBsaWNhdGlvbnMgY2FuIG5vdyB1c2UgdGhpcyBzZW5zb3IuCisgKi8KKworLyoqCisgKiBXYWtlIHVwIHNlbnNvcnMuCisgKiBFYWNoIHNlbnNvciBtYXkgaGF2ZSBlaXRoZXIgb3IgYm90aCBhIHdha2UtdXAgYW5kIGEgbm9uLXdha2UgdmFyaWFudC4KKyAqIFdoZW4gcmVnaXN0ZXJlZCBpbiBiYXRjaCBtb2RlLCB3YWtlLXVwIHNlbnNvcnMgd2lsbCB3YWtlIHVwIHRoZSBBUCB3aGVuCisgKiB0aGVpciBGSUZPcyBhcmUgZnVsbCBvciB3aGVuIHRoZSBiYXRjaCB0aW1lb3V0IGV4cGlyZXMuIEEgc2VwYXJhdGUgRklGTyBoYXMKKyAqIHRvIGJlIG1haW50YWluZWQgZm9yIHdha2UgdXAgc2Vuc29ycyBhbmQgbm9uIHdha2UgdXAgc2Vuc29ycy4gVGhlIG5vbgorICogd2FrZS11cCBzZW5zb3JzIG5lZWQgdG8gb3ZlcndyaXRlIHRoZWlyIEZJRk9zIHdoZW4gdGhleSBhcmUgZnVsbCB0aWxsIHRoZSBBUAorICogd2FrZXMgdXAgYW5kIHRoZSB3YWtlLXVwIHNlbnNvcnMgd2lsbCB3YWtlLXVwIHRoZSBBUCB3aGVuIHRoZWlyIEZJRk9zIGFyZQorICogZnVsbCBvciB3aGVuIHRoZSBiYXRjaCB0aW1lb3V0IGV4cGlyZXMgd2l0aG91dCBsb3NpbmcgZXZlbnRzLgorICogV2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmFyaWFudHMgb2YgZWFjaCBzZW5zb3IgY2FuIGJlIGFjdGl2YXRlZCBhdAorICogZGlmZmVyZW50IHJhdGVzIGluZGVwZW5kZW50bHkgb2YgZWFjaCBvdGhlci4KKyAqCisgKiBOb3RlOiBQcm94aW1pdHkgc2Vuc29yIGFuZCBzaWduaWZpY2FudCBtb3Rpb24gc2Vuc29yIHdoaWNoIHdlcmUgZGVmaW5lZCBpbgorICogcHJldmlvdXMgcmVsZWFzZXMgYXJlIGFsc28gd2FrZS11cCBzZW5zb3JzIGFuZCBtdXN0IGJlIHRyZWF0ZWQgYXMgc3VjaC4KKyAqIFdha2UtdXAgb25lLXNob3Qgc2Vuc29ycyBsaWtlIFNJR05JRklDQU5UX01PVElPTiBjYW5ub3QgYmUgYmF0Y2hlZCwgaGVuY2UKKyAqIHRoZSB0ZXh0IGFib3V0IGJhdGNoIGFib3ZlIGRvZXNuJ3QgYXBwbHkgdG8gdGhlbS4gU2VlIHRoZSBkZWZpbml0aW9ucyBvZgorICogU2Vuc29yVHlwZTo6UFJPWElNSVRZIGFuZCBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT04gZm9yIG1vcmUgaW5mby4KKyAqCisgKiBTZXQgU0VOU09SX0ZMQUdfV0FLRV9VUCBmbGFnIGZvciBhbGwgd2FrZS11cCBzZW5zb3JzLgorICoKKyAqIEZvciBleGFtcGxlLCBBIGRldmljZSBjYW4gaGF2ZSB0d28gc2Vuc29ycyBib3RoIG9mIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIKKyAqIGFuZCBvbmUgb2YgdGhlbSBjYW4gYmUgYSB3YWtlX3VwIHNlbnNvciAod2l0aCBTRU5TT1JfRkxBR19XQUtFX1VQIGZsYWcgc2V0KQorICogYW5kIHRoZSBvdGhlciBjYW4gYmUgYSByZWd1bGFyIG5vbiB3YWtlX3VwIHNlbnNvci4gQm90aCBvZiB0aGVzZSBzZW5zb3JzCisgKiBtdXN0IGJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBvdGhlci4KKyAqLworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX1RZUEVfIikKK2VudW0gU2Vuc29yVHlwZSA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIE1FVEFfREFUQSBpcyBhIHNwZWNpYWwgZXZlbnQgdHlwZSB1c2VkIHRvIHBvcHVsYXRlIHRoZSBNZXRhRGF0YQorICAgICAqIHN0cnVjdHVyZS4gSXQgZG9lc24ndCBjb3JyZXNwb25kIHRvIGEgcGh5c2ljYWwgc2Vuc29yLiBFdmVudHMgb2YgdGhpcworICAgICAqIHR5cGUgZXhpc3Qgb25seSBpbnNpZGUgdGhlIEhBTCwgdGhlaXIgcHJpbWFyeSBwdXJwb3NlIGlzIHRvIHNpZ25hbCB0aGUKKyAgICAgKiBjb21wbGV0aW9uIG9mIGEgZmx1c2ggcmVxdWVzdC4KKyAgICAgKi8KKyAgICBNRVRBX0RBVEEgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgIC8qKgorICAgICAqIEFDQ0VMRVJPTUVURVIKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gU0kgdW5pdHMgKG0vc14yKSBhbmQgbWVhc3VyZSB0aGUgYWNjZWxlcmF0aW9uIG9mIHRoZQorICAgICAqIGRldmljZSBtaW51cyB0aGUgYWNjZWxlcmF0aW9uIGR1ZSB0byBncmF2aXR5LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEFDQ0VMRVJPTUVURVIgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgLyoqCisgICAgICogTUFHTkVUSUNfRklFTEQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gbWljcm8tVGVzbGEgKHVUKSBhbmQgbWVhc3VyZSB0aGUgZ2VvbWFnbmV0aWMKKyAgICAgKiBmaWVsZCBpbiB0aGUgWCwgWSBhbmQgWiBheGlzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIE1BR05FVElDX0ZJRUxEICAgICAgICAgICAgICAgICAgPSAyLAorCisgICAgLyoqCisgICAgICogT1JJRU5UQVRJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgYW5nbGVzIGluIGRlZ3JlZXMuCisgICAgICoKKyAgICAgKiBPcmllbnRhdGlvbiBzZW5zb3JzIHJldHVybiBzZW5zb3IgZXZlbnRzIGZvciBhbGwgMyBheGVzIGF0IGEgY29uc3RhbnQKKyAgICAgKiByYXRlIGRlZmluZWQgYnkgc2V0RGVsYXkoKS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBPUklFTlRBVElPTiAgICAgICAgICAgICAgICAgICAgID0gMywKKworICAgIC8qKgorICAgICAqIEdZUk9TQ09QRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBpbiByYWRpYW5zL3NlY29uZCBhbmQgbWVhc3VyZSB0aGUgcmF0ZSBvZiByb3RhdGlvbgorICAgICAqIGFyb3VuZCB0aGUgWCwgWSBhbmQgWiBheGlzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdZUk9TQ09QRSAgICAgICAgICAgICAgICAgICAgICAgPSA0LAorCisgICAgLyoqCisgICAgICogTElHSFQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBUaGUgbGlnaHQgc2Vuc29yIHZhbHVlIGlzIHJldHVybmVkIGluIFNJIGx1eCB1bml0cy4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBMSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNSwKKworICAgIC8qKgorICAgICAqIFBSRVNTVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFRoZSBwcmVzc3VyZSBzZW5zb3IgcmV0dXJuIHRoZSBhdGhtb3NwaGVyaWMgcHJlc3N1cmUgaW4gaGVjdG9wYXNjYWwgKGhQYSkKKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBQUkVTU1VSRSAgICAgICAgICAgICAgICAgICAgICAgID0gNiwKKworICAgIC8qKiBURU1QRVJBVFVSRSBpcyBkZXByZWNhdGVkIGluIHRoZSBIQUwgKi8KKyAgICBURU1QRVJBVFVSRSAgICAgICAgICAgICAgICAgICAgID0gNywKKworICAgIC8qKgorICAgICAqIFBST1hJTUlUWQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIFRoZSBwcm94aW1pdHkgc2Vuc29yIHdoaWNoIHR1cm5zIHRoZSBzY3JlZW4gb2ZmIGFuZCBiYWNrIG9uIGR1cmluZyBjYWxscworICAgICAqIGlzIHRoZSB3YWtlLXVwIHByb3hpbWl0eSBzZW5zb3IuIEltcGxlbWVudCB3YWtlLXVwIHByb3hpbWl0eSBzZW5zb3IKKyAgICAgKiBiZWZvcmUgaW1wbGVtZW50aW5nIGEgbm9uIHdha2UtdXAgcHJveGltaXR5IHNlbnNvci4gRm9yIHRoZSB3YWtlLXVwCisgICAgICogcHJveGltaXR5IHNlbnNvciBzZXQgdGhlIGZsYWcgU0VOU09SX0ZMQUdfV0FLRV9VUC4KKyAgICAgKiBUaGUgdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlIGRpc3RhbmNlIHRvIHRoZSBuZWFyZXN0IG9iamVjdCBpbgorICAgICAqIGNlbnRpbWV0ZXJzLgorICAgICAqLworICAgIFBST1hJTUlUWSAgICAgICAgICAgICAgICAgICAgICAgPSA4LAorCisgICAgLyoqCisgICAgICogR1JBVklUWQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBIGdyYXZpdHkgb3V0cHV0IGluZGljYXRlcyB0aGUgZGlyZWN0aW9uIG9mIGFuZCBtYWduaXR1ZGUgb2YgZ3Jhdml0eSBpbgorICAgICAqIHRoZSBkZXZpY2VzJ3MgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgR1JBVklUWSAgICAgICAgICAgICAgICAgICAgICAgICA9IDksCisKKyAgICAvKioKKyAgICAgKiBMSU5FQVJfQUNDRUxFUkFUSU9OCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEluZGljYXRlcyB0aGUgbGluZWFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgZGV2aWNlIGluIGRldmljZSBjb29yZGluYXRlcywKKyAgICAgKiBub3QgaW5jbHVkaW5nIGdyYXZpdHkuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgTElORUFSX0FDQ0VMRVJBVElPTiAgICAgICAgICAgICA9IDEwLAorCisgICAgLyoqCisgICAgICogUk9UQVRJT05fVkVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFRoZSByb3RhdGlvbiB2ZWN0b3Igc3ltYm9saXplcyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSByZWxhdGl2ZSB0bworICAgICAqIHRoZSBFYXN0LU5vcnRoLVVwIGNvb3JkaW5hdGVzIGZyYW1lLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIFJPVEFUSU9OX1ZFQ1RPUiAgICAgICAgICAgICAgICAgPSAxMSwKKworICAgIC8qKgorICAgICAqIFJFTEFUSVZFX0hVTUlESVRZCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogQSByZWxhdGl2ZSBodW1pZGl0eSBzZW5zb3IgbWVhc3VyZXMgcmVsYXRpdmUgYW1iaWVudCBhaXIgaHVtaWRpdHkgYW5kCisgICAgICogcmV0dXJucyBhIHZhbHVlIGluIHBlcmNlbnQuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgUkVMQVRJVkVfSFVNSURJVFkgICAgICAgICAgICAgICA9IDEyLAorCisgICAgLyoqCisgICAgICogQU1CSUVOVF9URU1QRVJBVFVSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIFRoZSBhbWJpZW50IChyb29tKSB0ZW1wZXJhdHVyZSBpbiBkZWdyZWUgQ2Vsc2l1cy4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBBTUJJRU5UX1RFTVBFUkFUVVJFICAgICAgICAgICAgID0gMTMsCisKKyAgICAvKioKKyAgICAgKiBNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogU2ltaWxhciB0byBNQUdORVRJQ19GSUVMRCwgYnV0IHRoZSBoYXJkIGlyb24gY2FsaWJyYXRpb24gaXMKKyAgICAgKiByZXBvcnRlZCBzZXBhcmF0ZWx5IGluc3RlYWQgb2YgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG1lYXN1cmVtZW50LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIE1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRCAgICAgPSAxNCwKKworICAgIC8qKgorICAgICAqIEdBTUVfUk9UQVRJT05fVkVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFNpbWlsYXIgdG8gUk9UQVRJT05fVkVDVE9SLCBidXQgbm90IHVzaW5nIHRoZSBnZW9tYWduZXRpYworICAgICAqIGZpZWxkLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdBTUVfUk9UQVRJT05fVkVDVE9SICAgICAgICAgICAgPSAxNSwKKworICAgIC8qKgorICAgICAqIEdZUk9TQ09QRV9VTkNBTElCUkFURUQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gcmFkaWFucy9zZWNvbmQgYW5kIG1lYXN1cmUgdGhlIHJhdGUgb2Ygcm90YXRpb24KKyAgICAgKiBhcm91bmQgdGhlIFgsIFkgYW5kIFogYXhpcy4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHWVJPU0NPUEVfVU5DQUxJQlJBVEVEICAgICAgICAgID0gMTYsCisKKyAgICAvKioKKyAgICAgKiBTSUdOSUZJQ0FOVF9NT1RJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogb25lLXNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyBhbiBldmVudCBlYWNoIHRpbWUgc2lnbmlmaWNhbnQgbW90aW9uCisgICAgICogaXMgZGV0ZWN0ZWQgYW5kIGF1dG9tYXRpY2FsbHkgZGlzYWJsZXMgaXRzZWxmLgorICAgICAqIEZvciBTaWduaWZpY2FudCBNb3Rpb24gc2Vuc29yIHRvIGJlIHVzZWZ1bCwgaXQgbXVzdCBiZSBkZWZpbmVkIGFzIGEKKyAgICAgKiB3YWtlLXVwIHNlbnNvci4gKHNldCBTRU5TT1JfRkxBR19XQUtFX1VQKS4gSW1wbGVtZW50IHRoZSB3YWtlLXVwCisgICAgICogc2lnbmlmaWNhbnQgbW90aW9uIHNlbnNvci4gQSBub24gd2FrZS11cCB2ZXJzaW9uIGlzIG5vdCB1c2VmdWwuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqLworICAgIFNJR05JRklDQU5UX01PVElPTiAgICAgICAgICAgICAgPSAxNywKKworICAgIC8qKgorICAgICAqIFNURVBfREVURUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogc3BlY2lhbAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIGFuIGV2ZW50IGVhY2ggdGltZSBhIHN0ZXAgaXMgdGFrZW4KKyAgICAgKiBieSB0aGUgdXNlci4gVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wIGFuZCBhbiBldmVudAorICAgICAqIGlzIGdlbmVyYXRlZCBmb3IgZWFjaCBzdGVwLgorICAgICAqCisgICAgICogQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIFNURVBfREVURUNUT1IgICAgICAgICAgICAgICAgICAgPSAxOCwKKworICAgIC8qKgorICAgICAqIFNURVBfQ09VTlRFUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3RlcHMgdGFrZW4gYnkgdGhlIHVzZXIgc2luY2UKKyAgICAgKiB0aGUgbGFzdCByZWJvb3Qgd2hpbGUgYWN0aXZhdGVkLiBUaGUgdmFsdWUgaXMgcmV0dXJuZWQgYXMgYSB1aW50NjRfdCBhbmQKKyAgICAgKiBpcyByZXNldCB0byB6ZXJvIG9ubHkgb24gYSBzeXN0ZW0gLyBhbmRyb2lkIHJlYm9vdC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBTVEVQX0NPVU5URVIgICAgICAgICAgICAgICAgICAgID0gMTksCisKKyAgICAvKioKKyAgICAgKiBHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogIFNpbWlsYXIgdG8gUk9UQVRJT05fVkVDVE9SLCBidXQgdXNpbmcgYSBtYWduZXRvbWV0ZXIgaW5zdGVhZAorICAgICAqICBvZiB1c2luZyBhIGd5cm9zY29wZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IgICAgID0gMjAsCisKKyAgICAvKioKKyAgICAgKiBIRUFSVF9SQVRFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIHRoZSBjdXJyZW50IGhlYXJ0IHJhdGUuCisgICAgICogIFRoZSBldmVudHMgY29udGFpbiB0aGUgY3VycmVudCBoZWFydCByYXRlIGluIGJlYXRzIHBlciBtaW51dGUgKEJQTSkgYW5kCisgICAgICogIHRoZSBzdGF0dXMgb2YgdGhlIHNlbnNvciBkdXJpbmcgdGhlIG1lYXN1cmVtZW50LiBTZWUgIkhlYXJ0UmF0ZSIgYmVsb3cKKyAgICAgKiAgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKgorICAgICAqICBCZWNhdXNlIHRoaXMgc2Vuc29yIGlzIG9uLWNoYW5nZSwgZXZlbnRzIG11c3QgYmUgZ2VuZXJhdGVkIHdoZW4gYW5kIG9ubHkKKyAgICAgKiAgd2hlbiBoZWFydF9yYXRlLmJwbSBvciBoZWFydF9yYXRlLnN0YXR1cyBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QKKyAgICAgKiAgZXZlbnQuIEluIHBhcnRpY3VsYXIsIHVwb24gdGhlIGZpcnN0IGFjdGl2YXRpb24sIHVubGVzcyB0aGUgZGV2aWNlIGlzCisgICAgICogIGtub3duIHRvIG5vdCBiZSBvbiB0aGUgYm9keSwgdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgZmlyc3QgZXZlbnQgbXVzdCBiZQorICAgICAqICBzZXQgdG8gU2Vuc29yU3RhdHVzOjpVTlJFTElBQkxFLiBUaGUgZXZlbnQgc2hvdWxkIGJlIGdlbmVyYXRlZCBubyBmYXN0ZXIKKyAgICAgKiAgdGhhbiBldmVyeSBwZXJpb2RfbnMgcGFzc2VkIHRvIHNldERlbGF5KCkgb3IgdG8gYmF0Y2goKS4KKyAgICAgKiAgU2VlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBvbi1jaGFuZ2UgcmVwb3J0aW5nIG1vZGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiAgU2Vuc29ySW5mby5yZXF1aXJlZFBlcm1pc3Npb24gbXVzdCBiZSBzZXQgdG8KKyAgICAgKiAgU0VOU09SX1BFUk1JU1NJT05fQk9EWV9TRU5TT1JTLgorICAgICAqCisgICAgICogIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBIRUFSVF9SQVRFICAgICAgICAgICAgICAgICAgICAgID0gMjEsCisKKyAgICAvKioKKyAgICAgKiBXQUtFX1VQX1RJTFRfREVURUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogc3BlY2lhbCAoc2V0RGVsYXkgaGFzIG5vIGltcGFjdCkKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSBnZW5lcmF0ZXMgYW4gZXZlbnQgZWFjaCB0aW1lIGEgdGlsdCBldmVudCBpcworICAgICAqIGRldGVjdGVkLiBBIHRpbHQgZXZlbnQgbXVzdCBiZSBnZW5lcmF0ZWQgaWYgdGhlIGRpcmVjdGlvbiBvZiB0aGUKKyAgICAgKiAyLXNlY29uZHMgd2luZG93IGF2ZXJhZ2UgZ3Jhdml0eSBjaGFuZ2VkIGJ5IGF0IGxlYXN0IDM1IGRlZ3JlZXMgc2luY2UgdGhlCisgICAgICogYWN0aXZhdGlvbiBvciB0aGUgbGFzdCB0cmlnZ2VyIG9mIHRoZSBzZW5zb3IuCisgICAgICoKKyAgICAgKiAgcmVmZXJlbmNlX2VzdGltYXRlZF9ncmF2aXR5ID0gYXZlcmFnZSBvZiBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBvdmVyCisgICAgICogIHRoZSBmaXJzdCAxIHNlY29uZCBhZnRlciBhY3RpdmF0aW9uIG9yIHRoZSBlc3RpbWF0ZWQgZ3Jhdml0eSBhdCB0aGUgbGFzdAorICAgICAqICB0cmlnZ2VyLgorICAgICAqCisgICAgICogIGN1cnJlbnRfZXN0aW1hdGVkX2dyYXZpdHkgPSBhdmVyYWdlIG9mIGFjY2VsZXJvbWV0ZXIgbWVhc3VyZW1lbnRzIG92ZXIKKyAgICAgKiAgdGhlIGxhc3QgMiBzZWNvbmRzLgorICAgICAqCisgICAgICogIHRyaWdnZXIgd2hlbgorICAgICAqICAgICBhbmdsZShyZWZlcmVuY2VfZXN0aW1hdGVkX2dyYXZpdHksIGN1cnJlbnRfZXN0aW1hdGVkX2dyYXZpdHkpCisgICAgICogICAgICAgPiAzNSBkZWdyZWVzCisgICAgICoKKyAgICAgKiBMYXJnZSBhY2NlbGVyYXRpb25zIHdpdGhvdXQgYSBjaGFuZ2UgaW4gcGhvbmUgb3JpZW50YXRpb24gbXVzdCBub3QKKyAgICAgKiB0cmlnZ2VyIGEgdGlsdCBldmVudC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgYSBzaGFycCB0dXJuIG9yIHN0cm9uZyBhY2NlbGVyYXRpb24gd2hpbGUgZHJpdmluZyBhIGNhcgorICAgICAqIG11c3Qgbm90IHRyaWdnZXIgYSB0aWx0IGV2ZW50LCBldmVuIHRob3VnaCB0aGUgYW5nbGUgb2YgdGhlIGF2ZXJhZ2UKKyAgICAgKiBhY2NlbGVyYXRpb24gbWlnaHQgdmFyeSBieSBtb3JlIHRoYW4gMzUgZGVncmVlcy4KKyAgICAgKgorICAgICAqIFR5cGljYWxseSwgdGhpcyBzZW5zb3IgaXMgaW1wbGVtZW50ZWQgd2l0aCB0aGUgaGVscCBvZiBvbmx5IGFuCisgICAgICogYWNjZWxlcm9tZXRlci4gT3RoZXIgc2Vuc29ycyBjYW4gYmUgdXNlZCBhcyB3ZWxsIGlmIHRoZXkgZG8gbm90IGluY3JlYXNlCisgICAgICogdGhlIHBvd2VyIGNvbnN1bXB0aW9uIHNpZ25pZmljYW50bHkuIFRoaXMgaXMgYSBsb3cgcG93ZXIgc2Vuc29yIHRoYXQKKyAgICAgKiBtdXN0IGFsbG93IHRoZSBBUCB0byBnbyBpbnRvIHN1c3BlbmQgbW9kZS4gRG8gbm90IGVtdWxhdGUgdGhpcyBzZW5zb3IKKyAgICAgKiBpbiB0aGUgSEFMLgorICAgICAqIExpa2Ugb3RoZXIgd2FrZSB1cCBzZW5zb3JzLCB0aGUgZHJpdmVyIGlzIGV4cGVjdGVkIHRvIGEgaG9sZCBhIHdha2VfbG9jaworICAgICAqIHdpdGggYSB0aW1lb3V0IG9mIDIwMCBtcyB3aGlsZSByZXBvcnRpbmcgdGhpcyBldmVudC4gVGhlIG9ubHkgYWxsb3dlZAorICAgICAqIHJldHVybiB2YWx1ZSBpcyAxLjAuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIFRJTFRfREVURUNUT1IgICAgICAgICAgICAgICAgICAgPSAyMiwKKworICAgIC8qKgorICAgICAqIFdBS0VfR0VTVFVSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbmUtc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3IgZW5hYmxpbmcgd2FraW5nIHVwIHRoZSBkZXZpY2UgYmFzZWQgb24gYSBkZXZpY2Ugc3BlY2lmaWMgbW90aW9uLgorICAgICAqCisgICAgICogV2hlbiB0aGlzIHNlbnNvciB0cmlnZ2VycywgdGhlIGRldmljZSBiZWhhdmVzIGFzIGlmIHRoZSBwb3dlciBidXR0b24gd2FzCisgICAgICogcHJlc3NlZCwgdHVybmluZyB0aGUgc2NyZWVuIG9uLiBUaGlzIGJlaGF2aW9yICh0dXJuaW5nIG9uIHRoZSBzY3JlZW4gd2hlbgorICAgICAqIHRoaXMgc2Vuc29yIHRyaWdnZXJzKSBtaWdodCBiZSBkZWFjdGl2YXRlZCBieSB0aGUgdXNlciBpbiB0aGUgZGV2aWNlCisgICAgICogc2V0dGluZ3MuIENoYW5nZXMgaW4gc2V0dGluZ3MgZG8gbm90IGltcGFjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIHNlbnNvcjoKKyAgICAgKiBvbmx5IHdoZXRoZXIgdGhlIGZyYW1ld29yayB0dXJucyB0aGUgc2NyZWVuIG9uIHdoZW4gaXQgdHJpZ2dlcnMuCisgICAgICoKKyAgICAgKiBUaGUgYWN0dWFsIGdlc3R1cmUgdG8gYmUgZGV0ZWN0ZWQgaXMgbm90IHNwZWNpZmllZCwgYW5kIGNhbiBiZSBjaG9zZW4gYnkKKyAgICAgKiB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBkZXZpY2UuCisgICAgICogVGhpcyBzZW5zb3IgbXVzdCBiZSBsb3cgcG93ZXIsIGFzIGl0IGlzIGxpa2VseSB0byBiZSBhY3RpdmF0ZWQgMjQvNy4KKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIFdBS0VfR0VTVFVSRSAgICAgICAgICAgICAgICAgICAgPSAyMywKKworICAgIC8qKgorICAgICAqIEdMQU5DRV9HRVNUVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uZS1zaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBlbmFibGluZyBicmllZmx5IHR1cm5pbmcgdGhlIHNjcmVlbiBvbiB0byBlbmFibGUgdGhlIHVzZXIgdG8KKyAgICAgKiBnbGFuY2UgY29udGVudCBvbiBzY3JlZW4gYmFzZWQgb24gYSBzcGVjaWZpYyBtb3Rpb24uICBUaGUgZGV2aWNlIG11c3QKKyAgICAgKiB0dXJuIHRoZSBzY3JlZW4gb2ZmIGFmdGVyIGEgZmV3IG1vbWVudHMuCisgICAgICoKKyAgICAgKiBXaGVuIHRoaXMgc2Vuc29yIHRyaWdnZXJzLCB0aGUgZGV2aWNlIHR1cm5zIHRoZSBzY3JlZW4gb24gbW9tZW50YXJpbHkKKyAgICAgKiB0byBhbGxvdyB0aGUgdXNlciB0byBnbGFuY2Ugbm90aWZpY2F0aW9ucyBvciBvdGhlciBjb250ZW50IHdoaWxlIHRoZQorICAgICAqIGRldmljZSByZW1haW5zIGxvY2tlZCBpbiBhIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZSAoZG96aW5nKS4gVGhpcyBiZWhhdmlvcgorICAgICAqIChicmllZmx5IHR1cm5pbmcgb24gdGhlIHNjcmVlbiB3aGVuIHRoaXMgc2Vuc29yIHRyaWdnZXJzKSBtaWdodCBiZQorICAgICAqIGRlYWN0aXZhdGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBkZXZpY2Ugc2V0dGluZ3MuCisgICAgICogQ2hhbmdlcyBpbiBzZXR0aW5ncyBkbyBub3QgaW1wYWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgc2Vuc29yOiBvbmx5CisgICAgICogd2hldGhlciB0aGUgZnJhbWV3b3JrIGJyaWVmbHkgdHVybnMgdGhlIHNjcmVlbiBvbiB3aGVuIGl0IHRyaWdnZXJzLgorICAgICAqCisgICAgICogVGhlIGFjdHVhbCBnZXN0dXJlIHRvIGJlIGRldGVjdGVkIGlzIG5vdCBzcGVjaWZpZWQsIGFuZCBjYW4gYmUgY2hvc2VuIGJ5CisgICAgICogdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgZGV2aWNlLgorICAgICAqIFRoaXMgc2Vuc29yIG11c3QgYmUgbG93IHBvd2VyLCBhcyBpdCBpcyBsaWtlbHkgdG8gYmUgYWN0aXZhdGVkIDI0LzcuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBHTEFOQ0VfR0VTVFVSRSAgICAgICAgICAgICAgICAgID0gMjQsCisKKyAgICAvKioKKyAgICAgKiBQSUNLX1VQX0dFU1RVUkUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb25lLXNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyB3aGVuIHRoZSBkZXZpY2UgaXMgcGlja2VkIHVwIHJlZ2FyZGxlc3Mgb2YKKyAgICAgKiB3aGVyZXZlciBpcyB3YXMgYmVmb3JlIChkZXNrLCBwb2NrZXQsIGJhZykuIFRoZSBvbmx5IGFsbG93ZWQgcmV0dXJuIHZhbHVlCisgICAgICogaXMgMS4wLiBUaGlzIHNlbnNvciBkZS1hY3RpdmF0ZXMgaXRzZWxmIGltbWVkaWF0ZWx5IGFmdGVyIGl0IHRyaWdnZXJzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBQSUNLX1VQX0dFU1RVUkUgICAgICAgICAgICAgICAgID0gMjUsCisKKyAgICAvKioKKyAgICAgKiBXUklTVF9USUxUX0dFU1RVUkUKKyAgICAgKiB0cmlnZ2VyLW1vZGU6IHNwZWNpYWwKKyAgICAgKiB3YWtlLXVwIHNlbnNvcjogeWVzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgdHJpZ2dlcnMgYW4gZXZlbnQgZWFjaCB0aW1lIGEgdGlsdCBvZiB0aGUKKyAgICAgKiB3cmlzdC13b3JuIGRldmljZSBpcyBkZXRlY3RlZC4KKyAgICAgKgorICAgICAqIFRoaXMgc2Vuc29yIG11c3QgYmUgbG93IHBvd2VyLCBhcyBpdCBpcyBsaWtlbHkgdG8gYmUgYWN0aXZhdGVkIDI0LzcuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBXUklTVF9USUxUX0dFU1RVUkUgICAgICAgICAgICAgID0gMjYsCisKKyAgICAvKioKKyAgICAgKiBERVZJQ0VfT1JJRU5UQVRJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBUaGUgY3VycmVudCBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlLiBUaGUgdmFsdWUgaXMgcmVwb3J0ZWQgaW4KKyAgICAgKiB0aGUgInNjYWxhciIgZWxlbWVudCBvZiB0aGUgRXZlbnRQYXlsb2FkIGluIEV2ZW50LiBUaGUKKyAgICAgKiBvbmx5IHZhbHVlcyB0aGF0IGNhbiBiZSByZXBvcnRlZCBhcmUgKHBsZWFzZSByZWZlciB0byBBbmRyb2lkIFNlbnNvcgorICAgICAqIENvb3JkaW5hdGUgU3lzdGVtIHRvIHVuZGVyc3RhbmQgdGhlIFggYW5kIFkgYXhpcyBkaXJlY3Rpb24gd2l0aCByZXNwZWN0CisgICAgICogdG8gZGVmYXVsdCBvcmllbnRhdGlvbik6CisgICAgICogIC0gMDogZGV2aWNlIGlzIGluIGRlZmF1bHQgb3JpZW50YXRpb24gKFkgYXhpcyBpcyB2ZXJ0aWNhbCBhbmQgcG9pbnRzIHVwKQorICAgICAqICAtIDE6IGRldmljZSBpcyByb3RhdGVkIDkwIGRlZ3JlZXMgY291bnRlci1jbG9ja3dpc2UgZnJvbSBkZWZhdWx0CisgICAgICogICAgICAgb3JpZW50YXRpb24gKFggYXhpcyBpcyB2ZXJ0aWNhbCBhbmQgcG9pbnRzIHVwKQorICAgICAqICAtIDI6IGRldmljZSBpcyByb3RhdGVkIDE4MCBkZWdyZWVzIGZyb20gZGVmYXVsdCBvcmllbnRhdGlvbiAoWSBheGlzIGlzCisgICAgICogICAgICAgdmVydGljYWwgYW5kIHBvaW50cyBkb3duKQorICAgICAqICAtIDM6IGRldmljZSBpcyByb3RhdGVkIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIGZyb20gZGVmYXVsdCBvcmllbnRhdGlvbgorICAgICAqICAgICAgIChYIGF4aXMgaXMgdmVydGljYWwgYW5kIHBvaW50cyBkb3duKQorICAgICAqCisgICAgICogTW92aW5nIHRoZSBkZXZpY2UgdG8gYW4gb3JpZW50YXRpb24gd2hlcmUgdGhlIFogYXhpcyBpcyB2ZXJ0aWNhbCAoZWl0aGVyCisgICAgICogdXAgb3IgZG93bikgbXVzdCBub3QgY2F1c2UgYSBuZXcgZXZlbnQgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUbyBpbXByb3ZlIHRoZSB1c2VyIGV4cGVyaWVuY2Ugb2YgdGhpcyBzZW5zb3IsIGl0IGlzIHJlY29tbWVuZGVkIHRvCisgICAgICogaW1wbGVtZW50IHNvbWUgcGh5c2ljYWwgKGkuZS4sIHJvdGF0aW9uIGFuZ2xlKSBhbmQgdGVtcG9yYWwgKGkuZS4sIGRlbGF5KQorICAgICAqIGh5c3RlcmVzaXMuIEluIG90aGVyIHdvcmRzLCBtaW5vciBvciB0cmFuc2llbnQgcm90YXRpb25zIG11c3Qgbm90IGNhdXNlCisgICAgICogYSBuZXcgZXZlbnQgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgbG93IHBvd2VyIHNlbnNvciB0aGF0IGludGVuZGVkIHRvIHJlZHVjZSBpbnRlcnJ1cHRzIG9mCisgICAgICogYXBwbGljYXRpb24gcHJvY2Vzc29yIGFuZCB0aHVzIGFsbG93IGl0IHRvIGdvIHNsZWVwLiBVc2UgaGFyZHdhcmUKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBsb3cgcG93ZXIgY29uc3VtcHRpb24gc2Vuc29ycywgc3VjaCBhcworICAgICAqIGFjY2VsZXJvbWV0ZXIuIERldmljZSBtdXN0IG5vdCBlbXVsYXRlIHRoaXMgc2Vuc29yIGluIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgREVWSUNFX09SSUVOVEFUSU9OICAgICAgICAgICAgICA9IDI3LAorCisgICAgLyoqCisgICAgICogUE9TRV82RE9GCisgICAgICogdHJpZ2dlci1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyB0aGUgcG9zZSBvZiB0aGUgZGV2aWNlLgorICAgICAqIFBvc2Ugb2YgdGhlIGRldmljZSBpcyBkZWZpbmVkIGFzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlIGZyb20gYQorICAgICAqIEVhcnRoIENlbnRlcmVkIEVhcnRoIEZpeGVkIGZyYW1lIGFuZCB0aGUgdHJhbnNsYXRpb24gZnJvbSBhbiBhcmJpdHJhcnkKKyAgICAgKiBwb2ludCBhdCBzdWJzY3JpcHRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIHNlbnNvciBjYW4gYmUgaGlnaCBwb3dlci4gSXQgY2FuIHVzZSBhbnkgYW5kIGFsbCBvZiB0aGUgZm9sbG93aW5nCisgICAgICogICAgICAgICAgIC4gQWNjZWxlcm9tZXRlcgorICAgICAqICAgICAgICAgICAuIEd5cm9zY29wZQorICAgICAqICAgICAgICAgICAuIENhbWVyYQorICAgICAqICAgICAgICAgICAuIERlcHRoIENhbWVyYQorICAgICAqCisgICAgICovCisgICAgUE9TRV82RE9GICAgICAgICAgICAgICAgICAgICAgICA9IDI4LAorCisgICAgLyoqCisgICAgICogU1RBVElPTkFSWV9ERVRFQ1QKKyAgICAgKiB0cmlnZ2VyIG1vZGU6IG9uZSBzaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyBhbiBldmVudCBpZiB0aGUgZGV2aWNlIGlzIHN0aWxsL3N0YXRpb25hcnkKKyAgICAgKiBmb3IgYSB3aGlsZS4gVGhlIHBlcmlvZCBvZiB0aW1lIHRvIG1vbml0b3IgZm9yIHN0YXRpb25hcml0eSBtdXN0IGJlCisgICAgICogZ3JlYXRlciB0aGFuIDUgc2Vjb25kcy4gVGhlIGxhdGVuY3kgbXVzdCBiZSBsZXNzIHRoYW4gMTAgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIFN0YXRpb25hcml0eSBoZXJlIHJlZmVycyB0byBhYnNvbHV0ZSBzdGF0aW9uYXJpdHkuIGVnOiBkZXZpY2Ugb24gZGVzay4KKyAgICAgKgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKi8KKyAgICBTVEFUSU9OQVJZX0RFVEVDVCAgICAgICAgICAgICAgID0gMjksCisKKyAgICAvKioKKyAgICAgKiBNT1RJT05fREVURUNUCisgICAgICogdHJpZ2dlciBtb2RlOiBvbmUgc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgYW4gZXZlbnQgaWYgdGhlIGRldmljZSBpcyBub3Qgc3RpbGwgZm9yCisgICAgICogZm9yIGEgd2hpbGUuIFRoZSBwZXJpb2Qgb2YgdGltZSB0byBtb25pdG9yIGZvciBzdGF0aW9uYXJpdHkgbXVzdCBiZQorICAgICAqIGdyZWF0ZXIgdGhhbiA1IHNlY29uZHMuIFRoZSBsYXRlbmN5IG11c3QgYmUgbGVzcyB0aGFuIDEwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBNb3Rpb24gaGVyZSByZWZlcnMgdG8gYW55IG1lY2hhbmlzbSBpbiB3aGljaCB0aGUgZGV2aWNlIGlzIGNhdXNlcyB0byBiZQorICAgICAqIG1vdmVkIGluIGl0cyBpbmVydGlhbCBmcmFtZS4gZWc6IFBpY2tpbiB1cCB0aGUgZGV2aWNlIGFuZCB3YWxraW5nIHdpdGggaXQKKyAgICAgKiB0byBhIG5lYXJieSByb29tIG1heSB0cmlnZ2VyIG1vdGlvbiB3aGVyZXdhcyBrZWVwaW5nIHRoZSBkZXZpY2Ugb24gYQorICAgICAqIHRhYmxlIG9uIGEgc21vb3RoIHRyYWluIG1vdmluZyBhdCBjb25zdGFudCB2ZWxvY2l0eSBtYXkgbm90IHRyaWdnZXIKKyAgICAgKiBtb3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICovCisgICAgTU9USU9OX0RFVEVDVCAgICAgICAgICAgICAgICAgICA9IDMwLAorCisgICAgLyoqCisgICAgICogSEVBUlRfQkVBVAorICAgICAqIHRyaWdnZXIgbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgYW4gZXZlbnQgZXZlcnl0aW1lIGEgaGVhciBiZWF0IHBlYWsgaXMKKyAgICAgKiBkZXRlY3RlZC4KKyAgICAgKgorICAgICAqIFBlYWsgaGVyZSBpZGVhbGx5IGNvcnJlc3BvbmRzIHRvIHRoZSBwb3NpdGl2ZSBwZWFrIGluIHRoZSBRUlMgY29tcGxleCBvZgorICAgICAqIGFuZCBFQ0cgc2lnbmFsLgorICAgICAqCisgICAgICogVGhlIHNlbnNvciBpcyBub3QgZXhwZWN0ZWQgdG8gYmUgb3B0aW1pemVkIGZvciBsYXRlbmN5LiBBcyBhIGd1aWRlLCBhCisgICAgICogbGF0ZW5jeSBvZiB1cCB0byAxMCBzZWNvbmRzIGlzIGFjY2VwdGFibGUuIEhvd2V2ZXIsIHRoZSB0aW1lc3RhbXAgYXR0YWNoZWQKKyAgICAgKiB0byB0aGUgZXZlbnQgbXVzdCBiZSBhY2N1cmF0bHkgY29ycmVzcG9uZCB0byB0aGUgdGltZSB0aGUgcGVhayBvY2N1cmVkLgorICAgICAqCisgICAgICogVGhlIHNlbnNvciBldmVudCBjb250YWlucyBhIHBhcmFtZXRlciBmb3IgdGhlIGNvbmZpZGVuY2UgaW4gdGhlIGRldGVjdGlvbgorICAgICAqIG9mIHRoZSBwZWFrIHdoZXJlIDAuMCByZXByZXNlbnQgbm8gaW5mb3JtYXRpb24gYXQgYWxsLCBhbmQgMS4wIHJlcHJlc2VudHMKKyAgICAgKiBjZXJ0YWludHkuCisgICAgICovCisgICAgSEVBUlRfQkVBVCAgICAgICAgICAgICAgICAgICAgICA9IDMxLAorCisgICAgLyoqCisgICAgICogRFlOQU1JQ19TRU5TT1JfTUVUQQorICAgICAqIHRyaWdnZXItbW9kZTogc3BlY2lhbAorICAgICAqIHdha2UtdXAgc2Vuc29yOiB5ZXMKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIGV2ZW50IG9mIHRoaXMgdHlwZSBpcyByZWNlaXZlZCB3aGVuIGEgZHluYW1pYyBzZW5zb3IgaXMgYWRkZWQgdG8KKyAgICAgKiBvciByZW1vdmVkIGZyb20gdGhlIHN5c3RlbS4gQXQgbW9zdCBvbmUgc2Vuc29yIG9mIHRoaXMgdHlwZSBjYW4gYmUKKyAgICAgKiBwcmVzZW50IGluIG9uZSBzZW5zb3IgSEFMIGltcGxlbWVudGF0aW9uIGFuZCBwcmVzZW5jZSBvZiBhIHNlbnNvciBvZiB0aGlzCisgICAgICogdHlwZSBpbiBzZW5zb3IgSEFMIGltcGxlbWVudGF0aW9uIGluZGljYXRlcyB0aGF0IHRoaXMgc2Vuc29yIEhBTCBzdXBwb3J0cworICAgICAqIGR5bmFtaWMgc2Vuc29yIGZlYXR1cmUuIE9wZXJhdGlvbnMsIHN1Y2ggYXMgYmF0Y2gsIGFjdGl2YXRlIGFuZCBzZXREZWxheSwKKyAgICAgKiB0byB0aGlzIHNwZWNpYWwgcHVycG9zZSBzZW5zb3IgbXVzdCBiZSB0cmVhdGVkIGFzIG5vLW9wIGFuZCByZXR1cm4KKyAgICAgKiBzdWNjZXNzZnVsOyBmbHVzaCgpIGFsc28gaGFzIHRvIGdlbmVyYXRlIGZsdXNoIGNvbXBsZXRlIGV2ZW50IGFzIGlmIHRoaXMKKyAgICAgKiBpcyBhIHNlbnNvciB0aGF0IGRvZXMgbm90IHN1cHBvcnQgYmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBBIGR5bmFtaWMgc2Vuc29yIGNvbm5lY3Rpb24gaW5kaWNhdGVzIGNvbm5lY3Rpb24gb2YgYSBwaHlzaWNhbCBkZXZpY2Ugb3IKKyAgICAgKiBpbnN0YW50aWF0aW9uIG9mIGEgdmlydHVhbCBzZW5zb3IgYmFja2VkIGJ5IGFsZ29yaXRobTsgYW5kIGEgZHluYW1pYworICAgICAqIHNlbnNvciBkaXNjb25uZWN0aW9uIGluZGljYXRlcyB0aGUgdGhlIG9wcG9zaXRlLiBBIHNlbnNvciBldmVudCBvZgorICAgICAqIERZTkFNSUNfU0VOU09SX01FVEEgdHlwZSBzaG91bGQgYmUgZGVsaXZlcmVkIHJlZ2FyZGxlc3Mgb2YKKyAgICAgKiB0aGUgYWN0aXZhdGlvbiBzdGF0dXMgb2YgdGhlIHNlbnNvciBpbiB0aGUgZXZlbnQgb2YgZHluYW1pYyBzZW5zb3IKKyAgICAgKiBjb25uZWN0aW9uIGFuZCBkaXNjb25uZWN0aW9uLiBJbiB0aGUgc2Vuc29yIGV2ZW50LCBiZXNpZGVzIHRoZSBjb21tb24KKyAgICAgKiBkYXRhIGVudHJpZXMsICJkeW5hbWljX3NlbnNvcl9tZXRhIiwgd2hpY2ggaW5jbHVkZXMgZmllbGRzIGZvciBjb25uZWN0aW9uCisgICAgICogc3RhdHVzLCBoYW5kbGUgb2YgdGhlIHNlbnNvciBpbnZvbHZlZCwgcG9pbnRlciB0byBzZW5zb3JfdCBzdHJ1Y3R1cmUgYW5kCisgICAgICogYSB1dWlkIGZpZWxkLCBtdXN0IGJlIHBvcHVsYXRlZC4KKyAgICAgKgorICAgICAqIEF0IGEgZHluYW1pYyBzZW5zb3IgY29ubmVjdGlvbiBldmVudCwgZmllbGRzIG9mIHNlbnNvcl90IHN0cnVjdHVyZQorICAgICAqIHJlZmVyZW5jZWQgYnkgYSBwb2ludGVyIGluIGR5bmFtaWNfc2Vuc29yX21ldGEgbXVzdCBiZSBmaWxsZWQgYXMgaWYgaXQKKyAgICAgKiB3YXMgcmVndWxhciBzZW5zb3JzLiBTZW5zb3IgSEFMIGlzIHJlc3BvbnNpYmxlIGZvciByZWNvdmVyeSBvZiBtZW1vcnkgaWYKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGlzIGR5bmFtaWNpYWxseSBhbGxvY2F0ZWQuIEhvd2V2ZXIsIHRoZSB0aGUKKyAgICAgKiBwb2ludGVyIG11c3QgYmUgdmFsaWQgdW50aWwgdGhlIGZpcnN0IGFjdGl2YXRlIGNhbGwgdG8gdGhlIHNlbnNvcgorICAgICAqIHJlcG9ydGVkIGluIHRoaXMgY29ubmVjdGlvbiBldmVudC4gQXQgYSBkeW5hbWljIHNlbnNvciBkaXNjb25uZWN0aW9uLAorICAgICAqIHRoZSBzZW5zb3JfdCBwb2ludGVyIG11c3QgYmUgTlVMTC4KKyAgICAgKgorICAgICAqIFRoZSBzZW5zb3IgaGFuZGxlIGFzc2lnbmVkIHRvIGR5bmFtaWMgc2Vuc29ycyBtdXN0IG5ldmVyIGJlIHRoZSBzYW1lIGFzCisgICAgICogdGhhdCBvZiBhbnkgcmVndWxhciBzdGF0aWMgc2Vuc29ycywgYW5kIG11c3QgYmUgdW5pcXVlIHVudGlsIG5leHQgYm9vdC4KKyAgICAgKiBJbiBhbm90aGVyIHdvcmQsIGlmIGEgaGFuZGxlIGggaXMgdXNlZCBmb3IgYSBkeW5hbWljIHNlbnNvciBBLCB0aGF0IHNhbWUKKyAgICAgKiBudW1iZXIgY2Fubm90IGJlIHVzZWQgZm9yIHRoZSBzYW1lIGR5bmFtaWMgc2Vuc29yIEEgb3IgYW5vdGhlciBkeW5hbWljCisgICAgICogc2Vuc29yIEIgZXZlbiBhZnRlciBkaXNjb25uZWN0aW9uIG9mIEEgdW50aWwgcmVib290LgorICAgICAqCisgICAgICogVGhlIFVVSUQgZmllbGQgd2lsbCBiZSB1c2VkIGZvciBpZGVudGlmeWluZyB0aGUgc2Vuc29yIGluIGFkZGl0aW9uIHRvCisgICAgICogbmFtZSwgdmVuZG9yIGFuZCB2ZXJzaW9uIGFuZCB0eXBlLiBGb3IgcGh5c2ljYWwgc2Vuc29ycyBvZiB0aGUgc2FtZQorICAgICAqIG1vZGVsLCBhbGwgc2Vuc29ycyB3aWxsIGhhdmUgdGhlIHNhbWUgdmFsdWVzIGluIHNlbnNvcl90LCBidXQgdGhlIFVVSUQKKyAgICAgKiBtdXN0IGJlIHVuaXF1ZSBhbmQgcGVyc2lzdGVudCBmb3IgZWFjaCBpbmRpdmlkdWFsIHVuaXQuIEFuIGFsbCB6ZXJvCisgICAgICogVVVJRCBpbmRpY2F0ZXMgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGRpZmZlcmVudGlhdGUgaW5kaXZpZHVhbCBzZW5zb3IKKyAgICAgKiB1bml0LgorICAgICAqCisgICAgICovCisgICAgRFlOQU1JQ19TRU5TT1JfTUVUQSAgICAgICAgICAgICA9IDMyLAorCisgICAgLyoqCisgICAgICogQURESVRJT05BTF9JTkZPCisgICAgICogcmVwb3J0aW5nLW1vZGU6IE4vQQorICAgICAqCisgICAgICogVGhpcyBzZW5zb3IgdHlwZSBpcyBmb3IgZGVsaXZlcmluZyBhZGRpdGlvbmFsIHNlbnNvciBpbmZvcm1hdGlvbiBhc2lkZQorICAgICAqIGZyb20gc2Vuc29yIGV2ZW50IGRhdGEuCisgICAgICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBtYXkgaW5jbHVkZSBzZW5zb3IgZnJvbnQtZW5kIGdyb3VwIGRlbGF5LCBpbnRlcm5hbAorICAgICAqIGNhbGlicmF0aW9uIHBhcmFtZXRlcnMsIG5vaXNlIGxldmVsIG1ldHJpY3MsIGRldmljZSBpbnRlcm5hbCB0ZW1wZXJhdHVyZSwKKyAgICAgKiBldGMuCisgICAgICoKKyAgICAgKiBUaGlzIHR5cGUgd2lsbCBuZXZlciBiaW5kIHRvIGEgc2Vuc29yLiBJbiBvdGhlciB3b3Jkcywgbm8gc2Vuc29yIGluIHRoZQorICAgICAqIHNlbnNvciBsaXN0IGNhbiBoYXZlIHRoZSB0eXBlIFNFTlNPUl9UWVBFX0FERElUSU9OQUxfSU5GTy4gSWYgYQorICAgICAqIHNlbnNvciBIQUwgc3VwcG9ydHMgc2Vuc29yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZmVhdHVyZSwgaXQgcmVwb3J0cworICAgICAqIHNlbnNvcl9ldmVudF90IHdpdGggInNlbnNvciIgZmllbGQgc2V0IHRvIGhhbmRsZSBvZiB0aGUgcmVwb3J0aW5nIHNlbnNvcgorICAgICAqIGFuZCAidHlwZSIgZmllbGQgc2V0IHRvIEFERElUSU9OQUxfSU5GTy4gRGVsaXZlcnkgb2YKKyAgICAgKiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGV2ZW50cyBpcyB0cmlnZ2VyZWQgdW5kZXIgdHdvIGNvbmRpdGlvbnM6IGFuCisgICAgICogZW5hYmxlIGFjdGl2YXRlKCkgY2FsbCBvciBhIGZsdXNoKCkgY2FsbCB0byB0aGUgY29ycmVzcG9uZGluZyBzZW5zb3IuCisgICAgICogQmVzaWRlcywgdGltZSB2YXJ5aW5nIHBhcmFtZXRlcnMgY2FuIHVwZGF0ZSBpbmZyZXF1ZW50bHkgd2l0aG91dCBiZWluZworICAgICAqIHRyaWdnZXJlZC4gRGV2aWNlIGlzIHJlc3BvbnNpYmxlIHRvIGNvbnRyb2wgdXBkYXRlIHJhdGUuIFRoZSByZWNvbW1lbmQKKyAgICAgKiB1cGRhdGUgcmF0ZSBpcyBsZXNzIHRoYW4gMS8xMDAwIG9mIHNlbnNvciBldmVudCByYXRlIG9yIGxlc3MgdGhhbiBvbmNlCisgICAgICogcGVyIG1pbnV0ZSBpbiBhdmVyYWdlLgorICAgICAqCisgICAgICogQSBzaW5nbGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZXBvcnQgY29uc2lzdHMgb2YgbXVsdGlwbGUgZnJhbWVzLgorICAgICAqIFNlcXVlbmNlcyBvZiB0aGVzZSBmcmFtZXMgYXJlIG9yZGVyZWQgdXNpbmcgdGltZXN0YW1wcywgd2hpY2ggbWVhbnMgdGhlCisgICAgICogdGltZXN0YW1wcyBvZiBzZXF1ZW50aWFsIGZyYW1lcyBoYXZlIHRvIGJlIGF0IGxlYXN0IDEgbmFub3NlY29uZCBhcGFydAorICAgICAqIGZyb20gZWFjaCBvdGhlci4gRWFjaCBmcmFtZSBpcyBhIHNlbnNvcl9ldmVudF90IGRlbGl2ZXJlZCB0aHJvdWdoIHRoZSBIQUwKKyAgICAgKiBpbnRlcmZhY2UsIHdpdGggcmVsYXRlZCBkYXRhIHN0b3JlZCBpbiB0aGUgImFkZGl0aW9uYWxfaW5mbyIgZmllbGQsIHdoaWNoCisgICAgICogaXMgb2YgdHlwZSBhZGRpdGlvbmFsX2luZm9fZXZlbnRfdC4KKyAgICAgKiBUaGUgInR5cGUiIGZpZWxkIG9mIGFkZGl0aW9uYWxfaW5mb19ldmVudF90IGRlbm90ZXMgdGhlIG5hdHVyZSBvZiB0aGUKKyAgICAgKiBwYXlsb2FkIGRhdGEgKHNlZSBhZGRpdGlvbmFsX2luZm9fdHlwZV90KS4KKyAgICAgKiBUaGUgInNlcmlhbCIgZmllbGQgaXMgdXNlZCB0byBrZWVwIHRoZSBzZXF1ZW5jZSBvZiBwYXlsb2FkIGRhdGEgdGhhdAorICAgICAqIHNwYW5zIG11bHRpcGxlIGZyYW1lcy4gVGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBlbnRpcmUgcmVwb3J0IGlzIGFsd2F5cyBvZgorICAgICAqIHR5cGUgQUlORk9fQkVHSU4sIGFuZCB0aGUgbGFzdCBmcmFtZSBpcyBhbHdheXMgQUlORk9fRU5ELgorICAgICAqCisgICAgICogSWYgZmx1c2goKSB3YXMgdHJpZ2dlcmluZyB0aGUgcmVwb3J0LCBhbGwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmcmFtZXMKKyAgICAgKiBtdXN0IGJlIGRlbGl2ZXJlZCBhZnRlciBmbHVzaCBjb21wbGV0ZSBldmVudC4KKyAgICAgKi8KKyAgICBBRERJVElPTkFMX0lORk8gICAgICAgICAgICAgICAgID0gMzMsCisKKyAgICAvKioKKyAgICAgKiBMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVAorICAgICAqIHRyaWdnZXItbW9kZTogb24tY2hhbmdlCisgICAgICogd2FrZS11cCBzZW5zb3I6IHllcworICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIGlzIGRlZmluZWQgZm9yIGRldmljZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgd29ybgorICAgICAqIGJ5IHRoZSB1c2VyIGluIHRoZSBub3JtYWwgdXNlIGNhc2UgKHN1Y2ggYXMgYSB3YXRjaCwgd3Jpc3RiYW5kLCBldGMpIGFuZAorICAgICAqIGlzIG5vdCB5ZXQgZGVmaW5lZCBmb3Igb3RoZXIgZGV2aWNlLgorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIGFuIGV2ZW50IGVhY2ggdGltZSB0aGUgd2VhcmFibGUgZGV2aWNlCisgICAgICogaXMgcmVtb3ZlZCBmcm9tIHRoZSBib2R5IGFuZCBlYWNoIHRpbWUgaXQncyBwdXQgYmFjayBvbnRvIHRoZSBib2R5LgorICAgICAqIEl0IG11c3QgYmUgbG93LWxhdGVuY3kgYW5kIGJlIGFibGUgdG8gZGV0ZWN0IHRoZSBvbi1ib2R5IHRvIG9mZi1ib2R5CisgICAgICogdHJhbnNpdGlvbiB3aXRoaW4gb25lIHNlY29uZCAoZXZlbnQgZGVsaXZlcnkgdGltZSBpbmNsdWRlZCksCisgICAgICogYW5kIDMtc2Vjb25kIGxhdGVuY3kgdG8gZGV0ZXJtaW5lIHRoZSBvZmYtYm9keSB0byBvbi1ib2R5IHRyYW5zaXRpb24KKyAgICAgKiAoZXZlbnQgZGVsaXZlcnkgdGltZSBpbmNsdWRlZCkuCisgICAgICoKKyAgICAgKiBUaGVyZSBhcmUgb25seSB0d28gdmFsaWQgZXZlbnQgdmFsdWVzIGZvciB0aGUgc2Vuc29yIHRvIHJldHVybiA6CisgICAgICogICAgMC4wIGZvciBvZmYtYm9keQorICAgICAqICAgIDEuMCBmb3Igb24tYm9keQorICAgICAqCisgICAgICovCisgICAgTE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1QgICAgICA9IDM0LAorCisgICAgLyoqCisgICAgICogQUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gU0kgdW5pdHMgKG0vc14yKSBhbmQgbWVhc3VyZSB0aGUgYWNjZWxlcmF0aW9uIG9mIHRoZQorICAgICAqIGRldmljZSBtaW51cyB0aGUgYWNjZWxlcmF0aW9uIGR1ZSB0byBncmF2aXR5LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVEICAgICAgPSAzNSwKKworICAgIC8qKgorICAgICAqIEJhc2UgZm9yIGRldmljZSBtYW51ZmFjdHVyZXJzIHByaXZhdGUgc2Vuc29yIHR5cGVzLgorICAgICAqIFRoZXNlIHNlbnNvciB0eXBlcyBjYW4ndCBiZSBleHBvc2VkIGluIHRoZSBTREsuCisgICAgICovCisgICAgREVWSUNFX1BSSVZBVEVfQkFTRSAgICAgICAgICAgICA9IDB4MTAwMDAKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfRkxBR18iKQorZW51bSBTZW5zb3JGbGFnQml0cyA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBXaGV0aGVyIHRoaXMgc2Vuc29yIHdha2VzIHVwIHRoZSBBUCBmcm9tIHN1c3BlbmQgbW9kZSB3aGVuIGRhdGEgaXMKKyAgICAgKiBhdmFpbGFibGUuICBXaGVuZXZlciBzZW5zb3IgZXZlbnRzIGFyZSBkZWxpdmVyZWQgZnJvbSBhIHdha2VfdXAgc2Vuc29yLAorICAgICAqIHRoZSBkcml2ZXIgbmVlZHMgdG8gaG9sZCBhIHdha2VfbG9jayB0aWxsIHRoZSBldmVudHMgYXJlIHJlYWQgYnkgdGhlCisgICAgICogU2Vuc29yU2VydmljZSBpLmUgdGlsbCBJU2Vuc29yczo6cG9sbCgpIGlzIGNhbGxlZCB0aGUgbmV4dCB0aW1lLgorICAgICAqIE9uY2UgcG9sbCBpcyBjYWxsZWQgYWdhaW4gaXQgbWVhbnMgZXZlbnRzIGhhdmUgYmVlbiByZWFkIGJ5IHRoZQorICAgICAqIFNlbnNvclNlcnZpY2UsIHRoZSBkcml2ZXIgY2FuIHNhZmVseSByZWxlYXNlIHRoZSB3YWtlX2xvY2suIFNlbnNvclNlcnZpY2UKKyAgICAgKiB3aWxsIGNvbnRpbnVlIHRvIGhvbGQgYSB3YWtlX2xvY2sgdGlsbCB0aGUgYXBwIGFjdHVhbGx5IHJlYWRzIHRoZSBldmVudHMuCisgICAgICovCisgICAgV0FLRV9VUCAgICAgICAgICAgICAgICAgICAgID0gMSwKKworICAgIC8qKgorICAgICAqIFJlcG9ydGluZyBtb2RlcyBmb3IgdmFyaW91cyBzZW5zb3JzLiBFYWNoIHNlbnNvciB3aWxsIGhhdmUgZXhhY3RseSBvbmUgb2YKKyAgICAgKiB0aGVzZSBtb2RlcyBzZXQuCisgICAgICogVGhlIGxlYXN0IHNpZ25pZmljYW50IDJuZCwgM3JkIGFuZCA0dGggYml0cyBhcmUgdXNlZCB0byByZXByZXNlbnQgZm91cgorICAgICAqIHBvc3NpYmxlIHJlcG9ydGluZyBtb2Rlcy4KKyAgICAgKi8KKyAgICBDT05USU5VT1VTX01PREUgICAgICAgICAgICAgPSAwLAorICAgIE9OX0NIQU5HRV9NT0RFICAgICAgICAgICAgICA9IDIsCisgICAgT05FX1NIT1RfTU9ERSAgICAgICAgICAgICAgID0gNCwKKyAgICBTUEVDSUFMX1JFUE9SVElOR19NT0RFICAgICAgPSA2LAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiB0aGUgc2Vuc29yIHN1cHBvcnRzIGRhdGFfaW5qZWN0aW9uIG1vZGUgYW5kIGFsbG93cyBkYXRhCisgICAgICogdG8gYmUgaW5qZWN0ZWQgZnJvbSB0aGUgU2Vuc29yU2VydmljZS4gV2hlbiBpbiBkYXRhX2luamVjdGlvbiBPTkxZCisgICAgICogc2Vuc29ycyB3aXRoIHRoaXMgZmxhZyBzZXQgYXJlIGluamVjdGVkIHNlbnNvciBkYXRhIGFuZCBvbmx5IHNlbnNvcnMgd2l0aAorICAgICAqIHRoaXMgZmxhZyBzZXQgYXJlIGFjdGl2YXRlZC4gRWc6IEFjY2VsZXJvbWV0ZXIgYW5kIFN0ZXAgQ291bnRlciBzZW5zb3JzCisgICAgICogY2FuIGJlIHNldCB3aXRoIHRoaXMgZmxhZyBhbmQgU2Vuc29yU2VydmljZSB3aWxsIGluamVjdCBhY2NlbGVyb21ldGVyCisgICAgICogZGF0YSBhbmQgcmVhZCB0aGUgY29ycmVzcG9uZGluZyBzdGVwIGNvdW50cy4KKyAgICAgKi8KKyAgICBEQVRBX0lOSkVDVElPTiAgICAgICAgICAgICAgPSAweDEwLAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiB0aGUgc2Vuc29yIGlzIGEgZHluYW1pY2FsbHkgY29ubmVjdGVkIHNlbnNvci4gU2VlCisgICAgICogRHluYW1pY1NlbnNvckluZm8gYW5kIERZTkFNSUNfU0VOU09SX01FVEEgZm9yIGRldGFpbHMuCisgICAgICovCisgICAgRFlOQU1JQ19TRU5TT1IgICAgICAgICAgICAgID0gMHgyMCwKKworICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZsYWcgaWYgc2Vuc29yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgc3VwcG9ydGVkLgorICAgICAqIFNlZSBBRERJVElPTkFMX0lORk8gYW5kIEFkZGl0aW9uYWxJbmZvIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIEFERElUSU9OQUxfSU5GTyAgICAgICAgICAgICA9IDB4NDAsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHNlbnNvciBzdXBwb3IgZGlyZWN0IGNoYW5uZWwgYmFja2VkIGJ5IGFzaG1lbS4KKyAgICAgKiBTZWUgU2hhcmVkTWVtVHlwZSBhbmQgcmVnaXN0ZXJEaXJlY3RDaGFubmVsIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgRElSRUNUX0NIQU5ORUxfQVNITUVNICAgICAgID0gMHg0MDAsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHNlbnNvciBzdXBwb3IgZGlyZWN0IGNoYW5uZWwgYmFja2VkIGJ5IGdyYWxsb2MgSEFMIG1lbW9yeS4KKyAgICAgKiBTZWUgU2hhcmVkTWVtVHlwZSBhbmQgcmVnaXN0ZXJEaXJlY3RDaGFubmVsIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgRElSRUNUX0NIQU5ORUxfR1JBTExPQyAgICAgID0gMHg4MDAsCisKKyAgICAvKioKKyAgICAgKiBGbGFncyBtYXNrIGZvciByZXBvcnRpbmcgbW9kZSBvZiBzZW5zb3IuCisgICAgICovCisgICAgTUFTS19SRVBPUlRJTkdfTU9ERSAgICAgICAgID0gMHhFLAorCisgICAgLyoqCisgICAgICogRmxhZ3MgbWFzayBmb3IgZGlyZWN0IHJlcG9ydCBtYXhpbXVtIHJhdGUgbGV2ZWwgc3VwcG9ydC4KKyAgICAgKiBTZWUgUmF0ZUxldmVsLgorICAgICAqLworICAgIE1BU0tfRElSRUNUX1JFUE9SVCAgICAgICAgICA9IDB4MzgwLAorCisgICAgLyoqCisgICAgICogRmxhZ3MgbWFzayBmb3IgYWxsIGRpcmVjdCBjaGFubmVsIHN1cHBvcnQgYml0cy4KKyAgICAgKiBTZWUgU2hhcmVkTWVtVHlwZS4KKyAgICAgKi8KKyAgICBNQVNLX0RJUkVDVF9DSEFOTkVMICAgICAgICAgPSAweEMwMCwKK307CisKK0BleHBvcnQobmFtZT0ic2Vuc29yX2ZsYWdfc2hpZnRfdCIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0ZMQUdfU0hJRlRfIikKK2VudW0gU2Vuc29yRmxhZ1NoaWZ0IDogdWludDhfdCB7CisgICAgUkVQT1JUSU5HX01PREUgICAgICAgICAgICAgID0gMSwKKyAgICBEQVRBX0lOSkVDVElPTiAgICAgICAgICAgICAgPSA0LAorICAgIERZTkFNSUNfU0VOU09SICAgICAgICAgICAgICA9IDUsCisgICAgQURESVRJT05BTF9JTkZPICAgICAgICAgICAgID0gNiwKKyAgICBESVJFQ1RfUkVQT1JUICAgICAgICAgICAgICAgPSA3LAorICAgIERJUkVDVF9DSEFOTkVMICAgICAgICAgICAgICA9IDEwLAorfTsKKworc3RydWN0IFNlbnNvckluZm8geworICAgIC8qKgorICAgICAqIGhhbmRsZSB0aGF0IGlkZW50aWZpZXMgdGhpcyBzZW5zb3JzLiBUaGlzIGhhbmRsZSBpcyB1c2VkIHRvIHJlZmVyZW5jZQorICAgICAqIHRoaXMgc2Vuc29yIHRocm91Z2hvdXQgdGhlIEhBTCBBUEkuCisgICAgICovCisgICAgaW50MzJfdCBzZW5zb3JIYW5kbGU7CisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoaXMgc2Vuc29yLgorICAgICAqIEFsbCBzZW5zb3JzIG9mIHRoZSBzYW1lICJ0eXBlIiBtdXN0IGhhdmUgYSBkaWZmZXJlbnQgIm5hbWUiLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqIHZlbmRvciBvZiB0aGUgaGFyZHdhcmUgcGFydCAqLworICAgIHN0cmluZyB2ZW5kb3I7CisKKyAgICAvKioKKyAgICAgKiB2ZXJzaW9uIG9mIHRoZSBoYXJkd2FyZSBwYXJ0ICsgZHJpdmVyLiBUaGUgdmFsdWUgb2YgdGhpcyBmaWVsZAorICAgICAqIG11c3QgaW5jcmVhc2Ugd2hlbiB0aGUgZHJpdmVyIGlzIHVwZGF0ZWQgaW4gYSB3YXkgdGhhdCBjaGFuZ2VzIHRoZQorICAgICAqIG91dHB1dCBvZiB0aGlzIHNlbnNvci4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGZ1c2VkIHNlbnNvcnMgd2hlbiB0aGUKKyAgICAgKiBmdXNpb24gYWxnb3JpdGhtIGlzIHVwZGF0ZWQuCisgICAgICovCisgICAgaW50MzJfdCB2ZXJzaW9uOworCisgICAgLyoqIHRoaXMgc2Vuc29yJ3MgdHlwZS4gKi8KKyAgICBTZW5zb3JUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiB0eXBlIG9mIHRoaXMgc2Vuc29yIGFzIGEgc3RyaW5nLgorICAgICAqCisgICAgICogV2hlbiBkZWZpbmluZyBhbiBPRU0gc3BlY2lmaWMgc2Vuc29yIG9yIHNlbnNvciBtYW51ZmFjdHVyZXIgc3BlY2lmaWMKKyAgICAgKiBzZW5zb3IsIHVzZSB5b3VyIHJlc2VydmUgZG9tYWluIG5hbWUgYXMgYSBwcmVmaXguCisgICAgICogZS5nLiBjb20uZ29vZ2xlLmdsYXNzLm9uaGVhZGRldGVjdG9yCisgICAgICoKKyAgICAgKiBGb3Igc2Vuc29ycyBvZiBrbm93biB0eXBlIGRlZmluZWQgaW4gU2Vuc29yVHlwZSAodmFsdWUgPAorICAgICAqIFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpLCB0aGlzIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmcuCisgICAgICovCisgICAgc3RyaW5nIHR5cGVBc1N0cmluZzsKKworICAgIC8qKiBtYXhpbXVtIHJhbmdlIG9mIHRoaXMgc2Vuc29yJ3MgdmFsdWUgaW4gU0kgdW5pdHMgKi8KKyAgICBmbG9hdCBtYXhSYW5nZTsKKworICAgIC8qKiBzbWFsbGVzdCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIHZhbHVlcyByZXBvcnRlZCBieSB0aGlzIHNlbnNvciAqLworICAgIGZsb2F0IHJlc29sdXRpb247CisKKyAgICAvKiogcm91Z2ggZXN0aW1hdGUgb2YgdGhpcyBzZW5zb3IncyBwb3dlciBjb25zdW1wdGlvbiBpbiBtQSAqLworICAgIGZsb2F0IHBvd2VyOworCisgICAgLyoqCisgICAgICogdGhpcyB2YWx1ZSBkZXBlbmRzIG9uIHRoZSByZXBvcnRpbmcgbW9kZToKKyAgICAgKgorICAgICAqICAgY29udGludW91czogbWluaW11bSBzYW1wbGUgcGVyaW9kIGFsbG93ZWQgaW4gbWljcm9zZWNvbmRzCisgICAgICogICBvbi1jaGFuZ2UgOiAwCisgICAgICogICBvbmUtc2hvdCAgOi0xCisgICAgICogICBzcGVjaWFsICAgOiAwLCB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkCisgICAgICovCisgICAgaW50MzJfdCBtaW5EZWxheTsKKworICAgIC8qKgorICAgICAqIG51bWJlciBvZiBldmVudHMgcmVzZXJ2ZWQgZm9yIHRoaXMgc2Vuc29yIGluIHRoZSBiYXRjaCBtb2RlIEZJRk8uCisgICAgICogSWYgdGhlcmUgaXMgYSBkZWRpY2F0ZWQgRklGTyBmb3IgdGhpcyBzZW5zb3IsIHRoZW4gdGhpcyBpcyB0aGUKKyAgICAgKiBzaXplIG9mIHRoaXMgRklGTy4gSWYgdGhlIEZJRk8gaXMgc2hhcmVkIHdpdGggb3RoZXIgc2Vuc29ycywKKyAgICAgKiB0aGlzIGlzIHRoZSBzaXplIHJlc2VydmVkIGZvciB0aGF0IHNlbnNvciBhbmQgaXQgY2FuIGJlIHplcm8uCisgICAgICovCisgICAgdWludDMyX3QgZmlmb1Jlc2VydmVkRXZlbnRDb3VudDsKKworICAgIC8qKgorICAgICAqIG1heGltdW0gbnVtYmVyIG9mIGV2ZW50cyBvZiB0aGlzIHNlbnNvciB0aGF0IGNvdWxkIGJlIGJhdGNoZWQuCisgICAgICogVGhpcyBpcyBlc3BlY2lhbGx5IHJlbGV2YW50IHdoZW4gdGhlIEZJRk8gaXMgc2hhcmVkIGJldHdlZW4KKyAgICAgKiBzZXZlcmFsIHNlbnNvcnM7IHRoaXMgdmFsdWUgaXMgdGhlbiBzZXQgdG8gdGhlIHNpemUgb2YgdGhhdCBGSUZPLgorICAgICAqLworICAgIHVpbnQzMl90IGZpZm9NYXhFdmVudENvdW50OworCisgICAgLyoqCisgICAgICogcGVybWlzc2lvbiByZXF1aXJlZCB0byBzZWUgdGhpcyBzZW5zb3IsIHJlZ2lzdGVyIHRvIGl0IGFuZCByZWNlaXZlIGRhdGEuCisgICAgICogU2V0IHRvICIiIGlmIG5vIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQuIFNvbWUgc2Vuc29yIHR5cGVzIGxpa2UgdGhlCisgICAgICogaGVhcnQgcmF0ZSBtb25pdG9yIGhhdmUgYSBtYW5kYXRvcnkgcmVxdWlyZV9wZXJtaXNzaW9uLgorICAgICAqIEZvciBzZW5zb3JzIHRoYXQgYWx3YXlzIHJlcXVpcmUgYSBzcGVjaWZpYyBwZXJtaXNzaW9uLCBsaWtlIHRoZSBoZWFydAorICAgICAqIHJhdGUgbW9uaXRvciwgdGhlIGFuZHJvaWQgZnJhbWV3b3JrIG1pZ2h0IG92ZXJ3cml0ZSB0aGlzIHN0cmluZworICAgICAqIGF1dG9tYXRpY2FsbHkuCisgICAgICovCisgICAgc3RyaW5nIHJlcXVpcmVkUGVybWlzc2lvbjsKKworICAgIC8qKgorICAgICAqIFRoaXMgdmFsdWUgaXMgZGVmaW5lZCBvbmx5IGZvciBjb250aW51b3VzIG1vZGUgYW5kIG9uLWNoYW5nZSBzZW5zb3JzLgorICAgICAqIEl0IGlzIHRoZSBkZWxheSBiZXR3ZWVuIHR3byBzZW5zb3IgZXZlbnRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxvd2VzdAorICAgICAqIGZyZXF1ZW5jeSB0aGF0IHRoaXMgc2Vuc29yIHN1cHBvcnRzLiBXaGVuIGxvd2VyIGZyZXF1ZW5jaWVzIGFyZSByZXF1ZXN0ZWQKKyAgICAgKiB0aHJvdWdoIGJhdGNoKCkvc2V0RGVsYXkoKSB0aGUgZXZlbnRzIHdpbGwgYmUgZ2VuZXJhdGVkIGF0IHRoaXMgZnJlcXVlbmN5CisgICAgICogaW5zdGVhZC4KKyAgICAgKiBJdCBjYW4gYmUgdXNlZCBieSB0aGUgZnJhbWV3b3JrIG9yIGFwcGxpY2F0aW9ucyB0byBlc3RpbWF0ZSB3aGVuIHRoZQorICAgICAqIGJhdGNoIEZJRk8gbWF5IGJlIGZ1bGwuCisgICAgICoKKyAgICAgKiBOT1RFOiBwZXJpb2ROcyBpcyBpbiBuYW5vc2Vjb25kcyB3aGVyZSBhcyBtYXhEZWxheS9taW5EZWxheSBhcmUgaW4KKyAgICAgKiAgICAgICBtaWNyb3NlY29uZHMuCisgICAgICoKKyAgICAgKiAgICAgICBjb250aW51b3VzLCBvbi1jaGFuZ2U6IG1heGltdW0gc2FtcGxpbmcgcGVyaW9kIGFsbG93ZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pY3Jvc2Vjb25kcy4KKyAgICAgKgorICAgICAqICAgICAgICAgIG9uZS1zaG90LCBzcGVjaWFsIDogMAorICAgICAqLworICAgIGludDMyX3QgbWF4RGVsYXk7CisKKyAgICAvKiogQml0bWFzayBvZiBTZW5zb3JGbGFnQml0cyAqLworICAgIGJpdGZpZWxkPFNlbnNvckZsYWdCaXRzPiBmbGFnczsKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfU1RBVFVTXyIpCitlbnVtIFNlbnNvclN0YXR1cyA6IGludDhfdCB7CisgICAgTk9fQ09OVEFDVCAgICAgICAgICA9IC0xLAorICAgIFVOUkVMSUFCTEUgICAgICAgICAgPSAwLAorICAgIEFDQ1VSQUNZX0xPVyAgICAgICAgPSAxLAorICAgIEFDQ1VSQUNZX01FRElVTSAgICAgPSAyLAorICAgIEFDQ1VSQUNZX0hJR0ggICAgICAgPSAzLAorfTsKKworc3RydWN0IFZlYzMgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAgICBmbG9hdCB6OworICAgIFNlbnNvclN0YXR1cyBzdGF0dXM7Cit9OworCitzdHJ1Y3QgVmVjNCB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdCB5OworICAgIGZsb2F0IHo7CisgICAgZmxvYXQgdzsKK307CisKK3N0cnVjdCBVbmNhbCB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdCB5OworICAgIGZsb2F0IHo7CisgICAgZmxvYXQgeF9iaWFzOworICAgIGZsb2F0IHlfYmlhczsKKyAgICBmbG9hdCB6X2JpYXM7Cit9OworCitzdHJ1Y3QgSGVhcnRSYXRlIHsKKyAgICAvKioKKyAgICAgKiBIZWFydCByYXRlIGluIGJlYXRzIHBlciBtaW51dGUuCisgICAgICogU2V0IHRvIDAgd2hlbiBzdGF0dXMgaXMgU2Vuc29yU3RhdHVzOjpVTlJFTElBQkxFIG9yCisgICAgICogU2Vuc29yU3RhdHVzOjpOT19DT05UQUNUCisgICAgICovCisgICAgZmxvYXQgYnBtOworCisgICAgLyoqIFN0YXR1cyBvZiB0aGUgaGVhcnQgcmF0ZSBzZW5zb3IgZm9yIHRoaXMgcmVhZGluZy4gKi8KKyAgICBTZW5zb3JTdGF0dXMgc3RhdHVzOworfTsKKworQGV4cG9ydChuYW1lPSIiKQorZW51bSBNZXRhRGF0YUV2ZW50VHlwZSA6IHVpbnQzMl90IHsKKyAgICBNRVRBX0RBVEFfRkxVU0hfQ09NUExFVEUgPSAxLAorfTsKKworc3RydWN0IE1ldGFEYXRhIHsKKyAgICBNZXRhRGF0YUV2ZW50VHlwZSB3aGF0OworfTsKKworc3RydWN0IER5bmFtaWNTZW5zb3JJbmZvIHsKKyAgICBib29sIGNvbm5lY3RlZDsKKyAgICBpbnQzMl90IHNlbnNvckhhbmRsZTsKKworICAgIC8qKgorICAgICAqIFVVSUQgb2YgYSBkeW5hbWljIHNlbnNvciAodXNpbmcgUkZDIDQxMjIgYnl0ZSBvcmRlcikKKyAgICAgKiBGb3IgVVVJRCAxMjM0NTY3OC05MEFCLUNERUYtMTEyMi0zMzQ0NTU2Njc3ODggdGhlIHV1aWQgZmllbGQgaXMKKyAgICAgKiBpbml0aWFsaXplZCBhczoKKyAgICAgKiAgIHsweDEyLCAweDM0LCAweDU2LCAweDc4LCAweDkwLCAweEFCLCAweENELCAweEVGLCAweDExLCAuLi59CisgICAgICovCisgICAgdWludDhfdFsxNl0gdXVpZDsKK307CisKK0BleHBvcnQobmFtZT0iYWRkaXRpb25hbF9pbmZvX3R5cGVfdCIpCitlbnVtIEFkZGl0aW9uYWxJbmZvVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKiogTWFya3MgdGhlIGJlZ2lubmluZyBvZiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyYW1lcyAqLworICAgIEFJTkZPX0JFR0lOICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAvKiogTWFya3MgdGhlIGVuZCBvZiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyYW1lcyAqLworICAgIEFJTkZPX0VORCAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAvKioKKyAgICAgKiBFc3RpbWF0aW9uIG9mIHRoZSBkZWxheSB0aGF0IGlzIG5vdCB0cmFja2VkIGJ5IHNlbnNvciB0aW1lc3RhbXBzLiBUaGlzCisgICAgICogaW5jbHVkZXMgZGVsYXkgaW50cm9kdWNlZCBieSBzZW5zb3IgZnJvbnQtZW5kIGZpbHRlcmluZywgZGF0YSB0cmFuc3BvcnQsCisgICAgICogZXRjLgorICAgICAqIGZsb2F0WzJdOiBkZWxheSBpbiBzZWNvbmRzLCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgZXN0aW1hdGVkIHZhbHVlCisgICAgICovCisgICAgQUlORk9fVU5UUkFDS0VEX0RFTEFZICAgICAgICAgICAgID0gMHgxMDAwMCwKKworICAgIC8qKiBmbG9hdDogQ2Vsc2l1cyB0ZW1wZXJhdHVyZSAqLworICAgIEFJTkZPX0lOVEVSTkFMX1RFTVBFUkFUVVJFLAorCisgICAgLyoqCisgICAgICogRmlyc3QgdGhyZWUgcm93cyBvZiBhIGhvbW9nZW5lb3VzIG1hdHJpeCwgd2hpY2ggcmVwcmVzZW50cyBjYWxpYnJhdGlvbiB0bworICAgICAqIGEgdGhyZWUtZWxlbWVudCB2ZWN0b3IgcmF3IHNlbnNvciByZWFkaW5nLgorICAgICAqIGZsb2F0WzEyXTogM3g0IG1hdHJpeCBpbiByb3cgbWFqb3Igb3JkZXIKKyAgICAgKi8KKyAgICBBSU5GT19WRUMzX0NBTElCUkFUSU9OLAorCisgICAgLyoqCisgICAgICogTG9jYXRpb24gYW5kIG9yaWVudGF0aW9uIG9mIHNlbnNvciBlbGVtZW50IGluIHRoZSBkZXZpY2UgZnJhbWU6IG9yaWdpbiBpcworICAgICAqIHRoZSBnZW9tZXRyaWMgY2VudGVyIG9mIHRoZSBtb2JpbGUgZGV2aWNlIHNjcmVlbiBzdXJmYWNlOyB0aGUgYXhpcworICAgICAqIGRlZmluaXRpb24gY29ycmVzcG9uZHMgdG8gQW5kcm9pZCBzZW5zb3IgZGVmaW5pdGlvbnMuCisgICAgICogZmxvYXRbMTJdOiAzeDQgbWF0cml4IGluIHJvdyBtYWpvciBvcmRlcgorICAgICAqLworICAgIEFJTkZPX1NFTlNPUl9QTEFDRU1FTlQsCisKKyAgICAvKioKKyAgICAgKiBmbG9hdFsyXTogcmF3IHNhbXBsZSBwZXJpb2QgaW4gc2Vjb25kcywKKyAgICAgKiAgICAgICAgICAgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHNhbXBsaW5nIHBlcmlvZAorICAgICAqLworICAgIEFJTkZPX1NBTVBMSU5HLAorCisgICAgLy8gU2FtcGxpbmcgY2hhbm5lbCBtb2RlbGluZyBpbmZvcm1hdGlvbiBzZWN0aW9uCisKKyAgICAvKioKKyAgICAgKiBpbnQzMl90OiBub2lzZSB0eXBlCisgICAgICogZmxvYXRbbl06IHBhcmFtZXRlcnMKKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX05PSVNFICAgICAgICAgICAgICAgPSAweDIwMDAwLAorCisgICAgLyoqCisgICAgICogZmxvYXRbM106IHNhbXBsZSBwZXJpb2QsIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBzYW1wbGUgcGVyaW9kLAorICAgICAqIHF1YW50aXphdGlvbiB1bml0CisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9TQU1QTEVSLAorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhIGZpbHRlcjoKKyAgICAgKiAgIFxzdW1faiBhX2ogeVtuLWpdID09IFxzdW1faSBiX2kgeFtuLWldCisgICAgICoKKyAgICAgKiBpbnQzMl90WzNdOiBudW1iZXIgb2YgZmVlZGZvcndhcmQgY29lZmZpZW50cyBNLAorICAgICAqICAgICAgICAgICAgIG51bWJlciBvZiBmZWVkYmFjayBjb2VmZmljaWVudHMgTiAoZm9yIEZJUiBmaWx0ZXIsIE4gPSAxKS4KKyAgICAgKiAgICAgICAgICAgICBiaXQgbWFzayB0aGF0IHJlcHJlc2VudHMgd2hpY2ggZWxlbWVudCB0aGUgZmlsdGVyIGlzIGFwcGxpZWQKKyAgICAgKiAgICAgICAgICAgICB0by4gKGJpdCAwPT0xIG1lYW5zIHRoaXMgZmlsdGVyIGFwcGxpZXMgdG8gdmVjdG9yIGVsZW1lbnQgMCkuCisgICAgICogZmxvYXRbTStOXTogZmlsdGVyIGNvZWZmaWNpZW50cyAoYjAsIGIxLCAuLi4sIGJfe00tMX0pLCB0aGVuCisgICAgICogICAgICAgICAgICAgKGEwLCBhMSwgLi4uLCBhX3tOLTF9KSwgYTAgaXMgYWx3YXlzIDEuCisgICAgICoKKyAgICAgKiBNdWx0aXBsZSBmcmFtZXMgbWF5IGJlIG5lZWRlZCBmb3IgaGlnaGVyIG51bWJlciBvZiB0YXBzLgorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfRklMVEVSLAorCisgICAgLyoqCisgICAgICogaW50MzJfdFsyXTogc2l6ZSBpbiAocm93LCBjb2x1bW4pIC4uLiAxc3QgZnJhbWUKKyAgICAgKiBmbG9hdFtuXTogbWF0cml4IGVsZW1lbnQgdmFsdWVzIGluIHJvdyBtYWpvciBvcmRlci4KKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX0xJTkVBUl9UUkFOU0ZPUk0sCisKKyAgICAvKioKKyAgICAgKiBpbnQzMl90WzJdOiBleHRyYXBvbGF0ZSBtZXRob2QsIGludGVycG9sYXRlIG1ldGhvZAorICAgICAqIGZsb2F0W25dOiBtYXBwaW5nIGtleSBwb2ludHMgaW4gcGFpcnMsIChpbiwgb3V0KS4uLgorICAgICAqICAgICAgICAgICAobWF5IGJlIHVzZWQgdG8gbW9kZWwgc2F0dXJhdGlvbikuCisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9OT05MSU5FQVJfTUFQLAorCisgICAgLyoqCisgICAgICogaW50MzJfdDogcmVzYW1wbGUgbWV0aG9kICgwLXRoIG9yZGVyLCAxc3Qgb3JkZXIuLi4pCisgICAgICogZmxvYXRbMV06IHJlc2FtcGxlIHJhdGlvICh1cHNhbXBsaW5nIGlmIDwgMS4wLCBkb3duc2FtcGxpbmcgaWYgPiAxLjApLgorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfUkVTQU1QTEVSLAorCisgICAgLyoqCisgICAgICogT3BlcmF0aW9uIGVudmlyb25tZW50IHBhcmFtZXRlcnMgc2VjdGlvbgorICAgICAqIFR5cGVzIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiBpcyBzZW50IGRvd24gKGluc3RlYWQgb2YgcmVwb3J0ZWQgZnJvbSkKKyAgICAgKiBkZXZpY2UgYXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBhaWQgc2Vuc29yIG9wZXJhdGlvbi4gRGF0YSBpcyBzZW50CisgICAgICogdmlhIGluamVjdFNlbnNvckRhdGEoKSBmdW5jdGlvbiB0byBzZW5zb3IgaGFuZGxlIC0xIGRlbm90aW5nIGFsbCBzZW5zb3JzCisgICAgICogaW4gZGV2aWNlLgorICAgICAqLworCisgICAgLyoqCisgICAgICogTG9jYWwgZ2VvbWFnbmV0aWMgZmllbGQgaW5mb3JtYXRpb24gYmFzZWQgb24gZGV2aWNlIGdlbyBsb2NhdGlvbi4gVGhpcworICAgICAqIHR5cGUgaXMgcHJpbWFyaWx5IGZvciBmb3IgbWFnbmV0aWMgZmllbGQgY2FsaWJyYXRpb24gYW5kIHJvdGF0aW9uIHZlY3RvcgorICAgICAqIHNlbnNvciBmdXNpb24uCisgICAgICogZmxvYXRbM106IHN0cmVuZ3RoICh1VCksIGRlY2xpbmF0aW9uIGFuZCBpbmNsaW5hdGlvbiBhbmdsZSAocmFkKS4KKyAgICAgKi8KKyAgICBBSU5GT19MT0NBTF9HRU9NQUdORVRJQ19GSUVMRCAgICAgPSAweDMwMDAwLAorCisgICAgLyoqCisgICAgICogTG9jYWwgZ3Jhdml0YXRpb25hbCBhY2NlbGVyYXRpb24gc3RyZW5ndGggYXQgZGV2aWNlIGdlbyBsb2NhdGlvbi4KKyAgICAgKiBmbG9hdDogZ3Jhdml0YXRpb25hbCBhY2NlbGVyYXRpb24gbm9ybSBpbiBtL3NeMi4KKyAgICAgKi8KKyAgICBBSU5GT19MT0NBTF9HUkFWSVRZLAorCisgICAgLyoqCisgICAgICogRGV2aWNlIGRvY2sgc3RhdGUuCisgICAgICogaW50MzJfdDogZG9jayBzdGF0ZSBmb2xsb3dpbmcgQW5kcm9pZCBBUEkgSW50ZW50LkVYVFJBX0RPQ0tfU1RBVEUKKyAgICAgKiBkZWZpbml0aW9uLCB1bmRlZmluZWQgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKi8KKyAgICBBSU5GT19ET0NLX1NUQVRFLAorCisgICAgLyoqCisgICAgICogSGlnaCBwZXJmb3JtYW5jZSBtb2RlIGhpbnQuIERldmljZSBpcyBhYmxlIHRvIHVzZSB1cCBtb3JlIHBvd2VyIGFuZCB0YWtlCisgICAgICogbW9yZSByZW91cmNlcyB0byBpbXByb3ZlIHRocm91Z2hwdXQgYW5kIGxhdGVuY3kgaW4gaGlnaCBwZXJmb3JtYW5jZSBtb2RlLgorICAgICAqIE9uZSBwb3NzaWJsZSB1c2UgY2FzZSBpcyB2aXJ0dWFsIHJlYWxpdHksIHdoZW4gc2Vuc29yIGxhdGVuY3kgbmVlZCB0byBiZQorICAgICAqIGNhcmVmdWxseSBjb250cm9sbGVkLgorICAgICAqIGludDMyX3Q6IDEgb3IgMCwgZGVub3RlIGlmIGRldmljZSBpcyBpbi9vdXQgb2YgaGlnaCBwZXJmb3JtYW5jZSBtb2RlLAorICAgICAqICAgICAgICAgIG90aGVyIHZhbHVlcyBpcyBpZ25vcmVkLgorICAgICAqLworICAgIEFJTkZPX0hJR0hfUEVSRk9STUFOQ0VfTU9ERSwKKworICAgIC8qKgorICAgICAqIE1hZ25ldGljIGZpZWxkIGNhbGlicmF0aW9uIGhpbnQuIERldmljZSBpcyBub3RpZmllZCB3aGVuIG1hbnVhbGx5CisgICAgICogdHJpZ2dlcmVkIG1hZ25ldGljIGZpZWxkIGNhbGlicmF0aW9uIHByb2NlZHVyZSBpcyBzdGFydGVkIG9yIHN0b3BwZWQuIFRoZQorICAgICAqIGNhbGlicmF0aW9uIHByb2NlZHVyZSBpcyBhc3N1bWVkIHRpbWVkIG91dCBhZnRlciAxIG1pbnV0ZSBmcm9tIHN0YXJ0LAorICAgICAqIGV2ZW4gaWYgYW4gZXhwbGljaXQgc3RvcCBpcyBub3QgcmVjZWl2ZWQuCisgICAgICoKKyAgICAgKiBpbnQzMl90OiAxIGZvciBzdGFydCwgMCBmb3Igc3RvcCwgb3RoZXIgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKi8KKyAgICBBSU5GT19NQUdORVRJQ19GSUVMRF9DQUxJQlJBVElPTiwKKworICAgIC8qKiBDdXN0b20gaW5mb3JtYXRpb24gKi8KKyAgICBBSU5GT19DVVNUT01fU1RBUlQgICAgICAgICAgICAgICAgPSAweDEwMDAwMDAwLAorCisgICAgLyoqIERlYnVnZ2luZyAqLworICAgIEFJTkZPX0RFQlVHR0lOR19TVEFSVCAgICAgICAgICAgICA9IDB4NDAwMDAwMDAsCit9OworCitzdHJ1Y3QgQWRkaXRpb25hbEluZm8geworICAgIC8qKiB0eXBlIG9mIHBheWxvYWQgZGF0YSwgc2VlIEFkZGl0aW9uYWxJbmZvVHlwZSAqLworICAgIEFkZGl0aW9uYWxJbmZvVHlwZSB0eXBlOworCisgICAgLyoqIHNlcXVlbmNlIG51bWJlciBvZiB0aGlzIGZyYW1lIGZvciB0aGlzIHR5cGUgKi8KKyAgICBpbnQzMl90IHNlcmlhbDsKKworICAgIHVuaW9uIFBheWxvYWQgeworICAgICAgICBpbnQzMl90WzE0XSBkYXRhX2ludDMyOworICAgICAgICBmbG9hdFsxNF0gZGF0YV9mbG9hdDsKKyAgICB9IHU7Cit9OworCisvKiBhY2NlbGVyYXRpb24gdmFsdWVzIGFyZSBpbiBtZXRlciBwZXIgc2Vjb25kIHBlciBzZWNvbmQgKG0vc14yKQorICogbWFnbmV0aWMgdmVjdG9yIHZhbHVlcyBhcmUgaW4gbWljcm8tVGVzbGEgKHVUKQorICogb3JpZW50YXRpb24gdmFsdWVzIGFyZSBpbiBkZWdyZWVzCisgKiBneXJvc2NvcGUgdmFsdWVzIGFyZSBpbiByYWQvcworICogdGVtcGVyYXR1cmUgaXMgaW4gZGVncmVlcyBjZW50aWdyYWRlIChDZWxzaXVzKQorICogZGlzdGFuY2UgaW4gY2VudGltZXRlcnMKKyAqIGxpZ2h0IGluIFNJIGx1eCB1bml0cworICogcHJlc3N1cmUgaW4gaGVjdG9wYXNjYWwgKGhQYSkKKyAqIHJlbGF0aXZlIGh1bWlkaXR5IGluIHBlcmNlbnQKKyAqLwordW5pb24gRXZlbnRQYXlsb2FkIHsKKyAgICAvKioKKyAgICAgKiBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLCBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCwKKyAgICAgKiBTZW5zb3JUeXBlOjpPUklFTlRBVElPTiwgU2Vuc29yVHlwZTo6R1lST1NDT1BFLCBTZW5zb3JUeXBlOjpHUkFWSVRZLAorICAgICAqIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT04KKyAgICAgKi8KKyAgICBWZWMzIHZlYzM7CisKKyAgICAvKioKKyAgICAgKiBTZW5zb3JUeXBlOjpST1RBVElPTl9WRUNUT1IsIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SLAorICAgICAqIFNlbnNvclR5cGU6OkdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUgorICAgICAqLworICAgIFZlYzQgdmVjNDsKKworICAgIC8qKgorICAgICAqIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRCwKKyAgICAgKiBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVECisgICAgICogU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQKKyAgICAgKi8KKyAgICBVbmNhbCB1bmNhbDsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpNRVRBX0RBVEEgKi8KKyAgICBNZXRhRGF0YSBtZXRhOworCisgICAgLyoqCisgICAgICogU2Vuc29yVHlwZTo6REVWSUNFX09SSUVOVEFUSU9OLCBTZW5zb3JUeXBlOjpMSUdIVCwgU2Vuc29yVHlwZTo6UFJFU1NVUkUsCisgICAgICogU2Vuc29yVHlwZTo6VEVNUEVSQVRVUkUsIFNlbnNvclR5cGU6OlBST1hJTUlUWSwKKyAgICAgKiBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWSwgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRSwKKyAgICAgKiBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT04sIFNlbnNvclR5cGU6OlNURVBfREVURUNUT1IsCisgICAgICogU2Vuc29yVHlwZTo6VElMVF9ERVRFQ1RPUiwgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFLAorICAgICAqIFNlbnNvclR5cGU6OkdMQU5DRV9HRVNUVVJFLCBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkUsCisgICAgICogU2Vuc29yVHlwZTo6V1JJU1RfVElMVF9HRVNUVVJFLCBTZW5zb3JUeXBlOjpTVEFUSU9OQVJZX0RFVEVDVCwKKyAgICAgKiBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNULCBTZW5zb3JUeXBlOjpIRUFSVF9CRUFULAorICAgICAqIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUCisgICAgICovCisgICAgZmxvYXQgc2NhbGFyOworCisgICAgLyoqIFNlbnNvclR5cGU6OlNURVBfQ09VTlRFUiAqLworICAgIHVpbnQ2NF90IHN0ZXBDb3VudDsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpIRUFSVF9SQVRFICovCisgICAgSGVhcnRSYXRlIGhlYXJ0UmF0ZTsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpQT1NFXzZET0YgKi8KKyAgICBmbG9hdFsxNV0gcG9zZTZET0Y7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6RFlOQU1JQ19TRU5TT1JfTUVUQSAqLworICAgIER5bmFtaWNTZW5zb3JJbmZvIGR5bmFtaWM7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPICovCisgICAgQWRkaXRpb25hbEluZm8gYWRkaXRpb25hbDsKKworICAgIC8qKiB1bmRlZmluZWQvY3VzdG9tIHNlbnNvciB0eXBlID49IFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UgKi8KKyAgICBmbG9hdFsxNl0gZGF0YTsKK307CisKK3N0cnVjdCBFdmVudCB7CisgICAgLyoqIFRpbWUgbWVhc3VyZWQgaW4gbmFub3NlY29uZHMsIGluICJlbGFwc2VkUmVhbHRpbWVOYW5vKCkncyIgdGltZWJhc2UuICovCisgICAgaW50NjRfdCB0aW1lc3RhbXA7CisKKyAgICAvKiogc2Vuc29yIGlkZW50aWZpZXIgKi8KKyAgICBpbnQzMl90IHNlbnNvckhhbmRsZTsKKworICAgIFNlbnNvclR5cGUgc2Vuc29yVHlwZTsKKworICAgIC8qKiBVbmlvbiBkaXNjcmltaW5hdGVkIG9uIHNlbnNvclR5cGUgKi8KKyAgICBFdmVudFBheWxvYWQgdTsKK307CisKKy8qKgorICogRGlyZWN0IHJlcG9ydCByYXRlIGxldmVsIGRlZmluaXRpb24uIEV4Y2VwdCBmb3IgU0VOU09SX0RJUkVDVF9SQVRFX1NUT1AsIGVhY2gKKyAqIHJhdGUgbGV2ZWwgY292ZXJzIHRoZSByYW5nZSAoNTUlLCAyMjAlXSAqIG5vbWluYWwgcmVwb3J0IHJhdGUuIEZvciBleGFtcGxlLAorICogaWYgY29uZmlnIGRpcmVjdCByZXBvcnQgc3BlY2lmeSBhIHJhdGUgbGV2ZWwgU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1QsIGl0IGlzCisgKiBsZWdhbCBmb3Igc2Vuc29yIGhhcmR3YXJlIHRvIHJlcG9ydCBldmVudCBhdCBhIHJhdGUgZ3JlYXRlciB0aGFuIDExMEh6LCBhbmQKKyAqIGxlc3Mgb3IgZXF1YWwgdG8gNDQwSHouIE5vdGUgdGhhdCByYXRlIGhhcyB0byByZW1haW4gc3RlYWR5IHdpdGhvdXQgdmFyaWF0aW9uCisgKiBiZWZvcmUgbmV3IHJhdGUgbGV2ZWwgaXMgY29uZmlndXJlZCwgaS5lLiBpZiBhIHNlbnNvciBpcyBjb25maWd1cmVkIHRvCisgKiBTRU5TT1JfRElSRUNUX1JBVEVfRkFTVCBhbmQgc3RhcnRzIHRvIHJlcG9ydCBldmVudCBhdCAyNTZIeiwgaXQgY2Fubm90CisgKiBjaGFuZ2UgcmF0ZSB0byAxMjhIeiBhZnRlciBhIGZldyBzZWNvbmRzIG9mIHJ1bm5pbmcgZXZlbiBpZiAxMjhIeiBpcyBhbHNvIGluCisgKiB0aGUgbGVnYWwgcmFuZ2Ugb2YgU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1QuIFRodXMsIGl0IGlzIHJlY29tbWVuZGVkIHRvCisgKiBhc3NvY2lhdGUgcmVwb3J0IHJhdGUgd2l0aCBSYXRlTHZlbCBzdGF0aWNhbGx5IGZvciBzaW5nbGUgc2Vuc29yLgorICovCitAZXhwb3J0KG5hbWU9ImRpcmVjdF9yYXRlX2xldmVsX3QiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9ESVJFQ1RfUkFURV8iKQorZW51bSBSYXRlTGV2ZWwgOiBpbnQzMl90IHsKKyAgICBTVE9QLCAgICAgICAgICAgIC8vIHN0b3AKKyAgICBOT1JNQUwsICAgICAgICAgIC8vIG5vbWluYWwgNTBIegorICAgIEZBU1QsICAgICAgICAgICAgLy8gbm9taW5hbCAyMDBIegorICAgIFZFUllfRkFTVCwgICAgICAgLy8gbm9taW5hbCA4MDBIegorfTsKKworLyoqCisgKiBEaXJlY3QgY2hhbm5lbCBzaGFyZWQgbWVtb3J5IHR5cGVzLiBTZWUgc3RydWN0IFNoYXJlZE1lbUluZm8uCisgKi8KK0BleHBvcnQobmFtZT0iZGlyZWN0X21lbV90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9ESVJFQ1RfTUVNX1RZUEVfIikKK2VudW0gU2hhcmVkTWVtVHlwZSA6IGludDMyX3QgeworICAgIC8vIGhhbmRsZSBjb250YWlucyAxIGZkIChhc2htZW0gaGFuZGxlKSBhbmQgMCBpbnQuCisgICAgQVNITUVNID0gMSwKKyAgICAvLyBoYW5kbGUgZGVmaW5pdGlvbiBtYXRjaGVzIGdyYWxsb2MgSEFMLgorICAgIEdSQUxMT0MKK307CisKKworLyoqCisgKiBEaXJlY3QgY2hhbm5lbCBsb2NrLWZyZWUgcXVldWUgZm9ybWF0LCB0aGlzIGRlZmluZXMgaG93IHRoZSBzaGFyZWQgbWVtb3J5IGlzCisgKiBpbnRlcnByZXRlZCBieSBib3RoIHNlbnNvciBoYXJkd2FyZSBhbmQgYXBwbGljYXRpb24uCisgKgorICogQHNlZSBTaGFyZWRNZW1JbmZvLgorICovCitAZXhwb3J0KG5hbWU9ImRpcmVjdF9mb3JtYXRfdCIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0RJUkVDVF9GTVRfIikKK2VudW0gU2hhcmVkTWVtRm9ybWF0IDogaW50MzJfdCB7CisgICAgU0VOU09SU19FVkVOVCA9IDEsICAvLyBzaGFyZWQgbWVtb3J5IGlzIGZvcm1hdGVkIGFzIGFuIGFycmF5IG9mIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLiBTZWUgU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0IGZvciBkZXRhaWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBvbiByZXR1cm4gb2YgY2hhbm5lbCByZWdpc3RyYXRpb24gY2FsbCwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaGFyZWQgbWVtb3J5IHNwYWNlIG11c3QgYmUgZm9ybWF0ZWQgdG8gYWxsIDAgYnkgSEFMLgorfTsKKworZW51bSBTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQgOiB1aW50MTZfdCB7CisgICAgLy8gb2Zmc2V0ICAgdHlwZSAgICAgICAgbmFtZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyAweDAwMDAgICBpbnQzMl90ICAgICBzaXplIChhbHdheXMgMTA0KQorICAgIC8vIDB4MDAwNCAgIGludDMyX3QgICAgIHNlbnNvciByZXBvcnQgdG9rZW4KKyAgICAvLyAweDAwMDggICBpbnQzMl90ICAgICB0eXBlIChzZWUgU2Vuc29yVHlwZSkKKyAgICAvLyAweDAwMEMgICB1aW50MzJfdCAgICBhdG9taWMgY291bnRlcgorICAgIC8vIDB4MDAxMCAgIGludDY0X3QgICAgIHRpbWVzdGFtcCAoc2VlIEV2ZW50KQorICAgIC8vIDB4MDAxOCAgIGZsb2F0WzE2XS8gIGRhdGEKKyAgICAvLyAgICAgICAgICBpbnQ2NF90WzhdCisgICAgLy8gMHgwMDU4ICAgaW50MzJfdFs0XSAgcmVzZXJ2ZWQgKHNldCB0byB6ZXJvKQorICAgIFNJWkVfRklFTEQgICAgICA9IDB4MCwKKyAgICBSRVBPUlRfVE9LRU4gICAgPSAweDQsCisgICAgU0VOU09SX1RZUEUgICAgID0gMHg4LAorICAgIEFUT01JQ19DT1VOVEVSICA9IDB4QywKKyAgICBUSU1FU1RBTVAgICAgICAgPSAweDEwLAorICAgIERBVEEgICAgICAgICAgICA9IDB4MTgsCisgICAgUkVTRVJWRUQgICAgICAgID0gMHg1OCwKKyAgICBUT1RBTF9MRU5HVEggICAgPSAweDY4Cit9OworCisvKioKKyAqIFNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24gZm9yIGEgZGlyZWN0IGNoYW5uZWwKKyAqLworc3RydWN0IFNoYXJlZE1lbUluZm8geworICAgIFNoYXJlZE1lbVR5cGUgdHlwZTsgICAgICAgICAvLyBzaGFyZWQgbWVtb3J5IHR5cGUKKyAgICBTaGFyZWRNZW1Gb3JtYXQgZm9ybWF0OworICAgIHVpbnQzMl90IHNpemU7ICAgICAgICAgICAgICAvLyBzaXplIG9mIHRoZSBtZW1vcnkgcmVnaW9uLCBpbiBieXRlcworICAgIGhhbmRsZSBtZW1vcnlIYW5kbGU7ICAgICAgICAvLyBzaGFyZWQgbWVtb3J5IGhhbmRsZSwgaXQgaXMgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVwZW5kaW5nIG9uIHR5cGUgZmllbGQsIHNlZSBTaGFyZWRNZW1UeXBlLgorfTsKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMTQ5YmEKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFNlbnNvcnNWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QuY3BwIGIvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmE5ZDdlCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDEzODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgInNlbnNvcnNfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8Y3V0aWxzL2FzaG1lbS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3NlbnNvcnMuaD4gIC8vIGZvciBzZW5zb3IgdHlwZSBzdHJpbmdzCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgbmFtZXNwYWNlIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA7CisKKy8vIFRlc3QgZW52aXJvbm1lbnQgZm9yIHNlbnNvcnMKK2NsYXNzIFNlbnNvcnNIaWRsVGVzdDsKK2NsYXNzIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICAvLyBnZXQgdGhlIHRlc3QgZW52aXJvbm1lbnQgc2luZ2xldG9uCisgIHN0YXRpYyBTZW5zb3JzSGlkbEVudmlyb25tZW50KiBJbnN0YW5jZSgpIHsKKyAgICBzdGF0aWMgU2Vuc29yc0hpZGxFbnZpcm9ubWVudCogaW5zdGFuY2UgPSBuZXcgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDsKKyAgICByZXR1cm4gaW5zdGFuY2U7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgU2V0VXAoKTsKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCk7CisKKyAgLy8gR2V0IGFuZCBjbGVhciBhbGwgZXZlbnRzIGNvbGxlY3RlZCBzbyBmYXIgKGxpa2UgImNhdCIgc2hlbGwgY29tbWFuZCkuCisgIC8vIElmIG91dHB1dCBpcyBudWxscHRyLCBpdCBjbGVhcnMgYWxsIGNvbGxlY3RlZCBldmVudHMuCisgIHZvaWQgY2F0RXZlbnRzKHN0ZDo6dmVjdG9yPEV2ZW50Piogb3V0cHV0KTsKKworICAvLyBzZXQgc2Vuc29yIGV2ZW50IGNvbGxlY3Rpb24gc3RhdHVzCisgIHZvaWQgc2V0Q29sbGVjdGlvbihib29sIGVuYWJsZSk7CisKKyBwcml2YXRlOgorICBmcmllbmQgU2Vuc29yc0hpZGxUZXN0OworICAvLyBzZW5zb3JzIGhpZGwgc2VydmljZQorICBzcDxJU2Vuc29ycz4gc2Vuc29yczsKKworICBTZW5zb3JzSGlkbEVudmlyb25tZW50KCkge30KKworICB2b2lkIGFkZEV2ZW50KGNvbnN0IEV2ZW50JiBldik7CisgIHZvaWQgc3RhcnRQb2xsaW5nVGhyZWFkKCk7CisgIHZvaWQgcmVzZXRIYWwoKTsKKyAgc3RhdGljIHZvaWQgcG9sbGluZ1RocmVhZChTZW5zb3JzSGlkbEVudmlyb25tZW50KiBlbnYsIHN0ZDo6c2hhcmVkX3B0cjxib29sPiBzdG9wKTsKKworICBib29sIGNvbGxlY3Rpb25FbmFibGVkOworICBzdGQ6OnNoYXJlZF9wdHI8Ym9vbD4gc3RvcFRocmVhZDsKKyAgc3RkOjp0aHJlYWQgcG9sbFRocmVhZDsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKyAgc3RkOjptdXRleCBldmVudHNfbXV0ZXg7CisKKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhTZW5zb3JzSGlkbEVudmlyb25tZW50KTsKK307CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisgIHJlc2V0SGFsKCk7CisKKyAgQVNTRVJUX05FKHNlbnNvcnMsIG51bGxwdHIpIDw8ICJzZW5zb3JzIGlzIG51bGxwdHIsIGNhbm5vdCBnZXQgaGlkbCBzZXJ2aWNlIjsKKworICBjb2xsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOworICBzdGFydFBvbGxpbmdUaHJlYWQoKTsKKworICAvLyBJbiBjYXNlIGZyYW1ld29yayBqdXN0IHN0b3BwZWQgZm9yIHRlc3QgYW5kIHRoZXJlIGlzIHNlbnNvciBldmVudHMgaW4gdGhlIHBpcGUsCisgIC8vIHdhaXQgc29tZSB0aW1lIGZvciB0aG9zZSBldmVudHMgdG8gYmUgY2xlYXJlZCB0byBhdm9pZCB0aGVtIG1lc3NpbmcgdXAgdGhlIHRlc3QuCisgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygzKSk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6VGVhckRvd24oKSB7CisgIGlmIChzdG9wVGhyZWFkKSB7CisgICAgKnN0b3BUaHJlYWQgPSB0cnVlOworICB9CisgIHBvbGxUaHJlYWQuZGV0YWNoKCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6cmVzZXRIYWwoKSB7CisgIC8vIHdhaXQgdXB0byAxMDBtcyAqIDEwID0gMXMgZm9yIGhpZGwgc2VydmljZS4KKyAgY29uc3RleHByIGF1dG8gUkVUUllfREVMQVkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMCk7CisKKyAgc3RkOjpzdHJpbmcgc3RlcDsKKyAgYm9vbCBzdWNjZWVkID0gZmFsc2U7CisgIGZvciAoc2l6ZV90IHJldHJ5ID0gMTA7IHJldHJ5ID4gMDsgLS1yZXRyeSkgeworICAgIC8vIHRoaXMgZG8gLi4uIHdoaWxlIGlzIGZvciBlYXN5IGVycm9yIGhhbmRsaW5nCisgICAgZG8geworICAgICAgc3RlcCA9ICJnZXRTZXJ2aWNlKCkiOworICAgICAgc2Vuc29ycyA9IElTZW5zb3JzOjpnZXRTZXJ2aWNlKCk7CisgICAgICBpZiAoc2Vuc29ycyA9PSBudWxscHRyKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBzdGVwID0gInBvbGwoKSBjaGVjayI7CisgICAgICAvLyBQb2tlIElTZW5zb3Igc2VydmljZS4gSWYgaXQgaGFzIGxpbmdlcmluZyBjb25uZWN0aW9uIGZyb20gcHJldmlvdXMgZ2VuZXJhdGlvbiBvZgorICAgICAgLy8gc3lzdGVtIHNlcnZlciwgaXQgd2lsbCBraWxsIGl0c2VsZi4gVGhlcmUgaXMgbm8gaW50ZW50aW9uIHRvIGhhbmRsZSB0aGUgcG9sbCByZXN1bHQsCisgICAgICAvLyB3aGljaCB3aWxsIGJlIGRvbmUgc2luY2UgdGhlIHNpemUgaXMgMC4KKyAgICAgIGlmKCFzZW5zb3JzLT5wb2xsKDAsIFtdKGF1dG8sIGNvbnN0IGF1dG8gJiwgY29uc3QgYXV0byAmKSB7fSkuaXNPaygpKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBzdGVwID0gImdldFNlbnNvckxpc3QiOworICAgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yTGlzdDsKKyAgICAgIGlmICghc2Vuc29ycy0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICAgICAgWyZdIChjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTZW5zb3JJbmZvPiAmbGlzdCkgeworICAgICAgICAgICAgc2Vuc29yTGlzdC5yZXNlcnZlKGxpc3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICBzZW5zb3JMaXN0LnB1c2hfYmFjayhsaXN0W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KS5pc09rKCkpIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIC8vIHN0b3AgZWFjaCBzZW5zb3IgaW5kaXZpZHVhbGx5CisgICAgICBzdGVwID0gInN0b3AgZWFjaCBzZW5zb3IiOworICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICBmb3IgKGNvbnN0IGF1dG8gJmkgOiBzZW5zb3JMaXN0KSB7CisgICAgICAgIGlmICghc2Vuc29ycy0+YWN0aXZhdGUoaS5zZW5zb3JIYW5kbGUsIGZhbHNlKS5pc09rKCkpIHsKKyAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAoIW9rKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICAvLyBtYXJrIGl0IGRvbmUKKyAgICAgIHN0ZXAgPSAiZG9uZSI7CisgICAgICBzdWNjZWVkID0gdHJ1ZTsKKyAgICB9IHdoaWxlKDApOworCisgICAgaWYgKHN1Y2NlZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBEZWxheSAxMDBtcyBiZWZvcmUgcmV0cnksIGhpZGwgc2VydmljZSBpcyBleHBlY3RlZCB0byBjb21lIHVwIGluIHNob3J0IHRpbWUgYWZ0ZXIgY3Jhc2guCisgICAgQUxPR0koIiVzIHVuc3VjY2Vzc2Z1bCwgdHJ5IGFnYWluIHNvb24gKHJlbWFpbmluZyByZXRyeSAlenUpLiIsIHN0ZXAuY19zdHIoKSwgcmV0cnkgLSAxKTsKKyAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IoUkVUUllfREVMQVkpOworICB9CisKKyAgc2Vuc29ycyA9IG51bGxwdHI7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6Y2F0RXZlbnRzKHN0ZDo6dmVjdG9yPEV2ZW50Piogb3V0cHV0KSB7CisgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGV2ZW50c19tdXRleCk7CisgIGlmIChvdXRwdXQpIHsKKyAgICBvdXRwdXQtPmluc2VydChvdXRwdXQtPmVuZCgpLCBldmVudHMuYmVnaW4oKSwgZXZlbnRzLmVuZCgpKTsKKyAgfQorICBldmVudHMuY2xlYXIoKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpzZXRDb2xsZWN0aW9uKGJvb2wgZW5hYmxlKSB7CisgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGV2ZW50c19tdXRleCk7CisgIGNvbGxlY3Rpb25FbmFibGVkID0gZW5hYmxlOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OmFkZEV2ZW50KGNvbnN0IEV2ZW50JiBldikgeworICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhldmVudHNfbXV0ZXgpOworICBpZiAoY29sbGVjdGlvbkVuYWJsZWQpIHsKKyAgICBldmVudHMucHVzaF9iYWNrKGV2KTsKKyAgfQorfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OnN0YXJ0UG9sbGluZ1RocmVhZCgpIHsKKyAgc3RvcFRocmVhZCA9IHN0ZDo6c2hhcmVkX3B0cjxib29sPihuZXcgYm9vbChmYWxzZSkpOworICBwb2xsVGhyZWFkID0gc3RkOjp0aHJlYWQocG9sbGluZ1RocmVhZCwgdGhpcywgc3RvcFRocmVhZCk7CisgIGV2ZW50cy5yZXNlcnZlKDEyOCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6cG9sbGluZ1RocmVhZCgKKyAgICBTZW5zb3JzSGlkbEVudmlyb25tZW50KiBlbnYsIHN0ZDo6c2hhcmVkX3B0cjxib29sPiBzdG9wKSB7CisgIEFMT0dEKCJwb2xsaW5nIHRocmVhZCBzdGFydCIpOworICBib29sIG5lZWRFeGl0ID0gKnN0b3A7CisKKyAgd2hpbGUoIW5lZWRFeGl0KSB7CisgICAgICBlbnYtPnNlbnNvcnMtPnBvbGwoNjQsIFsmXShhdXRvIHJlc3VsdCwgY29uc3QgYXV0byYgZXZlbnRzLCBjb25zdCBhdXRvJiBkeW5hbWljU2Vuc29yc0FkZGVkKSB7CisgICAgICAgICAgaWYgKHJlc3VsdCAhPSBSZXN1bHQ6Ok9LCisgICAgICAgICAgICAgIHx8IChldmVudHMuc2l6ZSgpID09IDAgJiYgZHluYW1pY1NlbnNvcnNBZGRlZC5zaXplKCkgPT0gMCkKKyAgICAgICAgICAgICAgfHwgKnN0b3ApIHsKKyAgICAgICAgICAgICAgbmVlZEV4aXQgPSB0cnVlOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorCisgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlIDogZXZlbnRzKSB7CisgICAgICAgICAgICAgIGVudi0+YWRkRXZlbnQoZSk7CisgICAgICAgICAgfQorICAgICAgfSk7CisgIH0KKyAgQUxPR0QoInBvbGxpbmcgdGhyZWFkIGVuZCIpOworfQorCitjbGFzcyBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSB7CisgcHVibGljOgorICBzdGF0aWMgU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkqIGNyZWF0ZShTaGFyZWRNZW1UeXBlIHR5cGUsIHNpemVfdCBzaXplKTsKKyAgU2hhcmVkTWVtSW5mbyBnZXRTaGFyZWRNZW1JbmZvKCkgY29uc3Q7CisgIGNoYXIgKiBnZXRCdWZmZXIoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IHBhcnNlRXZlbnRzKGludDY0X3QgbGFzdENvdW50ZXIgPSAtMSwgc2l6ZV90IG9mZnNldCA9IDApIGNvbnN0OworICB2aXJ0dWFsIH5TZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSgpOworIHByaXZhdGU6CisgIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KFNoYXJlZE1lbVR5cGUgdHlwZSwgc2l6ZV90IHNpemUpOworCisgIFNoYXJlZE1lbVR5cGUgbVR5cGU7CisgIG5hdGl2ZV9oYW5kbGVfdCogbU5hdGl2ZUhhbmRsZTsKKyAgc2l6ZV90IG1TaXplOworICBjaGFyKiBtQnVmZmVyOworCisgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSk7Cit9OworCitTaGFyZWRNZW1JbmZvIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpnZXRTaGFyZWRNZW1JbmZvKCkgY29uc3QgeworICBTaGFyZWRNZW1JbmZvIG1lbSA9IHsKKyAgICAudHlwZSA9IG1UeXBlLAorICAgIC5mb3JtYXQgPSBTaGFyZWRNZW1Gb3JtYXQ6OlNFTlNPUlNfRVZFTlQsCisgICAgLnNpemUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obVNpemUpLAorICAgIC5tZW1vcnlIYW5kbGUgPSBtTmF0aXZlSGFuZGxlCisgIH07CisgIHJldHVybiBtZW07Cit9CisKK2NoYXIgKiBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Z2V0QnVmZmVyKCkgY29uc3QgeworICByZXR1cm4gbUJ1ZmZlcjsKK30KKworc3RkOjp2ZWN0b3I8RXZlbnQ+IFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpwYXJzZUV2ZW50cyhpbnQ2NF90IGxhc3RDb3VudGVyLCBzaXplX3Qgb2Zmc2V0KSBjb25zdCB7CisKKyAgY29uc3RleHByIHNpemVfdCBrRXZlbnRTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlRPVEFMX0xFTkdUSCk7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6U0laRV9GSUVMRCk7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFRva2VuID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlJFUE9SVF9UT0tFTik7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFR5cGUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6U0VOU09SX1RZUEUpOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRBdG9taWNDb3VudGVyID0KKyAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpBVE9NSUNfQ09VTlRFUik7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFRpbWVzdGFtcCA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpUSU1FU1RBTVApOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXREYXRhID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OkRBVEEpOworCisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisgIHN0ZDo6dmVjdG9yPGZsb2F0PiBkYXRhKDE2KTsKKworICB3aGlsZSAob2Zmc2V0ICsga0V2ZW50U2l6ZSA8PSBtU2l6ZSkgeworICAgIGludDY0X3QgYXRvbWljQ291bnRlciA9ICpyZWludGVycHJldF9jYXN0PHVpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0QXRvbWljQ291bnRlcik7CisgICAgaWYgKGF0b21pY0NvdW50ZXIgPD0gbGFzdENvdW50ZXIpIHsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAgIGludDMyX3Qgc2l6ZSA9ICpyZWludGVycHJldF9jYXN0PGludDMyX3QgKj4obUJ1ZmZlciArIG9mZnNldCArIGtPZmZzZXRTaXplKTsKKyAgICBpZiAoc2l6ZSAhPSBrRXZlbnRTaXplKSB7CisgICAgICAvLyB1bmtub3duIGVycm9yLCBldmVudHMgcGFyc2VkIG1heSBiZSB3cm9uZywgcmVtb3ZlIGFsbAorICAgICAgZXZlbnRzLmNsZWFyKCk7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpbnQzMl90IHRva2VuID0gKnJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCAqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldFRva2VuKTsKKyAgICBpbnQzMl90IHR5cGUgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0VHlwZSk7CisgICAgaW50NjRfdCB0aW1lc3RhbXAgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0VGltZXN0YW1wKTsKKworICAgIEFMT0dWKCJvZmZzZXQgPSAlenUsIGNudCAlIiBQUklkNjQgIiwgdG9rZW4gJSIgUFJJZDMyICIsIHR5cGUgJSIgUFJJZDMyICIsIHRpbWVzdGFtcCAlIiBQUklkNjQsCisgICAgICAgIG9mZnNldCwgYXRvbWljQ291bnRlciwgdG9rZW4sIHR5cGUsIHRpbWVzdGFtcCk7CisKKyAgICBFdmVudCBldmVudCA9IHsKKyAgICAgIC50aW1lc3RhbXAgPSB0aW1lc3RhbXAsCisgICAgICAuc2Vuc29ySGFuZGxlID0gdG9rZW4sCisgICAgICAuc2Vuc29yVHlwZSA9IHN0YXRpY19jYXN0PFNlbnNvclR5cGU+KHR5cGUpLAorICAgIH07CisgICAgZXZlbnQudS5kYXRhID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8ZmxvYXQsIDE2PgorICAgICAgICAocmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0RGF0YSkpOworCisgICAgZXZlbnRzLnB1c2hfYmFjayhldmVudCk7CisKKyAgICBsYXN0Q291bnRlciA9IGF0b21pY0NvdW50ZXI7CisgICAgb2Zmc2V0ICs9IGtFdmVudFNpemU7CisgIH0KKworICByZXR1cm4gZXZlbnRzOworfQorCitTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6U2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSkKKyAgICA6IG1UeXBlKHR5cGUpLCBtU2l6ZSgwKSwgbUJ1ZmZlcihudWxscHRyKSB7CisgIG5hdGl2ZV9oYW5kbGVfdCAqaGFuZGxlID0gbnVsbHB0cjsKKyAgY2hhciAqYnVmZmVyID0gbnVsbHB0cjsKKyAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkFTSE1FTTogeworICAgICAgaW50IGZkOworICAgICAgaGFuZGxlID0gOjpuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxIC8qbkZkcyovLCAwLypuSW50cyovKTsKKyAgICAgIGlmIChoYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBmZCA9IDo6YXNobWVtX2NyZWF0ZV9yZWdpb24oIlNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5Iiwgc2l6ZSk7CisgICAgICAgIGlmIChoYW5kbGUtPmRhdGFbMF0gPiAwKSB7CisgICAgICAgICAgLy8gbWVtb3J5IGlzIHBpbm5lZCBieSBkZWZhdWx0CisgICAgICAgICAgYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhciAqPgorICAgICAgICAgICAgICAoOjptbWFwKE5VTEwsIHNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkLCAwKSk7CisgICAgICAgICAgaWYgKGJ1ZmZlciAhPSByZWludGVycHJldF9jYXN0PGNoYXIqPihNQVBfRkFJTEVEKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgaGFuZGxlID0gbnVsbHB0cjsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkdSQUxMT0M6IHsKKworICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgfQorCisgIGlmIChidWZmZXIgIT0gbnVsbHB0cikgeworICAgIG1OYXRpdmVIYW5kbGUgPSBoYW5kbGU7CisgICAgbVNpemUgPSBzaXplOworICAgIG1CdWZmZXIgPSBidWZmZXI7CisgIH0KK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnk6On5TZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSgpIHsKKyAgc3dpdGNoKG1UeXBlKSB7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06IHsKKyAgICAgIGlmIChtU2l6ZSAhPSAwKSB7CisgICAgICAgIDo6bXVubWFwKG1CdWZmZXIsIG1TaXplKTsKKyAgICAgICAgbUJ1ZmZlciA9IG51bGxwdHI7CisKKyAgICAgICAgOjpuYXRpdmVfaGFuZGxlX2Nsb3NlKG1OYXRpdmVIYW5kbGUpOworICAgICAgICA6Om5hdGl2ZV9oYW5kbGVfZGVsZXRlKG1OYXRpdmVIYW5kbGUpOworCisgICAgICAgIG1OYXRpdmVIYW5kbGUgPSBudWxscHRyOworICAgICAgICBtU2l6ZSA9IDA7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDogeworICAgICAgaWYgKG1OYXRpdmVIYW5kbGUgIT0gbnVsbHB0ciB8fCBtU2l6ZSAhPSAwIHx8IG1CdWZmZXIgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkgJXAgbm90IHByb3Blcmx5IGRlc3RydWN0ZWQ6ICIKKyAgICAgICAgICAgICJ0eXBlICVkLCBuYXRpdmUgaGFuZGxlICVwLCBzaXplICV6dSwgYnVmZmVyICVwIiwKKyAgICAgICAgICAgIHRoaXMsIHN0YXRpY19jYXN0PGludD4obVR5cGUpLCBtTmF0aXZlSGFuZGxlLCBtU2l6ZSwgbUJ1ZmZlcik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkqIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpjcmVhdGUoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSkgeworICBjb25zdGV4cHIgc2l6ZV90IGtNYXhTaXplID0gMTI4KjEwMjQqMTAyNDsgLy8gc2Vuc29yIHRlc3Qgc2hvdWxkIG5vdCBuZWVkIG1vcmUgdGhhbiAxMjhNCisgIGlmIChzaXplID09IDAgfHwgc2l6ZSA+PSBrTWF4U2l6ZSkgeworICAgIHJldHVybiBudWxscHRyOworICB9CisKKyAgYXV0byBtID0gbmV3IFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KHR5cGUsIHNpemUpOworICBpZiAobS0+bVNpemUgIT0gc2l6ZSB8fCBtLT5tQnVmZmVyID09IG51bGxwdHIpIHsKKyAgICBkZWxldGUgbTsKKyAgICBtID0gbnVsbHB0cjsKKyAgfQorICByZXR1cm4gbTsKK30KKworY2xhc3MgU2Vuc29yRXZlbnRzQ2hlY2tlciB7CisgcHVibGljOgorICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICZldmVudHMsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0ID0gMDsKKyAgdmlydHVhbCB+U2Vuc29yRXZlbnRzQ2hlY2tlcigpIHt9Cit9OworCitjbGFzcyBOdWxsQ2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudHNDaGVja2VyIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjaGVjayhjb25zdCBzdGQ6OnZlY3RvcjxFdmVudD4gJiwgc3RkOjpzdHJpbmcgKikgY29uc3QgeworICAgIHJldHVybiB0cnVlOworICB9Cit9OworCitjbGFzcyBTZW5zb3JFdmVudFBlckV2ZW50Q2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudHNDaGVja2VyIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjaGVja0V2ZW50KGNvbnN0IEV2ZW50ICZldmVudCwgc3RkOjpzdHJpbmcgKm91dCkgY29uc3QgPSAwOworICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICZldmVudHMsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0IHsKKyAgICBmb3IgKGNvbnN0IGF1dG8gJmUgOiBldmVudHMpIHsKKyAgICAgIGlmICghY2hlY2tFdmVudChlLCBvdXQpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KK307CisKK2NsYXNzIFZlYzNOb3JtQ2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudFBlckV2ZW50Q2hlY2tlciB7CisgcHVibGljOgorICBWZWMzTm9ybUNoZWNrZXIoZmxvYXQgbWluLCBmbG9hdCBtYXgpIDogbVJhbmdlKG1pbiwgbWF4KSB7fQorICBzdGF0aWMgVmVjM05vcm1DaGVja2VyIGJ5Tm9taW5hbChmbG9hdCBub21pbmFsLCBmbG9hdCBhbGxvd2VkRXJyb3IpIHsKKyAgICByZXR1cm4gVmVjM05vcm1DaGVja2VyKG5vbWluYWwgLSBhbGxvd2VkRXJyb3IsIG5vbWluYWwgKyBhbGxvd2VkRXJyb3IpOworICB9CisKKyAgdmlydHVhbCBib29sIGNoZWNrRXZlbnQoY29uc3QgRXZlbnQgJmV2ZW50LCBzdGQ6OnN0cmluZyAqb3V0KSBjb25zdCB7CisgICAgVmVjMyB2ID0gZXZlbnQudS52ZWMzOworICAgIGZsb2F0IG5vcm0gPSBzdGQ6OnNxcnQodi54ICogdi54ICsgdi55ICogdi55ICsgdi56ICogdi56KTsKKyAgICBpZiAobm9ybSA8IG1SYW5nZS5maXJzdCB8fCBub3JtID4gbVJhbmdlLnNlY29uZCkgeworICAgICAgaWYgKG91dCAhPSBudWxscHRyKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzczsKKyAgICAgICAgc3MgPDwgIkV2ZW50IEAgIiA8PCBldmVudC50aW1lc3RhbXAgPDwgIiAoIiA8PCB2LnggPDwgIiwgIiA8PCB2LnkgPDwgIiwgIiA8PCB2LnogPDwgIikiCisgICAgICAgICAgIDw8ICIgaGFzIG5vcm0gIiA8PCBub3JtIDw8ICIsIHdoaWNoIGlzIGJleW9uZCByYW5nZSIKKyAgICAgICAgICAgPDwgIiBbIiA8PCBtUmFuZ2UuZmlyc3QgPDwgIiwgIiA8PCBtUmFuZ2Uuc2Vjb25kIDw8ICJdIjsKKyAgICAgICAgKm91dCA9IHNzLnN0cigpOworICAgICAgfQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorIHByb3RlY3RlZDoKKyAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gbVJhbmdlOworfTsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgU0VOU09SUyBISURMIEhBTC4KK2NsYXNzIFNlbnNvcnNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgLy8gc3RvcCBhbGwgc2Vuc29ycworICAgIGZvciAoYXV0byBzIDogbVNlbnNvckhhbmRsZXMpIHsKKyAgICAgIFMoKS0+YWN0aXZhdGUocywgZmFsc2UpOworICAgIH0KKyAgICBtU2Vuc29ySGFuZGxlcy5jbGVhcigpOworCisgICAgLy8gc3RvcCBhbGwgZGlyZWN0IHJlcG9ydCBhbmQgY2hhbm5lbHMKKyAgICBmb3IgKGF1dG8gYyA6IG1EaXJlY3RDaGFubmVsSGFuZGxlcykgeworICAgICAgLy8gZGlzYWJsZSBhbGwgcmVwb3J0cworICAgICAgUygpLT5jb25maWdEaXJlY3RSZXBvcnQoLTEsIGMsIFJhdGVMZXZlbDo6U1RPUCwgW10gKGF1dG8sIGF1dG8pe30pOworICAgICAgUygpLT51bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChjKTsKKyAgICB9CisgICAgbURpcmVjdENoYW5uZWxIYW5kbGVzLmNsZWFyKCk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgU2Vuc29ySW5mbyBkZWZhdWx0U2Vuc29yQnlUeXBlKFNlbnNvclR5cGUgdHlwZSk7CisgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IGdldFNlbnNvcnNMaXN0KCk7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBjb2xsZWN0RXZlbnRzKHVzZWNvbmRzX3QgdGltZUxpbWl0VXMsIHNpemVfdCBuRXZlbnRMaW1pdCwKKyAgICAgICAgYm9vbCBjbGVhckJlZm9yZVN0YXJ0ID0gdHJ1ZSwgYm9vbCBjaGFuZ2VDb2xsZWN0aW9uID0gdHJ1ZSk7CisKKyAgLy8gaW1wbGVtZW50YXRpb24gd3JhcHBlcgorICBSZXR1cm48dm9pZD4gZ2V0U2Vuc29yc0xpc3QoSVNlbnNvcnM6OmdldFNlbnNvcnNMaXN0X2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIFMoKS0+Z2V0U2Vuc29yc0xpc3QoX2hpZGxfY2IpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gYWN0aXZhdGUoCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGJvb2wgZW5hYmxlZCk7CisKKyAgUmV0dXJuPFJlc3VsdD4gYmF0Y2goCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsCisgICAgICAgICAgaW50NjRfdCBzYW1wbGluZ1BlcmlvZE5zLAorICAgICAgICAgIGludDY0X3QgbWF4UmVwb3J0TGF0ZW5jeU5zKSB7CisgICAgcmV0dXJuIFMoKS0+YmF0Y2goc2Vuc29ySGFuZGxlLCBzYW1wbGluZ1BlcmlvZE5zLCBtYXhSZXBvcnRMYXRlbmN5TnMpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gZmx1c2goaW50MzJfdCBzZW5zb3JIYW5kbGUpIHsKKyAgICByZXR1cm4gUygpLT5mbHVzaChzZW5zb3JIYW5kbGUpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gaW5qZWN0U2Vuc29yRGF0YShjb25zdCBFdmVudCYgZXZlbnQpIHsKKyAgICByZXR1cm4gUygpLT5pbmplY3RTZW5zb3JEYXRhKGV2ZW50KTsKKyAgfQorCisgIFJldHVybjx2b2lkPiByZWdpc3RlckRpcmVjdENoYW5uZWwoCisgICAgICAgICAgY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtLCBJU2Vuc29yczo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsX2NiIF9oaWRsX2NiKTsKKworICBSZXR1cm48UmVzdWx0PiB1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChpbnQzMl90IGNoYW5uZWxIYW5kbGUpIHsKKyAgICByZXR1cm4gUygpLT51bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChjaGFubmVsSGFuZGxlKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBjb25maWdEaXJlY3RSZXBvcnQoCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGludDMyX3QgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsIHJhdGUsCisgICAgICAgICAgSVNlbnNvcnM6OmNvbmZpZ0RpcmVjdFJlcG9ydF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBTKCktPmNvbmZpZ0RpcmVjdFJlcG9ydChzZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIHJhdGUsIF9oaWRsX2NiKTsKKyAgfQorCisgIGlubGluZSBzcDxJU2Vuc29ycz4mIFMoKSB7CisgICAgcmV0dXJuIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPnNlbnNvcnM7CisgIH0KKworICBpbmxpbmUgc3RhdGljIFNlbnNvckZsYWdCaXRzIGV4dHJhY3RSZXBvcnRNb2RlKHVpbnQ2NF90IGZsYWcpIHsKKyAgICByZXR1cm4gKFNlbnNvckZsYWdCaXRzKSAoZmxhZworICAgICAgICAmICgodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpDT05USU5VT1VTX01PREUKKyAgICAgICAgICB8ICh1aW50NjRfdCkgU2Vuc29yRmxhZ0JpdHM6Ok9OX0NIQU5HRV9NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpPTkVfU0hPVF9NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFKSk7CisgIH0KKworICBpbmxpbmUgc3RhdGljIGJvb2wgaXNNZXRhU2Vuc29yVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gKHR5cGUgPT0gU2Vuc29yVHlwZTo6TUVUQV9EQVRBCisgICAgICAgICAgICB8fCB0eXBlID09IFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEEKKyAgICAgICAgICAgIHx8IHR5cGUgPT0gU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPKTsKKyAgfQorCisgIGlubGluZSBzdGF0aWMgYm9vbCBpc1ZhbGlkVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gKGludDMyX3QpIHR5cGUgPiAwOworICB9CisKKyAgdm9pZCB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBzYW1wbGluZ1BlcmlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcik7CisgIHZvaWQgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpOworICB2b2lkIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpOworICB2b2lkIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oCisgICAgICBTZW5zb3JUeXBlIHR5cGUsIFNoYXJlZE1lbVR5cGUgbWVtVHlwZSwgUmF0ZUxldmVsIHJhdGUsIGNvbnN0IFNlbnNvckV2ZW50c0NoZWNrZXIgJmNoZWNrZXIpOworCisgIHN0YXRpYyB2b2lkIGFzc2VydFR5cGVNYXRjaFN0cmluZ1R5cGUoU2Vuc29yVHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYgc3RyaW5nVHlwZSk7CisgIHN0YXRpYyB2b2lkIGFzc2VydFR5cGVNYXRjaFJlcG9ydE1vZGUoU2Vuc29yVHlwZSB0eXBlLCBTZW5zb3JGbGFnQml0cyByZXBvcnRNb2RlKTsKKyAgc3RhdGljIHZvaWQgYXNzZXJ0RGVsYXlNYXRjaFJlcG9ydE1vZGUoCisgICAgICAgICAgaW50MzJfdCBtaW5EZWxheSwgaW50MzJfdCBtYXhEZWxheSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSk7CisgIHN0YXRpYyBTZW5zb3JGbGFnQml0cyBleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlKFNlbnNvclR5cGUgdHlwZSk7CisgIHN0YXRpYyBib29sIGlzRGlyZWN0UmVwb3J0UmF0ZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgUmF0ZUxldmVsIHJhdGUpOworICBzdGF0aWMgYm9vbCBpc0RpcmVjdENoYW5uZWxUeXBlU3VwcG9ydGVkKFNlbnNvckluZm8gc2Vuc29yLCBTaGFyZWRNZW1UeXBlIHR5cGUpOworCisgIC8vIGNoZWNrZXJzCisgIHN0YXRpYyBjb25zdCBWZWMzTm9ybUNoZWNrZXIgc0FjY2VsTm9ybUNoZWNrZXI7CisgIHN0YXRpYyBjb25zdCBWZWMzTm9ybUNoZWNrZXIgc0d5cm9Ob3JtQ2hlY2tlcjsKKworICAvLyBhbGwgc2Vuc29ycyBhbmQgZGlyZWN0IGNoYW5ubmVscyB1c2VkCisgIHN0ZDo6dW5vcmRlcmVkX3NldDxpbnQzMl90PiBtU2Vuc29ySGFuZGxlczsKKyAgc3RkOjp1bm9yZGVyZWRfc2V0PGludDMyX3Q+IG1EaXJlY3RDaGFubmVsSGFuZGxlczsKK307CisKK2NvbnN0IFZlYzNOb3JtQ2hlY2tlciBTZW5zb3JzSGlkbFRlc3Q6OnNBY2NlbE5vcm1DaGVja2VyKAorICAgICAgICBWZWMzTm9ybUNoZWNrZXI6OmJ5Tm9taW5hbChHUkFWSVRZX0VBUlRILCAwLjVmLyptL3NeMiovKSk7Citjb25zdCBWZWMzTm9ybUNoZWNrZXIgU2Vuc29yc0hpZGxUZXN0OjpzR3lyb05vcm1DaGVja2VyKAorICAgICAgICBWZWMzTm9ybUNoZWNrZXI6OmJ5Tm9taW5hbCgwLmYsIDAuMWYvKnJhZC9zKi8pKTsKKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yc0hpZGxUZXN0OjphY3RpdmF0ZShpbnQzMl90IHNlbnNvckhhbmRsZSwgYm9vbCBlbmFibGVkKSB7CisgIC8vIElmIGFjdGl2YXRpbmcgYSBzZW5zb3IsIGFkZCB0aGUgaGFuZGxlIGluIGEgc2V0IHNvIHRoYXQgd2hlbiB0ZXN0IGZhaWxzIGl0IGNhbiBiZSB0dXJuZWQgb2ZmLgorICAvLyBUaGUgaGFuZGxlIGlzIG5vdCByZW1vdmVkIHdoZW4gaXQgaXMgZGVhY3RpdmF0aW5nIG9uIHB1cnBvc2Ugc28gdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvCisgIC8vIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgZGVhY3RpdmF0aW9uLiBEZWFjdGl2YXRpbmcgYSBzZW5zb3IgbW9yZSB0aGFuIG9uY2UgZG9lcyBub3QgaGF2ZQorICAvLyBuZWdhdGl2ZSBlZmZlY3QuCisgIGlmIChlbmFibGVkKSB7CisgICAgbVNlbnNvckhhbmRsZXMuaW5zZXJ0KHNlbnNvckhhbmRsZSk7CisgIH0KKyAgcmV0dXJuIFMoKS0+YWN0aXZhdGUoc2Vuc29ySGFuZGxlLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnNIaWRsVGVzdDo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsKAorICAgIGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbSwgSVNlbnNvcnM6OnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbF9jYiBjYikgeworICAvLyBJZiByZWdpc3RlcmF0aW9uIG9mIGEgY2hhbm5lbCBzdWNjZWVkcywgYWRkIHRoZSBoYW5kbGUgb2YgY2hhbm5lbCB0byBhIHNldCBzbyB0aGF0IGl0IGNhbiBiZQorICAvLyB1bnJlZ2lzdGVyZWQgd2hlbiB0ZXN0IGZhaWxzLiBVbnJlZ2lzdGVyIGEgY2hhbm5lbCBkb2VzIG5vdCByZW1vdmUgdGhlIGhhbmRsZSBvbiBwdXJwb3NlLgorICAvLyBVbnJlZ2lzdGVyaW5nIGEgY2hhbm5lbCBtb3JlIHRoYW4gb25jZSBzaG91bGQgbm90IGhhdmUgbmVnYXRpdmUgZWZmZWN0LgorICBTKCktPnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChtZW0sCisgICAgICBbJl0gKGF1dG8gcmVzdWx0LCBhdXRvIGNoYW5uZWxIYW5kbGUpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgbURpcmVjdENoYW5uZWxIYW5kbGVzLmluc2VydChjaGFubmVsSGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBjYihyZXN1bHQsIGNoYW5uZWxIYW5kbGUpOworICAgICAgfSk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK3N0ZDo6dmVjdG9yPEV2ZW50PiBTZW5zb3JzSGlkbFRlc3Q6OmNvbGxlY3RFdmVudHModXNlY29uZHNfdCB0aW1lTGltaXRVcywgc2l6ZV90IG5FdmVudExpbWl0LAorICAgICAgYm9vbCBjbGVhckJlZm9yZVN0YXJ0LCBib29sIGNoYW5nZUNvbGxlY3Rpb24pIHsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKyAgY29uc3RleHByIHVzZWNvbmRzX3QgU0xFRVBfR1JBTlVMQVJJVFkgPSAxMDAqMTAwMDsgLy9ncmFudWxhcml0eSAxMDAgbXMKKworICBBTE9HSSgiY29sbGVjdCBtYXggb2YgJXp1IGV2ZW50cyBmb3IgJWQgdXMsIGNsZWFyQmVmb3JlU3RhcnQgJWQiLAorICAgICAgICBuRXZlbnRMaW1pdCwgdGltZUxpbWl0VXMsIGNsZWFyQmVmb3JlU3RhcnQpOworCisgIGlmIChjaGFuZ2VDb2xsZWN0aW9uKSB7CisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+c2V0Q29sbGVjdGlvbih0cnVlKTsKKyAgfQorICBpZiAoY2xlYXJCZWZvcmVTdGFydCkgeworICAgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPmNhdEV2ZW50cyhudWxscHRyKTsKKyAgfQorCisgIHdoaWxlICh0aW1lTGltaXRVcyA+IDApIHsKKyAgICB1c2Vjb25kc190IGR1cmF0aW9uID0gc3RkOjptaW4oU0xFRVBfR1JBTlVMQVJJVFksIHRpbWVMaW1pdFVzKTsKKyAgICB1c2xlZXAoZHVyYXRpb24pOworICAgIHRpbWVMaW1pdFVzIC09IGR1cmF0aW9uOworCisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+Y2F0RXZlbnRzKCZldmVudHMpOworICAgIGlmIChldmVudHMuc2l6ZSgpID49IG5FdmVudExpbWl0KSB7CisgICAgICBicmVhazsKKyAgICB9CisgICAgQUxPR1YoInRpbWUgdG8gZ28gPSAlZCwgZXZlbnRzIHRvIGdvID0gJWQiLAorICAgICAgICAgIChpbnQpdGltZUxpbWl0VXMsIChpbnQpKG5FdmVudExpbWl0IC0gZXZlbnRzLnNpemUoKSkpOworICB9CisKKyAgaWYgKGNoYW5nZUNvbGxlY3Rpb24pIHsKKyAgICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKGZhbHNlKTsKKyAgfQorICByZXR1cm4gZXZlbnRzOworfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0VHlwZU1hdGNoU3RyaW5nVHlwZShTZW5zb3JUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBzdHJpbmdUeXBlKSB7CisKKyAgaWYgKHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSkgeworICAgIHJldHVybjsKKyAgfQorCisgIHN3aXRjaCAodHlwZSkgeworI2RlZmluZSBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUodHlwZSkgXAorICAgIGNhc2UgU2Vuc29yVHlwZTo6dHlwZTogQVNTRVJUX1NUUkVRKFNFTlNPUl9TVFJJTkdfVFlQRV8gIyMgdHlwZSwgc3RyaW5nVHlwZS5jX3N0cigpKTsgYnJlYWs7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFDQ0VMRVJPTUVURVIpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFERElUSU9OQUxfSU5GTyk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFNQklFTlRfVEVNUEVSQVRVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShERVZJQ0VfT1JJRU5UQVRJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShEWU5BTUlDX1NFTlNPUl9NRVRBKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR0FNRV9ST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHTEFOQ0VfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEdSQVZJVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHWVJPU0NPUEUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHWVJPU0NPUEVfVU5DQUxJQlJBVEVEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoSEVBUlRfQkVBVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEhFQVJUX1JBVEUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMSUdIVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKExJTkVBUl9BQ0NFTEVSQVRJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE1BR05FVElDX0ZJRUxEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTU9USU9OX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE9SSUVOVEFUSU9OKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUElDS19VUF9HRVNUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUE9TRV82RE9GKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUFJFU1NVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShQUk9YSU1JVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShSRUxBVElWRV9IVU1JRElUWSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFJPVEFUSU9OX1ZFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNJR05JRklDQU5UX01PVElPTik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNUQVRJT05BUllfREVURUNUKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoU1RFUF9DT1VOVEVSKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoU1RFUF9ERVRFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFRFTVBFUkFUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoVElMVF9ERVRFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFdBS0VfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFdSSVNUX1RJTFRfR0VTVFVSRSk7CisgICAgZGVmYXVsdDoKKyAgICAgIEZBSUwoKSA8PCAiVHlwZSAiIDw8IHN0YXRpY19jYXN0PGludD4odHlwZSkgPDwgIiBpbiBhbmRyb2lkIGRlZmluZWQgcmFuZ2UgaXMgbm90IGNoZWNrZWQsICIKKyAgICAgICAgICAgICA8PCAic3RyaW5nVHlwZSA9ICIgPDwgc3RyaW5nVHlwZTsKKyN1bmRlZiBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUKKyAgfQorfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0VHlwZU1hdGNoUmVwb3J0TW9kZShTZW5zb3JUeXBlIHR5cGUsIFNlbnNvckZsYWdCaXRzIHJlcG9ydE1vZGUpIHsKKyAgaWYgKHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSkgeworICAgIHJldHVybjsKKyAgfQorCisgIFNlbnNvckZsYWdCaXRzIGV4cGVjdGVkID0gZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZSh0eXBlKTsKKworICBBU1NFUlRfVFJVRShleHBlY3RlZCA9PSAoU2Vuc29yRmxhZ0JpdHMpIC0xIHx8IGV4cGVjdGVkID09IHJlcG9ydE1vZGUpCisgICAgICA8PCAicmVwb3J0TW9kZT0iIDw8IHN0YXRpY19jYXN0PGludD4ocmVwb3J0TW9kZSkKKyAgICAgIDw8ICJleHBlY3RlZD0iIDw8IHN0YXRpY19jYXN0PGludD4oZXhwZWN0ZWQpOworfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0RGVsYXlNYXRjaFJlcG9ydE1vZGUoCisgICAgaW50MzJfdCBtaW5EZWxheSwgaW50MzJfdCBtYXhEZWxheSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSkgeworICBzd2l0Y2gocmVwb3J0TW9kZSkgeworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6OkNPTlRJTlVPVVNfTU9ERToKKyAgICAgIEFTU0VSVF9MVCgwLCBtaW5EZWxheSk7CisgICAgICBBU1NFUlRfTEUoMCwgbWF4RGVsYXkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW5zb3JGbGFnQml0czo6T05fQ0hBTkdFX01PREU6CisgICAgICBBU1NFUlRfTEUoMCwgbWluRGVsYXkpOworICAgICAgQVNTRVJUX0xFKDAsIG1heERlbGF5KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6Ok9ORV9TSE9UX01PREU6CisgICAgICBBU1NFUlRfRVEoLTEsIG1pbkRlbGF5KTsKKyAgICAgIEFTU0VSVF9FUSgwLCBtYXhEZWxheSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFOgorICAgICAgLy8gZG8gbm90IGVuZm9yY2UgYW55dGhpbmcgZm9yIHNwZWNpYWwgcmVwb3J0aW5nIG1vZGUKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBGQUlMKCkgPDwgIlJlcG9ydCBtb2RlICIgPDwgc3RhdGljX2Nhc3Q8aW50PihyZXBvcnRNb2RlKSA8PCAiIG5vdCBjaGVja2VkIjsKKyAgfQorfQorCisvLyByZXR1cm4gLTEgbWVhbnMgbm8gZXhwZWN0YXRpb24gZm9yIHRoaXMgdHlwZQorU2Vuc29yRmxhZ0JpdHMgU2Vuc29yc0hpZGxUZXN0OjpleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlKFNlbnNvclR5cGUgdHlwZSkgeworICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRDoKKyAgICBjYXNlIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJFU1NVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpURU1QRVJBVFVSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkdSQVZJVFk6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpMSU5FQVJfQUNDRUxFUkFUSU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6Uk9UQVRJT05fVkVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R0FNRV9ST1RBVElPTl9WRUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVEOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6UE9TRV82RE9GOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfQkVBVDoKKyAgICAgIHJldHVybiBTZW5zb3JGbGFnQml0czo6Q09OVElOVU9VU19NT0RFOworCisgICAgY2FzZSBTZW5zb3JUeXBlOjpMSUdIVDoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlBST1hJTUlUWToKKyAgICBjYXNlIFNlbnNvclR5cGU6OlJFTEFUSVZFX0hVTUlESVRZOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX1JBVEU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpERVZJQ0VfT1JJRU5UQVRJT046CisgICAgY2FzZSBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNUOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9DT1VOVEVSOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1Q6CisgICAgICByZXR1cm4gU2Vuc29yRmxhZ0JpdHM6Ok9OX0NIQU5HRV9NT0RFOworCisgICAgY2FzZSBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT046CisgICAgY2FzZSBTZW5zb3JUeXBlOjpXQUtFX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHTEFOQ0VfR0VTVFVSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OlBJQ0tfVVBfR0VTVFVSRToKKyAgICAgIHJldHVybiBTZW5zb3JGbGFnQml0czo6T05FX1NIT1RfTU9ERTsKKworICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9ERVRFQ1RPUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlRJTFRfREVURUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpXUklTVF9USUxUX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBOgorICAgICAgcmV0dXJuIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFOworCisgICAgZGVmYXVsdDoKKyAgICAgIEFMT0dXKCJUeXBlICVkIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlIiwgKGludCl0eXBlKTsKKyAgICAgIHJldHVybiAoU2Vuc29yRmxhZ0JpdHMpLTE7CisgIH0KK30KKworYm9vbCBTZW5zb3JzSGlkbFRlc3Q6OmlzRGlyZWN0UmVwb3J0UmF0ZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgUmF0ZUxldmVsIHJhdGUpIHsKKyAgdW5zaWduZWQgaW50IHIgPQorICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihzZW5zb3IuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6TUFTS19ESVJFQ1RfUkVQT1JUKQorICAgICAgICA+PiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KFNlbnNvckZsYWdTaGlmdDo6RElSRUNUX1JFUE9SVCk7CisgIHJldHVybiByID49IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4ocmF0ZSk7Cit9CisKK2Jvb2wgU2Vuc29yc0hpZGxUZXN0Ojppc0RpcmVjdENoYW5uZWxUeXBlU3VwcG9ydGVkKFNlbnNvckluZm8gc2Vuc29yLCBTaGFyZWRNZW1UeXBlIHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06CisgICAgICByZXR1cm4gKHNlbnNvci5mbGFncyAmIFNlbnNvckZsYWdCaXRzOjpESVJFQ1RfQ0hBTk5FTF9BU0hNRU0pICE9IDA7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpHUkFMTE9DOgorICAgICAgcmV0dXJuIChzZW5zb3IuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6RElSRUNUX0NIQU5ORUxfR1JBTExPQykgIT0gMDsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIGZhbHNlOworICB9Cit9CisKK1NlbnNvckluZm8gU2Vuc29yc0hpZGxUZXN0OjpkZWZhdWx0U2Vuc29yQnlUeXBlKFNlbnNvclR5cGUgdHlwZSkgeworICBTZW5zb3JJbmZvIHJldDsKKworICByZXQudHlwZSA9IChTZW5zb3JUeXBlKSAtMTsKKyAgUygpLT5nZXRTZW5zb3JzTGlzdCgKKyAgICAgIFsmXSAoY29uc3QgYXV0byAmbGlzdCkgeworICAgICAgICBjb25zdCBzaXplX3QgY291bnQgPSBsaXN0LnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgaWYgKGxpc3RbaV0udHlwZSA9PSB0eXBlKSB7CisgICAgICAgICAgICByZXQgPSBsaXN0W2ldOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgcmV0dXJuIHJldDsKK30KKworc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gU2Vuc29yc0hpZGxUZXN0OjpnZXRTZW5zb3JzTGlzdCgpIHsKKyAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gcmV0OworCisgIFMoKS0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICBbJl0gKGNvbnN0IGF1dG8gJmxpc3QpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIHJldC5yZXNlcnZlKGxpc3Quc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgcmV0LnB1c2hfYmFjayhsaXN0W2ldKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgcmV0dXJuIHJldDsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgbGlzdCByZXR1cm5lZCBpcyB2YWxpZAorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgU2Vuc29yTGlzdFZhbGlkKSB7CisgIFMoKS0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICBbJl0gKGNvbnN0IGF1dG8gJmxpc3QpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgIGNvbnN0IGF1dG8gJnMgPSBsaXN0W2ldOworICAgICAgICAgIFNDT1BFRF9UUkFDRSg6OnRlc3Rpbmc6Ok1lc3NhZ2UoKSA8PCBpIDw8ICIvIiA8PCBjb3VudCA8PCAiOiAiCisgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgaGFuZGxlPTB4IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnNldHcoOCkgPDwgc3RkOjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgcy5zZW5zb3JIYW5kbGUgPDwgc3RkOjpkZWMKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgIiB0eXBlPSIgPDwgc3RhdGljX2Nhc3Q8aW50PihzLnR5cGUpCisgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgbmFtZT0iIDw8IHMubmFtZSk7CisKKyAgICAgICAgICAvLyBUZXN0IG5vbi1lbXB0eSB0eXBlIHN0cmluZworICAgICAgICAgIEVYUEVDVF9GQUxTRShzLnR5cGVBc1N0cmluZy5lbXB0eSgpKTsKKworICAgICAgICAgIC8vIFRlc3QgZGVmaW5lZCB0eXBlIG1hdGNoZXMgZGVmaW5lZCBzdHJpbmcgdHlwZQorICAgICAgICAgIEVYUEVDVF9OT19GQVRBTF9GQUlMVVJFKGFzc2VydFR5cGVNYXRjaFN0cmluZ1R5cGUocy50eXBlLCBzLnR5cGVBc1N0cmluZykpOworCisgICAgICAgICAgLy8gVGVzdCBpZiBhbGwgc2Vuc29yIGhhcyBuYW1lIGFuZCB2ZW5kb3IKKyAgICAgICAgICBFWFBFQ1RfRkFMU0Uocy5uYW1lLmVtcHR5KCkpOworICAgICAgICAgIEVYUEVDVF9GQUxTRShzLnZlbmRvci5lbXB0eSgpKTsKKworICAgICAgICAgIC8vIFRlc3QgcG93ZXIgPiAwLCBtYXhSYW5nZSA+IDAKKyAgICAgICAgICBFWFBFQ1RfTEUoMCwgcy5wb3dlcik7CisgICAgICAgICAgRVhQRUNUX0xUKDAsIHMubWF4UmFuZ2UpOworCisgICAgICAgICAgLy8gSW5mbyB0eXBlLCBzaG91bGQgaGF2ZSBubyBzZW5zb3IKKyAgICAgICAgICBFWFBFQ1RfRkFMU0UoCisgICAgICAgICAgICAgIHMudHlwZSA9PSBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk8KKyAgICAgICAgICAgICAgfHwgcy50eXBlID09IFNlbnNvclR5cGU6Ok1FVEFfREFUQSk7CisKKyAgICAgICAgICAvLyBUZXN0IGZpZm9NYXggPj0gZmlmb1Jlc2VydmVkCisgICAgICAgICAgRVhQRUNUX0dFKHMuZmlmb01heEV2ZW50Q291bnQsIHMuZmlmb1Jlc2VydmVkRXZlbnRDb3VudCkKKyAgICAgICAgICAgICAgPDwgIm1heD0iIDw8IHMuZmlmb01heEV2ZW50Q291bnQgPDwgIiByZXNlcnZlZD0iIDw8IHMuZmlmb1Jlc2VydmVkRXZlbnRDb3VudDsKKworICAgICAgICAgIC8vIFRlc3QgUmVwb3J0aW5nIG1vZGUgdmFsaWQKKyAgICAgICAgICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShhc3NlcnRUeXBlTWF0Y2hSZXBvcnRNb2RlKHMudHlwZSwgZXh0cmFjdFJlcG9ydE1vZGUocy5mbGFncykpKTsKKworICAgICAgICAgIC8vIFRlc3QgbWluIG1heCBhcmUgaW4gdGhlIHJpZ2h0IG9yZGVyCisgICAgICAgICAgRVhQRUNUX0xFKHMubWluRGVsYXksIHMubWF4RGVsYXkpOworICAgICAgICAgIC8vIFRlc3QgbWluL21heCBkZWxheSBtYXRjaGVzIHJlcG9ydGluZyBtb2RlCisgICAgICAgICAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgICAgICAgIGFzc2VydERlbGF5TWF0Y2hSZXBvcnRNb2RlKHMubWluRGVsYXksIHMubWF4RGVsYXksIGV4dHJhY3RSZXBvcnRNb2RlKHMuZmxhZ3MpKSk7CisgICAgICAgIH0KKyAgICAgIH0pOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBsaXN0IHJldHVybmVkIGlzIHZhbGlkCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBTZXRPcGVyYXRpb25Nb2RlKSB7CisgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yTGlzdCA9IGdldFNlbnNvcnNMaXN0KCk7CisKKyAgICBib29sIG5lZWRPcGVyYXRpb25Nb2RlU3VwcG9ydCA9CisgICAgICAgIHN0ZDo6YW55X29mKHNlbnNvckxpc3QuYmVnaW4oKSwgc2Vuc29yTGlzdC5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgW10gKGNvbnN0IGF1dG8mIHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHMuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6REFUQV9JTkpFQ1RJT04pICE9IDA7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgIGlmICghbmVlZE9wZXJhdGlvbk1vZGVTdXBwb3J0KSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgUygpLT5zZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGU6OkRBVEFfSU5KRUNUSU9OKSk7CisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgbGlzdCByZXR1cm5lZCBpcyB2YWxpZAorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgSW5qZWN0U2Vuc29yRXZlbnREYXRhKSB7CisgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yTGlzdCA9IGdldFNlbnNvcnNMaXN0KCk7CisgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yU3VwcG9ydEluamVjdGlvbjsKKworICAgIGJvb2wgbmVlZE9wZXJhdGlvbk1vZGVTdXBwb3J0ID0KKyAgICAgICAgc3RkOjphbnlfb2Yoc2Vuc29yTGlzdC5iZWdpbigpLCBzZW5zb3JMaXN0LmVuZCgpLAorICAgICAgICAgICAgICAgICAgICBbJnNlbnNvclN1cHBvcnRJbmplY3Rpb25dIChjb25zdCBhdXRvJiBzKSB7CisgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXQgPSAocy5mbGFncyAmIFNlbnNvckZsYWdCaXRzOjpEQVRBX0lOSkVDVElPTikgIT0gMDsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZW5zb3JTdXBwb3J0SW5qZWN0aW9uLnB1c2hfYmFjayhzKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgaWYgKCFuZWVkT3BlcmF0aW9uTW9kZVN1cHBvcnQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgUygpLT5zZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGU6Ok5PUk1BTCkpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6REFUQV9JTkpFQ1RJT04pKTsKKworICAgIGZvciAoY29uc3QgYXV0byAmcyA6IHNlbnNvclN1cHBvcnRJbmplY3Rpb24pIHsKKyAgICAgIHN3aXRjaCAocy50eXBlKSB7CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQ6IHsKKyAgICAgICAgICB1c2xlZXAoMTAwMDAwKTsgLy8gc2xlZXAgMTAwbXMKKworICAgICAgICAgIEV2ZW50IGR1bW15OworICAgICAgICAgIGR1bW15LnRpbWVzdGFtcCA9IGFuZHJvaWQ6OmVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgICBkdW1teS5zZW5zb3JUeXBlID0gcy50eXBlOworICAgICAgICAgIGR1bW15LnNlbnNvckhhbmRsZSA9IHMuc2Vuc29ySGFuZGxlOworICAgICAgICAgIFZlYzMgdiA9IHsxLCAyLCAzLCBTZW5zb3JTdGF0dXM6OkFDQ1VSQUNZX0hJR0h9OworICAgICAgICAgIGR1bW15LnUudmVjMyA9IHY7CisKKyAgICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgUygpLT5pbmplY3RTZW5zb3JEYXRhKGR1bW15KSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIHNhbXBsaW5nUGVyaW9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMgZHVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTZW5zb3JFdmVudHNDaGVja2VyICZjaGVja2VyKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisKKyAgY29uc3QgaW50NjRfdCBzYW1wbGluZ1BlcmlvZEluTnMgPSBzYW1wbGluZ1BlcmlvZC5jb3VudCgpOworICBjb25zdCBpbnQ2NF90IGJhdGNoaW5nUGVyaW9kSW5OcyA9IDA7IC8vIG5vIGJhdGNoaW5nCisgIGNvbnN0IHVzZWNvbmRzX3QgbWluVGltZVVzID0gc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyhkdXJhdGlvbikuY291bnQoKTsKKyAgY29uc3Qgc2l6ZV90IG1pbk5FdmVudCA9IGR1cmF0aW9uIC8gc2FtcGxpbmdQZXJpb2Q7CisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNWYWxpZFR5cGUoc2Vuc29yLnR5cGUpKSB7CisgICAgLy8gbm8gZGVmYXVsdCBzZW5zb3Igb2YgdGhpcyB0eXBlCisgICAgcmV0dXJuOworICB9CisKKyAgaWYgKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoc2Vuc29yLm1pbkRlbGF5KSA+IHNhbXBsaW5nUGVyaW9kKSB7CisgICAgLy8gcmF0ZSBub3Qgc3VwcG9ydGVkCisgICAgcmV0dXJuOworICB9CisKKyAgaW50MzJfdCBoYW5kbGUgPSBzZW5zb3Iuc2Vuc29ySGFuZGxlOworCisgIEFTU0VSVF9FUShiYXRjaChoYW5kbGUsIHNhbXBsaW5nUGVyaW9kSW5OcywgYmF0Y2hpbmdQZXJpb2RJbk5zKSwgUmVzdWx0OjpPSyk7CisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDEpLCBSZXN1bHQ6Ok9LKTsKKyAgZXZlbnRzID0gY29sbGVjdEV2ZW50cyhtaW5UaW1lVXMsIG1pbk5FdmVudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLyk7CisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDApLCBSZXN1bHQ6Ok9LKTsKKworICBBTE9HSSgiQ29sbGVjdGVkICV6dSBzYW1wbGVzIiwgZXZlbnRzLnNpemUoKSk7CisKKyAgQVNTRVJUX0dUKGV2ZW50cy5zaXplKCksIDB1KTsKKworICBzaXplX3QgblJlYWxFdmVudCA9IDA7CisgIGJvb2wgaGFuZGxlTWlzbWF0Y2hSZXBvcnRlZCA9IGZhbHNlOworICBib29sIG1ldGFTZW5zb3JUeXBlRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlKSB7CisgICAgICAvLyBhdm9pZCBnZW5lcmF0aW5nIGh1bmRyZWRzIG9mIGVycm9yCisgICAgICBpZiAoIWhhbmRsZU1pc21hdGNoUmVwb3J0ZWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKGUuc2Vuc29ySGFuZGxlLCBoYW5kbGUpCisgICAgICAgICAgICA8PCAoaGFuZGxlTWlzbWF0Y2hSZXBvcnRlZCA9IHRydWUsCisgICAgICAgICAgICAgICAgIkV2ZW50IG9mIHRoZSBzYW1lIHR5cGUgbXVzdCBjb21lIGZyb20gdGhlIHNlbnNvciByZWdpc3RlcmVkIik7CisgICAgICB9CisgICAgICArKyBuUmVhbEV2ZW50OworICAgIH0gZWxzZSB7CisgICAgICAvLyBhdm9pZCBnZW5lcmF0aW5nIGh1bmRyZWRzIG9mIGVycm9yCisgICAgICBpZiAoIW1ldGFTZW5zb3JUeXBlRXJyb3JSZXBvcnRlZCkgeworICAgICAgICBFWFBFQ1RfVFJVRShpc01ldGFTZW5zb3JUeXBlKGUuc2Vuc29yVHlwZSkpCisgICAgICAgICAgICA8PCAobWV0YVNlbnNvclR5cGVFcnJvclJlcG9ydGVkID0gdHJ1ZSwKKyAgICAgICAgICAgICAgICAiT25seSBtZXRhIHR5cGVzIGFyZSBhbGxvd2VkIGJlc2lkZXMgdGhlIHR5cGUgcmVnaXN0ZXJlZCIpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIHN0ZDo6c3RyaW5nIHM7CisgIEVYUEVDVF9UUlVFKGNoZWNrZXIuY2hlY2soZXZlbnRzLCAmcykpIDw8IHM7CisKKyAgRVhQRUNUX0dFKG5SZWFsRXZlbnQsIG1pbk5FdmVudCAvIDIpOyAvLyBtYWtlIHN1cmUgcmV0dXJuZWQgZXZlbnRzIGFyZSBub3QgYWxsIG1ldGEKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBVSSBzcGVlZCBhY2NlbGVyb21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlclN0cmVhbWluZ09wZXJhdGlvblNsb3cpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gbm9ybWFsIHNwZWVkIGFjY2VsZXJvbWV0ZXIgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBBY2NlbGVyb21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ2FtZSBzcGVlZCBhY2NlbGVyb21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlclN0cmVhbWluZ09wZXJhdGlvbkZhc3QpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIFVJIHNwZWVkIGd5cm9zY29wZSBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZVN0cmVhbWluZ09wZXJhdGlvblNsb3cpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMDApLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIG5vcm1hbCBzcGVlZCBneXJvc2NvcGUgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTdHJlYW1pbmdPcGVyYXRpb25Ob3JtYWwpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ2FtZSBzcGVlZCBneXJvc2NvcGUgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTdHJlYW1pbmdPcGVyYXRpb25GYXN0KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gVUkgc3BlZWQgbWFnbmV0b21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uU2xvdykgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsQ2hlY2tlcigpKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBub3JtYWwgc3BlZWQgbWFnbmV0b21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ2FtZSBzcGVlZCBtYWduZXRvbWV0ZXIgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJTdHJlYW1pbmdPcGVyYXRpb25GYXN0KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsQ2hlY2tlcigpKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3RTYW1wbGluZ1JhdGVIb3RTd2l0Y2hPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHMxLCBldmVudHMyOworCisgIGNvbnN0ZXhwciBpbnQ2NF90IGJhdGNoaW5nUGVyaW9kSW5OcyA9IDA7IC8vIG5vIGJhdGNoaW5nCisgIGNvbnN0ZXhwciBzaXplX3QgbWluTkV2ZW50ID0gNTA7CisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNWYWxpZFR5cGUoc2Vuc29yLnR5cGUpKSB7CisgICAgLy8gbm8gZGVmYXVsdCBzZW5zb3Igb2YgdGhpcyB0eXBlCisgICAgcmV0dXJuOworICB9CisKKyAgaW50MzJfdCBoYW5kbGUgPSBzZW5zb3Iuc2Vuc29ySGFuZGxlOworICBpbnQ2NF90IG1pblNhbXBsaW5nUGVyaW9kSW5OcyA9IHNlbnNvci5taW5EZWxheSAqIDEwMDBsbDsKKyAgaW50NjRfdCBtYXhTYW1wbGluZ1BlcmlvZEluTnMgPSBzZW5zb3IubWF4RGVsYXkgKiAxMDAwbGw7CisKKyAgaWYgKG1pblNhbXBsaW5nUGVyaW9kSW5OcyA9PSBtYXhTYW1wbGluZ1BlcmlvZEluTnMpIHsKKyAgICAvLyBvbmx5IHN1cHBvcnQgc2luZ2xlIHJhdGUKKyAgICByZXR1cm47CisgIH0KKworICBBU1NFUlRfRVEoYmF0Y2goaGFuZGxlLCBtaW5TYW1wbGluZ1BlcmlvZEluTnMsIGJhdGNoaW5nUGVyaW9kSW5OcyksIFJlc3VsdDo6T0spOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAxKSwgUmVzdWx0OjpPSyk7CisKKyAgdXNsZWVwKDUwMDAwMCk7IC8vIHNsZWVwIDAuNSBzZWMgdG8gd2FpdCBmb3IgY2hhbmdlIHJhdGUgdG8gaGFwcGVuCisgIGV2ZW50czEgPSBjb2xsZWN0RXZlbnRzKHNlbnNvci5taW5EZWxheSAqIG1pbk5FdmVudCwgbWluTkV2ZW50LCB0cnVlIC8qY2xlYXJCZWZvcmVTdGFydCovKTsKKworICBBU1NFUlRfRVEoYmF0Y2goaGFuZGxlLCBtYXhTYW1wbGluZ1BlcmlvZEluTnMsIGJhdGNoaW5nUGVyaW9kSW5OcyksIFJlc3VsdDo6T0spOworCisgIHVzbGVlcCg1MDAwMDApOyAvLyBzbGVlcCAwLjUgc2VjIHRvIHdhaXQgZm9yIGNoYW5nZSByYXRlIHRvIGhhcHBlbgorICBldmVudHMyID0gY29sbGVjdEV2ZW50cyhzZW5zb3IubWF4RGVsYXkgKiBtaW5ORXZlbnQsIG1pbk5FdmVudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLyk7CisKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMCksIFJlc3VsdDo6T0spOworCisgIEFMT0dJKCJDb2xsZWN0ZWQgJXp1IGZhc3Qgc2FtcGxlcyBhbmQgJXp1IHNsb3cgc2FtcGxlcyIsIGV2ZW50czEuc2l6ZSgpLCBldmVudHMyLnNpemUoKSk7CisKKyAgQVNTRVJUX0dUKGV2ZW50czEuc2l6ZSgpLCAwdSk7CisgIEFTU0VSVF9HVChldmVudHMyLnNpemUoKSwgMHUpOworCisgIGludDY0X3QgbWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwsIG1heERlbGF5QXZlcmFnZUludGVydmFsOworCisgIHNpemVfdCBuRXZlbnQgPSAwOworICBpbnQ2NF90IHByZXZUaW1lc3RhbXAgPSAtMTsKKyAgaW50NjRfdCB0aW1lc3RhbXBJbnRlcnZhbCA9IDA7CisgIGZvciAoYXV0byAmIGUgOiBldmVudHMxKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlKSB7CisgICAgICBBU1NFUlRfRVEoZS5zZW5zb3JIYW5kbGUsIGhhbmRsZSk7CisgICAgICBpZiAocHJldlRpbWVzdGFtcCA+IDApIHsKKyAgICAgICAgdGltZXN0YW1wSW50ZXJ2YWwgKz0gZS50aW1lc3RhbXAgLSBwcmV2VGltZXN0YW1wOworICAgICAgfQorICAgICAgcHJldlRpbWVzdGFtcCA9IGUudGltZXN0YW1wOworICAgICAgKysgbkV2ZW50OworICAgIH0KKyAgfQorICBBU1NFUlRfR1QobkV2ZW50LCAydSk7CisgIG1pbkRlbGF5QXZlcmFnZUludGVydmFsID0gdGltZXN0YW1wSW50ZXJ2YWwgLyAobkV2ZW50IC0gMSk7CisKKyAgbkV2ZW50ID0gMDsKKyAgcHJldlRpbWVzdGFtcCA9IC0xOworICB0aW1lc3RhbXBJbnRlcnZhbCA9IDA7CisgIGZvciAoYXV0byAmIGUgOiBldmVudHMyKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlKSB7CisgICAgICBBU1NFUlRfRVEoZS5zZW5zb3JIYW5kbGUsIGhhbmRsZSk7CisgICAgICBpZiAocHJldlRpbWVzdGFtcCA+IDApIHsKKyAgICAgICAgdGltZXN0YW1wSW50ZXJ2YWwgKz0gZS50aW1lc3RhbXAgLSBwcmV2VGltZXN0YW1wOworICAgICAgfQorICAgICAgcHJldlRpbWVzdGFtcCA9IGUudGltZXN0YW1wOworICAgICAgKysgbkV2ZW50OworICAgIH0KKyAgfQorICBBU1NFUlRfR1QobkV2ZW50LCAydSk7CisgIG1heERlbGF5QXZlcmFnZUludGVydmFsID0gdGltZXN0YW1wSW50ZXJ2YWwgLyAobkV2ZW50IC0gMSk7CisKKyAgLy8gY2hhbmdlIG9mIHJhdGUgaXMgc2lnbmlmaWNhbnQuCisgIEVYUEVDVF9HVCgobWF4RGVsYXlBdmVyYWdlSW50ZXJ2YWwgLSBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCksIG1pbkRlbGF5QXZlcmFnZUludGVydmFsIC8gMTApOworCisgIC8vIGZhc3Rlc3QgcmF0ZSBzYW1wbGluZyB0aW1lIGlzIGNsb3NlIHRvIHNwZWMKKyAgQUxPR0koIm1pbkRlbGF5QXZlcmFnZUludGVydmFsID0gJSIgUFJJZDY0LCBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCk7CisgIEVYUEVDVF9MVChzdGQ6OmFicyhtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCAtIG1pblNhbXBsaW5nUGVyaW9kSW5OcyksCisgICAgICBtaW5TYW1wbGluZ1BlcmlvZEluTnMgLyAxMCk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gYWNjZWxlcm9tZXRlciBzYW1wbGluZyByYXRlIHN3aXRjaCBwcm9wZXJseSB3aGVuIHNlbnNvciBpcyBhY3RpdmUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJTYW1wbGluZ1BlcmlvZEhvdFN3aXRjaE9wZXJhdGlvbikgeworICB0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGd5cm9zY29wZSBzYW1wbGluZyByYXRlIHN3aXRjaCBwcm9wZXJseSB3aGVuIHNlbnNvciBpcyBhY3RpdmUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZVNhbXBsaW5nUGVyaW9kSG90U3dpdGNoT3BlcmF0aW9uKSB7CisgIHRlc3RTYW1wbGluZ1JhdGVIb3RTd2l0Y2hPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBtYWduZXRvbWV0ZXIgc2FtcGxpbmcgcmF0ZSBzd2l0Y2ggcHJvcGVybHkgd2hlbiBzZW5zb3IgaXMgYWN0aXZlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJTYW1wbGluZ1BlcmlvZEhvdFN3aXRjaE9wZXJhdGlvbikgeworICB0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpIHsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKworICBjb25zdGV4cHIgaW50NjRfdCBtYXhCYXRjaGluZ1Rlc3RUaW1lTnMgPSAzMHVsbCAqIDEwMDAgKiAxMDAwICogMTAwMDsKKyAgY29uc3RleHByIGludDY0X3Qgb25lU2Vjb25kSW5OcyA9IDF1bGwgKiAxMDAwICogMTAwMCAqIDEwMDA7CisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNWYWxpZFR5cGUoc2Vuc29yLnR5cGUpKSB7CisgICAgLy8gbm8gZGVmYXVsdCBzZW5zb3Igb2YgdGhpcyB0eXBlCisgICAgcmV0dXJuOworICB9CisKKyAgaW50MzJfdCBoYW5kbGUgPSBzZW5zb3Iuc2Vuc29ySGFuZGxlOworICBpbnQ2NF90IG1pblNhbXBsaW5nUGVyaW9kSW5OcyA9IHNlbnNvci5taW5EZWxheSAqIDEwMDBsbDsKKyAgdWludDMyX3QgbWluRmlmb0NvdW50ID0gc2Vuc29yLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisgIGludDY0X3QgYmF0Y2hpbmdQZXJpb2RJbk5zID0gbWluRmlmb0NvdW50ICogbWluU2FtcGxpbmdQZXJpb2RJbk5zOworCisgIGlmIChiYXRjaGluZ1BlcmlvZEluTnMgPCBvbmVTZWNvbmRJbk5zKSB7CisgICAgLy8gYmF0Y2hpbmcgc2l6ZSB0b28gc21hbGwgdG8gdGVzdCByZWxpYWJseQorICAgIHJldHVybjsKKyAgfQorCisgIGJhdGNoaW5nUGVyaW9kSW5OcyA9IHN0ZDo6bWluKGJhdGNoaW5nUGVyaW9kSW5OcywgbWF4QmF0Y2hpbmdUZXN0VGltZU5zKTsKKworICBBTE9HSSgiVGVzdCBiYXRjaGluZyBmb3IgJWQgbXMiLCAoaW50KShiYXRjaGluZ1BlcmlvZEluTnMgLyAxMDAwIC8gMTAwMCkpOworCisgIGludDY0X3QgYWxsb3dlZEJhdGNoRGVsaXZlclRpbWVOcyA9CisgICAgICBzdGQ6Om1heChvbmVTZWNvbmRJbk5zLCBiYXRjaGluZ1BlcmlvZEluTnMgLyAxMCk7CisKKyAgQVNTRVJUX0VRKGJhdGNoKGhhbmRsZSwgbWluU2FtcGxpbmdQZXJpb2RJbk5zLCBJTlQ2NF9NQVgpLCBSZXN1bHQ6Ok9LKTsKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMSksIFJlc3VsdDo6T0spOworCisgIHVzbGVlcCg1MDAwMDApOyAvLyBzbGVlcCAwLjUgc2VjIHRvIHdhaXQgZm9yIGluaXRpYWxpemF0aW9uCisgIEFTU0VSVF9FUShmbHVzaChoYW5kbGUpLCBSZXN1bHQ6Ok9LKTsKKworICAvLyB3YWl0IGZvciA4MCUgb2YgdGhlIHJlc2VydmVkIGJhdGNoaW5nIHBlcmlvZAorICAvLyB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBzaWduaWZpY2FudCBhbW91bnQgb2YgZXZlbnRzCisgIC8vIHNpbmNlIGNvbGxlY3Rpb24gaXMgbm90IGVuYWJsZWQgYWxsIGV2ZW50cyB3aWxsIGdvIGRvd24gdGhlIGRyYWluCisgIHVzbGVlcChiYXRjaGluZ1BlcmlvZEluTnMgLyAxMDAwICogOCAvIDEwKTsKKworICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKHRydWUpOworICAvLyAwLjggKyAwLjMgdGltZXMgdGhlIGJhdGNoaW5nIHBlcmlvZAorICAvLyBwbHVzIHNvbWUgdGltZSBmb3IgdGhlIGV2ZW50IHRvIGRlbGl2ZXIKKyAgZXZlbnRzID0gY29sbGVjdEV2ZW50cygKKyAgICAgIGJhdGNoaW5nUGVyaW9kSW5OcyAvIDEwMDAgKiAzIC8gMTAsCisgICAgICAgIG1pbkZpZm9Db3VudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLywgZmFsc2UgLypjaGFuZ2UgY29sbGVjdGlvbiovKTsKKworICBBU1NFUlRfRVEoZmx1c2goaGFuZGxlKSwgUmVzdWx0OjpPSyk7CisKKyAgZXZlbnRzID0gY29sbGVjdEV2ZW50cyhhbGxvd2VkQmF0Y2hEZWxpdmVyVGltZU5zIC8gMTAwMCwKKyAgICAgICAgbWluRmlmb0NvdW50LCB0cnVlIC8qY2xlYXJCZWZvcmVTdGFydCovLCBmYWxzZSAvKmNoYW5nZSBjb2xsZWN0aW9uKi8pOworCisgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPnNldENvbGxlY3Rpb24oZmFsc2UpOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAwKSwgUmVzdWx0OjpPSyk7CisKKyAgc2l6ZV90IG5FdmVudCA9IDA7CisgIGZvciAoYXV0byAmIGUgOiBldmVudHMpIHsKKyAgICBpZiAoZS5zZW5zb3JUeXBlID09IHR5cGUgJiYgZS5zZW5zb3JIYW5kbGUgPT0gaGFuZGxlKSB7CisgICAgICArKyBuRXZlbnQ7CisgICAgfQorICB9CisKKyAgLy8gYXQgbGVhc3QgcmVhY2ggOTAlIG9mIGFkdmVydGlzZWQgY2FwYWNpdHkKKyAgQVNTRVJUX0dUKG5FdmVudCwgKHNpemVfdCkoYmF0Y2hpbmdQZXJpb2RJbk5zIC8gbWluU2FtcGxpbmdQZXJpb2RJbk5zICogOSAvIDEwKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gYWNjZWxlcm9tZXRlciBiYXRjaGluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlckJhdGNoaW5nT3BlcmF0aW9uKSB7CisgIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBneXJvc2NvcGUgYmF0Y2hpbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZUJhdGNoaW5nT3BlcmF0aW9uKSB7CisgIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIG1hZ25ldG9tZXRlciBiYXRjaGluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQmF0Y2hpbmdPcGVyYXRpb24pIHsKKyAgdGVzdEJhdGNoaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oCisgICAgU2Vuc29yVHlwZSB0eXBlLCBTaGFyZWRNZW1UeXBlIG1lbVR5cGUsIFJhdGVMZXZlbCByYXRlLCBjb25zdCBTZW5zb3JFdmVudHNDaGVja2VyICZjaGVja2VyKSB7CisgIGNvbnN0ZXhwciBzaXplX3Qga0V2ZW50U2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpUT1RBTF9MRU5HVEgpOworICBjb25zdGV4cHIgc2l6ZV90IGtORXZlbnQgPSA1MDA7CisgIGNvbnN0ZXhwciBzaXplX3Qga01lbVNpemUgPSBrRXZlbnRTaXplICoga05FdmVudDsKKworICBjb25zdGV4cHIgZmxvYXQga05vcm1hbE5vbWluYWwgPSA1MDsKKyAgY29uc3RleHByIGZsb2F0IGtGYXN0Tm9taW5hbCA9IDIwMDsKKyAgY29uc3RleHByIGZsb2F0IGtWZXJ5RmFzdE5vbWluYWwgPSA4MDA7CisKKyAgY29uc3RleHByIGZsb2F0IGtOb21pbmFsVGVzdFRpbWVTZWMgPSAxLmY7CisgIGNvbnN0ZXhwciBmbG9hdCBrTWF4VGVzdFRpbWVTZWMgPSBrTm9taW5hbFRlc3RUaW1lU2VjICsgMC41ZjsgLy8gMC41IHNlY29uZCBmb3IgaW5pdGlhbGl6YXRpb24KKworICBTZW5zb3JJbmZvIHNlbnNvciA9IGRlZmF1bHRTZW5zb3JCeVR5cGUodHlwZSk7CisKKyAgaWYgKCFpc0RpcmVjdFJlcG9ydFJhdGVTdXBwb3J0ZWQoc2Vuc29yLCByYXRlKSkgeworICAgIHJldHVybjsKKyAgfQorCisgIGlmICghaXNEaXJlY3RDaGFubmVsVHlwZVN1cHBvcnRlZChzZW5zb3IsIG1lbVR5cGUpKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgc3RkOjp1bmlxdWVfcHRyPFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5PgorICAgICAgbWVtKFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpjcmVhdGUobWVtVHlwZSwga01lbVNpemUpKTsKKyAgQVNTRVJUX05FKG1lbSwgbnVsbHB0cik7CisKKyAgY2hhciogYnVmZmVyID0gbWVtLT5nZXRCdWZmZXIoKTsKKyAgLy8gZmlsbCBtZW1vcnkgd2l0aCBkYXRhCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga01lbVNpemU7ICsraSkgeworICAgIGJ1ZmZlcltpXSA9ICdceGNjJzsKKyAgfQorCisgIGludDMyX3QgY2hhbm5lbEhhbmRsZTsKKyAgcmVnaXN0ZXJEaXJlY3RDaGFubmVsKG1lbS0+Z2V0U2hhcmVkTWVtSW5mbygpLAorICAgICAgWyZjaGFubmVsSGFuZGxlXSAoYXV0byByZXN1bHQsIGF1dG8gY2hhbm5lbEhhbmRsZV8pIHsKKyAgICAgICAgICBBU1NFUlRfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKTsKKyAgICAgICAgICBjaGFubmVsSGFuZGxlID0gY2hhbm5lbEhhbmRsZV87CisgICAgICB9KTsKKworICAvLyBjaGVjayBtZW1vcnkgaXMgemVyb2VkCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga01lbVNpemU7ICsraSkgeworICAgIEFTU0VSVF9FUShidWZmZXJbaV0sICdcMCcpOworICB9CisKKyAgaW50MzJfdCBldmVudFRva2VuOworICBjb25maWdEaXJlY3RSZXBvcnQoc2Vuc29yLnNlbnNvckhhbmRsZSwgY2hhbm5lbEhhbmRsZSwgcmF0ZSwKKyAgICAgIFsmZXZlbnRUb2tlbl0gKGF1dG8gcmVzdWx0LCBhdXRvIHRva2VuKSB7CisgICAgICAgICAgQVNTRVJUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgZXZlbnRUb2tlbiA9IHRva2VuOworICAgICAgfSk7CisKKyAgdXNsZWVwKHN0YXRpY19jYXN0PHVzZWNvbmRzX3Q+KGtNYXhUZXN0VGltZVNlYyAqIDFlNmYpKTsKKyAgYXV0byBldmVudHMgPSBtZW0tPnBhcnNlRXZlbnRzKCk7CisKKyAgLy8gZmluZCBub3JtaW5hbCByYXRlCisgIGZsb2F0IG5vbWluYWxGcmVxID0gMC5mOworICBzd2l0Y2ggKHJhdGUpIHsKKyAgICAgIGNhc2UgUmF0ZUxldmVsOjpOT1JNQUw6CisgICAgICAgICAgbm9taW5hbEZyZXEgPSBrTm9ybWFsTm9taW5hbDsKKyAgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgUmF0ZUxldmVsOjpGQVNUOgorICAgICAgICAgIG5vbWluYWxGcmVxID0ga0Zhc3ROb21pbmFsOworICAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBSYXRlTGV2ZWw6OlZFUllfRkFTVDoKKyAgICAgICAgICBub21pbmFsRnJlcSA9IGtWZXJ5RmFzdE5vbWluYWw7CisgICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFJhdGVMZXZlbDo6U1RPUDoKKyAgICAgICAgICBGQUlMKCk7CisgIH0KKworICAvLyBhbGxvd2VkIHRvIGJlIGJldHdlZW4gNTUlIGFuZCAyMjAlIG9mIG5vbWluYWwgZnJlcQorICBBU1NFUlRfR1QoZXZlbnRzLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihub21pbmFsRnJlcSAqIDAuNTVmICoga05vbWluYWxUZXN0VGltZVNlYykpOworICBBU1NFUlRfTFQoZXZlbnRzLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihub21pbmFsRnJlcSAqIDIuMmYgKiBrTWF4VGVzdFRpbWVTZWMpKTsKKworICBpbnQ2NF90IGxhc3RUaW1lc3RhbXAgPSAwOworICBib29sIHR5cGVFcnJvclJlcG9ydGVkID0gZmFsc2U7CisgIGJvb2wgdG9rZW5FcnJvclJlcG9ydGVkID0gZmFsc2U7CisgIGJvb2wgdGltZXN0YW1wRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBmb3IgKGF1dG8gJmUgOiBldmVudHMpIHsKKyAgICBpZiAoIXR5cGVFcnJvclJlcG9ydGVkKSB7CisgICAgICBFWFBFQ1RfRVEodHlwZSwgZS5zZW5zb3JUeXBlKQorICAgICAgICAgIDw8ICh0eXBlRXJyb3JSZXBvcnRlZCA9IHRydWUsICJUeXBlIGluIGV2ZW50IGRvZXMgbm90IG1hdGNoIHR5cGUgb2Ygc2Vuc29yIHJlZ2lzdGVyZWQuIik7CisgICAgfQorICAgIGlmICghdG9rZW5FcnJvclJlcG9ydGVkKSB7CisgICAgICBFWFBFQ1RfRVEoZXZlbnRUb2tlbiwgZS5zZW5zb3JIYW5kbGUpCisgICAgICAgICAgPDwgKHRva2VuRXJyb3JSZXBvcnRlZCA9IHRydWUsCisgICAgICAgICAgICAiRXZlbnQgdG9rZW4gZG9lcyBub3QgbWF0Y2ggdGhhdCByZXR1cmVkIGZyb20gY29uZmlnRGlyZWN0UmVwb3J0Iik7CisgICAgfQorICAgIGlmICghdGltZXN0YW1wRXJyb3JSZXBvcnRlZCkgeworICAgICAgRVhQRUNUX0dUKGUudGltZXN0YW1wLCBsYXN0VGltZXN0YW1wKQorICAgICAgICAgIDw8ICh0aW1lc3RhbXBFcnJvclJlcG9ydGVkID0gdHJ1ZSwgIlRpbWVzdGFtcCBub3QgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisgICAgfQorICAgIGxhc3RUaW1lc3RhbXAgPSBlLnRpbWVzdGFtcDsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIHM7CisgIEVYUEVDVF9UUlVFKGNoZWNrZXIuY2hlY2soZXZlbnRzLCAmcykpIDw8IHM7CisKKyAgLy8gc3RvcCBzZW5zb3IgYW5kIHVucmVnaXN0ZXIgY2hhbm5lbAorICBjb25maWdEaXJlY3RSZXBvcnQoc2Vuc29yLnNlbnNvckhhbmRsZSwgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsOjpTVE9QLAorICAgICAgICBbJmV2ZW50VG9rZW5dIChhdXRvIHJlc3VsdCwgYXV0bykgeworICAgICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSyk7CisgICAgICAgIH0pOworICBFWFBFQ1RfRVEodW5yZWdpc3RlckRpcmVjdENoYW5uZWwoY2hhbm5lbEhhbmRsZSksIFJlc3VsdDo6T0spOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBhY2NlbCBzZW5zb3IgYXQgbm9ybWFsIHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25Ob3JtYWwpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6Tk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNBY2NlbE5vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgYWNjZWwgc2Vuc29yIGF0IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlckFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvbkZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6RkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGFjY2VsIHNlbnNvciBhdCB2ZXJ5IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlckFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvblZlcnlGYXN0KSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OlZFUllfRkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGd5cm8gc2Vuc29yIGF0IG5vcm1hbCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25Ob3JtYWwpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpOT1JNQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGd5cm8gc2Vuc29yIGF0IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uRmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OkZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGd5cm8gc2Vuc29yIGF0IHZlcnkgZmFzdCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25WZXJ5RmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OlZFUllfRkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzR3lyb05vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgbWFnIHNlbnNvciBhdCBub3JtYWwgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpOT1JNQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIG1hZyBzZW5zb3IgYXQgZmFzdCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25GYXN0KSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpGQVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxDaGVja2VyKCkpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBtYWcgc2Vuc29yIGF0IHZlcnkgZmFzdCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25WZXJ5RmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKAorICAgICAgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpWRVJZX0ZBU1QsIE51bGxDaGVja2VyKCkpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKSk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CisvLyB2aW06IHNldCB0cz0yIHN3PTIKZGlmZiAtLWdpdCBhL3NlbnNvcnMvQW5kcm9pZC5icCBiL3NlbnNvcnMvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLmJwIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyNTk3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVNvdW5kVHJpZ2dlckh3LmhhbCIsCisgICAgICAgICJJU291bmRUcmlnZ2VySHdDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvU291bmRUcmlnZ2VySHdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Tb3VuZFRyaWdnZXJId0NhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JSHdTb3VuZFRyaWdnZXJIdy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cbkh3U291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQnBId1NvdW5kVHJpZ2dlckh3LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0JzU291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSUh3U291bmRUcmlnZ2VySHdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cbkh3U291bmRUcmlnZ2VySHdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9CcEh3U291bmRUcmlnZ2VySHdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cc1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLm1rIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3LmhhbCBiL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzIzNWM5Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaGFsCkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworaW1wb3J0IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOworCitpbnRlcmZhY2UgSVNvdW5kVHJpZ2dlckh3IHsKKworICAgIC8qKgorICAgICAqIFNvdW5kIHRyaWdnZXIgaW1wbGVtZW50YXRpb24gZGVzY3JpcHRvciByZWFkIGJ5IHRoZSBmcmFtZXdvcmsgdmlhCisgICAgICogZ2V0UHJvcGVydGllcygpLiBVc2VkIGJ5IFNvdW5kVHJpZ2dlciBzZXJ2aWNlIHRvIHJlcG9ydCB0byBhcHBsaWNhdGlvbnMKKyAgICAgKiBhbmQgbWFuYWdlIGNvbmN1cnJlbmN5IGFuZCBwb2xpY3kuCisgICAgICovCisgICAgc3RydWN0IFByb3BlcnRpZXMgeworICAgICAgICAvKiogSW1wbGVtZW50b3IgbmFtZSAqLworICAgICAgICBzdHJpbmcgICBpbXBsZW1lbnRvcjsKKyAgICAgICAgLyoqIEltcGxlbWVudGF0aW9uIGRlc2NyaXB0aW9uICovCisgICAgICAgIHN0cmluZyAgIGRlc2NyaXB0aW9uOworICAgICAgICAvKiogSW1wbGVtZW50YXRpb24gdmVyc2lvbiAqLworICAgICAgICB1aW50MzJfdCB2ZXJzaW9uOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pcXVlIGltcGxlbWVudGF0aW9uIElELiBUaGUgVVVJRCBtdXN0IGNoYW5nZSB3aXRoIGVhY2ggdmVyc2lvbiBvZgorICAgICAgICAgICB0aGUgZW5naW5lIGltcGxlbWVudGF0aW9uICovCisgICAgICAgIFV1aWQgICAgIHV1aWQ7CisgICAgICAgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHNvdW5kIG1vZGVscyBsb2FkZWQgKi8KKyAgICAgICAgdWludDMyX3QgbWF4U291bmRNb2RlbHM7CisgICAgICAgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBrZXkgcGhyYXNlcyAqLworICAgICAgICB1aW50MzJfdCBtYXhLZXlQaHJhc2VzOworICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCB1c2VycyBkZXRlY3RlZCAqLworICAgICAgICB1aW50MzJfdCBtYXhVc2VyczsKKyAgICAgICAgLyoqIEFsbCBzdXBwb3J0ZWQgbW9kZXMuIGUuZyBSZWNvZ25pdGlvbk1vZGUuVk9JQ0VfVFJJR0dFUiAqLworICAgICAgICB1aW50MzJfdCByZWNvZ25pdGlvbk1vZGVzOworICAgICAgICAvKiogU3VwcG9ydHMgc2VhbWxlc3MgdHJhbnNpdGlvbiBmcm9tIGRldGVjdGlvbiB0byBjYXB0dXJlICovCisgICAgICAgIGJvb2wgICAgIGNhcHR1cmVUcmFuc2l0aW9uOworICAgICAgICAvKiogTWF4aW11bSBidWZmZXJpbmcgY2FwYWNpdHkgaW4gbXMgaWYgY2FwdHVyZVRyYW5zaXRpb24gaXMgdHJ1ZSAqLworICAgICAgICB1aW50MzJfdCBtYXhCdWZmZXJNczsKKyAgICAgICAgLyoqIFN1cHBvcnRzIGNhcHR1cmUgYnkgb3RoZXIgdXNlIGNhc2VzIHdoaWxlIGRldGVjdGlvbiBpcyBhY3RpdmUgKi8KKyAgICAgICAgYm9vbCAgICAgY29uY3VycmVudENhcHR1cmU7CisgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmlnZ2VyIGNhcHR1cmUgaW4gZXZlbnQgKi8KKyAgICAgICAgYm9vbCAgICAgdHJpZ2dlckluRXZlbnQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSYXRlZCBwb3dlciBjb25zdW1wdGlvbiB3aGVuIGRldGVjdGlvbiBpcyBhY3RpdmUgd2l0aCBUREIKKyAgICAgICAgICogc2lsZW5jZS9zb3VuZC9zcGVlY2ggcmF0aW8gKi8KKyAgICAgICAgdWludDMyX3QgcG93ZXJDb25zdW1wdGlvbk13OworICAgIH07CisKKworICAgIC8qKgorICAgICAqIEJhc2Ugc291bmQgbW9kZWwgZGVzY3JpcHRvci4gVGhpcyBzdHJ1Y3QgaXMgdGhlIGhlYWRlciBvZiBhIGxhcmdlciBibG9jaworICAgICAqIHBhc3NlZCB0byBsb2FkU291bmRNb2RlbCgpIGFuZCBjb250YWlucyB0aGUgYmluYXJ5IGRhdGEgb2YgdGhlCisgICAgICogc291bmQgbW9kZWwuCisgICAgICovCisgICAgc3RydWN0IFNvdW5kTW9kZWwgeworICAgICAgICAvKiogTW9kZWwgdHlwZS4gZS5nLiBTb3VuZE1vZGVsVHlwZS5LRVlQSFJBU0UgKi8KKyAgICAgICAgU291bmRNb2RlbFR5cGUgdHlwZTsKKyAgICAgICAgLyoqIFVuaXF1ZSBzb3VuZCBtb2RlbCBJRC4gKi8KKyAgICAgICAgVXVpZCAgICAgICAgICAgdXVpZDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaXF1ZSB2ZW5kb3IgSUQuIElkZW50aWZpZXMgdGhlIGVuZ2luZSB0aGUgc291bmQgbW9kZWwKKyAgICAgICAgICogd2FzIGJ1aWxkIGZvciAqLworICAgICAgICBVdWlkICAgICAgICAgICB2ZW5kb3JVdWlkOworICAgICAgICAvKiogT3BhcXVlIGRhdGEgdHJhbnNwYXJlbnQgdG8gQW5kcm9pZCBmcmFtZXdvcmsgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+ICAgZGF0YTsKKyAgICB9OworCisgICAgLyoqIEtleSBwaHJhc2UgZGVzY3JpcHRvciAqLworICAgIHN0cnVjdCBQaHJhc2UgeworICAgICAgICAvKiogVW5pcXVlIGtleXBocmFzZSBJRCBhc3NpZ25lZCBhdCBlbnJvbGxtZW50IHRpbWUgKi8KKyAgICAgICAgdWludDMyX3QgICAgICBpZDsKKyAgICAgICAgLyoqIFJlY29nbml0aW9uIG1vZGVzIHN1cHBvcnRlZCBieSB0aGlzIGtleSBwaHJhc2UgKi8KKyAgICAgICAgdWludDMyX3QgICAgICByZWNvZ25pdGlvbk1vZGVzOworICAgICAgICAvKiogTGlzdCBvZiB1c2VycyBJRHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5IHBocmFzZSAqLworICAgICAgICB2ZWM8dWludDMyX3Q+IHVzZXJzOworICAgICAgICAvKiogTG9jYWxlIC0gSmF2YSBMb2NhbGUgc3R5bGUgKGUuZy4gZW5fVVMpICovCisgICAgICAgIHN0cmluZyAgICAgICAgbG9jYWxlOworICAgICAgICAvKiogUGhyYXNlIHRleHQgaW4gVVRGLTggZm9ybWF0LiAqLworICAgICAgICBzdHJpbmcgICAgICAgIHRleHQ7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemVkIHNvdW5kIG1vZGVsIGZvciBrZXkgcGhyYXNlIGRldGVjdGlvbi4KKyAgICAgKiBQcm9wcmlldGFyeSByZXByZXNlbnRhdGlvbiBvZiBrZXkgcGhyYXNlcyBpbiBiaW5hcnkgZGF0YSBtdXN0IG1hdGNoCisgICAgICogaW5mb3JtYXRpb24gaW5kaWNhdGVkIGJ5IHBocmFzZXMgZmllbGQKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUGhyYXNlU291bmRNb2RlbCB7CisgICAgICAgIC8qKiBDb21tb24gcGFydCBvZiBzb3VuZCBtb2RlbCBkZXNjcmlwdG9yICovCisgICAgICAgIFNvdW5kTW9kZWwgIGNvbW1vbjsKKyAgICAgICAgLyoqIExpc3Qgb2YgZGVzY3JpcHRvcnMgZm9yIGtleSBwaHJhc2VzIHN1cHBvcnRlZCBieSB0aGlzIHNvdW5kIG1vZGVsICovCisgICAgICAgIHZlYzxQaHJhc2U+IHBocmFzZXM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIHNvdW5kIHRyaWdnZXIgY2FwdHVyZSBzZXNzaW9uIHBhc3NlZCB0bworICAgICAqIHN0YXJ0UmVjb2duaXRpb24oKSBtZXRob2QKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVjb2duaXRpb25Db25maWcgeworICAgICAgICAvKioKKyAgICAgICAgICogSU8gaGFuZGxlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBjYXB0dXJlLiBOL0EgaWYgY2FwdHVyZVJlcXVlc3RlZAorICAgICAgICAgKiBpcyBmYWxzZSAqLworICAgICAgICBBdWRpb0lvSGFuZGxlICAgY2FwdHVyZUhhbmRsZTsKKyAgICAgICAgLyoqIElucHV0IGRldmljZSByZXF1ZXN0ZWQgZm9yIGRldGVjdGlvbiBjYXB0dXJlICovCisgICAgICAgIEF1ZGlvRGV2aWNlICAgICBjYXB0dXJlRGV2aWNlOworICAgICAgICAvKiogQ2FwdHVyZSBhbmQgYnVmZmVyIGF1ZGlvIGZvciB0aGlzIHJlY29nbml0aW9uIGluc3RhbmNlICovCisgICAgICAgIGJvb2wgICAgICAgICAgICBjYXB0dXJlUmVxdWVzdGVkOworICAgICAgICAvKiogQ29uZmlndXJhdGlvbiBmb3IgZWFjaCBrZXkgcGhyYXNlICovCisgICAgICAgIHZlYzxQaHJhc2VSZWNvZ25pdGlvbkV4dHJhPiBwaHJhc2VzOworICAgICAgICAvKiogT3BhcXVlIGNhcHR1cmUgY29uZmlndXJhdGlvbiBkYXRhIHRyYW5zcGFyZW50IHRvIHRoZSBmcmFtZXdvcmsgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+ICAgIGRhdGE7CisgICAgfTsKKworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgaW1wbGVtZW50YXRpb24gcHJvcGVydGllcy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiBAcmV0dXJuIHByb3BlcnRpZXMgQSBQcm9wZXJ0aWVzIHN0cnVjdHVyZSBjb250YWluaW5nIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGFuZCBjYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZ2V0UHJvcGVydGllcygpIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwsIFByb3BlcnRpZXMgcHJvcGVydGllcyk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGEgc291bmQgbW9kZWwuIE9uY2UgbG9hZGVkLCByZWNvZ25pdGlvbiBvZiB0aGlzIG1vZGVsIGNhbiBiZQorICAgICAqIHN0YXJ0ZWQgYW5kIHN0b3BwZWQuIE9ubHkgb25lIGFjdGl2ZSByZWNvZ25pdGlvbiBwZXIgbW9kZWwgYXQgYSB0aW1lLgorICAgICAqIFRoZSBTb3VuZFRyaWdnZXIgc2VydmljZSBtdXN0IGhhbmRsZSBjb25jdXJyZW50IHJlY29nbml0aW9uIHJlcXVlc3RzIGJ5CisgICAgICogZGlmZmVyZW50IHVzZXJzL2FwcGxpY2F0aW9ucyBvbiB0aGUgc2FtZSBtb2RlbC4KKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhIHVuaXF1ZSBoYW5kbGUgdXNlZCBieSBvdGhlciBmdW5jdGlvbnMKKyAgICAgKiAodW5sb2FkU291bmRNb2RlbCgpLCBzdGFydFJlY29nbml0aW9uKCksIGV0Yy4uLgorICAgICAqIEBwYXJhbSBzb3VuZE1vZGVsIEEgU291bmRNb2RlbCBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgc291bmQgbW9kZWwgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICBsb2FkLgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSBzb3VuZG1vZGVsQ2FsbGJhY2soKQorICAgICAqICAgICAgICAgICAgICAgICBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdXBvbiBjb21wbGV0aW9uLgorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIHZhbHVlIG9mIHRoZSBjb29raWUgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBjb21wbGV0aW9uCisgICAgICogICAgICAgICAgICAgICBjYWxsYmFjay4gVGhpcyB1bmlxdWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBhc3NpZ25lZCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgIHVzZWQgb25seSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVJTlZBTCBpbiBjYXNlIG9mIGludmFsaWQgc291bmQgbW9kZWwgKGUuZyAwIGRhdGEgc2l6ZSksCisgICAgICogICAgICAgICAgICAgICAgLUVOT1NZUyBpbiBjYXNlIG9mIGludmFsaWQgb3BlcmF0aW9uIChlLmcgbWF4IG51bWJlciBvZgorICAgICAqICAgICAgICAgICAgICAgIG1vZGVscyBleGNlZWRlZCksCisgICAgICogICAgICAgICAgICAgICAgLUVOT01FTSBpbiBjYXNlIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEByZXR1cm4gbW9kZWxIYW5kbGUgQSB1bmlxdWUgaGFuZGxlIGFzc2lnbmVkIGJ5IHRoZSBIQUwgZm9yIHVzZSBieSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICBmcmFtZXdvcmsgd2hlbiBjb250cm9sbGluZyBhY3Rpdml0eSBmb3IgdGhpcyBzb3VuZCBtb2RlbC4KKyAgICAgKi8KKyAgICBsb2FkU291bmRNb2RlbChTb3VuZE1vZGVsIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2tDb29raWUgY29va2llKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCwgU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGEga2V5IHBocmFzZSBzb3VuZCBtb2RlbC4gT25jZSBsb2FkZWQsIHJlY29nbml0aW9uIG9mIHRoaXMgbW9kZWwgY2FuCisgICAgICogYmUgc3RhcnRlZCBhbmQgc3RvcHBlZC4gT25seSBvbmUgYWN0aXZlIHJlY29nbml0aW9uIHBlciBtb2RlbCBhdCBhIHRpbWUuCisgICAgICogVGhlIFNvdW5kVHJpZ2dlciBzZXJ2aWNlIG11c3QgaGFuZGxlIGNvbmN1cnJlbnQgcmVjb2duaXRpb24gcmVxdWVzdHMgYnkKKyAgICAgKiBkaWZmZXJlbnQgdXNlcnMvYXBwbGljYXRpb25zIG9uIHRoZSBzYW1lIG1vZGVsLgorICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGEgdW5pcXVlIGhhbmRsZSB1c2VkIGJ5IG90aGVyIGZ1bmN0aW9ucworICAgICAqICh1bmxvYWRTb3VuZE1vZGVsKCksIHN0YXJ0UmVjb2duaXRpb24oKSwgZXRjLi4uCisgICAgICogQHBhcmFtIHNvdW5kTW9kZWwgQSBQaHJhc2VTb3VuZE1vZGVsIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBzb3VuZCBtb2RlbAorICAgICAqICAgICAgICAgICAgICAgICAgIHRvIGxvYWQuCisgICAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBpbnRlcmZhY2Ugb24gd2hpY2ggdGhlIHNvdW5kbW9kZWxDYWxsYmFjaygpCisgICAgICogICAgICAgICAgICAgICAgIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB1cG9uIGNvbXBsZXRpb24uCisgICAgICogQHBhcmFtIGNvb2tpZSBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGNvbXBsZXRpb24KKyAgICAgKiAgICAgICAgICAgICAgIGNhbGxiYWNrLiBUaGlzIHVuaXF1ZSBjb250ZXh0IGluZm9ybWF0aW9uIGlzIGFzc2lnbmVkIGFuZAorICAgICAqICAgICAgICAgICAgICAgdXNlZCBvbmx5IGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRUlOVkFMIGluIGNhc2Ugb2YgaW52YWxpZCBzb3VuZCBtb2RlbCAoZS5nIDAgZGF0YSBzaXplKSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGluIGNhc2Ugb2YgaW52YWxpZCBvcGVyYXRpb24gKGUuZyBtYXggbnVtYmVyIG9mCisgICAgICogICAgICAgICAgICAgICAgbW9kZWxzIGV4Y2VlZGVkKSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PTUVNIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogQHJldHVybiBtb2RlbEhhbmRsZSBBIHVuaXF1ZSBoYW5kbGUgYXNzaWduZWQgYnkgdGhlIEhBTCBmb3IgdXNlIGJ5IHRoZQorICAgICAqICAgICAgICAgICAgICAgIGZyYW1ld29yayB3aGVuIGNvbnRyb2xsaW5nIGFjdGl2aXR5IGZvciB0aGlzIHNvdW5kIG1vZGVsLgorICAgICAqLworICAgIGxvYWRQaHJhc2VTb3VuZE1vZGVsKFBocmFzZVNvdW5kTW9kZWwgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICBDYWxsYmFja0Nvb2tpZSBjb29raWUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsLCBTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKTsKKworICAgIC8qKgorICAgICAqIFVubG9hZCBhIHNvdW5kIG1vZGVsLiBBIHNvdW5kIG1vZGVsIG1heSBiZSB1bmxvYWRlZCB0byBtYWtlIHJvb20gZm9yIGEKKyAgICAgKiBuZXcgb25lIHRvIG92ZXJjb21lIGltcGxlbWVudGF0aW9uIGxpbWl0YXRpb25zLgorICAgICAqIEBwYXJhbSBtb2RlbEhhbmRsZSB0aGUgaGFuZGxlIG9mIHRoZSBzb3VuZCBtb2RlbCB0byB1bmxvYWQKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9TWVMgaWYgdGhlIG1vZGVsIGlzIG5vdCBsb2FkZWQsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHVubG9hZFNvdW5kTW9kZWwoU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RhcnQgcmVjb2duaXRpb24gb24gYSBnaXZlbiBtb2RlbC4gT25seSBvbmUgcmVjb2duaXRpb24gYWN0aXZlCisgICAgICogYXQgYSB0aW1lIHBlciBtb2RlbC4gT25jZSByZWNvZ25pdGlvbiBzdWNjZWVkcyBvZiBmYWlscywgdGhlIGNhbGxiYWNrCisgICAgICogaXMgY2FsbGVkLgorICAgICAqIEBwYXJhbSBtb2RlbEhhbmRsZSB0aGUgaGFuZGxlIG9mIHRoZSBzb3VuZCBtb2RlbCB0byB1c2UgZm9yIHJlY29nbml0aW9uCisgICAgICogQHBhcmFtIGNvbmZpZyBBIFJlY29nbml0aW9uQ29uZmlnIHN0cnVjdHVyZSBjb250YWluaW5nIGF0dHJpYnV0ZXMgb2YgdGhlCisgICAgICogICAgICAgICAgICAgICByZWNvZ25pdGlvbiB0byBwZXJmb3JtCisgICAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBpbnRlcmZhY2Ugb24gd2hpY2ggdGhlIHJlY29nbml0aW9uQ2FsbGJhY2soKQorICAgICAqICAgICAgICAgICAgICAgICBtZXRob2QgbXVzdCBiZSBjYWxsZWQgdXBvbiByZWNvZ25pdGlvbi4KKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgcmVjb2duaXRpb24KKyAgICAgKiAgICAgICAgICAgICAgIGNhbGxiYWNrLiBUaGlzIHVuaXF1ZSBjb250ZXh0IGluZm9ybWF0aW9uIGlzIGFzc2lnbmVkIGFuZAorICAgICAqICAgICAgICAgICAgICAgdXNlZCBvbmx5IGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRUlOVkFMIGluIGNhc2Ugb2YgaW52YWxpZCByZWNvZ25pdGlvbiBhdHRyaWJ1dGVzLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9TWVMgaW4gY2FzZSBvZiBpbnZhbGlkIG1vZGVsIGhhbmRsZSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PTUVNIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICovCisgICAgc3RhcnRSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgUmVjb2duaXRpb25Db25maWcgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICBDYWxsYmFja0Nvb2tpZSBjb29raWUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgcmVjb2duaXRpb24gb24gYSBnaXZlbiBtb2RlbC4KKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCBub3QgY2FsbCB0aGUgcmVjb2duaXRpb24gY2FsbGJhY2sgd2hlbiBzdG9wcGVkCisgICAgICogdmlhIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBtb2RlbEhhbmRsZSBUaGUgaGFuZGxlIG9mIHRoZSBzb3VuZCBtb2RlbCB0byB1c2UgZm9yIHJlY29nbml0aW9uCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGluIGNhc2Ugb2YgaW52YWxpZCBtb2RlbCBoYW5kbGUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHN0b3BSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wIHJlY29nbml0aW9uIG9uIGFsbCBtb2RlbHMuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICovCisgICAgc3RvcEFsbFJlY29nbml0aW9ucygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsKTsKK307CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmhhbCBiL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwMTMyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2ludGVyZmFjZSBJU291bmRUcmlnZ2VySHdDYWxsYmFjayB7CisgICAgZW51bSBSZWNvZ25pdGlvblN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAgICAgU1VDQ0VTUyAgPSAwLAorICAgICAgICBBQk9SVCAgICA9IDEsCisgICAgICAgIEZBSUxVUkUgID0gMiwKKyAgICB9OworCisgICAgZW51bSBTb3VuZE1vZGVsU3RhdHVzIDogdWludDMyX3QgeworICAgICAgICBVUERBVEVEICA9IDAsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgcmVjb2duaXRpb24gZXZlbnQgc2VudCB2aWEgcmVjb2duaXRpb24gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVjb2duaXRpb25FdmVudCB7CisgICAgICAgIC8qKiBSZWNvZ25pdGlvbiBzdGF0dXMgZS5nLiBTVUNDRVNTICovCisgICAgICAgIFJlY29nbml0aW9uU3RhdHVzIHN0YXR1czsKKyAgICAgICAgLyoqIFNvdW5kIG1vZGVsIHR5cGUgZm9yIHRoaXMgZXZlbnQuIGUuZyBTb3VuZE1vZGVsVHlwZS5UWVBFX0tFWVBIUkFTRSAqLworICAgICAgICBTb3VuZE1vZGVsVHlwZSAgICB0eXBlOworICAgICAgICAvKiogSGFuZGxlIG9mIGxvYWRlZCBzb3VuZCBtb2RlbCB3aGljaCB0cmlnZ2VyZWQgdGhlIGV2ZW50ICovCisgICAgICAgIFNvdW5kTW9kZWxIYW5kbGUgIG1vZGVsOworICAgICAgICAvKiogSXQgaXMgcG9zc2libGUgdG8gY2FwdHVyZSBhdWRpbyBmcm9tIHRoaXMgKi8KKyAgICAgICAgLyoqIHV0dGVyYW5jZSBidWZmZXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gKi8KKyAgICAgICAgYm9vbCAgICAgICAgICAgICAgY2FwdHVyZUF2YWlsYWJsZTsKKyAgICAgICAgLyoqIEF1ZGlvIHNlc3Npb24gSUQuIGZyYW1ld29yayB1c2UgKi8KKyAgICAgICAgaW50MzJfdCAgICAgICAgICAgY2FwdHVyZVNlc3Npb247CisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWxheSBpbiBtcyBiZXR3ZWVuIGVuZCBvZiBtb2RlbCBkZXRlY3Rpb24gYW5kIHN0YXJ0IG9mIGF1ZGlvCisgICAgICAgIC8qKgorICAgICAgICAgKiBhdmFpbGFibGUgZm9yIGNhcHR1cmUuIEEgbmVnYXRpdmUgdmFsdWUgaXMgcG9zc2libGUKKyAgICAgICAgICogKGUuZy4gaWYga2V5IHBocmFzZSBpcyBhbHNvIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSAqLworICAgICAgICBpbnQzMl90ICAgICAgICAgICBjYXB0dXJlRGVsYXlNczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIER1cmF0aW9uIGluIG1zIG9mIGF1ZGlvIGNhcHR1cmVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHRyaWdnZXIuCisgICAgICAgICAqIDAgaWYgbm9uZS4gKi8KKyAgICAgICAgaW50MzJfdCAgICAgICAgICAgY2FwdHVyZVByZWFtYmxlTXM7CisgICAgICAgIC8qKiBUaGUgb3BhcXVlIGRhdGEgaXMgdGhlIGNhcHR1cmUgb2YgdGhlIHRyaWdnZXIgc291bmQgKi8KKyAgICAgICAgYm9vbCAgICAgICAgICAgICAgdHJpZ2dlckluRGF0YTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF1ZGlvIGZvcm1hdCBvZiBlaXRoZXIgdGhlIHRyaWdnZXIgaW4gZXZlbnQgZGF0YSBvciB0byB1c2UgZm9yCisgICAgICAgICAqIGNhcHR1cmUgb2YgdGhlIHJlc3Qgb2YgdGhlIHV0dGVyYW5jZSAqLworICAgICAgICBBdWRpb0NvbmZpZyAgICAgICBhdWRpb0NvbmZpZzsKKyAgICAgICAgLyoqIE9wYXF1ZSBldmVudCBkYXRhICovCisgICAgICAgIHZlYzx1aW50OF90PiAgICAgIGRhdGE7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemVkIHJlY29nbml0aW9uIGV2ZW50IGZvciBrZXkgcGhyYXNlIHJlY29nbml0aW9ucworICAgICAqLworICAgIHN0cnVjdCBQaHJhc2VSZWNvZ25pdGlvbkV2ZW50IHsKKyAgICAgICAgLyoqIENvbW1vbiBwYXJ0IG9mIHRoZSByZWNvZ25pdGlvbiBldmVudCAqLworICAgICAgICBSZWNvZ25pdGlvbkV2ZW50IGNvbW1vbjsKKyAgICAgICAgLyoqIExpc3Qgb2YgZGVzY3JpcHRvcnMgZm9yIGVhY2ggcmVjb2duaXplZCBrZXkgcGhyYXNlICovCisgICAgICAgIHZlYzxQaHJhc2VSZWNvZ25pdGlvbkV4dHJhPiBwaHJhc2VFeHRyYXM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIEV2ZW50IHNlbnQgdmlhIGxvYWQgc291bmQgbW9kZWwgY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzdHJ1Y3QgTW9kZWxFdmVudCB7CisgICAgICAgICAvKiogU291bmQgbW9kZWwgc3RhdHVzIGUuZy4gU291bmRNb2RlbFN0YXR1cy5VUERBVEVEICovCisgICAgICAgIFNvdW5kTW9kZWxTdGF0dXMgc3RhdHVzOworICAgICAgICAvKiogTG9hZGVkIHNvdW5kIG1vZGVsIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqLworICAgICAgICBTb3VuZE1vZGVsSGFuZGxlIG1vZGVsOworICAgICAgICAvKiogT3BhcXVlIGV2ZW50IGRhdGEsIHBhc3NlZCB0cmFuc3BhcmVudGx5IGJ5IHRoZSBmcmFtZXdvcmsgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+ICAgICBkYXRhOworICAgIH07CisKKyAgICB0eXBlZGVmIGludDMyX3QgQ2FsbGJhY2tDb29raWU7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayBtZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiB0aGUgc291bmQgcmVjb2duaXRpb24gdHJpZ2dlcnMKKyAgICAgKiBAcGFyYW0gZXZlbnQgQSBSZWNvZ25pdGlvbkV2ZW50IHN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbGVkIHJlc3VsdHMKKyAgICAgKiAgICAgICAgICAgICAgb2YgdGhlIHJlY29nbml0aW9uIHRyaWdnZXJlZAorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIGNvb2tpZSBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB3aGVuIHJlY29nbml0aW9uIHdhcworICAgICAqICAgICAgICAgICAgICAgc3RhcnRlZCAoc2VlIElTb3VuZHRyaWdnZXJIdy5zdGFydFJlY29nbml0aW9uKCkKKyAgICAgKi8KKyAgICByZWNvZ25pdGlvbkNhbGxiYWNrKFJlY29nbml0aW9uRXZlbnQgZXZlbnQsIENhbGxiYWNrQ29va2llIGNvb2tpZSk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayBtZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiB0aGUgc291bmQgcmVjb2duaXRpb24gdHJpZ2dlcnMKKyAgICAgKiBmb3IgYSBrZXkgcGhyYXNlIHNvdW5kIG1vZGVsLgorICAgICAqIEBwYXJhbSBldmVudCBBIFJlY29nbml0aW9uRXZlbnQgc3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlsZWQgcmVzdWx0cworICAgICAqICAgICAgICAgICAgICBvZiB0aGUgcmVjb2duaXRpb24gdHJpZ2dlcmVkCisgICAgICogQHBhcmFtIGNvb2tpZSBUaGUgY29va2llIHBhc3NlZCBieSB0aGUgZnJhbWV3b3JrIHdoZW4gcmVjb2duaXRpb24gd2FzCisgICAgICogICAgICAgICAgICAgICBzdGFydGVkIChzZWUgSVNvdW5kdHJpZ2dlckh3LnN0YXJ0UmVjb2duaXRpb24oKQorICAgICAqLworICAgIHBocmFzZVJlY29nbml0aW9uQ2FsbGJhY2soUGhyYXNlUmVjb2duaXRpb25FdmVudCBldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGxiYWNrQ29va2llIGNvb2tpZSk7CisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIHNvdW5kIG1vZGVsIGxvYWRpbmcgY29tcGxldGVzCisgICAgICogQHBhcmFtIGV2ZW50IEEgTW9kZWxFdmVudCBzdHJ1Y3R1cmUgY29udGFpbmluZyBkZXRhaWxlZCByZXN1bHRzIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICBtb2RlbCBsb2FkaW5nIG9wZXJhdGlvbgorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIGNvb2tpZSBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB3aGVuIGxvYWRpbmcgd2FzCisgICAgICogICAgICAgICAgICAgICBpbml0aWF0ZWQgKHNlZSBJU291bmR0cmlnZ2VySHcubG9hZFNvdW5kTW9kZWwoKQorICAgICAqLworICAgIHNvdW5kTW9kZWxDYWxsYmFjayhNb2RlbEV2ZW50IGV2ZW50LCBDYWxsYmFja0Nvb2tpZSBjb29raWUpOworfTsKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY4YzZiNAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDMgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFNvdW5kVHJpZ2dlckhhbEltcGwuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGxpYmhhcmR3YXJlIFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSAkKExPQ0FMX1BBVEgpCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuY3BwIGIvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5NjUxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvU291bmRUcmlnZ2VySGFsSW1wbC5jcHAKQEAgLTAsMCArMSw1ODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlNvdW5kVHJpZ2dlckhhbEltcGwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgIlNvdW5kVHJpZ2dlckhhbEltcGwuaCIKKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNvdW5kdHJpZ2dlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBzdGF0aWMKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6c291bmRNb2RlbENhbGxiYWNrKHN0cnVjdCBzb3VuZF90cmlnZ2VyX21vZGVsX2V2ZW50ICpoYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKQoreworICAgIGlmIChoYWxFdmVudCA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCJzb3VuZE1vZGVsQ2FsbGJhY2sgY2FsbGVkIHdpdGggTlVMTCBldmVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudCA9CisgICAgICAgICAgICB3cDxTb3VuZE1vZGVsQ2xpZW50PihzdGF0aWNfY2FzdDxTb3VuZE1vZGVsQ2xpZW50ICo+KGNvb2tpZSkpLnByb21vdGUoKTsKKyAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgQUxPR1coInNvdW5kTW9kZWxDYWxsYmFjayBjYWxsZWQgb24gc3RhbGUgY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGhhbEV2ZW50LT5tb2RlbCAhPSBjbGllbnQtPm1IYWxIYW5kbGUpIHsKKyAgICAgICAgQUxPR1coInNvdW5kTW9kZWxDYWxsYmFjayBjYWxsIHdpdGggd3JvbmcgaGFuZGxlICVkIG9uIGNsaWVudCB3aXRoIGhhbmRsZSAlZCIsCisgICAgICAgICAgICAgIChpbnQpaGFsRXZlbnQtPm1vZGVsLCAoaW50KWNsaWVudC0+bUhhbEhhbmRsZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6TW9kZWxFdmVudCBldmVudDsKKyAgICBjb252ZXJ0U291bmRNb2RlbEV2ZW50RnJvbUhhbCgmZXZlbnQsIGhhbEV2ZW50KTsKKyAgICBldmVudC5tb2RlbCA9IGNsaWVudC0+bUlkOworCisgICAgY2xpZW50LT5tQ2FsbGJhY2stPnNvdW5kTW9kZWxDYWxsYmFjayhldmVudCwgY2xpZW50LT5tQ29va2llKTsKK30KKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OnJlY29nbml0aW9uQ2FsbGJhY2soc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fZXZlbnQgKmhhbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjb29raWUpCit7CisgICAgaWYgKGhhbEV2ZW50ID09IE5VTEwpIHsKKyAgICAgICAgQUxPR1coInJlY29nbml0aW9uQ2FsbGJhY2sgY2FsbCBOVUxMIGV2ZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50ID0KKyAgICAgICAgICAgIHdwPFNvdW5kTW9kZWxDbGllbnQ+KHN0YXRpY19jYXN0PFNvdW5kTW9kZWxDbGllbnQgKj4oY29va2llKSkucHJvbW90ZSgpOworICAgIGlmIChjbGllbnQgPT0gMCkgeworICAgICAgICBBTE9HVygic291bmRNb2RlbENhbGxiYWNrIGNhbGxlZCBvbiBzdGFsZSBjbGllbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50ICpldmVudCA9IGNvbnZlcnRSZWNvZ25pdGlvbkV2ZW50RnJvbUhhbChoYWxFdmVudCk7CisgICAgZXZlbnQtPm1vZGVsID0gY2xpZW50LT5tSWQ7CisgICAgaWYgKGhhbEV2ZW50LT50eXBlID09IFNPVU5EX01PREVMX1RZUEVfS0VZUEhSQVNFKSB7CisgICAgICAgIGNsaWVudC0+bUNhbGxiYWNrLT5waHJhc2VSZWNvZ25pdGlvbkNhbGxiYWNrKAorICAgICAgICAgICAgICAgICoocmVpbnRlcnByZXRfY2FzdDxJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UGhyYXNlUmVjb2duaXRpb25FdmVudCAqPihldmVudCkpLAorICAgICAgICAgICAgICAgIGNsaWVudC0+bUNvb2tpZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2xpZW50LT5tQ2FsbGJhY2stPnJlY29nbml0aW9uQ2FsbGJhY2soKmV2ZW50LCBjbGllbnQtPm1Db29raWUpOworICAgIH0KKyAgICBkZWxldGUgZXZlbnQ7Cit9CisKKworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFNvdW5kVHJpZ2dlckhhbEltcGw6OmdldFByb3BlcnRpZXMoZ2V0UHJvcGVydGllc19jYiBfaGlkbF9jYikKK3sKKyAgICBBTE9HVigiZ2V0UHJvcGVydGllcygpIG1Id0RldmljZSAlcCIsIG1Id0RldmljZSk7CisgICAgaW50IHJldDsKKyAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9wcm9wZXJ0aWVzIGhhbFByb3BlcnRpZXM7CisgICAgSVNvdW5kVHJpZ2dlckh3OjpQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldCA9IG1Id0RldmljZS0+Z2V0X3Byb3BlcnRpZXMobUh3RGV2aWNlLCAmaGFsUHJvcGVydGllcyk7CisKKyAgICBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoJnByb3BlcnRpZXMsICZoYWxQcm9wZXJ0aWVzKTsKKworICAgIEFMT0dWKCJnZXRQcm9wZXJ0aWVzIGltcGxlbWVudG9yICVzIHJlY29nbml0aW9uTW9kZXMgJTA4eCIsCisgICAgICAgICAgcHJvcGVydGllcy5pbXBsZW1lbnRvci5jX3N0cigpLCBwcm9wZXJ0aWVzLnJlY29nbml0aW9uTW9kZXMpOworCitleGl0OgorICAgIF9oaWRsX2NiKHJldCwgcHJvcGVydGllcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworaW50IFNvdW5kVHJpZ2dlckhhbEltcGw6OmRvTG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbW9kZWxJZCkKK3sKKyAgICBpbnQzMl90IHJldCA9IDA7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKmhhbFNvdW5kTW9kZWw7CisgICAgKm1vZGVsSWQgPSAwOworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKworICAgIEFMT0dWKCJkb0xvYWRTb3VuZE1vZGVsKCkgZGF0YSBzaXplICV6dSIsIHNvdW5kTW9kZWwuZGF0YS5zaXplKCkpOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBoYWxTb3VuZE1vZGVsID0gY29udmVydFNvdW5kTW9kZWxUb0hhbCgmc291bmRNb2RlbCk7CisgICAgaWYgKGhhbFNvdW5kTW9kZWwgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgICptb2RlbElkID0gbmV4dFVuaXF1ZUlkKCk7CisgICAgICAgIH0gd2hpbGUgKG1DbGllbnRzLnZhbHVlRm9yKCptb2RlbElkKSAhPSAwICYmICptb2RlbElkICE9IDApOworICAgIH0KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKCptb2RlbElkID09IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAid3JhcCBhcm91bmQgaW4gc291bmQgbW9kZWwgSURzLCBudW0gbG9hZGVkIG1vZGVscyAlenUiLCBtQ2xpZW50cy5zaXplKCkpOworCisgICAgY2xpZW50ID0gbmV3IFNvdW5kTW9kZWxDbGllbnQoKm1vZGVsSWQsIGNhbGxiYWNrLCBjb29raWUpOworCisgICAgcmV0ID0gbUh3RGV2aWNlLT5sb2FkX3NvdW5kX21vZGVsKG1Id0RldmljZSwgaGFsU291bmRNb2RlbCwgc291bmRNb2RlbENhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LmdldCgpLCAmY2xpZW50LT5tSGFsSGFuZGxlKTsKKworICAgIGZyZWUoaGFsU291bmRNb2RlbCk7CisKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHsKKyAgICAgICAgQXV0b011dGV4IGxvY2sobUxvY2spOworICAgICAgICBtQ2xpZW50cy5hZGQoKm1vZGVsSWQsIGNsaWVudCk7CisgICAgfQorCitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisKK1JldHVybjx2b2lkPiBTb3VuZFRyaWdnZXJIYWxJbXBsOjpsb2FkU291bmRNb2RlbChjb25zdCBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwmIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKQoreworICAgIHVpbnQzMl90IG1vZGVsSWQgPSAwOworICAgIGludDMyX3QgcmV0ID0gZG9Mb2FkU291bmRNb2RlbChzb3VuZE1vZGVsLCBjYWxsYmFjaywgY29va2llLCAmbW9kZWxJZCk7CisKKyAgICBfaGlkbF9jYihyZXQsIG1vZGVsSWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTb3VuZFRyaWdnZXJIYWxJbXBsOjpsb2FkUGhyYXNlU291bmRNb2RlbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHc6OmxvYWRQaHJhc2VTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKQoreworICAgIHVpbnQzMl90IG1vZGVsSWQgPSAwOworICAgIGludDMyX3QgcmV0ID0gZG9Mb2FkU291bmRNb2RlbCgoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJilzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgY29va2llLCAmbW9kZWxJZCk7CisKKyAgICBfaGlkbF9jYihyZXQsIG1vZGVsSWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxpbnQzMl90PiBTb3VuZFRyaWdnZXJIYWxJbXBsOjp1bmxvYWRTb3VuZE1vZGVsKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50OworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEF1dG9NdXRleCBsb2NrKG1Mb2NrKTsKKyAgICAgICAgY2xpZW50ID0gbUNsaWVudHMudmFsdWVGb3IobW9kZWxIYW5kbGUpOworICAgICAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXQgPSBtSHdEZXZpY2UtPnVubG9hZF9zb3VuZF9tb2RlbChtSHdEZXZpY2UsIGNsaWVudC0+bUhhbEhhbmRsZSk7CisKKyAgICBtQ2xpZW50cy5yZW1vdmVJdGVtKG1vZGVsSGFuZGxlKTsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6c3RhcnRSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UmVjb2duaXRpb25Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrIF9fdW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUgX191bnVzZWQpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50OworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqaGFsQ29uZmlnOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEF1dG9NdXRleCBsb2NrKG1Mb2NrKTsKKyAgICAgICAgY2xpZW50ID0gbUNsaWVudHMudmFsdWVGb3IobW9kZWxIYW5kbGUpOworICAgICAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGhhbENvbmZpZyA9IGNvbnZlcnRSZWNvZ25pdGlvbkNvbmZpZ1RvSGFsKCZjb25maWcpOworCisgICAgaWYgKGhhbENvbmZpZyA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FSU5WQUw7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgcmV0ID0gbUh3RGV2aWNlLT5zdGFydF9yZWNvZ25pdGlvbihtSHdEZXZpY2UsIGNsaWVudC0+bUhhbEhhbmRsZSwgaGFsQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb25DYWxsYmFjaywgY2xpZW50LmdldCgpKTsKKworICAgIGZyZWUoaGFsQ29uZmlnKTsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6c3RvcFJlY29nbml0aW9uKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50OworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGNsaWVudCA9IG1DbGllbnRzLnZhbHVlRm9yKG1vZGVsSGFuZGxlKTsKKyAgICAgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0ID0gbUh3RGV2aWNlLT5zdG9wX3JlY29nbml0aW9uKG1Id0RldmljZSwgY2xpZW50LT5tSGFsSGFuZGxlKTsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6c3RvcEFsbFJlY29nbml0aW9ucygpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiA+PSBTT1VORF9UUklHR0VSX0RFVklDRV9BUElfVkVSU0lPTl8xXzEgJiYKKyAgICAgICAgICAgIG1Id0RldmljZS0+c3RvcF9hbGxfcmVjb2duaXRpb25zKSB7CisgICAgICAgIHJldCA9IG1Id0RldmljZS0+c3RvcF9hbGxfcmVjb2duaXRpb25zKG1Id0RldmljZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0gLUVOT1NZUzsKKyAgICB9CitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisKK1NvdW5kVHJpZ2dlckhhbEltcGw6OlNvdW5kVHJpZ2dlckhhbEltcGwoKQorICAgIDogbU1vZHVsZU5hbWUoInByaW1hcnkiKSwgbUh3RGV2aWNlKE5VTEwpLCBtTmV4dE1vZGVsSWQoMSkKK3sKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpvbkZpcnN0UmVmKCkKK3sKKyAgICBjb25zdCBod19tb2R1bGVfdCAqbW9kOworICAgIGludCByYzsKKworICAgIHJjID0gaHdfZ2V0X21vZHVsZV9ieV9jbGFzcyhTT1VORF9UUklHR0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgbU1vZHVsZU5hbWUsICZtb2QpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBsb2FkIHNvdW5kIHRyaWdnZXIgbW9kdWxlICVzLiVzICglcykiLAorICAgICAgICAgICAgICBTT1VORF9UUklHR0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgbU1vZHVsZU5hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJjID0gc291bmRfdHJpZ2dlcl9od19kZXZpY2Vfb3Blbihtb2QsICZtSHdEZXZpY2UpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBvcGVuIHNvdW5kIHRyaWdnZXIgaHcgZGV2aWNlIGluICVzLiVzICglcykiLAorICAgICAgICAgICAgICBTT1VORF9UUklHR0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgbU1vZHVsZU5hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uIDwgU09VTkRfVFJJR0dFUl9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wIHx8CisgICAgICAgICAgICBtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uID4gU09VTkRfVFJJR0dFUl9ERVZJQ0VfQVBJX1ZFUlNJT05fQ1VSUkVOVCkgeworICAgICAgICBBTE9HRSgid3Jvbmcgc291bmQgdHJpZ2dlciBodyBkZXZpY2UgdmVyc2lvbiAlMDR4IiwgbUh3RGV2aWNlLT5jb21tb24udmVyc2lvbik7CisgICAgICAgIHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlX2Nsb3NlKG1Id0RldmljZSk7CisgICAgICAgIG1Id0RldmljZSA9IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBTE9HSSgib25GaXJzdFJlZigpIG1Nb2R1bGVOYW1lICVzIG1Id0RldmljZSAlcCIsIG1Nb2R1bGVOYW1lLCBtSHdEZXZpY2UpOworfQorCitTb3VuZFRyaWdnZXJIYWxJbXBsOjp+U291bmRUcmlnZ2VySGFsSW1wbCgpCit7CisgICAgaWYgKG1Id0RldmljZSAhPSBOVUxMKSB7CisgICAgICAgIHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlX2Nsb3NlKG1Id0RldmljZSk7CisgICAgfQorfQorCit1aW50MzJfdCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpuZXh0VW5pcXVlSWQoKQoreworICAgIHJldHVybiAodWludDMyX3QpIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQoJm1OZXh0TW9kZWxJZCwKKyAgICAgICAgICAgICAgICAodWludF9mYXN0MzJfdCkgMSwgbWVtb3J5X29yZGVyX2FjcV9yZWwpOworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRVdWlkRnJvbUhhbChVdWlkICp1dWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291bmRfdHJpZ2dlcl91dWlkX3QgKmhhbFV1aWQpCit7CisgICAgdXVpZC0+dGltZUxvdyA9IGhhbFV1aWQtPnRpbWVMb3c7CisgICAgdXVpZC0+dGltZU1pZCA9IGhhbFV1aWQtPnRpbWVNaWQ7CisgICAgdXVpZC0+dmVyc2lvbkFuZFRpbWVIaWdoID0gaGFsVXVpZC0+dGltZUhpQW5kVmVyc2lvbjsKKyAgICB1dWlkLT52YXJpYW50QW5kQ2xvY2tTZXFIaWdoID0gaGFsVXVpZC0+Y2xvY2tTZXE7CisgICAgbWVtY3B5KCZ1dWlkLT5ub2RlWzBdLCAmaGFsVXVpZC0+bm9kZVswXSwgNik7Cit9CisKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFV1aWRUb0hhbChzb3VuZF90cmlnZ2VyX3V1aWRfdCAqaGFsVXVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVdWlkICp1dWlkKQoreworICAgIGhhbFV1aWQtPnRpbWVMb3cgPSB1dWlkLT50aW1lTG93OworICAgIGhhbFV1aWQtPnRpbWVNaWQgPSB1dWlkLT50aW1lTWlkOworICAgIGhhbFV1aWQtPnRpbWVIaUFuZFZlcnNpb24gPSB1dWlkLT52ZXJzaW9uQW5kVGltZUhpZ2g7CisgICAgaGFsVXVpZC0+Y2xvY2tTZXEgPSB1dWlkLT52YXJpYW50QW5kQ2xvY2tTZXFIaWdoOworICAgIG1lbWNweSgmaGFsVXVpZC0+bm9kZVswXSwgJnV1aWQtPm5vZGVbMF0sIDYpOworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbCgKKyAgICAgICAgSVNvdW5kVHJpZ2dlckh3OjpQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9wcm9wZXJ0aWVzICpoYWxQcm9wZXJ0aWVzKQoreworICAgIHByb3BlcnRpZXMtPmltcGxlbWVudG9yID0gaGFsUHJvcGVydGllcy0+aW1wbGVtZW50b3I7CisgICAgcHJvcGVydGllcy0+ZGVzY3JpcHRpb24gPSBoYWxQcm9wZXJ0aWVzLT5kZXNjcmlwdGlvbjsKKyAgICBwcm9wZXJ0aWVzLT52ZXJzaW9uID0gaGFsUHJvcGVydGllcy0+dmVyc2lvbjsKKyAgICBjb252ZXJ0VXVpZEZyb21IYWwoJnByb3BlcnRpZXMtPnV1aWQsICZoYWxQcm9wZXJ0aWVzLT51dWlkKTsKKyAgICBwcm9wZXJ0aWVzLT5tYXhTb3VuZE1vZGVscyA9IGhhbFByb3BlcnRpZXMtPm1heF9zb3VuZF9tb2RlbHM7CisgICAgcHJvcGVydGllcy0+bWF4S2V5UGhyYXNlcyA9IGhhbFByb3BlcnRpZXMtPm1heF9rZXlfcGhyYXNlczsKKyAgICBwcm9wZXJ0aWVzLT5tYXhVc2VycyA9IGhhbFByb3BlcnRpZXMtPm1heF91c2VyczsKKyAgICBwcm9wZXJ0aWVzLT5yZWNvZ25pdGlvbk1vZGVzID0gaGFsUHJvcGVydGllcy0+cmVjb2duaXRpb25fbW9kZXM7CisgICAgcHJvcGVydGllcy0+Y2FwdHVyZVRyYW5zaXRpb24gPSBoYWxQcm9wZXJ0aWVzLT5jYXB0dXJlX3RyYW5zaXRpb247CisgICAgcHJvcGVydGllcy0+bWF4QnVmZmVyTXMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfYnVmZmVyX21zOworICAgIHByb3BlcnRpZXMtPmNvbmN1cnJlbnRDYXB0dXJlID0gaGFsUHJvcGVydGllcy0+Y29uY3VycmVudF9jYXB0dXJlOworICAgIHByb3BlcnRpZXMtPnRyaWdnZXJJbkV2ZW50ID0gaGFsUHJvcGVydGllcy0+dHJpZ2dlcl9pbl9ldmVudDsKKyAgICBwcm9wZXJ0aWVzLT5wb3dlckNvbnN1bXB0aW9uTXcgPSBoYWxQcm9wZXJ0aWVzLT5wb3dlcl9jb25zdW1wdGlvbl9tdzsKKworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRUcmlnZ2VyUGhyYXNlVG9IYWwoCisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZSAqaGFsVHJpZ2dlclBocmFzZSwKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2UgKnRyaWdnZXJQaHJhc2UpCit7CisgICAgaGFsVHJpZ2dlclBocmFzZS0+aWQgPSB0cmlnZ2VyUGhyYXNlLT5pZDsKKyAgICBoYWxUcmlnZ2VyUGhyYXNlLT5yZWNvZ25pdGlvbl9tb2RlID0gdHJpZ2dlclBocmFzZS0+cmVjb2duaXRpb25Nb2RlczsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgdHJpZ2dlclBocmFzZS0+dXNlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaGFsVHJpZ2dlclBocmFzZS0+dXNlcnNbaV0gPSB0cmlnZ2VyUGhyYXNlLT51c2Vyc1tpXTsKKyAgICB9CisgICAgaGFsVHJpZ2dlclBocmFzZS0+bnVtX3VzZXJzID0gaTsKKworICAgIHN0cmxjcHkoaGFsVHJpZ2dlclBocmFzZS0+bG9jYWxlLAorICAgICAgICAgICAgdHJpZ2dlclBocmFzZS0+bG9jYWxlLmNfc3RyKCksIFNPVU5EX1RSSUdHRVJfTUFYX0xPQ0FMRV9MRU4pOworICAgIHN0cmxjcHkoaGFsVHJpZ2dlclBocmFzZS0+dGV4dCwKKyAgICAgICAgICAgIHRyaWdnZXJQaHJhc2UtPnRleHQuY19zdHIoKSwgU09VTkRfVFJJR0dFUl9NQVhfU1RSSU5HX0xFTik7Cit9CisKK3N0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICpTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0U291bmRNb2RlbFRvSGFsKAorICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwgKnNvdW5kTW9kZWwpCit7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKmhhbE1vZGVsID0gTlVMTDsKKyAgICBpZiAoc291bmRNb2RlbC0+dHlwZSA9PSBTb3VuZE1vZGVsVHlwZTo6S0VZUEhSQVNFKSB7CisgICAgICAgIHNpemVfdCBhbGxvY1NpemUgPQorICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2Vfc291bmRfbW9kZWwpICsgc291bmRNb2RlbC0+ZGF0YS5zaXplKCk7CisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9zb3VuZF9tb2RlbCAqaGFsS2V5UGhyYXNlTW9kZWwgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9zb3VuZF9tb2RlbCAqPihtYWxsb2MoYWxsb2NTaXplKSk7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYoaGFsS2V5UGhyYXNlTW9kZWwgPT0gTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtYWxsb2MgZmFpbGVkIGZvciBzaXplICV6dSBpbiBjb252ZXJ0U291bmRNb2RlbFRvSGFsIFBIUkFTRSIsIGFsbG9jU2l6ZSk7CisKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsICprZXlQaHJhc2VNb2RlbCA9CisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBJU291bmRUcmlnZ2VySHc6OlBocmFzZVNvdW5kTW9kZWwgKj4oc291bmRNb2RlbCk7CisKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlQaHJhc2VNb2RlbC0+cGhyYXNlcy5zaXplKCkgJiYgaSA8IFNPVU5EX1RSSUdHRVJfTUFYX1BIUkFTRVM7IGkrKykgeworICAgICAgICAgICAgY29udmVydFRyaWdnZXJQaHJhc2VUb0hhbCgmaGFsS2V5UGhyYXNlTW9kZWwtPnBocmFzZXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlQaHJhc2VNb2RlbC0+cGhyYXNlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgaGFsS2V5UGhyYXNlTW9kZWwtPm51bV9waHJhc2VzID0gKHVuc2lnbmVkIGludClpOworICAgICAgICBoYWxNb2RlbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKj4oaGFsS2V5UGhyYXNlTW9kZWwpOworICAgICAgICBoYWxNb2RlbC0+ZGF0YV9vZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3NvdW5kX21vZGVsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaXplX3QgYWxsb2NTaXplID0KKyAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwpICsgc291bmRNb2RlbC0+ZGF0YS5zaXplKCk7CisgICAgICAgIGhhbE1vZGVsID0gc3RhdGljX2Nhc3Q8c3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKj4obWFsbG9jKGFsbG9jU2l6ZSkpOworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGhhbE1vZGVsID09IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hbGxvYyBmYWlsZWQgZm9yIHNpemUgJXp1IGluIGNvbnZlcnRTb3VuZE1vZGVsVG9IYWwgR0VORVJJQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NTaXplKTsKKworICAgICAgICBoYWxNb2RlbC0+ZGF0YV9vZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwpOworICAgIH0KKyAgICBoYWxNb2RlbC0+dHlwZSA9IChzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsX3R5cGVfdClzb3VuZE1vZGVsLT50eXBlOworICAgIGNvbnZlcnRVdWlkVG9IYWwoJmhhbE1vZGVsLT51dWlkLCAmc291bmRNb2RlbC0+dXVpZCk7CisgICAgY29udmVydFV1aWRUb0hhbCgmaGFsTW9kZWwtPnZlbmRvcl91dWlkLCAmc291bmRNb2RlbC0+dmVuZG9yVXVpZCk7CisgICAgaGFsTW9kZWwtPmRhdGFfc2l6ZSA9IHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpOworICAgIHVpbnQ4X3QgKmRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPihoYWxNb2RlbCkgKyBoYWxNb2RlbC0+ZGF0YV9vZmZzZXQ7CisgICAgY29uc3QgdWludDhfdCAqc3JjID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZzb3VuZE1vZGVsLT5kYXRhWzBdKTsKKyAgICBtZW1jcHkoZHN0LCBzcmMsIHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpKTsKKworICAgIHJldHVybiBoYWxNb2RlbDsKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYVRvSGFsKAorICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXh0cmEgKmhhbEV4dHJhLAorICAgICAgICBjb25zdCBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhICpleHRyYSkKK3sKKyAgICBoYWxFeHRyYS0+aWQgPSBleHRyYS0+aWQ7CisgICAgaGFsRXh0cmEtPnJlY29nbml0aW9uX21vZGVzID0gZXh0cmEtPnJlY29nbml0aW9uTW9kZXM7CisgICAgaGFsRXh0cmEtPmNvbmZpZGVuY2VfbGV2ZWwgPSBleHRyYS0+Y29uZmlkZW5jZUxldmVsOworCisgICAgdW5zaWduZWQgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGV4dHJhLT5sZXZlbHMuc2l6ZSgpICYmIGkgPCBTT1VORF9UUklHR0VSX01BWF9VU0VSUzsgaSsrKSB7CisgICAgICAgIGhhbEV4dHJhLT5sZXZlbHNbaV0udXNlcl9pZCA9IGV4dHJhLT5sZXZlbHNbaV0udXNlcklkOworICAgICAgICBoYWxFeHRyYS0+bGV2ZWxzW2ldLmxldmVsID0gZXh0cmEtPmxldmVsc1tpXS5sZXZlbFBlcmNlbnQ7CisgICAgfQorICAgIGhhbEV4dHJhLT5udW1fbGV2ZWxzID0gaTsKK30KKworc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICpTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UmVjb2duaXRpb25Db25maWdUb0hhbCgKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyAqY29uZmlnKQoreworICAgIHNpemVfdCBhbGxvY1NpemUgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnKSArIGNvbmZpZy0+ZGF0YS5zaXplKCk7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICpoYWxDb25maWcgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICo+KG1hbGxvYyhhbGxvY1NpemUpKTsKKworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoaGFsQ29uZmlnID09IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAibWFsbG9jIGZhaWxlZCBmb3Igc2l6ZSAlenUgaW4gY29udmVydFJlY29nbml0aW9uQ29uZmlnVG9IYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NTaXplKTsKKworICAgIGhhbENvbmZpZy0+Y2FwdHVyZV9oYW5kbGUgPSAoYXVkaW9faW9faGFuZGxlX3QpY29uZmlnLT5jYXB0dXJlSGFuZGxlOworICAgIGhhbENvbmZpZy0+Y2FwdHVyZV9kZXZpY2UgPSAoYXVkaW9fZGV2aWNlc190KWNvbmZpZy0+Y2FwdHVyZURldmljZTsKKyAgICBoYWxDb25maWctPmNhcHR1cmVfcmVxdWVzdGVkID0gY29uZmlnLT5jYXB0dXJlUmVxdWVzdGVkOworCisgICAgdW5zaWduZWQgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy0+cGhyYXNlcy5zaXplKCkgJiYgaSA8IFNPVU5EX1RSSUdHRVJfTUFYX1BIUkFTRVM7IGkrKykgeworICAgICAgICBjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYVRvSGFsKCZoYWxDb25maWctPnBocmFzZXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbmZpZy0+cGhyYXNlc1tpXSk7CisgICAgfQorICAgIGhhbENvbmZpZy0+bnVtX3BocmFzZXMgPSBpOworCisgICAgaGFsQ29uZmlnLT5kYXRhX29mZnNldCA9IHNpemVvZihzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9jb25maWcpOworICAgIGhhbENvbmZpZy0+ZGF0YV9zaXplID0gY29uZmlnLT5kYXRhLnNpemUoKTsKKyAgICB1aW50OF90ICpkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oaGFsQ29uZmlnKSArIGhhbENvbmZpZy0+ZGF0YV9vZmZzZXQ7CisgICAgY29uc3QgdWludDhfdCAqc3JjID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZjb25maWctPmRhdGFbMF0pOworICAgIG1lbWNweShkc3QsIHNyYywgY29uZmlnLT5kYXRhLnNpemUoKSk7CisgICAgcmV0dXJuIGhhbENvbmZpZzsKK30KKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRTb3VuZE1vZGVsRXZlbnRGcm9tSGFsKElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpNb2RlbEV2ZW50ICpldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX21vZGVsX2V2ZW50ICpoYWxFdmVudCkKK3sKKyAgICBldmVudC0+c3RhdHVzID0gKElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpTb3VuZE1vZGVsU3RhdHVzKWhhbEV2ZW50LT5zdGF0dXM7CisgICAgLy8gZXZlbnQtPm1vZGVsIHRvIGJlIHJlbWFwcGVkIGJ5IGNhbGxlZAorICAgIGV2ZW50LT5kYXRhLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICBjb25zdF9jYXN0PHVpbnQ4X3QgKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGhhbEV2ZW50KSkgKyBoYWxFdmVudC0+ZGF0YV9vZmZzZXQsCisgICAgICAgICAgICBoYWxFdmVudC0+ZGF0YV9zaXplKTsKK30KKworLy8gc3RhdGljCitJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UmVjb2duaXRpb25FdmVudCAqU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFJlY29nbml0aW9uRXZlbnRGcm9tSGFsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9ldmVudCAqaGFsRXZlbnQpCit7CisgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKiBldmVudDsKKworICAgIGlmIChoYWxFdmVudC0+dHlwZSA9PSBTT1VORF9NT0RFTF9UWVBFX0tFWVBIUkFTRSkgeworICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXZlbnQgKmhhbFBocmFzZUV2ZW50ID0KKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9ldmVudCAqPihoYWxFdmVudCk7CisgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpQaHJhc2VSZWNvZ25pdGlvbkV2ZW50ICpwaHJhc2VFdmVudCA9CisgICAgICAgICAgICAgICAgbmV3IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpQaHJhc2VSZWNvZ25pdGlvbkV2ZW50KCk7CisKKyAgICAgICAgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqcGhyYXNlRXh0cmFzID0KKyAgICAgICAgICAgICAgICBuZXcgUGhyYXNlUmVjb2duaXRpb25FeHRyYVtoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXNdOworICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGhhbFBocmFzZUV2ZW50LT5udW1fcGhyYXNlczsgaSsrKSB7CisgICAgICAgICAgICBjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYUZyb21IYWwoJnBocmFzZUV4dHJhc1tpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGFsUGhyYXNlRXZlbnQtPnBocmFzZV9leHRyYXNbaV0pOworICAgICAgICB9CisgICAgICAgIHBocmFzZUV2ZW50LT5waHJhc2VFeHRyYXMuc2V0VG9FeHRlcm5hbChwaHJhc2VFeHRyYXMsIGhhbFBocmFzZUV2ZW50LT5udW1fcGhyYXNlcyk7CisgICAgICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgICAgICBwaHJhc2VFdmVudC0+cGhyYXNlRXh0cmFzLnJlc2l6ZShoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXMpOworICAgICAgICBkZWxldGVbXSBwaHJhc2VFeHRyYXM7CisgICAgICAgIGV2ZW50ID0gcmVpbnRlcnByZXRfY2FzdDxJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UmVjb2duaXRpb25FdmVudCAqPihwaHJhc2VFdmVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXZlbnQgPSBuZXcgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQoKTsKKyAgICB9CisKKyAgICBldmVudC0+c3RhdHVzID0gc3RhdGljX2Nhc3Q8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uU3RhdHVzPihoYWxFdmVudC0+c3RhdHVzKTsKKyAgICBldmVudC0+dHlwZSA9IHN0YXRpY19jYXN0PFNvdW5kTW9kZWxUeXBlPihoYWxFdmVudC0+dHlwZSk7CisgICAgLy8gZXZlbnQtPm1vZGVsIHRvIGJlIHJlbWFwcGVkIGJ5IGNhbGxlZAorICAgIGV2ZW50LT5jYXB0dXJlQXZhaWxhYmxlID0gaGFsRXZlbnQtPmNhcHR1cmVfYXZhaWxhYmxlOworICAgIGV2ZW50LT5jYXB0dXJlU2Vzc2lvbiA9IGhhbEV2ZW50LT5jYXB0dXJlX3Nlc3Npb247CisgICAgZXZlbnQtPmNhcHR1cmVEZWxheU1zID0gaGFsRXZlbnQtPmNhcHR1cmVfZGVsYXlfbXM7CisgICAgZXZlbnQtPmNhcHR1cmVQcmVhbWJsZU1zID0gaGFsRXZlbnQtPmNhcHR1cmVfcHJlYW1ibGVfbXM7CisgICAgZXZlbnQtPnRyaWdnZXJJbkRhdGEgPSBoYWxFdmVudC0+dHJpZ2dlcl9pbl9kYXRhOworICAgIGV2ZW50LT5hdWRpb0NvbmZpZy5zYW1wbGVSYXRlSHogPSBoYWxFdmVudC0+YXVkaW9fY29uZmlnLnNhbXBsZV9yYXRlOworICAgIGV2ZW50LT5hdWRpb0NvbmZpZy5jaGFubmVsTWFzayA9CisgICAgICAgICAgICAoYXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzayloYWxFdmVudC0+YXVkaW9fY29uZmlnLmNoYW5uZWxfbWFzazsKKyAgICBldmVudC0+YXVkaW9Db25maWcuZm9ybWF0ID0gKGF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0KWhhbEV2ZW50LT5hdWRpb19jb25maWcuZm9ybWF0OworICAgIGV2ZW50LT5kYXRhLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICBjb25zdF9jYXN0PHVpbnQ4X3QgKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGhhbEV2ZW50KSkgKyBoYWxFdmVudC0+ZGF0YV9vZmZzZXQsCisgICAgICAgICAgICBoYWxFdmVudC0+ZGF0YV9zaXplKTsKKworICAgIHJldHVybiBldmVudDsKK30KKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRQaHJhc2VSZWNvZ25pdGlvbkV4dHJhRnJvbUhhbCgKKyAgICAgICAgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqZXh0cmEsCisgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9leHRyYSAqaGFsRXh0cmEpCit7CisgICAgZXh0cmEtPmlkID0gaGFsRXh0cmEtPmlkOworICAgIGV4dHJhLT5yZWNvZ25pdGlvbk1vZGVzID0gaGFsRXh0cmEtPnJlY29nbml0aW9uX21vZGVzOworICAgIGV4dHJhLT5jb25maWRlbmNlTGV2ZWwgPSBoYWxFeHRyYS0+Y29uZmlkZW5jZV9sZXZlbDsKKworICAgIENvbmZpZGVuY2VMZXZlbCAqbGV2ZWxzID0KKyAgICAgICAgICAgIG5ldyBDb25maWRlbmNlTGV2ZWxbaGFsRXh0cmEtPm51bV9sZXZlbHNdOworICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgaGFsRXh0cmEtPm51bV9sZXZlbHM7IGkrKykgeworICAgICAgICBsZXZlbHNbaV0udXNlcklkID0gaGFsRXh0cmEtPmxldmVsc1tpXS51c2VyX2lkOworICAgICAgICBsZXZlbHNbaV0ubGV2ZWxQZXJjZW50ID0gaGFsRXh0cmEtPmxldmVsc1tpXS5sZXZlbDsKKyAgICB9CisgICAgZXh0cmEtPmxldmVscy5zZXRUb0V4dGVybmFsKGxldmVscywgaGFsRXh0cmEtPm51bV9sZXZlbHMpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIGV4dHJhLT5sZXZlbHMucmVzaXplKGhhbEV4dHJhLT5udW1fbGV2ZWxzKTsKKyAgICBkZWxldGVbXSBsZXZlbHM7Cit9CisKK0lTb3VuZFRyaWdnZXJIdyAqSElETF9GRVRDSF9JU291bmRUcmlnZ2VySHcoY29uc3QgY2hhciogLyogbmFtZSAqLykKK3sKKyAgICByZXR1cm4gbmV3IFNvdW5kVHJpZ2dlckhhbEltcGwoKTsKK30KK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHNvdW5kdHJpZ2dlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuaCBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc2OTU5MAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmgKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfU09VTkRUUklHR0VSX1YyXzBfSU1QTEVNRU5UQVRJT05fSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1NPVU5EVFJJR0dFUl9WMl8wX0lNUExFTUVOVEFUSU9OX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPHN0ZGF0b21pYy5oPgorI2luY2x1ZGUgPHV0aWxzL3RocmVhZHMuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHN5c3RlbS9zb3VuZF90cmlnZ2VyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvc291bmRfdHJpZ2dlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNvdW5kdHJpZ2dlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpVdWlkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjazsKKworCitjbGFzcyBTb3VuZFRyaWdnZXJIYWxJbXBsIDogcHVibGljIElTb3VuZFRyaWdnZXJIdyB7CitwdWJsaWM6CisgICAgICAgIFNvdW5kVHJpZ2dlckhhbEltcGwoKTsKKworICAgICAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHcgZm9sbG93LgorICAgICAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydGllcyhnZXRQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjx2b2lkPiBsb2FkU291bmRNb2RlbChjb25zdCBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwmIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjx2b2lkPiBsb2FkUGhyYXNlU291bmRNb2RlbChjb25zdCBJU291bmRUcmlnZ2VySHc6OlBocmFzZVNvdW5kTW9kZWwmIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRQaHJhc2VTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPGludDMyX3Q+IHVubG9hZFNvdW5kTW9kZWwoU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48aW50MzJfdD4gc3RhcnRSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlJlY29nbml0aW9uQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUpICBvdmVycmlkZTsKKyAgICAgICAgUmV0dXJuPGludDMyX3Q+IHN0b3BSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjxpbnQzMl90PiBzdG9wQWxsUmVjb2duaXRpb25zKCkgIG92ZXJyaWRlOworCisgICAgICAgIC8vIFJlZkJhc2UKKyAgICAgICAgdmlydHVhbCAgICAgdm9pZCAgICAgICAgb25GaXJzdFJlZigpOworCisgICAgICAgIHN0YXRpYyB2b2lkIHNvdW5kTW9kZWxDYWxsYmFjayhzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjb29raWUpOworICAgICAgICBzdGF0aWMgdm9pZCByZWNvZ25pdGlvbkNhbGxiYWNrKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2V2ZW50ICpoYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjb29raWUpOworCitwcml2YXRlOgorCisgICAgICAgIGNsYXNzIFNvdW5kTW9kZWxDbGllbnQgOiBwdWJsaWMgUmVmQmFzZSB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIFNvdW5kTW9kZWxDbGllbnQodWludDMyX3QgaWQsIHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSkKKyAgICAgICAgICAgICAgICA6IG1JZChpZCksIG1DYWxsYmFjayhjYWxsYmFjayksIG1Db29raWUoY29va2llKSB7fQorICAgICAgICAgICAgdmlydHVhbCB+U291bmRNb2RlbENsaWVudCgpIHt9CisKKyAgICAgICAgICAgIHVpbnQzMl90IG1JZDsKKyAgICAgICAgICAgIHNvdW5kX21vZGVsX2hhbmRsZV90IG1IYWxIYW5kbGU7CisgICAgICAgICAgICBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIG1Db29raWU7CisgICAgICAgIH07CisKKyAgICAgICAgdWludDMyX3QgbmV4dFVuaXF1ZUlkKCk7CisgICAgICAgIHZvaWQgY29udmVydFV1aWRGcm9tSGFsKFV1aWQgKnV1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdW5kX3RyaWdnZXJfdXVpZF90ICpoYWxVdWlkKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0VXVpZFRvSGFsKHNvdW5kX3RyaWdnZXJfdXVpZF90ICpoYWxVdWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVXVpZCAqdXVpZCk7CisgICAgICAgIHZvaWQgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcHJvcGVydGllcyAqaGFsUHJvcGVydGllcyk7CisgICAgICAgIHZvaWQgY29udmVydFRyaWdnZXJQaHJhc2VUb0hhbChzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2UgKmhhbFRyaWdnZXJQaHJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlBocmFzZSAqdHJpZ2dlclBocmFzZSk7CisgICAgICAgIC8vIHJldHVybmVkIEhBTCBzb3VuZCBtb2RlbCBtdXN0IGJlIGZyZWVkIGJ5IGNhbGxlcgorICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9zb3VuZF9tb2RlbCAqY29udmVydFNvdW5kTW9kZWxUb0hhbCgKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsICpzb3VuZE1vZGVsKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYVRvSGFsKAorICAgICAgICAgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9leHRyYSAqaGFsRXh0cmEsCisgICAgICAgICAgICAgICAgY29uc3QgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqZXh0cmEpOworICAgICAgICAvLyByZXR1cm5lZCByZWNvZ25pdGlvbiBjb25maWcgbXVzdCBiZSBmcmVlZCBieSBjYWxsZXIKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICpjb252ZXJ0UmVjb2duaXRpb25Db25maWdUb0hhbCgKKyAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlJlY29nbml0aW9uQ29uZmlnICpjb25maWcpOworCisKKyAgICAgICAgc3RhdGljIHZvaWQgY29udmVydFNvdW5kTW9kZWxFdmVudEZyb21IYWwoSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQgKmV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQpOworICAgICAgICBzdGF0aWMgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKmNvbnZlcnRSZWNvZ25pdGlvbkV2ZW50RnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fZXZlbnQgKmhhbEV2ZW50KTsKKyAgICAgICAgc3RhdGljIHZvaWQgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFGcm9tSGFsKFBocmFzZVJlY29nbml0aW9uRXh0cmEgKmV4dHJhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3JlY29nbml0aW9uX2V4dHJhICpoYWxFeHRyYSk7CisKKyAgICAgICAgaW50IGRvTG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbW9kZWxJZCk7CisKKyAgICAgICAgdmlydHVhbCAgICAgICAgICAgICB+U291bmRUcmlnZ2VySGFsSW1wbCgpOworCisgICAgICAgIGNvbnN0IGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTW9kdWxlTmFtZTsKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlKiAgICAgICAgICAgICAgICAgICAgIG1Id0RldmljZTsKKyAgICAgICAgdm9sYXRpbGUgYXRvbWljX3VpbnRfZmFzdDMyX3QgICAgICAgICAgICAgICAgICAgICAgIG1OZXh0TW9kZWxJZDsKKyAgICAgICAgRGVmYXVsdEtleWVkVmVjdG9yPGludDMyX3QsIHNwPFNvdW5kTW9kZWxDbGllbnQ+ID4gIG1DbGllbnRzOworICAgICAgICBNdXRleCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUxvY2s7Cit9OworCitleHRlcm4gIkMiIElTb3VuZFRyaWdnZXJIdyAqSElETF9GRVRDSF9JU291bmRUcmlnZ2VySHcoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBzb3VuZHRyaWdnZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1NPVU5EVFJJR0dFUl9WMl8wX0lNUExFTUVOVEFUSU9OX0gKKwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oYWwgYi9zb3VuZHRyaWdnZXIvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWJiZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA7CisKKy8qKgorICogU291bmQgbW9kZWwgdHlwZXMgbW9kZXMgdXNlZCBpbiBJU291bmRUcmlnZ2VySHcuU291bmRNb2RlbAorICovCitlbnVtIFNvdW5kTW9kZWxUeXBlIDogaW50MzJfdCB7CisgICAgLyoqIHVzZSBmb3IgdW5zcGVjaWZpZWQgc291bmQgbW9kZWwgdHlwZSAqLworICAgIFVOS05PV04gICA9IC0xLAorICAgIC8qKiB1c2UgZm9yIGtleSBwaHJhc2Ugc291bmQgbW9kZWxzICovCisgICAgS0VZUEhSQVNFID0gMCwKKyAgICAvKiogdXNlIGZvciBhbGwgbW9kZWxzIG90aGVyIHRoYW4ga2V5cGhyYXNlICovCisgICAgR0VORVJJQyAgID0gMSwKK307CisKK3R5cGVkZWYgaW50MzJfdCBTb3VuZE1vZGVsSGFuZGxlOworCisKKy8qKgorICogUmVjb2duaXRpb24gbW9kZXMgdXNlZCBpbiBJU291bmRUcmlnZ2VySHcuUmVjb2duaXRpb25Db25maWcsCisgKiBJU291bmRUcmlnZ2VySHcuUHJvcGVydGllcyBvciBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhCisgKi8KK2VudW0gUmVjb2duaXRpb25Nb2RlIDogdWludDMyX3QgeworICAgIC8qKiBzaW1wbGUgdm9pY2UgdHJpZ2dlciAqLworICAgIFZPSUNFX1RSSUdHRVIgICAgICAgPSAoMSA8PCAwKSwKKyAgICAvKiogdHJpZ2dlciBvbmx5IGlmIG9uZSB1c2VyIGluIG1vZGVsIGlkZW50aWZpZWQgKi8KKyAgICBVU0VSX0lERU5USUZJQ0FUSU9OID0gKDEgPDwgMSksCisgICAgLyoqIHRyaWdnZXIgb25seSBpZiBvbmUgdXNlciBpbiBtb2RlIGF1dGhlbnRpY2F0ZWQgKi8KKyAgICBVU0VSX0FVVEhFTlRJQ0FUSU9OID0gKDEgPDwgMiksCisgICAgLyoqIGdlbmVyaWMgc291bmQgdHJpZ2dlciAqLworICAgIEdFTkVSSUNfVFJJR0dFUiAgICAgPSAoMSA8PCAzKSwKK307CisKKy8qKgorICogQ29uZmlkZW5jZSBsZXZlbCBmb3IgZWFjaCB1c2VyIGluIHN0cnVjdHVyZSBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhCisgKi8KK3N0cnVjdCBDb25maWRlbmNlTGV2ZWwgeworICAgIC8qKiB1c2VyIElEICovCisgICAgdWludDMyX3QgdXNlcklkOworICAgIC8qKiBjb25maWRlbmNlIGxldmVsIGluIHBlcmNlbnQgKDAgLSAxMDApOiAqLworICAgIC8qKiAtIG1pbiBsZXZlbCBmb3IgcmVjb2duaXRpb24gY29uZmlndXJhdGlvbiAqLworICAgIC8qKiAtIGRldGVjdGVkIGxldmVsIGZvciByZWNvZ25pdGlvbiBldmVudCAqLworICAgIHVpbnQzMl90IGxldmVsUGVyY2VudDsKK307CisKKy8qKgorICogU3BlY2lhbGl6ZWQgcmVjb2duaXRpb24gZXZlbnQgZm9yIGtleSBwaHJhc2UgZGV0ZWN0aW9uCisgKi8KK3N0cnVjdCBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhIHsKKyAgICAvKioga2V5cGhyYXNlIElEICovCisgICAgdWludDMyX3QgaWQ7CisgICAgLyoqIHJlY29nbml0aW9uIG1vZGVzIHVzZWQgZm9yIHRoaXMga2V5cGhyYXNlICovCisgICAgdWludDMyX3QgcmVjb2duaXRpb25Nb2RlczsKKyAgICAvKiogY29uZmlkZW5jZSBsZXZlbCBmb3IgbW9kZSBSZWNvZ25pdGlvbk1vZGUuVk9JQ0VfVFJJR0dFUiAqLworICAgIHVpbnQzMl90IGNvbmZpZGVuY2VMZXZlbDsKKyAgICAvKioKKyAgICAgKiBsaXN0IG9mIGNvbmZpZGVuY2UgbGV2ZWxzIHBlciB1c2VyIGZvcgorICAgICAqIFJlY29nbml0aW9uTW9kZS5VU0VSX0lERU5USUZJQ0FUSU9OIGFuZAorICAgICAqIFJlY29nbml0aW9uTW9kZS5VU0VSX0FVVEhFTlRJQ0FUSU9OICovCisgICAgdmVjPENvbmZpZGVuY2VMZXZlbD4gbGV2ZWxzOworfTsKKwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC92dHMvQW5kcm9pZC5tayBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjBjYzRlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxTb3VuZHRyaWdnZXJWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsU291bmR0cmlnZ2VyVjJfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcCBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU291bmR0cmlnZ2VyVjJfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3OTU2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDMyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiU291bmRUcmlnZ2VySGlkbEhhbFRlc3QiCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxjdXRpbHMvbmF0aXZlX2hhbmRsZS5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjZGVmaW5lIFNIT1JUX1RJTUVPVVRfUEVSSU9EICgxKQorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6U291bmRNb2RlbEhhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6U291bmRNb2RlbFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlJlY29nbml0aW9uTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6UGhyYXNlUmVjb2duaXRpb25FeHRyYTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKioKKyAqIFRlc3QgY29kZSB1c2VzIHRoaXMgY2xhc3MgdG8gd2FpdCBmb3Igbm90aWZpY2F0aW9uIGZyb20gY2FsbGJhY2suCisgKi8KK2NsYXNzIE1vbml0b3IgeworIHB1YmxpYzoKKyAgTW9uaXRvcigpIDogbUNvdW50KDApIHt9CisKKyAgLyoqCisgICAqIEFkZHMgMSB0byB0aGUgaW50ZXJuYWwgY291bnRlciBhbmQgdW5ibG9ja3Mgb25lIG9mIHRoZSB3YWl0aW5nIHRocmVhZHMuCisgICAqLworICB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobU10eCk7CisgICAgbUNvdW50Kys7CisgICAgbUN2Lm5vdGlmeV9vbmUoKTsKKyAgfQorCisgIC8qKgorICAgKiBCbG9ja3MgdW50aWwgdGhlIGludGVybmFsIGNvdW50ZXIgYmVjb21lcyBncmVhdGVyIHRoYW4gMC4KKyAgICoKKyAgICogSWYgbm90aWZpZWQsIHRoaXMgbWV0aG9kIGRlY3JlYXNlcyB0aGUgY291bnRlciBieSAxIGFuZCByZXR1cm5zIHRydWUuCisgICAqIElmIHRpbWVvdXQsIHJldHVybnMgZmFsc2UuCisgICAqLworICBib29sIHdhaXQoaW50IHRpbWVvdXRTZWNvbmRzKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1NdHgpOworICAgIGF1dG8gZGVhZGxpbmUgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKHRpbWVvdXRTZWNvbmRzKTsKKyAgICB3aGlsZSAobUNvdW50ID09IDApIHsKKyAgICAgIGlmIChtQ3Yud2FpdF91bnRpbChsb2NrLCBkZWFkbGluZSkgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0KKyAgICBtQ291bnQtLTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgcHJpdmF0ZToKKyAgc3RkOjptdXRleCBtTXR4OworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtQ3Y7CisgIGludCBtQ291bnQ7Cit9OworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBTb3VuZCBUcmlnZ2VyIEhJREwgSEFMLgorY2xhc3MgU291bmRUcmlnZ2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgbVNvdW5kVHJpZ2dlckhhbCA9CisgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVNvdW5kVHJpZ2dlckh3PigpOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1Tb3VuZFRyaWdnZXJIYWwuZ2V0KCkpOworICAgICAgbUNhbGxiYWNrID0gbmV3IFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2soKnRoaXMpOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1DYWxsYmFjay5nZXQoKSk7CisgIH0KKworICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICAgIHNyYW5kKHRpbWUobnVsbHB0cikpOworICB9CisKKyAgY2xhc3MgU291bmRUcmlnZ2VySHdDYWxsYmFjayA6IHB1YmxpYyBJU291bmRUcmlnZ2VySHdDYWxsYmFjayB7CisgICBwcml2YXRlOgorICAgIFNvdW5kVHJpZ2dlckhpZGxUZXN0JiBtUGFyZW50OworCisgICBwdWJsaWM6CisgICAgU291bmRUcmlnZ2VySHdDYWxsYmFjayhTb3VuZFRyaWdnZXJIaWRsVGVzdCYgcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcmVjb2duaXRpb25DYWxsYmFjaygKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQmIGV2ZW50IF9fdW51c2VkLAorICAgICAgICBpbnQzMl90IGNvb2tpZSBfX3VudXNlZCkgeworICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcGhyYXNlUmVjb2duaXRpb25DYWxsYmFjaygKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlBocmFzZVJlY29nbml0aW9uRXZlbnQmIGV2ZW50IF9fdW51c2VkLAorICAgICAgICBpbnQzMl90IGNvb2tpZSBfX3VudXNlZCkgeworICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gc291bmRNb2RlbENhbGxiYWNrKAorICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6TW9kZWxFdmVudCYgZXZlbnQsCisgICAgICAgIGludDMyX3QgY29va2llIF9fdW51c2VkKSB7CisgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgbVBhcmVudC5sYXN0TW9kZWxFdmVudCA9IGV2ZW50OworICAgICAgbVBhcmVudC5tb25pdG9yLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgIH07CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBNb25pdG9yIG1vbml0b3I7CisgIC8vIHVwZGF0ZWQgYnkgc291bmRNb2RlbENhbGxiYWNrKCkKKyAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQgbGFzdE1vZGVsRXZlbnQ7CisKKyBwcm90ZWN0ZWQ6CisgIHNwPElTb3VuZFRyaWdnZXJIdz4gbVNvdW5kVHJpZ2dlckhhbDsKKyAgc3A8U291bmRUcmlnZ2VySHdDYWxsYmFjaz4gbUNhbGxiYWNrOworfTsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cCAoa2VwdCBzaW5jZSB0aGlzIGZpbGUgaXMgYSB0ZW1wbGF0ZSkuCitjbGFzcyBTb3VuZFRyaWdnZXJIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgcHJpdmF0ZToKK307CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OmdldFByb3BlcnRpZXMoKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIG1ldGhvZCByZXR1cm5zIDAgKG5vIGVycm9yKQorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGF0IGxlYXN0IG9uZSBzb3VuZCBtb2RlbCBhbmQgb25lIGtleSBwaHJhc2UKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBWT0lDRV9UUklHR0VSIHJlY29nbml0aW9uIG1vZGUKKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBHZXRQcm9wZXJ0aWVzKSB7CisgIElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyBoYWxQcm9wZXJ0aWVzOworICBSZXR1cm48dm9pZD4gaGlkbFJldHVybjsKKyAgaW50IHJldCA9IC1FTk9ERVY7CisKKyAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPmdldFByb3BlcnRpZXMoWyZdKGludCByYywgYXV0byByZXMpIHsKKyAgICAgIHJldCA9IHJjOworICAgICAgaGFsUHJvcGVydGllcyA9IHJlczsKKyAgfSk7CisKKyAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfRVEoMCwgcmV0KTsKKyAgRVhQRUNUX0dUKGhhbFByb3BlcnRpZXMubWF4U291bmRNb2RlbHMsIDB1KTsKKyAgRVhQRUNUX0dUKGhhbFByb3BlcnRpZXMubWF4S2V5UGhyYXNlcywgMHUpOworICBFWFBFQ1RfTkUoMHUsIChoYWxQcm9wZXJ0aWVzLnJlY29nbml0aW9uTW9kZXMgJiAodWludDMyX3QpUmVjb2duaXRpb25Nb2RlOjpWT0lDRV9UUklHR0VSKSk7Cit9CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OmxvYWRQaHJhc2VTb3VuZE1vZGVsKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gcGFzc2VkIGEgbWFsZm9ybWVkIHNvdW5kIG1vZGVsCisgKgorICogVGhlcmUgaXMgbm8gd2F5IHRvIHZlcmlmeSB0aGF0IGltcGxlbWVudGF0aW9uIGFjdHVhbGx5IGNhbiBsb2FkIGEgc291bmQgbW9kZWwgYmVjYXVzZSBlYWNoCisgKiBzb3VuZCBtb2RlbCBpcyB2ZW5kb3Igc3BlY2lmaWMuCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgTG9hZEludmFsaWRNb2RlbEZhaWwpIHsKKyAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm47CisgIGludCByZXQgPSAtRU5PREVWOworICBJU291bmRUcmlnZ2VySHc6OlBocmFzZVNvdW5kTW9kZWwgbW9kZWw7CisgIFNvdW5kTW9kZWxIYW5kbGUgaGFuZGxlOworCisgIG1vZGVsLmNvbW1vbi50eXBlID0gU291bmRNb2RlbFR5cGU6OlVOS05PV047CisKKyAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPmxvYWRQaHJhc2VTb3VuZE1vZGVsKAorICAgICAgICAgIG1vZGVsLAorICAgICAgICAgIG1DYWxsYmFjaywgMCwgWyZdKGludDMyX3QgcmV0dmFsLCBhdXRvIHJlcykgeworICAgICAgcmV0ID0gcmV0dmFsOworICAgICAgaGFuZGxlID0gcmVzOworICB9KTsKKworICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgIEVYUEVDVF9ORSgwLCByZXQpOworICBFWFBFQ1RfRkFMU0UobW9uaXRvci53YWl0KFNIT1JUX1RJTUVPVVRfUEVSSU9EKSk7Cit9CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OmxvYWRTb3VuZE1vZGVsKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGVycm9yIHdoZW4gcGFzc2VkIGEgc291bmQgbW9kZWwgd2l0aCByYW5kb20gZGF0YS4KKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBMb2FkR2VuZXJpY1NvdW5kTW9kZWxGYWlsKSB7CisgIGludCByZXQgPSAtRU5PREVWOworICBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwgbW9kZWw7CisgIFNvdW5kTW9kZWxIYW5kbGUgaGFuZGxlID0gMDsKKworICBtb2RlbC50eXBlID0gU291bmRNb2RlbFR5cGU6OkdFTkVSSUM7CisgIG1vZGVsLmRhdGEucmVzaXplKDEwMCk7CisgIGZvciAoYXV0byYgZCA6IG1vZGVsLmRhdGEpIHsKKyAgICBkID0gcmFuZCgpOworICB9CisKKyAgUmV0dXJuPHZvaWQ+IGxvYWRSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5sb2FkU291bmRNb2RlbCgKKyAgICAgIG1vZGVsLAorICAgICAgbUNhbGxiYWNrLCAwLCBbJl0oaW50MzJfdCByZXR2YWwsIGF1dG8gcmVzKSB7CisgICAgcmV0ID0gcmV0dmFsOworICAgIGhhbmRsZSA9IHJlczsKKyAgfSk7CisKKyAgRVhQRUNUX1RSVUUobG9hZFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfTkUoMCwgcmV0KTsKKyAgRVhQRUNUX0ZBTFNFKG1vbml0b3Iud2FpdChTSE9SVF9USU1FT1VUX1BFUklPRCkpOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3Ojp1bmxvYWRTb3VuZE1vZGVsKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gY2FsbGVkIHdpdGhvdXQgYSB2YWxpZCBsb2FkZWQgc291bmQgbW9kZWwKKyAqCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgVW5sb2FkTW9kZWxOb01vZGVsRmFpbCkgeworICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKyAgU291bmRNb2RlbEhhbmRsZSBoYWxIYW5kbGUgPSAwOworCisgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT51bmxvYWRTb3VuZE1vZGVsKGhhbEhhbmRsZSk7CisKKyAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfTkUoMCwgaGlkbFJldHVybik7Cit9CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OnN0YXJ0UmVjb2duaXRpb24oKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHJldHVybnMgYW4gZXJyb3Igd2hlbiBjYWxsZWQgd2l0aG91dCBhIHZhbGlkIGxvYWRlZCBzb3VuZCBtb2RlbAorICoKKyAqIFRoZXJlIGlzIG5vIHdheSB0byB2ZXJpZnkgdGhhdCBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSBzdGFydHMgcmVjb2duaXRpb24gYmVjYXVzZSBubyBtb2RlbCBjYW4KKyAqIGJlIGxvYWRlZC4KKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBTdGFydFJlY29nbml0aW9uTm9Nb2RlbEZhaWwpIHsKKyAgICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKyAgICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZSA9IDA7CisgICAgUGhyYXNlUmVjb2duaXRpb25FeHRyYSBwaHJhc2U7CisgICAgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyBjb25maWc7CisKKyAgICBjb25maWcuY2FwdHVyZUhhbmRsZSA9IDA7CisgICAgY29uZmlnLmNhcHR1cmVEZXZpY2UgPSBBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUM7CisgICAgcGhyYXNlLmlkID0gMDsKKyAgICBwaHJhc2UucmVjb2duaXRpb25Nb2RlcyA9ICh1aW50MzJfdClSZWNvZ25pdGlvbk1vZGU6OlZPSUNFX1RSSUdHRVI7CisgICAgcGhyYXNlLmNvbmZpZGVuY2VMZXZlbCA9IDA7CisKKyAgICBjb25maWcucGhyYXNlcy5zZXRUb0V4dGVybmFsKCZwaHJhc2UsIDEpOworCisgICAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPnN0YXJ0UmVjb2duaXRpb24oaGFuZGxlLCBjb25maWcsIG1DYWxsYmFjaywgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX05FKDAsIGhpZGxSZXR1cm4pOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpzdG9wUmVjb2duaXRpb24oKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHJldHVybnMgYW4gZXJyb3Igd2hlbiBjYWxsZWQgd2l0aG91dCBhbiBhY3RpdmUgcmVjb2duaXRpb24gcnVubmluZworICoKKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBTdG9wUmVjb2duaXRpb25Ob0FTdGFydEZhaWwpIHsKKyAgICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKyAgICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZSA9IDA7CisKKyAgICBoaWRsUmV0dXJuID0gbVNvdW5kVHJpZ2dlckhhbC0+c3RvcFJlY29nbml0aW9uKGhhbmRsZSk7CisKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX05FKDAsIGhpZGxSZXR1cm4pOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpzdG9wQWxsUmVjb2duaXRpb25zKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoaXMgb3B0aW9uYWwgbWV0aG9kIG9yIGluZGljYXRlcyBpdCBpcyBub3Qgc3VwcG9ydCBieQorICogIHJldHVybmluZyAtRU5PU1lTCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgc3RvcEFsbFJlY29nbml0aW9ucykgeworICAgIFJldHVybjxpbnQzMl90PiBoaWRsUmV0dXJuKDApOworCisgICAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPnN0b3BBbGxSZWNvZ25pdGlvbnMoKTsKKworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuID09IDAgfHwgaGlkbFJldHVybiA9PSAtRU5PU1lTKTsKK30KKworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFNvdW5kVHJpZ2dlckhpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvQW5kcm9pZC5icCBiL3NvdW5kdHJpZ2dlci9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMmM5ODYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjIuMCIsCisgICAgIjIuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS90ZXN0cy9BbmRyb2lkLmJwIGIvdGVzdHMvQW5kcm9pZC5icAppbmRleCA3YjJiMmQzLi5kZGYzMDBiIDEwMDY0NAotLS0gYS90ZXN0cy9BbmRyb2lkLmJwCisrKyBiL3Rlc3RzL0FuZHJvaWQuYnAKQEAgLTUsNiArNSw3IEBACiAgICAgImJhei8xLjAiLAogICAgICJiYXovMS4wL2RlZmF1bHQiLAogICAgICJleHByZXNzaW9uLzEuMCIsCisgICAgImV4dGVuc2lvbi9saWdodC8yLjAiLAogICAgICJmb28vMS4wIiwKICAgICAiZm9vLzEuMC9kZWZhdWx0IiwKICAgICAiZm9vLzEuMC9kZWZhdWx0L2xpYiIsCmRpZmYgLS1naXQgYS90ZXN0cy9iYXIvQW5kcm9pZC5tayBiL3Rlc3RzL2Jhci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9iYXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvYmF6L0FuZHJvaWQubWsgYi90ZXN0cy9iYXovQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvYmF6L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4cHJlc3Npb24vQW5kcm9pZC5tayBiL3Rlc3RzL2V4cHJlc3Npb24vQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXhwcmVzc2lvbi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQuYnAgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ2OWI0NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDY1IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJRXh0TGlnaHQuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0V4dExpZ2h0QWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0lFeHRMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JSHdFeHRMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9Cbkh3RXh0TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQnBId0V4dExpZ2h0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0JzRXh0TGlnaHQuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5tayBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWUxMGU0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTk2IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodC1WMi4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChEZWZhdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9EZWZhdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjp0eXBlcy5EZWZhdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFeHRCcmlnaHRuZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9FeHRCcmlnaHRuZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjp0eXBlcy5FeHRCcmlnaHRuZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFeHRMaWdodFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9FeHRMaWdodFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjp0eXBlcy5FeHRMaWdodFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUV4dExpZ2h0LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9JRXh0TGlnaHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lFeHRMaWdodC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6SUV4dExpZ2h0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRXh0TGlnaHQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodC1WMi4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodC1WMi4wLWphdmEtc3RhdGljIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGVmYXVsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRGVmYXVsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRGVmYXVsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0QnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0QnJpZ2h0bmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0QnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0TGlnaHRTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0TGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0TGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElFeHRMaWdodC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvSUV4dExpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JRXh0TGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OklFeHRMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUV4dExpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaGFsIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1MTViODYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0lFeHRMaWdodC5oYWwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vIFdvdWxkIG5vcm1hbGx5IGJlICd2ZW5kb3IuZXhhbXBsZS5leHRlbnNpb24ubGlnaHRAMi4wJyBob3dldmVyLCB0aGlzIGlzCisvLyBhIGdvb2dsZSBleHRlbnNpb24gZXhhbXBsZS4gQSB2ZW5kb3IgZXh0ZW5zaW9uIHNob3VsZCBhbHNvIGxpdmUgaW4gdGhlCisvLyB2ZW5kb3IgcGFydGl0aW9uLgorcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDsKKworaW50ZXJmYWNlIElFeHRMaWdodCBleHRlbmRzIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjpJTGlnaHQgeworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm92aWRlZCBsaWdodHMgdG8gdGhlIHByb3ZpZGVkIHZhbHVlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIGxvZ2ljYWwgbGlnaHQgdG8gc2V0CisgICAgICogQHBhcmFtIHN0YXRlIGRlc2NyaWJlcyB3aGF0IHRoZSBsaWdodCBzaG91bGQgbG9vayBsaWtlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHJlc3VsdCBvZiBhcHBseWluZyBzdGF0ZSB0cmFuc2Zvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBzZXRFeHRMaWdodChUeXBlIHR5cGUsIEV4dExpZ2h0U3RhdGUgc3RhdGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKK307CmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzMGQxMWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgTGlnaHQuY3BwIFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5jcHAgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NDFlNzMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgIkxpZ2h0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIGV4dGVuc2lvbiB7CituYW1lc3BhY2UgbGlnaHQgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gTGlnaHQ6OnNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICB7CisgICAgLy8gRm9yd2FyZCB0eXBlcyBmb3IgbmV3IG1ldGhvZHMuCisKKyAgICBFeHRMaWdodFN0YXRlIGV4dFN0YXRlIHsKKyAgICAgICAgLnN0YXRlID0gc3RhdGUsCisgICAgICAgIC5pbnRlcnBvbGF0aW9uT21lZ2EgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oRGVmYXVsdDo6SU5URVJQT0xBVElPTl9PTUVHQSksCisgICAgICAgIC5icmlnaHRuZXNzID0gLy8gRXh0QnJpZ2h0bmVzcyBpbmhlcml0cyBmcm9tIEJyaWdodG5lc3MKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEV4dEJyaWdodG5lc3M+KHN0YXRlLmJyaWdodG5lc3NNb2RlKQorICAgIH07CisKKyAgICByZXR1cm4gc2V0RXh0TGlnaHQodHlwZSwgZXh0U3RhdGUpOworfQorCitSZXR1cm48dm9pZD4gTGlnaHQ6OmdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzX2NiIF9oaWRsX2NiKSAgeworICAgIC8vIGltcGxlbWVudCB1bmNoYW5nZWQgbWV0aG9kIGFzIHlvdSB3b3VsZCBhbHdheXMKKyAgICBoaWRsX3ZlYzxUeXBlPiB2ZWN7fTsKKworICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIC8vIE5vdGU6IGF3ZXNvbWUgcHJvcHJpZXRhcnkgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gaGVyZQorICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgX2hpZGxfY2IodmVjKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpleGFtcGxlOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gTGlnaHQ6OnNldEV4dExpZ2h0KFR5cGUgLyogdHlwZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFeHRMaWdodFN0YXRlJiAvKiBzdGF0ZSAqLykgIHsKKworICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIC8vIE5vdGU6IGF3ZXNvbWUgcHJvcHJpZXRhcnkgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gaGVyZQorICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbGlnaHQKK30gIC8vIG5hbWVzcGFjZSBleHRlbnNpb24KK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmggYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzJjNWRkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVEVTVFNfRVhURU5TSU9OX0xJR0hUX1YyXzBfTElHSFRfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1RFU1RTX0VYVEVOU0lPTl9MSUdIVF9WMl8wX0xJR0hUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIGV4dGVuc2lvbiB7CituYW1lc3BhY2UgbGlnaHQgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGVzdHM6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OkV4dExpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0ZXN0czo6ZXh0ZW5zaW9uOjpsaWdodDo6VjJfMDo6SUV4dExpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpMaWdodFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgTGlnaHQgOiBwdWJsaWMgSUV4dExpZ2h0IHsKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBMaWdodFN0YXRlJiBzdGF0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmV4YW1wbGU6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0RXh0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBFeHRMaWdodFN0YXRlJiBzdGF0ZSkgIG92ZXJyaWRlOworCit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbGlnaHQKK30gIC8vIG5hbWVzcGFjZSBleHRlbnNpb24KK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVEVTVFNfRVhURU5TSU9OX0xJR0hUX1YyXzBfTElHSFRfSApkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzc5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGxpZ2h0LWV4dC0yLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDgzOWIyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSAiTGlnaHQuaCIKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6am9pblJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpzcDsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dGVzdHM6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OmltcGxlbWVudGF0aW9uOjpMaWdodDsKKworaW50IG1haW4oKSB7CisgICAgYW5kcm9pZDo6c3A8SUxpZ2h0PiBzZXJ2aWNlID0gbmV3IExpZ2h0KCk7CisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qY2FsbGVyV2lsbEpvaW4qLyk7CisgICAgc2VydmljZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oYWwgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjA5NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2VudW0gRGVmYXVsdCA6IGludDMyX3QgeworICAgIC8vIGZvciBjYWxscyB0byBzZXRMaWdodCBmcm9tIHRoZSBmcmFtZXdvcmsgdGhhdCBkb24ndCBrbm93IGFib3V0IHRoaXMKKyAgICAvLyBleHRlbnNpb24gb3IgaXRzIHJlcXVpcmVtZW50cworICAgIElOVEVSUE9MQVRJT05fT01FR0EgPSAyCit9OworCisvKioKKyAqIE9uZSBwb3NzaWJpbGl0eSBpcyByZW5hbWluZyBhbiBvbGQgdHlwZS4gQW5vdGhlciBwb3NzaWJpbGl0eSBpcyB0YWtpbmcKKyAqIGFkdmFudGFnZXMgb2YgdGhlIGRpZmZlcmVudCBuYW1lc3BhY2VzLgorICovCitlbnVtIEV4dEJyaWdodG5lc3MgOiBCcmlnaHRuZXNzIHsKKyAgICAvKioKKyAgICAgKiBTYXkgd2UncmUgcmVhbGx5IGdvaW5nIHRvIHVzZSB0aGUgcGhvbmUgYXMgYSBoZWF0ZXIuCisgICAgICovCisgICAgRVhUUkVNRSwKKworICAgIC8qKgorICAgICAqIFNvbWV0aW1lcyBhdCBuaWdodCwgd2UgbmVlZCBpdCB0byBiZSBkYXkuCisgICAgICovCisgICAgIFRIRV9TVU4sCit9OworCisvKioKKyAqIFN0cnVjdHMgY2FuJ3QgaW5oZXJpdCBlYWNob3RoZXIgaW4gaGlkbC4gVXNlIGNvbXBvc2l0aW9uIGluc3RlYWQuIEluIHRoaXMKKyAqIGNhc2UsIEkgd29uJ3QgdXNlIGluaGVyaXRlbmNlIGJlY2F1c2UgSSB3YW50IHRvIHJlcGxhY2UgQnJpZ2h0bmVzcyB3aXRoCisgKiBFeHRCcmlnaHRuZXNzLgorICovCitzdHJ1Y3QgRXh0TGlnaHRTdGF0ZSB7CisgICAgTGlnaHRTdGF0ZSBzdGF0ZTsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIHNlY3JldCBzYXVjZSB0aGF0IHdpbGwgcmVhbGx5IG1ha2UgdGhpcyBleHRlbnNpb24gc2hpbmUuCisgICAgICogTm8gb3RoZXIgcGVyc29uIGhhcyBzdWNoIGEgY29vbCBmZWF0dXJlIGluIHRoZWlyIGhhbHMuIERvbid0IGZvcmdldAorICAgICAqIHRvIGRlc2NyaWJlIGFsbCBkZXRhaWxzIG9mIHBhcmFtZXRlcnMuIEFuIGludGVyZmFjZSBpcyBhIGNvbnRyYWN0LCBhbmQKKyAgICAgKiBzcGVjaWZ5aW5nIHRoaXMgY29udHJhY3QgdG8gdGhlIGxldHRlciBpcyB3aGF0IGFsbG93cyB0aGF0IGNvbnRyYWN0ZWQKKyAgICAgKiB0byBiZSBtYWludGFpbmVkLiA6KQorICAgICAqCisgICAgICogU28sIHRoaXMgcGFyYW1ldGVyIHJlcHJlc2VudHMgdGhlIHNwZWVkIGF0IHdoaWNoIGJyaWdodG5lc3MgaXMgY2hhbmdlZAorICAgICAqIHRvIHRoZSBuZXcgdmFsdWUgaW4gdGhlIHRocmVlIGRpbWVuc2lvbmFsIHNwYWNlIHdpdGggY29vcmRpbmF0ZXMgUkdCCisgICAgICogZnJvbSB0aGUgcmVkLCBibHVlLCBhbmQgZ3JlZW4uCisgICAgICovCisgICAgaW50MzJfdCBpbnRlcnBvbGF0aW9uT21lZ2E7CisKKyAgICAvKioKKyAgICAgKiBJbmNsdWRlIG5ldyB2YWx1ZXMuCisgICAgICovCisgICAgRXh0QnJpZ2h0bmVzcyBicmlnaHRuZXNzOworfTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2Zvby9BbmRyb2lkLm1rIGIvdGVzdHMvZm9vL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2Zvby9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9pbmhlcml0YW5jZS9BbmRyb2lkLm1rIGIvdGVzdHMvaW5oZXJpdGFuY2UvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvaW5oZXJpdGFuY2UvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvbGliaHdiaW5kZXIvMS4wL2RlZmF1bHQvU2NoZWR1bGVUZXN0LmNwcCBiL3Rlc3RzL2xpYmh3YmluZGVyLzEuMC9kZWZhdWx0L1NjaGVkdWxlVGVzdC5jcHAKaW5kZXggMWNlNTBjZi4uNjM1Njk1MyAxMDA2NDQKLS0tIGEvdGVzdHMvbGliaHdiaW5kZXIvMS4wL2RlZmF1bHQvU2NoZWR1bGVUZXN0LmNwcAorKysgYi90ZXN0cy9saWJod2JpbmRlci8xLjAvZGVmYXVsdC9TY2hlZHVsZVRlc3QuY3BwCkBAIC01LDEyICs1LDE0IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLSNkZWZpbmUgQVNTRVJUKGNvbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmICghKGNvbmQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGNlcnIgPDwgX19mdW5jX18gPDwgIjoiIDw8IF9fTElORV9fIDw8ICIgY29uZGl0aW9uOiIgPDwgI2NvbmQgPDwgIiBmYWlsZWRcbiIgPDwgZW5kbDsgXAotICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgQVNTRVJUKGNvbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICghKGNvbmQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGNlcnIgPDwgX19mdW5jX18gPDwgIjoiIDw8IF9fTElORV9fIDw8ICIgY29uZGl0aW9uOiIgPDwgI2NvbmQgXAorICAgICAgICAgICAgICAgICA8PCAiIGZhaWxlZFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgIDw8IGVuZGw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoMCkKIAogc3RhdGljIGludCB0aHJlYWRQcmkoKSB7CkBAIC0yNSwxMyArMjcsMTQgQEAKICAgICBpbnQgcG9saWN5OwogICAgIGlmICghdmVyYm9zZSkgcmV0dXJuOwogICAgIGNvdXQgPDwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiA8PCBlbmRsOwotICAgIGNvdXQgPDwgc2V0dygxMikgPDwgbGVmdCA8PCBwcmVmaXggPDwgIiBwaWQ6ICIgPDwgZ2V0cGlkKCkgPDwgIiB0aWQ6ICIgPDwgZ2V0dGlkKCkKLSAgICAgICAgIDw8ICIgY3B1OiAiIDw8IHNjaGVkX2dldGNwdSgpIDw8IGVuZGw7CisgICAgY291dCA8PCBzZXR3KDEyKSA8PCBsZWZ0IDw8IHByZWZpeCA8PCAiIHBpZDogIiA8PCBnZXRwaWQoKQorICAgICAgICAgPDwgIiB0aWQ6ICIgPDwgZ2V0dGlkKCkgPDwgIiBjcHU6ICIgPDwgc2NoZWRfZ2V0Y3B1KCkgPDwgZW5kbDsKICAgICBBU1NFUlQoIXB0aHJlYWRfZ2V0c2NoZWRwYXJhbShwdGhyZWFkX3NlbGYoKSwgJnBvbGljeSwgJnBhcmFtKSk7Ci0gICAgc3RyaW5nIHMgPQotICAgICAgICAocG9saWN5ID09IFNDSEVEX09USEVSKQotICAgICAgICAgICAgPyAiU0NIRURfT1RIRVIiCi0gICAgICAgICAgICA6IChwb2xpY3kgPT0gU0NIRURfRklGTykgPyAiU0NIRURfRklGTyIgOiAocG9saWN5ID09IFNDSEVEX1JSKSA/ICJTQ0hFRF9SUiIgOiAiPz8/IjsKKyAgICBzdHJpbmcgcyA9IChwb2xpY3kgPT0gU0NIRURfT1RIRVIpCisgICAgICAgICAgICAgICAgICAgPyAiU0NIRURfT1RIRVIiCisgICAgICAgICAgICAgICAgICAgOiAocG9saWN5ID09IFNDSEVEX0ZJRk8pCisgICAgICAgICAgICAgICAgICAgICAgICAgPyAiU0NIRURfRklGTyIKKyAgICAgICAgICAgICAgICAgICAgICAgICA6IChwb2xpY3kgPT0gU0NIRURfUlIpID8gIlNDSEVEX1JSIiA6ICI/Pz8iOwogICAgIGNvdXQgPDwgc2V0dygxMikgPDwgbGVmdCA8PCBzIDw8IHBhcmFtLnNjaGVkX3ByaW9yaXR5IDw8IGVuZGw7CiAgICAgcmV0dXJuOwogfQpAQCAtNTUsNyArNTgsOCBAQAogICAgIGlmIChwcmlvcml0eV9jYWxsZXIgIT0gcHJpb3JpdHkpIHsKICAgICAgICAgaCsrOwogICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgY291dCA8PCAiZXJyIHByaW9yaXR5X2NhbGxlcjoiIDw8IHByaW9yaXR5X2NhbGxlciA8PCAiLCBwcmlvcml0eToiIDw8IHByaW9yaXR5IDw8IGVuZGw7CisgICAgICAgICAgICBjb3V0IDw8ICJlcnIgcHJpb3JpdHlfY2FsbGVyOiIgPDwgcHJpb3JpdHlfY2FsbGVyCisgICAgICAgICAgICAgICAgIDw8ICIsIHByaW9yaXR5OiIgPDwgcHJpb3JpdHkgPDwgZW5kbDsKICAgICAgICAgfQogICAgIH0KICAgICBpbnQgY3B1ID0gc2NoZWRfZ2V0Y3B1KCk7CmRpZmYgLS1naXQgYS90ZXN0cy9saWJod2JpbmRlci9BbmRyb2lkLm1rIGIvdGVzdHMvbGliaHdiaW5kZXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbGliaHdiaW5kZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvbXNncS9BbmRyb2lkLm1rIGIvdGVzdHMvbXNncS9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9tc2dxL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL3BvaW50ZXIvQW5kcm9pZC5tayBiL3Rlc3RzL3BvaW50ZXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcG9pbnRlci9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9BbmRyb2lkLmJwIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTlmOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVRoZXJtYWwuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvVGhlcm1hbEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvSUh3VGhlcm1hbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvQm5Id1RoZXJtYWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0JwSHdUaGVybWFsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9Cc1RoZXJtYWwuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9BbmRyb2lkLm1rIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTBhOWEwCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDM4MCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29vbGluZ0RldmljZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdEZXZpY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5Db29saW5nRGV2aWNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb29saW5nVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ29vbGluZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENwdVVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ3B1VXNhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5DcHVVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGVtcGVyYXR1cmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRlbXBlcmF0dXJlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUZW1wZXJhdHVyZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UZW1wZXJhdHVyZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRoZXJtYWxTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGhlcm1hbFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGhlcm1hbFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRoZXJtYWxTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVRoZXJtYWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9JVGhlcm1hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjpJVGhlcm1hbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWwtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb29saW5nRGV2aWNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ29vbGluZ0RldmljZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLkNvb2xpbmdEZXZpY2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvb2xpbmdUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ29vbGluZ1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5Db29saW5nVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ3B1VXNhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9DcHVVc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLkNwdVVzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUZW1wZXJhdHVyZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RlbXBlcmF0dXJlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGVtcGVyYXR1cmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRlbXBlcmF0dXJlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RlbXBlcmF0dXJlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRlbXBlcmF0dXJlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGhlcm1hbFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RoZXJtYWxTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UaGVybWFsU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUaGVybWFsU3RhdHVzQ29kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RoZXJtYWxTdGF0dXNDb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGhlcm1hbFN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVGhlcm1hbC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0lUaGVybWFsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVGhlcm1hbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OklUaGVybWFsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVGhlcm1hbC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWwtVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lUaGVybWFsLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9JVGhlcm1hbC5oYWwgYi90aGVybWFsLzEuMC9JVGhlcm1hbC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFhNjVkNAotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL0lUaGVybWFsLmhhbApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOworCitpbnRlcmZhY2UgSVRoZXJtYWwgeworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRlbXBlcmF0dXJlcyBpbiBDZWxzaXVzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIElmIHN0YXR1cyBjb2RlIGlzIEZBSUxVUkUsCisgICAgICogICAgICAgICB0aGUgc3RhdHVzLmRlYnVnTWVzc2FnZSBtdXN0IGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZQorICAgICAqICAgICAgICAgZXJyb3IgbWVzc2FnZS4KKyAgICAgKiBAcmV0dXJuIHRlbXBlcmF0dXJlcyBJZiBzdGF0dXMgY29kZSBpcyBTVUNDRVNTLCBpdCdzIGZpbGxlZCB3aXRoIHRoZQorICAgICAqICAgICAgICAgY3VycmVudCB0ZW1wZXJhdHVyZXMuIFRoZSBvcmRlciBvZiB0ZW1wZXJhdHVyZXMgb2YgYnVpbHQtaW4KKyAgICAgKiAgICAgICAgIGRldmljZXMgKHN1Y2ggYXMgQ1BVcywgR1BVcyBhbmQgZXRjLikgaW4gdGhlIGxpc3QgbXVzdCBiZSBrZXB0CisgICAgICogICAgICAgICB0aGUgc2FtZSByZWdhcmRsZXNzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhpcyBtZXRob2QgZXZlbiBpZgorICAgICAqICAgICAgICAgdGhleSBnbyBvZmZsaW5lLCBpZiB0aGVzZSBkZXZpY2VzIGV4aXN0IG9uIGJvb3QuIFRoZSBtZXRob2QKKyAgICAgKiAgICAgICAgIGFsd2F5cyByZXR1cm5zIGFuZCBuZXZlciByZW1vdmVzIHN1Y2ggdGVtcGVyYXR1cmVzLgorICAgICAqCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBnZXRUZW1wZXJhdHVyZXMoKQorICAgICAgICBnZW5lcmF0ZXMgKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCB2ZWM8VGVtcGVyYXR1cmU+IHRlbXBlcmF0dXJlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgQ1BVIHVzYWdlIGluZm9ybWF0aW9uIG9mIGVhY2ggY29yZTogYWN0aXZlIGFuZCB0b3RhbCB0aW1lcworICAgICAqIGluIG1zIHNpbmNlIGZpcnN0IGJvb3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIG9wZXJhdGlvbi4gSWYgc3RhdHVzIGNvZGUgaXMgRkFJTFVSRSwKKyAgICAgKiAgICAgICAgIHRoZSBzdGF0dXMuZGVidWdNZXNzYWdlIG11c3QgYmUgcG9wdWxhdGVkIHdpdGggdGhlIGh1bWFuLXJlYWRhYmxlCisgICAgICogICAgICAgICBlcnJvciBtZXNzYWdlLgorICAgICAqIEByZXR1cm4gY3B1VXNhZ2VzIElmIHN0YXR1cyBjb2RlIGlzIFNVQ0NFU1MsIGl0J3MgZmlsbGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgIENQVSB1c2FnZXMuIFRoZSBvcmRlciBhbmQgbnVtYmVyIG9mIENQVXMgaW4gdGhlIGxpc3QgbXVzdCBiZSBrZXB0CisgICAgICogICAgICAgICB0aGUgc2FtZSByZWdhcmRsZXNzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIGdldENwdVVzYWdlcygpIGdlbmVyYXRlcyAoVGhlcm1hbFN0YXR1cyBzdGF0dXMsIHZlYzxDcHVVc2FnZT4gY3B1VXNhZ2VzKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgY29vbGluZyBkZXZpY2VzIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIElmIHN0YXR1cyBjb2RlIGlzIEZBSUxVUkUsCisgICAgICogICAgICAgICB0aGUgc3RhdHVzLmRlYnVnTWVzc2FnZSBtdXN0IGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZQorICAgICAqICAgICAgICAgZXJyb3IgbWVzc2FnZS4KKyAgICAgKiBAcmV0dXJuIGRldmljZXMgSWYgc3RhdHVzIGNvZGUgaXMgU1VDQ0VTUywgaXQncyBmaWxsZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAqICAgICAgICAgY29vbGluZyBkZXZpY2UgaW5mb3JtYXRpb24uIFRoZSBvcmRlciBvZiBidWlsdC1pbiBjb29saW5nCisgICAgICogICAgICAgICBkZXZpY2VzIGluIHRoZSBsaXN0IG11c3QgYmUga2VwdCB0aGUgc2FtZSByZWdhcmRsZXNzIHRoZSBudW1iZXIKKyAgICAgKiAgICAgICAgIG9mIGNhbGxzIHRvIHRoaXMgbWV0aG9kIGV2ZW4gaWYgdGhleSBnbyBvZmZsaW5lLCBpZiB0aGVzZSBkZXZpY2VzCisgICAgICogICAgICAgICBleGlzdCBvbiBib290LiBUaGUgbWV0aG9kIGFsd2F5cyByZXR1cm5zIGFuZCBuZXZlciByZW1vdmVzIGZyb20KKyAgICAgKiAgICAgICAgIHRoZSBsaXN0IHN1Y2ggY29vbGluZyBkZXZpY2VzLgorICAgICAqCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBnZXRDb29saW5nRGV2aWNlcygpCisgICAgICAgIGdlbmVyYXRlcyAoVGhlcm1hbFN0YXR1cyBzdGF0dXMsIHZlYzxDb29saW5nRGV2aWNlPiBkZXZpY2VzKTsKKworfTsKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTEwNTA5Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTggQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiVGhlcm1hbC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEzMDIwYQotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDM5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitMT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgICAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJjdXRpbHMgXAorICAgICAgICBsaWJkbCBcCisgICAgICAgIGxpYmJhc2UgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGxpYmhhcmR3YXJlIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgICAgIGxpYmhpZGxiYXNlIFwKKyAgICAgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5jcHAgYi90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZDAwOTAKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuY3BwCkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLWltcGwiCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPG1hdGguaD4KKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdGhlcm1hbC5oPgorCisjaW5jbHVkZSAiVGhlcm1hbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRoZXJtYWwgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworbmFtZXNwYWNlIHsKKworZmxvYXQgZmluYWxpemVUZW1wZXJhdHVyZShmbG9hdCB0ZW1wZXJhdHVyZSkgeworICAgIHJldHVybiB0ZW1wZXJhdHVyZSA9PSBVTktOT1dOX1RFTVBFUkFUVVJFID8gTkFOIDogdGVtcGVyYXR1cmU7Cit9CisKK30KKworVGhlcm1hbDo6VGhlcm1hbCh0aGVybWFsX21vZHVsZV90KiBtb2R1bGUpIDogbU1vZHVsZShtb2R1bGUpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbCBmb2xsb3cuCitSZXR1cm48dm9pZD4gVGhlcm1hbDo6Z2V0VGVtcGVyYXR1cmVzKGdldFRlbXBlcmF0dXJlc19jYiBfaGlkbF9jYikgeworICBUaGVybWFsU3RhdHVzIHN0YXR1czsKKyAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUzsKKyAgaGlkbF92ZWM8VGVtcGVyYXR1cmU+IHRlbXBlcmF0dXJlczsKKworICBpZiAoIW1Nb2R1bGUgfHwgIW1Nb2R1bGUtPmdldFRlbXBlcmF0dXJlcykgeworICAgIEFMT0dJKCJnZXRUZW1wZXJhdHVyZXMgaXMgbm90IGltcGxlbWVudGVkIGluIFRoZXJtYWwgSEFMLiIpOworICAgIF9oaWRsX2NiKHN0YXR1cywgdGVtcGVyYXR1cmVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3NpemVfdCBzaXplID0gbU1vZHVsZS0+Z2V0VGVtcGVyYXR1cmVzKG1Nb2R1bGUsIG51bGxwdHIsIDApOworICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8dGVtcGVyYXR1cmVfdD4gbGlzdDsKKyAgICBsaXN0LnJlc2l6ZShzaXplKTsKKyAgICBzaXplID0gbU1vZHVsZS0+Z2V0VGVtcGVyYXR1cmVzKG1Nb2R1bGUsIGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSk7CisgICAgaWYgKHNpemUgPj0gMCkgeworICAgICAgdGVtcGVyYXR1cmVzLnJlc2l6ZShsaXN0LnNpemUoKSk7CisgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3dpdGNoIChsaXN0W2ldLnR5cGUpIHsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9VTktOT1dOOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OlVOS05PV047CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9DUFU6CisgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0udHlwZSA9IFRlbXBlcmF0dXJlVHlwZTo6Q1BVOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBERVZJQ0VfVEVNUEVSQVRVUkVfR1BVOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OkdQVTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgREVWSUNFX1RFTVBFUkFUVVJFX0JBVFRFUlk6CisgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0udHlwZSA9IFRlbXBlcmF0dXJlVHlwZTo6QkFUVEVSWTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgREVWSUNFX1RFTVBFUkFUVVJFX1NLSU46CisgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0udHlwZSA9IFRlbXBlcmF0dXJlVHlwZTo6U0tJTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiVW5rbm93biB0ZW1wZXJhdHVyZSAlcyB0eXBlIiwgbGlzdFtpXS5uYW1lKTsKKyAgICAgICAgICAgIDsKKyAgICAgICAgfQorICAgICAgICB0ZW1wZXJhdHVyZXNbaV0ubmFtZSA9IGxpc3RbaV0ubmFtZTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLmN1cnJlbnRWYWx1ZSA9IGZpbmFsaXplVGVtcGVyYXR1cmUobGlzdFtpXS5jdXJyZW50X3ZhbHVlKTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnRocm90dGxpbmdUaHJlc2hvbGQgPSBmaW5hbGl6ZVRlbXBlcmF0dXJlKGxpc3RbaV0udGhyb3R0bGluZ190aHJlc2hvbGQpOworICAgICAgICB0ZW1wZXJhdHVyZXNbaV0uc2h1dGRvd25UaHJlc2hvbGQgPSBmaW5hbGl6ZVRlbXBlcmF0dXJlKGxpc3RbaV0uc2h1dGRvd25fdGhyZXNob2xkKTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnZyVGhyb3R0bGluZ1RocmVzaG9sZCA9CisgICAgICAgICAgICAgICAgZmluYWxpemVUZW1wZXJhdHVyZShsaXN0W2ldLnZyX3Rocm90dGxpbmdfdGhyZXNob2xkKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKHNpemUgPCAwKSB7CisgICAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6RkFJTFVSRTsKKyAgICBzdGF0dXMuZGVidWdNZXNzYWdlID0gc3RyZXJyb3IoLXNpemUpOworICB9CisgIF9oaWRsX2NiKHN0YXR1cywgdGVtcGVyYXR1cmVzKTsKKyAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFRoZXJtYWw6OmdldENwdVVzYWdlcyhnZXRDcHVVc2FnZXNfY2IgX2hpZGxfY2IpIHsKKyAgVGhlcm1hbFN0YXR1cyBzdGF0dXM7CisgIGhpZGxfdmVjPENwdVVzYWdlPiBjcHVVc2FnZXM7CisgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OlNVQ0NFU1M7CisKKyAgaWYgKCFtTW9kdWxlIHx8ICFtTW9kdWxlLT5nZXRDcHVVc2FnZXMpIHsKKyAgICBBTE9HSSgiZ2V0Q3B1VXNhZ2VzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBUaGVybWFsIEhBTCIpOworICAgIF9oaWRsX2NiKHN0YXR1cywgY3B1VXNhZ2VzKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3NpemVfdCBzaXplID0gbU1vZHVsZS0+Z2V0Q3B1VXNhZ2VzKG1Nb2R1bGUsIG51bGxwdHIpOworICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8Y3B1X3VzYWdlX3Q+IGxpc3Q7CisgICAgbGlzdC5yZXNpemUoc2l6ZSk7CisgICAgc2l6ZSA9IG1Nb2R1bGUtPmdldENwdVVzYWdlcyhtTW9kdWxlLCBsaXN0LmRhdGEoKSk7CisgICAgaWYgKHNpemUgPj0gMCkgeworICAgICAgbGlzdC5yZXNpemUoc2l6ZSk7CisgICAgICBjcHVVc2FnZXMucmVzaXplKHNpemUpOworICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIGNwdVVzYWdlc1tpXS5uYW1lID0gbGlzdFtpXS5uYW1lOworICAgICAgICBjcHVVc2FnZXNbaV0uYWN0aXZlID0gbGlzdFtpXS5hY3RpdmU7CisgICAgICAgIGNwdVVzYWdlc1tpXS50b3RhbCA9IGxpc3RbaV0udG90YWw7CisgICAgICAgIGNwdVVzYWdlc1tpXS5pc09ubGluZSA9IGxpc3RbaV0uaXNfb25saW5lOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpGQUlMVVJFOworICAgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgICB9CisgIH0KKyAgaWYgKHNpemUgPCAwKSB7CisgICAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6RkFJTFVSRTsKKyAgICBzdGF0dXMuZGVidWdNZXNzYWdlID0gc3RyZXJyb3IoLXNpemUpOworICB9CisgIF9oaWRsX2NiKHN0YXR1cywgY3B1VXNhZ2VzKTsKKyAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFRoZXJtYWw6OmdldENvb2xpbmdEZXZpY2VzKGdldENvb2xpbmdEZXZpY2VzX2NiIF9oaWRsX2NiKSB7CisgIFRoZXJtYWxTdGF0dXMgc3RhdHVzOworICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTOworICBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBjb29saW5nRGV2aWNlczsKKworICBpZiAoIW1Nb2R1bGUgfHwgIW1Nb2R1bGUtPmdldENvb2xpbmdEZXZpY2VzKSB7CisgICAgQUxPR0koImdldENvb2xpbmdEZXZpY2VzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBUaGVybWFsIEhBTC4iKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIGNvb2xpbmdEZXZpY2VzKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3NpemVfdCBzaXplID0gbU1vZHVsZS0+Z2V0Q29vbGluZ0RldmljZXMobU1vZHVsZSwgbnVsbHB0ciwgMCk7CisgIGlmIChzaXplID49IDApIHsKKyAgICBzdGQ6OnZlY3Rvcjxjb29saW5nX2RldmljZV90PiBsaXN0OworICAgIGxpc3QucmVzaXplKHNpemUpOworICAgIHNpemUgPSBtTW9kdWxlLT5nZXRDb29saW5nRGV2aWNlcyhtTW9kdWxlLCBsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOworICAgIGlmIChzaXplID49IDApIHsKKyAgICAgIGxpc3QucmVzaXplKHNpemUpOworICAgICAgY29vbGluZ0RldmljZXMucmVzaXplKGxpc3Quc2l6ZSgpKTsKKyAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICBzd2l0Y2ggKGxpc3RbaV0udHlwZSkgeworICAgICAgICAgIGNhc2UgRkFOX1JQTToKKyAgICAgICAgICAgIGNvb2xpbmdEZXZpY2VzW2ldLnR5cGUgPSBDb29saW5nVHlwZTo6RkFOX1JQTTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiVW5rbm93biBjb29saW5nIGRldmljZSAlcyB0eXBlIiwgbGlzdFtpXS5uYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjb29saW5nRGV2aWNlc1tpXS5uYW1lID0gbGlzdFtpXS5uYW1lOworICAgICAgICBjb29saW5nRGV2aWNlc1tpXS5jdXJyZW50VmFsdWUgPSBsaXN0W2ldLmN1cnJlbnRfdmFsdWU7CisgICAgICB9CisgICAgfQorICB9CisgIGlmIChzaXplIDwgMCkgeworICAgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OkZBSUxVUkU7CisgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgfQorICBfaGlkbF9jYihzdGF0dXMsIGNvb2xpbmdEZXZpY2VzKTsKKyAgcmV0dXJuIFZvaWQoKTsKK30KKworSVRoZXJtYWwqIEhJRExfRkVUQ0hfSVRoZXJtYWwoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICB0aGVybWFsX21vZHVsZV90KiBtb2R1bGU7CisgIHN0YXR1c190IGVyciA9IGh3X2dldF9tb2R1bGUoVEhFUk1BTF9IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxod19tb2R1bGVfdCBjb25zdCoqPigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19tb2R1bGVfdCoqPigmbW9kdWxlKSkpOworICBpZiAoZXJyIHx8ICFtb2R1bGUpIHsKKyAgICBBTE9HRSgiQ291bGRuJ3QgbG9hZCAlcyBtb2R1bGUgKCVzKSIsIFRIRVJNQUxfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgIHN0cmVycm9yKC1lcnIpKTsKKyAgfQorCisgIGlmIChlcnIgPT0gMCAmJiBtb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuKSB7CisgICAgc3RydWN0IGh3X2RldmljZV90KiBkZXZpY2U7CisgICAgZXJyID0gbW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3BlbigmbW9kdWxlLT5jb21tb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSEVSTUFMX0hBUkRXQVJFX01PRFVMRV9JRCwgJmRldmljZSk7CisgICAgaWYgKGVycikgeworICAgICAgQUxPR0UoIkNvdWxkbid0IG9wZW4gJXMgbW9kdWxlICglcykiLCBUSEVSTUFMX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIHN0cmVycm9yKC1lcnIpKTsKKyAgICB9IGVsc2UgeworICAgICAgcmV0dXJuIG5ldyBUaGVybWFsKHJlaW50ZXJwcmV0X2Nhc3Q8dGhlcm1hbF9tb2R1bGVfdCo+KGRldmljZSkpOworICAgIH0KKyAgfQorICByZXR1cm4gbmV3IFRoZXJtYWwobW9kdWxlKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHRoZXJtYWwKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5oIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9UaGVybWFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUwNjI4OQotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RIRVJNQUxfVjFfMF9USEVSTUFMX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9USEVSTUFMX1YxXzBfVEhFUk1BTF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0lUaGVybWFsLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS90aGVybWFsLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRoZXJtYWwgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6Q29vbGluZ0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OkNwdVVzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6SVRoZXJtYWw7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUZW1wZXJhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OlRoZXJtYWxTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBUaGVybWFsIDogcHVibGljIElUaGVybWFsIHsKKyAgICBUaGVybWFsKHRoZXJtYWxfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OklUaGVybWFsIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0VGVtcGVyYXR1cmVzKGdldFRlbXBlcmF0dXJlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDcHVVc2FnZXMoZ2V0Q3B1VXNhZ2VzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvb2xpbmdEZXZpY2VzKGdldENvb2xpbmdEZXZpY2VzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgcHJpdmF0ZToKKyAgICAgICAgdGhlcm1hbF9tb2R1bGVfdCogbU1vZHVsZTsKK307CisKK2V4dGVybiAiQyIgSVRoZXJtYWwqIEhJRExfRkVUQ0hfSVRoZXJtYWwoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB0aGVybWFsCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9USEVSTUFMX1YxXzBfVEhFUk1BTF9ICmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiYzBmNjUKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdGhlcm1hbC1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODNjYmY4Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0lUaGVybWFsLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVRoZXJtYWw+KCk7Cit9CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC90eXBlcy5oYWwgYi90aGVybWFsLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI1ZDdjNwotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDsKKworLyoqIERldmljZSB0ZW1wZXJhdHVyZSB0eXBlcyAqLworQGV4cG9ydAorZW51bSBUZW1wZXJhdHVyZVR5cGUgOiBpbnQzMl90IHsKKyAgICBVTktOT1dOID0gLTEsCisgICAgQ1BVID0gMCwKKyAgICBHUFUgPSAxLAorICAgIEJBVFRFUlkgPSAyLAorICAgIFNLSU4gPSAzLAorfTsKKworZW51bSBDb29saW5nVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKiogRmFuIGNvb2xpbmcgZGV2aWNlIHNwZWVkIGluIFJQTS4gKi8KKyAgICBGQU5fUlBNID0gMCwKK307CisKK3N0cnVjdCBUZW1wZXJhdHVyZSB7CisgICAgLyoqCisgICAgICogVGhpcyB0ZW1wZXJhdHVyZSdzIHR5cGUuCisgICAgICovCisgICAgVGVtcGVyYXR1cmVUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoaXMgdGVtcGVyYXR1cmUuCisgICAgICogQWxsIHRlbXBlcmF0dXJlcyBvZiB0aGUgc2FtZSAidHlwZSIgbXVzdCBoYXZlIGEgZGlmZmVyZW50ICJuYW1lIiwKKyAgICAgKiBlLmcuLCBjcHUwLCBiYXR0ZXJ5LgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQ3VycmVudCB0ZW1wZXJhdHVyZSBpbiBDZWxzaXVzLiBJZiBub3QgYXZhaWxhYmxlIHNldCBieSBIQUwgdG8gTkFOLgorICAgICAqIEN1cnJlbnQgdGVtcGVyYXR1cmUgY2FuIGJlIGluIGFueSB1bml0cyBpZiB0eXBlPVVOS05PV04uCisgICAgICovCisgICAgZmxvYXQgY3VycmVudFZhbHVlOworCisgICAgLyoqCisgICAgICogVGhyb3R0bGluZyB0ZW1wZXJhdHVyZSBjb25zdGFudCBmb3IgdGhpcyB0ZW1wZXJhdHVyZS4KKyAgICAgKiBJZiBub3QgYXZhaWxhYmxlLCBzZXQgYnkgSEFMIHRvIE5BTi4KKyAgICAgKi8KKyAgICBmbG9hdCB0aHJvdHRsaW5nVGhyZXNob2xkOworCisgICAgLyoqCisgICAgICogU2h1dGRvd24gdGVtcGVyYXR1cmUgY29uc3RhbnQgZm9yIHRoaXMgdGVtcGVyYXR1cmUuCisgICAgICogSWYgbm90IGF2YWlsYWJsZSwgc2V0IGJ5IEhBTCB0byBOQU4uCisgICAgICovCisgICAgZmxvYXQgc2h1dGRvd25UaHJlc2hvbGQ7CisKKyAgICAvKioKKyAgICAgKiBUaHJlc2hvbGQgdGVtcGVyYXR1cmUgYWJvdmUgd2hpY2ggdGhlIFZSIG1vZGUgY2xvY2tyYXRlIG1pbmltdW1zIGNhbm5vdAorICAgICAqIGJlIG1haW50YWluZWQgZm9yIHRoaXMgZGV2aWNlLgorICAgICAqIElmIG5vdCBhdmFpbGFibGUsIHNldCBieSBIQUwgdG8gTkFOLgorICAgICAqLworICAgIGZsb2F0IHZyVGhyb3R0bGluZ1RocmVzaG9sZDsKKworfTsKKworc3RydWN0IENvb2xpbmdEZXZpY2UgeworICAgIC8qKgorICAgICAqIFRoaXMgY29vbGluZyBkZXZpY2UgdHlwZS4KKyAgICAgKi8KKyAgICBDb29saW5nVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIGNvb2xpbmcgZGV2aWNlLgorICAgICAqIEFsbCBjb29saW5nIGRldmljZXMgb2YgdGhlIHNhbWUgInR5cGUiIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGNvb2xpbmcgZGV2aWNlIHZhbHVlLiBVbml0cyBkZXBlbmQgb24gY29vbGluZyBkZXZpY2UgInR5cGUiLgorICAgICAqLworICAgIGZsb2F0IGN1cnJlbnRWYWx1ZTsKKworfTsKKworc3RydWN0IENwdVVzYWdlIHsKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoaXMgQ1BVLgorICAgICAqIEFsbCBDUFVzIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBBY3RpdmUgdGltZSBzaW5jZSB0aGUgbGFzdCBib290IGluIG1zLgorICAgICAqLworICAgIHVpbnQ2NF90IGFjdGl2ZTsKKworICAgIC8qKgorICAgICAqIFRvdGFsIHRpbWUgc2luY2UgdGhlIGxhc3QgYm9vdCBpbiBtcy4KKyAgICAgKi8KKyAgICB1aW50NjRfdCB0b3RhbDsKKworICAgIC8qKgorICAgICAqIElzIHNldCB0byB0cnVlIHdoZW4gYSBjb3JlIGlzIG9ubGluZS4KKyAgICAgKiBJZiB0aGUgY29yZSBpcyBvZmZsaW5lLCBhbGwgb3RoZXIgbWVtYmVycyBleGNlcHQgfG5hbWV8IHNob3VsZCBiZSBpZ25vcmVkLgorICAgICAqLworICAgIGJvb2wgaXNPbmxpbmU7CisKK307CisKK2VudW0gVGhlcm1hbFN0YXR1c0NvZGUgOiB1aW50MzJfdCB7CisgICAgLyoqIE5vIGVycm9ycy4gKi8KKyAgICBTVUNDRVNTID0gMCwKKyAgICAvKiogVW5rbm93biBmYWlsdXJlIG9jY3VyZWQuICovCisgICAgRkFJTFVSRSA9IDEKK307CisKKy8qKgorICogR2VuZXJpYyBzdHJ1Y3R1cmUgdG8gcmV0dXJuIHRoZSBzdGF0dXMgb2YgYW55IHRoZXJtYWwgb3BlcmF0aW9uLgorICovCitzdHJ1Y3QgVGhlcm1hbFN0YXR1cyB7CisgICAgVGhlcm1hbFN0YXR1c0NvZGUgY29kZTsKKworICAgIC8qKgorICAgICAqIEEgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZSB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkuCisgICAgICovCisgICAgc3RyaW5nIGRlYnVnTWVzc2FnZTsKK307CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC92dHMvQW5kcm9pZC5tayBiL3RoZXJtYWwvMS4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwY2M3MjMKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNDY4ODIKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFRoZXJtYWxWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFRoZXJtYWxWMV8wVGFyZ2V0VGVzdC5jcHAgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ODljOTQKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjZGVmaW5lIExPR19UQUcgInRoZXJtYWxfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OkNvb2xpbmdEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpDcHVVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OklUaGVybWFsOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGVtcGVyYXR1cmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUZW1wZXJhdHVyZVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUaGVybWFsU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGhlcm1hbFN0YXR1c0NvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBNT05JVE9SSU5HX09QRVJBVElPTl9OVU1CRVIgMTAKKworI2RlZmluZSBNQVhfREVWSUNFX1RFTVBFUkFUVVJFIDIwMAorI2RlZmluZSBNQVhfRkFOX1NQRUVEIDIwMDAwCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFRIRVJNQUwgSElETCBIQUwuCitjbGFzcyBUaGVybWFsSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHRoZXJtYWxfID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVRoZXJtYWw+KCk7CisgICAgQVNTRVJUX05FKHRoZXJtYWxfLCBudWxscHRyKTsKKyAgICBiYXNlU2l6ZV8gPSAwOworICAgIG5hbWVzXy5jbGVhcigpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworIHByb3RlY3RlZDoKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgdGVtcGVyYXR1cmVzIHJldHVybmVkIGJ5IFRocmVtYWwgSEFMLgorICB2b2lkIGNoZWNrVGVtcGVyYXR1cmVzKGNvbnN0IGhpZGxfdmVjPFRlbXBlcmF0dXJlPiB0ZW1wZXJhdHVyZXMpIHsKKyAgICBzaXplX3Qgc2l6ZSA9IHRlbXBlcmF0dXJlcy5zaXplKCk7CisgICAgRVhQRUNUX0xFKGJhc2VTaXplXywgc2l6ZSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgY2hlY2tEZXZpY2VUZW1wZXJhdHVyZSh0ZW1wZXJhdHVyZXNbaV0pOworICAgICAgaWYgKGkgPCBiYXNlU2l6ZV8pIHsKKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzX1tpXSwgdGVtcGVyYXR1cmVzW2ldLm5hbWUuY19zdHIoKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBOYW1lcyBtdXN0IGJlIHVuaXF1ZS4KKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzXy5lbmQoKSwgc3RkOjpmaW5kKG5hbWVzXy5iZWdpbigpLCBuYW1lc18uZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0ubmFtZS5jX3N0cigpKSk7CisgICAgICAgIG5hbWVzXy5wdXNoX2JhY2sodGVtcGVyYXR1cmVzW2ldLm5hbWUpOworICAgICAgfQorICAgIH0KKyAgICBiYXNlU2l6ZV8gPSBzaXplOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgQ1BVIHVzYWdlcyByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0NwdVVzYWdlcyhjb25zdCBoaWRsX3ZlYzxDcHVVc2FnZT4mIGNwdVVzYWdlcykgeworICAgIHNpemVfdCBzaXplID0gY3B1VXNhZ2VzLnNpemUoKTsKKyAgICAvLyBBIG51bWJlciBvZiBDUFUncyBkb2VzIG5vdCBjaGFuZ2UuCisgICAgaWYgKGJhc2VTaXplXyAhPSAwKSBFWFBFQ1RfRVEoYmFzZVNpemVfLCBzaXplKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICBjaGVja0NwdVVzYWdlKGNwdVVzYWdlc1tpXSk7CisgICAgICBpZiAoaSA8IGJhc2VTaXplXykgeworICAgICAgICBFWFBFQ1RfRVEobmFtZXNfW2ldLCBjcHVVc2FnZXNbaV0ubmFtZS5jX3N0cigpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE5hbWVzIG11c3QgYmUgdW5pcXVlLgorICAgICAgICBFWFBFQ1RfRVEobmFtZXNfLmVuZCgpLCBzdGQ6OmZpbmQobmFtZXNfLmJlZ2luKCksIG5hbWVzXy5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVVzYWdlc1tpXS5uYW1lLmNfc3RyKCkpKTsKKyAgICAgICAgbmFtZXNfLnB1c2hfYmFjayhjcHVVc2FnZXNbaV0ubmFtZSk7CisgICAgICB9CisgICAgfQorICAgIGJhc2VTaXplXyA9IHNpemU7CisgIH0KKworICAvLyBDaGVjayB2YWxpZGl0eSBvZiBjb29saW5nIGRldmljZXMgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tDb29saW5nRGV2aWNlcyhjb25zdCBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBjb29saW5nRGV2aWNlcykgeworICAgIHNpemVfdCBzaXplID0gY29vbGluZ0RldmljZXMuc2l6ZSgpOworICAgIEVYUEVDVF9MRShiYXNlU2l6ZV8sIHNpemUpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgIGNoZWNrQ29vbGluZ0RldmljZShjb29saW5nRGV2aWNlc1tpXSk7CisgICAgICBpZiAoaSA8IGJhc2VTaXplXykgeworICAgICAgICBFWFBFQ1RfRVEobmFtZXNfW2ldLCBjb29saW5nRGV2aWNlc1tpXS5uYW1lLmNfc3RyKCkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTmFtZXMgbXVzdCBiZSB1bmlxdWUuCisgICAgICAgIEVYUEVDVF9FUShuYW1lc18uZW5kKCksIHN0ZDo6ZmluZChuYW1lc18uYmVnaW4oKSwgbmFtZXNfLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29vbGluZ0RldmljZXNbaV0ubmFtZS5jX3N0cigpKSk7CisgICAgICAgIG5hbWVzXy5wdXNoX2JhY2soY29vbGluZ0RldmljZXNbaV0ubmFtZSk7CisgICAgICB9CisgICAgfQorICAgIGJhc2VTaXplXyA9IHNpemU7CisgIH0KKworICBzcDxJVGhlcm1hbD4gdGhlcm1hbF87CisKKyBwcml2YXRlOgorICAvLyBDaGVjayB2YWxpZGl0eSBvZiB0ZW1wZXJhdHVyZSByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0RldmljZVRlbXBlcmF0dXJlKGNvbnN0IFRlbXBlcmF0dXJlJiB0ZW1wZXJhdHVyZSkgeworICAgIC8vIC5jdXJyZW50VmFsdWUgb2Yga25vd24gdHlwZSBpcyBpbiBDZWxzaXVzIGFuZCBtdXN0IGJlIHJlYXNvbmFibGUuCisgICAgRVhQRUNUX1RSVUUodGVtcGVyYXR1cmUudHlwZSA9PSBUZW1wZXJhdHVyZVR5cGU6OlVOS05PV04gfHwKKyAgICAgICAgICAgICAgICBzdGQ6OmFicyh0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUpIDwgTUFYX0RFVklDRV9URU1QRVJBVFVSRSB8fAorICAgICAgICAgICAgICAgIGlzbmFuKHRlbXBlcmF0dXJlLmN1cnJlbnRWYWx1ZSkpOworCisgICAgLy8gLm5hbWUgbXVzdCBub3QgYmUgZW1wdHkuCisgICAgRVhQRUNUX0xUKDB1LCB0ZW1wZXJhdHVyZS5uYW1lLnNpemUoKSk7CisKKyAgICAvLyAuY3VycmVudFZhbHVlIG11c3Qgbm90IGV4Y2VlZCAuc2h1dGR3b25UaHJlc2hvbGQgaWYgZGVmaW5lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUgPCB0ZW1wZXJhdHVyZS5zaHV0ZG93blRocmVzaG9sZCB8fAorICAgICAgICAgICAgICAgIGlzbmFuKHRlbXBlcmF0dXJlLmN1cnJlbnRWYWx1ZSkgfHwgaXNuYW4odGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQpKTsKKworICAgIC8vIC50aHJvdHRsaW5nVGhyZXNob2xkIG11c3Qgbm90IGV4Y2VlZCAuc2h1dGRvd25UaHJlc2hvbGQgaWYgZGVmaW5lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZW1wZXJhdHVyZS50aHJvdHRsaW5nVGhyZXNob2xkIDwgdGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQgfHwKKyAgICAgICAgICAgICAgICBpc25hbih0ZW1wZXJhdHVyZS50aHJvdHRsaW5nVGhyZXNob2xkKSB8fCBpc25hbih0ZW1wZXJhdHVyZS5zaHV0ZG93blRocmVzaG9sZCkpOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgQ1BVIHVzYWdlIHJldHVybmVkIGJ5IFRoZXJtYWwgSEFMLgorICB2b2lkIGNoZWNrQ3B1VXNhZ2UoY29uc3QgQ3B1VXNhZ2UmIGNwdVVzYWdlKSB7CisgICAgLy8gLmFjdGl2ZSBtdXN0IGJlIGxlc3MgdGhhbiAudG90YWwgaWYgQ1BVIGlzIG9ubGluZS4KKyAgICBFWFBFQ1RfVFJVRSghY3B1VXNhZ2UuaXNPbmxpbmUgfHwKKyAgICAgICAgICAgICAgICAoY3B1VXNhZ2UuYWN0aXZlID49IDAgJiYgY3B1VXNhZ2UudG90YWwgPj0gMCAmJgorICAgICAgICAgICAgICAgICBjcHVVc2FnZS50b3RhbCA+PSBjcHVVc2FnZS5hY3RpdmUpKTsKKworICAgIC8vIC5uYW1lIG11c3QgYmUgbm90IGVtcHR5LgorICAgIEVYUEVDVF9MVCgwdSwgY3B1VXNhZ2UubmFtZS5zaXplKCkpOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgYSBjb29saW5nIGRldmljZSBpbmZvcm1hdGlvbiByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0Nvb2xpbmdEZXZpY2UoY29uc3QgQ29vbGluZ0RldmljZSYgY29vbGluZ0RldmljZSkgeworICAgIEVYUEVDVF9MRSgwLCBjb29saW5nRGV2aWNlLmN1cnJlbnRWYWx1ZSk7CisgICAgRVhQRUNUX0dUKE1BWF9GQU5fU1BFRUQsIGNvb2xpbmdEZXZpY2UuY3VycmVudFZhbHVlKTsKKyAgICBFWFBFQ1RfTFQoMHUsIGNvb2xpbmdEZXZpY2UubmFtZS5zaXplKCkpOworICB9CisKKyAgc2l6ZV90IGJhc2VTaXplXzsKKyAgc3RkOjp2ZWN0b3I8aGlkbF9zdHJpbmc+IG5hbWVzXzsKK307CisKKy8vIFNhbml0eSB0ZXN0IGZvciBUaGVybWFsOjpnZXRUZW1wZXJhdHVyZXMoKS4KK1RFU1RfRihUaGVybWFsSGlkbFRlc3QsIFRlbXBlcmF0dXJlVGVzdCkgeworICBoaWRsX3ZlYzxUZW1wZXJhdHVyZT4gcGFzc2VkOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE1PTklUT1JJTkdfT1BFUkFUSU9OX05VTUJFUjsgKytpKSB7CisgICAgdGhlcm1hbF8tPmdldFRlbXBlcmF0dXJlcygKKyAgICAgICAgWyZwYXNzZWRdKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCBoaWRsX3ZlYzxUZW1wZXJhdHVyZT4gdGVtcGVyYXR1cmVzKSB7CisgICAgICAgICAgRVhQRUNUX0VRKFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgcGFzc2VkID0gdGVtcGVyYXR1cmVzOworICAgICAgICB9KTsKKworICAgIGNoZWNrVGVtcGVyYXR1cmVzKHBhc3NlZCk7CisgICAgc2xlZXAoMSk7CisgIH0KK30KKworLy8gU2FuaXR5IHRlc3QgZm9yIFRoZXJtYWw6OmdldENwdVVzYWdlcygpLgorVEVTVF9GKFRoZXJtYWxIaWRsVGVzdCwgQ3B1VXNhZ2VUZXN0KSB7CisgIGhpZGxfdmVjPENwdVVzYWdlPiBwYXNzZWQ7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTU9OSVRPUklOR19PUEVSQVRJT05fTlVNQkVSOyArK2kpIHsKKyAgICB0aGVybWFsXy0+Z2V0Q3B1VXNhZ2VzKAorICAgICAgICBbJnBhc3NlZF0oVGhlcm1hbFN0YXR1cyBzdGF0dXMsIGhpZGxfdmVjPENwdVVzYWdlPiBjcHVVc2FnZXMpIHsKKyAgICAgICAgICBFWFBFQ1RfRVEoVGhlcm1hbFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKKyAgICAgICAgICBwYXNzZWQgPSBjcHVVc2FnZXM7CisgICAgICAgIH0pOworCisgICAgY2hlY2tDcHVVc2FnZXMocGFzc2VkKTsKKyAgICBzbGVlcCgxKTsKKyAgfQorfQorCisvLyBTYW5pdHkgdGVzdCBmb3IgVGhlcm1hbDo6Z2V0Q29vbGluZ0RldmljZXMoKS4KK1RFU1RfRihUaGVybWFsSGlkbFRlc3QsIENvb2xpbmdEZXZpY2VUZXN0KSB7CisgIGhpZGxfdmVjPENvb2xpbmdEZXZpY2U+IHBhc3NlZDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBNT05JVE9SSU5HX09QRVJBVElPTl9OVU1CRVI7ICsraSkgeworICAgIHRoZXJtYWxfLT5nZXRDb29saW5nRGV2aWNlcyhbJnBhc3NlZF0oCisgICAgICAgIFRoZXJtYWxTdGF0dXMgc3RhdHVzLCBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBjb29saW5nRGV2aWNlcykgeworICAgICAgRVhQRUNUX0VRKFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICBwYXNzZWQgPSBjb29saW5nRGV2aWNlczsKKyAgICB9KTsKKworICAgIGNoZWNrQ29vbGluZ0RldmljZXMocGFzc2VkKTsKKyAgICBzbGVlcCgxKTsKKyAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL3RoZXJtYWwvQW5kcm9pZC5icCBiL3RoZXJtYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvdHYvQW5kcm9pZC5icCBiL3R2L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM1NDkxMAotLS0gL2Rldi9udWxsCisrKyBiL3R2L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJjZWMvMS4wIiwKKyAgICAiaW5wdXQvMS4wIiwKKyAgICAiaW5wdXQvMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvQW5kcm9pZC5icCBiL3R2L2NlYy8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjNmZmUyCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklIZG1pQ2VjLmhhbCIsCisgICAgICAgICJJSGRtaUNlY0NhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9IZG1pQ2VjQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvSGRtaUNlY0NhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lId0hkbWlDZWMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQm5Id0hkbWlDZWMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnBId0hkbWlDZWMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnNIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvSUh3SGRtaUNlY0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JuSHdIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnBId0hkbWlDZWNDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9Cc0hkbWlDZWNDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC9BbmRyb2lkLm1rIGIvdHYvY2VjLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMzg1M2QKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw1ODIgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQWJvcnRSZWFzb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0Fib3J0UmVhc29uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5BYm9ydFJlYXNvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjRGV2aWNlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjRGV2aWNlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjRGV2aWNlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTG9naWNhbEFkZHJlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY0xvZ2ljYWxBZGRyZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNMb2dpY2FsQWRkcmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTWVzc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTWVzc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0SW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG90cGx1Z0V2ZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9Ib3RwbHVnRXZlbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhvdHBsdWdFdmVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWF4TGVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9NYXhMZW5ndGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk1heExlbmd0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT3B0aW9uS2V5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9PcHRpb25LZXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk9wdGlvbktleQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2VuZE1lc3NhZ2VSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL1NlbmRNZXNzYWdlUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5TZW5kTWVzc2FnZVJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZG1pQ2VjLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlYy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWMuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGRtaUNlY0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlY0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50di5jZWMtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChBYm9ydFJlYXNvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQWJvcnRSZWFzb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkFib3J0UmVhc29uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNEZXZpY2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNEZXZpY2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNEZXZpY2VUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNMb2dpY2FsQWRkcmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTG9naWNhbEFkZHJlc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY0xvZ2ljYWxBZGRyZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNNZXNzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNNZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNNZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNNZXNzYWdlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTWVzc2FnZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY01lc3NhZ2VUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIZG1pUG9ydEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0hkbWlQb3J0SW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuSGRtaVBvcnRJbmZvCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIZG1pUG9ydFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0hkbWlQb3J0VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuSGRtaVBvcnRUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIb3RwbHVnRXZlbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0hvdHBsdWdFdmVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuSG90cGx1Z0V2ZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNYXhMZW5ndGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL01heExlbmd0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuTWF4TGVuZ3RoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChPcHRpb25LZXkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL09wdGlvbktleS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuT3B0aW9uS2V5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZW5kTWVzc2FnZVJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvU2VuZE1lc3NhZ2VSZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLlNlbmRNZXNzYWdlUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUhkbWlDZWMuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0lIZG1pQ2VjLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGRtaUNlYy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlYworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZG1pQ2VjQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0lIZG1pQ2VjQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OklIZG1pQ2VjQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL0lIZG1pQ2VjLmhhbCBiL3R2L2NlYy8xLjAvSUhkbWlDZWMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NDA0MTcKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL0lIZG1pQ2VjLmhhbApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOworCitpbXBvcnQgSUhkbWlDZWNDYWxsYmFjazsKKworLyoqCisgKiBIRE1JLUNFQyBIQUwgaW50ZXJmYWNlIGRlZmluaXRpb24uCisgKi8KK2ludGVyZmFjZSBJSGRtaUNlYyB7CisgICAgLyoqCisgICAgICogUGFzc2VzIHRoZSBsb2dpY2FsIGFkZHJlc3MgdGhhdCBtdXN0IGJlIHVzZWQgaW4gdGhpcyBzeXN0ZW0uCisgICAgICoKKyAgICAgKiBIQUwgbXVzdCB1c2UgaXQgdG8gY29uZmlndXJlIHRoZSBoYXJkd2FyZSBzbyB0aGF0IHRoZSBDRUMgY29tbWFuZHMKKyAgICAgKiBhZGRyZXNzZWQgdGhlIGdpdmVuIGxvZ2ljYWwgYWRkcmVzcyBjYW4gYmUgZmlsdGVyZWQgaW4uIFRoaXMgbWV0aG9kIG11c3QKKyAgICAgKiBiZSBhYmxlIHRvIGJlIGNhbGxlZCBhcyBtYW55IHRpbWVzIGFzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzdXBwb3J0CisgICAgICogbXVsdGlwbGUgbG9naWNhbCBkZXZpY2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGFkZHIgTG9naWNhbCBhZGRyZXNzIHRoYXQgbXVzdCBiZSB1c2VkIGluIHRoaXMgc3lzdGVtLiBJdCBtdXN0IGJlCisgICAgICogICAgICAgIGluIHRoZSByYW5nZSBvZiB2YWxpZCBsb2dpY2FsIGFkZHJlc3NlcyBmb3IgdGhlIGNhbGwgdG8gc3VjY2VlZC4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBSZXN1bHQgc3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgKiAgICAgICAgIEZBSUxVUkVfSU5WQUxJRF9BUkdTIGlmIHRoZSBnaXZlbiBsb2dpY2FsIGFkZHJlc3MgaXMgaW52YWxpZCwKKyAgICAgKiAgICAgICAgIEZBSUxVUkVfQlVTWSBpZiBkZXZpY2Ugb3IgcmVzb3VyY2UgaXMgYnVzeQorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGFkZExvZ2ljYWxBZGRyZXNzKENlY0xvZ2ljYWxBZGRyZXNzIGFkZHIpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgYWxsIHRoZSBsb2dpY2FsIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIEl0IGlzIHVzZWQgd2hlbiB0aGUgc3lzdGVtIGRvZXNuJ3QgbmVlZCB0byBwcm9jZXNzIENFQyBjb21tYW5kIGFueSBtb3JlLAorICAgICAqIGhlbmNlIHRvIHRlbGwgSEFMIHRvIHN0b3AgcmVjZWl2aW5nIGNvbW1hbmRzIGZyb20gdGhlIENFQyBidXMsIGFuZCBjaGFuZ2UKKyAgICAgKiB0aGUgc3RhdGUgYmFjayB0byB0aGUgYmVnaW5uaW5nLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJhZGRMb2dpY2FsQWRkcmVzcyIpCisgICAgQGV4aXQKKyAgICBjbGVhckxvZ2ljYWxBZGRyZXNzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDRUMgcGh5c2ljYWwgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBwaHlzaWNhbCBhZGRyZXNzIGRlcGVuZHMgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGZvcm1lZCBieQorICAgICAqIGNvbm5lY3RlZCBIRE1JIGRldmljZXMuIEl0IGlzIHRoZXJlZm9yZSBsaWtlbHkgdG8gY2hhbmdlIGlmIHRoZSBjYWJsZSBpcworICAgICAqIHBsdWdnZWQgb2ZmIGFuZCBvbiBhZ2Fpbi4gSXQgaXMgYWR2aXNlZCB0byBjYWxsIGdldFBoeXNpY2FsQWRkcmVzcyB0byBnZXQKKyAgICAgKiB0aGUgdXBkYXRlZCBhZGRyZXNzIHdoZW4gaG90IHBsdWcgZXZlbnQgdGFrZXMgcGxhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBSZXN1bHQgc3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgKiAgICAgICAgIEZBSUxVUkVfSU5WQUxJRF9TVEFURSBpZiBIQUwgY2Fubm90IHJldHJpZXZlIHRoZSBwaHlzaWNhbAorICAgICAqICAgICAgICAgYWRkcmVzcy4KKyAgICAgKiBAcmV0dXJuIGFkZHIgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGlzIGRldmljZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZ2V0UGh5c2ljYWxBZGRyZXNzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCB1aW50MTZfdCBhZGRyKTsKKworICAgIC8qKgorICAgICAqIFRyYW5zbWl0cyBIRE1JLUNFQyBtZXNzYWdlIHRvIG90aGVyIEhETUkgZGV2aWNlLgorICAgICAqCisgICAgICogVGhlIG1ldGhvZCBtdXN0IGJlIGRlc2lnbmVkIHRvIHJldHVybiBpbiBhIGNlcnRhaW4gYW1vdW50IG9mIHRpbWUgYW5kIG5vdAorICAgICAqIGhhbmdpbmcgZm9yZXZlciB3aGljaCBtYXkgaGFwcGVuIGlmIENFQyBzaWduYWwgbGluZSBpcyBwdWxsZWQgbG93IGZvcgorICAgICAqIHNvbWUgcmVhc29uLgorICAgICAqCisgICAgICogSXQgbXVzdCB0cnkgcmV0cmFuc21pc3Npb24gYXQgbGVhc3Qgb25jZSBhcyBzcGVjaWZpZWQgaW4gdGhlIHNlY3Rpb24gJzcuMQorICAgICAqIEZyYW1lIFJlLXRyYW5zbWlzc2lvbnMnIG9mIHRoZSBDRUMgU3BlYyAxLjRiLgorICAgICAqCisgICAgICogQHBhcmFtIG1lc3NhZ2UgQ0VDIG1lc3NhZ2UgdG8gYmUgc2VudCB0byBvdGhlciBIRE1JIGRldmljZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBSZXN1bHQgc3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgKiAgICAgICAgIE5BQ0sgaWYgdGhlIHNlbnQgbWVzc2FnZSBpcyBub3QgYWNrbm93bGVkZ2VkLAorICAgICAqICAgICAgICAgQlVTWSBpZiB0aGUgQ0VDIGJ1cyBpcyBidXN5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZW5kTWVzc2FnZShDZWNNZXNzYWdlIG1lc3NhZ2UpIGdlbmVyYXRlcyAoU2VuZE1lc3NhZ2VSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFNldHMgYSBjYWxsYmFjayB0aGF0IEhETUktQ0VDIEhBTCBtdXN0IGxhdGVyIHVzZSBmb3IgaW5jb21pbmcgQ0VDCisgICAgICogbWVzc2FnZXMgb3IgaW50ZXJuYWwgSERNSSBldmVudHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgb2JqZWN0IHRvIHBhc3MgaGRtaSBldmVudHMgdG8gdGhlIHN5c3RlbS4gVGhlCisgICAgICogICAgICAgIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFjayBtdXN0IGJlIHJlcGxhY2VkIHdpdGggdGhpcyBvbmUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJhZGRMb2dpY2FsQWRkcmVzcyJ9KQorICAgIEBlbnRyeQorICAgIHNldENhbGxiYWNrKElIZG1pQ2VjQ2FsbGJhY2sgY2FsbGJhY2spOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgQ0VDIHZlcnNpb24gc3VwcG9ydGVkIGJ5IHVuZGVybHlpbmcgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHZlcnNpb24gdGhlIENFQyB2ZXJzaW9uIHN1cHBvcnRlZCBieSB1bmRlcmx5aW5nIGhhcmR3YXJlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldENlY1ZlcnNpb24oKSBnZW5lcmF0ZXMgKGludDMyX3QgdmVyc2lvbik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBpZGVudGlmaWVyIG9mIHRoZSB2ZW5kb3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHZlbmRvcklkIElkZW50aWZpZXIgb2YgdGhlIHZlbmRvciB0aGF0IGlzIHRoZSAyNC1iaXQgdW5pcXVlCisgICAgICogICAgICAgICBjb21wYW55IElEIG9idGFpbmVkIGZyb20gdGhlIElFRUUgUmVnaXN0cmF0aW9uIEF1dGhvcml0eQorICAgICAqICAgICAgICAgQ29tbWl0dGVlIChSQUMpLiBUaGUgdXBwZXIgOCBiaXRzIG11c3QgYmUgMC4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRWZW5kb3JJZCgpIGdlbmVyYXRlcyAodWludDMyX3QgdmVuZG9ySWQpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaGRtaSBwb3J0IGluZm9ybWF0aW9uIG9mIHVuZGVybHlpbmcgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGluZm9zIFRoZSBsaXN0IG9mIEhETUkgcG9ydCBpbmZvcm1hdGlvbgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFBvcnRJbmZvKCkgZ2VuZXJhdGVzICh2ZWM8SGRtaVBvcnRJbmZvPiBpbmZvcyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGZsYWdzIGNvbnRyb2xsaW5nIHRoZSB3YXkgSERNSS1DRUMgc2VydmljZSB3b3JrcyBkb3duIHRvIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaG9zZSBmbGFncyBtdXN0IGJlIHVzZWQgaW4gY2FzZSB0aGUgZmVhdHVyZSBuZWVkcyB1cGRhdGUKKyAgICAgKiBpbiBIQUwgaXRzZWxmLCBmaXJtd2FyZSBvciBtaWNyb2NvbnRyb2xsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIG9wdGlvbiB0byBiZSB1cGRhdGVkIHdpdGggYSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGJlIHNldC4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0T3B0aW9uKE9wdGlvbktleSBrZXksIGJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUGFzc2VzIHRoZSB1cGRhdGVkIGxhbmd1YWdlIGluZm9ybWF0aW9uIG9mIEFuZHJvaWQgc3lzdGVtLiBDb250YWlucworICAgICAqIHRocmVlLWxldHRlciBjb2RlIGFzIGRlZmluZWQgaW4gSVNPL0ZESVMgNjM5LTIuIE11c3QgYmUgdXNlZCBmb3IgSEFMIHRvCisgICAgICogcmVzcG9uZCB0byA8R2V0IE1lbnUgTGFuZ3VhZ2U+IHdoaWxlIGluIHN0YW5kYnkgbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBUaHJlZS1sZXR0ZXIgY29kZSBkZWZpbmVkIGluIElTTy9GRElTIDYzOS0yLiBNdXN0IGJlCisgICAgICogICAgICAgIGxvd2VyY2FzZSBsZXR0ZXJzLiAoZS5nLiwgZW5nIGZvciBFbmdsaXNoKQorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZXRMYW5ndWFnZShzdHJpbmcgbGFuZ3VhZ2UpOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJlcyBBUkMgY2lyY3VpdCBpbiB0aGUgaGFyZHdhcmUgbG9naWMgdG8gc3RhcnQgb3Igc3RvcCB0aGUKKyAgICAgKiBmZWF0dXJlLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJZCBQb3J0IGlkIHRvIGJlIGNvbmZpZ3VyZWQuCisgICAgICogQHBhcmFtIGVuYWJsZSBGbGFnIG11c3QgYmUgZWl0aGVyIHRydWUgdG8gc3RhcnQgdGhlIGZlYXR1cmUgb3IgZmFsc2UgdG8KKyAgICAgKiAgICAgICAgc3RvcCBpdC4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZW5hYmxlQXVkaW9SZXR1cm5DaGFubmVsKGludDMyX3QgcG9ydElkLCBib29sIGVuYWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb25uZWN0aW9uIHN0YXR1cyBvZiB0aGUgc3BlY2lmaWVkIHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydElkIFBvcnQgaWQgdG8gYmUgaW5zcGVjdGVkIGZvciB0aGUgY29ubmVjdGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBzdGF0dXMgVHJ1ZSBpZiBhIGRldmljZSBpcyBjb25uZWN0ZWQsIG90aGVyd2lzZSBmYWxzZS4gVGhlIEhBTAorICAgICAqICAgICAgICAgbXVzdCB3YXRjaCBmb3IgKzVWIHBvd2VyIHNpZ25hbCB0byBkZXRlcm1pbmUgdGhlIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgaXNDb25uZWN0ZWQoaW50MzJfdCBwb3J0SWQpIGdlbmVyYXRlcyAoYm9vbCBzdGF0dXMpOworfTsKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvSUhkbWlDZWNDYWxsYmFjay5oYWwgYi90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NGQxOWYKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDsKKworaW50ZXJmYWNlIElIZG1pQ2VjQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IG11c3QgYmUgY2FsbGVkIGJ5IEhBTCBpbXBsZW1lbnRhdGlvbiB0byBub3RpZnkKKyAgICAgKiB0aGUgc3lzdGVtIG9mIG5ldyBDRUMgbWVzc2FnZSBhcnJpdmFsLgorICAgICAqLworICAgIG9uZXdheSBvbkNlY01lc3NhZ2UoQ2VjTWVzc2FnZSBtZXNzYWdlKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IG11c3QgYmUgY2FsbGVkIGJ5IEhBTCBpbXBsZW1lbnRhdGlvbiB0byBub3RpZnkKKyAgICAgKiB0aGUgc3lzdGVtIG9mIG5ldyBob3RwbHVnIGV2ZW50LgorICAgICAqLworICAgIG9uZXdheSBvbkhvdHBsdWdFdmVudChIb3RwbHVnRXZlbnQgZXZlbnQpOworfTsKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQzNzM0NAotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDQgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBIZG1pQ2VjLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGlibG9nIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmRsIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmVfbGVnYWN5IFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmNwcCBiL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmUyNjgxCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0hkbWlDZWMuY3BwCkBAIC0wLDAgKzEsNDE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtaW1wbCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oZG1pX2NlYy5oPgorI2luY2x1ZGUgIkhkbWlDZWMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgY2VjIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9JTkFDVElWRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OklOQUNUSVZFKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OklOQUNUSVZFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX1RWID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6VFYpLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6VFYgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfUkVDT1JERVIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpSRUNPUkRFUiksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpSRUNPUkRFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9UVU5FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OlRVTkVSKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OlRVTkVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX1BMQVlCQUNLID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6UExBWUJBQ0spLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6UExBWUJBQ0sgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfQVVESU9fU1lTVEVNID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6QVVESU9fU1lTVEVNKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OkFVRElPX1NZU1RFTSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9NQVggPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpNQVgpLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6TUFYIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RWID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlRWKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpUViBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUkVDT1JERVJfMSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8xKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8xIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9SRUNPUkRFUl8yID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzIpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzEgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUExBWUJBQ0tfMSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18xKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18xIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9BVURJT19TWVNURU0gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6QVVESU9fU1lTVEVNKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpBVURJT19TWVNURU0gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMiksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfVFVORVJfMyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl8zKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl8zIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9QTEFZQkFDS18yID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzIpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1JFQ09SREVSXzMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMyksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfVFVORVJfNCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl80KSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl80IG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9QTEFZQkFDS18zID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzMpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX0ZSRUVfVVNFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OkZSRUVfVVNFKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpGUkVFX1VTRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfVU5SRUdJU1RFUkVEID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlVOUkVHSVNURVJFRCksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VU5SRUdJU1RFUkVEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9CUk9BRENBU1QgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6QlJPQURDQVNUKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpCUk9BRENBU1QgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfRkVBVFVSRV9BQk9SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpGRUFUVVJFX0FCT1JUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpGRUFUVVJFX0FCT1JUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9JTUFHRV9WSUVXX09OID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OklNQUdFX1ZJRVdfT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OklNQUdFX1ZJRVdfT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RVTkVSX1NURVBfSU5DUkVNRU5UID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUVU5FUl9TVEVQX0lOQ1JFTUVOVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9JTkNSRU1FTlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RVTkVSX1NURVBfREVDUkVNRU5UID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUVU5FUl9TVEVQX0RFQ1JFTUVOVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9ERUNSRU1FTlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RVTkVSX0RFVklDRV9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX0RFVklDRV9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX0RFVklDRV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfVFVORVJfREVWSUNFX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6R0lWRV9UVU5FUl9ERVZJQ0VfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHSVZFX1RVTkVSX0RFVklDRV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFQ09SRF9PTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFQ09SRF9PTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVDT1JEX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRUNPUkRfT0ZGID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlJFQ09SRF9PRkYpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFQ09SRF9PRkYgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RFWFRfVklFV19PTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpURVhUX1ZJRVdfT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRFWFRfVklFV19PTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVDT1JEX1RWX1NDUkVFTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfVFZfU0NSRUVOKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfVFZfU0NSRUVOIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX0RFQ0tfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVDS19TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVDS19TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NUQU5EQlkgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6U1RBTkRCWSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U1RBTkRCWSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUExBWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpQTEFZKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpQTEFZIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9ERUNLX0NPTlRST0wgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6REVDS19DT05UUk9MKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpERUNLX0NPTlRST0wgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RJTUVSX0NMRUFSRURfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUSU1FUl9DTEVBUkVEX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VElNRVJfQ0xFQVJFRF9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1VTRVJfQ09OVFJPTF9QUkVTU0VEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpVU0VSX0NPTlRST0xfUFJFU1NFRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1BSRVNTRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1VTRVJfQ09OVFJPTF9SRUxFQVNFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1JFTEVBU0VEKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpVU0VSX0NPTlRST0xfUkVMRUFTRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfT1NEX05BTUUgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0lWRV9PU0RfTkFNRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9PU0RfTkFNRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX09TRF9OQU1FID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNFVF9PU0RfTkFNRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX09TRF9OQU1FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TWVNURU1fQVVESU9fTU9ERV9SRVFVRVNUID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTWVNURU1fQVVESU9fTU9ERV9SRVFVRVNUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTWVNURU1fQVVESU9fTU9ERV9SRVFVRVNUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX0FVRElPX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpHSVZFX0FVRElPX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9BVURJT19TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9TWVNURU1fQVVESU9fTU9ERSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U0VUX1NZU1RFTV9BVURJT19NT0RFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfU1lTVEVNX0FVRElPX01PREUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFUE9SVF9BVURJT19TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BVURJT19TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BVURJT19TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfU1lTVEVNX0FVRElPX01PREVfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX1NZU1RFTV9BVURJT19NT0RFX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NZU1RFTV9BVURJT19NT0RFX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JPVVRJTkdfQ0hBTkdFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlJPVVRJTkdfQ0hBTkdFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpST1VUSU5HX0NIQU5HRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUk9VVElOR19JTkZPUk1BVElPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6Uk9VVElOR19JTkZPUk1BVElPTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Uk9VVElOR19JTkZPUk1BVElPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfQUNUSVZFX1NPVVJDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpBQ1RJVkVfU09VUkNFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpBQ1RJVkVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX1BIWVNJQ0FMX0FERFJFU1MgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkdJVkVfUEhZU0lDQUxfQUREUkVTUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9QSFlTSUNBTF9BRERSRVNTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfUEhZU0lDQUxfQUREUkVTUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX1BIWVNJQ0FMX0FERFJFU1MpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QSFlTSUNBTF9BRERSRVNTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVFVRVNUX0FDVElWRV9TT1VSQ0UgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQUNUSVZFX1NPVVJDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BQ1RJVkVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfU1RSRUFNX1BBVEggPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6U0VUX1NUUkVBTV9QQVRIKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfU1RSRUFNX1BBVEggbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0RFVklDRV9WRU5ET1JfSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6REVWSUNFX1ZFTkRPUl9JRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6REVWSUNFX1ZFTkRPUl9JRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX0NPTU1BTkQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6VkVORE9SX0NPTU1BTkQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9WRU5ET1JfUkVNT1RFX0JVVFRPTl9ET1dOID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpWRU5ET1JfUkVNT1RFX0JVVFRPTl9ET1dOKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpWRU5ET1JfUkVNT1RFX0JVVFRPTl9ET1dOIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9WRU5ET1JfUkVNT1RFX0JVVFRPTl9VUCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VkVORE9SX1JFTU9URV9CVVRUT05fVVApLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9SRU1PVEVfQlVUVE9OX1VQIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX0RFVklDRV9WRU5ET1JfSUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVWSUNFX1ZFTkRPUl9JRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9ERVZJQ0VfVkVORE9SX0lEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9NRU5VX1JFUVVFU1QgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6TUVOVV9SRVFVRVNUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpNRU5VX1JFUVVFU1QgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX01FTlVfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6Ok1FTlVfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpNRU5VX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9ERVZJQ0VfUE9XRVJfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX0RFVklDRV9QT1dFUl9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVWSUNFX1BPV0VSX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX1BPV0VSX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX1BPV0VSX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX1BPV0VSX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0VUX01FTlVfTEFOR1VBR0UgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0VUX01FTlVfTEFOR1VBR0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdFVF9NRU5VX0xBTkdVQUdFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRUxFQ1RfQU5BTE9HX1NFUlZJQ0UgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlNFTEVDVF9BTkFMT0dfU0VSVklDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VMRUNUX0FOQUxPR19TRVJWSUNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRUxFQ1RfRElHSVRBTF9TRVJWSUNFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTRUxFQ1RfRElHSVRBTF9TRVJWSUNFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRUxFQ1RfRElHSVRBTF9TRVJWSUNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfRElHSVRBTF9USU1FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpTRVRfRElHSVRBTF9USU1FUiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX0RJR0lUQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0NMRUFSX0RJR0lUQUxfVElNRVIgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkNMRUFSX0RJR0lUQUxfVElNRVIpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkNMRUFSX0RJR0lUQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9BVURJT19SQVRFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNFVF9BVURJT19SQVRFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfQVVESU9fUkFURSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfSU5BQ1RJVkVfU09VUkNFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OklOQUNUSVZFX1NPVVJDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6SU5BQ1RJVkVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9DRUNfVkVSU0lPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpDRUNfVkVSU0lPTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Q0VDX1ZFUlNJT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dFVF9DRUNfVkVSU0lPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpHRVRfQ0VDX1ZFUlNJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdFVF9DRUNfVkVSU0lPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX0NPTU1BTkRfV0lUSF9JRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VkVORE9SX0NPTU1BTkRfV0lUSF9JRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VkVORE9SX0NPTU1BTkRfV0lUSF9JRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfQ0xFQVJfRVhURVJOQUxfVElNRVIgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkNMRUFSX0VYVEVSTkFMX1RJTUVSKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpDTEVBUl9FWFRFUk5BTF9USU1FUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX0VYVEVSTkFMX1RJTUVSID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTRVRfRVhURVJOQUxfVElNRVIpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFVF9FWFRFUk5BTF9USU1FUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfSU5JVElBVEVfQVJDID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OklOSVRJQVRFX0FSQyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6SU5JVElBVEVfQVJDIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfQVJDX0lOSVRJQVRFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX0FSQ19JTklUSUFURUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfSU5JVElBVEVEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfQVJDX1RFUk1JTkFURUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfVEVSTUlOQVRFRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX0FSQ19URVJNSU5BVEVEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVFVRVNUX0FSQ19JTklUSUFUSU9OID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FSQ19JTklUSUFUSU9OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FSQ19JTklUSUFUSU9OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVFVRVNUX0FSQ19URVJNSU5BVElPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BUkNfVEVSTUlOQVRJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQVJDX1RFUk1JTkFUSU9OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9URVJNSU5BVEVfQVJDID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlRFUk1JTkFURV9BUkMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRFUk1JTkFURV9BUkMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0FCT1JUID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkFCT1JUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpBQk9SVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChBQk9SVF9VTlJFQ09HTklaRURfTU9ERSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFib3J0UmVhc29uOjpVTlJFQ09HTklaRURfTU9ERSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6VU5SRUNPR05JWkVEX01PREUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX05PVF9JTl9DT1JSRUNUX01PREUgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6Tk9UX0lOX0NPUlJFQ1RfTU9ERSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6Tk9UX0lOX0NPUlJFQ1RfTU9ERSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQUJPUlRfQ0FOTk9UX1BST1ZJREVfU09VUkNFID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246OkNBTk5PVF9QUk9WSURFX1NPVVJDRSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6Q0FOTk9UX1BST1ZJREVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChBQk9SVF9JTlZBTElEX09QRVJBTkQgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6SU5WQUxJRF9PUEVSQU5EKSwKKyAgICAgICAgIkFib3J0UmVhc29uOjpJTlZBTElEX09QRVJBTkQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX1JFRlVTRUQgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6UkVGVVNFRCksCisgICAgICAgICJBYm9ydFJlYXNvbjo6UkVGVVNFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQUJPUlRfVU5BQkxFX1RPX0RFVEVSTUlORSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFib3J0UmVhc29uOjpVTkFCTEVfVE9fREVURVJNSU5FKSwKKyAgICAgICAgIkFib3J0UmVhc29uOjpVTkFCTEVfVE9fREVURVJNSU5FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KEhETUlfUkVTVUxUX1NVQ0NFU1MgPT0gc3RhdGljX2Nhc3Q8aW50PihTZW5kTWVzc2FnZVJlc3VsdDo6U1VDQ0VTUyksCisgICAgICAgICJTZW5kTWVzc2FnZVJlc3VsdDo6U1VDQ0VTUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9SRVNVTFRfTkFDSyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFNlbmRNZXNzYWdlUmVzdWx0OjpOQUNLKSwKKyAgICAgICAgIlNlbmRNZXNzYWdlUmVzdWx0OjpOQUNLIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX1JFU1VMVF9CVVNZID09IHN0YXRpY19jYXN0PGludD4oU2VuZE1lc3NhZ2VSZXN1bHQ6OkJVU1kpLAorICAgICAgICAiU2VuZE1lc3NhZ2VSZXN1bHQ6OkJVU1kgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEhETUlfUkVTVUxUX0ZBSUwgPT0gc3RhdGljX2Nhc3Q8aW50PihTZW5kTWVzc2FnZVJlc3VsdDo6RkFJTCksCisgICAgICAgICJTZW5kTWVzc2FnZVJlc3VsdDo6RkFJTCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChIRE1JX0lOUFVUID09IHN0YXRpY19jYXN0PGludD4oSGRtaVBvcnRUeXBlOjpJTlBVVCksCisgICAgICAgICJIZG1pUG9ydFR5cGU6OklOUFVUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX09VVFBVVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEhkbWlQb3J0VHlwZTo6T1VUUFVUKSwKKyAgICAgICAgIkhkbWlQb3J0VHlwZTo6T1VUUFVUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KEhETUlfT1BUSU9OX1dBS0VVUCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE9wdGlvbktleTo6V0FLRVVQKSwKKyAgICAgICAgIk9wdGlvbktleTo6V0FLRVVQIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX09QVElPTl9FTkFCTEVfQ0VDID09IHN0YXRpY19jYXN0PGludD4oT3B0aW9uS2V5OjpFTkFCTEVfQ0VDKSwKKyAgICAgICAgIk9wdGlvbktleTo6RU5BQkxFX0NFQyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9PUFRJT05fU1lTVEVNX0NFQ19DT05UUk9MID09IHN0YXRpY19jYXN0PGludD4oT3B0aW9uS2V5OjpTWVNURU1fQ0VDX0NPTlRST0wpLAorICAgICAgICAiT3B0aW9uS2V5OjpTWVNURU1fQ0VDX0NPTlRST0wgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3NwPElIZG1pQ2VjQ2FsbGJhY2s+IEhkbWlDZWM6Om1DYWxsYmFjayA9IG51bGxwdHI7CisKK0hkbWlDZWM6OkhkbWlDZWMoaGRtaV9jZWNfZGV2aWNlX3QqIGRldmljZSkgOiBtRGV2aWNlKGRldmljZSkgeworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWMgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gSGRtaUNlYzo6YWRkTG9naWNhbEFkZHJlc3MoQ2VjTG9naWNhbEFkZHJlc3MgYWRkcikgeworICAgIGludCByZXQgPSBtRGV2aWNlLT5hZGRfbG9naWNhbF9hZGRyZXNzKG1EZXZpY2UsIHN0YXRpY19jYXN0PGNlY19sb2dpY2FsX2FkZHJlc3NfdD4oYWRkcikpOworICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfSU5WQUxJRF9BUkdTOworICAgICAgICBjYXNlIC1FTk9UU1VQOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6RkFJTFVSRV9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfQlVTWTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfVU5LTk9XTjsKKyAgICB9Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpjbGVhckxvZ2ljYWxBZGRyZXNzKCkgeworICAgIG1EZXZpY2UtPmNsZWFyX2xvZ2ljYWxfYWRkcmVzcyhtRGV2aWNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6Z2V0UGh5c2ljYWxBZGRyZXNzKGdldFBoeXNpY2FsQWRkcmVzc19jYiBfaGlkbF9jYikgeworICAgIHVpbnQxNl90IGFkZHI7CisgICAgaW50IHJldCA9IG1EZXZpY2UtPmdldF9waHlzaWNhbF9hZGRyZXNzKG1EZXZpY2UsICZhZGRyKTsKKyAgICBzd2l0Y2ggKHJldCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OlNVQ0NFU1MsIGFkZHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLUVCQURGOgorICAgICAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpGQUlMVVJFX0lOVkFMSURfU1RBVEUsIGFkZHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OkZBSUxVUkVfVU5LTk9XTiwgYWRkcik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFNlbmRNZXNzYWdlUmVzdWx0PiBIZG1pQ2VjOjpzZW5kTWVzc2FnZShjb25zdCBDZWNNZXNzYWdlJiBtZXNzYWdlKSB7CisgICAgY2VjX21lc3NhZ2VfdCBsZWdhY3lNZXNzYWdlIHsKKyAgICAgICAgLmluaXRpYXRvciA9IHN0YXRpY19jYXN0PGNlY19sb2dpY2FsX2FkZHJlc3NfdD4obWVzc2FnZS5pbml0aWF0b3IpLAorICAgICAgICAuZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDxjZWNfbG9naWNhbF9hZGRyZXNzX3Q+KG1lc3NhZ2UuZGVzdGluYXRpb24pLAorICAgICAgICAubGVuZ3RoID0gbWVzc2FnZS5ib2R5LnNpemUoKSwKKyAgICB9OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVzc2FnZS5ib2R5LnNpemUoKTsgKytpKSB7CisgICAgICAgIGxlZ2FjeU1lc3NhZ2UuYm9keVtpXSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KG1lc3NhZ2UuYm9keVtpXSk7CisgICAgfQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxTZW5kTWVzc2FnZVJlc3VsdD4obURldmljZS0+c2VuZF9tZXNzYWdlKG1EZXZpY2UsICZsZWdhY3lNZXNzYWdlKSk7Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJSGRtaUNlY0NhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBtRGV2aWNlLT5yZWdpc3Rlcl9ldmVudF9jYWxsYmFjayhtRGV2aWNlLCBldmVudENhbGxiYWNrLCBudWxscHRyKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48aW50MzJfdD4gSGRtaUNlYzo6Z2V0Q2VjVmVyc2lvbigpIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBtRGV2aWNlLT5nZXRfdmVyc2lvbihtRGV2aWNlLCAmdmVyc2lvbik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHZlcnNpb24pOworfQorCitSZXR1cm48dWludDMyX3Q+IEhkbWlDZWM6OmdldFZlbmRvcklkKCkgeworICAgIHVpbnQzMl90IHZlbmRvcl9pZDsKKyAgICBtRGV2aWNlLT5nZXRfdmVuZG9yX2lkKG1EZXZpY2UsICZ2ZW5kb3JfaWQpOworICAgIHJldHVybiB2ZW5kb3JfaWQ7Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpnZXRQb3J0SW5mbyhnZXRQb3J0SW5mb19jYiBfaGlkbF9jYikgeworICAgIHN0cnVjdCBoZG1pX3BvcnRfaW5mbyogbGVnYWN5UG9ydHM7CisgICAgaW50IG51bVBvcnRzOworICAgIGhpZGxfdmVjPEhkbWlQb3J0SW5mbz4gcG9ydEluZm9zOworICAgIG1EZXZpY2UtPmdldF9wb3J0X2luZm8obURldmljZSwgJmxlZ2FjeVBvcnRzLCAmbnVtUG9ydHMpOworICAgIHBvcnRJbmZvcy5yZXNpemUobnVtUG9ydHMpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUG9ydHM7ICsraSkgeworICAgICAgICBwb3J0SW5mb3NbaV0gPSB7CisgICAgICAgICAgICAudHlwZSA9IHN0YXRpY19jYXN0PEhkbWlQb3J0VHlwZT4obGVnYWN5UG9ydHNbaV0udHlwZSksCisgICAgICAgICAgICAucG9ydElkID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZ2FjeVBvcnRzW2ldLnBvcnRfaWQpLAorICAgICAgICAgICAgLmNlY1N1cHBvcnRlZCA9IGxlZ2FjeVBvcnRzW2ldLmNlY19zdXBwb3J0ZWQgIT0gMCwKKyAgICAgICAgICAgIC5hcmNTdXBwb3J0ZWQgPSBsZWdhY3lQb3J0c1tpXS5hcmNfc3VwcG9ydGVkICE9IDAsCisgICAgICAgICAgICAucGh5c2ljYWxBZGRyZXNzID0gbGVnYWN5UG9ydHNbaV0ucGh5c2ljYWxfYWRkcmVzcworICAgICAgICB9OworICAgIH0KKyAgICBfaGlkbF9jYihwb3J0SW5mb3MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpzZXRPcHRpb24oT3B0aW9uS2V5IGtleSwgYm9vbCB2YWx1ZSkgeworICAgIG1EZXZpY2UtPnNldF9vcHRpb24obURldmljZSwgc3RhdGljX2Nhc3Q8aW50PihrZXkpLCB2YWx1ZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6c2V0TGFuZ3VhZ2UoY29uc3QgaGlkbF9zdHJpbmcmIGxhbmd1YWdlKSB7CisgICAgaWYgKGxhbmd1YWdlLnNpemUoKSAhPSAzKSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgIldyb25nIGxhbmd1YWdlIGNvZGU6IGV4cGVjdGVkIDMgbGV0dGVycywgYnV0IGl0IHdhcyAiIDw8IGxhbmd1YWdlLnNpemUoKQorICAgICAgICAgICAgICAgIDw8ICIuIjsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgY29uc3QgY2hhciAqbGFuZ3VhZ2VTdHIgPSBsYW5ndWFnZS5jX3N0cigpOworICAgIGludCBjb252ZXJ0ZWRMYW5ndWFnZSA9ICgobGFuZ3VhZ2VTdHJbMF0gJiAweEZGKSA8PCAxNikKKyAgICAgICAgICAgIHwgKChsYW5ndWFnZVN0clsxXSAmIDB4RkYpIDw8IDgpCisgICAgICAgICAgICB8IChsYW5ndWFnZVN0clsyXSAmIDB4RkYpOworICAgIG1EZXZpY2UtPnNldF9vcHRpb24obURldmljZSwgSERNSV9PUFRJT05fU0VUX0xBTkcsIGNvbnZlcnRlZExhbmd1YWdlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6ZW5hYmxlQXVkaW9SZXR1cm5DaGFubmVsKGludDMyX3QgcG9ydElkLCBib29sIGVuYWJsZSkgeworICAgIG1EZXZpY2UtPnNldF9hdWRpb19yZXR1cm5fY2hhbm5lbChtRGV2aWNlLCBwb3J0SWQsIGVuYWJsZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gSGRtaUNlYzo6aXNDb25uZWN0ZWQoaW50MzJfdCBwb3J0SWQpIHsKKyAgICByZXR1cm4gbURldmljZS0+aXNfY29ubmVjdGVkKG1EZXZpY2UsIHBvcnRJZCkgPiAwOworfQorCisKK0lIZG1pQ2VjKiBISURMX0ZFVENIX0lIZG1pQ2VjKGNvbnN0IGNoYXIqIGhhbCkgeworICAgIGhkbWlfY2VjX2RldmljZV90KiBoZG1pX2NlY19kZXZpY2U7CisgICAgaW50IHJldCA9IDA7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3X21vZHVsZSA9IG51bGxwdHI7CisKKyAgICByZXQgPSBod19nZXRfbW9kdWxlIChIRE1JX0NFQ19IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXQgPSBoZG1pX2NlY19vcGVuIChod19tb2R1bGUsICZoZG1pX2NlY19kZXZpY2UpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwgImhkbWlfY2VjX29wZW4gIiA8PCBoYWwgPDwgIiBmYWlsZWQ6ICIgPDwgcmV0OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgTE9HKEVSUk9SKSA8PCAiaHdfZ2V0X21vZHVsZSAiIDw8IGhhbCA8PCAiIGZhaWxlZDogIiA8PCByZXQ7CisgICAgfQorCisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgSGRtaUNlYyhoZG1pX2NlY19kZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgIlBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgY2VjCit9ICAvLyBuYW1lc3BhY2UgdHYKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmggYi90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YTNiYjAKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5oCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RWX0NFQ19WMV8wX0hETUlDRUNfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1RWX0NFQ19WMV8wX0hETUlDRUNfSAorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hkbWlfY2VjLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgY2VjIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OkNlY0xvZ2ljYWxBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6Q2VjTWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6Ok1heExlbmd0aDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OkhkbWlQb3J0SW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWNDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6Ok9wdGlvbktleTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OlNlbmRNZXNzYWdlUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgSGRtaUNlYyA6IHB1YmxpYyBJSGRtaUNlYyB7CisgICAgSGRtaUNlYyhoZG1pX2NlY19kZXZpY2VfdCogZGV2aWNlKTsKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWMgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGFkZExvZ2ljYWxBZGRyZXNzKENlY0xvZ2ljYWxBZGRyZXNzIGFkZHIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xlYXJMb2dpY2FsQWRkcmVzcygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGh5c2ljYWxBZGRyZXNzKGdldFBoeXNpY2FsQWRkcmVzc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxTZW5kTWVzc2FnZVJlc3VsdD4gc2VuZE1lc3NhZ2UoY29uc3QgQ2VjTWVzc2FnZSYgbWVzc2FnZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJSGRtaUNlY0NhbGxiYWNrPiYgY2FsbGJhY2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48aW50MzJfdD4gZ2V0Q2VjVmVyc2lvbigpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFZlbmRvcklkKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQb3J0SW5mbyhnZXRQb3J0SW5mb19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRPcHRpb24oT3B0aW9uS2V5IGtleSwgYm9vbCB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRMYW5ndWFnZShjb25zdCBoaWRsX3N0cmluZyYgbGFuZ3VhZ2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5hYmxlQXVkaW9SZXR1cm5DaGFubmVsKGludDMyX3QgcG9ydElkLCBib29sIGVuYWJsZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpc0Nvbm5lY3RlZChpbnQzMl90IHBvcnRJZCkgIG92ZXJyaWRlOworCisgICAgc3RhdGljIHZvaWQgZXZlbnRDYWxsYmFjayhjb25zdCBoZG1pX2V2ZW50X3QqIGV2ZW50LCB2b2lkKiAvKiBhcmcgKi8pIHsKKyAgICAgICAgaWYgKG1DYWxsYmFjayAhPSBudWxscHRyICYmIGV2ZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC0+dHlwZSA9PSBIRE1JX0VWRU5UX0NFQ19NRVNTQUdFKSB7CisgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHN0ZDo6bWluKGV2ZW50LT5jZWMubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihNYXhMZW5ndGg6Ok1FU1NBR0VfQk9EWSkpOworICAgICAgICAgICAgICAgIENlY01lc3NhZ2UgY2VjTWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIC5pbml0aWF0b3IgPSBzdGF0aWNfY2FzdDxDZWNMb2dpY2FsQWRkcmVzcz4oZXZlbnQtPmNlYy5pbml0aWF0b3IpLAorICAgICAgICAgICAgICAgICAgICAuZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDxDZWNMb2dpY2FsQWRkcmVzcz4oZXZlbnQtPmNlYy5kZXN0aW5hdGlvbiksCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBjZWNNZXNzYWdlLmJvZHkucmVzaXplKGxlbmd0aCk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBjZWNNZXNzYWdlLmJvZHlbaV0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihldmVudC0+Y2VjLmJvZHlbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2stPm9uQ2VjTWVzc2FnZShjZWNNZXNzYWdlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUgPT0gSERNSV9FVkVOVF9IT1RfUExVRykgeworICAgICAgICAgICAgICAgIEhvdHBsdWdFdmVudCBob3RwbHVnRXZlbnQgeworICAgICAgICAgICAgICAgICAgICAuY29ubmVjdGVkID0gZXZlbnQtPmhvdHBsdWcuY29ubmVjdGVkID4gMCwKKyAgICAgICAgICAgICAgICAgICAgLnBvcnRJZCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihldmVudC0+aG90cGx1Zy5wb3J0X2lkKQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5vbkhvdHBsdWdFdmVudChob3RwbHVnRXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBzcDxJSGRtaUNlY0NhbGxiYWNrPiBtQ2FsbGJhY2s7CisgICAgY29uc3QgaGRtaV9jZWNfZGV2aWNlX3QqIG1EZXZpY2U7Cit9OworCitleHRlcm4gIkMiIElIZG1pQ2VjKiBISURMX0ZFVENIX0lIZG1pQ2VjKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgY2VjCit9ICAvLyBuYW1lc3BhY2UgdHYKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1RWX0NFQ19WMV8wX0hETUlDRUNfSApkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjIGIvdHYvY2VjLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljODAwOTQKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGNlYy1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3R2L2NlYy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGIxZjYyCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpJSGRtaUNlYzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUhkbWlDZWM+KCk7Cit9CmRpZmYgLS1naXQgYS90di9jZWMvMS4wL3R5cGVzLmhhbCBiL3R2L2NlYy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExODUzYTMKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOworCitlbnVtIE1heExlbmd0aCA6IGludDMyX3QgeworICAgIE1FU1NBR0VfQk9EWSA9IDE1LAorfTsKKworZW51bSBDZWNEZXZpY2VUeXBlIDogaW50MzJfdCB7CisgICAgSU5BQ1RJVkUgPSAtMSwKKyAgICBUViA9IDAsCisgICAgUkVDT1JERVIgPSAxLAorICAgIFRVTkVSID0gMywKKyAgICBQTEFZQkFDSyA9IDQsCisgICAgQVVESU9fU1lTVEVNID0gNSwKKyAgICBNQVggPSBBVURJT19TWVNURU0sCit9OworCitlbnVtIENlY0xvZ2ljYWxBZGRyZXNzIDogaW50MzJfdCB7CisgICAgVFYgPSAwLAorICAgIFJFQ09SREVSXzEgPSAxLAorICAgIFJFQ09SREVSXzIgPSAyLAorICAgIFRVTkVSXzEgPSAzLAorICAgIFBMQVlCQUNLXzEgPSA0LAorICAgIEFVRElPX1NZU1RFTSA9IDUsCisgICAgVFVORVJfMiA9IDYsCisgICAgVFVORVJfMyA9IDcsCisgICAgUExBWUJBQ0tfMiA9IDgsCisgICAgUkVDT1JERVJfMyA9IDksCisgICAgVFVORVJfNCA9IDEwLAorICAgIFBMQVlCQUNLXzMgPSAxMSwKKyAgICBGUkVFX1VTRSA9IDE0LAorICAgIFVOUkVHSVNURVJFRCA9IDE1LCAvLyBhcyBJbml0aWF0b3IgYWRkcmVzcworICAgIEJST0FEQ0FTVCA9IDE1LCAvLyBhcyBEZXN0aW5hdGlvbiBhZGRyZXNzCit9OworCisvKioKKyAqIEhETUkgQ0VDIG1lc3NhZ2UgdHlwZXMuIFRoZSBhc3NpZ25lZCB2YWx1ZXMgcmVwcmVzZW50IG9wY29kZSB1c2VkIGluIENFQworICogZnJhbWUgYXMgc3BlY2lmaWVkIGluIENFQyBUYWJsZSA4LTI2IG9mIHRoZSBDRUMgU3BlYyAxLjRiLgorICovCitlbnVtIENlY01lc3NhZ2VUeXBlIDogaW50MzJfdCB7CisgICAgRkVBVFVSRV9BQk9SVCA9IDB4MDAsCisgICAgSU1BR0VfVklFV19PTiA9IDB4MDQsCisgICAgVFVORVJfU1RFUF9JTkNSRU1FTlQgPSAweDA1LAorICAgIFRVTkVSX1NURVBfREVDUkVNRU5UID0gMHgwNiwKKyAgICBUVU5FUl9ERVZJQ0VfU1RBVFVTID0gMHgwNywKKyAgICBHSVZFX1RVTkVSX0RFVklDRV9TVEFUVVMgPSAweDA4LAorICAgIFJFQ09SRF9PTiA9IDB4MDksCisgICAgUkVDT1JEX1NUQVRVUyA9IDB4MEEsCisgICAgUkVDT1JEX09GRiA9IDB4MEIsCisgICAgVEVYVF9WSUVXX09OID0gMHgwRCwKKyAgICBSRUNPUkRfVFZfU0NSRUVOID0gMHgwRiwKKyAgICBHSVZFX0RFQ0tfU1RBVFVTID0gMHgxQSwKKyAgICBERUNLX1NUQVRVUyA9IDB4MUIsCisgICAgU0VUX01FTlVfTEFOR1VBR0UgPSAweDMyLAorICAgIENMRUFSX0FOQUxPR19USU1FUiA9IDB4MzMsCisgICAgU0VUX0FOQUxPR19USU1FUiA9IDB4MzQsCisgICAgVElNRVJfU1RBVFVTID0gMHgzNSwKKyAgICBTVEFOREJZID0gMHgzNiwKKyAgICBQTEFZID0gMHg0MSwKKyAgICBERUNLX0NPTlRST0wgPSAweDQyLAorICAgIFRJTUVSX0NMRUFSRURfU1RBVFVTID0gMHg0MywKKyAgICBVU0VSX0NPTlRST0xfUFJFU1NFRCA9IDB4NDQsCisgICAgVVNFUl9DT05UUk9MX1JFTEVBU0VEID0gMHg0NSwKKyAgICBHSVZFX09TRF9OQU1FID0gMHg0NiwKKyAgICBTRVRfT1NEX05BTUUgPSAweDQ3LAorICAgIFNFVF9PU0RfU1RSSU5HID0gMHg2NCwKKyAgICBTRVRfVElNRVJfUFJPR1JBTV9USVRMRSA9IDB4NjcsCisgICAgU1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCA9IDB4NzAsCisgICAgR0lWRV9BVURJT19TVEFUVVMgPSAweDcxLAorICAgIFNFVF9TWVNURU1fQVVESU9fTU9ERSA9IDB4NzIsCisgICAgUkVQT1JUX0FVRElPX1NUQVRVUyA9IDB4N0EsCisgICAgR0lWRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgPSAweDdELAorICAgIFNZU1RFTV9BVURJT19NT0RFX1NUQVRVUyA9IDB4N0UsCisgICAgUk9VVElOR19DSEFOR0UgPSAweDgwLAorICAgIFJPVVRJTkdfSU5GT1JNQVRJT04gPSAweDgxLAorICAgIEFDVElWRV9TT1VSQ0UgPSAweDgyLAorICAgIEdJVkVfUEhZU0lDQUxfQUREUkVTUyA9IDB4ODMsCisgICAgUkVQT1JUX1BIWVNJQ0FMX0FERFJFU1MgPSAweDg0LAorICAgIFJFUVVFU1RfQUNUSVZFX1NPVVJDRSA9IDB4ODUsCisgICAgU0VUX1NUUkVBTV9QQVRIID0gMHg4NiwKKyAgICBERVZJQ0VfVkVORE9SX0lEID0gMHg4NywKKyAgICBWRU5ET1JfQ09NTUFORCA9IDB4ODksCisgICAgVkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiA9IDB4OEEsCisgICAgVkVORE9SX1JFTU9URV9CVVRUT05fVVAgPSAweDhCLAorICAgIEdJVkVfREVWSUNFX1ZFTkRPUl9JRCA9IDB4OEMsCisgICAgTUVOVV9SRVFVRVNUID0gMHg4RCwKKyAgICBNRU5VX1NUQVRVUyA9IDB4OEUsCisgICAgR0lWRV9ERVZJQ0VfUE9XRVJfU1RBVFVTID0gMHg4RiwKKyAgICBSRVBPUlRfUE9XRVJfU1RBVFVTID0gMHg5MCwKKyAgICBHRVRfTUVOVV9MQU5HVUFHRSA9IDB4OTEsCisgICAgU0VMRUNUX0FOQUxPR19TRVJWSUNFID0gMHg5MiwKKyAgICBTRUxFQ1RfRElHSVRBTF9TRVJWSUNFID0gMHg5MywKKyAgICBTRVRfRElHSVRBTF9USU1FUiA9IDB4OTcsCisgICAgQ0xFQVJfRElHSVRBTF9USU1FUiA9IDB4OTksCisgICAgU0VUX0FVRElPX1JBVEUgPSAweDlBLAorICAgIElOQUNUSVZFX1NPVVJDRSA9IDB4OUQsCisgICAgQ0VDX1ZFUlNJT04gPSAweDlFLAorICAgIEdFVF9DRUNfVkVSU0lPTiA9IDB4OUYsCisgICAgVkVORE9SX0NPTU1BTkRfV0lUSF9JRCA9IDB4QTAsCisgICAgQ0xFQVJfRVhURVJOQUxfVElNRVIgPSAweEExLAorICAgIFNFVF9FWFRFUk5BTF9USU1FUiA9IDB4QTIsCisgICAgSU5JVElBVEVfQVJDID0gMHhDMCwKKyAgICBSRVBPUlRfQVJDX0lOSVRJQVRFRCA9IDB4QzEsCisgICAgUkVQT1JUX0FSQ19URVJNSU5BVEVEID0gMHhDMiwKKyAgICBSRVFVRVNUX0FSQ19JTklUSUFUSU9OID0gMHhDMywKKyAgICBSRVFVRVNUX0FSQ19URVJNSU5BVElPTiA9IDB4QzQsCisgICAgVEVSTUlOQVRFX0FSQyA9IDB4QzUsCisgICAgQUJPUlQgPSAweEZGLAorfTsKKworLyoqCisgKiBPcGVyYW5kIGRlc2NyaXB0aW9uIFtBYm9ydCBSZWFzb25dCisgKi8KK2VudW0gQWJvcnRSZWFzb24gOiBpbnQzMl90IHsKKyAgICBVTlJFQ09HTklaRURfTU9ERSA9IDAsCisgICAgTk9UX0lOX0NPUlJFQ1RfTU9ERSA9IDEsCisgICAgQ0FOTk9UX1BST1ZJREVfU09VUkNFID0gMiwKKyAgICBJTlZBTElEX09QRVJBTkQgPSAzLAorICAgIFJFRlVTRUQgPSA0LAorICAgIFVOQUJMRV9UT19ERVRFUk1JTkUgPSA1LAorfTsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKyAgICBGQUlMVVJFX1VOS05PV04gPSAxLAorICAgIEZBSUxVUkVfSU5WQUxJRF9BUkdTID0gMiwKKyAgICBGQUlMVVJFX0lOVkFMSURfU1RBVEUgPSAzLAorICAgIEZBSUxVUkVfTk9UX1NVUFBPUlRFRCA9IDQsCisgICAgRkFJTFVSRV9CVVNZID0gNSwKK307CisKKy8qKgorICogZXJyb3IgY29kZSB1c2VkIGZvciBzZW5kX21lc3NhZ2UuCisgKi8KK2VudW0gU2VuZE1lc3NhZ2VSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKyAgICBOQUNLID0gMSwgLy8gbm90IGFja25vd2xlZGdlZAorICAgIEJVU1kgPSAyLCAvLyBidXMgaXMgYnVzeQorICAgIEZBSUwgPSAzLAorfTsKKworLyoqCisgKiBIRE1JIHBvcnQgdHlwZS4KKyAqLworZW51bSBIZG1pUG9ydFR5cGUgOiBpbnQzMl90IHsKKyAgICBJTlBVVCA9IDAsCisgICAgT1VUUFVUID0gMSwKK307CisKKy8qKgorICogT3B0aW9ucyB1c2VkIGZvciBJSGRtaUNlYy5zZXRPcHRpb24oKQorICovCitlbnVtIE9wdGlvbktleSA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIFdoZW4gc2V0IHRvIGZhbHNlLCBIQUwgZG9lcyBub3Qgd2FrZSB1cCB0aGUgc3lzdGVtIHVwb24gcmVjZWl2aW5nIDxJbWFnZQorICAgICAqIFZpZXcgT24+IG9yIDxUZXh0IFZpZXcgT24+LiBVc2VkIHdoZW4gdXNlciBjaGFuZ2VzIHRoZSBUViBzZXR0aW5ncyB0bworICAgICAqIGRpc2FibGUgdGhlIGF1dG8gVFYgb24gZnVuY3Rpb25hbGl0eS4KKyAgICAgKiBUcnVlIGJ5IGRlZmF1bHQuCisgICAgICovCisgICAgV0FLRVVQID0gMSwKKworICAgIC8qKgorICAgICAqIFdoZW4gc2V0IHRvIGZhbHNlLCBhbGwgdGhlIENFQyBjb21tYW5kcyBhcmUgZGlzY2FyZGVkLiBVc2VkIHdoZW4gdXNlcgorICAgICAqIGNoYW5nZXMgdGhlIFRWIHNldHRpbmdzIHRvIGRpc2FibGUgQ0VDIGZ1bmN0aW9uYWxpdHkuCisgICAgICogVHJ1ZSBieSBkZWZhdWx0LgorICAgICAqLworICAgIEVOQUJMRV9DRUMgPSAyLAorCisgICAgLyoqCisgICAgICogU2V0dGluZyB0aGlzIGZsYWcgdG8gZmFsc2UgbWVhbnMgQW5kcm9pZCBzeXN0ZW0gbXVzdCBzdG9wIGhhbmRsaW5nIENFQworICAgICAqIHNlcnZpY2UgYW5kIHlpZWxkIHRoZSBjb250cm9sIG92ZXIgdG8gdGhlIG1pY3JvcHJvY2Vzc29yIHRoYXQgaXMgcG93ZXJlZAorICAgICAqIG9uIHRocm91Z2ggdGhlIHN0YW5kYnkgbW9kZS4gV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHN5c3RlbSBtdXN0IGdhaW4gdGhlCisgICAgICogY29udHJvbCBvdmVyLCBoZW5jZSB0ZWxsaW5nIHRoZSBtaWNyb3Byb2Nlc3NvciB0byBzdG9wIGhhbmRsaW5nIHRoZSBDRUMKKyAgICAgKiBjb21tYW5kcy4gRm9yIGV4YW1wbGUsIHRoaXMgbWF5IGJlIGNhbGxlZCB3aGVuIHN5c3RlbSBnb2VzIGluIGFuZCBvdXQgb2YKKyAgICAgKiBzdGFuZGJ5IG1vZGUgdG8gbm90aWZ5IHRoZSBtaWNyb3Byb2Nlc3NvciB0aGF0IGl0IHNob3VsZCBzdGFydC9zdG9wCisgICAgICogaGFuZGxpbmcgQ0VDIGNvbW1hbmRzIG9uIGJlaGFsZiBvZiB0aGUgc3lzdGVtLgorICAgICAqIEZhbHNlIGJ5IGRlZmF1bHQuCisgICAgICovCisgICAgU1lTVEVNX0NFQ19DT05UUk9MID0gMywKKworICAgIC8qKiBPcHRpb24gNCBub3QgdXNlZCAqLworfTsKKworc3RydWN0IENlY01lc3NhZ2UgeworICAgIC8qKiBsb2dpY2FsIGFkZHJlc3Mgb2Ygc2VuZGVyICovCisgICAgQ2VjTG9naWNhbEFkZHJlc3MgaW5pdGlhdG9yOworCisgICAgLyoqIGxvZ2ljYWwgYWRkcmVzcyBvZiByZWNlaXZlciAqLworICAgIENlY0xvZ2ljYWxBZGRyZXNzIGRlc3RpbmF0aW9uOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gc2l6ZSBvZiBib2R5IGlzIDE1IChNYXhMZW5ndGg6Ok1FU1NBR0VfQk9EWSkgYXMgc3BlY2lmaWVkIGluCisgICAgICogdGhlIHNlY3Rpb24gNiBvZiB0aGUgQ0VDIFNwZWMgMS40Yi4gT3ZlcmZsb3dlZCBkYXRhIG11c3QgYmUgaWdub3JlZC4gKi8KKyAgICB2ZWM8dWludDhfdD4gYm9keTsKK307CisKK3N0cnVjdCBIb3RwbHVnRXZlbnQgeworICAgIGJvb2wgY29ubmVjdGVkOworICAgIHVpbnQzMl90IHBvcnRJZDsKK307CisKKy8qKgorICogSERNSSBwb3J0IGRlc2NyaXB0b3IKKyAqLworc3RydWN0IEhkbWlQb3J0SW5mbyB7CisgICAgSGRtaVBvcnRUeXBlIHR5cGU7CisgICAgdWludDMyX3QgcG9ydElkOyAvLyBTaG91bGQgc3RhcnQgZnJvbSAxIHdoaWNoIGNvcnJlc3BvbmRzIHRvIEhETUkgInBvcnQgMSIuCisgICAgYm9vbCBjZWNTdXBwb3J0ZWQ7CisgICAgYm9vbCBhcmNTdXBwb3J0ZWQ7CisgICAgdWludDE2X3QgcGh5c2ljYWxBZGRyZXNzOworfTsKZGlmZiAtLWdpdCBhL3R2L2NlYy9BbmRyb2lkLm1rIGIvdHYvY2VjL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvQW5kcm9pZC5icCBiL3R2L2lucHV0LzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZjhjOTQKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcyIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklUdklucHV0LmhhbCIsCisgICAgICAgICJJVHZJbnB1dENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvVHZJbnB1dEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvVHZJbnB1dENhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSUh3VHZJbnB1dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JuSHdUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQnBId1R2SW5wdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9Cc1R2SW5wdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSUh3VHZJbnB1dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQm5Id1R2SW5wdXRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JwSHdUdklucHV0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9Cc1R2SW5wdXRDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9BbmRyb2lkLm1rIGIvdHYvaW5wdXQvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExY2Y3MAotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDEgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXQtVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVHZJbnB1dC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVHZJbnB1dENhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL0lUdklucHV0LmhhbCBiL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVhZmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oYWwKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA7CisKK2ltcG9ydCBJVHZJbnB1dENhbGxiYWNrOworCitpbnRlcmZhY2UgSVR2SW5wdXQgeworICAgIC8qKgorICAgICAqIFNldHMgYSBjYWxsYmFjayBmb3IgZXZlbnRzLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IGluaXRpYWxseSBubyBkZXZpY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBjbGllbnQgc2lkZSwgc28gdGhlCisgICAgICogaW1wbGVtZW50YXRpb24gbXVzdCBub3RpZnkgYWxsIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIGRldmljZXMgaW5jbHVkaW5nCisgICAgICogc3RhdGljIGRldmljZXMgdmlhIGNhbGxiYWNrIG9uY2UgY2FsbGJhY2sgaXMgc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIG9iamVjdCB0byBwYXNzIGV2ZW50cy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PXsiZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMifSkKKyAgICBzZXRDYWxsYmFjayhJVHZJbnB1dENhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIEdldHMgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGZvciBhIHNwZWNpZmljIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoZSBjb25maWdzIG9iamVjdCBpcyB2YWxpZCBvbmx5IHVudGlsIHRoZSBuZXh0CisgICAgICogU1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQgZXZlbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgRGV2aWNlIElEIGZvciB0aGUgY29uZmlndXJhdGlvbnMuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGUgZ2l2ZW4gZGV2aWNlIElEIGlzIG5vdCB2YWxpZC4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ3VyYXRpb25zIEFuIGFycmF5IG9mIGF2YWlsYWJsZSBjb25maWd1cmF0aW9ucy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17Im9wZW5TdHJlYW0iLCAiZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMiLCAiY2xvc2VTdHJlYW0ifSkKKyAgICBnZXRTdHJlYW1Db25maWd1cmF0aW9ucyhpbnQzMl90IGRldmljZUlkKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCB2ZWM8VHZTdHJlYW1Db25maWc+IGNvbmZpZ3VyYXRpb25zKTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGEgc3BlY2lmaWMgc3RyZWFtIGluIGEgZGV2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZUlkIERldmljZSBJRCBmb3IgdGhlIHN0ZWFtIHRvIG9wZW4uCisgICAgICogQHBhcmFtIHN0cmVhbUlkIFN0ZWFtIElEIGZvciB0aGUgc3RlYW0gdG8gb3Blbi4gTXVzdCBiZSBvbmUgb2YgdGhlCisgICAgICogICAgICAgICBzdHJlYW0gSURzIHJldHVybmVkIGZyb20gZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoKS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIGFueSBvZiBnaXZlbiBJRHMgYXJlIG5vdCB2YWxpZDsKKyAgICAgKiAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIHN0cmVhbSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBhbHJlYWR5IG9wZW47CisgICAgICogICAgICAgICBOT19SRVNPVVJDRSBpZiB0aGUgY2xpZW50IG11c3QgY2xvc2Ugb3RoZXIgc3RyZWFtcyB0byBvcGVuIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBzdHJlYW0uCisgICAgICogQHJldHVybiBzaWRlYmFuZFN0cmVhbSBoYW5kbGUgZm9yIHNpZGViYW5kIHN0cmVhbS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17ImNsb3NlU3RyZWFtIiwgImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIiwgIm9wZW5TdHJlYW0ifSkKKyAgICBvcGVuU3RyZWFtKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc3RyZWFtSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIGhhbmRsZSBzaWRlYmFuZFN0cmVhbSk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgYSBzcGVjaWZpYyBzdHJlYW0gaW4gYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgRGV2aWNlIElEIGZvciB0aGUgc3RlYW0gdG8gb3Blbi4KKyAgICAgKiBAcGFyYW0gc3RyZWFtSWQgU3RlYW0gSUQgZm9yIHRoZSBzdGVhbSB0byBvcGVuLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgYW55IG9mIGdpdmVuIElEcyBhcmUgbm90IHZhbGlkOworICAgICAqICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgc3RyZWFtIHdpdGggdGhlIGdpdmVuIElEIGlzIG5vdCBvcGVuLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMiLCAib3BlblN0cmVhbSIsICJjbG9zZVN0cmVhbSJ9KQorICAgIGNsb3NlU3RyZWFtKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc3RyZWFtSWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7Cit9OwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaGFsIGIvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkODhjNWIKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvSVR2SW5wdXRDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA7CisKK2ludGVyZmFjZSBJVHZJbnB1dENhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYW4gZXZlbnQgaGFzIG9jY3VyZWQuIEZvciBwb3NzaWJsZSBldmVudCB0eXBlcywKKyAgICAgKiBjaGVjayBUdklucHV0RXZlbnRUeXBlLgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IEV2ZW50IHBhc3NlZCB0byB0aGUgY2xpZW50LgorIMKgwqDCoMKgKi8KKyAgICBub3RpZnkoVHZJbnB1dEV2ZW50IGV2ZW50KTsKK307CmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTBkYTg2Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBUdklucHV0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmxvZyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZV9sZWdhY3kgXAorICAgIGxpYmhhcmR3YXJlIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKKwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5jcHAgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9UdklucHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWExZGVjCi0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5jcHAKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgIlR2SW5wdXQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgaW5wdXQgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX09USEVSX0hBUkRXQVJFID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6Ok9USEVSKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpPVEhFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9UVU5FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpUVU5FUiksCisgICAgICAgICJUdklucHV0VHlwZTo6VFVORVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfQ09NUE9TSVRFID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6OkNPTVBPU0lURSksCisgICAgICAgICJUdklucHV0VHlwZTo6Q09NUE9TSVRFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX1NWSURFTyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpTVklERU8pLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlNWSURFTyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9TQ0FSVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpTQ0FSVCksCisgICAgICAgICJUdklucHV0VHlwZTo6U0NBUlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfQ09NUE9ORU5UID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6OkNPTVBPTkVOVCksCisgICAgICAgICJUdklucHV0VHlwZTo6Q09NUE9ORU5UIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX1ZHQSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpWR0EpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlZHQSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9EVkkgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6RFZJKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpEVkkgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfSERNSSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpIRE1JKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpIRE1JIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0RJU1BMQVlfUE9SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpESVNQTEFZX1BPUlQpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OkRJU1BMQVlfUE9SVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9FVkVOVF9ERVZJQ0VfQVZBSUxBQkxFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9BVkFJTEFCTEUpLAorICAgICAgICAiVHZJbnB1dEV2ZW50VHlwZTo6REVWSUNFX0FWQUlMQUJMRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfRVZFTlRfREVWSUNFX1VOQVZBSUxBQkxFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9VTkFWQUlMQUJMRSksCisgICAgICAgICJUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfVU5BVkFJTEFCTEUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX0VWRU5UX1NUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIFR2SW5wdXRFdmVudFR5cGU6OlNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEKSwKKyAgICAgICAgIlR2SW5wdXRFdmVudFR5cGU6OlNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzcDxJVHZJbnB1dENhbGxiYWNrPiBUdklucHV0OjptQ2FsbGJhY2sgPSBudWxscHRyOworCitUdklucHV0OjpUdklucHV0KHR2X2lucHV0X2RldmljZV90KiBkZXZpY2UpIDogbURldmljZShkZXZpY2UpIHsKKyAgICBtQ2FsbGJhY2tPcHMubm90aWZ5ID0gJlR2SW5wdXQ6Om5vdGlmeTsKK30KKworVHZJbnB1dDo6flR2SW5wdXQoKSB7CisgICAgaWYgKG1EZXZpY2UgIT0gbnVsbHB0cikgeworICAgICAgICBmcmVlKG1EZXZpY2UpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2X2lucHV0OjpWMV8wOjpJVHZJbnB1dCBmb2xsb3cuCitSZXR1cm48dm9pZD4gVHZJbnB1dDo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SVR2SW5wdXRDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIGlmIChtQ2FsbGJhY2sgIT0gbnVsbHB0cikgeworICAgICAgICBtRGV2aWNlLT5pbml0aWFsaXplKG1EZXZpY2UsICZtQ2FsbGJhY2tPcHMsIG51bGxwdHIpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVHZJbnB1dDo6Z2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCwgZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnNfY2IgY2IpICB7CisgICAgaW50MzJfdCBjb25maWdDb3VudCA9IDA7CisgICAgY29uc3QgdHZfc3RyZWFtX2NvbmZpZ190KiBjb25maWdzID0gbnVsbHB0cjsKKyAgICBpbnQgcmV0ID0gbURldmljZS0+Z2V0X3N0cmVhbV9jb25maWd1cmF0aW9ucyhtRGV2aWNlLCBkZXZpY2VJZCwgJmNvbmZpZ0NvdW50LCAmY29uZmlncyk7CisgICAgUmVzdWx0IHJlcyA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gdHZTdHJlYW1Db25maWdzOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXMgPSBSZXN1bHQ6Ok9LOworICAgICAgICB0dlN0cmVhbUNvbmZpZ3MucmVzaXplKGdldFN1cHBvcnRlZENvbmZpZ0NvdW50KGNvbmZpZ0NvdW50LCBjb25maWdzKSk7CisgICAgICAgIGludDMyX3QgcG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgY29uZmlnQ291bnQ7ICsraSkgeworICAgICAgICAgICAgaWYgKGlzU3VwcG9ydGVkU3RyZWFtVHlwZShjb25maWdzW2ldLnR5cGUpKSB7CisgICAgICAgICAgICAgICAgdHZTdHJlYW1Db25maWdzW3Bvc10uc3RyZWFtSWQgPSBjb25maWdzW2ldLnN0cmVhbV9pZDsKKyAgICAgICAgICAgICAgICB0dlN0cmVhbUNvbmZpZ3NbcG9zXS5tYXhWaWRlb1dpZHRoID0gY29uZmlnc1tpXS5tYXhfdmlkZW9fd2lkdGg7CisgICAgICAgICAgICAgICAgdHZTdHJlYW1Db25maWdzW3Bvc10ubWF4VmlkZW9IZWlnaHQgPSBjb25maWdzW2ldLm1heF92aWRlb19oZWlnaHQ7CisgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUlOVkFMKSB7CisgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIGNiKHJlcywgdHZTdHJlYW1Db25maWdzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVHZJbnB1dDo6b3BlblN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkLCBvcGVuU3RyZWFtX2NiIGNiKSAgeworICAgIHR2X3N0cmVhbV90IHN0cmVhbTsKKyAgICBzdHJlYW0uc3RyZWFtX2lkID0gc3RyZWFtSWQ7CisgICAgaW50IHJldCA9IG1EZXZpY2UtPm9wZW5fc3RyZWFtKG1EZXZpY2UsIGRldmljZUlkLCAmc3RyZWFtKTsKKyAgICBSZXN1bHQgcmVzID0gUmVzdWx0OjpVTktOT1dOOworICAgIG5hdGl2ZV9oYW5kbGVfdCogc2lkZWJhbmRTdHJlYW0gPSBudWxscHRyOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICBpZiAoaXNTdXBwb3J0ZWRTdHJlYW1UeXBlKHN0cmVhbS50eXBlKSkgeworICAgICAgICAgICAgcmVzID0gUmVzdWx0OjpPSzsKKyAgICAgICAgICAgIHNpZGViYW5kU3RyZWFtID0gc3RyZWFtLnNpZGViYW5kX3N0cmVhbV9zb3VyY2VfaGFuZGxlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHJldCA9PSAtRUJVU1kpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6Tk9fUkVTT1VSQ0U7CisgICAgICAgIH0gZWxzZSBpZiAocmV0ID09IC1FRVhJU1QpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPT0gLUVJTlZBTCkgeworICAgICAgICAgICAgcmVzID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgfQorICAgIH0KKyAgICBjYihyZXMsIHNpZGViYW5kU3RyZWFtKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBUdklucHV0OjpjbG9zZVN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKSAgeworICAgIGludCByZXQgPSBtRGV2aWNlLT5jbG9zZV9zdHJlYW0obURldmljZSwgZGV2aWNlSWQsIHN0cmVhbUlkKTsKKyAgICBSZXN1bHQgcmVzID0gUmVzdWx0OjpVTktOT1dOOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXMgPSBSZXN1bHQ6Ok9LOworICAgIH0gZWxzZSBpZiAocmV0ID09IC1FTk9FTlQpIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0gZWxzZSBpZiAocmV0ID09IC1FSU5WQUwpIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKK30KKworLy8gc3RhdGljCit2b2lkIFR2SW5wdXQ6Om5vdGlmeShzdHJ1Y3QgdHZfaW5wdXRfZGV2aWNlKiBfX3VudXNlZCwgdHZfaW5wdXRfZXZlbnRfdCogZXZlbnQsCisgICAgICAgIHZvaWQqIF9fdW51c2VkKSB7CisgICAgaWYgKG1DYWxsYmFjayAhPSBudWxscHRyICYmIGV2ZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgLy8gQ2FwdHVyaW5nIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgICAgIGlmIChldmVudC0+dHlwZSA+PSBUVl9JTlBVVF9FVkVOVF9DQVBUVVJFX1NVQ0NFRURFRCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFR2SW5wdXRFdmVudCB0dklucHV0RXZlbnQ7CisgICAgICAgIHR2SW5wdXRFdmVudC50eXBlID0gc3RhdGljX2Nhc3Q8VHZJbnB1dEV2ZW50VHlwZT4oZXZlbnQtPnR5cGUpOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5kZXZpY2VJZCA9IGV2ZW50LT5kZXZpY2VfaW5mby5kZXZpY2VfaWQ7CisgICAgICAgIHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLnR5cGUgPSBzdGF0aWNfY2FzdDxUdklucHV0VHlwZT4oCisgICAgICAgICAgICAgICAgZXZlbnQtPmRldmljZV9pbmZvLnR5cGUpOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5wb3J0SWQgPSBldmVudC0+ZGV2aWNlX2luZm8uaGRtaS5wb3J0X2lkOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5jYWJsZUNvbm5lY3Rpb25TdGF0dXMgPSBDYWJsZUNvbm5lY3Rpb25TdGF0dXM6OlVOS05PV047CisgICAgICAgIC8vIFRPRE86IEVuc3VyZSB0aGUgbGVnYWN5IGF1ZGlvIHR5cGUgY29kZSBpcyB0aGUgc2FtZSBvbmNlIGF1ZGlvIEhBTCBkZWZhdWx0CisgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIGlzIHJlYWR5LgorICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5hdWRpb1R5cGUgPSBzdGF0aWNfY2FzdDxBdWRpb0RldmljZT4oCisgICAgICAgICAgICAgICAgZXZlbnQtPmRldmljZV9pbmZvLmF1ZGlvX3R5cGUpOworICAgICAgICBtZW1zZXQodHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzLmRhdGEoKSwgMCwKKyAgICAgICAgICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5hdWRpb0FkZHJlc3Muc2l6ZSgpKTsKKyAgICAgICAgY29uc3QgY2hhciogYWRkcmVzcyA9IGV2ZW50LT5kZXZpY2VfaW5mby5hdWRpb19hZGRyZXNzOworICAgICAgICBpZiAoYWRkcmVzcyAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IHN0cmxlbihhZGRyZXNzKTsKKyAgICAgICAgICAgIGlmIChzaXplID4gdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIExPRyhFUlJPUikgPDwgIkF1ZGlvIGFkZHJlc3MgaXMgdG9vIGxvbmcuIEFkZHJlc3M6IiA8PCBhZGRyZXNzIDw8ICIiOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzW2ldID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oZXZlbnQtPmRldmljZV9pbmZvLmF1ZGlvX2FkZHJlc3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1DYWxsYmFjay0+bm90aWZ5KHR2SW5wdXRFdmVudCk7CisgICAgfQorfQorCisvLyBzdGF0aWMKK3VpbnQzMl90IFR2SW5wdXQ6OmdldFN1cHBvcnRlZENvbmZpZ0NvdW50KHVpbnQzMl90IGNvbmZpZ0NvdW50LAorICAgICAgICBjb25zdCB0dl9zdHJlYW1fY29uZmlnX3QqIGNvbmZpZ3MpIHsKKyAgICB1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdDb3VudCA9IDA7CisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvbmZpZ0NvdW50OyArK2kpIHsKKyAgICAgICAgaWYgKGlzU3VwcG9ydGVkU3RyZWFtVHlwZShjb25maWdzW2ldLnR5cGUpKSB7CisgICAgICAgICAgICBzdXBwb3J0ZWRDb25maWdDb3VudCsrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdXBwb3J0ZWRDb25maWdDb3VudDsKK30KKworLy8gc3RhdGljCitib29sIFR2SW5wdXQ6OmlzU3VwcG9ydGVkU3RyZWFtVHlwZShpbnQgdHlwZSkgeworICAgIC8vIEJ1ZmZlciBwcm9kdWNlciB0eXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgcmV0dXJuIHR5cGUgIT0gVFZfU1RSRUFNX1RZUEVfQlVGRkVSX1BST0RVQ0VSOworfQorCitJVHZJbnB1dCogSElETF9GRVRDSF9JVHZJbnB1dChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgaW50IHJldCA9IDA7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3X21vZHVsZSA9IG51bGxwdHI7CisgICAgdHZfaW5wdXRfZGV2aWNlX3QqIGlucHV0X2RldmljZTsKKyAgICByZXQgPSBod19nZXRfbW9kdWxlKFRWX0lOUFVUX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwICYmIGh3X21vZHVsZS0+bWV0aG9kcy0+b3BlbiAhPSBudWxscHRyKSB7CisgICAgICAgIHJldCA9IGh3X21vZHVsZS0+bWV0aG9kcy0+b3Blbihod19tb2R1bGUsIFRWX0lOUFVUX0RFRkFVTFRfREVWSUNFLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJmlucHV0X2RldmljZSkpOworICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVHZJbnB1dChpbnB1dF9kZXZpY2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgTE9HKEVSUk9SKSA8PCAiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIGxvYWQgbGVnYWN5IEhBTC4iOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgImh3X2dldF9tb2R1bGUgIiA8PCBUVl9JTlBVVF9IQVJEV0FSRV9NT0RVTEVfSUQKKyAgICAgICAgICAgICAgICAgICA8PCAiIGZhaWxlZDogIiA8PCByZXQ7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGlucHV0Cit9ICAvLyBuYW1lc3BhY2UgdHYKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuaCBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWI2OWY1Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RWX0lOUFVUX1YxXzBfVFZJTlBVVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVFZfSU5QVVRfVjFfMF9UVklOUFVUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS90dl9pbnB1dC5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgaW5wdXQgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpJVHZJbnB1dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2SW5wdXRFdmVudDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZTdHJlYW1Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBUdklucHV0IDogcHVibGljIElUdklucHV0IHsKKyAgICBUdklucHV0KHR2X2lucHV0X2RldmljZV90KiBkZXZpY2UpOworICAgIH5UdklucHV0KCk7CisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElUdklucHV0Q2FsbGJhY2s+JiBjYWxsYmFjaykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdHJlYW1Db25maWd1cmF0aW9ucyhpbnQzMl90IGRldmljZUlkLAorICAgICAgICAgICAgZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3BlblN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkLAorICAgICAgICAgICAgb3BlblN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlU3RyZWFtKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc3RyZWFtSWQpICBvdmVycmlkZTsKKworICAgIHN0YXRpYyB2b2lkIG5vdGlmeShzdHJ1Y3QgdHZfaW5wdXRfZGV2aWNlKiBfX3VudXNlZCwgdHZfaW5wdXRfZXZlbnRfdCogZXZlbnQsCisgICAgICAgICAgICB2b2lkKiBfX3VudXNlZCk7CisgICAgc3RhdGljIHVpbnQzMl90IGdldFN1cHBvcnRlZENvbmZpZ0NvdW50KHVpbnQzMl90IGNvbmZpZ0NvdW50LAorICAgICAgICAgICAgY29uc3QgdHZfc3RyZWFtX2NvbmZpZ190KiBjb25maWdzKTsKKyAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFN0cmVhbVR5cGUoaW50IHR5cGUpOworCisgICAgcHJpdmF0ZToKKyAgICBzdGF0aWMgc3A8SVR2SW5wdXRDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHR2X2lucHV0X2NhbGxiYWNrX29wc190IG1DYWxsYmFja09wczsKKyAgICB0dl9pbnB1dF9kZXZpY2VfdCogbURldmljZTsKK307CisKK2V4dGVybiAiQyIgSVR2SW5wdXQqIEhJRExfRkVUQ0hfSVR2SW5wdXQoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBpbnB1dAorfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9UVl9JTlBVVF9WMV8wX1RWSU5QVVRfSApkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAtc2VydmljZS5yYyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM2OTA3YwotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHR2LWlucHV0LTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkwNGQwYgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudHZfaW5wdXRAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oPgorCisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OnNwOworCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6SVR2SW5wdXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElUdklucHV0PigpOworfQpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL3R5cGVzLmhhbCBiL3R2L2lucHV0LzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVkZDZjMAotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworCitlbnVtIFJlc3VsdCA6IGludDMyX3QgeworICAgIE9LLAorICAgIFVOS05PV04sCisgICAgTk9fUkVTT1VSQ0UsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKK307CisKKy8qKiBUeXBlIG9mIHBoeXNpY2FsIFRWIGlucHV0LiAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IlRWX0lOUFVUX1RZUEVfIikKK2VudW0gVHZJbnB1dFR5cGUgOiBpbnQzMl90IHsKKyAgICBPVEhFUiA9IDEsICAgICAgICAgLy8gR2VuZXJpYyBoYXJkd2FyZS4KKyAgICBUVU5FUiA9IDIsICAgICAgICAgLy8gVHVuZXIuIGUuZy4gYnVpbHQtaW4gdGVycmVzdHJpYWwgdHVuZXIKKyAgICBDT01QT1NJVEUgPSAzLAorICAgIFNWSURFTyA9IDQsCisgICAgU0NBUlQgPSA1LAorICAgIENPTVBPTkVOVCA9IDYsCisgICAgVkdBID0gNywKKyAgICBEVkkgPSA4LAorICAgIEhETUkgPSA5LCAgICAgICAgICAvLyBQaHlzaWNhbCBIRE1JIHBvcnQuIGUuZy4gSERNSSAxCisgICAgRElTUExBWV9QT1JUID0gMTAsCit9OworCisvKioKKyAqIFN0YXR1cyBvZiBjYWJsZSBjb25uZWN0aW9uLgorICogVGhpcyBzdGF0dXMgaXMgZm9yIGRldmljZXMgaGF2aW5nIGF2YWlsYWJpbGl0eSB0byBkZXRlY3QgdGhlIGNhYmxlIGluIGEgbWVjaGFuaWNhbCB3YXksCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGNvbm5lY3RlZCBleHRlcm5hbCBkZXZpY2UgaXMgZWxlY3RyaWNhbGx5IG9uIG9yIG5vdC4KKyAqIElmIHRoZSBkZXZpY2UgZG9lcyBub3QgaGF2ZSBzdWNoIGNhcGFiaWxpdHksIHlvdSBtdXN0IHVzZSBVTktOT1dOLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQ0FCTEVfQ09OTkVDVElPTl9TVEFUVVNfIikKK2VudW0gQ2FibGVDb25uZWN0aW9uU3RhdHVzIDogaW50MzJfdCB7CisgICAgVU5LTk9XTiA9IDAsCisgICAgQ09OTkVDVEVEID0gMSwKKyAgICBESVNDT05ORUNURUQgPSAyLAorfTsKKworc3RydWN0IFR2SW5wdXREZXZpY2VJbmZvIHsKKyAgICBpbnQzMl90IGRldmljZUlkOworICAgIFR2SW5wdXRUeXBlIHR5cGU7CisgICAgdWludDMyX3QgcG9ydElkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSERNSSBwb3J0IElEIG51bWJlci4gZS5nLiAyIGZvciBIRE1JIDIKKyAgICBDYWJsZUNvbm5lY3Rpb25TdGF0dXMgY2FibGVDb25uZWN0aW9uU3RhdHVzOyAvLyBDYWJsZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAgICBBdWRpb0RldmljZSBhdWRpb1R5cGU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBBdWRpbyBkZXZpY2UgdHlwZS4gZS5nIEF1ZGlvRGV2aWNlOjpJTl9IRE1JCisgICAgdWludDhfdFszMl0gYXVkaW9BZGRyZXNzOyAgICAgICAgICAgICAgICAgICAgLy8gQXVkaW8gZGV2aWNlIGFkZHJlc3MuICIiIGlmIE4vQS4gSWYgdGhlIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZW5ndGggaXMgbGVzcyB0aGFuIDMyLCB0aGUgcmVtYWluaW5nIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGJlIGZpbGxlZCB3aXRoIDBzLgorfTsKKworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkVWRU5UXyIpCitlbnVtIFR2SW5wdXRFdmVudFR5cGUgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBIYXJkd2FyZSBub3RpZmllcyB0aGUgZnJhbWV3b3JrIHRoYXQgYSBkZXZpY2UgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IERFVklDRV9BVkFJTEFCTEUgYW5kIERFVklDRV9VTkFWQUlMQUJMRSBldmVudHMgZG8gbm90IHJlcHJlc2VudAorICAgICAqIGhvdHBsdWcgZXZlbnRzIChpLmUuIHBsdWdnaW5nIGNhYmxlIGludG8gb3Igb3V0IG9mIHRoZSBwaHlzaWNhbCBwb3J0KS4KKyAgICAgKiBUaGVzZSBldmVudHMgbm90aWZ5IHRoZSBmcmFtZXdvcmsgd2hldGhlciB0aGUgcG9ydCBpcyBhdmFpbGFibGUgb3Igbm90LgorICAgICAqIEZvciBhIGNvbmNyZXRlIGV4YW1wbGUsIHdoZW4gYSB1c2VyIHBsdWdzIGluIG9yIHB1bGxzIG91dCB0aGUgSERNSSBjYWJsZQorICAgICAqIGZyb20gYSBIRE1JIHBvcnQsIGl0IGRvZXMgbm90IGdlbmVyYXRlIERFVklDRV9BVkFJTEFCTEUgYW5kL29yCisgICAgICogREVWSUNFX1VOQVZBSUxBQkxFIGV2ZW50cy4gSG93ZXZlciwgaWYgYSB1c2VyIGluc2VydHMgYSBwbHVnZ2FibGUgVVNCCisgICAgICogdHVuZXIgaW50byB0aGUgQW5kcm9pZCBkZXZpY2UsIGl0IG11c3QgZ2VuZXJhdGUgYSBERVZJQ0VfQVZBSUxBQkxFIGV2ZW50CisgICAgICogYW5kIHdoZW4gdGhlIHBvcnQgaXMgcmVtb3ZlZCwgaXQgbXVzdCBnZW5lcmF0ZSBhIERFVklDRV9VTkFWQUlMQUJMRQorICAgICAqIGV2ZW50LgorICAgICAqCisgICAgICogRm9yIGhvdHBsdWcgZXZlbnRzLCBwbGVhc2Ugc2VlIFNUUkVBTV9DT05GSUdVUkFUSU9OX0NIQU5HRUQgZm9yIG1vcmUKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogSEFMIGltcGxlbWVudGF0aW9uIG11c3QgcmVnaXN0ZXIgZGV2aWNlcyBieSB1c2luZyB0aGlzIGV2ZW50IHdoZW4gdGhlCisgICAgICogZGV2aWNlIGJvb3RzIHVwLiBUaGUgZnJhbWV3b3JrIG11c3QgcmVjb2duaXplIGRldmljZSByZXBvcnRlZCB2aWEgdGhpcworICAgICAqIGV2ZW50IG9ubHkuCisgICAgICovCisgICAgREVWSUNFX0FWQUlMQUJMRSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBIYXJkd2FyZSBub3RpZmllcyB0aGUgZnJhbWV3b3JrIHRoYXQgYSBkZXZpY2UgaXMgdW5hdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCBnZW5lcmF0ZSB0aGlzIGV2ZW50IHdoZW4gYSBkZXZpY2UgcmVnaXN0ZXJlZAorICAgICAqIGJ5IERFVklDRV9BVkFJTEFCTEUgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZS4gRm9yIGV4YW1wbGUsCisgICAgICogdGhlIGV2ZW50IGNhbiBpbmRpY2F0ZSB0aGF0IGEgVVNCIHR1bmVyIGlzIHBsdWdnZWQgb3V0IGZyb20gdGhlIEFuZHJvaWQKKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBldmVudCBpcyBub3QgZm9yIGluZGljYXRpbmcgY2FibGUgcGx1Z2dlZCBvdXQgb2YgdGhlIHBvcnQ7CisgICAgICogZm9yIHRoYXQgcHVycG9zZSwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdXNlCisgICAgICogU1RSRUFNX0NPTkZJR1VSQVRJT05fQ0hBTkdFRCBldmVudC4gVGhpcyBldmVudCByZXByZXNlbnRzIHRoZSBwb3J0IGl0c2VsZgorICAgICAqIGJlaW5nIG5vIGxvbmdlciBhdmFpbGFibGUuCisgICAgICovCisgICAgREVWSUNFX1VOQVZBSUxBQkxFID0gMiwKKworICAgIC8qKgorICAgICAqIFN0cmVhbSBjb25maWd1cmF0aW9ucyBhcmUgY2hhbmdlZC4gQ2xpZW50IG11c3QgcmVnYXJkIGFsbCBvcGVuIHN0cmVhbXMKKyAgICAgKiBhdCB0aGUgc3BlY2lmaWMgZGV2aWNlIGFyZSBjbG9zZWQsIGFuZCBtdXN0IGNhbGwKKyAgICAgKiBnZXRTdHJlYW1Db25maWd1cmF0aW9ucygpIGFnYWluLCBvcGVuaW5nIHNvbWUgb2YgdGhlbSBpZiBuZWNlc3NhcnkuCisgICAgICoKKyAgICAgKiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCBnZW5lcmF0ZSB0aGlzIGV2ZW50IHdoZW4gdGhlIGF2YWlsYWJsZSBzdHJlYW0KKyAgICAgKiBjb25maWd1cmF0aW9ucyBjaGFuZ2UgZm9yIGFueSByZWFzb24uIEEgdHlwaWNhbCB1c2UgY2FzZSBvZiB0aGlzIGV2ZW50CisgICAgICogaXMgdG8gbm90aWZ5IHRoZSBmcmFtZXdvcmsgdGhhdCB0aGUgaW5wdXQgc2lnbmFsIGhhcyBjaGFuZ2VkIHJlc29sdXRpb24sCisgICAgICogb3IgdGhhdCB0aGUgY2FibGUgaXMgcGx1Z2dlZCBvdXQgc28gdGhhdCB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzdHJlYW1zCisgICAgICogaXMgMC4KKyAgICAgKgorICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHVzZSB0aGlzIGV2ZW50IHRvIGluZGljYXRlIGhvdHBsdWcgc3RhdHVzIG9mIHRoZQorICAgICAqIHBvcnQuIHRoZSBmcmFtZXdvcmsgcmVnYXJkcyBpbnB1dCBkZXZpY2VzIHdpdGggbm8gYXZhaWxhYmxlIHN0cmVhbXMgYXMKKyAgICAgKiBkaXNjb25uZWN0ZWQsIHNvIHRoZSBpbXBsZW1lbnRhdGlvbiBjYW4gZ2VuZXJhdGUgdGhpcyBldmVudCB3aXRoIG5vCisgICAgICogYXZhaWxhYmxlIHN0cmVhbXMgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIGRldmljZSBpcyBkaXNjb25uZWN0ZWQsIGFuZCB2aWNlCisgICAgICogdmVyc2EuCisgICAgICovCisgICAgU1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQgPSAzLAorfTsKKworc3RydWN0IFR2SW5wdXRFdmVudCB7CisgICAgVHZJbnB1dEV2ZW50VHlwZSB0eXBlOworICAgIC8qKgorICAgICAqIERFVklDRV9BVkFJTEFCTEU6IGFsbCBmaWVsZHMgYXJlIHJlbGV2YW50LgorICAgICAqIERFVklDRV9VTkFWQUlMQUJMRTogb25seSBkZXZpY2VJZCBpcyByZWxldmFudC4KKyAgICAgKiBTVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRDogb25seSBkZXZpY2VJZCBpcyByZWxldmFudC4KKyAgICAgKi8KKyAgICBUdklucHV0RGV2aWNlSW5mbyBkZXZpY2VJbmZvOworfTsKKworc3RydWN0IFR2U3RyZWFtQ29uZmlnIHsKKyAgICBpbnQzMl90IHN0cmVhbUlkOworICAgIHVpbnQzMl90IG1heFZpZGVvV2lkdGg7ICAvLyBNYXggd2lkdGggb2YgdGhlIHN0cmVhbS4KKyAgICB1aW50MzJfdCBtYXhWaWRlb0hlaWdodDsgLy8gTWF4IGhlaWdodCBvZiB0aGUgc3RyZWFtLgorfTsKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdHYvaW5wdXQvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg2MjQyOQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFR2SW5wdXRWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CisKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwIGIvdHYvaW5wdXQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFR2SW5wdXRWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ1MTEwZQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMzYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJ0dl9pbnB1dF9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSVR2SW5wdXRDYWxsYmFjay5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6SVR2SW5wdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZJbnB1dFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2SW5wdXREZXZpY2VJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RXZlbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2U3RyZWFtQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBXQUlUX0ZPUl9FVkVOVF9USU1FT1VUIDUKKyNkZWZpbmUgREVGQVVMVF9JRCBJTlQzMl9NSU4KKworLyogVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgVFYgSW5wdXQgSElETCBIQUwuICovCitjbGFzcyBUdklucHV0SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHR2X2lucHV0XyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElUdklucHV0PigpOworICAgIEFTU0VSVF9ORSh0dl9pbnB1dF8sIG51bGxwdHIpOworICAgIHR2X2lucHV0X2NhbGxiYWNrXyA9IG5ldyBUdklucHV0Q2FsbGJhY2soKnRoaXMpOworICAgIEFTU0VSVF9ORSh0dl9pbnB1dF9jYWxsYmFja18sIG51bGxwdHIpOworICAgIHR2X2lucHV0Xy0+c2V0Q2FsbGJhY2sodHZfaW5wdXRfY2FsbGJhY2tfKTsKKyAgICAvLyBBbGwgZXZlbnRzIHJlY2VpdmVkIHdpdGhpbiB0aGUgdGltZW91dCBzaG91bGQgYmUgaGFuZGxlZC4KKyAgICBzbGVlcChXQUlUX0ZPUl9FVkVOVF9USU1FT1VUKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgLyogQ2FsbGVkIHdoZW4gYSBERVZJQ0VfQVZBSUxBQkxFIGV2ZW50IGlzIHJlY2VpdmVkLiAqLworICB2b2lkIG9uRGV2aWNlQXZhaWxhYmxlKGNvbnN0IFR2SW5wdXREZXZpY2VJbmZvJiBkZXZpY2VJbmZvKSB7CisgICAgZGV2aWNlX2luZm9fLmFkZChkZXZpY2VJbmZvLmRldmljZUlkLCBkZXZpY2VJbmZvKTsKKyAgfQorCisgIC8qIENhbGxlZCB3aGVuIGEgREVWSUNFX1VOQVZBSUxBQkxFIGV2ZW50IGlzIHJlY2VpdmVkLiAqLworICB2b2lkIG9uRGV2aWNlVW5hdmFpbGFibGUoaW50MzJfdCBkZXZpY2VJZCkgeworICAgIGRldmljZV9pbmZvXy5yZW1vdmVJdGVtKGRldmljZUlkKTsKKyAgfQorCisgIC8qIENhbGxlZCB3aGVuIGEgREVWSUNFX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQgZXZlbnQgaXMgcmVjZWl2ZWQuICovCisgIFJlc3VsdCBvblN0cmVhbUNvbmZpZ3VyYXRpb25zQ2hhbmdlZChpbnQzMl90IGRldmljZUlkKSB7CisgICAgcmV0dXJuIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKGRldmljZUlkKTsKKyAgfQorCisgIC8qIEdldHMgYW5kIHVwZGF0ZXMgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBmb3IgYSBkZXZpY2UuICovCisgIFJlc3VsdCB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhpbnQzMl90IGRldmljZUlkKSB7CisgICAgc3RyZWFtX2NvbmZpZ18ucmVtb3ZlSXRlbShkZXZpY2VJZCk7CisgICAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gbGlzdDsKKyAgICB0dl9pbnB1dF8tPmdldFN0cmVhbUNvbmZpZ3VyYXRpb25zKGRldmljZUlkLAorICAgICAgICBbJnJlc3VsdCwgJmxpc3RdKFJlc3VsdCByZXMsIGhpZGxfdmVjPFR2U3RyZWFtQ29uZmlnPiBjb25maWdzKSB7CisgICAgICAgICAgcmVzdWx0ID0gcmVzOworICAgICAgICAgIGlmIChyZXMgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgbGlzdCA9IGNvbmZpZ3M7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgIHN0cmVhbV9jb25maWdfLmFkZChkZXZpY2VJZCwgbGlzdCk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgIH0KKworICAvKiBHZXRzIGFuZCB1cGRhdGVzIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgZm9yIGFsbCBleGlzdGluZyBkZXZpY2VzLiAqLworICB2b2lkIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2aWNlX2luZm9fLnNpemUoKTsgaSsrKSB7CisgICAgICBpbnQzMl90IGRldmljZV9pZCA9IGRldmljZV9pbmZvXy5rZXlBdChpKTsKKyAgICAgIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKGRldmljZV9pZCk7CisgICAgfQorICB9CisKKyAgLyogUmV0dXJucyBhIGxpc3Qgb2YgaW5kaWNlcyBvZiBzdHJlYW1fY29uZmlnXyB3aG9zZSBjb3JyZXNwb25kaW5nIHZhbHVlcyBhcmUgbm90IGVtcHR5LiAqLworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IGdldENvbmZpZ0luZGljZXMoKSB7CisgICAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBpbmRpY2VzOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyZWFtX2NvbmZpZ18uc2l6ZSgpOyBpKyspIHsKKyAgICAgIGlmIChzdHJlYW1fY29uZmlnXy52YWx1ZUF0KGkpLnNpemUoKSAhPSAwKSB7CisgICAgICAgIGluZGljZXMucHVzaF9iYWNrKGkpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gaW5kaWNlczsKKyAgfQorCisgIC8qCisgICAqIFJldHVybnMgREVGQVVMVF9JRCBpZiB0aGVyZSBpcyBubyBtaXNzaW5nIGludGVnZXIgaW4gdGhlIHJhbmdlIFswLCB0aGUgc2l6ZSBvZiBudW1zKS4KKyAgICogT3RoZXJ3aXNlLCByZXR1cm5zIHRoZSBzbWFsbGVzdCBtaXNzaW5nIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLgorICAgKi8KKyAgaW50MzJfdCBnZXROdW1Ob3RJbihzdGQ6OnZlY3RvcjxpbnQzMl90PiYgbnVtcykgeworICAgIGludDMyX3QgcmVzdWx0ID0gREVGQVVMVF9JRDsKKyAgICBpbnQzMl90IHNpemUgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihudW1zLnNpemUoKSk7CisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAvLyBQdXQgZXZlcnkgZWxlbWVudCB0byBpdHMgdGFyZ2V0IHBvc2l0aW9uLCBpZiBwb3NzaWJsZS4KKyAgICAgIGludDMyX3QgdGFyZ2V0X3BvcyA9IG51bXNbaV07CisgICAgICB3aGlsZSAodGFyZ2V0X3BvcyA+PSAwICYmIHRhcmdldF9wb3MgPCBzaXplICYmIGkgIT0gdGFyZ2V0X3BvcyAmJiBudW1zW2ldICE9IG51bXNbdGFyZ2V0X3Bvc10pIHsKKyAgICAgICAgc3RkOjpzd2FwKG51bXNbaV0sIG51bXNbdGFyZ2V0X3Bvc10pOworICAgICAgICB0YXJnZXRfcG9zID0gbnVtc1tpXTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgIGlmIChudW1zW2ldICE9IGkpIHsKKyAgICAgICAgcmV0dXJuIGk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgIH0KKworICAvKiBBIHNpbXBsZSB0ZXN0IGltcGxlbWVudGF0aW9uIG9mIFR2SW5wdXRDYWxsYmFjayBmb3IgVFYgSW5wdXQgRXZlbnRzLiAqLworICBjbGFzcyBUdklucHV0Q2FsbGJhY2sgOiBwdWJsaWMgSVR2SW5wdXRDYWxsYmFjayB7CisgICAgcHVibGljOgorICAgICBUdklucHV0Q2FsbGJhY2soVHZJbnB1dEhpZGxUZXN0JiBwYXJlbnQpIDogcGFyZW50XyhwYXJlbnQpe307CisKKyAgICAgdmlydHVhbCB+VHZJbnB1dENhbGxiYWNrKCkgPSBkZWZhdWx0OworCisgICAgIC8qCisgICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCBhbiBldmVudCBoYXMgb2NjdXJlZC4gRm9yIHBvc3NpYmxlIGV2ZW50IHR5cGVzLAorICAgICAgKiBjaGVjayBUdklucHV0RXZlbnRUeXBlLgorIMKgwqDCoMKgICovCisgICAgIFJldHVybjx2b2lkPiBub3RpZnkoY29uc3QgVHZJbnB1dEV2ZW50JiBldmVudCkgb3ZlcnJpZGUgeworICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhwYXJlbnRfLm11dGV4Xyk7CisgICAgICAgc3dpdGNoKGV2ZW50LnR5cGUpIHsKKyAgICAgICAgIGNhc2UgVHZJbnB1dEV2ZW50VHlwZTo6REVWSUNFX0FWQUlMQUJMRToKKyAgICAgICAgICAgcGFyZW50Xy5vbkRldmljZUF2YWlsYWJsZShldmVudC5kZXZpY2VJbmZvKTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9VTkFWQUlMQUJMRToKKyAgICAgICAgICAgcGFyZW50Xy5vbkRldmljZVVuYXZhaWxhYmxlKGV2ZW50LmRldmljZUluZm8uZGV2aWNlSWQpOworICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVHZJbnB1dEV2ZW50VHlwZTo6U1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQ6CisgICAgICAgICAgIHBhcmVudF8ub25TdHJlYW1Db25maWd1cmF0aW9uc0NoYW5nZWQoZXZlbnQuZGV2aWNlSW5mby5kZXZpY2VJZCk7CisgICAgICAgICAgIGJyZWFrOworICAgICAgIH0KKyAgICAgICByZXR1cm4gVm9pZCgpOworICAgICB9OworICAgIHByaXZhdGU6CisgICAgIC8qIFRoZSB0ZXN0IGNvbnRhaW5zIHRoaXMgY2FsbGJhY2sgaW5zdGFuY2UuICovCisgICAgIFR2SW5wdXRIaWRsVGVzdCYgcGFyZW50XzsKKyAgfTsKKworICAvKiBUaGUgVHZJbnB1dCB1c2VkIGZvciB0aGUgdGVzdC4gKi8KKyAgc3A8SVR2SW5wdXQ+IHR2X2lucHV0XzsKKworICAvKiBUaGUgVHZJbnB1dENhbGxiYWNrIHVzZWQgZm9yIHRoZSB0ZXN0LiAqLworICBzcDxJVHZJbnB1dENhbGxiYWNrPiB0dl9pbnB1dF9jYWxsYmFja187CisKKyAgLyoKKyAgICogQSBLZXllZFZlY3RvciBzdG9yZXMgZGV2aWNlIGluZm9ybWF0aW9uIG9mIGV2ZXJ5IGF2YWlsYWJsZSBkZXZpY2UuCisgICAqIEEga2V5IGlzIGEgZGV2aWNlIElEIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyB0aGUgVHZJbnB1dERldmljZUluZm8uCisgICAqLworICBhbmRyb2lkOjpLZXllZFZlY3RvcjxpbnQzMl90LCBUdklucHV0RGV2aWNlSW5mbz4gZGV2aWNlX2luZm9fOworCisgIC8qCisgICAqIEEgS2V5ZWRWZWN0b3Igc3RvcmVzIGEgbGlzdCBvZiBzdHJlYW0gY29uZmlndXJhdGlvbnMgb2YgZXZlcnkgYXZhaWxhYmxlIGRldmljZS4KKyAgICogQSBrZXkgaXMgYSBkZXZpY2UgSUQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbiBsaXN0LgorICAgKi8KKyAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8aW50MzJfdCwgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+PiBzdHJlYW1fY29uZmlnXzsKKworICAvKiBUaGUgbXV0ZXggY29udHJvbHMgdGhlIGFjY2VzcyBvZiBzaGFyZWQgZGF0YS4gKi8KKyAgc3RkOjptdXRleCBtdXRleF87Cit9OworCisKKy8qIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAuICovCitjbGFzcyBUdklucHV0SGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworIHByaXZhdGU6Cit9OworCisvKgorICogR2V0U3RyZWFtQ29uZmlnVGVzdDoKKyAqIENhbGxzIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKCkgZm9yIGVhY2ggZXhpc3RpbmcgZGV2aWNlCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBHZXRTdHJlYW1Db25maWdUZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZV9pbmZvXy5zaXplKCk7IGkrKykgeworICAgIGludDMyX3QgZGV2aWNlX2lkID0gZGV2aWNlX2luZm9fLmtleUF0KGkpOworICAgIFJlc3VsdCByZXN1bHQgPSB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VfaWQpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXN1bHQpOworICB9Cit9CisKKy8qCisgKiBPcGVuQW5kQ2xvc2VTdHJlYW1UZXN0OgorICogQ2FsbHMgb3BlblN0cmVhbSgpIGFuZCB0aGVuIGNsb3NlU3RyZWFtKCkgZm9yIGVhY2ggZXhpc3Rpbmcgc3RyZWFtCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBPcGVuQW5kQ2xvc2VTdHJlYW1UZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworICB1cGRhdGVBbGxTdHJlYW1Db25maWd1cmF0aW9ucygpOworICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHN0cmVhbV9jb25maWdfLnNpemUoKTsgaisrKSB7CisgICAgaW50MzJfdCBkZXZpY2VfaWQgPSBzdHJlYW1fY29uZmlnXy5rZXlBdChqKTsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gY29uZmlnID0gc3RyZWFtX2NvbmZpZ18udmFsdWVBdChqKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZy5zaXplKCk7IGkrKykgeworICAgICAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICAgIGludDMyX3Qgc3RyZWFtX2lkID0gY29uZmlnW2ldLnN0cmVhbUlkOworICAgICAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkLAorICAgICAgICAgIFsmcmVzdWx0XShSZXN1bHQgcmVzLCBjb25zdCBuYXRpdmVfaGFuZGxlX3QqKSB7CisgICAgICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgICAgICB9KTsKKyAgICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXN1bHQpOworCisgICAgICByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgICAgICByZXN1bHQgPSB0dl9pbnB1dF8tPmNsb3NlU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkKTsKKyAgICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXN1bHQpOworICAgIH0KKyAgfQorfQorCisvKgorICogSW52YWxpZERldmljZUlkVGVzdDoKKyAqIENhbGxzIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKCksIG9wZW5TdHJlYW0oKSwgYW5kIGNsb3NlU3RyZWFtKCkKKyAqIGZvciBhIG5vbi1leGlzdGluZyBkZXZpY2UKKyAqIENoZWNrcyByZXR1cm5lZCByZXN1bHRzCisgKiBUaGUgcmVzdWx0cyBzaG91bGQgYmUgUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBJbnZhbGlkRGV2aWNlSWRUZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworCisgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGRldmljZV9pZHM7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2aWNlX2luZm9fLnNpemUoKTsgaSsrKSB7CisgICAgZGV2aWNlX2lkcy5wdXNoX2JhY2soZGV2aWNlX2luZm9fLmtleUF0KGkpKTsKKyAgfQorICAvLyBHZXQgYSBub24tZXhpc3RpbmcgZGV2aWNlIElELgorICBpbnQzMl90IGlkID0gZ2V0TnVtTm90SW4oZGV2aWNlX2lkcyk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhpZCkpOworCisgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIGludDMyX3Qgc3RyZWFtX2lkID0gMDsKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGlkLCBzdHJlYW1faWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKworICByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIHJlc3VsdCA9IHR2X2lucHV0Xy0+Y2xvc2VTdHJlYW0oaWQsIHN0cmVhbV9pZCk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXN1bHQpOworfQorCisvKgorICogSW52YWxpZFN0cmVhbUlkVGVzdDoKKyAqIENhbGxzIG9wZW5TdHJlYW0oKSwgYW5kIGNsb3NlU3RyZWFtKCkgZm9yIGEgbm9uLWV4aXN0aW5nIHN0cmVhbQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqIFRoZSByZXN1bHRzIHNob3VsZCBiZSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTCisgKi8KK1RFU1RfRihUdklucHV0SGlkbFRlc3QsIEludmFsaWRTdHJlYW1JZFRlc3QpIHsKKyAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG11dGV4Xyk7CisgIGlmIChkZXZpY2VfaW5mb18uaXNFbXB0eSgpKSB7CisgICAgcmV0dXJuOworICB9CisgIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCk7CisKKyAgaW50MzJfdCBkZXZpY2VfaWQgPSBkZXZpY2VfaW5mb18ua2V5QXQoMCk7CisgIC8vIEdldCBhIG5vbi1leGlzdGluZyBzdHJlYW0gSUQuCisgIGludDMyX3QgaWQgPSBERUZBVUxUX0lEOworICBpZiAoc3RyZWFtX2NvbmZpZ18uaW5kZXhPZktleShkZXZpY2VfaWQpID49IDApIHsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBzdHJlYW1faWRzOworICAgIGhpZGxfdmVjPFR2U3RyZWFtQ29uZmlnPiBjb25maWcgPSBzdHJlYW1fY29uZmlnXy52YWx1ZUZvcihkZXZpY2VfaWQpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uZmlnLnNpemUoKTsgaSsrKSB7CisgICAgICBzdHJlYW1faWRzLnB1c2hfYmFjayhjb25maWdbaV0uc3RyZWFtSWQpOworICAgIH0KKyAgICBpZCA9IGdldE51bU5vdEluKHN0cmVhbV9pZHMpOworICB9CisKKyAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgaWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKworICByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIHJlc3VsdCA9IHR2X2lucHV0Xy0+Y2xvc2VTdHJlYW0oZGV2aWNlX2lkLCBpZCk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXN1bHQpOworfQorCisvKgorICogT3BlbkFuT3BlbmVkU3RyZWFtc1Rlc3Q6CisgKiBDYWxscyBvcGVuU3RyZWFtKCkgdHdpY2UgZm9yIGEgc3RyZWFtIChpZiBhbnkpCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICogVGhlIHJlc3VsdCBvZiB0aGUgc2Vjb25kIGNhbGwgc2hvdWxkIGJlIFJlc3VsdDo6SU5WQUxJRF9TVEFURQorICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBPcGVuQW5PcGVuZWRTdHJlYW1zVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgdXBkYXRlQWxsU3RyZWFtQ29uZmlndXJhdGlvbnMoKTsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBpbmRpY2VzID0gZ2V0Q29uZmlnSW5kaWNlcygpOworICBpZiAoaW5kaWNlcy5lbXB0eSgpKSB7CisgICAgcmV0dXJuOworICB9CisgIGludDMyX3QgZGV2aWNlX2lkID0gc3RyZWFtX2NvbmZpZ18ua2V5QXQoaW5kaWNlc1swXSk7CisgIGludDMyX3Qgc3RyZWFtX2lkID0gc3RyZWFtX2NvbmZpZ18udmFsdWVBdChpbmRpY2VzWzBdKVswXS5zdHJlYW1JZDsKKworICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICB0dl9pbnB1dF8tPm9wZW5TdHJlYW0oZGV2aWNlX2lkLCBzdHJlYW1faWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKworICB0dl9pbnB1dF8tPm9wZW5TdHJlYW0oZGV2aWNlX2lkLCBzdHJlYW1faWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX1NUQVRFLCByZXN1bHQpOworfQorCisvKgorICogQ2xvc2VTdHJlYW1CZWZvcmVPcGVuVGVzdDoKKyAqIENhbGxzIGNsb3NlU3RyZWFtKCkgd2l0aG91dCBjYWxsaW5nIG9wZW5TdHJlYW0oKSBmb3IgYSBzdHJlYW0gKGlmIGFueSkKKyAqIENoZWNrcyB0aGUgcmV0dXJuZWQgcmVzdWx0CisgKiBUaGUgcmVzdWx0IHNob3VsZCBiZSBSZXN1bHQ6OklOVkFMSURfU1RBVEUKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgQ2xvc2VTdHJlYW1CZWZvcmVPcGVuVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgdXBkYXRlQWxsU3RyZWFtQ29uZmlndXJhdGlvbnMoKTsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBpbmRpY2VzID0gZ2V0Q29uZmlnSW5kaWNlcygpOworICBpZiAoaW5kaWNlcy5lbXB0eSgpKSB7CisgICAgcmV0dXJuOworICB9CisgIGludDMyX3QgZGV2aWNlX2lkID0gc3RyZWFtX2NvbmZpZ18ua2V5QXQoaW5kaWNlc1swXSk7CisgIGludDMyX3Qgc3RyZWFtX2lkID0gc3RyZWFtX2NvbmZpZ18udmFsdWVBdChpbmRpY2VzWzBdKVswXS5zdHJlYW1JZDsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgdHZfaW5wdXRfLT5jbG9zZVN0cmVhbShkZXZpY2VfaWQsIHN0cmVhbV9pZCkpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFR2SW5wdXRIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQorCmRpZmYgLS1naXQgYS90di9pbnB1dC9BbmRyb2lkLm1rIGIvdHYvaW5wdXQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdXBkYXRlLWJhc2UtZmlsZXMuc2ggYi91cGRhdGUtYmFzZS1maWxlcy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZWI2YjUxCi0tLSAvZGV2L251bGwKKysrIGIvdXBkYXRlLWJhc2UtZmlsZXMuc2gKQEAgLTAsMCArMSw0MyBAQAorIyEvYmluL2Jhc2gKKworaWYgWyAhIC1kIGhhcmR3YXJlL2ludGVyZmFjZXMgXSA7IHRoZW4KKyAgZWNobyAiV2hlcmUgaXMgaGFyZHdhcmUvaW50ZXJmYWNlcz8iOworICBleGl0IDE7CitmaQorCitpZiBbICEgLWQgc3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IF0gOyB0aGVuCisgIGVjaG8gIldoZXJlIGlzIHN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydD8iOworICBleGl0IDE7CitmaQorCitlY2hvICJXQVJOSU5HOiBUaGlzIHNjcmlwdCBjaGFuZ2VzIGZpbGVzIGluIG1hbnkgcGxhY2VzLiIKKworIyBUaGVzZSBmaWxlcyBvbmx5IGV4aXN0IHRvIGZhY2lsaXRhdGUgdGhlIGVhc3kgdHJhbnNpdGlvbiB0byBoaWRsLgorCitvcHRpb25zPSItTGV4cG9ydC1oZWFkZXIgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCIKKworIyBoYXJkd2FyZS9saWJoYXJkd2FyZQoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gaGFyZHdhcmUvbGliaGFyZHdhcmUvaW5jbHVkZS9oYXJkd2FyZS9zZW5zb3JzLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wCitoaWRsLWdlbiAkb3B0aW9ucyBcCisgICAgICAgICAtbyBoYXJkd2FyZS9saWJoYXJkd2FyZS9pbmNsdWRlL2hhcmR3YXJlL25mYy1iYXNlLmggXAorICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5uZmNAMS4wCitoaWRsLWdlbiAkb3B0aW9ucyBcCisgICAgICAgICAtbyBoYXJkd2FyZS9saWJoYXJkd2FyZS9pbmNsdWRlL2hhcmR3YXJlL2duc3MtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAKKworIyBzeXN0ZW0vY29yZQoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vZ3JhcGhpY3MtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMAorCisjIHN5c3RlbS9tZWRpYQoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gc3lzdGVtL21lZGlhL2F1ZGlvL2luY2x1ZGUvc3lzdGVtL2F1ZGlvLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIHN5c3RlbS9tZWRpYS9hdWRpby9pbmNsdWRlL3N5c3RlbS9hdWRpb19lZmZlY3QtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMApkaWZmIC0tZ2l0IGEvdXNiLzEuMC9BbmRyb2lkLmJwIGIvdXNiLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwM2Y3NWIKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVVzYi5oYWwiLAorICAgICAgICAiSVVzYkNhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Vc2JBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Vc2JDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JVXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lId1VzYi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Cbkh3VXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JwSHdVc2IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQnNVc2IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYkNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lId1VzYkNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JuSHdVc2JDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9CcEh3VXNiQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQnNVc2JDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9BbmRyb2lkLm1rIGIvdXNiLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZjY5MzUKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MjcgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydERhdGFSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0RGF0YVJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnREYXRhUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFBvd2VyUm9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFBvd2VyUm9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFBvd2VyUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0Um9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGVUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0Um9sZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRSb2xlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2IuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL0lVc2IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2JDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvSVVzYkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2JDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS51c2ItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0RGF0YVJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnREYXRhUm9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydERhdGFSb2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0TW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0UG93ZXJSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0UG93ZXJSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0UG93ZXJSb2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0Um9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRSb2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0Um9sZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRSb2xlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFJvbGVUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0U3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0U3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0U3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVVzYi5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvSVVzYi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVVzYi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6SVVzYgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYi5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVVzYkNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9JVXNiQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6SVVzYkNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS51c2ItVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9JVXNiLmhhbCBiL3VzYi8xLjAvSVVzYi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ2NDM3OQotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvSVVzYi5oYWwKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOworCitpbXBvcnQgSVVzYkNhbGxiYWNrOworCitpbnRlcmZhY2UgSVVzYiB7CisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNoYW5nZSB0aGUgcG9ydCByb2xlIG9mIGEgc3BlY2lmaWMgcG9ydC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgd2hlbiBQRF9TV0FQIG9yIFBSX1NXQVAgaXMgc3VwcG9ydGVkLgorICAgICAqIFRoaXMgaXMgZnVuY3Rpb24gaXMgYXN5bmNocm9ub3VzLiBUaGUgc3RhdHVzIG9mIHRoZSByb2xlIHN3aXRjaAorICAgICAqIHdpbGwgYmUgaW5mb3JtZWQgdGhyb3VnaCBJVXNiQ2FsbGJhY2sgb2JqZWN0J3Mgbm90aWZ5UG9ydFN0YXR1c0NoYW5nZQorICAgICAqIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3J0TmFtZSBuYW1lIG9mIHRoZSBwb3J0IGZvciB3aGljaCB0aGUgcm9sZSBoYXMgdG8gYmUgY2hhbmdlZAorICAgICAqIEBwYXJhbSByb2xlIHRoZSBuZXcgcG9ydCByb2xlLgorICAgICAqLworICAgIG9uZXdheSBzd2l0Y2hSb2xlKHN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGUgcm9sZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGljaCBpcworICAgICAqIGNhbGxlZCBieSB0aGUgSEFMIHdoZW5ldmVyIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoZSBwb3J0IHN0YXRlLgorICAgICAqIGkuZS4gREFUQV9ST0xFLCBQT1dFUl9ST0xFIG9yIE1PREUuCisgICAgICoKKyAgICAgKiBBbHNvIHRoZSBzYW1lIGNhbGxiYWNrIG9iamVjdCB3b3VsZCBiZSBjYWxsZWQgdG8gaW5mb3JtIHRoZSBjYWxsZXIKKyAgICAgKiBvZiB0aGUgcm9sZVN3aXRjaCBzdGF0dXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSVVzYkNhbGxiYWNrIG9iamVjdCB1c2VkIHRvIGNvbnZleSBzdGF0dXMgdG8gdGhlCisgICAgICogdXNlcnNwYWNlLgorICAgICAqLworICAgIG9uZXdheSBzZXRDYWxsYmFjayhJVXNiQ2FsbGJhY2sgY2FsbGJhY2spOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbnMgaXMgdXNlZCB0byByZXF1ZXN0IHRoZSBoYWwgZm9yIHRoZSBjdXJyZW50IHN0YXR1cworICAgICAqIHN0YXR1cyBvZiB0aGUgVHlwZS1DIHBvcnRzLiBUaGlzIG1ldGhvZCBpcyBhc3luYy9vbmV3YXkuIFRoZSByZXN1bHQgb2YgdGhlCisgICAgICogcXVlcnkgd291bGQgYmUgc2VudCB0aHJvdWdoIHRoZSBJVXNiQ2FsbGJhY2sgb2JqZWN0J3Mgbm90aWZ5Um9sZVN3aXRjaFN0YXR1cworICAgICAqIHRvIHRoZSBjYWxsZXIuIFRoaXMgYXBpIHdvdWxkIHdvdWxkIGxldCB0aGUgY2FsbGVyIGtub3cgb2YgdGhlIG51bWJlcgorICAgICAqIG9mIHR5cGUtYyBwb3J0cyB0aGF0IGFyZSBwcmVzZW50IGFuZCB0aGVpciBjb25uZWN0aW9uIHN0YXR1cyB0aHJvdWdoIHRoZQorICAgICAqIFBvcnRTdGF0dXMgdHlwZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgcXVlcnlQb3J0U3RhdHVzKCk7Cit9OworCmRpZmYgLS1naXQgYS91c2IvMS4wL0lVc2JDYWxsYmFjay5oYWwgYi91c2IvMS4wL0lVc2JDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ5MWNiZgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvSVVzYkNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA7CisKKy8qKgorICogQ2FsbGJhY2sgb2JqZWN0IHVzZWQgZm9yIGFsbCB0aGUgSVVzYiBhc3luYyBtZXRob2RzIHdoaWNoIGV4cGVjdHMgYSByZXN1bHQuCisgKiBDYWxsZXIgaXMgZXhwZWN0ZWQgdG8gcmVnaXN0ZXIgdGhlIGNhbGxiYWNrIG9iamVjdCB1c2luZyBzZXRDYWxsYmFjayBtZXRob2QKKyAqIHRvIHJlY2VpdmUgdXBkYXRlcyBvbiB0aGUgUG9ydFN0YXR1cy4KKyAqLworaW50ZXJmYWNlIElVc2JDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogVXNlZCB0byBjb252ZXkgdGhlIGN1cnJlbnQgcG9ydCBzdGF0dXMgdG8gdGhlIGNhbGxlci4KKyAgICAgKiBDYWxsZWQgZWl0aGVyIHdoZW4gUG9ydFN0YXRlIGNoYW5nZXMgZHVlIHRvIHRoZSBwb3J0IHBhcnRuZXIgKG9yKQorICAgICAqIHdoZW4gY2FsbGVyIHJlcXVlc3RlZCBmb3IgdGhlIFBvcnRTdGF0dXMgdXBkYXRlIHRocm91Z2ggcXVlcnlQb3J0U3RhdHVzLgorICAgICAqCisgICAgICogQHBhcmFtIGN1cnJlbnRQb3J0U3RhdHVzIHZlY3RvciBvYmplY3Qgb2YgY3VycmVudCBzdGF0dXMgb2YgYWxsIHRoZQorICAgICAqIHR5cGVDIHBvcnRzIGluIHRoZSBkZXZpY2UuCisgICAgICogQHBhcmFtIHJldHZhbCBTVUNDRVNTIHdoZW4gcXVlcnkgd2FzIGRvbmUgc3VjY2Vzc2Z1bGx5LgorICAgICAqIEVSUk9SIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgbm90aWZ5UG9ydFN0YXR1c0NoYW5nZSh2ZWM8UG9ydFN0YXR1cz4gY3VycmVudFBvcnRTdGF0dXMsIFN0YXR1cyByZXR2YWwpOworCisgICAgLyoqCisgICAgICogVXNlZCB0byBub3RpZnkgdGhlIHJlc3VsdCBvZiB0aGUgc3dpdGNoUm9sZSBjYWxsIHRvIHRoZSBjYWxsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydE5hbWUgbmFtZSBvZiB0aGUgcG9ydCBmb3Igd2hpY2ggdGhlIHJvbGVzd2FwIGlzIHJlcXVlc3RlZC4KKyAgICAgKiBAcGFyYW0gbmV3Um9sZSB0aGUgbmV3IHJvbGUgcmVxdWVzdGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgICogQHBhcmFtIHJldHZhbCBTVUNDRVNTIGlmIHRoZSByb2xlIHN3aXRjaCBzdWNjZWVkZWQuIEZBSUxVUkUgb3RoZXJ3aXNlLgorICAgICAqLworICAgIG9uZXdheSBub3RpZnlSb2xlU3dpdGNoU3RhdHVzKHN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGUgbmV3Um9sZSwgU3RhdHVzIHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi91c2IvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmQ1M2NmCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMSBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKyAgICBVc2IuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9Vc2IuY3BwIGIvdXNiLzEuMC9kZWZhdWx0L1VzYi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmViODg0MgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuY3BwCkBAIC0wLDAgKzEsNDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxmc3RyZWFtPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL3VldmVudC5oPgorI2luY2x1ZGUgPHN5cy9lcG9sbC5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cm9uZ1BvaW50ZXIuaD4KKworI2luY2x1ZGUgIlVzYi5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHVzYiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTZXQgYnkgdGhlIHNpZ25hbCBoYW5kbGVyIHRvIGRlc3Ryb3kgdGhlIHRocmVhZAordm9sYXRpbGUgYm9vbCBkZXN0cm95VGhyZWFkOworCitpbnQzMl90IHJlYWRGaWxlKHN0ZDo6c3RyaW5nIGZpbGVuYW1lLCBzdGQ6OnN0cmluZyYgY29udGVudHMpIHsKKyAgICBzdGQ6Omlmc3RyZWFtIGZpbGUoZmlsZW5hbWUpOworCisgICAgaWYgKGZpbGUuaXNfb3BlbigpKSB7CisgICAgICAgIGdldGxpbmUoZmlsZSwgY29udGVudHMpOworICAgICAgICBmaWxlLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisKK3N0ZDo6c3RyaW5nIGFwcGVuZFJvbGVOb2RlSGVscGVyKGNvbnN0IHN0ZDo6c3RyaW5nIHBvcnROYW1lLCBQb3J0Um9sZVR5cGUgdHlwZSkgeworICAgIHN0ZDo6c3RyaW5nIG5vZGUoIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsgcG9ydE5hbWUpOworCisgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgY2FzZSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRToKKyAgICAgICAgICAgIHJldHVybiBub2RlICsgIi9kYXRhX3JvbGUiOworICAgICAgICBjYXNlIFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRToKKyAgICAgICAgICAgIHJldHVybiBub2RlICsgIi9wb3dlcl9yb2xlIjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBub2RlICsgIi9tb2RlIjsKKyAgICB9Cit9CisKK3N0ZDo6c3RyaW5nIGNvbnZlcnRSb2xldG9TdHJpbmcoUG9ydFJvbGUgcm9sZSkgeworICAgIGlmIChyb2xlLnR5cGUgPT0gUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFKSB7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpKQorICAgICAgICAgICAgcmV0dXJuICJzb3VyY2UiOworICAgICAgICBlbHNlIGlmIChyb2xlLnJvbGUgPT0gIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydFBvd2VyUm9sZTo6U0lOSykpCisgICAgICAgICAgICByZXR1cm4gInNpbmsiOworICAgIH0gZWxzZSBpZiAocm9sZS50eXBlID09IFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFKSB7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkhPU1QpKQorICAgICAgICAgICAgcmV0dXJuICJob3N0IjsKKyAgICAgICAgaWYgKHJvbGUucm9sZSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnREYXRhUm9sZTo6REVWSUNFKSkKKyAgICAgICAgICAgIHJldHVybiAiZGV2aWNlIjsKKyAgICB9IGVsc2UgaWYgKHJvbGUudHlwZSA9PSBQb3J0Um9sZVR5cGU6Ok1PREUpIHsKKyAgICAgICAgaWYgKHJvbGUucm9sZSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpVRlApKQorICAgICAgICAgICAgcmV0dXJuICJ1ZnAiOworICAgICAgICBpZiAocm9sZS5yb2xlID09IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydE1vZGU6OkRGUCkpCisgICAgICAgICAgICByZXR1cm4gImRmcCI7CisgICAgfQorICAgIHJldHVybiAibm9uZSI7Cit9CisKK1JldHVybjx2b2lkPiBVc2I6OnN3aXRjaFJvbGUoY29uc3QgaGlkbF9zdHJpbmcmIHBvcnROYW1lLAorICAgICAgICBjb25zdCBQb3J0Um9sZSYgbmV3Um9sZSkgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lID0gYXBwZW5kUm9sZU5vZGVIZWxwZXIoc3RkOjpzdHJpbmcocG9ydE5hbWUuY19zdHIoKSksCisgICAgICAgIG5ld1JvbGUudHlwZSk7CisgICAgc3RkOjpvZnN0cmVhbSBmaWxlKGZpbGVuYW1lKTsKKyAgICBzdGQ6OnN0cmluZyB3cml0dGVuOworCisgICAgQUxPR0koImZpbGVuYW1lIHdyaXRlOiAlcyByb2xlOiVkIiwgZmlsZW5hbWUuY19zdHIoKSwgbmV3Um9sZS5yb2xlKTsKKworICAgIGlmIChmaWxlLmlzX29wZW4oKSkgeworICAgICAgICBmaWxlIDw8IGNvbnZlcnRSb2xldG9TdHJpbmcobmV3Um9sZSkuY19zdHIoKTsKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICBpZiAoIXJlYWRGaWxlKGZpbGVuYW1lLCB3cml0dGVuKSkgeworICAgICAgICAgICAgQUxPR0koIndyaXR0ZW46ICVzIiwgd3JpdHRlbi5jX3N0cigpKTsKKyAgICAgICAgICAgIGlmICh3cml0dGVuID09IGNvbnZlcnRSb2xldG9TdHJpbmcobmV3Um9sZSkpIHsKKyAgICAgICAgICAgICAgICBBTE9HSSgiUm9sZSBzd2l0Y2ggc3VjY2Vzc2Z1bGwiKTsKKyAgICAgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5ub3RpZnlSb2xlU3dpdGNoU3RhdHVzKHBvcnROYW1lLCBuZXdSb2xlLAorICAgICAgICAgICAgICAgICAgICBTdGF0dXM6OlNVQ0NFU1MpOworICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIlJvbGVTd2l0Y2hTdGF0dXMgZXJyb3IgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gbUNhbGxiYWNrLT5ub3RpZnlSb2xlU3dpdGNoU3RhdHVzKHBvcnROYW1lLCBuZXdSb2xlLCBTdGF0dXM6OkVSUk9SKTsKKyAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgIEFMT0dFKCJSb2xlU3dpdGNoU3RhdHVzIGVycm9yICVzIiwgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitTdGF0dXMgZ2V0Q3VycmVudFJvbGVIZWxwZXIoc3RkOjpzdHJpbmcgcG9ydE5hbWUsCisgICAgICAgIFBvcnRSb2xlVHlwZSB0eXBlLCB1aW50MzJfdCAmY3VycmVudFJvbGUpICB7CisgICAgc3RkOjpzdHJpbmcgZmlsZW5hbWU7CisgICAgc3RkOjpzdHJpbmcgcm9sZU5hbWU7CisKKyAgICBpZiAodHlwZSA9PSBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEUpIHsKKyAgICAgICAgZmlsZW5hbWUgPSAiL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiLyIgKworICAgICAgICAgICAgcG9ydE5hbWUgKyAiL3Bvd2VyX3JvbGUiOworICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0UG93ZXJSb2xlOjpOT05FKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEUpIHsKKyAgICAgICAgZmlsZW5hbWUgPSAiL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiLyIgKworICAgICAgICAgICAgcG9ydE5hbWUgKyAiL2RhdGFfcm9sZSI7CisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6Ok5PTkUpOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBQb3J0Um9sZVR5cGU6Ok1PREUpIHsKKyAgICAgICAgZmlsZW5hbWUgPSAiL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiLyIgKworICAgICAgICAgICAgcG9ydE5hbWUgKyAiL21vZGUiOworICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydE1vZGU6Ok5PTkUpOworICAgIH0KKworICAgIGlmIChyZWFkRmlsZShmaWxlbmFtZSwgcm9sZU5hbWUpKSB7CisgICAgICAgIEFMT0dFKCJnZXRDdXJyZW50Um9sZTogRmFpbGVkIHRvIG9wZW4gZmlsZXN5c3RlbSBub2RlIik7CisgICAgICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworICAgIH0KKworICAgIGlmIChyb2xlTmFtZSA9PSAiZGZwIikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpERlApOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJ1ZnAiKQorICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydE1vZGU6OlVGUCk7CisgICAgZWxzZSBpZiAocm9sZU5hbWUgPT0gInNvdXJjZSIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJzaW5rIikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRQb3dlclJvbGU6OlNJTkspOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJob3N0IikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnREYXRhUm9sZTo6SE9TVCk7CisgICAgZWxzZSBpZiAocm9sZU5hbWUgPT0gImRldmljZSIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkRFVklDRSk7CisgICAgZWxzZSBpZiAocm9sZU5hbWUgIT0gIm5vbmUiKSB7CisgICAgICAgICAvKiBjYXNlIGZvciBub25lIGhhcyBhbHJlYWR5IGJlZW4gYWRkcmVzc2VkLgorICAgICAgICAgICogc28gd2UgY2hlY2sgaWYgdGhlIHJvbGUgaXNudCBub25lLgorICAgICAgICAgICovCisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOUkVDT0dOSVpFRF9ST0xFOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworfQorCitTdGF0dXMgZ2V0VHlwZUNQb3J0TmFtZXNIZWxwZXIoc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBuYW1lcykgeworICAgIERJUiAqZHA7CisKKyAgICBkcCA9IG9wZW5kaXIoIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYiIpOworICAgIGlmIChkcCAhPSBOVUxMKQorICAgIHsKK3Jlc2NhbjoKKyAgICAgICAgaW50MzJfdCBwb3J0cyA9IDA7CisgICAgICAgIGludDMyX3QgY3VycmVudCA9IDA7CisgICAgICAgIHN0cnVjdCBkaXJlbnQgKmVwOworCisgICAgICAgIHdoaWxlICgoZXAgPSByZWFkZGlyIChkcCkpKSB7CisgICAgICAgICAgICBpZiAoZXAtPmRfdHlwZSA9PSBEVF9MTkspIHsKKyAgICAgICAgICAgICAgICBwb3J0cysrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcnRzID09IDApIHsKKyAgICAgICAgICAgIGNsb3NlZGlyKGRwKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7CisgICAgICAgIH0KKworICAgICAgICBuYW1lcy5yZXNpemUocG9ydHMpOworICAgICAgICByZXdpbmRkaXIoZHApOworCisgICAgICAgIHdoaWxlICgoZXAgPSByZWFkZGlyIChkcCkpKSB7CisgICAgICAgICAgICBpZiAoZXAtPmRfdHlwZSA9PSBEVF9MTkspIHsKKyAgICAgICAgICAgICAgICAvKiBDaGVjayB0byBzZWUgaWYgbmV3IHBvcnRzIHdlcmUgYWRkZWQgc2luY2UgdGhlIGZpcnN0IHBhc3MuICovCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPj0gcG9ydHMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV3aW5kZGlyKGRwKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXNjYW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5hbWVzW2N1cnJlbnQrK10gPSBlcC0+ZF9uYW1lOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY2xvc2VkaXIgKGRwKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICB9CisKKyAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiIik7CisgICAgcmV0dXJuIFN0YXR1czo6RVJST1I7Cit9CisKK2Jvb2wgY2FuU3dpdGNoUm9sZUhlbHBlcihjb25zdCBzdGQ6OnN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGVUeXBlIHR5cGUpICB7CisgICAgc3RkOjpzdHJpbmcgZmlsZW5hbWUgPSBhcHBlbmRSb2xlTm9kZUhlbHBlcihwb3J0TmFtZSwgdHlwZSk7CisgICAgc3RkOjpvZnN0cmVhbSBmaWxlKGZpbGVuYW1lKTsKKworICAgIGlmIChmaWxlLmlzX29wZW4oKSkgeworICAgICAgICBmaWxlLmNsb3NlKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0YXR1cyBnZXRQb3J0TW9kZUhlbHBlcihjb25zdCBzdGQ6OnN0cmluZyBwb3J0TmFtZSwgUG9ydE1vZGUmIHBvcnRNb2RlKSAgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICBzdGQ6OnN0cmluZyhwb3J0TmFtZS5jX3N0cigpKSArICIvc3VwcG9ydGVkX21vZGVzIjsKKyAgICBzdGQ6OnN0cmluZyBtb2RlczsKKworICAgIGlmIChyZWFkRmlsZShmaWxlbmFtZSwgbW9kZXMpKSB7CisgICAgICAgIEFMT0dFKCJnZXRTdXBwb3J0ZWRSb2xlczogRmFpbGVkIHRvIG9wZW4gZmlsZXN5c3RlbSBub2RlIik7CisgICAgICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworICAgIH0KKworICAgIGlmIChtb2RlcyA9PSAidWZwIGRmcCIpCisgICAgICAgIHBvcnRNb2RlID0gUG9ydE1vZGU6OkRSUDsKKyAgICBlbHNlICBpZiAobW9kZXMgPT0gInVmcCIpCisgICAgICAgIHBvcnRNb2RlID0gUG9ydE1vZGU6OlVGUDsKKyAgICBlbHNlIGlmICAobW9kZXMgPT0gImRmcCIpCisgICAgICAgIHBvcnRNb2RlID0gUG9ydE1vZGU6OkRGUDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOUkVDT0dOSVpFRF9ST0xFOworCisgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7Cit9CisKK1N0YXR1cyBnZXRQb3J0U3RhdHVzSGVscGVyIChoaWRsX3ZlYzxQb3J0U3RhdHVzPiYgY3VycmVudFBvcnRTdGF0dXMpIHsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gbmFtZXM7CisgICAgU3RhdHVzIHJlc3VsdCA9IGdldFR5cGVDUG9ydE5hbWVzSGVscGVyKG5hbWVzKTsKKworICAgIGlmIChyZXN1bHQgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzLnJlc2l6ZShuYW1lcy5zaXplKCkpOworICAgICAgICBmb3Ioc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+OjpzaXplX3R5cGUgaSA9IDA7IGkgPCBuYW1lcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgQUxPR0koIiVzIiwgbmFtZXNbaV0uY19zdHIoKSk7CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5wb3J0TmFtZSA9IG5hbWVzW2ldOworCisgICAgICAgICAgICB1aW50MzJfdCBjdXJyZW50Um9sZTsKKyAgICAgICAgICAgIGlmIChnZXRDdXJyZW50Um9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um9sZSkgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY3VycmVudFBvd2VyUm9sZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UG9ydFBvd2VyUm9sZT4gKGN1cnJlbnRSb2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJlaXZpbmcgcG9ydE5hbWVzIik7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0Q3VycmVudFJvbGVIZWxwZXIobmFtZXNbaV0sCisgICAgICAgICAgICAgICAgICAgIFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFLCBjdXJyZW50Um9sZSkgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY3VycmVudERhdGFSb2xlID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBvcnREYXRhUm9sZT4gKGN1cnJlbnRSb2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJlaXZpbmcgY3VycmVudCBwb3J0IHJvbGUiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChnZXRDdXJyZW50Um9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpNT0RFLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um9sZSkgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY3VycmVudE1vZGUgPQorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQb3J0TW9kZT4gKGN1cnJlbnRSb2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJlaXZpbmcgY3VycmVudCBkYXRhIHJvbGUiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmNhbkNoYW5nZU1vZGUgPQorICAgICAgICAgICAgICAgIGNhblN3aXRjaFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6TU9ERSk7CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VEYXRhUm9sZSA9CisgICAgICAgICAgICAgICAgY2FuU3dpdGNoUm9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEUpOworICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlUG93ZXJSb2xlID0KKyAgICAgICAgICAgICAgICBjYW5Td2l0Y2hSb2xlSGVscGVyKG5hbWVzW2ldLCBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEUpOworCisgICAgICAgICAgICBBTE9HSSgiY2FuQ2hhbmdlTW9kZTogJWQgY2FuQ2hhZ2VkYXRhOiAlZCBjYW5DaGFuZ2VQb3dlcjolZCIsCisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlTW9kZSwKKyAgICAgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VEYXRhUm9sZSwKKyAgICAgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VQb3dlclJvbGUpOworCisgICAgICAgICAgICBpZiAoZ2V0UG9ydE1vZGVIZWxwZXIobmFtZXNbaV0sIGN1cnJlbnRQb3J0U3RhdHVzW2ldLnN1cHBvcnRlZE1vZGVzKQorICAgICAgICAgICAgICAgICAgIT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJpZXZpbmcgcG9ydCBtb2RlcyIpOworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworICAgIH0KK2RvbmU6CisgICAgcmV0dXJuIFN0YXR1czo6RVJST1I7Cit9CisKK1JldHVybjx2b2lkPiBVc2I6OnF1ZXJ5UG9ydFN0YXR1cygpIHsKKyAgICBoaWRsX3ZlYzxQb3J0U3RhdHVzPiBjdXJyZW50UG9ydFN0YXR1czsKKyAgICBTdGF0dXMgc3RhdHVzOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFN0YXR1c0hlbHBlcihjdXJyZW50UG9ydFN0YXR1cyk7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IG1DYWxsYmFjay0+bm90aWZ5UG9ydFN0YXR1c0NoYW5nZShjdXJyZW50UG9ydFN0YXR1cywKKyAgICAgICBzdGF0dXMpOworICAgIGlmICghcmV0LmlzT2soKSkKKyAgICAgICAgQUxPR0UoInF1ZXJ5UG9ydFN0YXR1cyBlcnJvciAlcyIsIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KK3N0cnVjdCBkYXRhIHsKKyAgICBpbnQgdWV2ZW50X2ZkOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpVc2IgKnVzYjsKK307CisKK3N0YXRpYyB2b2lkIHVldmVudF9ldmVudCh1aW50MzJfdCAvKmVwZXZlbnRzKi8sIHN0cnVjdCBkYXRhICpwYXlsb2FkKSB7CisgICAgY2hhciBtc2dbVUVWRU5UX01TR19MRU4gKyAyXTsKKyAgICBjaGFyICpjcDsKKyAgICBpbnQgbjsKKworICAgIG4gPSB1ZXZlbnRfa2VybmVsX211bHRpY2FzdF9yZWN2KHBheWxvYWQtPnVldmVudF9mZCwgbXNnLCBVRVZFTlRfTVNHX0xFTik7CisgICAgaWYgKG4gPD0gMCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChuID49IFVFVkVOVF9NU0dfTEVOKSAgIC8qIG92ZXJmbG93IC0tIGRpc2NhcmQgKi8KKyAgICAgICAgcmV0dXJuOworCisgICAgbXNnW25dID0gJ1wwJzsKKyAgICBtc2dbbiArIDFdID0gJ1wwJzsKKyAgICBjcCA9IG1zZzsKKworICAgIHdoaWxlICgqY3ApIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoY3AsICJTVUJTWVNURU09ZHVhbF9yb2xlX3VzYiIpKSB7CisgICAgICAgICAgICBBTE9HRSgidWV2ZW50IHJlY2VpdmVkICVzIiwgY3ApOworICAgICAgICAgICAgaWYgKHBheWxvYWQtPnVzYi0+bUNhbGxiYWNrICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBoaWRsX3ZlYzxQb3J0U3RhdHVzPiBjdXJyZW50UG9ydFN0YXR1czsKKyAgICAgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gZ2V0UG9ydFN0YXR1c0hlbHBlcihjdXJyZW50UG9ydFN0YXR1cyk7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICAgICAgICAgICAgICAgIHBheWxvYWQtPnVzYi0+bUNhbGxiYWNrLT5ub3RpZnlQb3J0U3RhdHVzQ2hhbmdlKGN1cnJlbnRQb3J0U3RhdHVzLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImVycm9yICVzIiwgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvKiBhZHZhbmNlIHRvIGFmdGVyIHRoZSBuZXh0IFwwICovCisgICAgICAgIHdoaWxlICgqY3ArKyk7CisgICAgfQorfQorCit2b2lkKiB3b3JrKHZvaWQqIHBhcmFtKSB7CisgICAgaW50IGVwb2xsX2ZkLCB1ZXZlbnRfZmQ7CisgICAgc3RydWN0IGVwb2xsX2V2ZW50IGV2OworICAgIGludCBuZXZlbnRzID0gMDsKKyAgICBzdHJ1Y3QgZGF0YSBwYXlsb2FkOworCisgICAgQUxPR0UoImNyZWF0aW5nIHRocmVhZCIpOworCisgICAgdWV2ZW50X2ZkID0gdWV2ZW50X29wZW5fc29ja2V0KDY0KjEwMjQsIHRydWUpOworCisgICAgaWYgKHVldmVudF9mZCA8IDApIHsKKyAgICAgICAgQUxPR0UoInVldmVudF9pbml0OiB1ZXZlbnRfb3Blbl9zb2NrZXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcGF5bG9hZC51ZXZlbnRfZmQgPSB1ZXZlbnRfZmQ7CisgICAgcGF5bG9hZC51c2IgPSAoYW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6aW1wbGVtZW50YXRpb246OlVzYiAqKXBhcmFtOworCisgICAgZmNudGwodWV2ZW50X2ZkLCBGX1NFVEZMLCBPX05PTkJMT0NLKTsKKworICAgIGV2LmV2ZW50cyA9IEVQT0xMSU47CisgICAgZXYuZGF0YS5wdHIgPSAodm9pZCAqKXVldmVudF9ldmVudDsKKworICAgIGVwb2xsX2ZkID0gZXBvbGxfY3JlYXRlKDY0KTsKKyAgICBpZiAoZXBvbGxfZmQgPT0gLTEpIHsKKyAgICAgICAgQUxPR0UoImVwb2xsX2NyZWF0ZSBmYWlsZWQ7IGVycm5vPSVkIiwgZXJybm8pOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIGlmIChlcG9sbF9jdGwoZXBvbGxfZmQsIEVQT0xMX0NUTF9BREQsIHVldmVudF9mZCwgJmV2KSA9PSAtMSkgeworICAgICAgICBBTE9HRSgiZXBvbGxfY3RsIGZhaWxlZDsgZXJybm89JWQiLCBlcnJubyk7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgd2hpbGUgKCFkZXN0cm95VGhyZWFkKSB7CisgICAgICAgIHN0cnVjdCBlcG9sbF9ldmVudCBldmVudHNbNjRdOworCisgICAgICAgIG5ldmVudHMgPSBlcG9sbF93YWl0KGVwb2xsX2ZkLCBldmVudHMsIDY0LCAtMSk7CisgICAgICAgIGlmIChuZXZlbnRzID09IC0xKSB7CisgICAgICAgICAgICBpZiAoZXJybm8gPT0gRUlOVFIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBBTE9HRSgidXNiIGVwb2xsX3dhaXQgZmFpbGVkOyBlcnJubz0lZCIsIGVycm5vKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBuZXZlbnRzOyArK24pIHsKKyAgICAgICAgICAgIGlmIChldmVudHNbbl0uZGF0YS5wdHIpCisgICAgICAgICAgICAgICAgKCoodm9pZCAoKikoaW50LCBzdHJ1Y3QgZGF0YSAqcGF5bG9hZCkpZXZlbnRzW25dLmRhdGEucHRyKQorICAgICAgICAgICAgICAgICAgICAoZXZlbnRzW25dLmV2ZW50cywgJnBheWxvYWQpOworICAgICAgICB9CisgICAgfQorCisgICAgQUxPR0koImV4aXRpbmcgd29ya2VyIHRocmVhZCIpOworZXJyb3I6CisgICAgY2xvc2UodWV2ZW50X2ZkKTsKKworICAgIGlmIChlcG9sbF9mZCA+PSAwKQorICAgICAgICBjbG9zZShlcG9sbF9mZCk7CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwordm9pZCBzaWdoYW5kbGVyKGludCBzaWcpCit7CisgICAgaWYgKHNpZyA9PSBTSUdVU1IxKSB7CisgICAgICAgIGRlc3Ryb3lUaHJlYWQgPSB0cnVlOworICAgICAgICBBTE9HSSgiZGVzdHJveSBzZXQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaWduYWwoU0lHVVNSMSwgc2lnaGFuZGxlcik7Cit9CisKK1JldHVybjx2b2lkPiBVc2I6OnNldENhbGxiYWNrKGNvbnN0IHNwPElVc2JDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisKKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm1Mb2NrKTsKKyAgICBpZiAoKG1DYWxsYmFjayA9PSBOVUxMICYmIGNhbGxiYWNrID09IE5VTEwpIHx8CisgICAgICAgICAgICAobUNhbGxiYWNrICE9IE5VTEwgJiYgY2FsbGJhY2sgIT0gTlVMTCkpIHsKKyAgICAgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtTG9jayk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgQUxPR0koInJlZ2lzdGVyaW5nIGNhbGxiYWNrIik7CisKKyAgICBpZiAobUNhbGxiYWNrID09IE5VTEwpIHsKKyAgICAgICAgaWYgICghcHRocmVhZF9raWxsKG1Qb2xsLCBTSUdVU1IxKSkgeworICAgICAgICAgICAgcHRocmVhZF9qb2luKG1Qb2xsLCBOVUxMKTsKKyAgICAgICAgICAgIEFMT0dJKCJwdGhyZWFkIGRlc3Ryb3llZCIpOworICAgICAgICB9CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtTG9jayk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgZGVzdHJveVRocmVhZCA9IGZhbHNlOworICAgIHNpZ25hbChTSUdVU1IxLCBzaWdoYW5kbGVyKTsKKworICAgIGlmIChwdGhyZWFkX2NyZWF0ZSgmbVBvbGwsIE5VTEwsIHdvcmssIHRoaXMpKSB7CisgICAgICAgIEFMT0dFKCJwdGhyZWFkIGNyZWF0aW9uIGZhaWxlZCAlZCIsIGVycm5vKTsKKyAgICAgICAgbUNhbGxiYWNrID0gTlVMTDsKKyAgICB9CisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJm1Mb2NrKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvLyBQcm90ZWN0cyAqdXNiIGFzc2lnbm1lbnQKK3B0aHJlYWRfbXV0ZXhfdCBsb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKK1VzYiAqdXNiOworCitVc2I6OlVzYigpIHsKKyAgICBwdGhyZWFkX211dGV4X2xvY2soJmxvY2spOworICAgIC8vIE1ha2UgdGhpcyBhIHNpbmdsZXRvbiBjbGFzcworICAgIGFzc2VydCh1c2IgPT0gTlVMTCk7CisgICAgdXNiID0gdGhpczsKKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbG9jayk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB1c2IKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9Vc2IuaCBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGZjYWM2Ci0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9kZWZhdWx0L1VzYi5oCkBAIC0wLDAgKzEsNTIgQEAKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9VU0JfVjFfMF9VU0JfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1VTQl9WMV8wX1VTQl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYi5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpZmRlZiBMT0dfVEFHCisjdW5kZWYgTE9HX1RBRworI2VuZGlmCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UiCisjZGVmaW5lIFVFVkVOVF9NU0dfTEVOIDIwNDgKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB1c2IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpJVXNiOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpJVXNiQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OlBvcnRSb2xlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFVzYiA6IHB1YmxpYyBJVXNiIHsKKyAgICBVc2IoKTsKKyAgICBSZXR1cm48dm9pZD4gc3dpdGNoUm9sZShjb25zdCBoaWRsX3N0cmluZyYgcG9ydE5hbWUsIGNvbnN0IFBvcnRSb2xlJiByb2xlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SVVzYkNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBxdWVyeVBvcnRTdGF0dXMoKSBvdmVycmlkZTsKKworICAgIHNwPElVc2JDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHByaXZhdGU6CisgICAgICAgIHB0aHJlYWRfdCBtUG9sbDsKKyAgICAgICAgcHRocmVhZF9tdXRleF90IG1Mb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB1c2IKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1VTQl9WMV8wX1VTQl9ICmRpZmYgLS1naXQgYS91c2IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UucmMgYi91c2IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVhMDcyMAotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdXNiLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdXNiLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzYWI2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSAiVXNiLmgiCisKK3VzaW5nIGFuZHJvaWQ6OnNwOworCisvLyBsaWJod2JpbmRlcjoKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOworCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpVc2I7CisKK3VzaW5nIGFuZHJvaWQ6OnN0YXR1c190OwordXNpbmcgYW5kcm9pZDo6T0s7CisKK2ludCBtYWluKCkgeworCisgICAgYW5kcm9pZDo6c3A8SVVzYj4gc2VydmljZSA9IG5ldyBVc2IoKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKmNhbGxlcldpbGxKb2luKi8pOworICAgIHN0YXR1c190IHN0YXR1cyA9IHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisKKyAgICBpZiAoc3RhdHVzID09IE9LKSB7CisgICAgICAgIEFMT0dJKCJVU0IgSEFMIFJlYWR5LiIpOworICAgICAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIH0KKworICAgIEFMT0dFKCJDYW5ub3QgcmVnaXN0ZXIgVVNCIEhBTCBzZXJ2aWNlIik7CisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS91c2IvMS4wL3R5cGVzLmhhbCBiL3VzYi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMjYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDIxNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDsKKworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKworICAgIC8qKgorICAgICAqIGVycm9yIHZhbHVlIHdoZW4gdGhlIEhBTCBvcGVyYXRpb24gZmFpbHMgZm9yIHJlYXNvbnMgbm90IGxpc3RlZCBoZXJlLgorICAgICAqLworICAgIEVSUk9SID0gMSwKKworICAgIC8qKgorICAgICAqIGVycm9yIHZhbHVlIHJldHVybmVkIHdoZW4gaW5wdXQgYXJndW1lbnQgaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBJTlZBTElEX0FSR1VNRU5UID0gMiwKKworICAgIC8qKgorICAgICAqIGVycm9yIHZhbHVlIHJldHVybmVkIHdoZW4gcm9sZSBzdHJpbmcgaXMgdW5yZWNvZ25pemVkLgorICAgICAqLworICAgIFVOUkVDT0dOSVpFRF9ST0xFID0gMywKK307CisKKy8qKgorICogRGVub3RlcyB0aGUgUG9ydCByb2xlIHR5cGUuCisgKiBQYXNzZWQgYXMgYW4gYXJndW1lbnQgZm9yIGZ1bmN0aW9ucyB1c2VkIHRvIHF1ZXJ5IG9yIGNoYW5nZSBwb3J0IHJvbGVzLgorICovCitlbnVtIFBvcnRSb2xlVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEZW5vdGVzIHRoZSBkYXRhIHJvbGUgb2YgdGhlIHBvcnQuCisgICAgICogVGhlIHBvcnQgY2FuIGVpdGhlciBiZSBhICJob3N0IiBvciBhICJkZXZpY2UiIGZvciBkYXRhLgorICAgICAqIFRoaXMgbWFwcyB0byB0aGUgUG9ydERhdGFSb2xlIGVudW0uCisgICAgICovCisgICAgREFUQV9ST0xFID0gMCwKKworICAgIC8qKgorICAgICAqIERlbm90ZXMgdGhlIHBvd2VyIHJvbGUgb2YgdGhlIHBvcnQuCisgICAgICogVGhlIHBvcnQgY2FuIGVpdGhlciBiZSBhICJzb3VyY2UiIG9yICJzaW5rIiBmb3IgcG93ZXIuCisgICAgICogVGhpcyBtYXBzIHRvIFBvcnRQb3dlclJvbGUgZW51bS4KKyAgICAgKi8KKyAgICBQT1dFUl9ST0xFID0gMSwKKworICAgIC8qKgorICAgICAqIFVTQiBwb3J0cyBjYW4gYmUgYSBwdXJlIERGUCBwb3J0IHdoaWNoIGNhbiBvbmx5IGFjdAorICAgICAqIGFzIGEgaG9zdC4gQSBVRlAgcG9ydCB3aGljaCBjYW4gb25seSBhY3QgYXMgYSBkZXZpY2UuCisgICAgICogT3IgYSBkdWFsIHJvbGUgcG9ydHMgd2hpY2ggY2FuIGVpdGhlciBjYW4gYXMgYSBob3N0IG9yCisgICAgICogYSBkZXZpY2UuIFRoaXMgcHJvcGVydHkgaXMgdXNlZCB0byBtZW50aW9uIHRoZW0uCisgICAgICovCisgICAgTU9ERSA9IDIsCit9OworCitAZXhwb3J0CitlbnVtIFBvcnREYXRhUm9sZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBkb2VzIG5vdCBoYXZlIGEgZGF0YSByb2xlLgorICAgICAqIEluIGNhc2Ugb2YgRFJQLCB0aGUgY3VycmVudCBkYXRhIHJvbGUgb2YgdGhlIHBvcnQgaXMgb25seSByZXNvbHZlZAorICAgICAqIHdoZW4gdGhlIHR5cGUtYyBoYW5kc2hha2UgaGFwcGVucy4KKyAgICAgKi8KKyAgICBOT05FID0gMCwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBwb3J0IGlzIGFjdGluZyBhcyBhIGhvc3QgZm9yIGRhdGEuCisgICAgICovCisgICAgSE9TVCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZWQgdGhhdCB0aGUgcG9ydCBpcyBhY3RpbmcgYXMgYSBkZXZpY2UgZm9yIGRhdGEuCisgICAgICovCisgICAgREVWSUNFID0gMiwKKworICAgIE5VTV9EQVRBX1JPTEVTID0gMywKK307CisKK0BleHBvcnQKK2VudW0gUG9ydFBvd2VyUm9sZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBkb2VzIG5vdCBoYXZlIGEgcG93ZXIgcm9sZS4KKyAgICAgKiBJbiBjYXNlIG9mIERSUCwgdGhlIGN1cnJlbnQgcG93ZXIgcm9sZSBvZiB0aGUgcG9ydCBpcyBvbmx5IHJlc29sdmVkCisgICAgICogd2hlbiB0aGUgdHlwZS1jIGhhbmRzaGFrZSBoYXBwZW5zLgorICAgICAqLworICAgIE5PTkUgPSAwLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgaXMgc3VwcGx5aW5nIHBvd2VyIHRvIHRoZSBvdGhlciBwb3J0LgorICAgICAqLworICAgIFNPVVJDRSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBpcyBzaW5raW5nIHBvd2VyIGZyb20gdGhlIG90aGVyIHBvcnQuCisgICAgICovCisgICAgU0lOSyA9IDIsCisKKyAgICBOVU1fUE9XRVJfUk9MRVMgPSAzLAorfTsKKworQGV4cG9ydAorZW51bSBQb3J0TW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBkb2VzIG5vdCBoYXZlIGEgbW9kZS4KKyAgICAgKiBJbiBjYXNlIG9mIERSUCwgdGhlIGN1cnJlbnQgbW9kZSBvZiB0aGUgcG9ydCBpcyBvbmx5IHJlc29sdmVkCisgICAgICogd2hlbiB0aGUgdHlwZS1jIGhhbmRzaGFrZSBoYXBwZW5zLgorICAgICAqLworICAgIE5PTkUgPSAwLAorICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IHBvcnQgY2FuIG9ubHkgYWN0IGFzIGRldmljZSBmb3IgZGF0YSBhbmQgc2luayBmb3IgcG93ZXIuCisgICAgICovCisgICAgVUZQID0gMSwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGUgcG9ydCBjYW4gb25seSBhY3QgYXMgaG9zdCBmb3IgZGF0YSBhbmQgc291cmNlIGZvciBwb3dlci4KKyAgICAgKi8KKyAgICBERlAgPSAyLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIGNhbiBlaXRoZXIgYWN0IGFzIFVGUCBvciBERlAgYXQgYSBnaXZlbiBwb2ludCBvZiB0aW1lLgorICAgICAqLworICAgIERSUCA9IDMsCisKKyAgICBOVU1fTU9ERVMgPSA0LAorfTsKKworLyoqCisgKiBVc2VkIGFzIGEgY29udGFpbmVyIHRvIHNlbmQgcG9ydCByb2xlIGluZm9ybWF0aW9uLgorICovCitzdHJ1Y3QgUG9ydFJvbGUgeworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiBQb3J0IFJvbGUuCisgICAgICogTWFwcyB0byB0aGUgUG9ydFJvbGVUeXBlIGVudW0uCisgICAgICovCisgICAgUG9ydFJvbGVUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiB3aGVuIHR5cGUgaXMgSEFMX1VTQl9EQVRBX1JPTEUgcGFzcyB2YWx1ZXMgZnJvbSBlbnVtIFBvcnREYXRhUm9sZS4KKyAgICAgKiB3aGVuIHR5cGUgaXMgSEFMX1VTQl9QT1dFUl9ST0xFIHBhc3MgdmFsdWVzIGZyb20gZW51bSBQb3J0UG93ZXJSb2xlLgorICAgICAqIHdoZW4gdHlwZSBpcyBIQUxfVVNCX01PREUgcGFzcyB2YWx1ZXMgZnJvbSBlbnVtIFBvcnRNb2RlLgorICAgICAqLworICAgIHVpbnQzMl90IHJvbGU7Cit9OworCisvKioKKyAqIFVzZWQgYXMgdGhlIGNvbnRhaW5lciB0byByZXBvcnQgZGF0YSBiYWNrIHRvIHRoZSBjYWxsZXIuCisgKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24gc3RhdHVzIG9mIGEgc2luZ2xlIFVTQiBwb3J0LgorICovCitzdHJ1Y3QgUG9ydFN0YXR1cyB7CisgICAgIC8qKgorICAgICAgKiBOYW1lIG9mIHRoZSBwb3J0LgorICAgICAgKiBVc2VkIGFzIHRoZSBwb3J0J3MgaWQgYnkgdGhlIGNhbGxlci4KKyAgICAgICovCisgICAgIHN0cmluZyBwb3J0TmFtZTsKKworICAgICAvKioKKyAgICAgICogRGF0YSByb2xlIG9mIHRoZSBwb3J0LgorICAgICAgKi8KKyAgICAgUG9ydERhdGFSb2xlIGN1cnJlbnREYXRhUm9sZTsKKworICAgICAvKioKKyAgICAgICogUG93ZXIgUm9sZSBvZiB0aHRlIHBvcnQuCisgICAgICAqLworICAgICBQb3J0UG93ZXJSb2xlIGN1cnJlbnRQb3dlclJvbGU7CisKKyAgICAgLyoqCisgICAgICAqIE1vZGUgaW4gd2hpY2ggdGhlIHBvcnQgaXMgY29ubmVjdGVkLgorICAgICAgKiBDYW4gYmUgVUZQIG9yIERGUC4KKyAgICAgICovCisgICAgIFBvcnRNb2RlIGN1cnJlbnRNb2RlOworCisgICAgIC8qKgorICAgICAgKiBUcnVlIGluZGljYXRlcyB0aGF0IHRoZSBwb3J0J3MgbW9kZSBjYW4KKyAgICAgICogYmUgY2hhbmdlZC4gRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgKi8KKyAgICAgYm9vbCBjYW5DaGFuZ2VNb2RlOworCisgICAgIC8qKgorICAgICAgKiBUcnVlIGluZGljYXRlcyB0aGF0IHRoZSBwb3J0J3MgZGF0YSByb2xlCisgICAgICAqIGNhbiBiZSBjaGFuZ2VkLiBGYWxzZSBvdGhlcndpc2UuCisgICAgICAqIEZvciBleGFtcGxlLCB0cnVlIGlmIFR5cGUtQyBQRCBQRF9TV0FQCisgICAgICAqIGlzIHN1cHBvcnRlZC4KKyAgICAgICovCisgICAgIGJvb2wgY2FuQ2hhbmdlRGF0YVJvbGU7CisKKyAgICAgLyoqCisgICAgICAqIFRydWUgaW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQncyBwb3dlciByb2xlCisgICAgICAqIGNhbiBiZSBjaGFuZ2VkLiBGYWxzZSBvdGhlcndpc2UuCisgICAgICAqIEZvciBleGFtcGxlLCB0cnVlIGlmIFR5cGUtQyBQRCBQUl9TV0FQCisgICAgICAqIGlzIHN1cHBvcnRlZC4KKyAgICAgICovCisgICAgIGJvb2wgY2FuQ2hhbmdlUG93ZXJSb2xlOworCisgICAgIC8qKgorICAgICAgKiBJZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBsb2NhbCBwb3J0LgorICAgICAgKgorICAgICAgKiBVRlAgLSBJbmRpY2F0ZXMgdGhhdCBwb3J0IGNhbiBvbmx5IGFjdCBhcyBkZXZpY2UgZm9yCisgICAgICAqICAgICAgIGRhdGEgYW5kIHNpbmsgZm9yIHBvd2VyLgorICAgICAgKiBERlAgLSBJbmRpY2F0ZXMgdGhlIHBvcnQgY2FuIG9ubHkgYWN0IGFzIGhvc3QgZm9yIGRhdGEKKyAgICAgICogICAgICAgYW5kIHNvdXJjZSBmb3IgcG93ZXIuCisgICAgICAqIERSUCAtIEluZGljYXRlcyBjYW4gZWl0aGVyIGFjdCBhcyBVRlAgb3IgREZQIGF0IGEKKyAgICAgICogICAgICAgZ2l2ZW4gcG9pbnQgb2YgdGltZS4KKyAgICAgICovCisgICAgICBQb3J0TW9kZSBzdXBwb3J0ZWRNb2RlczsKK307CmRpZmYgLS1naXQgYS91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQzOGJjNwotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVXNiVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFVzYlYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAgYi91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFVzYlYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzczOThmCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbFVzYlYxXzBUYXJnZXRUZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JVXNiQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCisjZGVmaW5lIFRJTUVPVVRfUEVSSU9EIDEwCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpJVXNiOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0RGF0YVJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0UG93ZXJSb2xlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0Um9sZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFJvbGVUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciB0aGUgVVNCIGhpZGwgSEFMCitjbGFzcyBVc2JIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICAvLyBDYWxsYmFjayBjbGFzcyBmb3IgdGhlIFVTQiBISURMIGhhbC4KKyAgLy8gVXNiIEhhbCB3aWxsIGNhbGwgdGhpcyBvYmplY3QgdXBvbiByb2xlIHN3aXRjaCBvciBwb3J0IHF1ZXJ5LgorICBjbGFzcyBVc2JDYWxsYmFjayA6IHB1YmxpYyBJVXNiQ2FsbGJhY2sgeworICAgIFVzYkhpZGxUZXN0JiBwYXJlbnRfOworICAgIGludCBjb29raWU7CisKKyAgIHB1YmxpYzoKKyAgICBVc2JDYWxsYmFjayhVc2JIaWRsVGVzdCYgcGFyZW50LCBpbnQgY29va2llKQorICAgICAgICA6IHBhcmVudF8ocGFyZW50KSwgY29va2llKGNvb2tpZSl7fTsKKworICAgIHZpcnR1YWwgflVzYkNhbGxiYWNrKCkgPSBkZWZhdWx0OworCisgICAgLy8gQ2FsbGJhY2sgbWV0aG9kIGZvciB0aGUgcG9ydCBzdGF0dXMuCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFBvcnRTdGF0dXM+JiBjdXJyZW50UG9ydFN0YXR1cywgU3RhdHVzIHJldHZhbCkgb3ZlcnJpZGUgeworICAgICAgaWYgKHJldHZhbCA9PSBTdGF0dXM6OlNVQ0NFU1MpIHsKKyAgICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5wb3J0TmFtZS5jX3N0cigpOworICAgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfc3RhdHVzLmN1cnJlbnREYXRhUm9sZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5jdXJyZW50RGF0YVJvbGU7CisgICAgICAgIHBhcmVudF8udXNiX2xhc3RfcG9ydF9zdGF0dXMuY3VycmVudFBvd2VyUm9sZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5jdXJyZW50UG93ZXJSb2xlOworICAgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfc3RhdHVzLmN1cnJlbnRNb2RlID0KKyAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzWzBdLmN1cnJlbnRNb2RlOworICAgICAgfQorICAgICAgcGFyZW50Xy51c2JfbGFzdF9jb29raWUgPSBjb29raWU7CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9OworCisgICAgLy8gQ2FsbGJhY2sgbWV0aG9kIGZvciB0aGUgc3RhdHVzIG9mIHJvbGUgc3dpdGNoIG9wZXJhdGlvbi4KKyAgICBSZXR1cm48dm9pZD4gbm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhjb25zdCBoaWRsX3N0cmluZyYgLypwb3J0TmFtZSovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvcnRSb2xlJiBuZXdSb2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyByZXR2YWwpIG92ZXJyaWRlIHsKKyAgICAgIHBhcmVudF8udXNiX2xhc3Rfc3RhdHVzID0gcmV0dmFsOworICAgICAgcGFyZW50Xy51c2JfbGFzdF9jb29raWUgPSBjb29raWU7CisgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfcm9sZSA9IG5ld1JvbGU7CisgICAgICBwYXJlbnRfLnVzYl9yb2xlX3N3aXRjaF9kb25lID0gdHJ1ZTsKKyAgICAgIHBhcmVudF8ubm90aWZ5KCk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH07CisgIH07CisKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEFMT0dJKCJTZXR1cCIpOworICAgIHVzYiA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElVc2I+KCk7CisgICAgQVNTRVJUX05FKHVzYiwgbnVsbHB0cik7CisKKyAgICB1c2JfY2JfMiA9IG5ldyBVc2JDYWxsYmFjaygqdGhpcywgMik7CisgICAgQVNTRVJUX05FKHVzYl9jYl8yLCBudWxscHRyKTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zZXRDYWxsYmFjayh1c2JfY2JfMik7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IEFMT0dJKCJUZWFyZG93biIpOyB9CisKKyAgLy8gVXNlZCBhcyBhIG1lY2hhbmlzbSB0byBpbmZvcm0gdGhlIHRlc3QgYWJvdXQgZGF0YS9ldmVudCBjYWxsYmFjay4KKyAgaW5saW5lIHZvaWQgbm90aWZ5KCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayh1c2JfbXR4KTsKKyAgICB1c2JfY291bnQrKzsKKyAgICB1c2JfY3Yubm90aWZ5X29uZSgpOworICB9CisKKyAgLy8gVGVzdCBjb2RlIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gd2FpdCBmb3IgZGF0YS9ldmVudCBjYWxsYmFjay4KKyAgaW5saW5lIHN0ZDo6Y3Zfc3RhdHVzIHdhaXQoKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKHVzYl9tdHgpOworCisgICAgc3RkOjpjdl9zdGF0dXMgc3RhdHVzID0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQ7CisgICAgYXV0byBub3cgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICB3aGlsZSAodXNiX2NvdW50ID09IDApIHsKKyAgICAgIHN0YXR1cyA9CisgICAgICAgICAgdXNiX2N2LndhaXRfdW50aWwobG9jaywgbm93ICsgc3RkOjpjaHJvbm86OnNlY29uZHMoVElNRU9VVF9QRVJJT0QpKTsKKyAgICAgIGlmIChzdGF0dXMgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQpIHsKKyAgICAgICAgQUxPR0koInRpbWVvdXQiKTsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgIH0KKyAgICB9CisgICAgdXNiX2NvdW50LS07CisgICAgcmV0dXJuIHN0YXR1czsKKyAgfQorCisgIC8vIFVTQiBoaWRsIGhhbCBQcm94eQorICBzcDxJVXNiPiB1c2I7CisKKyAgLy8gQ2FsbGJhY2sgb2JqZWN0cyBmb3IgdXNiIGhpZGwKKyAgLy8gTWV0aG9kcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBjYWxsZWQgdG8gbm90aWZ5IHBvcnQgc3RhdHVzIHVwZGF0ZXMuCisgIHNwPElVc2JDYWxsYmFjaz4gdXNiX2NiXzEsIHVzYl9jYl8yOworCisgIC8vIFRoZSBsYXN0IGNvbnZleWVkIHN0YXR1cyBvZiB0aGUgVVNCIHBvcnRzLgorICAvLyBTdG9yZXMgaW5mb3JtYXRpb24gb2YgY3VycmVudHRfZGF0YV9yb2xlLCBwb3dlcl9yb2xlIGZvciBhbGwgdGhlIFVTQiBwb3J0cworICBQb3J0U3RhdHVzIHVzYl9sYXN0X3BvcnRfc3RhdHVzOworCisgIC8vIFN0YXR1cyBvZiB0aGUgbGFzdCByb2xlIHN3aXRjaCBvcGVyYXRpb24uCisgIFN0YXR1cyB1c2JfbGFzdF9zdGF0dXM7CisKKyAgLy8gUG9ydCByb2xlIGluZm9ybWF0aW9uIG9mIHRoZSBsYXN0IHJvbGUgc3dpdGNoIG9wZXJhdGlvbi4KKyAgUG9ydFJvbGUgdXNiX2xhc3RfcG9ydF9yb2xlOworCisgIC8vIEZsYWcgdG8gaW5kaWNhdGUgdGhlIGludm9jYXRpb24gb2Ygcm9sZSBzd2l0Y2ggY2FsbGJhY2suCisgIGJvb2wgdXNiX3JvbGVfc3dpdGNoX2RvbmU7CisKKyAgLy8gSWRlbnRpZmllciBmb3IgdGhlIHVzYiBjYWxsYmFjayBvYmplY3QuCisgIC8vIFN0b3JlcyB0aGUgY29va2llIG9mIHRoZSBsYXN0IGludm9rZWQgdXNiIGNhbGxiYWNrIG9iamVjdC4KKyAgaW50IHVzYl9sYXN0X2Nvb2tpZTsKKworICAvLyBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyB0byBjb29yZGluYXRlIGJldHdlZW4gbWFpbiB0ZXN0IHRocmVhZAorICAvLyBhbmQgdGhlIGNhbGxiYWNrIHRocmVhZC4KKyAgc3RkOjptdXRleCB1c2JfbXR4OworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSB1c2JfY3Y7CisgIGludCB1c2JfY291bnQ7Cit9OworCisvKgorICogVGVzdCB0byBzZWUgaWYgc2V0Q2FsbGJhY2sgc3VjY2VlZHMuCisgKiBDYWxsYmFjayBvamVjdCBpcyBjcmVhdGVkIGFuZCByZWdpc3RlcmVkLgorICogQ2hlY2sgdG8gc2VlIGlmIHRoZSBoaWRsIHRyYW5zYWN0aW9uIHN1Y2NlZWRlZC4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBzZXRDYWxsYmFjaykgeworICB1c2JfY2JfMSA9IG5ldyBVc2JDYWxsYmFjaygqdGhpcywgMSk7CisgIEFTU0VSVF9ORSh1c2JfY2JfMSwgbnVsbHB0cik7CisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnNldENhbGxiYWNrKHVzYl9jYl8xKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8qCisgKiBDaGVjayB0byBzZWUgaWYgcXVlcnlpbmcgdHlwZS1jCisgKiBwb3J0IHN0YXR1cyBzdWNjZWVkcy4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBxdWVyeVBvcnRTdGF0dXMpIHsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+cXVlcnlQb3J0U3RhdHVzKCk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworICBBTE9HSSgicmlnaHRhZnRlcjogJXMiLCB1c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZS5jX3N0cigpKTsKK30KKworLyoKKyAqIFRyeWluZyB0byBzd2l0Y2ggYSBub24tZXhpc3RlbnQgcG9ydCBzaG91bGQgZmFpbC4KKyAqIFRoaXMgdGVzdCBjYXNlIHRyaWVkIHRvIHN3aXRjaCB0aGUgcG9ydCB3aXRoIGVtcHR5CisgKiBuYW1lIHdoaWNoIGlzIGV4cGVjdGVkIHRvIGZhaWwuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgc3dpdGNoRW1wdHlQb3J0KSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRTsKKworICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKCIiLCByb2xlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKKyAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1IsIHVzYl9sYXN0X3N0YXR1cyk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworfQorCisvKgorICogVGVzdCBzd2l0Y2hpbmcgdGhlIG1vZGUgb2YgdXNiIHBvcnQuCisgKiBUZXN0IGNhc2UgcXVlcmllcyB0aGUgdXNiIHBvcnRzIHByZXNlbnQgaW4gZGV2aWNlLgorICogSWYgdGhlcmUgaXMgYXRsZWFzdCBvbmUgdXNiIHBvcnQsIGEgbW9kZSBzd2l0Y2gKKyAqIHRvIERGUCBpcyBhdHRlbXB0ZWQgZm9yIHRoZSBwb3J0LgorICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlcyBhcmUgY2hlY2tlZCB0byBzZWUgaWYgdGhlIG1vZGUKKyAqIHN3aXRjaCB3YXMgc3VjY2Vzc2Z1bGwuIFVwb24gc3VjY2VzcywgU3RhdHVzOjpTVUNDRVNTCisgKiBpcyBleHBlY3RlZCB0byBiZSByZXR1cm5lZC4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBzd2l0Y2hNb2RldG9ERlApIHsKKyAgc3RydWN0IFBvcnRSb2xlIHJvbGU7CisgIHJvbGUudHlwZSA9IFBvcnRSb2xlVHlwZTo6TU9ERTsKKyAgcm9sZS5yb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRNb2RlOjpERlApOworCisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICBpZiAoIXVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lLmVtcHR5KCkpIHsKKyAgICBoaWRsX3N0cmluZyBwb3J0QmVpbmdTd2l0Y2hlZCA9IHVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lOworICAgIEFMT0dJKCJtb2RlIHBvcnRuYW1lOiVzIiwgcG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSk7CisgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCksIHJvbGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3RkOjpjdl9zdGF0dXMgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKyAgICB3aGlsZSAod2FpdFN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCAmJgorICAgICAgICAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9PSBmYWxzZSkKKyAgICAgIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisKKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXRTdGF0dXMpOworICAgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0Um9sZVR5cGU6Ok1PREUpLAorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnR5cGUpKTsKKyAgICBpZiAodXNiX2xhc3Rfc3RhdHVzID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0TW9kZTo6REZQKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnJvbGUpKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX05FKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0TW9kZTo6VUZQKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnJvbGUpKTsKKyAgICB9CisgIH0KK30KKworLyoKKyAqIFRlc3Qgc3dpdGNoaW5nIHRoZSBwb3dlciByb2xlIG9mIHVzYiBwb3J0LgorICogVGVzdCBjYXNlIHF1ZXJpZXMgdGhlIHVzYiBwb3J0cyBwcmVzZW50IGluIGRldmljZS4KKyAqIElmIHRoZXJlIGlzIGF0bGVhc3Qgb25lIHVzYiBwb3J0LCBhIHBvd2VyIHJvbGUgc3dpdGNoCisgKiB0byBTT1VSQ0UgaXMgYXR0ZW1wdGVkIGZvciB0aGUgcG9ydC4KKyAqIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXMgYXJlIGNoZWNrZWQgdG8gc2VlIGlmIHRoZSBwb3dlciByb2xlCisgKiBzd2l0Y2ggd2FzIHN1Y2Nlc3NmdWxsLiBVcG9uIHN1Y2Nlc3MsIFN0YXR1czo6U1VDQ0VTUworICogaXMgZXhwZWN0ZWQgdG8gYmUgcmV0dXJuZWQuCisgKi8KKworVEVTVF9GKFVzYkhpZGxUZXN0LCBzd2l0Y2hQb3dlclJvbGUpIHsKKyAgc3RydWN0IFBvcnRSb2xlIHJvbGU7CisgIHJvbGUudHlwZSA9IFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRTsKKyAgcm9sZS5yb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRQb3dlclJvbGU6OlNPVVJDRSk7CisKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+cXVlcnlQb3J0U3RhdHVzKCk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgIGlmICghdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUuZW1wdHkoKSkgeworICAgIGhpZGxfc3RyaW5nIHBvcnRCZWluZ1N3aXRjaGVkID0gdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWU7CisgICAgQUxPR0koInN3aXRjaFBvd2VyIHJvbGUgcG9ydG5hbWU6JXMiLCBwb3J0QmVpbmdTd2l0Y2hlZC5jX3N0cigpKTsKKyAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9IGZhbHNlOworICAgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnN3aXRjaFJvbGUocG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSwgcm9sZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzdGQ6OmN2X3N0YXR1cyB3YWl0U3RhdHVzID0gd2FpdCgpOworICAgIHdoaWxlICh3YWl0U3RhdHVzID09IHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0ICYmCisgICAgICAgICAgIHVzYl9yb2xlX3N3aXRjaF9kb25lID09IGZhbHNlKQorICAgICAgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKworICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdFN0YXR1cyk7CisgICAgRVhQRUNUX0VRKDIsIHVzYl9sYXN0X2Nvb2tpZSk7CisKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRSksCisgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUudHlwZSkpOworICAgIGlmICh1c2JfbGFzdF9zdGF0dXMgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRQb3dlclJvbGU6OlNPVVJDRSksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFBvd2VyUm9sZTo6U0lOSyksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfQorICB9Cit9CisKKy8qCisgKiBUZXN0IHN3aXRjaGluZyB0aGUgZGF0YSByb2xlIG9mIHVzYiBwb3J0LgorICogVGVzdCBjYXNlIHF1ZXJpZXMgdGhlIHVzYiBwb3J0cyBwcmVzZW50IGluIGRldmljZS4KKyAqIElmIHRoZXJlIGlzIGF0bGVhc3Qgb25lIHVzYiBwb3J0LCBhIHBvd2VyIHJvbGUgc3dpdGNoCisgKiB0byBIT1NUIGlzIGF0dGVtcHRlZCBmb3IgdGhlIHBvcnQuCisgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVzIGFyZSBjaGVja2VkIHRvIHNlZSBpZiB0aGUgcG93ZXIgcm9sZQorICogc3dpdGNoIHdhcyBzdWNjZXNzZnVsbC4gVXBvbiBzdWNjZXNzLCBTdGF0dXM6OlNVQ0NFU1MKKyAqIGlzIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkLgorICovCitURVNUX0YoVXNiSGlkbFRlc3QsIHN3aXRjaERhdGFSb2xlKSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRTsKKyAgcm9sZS5yb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnREYXRhUm9sZTo6SE9TVCk7CisKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+cXVlcnlQb3J0U3RhdHVzKCk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgIGlmICghdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUuZW1wdHkoKSkgeworICAgIGhpZGxfc3RyaW5nIHBvcnRCZWluZ1N3aXRjaGVkID0gdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWU7CisgICAgQUxPR0koInBvcnRuYW1lOiVzIiwgcG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSk7CisgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCksIHJvbGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3RkOjpjdl9zdGF0dXMgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKyAgICB3aGlsZSAod2FpdFN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCAmJgorICAgICAgICAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9PSBmYWxzZSkKKyAgICAgIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisKKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXRTdGF0dXMpOworICAgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRSksCisgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUudHlwZSkpOworICAgIGlmICh1c2JfbGFzdF9zdGF0dXMgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnREYXRhUm9sZTo6SE9TVCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydERhdGFSb2xlOjpERVZJQ0UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0KKyAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL3VzYi9BbmRyb2lkLmJwIGIvdXNiL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLmJwIGIvdmlicmF0b3IvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJlZmY2OAotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVZpYnJhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvVmlicmF0b3JBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSUh3VmlicmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9Cbkh3VmlicmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9CcEh3VmlicmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9Cc1ZpYnJhdG9yLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLm1rIGIvdmlicmF0b3IvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU0YjY1NQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjI4IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRWZmZWN0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5FZmZlY3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEVmZmVjdFN0cmVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdFN0cmVuZ3RoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLkVmZmVjdFN0cmVuZ3RoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWaWJyYXRvci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9JVmlicmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjpJVmlicmF0b3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3ItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFZmZlY3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvRWZmZWN0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLkVmZmVjdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRWZmZWN0U3RyZW5ndGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvRWZmZWN0U3RyZW5ndGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMuRWZmZWN0U3RyZW5ndGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZpYnJhdG9yLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0lWaWJyYXRvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZpYnJhdG9yLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OklWaWJyYXRvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZpYnJhdG9yLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3ItVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlicmF0b3IuaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmhhbCBiL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1N2FkMGQKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmhhbApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDsKKworaW50ZXJmYWNlIElWaWJyYXRvciB7CisgIC8qKgorICAgKiBUdXJuIG9uIHZpYnJhdG9yCisgICAqCisgICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBvbmx5IGJlIGNhbGxlZCBhZnRlciB0aGUgcHJldmlvdXMgdGltZW91dCBoYXMgZXhwaXJlZCBvcgorICAgKiB3YXMgY2FuY2VsZWQgKHRocm91Z2ggb2ZmKCkpLgorICAgKiBAcGFyYW0gdGltZW91dF9tcyBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHZpYnJhdGUuCisgICAqIEByZXR1cm4gdmlicmF0b3JPblJldCB3aGV0aGVyIHZpYnJhdG9yIGNvbW1hbmQgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LgorICAgKi8KKyAgb24odWludDMyX3QgdGltZW91dE1zKSBnZW5lcmF0ZXMgKFN0YXR1cyB2aWJyYXRvck9uUmV0KTsKKworICAvKioKKyAgICogVHVybiBvZmYgdmlicmF0b3IKKyAgICoKKyAgICogQ2FuY2VsIGEgcHJldmlvdXNseS1zdGFydGVkIHZpYnJhdGlvbiwgaWYgYW55LgorICAgKiBAcmV0dXJuIHZpYnJhdG9yT2ZmUmV0IHdoZXRoZXIgdmlicmF0b3IgY29tbWFuZCB3YXMgc3VjY2Vzc2Z1bCBvciBub3QuCisgICAqLworICBvZmYoKSBnZW5lcmF0ZXMgKFN0YXR1cyB2aWJyYXRvck9mZlJldCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgd2hldGhlciB0aGUgdmlicmF0b3Igc3VwcG9ydHMgY2hhbmdlcyB0byBpdHMgdmlicmF0aW9uYWwgYW1wbGl0dWRlLgorICAgKi8KKyAgc3VwcG9ydHNBbXBsaXR1ZGVDb250cm9sKCkgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgbW90b3IncyB2aWJyYXRpb25hbCBhbXBsaXR1ZGUuCisgICAqCisgICAqIENoYW5nZXMgdGhlIGZvcmNlIGJlaW5nIHByb2R1Y2VkIGJ5IHRoZSB1bmRlcmx5aW5nIG1vdG9yLgorICAgKgorICAgKiBAcGFyYW0gYW1wbGl0dWRlIFRoZSB1bml0bGVzcyBmb3JjZSBzZXR0aW5nLiBOb3RlIHRoYXQgdGhpcyBudW1iZXIgbXVzdAorICAgKiAgICAgICAgICAgICAgICAgIGJlIGJldHdlZW4gMSBhbmQgMjU1LCBpbmNsdXNpdmUuIElmIHRoZSBtb3RvciBkb2VzIG5vdAorICAgKiAgICAgICAgICAgICAgICAgIGhhdmUgZXhhY3RseSAyNTUgc3RlcHMsIGl0IG11c3QgZG8gaXQncyBiZXN0IHRvIG1hcCBpdAorICAgKiAgICAgICAgICAgICAgICAgIG9udG8gdGhlIG51bWJlciBvZiBzdGVwcyBpdCBkb2VzIGhhdmUuCisgICAqIEByZXR1cm4gc3RhdHVzIFdoZXRoZXIgdGhlIGNvbW1hbmQgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LiBNdXN0IHJldHVybgorICAgKiAgICAgICAgICAgICAgICBTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTiBpZiBzZXR0aW5nIHRoZSBhbXBsaXR1ZGUgaXMKKyAgICogICAgICAgICAgICAgICAgbm90IHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLgorICAgKi8KKyAgc2V0QW1wbGl0dWRlKHVpbnQ4X3QgYW1wbGl0dWRlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgIC8qKgorICAgKiBGaXJlIG9mZiBhIHByZWRlZmluZWQgaGFwdGljIGV2ZW50LgorICAgKgorICAgKiBAcGFyYW0gZXZlbnQgVGhlIHR5cGUgb2YgaGFwdGljIGV2ZW50IHRvIHRyaWdnZXIuCisgICAqIEByZXR1cm4gc3RhdHVzIFdoZXRoZXIgdGhlIGVmZmVjdCB3YXMgc3VjY2Vzc2Z1bGx5IHBlcmZvcm1lZCBvciBub3QuIE11c3QKKyAgICogICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6VU5TVVBQT1JURURfT1BFUkFUSU9OIGlzIHRoZSBlZmZlY3QgaXMgbm90CisgICAqICAgICAgICAgICAgICAgIHN1cHBvcnRlZC4KKyAgICogQHJldHVybiBsZW5ndGhNcyBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhlIGV2ZW50IGlzIGV4cGVjdGVkIHRvIHRha2UgaW4KKyAgICogICAgICAgICAgICAgICAgICBtaWxsaXNlY29uZHMuIFRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIHBlcmZlY3RseSBhY2N1cmF0ZSwKKyAgICogICAgICAgICAgICAgICAgICBidXQgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBhcHByb3hpbWF0aW9uLiBTaG91bGQgYmUgYQorICAgKiAgICAgICAgICAgICAgICAgIHBvc2l0aXZlLCBub24temVybyB2YWx1ZSBpZiB0aGUgcmV0dXJuZWQgc3RhdHVzIGlzCisgICAqICAgICAgICAgICAgICAgICAgU3RhdHVzOjpPSywgYW5kIHNldCB0byAwIG90aGVyd2lzZS4KKyAgICovCisgIHBlcmZvcm0oRWZmZWN0IGVmZmVjdCwgRWZmZWN0U3RyZW5ndGggc3RyZW5ndGgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgbGVuZ3RoTXMpOworfTsKZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MjAwZGEKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzAgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiVmlicmF0b3IuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY0YTk1NQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwzNSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICBsaWJoaWRsYmFzZSBcCisgIGxpYmhpZGx0cmFuc3BvcnQgXAorICBsaWJsb2cgXAorICBsaWJ1dGlscyBcCisgIGxpYmhhcmR3YXJlIFwKKyAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5jcHAgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljZjNkYwotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L1ZpYnJhdG9yLmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWaWJyYXRvclNlcnZpY2UiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS92aWJyYXRvci5oPgorCisjaW5jbHVkZSAiVmlicmF0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB2aWJyYXRvciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaWJyYXRvcjo6VmlicmF0b3IodmlicmF0b3JfZGV2aWNlX3QgKmRldmljZSkgOiBtRGV2aWNlKGRldmljZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3IgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gVmlicmF0b3I6Om9uKHVpbnQzMl90IHRpbWVvdXRfbXMpIHsKKyAgICBpbnQzMl90IHJldCA9IG1EZXZpY2UtPnZpYnJhdG9yX29uKG1EZXZpY2UsIHRpbWVvdXRfbXMpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBBTE9HRSgib24gY29tbWFuZCBmYWlsZWQgOiAlcyIsIHN0cmVycm9yKC1yZXQpKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6VU5LTk9XTl9FUlJPUjsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK1JldHVybjxTdGF0dXM+IFZpYnJhdG9yOjpvZmYoKSAgeworICAgIGludDMyX3QgcmV0ID0gbURldmljZS0+dmlicmF0b3Jfb2ZmKG1EZXZpY2UpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBBTE9HRSgib2ZmIGNvbW1hbmQgZmFpbGVkIDogJXMiLCBzdHJlcnJvcigtcmV0KSk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV05fRVJST1I7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48Ym9vbD4gVmlicmF0b3I6OnN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpICB7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZXR1cm48U3RhdHVzPiBWaWJyYXRvcjo6c2V0QW1wbGl0dWRlKHVpbnQ4X3QpIHsKKyAgICByZXR1cm4gU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT047Cit9CisKK1JldHVybjx2b2lkPiBWaWJyYXRvcjo6cGVyZm9ybShFZmZlY3QsIEVmZmVjdFN0cmVuZ3RoLCBwZXJmb3JtX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IoU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04sIDApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lWaWJyYXRvciogSElETF9GRVRDSF9JVmlicmF0b3IoY29uc3QgY2hhciAqIC8qaGFsKi8pIHsKKyAgICB2aWJyYXRvcl9kZXZpY2VfdCAqdmliX2RldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqaHdfbW9kdWxlID0gbnVsbHB0cjsKKworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlKFZJQlJBVE9SX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldCA9IHZpYnJhdG9yX29wZW4oaHdfbW9kdWxlLCAmdmliX2RldmljZSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgQUxPR0UoInZpYnJhdG9yX29wZW4gZmFpbGVkOiAlZCIsIHJldCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiaHdfZ2V0X21vZHVsZSAlcyBmYWlsZWQ6ICVkIiwgVklCUkFUT1JfSEFSRFdBUkVfTU9EVUxFX0lELCByZXQpOworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpYnJhdG9yKHZpYl9kZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gb3BlbiBsZWdhY3kgSEFMLiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHZpYnJhdG9yCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5oIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWE2ZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9WSUJSQVRPUl9WMV8wX1ZJQlJBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9WSUJSQVRPUl9WMV8wX1ZJQlJBVE9SX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB2aWJyYXRvciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgVmlicmF0b3IgOiBwdWJsaWMgSVZpYnJhdG9yIHsKKyAgVmlicmF0b3IodmlicmF0b3JfZGV2aWNlX3QgKmRldmljZSk7CisKKyAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3IgZm9sbG93LgorICBSZXR1cm48U3RhdHVzPiBvbih1aW50MzJfdCB0aW1lb3V0TXMpICBvdmVycmlkZTsKKyAgUmV0dXJuPFN0YXR1cz4gb2ZmKCkgIG92ZXJyaWRlOworICBSZXR1cm48Ym9vbD4gc3VwcG9ydHNBbXBsaXR1ZGVDb250cm9sKCkgb3ZlcnJpZGU7CisgIFJldHVybjxTdGF0dXM+IHNldEFtcGxpdHVkZSh1aW50OF90IGFtcGxpdHVkZSkgb3ZlcnJpZGU7CisgIFJldHVybjx2b2lkPiBwZXJmb3JtKEVmZmVjdCBlZmZlY3QsIEVmZmVjdFN0cmVuZ3RoIHN0cmVuZ3RoLCBwZXJmb3JtX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgdmlicmF0b3JfZGV2aWNlX3QgICAgKm1EZXZpY2U7Cit9OworCitleHRlcm4gIkMiIElWaWJyYXRvciogSElETF9GRVRDSF9JVmlicmF0b3IoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB2aWJyYXRvcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVklCUkFUT1JfVjFfMF9WSUJSQVRPUl9ICmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlLnJjIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDI3MDY1Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdmlicmF0b3ItMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2MwNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElWaWJyYXRvcj4oKTsKK30KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC90eXBlcy5oYWwgYi92aWJyYXRvci8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwODBjMDcKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICBPSywKKyAgICBVTktOT1dOX0VSUk9SLAorICAgIEJBRF9WQUxVRSwKKyAgICBVTlNVUFBPUlRFRF9PUEVSQVRJT04KK307CisKK0BleHBvcnQKK2VudW0gRWZmZWN0IDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEEgc2luZ2xlIGNsaWNrIGVmZmVjdC4KKyAgICAgKgorICAgICAqIFRoaXMgZWZmZWN0IHNob3VsZCBwcm9kdWNlIGEgc2hhcnAsIGNyaXNwIGNsaWNrIHNlbnNhdGlvbi4KKyAgICAgKi8KKyAgICBDTElDSywKKyAgICAvKioKKyAgICAgKiBBIGRvdWJsZSBjbGljayBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGlzIGVmZmVjdCBzaG91bGQgcHJvZHVjZSB0d28gc2VxdWVudGlhbCBzaGFycCwgY3Jpc3AgY2xpY2sgc2Vuc2F0aW9ucyB3aXRoIGEgbWluaW1hbAorICAgICAqIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdGhlbS4KKyAgICAgKi8KKyAgICBET1VCTEVfQ0xJQ0sKK307CisKK0BleHBvcnQKK2VudW0gRWZmZWN0U3RyZW5ndGggOiB1aW50OF90IHsKKyAgICBMSUdIVCwKKyAgICBNRURJVU0sCisgICAgU1RST05HCit9OwpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvdmlicmF0b3IvMS4wL3Z0cy9BbmRyb2lkLm1rCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCmNvcHkgdG8gdmlicmF0b3IvMS4wL3Z0cy9BbmRyb2lkLm1rCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMjVkZWYKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWaWJyYXRvclYxXzBUYXJnZXRUZXN0LmNwcCBiL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWaWJyYXRvclYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1YWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFZpYnJhdG9yVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJ2aWJyYXRvcl9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6RWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dmlicmF0b3I6OlYxXzA6OkVmZmVjdFN0cmVuZ3RoOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dmlicmF0b3I6OlYxXzA6OklWaWJyYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgVklCUkFUT1IgSElETCBIQUwuCitjbGFzcyBWaWJyYXRvckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICB2aWJyYXRvciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElWaWJyYXRvcj4oKTsKKyAgICBBU1NFUlRfTkUodmlicmF0b3IsIG51bGxwdHIpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJVmlicmF0b3I+IHZpYnJhdG9yOworfTsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cCAoa2VwdCBzaW5jZSB0aGlzIGZpbGUgaXMgYSB0ZW1wbGF0ZSkuCitjbGFzcyBWaWJyYXRvckhpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyBwcml2YXRlOgorfTsKKworc3RhdGljIHZvaWQgdmFsaWRhdGVQZXJmb3JtRWZmZWN0KFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGxlbmd0aE1zKSB7CisgIEFTU0VSVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8IHN0YXR1cyA9PSBTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTik7CisgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgQVNTRVJUX0dUKGxlbmd0aE1zLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMCkpOworICB9IGVsc2UgeworICAgICAgQVNTRVJUX0VRKGxlbmd0aE1zLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMCkpOworICB9Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBPblRoZW5PZmZCZWZvcmVUaW1lb3V0KSB7CisgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+b24oMjAwMCkpOworICBzbGVlcCgxKTsKKyAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHZpYnJhdG9yLT5vZmYoKSk7Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBQZXJmb3JtRWZmZWN0KSB7CisgIHZpYnJhdG9yLT5wZXJmb3JtKEVmZmVjdDo6Q0xJQ0ssIEVmZmVjdFN0cmVuZ3RoOjpNRURJVU0sIHZhbGlkYXRlUGVyZm9ybUVmZmVjdCk7CisgIHZpYnJhdG9yLT5wZXJmb3JtKEVmZmVjdDo6RE9VQkxFX0NMSUNLLCBFZmZlY3RTdHJlbmd0aDo6TElHSFQsIHZhbGlkYXRlUGVyZm9ybUVmZmVjdCk7Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBDaGFuZ2VWaWJyYXRpb25hbEFtcGxpdHVkZSkgeworICBpZiAodmlicmF0b3ItPnN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpKSB7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHZpYnJhdG9yLT5zZXRBbXBsaXR1ZGUoMSkpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+b24oMjAwMCkpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDEyOCkpOworICAgIHNsZWVwKDEpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDI1NSkpOworICAgIHNsZWVwKDEpOworICB9Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBBbXBsaXR1ZGVPdXRzaWRlUmFuZ2VGYWlscykgeworICBpZiAodmlicmF0b3ItPnN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpKSB7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDApKTsKKyAgfQorfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgU2V0QW1wbGl0dWRlUmV0dXJuVW5zdXBwb3J0ZWRPcGVyYXRpb25JZk5vdFN1cHBvcnRlZCkgeworICBpZiAoIXZpYnJhdG9yLT5zdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSkgeworICAgIEVYUEVDVF9FUShTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTiwgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgxKSk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBWaWJyYXRvckhpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS92aWJyYXRvci9BbmRyb2lkLmJwIGIvdmlicmF0b3IvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3ZyLzEuMC9BbmRyb2lkLmJwIGIvdnIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY5NDljNQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNTkgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJVnIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL1ZyQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lId1ZyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvQm5Id1ZyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvQnBId1ZyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvQnNWci5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS92ci8xLjAvQW5kcm9pZC5tayBiL3ZyLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNWM2NzVkCi0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw3NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS52ci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCBJVnIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZyL1YxXzAvSVZyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVnIuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudnJAMS4wOjpJVnIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudnItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgSVZyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92ci9WMV8wL0lWci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZyLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVnIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS92ci8xLjAvSVZyLmhhbCBiL3ZyLzEuMC9JVnIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmOTk2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvSVZyLmhhbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDsKKworaW50ZXJmYWNlIElWciB7CisgIC8qKgorICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gc2V0IHVwIGFueSBzdGF0ZSBuZWVkZWQgYXQgcnVudGltZSBzdGFydHVwLiAgVGhpcyBpcworICAgKiBjYWxsZWQgb25jZSBmcm9tIHRoZSBWck1hbmFnZXJTZXJ2aWNlIGR1cmluZyBpdHMgYm9vdCBwaGFzZS4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICBAZW50cnkKKyAgQGV4aXQKKyAgaW5pdCgpOworCisgIC8qKgorICAgKiBTZXQgdGhlIFZSIG1vZGUgc3RhdGUuICBQb3NzaWJsZSBzdGF0ZXMgb2YgdGhlIGVuYWJsZWQgcGFyYW1ldGVyIGFyZToKKyAgICogZmFsc2UgLSBWUiBtb2RlIGlzIGRpc2FibGVkLCB0dXJuIG9mZiBhbGwgVlItc3BlY2lmaWMgc2V0dGluZ3MuCisgICAqIHRydWUgLSBWUiBtb2RlIGlzIGVuYWJsZWQsIHR1cm4gb24gYWxsIFZSLXNwZWNpZmljIHNldHRpbmdzLgorICAgKgorICAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSB0aGUgQW5kcm9pZCBzeXN0ZW0gZW50ZXJzIG9yIGxlYXZlcyBWUgorICAgKiBtb2RlLiBUaGlzIHdpbGwgdHlwaWNhbGx5IG9jY3VyIHdoZW4gdGhlIHVzZXIgc3dpdGNoZXMgdG8gb3IgZnJvbSBhIFZSCisgICAqIGFwcGxpY2F0aW9uIHRoYXQgaXMgZG9pbmcgc3RlcmVvc2NvcGljIHJlbmRlcmluZy4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICBAZXhpdAorICBzZXRWck1vZGUoYm9vbCBlbmFibGVkKTsKK307CmRpZmYgLS1naXQgYS92ci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvdnIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGMxYmZiCi0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJWci5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wIiwKKyAgICBdLAorfQorCitjY19iaW5hcnkgeworICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UiLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZS5yYyJdLAorICAgIHNyY3M6IFsic2VydmljZS5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmRsIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS92ci8xLjAvZGVmYXVsdC9Wci5jcHAgYi92ci8xLjAvZGVmYXVsdC9Wci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJiYTllYgotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L1ZyLmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWclNlcnZpY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3ZyLmg+CisKKyNpbmNsdWRlICJWci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHZyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ZyOjpWcih2cl9tb2R1bGVfdCAqZGV2aWNlKSA6IG1EZXZpY2UoZGV2aWNlKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWciBmb2xsb3cuCitSZXR1cm48dm9pZD4gVnI6OmluaXQoKSB7CisgICAgbURldmljZS0+aW5pdChtRGV2aWNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVnI6OnNldFZyTW9kZShib29sIGVuYWJsZWQpICB7CisgICAgbURldmljZS0+c2V0X3ZyX21vZGUobURldmljZSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSVZyKiBISURMX0ZFVENIX0lWcihjb25zdCBjaGFyICogLypuYW1lKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqaHdfbW9kdWxlID0gTlVMTDsKKworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlKFZSX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgVnIocmVpbnRlcnByZXRfY2FzdDx2cl9tb2R1bGVfdCo+KAorICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aHdfbW9kdWxlX3QqPihod19tb2R1bGUpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoImh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIFZSX0hBUkRXQVJFX01PRFVMRV9JRCwgcmV0KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB2cgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvVnIuaCBiL3ZyLzEuMC9kZWZhdWx0L1ZyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ1ZTc2NAotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L1ZyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVlJfVjFfMF9WUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVlJfVjFfMF9WUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9JVnIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS92ci5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdnIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKKworc3RydWN0IFZyIDogcHVibGljIElWciB7CisgICAgVnIodnJfbW9kdWxlX3QgKmRldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWciBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldFZyTW9kZShib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHZyX21vZHVsZV90ICAgICptRGV2aWNlOworfTsKKworZXh0ZXJuICJDIiBJVnIqIEhJRExfRkVUQ0hfSVZyKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdnIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1ZSX1YxXzBfVlJfSApkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZS5yYyBiL3ZyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNjNjQxNgotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHZyLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3ZyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdnIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJmYjdkMQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvSVZyLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKKy8vIEdlbmVyYXRlZCBISURMIGZpbGVzCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVZyPigpOworfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDVhOTlhCi0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzMiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFZyVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFZyVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVnJWMV8wVGFyZ2V0VGVzdC5jcHAgYi92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVnJWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNmNGM3MQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWclYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJ2cl9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvSVZyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdnIuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgVlIgSElETCBIQUwuCitjbGFzcyBWckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgdnIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVnI+KCk7CisgICAgQVNTRVJUX05FKHZyLCBudWxscHRyKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElWcj4gdnI7Cit9OworCisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAgKGtlcHQgc2luY2UgdGhpcyBmaWxlIGlzIGEgdGVtcGxhdGUpLgorY2xhc3MgVnJIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkge30KKyAgdm9pZCBUZWFyRG93bigpIHt9CisKKyBwcml2YXRlOgorfTsKKworLy8gU2FuaXR5IGNoZWNrIHRoYXQgVnI6OmluaXQgZG9lcyBub3QgY3Jhc2guCitURVNUX0YoVnJIaWRsVGVzdCwgSW5pdCkgeworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7Cit9CisKKy8vIFNhbml0eSBjaGVjayBWcjo6c2V0VnJNb2RlIGlzIGFibGUgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIFZSIG1vZGUuCitURVNUX0YoVnJIaWRsVGVzdCwgU2V0VnJNb2RlKSB7CisgIEVYUEVDVF9UUlVFKHZyLT5pbml0KCkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZSh0cnVlKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+c2V0VnJNb2RlKGZhbHNlKS5pc09rKCkpOworfQorCisvLyBTYW5pdHkgY2hlY2sgdGhhdCBWcjo6aW5pdCBhbmQgVnI6OnNldFZyTW9kZSBjYW4gYmUgdXNlZCBpbiBhbnkgb3JkZXIuCitURVNUX0YoVnJIaWRsVGVzdCwgUmVJbml0KSB7CisgIEVYUEVDVF9UUlVFKHZyLT5pbml0KCkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZSh0cnVlKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUoZmFsc2UpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5pbml0KCkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZShmYWxzZSkuaXNPaygpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBWckhpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS92ci9BbmRyb2lkLmJwIGIvdnIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdnIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3dpZmkvMS4wL0lXaWZpQ2hpcC5oYWwgYi93aWZpLzEuMC9JV2lmaUNoaXAuaGFsCmluZGV4IDYxMWM0NDkuLmI5NzMyN2MgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL0lXaWZpQ2hpcC5oYWwKKysrIGIvd2lmaS8xLjAvSVdpZmlDaGlwLmhhbApAQCAtMjIwLDcgKzIyMCwxMiBAQAogICBnZXRBdmFpbGFibGVNb2RlcygpIGdlbmVyYXRlcyAoV2lmaVN0YXR1cyBzdGF0dXMsIHZlYzxDaGlwTW9kZT4gbW9kZXMpOwogCiAgIC8qKgotICAgKiBSZWNvbmZpZ3VyZSB0aGUgQ2hpcC4KKyAgICogQ29uZmlndXJlIHRoZSBDaGlwLgorICAgKiBUaGlzIG1heSBOT1QgYmUgY2FsbGVkIHRvIHJlY29uZmlndXJlIGEgY2hpcCBkdWUgdG8gYW4gaW50ZXJuYWwKKyAgICogbGltaXRhdGlvbi4gQ2FsbGluZyB0aGlzIHdoZW4gY2hpcCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgaW4gYSBkaWZmZXJlbnQKKyAgICogbW9kZSBtdXN0IHRyaWdnZXIgYW4gRVJST1JfTk9UX1NVUFBPUlRFRCBmYWlsdXJlLgorICAgKiBJZiB5b3Ugd2FudCB0byBkbyByZWNvbmZpZ3VyYXRpb24sIHBsZWFzZSBjYWxsIElXaWZpLnN0b3AoKSBhbmQgSVdpZmkuc3RhcnQoKQorICAgKiB0byByZXN0YXJ0IFdpZmkgSEFMIGJlZm9yZSBjYWxsaW5nIHRoaXMuCiAgICAqIEFueSBleGlzdGluZyB8SVdpZmlJZmFjZXwgb2JqZWN0cyBtdXN0IGJlIG1hcmtlZCBpbnZhbGlkIGFmdGVyIHRoaXMgY2FsbC4KICAgICogSWYgdGhpcyBmYWlscyB0aGVuIHRoZSBjaGlwcyBpcyBub3cgaW4gYW4gdW5kZWZpbmVkIHN0YXRlIGFuZAogICAgKiBjb25maWd1cmVDaGlwIG11c3QgYmUgY2FsbGVkIGFnYWluLgpAQCAtMjM0LDYgKzIzOSw3IEBACiAgICAqICAgICAgICAgfFdpZmlTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5FUlJPUl9XSUZJX0NISVBfSU5WQUxJRHwsCiAgICAqICAgICAgICAgfFdpZmlTdGF0dXNDb2RlLkVSUk9SX05PVF9BVkFJTEFCTEV8LAorICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5FUlJPUl9OT1RfU1VQUE9SVEVEfCwKICAgICogICAgICAgICB8V2lmaVN0YXR1c0NvZGUuRVJST1JfVU5LTk9XTnwKICAgICovCiAgIGNvbmZpZ3VyZUNoaXAoQ2hpcE1vZGVJZCBtb2RlSWQpIGdlbmVyYXRlcyAoV2lmaVN0YXR1cyBzdGF0dXMpOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX2NhbGxiYWNrX3V0aWwuaCBiL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9jYWxsYmFja191dGlsLmgKaW5kZXggNzEzNjI3OS4uYjcxMDBjOCAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX2NhbGxiYWNrX3V0aWwuaAorKysgYi93aWZpLzEuMC9kZWZhdWx0L2hpZGxfY2FsbGJhY2tfdXRpbC5oCkBAIC04Miw3ICs4Miw3IEBACiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICBjb25zdCBzdGQ6OnNldDxhbmRyb2lkOjpzcDxDYWxsYmFja1R5cGU+PiBnZXRDYWxsYmFja3MoKSB7IHJldHVybiBjYl9zZXRfOyB9CisgIGNvbnN0IHN0ZDo6c2V0PGFuZHJvaWQ6OnNwPENhbGxiYWNrVHlwZT4+JiBnZXRDYWxsYmFja3MoKSB7IHJldHVybiBjYl9zZXRfOyB9CiAKICAgLy8gRGVhdGggbm90aWZpY2F0aW9uIGZvciBjYWxsYmFja3MuCiAgIHZvaWQgb25PYmplY3REZWF0aCh1aW50NjRfdCBjb29raWUpIHsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9zdHJ1Y3RfdXRpbC5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L2hpZGxfc3RydWN0X3V0aWwuY3BwCmluZGV4IGFlNGY5NWQuLjA3N2RiYjggMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9zdHJ1Y3RfdXRpbC5jcHAKKysrIGIvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX3N0cnVjdF91dGlsLmNwcApAQCAtNDE3LDE3ICs0MTcsMjUgQEAKICAgICBjb25zdCB3aWZpX2llJiBsZWdhY3lfaWUgPSAoKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgd2lmaV9pZSo+KG5leHRfaWUpKTsKICAgICB1aW50MzJfdCBjdXJyX2llX2xlbiA9IGtJZUhlYWRlckxlbiArIGxlZ2FjeV9pZS5sZW47CiAgICAgaWYgKG5leHRfaWUgKyBjdXJyX2llX2xlbiA+IGllc19lbmQpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIExPRyhFUlJPUikgPDwgIkVycm9yIHBhcnNpbmcgSUUgYmxvYi4gTmV4dCBJRTogIiA8PCAodm9pZCAqKW5leHRfaWUKKyAgICAgICAgICAgICAgICAgPDwgIiwgQ3VyciBJRSBsZW46ICIgPDwgY3Vycl9pZV9sZW4gPDwgIiwgSUVzIEVuZDogIiA8PCAodm9pZCAqKWllc19lbmQ7CisgICAgICBicmVhazsKICAgICB9CiAgICAgV2lmaUluZm9ybWF0aW9uRWxlbWVudCBoaWRsX2llOwogICAgIGlmICghY29udmVydExlZ2FjeUllVG9IaWRsKGxlZ2FjeV9pZSwgJmhpZGxfaWUpKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7CisgICAgICBMT0coRVJST1IpIDw8ICJFcnJvciBjb252ZXJ0aW5nIElFLiBJZDogIiA8PCBsZWdhY3lfaWUuaWQKKyAgICAgICAgICAgICAgICAgPDwgIiwgbGVuOiAiIDw8IGxlZ2FjeV9pZS5sZW47CisgICAgICBicmVhazsKICAgICB9CiAgICAgaGlkbF9pZXMtPnB1c2hfYmFjayhzdGQ6Om1vdmUoaGlkbF9pZSkpOwogICAgIG5leHRfaWUgKz0gY3Vycl9pZV9sZW47CiAgIH0KLSAgLy8gRW5zdXJlIHRoYXQgdGhlIGJsb2IgaGFzIGJlZW4gZnVsbHkgY29uc3VtZWQuCi0gIHJldHVybiAobmV4dF9pZSA9PSBpZXNfZW5kKTsKKyAgLy8gQ2hlY2sgaWYgdGhlIGJsb2IgaGFzIGJlZW4gZnVsbHkgY29uc3VtZWQuCisgIGlmIChuZXh0X2llICE9IGllc19lbmQpIHsKKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gZnVsbHkgcGFyc2UgSUUgYmxvYi4gTmV4dCBJRTogIiA8PCAodm9pZCAqKW5leHRfaWUKKyAgICAgICAgICAgICAgIDw8ICIsIElFcyBFbmQ6ICIgPDwgKHZvaWQgKilpZXNfZW5kOworICB9CisgIHJldHVybiB0cnVlOwogfQogCiBib29sIGNvbnZlcnRMZWdhY3lHc2NhblJlc3VsdFRvSGlkbCgKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9jaGlwLmNwcCBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9jaGlwLmNwcAppbmRleCA5YzQxYTQwLi43NzBjODNmIDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfY2hpcC5jcHAKKysrIGIvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2NoaXAuY3BwCkBAIC04MDQsMTQgKzgwNCwxMiBAQAogV2lmaVN0YXR1cyBXaWZpQ2hpcDo6aGFuZGxlQ2hpcENvbmZpZ3VyYXRpb24oQ2hpcE1vZGVJZCBtb2RlX2lkKSB7CiAgIC8vIElmIHRoZSBjaGlwIGlzIGFscmVhZHkgY29uZmlndXJlZCBpbiBhIGRpZmZlcmVudCBtb2RlLCBzdG9wCiAgIC8vIHRoZSBsZWdhY3kgSEFMIGFuZCB0aGVuIHN0YXJ0IGl0IGFmdGVyIGZpcm13YXJlIG1vZGUgY2hhbmdlLgorICAvLyBDdXJyZW50bHkgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gaGFzIGEgZGVhZGxvY2sgaXNzdWUuCisgIC8vIFdlIHNob3VsZCByZXR1cm4gRVJST1JfTk9UX1NVUFBPUlRFRCBpZiBjaGlwIGlzIGFscmVhZHkgY29uZmlndXJlZCBpbgorICAvLyBhIGRpZmZlcmVudCBtb2RlLgogICBpZiAoY3VycmVudF9tb2RlX2lkXyAhPSBrSW52YWxpZE1vZGVJZCkgewotICAgIGludmFsaWRhdGVBbmRSZW1vdmVBbGxJZmFjZXMoKTsKLSAgICBsZWdhY3lfaGFsOjp3aWZpX2Vycm9yIGxlZ2FjeV9zdGF0dXMgPSBsZWdhY3lfaGFsXy5sb2NrKCktPnN0b3AoW10oKSB7fSk7Ci0gICAgaWYgKGxlZ2FjeV9zdGF0dXMgIT0gbGVnYWN5X2hhbDo6V0lGSV9TVUNDRVNTKSB7Ci0gICAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gc3RvcCBsZWdhY3kgSEFMOiAiCi0gICAgICAgICAgICAgICAgIDw8IGxlZ2FjeUVycm9yVG9TdHJpbmcobGVnYWN5X3N0YXR1cyk7Ci0gICAgICByZXR1cm4gY3JlYXRlV2lmaVN0YXR1c0Zyb21MZWdhY3lFcnJvcihsZWdhY3lfc3RhdHVzKTsKLSAgICB9CisgICAgLy8gVE9ETyhiLzM3NDQ2MDUwKTogRml4IHRoZSBkZWFkbG9jay4KKyAgICByZXR1cm4gY3JlYXRlV2lmaVN0YXR1cyhXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX1NVUFBPUlRFRCk7CiAgIH0KICAgYm9vbCBzdWNjZXNzOwogICBpZiAobW9kZV9pZCA9PSBrU3RhQ2hpcE1vZGVJZCkgewpAQCAtODU1LDcgKzg1Myw4IEBACiAgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFjayA6IHNoYXJlZF9wdHJfdGhpcy0+Z2V0RXZlbnRDYWxsYmFja3MoKSkgewogICAgICAgaWYgKCFjYWxsYmFjay0+b25EZWJ1Z1JpbmdCdWZmZXJEYXRhQXZhaWxhYmxlKGhpZGxfc3RhdHVzLCBkYXRhKS5pc09rKCkpIHsKICAgICAgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGludm9rZSBvbkRlYnVnUmluZ0J1ZmZlckRhdGFBdmFpbGFibGUiCi0gICAgICAgICAgICAgICAgICAgPDwgIiBjYWxsYmFjayI7CisgICAgICAgICAgICAgICAgICAgPDwgIiBjYWxsYmFjayBvbjogIiA8PCB0b1N0cmluZyhjYWxsYmFjayk7CisKICAgICAgIH0KICAgICB9CiAgIH07CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5jcHAKaW5kZXggNDRhY2MwNC4uYjZhNzU1MCAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmNwcApAQCAtMTY0LDYgKzE2NCw3IEBACiAgIGNvbnN0IGF1dG8gbG9jayA9IGhpZGxfc3luY191dGlsOjphY3F1aXJlR2xvYmFsTG9jaygpOwogICBpZiAob25fcnR0X3Jlc3VsdHNfaW50ZXJuYWxfY2FsbGJhY2spIHsKICAgICBvbl9ydHRfcmVzdWx0c19pbnRlcm5hbF9jYWxsYmFjayhpZCwgbnVtX3Jlc3VsdHMsIHJ0dF9yZXN1bHRzKTsKKyAgICBvbl9ydHRfcmVzdWx0c19pbnRlcm5hbF9jYWxsYmFjayA9IG51bGxwdHI7CiAgIH0KIH0KIApAQCAtNTg3LDYgKzU4OCwxMSBAQAogICByZXR1cm4ge3N0YXR1cywgc3RkOjptb3ZlKGZyZXFzKX07CiB9CiAKK3dpZmlfZXJyb3IgV2lmaUxlZ2FjeUhhbDo6c2V0RGZzRmxhZyhib29sIGRmc19vbikgeworICByZXR1cm4gZ2xvYmFsX2Z1bmNfdGFibGVfLndpZmlfc2V0X25vZGZzX2ZsYWcoCisgICAgICB3bGFuX2ludGVyZmFjZV9oYW5kbGVfLCBkZnNfb24gPyAwIDogMSk7Cit9CisKIHdpZmlfZXJyb3IgV2lmaUxlZ2FjeUhhbDo6ZW5hYmxlTGlua0xheWVyU3RhdHMoYm9vbCBkZWJ1ZykgewogICB3aWZpX2xpbmtfbGF5ZXJfcGFyYW1zIHBhcmFtczsKICAgcGFyYW1zLm1wZHVfc2l6ZV90aHJlc2hvbGQgPSBrTGlua0xheWVyU3RhdHNEYXRhTXBkdVNpemVUaHJlc2hvbGQ7CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5oIGIvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuaAppbmRleCA1NzZkZmU2Li4xNjU2ZjY4IDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5oCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmgKQEAgLTE4MSw2ICsxODEsNyBAQAogICB3aWZpX2Vycm9yIHN0b3BHc2Nhbih3aWZpX3JlcXVlc3RfaWQgaWQpOwogICBzdGQ6OnBhaXI8d2lmaV9lcnJvciwgc3RkOjp2ZWN0b3I8dWludDMyX3Q+PiBnZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCgKICAgICAgIHdpZmlfYmFuZCBiYW5kKTsKKyAgd2lmaV9lcnJvciBzZXREZnNGbGFnKGJvb2wgZGZzX29uKTsKICAgLy8gTGluayBsYXllciBzdGF0cyBmdW5jdGlvbnMuCiAgIHdpZmlfZXJyb3IgZW5hYmxlTGlua0xheWVyU3RhdHMoYm9vbCBkZWJ1Zyk7CiAgIHdpZmlfZXJyb3IgZGlzYWJsZUxpbmtMYXllclN0YXRzKCk7CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcCBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9zdGFfaWZhY2UuY3BwCmluZGV4IDYyNmIxOTUuLjNjNTIwNDggMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9zdGFfaWZhY2UuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9zdGFfaWZhY2UuY3BwCkBAIC0zMSw3ICszMSwxNCBAQAogV2lmaVN0YUlmYWNlOjpXaWZpU3RhSWZhY2UoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGlmbmFtZSwKICAgICBjb25zdCBzdGQ6OndlYWtfcHRyPGxlZ2FjeV9oYWw6OldpZmlMZWdhY3lIYWw+IGxlZ2FjeV9oYWwpCi0gICAgOiBpZm5hbWVfKGlmbmFtZSksIGxlZ2FjeV9oYWxfKGxlZ2FjeV9oYWwpLCBpc192YWxpZF8odHJ1ZSkge30KKyAgICA6IGlmbmFtZV8oaWZuYW1lKSwgbGVnYWN5X2hhbF8obGVnYWN5X2hhbCksIGlzX3ZhbGlkXyh0cnVlKSB7CisgIC8vIFR1cm4gb24gREZTIGNoYW5uZWwgdXNhZ2UgZm9yIFNUQSBpZmFjZS4KKyAgbGVnYWN5X2hhbDo6d2lmaV9lcnJvciBsZWdhY3lfc3RhdHVzID0KKyAgICAgIGxlZ2FjeV9oYWxfLmxvY2soKS0+c2V0RGZzRmxhZyh0cnVlKTsKKyAgaWYgKGxlZ2FjeV9zdGF0dXMgIT0gbGVnYWN5X2hhbDo6V0lGSV9TVUNDRVNTKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHNldCBERlMgZmxhZzsgREZTIGNoYW5uZWxzIG1heSBiZSB1bmF2YWlsYWJsZS4iOworICB9Cit9CiAKIHZvaWQgV2lmaVN0YUlmYWNlOjppbnZhbGlkYXRlKCkgewogICBsZWdhY3lfaGFsXy5yZXNldCgpOwpAQCAtMzA5LDcgKzMxNiw4IEBACiAgIHN0ZDo6dGllKGxlZ2FjeV9zdGF0dXMsIGxlZ2FjeV9sb2dnZXJfZmVhdHVyZV9zZXQpID0KICAgICAgIGxlZ2FjeV9oYWxfLmxvY2soKS0+Z2V0TG9nZ2VyU3VwcG9ydGVkRmVhdHVyZVNldCgpOwogICBpZiAobGVnYWN5X3N0YXR1cyAhPSBsZWdhY3lfaGFsOjpXSUZJX1NVQ0NFU1MpIHsKLSAgICByZXR1cm4ge2NyZWF0ZVdpZmlTdGF0dXNGcm9tTGVnYWN5RXJyb3IobGVnYWN5X3N0YXR1cyksIDB9OworICAgIC8vIHNvbWUgZGV2aWNlcyBkb24ndCBzdXBwb3J0IHF1ZXJ5aW5nIGxvZ2dlciBmZWF0dXJlIHNldAorICAgIGxlZ2FjeV9sb2dnZXJfZmVhdHVyZV9zZXQgPSAwOwogICB9CiAgIHVpbnQzMl90IGhpZGxfY2FwczsKICAgaWYgKCFoaWRsX3N0cnVjdF91dGlsOjpjb252ZXJ0TGVnYWN5RmVhdHVyZXNUb0hpZGxTdGFDYXBhYmlsaXRpZXMoCmRpZmYgLS1naXQgYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2FwX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2FwX2lmYWNlX2hpZGxfdGVzdC5jcHAKaW5kZXggNDJkOWE5Ni4uYzBhZjMwYiAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9hcF9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfYXBfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjAsOSArMjAsMTMgQEAKIAogI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgogCisjaW5jbHVkZSAid2lmaV9oaWRsX2NhbGxfdXRpbC5oIgogI2luY2x1ZGUgIndpZmlfaGlkbF90ZXN0X3V0aWxzLmgiCiAKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OklmYWNlVHlwZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OklXaWZpQXBJZmFjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlCYW5kOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaVN0YXR1c0NvZGU7CiB1c2luZyA6OmFuZHJvaWQ6OnNwOwogCiAvKioKQEAgLTMwLDExICszNCwxNSBAQAogICovCiBjbGFzcyBXaWZpQXBJZmFjZUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKICAgIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7fQorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgd2lmaV9hcF9pZmFjZV8gPSBnZXRXaWZpQXBJZmFjZSgpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgd2lmaV9hcF9pZmFjZV8uZ2V0KCkpOworICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgc3RvcFdpZmkoKTsgfQogCiAgICBwcm90ZWN0ZWQ6CisgICAgc3A8SVdpZmlBcElmYWNlPiB3aWZpX2FwX2lmYWNlXzsKIH07CiAKIC8qCkBAIC00NiwzICs1NCwzNiBAQAogICAgIEVYUEVDVF9ORShudWxscHRyLCBnZXRXaWZpQXBJZmFjZSgpLmdldCgpKTsKICAgICBzdG9wV2lmaSgpOwogfQorCisvKgorICogR2V0VHlwZToKKyAqIEVuc3VyZXMgdGhhdCB0aGUgY29ycmVjdCBpbnRlcmZhY2UgdHlwZSBpcyByZXR1cm5lZCBmb3IgQVAgaW50ZXJmYWNlLgorICovCitURVNUX0YoV2lmaUFwSWZhY2VIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfdHlwZSA9IEhJRExfSU5WT0tFKHdpZmlfYXBfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfdHlwZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoSWZhY2VUeXBlOjpBUCwgc3RhdHVzX2FuZF90eXBlLnNlY29uZCk7Cit9CisKKy8qCisgKiBTZXRDb3VudHJ5Q29kZToKKyAqIEVuc3VyZXMgdGhhdCBhIGNhbGwgdG8gc2V0IHRoZSBjb3VudHJ5IGNvZGUgd2lsbCByZXR1cm4gd2l0aCBhIHN1Y2Nlc3MKKyAqIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaUFwSWZhY2VIaWRsVGVzdCwgU2V0Q291bnRyeUNvZGUpIHsKKyAgICBjb25zdCBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTxpbnQ4X3QsIDI+IGtDb3VudHJ5Q29kZXsKKyAgICAgICAgc3RkOjphcnJheTxpbnQ4X3QsIDI+e3sweDU1LCAweDUzfX19OworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9hcF9pZmFjZV8sIHNldENvdW50cnlDb2RlLCBrQ291bnRyeUNvZGUpLmNvZGUpOworfQorCisvKgorICogR2V0VmFsaWRGcmVxdWVuY2llc0ZvckJhbmQ6CisgKiBFbnN1cmVzIHRoYXQgd2UgY2FuIHJldHJpZXZlIHZhbGlkIGZyZXF1ZW5jaWVzIGZvciAyLjQgR0h6IGJhbmQuCisgKi8KK1RFU1RfRihXaWZpQXBJZmFjZUhpZGxUZXN0LCBHZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfZnJlcXMgPSBISURMX0lOVk9LRSgKKyAgICAgICAgd2lmaV9hcF9pZmFjZV8sIGdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kLCBXaWZpQmFuZDo6QkFORF8yNEdIWik7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2ZyZXFzLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9HVChzdGF0dXNfYW5kX2ZyZXFzLnNlY29uZC5zaXplKCksIDB1KTsKK30KZGlmZiAtLWdpdCBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9jaGlwX2hpZGxfdGVzdC5jcHAKaW5kZXggMDg0MDY3Yy4uNmMyMzcyZiAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9jaGlwX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9jaGlwX2hpZGxfdGVzdC5jcHAKQEAgLTc2LDE1ICs3NiwxNCBAQAogICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjb25maWd1cmUgdGhlIENoaXAgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgbW9kZXMuCiAgICAgLy8gTW9zdCBvZiB0aGUgbm9uLW1vZGUtY29uZmlndXJhdGlvbi1yZWxhdGVkIG1ldGhvZHMgcmVxdWlyZSBjaGlwCiAgICAgLy8gdG8gYmUgZmlyc3QgY29uZmlndXJlZC4KLSAgICBDaGlwTW9kZUlkIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlIHR5cGUpIHsKKyAgICBDaGlwTW9kZUlkIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlIHR5cGUsIGJvb2wgZXhwZWN0U3VjY2VzcykgewogICAgICAgICBDaGlwTW9kZUlkIG1vZGVfaWQ7Ci0gICAgICAgIEVYUEVDVF9UUlVFKAotICAgICAgICAgICAgY29uZmlndXJlQ2hpcFRvU3VwcG9ydElmYWNlVHlwZSh3aWZpX2NoaXBfLCB0eXBlLCAmbW9kZV9pZCkpOworICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0U3VjY2VzcywgY29uZmlndXJlQ2hpcFRvU3VwcG9ydElmYWNlVHlwZSh3aWZpX2NoaXBfLCB0eXBlLCAmbW9kZV9pZCkpOwogICAgICAgICByZXR1cm4gbW9kZV9pZDsKICAgICB9CiAKICAgICB1aW50MzJfdCBjb25maWd1cmVDaGlwRm9yU3RhSWZhY2VBbmRHZXRDYXBhYmlsaXRpZXMoKSB7Ci0gICAgICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgICAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKICAgICAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0gSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0Q2FwYWJpbGl0aWVzKTsKICAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcHMuZmlyc3QuY29kZSk7CiAgICAgICAgIHJldHVybiBzdGF0dXNfYW5kX2NhcHMuc2Vjb25kOwpAQCAtMTc0LDggKzE3MywxMiBAQAogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9tb2Rlcy5maXJzdC5jb2RlKTsKICAgICBFWFBFQ1RfTFQoMHUsIHN0YXR1c19hbmRfbW9kZXMuc2Vjb25kLnNpemUoKSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBtb2RlIDogc3RhdHVzX2FuZF9tb2Rlcy5zZWNvbmQpIHsKKyAgICAgICAgLy8gY29uZmlndXJlQ2hpcCgpIHJlcXVpcmVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgZnJlc2ggSVdpZmlDaGlwIG9iamVjdC4KKyAgICAgICAgd2lmaV9jaGlwXyA9IGdldFdpZmlDaGlwKCk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCB3aWZpX2NoaXBfLmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAogICAgICAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgY29uZmlndXJlQ2hpcCwgbW9kZS5pZCkuY29kZSk7CisgICAgICAgIHN0b3BXaWZpKCk7CiAgICAgfQogfQogCkBAIC0xODMsNyArMTg2LDcgQEAKICAqIEdldENhcGFiaWxpdGllczoKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldENhcGFiaWxpdGllcykgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEsIHRydWUpOwogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9IEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldENhcGFiaWxpdGllcyk7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcHMuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX05FKDB1LCBzdGF0dXNfYW5kX2NhcHMuc2Vjb25kKTsKQEAgLTE5Myw3ICsxOTYsNyBAQAogICogR2V0TW9kZToKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldE1vZGUpIHsKLSAgICBDaGlwTW9kZUlkIGNoaXBfbW9kZV9pZCA9IGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgIENoaXBNb2RlSWQgY2hpcF9tb2RlX2lkID0gY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9tb2RlID0gSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TW9kZSk7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX21vZGUuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX0VRKGNoaXBfbW9kZV9pZCwgc3RhdHVzX2FuZF9tb2RlLnNlY29uZCk7CkBAIC0yMDMsNyArMjA2LDcgQEAKICAqIFJlcXVlc3RDaGlwRGVidWdJbmZvOgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgUmVxdWVzdENoaXBEZWJ1Z0luZm8pIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NoaXBfaW5mbyA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIHJlcXVlc3RDaGlwRGVidWdJbmZvKTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2hpcF9pbmZvLmZpcnN0LmNvZGUpOwpAQCAtMjM2LDggKzIzOSwxMCBAQAogICAgIGlmIChjYXBzICYgSVdpZmlDaGlwOjpDaGlwQ2FwYWJpbGl0eU1hc2s6OkRFQlVHX01FTU9SWV9EUklWRVJfRFVNUCkgewogICAgICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfZHJpdmVyX2R1bXAuZmlyc3QuY29kZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9OT1RfU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICAgc3RhdHVzX2FuZF9kcml2ZXJfZHVtcC5maXJzdC5jb2RlKTsKKyAgICAgIC8vIEFQSSBzZW1hbnRpY3MgKHRvZGF5KSBhcmUgc3VjaCB0aGF0IGZ1bmN0aW9uIGNhbm5vdCBiZSBjYWxsZWQgaWYgbm90IGNhcGFibGUhCisgICAgICAvLworICAgICAgLy8gIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX1NVUFBPUlRFRCwKKyAgICAgIC8vICAgICAgICAgICAgc3RhdHVzX2FuZF9kcml2ZXJfZHVtcC5maXJzdC5jb2RlKTsKICAgICB9CiB9CiAKQEAgLTMzNiw3ICszNDEsNyBAQAogICogc3VjY2VlZHMuIFRoZSAybmQgaWZhY2UgY3JlYXRpb24gc2hvdWxkIGJlIHJlamVjdGVkLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlQXBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpQXBJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVBcElmYWNlKCZpZmFjZSkpOwpAQCAtMzUyLDcgKzM1Nyw3IEBACiAgKiBpZmFjZSBuYW1lIGlzIHJldHVybmVkIHZpYSB0aGUgbGlzdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldEFwSWZhY2VOYW1lcykgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxID0KICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0QXBJZmFjZU5hbWVzKTsKQEAgLTM4NCw3ICszODksNyBAQAogICogZG9lc24ndCByZXRyaWV2ZSBhbiBpZmFjZSBvYmplY3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRBcElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlBcElmYWNlPiBhcF9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZUFwSWZhY2UoJmFwX2lmYWNlKSk7CkBAIC00MTAsNyArNDE1LDcgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZUFwSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaUFwSWZhY2U+IGFwX2lmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlQXBJZmFjZSgmYXBfaWZhY2UpKTsKQEAgLTQzMSwxMyArNDM2LDEwIEBACiAgKiBzdWNjZWVkcy4gVGhlIDJuZCBpZmFjZSBjcmVhdGlvbiBzaG91bGQgYmUgcmVqZWN0ZWQuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBDcmVhdGVOYW5JZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4pOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4sIGZhbHNlKTsKIAogICAgIHNwPElXaWZpTmFuSWZhY2U+IGlmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7Ci0gICAgRVhQRUNUX05FKG51bGxwdHIsIGlmYWNlLmdldCgpKTsKLQotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7CisgICAgQVNTRVJUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9OT1RfQVZBSUxBQkxFLCBjcmVhdGVOYW5JZmFjZSgmaWZhY2UpKTsKIH0KIAogLyoKQEAgLTQ0NywyOSArNDQ5LDEyIEBACiAgKiBpZmFjZSBuYW1lIGlzIHJldHVybmVkIHZpYSB0aGUgbGlzdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldE5hbklmYWNlTmFtZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOLCBmYWxzZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlTmFtZXMpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEuZmlyc3QuY29kZSk7CisgICAgQVNTRVJUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMS5maXJzdC5jb2RlKTsKICAgICBFWFBFQ1RfRVEoMHUsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxLnNlY29uZC5zaXplKCkpOwotCi0gICAgc3A8SVdpZmlOYW5JZmFjZT4gaWZhY2U7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVOYW5JZmFjZSgmaWZhY2UpKTsKLSAgICBFWFBFQ1RfTkUobnVsbHB0ciwgaWZhY2UuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaWZhY2VfbmFtZSA9IGdldElmYWNlTmFtZShpZmFjZSk7Ci0gICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczIgPQotICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXROYW5JZmFjZU5hbWVzKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9FUSgxdSwgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczIuc2Vjb25kLnNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKGlmYWNlX25hbWUsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyLnNlY29uZFswXSk7Ci0KLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHJlbW92ZU5hbklmYWNlKGlmYWNlX25hbWUpKTsKLSAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMyA9Ci0gICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlTmFtZXMpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczMuZmlyc3QuY29kZSk7Ci0gICAgRVhQRUNUX0VRKDB1LCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMy5zZWNvbmQuc2l6ZSgpKTsKIH0KIAogLyoKQEAgLTQ3OSwyMyArNDY0LDEwIEBACiAgKiBkb2Vzbid0IHJldHJpZXZlIGFuIGlmYWNlIG9iamVjdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldE5hbklmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTik7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTiwgZmFsc2UpOwogCiAgICAgc3A8SVdpZmlOYW5JZmFjZT4gbmFuX2lmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBuYW5faWZhY2UuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaWZhY2VfbmFtZSA9IGdldElmYWNlTmFtZShuYW5faWZhY2UpOwotICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2UxID0KLSAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TmFuSWZhY2UsIGlmYWNlX25hbWUpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZTEuZmlyc3QuY29kZSk7Ci0gICAgRVhQRUNUX05FKG51bGxwdHIsIHN0YXR1c19hbmRfaWZhY2UxLnNlY29uZC5nZXQoKSk7Ci0KLSAgICBzdGQ6OnN0cmluZyBpbnZhbGlkX25hbWUgPSBpZmFjZV9uYW1lICsgIjAiOwotICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2UyID0KLSAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TmFuSWZhY2UsIGludmFsaWRfbmFtZSk7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9JTlZBTElEX0FSR1MsIHN0YXR1c19hbmRfaWZhY2UyLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9FUShudWxscHRyLCBzdGF0dXNfYW5kX2lmYWNlMi5zZWNvbmQuZ2V0KCkpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwogfQogCiAvKgpAQCAtNTA1LDIwICs0NzcsMTAgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZU5hbklmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTik7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTiwgZmFsc2UpOwogCiAgICAgc3A8SVdpZmlOYW5JZmFjZT4gbmFuX2lmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBuYW5faWZhY2UuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaWZhY2VfbmFtZSA9IGdldElmYWNlTmFtZShuYW5faWZhY2UpOwotICAgIHN0ZDo6c3RyaW5nIGludmFsaWRfbmFtZSA9IGlmYWNlX25hbWUgKyAiMCI7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9JTlZBTElEX0FSR1MsIHJlbW92ZU5hbklmYWNlKGludmFsaWRfbmFtZSkpOwotCi0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCByZW1vdmVOYW5JZmFjZShpZmFjZV9uYW1lKSk7Ci0KLSAgICAvLyBObyBzdWNoIGlmYWNlIGV4aXN0cyBub3cuIFNvLCB0aGlzIHNob3VsZCByZXR1cm4gZmFpbHVyZS4KLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX0lOVkFMSURfQVJHUywgcmVtb3ZlTmFuSWZhY2UoaWZhY2VfbmFtZSkpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwogfQogCiAvKgpAQCAtNTI3LDcgKzQ4OSw3IEBACiAgKiBzdWNjZWVkcy4gVGhlIDJuZCBpZmFjZSBjcmVhdGlvbiBzaG91bGQgYmUgcmVqZWN0ZWQuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBDcmVhdGVQMnBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlQMnBJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVQMnBJZmFjZSgmaWZhY2UpKTsKQEAgLTU0Myw3ICs1MDUsNyBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRQMnBJZmFjZU5hbWVzKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCwgdHJ1ZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldFAycElmYWNlTmFtZXMpOwpAQCAtNTc1LDcgKzUzNyw3IEBACiAgKiBkb2Vzbid0IHJldHJpZXZlIGFuIGlmYWNlIG9iamVjdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldFAycElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVAycElmYWNlPiBwMnBfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVQMnBJZmFjZSgmcDJwX2lmYWNlKSk7CkBAIC02MDEsNyArNTYzLDcgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZVAycElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVAycElmYWNlPiBwMnBfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVQMnBJZmFjZSgmcDJwX2lmYWNlKSk7CkBAIC02MjIsNyArNTg0LDcgQEAKICAqIHN1Y2NlZWRzLiBUaGUgMm5kIGlmYWNlIGNyZWF0aW9uIHNob3VsZCBiZSByZWplY3RlZC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIENyZWF0ZVN0YUlmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVN0YUlmYWNlPiBpZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZVN0YUlmYWNlKCZpZmFjZSkpOwpAQCAtNjM4LDcgKzYwMCw3IEBACiAgKiBpZmFjZSBuYW1lIGlzIHJldHVybmVkIHZpYSB0aGUgbGlzdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldFN0YUlmYWNlTmFtZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKIAogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxID0KICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0U3RhSWZhY2VOYW1lcyk7CkBAIC02NzAsNyArNjMyLDcgQEAKICAqIGRvZXNuJ3QgcmV0cmlldmUgYW4gaWZhY2Ugb2JqZWN0LgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgR2V0U3RhSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKIAogICAgIHNwPElXaWZpU3RhSWZhY2U+IHN0YV9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZVN0YUlmYWNlKCZzdGFfaWZhY2UpKTsKQEAgLTY5Niw3ICs2NTgsNyBAQAogICogZG9lc24ndCByZW1vdmUgdGhlIGlmYWNlLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgUmVtb3ZlU3RhSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKIAogICAgIHNwPElXaWZpU3RhSWZhY2U+IHN0YV9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZVN0YUlmYWNlKCZzdGFfaWZhY2UpKTsKQEAgLTcxNSw3ICs2NzcsNyBAQAogICogQ3JlYXRlUnR0Q29udHJvbGxlcgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlUnR0Q29udHJvbGxlcikgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpQXBJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVBcElmYWNlKCZpZmFjZSkpOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX3Rlc3RfdXRpbHMuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX3Rlc3RfdXRpbHMuY3BwCmluZGV4IGZlZmJkNzkuLmU0MzgyYmMgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF90ZXN0X3V0aWxzLmNwcAorKysgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2hpZGxfdGVzdF91dGlscy5jcHAKQEAgLTM2LDYgKzM2LDkgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwogCiBuYW1lc3BhY2UgeworY29uc3RleHByIHVpbnQzMl90IGtIYWxTdGFydFJldHJ5TWF4Q291bnQgPSA1OworY29uc3RleHByIHVpbnQzMl90IGtIYWxTdGFydFJldHJ5SW50ZXJ2YWxJbk1zID0gMjsKKwogYm9vbCBmaW5kQW55TW9kZVN1cHBvcnRpbmdJZmFjZVR5cGUoCiAgICAgSWZhY2VUeXBlIGRlc2lyZWRfdHlwZSwgY29uc3Qgc3RkOjp2ZWN0b3I8SVdpZmlDaGlwOjpDaGlwTW9kZT4mIG1vZGVzLAogICAgIENoaXBNb2RlSWQqIG1vZGVfaWQpIHsKQEAgLTkyLDcgKzk1LDE1IEBACiAgICAgaWYgKCF3aWZpLmdldCgpKSB7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBpZiAoSElETF9JTlZPS0Uod2lmaSwgc3RhcnQpLmNvZGUgIT0gV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MpIHsKKyAgICB1aW50MzJfdCByZXRyeV9jb3VudCA9IDA7CisgICAgYXV0byBzdGF0dXMgPSBISURMX0lOVk9LRSh3aWZpLCBzdGFydCk7CisgICAgd2hpbGUgKHJldHJ5X2NvdW50IDwga0hhbFN0YXJ0UmV0cnlNYXhDb3VudCAmJgorICAgICAgICAgICBzdGF0dXMuY29kZSA9PSBXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSkgeworICAgICAgICByZXRyeV9jb3VudCsrOworICAgICAgICB1c2xlZXAoa0hhbFN0YXJ0UmV0cnlJbnRlcnZhbEluTXMgKiAxMDAwKTsKKyAgICAgICAgc3RhdHVzID0gSElETF9JTlZPS0Uod2lmaSwgc3RhcnQpOworICAgIH0KKyAgICBpZiAoc3RhdHVzLmNvZGUgIT0gV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MpIHsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2hpcF9pZHMgPSBISURMX0lOVk9LRSh3aWZpLCBnZXRDaGlwSWRzKTsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCmluZGV4IDk1YWRkNjEuLjMwMjM1Y2YgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjQsNyArMjQsMTYgQEAKICNpbmNsdWRlICJ3aWZpX2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6QnNzaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpDb21tYW5kSWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJZmFjZVR5cGU7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJV2lmaVN0YUlmYWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6UnNzaTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OlNzaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpTdGFBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpTdGFSb2FtaW5nQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6U3RhUm9hbWluZ1N0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaUJhbmQ7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpXaWZpU3RhdHVzOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaVN0YXR1c0NvZGU7CiAKQEAgLTQxLDYgKzUwLDEzIEBACiAgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBzdG9wV2lmaSgpOyB9CiAKICAgIHByb3RlY3RlZDoKKyAgICBib29sIGlzQ2FwYWJpbGl0eVN1cHBvcnRlZChJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrIGNhcF9tYXNrKSB7CisgICAgICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9CisgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldENhcGFiaWxpdGllcyk7CisgICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOworICAgICAgICByZXR1cm4gKHN0YXR1c19hbmRfY2Fwcy5zZWNvbmQgJiBjYXBfbWFzaykgIT0gMDsKKyAgICB9CisKICAgICBzcDxJV2lmaVN0YUlmYWNlPiB3aWZpX3N0YV9pZmFjZV87CiB9OwogCkBAIC02MCw1ICs3NiwxOTQgQEAKIFRFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgR2V0Q2FwYWJpbGl0aWVzKSB7CiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0gSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRDYXBhYmlsaXRpZXMpOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9ORSgwdSwgc3RhdHVzX2FuZF9jYXBzLnNlY29uZCk7CisgICAgRVhQRUNUX0dUKHN0YXR1c19hbmRfY2Fwcy5zZWNvbmQsIDB1KTsKK30KKworLyoKKyAqIEdldFR5cGU6CisgKiBFbnN1cmVzIHRoYXQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlIHR5cGUgaXMgcmV0dXJuZWQgZm9yIHN0YXRpb24gaW50ZXJmYWNlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX3R5cGUgPSBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldFR5cGUpOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF90eXBlLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShJZmFjZVR5cGU6OlNUQSwgc3RhdHVzX2FuZF90eXBlLnNlY29uZCk7Cit9CisKKy8qCisgKiBHZXRBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXM6CisgKiBFbnN1cmVzIHRoYXQgd2UgY2FuIHJldHJpZXZlIEFQRiBwYWNrZXQgZmlsdGVyIGNhcGFiaWxpdGVzLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldEFwZlBhY2tldEZpbHRlckNhcGFiaWxpdGllcykgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKElXaWZpU3RhSWZhY2U6OlN0YUlmYWNlQ2FwYWJpbGl0eU1hc2s6OkFQRikpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgQVBGIHBhY2tldCBmaWxlciBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0KKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXMpOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOworfQorCisvKgorICogR2V0QmFja2dyb3VuZFNjYW5DYXBhYmlsaXRpZXM6CisgKiBFbnN1cmVzIHRoYXQgd2UgY2FuIHJldHJpZXZlIGJhY2tncm91bmQgc2NhbiBjYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgR2V0QmFja2dyb3VuZFNjYW5DYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoIWlzQ2FwYWJpbGl0eVN1cHBvcnRlZCgKKyAgICAgICAgICAgIElXaWZpU3RhSWZhY2U6OlN0YUlmYWNlQ2FwYWJpbGl0eU1hc2s6OkJBQ0tHUk9VTkRfU0NBTikpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgYmFja2dyb3VuZCBzY2FuIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcHMgPQorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldEJhY2tncm91bmRTY2FuQ2FwYWJpbGl0aWVzKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKK30KKworLyoKKyAqIEdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSB2YWxpZCBmcmVxdWVuY2llcyBmb3IgMi40IEdIeiBiYW5kLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9mcmVxcyA9IEhJRExfSU5WT0tFKAorICAgICAgICB3aWZpX3N0YV9pZmFjZV8sIGdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kLCBXaWZpQmFuZDo6QkFORF8yNEdIWik7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2ZyZXFzLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9HVChzdGF0dXNfYW5kX2ZyZXFzLnNlY29uZC5zaXplKCksIDB1KTsKK30KKworLyoKKyAqIExpbmtMYXllclN0YXRzQ29sbGVjdGlvbjoKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBlbmFibGUsIGRpc2FibGUsIGFuZCByZXRyaWV2ZSBsaW5rIGxheWVyIHN0YXRzCisgKiB3aWxsIHJldHVybiBhIHN1Y2Nlc3Mgc3RhdHVzIGNvZGUuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgTGlua0xheWVyU3RhdHNDb2xsZWN0aW9uKSB7CisgICAgaWYgKCFpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoCisgICAgICAgICAgICBJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpMSU5LX0xBWUVSX1NUQVRTKSkgeworICAgICAgICAvLyBOby1vcCBpZiBsaW5rIGxheWVyIHN0YXRzIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBFbmFibGUgbGluayBsYXllciBzdGF0cyBjb2xsZWN0aW9uLgorICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBlbmFibGVMaW5rTGF5ZXJTdGF0c0NvbGxlY3Rpb24sIHRydWUpCisgICAgICAgICAgICAgICAgICAuY29kZSk7CisgICAgLy8gUmV0cmlldmUgbGluayBsYXllciBzdGF0cy4KKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0TGlua0xheWVyU3RhdHMpLmZpcnN0LmNvZGUpOworICAgIC8vIERpc2FibGUgbGluayBsYXllciBzdGF0cyBjb2xsZWN0aW9uLgorICAgIEVYUEVDVF9FUSgKKyAgICAgICAgV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZGlzYWJsZUxpbmtMYXllclN0YXRzQ29sbGVjdGlvbikuY29kZSk7Cit9CisKKy8qCisgKiBSU1NJTW9uaXRvcmluZzoKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBlbmFibGUgUlNTSSBtb25pdG9yaW5nIHdpbGwgcmV0dXJuIGFuIGVycm9yIHN0YXR1cworICogY29kZSBpZiBkZXZpY2UgaXMgbm90IGNvbm5lY3RlZCB0byBhbiBBUC4KKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBkaXNhYmxlIFJTU0kgbW9uaXRvcmluZyB3aWxsIHJldHVybiBhbiBlcnJvciBzdGF0dXMKKyAqIGNvZGUgaWYgUlNTSSBtb25pdG9yaW5nIGlzIG5vdCBlbmFibGVkLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIFJTU0lNb25pdG9yaW5nKSB7CisgICAgaWYgKCFpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoCisgICAgICAgICAgICBJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpSU1NJX01PTklUT1IpKSB7CisgICAgICAgIC8vIE5vLW9wIGlmIFJTU0kgbW9uaXRvciBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgQ29tbWFuZElkIGtDbWQgPSAxOworICAgIGNvbnN0IFJzc2kga01heFJzc2kgPSAtNTA7CisgICAgY29uc3QgUnNzaSBrTWluUnNzaSA9IC05MDsKKyAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBkZXZpY2UgaXMgbm90IGNvbm5lY3RlZCB0byBhbiBBUC4KKyAgICBFWFBFQ1RfTkUoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc3RhcnRSc3NpTW9uaXRvcmluZywga0NtZCwga01heFJzc2ksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5Sc3NpKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIFJTU0kgbW9uaXRvcmluZyBpcyBub3QgZW5hYmxlZC4KKyAgICBFWFBFQ1RfTkUoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc3RvcFJzc2lNb25pdG9yaW5nLCBrQ21kKS5jb2RlKTsKK30KKworLyoKKyAqIFJvYW1pbmdDb250cm9sOgorICogRW5zdXJlcyB0aGF0IGNhbGxzIHRvIGNvbmZpZ3VyZSBhbmQgZW5hYmxlIHJvYW1pbmcgd2lsbCByZXR1cm4gYSBzdWNjZXNzCisgKiBzdGF0dXMgY29kZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBSb2FtaW5nQ29udHJvbCkgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKAorICAgICAgICAgICAgSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzazo6Q09OVFJPTF9ST0FNSU5HKSkgeworICAgICAgICAvLyBOby1vcCBpZiByb2FtaW5nIGNvbnRyb2wgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFJldHJpZXZlIHJvYW1pbmcgY2FwYWJpbGl0aWVzLgorICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwID0KKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRSb2FtaW5nQ2FwYWJpbGl0aWVzKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2FwLmZpcnN0LmNvZGUpOworCisgICAgLy8gU2V0dXAgcm9hbWluZyBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHJvYW1pbmcgY2FwYWJpbGl0aWVzLgorICAgIGNvbnN0IGF1dG8mIGNhcCA9IHN0YXR1c19hbmRfY2FwLnNlY29uZDsKKyAgICBTdGFSb2FtaW5nQ29uZmlnIHJvYW1pbmdfY29uZmlnOworICAgIGlmIChjYXAubWF4QmxhY2tsaXN0U2l6ZSA+IDApIHsKKyAgICAgICAgQnNzaWQgYmxhY2tfbGlzdF9ic3NpZHsKKyAgICAgICAgICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNj57ezB4MTEsIDB4MjIsIDB4MzMsIDB4NDQsIDB4NTUsIDB4NjZ9fX07CisgICAgICAgIHJvYW1pbmdfY29uZmlnLmJzc2lkQmxhY2tsaXN0ID0KKyAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxCc3NpZD57YmxhY2tfbGlzdF9ic3NpZH07CisgICAgfQorICAgIGlmIChjYXAubWF4V2hpdGVsaXN0U2l6ZSA+IDApIHsKKyAgICAgICAgU3NpZCB3aGl0ZV9saXN0X3NzaWR7CisgICAgICAgICAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDMyPnt7MHg3NywgMHg4OCwgMHg5OSwgMHhBQSwgMHhCQiwgMHhDQ319fTsKKyAgICAgICAgcm9hbWluZ19jb25maWcuc3NpZFdoaXRlbGlzdCA9CisgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3NpZD57d2hpdGVfbGlzdF9zc2lkfTsKKyAgICB9CisKKyAgICAvLyBDb25maWd1cmUgcm9hbWluZy4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGNvbmZpZ3VyZVJvYW1pbmcsIHJvYW1pbmdfY29uZmlnKS5jb2RlKTsKKworICAgIC8vIEVuYWJsZSByb2FtaW5nLgorICAgIEVYUEVDVF9FUSgKKyAgICAgICAgV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc2V0Um9hbWluZ1N0YXRlLCBTdGFSb2FtaW5nU3RhdGU6OkVOQUJMRUQpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBFbmFibGVORE9mZmxvYWQ6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZW5hYmxlIG5laWdoYm9yIGRpc2NvdmVyeSBvZmZsb2FkIHdpbGwgcmV0dXJuIGEgc3VjY2VzcworICogc3RhdHVzIGNvZGUuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgRW5hYmxlTkRPZmZsb2FkKSB7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGVuYWJsZU5kT2ZmbG9hZCwgdHJ1ZSkuY29kZSk7Cit9CisKKy8qCisgKiBTZXRTY2FubmluZ01hY091aToKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBzZXQgc2Nhbm5pbmcgTUFDIE9VSSB3aWxsIHJldHVybiBhIHN1Y2Nlc3Mgc3RhdHVzCisgKiBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIFNldFNjYW5uaW5nTWFjT3VpKSB7CisgICAgY29uc3QgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8dWludDhfdCwgMz4ga091aXsKKyAgICAgICAgc3RkOjphcnJheTx1aW50OF90LCAzPnt7MHgxMCwgMHgyMiwgMHgzM319fTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc2V0U2Nhbm5pbmdNYWNPdWksIGtPdWkpLmNvZGUpOworfQorCisvKgorICogUGFja2V0RmF0ZU1vbml0b3Jpbmc6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gc3RhcnQgcGFja2V0IGZhdGUgbW9uaXRvcmluZyBhbmQgcmV0cmlldmUgVFgvUlgKKyAqIHBhY2tldHMgd2lsbCByZXR1cm4gYSBzdWNjZXNzIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIFBhY2tldEZhdGVNb25pdG9yaW5nKSB7CisgICAgLy8gU3RhcnQgcGFja2V0IGZhdGUgbW9uaXRvcmluZy4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHN0YXJ0RGVidWdQYWNrZXRGYXRlTW9uaXRvcmluZykuY29kZSk7CisKKyAgICAvLyBSZXRyaWV2ZSBwYWNrZXRzLgorICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXREZWJ1Z1R4UGFja2V0RmF0ZXMpLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXREZWJ1Z1J4UGFja2V0RmF0ZXMpLmZpcnN0LmNvZGUpOwogfQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmhhbCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRQMnBJZmFjZS5oYWwKaW5kZXggZmI0MzIzYy4uOWI2ZWM1YiAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmhhbAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50UDJwSWZhY2UuaGFsCkBAIC0xNTQsNiArMTU0LDcgQEAKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuU1VDQ0VTU3wsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfVU5LTk9XTnwsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfSU5WQUxJRHwKKyAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9JRkFDRV9ESVNBQkxFRHwKICAgICovCiAgIGZpbmQodWludDMyX3QgdGltZW91dEluU2VjKSBnZW5lcmF0ZXMgKFN1cHBsaWNhbnRTdGF0dXMgc3RhdHVzKTsKIApAQCAtMTY1LDYgKzE2Niw3IEBACiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX1VOS05PV058LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0lOVkFMSUR8CisgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfRElTQUJMRUR8CiAgICAqLwogICBzdG9wRmluZCgpIGdlbmVyYXRlcyAoU3VwcGxpY2FudFN0YXR1cyBzdGF0dXMpOwogCkBAIC0yOTIsNiArMjk0LDcgQEAKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuU1VDQ0VTU3wsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfVU5LTk9XTnwsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfSU5WQUxJRHwKKyAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9JRkFDRV9ESVNBQkxFRHwKICAgICovCiAgIHJlamVjdChNYWNBZGRyZXNzIHBlZXJBZGRyZXNzKSBnZW5lcmF0ZXMgKFN1cHBsaWNhbnRTdGF0dXMgc3RhdHVzKTsKIApkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaGFsIGIvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaGFsCmluZGV4IDdkNTE1OWEuLjI2OWQ3ZWYgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmhhbAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50U3RhTmV0d29yay5oYWwKQEAgLTM1NCw2ICszNTQsOCBAQAogICAvKioKICAgICogU2V0IEVBUCBQaGFzZTIgTWV0aG9kIGZvciB0aGlzIG5ldHdvcmsuCiAgICAqCisgICAqIEVBUCBtZXRob2QgbmVlZHMgdG8gYmUgc2V0IGZvciB0aGlzIHRvIHdvcmsuCisgICAqCiAgICAqIEBwYXJhbSBtZXRob2QgdmFsdWUgdG8gc2V0LgogICAgKiAgICAgICAgTXVzdCBiZSBvbmUgb2YgfEVhcFBoYXNlMk1ldGhvZHwgdmFsdWVzLgogICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIG9wZXJhdGlvbi4KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL0FuZHJvaWQubWsgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzNjFmOWIKLS0tIC9kZXYvbnVsbAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMiBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQoraW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmggYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzBmY2VjCi0tLSAvZGV2L251bGwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLyBUaGlzIGZpbGUgaXMgY29waWVkIGZyb20KKy8vIGhhcmR3YXJlL2ludGVyZmFjZXMvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX2NhbGxfdXRpbC5oCisvLyBQbGVhc2UgbWFrZSBzdXJlIHRoZXNlIHR3byBmaWxlIGFyZSBjb25zaXN0ZW50LgorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8dHVwbGU+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisjaW5jbHVkZSA8dXRpbGl0eT4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCituYW1lc3BhY2UgeworbmFtZXNwYWNlIGRldGFpbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWU+CitzdHJ1Y3QgZnVuY3Rpb25BcmdTYXZlcjsKKworLy8gUHJvdmlkZXMgYSBzdGQ6OmZ1bmN0aW9uIHRoYXQgdGFrZXMgb25lIGFyZ3VtZW50LCBhbmQgYSBidWZmZXIKKy8vIHdoZXJlaW4gdGhlIGZ1bmN0aW9uIHdpbGwgc3RvcmUgaXRzIGFyZ3VtZW50LiBUaGUgYnVmZmVyIGhhcworLy8gdGhlIHNhbWUgdHlwZSBhcyB0aGUgYXJndW1lbnQsIGJ1dCB3aXRoIGNvbnN0IGFuZCByZWZlcmVuY2UKKy8vIG1vZGlmaWVycyByZW1vdmVkLgordGVtcGxhdGUgPHR5cGVuYW1lIEFyZ1Q+CitzdHJ1Y3QgZnVuY3Rpb25BcmdTYXZlcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnVCk+PiBmaW5hbCB7CisgICAgdXNpbmcgU3RvcmFnZVQgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPEFyZ1Q+Ojp0eXBlPjo6dHlwZTsKKworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChBcmdUKT4gc2F2ZUFyZ3MgPSBbdGhpc10oQXJnVCBhcmcpIHsKKyAgICAgICAgdGhpcy0+c2F2ZWRfdmFsdWVzID0gYXJnOworICAgIH07CisKKyAgICBTdG9yYWdlVCBzYXZlZF92YWx1ZXM7Cit9OworCisvLyBQcm92aWRlcyBhIHN0ZDo6ZnVuY3Rpb24gdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLCBhbmQgYSBidWZmZXIKKy8vIHdoZXJlaW4gdGhlIGZ1bmN0aW9uIHdpbGwgc3RvcmUgaXRzIGFyZ3VtZW50cy4gVGhlIGJ1ZmZlciBpcyBhCisvLyBzdGQ6OnBhaXIsIHdob3NlIGVsZW1lbnRzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgdGhlIGFyZ3VtZW50cworLy8gKGJ1dCB3aXRoIGNvbnN0IGFuZCByZWZlcmVuY2UgbW9kaWZpZXJzIHJlbW92ZWQpLgordGVtcGxhdGUgPHR5cGVuYW1lIEFyZzFULCB0eXBlbmFtZSBBcmcyVD4KK3N0cnVjdCBmdW5jdGlvbkFyZ1NhdmVyPHN0ZDo6ZnVuY3Rpb248dm9pZChBcmcxVCwgQXJnMlQpPj4gZmluYWwgeworICAgIHVzaW5nIFN0b3JhZ2VUID0KKyAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PAorICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmcxVD46OnR5cGU+Ojp0eXBlLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8CisgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPEFyZzJUPjo6dHlwZT46OnR5cGU+OworCisgICAgc3RkOjpmdW5jdGlvbjx2b2lkKEFyZzFULCBBcmcyVCk+IHNhdmVBcmdzID0gW3RoaXNdKEFyZzFUIGFyZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzJUIGFyZzIpIHsKKyAgICAgICAgdGhpcy0+c2F2ZWRfdmFsdWVzID0ge2FyZzEsIGFyZzJ9OworICAgIH07CisKKyAgICBTdG9yYWdlVCBzYXZlZF92YWx1ZXM7Cit9OworCisvLyBQcm92aWRlcyBhIHN0ZDo6ZnVuY3Rpb24gdGhhdCB0YWtlcyB0aHJlZSBvciBtb3JlIGFyZ3VtZW50cywgYW5kIGEKKy8vIGJ1ZmZlciB3aGVyZWluIHRoZSBmdW5jdGlvbiB3aWxsIHN0b3JlIGl0cyBhcmd1bWVudHMuIFRoZSBidWZmZXIgaXMgYQorLy8gc3RkOjp0dXBsZSB3aG9zZSBlbGVtZW50cyBoYXZlIHRoZSBzYW1lIHR5cGVzIGFzIHRoZSBhcmd1bWVudHMgKGJ1dAorLy8gd2l0aCBjb25zdCBhbmQgcmVmZXJlbmNlIG1vZGlmaWVycyByZW1vdmVkKS4KK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdUPgorc3RydWN0IGZ1bmN0aW9uQXJnU2F2ZXI8c3RkOjpmdW5jdGlvbjx2b2lkKEFyZ1QuLi4pPj4gZmluYWwgeworICAgIHVzaW5nIFN0b3JhZ2VUID0gc3RkOjp0dXBsZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPEFyZ1Q+Ojp0eXBlPjo6dHlwZS4uLj47CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnVC4uLik+IHNhdmVBcmdzID0gW3RoaXNdKEFyZ1QuLi4gYXJnKSB7CisgICAgICAgIHRoaXMtPnNhdmVkX3ZhbHVlcyA9IHthcmcuLi59OworICAgIH07CisKKyAgICBTdG9yYWdlVCBzYXZlZF92YWx1ZXM7Cit9OworCisvLyBJbnZva2VzIHxtZXRob2R8IG9uIHxvYmplY3R8LCBwcm92aWRpbmcgfG1ldGhvZHwgYSBDYWxsYmFja1QgYXMgdGhlCisvLyBmaW5hbCBhcmd1bWVudC4gUmV0dXJucyBhIGNvcHkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCB8bWV0aG9kfCBwcm92aWRlZAorLy8gdG8gQ2FsbGJhY2tULiAoVGhlIHBhcmFtZXRlcnMgYXJlIHJldHVybmVkIGJ5IHZhbHVlLikKK3RlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1QsIHR5cGVuYW1lIE1ldGhvZFQsIHR5cGVuYW1lIE9iamVjdFQsCisgICAgICAgICAgdHlwZW5hbWUuLi4gQXJnVD4KK3R5cGVuYW1lIGZ1bmN0aW9uQXJnU2F2ZXI8Q2FsbGJhY2tUPjo6U3RvcmFnZVQgaW52b2tlTWV0aG9kKAorICAgIE1ldGhvZFQgbWV0aG9kLCBPYmplY3RUIG9iamVjdCwgQXJnVCYmLi4uIG1ldGhvZEFyZykgeworICAgIGZ1bmN0aW9uQXJnU2F2ZXI8Q2FsbGJhY2tUPiByZXN1bHRfYnVmZmVyOworICAgIGNvbnN0IGF1dG8mIHJlcyA9ICgoKm9iamVjdCkuKm1ldGhvZCkoc3RkOjpmb3J3YXJkPEFyZ1Q+KG1ldGhvZEFyZykuLi4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfYnVmZmVyLnNhdmVBcmdzKTsKKyAgICBFWFBFQ1RfVFJVRShyZXMuaXNPaygpKTsKKyAgICByZXR1cm4gcmVzdWx0X2J1ZmZlci5zYXZlZF92YWx1ZXM7Cit9Cit9ICAvLyBuYW1lc3BhY2UgZGV0YWlsCit9ICAvLyBuYW1lc3BhY2UKKworLy8gSW52b2tlcyB8bWV0aG9kfCBvbiB8c3Ryb25nX3BvaW50ZXJ8LCBwYXNzaW5nIHByb3ZpZGVkIGFyZ3VtZW50cyB0aHJvdWdoIHRvCisvLyB8bWV0aG9kfC4KKy8vCisvLyBSZXR1cm5zIGVpdGhlcjoKKy8vIC0gQSBjb3B5IG9mIHRoZSByZXN1bHQgY2FsbGJhY2sgcGFyYW1ldGVyIChmb3IgY2FsbGJhY2tzIHdpdGggYSBzaW5nbGUKKy8vICAgcGFyYW1ldGVyKSwgT1IKKy8vIC0gQSBwYWlyIGNvbnRhaW5pbmcgYSBjb3B5IG9mIHRoZSByZXN1bHQgY2FsbGJhY2sgcGFyYW1ldGVycyAoZm9yIGNhbGxiYWNrcworLy8gICB3aXRoIHR3byBwYXJhbWV0ZXJzKSwgT1IKKy8vIC0gQSB0dXBsZSBjb250YWluaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0IGNhbGxiYWNrIHBhcmFtdGVycyAoZm9yIGNhbGxiYWNrcworLy8gICB3aXRoIHRocmVlIG9yIG1vcmUgcGFyYW1ldGVycykuCisvLworLy8gRXhhbXBsZSB1c2FnZToKKy8vICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorLy8gICAgICAgSElETF9JTlZPS0Uoc3Ryb25nX3BvaW50ZXIsIG1ldGhvZFJldHVybmluZ1dpZmlTdGF0dXMpLmNvZGUpOworLy8gICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisvLyAgICAgICBISURMX0lOVk9LRShzdHJvbmdfcG9pbnRlciwgbWV0aG9kUmV0dXJuaW5nV2lmaVN0YXR1c0FuZE9uZU1vcmUpCisvLyAgICAgICAgIC5maXJzdC5jb2RlKTsKKy8vICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGQ6OmdldDwwPigKKy8vICAgICAgIEhJRExfSU5WT0tFKHN0cm9uZ19wb2ludGVyLCBtZXRob2RSZXR1cm5pbmdXaWZpU3RhdHVzQW5kVHdvTW9yZSkpCisvLyAgICAgICAgIC5jb2RlKTsKKyNkZWZpbmUgSElETF9JTlZPS0Uoc3Ryb25nX3BvaW50ZXIsIG1ldGhvZCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoZGV0YWlsOjppbnZva2VNZXRob2Q8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKCpzdHJvbmdfcG9pbnRlcik+Ojp0eXBlOjptZXRob2QjI19jYj4oIFwKKyAgICAgICAgJnN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZSgqc3Ryb25nX3BvaW50ZXIpPjo6dHlwZTo6bWV0aG9kLCAgICAgIFwKKyAgICAgICAgc3Ryb25nX3BvaW50ZXIsICMjX19WQV9BUkdTX18pKQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmNwcAppbmRleCAxZmNmYzhjLi5kZjRiZmE5IDEwMDY0NAotLS0gYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmNwcAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmNwcApAQCAtMTM2LDE0ICsxMzYsMTQgQEAKIH07CiAKIHZvaWQgc3RvcFdpZmlGcmFtZXdvcmsoKSB7Ci0gICAgQVNTRVJUX0VRKHN0ZDo6c3lzdGVtKCJzdmMgd2lmaSBkaXNhYmxlIiksIDApOworICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3RvcCIpLCAwKTsKICAgICAvLyBUT0RPOiBVc2Ugc29tZSBvdGhlciBtZWNoYW5pc20gdG8gd2FpdCBmb3IgdGhlIGZyYW1ld29yayB0bwogICAgIC8vIGZpbmlzaCBkaXNhYmxpbmcuCiAgICAgc2xlZXAoNSk7CiB9CiAKIHZvaWQgc3RhcnRXaWZpRnJhbWV3b3JrKCkgewotICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3ZjIHdpZmkgZW5hYmxlIiksIDApOworICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3RhcnQiKSwgMCk7CiAgICAgLy8gVGhlc2UgdGVzdHMgZG9uJ3QgY2FyZSB3aGV0aGVyIHRoZSBmcmFtZXdvcmsKICAgICAvLyBmaW5pc2hlZCBlbmFibGluZyBvciBub3QuCiB9CmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfcDJwX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfcDJwX2lmYWNlX2hpZGxfdGVzdC5jcHAKaW5kZXggNzJhM2M0Mi4uMDE4MWY3YiAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3AycF9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9wMnBfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50UDJwSWZhY2UuaD4KIAorI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwpAQCAtMjgsNiArMjksNyBAQAogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRQMnBJZmFjZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50UDJwSWZhY2VDYWxsYmFjazsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OlN1cHBsaWNhbnROZXR3b3JrSWQ7CkBAIC0zOCwxNiArNDAsMzAgQEAKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0U3NpZFBvc3RmaXhbXSA9IHsndCcsICdlJywgJ3MnLCAndCd9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RNYWNBZGRyW10gPSB7MHg1NiwgMHg2NywgMHg2NywgMHhmNCwgMHg1NiwgMHg5Mn07CiBjb25zdGV4cHIgdWludDhfdCBrVGVzdFBlZXJNYWNBZGRyW10gPSB7MHg1NiwgMHg2NywgMHg1NSwgMHhmNCwgMHg1NiwgMHg5Mn07Citjb25zdGV4cHIgdWludDhfdCBrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnlbXSA9IHsndCcsICdlJywgJ3MnLCAndCcsICdxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1JywgJ2UnLCAncicsICd5J307Citjb25zdGV4cHIgdWludDhfdCBrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2VbXSA9IHsKKyAgICAndCcsICdlJywgJ3MnLCAndCcsICdyJywgJ2UnLCAncycsICdwJywgJ28nLCAnbicsICdzJywgJ2UnfTsKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0V2ZkRGV2aWNlSW5mb1tdID0ge1swIC4uLiA1XSA9IDB4MDF9OwogY29uc3RleHByIGNoYXIga1Rlc3RDb25uZWN0UGluW10gPSAiMzQ1NTY2NjUiOwogY29uc3RleHByIGNoYXIga1Rlc3RHcm91cElmTmFtZVtdID0gIlRlc3RHcm91cCI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc0RldmljZU5hbWVbXSA9ICJUZXN0V3BzRGV2aWNlTmFtZSI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01hbnVmYWN0dXJlcltdID0gIlRlc3RNYW51ZmFjdHVyZXIiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNb2RlbE5hbWVbXSA9ICJUZXN0TW9kZWxOYW1lIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTW9kZWxOdW1iZXJbXSA9ICJUZXN0TW9kZWxOdW1iZXIiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNTZXJpYWxOdW1iZXJbXSA9ICJUZXN0U2VyaWFsTnVtYmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0VXBucFNlcnZpY2VOYW1lW10gPSAiVGVzdFNlcnZpY2VOYW1lIjsKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0V3BzRGV2aWNlVHlwZVtdID0ge1swIC4uLiA3XSA9IDB4MDF9OworY29uc3RleHByIHVpbnQxNl90IGtUZXN0V3BzQ29uZmlnTWV0aG9kcyA9IDB4ZmZmZjsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdENvbm5lY3RHb0ludGVudCA9IDY7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RGaW5kVGltZW91dCA9IDU7Ci1jb25zdGV4cHIgU3VwcGxpY2FudE5ldHdvcmtJZCBrVGVzdE5ldHdvcmtJZCA9IDU7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RTZXRHcm91cElkbGVUaW1lb3V0ID0gNjsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdENoYW5uZWwgPSAxOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0T3BlcmF0aW5nQ2xhc3MgPSA4MTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEZyZXFSYW5nZVtdID0gezI0MTIsIDI0MzJ9OwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0RXh0TGlzdGVuUGVyaW9kID0gNDAwOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0RXh0TGlzdGVuSW50ZXJ2YWwgPSA0MDA7Citjb25zdGV4cHIgU3VwcGxpY2FudE5ldHdvcmtJZCBrVGVzdE5ldHdvcmtJZCA9IDU7CiB9ICAvLyBuYW1lc3BhY2UKIAogY2xhc3MgU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgewpAQCAtMTc4LDYgKzE5NCwyNiBAQAogfQogCiAvKgorICogR2V0TmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEdldE5hbWUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lID0gSElETF9JTlZPS0UocDJwX2lmYWNlXywgZ2V0TmFtZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9GQUxTRShzdGQ6OnN0cmluZyhzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLnNlY29uZCkuZW1wdHkoKSk7Cit9CisKKy8qCisgKiBHZXRUeXBlCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUgPSBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuc2Vjb25kLCBJZmFjZVR5cGU6OlAyUCk7Cit9CisKKy8qCiAgKiBHZXREZXZpY2VBZGRyZXNzCiAgKi8KIFRFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgR2V0RGV2aWNlQWRkcmVzcykgewpAQCAtMjE5LDEwICsyNTUsNiBAQAogICAgIHAycF9pZmFjZV8tPnN0b3BGaW5kKFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewogICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICB9KTsKLQotICAgIHAycF9pZmFjZV8tPnN0b3BGaW5kKFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewotICAgICAgICBFWFBFQ1RfTkUoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKLSAgICB9KTsKIH0KIAogLyoKQEAgLTI5MCw2ICszMjIsMTUgQEAKIH0KIAogLyoKKyAqIFJlbW92ZUdyb3VwCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgUmVtb3ZlR3JvdXApIHsKKyAgICAvLyBUaGlzIGlzIG5vdCBnb2luZyB0byB3b3JrIHdpdGggZmFrZSB2YWx1ZXMuCisgICAgRVhQRUNUX05FKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVHcm91cCwga1Rlc3RHcm91cElmTmFtZSkuY29kZSk7Cit9CisKKy8qCiAgKiBSZWplY3QKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBSZWplY3QpIHsKQEAgLTQxMSwzICs0NTIsMTcwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmNvZGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKIH0KKworLyoKKyAqIFNldEdyb3VwSWRsZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldEdyb3VwSWRsZSkgeworICAgIC8vIFRoaXMgaXMgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYWtlIHZhbHVlcy4KKyAgICBFWFBFQ1RfTkUoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldEdyb3VwSWRsZSwga1Rlc3RHcm91cElmTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RTZXRHcm91cElkbGVUaW1lb3V0KQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogU2V0UG93ZXJTYXZlCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0UG93ZXJTYXZlKSB7CisgICAgLy8gVGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayB3aXRoIGZha2UgdmFsdWVzLgorICAgIEVYUEVDVF9ORSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFBvd2VyU2F2ZSwga1Rlc3RHcm91cElmTmFtZSwgdHJ1ZSkuY29kZSk7CisgICAgLy8gVGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayB3aXRoIGZha2UgdmFsdWVzLgorICAgIEVYUEVDVF9ORSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFBvd2VyU2F2ZSwga1Rlc3RHcm91cElmTmFtZSwgZmFsc2UpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzRGV2aWNlTmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZU5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNEZXZpY2VOYW1lLCBrVGVzdFdwc0RldmljZU5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzRGV2aWNlVHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZVR5cGUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNEZXZpY2VUeXBlLCBrVGVzdFdwc0RldmljZVR5cGUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTWFudWZhY3R1cmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V3BzTWFudWZhY3R1cmVyKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzTWFudWZhY3R1cmVyLCBrVGVzdFdwc01hbnVmYWN0dXJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNNb2RlbE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc01vZGVsTmFtZSwga1Rlc3RXcHNNb2RlbE5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc01vZGVsTnVtYmVyLCBrVGVzdFdwc01vZGVsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc1NlcmlhbE51bWJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc1NlcmlhbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc1NlcmlhbE51bWJlciwga1Rlc3RXcHNTZXJpYWxOdW1iZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzQ29uZmlnTWV0aG9kcworICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc0NvbmZpZ01ldGhvZHMpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNDb25maWdNZXRob2RzLCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBBZGRBbmRSZW1vdmVCb25qb3VyU2VydmljZQorICogVGhpcyB0ZXN0cyB0aGF0IHdlIGFyZSBhYmxlIHRvIGFkZCBhIGJvbmpvdXIgc2VydmljZSwgYW5kIHdlIGNhbiByZW1vdmUgaXQKKyAqIGJ5IHVzaW5nIHRoZSBzYW1lIHF1ZXJ5IGRhdGEuCisgKiBUaGlzIGFsc28gdGVzdHMgdGhhdCByZW1vdmVCb25qb3VyU2VyaXZlKCkgcmV0dXJucyBlcnJvciB3aGVuIHRoZXJlIGlzIG5vCisgKiBleGlzdGluZyBib25qb3VyIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBxdWVyeSBkYXRhLgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEFkZEFuZFJlbW92ZUJvbmpvdXJTZXJ2aWNlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSgKKyAgICAgICAgICAgICAgICAgIHAycF9pZmFjZV8sIGFkZEJvbmpvdXJTZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5KSksCisgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2UgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2UpKSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVCb25qb3VyU2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSkpKQorICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFRoaXMgd2lsbCBmYWlsIGJlY2F1c2UgYm91am91ciBzZXJ2aWNlIHdpdGgga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5IHdhcworICAgIC8vIGFscmVhZHkgcmVtb3ZlZC4KKyAgICBFWFBFQ1RfTkUoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVCb25qb3VyU2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSkpKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogQWRkQW5kUmVtb3ZlVXBucFNlcnZpY2UKKyAqIFRoaXMgdGVzdHMgdGhhdCB3ZSBhcmUgYWJsZSB0byBhZGQgYSB1cG5wIHNlcnZpY2UsIGFuZCB3ZSBjYW4gcmVtb3ZlIGl0CisgKiBieSB1c2luZyB0aGUgc2FtZSBzZXJ2aWNlIG5hbWUuCisgKiBUaGlzIGFsc28gdGVzdHMgdGhhdCByZW1vdmVVcG5wU2VydmljZSgpIHJldHVybnMgZXJyb3Igd2hlbiB0aGVyZSBpcyBubworICogZXhzaXRpbmcgdXBucCBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgc2VydmljZSBuYW1lLgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEFkZEFuZFJlbW92ZVVwbnBTZXJ2aWNlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBhZGRVcG5wU2VydmljZSwgMCAvKiB2ZXJzaW9uICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdFVwbnBTZXJ2aWNlTmFtZSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHJlbW92ZVVwbnBTZXJ2aWNlLCAwIC8qIHZlcnNpb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0VXBucFNlcnZpY2VOYW1lKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFRoaXMgd2lsbCBmYWlsIGJlY2F1c2UgVXBucCBzZXJ2aWNlIHdpdGgga1Rlc3RVcG5wU2VydmljZU5hbWUgd2FzCisgICAgLy8gYWxyZWFkeSByZW1vdmVkLgorICAgIEVYUEVDVF9ORShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlVXBucFNlcnZpY2UsIDAgLyogdmVyc2lvbiAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RVcG5wU2VydmljZU5hbWUpCisgICAgICAgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBFbmFibGVXZmQKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBFbmFibGVXZmQpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIGVuYWJsZVdmZCwgdHJ1ZSkuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBlbmFibGVXZmQsIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdmZERldmljZUluZm8KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXZmREZXZpY2VJbmZvKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V2ZkRGV2aWNlSW5mbywga1Rlc3RXZmREZXZpY2VJbmZvKS5jb2RlKTsKK30KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcAppbmRleCBjMmE1OGI2Li5lYzEwMmQ1IDEwMDY0NAotLS0gYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFJZmFjZS5oPgogCisjaW5jbHVkZSAic3VwcGxpY2FudF9oaWRsX2NhbGxfdXRpbC5oIgogI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmgiCiAKIHVzaW5nIDo6YW5kcm9pZDo6c3A7CkBAIC0yOCw2ICsyOSw3IEBACiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJZmFjZVR5cGU7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJU3VwcGxpY2FudFN0YUlmYWNlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrOwpAQCAtNDUsNyArNDcsMTggQEAKICAgICBJU3VwcGxpY2FudFN0YUlmYWNlOjpIczIwQW5xcFN1YnR5cGVzOjpXQU5fTUVUUklDUywKICAgICBJU3VwcGxpY2FudFN0YUlmYWNlOjpIczIwQW5xcFN1YnR5cGVzOjpPUEVSQVRPUl9GUklFTkRMWV9OQU1FfTsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0SHMyMEljb25GaWxlW10gPSAiVGVzdEZpbGUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNEZXZpY2VOYW1lW10gPSAiVGVzdFdwc0RldmljZU5hbWUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNYW51ZmFjdHVyZXJbXSA9ICJUZXN0TWFudWZhY3R1cmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTW9kZWxOYW1lW10gPSAiVGVzdE1vZGVsTmFtZSI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01vZGVsTnVtYmVyW10gPSAiVGVzdE1vZGVsTnVtYmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzU2VyaWFsTnVtYmVyW10gPSAiVGVzdFNlcmlhbE51bWJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFJhZGlvV29ya05hbWVbXSA9ICJUZXN0UmFkaW9Xb3JrIjsKK2NvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFJhZGlvV29ya0ZyZXF1ZW5jeSA9IDI0MTI7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RSYWRpb1dvcmtUaW1lb3V0ID0gODsKK2NvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFJhZGlvV29ya0lkID0gMTY7CiBjb25zdGV4cHIgaW50OF90IGtUZXN0Q291bnRyeUNvZGVbXSA9IHsnVScsICdTJ307Citjb25zdGV4cHIgdWludDhfdCBrVGVzdFdwc0RldmljZVR5cGVbXSA9IHtbMCAuLi4gN10gPSAweDAxfTsKK2NvbnN0ZXhwciB1aW50MTZfdCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMgPSAweGZmZmY7CiB9ICAvLyBuYW1lc3BhY2UKIAogY2xhc3MgU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgewpAQCAtMTA0LDExICsxMTcsMTMgQEAKICAgICB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uRGlzY29ubmVjdGVkKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNj4mIC8qIGJzc2lkICovLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qIGxvY2FsbHlHZW5lcmF0ZWQgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IC8qIHJlYXNvbkNvZGUgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrOjpSZWFzb25Db2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlYXNvbkNvZGUgKi8pIG92ZXJyaWRlIHsKICAgICAgICAgcmV0dXJuIFZvaWQoKTsKICAgICB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uQXNzb2NpYXRpb25SZWplY3RlZCgKLSAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2PiYgLyogYnNzaWQgKi8sIHVpbnQzMl90IC8qIHN0YXR1c0NvZGUgKi8sCisgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNj4mIC8qIGJzc2lkICovLAorICAgICAgICBJU3VwcGxpY2FudFN0YUlmYWNlQ2FsbGJhY2s6OlN0YXR1c0NvZGUgLyogc3RhdHVzQ29kZSAqLywKICAgICAgICAgYm9vbCAvKnRpbWVkT3V0ICovKSBvdmVycmlkZSB7CiAgICAgICAgIHJldHVybiBWb2lkKCk7CiAgICAgfQpAQCAtMTE2LDYgKzEzMSwxMSBAQAogICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLykgb3ZlcnJpZGUgewogICAgICAgICByZXR1cm4gVm9pZCgpOwogICAgIH0KKyAgICBSZXR1cm48dm9pZD4gb25Cc3NpZENoYW5nZWQoCisgICAgICAgIElTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjazo6QnNzaWRDaGFuZ2VSZWFzb24gLyogcmVhc29uICovLAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KICAgICBSZXR1cm48dm9pZD4gb25FYXBGYWlsdXJlKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uV3BzRXZlbnRTdWNjZXNzKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uV3BzRXZlbnRGYWlsKApAQCAtMTU2LDYgKzE3NiwyNiBAQAogfQogCiAvKgorICogR2V0TmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEdldE5hbWUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lID0gSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgZ2V0TmFtZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9GQUxTRShzdGQ6OnN0cmluZyhzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLnNlY29uZCkuZW1wdHkoKSk7Cit9CisKKy8qCisgKiBHZXRUeXBlCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUgPSBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuc2Vjb25kLCBJZmFjZVR5cGU6OlNUQSk7Cit9CisKKy8qCiAgKiBsaXN0TmV0d29ya3MuCiAgKi8KIFRFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgbGlzdE5ldHdvcmtzKSB7CkBAIC0yMjEsOSArMjYxLDcgQEAKIFRFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgSW5pdGlhdGVUZGxzRGlzY292ZXIpIHsKICAgICBzdGFfaWZhY2VfLT5pbml0aWF0ZVRkbHNEaXNjb3ZlcigKICAgICAgICAgbWFjX2FkZHJfLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKLSAgICAgICAgICAgIC8vIFRoZXNlIHJlcXVlc3RzIHdpbGwgZmFpbCB1bmxlc3MgdGhlIE1BQyBhZGRyZXNzIG1lbnRpb25lZCBpcwotICAgICAgICAgICAgLy8gYWN0dWFsbHkgYXJvdW5kLgotICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpGQUlMVVJFX1VOS05PV04sIHN0YXR1cy5jb2RlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KIApAQCAtMjMzLDkgKzI3MSw3IEBACiBURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEluaXRpYXRlVGRsc1NldHVwKSB7CiAgICAgc3RhX2lmYWNlXy0+aW5pdGlhdGVUZGxzU2V0dXAoCiAgICAgICAgIG1hY19hZGRyXywgW10oY29uc3QgU3VwcGxpY2FudFN0YXR1cyYgc3RhdHVzKSB7Ci0gICAgICAgICAgICAvLyBUaGVzZSByZXF1ZXN0cyB3aWxsIGZhaWwgdW5sZXNzIHRoZSBNQUMgYWRkcmVzcyBtZW50aW9uZWQgaXMKLSAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFyb3VuZC4KLSAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6RkFJTFVSRV9VTktOT1dOLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICAgICAgfSk7CiB9CiAKQEAgLTI0NSw5ICsyODEsNyBAQAogVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBJbml0aWF0ZVRkbHNUZWFyZG93bikgewogICAgIHN0YV9pZmFjZV8tPmluaXRpYXRlVGRsc1RlYXJkb3duKAogICAgICAgICBtYWNfYWRkcl8sIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewotICAgICAgICAgICAgLy8gVGhlc2UgcmVxdWVzdHMgd2lsbCBmYWlsIHVubGVzcyB0aGUgTUFDIGFkZHJlc3MgbWVudGlvbmVkIGlzCi0gICAgICAgICAgICAvLyBhY3R1YWxseSBhcm91bmQuCi0gICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OkZBSUxVUkVfVU5LTk9XTiwgc3RhdHVzLmNvZGUpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogfQogCkBAIC0zOTgsMyArNDMyLDEwMSBAQAogICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogfQorCisvKgorICogU2V0V3BzRGV2aWNlTmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZU5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNEZXZpY2VOYW1lLCBrVGVzdFdwc0RldmljZU5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzRGV2aWNlVHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZVR5cGUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNEZXZpY2VUeXBlLCBrVGVzdFdwc0RldmljZVR5cGUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTWFudWZhY3R1cmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgU2V0V3BzTWFudWZhY3R1cmVyKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzTWFudWZhY3R1cmVyLCBrVGVzdFdwc01hbnVmYWN0dXJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNNb2RlbE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc01vZGVsTmFtZSwga1Rlc3RXcHNNb2RlbE5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc01vZGVsTnVtYmVyLCBrVGVzdFdwc01vZGVsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc1NlcmlhbE51bWJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc1NlcmlhbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc1NlcmlhbE51bWJlciwga1Rlc3RXcHNTZXJpYWxOdW1iZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzQ29uZmlnTWV0aG9kcworICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc0NvbmZpZ01ldGhvZHMpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNDb25maWdNZXRob2RzLCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBTZXRFeHRlcm5hbFNpbQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldEV4dGVybmFsU2ltKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRFeHRlcm5hbFNpbSwgdHJ1ZSkuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRFeHRlcm5hbFNpbSwgZmFsc2UpLmNvZGUpOworfQorCisvKgorICogQWRkRXh0UmFkaW9Xb3JrCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgQWRkRXh0UmFkaW9Xb3JrKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9yYWRpb193b3JrX2lkID0KKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgYWRkRXh0UmFkaW9Xb3JrLCBrVGVzdFJhZGlvV29ya05hbWUsCisgICAgICAgICAgICAgICAgICAgIGtUZXN0UmFkaW9Xb3JrRnJlcXVlbmN5LCBrVGVzdFJhZGlvV29ya1RpbWVvdXQpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9yYWRpb193b3JrX2lkLmZpcnN0LmNvZGUpOworICAgIC8vIHJlbW92ZUV4dFJhZGlvIG9ubHkgc3VjY2VlZHMgaWYgdGhlIGFkZGVkIHJhZGlvIHdvcmsgaGFzbid0IHN0YXJ0ZWQgeWV0LgorICAgIC8vIFNvIHRoZXJlIHRoaXMgbm8gZ3VhcmFudGVlZCByZXN1bHQgZnJvbSBjYWxsaW5nIHJlbW92ZUV4dFJhZGlvV29yayBoZXJlLgorICAgIC8vIFRoYXQgYmVpbmcgc2FpZCwgY3VycmVudGx5IHdlIGFyZSBub3QgYWJsZSB0byB0ZXN0IGFkZEV4dFJhZGlvV29yayBhbmQKKyAgICAvLyByZW1vdmVFeHRSYWRpb1dvcmsgaW4gYSByb3cuCit9CisKKy8qCisgKiBSZW1vdmVFeHRSYWRpb1dvcmsKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBSZW1vdmVFeHRSYWRpb1dvcmspIHsKKyAgICAvLyBUaGlzIGZhaWxzIGJlY2F1c2UgdGhlcmUgaXMgbm8gb24gZ29pbmcgcmFkaW8gd29yayB3aXRoIGtUZXN0UmFkaW9Xb3JrSWQuCisgICAgRVhQRUNUX05FKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgcmVtb3ZlRXh0UmFkaW9Xb3JrLCBrVGVzdFJhZGlvV29ya0lkKS5jb2RlKTsKK30KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9uZXR3b3JrX2hpZGxfdGVzdC5jcHAKaW5kZXggYWE4NGU5YS4uODMyZGQ0MSAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9uZXR3b3JrX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9uZXR3b3JrX2hpZGxfdGVzdC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaD4KIAorI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwpAQCAtMzAsNiArMzEsNyBAQAogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFJZmFjZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhTmV0d29yazsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OgpAQCAtMzksNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgewogY29uc3RleHByIGNoYXIga1Rlc3RTc2lkU3RyW10gPSAiVGVzdFNzaWQxMjM0IjsKLWNvbnN0ZXhwciBjaGFyIGtUZXN0UHNrW10gPSAiVGVzdFBzazEyMyI7Citjb25zdGV4cHIgY2hhciBrVGVzdFBza1Bhc3NwaHJhc2VbXSA9ICJUZXN0UHNrMTIzIjsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0SWRTdHJbXSA9ICJUZXN0SWRzdHIiOwogY29uc3RleHByIGNoYXIga1Rlc3RFYXBQYXNzd2RTdHJbXSA9ICJUZXN0RWFwUGFzc3dkMTIzNCI7CiBjb25zdGV4cHIgY2hhciBrVGVzdEVhcENlcnRbXSA9ICJrZXlzdG9yZTovL0NFUlQiOwpAQCAtNTQsNyArNTYsMTAgQEAKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0SWtbXSA9IHtbMCAuLi4gMTVdID0gMHg2NX07CiBjb25zdGV4cHIgdWludDhfdCBrVGVzdENrW10gPSB7WzAgLi4uIDE1XSA9IDB4NDV9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RJZGVudGl0eVtdID0gezB4NDUsIDB4NjcsIDB4OTgsIDB4NjcsIDB4NTZ9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RQc2tbXSA9IHtbMCAuLi4gMzFdID0gMHgxMn07Citjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dFBhcmFtW10gPSB7WzAgLi4uIDEzXSA9IDB4ZTF9OwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0V2VwVHhLZXlJZHggPSAyOworY29uc3RleHByIHVpbnQzMl90IGtUZXN0VXBkYXRlSWRlbnRpZmllciA9IDIxOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0S2V5TWdtdCA9IChJU3VwcGxpY2FudFN0YU5ldHdvcms6OktleU1nbXRNYXNrOjpXUEFfUFNLIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpLZXlNZ210TWFzazo6V1BBX0VBUCk7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RQcm90byA9IChJU3VwcGxpY2FudFN0YU5ldHdvcms6OlByb3RvTWFzazo6T1NFTiB8CkBAIC0xMzcsNiArMTQyLDI3IEBACiAgICAgICAgIH0pOwogfQogCisvKgorICogR2V0SW50ZXJmYWNlTmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgR2V0SW50ZXJmYWNlTmFtZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX25hbWUgPQorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIGdldEludGVyZmFjZU5hbWUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5zZWNvbmQpLmVtcHR5KCkpOworfQorCisvKgorICogR2V0VHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUgPSBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIGdldFR5cGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfdHlwZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzX2FuZF9pbnRlcmZhY2VfdHlwZS5zZWNvbmQsIElmYWNlVHlwZTo6U1RBKTsKK30KKwogLyogVGVzdHMgb3V0IHRoZSB2YXJpb3VzIHNldHRlci9nZXR0ZXIgbWV0aG9kcy4gKi8KIC8qCiAgKiBTZXRHZXRTc2lkCkBAIC0yNDYsMTcgKzI3MiwyOSBAQAogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0UHNrUGFzc3BocmFzZSkgewogICAgIHN0YV9uZXR3b3JrXy0+c2V0UHNrUGFzc3BocmFzZSgKLSAgICAgICAga1Rlc3RQc2ssIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgeworICAgICAgICBrVGVzdFBza1Bhc3NwaHJhc2UsIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewogICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogICAgIHN0YV9uZXR3b3JrXy0+Z2V0UHNrUGFzc3BocmFzZSgKICAgICAgICAgWyZdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmIHBzaykgewogICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEoa1Rlc3RQc2ssIHN0ZDo6c3RyaW5nKHBzay5jX3N0cigpKSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoa1Rlc3RQc2tQYXNzcGhyYXNlLCBzdGQ6OnN0cmluZyhwc2suY19zdHIoKSkpOwogICAgICAgICB9KTsKIH0KIAogLyoKKyAqIFNldEdldFBzaworICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0UHNrKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFBzaywga1Rlc3RQc2spLmNvZGUpOworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfcHNrID0gSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRQc2spOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9wc2suZmlyc3QuY29kZSk7CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAzMj4gZXhwZWN0ZWRfcHNrKGtUZXN0UHNrKTsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcHNrLCBzdGF0dXNfYW5kX3Bzay5zZWNvbmQpOworfQorCisvKgogICogU2V0R2V0V2VwS2V5cwogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0V2VwVHhLZXlJZHgpIHsKQEAgLTM2MSw2ICszOTksMTIgQEAKICAqIFNldEdldEVhcFBoYXNlMk1ldGhvZAogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0RWFwUGhhc2UyTWV0aG9kKSB7CisgICAgSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpFYXBNZXRob2Qgc2V0X2VhcF9tZXRob2QgPQorICAgICAgICBJU3VwcGxpY2FudFN0YU5ldHdvcms6OkVhcE1ldGhvZDo6UEVBUDsKKyAgICBzdGFfbmV0d29ya18tPnNldEVhcE1ldGhvZCgKKyAgICAgICAgc2V0X2VhcF9tZXRob2QsIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICAgIH0pOwogICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6RWFwUGhhc2UyTWV0aG9kIHNldF9lYXBfcGhhc2UyX21ldGhvZCA9CiAgICAgICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6RWFwUGhhc2UyTWV0aG9kOjpOT05FOwogICAgIHN0YV9uZXR3b3JrXy0+c2V0RWFwUGhhc2UyTWV0aG9kKApAQCAtNTAwLDYgKzU0NCwyMSBAQAogfQogCiAvKgorICogU2V0R2V0RWFwU3ViamVjdE1hdGNoCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRHZXRFYXBTdWJqZWN0TWF0Y2gpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldEVhcFN1YmplY3RNYXRjaCwga1Rlc3RFYXBNYXRjaCkuY29kZSk7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9zdWJqZWN0X21hdGNoID0KKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRFYXBTdWJqZWN0TWF0Y2gpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9zdWJqZWN0X21hdGNoLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShrVGVzdEVhcE1hdGNoLAorICAgICAgICAgICAgICBzdGQ6OnN0cmluZyhzdGF0dXNfYW5kX3N1YmplY3RfbWF0Y2guc2Vjb25kLmNfc3RyKCkpKTsKK30KKworLyoKICAqIFNldEdldEVhcERvbWFpblN1ZmZpeE1hdGNoCiAgKi8KIFRFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRHZXRFYXBEb21haW5TdWZmaXhNYXRjaCkgewpAQCAtNjM0LDYgKzY5MywxNCBAQAogfQogCiAvKgorICogU2VuZE5ldHdvcmtFYXBTaW1Hc21BdXRoRmFpbHVyZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1Hc21BdXRoRmFpbHVyZSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZW5kTmV0d29ya0VhcFNpbUdzbUF1dGhGYWlsdXJlKS5jb2RlKTsKK30KKworLyoKICAqIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhSZXNwb25zZQogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aFJlc3BvbnNlKSB7CkBAIC02NDgsNiArNzE1LDI0IEBACiB9CiAKIC8qCisgKiBTZW5kTmV0d29ya0VhcFNpbVVtdHNBdXRoRmFpbHVyZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aEZhaWx1cmUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aEZhaWx1cmUpLmNvZGUpOworfQorCisvKgorICogU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0c1Jlc3BvbnNlCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZW5kTmV0d29ya0VhcFNpbVVtdHNBdXRzUmVzcG9uc2UpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0c1Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEF1dFBhcmFtKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgogICogU2VuZE5ldHdvcmtFYXBJZGVudGl0eVJlc3BvbnNlCiAgKi8KIFRFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZW5kTmV0d29ya0VhcElkZW50aXR5UmVzcG9uc2UpIHsKQEAgLTY1OCwzICs3NDMsNDAgQEAKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KKworLyoKKyAqIFNldFVwZGF0ZUlkZW50aWZpZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldFVwZGF0ZUlkZW50aWZpZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFVwZGF0ZUlkZW50aWZpZXIsIGtUZXN0VXBkYXRlSWRlbnRpZmllcikKKyAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKKyAqIFNldFByb2FjdGl2ZUtleUNhY2hpbmcKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldFByb2FjdGl2ZUtleUNhY2hpbmcpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2V0UHJvYWN0aXZlS2V5Q2FjaGluZywgdHJ1ZSkuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFByb2FjdGl2ZUtleUNhY2hpbmcsIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIEdldFdwc05mY0NvbmZpZ3VyYXRpb25Ub2tlbgorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgR2V0V3BzTmZjQ29uZmlndXJhdGlvblRva2VuKSB7CisgICAgQVNTRVJUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFNzaWQsIHNzaWRfKS5jb2RlKTsKKyAgICBBU1NFUlRfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2V0S2V5TWdtdCwga1Rlc3RLZXlNZ210KS5jb2RlKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFBza1Bhc3NwaHJhc2UsIGtUZXN0UHNrUGFzc3BocmFzZSkuY29kZSk7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF90b2tlbiA9CisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgZ2V0V3BzTmZjQ29uZmlndXJhdGlvblRva2VuKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfdG9rZW4uZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0ZBTFNFKDAgPT0gc3RhdHVzX2FuZF90b2tlbi5zZWNvbmQuc2l6ZSgpKTsKK30K